Bài giảng Cơ sở dữ liệu - Cáp Xuân Tuấn
Chương 1: CÁC KHÁI NIỆM CƠ BẢN VỀ CƠ SỞ DỮ LIỆU
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
Chương 3: THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ
anh sách các bộ được liệt kê tuần tự theo nhóm có cùng giá trị, hết nhóm này đến nhóm khác. Ví dụ 2.35: Cho biết số lượng hàng mà mỗi công ty đã cung cấp cho khách hàng. Select SoHieu, Sum(Soluong) From CPP Group By SoHieuCho biết số lượng theo từng mặt hàng mà mỗi công ty đã cung cấp cho khách hàng. Select SoHieu, MaHieu, Sum(Soluong) From CPP Group By SoHieu, MaHieuVí dụ 2.36: Cho biết số hiệu của các công ty đã cung cấp ít nhất là 2 mặt hàng. ở đây ta phân nhóm theo giá trị số hiệu của các tông ty, sau đó đếm trong nhóm đó có ít nhất là hai mặt hàng thì liệt kê vào kết quả. Select SoHieu From CPP Group By SoHieu Having count (Distinct MaHieu)> = 2TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊKHOA CÔNG NGHỆ THÔNG TINGiảng viên chính: ThS CÁP XUÂN TUẤN 2.2.1. Câu hỏi tìm kiếm thông tinf. Tìm kiếm có liên kết Có nhiều trường hợp yêu cầu tìm kiếm bắt buộc hệ quản trị dữ liệu phải thao tác trên nhiều quan hệ có liên kết thông tin với nhau. Ta sử dụng cú pháp . để chỉ rõ thuộc tính là thuộc về quan hệ nào, chẳng hạn Co.SoHieu để chỉ thuộc tính SoHieu của quan hệ Co còn CPP.SoHieu là chỉ thuộc tính SoHieu của quan hệ CPP. Ví dụ 2.37: Với mỗi mặt hàng đã được bán, cho biết mã số mặt hàng và địa chỉ của công ty đã bán mặt hàng đó nằm trong quan hệ Co, hai loại dữ liệu này liên kết với nhau bởi số hiệu công ty đã bán hàng. Select Co.SoHieu, CPP.MaHieu, Co.DiaChi From Co, CPP Where Co.SoHieu = CPP. SoHieuVí dụ 2.38: Với mỗi mặt hàng đã được bán, cho biết mã số mặt hàng, địa chỉ của công ty đã bán mặt hàng đó và địa chỉ chứa hàng. Dữ liệu cần tìm kiếm nằm trên cả 3 quan hệ và được liên kết với nhau, Co và CPP liên kết bởi SoHieu, CPP và Pr liên kết bởi MaHieu. Select Co.SoHieu, CPP.MaHieu, Co. DiaChi, Pr.DiaChi From Co, CPP, Pr Where (Co.SoHieu =CPP. SoHieu) and (CPP.MaHieu = Pr.MaHieu)TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊKHOA CÔNG NGHỆ THÔNG TINGiảng viên chính: ThS CÁP XUÂN TUẤN 2.2. Các cấu trúc thao tác dữ liệu 2.2.1. Câu hỏi tìm kiếm thông ting. Tìm kiếm với các câu hỏi phức hợp* Sử dụng cấu trúc vấn tin lồng nhau. Ví dụ 2. 39: Cho biết tên các công ty đã cung cấp mặt hàng có mã hiệu P2. Chọn tên của các công ty sao cho số hiệu của nó nằm trong tập hợp số hiệu của các công ty có bán mặt hàng P2. Select TenCo From Co Where SoHieu In (Select SoHieu From CPP Where MaHieu = ‘P2’)Ví dụ 2.40: Cho biết tên các công ty không cung ứng mặt hàng P2. Select TenCo From Co Where SoHieu Not In (Select SoHieu From CPP Where MaHieu = ‘P2’)TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊKHOA CÔNG NGHỆ THÔNG TINGiảng viên chính: ThS CÁP XUÂN TUẤN 2.2. Các cấu trúc thao tác dữ liệu 2.2.1. Câu hỏi tìm kiếm thông ting. Tìm kiếm với các câu hỏi phức hợp*Sử dụng lượng từ. Lượng từ tồn tại được kí hiệu là “Exists”. Cấu trúc như sau: Exists , lượng từ này trả về giá trị đúng nếu tập hợp này khác rỗng. Ví dụ: Cho biết danh sách các công ty có ít nhất một lần cung ứng hàng hoá. Các công ty có ít nhất một lần cung ứng nếu nó thoả mãn điều kiện là tập hợp của sự lụa chọn các bộ có cùng số hiệu với nó trong quan hẹ CPP là khác rỗng. Select * From Co Where Exist (Select * From CPP Where Co.SoHieu = CPP.SoHieu) Lượng từ với mọi được kí hiệu là “All”. Cấu trúc được quy định như sau: All , tập hợp giá trị ở đây có thể là kết qủa của một câu vấn tin. Ví dụ: Cho biết số hiệu của công ty cung ứng một lần nào đó với số lượng lớn nhất trong tất cả các lần cung ứng hàng của tất cả các công ty. Select SoHieu From CPP Where SoLuong > = All (Select SoLuong From CPP) Lượng từ bất kì “Any” và một vài “Some”. Cấu trúc được quy định như sau: Any / Some . Ví dụ 2.41: Cho biết số hiệu của công ty đã có một lần nào đó cung ứng một chuyến hàng có giá trị lớn hơn số vốn của công ty đó. Select Sohieu From Co Where Von () Values (). Danh sách thuộc tính phải sắp xếp thứ tự tương ứng với các giá trị của nó trong danh sách giá trị. Danh sách thuộc tính có thể không cần thiết trong một hệ cụ thể, khi mà danh sách giá trị có thứ tự tương ứng với thứ tự các trường (cột) trong mô tả của bảng. Ví dụ 2.42: Khi có một công ty mới đăng ký kinh doanh trên thị trường, ta bổ sung thông tin của công ty đó vào quan hệ Co. Ta có câu chỉ thị sau: Insert Into Co (SoHieu, TenCo, diaChi, Von) Values (‘S5’, ‘Hoa Đại’, ‘Hà Nội’, 120000000000) Nếu thứ tự trong mô tả vật lý của các thuộc tính trong quan hệ Co là {SoHieu, TenCo, Von, DiaChi} thì ta có chỉ thị sau: Insert Into Co Values (‘S5’, ‘Hoa Đại’, ‘Hà Nội’, 120000000000)TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊKHOA CÔNG NGHỆ THÔNG TINGiảng viên chính: ThS CÁP XUÂN TUẤN2. Ngôn ngữ hỏi có cấu trúc SQLChương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU 2.2. Các cấu trúc thao tác dữ liệu 2.2.2. Các thao tác cập nhật. b. Cập nhật giá trị trong quan hệ Khi chúng ta phải sửa đổi những giá trị thuộc tính của các bộ trong một quan hệ thì SQL cung cấp cấu trúc sau đây: Update Set ,... Where Chỉ thị này cho phép thay thế giá trị thuộc tính tại các thuộc tính đã được chỉ ra bằng giá trị các biểu thức và chỉ tại những bộ thoả mãn điều kiện sau mệnh đề Where. TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊKHOA CÔNG NGHỆ THÔNG TINGiảng viên chính: ThS CÁP XUÂN TUẤN2. Ngôn ngữ hỏi có cấu trúc SQLChương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU 2.2. Các cấu trúc thao tác dữ liệu 2.2.2. Các thao tác cập nhật. c. Xoá bộ trong quan hệXóa các bộ thoả mãn điều kiện trong một quan hệ ta có cấu trúc sau: Delete From Where TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊKHOA CÔNG NGHỆ THÔNG TINGiảng viên chính: ThS CÁP XUÂN TUẤN. Tóm tắt chương 2 Trong chương này chúng ta đã đề cập đến các kiến thức về cách thức xử lý dữ liệu trong các CSDL. Hai phương pháp được trình bày là phương pháp xử lý dữ liệu dựa trên các phép toán đại số và phương pháp sử dụng ngôn ngữ hỏi có cấu trúc. Trước khi tìm hiểu về cách thức xử lý dữ liệu, mô hình dữ liệu quan hệ cũng đã được mô tả với các khái niệm cơ bản. Các kiến thức trong chương được cấu trúc làm ba phần: Phần thứ nhất trình bày về các khái niệm cơ bản về CSDL quan hệ. Phần thứ hai trình bày về cách thức xử lý CSDL quan hệ dựa trên cơ sở các phép toán đại số: Phép hợp, giao, trừ, tích đề các, kết nối, chia, chiếu, chọn. Phần cuối tập trung trình bày về cấu trúc SQL cùng với các ví dụ chi tiết về cách dùng SQL với các yêu cầu về tìm kiếm dữ liệu. Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆUTRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊKHOA CÔNG NGHỆ THÔNG TINGiảng viên chính: ThS CÁP XUÂN TUẤN. Câu hỏi ôn tập chương 21. Hãy trình bày các định nghĩa hình thức về quan hệ. Mô tả rõ các khái niệm thuộc tính, miền giá trị thuộc tính, khoá của quan hệ. 2. Trình bày các phép toán đại số trên các quan hệ, cho ví dụ minh hoạ với các quan hệ lấy từ thực tế. 3. Hãy trình bày các chức năng của ngôn ngữ SQL. Cú pháp hình thức của cấu trúc SELECT ...FROM... WHERE..., cho ví dụ minh hoạ từ các ví dụ thực tế. Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆUTRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊKHOA CÔNG NGHỆ THÔNG TINGiảng viên chính: ThS CÁP XUÂN TUẤNBài tập chương 2 Cho 4 quan hệ của một bài toán quản lý thị trường sau đây: S (S#, Tên công ty, vốn, địa chỉ) quan hệ chứa dữ liệu về các công ty, số vốn của công ty, địa chỉ văn phòng của công ty (ghi đến tỉnh, thành phố). P(P#, Tên Hàng, Màu, Trọng Lượng) quan hệ chứa dữ liệu về hàng hoá. Trong đó các thuộc tính lần lượt là mã hiệu hàng hoá, tên hàng, màu sắc, trọng lượng của hàng. J(J#, TênJ, Địa ChỉJ) quan hệ chứa dữ liệu về các đơn vị mua hàng. Trong đó các thuộc tính lần lượt là số hiệu đơn vị, tên đơn vị, địa chỉ của đơn vị(ghi đến tỉnh, thành phố). SPJ(S#, P#, J#, SốLượng, Đơn Giá) quan hệ chứa dữ liệu về các chuyến hàng. Trong đó các thuộctính lần lượt là số hiệu cong ty bán hàng, mã hiệu mặt hàng đượcbán, số hiệu đơn vị mua hàng số lượng của chuyến hàng và đơn giá của chuyến hàng đó. Hãy xây dựng các biểu thức đại số và các câu vấn tin SQL để trả lời câu hỏi sau đây: Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆUContinueTRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊKHOA CÔNG NGHỆ THÔNG TINGiảng viên chính: ThS CÁP XUÂN TUẤNBài tập chương 2a. Tìm số hiệu của một mặt hàng mà không có mặt hàng nào khác có trọng lượng nhỏ hơn. b. Tìm giá trị S# của các công ty có bán hàng cho đơn vị có số hiệu J1. c. Tìm giá trị S# của các công ty cung ứng mặt hàng P1 cho đơn vị số hiệu j1. d. Tìm các TênJ của các đơn vị được công ty có số hiệu S1 cung cấp hàng. e. Tìm màu của các mặt hàng do công ty có số hiệu S1 cung cấp. f. Tìm các giá trị S# của các công ty cung ứng cho cả hai đơn vị J1 và J2. g. Tìm các giá trị S# của các công ty cùng ứng mặt hàng màu đỏ cho đơn vị J1. h. Tìm các giá trị P# của các mặt hàng được cung cấp cho một đơn vị bất kỳ ở Hà nội. Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆUContinueTRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊKHOA CÔNG NGHỆ THÔNG TINGiảng viên chính: ThS CÁP XUÂN TUẤNBài tập chương 2i. Tìm các giá trị S# của các công ty cung cấp một mặt hàng màu đỏ cho một đơn vị ở Hà Nội hoặc Hải Phòng. j. Tìm các giá trị P# của các mặt hàng do một công ty ở hà nội cung cấp cho bất kỳ một đơn vị nào đó ở Hà nội. k. tìm các giá trị P# của các mặt hàng do một công ty ở Hà Nội cung cấp cho bất kỳ một đơn vị nào đó ở Hà nội. l. Tìm các giá trị J# của đơn vị được cung cấp hàng bởi ít nhất là một công ty ở khác địa chỉ. m. Tìm các giá trị J# của các đơn vị đã không mua bất cứ một mặt hàng màu đỏ nào của một công ty bất kì nào ở Hà Nội. n. Tìm các giá trị J# của công ty bán một mặt hàng mà mặt hàng đó đã được bán bởi một công ty nào đó mà công ty này đã có bán một mặt hàng màu đỏChương 2: NGÔN NGỮ THAO TÁC DỮ LIỆUContinueTRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊKHOA CÔNG NGHỆ THÔNG TINGiảng viên chính: ThS CÁP XUÂN TUẤNBài tập chương 2o. Tìm các giá trị J# của các đơn vị đang đã mua ít nhất là một mặt hàng mà công ty S1 có khả năng cung cấpp. Tìm tất cả các địa chỉ của công ty ở thành phố này cung cấp cho một đơn vị ở thành phố khác. q. Tìm tất cả các bộ ba (Diachỉ, P#, Diachij) mà một công ty ở thành phố thứ nhất cùng cấp một mặt hàng xác định cho một đơn vị ở thành phố thứ 2. r. Tìm các giá trị J# của đơn vị được cung cấp hàng hoàn toàn bởi công ty S1. s. Tìm các giá trị S# của các công ty đã có bán được tất cả các mặt hàng. Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
File đính kèm:
- bai giang csdl.ppt