1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài báo cáo hệ quản trị cơ sở dữ liệu

46 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Tác giả Trần Thị Mỹ Duyên
Người hướng dẫn PGS.TS. NGUYỄN THÁI NGHE
Trường học ĐẠI HỌC CẦN THƠ TRƯỜNG CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
Chuyên ngành Hệ quản trị cơ sở dữ liệu
Thể loại Bài báo cáo
Năm xuất bản 2024
Thành phố Cần Thơ
Định dạng
Số trang 46
Dung lượng 2,68 MB

Cấu trúc

  • 1.1. Sơ đồ lớp (6)
  • 1.2. Mô tả cấu trúc bảng dữ liệu (6)
  • 1.3. Viết thủ tục cho phép nhập vào 1 xe mới, Gọi thủ tục để Nhập liệu như bảng trên (8)
  • 1.4. Viết thủ tục cho phép cập nhật giá niêm yết của 1 xe nào đó (9)
  • 1.5. Viết hàm trả về giá niêm yết của một xe nào đó (9)
  • 1.6. Viết hàm trả về dòng xe, hãng xe có giá cao nhất (10)
  • 1.7. Viết thủ tục xóa một xe nào đó (11)
  • 1.8. Viết hàm trả về giá lăn bánh ở Cần Thơ của 1 xe nào đó, biết rằng giá lăn bánh được tính theo công thức sau (12)
  • 1.9. Viết trigger để theo dõi việc sửa giá trong bảng xe (13)
  • 1.10. Viết trigger để theo dõi việc xóa dữ liệu trong bảng xe (14)
  • 1.11. Tạo người dúng mới để quản lý CSDL ô tô trên, cấp quyền tương ứng (quản lý, nhân viên bán xe, …) (15)
  • CHƯƠNG 2: THIẾT KẾ CƠ SỞ DỮ LIỆU VỀ VÉ XE (16)
    • 2.1. Mô hình CDM (16)
    • 2.2. Mô tả cấu trúc các bảng dữ liệu (16)
      • 2.2.1. Bảng KhachHang (16)
    • 2.3. Dữ liệu các bảng (19)
      • 2.3.1. Bảng KhachHang (0)
      • 2.3.2. Bảng XE (19)
      • 2.3.3. Bảng ChuyenXe (20)
      • 2.3.4. Bảng VE (20)
      • 2.3.5. Bảng GHE (20)
    • 2.4. Hàm (Function) (21)
      • 2.4.1. Hàm tính tổng số vé đã bán cho một chuyến xe cụ thể (21)
      • 2.4.2. Hàm lấy giá vé của một vé cụ thể (21)
      • 2.4.3. Hàm lấy tên khách hàng từ mã vé (22)
    • 2.5. Thủ tục (Procedure) (22)
      • 2.5.1. Thủ tục thêm vé mới (22)
      • 2.5.2. Thủ tục cập nhật giá vé (23)
      • 2.5.3. Thủ tục xóa một vé (23)
    • 2.6. Trigger (24)
      • 2.6.1. Trigger cập nhật trạng thái ghế khi một vé được đặt (24)
      • 2.6.2. Trigger kiểm tra số ghế còn trống trước khi thêm vé mới (25)
      • 2.6.3. Trigger giá vé không được vượt quá 200.000 (25)
  • CHƯƠNG 3: BÀI TẬP TỰ LUẬN (26)
    • 3.1. HQTCSDL là gì? Các HQTCSDL hiện nay? (26)
    • 3.2. Khác nhau giữa HQTCSDL và bảng tính (vd, Excel) là gì? (26)
    • 3.3. DBA là ai? Nhiệm vụ? (27)
    • 3.4. Các phương pháp bảo vệ dữ liệu? (27)
    • 3.5. Giao dịch là gì? Tại sao phải cần GD? (27)
    • 3.6. Các trạng thái của GD (28)
    • 3.7. Thuộc tính ACID là gì? (28)
    • 3.8. Các vấn đề cạnh tranh trong môi trường đa người dùng là gì (gtrinh trang 30)? Giải pháp khắc phục? (29)
    • 3.9. Lịch trình là gì? Lịch trình tuần tự và không tuần tự (29)
    • 3.10. Các kỹ thuật quản lý cạnh tranh? (29)

