2.1 데이터베이스 관리 시스템의 발전 배경
파일 시스템의 특성
- 첫째, 응용 프로그램은 응용 프로그래머가 생각하는 논리적 파일 구조를 직접 물리적 파일 구조로 구현해야 한다.
- 둘째, 응용 프로그래머는 물리적 데이터 구조에 대해 잘 알고 있어야만 데이터에 대한 접근 방법을 응용 프로그램 속에 효율적으로 구현시킬 수 있다.
- 셋째, 모든 응용 프로그램이 자기 자신의 데이터 파일을 가지고 있어야만 되는 환경이기 때문에 결국 하나의 파일은 하나의 응용만을 위해 존재하게 된다.
2.1.1 데이터 종속성
- 데이터 종속성(data dependency)이란 응용 프로그램과 데이터 간의 상호 의존 관계를 말한다. 데이터 구성 방법이나 접근 방법을 변경할 때는 자연히 이것을 기초로 한 응용 프로그램도 같이 변경시켜야 한다.
2.1.2 데이터 중복성
- 한 시스템 내에 내용이 같은 데이터가 중복되게 저장 관리되는 것을 데이터 중복성(data redundancy)이라 한다.
- 파일 관리 시스템(file management system)이란 각 응용 프로그램이 사용하는 데이터 파일 처리 루틴들을 하나의 공동 접근 루틴으로 구성한 것이다.
- 일관성
여러 개의 데이터가 모두 하나의 동일한 사실을 나타내다면 논리적으로 그 내용이 모두 똑같아야 하는데 실제로 데이터의 중복이 있게 되면 그 동일성을 유지하기 어렵다. - 보안성
논리적으로 한 시스템 내에 존재하는 같은 내용의 데이터에 대해서는 똑같은 수준의 데이터 보안(data security)이 유지되어야 한다. - 경제성
데이터를 중복 저장하게 되면 추가적으로 필요한 저장 공간에 대한 비용이 더 들게 된다. 또한 데이터가 중복되어 있는 상황에서의 갱신 작업은 중복된 모든 데이터를 찾아내어 그들에 대해 전부 수행해야만 되므로 자연히 갱신 비용이 높게 되어 경제성(economics)이 떨어지게 된다. - 무결성
데이터가 중복 저장되면 자연히 제어가 분산되게 되어 데이터 무결성(data integrity), 즉 데이터의 정확성을 유지하기가 어렵다.
2.2 데이터베이스 관리 시스템의 정의
- 데이터베이스 관리 시스템(DBMS : Database Management System)이라 하면 응용 프로그램과 데이터의 중재자로서 모든 응용 프로그램들이 데이터베이스를 공용할 수 있게끔 관리해 주는 소프트웨어 시스템(software system)을 말한다.
2.3 데이터베이스 관리 시스템의 필수 기능
(1) 정의 기능
- 데이터 정의(data definition) 기능은 하나의 물리적 구조의 데이터베이스로 여러 사용자들의 다양한 형태의 데이터 요구를 지원해 줄 수 있도록 가장 적절한 데이터베이스 구조를 정의할 수 있는 기능을 말한다.
- 데이터 정의에는 다음과 같은 내용이 포함되어야 한다.
- 모든 응용 프로그램들이 요구하는 데이터 구조를 지원할 수 있도록 데이터베이스의 논리적 구조와 특성이 그 DBMS가 지원하는 데이터 모델(data model)이 맞게 기술되어야 한다.
- 데이터베이스를 물리적 저장 장치에 저장하기 위한 데이터의 물리적 구조의 명세도 포함하여야 한다.
- 데이터의 논리적 구조와 물리족 구조 사이에 상호 변환이 가능하도록 이 두 구조 사이의 사상(mapping)을 명세화하여야 한다.
(2) 조작 기능
- 데이터 조작(data manipulation) 기능은 사용자와 데이터베이스 사이의 인터페이스를 위한 수단을 제공한다. DBMS는 데이터베이스를 이용하는 사용자의 요구에 따라 체계적으로 데이터베이스를 접근하고 조작할 수 있어야 한다. 이것은 데이터의 검색, 갱신, 삽입, 삭제 등 데이터베이스 지원하는 도구로서 데이터 언어(data language)를 통해서 표현될 수 있다.
- 데이터 언어는 다음과 같은 요건을 만족해야 한다.
- 모든 사용자에게 사용하기 쉽고 자연스러워야 한다. 데이터 공용으로 인해 사용 절차가 복잡하고 까다로우면 공용이라는 본래의 목적을 달성하기가 어렵다.
- 명확하고 완전하여야 한다. 데이터와 데이터 간의 관계를 명확하게 명세할 수 있어야 하며, 사용자가 원하는 데이터 연산은 무엇이든지 합법적인 범위 내에서 완전하게 명세할 수 있어야 한다.
- 효율적이어야 한다. 데이터베이스가 공용된다는 이유로 데이터 접근이나 처리가 비효율적으로 수행되어서는 안된다.
(3) 제어 기능
- DBMS는 공용 목적으로 관리되는 데이터베이스의 내용에 대해 항상 정확성과 안전성을 유지할 수 있는 데이터 제어(data control) 기능을 가지고 있어야 한다.
- 이 데이터 기능은 적어도 다음과 같은 세 가지 요건을 갖추어야 한다.
- 데이터베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되게 하여 데이터의 무결성(integrity)이 파괴되지 않도록 제어할 수 있어야 한다.
- 정당한 사용자가 허가된 데이터만을 접근할 수 있도록 보장하기 위해 권한(authority)을 검사하고 보안(security)을 유지할 수 있어야 한다.
- 여러 사용자가 데이터베이스를 동시에 접근하여 데이터를 처리하더라도 데이터베이스와 처리 결과는 항상 정확성(correctness)이 유지되도록 병행 제어(concrrency control) 기능을 가지고 있어야 한다.
2.4 데이터베이스 관리 시스템의 장단점
2.4.1 데이터베이스 관리 시스템의 장점
- 데이터 중복의 최소화
파일 시스템에서는 각 응용 프로그램마다 자신의 데이터 파일의 개별적으로 관리 유지되기 때문에 기관 전체로 저장되는 데이터의 입장에서 보면 상당히 많은 데이터가 같은 내용에 대한 중복 저장되게 된다. 그러나 데이터베이스는 데이터를 통합해서 구성함으로써 이러한 중복을 사전에 통제할 수 있다. 이것은 물론 데이터의 중복을 완전히 배제한다는 것을 의미하는 것은 아니다. 왜냐하면 통합 데이터베이스 환경 속에서도 성능 향상의 이유로 데이터의 중복이 불가피할 때가 있기 때문이다. 이때는 물론 시스템은 어떤 데이터가 어디에 중복되어 있는지 알고있기 때문에 이런 중복을 제어된 중복(controlled redndancy)이라고 한다. - 데이터의 공용
같은 내용의 데이터를 여러 가지 구조로 지원해 줄 수 있는 DBMS의 복잡하고도 정교한 기법 덕택으로 데이터베이스의 데이터 공용(data sharing)이 가능하다. 이것은 기존 여러 응용 프로그램들이 수행하던 데이터에 대한 유지 관리 부담을 면제시켜 줄 뿐만 아니라 새로 개발하는 응용 프로그램에 대해서도 데이터 구서에 신경 쓸 필요 없이 응용 자체에만 전념할 수 있게 해준다는 것을 의미한다. - 데이터의 일관성 유지
현실 세계의 어느 한 사실을 나타내는 두 개의 데이터가 있을 때 오직 하나의 데이터만이 변경되고 다른 하나는 변경되지 않는다면 데이터 간의 불일치성, 즉 모순성을 갖게 된다. 모순성을 내포한 데이터베이스는 서로 상충되는 정보를 제공하게 되고 데이터베이스의 유용성을 저해하게 된다. 데이터베이스 관리 시스템은 바로 이 데이터의 중복을 제어하고 통제를 통해 데이터의 일관성(data consistency)을 유지하게 한다. - 데이터 무결성 유지
데이터 무결성(data integrity)이란 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성(accuracy)을 말한다. 데이터 중복성이 완전히 제거된다고 하더라도 허용되지 않는 값이나 부정확한 데이터가 여러 가지 경로에 의해 데이터베이스에 잠입될 수도 있다. 데이터베이스 관리 시스템은 데이터베이스가 접근 처리될 때마다 제어 기능을 통해 그 유효성을 검사함으로써 데이터 무결성(data integrity)을 융지할 수 있다. - 데이터 보안 보장
하나의 DBMS는 자기의 데이터베이스를 중앙 집중식으로 총괄, 관장함으로써 데이터베이스의 관리 및 접근을 효율적으로 제어할 수 있다. 이것은 DBMS가 정당한 사용자, 허용된 데이터와 연산 등을 확인 검사함으로써 모든 데이터에 대해 철저한 보안 유지를 보장해 줄 수 있다. 그러나 일반적으로 같은 내용의 데이터가 여러 화일에 분산 관리될 때 똑같은 수준의 보안이 보장되기는 상당히 어렵다. - 표준화
DBMS의 필수적인 데이터 제어 기능을 통해 데이터의 형식, 내용, 처리 방식, 문서화 양식 등에 관한 표준화를 범 기관적으로 수비게 시행할 수 있다. - 전체 데이터 요구의 조정
데이터베이스는 한 기관의 모든 응용 시스템들이 요구하는 데이터들을 전체적으로 통합 분석해서 상충되는 데이터 요구는 조정해서 기관 전체에 가장 유익한 구조로 조직하여 효율적인 정보 처리 효과를 얻게 할 수 있다.
2.4.2 데이터베이스 관리 시스템의 단점
- 운영비의 증대
DBMS는 가격으로 보아 고가의 소프트웨어 제품이 컴퓨터 시스템의 자원을 많이 사용한다. 특히, 메인 메모리를 많이 차지하기 때문에 DBMS를 운영하기 위해서는 메모리 용량이 더 많이 필요하게 되고, 더 빠른 CP를 요구하게 된다. 결과적으로 시스템 운영비의 오버헤드를 가중시키게 된다. - 특정 응용 프로그램의 복잡화
데이터베이스는 상이한 여러 유형의 데이터가 서로 관련되어 있다. 특정 응용 프로그램은 이러한 상황 속에서 여러 가지 제한점을 가지고 작성되고 수행될 수도 있다. 따라서 특수 목적의 응용 시스템 설계 기간이 길어지게 되고 보다 전문적, 기술적이 되어야 하기 때문에 그 구조가 복잡하게 되고 성능이 저하될 수 있다. - 복잡한 백업과 회복
데이터베이스는 그 구조가 복잡하고 여러 사용자가 동시에 공용하기 때문에 장애가 일어났을 때 정확한 이유나 상태를 파악하기가 쉽지 않다. 뿐만 아니라 여기에 대한 백업(backup) 조치나 사후 회복(recovery)기법을 아주 정교하게 수립해 놓지 않으면 데이터베이스 이용에 막대한 지장을 초래할 수 있다. - 시스템의 취약성
데이터베이스 시스템은 통합된 시스템이기 때문에 그 일부에 장애(failure)가 일어날 경우 전체 시스템을 정지싴 시스템 신뢰성과 가용성을 저해할 수 있다. 이것은 특히 데이터베이스에 의존도가 높은 환경에서는 아주 치명적인 약점이 될 수 있다.
2.5 데이터 독립성
- 데이터베이스 관리 시스템이 추구하는 궁극적인 목적인 데이터의 논리적 구조나 물리적 구조가 변경되더라도 응용 프로그램이 영향을 받지 않는 데이터 독립성(data independency)을 제공하는 것이다.
2.5.1 논리적 데이터 독립성
- 논리적 데이터 독립성(logicla data independency)이란 DBMS가 데이터베이스의 논리적 구조를 변경시키더라도 기존 응용 프로그램들에 아무런 영향을 주지 않는 것을 말한다.
2.5.2 물리적 데이터 독립성
- 기존 응용 프로그램들에 아무런 영향을 주지 않고 데이터베이스 관리 시스템이 데이터베이스의 물리적 구조로 변경할 수 있는 것을 물리적 데이터 독립성이라 한다.
- 물리적 데이터 독립성(physical data independency)은 응용 프로그램이나 데이터베이스의 논리적 구조에 영향을 주지 않고 DBMS가 데이터의 물리적 구조를 변경할 수 있는 것을 말한다. 이것은 하나의 논리적 구조와 이를 지원할 수 있는 여러가지 상이한 물리적 구조 사이의 사상(mapping) 능력이 있어야 가능하다.
'임용 > 데이터베이스' 카테고리의 다른 글
Chapter 06 SQL (0) | 2023.04.17 |
---|---|
Chapter 05 관계 대수와 관계 해석 (1) | 2023.04.13 |
Chapter 04 관계 데이터베이스 (0) | 2023.04.12 |
Chapter 03 데이터베이스 시스템의 구성 (0) | 2023.04.12 |
Chapter 01 정보 환경 (0) | 2023.04.10 |