Bài giảng cơ sở dữ liệu - Chương 4: Cơ sở dữ liệu

ppt 134 trang huongle 7240
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng cơ sở dữ liệu - Chương 4: Cơ sở dữ liệu", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_co_so_du_lieu_chuong_4_co_so_du_lieu.ppt

Nội dung text: Bài giảng cơ sở dữ liệu - Chương 4: Cơ sở dữ liệu

  1. Chương 4 Cơ sở dữ liệu Chương 4. Cơ sở dữ liệu 1
  2. Nội dung v Các khái niệm cơ bản và định nghĩa. v Các loại CSDL. v Hệ quản trị CSDL. v CSDL quan hệ. v Sự phát triển của các hệ CSDL. Chương 4. Cơ sở dữ liệu 2
  3. Các khái niệm cơ bản và định nghĩa v Cơ sở dữ liệu „ database „ Cơ sở dữ liệu là sự tập hợp cĩ tổ chức các dữ liệu cĩ liên quan luận lý với nhau. „ Dữ liệu (data): sự biểu diễn của các đối tượng và sự kiện được ghi nhận và được lưu trữ trên các phương tiện của máy tính. Ÿ Dữ liệu cĩ cấu trúc: số, ngày, chuỗi ký tự, Ÿ Dữ liệu khơng cĩ cấu trúc: hình ảnh, âm thanh, đoạn phim, „ Cĩ tổ chức (organized): người sử dụng cĩ thể dễ dàng lưu trữ, thao tác và truy xuất dữ liệu. Chương 4. Cơ sở dữ liệu 3
  4. Các khái niệm cơ bản và định nghĩa v Cơ sở dữ liệu „ Cĩ liên quan luận lý (logically related): dữ liệu mơ tả một lãnh vực mà nhĩm người sử dụng quan tâm và được dùng để trả lời các câu hỏi liên quan đến lãnh vực này. v Thơng tin „ information „ Thơng tin là dữ liệu đã được xử lý để làm tăng sự hiểu biết của người sử dụng. „ Dữ liệu trong ngữ cảnh. „ Dữ liệu được tổng hợp / xử lý. Chương 4. Cơ sở dữ liệu 4
  5. Các khái niệm cơ bản và định nghĩa Dữ liệu 50010273 Nguyễn Trung Tiến MT00 20 50100298 Lê Việt Hùng MT01 19 59900012 Trần Hùng Việt MT99 21 50200542 Hồ Xuân Hương MT02 18 50000075 Bùi Đức Duy MT00 20 Thơng tin: dữ liệu trong ngữ cảnh Mã sinh viên Họ và tên sinh viên Lớp Tuổi 50010273 Nguyễn Trung Tiến MT00 20 50100298 Lê Việt Hùng MT01 19 59900012 Trần Hùng Việt MT99 21 50200542 Hồ Xuân Hương MT02 18 50000075 Bùi Đức Duy MT00 20 Chương 4. Cơ sở dữ liệu 5
  6. Các khái niệm cơ bản và định nghĩa Thơng tin: dữ liệu được tổng hợp / xử lý MT99 20% MT00 40% MT02 20% MT01 20% Chương 4. Cơ sở dữ liệu 6
  7. Các khái niệm cơ bản và định nghĩa v Siêu dữ liệu „ metadata „ Siêu dữ liệu là dữ liệu dùng để mơ tả các tính chất / đặc tính của dữ liệu khác (dữ liệu về dữ liệu). „ Các đặc tính: định nghĩa dữ liệu, cấu trúc dữ liệu, qui tắc / ràng buộc. Chương 4. Cơ sở dữ liệu 7
  8. Các khái niệm cơ bản và định nghĩa Siêu dữ liệu cho Sinh_viên Data Item Value Name Type Length Min Max Description MaSV Character 8 Ma sinh vien Hoten Character 30 Ho ten sinh vien Lop Character 3 Lop Tuoi Number 2 17 25 Tuoi Chương 4. Cơ sở dữ liệu 8
  9. Hệ thống xử lý tập tin v Hệ thống xử lý tập tin „ file processing system „ Hệ thống xử lý tập tin là tập hợp các chương trình dùng để lưu trữ, thao tác và truy xuất các tập tin dữ liệu cĩ kích thước lớn. „ Các tập tin dữ liệu được lưu trữ trong các thư mục (folder). Chương 4. Cơ sở dữ liệu 9
  10. Hệ thống xử lý tập tin v Các thành phần của hệ thống xử lý tập tin „ Phần cứng: các máy tính. „ Phần mềm: Ÿ Hệ điều hành Ÿ Các tiện ích Ÿ Các tập tin Ÿ Các chương trình quản lý tập tin Ÿ Các chương trình ứng dụng tạo các báo cáo từ các dữ liệu được lưu trữ trong các tập tin. „ Con người: người quản lý, chuyên gia, người lập trình, người sử dụng cuối cùng. „ Các thủ tục: các lệnh và các qui tắc chi phối việc thiết kế và sử dụng các thành phần của phần mềm. „ Dữ liệu: tập hợp các sự kiện. Chương 4. Cơ sở dữ liệu 10
  11. Hệ thống xử lý tập tin v Quản lý dữ liệu của hệ thống tập tin „ Ngơn ngữ lập trình: 3GL (third-Generation Language). Ÿ Làm gì? Làm như thế nào? Ÿ Các ngơn ngữ: COBOL (COmmon Business-Oriented Language) BASIC (Beginner’s All-purpose Symbolic Instruction Code) FORTRAN (FORmula TRANslation) „ Các chương trình xử lý tập tin Ÿ Tạo cấu trúc tập tin. Ÿ Thêm dữ liệu vào tập tin. Ÿ Xĩa dữ liệu của tập tin Ÿ Sửa dữ liệu của tập tin. Ÿ Liệt kê dữ liệu của tập tin. Chương 4. Cơ sở dữ liệu 11
  12. Hệ thống xử lý tập tin v Nhược điểm của hệ thống xử lý tập tin „ Phụ thuộc dữ liệu – chương trình (Program-Data Dependence) Ÿ Tất cả các chương trình ứng dụng phải duy trì siêu dữ liệu (phần mơ tả) của các tập tin mà chúng sử dụng. „ Dư thừa dữ liệu / Trùng lặp dữ liệu (Data Redundancy / Duplication of Data) Ÿ Các hệ thống / chương trình khác nhau cĩ các bản dữ liệu riêng biệt của cùng dữ liệu. „ Hạn chế việc dùng chung dữ liệu Ÿ Mỗi ứng dụng cĩ các tập tin riêng biệt, ít sử dụng chung dữ liệu với các ứng dụng khác. Chương 4. Cơ sở dữ liệu 12
  13. Hệ thống xử lý tập tin v Nhược điểm của hệ thống xử lý tập tin „ Thời gian phát triển lâu Ÿ Người lập trình phải thiết kế các dạng tập tin dữ liệu riêng và viết cách truy xuất tập tin cho mỗi ứng dụng mới. „ Chi phí bảo trì chương trình cao Ÿ Các nhược điểm nêu trên làm cho việc bảo trì chương trình gặp nhiều khĩ khăn, thường chiếm khoảng 80% ngân sách phát triển HTTT. Chương 4. Cơ sở dữ liệu 13
  14. Phụ thuộc dữ liệu v Mỗi người lập trình phải duy trì dữ liệu riêng biệt. v Mỗi chương trình ứng dụng phải cĩ mã lệnh cho siêu dữ liệu của mỗi tập tin. v Mỗi chương trình ứng dụng phải cĩ các chương trình con xử lý để đọc, thêm, sửa và xĩa dữ liệu. v Khơng cĩ các điều khiển chung và phối hợp. v Các dạng thức tập tin khơng cĩ cùng chuẩn. Chương 4. Cơ sở dữ liệu 14
  15. Dư thừa dữ liệu v Tốn vùng nhớ để lưu trữ dữ liệu dư thừa. v Gây ra các vấn đề khĩ về bảo trì dữ liệu. v Vấn đề chính: „ Việc cập nhật dữ liệu của một tập tin cĩ thể dẫn đến các mâu thuẫn dữ liệu. „ Vi phạm tính tồn vẹn dữ liệu. Chương 4. Cơ sở dữ liệu 15
  16. Dư thừa dữ liệu Duplicate Data Chương 4. Cơ sở dữ liệu 16
  17. Cách tiếp cận cơ sở dữ liệu v Kho dữ liệu trung tâm chứa các dữ liệu dùng chung. v Dữ liệu được quản lý bởi một đơn vị điều khiển (controlling agent). v Dữ liệu được lưu trữ theo một dạng thức chuẩn và thích hợp. v Cần phải cĩ một hệ quản trị CSDL. Chương 4. Cơ sở dữ liệu 17
  18. Cách tiếp cận cơ sở dữ liệu v Ưu điểm của cách tiếp cận CSDL „ Độc lập dữ liệu – chương trình (data - program independence). Ÿ DBMS chứa siêu dữ liệu (metadata), do đĩ các ứng dụng khơng cần quan tâm đến các dạng thức của dữ liệu. Ÿ DBMS quản lý các truy vấn và cập nhật dữ liệu, do đĩ ứng dụng khơng cần xử lý việc truy xuất dữ liệu. „ Giảm tối thiểu sự dư thừa dữ liệu (data redundancy). „ Nâng cao tính nhất quán (data consistency) / tồn vẹn dữ liệu (data integrity). Chương 4. Cơ sở dữ liệu 18
  19. Cách tiếp cận cơ sở dữ liệu v Ưu điểm của cách tiếp cận CSDL „ Nâng cao việc dùng chung dữ liệu (data sharing). Ÿ Những người sử dụng khác nhau cĩ những cái nhìn khác nhau về dữ liệu. „ Tăng hiệu suất phát triển ứng dụng. „ Tuân thủ các tiêu chuẩn. Ÿ Tất cả các truy xuất dữ liệu đều được thực hiện theo cùng một cách. „ Nâng cao chất lượng của dữ liệu. Ÿ Các ràng buộc (constraint), các qui tắc hợp lệ của dữ liệu (data validation rule). Chương 4. Cơ sở dữ liệu 19
  20. Cách tiếp cận cơ sở dữ liệu v Ưu điểm của cách tiếp cận CSDL „ Nâng cao tính truy xuất và tính đáp ứng của dữ liệu. Ÿ Sử dụng ngơn ngữ truy vấn dữ liệu chuẩn (SQL - Structured Query Language). „ Giảm chi phí bảo trì chương trình. „ Bảo mật (security). „ Chép lưu (backup) và phục hồi (recovery). „ Điều khiển tương tranh (concurrency control). Chương 4. Cơ sở dữ liệu 20
  21. Cách tiếp cận cơ sở dữ liệu v Chi phí và rủi ro của cách tiếp cận CSDL „ Chi phí ban đầu Ÿ Chi phí cài đặt và quản lý Ÿ Chi phí chuyển đổi (conversion cost) „ Chi phí vận hành Ÿ Cần nhân viên mới cĩ chuyên mơn. Ÿ Cần phải chép lưu và phục hồi. „ Mâu thuẫn về mặt tổ chức Ÿ Rất khĩ thay đổi các thĩi quen cũ. Chương 4. Cơ sở dữ liệu 21
  22. Các loại cơ sở dữ liệu v CSDL cá nhân „ personal database „ CSDL riêng. v CSDL nhĩm làm việc „ workgroup database „ Mạng cục bộ (ít hơn 25 người sử dụng) v CSDL phịng ban „ department database „ Mạng cục bộ (từ 25 đến 100 người sử dụng) v CSDL xí nghiệp „ enterprise database „ Mạng diện rộng (hàng trăm hoặc hàng ngàn người sử dụng) Chương 4. Cơ sở dữ liệu 22
  23. Các loại cơ sở dữ liệu Chương 4. Cơ sở dữ liệu 23
  24. Hệ quản trị cơ sở dữ liệu v Hệ quản trị CSDL „ DBMS – DataBase Management System „ Hệ quản trị CSDL là tập hợp các chương trình dùng để quản lý cấu trúc và dữ liệu của CSDL và điều khiển truy xuất dữ liệu trong CSDL. „ Cho phép người sử dụng định nghĩa, tạo lập và bảo trì CSDL và cung cấp các truy xuất dữ liệu. Chương 4. Cơ sở dữ liệu 24
  25. Hệ quản trị cơ sở dữ liệu Chương 4. Cơ sở dữ liệu 25
  26. Hệ quản trị cơ sở dữ liệu v Các chức năng của hệ quản trị CSDL „ Lưu trữ, truy xuất và cập nhật dữ liệu Ÿ Ngơn ngữ định nghĩa dữ liệu (DDL - Data Definition Language) Ÿ Ngơn ngữ thao tác dữ liệu (DML - Data Manipulation Language). „ Quản lý giao tác (transaction management). „ Điều khiển tương tranh (concurrency control) „ Chép lưu và phục hồi dữ liệu. „ Bảo mật dữ liệu Ÿ Ngơn ngữ điều khiển dữ liệu (DCL - Data Control Language). „ Hỗ trợ truyền thơng dữ liệu. „ Duy trì tính tồn vẹn / nhất quán dữ liệu. „ Cung cấp các tiện ích. Chương 4. Cơ sở dữ liệu 26
  27. Hệ quản trị cơ sở dữ liệu Ngơn ngữ định nghĩa dữ liệu: Tạo cấu trúc của bảng Customer CREATE TABLE CUSTOMER (CUST_ID NUMBER(11,0) NOT NULL, NAME VARCHAR(25) NOT NULL, ADDRESS VARCHAR(30), CITY VARCHAR(20), CONSTRAINT PK_CUSTOMER PRIMARY KEY (CUST_ID)); Ngơn ngữ thao tác dữ liệu: Liệt kê mã, tên và địa chỉ của các khách hàng thuộc thành phố ‘HCM’ SELECT CUST_ID, NAME, ADDRESS FROM CUSTOMER WHERE CITY = ‘HCM’; Ngơn ngữ điều khiển dữ liệu: Cho phép người sử dụng Tien và Truc được phép xem và thêm dữ liệu vào bảng Customer GRANT SELECT, INSERT ON CUSTOMER TO TIEN, TRUC; Chương 4. Cơ sở dữ liệu 27
  28. Sự phát triển các hệ CSDL v Hệ thống tập tin (flat file): 1960 - 1980 v Hệ CSDL phân cấp (hierarchical): 1970 - 1990 v Hệ CSDL mạng (network): 1970 - 1990 v Hệ CSDL quan hệ (relational): 1980 - nay v Hệ CSDL hướng đối tượng (object-oriented): 1990 - nay v Hệ CSDL đối tượng - quan hệ (object- relational): 1990 - nay v Kho dữ liệu (data warehouse): 1980 - nay v Web-enabled: 1990 - nay Chương 4. Cơ sở dữ liệu 28
  29. Mơ hình liên kết thực thể v Mơ hình liên kết thực thể (ER) „ entity-relationship model „ Mơ hình liên kết thực thể là cách tiếp cận chính để mơ hình hĩa dữ liệu ý niệm (conceptual data modeling). „ Mơ hình ER là cơng cụ giao tiếp giữa người thiết kế CSDL và người sử dụng cuối cùng để xây dựng CSDL trong giai đoạn phân tích. „ Mơ hình ER được dùng để xây dựng mơ hình dữ liệu ý niệm (conceptual data model) nhằm biểu diễn cấu trúc và các ràng buộc của CSDL. Chương 4. Cơ sở dữ liệu 29
  30. Mơ hình liên kết thực thể v Các thành phần của mơ hình liên kết thực thể „ Thực thể và các thuộc tính. „ Mối liên kết và các thuộc tính. Chương 4. Cơ sở dữ liệu 30
  31. Mơ hình liên kết thực thể Sơ đồ liên kết thực thể (ERD - Entity-Relationship Diagram) Chương 4. Cơ sở dữ liệu 31
  32. Relationship symbols Entity symbols Attribute symbols A special entity that is also a relationship Relationship degrees specify number of entity types involved Relationship cardinalities specify how many of each entity type is allowed Chương 4. Cơ sở dữ liệu 32
  33. Thực thể v Thể hiện thực thể „ entity instance „ Thể hiện thực thể là người, vị trí, đối tượng, sự kiện, khái niệm (thường tương ứng với một hàng của bảng). „ Thực thể nên là Ÿ đối tượng cĩ nhiều thể hiện trong CSDL. Ÿ đối tượng cĩ nhiều thuộc tính. Ÿ đối tượng cần được mơ hình hĩa. „ Thực thể khơng nên là Ÿ người sử dụng của hệ CSDL. Ÿ kết xuất của hệ CSDL (ví dụ bản báo cáo). „ Đặc điểm của thực thể là tính phân biệt (distinctness): cĩ thể phân biệt giữa thực thể này với thực thể khác. Chương 4. Cơ sở dữ liệu 33
  34. Thực thể v Kiểu thực thể „ entity type „ Kiểu thực thể là tập hợp các thực thể thuộc cùng một loại (thường tương ứng với một bảng). „ Được biểu diễn bằng hình chữ nhật. Chương 4. Cơ sở dữ liệu 34
  35. Thuộc tính v Thuộc tính „ attribute „ Thuộc tính là một đặc tính / tính chất của một kiểu thực thể (thường tương ứng với một vùng tin trong một bảng). „ Được biểu diễn bằng hình bầu dục. v Các loại thuộc tính „ Thuộc tính bắt buộc và thuộc tính tùy chọn. „ Thuộc tính đơn và thuộc tính phức hợp. „ Thuộc tính đơn trị và thuộc tính đa trị. „ Thuộc tính chứa và thuộc tính dẫn xuất. „ Thuộc tính khĩa và thuộc tính khơng khĩa. Chương 4. Cơ sở dữ liệu 35
  36. Thuộc tính v Thuộc tính đơn và thuộc tính phức hợp „ Thuộc tính đơn (simple attribute) là thuộc tính khơng bị phân rã thành nhiều thuộc tính khác. „ Thuộc tính phức hợp (composite attribute) là thuộc tính bị phân rã thành nhiều thuộc tính khác. Chương 4. Cơ sở dữ liệu 36
  37. Thuộc tính Thuộc tính đơn Thuộc tính phức hợp Chương 4. Cơ sở dữ liệu 37
  38. Thuộc tính v Thuộc tính đơn trị và thuộc tính đa trị „ Thuộc tính đơn trị (single-valued attribute) là thuộc tính chỉ chứa một giá trị. „ Thuộc tính đa trị (multivalued attribute) là thuộc tính chứa nhiều giá trị khác nhau thuộc một miền trị, được biểu diễn bằng hình bầu dục nét đơi. Chương 4. Cơ sở dữ liệu 38
  39. Thuộc tính v Thuộc tính chứa và thuộc tính dẫn xuất „ Thuộc tính chứa (stored attribute) là thuộc tính mà giá trị của nĩ khơng được suy dẫn từ các thuộc tính khác. „ Thuộc tính dẫn xuất (derived attribute) là thuộc tính mà giá trị của nĩ được suy dẫn từ các thuộc tính khác, được biểu diễn bằng hình bầu dục nét đứt. Chương 4. Cơ sở dữ liệu 39
  40. Thuộc tính Thuộc tính đơn trị Thuộc tính dẫn xuất Thuộc tính đa trị Thuộc tính chứa Chương 4. Cơ sở dữ liệu 40
  41. Khĩa v Khĩa / thuộc tính xác định „ key / identifier „ Khĩa là một thuộc tính hoặc tổ hợp các thuộc tính dùng để xác định duy nhất một thể hiện của một kiểu thực thể. v Thuộc tính khĩa và thuộc tính khơng khĩa „ Thuộc tính khĩa là thuộc tính ở trong khĩa. Ÿ key attribute / prime attribute / identifier attribute Ÿ Thuộc tính khĩa được gạch dưới. „ Thuộc tính khơng khĩa (non-key attribute) là thuộc tính khơng ở trong khĩa. Ÿ Thuộc tính khơng khĩa cịn được gọi là thuộc tính mơ tả (descriptor). Chương 4. Cơ sở dữ liệu 41
  42. Khĩa v Khĩa đơn và khĩa phức hợp „ Khĩa đơn (simple key) là khĩa chỉ cĩ một thuộc tính. „ Khĩa phức hợp (composite key) là khĩa cĩ nhiều hơn một thuộc tính. v Khĩa dự tuyển „ candidate key „ Khĩa dự tuyển là khĩa của một kiểu thực thể. „ Một kiểu thực thể cĩ ít nhất một khĩa dự tuyển. Chương 4. Cơ sở dữ liệu 42
  43. Khĩa v Khĩa chính „ primary key „ Khĩa chính là một khĩa tiêu biểu trong các khĩa dự tuyển của một kiểu thực thể. „ Một kiểu thực thể chỉ cĩ một khĩa chính. „ Khĩa chính dùng để liên kết giữa các thực thể. Chương 4. Cơ sở dữ liệu 43
  44. Khĩa Khĩa đơn Thuộc tính khơng khĩa Khĩa phức hợp Chương 4. Cơ sở dữ liệu 44
  45. Mối liên kết v Kiểu mối liên kết „ relationship type „ Kiểu mối liên kết là sự liên kết giữa các kiểu thực thể. „ Được biểu diễn bằng hình thoi. „ Mối liên kết cĩ thể cĩ nhiều thuộc tính dùng để mơ tả các đặc tính của sự liên kết giữa các thực thể. „ Hai thực thể cĩ thể cĩ nhiều kiểu mối liên kết giữa chúng. Chương 4. Cơ sở dữ liệu 45
  46. Mối liên kết Hai thực thể cĩ nhiều mối liên kết Mối liên kết cĩ thuộc tính Chương 4. Cơ sở dữ liệu 46
  47. Mối liên kết v Bậc / ngơi của mối liên kết „ degree / arity of relationship „ Bậc của mối liên kết là số lượng kiểu thực thể tham gia đồng thời vào mối liên kết này. v Các loại mối liên kết „ Mối liên kết 1-ngơi (unary relationship) „ Mối liên kết 2-ngơi (binary relationship) „ Mối liên kết 3-ngơi (ternary relationship): 3 kiểu thực thể đồng thời tham gia vào mối liên kết. Chương 4. Cơ sở dữ liệu 47
  48. Mối liên kết Entities of two different types related to each other One entity related to another of the same Entities of three different entity type types related to each other Chương 4. Cơ sở dữ liệu 48
  49. Mối liên kết Mối liên kết 1-ngơi Chương 4. Cơ sở dữ liệu 49
  50. Mối liên kết Mối liên kết 2-ngơi Chương 4. Cơ sở dữ liệu 50
  51. Mối liên kết Mối liên kết 3-ngơi Chương 4. Cơ sở dữ liệu 51
  52. Mối liên kết v Lượng số của mối liên kết „ cardinality of relationship „ Lượng số của mối liên kết là số lượng thể hiện thực thể tham gia vào mối liên kết này. v Các loại lượng số „ một - một (one-to-one): một thực thể a liên kết với một thực thể b; một thực thể b liên kết với một thực thể a. „ một - nhiều (one-to-many): một thực thể a liên kết với nhiều thực thể b; một thực thể b liên kết với một thực thể a. „ nhiều - nhiều (many-to-many): một thực thể a liên kết với nhiều thực thể b; một thực thể b liên kết với nhiều thực thể a. Chương 4. Cơ sở dữ liệu 52
  53. Mối liên kết v Ràng buộc lượng số „ cardinality constraint „ Ràng buộc lượng số là số lượng thể hiện của thực thể này cĩ thể hoặc phải liên kết với một thể hiện của thực thể khác. „ Lượng số nhỏ nhất Ÿ Nếu 0 là tùy chọn (optional). Ÿ Nếu một hoặc nhiều là bắt buộc (mandatory). „ Lượng số lớn nhất Ÿ Số lượng lớn nhất. Chương 4. Cơ sở dữ liệu 53
  54. Mối liên kết Chương 4. Cơ sở dữ liệu 54
  55. Mối liên kết Mối liên kết 1-ngơi một-một cĩ lượng số tùy chọn Mối liên kết 2-ngơi một-nhiều cĩ lượng số bắt buộc Chương 4. Cơ sở dữ liệu 55
  56. Mối liên kết Lượng số lớn nhất Mối liên kết cĩ lượng số tối đa xác định Chương 4. Cơ sở dữ liệu 56
  57. Quan hệ v Quan hệ (relation) là một bảng dữ liệu hai chiều bao gồm nhiều hàng (mẩu tin) và nhiều cột (thuộc tính hoặc vùng tin). „ Mỗi hàng là duy nhất: khơng thể cĩ hai hàng cĩ cùng các giá trị ở tất cả vùng tin. „ Thứ tự của các hàng là khơng quan trọng. „ Thứ tự của các cột là khơng quan trọng. „ Khơng phải mọi bảng đều là quan hệ. Quan hệ là một bảng khơng chứa các hàng giống hệt nhau. Chương 4. Cơ sở dữ liệu 57
  58. Quan hệ Quan hệ: Supplier Snum Name City S1 Nguyễn Trung Tiến SF S2 Trần Thị Yến LA S3 Nguyễn Văn An SF Chương 4. Cơ sở dữ liệu 58
  59. Quan hệ v Khĩa „ key „ Khĩa quan hệ là một tập nhỏ nhất các thuộc tính dùng để xác định duy nhất một hàng. „ Một khĩa chỉ cĩ một thuộc tính được gọi là khĩa đơn (simple key). „ Một khĩa cĩ nhiều thuộc tính được gọi là khĩa phức hợp (composite key). „ Khĩa thường được sử dụng làm chỉ mục (index) của bảng dữ liệu để làm tăng tốc độ xử lý câu truy vấn. Chương 4. Cơ sở dữ liệu 59
  60. Quan hệ v Khĩa „ Một quan hệ phải cĩ ít nhất một khĩa và cĩ thể cĩ nhiều khĩa. „ Các thuộc tính thuộc một khĩa được gọi là thuộc tính khĩa (prime attribute), các thuộc tính cịn lại trong lược đồ quan hệ được gọi là các thuộc tính khơng khĩa (nonprime attribute). „ Các thuộc tính khĩa được gạch dưới. „ Các thuộc tính khĩa khơng được cĩ giá trị rỗng (null value). Chương 4. Cơ sở dữ liệu 60
  61. Quan hệ v Khĩa „ Tất cả các khĩa của một quan hệ được gọi là khĩa dự tuyển (candidate key). „ Một trong các khĩa dự tuyển được chọn làm khĩa tiêu biểu, khĩa này được gọi là khĩa chính (primary key). „ Một quan hệ chỉ cĩ một khĩa chính và cĩ thể cĩ nhiều khĩa dự tuyển. „ Trong một quan hệ, một hoặc nhiều thuộc tính được gọi là khĩa ngoại (foreign key) nếu chúng là khĩa chính của một quan hệ khác. Chương 4. Cơ sở dữ liệu 61
  62. Cơ sở dữ liệu quan hệ v Cơ sở dữ liệu quan hệ (relational database) bao gồm các bảng (quan hệ) biểu diễn các thực thể và các khĩa chính / khĩa ngoại biểu diễn các mối liên kết. Chương 4. Cơ sở dữ liệu 62
  63. Cơ sở dữ liệu quan hệ Primary Key Foreign Key (implements 1:N relationship between customer and order) Combined, these are a composite primary key (uniquely identifies the order line) individually they are foreign keys (implement M:N relationship between order and product) Chương 4. Cơ sở dữ liệu 63
  64. Cơ sở dữ liệu quan hệ Cơ sở dữ liệu quan hệ. Chương 4. Cơ sở dữ liệu 64
  65. Sự tương ứng với mơ hình ER v Mỗi quan hệ (bảng) tương ứng với một kiểu thực thể hoặc với một kiểu mối liên kết nhiều - nhiều. v Mỗi hàng tương ứng với một thể hiện thực thể hoặc với một thể hiện mối liên kết nhiều - nhiều. v Mỗi cột tương ứng với một thuộc tính. v Từ quan hệ (relation) trong cơ sở dữ liệu quan hệ khơng cĩ cùng nghĩa với từ mối quan hệ (relationship) trong mơ hình ER. Chương 4. Cơ sở dữ liệu 65
  66. Lược đồ cơ sở dữ liệu v Lược đồ cơ sở dữ liệu „ database schema „ Lược đồ cơ sở dữ liệu là một tập hợp các lược đồ quan hệ. „ Trong một lược đồ cơ sở dữ liệu, các tên lược đồ quan hệ là duy nhất. Lược đồ cơ sở dữ liệu: Emp (Empnum, Name, Sal, Tax, Mgrnum, Deptnum) Dept (Deptnum, Name, Area, Mgrnum) Supplier (Snum, Name, City) Supply (Snum, Pnum, Deptnum, Quan) Chương 4. Cơ sở dữ liệu 66
  67. Ràng buộc tồn vẹn v Ràng buộc tồn vẹn „ integrity constraint „ Ràng buộc tồn vẹn là một qui tắc mà tất cả các dữ liệu trong CSDL phải thỏa mãn qui tắc này. v Ràng buộc miền trị „ domain constraint „ Các giá trị cho phép của một thuộc tính. v Tồn vẹn thực thể „ entity integrity „ Thuộc tính khĩa chính khơng cĩ giá trị rỗng (null value). Chương 4. Cơ sở dữ liệu 67
  68. Ràng buộc tồn vẹn v Qui tắc hoạt động „ action assertion „ Các qui tắc nghiệp vụ (business rule). Chương 4. Cơ sở dữ liệu 68
  69. Ràng buộc tồn vẹn Định nghĩa miền trị cho các thuộc tính Chương 4. Cơ sở dữ liệu 69
  70. Ràng buộc tồn vẹn v Ràng buộc tồn vẹn tham chiếu „ referential integrity constraint „ Ràng buộc tồn vẹn tham chiếu là một qui tắc mà tất cả các giá trị của khĩa ngoại (nếu khác null) trong quan hệ bên phía nhiều phải cĩ trong các giá trị của khĩa chính trong quan hệ bên phía một. Chương 4. Cơ sở dữ liệu 70
  71. Ràng buộc tồn vẹn v Ràng buộc tồn vẹn tham chiếu „ Qui tắc xĩa các hàng dữ liệu Ÿ Hạn chế (restrict): khơng cho phép xĩa các hàng bên phía cha (parent) nếu tồn tại các hàng liên quan bên phía phụ thuộc (dependent). Ÿ Tầng (cascade): tự động xĩa các hàng bên phía phụ thuộc tương ứng với các hàng bên phía cha. Ÿ Gán null (set-to-null): gán null cho khĩa ngoại của các hàng bên phía phụ thuộc tương ứng với các hàng bên phía cha. Khơng áp dụng cho các thực thể yếu. Chương 4. Cơ sở dữ liệu 71
  72. Ràng buộc tồn vẹn Referential integrity constraints are drawn via arrows from dependent to parent table Ví dụ về ràng buộc tồn vẹn tham chiếu Chương 4. Cơ sở dữ liệu 72
  73. Biến đổi ERD thành các quan hệ v Qui tắc 1: Biến đổi một kiểu thực thể thành một quan hệ. „ Đối với kiểu thực thể thơng thường (regular entity type): khĩa của quan hệ là khĩa của kiểu thực thể. „ Thuộc tính của quan hệ là thuộc tính của kiểu thực thể. „ Quan hệ chỉ chứa các thuộc tính thành phần của thuộc tính phức hợp. „ Quan hệ khơng chứa các thuộc tính đa trị. Chương 4. Cơ sở dữ liệu 73
  74. Biến đổi ERD thành các quan hệ CUSTOMER entity type with simple attributes CUSTOMER relation Biến đổi kiểu thực thể thơng thường Chương 4. Cơ sở dữ liệu 74
  75. Biến đổi ERD thành các quan hệ CUSTOMER entity type with composite attribute CUSTOMER relation with address detail Biến đổi thuộc tính phức hợp Chương 4. Cơ sở dữ liệu 75
  76. Biến đổi ERD thành các quan hệ v Qui tắc 2: Biến đổi thuộc tính đa trị thành một quan hệ. „ Quan hệ chứa khĩa của kiểu thực thể và thuộc tính đa trị. „ Khĩa của quan hệ gồm khĩa của kiểu thực thể và thuộc tính đa trị. Chương 4. Cơ sở dữ liệu 76
  77. Biến đổi ERD thành các quan hệ Multivalued attribute becomes a separate relation with foreign key 1–to–many relationship between original entity and new relation Biến đổi thuộc tính đa trị Chương 4. Cơ sở dữ liệu 77
  78. Biến đổi ERD thành các quan hệ v Qui tắc 3: Biểu diễn mối liên kết 1-ngơi hoặc 2 -ngơi cĩ lượng số một-một. „ Đặt khĩa của kiểu thực thể bên phía bắt buộc và các thuộc tính của mối liên kết vào quan hệ của kiểu thực thể bên phía tùy chọn. Chương 4. Cơ sở dữ liệu 78
  79. Biến đổi ERD thành các quan hệ EMPLOYEE entity with Manages relationship EMPLOYEE relation with recursive foreign key Biến đổi mối liên kết một ngơi cĩ lượng số một - một Chương 4. Cơ sở dữ liệu 79
  80. Biến đổi ERD thành các quan hệ Biến đổi mối liên kết hai ngơi cĩ lượng số một - một Chương 4. Cơ sở dữ liệu 80
  81. Biến đổi ERD thành các quan hệ v Qui tắc 4: Biểu diễn mối liên kết 1-ngơi hoặc 2 -ngơi cĩ lượng số một-nhiều. „ Đặt khĩa của kiểu thực thể bên phía một và các thuộc tính của mối liên kết vào quan hệ của kiểu thực thể bên phía nhiều. Chương 4. Cơ sở dữ liệu 81
  82. Biến đổi ERD thành các quan hệ EMPLOYEE entity with Manages relationship EMPLOYEE relation with recursive foreign key Biến đổi mối liên kết một ngơi cĩ lượng số một - nhiều Chương 4. Cơ sở dữ liệu 82
  83. Biến đổi ERD thành các quan hệ Note the mandatory one Again, no null value in the foreign key this is because of the mandatory minimum cardinality Biến đổi mối liên kết hai ngơi cĩ lượng số một - nhiều Chương 4. Cơ sở dữ liệu 83
  84. Biến đổi ERD thành các quan hệ v Qui tắc 5: Biến đổi mối liên kết 1-ngơi hoặc 2- ngơi cĩ lượng số nhiều-nhiều thành một quan hệ. „ Quan hệ chứa các khĩa của các kiểu thực thể tham gia vào mối liên kết. „ Khĩa của quan hệ gồm cả hai khĩa của hai kiểu thực thể. „ Thuộc tính của quan hệ là thuộc tính của mối liên kết. Chương 4. Cơ sở dữ liệu 84
  85. Biến đổi ERD thành các quan hệ Bill-of-materials relationships (M:N) ITEM and COMPONENT relations Biến đổi mối liên kết một ngơi cĩ lượng số nhiều - nhiều Chương 4. Cơ sở dữ liệu 85
  86. Biến đổi ERD thành các quan hệ The Supplies relationship will need to become a separate Composite primary key relation New intersection Foreign key relation Foreign key Biến đổi mối liên kết hai ngơi cĩ lượng số nhiều - nhiều Chương 4. Cơ sở dữ liệu 86
  87. Biến đổi ERD thành các quan hệ v Qui tắc 6: Biến đổi mối liên kết 3-ngơi thành một quan hệ. „ Quan hệ chứa ba khĩa của ba kiểu thực thể tham gia vào mối liên kết. „ Mối liên kết cĩ bao nhiêu kiểu thực thể bên phía một thì quan hệ cĩ bấy nhiêu khĩa: đối với một kiểu thực thể bên phía một thì khĩa của quan hệ gồm cả hai khĩa của hai kiểu thực thể cịn lại. Nếu khơng cĩ kiểu thực thể bên phía một thì khĩa của quan hệ bao gồm cả ba khĩa của ba kiểu thực thể. „ Thuộc tính của quan hệ là thuộc tính của mối liên kết. Chương 4. Cơ sở dữ liệu 87
  88. Biến đổi ERD thành các quan hệ Biến đổi mối liên kết ba ngơi Chương 4. Cơ sở dữ liệu 88
  89. Biến đổi ERD thành các quan hệ Biến đổi mối liên kết ba ngơi Chương 4. Cơ sở dữ liệu 89
  90. Chuẩn hĩa dữ liệu v Chuẩn hĩa dữ liệu „ data normalization „ Chuẩn hĩa dữ liệu là một quá trình thuận nghịch từng bước để thay thế tập hợp các quan hệ cho trước thành các quan hệ cĩ cấu trúc đơn giản hơn và chuẩn hơn. „ Chuẩn hĩa dữ liệu nhằm để cải tiến một thiết kế CSDL thỏa mãn các ràng buộc tồn vẹn và tránh dữ liệu bị lặp lại khơng cần thiết. Chương 4. Cơ sở dữ liệu 90
  91. Chuẩn hĩa dữ liệu v Mục đích của chuẩn hĩa dữ liệu „ Loại bỏ các bất thường (anomaly) của một quan hệ để cĩ được các quan hệ cĩ cấu trúc tốt hơn, nhỏ hơn. „ Quan hệ cĩ cấu trúc tốt (well-structured relation) Ÿ Cĩ sự dư thừa dữ liệu là tối thiểu. Ÿ Cho phép người sử dụng thêm vào, cập nhật và xĩa bỏ dữ liệu mà khơng gây ra sự mâu thuẫn dữ liệu. Chương 4. Cơ sở dữ liệu 91
  92. Phụ thuộc hàm v Phụ thuộc hàm „ FD – Functional Dependency „ Cho r là một quan hệ, X và Y là hai tập thuộc tính của r. „ Chúng ta nĩi “X xác định hàm Y” hoặc “Y phụ thuộc hàm vào X”, ký hiệu là X Y và được gọi là phụ thuộc hàm nếu với mỗi giá trị của X trong r chỉ tương ứng với một giá trị của Y. „ Khĩa của một quan hệ xác định hàm các thuộc tính khơng khĩa của quan hệ này. Chương 4. Cơ sở dữ liệu 92
  93. Phụ thuộc hàm v Phụ thuộc hàm riêng phần „ partial functional dependency „ X A được gọi là phụ thuộc hàm riêng phần nếu tồn tại Y  X để cho Y A. v Phụ thuộc hàm đầy đủ „ full functional dependency „ X A được gọi là phụ thuộc hàm đầy đủ nếu khơng tồn tại Y  X để cho Y A. v Phụ thuộc bắc cầu „ transitive dependency „ X A được gọi là phụ thuộc bắc cầu nếu tồn tại Y để cho X Y, Y A, Y / X và A XY. Chương 4. Cơ sở dữ liệu 93
  94. Phụ thuộc hàm R Mãsv Họtên Mãlớp Tênlớp Mơnhọc Điểm S1 Tiến L1 MT01 M1 9 S1 Tiến L1 MT01 M2 7 S1 Tiến L1 MT01 M3 8 S2 Trúc L1 MT01 M1 9 S2 Trúc L1 MT01 M2 8 S3 Hiền L2 MT02 M1 5 Các phụ thuộc hàm: Khĩa của R: {Mãsv, Mơnhọc} Mãsv {Họtên, Mãlớp} Mãlớp Tênlớp {Mãsv, Mơnhọc} Điểm {Mãsv, Mơn học} Họtên là phụ thuộc hàm riêng phần {Mãsv, Mơnhọc} Điểm là phụ thuộc hàm đầy đủ Chương 4. Cơ sở dữ liệu 94
  95. Dạng chuẩn 1 v Định nghĩa Quan hệ R ở dạng chuẩn 1 (1NF - First Normal Form) nếu mọi thuộc tính của R đều chứa các giá trị nguyên tố (atomic value), giá trị này khơng là một danh sách các giá trị hoặc các giá trị phức hợp (composite value). v Các thuộc tính của quan hệ R „ Khơng là thuộc tính đa trị (multivalued attribute). „ Khơng là thuộc tính phức hợp (composite attribute). Chương 4. Cơ sở dữ liệu 95
  96. Dạng chuẩn 1 R Mãsv Họtên Mãlớp Tênlớp Điểmthi S1 Tiến L1 MT01 M1 9 S1 Tiến L1 MT01 M2 7 S1 Tiến L1 MT01 M3 8 S2 Trúc L1 MT01 M1 9 S2 Trúc L1 MT01 M2 8 S3 Hiền L2 MT02 M1 5 Quan hệ R khơng ở dạng chuẩn 1 vì thuộc tính Điểmthi là thuộc tính phức hợp. Chương 4. Cơ sở dữ liệu 96
  97. Dạng chuẩn 1 R Mãsv Họtên Mãlớp Tênlớp Mơnhọc Điểm S1 Tiến L1 MT01 M1 9 S1 Tiến L1 MT01 M2 7 S1 Tiến L1 MT01 M3 8 S2 Trúc L1 MT01 M1 9 S2 Trúc L1 MT01 M2 8 S3 Hiền L2 MT02 M1 5 Quan hệ R ở 1NF vì các thuộc tính của R khơng là thuộc tính đa trị, khơng là thuộc tính phức hợp. Chương 4. Cơ sở dữ liệu 97
  98. Dạng chuẩn 1 v Các bất thường của quan hệ ở 1NF „ Thêm vào Ÿ Khơng thể thêm thơng tin của sinh viên mới cĩ mã là S4, tên là Thành, thuộc lớp cĩ mã là L1 nếu sinh viên này chưa đăng ký học mơn học nào cả. „ Cập nhật Ÿ Sửa tên của sinh viên cĩ tên là Tiến với tên mới là Thành sẽ phải sửa tất cả các hàng của sinh viên này. „ Xĩa bỏ Ÿ Xĩa thơng tin sinh viên S3 đăng ký mơn học M1 sẽ làm mất thơng tin của sinh viên này. „ Nguyên nhân Ÿ Tồn tại thuộc tính khơng khĩa phụ thuộc hàm riêng phần vào khĩa. Chương 4. Cơ sở dữ liệu 98
  99. Dạng chuẩn 2 v Định nghĩa Quan hệ R ở dạng chuẩn 2 (2NF - Second Normal Form) nếu R ở dạng chuẩn 1 và mọi thuộc tính khơng khĩa đều phụ thuộc hàm đầy đủ vào mọi khĩa của R. Chương 4. Cơ sở dữ liệu 99
  100. Dạng chuẩn 2 R Mãsv Họtên Mãlớp Tênlớp Mơnhọc Điểm S1 Tiến L1 MT01 M1 9 S1 Tiến L1 MT01 M2 7 S1 Tiến L1 MT01 M3 8 S2 Trúc L1 MT01 M1 9 S2 Trúc L1 MT01 M2 8 S3 Hiền L2 MT02 M1 5 Các phụ thuộc hàm: Khĩa của R: {Mãsv, Mơnhọc} Mãsv {Họtên, Mãlớp} Mãlớp Tênlớp {Mãsv, Mơnhọc} Điểm Lược đồ quan hệ R khơng ở 2NF vì thuộc tính khơng khĩa Họtên phụ thuộc hàm riêng phần vào khĩa {Mãsv, Mơnhọc}. Chương 4. Cơ sở dữ liệu 100
  101. Dạng chuẩn 2 R1 R2 Mãsv Họtên Mãlớp Tênlớp Mãsv Mơnhọc Điểm S1 Tiến L1 MT01 S1 M1 9 S2 Trúc L1 MT01 S1 M2 7 S3 Hiền L2 MT02 S1 M3 8 S2 M1 9 Khĩa của R1: Mãsv S2 M2 8 S3 M1 5 Khĩa của R2: {Mãsv, Mơnhọc} Lược đồ quan hệ R1 và R2 đều ở 2NF vì các thuộc tính khơng khĩa đều phụ thuộc hàm đầy đủ vào khĩa. Chương 4. Cơ sở dữ liệu 101
  102. Dạng chuẩn 2 v Các bất thường của quan hệ ở 2NF „ Thêm vào Ÿ Khơng thể thêm thơng tin của lớp L3 cĩ tên là MT03 nếu chưa cĩ sinh viên nào học lớp này. „ Cập nhật Ÿ Sửa tên của lớp cĩ mã L1 với tên mới là MT_1 sẽ phải sửa tất cả các hàng của lớp này. „ Xĩa bỏ Ÿ Xĩa thơng tin của sinh viên cĩ mã S3 sẽ làm mất thơng tin của lớp L2. „ Nguyên nhân Ÿ Tồn tại thuộc tính khơng khĩa phụ thuộc bắc cầu vào khĩa. Chương 4. Cơ sở dữ liệu 102
  103. Dạng chuẩn 3 v Định nghĩa Quan hệ R ở dạng chuẩn 3 (3NF- Third Normal Form) nếu R ở dạng chuẩn 1 và mọi thuộc tính khơng khĩa đều khơng phụ thuộc bắc cầu vào một khĩa của R. Chương 4. Cơ sở dữ liệu 103
  104. Dạng chuẩn 3 R1 Mãsv Họtên Mãlớp Tênlớp S1 Tiến L1 MT01 S2 Trúc L1 MT01 S3 Hiền L2 MT02 Lược đồ quan hệ R1 khơng ở 3NF vì thuộc tính khơng khĩa Tênlớp phụ thuộc bắc cầu vào khĩa Mãsv. Mãsv Mãlớp Mãlớp Tênlớp Mãlớp / Mãsv Tênlớp {Mãsv, Mãlớp} Chương 4. Cơ sở dữ liệu 104
  105. Dạng chuẩn 3 R11 R12 Mãlớp Tênlớp Mãsv Họtên Mãlớp L1 MT01 S1 Tiến L1 L2 MT02 S2 Trúc L1 S3 Hiền L2 Khĩa của R11: Mãlớp Khĩa của R12: Mãsv Lược đồ quan hệ R11 và R12 đều ở 3NF vì các thuộc tính khơng khĩa đều khơng phụ thuộc bắc cầu vào khĩa. Chương 4. Cơ sở dữ liệu 105
  106. Ngơn ngữ SQL v Ngơn ngữ truy vấn cĩ cấu trúc (SQL - Structured Query Language) là một ngơn ngữ chuẩn được dùng để tạo lập và truy vấn các cơ sở dữ liệu quan hệ. v SQL là một ngơn ngữ chuẩn cho các hệ quản trị CSDL quan hệ (RDBMS - Relational DBMS). Chương 4. Cơ sở dữ liệu 106
  107. Các đặc điểm của ngơn ngữ SQL v Ngơn ngữ SQL là một ngơn ngữ tựa tiếng Anh (English-like language), sử dụng các từ như select, insert, delete trong tập lệnh. v Ngơn ngữ SQL là một ngơn ngữ phi thủ tục (nonprocedural language). „ Chỉ ra các thơng tin gì cần thiết (what). „ Khơng cần phải chỉ ra cách thực hiện như thế nào (how) để cĩ được các thơng tin này. v SQL xử lý các tập hợp mẩu tin (bảng) hơn là mỗi lần một mẩu tin đơn lẻ. Chương 4. Cơ sở dữ liệu 107
  108. Các đặc điểm của ngơn ngữ SQL v Nhiều loại người cĩ thể sử dụng SQL: người quản trị CSDL (DBA), người lập trình ứng dụng, người quản lý, người sử dụng cuối cùng (end user). v SQL cung cấp nhiều lệnh cho nhiều cơng việc khác nhau: „ Truy vấn dữ liệu. „ Thêm vào, cập nhật và xĩa bỏ các hàng của bảng. „ Tạo lập, thay đổi và xĩa bỏ các đối tượng CSDL. „ Điều khiển truy xuất cơ sở dữ liệu và các đối tượng CSDL. „ Bảo đảm tính nhất quán của CSDL. Chương 4. Cơ sở dữ liệu 108
  109. Một số kiểu dữ liệu (Oracle9i) v Kiểu chuỗi „ CHAR(n) – kiểu chuỗi cĩ chiều dài cố định gồm n ký tự (chiều dài tối đa 2000 bytes). „ VARCHAR2(n) – kiểu chuỗi cĩ chiều dài thay đổi gồm n ký tự (chiều dài tối đa 4000 bytes). „ LONG – kiểu chuỗi cĩ chiều dài thay đổi, tối đa 4GB (chỉ cĩ một cột trong một bảng). v Kiểu số „ NUMBER(p,q) – kiểu số cĩ p ký số và q số lẻ. „ INTEGER(p) – kiểu số nguyên cĩ p ký số. v Kiểu ngày giờ „ DATE – kiểu ngày giờ cĩ chiều dài cố định theo dạng dd-mm-yy. Chương 4. Cơ sở dữ liệu 109
  110. Ngơn ngữ SQL v Ngơn ngữ định nghĩa dữ liệu „ DDL - Data Definition Language „ Các lệnh dùng để định nghĩa CSDL: tạo lập (create), thay đổi (alter) và hủy bỏ (drop) các đối tượng dữ liệu, thiết lập các ràng buộc. v Ngơn ngữ thao tác dữ liệu „ DML - Data Manipulation Language „ Các lệnh dùng để bảo trì và truy vấn CSDL: thêm (insert), sửa (update), xĩa (delete) dữ liệu của bảng, truy vấn (select). v Ngơn ngữ điều khiển dữ liệu „ DCL - Data Control Language „ Các lệnh dùng để điều khiển CSDL: quản trị các quyền (grant, revoke). Chương 4. Cơ sở dữ liệu 110
  111. Định nghĩa một bảng v Các bước tạo một bảng „ Bước 1. Xác định kiểu dữ liệu của các cột. „ Bước 2. Xác định các cột cĩ thể hoặc khơng thể cĩ giá trị rỗng (null value). „ Bước 3. Xác định các cột phải cĩ các giá trị duy nhất (các khĩa dự tuyển). „ Bước 4. Xác định khĩa chính – khĩa ngoại. „ Bước 5. Xác định các giá trị mặc nhiên. „ Bước 6. Xác định các ràng buộc trên các cột (mơ tả miền trị). „ Bước 7. Tạo bảng và các chỉ mục của bảng. Chương 4. Cơ sở dữ liệu 111
  112. Định nghĩa một bảng v Lệnh CREATE TABLE dùng để tạo cấu trúc của một bảng. Cú pháp của lệnh CREATE TABLE: CREATE TABLE ( , [ ]); Chương 4. Cơ sở dữ liệu 112
  113. Định nghĩa một bảng Định nghĩa các cột và kiểu dữ liệu của các cột. Non-nullable specification Primary keys can never have NULL values Xác định khĩa chính. Chương 4. Cơ sở dữ liệu 113
  114. Định nghĩa một bảng Non-nullable specifications Primary key Khĩa chính là khĩa phức hợp (nhiều thuộc tính). Default value Domain constraint Kiểm tra các giá trị của các cột. Chương 4. Cơ sở dữ liệu 114
  115. Định nghĩa một bảng Primary key of parent table Foreign key of dependent table Xác định các khĩa ngoại và thiết lập các mối liên kết Chương 4. Cơ sở dữ liệu 115
  116. Hủy bỏ bảng v Lệnh DROP TABLE dùng để hủy bỏ một bảng. Cú pháp của lệnh DROP TABLE: DROP TABLE [CASCADE CONSTRAINTS]; Hủy bỏ bảng Order_Line_T DROP TABLE Order_Line_T; Chương 4. Cơ sở dữ liệu 116
  117. Lệnh SELECT v Dùng để truy vấn dữ liệu của một bảng hoặc nhiều bảng. Cú pháp của lệnh SELECT: SELECT [DISTINCT] FROM [WHERE ] [GROUP BY [HAVING ]] [ORDER BY ]; Chương 4. Cơ sở dữ liệu 117
  118. Lệnh SELECT v Các mệnh đề của lệnh SELECT „ SELECT: liệt kê các cột (các biểu thức) của kết quả. „ FROM: các bảng hoặc các khung nhìn chứa dữ liệu cần thiết cho truy vấn. „ WHERE: điều kiện xử lý các hàng để tạo ra kết quả. „ GROUP BY: gom nhĩm các hàng. „ HAVING: điều kiện xử lý các nhĩm. „ ORDER BY: sắp thứ tự kết quả. Chương 4. Cơ sở dữ liệu 118
  119. Lệnh SELECT Thứ tự xử lý các mệnh đề của lệnh SELECT. Chương 4. Cơ sở dữ liệu 119
  120. Lệnh SELECT SELECT * FROM Order_T; SELECT Order_ID, Order_Date, Customer_ID FROM Order_T; SELECT DISTINCT Order_Date “Date of Order” FROM Order_T; SELECT Order_ID AS Identifier, Order_Date Date FROM Order_T; Chương 4. Cơ sở dữ liệu 120
  121. Lệnh SELECT SELECT Product_ID, Standard_Price FROM Product_T WHERE Standard_Price < 275; SELECT Cust.Customer_Name AS Name, Customer_Address FROM Customer_T Cust WHERE Customer_Name = ‘Home Furnishings’; SELECT Product_ID, Standard_Price FROM Product_ WHERE Standard_Price BETWEEN 100 AND 200; SELECT Customer_Name, City, State FROM Customer_T WHERE State IN (‘FL’, ‘TX’, ‘CA’, ‘HI’); Chương 4. Cơ sở dữ liệu 121
  122. Lệnh SELECT SELECT Product_Description, Product_Finish, Standard_Price FROM Product_T WHERE (Product_Description LIKE ‘%Desk’ OR Product_Description LIKE ‘_A%’) AND Standard_Price > 300; SELECT Product_ID, Product_Finish, Standard_Price FROM Product_T WHERE Product_Description IS NULL; SELECT COUNT(*) FROM Order_Line_T WHERE Order_ID = 1004; Chương 4. Cơ sở dữ liệu 122
  123. Lệnh SELECT SELECT State, COUNT(State) FROM Customer_T WHERE State IN (‘FL’, ‘TX’, ‘CA’, ‘HI’) GROUP BY State HAVING COUNT(State) > 1 ORDER BY State DESC; Chương 4. Cơ sở dữ liệu 123
  124. Lệnh INSERT v Thêm dữ liệu vào một bảng Cú pháp của lệnh INSERT - Thêm một hàng: INSERT INTO [( )] VALUES ( ); Cú pháp của lệnh INSERT - Thêm nhiều hàng: INSERT INTO [( )] SELECT statement; Chương 4. Cơ sở dữ liệu 124
  125. Lệnh INSERT INSERT INTO Customer_T VALUES (001, ‘Contemporary Casuals’, ‘1355 S. Himes Blvd.’, ‘Gainesville’, ‘FL’, 32601); INSERT INTO Product_T (Product_ID, Product_Description, Product_Finish, Standard_Price, Product_On_Hand) VALUES (1, ‘End Table’, ‘Cherry’, 175, 8); INSERT INTO CA_Customer_T SELECT * FROM Customer_T WHERE State = ‘CA’; Chương 4. Cơ sở dữ liệu 125
  126. Lệnh DELETE v Xĩa bỏ các hàng của một bảng Cú pháp của lệnh DELETE: DELETE [FROM] [WHERE ]; Xĩa một số hàng của bảng Customer_T DELETE FROM Customer_T WHERE State = ‘HI’; Xĩa tất cả các hàng của bảng Customer_T DELETE FROM Customer_T ; Chương 4. Cơ sở dữ liệu 126
  127. Lệnh UPDATE v Cập nhật dữ liệu của các hàng của một bảng Cú pháp của lệnh UPDATE: UPDATE [ ] SET = { , } [, = { , } ] [WHERE ]; Cập nhật một số hàng của bảng Product_T UPDATE Product_T SET Unit_Price = 775 WHERE Product_ID = 7; Chương 4. Cơ sở dữ liệu 127
  128. Cơ sở dữ liệu phân tán v Định nghĩa 1 Cơ sở dữ liệu phân tán (distributed database) là sự tập hợp dữ liệu mà về mặt luận lý chúng thuộc cùng một hệ thống nhưng được đặt ở nhiều nơi (site) của một mạng máy tính. „ Sự phân tán dữ liệu (data distribution): dữ liệu phải được phân tán ở nhiều nơi. „ Sự tương quan luận lý (logical correlation): dữ liệu của các nơi được sử dụng chung để cùng giải quyết một vấn đề. Chương 4. Cơ sở dữ liệu 128
  129. Cơ sở dữ liệu phân tán v Ví dụ „ Một ngân hàng cĩ ba chi nhánh ở các vị trí địa lý khác nhau. „ Tại mỗi chi nhánh cĩ một máy tính và một cơ sở dữ liệu tài khoản, tạo thành một nơi (site) của cơ sở dữ liệu phân tán. „ Các máy tính được kết nối với nhau thơng qua một mạng máy tính truyền thơng. „ Một khách hàng cĩ thể gửi tiền và rút tiền tại các chi nhánh. Chương 4. Cơ sở dữ liệu 129
  130. Cơ sở dữ liệu phân tán Cơ sở Cơ sở dữ liệu 1 dữ liệu 2 Terminal T T T T T Máy tính 1 Máy tính 2 Chi nhánh 1 Chi nhánh 2 Mạng truyền thơng Chi nhánh 3 T Máy tính 3 Cơ sở T dữ liệu 3 T Hình 1.1. Cơ sở dữ liệu phân tán trên một mạng phân tán địa lý. Chương 4. Cơ sở dữ liệu 130
  131. Cơ sở dữ liệu phân tán Trung tâm máy tính Chi nhánh 1 Chi nhánh 2 T T T T T Cơ sở Cơ sở T dữ liệu 1 dữ liệu 2 Máy tính 1 Máy tính 2 Mạng cục bộ Chi nhánh 3 T Máy tính 3 Cơ sở T dữ liệu 3 T Hình 1.2. Cơ sở dữ liệu phân tán trên một mạng cục bộ. Chương 4. Cơ sở dữ liệu 131
  132. Cơ sở dữ liệu phân tán Trung tâm máy tính Chi nhánh 1 Chi nhánh 2 T T Cơ sở Cơ sở Cơ sở T T dữ liệu 1 dữ liệu 2 dữ liệu 3 T T Máy tính Máy tính Máy tính phía sau 1 phía sau 2 phía sau 3 Mạng cục bộ Máy tính ứng dụng (phía trước) Chi nhánh 3 T T T Hình 1.3. Hệ thống đa xử lý (multiprocessor system). Chương 4. Cơ sở dữ liệu 132
  133. Cơ sở dữ liệu phân tán v Định nghĩa 2 Cơ sở dữ liệu phân tán là sự tập hợp dữ liệu được phân tán trên các máy tính khác nhau của một mạng máy tính. Mỗi nơi của mạng máy tính cĩ khả năng xử lý tự trị và cĩ thể thực hiện các ứng dụng cục bộ. Mỗi nơi cũng tham gia thực hiện ít nhất một ứng dụng tồn cục, mà nơi này yêu cầu truy xuất dữ liệu ở nhiều nơi bằng cách dùng hệ thống truyền thơng con. Chương 4. Cơ sở dữ liệu 133
  134. Cơ sở dữ liệu phân tán v Định nghĩa 2 „ Sự phân tán dữ liệu (data distribution): dữ liệu phải được phân tán ở nhiều nơi. „ Ứng dụng cục bộ (local application): ứng dụng được chạy hồn thành tại một nơi và chỉ sử dụng dữ liệu cục bộ của nơi này. „ Ứng dụng tồn cục (hoặc ứng dụng phân tán) (global application / distributed application): ứng dụng được chạy hồn thành và sử dụng dữ liệu của ít nhất hai nơi. Chương 4. Cơ sở dữ liệu 134