← 개념서모바일 버전
데이터베이스·1급 전용·20장

테이블 관계와 정규화

관계 설정과 참조 무결성 옵션, 조인의 종류, 정규화의 목적과 단계, 인덱스의 특성을 정리합니다.

노란 밑줄n회 기출에 나온 지점(숫자는 등장 문항 수)✎ 는 덧붙인 필기

출제 비중 — 참조 무결성11회 과 정규화7회, 인덱스17회 가 번갈아 나온다. 개념을 뒤집어 놓는 보기가 많다.

1. 관계 설정

  • [데이터베이스 도구] → 관계. 두 테이블에서 같은 값을 담는 필드(보통 한쪽의 기본 키와 다른 쪽의 외래 키)를 드래그해 연결한다.
  • 관계의 종류
종류 조건
일대다(1:N) 가장 일반적. 한쪽이 기본 키(또는 중복 불가 인덱스) 일 때
일대일(1:1) 양쪽 모두 기본 키이거나 중복 불가 인덱스일 때
다대다(N:M) Access 에서 직접 만들 수 없고, 가운데에 연결(접합) 테이블을 두어 일대다 두 개로 만든다
  • 관계를 맺는 두 필드는 데이터 형식이 같아야 한다(예외: 일련 번호 ↔ 숫자의 정수형).
  • 테이블을 디자인 보기에서 열어 둔 채로는 관계를 만들거나 수정할 수 없다.

2. 참조 무결성 옵션

  • 참조 무결성 적용11회 을 체크하면
    • 기본 테이블에 없는 값을 관련 테이블에 입력할 수 없다.
    • 관련 테이블에 레코드가 있으면 기본 테이블의 레코드를 삭제할 수 없다.
  • 함께 쓰는 두 옵션
옵션 동작
관련 필드 모두 업데이트 기본 테이블의 키 값을 바꾸면 관련 테이블의 외래 키도 함께 바뀐다
관련 레코드 모두 삭제 기본 테이블의 레코드를 지우면 관련 레코드도 함께 지워진다

3. 조인

조인 결과
내부 조인(INNER JOIN) 양쪽 모두 일치하는 레코드만
왼쪽 우선 외부 조인(LEFT JOIN) 왼쪽 테이블은 모두, 오른쪽은 일치하는 것만
오른쪽 우선 외부 조인(RIGHT JOIN) 오른쪽 전부 + 일치하는 왼쪽
셀프 조인 같은 테이블을 자기 자신과 조인
카티션 곱(크로스 조인) 조인 조건이 없을 때 모든 조합
  • 관계 창에서 선을 더블클릭 → 조인 속성에서 1·2·3번 유형을 고른다.

4. 정규화

  • 정규화7회: 테이블을 더 작은 테이블로 분해해 데이터 중복을 줄이고 이상(Anomaly) 현상을 없애는 과정.
  • 정규화로 막는 이상 현상 3가지: 삽입 이상 · 삭제 이상 · 갱신 이상.
  • 단계
단계 조건
제1정규형(1NF) 모든 속성이 원자 값(반복되는 그룹 제거)
제2정규형(2NF) 1NF + 부분 함수 종속 제거(기본 키 일부에만 종속된 속성 분리)
제3정규형(3NF) 2NF + 이행적 함수 종속 제거
BCNF 모든 결정자가 후보 키
  • 정규화하면 중복과 저장 공간이 줄고 무결성이 좋아지지만, 테이블이 나뉘어 조인이 늘어 검색 속도가 느려질 수 있다.

5. 인덱스

  • 인덱스17회: 검색·정렬 속도를 높이기 위해 만드는 색인.
  • 기본 키를 지정하면 인덱스가 자동으로 만들어진다(중복 불가).
  • 필드 속성의 인덱스: 아니요 / 예(중복 가능) / 예(중복 불가).
  • 인덱스를 많이 만들면 검색은 빨라지지만 입력·수정·삭제는 느려진다.
  • OLE 개체·첨부 파일·계산 형식 필드에는 인덱스를 만들 수 없다.

마무리 체크

  • 다대다는 연결 테이블로 일대다 두 개
  • 참조 무결성만 적용하면 변경·삭제가 막히고, 옵션을 켜야 연쇄된다
  • LEFT JOIN 은 왼쪽 전부
  • 1NF 원자값 / 2NF 부분 종속 제거 / 3NF 이행 종속 제거
  • 정규화는 중복↓ 무결성↑ 대신 조인 증가
  • 인덱스가 많으면 갱신이 느려진다, 기본 키는 자동 인덱스