Nội dung

Hệ quản trị cơ sở dữ liệu DBMS - Database Management System là một phần mềm hoặc hệ thống phần mềm được sử dụng để quản lý và điều khiển cơ sở dữ liệu, cung cấp các chức năng cho phép ng

Mô tả cấu trúc bảng dữ liệu

STT Tên cột Kiểu dữ liệu

1 MA_HX Char 5 X X Mã hãng xe

2 TEN_HX Varchar 100 X Tên hãng xe

STT Tên cột Kiểu dữ liệu

1 MA_DC Char 5 X X Mã động cơ

2 TEN_DC Varchar 100 X Tên động cơ

STT Tên cột Kiểu dữ liệu

1 MA_PK Char 5 X X Mã phân khúc

2 TEN_PK Varchar 100 X Tên phân khúc

STT Tên cột Kiểu dữ liệu

1 MA_DX Char 5 X X Mã dòng xe

2 TEN_DX Varchar 100 X Tên dòng xe

3 MA_HX Char 5 X Mã hãng xe

4 MA_DC Char 5 X Mã động cơ

5 MA_PK Char 5 X Mã phân khúc

STT Tên cột Kiểu dữ liệu

1 MA_PB Char 5 X X Mã phiên bản

2 TEN_PB Varchar 100 X Tên phiên bản

STT Tên cột Kiểu dữ liệu

1 MA_DX Char 5 X X X Mã dòng xe

2 TEN_PB Varchar 100 X X X Mã phiên bản

Viết thủ tục cho phép nhập vào 1 xe mới, Gọi thủ tục để Nhập liệu như bảng trên

Hình 2: Thực thi thủ tục thêm vào xe mới

Hình 3: Kết quả sau khi thực thi thủ tục thêm xe mới

Viết thủ tục cho phép cập nhật giá niêm yết của 1 xe nào đó

Hình 4: Thủ tục cập nhật giá niêm yết cho một xe nào đó

Viết hàm trả về dòng xe, hãng xe có giá cao nhất

Hình 7: Hàm trả về dòng xe, hãng xe có giá cao nhất

Viết thủ tục xóa một xe nào đó

Hình 9: Thủ tục xóa một xe nào đó

Viết trigger để theo dõi việc sửa giá trong bảng xe

Hình 11: Tạo bảng theo dõi cập nhật

Viết trigger để theo dõi việc xóa dữ liệu trong bảng xe

Hình 13: Tạo trigger theo dõi việc xóa dữ liệu

Tạo người dúng mới để quản lý CSDL ô tô trên, cấp quyền tương ứng (quản lý, nhân viên bán xe, …)

Hình 14: Tạo người dùng quản lý và cấp quyền

Hình 15: Tạo người dùng nhanvien_banxe và cấp quyền

THIẾT KẾ CƠ SỞ DỮ LIỆU VỀ VÉ XE

Mô hình CDM

KhachHang(KhachHangID, Ten KH, GioiTinh, SDT)

Chuyenxe(ChuyenXeID,DiemDi,DiemDen,ThoiGianKhoiHanh,XeID)

Ve(VeID, GiaVe, KhachHangID, ChuyenXeID)

Ghe(GheID, TrangThai, VeID, XeID)

Hình 16: Sơ đồ CSDL đặt vé xe khách

Mô tả cấu trúc các bảng dữ liệu

Hình 17: Cấu trúc của bảng KhachHang

STT Tên cột Kiểu dữ liệu

Hình 18: Cấu trúc của bảng Xe

STT Tên cột Kiểu dữ liệu

Hình 19: Cấu trúc của bảng ChuyenXe

STT Tên cột Kiểu dữ liệu

Hình 20: Cấu trúc của bảng Ve

Tên cột Kiểu dữ liệu

Hình 21: Cấu trúc của bảng Ghe

