콘텐츠로 이동

관계형 데이터베이스

1. 관계형 모델 개념

데이터를 테이블(릴레이션) 형태로 표현합니다.

용어 설명
릴레이션(Relation) 테이블
튜플(Tuple) 행(Row)
속성(Attribute) 열(Column)
도메인(Domain) 속성이 가질 수 있는 값의 범위
기본키(PK) 튜플을 유일하게 식별하는 속성
외래키(FK) 다른 테이블의 기본키를 참조하는 속성

키의 종류

설명
슈퍼키 유일성을 만족하는 속성 집합
후보키 슈퍼키 중 최소성을 만족하는 것
기본키(PK) 후보키 중 선택된 키, NULL 불가
대체키 기본키로 선택되지 않은 후보키
외래키(FK) 참조 무결성을 위한 키

2. 정규화 (Normalization)

데이터 중복을 제거하고 이상(Anomaly) 현상을 방지합니다.

이상 현상

종류 설명
삽입 이상 불필요한 데이터를 함께 삽입해야 함
삭제 이상 튜플 삭제 시 다른 데이터도 함께 손실
갱신 이상 중복 데이터 중 일부만 수정되어 불일치 발생

정규형 단계

1NF (제1정규형)

모든 속성값이 원자값(단일값) 이어야 합니다.

위반: 취미 속성에 "독서, 운동" 처럼 여러 값 저장
해결: 각 값을 별도 행으로 분리

2NF (제2정규형)

1NF 만족 + 부분 함수 종속 제거 (기본키의 일부에 종속된 속성 분리)

위반: (학번, 과목코드) → 성적, 학번 → 학생명
      학생명이 기본키 일부(학번)에만 종속
해결: 학생 테이블과 수강 테이블로 분리

3NF (제3정규형)

2NF 만족 + 이행 함수 종속 제거 (A→B, B→C 이면 A→C 관계 제거)

위반: 학번 → 학과코드 → 학과명
      학과명이 학번에 이행 종속
해결: 학과 테이블 별도 분리

BCNF (보이스-코드 정규형)

3NF 만족 + 모든 결정자가 후보키 이어야 합니다.

3NF를 만족해도 이상 현상이 발생할 수 있는 경우를 처리


3. ER 다이어그램

개체(Entity)-관계(Relationship) 를 도식화합니다.

표기 요소

기호 의미
직사각형 개체(Entity)
타원 속성(Attribute)
마름모 관계(Relationship)
이중 타원 다중값 속성
밑줄 타원 기본키 속성

카디널리티

관계 설명 예시
1:1 하나에 하나 대응 사원 : 사원증
1:N 하나에 여러 개 대응 부서 : 사원
M:N 여러 개에 여러 개 대응 학생 : 과목

M:N 관계는 관계형 DB에서 중간 테이블(연결 테이블) 로 구현


시험 포인트

  • 정규화 단계: 1NF(원자값) → 2NF(부분종속 제거) → 3NF(이행종속 제거) → BCNF
  • 기본키: NULL 불가, 유일성 보장
  • 외래키: 참조 무결성 — 참조하는 테이블에 존재하는 값만 입력 가능
  • 이상 현상 3가지: 삽입/삭제/갱신 이상
  • M:N 관계: 반드시 중간 테이블로 분해