[Database]

박영준·2020년 10월 31일
0

위의 표는 스타벅스 메뉴를 나타낸 것이다.
category - sub-category
sub-category - product
product - product_allergy - allergy
nutrient - product_allergy

Database 기초 이해 및 설치

  • 데이터를 저장 및 보존 하는 시스템
  • Application에서는 데이터가 메모리 상에서 존재한다. 그리고 메모리에 존재하는 데이터는 보존이 되지 않는다. 해당 애플리케이션이 종료하면 메모리에 있던 데이터들은 다시 읽어 들일 수 없다.
  • 데이터를 장기 기간동안 저장 및 보존 하기 위해서 데이터 베이스를 사용하는 것이다.
  • 일반적으로 database에는 크게 관계형 데이터베이스(RDBMS)와 "NoSQL"로 명칭되는 비관계형(Non-relational) database가 있다

관계형 데이터베이스(RDBMS, Relational DataBase Management System)

  • 이름 그대로, 관계형 데이터 모델에 기초를 둔 데이터베이스 시스템을 말한다.
    • ex) MySQL, Postgres, Oracle DB
  • 관계형 데이터란 데이터를 서로 상호관련성을 가진 형태로 표현한 데이터를 말한다.
    • 모든 데이터들은 2차원 테이블(table)들로 표현 된다.
    • 각각의 테이블은 컬럼(column)과 row(로우)로 구성된다.
      • 컬럼은 테이블의 각 항목을 말한다.
      • 로우는 각 항목들의 실제 값들을 이야기 한다.
      • 각 로우는 저만의 고유 키(Primary Key)가 있다. 주로 이 primary key를 통해서 해당 로우를 찾거나 인용(reference)하게 된다.
  • 각각의 테이블들은 서로 상호관련성을 가지고 서로 연결될 수 있다.
    • 테이블끼리의 연결에는 크게 3가지 종류가 있다.
      • one to one
      • one to many
      • many to many
  • One To One
    • 테이블 A의 로우와 테이블 B의 로우가 정확히 일대일 매칭이 되는 관계를 one to one 관계라고 한다.

  • One To Many
    • 테이블 A의 로우가 테이블 B의 여러 로우와 연결이 되는 관계를 one to many 관계라고 함.

    각 고객은 여러 제품을 구매할 수 있지만 구매된 제품의 주인은 오직 한 고객 뿐이다 - one to many
  • Many To Many
    • 테이블 A의 여러 로우가 테이블 B의 여러 로우와 연결이 되는 관계를 many to many 라고 함. 아래는 화살표가 반대이다.

    책은 여러 작가에 의해 쓰일 수 있고 작가들은 여러 책을 쓸 수 있다 - many to many

어떻게 테이블과 테이블을 연결하는가?

  • Foreign key(외부키 뽀린키)라는 개념을 사용하여 주로 연결
  • 앞서 본 one to one 예에서 user_profiles 테이블의 user_id 컬럼은 users 테이블에 걸려있는 외부 키라고 지정한다.
  • 즉 데이터베이스에게 user_id의 값은 users 테이블의 id 값이며 그러므로 users 테이블의 id 컬럼에 존재하는 값만 생성될 수 있다.
  • 만일 users 테이블에 없는 id 값이 user_id 에 지정되면 에러가 난다.
profile
React, React-Native Developer

0개의 댓글