데이터 모델링의 이해
데이터 모델링
>>> 현실 세계를 데이터베이스로 표현하기 위한 기법
데이터 모델링을 하기 위해서는 고객과의 의사소통을 통해 고객의 업무 프로세스를 이해해야 하낟.
데이터 모델링 표기법을 사용해 모델링을 한다.
데이터모델링의 특징
추상화 Abstraction
- 현실 세계를 간략하게 표현
단순화 Simplification
- 누구나 쉽게 이해할 수 있도록 표현
명확화 clarity
- 불분명함을 제거하고 정확하게 한가기 의미를 가져야 한다
데이터 모델링 3가지 유의점
1.중복 (Duplication)
- 같은 데이터가 엔티티에 중복 저장되면 안된다.
2.비유연성 (Inflexibility)
사소한 변화에 대해서도 잦은 모델 변경이 되지 않도록 주의한다
- 데이터 모델과 프로세스를 분리해 유연성을 높여야한다.
3.비일관성 (Inconsistency)
- 데이터 간의 연관 관계에 대해 명확하게 정의되어야 한다.
데이터 모델링의 3단계
1. 개념적 모델링
추상화 수준이 가장 높다.
전사적 관점에서 수행
업무를 중심으로 포괄적인 수준의 모델링
2. 논리적 모델링
속성, 식별자, Key들을 표현한다
데이터 정규화 활동이 이루어진다
논리데이터 모델을 대상으로 정규화를 한다.
3. 물리적 모델링
데이터베이스를 실제 구축한다.
성능, 보안, 가용성을 고려해 구축한다.
중요요소
1. Entitiy 대상
2. Attribute 속성
3. Relationship 관계
데이터 모델링 관점
1. 데이터
- 구조분석, 정적 분석
2. 프로세스
- 시나리오 분석, 도메인 분석, 동적 분석
3. 데이터와 프로세스
- CRUD(Create, Read, Update, Delete) 분석
데이터 모델링을 위한 ERD(Entity Relationship Diagram)
엔터티와 엔터티 간의 관계를 정의하는 모델링
ERD 작성 순서
1. 엔터디를 도출한다
2. 엔터티를 배치한다
3. 엔터티 간의 관계를 설정한다
4. 관계명을 서술한다
5. 관계 참여도를 표현한다
6. 관계의 필수 여부를 표현한다
작성시 고려사항
1. 중요한 엔터티를 왼쪽 상단에 배치
2. ERD는 단순해야한다.
3 Level Schema
스키마(Schema)란
데이터의 구조와 구성을 정의하는 청사진 또는 설계도
데이터베이스에 어떤 종류의 데이터가 어떻게 저장되고 구성되어 있는지를 정의하는 것입니다.
논리적 독립성 - 개념 스키마가 변경되어도 외부 스키마가 영향을 받지 않는 것
물리적 독립성 - 내부 스키마가 변경되어도 개념 스키마가 영향을 받지 않는 것
데이터 스키마의 구조

