본문 바로가기

Computer/0x04 데이터베이스

[데이터베이스 4화] 데이터베이스시스템 및 구성요소

[데이터베이스 4화] 데이터베이스시스템 및 구성요소  




데이터베이스 시스템(DBSL Database System) 의 정의

: 데이터를 데이터베이스로 저장하고 관리해서 필요한 정보를 생성하는 컴퓨터 중심의 시스템



[ 데이터베이스 시스템의 구성요소 ]

- 데이터베이스 (DB)

- 데이터베이스 관리시스템(DBMS)

- 데이터 언어 (Data Language)

- 사용자 (User)

- 데이터베이스 관리자 (DBA)

- 데이터베이스 컴퓨터(Database Computer)




[ 데이터베이스 시스템 구성도 ]


호스트 컴퓨터 : 사용자나 응용 프로그램으로부터 데이터 접근 요청 


데이터베이스 컴퓨터: 데이터의 갱신, 삭제, 삽입 등의 연산을 수행




cf) 사용자 인터페이스(user interface): 호스트 프로그래밍 언어와 데이터 조작어로

작성된 프로그램을 통해 시스템에 접근하는 것


DBMS: 사용자 인터페이스에서부터 실제 저장 데이터베이스에 접근 하는 모든 

과정 연관 





3단계 데이터 베이스 구조


(데이터베이스 환경) : 개개인 사용자의 데이터 < 기관 전체의 DB < 실제 저장 장치의 물리적 DB


* 외부 단계 (external level): 데이터를 이용하는 각 개인의 뷰(view)

* 개념 단계 (conceptual level): 각 개인이 종합된 기관의 뷰(view)

* 내부 단계 (internal level): 물리적 저장 장치의 뷰(view)





스키마(schema)

- 데이터베이스의 구조(데이터 객체, 관계) 와 제약조건의 명세를 기술한 것을의미

- 구성요소는 개체(entity), 속성(attribute), 관계(relationship), 제약조건(constraints)



* 외부 스키마 (external schema)

- 개인이나 특정 응용에 한정된 것

- 해당 응용 프로그램이나 사용자에 관련된 개체와 관계만 포함

- 서브 스키마 (sub schema) 



* 개념 스키마 (conceptual schema)

- 범 기관적인 관점에서의 데이터베이스 정의한 것

- 개념이란 의미는 전체적이고 종합적이란 뜻

- 모든 응용 시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의

데이터베이스를 기술한 것



* 내부 스키마 (internal schema)

- 저장장치 관점에서 전체 데이터베이스가 저장되는 방법을 명세한 것

- 개념 스키마에 대한 저장 구조를 정의한 것

- 실제로 저장될 내부 레코드의 형식, 인덱스의 유무 , 저장 데이터 항목의 표현 방법,

내부 레코드의 물리적 순서 등에 관한 명세를 포함





3단계간의 사상(Mapping)

어느 한 응용 프로그램이 DBMS를 통하여 데이터베이스를 접근하려 할 때 DBMS는 각 단계(외부,개념,내부)

스키마에 있는 모든 개체와 속성간의 대응 관계를 알아야만 지원 가능 한 것



[ 외부 / 개념 단계간의 사상 (external / conceptual mapping) ]

: 응용 인터페이스(application interface) - 외부 스키마와 개념 스키마간의 대응 관계






데이터 언어


* 데이터 정의어 (DDL: Data Definition Language )

- 데이터베이스를 정의하거나 그 정의를 수정할 목적으로 사용하는 언어

- 데이터베이스 스키마를 데이터베이스 관리 시스템이 이해할 수 있게끔 기술하는 데 사용

- 논리적 데이터의 구조, 물리적 데이터의 구조, 논리적 데이터와 구조와 물리적 데이터를 구조간의

사상을 정의하는 데 사용 



* 데이터 조작어 (DMS: Data Manipulation Language )

- 사용자가 DBMS로 하여금 원하는 데이터를 처리하게끔 명세 하는 도구

- 사용자(응용프로그램) 와 DBMS 간의 인터페이스를 제공

- 데이터 처리를 명세할 수 있는 연산들을 포함 (데이터의 검색, 삽입, 삭제, 변경 등)




구분 

절차적 데이터 조작어

(procedural DML) 

비절차적 데이터 조작어

(non-procedural DML) 

언어 

초급 데이터 언어 

고급 데이터 언어 

접근방법 

사용자 직접 접근  

데이터베이스 관리 시스템 위임 

처리방법 

한번에 하나의 레코드

(one-record-at-a-time) 

한번에 여러개의 레코드

(set-of-records-at-a-time) 

사용방법 

 응용 프로그램 속 삽입

독자적 사용 




cf) 질의어 (query lanquage)

- 터미널에서 많이 사용하고 있는 고급 명령어 형태의 독립된 데이터 조작어

- 데이터의 검색은 물론 데이터의 갱신, 삽입, 삭제뿐만 아니라 데이터 정의 등 광범위한 기능을

가진 독립된 언어의 의미로 사용




* 데이터 제어어 (DCL: Data Control Language )


1. 데이터 제어에 관핸 정의하고 기술하는 언어

2. 데이터 관리 목적으로 데이터베이스 관리자가 사용

3. 데이터 제어 명령어 내용

- 데이터 보안(security) : 불법적인 사용자로부터 데이터를 보호

- 데이터 무결성(integrity): 데이터 정확성을 유지

- 데이터 회복(recovery): 시스템 장애에 대비

- 병행 수행 (concurrency): 데이터베이스의 동시 접근을 가능





데이터베이스4화 내용정리


1. 데이터베이스 시스템이란 데이터를 데이터베이스로 저장하고 관리해서 필요한 정보를 생성하는 컴퓨터 

중심의 시스템이라 정의하며, 구성요소로는 데이터베이스, 데이터베이스 관리시스템, 데이터언어,

사용자, 데이터베이스 관리자, 데이터베이스 컴퓨터가 있다.


2. 데이터베이스 관리 측면에서는 데이터를 이용하는 각 개인의 뷰(view)를 외부 스키마, 이런 각 개인의 모든 뷰가

종합된 기관 전체의 뷰를 개념 스키마, 그리고 시스템 즉 물리적 저장 장치의 입장에서 보는 저장 장치의 뷰를

내부 스키마라 하며 이렇게 하나의 데이터베이스를 3단계로 나누어 기술하는 것을 '3단계 데이터베이스 구조' 라 한다.


3. 어느 한 응용 프로그램이 DBMS를 통하여 데이터베이스를 접근하려 할 떄 DBMS 는 각 단계(외부, 개념, 내부)

스키마에 있는 모든 개체와 속성간의 대응 관계를 알아야만 지원 할 수 있다.


4. 데이터베이스를 정의하고 접근하기 위해서는 데이터베이스 관리 시스템과의 통신 수단이 필요한데

이것이 데이터 언어이며 그 기능과 사용 먹적에 따라 데이터 정의어, 데이터 조작어, 데이터 제어어로 나눌 수 있다.