STT Tên cột Kiểu dữ liệu

Dữ liệu các bảng

Hình 22: Dữ liệu của bảng KhachHang 2.3.2 Bảng XE

Hình 23: Dữ liệu của bảng Xe

Hình 24: Dữ liệu ChuyenXe 2.3.4 Bảng VE

Hình 25: Dữ liệu của bảng Ve 2.3.5 Bảng GHE

Hình 26: Dữ liệu của bảng Ghe

Hàm (Function)

2.4.1 Hàm tính tổng số vé đã bán cho một chuyến xe cụ thể:

Hình 27: Hàm tính tổng số vé đã bán cho một chuyến xe cụ thể 2.4.2 Hàm lấy giá vé của một vé cụ thể

Hình 28: Hàm lấy giá vé của một vé cụ thể

2.4.3 Hàm lấy tên khách hàng từ mã vé

Hình 29: Hàm lấy tên khách hàng từ mã vé

Thủ tục (Procedure)

2.5.1 Thủ tục thêm vé mới

Hình 30: Thủ tục thêm một vé mới

2.5.2 Thủ tục cập nhật giá vé

Hình 31: Thủ tục cập nhật giá vé 2.5.3 Thủ tục xóa một vé

Hình 32: Thủ tục xóa một vé

Trigger

2.6.1 Trigger cập nhật trạng thái ghế khi một vé được đặt

Hình 33: Tạo Trigger kiểm tra trạng thái ghế khi một vé được đặt

2.6.2 Trigger kiểm tra số ghế còn trống trước khi thêm vé mới

Hình 34: Tạo trigger kiểm tra số ghế còn trống trước khi thêm vé mới 2.6.3 Trigger giá vé không được vượt quá 200.000

Hình 35: Tạo trigger kiểm tra giá vé không được vượt quá 200.000

BÀI TẬP TỰ LUẬN

HQTCSDL là gì? Các HQTCSDL hiện nay?

Hệ quản trị cơ sở dữ liệu (DBMS - Database Management System) là một phần mềm hoặc hệ thống phần mềm được sử dụng để quản lý và điều khiển cơ sở dữ liệu, cung cấp các chức năng cho phép người dùng tạo, lưu trữ, truy xuất, cập nhật và quản lý dữ liệu trong cơ sở dữ liệu một cách hiệu quả.

Hệ quản trị cơ sở dữ liệu(Database Management System) là phần mềm trung gian giữa người dùng và dữ liệu Cung cấp các công cụ hỗ trợ việc tổ chức, lưu trữ, quản lý và truy xuất dữ liệu một cách có hệ thống và hiệu quả.

Khác nhau giữa HQTCSDL và bảng tính (vd, Excel) là gì?

Tiêu chí HQTCSDL Bảng tính(Excel, )

Cấu trúc và tổ chức dữ liệu Dữ liệu được lưu trữ trong các bảng (tables) với các bản ghi (records) và trường (fields)

Dữ liệu được lưu trữ dưới dạng hàng (rows) và cột (columns) trong một hoặc nhiều bảng tính.

Khả năng truy vấn và xử lý dữ liệu

Hỗ trợ các ngôn ngữ truy vấn như SQL (Structured Query Language) để thao tác dữ liệu (tìm kiếm, phân tích, cập nhật).

Có hỗ trợ giao dịch (transactions)

Chỉ hỗ trợ các hàm, việc thao tác và phân tích dữ liệu thường thủ công hơn so với DBMS.

Không hỗ trợ giao dịch

Khả năng mở rộng và quản lý dữ liệu lớn

Một DBMS có thể xử lý hàng triệu bản ghi, tương tác với nhiều người dùng cùng lúc mà không ảnh hưởng đến hiệu suất.

Excel có giới hạn về số lượng hàng và cột, tối đa khoảng 1 triệu hàng và 16 nghìn cột

Mục đích sử dụng Được sử dụng trong các ứng dụng lớn như quản lý thông tin doanh nghiệp, ngân hàng, thương mại điện tử, và các hệ thống

