본문 바로가기
컴퓨터공학/데이터베이스

데이터베이스 시스템 개요

by Daniel.kwak 2018. 10. 27.

목표


1.데이터베이스 시스템에 대해 알아본다.

2.파일시스템과 비교하여 DBMS의 장점을 알아본다.

3.DBMS의 발전 과정을 알아본다. 

4.DBMS 언어에 대해 알아본다.




데이터베이스 시스템 개요

 

데이터베이스 스키마란 전체적인 데이터베이스 구조를 뜻하며 자주 변경되지 않는다. 데이터베이스의 모든 상태를 미리 정의하며 내포(intension)이라고 부른다.

반면 데이터베이스 상태란 특정 시점의 데이터베이스 내용을 뜻하며 시간에 다라 달라진다. 외연(extension)이라고 부른다. 

시스템 카탈로그는 저장된 데이터베이스 스키마 정보를 유지하는 역할을 한다. 





 DBMS란 사용자가 새로운 데이터베이스를 생성하고 데이터베이스 구조를 명시하고 데이터를 효율적으로 질의하고 수정할 수 있으며, 시스템의 고장이나 권한이 없는 사용자로부터 데이터를 안전하게 보호한다. 동시에 여러 사용자가 동시에 데이터베이스에 접근하는것을 제어하는 소프트웨어 패키지를 말한다. 데이터베이스 언어라 불리는 프로그래밍 랭기지를 하나 이상 제공하며 SQL는 사실상 여러 DBMS에서 제공하는 표준 데이터베이스 언어이다.




파일시스템 vs DBMS


파일 시스템의 기본 구성 요소는 순차적인 레코드이다. 한 레코드는 연관 필드들의 집합이며, 응용 프로그램이 파일에 접근하는 방식을 상세히 기록하기 때문에 데이터에 대한 응용의 의존도가 높다. 단점으로는 

1.데이터가 많은 파일에 중복된다.

2.다수의 사용자들에 대한 동시성 제어가 허용되지 않는다. 

3.검색하려는 데이터를 쉽게 명시하는 데이터 질의어가 없다. 

4.보안 조치가 미흡하여 회복 기능이 없다. 

5.프로그램과 데이터 간 독립성이 부족하여 유지보수 비용이 높다.


DBMS를 사용하여 데이터를 관리했을때의 장점은

1.여러 사용자와 응용들이 데이터를 공유할 수 있다.

2.사용자 질의를 빠르게 수행할 수 있는 인덱스 같은 접근경로를 DBMS가 자동으로 제공한다.

3.권한이 없는 사용자로부터 데이터를 보호한다.

4.데이터 간 복잡한 관계를 표현하여 무결성 제약 조건을 DBMS가 자동으로 유지한다.

5.프로그램에 영향을 주지 않으면서 데이터베이스 구조를 변경할 수 있다.





다만 추가적인 하드웨어 구입 비용과 DBMS 구입 비용도 상당히 비싸다. 초기의 투자 비용이 너무 크거나, 응용의 구조가 잘 정의되어 있고 거의 변경되지 않고 엄격한 실시간 처리 요구사항이 있을때 혹은 다수의 사용자 접근이 필요하지 않을때는 DBMS를 쓰지 않을수도 있다. 




DBMS 발전 과정


1.계층 DBMS는 1960년대 후반에 트리구조를 기반으로 최초로 등장했다. 네트워크 데이터 모델의 특별한 사례이며 특정 유형에는 빠른 속도를 제공한다. 

그러나 어떻게 데이터를 접근하는지 응용에 미리 정의해야 하고, 레코드들이 링크로 연결되어 있어 구조를 변경하기 어렵다.

2.네트워크 DBMS는 레코드들이 노드로, 레코드들의 관계가 간선으로 표현되는 그래프 구조이다. 마찬가지로 레코드들이 링크로 연결되어 있어 구조 변경이 어렵다.

3.관계DBMS는 모델이 간단하여 이해하기 쉽다. 사용자는 원하는 것(what)만 명시하고 데이터의 보관, 접근에 관해서는 DBMS가 관리한다. (오라클 , MS SQL Server , ...)

4.객체지향 DBMS는 객체지향 패러다임이 등장하면서 만들어진 데이터 모델이다. 데이터와 프로그램을 그륩화하고 복잡한 개체들을 이해하기 쉬우며 유지보수가 쉽다. (ONTOS , OpenODB ...)

5.객체 관계 DBMS는 1990년대 관계 DBMS와 객체지향 개념을 통합한 객체 관계 데이터 모델이 등장하였다. (오라클)







 DBMS 언어
데이터 정의어(Data Definition Language)
사용자는 DDL을 사용하여 데이베이스의 스키마를 정의한다. DDL이 입력되면 DBMS는 사용자가 정한 스키마 명세에서 시스템 카탈로그에 저장한다.
ex) CREATE TABLE , ALTER TABLE , DROP TABLE , CREATE INDEX 

데이터 조작어(Data Manipulation Language)
사용자는 DML을 사용하여 데이터베이스 내에서 데이터를 검색하고 질의하고 삽입, 수정, 삭제를 한다. 절차적 , 비절차적 언어로 나뉘며 관계 DBMS에서 사용되는 SQL은 대표적인 비절차 언어이다. 보통의 DML은 SUM , COUNT , AVG 같은 내장 함수를 가지고 있다.
ex) SELECT , INSERT , DELETE , UPDATE ...






참고

데이터베이스 배움터(생능출판)



'컴퓨터공학 > 데이터베이스' 카테고리의 다른 글

트랜잭션  (0) 2018.10.31
뷰(VIEW)  (0) 2018.10.31
데이터베이스 정규화  (0) 2018.10.30
데이터베이스의 인덱스  (0) 2018.10.28
SQL  (0) 2018.10.28
관계 데이터 모델과 제약조건  (0) 2018.10.27