엔터티 (Entity) 란? 

- 실체, 객체 

- 사람, 장소, 물건, 사건, 개념 등과 같은 명사에 해당

- 업무상 관리가 필요한 것에 해당

- 저장 되기 위한 어떤 것(Thing)에 해당

 

엔터티의 특징

- 업무에 필요로 하는 정보여야 한다.

* 시스템 구축 대상인 해당 엄무에서 그 엔터티를 필요로 하는가를 판단하는 것이 중요 

 

- 식별이 가능해야 한다.

* 인스턴스 각각을 구분하기 위한 유일한 식별자가 존재해야함 

 

- 엔터티는 인스턴스의 집합이다.

* 두 개 이상의 인스턴스가 있어야함

 

- 엔터티는 반드시 속성을 지녀야한다. 

*  관계엔터티(Associative Entity)의 경우는 주식별자 속성만 가지고 있어도 엔터티로 인정

 

- 엔터티는 업무 프로세스에 의해서 이용되어야 한다. 

* 고립된 엔터티의 경우는 엔터티를 제거하거나 아니면 누락된 프로세스가 존재하는지 살펴보고 해당 프로세스를 추가해야 함

 

- 엔터티는 다른 엔터티와 최소 한개 이상의 관계가 있어야 한다. 

*공통코드, 통계성 엔터티의 경우 관계를 생략할 수 있다. 

 

엔터티와 인스턴스와 관계/예


엔터티의 종류

종류 설명
독립 엔티티
[Kernel Entity, Master Entity]
사람, 물건, 장소 등과 같이 현실세계에 존재하는 엔터티
업무중심 엔터티
[Transaction Entity]
Transaction이 실행되면서 발생하는 엔터티
종속 엔터티
[Dependent Entity]
주로 1차 정규화로 인해 관련 중심엔티티로부터 분리된 엔터티
교차 엔티티
[Intersaction Entity]
M:M의 관계를 해소하려는 목적으로 만들어진 엔터티 [ex> M:M -> 1:M]

엔터티의 분류 

분류 종류 설명
유무형에 따른 분류 유형 엔터티
(Tangible Entity)
물리적 형태가 있고 지속적으로 활용되는 엔터티
예) 사원, 물품, 강사 등 
개념 엔터티
(Conceptual Entity)
물리적 형태가 없는 엔터티(개념적 정보)
예) 보험 상품, 조직 등 
사건 엔터티
(Event Entity)
업무를 수행함에 따라 발생되는 엔터티
예) 주문, 청구 미납 등 
발생 시점에 따른 분류 기본 엔터티 
(Key/Fundamental Entity)
원래 존재하는 정보로서 다른 엔터티와 관계에 의해 성생되지 않고 독립적으로 생성, 자신의 고유한 주식별자를 가짐
예) 사원, 부서, 고객, 상품, 자재 등
중심 엔터티
(Main Entity)
기본 엔터티로부터 발생, 다른 엔터티와의 관계로 많은 행위 엔터티 생성
예) 계약, 사고 ,청구, 주문, 매출 등 
행위 엔터티
(Active Entity)
2개 이상의 부모 엔터티로부터 발생, 비지니스 프로세스를 실행하면서 생성되는 엔터티, 지속적으로 정보가 추가되고 변경되어 데이터 양이 가장 많음
예) 주문 목록, 사원변경이력 등

 

엔터티의 명명(이름짓는 법) 

- 업무 목적에 따라 생성되는 자연스러운 이름을 부여

- 약어보다는 명확성과 업무전달성에 목적을 두어 부여

- 명명 규칙 : 현업업무에서 사용되는 용어, 약어 지양, 단수 명사, 유일성 보장, 명확성

반응형
LIST

- 데이터 모델링의 세가지 요소 

1) 업무가 관려하는 어떤 것(Things)

2) 어떤 것이 가지는 성격(Attributes)

3) 업무가 관여하는 어떤 것 같의 관계(Relationships)

 

- 데이터 모델링을 완성해가는 핵심 개념

1) 엔터티 (Entity)

 

2) 속성 (Attribute)

 

3) 관계(Relationship)

 


- 단수와 집합(복수) 의 명명 

: 데이터 모델링에서는 이 세가지 개념에 대해서 단수와 복수의 개념을 분명히 구분하고 있고 실제로 데이터 모델링을 할 때 많이 활용됨