Thường được sử dụng cho các tác vụ phân tích dữ liệu đơn giản, quản lý tài chính, và các công việc cá lưu trữ dữ liệu phức tạp nhân hoặc nhóm nhỏ.

Bảo mật Có khả năng phân quyền chi tiết cho từng người dùng Mã hóa dữ liệu chống các truy cập trái phép.

Có thể đặt mật khẩu nhưng không mạnh so với phân quyền người dùng.

Chi phí Yêu cầu có giấy phép sử dụng, đầu tư phần cứng và phần mềm để chạy Điều này phát sinh chi phí lớn

Giá rẻ dễ tiếp cận và có thể sử dụng trên máy tính cá nhân.

DBA là ai? Nhiệm vụ?

- Là người chịu trách nhiệm quản lý và duy trì cơ sở dữ liệu của một tổ chức, đảm bảo rằng cơ sở dữ liệu hoạt động ổn định, an toàn ,hiệu quả và luôn sẵn sàng phục vụ nhu cầu người dùng và ứng dụng.

+ Thiết lập và tối ưu hóa hệ thống cơ sở dữ liệu.

+ Thực hiện sao lưu, phục hồi và bảo đảm tính toàn vẹn dữ liệu.

+ Giám sát và cải thiện hiệu suất của hệ thống cơ sở dữ liệu.

+ Quản lý quyền truy cập, bảo vệ dữ liệu khỏi rủi ro an ninh và các mối đe dọa.

+ Nâng cấp và bảo trì hệ thống định kỳ.

+ Xóa các cơ sở dữ liệu khi không còn sử dụng nó nửa.

Các phương pháp bảo vệ dữ liệu?

● Kiểm soát truy cập: Gán quyền truy cập phù hợp cho từng người dùng hoặc nhóm người dùng, đảm bảo chỉ những người có quyền mới có thể truy cập hoặc sửa đổi dữ liệu

● Mã hóa dữ liệu: Sử dụng các thuật toán mã hóa để mã hóa dữ liệu lưu trữ trong cơ sở dữ liệu, nhằm bảo vệ dữ liệu ngay cả khi cơ sở dữ liệu bị xâm nhập.

● Sao lưu và phục hồi dữ liệu: Thực hiện sao lưu dữ liệu định kỳ để đảm bảo rằng trong trường hợp mất mát hoặc hỏng dữ liệu, có thể phục hồi nhanh chóng.

● Phát hiện và ngăn chặn xâm nhập: Giám sát hệ thống để phát hiện các hành vi xâm nhập, các yêu cầu bất thường hoặc các cuộc tấn công.

● Phân mảnh dữ liệu nhạy cảm: Thay thế các thông tin nhạy cảm bằng các dữ liệu giả trong khi vẫn giữ nguyên định dạng và tính logic, giúp bảo vệ dữ liệu nhạy cảm trong môi trường phát triển hoặc kiểm thử.

● Đánh dấu nhật ký hoạt động: Lưu trữ thông tin về tất cả các hoạt động của người dùng trong cơ sở dữ liệu để có thể phát hiện các hành vi xâm phạm hoặc các hành động bất thường.

Giao dịch là gì? Tại sao phải cần GD?

● Giao dịch là một hành động hay một chuỗi các hành động được thực hiện bởi 1 người dùng hoặc 1 chương trình ứng dụng, trong đó có truy cập hoặc thay đổi nội dung của CSDL Giao dịch đảm bảo rằng cơ sở dữ liệu sẽ duy trì tính năng hoàn toàn, tối ưu và đúng đắn của dữ liệu, ngay cả khi xảy ra lỗi hoặc khi có nhiều người dùng truy cập đồng thời.

● Cần phải giao dịch vì:

○ Đảm bảo tính nhất quán của dữ liệu: Nếu không có giao dịch, cơ sở dữ liệu có thể rơi vào trạng thái không nhất quán khi các thao tác không hoàn thành đầy đủ Giao dịch đảm bảo rằng tất cả các thay đổi đều xảy ra hoặc không có gì xảy ra.

