데이터베이스(database), 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임이다. 이러한 데이터들은 정보와는 다르며, 데이터가 대규모로 저장되어 있고 중복을 최소화하여 모여 있다고 할 수 있다. 그 예시로는 대학교에서 학생들의 신상정보, 수강과목, 성적 등을 기록하는 것과 개설과목 정보, 교수들의 신상정보, 담당 과목, 급여 정보를 유지하는 것이 있다. 그 외에도 항공기 예약 시스템, 마트에서의 바코드와 스캐너, 도서관 시스템, 병원에서의 환자 관리, 은행에서의 고객 관리 등 데이터베이스가 사용되는 사례는 너무나 다양하다.
이러한 데이터베이스를 정의하는 등의 여러 작업을 수행하는 소프트웨어가 있는데, 바로 DBMS(데이터베이스 관리 시스템)이다. 이는 데이터베이스 언어라고 불리는 프로그래밍 언어를 한 개 이상 제공하며, 그 중 SQL이 데이터베이스 언어 중에서 사실상 표준 역할을 수행하고 있다. 이러한 DBMS가 운영되기 위해서는 특정 환경을 조성해야 하는데, 컴퓨터 제조업자가 개발하여 해당 제조업체 컴퓨터 시스템에서만 돌아가는 DBMS(IBM 사의 IMS 등)도 존재하고, 독립적인 소프트웨어 제조업자가 개발하여 여러 시스템에서 돌아가는 DBMS(오라클 등)도 존재한다. 일반적으로 DBMS는 운영 체제와 밀접한 연관을 가진다.
1960년대에 최초로 출현한 이후 DBMS 분야는 빠르게 발전하고 있다. 발전 과정만 해도 계층 DBMS, 네트워크 DBMS, 관계 DBMS, 객체지향 DBMS, 객체관계 DBMS 등 짧은 역사 속에서 빠른 변화가 이루어지고 있다. 앞서 언급한 IBM 사에서 개발된 IMS가 최초로 상업적 성공을 거둔 계층 DBMS이었다. 계층 DBMS는 트리 기반을 구조로 하는 계층 데이터 모델을 사용하여, 어떤 유형의 응용에 대해서는 빠른 속도와 높은 효율성을 제공한다. 한편, 1960년대 초에 먼저 Charles Bachman이 Honeywell 사에서 네트워크 DBMS인 IDS를 개발하였다. 네트워크 DBMS는 레코드들이 노트로, 레코드들 사이의 관계가 간선으로 표현되는 그래프를 기반으로 하는 네트워크 데이터 모델을 사용하였다. 그러나 계층 DBMS와 네트워크 DBMS 모두 레코드들이 링크로 연결되어 있어 레코드 구조를 변경하는 데에 어려움이 따랐다.
이후 1970년에 E.F. Codd가 IBM 연구소에서 관계 데이터 모델을 제안하였고, 이 모델을 활용하여 캘리포니아 버클리대에서 진행된 Ingres와 IBM 연구소에서 진행된 System R이라는 두 프로젝트가 진행되었다. 관계 DBMS는 모델이 간단하여 이해하기 쉬우며, 사용자는 원하는 것(what)만 명시하고 데이터 위치와 접근방식은 DBMS가 결정하는 장점이 있었다. 이에 현재도 관계 데이터 모델을 둔 DBMS들이 많이 존재하는데, MS SQL Server, Oracle, Sybase, DB2, MySQL, Informix 등이 있다. 1980년대 후반에는 객체지향 프로그래밍 패러다임을 기반으로 한 객체 지향 DBMS가 개발되었는데, 데이터와 프로그램을 그룹화하고 복잡한 객체들을 이해하기 쉬웠으며 유지와 변경이 용이했다. ONTOS, OpenODB, GemStone, ObjectScore, Versant, O2 등이 이에 해당된다. 1990년대 후반에는 관계 DBMS에 객체 지향 개념을 통합한 객체 관계 DBMS가 개발되었는데, 이는 새로운 데이터 타입과 데이터베이스에 대한 연산들을 추가하는 기능을 제공하였다.
이렇게 DBMS의 데이터 모델이 발전함에 따라 프로그래밍 분량도 줄어드는 추세를 보였다. IMS, IDS에서 시작되어 MS SQL Server, Oracle, MySQL 등을 거쳐 ONTOS, OpenODB, UniSQL까지 DBMS가 발전함에 따라 많은 데이터베이스 상품과 데이터 모델이 출시되었다.
'데이터 [Data] > 데이터베이스론' 카테고리의 다른 글
데이터베이스론 보고서 6 : ER 모델이 개선된 것 + 각 특징 (0) | 2021.07.13 |
---|---|
데이터베이스론 보고서 5 : Join을 할 때 사용되는 제약조건 (0) | 2021.07.12 |
데이터베이스론 보고서 4 : 데이터 마이닝 (0) | 2021.07.11 |
데이터베이스론 보고서 3 : 후보 키(candidate key) (0) | 2021.07.10 |
데이터베이스론 보고서 2 : 외래 키가 릴레이션에서 참조하는 관계를 정리하기 (0) | 2021.07.09 |
댓글