0. 데이터베이스란?
데이터베이스는 일정한 규칙을 통해 구조화되어 저장되는 데이터 모음이다. 해당 데이터베이스를 제어하고 관리하는 통합 시스템을 DBMS라고 하며, 데이터베이스 안에 있는 데이터들은 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있다. 데이터베이스는 실시간 접근과 동시 공유가 가능하다.
1. 엔터티
엔터티는 사람, 장소, 물건, 사건 등 하나 이상의 속성을 지닌 명사를 의미한다. 즉, 데이터 모델링에서 저장하고 관리해야 할 정보의 대상을 의미한다. 엔터티는 고유한 식별자(기본 키)에 의해 구분될 수 있어야 하며, 지속적으로 관리하고 유지해야 할 정보여야 한다. 엔터티는 강한 엔터티와 약한 엔터티로 나뉘며, 그 관계를 식별 관계라고 한다.
1) 강한 엔터티
자체적으로 고유한 기본 키를 가지고, 그 키만으로 개별 인스턴스를 완벽하게 식별할 수 있는 엔터티이다. 다른 엔터티의 기본 키에 의존하지 않고 독립적으로 존재할 수 있으며, 데이터 모델링에서 독립적인 주체 역할을 한다.
2) 약한 엔터티
자체적인 기본 키만으로는 개별 인스턴스를 식별할 수 없으며, 반드시 다른 엔터티(강한 엔터티)의 기본 키를 빌려와야만 식별이 가능한 엔터티이다. 존재 자체가 다른 강한 엔터티에 의존하며, 강한 엔터티의 기본 키를 자신의 기본 키 일부로 포함하는 복합 키 형태를 가진다.
2. 릴레이션
릴레이션은 데이터베이스에서 데이터를 저장, 구분, 관리하는 기본 단위이다. 흔히 테이블이라고 말하는 것과 같은 의미이다. 릴레이션은 행과 열로 구성된 2차원 표 형태를 가진다.
| 용어 (데이터베이스) | 의미 (현실 용어) |
| 릴레이션 (Relation) | 테이블 (Table), 컬렉션(Collection) |
| 튜플 (Tuple) | 행 (Row) 또는 레코드 (Record) |
| 애트리뷰트 (Attribute) | 열 (Column) 또는 필드 (Field) |
| 도메인 (Domain) | 애트리뷰트가 가질 수 있는 값의 타입과 범위 |
| 차수 (Degree) | 릴레이션이 가진 애트리뷰트(열)의 수 |
| 카디널리티 (Cardinality) | 릴레이션이 가진 튜플(행)의 수 |
3. 속성
속성은 엔터티가 가지는 고유한 특성이자, 릴레이션에서 관리하는 구체적이고 고유한 이름을 갖는 정보이다. 속성은 이름, 값, 도메인으로 구성된다.
| 개체 특성에 따른 분류 | 값 생성 방식에 따른 분류 | 엔터티 식별자에 따른 분류 |
| 단일 값 속성 | 저장 속성 | 키 속성 |
| 복합 속성 | 파생 속성 | 비 키 속성 |
| 단일 속성 | ||
| 다중 값 속성 |
4. 도메인
도메인은 속성이 가질 수 있는 유효한 값들의 집합을 의미한다. 속성 값의 타입과 범위를 정의하여 데이터의 무결성을 보장하는 데 사용되는 핵심 개념이다.
5. 필드와 레코드
필드는 데이터를 구성하는 가장 기본적인 단위이며, 특정 속성을 담는 공간을 의미한다. 레코드는 하나의 완전한 데이터 묶음이자 단일 엔터티 인스턴스를 나타낸다. 테이블의 관점에서, 필드는 열(Column)에 해당하며, 레코드는 행(Row)를 구성하는 각 항목을 의미한다.
- 숫자 타입 : TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, FLOAT, DOUBLE 등
- 날짜 타입 : DATE, DATETIME, TIMESTAMP 등
- 문자 타입 : CHAR, VARCHAR, TEXT, BLOB, ENUM, SET 등
6. 관계
데이터베이스에는 여러 개의 테이블이 있고 이 테이블들은 서로 논리적으로 연결된 관계가 정의되어 있다. 관계는 주로 기본 키와 외래 키를 통해 구현되며, 세 가지 주요 유형으로 분류된다.
- 1:1 관계 : 엔터티 A의 인스턴스 하나가 엔터티 B의 인스턴스 하나와 연결되는 경우이다. (반대로도 성립)
- 1:N 관계 : 엔터티 A의 인스턴스 하나가 엔터티 B의 여러 인스턴스와 연결될 수 있고, 엔터티 B의 인스턴스 하나는 엔터티 A의 인스턴스 하나와만 연결되는 경우이다.
- N:M 관계 : 엔터티 A의 인스턴스 하나가 엔터티 B의 여러 인스턴스와 연결될 수 있고, 동시에 엔터티 B의 인스턴스 하나도 엔터티 A의 여러 인스턴스와 연결될 수 있는 경우이다.
7. 키
키는 테이블 내에서 튜플을 유일하게 식별하거나 다른 릴레이션과의 관계를 설정하는 데 사용되는 하나 이상의 속성 집합을 의미한다. 데이터의 무결성을 보장하는 데 핵심 역할을 한다. 슈퍼키는 유일성이 있고, 그 안에 포함된 후보키는 최소성을 갖춘다. 후보키 중에서 기본키로 선택되지 못한 키는 대체키가 된다.
1) 기본키
PK 또는 프라이머리키라고도 하며, 후보키들 중에서 데이터베이스 설계자가 테이블의 대표 키로 최종 선택한 키를 말한다. 유일성과 최소성을 만족하며, NULL 값을 가질 수 없는 개체 무결성의 특징을 지니고 있다.
- 자연키 : 데이터 자체가 가지는 고유한 속성을 기본 키로 선택한 경우
- 인조키 : 데이터와는 관련 없이, 시스템이 데이터 식별을 위해 인위적으로 생성한 고유 번호 (ex. AUTO INCREMENT)
2) 외래키
FK라고도 하며, 다른 테이블의 기본키를 참조하는 속성이다. 릴레이션 간의 관계를 설정하는 데 사용된다. 외래키는 자신이 참조하는 테이블의 기본 키와 동일한 속성과 도메인을 가져야 한다. 외래키 값은 참조테이블의 기본 키 값이나 NULL만 가질 수 있는 참조 무결성의 특징을 가지고 있다.
3) 후보키
기본키가 될 수 있는 후보이며, 유일성과 최소성을 동시에 만족하는 키이다. 즉, 어떤 속성 하나를 제거하면 더 이상 유일하게 식별할 수 없게 되는 최소한의 키이다. 하나의 테이블에는 여러 개의 후보키가 존재할 수 있다.
4) 대체키
후보키가 두 개 이상일 경우 어느 하나를 기본키로 지정하고, 선택되지 않은 나머지 후보키들을 말한다.
5) 슈퍼키
레코드를 유일하게 식별할 수 있는 유일성을 가진 키이다. 슈퍼키는 유일성은 만족하지만, 최소성은 만족하지 못할 수도 있다.
'CS 스터디' 카테고리의 다른 글
| 4-3. 트랜잭션과 무결성 - 트랜잭션, 무결성 (0) | 2025.11.27 |
|---|---|
| 4-2 ERD와 정규화 과정 - ERD의 중요성, 정규화 과정 (0) | 2025.11.27 |
| 3-4. CPU 스케줄링 알고리즘 - 비선점형 방식, 선점형 방식 (2) | 2025.11.08 |
| 3-3. 프로세스와 스레드 [02] - 스레드와 멀티스레딩, 공유 자원과 임계 영역, 교착 상태 (0) | 2025.11.08 |
| 3-3. 프로세스와 스레드 [01] - 프로세스와 컴파일 과정, 상태, 메모리 구조, PCB, 멀티프로세싱 (0) | 2025.11.08 |