[SQL] 데이터베이스 입문 6일차_관계 만들기

관계의 개념

관계(relationship)란 여러 테이블에 분산 저장된 데이터가 서로 어떻게 연결돼 있는지를 정의하는 개념입니다. 테이블이 서로 관련 있는 데이터를 묶은 것이라면, 관계는 여러 테이블에 흩어져 있는 데이터 간 연결고리를 맺어 주는 것을 의미합니다.

  • 일대일 관계(1:1) : A 테이블의 한 튜플이 B 테이블의 특정 튜플과 1:1로 매칭될 때 일대일 관계라고 합니다.
  • 일대다 관계(1:N) : A 테이블의 한 튜플이 B 테이블의 여러 튜플과 연결된다면 이는 일대다 관계입니다. (반대로 B 테이블 입장에서는 다대일 관계)
  • 다대다 관계(N:M) : 여러 데이터가 여러 데이터와 연결된 관계를 말합니다. 다대다 관계를 구현하기 위해서는 연결고리 역할을 하는 중간 테이블이 필요합니다. 양쪽 테이블과 중간 테이블은 일대다 관계로 연결되며, 결과적으로 양쪽 테이블은 다대다 관계가 됩니다.

관계를 만드는 키

기본키

기본키(Primary Key)란 테이블 내에서 모든 튜플을 구분할 수 있는 칼럼 또는 칼럼의 조합으로 간단히 PK라고 합니다.

  • 유일성(uniqueness) : 기본키 값은 테이블 내에서 유일한 값을 가져야 합니다.
  • 비 널(non-nullable) : 기본키 값으로 NULL이 올 수 없고, 반드시 값이 저장돼야 합니다.
  • 불변성(immutability) : 기본키 값은 한 번 설정되면 변경할 수 없습니다.
  • 식별성(identifiability) : 기본키 값은 각 튜플을 구분하는 명확한 기준 역할을 해야 합니다.

외래키

외래키(Foreign Key)란 다른 테이블의 기본키를 가리키는 칼럼으로, 간단히 FK라고 합니다. 외래키는 두 테이블을 연결하는 역할을 합니다.

외래키는 기본키와 달리 NULL을 허용합니다.

제약 조건

  • AUTO-INCREMENT : 칼럼의 값을 자동으로 1씩 증가시킵니다. 정수형 칼럼에 붙일 수 있으며 주로 기본키와 함께 사용됩니다.
  • UNIQUE : 칼럼의 값으로 고유한 값만 허용합니다.
  • NOT NULL : 칼럼에 NULL을 허용하지 않습니다.
  • DEFAULT : 칼럼에 기본값을 지정합니다.
  • CHECK : 칼럼의 값이 특정 조건을 만족하도록 조건을 지정합니다. 조건을 만족하지 않는 값이 입력되면 에러가 납니다.
  • UNSIGNED : 숫자형 칼럼에서 음수를 허용하지 않고 양수 값만 저장하도록 제한합니다.

다양한 관계 만들기

CREATE TABLE 테이블명 (
   칼럼명1 자료형1,
   칼럼명2 자료형2,
   ...
   PRIMARY KEY (칼럼명),
   FOREIGN KEY (칼럼명) REFERENCES 연결대상_테이블(연결대상_테이블의_기본키)
);

BOOLEAN 자료형

BOOLEAN은 TRUE(참) 또는 FALSE(거짓)만을 값으로 갖는 자료형입니다. 내부적으로는 TINY(1)로 선언된 정숫값을 지니는데, 0은 거짓인 FALSE로 해석하고 그 외의 정수는 모두 참인 TRUE로 해석합니다.

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다