1. 1:1 관계
: 하나의 레코드가 다른 테이블의 레코드 한 개와 연결된 경우
Ex.
* 모든 예시에서 레코드 이름 외 작성 생략함
CREAT TABLE User {
user_id int,
name varcahr,
phone_id int
}
CREAT TABLE Phonebook {
phone_id int,
phone_number int
}
phone_id는 외래키(foreign key)로써, Phonebook 테이블의 phone_id와 연결되어 있다고 보았을 때 각 전화번호가 단 한명의 유저와 연결되어 있고, 그 반대도 동일하다면 1:1 관계를 가진다.
2. 1:N 관계 (관계형 데이터베이스에서 가장 많이 사용)
: 하나의 레코드가 서로 다른 여러개의 레코드와 연결된 경우
Ex.
CREAT TABLE User {
user_id int,
name varcahr
}
CREAT TABLE Phonebook {
phone_id int,
phone_number int,
user_id int
}
한 유저가 여러 전화번호를 가질 수 있지만, 여러명의 유저가 하나의 전화번호를 가질 수 없기에 1:N 관계를 가진다.
3. N:N 관계
: 여러 개의 레코드가 다른 테이블의 여러 개의 레코드와 관계가 있는 경우
: 다대다 관계를 위해 스키마 디자인을 할 경우 Join 테이블을 만들어 관리함 (일대다 관계와 비슷하지만, 양방향에서 다수의 레코드를 가질 수 있음)
Ex.
CREAT TABLE Customer{
customer_id int,
name varchar
}
CREAT TABLE Package{
package_id int,
package_name
}
여러개의 여행 상품이 있고, 여러명의 고객이 있을 경우 고객 한명은 여러개의 여행 상품을 구매할 수 있고, 여행 상품 하나는 여러명의 고객이 구매할 수 있기에 N:N 관계를 가진다. (이 경우 조인 테이블을 통해 연결이 필요함)
* 조인 테이블 생성
CREAT TABLE Customer_Package{
cp_id int,
customer_id int,
package_id int
}
Customer 테이블의 customer_id와 Customer_Package 테이블의 customer_id가 일대다 관계로, Package 테이블의 package_id와 Customer_Package 테이블의 package_id가 일대다 관계로 연결되어 각 테이블을 다대다 관계로 묶어주는 역할을 함
4. self referencing 관계 (자기참조 관계)
: 테이블 내에서의 관계
'공부 자료 > DataBase' 카테고리의 다른 글
[MariaDB] MariaDB 설치하기(맥북 포함) & Sequel Pro 사용 (0) | 2023.09.04 |
---|---|
[데이터베이스] SQL 명령어 정리 (0) | 2022.10.10 |
[데이터베이스] 데이터베이스 정규화/비정규화 (0) | 2022.10.10 |
[데이터베이스] 관계형 데이터베이스 (1) | 2022.10.05 |
[데이터베이스] About 스키마(Schema) (0) | 2022.10.05 |