ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터베이스
    Trainings/세션 정리 2020. 5. 27. 10:00

    Database 란?

    - 데이터를 저장 및 보존하는 시스템

    - Application에서는 데이터가 메모리 상에서 존재하지만, 해당 애플리케이션이 종료되면 메모리에 있던 데이터들은 다시 읽어 들일 수 없기 때문.

    - 데이터를 장기 기간 동안 저장 및 보존하기 위해 데이터 베이스를 사용하는 것.

     

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

    - 이름 그대로, 관계형 데이터 모델에 기호를 둔 데이터베이스 시스템을 말한다.

    - 관계형 데이터란 데이터를 서로 상호 관련성을 가진 형태로 표현한 데이터를 말한다.

    특징

    - 모든 데이터들은 2차원 테이블(table)들로 표현된다.

    - 각각의 테이블은 칼럼(column)과 row(로우)로 구성된다.

    컬럼(column)과 row(로우)은 무엇인가?

    - 칼럼은 테이블의 각 항목을 말한다. 행으로 생각하면 된다.

    - 로우는 각 항목들의 실제 값들을 이야기한다. 열로 생각하면 된다.

    - 각 로우는 저만의 고유 키(Primary Key)가 있다. 주로 이 primary key를 통해서 해당 로우를 찾거나 인용(reference)하게 된다.

     

    각각의 테이블들은 서로 상호 관련성을 가지고 서로 연결될 수 있으며, 크게 3가지 종류가 존재한다.

    1. One To One

    테이블 A의 로우와 테이블 B의 로우가 정확히 일대일 매칭이 되는 관계를 one to one 관계라고 한다.

    출처 : wecode

    2. Many to Many

    테이블 A의 여러 로우가 테이블 B의 여러 로우와 연결이 되는 관계를 many to many라고 한다.

    출처 : wecode

     

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

    - Foreign key(외부 키)라는 개념을 사용해서 연결한다.

    앞서 본 one to one 예에서 user_profiles 테이블의 user_id 칼럼은 users 테이블에 걸려있는 외부 키라고 지정한다.

    - 즉 데이터베이스에게 user_id의 값은 users 테이블의 id 값이며 그러므로 users 테이블의 id 칼럼에 존재하는 값만 생성될 수 있다.

     

    왜 테이블들을 연결하는가?

    - 하나의 테이블에 모든 정보를 다 넣으면 동일한 정보들이 불필요하게 중복되어 저장된다.

    - 여러 테이블에 나누어서 저장한 후 필요한 테이블끼리 연결시키면, 중복된 데이터를 저장하지 않음으로 디스크를 더 효율적으로 쓰고, 또한 서로 같은 데이터이지만 부분적으로 틀린 데이터가 생기는 문제가 없어지기 때문이다.

     

    NoSQL 데이터베이스이란?

    - 비 관계형 타입의 데이터를 저장할때 주로 사용되는 데이터베이스 시스템이다.

    - 관계형 데이터베이스와 다르게 비관계형 이기 때문에 데이터들을 저장하기 전에 정의할 필요가 없다.

    - MongoDB, Redis, Cassandra 등이 가장 대표적인 NoSQL 데이터 베이스이다.

    'Trainings > 세션 정리' 카테고리의 다른 글

    git branch 정리  (0) 2020.05.23
    HTTP 정리  (0) 2020.05.22
    Data Structure(자료구조) - Dictionary(Object)  (0) 2020.05.22
    Data Structure(자료구조) - 자료구조 - Set  (0) 2020.05.21
    JavaScript의 반복문 종류  (0) 2020.05.16

    댓글

Designed by Tistory.