관계형 데이터베이스(RDB)
- 데이터를 테이블, 행, 열 등으로 나누어 구조화하는 방식
- 구조화해서 저장하므로 체계적으로 데이터를 저장하고 관리할 수 있음
- 자료를 여러 테이블로 나누어서 관리할 수 있음
- 테이블간 관계를 설정해 여러 데이터를 조작할 수 있음
- 데이터의 무결성(일관되고 정확하게) 유지에 강함
- SQL을 사용하여 데이터를 조회하고 조작
관계형 데이터베이스의 구조
스키마(Schema)
- 테이블의 구조(Structure)
- 데이터베이스에서 자료의 구조, 표현 방법, 관계 등 전반적인 명세를 기술한 것
| column | datatype |
|---|
| id | INTEGER |
| name | TEXT |
| address | TEXT |
| age | INTEGER |
테이블
- 테이블(table)
- 필드와 레코드를 사용해 조작된 데이터 요소들의 집합
- 관계(Relation)라고도 부름
- 필드(field)
- 속성, 컬럼(Column)
- 각 필드에는 고유한 데이터 형식(타입)이 지정됨
- 레코드(record)
- 튜플, 행(Row)
- 테이블의 데이터는 레코드에 저장됨
- PK(Primary Key, 기본 키)
- 테이블에 저장된 각각의 레코드를 구분하는 고유값
- 기술적으로 다른 항목과 절대로 중복될 수 없는 단일(unique) 값
- 데이터베이스 관리 및 테이블 간 관계 설정 시 주요하게 활용
- 하단 표에서는 id 값을 PK로 활용할 수 있음
| 테이블 | 필드 (PK) | 필드 | 필드 | 필드 |
|---|
| id | name | age | email |
| 레코드 | 1 | naruto | 12 | naruto@gmail.com |
| 레코드 | 2 | kintoki | 27 | kintoki@gmail.com |
| 레코드 | 3 | edo | 14 | edo@gmail.com |
| 레코드 | 4 | sano | 15 | sano@gmail.com |
FK(Foreign Key, 외래 키)
- 한 테이블의 속성 중 다른 테이블의 레코드를 식별할 수 있는 키
- 다른 테이블의 기본 키를 참조
- 참조하는 테이블의 속성 1개의 값은, 참조되는 측 테이블의 레코드 값에 대응됨
- 각 레코드에서 서로 다른 테이블 간의 관계를 만드는 데 사용할 수 있음
| id | 주문일 | 주문 상태 | 고객 ID (FK) |
|---|
| 1 | 2024/02/01 | 배송 완료 | 3 |
| 2 | 2024/02/02 | 배송 중 | 5 |
| 3 | 2024/02/03 | 상품 준비 중 | 2 |