Cơ sở dữ liệu - Bài 1: Tổng quan vềcơ sở dữ liệu

Tài liệu Cơ sở dữ liệu - Bài 1: Tổng quan vềcơ sở dữ liệu: CƠ SỞ DỮ LIỆU GV: ThS.VŨ VĂN ĐỊNH TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN ************************* Bài 1. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU 1. Tại sao cần phải có một CSDL? - Hệ thống các tập tin cổ điển : • Được tổ chức riêng rẽ, phục vụ một mục đích hay một bộ phận nào đó của doanh nghiệp. • Nhược điểm: - Tính phụ thuộc giữa chương trình và dữ liệu . - Lưu trữ trùng lặp dữ liệu - Việc chia sẻ dữ liệu bị hạn chế - Tốn thời gian xây dựng - Chi phí cho bảo trì chương trình lớn 2. Ví dụ về CSDL. -Cơ sở dữ liệu cho một công ty chuyên kinh doanh : Gồm các bảng: KHACH HANG, SANPHAM, DON_DAT_HANG, NHA_CUNG_CAP,... và một số quy tắc nghiệp vụ áp đặt lên các bảng. Ví dụ về bảng KHACHHANG : STT MKH Tên KH Ma hang So luong 1 CN22 Hoàng Hà MK02 8 2 CT20 Bến Nghé CT01 200 3. Cơ sở dữ liệu là gì?  ĐN: CSDL là một tập hợp các dữ liệu có cấu trúc về một tổ chức nào đó được lưu trữ trên các thiết bị lưu trữ thông tin thứ cấp như băng từ, đĩa từ,..  Mục đích: Nh...