○ Quản lý lỗi và sự cố: Nếu một phần của giao dịch gặp sự cố (lỗi mạng, lỗi phần mềm), hệ thống sẽ có thể khôi phục về trạng thái trước khi giao dịch bắt đầu, tránh việc dữ liệu bị hỏng hoặc không đầy đủ.

○ Tính bền vững của dữ liệu: Giao dịch đảm bảo rằng khi thay đổi đã được cam kết, dữ liệu sẽ được lưu trữ bền vững và không bị mất ngay cả khi có sự cố hệ thống sau đó.

○ Cô lập giữa các giao dịch: Các giao dịch giúp các thao tác khác không bị ảnh hưởng bởi các thao tác đang thực hiện Điều này đặc biệt quan trọng trong các hệ thống với nhiều người dùng hoặc nhiều quá trình đồng thời.

○ Quản lý thao tác phức tạp: Trong nhiều trường hợp, các thao tác phức tạp có thể yêu cầu nhiều bước liên kết với nhau Giao dịch cho phép quản lý dễ dàng những thao tác này như một khối thống nhất.

Các trạng thái của GD

- Các giao dịch phải ở một trong các trạng thái sau:

+ Hoạt động (Active): trạng thái khởi đầu, giao dịch được giữ trong trạng thái này trong khi nó đang thực hiện.

+ Hoàn tất một phần (Partially Committed): Sau khi lệnh cuối cùng được thực hiện.

+ Thất bại (Failed): Sau khi phát hiện rằng giao dịch không thể tiếp tục được nữa.

- Khi kết thúc, giao dịch phải ở một trong hai trạng thái:

+ Hủy bỏ (Aborted): Sau khi giao dịch đã bị cuộn lại (rolled back) và CSDL đã phục hồi lại trạng thái của nó trước khi khởi động giao dịch.

+ Hoàn tất (Committed): Sau khi hoàn thành thành công giao dịch, CSDL đạt tới trạng thái nhất quán mới.

Thuộc tính ACID là gì?

ACID là viết tắt của 4 thuộc tính quan trọng trong cơ sở dữ liệu Bao gồm:Atomicity - Consistency - Isolation - Duration.

● Atomicity (Tính nguyên tử): Toàn bộ giao dịch phải được thực hiện hoàn chỉnh hoặc không thực hiện gì cả Nếu có lỗi xảy ra, mọi thay đổi phải được hoàn tác.

● Consistency (Tính nhất quán): Giao dịch phải đưa cơ sở dữ liệu từ trạng thái nhất quán này sang trạng thái nhất quán khác.

● Isolation (Tính cô lập): Các giao dịch độc lập và không ảnh hưởng trực tiếp đến nhau

● Durability (Tính bền vững): Sau khi giao dịch đã hoàn tất, các thay đổi cập nhật trên CSDL vẫn còn đó, ngay cả khi hệ thống bị sự cố sau đó.

Các vấn đề cạnh tranh trong môi trường đa người dùng là gì (gtrinh trang 30)? Giải pháp khắc phục?

- Các vấn đề cạnh tranh trong môi trường đa người dùng là:

+ Vấn đề về mất dữ liệu đã cập nhật (lost update).

+ Vấn đề về sự phụ thuộc vào các giao dịch không hoàn tất (uncommitted dependency).

+ Vấn đề phân tích không nhất quán (inconsistent analysis).

+ Vấn đề đánh mất dữ liệu đã cập nhật có thể được khắc phục bằng cách ngăn không cho một giao dịch khách đọc giá trị của mục dữ liệu đang được cập nhật cho đến khi việc cập nhật hoàn tất.

+ Vấn đề phụ thuộc dữ liệu vào các giao dịch không hoàn tất có thể khắc phục ngăn không cho một giao dịch đọc giá trị đang được cập nhật bởi một giao dịch chưa kết thúc khác.

+ Vấn đề phân tích không nhất quán có thể được khắc phục bằng cách ngăn không cho một giao dịch đọc giá trị đang được cập nhật bởi một giao dịch chưa hoàn tất khác.

