SQLD 필수 개념: 관계형 데이터베이스(RDB) 개요
SQLD(SQL Developer) 자격증을 대비하기 위해서는 관계형 데이터베이스(Relational Database, RDB)의 개념과 특징을 명확히 이해하는 것이 중요합니다.
관계형 데이터베이스는 테이블(Table) 기반의 데이터 저장 구조를 사용하며, 정규화(Normalization), 무결성(Integrity), 트랜잭션(Transaction) 개념 등을 필수적으로 숙지해야 합니다.
이번 글에서는 SQLD 시험을 대비하기 위해 알아야 할 관계형 데이터베이스의 핵심 개념을 설명하겠습니다.
1. 관계형 데이터베이스(RDB)란?
✔ 관계형 데이터베이스(RDB, Relational Database)는 행(Row)과 열(Column)으로 구성된 테이블(Table) 형태의 데이터를 저장하는 데이터베이스입니다.
✔ 각 테이블은 기본 키(Primary Key, PK)를 통해 데이터를 식별하며, 다른 테이블과 관계(Relation)를 가질 수 있습니다.
✔ SQL(Structured Query Language)을 사용하여 데이터를 저장, 조회, 수정, 삭제할 수 있습니다.
✅ 관계형 데이터베이스의 대표적인 시스템(RDBMS, Relational Database Management System)
- Oracle (오라클)
- MySQL (MYSQL)
- SQL Server (마이크로소프트 SQL 서버)
- PostgreSQL (포스트그레SQL)
- MariaDB (마리아 DB)
✔ 예제: Employees 테이블 (직원 정보 저장 테이블)
EmployeeID (PK) | EmployeeName | DepartmentID (FK) | Salary |
1 | Alice | 101 | 7000 |
2 | Bob | 102 | 6000 |
3 | Jane | 101 | 5500 |
✅ EmployeeID는 기본 키(PK)이며, DepartmentID는 다른 테이블의 PK를 참조하는 외래 키(FK)입니다.
2. 관계형 데이터베이스의 핵심 개념
관계형 데이터베이스를 제대로 이해하려면 테이블, 기본 키, 외래 키, 정규화, 무결성, 트랜잭션 등을 숙지해야 합니다.
🔹 2.1 테이블(Table)과 관계(Relationship)
✔ 테이블(Table): 데이터가 저장되는 기본 단위로, 행(Row)과 열(Column)로 구성됨
✔ 관계(Relationship): 한 테이블이 다른 테이블과 연결되는 방식
✅ 관계형 데이터베이스의 관계 유형
- 1:1 관계 (One-to-One) → 하나의 행이 다른 테이블의 한 행과 연결됨
- 1:N 관계 (One-to-Many) → 하나의 행이 다른 테이블의 여러 행과 연결됨 (가장 많이 사용됨)
- M:N 관계 (Many-to-Many) → 여러 개의 행이 서로 연결됨 (중간 테이블 필요)
🔹 2.2 기본 키(Primary Key, PK)와 외래 키(Foreign Key, FK)
✔ 기본 키(PK, Primary Key)
- 각 행을 유일하게 식별하는 칼럼
- NULL 값을 가질 수 없음
- 중복될 수 없음
✔ 외래 키(FK, Foreign Key)
- 다른 테이블의 기본 키(PK)를 참조하는 칼럼
- 두 테이블 간의 관계를 정의하는 데 사용됨
- 참조 무결성(Referential Integrity) 유지
✅ 예제: Employees 테이블과 Departments 테이블의 관계 (1:N 관계)
| Employees (직원 테이블) |
EmployeeID (PK) | EmployeeName | DepartmentID (FK) |
1 | Alice | 101 |
2 | Bob | 102 |
3 | Jane | 101 |
| Departments (부서 테이블) |
DepartmentID (PK) | DepartmentName |
101 | Sales |
102 | Marketing |
✅ Employee 테이블의 DepartmentID는 Departments 테이블의 DepartmentID를 참조하는 외래 키(FK)**입니다.
🔹 2.3 정규화(Normalization)
✔ 정규화(Normalization)는 데이터 중복을 최소화하고 무결성을 유지하기 위한 데이터베이스 설계 방법입니다.
✔ 1NF → 2NF → 3NF → BCNF → 4NF → 5NF 순으로 데이터 구조를 최적화합니다.
✅ 정규화의 주요 원칙
- 1NF (제1 정규형) → 모든 칼럼이 원자값(Atomic Value)을 가져야 함
- 2NF (제2 정규형) → 부분 종속 제거 (완전 함수 종속)
- 3NF (제3 정규형) → 이행 종속 제거
- BCNF (보이스-코드 정규형) → 결정자가 후보 키가 아닌 경우 제거
✔ 정규화된 데이터 구조를 사용하면 중복을 줄이고, 데이터 변경 시 일관성을 유지할 수 있습니다.
🔹 2.4 무결성(Integrity) 제약 조건
✔ 무결성(Integrity)이란?
- 데이터의 정확성과 일관성을 보장하는 제약 조건
✅ 무결성 제약 조건 유형
- 개체 무결성(Entity Integrity) → 기본 키(PK)는 NULL이거나 중복될 수 없음
- 참조 무결성(Referential Integrity) → 외래 키(FK)는 참조하는 값이 삭제되면 안 됨
- 도메인 무결성(Domain Integrity) → 칼럼에 저장할 수 있는 값의 범위를 제한 (예: CHECK 제약 조건)
✔ 예제: 급여가 3000 이상이어야 하는 무결성 제약 조건
ALTER TABLE Employees ADD CONSTRAINT chk_salary CHECK (Salary >= 3000);
✅ 급여가 3000 미만이면 데이터 입력이 거부됨
🔹 2.5 트랜잭션(Transaction)과 ACID 특성
✔ 트랜잭션(Transaction)이란?
- 데이터베이스에서 여러 개의 작업을 하나의 단위로 처리하는 방식
- 예: 계좌 이체(잔액 차감 + 잔액 증가)
✅ 트랜잭션의 ACID 특성
- Atomicity (원자성) → 트랜잭션이 완전히 수행되거나 완전히 취소(ROLLBACK)됨
- Consistency (일관성) → 트랜잭션 실행 전후 데이터베이스의 무결성이 유지됨
- Isolation (고립성) → 동시에 실행되는 트랜잭션이 서로 영향을 주지 않음
- Durability (지속성) → 트랜잭션이 완료되면 데이터가 영구적으로 저장됨
✔ 예제: 트랜잭션 사용 (오라클 & SQL Server 공통)
BEGIN TRANSACTION;
UPDATE Accounts SET Balance = Balance - 1000 WHERE AccountID = 1;
UPDATE Accounts SET Balance = Balance + 1000 WHERE AccountID = 2;
COMMIT;
3. 결론
✅ SQLD 자격증에서는 관계형 데이터베이스의 개념과 무결성, 정규화, 트랜잭션을 정확히 이해해야 함
✅ 테이블 간 관계(1:1, 1:N, M:N)와 PK, FK의 역할을 숙지해야 함
✅ 정규화를 통해 데이터 중복을 줄이고, 트랜잭션을 활용하여 데이터의 일관성을 유지해야 함
📌 SQL 실습을 통해 관계형 데이터베이스 개념을 직접 적용해 보세요!