TIL[66].Database

jake.log·2020년 9월 3일
0

오늘은 데이터베이스에 대한 기초 개념을 배웠다.
처음 접해 조금 어려운 감은 있지만, 데이터를 다루는게 얼마나 중요한 일인지 그리고 모델링은 ㅇ떤 방향으로 해야하는지 조금 익힐 수 있는 시간이었다.

Database란?

데이터베이스는 데이터를 저장하고 보존하는 시스템이다.
application에서 데이터는 메모리 상에 존재하고, 메모리에 존재하는 데이터는 보존되지 않는다. 이로 인해 application을 종료하면 데이터는 다시 읽을 수 없다.

그렇다면 어떻게 디어터를 보존할수 있을까?
데이터를 장기간 동안 저장하고 보존하기 위해서는 데이터베이스가 필요하다.

일반적으로 데이터베잉스는 관계형 데이터베이스(RDBDMS)와 "NoSQL"로 명칭되는 비관계형 데이터베이스가 있다.

RDBMS란? (Relational DataBase Management System)

관계형 데이터베이스(RDBMS)란 관계형 데이터 모델에 기초를 둔 데이터베이스 시스템을 말한다.
My SQL,Postgres, Oracle DB 등이 그 예다.

관계형 데이터는 데이터를 상호 관련성을 가진 형태로 표현한 데이터다.
2차원 테이블(table)로 표현 되며, 각각의 테이블은 컬럼과 로우로 구성된다.

  • 컬럼: 테이블의 각 항목
  • 로우: 각 항목의 실제 값, 고유값(Primary Key) 을 갖고 있다.
    주로 Primary key로 해당 로우를 찾거나 인용(reference)한다.

각 테이블은 서로 상호관련성을 갖고 연결된다.

테이블의 종류

테이블의 종류에는 one to one , one to many, many to many 가 있다.

  1. one to one: 테이블 A의 로우와 테이브 B의 로우가 정확히 일대일 매칭이 되는 관계

  2. one to many: 테이블 A의 로우가 테이블 B의 여러 로우와 연결이 되는 관계

  3. many to many:테이블 A의 로우가 테이블 B의 여러 로우와 연결이 되는 관계

데이터를 연결하는 방법

이러한 테이블들은 Foreign Key(외부키)라는 개념을 사용하여 연결된다.

one to one의 사진을 예로 보자.

user profile테이블의 user_id 컬럼은 users 테이블에 걸려있는 외부키다.
즉 데이터베이스에게 user_id 값은 users테이블의 id 값이고, users 테이블의 id컬럼에 존재하는 값만 생성 될 수 있다.

데이터를 연결하는 이유

테이블 한 곳에 모든 데이터가 저장하게 될 경우 불필요하게 정보들이 중복 저장되고, 더 많은 디스크를 사용하게 되며, 잘못된 데이터가 저장이 될 수 있다. 그렇기 때문에 테이블을 여러 곳에 나누어 데이터를 담는 것이다.

테이블을 나누어 저장한 후 필요한 테이블끼리 연결 시키면 앞서말한 문제들이 사라지며, 이를 정규화(normalization)이라고 한다.

profile
꾸준히!

0개의 댓글