데이터베이스 설계 단계
요구조건 분석
- 데이터베이스 사용자로부터 요구조건 수집과 요구조건 명세서를 작성함
개념적 설계
- 목표 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 |