Database

설탕·2022년 1월 3일
0

데이터란 수, 단어, 이미지, 영상 등의 형태로 된 의미 단위이다.

Client-Server Model

Database

데이터베이스(Database)는 컴퓨터 시스템에 저장된 정보나 데이터를 모두 모아 놓은 집합을 의미한다.
데이터베이스는 데이터가 저장된 하드웨어를 부르는 말이기도 하면서, 데이터베이스를 관리하는 시스템 자체를 통칭한다.

DBMS(DataBase Management System)

데이터들은 DBMS(DataBase Management System)으로 제어 및 관리한다.
운영체제(OS)는 사용자가 컴퓨터에게 쉽게 명령을 내릴 수 있도록 인터페이스를 제공해 주는 역할을 한다. 마찬가지로 DBMS는 데이터를 관리하는 역할, 즉 사용자와 데이터베이스를 이어 주는 역할을 한다. MySQL, PostgreSQL 등이 DBMS이다.

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

데이터를 오랜 기간 저장 및 보존하기 위해

작은 어플리케이션에서도 물론 데이터를 잠깐 동안 임시로 저장할 수는 있다. 그러나 우리가 저장하지 않은 데이터는 컴퓨터를 껐다 켜면 사라진다. 메모리에 존재하는 데이터는 오래 보존되지 않는다. 어플리케이션이 종료되면 메모리에 있던 데이터들은 다시는 읽어들일 수 없다. 따라서, 필요한 자료를 계속 보존하기 위해 데이터베이스를 사용한다.

데이터를 체계적으로 보존하고 관리하기 위해

데이터는 많이 오래 저장한다고만 좋은 것은 아니다. 필요할 때 언제든 내가 원하는 자료를 쉽게 읽어낼 수 있어야만 의미 있는 정보라고 할 수 있다. 필요한 데이터를 찾기 쉽도록 데이터를 체계적으로 정리하기 위해 데이터베이스를 사용한다.

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

관계형 데이터베이스RDBMS(Relational DataBase Management System)는 관계형 데이터 모델에 기초를 둔 데이터베이스 시스템을 말한다.

모든 데이터들은 2차원 테이블(Table)들로 표현할 수 있다.


실제로 데이터베이스를 구축할 때 필요한 것은 Column(열)이다. 열에 해당하는 데이터가 있어야 행으로 구조를 만드는 것이 가능하다.

테이블의 각 행(row)은 저만의 고유 키(Primary Key)가 있다.

  • 각 로우는 다른 로우와 겹치지 않는, 하나의 데이터만 정확하게 지칭할 수 있는 고유한 번호를 갖고 있다.
  • Primary Key를 통해 특정 로우를 찾거나, 인용(reference)할 수 있다.
  • Auto Increment, Serial 등이 해당된다.

각각의 테이블들은 서로 상호 관련성을 가지고 서로 연결될 수 있다.

관계형 데이터베이스라는 의미는 DB를 구성하고 있는 테이블들이 서로 상호관련성을 가지고 연결되어 있다는 의미이다.

RDBMS 상호관련성: 관계 유형

일대일(One to One) 관계

하나의 A테이블 데이터는 오로지 하나의 B테이블 데이터와 연결된다.

일대다(One to Many) 관계

하나의 A테이블 데이터는 B테이블의 여러 데이터와 연결될 수 있다.

일대다(One to Many) 관계에서는 외래 키(Foreign Key)Many 쪽에 만든다.

다대다(Many to Many) 관계

하나의 A테이블 데이터는 B테이블의 여러 데이터와 연결될 수 있다.
하나의 B테이블 데이터도 A테이블의 여러 데이터와 연결될 수 있다.

여러 테이블에 나누어서 저장한 후 필요한 테이블끼리 연결시키면

  • 중복된 데이터를 저장하지 않음으로 디스크를 더 효율적으로 쓰고,
  • 서로 같은 데이터이지만 부분적으로만 내용이 다른 데이터가 생기는 문제가 없어진다.

이것을 normalization(정규화)이라고 한다.


서로 각자 다른 테이블의 여러 데이터와 연결될 때에는 두 테이블에 속한 데이터의 조합을 입력하기 위한 중간 테이블(junction table)을 생성한다.
중간 테이블은 양쪽에서 Foreign Key를 받는다.

profile
공부 기록

0개의 댓글