Data

[1028 SQL]Ⅰ. 데이터 모델링-제1장 모델링, 엔터티, 속성, 관계(ERD), 식별자

출처: SQL 전문가 가이드 : 네이버 도서 (naver.com)  & Chat GPT

 

SQL 전문가 가이드 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

과목 Ⅰ. 데이터 모델링의 이해

제1장 데이터 모델링의 이해

제1절 데이터 모델의 이해

모델링 복잡한 현실세계를 단순화 시켜 표현
현실 세계 추상화된 반영

계획,분석,설계 - 업무 분석, 설계
구축,운영 - 변경과 관리
특징 추상화 일정한 양식, 표기법으로 표현
단순화 쉽게 이해할수 있도록하는 개념
명확화 애매모호함 제거
관점  데이터 관점 WHAT 업무-데이터 관계
프로세스 관점 HOW 업무-일 관계
 상관관점 Data vs Process 
= Interaction
업무에서 일에따라 데이터 영향
데이터 모델링 1. 정보시스템을 구축하기 위한 데이터관점의 업무 분석기법
2. 현실세계 데이터에 대해 약속한 표기법에 의해 표현하는과정
3. 데이터베이스 구축하기 위한 분석/설계과정
중요성 파급효과 Leverage  
복잡한요구 간결한표현 Conciseness  
데이터 품질 Data Quality  
주의점 중복  
비유연성 작은변화가 중대한 변화를 일으킬수 있는 가능성을 줄인다. 
비일관성 데이터 연관관계 명확한 정의로 해결
단계 1. 개념적데이터모델링 Conceptual Data Modeling 요구사항분석에서 시작
전사적데이터모델 Enterprise Data Model
고립된(stand alone) 모델도 모델링에도 쉽게 표현됨
ex) ERD
2. 논리적데이터모델링 Logical Data Modeling 누가 어떻게 를 정의 
식별자 확정, 정규화, M:M관계해소, 참조무결성
ex) 사용자ID :  정수, 기본키 
3. 물리적데이터모델링 Physical Data Modeling 테이블, 컬럼, 저장구조, 저장장치, 자료추출 접근방법
ex) 사용자ID : int, PK 
프로젝트 생명주기 분석 - 설계 - 개발 - 테스트 - 전환/이행

현실 프로젝트에서 분석단계에서 개념/논리 데이터 모델링 대부분 수행
데이터독립성 1. 유지보수비용
2. 데이터 중복성
3. 데이터 복잡도
4. 요구사항 대응저하 
ANSI/SPARC 의 3단계 구성 외부단계, 개념적단계, 내부적단계가 서로 간섭되지않는모델. 
통합된 뷰를 스키마 구조로 디자인한 단계. 
스키마 "설계도(모양, 형태, 구조)" 
테이블, 컬럼, 데이터타입, 관계로 데이터베이스 구조, 제약조건 정의
외부스키마(외부계층) External schema#1 , External schema#2, ...  External schema#n
사용자관점. 여러 사용자가 어플리케이션을 보는 관점.
ex) 고객 화면
논리적 데이터 독립성 사용자특성
통합구조 변경가능
스키마(테이블, 관계) 변경해도 응용프로그램 변경없음
ex) 주문테이블 배송상태 추가해도 변경없음
개념스키마(개념계층) Conceptual Schema
통합관점, 데이터베이스의 논리적구조
ex) 테이블, 관계
물리적 데이터 독립성 물리변경없이 개념구조변경
개념구조영향 없이 물리구조변경
물리적저장방식 바꿔도 논리적데이터구조나 응용프로그램 변경없
ex) 테이블 인덱스 추가, 데이터가 SSD, RAID 배열로 변환되도 변경없음
내부스키마(물리적계층) Internal Schema
물리적 저장구조,  실제로 저장되는 방법, 위치, 인덱스, 파티셔닝
ex) 어떤디스크에저장
사상
Mapping
 
논리적사항 외부스키마와 개념스키마 연결
물리적사상 개념스키마와 물리스키마연결
데이터 모델링의 3가지 요소
Thing
, Attributes
, Relationships
  복수/집합개념
타입/클래스
개별/단수개념
어커런스(사건)/인스턴스
Things Entity Type Entity
Entity Instance
Occurrence
Association between Things Relationship Paring
Characteristic of a Thing Attribute Attribute Value
좋은 데이터 모델의 요소 1. 완전성 업무에 필요한 모든데이터가 데이터모델에 정의
2. 중복배제 나이, 생년월일 컬럼이 동시에 존재하는것이 중복, 중복제거
3. 업무규칙 논리데이터모델에서 업무규칙이 나타아야 동일한 판단을하고 데이터조작
4. 데이터 재사용 데이터와 어플리케이션이 독립적으로 설계, 재사용성 향상. 
5. 의사소통 설계자가 정의한 업무규칙 동일한 의미로 받아들임
6. 통합성 공유 데이터에 대한 구조를 여러업무영역에서 공동으로 사용 용의하게

 

 

ERD = Entity-Relationship Diagram =개체-관계 다이어그램
작업순서 1. 엔티티도출  
2. 배치 중요도가 높을수로 왼쪽, 위쪽 배치 ( 왼오,위아래 )
3. 관계 설정 식별자관계, 순환관계 발생하지 않도록 작성
4. 관계명 현재형 ex) 저장하다, 포함하다
5. 참여도  
6. 필수여부를 기술한다.   
다양한
표기법
  엔티티 속성 관계 비고 
