데이터 모델링 (Data Modeling)
데이터 모델링은 정보 시스템에서 사용할 데이터를 구조화하고, 정의하며, 조직화하는 과정을 말한다. 즉 현실 세계의 정보를 체계적으로 정리하여 데이터베이스로 설계하기 위한 핵심 작업이다.
데이터 모델링은 크게 세 단계로 나뉜다. 첫 번째는 현실 세계의 데이터를 분석하여 개념적인 구조로 표현하는 개념적 데이터 모델링(Conceptual Modeling)이다. 두 번째는 개념 모델을 기반으로, 데이터베이스에 적합한 형태로 구조화하는, 즉 정규화, 키설정 등을 해주는 논리적 데이터 모델링(Logical Modeling)이며, 세 번째는 논리 모델을 실제 사용하는 데이터베이스 시스템의 특성과 성능 요건에 맞게 최적화하는 물리적 데이터 모델링(Physical Modeling)이다.
데이터 모델은 데이터 모델링의 결과물을 의미하며, 현실 세계의 데이터를 구조화하여 체계적으로 표현한 것이다. 데이터베이스를 설계하거나 이해하는 데 활용되며, 보통 개념 모델, 논리 모델, 물리 모델로 나뉜다.
개념 모델(conceptual model)은 개념적 데이터 모델링의 결과로, 정리되지 않았던 현실 세계의 데이터를 사람이 이해할 수 있도록 추상화하고 구조화한 것이다. 대표적인 예로는 개체-관계 모델(ER 모델)이 있으며, 개체, 속성, 관계 등의 요소로 현실을 표현한다.
논리 모델(logical model)은 논리적 데이터 모델링을 통해 만들어진 결과물로, 개념 모델을 기반으로 데이터베이스에서 사용할 수 있는 논리적 구조로 표현된다. 대표적으로 관계형 데이터베이스에서 사용하는 관계 데이터 모델(relational model)이 이에 해당한다.
데이터 모델은 일반적으로 데이터의 구조(data structure), 연산(operation), 제약조건(constraint)이라는 세 가지 요소로 구성된다. 데이터 구조는 데이터를 구성하는 기본 단위와 이들 간의 관계를 정의하고, 연산은 데이터를 검색하거나 수정할 수 있는 동작을 의미하며, 제약조건은 데이터의 정확성과 일관성을 유지하기 위한 규칙을 포함한다.
개체-관계 모델 (E-R Model, Entity-Relationship Model)
개체와 개체 간의 관계를 이용하여 현실 세계를 개념적 구조로 표현하는 모델이다. 핵심은 개체, 개체를 나타내는 속성, 개체간 관계이다. 주로 개체-관계 다이어그램(E-R diagram)을 그려서 나타낸다.
개체-관계 다이어그램은 아래와 같이 그려진다.
개체(entity)는 현실 세계에서 독립적으로 존재하며 정보로 관리할 가치가 있는 대상을 말한다. 다른 개체와 구별되는 이름을 가지며, 각 개체만의 고유한 특성이나 상태인 속성을 하나 이상 가진다. 예를 들어 학생이라는 개체는 학번, 이름 등을 가진다. 강한 개체(strong entity)와 약한 개체(weak entity)로 나누는데 강한 개체는 자체적으로 존재 가능한 개체를 말하고, 약한 개체는 다른 개체에 의존해야만 존재 가능한 개체이다. 예를 들어 직원의 부양가족은 직원이 있어야 존재 가능하기에 약한 개체이고, 직원은 자체적으로 존재 가능하기에 강한 개체이다. 따라서 약한 개체는 종속적이다.
개체 타입(entity type)은 개체를 고유의 이름과 속성드로 정의한 것이고, 개체 인스턴스(entity instance)는 개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체이다. 개체 어커런스(entity occurrence)라고도 한다. 개체 집합(entity set)은 특정 개체 타입에 대한 개체 인스턴스들을 모아놓은 것이다.
속성(arribute)은 개체나 관계가 가지고 있는 고유의 특성으로 의미 있는 데이터의 가장 작은 논리적 단위이다. 단순 속성(simple attribute)은 더 이상 나눌 수 없는 속성이고, 만약 나눌 수 있다면 복합 속성(composite attribute)라 한다. 예를 들어 주소는 시, 도 등으로 나눌 수 있는 복합 속성이다. 유도 속성(derived attribute)은 다른 속성으로 계산된 속성이다. 예를 들어 생년월일과 현재 시간으로 나이를 계산한다면 나이는 유도 속성이다. 값이 별도로 저장되지 않는다. 다중값 속성(multi-valued attribute)은 하나의 개체가 여러 값을 가질 수 있는 속성이다. 예를 들어 책 개체의 저자 속성은 다중값 속성일 수 있다. 반대로 단일값 속성(single-valued attribute)은 하나의 개체가 하나의 값만을 가질 수 있다. 단 다중값 속성과 복합 속성은 사용시 모델이 복잡해진다는 단점이 있으니 유의해야 한다. 널 속성(null attribute)은 널 값이 허용되는 속성을 말한다. 널(null)은 아직 결정되지 않았거나 모르는 값으로 공백이나 $0$과는 다르다. 키 속성(key attribute)은 각 개체 인스턴스를 식별하는데 사용하는 속성으로 모든 개체 인스턴스의 키 속성값이 달라야 한다. 단 키 속성은 하나의 개체에 여러개일 수 있고, 둘 이상의 속성들로 구성되기도 한다. 예를 들어 이름이 같은 사람은 있어도 이름과 주소가 같은 사람은 없다면, 이를 키속성으로 활용 가능하다.
관계(relationship)는 개체와 개체 간의 연관성을 표현하는 요소이다. 즉 개체 집합들 사이의 매핑(mapping)을 의미한다. 관계는 참여하는 개체 타입의 수(degree)를 기준으로 이항 관계(binary relationship), 삼항 관계(ternary relationship), 순환 관계(recursive relationship) 등으로 나눌 수 있다. 개체가 자기 자신과 관계 맺는 것이 순환 관계이고, 두 개체가 관계를 맺으면 이항 관계, 세 개체가 관계를 맺으면 삼항 관계이다. 관계 대응 수(cardinality)는 두 개체 타입의 관계에 실제로 참여하는 개별 개체 수로 일대일, 일대다, 다대일, 다대다가 있을 수 있다. 매핑 카디널리티(mapping carinality)는 관계를 맺는 두 개체 집합에서 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수이다. 예를 들어 부서는 여러 직원을 고용할 수 있는데, 이 경우 일대다 이항 관계이다. 관계 참여 특성에 따라서 필수 참여(mandatory participation)와 선택 참여(optional participation)로도 나눌 수 있다. 필수 참여는 전체 참여(total participation)라고도 하는데, 모든 개체 인스턴스가 관계에 반드시 참여해야 되는 것을 의미한다. 예를 들어 직원은 반드시 부서에 소속되어야 한다. 따라서 직원은 부서와의 관계에 필수참여이다. 선택 참여는 부분 참여(partial participation)라고도 하는데 개체 인스턴스 중 일부만 관계에 참여해도 되는 것을 의미한다.
개체, 속성, 관계를 E-R 다이어그램으로 그릴 때는 아래와 같이 그린다.
IE 표기법 (IE Notation)
계층 모델 (Hierarchical Model)
데이터베이스의 논리적 구조가 트리(tree) 형태로 부모/자식 관계가 있고, 부모 자식 관계는 일대다 관계만 허용된다. 트리이기에 루트 역할을 하느 개체가 존재하며 사이클은 없다. 두 개체 사이 하나의 관계만 정의할 수 있고, 다대다 관계를 직접 표현할 수 없기에 개념적 모델링이 어렵고 구조가 복잡해질 수 있다는 단점이 있다. 이때문에 데이터의 삽입, 삭제, 수정, 검색이 쉽지 않다.
네트워크 모델 (Network Model)
계층 모델을 개선하여 트리가 아닌 그래프(graph) 형태이다. 개체간 일대다 관계만 허용되지만, 여러 관계를 정의할 수 있기 때문에 다대다 형태도 간접적으로 구현할 수 있다. 그러나 역시 구조가 복잡하고 데이터 삽입, 삭제, 수정, 검색이 쉽지 않다.
'Computer Science and Engineering > Database' 카테고리의 다른 글
[DB] 관계 데이터 연산(relational data operator) (0) | 2025.04.03 |
---|---|
[DB] 관계 데이터 모델(relation data model) (0) | 2025.04.01 |
[DB] 데이터 정의어(DDL),데이터 조작어(DML), 데이터 제어어(DCL) (0) | 2025.03.19 |
[DB] 데이터베이스 구조 및 구성 (0) | 2025.03.19 |
[DB] 데이터베이스 관리 시스템(DBMS, database management system) (0) | 2025.03.12 |