관계형 데이터베이스 관리 시스템
관계형 데이터베이스 관리 시스템(RDBMS)은 행과 열로 된 2차원의 표로 데이터를 표현하는 데이터베이스 관리 시스템(DBMS)이다. 정형화된 데이터를 분석하기 위해 사용한다. RDBMS(알디비엠에스)라고 한다. RDBMS는 Relational Database Management System의 약자이다.
개요
관계형 데이터베이스 관리 시스템(relational database management system, RDBMS)은 IBM 산호세 연구소의 에드거 F. 커드가 도입한 관계형 모델을 기반으로 하는 데이터베이스 관리 시스템이다. 현재 사용되는 대부분의 데이터베이스는 관계형 데이터베이스 모델을 기반으로 한다. 1980년대 이래로 RDBMS는 재무기록, 제조 및 물류 정보, 인사 데이터 등의 정보를 저장하는데 가장 많이 사용되는 스토리지다. 과거 계층형 데이터베이스나 네트워크 데이터베이스에 비해 사용 및 이해가 쉬워 관계형 데이터베이스가 이들을 많이 대체했다. 하지만 요즘은 XML 데이터베이스나 객체지향적 모델과 관계형 모델의 불일치 문제를 해결하기 위해 대두된 객체 지향 데이터베이스와 같은 새로운 경쟁자들이 대두되고 있다.[1]
역사
- 60년 이전
컴퓨터가 개발된 초기 시대에는 데이터는 종이 테이프(Paper tape), 천공 카드(Punched card), 자기 테이프(magnetic tape)와 같은 순차적으로 정보를 저장하는 미디어 장비에 저장하였다. 그 결과 초반 정보 관리를 위한 노력은 파일의 구조와 정렬을 위한 알고리즘 개발을 중심으로 이루어졌다.
- 1960년대 초반
GE(General Electric)의 Bachman에 의해 개발된 Integrated Data Store(IDS)이라는 최초의 범용 데이터베이스 관리 시스템이 소개되어 많은 인기를 끌었다. IDS의 개발은 CODASYL(the Conference on Data Systems Language)의 표준 데이터 모델 개발을 위한 주요 원동력이 되었다.
- 1960년대 중반
디스크와 메모리 개발에 의한 용량 증가와 가격 하락은 많은 양의 데이터 저장과 최적화된 데이터 접근을 가능하게 하였으며, IBM은 대규모 데이터베이스에 데이터 통신 기능이 추가된 정보관리시스템(IMS)를 출시하였다. IMS는 아메리카 항공과 협력하여 항공 예약 시스템 SABRE 개발에 사용되었다. IMS는 네트워크 기반 설계로 많은 사용자들의 동시 접속을 지원하였다.
- 1970년대 초중반
대표 컴퓨터 생산업체에서 각 업체별 메인 데이터베이스 시스템을 생산해 공급하였으며, 주요 학술 연구 영역에서 데이터베이스 시스템 연구가 활발하게 이루어졌다. 에드거 F 커드(E.F Codd)는 모든 데이터베이스 이론의 기초가 되는 관계형 모델(Relational Model)을 발표하였으며, 1975년 크리소토퍼 J 데이트(C.J Date)에 의해 최초로 관계형 데이터베이스 서적이 출판되었다. 같은 시기 피터 첸(Peter Chen)은 객체-관계 모델 데이터 설명을 다이어그램으로 표현하는 방법을 제안하였다.
- 1970년대 후반
관계형 모델은 주요 산업과 학술 연구 활동의 주제가 되었으며, IBM의 시스템 R 그룹에서 관계형 데이터베이스가 성능저하 없이 응용프로그램의 요청을 유동적으로 처리할 수 있다는 것을 보여주었고, 효과적인 클라이언트-서버 모델, 동시 접속 사용자 와 대용량 데이터 처리, 질의어 최적화에 의한 성공적인 성능향상을 시연해 보여주었다.
- 1980년대 초반
오라클(Oracle), 인그레스(Ingres), 사이베이스(Sybase), 인포믹스(Informix)등 관계형 데이터베이스 시스템을 개발하는 소프트웨어 회사들이 아주 많아 졌으며, 성능저하 없이 하드웨어 독립적인 데이터베이스 시스템 개발이 가능하다는 것을 보여주었다. 80년대는 PC(Personal Computer)의 대중화가 본격화 되면서 DBase, Paradox 같은 PC용 데이터베이스 시스템이 개발되었다.
- 1980년대
1985년 최초의 표준 SQL 언어가 발표되었다. 데이터 정의어(DDL), 데이터 조작어(DML)의 표준화는 신생 데이터베이스 소프트웨어 산업의 신뢰를 증대시켰다.
- 1990 ~ 2000년대
데이터베이스와 관계형 데이터베이스가 동의어로 느껴질 정도로 모든 분야에서 관계형 데이터베이스가 유일무이하게 사용되면서 오라클의 경우 세계에서 두 번째로 큰 소프트웨어 업체로 급부상하게 되었다. 데이터베이스에 대한 산업분야와 학문분야에서의 방대하고 활발한 연구는 누구도 예상하지 못할 정도로 품질과 관계형 모델의 응용력을 향상시켰다.
- 2000년대 중반 이후
객체지향 데이터베이스, 분산 데이터베이스, 공간과 시간정보를 저장하기 위한 데이터베이스 등에 대한 활발한 연구가 계속 진행되고 있으며, 인터넷의 성장과 이동과 무선 장비의 발전으로 새로운 이슈들을 해결하기 위한 노력이 계속되고 있다.[2]
특징
- 중복 제어
동일한 데이터가 여러 위치에 중복 저장되는 현상을 방지한다. 데이터가 중복되면, 저장 공간이 낭비되고 데이터의 일관성이 깨질 수 있다.
- 접근 통제
DBMS는 사용자마다 다양한 권한을 부여할 수 있으며, 권한에 따라 데이터에 대한 접근을 제어할 수 있다.
- 인터페이스 제공
DBMS는 사용자에게 SQL 및 CLI, GUI 등 다양한 인터페이스를 제공한다.
- 관계 표현
서로 다른 데이터간의 다양한 관계를 표현할 수 있는 기능을 제공한다.
- 샤딩/파티셔닝
구조 최적화를 위해 작은 단위로 쪼개는 기능을 제공한다.
- 무결성 제약 조건
무결성에 관한 제약 조건을 정의/검사하는 기능을 제공한다. 데이터베이스는 반드시 무결성 제약조건을 통과한 데이터만을 저장하고 있어야 한다.[3]
활용
- DBMS의 발전 동향
대략 1990년 중반기를 전후하여 오픈 시스템인 클라이언트 서버 환경으로 전환되면서 그때까지 활용하였던 파일 시스템과 계층형 데이터베이스가 관계형 데이터베이스로 빠르게 전환되었다. 그리고 2000년 이후에는 클라이언트 서버 환경에서 웹 환경의 시스템으로 시스템의 구성 흐름과 개발 방법론이 바뀌어 적용되는 것이 일반화되었으나 DBMS의 구조는 객체지향형 DBMS로 전환되지 않고 역시 4세대 DBMS인 관계형 DBMS를 여전히 사용하고 있다. 객체지향 파라다임이 등장하면서 기존 관계형 DBMS의 공급업체들도 시장을 점유하기 위해 관계형 DBMS에 객체지향의 기능을 지원하는 ORDBMS(객체관계형 DBMS)로 전환하였다. 그러나 C나 코볼(COBOL)과 같은 구조적 개발 언어를 이용하여 시스템을 구성하는 세대에서 C++과 자바(JAVA)와 같은 객체지향 개발 언어로 시스템을 구성하는 것이 일반화된 반면, 데이터베이스는 ORDMS를 많이 사용하지만 기능은 대부분 RDBMS를 사용하고 있는 것이 2000년 초기 정보 기술의 추세다. 객체지향 기반의 데이터베이스는 XML과 지리정보시스템인 GIS 시스템에서 주로 쓰이고 있으며 일반적인 기업의 업무를 처리하는 단위에서는 대부분 관계형 데이터베이스를 활용하여 정보 시스템을 구성하고 있다. 국내에서 사용하는 DBMS는 우리가 흔히 알고 있는 오라클, SQL 서버, My SQL을 사용하고 있다. 일반적으로 개인적 학습과 소호몰과 같은 작은 단위에서는 My SQL을 많이 사용하고 학교, 기업, 관공서에서는 대용량 데이터를 처리하기 위한 엔터프라이즈급의 데이터베이스인 오라클, SQL 서버, DB2를 많이 이용하고 있다. 다음은 모건 스텐리에서 조사한 관계형 DBMS의 시장 점유율 현황이다. 2001년 시점을 기준으로 오라클이 58.7%로 가장 많은 시장점유율을 나타내고 있고 다음은 SQL 서버가 31.6%을 점유하고 있다. IBM의 제품군이 DB2와 인포믹스(Informix)을 통합한다면 두 번째다.[4]
종류
- MS-SQL Server / Microsoft
마이크로소프트 (Microsoft)사의 대표적인 관계형 데이터베이스 시스템이다. 1989년에 최초로 발표되었으며, 역시 MS제품군이기 때문에 window server에서만 구동이 되고 C#과는 가장 높은 호환성을 자랑하는 DBMS이다. 성능에 따라 엔터프라이즈 에디션(enterprise edition) 비즈니스 인텔리젼스 에디션(business intelligence edition) 스탠다드 에디션(standard edition) 익스프레스 에디션(express edition)으로 나뉘게 된다.
- MySQL / Oracle (구 Sun)
썬 마이크로시스템즈에서 개발한 관계형 데이터베이스 시스템이다. 유닉스나 리눅스, 윈도우 운영 체제 등에서 사용할 수 있으며 무엇보다 오픈소스의 장점으로 많은 기업에서 홈 페이지나 쇼핑몰 등 일반적인 웹 개발에 널리 이용되고 있다.2008년 SUN에 인수되었으며, 2009년 Oracle에서 SUN을 인수함에 따라 자연스럽게 Oracle의 소유가 되었다. 아직 오픈소스를 유지하고 있지만, 오라클에 비해 사용자 편의를 위한 기능, 사용자 실수 또는 재해에 대비한 기능, 성능향상등,, 기능적인 한계를 보이고 있다. 다만 오픈소스이기 때문에 현재 많은 기업에서 활용하고 있다.
- Maria DB / MariaDB 재단
마리아 DB는 2009년에 발표되었으며 비교적 역사가 짧다. 탄생배경은 My-SQL이 오라클에 인수되면서 시작이 되었다고 한다. 오라클에서 My-SQL을 인수,, 아무래도 무료버전인 My-SQL보다 주력 상품인 Oracle을 팔아야 하는 입장에서 오픈소스인 My-SQL의 기능을 감소시키게 되었다. 이에 My-SQL을 개발한 마이클 몬티 와이드니어스 (Michael Monty Widenius)는 오라클과의 의견 충돌로 회사를 나와 새롭게 MariaDB를 개발하였다고 한다. My-SQL과 완벽하게 호환되며 기본적인 명령어나 사용방법까지 동일하기 때문에 개발자 또는 DBA 가 쉽게 접할 수 있으며, My-SQL에 비해 성능적인 부분에서는 70%나 향상이 되었기 때문에 현재 Maria DB를 활용하는 기업들이 많이 늘어나는 추세이다.
- DB2 / IBM
대형화된 데이터 관리를 목적으로 만들어진 IBM의 관계형 데이터베이스 관리 시스템이다. 1983년에 발표되었으며, 사용자들이 서로 관계된 여러 개의 데이터베이스를 동시에 접근할 수 있다. DB2의 특징은 각 워크로드(업무)의 특성에 맞게 시스템이 최적화될 수 있으며, 자가 최적화 , 자가 치유, 자가 구성 , 워크로드 관리, 확장된 자동화 기능 등 다양한 기능을 구현할 수 있다. 또한 데이터 압축 기술이 좋기 때문에 대형화된 데이터를 다루는데 최적화 될 수 있다는 장점이 있다. 때문에 많은 중견기업 , 대기업 권에서 DB2를 활용하고 있습니다.
- Sybase / Sybase
사이베이스 사에서 개발, 1984년에 공개한 관계형 데이터베이스 시스템, 현재 (2010년)는 SAP에서 인수를 했다. 2011년에는 사이베이스 IQ 15.3이 출시 되어 컬럼 단위 데이터 처리로 I/O 속도를 90%까지 향상시켰으며, 데이터 압축 저장, 스토리지 공간의 활용도를 높이게 되었다. 또한 오라클에 비해 비교적 저렴하기 때문에 많은 기업에서 관심을 가지고 있는 시스템이지만, 아직까지 국내에서는 오라클에 비해 밀리는 추세이다.[5]
문제점과 대안
DBMS는 모든 종류의 데이터를 관리하는 최선의 방법이 아니다. 복잡한 DBMS일수록 트랜잭션, ACID 등의 많은 컨셉을 지원하기 위한 오버헤드가 발생하게 된다. 때문에 휴대폰 등의 임베디드 기기 같은 단순한 데이터베이스(예를 들어 전화번호부 등)의 경우는 다중사용자나 회복 기능 등을 뺀 가벼운 DBMS를 만들어 사용하기도 한다. 대다수의 DBMS는 비교적 크기가 작은 레코드를 수백만개씩 저장하는 것에 특화되어있다. 반대로 하나의 레코드가 몇십MB에서 GB급인 경우 데이터를 DB에 저장하면 쿼리 시 오버헤드가 클 수 있다. 이 경우 원래 파일은 파일 시스템에 직접 저장하거나 파일시스템 스타일의 클라우드(Amazon S3 등)를 이용하고 그 경로만 DB에 저장하는게 바람직하다. 실시간으로 데이터 처리가 필요한 경우(예를 들어 군용, 항공/우주용 등)에도 일반적으로 복잡한 기능을 제공하는 DBMS가 적합하지 않다. 다만 통신망, 금융권 등에서의 실시간 데이터 처리 개념에서는 오라클의 타임스텐이나 알티베이스의 ALTIBASE HDB와 같은 인 메모리 데이터베이스를 실시간 데이터 처리가 필요한 구간에 사용하고, 이력 데이터와 같은 안정성이 중요시되는 데이터는 back-end 구간에 전통적인 디스크 기반 DBMS를 사용하는 방식으로 시스템을 구성한다. 검색 엔진 등 극단적으로 데이터가 크며, READ/WRITE 간의 격차가 큰 경우에도 일반적인 DBMS를 사용하지 않는다. 이러한 경우는 MM DBMS와 NoSQL 기술을 혼용하여 서비스를 구축한다. NoSQL 기술이 응용된 사례가 페이스북의 쪽지 기능이 있다.[6]
각주
- ↑ 〈관계형 데이터베이스 관리 시스템〉, 《위키백과》
- ↑ yang4851, 〈관계형 데이터베이스〉 , 《구글》 , 2016-09-06
- ↑ 〈DBMS〉 , 《나무위키》 ,
- ↑ 한빛미디어〈DBMS발전 동향〉 , 《한빛출판네트워크》 , 2004-02-18
- ↑ 에이콘아카데미, 〈데이터베이스의 종류〉 , 《네이버블로그》 , 2017-06-29
- ↑ 〈데이터베이스〉 , 《나무위키》 ,
참고자료
- yang4851, 〈관계형 데이터베이스〉, 《구글》, 2016-09-06
- 〈DBMS〉,《나무위키》
- 에이콘아카데미, 〈데이터베이스의 종류〉 , 《네이버블로그》 , 2017-06-29
- 〈관계형 데이터베이스 관리 시스템〉, 《위키백과》
- 〈데이터베이스〉, 《나무위키》
- 한빛미디어〈DBMS발전 동향〉 , 《한빛출판네트워크》 , 2004-02-18
같이 보기
- 데이터베이스 관리 시스템(DBMS)
- 노에스큐엘(NoSQL)