본문 바로가기
데이터베이스 관리론

[데이터베이스 관리론] ER Modeling

by LSB98 2024. 3. 17.
728x90
반응형

* ER Modeling은 Data Modeling의 일종으로 Data Modeling은

1) 데이터와 데이터의 관계 표현,

2) Data의 무결성 관리(예시 : 동일 Data가 들어오면 차단시킨다)를 위해 수행한다.

 

정리하자면,

- 데이터 모델링은 데이터에 대한 사용자의 관점을 표현하기 위한 과정

- 개체와 속성은 개발자가 정하는 것이 아닌 사용자가 정하는 것임 (자동차의 ER모델 분석 -> 사용자가 어떻게 보느냐)

사용자가 모르는 DATA가 있을 수 있는데 이런 경우에는 유추해서 채워넣어야 하는데 이럴 경우에는 검증작업이 반드시 필요하다.

- ER 모델은 사용자의 데이터 모델, 데이터 구조와 사용자 작업 환경하에서 데이터들 사이의 관계를 나타내기 위한 언어

- ER 모델은 개체, 속성, 인식자, 관계/관련성(relationship)을 나타낸다.

- 개체(Entity) - 다른 객체(object)와 구별되며 속성(attribute)으로 이루어진 객체

- 관계 혹은 관련성(Relationship) –> 개체 간의 연관성

 

 

ER Diagram

 

- 네모 : Entity(개체) // 명사

- 마름모 : Relationship(관계) // 동사, 명사(Entity)값을 유추해야 하는 경우도 있음, 유추할때는 왜 이렇게 유추하는지 설명이 가능해야 함

- 원 : Attribute(속성)

- Degree : 관계에 연결된 개체의 수

- 관계(1:1,1:N)도 유추를 해야하는 경우 설명이 필요하다.

 

* 이진관계 (Binary Relationship)

DBMS에서는 이진관계이하로만 표현 가능

Cardinality - 관계에 의해 연결될 수 있는 실제 개체의 숫자 (Minimum cardinality, Maximum cardinality), 꼭 명시 해야 함

예시 : (0,1) (1,1)

여기서 Min값이 0인 경우 DBMS에서 Default값이라서 생략 가능 : (0,1) -> 1

 

Key인 경우 밑줄을 그어준다.

 

* 1번 예시

 

- 관계에서 속성을 넣은 경우에는 관련 개체의 속성이 중복되는 경우

- (1,N)의 의미 : 입주하는 학생은 최소 1명에서 최대 N명까지

- (0,1)의 의미 : 입주시에 기숙사에 있는 학생은 최소 0명에서 최대 1명까지 // 필수가 아니라는 뜻

 

* 2번 예시

 

- (0,N)의 의미 : 직원 중 부양가족이 있을 수도 없을 수도, 건물 중 아파트는 있을수도 없을 수도

- (1,1)의 의미 : 부양가족이 있으면 직원은 무조건 1명 있어야 함 / 아파트가 있으면 건물은 무조건 1채 있어야함

- 더블 박스, 더블 마름모는  : Weak Entity로 1:1 조건이 있어야 함

- 2개는 다른 처리가 필요한 경우도 있다 (직원 중 순직하는 경우 회사에서 부양가족을 챙겨주는 경우)

 

 

* 3번 예시

 

Recursive Relationship 모델 : Entity 1 <-> Relationship 1인 경우

 

예시문제를 한번 풀어보겠습니다.

 

왕호 태권도 문제) 왕호 태권도장은 여러 종류의 개인 혹은 그룹 태권 교습을 하고 있다. 개인 교습은 한 학생 당 한 달에 15만원을 받고 있으며 매일 오전 10 시부터 오후 8시 까지 시간 약속에 의해 이루어지는데 개인 교습에는 두 사람 사이의 대련을 많이 지도하고 있다. 그룹 교습은 한 사람 당 8만원을 받는데 학생들을 주 고객으로 하여 하교 시간 이후인 오후 5 시부터 8 시까지 1 시간의 교습을 하고 있다. 왕호 태권 도장에는 전임 사범과 시간 사범이 있는데 전임 사범의 경우 월급을 받으나 시간 사범의 경우 시간 당 수당을 받는다. 또한 왕호 태권도장에서는 태권도의 보급을 위해 한 달에 한번 세 번째 일요일에 태권 대회를 열고 있다. 왕호 태권도장의 관장은 학생과 어떤 종류의 교습을 받으며 각 사범이 어떤 종류의 얼마나 많은 시간을 교습했는지 파악하여 급여를 계산하는 데이터베이스 시스템을 만들고자 한다.

 

-> 사람마다 다르게 ER모델을 구성할 수 있지만 저는 아래와 같이 ER모델을 구성하였습니다.

 

* 4번 예시

 

 

ER 다이어그램에서 "ISA"는 일반적으로 "is a" 관계를 나타내는 용어로 사용되며, 이는 특정 엔티티가 다른 엔티티의 특별한 형태임을 나타냅니다. 이 구조는 객체 지향 프로그래밍에서 볼 수 있는 상속 개념과 유사하며, 한 엔티티 타입(서브타입)이 다른 엔티티 타입(슈퍼타입)의 모든 특성을 상속받는 것을 표현합니다.

ISA 관계의 특징
상속: 서브타입은 슈퍼타입의 모든 속성과 관계를 상속받습니다. 예를 들어, "직원"이라는 슈퍼타입이 있고 "엔지니어"와 "매니저"라는 서브타입이 있다면, 엔지니어와 매니저는 직원의 모든 속성(예: 이름, 주소, 직원 번호)을 상속받습니다.


특수화와 일반화: ISA 관계는 특수화(specialization)와 일반화(generalization)의 개념을 모두 포함합니다. 특수화는 보다 일반적인 엔티티(슈퍼타입)에서 보다 구체적인 엔티티(서브타입)로 나아가는 과정이며, 일반화는 그 반대 과정입니다.
역할 분화: 서브타입을 사용하면 같은 기본 엔티티가 다양한 역할을 수행할 수 있도록 구분할 수 있습니다. 예를 들어, "동물"이라는 슈퍼타입에 대해 "포유류"와 "조류"라는 서브타입을 정의할 수 있습니다.

-> 결국 Sub Type에 관계에서 발생하는 모델

 

ER 데이터 모델의 검증

데이터베이스 개발 단계에서 오류 찾아내어 수정 하는 것이

데이터베이스가 적재되고 나서 고치는 것보다 쉽고 비용이 절감된다.

728x90
반응형