개념 복수/집합 개념
타입/클래스
개별/단수개념
어커런스/인스턴스
어떤 것
(Things)
엔터티 타입 (Entity Type) 엔터티 (Entity)
엔터티 (Entity) 인스턴스 (Instance)
어커런스 (Occurence)
어떤 것간의 연관
(Association between Things)
관계 (Relationship) 페어링 (Pairing)
어떤 것의 성격
(Characteristic of a Thing)
속성 (Attribute) 속성값 (Attribute Value)

[출처] Sql 전문가 가이드


- 좋은 데이터 모델 요소

요소 설명
완전성
(Compeleteness)
업무에 필요로 하는 모든 데이터가 데이터 모델에 정의되어 있어야한다. 
중복배제
(None-Redundancy)
하나의 데이터베이스 내에 동일한 사실은 반드시 한번만 기록되어야한다. 
업무규칙
(Business Rules)
데이터 모델에서 매우 중요한 요소 중 하나가 데이터 모델링 과정에서 도출되고 규명되는 수많은 업무규칙을 데이터 모델이 표현하고 이를 해당 데이터 모델을 활용하느 모든 사용자가 공유할 수 있도록 제공하는 것이다. 
데이터 재사용
(Data Reusability)
데이터의 재사용성을 향상시키고자 한다면, 데이터의 통합성과 독립성에 대해서 충분히 고려해야한다. 
최대한 단순하게 적은 데이터를 분류하는 것이 확장성과 유연성을 고려했을때 좋은 방법이다. 
의사소통
(Communication)
데이터를 분석하는 과정에서 도출된 많은 업무규칙은 데이터 모델에서 엔터티, 서브타입, 속성, 관계들의 형태로 퇴대한 자세하게 표현되어야한다. 그래야 데이터모델이 진정한 의사소통의 도구로서의 역할을 한다. 
통합성
(Intergration)
동일한 데이터는 한번만 정의하고 참조, 활용한다. 

 

반응형
LIST

- 데이터 독립성

: 사용자 요구사항에 대해 데이터베이스 간에 서로 독립성을 유지하기 위한 목적으로 데이타 독립성의 개념 출현

 

유지보수 비용 증가, 데이터 중복성 증가, 데이터 복잡도 증가, 요구사항 대응 저하 -> 독립성의 필요성 대두 

 

- 데이서 독립성의 이점

: 각 view의 독립성을 유지하고 계층별 view 에 영향을 주지 않고 변경 가능

: 단계별 Schema에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 제공 

: 데이터 독립성을 이해하기 위해 구조, 독립성, 사상 3단계를 이해하면 됨 

 


- 데이터 베이스 3단계 (ANSI/SPARC의 3단계 구성)

(사용자와 가까운 단계부터) 외부단계 -> 개념적 단계 -> 내부적 단계

 

