Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
3,92 MB
Nội dung
BÀI MƠ HÌNH DỮ LIỆU QUAN HỆ Giảng viên: ThS Nguyễn Tiến Đạt v1.0011105217 TÌNH HUỐNG DẪN NHẬP Từ năm 1980, hệ CSDL dựa mô hình quan hệ sử dụng rộng rãi tính đơn giản sở tốn học Data Model Real world Conceptual Model (ER) Logical Model Independent of DBMS DBMS dependent Ngày nay, mơ hình liệu quan hệ mơ hình liệu dùng phổ biến hệ quản trị sở liệu Vậy mơ hình sở liệu quan hệ gì? Mơ hình liệu quan hệ đươc thể hệ quản trị liệu SQL nào? Có thao tác mơ hình liệu quan hệ? v1.0011105217 MỤC TIÊU Mô tả khái niệm thành phần mô hình liệu quan hệ; Giới thiệu lược đồ quan hệ với SQL; Cung cấp thao tác đại số quan hệ v1.0011105217 NỘI DUNG Các khái niệm mơ hình liệu quan hệ Định nghĩa lược đồ quan hệ với SQL Đại số quan hệ v1.0011105217 CÁC KHÁI NIỆM CƠ BẢN 1.1 Tích Đề - 1.2 Quan hệ lược đồ quan hệ 1.3 Khóa quan hệ 1.4 Biểu diễn quan hệ v1.0011105217 1.1 TÍCH ĐỀ-CÁC • Miền (Domain): Là tập giá trị Ví dụ: Tập số nguyên miền; Tập xâu kí tự tạo thành tên người tiếng Anh có độ dài khơng q 30 ký tự miền • Tích Đề-Các: Gọi D1, D2,…., Dn miền Tích Đề-Các n miền ký hiệu D1 x D2 x….x Dn tập tất n-bộ (n-tuples) (v1, v2,…, vn) cho vi thuộc Di với i=1,…,n Ví dụ: n=2, D1={0,1}, D2={a,b,c} Khi D1 x D2={(0,a), (0,b), (0,c), (1,a), (1,b), (1,c)} v1.0011105217 1.2 QUAN HỆ VÀ LƯỢC ĐỒ QUAN HỆ • Quan hệ: Một quan hệ tập thuộc tính tập tích Descartes hay nhiều miền Cho quan hệ r xác định tập thuộc tính Ω={A1, A2,….,An} Khi r tập tích Descartes Dom(A1) x ….x Dom(An) Dom(Ai) miền thuộc tính A • Lược đồ quan hệ: Một lược đồ quan hệ R cặp có thứ tự R=trong Ω tập hữu hạn thuộc tính quan hệ, F tập điều kiện thuộc tính (F cịn gọi tập ràng buộc tồn vẹn) Một ràng buộc tập thuộc tính tính chất tập tất quan hệ xác định tập thuộc tính này: Một lược đồ quan hệ sử dụng để mô tả cấu trúc ràng buộc toàn vẹn quan hệ; Với lược đồ quan hệ R, theo thời gian, nhiều quan hệ có cấu trúc ràng buộc tồn vẹn mơ tả lược đồ Mỗi quan hệ gọi thể lược đồ R v1.0011105217 1.3 KHÓA MỘT QUAN HỆ • Siêu khóa: Của lược đồ quan hệ R tập hợp gồm hay nhiều thuộc tính lược đồ R có tính chất xác định thể R • Khóa: Của lược đồ quan hệ siêu khóa lược đồ cho tập thực khơng siêu khóa • Một lược đồ quan hệ có nhiều khóa, khóa gọi khóa dự tuyển • Thơng thường có khóa dự tuyển định làm khóa Ví dụ: Quan hệ Sinhvien(Masv, Hoten, Makhoa, Ngaysinh, Diachi) Tập thuộc tính {Masv} khóa khơng thể có hai sinh viên khác có mã số sinh viên v1.0011105217 1.3 KHÓA MỘT QUAN HỆ (tiếp theo) Khóa ngồi: Của lược đồ quan hệ tập hợp gồm hay nhiều thuộc tính khóa lược đồ quan hệ khác Ví dụ: • Sinhvien(MaSV, TenSV, QueQuan, Tuoi, MaLop); • Lop(MaLop, TenLop, Gvchunhiem); • Khóa ngồi: MaLop MaLop khóa lược đồ quan hệ Lop v1.0011105217 1.4 BIỂU DIỄN QUAN HỆ • Trong lý thuyết mơ hình liệu quan hệ: Một quan hệ bảng; Thuộc tính để tên cột; Miền để kiểu liệu cột; Bộ để hàng bảng; Số quan hệ gọi lực lượng quan hệ số thành phần gọi bậc quan hệ • Khi nói đến lược đồ quan hệ tập trung vào khía cạnh mơ tả cấu trúc quan hệ mà không quan tâm đến ràng buộc ta kí hiệu: R(A1,….,An) với R tên quan hệ, A1,…,An danh sách tên thuộc tính • Ví dụ: Cho quan hệ NhanVien sau Kí hiệu là: NhanVien(HoNV,Tenlot,TenNV,MaNV,NgSinh,Dchi,Phai,Luong,MaNQL,Phong)10 v1.0011105217 1.4 BIỂU DIỄN QUAN HỆ (tiếp theo) Tính chất đặc trưng quan hệ: • Một quan hệ có tên phân biệt với tên quan hệ khác; • Mỗi ô bảng (quan hệ) chứa giá trị ngun tố; • Mỗi thuộc tính quan hệ có tên phân biệt; • Các giá trị thuộc tính thuộc miền; • Thứ tự thuộc tính khơng quan trọng; • Các quan hệ phân biệt, nghĩa khơng có hai giống hệt quan hệ; • Thứ tự không quan trọng mặt lý thuyết 11 v1.0011105217 ĐỊNH NGHĨA LƯỢC ĐỒ QUAN HỆ VỚI SQL 2.1 Khái niệm miền giá trị kiểu liệu 2.2 Create Database 2.3 Create Table 12 v1.0011105217 2.1 KHÁI NIỆM MIỀN GIÁ TRỊ VÀ KIỂU DỮ LIỆU • SQL-92 chuẩn hỗ trợ nhiều kiểu miền cài sẵn: Char (n): xâu ký tự độ dài cố định, độ dài n xác định người dùng; VarChar(n): Int: số nguyên; SmallInt; Numeric (p,d); Real, Double precision; Float (n); Date; Time • Giá trị Null phần tử miền, nhiên với số thuộc tính việc sử dụng giá trị null khơng thích hợp Khóa lược đồ quan hệ khơng cho phép nhận giá trị null 13 v1.0011105217 2.2 CREATE DATABASE • Để tạo CSDL SQL, ta sử dụng cú pháp: CREATE DATABASE database_name • Ví dụ: Để tạo CSDL “SinhVien”, ta dùng câu lệnh: Create database SinhVien 14 v1.0011105217 2.3 CREATE TABLE • Dạng đơn giản câu lệnh tạo bảng có cú pháp: CREATE TABLE ( (), (), ………………… (), ); • Ví dụ: Để tạo bảng nhan_vien sử dụng câu lệnh sau: Create table nhan_vien ( manv Number(2), ho_ten Varchar(25), gioi_tinh Varchar(3) ); 15 v1.0011105217 ĐẠI SỐ QUAN HỆ 3.1 Giới thiệu 3.2 Các thao tác 3.3 Các thao tác mở rộng 16 v1.0011105217 3.1 GIỚI THIỆU • Ngơn ngữ đại số quan hệ sở quan trọng ngôn ngữ bậc cao, sử dụng để thao tác quan hệ • Với liệu lưu trữ quan hệ đó, sử dụng phép tốn đại số quan hệ để tạo quan hệ mới, quan hệ thông tin trả theo u cầu người sử dụng; • Các phép tốn đại số quan hệ thường chia thành nhóm Nhóm thứ gồm phép tốn tập hợp (phép hợp, phép giao, phép trừ tích Descartes) Nhóm thứ hai gồm phép tốn đặc biệt quan hệ (phép chọn, phép chiếu, phép kết nối, phép chia) 17 v1.0011105217 3.2 CÁC THAO TÁC CƠ BẢN Các phép toán tập hợp: Phép hợp (Union), phép giao (Intersection), phép trừ (Difference): • Yêu cầu: Hai quan hệ thỏa mãn điều kiện khả hợp; có bậc (có số thuộc tính nhau) thuộc tính thứ i quan hệ có miền trùng với miền thuộc tính thứ i quan hệ • Giả sử có quan hệ R(A1, A2, , An) S (B1, B2, , Bn): Phép hợp: Ký hiệu R S quan hệ gồm tất thuộc R thuộc S; Phép giao: Ký hiệu R S quan hệ gồm tất vừa thuộc R vừa thuộc S; Phép trừ: Ký hiệu R-S quan hệ gồm tất thuộc R khơng thuộc S • Tính chất: Phép hội phép giao có tính giao hốn, liên hợp: R S = S R, and R S = S R; R (S T) = (R S) T, and (R S) T = R (S T) Phép trừ khơng có tính giao hốn liên hợp: R - S ≠ S – R 18 v1.0011105217 3.2 CÁC THAO TÁC CƠ BẢN (tiếp theo) • Ví dụ: • Phép giao: STUDENT INSTRUCTOR • Phép hợp: STUDENT INSTRUCTOR 19 v1.0011105217 3.2 CÁC THAO TÁC CƠ BẢN (tiếp theo) • Phép trừ: • Phép tích Descartes (Castesian Product): r quan hệ lược đồ R(A1, A2, , An) s quan hệ lược đồ S(B1, B2, , Bm) Tích Descartes r s ký hiệu r x s tập (n+m)-bộ cho có n thành phần đầu làm thành thuộc r m thành phần sau làm thành thuộc s Không cần r s hai quan hệ khả hợp; Ví dụ: Quan hệ r Quan hệ s rxs= 20 v1.0011105217 10 3.2 CÁC THAO TÁC CƠ BẢN (tiếp theo) • Phép chia: r quan hệ lược đồ R(A1, A2, , Am, Am+1,…, An) s quan hệ lược đồ S(A1, A2, , Am) Phép chia r s ký hiệu r ÷ s tập (n-m)-bộ cho ghép với quan hệ s cho quan hệ r • Ví dụ: Tìm nhân viên vừa làm project P1 P4 R ÷ S ENO E3 21 v1.0011105217 3.3 CÁC THAO TÁC MỞ RỘNG Các thao tác mở rộng bao gồm: • Phép chọn (select); • Phép chiếu (project); • Phép kết nối (join); • Phép kết nối nửa (semi join); • Phép kết nối ngồi trái (left outer join) phép kết nối phải (right outer join); • Phép đổi tên 22 v1.0011105217 11 PHÉP CHỌN Dùng để xây dựng tập của quan hệ cho, phải thỏa mãn điều kiện (được gọi điều kiện chọn) • Ký hiệu phép chọn quan hệ r với điều kiện C là: C(r) • Ví dụ: Quan hệ r (Nhanvien): 23 v1.0011105217 PHÉP CHỌN (tiếp theo) Tính chất phép chọn: • Bậc quan hệ kết với bậc quan hệ ban đầu; • Số dịng quan hệ kết số dịng quan hệ ban đầu; • Khi thực phép chọn liên tiếp có tính chất: 24 v1.0011105217 12 PHÉP CHIẾU Một quan hệ r tập thuộc tính X r dùng để xây dựng quan hệ từ quan hệ r cho cách loại bỏ số thuộc tính quan hệ Những thuộc tính bị loại bỏ thuộc tính khơng thuộc tập X • Ký hiệu phép chiếu quan hệ r tập X: X(r) • Ví dụ: Quan hệ r (Nhanvien): • Tính chất: Các thuộc tính kết thuộc tính danh sách thuộc tính phép chiếu; Bậc quan hệ kết số thuộc tính phép chiếu 25 v1.0011105217 PHÉP KẾT NỐI (JOIN) • Cho quan hệ r(A1, A2,… , An) quan hệ s(B1, B2,… , Bm) θ phép so sánh Kết phép nối θ quan hệ r với quan hệ s theo điều kiện Ai θ Bj ký hiệu là: r s điều kiện kết nối Ai θ Bj • Ví dụ: • Trường hợp θ “=” phép kết nối gọi kết nối bằng; • Trường hợp kết nối thuộc tính tên hai quan hệ r s hai thuộc tính loại bỏ khỏi kết phép kết nối gọi phép kết 26 nối tự nhiên ký hiệu r * s r s v1.0011105217 13 PHÉP KẾT NỐI NỬA, KẾT NỐI NGOÀI TRÁI, NGOÀI PHẢI • Phép kết nối nửa: Kết phép kết nối nửa quan hệ r với quan hệ s theo điều kiện F quan hệ gồm tất thuộc r có tính chất kết nối (theo F) với quan hệ s Phép toán xác định sau: A(r F s) • Phép kết nối ngồi trái: Bao gồm kết việc xếp cạnh hai t, u kết nối với mà cịn bao gồm có phần bên trái t không kết nối với s, phần bên phải giá trị null Ký hiệu r s • Phép kết nối ngồi phải: Bao gồm khơng kết việc xếp cạnh hai t, u kết nối với mà bao gồm có phần bên phải s không kết nối với t, phần bên trái giá trị null Ký hiệu r s 27 v1.0011105217 PHÉP KẾT NỐI NỬA, KẾT NỐI NGỒI TRÁI, NGỒI PHẢI (tiếp theo) Ví dụ: Kết nối trái: 28 v1.0011105217 14 PHÉP ĐẶT LẠI TÊN (RENAMING) Lược đồ quan hệ sở liệu cơng ty (các thuộc tính khóa gạch chân) 29 v1.0011105217 PHÉP ĐẶT LẠI TÊN (RENAMING) – • Để quan hệ kết nhiều cần nhiều phép tốn quan hệ liên tiếp Có cách thực hiện: Cách 1: Viết biểu thức đại số quan hệ mà phép tốn xếp lồng nhau; Cách 2: Áp dụng phép toán thời điểm tạo quan hệ kết trung gian Những quan hệ trung gian cần đặt lại tên • Ví dụ: Lấy Fname,Lname,Salary Employee có DNO FNAME, LNAME, SALARY( DNO=5(EMPLOYEE)); DEP5_EMPS DNO=5(EMPLOYEE); RESULT FNAME, LNAME, SALARY (DEP5_EMPS) • Tốn tử đặt tên ; • Tốn tử có dạng sau: S (B1, B2, …, Bn) ( R): Đổi tên quan hệ S dựa R với cột B1, ,Bn; S ( R): Đổi tên quan hệ S dựa quan hệ R(không rõ cột); (B1, B2, …, Bn ) ( R): Quan hệ đổi tên với cột B1,…,Bn mà không tạo tên quan hệ 30 v1.0011105217 15 TĨM LƯỢC CUỐI BÀI • Khái niệm mơ hình liệu quan hệ; • Quan hệ, lược đồ quan hệ; • Biểu diễn quan hệ; • Lược đồ quan hệ với SQL; • Giới thiệu đại số quan hệ; • Các thao tác mở rộng với đại số quan hệ 31 v1.0011105217 16