🐘Các loại DBMS phổ biến

Đặc trưng, ưu - nhược điểm.

Cơ sở dữ liệu sẽ chia làm 2 loại chính:

  • SQL - Ví dụ: Oracle, MySQL, Microsoft SQL Server, PostgreSQL

  • NoSQL - Ví dụ: MongoDB, Redis.

CƠ SỞ DỮ LIỆU PHỔ BIẾN

Cơ sở dữ liệu

Developer

Giấy phép

Ngôn ngữ viết

Oracle

Tập đoàn Oracle

Độc quyền

Hợp ngữ, C, C++

My SQL

Tập đoàn Oracle

GPL (phiên bản 2) hoặc độc quyền

C, C++

Microsoft SQL Server

Tập đoàn Microsoft

Độc quyền

C, C++

PostgreSQL

Nhóm phát triển toàn cầu PostgreSQL

Giấy phép PostgreSQL ( mã nguồn mở)

C

MongoDB

MongoDB Inc.

Đa dạng

C, C++, JavaScript

DB2

IBM

EULA độc quyền

Hợp ngữ, C, C++

Redis

Salvatore Sanfilippo

BSD

ANSI C

SQLite

Dwayne Richard Hipp

Phạm vi công cộng

C

Microsoft Access

Tập đoàn Microsoft

Phần mềm dùng thử

1. Oracle

  • Tại sao Oracle xứng đáng đứng đầu top các cơ sở dữ liệu phổ biến hiện nay? Hầu như các Develop đều biết đến nó, ngoài ra đa số người dùng đều cho rằng nó rất dễ sử dụng, tài liệu được viết tốt, các tính năng mới tuyệt vời (JSON từ SQL, Robust Code sử dụng tính năng Constants for Data Type Lengths, hỗ trợ tên dài, cải thiện thẻ danh sách,...).

  • Cơ sở dữ liệu Oracle 18c đưa việc quản lý dữ liệu doanh nghiệp của khách hàng lên một tầm cao mới, giúp khách hàng có thể tương tác với đám mây. Cơ sở dữ liệu Oracle 12c cung cấp một loạt các tính năng để giúp đáp ứng các yêu cầu cụ thể trong các lĩnh vực quản lý hiệu suất.

  • Oracle có tính sẵn sàng và độ bảo mật cao, có thể lưu trữ data warehousing và big data, đặc biệt là khả năng quản lý tại chỗ, trên Đám mây Oracle.

  • Phát triển bởi: Oracle Corporation

  • Viết bằng: Hợp ngữ, C, C ++

  • Tải xuống: Oracle NoSQL tại đây

  • Phiên bản mới nhất: 19.5

1.1 Đặc trưng

  • Cơ sở dữ liệu Oracle NoSQL xử lý dữ liệu lớn

  • Hỗ trợ SQL và có thể truy cập từ cơ sở dữ liệu có mối quan hệ với Oracle

  • Cơ sở dữ liệu Oracle NoSQL sử dụng Java / C API để đọc và ghi dữ liệu

  • Cơ sở dữ liệu phân rã (Distributed database)

  • Cung cấp quyền truy cập vào dữ liệu thông qua các yêu cầu chính.

1.2 Ưu điểm của Oracle

  • Dựa trên cấu trúc lập trình PL / SQL

  • Cộng đồng Peer to peer giúp giải quyết mọi vấn đề

  • Cơ sở dữ liệu Oracle an toàn và đảm bảo rằng dữ liệu người dùng không bị giả mạo thông qua các bản cập nhật nhanh chóng.

1.3 Nhược điểm của Oracle

  • Chi phí cao cho các tổ chức nhỏ

  • Yêu cầu tài nguyên đáng kể để cài đặt

  • Để triển khai Oracle có thể bị yêu cầu nâng cấp phần cứng

  • Chiếm nhiều không gian

2. MySQL

