본문 바로가기

카테고리 없음

DB (관계형 데이터 베이스 관계, PK, FK) [짧]

관계형 데이터베이스의 관계

 

 

구조화된 데이터는 하나의 테이블로 표현

사전에 정의된 테이블을 릴레이션이라 하고, 테이블을 사용하는 데이터베이스를 관계형 데이터베이스라고 한다.

 

각 테이블 사이에는 관계라는 개념이 존재하며, 관계는 일대일(1:1), 일대다(1:N), 다대다(N:M) 관계가 있다.

그리고 이걸 화살표로 나타낼 수 있는데,

 

1:1 관계

부모는 하나의 자식이 있다.

 

하나의 레코드가 다른 테이블의 레코드 한 개와 연결된 경우이다.

 

즉, 하나의 부모는 하나의 자식을 가지는 1:1 관계이다.

 

 

다 대 다 관계 (N : M) 관계

 

다대다는 여러개의 부모가 여러개의 자식을 가질 수 있는 뜻이다.

양방향에서 다수의 레코드를 지닐 수  있따.

 

다대다는 여러 부모, 여러 자식 처럼 한 학생이 여러 수업을 들을 수 있고, 한 수업에 여러 학생이 참관할 수 있으니, 다대다 구조이다.

 

 

1:N 구조

 

한 부모가 여러 자식을 가질 수  있는 말.

 

한 명의 작가는 여러 책을 쓸 수 있다.(1:N) , 한명의 소비자는 책을 여러 권 구매 가능 하다. (1:N)

 

 

결론

 

 

 

 

 

FK, PK

 

 

 

PK(primary key: 기본키) = 기본적으로있어야 하는 키

(학생코드, 수업코드) 등 무조건 존재하는 키 이다.

 

PK는 테이블 행의 여러 정보들 중 행을 식별할 수 있어야 하는 때문에 비어있으면 안되고(NOT NULL) 중복되어서도 안된다(Unique). 그리고 식별을 할 때 테이블의 정보를 최대한 빠르게 검색해야 하므로 간단한 정보일 수록 좋다.

 

PK가 다수  일 경우 : 테이블의 복잡성이 증가한다. / 테이블 구조 변경 및 확장이 어려워 진다.

 

PK가 필요한 이유 : 중복된 튜플 방지

 

 

FK(foreign key:외래키)는 참조하는 테이블과 참조되는 테이블의 관계를 나타낸다.
그림에서 학생_수업 테이블은 학생테이블과 수업테이블의 관계를 1:N 관계로 나타내기위한 테이블이므로 학생테이블과 수업테이블을 참조하여 만들어야 한다.

 

즉, PK 참조시 필요한 외래키 테이블 관계이다.

 

학생과 수업 테이블의 PK가 학생-수업 테이블에서는 FK가 되며
이는 학생-수업테이블은 학생과 수업테이블을 참조하는 테이블이라는 의미를 표현하며
동시에 학생과 수업테이블은 학생-수업테이블에 의해 참조되는 테이블로 서로의 관계를 알 수 있게 된다.

 

FK: 무조건 NULL이 허용된다.

 

FK가 필요한 이유 : 무결성 참조를 방지한다.