eunzae's develog
[데이터 모델링]개념 데이터 모델링(Conceptual Data Modeling) 본문
DB 시스템의 특성
- 최초 적재(Loading) → 이벤트 발생에 따른 잦은 변경(Interaction)
- 대용량의 데이터를 다룸
· 사용자가 원하는 순간 데이터에 접근하기 위해서는 대용량의 데이터가 체계적으로 조직화되어 있어야 한다.
데이터베이스 시스템
- Database: 데이터 및 데이터 간 관계의 집합
- DBMS(Database Management System): 사용자가 Database에 접근할 수 있도록 지원해주는 프로그램의 집합
스키마 vs. 인스턴스
- 데이터베이스 스키마(Schema)
· 데이터베이스 구조(테이블명, 컬럼명), 데이터 타입, 그리고 제약조건에 대한 명세
· 데이터베이스 설계단계에서 명시되며, 자주 변경되지 않음
- 데이터베이스 인스턴스(Instance)
· 특정 시점 데이터베이스에 실제로 저장되어 있는 데이터
· Database Instance = Occurence = Snapshot
데이터모델링(Data Modeling)
- 데이터모델링: 데이터베이스 스키마를 설계
SQL(Structured Query Language)
- 데이터정의어(DDL: Data Definition Language)
· 스키마를 기술하기 위해 사용되며, 주요 DB 설계자가 사용
- 데이터조작어(DML: Data Manipulation Language)
· 인스턴스를 조작하기 위해 사용
· 데이터의 조회(Retrieval), 삽입(Insertion), 삭제(Deletion), 갱신(Update)에 사용
- DCL: Data Control Language
· 데이터베이스 사용자 권한을 관리하기 위해 사용
- TCL: Data Control Language
· 트랜잭션을 관리하기 위해 사용
Overview of Database Design Process
※ 실무와 이론의 구분이 약간 다름
ER Model Concepts
- 개체(Entity)
· 실세계에 존재하는 의미있는 하나의 정보 단위
· 물리적 객체(학생, 자동차, 강의실···) 뿐 아니라 개념적 객체(프로젝트, 직업, 교과목···)도 포함
- 관계(Relationship)
· 개체들 사이의 연관성
ex) [학생]과 [교과목] 사이의 [수강] 관계
- 속성(Attribute)
· 개체 또는 관계의 본질적 성질
Types of Attributes
- Single-valued Attributes vs. Multivalued Attributes [값 개수로 구분]
· 나이 vs 취미
- Simple Attributes vs.Composite Attributes [분해 가능 여부로 구분]
· Simple Attributes: 더 이상 쪼개지지 않는 원자값을 갖는 속성(나이, 학번···)
· Composite Attributes: 몇 개의 요소로 분해될 수 있는 속성(주소→시, 군, 구, 번지···)
- Stored Attributes vs. Derived Attribute [유도 가능 여부에 따라 구분]
· Derived Attributes: 저장된 다른 데이터로부터 유도 가능한 속성(각 과목의 성적→총점, 주민등록번호→나이)
Entity Types and Key Attributes
- 키 속성(Key Attributes)
· 어떤 개체에 대해서 항상 유일한 값을 갖는 속성 또는 속성들의 집합(학생의 학번, 책의 ISBN, 자동차의 차량번호···)
· 특정 Snapshot이 아닌, 해당 개체의 모든 가능한 Snapshot의 집합을 고려하여 파악되어야 함
· 복합키(Composite Key): Composite Attribute가 키 속성이 되는 경우, 복합키는 최소성을 가져야 함
· 각 개체는 하나 이상의 키를 가질 수 있음
· 어떤 개체는 키를 갖지 않을 수도 있음 → 약성 개체(Weak Entity)
Relationships
- 관계(Relationship) 설정
· 한 개체의 속성이 다른 개체를 참조할 때 관계가 형성됨
- 관계의 차수(Degree)
· 관계에 참여하는 개체의 수(Binary, Ternary, Unary, ···N-ary)
· 실무에서는 중요하지 않음(실무에서의 '차수'는 하단에 기술한 '관계의 대응수'를 의미함)
- 관계의 대응수(Cardinality)
· 해당 개체가 해당 관계에서 참여할 수 있는 인스턴스의 최대의 수(1:1, 1:N or N:1, M:N)
· 대응수에 따른 관계의 분류
· 일대다(1:N) 관계
· 일대일(1:1) 관계
· 다대다(M:N) 관계 → Relationship도 테이블 생성
Practical Approach for ER Modeling
1. 주요 개체 도출
2. 개체 간 관계 도출
① 관계 도출
② 대응수 도출
3. 개체 및 관계의 속성 도출
① 키 속성 도출
· 약성 개체 확인(웬만하면 만들지 않기)
② 일반 속성 도출
Notation for ER Diagrams
참고: https://www.youtube.com/watch?v=K4jiTvSIfB4&list=PLg_wJlcMiuKtlmoC2Pn8H2LY84NzVKUXg&index=1
'Database > Data Architecture' 카테고리의 다른 글
[정보계]OLTP vs OLAP (1) | 2023.03.14 |
---|---|
[데이터 모델링] 논리적 데이터 모델링(Logical Data Modeling) (0) | 2022.12.26 |
[DA] 코드, ID, 번호 도메인의 차이점 (0) | 2022.08.09 |
[Datastage]컬럼명 변경 절차 (0) | 2022.05.07 |
[DA]정규화 (0) | 2022.04.24 |