Doanh nghiệp có thể bắt đầu sử dụng "community server" miễn phí và sau đó nâng cấp lên phiên bản thương mại. Mysql có thể chạy trên Linux, Windows, OSX và FreeBSD và Solaris. Nhờ vào open-source GPL cho phép các lập trình viên sửa đổi phần mềm MySQL để phù hợp với môi trường cụ thể của doanh nghiệp. MySQL sử dụng dạng chuẩn của ngôn ngữ dữ liệu well-known SQL, giao diện sử dụng đồ họa trực quan để thiết kế bảng cơ sở dữ liệu.

  • MySQL có một thư viện rất lớn các hướng dẫn và thông tin để bạn có thể bắt đầu và giải quyết các câu hỏi.

  • MySQL hỗ trợ cơ sở dữ liệu lớn, các hàng có thể lên đến 50 triệu hoặc hơn trong một bảng.

  • Giới hạn kích thước tệp mặc định cho một bảng là 4GB, nhưng bạn có thể tăng giới hạn này.

  • Hỗ trợ phân vùng và sao chép, cũng như Xpath và cho các thủ tục khác, trình kích hoạt và chế độ xem lưu trữ

  • Phát triển bởi: Oracle Corporation

  • Viết bằng C, C ++

  • Phiên bản mới nhất: 8.0.2121

  • Tải xuống: MySQL tại đây

2.1 Đặc trưng

  • Có thể mở rộng

  • Dễ sử dụng

  • Bảo mật cao

  • Hỗ trợ dịch vụ cụm Novell

  • Nhanh

  • Chạy trên nhiều hệ điều hành khác nhau

2.2 Ưu điểm của MySQL

  • Hỗ trợ cơ sở dữ liệu lớn, các hàng lên đến 50 triệu hàng hoặc hơn trong một bảng

  • Mã nguồn mở

  • Triển khai nhiều loại giao diện người dùng

2.3 Nhược điểm của MySQL

  • Không có hỗ trợ tích hợp cho XML hoặc OLAP

  • Hỗ trợ có sẵn cho phiên bản dùng miễn phí

  • Mất nhiều thời gian và nỗ lực để tạo các bản sao lưu gia tăng

3. Microsoft SQL Server

MS SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ được xây dựng các chức năng cơ bản là lưu trữ dữ liệu truy xuất theo yêu cầu của các ứng dụng khác.

"Commercial DBMS" được sử dụng rộng rãi nhất. Mặc dù nó hạn chế đối với Windows, nhưng đây là một lợi thế nếu doanh nghiệp sử dụng hầu hết các sản phẩm của Microsoft. Cả GUI và phần mềm dựa trên lệnh, hỗ trợ ngôn ngữ SQL là một sản phẩm của IBM, cơ sở dữ liệu phổ biến và ngôn ngữ không phân biệt chữ hoa chữ thường.

3.1 Đặc trưng

  • Hiệu suất cao

  • Cài đặt các phiên bản khác nhau trong một máy

  • Tạo các tập lệnh để di chuyển dữ liệu

3.2 Ưu điểm của Microsoft SQL Server

  • Giảm sự cố cơ sở dữ liệu tạm thời

  • Các đặc quyền bảo mật riêng biệt

  • Duy trì máy chủ dự phòng

  • Hỗ trợ ngôn ngữ SQL (SEQUEL)

3.3 Nhược điểm của Microsoft SQL Server

  • Vấn đề tích hợp dịch vụ để nhập tệp

  • Chỉ phù hợp cho các tổ chức lớn

4. PostgreSQL

  • Tên ban đầu của PostgreSQL (phát âm là post-gress-Q-L) là Postgres – nó là một cơ sở dữ liệu quan hệ với mã nguồn mở (open-source) và được phát triển bởi một đội volunteers có kinh nghiệm trên toàn thế giới. PosgreSQL có thể chạy trên Linux, Windows, OSX và một số hệ thống khác.

  • PosgreSQL được phát triển dựa trên POSTGRES 4.2 tại Berkeley Computer Science Department, Đại học California. Các cải tiến chính trong PostgreSQL 10 bao gồm sao chép logical bằng cách sử dụng phân vùng bảng khai báo, cải thiện truy vấn song song, xác thực mật khẩu mạnh hơn dựa trên SCRAM-SHA-256, cải thiện giám sát và kiểm soát, cải thiện hiệu suất chung,...

  • Phát triển bởi: Nhóm phát triển toàn cầu PostgreSQL

  • Viết bằng C

  • Các công ty sử dụng PostgreSQL: Apple, Cisco, Fujitsu, Skype và IMDb

  • Phiên bản mới nhất: 12.3

  • Blog: PostgreSQL

  • Tải xuống: PostgreSQL tại đây

4.1 Đặc trưng

  • Hỗ trợ không gian bảng, cũng như các thủ tục được lưu trữ, phép nối, dạng xem, trình kích hoạt,...

  • Kiểm soát đồng thời nhiều phiên bản (MVCC)

  • Phục hồi từng thời điểm

  • Khóa ngoại

  • Sao chép không đồng bộ

