데이터모델의 구현모델
데이터 모델의 구현 모델
관계형 모델
개요.
- 1970년 코드(E. F. Codd)가 제안
- 릴레이션이라는 일관된 데이터 구조를 기반으로 한 확고한 이론적 토대
- 상용되는 DBMS에서 가장 많이 구현되고 있는 모델.
특징.
1. 데이터베이스를 테이블, 즉 릴레이션의 집합으로 표현
2. 테이블을 사용하여 데이터 자체와 데이터 간의 관계를 표현한다.
3. 테이블로 표현할 때 행은 투플, 열은 속성(Attribute)라고 한다.
4. 릴레이션의 전체 구조는 테이블의 속성의 이름들의 집합이며,
릴레이션의 스킴(scheme)이라고 하며 데이터베이스 내의 스킴의 집합을 스키마(복수형)라고 한다.
5. 사용자는 관계형 데이터 모델로 구성된 데이터베이스에 대해 SQL이라는 표준 질의어를 사용하여 접근하고,
질의어는 내부에서 데이터베이스에 있는 자료를 검색할 수 있도록 실행코드로 변환된다.
ER모델과의 차이점
E-R 모델 | 개념적 데이터 모델의 하나로 단순하게 실세계의 정보를 개체와 관계로서만 타나내고 구체적인 데이터 구조와 구현방법은 표현하지 않는다. |
관계형 데이터 모델 | E-R모델의 개체들을 릴레이션으로 표현하고, 두 개체 사이의 관계를 개체가 포함하고 있는 데이터 속성값으로 저장함으러써 두 개체 간의 관계성(relationship)을 표현하고 있다. |
객체지향 모델
등장배경
새로운 응용시스템의 출현과 기존 모델의 한계
- 복잡한 객체의 구조, 장기 트랜잭션, 이미지나 대형 텍스트 데이터의 저장 등 새로운 데이터 타입, 비표준적 연산의 정의 등의 기능 필요
예. CAD, CAM, CIM, 지리정보시스템, 멀티미디어 등 .
특징.
캡슐화. 속성과 연산, 클래스 상속 등 객체지향 개념과 밀접한 Database System.
객체지향 언어와 밀접한 영향
|
|
객체 관계형 모델
- 기존 관계형 모델과 객체 지향형 모델의 장점을 결합한 형태로 발전.
- 기술적으로 가장 진보된 형태의 데이터베이스 시스템.
특징
관계형 시스템에 새로운 객체 저장 능력을 추가
복합객체 | 전통적 필드 데이터 관리, 시계열 데이터, 지리공간 데이터 등 |
바이너리 | 오디오, 이미지, 애플릿 등 |
객체지향DB와의 차이점
객체지향 DB | 모든 정보를 객체 형태로 저장, 객체 식별자(OID)를 사용 객체지향언어(C++, SmallTalk, Java)에 지속성을 도입하는 방식을 지원. (DB언어를 따로 두지 않고, 기존 프로그래밍 언어에 지속성 부여) |
객체관계형 DB |
정보를 레코드 형태나 객체 형태로 저장, 기본키 기반 접근을 원칙으로 없을때 유일 객체 식별자 사용 기존 SQL과 같은 질의어를 사용하는 것을 주된 데이터 접근 방법으로 사용, 부가적으로 범용 언어 지원 (복합 객체를 검색할 수 있도록 SQL을 확장하여 값 기반 접근과 참조 기반 접근을 모두 지원) |
응용분야 : 웹
네트워크 모델
데이터는 레코드의 모임으로 표현(관계형과 같음)
데이터 간의 관계는 오너(owner)와 멤버(member)의 관계를 같는 링크로 표현.(링크는 다른 레코드에 대한 포인터)
|
관계형과의 차이점
관계형 : 두 릴레이션 간의 관계를 직접적인 데이터 속성값을 사용
망형 : 두 릴레이션 간의 관계를 포인터 형태로 연결. 링크 하나로 표시되지만, 하나 이상의 개체 집합을 가질 수 있다.
- 스키마로 파악해 보면 링크 관계가 다중 관계를 형성하여 네트워크 형태를 가진다.
|
계층형 모델
데이터 상호 관계가 레코드와 링크로 표현되고(네트워크 모델과의 유사성), 레코드들이 트리 형태로 구성된다.
- 트리의 모든 노드는 레코드 타입을 나타내고 모든 가지(edge)는 두 레코드 간의 링크를 나타낸다.
- 1:n 관계의 연관된 두 레코드 타입을 부모-자식(parent-child)관계라고 한다.
- 레코드 타입은 레코드 종류를, 링크는 레코드 형태간 연결을 나타낸다.
|
|
문제점은 n:m 관계 표현을 할 수 없다.
- 1:n을 표현하는 계층 트리 두 개를 사용해서 표현한다.
|
|
데이터모델의 변화