[Database] Structuring DB

Steve·2021년 6월 18일
0

웹개발 코스

목록 보기
46/59

Relational Database

관계형이라고 부르는 이유는 구조화된 데이터가 하나의 테이블로 표현이 되는데 사전에 정의된 테이블을 relation 이라고도 한다.

테이블을 사용하는 DB = 관계형 DB

Keywords

Keyword설명
Data각 항목에 저장되는 값
Table (or relation)사전에 정의된, 행과 열로 구성되어 있는 structured data
Field (or column)테이블의 column
RecordTable 의 row
KeyTable 의 record 를 구분할 수 있는 값. 각 record 마다 고유값을이여야 하며 primary key(기본 키) 와 foreign key(외래 키) 가 있다.

Relation 의 종류

Table 간 관계

  • 1:1 관계
  • 1:N 관계
  • N:N 관계

테이블 자체 관계

  • Self referencing 관계

1:1 관계

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

유저 테이블은 유저 이름과 phone_id 라는 외래키를 가지고 있다.

Phonebook 테이블은 전화번호를 보관하고 있다

한명의 유저가 하나의 전화번호를 가지고 있고 vice versa 도 동일하다면 1:1 관계이다.

하지만 어차피 1:1 이라면 합치는게 나을 수도 있기 때문에 흔치 않다.

1:N 관계

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

한 사람이 여러개의 전화번호를 가질 수 있는데 전화번호는 한 사람만이 가질 수 있는 경우

1:N 관계는 데이터베이스에서 제일 흔한 관계다.

N:N 관계

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

고객 테이블과 여행 상품 테이블이 있으면, 한 고객은 여러 상품을 신청할 수 있고, 또 각 여행 상품은 여러명의 신청한 고객을 가지고 있다.

N:N 관계는 두 개의 테이블과 1:N 관계를 형성하는 새로운 테이블을 만들어서 관리한다. Join table 이라고 부른다.

customer_package 테이블은 customer idpackage id 를 1:1 로 묶는다.

Customer : customer_package = 1:N
Package : customer_package = 1:N

Self Referencing Relationship

자기참조 관계

유저 한명은 한 명의 추천인만 가질 수 있지만 한 유저는 여러명을 추천할 수 있다.

profile
게임과 프론트엔드에 관심이 많습니다.

0개의 댓글