So sánh database OLTP và OLAP
Giới thiệu
Nếu đã làm quen với dữ liệu, bạn hẳn đã nghe các thuật ngữ OLTP và OLAP.
Đây là 2 trong số các thuật ngữ rất thường gặp khi bạn làm việc với các hệ quản trị Cơ sở dữ liệu quan hệ (RDBMS) tại các công ty, tổ chức Tài chính, Viễn Thông, …
OLTP (Online Transactional Processing) và OLAP (Online Analytic Processing) là 2 kiểu thiết kế hệ thống Database phục vụ cho 2 nhu cầu khác nhau, lần lượt là: Giao dịch và Phân tích.
Hiểu rõ được bản chất của chúng, bạn sẽ biết: Trong trường hợp cụ thể nào đó, thiết kế database thế nào cho tối ưu.
Ok, bắt đầu tìm hiểu nhé.
Tại sao phải chia ra OLTP và OLAP
Đầu tiên, chúng ta cần tìm hiểu bài toán người ta đã gặp phải khi xử lý dữ liệu trước đã.
Ví dụ tôi có bộ dữ liệu thông tin khách hàng của 1 ngân hàng được lưu trên các tài liệu giấy tờ, sổ sách. Bây giờ tôi cần thiết kế database để số hóa đống giấy tờ đó lên.
Để thiết kế một database. câu hỏi đầu tiên đó là: Database này ai sẽ dùng?
Giả sử có 2 nhóm đối tượng người dùng cùng sử dụng bộ dữ liệu này. Đó là: Khách hàng và Giám đốc ngân hàng. Đặc thù của 2 nhóm đối tượng này như sau:
Đối với Khách hàng:
Đối tượng này chỉ cần truy vấn thông tin của bản thân (VD: Số dư tài khoản của mình)
Do có rất nhiều khách hàng, nên số lượng truy vấn rất nhiều tại cùng 1 thời điểm.
Dữ liệu có thể phải sửa đổi liên tục, do khách hàng giao dịch khiến số dư tài khoản bị biến động.
Thời gian xử lý phải nhanh, tính bằng phút, thậm chí bằng giây. Khách hàng mà phải đợi cả tiếng đồng hồ để giao dịch thì ngân hàng dẹp tiệm là vừa.
Đối với Giám đốc ngân hàng:
Ông giám đốc thường sẽ muốn báo cáo dựa trên toàn bộ dữ liệu của Ngân Hàng (chỉ cần đọc, không cần sửa).
Số lượng các ông Giám đốc không nhiều, nên lượng truy vấn cũng ít.
Thời gian chờ truy vấn có thể chấp nhận lên tới hàng giờ (Tuy nhiên cũng ko phải lâu quá đâu)
Dựa trên nhu cầu của 2 nhóm đối tượng này, người ta mới phát minh ra 2 kiểu thiết kế database: OLTP và OLAP.
Về bản chất, chúng vẫn là các database quan hệ (RDBMS) thôi.
Tuy nhiên các bảng và quan hệ của chúng được thiết kê theo hướng tối ưu cho 2 nhóm đối tượng người dùng này.
Cụ thể hơn bạn xem bảng so sánh dưới đây:
Bảng so sánh
Bạn đã hiểu các điểm khác nhau cơ bản nhất giữa OLTP và OLAP rồi chứ?
Sau khi đã trả lời được câu hỏi: Database phục vụ cho đối tượng nào, bạn sẽ lựa chọn được kiểu thiết kế Database phù hợp. (OLTP hay OLAP).
Từ đó, bạn sẽ tiếp tục tìm hiểu về nguyên tắc thiết kế của từng loại. Ví dụ: OLTP thì cần tìm hiểu sâu về các loại chuẩn hóa (Normalize), OLAP cần tìm hiểu về các thiết kế bảng theo mô hình Star Schema, Snowflake,…
Hi vọng bài viết ngắn này sẽ giúp ích cho bạn, hẹn gặp lại các bạn ở các bài viết tiếp theo.
database
,data warehouse
,database administrator
,công nghệ thông tin
,lập trình
Hay quá anh ạ! Anh viết thêm các bài về so sánh như này nữa nhé.
Phạm Hoàng
Hay quá anh ạ! Anh viết thêm các bài về so sánh như này nữa nhé.
Đặng Vinh Quang
bài viết chất lượng phết, em tặng anh 5 coin ;>>>>
Hải Bình
Nguyễn Kim Ngân
Ví dụ như việc sao kê tài khoản ngân hàng thì bên khách hàng sẽ dùng dữ liệu OLPT còn bên ngân hàng sẽ dùng OLAp đúng ko ạ?
Bùi Đức Lương
Chia sẻ bổ ích quá bác ơi, trước có mấy bạn tìm hiểu về cái này và có hỏi mình, nhưng bận quá nên chưa lên bài được.
Góp ý với bác chút xíu là bác viết bài rồi chia theo series để sau mọi người tìm bài viết theo chủ đề dễ hơn ý. :3