관계형 데이터베이스와 SQL 종류
쉽게 말하면
관계형 데이터베이스는 정보를 엑셀처럼 줄과 칸으로 된 표에 담고, 표끼리 번호로 이어 두는 방식이에요. 이 표에 일을 시키는 정해진 말이 SQL이에요. SQL은 하는 일에 따라 표 구조를 만드는 말, 데이터를 넣고 고치는 말, 권한을 주는 말, 작업을 확정하거나 취소하는 말로 나뉘어요.
시험용 정의
관계형 데이터베이스(RDB)는 데이터를 행과 열로 된 테이블에 담고, 테이블끼리 키로 연결해 관리하는 데이터베이스다. 1970년 E.F. 코드(Codd)가 관계형 모델을 제안했다. 이 데이터베이스와 대화하는 표준 언어가 SQL(Structured Query Language)이며, 하는 일에 따라 DDL·DML·DCL·TCL로 나눈다.
비유로 이해하기
엑셀 시트 여러 장을 '고객번호' 같은 공통 칸으로 서로 이어 둔 장부와 같다. SQL은 그 장부에 "이 조건에 맞는 줄을 보여 줘"라고 말하는 정해진 문법이다.
자세히
먼저 알아 둘 말
| 말 | 뜻 |
|---|---|
| 테이블 | 행과 열로 된 2차원 표. 엔터티 하나가 보통 테이블 하나가 된다 |
| 행(Row) | 데이터 한 건. 튜플·레코드라고도 한다 |
| 열(Column) | 같은 종류의 값이 모인 세로 칸. 속성·필드라고도 한다 |
| 기본키(PK) | 행을 유일하게 구별하는 열. 중복과 NULL 불가 |
| 외래키(FK) | 다른 테이블의 기본키를 가리키는 열. 테이블을 서로 잇는다 |
| DBMS | 데이터베이스를 관리하는 소프트웨어. Oracle, SQL Server, MySQL 등 |
SQL 종류
| 종류 | 뜻 | 명령 |
|---|---|---|
| DML (Data Manipulation) | 데이터를 조회·입력·수정·삭제 | SELECT, INSERT, UPDATE, DELETE, MERGE |
| DDL (Data Definition) | 테이블 같은 객체의 구조를 정의 | CREATE, ALTER, DROP, RENAME, TRUNCATE |
| DCL (Data Control) | 권한을 주고 회수 | GRANT, REVOKE |
| TCL (Transaction Control) | 트랜잭션을 확정·취소 | COMMIT, ROLLBACK, SAVEPOINT |
DBMS가 해 주는 일
- 여러 사용자가 동시에 같은 데이터를 써도 꼬이지 않게 한다 (동시성 제어)
- 장애가 나도 데이터를 복구한다
- 제약조건으로 잘못된 데이터를 막는다 (무결성)
- 권한으로 허락된 사람만 보게 한다 (보안)
- 파일에 직접 저장할 때 생기는 중복과 불일치를 줄인다
관계 연산과 집합 연산
| 연산 | 뜻 | SQL |
|---|---|---|
| 선택(Selection) | 조건에 맞는 행만 고른다 | WHERE 절 |
| 투영(Projection) | 원하는 열만 고른다 | SELECT 절의 열 목록 |
| 조인(Join) | 공통 속성으로 두 테이블을 잇는다 | JOIN, WHERE 조인 조건 |
| 나누기(Division) | 한 테이블의 값을 모두 가진 행을 찾는다 | 직접 대응 명령 없음 (NOT EXISTS로 구현) |
| 합집합·교집합·차집합·곱 | 두 결과를 집합처럼 합친다 | UNION, INTERSECT, MINUS, CROSS JOIN |
시험에 이렇게 나와요
- SQL 종류(DDL·DML·DCL·TCL)와 명령 짝짓기 (TRUNCATE는 DDL, MERGE는 DML)
- 관계 연산: 선택=행(WHERE), 투영=열(SELECT), 조인, 나누기
- 테이블·행·열·기본키·외래키 용어
- 관계형 DB와 SQL의 등장 배경 (E.F. Codd)
출제 범위·공식 안내 기반
확인 문제
Q1. COMMIT과 ROLLBACK은 SQL 종류 중 무엇에 속할까요?
- DML
- DDL
- TCL
- DCL
정답 보기
3번 TCL
트랜잭션을 확정하거나 취소하는 명령은 TCL(Transaction Control Language)이다. DDL은 구조(CREATE·ALTER·DROP), DML은 데이터(SELECT·INSERT·UPDATE·DELETE), DCL은 권한(GRANT·REVOKE).
Q2. 다음 중 DDL에 속하는 것은?
- GRANT
- TRUNCATE
- COMMIT
- SELECT
정답 보기
2번 TRUNCATE
TRUNCATE는 테이블 구조는 두고 데이터를 모두 지우는 DDL이다. SELECT는 DML, GRANT는 DCL, COMMIT은 TCL.
Q3. 테이블에서 조건에 맞는 행만 골라내는 관계 연산은?
- 조인
- 선택
- 나누기
- 투영
정답 보기
2번 선택
선택(Selection) = 행, 투영(Projection) = 열.
Q4. SQL 종류와 명령의 짝이 틀린 것은?
- TCL - RENAME
- DCL - REVOKE
- DML - MERGE
- DDL - ALTER
정답 보기
1번 TCL - RENAME
RENAME은 DDL이다. TCL은 COMMIT, ROLLBACK, SAVEPOINT.
Q5. COMMIT과 ROLLBACK이 속하는 SQL 종류는?
- DML
- DDL
- DCL
- TCL
정답 보기
4번 TCL
TCL(트랜잭션 제어어)이다. DDL은 CREATE·ALTER·DROP, DML은 SELECT·INSERT·UPDATE·DELETE, DCL은 GRANT·REVOKE다.
Q6. 테이블에서 원하는 열만 골라내는 관계 연산은?
- 나누기
- 투영
- 조인
- 선택
정답 보기
2번 투영
투영은 열(SELECT 목록), 선택은 행(WHERE)이다.
헷갈리기 쉬운 O·X
SELECT는 데이터를 바꾸지 않으므로 DML이 아니다.
정답 보기
X SELECT도 DML(조회)로 분류한다. 일부 교재는 DQL로 따로 부르기도 한다.
외래키는 다른 테이블의 기본키를 참조해 테이블을 연결한다.
정답 보기
O 관계를 테이블로 구현한 것이 외래키다.
투영(Projection)은 WHERE 절로 구현한다.
정답 보기
X 투영은 열을 고르는 것이라 SELECT 절, 행을 고르는 선택이 WHERE 절이다.