4.2 Ưu điểm của PostgreSQL

  • Các chức năng được xác định trước

  • Nhiều giao diện

  • Có thể mở rộng

  • Hỗ trợ JSON

4.3 Nhược điểm của PostgreSQL

  • Phần mềm sao chép "ít trưởng thành" hơn (less-mature)

  • Cấu hình có thể dễ gây nhầm lẫn

5. MongoDB

  • MongoDB là một cơ sở dữ liệu định hướng tài liệu, đa nền tảng cung cấp, hiệu suất cao, tính sẵn sàng cao và khả năng mở rộng dễ dàng.

  • NoSQL thì DB phổ biến nhất, tuy nhiên vẫn còn giữ lại một số thuộc tính của SQL như query và index. Các ngôn ngữ lập trình như Scala, Groovy, Clojure và Java được củng cố hơn hẳn Cassandra. MongoDB là lựa chọn tốt nhất dành cho các truy vấn động và để xác định các index. PD có cấu trúc linh hoạt có thể dễ dàng sửa đổi và mở rộng hơn là một cơ sở dữ liệu SQL. Kích thước database được giới hạn là 2,5GB trên các hệ thống 32bit và sử dụng công cụ lưu trữ MMAPv1 và WiredTiger.

  • Được phát triển bởi: MongoDB Inc. vào năm 2007

  • Được viết bằng C ++

  • Phiên bản mới nhất: 4.2.8

  • Blog: MongoDB

  • Tải xuống: MongoDB tại đây

5.1 Đặc trưng

  • Cung cấp hiệu suất cao

  • Tự động làm sắc nét

  • Chạy trên nhiều máy chủ

  • Hỗ trợ sao chép Master-Slave

  • Dữ liệu được lưu trữ dưới dạng tài liệu kiểu JSON

  • Lập index bất kỳ trường nào trong tài liệu

  • Nó có cấu hình cân bằng tải tự động vì dữ liệu được đặt trong các shard

  • Hỗ trợ tìm kiếm cụm từ thông dụng

  • Dễ dàng quản lý trong trường hợp thất bại

5.2 Ưu điểm của MongoDB

  • Dễ dàng cài đặt MongoDB

  • MongoDB Inc. cung cấp sự hỗ trợ chuyên nghiệp cho khách hàng của mình

  • Hỗ trợ truy vấn đặc biệt

  • Cơ sở dữ liệu tốc độ cao

  • Cơ sở dữ liệu ít giản đồ

  • Cơ sở dữ liệu có thể mở rộng theo chiều ngang

  • Hiệu suất rất cao

5.3 Nhược điểm của MongoDB

  • Kích thước dữ liệu cao

  • Việc lồng các tài liệu bị hạn chế

  • Tăng mức sử dụng bộ nhớ không cần thiết

6. DB2

  • DB2 là một sản phẩm cơ sở dữ liệu của IBM. DB2 được thiết kế để lưu trữ, phân tích và truy xuất dữ liệu một cách hiệu quả.

  • DB2 chạy trên Linux, UNIX, Windows và máy tính có bộ nhớ lớn - lý tưởng cho môi trường máy chủ IBM. Đối với IBM DB2, phiên bản UDB 10.5 với các tính năng của BLU Acceleration và tên code của nó là 'Kepler'. Phiên bản mới nhất là DB2 Express-C – nó không được phép sử dụng trong các môi trường có tính khả dụng cao, chẳng hạn như liên quan đến sao chép, active-passive hoặc shared disk clustering.

  • Phát triển bởi: IBM

  • Viết bằng C, C ++, hợp ngữ

  • Phiên bản mới nhất: 11.5

  • Tải xuống: DB2 tại đây

6.1 Đặc trưng

  • Bổ sung các cải tiến nhằm vào môi trường

  • Cung cấp quy trình cài đặt và triển khai đơn giản

  • Mở rộng mã hóa gốc

6.2 Ưu điểm của DB2

  • Cùng lúc chạy nhiều công việc bằng Task Scheduler

  • Hỗ trợ cho cả mô hình dữ liệu SQL và NoSQL

  • Được lưu trữ trên cloud, máy chủ vật lý hoặc cả hai cùng một lúc

  • Lỗi code (Error code) và exit code có thể xác định công việc nào đang chạy

6.3 Nhược điểm của DB2

  • Chi phí cao cho một tổ chức nhỏ

  • Hỗ trợ cơ bản có sẵn trong ba năm

