DevOps BootCamp/Section 1 실습과제

데이터베이스 설계

cloudmaster 2023. 4. 3. 23:26

관계형 데이터베이스

  • 데이터(data): 각 항목에 저장되는 값
  • 테이블(table; 또는 relation) : 사전에 정의된 열의 데이터 타입대로 작성된 데이터가 행으로 축적
  • 칼럼(column; 또는 field) : 테이블의 한 열을 가리킴
  • 레코드(record; 또는 tuple) : 테이블의 한 행에 저장된 데이터
  • 키(key) : 테이블의 각 레코드를 구분할 수 있는 값입니다. 각 레코드마다 고유한 값을 가집니다. 기본키(primary key)와 외래키(foreign key) 등이 있음

 

1:1 관계

 - 하나의 레코드가 다른 테이블의 레코드 한 개와 연결된 경우

- 각 전화번호가 단 한 명의 유저와 연결되어 있고, 그 반대도 동일하다면, User 테이블과 Phonebook 테이블은 1:1 관계

 

1:N 관계

 하나의 레코드가 서로 다른 여러 개의 레코드와 연결된 경우

 

 - 한 명의 유저가 여러 전화번호를 가질 수 있음, . 그러나 여러 명의 유저가 하나의 전화번호를 가질 수는 없음

 

N:N 관계

- 여러 개의 레코드가 다른 테이블의 여러 개의 레코드와 관계가 있는 경우

- N:N(다대다) 관계를 위해 스키마를 디자인할 때에는, Join 테이블을 만들어 관리합니다. 1:N(일대다) 관계와 비슷하지만, 양방향에서 다수의 레코드를 가질 수 있음

 

 - customer_package 테이블에서는 고객 한 명이 여러 개의 여행 상품을 가질 수 있고, 여행 상품 하나를 여러 명의 고객이 가질 수 있음

 

 

자기참조 관계(Self Referencing Relationship)

 - user_id는 기본 키(primary key), name은 사용자의 이름, 그리고 recommend_id는 추천인 아이디

 - 한 명의 유저(user_id)는 한 명의 추천인(recommend_id)를 가질 수 있음

 - 그러나 여러 명이 한 명의 유저를 추천인으로 등록할 수 있음

'DevOps BootCamp > Section 1 실습과제' 카테고리의 다른 글

Progect1 회고  (0) 2023.04.05