< 개론 >
# ER Modeling
- 의의 : 모든 데이터베이스는 entity 의 집합과, 각 entity 간의 relationship 으로 나타낼 수 있다
- 구조 :
> entity 는 attribute 를 갖고 있다
> 여러개의 entity 가 모이면 entity set 이 된다
> 여러개의 relationship 이 모이면 데이터베이스가 생성된다
- 주의 : Logical 에선 relation 이 하나의 "테이블"을 의미하나, ER 에선 그런 의미로 안 쓰인다
< Attribute >
- 개념
> Domain : 각 entity 가 가질 수 있는 attribute 범위
> 적용 대상 : relationship, entity
- 종류
> 여러 뜻을 갖고있는가?
1) Simple : 하나의 attribute 는 오직 그 attribute 만을 갖고 있다. 다른 복합적인 의미가 없다.
2) Composite : 하나의 attribute 안에, 여러 attribute 들이 복합적으로 섞여있다
> 하나의 entity 가 해당 attribute 에 대해 여러 개의 값을 가질 수 있는가?
1) Single-valued ex) 주민등록번호는 1인당 하나
2) Multivalued ex) 한 사람당 여러 전화번호 가질 수 있다 (대포폰)
> 다른 attribute 로부터 산출된 것인가?
1) Derived : 예를 들면, 생년월일을 이용해서 나이를 유추할 수 있다.
- 종류별 부호 표시
> 한 칸 Tab : Simple 과 Composite 관계
> { ~ } : Multi-valued
> function (~) : Derived
> 밑줄
1) 실선 : Primary key
2) 점선 : Partial Key = Discriminator
- 주의 : Redundant Attribute
> 양 쪽의 entity 에 중복되는 attribute 가 있음에도 불구하고 Relationship 을 형성했을 경우
> 아예 Relationship 을 만들지 않든
> 중복되는 Attribute 를 지우든 해야 한다
- Logical Level 과의 차이 :
> composite, multi valued, derived 는 atomic 하지 않다
> Logical Level 에선, 이런걸 허용하지 않는다
< Keys >
- Super > Candidate > Primary key
- Relationship Set 에서 Super Key
1) 일반적인 relationship 관계 : 양쪽 entity set 의 primary key 를 하나씩 가져온 쌍
2) Strong & Weak 관계 : Strong 쪽의 primary + Weak 쪽의 모든 attribute
> 특징 : 한 쌍의 entity set 에서, 오직 한가지의 relationship 을 가질 수 있다
< Relation >
# Relationship set & Relationship
- Relationship : "한 쌍" 의 entity 가 관계를 이루고 있는 것
- Relationship Set : 관계를 이루고 있는 "모든 관계" 들의 집합
# Degree
- 하나의 Relationship set 을 이루고 있는 entity set 의 갯수
> Binary Relationship : 두 개의 entity set 으로 이뤄진 경우
> tenary Relationship : 세 개의 entity set 으로 이뤄진 경우
< Relation 2 Relation >
# Roles
- 동일한 entity 로부터 두 번 이상의 참조를 하는 relation 관계
- 각각 참조할때, course_id, prereq_id 같이 따로 이름지어서 뽑아낸다
# Cardinality Constraints
- Cardinality : 상대쪽 entity 1개를 기준, 자신쪽 entity 가 최대 몇 개 연결될 수 있는가?
- N:N 관계를 표현하는 것
> 화살표 방향, 기호 등 여러가지 방식 사용
- 종류 :
1) one to one
2) one to many
3) many to many
- Alternative Notation
1-1) 0.. : 연결된 해당 entity 는 partial
1-2) 1.. : 연결된 해당 entity 는 total
2-1) ..1 : 반대편 entity 는 one
2-2) ..* : 반대편 entity 는 many
# Participation
1) Total : 모든 entity 가 해당 relation 에 참여한다
2) Partial : 일부 entity 가 해당 relation 에 참여하지 않을수도 있다
# Tenary Relationship
- 3차원 이상의 relationship
- 주의 : tenary 의 경우, 화살표는 최대 한 개만 사용할 수 있다
> 2개 이상일 경우, 해석의 모호성이 있기 때문에 금지한다
# Strong & Weak Entity Set
- Weak : primary key 를 갖고 있지 않은 entity set
> 자신을 표현할 수 있는 다른 entity 와 연결 필요
- Strong : Weak 를 표현해줄 수 있도록 하는 entity set
> identifying entity set
- Weak & Strong 의 관계 : identifying relationship
- 이때의 Cardinality
> one(strong) to many(weak)
> discriminator(=partial key) : many 쪽에 있는 모든 attributes 집합
> weak entity set 의 primary key : strong의 primary key + discriminator
- 표시 방법 :
> 이중 다이아몬드 : identifying relationship
> 점선 밑줄 : weak entity set 의 partial key (=discriminator)
'데이터베이스 & 웹 > 데이터베이스' 카테고리의 다른 글
데이터베이스 - 생활코딩 (0) | 2020.02.04 |
---|