Dưới đây là trọn bộ slide môn CSDL và bài tập hướng dẫn .mọi người tải về tìm hiểu nhé. Chúc mọi người học tập tốt .
CHƯƠNG I CÁC KHÁI NIỆM CƠ BẢN §1 MỘT SỐ KHÁI NIỆM Chương trình bày khái niệm hệ Cơ sở liệu (CSDL) nhằm cung cấp cho học viên kiến thức sở, nhìn ban đầu sở liệu hệ quản trị CSDL Đây mốc xuất phát, nêu vấn đề trình bày cách giải cụ thể chương sau 1.1 Cơ sở liệu 1.1.1 Định nghĩa CSDL Cơ sở liệu hệ thống thơng tin có cấu trúc lưu trữ thiết bị lưu trữ thông tin thứ cấp (như băng từ, đĩa từ ) để thỏa mãn yêu cầu khai thác thông tin đồng thời nhiều người sử dụng hay nhiều chương trình ứng dụng với nhiều mục đích khác Trong định nghĩa cần nhấn mạnh khía cạnh định nghĩa Trước hết, CSDL phải tập hợp thông tin mang tính hệ thống khơng phải thơng tin rời rạc, khơng có mối quan hệ với Các thơng tin phải có cấu trúc tập hợp thơng tin phải có khả đáp ứng nhu cầu khai thác nhiều người sử dụng cách đồng thời Đó đặc trưng CSDL Rõ ràng, ưu điểm bật CSDL là: Giảm trùng lặp thông tin xuống mức thấp bảo đảm tính quán toàn vẹn liệu Đảm bảo liệu truy xuất theo nhiều cách khác Khả chia sẻ thông tin cho nhiều người sử dụng nhiều ứng dụng khác Tuy nhiên, để đạt ưu điểm trên, CSDL đặt vấn đề cần phải giải Đó là: 1- Tính chủ quyền liệu Do tính chia sẻ CSDL nên tính chủ quyền liệu bị lu mờ làm mờ nhạt tinh thần trách nhiệm, thể vấn đề an toàn liệu, khả biểu diễn mối liên hệ ngữ nghĩa liệu, tính xác liệu Điều có nghĩa người khai thác CSDL phải có nghĩa vụ cập nhật thơng tin CSDL 2- Tính bảo mật quyền khai thác thơng tin người sử dụng Do có nhiều người phép khai thác CSDL cách đồng thời nên cần phải có chế bảo mật phân quyền hạn khai thác CSDL Các hệ điều hành nhiều người sử dụng hay hệ điều hành mạng cục (Novell Netware, Windows For WorkGroup, WinNT, ) có cung cấp chế 3- Tranh chấp liệu Nhiều người phép truy nhập vào tài nguyên liệu (Data Source) CSDL với mục đích khác nhau: Xem, thêm, xóa sửa liệu Cần phải có chế ưu tiên truy nhập liệu chế giải tình trạng khóa chết (DeadLock) q trình khai thác cạnh tranh Cơ chế ưu tiên thực việc cấp quyền (hay mức độ) ưu tiên cho người khai thác - người cấp quyền hạn ưu tiên cao ưu tiên truy nhập liệu trước; theo biến có loại truy nhập quyền đọc ưu tiên trước quyền ghi liệu; dựa thời điểm truy nhập - có u cầu truy xuất trước có quyền truy nhập liệu trước; theo chế lập lịch truy xuất hay chế khóa 4- Đảm bảo liệu có cố Việc quản lý liệu tập trung làm tăng khả mát sai lệch thơng tin có cố điện đột xuất, phần đĩa lưu trữ CSDL bị hư v.v Một số hệ điều hành mạng có cung cấp dịch vụ lưu ảnh đĩa cứng (cơ chế sử dụng đĩa cứng dự phòng - RAID), tự động kiểm tra khắc phục lỗi có cố, nhiên, bên cạnh dịch vụ hệ điều hành, để đảm bảo CSDL luôn ổn định, CSDL thiết phải có chế khôi phục liệu cố bất ngờ xảy 1.1.2 Các đối tượng sử dụng CSDL Những người sử dụng CSDL không chuyên lĩnh vực tin học CSDL, CSDL cần có cơng cụ người sử dụng khơng chun sử dụng để khai thác CSDL cần thiết Các chuyên viên tin học biết khai thác CSDL Những người xây dựng ứng dụng khác phục vụ cho mục đích khác CSDL Những người quản trị CSDL, người hiểu biết tin học, hệ quản trị CSDL hệ thống máy tính Họ người tổ chức CSDL (khai báo cấu trúc CSDL, ghi nhận yêu cầu bảo mật cho liệu cần bảo vệ ) họ phải nắm rõ vấn đề kỹ thuật CSDL để phục hồi liệu có cố Họ người cấp quyền hạn khai thác CSDL, họ giải vấn đề tranh chấp liệu, có 1.1.3 Các mức biểu diễn CSDL Theo kiến trúc ANSI-PARC, CSDL có mức biểu diển: Mức (còn gọi mức vật lý - Physical), mức quan niệm (Conception hay Logical) mức a) Mức Đây mức lưu trữ CSDL Tại mức này, vấn đề cần giải là, liệu lưu trữ nào? đâu (đĩa từ, băng từ, track, sector nào)? Cần mục gì? Việc truy xuất (Sequential Access) hay ngẫu nhiên (Random Access) loại liệu Những người hiểu làm việc với CSDL mức người quản trị CSDL (Administrator), người sử dụng (NSD) chuyên môn b) Mức quan niệm: Tại mức giải cho câu hỏi CSDL cần phải lưu giữ loại liệu? liệu gì? Mối quan hệ loại liệu nào? Từ giới thực (Real Universe) chuyên viên tin học qua q trình khảo sát phân tích, với người đảm nhận vai trò quản trị CSDL, xác định loại thơng tin cho cần thiết phải đưa vào CSDL, đồng thời mô tả rõ mối liên hệ thông tin Có thể nói cách khác, CSDL mức quan niệm biểu diễn trừu tượng CSDL mức vật lý; ngược lại, CSDL vật lý cài đặt cụ thể CSDL mức quan niệm Ví dụ 1.2: Người ta muốn xây dựng hệ quản trị CSDL để quản lý nhân viên công ty Môi trường (thế giới thực) công ty gồm có phòng ban (Department) - phòng ban có tên gọi khác nhau, địa trụ sở (Location), số điện thoại (Telephone) để liên lạc, có người làm trưởng phòng ban, hàng năm cấp khoản kinh phí để hoạt động (Expense Budget), phải đạt doanh thu (Revenue Budget) Để tránh viết tên phòng ban dài dễ dẫn đến viết sai, người ta thường đặt cho phòng ban giá trị số (gọi số hiệu phòng ban - Department Number) sử dụng số hiệu để xác định tên thơng tin khác Cơng ty có số cơng việc xếp cho nhân viên công ty Để thuận lợi cho việc theo dõi công việc công tác tuyển chọn nhân viên mới, người ta lập thành bảng công việc (JOBS) gồm thông tin: tên tắt công việc (Job), tên công việc (Job Name), mức lương tối thiểu (Min Salary) tối đa (Max Salary) công việc cho biết công việc cần có người lãnh đạo khơng Một cơng việc có nhiều người làm Mỗi phòng ban có từ đến nhiều nhân viên (Employee) Mỗi nhân viên có tên gọi, cơng việc làm (Job), khoản tiền lương hàng tháng (Salary), số hiệu phòng ban mà cơng tác Nếu muốn, người ta theo dõi thêm thơng tin khác ngày sinh (Birth Day), giới tính (Sex) v.v Để tránh viết tên nhân viên dài dễ dẫn đến sai sót, nhân viên gán cho số nhất, gọi mã số nhân viên (EmpNo) Nếu yêu cầu quản lý công ty dừng việc theo dõi danh sách nhân viên phòng ban cơng việc cơng ty cần loại thơng tin: Phòng ban (DEPARTMENT), Công việc (JOBS) Nhân viên (EMPLOYEE) với thơng tin đủ Có thể cơng ty có thêm u cầu quản lý q trình tuyển dụng nâng lương cần có thêm (hoặc số) loại thơng tin q trình: Mã số nhân viên, lần thay đổi, thời gian bắt đầu kết thúc thay đổi, mức lương, Từ môi trường giới thực, xuất phát từ nhu cầu quản lý, việc xác định loại thông tin cần lưu trữ mối quan hệ thông tin cơng việc mức quan niệm c) Mức ngồi Đó mức người sử dụng chương trình ứng dụng Làm việc mức có nhà chun mơn, kỹ sư tin học người sừ dụng khơng chun Mỗi người sử dụng hay chương trình ứng dụng "nhìn" (View) CSDL theo góc độ khác Có thể "nhìn" thấy tồn hay phần thông tin tổng hợp từ CSDL có Người sử dụng hay chương trình ứng dụng hồn tồn khơng biết cấu trúc tổ chức lưu trữ thông tin CSDL, chí tên gọi loại liệu hay tên gọi thuộc tính Họ làm việc phần CSDL theo cách "nhìn" người quản trị hay chương trình ứng dụng quy định, gọi khung nhìn (View) Ví dụ Cũng ví dụ trên, Phòng Tổ chức nhân quản lý thêm thơng tin chi tiết lý lịch nhân viên công ty: q trình đào tạo chun mơn kỹ thuật - kinh tế - trị - quản lý Nhà nước, trình khen thưởng, lần bị kỷ luật, trình hoạt động Cách mạng bị địch bắt - bị tù đày, q trình cơng tác, q trình nâng lương, sơ lược tiểu sử cha mẹ - anh chị em ruột vợ chồng - v.v Rõ ràng rằng, Phòng Kế tốn nhìn thấy CSDL danh sách nhân viên làm công việc cụ thể Phòng ban với mức lương thỏa thuận, mà không thấy lý lịch nhân viên Lãnh đạo cơng ty cần "nhìn" thấy số lượng nhân viên, tổng số lương phải trả người lãnh đạo Phòng ban Trong người Phòng Tổ chức nhân có người xem lý lịch tất cán bộ, công nhân viên cơng ty, có người xem lý lịch cán bộ, công nhân viên với mức lương từ xx đồng trở xuống Như vậy, cấu trúc CSDL vật lý (mức trong) mức quan niệm có một; mức ngồi, mức chương trình ứng dụng người sử dụng trực tiếp CSDL, có nhiều cấu trúc ngồi tương ứng 1.2 Hệ quản trị CSDL 1.2.1 Hệ phần mềm quản trị CSDL Để giải tốt tất vấn đề đặt cho CSDL nêu trên: tính chủ quyền, chế bảo mật hay phân quyền hạn khai thác CSDL, giải tranh chấp trình truy nhập liệu, phục hồi liệu có cố cần phải có hệ thống phần mềm chuyên dụng Hệ thống phần mềm gọi hệ quản trị CSDL (tiếng Anh DataBase Management System DBMS) Đó cơng cụ hỗ trợ tích cực cho nhà phân tích & thiết kế CSDL người khai thác CSDL Cho đến có nhiều hệ quản trị CSDL mạnh đưa thị trường như: Visual FoxPro, MicroSoft Access, SQL-Server, DB2, Sybase, Paradox, Informix, Oracle với chất lượng khác Mỗi hệ quản trị CSDL cài đặt dựa mơ hình liệu cụ thể Hầu hết hệ quản trị CSDL dựa mơ hình quan hệ (Xem chương II) Dù dựa mơ hình liệu nào, hệ quản trị CSDL phải có: 1) Ngơn ngữ giao tiếp người sử dụng (NSD) CSDL, bao gồm: Ngôn ngữ mô tả liệu (Data Definition Language - DDL) phép khai báo cấu trúc CSDL, khai báo mối liên hệ liệu (Data RelationShip) quy tắc (Rules, Constraint) quản lý áp đặt lên liệu Ngơn ngữ thao tác liệu (Data Manipulation Language - DML) cho phép người sử dụng thên (Insert), xóa (Delete), sửa (Update) liệu CSDL Ngôn ngữ truy vấn liệu, hay ngơn ngữ hỏi đáp có cấu trúc (Structured Query Language - SQL) cho phép người khai thác CSDL (chuyên nghiệp không chuyên) sử dụng để truy vấn thông tin cần thiết CSDL Ngôn ngữ quản lý liệu (Data Control Language - DCL) cho phép người quản trị hệ thống thay đổi cấu trúc bảng liệu, khai báo bảo mật thông tin cấp quyền hạn khai thác CSDL cho người sử dụng 2) Từ điển liệu (Data Dictionary) dùng để mô tả ánh xạ liên kết, ghi nhận thành phần cấu trúc CSDL, chương trình ứng dụng, mật mã, quyền hạn sử dụng v.v 3) Có biện pháp bảo mật tốt có yêu cầu bảo mật 4) Cơ chế giải vấn đề tranh chấp liệu Mỗi hệ quản trị CSDL cài đặt chế riêng để giải vấn đề Một số biện pháp sau sử dụng: 5) Cấp quyền ưu tiên cho người sử dụng (người quản trị CSDL thực hiện) Đánh dấu yêu cầu truy xuất liệu, phân chia thời gian, người có u cầu trước có quyền truy xuất liệu trước 6) Hệ quản trị CSDL phải có chế lưu (Backup) phục hồi (Restore) liệu có cố xảy Điều thực cách: Định kỳ kiểm tra CSDL, sau thời gian định hệ quản trị CSDL tự động tạo CSDL Cách tốn kém, CSDL lớn Tạo nhật ký (LOG) thao tác CSDL Mỗi thao tác CSDL hệ thống ghi lại, có cố xảy tự động lần ngược lại (RollBack) để phục hồi CSDL 7) Hệ quản trị CSDL phải cung cấp giao diện (Interface) tốt, dễ sử dụng, dễ hiểu cho người sử dụng khơng chun 8) Ngồi ra, hệ quản trị CSDL phải đáp ứng yêu cầu quan trọng, bảo đảm tính độc lập liệu chương trình: Khi có thay đổi liệu (như sửa đổi cấu lưu trữ bảng liệu, thêm mục (Index) ) chương trình ứng dụng (Application) chạy CSDL khơng cần phải viết lại, hay không làm ảnh hưởng đến NSD khác Vài nét trình phát triển hệ quản trị CSDL: Trải qua gần 40 năm nghiên cứu cài đặt ứng dụng, hệ quản trị CSDL không ngừng phát triển Các hệ quản trị CSDL đời vào đầu năm 60 kỷ 20 dựa mơ hình liệu phân cấp mạng, số có hệ quản trị CSDL có tên IMS hãng IBM dựa mơ hình liệu phân cấp Năm 1976, hệ quản trị CSDL dựa mơ hình liệu quan hệ hãng IBM mang tên System-R đời Từ năm 1980 hãng IBM cho đời hệ quản trị CSDL máy Main Frame mang tên DB2, hệ quản trị CSDL Dbase, Sybase, Oracle, Informix, SQL-Server Từ năm 1990 người ta bắt đầu cố gắng xây dựng hệ quản trị CSDL hướng đối tượng (Oriented Object DataBase Management System) Orion, Illustra, Itasca, Tuy nhiên hầu hết hệ quan hệ - hướng đối tượng, nghĩa là, xét chất, chúng dựa tảng mơ hình quan hệ Hệ quản trị CSDL hướng đối tượng hệ ODMG đời vào năm 1996 1.2.2 Sơ đồ tổng quát hệ quản trị CSDL Hình 1.6.1 Sơ đồ tổng quát hệ quản trị CSDL Hình 1.6.1 minh họa sơ đồ tổng quát hệ quản trị CSDL Chúng ta thấy có mức: mức chương trình khai báo cấu trúc chương trình ứng dụng; mức mơ tả CSDL, thao tác CSDL từ điển liệu; mức CSDL Mỗi hệ quản trị CSDL có ngôn ngữ khai báo (hay mô tả: Data Definition Language - DDL) cấu trúc CSDL riêng Những người thiết kế quản trị CSDL thực công việc khai báo cấu trúc CSDL Các chương trình khai báo cấu trúc CSDL viết ngôn ngữ mà hệ quản trị CSDL cho phép Hai công việc khai báo khai báo cấu trúc lơgic (đó việc khai báo loại liệu mối liên hệ loại liệu đó, ràng buộc toàn vẹn liệu - RBTV) khai báo vật lý (dữ liệu lưu trữ theo dạng nào?, có mục?) Các chương trình ứng dụng viết ngôn ngữ thao tác CSDL (Data Manipulation Language - DML) với mục đích: - Truy xuất liệu - Cập nhật liệu (thêm, xóa, sửa liệu) - Khai thác liệu Ngôn ngữ thao tác CSDL sử dụng cho NSD thao tác trực tiếp với CSDL Từ điển liệu (Data Dictionary - DD) CSDL hệ quản trị CSDL sử dụng để lưu trữ cấu trúc CSDL, thông tin bảo mật, bảo đảm an toàn liệu cấu trúc Những người làm quen với hệ quản trị CSDL MicroSoft Access thấy từ điển liệu thông qua bảng (Table) có tên bắt đầu chữ MSys MSysACEs, MSysColumn, MSysIMEXColumn, MSysIMEXSpecs, MSysIndexes, MSysMacros, MSysObjects, MSysQueries, MSysRelationShips Từ điển liệu gọi Siêu CSDL (MetaDataBase) (*) Quá trình hoạt động chương trình ứng dụng thơng qua tầng CSDL: Hình 1.6.2 Q trình hoạt động chương trình ứng dụng thơng qua tầng CSDL Hình 1.6.2 cho cách nhìn trình hoạt động chương trình ứng dụng thơng qua tầng CSDL: Các yêu cầu chương trình ứng dụng chuyển tới hệ quản trị CSDL (theo đường số 2) Tại hệ quản trị CSDL tham khảo từ điển liệu (Meta DataBase) để tìm kiếm ánh xạ cấu trúc với cấu trúc quan niệm cấu trúc vật lý (các ngõ a, b c) Tại hệ quản trị CSDL tham khảo tới vùng đệm để xác định xem câu trả lời có sẵn chưa, có trả lại cho chương trình ứng dụng thông qua đường số 9; ngược lại yêu cầu hệ điều hành truy xuất thông tin theo đường số Tới hệ điều hành gửi yêu cầu truy xuất thông tin CSDL thông qua hệ thống xuất nhập HĐH (các đường số 5) Nếu việc truy xuất không thành cơng trả lại u cầu cho hệ quản trị CSDL (có thể thơng qua mã lỗi) qua đường số 6; thành cơng liệu chuyển vào vùng đệm hệ quản trị CSDL Qua xử lý, hệ quản trị CSDL chuyển liệu vào vùng đệm chương trình ứng dụng đề xử lý (qua đường 8a) cho kết trả lời chương trình ứng dụng qua đường số 10 Theo sơ đồ nhận thấy trục trặc xảy đường (2a), (3), (4), (5), (6) (8) Lỗi đường số (6) (8) tràn vùng làm việc 1.2.3 Tính độc lập liệu chương trình Lược đồ khái niệm biểu diễn giới thực loại ngôn ngữ phù hợp hệ quản trị CSDL Qua hình 1.5.1 - Sơ đồ tổng quát CSDL theo kiến trúc ANSI - PARC, thấy, từ chương trình ứng dụng người khai thác trực tiếp CSDL thơng qua khung nhìn tới CSDL (View) tồn hai mức độc lập liệu Thứ nhất, lược đồ vật lý thay đổi người quản trị CSDL mà hồn tồn khơng làm thay đổi lược đồ Người quản trị CSDL tổ chức lại CSDL cách thay đổi cách tổ chức, cấu trúc vật lý liệu thiết bị nhớ thứ cấp để làm thay đổi hiệu tính tốn chương trình ứng dụng, khơng đòi hỏi phải viết lại chương trình ứng dụng Điều gọi tính độc lập vật lý liệu - hay tính độc lập liệu mức vật lý (Physical Independence) Tính độc lập liệu mức vật lý đảm bảo tới mức phụ thuộc vào chất lượng hệ quản trị CSDL Thứ hai, khung nhìn với lược đồ quan niệm tồn loại độc lập liệu Trong trình khai thác CSDL người ta nhận thấy tính cần thiết phải sửa đổi lược đồ khái niệm bổ sung thêm thơng tin xóa bớt thông tin thực thể tồn CSDL Việc thay đổi lược đồ khái niệm không làm ảnh hưởng tới lược đồ con, khơng cần phải viết lại chương trình ứng dụng Tính chất độc lập gọi tính độc lập liệu mức lơgic (Logical Independence) Tính độc lập liệu với chương trình ứng dụng mục tiêu chủ yếu hệ quản trị CSDL C.J Date [3] định nghĩa tính độc lập liệu "tính bất Tân từ: Mỗi tài khoản, theo chế độ hạch tốn hình chữ T, phát sinh bên NỢ (hạch tốn tăng) phải có mã tài khoản đối ứng bên CĨ (hạch tốn giảm) để đảm bảo cân đối tài khoản Một tài khoản ghi NỢ có nhiều tài khoản khác ghi CÓ Mã tài khoản NỢ mã tài khoản đối ứng phải thuộc danh mục tài khoản SỔ-CT (Loại-CT, Số-CT, NGày-CT, Diễn-Giải, Số-Tiền, TK-NỢ, TK-CĨ) Tân từ: Trong phương pháp kế tốn ghi sổ, chứng từ ban đầu ghi vào sổ theo dõi, gọi sổ chứng từ Mỗi chứng từ thuộc loại chứng từ cụ thể (LOẠI-CT); có số chứng từ (SỐ-CT) phân biệt với chứng từ khác Chứng từ ghi rõ ngày tháng phát sinh (NGÀY-CT), diễn giải nội dung phát sinh (DIỄN-GIẢI), số tiền phát sinh (SỐ-TIỀN), mã tài khoản ghi NỢ (TK-NỢ) mã tài khoản đối ứng ghi CÓ (TK-CÓ); SỔ-CÁI (Mã-TK, NỢ-ĐK, CÓ-ĐK, PS-NỢ, PS-CÓ, NỢ-CK, CÓ-CK) Tân từ: Từ sổ chứng từ (SỔ-CT), chứng từ ghi sổ tổng hợp theo loại tài khoản (Mã-TK) lập thành sổ Mỗi mã tài khoản (Mã-TK) SỔCÁI phản ảnh lần số dư NỢ, dư CÓ đầu kỳ (NỢ-ĐK, CÓĐK); số phát sinh NỢ, CÓ tháng (PS-NỢ, PS-CÓ), số dư NỢ, dư CÓ cuối kỳ (NỢ-CK, CÓ-CK) Mã tài khoản phải có danh mục tài khoản (DMTK) nêu Câu 1: Xác định khóa quan hệ CSDL nêu Câu 2: Xác định RBTV CSDL Nêu rõ nội dung RBTV, bối cảnh lập (các) bảng tầm ảnh hưởng RBTV lược đồ CSDL Bài tập 2: Vận dụng hệ tiên đề Amstrong để tìm chuỗi suy diễn: Cho R(A,B,C,D,E,G,H) với F = { AB-> C; B-> D; CD-> E; CE-> GH; G-> A} (a) Tìm chuỗi suy diễn cho AB-> E (b) Tìm chuỗi suy diễn cho BG-> C (c) Tìm chuỗi suy diễn cho AB->G Bài tập 3: Xác định khóa lược đồ quan hệ sau: Q1 (A,B,C,D,E,H) với F = { AB-> C; CD-> E; AH-> B; B-> D; A-> D } Q2 (A,B,C,D,M,N,P,Q) với F = { AM-> NB; BN-> CM; A-> P; D-> M; PC-> A; DQ-> A } Q3 (M, N, P, Q, R, S, T, U, W) với F = { M-> W; MR-> T; T-> R; QR-> T; M-> U; MT-> P; NP-> Q; UW-> R } CHƯƠNG V DẠNG CHUẨN VÀ CHUẨN HỐ Mục đích: xây dựng tập lược đồ quan hệ cho phép ta lưu trữ thông tin cho tránh dư thừa không cần thiết khai thác dễ dàng Một cách tiếp cận với thiết kế CSDL quan hệ la dạng chuẩn (Normal Form) Để xác định lược đồ quan hệ dạng chuẩn ta phải mô tả quy tắc thông tin giới thực mơ hình CSDL quan hệ Sau dây dùng công cụ phụ thuộc hàm để biểu diễn quy tắc liệu dạng chuẩn định nghĩa dựa tập phụ thuộc § 1: DẠNG CHUẨN 1.1 Thiết kế gây nguy hiểm cho CSDL Một hai nguyên nhân sau thiết kế gây nguy hiểm cho CSDL Trùng lắp thơng tin Khơng có khả trình bày thơng tin cách chắn VD: Cho lược đồ quan hệ dùng để ghi nhận giáo viên lớp giảng dạy giáo viên GIANGDAY(MÔNHOC, SOTIET,LOP,GV,HV,DC) Các phụ thuộc hàm: MONHOC → SOTIET MONHOC, LOP → GV GV→HOCVI,DC Xét tình trạng liệu sau: MONHOC SOTIET LOP GV HOCVI DC CSDL 75 TH1 N.V.A C.N Q1 CSDL 75 TH2 N.V.A C.N Q1 CSDL 45 TH1 N.V.B T.S Q3 CSDL 45 TH2 N.V.B T.S Q3 CN: Cử nhân, TS: Tiến sĩ Do có phụ thuộc hàm MONHOC → SOTIET nên số tiết dòng thứ dòng thứ gây nên trùng lắp thông tin Tương tự phụ thuộc hàm GV → HOCVI, DC nên học vị địa dòng thứ dòng thứ gây nên trùng lắp thông tin Các liệu gây trùng lắp thông tin la liệu suy đốn cách chắn từ phụ thuộc hàm Ở để lưu học vị địa giáo viên giáo viên phải tham gia giảng dạy lớp Để giải vấn đề lưu thông tin giáo viên không tham gia giảng dạy người ta dùng giá trị NULL cho thuộc tính MONHOC, SOTIET, LOP Như vậy, lược đồ quan hệ lưu trữ hai thông tin hai đối tượng khác giảng dạy giáo viên tham gia giảng dạy, hai thông tin giáo viên không tham gia giảng dạy Vấn đề nảy sinh ta cần cập nhật việc giảng dạy ta phải đảm bảo không gây ảnh hưỏng tới giáo viên không tham gia giảng dạy ngược lại Như thông tin lưu trữ lược đồ quan hệ không chắn 1.2 Phân rã Từ lược đồ quan hệ chất lượng ban đầu với tập phụ thuộc hàm ta tuân theo nguyên tắc phân rã thành lược đồ quan hệ chất lượng Ví dụ: Phân rã lược đồ quan hệ GIANGDAY thành hai lược đồ TKB GV TKB(MONHOC, SOTIET, LOP) GV(LOP,GV,HOCVI,DC) Tình trạng liệu hai lược đồ sau: TKB = ΠMONHOC, SOTIET, LOP(GIANGDAY) GV = ΠLOP,GV, HOCVI, DC(GIANGDAY) MONHOC SOTIET LOP LOP GV HOCVI DC CSDL 75 TH1 TH1 N.V.A C.N Q1 CSDL 75 TH2 TH2 N.V.A C.N Q1 CSDL 45 TH1 TH1 N.V.B T.S Q3 CSDL 45 TH2 TH2 N.V.B T.S Q3 Sau rắc rối xảy Để trả lời câu hỏi “Cho biết thông tin giáo viên dạy CSDL TH1” ta phải kết tự nhiên hai quan hệ TKB va GV Kết sau: MONHOC SOTIET LOP GV HOCVI DC CSDL 75 TH1 N.V.A C.N Q1 CSDL 75 TH1 N.V.B T.S Q3 CSDL 75 TH2 N.V.A C.N Q1 CSDL 75 TH2 N.V.B T.S Q3 CTDL 45 TH1 N.V.B T.S Q3 CTDL 45 TH1 N.V.A C.N Q1 CTDL 45 TH2 N.V.B T.S Q3 CTDL 45 TH2 N.V.A C.N Q1 Ta thấy có tới hai giáo viên dạy mơn CSDL lớp TH1 thông tin ban đầu có N.V.A → Vấn đề gọi phân rã khơng bảo tồn thơng tin Xét phụ thuộc hàm lược đồ phân rã: TKB(MONHOC, SOTIET, LOP) MONHOC → SOTIET GV(LOP, GV, HOCVI, DC) GV → HOCVI, DẠNG CHUẨN Từ hai phụ thuộc hàm ta suy phụ thuộc hàm MONHOC, LOP → GV Như vậy, hai phụ thuộc hàm không đảm bảo kiểm tra ràng buộc toàn vẹn phụ thuộc hàm ban đầu gây nên → Vấn đề gọi phân rã khơng bảo tồn phụ thuộc hàm Sau đây, ta xét quy tắc phân rã cho không vi phạm hai vấn đề 1.2.1 Phân rã bảo tồn thơng tin Cho lược đồ quan hệ Q Ta có định nghĩa sau: Tập {Q1, Q2,…,Qn} phân rã Q nếu: Q = Q1 ∪ Q2 ∪ … ∪ Qn Một cách tổng quát TQ quan hệ Q thì: TQ ⊆ ΠR1(TQ) ΠR2(TQ) … ΠRn(TQ) Phân rã thông tin bảo tồn thơng tin nếu: TQ = ΠR1(TQ) ΠR2(TQ) … ΠRn(TQ) Điều kiện để phân rã bảo tồn thơng tin Cho Q F tập phụ thuộc hàm định nghĩa Q Q1 Q2 phân rã bảo tồn thơng tin Q thoả hai phụ thuộc hàm sau: Q1 ∩ Q2 → Q1\Q2 Q1 ∩ Q2 → Q2\Q1 Vì X → Y ∈ F+ phân rã sau bảo tồn thơng tin Q1(XY) Q2(R-Y) Thật vậy, Q1 có X→Y Q1∩Q2=X, Q2\Q1=Y Q1∩Q2→Q1\Q2 Ví dụ: Lược đồ GIANGDAY phân rã thành hai lược đồ sau bảo tồn thông tin Q1(MONHOC, SOTIET, LOP, GV) Q2(GV, HOCVI, DC) Q1∩Q2=GV mà GV →HOCVI,DẠNG CHUẨN Phương tiện để kiểm tra phân rã bảo tồn thơng tin: Phương tiện để kiểm tra phân rã bảo tồn thơng tin kỹ thuật Tableau: bảng T sau: … m Q1 Q2 … Qn - m cột cho m thuộc tính Q n dòng cho n quan hệ phân rã (i,j) =aj Qi có chứa thuộc tính thứ j Q =bk ngược lại, k bắt đầu tăng dần Áp dụng luật phụ thuộc hàm để biến đổi bảng T thành T * theo thuật toán sau: While (X → A ∈ F) Begin Chọn dòng W1 W2 cho W1.X = W2.X If W1.A W2.A then Begin Th1: W1A = aj W2.A = bk thay W2.A W1.A Th2: W1A = bk W2.A = aj thay W1.A W2.A Th3: W1A = aj W2.A = bk’ thay W2.A W1.A End End Cuối xem bảng kết bảng xuất hàng gồm kí hiệu a1, a2, a3, …, am phân rã bảo tồn thơng tin Ví dụ: Kiểm tra Q1(MONHOC, SOTIET, LOP, GV), Q2(GV, HOCVI, DC) F = {MONHOC → SOTIET; MONHOC, LOP → GV; GV → HOCVI, DẠNG CHUẨN} T MONHOC SOTIET LOP GV HOCVI DC Q1 a1 a2 a3 a4 b1 b2 Q2 b3 b4 b5 a4 a5 a6 Từ GV → HOCVI, DẠNG CHUẨN ta thay b1 thành a5 va b2 thành a6 T* MONHOC SOTIET LOP GV HOCVI DC Q1 a1 a2 a3 a4 a5 a6 Q2 b3 b4 b5 a4 a5 a6 Như ta dòng thứ tồn aj suy phân rã bảo tồn thơng tin 1.2.2 Phân rã bảo toàn phụ thuộc hàm Cho lược đồ quan hệ Q tập phụ thuộc hàm F xác định Q Phân rã Q thành {Q1, Q2…Qn} Q xác định tập phụ thuộc hàm F i: Fi = {X → Y : XY ⊆ Qi X → ∈ F+} Fi gọi tham chiếu F+ lên Qi Phân rã bảo toàn phụ thuộc hàm nếu: Đặt F’ = F1 ∪ F2 ∪ … ∪ Fn F’ = F (nghĩa F’+ = F+ ) Để kiểm tra phân rã bảo toàn phụ thuộc hàm ta kiểm tra F1 ∪ F2 ∪ … ∪ Fn ≡ F Lưu ý: Khi tính Fi thường hay thiếu sót phụ thuộc hàm Fi chiếu F+ lên Qi khơng phải F lên Qi Như để tính đầy đủ Fi Qi ta tính bao đóng tất tập thực Qi X ⊂ Qi Nếu X+ ∩ Qi ≠ X (X → (X+ ∩ (Qi - X)) ∈ Fi Ví dụ: Cho Q(ABCD), F = {A → B, B → C, C → D, D →A} Phân rã Q thành {Q1(AB), Q2(BC), Q3(CD)} dễ dàng nhầm lẫn: Q1(AB), F1 = {A → B} Q1(BC), F2 = {B → C} Q1(CD), F1 = {C → D} Lúc F’ = F1 ∪ F2 ∪ F3 = {A → B, B → C, C → D} Rõ ràng F’ không tương đương với F F’+ ≠ F+ D →A ∉ F’+ Như vội vã kết luận phân rã khơng bảo tồn phụ thuộc hàm sai Thực ra: Q1(AB) Af+ = ABCD ⇒A → B ∈ F1 Bf+ = BCDA ⇒ B →A ∈ F1 Vậy F1 = {A → B, B →A} Q2(BC) Bf+ = BCDA ⇒ B → C ∈ F2 Cf+ = CDAB ⇒ C → B ∈ F2 Vậy F2 = {B → C, C → B} Q3(CD) Cf+ = CDAB ⇒ C → D ∈ F3 Df+ = DABC ⇒ D → C ∈ F3 Vậy F3 = {C → D, D → C} Vậy F’ = F1 ∪ F2 ∪ F3 = { A → B,B →A, B → C, C → B, C → D, D → C} Ta tính F’+ = F+ ⇒ F’ ≡ F Kết luận: Phân rã bảo toàn phụ thuộc hàm 1.3 Dạng chuẩn (Normal Form-NF) Lược đồ quan hệ đạt dạng chuẩn tốt việc kiểm tra RBTV dạng phụ thuộc hàm việc kiểm tra khóa Nếu xây dựng tập giá trị khố khơng trùng (DBMS kiểm tra điều này) khơng có trùng lắp thơng tin, nghĩa khơng có liệu mà ta suy dựa vào liệu khác quan hệ Xét dạng chuẩn dựa phụ thuộc hàm - Thuộc tính khố: Thuộc tính tham gia vào khố quan hệ chứa no - Ngược lại gọi thuộc tính khơng khố Ví dụ: Q(ABCDEF) A, B, D, E thuộc tính khố C, F thuộc tính khơng khố - Thuộc tính đơn: Miền giá trị khơng phải tích hợp miên giá trị khác - X → A phụ thuộc hàm nguyên tố tập F nếu: Không ∃ Y tập thực X, Y →A ∈ F+ Ví dụ: Cho F = {AB → C, B → C} thì: AB → C: khơng phụ thuộc hàm ngun tố có B → C B → C: phụ thuộc hàm nguyên tố - A thuộc tính phụ thuộc đầy đủ vào X X → A phụ thuộc hàm nguyên tố Ví dụ C thuộc tính phụ thuộc đầy đủ vào B không phụ thuộc đầy đủ vào AB 1.3.1 Dạng chuẩn 1(1NF) Lược đồ quan hệ Q dạng 1NF tất thuộc tính Q thuộc tính đơn Lược đồ CSDL C 1NF tất Qi C 1NF Đây dạng chuẩn đơn giản nhất, khơng ý đến phụ thuộc hàm có nhiều trùng lắp thơng tin phụ thuộc hàm gây 1.3.2 Dạng chuẩn (2NF) Lược đồ quan hệ Q dạng 2NF 1NF tất thuộc tính khơng khố phụ thuộc đầy đủ vào khoá Lược đồ CSDL C dạng 2NF tất Qi C 2NF VD1: Cho Q(ABCD), F = {A → C, B → D}, khơng đạt 2NF vì: Khố AB C,D hai thuộc tính khơng khố AB → C khơng phụ thuộc hàm ngun tố có A → C AB → D không phụ thuộc hàm ngun tố có B → D C D khơng phụ thuộc đầy đủ vào khố Xét tình trạng Q có trùng lắp thơng tin (các giá trị ngoặc trùng lắp) Q A B C D (a1) b1 (c1) d1 (a1) b2 (?) d2 a2 (b3) c2 (d3) a3 (b3) c3 (?) VD2: Cho Q(ABCD), F = {AB → C, C → D} 2NF vì: Khố AB C,D hai thuộc tính khơng khố AB → C AB → D phụ thuộc hàm nguyên tố ⇒ C D phụ thuộc đầy đủ vào khoá Xét tình trạng Q có trùng lắp thơng tin: Q A B C D a1 b1 (c1) (d1) a2 b2 (c1) (?) Ta thấy VD2, C → D gây trùng lắp thơng tin thuộc tính khơng khố D phụ thuộc bắc cầu vào khố(nghĩa phụ thuộc hàm khoá → D suy diễn nhờ qui tắc bắc cầu Armstrong) 1.3.3 Dạng chuẩn (3NF) Lược đồ quan hệ Q dạng 3NF 2NF tất thuộc tính khơng khố khơng phụ thuộc bắc cầu vào khố Định nghĩa định nghĩa lại sau: Lược đồ quan hệ Q dạng 3NF 2NF tất phụ thuộc hàm không hiển nhiên X → Y F+ thoả hai điều kiện sau: (i) X siêu khố (X chứa khố đó) (ii) Mỗi thuộc tính tập (Y - X) nằm khố Lược đồ CSDL C dạng 3NF tất Qi C dạng 3NF VD1: Cho Q(ABCD), F = {AB → CD} dạng 3NF Vì AB → CD có vế trái siêu khoá VD2: Cho Q(ABCDE), F = {AB → CDE, B → D, DE →ABC} dạng 3NF vì: AB → CD có vế trái siêu khố B → D có (VP) – (VT) = D chứa khố DE DE →ABC có vế trái siêu khố Xét tình trạng Q có trùng lắp thông tin: Q A B C D E a1 (b1) c1 (d1) e1 a2 (b1) c2 (?) e1 Ở dạng 3NF có nhiều khố có khả trùng lặp thông tin phụ thuộc hàm loại (ii) định nghĩa dạng chuẩn 1.3.4 Dạng chuẩn Boyce –codd (BCNF) Lược đồ quan hệ Q BCNF dạng 1NF tất phụ thuộc hàm khơng hiển nhiên X → Y F+ X siêu khoá (X chứa khoá đó) Lược đồ CSDL C dạng BCNF tất Qi C dạng BCNF VD: Cho Q(ABCD), F{AB → CD, D →AB} dạng BCNF vì: AB → CD có vế trái siêu khố D →AB có vế trái siêu khố D → C ∈ F+ vế trái siêu khố Ở dạng chuẩn BCNF khơng có trùng lắp thông tin phụ thuộc hàm gây Tuy nhiên dạng BCNF có điều kiện q khắt khe, đơi người ta cần chấp nhận dạng 3NF §2: CHUẨN HOÁ LƯỢC ĐỒ CƠ SỞ DỮ LIỆU 2.1 Phương pháp phân rã (Decomposition) Dựa vào điều kiện phân rã bảo tồn thơng tin: Q thành Q1 Q2 thoả Q1 ∩ Q2 → Q1\Q2 hay Q1 ∩ Q2 → Q2\Q1 Thuật toán phân rã thành lược đồ dạng chuẩn BCNF sau: Cho Q tập F xác định Q Phân_rã := {Q} ; done := false ; Tính F+; while (not done) if (có Qi Phân_rã không dạng BCNF) then Begin X →¸Y phụ thuộc hàm khơng hiển nhiên Qi thoả: X → Qi ∉ F+ X ∩ Y = ∅ Phân_rã := (Phân_rã – Qi) ∪ (XY) ∪ (Ri – Y) End else done := true ; Kết ta tập Phân_rã gồm lược đồ dạng BCNF VD: Cho Q(ABCD), F = {AB → C, C→A, B → D} Q(ABCD) không dạng BCNF, chọn C →A Phân rã thành Q1 Q2 Q1(AC), F1 = {C →A}, BCNF Q2(BCD), F2 = {B → D}, không BCNF Q2(BCD) không BCNF, chọn B → D Phân rã thành Q21 Q22 Q1(AC), F1 = {C →A}, BCNF Q21(BD), F21 = {B → D}, BCNF Q22(BC), F22 = ∅, BCNF Cuối ta phân rã : Q1(AC), F1 = {C →A}, BCNF Q2(BD), F2 = {B → D}, BCNF Q3(BC), F3 = ∅, BCNF Phân rã bảo tồn thơng tin thành BCNF khơng đảm bảo lúc bảo tồn phụ thuộc hàm (VD tập phụ thuộc hàm cuối F1, F2 F3 không tương đương với tập phụ thuộc hàm F ban đầu) 2.2 Phương pháp tổng hợp (Synthesis) Thuật toán sau cho phân rã đạt tối thiểu dạng 3NF Cho Q tập F xác định Q Tính Fc phủ tối thiểu F; Xác định khoá Q ; i := ; for (Mỗi phụ thuộc hàm X → Y Fc) if (khơng có Qj, j = 1,2,…i chứa XY) then begin i := i + ; Qi := XY ; end; if (Khơng có Qj, j=1,2,…i chứa khoá Q) then begin i := i + 1; Qi := khoá Q ; end ; return (Q1,Q2,…,Qi) ; VD: Phân rã Q(ABCDE), F = {A → CD, C → D, B → E} Fc = {A → C, C → D, B → E} Suy ra: Q1 = AC Q2 = CD Q3 = BE Khơng có Qi chứa khố nên ta có: Q4 = AB Vậy phân rã thành: Q1(AC), F1 = {A → C}, đạt 3NF (đạt BCNF) Q2(CD), F2 = {C → D}, đạt 3NF (đạt BCNF) Q3(BE), F3 = {B → E}, đạt 3NF (đạt BCNF) Q4(AB), F2 = ∅, đạt 3NF (đạt BCNF) Thuật tốn bảo tồn phụ thuộc hàm phụ thuộc hàm Fc cho quan hệ quan hệ xác định ln phụ thuộc hàm Vậy F’ = ∪Fi, F’ ≡ Fc ≡ F Thuật toán chắn bảo tồn thơng tin có lược đồ phân rã chứa khoá Bài tập chương V Bài tập 1: Xác định khoá xét phân rã sau theo hai tiêu chuẩn bảo toàn thơng tin bảo tồn phụ thuộc hàm a Q(ABCD), F = {A → BC, C → D} Q1(AB), F1 = {A → B} Q2(CD), F2={C→D} b Q(ABCD), F={A→B, AC→D} Q1(AB), F1={A→B} Q2(ADC),F2={AC→D} c Q(ABDCE),F={A→C, B→C, C→D, DE→C, CE→A} Q1(AB),F1={A→D} Q2(CD),F2=∅ Q3(AB),F3=∅ Q4(CD),F4={C→D, DE→C, CE→D} Q5(AB), F5=∅ d Q(ABCD), F={A→B, C→D} Q1(AB), F1={A→B} Q2(CD), F2={C→D} Bài tập 2: Xét dạng chuẩn lược đồ quan hệ sau: a Q(ABCD), F={A→B, C→D} b Q(ABCD), F={AB→C, C→D} c Q(ABCD), F={AB→CD, CD→AB, C→B} d Q(ABCD), F={AB→CD, D→E, DE→ABC} e Q(ABCDEF), F={AB→E, AC→F, AD→B, B→C, C→D} Bài tập 3: Cho lược đồ quan hệ Q(ABCDEF), F={C→F, E→A, CE→D, A→B} a Xác định khoá Q b Phân rã thành dạng chuẩn Boyce-Codd bảo tồn thơng tin c Phân rã thành dạng chuẩn bảo tồn thơng tin bảo tồn phụ thuộc hàm Bài tập 4: Giả sử phân rã thành Q1(CDEF) Q2(ABE), xác định F1, F2 đánh giá phân rã Bài tập 5: Nếu phân rã thành Q1(CF), Q2(AE), Q3(CDE), Q4(AB) Hãy xác định F1, F2, F3, F4 đánh giá chúng Bài tập 6: Cho lược đồ quan hệ VẬNCHUYỂN(TÀU, LOẠITÀU, CHUYẾN, HÀNG, CẢNG, NGÀY) Mỗi tàu (TÀU) thuộc loại tàu (LOẠITÀU), chuyến có mã số riêng biệt (CHUYẾN) dùng để xác định chuyến tàu (TÀU) chở khối lượng hàng hoá (HÀNG), tàu ngày(NGÀY) cập vào cảng (CẢNG) chuyến vận chuyển (CHUYẾN) a Xác định tập phụ thuộc hàm b Xác định dạng chuẩn VẬNCHUYỂN c Nếu VẬNCHUYỂN chưa tốt tìm phân rã tốt cho TÀI LIỆU THAM KHẢO PGS Phạm Văn Ất, Hướng dẫn sử dụng Microsoft Access 97, NXB KHKT, 1999 Vũ Đức Thi, Cơ sở liệu kiến trúc thực hành NXB thống kê, Hà nội 1997 Đỗ Trung Tuấn, Cơ sở liệu (DataBase), NXB Giáo dục Hà nội, 1998 TS Trần Văn Tư, Microsoft SQL Server 7.0, NXB Thống k, 2000 Trần Thành Trai, Nhập môn Cơ sở liệu, NXB Giáo dục, TP.Hồ Chí Minh 1996 Lê Tiến Vương Nhập môn sở liệu NXB Thống kê Hà nội, 2000 Tái lần Introdution to Oracle SQL and PL/SQL Using Procedure Builder Vol 1,2,3,4 ORACLE 7.3 1996 Introdution to Oracle: SQL, SQL*PLUS and PL/SQL Education Services Vol 1,2,3,4,5,6,7 ORACLE 1992 Mục lục CHƯƠNG III 49 NGÔN NGỮ DỮ LIỆU SQL 49 § 1: KHÁI QUẤT VỀ NGƠN NGỮ DỮ LIỆU SQL 49 § 2: CÂU LỆNH SELECT 51 2.1 Mệnh đề SELECT .51 2.2 Mệnh đề WHERE 53 2.3 Mệnh đề FROM 53 2.4 Mệnh đề ORDER BY 54 2.5 Mệnh đề GROUP BY – Phân nhóm liệu 54 § 3: CÁC HÀM THAO TÁC DỮ LIỆU .55 3.1 Các hàm tính tốn nhóm bảng ghi 55 3.2 Các hàm tính tốn ghi 56 § 4: TRUY VẤN THƠNG TIN TỪ NHIỀU BẢNG 57 4.1 Kết nối tự nhiên 58 4.2 Kết nối ngoại (Outer join) 58 4.3 Truy vấn lồng (Query with SubQuery) 58 § 5: CÁC LỆNH CẬP NHẬT DỮ LIỆU 62 5.1 Bổ sung giá trị 62 5.2 Tạo bảng với giá trị lấy từ CSDL 63 5.3 Sửa nội dung 64 5.4 Xoá 64 § 6: CÁC LỆNH LIÊN QUAN ĐẾN CẤU TRÚC 65 6.1 Cách đặt tên đối tượng kiểu liệu .65 6.2 Tạo bảng CSDL 66 6.3 Xoá bảng .67 6.4 Sửa đổi cấu trúc bảng 67 § 7: CÁC LỆNH GIAO QUYỀN TRUY NHẬP CSDL 68 Bài tập chương 69 Bài tập chương V 103 ... Siêu CSDL (MetaDataBase) (*) Quá trình hoạt động chương trình ứng dụng thơng qua tầng CSDL: Hình 1.6.2 Quá trình hoạt động chương trình ứng dụng thơng qua tầng CSDL Hình 1.6.2 cho cách nhìn trình. .. thành cơng liệu chuyển vào vùng đệm hệ quản trị CSDL Qua xử lý, hệ quản trị CSDL chuyển liệu vào vùng đệm chương trình ứng dụng đề xử lý (qua đường 8a) cho kết trả lời chương trình ứng dụng qua đường... chữ nhật thể thuộc tính loại thực thể Bài tập chương I Bài tập 1: Dựa vào khái niệm học biểu diễn CSDL có loại mẫu tin Phòng, Nhân viên, Cơng việc, lý lịch trình bày mơ hình mạng theo cách tiếp