데이터베이스 시스템
데이터베이스 시스템 정의
[데이터베이스 시스템]
- 데이터베이스에 데이터를 저장하고, 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템이다.
- 사용자, 데이터 언어, 데이터베이스 관리 시스템, 데이터베이스, 컴퓨터로 구성된다.
데이터베이스 구조
[스키마와 인스턴스]
- 스키마 : 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것이다.
- 인스턴스 : 스키마에 따라 데이터베이스에 실제로 저장된 값이다.
[3단계 데이터베이스 구조]
- 외부 단계 : 데이터베이스를 개별 사용자 관점에서 이해하고 표현한다. 사용자에게 필요한 데이터베이스를 정의한 외부 스키마가 여러개 존재할 수 있다.
- 개념 관계 : 데이터베이스를 조직 전체의 관점에서 이해하고 표현한다. 데이터베이스 전체의 논리적 구조를 정의하는 개념 스키마가 하나만 존재한다.
- 내부 단계 : 데이터베이스를 저장 장치의 관점에서 이해하고 표현한다. 데이터베이스가 저장되는 방법을 정의한 내부 스키마가 하나만 존재한다.
[데이터의 독립성]
- 논리적 데이터 독립성(응용 인터페이스) : 개념 스키마가 변경되어도 외부 스키마는 영향을 받지 않는다.(외부 / 개념사상)
- 물리적 데이터 독립성(저장 인터페이스) : 내부 스키마가 변경되어도 개념 스키마는 영향을 받지 않는다.(개념 / 내부사상)
[데이터 사전(시스템 카탈로그)]
- 데이터베이스에 저장되는 데이터에 관한 정보, 즉 메타 데이터를 유지하는 시스템 데이터베이스이다.
데이터베이스 사용자
데이터베이스를 이용하기 위해 접근하는 모든 사람을 의미한다. 데이터베이스 관리자, 최종 사용자, 응용프로그래머로 나뉜다.
[데이터베이스 관리자]
- 데이터베이스 시스템을 운영, 관리한다.
- 사용자를 위해 데이터베이스를 설계 및 구축하고 데이터베이스를 제어 및 관리
[최종 사용자]
- 데이터베이스에 접근하여 데이터를 조작(삽입,삭제,수정,검색)한다.
- 메뉴, GUI 형태의 응용 프로그램을 통해 데이터베이스를 접근하여, 데이터 조작어를 사용
[응용프로그래머]
- 데이터 언어를 삽입하여 응용 프로그램을 작성한다.
- C 언어, 자바 등과 같은 프로그래밍 언어로 데이터베이스 접근하여, 데이터 조작어를 삽입
데이터 언어
사용자와 데이터베이스 관리 시스템 간의 통신 수단이다. 데이터 정의어, 데이터 조작어, 데이터 제어어로 나뉜다.
[데이터 정의어 DDL]
- 스키마를 정의하거나, 수정 또는 삭제하기 위해서 사용한다.
[데이터 조작어 DML]
- 데이터의 삽입,삭제,수정,검색 등의 처리를 요구하기 위해서 사용한다.
- 절차적 데이터 조작어 : 사용자가 어떤 데이터를 원하고, 어떻게 처리해야하는지 구체적으로 설명한다.
- 비절차적 데이터 조작어 : 데이터를 얻으려면 어떻게 처리해야 하는지, 데이터베이스 관리 시스템에 맡긴다.
[데이터 제어어 DCL]
- 동시 공유가 가능하면서도 무결성과 일관성을 유지하도록 내부적으로 필요한 규칙이나 기법들을 정의하기 위해서 사용한다.
데이터베이스 관리 시스템의 구성
데이터베이스를 관리하고 사용자의 데이터 처리 요구를 수행하는 데이터베이스 관리 시스템은 데이터베이스 시스템의 주요 구성요소다. 사용자와 데이터베이스 사이에 위치하며, 기능에 따라 크게 질의 처리기와 저장 데이터 관리자로 구분할 수 있다.
[질의 처리기]
DDL 컴파일러 (Data Definition Language Compiler)
- 테이블 생성(CREATE), 수정(ALTER), 삭제(DROP)와 같은 데이터 구조 정의에 관련된 명령어들이 포함
- 이러한 문장을 받아들이고, 해당 명령에 따라 데이터 딕셔너리 또는 카탈로그에 메타데이터를 생성하거나 수정
- 이 과정을 통해 데이터베이스의 구조 및 정의가 유지
DML 프리컴파일러 (Data Manipulation Language Precompiler)
- 데이터의 검색(SELECT), 삽입(INSERT), 수정(UPDATE), 삭제(DELETE)와 같은 데이터 조작에 관련된 명령어 포함
- 많은 응용 프로그램은 호스트언어(C, COBOL 등)와 SQL을 함께 사용한다. 이러한 프로그램에서 SQL 문장을 호스트 언어 코드로부터 분리하는 역할
- 프리컴파일러는 SQL 문장을 특정 호출 코드로 대체, 이후 코드는 DML 컴파일러에 의해 처리된다.
DML 컴파일러 (Data Manipulation Language Compiler)
- DML 프리컴파일러에 의해 분리된 SQL 문장을 실제로 컴파일하고 최적화하는 역할
- SQL 질의를 저수준의 기계어나 중간 코드로 변환, 또한 질의 최적화기를 사용하여 가장 효과적인 실행 계획 생성
- 최적화된 계획은 실제 데이터에 접근하고 연산을 수행하는데 사용
[저장 데이터 관리자]
- 디스크에 저장된 데이터베이스와 데이터 사전을 관리하고, 운영체제의 도움을 받아 데이터베이스에 대한 접근을 수행한다.
출처 : 데이터베이스 개론 3판, 김연희 저자 한빛아카데미
데이터베이스 개론 | 김연희 - 교보문고
데이터베이스 개론 |
product.kyobobook.co.kr
'DB > 데이터베이스 개론' 카테고리의 다른 글
[DataBase] 관계 데이터 연산 (0) | 2023.10.19 |
---|---|
[DataBase] 관계 데이터 모델(Relational Data Model) (0) | 2023.10.19 |
[DataBase] 데이터 모델링(Data Model) (0) | 2023.10.15 |
[DataBase] 데이터베이스 관리 시스템 (0) | 2023.10.08 |
[DataBase] 데이터베이스 기본 개념 (0) | 2023.10.07 |