티스토리 뷰
데이터를 아무리 많이 모아 놔도 활용하지 않으면 가치가 없다. 조건에 맞는 데이터를 추출하여 적당히 가공한 후 통계로 요약해야 의사 결정에 쓸 수 있다. 또한 끊임없이 변하는 현실 세계를 반영하기 위해 지속해서 삽입, 삭제, 수정해야 한다.
데이터베이스는 사용의 대상이면서 동시에 관리의 대상이기도 하다. 초장기의 데이터베이스 제품은 제조사마다 구조가 독특해 관리 방법이 제각각이었다. 경쟁적으로 기능을 늘려가던 시기여서 명령을 통일할 만한 기회도 없었다. 데이터를 읽는 기본적인 명령조차 제품마다 달랐다. 이런 상황이면 한 제품에 익수해져도 다른 제품은 다시 배워야 한다. 또 이미 구축한 데이터를 다른 시스템으로 옮기기 어려워 엄청난 사회적 낭비를 초래한다. 데이터를 관리하는 공통적인 표준 언어가 필요하며 그 결과로 탄생한 것이 SQL이다. 제품마다 구조나 관리 방식이 달라도 SQL을 통하면 똑같은 방법으로 다룰 수 있다. SQL의 데이터 읽기 명령인 SELECT만 익히면 어떤 형태의 데이터든 조회할 수 있고 시스템 간의 데이터 이식도 가능하다. 다음이 SQL 명령의 예이다.
키가 170 이상인 회원의 목록을 조사하라. 이번 달 매출 합계와 평균을 조사하라. 모든 상품의 가격을 20% 인하한 값으로 변경하라.
물론 SQL 문이 자연어로 되어 있지는 않다. 자연어는 사람에게는 쉽지만 애매모호해서 컴퓨터가 알아듣기 어렵다. 여타의 프로그래밍 언어와 마찬가지로 SQL도 고유의 문법 체계를 가지고 있다. 첫 번째 명령을 SQL 문법으로 표현하면 다음과 같다.
SELECT * FROM 회원목록 WHERE 키 >= 170;
아직 문법을 배우지 않았지만 뭘 요구하는 명령인지 감이 올 것이다. SQL 문도 의사 소통을 위한 언어라는 면에서 자연어와 동질성이 있다. 행동을 지시하는 동사가 있고 조작 대상을 지시하는 목적어와 조건절 등을 구비한 완전한 언어이다.
SQL 시초는 1970년에 IBM의 시스템 R에서 도입한 SEQUEL이다. 자연어와 최대한 유사하게 만들었다는 뜻으로 이름에 English가 포함되어 있다. 이후 영국 항공사와 상표권 분쟁이 발생하여 English를 빼고 구조화된 질의 언어라는 뚯의 SQL, 즉 Structured Query Language로 간략하게 바뀌었지만 지금도 곳곳에 영어의 흔적이 남아 있다. 질의는 DBMS에 요청한다는 뜻이며 한국말로 질의로 번역한다. 예초에는 주로 질문을 하는 용도였지만 지금은 의미가 확장되어 관리 명령까지 포괄한다. 응용 프로그램은 질의를 통해 DBMS에 명령을 내리고 실행 결과를 돌려받는다. 이런 질의 명령을 체계적으로 정리하여 구조적인 언어로 집대성한 것이 SQL이다. 시퀄 또는 철자 그래도 에스큐엘이라 읽는다. DBMS마다 구조는 달라도 데이터를 관리하는 본질적인 기능은 유사해 필요한 명령도 비슷하다. 이후 대부분의 회사는 표준 SQL에 기반한 명령어를 채용하여 대통일을 이루었다. 그러나 제품마다 독특한 특성이 있고 고급 기능을 경쟁적으로 늘려가다 보니 SQL에도 방언이 생기기 시작했다. 표준이 미래의 신기능 포괄하기 어려워 어쩔 수 없는 일이다. 이런 상황을 방지하기 위해 공신력 있는 국제 표준 단체에서 SQL의 표준을 만들고 관리하기 시작했다. 최초의 표준은 ANSI에서 제정하여 다음과 같이 발전해 왔으며 새로운 기능을 계속 추가 및 집대성하고 있다. SQL 문법반으로 보면 아직도 실질적인 표준은 SQL99이다. 2000년 이후에도 많은 기능이 추가되었지만 주로 빅데이터, 인공지능 같은 하이테크에 관련된 것일 뿐 데이터베이스 자체에 대한 기능은 많지 않다. 그래서 지금도 SQL92나 SQL99를 기준으로 학습하면 큰 무리가 없다. C, C++, 자바 같은 언어나 XML, HTML 같은 규격도 강력한 국제 표준이 있다. SQL은 다른 표준과 달리 강제성이 약하고 표준이 반드시 우월한 것도 아니다. 기능을 강제한다기보다 각 제품에 새로 추가된 기능을 추려 표준에 포함해 정리하는 형식이다. 그러다 보니 표준 제정 노력에도 불구하고 SQL은 제품마다 차이가 많은 편이다. 오라클은 표준안에 고유의 기능과 프로그래밍 기능을 추가한 PL/SQL을 지원하며 SQL Server의 질의 언어는 TSQL이다. 이름이 다른 만큼 기능이나 구문이 상당히 다르며 고급 기능으로 갈수록 차이는 더 벌어진다. 다행히 기본 구문은 비슷해 입문하기 어렵지 않지만 결국 최종적으로 사용할 제품의 고급 기능을 따로 습득해야 한다.
'Remote Sensing' 카테고리의 다른 글
원격탐사와 분광 반사율 특성 (0) | 2022.06.19 |
---|---|
한국의 지구관측위성 (0) | 2022.06.18 |
원격탐사와 정밀식생 (0) | 2022.06.18 |
원격탐사와 국립공원 탐방로 (0) | 2022.06.18 |
원격탐사와 국립공원 기후변화 (0) | 2022.06.18 |