부트캠프

관계형 데이터베이스 part2

hunm719 2023. 1. 31. 20:36

3.데이터베이스 설계

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

 -테이블과 테이블 사이의 관계 종류
  (1)1:1(일대일) 관계 : 하나의 레코드가 다른 테이블의 레코드 한 개와 연결된 경우

1:1 관계

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

 


  (2)1:N(일대다) 관계 : 하나의 레코드가 다른 테이블의 서로 다른 여러 개의 레코드와 연결된 경우

1:N 관계

  -이 구조에서 한 명의 유저가 여러 전화번호를 가질 수 있지만 여러명의 유저가 하나의 전화번호를 가질 수 없다면 User 테이블과 Phonebook은 1:N 관계임

 


  (3)N:M(다대다) 관계 : 여러 개의 레코드가 다른 테이블의 여러 개의 레코드와 관계가 있는 경우

Customer table과 Package table의 N:N 관계를 위해 customer_package 테이블을 생성

  -다대다 관계는 두 개의 일대다 관계와 그 모양이 같음. 두 개의 테이블과 1:N(일대다) 관계를 형성하는 새로운 테이블로 N:N(다대다) 관계를 나타낼 수 있으며, 다대다 관계를 위한 테이블을 조인 테이블(위 그림에서 customer_package가 조인테이블에 해당)이라고 함.

 

  +이렇게 조인 테이블을 생성하더라도, 조인 테이블을 위한 기본키(여기서는 ID)는 반드시 있어야 함

  +조인 테이블 사용하지 않을 경우 문제점.

  • 문제 1. 필드에 저장되는 데이터의 크기를 설정해야 하는데 크기가 엄청 커지고 데이터가 저장되지 못할 수 있음
  • 문제 2. 데이터를 조회하는데 많은 비용이 발생함
  • 문제 3. 데이터를 수정할 때 두 곳에 수정이 잘 되었는지 확인이 불편하여 실수를 유발할 수 있음


  (4)자기참조 관계(Self Referencing Relationship) : 테이블 내에서 관계가 필요한 경우에 사용되며 일대다 관계와 유사함

 

 

 

 

-이미지 및 내용 출처 - code states

'부트캠프' 카테고리의 다른 글

Spring Framework 기본  (1) 2023.02.03
Spring Framework 소개  (1) 2023.02.02
관계형 데이터베이스 part1  (0) 2023.01.30
네트워크 - HTTP  (0) 2023.01.30
네트워크 - 웹 애플리케이션 작동원리 part2  (0) 2023.01.30