SQL은 데이터 분석가라면 반드시 익혀야할 툴입니다. 왜냐구요?
내일배움캠프 데이터 분석가 과정을 시작하면서 우리가 가장 먼저 배우는 코딩 언어가 SQL입니다. 제가 한창 공부하고 있는 데이터 분석 준전문가(ADsP) 시험에서 제일 먼저 언급되는 툴 역시 SQL이죠. 범위를 넓혀서 미국의 프로그래밍 전반에 관한 사이트인 IEEE Spectrum에서 선정한 2023년 프로그래밍 언어 순위 목록에서도 SQL은 직장에서 가장 필요한 코딩 언어로 꼽혔습니다. SQL은 파이썬처럼 다양한 라이브러리를 통해 데이터 추출부터 시각화, 모델링까지 다양한 기능을 제공하지는 않습니다. 하지만 데이터 분석가는 물론 프로그래머들 모두에게 반드시 필요한 데이터의 전처리에 있어서 강력한 성능을 발휘하죠. 이번 페이지에서는 데이터 분석가의 영원한 파트너, 혹은 모국어와 같은 SQL이 어떻게 지금의 위상을 갖추게 되었는지 그 간단한 역사와 기능, 구조까지 알아보려고 합니다.
1) 'SQL'의 아주 간단한 역사
SQL은 '에스큐엘'이라거나 '시퀄'로 불리기도 합니다. 그런데 생각해보면 SQL이 왜 '스퀄'이 아니라 '시퀄'로 불릴까요? S의 Structured를 봐도 '스' 발음이고 정사각형을 의미하는 'square'은 '스퀘어'라고 하잖아요. 그 비밀은 SQL의 개발사와도 관련이 있을지 모릅니다.
이 코딩 언어는 지금까지도 상당한 인기를 누리고 있지만 의외로 역사가 꽤 길어요. 그 이론적 기반은 이름부터 적절하신 코드(EF Codd) 박사가 1970년에 미국의 한 컴퓨터과학 저널에 발표한 「대규모 공유 데이터 뱅크를 위한 관계형 데이터 모델」("A Relational Model of Data for Large Shared Data Banks")이라는 논문에서 시작됐죠. 이 모델을 기반으로 70년대에 이미 챔벌린(Donald D. Chamberlin)과 보이스(Raymond F. Boyce)는 IBM 에서 관계형 데이터베이스(RDB)의 초기 언어를 개발했습니다. 이 언어는 원래 SEQUEL(Structured English Query Language)이라 명명됐는데 이 이름에는 조그만 말장난이 있었습니다. 축어 자체에도 물론 의미가 있지만, 먼저 개발됐으나 후에 SQL에게 밀리게된 RDB언어인 QUEL(QUEry Language)의 '속편'(sequel)을 자처한거죠. 이후 너무 흔한 단어인 SEQUEL은 짐작하다시피 상표권에 걸려서 이름이 SQL로 바뀌었지만요.. 하지만 1979년에 현재에도 많이 쓰이는 SQL 데이터베이스 관리 시스템(DBMS)의 개발사 오라클(Oracle Corporation)이 (IBM의 방해를 뿌리치고!)상업용 버전을 만들었고, 1980년대 후반에 들어서는 미국의 표준화 기구들(ANSI, ISO)의 지속적인 표준언어 업데이트와 마이크로소프트의 SQL DBMS 출시 등으로 지금의 위상을 갖추게 되었습니다.
2) SQL의 말뜻을 풀어보자
SQL의 약자를 풀어보면 Structured Query Language, 즉 '구조화된 질문 언어'라고 할 수 있어요. 이 말을 풀어보면 SQL의 기능과 성격을 간단하게 알 수 있습니다. 먼저 SQL은 질문하고 요청하는 언어입니다. 이는 시퀄의 기능과 관련있는데 바로 대량의 데이터베이스 속에서 필요한 정보를 요청하는 역할을 하는거죠. 이런 역할을 하는 프로그래밍 언어를 통해 우리는 거대한 데이터의 바다 속에서 의미있는 정보를 일일히 찾아헤메는 수고를 덜고 질문 몇 마디로 원하는 정보를 추출하고 분석할 수 있어요(..사실 질문이 몇 마디로 안 끝나는 일이 다반사지만요).
하지만 말도 통하는 사람이랑 해야한다고, 우리가 아무리 SQL문법을 완벽하게 익혀도 요청을 하면 이해하고 데이터를 꺼내주는 시스템이 없다면 아무 소용 없겠죠? 그래서 SQL에 대해 알아보려면 데이터를 품고 있는 데이터 베이스에 대한 이해가 필요합니다.
3) SQL의 구조
SQL에 대해 얘기할 때 항상 따라나오는 말이 DBMS나 RDB 같은 데이터 관리 시스템에 대한 용어들입니다. 먼저 데이터 베이스(Database)란 체계적으로 정렬된 데이터의 집합을 뜻해요. 데이터가 그 자체로는 아무 의미 없는 땅 속에 묻힌 원석이라면 데이터 베이스는 원석을 가공하고 이용할 수 있도록 캐내어 축적하고 구조화해서 관리하며 이용자가 요구한다면 전달해줍니다. 말 그대로 디지털 광산 옆의 베이스 캠프와 같죠. 그리고 DBMS(Database Management System), 즉 데이터 베이스 관리 시스템은 데이터 베이스에 접속해서 조작, 정리하고 꺼내쓸 수 있도록 해주는 소프트웨어입니다. 이 DBMS에는 관계형, 계층형, 네트워크형, 객체지향형 등 다양한 종류가 있어요. 그 중에서 관계형(Relational) DBMS, 즉 RDBMS(RDB와도 사실상 동의어)는 행과 열로 구성된 2차원 테이블(이 구조를 '릴레이션'이라 부릅니다) 형식으로 데이터를 저장하는 시스템입니다. 그리고 SQL은 이런 형식의 DBMS에 맞춰 구동되고 또 이를 구축하기도 하는 언어 모델인거죠. 그래서 우리는 SQL의 명령어를 통해 엑셀에서 흔히 봤던 행열 구조의 테이블과 그 안의 데이터를 조작하고 통제할 수 있게 됩니다.
참고자료
아마존 웹 서비스(AWS) - SQL(구조적 쿼리 언어)이란 무엇인가요?
이랜서 블로그 - SQL 이란? 정의부터 특징까지 SQL을 사용하는 이유를 알려드립니다!
Oracle® Database SQL Reference - History of SQL
'DAta 이론 > SQL' 카테고리의 다른 글
[내일배움캠프 SQL] 1. 엑셀과 비교해서 RDBMS 이해하기 (0) | 2024.08.10 |
---|