Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- SQL
- Two Pointer
- resnet
- SQLD
- 연산량 감소
- CROSS JOIN
- 백준
- get_dummies()
- dfs
- BFS
- outer join
- Depthwise Separable Convolution
- 식별자
- pytorch
- 데이터모델링
- mobilenet
- Inductive Bias
- skip connection
- dp
- 인접행렬
- 1x1 Convolution
- bottleneck
- depthwise convolution
- 인접리스트
- numpy
- 정규화
- feature map
- SQLD 후기
- 엔터티
- 그래프
Archives
- Today
- Total
SJ_Koding
SQLD 대비 (3) - 식별자(Identifier) 본문
2023.11.11 - [SQL/SQLD] - SQLD 대비 (2) - 엔터티(Entity)와 속성(Attribute), 관계(Relationship)
이전 글과 이어지는 글입니다. 해당 정리글은 아래의 유튜브 영상을 참고하여 만들었습니다. 문제 시 삭제하겠습니다.
빨간색 형광펜은 강의에서 강조한 부분, 노란색 형광펜은 추가 서치로 내용을 '직접' 보강한 부분입니다.
https://youtu.be/gmMaH5mMJ9M?t=1691
식별자
1. 식별자 개념
- 식별자는 엔터티를 대표하는 속성을 의미한다.
- 하나의 엔터티는 반드시 하나의 유일한 식별자를 가지고 있어야 한다.
- 식별자는 유일해야하는데, 식별자는 여러 개의 컬럼이 하나의 식별자(복합 식별자)가 될 수 있음
2. 식별자 특징
- 엔터티내 각 인스턴스를 유일하게 구분할 수 있는 구분자.
- 다른 엔터티와 관계를 연결하는 식별자
- 유일성, 최소성, 불변성, 존재성을 만족
3. 주식별자의 특징
- 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
- 존재성 : 주식별자가 지정 되면 반드시 값이 존재 해야 함 (Not null)
- 유일성 : 주식별자에 의해 엔터티 내에 모든 인스턴스들을 유일하게 구분 해야 함 (고유해야함)
- 불변성 : 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함
4. 키의 종류
- 기본키(Primary Key) : 후보키 중에서 엔터티를 대표할 수 있는 키
- 후보키(Candidate Key) : 유일성과 최소성을 만족하는 키
- 슈퍼키(Super Key) : 유일성은 만족하지만 최소성을 만족하지 않는 키 (따라서 과도하게 많은 정보를 포함할 수 있음)
- 대체키(Alternate Key) : 여러 개의 후보키 중에서 기본키를 선정하고 남은 키
- 외래키(Foreign Key) : 타 테이블의 기본키 필드를 가리키는 것으로 참조무결성을 확인하기 위해 사용되는 키 (허용된 값만 저장하기 위해서 사용)
4-1. 키의 종류 보충설명
1. 슈퍼키 (Superkey)
- 정의: 슈퍼키는 테이블 내의 각 행(row)을 유일하게 식별할 수 있는 하나 이상의 속성(attribute)의 조합입니다.
- 특징: 슈퍼키는 과도하게 많은 정보를 포함할 수 있으며, 최소성 원칙을 만족하지 않을 수 있습니다.
2. 후보키 (Candidate Key)
- 정의: 후보키는 테이블 내의 각 행을 유일하게 식별할 수 있는 최소한의 속성 조합입니다.
- 특징: 후보키는 슈퍼키 중에서 불필요한 속성을 제거하여 최소성을 만족하는 키입니다. 한 테이블에는 여러 후보키가 존재할 수 있습니다.
3. 기본키 (Primary Key)
- 정의: 기본키는 후보키 중에서 선택된 주 키로, 테이블 내의 각 행을 유일하게 식별하는 데 사용됩니다.
- 특징: 기본키는 고유해야 하며, NULL 값을 가질 수 없습니다. 각 테이블은 오직 하나의 기본키를 가집니다.
4. 대체키 (Alternate Key)
- 정의: 대체키는 기본키로 선택되지 않은 후보키입니다.
- 특징: 대체키는 기본키와 동일하게 각 행을 유일하게 식별할 수 있는 능력을 가지지만, 기본키로 선택되지 않았습니다.
5. 외래키 (Foreign Key)
- 정의: 외래키는 다른 테이블의 기본키를 참조하는 속성이나 속성의 조합입니다.
- 특징: 외래키는 두 테이블 간의 관계를 생성하는 데 사용됩니다. 외래키는 참조하는 테이블의 기본키와 동일한 값을 가질 수 있으며, NULL 값을 허용할 수도 있습니다.
4-2 키 예시
1. 슈퍼키 (Superkey)
- 예시: {'학번', '이름'}, {'학번', '주소'}, {'학번', '전화번호'}, {'학번', '이메일'}
- 설명: 이들 조합은 모두 테이블 내의 각 학생을 유일하게 식별할 수 있습니다. 하지만, '학번'만으로도 학생을 유일하게 식별할 수 있으므로, 이 외의 정보는 과도합니다.
2. 후보키 (Candidate Key)
- 예시: '학번', '이메일'
- 설명: '학번'과 '이메일'은 각각 독립적으로 학생을 유일하게 식별할 수 있습니다. 여기서 '학번'과 '이메일'은 최소성을 만족하는 후보키입니다.
3. 기본키 (Primary Key)
- 예시: '학번'
- 설명: '학번'이 기본키로 선택될 수 있습니다. 이는 각 학생을 유일하게 식별하고, NULL 값을 가질 수 없습니다.
4. 대체키 (Alternate Key)
- 예시: '이메일'
- 설명: '이메일'은 기본키로 선택되지 않은 후보키이므로, 대체키가 됩니다.
5. 외래키 (Foreign Key)
- 예시: '학생' 테이블의 '주소'가 '주소' 테이블의 '주소'를 참조하는 경우
- 설명: 여기서 '학생' 테이블의 '주소' 속성은 '주소' 테이블의 기본키인 '주소'를 참조하므로, 외래키가 됩니다. 이를 통해 두 테이블 간의 관계가 형성됩니다.
5. 식별자 분류
- 내부식별자: 엔터티 내부에서 스스로 생성되는 식별자
- 외부식별자: 다른 엔터티와 관계로 인하여 만들어지는 식별자
ex) 회원키: A01, 상품키: KKK, 구매키: A01+KKK - 단일식별자: 하나의 속성으로 구성
- 복합식별자: 다수의 속성으로 구성
ex) 학년, 반은 중복될 수 있으나 학년, 반, 번호는 고유함. 이렇게 3개의 속성을 하나의 키로 잡는 것 == 복합식별자 - 본질식별자: 비즈니스 프로세스에서 만들어지는 식별자
- 인조식별자: 인위적으로 만들어지는 식별자
6. 주 식별자 도출방법
- 해당 업무 및 데이터에서 주로 사용되는 속성을 주 식별자로 지정한다.
- 이름이나 명명된 호칭, 길이가 일정하지 않은 내용 등은 주식별자로 지정하지 않는다.
- 복합키를 구성할 때 너무 많은 속성이 포함되지 않도록 주의한다.
7. 식별자 관계와 비식별자 관계
- 부모 엔터티의 주식별자가 자식 엔터티의 주식별자로 상속되는 경우 (강한 관계)
- 부모 엔터티의 주식별자가 지식 엔터티의 일반 속성으로 상속되는 경우 (약한 관계)
다음글
2023.11.12 - [SQL/SQLD] - SQLD 대비 (4) - 성능 데이터 모델링 및 정규화/반정규화
'SQL > SQLD' 카테고리의 다른 글
SQLD 대비 (6) - SQL 문법 및 라이브러리_1 (1) | 2023.11.13 |
---|---|
SQLD 대비 (5) - 관계형 데이터베이스 (RDBMS) (0) | 2023.11.13 |
SQLD 대비 (4) - 성능 데이터 모델링 및 정규화/반정규화, 데이터베이스 (0) | 2023.11.12 |
SQLD 대비 (2) - 엔터티(Entity)와 속성(Attribute), 관계(Relationship) (0) | 2023.11.11 |
SQLD 대비 (1) - 데이터 모델의 이해 (0) | 2023.11.09 |