포스트

데이터베이스

데이터

정보를 나타내는 기호, 숫자, 문자, 그림 등 다양한 형태의 기록을 의미한다.
단독으로는 큰 의미를 지니지 않지만, 이를 처리하고 분석하여 유용한 정보로 변환할 수 있다.

본래 컴퓨터라는 기계는 일종의 데이터 처리기라고 볼 수 있다.
즉, 외부에서 데이터를 입력받고, 내부적으로 처리한 후 이 처리된 결과를 위부로 출력하는 기계로 정의할 수 있다.

이런 관점에서 보면 데이터는 컴퓨터 시스템의 필수 구성 요소로 볼 수 있는데, 데이터베이스는 데이터를 체계적으로 저장, 관리, 검색할 수 있도록 하는 시스템이다.

CRUD

CRUD란 Create, Read, Update, Delete의 첫 글자를 묶은 용어이며, 데이터베이스를 사용하여 데이터를 조작하는 네 가지 기본 작업을 나타낸다.

  • Create: 새로운 데이터를 데이터베이스에 삽입하는 작업
  • Read: 데이터베이스에서 데이터를 조회하는 작업
  • Update: 기존 데이터를 수정하는 작업
  • Delete: 데이터베이스에서 데이터를 삭제하는 작업

데이터베이스의 종류

데이터베이스는 크게 두 가지 유형으로 나누어지는데, 바로 관계형 데이터베이스(Relational Database)와 비관계형 데이터베이스(Non-Relational Database)이다.
두 가지 유형을 비교해보면 다음과 같다.

관계형 데이터베이스

데이터를 테이블 형태로 저장하며, 이 테이블들 간의 관계를 정의하여 데이터를 관리하는 데이터베이스 시스템이다. 관계형 데이터베이스는 데이터의 효율적인 저장, 검색, 수정, 삭제(CRUD)를 위해 SQL(Structured Query Language)이라는 표준 언어를 사용하며, 이 때문에 SQL 데이터베이스라고도 불린다.

장점으로는 데이터 무결성 유지, 표준화된 쿼리 언어, 데이터 중복 최소화, 그리고 보안을 꼽을 수 있다.
다만, 단점으로는 수평 확장성이 썩 좋지 않다는 점과 스키마 설계가 복잡하다는 점이 있다.

관계형 데이터베이스의 관리 시스템으로는 대표적으로 MySQL, PostgreSQL, Oracle이 있다.

비관계형 데이터베이스

관계형 데이터베이스의 제약을 벗어나기 위해 설계된 데이터베이스로, 문서, 키-값, 그래프 등 다양한 데이터 모델을 지원한다. SQL을 사용하지 않기 때문에 NoSQL 데이터베이스라고도 불린다.

비관계형 데이터베이스의 장점은 관계형과의 반대점에 있다고 보면 편하다. 수평 확장성이 좋고, 스키마도 유연하며, 매우 빠른 읽기 및 쓰기가 가능하다.
단점으로는 제한된 쿼리 기능, 데이터 일관성 문제, 중복된 데이터 등이 있다.

비관계형 데이터베이스의 관리 시스템으로는 대표적으로 MongoDB가 있다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.