출처: 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. 부모쪽의 관계참여가 선택관계 |
'Data' 카테고리의 다른 글
[1028 SQL]Ⅱ. SQL 기본과 활용-제1장 SQL, ERD, 함수(집계함수 외), select 외 (0) | 2024.06.20 |
---|---|
[1028 SQL]Ⅰ. 데이터 모델링-제2장 정규화, JOIN, 트랜잭션, null, 본질식별자&인조식별자 (0) | 2024.06.19 |
[1028] SQL 전문가 목차 (0) | 2024.04.29 |
mybatis (0) | 2022.08.05 |
[1028 JPA ] (0) | 2022.05.25 |