TIL | DataBase & ERD

gemma. K·2020년 11월 1일
post-thumbnail

Database

  • 컴퓨터 시스템에 저장된 일련의 정보 및 정보의 집합체
  • 그 내용을 논리적으로 구조화 및 기술적으로 모델링 하므로써 검색과 갱신의 효율성을 높힘
  • 관계형 데이터 베이스(Relational Database) 비관계형 데이터 베이스(NoSQL)로 나뉨
  • 데이터 베이스는 주로 데이터베이스 관리 시스템(DBMS, DataBase Management System)으로 관리 되어짐.
    ex) MySql, Oracle, MongoDB 등

ERD

  • 개체 관계 다이어그램 (Entity Relationship Diagram)
  • Entity(개체): 분리된 물체, 하나의 개체를 의미한다. ERD에서는 하나의 테이블이 된다.
  • Relationship(관계성): 여러 개체들은 서로 연관되어 관계를 갖는다.

Why ERD ?
데이터 베이스에 아무런 연관 없는 정보를 규칙 없이 나열하는 것은 더 많은 디스크를 사용하게 되어 비효율적

RDBMS (Relational DataBase Management System)

  • 관계형 데이터 베이스를 관리하는 시스템
  • 모든 데이터를 2차원의 테이블(table)에 담아 저장 및 이용
  • 각각의 테이블은 상호 연관성을 가지며 FK(Foreign Key, 외래키)를 통해 연결되며 그 관계는 one to one, one to many, many to many 관계로 나뉘어짐
  • 각 각의 테이블에는 칼럼(column)과 로우(row)로 이루어져 있으며 각 칼럼 테이블의 각 항목을 의미하며 로우는 테이블에 존재하는 실제 데이터를 의미함
  • 아래 테이블은 사용자의 정보를 담은 테이블이며 id, name, account, nickname은 컬럼, id가 1인 로우는 하나의 실제 데이터를 의미한다.
+------+--------+---------+-------------+
|  id  | name   | account | nickname    | 
+----+--------+---------+---------------+
|  1   | 둘리    | dooli   | 길동이네 공룡   |
+------+--------+---------+-------------+

1. one to one

  • one to one 관계는 table A 로우 하나와 table B의 로우 하나가 일대일 매칭되는 경우를 말한다.
    Ex. user table과 user_profile table은 일대일로 매칭된다. 하나의 유저는 하나의 profile 외에는 갖을 수 없기 때문이다.

2. one to many

  • one to many 관계는 table A의 로우 하나와 table B의 로우 여러 개가 매칭되는 경우이다.
    Ex. 하나의 사용자는 여러 포스팅이 가능하므로 user table에서 post table이 일대다로 연결된다.

3. many to many

  • many to many는 table A의 하나의 로우가 table B의 여러 로우와 매칭되고, 동시에 table B 하나의 로우가 table A의 여러 로우가 매칭되는 다대다 관계를 의미한다. many to many 관계는 두 테이블 뿐 아니라 두 테이블 간의 관계를 보여주는 중간 테이블이 존재한다.
    Ex. 하나의 책은 여러 저자에 의해 쓰여질 수 있고, 동시에 한 저자를 여러 책을 집필할 수 있으므로 다대다 관계이다.

0개의 댓글