하나의 A는 하나의 B로 구성
하나의 A는 두개 이상으 B로 구성
하나의 A는 하나 이상의 B로 구성
하나의 A는 0, 1, 또는 그 이상의 B로 구성
- A는 부모, B는 자식의 관계를 가진 ERD이다.
식별, 비식별 관계
- 실선 : 부모 테이블의 기본키를 자식 테이블이 가지고 있으며 이를 기본키로 사용하는 경우
- 기본키에 외래키가 포함되어 있으면 식별 관계
- 외부테이블에 의해 식별되는 관계이다
- 점선 : 부모 테이블의 기본키를 자식 테이블이 가지고 있지만 이를 기본키로 사용하지 않을 경우
- 기본키에 외래키가 포함되지 않고 참조만 한다면 비식별 관계이다.
- 기본키는 테이블에 존재하는 수많은 데이터들을 구별할 수 있는 유일한 기준이 되는 속성
ex) 주민등록번호, ID
- NULL 값을 허용하지 않고 값은 반드시 고유하며, 중복된 값을 가질 수 없다
- 기본 키로 설정된 열은 자동으로 인덱스가 생성되어 검색 속도를 향상시킨다
- 복합키는 두 개 이상의 컬럼을 키로 지정하는 것
- 예를들어 학번을 기본 키로 설정할 때 학번의 값은 중복이 되면 안되므로 하나의 강의만 들어야 한다
- 따라서 학번 + 강의 번호를 기본키로 지정해 학번이나 강의 번호가 중복되어도 기본키를 위반한 것이 아니다
- 고유 키도 기본 키와 마찬가지로 각 행을 고유하게 식별하는 데 사용
- 고유 키는 NULL값을 허용한다. 한 열에 대한 중복된 값을 허용하지 않지만, 해당 열의 값이 NULL일 수 있다
- 테이블당 여러 개의 고유 키가 존재할 수 있다
- 기본 키와 달리 자동으로 인덱스가 생성되지 않으나 필요에 따라 수동으로 인덱스를 생성할 수 있다
- 기본 키는 주로 테이블의 주요 식별자로 사용하고, 테이블 간의 관계를 설정하기 위함
- 고유 키는 주로 데이터 무결성을 유지하면서 중복된 값을 방지하기 위함
- Entity간의 관계를 의미
- 두 Entity간에 선을 긋고 관계를 기록하게 된다
- 예를 들어 사원과 부서 Entity가 있을 때
부서 입장에서는 사원을 배치 받을 수도, 받지 않을 수도 있다
사원 입장에서는 부서가 필수적으로 배정받아야 한다
따라서 1:M 관계 (사원이 자식 노드, 부서가 부모 노드)