■ 관계 데이터 모델
• E.F. Codd가 1970년에 관계 데이터 모델을 제안
• 실세계의 동일한 구조(릴레이션)의 관점에서 모든 데이터를 논리적으로 구성하며 선언적인 질의어를 통한 데이터 접근을 제공한다. 응용 프로그램들은 데이터베이스 내의 레코드들의 어떠한 순서와도 무관하게 작성된다.
• 사용자는 원하는 데이터(what)만 명시하고, 어떻게 이 데이터를 어떻게 찾을 것인가(how)는 명시할 필요가 없다.
• 관계 데이터 모델은 논리적으로 연관된 데이터를 연결하기 위해서 링크나 포인터를 사용하지 않는다. 관계 데이터베이스 모델에서는 실세계에서 서로 다른 객체들을 연관시키는 것이 값들의 비교에 의해 이루어진다.
1. 관계 데이터 모델의 목적
• 데이터베이스의 관리의 논리적인 면과 물리적인 면을 명확하게 구분하여 데이터의 독립성을 높인다.
• 그 당시의 다른 데이터 모델에 비해서 보다 단순한 구조를 갖도록 한다.
→ 단순한 구조는 사용자와 프로그래머 간의 의사소통을 원활하게 하며 조직의 다양한 사용자들이 단순한 모델과 쉽게 상호 작용할 수 있게 한다.
• 한 번에 다수의 레코드들의 집합을 조작할 수 있는 기능을 제공함으로써 프로그래머가 데이터베이스를 레코드 단위로 처리하지 않는다.
2. 기본적인 용어
• 릴레이션: 2차원 테이블을 의미
• 행: 레코드라고 부른다. 레코드를 조금 더 공식적으로 ‘투플’이라고 부르는데, 릴레이션이 나타내는 엔티티의 특정 인스턴스에 관한 사실(값)들의 모임이다. 다시 말해서, 한 투플은 그 릴레이션이 나타내는 엔티티의 한 인스턴스를 의미한다. 각 행은 한 명의 사원을 나타낸다.
• 열: 릴레이션에서 이름을 가진 하나의 애트리뷰트이다.
• 한 릴레이션(테이블)은 특정 엔티티 타입에 속하는 애트리뷰트들을 나타내는 하나 이상의 열을 포함한다. 한 릴레이션에서 모든 애트리뷰트들의 이름은 서로 달라야 한다.
• 각 사원(객체)를 나타내기 위해 EMPNO, EMPNAME, TITLE, DNO, SALARY의 다섯 애트리뷰트가 사용되었다.
• EMPNO는 각 사원 투플을 고유하게 식별하므로 ‘기본 키’라고 한다.
• 차수: 한 릴레이션에 들어있는 애트리뷰트들의 수. 유효한 릴레이션의 최소 차수는 1이다. 즉 모든 릴레이션은 적어도 한 개의 애트리뷰트를 가져야 한다.
• 카디날리티: 릴레이션의 투플 수. 유효한 릴레이션은 카디날리티 0을 가질 수 있다.
• 널(null)값: 릴레이션에 투플을 삽일할 시점에 그 투플의 모든 애트리뷰트들의 값이 알려지지 않을 수 있다. ‘알려지지 않음’또는 ‘적용할 수 없음’을 나타내기 위해 널값을 사용한다.
→ 널값은 임의의 애트리뷰트 나타날 수 있는 값과도 다른 특별한 값으로 생각할 수 있다. 널값은 숫자 타입의 0이나 문자열 타입의 공백 문자 또는 공백 문자열과 다르다. 널은 0이 아니고, 공백 문자가 아니고, 공백 문자열은 모두 특정한 값을 나타내는 반면에 널은 값이 없음을 나타낸다.
• 릴레이션 스키마: 렐레이션의 이름과 릴레이션의 애트리뷰트들의 집합. 스키마는 릴레이션을 위한 틀이자 구조이다. 릴레이션 스키마는 다음과 같이 나타낸다.
→ EMPLOYEE(EMPNO, EMPNAME, TITLE, DNO, SALARY)
→ 이런 표기법은 릴레이션의 상세한 내용은 숨기면서 데이터베이스의 전체적인 구조를 병확하게 나타낼 때 유용하다.
→ 내포라고 한다.
• 릴레이션 인스턴스: 릴레이션에 어느 시점에 들어 있는 투플들의 집합이다. 릴레이션 인스턴스는 정적이지 않고 시간의 흐름에 따라 계속 변한다.
→ 투플의 삭제, 수정 등
→ 데이터 조작어(DML)를 통해 이루어진다.
→ 외연이라고 한다.
• 관계 데이터베이스 스키마: 하나 이상의 릴레이션 스키마들로 이루어진다.
• 관계 데이터베이스 인스턴스: 릴레이션 인스턴스들의 모임으로 구성된다.
'Learn business > Database' 카테고리의 다른 글
릴레이션 키 총 정리 (0) | 2017.03.23 |
---|---|
ANSI/SPARC 3단계 (0) | 2017.03.23 |
DBMS의 언어 (0) | 2017.03.23 |
DBMS의 발전 과정 (0) | 2017.03.23 |
데이터베이스란? (0) | 2017.03.23 |