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로 이어진다.
'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 |