데이터베이스란?
들어가며
면접을 진행하면서 CS관련 질문들을 받게 되었다. 대체로 잘 대답을 했지만 자료구조와 데이터베이스의 용어를 혼용해서 설명하는 실수도 했고, 관계형 데이터베이스를 연결형이라고 말하는 실수도 있었다.
근본적으로 CS지식 특히 데이터베이스에 대한 지식이 부족했기에 발생한 문제여서 데이터베이스에 대해 정리해봐야겠다고 생각했다.
데이터베이스란?
데이터베이스를 한 마디로 정의하면 ‘데이터의 집합’이라고 할 수 있다.
데이터베이스는 중복된 데이터를 없애고, 자료를 구조화하여, 효율적인 처리를 할 수 있도록 관리된다.
데이터베이스의 특징
데이터베이스는 다음과 같은 특징을 가진다.
사용자의 질의에 대하여 즉각적인 처리와 응답이 이루어진다.
생성, 수정, 삭제를 통하여 항상 최신의 데이터를 유지한다.
사용자들이 원하는 데이터를 동시에 공유할 수 있다.
사용자가 원하는 데이터를 주소가 아닌 내용에 따라 참조 할 수 있다.
응용프로그램과 데이터베이스는 독립되어 있으므로, 데이터의 논리적 구조와 응용프로그램은 별개로 동작된다.
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지식이 중요해진다고들 하는데, 비전공자인 만큼 더 열심히 해야할 것 같다.