Database

이승수·2021년 9월 15일
0

관계형 데이터베이스(Relational Database)

Relational Database : 테이블을 사용하는 구조화된 데이터
사전에 정의된 테이블을 relation이라고도 부른다

  • 데이터 : 각 항목에 저장되는 값
  • 테이블(relation) : 사전에 정의된 행과 열로 구성되어 있는 체계화된 데이터
  • 필드(column) : 테이블의 열
  • 레코드(tuple) : 테이블의 한행에 저장된 정보
  • 키 : 테이블의 각 레코드를 구분할 수 있는 값 / 각 레코드마다 고유값이어야 하며 기본키(primary key)와 외래키(foreign key) 등이 있다

관계 종류

1. 1:1 관계

테이블의 레코드 하나당 다른 테이블의 한 레코드와 연결되어 있는 경우

  • 보통 이런 관계는 같은 테이블에 적는게 나아서 흔치 않다

2. 1:N 관계

테이블의 레코드 하나당 여러개의 레코드와 연결되어 있는 경우

한명의 유저가 여러개의 전화번호를 가질 수 있다(반대는 불가)

  • 이러한 '일대다' 관계는 관계형 데이터베이스에서 가장 많이 사용

3. N:N 관계

여러 개의 레코드가 여러 개의 레코드를 가지는 관계

양방향에서 다수를 가질 수 있는 경우

  • 다대다 관계는 두 개의 일대다 관계라고 볼 수 있다. 양테이블에서 일대다 관계를 형성할 수 있는 새로운 테이블을 만들어 관리할 수 있다.

✅ Example

CUSTOMER_TABLE = """CREATE TABLE Customer(
	customer_id INT NOT NULL PRIMARY KEY,
	customer_name VARCHAR(32) NOT NULL,
	customer_age INT);"""

PACKAGE_TABLE = """CREATE TABLE Package(
	package_id INT NOT NULL PRIMARY KEY,
	package_name VARCHAR(32) NOT NULL,
	package_date DATE);"""

CUSTOMER_PACKAGE_TABLE = """CREATE TABLE Customer_Package(
	cp_id INT NOT NULL PRIMARY KEY,
	customer_id INT,
	package_id INT,
	FOREIGN KEY(customer_id) REFERENCES Customer(customer_id)
	FOREIGN KEY(package_id) REFERENCES Package(package_id));"""

# 대문자로 해야 오류가 없다
profile
AI/Data Science

0개의 댓글