본문 바로가기
CS/DB

DB, DBMS, SQL에 대해 알아보자

by Ropung 2023. 9. 12.

참고:
https://www.oss.kr/oss_guide/show/60a762d2-aae5-4ec7-ae68-fe3c83a6de16
https://velog.io/@developerjun0615/SQL-DDL-DML-DCL-%EC%9D%B4%EB%9E%80

 

들어가며 - DB 데이터 베이스란?

체계적으로 구성된 데이터의 모음저장하고 관리하는 데이터 저장소입니다.
이러한 DB를 관리하고 운영하는 소프트웨어를 DBMS(DataBace Management System)라고 합니다.

 

⏳ DBMS 가 뭘까?

데이터 베이스를 운영하고 관리하는 소프트웨어 입니다.
계층형, 망형, 관계형 DBMS 중 대부분의 DBMS가 테이블로 구성된 관계형(RDBMS) 형태로 사용되고 있습니다.

1960년대에 처음 등장한 후 꾸준히 성장하고 있으며, IT인프라 중에서도 핵심 기술로 자리 잡았습니다.
최근 데이터의 양과 종류가 폭발적으로 늘어나면서 그 시장은 더욱 커지고 있으며,
오픈소스 기반 DBMS(DataBase Management System)에 대한 도입률증가하는 추세입니다.

DBMS 시장의 중심은 전통적으로 오라클이 이끌어 왔습니다. 신생 DBMS에 의해 점유율이 다소 밀리고 있었는데, 해당 신생 DBMS 대부분은 오픈소스 기술입니다. 이 중 인기가 높은 오픈소스 MySql썬 마이크로시스템이 인수했는데, 오라클이 다시 썬 마이크로 시스템을 인수한 덕에 오라클은 상용 DBMS와 오픈소스 DMBS를 전략적으로 모두 운영하면서 여전히 DBMS 선두주자로 이끌고 있다고 합니다.
신생 DBMS 즉 MySql 같은 오픈소스 기반 기술이 성장하는 이유는 단연 비용 절감 효과 떄문입니다.

기업이 오픈소스 DBMS를 선택하는 이유 (출처:퍼코나)

 

⏳ SQL(Structured Query Language) 구조적 질의 언어란?

SQL은 데이터를 쿼리, 조작 및 정의하고 엑세스 제어를 제공하기 위해 대부분의 관계형 데이터베이스에서 사용되는 프로그래밍 언어입니다. 1970년대에 IBM에서 처음 개발되었으며 Oracle의 적극적인 공헌으로 SQL ANSI표준이 수립되기에 이르렀습니다.

 

⏳ SQL 명령어 집합( DDL, DML, DCL, TCL)을 알아보자.

 

DDL(Data Definition Language) - 데이터 정의어

데이터베이스를 정의하는 언어이며, 데이터를 생성,수정, 삭제하는 등의 데이터의 전체의 골격을 결정하는 역할을 하는 언어입니다.

CREATE - DB, 테이블을 생성하는 역할을 합니다.

ALTER - 테이블을 수정하는 역할을 합니다.

DROP - DB, 테이블을 삭제하는 역할을 합니다.

TRUNCATE - 테이블을 초기화 시키는 역할을 합니다.

 

DML(Data Manipulation Language) - 데이터 조작어

데이터베이스에 등록된 레코드를 조회,수정,삭제하는 등의 역할을 하는 언어입니다.

SELECT - 데이터를 조회

INSERT - 데이트를 삽입

UPDATE - 데이터를 수정

DELETE - 데이터를 삭제

 

DCL(Data Control Language) - 데이터 제어어

데이터베이스에 접근하거나 객체에 권한을 주는 등의 역할을 하는 언어이다.

GRANT - 특정 DB 사용자에게 특정 권한을 부여

REVOKE - 특정 DB 사용자에게 권한 박탈

COMMIT - 작업한 결과를 물리적 디스크로 저장하고, 조작 작업이 정상적으로 완료되었음을 관리자에게 알려주는 명령어

ROLLBACK - 작업했던 내용을 원래의 상태로 복구하기 위한 명령입니다. 이는 INSERT, UPDATE, DELETE 와 같은 트랜잭션의 작업내용을 취소할 수 있습니다. 단! Commit 명령어를 사용하기 이전의 상태만 Rollback이 가능합니다.

 

TCL(Transaction Control Language) - 트랜잭션 제어어

일부에서는 DCL 에서 트랜잭션을 제어하는 명령인 COMMITROLLBACK 만을 따로 분리해서 TCL 라고 표현하기도 합니다.

'CS > DB' 카테고리의 다른 글

SQL JOIN  (0) 2023.10.15
서브쿼리(Subquery)란  (0) 2023.10.15
트랜잭션에 대해 알아보자  (3) 2023.09.15