Mục lục
1. 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é,
2. 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:
1. Đố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.
2. Đố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.
Nguồn: https://dangxuanduy.com/
Hiện tại, tôi có tổ chức đều đặn các khóa học về quản trị Oracle Database, tôi sẽ để thông tin ở đây, để bạn nào quan tâm về lịch học cũng như chương trình học có thể theo dõi nhé.
KHOÁ DÀNH CHO NGƯỜI MỚI
KHÓA HỌC: QUẢN TRỊ ORACLE DATABASE THẬT LÀ ĐƠN GIẢN (ADMIN 1)
CÁC KHOÁ NÂNG CAO:
KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ KIẾN TRÚC MULTITENANT 12c
KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ HỆ THỐNG DATA GUARD
CÁC KHOÁ COMBO:
COMBO 1: ADMIN 1 + MULTITENANT 12c
COMBO 3: ADMIN 1 + MULTITENANT 12c + DATA GUARD
LỊCH HỌC:
Mời bạn xem tại đây: LỊCH HỌC CÁC LỚP ORACLE
ĐĂNG KÝ:
https://forms.gle/MtCAoRQFenP886y79
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é.