본문 바로가기

DEVELOPMENT/SQL

[SQL] 데이터베이스와 SQL

SQL

 

DBMS는 데이터베이스를 관리하는 소프트웨어이다. DBMS를 이용하면 간접적으로 데이터베이스를 참조할 수 있고, 혹은 데이터를 추가하거나 삭제, 갱신할 수도 있다. 이 같은 DBMS와의 대화에 필요한 것이 SQL이다. SQL은 그중 '관계형 데이터베이스 관리 시스템(RDBMS: Relational Database Management System)'을 조작할 때 사용한다.

 

*SQL 명령의 종류

DML(Data Manipulation Language) 데이터베에스에 새롭게 데이터를 추가하거나 삭제하거나 내용을 갱신하는 등, 데이터를 조작할 때 사용한다. SQL의 가장 기본이 되는 명령셋(set)이다.
DDL(Data Definition Language) 데이터를 정의하는 명령어. 데이터베이스는 '데이터베이스 객체(Object)'라는 데이터 그릇을 이용하여 데이터를 관리하는데, 이 같은 객체를 만들거나 삭제하는 명령어이다.
DCL(Data Control Language) 데이터를 제어하는 명령어. DCL에는 트랜잭션을 제어하는 명령과 데이터 접근권한을 제어하는 명령이 포함되어 있다.

 

 

데이터베이스 종류

 

1. 계층형 데이터베이스

역사가 오래된 DBMS로, 폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식의 데이터베이스이다. 하드디스크나 DVD 파일시스템을 이러한 계층형 데이터베이스라고 할 수 있다. 하지만 현재 DBMS로서 채택되는 경우는 많지 않다.

 

2. 관계형 데이터베이스

행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스를 가리킨다. 표 형식 데이터란 2차원 데이터를 말한다. 가로 방향으로는 '열'을, 세로 방향으로는 '행'을 나타낸다. 관계형 데이터베이스에는 이러한 표를 잔뜩 저장해두고, 각각의 표에 이름을 붙여 관리한다. 이때 데이터베이스 안의 데이터는 SQL 명령어로 조작할 수 있다.

 

3. 객체지향 데이터베이스

자바나 C++를 객체지향 언어라고 한다. '객체(Object)'라는 것을 중심으로 프로그래밍하는 언어이다. 가능하면 객체 그대로를 데이터베이스의 데이터로 저장하는 것이 객체지향 데이터베이스이다.

 

4. XML 데이터베이스

XML 이란 자료 형식을 가르키는 용어로, 태그를 이용해 마크업 문서를 작성할 수 있게 정의한 것이다. 태그는 <data>데이터</data>와 같은 형식으로 표현한다. XML 데이터베이스는 이처럼 XML 형식으로 기록된 데이터를 저장하는 데이터베이스이다. XML 데이터베이스에는 SQL 명령어를 사용할 수 없다. 대신 XML 데이터를 검색할 때는 XQuery라는 전용 명령어를 사용한다.

 

5. 키-밸류 스토어(KVS)

키와 그에 대응하는 값(밸류)이라는 단순한 형태의 데이터를 저장하는 데이터베이스이다. 키와 밸류의 조합은 연상배열이나 해시 테이블에서 자주 볼 수 있다. NoSQL(Not only SQL)이라는 슬로건으로부터 생겨난 데이터베이스로, 열 지향 데이터베이스라고 불린다. 

 

 

데이터베이스 제품

 

1. Oracle

Oracle 데이터베이스는 오라클에서 개발한 RDBMS이다. 역사가 깊은 만큼 많은 시스템에서 채택해 사용 중이다. 현재 가장 많이 쓰이는 RDBMS 중 하나이다.

 

2. DB2

IBM이 개발한 DB2는 Oracle처럼 역사가 오래된 RDBMS이다. 다만 오라클이 유닉스 워크스테이션 중심이었던 것과 달리, DB2는 발표된 이래 한동안 IBM 컴퓨터에서만 구동되었다. 이후 유닉스나 윈도우 등의 플랫폼에서도 DB2를 구동할 수 있게 되었지만 시장 점유율을 확대할 수는 없었다.

 

3. SQL Server

SQL Server는 윈도우를 개발한 마이크로소프트가 개발한 RDBMS로, 윈도우 플랫폼에서만 동작한다. 윈도우가 서버 분야로 영역을 넓히면서 SQL Server를 사용하는 시스템도 많이 증가했다.

 

4. PostgreSQL

PostgreSQL은 오픈소스 커뮤니티가 개발한 RDBMS이다. 무료 소프트웨어인만큼 자유롭게 사용할 수 있다. 기반이 되는 RDBMS는 캘리포니아 대학교 버클리 캠퍼스에서 탄생했는데, 그 때문인지는 몰라도 실험적인 기능이 포함되어있거나 독특한 구조를 가지기도 한다.

 

5. MySQL

MySQL은 PostgrSQL과 마찬가지로 오픈소스 커뮤니티에서 태어난 RDBMS이다. 경량 데이터베이스라는 점을 강조하다 보니 필요한 최소한으이 기능만을 갖추어서 출시되었으나, 기능이 확장되면서 지금은 다른 RDBMS와 비교해도 부족하지 않을 정도이다.

 

6. SQLite

오픈소스 커뮤니티에서 태어난 SQLite는 임베디드 시스템에 자주 쓰이는 작은 RDBMS이다.

 

 

데이터베이스 서버

 

RDBMS는 복수의 클라이언트가 보내오는 요청에 응답할 수 있도록 클라이언트/서버 모델로 동작한다. 클라이언트는 서버에 접속 요청이나 SQL 명령 실행요청을 보낼 수 있다. 서버는 이를 처리하고 클라이언트에 그 결과를 반환한다.

 

 

 

 

 

'DEVELOPMENT > SQL' 카테고리의 다른 글

[SQL] 문자열 연산  (0) 2023.05.30
[SQL] 결과 행 제한  (0) 2023.05.30
[SQL] 패턴 매칭  (0) 2023.05.30
[SQL] INNER JOIN, OUTER JOIN  (0) 2023.04.02
[SQL] INSERT, SELECT, UPDATE, DELETE  (0) 2023.04.02