< 관계 데이터 모델 >
일반적으로 사용되는 논리적 데이터 모델 ( 개념적 구조를 논리적 구조로 표현 )
하나의 개체에 대한 데이터를 하나의 릴레이션에 저장
- 릴레이션( relation ) : 하나의 개체에 관한 데이터를 2차원의 테이블 구조로 저장한 것
- 속성 ( attribute ) : 릴레이션의 열
- 튜플 ( tuple ) : 릴레이션의 행
- 도메인 ( domain ) : 하나의 속성이 가질 수 있는 모든 값의 집합 → 속성의 특성을 고려한 데이터 타입으로 정의
- 널(null) : 속성 값을 아직 모름 Or 해당되는 값이 없음을 표현
- 차수( degree ) : 하나의 릴레이션에서 속성의 전체 개수
- 카디널리티 ( cardinality ) : 하나의 릴레이션에서 튜플의 전체 개수
< 릴레이션의 구성 >
릴레이션 스키마 ( relation schema )
릴레이션의 논리적 구조
릴레이션의 이름, 릴레이션에 포함된 모든 속성 이름으로 정의
ex) 고객 ( 고객아이디, 고객이름, 나이, 등급 직업, 적립금 )
릴레이션 인스턴스 ( relation instance )
어느 한 시점에 릴레이션에 존재하는 튜플들의 집합
< 데이터베이스의 구성 >
데이터베이스 스키마(database schema )
데이터베이스의 전체 구조
데이터베이스를 구성하는 릴레이션 스키마의 모음
데이터베이스 인스턴스 ( database instance)
데이터베이스를 구성하는 릴레이션 인스턴스의 모음
< 릴레이션의 특성 >
- 튜플의 유일성 : 하나의 릴레이션에는 동일한 튜플이 존재할 수 X
- 튜플의 무순서 : 릴레이션에서 튜플의 순서는 무의미
- 속성의 무순서: 릴레이션에서 속성의 순서는 무의미 ( 복합속성은 다 분할되어 만들어짐 )
< 키 ( Key ) >
릴레이션에서 튜플들을 유일하게 구별하는 속성 Or 속성들의 집합
키의 특성
- 유일성 ( uniqueness ) : 하나의 릴레이션에서 모든 튜플은 서로 다른 키 값 가져야 함
- 최소성 ( minimality ) : 최소한의 속성들로만 키를 구성함
키의 종류
슈퍼키( super key )
- 유일성을 만족하는 속성 Or 속성들의 집합
- ex) 고객아이디
- ex) ( 고객아이디, 고객이름)
- ex) ( 고객이름, 주소 )
후보키( candidate key )
- 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
- ex) 고객 아이디
- ex) (고객이름, 주소)
기본키( primary key )
- 후보키 중에서 기본적으로 사용하기 위해 선택한 키
- ex) 고객 아이디
대체키 ( alternate key )
- 후보키 중에서 기본키로 선택되지 못한 키
- ex) (고객이름, 주소)
외래키 ( foreign key )
- 다른 릴레이션의 기본키를 참조하는 속성 Or 속성들의 집합
- 참조하는 릴레이션 : 외래키를 가진 릴레이션
- 참조되는 릴레이션 : 외래키가 참조하는 기본키를 가진 릴레이션
- 외래키 속성과 그것이 참조하는 기본키 속성의 이름은 달라도 됨 But, 도메인(ex. int, string 등등) 은 같아야 함
- 하나의 릴레이션에는 외래키가 여러개 존재할 수 있고, 외래키를 기본키로 사용할 수도 있음
- 같은 릴레이션의 기본키를 참조하는 외래키도 정의 가능
- 널 값을 가질 수 있다
< 관계 데이터 모델의 제약 >
무결성 제약조건 ( integrity constraint )
데이터의 무결성(정확하고 유효하게 유지하는것)을 보장하고 일관된 상태로 유지하기 위한 규칙
개체 무결성 제약조건
- 기본키를 구성하는 모든 속성은 null값 가질 수 X
참조 무결성 제약조건
- 외래키는 참조할 수 없는 값을 가질 수 X
- 주의) null 값은 가질 수 있다