post by WHITEHATS
정보처리기사 (필기) - 관계 데이터베이스 모델과 언어 2
3. 관계대수 및 관계해석
▶ 관계대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적 언어
- 순수 관계 연산자 : Select, Project, Join, Division
- 일반 집합 연산자 : UNION(합집합), INTERSECTION(교집합), DIFFERENCE(차집합), CARTESIAN PRODUCT(교차곱)
▶ 순수관계 연산자 (Select)
- 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만든다. 수평연산 이라고도 함.
- 연산자의 기호는 그리스 문자 시그마(σ)를 사용
- 표시 형식 : σ<조건> 릴레이션 이름
- 예제) σ평균>=90 성적
▶ 순수관계 연산자 (Project)
- 릴레이션에서 속성에 제시된 Attribute만을 추출하는 연산, 수직연산
- 연산자의 기호는 그리스 문자 파이(π)를 사용
- 표시형식 : π<속성> (릴레이션 이름)
- 예제) π이름.평균 (성적)
▶ 순수관계 연산자 (Join ) -> 두개의 테이블을 합치는 것
- 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만듬.
- 연산자의 기호는 ▷◁를 사용
- 표시 형식 : R▷◁속성r = 속성s S (R, S : 릴레이션 이름, r, s :각 릴레이션의 속성)
- 예제) 성적▷◁이름 = 이름 주소
▶ 순수관계 연산자 (Division)
- R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산
- 연산자의 기호는 ÷ 를 사용
- 표시 형식 : R [ 속성r ÷ 속성s ] S
- 예제) 수강 [ 과목 ÷ 과목 ] 강의
▶ 일반 집합 연산자
- UNION( 합집합 ∪ ) : 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플은 제거
- INTERSECTION( 교집합 ∩ ) : 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
- DIFFERENCE( 차집합 - ) : 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산
- CARTESIAN PRODUCT( 교차곱 × ) : 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산
▶ 관계해석
- 관계 데이터의 연산을 표현하는 방법
- 원하는 정보가 무엇이라는 것만 정의하는 비 절차적 언어.
- 튜플 관계해석과 도메인 관계해석이 있다.
4. 정규화(Normalization)
▶ 정규화 : 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어가는 과정
▶ 제1정규형, 제2정규형, 제3정규형, BCNF형, 제4정규형, 제5정규형
▶ 정규형의 차수가 높아질수록 만족시켜야 할 제약 조건이 늘어난다.
▶ 정규화는 논리적 설계 단계에서 수행
▶ 정규화의 목적
- 데이터 구조의 안정성을 최대화
- 어떠한 릴레이션도 표현 가능하게 만듬
- 중복 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지
- 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄임
▶ 이상(Anomaly) 현상
- 정규화를 거치지 않으면 데이터베이스 내에 데이터들이 불필요하게 중복되어 예기치 못한 곤란한 현상이 발생하는데 이를 이상현상이라 한다.
-- 삽입이상(InsertionAnomaly) : 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들도 함께 삽입되는 현상
-- 삭제이상(DeletionAnomaly) : 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 연쇄삭제 현상
-- 갱신이상(Update Anomaly) : 튜플에 있는 속성값을 갱신 할 때 일부 튜플의 정보만 갱신되어 모순이 생기는 현상
▶ 정규화 과정
- 1NF(제1정규형) : 모든 도메인이 원자값만으로 되어있는 릴레이션
- 2NF(제2정규형) : 1NF 이면서, 키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속 관계를 만족하는 릴레이션
- 3NF(제3정규형) : 2NF이고, 키가 아닌 모든 애트리뷰트가 기본키에 대해 이행적 종속 관계를 이루지 않도록 제한한 릴레이션
- BCNF(Boyce-Code 정규형) : 결정자가 모두 후보키인 관계형
-- 키가 아닌 모든 속성은 각 키에 대하여 완전 종속해야 한다.
-- 키가 아닌 모든 속성은 그 자신이 부분적으로 들어가 있지 않은 모든 키에 대하여 완전 종속해야 한다.
-- 어떤 속성도 키가 아닌 속성에 대해서는 완전 종속할 수 없다.
- 4NF(제4정규형) : 다치 종속 속성을 제거한 관계형
- 5NF(제5정규형) : 조인 종속성의 만족이 후보키를 통해서만 만족되는 릴레이션
▶ 정규화 절차
모든 값은 단일 값을 가지고, 테이블의 모든 행은 달라야 함
1정규형이고, 부분 함수적 종속을 제거해 완전 함수적 종속을 만족
2정규형이고, 주 식별자가 아닌 모든 속성들이주 식별자에 이행적 함수 종속 제거
3정규형이고, 모든 결정자들이 후보 식별자여야 함.
주 식별자에 대해 다중 값 종속을 갖지 않는 릴레에션
모든 조인 종속은 후보 식별자를 통해 성립
4-1. 정규화 : 제 1정규형 = 1NF
▶ 복수의 속성값을 갖는 속성의 분리
4-2. 정규화 : 제 2정규형 = 2NF
▶ 주 식별자에 종속적이지 않는 속성 분리
▶ 1정규형이고, 부분 함수적 종속을 제거해 완전 함수적 종속을 만족
4-3. 정규화 : 제 3정규형 = 3NF
▶ 2정규형이고, 주 식별자가 아닌 모든 속성들이 주 식별자에 이행적 함수 종속제거
▶ 신청번호 -> 회원번호, 회원번호 -> 회원주소
- 신청번호 -> 회원 주소는 이행적 함수 종속
- 이행적 함수 종속의 속성, 신청번호와 회원주소를 분리하여 비이행적 함수 종속을 만들면 3정규형 만족
4-4. 정규화 : BCNF
▶ 3정규형이고, 모든 결정자들이 후보 식별자여야 함.
- 후보키 : (학번, 과목), (학번, 강사)
- 함수적 종속 : (학번, 과목) -> 강사, 강사 -> 과목
- 결정자 : (학번, 과목), 강사
- 강사의 속성이 결정자이기는 하나 후보키가 아니므로 강사 속성을 분리하면 모든 결정자가 후보키 이므로 BCNF를 만족
4-5. 제 4정규형 : 4NF
▶ 주 식별자에 대해 다중 값 종속을 갖지 않는 릴레에션
- 다치 종속 : 1:다 대응값
- 다치 종속 값 제거 : 1:다 대응을 1:1 대응으로 만든다.
- A --> B
▶ 5NF(제5정규형)
- 조인 종속성의 만족이 후보키를 통해서만 만족되는 릴레이션
4정규형하고 5정규형은 이름만 알아도 됨!!
하얀모자의 whitehat
'▶ 자격증 > 정보처리기사' 카테고리의 다른 글
정보처리기사 (필기) - 관계 데이터베이스 모델과 언어 4 (0) | 2016.02.11 |
---|---|
정보처리기사 (필기) - 관계 데이터베이스 모델과 언어 3 (0) | 2016.02.11 |
정보처리기사 (필기) - 관계 데이터베이스 모델과 언어 1 (0) | 2016.02.11 |
정보처리기사 (필기) - 데이터 모델링 및 설계 2 (0) | 2016.02.10 |
정보처리기사 (필기) - 데이터 모델링 및 설계 1 (0) | 2016.02.10 |