DB(Database)
데이터베이스는 데이터의 집합이다.
DBMS(Database Management System)
데이터베이스를 관리하고 운영하는 소프트웨어를 DBMS라고 한다.(Oracle, MySQL 등)
만약 대학교에서 DBMS를 사용하지않고 행정실과 도서관과 같은 여러 부서가 각각 독립된 시스템을 사용하고 있다고 가정해보자 등록금을 납부한 한 학생이 도서관에 가서 책을 대출하려 하였지만 행정실과 도서관은 실시간으로 데이터가 동기화되지 않기 때문에 학생은 등록금을 납부하였음에도 불구하고 도서관에서는 학생이 등록금을 납부했음을 인지하지 못해 대출을 해주지 않는 문제가 발생한다. 이러한 문제를 해결하기 위해 데이터를 각기 다른 위치에 중복해서 저장하는 대신, DBMS에 통합하는 방법으로 문제를 해결한다. 또한 DBMS는 무결성과 효율성을 유지하기 위해서 동시성, 성능, 보안에 대한 문제들도 해결해준다.
SQL(Structured Query Language)
SQL은 데이터베이스 관리 시스템(DBMS)에게 질의하는 명령어 집합이다. SQL 문법은 DDL, DML, DCL, TCL로 나눌 수 있다.
DDL(Data Definition Language, 데이터 정의어)
데이터베이스 구조 정의에 사용하는 언어이다. 즉 데이터베이스의 전체 골격을 구성하는 역할을 한다.
DDL 종류 | 역할 | 문법 |
CREATE | 새로운 테이블을 생성 | CREATE TABLE 테이블이름 (컬럼이름 데이터타입); |
ALTER | 기존 테이블 구조 변경 | ALTER TABLE 테이블이름 ADD or DROP or ALTER or MODIFY ....; |
RENAME | 기존 테이블 이름 변경 | RENAME 현재테이블이름 TO 새로운테이블이름; |
DROP | 기존 테이블 삭제 | DROP TABLE 테이블이름; |
TRUNCATE | 기존 테이블 초기화 | TRUNCATE TABLE 테이블이름; |
DML(Data Manipulation Language, 데이터 조작어)
데이터 조작에 사용하는 언어로, 테이블의 데이터를 조회, 저장, 수정, 삭제한다.(CRUD) 즉 데이터베이스 내부에 실제로 저장된 데이터들을 다루는 역할을 한다.
DML 종류 | 역할 | 문법 |
SELECT | 저장된 데이터를 조회 | SELECT 컬럼이름 FROM 테이블이름 WHERE 조건; |
INSERT | 새로운 데이터를 저장 | INSERT INTO 테이블이름 (컬럼이름1) VALUES (값1); |
UPDATE | 저장된 데이터를 수정 | UPDATE 테이블이름 SET 컬럼1 = 값1 WHERE 조건; |
DELETE | 저장된 데이터를 삭제 | DELETE FROM 테이블이름 WHERE 조건; |
DCL(Data Control Language, 데이터 제어어)
데이터베이스에 대한 접근 권한 제어에 사용하는 언어로, 각종 권한을 부여, 회수한다. 즉 권한 권리를 통해 시스템 보안을 유지하는 역할을 한다.
DCL 종류 | 역할 | 문법 |
GRANT | 유저에게 권한을 부여 | GRANT 권한항목들 ON 권한을 부여할 테이블 TO 사용자계정 |
REVOKE | 유저로부터 권한 회수 | REVOKE 권한항목들 ON 권한을 회수할 테이블 FROM 사용자계 |
TCL(Transaction Control Language, 트랜잭션 제어어)
DCL에서 트랜잭션을 컨트롤하는 명령어를 TCL로 분류한다.
TCL 종류 | 역할 | 문법 |
COMMIT | 트랜잭션 작업이 정상 완료되면 변경 내용을 영구히 저장 | COMMIT; |
ROLLBACK | 트랜잭션 작업을 취소하고 최근 COMMIT한 시점으로 이동 | ROLLBACK; |
SAVEPOINT | 저장점을 지정 | SAVEPOINT 저장점; |
ROLLBACK TO | 트랜잭션 작업을 취소하고 SAVEPOINT 시점으로 이동 | ROLLBACK TO 저장점; |
DBMS의 분류
DBMS의 유형은 계층형(Hierarchical), 망형(Network), 관계형(Object-Oriented), 객체관계형(Object-Relational) 등으로 분류된다. 현재 많이 사용되는 DBMS 중에는 관계형 DBMS(RDBMS)가 가장 많은 부분을 차지한다.
'💾 Database > DB' 카테고리의 다른 글
DBMS 및 DB시스템 (0) | 2024.09.11 |
---|