본문 바로가기
정보처리기사/데이터베이스 구축

데이터베이스 설계와 정규화

by jhwannabe 2023. 7. 14.

데이터베이스 설계 단계

요구조건 분석

  • 데이터베이스 사용자로부터 요구조건 수집과 요구조건 명세서를 작성함
  •  

개념적 설계

  • 목표 DBMS에 독립적인 개념 스키마를 설계함
  • 개념 스키마 모델링(E-R 다이어그램 작성)과 트랜잭션 모델링을 병행 수행함

논리적 설계

  • 목표 DBMS에 종속적인 논리적 스키마를 설계함
  • 스키마의 평가 및 정제를 함
  • 논리적 데이터 모델로 변환 및 트랜잭션 인터페이스를 설계함

물리적 설계

  • 목표 DBMS에 종속적인 물리적 구조를 설계함
  • 저장 레코드 양식 설계와 레코드 집중의 분석/설계, 액세스 경로 인덱싱, 클러스터링, 해싱 등의 설계가 포함됨
  • 접근 경로 설계 및 트랜잭션 세부 설계를 함

데이터베이스 구현

  • 목표 DBMS의 DDL로 스키마를 작성함
  • 데이터베이스에 등록 후 트랜잭션을 작성함

 

데이터베이스 정규화

정규화(Normalization)의 개념

  • 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정
  • 좋은 데이터베이스 스키마를 생성하고 불필요한 데이터의 중복을 방지하여 정보 검색을 용이하게 할 수 있도록 허용함

정규화의 목적

  • 데이터 구조의 안정성 최대화
  • 중복 데이터의 최소화
  • 수정 및 삭제 시 이상 현상 최소화
  • 테이블 불일치 위험 간소화

이상 현상(Anomaly)

  • 릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상을 의미
  • 종류 : 삽입 이상, 삭제 이상, 갱신 이상

<수강>

학번 과목코드 성적 학년
100 C413 A 4
200 C123 B 1
300 C312 B 3
400 C312 C 2
400 C324 A 2
400 E412 C 2

삽입 이상(Insertion Anomaly)

  • 데이터를 삽입할 때 불필요한 데이터가 함께 삽입되는 현상
  • <수강> 릴레이션에 학번이 600이고, 학년이 2인 학생 값을 새롭게 삽입하려 할 때, 이 학생이 어떤 과목을 등록해서 과목번호를 확보하지 않는 한 이 삽입은 성공할 수 없음(개체 무결성 위반)

삭제 이상(Deletion Anomaly)

  • 릴레이션의 한 튜플을 삭제함으로써 연쇄 삭제로 인해 정보의 손실을 발생시키는 현상
  • <수강> 릴레이션에서 학번이 200인 학생이 과목 'C123'의 등록을 취소한다고 하자. 해당 학생의 등록을 취소하면서 이 학생의 성적과 학년 정보도 함께 삭제됨

갱신 이상(Update Anomaly)

  • 튜플 중에서 일부 속성을 갱신함으로써 정보의 모순성이 발생하는 현상
  • <수강> 릴레이션에 학번이 400인 학생의 학년을 2에서 3으로 변경시킨다고 하자. 이 변경을 위해서는 이 릴레이션에 학번 400이 나타나 있는 튜플 3개 모두에 대해 학년의 값을 갱신시켜야 함. 그렇게 하지 않고 일부 튜플만 변경시키게 되면 학번 400인 학생의 학년이 2와 3, 즉 두 가지 값을 갖게 되어 일관성이 없게 됨

 

함수적 종속

함수적 종속

  • 개체 내에 존재하는 속성 간의 관계를 종속적인 관계로 정리하는 방법
  • 데이터 속성들의 의미와 속성 간의 상호 관계로부터 도출되는 제약조건
  • 기준값을 결정자(Determinant)라 하고 종속되는 값을 종속자(Dependent)라고 함
  • 속성 Y는 속성 X에 함수적 종속이라 하고 표현은 X → Y로 표현함. 이때 X를 결정자, Y를 종속자라고 부름

부분 함수적 종속

  • 복합 속성 (A, B)에 대하여 A → C가 성립할 때를 말함
  • 예) 학번 → 학과

이행 함수적 종속

  • 속성 X, Y, Z가 주어졌을 때 X → Y, Y → Z하면 X → Z가 성립된다는 것

  • 학번은 지도교수를 결정하고, 지도교수는 학과를 결정함. 즉 학번으로 학과를 결정할 수 있는 이행 종속 문제가 발생함
  • (학번, 지도교수), (지도교수, 학과) 두 개의 테이블로 분리하도록 함(3차 정규형 진행)
728x90
반응형

'정보처리기사 > 데이터베이스 구축' 카테고리의 다른 글

반정규화  (0) 2023.07.18
정규화  (0) 2023.07.18
관계형 데이터베이스 모델  (0) 2023.07.14
데이터베이스의 구성, 모델  (0) 2023.07.14
데이터베이스의 개념과 DBMS  (0) 2023.07.14