[ 목차 ]
데이터베이스의 종류라고 하면 계층형(Hierarchical), 네트워크형(Network), 관계형(Relational)과 같은 초기 개념부터 다룰 수도 있는데요. 이는 데이터베이스의 원론적인 분류입니다. 이 세 가지 유형의 데이터베이스의 선택은 관계형 데이터베이스, 즉 rdbms로 결론이 났다고 볼 수 있습니다. 현재도 많은 rdbms가 상용 데이터베이스로 사용되고 있기 때문이죠. 그리고 이후에 더 다양한 데이터베이스의 종류가 나오고 발전해 왔습니다.
데이터베이스는 어떻게 달리졌나?
이 글에서는 데이터베이스의 그동안의 변천사를 알아보고, 어떤 needs에 의해 새로운 데이터베이스들이 탄생하게 되었는지 한 번에 살펴보겠습니다. 대부분은 관계형 데이터베이스만 익숙하실 테지만 요즘은 기업과 기관에서 다양한 데이터베이스를 목적에 맞게 활용하는 것이 대세입니다.
과거에는 대기업에 프로젝트를 하러 가면 '우리는 오라클만 씁니다.'라고 말하는 것이 약간은 자부심 같은 것이었습니다. 그만큼 비싸면서 가장 안정적인 Database였기 때문이죠. 최근에는 고객사에서 다양하게 활용하고 있는 것을 볼 수 있었는데요. MariaDB부터 카산드라, 하둡까지 여러 저장소에 데이터를 관리하고 활용하고 있습니다.
빅데이터가 대세가 되면서 로그 데이터, 센서 데이터까지 비싼 오라클에 보관할 필요가 없다는 판단이었습니다. 역시 시장은 합리적은 선택을 한다는 생각을 했습니다. 아래는 시간이 지남에 따라 어떤 데이터베이스가 출시되고 인기가 있었는지 하나로 그려 보았습니다. 그러면 연도별로 유행했던 데이터베이스를 하나하나 살펴보겠습니다.
1960~70년대
- 1960년대 : 데이터베이스계의 유명한 Edgar F. Codd 박사에 의해 관계 모델 제시
- 1974년 : IBM의 System R(최초의 작동하는 RDBMS) 개발, System R은 SQL 쿼리 언어, 데이터 무결성 제약 조건 및 ACID(원자성, 일관성, 격리, 지속성) 트랜잭션 개념을 소개
- 1979년 : Oracle Corporation 설립 - 래리 엘리슨(Larry Ellison), 밥 므린스키(Bob Miner), 엘프레드 레이슨(Ed Oates) 세 명의 엔지니어가 System R 프로젝트에서 영감을 받아 Oracle 개발
이 때는 데이터베이스 태동기라고 할 수 있습니다. 데이터 영역을 공부한 사람은 모두가 아는 E.F. Codd 박사 이야기를 해보겠습니다. Codd 박사가 발표한 논문에 관계형 데이터베이스를 관리하기 위한 수학적 원칙들을 소개하게 됩니다. 그래 Codd 박사를 관계형 데이터베이스에서 업적은 큽니다. IBM사에서 System R 프로젝트를 통해 그 원칙이 적용된 최초의 데이터베이스를 만들었습니다. 그 후 System R 프로젝트를 했던 세 사람의 엔지니어가 나와 오라클이라는 역사에 남는 Database를 만들게 된 것이죠.
1980년대
- 1983년 : IBM DB2 출시 - IBM의 메인프레임 컴퓨터 시스템용으로 개발됨
- 1989년 : Microsoft SQL Server 도입
윈도우 기반 생태계에서 데이터베이스 시장, 윈도우 서버에서 돌아가는 DB, Oracle 다음으로 높은 점유율
1980년대에는 RDBMS 기술이 상용화되기 시작된 시기입니다. 그전에는 연구개발에 가까웠다면 이때부터는 본격적으로 Oracle, IBM(DB2), Ingres 등 다양한 데이터베이스 제품들이 나오게 됩니다. 이때 SQL(Structured Query Language)은 RDBMS와 상호 작용하는 데 사용되는 표준 언어가 되었습니다.
1990년대
- 1995년 : MySQL 등 오픈소스 등장, 웹 애플리케이션 및 다른 가벼운 요구 사항에 적합하며, 무료 오픈 소스 DBMS로 개인이나 소규모 프로젝트에서 인기
- 1996년 : PostgreSQL 연이어 출시
- 1996년 : Sybase IQ DW용 데이터베이스 등장
1990년대에는 오라클이 거의 지배하는 시장에서 오픈소스라는 무료 데이터베이스에 대한 관심이 커진 시기입니다. 특히 개인들의 홈페이지나 소규모 판매 사이트(쇼핑몰)에서 오픈소스인 MySQL을 많이 사용하게 됩니다. 무료이면서 소규모라는 needs가 맞아떨어진 거죠.
한편 또 하나의 축으로 기업 및 기관들은 기존 업무 시스템에서 분석에 아쉬움이 생깁니다. 전사 데이터를 통합해서 대량의 데이터를 한꺼번에 분석하고 싶어 진 거죠. 그렇게 탄생한 것이 Data Warehouse입니다. 그리고 DW를 지원할 데이터베이스로 Sysbase IQ와 같은 컬럼 기반 데이터베이스를 채택하게 됩니다. 컬럼 기반으로 저장하고 압축하는 기술을 이용해 통계 데이터에 대한 검색 속도를 향상시켰습니다. 데이터웨어하우스(Data Warehouse)의 특징을 자세히 알고 싶다면 링크를 참고하시기 바랍니다.
2000년대
- 2007년 : NoSQL인 Hbase 출시
- 2008년 : Hadoop 0.18버전 릴리스
- 2008년 : Oracle Exadata 고성능 및 고가용성 솔루션 출시
- 2010년 : In-memory 데이터베이스 상용화(SAP HANA)
2000년에는 '빅데이터 처리를 어떻게 할 것인가?'에 관심이 커졌습니다. 그리고 대량의 데이터를 처리하기 위한 새로운 needs들이 생겼다. 첫 번째로 NoSQL 데이터베이스가 나오면서 전통적인 RDBMS의 지배력에 도전장을 내밀었죠. NoSQL은 SNS와 같은 데이터를 저장하기에 적절한 저장소로 자리매김했습니다. 특히 대규모 확장성과 유연성이 필요한 시나리오에서 유리했으니까요. NoSQL과 RDBMS의 비교를 알고 싶은면 링크를 참고하세요.
두 번째는 하둡이라는 거대한 공룡이 탄생했죠. 빅데이터 저장과 처리는 Hadoop이라는 공식이 생기고 하둡 엔지니어들의 몸값이 올라갔었습니다. 이에 오라클 진영에서는 Exadata라는 솔루션을 가지고 나왔죠. 비싸지만 성능만큼은 따라올자가 없었으니까요. 마지막으로 In-memory DB가 상용화되기 시작했습니다. 가장 유명한 데이터베이스가 SAP HANA였습니다.
2010년대
- 2010년대 : NewSQL 새로운 범주의 데이터베이스 등장
2010년대는 NewSQL라는 데이터베이스가 제시 되었습니다. RDBMS의 확장성 및 성능 제한 해결을 위한 목적이었죠. 또 ACID를 준수하는 트랜잭선 제공한다는 점에서 RDBMS의 특징도 가지고 있습니다. 실제로 NewSQL은 NoSQL의 장점과 RDBMS의 장점을 모두 채택하는 방식이었습니다.
그런데 두 개를 만족시키는 것은 각각 하나의 표족한 특성을 이길 수는 없었습니다. 시장에서 NewSQL(CockroachDB, NuoDB, VoltDB 등)을 사용하는 사이트를 거의 보지는 못했습니다. 흐름은 업무 용도에 맞는 저장소를 선택하는 방향으로 발전했습니다.
2010년대~현재
- 2009년 : Amazon RDS(Relational Database Service) 출시
- 2017년 : Azure Database for MySQL, PostgreSQL, MariaDB
클라우드가 나온 초기에 국내 반응은 싸늘했습니다. 대기업들이 자신의 데이터를 공용공간에 올려놓는 일은 말이 안 된다고 생각했죠. 하지만 언제부터인가 Cloud가 기업들 사이에 대세가 되었습니다. 아마도 보안성을 강화하면서 사용처가 늘어났고 결국 고객들이 편리함에 설득당했기 때문입니다. 사용자 입장에서 데이터베이스를 손쉽게 배포, 운영 및 확장할 수 있었으고, 데이터베이스 관리 측면은 심플하면서 안정성을 높일 수 있었습니다.
심지어 사용자가 DB를 백업, 복원, 패치 및 확장까지 간편하게 수행할 수 있게 돼버렸죠. 이런 이유로 현직 DBA들에게 위협이 다가왔습니다. 전문성이 없어도 대부분 UI를 이용하여 손쉽게 관리할 수 있기 때문이죠. 그리고 하둡 솔루션이 Cloudera나 MapR에도 영업에 상당한 타격이 되었습니다. 결국 위기에 몰린 Cloudera는 AWS나 Azure의 생태계에 들어가 협업하는 방식을 선택합니다.
마무리
데이터베이스 변천사를 통해 살펴본 것 처럼 이제 데이터베이스는 사용 사례와 요구 사항을 맞게 다양한 특징과 기능을 제공하고 있습니다. 데이터베이스 선택은 데이터의 구조, 규모, 처리 방식 및 비즈니스 목표에 따라 달려져야 합니다. 기술은 계속해서 진보하고 있으며, 앞으로는 분산 레지스터, 블록체인과 같은 신기술과의 통합, 보안 강화, 빅데이터 분석 및 실시간 처리의 향상이 예상됩니다. 다음 포스팅부터는 각각의 데이터베이스의 특징과 장단점, 배경들에 대해 알아보도록 하겠습니다.
* 함께 읽으면 좋은 글
'데이터베이스' 카테고리의 다른 글
MySQL 아키텍처 및 특징 - Scale Out, Sharding(샤딩) (0) | 2023.11.08 |
---|---|
오라클(Oracle) 관계형 DB 특징, MS SQL Server (0) | 2023.11.07 |
데이터베이스 아키텍처 구성 요소 및 작동 원리 (0) | 2023.11.03 |
데이터베이스(Database)는 어떤 특징이 있는가? (0) | 2023.11.02 |
데이터 표준화 - 표준 코드, 코드 유형, 코드 에러 사례 (0) | 2023.10.31 |