연관토픽
- [상위] 데이터베이스(Database)
- [하위] 시스템 카탈로그(System Catalog)/데이터 사전(data dictionary)
- [하위] 관계형 데이터베이스(RDBMS, Relational DBMS)
- [하위] 객체형 데이터베이스 관리 시스템(OODBMS, Object-Oriented DBMS)
- [하위] 객체 관계형 DBMS(ORDBMS, Object-Relational DBMS)
개념
- 데이터베이스를 관리하고, 사용자의 데이터 처리 요구를 수행하는 관리 시스템
- 사용자와 데이터베이스 사이에서 사용자가 원활하게 데이터를 입/출력할 수 있게 해 주는 소프 트웨어
- 응용 프로그램과 데이터 사이의 중재자로서 모든 응용 프로그램들이 데이터베이스를 공용할 수 있게끔 관리해 주는 소프트웨어 시스템
- 조직에 필요한 데이터를 데이터베이스에 통합하고 저장하고 관리하는 소프트웨어
데이터베이스 관리시스템 주요기능
주요기능 | 설명 | 데이터 언어 |
정의기능 | 데이터베이스 구조를 정의하거나 수정할 수 있음 | DDL |
조작기능 | 데이터를 삽입, 수정, 검색하는 연산 수행 | DML |
제어기능 | 데이터를 항상 정확하고 안전하게 유지 | DCL |
데이터베이스 관리시스템의 구성도
- 사용자와 데이터베이스 사이에 위치하며, 기능에 따라 크게 질의 처리기와 저장 데이터 관리자로 구분
- 질의 처리기(query processor) : 사용자의 데이터 처리 요구를 해석하여 처리하는 역할
- 저장 데이터 관리자(stored data manager) : 디스크에 저장된 데이터베이스와 데이터 사전을 관리하고, 실제 접근하는 역할
데이터베이스 관리시스템의 구성요소
구분 | 구성요소 | 설명 |
질의 처리기 | DDL 컴파일러 (DDL Compiler) |
- 데이터 정의어로 작성된 스키마 정의 해석 - 저장 데이터 관리자의 도움으로 새로운 데이터베이스 구축 - 스키마 정의를 데이터 사전에 저장 - 데이터 정의어로 작성된 기존 스키마의 삭제나 수정 요청 처리, 변경된 내용을 데이터 사전에 적용 |
DML 프리 컴파일러 (DML precompiler) |
- 응용 프로그램에 삽입된 데이터 조작어를 추출하여 DML 컴파일러에 전달 | |
DML 컴파일러 (DML compiler) |
- 데이터 조작어로 작성된 데이터의 처리(삽입, 삭제, 수정, 검색) 요구를 분석하여 런타임 데이터베이스 처리기가 이해할 수 있도록 해석 | |
런타임 데이터베이스 처리기 (run-time database processor) |
- 저장 데이터 관리자를 통해 데이터베이스에 접근 - DML 컴파일러로부터 전달받은 데이터 처리 요구를 데이터베이스에서 실제로 실행 |
|
트랜잭션 관리자 (transaction manager) |
- 데이터베이스 접근 과정에서 사용자의 접근 권한이 유효한지 검사 - 데이터베이스 무결성 유지를 위한 제약조건 위반 여부 확인 - 회복이나 병행수행과 관련된 작업도 담당 |
|
저장 데이터 관리자 |
- 디스크에 저장된 데이터베이스와 데이터 사전을 관리하고, 실제로 접근하는 역할 - 디스크 저장된 데이터 접근은 운영체제의 기본 기능이므로, 운영체제의 도움을 받아 데이터베이스에 대한 접근 수행 |
3단계 아키텍처
데이터 모델링 설계
데이터 저장 구조
논리적 구조 | - 사용자가 생각하는 데이터베이스의 논리적 표현 - 데이터를 이용하는 응용 프로그래머나 일반 사용자의 입장에서 본 구조로서 데이터의 논리적 배치 의미 |
물리적 구조 | - 디스크나 테이프와 같은 저장 장치 위에 물리적으로 저장되어 있는 데이터의 실제 구조 - 저장 장치의 입장에서 본 데이터의 구조로서 저장 데이터의 물리적 배치를 표현 |
데이터베이스 관리시스템 비교
구분 | RDBMS | OODBMS | ORDBMS |
저장자료 | 문자형 데이터 위주 | 데이터와 연관 프로그램(메소드) 저장 | 데이터와 연관 프로그램(메소드)저장 |
자료모델 | 테이블 구조 관계 기본키(Primary key) |
엔티키간 포인팅방식 객체식별(OID) |
RDBMS + OODBMS |
지원 자료형 | 미리 정의된 일반정보 타입 만 지원 | 비정형 객체타입 지원 | 사용자 정의 및 비정형 객체타입 지원 |
DB 엑세스 방식 | SQL 질의어 사용 | OQL(Object Query Language) | SQL 확장 질의어 사용(SQL3) |
장점 | 시스템의 안정성 과 대규모 트랜잭션 처리 | 복합 비정형 데이터 모델 적용 |
관계형의 안정성과 객체지향 모델의 복합적 요소 모델 적용 |
단점 | 복잡한 정보수용을 위한 모델적용이 제한적임 | 데이터베이스 기본기능이 미약하여 안정성 및 성능 검증 미흡 | 표준화가 되어있지 않음 |