본문내용
1. 데이터베이스 관리 시스템의 정의와 특징
1.1. 데이터베이스 관리 시스템의 정의
데이터베이스 관리 시스템(DBMS)은 파일 시스템이 가진 데이터 중복과 데이터 종속 문제를 해결하기 위해 제시된 소프트웨어이다. 데이터베이스 관리 시스템은 조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 이에 대한 관리를 전담한다. 데이터베이스 관리 시스템은 응용 프로그램을 대신하여 데이터베이스에 존재하는 데이터의 검색, 수정, 삭제, 삽입을 가능하게 하고, 모든 응용 프로그램이 데이터베이스를 공유할 수 있게 한다. 데이터베이스를 생성하고 접근하며 관리하는 일은 데이터베이스 관리 시스템이 모두 담당한다. 사용자는 직접 또는 응용 프로그램을 통해 원하는 데이터가 무엇이며, 어떤 처리를 원하는지 데이터베이스 관리 시스템에 요청하면 된다. 데이터베이스와 관련한 작업은 데이터베이스 관리 시스템이 수행한 후 그 결과만 응용 프로그램을 통해 사용자에게 전달해준다. 이를 통해 사용자나 응용 프로그램은 데이터베이스의 물리적 저장 구조나 데이터 접근 및 처리 방법 등을 자세히 알 필요가 없어 부담이 줄어들고, 데이터베이스 구조나 접근 방법 등이 변경되어도 사용자가 미리 알거나 응용 프로그램을 변경할 필요가 없어 데이터 독립성이 확보된다.
1.2. 데이터베이스 관리 시스템의 필수 기능
데이터베이스 관리 시스템의 필수 기능은 정의 기능, 조작 기능, 제어 기능 세 가지로 정리할 수 있다""
첫째, 정의 기능은 데이터베이스 관리 시스템이 데이터의 형태, 구조, 데이터베이스의 저장에 관한 내용을 정의하여 다양한 응용 프로그램과 데이터베이스가 서로 인터페이스를 할 수 있는 방법을 제공하는 기능이다""
둘째, 조작 기능은 사용자와 데이터베이스 사이의 인터페이스를 위한 수단을 제공한다""즉, 사용자의 요구에 따라 체계적으로 데이터베이스에 접근하고 조작하도록 하는 기능을 말한다""데이터의 검색, 갱신, 삽입, 삭제 등의 DB 연산을 지원하는 도구를 통해 구현한다""
셋째, 제어 기능은 공용 목적으로 관리되는 데이터베이스의 내용에 대해 항상 무결성이 파괴되지 않도록 하며 정확성과 안전성을 유지하는 기능을 말한다""정확성은 데이터 공용의 기본적인 가정이며, 관리의 제약조건이 된다""
1.3. 데이터베이스 관리 시스템의 발전과정
데이터베이스 관리 시스템의 발전과정은 크게 4세대로 나눌 수 있다"
첫 번째 세대는 계층형 DBMS(Hierarchical DBMS)이다. 계층형 DBMS는 트리 구조를 기반으로 하는 계층형 데이터 모델을 사용하며, 데이터는 트리 형태로 각 데이터 요소(개체)들이 상하관계를 나타내는 링크로 구성된다. 이는 현실 세계에서 하나의 조직이 여러 구성원으로 이루어지는 형태를 표현하기에 적합하지만, 개체 간의 관계가 변경되거나 추가, 삭제되면 기존 구조를 변경하기 어렵다는 단점이 있다. 대표적인 계층형 DBMS로는 IMS(Information Management System)가 있다.
두 번째 세대는 네트워크 DBMS이다. 네트워크 DBMS는 데이터베이스를 노드와 간선을 이용한 그래프 형태로 구성하는 데이터 모델을 사용한다. 간선을 이용해 데이터 간의 관계를 표현하기 때문에 데이터베이스의 구조가 복잡하고 변경하기 어렵다는 단점이 있다. 대표적인 네트워크 DBMS로는 IDS(Integrated Data Store)가 있다.
세 번째 세대는 관계 DBMS이다. 관계 DBMS는 데이터베이스를 테이블 형태로 구성하는 관계 데이터 모델을 사용한다. 관계 데이터 모델은 데이터베이스를 단순하고 이해하기 쉬운 구조로 구성한다는 장점이 있어, 1980년대 초반부터 많이 개발되었고 관련 이론적 연구도 활발히 진행되었다. 관계 DBMS는 현재까지도 널리 사용되는 데이터베이스 관리 시스템이며, 대표적인 관계 DBMS로는 오라클(Oracle), 액세스(Access), MySQL, MS SQL 서버(MS SQL Server), 인포믹스(Informix) 등이 있다.
네 번째 세대는 객체지향 DBMS와 객체관계 DBMS이다. 1980년대 후반부터 등장한 객체지향 DBMS는 객체지향 프로그래밍 개념에서 도입한 객체를 이용해 데이터베이스를 구성하는 객체지향 데이터 모델을 사용한다. 더 복잡한 응용 분야의 데이터를 관리하려는 사용자 요구를 충족시키기 위해 제안되었으며, 새로운 유형의 데이터 저장과 데이터의 복잡한 분석 및 처리를 지원한다. 대표적인 객체지향 DBMS로는 온투스(ONTOS), 오투(O2), 젬스톤(GemStone) 등이 있다. 현재는 단순하고 이해하기 쉬운 구조인 관계 DBMS가 일반적으로 많이 사용되고 있지만, 객체관계 DBMS의 사용도 증가하고 있어 2세대와 3세대 DBMS가 공존하고 있다"
1.4. 데이터베이스 관리 시스템(DBMS)의 종류 및 특징
최근에는 구축하려는 데이터베이스의 규모와 적용 분야, 구축 비용 등의 요소에 따라 다양한 수준의 DBMS가 출시되고 있다. 대표적인 몇 가지를 살펴보면 다음과 같다.
먼저 마이크로소프트의 SQL 서버와 액세스를 들 수 있다. SQL 서버는 Windows NT 플랫폼에서 최적의 성능을 발휘하는 데이터베이스로, 저렴한 제품 가격 덕분에 중소기업에서 많이 사용된다. 한편 액세스는 윈도우 플랫폼으로 중소 규모의 데이터베이스를 위한 데스크톱용 DBMS이다.
IBM의 인포믹스와 DB2도 주목할 만한 DBMS이다. 인포믹스는 성능이 뛰어나며 병렬 처리를 위한 멀티스레드를 지원한다. DB2는 다수의 사용자가 동시에 접근할 수 있는 대형 데이터베이스 관리 시스템이다.
오라클은 관계형 DBMS를 최초로 상용화한 제품으로, 국내뿐만 아니라 전 세계적으로 가장 많이 활용되고 있다. 유닉스, 리눅스, 윈도우 등의 대부분의 OS를 지원하고 있으며, SQL Developer 툴을 통해 편리하게 사용할 수 있는 장점이 있다. 또한 Oracle Real Application Clusters의 기능으로 데이터베이스 관리에 있어서 자원의 확장성과 장애에 대한 대처가 유연하다.
MySQL은 Oracle에 비해 저렴한 가격에 이용할 수 있다. Oracle이 큰 기업 고객을 위한 DBMS라면 MySQL은 웹사이트나 단순한 애플리케이션에 많이 사용된다. MySQL 또한 MySQL Workbanch라는 툴을 제공하며 사용하기가 쉽다.
그 외에도 일본과 북미에서 높은 인지도와 많은 인기를 얻고 있는 PostgreSQL은 기능과 성능면에서 훌륭한 관계형 DBMS이다. PostgreSQL은 엔터프라이즈급 DBMS의 기능과 차세대 DBMS에서나 볼 수 있을 법한 많은 기능을 제공하는 오픈소스 DBMS이다.
모바일 DBMS로는 SQLite가 대표적이다. SQLite는 내장형, 소형화, 설치성 등의 특징을 갖는다. 또한 SNS, 클라우드 서비스 등으로 관리할 데이터의 양이 급격히 증가하면서 실시간 데이터 처리에 대한 필요성이 커져 오라클의 DBaaS와 같은 클라우드 데이터베이스 시스템도 관심을 받고 있다.
이에 따라 빠른 처리 속도를 강점으로 하는 인메모리 데이터베이스 방식(데이터베이스가 컴퓨터 메모리에 설치되어 동작)이 데이터베이스 응...