Meme's IT

[DB] DB의 관계 종류와 KEY 본문

BackEnd/DB

[DB] DB의 관계 종류와 KEY

Memez 2023. 10. 23. 01:10

DB의 관계 종류는 크게 세가지로 나눌 수 있다.

 

# 1:1 관계

A 테이블의 하나의 레코드가 B 테이블의 하나의 레코드와 연결된 경우

예를 들어, 각 사용자는 하나의 프로필을 가짐 /  각 주문은 하나의 결제 정보를 가짐

  • 외래키의 위치: 시스템에서 조회가 많은 쪽

# 1:N 관계

A 테이블 하나의 레코드가 B 테이블 여러 레코드와 연결된 경우

예를 들어, 하나의 게시글에는 여러 개의 댓글이 달릴 수 있다

  • 외래키의 위치: N쪽에 있어야 함

# N:M관계

A 테이블 여러 레코드가 B 테이블 여러 레코드와 연결된 경우

예를 들어, 한 게시글에는 여러 명이 좋아요를 누를 수 있고 한 명이 여러 개의 게시글에 좋아요를 누를 수 있다.

  • 외래키의 위치: 중계 테이블을 생성해야 한다

 


DB에서 특정 레코드를 고유하게 식별할 수 있는 필드 또는 필드 집합을 KEY라고 한다.

데이터를 검색하거나 조작할 때 KEY값을 이용해서 식별할 수 있다.

 

# KEY의 종류

1. 기본키(Primary Key, PK)

테이블 내에서 각각의 레코드를 식별하는 역할을 하는 키

유일(= 중복 X)하고, NULL 값이 허용되지 않음

2. 외래키(Foreign Key, FK)

하나의 테이블에서 다른 테이블의 기본키를 참조하는 키

두 개 이상의 테이블을 연결할 때 사용된다.

  • 꼭 써야할까? → 데이터의 무결성을 위해 제약 조건을 거는 것
  • 장점: 데이터의 무결성이 보장됨(사용자가 만들 수 있는 에러가 줄어 듦)
  • 단점: 리소스가 더 발생함

3. 추가적으로..

후보키(기본키로 사용할 수 있는 속성) , 복합키(두 개 이상의 속성을 조합하여 사용하는 키), 대체키(후보키들 중에서 선탠된 기본키가 될 수 있는 키), 슈퍼키(유일성만 만족, 최소성은 만족하지 않음) 등이 있음

'BackEnd > DB' 카테고리의 다른 글

[SQL] SQL 명령어와 기본 지식  (0) 2023.10.12
[DB] DB의 종류 (관계형 / 비관계형)  (0) 2023.10.12
[DB] DB의 구성 요소  (0) 2023.10.10
[DB] DB 기초  (0) 2023.10.10