반응형

 

 

 

1. 개체(Entity) : 현실 세계에서 물리적 / 추상적으로 존재하는 실체

 

2. 개체집합 : 동일한 특성을 갖는 개체들의 모임

 

ex) 

 

 

 

 

3. 속성(Attribute) : 개체의 특성, 관계형 데이터 모델의 필드와 같은 개념

 

 

** 필드와 속성의 차이점

 

1) 필드(관계형 데이터 모델) : 원자값만 허용됨

2) 속성(개체관계 모델) : 다중값 속성(하나의 속성이 여러 개의 값을 가질 수 있음), 복합 속성(하나의 속성이 여러 개의 속성으로 구성됨)

 

다중값 속성 -> family_member 속성에는 여러 가족의 이름이 포함됨

복합 속성 -> address 속성은 세부적으로 (district, city, street) 로 구성됨

 

 

 

4. 관계(relationship)

: 개체 간의 대응성을 표현

 

 

 

5. 관계집합

ex) 소속(affiliated) 이라는 관계로 이어진 집합

 

 

1) 관계집합의 속성

: 개체집합에서 정의하는 것보다 두 개체집합의 관계에서 도출되는 속성일 때

 

 

ex) 학생이 학과에 소속되기 시작한 날짜 -> '소속' 관계집합의 속성으로 정의

 

2) 관계집합의 차수

: 관계집합에 참여하는 개체집합의 개수

 

- 이진관계: 두 개체집합 사이에 정의된 관계집합

ex) 학생 - 학과의 소속관계

 

- 삼진관계 : 세 개체집합 사이에 정의된 관계집합

ex) 학생 - 과목 - 교수의 수강 / 강의 관계

 

 

 

 

 

 

3) 관계의 대응수(mapping cardinality)

: 관계집합에서 각 개체들이 참여할 수 있는 대응의 개수

 

ex) 각 학생은 하나의 학과에만 소속될 수 있다. (N : 1)

 

 

 

- 일대일 대응수 (1:1)

: x->y, y->x 함수이다. (x->y 에서 x에 따른 y가 하나로 수렴하기 때문에)

 

ex) 각 과목(course)의 강좌(class)를 하나씩만 개설할 수 있을 때

 

 

- 일대다 대응수 (1:N or N:1)

: y->x 함수이다.

 

ex) 각 과목(course)에 대해 여러 강좌(class)를 개설할 수 있다고 가정할 때

 

 

 

- 다대다 대응수 (M:N)

: 어느 쪽으로도 함수 관계가 성립하지 않는다. 

 

ex) 여러 학생과 여러 강좌가 있을 수 있을 때

 

 

 

 

 

 

4) 약성 개체집합 vs 강성 개체집합

 

- 강성 개체집합 : 기본키 형성에 필요한 모든 속성을 갖는 개체집합

ex) course 개체집합 { course_id, title, credit } -> 기본키 존재

 

- 약성 개체집합 : 기본키 형성에 필요한 모든 속성을 갖지 못한 개체집합

ex) class 개체집합 { year, semester, division, classroom, enroll }

-> { year, semester, divison } 이 모여도 기본키가 되지 않음, 동일 교과목(course) 내에서만 유일함

-> course 가 존재해야 그것에 대한 class 도 존재 가능하고, 식별 가능함

 

 

 

 

- 약성 개체집합은 강성 개체집합에 항상 종속된다.

즉, 약성 개체집합은 독립적으로 존재할  수 없으며, 강성 개체집합이 존재해야 존재할 수 있다.

 

 

- 식별 관계

: 강성 개체집합와 약성 개체집합 사이의 1:1 또는 1:N 관계 ( 약성 개체집합에서는 꼭 하나의 강성 집합으로 연결이 되어야 함 )

: 약성 개체집합의 모든 개체가 식별 관계에 참여해야 함

: 강성 개체집합의 일부 개체만 식별 관계에 참여함

 

 

 

 

 

 

 

 

- 약성 개체집합의 부분키

: 강성 개체집합의 기본키 + 약성 개체집합의 부분키로 구성

ex) course 와 class 예시에서, class 개체집합의 기본키는 (course_id, year, semester, divistion)

 

 

 

 

 

 

 

 

5) 부분키

: 약성 개체관계 속성 중 강성 개체집합의 특정 개체에 대해 유일한 값을 갖는 속성들의 집합 ( 구별자 라고도 함 )

 

ex) course 개체집합과 class 개체집합의 관계에서, { year, semester, division }은 특정 course 에 대해 유일한 값을 갖는 class 속성이다.

 

 

 

 

 

6) 일반화와 세분화

: 일반화 - 여러 개체집합의 공통적인 특징을 모아 상위 개체집합을 생성

: 세분화 - 하나의 개체집합을 여러 개의 하위 개체집합으로 분류

 

 

 

 

 

6. 개체관계 다이어그램(ERD)

: 개념적 설계에서 개체집합과 관계집합, 속성을 도식화한 것

 

: 대응 관계에서 '일'인 쪽이 화살표

 

 

 

1) ERD 일반 예시

 

 

 

2) 약성 개체집합 및 식별 관계의 표현

 

 

3) 삼진관계 ERD

 

 

 

 

4) 세 개의 이진관계 ERD

 

 

 

 

 

5) 자기연관관계 ERD

- 역할(role) : 관계에 참여하는 두 개체를 구분

 

ex) 각 직원은 자신을 관리하는 상관이 존재, but 상관도 직원 개체집합에 속함,

각 상관은 여러 명의 직원을 관리할 수 있음

 

 

 

- M:N의 자기연관관계

ex) 한 과목은 여러 개의 선수 과목과 여러 개의 후수 과목을 가진다.

 

 

 

 

 

 

 

 

 

 

 

 

7. ERD 그려보기 실습 1 !

 

 

 

 

- 주의할 점

: year, semester, enroll에 대한 직접적인 언급이 없었는데, 필요하다고 생각이 되면 추가

: 관계 개체의 속성은 관계 하나당 생기는 속성일 때에만 설정한다.

 

 

 

 

 

 

ERD 그려보기 실습 2 !

 

 

 

 

 

 

 

 

- 주의할 점

: 약성 개체집합 설정 시, 관계집합도 약성으로 표시할 것

: 새로운 개체집합 만드는 것을 두려워하지 말 것!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

+ Recent posts