[데이터베이스] - 개념적 설계, 도메인(Domain), 키(Key)
| 개념적 설계, 도메인(Domain), 키(Key)
도메인(Domain)
속성이 나타낼 수 있는 값들의 집합이다
키(=식별자)
각 투플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트(속성)들의 집합이다
1) 수퍼키(Super Key) : (유일성) = 중복불가
2) 후보키(Candidate Key) : (유일성, 최소성)
3) 기본키(Primary Key) : 후보키 중에서 선택된 하나의 키
4) 대체키(Alternate Key) : 후보키 중에서 기본키로 선택되지 않은 키
5) 외래키(Foreign Key) : 한 릴레이션의 기본키를 참조하는 키, 외래키는 참조되는 릴레이션의 기본키와 상호 대응된다
-- 고객(고객번호, 이름, 주민번호, 주소, 핸드폰)
수퍼키 : (고객번호), (고, 이), (고, 주), (고, 주소), (고, 핸) ~ (고, 이, 주, 주, 핸) 등 조합가능한 모든 것이다
ex) (고객번호, 주민번호)
수퍼키(유일성) 인가? 답은 O, 이유 : 유일성을 만족하니까
후보키(유일성, 최소성)인가? 답은 X, 이유 : 최소성을 위반하니까
후보키 : (고객번호), (주민번호)
기본키 : (고객번호)
외래키 : 없음
대체키(후보에서 떨어진 것) : (주민번호)
개념적 설계(ERD)
1. 엔티티(Entity) : 엔티티 타입(Entity type)
1) 정규 엔티티 : (사각형)
2) 약 엔티티 (사격형 2개)
2. 속성(애트리뷰트 : Attribute)
1) 단순 속성 : (타원형)
2) 키 속성(식별자) : (밑줄로 표시)
3) 복합 속성 : 두 개 이상의 속성으로 이루어진 속성(ex : 주소 - 시, 구, 동)
4) 다중값(다치) 속성 : 속성 하나에 여러 개의 값(ex : 취미, 특기, 보유기술), (타원형 2개)
별도의 엔티티로 분리(M:N관계도 별도 분리)
5) 유도 속성 : 실제 값 저장된 것이 아니라 저장된 값으로부터 계산해서 얻은 값(ex : 나이-주민등록번호로부터)
3. 관계(Relationship)
카디날리티 : 한 엔티티가 참여할 수 있는 관계의 수이다
참여도 : 필수(Mandatory)=전체참여(=), 선택(Optional)=부분참여(-)
엔티티 무결성 제약조건
기본 키는 널 값을 가질 수 없다
참조 무결성 제약조건
참조하는 테이블의 외래 키는 참조되는 테이블의 기본 키 값에 반드시 존재해야 한다
on delete cascade(연쇄 삭제)
부모 레코드 삭제 -> 자식 레코드도 삭제
on delete set null
부모 레코드 삭제 -> 자식은 NULL값으로 채움
on delete district(특별히 지정하지 않으면 이게 사용중 평소 생략되어 있음)
drop table 테이블명 purge; // 완전 삭제
'데이터베이스' 카테고리의 다른 글
[데이터베이스] - 약 엔티티, 코드 테이블 (0) | 2017.01.18 |
---|---|
[데이터베이스] - 수퍼타입 / 서브타입 (0) | 2017.01.18 |
[데이터베이스] - 쇼핑몰 / 이력서 / 영화관 모델링 (0) | 2017.01.18 |
[데이터베이스] - 매핑, on delete cascade, on delete set null (0) | 2017.01.18 |
[데이터베이스] - 데이터베이스 기본 개념 (0) | 2017.01.18 |