데이터베이스(Database)
컴퓨터는 여러 가지 용도로 많은 양의 데이터를 처리합니다. 회사에서는 매출과 직원들의 정보를 기록하여 관리하고, 병원에서는 화자들의 진료 내역을 컴퓨터에 기록하여 관리합니다.
데이터베이스란 컴퓨터에 저장된 데이터들을 통합하여 저장하고 관리하는 모임이고 데이터베이스 관리 시스템(DBMS : Database Management System)은 데이터베이스를 관리하는 프로그램의 집합입니다. 저장된 데이터의 양이 방대하고 많은 사람들이 사용할수록 효율적입니다. 다시 말해 데이터베이스 관리 시스템의 목적은 데이터베이스에 데이터를 저장하고, 저장된 데이터를 효율적으로 검색 및 수정할 수 있는 환경을 제공하는 것입니다.
전형적인 파일 처리 시스템의 문제점과 그 대안인 데이터베이스에 대해 알아보고 데이터베이스 관리 시스템의 역할 및 도입 시 장점, 데이터베이스 언어와 데이터베이스 사용자까지 살펴보도록 합시다.
파일 처리 시스템
파일을 구성하는 기본적 요소는 레코드(Record)이고 하나의 레코드는 연관된 필드(Field)의 집합으로 구성됩니다. 레코드는 자료를 저장하거나 표현하는 기본 단위이고, 필드는 속성을 나타내는 정보의 최소 단위입니다. 예를 들어 회사원의 레코드는 임용일, 부서, 성명처럼 속성을 나타내는 필드들로 구성됩니다.
파일 처리 시스템은 아래의 이미지와 같이 각 응용 프로그램마다 별도의 데이터 파일을 유지하지만 데이터 종속과 데이터 중복이라는 문제점이 있습니다.
데이터 종속은 각 응용 프로그램과 데이터 파일 간의 의존적인 상황을 나타냅니다. 즉 응용 프로그램은 데이터의 논리적인 구조 외에도 물리적인 구조까지 고려하여 작성합니다. 따라서 데이터 파일의 구성 요소와 구성 방법, 접근 방법 등이 변경되면 응용 프로그램도 변경되어야 합니다.
데이터 중복은 여러 응용 프로그램에서 동일한 데이터 파일을 필요로 하더라도 각 응용 프로그램마다 별도의 데이터 파일을 유지하는 것을 말하지만 이로 인해 저장 공간이 낭비되고 데이터의 수정 제어가 어려워지기 때문에, 데이터 수정 시 다수의 데이터 파일에서 데이터 불일치 현상이 발생할 수도 있습니다.
데이터베이스는 이런 문제들을 해결하기 위해 등장하였습니다.
데이터베이스와 프로그램
데이터베이스는 한 조직의 여러 응용 프로그램들이 저장된 데이터를 공유할 수 있도록 데이터를 통합·관리합니다. 데이터베이스는 병원의 환자 관리, 기업의 정보 시스템, 비행기의 예약 시스템 같은 기존 응용 분야 외에도 데이터 웨어하우스(Data Warehouse), 데이터 마이닝, 멀티미디어 데이터베이스(Multimedia Database)와 같은 새로운 응용 분야에서도 널리 사용됩니다.
* 데이터 마이닝 - 사용자의 의사 결정에 도움을 주기 위해 다양한 운영 시스템에서 추출·변환·통합·요약된 데이터베이스를 뜻합니다.
* 멀티미디어 데이터베이스 - 많은 데이터 가운데 숨겨져 있는 유용한 상관관계를 발견하여, 미래에 실행 가능한 정보를 추출해내고 의사 결정에 이용하는 과정을 뜻합니다.
* 멀티미디어 데이터베이스 - 음성, 그래픽, 영상 등과 같이 다양한 매체를 통해 표현되는 대량의 정보를 효율적으로 관리하기 위해 사용되는 데이터베이스를 뜻합니다.
데이터베이스에 저장된 데이터의 특징
- 통합된 데이터(Integrated Data) : 유용한 정보는 하나의 사실이 여러 가지 사실과 연관되어 만들어지므로, 독립된 데이터는 유용한 정보를 제공하지 못합니다. 통합된 데이터란 연관된 데이터의 모임입니다.
- 저장된 데이터(Stored Data) : 자기 디스크나 광 디스크와 같은 보조기억장치에 저장되어 있는 데이터의 모임입니다.
- 운영 데이터(Operational Data) : 모든 조직체는 운영에 필요한 데이터를 수집하여 조직한 후 저장하고 관리합니다. 운영 데이터란 특정 조직체의 존재 목적이나 역할 측면에서 필요한 데이터가 구조적으로 통합된 모임입니다.
- 공용 데이터(Shared Data) : 다수의 사용자와 응용 시스템들이 공유하는 데이터의 모임입니다.
데이터베이스의 특징
- 실시간 접근성 : 사용자나 응용 프로그램의 요구를 즉시 처리하여 응답할 수 있어야 합니다.
- 계속적인 변화 : 새로운 데이터의 삽입, 기존 데이터의 삭제와 갱신 등을 통하여 계속 변화하면서 언제나 최신 데이터를 유지해야 합니다.
- 동시 공유 : 다수의 사용자와 응용 프로그램들이 동시에 접근하여 데이터를 검색하고 갱신할 수 있어야 합니다.
- 내용에 의한 참조 : 데이터를 검색할 때 데이터의 저장 위치나 주소를 몰라도 사용자가 원하는 값을 제시하면 관련 데이터를 찾아서 제공할 수 있어야 합니다.
데이터베이스 관리 시스템(DBMS : Database Management System)
데이터베이스 관리 시스템은 사용자와 응용 프로그램에 편리하고 효율적인 데이터베이스 사용 환경을 제공하는 소프트웨어입니다. 줄여서 'DBMS'라고도 부릅니다. DBMS의 사용자는 데이터베이스에 저장된 데이터의 물리적 저장 구조를 알 필요가 없으며, 데이터의 저장과 갱신, 검색 알고리즘을 기술할 필요도 없습니다.
DBMS는 데이터베이스의 구조를 명시하고, 새로운 데이터베이스를 생성하며, 데이터를 효율적으로 검색하고 수정할 수 있게 만듭니다. 또한 시스템의 고장이나 권한이 없는 사용자로부터 데이터를 안전하게 보호하며, 다수의 사용자가 동시에 데이터베이스에 접근할 수 있도록 제어합니다.
아래의 이미지는 데이터베이스에 대한 모든 접근이 DBMS를 통해 이루어지는 모습입니다. 각 응용 프로그램은 DBMS를 통해서만 데이터베이스에 접근하므로 데이터베이스의 구조가 변경되더라도 응용 프로그램에는 영향을 주지 않습니다. 마찬가지로 응용 프로그램이 변경되어도 데이터베이스에는 영향을 주지 않습니다. 이러한 관계를 프로그램-데이터 독립성(Program-Data Independence)이라고 합니다.
파일 처리 시스템과 비교할 때 DBMS 도입에 따른 장점은 아래와 같습니다.
1. 데이터의 중복과 불일치가 감소합니다.
2. 사용자에게 더 나은 서비스를 제공할 수 있습니다.
3. 시스템의 융통성이 향상됩니다.
4. 시스템 개발 및 유지 비용이 감소합니다.
5. 표준화를 시행하기 용이합니다.
6. 보안이 향상됩니다.
7. 데이터 무결성이 향상됩니다.
8. 조직체의 요구 사항을 파악하여 조정할 수 있습니다.
9. 시스템의 고장으로부터 데이터베이스를 복구할 수 있습니다.
10. 데이터베이스의 공유와 동시 접근이 가능합니다.
현재 널리 사용되는 대표적인 DBMS로는 Oracle, MySQL, Microsoft SQL Server, PostgreSQL, MongoDB 등이 있습니다. 작업에 적합한 DBMS를 선정하려면 기술적인 요인과 경제적인 요인을 모두 고려해야 합니다. 기술적 요인으로는 DBMS의 데이터 모델, DBMS가 지원하는 사용자 인터페이스, 프로그래밍 언어, 응용 개발 도구, 저장 구조 및 접근 방법 등이 있고, 경제적 요인으로는 소프트웨어와 하드웨어 구입 비용, 유지 보수 비용, 직원들의 교육 지원 등이 있습니다.
데이터베이스 언어
데이터베이스 언어란 데이터베이스 시스템을 구축하고 관리하는 데 사용하는 언어로 역할에 따라 분류하면 아래와 같습니다.
- 데이터 정의어(DDL : Data Definition Language) : 데이터 저장 구조, 데이터 접근 방법, 데이터 형식 등 데이터베이스를 구축하거나 수정할 때 사용하는 언어입니다. 데이터 정의어로 기술된 문장은 번역된 후 데이터 사전(Data Dictionary) 또는 시스템 카탈로그(System Catalog)라는 특별 파일에 저장됩니다.
- 데이터 조작어(DML : Data Manipulation Language) : 데이터에 저장된 데이터를 검색, 수정, 삽입, 삭제할 때 사용하는 언어로, 사용자와 DBMS 간에 인터페이스를 제공합니다. 대표적인 데이터 조작어로는 질의어가 있습니다. 데이터 조작어는 필요한 데이터와 검색 방법까지 명시하는 절차적 언어(Procedural Language)와 필요한 데이터만 명시하고 검색 방법은 명시하지 않는 비절차적 언어(Non Procedural Language)로 구분됩니다. SQL은 대표적인 비절차적 언어입니다.
- 데이터 제어어(DCL : Data Control Language) : 데이터를 보호하고 관리하는 언어로, 데이터베이스의 무결성 유지, 보안 및 접근 제어(Access Control), 시스템 장애로부터의 복구, 병행 수행 제어 기능 등을 수행합니다.
데이터베이스 사용자 구분
데이터베이스 시스템의 주요 목표는 데이터베이스에 새로운 데이터를 저장하고, 효율적인 데이터 검색 환경을 제공하는 것입니다. 데이터베이스 사용자는 데이터베이스 시스템의 활용 형태에 따라 다음과 같이 크게 세 가지 유형으로 구분됩니다.
- 응용 프로그래머(Application Programmer) : 프로그래밍 언어(C와 C++ 등)를 사용하여 특정 응용 프로그램(ex : 인사 관리, 고객 관리 등)이나 인터페이스를 구현하는 사람들입니다. 응용 프로그램의 데이터베이스 접근 부분을 내포된 데이터 조작어를 사용하여 개발합니다.
- 최종 사용자(End User) : 데이터의 검색, 삽입, 삭제, 갱신 등을 위해 데이터베이스 시스템을 사용하는 사람으로, 응용 프로그램을 직접 작성하지는 않습니다. 데이터베이스 질의어를 사용하여 정보를 찾는 일반 사용자와, 작성된 응용 프로그램을 활용하여 데이터베이스 시스템에 접근하는 초보 사용자로 구분할 수 있습니다.
- 데이터베이스 관리자(DBA : Database Administrator) : 데이터 정의어(DDL)와 데이터 제어어(DCL)를 사용하여 데이터베이스 스키마(Schema)를 생성하고 관리하는 사람들입니다. DBMS는 데이터베이스 관리자가 사용할 수 있는 데이터베이스 관리 도구들을 지원합니다. 데이터베이스 관리자의 주요 업무는 데이터베이스 스키마의 생성과 변경, 무결성 제약 조건 명시, 보안 정책 수립(사용자의 권한 설정 및 역할 관리), 저장 구조 및 접근 방법 정의, 백업(Backup)과 복구(Recovery) 절차 수립, 표준화 시행 등이 있습니다.
'IT' 카테고리의 다른 글
윈도우10 시스템 설정 알아보기 (1) | 2021.05.04 |
---|---|
모바일 운영체제의 종류 (0) | 2021.04.19 |
컴퓨터 운영체제 정보 관리 (0) | 2021.04.04 |