데이터베이스 관계는 데이터베이스 내 테이블들이 어떻게 서로 연결되어 있는 지 나타내는 방식
이다. 이에는 일대일 관계, 일대다 관계, 다대다 관계 등이 있다. 일대일 관계는 테이블1의 key 하
나가 테이블2의 key 하나와 연결된 관계이다. 일대다 관계는 테이블1의 key 하나가 테이블2의
key여러 개와 연결된 관계이다. 다대다는 테이블과 테이블 사이를 연결해주는 별도의 테이블을
만들어 다대다 관계를 두 개의 일대다 관계로 풀어주며 구현한다.
속성은 데이터베이스를 구성하는 가장 작은 논리적 단위이다. 이는 Entity 의 고유 성격을 표현한
다. 인스턴스의 구성요소이고, 업무에 필요한 데이터를 저장할 수 있다.
관계형 데이터베이스에서 Tuple은 하나의 레코드이다. 한 행을 의미하며, 서로 다른 객체를 보관
할 수 있는 데이터 구조이다.
유일성을 만족하는 키이다. 키 중에서 가장 많은 것을 포괄하는 개념이다. 어떤 속성끼리 묶던 중
복 값이 안 나오고 서로 구별만 할 수 있으면 된다.
슈퍼키들 중에서 속성은 최소한의 개수로 구분할 수 있어야 후보키가 될 수 있다. 최소성을 만족
하지 못하는 키는 제외된다.
테이블에서 데이터를 유일하게 구분하는 키를 기본키라고 한다. 기본 키는 후보키들 중에서 하나
를 선택한 키이다. 최소성과 유일성을 만족하는 속성이다. 테이블에서 기본키는 단 1개만 지정할
수 있다. 또한 NULL값을 지닐 수 없으며, 중복된 값을 가질 수도 없다.
기본키를 다른 테이블의 외래키와 연결되어 테이블 간에 연결된다. 외래키는 한 테이블의
attribute 중 다른 테이블의 행을 식별할 수 있는 키이다. 참조되는 테이블의 기본키와 동일한 키
속성을 가진다. 참조될 열의 값은 참조될 테이블에서 기본키로 설정되어 있어야 한다. 참조되는
테이블고 당하는 테이블에 같은 (참조되는 테이블=부모테이블=시작점=먼저 만들어짐, 참조하는
테이블=자식 테이블=화살표방향) 자식테이블을 삭제해야 부모테이블을 삭제할 수 있다.
참조되는 테이블에 외래키가 있어야 한다. 외래 키 제약조건을 고려해야 합니다.
a. Insert의 예
department 테이블의 Dapt_name값을 갖는 행을 instructor에 삽입하면 외래 키 제약 조건을 위
반합니다.
b. Delete의 예
Department 테이블에는 dept_name 값이 있어서 외래 키 제약 조건을 위반합니다.
Day와 start_time은 기본키에 속합니다. 왜냐하면 특정 수업이 일주일 중 특정 Day에 start_time
이 다르게 진행될 수 있기 때문입니다. 같은 날에도 두 번 이상 진행이 될 수도 있습니다. 하지만
하나의 수업은 한번의 세션으로 진행될 것이기 때문에 DB 프로그래머는 end_time에 대한 자료
를 더 추가할 계획이 없을 것입니다. 따라서 추가하지 않았을 것입니다.