DBMS는 데이터를 설계(Design), 갱신(Update), 선택(Select), 관리(Manage)하는 시스템이면 SQL 명령을 통해 이를 수행한다.
|
DBMS가 하는 일 (feat. SQL)
DBMS(Database Management System)는 데이터베이스를 관리하는 시스템이다. DBMS를 통해서 데이터베이스 설계(Design), 갱신(Update), 선택(Select), 관리(Manage) 작업을 처리할 수 있다. DBMS에서의 각 작업은 SQL 명령을 통해 수행한다.
데이터베이스 설계(Design)는 데이터베이스에 구조를 부여하는 작업이다. 데이터베이스에 저장되는 데이터의 속성을 정한다. 이를 위한 SQL 명령어 집합을 DDL(Data Definition Language)이라고 부른다. DDL의 종류로는 CREATE, ALTER, DROP이 있으며, 각각 테이블 생성, 수정, 삭제를 수행한다.
데이터베이스 갱신(Update)은 설계된 데이터베이스에 데이터를 추가, 수정 및 삭제하는 작업이다. 데이터베이스에 데이터를 갱신하는 SQL 그룹을 DML(Data Manipulation Language)이라고 부른다. INSERT, UPDATE, DELETE 명령을 통해 데이터를 추가, 수정, 삭제할 수 있다.
데이터베이스에서 필요한 정보를 얻기 위해 질의하는 과정을 선택(Select)이라고 한다. 선택은 데이터베이스의 목적으로 가장 빈번하게 사용한다. 이에 대응하는 SQL 명령은 SELECT이며, 일부에서는 SELECT를 DML의 일종으로 간주한다. 하지만, SELECT가 가지는 중요성을 생각해서 별도의 DQL(Data Query Language) 그룹으로 구분하는 것을 권장한다.
마지막으로 데이터베이스에서 처리되는 작업의 권한을 설정할 수 있다. 일반적으로 데이터베이스를 사용하는 목적에 따라서 각기 다른 권한을 가진다. 예를 들어 중간 관리자라면 데이터베이스를 관리하는 대부분의 기능을 처리할 수 있도록 권한은 위임받을 것이다. 하지만, 신입 사원의 경우 제한된 작업만을 데이터베이스에서 처리할 수 있을 것이다. 모든 사람에게 제한 없는 권한을 준다면 데이터베이스의 데이터가 손상될 위험이 있다. 따라서 데이터베이스에서의 작업은 특정 그룹의 사용자에게만 허용할 수 있으며 이를 위한 SQL 명령 집합을 DCL(Data Control Language)이라고 한다. DCL의 대표적인 예로는 GRANT, REVOKE가 있다.
RDBMS와 SQL
SQL은 RDBMS와 긴밀히 연결되어 있다. RDBMS는 관계형 데이터베이스를 관리하는 DBMS로 SQL은 기본적으로 테이블 형태의 데이터베이스를 위한 언어이다. RDBMS와 SQL은 등장과 함께 다음과 같은 이유에서 기업과 학계에서 주목받으며 연구되고 활용되었다.
관계형 데이터베이스에서는 데이터를 테이블 형태로 관리한다. 테이블 형태로 데이터를 관리하는 방식은 이해하기 쉽고 데이터를 강건(robust)하게 관리한다는 것이 수학적으로 입증되었다.
SQL은 사용하기 쉬운 언어이다. 문법이 일관되고 명령어가 직관적이므로 쉽게 배울 수 있다.
SQL과 RDBMS는 내부 기술적 구현과 분리되어서 사용할 수 있다. 데이터베이스 사용자는 SQL과 RDBMS의 기술적 내부 구현 방식을 알지 못하더라도 이를 사용해서 데이터를 관리할 수 있다.
RDMBS의 등장 이후에 산업과 학계에서 주목을 받으며 성장하였다. 따라서 많은 서비스에서 RDBMS 기반의 시스템을 구축하고 있다. 나아가 빅 데이터 환경에 적합한 NoSQL 시스템 역시 인터페이스적으로는 SQL 기반으로 처리된다는 점에서 관계형 데이터베이스 및 SQL은 여전히 많은 지원을 받는 데이터 처리 방식이다.
나아가 SQL은 Java, C와 연결되어서 사용될 수 있으며, 이러한 경우 JDBC, ODBC와 같은 커넥터를 사용한다.