본문 바로가기

ComputerScience/Database

DB - 10. E-R Model

728x90

1. Desing Phases

1. (요건분석) 응용프로그램 사용자들이 어떤 data를 필요로 할지 예상해본다.

2. (개념적 설계) 사용자들이 필요로 할 data들을 기반으로 database schema를 작성한다. abstract한 schema를 작성하는 것이다. 이때 사용하는 모델이 ER Model이다. db에 사용될 삽입, 삭제, 갱신 등의 연산 또한 describe해야 한다. 

3. (Normalization) : redundancy나 incompleteness 등의 문제가 생기면 바로잡는 과정을 거친다.

4. (구현) ER Model 컨셉을 구현하는 단계이다 (ER model -> RDB) 

* avoid redundancy : 동일한 데이터가 db에 반복적으로 나타나는 schema는 피해야 한다.

* avoid Incompleteness : 계획한 schema를 기반으로 구현하기 복잡하거나 어려운, 불가능한 기능이 존재하는 경우를 말한다.

2. E-R Model

- rdb 설계 전 단계로 개념적 설계 모델이다.

3. Entity set, attribute

entity set : 실세계에 존재하는 object에 해당한다. 고유식별이 가능한 객체를 말한다. 예를들면 과목, 사람, 교수, 학과 에 해당한다. 이런 entity를 모은 집합이 entity set이 된다. 

attribute : entity는 속성을 갖는다. 학생 entity라면 ID, name, tot_cred이 해당된다. 즉 같은 속성을 갖는 객체가 entity가 되는 것이다. attribute의 subset이 primary key가 된다.

- 2개의 attributes를 갖는 7개의 entity들로 student entity set을 나타낸다.

- ER model에서 entity를 표현하는 방법은 위와 같다. 표준화 된 표기법은 아니다.

4. relationship set

- entity들의 관계들의 집합이다.

- 학생과 교수간의 지도하는 관계들을 선으로 표시했다. 이 선들의 집합이 relationship set 가 된다.

- advisor이라는 relationship set가 두 entity set를 연결한다. ER Model에서의 표현 방법은 위와 같다.

- 위의 예시처럼 두 entity간의 관계를 binary relationship이라고 한다.

- 이럴 때 degree가 2가 된다.

- 만약 세 entity를 연결하는 relationship이라면 ternary relationship이 된다.

- 이럴 때 degree가 3이 된다.

- E1, E2가 entity set에 해당한다.

- example을 보면 44553 id의 학생과 22222 id 교수가 관계를 맺고 있고 advisor라는 relationshipe set의 instance가 된다.

- relationship set도 attribute를 가질 수 있다. 

- Crick 교수가 Tanaka 학생을 2008년 may 3에 지도하기 시작했다는 뜻이다.

5. Relationship set : Roles

- unary relationship의 예시이다.

- 과목간의 선수과목 관계를 나타내고 있다.

- 선 위에 label들이 roles에 해당한다.

- course_id는 prereq_id를 통해서 선수과목의 course_id로 이어진다.

728x90
반응형

'ComputerScience > Database' 카테고리의 다른 글

DB - 12. E-R Model, RDB로 변환하기  (0) 2021.11.15
DB - 11. E-R Model 2  (0) 2021.11.04
DB - 9. JDBC  (0) 2021.10.27
DB - 8. More SQL statements(3)  (0) 2021.10.13
DB - 7. More SQL statements(2)  (0) 2021.10.06