티스토리 뷰
1. ER모델을 관계 데이터 모델로 사상
- 완성된 ER 모델은 실제 데이터베이스로 구축하기 위해 논리적 모델링 단계를 거치는데, 이 단계에서는 사상( mapping )이 이루어 진다.
- ER모델과 관계 데이터 모델의 사상 알고리즘은 7단계를 거친다.
단계 | 사상할 대상 | 구분 |
1단계 | 개체 타입 | 강한 개체 타입 |
2단계 | 약한 개체 타입 | |
3단계 | 관계 타입 | 이진 1 : 1 관계 타입 |
4단계 | 이진 1 : N 관계 타입 | |
5단계 | 이진 N : M 관계 타입 | |
6단계 | N진 관계 타입 | |
7단계 | 속성 | 다중값 속성 |
2. 개체 타입의 사상 ( mapping )
- [ 1 단계 ] 강한(정규) 개체 타입
- : 정규 개체 타입 E의 경우 대응하는 릴레이션(테이블) R을 생성한다.
- [ 2 단계 ] 약한 개체 타입
- : 약한 개체 타입도 릴레이션(테이블) R을 생성하지만, 약한 개체 타입에서 생성된 릴레이션은 자신의 키(식별자)와 함께 강한 개체 타입의 키(기본키)를 외래키로 사상( mapping )하여 자신의 기본키로 구성한다.
3. 관계 타입의 사상 ( mapping )
- 1 ) 관계 타입의 사상 방법 4가지
- 방법 1 : 오른쪽 개체 타입인 E2를 기준으로 관계 R을 표현한다.
- Ex. E1( KA1, A1 ) , E2( KA2, A4, KA1 )
- 이처럼 기준이 아닌 개체에서는 기본키와 속성을 그대로 작성하고, 기준이 되는 E2에서는 일단 자신의 기본키와 속성을 작성한 후, 상대편의 기본키인 KA1을 자신의 외래키로 가져온다.
- 방법 2 : 왼쪽 개체 타입인 E1를 기준으로 관계 R을 표현한다.
- Ex. E1(KA1, A2, KA2) , E2(KA2, A4)
- + 방법 1과 비슷하지만, 외래키를 작성하는 쪽을 반대로 하는 방법이다.
- 방법 3 : 단일 릴레이션(테이블) ER로 모두 통합하여 관계 R을 표현한다.
- Ex. ER ( KA1, A2, KA2, A4 )
- 방법 4 : 개체 타입 E1, E2와 관계 R을 모두 독립된 릴레이션(테이블)으로 표현한다.
- Ex. E1(KA1, A2) , R(KA1, KA2) , E2(KA2, A4)
- 이때 R을 교차 릴레이션 또는 교차 테이블로 부르며, 양쪽의 기본키를 속성으로 가지고 와서 관계를 표현한다.
- 2 ) 단계별 관계 타입 사상( mapping ) (***)
- [ 3 단계 ] 이진 1 : 1 관계 타입
- : 방법 1 ~ 4까지 모든 유형으로 사상( mapping )이 가능하기에, 개체가 가진 정보 유형에 따라서 방법을 판단해야 한다.
- : 하지만 3단계의 경우, 주로 방법 1 또는 방법 2를 사용하는 편이 좋다.
- : 기준으로 하는 개체 타입을 정하는 기준은 최대한 외래키에 NULL이 발생하지 않도록 선택해야 한다.
- [ 4 단계 ] 이진 1 : N 관계 타입
- : N의 위치에 따라서 방법 1 또는 방법 2의 유형으로 사상( mapping )해야 한다.
- : N의 위치에 있는 개체를 기준으로 삼아서, 1의 위치에 있는 개체의 기본키를 외래키로 가져와야 한다.
- [ 5 단계 ] 이진 M : N 관계 타입 (**)
- : 이진 N : M 관계 타입의 경우 방법 4를 사용하여 사상( mapping )해야 한다.
- : 예를 들어서 교수와 과목이라는 개체를 수업이라는 관계로 되어 있을 때, 각각 따로 릴레이션으로 뽑아 교수 ( 사번, 이름 ) , 과목 ( 과목코드, 과목명 ) , 수업 ( 사번, 과목코드 )로 사상한다. 이때 수업은 교차 릴레이션이라고 부른다.
- [ 6 단계 ] N진 관계 타입
- : ER모델의 차수가 3이상인 다진 관계 타입의 경우 방법 4의 유형으로 사상한다.
4. 다중값 속성의 사상 ( mapping )
- 방법 1 : 속성의 개수를 알 수 없는 경우에는 다중속성을 따로 릴레이션으로 생성하게 되는데, 만약 R이라는 개체에 기본키 KA, 일반 속성 B 그리고 다중속성 C가 있다면 R ( KA, B ) , RC ( KA, C )처럼 따로 기본키와 다중속성을 사상하여 릴레이션을 따로 생성하게 된다.
- 방법 2 : 속성의 개수가 제한적으로 정해지는 경우에는 다중값 속성을 펄쳐서 사상하게 되는데, 만약 R이라는 개체에 기본키 KA, 일반 속성 B 그리고 다중속성 C가 있다면 R ( KA, B, C1, C2, C3 )로 사상한다.
- + 주로 방법 1의 경우에는 릴레이션을 따로 생성해야 하기 때문에, 방법 2를 사용하도록 설계하는 경우가 많다.
- + 이 7단계를 통해 릴레이션(테이블)의 목록이 생성되는 것이다.
5. 이상현상의 종류 (***)
- 1 ) 삭제 이상 ( deletion anomly )
- : 투플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상
- -> 연쇄삭제 문제 발생
- 2 ) 삽입 이상 ( insertion anomly )
- : 투플 삽입 시 특정 속성에 해당하는 값이 없어 NULL 값을 입력해야 하는 현상
- -> NULL 값 문제 발생
- 3 ) 수정 이상 ( update anomly )
- : 투플 수정 시 중복된 데이터의 일부만 수정되어 데이터의 불일치 문제가 일어나는 현상
- -> 불일치 문제 발생
- + 이상현상은 1개의 릴레이션에 2개 이상의 정보가 있을 때 발생한다.
- + 이상현상을 해결하기 위해서는 릴레이션(테이블)을 분리(무손실 분해)해야 한다.
- + 이때 이상현상이 발생하는 릴레이션을 무손실 분해하는 과정을 정규화라고 한다.
6. 함수 종속성 (***)
- 학생수강성적과 같은 릴레이션의 각 속성 간에는 의존성(종속성)이 존재한다.
- 어떤 속성 A의 값을 알면, 다른 속성 B의 값이 유일하게 정해지는 의존 관계를 ‘속성 B는 속성 A에 종속한다.’ 혹은 ‘속성 A는 속성 B를 결정한다.’라고 한다.
- ‘ A -> B ‘로 표기하며, A를 B의 결정자라고 한다.
- 이때 속성은 단일 속성뿐만이 아니라 복합 속성까지도 가능하다.
'KH 정보교육원 [ Java ]' 카테고리의 다른 글
KH 40일차 - IE 표기법 (0) | 2022.04.22 |
---|---|
KH 39일차 - 정규화 (0) | 2022.04.21 |
KH 37일차 - 데이터 모델링 ( ERD ) (0) | 2022.04.19 |
KH 36일차 - 데이터 모델링 (0) | 2022.04.18 |
KH 35일차 - 관계 데이터 모델 (0) | 2022.04.15 |