# Ch04-2.md

***

* 개념
  * 개체-entity와 개체 간의 관계-relationship을 이용해 현실 세게를 개념적 구조로 표현하는 방법
  * 개체-관계 모델을 사용해 모델링 한것 -> 개체-관계 다이어그램(entity-relationship-diagram) 또는 **E-R 다이어그램**

## 개체(Entity)

* 개념
  * 저장할 만한 가치가 있는 것
  * 개념적 모델링을 하는데 가장 중요한 요소
* 특성
  * 다른 개체와 구별되는 이름
  * 각 개체만의 고유한 특성이나 상태, 속성을 하나 이상 가지고 있음 ![entity](https://164236779-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fufm8YXDUrO3hDbgkKUHw%2Fuploads%2Fgit-blob-e1c6669cd28b46019bed9ba7f43a6fb54ff288e7%2Fentity.png?alt=media)
* 개체 타입(entity type)
  * 개체를 고유의 이름이나 속성으로 정의한 것
* 개체 인스턴스(instance), 개체 어커런스(occurance)
  * 개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체
* 개체 집합(entity set)
  * 특정 개체 타입에 대한 개체 인스턴스들을 모아 놓은 것

## 속성(Attribute)

* 개념
  * 개체가 가지고 있는 고유의 특성
  * 속성 자체로는 의미가 없지만 관련 있는 속성들을 모아 개체를 구성하면 하나의 중요한 의미를 표현할 수 있다.
* 분류
  * 속성 값의 개수
    * 단일 값 속성
    * 다중 값 속성
  * 의미의 분해 가능성
    * 단순 속성
      * 의미를 더 분해할 수 없는 속성
    * 복합 속성
  * 기존 속성 값에서 유도
    * 유도 속성
      * 값이 별도로 저장되는 것이 아니라 기존의 다른 속성 값에서 유도되어 결정되는 속성
      * 저장 속성: 유도 속성을 만들기 위해 사용되는 속성
  * 널(Null) 속성
    * blank나 zero와는 다르게 아직 값을 가지지 못한 속성
  * 키 속성
    * 각 개체 인스턴스들을 식별하는데 사용

## 관계(Relationship)

* 개념
  * 개체와 개체가 밎고 있는 의미 있는 연관성
  * \= 매핑: 개체 집합들 사이의 대응 관계
* 유형
  * 이항 관계
  * 삼항 관계
  * 순환 관계
    * 자기 자신과 맺는 관계
* 분류 기준
  * 매핑 카디널리티(mapping cadianality)
    * 관계를 맺는 두 개체 집합에서 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수
* 분류
  * 일대일
  * 일대다
  * 다대다
* 참여 특성
  * 개체 A의 모든 개체 인스턴스가 관계에 반드시 참여해야 한다면 개체 A가 관계에 '필수적 참여한다' 또는 '전체 참여한다'라고 한다.
  * 일부만 참여해도 된다면 '선택적 참여한다' 또는 '부분 참여한다'라고 한다.
* 관계의 종속성
  * 존재 종속
    * 개체 B가 개체 A에 종속되면, 이는 개체 A가 존재해야 개체 B가 존재할 수 있고 개체 A가 삭제되면 개체 B도 함께 삭제 되어야함
    * 약한 개체(weak entity): 다른 개체에 의존하고 있는 개체
    * 강한 개체(strong entity): 다른 개체의 존재여부를 결정하는 개체
  * 존재 종속 상태에서는 일반적으로 일대다의 관계를 가짐

## E-R-Diagram

개체-관계 모델을 이용해 현실 세계를 개념적으로 모델링한 결과물

![erd](https://164236779-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fufm8YXDUrO3hDbgkKUHw%2Fuploads%2Fgit-blob-4f40194ec15c0a6f20dbc2d2f0f6ff031e80f4f0%2FERD.png?alt=media)
