하나의 엔터티를 구성하는 여러 속성 중에 엔터티를 대표할 수 있는 유일성을 만족하는 속성
대표성 여부에 따른 식별자 종류 | 주식별자 : 유일성과 최소성을 만족하면서 엔터티를 대표하는 식별자 다른 엔터티와 참조 관계로 연결될 수 있음 보조 식별자 : 유일성과 최소성은 만족하지만 대표성은 만족하지 못하는 식별자 다른 엔터티와 참조 관계를 가지지 못함 |
생성 여부에 따른 식별자 종류 | 내부 식별자 : 엔티티 내부에서 스스로 생성되는 식별자 외부 식별자 : 다른 엔터티와의 관계로 인해 만들어지는 식별자 |
속성의 수에 따른 식별자 종류 | 단일 식별자 : 하나의 속성으로 구성 복합 식별자 : 두 개 이상의 속성으로 구성 |
대체 여부에 따른 식별자 종류 | 본질 식별자 : 비즈니스 프로세스에서 만들어지는 식별자 인조 식별자 : 최대한 범용적인 값을 사용해 인위적으로 만들어지는 식별자[유일한 값을 만듦] 인조 식별자는 하나의 인조 속성을 다른 것으로 대체할 수 없음 * 인조식별자는 후보 식별자 중에서 주식별자로 선정할 것이 없거나 주식별자가 너무 많은 칼럼으로 되어있는 경우에 사용 → 순서번호를 사용해 만든 식별자 |
# 시험에 자주 출제되는 유형
시험에는 단순히 식별자를 구분하는 문제보다는 위의 그림처럼 그림이 주어지고 해당 식별자가 어느 식별자인지 묻는 유형이 자주 출제되므로 위의 그림으로 개념을 익혀두시면 많은 도움이 되실겁니다.
주식별자[기본키]의 특징
최소성[Minimality] | 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수를 가짐 |
대표성 | 주식별자는 엔터티를 대표할 수 있어야 함 |
불변성 | 특정 엔터티에 지정된 주식별자의 값은 변하지 않아야 함 |
유일성[Unique] | 주식별자는 엔터티의 모든 인스턴스를 유일하게 식별 |
키의 종류 | 설 명 |
기본키 [Primary Key] |
후보키 중에서 엔터티를 대표할 수 있는 주키[Primary Key] 하나의 테이블에서 유일성과 최소성, Not Null을 만족하면서 해당 테이블을 대표하는 것 * 한 릴레이션에서 특정 레코드를 유일하게 구별할 수 있는 속성 * 기본키로 정의된 필드(속성)에는 동일한 값이 중복되어 저장될 수 없음 * Null값을 가질 수 없음 |
외래키, 외부키 [Foreign Key] |
관계를 맺고 있는 테이블 R1, R2에서 테이블 R1이 참조하고 있는 테이블 R2의 기본키와 같은 R1 테이블의 속성을 외래키라고 함 * 참조 무결성[Referential Integrity]을 확인하기 위해 사용되는 키 * 허용된 데이터 값만 데이터베이스에 저장하기 위해 사용 * 하나의 테이블에는 여러 개의 외래키가 존재할 수 있음 * 외래키로 지정된 필드에는 Null값이나 중복된 값을 입력 가능 |
고유키 [Unique Key] |
테이블에 저장된 행 데이터를 고유하게 식별하기 위해 사용 * 단, NULL은 고유키 제약 대상이 아님[여러개의 NULL값을 가질 수 있음] |
후보키 [Candidate Key] |
테이블을 구성하는 속성들 중에서 레코드(튜플)을 유일하게 식별하기 위해 사용하는 속성들의 부분집합 기본키로 사용할 수 있는 속성 유일성과 최소성을 만족하는 키 |
대체키 [Alternate Key] |
후보키 중 기본키를 제외한 나머지 속성을 말함 |
슈퍼키 [Super Key] |
한 테이블 내에 있는 속성들의 집합으로 구성된 키 테이블을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않음 테이블을 구성하는 모든 튜플에 대한 유일성은 만족시키지만 최소성은 만족시키지 못함 |
# 기본키의 특징
최소성[Minimality] | 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수를 가짐 |
대표성 | 주식별자는 엔터티를 대표할 수 있어야 함 |
불변성 | 특정 엔터티에 지정된 주식별자의 값은 변하지 않아야 함 |
유일성[Unique] | 주식별자는 엔터티의 모든 인스턴스를 유일하게 식별 |
# 테이블 생성할 때 기본키 설정
방법1
CREATE TABLE 테이블명(
칼럼명1, 데이터 타입, DEFAULT 형식
, 칼럼명2, 데이터 타입, DEFAULT 형식
.......
,CONSTRAINT 기본키칼럼명_PK PRIMARY KEY (기본키칼럼명));
방법2
CREATE TABLE 테이블명(
칼럼명1 데이터타입 PRIMARY KEY
, 칼럼명2 데이터타입 DEFAULT형식
.......);
방법3
CREATE TABLE 테이블명(
칼럼명1, 데이터 타입, DEFAULT 형식
, 칼럼명2, 데이터 타입, DEFAULT 형식
.......);
ALTER TABLE 테이블명 ADD CONSTRAINT 키본키칼럼/테이블명_PK PRIMARY KEY (기본키칼럼명)
# 제약 조건[데이터 무결성]
데이터 무결성을 보장하기 위해서는 애플리케이션, Trigger, 제약조건을 사용
개체 무결성 | 기본키는 NULL값을 가질 수 없음 |
참조 무결성 | 외래키 값은 참조 테이블의 기본키 값과 동일해야 함 |
[개미의 걸음 SQLD 1과목] 성능 데이터 모델링 ① 정규화(Normalization) (0) | 2020.12.10 |
---|---|
[개미의 걸음 SQLD 1과목] 성능 데이터 모델링의 이해 (0) | 2020.12.09 |
[개미의 걸음 SQLD 1과목] 데이터 모델링 요소 ③. 관계(Relationship) (0) | 2020.12.07 |
[개미의 걸음 SQLD 1과목] 데이터 모델링 요소 ② 속성(Attribute) with 도메인 (0) | 2020.12.06 |
[개미의 걸음 SQLD 1과목] 데이터 모델링 요소 ① 엔터티(Entity) with 인스턴스 (0) | 2020.12.05 |
댓글 영역