🐘Các loại DBMS phổ biến
Đặc trưng, ưu - nhược điểm.
Last updated
Đặc trưng, ưu - nhược điểm.
Last updated
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
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 ++
Blog: Oracle NoSQL
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.
Phát triển bởi: Microsoft Corporation
Viết bằng C, C++
Blog: Blog SQL Server
Tải xuống: MS SQL Server tại đây
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.
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,...
Phát triển bởi: Elastic NV
Viết bằng Java
Phiên bản mới nhất: 7.4
Blog: Elasticsearch
Tải xuống: Elasticsearch tại đây
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
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 PostgreSQL và MySQL.
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.
Phát triển bởi: Microsoft Corporation
Phiên bản mới nhất: 16.0
Tải xuống: Microsoft Access tại đây
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:
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
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
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ử