4.4 데이터베이스의 종류

코난·2024년 10월 21일
0

CS 면접 정리

목록 보기
61/67

관계형 데이터베이스(RDBMS)

관계형 데이터베이스는 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스이다. SQL을 이용하여 관리 및 접근한다.

Oracle

  • Oracle Corporation에서 개발되었으며 현재 가장 널리 사용되는 RDBMS이다.
  • 사용자 정의 유형, 상속 및 다형성과 같은 객체 지향 기능을 구현하는 RDBMS를 객체 관계형 데이터베이스 관리 시스템(ORDBMS)이라고 한다.
  • Oracle Database는 관계형 모델을 객체 관계형 모델로 확장하여 복잡한 비즈니스 모델을 관계형 데이터베이스에 저장할 수 있다.
  • Oracel Database에서 데이터베이스 스키마는 논리 데이터 구조 또는 스키마 객체의 모음이다. 데이터베이스 사용자는 사용자 이름과 이름이 같은 데이터베이스 스키마를 소유한다.
  • 스키마 객체는 데이터베이스에서 데이터를 직접 참조하는 사용자 생성 구조이다.
  • 데이터베이스는 여러 유형의 스키마 객체를 지원하며 그 중 가장 중요한 것은 테이블과 인덱스이다.

MySQL

  • MySQL은 관계형 데이터베이스이다.
  • MySQL소프트웨어는 오픈소스이다.
  • MySQL데이터베이스 서버는 매우 빠르고 안정적이며 확장 가능하며 사용하기 쉽다.
  • MySQL서버는 클라이언트 / 서버 또는 임베디드 시스템에서 작동한다.

SQL Server

  • Microsoft에서 개발한 SQL Server는 세계에서 가장 널리 사용되는 데이터베이스 중 하나이다.
  • C, C++로 작성되어 있고 SQL Server는 Microsoft Azure Cloud의 일부이다.

PostgreSQL

  • PostgreSQL은 복잡한 데이터 워크로드를 안전하게 저장하며 SQL 언어를 사용하고 확장하는 오픈 소스 객체 관계형 데이터베이스 시스템이다.
  • PostgreSQL은 아키텍처 안정성, 데이터 무결성, 강력한 기능 세트, 확장성 및 소프트웨어 뒤의 오픈소스 커뮤니티의 헌신으로 성능과 혁신적인 솔루션을 지속적으로 제공하는 것으로 유명하다.

SQLite

  • SQLite는 작고 빠르며 독립적이다.
    신뢰성이 높으며 완전한 기능을 갖춘 SQL 데이터베이스 엔진을 구현하는 C언어 라이브러리이다.
  • SQLite는 모든 휴대폰과 대부분의 컴퓨터에 내장되어 있으며 사람들이 매일 사용하는 수많은 다른 응용 프로그램에 번들로 제공된다.
  • SQLite 파일 형식은 안정적이고 크로스 플랫폼이다.
  • 경우에 따라 SQLite가 direct filesysten I/O보다 빠르다.
  • ANSI-C로 작성되었다.
  • 크로스 플랫폼으로는 Android, *BSD, iOS, Linux, Mac, Solaris, VxWorks, Windows가 기본적으로 지원되며 다른 시스템으로 쉽게 포팅할 수 있다.
  • SQLite를 관리하는데 사용할 수 있는 독립형 CLI클라이언트가 제공된다.

NoSQL

Not Only SQL이라는 뜻으로 키-값 형태로 저장되는 데이터베이스를 의미한다. 키를 사용하여 데이터를 관리하고 접근한다.
스키마나 관계가 없으며 조인이 존재하지 않는다. 컬렉션에 있는 데이터를 복제하여 필요한 데이터의 일부만 가져온다. 읽기를 자주하지만 데이터를 자주 변경하지 않을 때 사용한다.

  • 장점
    • 스키마가 없어서 언제든 새로운 필드를 추가하는 수평적 확장이 가능하다.
    • 데이터를 읽어오는 속도가 빨라진다.
    • 수직, 수평 확장이 가능하기에 데이터베이스가 모든 읽기/쓰기 요청을 처리할 수 있다.
  • 단점
    • 데이터 중복이 있기에 수정을 해야하는 경우 모든 컬렉션에서 수행해야 한다.

Key-Value

키와 값으로 이루어진 저장과 조회하는 가장 간단한 원칙에 충실한 데이터베이스이다. 기본적인 패턴으로 값에 모든 데이터 타입을 허용하며 조인을 고려하지 않는다.
Redis, Riak, Oracle Kerkely, AWS DynamoDB가 여기에 해당한다.

Document

XML, JSON, BSON 등 계층적 트리 데이터 방식으로 저장하며 데이터베이스에 값을 문서로 저장한다는 점이 Key-Value와 다르다.
MongoDB, Azure Cosmos DB, CouchDB, MarkLogic, OrientDB 등이 여기에 해당한다.

Graph

데이터를 노드로 표현하며 노드 사이의 관계를 엣지로 표현한다. 퍼포먼스가 좋고 유연하며 유지보수에 용이한 것이 특징이다.
Neo4j, AgensGraph 등이 여기에 해당한다.

참고

https://sbp-it.tistory.com/276
https://sw-ko.tistory.com/189

profile
몸은 커졌어도, 머리는 그대로... 하지만 불가능을 모르는 명탐정 현아! 진실은 언제나 하나!

0개의 댓글