지극히 개인적인 공부 노트/근-본(Roooooooooooot)

[SQL] 'SQL'의 시작

AS J 2021. 9. 14. 19:22
탄생 이후 40년이 지나도 건재한 데이터베이스 조작 언어

1. 기원

1) 누가

도널드 D. 챔벌린, 레이먼드 F. 보이스

2) 언제

1976년

3) 어디서

IBM San Jose 연구소

4) 어떻게

관계형 모델과 그것의 튜플적 해석이라는 이론적 기초로부터 파생되어 설계되었다.

5) 왜

SQL의 시작인 SEQUEL은 IBM의 준 관계형 데이터베이스 관리 시스템 R에 저장된 데이터를 조작하고 수신하기 위해 고안되었다. 입력 릴레이션(테이블)으로부터 원하는 출력 릴레이션을 사상(mapping)시키는 언어로써, 1973년에 SQUARE(Structured Queries as Relational Expressions)이라는 언어가 발표되었다. 하지만 수학적인 표현이 많아서 초보자가 사용하기 어려웠는데 1974년에 이를 기초로 SEQUEL이라는 언어가 IBM의 San Jose 연구소에서 만들어졌다. 1976년에는 이를 개선하여 SEQUEL 2를 발표했고, 이 SEQUEL 2를 기초로 한 시스템인 R, 오라클(Oracle) 등이 나오면서, 관계형 데이터베이스 관리 시스템(RDBMS, Relational DataBase Management System)을 관리하기 위해 특수 목적의 프로그래밍 언어로 자리 잡았다.

6) 일화

SQL은 사실 개발 초기에는 SEQUEL(Structured English Query Language, 구조 영어 질의어)이라는 이름으로 시작했다. 하지만 SEQUEL이 영국의 호커 시들리 항공사의 상표였고, 항공사와 상표권 분쟁을 거치면서 SQL(Structured Query Language, 구조화 질의어)이라는 이름으로 바뀌게 되었다.

 

2. 활용

SQL은 구조화된 질의어라는 뜻을 갖고 있으며, 데이터베이스에 접근하기 조작하기 위한 표준 언어이다. 데이터의 검색, 삽입, 수정, 삭제와 데이터베이스의 생성과 삭제, 테이블 생성과 삭제 등의 기능이 가능하다. 이런 기능들은 SQL 명령어의 여러 종류에 의해 각각 구현이 가능한데, SQL 명령어의 종류에는 크게 DML, DDL, DCL이 있다.

DML(Data Manipulation Language)은 데이터 조작, DDL(Data Definition Language)은 데이터 정의, DCL(Data Control Language)은 데이터 제어 등의 기능을 구현한다. 추가로 DCL에서 트랜잭션(transaction, DB의 상태를 변화시키기 위해 수행하는 작업의 단위)을 제어하는 명령인 Commit과 Rollback만을 따로 분리해서 TCL(Transaction Control Language)이라고 부르기도 한다.

관계형 데이터베이스를 다루고, 이를 사용자와 애플리케이션, 프로그램 등에서 요청과 데이터가 원활히 오가게 하기 위해서는 SQL을 잘 이해하고 사용할 줄 알아야 한다.