[관계 데이터 모델]
* 용어 정리
- 릴레이션(Relation) : 행과 열로 구성된 테이블
- 관계 (Relationship)
1. 릴레이션 내에서 생성되는 관계
2. 릴레이션 간에 생성되는 관계
- 릴레이션의 구성요소
1. 스키마 : 관계 데이터베이스의 릴레이션이 어떻게 구성되는지 어떤 정보를 담고 있는지에 대한 기본적인 구조를 정의
2. 인스턴스 : 정의된 스키마에 따라 테이블에 실제로 저장되는 데이터의 집합
- 릴레이션 스키마 : 릴레이션에 어떤 정보가 담길지를 정의
- 릴레이션 인스턴스 : 릴레이션 스키마에 실제로 저장된 데이터의 집합
- 속성(Attribute) : 릴레이션 스키마의 열
- 도메인(Domain) : 속성이 가질 수 있는 값의 집합
- 차수(Degree) : 속성의 개수
- 투플(Tuple) : 릴레이션의 행
- 카디날리티(Cardinality) : 투플의 수
- 관계 데이터 모델 : 데이터를 2차원 테이블 형태인 릴레이션으로 표현하며, 릴레이션에 대한 제약조건과 관계 연산을 위한 관계대수를 정의
※ 테이블과 릴레이션은 같은 의미이지만, 테이블은 데이터베이스 상에서 쓰이는 용어이며, 릴레이션은 우리가 이론적으로 말할 때 쓰는 용어임.
* 릴레이션의 특징
- 속성은 단일 값을 가짐.
- 속성은 서로 다른 이름을 가짐
- 한 속성의 값은 모두 같은 도메인 값을 가짐.
- 속성의 순서는 상관없음.
- 릴레이션 내의 중복된 투플은 허용하지 않음
- 투플의 순서는 상관없음.
* 키의 종류
- 슈퍼키 : 투플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합.
- 후보키 : 투플을 유일하게 식별할 수 있는 속성의 최소 집합.
- 기본키 : 여러 후보키 중 하나를 선정하여 대표로 삼는 키 (유일성과 최소성을 만족해야 함.).
- 대리키 : 가상의 속성을 만들어 기본키로 삼는 경우 이러한 키를 대리키라고 함.
- 대체키 : 기본키로 선정되지 않은 후보키.
- 외래키 : 다른 릴레이션의 기본키를 참조하는 속성.
* 외래키의 특징
- 관계데이터모델의 릴레이션 간의 관계를 표현함.
- 다른 릴레이션의 기본키를 참조하는 속성
- 참조하고(외래키) 참조되는(기본키) 양쪽 릴레이션의 도메인은 서로 같아야 함.
- 참조되는(기본키) 값이 변경되면 참조하는(외래키) 값도 변경됨.
- NULL 값과 중복 값 등이 허용됨.
- 자기 자신의 기본키를 참조하는 외래키도 가능함.
- 외래키가 기본키의 일부가 될 수 있음.
* 무결성 제약조건
1. 데이터 무결성(Integrity)
: 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것.
2. 도메인 무결성 제약조건(Domain Integrity Constraint)
: 릴레이션 내의 투플들이 각 속성의 도메인에 지정된 값만을 가져야 한다는 조건.
3. 개체 무결성 제약조건(Entity Integrity Constraint)
: 릴레이션은 기본키를 지정하고 그에 따른 무결성 원칙 즉, 기본키는 NULL 값을 가져서는 안되며 릴레이션 내에 오직 하나의 값만 존재해야 한다는 조건.
4. 참조 무결성 제약조건(Referential Integrity Constraint)
: 외래키 제약이라고도 하며, 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 동일해야 하며, 자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는다는 것.
* 외래키 옵션
- RESTRICTED : 자식 릴레이션에서 참조하고 있을 경우 부모 릴레이션의 삭제 작업을 거부함.
- CASCADE : 자식 릴레이션의 관련 투플을 같이 삭제함.
- DEFAULT : 자식 릴레이션의 관련 투플을 미리 설정해둔 값을 변경함.
- NULL : 자식 릴레이션의 관련 투플을 NULL 값으로 설정함 (NULL 값을 허용한 경우)
'프로그래밍 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 데이터조작어 - 검색 (0) | 2017.07.18 |
---|---|
[데이터베이스] SQL 기초 (0) | 2017.07.17 |
[데이터베이스] 관계 대수 (0) | 2017.07.13 |
[데이터베이스] 데이터베이스 시스템 (0) | 2017.07.10 |