7. Redis

  • Redis là một nguồn mở, kho lưu trữ "key-value" nâng cao và là một giải pháp phù hợp để xây dựng các ứng dụng web có hiệu suất cao, có thể mở rộng.

  • Redis là viết tắt của Remote Dictionary Server với mã nguồn mở (open-source), mạng lưới làm việc. Tất cả sự vận hành của Redis là nguyên tử (atomic). Redis thường được triển khai trên các nền tảng IaaS hoặc PaaS như Amazon Webilities, Rackspace hoặc Heroku. Nhiều ngôn ngữ có ràng buộc Redis, bao gồm: ActionScript, C, C ++, C #, Clojure, Pre thịnh hành Lisp, Dart, Erlang, Go, Haskell, Haxe, Io, Java, JavaScript (Node.js), Lua, Objective-C, Perl, PHP, Pristine Data, Python, R, Ruby, Scala, Smalltalk và Tcl.

  • Phát triển bởi: Salvatore Sanfilippo

  • Phiên bản mới nhất: 6.0.6

  • Blog: Redis

  • Tải xuống:Redis tại đây

7.1 Đặc trưng

  • Tự động chuyển đổi dự phòng

  • Giữ hoàn toàn cơ sở dữ liệu của nó trong bộ nhớ

  • Sao chép dữ liệu cho bất kỳ 'number slaves' nào

  • Keys giới hạn thời gian tồn tại (time-to-live)

  • LRU loại bỏ khóa

  • Hỗ trợ Publish/Subscribe

7.2 Ưu điểm của Redis

  • Hỗ trợ rất nhiều loại dữ liệu

  • Dễ dàng để cài đặt

  • Rất nhanh (thực hiện khoảng 110000 SET mỗi giây, khoảng 81000 GET mỗi giây)

  • Hoạt động theo atomic

  • Công cụ đa tiện ích (được sử dụng trong một số use cases)

7.3 Nhược điểm của Redis

  • Không hỗ trợ tham gia

  • Tập dữ liệu (dataset) phải vừa với bộ nhớ

8. Elasticsearch

Elasticsearch phân bổ theo thời gian thực, giúp tìm kiếm open source full-text. Đây là một công cụ phân tích, còn là công cụ phổ biến dùng truy tìm dữ liệu trực tuyến, enterprise-grade (tiêu chuẩn bảo mật cho doanh nghiệp), mã nguồn mở (open-source) và được phân phối rộng rãi, mở rộng dễ dàng. Hoạt động truy cập được thông qua một API mở rộng và khá phức tạp, cho phép người dùng tạo bản sao các index và shards. Được nhiều tổ chức lớn sử dụng như Wikipedia, The Guardian, StackOverflow, GitHub,...

8.1 Đặc trưng

  • Dữ liệu có cấu trúc và phi cấu trúc có thể mở rộng lên đến petabyte

  • Hỗ trợ multi-tenancy

  • Cung cấp tìm kiếm mở rộng, tìm kiếm gần thời gian thực

8.2 Ưu điểm của Elasticsearch

  • Khôi phục API

  • Định hướng tài liệu

  • Không có giản đồ

  • Khả năng tìm kiếm full-text dễ dàng

8.3 Nhược điểm của Elasticsearch

  • Không hỗ trợ đa ngôn ngữ

  • Trong một số tình huống Asplit-brainn có vấn đề

9. SQLite

SQLite là một hệ quản trị cơ sở dữ liệu quan hệ chứa trong thư viện C. Trái ngược với nhiều hệ quản trị cơ sở dữ liệu khác, SQLite không phải là một công cụ cơ sở dữ liệu client–server, dành cho cho ứng dụng di động.

  • Nhà phát triển: Dwayne Richard Hipp

  • Viết bằng: C

  • Phiên bản mới nhất: 3.8.0

  • Hỗ trợ: SQLite

  • Tải xuống: SQLite tại đây

9.1 Đặc trưng

  • Có thể mở rộng tuyến tính

  • Duy trì thời gian phản hồi nhanh chóng

  • Hỗ trợ các thuộc tính như Tính nguyên tử (Atomicity), Tính nhất quán (Consistency), Tính cô lập (Isolation) và Độ bền (ACID).

  • Hỗ trợ MapReduce với Apache Hadoop

  • Tính linh hoạt tối đa để phân phối dữ liệu

  • Khả năng mở rộng cao

  • Kiến trúc ngang hàng (Peer-to-peer architecture)

