데이터베이스 정규화 편집하기
IT위키
편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
78번째 줄: | 78번째 줄: | ||
* '''발생할 수 있는 이상(Anomaly)의 예''' | * '''발생할 수 있는 이상(Anomaly)의 예''' | ||
**''' | **'''갱신이상''': 홍길동이 사회과목을 '역사'로 바꾸었다. 그럼 임꺽정이 듣고 있는 사회 과목도 바뀌어버린다. | ||
*** UPDATE 과목 SET 수강과목 = '역사' WHERE 수강과목 = '사회' AND 수강자 = '홍길동' | *** UPDATE 과목 SET 수강과목 = '역사' WHERE 수강과목 = '사회' AND 수강자 = '홍길동' | ||
**'''삭제 이상''': 임꺽정이 '과학' 과목을 수강취소했다. 그럼 신사임당의 수강 정보도 삭제된다. | **'''삭제 이상''': 임꺽정이 '과학' 과목을 수강취소했다. 그럼 신사임당의 수강 정보도 삭제된다. | ||
152번째 줄: | 152번째 줄: | ||
*'''발생할 수 있는 이상(Anomaly)의 예''' | *'''발생할 수 있는 이상(Anomaly)의 예''' | ||
** | **삽입이상: 컴퓨터과, 전자과, 기계과 학생을 추가하고자 할 경우 더이상 불필요한 중복정보인 학과장 정보가 삽입되야 한다. | ||
** | **갱신이상: 컴퓨터과의 학과장이 변경되었다. 하나만 변경하면 모순이 발생하므로 다 찾아서 변경해야 한다. | ||
** | **삭제이상: 신사임당이 자퇴해서 삭제하고자 한다. 이 삭제로 인해 기계과 학과장의 정보가 사라져버린다. | ||
*'''2NF를 만족시키는 릴레이션''' | *'''2NF를 만족시키는 릴레이션''' | ||
231번째 줄: | 231번째 줄: | ||
*'''발생할 수 있는 이상(Anomaly)의 예''' | *'''발생할 수 있는 이상(Anomaly)의 예''' | ||
**''' | **'''삽입이상''': 컴퓨터과, 전자과 학생을 추가하고자 할 경우 더이상 불필요한 중복정보인 대학 정보가 삽입되어야 한다. | ||
**''' | **'''갱신이상''': 컴퓨터과의 소속 대학이 'IT대학'으로 변경되었다. 하나만 변경하면 모순이 발생하므로 다 찾아서 변경해야 한다. | ||
**''' | **'''삭제이상''': 홍길동이 자퇴해서 삭제하고자 한다. 이 삭제로 인해 컴퓨터과의 대학 정보가 사라져 버린다. | ||
*3NF를 만족시키는 릴레이션 | *3NF를 만족시키는 릴레이션 | ||
277번째 줄: | 277번째 줄: | ||
;Boyce and Codd Normal Form | ;Boyce and Codd Normal Form | ||
;BCNF를 만족하려면 결정자이면서 | ;BCNF를 만족하려면 결정자이면서 후보키가 아닌 것을 제거해야 한다. | ||
*BCNF를 만족하지 않는 릴레이션 | *BCNF를 만족하지 않는 릴레이션 | ||
300번째 줄: | 300번째 줄: | ||
|- | |- | ||
|300 | |300 | ||
| | |인공지능 | ||
| | |유관순 | ||
|} | |} | ||
*제약사항 | *제약사항 | ||
**한 학생은 동일한 과목에 대해 | **한 학생은 동일한 과목에 대해 한교수에게만 수강가능 | ||
**각 교수는 하나의 과목만 담당 | **각 교수는 하나의 과목만 담당 | ||
**한 과목은 여러 교수가 | **한 과목은 여러 교수가 담당가능 | ||
* | *분석 | ||
* | **(학번 + 과목)은 교수를 결정 짓는다. | ||
** | **교수는 과목을 결정 짓는다. | ||
**즉, 교수 또한 결정자인데 교수는 학번을 결정 지을 수 없으므로 후보키는 아니다. | |||
*'''발생할 수 있는 이상(Anomaly)의 예''' | *'''발생할 수 있는 이상(Anomaly)의 예''' | ||
**''' | **'''삽입이상''': 200학생이 데이터베이스를 수강하고자 할 경우, 현재 불필요한 홍길동 교수 정보가 한번 더 삽입된다. | ||
**''' | **'''갱신이상''': 홍길동의 담당 과목이 알고리즘으로 바뀌었다. 담당 과목을 변경할 경우, 학생의 수강 과목이 변경되어 버린다. | ||
**''' | **'''삭제이상''': 300학생이 자퇴해서 삭제하고자 한다. 이 삭제로 인해 인공지능 과목을 유관순 교수가 담당하고 있다는 정보가 사라진다. | ||
*BCNF를 만족시키는 릴레이션 | *BCNF를 만족시키는 릴레이션 | ||
{| class="wikitable" | {| class="wikitable" | ||
!학번 | !학번 | ||
! | !과목코드 | ||
|- | |- | ||
|100 | |100 | ||
| | |DB01 | ||
|- | |- | ||
|100 | |100 | ||
| | |DS01 | ||
|- | |- | ||
|200 | |200 | ||
| | |NW01 | ||
|- | |- | ||
|300 | |300 | ||
| | |AI01 | ||
|} | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
!과목코드 | |||
!과목 | !과목 | ||
! 교수 | ! 교수 | ||
|- | |- | ||
|DB01 | |||
|데이터베이스 | |데이터베이스 | ||
|홍길동 | |홍길동 | ||
|- | |- | ||
|DS01 | |||
|자료구조 | |자료구조 | ||
|임꺽정 | |임꺽정 | ||
|- | |- | ||
|NW01 | |||
|네트워크 | |네트워크 | ||
|장영실 | |장영실 | ||
|- | |||
|AI01 | |||
|인공지능 | |||
|유관순 | |||
|} | |} | ||