728x90
데이터 모델
- 데이터베이스의 구조를 기술하는데 사용되는 개념들의 집합인 구조(데이터 타입과 관계), 이 구조 위에서 동작하는 연산자들, 무결성 제약조건들
- 사용자에게 내부 저장 방식의 세세한 사항은 숨기면서 데이터에 대한 직관적인 뷰를 제공하는 동시에 이들 간의 사상(mapping)을 제공
*실세계의 일부를 추상적인 표현 정보로 나타냄
데이터 모델의 분류
고수준 또는 개념적 데이터 모델(conceptual data model)
- 사람이 인식하는 것과 유사하게 데이터베이스의 전체적인 논리적 구조를 명시
- 예: 엔티티-관계(ER: Entity-Relationship) 데이터 모델과 객체 지향 데이터 모델
표현(구현) 데이터 모델(representation(implementation) data model)
- 최종 사용자가 이해하는 개념이면서 컴퓨터 내에서 데이터가 조직되는 방식과 멀리 떨어져 있지는 않음
- 예: 계층 데이터 모델(hierarchical data model), 네트워크 데이터 모델(network data model), 관계 데이터 모델(relational data model)
저수준 또는 물리적인 데이터 모델(physical data model)
- 데이터베이스에 데이터가 어떻게 저장되는가를 기술
- 예: Unifying, ISAM, VSAM 등
계층 DBMS
- 1960년대 후반에 최초의 계층 DBMS가 등장(예: IBM사의 IMS)
- 트리 구조를 기반으로 하는 계층 데이터 모델을 사용한 DBMS
- 계층 데이터 모델은 네트워크 데이터 모델(그래프)의 특별한 사례
장점
- 어떤 유형의 응용에 대해서는 빠른 속도와 높은 효율성을 제공(이러한 경우가 많지 않음)
단점
- 어떻게 데이터를 접근하는가를 미리 응용 프로그램에 정의해야 함
- 데이터베이스가 생성될 때 각각의 관계를 명시적으로 정의해야 함
- 레코드들이 링크로 연결되어 있으므로 레코드 구조를 변경하기 어려움
네트워크 DBMS
- 1960년대 초에 Charles Bachman이 하니웰(Honeywell) 사에서 최초의 네트워크 DBMS인 IDS를 개발
- 레코드들이 노드로, 레코드들 사이의 관계가 간선으로 표현되는 그래프를 기반으로 하는 네트워크 데이터 모델을 사용
- 네트워크 DBMS에서도 레코드들이 링크로 연결되어 있으므로 레코드 구조를 변경하기 어려움
관계 DBMS
- 1970년에 E.F. Codd가 IBM 연구소에서 관계 데이터 모델을 제안
- 미국 IBM 연구소에서 진행된 System R과 캘리포니아 버클리대에서 진행된 Ingres(관계 DBMS) 프로젝트
장점
- 모델이 간단하여 이해하기 쉬움
- 사용자는 자신이 원하는 것(what)만 명시하고, 데이터가 어디에 있는지, 어떻게 접근해야 하는지는 DBMS가 결정
예: 오라클, MS SQL Server, Sybase, DB2, Informix 등
객체 지향 DBMS
- 1980년대 후반 들어 새로운 데이터 모델인 객체 지향 데이터 모델이 등장
- 객체 지향 프로그래밍 패러다임을 기반으로 하는 데이터 모델
장점
- 데이터와 프로그램을 그룹화하고, 복잡한 객체들을 이해하기 쉬우며, 유지와 변경이 용이함
예: ONTOS, OpenODB, GemStone, ObjectStore, Versant, O2 등
객체 관계 DBMS
- 1990년대 후반에 관계 DBMS에 객체 지향 개념을 통합한 객체 관계 데이터 모델이 제안됨
예: 오라클, Informix Universal Server 등
새로운 데이터베이스 응용
- CAD 데이터베이스, 소프트웨어 공학 데이터베이스(재사용이 가능한 소프트웨어들의 라이브러리), 게놈 데이터베이스, 데이터 웨어하우스, 데이터 마이닝, OLAP, 멀티미디어 데이터베이스, 웹 데이터베이스 등
*요즘엔 UML데이터 모델도 사용함
관계 데이터 모델과 네트워크 데이터 모델과 차이점
데이터 구조 : 데이터 타입과 관계
관계
관계 표현에 있어서 계층형, 네트워크형에서는 링크(edge), 포인터로 표현했습니다.
- 직접적으로 표현(내제되어있어 변경이 쉽지 않음)
관계형에서는 어떻게? 외래키(앞에서보다 flexibilty(유연성)가 늘어남)
관계를 나타내기 위한 열을 추가함(Key 값)
각각의 관계를 표로 표현(행과 열)
728x90
'👨💻Computer Science > 데이터베이스' 카테고리의 다른 글
[Database] 01 - 6 ANSI/SPARC 아키텍처와 데이터 독립성 (0) | 2021.09.09 |
---|---|
[Database] 01 - 5 DBMS 사용자 (0) | 2021.09.09 |
[Database] 01 - 4 DBMS 언어 (0) | 2021.09.07 |
[Database] 01 - 2 화일 시스템 vs. DBMS (0) | 2021.09.07 |
[Database] 01 - 1 데이터베이스 시스템 (0) | 2021.09.03 |
댓글