본문 바로가기

리눅스

주요 SQL과 NoSQL 데이터베이스 유형 및 특징

728x90

주요 SQL과 NoSQL 데이터베이스 유형 및 특징

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

  • 데이터 모델: 테이블 형식의 관계형 데이터 모델을 사용합니다. 데이터는 정형화되며, 각 테이블에는 열과 행이 있습니다.
  • 스키마: 정적 스키마를 사용하며, 데이터 구조가 미리 정의되어 있어야 합니다.
  • 쿼리 언어: SQL(Structured Query Language)을 사용하여 데이터를 검색, 수정 및 관리합니다.
  • 확장성: 수직 확장이 주로 사용되며, 성능을 향상시키려면 더 많은 리소스가 필요합니다.
  • 사용 사례: 트랜잭션 처리, 데이터 일관성 및 정확성이 필요한 응용 프로그램에 적합합니다.

NoSQL (비관계형 데이터베이스)

  • 데이터 모델: 다양한 데이터 모델을 사용할 수 있으며, 주로 비정형 또는 반정형 데이터를 저장합니다. 예를 들어, 키-값, 문서, 열 지향 및 그래프 데이터 모델이 있습니다.
  • 스키마: 동적 스키마 또는 스키마리스라고도 불리며, 데이터 구조를 미리 정의할 필요가 없습니다.
  • 쿼리 언어: 각 NoSQL 데이터베이스는 고유한 쿼리 언어를 제공합니다. SQL을 사용하지 않는 경우가 많습니다.
  • 확장성: 수평 확장이 주로 사용되며, 클러스터링을 통해 데이터베이스를 확장할 수 있습니다.
  • 사용 사례: 대량의 데이터, 대규모 웹 애플리케이션, 실시간 분석 및 빠른 데이터 입력이 필요한 응용 프로그램에 적합합니다.

주요 데이터베이스 종류

  • SQL 데이터베이스
    • MySQL
    • PostgreSQL
    • Oracle Database
    • Microsoft SQL Server
    • SQLite
  • NoSQL 데이터베이스
    • MongoDB (문서 데이터베이스)
    • Elasticsearch (문서 데이터베이스)
    • Cassandra (열 지향 데이터베이스)
    • Redis (키-값 데이터베이스)
    • DynamoDB (키-값 데이터베이스)
    • Neo4j (그래프 데이터베이스)
    • Couchbase (다양한 모델 지원)
    • HBase (컬럼 데이터베이스)
    • Hive (컬럼 데이터베이스)

출처-https://image.toast.com/aaaadh/real/2021/techblog/3%287%29.png

728x90

Terminology and Concepts(다이어그램)

출처-http://4.bp.blogspot.com/-edz2_QrFvCE/UnzBhKZE3FI/AAAAAAAAAEs/bTEsqnZFTXw/s1600/SQL-MongoDB+Correspondence.PNG

 

SQL Terms/Concepts MongoDB Terms/Concepts
database database
table collection
row document or BSON document
column field
index index
table joins $lookup, embedded documents
primary key primary key
Specify any unique column or column combination as primary key. In MongoDB, the primary key is automatically set to the _id field.
aggregation (e.g. group by) aggregation pipeline See the SQL to Aggregation Mapping Chart.
SELECT INTO NEW_TABLE $out
See the SQL to Aggregation Mapping Chart.
MERGE INTO TABLE $merge (Available starting in MongoDB 4.2)
See the SQL to Aggregation Mapping Chart.
UNION ALL $unionWith (Available starting in MongoDB 4.4)
transactions transactions

관계형 데이터베이스 테이블 구성

출처-https://static.javatpoint.com/dbms/images/what-is-rdbms.png
출처-https://heung-bae-lee.github.io/image/NoSQL.png

SQL과 NoSQL의 선택 기준

SQL과 NoSQL 중 어떤 데이터베이스를 선택할지는 다음과 같은 기준을 고려해야 합니다.

  • 데이터 모델: 데이터가 관계형 모델에 적합한지, 비관계형 모델에 적합한지 고려해야 합니다.
  • 스키마: 데이터가 고정 스키마에 적합한지, 유동 스키마에 적합한지 고려해야 합니다.
  • 쿼리 언어: 데이터를 조회, 삽입, 수정, 삭제하기 위해 필요한 기능을 제공하는 데이터베이스를 선택해야 합니다.
  • 적합한 사용 사례: 데이터베이스를 어떤 용도로 사용할지 고려해야 합니다.

결론

SQL과 NoSQL은 각각 장단점이 있으므로, 데이터의 특성과 사용 사례에 따라 적합한 데이터베이스를 선택하는 것이 중요합니다.

 

참고URL

- SQL to Aggregation Mapping Chart : https://www.mongodb.com/docs/manual/reference/sql-aggregation-comparison/

- SQL to MongoDB Mapping Chart : https://www.mongodb.com/docs/manual/reference/sql-comparison/

- MySQL vs MongoDB 성능 분석 : https://soojle.gitbook.io/project/requirements/undefined-2/undefined-2-1/mysql-vs-mongodb

- SQL vs. NoSQL : http://sql-vs-nosql.blogspot.com/2013/11/indexes-comparison-mongodb-vs-mssqlserver.html

- mongoDB Story 1 : https://meetup.nhncloud.com/posts/274

- data engineering basic(SQL Basic) : https://heung-bae-lee.github.io/2019/12/10/data_engineering_02/

 

728x90