방통대 데이터베이스 수업 내용을 정리했습니다.
- 잘못된 데이터베이스 모델링
데이터중복, 갱신이상(삽입 이상, 삭제 이상, 수정 이상)
정규화 : 관계형 모델에서 논리적 스키마를 효율적으로 모델링하는데 이용되는 기법
고려사항 : 한 릴레이션 내의 컬럼 간의 관계 표현, 종속과 중복제거, 관계 수정 최소화
함수적 종속성 : 릴레이션 인스턴스를 분석하여 속성들 간의 연관 관계를 표현한 것
함수적 종속성 추론 규칙 : 숨어있는 함수적 종속성을 찾기 위해 추론 규칙을 사용함. F의 클로저
커버 : 함수적 종속성들의 집합 E가 있을 때 E가 F+에 포함되면 E의 모든 함수적 종속성이 F로부터 추론 될 수 있다.
이때 F가 E를 커버하다고 말함
카노니컬 커버 : 함수적 종속성 추론 규칙으로 확장한 클로저에는 자명한 종속성과 중복된 종속성이 포함됨.
따라서 불필요한 함수적 종속성을 제거하여 정규화함
정규형 : 정규화 과정에서 사용되는 중복을 최소화하는 릴레이션의 형식
정규화의 목적
1. 어떠한 릴레이션이라도 데이터베이스 내에서 표현할 수 있도록 함
2. 보다 간단한 관계 연산에 기초하여 검색 알고리즘을 효과적으로 작성
3. 릴레이션에 바람직하지 않은 삽입, 수정, 삭제 등의 이상이 발생하지 않도록 함
4. 새로운 데이터가 삽입될 때, 릴레이션을 재구성할 필요성을 줄임
제1정규형 : 릴레이션의 모든 속성이 단일 값으로 구성되어야 하는 조건,
함수적 종속성 다이어그램 : 릴레이션 내의 속성간의 종속 관계를 직관적이고 이해하기 쉽게 도식화 한 표현방식
연습문제
1. 다음 중 정규화에 대한 설명으로 올바르지 않은 것은?
-> 릴레이션 간 공통부분을 도출하고 유사 릴레이션을 통합한다 x -> 정규화는 컬럼 간의 연관관계를 이용
하여 릴레이션의 비효율성을 제거한다.
2. 이것은 릴레이션 인스턴스를 분석하여 속성들 간의 연관관계를 표현한 것으로, 주어진 릴레이션
인스턴스에서 서로 다른 두 레코드와 속성 집합 X와 Y에 대해, 두 레코드의 X 속성값이 같을 때,
Y의 속성값이 같으면 성립하는 특성을 말한다. -> 함수적 종속성
3. 릴레이션 내의 컬럼 간의 종속 관계를 직관적이고 이해하기 쉽게 직사각형과 화살표로
도식화한 표현 방식을 무엇이라고 하는가? -> 함수적 종속성 다이어그램
4. 다음 중 사업자 릴레이션에 포함된 함수적 종속성이라고 할 수 없는 것은? 1번 사업자번호->공사구분
5. 사업자 릴레이션에 대한 함수적 종속성 집합 F의 F+에 포함되는 종속성이 아닌 것은? 2번 건축물,층수 -> 공사구분
6. 사업자 릴레이션의 클로저 F+에 대한 카노니컬 커버 Fc를 생성하는 과정에서 제거되는 함수적 종속성은?
-> 3번 층수, 사업자 -> 공사구분
4~6번 문제풀이는 시험전 다시 한 번 체크하기
정리하기
1.관계형 데이터베이스 모델링 과정에서 효율성을 위해 속성들을 어떻게 그룹화할 것인가는 데이터베이스의
정확성을 판단하는 데 중요한 기준이 된다. 정규화 과정에서 고려해야 할 사항은 데이터의 중복을
제거하고, 새로운 속성들이 데이터베이스에 추가될 때 기존 속성과의 관계에서 수정을 최소화해야 한다는
것이다. 또한 정규화 과정을 통해 데이터 저장을 위한 공간의 낭비를 줄일 수 있다.
2.데이터베이스에서 정규화가 이루어지면 아래와 같은 갱신 이상 현상을 방지할 수 있다.
① 삽입 이상:파일에 레코드를 추가할 때, 불필요한 항목의 값이 들어오는 경우, 두 개 이상의
릴레이션의 조인 시 속성으로 결과가 나타난다.
② 삭제 이상:키 값 삭제 시 의도와는 달리 다른 데이터가 삭제될 때 발생한다.
③ 수정 이상:하나의 파일이 불필요한 중복을 포함하면서 수정될 때, 몇 개의 다른 논리적인 항목들이
수정될 필요성이 있을 때 일어난다.
3.함수적 종속성은 릴레이션 스키마의 속성들 사이에 명시되는 기본적인 제약조건이다.
함수적 종속성에 의한 방법과 추론하는 방법을 바탕으로 기본적인 정규형을 나열하면 다음과 같다.
① 제1정규형:어떤 릴레이션의 모든 속성이 단순 영역에서 정의되면, 이 릴레이션은 제1정규형이다.
즉, 모든 속성이 원자값(atomic value)을 가지는 것이다.
② 제2정규형:어떤 릴레이션 R이 제1정규형이고, 이 릴레이션의 기본키가 아닌 속성들이 기본키에 대해
완전 종속이면, 이 릴레이션은 제2정규형이다.
③ 제3정규형:어떤 릴레이션 R이 제2정규형이고, 이 릴레이션의 기본키가 아닌 속성들이 어떤 키에도
이행적으로 종속하지 않을 때, 이 릴레이션은 제3정규형이다.
④ BC정규형:어떤 릴레이션 스키마 R에서 성립하는 X → A 형태의 모든 함수적 종속성에 대하여 X가
R의 수퍼키이면, 이 릴레이션은 BC정규형이다.
4.추가적인 정규형에는 다음과 같이 제4정규형과 제5정규형이 있다.
① 제4정규형:어떤 릴레이션 R에서 자명하지 않은 다중치 종속성 X ↠ Y가 존재하고 X가 수퍼키인 경우,
이 릴레이션은 제4정규형의 조건을 만족한다.
② 제5정규형:어떤 릴레이션의 종속성 집합 F+에 존재하는 모든 자명하지 않은 조인 종속성에 대해서
모든 Ri가 R의 수퍼키이면 R은 제5정규형의 조건을 만족한다.
'문돌이의 IT > Oracle' 카테고리의 다른 글
[컴퓨터과학과 데이터베이스]데이터 저장과 파일 (0) | 2017.05.20 |
---|---|
[컴퓨터과학과 데이터베이스]데이터베이스 정규화2 (0) | 2017.05.19 |
[컴퓨터과학과 데이터베이스]SQL (0) | 2017.05.18 |
[컴퓨터과학과 데이터베이스]관계형 모델 (0) | 2017.05.18 |
[방통대 컴퓨터과학과]데이터베이스 모델링 요약 (0) | 2017.05.02 |