Lịch trình là gì? Lịch trình tuần tự và không tuần tự

- Lịch trình là một chuỗi các thao tác thực hiện bởi một tập hợp các giao dịch cạnh tranh mà vẫn đảm bảo thứ tự của các thao tác trong từng giao dịch đơn lẻ.

- Lịch trình tuần tự (serial schedule) là một lịch trình trong đó các thao tác của một giao dịch được thực hiện liên tiếp nhau, không có bất kỳ thao tác nào của các giao dịch khác xen vào giữa.

- Lịch trình không tuần tự (non serial schedule) là một lịch trình trong đó các thao tác từ một tập hợp các giao dịch cạnh tranh đan xen lẫn nhau Khi đó, các lịch trình này có thể đưa CSDL về tình trạng không nhất quán hay các kết quả không chính xác như phân tích trong các phần kế tiếp.

Các kỹ thuật quản lý cạnh tranh?

- Các kỹ thuật quản lý cạnh tranh bi quan (pessimistic techniques):

● Sử dụng Giao thức khóa 2 kỳ để giải quyết cạnh tranh.

○ Các vấn đề khi sử dụng Giao thức khóa 2 kỳ để giải quyết cạnh tranh:

■ Vấn đề cuộn nhiều tầng: xảy ra khi một giao dịch bị hủy và kéo theo sự hủy bỏ của các giao dịch khác phụ thuộc vào nó, dẫn đến việc hủy bỏ hàng loạt các giao dịch.

■ Vấn đề khóa sống (livelock): Các giao dịch cũng có thể bị dẫn đến tình trạng khóa sống, nghĩa là bị bỏ ở tình trạng chờ mãi mãi, không thể đạt được thêm khóa mới nào, mặc dù HQTCSDL không bị khóa chết Cách khắc phục: Để tránh khóa sống, một hệ thống ưu tiên được sử dụng, nơi mà một

GD càng chờ lâu thì độ ưu tiên của nó càng cao Hoặc sử dụng một hàng đợi theo kiểu đến trước được phục vụ trước.

■ Vấn đề khóa chết (deadlock): là một tình huống bế tắc khi hai hay nhiều giao dịch đang chờ lẫn nhau để có được các khóa đang giữ bởi đối phương Cách khắc phục: Có hai kỹ thuật thông thường được dùng để xử lý khóa chết là: ngăn chặn khóa chết và phát hiện – phục hồi khóa chết.

● Ngăn chặn khóa chết: Một cách có thể ngăn chặn khóa chết là ra lệnh cho các giao dịch sử dụng các nhãn thời gian.

● Phát hiện khóa chết: thường được quản lý bởi việc xây dựng một đồ thị chờ (wait-for graph – WFG), cho thấy sự phụ thuộc của các giao dịch.

● Sử dụng nhãn thời gian: dùng nhãn thời gian để điều khiển cạnh tranh Với các phương pháp nhãn thời gian, hoàn toàn không có chờ đợi; các giao dịch có xung đột chỉ đơn giản là bị cuộn lại và được khởi động lại.

- Các kĩ thuật quản lý cạnh tranh lạc quan (optimistic techniques):

+ Kỳ đọc: kỳ này kéo dài từ lúc bắt đầu GD cho đến ngay trước hành động commit GD đọc các giá trị của tất cả các mục dữ liệu nó cần từ CSDL và lưu chúng vào các biến cục bộ Các cập nhật sẽ được áp trên bản sao chép cục bộ của dữ liệu, không phải trên CSDL.

+ Kỳ kiểm tra: Kỳ này theo sau kỳ đọc Các kiểm tra sẽ được thực hiện để đảm bảo tính khả tuần tự không bị vi phạm nếu các cập nhật của GD được đưa vào CSDL

+ Kỳ ghi: Kỳ này theo sau kỳ kiểm tra thành công đối với các giao dịch cập nhật Trong kỳ này, các cập nhật đã thực hiện trên biến cục bộ sẽ được chép vào CSDL.

- Độ mịn của mục dữ liệu (data granularity):