항목 내용 비고
외부스키마
(External Schema)
- 각 사용자 단계의 개인적 DB 스키마, 사용자 관점, 응용 프로그램이 접근하는 DB
- View 단계 여러 개의 사용자 관점으로 구성(개인적 DB 스키마
- 사용자 관점
- 접근 특성에 따른 스키마 구성
개념스키마
(Conceptual Schema)
- 조직 전체의 통합된 DB 스키마, 설계자 관점 데이터 모델링의 지향점
-모든 사용자 관점을 통합한 조직전체의 DB를 기술
- DB에 저장되는 데이터와 그들간의 관계를 표현
- 통합관점
내부스키마
(Internal Schema)
- 내부단계, 내부스키로 구성, DB가 물리적으로 저장된 형식
- 물리적 장치에 데이터가 실제적으로 저장되는 방법을 표현
- 물리적 저장 구조

 

- 논리적인 독립성과 물리적인 독립성

독립성 내용 특징
논리적인 독립성 개념스키마 변경 -> 외부스키마 영향 X (외부-개념)
사용자 특성에 맞는 변경 가능 
통합구조 변경 가능
물리적인 독립성 내부스키마 변경 -> 외부/개념스키마 영향 X (개념-외부)
물리적 구조와 개념구조 상호간 영향 없이 서로 변경 가능 

 

- 사상(Mapping) 

상호 독립적인 개념을 연결시켜주는 다리 

사상 내용
외부적/개념적 사상
(논리적 사상)
외부적 뷰와 개념적 뷰의 상호 관련성을 정의함 - 사용자가 접근하는 형식에 따라 다른 타입의 필드를 가질 수 있음
- 개념적 뷰의 필드타입은 변화가 없음
개념적/내부적 사상
(물리적 사상)
개념적 뷰와 저장된 데이터베이스의 상호관련성 정의 - 만약 저장된 데이터베이스의 구조가 바뀐다면, 개념적/내부적 사상이 바뀌어야함, 그래야 개념적 스키마가 그대로 남아있음 

각 단계(외부, 개념적, 내부적)의 독립성을 보장하기 위해서 변경사항이 발생했을때 DBA가 적절하게 작업을 해주기 때문에 독립성이 보장됨 

 

*Database Administration, DBA :  데이터베이스 관리

데이터베이스에 관련된 모든 관리를 하는 직업군을 의미

 

 

[출처] Sql 전문가 가이드

반응형
LIST

데이터 모델링의 3단계

: 현실세계에서 데이터베이스까지 만들어지는 과정

 

<개념적 데이터 모델 -> 논리적 데이터 모델 -> 물리적 데이터 모델>

 

데이터 모델링 내용
개념적 데이터 모델링 - 추상화 수준이 가장 높은 수준
- 업무중심적이며 포괄적인 수준의 모델링
- 계층형 데이터 모델, 네트워크 모델, 관계형 모델에 관계 없이 업무 측면에서 모델링
- EA(Enterprise Architecture)수립시 사용
논리적 데이터 모델링 - 특정데이터베이스 모델에 종속
- 구축하고자 하는 업무에 대해 key, 속성, 관계등을 정확하게 표현
- 정규화를 통해서 재사용성이 높음
물리적 데이터 모델링 - 실제로 데이터베이스에 이식 할 수 있도록 성능, 보안, 가용성 등 물리적인 성격을 고려하여 설계 
- 구축할 데이터베이스 관리 시스템에 테이블, 인덱스 등을 생성하는 단계 

* 정규화 

- 논리데이터 모델 상세화 과정

- 일관성 확보, 중복 제거로 속성들이 가장 적절한 엔터티에 배치되도록 함 

    -> 신뢰성있는 데이터 그조를 얻는 목적


프로젝트 생명주기(Life Cycle)에서 데이터 모델링

계획 -> 분석-> 설계 -> 개발-> 테스트-> 전환 및 이행

 

계획 또는 분석 단계는 개념적 데이터 모델링

분석 단계논리적 데이터 모델링

설계 단계물리적 데이터 모델링

 

- Waterfall 기반 

분석과 설계 단계로 구분되어 명확하게 정의 

 

-정보공학/구조저 방법론

분석단계 : 업무 중심 논리적 모델링

설계 단계 : 하드웨어 및 성능 고려한 물리적 모델링

 

-나선형 모델(RUP, 마르미) 

업무 크기에 따라 논리적/물리적 모델링이 분석/설계 양쪽 수행

비중은 분석단계에서 논리적 모델이 더 많이 수행

데이터축과 애플리케이션축으로 구분되어 프로젝트 진행

상호검증을 수행하면서 단계별 완성도를 높임

 

 

 

반응형
LIST

모델링이란? 

- 복잡한 현실세계를 단순화 시켜 표현하는 것

- 현실세계의 추상화된 반영

- 사물 또는 사건에 대한 양상(Aspect) 이나 관점(Prespective)을 연관된 사람이나 그룹을 위해 명확하게 하는 것 

- 데이터베이스를 구축하기 위한 분석/설계의 과정 


모델링의 특징

특징 설명
추상화
(Abstraction)
현실세계를 일정한 형식에 맞추어 표현, 다양한 현상을 일정한 양식인 표기법에 의해 표현
단순화
(Simplification)
복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 함
명확화
(Clarity)
누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술

모델링의 세가지 관점

 

관점
데이터 관점 - 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계를 무었인지 대해서 모델링 하는 방법(What, Data)
- 구조 분석, 정적 분석
프로세스 관점  - 업무가 실제하고 있는 일은 무었인지 또는 무엇을 해야하는지를 모델링 하는 방법(How, Process)
- 시나리오 분석, 도메인분석, 동적 분석
데이터와 프로세스 -  업무가 처리하는 일의 방법에 따라 데이터틑 어떻게 영향을 받고 있는지 모델링 하는 방법(Interaction)으로 설명됨 
- CRUD(create, read, update, delete)분석

모델링이 중요한 이유

- 데이터베이스 소프트웨어 개발 오류 감소

- 데이터베이스 설계 및 생성 속도와 효율성 촉진

- 조직 전체에서 데이터 문서화 및 시스템 설계의 일관성 조성

- 데이터 엔지니어와 비지니스 인텔리전스팀 간의 커뮤니케이션 촉진

중요성 설명
파급효과
(Leverage)
파급효과가 크다
데이터 구조 변경으로 인한 일련의 변경작업 위험요소 해결
복잡한 정보요구사항의 간결한 표현
(Conciseness)
요구사항, 한계 명확하고 간결하게
데이터 품질
(Data Quality)
데이터 품질을 유지하고 오래된 데이터의 정확성, 신뢰성 해결

 

데이터 모델링의 유의점

유의 사항 설명
중복
(Duplication)
데이터 모델 같은 데이터를 사용하는 사람, 시간, 장소를 파악하는데 도움을 줌
데이터베이스가 여러 장소에서 같은 정보를 저장하는 잘못을 하지 않도록 함 
비유연성
(Inflexibility)
데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 
작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄임
비일관성
(Inconsistency)
데이터 중복이 없더라도 비일관성은 발생
데이터 모델링을 할때 데이터와 데이커간 상호 연관 관계에 대한 명확한 정의는 이러한 위험을 사전에 예방
반응형
LIST

데이터 무결성(Data Integrity) 란? 

- 데이터의 정확성, 일관성, 유효성이 유지되는 것을 의미 

- 정확성 : 중복이나 누락이 없는 상태

- 일관성 : 원인과 결과의 의미가 연속적으로 보장되어 변하지 않는 상태 

 


<데이터 무결성 제약조건의 종류와 개념>

 

1. 개체 무결성(Entity Intergrity)

기본키(Primary Key) 제약이라고도 하며, 테이블을 기본키를 지정하고 그에 따른 무결성 원칙을 지켜야 하는 조건

*기본키란? 

-테이블에서 데이터를 구별하기 위해 후뵠 중에서 선택된 고유한 식별자 키 

-기본키는 NULL 값이 올 수 없다. 

-테이블 내에 오직 하나의 기본키만을 가질 수 있다. 

 

2. 참조 무결성(Referential Intergrity)

외래키(Foreign Key) 제약이라고도 하며, 테이블 간의 참조 관계를 선언하는 제약조건

*외래키란?

-한 테이블의 키 중에서 다른 테이블의 기본키를 참조하여, 다른 테이블의 레코드를 유일하게 식별할 수 있는 키

-외래키의 값은 NULL 값이거나 참조하는 테이블의 기본키와 같은 값과 동일해야함

-외래키 속성은 참조할 수 없는 값을 지닐 수 없음

 

3. 도메인 무결성(Domain Intergrity)

테이블에 존재하는 필드의 무결성을 보장하기 위한 것

필드의 타입, Null값 허용 등에 대한 사항을 정의하고 올바른 데이터가 입력되었는지 확인하는 조건

*예 ) 속성값으로 Int(Number)값이 있는 필드에 문자열이 들어오는 경우 모데인의 무결성이 깨졌다고 볼 수 있다. 

 

4. Null무결성(Null Intergrity)

테이블의 특정 속성에 대한 각 레코드들이 갖는 값들이 서로 달라야하는 조건

 

5. 고유 무결성(Unique Intergrity)

테이블의 특정 속성에 대해 각 레코드들이 같는 값들이 서로 달라야하는 조건

 

6. 키무결성(Key Intergrity) 

하나의 테이블에는 적어도 하나의 키가 존재해야한다는 규정 

 


<무결정 제약조건의 장단점>

- 장점 : 스키마를 정의할때 일관성 조건을 한번만 명시하고, 데이터베이스가 갱신될때 응용프로그램들은 일관성 조건을 검사할 필요가 없다. 

 

- 단점 : 작업이 복잡해지고, 무결정 제약조건을 반복해서 구현해야하고, 무결성 제약조건들끼리 충돌이 일어날 수 있다.

반응형
LIST

+ Recent posts