[TIL]데이터베이스 기초

SYhwang·2023년 1월 10일
0

데이터와 데이터베이스

  • 데이터는 수, 단어, 영상 등의 형태로 이루어진 의미의 단위이다.
  • 데이터베이스는 데이터를 한데 모은 것으로, 여러 사람이 사용하고 공유하기 위해 통합하여 관리하는 정보의 집합이다.

데이터베이스를 사용하는 이유

  • 효율성. 서버에서 데이터를 관리하는 경우 효율적으로 관리하기 어렵다.
  • 일관성. 데이터가 여러 서비스에 걸쳐 사용되는 경우 각 서버가 각자 데이터를 가지고 있으면 서로 데이터가 달라질 수 있기에 한 곳에 저장하여 일관되게 관리해야 한다.
  • 체계성. 데이터를 체계적으로 보관하고 관리해야 원하는 자료를 쉽게 조회하고 사용할 수 있다.

관계형 데이터베이스(RDBMS)

DBMS(DataBase Management System)

  • 데이터를 저장하여 관리하는 데이터베이스를 실제로 관리하는 시스템이다. MySQL, Oracle 등이 대표적이다.

RDBMS(Relational DBMS)

  • 상호 관련성을 가진 형태로 데이터를 표현한 것을 관계형 데이터라고 한다. 관계형 데이터 모델에 기초를 둔 DBMS 시스템을 관계형 데이터베이스, RDBMS라고 한다. 예로는 MySQL이 있다.
  • 데이터를 행(Column)과 열(Row)로 구성된 2차원 테이블으로 표현하며, 각각의 테이블은 상호 관련성을 가지고 있다.
  • 각 행은 중복되지 않는 고유한 키를 가지고 있으며, 해당 고유키(Primary Key, PK)를 통해 특정 행을 검색하거나 참조할 수 있다.
  • 고유키가 아닌 키로 참조하거나 검색하는 것도 가능하며, 데이터 중복 등의 문제가 발생할 수 있어 참조시에는 일반적으로 고유키를 사용한다.

관계형 데이터의 관계 유형

1:1 (One To One)

  • 하나의 A테이블 로우가 하나의 B테이블 로우와 연결될 때 일대일 관계라고 한다.
  • 1:1관계의 경우 대개 하나의 테이블로 표현하나, 필요에 따라 테이블을 분리할 수 있다.

1:N (One To Many)

  • 하나의 A테이블 로우가 여러 개의 B테이블 로우와 연결될 때 일대다 관계라고 한다.
  • B테이블의 외래키(Foreign Key, FK)가 A테이블의 기본키를 참조한다. 참조하는 경우, 외래키는 many 테이블에 있어야 한다!

N:N (Many to Many)

  • A테이블의 로우 하나가 B테이블의 로우 여러개와 연결되고,
  • B테이블의 로우 하나도 A테이블의 로우 여러개와 연결되는 경우 다대다 관계라고 한다.
  • 다대다 관계의 경우 보통 중간 테이블(A_B테이블)을 만들어 A테이블과 B테이블을 연결하는 형태로 분해한다.
  • 다대다 관계의 핵심은 각 테이블의 데이터가 독립적으로 존재해야 다른 테이블의 데이터에 영향을 미치지 않는다는 점이다.

그 외 tip

  • 모델링 시 헷갈리는 경우 실제 데이터를 넣어 실험해보자.
  • 테이블 내 데이터 사이에 너무 많은 의존이 생기는 경우는 잘못된 구조 설계이다. 수정시에 문제가 발생할 수 있다.
  • 참조하는 테이블 사이의 관계가 어떠한지, 의도를 생각하고 설계해야 한다.

0개의 댓글