Thiết kế Cơ sở dữ liệu quan hệ

doc 194 trang phuongnguyen 8842
Bạn đang xem 20 trang mẫu của tài liệu "Thiết kế Cơ sở dữ liệu quan hệ", để 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:

  • docthiet_ke_co_so_du_lieu_quan_he.doc

Nội dung text: Thiết kế Cơ sở dữ liệu quan hệ

  1. Thiết kế Cơ sở dữ liệu quan hệ (tài liệu hướng dẫn) 1
  2. Mục lục Lời mở đầu Lời giới thiệu Mô tả Bài học Cơ sở lý luận Mục tiêu bài học Mục tiêu Nội dung Điều kiện tiên quyết Phần chữ Phương pháp nghiên cứu Phần minh họa Quy ước Bảng Thủ thuật Ghi chú Tóm tắt Phối hợp Byte kiến thức Lời chuyên gia Bài tập Thực hành Bài tập trên lớp Bài tập về nhà Đáp án bài tập Đánh giá khóa học 2
  3. Mục lục Lời giới thiệu Lời mở đầu Mô tả Cơ sở lý luận Mục tiêu Điều kiện tiên quyết Phương pháp nghiên cứu Quy ước Bài 1A: Giới thiệu về Hệ Quản trị CSDL quan hệ Giới thiệu về Hệ Quản trị CSDL Người sử dụng Tại sao phải sử dụng Hệ Quản trị CSDL Lợi ích của phương pháp tiếp cận CSDL Cấu trúc của Hệ Quản trị CSDL Mức ngoài Mức định nghĩa Mức trong Các cấu kiện chức năng của Hệ Quản trị CSDL Người quản lý CSDL Người quản lý file Người quản lý ổ đĩa Lập đồ án và thiết kế CSDL Sự cần thiết phải lập đồ án CSDL Chu kỳ phát triển CSDL Hậu quả của việc lập đò án và thiết kế CSDL sơ sài Tóm tắt Bài 1B – Mô hình dữ liệu Mô hình dữ liệu Mô hình logic dựa trên đối tượng Mô hình logic dựa trên bản tin Đại số quan hệ 3
  4. Các toán tử trong đại só quan hệ Ứng dụng của Hệ Quản trị CSDL quan hệ Tóm tắt Bài 1C – Phối hợp Byte kiến thức Mô hình phân cấp và mạng lưới Người quản trị CSDL Lời chuyên gia Luyện tập Thủ thuật Các câu hỏi thường gặp Bài tập Bài 1D – Thực hành Bài tập ở lớp Bài 1 Bài 2 Bài 3 Bài 4 Bài tập về nhà Bài 2A – Thiết kế CSDL logic Mô hình khái niệm Ánh xạ lược đồ tới bảng thủ thuật thiết kế CSDL logic Tóm tắt Bài 2B – Chuẩn hóa và phi chuẩn hóa dữ liệu Chuẩn hóa Phương pháp top-down và bottom-up Dư thừa dữ liệu Sự cần thiết phải chuẩn hóa Sự khácnhau giữa các dạng chuẩn và phi chuẩn hóa Các dạng chuẩn Phi chuẩn hóa 4
  5. Tóm tắt Baì 2C – Phối hợp Byte kiến thức Miền Dạng chuẩn thứ tư Các dạng chuẩn khác Lời chuyên gia Luyện tập Thủ thuật Các câu hỏi thường gặp Bài tập Bài 2D – Thực hành Bài tập ở lớp Bài 1 Bài 2 Bài 3 Bài tập về nhà Bài 3A – Thiết kế CSDL vật lý Ngôn ngữ hỗ trợ mô hình quan hệ Các kiểu quan hệ Bảng cơ sở Kết quả truy vấn Hiển thị Thực hiện hiển thị trên Hệ Quản trị CSDL quan hệ Thao tác DML trên hiển thị Các loại hiển thị Hiển thị dùng để làm gì Toàn vẹn dữ liệu Tóm tắt Bài 3B – Thực hiện giao dịch và bảo mật Xử lý giao dịch CSDL Khôi phục giao dịch 5
  6. Nhật ký giao dịch Các vấn đề xảy ra cùng lúc Khóa Các loại khóa Khóa chết Bảo mật dữ liệu Khái niệm về sơ đồ bảo mật dữ liệu Xây dựng sơ đồ bảo mật dữ liệu Tóm tắt Bài 3C – Phối hợp Byte kiến thức 12 quy tắc của CODD Mục lục Khôi phục tư khóa chết Khôi phục CSDL Lời chuyên gia Luyện tập Thủ thuật Các câu hỏi thường gặp Bài tập Đáp án Đáp án cho bài 1C Đáp án cho bài 2C Đáp án chp bài 3C 6
  7. Lời giới thiệu Mô tả vắn tắt nội dung học tập Giáo trình giới thiệu khái niệm, cấu trúc của hệ thống quản lí cơ sở dữ liệu (CSDL) và hệ thống quản lí CSDL hệ thức. Đồng thời, giáo trình bàn luận các vấn đề về thiết kế, phác thảo trong quá trình thiết kế 1 CSDL và những vấn đề thiết yếu về ngôn ngữ truy nhập CSDL. Bên cạnh đó, giáo trình cũng đề cập đến nhứng khái niệm trong giao dịch và bảo mật CSDL. Cơ sở lí luận Sự phổ biến của các phần mềm quản lí CSDL giúp việc tạo ra các CSDL và ứng dụng của chúng một cách dễ dàng. Tuy nhiên, việc tạo CSDL mà không có một thiết kế chặt chẽ thường dẫn đến các lỗi CSDL hoặc sự cố hệ thống. Vì thế, kiến thức vững chắc về thiết kế CSDL cả về lý thuyết lẫn thực tiễn là yếu tố tối quan trọng. Giáo trình này cung cấp cho học viên những hiểu biết cần thiết cho việc tạo 1 CSDL chặt chẽ. Mục tiêu Sau khi hoàn thành khóa học, học viêncó thể: . Định nghĩa hệ thống quản lí CSDL . Phân biệt các thành phần của hệ thống CSDL . Định nghĩa cấu trúc CSDL . Định nghĩa chu kỳ đời sống và phương pháp luận phát triển của thiết kế CSDKL . Mô tả các loại hình CSDL . Tạo giản đồ thực thể - quan hệ . Liệt kê các hệ thức giữa các thực thể . Định nghĩa hệ thống CSDL hệ thức . Định nghĩa đại số quan hệ . Tạo các CSDL thiết kế logic . Định nghĩa chuẩn hóa và phi chuẩn hóa . Tạo thiết kế CSDL vật lý . Định nghĩa ngôn ngữ truy nhập CSDL (SQL) 7
  8. . Thực thi hệ thức thông qua SQL . Định nghĩa khung nhìn . Giải thích những hạn chế trong xây dựng CSDL gây ra bởi SQL . Định nghĩa, xác nhận, hủy các giao dịch CSDL . Nhận diện các vấn đề tranh chấp trong xử ký CSDL nhiều người dùng . Thực hiện chặn đối với dữ liệu . Thực hiện bảo mât CSDL Điều kiện tiên quyết Để hoàn thành chương trình học, học viên cần đáp ứng nhũng yêu cầu sau: Hiểu biết thực tiễn về hệ điều hành 8
  9. Phương pháp phối hợp hướng dẫn-tự học trong giảng dạy (Learning Architecture Based on Collaborative Constructivism (LACC) Giới thiệu Nhìn chung, các phương pháp giảng dạy chủ yếu được thực hiện qua các hình thức sau: . Đối thoại, trong đó giáo viên thuyết minh các kiến thức trong các bài giảng, giáo trình, học viên ghi chép, ghi nhớ để lập lại các kiến thức thu nhận được. . Đối thoại, trong đó giáo viên truyền đạt kiến thức trong sách vở, học viên kết hợp xây dựng bài. . Xây dựng tình huống, học viên tự tìm tòi, nghiên cứu để giải quyết tình huống, qua đó tích lũy kiến thức. Bất kỳ hệ thống giảng dạy nào cũng đều có thể kết hợp tất cả các phương thức trên để tạo ra hiệu quả tốt nhất. Phương pháp giảng dạy truyền thống chú trọng vào hình thức đối thoại đầu tiên. Hai hình thức sau, cùng với những lý luận về nhận thức tình huống và phối hợp các phương pháp, đã đặt ra những thử thách to lớn cho việc xây dựng phương pháp luận mới trong việc dạy và học. Các giai đoạn trong học tập kinh nghiệm: Theo David A Kolb, học tập kinh nghiệm gồm 4 giai đoạn: . Concrete experiences (cụ thể/cảm tính)– CE: học viên tiếp cận bài học qua các ví dụ cụ thể . Reflective observation (quan sát/phản hồi) – RO: học viên dựa trên kinh nghiệm tích lũy của mình để tìm hiểu ý nghĩa bài học . Active experimentation (tích cực/hành động) – AE: học viên từ các ý nghĩa để đưa ra kết luận . Abstract conceptualzation (tư duy/ trừu tượng) – AC: học viên thử nghiệm với các trường hợp tương tự để có những kinh nghiệm mới 9
  10. Phân loại học viên Dựa trên các giai đoạn học tập kinh nghiệm, có thể chia thành 4 kiểu người học với các phong cách: . Học tập tách biệt (Divergers): người học có khả năng tưởng tượng tốt . Học tập hòa đồng (Assimilators): người học có khả năng xác định, phân tích vấn đề . Học tập hội tụ (Convergers) : người học có khả năng xác định và giải quyết vấn đề . Học tập phối hợp (Accommodators): người học có khả năng lãnh đạo và chấp nhận rủi ro. Phương pháp giảng dạy độc đáo LACC kết hợp nhiều phương thức giảng dạy xây dựng nên các phần học khác nhau thích ứng với khả năng và nhu cầu của từng học viên. Các phần trong chương trình: Phương pháp giảng dạy LACC của NIIT gồm các phần sau: . Cơ sở: phần mở đầu khóa học, dưới sự hướng dẫn của một chuyên viên, giới thiệu về các khái niệm mới, giúp học viên hình thành kiến thức nền tảng. Giảng viên đưa ra các bài thực hành cụ thể thông qua giải thích và minh họa, cung cấp cho học viên lượng kiến thức yêu cầu cho học phần sau. . Phối hợp: phần giúp học viên làm quen với ngữ cảnh học tập qua việc cộng tác. Học viên được hướng dẫn và khuyến khích thưac hành kỹ năng quan sát và phán đoán. Học viên có quyền lựa chọn nhiều công cụ học tập như nghiên cứu tình huống, phân tích giả thiết và vận dụng những kiến thức đã học trong các ngữ cảnh lớn hơn. 10
  11. . Thực nghiệm: Tại đây, học viên được tìm hiểu cặn kẽ vấn đề qua việc thực nghiệm ứng dụng. học viên thực nghiệm những hiểu biết và quan sát của mình để đưa ra kết luận, tạo được hiệu quả cao trong học tập. . Vận dụng thực tiễn: phần này đưa học viên vào một môi trường thích hợp cho việc làm sáng tỏ các khái niệm. Tại đây học viên sẽ tự tìm tòi, nghiên cứu, so sánh, đối chiếu, vận dụng nhữn hiểu biết của mình để đưa ra hướng giải quyết cho tình huống mình nghiên cứu. Học viên được làm quen với việc thực hiện các công trình nghiên cứu, tìm kiếm thông tin, thực hành kỹ năng phân tích (ISAS) và kỹ năng đối chiếu (RR). Trang thiết bị cần thiết . Phòng học trực tuyến: phòng học được trang bị máy tính nối mạng. . Môi trường thích hợp cho các nhóm phối hợp và vận dụng kỹ năng 11
  12. *Tài liệu tham khảo . Kolb, D. (1984a).Experiential learning: Experience as the source of learning and development. Eglewood Cliffs, NJ: Prentice Hall . Kolb, D. (1984b). Learning Styles Inventory. Boston: McBer & Co. . R Dangwal [NIIT] & Mitra [NIIT]. Learning Styles and Perception of Self, Giáo dục quốc tế, tạp chí điện tử, tập 4, số 4 (12/2000) ISN 1327-9548, Australia (2000) . Children and the Internet: Experiments with minimally invasive education in India, Sugata Mitra [NIIT] và Vivek Rana [NIIT], Tạp chí Công nghệ giáo dục Anh Quốc, 32,2, trang 221-232 (2001) . Minimally Invasive education: A progress report on the “Hole-in-the-wall” experiments, S. Mitra [NIIT], Tạp chí Công nghệ Giáo dục Anh Quốc, 34,3, trang 367-371 (2003) 12
  13. Chú thích: Cơ sở Mở đầu khái niệm mới Thông tin thêm Thủ thuật Chữ kiểu Courier new Mã hoặc cú pháp chương trình Chữ in nghiêng Giới thiệu thuật ngữ mới Chữ in đậm Tùy chọn menu, tùy chọn trong các hộp thoại, phím gõ Phối hợp Lời khuyên của chuyên gia Thực hành, bài tập thí nghiệm Bài tập về nhà 13
  14. Bài 1: 1A Giới thiệu hệ thống quản lý cơ sở dữ liệu hệ thức Mục tiêu bài học Trong bài này, học viên sẽ tìm hiểu  Định nghĩa hệ thống quản lý cơ sở dữ liệu (CSDL)  Nhận diện các người dùng CSDL  Nêu rõ sự cần thiết của hệ thống CSDL  Định nghĩa cấu trúc của hệ thống CSDL dựa trên: o Mức khung nhìn o Mức khái niệm o Mức vật lý  Phân biệt các cấu kiện chức năng của hệ quản trị CSDL  Nêu sự cần thiết của việc quy hoạch CSDL  Phân biệt các giai đoạn của chu kỳ phát triển CSDL (DDLC)  Nhận biết các hậu quả của sự sơ sài trong quy hoạch và thiết kế CSDL Chú ý: Tham khảo trên trang web www.niitstudent.com để tích lũy thêm kinh nghiệm học tập 14
  15. Cơ sở dữ liệu là một tập hợp các bản ghi chép dữ liệu. Một trong những nhiệm vụ quan trọng của hệ thống máy tính là lưu trữ và quản lý các dữ liệu. Để hoàn tất nhiệm vụ này, học viên cần một phần mếm chuyên dụng, được gọi là Hệ quản trị CSDL (DBMS). Hệ quản trị CSDL được thiết kế để duy trì một lượng lớn dữ liệu. Công tác quản lý dữ liệu bao gồm: . Xác định kết cấu của bộ nhớ . Cung cấp các thiết bị cho xử lý dữ liệu . Đảm bảo bảo mật dữ lệu trước các truy nhập trái phép Hệ quản trị CSDL hiện nay có thể dùng được cho nhiều loại máy tính khác nhau, từ máy tính để bàn đến các máy tính trung tâm. Kích thước và khả năng của máy tính quyết định đến các công cụ của hệ thống, như bảo mật và lưu trữ. Hệ máy tính đơn người dùng chỉ cho phép một đối tượng truy cập CSDL tại 1 thời điểm. Trong hệ máy tính nhiều người sử dụng, nhiều đối tượng có thể truy cập CSDL trong cùng 1 thời điểm. Cùng với sự phát triển khả năng của máy tính để bàn, hệ thống SCDL nhiều người sử dụng có thể hỗ trợ 1 nhóm người sử dụng kết nối trực tiếp với nhau và tiếp cận đồng thời CSDL. Hệ thống CSDL này có thể nhân lên để có thể hỗ trợ hàng trăm, thậm chí hàng ngàn người sử dụng, tùy thuộc vào cấu hình của phần cứng mà hẹ thống SCDL đang vận hành. Mục đích chính của hệ quản trị CSDL: . Cung cấp môi trường làm việc thuận tiện và hiệu quả, được dùng để lưu trữ và khôi phục dữ liệu từ CSDL . Quản lý thông tin về người sử dụng hệ quản trị CSDL và những tác vụ mà người sử dụng có thể thực hiện đối với dữ liệu Đối với người sử dụng Một người sử dụng hệ quản trị CSDL có thể thực hiện các tác vụ sau trên CSDL . Thêm các tệp (file) vào CSDL . Chèn dữ liệu vào 1 file hiện hành . Khôi phục dữ liệu từ các file 15
  16. . Cập nhật dữ liệu cho các file . Xóa dữ liệu trong các file . Gỡ bỏ file từ CSDL . Tuân thủ quy định về bảo mật và toàn vẹn CSDL Có 3 loại người sử dụng CSDL: . Lập trình viên ứng dụng . Người sử dụng trực tiếp . Nhà quản trị CSDL (DBA) Lập trình viên ứng dụng viết các chương trình hỗ trợ người dùng sử dụng CSDL. Các chương trình này thường được viết bằng các ngôn ngữ như C, C++, Visual Basic và Visual C++. Các chương trình này xử lý dữ liệu trong CSDL để khôi phục, chèn, xóa, hoặc sửa đổi dữ liệu. Người sử dụng tương tác với một hệ quản trị CSDL bằng cách yêu cầu chương trình ứng dụng hoặc bằng cách viết truy vấn trên ngôn ngữ truy nhập CSDL. Ngôn ngữ truy nhập cơ sở dữ liệu cho phép người sử dụng thực hiện các thao tác cơ bản, như khôi phục, xóa, chèn, và cập nhật dữ liệu. Quản trị viên CSDL kết hợp chức năng của người thu thập thông tin về dữ liệu cần lưu trữ, thiết kế và duy trì CSDL và bảo mật. CSDL cần được thiết kế và duy trì để đưa ra thông tin chính xác cho người sử dụng. 16
  17. Tại sao cần sử dụng hệ thống quản lý cơ sở dữ liệu? Trước khi hệ quản trị CSDL ra đời, phương pháp xử lý dữ liệu truyền thống được thực hiện như sau. Trong phương pháp truyền thống, một chương trình (hoặc một tập hợp các chương trình) được xây dựng cho từng ứng dụng, tạo ra1 hoặc một vài file dữ liệu cho một ứng dụng. nhiều dữ liệu xuất hiện nhiều lần trong các file khác nhau. Tuy nhiên, một ứng dụng có thể đòi hỏi file phải được sắp xếp theo từng phạm vi riêng biệt, trong khi ứng dụng khác cũng đòi hỏi dữ liệu đó. Một nhược điểm lớn của phương pháp truyền thống là kỹ thuật lưu trữ và truy cập gắn vào vào chương trình. Vì thế, khi cùng một dữ liệu được yêu cầu bởi hai ứng dụng, dữ liệu phải được lưu trữ ở hai nơi khác nhau vì mỗi ứng dụng đòi hỏi dữ liệu lưu trữ khác nhau. Ví dụ, trường hợp của một trường đại học Thời khóa biểu File dữ liệu khóa học File dữ liệu sinh viên Sinh viên trúng tuyển File dữ liệu sinh viên Thời gian biểu giảng viên File dữ liệu giảng viên File dữ liệu khóa học Kế hoạch học kỳ File kế hoạch học kỳ File dữ liệu khóa học Liên kết giữa ứng dụng và file dữ liệu Một trường đại học thông thường cần ghi chép nhiều loại dữ liệu về chương trình học, sinh viên, học kỳ, giảng viên khi bắt đầu 1 khóa học mới. Khi lập thời khóa biểu, trường cần dữ liệu từ file dữ liệu khóa học và file dữ liệu sinh viên. Dữ liệu trong file dữ liệu sinh viên được phân chia theo mã khóa học của từng sinh viên. Khi lập danh sách sinh viên trúng tuyển, dữ liệu trong file dữ liệu sinh viên được sắp xếp theo ngày dăng ký nhập học. Vì thế, mặc dù cùng 1 file dữ liệu được dùng cho các tác vụ khác nhau, nó cần được sao thành nhiều bản và lưu tại nhiều nơi thích hợp cho từng tác vụ. 17
  18. Phương thức truyền thống trong việc xử lý dữ liệu có những nhược điểm sau: . Dữ liệu sao chép nhiều lần: file dữ liệu khóa học chứa những thông tin về nhiều khóa học khác nhau. Thông tin bao gồm mã môn học, tên môn học, đặc thù môn học, etc. các thông tin này được sử dụng để lập thời gian biểu cho giảng viên và lập kế hoạch cho kỳ học. nói cách khác, cùng 1 dữ liệu được dử dụng với nhiều mục dích khác nhau. Thay vì lưu trữ thông tin trong 1 file, nhiều file được dùng cho những ứng dụng khác nhau. Điều này được xem như dư thừa dữ liệu . Dữ liệu không nhất quán: Cùng 1 dữ liệu lưu trữ ở nhiều nơi khác nhau dẫn đến sự thiếu nhất quán. Ví dụ, danh sách sinh viên trúng tuyển thêm vào 10 sinh viên. Dữ liệu về những sinh viên mới này cần được cập nhật trong cả file dữ liệu dùng cho việc lập thời khóa biểu. Nếu sự thay đổi này không được cập nhật ở tất cả các bản sao của file, các bản sao sẽ không nhất quán. Lợi ích của phương thức sử dụng CSDL Thời khóa biểu File dữ liệu khóa học Sinh viên trúng tuyển File dữ liệu sinh viên Thời gian biểu giảng viên File dữ liệu giảng viên Kế hoạch học kỳ File kế hoạch học kỳ Phương thức sử dụng CSDL 18
  19. Ưu điểm chủ yếu của phương thức sử dụng CSDL trong xử lý dữ liệu được là hệ quản trị CSDL có chế độ kiểm soát tập trung đối với dữ liệu. Dưới đây là một số lợi ích của việc sử dụng CSDL: . Giảm sự rườm rà: sử dụng cơ sở dữ liệu, các dữ liệu không nhất thiết phải lưu trữ một cách độc lập cho từng ứng dụng. . Tránh tình trạng thiếu nhất quán: giảm được sự chồng chéo trong lưu trữ dữ liệu đồng thời giúp tránh được tình trạng thiếu nhất quán. . Dữ liệu được chia sẻ: nhiều tác vụ hiện thời có thể cùng sử dụng một dữ liệu, hoặc tác vụ mới có thể được thực hiện sử dụng chính dữ liệu đó. . Các quy phạm được tuân thủ chặt chẽ: với việc quản lý dữ liệu một cách tập trung, quản trị viên đảm bảo tính chuẩn mực của dạng thức dữ liệu khi lưu trữ và xử lý, đặc biệt là trong trao đổi và dịch chuyển dữ liệu giữa hai hệ thống máy tính. . Tăng tính bảo mật: chỉ những người sử dụng hợp pháp được phép truy cập vào CSDL. Quản trị viên có thể kiểm tra độ an toàn đối với từng công việc thực hiện trên dữ liệu. Ví dụ, một cá nhân có thể truy cập vào một file nhưng không có quyền xóa hoặc thay đổi file đó. . Đảm bảo tính toàn vẹn: sự thiếu nhất quán trong việc nhập dữ liệu thường làm ảnh hưởng đến tính toàn vẹn dữ liệu. Ngay cả khi dữ liệu không quá rườm rà, CSDL vẫn có khả năng không nhất quán. Ví dụ, 1 sinh viên đăng ký 10 môn học, trong khi số lượng môn học tối đa được phép chọn là 7 môn. Trường hợp khác, sinh viên đăng ký môn học không trong chương trình của kỳ. Chúng ta có thể tránh được các tình trạng trên khi sử dụng hệ quản trị CSDL. Hệ quản trị CSDL sẽ tiến hành kiểm tra tính toàn vẹn ngay khi các thao tác cập nhật được tiến hành. 19
  20. Cấu trúc của Hệ thống Quản lý Cơ sở dữ liệu Cấu trúc của hệ quản trị CSDL có thể chia thành 3 mức: . Mức khung nhìn . Mức khái niệm . Mức vật lý Mức khung nhìn 1 Mức khung nhìn 2 Mức khung nhìn 3 Mức khái niệm Mức vật lý Ba mức độ của hệ quản trị CSDL ___ Mức khung nhìn Đây là mức độ cao nhất, gần nhất đối với người sử dụng, còn được gọi là user view. User view khác với cách lưu trữ dữ liệu thông thường trong CSDL. Những gì hiển thị tại đây chỉ là một phần của CSDL thực tế. Bởi vì mỗi cá nhân không sử dụng hết toàn bộ CSDL, chỉ có những phần cần thiết cho người sử dụng được hiển thị. Ví dụ, người sử dụng và lập trình viên sử dụng những hiển thị bên ngoài khác nhau. Ví dụ, một giảng viên muốn hiển thị dữ liệu dưới dạng tập hợp danh sách sinh viên và môn học của trường. Người quản lý hiển thị dữ liệu dưới dạng tập hợp các tài liệu, giáo trình của trường. Mỗi người chỉ cần phần dữ liệu liên quan đến tác vụ của mình. Những phần dữ liệu này được xem là hiển thị cho người sử dụng (user view), hay hiển thị bên ngoài. 20
  21. Mỗi người sử dụng dùng một loại ngôn ngữ để tiến hành thao tác trên CSDL. Lập trình viên sử dụng cả ngôn ngữ thế hệ thứ ba, như COBOL hay C, hoặc ngôn ngữ thế hệ thứ tư thiết kế cho hệ quản trị CSDL như Visual FoxPro hay MS Access. Người sử dụng dùng ngôn ngữ truy vấn để truy cập cào dữ liệu trong CSDL. Ngôn ngữ truy vấn là ngôn ngữ kết hợp bởi ba loại ngôn ngữ thứ cấp: . Ngôn ngữ định nghĩa dữ liệu (DDL) . Ngôn ngữ thao tác dữ liệu (DML) . Ngôn ngữ điều khiển dữ liệu (DCL) Ngôn ngữ định nghĩa dữ liệu định hình và khai báo đối tượng trong CSDL, ngôn ngữ thao tác dữ liệu thực hiện thao tác cho các đối tượng này. Ngôn ngữ điều khiển dữ liệu điều khiển sự truy cập của người dùng đối với đối tượng trong CSDL. ___ Mức định nghĩa Đây là nức nằm giữa mức vật lý và mức khung nhìn của hệ quản trị CSDL. Mức định nghĩa trên tổng thể được coi như toàn bộ CSDL, được sử dụng bởi quản trị viên. Trong mức khái niệm, dữ liệu được hiển thị không bị giới hạn bởi ngôn ngữ lập trình như ở mức khung nhìn. Chú ý: mức định nghĩa mô tả dữ liệu lưu trữ trong CSDL và mối quan hệ của chúng với các dữ liệu khác. ___ Mức vật lý Dữ liệu trong mức này giải quyết vấn đề với lưu trữ vật lý và là mức thấp nhất của cấu trúc. Mức vật lý mô tả kết quả vật lý của những bản lưu trữ. Dưới đây là ví dụ minh họa cho ba mức: 21
  22. Ánh xạ Ánh xạ đo mức đọ tương thích giữa các mức. có 2 mức ánh xạ theo cấu trúc này. Thứ nhất là ánh xạ giữa mức khung nhìn và mưc khía niệm. Thứ hai là ánh xạ giữa mức khái niệm và mức vật lý. Ánh xạ mức khung nhìn-mức khái niệm đo sự tương thích giữa hiển thị khái niệm và hiển thị bên ngoài. Nó cụ thể hóa cách người dùng hiển thị dữ liệu khái niệm. Ánh xạ mức khái niệm-mức vật lý đo sự tương thích giữa hiển thị khái niệm và hiển thị bên trong. Nó giúp làm rõ cách thức lưu trữ dữ liệu khái niệm. Bước đầu tiên trong việc thiết kế 1 CSDL là khái quát mức định nghĩa. Mức định nghĩa sau đó được ánh xạ với mức khung nhìn, cả về hiển thị mức khung nhìn lẫn điều kiện của nó. Tiếp theo, ánh xạ mức khái niệm-mức vật lý được tiến hành. Cách lưu trữ dữ liệu phụ thuộc vào mức khái niệm. Cấu trúc ba mức của hệ quản trị CSDL góp phần tạo nên sự độc lập của dữ liệu. 22
  23. Các cấu kiện của hệ quản trị CSDL Một hệ quản trị CSDL gồm có nhiều module với các chức năng khác nhau trong toàn bộ hệ thống. Các cấu kiện chức năng của hệ quản trị CSDL là: . Quản trị CSDL . Quản lý tệp tin . Quản lý ổ đĩa Quản trị CSDL Bộ phận Quản trị CSDL là một cấu kiện phần mềm của Hệ quản trị CSDL. Phần mềm có chức năng chuyển đổi truy vấn của người sử dụng thành các lệnh thích hợp, góp phần duy trì tính nhất quán và toàn vẹn của CSDL và tăng cường bảo mật dữ liệu. Nó cũng đồng bộ những thao tác của nhiều người sử dụng cùng lúc. Ngoài ra, phần mềm còn có khả năng tiến hành phòng bị và khôi phục các thao tác. Quản lý tệp tin Bộ phận Quản lý tệp tin xử lý tất cả các yêu cầu đối với dữ liệu. Nó tìm kiếm những vùng chứa bản ghi được yêu cầu. những vùng này sau đó được yêu cầu từ các từ bộ phận quản lý ổ đĩa. Bộ phận quản lý tệp tin chọn lựa bản ghi từ vùng tìm được và chuyển qua bộ phận quản lý CSDL. Bộ phận quản lý tệp tin đồng thời quản lý dung lượng và cấu trúc bộ nhớ. Quản lý ổ đĩa Bộ phận quản lý ổ đĩa điều khiển dữ liệu đầu vào và đầu ra vật lý. Nó tương tác với bộ phận quản lý tệp tin để đọc và ghi trên các thiết bị lưu trữ khi nhận được yêu cầu từ bộ phận quản lý tệp tin. Các hiển thị được xử lý như dữ liệu chưa xử lý. Các thao tác thực hiện bởi bộ phận quản lý ổ đĩa là: . Truy hồi các khối dữ liệu . Thay thế các khối dữ liệu . Gỡ bỏ các khối dữ liệu 23
  24. Quy hoạch và thiết kế CSDL Để đảm bảo chuyển giao hiệu quả từ lưu trữ dữ liệu đơn lẻ sang lưu trữ tập trung sử dụng Hệ quản trị CSDL, chúng ta cần có quy hoạch CSDL. Quy hoạch CSDL là quá trình chiến lược để đáp ứng nhu cầu thông tin cho giai đoạn nhất định trong tương lai. Đây là hoạt động đầu tiên trong mọi dự án vận hành, góp phần rất lớn trong việc thiết kế và thực thi CSDL. Nhu cầu quy hoạch CSDL Việc quy hoạch CSDL xuất phát từ nhu cầu thông tin của tổ chức. Quy hoạch CSDL định rõ loại CSDL tổ chức cần dùng và sẵn có, cũng như tìm kiếm thông tin hiện có, theo dõi thông tin và tìm hiểu nhu cầu tương lai. Thêm vào đó, quy hoạch CSDL còn giúp người sử dụng hiểu rõ về sự chuyển giao thông tin trong tổ chức. Lợi ích của quy hoạch SCDL: . Định hình những hiểu biết về quản lý tài nguyên thông tin. . Xác định yêu cầu của nguồn thông tin, đảm bảo tính khả dụng của tài nguyên. . Sử dụng hiệu quả tài nguyên, bao gồm sự phối hợp chặt chẽ giữa các bộ phận trong tổ chức. . Cụ thể hóa kế hoạch hành động để đạt được mục tiêu đề ra. . Phát triển CSDL phù hợp với yêu cầu của tổ chức. Chu trình phát triển CSDL Chúng ta cần theo sát 1 chu trình khi thiết kế và thực thi CSDL cho tổ chức. Chu trình này được gọi là chu trình phát triển CSDL (DDLC). DDLC gồm có các giai đoạn: . Quy hoạch sơ bộ . Khảo sát tính khả thi . Xác định yêu cầu . Thiết kế khái niệm . Cài đặt . Đánh giá và bảo trì CSDL 24
  25. Quy hoạch sơ bộ Đây là bước đầu tiên đối với mọi dự án phát triển CSDL. Tại đây, tổ chức cần tìm câu trả lời cho các câu hỏi sau: . Bao nhiêu trình ứng dụng được sử dụng? . Các trình ứng dụng có những chức năng gì? . Các file được kết hợp với các trình ứng dụng như thế nào? . File và ứng dụng mới nào được tạo ra? Những thông tin thu được sau đó được sử dụng để xác định mối quan hệ giữa các ứng dụng và công năng của các ứng dụng đó. Thong tin trên giúp tìm ra yêu cầu tương lai của hệ thống và kiểm tra nguồn lợi tài chính mà hệ CSDL mang lại. Khảo sát tính khả thi Gồm có khảo sát tính thực thi của dự án về công nghệ, vận hành và kinh tế của CSDL. Khảo sáy tính khả thi đòi hỏi một báo cáo dựa trên lời giải dáp cho các câu hỏi sau: . Tính khả thi về công nghệ: tổ chức có đủ khả năng công nghệ để phát triển CSDL hay không? . Tính khả thi cho vận hành: tổ chức có đủ nguồn nhân lực, ngân sách, chuyên gia trong ngành để thực thi CSDL. . Tính khả thi về kinh tế: Xem xét lợi ích tạo ra là gì, có thể tính toán được lợi nhuận và chi phí hay không? 25
  26. Tổ chức tập trung vào từng giai đoạn riêng như sau: . Khảo sát tính thực thi về công nghệ: kiểm tra những phần cứng và phần mềm cần thiết sẵn có để dáp ứng nhu cầu thông tin, bao gồm kiểm tra tài nguyên và hệ thống máy tính có đủ hay cần nhập thêm. Thêm vào đó, cần xem xét về những kỹ năng cần dào tạo. . Khảo sát vận hành: kiểm tra những kỹ năng và nguồn nhân lực cần thiết để thực thi hệ CSDL . Khảo sát tính thực thi kinh tế: khảo sát về chi phí – lợi nhuận từ hệ CSDL đề suất. Vấn đề được giải quyết bởi các câu hỏi sau: Lợi nhuận sẽ có được sau bao lâu? Các ban các nhau có thể sử dụng cùng 1 dữ liệu một cách dễ dàng hay không? Hệ CSDL được ứng dụng như thế nào? Lợi ích của các ứng dụng này trong thực tế là gì? Chiến lược của các công ty cạnh tranh là gì? Hệ CSDL đóng vai trò thế nào trong kế hoạch phát triển của công ty? Chi phí cho các phần mềm, phần cứng và những lập trình liên quan đến phát triển hệ CSDL cần được xác định. Thêm vào đó, cần tính toán các phí tổn ngầm từ những thay đổi bất ngờ. Ví dụ, các phần mềm cần được nâng cấp để có thể tiếp tục công việc. Xác định yêu cầu Trong bước này, cần xác định những vấn đề sau: . Lĩnh vực ứng dụng của hệ CSDL . Những yêu cầu thông tin về vùng chức năng và vùng quản lý . Những yêu cầu về phần cứng và phần mềm Chúng ta có thể tìm thấy những yêu cầu thông tin bằng cách sử dụng phiếu điều tra, phỏng vấn với nhân viên, các báo cáo và biểu mẫu. Chúng ta cần mở rộng các mô hình thông tin tổng quát, tạo trong quá trình quy hoạch CSDL để xây dựng mô hình cho từng vùng chức năng. Các mô hình này sẽ làm nền tảng cho việc thiết kế chi tiết hệ CSDL. Những nhiệm vụ của xác định yêu cầu: . Phân tích yêu cầu thông tin để xác định lĩnh vực ứng dụng của hệ CSDL. Chúng ta phải xác định tạo CSDL tập trung hay phân tán. Viết 1 bản tường trình ngắn gọn về lĩnh vực ứng dụng của hệ thống. . Thảo văn bản về yêu cầu đối với người sử dụng ở mức vận hành và quản lý. Các tư liệu nên bao gồm mô hình thông tin tổng quát cho mỗi vùng chức năng và chỉ rõ các chương trình cần thiết để đáp ứng các yêu cầu. Các tư liệu cũng có thể kèm theo các tài liệu từ các biểu mẫu, báo cáo, điều tra thống kê từ người sử dụng. 26
  27. . Thiết lập các yêu cầu về phần cứng, phần mềm kèm theo hỗ trợ cho sự hoạt động. Chúng ta cần có thông tin về các vấn đề sau: Số lượng truy cập vào hệ thống Số lượng mua hệ thống thống kê hàng ngày Số lượng đặt mua Các thông tin này góp phần xác định Hệ quản trị CSDL cần dùng. Đồng thời, chúng xác định yêu cầu về dung lượng ổ đĩa và hỗ trợ in ấn. Chúng ta có thể kèm theo thông tin những báo cáo tường trình bao gồm các biểu đồ về cấu hình phần cứng, phần mềm. . Thảo một kế hoạch cho từng bước phát triển của 1 hệ CSDL. Đồng thời, nhận biết các ứng dụng ban đầu. các ứng dụng này cần phải nhỏ và không quá quan trọng để tránh bị ảnh hưởng từ sự thực thi CSDL. Thiết kế khái niệm Tại đây, chúng ta có thể tạo sơ đồ khái niệm của hệ CSDL. Sơ đồ khái niệm gồm các bộ phận của dữ liệu, mối quan hệ và hạn chế của chúng. Sơ đồ cần thật cụ thể để có thể đưa vào thực tế. Đầu tiên, tạo mô hình chi tiết của khung nhìn trong từng vùng chức năng. Tiếp theo, kết hợp các mô hình lại với nhau thành một mô hình dữ liệu khái niệm chi tiết. mô hình tạo ra sơ đồ mức CSDL khái niệm. Chúng ta sẽ đề cập đến mô hình dữ liệu khái niệm trong các bài học sau. Thực thi Tại đây, chúng ta cần có Hệ quản trị CSDL. Mô hình khái niệm chi tiết được chuyển thành mô hình thực thi của Hệ quản trị CSDL. Tiếp theo, chúng ta lập từ điển dữ liệu, đưa CSDL vào sử dụng, phát triển các trình ứng dụng, viết hướng dẫn cho người sử dụng. Từ điển dữ liệu là bộ lưu trữ trung tâm của các định nghĩa cấu trúc dữ liệu trong hẹ CSDL. Nó gồm các thông tin về nguyên tắc bảo mật, quyền truy cập và các kiểm soát liên quan. Từ điển dữ liệu đồng thời được dùng để duy trì chuản dữ liệu, giải quyết các vấn đề xảy ra khi chia sẻ dữ liệu cho các ứng dụng. Vì vậy, từ điển dữ liệu có vai trò như trung tâm điều khiển của hệ CSDL. Như vậy, xây dựng từ điển CSDL là bước quan trọng của việc thực thi. 27
  28. Đánh giá và bảo trì CSDL Đây là bước đánh giá chất lượng của CSDL đã đưa vào sử dụng. chúng ta có thể phỏng vấn người sử dụng về những điểm chưa đạt yêu cầu. Sau đó thực hiện nhưng thay đổi cần thiết. Bảo trì hệ thống là sự cải tiến, thêm vào các chương trình và bộ phận dữ liệu mới. những thay thế này kết hợp với sự thay đổi trong nhu cầu thương mại. Hậu quả của việc quy hoạch và thiết kế CSDL sơ sài Nếu chúng ta không bỏ nhiều công sức cho thiết kế và quy hoạch CSDL, hệ CSDL chắc chắn sẽ thất bại. Nguyên nhân chủ yếu là: . Đối tượng sử dụng chính bị loại ra khỏi quy trình quy hoạch và thiết kế . Tập hợp quá nhiều hay quá ít thông tin . CSDL không dễ dàng chỉnh sửa theo nhu cầu thương mại . Khoảng cách thời gian giữa việc mua hệ CSDL và đưa vào sử dụng quá ít. . Hệ CSDL không được kiểm tra trước khi đưa dữ liệu vào CSDL . Hướng hẫn hạn chế hoặc không có hướng dẫn cho người sử dụng . Quá trình quy hoạch bị gián đoạn khi có sự thay đổi về nhân sự . Thiếu xác nhận khi phân bổ tài nguyên (thời gian và tiền bạc) cho dự án phát triển CSDL. 28
  29. Tóm tắt bài học Qua bài học này, học viên đã học: . Một Hệ quản trị CSDL là một tập hợp các dữ liệu liên kết và các chương trình khai thác dữ liệu đó. . Mục đích chính của Hệ quản trị CSDL là: Tạo môi trường thuận tiện và hiệu quả để lưu trữ và truy hồi dữ liệu từ CSDL Quản lý các thông tin về người sử dụng Hệ quản trị CSDL và những tác vụ họ có thể làm đối với dữ liệu . Dữ liệu trong CSDL có thể kết hợp và chia sẻ . Người sử dụng Hệ quản trị CSDL có thể phân thành lập trình viên ứng dụng, người sử dụng trực tiếp và quản trị viên (DBA). . Hệ quản trị CSDL có những ưu điểm sau: Giảm bớt sự rườm rà Nhất quán Dữ liệu được chia sẻ Duy trì chuẩn mực Thắt chặt bảo mật Toàn vẹn . Cấu trúc CSDL bao gồm mức khung nhìn, mức khái niệm và mức vật lý. . Các cấu kiện chức năng của Hệ quản trị CSDL: Quản trị CSDL Quản lý file Quản lý ổ đĩa . Quy hoạch CSDL là quy trình chiến lược trong việc tìm hiểu nhu cầu thông tin cho tổ chức trong khoảng thời gian nhất định trong tương lai, góp phần trong thiết kế và thực thi CSDL. . Quy trình phát triển CSDL (DDLC) gồm 6 giai đoạn: Quy hoạch sơ bộ Khảo sát tính khả thi Xác định yêu cầu Thiết kế khái niệm Thực thi Đánh giá và bảo trì CSDL . Nếu chúng ta không bỏ nhiều công sức cho việc quy hoạch và thiết kế CSDL, CSDL sẽ thất bại. 29
  30. Bài 1B Mô hình dữ liệu Mục tiêu bài học Trong bài này, học viên sẽ tìm hiểu: . Mô tả các loại mô hình dữ liệu . Tạo mô hình thực thể - liên hệ . Liệt kê các mối liên hệ giữa các thực thể . Định nghĩa Hệ quản trị CSDL quan hệ . Mô tả hệ điều hành hoạt động trên các quan hệ 30
  31. Mô hình dữ liệu Mô hình dữ liệu là sự mô tả của 1 tổ chức dữ liệu trong CSDL. Cùng với dữ liệu, mô hình dữ liệu còn mô tả mối quan hệ giữa dữ liệu và các hạn chế xác định trên dữ liệu. Mô hình dữ liệu dược chia thành 2 nhóm: . Mô hình logic dựa trên đối tượng: chú trọng vào mô tả dữ liệu, quan hệ gữa các dữ liệu và các hạn chế. . Mô hình logic dựa trên mẩu tin Mô hình logic dựa trên đối tượng Mô hình thông dụng nhất là mô hình thực thể - quan hệ (mô hình E/R). đây được coi là mô hình hiệuquar nhất trong thiết kế CSDL. Peter Chen giới thiệu mô hình này vào năm 1976. Từ đó trở đi, rất nhiều người đã góp phần làm nên giá trị của nó. Mô hình thực thể - quan hệ Mô hình thực thể - quan hệ dựa trên nhận thức thực tế gồm tổ hợp các đối tượng hay thực thể và mối quan hệ giữa chúng. Chen dưa ra không chỉ mô hình E/R mà còn đưa ra kỹ thuật vẽ giản đồ tương ứng với nó. Quan sát giản đồ sau: 31
  32. Giản đồ gồm nhiều bộ phận mô tả mối liên hệ giữa các bộ phận đó. Nhiều bộ phận của giản đồ là các thực thể: course và semester, mối quan hệ: taught, thành phần: title, code, start-dt, end-dt và sem #. Thực thể Chen định nghĩa thực thể là “một thứ rất dễ nhận biêt”. Thực thể là bất cứ vật, người, hành động, vị trí nào mà dữ liệu được ghi lại. 1 số ví dụ về thực thể là sinh viên, mon học, điểm. Trong kỹ thuật vẽ giản đồ, thực thể được đặt tên và đặt trong một hộp chữ nhật. SINH VIÊN MÔN HỌC ĐIỂM SỐ Thực thể Chún ta cần phan biệt giữa tập thực thể và thể hiện thực thể. Kiểu thực thể là tập hợp những thứ có dặc điểm chung. Ví dụ, SINH VIÊN, MÔN HỌC và ĐIỂM SỐ. Tập thực thể thường được viết hoa. Một thể hiện thực thể là những cá thể. Ví dụ, Jack Ripper là một thể hiện thực thể của thực thể SINH VIÊN, Triết học là một thể hiện thực thể của thực thể MÔN HỌC, A là thể hiện thực thể của thực thể ĐIỂM SỐ. Có hai kiểu thực thể là phụ thuộc và độc lập. Một thực thể mà sự tồn tại phụ thuộc vào sự tồn tại của một thực thể khác gọi là thực thể phụ thuộc. Ví dụ, tập thực thể ĐĂNG KÝ. ĐĂNG KÝ chỉ ra các môn học được giảng dạy trong khóa học. một môn với cũng mã số môn có thể được dạy ở nhiều kỳ khác nhau và các trường khác nhau. Sự tồn tại của ĐĂNG KÝ phụ thuộc vào sự tồn tại của thực thể MÔN HỌC. Thực thể B là thực thể tồn tại phụ thuộc vào thực thể A nếu: . Một vài thể hiện của A tồn tại trước khi B tồn tại . Khi A ngừng hoạt động, kéo theo B cũng ngừng hoạt động Ví dụ, trường cho phép mở KHÓA HỌC trên thiết ké CSDL trong học ký II. Trường có thể mở khóa học này chỉ trong trường hợp thể hiện thực thể “thiết kế CSDL” tồn tại. Nếu trường dừng thể hiện thực thẻ “thiết kế CSDL” việc mở khóa học cũng sẽ ngưng lại. Thực thể phụ thuộc dược mô tả bởi một hộp chữ nhật 2 đường bao và 1 đường dẫn tới thực thể mà nó phụ thuộc. Một thực thể độc lập không phụ thuộc sự tồn tại của thực thể khác. Thực thể phụ thuộc gọi là thực thể yếu, thực thể độc lập gọi là thực thể thông thường 32
  33. Thực thể phụ thuộc Chú ý: Thực thể thông thường và những thực thể yếu của nó được xem như một đối tượng trong CSDL bởi vì thực thể yếu phụ thuộc vào thực thể thông thường. Mối quan hệ Chen định nghĩa mối quan hệ là “sự liên kết giữa các thực thể”. Ví dụ, sinh viên và giảng viên có mối liên kết với nhau. Mối quan hệ này thể hiện rằng 1 giảng viên dạy nhiều sinh viên và 1 sinh viên học nhiều giảng viên. Mối quan hệ ở đây là GIẢNG DẠY. Cũng như thực thể, mối quan hệ cũng cần được phân biệt giữa tập và thể hiện. Tập hợp các mối quan hệ là sự liên kết giữa các tập thực thể. Ví dụ, mối liên kết giữa SINH VIÊN và GIẢNG VIÊN khi SINH VIÊN và GIẢNG VIÊN đều là tập thực thể. Thể hiện các mối quan hệ là sự liên kết giữa các hiên bản thực thể, ví dụ, mối liên kết giữa sinh viên J.Reins và giảng viên là tiến sĩ Jack. 33
  34. Mối quan hệ được mô tả là một hình quả trám với tên của tập hợp mối quan hệ. GIẢNG VIÊN GIẢNG DẠY SINH VIÊN Các mối quan hệ Một mối quan hệ có thể liên kết thực thể với chính nó. Ví dụ, 1 giảng viên có thể kết hôn với 1 giảng viên khác. Vì vậy, mối quan hệ sau đây có khả năng xảy ra: GIẢNG VIÊN KẾT HÔN Liên kết 1 thực thể với chính nó Ví dụ khác về thực thể liên kết với chính nó là một sinh viên thuyết trình trước các sinh viên khác. SINH VIÊN CHUYÊN ĐỀ THẢO LUẬN Liên kết 1 thực thể với chính nó 34
  35. Liên kết đa phương cũng có thể tồn tại giữa các thực thể. Ví dụ: QUẢN LÝ GIẢNG VIÊN GIẢNG DẠY SINH VIÊN ĐÁNH GIÁ Liên kết đa phương với cùng một thực thể Các loại hình quan hệ: Có 3 loại hình quan hệ là: . Một – một . Một – nhiều . Nhiều – nhiều Đặt trường hợp 1 trường đại học. Đối với mỗi KHOA (như khoa KH xã hội), chỉ có 1 TRƯỞNG KHOA. Đây là ví dụ của quan hệ một – một. KHOA ĐIỀU HÀNH BỞI TRƯỞNG KHOA Quan hệ một – một 35
  36. Một SINH VIÊN có thể CHUYÊN MÔN về 1 môn học, nhưng nhiều SINH VIÊN cũng có thể đăng ký cho 1 CHUYÊN MÔN. Đây là ví dụ cho quan hệ nhiều – một. SINH VIÊN m ĐĂNG KÝ 1 CHUYÊN MÔN Quan hệ nhiều – một 1 SINH VIÊN có thể đăng ký nhiều MÔN HỌC và nhiều SINH VIÊN có thể cùng đăng ký 1 MÔN HỌC. Đây là ví dụ của quan hệ nhiều – nhiều. SINH VIÊN m THAM GIA m MÔN HỌC Quan hệ nhiều – nhiều Các loại hình quan hệ giữa 2 thực thể được biểu diễn bằng lược đồ E/R với những ký hiệu riêng. Một thực thể có thể kết hợp với 1 hoặc nhiều thực thể khác. Các thuộc tính Thuộc tính là đặc điểm của một thực thể. Ví dụ, SỐ HỒ SƠ là 1 đặc điểm của thực thể SINH VIÊN. 1 thể hiện thuộc tính là 1 đặc điểm cụ thể của một thể hiện thực thể. Ví dụ, Peter là 1 thể hiện của thực thể SINH VIÊN và hồ sơ số 101 là thể hện của thuộc tính SỐ HỒ SƠ, đồng thời là đặc điểm của thể hiện thực thể Peter. 1 kiểu thuộc tính là đặc điểm của kiểu thực thể. Ví dụ, “nam giới” là 1 thể hiện thuộc tính, trong khi “giới tính” là 1 kiểu thực thể. Thuộc tính được ký hiệu bằng hình elip, đánh dấu bằng tên đặc điểm. Các khóa dược gạch chân. 1 khóa duy xác định thể hiện thực thể một cách duy nhất. Trong ví dụ dưới đây, 1 sinh viên dễ phân biệt bởi số hồ sơ hơn bằng tên vì có nhiều sinh viên trùng tên, còn số hồ sơ thì không bị trùng lặp. Quan hệ cũng có thuộc tính. 36
  37. ĐỊA CHỈ TÊN SINH VIÊN SỐ HỒ SƠ ĐĂNG KÝ Thuộc tính Tập thực thể con và tập thực thể cha 1 tập thực thể con là tập con của một thực thẻ khác. Ví dụ, thực thể MÔN HỌC gồm 2 nhóm – nhóm môn học theo kỳ và nhóm môn học tự chọn. Trong biểu đồ sau, MÔN HỌC là tập thực thể cha, còn MÔN THEO KỲ và MÔN TỰ CHỌN là tập thực thể con. Một vài thuộc tính rát phổ biến đối với cả hai tập thực thể con, ví dụ như, “tên” và “nội dung”. MÔN TỰ CHỌN có vài thuộc tính như “mã môn học” không thuộc về tập thực thể con MÔN THEO KỲ. tập MÔN THEO KỲ có vài thuộc tính như “số thứ tự học kỳ” không thuộc về tập MÔN TỰ CHỌN. 37
  38. MÃ SỐ MÔN HỌC NỘI DUNG TÊN MÔN TỰ CHỌN MÔN THEO KỲ THỜI HẠN SỐ THỨ TỰ KỲ Tập thực thể con và tập thực thể cha Tập thực thể con luôn luôn phụ thuộc vào tập thực thể cha. Thuộc tính của tập thực thể chả là đúng đối với mọi tập thực thể con. Điều ngược lại là sai. Tập thực thể con liên kết với tập thực thể cha trên mối quan hệ vô danh. Tập thực thể cha liên kết với các mối quan hệ bằng 1 đường và một thanh ngang, như trên biểu đồ. Tập thực thể cha dược mô tả bởi thuộc tính của tất cả các tập con. Tập con được mô tả bằng thuộc tính của riêng nó. Mô hình logic dựa trên mẩu tin Sau khi làm quen với mô hình E/R, điển hình của mô hình logic dựa trên đối tượng, chúng ta sẽ xét tiếp đến cácmoo hình dữ liệu khác. Có 3 loại mô hình dựa trên mẩu tin: . Mô hình phân cấp . Mô hình mạng . Mô hình quan hệ Trong mô hình phân cấp, dữ liệu được diễn giải theo dạng cây. Dữ liệu trong mô hình phân cấp biểu hiện bởi tập hợp các mẩu tin và các môi quan hệ giữa các dữ liệu được thể hiện bằng các đường dẫn. 38
  39. Một mô hình mạng tương tự với mô hình phân cấp ở chỗ dữ liệu và quan hệ giữa chúng dược mô tả dưới dạng mẩu tin và đường dẫn. Tuy nhiên, các mẩu tin trong CSDL được mô tả bằng lược đồ. Trong mô hình quan hệ, CSDL được xây dựng như những bản ghi có khuôn mẫu cố định. Mỗi loại bản ghi có một số thuộc tính và trường cố định, thường có đọ dài cố định. Trong 3 mô hình này, mô hình quan hệ là phổ biến nhất. Mô hình quan hệ Tiến sĩ E.F. Codd bước đầu mô tả mô hình quan hẹ vào năm 1970. Mô hình quan hệ là sự nỗ lực nhằm đơn giản hóa cấu trúc CSDL. Nó biểu diễn mọi dữ liệu dưới dạng bảng hàng – cột đơn giản. Bảng danh sách giảng viên Hệ quản trị CSDL quan hệ là Hệ quản trị CSDL trong đó mọi dữ liệu hiển thị cho người sử dụng được sắp xếp chặt chẽ trong bảng số liệu, mọi thao tác dữ liệu đều được thực hiện trên các bảng này. Cấu trúc dữ liệu quan hệ Nguyên tắc tổ chức của CSDL quan hệ là bảng, hệ thống hàng – cột dạng chữ nhật. Mỗi bảng trong CSDL là một tên bảng duy nhất quy định nội dung của nó. Bảng dược gọi là hệ thức. Hàng (bản ghi) trong bảng được gọi là bộ, còn cột (trường) được gọi là thuộc tính. Các cột trong bảng phải có tên riêng. Số các bộ được gọi là bản số, số các thuộc tính gọi là bậc của bảng. 39
  40. Một dặc tính quan trọng nữa của một quan hệ là các hàng không dược sắp xếp theo thứ tự. Một hàng không được nhận biết bằng vị trí của nó trong bảng. Tất cả các bảng phải có một vài cột hoặc tổ hợp các cột để nhận diện riêng biệt mỗi hàng trong bảng. tái một thời điểm nhất định, không có hai hàng nào trong bảng chứa cùng giá trị trong 1 cột hoặc tổ hợp cột đó. Cột này được gọi là khóa chính của bảng. Ví dụ, trong bảng sinh viên, SỐ HỒ SƠ là khóa chính của phân biệt duy nhất mỗi sinh viên. Trong một bảng mỗi hàng khác với tất cả các hàng khác được gọi là hệ thức như trong toán học. Một miền là một vùng chứa để các thuộc tính lấy giá trị cụ thể. Ví dụ, miền cho thuộc tính MÃ SỐ là tập hợp các mã số của nhà cung cấp hợp pháp. Một tập hợp giá trị xuất hiện trong một cột tái một thời điểm nhất định là một tập con của miền đó. Bảng NHÀ CUNG CẤP Cấu trúc dữ liệu của một Hệ Quản trị CSDL quan hệ Biểu diễn các thông tin khuyết thiếu Vấn đề khuyết thiếu thông tin xảy ra rất phổ biến trong thực tế. Ví dụ, 1 người không biết ngày thảo luận khi chưa được công bố. Trong một Hệ Quản trị CSDL hệ thức, thông tin khuyết thiếu được biểu diễn bởi giá trị NULL trong bảng giá trị. Nếu 1 hàng có giá trị NULL trong cột tức là 1 thuộc tính cụ thể của hàng đó khuyết thiếu. NULL không đồng nghĩa với với trống hoặc 0. 40
  41. Biểu diễn các mối quan hệ trong một Hệ Quản trị CSDL quan hệ Điểm khác nhau cơ bản trong mô hình quan hệ và các mô hình dữ liệu đề cập trước là các chỉ dẫn rõ ràng như quan hệ cha – con trong mô hình phân cấp bị bác bỏ trong mô hình quan hệ. Tuy nhiên, các quan hệ này vẫn tồn tại trong mô hình quan hệ. Mặc dù vậy, các mối quan hệ này được biểu diễn bằng các giá trị dữ liệu phổ biến lưu trữ trong hai hay nhiều bảng. Mọi quan hệ được biểu diễn theo cách thức này. 1 cột trong 1 bảng với các giá trị gắn với khóa chính trong các bảng khác được gọi là khóa phụ. 1 khóa chính và một khóa phụ tạo ra mối liên kết cha – con trong các bảng chứa chúng. Quan hệ cha – con trong mô hình quan hệ Cũng như tổ hợp các cột được dùng như khóa chính trong bảng, khóa phụ cũng được coi nư 1 tổ hợp các cột. Số của cột và kiểu dữ liệu của khóa nhất thiết phải giống nhau. 1 bảng có thể chứa hơn 1 khóa phụ nếu liên kết với hơn 1 bảng. Bảng GIẢNG VIÊN 41
  42. Bảng PHỐI HỢP Quan hệ cha – con trong mô hình quan hệ Trong bảng GIẢNG VIÊN, mã số giảng viên (I_CODE) là khóa chính, trong bảng phối hợp, I_CODE là khóa phụ. Chỉ có mã số giảng viên trong bảng giảng viên là có thể truy nhập vào bảng phối hợp. 42
  43. Đại số quan hệ Mô hình quan hệ dựa trên nguyên lý của đại số quan hệ. Đại số quan hệ là tập hợp các toán tử thực hiện trên quan hệ. Mỗi toán tử sử dụng một hoặc hai quan hệ làm input (đầu vào) để tạo ra các quan hệ mới, gọi là output (đầu ra) Các toán tử sử dụng trong đại số quan hệ 8 toán tử quan hệ được định danh. Những biểu diễn tượng trưng của liệt kê tóm tắt của chúng được thâu gọn trong các phần sau: PHÉP CHỌN Phép chọn tách các bộ dữ liệu cụ thể hay hàng ra khỏi một quan hệ cho trước dựa trên 1 điều kiện nào đó. Phép chọn tách các bộ dữ liệu hay hàng Ví dụ, 1 bảng sinh viên có thuộc tính ROLLNO (số hồ sơ), STUDNAME (tên sinh viên), AGE (tuổi) và GENDER (giới tinh). Điều kiện để tách dữ liệu là những sinh viên tuổi trên 25. Kết quả như sau: Ví dụ của phép chọn 43
  44. PHÉP CHIẾU Phép chiếu tách dữ liệu những thuộc tính hoặc cột nhất định khỏi quan hệ cho trước. Phép chiếu tách thuộc tính hoặc cột Ví dụ, nếu chỉ tách tên và tuổi của sinh viên, kết quả sẽ như sau (coi như bảng sinh viên chỉ có 6 bộ dữ liệu) Ví dụ của phép chiếu PHÉP NHÂN Phép nhân xây dựng quan hệ mới dựa trên hai quan hệ nhất định. Nó bao gồm tất cả các tổ hợp có thể của các bộ dữ liệ, mỗi bộ từ một trong hai quan hệ. Ví dụ của phép nhân 44
  45. Cho tương xứng, hai bảng cần có những thuộc tính chung Phép nhân tạo ra tích Cartesian giữa hai bảng. Ví dụ, theo dõi hai bảng sau: Bảng GIẢNG VIÊN Bảng PHỐI HỢP Tích Cartesian của các bảng này sẽ là tất cả những tổ hợp khả năng của các bộ dữ liệu. 45
  46. Tích Cartesian của bảng giảng viên và bảng phối hợp PHÉP HỢP Phép hợp xây dựng quan hệ mới từ các bộ xuất hiện trong 1 trong 2 quan hệ cụ thể. Phép hợp Để phép hợp tương xứng, hai bảng cần có chung tập thuộc tính (tập hợp các cột có cùng kiểu dữ liệu). Xem xét hai bảng A và B. A gồm các số hồ sơ và tên của tất cả các sinh viên học chuyên ngành Toán. Các bảng này tương thích vì có thể á dụng được phép hợp. 46
  47. A B A – B Ví dụ của phép hợp PHÉP GIAO Phép giao xây dựng quan hệ gồm các bộ dữ liệu cùng xuất hiện trong 2 quan hệ. Phép giao Xem xét 2 bảng A và B. Nancy đang theo học cùng lúc 2 ngành. Vì thế, tên của cô ấy xuất hiện trong cả hai bảng. Phép giao của 2 bảng tách 1 hàng chung cho cả hai bảng. PHÉP GIAO có thể áp dụng khi các bảng tương thích nhau trong phép hợp. 47
  48. Ví dụ của PHÉP GIAO PHÉP TRỪ Phép trừ xây dựng quan hệ giữa các bộ dữ liệu xuất hiện trong quan hệ thứ nhất mà không xuất hiện trong quan hệ thứ hai. PHÉP TRỪ Phép trừ áp dụng cho các bảng tương thích nhau trong phép hợp. trong trường hợp bảng A và B, toán tử “A TRỪ B” tách tất cả các hàng thuộc về A chứ không thuộc về B. A-B Ví dụ cho PHÉP TRỪ PHÉP KẾT NỐI Phép kết nối xây dựng quan hệ từ hai quan hệ cụ thể. Quan hệ này gồm tất cả các tập hợp có thể của các bộ dữ liệu, mỗi bộ từ 1 quan hệ thỏa mãn điều kiện. Ví dụ, cho 2 bảng X và Y. Bảng X gồm số hồ sơ của sinh viên và mã môn học họ đăng ký. Bảng Y gồm mã số của các giảng viên và mã môn học họ dạy. Nếu cần tổ hợp của của sinh viên học Vật lý và giảng viên môn Vật lý, chúng ta phải thực hiện phép kết nối. Phép kết nối đòi hỏi phải có các thuộc tính giống nhau. 48
  49. PHÉP KẾT NỐI Biểu đồ sau đây minh họa cho phép kết nối giữa bảng X và Y. X Y PHÉP KẾT NỐI Ví dụ của PHÉP KẾT NỐI 49
  50. PHÉP CHIA Phép chia sử dụng 2 quan hệ và xây dựng quan hệ mới gồm giá trị của 1 thuộc tính từ 1 quan hệ, gắn với mọi giá trị trong quan thệ kia. PHÉP CHIA ngược lại với PHÉP NHÂN PHÉP CHIA Quan sát trường hợp sau: Nhân công Thành phố Kết quả phép chia Chia Ví dụ của PHÉP CHIA 50
  51. Ứng dụng của Hệ Quản trị CSDL quan hệ Hệ Quản trị CSDL quan hệ được sử dụng trong: . Đặt vé máy bay hoặc tàu hỏa . Ứng dụng trong ngành ngân hàng . Công nghiệp sản xuất . Xử lý đặt lệnh . Hệ thống quản lý bệnh viện . Hệ thống quản lý thư viện . Hệ thống quản lý khách sạn Những sản phẩm của Hệ Quản trị CSDL quan hệ phổ biến ngày nay: . Sybase . Oracle . Microsoft SQL Server . Ingress . DB2 51
  52. Tóm tắt Trong bài này, học viên nắm được: . Mô hình quan hệ được chia thành: Mô hình quan hệ dựa trên đối tượng Mô hình quan hệ dựa trên mẩu tin . Kỹ năng vẽ giản đồ thực thể - quan hệ Thực thể ký hiệu bằng hình chữ nhật Quan hệ ký hiệu bằng hình thoi Thuộc tính ký hiệu bằng hình elip . Quan hệ bao gồm nhiều-nhiều, một-nhiều, một-một đều được thể hiện bằng biểu trưng. . Thực thể yếu biểu hiện bằng hình hộp hai đường . Tập thực thể con nối với tập thực thể cha bằng 1 quan hệ cô danh, đánh dấu bằng thanh ngang trên đầu . Trong mô hình quan hệ, dữ liệu thể hiện bằng bẳng (quan hệ) của các hàng (bộ dữ liệu) và các cột (thuộc tính) . Số các bộ gọi là bản số của bảng, số các thuộc tính gọi là bậc của bảng. . 1 thuộc tính (hoặc tập thuộc tính) là duy nhất đối với bộ dữ liệu gọi là khóa chính . Thông tin khiếm khuyết được thể hiện bằng NULL trog bảng . Khóa phụ là một cột gắn với khóa chính của bảng khác. . Mô hình quan hệ dựa trên nguyên lý đại số quan hệ . 8 toán tử của quan hệ là, phép chọn, phép chiếu, phép hợp, phép giao, phép nhân, hép chia, phép trừ, phép kêt nối. 52
  53. Bài 1C: Phối hợp 53
  54. Byte kiến thức Trong phần này, chúng ta sẽ nghiên cứu về: . Mô hình mạng và mô hình phân cấp . Quản trị dữ liệu Mô hình mạng và mô hình phân cấp Trong mô hình mạng, dữ liệu thể hiện dưới dạng các bản ghi. Những bản ghi này liên hệ với nhau bằng các đường dẫn. Mỗi bản ghi gồm có các trường và mỗi trường gòm 1 giá trị dữ liệu. Mỗi bản ghi trong mô hình mạng tương tự như 1 thực thể trong mô hình E/R. Mỗi trường là một thuộc tính và mỗi đường dẫn giống như 1 quan hệ. 1 đường dẫn liên kết 2 bản ghi. Ví dụ, tài khoản của một khách hàng trong CSDL ngân hàng được thể hiện trong mô hình mạng với 2 bản ghi sau: . KHÁCH HÀNG Tên Địa chỉ Thành phố . TÀI KHOẢN Số tài khoản Kết toán Các trường trong mỗi bản ghi KHÁCH HÀNG sẽ là tên, địa chỉ và thành phố. Tương tự, các trường trong mỗi bản ghi TÀI KHOẢN là số tài khoản và kết toán. Giản đồ cấu trúc dữ liệu được dùng để thiết kế mô hình mạng. Lược đồ cấu trúc dữ liệu tương tự với lược đồ E/R. Nó được dùng để xác định cấu truc logic của CSDL. Biểu đồ sau biểu diễn bản ghi KHÁCH HÀNG, bản ghi TÀI KHOẢN và mối liên hệ giữa chúng Giản đồ cấu trúc dữ liệu Biểu đồ trên thể hiện rằng khách hàng tên Mike có 568 trong ngân hàng. 54
  55. Như mô hình mạng, mô hình phân cấp cũng gồm nhiều bản ghi. Mỗi bản ghi gồm các trường, hai bản ghi liên kết bằng đường dẫn. Tuy nhiên, trong mô hình phân cấp, các bản ghi được tổ chức bằng cấu trúc cây. Giản đồ cấu trúc cây biểu diễn thiết kế của mô hình phân cấp, bao gồm các hộp và các đường Đọc ví dụ trên với bản ghi KHÁCH HÀNG và TÀI KHOẢN. Biểu đồ sau thể hiện lược đồ cấu trúc cây gồm bản ghi KHÁCH HÀNG và TÀI KHOẢN và liên kết giữa chúng. Lược đồ cấu trúc cây Biểu đồ trên biểu diễn khách hàng tên Mike có tà khoản 568, Tim có tài khoản 749 và 114, Mitchell có tài khoản 254. Thấy rằng các bản ghi được tổ chức dưới dạng cây với 1 rễ. Rễ là một điểm phân nhánh hình thức. CSDL phân cấp là tập hợp các cây với các rễ, tập hợp này tạo thành rừng. Chỉ có quan hệ một-một và quan hệ một-nhiều có thể tồn tại giữa nút cha và nút con. Quản trị CSDL Nhà quản trị CSDL đóng vai trò như trung gian giữa dữ liệu lưu trong CSDL và truy vấn báo cáo với hệ CSDL. Nhà quản trị CSDL có các nhiệm vụ sau: . Tương tác với người quản lý tệp tin: Nhà quản trị CSDL dịch ngôn ngữ quản trị CSDL sang các lệnh đối với hệ thống têp tin cấp thấp. Điều này là cần thiết vì dữ liệu lưu trong ổ đĩa cứng sử dụng hệ thống tệp tin cung cấp bởi hệ điều hành. Vì vậy, nhà quản trị CSDL thao tác với lưu trữ, khôi phục và cập nhật dữ liệu 55
  56. . Duy trì sự nhất quán: nhiều hạn chế được chỉ rõ cho toàn bộ CSDL để dảm bảo giá trị dữ liệu trong CSDL là hợp lệ. Ví dụ, trong CSDL của 1 trường đại học, sinh viên có thể đăng ký tối đa là 4 môn. Nếu số môn vượt quá 4, CSDL sẽ báo lỗi. Hạn chế này được định rõ bởi Nhà quản trị CSDL. Trách nhiệm của người quản lý CSDL là kiểm tra những hạn chế này có bị vi phạm hay không. Nếu có, người quản lý CSDL cần có những biện pháp thích hợp. . Duy trì bảo mật: giới hạn bảo mật như hạn chế truy cập vào những vùng khác nhau của CSDL được chỉ rõ bởi nhà quản trị CSDL. Người quản lý CSDL cần đảm bảo tuân thủ những giới hạn này. . Quy trình thi hành dự phòng và khôi phục: hệ CSDL có thể bị lỗi bất cứ khi nào do lỗi nguồn, lỗi phần mềm hoặc sự cố đĩa. Người quản lý CSDL chịu trách nhiệm tìm ra các lỗi và phục hồi CSDL tại nơi bị lỗi. Để làm được điều này, người quản lý CSDL cần tiến hành dự phòng và khôi phục. . Kiểm tra đồng thời: CSDL thường được sử dụng bởi nhieuf người cùng lúc. Điều này có thể gây ra việc dữ liệu thiếu nhất quán khi tất cả người sử dụng cùng cập nhật dữ liệu một lúc. Người quản lý CSDL cần tránh tình trạng này bằng cách kiểm soát sự tương tác giữa những người sử dụng. 56
  57. Lời của chuyên gia Trong phần này, chúng ta học về cách luyện tập tối ưu để biểu thị các mối quan hệ trong các mối quan hệ, kỹ năng vẽ lược đồ E/R chứa hệ thức nhị phân, và những câu hỏi thường gặp về hệ CSDL và mô hình E/R. Luyện tập Biểu thị các mối quan hệ trong các mối quan hệ Mô hình E/R có 1 nhược điểm là chúng ta không thể biểu thị các mối quan hệ trong các mối qua hệ. Ví dụ, với 1 CSDL chứa thông tin về nhân viên. Mỗi nhân viên làm một phần việc cụ thể sử dụng máy móc khác nhau. Lược đồ E/R trong trường hợp này như sau 57
  58. Lược đồ E/R mô tả các mối quan hệ trong các mối quan hệ Quan hệ giữa WORKS (công việc) và USE (sử dụng) có thể liên kết nhưng phái thay đổi cấu trúc logic của CSDL. Lược đồ E/R trước đó có thể thay đổi được nhờ phép gộp. Phép gộp có thể xem như sự rút gọn trong đó ta sử dụng mối quan hệ như thực thể bậc cao hơn. Vì thế, trong ví dụ trước, chúng ta có thể coi thực thể EMPLOYEE (nhân công) và PROJECT (dự án) cùng với thực thể WORKS như một thực thể bậc cao hơn. Những thực thể này cũng giống như các thực thể khác. Biểu đồ sau vẽ lược đồ E/R sử dụng phép gộp. 58
  59. Lược đồ E/R với phép gộp Thủ thuật Sử dụng quan hệ tam phân Chúng ta có thể đơn giản lược đồ E/R có chứa quan hệ nhị phân bằng cách sử dụng lược đồ E/R có chứa quan hệ tam phân. Quan hệ tam phân là mối quan hệ giữa 3 thực thể. Ví dụ, ngân hàng New Edge giữ CSDL về tất cả các khách hàng. Quản trị CSDL, Mary Peterson, muốn dựng lược đồ E/R cho trường hợp sau: 1 khách hàng có thể có nhiều tài khoản. các tài khoản này có thể ở những chi nhánh khác nhau của ngân hàng. 59
  60. Tình huống có thể được mô tả bởi sử dụng 2 quan hệ nhị phân như trong lược đồ sau: Lược đồ E/R sử dụng quan hệ nhị phân Lược đồ E/R trên có thể chuyền thành lược đồ E/R sau sử dụng quan hệ tam phân 60
  61. Lược đồ E/R sử dụng quan hệ tam phân Trong lược đồ này, quan hệ tam phân lấy tên từ chữ cái đầu của một thực thể. Ví dụ, C từ CUSTOMER (khách hàng), A từ ACCOUNT (kế toán), B từ BRANCH (chi nhánh) quan sát thấy lược đồ E/R trên đơm giản hơn so với lược đồ sử dụng quan hệ nhị phân. Các câu hỏi thường gặp . Lược đồ E/R cho 1 doanh nghiệp có thể được thiết kế bằng nhiều cách. Những tiêu chí nào cần được xem xét khi đưa ra quyết định Sử dụng quan hệ nhị thức hay tam thức Sử dụng thuộc tính hay thực thể Sử dụng phép gộp Sử dụng thực thể thường hay thực thể yếu Sử dụng thực thể hay quan hệ 61
  62. . Những nhược điểm của việc sử dụng hệ CSDL là gì? Những nhược điểm của sử dụng hệ CSDL là: Lỗi hệ thống: Nếu máy tính lưu trữ CSDL bị hỏng, tất cả người sử dụng CSDL sẽ phải chờ cho đến khi máy tính hoạt động bình thường trở lại. Thêm nữa, nếu phần mềm ứng dụng có ảnh hưởng tới CSDL bị lỗi, CSDL có thể bị phá hủy lâu dài. Vì vậy, khi hệ CSDL được sử dụng trong một tổ chức, tất cả các phần mềm tác động trực tiếp lên CSDL cần được xác định rõ. Tiếp đó, cần thường xuyên bảo dưỡng để đảm bảo tất cả các phần mềm khôngcó sai sót. Một tổ chức không sử dụng hệ CSDL thì không gặp phải các sự cố hệ thống vì các dữ liệu và phần mềm bị phân tán. Xung đột trong tổ chức: Sử dụng CSDL chung có thể dẫn đến xung đột trong tổ chức. Một số người sử dụng không muốn mất quyền kiểm soát đối với dữ liệu. Chia sẻ dữ liệu còn gây ra các vấn đề khác. Ví dụ, một nhóm người sử dụng có thể gây hại cho dữ liệu của nhóm khác. Sự cố của kế hoạch phát triển: một dự án phát triển phần mềm trong 1 tổ chức có thể gặp sự cố vì một số lý do. Ví dụ, lợi ích của hệ CSDL không thuyết phục được Ban quản trị hoặc thời gian hoàn thiện của dự án dài hơn cho phép. Yêu cầu nguồn nhân lực trình độ cao: việc đưa hệ CSDL vào hoạt động cần nhân viên trình độ cao để có thể kiểm soát CSDL. Chi phí chung cho nhân công sẽ bị đẩy cao vì chi phí cho ban quản trị CSDL là khoản chi phí lâu dài. Chi phí chung : Phí tổn cho việc sử dụng CSDL là rất lớn. nhu cầu về CSDL trong tổ chức đòi joir phải đầu tư cho cả phần mềm và phần cứng. Thêm nữa, chi phí vận hành cũng sẽ gia tăng. Ví dụ, công việc liên quan đến hệ quản trị CSDL diễn ra chậm hơn so với công việc không cần Hệ quản trị CSDL. . Vai trò là gì và chúng được biểu diễn thế nào trong lược đồ E/R? Vai trò là chức năng một thực thể thực hiện trong một mối quan hệ. Vai trò thường không được chỉ ra trên lược đồ E/R. Tuy nhiên, chúng cần được chỉ rõ khi cần làm sáng tỏ các quan hệ. Chúng ta có thể chỉ dẫn các vai trò trên lược đồ E/R bằng cách ghi tên trên các đường dẫn nối các thực thể và quan hệ. Ví dụ, trong lược đồ E/R dưới đây TEAM LEADER (trưởng nhóm) và TEAM MEMBER (thành viên nhóm) là những chỉ dẫn vai trò giữa thực thể EMPLOYEE (nhân viên) và quan hệ WORK-FOR (làm việc cho). 62
  63. Lược đồ E/R chỉ dẫn vai trò . Vì sao mô hình quan hệ lại phổ biến hơn mô hình mạng lưới và mô hình phân cấp? Mô hình quan hệ không sử dụng con trỏ hoặc đường dẫn như mô hình mạng lưới và mô hình phân cấp. Thay vào đó, mô hình quan hệ nhận dạng các bản ghi sử dụng giá trị lưu trong đó. Điều đó cho phép sử dụng các toán tử trong mô hình quan hệ. . Những nhiệm vụ chính của nhà quản trị CSDL là gì? Nhiệm vụ chính của nhà quản trị CSDL là: Định nghĩa sơ đồ: Nhà quản trị CSDL tạo ra các sơ đồ CSDl bằng cách viết định nghĩa cho cấu truc logic của CSDL. Những định nghĩa này sau đó sẽ được chuyển thành các bảng trong CSDL. Định nghĩa cấu trúc bộ nhớ và phương pháp truy nhập: nhà quản trị CSDL tạo ra cấu trúc bộ nhớ và phương pháp truy nhập bằng cách viết định nghĩa cho chúng. Những định nghĩa này sau đó được chuyển thành cấu trúc bộ nhớ và phương pháp truy nhập. Chỉnh sửa sơ đồ và tổ chức vật lý: Nhà quản trị CSDL chỉnh sửa sơ đồ dữ liệu và bộ nhớ vật lý khi cần thiết. Việc này được thực hiện nhờ viết các định nghĩa sử dụng bởi trình biên dịch ngôn ngữ định nghĩa dữ liệu hay bộ nhớ dữ liệu và trình biên dịch ngôn ngữ định nghĩa để thay đổi. Cấp quyền truy nhập dữ liệu: Nhà quản trị CSDL cần chỉ rõ quyền hạn sử dụng cho mỗi người sử dụng. Điều đó giúp kiểm soát sự sử dụng CSDL, đồng thời hạn chế việc truy cập vào một số vùng của CSDL. Chỉ rõ những ràng buộc về tính nhất quán: cần chỉ rõ sự ràng buộc về nhất quán đối với CSDL. Những ràng buộc này được lưu trong 1 cấu trúc hệ thống đặc biệt. 63
  64. Luyện tập 1. Người sử dụng hệ quản trị CSDL nào tham gia thiết kế và bảo trì CSDL và bảo mật CSDL? 2. Mức cao nhất rong cấu trúc của 1 hệ quản trị CSDL là mức ___. 3. Thành phần nào của hệ quản trị CSDL xử lý thao tác nhập và xuất vật lý với dữ liệu? 4. Một ___ là một đặc điểm của một thực thể cho sẵn. 5. Toán tử quan hệ nào sau đây tách bộ dữ liệu hay hàng cụ thể ra khỏi quan hệ cho trước, dưới 1 điều kiện nào đó? a. Phép chiếu b. Phép chọn c. Phép kết nối d. Phép chia 6. ___ là sự rút gọn trong đó ta sử dụng mối quan hệ như thực thể bậc cao hơn. 7. Một khách hàng có thể có nhiều tài khoản trong một ngân hàng nhưng một tài khoản chỉ có thể dùng cho 1 khách hàng. Đây là quan hệ ___. 8. Đúng hay sai? Tập thực thể con tồn tại ngay cả khi độc lập với tập thực thể cha. 64
  65. 9. Nối toán tử quan hệ với đúng mô tả: Toán tử quan hệ Mô tả 1. Phép chiếu A. Tách các thuộc tính hay hàng cụ thể khỏi quan hệ cho trước 2. Phép chia B. Sử dụng hai quan hệ để tạo quan hệ mới chứa giá trị của 1 quan hệ mà gắn với giá trị của quan hệ kia. 3. Phép kết nối C. Dùng hai quan hệ để tạo quan hệ mới chứa tất cả các kết hợp có thể của các bộ, mỗi bộ từ một trong hai quan hệ. 4. Phép nhân D. Sử dụng hai quan hệ để tạo quan hệ mới chứa tất cả các kết hợp có thể của các bộ, mỗi bộ từ 1 quan hệ sao cho thỏa mãn điều kiện cụ thể. 10. Trong mô hình nào dữ liệu được biểu diễn dưới dạng cây? 11. Vẽ lược đồ E/R cho trường hợp sau: Một tổ chức có hai loại nhân viên, nhận lương hoặc nhận tiền công. Cả hai loại đều có những đặc tính chung là mã nhân viên, tên và địa chỉ. Tuy nhiên, nhân viên nhận lương có những đặc tính kèm theo là lương cơ bản, phụ cấp và trợ cấp y tế. Nhân viên làm công óc những đặc tính riêng là tiền công theo ngày và tiền công làm ngoài giờ. 65
  66. Bài 1D: Thực hành 66
  67. Bài tập Bài 1: New Era là một công ty chế tạo máy có hai nguồn cung ứng. Nhà cung ứng thứ nhất đồng ý thanh toán tín dụng, nhà cung ứng thứ hai chỉ cho phép chi trả bằng tiền mặt trước khi giao hàng. Công ty muốn lưu trữ thông tin về hai nhà cung ứng một cách riêng rẽ. Đối với nhà cung ứng thanh toán qua tín dụng, “credit period” (thời hạn tín dụng) và “credit limit” (mức tín dụng) cần được ghi lại. Đối với nhà cung ứng thanh toán tiền mặt, “date of payment” (ngày thanh toán) cần được ghi lại. John là quản trị viên CSDL tại New Era. Anh cần vẽ lược đồ E/R thể hiện tình huống trên. Bài 2: Ron Floyd là quản trị viên CSDL mới vào làm ở ngân hàng Standard. Ban quản trị của ngân hàng muốn vi tính hóa các hoạt động ngân hàng. Theo chính sách của của ngân hàng, một khách hàng có thể có nhiều tài khoản nhưng một tài khoản không thể chung cho nhiều khách hàng. Bước đầu thiết kế CSDL, Ron được yêu cầu tạo lược đồ E/R thể hiện quan hệ giữa khách hàng và tài khoản của họ. Bài 3: Red Sky Systems là một công ty IT mới thành lập. Công ty chuyên thực hienj các dự án phần mềm cho khách hàng. Công ty duy trì 1 CSDL gồm bản ghi về các nhân viên và dự án. Mọi thông tin liên quan đến nhân viên lưu trong 1 bảng có tên là Employee (nhân viên). Thông tin về dự án lưu trong bảng có tên Project (dự án). Một bảng khác có tên là Assignment (phân công) lưu trữ thông tin về dự án nào được giao cho nhân viên nào. Ba bảng đó như sau: EMPLOYEE 67
  68. PROJECT ASSIGMENT Chris là quản trị viên CSDL tại Red Sky Systems. Anh muốn chỉ ra các điều sau: 1. Tất cả chi tiết về nhân viên trong bộ phận tài chính 2. Tên và tuôit của nhân viên. 3. Tên dự án, tên nhân viên và bộ phận làm việc của tất cả các nhân viên 4. Tên của các nhân viên dưới 25 tuôit và có mã nhân viên lớn hơn 100. Chỉ ra cách để thực hiện các nhiệm vụ trên và kết quả của chúng. 68
  69. Bài 4: Jack là chủ một cửa hàng bách hóa. Anh có những khách hàng thường xuyên mua rau quả, đồng thời cũng có những người cung cấp rau quả thường xuyên. Anh đặt mã khách hàng và mã cung cấp cho những khách hàng và nhà cung cấp thường xuyên của mình để đơn giản hóa việc kinh doanh. Jack tạo một bảng để lưu các bản ghi về khách hàng thường xuyên và mặt hàng họ mua. Anh cũng lập một bảng khác để lưu các bản ghi về những nguồn cung ứng thường xuyên và sản phẩm mà họ cung cấp. Jack cần tạo 1 bảng thứ 3, Customer-Supplier (khách hàng-nhà cung cấp) biểu diễn các bản ghi về khách hàng thường xuyên và sản phẩm họ mua cùng với nguồn cung cấp mặt hàng đó. Chỉ ra cách để Jack có thể tạo bảng thứ 3 và kết quả của nó. Chú ý: Sử dụng bản ghi Customer (khách hàng) và bản ghi Supplier (Nhà cung cấp) để giải bài tập. Bản ghi Customer Bản ghi Supplier 69
  70. Bài tập về nhà 1. Khái niệm nào sau đây định nghĩa liên kết giữa các thực thể? a. Lược đồ E/R b. Tập thực thể cha c. Quan hệ d. Thuộc tính 2. Khái niệm nào dưới đây thể hiện đặc tính của 1 thực thể? a. Tập thực thể con b. Thuộc tính c. Lược đồ E/R d. Tập thực thể cha 3. Kiểu quan hệ nào sau đây được thể hiện nếu 1 sinh viên đăng ký 2 môn học cùng 1 lúc? a. Một – một b. Nhiều – một c. Một – nhiều d. Nhiều – nhiều 4. Trong mô hình nào dưới đây dữ liệu được biểu diễn dưới dạng cây? a. Mô hình phân cấp b. Mô hình quan hệ c. Mô hình thực thể - quan hệ d. Mô hình mạng lưới 5. Toán tử quan hệ nào được dùng để tách một cột ra khỏi quan hệ cho trước? a. Phép chọn b. Phép nhân c. Phép chia d. Phép chiếu 70
  71. 6. Ai là người thực hiện nhiệm vụ thay thế khối dữ liệu a. Quản trị viên CSDL b. Người quản lý file c. Người quản lý ổ đĩa d. Người quản lý CSDL 7. Giai đoạn cuối cùng của chu kỳ phát triển CSDL? a. Xác định yêu cầu b. Đánh giá và bảo trì CSDL c. Thiết kế khái niệm d. Thực thi 8. Nhược điểm của phương pháp truyền thống trong xử lý dữ liệu? a. Dữ liệu nhất quán b. Giữ vững tiêu chuẩn c. Những hạn chế trong bảo mật d. Gấp đôi số lượng dữ liệu cần thiết 9. Thực thể phụ thuộc là: a. Thực thể yếu b. Thực thể thường c. Thực thể con d. Thực thể cha 10. khái niệm nào sau đây thể hiện vùng chứa của dữ liệu từ đó 1 hoặc nhiều thuộc tính lấy giá trị thực của nó? a. Quan hệ b. Thực thể c. Miền d. Bảng 71
  72. Bài 2A: Thiết kế CSDL logic Trong bài này, chúng ta nghiên cứu: . Vẽ lược đồ E/R cho các bản trong quan hệ với các chi tiết: Thực thể thường Thuộc tính Quan hệ Thực thể yếu Thực thể con và thực thể cha . Phân biệt các khóa . Định nghĩa Chuyên biệt hóa và Tổng quát hóa 72
  73. Mô hình khái niệm Mô hình khái niệm phản ánh các thực thể và quan hệ của chúng dựa trên những yêu cầu về xử lý dữ liệu của tổ chức. Để phát triển một CSDL thỏa mãn nhu cầu thông tin cả trong hiện tại lẫn tương lai, trươc hết chúng ta cần thiết kế một mô hình khái niệm cho CSDL. Thiết kế mô hình khái niệm không liên quan tới giai đoạn thực thi và vận hành của CSDL. Mô hình khái niệm có thể ánh xạ tới mô hình quan hệ, phân cấp hay mạng lưới. Nó độc lập với từng ứng dụng đơn lẻ, hệ quản trị CSDL, phần cứng và bộ nhớ vật lý của dữ liệu. Phân tích dữ liệu là bước đầu tiên trong thiết kế mô hình hái niệm, bắt đầu với thu thập thông tin về dữ liệu. Bước này thường bao gồm một bản điều tra hoặc một phương pháp tương tự để có được một danh sách dữ liệu mà tổ chức cần. Các biểu mẫu, hóa đơn, báo cáo là những điểm khởi đầu để thu thập dữ liệu. Bước tiếp theo là kiểm tra suqj vận hành và xử lý dữ liệu và loại bỏ các dữ liệu trùng lặp hoặc không hợp lý. Phân tích dữ liệu bao gồm nhận biết các thực thể, thuộc tính của chúng và mối quan hệ giữa các thực thể dựa trên dữ liệu thu thập được. Sau khi hoàn thành phân tích dữ liệu, chúng ta vẽ lược đồ thực thể - quan hệ. Lược đồ tổng quan về thiết kế, dễ dàng truyền đạt ý tưởng cho người sử dụng. Ánh xạ của vật thực cho các biểu tượng của thực thể - quan hệ là chủ quan. Thông thường, những đối tượng ban đầu là thuộc tính, sau khi duyệt lại thiết kế sẽ trở thành thực thể. Vì vạy, không có quy luật rõ ràng để nhận biết một đối tượng là thực thể, thuộc tính hay quan hệ. Ánh xạ lược đồ thực thể - quan hệ tới bảng CSDL phù hợp với lược đồ E/R có thể được biểu diễn bởi tập hợp các bảng trong hệ thống quan hệ. Hãy xem xét sự ánh xạ của lược đồ thực thể - quan hệ tới bảng trong quan hệ với: . Thực thể thường . Thuộc tính . Quan hệ . Thực thể yếu . Thực thể cha và thực thể con 73
  74. Thực thể thường Cần nhắc lại rằng thực thể thường không phụ thuộc. Chúng có thể tồn tại độc lập với các thực thể khác. Chúng là một “khối hợp nhất” của CSDL. Mỗi thực thể thường ánh xạ tới 1 bảng. Ví dụ, quan sát lược đồ E/R dưới đây: Thực thể thường Thực thể thường STUDENT (sinh viên) và BOOKS (sách) ánh xạ tới 2 bảng riêng biệt. Thuộc tính Mỗi đặc tính hoặc thuộc tính thể hiện trong lược đồ E/R ánh xạ tới một thuộc tính của bảng tương ứng. Đặc tính hoặc thuộc tính của STUDENT và BOOKS ánh xạ tới thuộc tính của bảng thích hợp. Thuộc tính 74
  75. Khóa chính của bảng được xác định là khóa của lược đồ E/R, ROLL_NO (số hồ sơ) và CODE (mã số). Ghi nhớ rằng khóa phải xác định được duy nhất mỗi bộ dữ liệu trong bảng. Quan hệ Ánh xạ của quan hệ dựa vào kiểu quan hệ, được nói đến trong phần trước. Mỗi kiểu dữ liệu ánh xạ tới các bảng theo một cách thức khác nhau trong hệ quản trị CSDL hệ thống. Nguyên lý quan trọng nhất là tạo các bảng sao cho thông tin từ thế giới thực được lưu trữ và phục hồi theo cách tối ưu; theo đó, số lượng bảng ít nhất , số lượng thuộc tính ít nhất. trong hệ thống quan hệ, phép kết nối phục hồi tất cả thông tin bằng cách kết hợp hai hay nhiều bảng. Quan hệ một – một Trong quan hệ một – một, mỗi thể hiện thực thể có thể liên kết với chỉ 1 thể hiện của thực thể liên quan. Ví dụ, cho rằng một sinh viên chỉ làm một đề tài và không sinh viên nào khác làm cùng đề tài. Như vậy, đây là mối quan hệ một – một giữ sinh viên và đề tài. Chúng ta biểu diễn quan hệ giữa hai thực thể Student (Sinh viên ) và Project (đề tài) dưới dạng lược đồ E/R như sau: Quan hệ một - một Kiểu quan hệ này có thể phân tích bằng nhiều cách. Một cách là phân tích như trong quan hệ một – nhiều bằng cách giữ khóa phụ trong một trong hai bảng. cách khác là hợp nhất hai bảng thành một bảng để truy cập nhanh hơn. Ví dụ, nếu truy vấn yêu cầu dữ liệu từ hai bảng Student và Project, cách tốt nhất là hợp nhất hai bảng để cải thiện hoạt động truy vấn. 75
  76. Quan hệ một – nhiều Trong quan hệ một – nhiều, một thể hiện của một thực thể có thể liên kết hơn 1 thể hiện của thực thể liên quan. Ví dụ, một phòng có nhiều hơn một nhân viên. 76
  77. Chúng ta biểu diễn quan hệ giữa nhân viên và phòng theo dạng lược đồ E/R như sau: Ánh xạ quan hệ một – nhiều Dept_ID (ký hiệu phòng) của một nhân viên có thể lưu trữ trong bảng Employee như trên. Ví thể, Dept_ID trong bảng Employee là khóa phụ trong bảng Employee. Quan hệ nhiều – nhiều Quan sát lược đồ sau: Quan hệ nhiều – nhiều 77
  78. Một sinh viên có thể mượn nhiều quyển sách, một quyển sách có thể mượn bởi nhiều sinh viên. Quan hệ ISSUES (cho mượn) liên quan đến cả sinh viên và sách. ISSUES cũng có nhiều thuộc tính riêng biệt, ví dụ, ngày mượn sách và ngày trả sách. Vì thế, chúng ta cần hiểu rằng thuộc tính không chỉ thuộc về duy nhất một thực thể. Chúng còn thuộc về mối quan hệ. mối quan hệ ISSUES là quan hệ nhiều – nhiều. Bảng ISSUE phải bao gồm khóa chính của cả hai bảng STUDENT và BOOKS (ROLL_NO và CODE). Đây là khóa phụ của bảng ISSUE, giúp nối hai bảng STUDENT và BOOKS. Ánh xạ quan hệ Nhớ lại phép kết nối nói đến trong đại số quan hệ. Nếu một người sử dụng muốn biết cuốn sách nào được mượn bởi sinh viên nào và vào ngày nào, chúng ta có thể sử dụng khóa phụ trong bảng ISSUE để kết nối cả ba bảng. Kết quả thu được là bản mô tả hoàn chỉnh của việc cho mượn sách như sau: Bảng kết nối Khóa chính của bảng ISSUE là gì? Có hai khả năng. Thứ nhất là kết hợp hai khóa phụ (ROLL_NO và CODE) nếu sự kết hợp nhận dạng duy nhất được mọi hàng trong bảng. Khóa này được xem như khóa phức hợp, tạo bởi nhiều hơn một thuộc tính. Khả năng thứ hai là tạo một thuộc tính mới cho khóa chính, ví dụ ISSUENUM. 78
  79. Chúng ta có thể biểu diễn kiểu quan hệ giữa hai thực thể trong lược đồ thực thể - quan hệ bằng những ký hiệu tượng trưng. Một thực thể có thể kết hợp với một, nhiều hoặc không kết hợp với thực thể khác. Thực thể yếu Thực thể yếu là thực thể tồn tại phụ thuộc vào thực thể khác. Ví dụ, những phụ thuộc của một nhân viên. Thực thể yếu 79
  80. Trong ví dụ trên, xhungs ta có thực thể yếu là DEPENDENT (phụ thuộc) phụ thuộc vào thực thể EMPLOYEE (nhân viên). Thực thể DEPENDENT có thể được ánh xạ tới các bảng riêng biệt như sau Thực thể yếu ánh xạ tới bảng Tập thực thể con và tập thực thể cha Tập thực thể con là tập con của một thực thể khác. Tập thực thể con luôn phụ thuộc vào tập thực thể cha để tồn tại. Tập thực thể con và tập thực thể cha Mỗi kiểu thực thể ( thực thể con và thực thể cha) ánh xạ tới một bảng riêng biệt. Ví dụ: EMPLOYEE (nhân viên) 80
  81. HOURLY EMPLOYEE SALARIED EMPLOYEE (nhân viên làm theo giờ) (nhân viên làm hưởng lương) Ánh xạ thực thể con và thực thể cha Khóa chính của thực thể cha là khóa phụ của thực thể con. Nó tạo ra một đường dẫn giữa hai thực thể. Khóa phụ của thực thể con cung đồng thời là khóa chính của nó. Thuộc tính được mã hóa nằm trong bảng EMPLOYEE chỉ ra thực thể con. Ví dụ, “S” cho nhân viên làm hưởng lương, “H” cho nhân viên làm theo giờ. HOURLY EMPLOYEE SALARIED EMPLOYEE Cấu trúc bảng với thuộc tính được mã hóa Thủ thuật trong thiết kế CSDL logic Thuộc tính Không tạo thêm những thuộc tính không cần thiết. Một thuộc tính phải đáp ứng ba mục đích: . Nhận dạng thực thể chủ . Rút ra thực thể khác . Dơn giản hóa mô tả của một thực thể 81
  82. SALES (bán hàng) Thuộc tính của một bảng Nếu các thực thể có chung nhiều thuộc tính, tiến hành hợp nhất các thực thể. Lưu ý rằng mục tiêu chính khi thiết kế CSDL là tối thiểu số lượng bảng với tối thiểu số lượng thuộc tính. Hợp nhất thực thể có thuộc tính chung Khóa Một Hệ Quản trị CSDL quan hệ sử dụng định chỉ kết hợp, nhận dạng và xác định vị trí các hàng bằng giá trị. Địa chỉ vật lý là vô hình đối với người sử dụng. Vì thế, hệ thống quan hệ yêu cầu các khóa phải nhận dạng duy nhất được các hàng trong bảng. Có nhiều loại khóa khác nhau: . Khóa chính . Khóa phụ . Khóa chọn . Khóa thay đổi . Khóa phức hợp 82
  83. Bất cứ thuộc tính nào (hay tập hợp thuộc tính) xác định duy nhất một hàng trong bảng là một lựa chọn cho khóa chính của bảng. Thuộc tính như vậy gọi là khóa chọn. một trong những khóa chọn được dùng làm khóa chính, dựa vào mức độ phổ biến, mức độ sử dụng. Thuộc tính nào là lựa chọn cho khóa chính nhưng không trở thành khóa chính được gọi là khóa thay đổi. Khi khóa xác định duy nhất các hàng trong bảng được tạo nên bởi nhiều thuộc tính gọi là khóa phức hợp. Khóa phụ luôn luôn biểu diễn quan hệ. Cần phải hiểu rằng khóa chính là cách duy nhất để xác định các hàng trong bảng. Vì vậy, giá trị NULL không được phép làm khóa chính. Nếu làm như vậy, sẽ rất khó để xác định được duy nhất các hàng. Quan sát bảng VEHICLE (phương tiện giao thông) sau: Khóa chọn, khóa chính và khóa thay đổi Trong bảng trên, ENGINE# và REGN# là duy nhất ở mỗi bộ dữ liệu. Vì thế, chúng đều là khóa chọn. Nếu ENGINE# được chọn là khóa chính, REGN# sẽ là khóa thay đổi. Khóa có thể đơn giản hoặc phức hợp. Khóa đơn giản tạo nên bởi 1 thuộc tính. Khóa phức hợp, ngược lại, gồm hai hoặc nhiều thuộc tính. Quan sát bảng Accounts (tài khoản) Trong ví dụ trên, nếu chỉ có một giao dịch được tiến hành đối với một tài khoản tại một thời điểm. chúng ta có thể chon AccountNumber (số tài khoản), TransactionDate (ngày giao dịch), TransactionTime (giờ giao dịch) làm khóa phức hợp. 83
  84. Thực thể Một số thuộc tính đòi hỏi thuộc tính nâng cao để xác định tính chất trong quá trình thiết kế CSDL và trở thành thực thể. Chúng ta có thể tạo thực thể mới để biểu diễn các nhóm thuộc tính lặp lại nhiều lần. Ví dụ, thuộc tính “ address” (địa chỉ) có thể lấy các thuộc tính nâng cao như “block” (khu nhà), “street” (đường), “city” (thành phố), “state” (bang) và “pin” (mã số cá nhân). Trong trường hợp này, thuộc tính “address” trở thành thực thể như trong ví dụ dưới đây: Thuộc tính có thể trở thành thực thể Thực thể con Xem ví dụ sau. Thực thể PLANT (phân xưởng) có các thuộc tính thể hiện trong lược đồ sau. Tuy nhiên, một vài thuộc tính không áp dụng được cho tất cả các phân xưởng. Ví dụ, thuộc tính “pressure” (áp suất) chỉ áp dụng cho phân xưởng hơi nước. trong trường hợp này, tất cả các phân xưởng không sử dụng hơi nước có giá trị NULL trong cột “pressure”. Một cách hiệu quả là thay thế thuộc tính bằng thực thể con. Đây là phương thức chuyên biệt hóa. Chuyên biệt hóa là kết quả của việc lấy tập con của một thực thể bậc cao hơn để tạo thành tập thực thể bậc thấp hơn. Trong ví dụ này, PLANT là tập thực thể bậc cao hơn, trong khi HYDRO (khí Hydro), STEAM (hơi nước) và NUCLEAR (hạt nhân) là các tập thực thể bậc thấp hơn. 84
  85. Chuyên biệt hóa Quan sát sự đối lập của ví dụ trên. Hai thực thể , SAVING – ACCOUNT (tài khoản tiết kiệm) và CURRENT – ACCOUNT (tài khoản vãng lai), có những thuộc tính chung. Trong trường hợp này, lựa chọn tốt hơn là tạo một thực thể cha để đơn giản hóa đa quy chiếu. Điều đó gọi là tổng quát hóa. Tỏng quát hóa là kết quả của việc dùng tổ hợp chủa hai hay nhiều tập thực thể bậc thấp hơn để tạo ra tập thực thể bậc cao hơn. Chú ý: Tổng quát hóa nêu bật sự giống nhau giữa tập thực thể bậc thấp hơn và che khuất sự khác biệt. 85
  86. Tổng quát hóa Tổng quát hóa là đối lập của chuyên biệt hóa. Trong tổng quát hóa, tát cả thực thể bậc cao hơn đồng thời là thực thể bạc thấp hơn. Ví dụ, một tài khoản là thực thể bậc cao hơn, tài khoản tiết kiệm và tài khoản vãng lai là thực thể bậc thấp hơn. Chuyên biệt hóa không có ràng buộc này. Ví dụ, tất cả các tài khoản phải là tài khoản tiết kiệm hoặc tài khoản vãng lai. 86
  87. Trong bài này, học viên cần nắm được: . Mô hình khái niệm phản ánh thực thể và quan hệ của chúng. Phân tích thông tin giúp xác định thực thể và quan hệ. Mô hình khái niệm độc lập vớ hệ thống mà nó thực thi. . Thực thể thường không phụ thuộc. chúng có thể tồn tại độc lập, riêng rẽ với thực thể khác. . Mỗi thực thể ánh xạ tới một bảng Mỗi thuộc tính trong lược đồ E/R ánh xạ một thuộc tính trong bảng. . Thực thể với thuộc tính chung nên hợp nhất với nhau. Các thuộc tính có thể lấy thuộc tính nâng cao và trở thành thực thể. . Ánh xạ của quan hệ dựa vào kiểu quan hệ. Mỗi kiểu quan hệ ánh xạ tới bảng theo một cách riêng trong hệ Quản trị CSDL quan hệ. . Trong quan hệ một – một, thể hiện của thuộc tính có thể liên kết với chỉ một thể hiện của thực thể liên quan. . Trong quan hệ một - nhiều, một hiển thị của thực thể có liên kết với nhiều hơn một hiển thị của thực thể khác. . Quan hệ nhiều – nhiều ánh xạ tới bảng. Quan hệ một – một không phổ biến và có thể ánh xạ tới khóa phụ của bảng. . Thực thể yếu là thực thể tồn tại phụ thuộc vào thực thể khác. . Thực thể con là tập con của thực thể khác. Thực thể con luôn tồn tại phụ thuộc vào thực thể cha. . Khóa chính của thực thể cha là khóa phụ của thực thể con, chúng tại ra đường dẫn giữa hai thực thể. . Khóa chọn là những lựa chọn cho khóa chính. Khóa thay đổi là những khóa chọn không được chọn là khóa chính. . Những thuộc tính không bắt buộc nên thay bằng thực thể con. Đó là bước chuyên biệt hóa. . Để đơn giản hóa việc đổi chiếu đa chiều, cần tạo ra thực thể cha mới. Đay là bước tổng quát hóa. 87
  88. Bài 2B: Chuẩn hóa và phi chuẩn hóa CSDL Trong phần này, chúng ta nghiên cứu về: . Mô tả phương pháp top-down và bottom-up . Mô tả sự dư thừa dữ liệu . Mô tả dạng chính tắc thứ nhất, thứ hai và thứ ba. . Mô tả dạng chính tắc Boyce – Codd . Nhận thức được yêu cầu phi chuẩn hóa. Chú ý: Bạn đã đăng ký tại www.nittstudent.com chưa? 88
  89. Chuẩn hóa Phương pháp Top-Down và Bottom-Up. Trong phần trước, chúng ta tìm hiểu về thiết kế CSDL logic sử dụng lược đồ E/R Có hai phương pháp tiếp cận thiết kế CSDL logic: . Phương pháp top – down . Phương pháp bottom – up Kỹ thuật mô hình hóa thực thể quan hệ là phương pháp top – down, bao gồm nhận dạng thực thể, quan hệ và thuộc tính, vẽ lược đồ E/R, ánh xạ lược đồ tới bảng. Trong phần này, chúng ta nghiên cứu về Chuẩn hóa, phương pháp bottom – up. Chuẩn hóa là sự phân giải từng các bản ghi phức tạp thành bản ghi đơn giản. Chuẩn hóa làm giảm dư thừa dữ liệu theo nguyên lý phân giải không gây mất mát. Phân giải không gây mất mát là sự chia nhỏ bảng thành các bảng nhỏ hơn mà không làm mất đi thông tin dữ liệu. Thông thường, quy trình chuẩn hóa giống như quy trình vẽ lược đồ E/R. Tuy nhiên, tùy vào mức độ chính xác và chi tiết của lược đồ, quy trình chuẩn hóa có thể không cần thiết. Các bảng xây dựng từ lược đồ E/R có thể đã được chuẩn hóa. Trên thực tế, ít nhất chúng cũng ở dạng chuẩn thứ nhất. Những người chuộng phương pháp bottom – up thường không qua bước mô hình hóa thực thể - dữ liệu. Sau khi hoàn thành lưu trữ dữ liệu tại CSDL, dữ liệu này được chuẩn hóa. Phương pháp top down là cách hữu hiệu nhất cho các thiết kế hiện tại. Dư thừa dữ liệu Dư thừa dữ liệu nghĩa là sự lặp đi lặp lại cùng một dữ liệu. Dư thừa làm tăng thời gian cần thiết để cập nhật, thêm hoặc bớt dữ liệu, đồng thời tăng dung lượng đã sử dụng của ổ đĩa. 89
  90. Ví dụ, quan sát cấu trúc của bảng Student (sinh viên): STUDENT Dữ liệu mẫu của bảng Student như sau: Các thông tin chi tiết về sinh viên và điểm của họ được ghi trong bảng Student. Thông tin chi tiết về sinh viên như StudentId (mã số sinh viên), StudentName (tên), StudentAddress (dịa chỉ) được lặp lại trong khi vào điểm của sinh viên qua từng học kỳ. Dữ liệu lặp là dư thừa. Thêm vào đó, nếu cần chỉnh sửa địa chỉ của một sinh viên, chúng ta sẽ phải chỉnh sửa trong nhiều hàng về sinh viên đó. Nếu không hoàn thành được, thông tin giữa các hàng sẽ bị sai lệch. Nếu có1000 sinh viên và thông tin về mỗi sinh viên chiếm 200 bytes dung lượng thì sẽ có 200000 bytes bị lặp. Như vậy, bộ nhớ sẽ bị sử dụng không hợp lý. 90
  91. Dư thừa có thể gây ra: . Sự bất thường trong cập nhật dữ liệu: chèn, chỉnh sửa, xóa dữ liệu có thể gây ra sai lệch . Thiếu nhất quán: lỗi thường xảy ra khi dữ kiện bị lặp . Sử dụng không hợp lý khoảng nhớ của ổ dĩa Chúng ta có thể sử dụng kinh nghiệm hoặc hiểu biết chung để xây dựng CSDL. Tuy nhiên, chúng ta cũng có thể sử dụng phương pháp hệ thống như chuẩn hóa để giảm thiểu dư thừa và lặp lại dữ liệu. Sự cần thiết của chuẩn hóa Chuẩn hóa là 1 phương pháp khoa học dùng để phân cấu trúc của bảng thành các cấu trúc bảng đơn giản hơn theo những quy tắc nhất định. Sử dụng phương pháp này, chúng ta có thể giảm thiểu dư thừa trong bảng và bớt những lỗi thuộc về thiếu nhất quán và sử dụng bộ nhớ. Chúng ta cũng được đảm bảo rằng thông tin không bị thất lạc. Chuẩn hóa mang lại nhiều lợi ích. Nó đẩy nhanh quá trình phân loại dữ liệu và tạo mục lục, nhiều phân mục hơn, ít mục cho bảng, ít NULL, thu gọn CSDL . Chuẩn hóa đơn giản cấu truc của bảng. việc thực hiện tác vụ được liên kết trực tiếp với thiết kế CSDL. Thiết kế sơ sài gây trở ngại cho hoạt động của hệ thống. thiết kế logic tạo nền móng cho CSDL tối ưu. Những quy tắc cho một thiết kế CSDL đạt chuẩn: . Mỗi bảng phải có một ký hiệu nhận dạng. . Mỗi bảng chỉ nên lưu dữ liệu cho một kiểu thực thể. . Nên tránh các cột có giá trị NULL . Nên tránh lặp lại các cột hoặc các giá trị. 91
  92. Các dạng chuẩn khác nhau và phi chuẩn hóa Các dạng chuẩn Kết quả của chuẩn hóa là sự tạo thành các bảng thỏa mãn những quy tắc nêu trên và thể hiện ở các dạng chuẩn hóa nhất định. Các dạng chuẩn hóa được dùng để đảm bảo các lỗi bất thường hoặc thiếu nhất quán không xảy ra đối với CSDL. Một cấu trúc bảng luôn ở một dạng chuẩn. một vài dạng chuẩn được đề cập đến ở đây. Những dạng chuẩn quan trọng và phổ biến nhất là: . Dạng chuẩn thứ nhất (1 NF) . Dạng chuẩn thứ hai (2 NF) . Dạng chuẩn thứ ba (3 NF) . Dạng chuẩn (chính tắc) Boyce – Codd. (BCNF) 92
  93. QUAN HỆ CHƯA CHUẨN HÓA 1 NF 2NF 3NF BCNF Các dạng chuẩn thứ nhất, thứ hai và thứ ba lần đầu được định nghĩa bởi tiến sĩ E.F Codd. Sau đó, Boyce và Codd giưois thiệu một dạng chuẩn hóa khác là dạng chính tắc Boyce – Codd. Như trong hình vẽ, quan hệ ở dạng chuẩn thứ nhất cũng có thể ở dạng thứ hai hay thứ ba. Phụ thuộc hàm. Khái niệm chuẩn hóa dựa trên khái niệm ban đầu về phụ thuộc hàm. Trước hết, hãy tìm hiểu về khái niêm phụ thuộc hàm. Có một quan hệ ( nhắc lại rằng bảng cũng có thể gọi là quan hệ) R, thuộc tính A phụ thuộc hàm vào thuộc tính B nếu mỗi giá trị của A trong R liên kết chính xác với một giá trị của B. Nói cách khác, thuộc tính A phụ thuộc hàm vào thuộc tính B khi và chỉ khi với mỗi giá trị của B, ta xác định được duy nhất một giá trị của A. Thuộc tính B gọi là định thức. 93
  94. Quan sát bảng Employee (nhân viên): Employee Cho một giá trị của Code (mã số), chỉ có duy nhất một giá trị thích hợp của Name (tên). Ví dụ, với Code E1 cho chính xác 1 giá trị Name là Mac. Do đó, Name phụ thuộc hàm Code. Tương tự, chỉ có 1 giá trị City cho mỗi giá trị của Code. Vì vậy, thuộc tính City phụ thuộc hàm vào thuộc tính Code. Thuộc tính Code là định thức. Chúng ta có thể nói rằng Code quyết định City và Name. Chúng ta đã có những khái niệm cơ bản về phụ thuộc hàm. Trong ví dụ trên về thực thể EMPLOYEE, thuộc tính Code là duy nhất ở từng bộ. Do đó, đó là một khóa chon. Mọi thuộc tính phụ thuộc hàm vào khóa. Tuy nhiên, phụ thuộc hàm không đòi hỏi 1 thuộc tính phải là khóa mới có thể khiến các thuộc tính khác phụ thuộc hàm. Ví dụ sau giải thích ván đề này. Giả sử chúng ta cần lưu thông tin về điểm của sinh viên trong chương trình đào tạo từ xa. Thuộc tính cần lưu trữ là: ID : mã sinh viên để gửi phiếu điểm. CITY : tên thành phố C_CODE : mã môn học SCORE : tổng điểm của sinh viên Chú ý rằng thành phố phiếu điểm được gửi đến cũng là nơi sinh viên đang ở. Vì thế, CITY phụ thuộc hàm ID. Nhưng ID không phải là khóa chọn. Khóa chọn trong trường hợp này là sự kết hợp giữa ID và C_CODE. Thuộc tính ID và C_CODE là khóa ngoài đối chiếu bảng giữ thông tin khách hàng và sản phẩm. Vì vậy, mặc dù ID không phải là khóa chọn, các thuộc tính khác vẫn phụ thuộc hàm vào nó. Phụ thuộc hàm cũng có thể được định nghĩa như sau: Cho quan hệ R, thuộc tính A phụ thuộc hàm B khi và chỉ khi hai bộ dữ liệu của R nhận giá trị của B cũng nhận cả giá trị của A. 94
  95. Cho rằng thông tin về điểm lưu trữ trong bảng SCORES_INFO (thông tin điểm) như trong bảng sau. Chú ý rằng với mỗi giá trị cụ thể của ID, giá trị của CITY là như nhau trong các bộ. SCORES_INFO Phụ thuộc hàm là một phần của quá trình tìm hiểu ý nghĩa của dữ liệu. Ví dụ, trong quan hệ SCORES_INFO, CITY phụ thuộc hàm ID nghĩa là môtx sinh viên sống ở duy nhất 1 thành phố. Điều đó có nghĩa là: . Có một ràng buộc trong thực thế mà CSDL mô phỏng – mỗi sinh viên chỉ sống ở 1 thành phố. . Ràng buộc này phải thấy được trong CSDL. Đồng thời, chú ý rằng phụ thuộc hàm phản ánh quan hệ nhiều – một. Phụ thuộc hàm cũng có nghĩa là nhiều sinh viên có thể cùng sống trong một thành phố nhưng một sinh viên chỉ có thể sống ở 1 thành phố mà thôi. Các khái niệm về chuẩn hóa sẽ đưa ra những định nghĩa rất đơn giản về sự phụ thuộc hàm. Dạng chuẩn thứ nhất (1 NF) Một bảng ở dạng chuẩn thứ nhất nếu mỗi ô trong bảng chie chứa duy nhất một giá trị. 95
  96. Quan sát bảng Project (dự án): Project: Dữ liệu trong bảng chưa được chuẩn hóa vì các ô trong ProjCode (mã dự án) và Hours (Giờ) có nhiều hơn một giá trị. Áp dụng định nghĩa 1 NF vào bảng Project, chúng ta có bảng sau: Project Chú ý: Mô hình quan hệ không chấp nhận các bảng chưa được chuẩn hóa. Vì vậy, các bảng lấy từ lược đồ E/R ít nhất cũng phải ở dạng chuẩn thứ nhất. 96
  97. Dạng chuẩn thứ hai (2 NF) 1 bảng ở dạng chuẩn thứ hai khi nó ở dạng chuẩn thứ nhất mà mọi thuộc tính trong hàng phụ thuộc hàm vào toàn bộ khóa chứ không chỉ một phần khóa. Quan sát bảng Project: Bảng có các hàng sau: Trường hợp này đưa ra các vấn đề: . Chèn vào: Không thể ghi lại tên phòng của một nhân viên trước khi nhân viên đó nộp dự án. . Cập nhật: Đối với 1 nhân viên, mã nhân viên, tên phòng, trưởng phòng lặp lại rất nhiều lần. Do đó, nếu một nhân viên chuyển sang phòng khác, sự thay đổi cần ghi lại ở tất cả các hàng của bảng Employee liên quan đến nhân viên đó. Mọi sự bỏ sót đều dẫn đến thiếu nhất quán. . Xóa: Khi sinh viên hoàn thành dự án, ghi chép về nhân viên bị xóa, thông tin về phòng của nhân viên đó cũng sẽ bị mất. 97
  98. Khóa chính ở đây là khóa phức hợp (Ecode + ProjCode) Bảng thỏa mãn điều kiện của 1 NF. Việc chúng ta cần làm là kiểm tra sự thỏa mãn của 2 NF. Trong bảng, với mỗi giá trị của Ecode, có nhiều hơn mộtgias trị của Hours. Ví dụ, cho Ecode E101, có 3 giá trị của Hours – 90, 101, 60. Vì thế, Hours không phụ thuộc hàm vào Ecode. Tương tự, cho mỗi giá trị của ProjCode, có nhiều hơn 1 giá trị của Hours. Ví dụ, với ProjCode P27, có 3 giá trị của Hours, 90, 10 và 72. Tuy nhiên, cho sự kết hợp của Ecode và ProjCode, chỉ xác định duy nhất 1 giá trị của Hours. Vì thế, Hours phụ thuộc hàm vào khóa tổng hợp Ecode + ProjCode. Bây giờ, chúng ta kiển tra xem Dept (phòng) có phụ thuộc hàm vào khóa tổng hợp Ecode + ProjCode hay không. Với mỗi giá trị của Ecode, chỉ xác định 1 giá trị của Dept. Ví dụ, với Ecode 101 chỉ xác định 1 giá trị. Vì vậy, Dept phụ thuộc hàm Ecode. Tuy nhiên, với mỗi giá trị của ProjCode, xác định được nhiều hơn 1 giá trị của Dept. Ví dụ, ProjCode P27 cho hai giá trị của Dept, Systems (hệ thống) và Finance (tài vụ). Vì vậy, Dept không phụ thuộc hàm ProjCode. Dept phụ thuộc hàm vào một phần khóa (ECode) và không phụ thuộc hàm vào khóa tổng hợp (ECode + ProjCode). Tương tự đối với thuộc tính DeptHead (trưởng phòng). Vì vậy, bảng Project không ở 2 NF. Để bảng ở 2 NF, thuộc tính không phải là khóa phải phụ thuộc hàm hoàn toàn vào khóa tổng hợp chứ không phải 1 phần của khóa. Hướng dẫn chuyển một bảng sang 2 NF. . Tìm vã gỡ bỏ các thuộc tính phụ thuộc hàm vào một phần hóa chứ không phải toàn bộ khóa. Đưa chúng vào bảng khác. . Phân nhóm các thuộc tính còn lại. Để chuyển bảng Project sang 2 NF, chúng ta phải gỡ bỏ những thuộc tính không phụ thuộc hàm vào khóa tổng hợp và đưa chúng sang một bảng khác với những thuộc tính mà chúng phụ thuộc hàm hoàn toàn. Trong ví dụ trên, vì Dept không phụ thuộc hàm hoàn toàn vào khóa tổng hợp ECode + ProjCode, chúng ta phải đưa Dept và Ecode sang bảng riêng gọi là EmployeeDept (phòng của nhân viên). Chúng ta cũng chuyển DeptHead sang bảng EmployeeDept. 98
  99. Bây giờ, bảng Project chứa ECode, ProjCode và Hours. EmploymeeDept Project Dạng chuẩn thứ ba (3 NF) Một quan hệ ở dạng chuẩn thứ ba khi ở 2 NF và tất cả các thuộc tính không phải là khóa chỉ phụ thuộc hàm vào khóa chính. Quan sát bảng Employee. EMPLOYEE 99
  100. Các vấn đề: . Chèn Trưởng phòng của một phòng mới không có nhân viên không thể nhập vào cột DeptHead bởi vì khóa chính chưa xác định. . Cập nhật Đối với một phòng, mã của trưởng phòng (DeptHead) được lặp lại nhiều lần. Do đó, nếu trưởng phòng chuyển sang phòng khác, sự thay đổi sẽ gây sai sót ở toàn bộ bảng. . Xóa Nếu ghi chép về một nhân viên bị xóa, thông tin liên quan đến trưởng phòng cũng đồng thời bị xóa. Do đó, thông tin bị thất lạc. Chúng ta cần kiểm tra xem bảng có ở 3 NF không. Vì mỗi ô trong bảng có 1 giá trị, bảng ở 1 NF. Khóa chính của bảng Employee là ECode. Với mỗi giá trị của ECode, chỉ có một giá trị của Dept. Do đó, thuộc tính Dept phụ thuộc hàm vào khóa chính ECode. Tương tự, với mỗi giá trị của ECode, chỉ xác định 1 giá trị của DeptHead. Vì vậy, DeptHead phụ thuộc hàm vào khóa chính ECode. Do đó, mọi thuộc tính phụ thuộc hàm hoàn toàn vào khóa tổng hợp, ECode. Như vậy bảng ở 2 NF. Tuy nhiên, thuộc tính DeptHead cũng phụ thuộc vào thuộc tính Dept. Để trở thành 3 NF, tất cả các thuộc tính không phải khóa phải phụ thuộc hàm vào khóa chính. Bảng không ở khóa chính vì DeptHead phụ thuộc hàm vào Dept, không phải khóa chính. Hướng dẫn chuyển một bảng sang 3 NF. . Tìm và gỡ bỏ thuộc tính không phải khóa phụ thuộc hàm vào thuộc tính không phải là khóa chính. Đưa chúng vào bảng riêng. . Nhóm các thuộc tính còn lại. Để chuyển bảng Employee sang 3NF, chúng ta phải gỡ bỏ cột DeptHead vì nó không phụ thuộc hàm vào khóa chính ECode, đưa nó vào bảng khác gọi là Department (phòng) cùng với thuộc tính Dept mà nó phụ thuộc hàm. 100
  101. Employee Department Dạng chuẩn Boyce – Codd (BCNF) Định nghĩa ban đầu của 3 NF chưa đầy đủ trong một số trường hợp, không thỏa mãn đối với các bảng: . Có nhiều khóa chọn . Các khóa chọn đa hợp . Các khóa chọn lồng nhau (có ít nhất một thuộc tính chung) Vì vây, một dạng chuẩn khác, dạng chuẩn Boyce-Codd được sử dụng. Chúng ta phải hiểu rằng trong các bảng khi 3 điều kiện trên không xuất hiện, chúng ta có thể dừng lại ở dạng chuẩn thứ ba. Trong những trường hợp như vậy, dạng chuẩn thứ ba cũng giống với dạng chuẩn Boyce-Codd. Quan hệ ở dạng chuẩn Boyce-Codd (BCNF) khi và chỉ khi mọi định thức đều là khóa chọn. Quan sát bảng Project: Project 101
  102. Bảng trên dư thừa dữ liệu. Nếu tên của nhân viên phải sửa, ta sẽ phải sửa toàn bộ bảng để tránh sự thiếu nhất quán. ECode + ProjCode là khóa chính. Chú ý rằng Name + ProjCode có thể chọn làm khóa chính nên đó là một khóa chọn. . Hours phụ thuộc hàm vào ECode + ProjCode . Hours phụ thuộc hàm vào Name + ProjCode . Name phụ thuộc hàm vào ECode . ECode phụ thuộc hàm vào Name Chúng ta dễ dàng nhận thấy: . Có nhiều khóa chọn, ECode + ProjCode và Name + ProjCode . Các khóa chọn đa hợp . Khóa chọn lồng vào nhau vì thuộc tính ProjCode là chung Đây là trường hợp đòi hỏi chuyển sang dạng chuẩn Boyce-Codd. Bảng đang ở dạng chuẩn thứ ba. Thuộc tính không phải khóa duy nhất là Hours, phụ thuộc vào khóa tổng hợp ECode + ProjCode hoặc Name + ProjCode. Ecode và Name là các định thức vì chúng phụ thuộc hàm vào nhau. Tuy nhiên chúng không phải khóa chọn. Ở BCNF, định thức phải là khóa chọn. Hướng dẫn chuyển một bảng sang BCNF . Tìm và gỡ bỏ cáckhoas chọn lồng nhau. Đưa phần của khóa chọn và thuộc tính nó phụ thuộc hàm vào một bảng riêng. . Nhóm các thuộc tính còn lại vào một bảng Như vậy, gỡ bỏ Name và ECode và đưa chúng vào bảng riêng. Chúng ta thu được bảng sau: 102
  103. Employee Project Phi chuẩn hóa Sản phẩm cuối cùng của chuẩn hóa là một tập các bảng liên kết với nhau chứa CSDL. Trong một số trường hợp, để có kết quả đơn giản hơn, chúng ta cần nối các bảng lại. Điều này ảnh hưởng đến hoạt động truy vấn. Khi đó, chúng ta nên chấp nhận dư thừa bằng cách thêm vào cột hay bảng. Định nghĩa phi chuẩn hóa. Sự đưa thêm vào bảng dư thừa dữ liệu để cải thiện hoạt động gọi là phi chuẩn hóa. Ví dụ, quan sát bảng sau, gồm thông tin về sản phẩm và đơn đặt hàng. Orders (đơn đặt hàng) Products (sản phẩm) 103
  104. Nếu chúng ta phải tính toán tổng chi phí cho mỗi đơn đặt hàng gồm chi phí mua sản phẩm cùng thuế bằng 10% chi phí sản phẩm, truy vấn để tính tổng doanh số như sau: Nếu có hàng ngàn hàng, máy chủ sẽ mất rất nhiều thời gian để xử lý truy vấn và đưa ra kết quả gồm sự kết hợp và tính toán. Do đó, để đẩy nhanh sự xử lý truy vấn, chúng ta phải lưu dữ liêu chi phí của mỗi đơn hàng cùng với thuế như sau: Orders Bây giờ, để tìm ra tổng doanh số, chúng ta đưa ra một truy vấn đơn giản: Cấu trúc bảng đã đơn giản hóa truy vấn và đẩy nhanh quá trình xử lý truy vấn. bằng việc lưu thêm bảng, chúng ta gây ra dư thừa nhưng cải thiện hoạt động truy vấn. Quyết định phi chuẩn hóa rõ ràng gây ra sự cân nhắc giữa hiệu quả hoạt động và dữ liệu nhất quán. Phi chuẩn hóa làm tăng dung lượng bộ nhớ cần sử dụng. 104
  105. Tóm tắt Trong bài học này, chúng ta đã tìm hiểu: . Chuẩn hóa có chức năng đơn giản hóa cấu trúc của bảng. . Chuẩn hóa tại ra các bảng mới thỏa mãn điều kiện cho trước, hiển thị ở một số dạng chuẩn. Các dạng chuẩn đảm bảo các hoạt động bất thường và sự thiếu nhất quán không xảy ra đối với CSDL. Cấu trúc bảng luôn ở một dạng chuẩn nhất định. Một số dạng chuẩn đã được giới thiệu trong bài. . Những dạng chuẩn quan trọng và phổ biến nhất là: Dạng chuẩn thứ nhất (1 NF) Dạng chuẩn thứ hai (2 NF) Dạng chuẩn thứ ba (3 NF) Dạng chuẩn Boyce – Codd (BCNF) . Sự sử dụng tính chất dư thừa có chủ ý trong bảng để cải thiện hiệu quả hoạt động được gọi là phi chuẩn hóa. . Quyết định thực hiện phi chuẩn hóa gây ra sự cân nhắc giữa hiệu quả hoạt động và việc bảo toàn dữ liệu. . Phi chuẩn hóa làm tăng dung lượng bộ nhớ cần sử dụng. 105
  106. Bài 2C: Phối hợp 106
  107. Byte kiến thức Trong phần này, chúng ta sẽ nghiên cứu về: . Miền . Dạng chuẩn thứ tư . Các dạng chuẩn khác Miền Miền là tập giá trị dữ liệu cùng kiểu. Nói cách khác, miền là vùng chứa giá trị từ đó giá trị thực của thuộc tính được lấy. Ví dụ, quan sát miền CITIES (thành phố) chứa tên của các thành phố. CUSTOMER (khách hàng) và PRODUCT (sản phẩm) là hai bảng cùng có thuộc tính là tên của thành phố. Thuộc tính CITY trong bảng CUSTOMER ghi tên các thành phố mà các khách hàng đang ở. Thuộc tính CITY trong bảng PRODUCT ghi tê các thành phố tại đó sản phẩm được sản xuất. Cả hai thuộc tính này ở hai bảng đều lấy giá trị từ miền CITIES. CUSTOMER Miền: CITY PRODUCT Miền và thuộc tính Mọi giá trị của thuộc tính phải được lấy từ miền nằm dưới. Tuy nhiên, không phải mọi giá trị trong miền đều xuất hiện trong bảng. Trong hình minh họa, một số thành phố trong miền không tồn tại trên thuộc tính. Tuy nhiên, sau đó, mọi giá trị đều xuất hiện trên trong thuộc tính vì chúng là giá trị thực. Miền là một khái niệm và không có Hệ Quản trị CSDL quan hệ nào định nghĩa được hoàn hảo một khái niệm. 107
  108. Một quan hệ là tập hợp các miền, gồm có hai phần, tựa đề và phần chính. Phần tựa đề gồm một tập cố định các thuộc tính. Phần chính gồm các hàng có thể thay đổi theo thời gian. Thuộc tính của quan hệ là không đổi. Nếu thêm hoặc bớt một thuộc tính vào quan hệ, quan hệ sẽ thay đổi. Những thay đổi như vậy chỉ ra rằng hoặc một miền mới được thêm vào tập hợp các miền có sẵn hoặc một miền xác định ban đầu một quan hệ không còn tồn tại nữa. Dạng chuẩn thứ tư Theo định nghĩa 1 NF, một quan hệ không thể có thuộc tính đa trị. Điều đó có nghĩa là cho một giá trị của thuộc tính, chúng ta không thể xác định nhiều giá trị của thuộc tính khác. Tuy nhiên, trong thực tế, có những trường hợp đòi hỏi thuộc tính phải đa trị. Ví dụ, trong một trường học, sinh viên của khoa được giao nhiều nhiệm vụ. Hoặc, trong hệ thống bảo hiểm y tế, một nhân viên có rất nhiều khách hàng. Khi chúng ta mô hình hóa các trường hợp này trong CSDL quan hệ, chúng ta có thể gặp phải sự dư thừa hoặc giá trị null. Ví dụ, đối với CSDL của trường học, hình minh họa sau mô tả bảng FACULTY (khoa) sử dụng các khái niệm trên. FACULTY Bảng với tính phụ thuộc đa trị Điều kiện đòi hỏi phải sao lưu các giá trị thì mới đảm bảo tính độc lập lẫn nhau của các thuộc tính đa trị gọi là tính phụ thuộc đa trị. Tính phụ thuộc đa trị là sự ràng buộc đối với bảng như phụ thuộc hàm. Rõ ràng là tính phụ thuộc đa trị đòi hỏi sự sao lưu các giá trị dữ liệu. Vì vậy, khi chuẩn hóa, chúng ta phải gỡ bỏ các phụ thuộc đa trị. Để làm được điều này, chúng ta cần dùng dạng chuẩn thứ tư (4 NF). Một bảng ở 4 NF nếu nó ở 3 NF và không có các phụ thuộc đa trị. Để áp dụng 4 NF, chúng ta cần đưa tất cả các thuộc tính đa trị vào một bảng chứa khác của thuộc tính. Bảng trên có thể được chuẩn hóa như sau: 108
  109. FAC-COURSE (môn học) FAC-COMMITTEE (hội đồng) Bảng 4 NF Hai bảng trên ở 4 NF vì các thuộc tính đa trị như COURSE và COMMITTEE đang ở trong bảng của riêng chúng. Khóa chính của mỗi bảng trên gồm cả hai thuộc tính trong bảng. Điều này có nghĩa là khóa chính của bảng FAC-COURSE gồm cả FACULTY-NAME và COURSE. Khóa chính của bảng FAC-COMMITTEE gồm FACULTY-NAME và COMMITTEE. Các dạng chuẩn khác Các dạng chuẩn 2 NF, 3 NF và 4 NF là kết quả của phụ thuộc hàm và phụ thuộc đa trị. Ngoài ra còn có những ràng buộc khác như quy tắc kinh doanh đưa ra nhu cầu về dạng chuẩn thứ năm (5 NF). Để một bảng ở 5 NF, bảng phải ở dạng 4 NF và tuân thủ một số quy tắc kinh doanh. Mục đích của 5 NF là tạo ra các bảng mà không thể khai triển thêm được nữa. Bây giờ chúng ta sẽ tìm hiểu bằng một ví dụ. 109
  110. Quan sát bảng sau: Bảng trên chỉ ra rằng khoa Khoa học Máy tính đề xuất 3 môn học CS150, CS103 và CS104. Các môn học này được đăng ký bởi nhiều sinh viên. Tại đây quy tắc kinh doanh là một môn học không thể được đăng ký bởi tất cả các sinh viên một sinh viên không thể đăng ký tất cả các môn học. Bảng trên không minh họa tính phụ thuộc đa trị vì các cột SUBJECT (môn học) và STUDENT (sinh viên) không độc lập. Cả hai cột không liên quan đến nhau và chứa những thông tin quan trọng. Vì vậy, bảng không thể khai triển thành hai bảng sau mà không sai lạc thông tin về môn học được đăng ký bởi sinh viên. DEPT-SUB (DEPARTMENT, SUBJECT) DEPT-STUD (DEPARTMENT, STUDENT) Tuy nhiên, chúng ta có thể khai triển bảng trên thành ba bảng mà không làm mất thông tin. DEPT-SUB (khoa, môn học) Department Subject Toán Khoa học máy tính Khoa học máy tính Khoa học máy tính Hóa học Vật lý 110
  111. DEPT-STUD (khoa, sinh viên) Department Student Toán Khoa học máy tính Khoa học máy tính Khoa học máy tính Hóa học Vật lý SUB-STUD (môn học, sinh viên) Subject Student Nếu nguyên tắc kinh doanh không tồn tại, chúng ta không cần đến 5 NF. 111
  112. Ngoài 5 NF, có một dạng chuẩn khác nữa là dạng chuẩn khóa – miền (DKNF) được gợi ý bởi Fagin. Dạng chuẩn này dựa vào định nghĩa khóa và miền thuộc tính. Bảng ở dạng DKNF nếu mọi ràng buộc trong bảng là kết quả của định nghĩa về miền và khóa. 112