Cơ sở dữ liệu - bài 2 ppsx

9 261 0
Cơ sở dữ liệu - bài 2 ppsx

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

Thông tin tài liệu

Cơ sở dữ liệu ThS. Lê Văn Lợi Bai-2.doc *** Trang 1 B B à à i i 2 2 Bài này nêu các kiến trúc và nguyên tắc cơ bản làm nền tảng ñể chúng ta hiểu bản chất của CSDL và HQT CSDL. 1./ Kin trúc CSDL Theo ANSI/SPARK, kiến trúc của một CSDL gồm 3 mức như trong hình vẽ sau: Hình 1: Kiến trúc CSDL 3 lớp Mức ngoài: tương ứng với khuông nhìn ñơn lẻ của từng người dùng. Người dùng gồm lập trình viên, người dùng thông thường và DBA. Mức ngoài thường gắn với ngôn ngữ lập trình, ngôn ngữ ñịnh nghĩa dữ liệu (data definition language – DDL), ngôn ngữ ñiều khiển dữ liệu (data manipulation language – DML). Chúng ta sẽ trở lại DDL và DML trong các phần tiếp theo. Mức khái niệm: là một biểu diễn dữ liệu mang tính toàn diện của CSDL. Tương ứng với mức này người ta thường ñịnh nghĩa lược ñồ mức khái niệm (Conceptual Schema). Mức lưu trữ: mức gần với lưu trữ vật lý nhất. Để nâng cao tính hiệu dụng, DBA và các lập trình viên ứng dụng có kinh nghiệm sẽ quan tâm hơn tới mức này: ñịnh nghĩa chỉ mục, các phương pháp lập chỉ mục. Do khuôn khổ của giáo trình, ta sẽ không ñề cập ñến các kỹ thuật này. 2./ Vai trò ca DBA ■ Thiết lập lược ñồ mức khái niệm ■ Định nghĩa các chỉ mục, phương pháp lập chỉ mục M ức ngo ài: Khuông nhìn riêng của từng người dùng M ức khái niệm: Khuông nhìn tổng thể M ức l ưu tr ữ Cơ sở dữ liệu ThS. Lê Văn Lợi Bai-2.doc *** Trang 2 ■ Liên kết với người dùng ■ Xác lập hệ thống bảo mật thông tin và các qui tắc toàn vẹn dữ liệu ■ Xác lập các qui trình sao lưu thông tin và phục hồi dữ liệu khi có sự cố ■ Giám sát hệ thống CSDL, ñộ hiệu dụng và quản lý các thay ñổi của người dùng 3./ Vai trò ca HQT CSDL HQT CSDL là giao diện giữa người dùng và CSDL. HQT CSDL che các chi tiết và chỉ ñể người dùng nhìn thấy dữ liệu dưới dạng logic. Một số các chức năng cần có của HQT CSDL. ■ Định nghĩa dữ liệu (SV ghi chép tại lớp) ■ Điều khiển dữ liệu (SV ghi chép tại lớp) ■ Bảo mật dữ liệu và ñảm bảo tính toàn vẹn (SV ghi chép tại lớp) ■ Phục hồi dữ liệu và xử lý tranh chấp (SV ghi chép tại lớp) ■ Từ ñiển dữ liệu (SV ghi chép tại lớp) ■ Đảm bảo tính hiệu dụng (SV ghi chép tại lớp) Cơ sở dữ liệu ThS. Lê Văn Lợi Bai-2.doc *** Trang 3 4./ Kin trúc Client/Server Hình 2: Kiến trúc Client/Server của một hệ CSDL Toàn bộ kiến trúc trong các phần trước ñương nhiên là ñể phục vụ cho các ứng dụng về CSDL. Đứng về phương diện tổng thể, một hệ thống CSDL có thể ñược coi như một kiến trúc gồm 2 phần: Client (mặt trước - frontend) và Server (mặt sau - backend). ■ Server chính là HQT CSDL. Phần này hỗ trợ tất cả các phép toán lên CSDL như trong phần trên ñây ñã ñề cập: ñịnh nghĩa dữ liệu, ñiều khiển dữ liệu, bảo mật và toàn vẹn dữ liệu. ■ Client chính là các chương trình ứng dụng kết nối với Server (HQT CSDL). Các chương trình ứng dụng có thể ñược viết mới hoặc tích hợp sẵn. Các ứng dụng có thể ñược chia ra thành 2 lớp: ■ Phần mềm do lập trình viên viết (phần mềm viết mới). Các lập trình viên có thể sử dụng một số ngôn ngữ như Java, C, COBOL, VisualBasic, ñể viết các ứng dụng có kết nối với CSDL ■ Phần mềm do chính nhà cung cấp HQT CSDL viết (phần mềm tích hợp sẵn). Phần này chủ yếu là các công cụ ñể kết nối với CSDL như: Bộ xử lý ngôn ngữ truy vấn, Tạo báo cáo, Các công cụ tiện ích, Người dùng cuối CT ứng dụng Client HQT CSDL Server CSDL Cơ sở dữ liệu ThS. Lê Văn Lợi Bai-2.doc *** Trang 4 5./ X lý phân tán Xứ lý phân tán là gì? Nhiều máy tính nối mạng với nhau cùng xử lý một công việc. (Xứ lý song song có thể coi như một trường hợp ñặc biệt của xứ lý phân tán). Một số biến thể của xử lý phân tán: Hình 3: CT Server và Client chạy trên hai máy khác nhau Hình 4: Một máy chủ, nhiều máy Client CT ứng dụng Máy Client HQT CSDL Máy Server Các máy Client Server Máy Server Cơ sở dữ liệu ThS. Lê Văn Lợi Bai-2.doc *** Trang 5 Hình 5: Nhiều máy Server và nhiều máy Client Mô hình trong Hình 1 chính là mô hình ñược sử dụng rộng rãi hiện nay. Trong Hình 5, có hai trường hợp cần ñược phân biệt: ■ Trên các máy chủ, các HQT CSDL hoàn toàn ñộc lập với nhau (có thể cùng loại nhưng chúng chạy các CSDL hoàn toàn khác nhau). Trường hợp này ñồng nghĩa với việc một chương trình Client có thể truy xuất nhiều CSDL trên nhiều máy. ■ Trên các máy chủ, các HQT CSDL chạy ñồng bộ với nhau cùng một CSDL. Đây có thể ñược coi như một cơ chế sao lưu phân tán CSDL (replication). Trường hợp này ñược gọi là hệ thống CSDL phân tán. 6./ Các qui tc ca TS. Codd v HQT CSDL quan h Như thế nào ñược gọi là một HQT CSDL quan hệ? TS. Codd ñưa ra 12 qui tắc, qua ñó các HQT CSDL quan hệ phải tuân thủ. Hay nói cách khác, một HQT CSDL muốn ñược gọi là HQT CSDL quan hệ khi nó thỏa mãn 12 qui tắc ñã ñề ra. Điểm ñặc biệt là trên thực tế chưa có HQT CSDL quan hệ nào thực hiện ñược ñầy ñủ 12 qui tắc này. Tuy nhiên, tác giả liệt kê ra 12 qui tắc này ñể chúng ta cùng tham khảo và có thể coi ñó như là một cách ñể hiểu thêm CSDL quan hệ. Các máy Client Các máy Server Server Server Cơ sở dữ liệu ThS. Lê Văn Lợi Bai-2.doc *** Trang 6 Qui tắc #1. Dữ liệu ñược thể hiện dưới dạng bảng • Tập hợp các bảng tạo thành CSDL và dữ liệu ñược trình bày dưới dạng bảng; dữ liệu không ñược trình bày bằng bất cứ phương thức nào khác. • Một bảng (cũng ñồng nghĩa với một quan hệ hoặc một thực thể) là nhóm dữ liệu có mối quan hệ với nhau dưới dạng các dòng và các cột. • Mỗi một dòng (cũng ñồng nghĩa với một bản ghi, một tuple) mô tả một ñơn vị dữ liệu (người, vật, ñối tượng nói chung) trong bảng. • Mỗi một cột (còn gọi là trường, thuộc tính) mô tả một ñặc trưng của dữ liệu trong bảng • Mỗi một giá trị dữ liệu là ñiểm dữ liệu giao nhau giữa hàng và cột • Mỗi một giá trị là một nguyên tử - nghĩa là không có hai giá trị trở lên ñối với một ñiểm giao giữa hàng và cột • Không xếp hạng bảng và không có thứ tự ñối với bảng • Mối quan hệ giữa các bảng chỉ mang tính logic, không có quan hệ vật lý. Qui tắc #2. Dữ liệu ñược truy cập một cách logic • CSDL quan hệ không tham chiếu dữ liệu bằng các vị trí vật lý. Sẽ không có khái niệm dòng thứ năm trong một bảng. • Mỗi một giá trị bất kỳ trong bảng luôn luôn có thể truy xuất bằng: 1. một bảng; 2. giá trị khóa hoặc giá trị duy nhất; và 3. một cột Qui tắc #3. Giá trị Null ñược xử lý một cách thống nhất là “không biết” • Null luôn luôn ñược hiểu là một giá trị không biết • Null có nghĩa là không có giá trị nào ñược ñưa vào và giá trị ñó không ñược biết (HQT CSDL phải có cơ chế ñặc biệt ñể lưu) • ‘Không biết’ không ñồng nghĩa với trắng hay số không (0). • Ví dụ, một mặt hàng nào ñó chưa có giá không ñồng nghĩa với việc mặt hàng ñấy là miễn phí • Null cần ñược xử lý ñặc biệt, nếu không sẽ dẫn ñến nhầm lẫn • Trong một biểu thức số học có các số hạng là Null thì kết quả luôn luôn là Null (Vd., 2 + NULL = NULL) • So sánh Null với bất cứ giá trị nào cũng luôn luôn cho kết quả Null Qui tắc #4. CSDL quan hệ phải tự mô tả (Database is Self-Describing) • Ngoài dữ liệu người dùng, CSDL quan hệ còn có dữ liệu về chính nó • Có hai loại bảng trong HQT CSDL quan hệ: các bảng dữ liệu người dùng và các bảng dữ liệu hệ thống mô tả về cấu trúc của CSDL • Siêu dữ liệu (Metadata) là dữ liệu mô tả cấu trúc của chính CSDL ñó trong ñó bao gồm ñịnh nghĩa của các ñối tượng (bảng, chỉ mục, store procedure, ) và mô tả các quan hệ giữa các ñối tượng ñó. • Tập hợp các bảng hệ thống cũng có tên gọi là Catalog hệ thống hoặc từ ñiển dữ liệu. • Bảng hệ thống cũng ñược truy cập như các bảng thông thường Cơ sở dữ liệu ThS. Lê Văn Lợi Bai-2.doc *** Trang 7 Qui tắc #5. Chỉ một ngôn ngữ duy nhất ñược sử dụng ñể giao tiếp với HQT CSDL • Chỉ duy nhất một ngôn ngữ dùng ñể giao tiếp với HQT CSDL • Ngôn ngữ này phải hỗ trợ các phép toán quan hệ: các phép toán thay ñổi dữ liệu (data modifications) (VD. SELECT, INSERT, UPDATE, DELETE), các phép toán ñịnh nghĩa dữ liệu (VD. CREATE, ALTER, DROP) và các phép toán quản trị (VD. GRANT, REVOKE, DENY, BACKUP, RESTORE) • Structured Query Language (SQL) là chuẩn mặc nhiên của ngôn ngữ CSDL quan hệ • SQL không phải là ngôn ngữ thủ tục mà là ngôn ngữ khai báo; Nó cho phép người dùng biểu diễn những gì họ muốn và HQT CSDL sẽ thực hiện các yêu cầu ñó chứ không cần mô tả là phải thực hiện những yêu cầu ñó như thế nào. Qui tắc #6. Cho phép xem dữ liệu bằng nhiều phương pháp khác nhau • CSDL quan hệ không chỉ giới hạn việc trình diễn dữ liệu từ các bảng gốc • Khuông nhìn gồm các bảng ảo, các bảng trừu tượng ñược xây dựng từ các bảng gốc • Khuông nhìn (View) là một phương thức quan sát dữ liệu ñến một hoặc nhiều bảng • Khuông nhìn (View) không phải là bản sao của bảng • Khi một View ñã ñược tạo ra, nó ñược xử lý giống hệt như bảng • Nếu ta thay ñổi dữ liệu của một View, thì dữ liệu ở bảng gốc cũng bị thay ñổi (tuy nhiên, có một số qui tắc nhất ñịnh vì không phải trường nào trong một view cũng có thể sửa ñổi ñược) • Views cho phép tạo ra các bảng mới theo ý muốn từ các bảng gốc • VÍ DỤ: Bằng cách tạo ra một view, chúng ta có thể che các dữ liệu nhạy cảm ñối với một lớp ñối tượng người dùng • Views cho phép ta tạo ra các bảng phức tạp theo các qui tắc tác nghiệp từ các bảng gốc ñơn giản bằng toán tử JOIN Qui tắc #7. Hỗ trợ các phép toán quan hệ và các phép toán tập hợp • Các dòng trong bảng ñược xử lý như là các tập hợp ñối với các toán tử ñiều khiển dữ liệu (SELECT, INSERT, UPDATE, DELETE) • CSDL quan hệ phải hỗ trợ các toán tử của ñại số quan hệ (selection, projection; & join ) và toán tử tập hợp (union, intersection, division, và difference) • Các toán tử tập hợp và các toán tử ñại số quan hệ sẽ tạo ra các bảng mới Qui tắc #8. Tính ñộc lập với dữ liệu lưu dạng vật lý (Physical Data Independence) • Các ứng dụng có truy cập CSDL quan hệ sẽ không bị ảnh hưởng gì khi cấu trúc bên trong của CSDL thay ñổi. Người dùng chỉ biết ñến các bảng, không cần quan tâm ñến việc các bảng ñấy ñược tổ chức như thế nào trên ñĩa. • Các ứng dụng chỉ cần ñịnh nghĩa dữ liệu dưới dạng logic (kiểu dữ liệu và ñộ dài); chúng không cần biết ñến việc lưu dữ liệu như thế nào (data type and length); Cơ sở dữ liệu ThS. Lê Văn Lợi Bai-2.doc *** Trang 8 Qui tắc #9. Tính ñộc lập dữ liệu logic (Logical Data Independence) • Tính ñộc lập dữ liệu là quan hệ giữa các bảng có thể thay ñổi mà không làm ảnh hưởng ñến chương trình ứng dụng sử dụng các bảng ñó. • Lược ñồ CSDL, cấu trúc của các bảng có thể thay ñổi mà không làm thay ñổi ứng dụng Qui tắc #10. Tính toàn vẹn dữ liệu cần ñược ñảm bảo trong một HQT CSDL quan hệ • Để ñược gọi là một HQT CSDL quan hệ, hệ ñó phải ñảm bảo tính toàn vẹn dữ liệu. Nói cách khác ñảm bảo tình toàn vẹn dữ liệu là trách nhiệm của HQT CSDL, không phải là trách nhiệm của chương trình ứng dụng • Toàn vẹn dữ liệu là tính thống nhất và tính chính xác của dữ liệu. Nói cách khác CSDL không có dữ liệu “rác”. • Có 3 dạng toàn vẹn dữ liệu: toàn vẹn thực thể, toàn vẹn miền và toàn vẹn tham chiếu • Trong CSDL, tính toàn vẹn có thể ñược thực hiện bằng các qui trình thủ tục hoặc các qui trình khai báo • Tính toàn vẹn thực hiện theo thủ tục thực chất là viết các chương trình ñể ñảm bảo các ràng buộc Qui tắc #11. Hỗ trợ xử lý phân tán (Supports Distributed Operations) • Dữ liệu trong CSDL quan hệ có thể lưu tập trung hoặc phân tán • Người dùng có thể liên kết dữ liệu từ các bảng ñặt trên các máy chủ khác nhau (gọi là truy vấn phân tán) hoặc ñặt từ các CSDL khác nhau (gọi là truy vấn hỗn hợp) • Tính toàn vẹn dữ liệu cần luôn luôn ñược ñảm bảo dù cho dữ liệu gồm nhiều bản sao và phân tán nhiều nơi Qui tắc #12. Tính toàn vẹn dữ liệu không thể bị phá vỡ • Ngoài các phép toán cơ bản ñã nêu, HQT CSDL phải ñảm bảo là không có con ñường nào khác có thể phá vỡ tính toàn vẹn dữ liệu. • HQT CSDL phải ñảm bảo là không thể dùng ngôn ngữ máy ñể có thể phá vỡ ñược tính toàn vẹn dữ liệu 7./ Bài tp Bài tập 2.1 - Giải thích các thuật ngữ: ■ Client ■ Server ■ Backend ■ Frontend ■ SQL ■ Xứ lý phân tán Cơ sở dữ liệu ThS. Lê Văn Lợi Bai-2.doc *** Trang 9 Bài tập 2.2 - Nêu lợi ích của xử lý phân tán Bài tập 2.3 - Giải thích vai trò của DBA Bài tập 2.4 - Giải thích vai trò của HQT CSDL Bài tập 2.5 - Nêu ñặc trưng cơ bản của CSDL mô hình quan hệ . Xứ lý phân tán Cơ sở dữ liệu ThS. Lê Văn Lợi Bai -2 . doc *** Trang 9 Bài tập 2. 2 - Nêu lợi ích của xử lý phân tán Bài tập 2. 3 - Giải thích vai trò của DBA Bài tập 2. 4 - Giải thích vai. ñịnh nghĩa dữ liệu dưới dạng logic (kiểu dữ liệu và ñộ dài); chúng không cần biết ñến việc lưu dữ liệu như thế nào (data type and length); Cơ sở dữ liệu ThS. Lê Văn Lợi Bai -2 . doc *** Trang. Cơ sở dữ liệu ThS. Lê Văn Lợi Bai -2 . doc *** Trang 6 Qui tắc #1. Dữ liệu ñược thể hiện dưới dạng bảng • Tập hợp các bảng tạo thành CSDL và dữ liệu ñược trình bày dưới dạng bảng; dữ liệu

Ngày đăng: 31/07/2014, 14:20

Từ khóa liên quan

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

Tài liệu liên quan