+ Độ mịn là kích cỡ của mục dữ liệu được chọn như là một đơn vị bảo vệ bởi giao thức điều khiển cạnh tranh.

+ Một mục dữ liệu điển hình được chọn như là một trong những thứ có kích cỡ từ lớn đến nhỏ sau đây:

● Một trang tin (page), đôi khi còn gọi là một vùng hay một không gian CSDL – một đoạn đĩa vật lý nơi lưu trữ các quan hệ.

● Một giá trị của một trường trong một mẫu tin.

● Tại sao cần phục hồi DL

○ Đảm bảo tính toàn vẹn dữ liệu: đảm bảo cho dữ liệu luôn được nhất quán và chính xác.

○ Bảo vệ chống lại mất mát dữ liệu quan trọng: dữ liệu là một trong những tài sản quan trọng nhất đối với bất kỳ tổ chức nào Nếu dữ liệu bị mất hoặc hỏng mà không được phục hồi, tổ chức có thể phải đối mặt với các thiệt hại nghiêm trọng.

○ Giảm thiểu gián đoạn kinh doanh và tiết kiệm chi phí: Khi dữ liệu bị mất hoặc hệ thống ngừng hoạt động, tổ chức sẽ phải chịu những thiệt hại kinh doanh như mất khách hàng, mất doanh thu, và tăng chi phí để khôi phục hoạt động Một quy trình phục hồi hiệu quả giúp giảm thiểu thời gian gián đoạn và chi phí liên quan đến việc sửa chữa hệ thống, bảo vệ doanh nghiệp khỏi tổn thất kéo dài.

○ Khôi phục trạng thái nhất quán của giao dịch: đảm bảo rằng các giao dịch luôn duy trì được tính nhất quán, ngay cả trong trường hợp hệ thống gặp sự cố giữa chừng Quá trình phục hồi sẽ giúp khôi phục các giao dịch về trạng thái trước khi sự cố xảy ra, đảm bảo không có dữ liệu bị mất hoặc bị ghi sai.

● Điểm kiểm tra là gì (check point)

○ Điểm kiểm tra (checkpoint) là một điểm mà tại đó sự đồng bộ giữa CSDL và tập tin nhật ký GD được ghi nhận Khi đó, tất cả các vùng đệm phải được ghi-ép-buộc ra bộ lưu trữ thứ cấp.

● Các kỹ thuật phục hồi DL

○ Có 3 kỹ thuật phục hồi: cập nhật trì hoãn (deffered update) và cập nhật tức thì (immediate update) và tạo trang bóng (shadow paging).

■ Cập nhật trì hoãn: Ý tưởng chủ yếu là trì hoãn các cập nhật thực sự lên CSDL cho đến khi giao dịch kết thúc thành công và đạt đến điểm hoàn tất Khi có sự cố xảy ra, dựa vào nhật ký, hệ thống có thể xác định các giao dịch nào đang diễn ra tại thời điểm bị lỗi Bắt đầu từ mẫu tin cuối cùng trong tập tin nhật ký để đi ngược về mẫu tin checkpoint gần nhất.

+ Nếu GD có cả mẫu tin bắt đầu và hoàn tất thì cần phải redo nó Thủ tục redo sẽ thực hiện tất cả các thao tác cập nhật CSDL sử dụng hình ảnh sau trong mẫu tin nhật ký, theo đúng thứ tự nó đã được ghi vào nhật ký.

+ Nếu GD có mẫu tin bắt đầu và mẫu tin hủy thì ta không cần làm gì cả vì chúng chưa được ghi vào CSDL.

■ Cập nhật tức thì: Trong kỹ thuật này, CSDL có thể được cập nhật ngay bởi các thao tác của một giao dịch, trước khi giao dịch tiến đến điểm hoàn tất Nếu hệ thống bị lỗi, việc phục hồi liên quan đến việc sử dụng nhật ký để redo và undo các giao dịch:

+ Nếu giao dịch có cả mẫu tin bắt đầu và hoàn tất trong nhật ký, thì chúng ta sẽ redo bằng cách sử dụng hình ảnh sau

