데이터베이스 시스템(Database System)
데이터베이스 시스템은 각 조직에서 사용하던 데이터를 모아서 통합하고 서로 공유하여 생기는 장점을 이용하는 시스템이다. 데이터베이스 시스템은 데이터베이스 관리 시스템(Database Management System, DBMS), 데이터베이스, 그리고 데이터 모델의 세가지로 구성되어 있다. 데이터베이스는 하드디스크에 저장된 데이터이고, DBMS는 주기억장치에 저장된 소프트웨어이다. 데이터 모델은 눈에 보이지 않는 논리적인 개념으로 데이터가 저장되는 기법에 관한 내용이다. 이외에도 데이터베이스 시스템을 이해하기 위해서는 데이터베이스 언어, 데이터베이스 사용자에 대해 알아야 한다.
<데이터베이스 시스템의 구성>
데이터베이스 시스템은 데이터의 검색과 변경 작업을 주로 수행한다. 여기서 변경이란 시간에 따라 변하는 데이터 값을 데이터베이스에 반영하기 위해 수행하는 삽입, 삭제, 수정 등의 작업을 말한다. 데이터베이스는 이러한 검색과 변경의 빈도에 따라 시스템 구축의 난이도가 결정된다.
데이터베이스 언어
데이터베이스 시스템은 데이터베이스 전용 언어인 SQL(Structured Query Language)을 사용한다. SQL은 데이터 정의어(Data Definition Language), 데이터 조작어(Data Manipulation Language), 데이터 제어어(Data Control Language)로 구성된다. 데이터 정의어는 Create, ALter, Drop문과 같이 DBMS에 저장된 데이터 구조를 정으히가ㅗ, 데이터 조작어는 Select, Insert, Delete, Update 문과 같이 데이터를 검색, 삽닙, 삭제, 수정하는 데 사용하는 언어이다. 데이터 제어어는 Grant, Revoke 문과 같이 데이터의 사용 권한을 관리한다.
SQL의 핵심은 데이터 조작어 중 데이터를 검색하는 질의(Query)문이다. 질의문은 Select-From-Where 구조로 되어있다.
데이터베이스 사용자
데이터베이스 시스템을 사용하는 사람은 크게 일반 사용자, 응용 프로그래머, SQL 사용자, 데이터베이스 관리자로 구분할 수 있다. 여기서 응용 프로그래머는 데이터베이스로 문제를 해결하는 프로그램을 작성하는 사람이고, 일반 사용자는 응용 프로그래머가 작성한 프로그램을 이용하는 사람이다. 또 SQL 사용자는 SQL 질의를 작성하거나 SQL로 프로그램을 작성하는 사람이다. 데이터베이스 관리자는 DBA(Database Administrator)라고도 하는데, 조직의 데이터베이스 운영을 총괄하는 사람이다.
DBMS
DBMS는 사용자와 데이터베이스를 연결시켜주는 소프트웨어로 주기억장치에 상주한다. 데이터베이스의 베이스는 물건의 밑 부분이나 개념의 토대를 의미하는 것으로 데이터를 모아둔 토대를 말한다. 물리적으로는 컴퓨터 내부의 하드디스크에 저장된다. 데이터 모델은 데이터가 저장되는 기법에 관한 내용으로, 눈에 보이지 않는 논리적인 개념이다. 가전제품에 붙여진 모델 번호가 제품의 특성을 나타내듯이 데이터 모델은 데이터가 저장되는 스타일을 나타낸다.
주기억장치에 저장된 DBMS는 SQL을 번역하는 DML/DDL 컴파일러와 응용 프로그램에 삽입(embedded)된 SQL을 번역하는 Embedded DML컴파일러로 구성되어 있으며, 번역된 SQL을 처리하는 알고리즘인 질의처리기가 있다. 이 밖에도 트랜잭션 관리자, 파일 관리자, 버퍼 관리자 등이 있따. 하드디스크에 저장된 데이터베이스는 데이터 파일을 포함하여 데이터에 빠르게 접근하기 위한 인덱스, 데이터에 대한 정보를 저장하는 데이터 사전 등을 저장하고 있따. DBMS는 이들 데이터에 접근하여 사용자의 질의를 처리한다.
- 데이터 정의(Definition) : 데이터의 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행함
- 데이터 조작(Manipulation) : 데이터를 조작하는 소프트웨어(응용 프로그램)가 요청하는 데이터의 검색, 삽입, 수정 삭제 작업을 지원함
- 데이터 추출(Retrieval) : 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출함
- 데이터 제어(Control) : 데이터베이스 사용자를 생성하고 모니터링하며 접근을 제어함 백업과 회복, 동시성 제어 등의 기능을 지원함
데이터 모델
데이터베이스 시스템에서 데이터를 저장하는 이론적인 방법에 관한 것으로, 데이터베이스에 데이터가 어떻게 구조화되어 저장되는지를 결정한다.
3단계 데이터베이스 구조
외부 단계, 개념 단계, 내부 단계로 나누어지며 각 단계는 외부 스키마, 개념 스키마, 내부 스키마로 구성된다.
스키마(schema)는 그리스어에서 유래된 단어로 데이터베이스의 조직이나 구조를 의미한다.
- 외부 스키마 : 서브 스키마(sub schema)라고도 하며, 뷰의 개념이다. 개념 스키마 중 사용자에게 필요한 부분 스키마를 의미한다.
- 개념 스키마 : 전체 데이터베이스의 정의를 말하는 것으로 통합 조직별로 하나만 존재한다. 저장 장치에 독립적으로 기술되며, 데이터와 관계(relation), 제약사항, 무결성에 대한 내용이 포함된다.
- 내부 스키마 : 물리적 저장 장치에서 데이터베이스가 실제로 저장되는 방법의 표현이다. 인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항이 포함된다.
- 스키마는 데이터의 구조적 특성을 의미한다.
- 스키마는 데이터 사전(Data Dictionary)에 저장된다.
- 스키마는 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어진다.
- 스키마는 시간에 따라 불변인 특성을 갖는다.
- 스키마는 데이터의 논리적 단위에 명칭을 부여하고 그 의미를 기술한다
- MARC(Machine Readable Cataloging) : 목록 레코드를 식별하여 축적, 유통할 수 있도록 코드화한 메타 데이터
- 논리적 데이터 독립성 : 외부 단계와 개념 단계 사이의 독립성으로, 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원한다.
- 물리적 데이터 독립성 : 개념 단계와 내부 단계 사이의 독립성으로, 저장 장치 구조 변경과 같이 내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원한다.
박우창, 남송휘, 이현룡, 『데이터베이스 개론과 실습』, 한빛아카데미
'DB' 카테고리의 다른 글
[Database] 트랜잭션의 정의와 수행진행, 트랜잭션의 성질 ACID를 알아보자 (0) | 2018.06.30 |
---|---|
[Database] 제약조건의 종류와 데이터의 삽입, 삭제, 수정 시 여러 가지 제약조건의 수행에 대해 알아보자 (0) | 2018.06.29 |
[Database] 각 키에 대해서 공부하고 기본키와 외래키의 특징을 알아보자 (0) | 2018.06.29 |
[Database] 관계 데이터 모델의 개념, 릴레이션 스키마와 인스턴스 (0) | 2018.06.29 |
[Database] 데이터, 정보, 지식의정의와 데이터베이스 정의, 개념, 특징 (0) | 2018.06.19 |