Tổng hợp kiến thức DBMS_Hệ quản trị Cơ sở dữ liệu

14 1.1K 1
Tổng hợp kiến thức DBMS_Hệ quản trị Cơ sở dữ liệu

Đ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

1. Tại sao bạn lựa chọn hệ thống CSDL thay vì lưu dữ liệu trong file quản lý bởi hệ điều hành? Khi nào bạn không nên dùng hệ CSDL?  Khi lưu trữ trên file thì chúng ta gặp phải 1 số vấn đề sau: Bộ nhớ không đủ để lưu trữ nếu dữ liệu quá lớn Dữ liệu phải chuyển qua lại giữa bộ nhớ chính với bộ nhớ phụ nên nếu dùng hệ điều hành 32bit thì không đủ. Với lưu trữ trên file thì mỗi câu truy vấn phải viết 1 chương trình đặc biệt. Không đảm bảo tính nhất quán. Khi gặp sự cố thì khôi phục lại dữ liệu một cách khó khăn. Gặp vấn đề trong bảo mật và kiểm soát truy cập.  Trong khi đó chúng ta dùng hệ thống CSDL có những lợi ích sau: Độc lập dữ liệu và truy cập hiệu quả. Giảm thời gian phát triển ứng dụng. Hợp nhất dữ liệu và bảo mật. Quản trị dữ liệu thống nhất. Truy cập đồng thời và khôi phục khi gặp sự cố. Nếu những lợi ích trên không quan trọng với ứng dụng của bạn, thì việc sử dụng một tập các file là giải phát tốt hơn vì việc duy trì và thực hiện trên DBMS phải trả giá thành cao hơn.

