비정규 릴레이션에 대해... 0 2 4,473

by 기그스 [2015.02.05 20:42:39]


안녕하세요.

정규화 공부중에 있습니다. 1~3정규화에 대해 분리작업은 할수있겠는데 몇가지 풀리지않는 의문이있어서 입니다.

비정규 릴레이션에대해 궁금한것이 있어 여쭤봅니다.

비정규 릴레이션 : 반복집합을 가질수있다.

                       한개의 기본키 값에 대해서 두개이상의 값을 가질수 있는 속성

이라고 정의는 되있는데...

1. 한개의 기본키값에 두개이상의 레코드가 생성된 구조라는 말인가요?

   - pk구조상 가능하지않을꺼같은데, 그렇다면 그냥 1정규화부터 설명하기위한 구조인건지...

   - 예시로 올라온 것들 대부분이 동일 PK값으로 반복된 레코드가 있는 설명들 뿐이라... 실질적으로 불가능한 구조같은데...

2. 한 컬럼에대해 데이터가 두개의 값이라는 말인가요?

  - 어떤 설명은 한 컬럼에대해 데이터가 두개이니 그걸 새로운 레코드로 분리해서 관리에대해 설명을 하더군요.

물론 두 설명다 1정규화를 위한 예시로는 적절한거같은데 위와같은 의문들때문에...

3. (먼저 아래 내용에대해 공부하기 좋은거같아서 무단으로 지식인에서 긁어온 부분은 진심으로 사과드리는 바 입니다.

     공부하는데 많은 이해가되서 좋은 예시라 생각해서 참고 하였습니다.)

학생의 수강과목 정보에서 전공에 대한 정보를 다음과 같이 보강하였다. 이 엔터티에 대해 제1, 제2, 제3 정규화를 시행하시오.

여기까지가 질문이고 아래부분이 대답입니다.

 

정규화의 목적

   : 데이터의 중복을 제거하고 속성들을 본래의 제자리에 위치시키고자 하는것

 

1차 정규화

   : 반복되는 그룹 속성을 제거한뒤 기본테이블의 기본키를 추가해 새로운 테이블을 생성하고 기존의 테이블과 1:N의 관계를 형성

    이번 문제에서 반복 되는 그룹속성은  수강과목코드,수강과목명,수강학점 입니다.

    학생 테이블과 수강 테이블의 1:N 관계 형성   

 

학생

학번(PK) , 이름, 전공코드, 전공명

   |

   ↓

수강

학번(PK,FK), 수강과목코드(PK) , 수강과목명 ,수강학점

 

 

2차 정규화

   : 복합키에 전체적으로 의존하지 않는 속성을을 제거한다.

     이번문제에서 복합키는 수강 테이블의 학번,수강과목코드 이다.

     복합키가 일부분에 의존하는지 살펴보면 수강학점은 학번과 수강과목코드 전체에 의존적이지만

     수강과목명은 수강과목코드에 지배되고 있다.

 

수강

학번(PK,FK), 수강과목코드(PK) , 수강학점

    ________________ |

    ↓

과목

수강과목코드(PK), 과정명

  

 

3차 정규화

   : 기본키(PK)에 의존하지 않고 일반컬럼에 의존하는 컬럼을 제거

     이번문제에서는 학생테이블의 전공명은 기본키인 학번에 의존하는 것이 아니라 일반컬럼인 전공코드에 의존하고 있다.

 

학생

학번(PK) , 이름, 전공코드

   ___________ |

    ↓

전공

전공코드(PK,FK), 전공명

 

 

 

전체적인 정규화 테이블을 만들어 보면 아래와 같게 나옵니다.~~!

 

 

 

학생

학번(PK) , 이름, 전공코드

   |        _______ |

    |        ↓

    |        전공

    |       전공코드(PK,FK), 전공명

    |

    ↓

수강

학번(PK,FK), 수강과목코드(PK) , 수강학점

    ____________|

    ↓

과목

수강과목코드(PK), 과정명

============================================================================

제 생각에도 답변이 맞는거 같습니다.

그럼 만약에 답변이 맞다면... 3번 예시로된 최초의 테이블상태는 비정규 릴레이션 인가요?

만약 비정규 릴레이션 이라면 결국 다시 1번 질문이 가능한가?로 돌아가는 기분이라...

이해를 돕고자 여쭤봅니다.

감사합니다.

 

 

by 백면서생 [2015.02.06 15:28:19]
-- 정규화하기 전의 상태라 이해하시면 되겠습니다.
-- 모든 속성이 모여 있는 카티션곱(집합)의 상태라고도 표현할수 있겠죠.
-- 큰 의미가 있는 어떤 단계로 보기보다는 다이아몬드 가공전의 원석정도로 보시면 될듯.

-- 정규화 과정은 아래를 참고해보세요.
-- http://wiki.gurubee.net/pages/viewpage.action?pageId=983056

 


by 기그스 [2015.02.09 11:10:44]

백면서생님 감사합니다.

안그래도 그부분에 대해 계속 알아봤는데 말씀하신대로 원석이라고 생각하는게 맞는거 같습니다.

감사합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입