BÀI TẬP TỔNG HỢP TẠO BẢNG TẠO TRIIGER THỦ TỤC ORACLE

 

MSSV: B1805684

 

BÀI TẬP TỔNG HỢP

 

1.    Tóm tắt câu trả lời cho các vấn đề dưới đây:

-        Giao dịch là gì?

o   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 một người dùng hoặc một chương trình ứng dụng, trong đó có truy cập hoặc thay đổi nội dung của một CSDL. Một giao dịch là một đơn vị luận lý của công việc trên CSDL. Nó có thể là toàn bộ chương trình, một phần của chương trình, toàn bộ chương trình hoặc một lệnh đơn lẻ như INSERT hay UPDATE, và nó có thể bao gồm nhiều thao tác trên CSDL.

-        Vì sao cần nó?

o   Bởi cần được sự tương tác qua lại của người dùng với hệ thống

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

o   Hoạt động (Active) trạng thái khởi đầu

o   Hoàn tất một phần (Partially commited)

o   Thất bại (Failed)

o   Hủy bỏ (Aborted)

o   Hoàn tất (Commited)

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

o   Là bốn thuộc tính quan trọng của một HQTCSDL khi xử lý bất kỳ giao dịch nào. Bao gồm:

        Tính nguyên tố.

        Tính nhất quán.

        Tính độc lập.

        Tính bền vững.

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

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

o   Vấn đề về sự phụ thuộc vào các GD không hoàn tất.

o   Vấn đề phân tích không nhất quán

-         Giải pháp khắc phục?

o   Nâng cao năng lực cạnh tranh.

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

o   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á GD cạnh tranh mà vẫn đảm bảo thứ tự của các thao tác trong từng DG đơn lẻ.

o   Lịch trình tuần tự: là một lịch trình trong đó các thao tác của một GD đượ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 GD khác xen vào giữa.

o   Lịch trình không tuần tự: 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.

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

o   Bi quan (lock)

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

      Các vấn đề khi sd 2PL

o   Vấn đề cuộc nhiều tầng

o   Vấn đề khóa sống (livelock)

o   Vấn đề khóa chết (Deadlock)

        Deadlock là một tình huống bế tắc khi hai hay nhiều GD đang chờ lẫn nhau để có được các khóa đang giữ bởi đối phương. Khi các giao dịch nằm trong trình trạng khóa chết thì cần có một cơ chế phát hiện và phục hồi để tránh tình trạng GD bị chờ mãi.

o   Xử lý deadlock

        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

        Sử dụng nhãn thời gian của một GD là một định danh duy nhất được tạo ra bởi HQTCSDL cho thấy thời điểm bắt đầu tương đối của giao dịch đó. Định nhãn thời gian là một giao thức điều khiển cạnh tranh mà trong đó mục tiêu cơ bản là sắp xếp cả GD một cách toàn cục theo một cách mà các giao dịch cũ hơn, nghĩa là giao dịch với nhãn TG nhỏ hơn, sẽ được yêu tiên hơn khi có xung đột.

o   Lạc quan: 3 kỳ

        Kỳ đọc: kéo dài từ lúc bắt đầu giao dịch 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 biến cục bộ.

        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ỳ nghi: 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.

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

-        Phục hồi dữ liệu: là quá trình khôi phục CSDL về trạng thái khi có lỗi xảy ra.

o   Việc lưu trữ dữ liệu thông thường bao gồm bốn loại thiết bị với mức độ tin cậy tăng dần là: bộ nhớ trong, đĩa từ, băng từ và đĩa quang.

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

          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.

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

        Cập nhật trì hoãn.

        Cập nhật tức thì.

        Tạo trang bóng.

 

2.     Bài tập tổng hợp (đặt tên các objects có prefix là “BT-”)

a.     Thiết kế CSDL (ràng buộc…) gồm ít nhất 5 bảng, nhập DL ít nhất 3 dòng mỗi bảng

BT_HANGHOA(MA_HANG,TEN_HH),

BT_DAILY(STT_DL, TEN_DL,DIACHI_DL),

BT_MUA(MA_HANG,STT_DL, NGAY_MUA, SOLUONG_MUA, TRIGIA_MUA),

BT_BAN(MA_HANG, STT_DL, NGAY_BAN, SOLUONG_BAN, TRIGIA_BAN)

BT_QUANLYKHO(MA_SP,TEN_HH,SOLUONGKHO)

 

Tạo bảng tạo ràng buộc và thêm dữ liệu BT_HANGHOA, BT_MUA, BT_BAN, BT_DAILY, BT_QUANLYKHO

 

 

 

b.    Viết ít nhất 2 thủ tục, 2 hàm, 2 trigger cho CSDL trên




 

Thủ thục thêm hàng hóa (SP) vào bảng BT_MUA với hai tham số truyền vào là mã hàng hóa và số lượng hàng hóa

 


Tạo thủ tục (1.1)

Thực thi

 Kết quả thụ tục (1.1)

Thủ tục thêm hàng hóa vào kho trong bảng BT_HANGHOA với hai tham số đầu vào là mã hàng và tên sản phẩm. Nếu mã hàng và tên sản phẩm tồn tại thông báo Hàng đã tồn tại ngược lại Thêm không thành công.

 


Tạo thủ tục (1.2)

 

Thực thi

 

Kết quả của thủ tục (1.2)

 

Tạo hàm trả về tổng giá trị của một sản phẩm trong bảng BT_MUA với tham số truyền vào là mã hàng hóa (MaSP)








Tạo hàm

 

Thực thi


 

Kết quả hàm

 

Kết quả hàm

 

Trigger theo dõi cập nhật dữ liệu



(tạo bảng cập nhật và tạo trigger theo dõi cập nhật dữ liệu sau khi người dùng sửa dữ liệu)

 

Thực thi

 


( kết quả thực thi khi người dùng thêm, sửa dữ liệu )


Trigger ngăn kiểm tra việc nhập dữ liệu

      Kiểm tra dữ liệu trước khi người dùng Insert dữ liệu vào nếu sản phẩm tồn tại thông báo sản phẩm đã tồn tại

Tạo trigger

Thực thi

 

Kết quả


 

 

 

c.     Cấp quyền cho 1 bạn trong nhóm có thể truy cập DL, hàm, thủ tục trên

 


Cấp quyền ttruy vấn dữ liệu, thủ tục, hàm