database/sql

SQL이란? SQL의 역사, 특징, RDBMS의 종류

테토 2022. 3. 26. 16:19
반응형

 

SQL이란?

 SQL은 Structured Query Language의 약자로 관계형 데이터베이스의 표준 언어이다. 관계형 데이터 베이스 관리 시스템(RDBMS)을 관리하기 위한 특수 목적의 프로그래밍 언어라고 할 수 있다.

 요즘 데이터를 수집하고 관리하는 것에 대한 중요도가 높아지면서 SQL을 다루는 능력 또한 중요하게 보는 곳이 많아지고 있다. SQL개발자 자격증인 SQLD는 프로그래밍 관련 직무가 아니더라도 취득하는 사람들이 많이 보인다.

 

SQL의 역사

SQL은 1970년대 초, IBM사의 System R의 관리를 위해 Donald D. Chamberlin과 Raymond F. Boyce가 개발하였다. 개발 당시 SQL의 이름은 SEQUEL이었는데 이것이 영국의 Hawker Siddeley 항공사의 상표와 겹친다는 문제가 발생해 정식 명칭이 SQL으로 변경되었다.

SQL은 다양한 RDBMS에서 사용되는데 ANSI(American National Standards Institute, 미국표준협회) 표준이 늦게 정해진 탓에 각각 사용되는 문법이 조금씩 다르다.

 

ANSI 표준 내용
SQL-86 ANSI에 의한 최초의 표준화
SQL-89 마이너 개정, 무결성 제약 조건(integrity constraint)
SQL-92 메이저 개정
SQL:1999 정규 표현식, 재귀 쿼리
SQL:2003 XML 관련 기능(SQL/XML), Window Function, 표준 시퀀스, 자동 생성 값을 포함한 칼럼과 identity 칼럼,
MERGE문, CREATE TABLE 구문 개선
SQL:1006 XML을 SQL에서 사요(XQuery)
SQL:2008 MERGE문 개선, TRUNCATE TABLE 구문, partitioned join
SQL:2011 시간(temporal) DB 지원(tempotal validity)

참고한 책 : 불친절한 SQL 프로그래밍

 

 

반응형

 

SQL의 특징

 

SEQUEL(Structured English Query Language)은 '구조화된 영문 질의어'로 해석할 수 있다. 다른 프로그래밍 언어에 비하여 기계어보다 자연어에 더 가깝게 설계되어 프로그래머가 아니더라도 쉽게 접근할 수 있다.

 

다른 언어들은 보통 순차적으로 실행되는데에 비해 SQL문은 구문 순서가 아닌 영문 순서로 수행된다.

 

 

C언어로 작성된 구문이다. 순차적 실행을 보여주기는 애매하지만 SQL과 비슷한 의미를 위해 이렇게 작성하였다.

 

for(i=0; i<20; i++)		//i가 0부터 19까지 반복한다
	if(deptno[i] <= 20) 	//deptno의 i번째 값이 20보다 크거나 같다면
    	printf("%d", deptno[i]) 	//deptno의 i번째 값을 출력한다

 

SQL로 작성된 쿼리이다.

C로 작성된 경우 출력이 마지막 순서이기 때문에 마지막 줄에 작성되었지만, SQL의 경우 출력의 역할을 하는 SELECT절이 맨 위에 작성되었다. 

 

SELECT name			
FROM   dept
WHERE  deptno <= 20;

 

여기서 실행 순서는 FROM절, WHERE절, SELECT절이다.

FROM절이 dept테이블을 선택하고, WHERE절이 dept 테이블 중 deptno의 값이 20보다 큰 데이터만 뽑아낸다. 마지막으로 SELECT절이 WHERE절에서 뽑아낸 데이터들의 name만 출력한다.

 

 

RDBMS의 종류

 

 RDBMS(관계형 데이터 베이스 관리 시스템)는 다양한 종류가 있다. DATAQ의 SQL 시험에서는 ORACLE과 SQL Server를 다룬다.  현업에서는 MySQL을 많이들 사용하는 것으로 들어왔고 나도 전공 수업에서 MySQL을 이용한 실습을 들었다. 

이외에도 정말 많은 RDBMS가 있지만 자주 접하게 되는 이 세가지에 대해서만 알아보았다.

 

ORACLE DATABASE

오라클 데이터베이스, 오라클 RDBMS 등의 이름으로 불린다. 보통 ORACLE sql developer라는 IDE를 이용하여 관리한다.

현재 유닉스 환경에서 가장 널리 사용되는 RDBMS이다. 검색이나 업데이트용 언어로는 국제표준화기구 표준 구조화 조회 언어 PL/SQL을 지원한다.

 

MySQL

MySQL은 세계에서 가장 많이 쓰이는 오픈 소스의 RDBMS이다. 다중 스레드, 다중 사용자 형식의 구조질의어 형식의 데이터베이스 관리 시스템으로서 오라클이 관리 및 지원하고 있다.

 

MS Server

Microsoft SQL Server  Microsoft 에서 개발한 RDBMS이다. 데이터베이스 서버로서 다른 소프트웨어 응용 프로그램에서 요청한 대로 데이터를 저장하고 검색하는 주요 기능을 가진 소프트웨어이다. Microsoft는 소규모 단일 시스템 응용 프로그램에서 많은 동시 사용자가 있는 대규모 인터넷 연결 응용 프로그램에 이르기까지 다양한 대상과 워크로드를 대상으로 하는 Microsoft SQL Server의 최소 12가지 에디션을 판매한다.

 

 

 

 

반응형