OLTP vs 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é,

 

Đọc thêm  Oracle Database là gì?
Đọc thêm  Tổng quan về kiến trúc Oracle Database

 

   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 như sau:

 


 

   OLTP và OLAP khác nhau thế nào?

Bảng so sánh

OLTP OLAP
Hệ thống phục vụ cho các giao dịch của người dùng. Giống như 1 cái chợ, các giao dịch xảy ra liên tục và nhanh chóng Hệ thống phục vụ việc phân tích, báo cáo
Giao dịch nhiều nhưng ngắn Giao dịch ít nhưng lâu
Các thao tác trên OLTP đủ cả INSERT, UPDATE, DELETE, SELECT Các thao tác trên OLAP chủ yếu là SELECT, rất ít UPDATE
Câu lệnh trên OLTP thường đơn giản, dữ liệu trả về thường nhỏ Câu lệnh trên OLAP rất phức tạp, thường kết nối nhiều bảng và nhiều dòng dữ liệu
Tính chặt chẽ rất cao, hạn chế dư thừa dữ liệu Ưu tiên tốc độ truy vấn, được phép dư thừa dữ liệu

 

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 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.

 

   Hãy tham gia group “Kho tài liệu kiến thức database” để cùng học hỏi và chia sẻ nhé.

   Tặng bạn khoá học “Linux thật là đơn giản” hoàn toàn miễn phí. Khoá học này sẽ giúp bạn nắm được các kiến thức quan trọng nhất để học tập các kỹ năng cao hơn về Database.

Nguồn: https://dangxuanduy.com/

 

Xin cho tôi được biết, bạn cảm thấy bài viết này như thế nào? Ý kiến của bạn sẽ giúp tôi nâng cao chất lượng bài viết của mình.

    Hãy chia sẻ bài viết này nếu bạn thấy có ích nhé
    0 0 votes
    Article Rating
    Subscribe
    Notify of
    guest
    0 Comments
    Inline Feedbacks
    View all comments