피터첸(Chen) 표기법
- 1976년 도입
사각형 타원 마름모, 선, 숫자,원  
IDEF1X 표기법
사각형   선, 마름모,원 엔티티상단
I/E (Crow's Foot) 표기법 사각형  
관계수
1:1, 1,M
PK 가 엔티티 첫번째칸
UML 클래스 다이어그램 사각형 엔티티 포함 선(상속,집합,연관)  
바커표기법 사각형 엔티티 포함 선, 참여도 엔티티첫번째칸에 엔티티명



제2절 엔터티

엔티티 데이터베이스에서 정보저장단위, 고유한속성을 가지며 식별가능 한 객체
엔티티는 영속적(지속적)으로 두개 이상의 인스턴스, 두개이상 속성, 다른엔티티와 관계를 가져야 한다. 
  명명 1. 현업에서 사용하는 용어
  2. 약어 미사용
  3. 단수명사
  4. 유일한 이름
  5. 엔티티 생성 의미대로 이름부여
   ex) 고객이 주문한 제품 vs 고객의 제품
분류 유무형 분류 개념엔티티 물리적형태없고, 관리해야할 개념정보 ex) 고객-개인,기업
유형엔티티 물리적형태있는 안정적이고 지속적활용 ex) 상품
사건엔티티 특점시전 발생 사건, 행동 ex) 주문, 배송
발생시점 기본/키엔티티 부모역할을하는 독립적인 엔티티 ex) 고객, 상품
중심엔티티 기본엔티티로 발생, 중심역할, 데이터양많음 ex) 주문
행위엔티티 엔티티내용이 자주변경되거나 증가함 ex) 배송

제3절 속성

속성 사물의 성질
인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
속성은 스스로가 속성을 가질수없다. 
  명명
1. 해당업무에서 사용하는 이름부여
  2. 서술식 이름 사용안함
  3. 약어사용은 가급적 제한
  4. 전체데이터모델에서 유일성 확보
분류 특성분류 기본속성 업무분석통해정의
설계속성 일련번호, 기본속성을 규칙화 변형
파생속성 다른속성에서 영향받아 파생, ex) 계산된 값
엔티티
구성방식
분류
PK속성 유일구분값
FK속성 다른 엔터티 관계
일반속성 엔터티 포함, PK, FK아닌속성
세부의미 단순속성 나이, 성별, 더이상 다른속성들로 구성될수없는속성
복합속성 시,구,동 여러 세부 속성들로 구성될수있는 속성. 
도메인 속성의 값이 가질 수 있는 범위


제4절 관계

관계 엔티티의 인스턴스사이의 논리적 연관성 
복수/단수 관계페어링 각각 엔티티의 인스턴스들이 자신과 관련된 인스턴스관계를 가지는것
피터첸 모델에서는 관계는 속성을 가질수 있었으나 지금은 관계를 위해 속성도출안함 이항관계 ...n항관계 가능
분류 연결목적 존재에 의한 관계 학생 > 학부  
행위에 의한 관계 주문 > 손님
ERD IE 표기 관계명 1. 현재형
2. 관계시작점 & 관계 끝점  = 능동 or 수동적
관계차수 
(카디널리티)
1:1 (양쪽 선)
1:M (한 쪽 선, 한 쪽 닭발)
M:N (양쪽닭발)
관계선택사양

필수 - 항상관계에참여
선택적참여(동그라미) - 0개 혹은 1개이상 연결
관계체크사양 연관규칙, 정보조합, 규칙, 동사
읽기 각각의 사원은   한      부서에   때때로 속한다. 
각         부서는  여러   사원이  항상      소속된다. 

제5절 식별자

식별자 식별자는 엔터티 내에서 인스턴스들을 구분할 수 있는 구분자.(PK와는 다른 업무적구분정보)
특징 유일성 모든인스턴스 유일하게 구분
최소성 주식별자 구성하는 속성수는 유일성 만족 최소의수
불변성 변하지않는값
존재성  NULL 안됨
구분 대표성유무 주식별자 어커런스(한사례) 구분할수있는구분자, 엔티티 참조관계연결가능 식별자
1. 자주 이용되는 속성
2. 명칭, 내역을 사용안함
3. 복합식별자를 주식별자 구성시에는 많은 속성이 포함되지 않게 
4. 자주 변하지 않는것. 
보조식별자 어커런스(한사례) 구분할수있는구분자, 엔티티 참조관계연결불가, 대표성없음
스스로생성여부 내부식별자 엔티티 내부에서 스스로만들어지는식별자
외부식별자 타엔티티 관계를 통해 받아오는 식별자
단일/복합 단일식별자 하나의속성 구성
복합식별자 둘이상의 속성으로 구성
업무적의미 본질식별자 업무에 만들어지는 식별자
인조식별자 원래 식별자가 복잡한 구성때문에 인위적으로 만든 식별자. 
식별/
비식별
1. 관계분석
2. 관계 강/약
3. 자식테이블 독립 PK 여부
4. PK속성단순화

식별(실선) - 부모테이블 PK 가 자식테이블 PK
1. 강한연결관계
2. 자식 주식별자의 구성에 포함됨
3. 실선표현
4. 반드시 부모엔티티종속, 자식주식별자구성에 부모주식별자포함
5. 상속받은 주식별자속성을 타 엔티티에 이전필요
비식별(점선) - 부모테이블PK가 자식테이블 기본키아님
1. 약한 연결관계표현
2. 자식일반속성에 포함됨
3. 점선표현
4. 약한종속관계
5. 자식 주식별자구성을 독립적을 구성
6. 자식 주식별자구성에 부모 주식별자 부분 필요
7. 상속받은 주식별자 속상을 타 엔티티에 차잔필요. 
8. 부모쪽의 관계참여가 선택관계