9.2 Ưu điểm của SQLite

  • Khả năng mở rộng cao

  • Không có điểm thất bại nào

  • Nhân rộng Multi-DC

  • Cài đặt rất nhanh và không yêu cầu thêm cấu hình hoặc dung lượng vì đây là cài đặt không cần máy chủ

  • Cơ sở dữ liệu phù hợp cho các ứng dụng di động

9.3 Nhược điểm của SQLite

  • Nếu bạn đang sử dụng trong chu kỳ phát triển Ứng dụng Andriod thì các tùy chọn của bạn cũng bị hạn chế vì nó không tích hợp với PostgreSQLMySQL.

  • Thiếu mã hóa dữ liệu tích hợp.

  • Cung cấp phạm vi giới hạn để điều chỉnh hiệu suất trong một kịch bản phức tạp

10. Microsoft Access

  • Microsoft Access là DBMS (Database Management System from Microsoft) của Microsoft kết hợp Công cụ Cơ sở dữ liệu Microsoft Jet quan hệ với giao diện người dùng đồ họa và các công cụ phát triển phần mềm.

  • Giống như Microsoft SQL Server, nó được sử dụng là Windows được giới hạn. Các ngôn ngữ lập trình được củng cố như C, C#, C++, Java, VBA và Visual Rudimental.NET và liên kết trực tiếp với dữ liệu được lưu trữ trong các ứng dụng và cơ sở dữ liệu khác. MS Access lưu trữ tất cả các bảng cơ sở dữ liệu, truy vấn, biểu mẫu, báo cáo và mô-đun trong cơ sở dữ liệu Access Jet dưới dạng một tệp duy nhất.

10.1 Đặc trưng

  • Sử dụng VBA để viết các giải pháp phong phú với thao tác dữ liệu nâng cao và kiểm soát người dùng

  • Nhập và xuất dữ liệu sang nhiều định dạng (Excel, Outlook, ASCII, dBase, Paradox, FoxPro, SQL Server và Oracle)

  • Định dạng Jet Database

10.2 Ưu điểm của MS Access

  • Chỉ cần một cài đặt (DBMS và triển khai thiết kế trong một)

  • Dễ dàng để cài đặt

  • Dễ dàng tích hợp

  • Giá cả hợp lý

10.3 Nhược điểm của MS Access

  • Cơ sở dữ liệu hữu hạn

  • Khó kết hợp nhiều dữ liệu đa phương tiện (Multimedia data)

  • Các giao dịch quan trọng rất khó quản lý thời gian

Theo thông tin của Google Trend, BAC đã tổng kết được bảng sau:

Cấp

Điểm

Tháng 8 năm 2020

Tháng 7 năm 2020

Tháng 8 năm 2019

DBMS

Mô hình cơ sở dữ liệu

Tháng 8 năm 2020

Tháng 7 năm 2020

Tháng 8 năm 2019

1.

1.

1.

Oracle

Quan hệ

1355.16

+14.90

+15.68

2.

2.

2.

MySQL

Quan hệ

1261.57

-6.93

+7.89

3.

3.

3.

Microsoft SQL Server

Quan hệ

1075.87

+16.15

-17.30

4.

4.

4.

PostgreSQL

Quan hệ

536.77

+9.76

+55.43

5.

5.

5.

MongoDB

Tài liệu

443.56

+0.08

+38.99

6.

6.

6.

IBM DB2

Quan hệ

162.45

-0.72

-10.50

7.

8.

8.

Redis

Giá trị cốt lõi

152.87

+2.83

+8.79

8.

7.

7.

Elastic Search

Search Engine

152.32

+0.73

+3.23

9.

9.

11.

SQLite

Quan hệ

126.82

-0.64

+4.10

10.

11.

9.

Microsoft Access

Quan hệ

119.86

+3.32

-15.47

Tóm lại, dù bạn chọn Java, Javascript,Python hay C, C++ hay bất kì cơ sở dữ liệu nào? Bạn đều phải biết học lập trình để làm gì, bạn có thể tham khảo thêm các hướng đi trong lập trình và những lưu ý khi bắt đầu học lập trình để hiểu rõ hơn trước khi quyết định bạn nhé!

Chúc bạn vững vàng trên hành trình khám phá thế giới lập trình nhiều thử thách và cơ hội sẽ đến !

Nguồn tham khảo: https://www.improgrammer.net

Last updated