데이터베이스란?

들어가며

면접을 진행하면서 CS관련 질문들을 받게 되었다. 대체로 잘 대답을 했지만 자료구조와 데이터베이스의 용어를 혼용해서 설명하는 실수도 했고, 관계형 데이터베이스를 연결형이라고 말하는 실수도 있었다.

근본적으로 CS지식 특히 데이터베이스에 대한 지식이 부족했기에 발생한 문제여서 데이터베이스에 대해 정리해봐야겠다고 생각했다.

데이터베이스란?

데이터베이스를 한 마디로 정의하면 ‘데이터의 집합’이라고 할 수 있다.
데이터베이스는 중복된 데이터를 없애고, 자료를 구조화하여, 효율적인 처리를 할 수 있도록 관리된다.

데이터베이스의 특징

데이터베이스는 다음과 같은 특징을 가진다.

  1. 사용자의 질의에 대하여 즉각적인 처리와 응답이 이루어진다.

  2. 생성, 수정, 삭제를 통하여 항상 최신의 데이터를 유지한다.

  3. 사용자들이 원하는 데이터를 동시에 공유할 수 있다.

  4. 사용자가 원하는 데이터를 주소가 아닌 내용에 따라 참조 할 수 있다.

  5. 응용프로그램과 데이터베이스는 독립되어 있으므로, 데이터의 논리적 구조와 응용프로그램은 별개로 동작된다.

DBMS(Database Management System)

이런 데이터베이스를 관리하고 운영하는 소프트웨어를 DBMS(Database Management System)라고 한다.

DBMS에는 관계형(Relational), 키-값형(KV store), 객체형(Object), 문서형(Document), 컬럼 패밀리형(Column Family) 등이 존재한다.

특히 관계형 DBMS가 가장 일반적으로 사용되며, 이때 사용되는 표준 언어를 SQL(Structured Query Language)이라 한다. 관계형 DBMS를 SQL, 비-관계형 데이터베이스는 NoSQL이라고 부르기도 한다.

간단하게 SQL방식과 NoSQL방식(대표적으로 문서형)에 대해 알아보자.

SQL 방식

SQL 방식은 데이터들을 엑셀과 비슷한 표에 정리해두는 방식이다.

SQL 방식은 NoSQL방식과달리 각각의 표 사이에 관계성을 부여 할 수 있다.
관계성을 부여할 수 있기 때문에 mapping해주는 툴로 ORM(Object Relation Mapping)을 사용한다.

이러한 SQL방식을 사용하는 데이터베이스에는 대표적으로 Oracle, MySQL, Postgres가 있다.

NoSQL 방식(문서형)

NoSQL 방식은 서류 봉투에 document를 모아두는 방식이다.

NoSQL에서는 서류 봉투를 컬렉션이라고 부르며, 통신을 도와주는 툴로는 ODM(Object Document Mapping)을 사용한다.

NoSQL 방식을 사용하는 데이터베이스에는 대표적으로 MongoDB와 FireBase가 있다.

마치며

정말 간단하게 데이터베이스에 대해 정리해보았다.
이 정도만 면접에서 대답했어도 좋았을텐데 너무 공부가 부족했던게 아닐까 싶다.
연차가 쌓일수록 더욱 CS지식이 중요해진다고들 하는데, 비전공자인 만큼 더 열심히 해야할 것 같다.

참고