관계형 데이터베이스 핵심 개념 정리
관계형 데이터베이스(Relational Database)는 구조화된 데이터를 효율적으로 저장하고 검색하기 위해 널리 사용되는 모델입니다.
이 글에서는 관계형 모델의 핵심 용어부터 트랜잭션의 ACID 원칙까지, 핵심 개념들을 정리합니다.
1. 관계형 모델의 기본 용어 (Relational Model Terminology)
용어의미
Domain | 하나의 속성이 가질 수 있는 값들의 집합. 예: 학번은 숫자 8자리 |
Attribute | 릴레이션의 열(Column). 속성. 기본적으로 NULL 포함 가능 |
Tuple | 릴레이션의 행(Row). 한 명의 학생 정보 등 |
Relation | 튜플들의 집합. 즉, 하나의 테이블 |
Database | 여러 릴레이션(테이블)들의 집합 |
2. 스키마와 인스턴스
- Schema (스키마)
데이터베이스의 논리적 구조를 의미합니다. 테이블 이름, 속성 이름, 타입 등 정적 정보로 구성되며, 정의의 역할을 합니다. - Instance (인스턴스)
데이터베이스에 실제로 저장된 데이터의 상태, 즉 특정 시점의 데이터 스냅샷입니다. 시간에 따라 바뀔 수 있습니다.
3. 키 (Key)의 개념
키는 튜플을 식별하기 위해 사용되는 속성들의 집합입니다.
Super Key
- 튜플을 유일하게 식별할 수 있는 속성들의 집합
- 단, 불필요한 속성이 포함될 수 있음
- 예: {학번, 이름}, {학번}, {학번, 주번, 이름} 등
Candidate Key
- Super Key 중 최소 집합
- 어느 하나의 속성이라도 빠지면 유일성이 보장되지 않음
Primary Key
- 후보 키(Candidate Key) 중 대표로 선택된 키
- 절대 NULL을 허용하지 않음
- → Entity Integrity (개체 무결성) 보장
Foreign Key
- 다른 릴레이션의 Primary Key를 참조하는 속성
- → Referential Integrity (참조 무결성) 보장
- 존재하지 않는 값을 참조할 수 없음
- 참조된 튜플을 삭제하거나 변경 시 제약 발생
4. 개체-관계 모델 (Entity-Relationship Model)
ER 모델은 데이터베이스 설계 초기 단계에서 시스템의 개념적 구조를 시각화하는 데 사용됩니다.
ERD(ER Diagram) 표기법
기호 | 의미 |
네모 | Entity (객체) |
동그라미 | Attribute (속성) |
마름모 | Relationship (관계) |
5. 데이터베이스 언어 (DB Language)
분류 | 설명 |
DDL (Data Definition Language) | 테이블, 속성, 제약조건 등 데이터 구조 정의 |
DML (Data Manipulation Language) | 데이터를 조회/삽입/수정/삭제 |
DCL (Data Control Language) | 권한 제어, 무결성 제어 등 보안 및 제약 관리 |
SQL은 DDL, DML, DCL 모두 포함합니다. → TRUE
6. 절차적 언어 vs 선언적 언어
분류 | 설명 |
절차적 (Procedural) | "어떻게 처리할 것인지"를 명시 |
선언적 (Non-Procedural) | "무엇을 원하는지"만 명시 |
- 관계대수(Relational Algebra): 절차적
- SQL: 선언적 (Declarative)
7. 트랜잭션 (Transaction)과 ACID
트랜잭션은 하나의 논리적인 작업 단위입니다. 은행 송금, 쇼핑몰 주문 처리 등은 하나의 트랜잭션으로 다뤄져야 합니다.
ACID 원칙
항목 | 설명 |
Atomicity (원자성) | 모든 작업이 완전하게 수행되거나 전혀 수행되지 않아야 함 |
Consistency (일관성) | 트랜잭션 전후에 데이터의 제약조건이 항상 만족되어야 함 |
Isolation (고립성) | 여러 트랜잭션이 동시에 실행될 경우에도, 서로 간섭하지 않음 |
Durability (지속성) | 일단 커밋된 트랜잭션은 시스템 장애가 나도 유지됨 |
마무리
이러한 개념들은 관계형 데이터베이스의 설계, 구현, 운용의 기초를 이루는 핵심들입니다. 단순한 테이블 이상으로, 무결성과 일관성, 동시성 제어를 위해 데이터베이스는 정교하게 구성됩니다. 관계형 모델은 이러한 복잡함을 이론적으로 잘 다듬은 프레임워크이며, 이를 이해하는 것은 효과적인 데이터베이스 설계를 위한 필수 요소입니다.
'Database' 카테고리의 다른 글
DATABASE #6. SETTING SQL DEVELOPER at MAC (0) | 2025.04.28 |
---|---|
DATABASE #5. TO SQL (0) | 2025.04.28 |
DATABASE #4. Relational Algebra 2 (0) | 2025.04.27 |
DATABASE #3. Relation Algebra (0) | 2025.04.27 |
DATABASE #1. WHY DB? (0) | 2025.04.27 |