오늘날 웹에는 수많은 동적 웹사이트가 존재하는데, 그 핵심에는 데이터베이스를 통해 콘텐츠를 처리한다는 사실이 있습니다. 데이터베이스 관리에는 이러한 과정을 체계화할 수 있는 구조적인 시스템이 필요한데, 대표적인 시스템 중 하나가 바로 SQL입니다.
SQL은 Structured Query Language(구조적 질의 언어)의 약자로, 관계형 데이터베이스 관리 시스템(RDBMS)에 저장된 데이터에 접근하고 관리하기 위해 사용되는 컴퓨터 언어입니다. 1986년 미국 국립표준협회(American National Standards Institute, ANSI)의 표준으로 채택되었으며, 불과 1년 뒤인 1987년에는 국제표준화기구(ISO)의 표준으로도 지정되었습니다.
SQL Server 환경에서는 SQL 문을 사용하여 데이터를 저장, 정리, 검색할 수 있습니다. 또한 SQL은 다양한 확장 언어를 통해 SQL 서버 내부의 여러 기능들을 지원합니다.
SQL, T-SQL, MSSQL, PL/SQL이란 무엇일까?
SQL은 특정 서버에서 사용되는 컴퓨터 언어로, 해당 서버의 데이터베이스에 저장된 정보를 조회하고 편집하는 역할을 담당합니다.
SQL은 흔히 ANSI SQL이라고도 불리는데, 이는 1986년부터 제정된 표준 버전을 의미합니다. SQL은 오늘날 가장 널리 사용되는 프로그래밍 언어 중 하나이기도 합니다. 하지만 사용자들의 다양한 데이터베이스 요구를 충족시키기 위해, SQL의 변형 버전을 사용하는 데이터베이스도 매우 많습니다.
다양한 SQL 확장 언어를 살펴보기 전에, 데이터베이스가 정확히 무엇인지 먼저 짚고 넘어가겠습니다.
데이터베이스란 쉽게 사용하고 검색할 수 있도록 체계적으로 정리된 데이터의 모음을 말합니다. 웹사이트마다 그 의미하는 바는 조금씩 다릅니다. 블로그 게시물의 텍스트일 수도 있고, 사이트에 등록한 사용자들의 정보일 수도 있습니다. 어느 쪽이든 모든 데이터는 데이터베이스에 입력되고 정리됩니다.
SQL은 바로 이러한 데이터베이스가 데이터를 정리하고 찾는 데 도움을 주는 언어입니다. 다만 모든 데이터베이스가 표준 SQL을 사용하는 것은 아닙니다. 예를 들어 마이크로소프트의 SQL Server는 T-SQL이라는 자체 버전의 SQL을 사용합니다.
T-SQL이란?
T-SQL은 Transact-Structured Query Language의 약자로, 마이크로소프트 SQL Server에서만 작동하도록 개발된 마이크로소프트의 독점 확장 언어입니다. Microsoft SQL Server 또는 Azure Synapse 환경에서만 사용할 수 있는 고유한 문법과 기능을 제공합니다.
T-SQL 역시 ANSI SQL 표준을 따르기 때문에, 기본적인 SQL을 이해하고 있다면 큰 어려움 없이 익힐 수 있습니다. 다만 예외 처리, 오류 처리, 운영 규칙, 프로시저, 문자열 및 데이터 함수 등 ANSI SQL과 차별화되는 여러 특성과 몇 가지 개선된 기능이 포함되어 있습니다.
SQL 대신 T-SQL을 선택하는 것이 유리한 경우는 주로 애플리케이션이 Microsoft SQL Server 환경에 설치되는 경우입니다.
MSSQL이란?
MSSQL은 Microsoft SQL Server의 줄임말로, 마이크로소프트가 Oracle Database와 MySQL 같은 경쟁 제품에 맞서 개발한 데이터베이스 소프트웨어 제품군입니다.
MSSQL은 대규모 미션 크리티컬(mission-critical) 비즈니스 소프트웨어를 지원하도록 설계된 엔터프라이즈 배포 환경에서 널리 사용됩니다. SQL 문법, 그중에서도 T-SQL을 사용합니다.
MSSQL은 데이터베이스를 활용해 데이터를 저장·정리·처리할 수 있으며, 원시 데이터를 의미 있는 인사이트로 변환하고, 대용량 데이터를 처리하며, 복잡한 분석과 보고서를 생성하는 등 다양한 작업을 수행할 수 있습니다.
PL/SQL이란?
마이크로소프트와 마찬가지로 Oracle Database 역시 자체 변형 언어인 PL/SQL(Procedural Language/Structured Query Language)을 사용합니다. PL/SQL은 SQL 환경 안에서 조건문, 반복문 같은 절차적 언어 요소를 활용할 수 있게 해줍니다.
PL/SQL에서는 상수와 변수, 프로시저와 함수, 타입, 트리거 등을 선언할 수 있습니다. PL/SQL 프로시저는 단순한 비즈니스 규칙 관리를 넘어, 웹사이트에 접근하거나 이메일을 발송하는 등 기본 SQL로는 불가능한 작업까지 수행할 수 있습니다.
PL/SQL은 1995년 처음 공개되었으며 ISO SQL 표준을 따릅니다. 내장 인터프리터와 OS에 독립적인 프로그래밍 환경을 제공하는 이식성이 뛰어난 고성능 트랜잭션 처리 언어입니다.
PL/SQL은 Oracle Database 시스템에서 없어서는 안 될 핵심 언어이며, TimesTen 인메모리 데이터베이스와 IBM DB2에서도 사용할 수 있습니다.
MySQL이란?
MySQL은 Oracle이 개발하고 지원하는 오픈소스 SQL RDBMS입니다. PL/SQL을 사용하는 Oracle Database와 혼동하기 쉬운데, MySQL은 단순히 'MySQL'이라 불리는 자체 버전의 SQL을 사용합니다. MySQL은 원래 Oracle의 소유가 아니었으며, 인수 이후에도 오픈소스로 유지되고 있습니다.
MySQL은 데이터를 저장하고 관리하는 데 가장 널리 사용되는 시스템 중 하나입니다. 특히 WordPress 사이트의 데이터베이스 솔루션으로 많이 활용되는데, WordPress의 모든 블로그 게시물, 사용자 정보, 플러그인 정보 등을 저장하는 역할을 담당합니다.
MySQL은 관계형 데이터베이스 시스템인 동시에 클라이언트-서버 모델을 채택하고 있습니다. 즉, 데이터는 서버에 존재하며, 클라이언트(사용자)가 SQL을 통해 서버에 요청해야만 데이터를 받을 수 있습니다.
따라서 WordPress 사이트를 운영하거나, 대량의 데이터와 수많은 최종 사용자를 처리해야 하는 사이트를 운영한다면 MySQL이 가장 적합한 선택입니다.
어떤 SQL을 사용해야 할까?
먼저, T-SQL과 PL/SQL은 대부분의 경우 완전히 다른 용도로, 그리고 완전히 다른 데이터베이스에서 사용됩니다. 결국 무엇을 사용할지는 어떤 데이터베이스를 선호하는지에 달려 있습니다.
T-SQL과 표준 SQL 사이의 선택 역시 사용자의 환경에 따라 달라집니다. 다만 Microsoft SQL Server 설치 환경을 다룰 계획이라면 T-SQL이 더 나은 선택입니다. T-SQL은 마이크로소프트가 직접 개발한 언어이기 때문에, 두 기술을 함께 사용할 때 호환성이 극대화됩니다.
반면 여러 백엔드를 동시에 지원해야 하는 환경이라면 ANSI SQL(표준 SQL)을 사용하는 것이 가장 좋습니다.