본문 바로가기
> 개발/Database

데이터베이스와 RDBMS

by @일리 2023. 2. 20.

2022년 12월 14일 작성

 

위코드 2일차에는 데이터베이스와 관계형 데이터베이스에 대해 배웠다. 다대다 관계가 어려워서 모델링 과제를 할 때 애를 많이 먹었다. 지금은 프론트엔드 관련 지식을 습득하는 데 집중해야 하지만, 나중에는 데이터베이스에 대해서도 심도있게 공부해보고 싶다.

들어가기 전에

프론트개발자가 SQL, DB 를 직접 다룰 일은 많지 않다고 한다. 그런데도 프론트엔드 개발자가 데이터베이스를 알아야 하는 이유는 무엇일까? 프론트엔드 개발자는 증권 사이트나 쇼핑몰처럼 데이터를 화면에 보여주는 웹, 앱의 UI를 만든다. 이런 사이트를 만들기 위해서 프론트엔드 개발자가 백엔드 개발자에게 필요한 정보를 요청하면, 백엔드 개발자는 데이터베이스에 정보를 요청한 뒤 데이터를 받아서 프론트엔드 개발자에게 제공한다.

 

이때 프론트엔드 개발자가 데이터베이스에서 데이터가 각각 독립적인 테이블로 구성이 되어있는지, 아니면 한 테이블에 합쳐져있는지 데이터의 구조에 대해 알아야 데이터를 받아오기 위해 필요한 키값을 백엔드에 정확하게 넣어줄 수 있다. 그러니 백엔드 개발자와 소통을 하고 협업을 하기 위해서는 기본적으로 데이터베이스를 알고 있어야 한다.

서버에 데이터를 저장하지 않는 이유

클라이언트 컴퓨터와 서버만 교류가 있는 줄 알았는데, 알고 보니 서버도 데이터베이스에서 데이터를 가져온다고 한다! 왜 굳이 데이터를 서버가 아닌 데이터베이스에 정보를 저장하는 걸까?

그것은 효율성 때문이다. 데이터의 양이 적다거나, 굳이 데이터를 저장할 필요가 없다면 서버만 활용을 해도 괜찮지만, 저장된 데이터를 여러 서비스에 활용하기 위해서는 데이터베이스가 필요하다.

예를 들어 여러 사람들의 자동차 관련 정보(차량 구입시기, 차종, 자동차 보험회사 등)가 있을 때, 이 정보는 자동차 커뮤니티에서 활용될 수도 있고, 자동차 보험회사에서 시장조사를 할 때 활용될 수도 있고, 중고차 사이트에서 활용할 수도 있다.

데이터를 서버에 저장할 경우 각 서버(자동차 커뮤니티, 보험회사, 중고차 사이트)가 데이터를 각각 가지고 있어야 하지만, 데이터베이스에 데이터가 저장이 되어있으면 그럴 필요가 없다. 데이터베이스 한 곳에 정보가 저장이 되어있고, 각 서버가 필요한 정보를 데이터베이스에 요청하여 받을 수 있기 때문이다. 이렇게 데이터를 체계적으로 보관하고 관리하기 위해 데이터베이스에 데이터를 저장하는 것이다.

데이터베이스(Database)

  • 데이터 : 단어, 숫자, 이미지, 영상 등의 형태로 된 의미 단위로 보통 Table 형태로 저장됨
  • 데이터베이스 : 정보를 체계적으로 정리한 집합
  • 테이블 형태 : 엑셀과 같이 행과 열로 구성됨
  • 종류 : 자료를 정리하는 스타일에 따라 관계형 데이터베이스와 비관계형 데이터베이스로 나뉨

DBMS

  • 데이터베이스 관리시스템 (Database Management System) : 데이터와 데이터베이스 관리시스템, 그리고 이와 관련된 어플리케이션을 총칭
  • DBMS 에 명령을 내리기 위해 사용하는 언어를 SQL(Structured Query Language) 이라고 함

RDBMS

  • 관계형 데이터베이스 (RDBMS, Relational DataBase Management System)
    : 데이터 사이의 관계에 기초를 둔 데이터베이스 시스템
  • 특징
    1. 모든 데이터들은 2차원 테이블(행과 열)로 표현할 수 있다.
    2. 테이블의 각 행은 자신만의 고유키를 가지고 있다.
      각 행은 고유한 키(Primary Key)값을 가진다.
      이 키를 이용해 특정 행을 찾거나 참조할 수 있다.
    3. 각각의 테이블은 서로 상호관련성을 가지고 연결될 수 있다.
      이때 테이블 간 일대일, 일대다, 다대다 관계를 가질 수 있다.
      테이블들은 외부키(Foreign Key)로 연결된다.

댓글