1 Tại bạn lựa chọn hệ thống CSDL thay lưu liệu file quản lý hệ điều hành? Khi bạn không nên dùng hệ CSDL?   Khi lưu trữ file gặp phải số vấn đề sau: - Bộ nhớ không đủ để lưu trữ liệu lớn - Dữ liệu phải chuyển qua lại nhớ với nhớ phụ nên dùng hệ điều hành 32bit không đủ - Với lưu trữ file câu truy vấn phải viết chương trình đặc biệt - Không đảm bảo tính quán - Khi gặp cố khôi phục lại liệu cách khó khăn - Gặp vấn đề bảo mật kiểm soát truy cập Trong dùng hệ thống CSDL lợi ích sau: - Độc lập liệu truy cập hiệu - Giảm thời gian phát triển ứng dụng - Hợp liệu bảo mật - Quản trị liệu thống - Truy cập đồng thời khôi phục gặp cố Nếu lợi ích không quan trọng với ứng dụng bạn, việc sử dụng tập file giải phát tốt việc trì thực DBMS phải trả giá thành cao Độc lập liệu mức logic (Logical data independence) gì? Tại quan trọng? Độc lập liệu logic người quản trị thay đổi cấu trúc mức khái niệm mà không ảnh hưởng đến mức vật lý Vì thay đổi người quản trị thay đổi cho phù hợp với thay đổi với thay đổi liệu thực tế liên quan đến hệ thống CSDL, view cho người dùng xem nên quan trọng độc lập vật lý Giải thích khác độc lập liệu mức logic độc lập liệu mức vật lý (physical data independence)? Hãy cho ví dụ minh họa Độc lập liệu vật lý thay đổi mức vật lý để nâng cao hiệu lưu trữ mà không ảnh hưởng đến mức khái niệm (người quản trị liệu không cần quan tâm nhiều đến mức vât lý thay đổi mức này) Độc lập liệu logic người quản trị thay đổi cấu trúc mức khái niệm mà không ảnh hưởng đến mức vật lý Giải thích khác biệt lược đồ ý niệm/logic (conceptual /logical schema), lược đồ vật lý/bên (Physical/internal schema) lược đồ (external schema) Lượt đồ (external chema) bàn ghi cụ thể, người dùng người quản trị CSDL thao tác với mô hình dùng ngôn ngữ truy vấn liệu Lượt đồ ý niệm/ logic (conceptual/ logical schema) định nghĩa mô hình quan hệ (các bảng) Lượt đồ (Physical/ internal schema) mô hình, cách thức lưu liệu vật lý hệ thống CSDL Trách nhiệm DBA Giả sử DBA không cần quan tâm đến việc thực câu truy vấn DBA, DBA cần hiểu tối ưu hóa câu truy vấn không? Tại sao? Trách nhiệm DBA: - Thiết kế lược đồ logic lược đồ vật lý - Điều khiển bảo mật phân quyền, liệu toàn vẹn - Đảm bảo cho liệu tình trạng sẵn sàng phục hồi lại cố xảy - Sự điều chỉnh liệu cần phải tối ưu DBA cần phải hiểu tối ưu hóa câu truy vấn tầm quan trọng DBA lớn Cần phải am hiểu nhiều mảng liên quan đến lập trình để đảm bảo cho hệ thống CSDL hoạt động tốt am hiểu tối ưu câu truy vấn để tối ưu hệ thống CSDL cách tốt cần thiết Ông A cần mua hệ CSDL Để tiết kiệm chi phí, ông A mua hệ CSDL với số tính Ông ta lập kế hoạch chạy máy PC ông không share thông tin với Hãy cho biết tính tính DBMS ông A mua nên sao: + Tiện ích bảo mật + Kiểm soát đồng thời + Khôi phục liệu sau cố + chế khung nhìn + Ngôn ngữ truy vấn Ông A nên mua DBMS tính sau: - Tiện ích bảo mật (nên chức liệu ông A bị công) - Khôi phục liệu sau cố (cần thiết để tránh liệu gặp cố) - chế khung nhìn (Phải để ông A dễ dàng sử dụng) Kiểm soát đồng thời với ngôn ngư truy vấn không cần ông A sử dụng ngôn ngữ truy vấn ông A không cần biết công việc DBA quản lý hệ CSDL Mô tả cấu trúc DBMS Giả sử hệ điều hành bạn nâng cấp để hỗ trợ thêm số chức file (ví dụ khả cho phép lưu chuỗi bytes lên đĩa) Hãy cho biết lớp DBMS bạn cần phải viết lại để tận dụng ưu điểm tính Cấu trúc DBMS gồm phần: - - Mức nội (interval level): mô tả cấu trúc lưu trữ vật lý CSDL Mức ý niệm (conceptual level): • Mô tả toàn cấu trúc sở liệu • Che dấu chi tiết vật lý • Tập trung vào mô tả liệu, mối quan hệ, ràng buộc Mức ngoại (external level): mô tả phần CSDL ứng với góc nhìn nhóm người dùng Để tận dụng ưu điểm tính cho phép lưu chuỗi byte lên đĩa cần phải viết lại mức ngoại Trả lời câu hỏi sau: Giao tác (transaction) gì? Transaction tập hợp hành động thực chức chúng thành công thất bại Tại DBMS thực xen kẽ hành động giao dịch khác thay thực giao dịch ? DBMS thực xen kẽ transaction nhằm mục đích tận dụng tối đa thời gian trống chương trình hệ thống Nếu thực giao dịch số chương trình rảnh công việc làm, từ hiệu suất Một user phải chắn điều để đảm bảo tính quán giao dịch CSDL ? Một DBMS nên chắn điều để đảm bảo tính quán thực đồng thời nhiều giao dịch CSDL DBMS phải đảm bảo giao dịch thực thi toàn độc lập với giao dịch khác Một tính chất quan trọng giao dịch DBMS tính nguyên tử tính lập Các giao dịch thành công thất bại hoàn toàn Điều đảm bảo tính quan liệu Giải thích nghi thức khóa giai đoạn nghiêm ngặt (the strict two-phase locking protocol) Khóa hai-pha nghiêm ngặt sử dụng khóa chia sẻ khóa độc quyền để bảo vệ liệu Một giao dịch phải nắm giữ tất khóa cần thiết trước thực thi không giải phóng khóa trước giao dịch kết thúc hoàn toàn Tính chất WAL quan trọng ? Đặc tính WAL ảnh hưởng đến chiến lược logging DBMS WAL viết tắt Write- Ahead Log, nghĩa thao tác viết lên sở liệu phải ghi vào log (trên đĩa) trước thực xảy sở liệu Điều bảo vệ sở liệu cố xảy trình giao dịch thực Bằng việc ghi lại thay đổi vào log trước thay đổi thực diễn ra, sở liệu biết phải làm lại thao tác để khôi phục cố Ngược lại, việc ghi vào log diễn sau sở liệu phát thay đổi xảy trình khôi phục cố TRIGGER Câu 1: Ràng buộc khóa ngoại gì? Tại ràng buộc quan trọng? Tính toàn vẹn tham chiếu gì? Ràng buộc khóa ngoại bảng CSDL trường phù hợp với trường phù hợp với trường khóa bảng khác Trường khóa ngoại sử dụng để tạo mối quan hệ với trường khóa bảng Điều ngăn cản bạn chèn thêm thêm liệu không hợp lệ trường hơp khóa ngoại trường khóa ngoại chấp nhận giá trị trường khóa Tính toàn vẹn tham chiếu quan CSDL quan hệ tham chiếu với Câu 2: Hãy cho biết điểm mạnh điểm yếu chế trigger Trình bày tương phản trigger với ràng buộc toàn vẹn khác hỗ trợ bở SQL Điểm mạnh trigger: Tính toán cập nhật liệu tự động Kiểm tra liệu nhập Kiểm tra ràng buộc phức tạp Bẫy lỗi dễ hiểu  Điểm yếu trigger Không tạo tham chiếu bảng Không tạo, thay đổi xóa cấu trúc đối tượng sẵn CSDL Không gán cấp quyền cho người dùng  - Trigger tạo bảng ảo thao tác CSDL tự động cập nhật TRANSACTION Câu Trả lời câu hỏi sau: Transaction gì? Nó khác so với chương trình thông thường (chẳng hạn chương trình viết ngôn ngữ C) Định nghĩa thuật ngữ sau: atomicity, consistency, isolation, durability, schedule, blide write, dirty read, unrepeatable read, serializable schedule, recoverable schedule, avoids-cascading-aborts schedule Mô tả Strict 2PL 1 Bài làm: Transaction (giao dịch)là thực thi chương trình người dùng, DBMS xem chuỗi thao tác(lệnh) Các thao tác thực giao dịch bao gồm: phép đọc viết lên đối tượng sở liệu, thao tác chương trình thông thường bao gồm liệu đầu vào người dùng, truy cập thiết bị mạng, xây dựng giao diện người dùng Sự khác biệt Transaction(T) so với phần mềm viết ngôn ngữ khác : T phải thực thi DBMS, kích hoạt thực trình thực chương trình STT Thuật ngữ atomicity Định nghĩa Tính nguyên tử - Tất thao tác nằm giao dịch thực thành công thất bại hoàn toàn Người dùng lo lắng ảnh hưởng giao dịch chưa thành công (giả sử, cố xảy giao dịch trình thực hiện) consistency Tính quán - Mỗi giao dịch thực thi không tranh chấp với giao dịch khác, phải đảm bảo tính chất quán sở liệu DBMS thừa nhận tính quán đảm bảo giao dịch Việc đảm bảo tính chất giao dịch trách nhiệm người dùng isolation durability Tính lập - Người dùng nên hiểu giao dịch mà không cần xem xét ảnh hưởng giao dịch tương tranh khác chạy, chí DBMS chèn vào thao tác khác lý thực thi Tính chất nói tới tính chấtcô lập.Các giao dịch lập, hay gọi bảo vệ từ ảnh hưởng giao dịch tương tranh khác Tính bền vững - Khi DBMS thông báo cho người dùng biết giao dịch thành công hoàn toàn, ảnh hưởng nên trì hệ thống gặp cố trước tất thay đổi kịp lưu lại đĩa Schedule Lược trình – chuỗi giao dịch (có thể xếp xen kẽ với nhau) Viết mù việc giao dịch viết lên đối tượng mà chí không đọc đối tượng blide write dirty read Đọc bẩn: xảy giao dịch đọc đối tượng mà đối tượng thay đổi giao dịch chưa thành công khác unrepeatable read Đọc lặp lại: xảy giao dịch đọc giá trị đối tượng nhiều lần, chí giao dịch không phép thay đổi giá trị Giả sử giao dịch T2 thay đổi giá trị đối tượng A – đối tượng đọc giao dịch T1 T1 trình xử lý Nếu T1 cố gắng đọc giá trị A lần nữa, kết khác, không thay đổi A serializable schedule Lượt biểu - tập S giao dịch lịch trình mà giống với lịch trình hoàn toàn tập giao dịch thành công S 10 recoverable schedule 11 avoidscascading-aborts Lịch trình phục hồi lịch trình mà giao dịch thành công sau tất giao dịch khác đọc thành công Lịch trình tránh hủy bỏ chồng số giao dịch đọc thay đổi schedule giao dịch thành công Một lịch trình khả phục hồi, việc hủy bỏ giao dịch hoàn thành mà không hủy bỏ chồng giao dịch khác Transactions tính ACID: - Nguyên tử: thực toàn không thực cố xảy hệ thống hủy -Tính quán: ràng buộc trì, đảm bảo -Cô lập: ng dùng thực coi tiến trình thực thực tế nhiều tiến trình xảy ra.Sẽ thực transactin chen nganh -Bền vững: transaction đảm bảo hệ thống cố xảy Trạng thái transactions: -Khởi động: trì suốt trình thao tác -Hoàn thành phần: sau lệnh cuối thực -Thất bại: sau phục hồi thao tác tiến hành -Hủy bỏ: sau transaction rolled back csdl phục hồi trạng thái trước trạng thái bắt đầu transaction(khởi động: lỗi, hủy hoàn tòan) -Committed: sau transaction thực hoàn toàn Strict 2PL giao thức khóa sử dụng rộng rãi Một giao dịch yêu cầu khóa chia sẻ/ độc quyền đối tượng trước đọc/ sửa đối tượng 2.Tất khóa mà giao dịch nắm bắt giải phóng giao dịch thành công 5 Lịch trình lịch trình mà thị thực đến hoàn tất giao dịch chuyển sang thực thị giao dịch khác Tính khả (Serializability): lịch trình tính khả lịch trình tương đương với lịch trình Xung đột (Confict): thị lịch trình gọi xung đột thỏa điều kiện sau: - Thuộc giao dịch khác - Thực liệu X - Ít thị Write (X) Tương đương xung đột (conflict equivalent): lượt biểu đổi chỗ lệnh không xung đột lượt biểu Vd: S1 R1(X) W2(X) S2 W2(X) R1(X)  Không tương đương xung đột Khả xung đột (confilct serializable): tương đương xung đột với lượt biểu Lược tiểu View (View Serializability): thỏa điều kiện - Nếu Ti đọc giá trị đầu Q S S’ Ti đọc giá trị ban đầu Q Với đối tượng liệu Q,trong Ti thực thao tác đọc(read) Q mà Q trước ghi(write) Tj Nếu Ti ghi(write) giá trị cuối Q Tj ghi(write) giá trị cuối Q Khả view (view serializable): lịch trình gọi khả view tương đương view với lịch trình - Lịch trình khả xung đột khả view - Lịch trình khả view không khả xung đột -> write mù (blind write) Write mù: thực hoạt động write mà không thực read Lịch trình khả phục hồi (Recoverable schedule): lịch trình đó, cặp giao dịch Ti, Tj, Tj đọc hạng mục liệu viết Ti hoạt động bàn giao Tj phải xảy sau hoạt động bàn giao Ti Phục hồi : commit transaction ghi xuất trước commit transaction đọc Lịch trình khả phục hồi không lan truyền (Cascadeless schedules): lịch trình cặp giao dịch Ti, Tj Tj đọc hạng mục liệu viết trước Ti, hoạt động bàn giao Ti phải xuất trước hoạt động đọc Tj Phục hồi: commit transactuon ghi phải xuất trước read transaction đọc Nghi thức kiểm soát đồng thời dựa Lock (Lock-Based Concurrency Control): Nghi thức giai đoạn nghiêm ngặt Strict Two – Phase Locking: Nếu trans yêu cầu đọc hệ thống cấp thẻ (S), yêu cầu sửa cấp (X) S – sau dùng xong trả X – trả lúc không cấp lại PHÂN QUYỀN TRONG SQL SERVER  Hình thành theo cấu - Người đăng nhập (login) - Người dùng (user) - Quyền hạn (permission) - Nhóm quyền (role) @ Người đăng nhập thể người dùng với số quyền hạn ứng với liệu ĐĂNG NHẬP (LOGIN) - Tạo người đăng nhập Exec sp_addlogin ‘tên_login’, ‘mật_khẩu’ [,’dữ liệu’] Create login tên_login with password = ‘mật_khẩu’ [,default_database = dữ_liệu] - - Xóa người đăng nhập Exec sp_droplogin ‘tên_login’ Drop login tên_login Thay đổi người đăng nhập Alter login { [enable | disable] | with {password = ‘…’ | default_database = …} NGƯỜI DÙNG (USER) - Tạo người dùng cho liệu Exec sp_adduser ‘tên_login’, ‘tên_user’ [,’tên_role’] - Create user tên_user for tên_login Xóa người dùng Exec sp_dropuser ‘tên_user’ Drop user tên_user NHÓM QUYỀN (ROLE) - Tạo nhóm quyền: exec sp_addrole 'tên_role' create role tên_user - Xóa nhóm quyền exec sp_droprole 'tên_role' drop role tên_role NGƯỜI DÙNG VÀ NHÓM QUYỀN - Gắn người dùng với nhóm quyền exec sp_addrolemember 'tên_role', 'tên_user' - Xóa nhóm quyền exec sp_droprolemember 'tên_role', 'tên_user' QUYỀN HẠN (PERMISSION) - Tạo quyền hạn grant {ALL | permission} on table[(column [, n])] to { user | role [, n]} [with grant option] with grant option: phép gán lại quyền mà cho người khác - Xóa quyền hạn Revoke [grant option for] {ALL | permission } on table[column [, n])] to { user | role [, n] } [cascade] grant option for: bỏ tính cấp lại quyền cho người khác (quyền giữ lại) cascade: bỏ tất quyền ( kế thừa) VÍ DỤ - - Đăng nhập ‘sa’ Exec sp_addlogin ‘u1’,’123’ Exec sp_addlogin ‘u2’,’123’ Exec sp_adduser ‘u1’,’u1’ Exec sp_adduser ‘u2’,’u2’ Grant select on sinhvien to u1 with grant option  U1 quyền dùng lệnh • Select * from sinhvien • Grant select on sinhvien to u2 [with grant option] Đăng nhập ‘u1’ Grant select on sinhvien to u2 with grant option  Vậy u2 quyền select grant Đăng nhập với ‘sa’ Revoke select on sinhvien to u1 cascade  Xóa hết quyền select grant u1 u2 Revoke grant option for select on sinhvien to u1 cascade  Xóa quyền grant u1 quyền select grant u2 ... viết lên sở liệu phải ghi vào log (trên đĩa) trước thực xảy sở liệu Điều bảo vệ sở liệu có cố xảy trình giao dịch thực Bằng việc ghi lại thay đổi vào log trước thay đổi thực diễn ra, sở liệu biết... phục liệu sau cố + Cơ chế khung nhìn + Ngôn ngữ truy vấn Ông A nên mua DBMS có tính sau: - Tiện ích bảo mật (nên có chức liệu ông A bị công) - Khôi phục liệu sau cố (cần thiết để tránh liệu gặp... Ti đọc giá trị đầu Q S S’ Ti đọc giá trị ban đầu Q Với đối tượng liệu Q,trong Ti thực thao tác đọc(read) Q mà Q trước ghi(write) Tj Nếu Ti ghi(write) giá trị cuối Q Tj ghi(write) giá trị cuối Q

Ngày đăng: 06/05/2017, 11:39

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan