데이터로부터 데이터베이스 그리고 SQL까지 어떤 과정을 거쳐 왔는가를 흥미위주로 간단히 정리해 보았습니다. 결론이 있는 글은 아닙니다. 소설을 읽듯이 가벼운 마음으로 읽으시면 좋을 것 같습니다^^
데이터
데이터(data)란 무엇일까요? 쉽게 대답하기 어려운 질문입니다. 이럴 때 위키피디아(wikipedia)가 필요합니다. 위키피디아는 데이터를 다음과 같이 정의하고 있습니다.
“Data is any sequence of one or more symbols given meaning by specific act(s) of interpretation.” |
간단히 해석해보면 데이터는 의미를 해석할 수 있는 상징입니다. 그렇다면 수메르 문명의 쐐기 문자로 기록된 점토판을 데이터라고 할 수 있을까요? 쐐기 문자는 의미를 해석할 수 있으니 상징이니 데이터로 볼 수 있을 것입니다.
일반적으로 상징은 인간만이 기록할 수 있습니다. 그렇다면 광의의 개념으로 인간이 기록한 모든 것을 데이터로 볼 수 있을 것입니다. 한발 더 나가 최근 이슈가 되고 있는 사물 인터넷(Internet of Things, IOT)으로 개념을 확장해보면 데이터란 인간과 인간에 의해 만들어진 사물이 기록한 모든 것으로 말할 수 있습니다.
위키피디아는 데이터를 다음과 같이 정의하기도 합니다.
“Data is a set of values of qualitative or quantitative variables.” |
정의에 따르면 데이터는 기록되는 형태에 따라 정량적(qualitative) 데이터와 정성적(quantitative) 데이터로 구분할 수 있습니다. 정량적 데이터는 숫자와 같이 양으로 측정할 수 있는 데이터를 말하는 반면 정성적 데이터는 양으로 측정할 수 없는 텍스트나 이미지 등을 말합니다.
정량적 데이터는 구조화되어 저장되므로 정형 데이터(structured data)라고 부르며 반대로 정성적 데이터를 비정형 데이터(unstructured data)라고 부르기도 합니다. 이런 이유로 정량적 데이터 분석을 정형 데이터 분석, 정성적 데이터 분석을 비정형 데이터 분석이라고 합니다. 일반적으로 전통적인 데이터 분석은 정형 데이터 분석을 말합니다.
그렇다면 최근 이슈가 되고 있는 빅데이터(big data)는 무엇일까요? 필자는 빅데이터를 기술과 비용의 문제로 불가능했던 대량의 정형 데이터 분석과 비정형 데이터 분석을 위한 기술을 총칭하는 개념으로 이해하고 있습니다. 중요한 점은 빅데이터가 기존 데이터 관련 기술을 대체하는 개념이 아니라 상호보완적인 개념에 가깝다는 것입니다. 빅데이터 분석이 각광받더라도 기존의 정형 데이터 분석이 사라지는 것은 아닙니다.
정보
데이터는 자료로 해석될 수 있으며 이와 유사한 개념으로 정보(information), 지식(knowledge), 지혜(wisdom) 등이 있습니다. 이 개념들은 계층적인 관계로 설명할 수 있습니다. 즉, 자료를 분석하여 정보를 만들고 정보를 해석함으로써 지식을 축적하고 결국 축적된 지식으로부터 지혜를 얻는 과정으로 데이터가 변화하게 됩니다.
IT는 정보 기술(information technology)의 약어입니다. 말 그대로 정보를 다루는 기술로 볼 수 있습니다. 정보를 협의의 개념으로 한정해보면 필자는 IT를 데이터를 분석하여 정보를 만들어 내는 기술로도 볼 수 있지 않을까 생각합니다. 최근에는 데이터 분석과 기계 학습 등을 통해 정보를 넘어 지식과 지혜 만들어내는 단계까지 IT의 영역을 확장되고 있습니다. 최근의 알파고(AlphaGo)가 좋은 사례이지 않을까요?
데이터베이스
데이터베이스(database)란 무엇일까요? 데이터베이스라는 용어가 언제부터 시작되었는지 분명하지는 않지만 미국 SDC 사(Development Corporation)가 1963년 6월에 개최한 “Development and Management of Computer-center Data Bases”라는 심포지엄 제목에서 최초로 사용되었다는 설이 가장 유력합니다.
다시 위키피디아를 찾아보면 데이터베이스를 다음과 같이 정의하고 있습니다.
“A database is an organized collection of data.” |
해석하자면 데이터베이스는 데이터를 정리하여 모아둔 것입니다. 그렇다면 왜 데이터를 정리하여 모아두어야 할까요? 관리상의 이유도 있겠지만 데이터를 분석하여 정보를 만들기 위한 이유가 가장 클 것입니다.
데이터베이스에 데이터를 정리하여 저장하기 위한 방법을 데이터베이스 모델이라고 합니다. 초기에는 계층형 모델(hierarchical model)과 네트워크 모델(network model)을 사용되었지만 현재는 관계형 모델(relational model)이 가장 폭넓게 사용되고 있습니다.
관계형 모델은 IBM 사의 에드거 프랭크 커드(E.F. Codd) 박사가 1970년 6월에 발표한 “Relational Model of Data for Large Shared Data Banks”이라는 논문에서 소개되었습니다. 관계형 모델에서는 데이터를 튜플(tuples)의 집합인 릴레이션(relations)에 저장합니다. 튜플은 속성(attribute)으로 구성되며 릴레이션은 가로와 세로로 이루어진 2차원의 형태로 이루어져 있습니다.
관계형 모델을 채택한 데이터베이스를 관계형 데이터베이스(relational database)라고 합니다. 관계형 데이터베이스 이후에도 1990년대에 객체지향 프로그래밍을 지원하기 위한 객체-지향 데이터베이스 (object-oriented database)가 발표되었으나 시장의 호응을 얻지 못했고 관계형 데이터베이스를 확장한 객체-관계형 DB(object-relational database)가 사용되고 있습니다.
최근에는 NoSQL 데이터베이스(Not only SQL database)도 많이 활용되고 있습니다. NoSQL 데이터베이스는 전통적인 관계형 데이터베이스보다 느슨한 일관성 모델을 채택하고 있으며 빅데이터와 실시간 웹 애플리케이션 분야에서 폭넓게 사용되고 있습니다.
데이터베이스 관리 시스템
DB는 초기에 OS 파일로 관리되었으나 데이터 증가와 효율적인 관리를 위해 데이터베이스 관리 시스템(database management system, DBMS)이 만들어졌습니다. 최초의 DBMS는 1964년에 General Electric사가 계층형 모델을 기반으로 만든 IDS(Integrated Data Store)입니다. 이후 1966년에 IBM사에서 최초의 네트워크 DBMS인 IMS(Information Management System)을 출시했습니다.
최초로 개발된 RDBMS는 IBM 사의 System R입니다. System R은 1974년에 개발되었으나 이미 출시되어 판매 중이었던 IMS로 인하여 1981년이 되어서야 SQL/SD라는 제품으로 출시되었습니다. 이에 앞서 1979년에 오라클 사의 전신인 RSI 사가 Oracle V2를 출시하여 최초의 상용 RDBMS의 타이틀을 차지했습니다. IBM이 System R을 먼저 출시했다면 오라클이 득세하고 있는 현재의 DBMS 시장 상황이 사뭇 달라지지 않았을까라는 생각이 듭니다.
현재 시장에는 오라클 외에도 MySQL, Microsoft SQL Server, PostgreSQL, DB2, SQLLite 등의 수많은 RDBMS 제품이 출시되어 있으며 MongoDB, Cassandra, Redis 등의 NoSQL DBMS도 저변을 확대하고 있습니다.
오라클
오라클(Oracle)은 오라클(ORACLE) 사에서 개발한 ORDBMS 제품입니다. 회사명이 제품명과 같은 것을 보면 오라클 사에 있어 오라클 데이터베이스가 얼마나 큰 의미를 차지하는지를 알 수 있습니다. 실제로 오라클 데이터베이스는 전세계 DBMS 시장에서 점유율 1위 자리를 고수하고 있습니다. 오라클 사는 마이크로소프트 다음으로 거대한 소프트웨어 회사입니다.
오라클의 사전적 의미는 예언자입니다. 그래서인지 영화 매트릭스에 등장하는 예언자 흑인 할머니의 이름도 오라클입니다. 그렇다면 왜 데이터베이스 제품명을 오라클로 했을까요? 오라클 설립자인 래리 엘리슨(Larry Ellison)은 Ampex 사 시절에 CIA의 데이터베이스 프로젝트에 참가했었고 그 프로젝트의 코드네임이 오라클이었다고 합니다. CIA는 데이터에서 무엇을 기대했을지 사뭇 궁금해집니다.
창업자인 래리 엘리슨도 매우 흥미로운 인물입니다 영화 아이언맨의 주인공인 토니 스타크가 래리 엘리슨의 이미지를 차용한 것으로 유명하며 아이언맨 2에 카메오로 출연하기도 했습니다. 실제로도 래리 앨리슨은는 전세계적으로 가장 성공한 공돌이(?) 중 한 명입니다 Forbes 지가 선정한 ‘2015 Tech Billionaires’에서 빌 게이츠에 이어 2위를 차지하기도 했지요.
SQL
SQL(Structured Query Language)은 1970년 초 IBM 사의 도널드 D. 챔벌린(Donald D. Chamberlin)과 레이먼드 F. 보이스(Raymond F. Boyce)에 의해 개발되었습니다. System R의 데이터를 관리하기 위해 개발된 이 언어의 원래 이름은 SEQUEL(Structured English Query Language)이었지만 SEQUEL은 영국 항공사인 Hawker Siddeley 사의 상표였기에 SQL로 이름이 바뀌게 되었습니다.
흥미로운 사실은 관계형 모델을 창시한 코드 박사는 1971년에 발표한 “A Data Base Sublanguage Founded on the Relational Calculus”라는 논문에서 관계형 데이터베이스의 표준 언어로 Alpha 언어를 제안했다는 것이다. SQL에 불만은 가지고 있었던 코드 박사는 IBM을 떠나게 됩니다.
오라클 역시 데이터 관리를 위한 언어로 SQL을 개발하였습니다. 이후 SQL은 RDBMS의 표준 언어로 채택되어 현재까지 사용되고 있습니다. SQL은 RDBMS 제작사에 따라 별도로 구현되었기 때문에 ANSI에서 표준을 제정했음에도 불구하고 RDBMS 간에 완벽하게 호환되지 않고 있습니다.
NoSQL 데이터베이스가 각광받으며 한때 SQL이 더 이상 사용되지 않을까라는 의견도 있었습니다. 하지만 오히려 빅데이터 분석에 SQL을 사용할 수 있는 SQL온하둡(SQL on Hadoop) 기술인 하이브(Hive)와 임팔라(Impala), 타조(Tajo) 등이 발표되고 있습니다. SQL은 이미 데이터 분야의 표준 언어로 자리매김하고 있어 한동안 그 위치를 공고할 것으로 생각됩니다.
이상으로 데이터에서 SQL까지 알면 좋고 몰라도 지장 없는 내용을 정리해봤습니다. 아무쪼록 지겨운 시간이 아니셨기를 바래봅니다:D
'비투엔 기술기고' 카테고리의 다른 글
컨설턴트로 살아가기! _ 중부지사 장현호 전무 (0) | 2016.05.23 |
---|---|
어플리케이션 응답속도를 더욱 빠르게 _ CIS본부 HRCT파트 유진승 상무 (0) | 2016.04.21 |
데이터 표준화에 대하여 _ CIS본부 파트3 김영석 수석 (1) | 2016.04.11 |
[통신프로젝트] LTE 네트워크 구조 _ CIS본부 파트2 이진연 수석 (0) | 2016.03.15 |
대량 데이터 동기화 방법 _ 신동민 책임 (0) | 2016.03.07 |