개요
데이터의 관리는 크게 데이터의 조회, 저장, 삭제 3가지 유형으로 분류할 수 있다.
SQL은 조회, 삭제, 저장 세 가지가 가능하며, 선언적 언어이기 때문에 이 3가지 형태에 맞는 패턴들이 존재한다. 따라서 이 3가지 패턴에 맞게 원하는 조건을 설정하면 데이터 관리에 대한 모든 일은 완료되는 것이다.
장점
- 배우고 사용하기 쉬운 언어: 개발자뿐만 아니라 DBA, 일반 사용자들도 SQL을 배우고 사용하는데 무리가 없다.
- 프로그래밍 언어들처럼 절차적인 개별 단위로 처리되기보다, 데이터의 집한 단위로 처리된다. 그리고 실제 데이터들이 어떻게 처리되는지 세부적인 과정은 SQL 문장을 작성하는 사람은 신경 쓸 필요 없다. 왜냐하면 절차적 언어가 아니고 선언적 언어이기 때문이다.
- 공인된 기관의 표준 SQL 문법이 있다. DBMS 종류에 상관없이 사용할 수 있다는 장점: DBMS는 ORACLE, MySQL, MSSQL, DB2 등 여러 회사의 제품이 존재하며, 그 구조나 특성면에서 모두 다르지만 사용되는 SQL은 거의 유사하다. 그러므로 오라클에서 SQL을 편하게 사용했던 사람은 다른 DBMS를 사용하더라도 SQL 문법을 처음부터 익힐 필요가 없다. 물론 각 DBMS마다 차이점은 존재하지만 표준 문법에 맞게 작성하면 대부분의 DBMS에서 통용된다. 예를 들면, PostgreSQL을 사용하던 시스템을 오라클로 변환할 경우 기존에 작성된 SQL 문장들은 조금만 수정을 하면 그대로 사용할 수 있다.
구조화된 SQL
SQL은 Structured Query Language의 약자로 데이터베이스에서 데이터를 조회, 입력, 수정, 삭제, 저장하는 데 사용되는 절의 언어이다. DBMS는 데이터와 관련된 모든 작업들은 처리하며, 데이터의 조회, 저장, 삭제와 같은 작업은 SQL을 통해 처리한다. C나 Java처럼 SQL도 컴퓨터 언어이지만 차이가 있다. 일반적인 프로그래밍 언어들은 절차적 언어의 특징을 가지고 있다. 절차적이라는 것은 언어 사용자가 모든 처리 과정을 일일이 기술하고, 기술된 순서대로 로직이 처리되는 것을 말한다. Smalltalk나 Ruby와 같은 객체지향 언어들 역시 절차적 언어에서 발전한 형태이고 기본적으로 절차적 언어의 특성을 가진다. 하지만 SQL은 이들 언어들과는 다른 성향을 띠고 있다. SQL은 구조화된 언어이다. 구조화의 의미는 어느 일정한 틀이나 패턴이 있다는 뜻이다. 패턴에 맞게 조건들을 선언한다는 의미에서 SQL을 선언적 언어라고도 한다. 다시 말하자면, SQL은 절차적 언어처럼 처리과정을 하나하나 기술할 필요가 없는 언어이다.
SQL의 간략한 역사
SQL은 관계형 데이터베이스와 시작을 같이 하고 있다. 1970년 E.F.Codd에 의해 관계형 데이터 모델이 소개되었다. 다시 E.F.Codd는 IBM에서 근무하고 있었는데, Codd의 관계형 데이터 모델 이론에 근거해 미국 IBM 연구소에서 'System R'이라는 데이터베이스 시스템을 개발하였다. 특히 System R 개발팀이었던 도널드 D. 체임벌린과 레이몬드 F. 보이즈는 SEQUEL(Structured English Query Language)라는 언어를 개발하였고 나중에 SQL이라 불리게 되었다. 이에 기반하여 IBM은 그들의 첫 사용 관계형 데이터베이스 관리 시스템(RDBMS)인 System/38을 1978년에 발표했고, 1981년에는 SQL/DS, 그리고 IBM의 대표적인 사용 DBMS인 DB2를 1983년에 출시하게 된다. 비슷한 시기에 Relational Software Inc(현 오라클)에서는 관계형 데이터 모델의 우수성을 깨닫고 이를 채택하여 1979년에 SQL에 기반한 첫 상용 DBMS인 Oracle Version 2를 출시한다. 물론 사실 관계형 데이터 모델이나 SQL의 시초는 IBM이라 할 수 있으나 후발 주자였던 오라클 사가 선두를 앞지르게 된 것이다. 1979년에 출시한 Oracle V2는 한 해 전 출시한 system/38을 제치고 시장에서 우위를 점하게 된다.
SQL 표준은 1986년에 ANSI(미국표준협회), 1987년 ISO(국제표준화 기구)에 의해 만들어졌다. 표준이 만들어졌다는 의미는 SQL 작성 시 표준에 따르기만 하면 여러 회사의 RDBMS에서 동일한 문장을 문제없이 같은 결과를 얻을 수 있음을 뜻했다. SQL의 탄생을 1979년이라 생각하면, 보면 표준화 작업은 늦게 이루어졌다고 볼 수 있다.
표준화 작업이 늦어지게 된 배경에는 몇 가지 이유가 있다. SQL의 탄생과 RDBMS는 시작을 같이 했고, RDBMS 제품을 출시하는 IBM과 오라클 마다 SQL도 조금씩 다르게 발전해 왔다. 그래서 시간이 지날수록 그 차이는 점점 더 벌어지게 되고 표준화를 더 이상 늦추기 힘들어진 상태였다. 결과적으로 1986년 처음으로 SQL 표준이 발표되었고, 각 RDBMS 회사들은 이 표준에 따라 자사의 제품들을 출시하고 있다. 하지만 완벽하게 모든 종류의 RDBMS가 표준을 따르지는 않는다. 각 RDBMS별로 표준을 준수하는 부분도 있고 그렇지 않은 부분도 존재한다. RDBMS와 SQL 자체가 특정 회사에서 시작되었고 RDBMS의 상위 업체인 Oracle, IBM, Microsoft사의 비즈니스적인 문제와 다양한 시스템의 출현 등으로 인해 이러한 결과가 나오게 된 것이다. 하지만 기본적인 SQL 문장들 대부분 여러 RDBMS에서 사용이 가능하다.
'IT' 카테고리의 다른 글
스파크의 기본 개념 - 1 (0) | 2022.07.25 |
---|---|
SQL의 기본 개념 - 2 (0) | 2022.07.13 |
AWS 부하 테스트 도구 - 1 (0) | 2022.07.11 |
AWS 부하 테스트 목적 - 1 (0) | 2022.07.08 |
SQL 기본 이론 - 1 (0) | 2022.07.06 |
댓글