728x90
1. Relational Database 개요
Relational Database(관계형 데이터베이스)는 여러 개의 Relation(테이블)로 구성되며, 데이터를 구조화된 형태로 저장하고 관리하는 데이터 모델이다. 여기서, set(집합)의 개념은 관계형 데이터베이스를 이해하기 위해 꼭 알아야 하는 개념이다.
2.1 Set (집합)의 특징
- 서로 다른 요소(Elements)를 가지는 Collection
- 순서는 중요하지 않다
2.2 Relation의 개념
- Set of Tuples (튜플들의 집합)
- 데이터베이스에서 테이블(Table)로 표현된다
2.3 Cartesian Product (직교곱) 개념
집합 A와 B가 있을 때, Cartesian Product는 두 집합의 모든 가능한 조합을 의미한다.
Set A = {학생1, 학생2}
Set B = {책A, 책B, 책C}
Cartesian Product (A × B) = {
(학생1, 책A), (학생1, 책B), (학생1, 책C),
(학생2, 책A), (학생2, 책B), (학생2, 책C)
}
set의 개념을 바탕으로,
실제 관계형 데이터베이스에서는 불필요한 조합을 제거하고, 외래키(Foreign Key) 관계를 활용하여 데이터를 구조화한다.
3. Relation 의 특징
아래와 같은 테이블로 이루어진 데이터 베이스가 있다고 가정하고, 각각의 요소와 특징이다.
학생(Student) 테이블
| 학번(Student_ID) | 이름(Name) | 학년(Grade) |
|---|---|---|
| 1001 | 홍길동 | 2 |
| 1002 | 김철수 | 3 |
| 1003 | 이영희 | 1 |
도서(Book) 테이블
| 도서코드(Book_ID) | 도서명(Title) | 저자(Author) |
|---|---|---|
| B001 | 데이터베이스 개론 | 홍길동 |
| B002 | 알고리즘 문제 해결 | 김철수 |
| B003 | 파이썬 프로그래밍 | 이영희 |
대출(Loan) 테이블 (학생과 도서의 관계)
| 학번(Student_ID) | 도서코드(Book_ID) | 대출일(Loan_Date) |
|---|---|---|
| 1001 | B001 | 2024-02-01 |
| 1002 | B002 | 2024-02-02 |
| 1003 | B003 | 2024-02-03 |
3.2 Relation의 특징 정리
- 중복된 Tuple을 가질 수 없다.
- Tuple을 식별하기 위해 Key를 설정한다.
- Tuple(행)의 순서는 중요하지 않다.
- Attribute(열)의 순서는 중요하지 않다.
- Attribute는 Atomic(원자적)이어야 한다. > 더 이상 나눌 수 없는 값을 가져야 한다는 의미
4. Relation Schema와 Relation State
4.1 Relation Schema
- 테이블의 구조를 정의
- Relation 이름과 Attribute(속성) 리스트로 구성된다.
- 예:
STUDENT(id, name, grade, major, phone_num, emer_phone_num)
4.2 Relation State
- 테이블에 저장된 실제 데이터(튜플들의 집합)
5. Key
5.1 키의 종류
- Super Key (슈퍼키): 튜플을 유일하게 식별할 수 있는 속성 또는 속성들의 집합
- Candidate Key (후보키): Super Key 중에서 최소성을 만족하는 키
- Primary Key (기본키): 후보키 중에서 한 개를 선정하여 사용하는 키
- Alternate Key (대체키): 후보키 중에서 Primary Key로 선택되지 않은 키
- Foreign Key (외래키): 다른 테이블의 Primary Key를 참조하는 속성
- Composite Key (복합키)두 개 이상의 속성으로 이루어진 Primary Key
5.2 키 정의
학생(Student) 테이블
| Student_ID (PK) | Name | Grade |
|---|---|---|
| 1001 | 홍길동 | 2 |
| 1002 | 김철수 | 3 |
대출(Loan) 테이블
| Student_ID (FK) | Book_ID (FK) | Loan_Date |
|---|---|---|
| 1001 | B001 | 2024-02-01 |
6. Degree of a Relation
- Relation Schema에서 Attribute의 개수를 의미
STUDENT(id, name, grade, major, phone_num, emer_phone_num)→ Degree = 6
7. Relational Model 정리
Relational Model의 핵심 규칙
- 데이터는 테이블 형태(Relation)로 저장됨.
- 각 행(Row, Tuple)은 고유해야 함.
- 각 행을 구분하기 위해 Primary Key가 필요.
- 속성(Attribute)은 Atomic(원자적)이어야 함.
- NULL 값은 다양한 의미를 가질 수 있음.
- 데이터 간의 관계(Relationship)는 Foreign Key를 통해 표현.
Reference.
- 쉬운코드(https://www.youtube.com/watch?v=aL0XXc1yGPs&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe)
728x90