(new_value) trong nhật ký

+ Nếu giao dịch chỉ có mẫu tin bắt đầu nhưng không có mẫu tin hoàn tất, ta cần phải undo giao dịch này bằng cách sử dụng hình ảnh trước trong mẫu tin nhật ký Thao tác undo sẽ thực hiện theo thứ tự ngược lại với thứ tự các mẫu tin được ghi vào nhật ký.

Ngày đăng: 21/10/2024, 12:43

HÌNH ẢNH LIÊN QUAN

1.1. Sơ đồ lớp: - Bài báo cáo hệ quản trị cơ sở dữ liệu
1.1. Sơ đồ lớp: (Trang 6)
Hình 3: Kết quả sau khi thực thi thủ tục thêm xe mới - Bài báo cáo hệ quản trị cơ sở dữ liệu
Hình 3 Kết quả sau khi thực thi thủ tục thêm xe mới (Trang 8)
Hình 2: Thực thi thủ tục thêm vào xe mới - Bài báo cáo hệ quản trị cơ sở dữ liệu
Hình 2 Thực thi thủ tục thêm vào xe mới (Trang 8)
Hình 13: Tạo trigger theo dõi việc xóa dữ liệu - Bài báo cáo hệ quản trị cơ sở dữ liệu
Hình 13 Tạo trigger theo dõi việc xóa dữ liệu (Trang 14)
Hình 14: Tạo người dùng quản lý và cấp quyền - Bài báo cáo hệ quản trị cơ sở dữ liệu
Hình 14 Tạo người dùng quản lý và cấp quyền (Trang 15)
Hình 16: Sơ đồ CSDL đặt vé xe khách - Bài báo cáo hệ quản trị cơ sở dữ liệu
Hình 16 Sơ đồ CSDL đặt vé xe khách (Trang 16)
Hình 20: Cấu trúc của bảng Ve - Bài báo cáo hệ quản trị cơ sở dữ liệu
Hình 20 Cấu trúc của bảng Ve (Trang 18)
Bảng GHE - Bài báo cáo hệ quản trị cơ sở dữ liệu
ng GHE (Trang 19)
2.3.3. Bảng  ChuyenXe - Bài báo cáo hệ quản trị cơ sở dữ liệu
2.3.3. Bảng ChuyenXe (Trang 20)
Hình 30: Thủ tục thêm một vé mới - Bài báo cáo hệ quản trị cơ sở dữ liệu
Hình 30 Thủ tục thêm một vé mới (Trang 22)
Hình 29: Hàm lấy tên khách hàng từ mã vé - Bài báo cáo hệ quản trị cơ sở dữ liệu
Hình 29 Hàm lấy tên khách hàng từ mã vé (Trang 22)
Hình 31: Thủ tục cập nhật giá vé 2.5.3. Thủ tục xóa một vé - Bài báo cáo hệ quản trị cơ sở dữ liệu
Hình 31 Thủ tục cập nhật giá vé 2.5.3. Thủ tục xóa một vé (Trang 23)
Hình 33: Tạo Trigger kiểm tra trạng thái ghế khi một vé được đặt - Bài báo cáo hệ quản trị cơ sở dữ liệu
Hình 33 Tạo Trigger kiểm tra trạng thái ghế khi một vé được đặt (Trang 24)
Hình 35: Tạo trigger kiểm tra giá vé không được vượt quá 200.000 - Bài báo cáo hệ quản trị cơ sở dữ liệu
Hình 35 Tạo trigger kiểm tra giá vé không được vượt quá 200.000 (Trang 25)
Hình 34: Tạo trigger kiểm tra số ghế còn trống trước khi thêm vé mới 2.6.3. Trigger giá vé không được vượt quá 200.000 - Bài báo cáo hệ quản trị cơ sở dữ liệu
Hình 34 Tạo trigger kiểm tra số ghế còn trống trước khi thêm vé mới 2.6.3. Trigger giá vé không được vượt quá 200.000 (Trang 25)
w