- 데이터베이스 스키마
dept_name 속성은 instructor 스키마와 department 스키마에 모두 나타나는 것을 알 수 있다. 이러한 중복은 우연히 아니다. 릴레이션 스키마에서 공통적인 속성을 하용하는 것은, 서로 다른 릴레이션에 있는 투플을 관련짓는 방법 중 하나이다. 예를 들어, Watson building 에서 일하는 교수에 대한 모든 정보를 찾고 싶다고 하자. 이를 위해서는 department 릴레이션에서 building이 Watson 인 모든 dept_name 을 찾아야 한다. 그리고instructor 릴레이션에서 해당 dept_name 을 가지고 있는 모든 교수의 정보를 찾아야 한다.
대학교의 데이터베이스 예제를 생각해 보자.. 각 수업은 학기마다 한번, 혹은 한 학기 안에서도 여러 번 열릴 수 있다. 그렇기 때문에 수업의 관계를 표현할 수 있는 스키마를 제공해야 한다.
section(course_id, sec_id, semester, year, building, room_number, time_slot_id)
그림 2.6은 section 릴레이션의 인스턴스의 한 예이다.
이러한 상황에서 교수와 수업 사이의 관계를 표현할 수 있는 릴레이션이 필요하게 된다. 이러한 관계를 표현할 수 있는 릴레이션의 스키마는 다음과 같다.
실제 대학교의 데이터베이스는 훨씬 더 많은 릴레이션이 존재한다. 이미 언급된 instructor, department, course, section, prereq, teaches 이외에도 다음과 같은 릴레이션을 사용할 것이다.
instructor( ID, name, dept_name, tot_card)
advisor(s_id, i_id)
takes(ID, course_id, sec_id, semester, year, grade)
classroom(building, room_number, capacity)
time_slot(time_slot_id, day, start_time, end_time)
'Programming > DataBase System' 카테고리의 다른 글
Chapter2 - 스키마 다이어그램 (0) | 2019.04.14 |
---|---|
Chapter2 - 키 (0) | 2019.04.13 |
Chapter2 - 관계형 모델 소개 (0) | 2019.04.12 |
Chapter1 - 요약 (0) | 2019.04.12 |
Chapter1 - 데이터베이스 사용자와 관리자 (1) | 2019.04.11 |