티스토리 뷰
데이터 모델링과 데이터 모델의 개념
데이터 모델링 : 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정
추상화 : 저장하여 관리할 만한 가치가 있는 중요 데이터만 찾아내는 작업
개념적 모델링 : 현실 세계에서 중요 데이터를 추출하여 개념 세계로 옮기는 작업
논리적 모델링 : 개념 세계의 데이터를 데이터베이스에 저장할 구조를 결정하고 이 구조로 표현하는 작업
데이터 모델 : 데이터 모델링의 결과물을 표현하는 도구로, 개념적 데이터 모델과 논리적 데이터 모델이 있다.
개념적 데이터 모델 : 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구
논리적 데이터 모델 : 개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구
데이터 모델 : 데이터 구조, 연산, 제약조건으로 구성
데이터 모델링과 모델의 개념을 아파트 짓는 일을 통해 이해해보자.
먼저 설계도를 그리고, 설계도를 토대로 건설하기 전에 모델하우스를 지어보고 요구 사항이 제대로 반영되어
있는지를 확인해야 한다. 여기서 사람들의 요구사항을 반영하는 설계도를 그리는 과정이 개념적 데이터 모델링이고, 설계도를 그릴 때 사용하는 방법이나 도구가 개념적 데이터 모델이다. 설계도를 토대로 모델하우스를 만드는 과정은 논리적 데이터 모델링으로, 모델하우스를 만들 때 사용하는 방법이나 도구를 논리적 데이터 모델로 생각할 수 있다.
개체-관계 모델
개체-관계 모델은 개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현하는 방법이다. 현실 세계를 개체-관계 모델을 이용해 개념적으로 모델링하여 그림으로 표현한 것을 개체-관계 다이어그램 또는 E-R 다이어그램이라 한다.
개체
개체는 현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것을 의미한다. 즉, 개체는 저장할 만한 가치가 있는 중요 데이터를 가지고 있는 사람이나 사물 등이며, 개념적 모델링을 하는데 가장 중요한 요소다. 개체는 다른 개체와 구별되는 이름을 가지고 있고, 각 개체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 가지고 있다. 개체를 고유의 이름과 속성들로 정의한 것을 개체 타입이라 한다.
개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체를 개체 인스턴스 또는 개체 어커런스라 한다.
개체 집합 : 특정 개체 타입에 대한 개체 인스턴스들을 모아놓은 것
E-R 다이어그램에서는 개체를 사각형으로 표현하고 사각형 안에 개체의 이름을 표기한다.
속성
속성은 개체가 가지고 있는 고유의 특성이다. 속성은 일반적으로 의미 있는 데이터의 가장 작은 논리적 단위로 인식된다. E-R 다이어그램에서 속성은 타원으로 표현하고, 타원 안에 속성의 이름을 표기한다.
단일 값 속성과 다중 값 속성
특정 개체를 구성하는 속성의 값이 하나면 단일 값 속성
ex) 고객 객체를 구성하는 이름, 적립금 속성은 한 명의 고객 인스턴스에 대해 하나의 값만 가지므로 단일 값 속성
속성이 여러 개 가질 수 있으면 다중 값 속성
ex) 고객 개체를 구성하는 연락처 속성은 한 명의 고객 인스턴스에 대해 집 전화번호와 휴대폰 번호 등 값을 여러 개 가질 수 있으므로 다중 값 속성이다.
다중값 속성은 E-R 다이어그램에서 이중 타원으로 표현한다.
단순 속성과 복합 속성
단순 속성은 의미를 더는 분해할 수 없는 속성이다.
복합 속성은 의미를 분해할 수 있어 값이 여러 개의 의미를 포함한다.
유도 속성
값이 별도로 저장되는 것이 아니라 기존의 다른 속성 값에서 유도되어 결정되는 속성을 유도 속성으로 분류한다. 유도 속성은 E-R 다이어그램에서 점선 타원으로 표현한다.
널 속성
널 값은 아직 결정되지 않았거나 모르는 값을 의미한다.널 값은 공백이나 0과는 다르다.
키 속성
키 속성은 개체 집합에 존재하는 각 개체 인스턴스들을 식별하는 데 사용한다. 고객 개체의 고객아이디 속성은 고객마다 다르기 때문에 고객아이디가 고객 객체의 키 속성이 될 수 있다.
어떤 경우에는 키를 둘 이상의 속성들로 구성하기도 한다.
개체 타입을 정의할 때 중요한 제약조건은 키 속성의 값이 개체 인스턴스마다 달라서 이 값으로 개체 인스턴스를 식별할 수 있어야 한다는 것이다. 만약 키 속성으로 적합한 속성이 여러개면 이 중 하나를 키로 사용하면 된다.
키 속성은 E-R 다이어그램에서 밑줄을 그어 표현한다.
관계
관계는 개체와 개체가 맺고 있는 의미 있는 연관성으로, 개체-관계 모델의 중요한 요소다. 관계는 개체 집합들 사이의 대응 관계, 즉 매핑을 의미한다.
관계는 E-R 다이어그램에서 마름모로 표현한다.
관계의 유형
매핑 카디널리티 : 관계를 맺는 두 개체 집합에서, 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수를 의미한다.
관계는 매핑 카디널리티를 기준으로 분류할 수 있다.
º 일대일 1:1 관계
ex) 대한민국 혼인 관계
º 일대다 1:n 관계
ex) 회사 부서와 사원 관계
º 다대다 n:m관계
ex) 고객과 책의 관계
관계의 참여 특성
개체 A와 B 사이의 관계에서, 개체 A의 모든 개체 인스턴스가 관계에 반드시 참여해야 된다면 개체 A가 관계에 '필수적 참여한다' 또는 '전체 참여한다'라고 한다. 그리고 일부만 참여해도 되면 개체 A가 관계에 '선택적 참여한다' 또는 '부분 참여한다'라고 한다.
필수적 참여 관계는 E-R 다이어그램에서 이중선으로 표현한다.
관계의 종속성
두 개체가 관계에 대해 종속적인 특성을 가지는 경우도 있다. 개체 B가 독자적으로는 존재할 수 없고 다른 개체 A의 존재 여부에 의존적이라면, 개체 B가 개체 A에 종속되어 있다고 한다. 개체 A가 삭제된다면 개체 B도 삭제된다. 이러한 종속을 특별히 존재 종속이라 한다. 이때 다른 개체의 존재 여부에 의존적인 개체 B를 약한 개체(종속 개체)라 하고 다른 개체의 존재 여부를 결정하는 개체 A를 강한 개체(오너 개체)라 한다.
강한 개체와 약한 개체는 일반적으로 일대다의 관계이며, 약한 개체는 강한 개체와의 관계에 필수적으로 참여한다는 특징이 있다. 약한 개체는 자신이 지닌 속성만으로는 식별이 어려워 일반적으로 강한 개체의 키를 포함하여 키를 구성한다.
E-R 다이어그램
E-R 다이어그램은 개체-관계 모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것이다.
논리적 데이터 모델
논리적 데이터 모델의 개념과 특성
개체-관계 모델은 어떤 DBSM로 데이터베이스를 구축하든 상관이 없다. 하지만 E-R 다이어그램으로 표현된 개념적인 구
조를 데이터베이스에 표현하는 형태를 결정하는 논리적 데이터 모델링에서는 DBSM 종류가 중요하다.
논리적 데이터 모델은 논리적 데이터 모델링의 결과물이고, 사용자가 생각하는 데이터베이스의 모습 또는 구조다. 그리고 논리적 데이터 모델로 표현된 데이터베이스의 논리적 구조가 바로 데이터베이스 스키마다. 논리적 구조는 사용하는 DBSM에 따라 달라진다.
데이터베이스에 있는 데이터들 간의 관계를 표현하는 방법에 따라 다양한 논리적 데이터 모델이 존재한다. 일반적으로 많이 사용되는 논리적 데이터 모델은 관계 데이터 모델로, 데이터베이스의 논리적 구조가 2차원 테이블 형태다.
계층 데이터 모델
계층 데이터 모델(hierachical data model)은 데이터베이스의 논리적 구조가 트리 형태다.개체는 사각형으로 나타내고 개체들 간의 관계는 링크로 나타내는데, 링크는 일대다 관계만 표현할 수 있다. 그리고 계층 데이터 모델은 두 개체 사이에 관계를 하나만 정의할 수 있어 관계에 이름을 붙여 구별할 필요가 없다.
계층 데이터 모델은 트리 구조로 표현되기 때문에 출판사 개체처럼 루트 역할을 하는 개체가 존재하고 사이클이 존재하지 않는다. 그리고 일대다 관계를 맺는 개체들 사이에는 상하 관계가 성립한다. 트리 구조의 특성상 부모 개체 하나가 자식 객체를 여러 개 가질 수 있지만, 모든 자식 개체는 부모 개체를 하나만 가질 수 있다.
계층 데이터 모델은 개체 사이의 관계를 정의할 때 여러 제약이 존재하기 때문에 개념적 구조를 논리적 구조로 자연스럽게 모델링하기 어려워 구조가 복잡해질 수 있다. 그리고 데이터의 삽입 삭제 수정 등의 연산이나, 원하는 데이터를 검색하기가 쉽지 않다는 단점이 있다.
네트워크 데이터 모델
네트워크 데이터 모델은 데이터베이스의 논리적 구조가 그래프 또는 네트워크 형태다. 개체는 사각형으로 나타내고 개체들 간의 관계는 화살표로 나타내는데, 화살표는 일대다 관계만 표현할 수 있다. 그래서 네트워크 데이터 모델은 계층 데이터 모델과 달리 두 개체 간의 관계를 여러 개 정의할 수 있어 관계를 이름으로 구별한다.
네트워크 데이터 모델은 같은 개체들 사이의 관계를 두 개 이상 표현할 수 있어 계층 데이터 모델보다 개념적 구조를 논리적 구조로 좀 더 자연스럽게 모델링할 수 있다. 그러나 계층 데이터 모델보다 구조가 훨씬 복잡해질 수 있어, 데이터의 삽입 삭제 수정 같은 연산과 데이터 검색이 계층 데이터 모델보다 더 어려워지는 문제가 발생한다.
'책 > 데이터베이스개론' 카테고리의 다른 글
6. 관계 데이터 연산 (0) | 2020.12.04 |
---|---|
5. 관계 데이터 모델 (0) | 2020.12.04 |
3. 데이터베이스 시스템 (0) | 2020.12.02 |
2. 데이터베이스 관리 시스템 (0) | 2020.12.02 |
1. 데이터베이스 기본 개념 (0) | 2020.12.02 |