본문 바로가기

Study/데이터 베이스

[DBMS 강의 - 03] SQL

SQL

Structured Query Language의 약자로, 관계형 DB의 데이터를 관리하고 자작하기 위한 언어라고 할 수 있다.

에쓰큐엘(S.Q.L)이라고도 말하고 역사적인 이유로 시퀄(Sequel) 이라고도 말한다.

 

 

기능

기능 

설명 

 데이터 정의

 저장된 데이터 및 저장된 데이터 항목들 사이의 관계를 구성하고 조직화할 수 있도록 해줌

 데이터 추출 

 사용자 또는 응용 프로그램이 DB에 저장된 데이터를 추출하고 사용할 수 있도록 해줌 

 데이터 조작

 사용자 또는 응용 프로그램이 DB에 이전에 저장된 데이터를 갱신, 삭제 또는 새로운 데이터를 삽입할 수 있도록 해줌 

 액세스 제어 

 사용자가 데이터를 추출, 삽입 및 갱신하는 것을 제한함으로써 허가되지 않은 사용자의 액세스를 방지할 수 있도록 해줌 

 데이터 공유 

 동시에 사용되는 사용자들에 의한 데이터 공유를 조성함으로써, 사용자들 사이에 간섭이 발생하지 않도록 해줌 

 데이터 무결성 

 DB 내에 무결성 제약 조건을 정의함으로써, 잘못된 데이터의 갱신이나 시스템 오류에 의한 DB의 손상을 방지 

 

 

 

특징 및 장점

 - 개발사 독립성

SQL은 대부분의 DBMS 개발사에서 제공한다. 물론 각각의 SQL들의 문법이 조금씩 다르지만 표준을 기반으로 만들어진것이기 대부분의 경우에는 호환이 된다.

따라서 A라는 SQL에서 다른 SQL로 변환하는데는 많은 시간이 소요되지 않는다.

 

- 이주 용이성

예전에는 SQL 기반의 제품들이 메인프레임이나 서버 정도에서 실행되었지만, 현재에는 메인프레임, 워크스테이션, 서버, 데스크탑, 노트북, 스마트폰 등 다양한 플랫폼에서

실행되고 네트워크의 발달로 인해 분산 되어 저장될 수 있다. 따라서 현재의 SQL들은 대부분 다른 플랫폼을의 이주를 지원한다.

 

- SQL 표준화는 아직 진행중

SQL의 표준화는 매우 활발하게 진행중이며, 표준화는 SQL의 보급에 많은 영향을 끼쳤다.

 

* 여러 차례에 걸쳐서 SQL 표준이 제정되었지만, 여정히 상용 DBMS들의 SQL들끼리 완벽하게 호환이 되지 않는 이유는 다음과 같다.

- SQL 표준의 양 자체가 방대하고 복잡하여 전부를 구현하기가 어렵다

- SQL 표준이 여러 중요한 부분(인덱스, 파일 저장소 등)에 대해 정확하게 명시하지 않아 구현 방법이 에매하다.

- SQL 표준이 SQL의 구문(문법적인 부분)은 명확히 규정하지만, SQL의 의미에 대해서는 규정하지 않아 모호성이 발생한다.

- SQL 표준이 기본 DB들의 기능과 충돌할 경우 DBMS 개발 업체의 입장에서는 굳이 호환성을 낮추면서 표준을 준수할 이유가 없다.

 

- 영어 형식의 구문

한국인에게는 단점일 수 있으나 사실 언어 자체로 보면 굉장히 큰 장점이다. SQL 명령문은 간단한 영어문장처럼 보이기 때문에 직관적이라 배우고 이해하기가 쉽다.

이는 SQL의 특징인데 SQL은 데이터를 "어떻게" 찾을지를 지정하는 것이 아니라, "어떤" 데이터를 찾을지를 결정하는 특징이 있기 때문이다.

또한 DB의 테이블과 열에는 길고 직관적인 이름(한글도 됨)의 부여가 가능하기 때문에 더욱 직관적이게 다가온다.

 

- 동적인 데이터 정의

SQL을 사용하여 DB를 동적으로 변경 혹은 확장할 수 있다. 심지어 사용자들이 DB를 사용하고 있는 중에도 가능하다.

 

- 인터넷 DB 액세스

가장 큰 장점이라고도 할 수 있는 부분인데 asp, php, jsp 등으로 이루어진 웹사이트에서 DB로 접근이 가능하다.