관계형 데이터베이스 학습

see1237·2022년 8월 8일
0

Section2

목록 보기
5/10

학습 키워드

  • SQL 주요 문법
  • ACID
  • SQL vs. NoSQL
  • 스키마 디자인
  • 데이터베이스 설계 - 1:1, 1:N, N:N, self referencing 관계.
  • Primary Key, Foreign Key

SQL

  • 데이터베이스용 프로그래밍 언어
  • Structured Query Language(구조화쿼리 언어)
    • 데이터베이스에 query를 보내 원하는 데이터만을 뽑아올 수 있다.
  • SQL을 사용할 수 있는 데이터베이스와 달리, 데이터의 구조가 고정되어 있지 않은 데이터베이스를 NoSQL이라고 한다.

Primary Key, Foreign Key

키(key) : 테이블의 각 레코드를 구분할 수 있는 값. 각 레코드마다 고유한 값을 가진다.

  • 기본키(primary key)
    • 테이블의 각 행을 고유하게 식별하는 값을 가진 열 또는 열 조합
    • 개체 무결성 원칙
      • 기본키는 null 값이 될 수 없음
  • 외래키(foreign key)
    • 테이블의 데이터 간 연결을 설정하고 강제 적용하여 외래 키 테이블에 저장될 수 있는 데이터를 제어하는 데 사용되는 열
    • 다른 테이블의 기본키를 참조하여 두 테이블 간의 연결을 설정한다.
    • 참조 무결성 원칙
      • 기본키가 지정된 테이블과 외래키가 지정된 테이블 사이에서, 외래키로 지정된 컬럼 데이터가 기본키로 지정된 테이블 컬럼값 외 값을 가질 수 없다는 제약 조건

테이블과 테이블 사이의 관계

1:N 관계

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

한 명의 유저가 여러 전화번호를 가질 수 있지만, 여러명의 유저가 하나의 전화번호를 가질 수는 없다.
계층적인 구조로 이해하자면, 부모 테이블의 PK를 자식 테이블에 FK로 집어 넣어 관계를 표현한다. 즉 부모 테이블(1)에서는 내 자식들이 누구인지 정보를 넣을 필요가 없고, 자식 테이블(N)에서만 각각의 자식들이 자신의 부모 정보(FK)를 넣음 으로써 관계를 표현할 수 있다.

N:N 관계

여러 개의 레코드가 다른 테이블의 여러 개의 레코드와 관계가 있는 경우(서로가 서로를 1:N 관계로 보고 있는 것)
N:N(다대다) 관계를 위해 스키마를 디자인할 때에는, Join 테이블을 만들어 관리한다.

join 테이블인 customer_package 테이블에서는 고객 한 명이 여러 개의 여행 상품을 가질 수 있고, 여행 상품 하나가 여러 개의 고객을 가질 수 있다. (조인 테이블을 생성하더라도, 조인 테이블을 위한 기본키(여기서는 cp_id)는 반드시 있어야 한다.)

0개의 댓글