안녕하세요 길벗수험서 운영팀입니다.
해당 문구들과 설명들은 기존 기사시험의 DB파트에서 나온 문제들의 문구들을 인용한 것입니다.
[28-1]
무손실 조인은 무손실 조인 분해를 의미하는 것으로 나뉘어진 2개의 관계를 합쳤을 때, 원래 가지고 있던 테이블에서 어떠한 데이터 손실이 없다는 것을 의미합니다. '정규화'의 기본 원칙 상 데이터 손실이 존재하면 안되기에 어떤 정규형에도 적용되야합니다.
종속성 보존은 속성 간 종속성이 분해로 인해 손실되지 않는다는 의미인데, 3정규화의 원칙인 이행적 함수적 종속 제거는 {A, B, C} 릴레이션에서 A->B->C 라는 경우를 없애는 것입니다.
이 경우 릴레이션으로 {A, B}, {B, C}로 분할하여 구성이 가능하니, 종속성이 손실될 여지가 존재하지 않죠.
(A->B, B->C라는 종속성은 유지되나 릴레이션이 나누어져 있어 하나의 릴레이션에 A->B->C가 발생할 수 없습니다.)
[28-3]
ABC 릴레이션에서 (A, B)->C, (A,C)->B, C->B 와 같은 종속성을 가지고 있을 때, 릴레이션이 { (A', B'), C } 형태를 가지고 있다면 { A', C' }, { C', B } 형태로 분할합니다.
( ' 는 키속성을 의미합니다. C가 결정자이면서 키가 아니기 때문에 정규화를 수행하죠. )
이 때 릴레이션을 보면 (A, B)->C, (A,C)->B라는 종속성이 손실된 것을 알 수 있습니다. 복합 속성이 분할되면서 복합 속성과 연관된 종속성이 사라진 셈이죠.
[29-ㄴ]
각 정규형은 반드시 선행 정규형이 준수되어야 합니다.
정규형의 순서를 기억하세요.
비정규 - 1NF - 2NF - 3NF - BCNF - 4NF - 5NF
3정규형을 만족하면서 BCNF가 아닌 건 있을 수 있지만, BCNF를 만족하면서 3정규형이 아닌건 있을 수 없습니다.
행복한 하루되세요 :)
-
관리자2020-03-09 14:14:37
안녕하세요 길벗수험서 운영팀입니다.
해당 문구들과 설명들은 기존 기사시험의 DB파트에서 나온 문제들의 문구들을 인용한 것입니다.
[28-1]
무손실 조인은 무손실 조인 분해를 의미하는 것으로 나뉘어진 2개의 관계를 합쳤을 때, 원래 가지고 있던 테이블에서 어떠한 데이터 손실이 없다는 것을 의미합니다. '정규화'의 기본 원칙 상 데이터 손실이 존재하면 안되기에 어떤 정규형에도 적용되야합니다.
종속성 보존은 속성 간 종속성이 분해로 인해 손실되지 않는다는 의미인데, 3정규화의 원칙인 이행적 함수적 종속 제거는 {A, B, C} 릴레이션에서 A->B->C 라는 경우를 없애는 것입니다.
이 경우 릴레이션으로 {A, B}, {B, C}로 분할하여 구성이 가능하니, 종속성이 손실될 여지가 존재하지 않죠.
(A->B, B->C라는 종속성은 유지되나 릴레이션이 나누어져 있어 하나의 릴레이션에 A->B->C가 발생할 수 없습니다.)
[28-3]
ABC 릴레이션에서 (A, B)->C, (A,C)->B, C->B 와 같은 종속성을 가지고 있을 때, 릴레이션이 { (A', B'), C } 형태를 가지고 있다면 { A', C' }, { C', B } 형태로 분할합니다.
( ' 는 키속성을 의미합니다. C가 결정자이면서 키가 아니기 때문에 정규화를 수행하죠. )
이 때 릴레이션을 보면 (A, B)->C, (A,C)->B라는 종속성이 손실된 것을 알 수 있습니다. 복합 속성이 분할되면서 복합 속성과 연관된 종속성이 사라진 셈이죠.
[29-ㄴ]
각 정규형은 반드시 선행 정규형이 준수되어야 합니다.
정규형의 순서를 기억하세요.
비정규 - 1NF - 2NF - 3NF - BCNF - 4NF - 5NF
3정규형을 만족하면서 BCNF가 아닌 건 있을 수 있지만, BCNF를 만족하면서 3정규형이 아닌건 있을 수 없습니다.
행복한 하루되세요 :)
-
관리자2020-04-07 10:17:46
안녕하세요 길벗수험서 운영팀입니다.
정규화에 대해서는 기사 필기 수준에서는 실제 테이블을 분해하거나 각 속성 간의 종속성을 추적하는 등의 심화문제는 나오지 않습니다.
교재에 나온 정도의 개념만을 확실히 숙지하면 된다는 점 염두에 두시기 바랍니다.
(섹션에 별도의 설명을 두지 않고, 문제의 보기로만 넘어간 것은 그만큼 중요도가 떨어지기 때문입니다.)
다음은 기존의 출제기준에 따른 2019 기사 교재의 BCNF 설명과 예제 입니다.
• BCNF
- BCNF는 테이블 R에서 모든 결정자*가 후보키(Candidate Key)인 정규형이다.
- 일반적으로 제 3정규형에 후보키가 여러 개 존재하고, 이러한 후보키들이 서로 중첩되어 나타나는 경우에 적용 가능하다.
- 아래의 <수강_교수> 테이블(제 3정규형)은 함수적 종속{(학번, 과목명) → 담당교수, (학번, 담당교수) → 과목명, 담당교수 → 과목명}을 만족하고 있다. <수강_교수> 테이블의 후보키는 (학번, 과목명)과 (학번, 담당교수)이다.
- <수강_교수> 테이블에서 결정자 중 후보키가 아닌 속성이 존재한다. 즉 함수적 종속 담당교수 → 과목명이 존재하는데, 담당교수가 <수강_교수> 테이블에서 후보키가 아니기 때문에 <수강_교수> 테이블은 BCNF가 아니다.
<수강_교수> 테이블에서 결정자가 후보키가 아닌 속성을 분리하여 만든 BCNF
-----------
BCNF를 강한 제3정규형이라고도 부릅니다.
BCNF 정규화를 수행하면서 후보키가 제거될 때 기존의 함수적 종속이 보존되지 않을 수 있습니다. (위의 예제에서는 (학번, 과목명) -> 담당교수 라는 종속 상실)
제약조건은 BCNF의 일종의 특징입니다. 문구 그대로밖에 해석할 수 밖에 없는데, '왜' 라고 하신다면 그러한 특징을 가져야 BCNF라고 부르기 때문입니다.
정규화는 중복을 제거하는 것이 맞습니다.
종속성은 전혀 다른 문제입니다.
'A의 값을 B가 결정한다'가 종속성인데, 각 정규화에서 종속성의 여부는 해당 정규화의 특징에 따라 특정 종속성을 제거하거나 이용하는 것이죠.
각 정규화는 말만 어려울뿐 기존의 데이터를 정해진 기준으로 얼마나 잘게 쪼개냐의 문제입니다. 기사 시험에서는 교재에서 제시한 내용들 외에는 더 심화한 문제는 나오지 않는다는 점 염두에 두시기 바랍니다.
행복한 하루되세요 :)
-
*2020-04-06 22:58:35
343쪽에 bcnf 정규형 설명을 예를 들어서 설명해주세요
예시가 없으니까 모르겠어요.
강한 3정규형은 뭔지, 또 왜 모든 bcnf가 종속성을 보존하지 않는지,
그리고 bcnf제약조건도 다 설명해주세요
정규화는 이상을 제거하기위해서 중복성하고 종속성도 없애야하나요?
그럼 종속성 제거도 맞는건가요?