외부 스키마
- 응용 프로그램이 접근하는 데이터베이스
- 사용자의 관점에서 데이터를 표현하는 정의 & 표현
개념 스키마
- 통합 데이터베이스 구조
- 모든 사용자가 데이터를 표현하는 정의 & 표현
내부 스키마
- 물리적 저장 구조
- 데이터 저장 구조, 레코드 구조, 필드 정의, 인덱스 등을 의미한다
엔터티 Entity
엔터티
- 업무에서 관리해야 하는 데이터 집합 (저장 & 관리되어야 하는 데이터)
엔터티의 특징
1. 2개 이상의 인스턴스가 있어야 한다
2. 업무에서 쓰는 집합이다
3. 다른 엔티티와 최소한 한 개 이상 관계가 있다
4. 반드시 속성을 갖고 있다
5. 유일한 식별자가 있어야 한다
엔터티 종류
유형과 무형에 따른 분류
1. 유형 엔터티
- 물리적으로 존재, 측정 가능 >> 지속적으로 사용된다
2. 개념 엔터티
- 물리적 형태가 없다
3. 사건 엔터티
- 비즈니스 프로세스를 실행하면서 생성된다
발생 시점에 따른 분류
1. 기본 엔터티 = 키 엔터티
- 키 엔티티
- 독립적으로 생성되는 엔티티
예) 상품, 회원, 부서
2. 중심 엔터티 = 메인 엔터티
- 기본 엔티티와 행위 엔티티 중간에 위치
- 기본 엔티티러부터 파생 & 행위 엔티티를 생성
예) 주문, 매출, 계약
3. 행위 엔터티
- 2개 이상의 엔티티로부터 발생한다
예) 주문 내역, 이벤트 응모 이력
엔터티 명명
1. 현업 업무에서 사용하는 용어
2. 약어를 사용하지 않는다 , 영어 대문자로 표시
3. 단수명사 사용한다, 띄어쓰기 하지 않는다
4. 유일하게 이름이 부여되어야 한다(중복 X)
속성
업무에서 관리되는 정보인 엔터티가 가지는 항목
하나의 값만 가진다
엔터티를 설명 & 인스턴스의 구성요소
하나의 속성은 하나의 속성값을 가진다 >> 여러개를 가지면 1차 정규화이다.
속성은 주식별자에게 함수적으로 종속된다. >>> 기본키가 변경된다면 속성값도 변경된다
속성의 종류
분해 여부에 따른 분류
1. 단일 속성 - 속성이 하나의 의미로 구성된 것
2. 복합 속성 - 속성이 여러 개의 의미가 있는 것
3. 다중값 속성 - 속성에 여러 개의 값을 가질 수 있는 것 = 엔터티로 분해됨
특성에 따른 분류
1. 기본 속성 - 비즈니스 프로세스에서 도출된다. 본래의 속성
2. 설계 속성 - 데이터 모델링 과정에서 발생되는 속성, 유일한 값을 부여한다
3. 파생 속성 - 다른 속성의 값을 이용해 계산된 속성
구성방식에 따른 분류
PK 속성
- 인스턴스의 유니크함을 부여하는 속성
- 일반 속성의 종속성을 가진 키(Primary Key)
FK 속성
- 다른 엔터티에서 가져온 외래키
- 다른 엔터티와 관계를 맺게 한다
도메인
- 각 속성은 가질 수 있는 값의 범위
- 속성에 대한 엔터티 내에서 속성에 대한 데이터 타입 / 크기 / 제약사항 지정
시스템 카탈로그
시스템 자체에 관련있는 데이터를 가지고 있는 DB
SQL로 조회 가능
관계 Relationship
엔터티 간의 관련성
관계종류 : 존재관계와 행위관계
1. 존재관계
- 두 개의 엔터티가 존재 여부의 관계가 있는 것 (엔터티간의 상태)
2. 행위관계
- 두 개의 엔터티가 어떤 행위에 의한 관련성이 있는 것
필수적 관계 - 반드시 하나가 있어야 한
선택적 관계 - 없을 수도 있는 관계
관계차수 : 2개 엔터티 간 관계에 참여하는 수
관계 차수의 종류
1. 1 대 1 관계
완전 1대1 - 1개 엔터티에 관계되는 엔터티의 관계가 1개이고, 반드시 존재한다.
선택적 1대1 - 관계가 1개이거나 없을 수 있다.
2. 1 대 N 관계
엔터티에 행이 1개 있을 때
3. M 대 N 관계
2개 엔터티가 서로 여러개의 관계를 가지고 있다
카테시안 곱 - 각 릴레이션에 존재하는 모든 데이터를 조합, 연산하는 것
식별관계 Identification Relationship
실선으로 표현
강한 개체의 기본키를 다른 개체의 기본키 중 하나로 공유한다.
강한 개체의 기본키 값이 변경되면, 식별관계에 있는 엔터티의 값도 변경된다.
기본키를 공유받은 다른개체는 약한개체가 된다.
비식별관계 Non- Identification Relationship
점선으로 표현
강한 개체의 기본키를 다른 개체의 일반키로 공유한다
다른 엔터티의 기본키가 아닌 칼럼으로 공유 (단순한 외래키로 참조)
기본키를 공유받은 다른 개체는 약한 개체가 아니다
식별자 Identifier
엔터티를 대표할 수 있는 유일성을 만족하는 속성
식별자는 최소성 / Not Null / 유일성을 만족, 해당하는 엔터티를 대표할 수 있어야 한다.
키(Key)의 종류
기본키 Primary Key
후보키 중에서 엔터티를 대표할 수 있는 키
후보키 Candidate Key
후보키는 유일성과 최소성 만족
슈퍼키 Super Key
유일성은 만족
최소성을 만족하지 않는 키
대체키 Alternative Key
여러 개의 후보키 중에서 기본키를 선정하고 남은 키
외래키 Foreign Key
하나 혹은 다수의 다른 테이블의 기본 키 필드
>> 허용된 데이터 값만 DB에 저장하기 위해 사용
주식별자(Primary Key, 기본키)
주식별자는 PK에 해당하는 속성이다.
PK는 여러개가 존재 할 수 있다.
최소성 - 필요한 최소한의 속성들로 만족하는 키
대표성 - 기본키는 엔터티를 대표할 수 있음
유일성 - 엔터티의 인스턴스를 유일하게 식별
불변성 - 속성값이 자주 변경되지 않아야 한다
존재성 - 항상 데이터 값이 있어야 한다.
>>> 특정한 특성을 만족함에 다라 속성은 특정 키로 존재 가능하다
식별자의 종류
식별자는 대표성. 생성여부, 속성의 수, 대체 여부로 식별자를 분류한다
대표성 여부에 따른 식별자의 종류 - 주 식별자 & 보조 식별자
생성 여부에 따른 식별자의 종류 - 내부 식별자 & 외부 식별자
속성의 수에 따른 식별자의 종류 - 단일 식별자 & 복합 식별자
댜채 여부에 따른 식별자의 종류 - 본질 식별자 & 인조 식별자
주 식별자
유일성과 최소성 만족, 엔터티를 대표한다
다른 엔터티와 참조 관계로 연결될 수 있다.
보조 식별자
유일성과 최소성 만족
대표셩을 만족하지 못한다
내부 식별지
엔터티 내부에서 스스로 생성된다
예) 부서코드, 주문번호, 종목코드 등
외부 식별자
다른 엔터티와의 관꼐로 인해 생성된다
예) 계좌 엔터티에 회원ID
단일 식별자
1개 속성을 구성됨
ex) 고객 엔터티에 회원ID
복합 식별자
두 개 이상의 속성으로 구성됨
본질 식별자
비즈니스 프로세스에서 만들어짐
인조 식별자
유일한 값을 만들려고 인위적으로 생성

참고도서 - SQL 개발자 이론서 + 기출문제 2024 & SQL 자격검정 실전문제 개정판
'자격증 > SQLD' 카테고리의 다른 글
| 1과목. 데이터 모델링의 이해 2 (0) | 2024.05.24 |
|---|