티스토리 뷰

DataBase System

관계 데이터 모델: 실습

김남김 2022. 8. 22. 22:17

설계 3단계 : 논리적 설게

  • 목적
    • DBMS에 적합한 논리적 스키마 설계
    • 개념적 스키마를 논리적 데이터 모델을 이용해 논리적 구조로 표현 → 논리적모델링 (데이터 모델링)
    • 일반적으로 관계 데이터 모델을 많이 이용
  • 결과물
    • 논리적 스키마 : 릴레이션 스키마
  • 주요 작업
    • 개념적 설계 단계의 결과물인 E-R 다이어그램을 릴레이션 스키마로 변환
    • 릴레이션 스키마 변환 후 속성의 데이터 타입, 길이, 널 값 허용 여부, 기본 값, 제약조건 등을 세부적으로 결정하고 결과를 문서화시킴

 

 

  • E-R 다이어그램을 릴레이션 스키마로 변환하는 규칙

1 모든 개체는 릴레이션으로 변환한다

  • 개체의 이름 → 릴레이션 이름
  • 개체의 속성 → 릴레이션 속성
  • 개체의 키 속성 → 릴레이션의 기본키
  • 개체의 속성이 복합 속성인 경우에는 복합 속성을 구성하고 있는 단순 속성만 릴레이션의 속성으로 변환

 


 

2 다대다 관계는 릴레이션으로 변환한다

  • 관계의 이름 → 릴레이션 이름
  • 관계의 속성 → 릴레이션의 속성
  • 관계에 참여하는 개체를 규칙 1에 따라 릴레이션으로 변환한 후 이 릴레이션의 기본키를 관계 릴레이션에 포함시켜 외래키로 지정하고 외래키들을 조합하여 관계 릴레이션의 기본키로 지정

 


 

 

3 일대다 관계는 외래키로 표현한다

  • 일대다 관계에서 1측 개체 릴레이션의 기본키를 n측 개체 릴레이션에 포함시켜 외래키로 지정
  • 관계의 속성들도 n측 개체 릴레이션에 포함시킴
  • 3-1. 일반적인 일대다 관계는 외래키로 표현한다

 

 

3-2. 약한 개체가 참여하는 일대다 관계는 외래키를 포함해서 기본키로 지정한다

  • 일대다 관계에서 1측 개체 릴레이션의 기본키를 n측 개체 릴레이션에 포함시켜 외래키로 지정
  • 관계의 속성들도 n측 개체 릴레이션에 포함시킴
  • n측 개체 릴레이션은 외래키를 포함하여 기본키를 지정함
  • -약한개체는 오너 개체에 따라 존재여부가 결정되므로 오너 개체의 기본키를 이용해 식별해야함

 


 

4 일대일 관계는 외래키로 표현한다

    • 관계에 참여하는 개체 릴레이션들이 서로의 기본키를 주고 받아 외래키로 지정
    • 관계의 속성들도 모든 개체 릴레이션에 포함시킴
    • 불필요한 데이터 중복이 발생할 수 있음
  • 4-1 일반적인 일대일 관계는 외래키를 서로 주고 받는다

 

 

 

 

4-2 일대일 관계에 필수적으로 참여하는 개체의 릴레이션만 외래키를 받는다

  • 관계에 필수적으로 참여하는 개체 릴레이션에만 외래키를 포함시킴
  • 관계의 속성들은 관계에 필수적으로 참여하는 개체 릴레이션에 포함시킴

 

 

4-3 모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션을 하나로 합친다

  • 관계에 참여하는 개체 릴레이션들을 하나의 릴레이션으로 합쳐서 표현
  • 관계의 이름을 릴레이션 이름으로 사용하고 관계에 참여하는 두 개체의 속성들을 관계 릴레이션에 모두 포함시킴
  • 두 개체 릴레이션의 키 속성을 조합하여 관계 릴레이션의 기본키로 설정

 

 


 

 

5 다중 값 속성은 릴레이션으로 변환한다

  • 다중 값 속성과 함께 그 속성을 가지고 있던 개체 릴레이션의 기본키를 외래키로 가져와 새로운 릴레이션에 포함시킴
  • 새로운 릴레이션의 기본키는 다중 값 속성과 외래키를 조합하여 지정

 

 

 

  • 변환 규칙을 순서대로 적용하되, 해당되지 않는 규칙은 제외함

 

 

기타 고려 사항

모든 관계를 독립적인 릴레이션으로 변환할 수 있다

 

 

개체가 자기 자신과 관계를 맺는 순환 관계도 기본 규칙을 그대로 적용

 

 

참고 강의) http://www.kocw.net/home/cview.do?cid=9c591659f017851e

 

데이터베이스의 원리와 응용

본 강의에서는 데이터베이스 입문자들에게 꼭 필요한 데이터베이스 기초 이론, 데이터 모델과 연산, SQL, 데이터베이스 설계에 대해 공부하고자 한다.

www.kocw.net

 

'DataBase System' 카테고리의 다른 글

정규화  (0) 2022.08.22
데이터 모델링  (0) 2022.08.22
관계 데이터 모델링  (0) 2022.08.22
데이터 모델링 : 실습  (0) 2022.08.22
데이터베이스 시스템  (0) 2022.08.14
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함