[Data Base] 관계형 데이터베이스

Jae ·2021년 11월 10일
0

Data Base

목록 보기
1/7

데이터베이스 흐름 이해하기


Learn SQL, Designing Schema
SQL(Structured Query Language)을 학습하면, 관계형 데이터베이스를 자유자재로 다룰 수 있다. 대표적인 관계형 데이터베이스(RDBMS)인 MySQL로 Schema를 설계하고, SQL을 사용하여 데이터를 영속성있게(persistently) 저장하는 방법을 알아보자.

  • SQL 문법
  • 스키마 디자인 (Schema design)
  • Node.js에서 데이터베이스를 사용하는 방법

Achievement Goals


  • 3 Tier Architecture 를 이해한다.
  • 영속성의 개념을 이해하고, 데이터베이스의 필요성을 인지한다.
  • 데이터베이스 종류를 이해한다.
    • 관계형 데이터베이스와 NoSQL의 차이를 이해한다.
    • 관계형 데이터베이스 및 NoSQL이 어떤 경우에 적합한지 이해한다.
  • SQL 주요 문법을 이해할 수 있다.
    • 조회, 삽입, 갱신, 삭제 구문을 자유자재로 사용할 수 있다.
    • 조회 시 다양한 조건을 걸어 원하는 정보만 조회할 수 있다.
    • 통계를 위한 쿼리를 만들 수 있다.
  • 스키마 디자인을 할 수 있다.
    • 앱에 필요한 테이블과 필드, 그리고 관계를 부여할 수 있다.
  • 1:N, N:N 관계를 이해하고, 데이터베이스에서 테이블을 조작할 수 있다.
    • Foreign Key, Primary Key에 대해 이해할 수 있다.

데이터베이스의 필요성


우리는 데이터를 어떤 방식으로 저장하고 있을까? 보통 In-Memory 형태로 데이터를 임시 저장하는 방법을 사용하거나, File에 데이터를 저장한다. 그런데 이 방법으로 데이터를 저장할 수 있는데도 데이터베이스를 사용하는 이유는 무엇일까?

데이터베이스를 사용함으로써 이 두 가지 방법의 단점을 극복할 수 있기 때문이다. 이 두 데이터 저장 방식의 단점이 무엇인지 알고 데이터베이스의 필요성을 알아보자.

In-Memory의 단점

  • 데이터가 프로그램의 실행에 의존적이다.

자바스크립트에서 데이터를 다룰 때는 프로그램이 실행될 때에만 존재하는 데이터가 있다. 그런데 자바스크립트에서 변수를 만들어 저장한 경우, 프로그램이 종료될 때 해당 프로그램이 사용하던 데이터도 사라진다. 즉, 변수 등에 저장한 데이터가 프로그램의 실행에 의존한다는 말이다.

File I/O의 단점

  • 데이터가 필요할 때마다 전체 파일을 매번 읽어야 한다.

  • 파일의 크기가 커질수록 작업이 버겁고, 비효율적이어서 File I/O 방식의 큰 단점을 갖고있다.

  • 파일이 손상되거나 여러 개의 파일들을 동시에 다뤄야 하거나 하는 등 복잡하고 데이터량이 많아질수록 데이터를 불러들이는 작업이 점점 힘들어진다.

File I/O는 파일을 읽는 방식으로 작동하는 형태를 말한다. 엑셀 시트나 CSV 같은 파일의 형태는 In-Memory에 비해 데이터를 저장하는 방식으로 적절해 보이지만, 이것도 한계가 분명히 존재한다.

관계형 데이터베이스의 장점

반면 관계형 데이터베이스는 하나의 CSV 파일이나 엑셀 시트를 한 개의 테이블로 저장할 수 있다. 한 번에 여러 개의 테이블을 가질 수 있기 때문에 SQL을 활용해 데이터를 불러오기 수월하다. 그렇다면 이 SQL은 뭘까?

SQL이란?


Structured Query Language (SQL)는 데이터베이스 언어로, 주로 관계형 데이터베이스에서 사용한다. 예를 들어 MySQL, Oracle, SQLite, PostgreSQL 등 RDBMS(Relational Database Management System) 을 이용해 다양한 데이터베이스에서 SQL 구문을 사용할 수 있다.

  • SQL은 구조화된 쿼리 언어이다.
  • SQL이란 데이터베이스용 프로그래밍 언어다.
  • 데이터베이스에 쿼리를 보내 원하는 데이터를 가져오거나 삽입할 수 있다.
  • SQL은 데이터가 구조화된(structured) 테이블을 사용하는 데이터베이스에서 활용할 수 있다.

SQL을 사용할 수 있는 데이터베이스와 달리, 데이터의 구조가 고정되어 있지 않은 데이터베이스를 NoSQL이라고 한다. NoSQL의 대표적 예시는 MongoDB 같은 문서지향 데이터베이스이다.

이처럼 데이터베이스 세계에서 SQL은 데이터베이스 종류를 SQL이라는 언어 단위로 분류할 정도로 중요한 위치를 차지하고 있다. 그리고 SQL을 사용하기 위해서는 데이터의 구조가 고정되어 있어야 한다.

Query란?


위에서 언급한 쿼리(query)란 무엇일까? 쿼리는 '질의문'이라는 뜻을 갖고 있다. 예를 들어 검색할 때 입력하는 검색어가 일종의 쿼리라고 할 수 있다. 검색을 할 때, 기존에 존재하는 데이터를 검색어로 필터링한다. 따라서 쿼리는 저장되어 있는 데이터를 필터하기 위한 질의문으로도 볼 수 있다.

0개의 댓글