일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- biginteger사용법
- 블록체인강의
- 자바입력받기
- 혁신의기술2:신뢰의미래 블록체인을 만나다
- 오블완
- 자바문자열구분
- CSS 기초
- StringTokenizer
- K-MOOC
- K-MOOC 단국대학교 홍보단
- TypeScript
- 블록체인
- 자바스크립트
- 딥러닝
- 시스템프로그래밍
- 2차원배열정렬
- Entity
- national instruments
- 컴파일시스템
- 해시
- Node
- 자바
- stringreader
- 머신러닝
- 단국대학교 k-mooc
- 블록체인 강의
- 우선순위큐
- 티스토리챌린지
- 디스크블록할당
- html기초
- Today
- Total
열정 실천
[SQLD] 001. 데이터 모델링의 이해 본문
| 01 | 데이터 모델링의 이해
모델링이란?
현실세계를 단순화하여 표현하는 기법으로 관리하고자 하는 데이터를 모델로 설계한다.
모델링의 특징
- 추상화 : 현실 세계를 일정한 형식으로 표현
- 단순화 : 복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현
- 명확화 : 불분명함을 제거하고 명확하게 해석할 수 있도록 기술한다.
데이터모델링 유의사항
- 중복 : 같은 데이터가 여러 엔티티에 저장되는 것을 지양
- 비유연성 : 데이터 모델을 쉽게 변경할 수 있도록 데이터 모델과 프로세스를 분리하여 유연성을 높여야함
- 비일관성 : 다른 데이터와의 연관성을 고려하지 않고 일부 데이터만 변경하지 않도록 데이터 간의 연관관계에 대해 명확히 해야한다.
모델링의 세 가지 관점
- 데이터 관점 : 어떤 데이터들이 업무와 얽혀있는지, 데이터 간에는 어떤 관계가 있는지.
- 프로세스 관점 : 실제로 처리하고 있는 일은 무엇인지. 앞으로 처리해야 하는 일은 무엇인지.
- 데이터와 프로세스의 상관 관점 : 관계 위주 모델링. 프로세스의 흐름에 따라 데이터가 어떻게 변하는지.
모델링의 세 가지 단계
1. 개념적 모델링 : 추상화 레벨이 가장 높은 모델링으로 업무 중심적이고 포괄적인 수준의 모델링 진행
2. 논리적 모델링 : 재사용성이 가장 높은 모델링으로 데이터베이스 모델에 대한 key, 속성, 관계 등을 모두 표현
3. 물리적 모델링 : 실제 데이터베이스를 구현할 수 있도록 물리적인 성격을 고려하여 모델링 진행
3단계 스키마 구조
1. 외부 스키마 : 사용자의 관점에서 보는 데이터베이스의 스키마를 정의
2. 개념 스키마 : 통합된 관점에서 전체 데이터베이스를 나타낸다.
3. 내부 스키마 : 물리적인 관점에서 보는 데이터의 저장 구조를 나타낸다. (컬럼 정의, 인덱스 등)
데이터의 독립성
- 논리적 독립성 : 개념 스키마가 변경되어도 외부 스키마는 영향받지 않는다.
- 물리적 독립성 : 내부 스키마가 변경되어도 외부/개념 스키마는 영향받지 않는다.
ERD (Entity Realationship Diagram)
시스템에 어떤 엔티티들이 존재하며 그들 간에 어떤 관계가 있는지를 나타내는 다이어그램
| 02 | 엔티티 (Entity)
데이터베이스 내에서 식별 가능한 개체
엔티티의 특징
- 업무에서 쓰이는 정보여야함
- 유니크함을 보장할 수 있는 식별자가 있어야 함
- 2개 이상의 인스턴스(Row)를 가지고 있어야함
- 반드시 속성(Column)을 가지고 있어야함
- 다른 엔터티와 1개 이상의 관계를 가지고 있어야함
엔티티의 분류
1. 유형 vs 무형
- 유형 엔티티 ex) 상품, 회원
- 개념 엔티티 ex) 부서, 학과
- 사건 엔티티 ex) 주문
2. 발생시점
- 기본 엔티티 : 독립적으로 생성됨 ex) 상품, 회원
- 중심 엔티티 : 기본 엔티티로부터 파생 ex) 주문
- 행위 엔티티 : 2개 이상의 엔티티로부터 파생 ex) 주문 내역
엔티티 이름
- 실제로 쓰이는 용어 사용
- 한글은 약어 X, 영문은 대문자 표기
- 단수 명사로 표현
- 띄어쓰기 X
- 다른 엔티티와 의미상 중복 X
| 03 | 속성(Attribute)
업무에서 필요로 하는 인스턴스에서 관리하고자하는 의미상 더 분리되지 않는 최소의 데이터 단위
엔티티 ⊃ 인스턴스 ⊃ 속성 - 속성값의 관계
1. 한 개의 엔티티는 두 개 이상의 인스턴스를 갖는다.
2. 한 개의 인스턴스는 두 개 이상의 속성을 갖는다.
3. 한 개의 속성은 한 개의 속성값을 갖는다.
속성의 분류
1. 특성
- 기본 속성 : 업무 프로세스 분석을 통해 바로 정의가 가능한 속성
- 설계 속성 : 업무에 존재하지는 않지만 필요에 의해 도출해낸 속성
- 파생 속성 : 다른 속성의 속성값을 계산하거나 특정한 규칙으로 변형하여 생성한 속성
2. 구성방식
- PK 속성 : 엔티티의 인스턴스를 식별할 수 있는 속성
- FK 속성 : 다른 엔티티의 속성에서 가져온 속성
- 일반 속성 : PK, FK를 제외한 나머지 속성
도메인
속성이 가질 수 있는 속성값의 범위로 데이터 타입과 크기로 나타낼 수 있다.
용어 사전
엔터티의 속성명을 정의할 때 명확한 의미의 이름을 부여하고 다른 엔티티와의 혼란을 예방하기 위한 것
| 04 | 관계
관계 종류
- 존재 관계 : 존재 자체로 연관성이 있는 관계 ex) 학생 - 학과, 직원 - 부서
- 행위 관계 : 특정한 행위를 함으로써 연관성이 생기는 관계 ex) 회원 - 주문, 학생 - 출석부
관계 표기
- 관계명 (Membership) : 관계의 이름
- 관계 차수 (Cardinality) : 관계에 참여하는 개체 수
- 관계 선택 사양 (Optionality) : 필수 참여 or 선택 참여
| 05 | 식별자
속성 중 각각의 인스턴스를 구분하게 만들어주는 대표 속성
주식별자
기본키 pk에 해당하는 속성. 하나의 속성일 수도 여러 개의 속성일 수도 있다.
- 유일성 : 각 인스턴스에 유니크함을 부여하여 식별이 가능하도록 만든다.
- 최소성 : 유일성을 보장하는 최소 개수의 속성이어야 한다.
- 불변성 : 되도록이면 변하지 않아야한다.
- 존재성 : 속성 값이 NULL일 수 없다.
분류
1. 대표성 여부
- 주식별자 : 유일성, 최소성, 불변성, 존재성을 가진 대표 식별자
- 보조식별자 : 인스턴스를 식별할 수는 있지만 대표 식별자가 아님
2. 스스로 생성되었는지 여부
- 내부식별자 : 엔티티 내부에서 스스로 생성된 식별자
- 외부식별자 : 다른 엔티티에서 온 식별자
3. 단일 속성의 여부
- 단일식별자 : 하나의 속성으로 구성된 식별자
- 복합식별자 : 두 개 이상의 속성으로 구성된 식별자
4. 대체 여부
- 원조식별자 : 업무 프로세스에 존재하는 식별자
- 대리식별자 : 주식별자의 속성이 두 개 이상인 경우 그 속성들을 하나로 묶어서 사용하는 식별자
식별자 관계
- 식별자 관계 : 부모의 엔티티 식별자가 자식의 엔티티의 주식별자가 되는 관계
- 비식별자 관계 : 부모의 엔티티 식별자가 자식의 엔티티의 주식별자가 아닌 일반 속성이 되는 관계
* 부모 엔티티와 자식 엔티티는 1:1 또는 1: N 관계가 형성된다.

'CS > DATABASE' 카테고리의 다른 글
[SQLD] 003. SQL 기본 1 - 함수, SELECT, WHERE, GROUP BY, ORDER BY (1) | 2024.11.08 |
---|---|
[SQLD] 002. 데이터 모델과 SQL (2) | 2024.11.07 |
010. ERD-to-Realation __ E-R 다이어그램보고 테이블 만들기 (0) | 2024.10.05 |
008. 관계대수와 관계해석 Relational Algebra & Relational Calculus (2) | 2024.10.03 |
007. 관계형 데이터 모델 & 관계형 데이터베이스 제약조건 (1) | 2024.10.02 |