일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 타임리프Unescape
- 정보처리기사실기요약
- 정처기실기요약
- mysql설치하기
- 타임리프변수
- spring
- 이클립스없이cmd
- 타임리프날짜
- 타임리프URL
- 정처기실기
- 타임리프Escape
- MySQL설치순서
- ER모델
- 타임리프 특징
- mysql
- mybatis
- java
- 정보처리기사
- 타임리프유틸리티객체
- 개체관계모델
- cmd에서java파일실행
- 타임리프 표현식
- git
- mysql다운로드
- HelloWorld출력
- 타임리프SpringEL
- 정보처리기사실기
- 타임리프기본객체
- thymeleaf
- 스프링부트설정
- Today
- Total
ye._.veloper
[ D B ] ER 모델(Entity-Relationship Model) 구성 요소 - Entity(엔티티, 개체) 특징, 분류 본문
[ D B ] ER 모델(Entity-Relationship Model) 구성 요소 - Entity(엔티티, 개체) 특징, 분류
ye._.veloper 2023. 3. 6. 13:00책을 읽으며 내용을 기억하기 위해 글을 작성하기로 했다.
☁ ER 모델(Entity-Relationship Model) 구성요소
· 엔티티 (Entity)
· 관계 (Relationship)
· 속성 (Attribute)
💡 속성과 관계 중 하나 이상의 조합으로 구성된 식별자(Identifier)를 포함한다.
☁ 엔티티 (Entity)
· 고객, 상품, 직원처럼 현실 세계에 실제로 존재하는 실체 또는 조직, 서비스, 직업처럼 개념적인 것
· 철학적 측면에서의 실체란 ?
- 실제 존재하는 것, 변하거나 없어지지 않는 것
➡ 즉, 그냥 존재하는 것 그 자체를 의미
· 데이터 모델 측면에서의 실체란 ?
- 업무를 구현하는 데 필요하고 관리해야 하는 주체, 대상, 행위 등의 모든 집합적인 것(Thing)
· 주문, 계약처럼 실체와 실체 간의 관계에 해당하는 엔티티를 포함한다.
· 적어도 둘 이상의 인스턴스(instance)가 존재할 수 있어야 하고, 최소한 둘 이상의 속성이 있어야 하며,
반드시 각 인스턴스를 식별할 수 있는 속성이나 관계가 하나 이상 정의되어야 한다.
· Entity는 슈퍼타입 엔티티나 서브타입 엔티티로 확장할 수 있다.
- 슈퍼타입, 서브타입 엔티티는 일반화/특수화 과정을 통해 도출된다.
▫ 슈퍼타입 Entity
- 하나 이상의 서브타입 엔티티와 관계된 일반화된 엔티티
- 서브타입에 공통으로 존재하는 속성을 관리
▫ 서브타입 Entity
- 각각의 서브타입에만 존재하는 고유한 속성을 관리
- 슈퍼타입의 식별자, 속성, 관계 등 모든 특성을 상속받음
➡ 슈퍼타입 엔티티인 {고객}은 [개인고객]과 [법인고객] 서브타입 엔티티와 관계를 맺으며,
고객의 공통 속성인 {고객명}, {주소}는 슈퍼타입 엔티티에서 관리
[주민등록번호]는 개인 고객만 해당하므로 서브타입인 개인고객 엔티티에서 [법인등록번호]는 법인고객 엔티티에서 관리
◽ 일반화 (Generalization)
· Entity 각각이 갖고 있는 고유한 특징을 일반화하여 공통의 속성으로 재정의한 것
ex ) 개인과 기업의 공통적인 성격을 묶어 고객으로 정의하고, 제품과 상품을 큰 틀에서 상품으로 재정의한 것
➡ 엔티티를 일반화하면 여러 개의 엔티티를 하나의 공통된 엔티티로 만들 수 있다.
두 개 이상의 하위 수준(개인고객, 법인고객 엔티티)엔티티를 결합하여 상위 수준(고객 엔티티)엔티티로 통합하는 상향식 접근 방식
· 인스턴스 존재 유형에 따른 분류
◽ 완전(Total) / 불완전(Partial)
➡ 상위 수준 엔티티(슈퍼타입)의 모든 인스턴스가 하위 수준 엔티티(서브타입)의 인스턴스에 모두 존재하느냐 일부만 존재하느냐
◽ 배타적/ 포괄적
➡ 상위 수준 엔티티의 모든 인스턴스가 하위 수준 엔티티 중 하나에만 존재한다면 배타적 일반화
➡ 둘 이상의 하위 엔티티에 속한다면 포괄적 일반화
ex )
1 . 성별로 구분할 경우, 남자나 여자 둘 중 하나에는 반드시 존재하므로 완전 일반화 성격을 가지고, 둘 중 하나만 속해야 하므로 배타적이다.
2 . 학교 구성원의 하위 수준 엔티티를 교수와 학생으로 구분할 경우,
교직원을 포함하지 않으므로 불완전한 집합, 교수이면서 학생이 될 수 있으므로 포괄적인 성격을 가진다.
◽ 특수화 (Specialization)
· 일반화의 반대 개념
하나의 상위 수준 엔티티를 두 개 이상의 하위 수준 엔티티로 분할하는 하향식 접근 방식
ex ) 개인고객과 법인고객을 고객 엔티티 하나로 관리할 경우, 어떤 속성이 개인고객 속성인지 법인고객 속성인지 알 수 없다.
➡ 특수화를 통해 각각의 엔티티에 해당하는 속성을 식별함으로써 업무 규칙을 제대로 반영할 수 있다.
◽ 집단화 (Aggregation)
· 기본 ER 모델의 표기법은 다른 관계를 포함하는 관계를 포함할 수 없다.
ex ) "고객이 상품을 주문하고, 주문한 상품을 택배 회사가 배송한다."
➡ 고객과 상품 간의 관계인 [주문]관계와 택배 회사와의 관계인 [배송]관계 간의 관계를 가지는 경우, 관계와 관계 간을 연결할 수 없다.
· 고객과 상품 간의 관계를 집단화하여 주문상품으로 새롭게 정의하고, 이 엔티티와 배송 회사 간의 관계인 [배송]관계로 표현한다.
➡ 즉, 집단화는 고객, 상품 간의 관계를 단일 엔티티인 주문상품으로 재정의한 것을 의미
하나의 엔티티로 취급되는 두 개 엔티티 사이에서 나타나며, 해당 엔티티와의 관계가 상위 수준 엔티티로 대체된다.
☁ Entity의 분류
◽ 관계에 따른 분류
▫ 강한(Strong) 엔티티
- 독립적으로 존재
- 엔티티 내에서 자체 식별자를 사용하여 고유하게 인스턴스를 식별할 수 있는 엔티티
ex ) 고객, 상품 등
▫ 약한(Weak) 엔티티
- 다른 엔티티에 종속적
- 자체 식별자를 가지지 못함 ➡ 다른 엔티티의 식별자를 상속받아 사용하는 엔티티
ex ) 주문상품은 주문에서 주문번호를 상속받아 식별자로 사용한다.
◽ 형태에 따른 분류
▫ 독립(Kernel, Master) 엔티티
- 사람, 물건(대상), 장소, 개념처럼 원래부터 현실에 존재하는 엔티티
ex ) 고객, 상품, 창고, 조직 등
▫ 업무중심(Transaction) 엔티티
- 업무를 처리하며 발생하는 데이터에 해당하는 엔티티
- 비슷한 의미의 이름을 가짐
ex ) 주문, 결제, 배송, 청구 등
▫ 종속(Dependent) 엔티티
- 주로 업무중심 엔티티에서 1차 정규화로 인해 분리된 엔티티에 해당
ex ) 주문상품, 주문배송 엔티티 ➡ 주문 엔티티가 있어야 존재할 수 있는 엔티티 (= 주문 엔티티의 종속 엔티티에 해당됨)
▫ 교차(Associative, Relative) 엔티티
- 두 개 이상의 엔티티 간에 발생하는 트랜잭션에 의해 생성되는 엔티티
ex ) 고객과 역할 간의 관계 엔티티인 고객역할 엔티티처럼 대부분 논리 모델링에서 다대다(N:M) 관계를 해소하기 위해 도출됨
◽ 생성 관점에 따른 분류
▫ 핵심(Key) 엔티티
- 자신의 부모 엔티티를 갖지 않는 독립적이자 핵심적인 엔티티
ex ) 고객, 상품, 조직 등
▫ 중요(Main) 엔티티
- 핵심 엔티티 간의 거래 관계에 의해 생성되는 엔티티 (업무의 핵심이 되는 엔티티)
ex ) 계약은 고객과 상품의 거래 관계에 의해 생성되며, 고객과 상품을 부모로 갖는다.
▫ 행위(Action) 엔티티
- 실제 업무 행위에 의해 지속해서 발생하는 거래 행위에 대한 엔티티
ex ) 청구내역 엔티티는 중요 엔티티에 해당하는 계약에 의해 지속해서 발생하는 데이터를 관리하는 엔티티에 해당한다.
◽ 유무형에 따른 분류
▫ 실체(Tangible) 엔티티
- 고객, 상품과 같이 눈으로 볼 수 있는 물리적인 형태를 가지는 엔티티
▫ 비실체(Intangible) 엔티티
▫ 개념(Conceptual) 엔티티 : 조직, 보험상품, 서비스 등 물리적인 형태는 없으나 개념적으로 존재하는 비실체(Intangible) 엔티티
▫ 사건(Event) 엔티티
- 계약, 주문, 결제 등과 같이 업무 행위와 관련된 비실체 엔티티
- 데이터가 빈번하게 생성되고, 변경되는 특성
Ref.
https://product.kyobobook.co.kr/detail/S000001975842
핵심 데이터 모델링 | 유동오 - 교보문고
핵심 데이터 모델링 | 이 책은 모델링 이론과 개념모델링, 논리모델링, 물리 모델링 과정에서 수행하는 작업을 중심으로 기술했으며, 마지막에는 모델링 사례를 바탕으로 다양한 주제를 다루었
product.kyobobook.co.kr
'D B' 카테고리의 다른 글
[ D B ] ER 모델(Entity-Relationship Model) 정의, 특성 (0) | 2023.03.05 |
---|---|
[ D B ] 데이터 모델링(Data Modeling)이란 ? (0) | 2023.03.04 |
[ MySQL ] MySQL 설치하기_2 (MySQL 8.0.x 다운로드) (0) | 2023.02.16 |
[ MySQL ] MySQL 설치하기_1 (MySQL 8.0.x 다운로드) (0) | 2023.02.15 |
[ D B ] SQL Injection (0) | 2023.01.24 |