데이터 모델링
- 개념적 구조를 정하는 것 => 논리적 모델링
- 데이터베이스 구축에 필요한 걸 정하는 것 => 물리적 모델링
이렇게 크게 두가지로 나뉘어지며 이번 블로그 글에서는 개념에 대해서 정리하고 공부해보고자 한다.
데이터 모델링이란?
- 구조나 형태가 없는 데이터들을 사람들이 한눈에 이해하기 쉽게 정리 (데이터 모델을 만드는 것) 하는 것을 의미한다.
데이터 모델링의 목적은?
- 저장하고자 하는 데이터에서 Entity, Attribute, Relationship, Constraint를 파악하고 데이터베이스를 구축할 때 기반이 될 모델을 만드는것
용어 정리
- Entity (개체) : 저장하고자 하는 데이터의 주체 (대상)을 의미한다. (데이터베이스의 로우에 해당)
- Entity Type : 일반화한 Entity의 종류 (데이터베이스의 테이블에 해당)
- Attribute (속성) : Entity에 대해서 저장하려는 내용 (데이터베이스의 테이블의 Column에 해당)
- Relationship (관계) : Entity들 사이의 연결점
- Contraint (제약사항) : 각 Entity나 Relationship에 대해서 지켜야하는 규칙
Relational Model이란?
- Relation은 데이터베이스에서 하나의 테이블을 의미함, 즉 테이블로 정리한 모델 이라는 뜻
- 데이터 베이스에서 Foreign Key(외래키)를 통해 만들어지는 것들을 우리는 Relationship (관계)이라고 표현
- child table에서 외래키를 살펴보면 parent table과의 관계를 짐작할 수 있음
Entity - Relationship Model (ERM) 이란?
- Entity와 Relationship을 중심으로 만드는 모델
* 개체간의 관계들을 파악하는 것이 중요하다!
데이터 모델의 종류
- 개념모델 (Conceptual Model)
- attribute의 내용은 구체화 하지 않고 큼직한 Entity와의 연결만을, 대략적인 구조를 보고자 할때 사용함
- 논리 모델 (Logical Model)
- attribute와 내부의 PK (primary key) 와 FK (Foreign Key)를 표시한다.
- 각 Entity의 Relationship또한 표현한다.
- 물리 모델 (Physical Model)
- 가장 구체적인 모델로 데이터베이스를 구축 할 수 있을 정도로 자세한 모델이며 각 attribute에서 사용되는 데이터 타입, 변수들의 이름, 인덱스 추가 등의 정보들을 다 알려주어야 함
[위 사진 출처 : www.couchbase.com/blog/conceptual-physical-logical-data-models/]
좋은 데이터 베이스는 좋은 데이터 모델링에서 나온다.