pdf75 trang | Chia sẻ: Khủng Long | Lượt xem: 1081 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Cơ sở dữ liệu - Bài 1: Tổng quan vềcơ sở dữ liệu, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
CƠ SỞ DỮ LIỆU GV: ThS.VŨ VĂN ĐỊNH TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN ************************* Bài 1. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU 1. Tại sao cần phải có một CSDL? - Hệ thống các tập tin cổ điển : • Được tổ chức riêng rẽ, phục vụ một mục đích hay một bộ phận nào đó của doanh nghiệp. • Nhược điểm: - Tính phụ thuộc giữa chương trình và dữ liệu . - Lưu trữ trùng lặp dữ liệu - Việc chia sẻ dữ liệu bị hạn chế - Tốn thời gian xây dựng - Chi phí cho bảo trì chương trình lớn 2. Ví dụ về CSDL. -Cơ sở dữ liệu cho một công ty chuyên kinh doanh : Gồm các bảng: KHACH HANG, SANPHAM, DON_DAT_HANG, NHA_CUNG_CAP,... và một số quy tắc nghiệp vụ áp đặt lên các bảng. Ví dụ về bảng KHACHHANG : STT MKH Tên KH Ma hang So luong 1 CN22 Hoàng Hà MK02 8 2 CT20 Bến Nghé CT01 200 3. Cơ sở dữ liệu là gì?  ĐN: CSDL là một tập hợp các dữ liệu có cấu trúc về một tổ chức nào đó được lưu trữ trên các thiết bị lưu trữ thông tin thứ cấp như băng từ, đĩa từ,..  Mục đích: Nhằm thoả mãn nhu cầu khai thác thông tin của một hay nhiều người sử dụng phục vụ cho nhiều mục đích khác nhau  Điểm khác nhau nổi bật giữa CSDL và hệ thống File là : Các dữ liệu trong CSDL được lưu trữ tại một vị trí. Với cùng một CSDL có thể được nhiều người sử dụng và phục vụ cho nhiều mục đích khác nhau.  Ưu điểm của CSDL: Tối thiểu hoá dư thừa thông tin Tính độc lập chương trình- ứng dụng Nâng cao tính nhất quán dữ liệu Nâng cao tính chia sẻ dữ liệu Nâng cao chất lượng dữ liệu Nâng cao khả năng truy cập và trả lại dữ liệu Giảm chi phí bảo trì chương trình.  Tính bảo mật Tính độc lập  Tránh sự dư thừa thông tin  Có khả năng lưu trữ, phục hồi khi gặp sự cố  Hiệu suất sử dụng tốt, đảm bảo chế độ ưu tiên khi truy nhập dữ liệu. Tiêu chuẩn của một CSDL: 4. Các đối tượng sử dụng CSDL  Những người sử dụng không chuyên về lĩnh vực tin học  Các chuyên viên tin học biết khai thác CSDL  Những người quản trị CSDL: là người tổ chức CSDL, cấp quyền hạn khai thác dữ liệu và giải quyết các tranh chấp khi gặp sự cố Gồm 3 mức : Mức ngoài : là tập tất cả các dữ liệu mà người sử dụng cụ thể có thể nhìn thấy và được phép truy cập, là mức của người sử dụng và các chương trình ứng dụng. Mức quan niệm : giải quyết vấn đề lưu trữ dữ liệu loại gì, lưu trữ bao nhiêu, mối quan hệ trong CSDL và mối quan hệ giữa các loại dữ liệu này như thế nào? Mức trong( mức vật lý): Đây là mức lưu trữ dữ liệu. Mục đích của mức này giải quyết vấn đề dữ liệu là gì, dữ liệu được lưu trữ như thế nào và nhằm mục đích gì. 5. Các mức biểu diễn một CSDL. CSDL mức khái niệm View 1 View 2 View k CSDL mức vật lý . User 1 User 2 User k Mức ngoài Mức trung gian Mức vật lý View ( khung nhìn) của một user là một tập hợp tất cả các dữ liệu mà user đó nhìn thấy, được phép truy cập vào. Hình biểu diễn Sự phân mức một CSDL 6. Tính độc lập giữa dữ liệu và chương trình  Một CSDL là độc lập dữ liệu nếu nó có hoặc có thể có khả năng phát triển mà không ảnh hưởng tới các hệ ứng dụng.  Tính độc lập dữ liệu là " tính bất biến của các hệ ứng dụng đối với các thay đổi trong cấu trúc lưu trữ và chiến lược truy nhập"  Có hai mức độc lập dữ liệu:  Độc lập dữ liệu mức vật lý : Có thể tổ chức lại CSDL vật lý (như thay đổi các tổ chức, cấu trúc dữ liệu) để làm thay đổi hiệu quả tính toán của các chương trình ứng dụng nhưng không đòi hỏi phải viết lại chương trình ứng dụng.  Độc lập dữ liệu mức logic: Có thể thay đổi lược đồ khái niệm như thêm, xoá , bớt thông tin của các thực thể đang tồn tại trong CSDL nhưng không làm ảnh hưởng tới các lược đồ con, do đó không cần phải viết lại các chương trình ứng dụng. II. Hệ quản trị CSDL 1. Khái niệm - Là một phần mềm điều khiển mọi truy nhập đối với CSDL. Nó giúp người sử dụng có thể dùng được hệ thống mà không cần quan tâm tới thuật toán chi tiết hoặc biểu diễn dữ liệu trong máy. - Mỗi hệ QT CSDL được cài đặt dựa trên mô hình dữ liệu cụ thể và hỗ trợ tối đa cho người dùng thực hiện các thao tác trên đó. - VD : FOXPRO, ACCESS, ORACLE, v.v.. 2.Tính năng của hệ QTCSDL:  Tạo cấu trúc lưu trữ dữ liệu trên máy. Cho phép đưa dữ liệu vào máy tính theo cấu trúc đã tạo ra.  Cho phép khai thác CSDL đã lưu trữ  Tạo cơ chế đảm bảo an toàn, bí mật cho dữ liệu trong quá trình thao tác -3. Các thành phần trong hệ QT CSDL: Ngôn ngữ giao tiếp với người sử dụng: Gồm :ngôn ngữ mô tả , thao tác , truy vấn và quản lý dữ liệu. - Từ điển dữ liệu : là một CSDL của hệ QT CSDL sử dụng để lưu trữ cấu trúc CSDL, các thông tin bảo mật, bảo đảm an toàn dữ liệu và các cấu trúc ngoài - Các biện pháp bảo mật - Cơ chế giải quyết tranh chấp dữ liệu. Các biện pháp: + Cấp quyên ưu tiên cho NSD + Đánh dấu yêu cầu truy xuất, phân chia thời gian, người nào yêu cầu trước thì có quyền truy xuất trước. - Cơ chế phục hồi, sao lưu dữ liệu khi có sự cố: + Định kỳ kiểm tra CSDL, sau một thời gian nhất định tự động tạo bản sao. + Tạo nhật kí thao tác, khi có sự cố thì tự động lật ngược lại để phụ hồi. - Đảm bảo tính độc lập giữa dữ liệu và chương trình. - Cung cấp giao diện thân thiện với người dùng không chuyên Bài 2 NHỮNG CÁCH TIẾP CẬN MỘT CSDL Mô hình dữ liệu là sự trừu tượng hoá môi trường thực, nó là biểu diễn dữ liệu ở mức quan niệm. Mỗi loại mô hình 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ột số loại mô hình dữ liệu phổ biến : 1. Mô hình dữ liệu quan hệ Mô hình dữ liệu quan hệ do E.F. Codd đề xuất. Nền tảng cơ bản của nó là khái niệm lý thuyết tập hợp trên các quan hệ, tức là tập các bộ giá trị. 2. Cách tiếp cận theo mô hình dữ liệu mạng Mô hình dữ liệu mạng (lưới) là mô hình được biểu diễn bởi một đồ thị có hướng.  Loại mẫu tin (Record Type): là mẫu đặc trưng cho từng loại đối tượng riêng biệt, được biểu diễn bởi một hình chữ nhật.  Loại liên hệ ( Set Type): là sự liên kết giữa một loại mẫu tin chủ với một loại mẫu tin thành viên, được biểu diễn bởi một hình bầu dục.  Sự liên kết giữa 2 loại mẫu tin được thể hiện bởi các cung có hướng đi từ loại mẫu tin chủ tới loại liên hệ và từ loại liên hệ tới loại mẫu tin thành viên.  Trong loại liên kết, cần chỉ ra số lượng các mẫu tin tham gia trong mỗi kết hợp. Các loại liên hệ:  1-1  1-n  n-1  Đệ quy PHÒNG CÔNG VIỆC LÝ LỊCH NHÂN VIÊN CóGồm Cùng làm quản lý 1-nn-1 1-n 1-1 Hình 3. Mô hình dữ liệu mạng ( Network Model) 3. Mô hình dữ liệu phân cấp Mô hình dữ liệu phân cấp là một cây ( Tree) 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 quan hệ xác định.  Loại mẫu tin : Giống trong mô hình mạng  Loại liên hệ : Kiểu liên hệ là phân cấp, theo cách: Mẫu tin thành viên chỉ đóng vai trò thành viên của một mối liên hệ duy nhất, tức là thuộc một chủ duy nhất. - Như vậy, mối liên hệ từ mẫu tin chủ tới các mẫu tin thành viên là 1-n, và từ mẫu tin thành viên tới mẫu tin chủ là 1-1. - Giữa hai loại mẫu tin chỉ tồn tại một mối liên hệ duy nhất Ví dụ : TOÀN QUỐC HÀ NỘI HẢI PHÒNG NAM ĐỊNH NAM HỒNGCỔ LOA BA ĐÌNH ĐÔNG ANH NK 1 HỘ 2 NK 1 HỘ 1 4. Mô hình dữ liệu hướng đối tượng - Cho phép biểu diễn các đối tượng khá tự nhiên và sát với thực tế. - Hỗ trợ các ngôn ngữ thao tác hướng đối tượng mạnh, cho phép người sử dụng dễ dàng biểu diễn cả các truy vấn phức tạp Bài 3. Mô hình quan hệ của E.F. Codd I. Khái quát chung Mô hình quan hệ : • Biểu thị dữ liệu trong một CSDL như một tập các quan hệ. • Một quan hệ là một bảng các giá trị gồm các dòng và các cột. • Mỗi dòng trong bảng là một tập các giá trị có liên quan đến nhau, biểu thị một sự kiện tương ứng với một thực thể hay một mối quan hệ tương ứng với thế giới thực. VD: Quan hệ : SINH_VIEN (Ma SV, Hoten, Nam sinh, DiaChi, Diem) t38Tây Hồ1985Hoàng Hà003 t210Ba Đình1980Minh Tuấn002 t19Hoàn Kiếm 1986Ngọc Anh001 ĐiemDiachiNamsinhHotenMã SV II. Các khái niệm của mô hình quan hệ 1. Thuộc tính : • Mỗi đối tượng quản lý đều có các đặc tính riêng biệt, gọi là các thuộc tính. Kí hiệu các thuộc tính là A, B, C, A1, A2,... • VD: Mã sinh viên, họ tên, quê quán, ngày sinh, ... • Các thuộc tính được đặc trưng bởi một tên gọi, kiểu giá trị, miền giá trị của chúng. 2. Lược đồ quan hệ : Một lược đồ quan hệ được đặc trưng bởi tên lược đồ và một tập hữu hạn các thuộc tính U={A1, A2, ..., An}. Lược đồ R với tập thuộc tính là U= { A1, A2,... An} được kí hiệu là R(U) hay R ( A1, A2, ... An). 3. Miền giá trị : - Là tập hợp các giá trị nguyên tử mà thuộc tính có thể nhận - Để đặc tả một miền, người ta dùng: tên miền, một kiểu dữ liệu và khuôn dạng dữ liệu. VD: Miền Mã SV là tập hợp các dãy kí tự có độ dài từ 5 ki tự Miền Điểm là tập các giá trị số thuộc [0..10] 4. Quan hệ :  Một quan hệ trên một tập thuộc tính là một tập con của tích Desscartes cuả một hay nhiều miền. Cho một quan hệ r xác định trên tập thuộc tính ={ A1, A2, ..,An}. Khi đó r  Dom(A1) x Dom(A2) x ...x Dom(An), trong đó Dom(Ai ) là miền của thuộc tính Ai Như vậy, quan hệ r là một tập hợp các n_ bộ có dạng : r = {( a1, a2,.., an) | ai  Dom(Ai), i= 1, 2,..,n }  Có thể quan niệm quan hệ là một bảng hai chiều, mỗi cột là một thuộc tính thường gọi là trường, mỗi dòng là một bộ n. VD: Quan hệ R= {(di1,di2,...,din ) / i=1..m} An...A2A1 dmn...dm2dm1 ............ d2n...d22d21 d1n...d12d11  Một số chú ý : - Các tập D1= Dom ( A1),.., Dn=Dom ( An) là tập các miền trị của R - n được gọi là bậc của quan hệ r - M được gọi là lực lượng của r - Quan hệ bậc 1 là quan hệ nhất nguyên, quan hệ bậc hai là quan hệ nhị nguyên, quan hệ bậc n là qua hệ n nguyên.  Các tính chất dặc trưng của một quan hệ. • Một quan hệ có một tên phân biệt với các quan hệ khác • Mỗi ô trong bảng quan hệ chứa một giá trị nguyên tố • Mỗi thuộc tính trong một quan hệ có một tên phân biệt • Các giá trị của một thuộc tính thuộc cùng một miền • Thứ tự của các thuộc tính, các bộ là không quan trọng • Các bộ trong quan hệ là phân biệt VD: Quan hệ TKB( Ngày, tiết thứ, môn, phòng, GV} là một quan hệ 5 ngôi. t3Hoàng Hà200CSDL326/3 t2Minh Tuấn102NN225/3 t1Ngọc Anh202CSB2124/3 GVPhòngMônTiết thứNgày t1 (24/3, 1, CSB2, 202, Ngoc Anh)= t1(R)  Chú ý : Các khái niệm tương đương (Fox)(SQL-Access)(NN ĐSQH) Bản ghiDòngBộ TrườngCộtThuộc tính TệpBảngQuan hệ 4. Khoá và siêu khoá a. Siêu khoá • Siêu khoá của một quan hệ R là một tập hợp gồm một hay nhiều thuộc tính của lược đồ R có tính chất xác định duy nhất một bộ trong mỗi thể hiện của R. • Nếu SK là siêu khoá của R= thì SK   và trong một quan hệ bất kỳ của lược đồ R không thể có hai bộ khác nhau nhưng có cùng một giá trị trên SK. • Mỗi quan hệ có ít nhất một siêu khoá, đó là - tập tất cả các thuộc tính của quan hệ. • Mọi tập con của  chứa một siêu khoá cũng là siêu khoá. b.Khoá Khoá của một lược đồ quan hệ R là một siêu khoá của lược đồ này sao cho mọi tập con thực sự của nó không là siêu khoá. Như vậy, một khoá là một siêu khoá tối thiểu hiểu theo nghĩa, đó là một siêu khoá mà chúng ta không thể bỏ bớt thuộc tính nào ra khỏi nó mà vẫn giữ được tính chất xác định duy nhất cho mỗi bộ. VD: Xét quan hệ SINH_VIEN - Các siêu khoá : {Mã SV, Họ tên} hay {Mã SV, ngày sinh, điểm,},... - Khoá : {Mã SV} •- Một lược đồ quan hệ có nhiều hơn một khoá, khi đó mỗi khoá được gọi là một khoá dự tuyển. • Thông thường có một khoá dự tuyển được chọn làm khoá chính. Ta nên chọn khoá dự tuyển có một thuộc tính hoặc có ít thuộc tính nhất làm khoá chính. • Khoá chính là khóa được dùng để nhận diện một bộ trong quan hệ do đó các giá trị của các bộ ở các thuộc tính trong khoá chính không được null. • Thuộc tính khoá : là các thuộc tính có tham gia vào một khoá ( khoá dự tuyển hay khoá chính). • Ngược lại, thuộc tính không tham gia vào một khoá nào gọi là thuộc tính không khoá. VD: Quan hệ KHOA - Quan hệ trên có 3 khoá dự tuyển là { Mã khoa}, { Tên khoa}, {Điện thoại }. Người ta thường chọn Mã khoa làm khoá chính. Như vậy, thuộc tính không khoá chỉ còn là : Địa chỉ và Chủ nhiệm khoa Nguyễn AnhA304.7683 43 CNTTSPCN Hoài NamA404.7689 45 VănSPV Nguyễn AnhA304.7684 59 ToánSPT Chủ nhiệm khoa Địa chỉĐiện thoại Tên khoa Mã khoa c. Khoá ngoài : Một tập thuộc tính K là khoá ngoài của một quan hệ r nếu K không là khoá chính của quan hệ r nhưng lại là khoá chính của một quan hệ khác . VD: Có hai quan hệ: SINHVIEN (Mã SV, Tên SV,..., Mã lớp) LOP( Mã lớp, Tên lớp,...) Mã lớp là khoá ngoài của quan hệ SINHVIEN. Bài 4. Đại số quan hệ I. Đại số quan hệ Đại số quan hệ là cơ sở của một ngôn ngữ bậc cao để thao tác trên các quan hệ. Đại số quan hệ gồm 8 phép toán cơ bản. Bằng các phép toán này, ta có thể trích dữ liệu từ một hay nhiều quan hệ để tạo ra các quan hệ mới. II. Các phép toán lý thuyết tập hợp -Gọi r là quan hệ trên tập thuộc tính R={A1, ..,An}. Giả thiết rằng r là tập hữu hạn các bộ. - Khái niệm khả hợp : Hai lược đồ quan hệ R1 và R2 được goị là khả hợp nếu có cùng bậc n và DOM(Ai) = DOM(Bi) (1in) - Cho hai quan hệ R1=(A1,A2,..An) và R2=(B1,B2,..,Bn) là hai quan hệ khả hợp, ta có định nghĩa: 1.Phép hợp Hợp của hai quan hệ r và s khả hợp, kí hiệu là r  s là tập các bộ thuộc r hoặc s hoặc thuộc cả hai quan hệ. Biểu diễn hình thức: r  s = { t/ t  r hoặc t  s hoặc t  r và s } Ví dụ : r ( A B C) s ( A B C) r  s = ( A B C) ___________ __________ _________________ a1 b1 c1 a1 b1 c1 a1 b1 c1 a2 b1 c2 a2 b2 c2 a2 b1 c2 a2 b2 c1 a2 b2 c2 a2 b2 c1 2. Phép giao Giao của hai quan hệ r và s khả hợp, kí hiệu là r  s là tập các bộ thuộc cả quan hệ r và s . Biểu diễn hình thức : r  s = { t/ t  r và t  s } Ví dụ : Với hai quan hệ ở ví dụ trên, giao của chúng là: r  s = ( A B C ) a1 b1 c1 3. Phép trừ Hiệu của hai quan hệ r và s khả hợp, kí hiệu là r - s là tập các bộ thuộc r nhưng không thuộc s . Biểu diễn hình thức : r - s = { t/ t  r và t  s } Ví dụ : Cũng với ví dụ trên, hiệu của chúng là: r - s = ( A B C ) a2 b1 c2 a2 b2 c1 Chú ý : phép giao của hai quan hệ có thể biểu diễn qua phép trừ: r  s = r- ( r - s ) 4. Tích Đề -Các - Gọi r là quan hệ xác định trên tập thuộc tính { A1, A2,..,An} và s là quan hệ xác định trên tập thuộc tính { B1, B2,..,Bm} . Tích Đề - Các r x s của r và s là tập ( n + m ) - bộ với n thành phần đầu có dạng một bộ thuộc r và m thành phần sau có dạng của một bộ thuộc s. - Biểu diễn hình thức : r x s = { t/ t có dạng (a1, a2, .., an, b1, b2,..,bm) trong đó ( a1, ..,an ) r và (b1,.. ,bm)  s } - Ví dụ : r ( A B C) s ( D E F) r x s = ( A B C D E F) a1 b1 c1 d e f a1 b1 c1 d e f a2 b2 c2 d1 e1 f 1 a1 b1 c1 d1 e1 f1 a2 b2 c2 d e f a2 b2 c2 d1 e1 f1 5. Phép chiếu Phép chiếu trên một quan hệ thực chất là loại bỏ đi một số thuộc tính và giữ lại những thuộc tính còn lại của quan hệ đó. Dạng tổng quát :  (< tên quan hệ >)   là kí hiệu phép chiếu.  : danh sách các thuộc tính được lấy ra  Nếu chỉ có những thuộc tính không khoá thì phép chiếu sẽ tự bỏ đi những bộ lặp. Phép chiếu không có tính giao hoán. Nếu  thì ( (R)) = (R) Ví dụ : Cho quan hệ SV ( Mã SV, Họ tên, Ngày sinh, điểm) như sau : 10004 7003 9002 8001 ĐiểmMã SV Thì phép chiếu Mã Sv, Điểm (SV) sẽ cho ta một quan hệ mới chỉ gồm hai thuộc tính là Mã SV và Điểm . 1021/6/85Hồng Vân004 725/3/87Xuân Mai003 913/4/85Ngọc Bích002 823/4/86Trần Anh001 ĐiểmNgày sinhHọ tênMã SV DIEM( Mã SV, Điểm ) : 6. Phép chọn Phép chọn dùng để trích chọn một tập con trong một quan hệ, các bộ được trích chọn phải thoả mãn điều kiện chọn. ( Phép chọn trích ra các hàng trong quan hệ) Dạng tổng quát :  ()   là kí hiệu phép chọn. Kết quả thu được từ phép chọn là một quan hệ có danh sách thuộc tính được chỉ ra trong Tên quan hệ Điều kiện : là các biểu thức điều kiện cần thoả mãn.. Các biểu thức này được nối với nhau bằng các phép: ( phủ định ),  (giao),  (hợp) Phép chọn có tính giao hoán. 7. Phép kết nối  Phép kết nối : Dùng để kết hợp hai bộ có liên quan từ hai quan hệ thành một bộ. Trước hết ta làm quen với khái niệm xếp cạnh nhau: Cho bộ d =( d1, d2,..,dm) và bộ e= (e1, e2,.., em). Phép xếp cạnh nhau được định nghĩa qua : d  e = ( d1, d2,.., dm,e1, e2,..,em). Gọi  là một trong các phép so sánh . Phép kết nội được định nghĩa: Phép kết nối của quan hệ r đối với thuộc tính A với quan hệ s đối với thuộc tính B được định nghĩa qua. r  s = { (t  u ) | t  r và u  s và t[A]  u[B] } A  B Kết quả của phép kết nối là một quan hệ Q có ( n+m) thuộc tính, mỗi bộ trong Q thoả mãn điều kiện kết nối.  Các bộ có giá trị rỗng tại thuộc tính kết nối thì không xuất hiện trong kết quả của phép kết.  Bản chất của phép kết nối là phép lấy tích Đề - Các của hai quan hệ và chọn ra các bộ thoả mãn điều kiện kết. Ví dụ : r ( A B C ) s( C D E ) r  s = ( A B C C D E) a1 1 1 1 d1 e1 a1 1 1 1 d1 e1 a2 2 1 2 d2 e2 a2 2 1 1 d1 e1 a1 2 2 3 d3 e3 a2 2 1 2 d2 e2 a1 2 2 1 d1 e1 a1 2 2 2 d2 e2 B≥ C  Nếu điều kiện kết nối chứa phép so sánh (=) bằng thì phép kết nối được gọi là phép kết nối bằng.  Trường hợp kết nối bằng tại thuộc tính cùng tên của hai quan hệ và một trong hai thuộc tính đó bị loại bỏ, thì phép kết nối được gọi là kết nối tự nhiên . Kí hiệu là " * ".  Biểu diễn của phép kết nối tự nhiên : r(ABC) * s(CDE) = { t[ABCDE]/ t[ABC]  r và t[CDE ] s} VD : với hai quan hệ r và s nêu trên thì : r(ABC) * s(CDE) = ( A B C D E) a1 1 1 d1 e1 a2 2 1 d1 e1 a1 2 2 d2 e2 8. Phép chia Gọi r là quan hệ n- ngôi và s là quan hệ m ngôi ( n > m, s   ). Phép chia r s là tập tất cả các ( n-m )- bộ t sao cho với mọi bộ u s thì bộ t  u  r. Ví dụ : r ( A B C D ) s ( C D) r s = ( A B) a b c d c d a b a b e f e f e d b c e f e d c d e d e f c a d e Cơ sở dữ liệu minh hoạ Cho một cơ sở dữ liệu Thực tập gồm 3 quan hệ sau đây: SV( SV#, HT, NS, QUE, HL) DT(DT#, TDT, CN, KP) SD(SV#, DT#, NTT, KM, KQ) -Quan hệ SV chứa thông tin về các sinh viên trong một lớp của một trường đại học. Trong đó: SV# : mã số sinh viên HT : Họ và tên sinh viên NS : Năm sinh của sinh viên QUE: quê quán HL : Học lực thể hiện qua điểm trung bình - Quan hệ DT chứa thông tin về đề tài nhà trường quản lý . Trong đó : DT# : mã số đề tài TDT : tên đề tài CN : họ và tên chủ nhiệm đề tài KP : Kinh phí cấp cho đề tài ( triệu đồng) - Quan hệ SD chứa thông tin về tình hình thực tập của các sinh viên theo các đề tài. Trong đó : NTT : nơi thực tập KM : khoảng cách từ nơi thực tập đến trường KQ : kết quả thực tập theo đề tài đã chọn . * Giả thiết là mỗi sinh viên có thể tham gia nhiều đề tài, mỗi đề tài sinh viên đó thực tập tại một địa điểm. SV# HT NS Que HL 1 Hồng Mai 22/4/1982 Hà Nội 6.8 2 Mạnh Khánh 27/6/1986 Nam Định 8.3 3 Xuân Quỳnh 17/5/1987 Hà Nội 9.5 4 Ngọc Bích 25/4/1979 Nam Định 8.6 5 Minh Tú 19/3/1986 Quảng Ninh 6.2 6 Hồng Vân 19/4/1980 Hải Phòng 9.8 7 Ngọc Anh 27/5/1982 Hà Nội 7.6 8 Mai Lan 16/8/1983 Hải Phòng 8.5 DT# TDT CN KP 1 Phân tích thiết kế CSDL Trần Hùng 1000000 2 Mạng máy tính Nguyễn Anh 500000 3 Kiến trúc máy tính Hồng Hạnh 1400000 4 Phần mềm A Mạnh Hùng 2300000 5 Giáo trình ABC Hoàng Hà 900000 6 Mạng Internet Ngọc Lan 1800000 SV DT SV# DT# NTT KM KQ 1 4 Hà Tây 56 6.8 1 6 Hải Phòng 120 8.7 3 5 Quảng Ninh 300 9 3 4 Hà Đông 30 9.7 2 3 Hà Nội 40 9.8 1 5 Nam Định 80 9.4 7 3 Hà Nội 38 8.7 5 5 Hải Phòng 150 8.2 7 3 Thanh Hoá 240 7.9 SD Yêu cầu : - Hãy viết các biểu thức đại số quan hệ biểu diễn các yêu cầu sau : 1. Cho thông tin về những sinh viên sinh trước năm 1985 có quê ở Hà Nội. 2. Cho biết các địa điểm thực tập xa trường (KM >100) của đề tài số 5. 3. Cho thông tin về các đề tài có sinh viên thực tập. 4. Cho biết mã của các đề tài không có sinh viên nào tham gia. 5. Cho danh sách các tỉnh có sinh viên đến thực tập. 6. Cho thông tin về việc thực tập tại Hải Phòng của sinh viên. 7. Cho biết mã của những đề tài có kinh phí lớn hơn 1 triệu và nhỏ hơn 2 triệu 8. Cho biết mã của sinh viên dưới 20 tuổi, thực tập khá ( có điểm kết quả thực tập >=6.5) III. Các phép toán quan hệ bổ sung  Các hàm kết tập: Có nhiều truy vấn mà đại số quan hệ không thể thực hiện được như: đưa ra tổng lương, tìm lương lớn nhất ,v.v..  Ta có các hàm sau:  Hàm tính trung bình cộng ( AVERAGE)  Hàm tính tổng ( SUM) Hàm tìm giá trị lớn nhất ( MAX), nhỏ nhất (MIN) Hàm đếm các bộ giá trị ( COUNT)  Các phép gộp nhóm: Nhóm các bộ trong một quan hệ theo một giá trị của một số các thuộc tính và sau đó áp dụng các hàm kết tập trên từng nhóm một cách độc lập.  Phép gộp nhóm được định nghĩa như sau:  < ds các hàm kết tập > (r) Trong đó : -  là kí hiệu của phép gộp nhóm - : là danh sách các thuộc tính của quan hệ. - : là danh sách các cặp ( . • Kết quả của phép gộp nhóm là một quan hệ. Ngoài các thuộc tính cơ sở để gộp nhóm, quan hệ kết quả còn có các thuộc tính tương ứng với các phần tử trong danh sách hàm kết tập. • Nếu ds các thuộc tính cơ sở để gộp nhóm là rỗng thì các hàm kết tập được áp dụng cho các giá trị thuộc tất cả các bộ trong quan hệ. Khi đó quan hệ kết quả chỉ có một bộ. Ví dụ : Giả sử có quan hệ NHAN_VIEN MA_NV HO_TEN NG_SINH MA_P LUONG 1 Hồng Mai 22/4/1982 P1 1000000 2 Mạnh Khánh 27/6/1978 P3 2500000 3 Xuân Quỳnh 17/5/1977 P2 1200000 4 Ngọc Bích 25/4/1979 P1 2000000 5 Minh Tú 19/3/1981 P3 1500000 6 Hồng Vân 19/4/1980 P1 1800000 7 Ngọc Anh 27/5/1982 P2 1800000 8 Mai Lan 16/8/1979 P1 1200000 Nếu thực hiện phép gộp nhóm MA_PHONG  COUNT MA_NV, AVERAGE LUONG (NHAN_VIEN) Thì quan hệ kết quả sẽ là : MA_P COUNT MA_NV AVERAGE LUONG P1 4 1500000 P2 2 2000000 P3 2 1500000 Nếu thực hiện phép gộp nhóm :  COUNT MA_NV, AVERAGE LUONG (NHAN_VIEN) Thì quan hệ kết quả sẽ là : COUNT MA_NV AVERAGE LUONG 8 1666666.7 MA_NV HO_TEN NG_SINH GIOI_TINH MA_P LUONG 1 Trần Anh 28/3/1978 Nam P2 2000000 2 Ngọc Hà 17/4/1979 Nữ P1 1700000 3 Hồng Mai 29/6/1980 Nữ P4 2300000 4 Hoàng Hà 24/5/1980 Nam P2 1800000 5 Ngọc Lan 7/11/1979 Nữ P1 2500000 Bài tập: Xét các CSDL gồm các lược đồ quan hệ được cho bởi các thể hiện của chúng như sau: NHAN_VIEN MA_P TEN_P ĐIA_CHI P1 Hành chính quản trị P302 - Nhà A P2 Nghiên cứu và PT Tầng 3 - Nhà B P3 Giám đốc Tầng 2- Nhà A P4 Kỹ thuật P205 - Nhà C PHONG DU_AN MA_DA TEN_DA ĐIA_ĐIEM_DA MA_P D1 Phần mềm A HÀ NỘI P4 D5 Mạng B NAM ĐỊNH P2 D20 Giáo trình điện tử HẢI PHÒNG P1 CHAM_CONG MA_NV MA_DA SO_GIO 1 D8 20 2 D4 15 3 D1 17 4 D8 24 5 D20 30 6 D1 27 Yêu cầu : 1. Tìm tên dự án có mã là D20 2.Cho biết tên các thành phố có dự án thực hiện. 3. Cho biết tên phòng thực hiện dự án có mã là D20 4. Cho biết tên và lương của những nhân viên thực hiện dự án D8 và làm việc trên 20 giờ 5. Cho biết họ tên và lương của những nhân viên thuộc phòng " Nghiên cứu & PT" 6. Đếm số nhân viên trong công ty và tính mức lương trung bình của các nhân viên. 7. Đếm số dự án mà công ty đã thực hiện Bài 5. Ngôn ngữ CSDL – SQL  Để người sử dụng có thể giao tiếp được với CSDL phải có một hệ thống ngôn ngữ giao tiếp bao gồm: • Ngôn ngữ định nghĩa dữ liệu . • Ngôn ngữ thao tác dữ liệu • Ngôn ngữ truy vấn dữ liệu • Ngôn ngữ quản lý dữ liệu Mỗi hệ quản trị CSDL đều có cách cài đặt các ngôn ngữ khác nhau nhưng đều dựa trên chuẩn của ngôn ngữ truy vấn có cấu trúc SQL ( Structured- Query Language) I. Ngôn ngữ định nghĩa dữ liệu SQL  Là ngôn ngữ mô tả dữ liệu, cho phép người dùng định nghĩa cấu trúc CSDL, sửa đổi cấu trúc, liên kết các thành phần trong CSDL  Ngoài ra , nó còn cung cấp các khả năng khác như : định nghĩa khung nhìn, kiểm soát tính toàn vẹn dữ liệu, cấp phát quyền truy cập, Quy ước : – Tên tên bảng, thuộc tính đối tượng không chứa dấu cách, không trùng tên với nhau. – Các phạm trù cú pháp bắt buộc phải điền được đặt trong cặp dấu – Các thành phần tuỳ chọn được viết trong cặp dấu [ ] – Mỗi câu lệnh SQL có thể được viết trên nhiều dòng và được kết thúc bằng dấu ; Các kiểu dữ liệu đơn giản trong SQL  Kiểu dữ liệu số: integer , float, decimal(n,p)- số thực với độ dài tối đa là n chữ số với p chữ số thập phân , number(n)- kiểu số có độ dài tối đa là n  Kiểu dữ liệu chuỗi : -varchar (n) - chuỗi có độ dài biến đổi từ 0 đến n - Char (n): xâu kí tự có độ dài cố định n ( n<=255)  Kiểu dữ liệu ngày tháng: date, time  Kiểu luận lí : boolean II. Các câu lệnh tạo cấu trúc bảng 1. Lệnh tạo bảng tổng quát CREATE TABLE ( < kích thước 1>, . < kích thước n>, ); Ví dụ : Tạo bảng SINH_VIEN có các thuộc tính: - mã sinh viên ( kiểu số có độ dài <5) - họ tên ( kiểu xâu kí tự có độ dài <25) - ngày sinh (kiểu date) - giới tính ( kiểu xâu có độ dài <3) - địa chỉ ( kiểu xâu có độ dài < 30 ) - điểm TB ( kiểu số thực có độ dài <4, trong đó có 2 chữ số sau phần thập phân) CREATE TABLE SINH_VIEN ( ma_sv NUMBER(5) , ho_ten VARCHAR(25), ng_sinh DATE, gioi_tinh VARCHAR (3), đia_chi VARCHAR (30), diem_tb DECIMAL (4,2), ); 2. Lệnh tạo bảng với một số điều kiện ràng buộc CREATE TABLE ( , . , [ CONSTRAINT ]| NULL| NOT NULL| Primary Key ( Khoá chính ) [ Unique ( khoá )] [Foreign Key (Khoá _ ngoài) References Tên_bảng] [ Check ] ); Trong đó :  NOT NULL : chỉ rằng cột không nhận giá trị rỗng. Ngầm định là Null. Thuộc tính khoá ngầm định là Not Null.  COSNTRAINT : khai báo các ràng buộc toàn vẹn của CSDL.  Primary Key ( Khoá chính): Khai báo khoá chính của mảng  Unique ( Khoá ) : Khai báo các khoá khác nếu có  Foreign Key Khoá_ ngoài References Tên_ bảng : Khai báo các khoá ngoài của bảng  Check Điều_kiện_ràng_buộc : Khai báo các ràng buộc dữ liệu . Ví dụ : Tạo bảng SINH_VIEN có: - khoá chính là thuộc tính mã sinh viên ( kiểu số) - họ tên ( kiểu xâu kí tự có độ dài <=25) không được để trống, - ngày sinh (kiểu date) - giới tính ( kiểu xâu có độ dài <=3, mặc định là 'Nam') - mã lớp là một khoá ngoài, mã lớp thuộc bảng LOP. - điểm TB ( kiểu số thực có độ dài <=4)

Các file đính kèm theo tài liệu này:

  • pdftailieu.pdf
Tài liệu liên quan