Sherry IT Blog

[SQLD 핵심 요약] 데이터모델링의 이해 본문

DataBase/SQLD

[SQLD 핵심 요약] 데이터모델링의 이해

sherrylover 2021. 3. 18. 22:56
728x90
반응형

*데이터 모델링

-정보시스템을 구축하기 위한 데이터 관점의 업무 분석기법

-현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정

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

-단순화,명확화,추상화 > 3대 특징

 

*데이터 모델링이 중요한 이유 3가지

1. 파급효과(Leverage) : 불가피한 상황에 데이터 모델에 따른 구조변경이 일어날 수 있기 때문에 중요한 데이터 설계과정

2.간결한표현(Conciseness) : 복잡한 정보 요구사항을 정확하고 간결하게 표현되어야 한다

3.데이터품질(Data Quality) : 데이터 구조, 중복데이터, 데이터 구조의 비즈니스 정의의 불충분 등 여러 문제로 인한 문제가 대두될 수 있다

 

*데이터 모델링할 때 유의해야할 점

1. 중복(저장공간 주의)

2.비유연성 (데이터의 정의를 데이터의 사용 프로세스와 분리로 해결)

3.비일관성(중복이 없더라도 비일관성 발생하기 때문에 데이터 간 상호 연관 관계에 대한 명확한 정의 필요)

 

 

*데이터 모델링 3단계

개념적 데이터 모델링 논리적 데이터 모델링 물리적 데이터 모델링
추상화 수준 ▲
포괄적인 수준,전사적 데이터 모델링
구체적
key,속성,관계 등을 정확하게 표현
재사용성이 높다
구체적 ▲
실제 DB에 이식할 수 있도록 성능, 저장 등
물리적인 성격을 고려

 

 

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

 

분석   ►    설계  ► 개발 ► 테스트 ►전환 / 이행

 

*분석단계에서 개념적 데이터 모델링 , 논리적 데이터 모델링

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

 

 

 

* 데이터 독립성 <> 데이터 종속성

 

*데이터 독립성이 필요한 이유

-증가하는 유지보수 비용 절감

-증가하는 데이터 복잡도 낮추기

-증가하는 데이터 중복 낮추기

-낮은 요구사항 대응

 

*데이터 독립성을 확보하면 얻게 되는 효과

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

-단계별 schema에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 정의

 

 

*데이터베이스 3단계 구조

-데이터독립성 모델을 위한 3단계 구성

외부스키마
(External Schema)
개념스키마
(Conceptual Schema)
내부스키마
 (Internal Schema)
개개 사용자 단계로 사용가자 보는 개인적DB스키마
- 사용자 관점 접근 특성에 따른 스키마구성
사용자 관점을 통합한 조직 전체의 DB를 기술
-통합관점
내부단계,내부스키마로 구성,DB가 물리적으로 저장된 형식
-물리적 저장구조

 

*ERD작성 순서

엔터티 도출 ► 엔터티 배치  ► 엔터티 관계 설정 ► 관계명 기술 ► 관계 참여도 기술 ►관계 필수여부 기술

 

===============================================

 

*엔터티의 개념(Entity)

-변별할 수 있는 사물 >peter chen(1976)

-데이터베이스 내에서 변경 가능한 객체 > C.J Date(1986)

-정보를 저장할 수 있는 어떤 것 > James Martin(1989)

-정보가 저장될 수 있는 사람,장소,물건 사건 그리고 개념 등 > Thomas Bruce (1992)

-엔터티는 사람,장소,물건,사건,개념 등의 명사에 해당한다

-엔터티는 업무상 관리가 필요한 관심사에 해당한다.

-엔터티는 저장이 되기 위한 어떤 것(Thing)이다.

-인스턴스의 집합(인스턴스 : 엔터티의 하나의 값에 해당)

 

*엔터티의 일반적인 특징

- 다른 엔터티와  최소 한 개 이상의 관계를 가져야 한다.

- 유일한 식별자에 의해 식별이 가능해야 한다.

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

- 엔터티는 반드시 속성을 포함해야 한다.

- 영속적으로 존재하는 인스턴스의 집합이어야한다.(두 개 이상)

 

 

*발생시점에 따른 엔터티 분류

1) 기본엔터티

-그 업무에 원래 존재하는 정보, 다른엔터티와 관계에 의해 생성되지 않고 독립적으로 생성 가능

- 자신의 고유한 주식별자를 가지게됨

ex) 사원,부서,고객,상품,자재

 

2) 중심엔터티

- 기본엔터티로부터 발생되고 그 업무에 있어서 중심적인 역할을 함

- 데이터양이 많이 발생되고, 다른 엔터티와의 관계를 통해 많은 행위엔터티를 생성 

ex) 계약,사고,예금원장,청구,주문,매출

 

3) 행위엔터티

-두 대 이상의 부모엔터티로부터 발생되고 자주 내용이 바뀌거나 데이터량이 증가된다.

ex) 주문목록,사원변경이력

*속성(Attribute)

- 엔터티에 대한 자세하고 구체적인 정보를 나타냄

- 하나의 엔터티는 두개 이상의 속성을 갖는다.

- 한 개의 속성은 한개의 속성 값을 갖는다

- 속성도 집합이다.

- 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 단위

 

 

*속성의 특성에 따른 분류

- 기본속성 : 원래 가지고 있어야 하는 속성, 업무로 부터 추출한 모든 속성

- 설계속성 : 원래 존재하지 않지만 필요에 의해 설계자가 추가한 속성( 코드성 데이터, 일련번호)

- 파생속성 : 다른 속성의 영향을 받아 발생하는 속성, 계산된 값, 합계 

 

*도메인(Domain)

-속성의 범위 , 각 엔터티(테이블)의 속성에 대해 어떤 유형의 값이 들어가는지를 정의하는 개념

- 즉, 엔터티 내에서 속성에 대한 데이터 타입, 크기, 제약사항을 지정함

*속성의 명칭 부여

- 해당 업무에서 사용하는 이름을 부여한다.

- 서술식 속성명은 사용하지 않는다.

- 약어 사용은 가급적 제한한다.

- 전체 데이터 모델에서 유일성을 확보하는 것이 좋다

 

*관계(Relationship)

- 엔터티의 인스턴스 사이의 논리적인 연관성으로 조냊의 형태로서나 행위로서 서로에서 연관성이 부여된 상태

- 존재적 관계 : ex) 부서와 사원 엔터티 간 '소속' 관계

- 행위적 관계 : ex) 주문과 배송 엔터티 간 '배송 근거' 관계

 

*관계의 표기법

- 관계명 : 관계의 이름

- 관계차수 :  1:1, 1:M, M:N    Relationship Cardinality

- 관계 선택사양 : 필수관계, 선택관계

 

 

===============================================

*식별자의 종류

1. 엔터티내에서 대표성을 가지는지에 따라 ► 주식별자,보조식별자

2.엔터티내에서 스스로 생생되어있는지 ► 내부식별자, 외부식별자

3.단일속성으로 식별이 되는가에 따라 ► 단일식별자, 복합식별자

4.원래 업무적으로 의미가 있던 식별자 속성을 대체하여 일련번호와 같이 새롭게 만든 식별자를 구분에 따라

► 본질식별자,인조식별자

 

*주식별자(Primary Identifier)

-엔터티 내에서 대표성을 가지는 주식별자

-주식별자에 의해 엔터티내에 모든 인스턴스들이 유일하게 구분되어야한다.

-주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야한다.

-지정된 주식별자이 값은 자주 변하지 않는 것이어야 한다,

-주식별자가 지정이 되면 반드시 값이 들어와야한다.

 

 

*주식별자의 특징

- 유일성 : 주식별자에 의해 엔터티내에 모든 인스턴스들을 유일하게 구분

- 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야함

- 불변성 : 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함

- 존재성 : 주식별자가 지정되면 반드시 데이터 값이 존재해야 함(NOT NULL)

 

 

*식별자와 비식별자 관계 비교

 

항목 식별자 관계 비식별자 관계
목적 강한 연결관계 표현 약한 연결관계 표현
자식 주식별자 영향 자식 주식별자의 구성에 포함 자식 일반 속성에 포함
표기법 실선 표현 점선 표현
연결
고려사항
- 반드시 부모엔터티 종속
-자식 주식별자구성에 부모 
주식별자포함 필요
-상속받은 주식별자속성을 타 
엔터티에 이전필요
-약한 종속관계
-자식 주식별자구성을 독립적으로 구성
-자식 주식별자구석에 부모 주식별자 부분필요
-상속받은 주식별자속성을 타 엔터티에 차단 필요
-부모쪽의 관계참여가 선택관계

 

728x90
반응형

'DataBase > SQLD' 카테고리의 다른 글

[SQL 핵심요약] SQL 활용  (0) 2021.03.20
[SQLD 핵심 요약] 데이터 모델과 성능  (0) 2021.03.19
[SQL 핵심요약] SQL 기본  (2) 2021.03.19
Comments