Giáo trình Cơ sở dữ liệu
lượt xem 4
download
Giáo trình Cơ sở dữ liệu cung cấp cho người học những kiến thức như Tổng quan về cơ sở dữ liệu; Đại số quan hệ; Ngôn ngữ SQL; Tối ưu hóa câu hỏi; Lý thuyết về thiết kế cơ sở dữ liệu quan hệ; Chuẩn hóa sơ đồ quan hệ;...Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình Cơ sở dữ liệu
- TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT VĨNH LONG KHOA CÔNG NGHỆ THÔNG TIN GIÁO TRÌNH CƠ SỞ DỮ LIỆU BIÊN SOẠN Nguyễn Ngọc Nga Vĩnh Long - 2013
- LỜI NÓI ĐẦU Trong tình hình phát triển hiện nay, sự gia tăng nhanh chóng của thông tin trong khi đó các hình thức lƣu trữ cổ điển không còn đáp ứng đƣợc nữa nên việc tổ chức, sắp xếp, lƣu trữ, xử lý thông tin cần phải tìm đƣợc nơi lƣu trữ thật nhiều nhƣng việc tìm kiếm, xử lý phải nhanh chóng vì thế việc áp dụng công nghệ thông tin vào công việc quản lý là sự lựa chọn hoàn toàn đúng đắn. Giáo trình cơ sở dữ liệu này đƣợc biên soạn theo chƣơng trình đào tạo chuyên ngành tin học ở bậc Đại học và Cao đẳng của Bộ Giáo Dục Đào Tạo và kinh nghiệm giảng dạy thực tế của các giảng viên. Giáo trình trình bày những vấn đề cốt lõi nhất của môn cơ sở dữ liệu. Các bài học đƣợc trình bày ngắn gọn, có nhiều ví dụ thực tế minh hoạ. Cuối mỗi chƣơng đều có bài tập để sinh viên luyện tập. Giáo trình này có thể giúp các sinh viên trong việc học môn cơ sở dữ liệu ở bậc Cao đẳng, Đại học; trong các kỳ thi hết môn cũng nhƣ trong các kỳ thi liên thông. Chúng tôi mong rằng các sinh viên tự tìm hiểu mỗi vấn đề trƣớc khi lên lớp, để có nhiều cơ hội trao đổi hơn về các vấn đề liên quan đến cơ sở dữ liệu. Từ đó, sinh viên có thể thu thập nhiều kiến thức thực tiễn và đạt hiệu quả trong môn học. Trong giáo trình trình bày các vấn đề cơ bản của cơ sở dữ liệu cùng với các ví dụ minh họa thực tiễn và đƣợc chia thành các chƣơng sau: Chƣơng 1: Tổng quan về cơ sở dữ liệu Chƣơng 2: Đại số quan hệ Chƣơng 3: Ngôn ngữ SQL Chƣơng 4: Tối ƣu hóa câu hỏi Chƣơng 5: Lý thuyết về thiết kế cơ sở dữ liệu quan hệ Chƣơng 6: Chuẩn hóa sơ đồ quan hệ Trong quá trình giảng dạy và biên soạn giáo trình này, chúng tôi đã nhận đƣợc sự động viên của qúi thầy cô trong Ban Giám Hiệu nhà trƣờng cũng nhƣ những ý kiến của các đồng nghiệp. Chúng tôi xin chân thành cảm ơn và hy vọng rằng giáo trình này sẽ giúp cho việc dạy và học môn cơ sở dữ liệu của trƣờng chúng ta ngày càng tốt hơn. Mặc dù chúng tôi đã rất cố gắng trong quá trình biên soạn tài liệu này nhƣng không thể tránh khỏi những thiếu sót và hạn chế. Rất mong nhận đƣợc sự đóng góp ý kiến quý báu từ đồng nghiệp, sinh viên và các bạn đọc để giáo trình ngày càng hoàn thiện hơn. Xin chân thành cảm ơn!
- Chƣơng 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU Trong chƣơng này trình bày những khái niệm cơ bản về các hệ cơ sở dữ liệu do E.F Codd đề xuất. Những khái niệm này bao gồm mục tiêu của một hệ cơ sở dữ liệu. Sự cần thiết phải tổ chức dữ liệu dƣới dạng cơ sở dữ liệu. Tính độc lập của dữ liệu thể hiện mô hình hình kiến trúc 3 mức. Vì vậy có thể nói cơ sở dữ liệu phản ảnh tính trung thực, khách quan của thế giới dữ liệu. Không dƣ thừa thông tin và cũng không thiếu thông tin. Nội dung của chƣơng bao gồm các phần: • Cơ sở dữ liệu là gì. • Sự cần thiết của hệ cơ sở dữ liệu. • Các mô hình cơ sở dữ liệu. • Mục tiêu của các hệ cơ sở dữ liệu. • Hệ quản trị & ngƣời quản trị cơ sở dữ liệu. • Tổ chức lƣu trữ dữ liệu. • Các ràng buộc toàn vẹn trên cơ sở dữ liệu quan hệ. 1.1. Mở đầu 1.1.1. Định nghĩa cơ sở dữ liệu Cơ sở dữ liệu (DataBase – DB) là một tập hợp chứa các thông tin có cấu trúc để mô tả các đối tƣợng trong thế giới thực có liên quan với nhau. Ví dụ: Cơ sở dữ liệu quản lý điểm (QLDiem) của sinh viên sẽ lƣu trữ các thông tin của ngành học, sinh viên, môn học, … 1.1.2. Định nghĩa môn cơ sở dữ liệu Môn CSDL là lĩnh vực của tin học chuyên nghiên cứu các cơ chế, nguyên lý, phƣơng pháp tổ chức các nhóm dữ liệu trên các bộ nhớ ngoài nhằm phục vụ cho việc khai thác dữ liệu đƣợc tốt hơn. 1.1.3. Hệ quản trị cơ sở dữ liệu (DataBase Management System - DBMS) Hệ quản trị cơ sở dữ liệu (HQTCSDL) là hệ thống các chƣơng trình để ngƣời dùng thực hiện khai thác cơ sở dữ liệu theo ba chức năng: Mô tả, lƣu trữ, tìm kiếm và cập nhật dữ liệu. Hệ quản trị cơ sở dữ liệu gồm các thành phần: + Ngôn ngữ giao tiếp giữa ngƣời dùng (User) và CSDL + Từ điển dữ liệu (Data Dictionary) + Biện pháp bảo mật tốt + Cơ chế giải quyết tranh chấp dữ liệu. + Cơ chế sao lƣu (Backup) và phục hồi (Restore) dữ liệu khi có sự cố. + Cung cấp một giao diện (Interface) tốt
- + Bảo đảm tính độc lập giữa dữ liệu và chƣơng trình Một số HQTCSDL hiện nay: Visual Foxpro, Microsoft Access, My SQL, SQL Server, Oracle,… Chƣơng trình Ngôn ngữ mô mô tả cấu trúc tả dữ liệu Từ điển dữ liệu CSDL Chƣơng trình Ngôn ngữ thao ứng dụng tác Sơ đồ tổng quát của HQTCSDL 1.1.4. Ƣu điểm của cơ sở dữ liệu + Giảm sự trùng lắp thông tin xuống mức thấp nhất vì thế sẽ bảo đảm đƣợc tính nhất quán và toàn vẹn dữ liệu. + Đảm bảo dữ liệu có thể truy xuất theo nhiều cách khác nhau. + Khả năng chia sẻ thông tin cho nhiều ngƣời sử dụng. 1.1.5. Các mức biểu diễn một CSDL Để hệ thống có thể dùng đƣợc thì phải tìm dữ liệu một cách hiệu quả. Điều này dẫn đến việc cần phải thiết kế những cấu trúc dữ liệu phức tạp đối với việc biểu diễn dữ liệu trong cơ sở dữ liệu. Vì nhiều ngƣời sử dụng các hệ thống cơ sở dữ liệu không phải là ngƣời hiểu biết nhiều về máy tính nên những ngƣời phát triển hệ thống phải che dấu đi sự phức tạp khỏi ngƣời sử dụng thông qua một số mức trừu tƣợng, nhằm làm đơn giản hóa sự tƣơng tác của ngƣời sử dụng đối với hệ thống. Có 3 mức biểu diễn dữ liệu nhƣ sau: Mức trong (mức vật lý - Physical level) • Nói đến cách thức dữ liệu đƣợc lƣu trữ thực sự. Trả lời câu hỏi dữ liệu gì và lƣu trữ chúng nhƣ thế nào? Cần các chỉ mục gì? • Ví dụ nhƣ chỉ mục, B-cây, băm. • Những ngƣời thao tác tại mức này là ngƣời quản trị CSDL và những ngƣời dùng chuyên môn. Mức quan niệm hay mức logic (conception level, logical level) • Trả lời câu hỏi cần phải lƣu trữ bao nhiêu loại dữ liệu? Đó là những dữ liệu gì? Mối quan hệ giữa chúng nhƣ thế nào? • Nhƣ vậy CSDL mức vật lý là sự cài đặt cụ thể của CSDL mức quan niệm.
- Mức ngoài hay mức khung nhìn (view level) • Là mức của ngƣời sử dụng và các chƣơng trình ứng dụng. • Làm việc tại mức này là: Các nhà chuyên môn, kỹ sƣ tin học, ngƣời sử dụng không chuyên. • Mỗi ngƣời sử dụng hay mỗi chƣơng trình ứng dụng có thể đƣợc nhìn CSDL theo một góc độ khác nhau. Tuỳ thuộc vào vai trò (quyền) của ngƣời sử dụng mà có thể thấy tất cả hoặc một phần của CSDL. Ngƣời sử dụng hay chƣơng trình ứng dụng có thể không đƣợc biết về cấu trúc tổ chức lƣu trữ thông tin trong CSDL. Họ chỉ có thể làm việc trên một phần CSDL theo cách nhìn do ngƣời quản trị hay chƣơng trình ứng dụng quy định, gọi là khung nhìn (View). MỨC NGOÀI KHUNG NHÌN KHUNG NHÌN MỨC QUAN NIỆM SƠ ĐỒ QUAN NIỆM MỨC SƠ ĐỒ TRONG TRONG CƠ SỞ DỮ LIỆU Sơ đồ ba mức trong CSDL 1.1.6. Tính độc lập của dữ liệu Tính độc lập dữ liệu là tính bất biến của các chƣơng trình ứng dụng đối với các thay đổi trong cấu trúc lƣu trữ và chiến lƣợc truy xuất dữ liệu. Hay nói cách khác, độc lập dữ liệu là việc tách các mô tả dữ liệu ra khỏi các chƣơng trình ứng dụng sử dụng dữ liệu đó. + Sự phụ thuộc dữ liệu của các ứng dụng hiện nay: Một hệ thống ứng dụng đƣợc gọi là phụ thuộc dữ liệu khi không thể thay đổi đƣợc cấu trúc lƣu trữ hoặc chiến lƣợc truy xuất mà không ảnh hƣớng đến chƣơng trình ứng dụng. + Yêu cầu của các hệ ứng dụng: Các hệ ứng dụng khác nhau cần có những cái nhìn khác nhau đối với những dữ liệu nhƣ nhau. Ngƣời quản trị cơ sở dữ liệu phải có khả năng thay đổi cấu trúc lƣu trữ hoặc chiến lƣợc truy xuất để đáp ứng các yêu cầu thay đổi mà không cần sửa đổi các chƣơng trình ứng dụng hiện có. + Phân loại tính độc lập dữ liệu:
- Độc lập dữ liệu mức vật lý: Các thay đổi về cách tổ chức vật lý của CSDL có thể ảnh hƣớng đến tính hiệu quả của các chƣơng trình ứng dụng, nhƣng chúng không yêu cầu viết lại các chƣơng trình. Độc lập dữ liệu mức logic: Khi sử dụng CSDL, có thể thay đổi sơ đồ quan niệm, nhƣ thêm thông tin vào các kiểu khác nhau của thực thể, hay xóa bớt thông tin về các thực thể. Nhiều thay đổi của sơ đồ quan niệm không làm ảnh hƣởng đến các sơ đồ đang có, hoặc có thể thực hiện bằng các định nghĩa lại cách ánh xạ từ sơ đồ con đến sơ đồ quan niệm. Do đó, không cần phải sửa đổi lại các chƣơng trình ứng dụng. 1.2. Các mô hình của cơ sở dữ liệu Mô hình cơ sở dữ liệu là trừu tƣợng hóa môi trƣờng thực. Mỗi loại mô hình cơ sở dữ liệu đặc trƣng cho một cách tiếp cận dữ liệu khác nhau của những nhà phân tích thiết kế CSDL. Mỗi loại mô hình cở sở dữ liệu đều có những ƣu điểm và những mặt hạn chế của nó, nhƣng vẫn có những mô hình dữ liệu nổi trội và đƣợc nhiều ngƣời quan tâm nghiên cứu. Sau đây chúng ta sẽ điểm qua lịch sử phát triển của các mô hình dữ liệu. Vào những năm sáu mƣơi, thế hệ đầu tiên của CSDL ra đời dƣới dạng mô hình thực thể kết hợp, mô hình mạng và mô hình phân cấp. Vào những năm bảy mƣơi, thế hệ thứ hai của CSDL ra đời. Đó là mô hình dữ liệu quan hệ do EF. Codd phát minh. Mô hình này có cấu trúc logic chặt chẽ. Đây là mô hình đã và đang đƣợc sử dụng rộng khắp trong công tác quản lý trên phạm vi toàn cầu. Việc nghiên cứu mô hình dữ liệu quan hệ nhằm vào lý thuyết chuẩn hóa các quan hệ và là một công cụ quan trọng trong việc phân tích thiết kế các hệ CSDL hiện nay. Mục đích của nghiên cứu này nhằm bỏ đi các phần tử không “bình thƣờng” của quan hệ khi thực hiện các phép cập nhật, loại bỏ các phần tử dƣ thừa. Sang thập kỷ tám mƣơi, mô hình CSDL thứ ba ra đời, đó là mô hình cơ sở dữ liệu hƣớng đối tƣợng, mô hình cơ sở dữ liệu phân tán, mô hình cơ sở dữ liệu suy diễn,… 1.2.1. Mô hình thực thể quan hệ (Entity Relationship Model): Là mô hình cho phép mô tả các thực thể thông qua các thuộc tính và mối liên hệ giữa các thực thể. Một trong những cách biểu diễn mô hình thực thể kết hợp là dùng đồ thị và sơ đồ khối. Thực thể: Là một đối tƣợng của thế giới thực và đƣợc phân biệt với các thực thể khác. Ví dụ: Con ngƣời là một thực thể, Xe máy là một thực thể,… Tập thực thể (Loại thực thể): Là một nhóm các thực thể có các thuộc tính “tƣơng tự” nhau Ví dụ: Tập hợp các con ngƣời làm chung một cơ quan. Thuộc tính và khóa:
- Thuộc tính: Là tập các đặc tính (thông tin) của tập thực thể, mỗi thuộc tính có miền giá trị, hoặc các ràng buộc mô tả. Ví dụ: Tập các thực thể làm chung một cơ quan ta gọi chung là nhân viên. Mỗi nhân viên có các thông tin cơ bản: họ tên, ngày sinh, phái, số chứng minh nhân dân, ... Trong đó: Họ tên: Có ràng buộc là chỉ chấp nhận các chữ cái, khoảng trống. Ngày sinh: Có miền giá trị sao cho tuổi từ 18 đến 60 (phái là nam) hay 55 (phái là nữ). Phái: Chỉ chấp nhận một trong hai giá trị hoặc nam hoặc nữ. Số chứng minh nhân dân: Có ràng buộc là chỉ chấp nhận các chữ số. Đặt tên cho thuộc tính chỉ nên đặt ngắn gọn gợi nhớ bằng tiếng Việt không dấu, không khoảng trống, không ký tự đặc biệt. Khóa: Là tập hợp các thuộc tính nhỏ nhất để phân biệt sự khác nhau giữa hai thực thể trong một tập thực thể. Ví dụ: Trong tập thực thể nhân viên thì thuộc tính phân biệt giữa các thực thể nhân viên là số chứng minh nhân dân hoặc để thuận tiện cho việc quản lý trong nội bộ thì mỗi thực thể nhân viên sẽ đƣợc nhận một mã số riêng. Mối kết hợp: Là mô tả sự liên hệ giữa hai tập thực thể. Ví dụ: Tập thực thể sinh viên (SINHVIEN) và tập thực thể ngành (NGANH) có mối kết hợp là học (Hoc). Ta thƣờng gọi là SINHVIEN Hoc NGANH. Mỗi thực thể sinh viên có các thuộc tính: mã số (MaSV) là khóa, họ và tên (HoTen), ngày sinh (NgaySinh). Mỗi thực thể ngành có các thuộc tính: mã ngành (MaNganh) là khóa, tên ngành (TenNganh). Bản số: Là một cặp số (min, max) trong đó: Min: Qui định số lƣợng ít nhất của thực thể trong tập thực thể. Max: Qui định số lƣợng lớn nhất các thực thể trong tập thực thể kia có quan hệ với một thực thể trong tập thực thể này. Ví dụ: Sơ đồ thực thể quan hệ của Sinh viên và Ngành
- Có ít nhất 1 sinh 1 sinh viên học viên trong tập tối đa 1 ngành sinh viên SINHVIEN NGANH (1,1) (1,n) Học MaSV MaNganh HoTen TenNganh NgaySinh Có ít nhất 1 1 ngành có ngành nhiều sinh viên 1.2.2. Mô hình mạng (Network Model) Là một đồ thị có hƣớng, mỗi nút là một thực thể, mỗi nút có thể kết hợp với các nút khác để biểu diễn mỗi liên hệ giữa chúng. Ví dụ: Mô hình mạng thể hiện mối liên hệ giữa Sinh Viên và Ngành 1 .. n Sinh Viên Học Ngành Ý nghĩa: Một sinh viên theo học 1 ngành, một ngành có nhiều sinh viên. 1.2.3. Mô hình phân cấp (Hierachical Model): Là một cây, trong đó mỗi nút của cây biểu diễn một thực thể, giữa nút con và nút cha đƣợc liên hệ với nhau theo một mối liên hệ xác định. Ví dụ: Mô hình dữ liệu phân cấp thể hiện mối quan hệ giữa các thực thể: Tỉnh – Phƣờng Tỉnh/ Thành phố Hà Nội HCM Vĩnh Long .... Phƣờng 1 Phƣờng 2 Phƣờng 3 .... …
- 1.2.4. Mô hình quan hệ (Relational Model) Cơ sở dữ liệu đƣợc xây dựng theo lý thuyết do E.F.Codd giới thiệu năm 1970. Thuật ngữ “quan hệ” là bảng dữ liệu hai chiều đƣợc Codd gọi là bảng quan hệ. Mô hình quan hệ khác hẳn với các mô hình trƣớc nó và từ năm 1980 đã trở thành mô hình đƣợc dùng rộng rãi để phát triển hệ quản trị CSDL. Mô hình quan hệ là mô hình đƣợc sử dụng xuyên suốt trong giáo trình này vì thế những đặc điểm liên quan đến mô hình này sẽ đƣợc trình bày khá chi tiết. * Bảng (Table): Là hình ảnh trực quan của quan hệ, bao gồm các dòng và các cột. Các cột ứng với các thuộc tính (field, trƣờng), các dòng ứng với bộ (mẫu tin, bản ghi, record). - Ví dụ 1: Cho quan hệ Ngành (NGANH) đƣợc mô tả dạng bảng nhƣ sau: NGANH MaNganh TenNganh CNTT Công Nghệ Thông Tin CKCT Cơ Khí Chế Tạo CNOT Công Nghệ Ô Tô Có sơ đồ quan hệ: NGANH=(MaNganh, TenNganh) hay NGANH (MaNganh, TenNganh) Trong đó MaNganh: Mã ngành TenNganh: Tên ngành Có các mẫu tin: Mẫu tin thứ nhất: Có mã ngành (MaNganh) là „CNTT‟; tên ngành (TenNganh) là „Công Nghệ Thông Tin‟. Mẫu tin thứ hai: Có mã ngành là „CKCT‟; tên ngành là „Cơ Khí Chế Tạo‟ … Lưu ý: Trong một quan hệ, không được chứa hai mẫu tin giống nhau. - Ví dụ 2: Cho quan hệ Sinh Viên nhƣ sau: Sinh Viên MaSV HoTen NgaySinh MaNganh SV001 Nguyễn Văn An 10/6/1993 CNTT SV002 Dƣơng Tùng Lê 12/4/1994 CKCT SV003 Phạm Thị Ái 02/10/1993 CNTT Có sơ đồ quan hệ: SINHVIEN=(MaSV, HoTen, NgaySinh, MaNganh) hay
- SINHVIEN(MaSV, HoTen, NgaySinh, MaNganh) Trong đó: MaSV là Mã số SV HoTen là Họ tên SV NgaySinh là Ngày sinh MaNganh là Mã ngành Có các mẫu tin: Mẫu tin thứ nhất: có mã số sinh viên (MaSV) là „SV001‟; họ tên (HoTen) là „Nguyễn Văn An‟; Ngày sinh (NgaySinh) là „10/06/1993‟; Mã ngành (MaNganh) là „CNTT‟ …. Dòng còn đƣợc gọi là: bộ, bản ghi, mẫu tin, record. * Giá trị rỗng Giá trị rỗng là giá trị có thể gán cho một thuộc tính khi không dùng giá trị khác đƣợc, hay khi ngƣời ta chƣa biết giá trị cần gán. NULL là giá trị đặc biệt, với nghĩa “không giống bất kỳ giá trị nào”, thậm chí không giống cả giá trị NULL khác. Hai nhân viên tại đơn vị có giá trị rỗng có thể không cùng đơn vị. * Khóa của quan hệ - Khóa (khóa chính – Primary Key) Khóa của quan hệ là một tập nhỏ nhất các thuộc tính dùng để phân biệt các bộ với nhau. Ví dụ: Cho quan hệ SINHVIEN (MaSV, HTSV, NS, MaNganh) có dữ liệu nhƣ sau: SINHVIEN MaSV HTSV NS MaNganh SV001 Nguyễn Văn An 10/6/1993 CNTT SV002 Dƣơng Tùng Lê 12/4/1994 CKCT SV003 Phạm Thị Ái 02/10/1993 CNTT SV010 Lê Lan 12/07/1995 CNOT SV020 Nguyễn Tài 10/07/1991 CNTT Với quan hệ SINHVIEN thì MaSV là khóa, MaSV sẽ dùng để phân biệt các sinh viên với nhau. Trong một quan hệ có thể có nhiều khóa, ta gọi là khóa ứng viên. Nhƣng ta chỉ chọn một khóa ứng viên làm khóa. Các tập thuộc tính trong khóa sẽ đặt ở đầu và đƣợc gạch dƣới. - Siêu khóa (Supper Key)
- Là một tập thuộc tính có chứa khóa. Nhƣ vậy, khóa là một trƣờng hợp của siêu khóa. Ví dụ: Cho quan hệ SINHVIEN (MaSV, HTSV, NS, MaNganh) Sinh Viên MaSV HTSV NS MaNganh SV001 Nguyễn Văn An 10/6/1993 CNTT SV002 Dƣơng Tùng Lê 12/4/1994 CKCT SV003 Phạm Thị Ái 02/10/1993 CNTT SV010 Lê Lan 12/07/1995 CNOT SV020 Nguyễn Tài 10/07/1991 CNTT Với quan hệ SINHVIEN thì MaSV là khóa và có nhiều siêu khóa, ví dụ nhƣ (MaSV, HTSV), (MaSV, NS), (MaSV, MaNganh),… - Khóa ngoại (Foreign Key) Là một tập thuộc tính không phải là khóa (primary key) của quan hệ R, nhƣng là khóa của quan hệ S khác (R≠S). Lúc này quan hệ S gọi là quan hệ cha, R gọi là quan hệ con. Khóa ngoại thƣờng đƣợc đặt cuối quan hệ, có thêm ký hiệu # ở phía trƣớc. Ví dụ: Cho hai quan hệ NGANH (MaNganh, TenNganh) và SINHVIEN (MaSV, HTSV, NgaySinh, #MaNganh) NGANH MaNganh TenNganh CNTT Công Nghệ Thông Tin CKCT Cơ Khí Chế Tạo CNOT Công Nghệ Ô Tô SINHVIEN MaSV HTSV NgaySinh MaNganh SV001 Nguyễn Văn An 10/6/1993 CNTT SV002 Dƣơng Tùng Lê 12/4/1994 CKCT SV003 Phạm Thị Ái 02/10/1993 CNTT Ta dễ dàng nhận ra mã ngành (MaNganh) của SINHVIEN là khóa ngoại vì MaNganh là khóa của quan hệ Nganh. Ta có thể gọi cách khác quan hệ NGANH là cha của SINHVIEN. Giữa MaNganh của SINHVIEN và MaNganh của NGANH có ràng buộc toàn vẹn về khóa ngoại. * Ràng buộc toàn vẹn trên cơ sở dữ liệu quan hệ
- Ràng buộc toàn vẹn là các qui tắc đƣợc thiết kế để kiểm tra từng bộ dữ liệu có hợp lệ hay không trƣớc khi thực hiện thao tác (thêm, xóa, cập nhật) trên cơ sở dữ liệu. Có các ràng buộc sau: a. Ràng buộc về khóa chính (Primary key) Các tập thuộc tính trong khóa phải là nhỏ nhất, duy nhất, không đƣợc rỗng và phải xác định các thuộc tính còn lại trên mỗi bộ. b. Ràng buộc về khóa ngoại (Foreign key) Tập thuộc tính P (có các bộ là X) khóa chính của quan hệ S, là khóa ngoại của quan hệ R (có các bộ là Y). Khi đó đó giữa X và Y có ràng buộc sau: - Thực hiện xóa, cập nhật X thì ảnh hƣởng đến Y - Thêm Y phụ thuộc vào X. Có các loại ràng buộc trên khóa ngoại: no action, cascade, set default, set null. Ví dụ: Cho hai quan hệ Ngành (NGANH) và Sinh Viên (SINHVIEN) NGANH (MaNganh, TenNganh) NGANH MaNganh TenNganh CNTT Công Nghệ Thông Tin CKCT Cơ Khí Chế Tạo CNOT Công Nghệ Ô Tô SINHVIEN (MaSV, HoTen, NgaySinh, #MaNganh) SINHVIEN MaSV HoTen NgaySinh MaNganh SV001 Nguyễn Văn An 10/6/1993 CNTT SV002 Dƣơng Tùng Lê 12/4/1994 CKCT SV003 Phạm Thị Ái 02/10/1993 CNTT Xóa ngành „CNTT‟ từ quan hệ Ngành Cascade: xóa tất cả sinh viên có mã ngành là „CNTT‟. No action: Không thực hiện xóa đƣợc vì trong còn sinh viên có mã ngành „CNTT‟. Set default: Xóa ngành „CNTT‟ trong quan hệ Ngành và gán lại mã ngành cho các sinh viên có mã ngành „CNTT‟ thành giá trị mặc định Set null: Xóa ngành „CNTT‟ trong quan hệ Ngành và gán lại mã ngành cho các sinh viên có mã ngành „CNTT‟ thành giá trị null. Thêm Sinh Viên thì khóa ngoại Mã ngành phải có trong Mã ngành của quan hệ Ngành („CNTT‟ hoặc „CKCT‟ hoặc „CNOT‟, …) hoặc để trống.
- c. Ràng buộc rỗng (null | not null) Cho phép một cột đƣợc phép chứa giá trị rỗng (null) hay không đƣợc phép chứa giá trị rỗng (not null) Ràng buộc rỗng đặt sau mỗi mô tả cột. Ví dụ: Cài đặt cho họ tên (HoTen) không đƣợc bỏ trống HoTen not null d. Ràng buộc về tính duy nhất (Unique) Ràng buộc này có thể áp dụng trên một thuộc tính hay tập thuộc tính. Không cho phép các giá trị giống nhau trên các tập thuộc tính đã cài đặt ràng buộc. Ví dụ: Ngành Mã ngành Tên ngành CNTT Công Nghệ Thông Tin CKCT Cơ Khí Chế Tạo CNOT Công Nghệ Ô Tô Sinh Viên Mã số SV Họ tên SV Ngày sinh Mã ngành SV001 Nguyễn Văn An 10/6/1993 CNTT SV002 Dƣơng Tùng Lê 12/4/1994 CKCT SV003 Phạm Thị Ái 02/10/1993 Mã ngành trong Sinh Viên có thể rỗng
- e. Ràng buộc về luận lý (Check) Đƣợc thể hiện bằng một biểu thức luận lý cho một thuộc tính hoặc tập thuộc tính trên một bộ hoặc tất cả các bộ. Quá trình đặt ràng buộc luận lý đƣợc thực hiện trong lúc thiết kế cấu trúc của bảng. Ví dụ: Cho quan hệ KetQua (MaSV, MaMon, Diem, LanThi). Yêu cầu thiết kế ràng buộc cho Diem sao cho: 0
- Ý nghĩa của mô hình: - NHANVIEN: có các thuộc tính (MaNV, HoTen) - NVG và NVHD thừa kế các thuộc tính từ NHANVIEN. Mỗi loại nhân viên đều có phƣơng thức TLuong và NVHD. Nhƣng hai phƣơng thức này có thể tính toán khác nhau. - PHONGBAN: có các thuộc tính (MaPB, TenPB) và phƣơng thức (LapBangCC) Đây là loại mô hình tiên tiến, đang đƣợc nghiên cứu và sử dụng rộng rãi, dựa trên cách tiếp cận hƣớng đối tƣợng. Mô hình này sử dụng các khái niệm nhƣ lớp (class), sự kế thừa (inheritance), đa kế thừa (multi - inheritance). Đặc trƣng cơ bản của cách tiếp cận này là tính đóng gói (encapsulation), tính đa hình (polymorphism) và tính tái sử dụng (reusability). 1.3. Ngôn ngữ thao tác dữ liệu 1.3.1. Khái niệm về ngôn ngữ thao tác dữ liệu Ngôn ngữ là phƣơng tiện giao tiếp giữa ngƣời_ngƣời, ngƣời_máy, máy_máy. Các thao tác trên CSDL đòi hỏi phải có ngôn ngữ đặc biệt đƣợc gọi là ngôn ngữ truy vấn để diễn tả các thao tác (Thêm dữ liệu, xóa dữ liệu, chỉnh sửa dữ liệu). Ví dụ: Lấy các thông tin của sinh viên học ngành công nghệ thông tin. Hoặc Thêm một sinh viên. 1.3.2. Ngôn ngữ tự nhiên và ngôn ngữ hình thức Ngôn ngữ tự nhiên: Là ngôn ngữ giao tiếp giữa ngƣời với ngƣời, đƣợc phát triển và hoàn thiện kể từ khi con ngƣời xuất hiện, ngôn ngữ tự nhiên đƣợc thể hiện qua tiếng nói, chữ viết, động tác. Tất cả đều phải tuân thủ theo nguyên tắc nhất định gọi là ngữ pháp. Ngôn ngữ hình thức: Là tập hợp các ký hiệu và qui định do con ngƣời đặt ra. Trong tin học ngôn ngữ hình thức là công cụ để giao tiếp giữa ngƣời với máy hoặc máy với máy. Các hệ quản trị cơ sở dữ liệu bao giờ cũng cung cấp một ngôn ngữ hình thức làm công cụ để giao tiếp giữa ngƣời và hệ thống. Đó là ngôn ngữ dữ liệu. Trong các ngôn ngữ lập trình bình thƣờng, các mệnh đề khai báo và khai thác đều là các thành phần của một ngôn ngữ. Nhƣng về mặt cơ sở dữ liệu, thƣờng tách ra hai chức năng: Khai báo và tính toán là hai ngôn ngữ phân biệt. 1.3.3. Ngôn ngữ mô tả dữ liệu (Data Definition Language – DDL) Định nghĩa: Là ngôn ngữ dùng để đặc tả các lƣợc đồ CSDL gồm các thao tác:
- Khai báo tên đối tƣợng, cấu trúc của đối tƣợng và các quan hệ giữa các đối tƣợng. Đổi tên, đổi cấu trúc của các đối tƣợng. Thêm các thành phần vào cấu trúc, xóa các thành phần trong cấu trúc. Thêm, xoá các quan hệ giữa các bảng. Đặc điểm: Mỗi DDL thuộc HQTCSDL riêng, và “nói” theo cú pháp của của mô hình dữ liệu tƣơng ứng. DDL đƣợc dùng khi thiết kế hoặc thay đổi cấu trúc CSDL. Ngôn ngữ mô tả dữ liệu có thể sử dụng trực tiếp trong cửa sổ lệnh, hoặc đƣợc thực thi trong một chƣơng trình, hoặc đƣợc thực hiện bằng thao tác thông qua giao diện đồ họa. 1.3.4. Ngôn ngữ thao tác dữ liệu (Data Manipulation Language – DML) Là ngôn ngữ cho phép thực hiện các thao tác làm thay đổi dữ liệu, có các chức năng nhƣ: Thêm, xóa, cập nhật dữ liệu vào cơ sở dữ liệu. Thực hiện các phép tính số học và logic trên các thuộc tính. Kết nối các chuỗi thao tác. Gán, nhận kết quả. Ở mức vật lý, chúng ta cần định ra các giải thuật để truy xuất hiệu quả dữ liệu. Ở mức trừu tƣợng cao hơn, ta cần nhấn mạnh đến tính dễ sử dụng. Mục đích là cung cấp sự tƣơng tác giữa ngƣời và máy. Cách dùng ngôn ngữ thao tác dữ liệu: Các lệnh DML có thể sử dụng theo nhiều cách: + Tƣơng tác trực tiếp đến HQTCSDL thông qua hệ thống menu và submenu. + Sử dụng các lệnh cơ bản và phải tuân thủ theo cú pháp của HQTCSDL. + Thông qua trình ứng dụng vì thế phải trải qua thêm công đoạn tiền biên dịch. 1.3.5. Các dạng thể hiện của ngôn ngữ a. Kiểu đại số Sử dụng rộng rãi các biểu thức đại số và logic. Khi đó đòi hỏi phải biểu diễn các phát biểu (yêu cầu) thành các biểu thức toán học. Ví dụ: Chọn những học sinh có xếp loại là „Khá‟ Biểu diễn: SinhVien(XepLoai = „Khá‟). b. Kiểu logic Sử dụng các vị từ.
- Ví dụ: Có hay không sinh viên „Nguyễn Hoài Ân‟ ?t.SinhVien : t.HoTen = „Nguyễn Hoài Ân‟ c. Kiểu thủ tục Ngôn ngữ kiểu thủ tục yêu cầu ngƣời dùng chỉ rõ dữ liệu cần và cách tìm ra dữ liệu mong muốn. Ví dụ: Với ví dụ trong kiểu logic thì ở kiểu thủ tục phải: Chỉ rõ dữ liệu: Chọn ra những bộ từ quan hệ sinh viên thỏa điều kiện họ và tên là „Nguyễn Hoài Ân‟ Cách tìm: Chiếu các thuộc tính HoTen từ quan hệ sinh viên và chọn trên hàng để lấy thông tin của sinh viên „Nguyễn Hoài Ân‟. d. Kiểu phi thủ tục Thƣờng đƣợc gọi là kiểu mô tả, ngôn ngữ phi thủ tục thƣờng dễ đọc và dễ sử dụng tuy nhiên so về tính hiệu quả thì không bằng ngôn ngữ kiểu thủ tục. e. Ngôn ngữ tự nhiên Là dạng ngôn ngữ đang đƣợc nghiên cứu, gắn liền với lĩnh vực nhận dạng và phân tích tiếng nói. Một vài ngôn ngữ tự nhiên đã đƣợc cài đặt thông qua sự hỗ trợ của các thiết bị ngoại vi (Chuột, bàn phím) để tiến hành giao tiếp giữa ngƣời dùng và hệ thống.
- BÀI TẬP CHƢƠNG 1 1. Cơ sở dữ liệu là: A. Một bộ sƣu tập rất lớn về các loại dữ liệu tác nghiệp B. Một tập File dữ liệu C. Một tập các chƣơng trình ứng dụng và dữ liệu. D. Hệ quản trị cơ sở dữ liệu. 2. Cơ sở dữ liệu là tài nguyên thông tin... .. A. Truy xuất theo chế độ trực tuyến hay tƣơng tác. B. Chia sẻ chung cho nhiều ngƣời sử dụng. C. Cài đặt trên mạng máy tính. D. Trên các thiết bị đầu cuối. 3. Đối tƣợng nghiên cứu của CSDL là ..... A. Các thực thể. B. Các mối quan hệ. C. Các thực thể và mối quan hệ giữa các thực thể. D. Các mối liên kết giữa các thực thể. 4. Cơ sở dữ liệu có những ƣu điểm: A. Giảm bớt dƣ thừa dữ liệu trong lƣu trữ. B. Tránh không nhất quán trong lƣu trữ dữ liệu C. Bảo đảm đƣợc tính toàn vẹn của dữ liệu. D. Không thể phản ảnh thế giới hiện thực dữ liệu. 5. Mô hình kiến trúc 3 mức của hệ CSDL gồm: A. Mô hình trong, mô hình vật lý. B. Mô hình dữ liệu. C. Mô hình ngoài, khung nhìn của ngƣời sử dụng. D. Mô hình trong, mô hình ngoài, khung nhìn. 6. Mô hình dữ liệu là cách nhìn.... A. Toàn bộ nội dung thông tin của CSDL. B. Khung nhìn của ngƣời sử dụng. C. Là cách tổ chức lƣu trữ. D. Là cách biểu diễn cơ sở dữ liệu trừu tƣợng ở mức thấp nhất. 7. Mục tiêu của các hệ cơ sở dữ liệu
- A. Cấu trúc lƣu trữ dữ liệu và chiến lƣợc truy nhập tới các hệ cơ sở dữ liệu. B. Dữ liệu chỉ đƣợc biểu diễn, mô tả một cách duy nhất. C. Cấu trúc dữ liệu và các hệ chƣơng trình ứng dụng không phụ thuộc lẫn nhau. D. Cấu trúc lƣu trữ dữ liệu và các hệ chƣơng trình ứng dụng phụ thuộc lẫn nhau. 8. Có rất nhiều cách nhìn dữ liệu ở...... ngƣời sử dụng khác nhau có cách nhìn dữ liệu khác nhau và các hệ ứng dụng khác nhau có những cách nhìn dữ liệu cũng khác nhau. A. Mô hình ngoài. B. Mô hình quan niệm. C. Mô hình trong. D. Mô hình dữ liệu 9. Có duy nhất một cách nhìn dữ liệu ở..........., biểu diễn toàn bộ nội thông tin trong CSDL đó là cách nhìn dữ liệu tổng quát của ngƣời sử dụng. A. Mô hình ngoài. B. Mô hình quan niệm. C. Mô hình trong. D. Mô hình dữ liệu 10. Có duy nhất một và chỉ một cách biểu diễn CSDL dƣới dạng lƣu trữ....... A. Logic. B. Vật lý. C. Tổng quát. D. Nội dung thông tin
- Chƣơng 2: ĐẠI SỐ QUAN HỆ Trong chƣơng này, ta sẽ đề cập đến cách tiếp cận các phƣơng pháp thiết kế ngôn ngữ hỏi trên các quan hệ bằng các phép toán đại số. Vì trong thực tế, các hệ quản trị cơ sở dữ liệu có những cú pháp riêng, bắt buộc ngƣời dùng phải tuân thủ khi thiết kế ngôn ngữ hỏi vì thế để thuận tiện cho việc xây dựng ngôn ngữ hỏi mà không phụ thuộc vào hệ quản trị cơ sở dữ liệu thì việc sử dụng đại số quan hệ đƣợc xem là phù hợp nhất. Đại số quan hệ là thực hiện câu hỏi trên cơ sở dữ liệu nhƣ: Chiếu lấy các cột (thuộc tính) cần thiết từ các quan hệ. Chọn các bộ thỏa điều kiện từ các quan hệ Thực hiện tích Decartes giữa các quan hệ. Xem các quan hệ nhƣ các tập hợp, thực hiện các phép toán trên tập hợp: Hợp, giao, trừ, chia, … Thực hiện tính toán, thống kê trên nhóm. 2.1. Giới thiệu Đại số quan hệ là tập hợp các phép toán thao tác trên các thuộc tính và các bộ của các quan hệ trong một cơ sở dữ liệu cho trƣớc, để trả lời các câu hỏi liên quan các thông tin về dữ liệu. Các phép toán bao gồm: Chiếu, chọn, hợp, hiệu, giao và một số phép tính khác để trả lời các câu truy vấn. Gọi R là một quan hệ trên tập thuộc tính (A1, A2, …, An). Ký hiệu: R(A1, A2,…, An) Toán hạng của đại số quan hệ cũng là một quan hệ. Kết quả của phép toán đại số quan hệ cũng là một quan hệ. 2.2. Các phép toán cơ bản 2.2.1. Phép chọn (Selection) Ký hiệu: σ a. Mục đích: Dùng để lấy các bộ con của quan hệ đã cho ( R), thỏa điều kiện F cho trƣớc. Trong đó F là: - Biểu thức so sánh sử dụng các toán tử: >, , >=, ≠ hoặc - Biểu thức logic sử dụng các toán tử: ¬ (not), ^ (and), ν (or). Vậy F là biểu thức tổ hợp của biểu thức so sánh và biểu thức logic. Kết quả của F là hoặc “đúng” hoặc “sai”. Ví dụ: Xác định biểu thức chọn F sao cho tuổi (Tuoi) từ 18 đến 60
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình Cơ sở dữ liệu - Ngô Trần Thanh Thảo
176 p | 1613 | 686
-
Giáo trình Cơ sở dữ liệu quan hệ - Phạm Đức Nhiệm
101 p | 504 | 153
-
Giáo trình Cơ sở dữ liệu: Phần 1 - Đại học Kinh tế TP. HCM
134 p | 173 | 37
-
Giáo trình Cơ sở dữ liệu: Phần 1 - Cao Thị Nhạn, Nguyễn Thị Thanh Bình
54 p | 240 | 29
-
Giáo trình Cơ sở dữ liệu: Phần 1 - Sở Bưu chính Viễn Thông TP Hà Nội
48 p | 212 | 25
-
Giáo trình Cơ sở dữ liệu: Phần 2 - Sở Bưu chính Viễn Thông TP Hà Nội
81 p | 127 | 21
-
Giáo trình Cơ sở dữ liệu: Phần 1 - ĐH công nghiệp Tp.HCM
41 p | 179 | 19
-
Giáo trình Cơ sở dữ liệu - Trần Thị Thúy Mai (Biên soạn)
67 p | 31 | 14
-
Giáo trình Cơ sở dữ liệu (Tập 1): Phần 1 - TS. Nguyễn Thị Thu Thuỷ (Chủ biên)
126 p | 37 | 11
-
Giáo trình Cơ sở dữ liệu (Nghề: Quản trị mạng - Trình độ: Cao đẳng) - Trường Cao đẳng nghề Cần Thơ
48 p | 14 | 10
-
Giáo trình Cơ sở dữ liệu (Nghề Tin học ứng dụng - Trình độ Cao đẳng) - CĐ GTVT Trung ương I
76 p | 35 | 8
-
Giáo trình Cơ sở dữ liệu (Nghề: Lập trình máy tính-CĐ) - CĐ Cơ Giới Ninh Bình
88 p | 62 | 8
-
Giáo trình Cơ sở dữ liệu nâng cao (Ngành: Hệ thống thông tin) - CĐ Kinh tế Kỹ thuật TP.HCM
77 p | 44 | 8
-
Giáo trình Cơ sở dữ liệu (Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính - Cao đẳng): Phần 2 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội
83 p | 31 | 6
-
Giáo trình Cơ sở dữ liệu (Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính - Cao đẳng): Phần 1 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội
40 p | 30 | 6
-
Giáo trình Cơ sở dữ liệu (Ngành: Công nghệ thông tin - Cao đẳng) - Trường Cao đẳng Xây dựng số 1
55 p | 12 | 5
-
Giáo trình Cơ sở dữ liệu phân bổ - CĐ Nghề Công Nghiệp Hà Nội
93 p | 47 | 3
-
Giáo trình Cơ sở dữ liệu (Ngành: Công nghệ thông tin - Trình độ: Trung cấp) - Trường Trung cấp Kinh tế - Kỹ thuật Bình Thuận
97 p | 4 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn