엔티티-관계(ER:Entity-Relationship) 데이터 모델
과 객체 지향 데이터 모델
계층 데이터 모델(hierachical data model)
, 네트워크 데이터 모델(network data model)
, 관계 데이터 모델(relational data model)
Unifying
, ISAM
, VSAM
- 1960년대 후반에 최초의 계층 DBMS가 등장 (예: IBM 사의 IMS)
트리 구조
를 기반으로 하는 계층 데이터 모델을 사용한 DBMS- 계층 데이터 모델은 네트워크 데이터 모델의 특별한 사례
one-to-many
관계는 잘 처리하나many-to-many
관계는 그렇지 못 함.
Advantages
- 어떤 유형의 응용에 대해서는
빠른 속도
와높은 효율성
을 제공
Disadvantages
- 어떻게 데이터를 접근하는가를
미리 응용 프로그램에 정의
해야 함.- DB가 생성될 때 각각의
관계
를 명시적으로 정의해야 함.- 레코드들이 링크로 연결되어 있으므로
레코드 구조를 변경하기 어려움.
- 1960년대 초에 Charles Bachman이 하니웰(Honeywell) 사에서 최초의 네트워크 DBMS인 IDS를 개발
- 레코드들이
노드
, 레코드들 사이의 관계가간선
으로 표현되는그래프를 기반
으로 하는 네트워크 데이터 모델 사용.- 네트워크 DBMS에서도 레코드들이 링크로 연결되어 있으므로
레코드 구조 변경하기 어려움.
- 1970년에 E.F. Codd가 IBM 연구소에서 관계 데이터 모델을 제안
- 미국 IBM 연구소에서 진행된 System R과 캘리포니아 버클리대에서 진행된 Ingres 프로젝트
- 예 :
오라클
,MS SQL Server
,Sybase
,DB2
,Informix
등
Advantages
- 모델이 간단하여 이해하기 쉬움
- 사용자는 자신이 원하는 것(what)만 명시하고, 데이터가 어디에 있는지, 어떻게 접근해야 하는지는 DBMS가 결정
- 1980년대 후반 들어 새로운 데이터 모델인 객체 지향 데이터 모델이 등장
- 객체 지향 프로그래밍 패러다임을 기반으로 하는 데이터 모델
- 예 :
ONTOS
,OpenODB
,GemStone
,ObjectStore
,Versant
,O2
등
Advantages
- 데이터와 프로그램을
그룹화
하고,복잡한 객체들을 이해하기 쉬우며
,유지와 변경이 용이
함.
- 1990년대 후반에 관계 DBMS에 객체 지향 개념을 통합한 객체 관계 데이터 모델이 제안됨.
- 예 :
오라클
,Informix Universal Server
등
데이터 정의어의 기본적인 기능
- 데이터 모델에서 지원하는 데이터 구조를 생성
예 : SQL에서CREATE TABLE
- 데이터 구조의 변경
예 : SQL에서ALTER TABLE
- 데이터 구조의 삭제
예 : SQL에서DROP TABLE
- 데이터 접근을 위해 특정 애트리뷰트 위에 인덱스를 정의
예 : SQL에서CREATE INDEX
검색
하고 수정
하고 삽입
하고 삭제
SUM
, COUNT
, AVG
와 같은 내장 함수들을 갖고 있음.데이터 조작어의 기본적인 기능
- 데이터의 검색
예 : SQL에서SELECT
- 데이터의 수정
예 : SQL에서UPDATE
- 데이터의 삭제
예 : SQL에서DELETE
- 데이터의 삽입
예 : SQL에서INSERT
데이터 베이스 관리자의 역할
- 데이터베이스 스키마의
생성
과변경
무결성 제약조건
을 명시사용자의 권한
을허용
하거나취소
하고, 사용자의 역할을 관리저장 구조
와접근 방법(물리적 스키마)
정의백업
과회복
표준화 시행
기작성 트랜잭션 (canned transaction)
이라고 부름.캐주얼 사용자
와 기작성 트랜잭션을 주로 반복해서 수행하는 초보 사용자
로 구분일관성
을 유지하기 위해서 DB 정규화
를 수행ANSI/SPARC 아키텍처
ANSI/SPARC 아키텍처
의 3단계는 물리적
, 개념적
, 외부 단계
로 이루어짐.
- 외부 단계 (external level) : 각 사용자의 뷰
- 개념 단계 (conceptual level) : 사용자 공동체의 뷰
- 내부 단계 (internal level) : 물리적 또는 저장 뷰
- 데이터 베이스의 각 사용자가 갖는 뷰
- 여러 부류의 사용자를 위해 동일한 개념 단계로부터 다수의 서로 다른 뷰가 제공 될 수 있음.
- 일반적으로, 최종 사용자와 응용 프로그래머들은 데이터베이스의 일부분에만 관심을 가짐.
- 조직체의 정보 모델로서, 물리적인 구현은 고려하지 않으면서 조직체 전체에 관한 스키마를 포함.
- 데이터베이스에 어떤 데이터가 저장되어 있으며, 데이터 간에는 어떤 관계가 존재하고, 어떤 무결성 제약조건들이 명시되어 있는가를 기술함.
- 데이터베이스에 대한 사용자 공동체의 뷰를 나타냄.
- 데이터베이스마다 오직 한 개의 개념 스키마가 존재.
- 실제의 물리적인 데이터 구조에 관한 스키마
- 데이터베이스에 어떤 데이터가 어떻게 저장되어 있는가를 기술함.
- 인덱스, 해싱 등과 같은 접근 경로, 데이터 압축 등을 기술함.
- 데이터베이스의 개념 스키마에는 영향을 미치지 않으면서 성능을 향상시키기 위해 내부 스키마를 변경하는 것이 바람직
- 내부 단계 아래는 물리적 단계
- 물리적 단계는 DBMS의 지시에 따라 운영 체제가 관리함.
상위 단계의 스키마 정의에 영향을 주지 않으면서 어떤 단계의 스키마 정의를 변경할 수 있음을 의미
- 논리적인 데이터 독립성 ( logical data independence ) : 외부단계와 개념단계 사이
- 물리적인 데이터 독립성 ( physical data independence ) : 개념단계와 내부단계 사이
서버
와 클라이언트
에 분산
됨.DB를 저장
하고 DBMS를 운영
하면서 여러 클라이언트에서 온 질의를 최적화
하고, 권한 검사를 수행
하고, 동시성 제어
와 회복기능을 수행
하고, DB의 무결성을 유지
하고, DB 접근을 관리
2층모델 ( 2-tier model )
- 클라이언트와 데이터베이스 서버가
직접 연결
됨.3층모델 ( 3-tier model )
- 클라이언트와 데이터베이스 서버 사이에
응용서버
가 추가됨.