1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Hệ cơ sở dữ liệu - Nguyễn Việt Cường

47 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Bài giảng Hệ cơ sở dữ liệu cung cấp cho người học những kiến thức như: Giới thiệu chung về lý thuyết CSDL; Mô hình thực thể kết hợp; Mô hình quan hệ; : Chuyển từ mô hình thực thể kết hợp sang mô hình quan hệ; Ngôn ngữ truy vấn SQL; Chuẩn hóa dữ liệu;...Mời các bạn cùng tham khảo!

NỘI DUNG MƠN HỌC • Chương 1: Giới thiệu chung lý thuyết CSDL • Chương 2: Mơ hình thực thể kết hợp • Chương 3: Mơ hình quan hệ • Chương 4: Chuyển từ mơ hình thực thể kết hợp sang mơ hình quan hệ • Chương 5: Ngơn ngữ truy vấn SQL • Chương 6: Chuẩn hóa liệu • Chương 7: Thiết kế vật lý sở liệu • Chương 8: Thủ tục lưu trữ trigger • Chương 9: Bảo mật quyền người dùng • Tổng cộng: 45 LT+60TH HỆ CƠ SỞ DỮ LIỆU GV: Nguyễn Việt Cường TÀI LIỆU THAM KHẢO NỘI DUNG MÔN HỌC LÝ THUYẾT THỰC HÀNH Giới thiệu chung lý thuyết CSDL Mơ hình thực thể kết hợp 3 Mơ hình quan hệ Chuyển từ mơ hình thực thể kết hợp sang mơ hình quan hệ Ngơn ngữ truy vấn SQL 12 30 Chuẩn hóa liệu Thiết kế vật lý sở liệu Thủ tục lưu trữ trigger 24 Bảo mật quyền người dùng 45 60 CHƯƠNG TÊN CHƯƠNG Tổng cộng: • [1]Concepts of Database management – Philip J Pratt & Joseph J Adamski – Thomson , 5th edition • [2] Database Systems: Design, Implementation & Management – Peter Rob & Carlos Coronel – Thomson, 6th edition • [3] Programming Logic and Design – Joyce Farrell – Thomson, 3rd Edition • [4] Giáo trình sở liệu - Trường ĐH Công nghiệp TP HCM [5] Các thực hành môn sở liệuTrường ĐH Công nghiệp TP HCM • [6] Principles of database and knowledge base systems - JEFFREY D ULLMAN Nội dung Chương Giới thiệu chung lý thuyết Cơ Sở Dữ Liệu (CSDL) khái niệm định nghĩa  Hệ thống xử lý tập tin truyền thống  Cách tiếp cận sở liệu  Các thành phần môi trường hệ quản trị sở liệu  Các chức hệ quản trị sở liệu  Kiến trúc sở liệu ba lược đồ  Các 1 Các khái niệm định nghĩa  Dữ liệu thơng tin Dữ liệu (data): • Là mơ tả hình thức thích hợp kiện(event), khái niệm (concept) hay thị để giúp người giao tiếp, diễn giải hay xử lý thực cách tự động • Dữ liệu mô tả dạng nào, chẳng hạn ký tự hay số gắn liền với ngữ nghĩa Thông tin (Information): • Là liệu qua xử lý nhằm đáp ứng yêu cầu người sử dụng hồn cảnh cụ thể • Dữ liệu ngữ cảnh • Dữ liệu tổng hợp / xử lý Các khái niệm định nghĩa Dữ liệu 10273 00298 … 151 50542 152 50075 Nguyễn Văn Hoà Nguyễn Minh Tâm CDTH7 CDTH7 20 19 Hồ Xuân Phương Lê Việt Dũng TCTH33 CNTH34 18 20 Thông tin: liệu ngữ cảnh STT Mã sinh viên Họ tên sinh viên Tuổi 10273 Nguyễn Văn Hoà 00298 Nguyễn Minh Tâm … 151 50542 Hồ Xuân Phương 152 50075 Lê Việt Dũng Các khái niệm định nghĩa Lớp CDTH7 CDTH7 20 19 TCTH33 CNTH34 18 20 Các khái niệm định nghĩa  Siêu liệu (metadata) Siêu liệu liệu dùng để mô tả tính chất / đặc tính liệu khác (dữ liệu liệu) Các đặc tính: định nghĩa liệu, cấu trúc liệu, qui tắc / ràng buộc Quá trình quản lý liệu 2.1 Hệ thống xử lý tập tin theo lối cũ Quá trình quản lý liệu  Các thành phần hệ thống xử lý tập tin      Hệ thống xử lý tập tin(file processing system) Hệ thống xử lý tập tin tập hợp chương trình dùng để lưu trữ, thao tác truy xuất tập tin liệu có kích thước lớn Các tập tin liệu lưu trữ thư mục (folder) Phần cứng: máy tính Phần mềm:    Hệ điều hành Các tiện ích Các tập tin Các chương trình quản lý tập tin Các chương trình ứng dụng tạo báo cáo từ liệu lưu trữ tập tin Con người: người quản lý, chuyên gia, người lập trình, người sử dụng cuối  Các thủ tục: lệnh qui tắc chi phối việc thiết kế sử dụng thành phần phần mềm  Dữ liệu: tập hợp kiện  2 Quá trình quản lý liệu  Quản lý liệu hệ thống tập tin  Ngơn ngữ lập trình: 3GL (third-Generation Language)       Tạo cấu trúc tập tin Thêm liệu vào tập tin Xóa liệu tập tin Sửa liệu tập tin Liệt kê liệu tập tin Hệ thống xử lý tập tin theo lối cũ Nhược điểm hệ thống xử lý tập tin   Người lập trình phải thiết kế dạng tập tin liệu riêng viết cách truy xuất tập tin cho ứng dụng Chi phí bảo trì chương trình cao  Các nhược điểm nêu làm cho việc bảo trì chương trình gặp nhiều khó khăn, thường chiếm khoảng 80% ngân sách phát triển HTTT      Tốn vùng nhớ để lưu trữ liệu dư thừa Gây vấn đề khó bảo trì liệu Vấn đề chính: Tất chương trình ứng dụng phải trì siêu liệu (phần mơ tả) tập tin mà chúng sử dụng Dư thừa liệu / Trùng lặp liệu (Data Redundancy / Duplication of Data)  Các hệ thống / chương trình khác có liệu riêng biệt liệu Hạn chế việc dùng chung liệu  Mỗi ứng dụng có tập tin riêng biệt, sử dụng chung liệu với ứng dụng khác Phụ thuộc liệu      Dư thừa liệu Phụ thuộc liệu – chương trình (Program-Data Dependence)  Thời gian phát triển lâu   Nhược điểm hệ thống xử lý tập tin Các chương trình xử lý tập tin    Làm gì? Làm nào? Các ngơn ngữ: COBOL (COmmon Business-Oriented Language) BASIC (Beginner’s All-purpose Symbolic Instruction Code) FORTRAN (FORmula TRANslation)  Hệ thống xử lý tập tin theo lối cũ Mỗi người lập trình phải trì liệu riêng biệt Mỗi chương trình ứng dụng phải có mã lệnh cho siêu liệu tập tin Mỗi chương trình ứng dụng phải có chương trình xử lý để đọc, thêm, sửa xóa liệu Khơng có điều khiển chung phối hợp Các dạng thức tập tin khơng có chuẩn Dư thừa liệu Duplicate Data Việc cập nhật liệu tập tin dẫn đến mâu thuẫn liệu  Vi phạm tính tồn vẹn liệu  Quá trình quản lý liệu Quá trình quản lý liệu 2.2 Cách tiếp cận sở liệu 2.2 Cách tiếp cận sở liệu 3.Các khái niệm hệ quản trị sở liệu  Cơ sở liệu (CSDL)  Cơ sở liệu tập hợp có tổ chức liệu có liên quan luận lý với lưu trữ tập tin Tập liệu lưu trữ thiết bị thông tin lưu trữ băng từ, đĩa…nhằm thỏa mãn yêu cầu khai thác thông tin đồng thời nhiều người dùng hay nhiều chương trình ứng dụng với nhiều mục đích sử dụng khác Một hệ CSDL= CSDL+ hệ QTCSDL 3.1 Các cách nhìn khác liệu View View … 3.Các khái niệm hệ quản trị sở liệu Hệ quản trị CSDL DBMS – DataBase Management System Hệ quản trị CSDL tập hợp chương trình, phần mềm dùng để quản lý cấu trúc liệu CSDL điều khiển truy xuất liệu CSDL Cho phép người sử dụng định nghĩa, tạo lập bảo trì CSDL cung cấp truy xuất liệu Cung cấp giao diện giưã người sử dụng liệu 3.2 Mơ hình liệu, lược đồ thể Mơ View n hình Dữ liệu hình Dữ liệu – Data Model: Tập hợp khái niệm mô tả: Dữ liệu mối kết hợp liệu Ngữ nghĩa liệu ràng buộc liệu Các thao tác Mơ hình Dữ liệu: Các thao tác rút trích cập nhật CSDL cách tham chiếu đến khái niệm Mơ hình Dữ liệu Logical (or Conceptal) Level Cấp độ trừu tượng Mô Physical Level Các mức độ trừu tượng DBMS Sự trừu tượng đạt thông qua mô tả mức dạng lược đồ cách dùng mơ hình liệu cụ thể 3.2 Mơ hình liệu, lược đồ thể 3.2 Mơ hình liệu, lược đồ thể Lược Các Mơ hình Dữ liệu: Mơ hình Quan hệ- Relational Model Mơ hình Mạng-Network Model Mơ hình Dữ liệu Phân cấp-Hierarchical Data Model Mơ hình Hướng đối tượng-Object-oriented Data Models Mơ hình Quan hệ Đối tượng-ObjectRelational Models 3.3 Các đặc điểm Cách tiếp cận sở liệu đồ thể hiện: Lược đồ CSDL-Database Schema: Mô tả CSDL Bao gồm mô tả cấu trúc CSDL ràng buộc CSDL Thể CSDL-Database Instance: Dữ liệu thời lưu CSDL thời điểm đó, hay cịn gọi trạng thái CSDL- database state(hay thể hiệnoccurrence) Lược đồ CSDL thay đổi Trạng thái CSDL thay đổi CSDL cập nhật 3.3 Các đặc điểm Cách tiếp cận sở liệu Một kho chứa liệu định nghĩa lần, trì truy xuất nhiều người dùng Bản chất tự mô tả hệ CSDL  Một DBMS catalog lưu trữ mô tả CSDL(mô tả gọi meta-data)  CSDL+ mô tả cấu trúc ràng buộc Mơ hình liệu Dữ liệu Hỗ trợ nhiều cách nhìn liệu Chia liệu xử lý giao dịch nhiều người dùng CSDL Phần mềm DBMS làm việc với nhiều ứng dụng CSDL Sự tách biệt chương trình liệu, trừu tượng liệu 3.4 Các đối tượng dùng Cơ sở liệu  Những người lập trình: Những người phải hiểu rõ cấu trúc CSDL, cách lưu trữ liệu  Những người sử dụng không chuyên: Chỉ cần biết nội dung CSDL cách truy xuất  Những người quản trị CSDL: Đối tượng xuất tính chất phức tạp hệ quản trị CSDL, có tồn quyền CSDL Những người thuộc đối tượng có nhiệm vụ cài đặt cấu trúc CSDL vào hệ quản trị CSDL, nhập liệu ban đầu, giải biến cố xảy ra, backup , restore liệu, sửa đối cấu trúc CSDL theo yêu cầu người thiết kế, nắm quyền ưu tiên, lập chế bảo mật hệ thống CSDL 3.5 Sự cần thiết CSDL Dữ liệu tạo thành tài sản tổ chức: Điều khiển tích hợp Giảm tối thiểu dư thừa liệu (data redundancy) Nâng cao tính qn (data consistency) / tồn vẹn liệu (data integrity) Nâng cao việc dùng chung liệu (data sharing)  Những người sử dụng khác có nhìn khác liệu 3.5 Sự cần thiết CSDL Nâng cao an toàn liệu Tăng hiệu suất phát triển ứng dụng  Độc lập liệu – chương trình (data - program independence)   3.6 Các chức hệ quản trị CSDL  Các chức hệ quản trị CSDL Lưu trữ, truy xuất cập nhật liệu   DBMS chứa siêu liệu (metadata), ứng dụng không cần quan tâm đến dạng thức liệu DBMS quản lý truy vấn cập nhật liệu, ứng dụng khơng cần xử lý việc truy xuất liệu Ngôn ngữ định nghĩa liệu (DDL - Data Definition Language) Ngôn ngữ thao tác liệu (DML - Data Manipulation Language) Quản lý giao tác (transaction management) Điều khiển tương tranh (concurrency control) Chép lưu(backup) phục hồi liệu(rescovery) Bảo mật liệu(security)  Ngôn ngữ điều khiển liệu (DCL - Data Control Language) Hỗ trợ truyền thông liệu Duy trì tính tồn vẹn / qn liệu Cung cấp tiện ích Nội dung kiến trúc DBMS  Các yêu cầu DBMS Khả đáp ứng cao Độ tin cậy cao Lưu lượng cao Thời gian phản hồi thấp Nội dung kiến trúc DBMS  Phân loại DBMS: Dựa mơ hình liệu dùng: Truyền thống: Quan hệ, mạng, phân cấp Đang thịnh hành: hướng đối tượng, Quan hệ Đối tượng Các phân loại khác: Người sử dụng đơn(single-user), đa người dùng(multi user) Tập trung phân tán Chi phí phần mềm DBMS …… Nội dung kiến trúc DBMS  Các yêu cầu DBMS Chu kỳ sống lâu An toàn Xác thực (authentication), chứng thực (authorization), mã hóa (encryption) Nội dung kiến trúc DBMS  Các thành phần DBMS: Ngôn ngữ định nghĩa liệu: Tạo cấu trúc bảng SinhVien CREATE TABLE SinhVien (MaSV NUMBER(7,0) NOT NULL, HoTen VARCHAR(25) NOT NULL, DiaChi VARCHAR(30), NoiSinh VARCHAR(20), CONSTRAINT PK_SinhVien PRIMARY KEY (MaSV)); Ngôn ngữ thao tác liệu: Liệt kê mã, tên địa sinh viên thuộc thành phố ‘HCM’ SELECT MaSV, HoTen, DiaChi FROM SinhVien WHERE NoiSinh = ‘HCM’; Ngôn ngữ điều khiển liệu: Cho phép người sử dụng A B phép xem thêm liệu vào bảng SinhVien GRANT SELECT, INSERT ON SinhVien TO A,B; Quá trình thiết kế Cơ sở liệu Chương Mơ hình thực thể kết hợp (Mơ hình liên kết thực thể) Thu thập phân tích yêu cầu Thiết kế mức quan niệm Ánh xạ thiết kế logic/mơ hình liệu Thiết kế mức vật lý Thế giới thực Thu thập phân tích yêu cầu Các yêu cầu chức Phân tích chức Các đặc tả giao tác cấp cao Mơ hình thực thể kết hợp Các yêu cầu CSDL Phân tích quan niệm Lược đồ quan niệm (trong mơ hình liệu cấp cao) Thiết kế logic Phụ thuộc DBMS cụ thể Lược đồ quan niệm (trong mơ hình liệu DBMS cụ thể) Thiết kế ctr ứng dụng • Hiện mơ hình liệu quan hệ thường dùng hệ quản trị CSDL, nhiên mơ hình khơng trực quan • Để thuận lợi việc thiết kế mơ hình liệu quan hệ, người ta thường dùng mơ hình trung gian mơ hình thực thể kết hợp Thiết kế mức vật lý Thực giao tác Lược đồ Các chương trình ứng dụng Mơ hình thực thể kết hợp • Hiện mơ hình thực kết hợp coi mơ hình chuẩn để thiết kế hệ thống thơng tin • Mô hình ER gọi mô hình ý niệm liệu (Conceptual Data Model) hay đơn giản mô hình liệu (data model) Vấn đề thiết kế CSDL? • Các thực thể mối kết hợp cần quan tâm? • Thơng tin thực thể mối quan hệ thực thể cần lưu trữ CSDL? • Các ràng buộc cần bảo đảm thực thể mối kết hợp? 2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị 2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị Thực Thực thể(entity, instance, entity instance, entity occurence): Là đối tượng hay vật giới thực tồn cụ thể hay tồn quan niệm mà phân biệt với đối tượng khác Ví dụ : Thực thể SINHVIEN Nguyễn Thị Lan Anh, LOP TCTH36D,… thể(entity, instance, entity instance, entity occurence):  Thực thể nên     Thực thể không nên    2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị Thuộc tính (Attributes): người sử dụng hệ CSDL kết xuất hệ CSDL (ví dụ báo cáo) Đặc điểm thực thể tính phân biệt (distinctness): phân biệt thực thể với thực thể khác 2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị Các Là đặc tính riêng dùng để mơ tả thực thể Ví dụ : Thực thể SINHVIEN có thuộc tính MASV,TENSV, DCHI, PHAI, NGAYSINH Ví dụ : Thực thể sinh viên cụ thể có thuộc tính: • MASV=‘06028071’ • TENSV=‘Nguyen Thi Lan Anh’, • DCHI=‘580 CMT8, TP HCM’ • PHAI=‘Nu’ • NGAYSINH=’05/06/1991’, đối tượng có nhiều thể CSDL đối tượng có nhiều thuộc tính đối tượng cần mơ hình hóa  loại thuộc tính: Thuộc tính đơn thuộc tính phức hợp Thuộc tính đơn (simple attribute) thuộc tính khơng bị phân rã thành nhiều thuộc tính khác Thuộc tính phức hợp (composite attribute) thuộc tính bị phân rã thành nhiều thuộc tính khác 2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị 2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị Các Các loại thuộc tính:  Thuộc tính đơn loại thuộc tính: Thuộc tính đơn trị thuộc tính đa trị Thuộc tính đơn trị (single-valued attribute) thuộc tính chứa giá trị Thuộc tính đa trị (multivalued attribute) thuộc tính chứa nhiều giá trị khác thuộc miền trị, biểu diễn hình bầu dục nét đơi Thuộc tính phức hợp 2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị 2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị Các Các  loại thuộc tính: Thuộc tính chứa thuộc tính dẫn xuất Thuộc tính chứa (stored attribute) thuộc tính mà giá trị khơng suy dẫn từ thuộc tính khác Thuộc tính dẫn xuất (derived attribute) thuộc tính mà giá trị suy dẫn từ thuộc tính khác, biểu diễn hình bầu dục nét đứt  loại thuộc tính: Giá trị tập thuộc tính Cịn gọi “Miền giá trị” thuộc tính Tập giá trị gán cho thuộc tính loại thực thể riêng Không thể giản đồ ER 2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị 2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị Các Loại thực theå (entity type, regular entity type,entity class, generic entity) : loại thuộc tính: Thuộc tính đơn trị Là tập hợp thực thể thuộc loại (thường tương ứng với bảng) Thuộc tính dẫn xuất Thuộc tính đa trị Thuộc tính chứa 2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị Tập Loại Thực thể thường biểu diễn hình chữ nhật, tên thực thể đặt hình chữ nhật Tên loại thực thể (trong hệ thống) phải khác mơ hình thực thể kết hợp 2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị thực thể (entity set): ENTITY TYPE: NHANVIEN (Ten, Tuoi, Luong) CONGTY (Ten, Diachi, Giamdoc) Là tập hợp thực thể thuộc loại thời điểm N1: Tran A, 24, 2Tr ENTITY SET: (Extension) N2: Nguyen B, 34, 3Tr N3: Le C, 56, 4Tr … C1: ABC, HCMC, Nguyen B C2: MNO, HNC, Tran A … 2.2 Khóa loại Thực thể  Khóa / thuộc tính xác định key / identifier Khóa thuộc tính tổ hợp thuộc tính dùng để xác định thể kiểu thực thể   key attribute / prime attribute / identifier attribute  Thuộc tính khóa gạch  Thuộc tính khơng khóa (non-key attribute) thuộc tính khơng khóa  Khóa đơn khóa phức hợp Khóa đơn (simple key) khóa có thuộc tính Khóa phức hợp (composite key) khóa có nhiều thuộc tính Thuộc tính khóa thuộc tính khơng khóa Thuộc tính khóa thuộc tính khóa  Khóa dự tuyển candidate key Khóa dự tuyển khóa kiểu thực thể Một kiểu thực thể có khóa dự tuyển Thuộc tính khơng khóa cịn gọi thuộc tính mơ tả (descriptor) 2.2 Khóa loại Thực thể  2.2 Khóa loại Thực thể 2.2 Khóa loại Thực thể Khóa primary key Khóa khóa tiêu biểu khóa dự tuyển kiểu thực thể primary key Khóa dùng để liên kết thực thể Khóa đơn Thuộc tính khơng khóa Khóa phức hợp 2.3 Mối kết hợp loại mối kết hợp Mối kết hợp (relationship): liên hệ với hai hay nhiều thực thể khác mang ý nghĩa Tập mối kết hợp (relationship set): mối kết hợp có loại kết hợp Loại mối kết hợp (relationship type): thực thể nhóm lại hay phân loại thành loại mối kết hợp 2.3 Mối kết hợp loại mối kết hợp Loại mối kết hợp tập mối kết hợp có tên Có nhiều loại mối kết hợp có loại thực thể Ví dụ: QUANLY PHANCONG mối kết hợp khác NHANVIEN PHONGBAN 10 •Ngôn ngữ truy vấn chia thành ba loại: –Data definition query –Dynaset query (data retrieval query) –Action query (data modification query) •Data definition query •Tạo lược đồ quan hệ rSV: •Create Table rSV (MASV Text (10) CONSTRAINT khoaChinh PRIMARY KEY,HOTEN Text (30), NU YesNo, NGAYSINH Date, MALOP Text (10), TINH Text (50), HOCBONG Double) MASV HOTEN NU NGAYSINH MALOP TINH HOCBONG •Tạo lược đồ quan hệ rKQ: •Create Table rKQ (MASV text (10),MAMH Text (10), DIEMTHI Double,CONSTRAINT khoaChinh PRIMARY KEY (MASV,MAMH) ) MASV MAMH DIEMTHI Dynaset query (data retrieval query) Use the following tables and data The primary keys are underlined All of the fields are strings, except STATUS, WEIGHT, and QUANTITY, which are Integers, and Shipment Date, which is Date The table names are Shipper, Parts, Shipment, respectively PARTS COLOR •Thêm cột DTHOAI vào lược đồ quan hệ rSV: •Alter Table rSV Add Column DTHOAI Text (20) •Sửa kiểu kiểu liệu cột: •Alter Table rSV Alter Column DTHOAI double •Xóa cột lược đồ có: •Alter Table rSv Drop Column DTHOAI •Xóa ràng buộc khóa chính: •Alter Table rSv Drop Constraint khoaChinh •Thêm ràng buộc khóa chính: •Alter Table rSv Add Constraint khoaChinh Primary Key (MASV) •Thêm ràng buộc miền giá trị: •ALTER TABLE rSV WITH NOCHECK ADD CONSTRAINT mgthb CHECK (hocBong 10)); PNUM PNAME COLOR WEIGHT Green P1 Nut Red 12 Blue PNUM PNAME COLOR WEIGHT P2 Bolt Green 17 Red P1 Nut Red 12 S1 P1 9/23/2001 300 P3 Screw Blue 17 Blue P2 Bolt Green 17 S1 P2 3/4/2000 200 P4 Screw Red 14 Red P3 Screw Blue 17 S1 P6 8/30/1999 100 P5 Cam Blue 12 P4 Screw Red 14 S2 P1 4/12/1999 300 P6 Cog Red 19 P5 Cam Blue 12 S2 P2 5/23/2000 400 P6 Cog Red 19 S3 P2 7/8/2001 200 S4 P2 9/21/2000 200 S4 P4 10/1/2001 300 SELECT DISTINCT color FROM parts WHERE color = 'Blue' OR weight > 12; How many records does the following SQL example return? SELECT color FROM parts WHERE color = 'Blue' OR weight > 12; Select Distinct RED 300 Blue RED 100 COLOR RED 300 RED 300 RED 300 RED 100 SHIPMENT Shipment Date Quantity S1 P1 9/23/2001 300 S1 P2 3/4/2000 200 P1 S1 P6 8/30/1999 100 S2 P1 4/12/1999 300 PNUM PNAME COLOR W Nut Red 12 P2 Bolt Green 17 P3 Screw Blue 17 S2 P2 5/23/2000 400 P4 Screw Red 14 S3 P2 7/8/2001 200 P5 Cam Blue 12 S4 P2 9/21/2000 200 P6 Cog Red 19 S4 P4 10/1/2001 300 WHERE (((parts.COLOR)='red') AND ((parts.WEIGHT)>10)) FROM parts INNER JOIN Shipment ON parts.PNUM = Shipment.PNUM SNUM PNUM Shipment Date Quantity PNUM PNAME COLOR WEIGHT S1 P1 9/23/2001 300 P1 Nut Red 12 S1 P2 3/4/2000 200 P2 Bolt Green 17 S1 P6 8/30/1999 100 P6 Cog Red 19 S2 P1 4/12/1999 300 P1 Nut Red 12 S2 P2 5/23/2000 400 P2 Bolt Green 17 S3 P2 7/8/2001 200 P2 Bolt Green 17 S4 P2 9/21/2000 200 P2 Bolt Green 17 S4 P4 10/1/2001 300 P4 Screw Red 14 1 REGIONID NAME BORDERS FIFE LOTHIAN QUANTITY STATION REGION PARTS PNUM Quantity QUANTITY Green Red SNUM SNUM PNUM Shipment Date The result of the SQL COLOR COLOR 1: color=‘Blue’ 2: weight > 12 SHIPMENT PARTS STATIONID RAINFALL 10 2 11 SUNSHINE REGION 55 23 17 6 11 41 The following database contains weather measurements for a number of stations around the UK Each station is in a region, each station records a value for rainfall in cm and sunshine in hours region(regionid, name) station(stationid, rainfall, sunshine, region) Select the SQL statement which will list the station identity and rainfall for any station with more rainfall than station a) SELECT stationid, rainfall FROM station WHERE rainfall > (SELECT stationid, rainfall FROM station WHERE stationid=6) 33 SELECT Sum(parts.WEIGHT) AS [SUM] FROM (parts INNER JOIN Shipment ON parts.PNUM = Shipment.PNUM) INNER JOIN Shipper ON Shipment.SNUM = Shipper.SNUM GROUP BY Shipper.CITY, parts.COLOR HAVING (((Shipper.CITY)='London') AND ((parts.COLOR)='Red')); d) SELECT stationid, rainfall b) SELECT a.stationid, a.rainfall FROM station FROM station a, station b WHERE stationid=6 WHERE a.rainfall > b.rainfall AND b.stationid = 6; e) SELECT b.stationid, a.rainfall FROM station a, station b WHERE a.rainfall < b.rainfall AND a.stationid = c) SELECT a.stationid, a.rainfall FROM station a, station b WHERE a.rainfall < b.rainfall AND b.stationid = SHIPPER FROM station a, station b STATIONID RAINFALL SUNSHINE REGION STATIONID RAINFALL SUNSHINE REGION SHIPMENT SNUM SNAME STATUS CITY S1 Smith 20 London S1 P1 9/23/2001 300 S2 Jones 10 Paris S1 P2 3/4/2000 200 S3 Blake 30 Paris S1 P6 8/30/1999 100 SNUM PNUM Shipment Date Quantity 10 1 10 S4 Clark 20 London S2 P1 4/12/1999 300 S5 Adams 30 Athens 10 11 S2 P2 5/23/2000 400 11 11 S3 P2 7/8/2001 200 x 55 11 PNUM PNAME COLOR WEIGHT S4 P2 9/21/2000 200 x 23 11 P1 Nut Red 12 S4 P4 10/1/2001 300 x 17 6 11 P2 Bolt Green 17 11 11 P3 Screw Blue 17 41 11 P4 Screw Red 14 10 P5 Cam Blue 12 P6 Cog Red 19 x PARTS Which of the following statements will return the names of the products with Product ID 10, 11, or 42? a) SELECT ProductName FROM products WHERE ProductID IN (10,11,42) b) SELECT ProductName FROM products WHERE ProductID IN 10 OR 11 OR 42 c) SELECT ProductName FROM products WHERE ProductID = (10,11,42) d) SELECT ProductName FROM products WHERE ProductID IS (10,11,42) e) None of the above Truy vấn lồng (nested query, sub query) Là câu lệnh truy vấn mà thành phần WHERE hay HAVING có chứa thêm câu lệnh Select khác Câu lệnh select khác gọi subquery Ta lồng câu Select vào phần Where hay Having theo cú pháp sau: bieuthuc toanTuSoSanh [ANY | ALL | SOME] (cauLenhSQL) ANY, SOME bất kỳ, ALL tất Các mẫu tin query thỏa mãn toán tử so sánh với bất kỳ/ tất mẫu tin subquery bieuThuc [NOT] IN (cauLenhSQL) Các mẫu tin query có giá trị với giá trị subquery [NOT] EXISTS (cauLenhSQL) Các mẫu tin query thỏa mãn subquery không/có mẫu tin FROM (parts INNER JOIN Shipment ON parts.PNUM = Shipment.PNUM) INNER JOIN Shipper ON Shipm ent.SNUM = Shipper.SNUM SNUM PNUM S1 S1 S1 S2 S2 S3 S4 S4 P1 P2 P6 P1 P2 P2 P2 P4 Quantity PNUM PNAME COLOR WEIGHT SNUM SNAME STATUS CITY 300 200 100 300 400 200 200 300 P1 P2 P6 P1 P2 P2 P2 P4 Nut Bolt Cog Nut Bolt Bolt Bolt Screw Red Green Red Red Green Green Green Red 12 17 19 12 17 17 17 14 S1 S1 S1 S2 S2 S3 S4 S4 Smith Smith Smith Jones Jones Blake Clark Clark 20 20 20 10 10 30 20 20 London London London Paris Paris Paris London London GROUP BY Shipper.CITY, parts.COLOR SNUM PNUM S1 S4 S1 S1 S4 S2 S3 S2 P2 P2 P1 P6 P4 P2 P2 P1 Quantity PNUM PNAME COLOR WEIGHT SNUM SNAME STATUS CITY 200 200 300 100 300 400 200 300 P2 P2 P1 P6 P4 P2 P2 P1 Bolt Bolt Nut Cog Screw Bolt Bolt Nut Green Green Red Red Red Green Green Red 17 17 12 19 14 17 17 12 S1 S4 S1 S1 S4 S2 S3 S2 Smith Clark Smith Smith Clark Jones Blake Jones 20 20 20 20 20 10 30 10 London London London London London Paris Paris Paris HAVING (((Shipper.CITY)='London') AND ((parts.COLOR)='Red')); COLOR WEIGHT CITY Green Red Green Red 34 45 34 12 London London Paris Paris WEIGHT 45 Which line in the following SQL statement contains an error? SELECT title FROM books a) Line WHERE pubid EXISTS IN b) Line (SELECT pubid c) Line FROM books d) Line 6 WHERE retail > 41.95); Which of the following is not a Group function? a) AVG b) SQRT c) SUM d) MAX e) MIN student(student_id, student_name, address, tutor_id) subject_id enrolment(student_id, subject_id, mark) subject(subject_id, subject_name, department) CP1500 CP1600 SUBJECT FROM subject, enrolment subject_name department Database IT Visual Basic IT SELECT subject_name, Count(*) FROM subject, enrolment WHERE subject.subject_id = enrolment.subject_id AND mark > 40 AND subject_id IN (SELECT subject_id FROM enrolment GROUP BY subject_id HAVING Count(*) > ) GROUP BY subject_name SELECT subject_name, Count(*) FROM subject INNER JOIN enrolment ON subject.subject_id = enrolment.subject_id WHERE mark > 40 AND subject_id IN (SELECT subject_id FROM enrolment GROUP BY subject_id HAVING Count(*) > ) GROUP BY subject_name ENROLMENT STUDENT student_id student_name address Aggregate function, group function SUM () MAX() MIN() AVG() COUNT() subject_id mark subject_id subject_name department 9901 CP1500 45 CP1500 Database IT 9902 CP1500 60 CP1500 Database IT 9901 CP1600 50 CP1500 Database IT 9902 CP1600 30 CP1500 Database IT 9903 CP1600 20 CP1500 Database IT 9904 CP1600 45 CP1500 Database IT 9905 CP1600 40 CP1500 Database IT 9901 CP1500 45 CP1600 Visual Basic IT 9902 CP1500 60 CP1600 Visual Basic IT 9901 CP1600 50 CP1600 Visual Basic IT 9902 CP1600 30 CP1600 Visual Basic IT 9903 CP1600 20 CP1600 Visual Basic IT 9904 CP1600 45 CP1600 Visual Basic IT 9905 CP1600 40 CP1600 Visual Basic IT mark student_id student_id subject_id tutor_id 9901 CP1500 45 9901 Jenny 45 Hay street T01 9902 CP1500 60 9902 Mun chan Blacktown Road T01 9901 CP1600 50 9903 Alexander 281 Pilbara Way T02 9902 CP1600 30 9904 Sarah 25 Hay street T03 9903 CP1600 20 9905 Helga 30 Hay street T03 9904 CP1600 45 9905 CP1600 40 2 3 1: subject.subject_id = enrolment.subject_id 2: mark > 40 3: subject_id IN (SELECT subject_id FROM enrolment GROUP BY subject_id HAVING Count(*) > ) 34 SELECT subject_id FROM enrolment GROUP BY subject_id HAVING Count(*) > subject_id ENROLMENT student_id subject_id 9901 CP1500 45 9902 CP1500 60 9901 mark CP1600 Count(*) CP1500 CP1600 SELECT student_id FROM student WHERE student_id NOT IN (SELECT student_id FROM enrolment WHERE subject_id = 'CP1500') STUDENT The result 50 9902 CP1600 30 subject_id 9903 CP1600 20 CP1600 9904 CP1600 45 9905 CP1600 40 student_id subject_id 9901 CP1600 9904 CP1600 mark student_id student_name subject_id subject_name department 50 CP1600 Visual Basic IT 45 CP1600 Visual Basic IT ENROLMENT tutor_id Count(*) Visual Basic subject_id mark 45 Hay T01 x 9901 CP1500 45 9902 Mun chan T01 x 9902 CP1500 60 x 9903 Alexander 281 T02 9901 CP1600 50 x 9904 Sarah 25 T03 9902 CP1600 30 x 9905 Helga 30 T03 9903 CP1600 20 9904 CP1600 45 9905 CP1600 40 9903 subject_name student_id Jenny student_id 9905 Truy vấn cập nhật liệu (action query, data modification query) Update table Set field1 = biểuThức1, field2 = biểuThức2 [Where điềuKiện] Delete From table [Where điềuKiện] In a nested query, which query is evaluated first? a) The innerrmost query b) the outermost query c) both are evaluated simultaneously d) whichever query is selected to execute first by the user student_id Truy vấn chọn Select [Distinct|Top n[%]] field1 [As alias1][,field2 [As alias2][, ]] From table1 [Inner Join table2 On table1.field1  table2.field2] [Where dieuKien] [Order By field1[Asc|Desc][,field2[Asc|Desc]][, ]]]; Customer (cid, cname, city, discnt), Products (pid, pname, city, quantity, price), Agents (aid, aname, city, percent) and Oders (ordno, month, cid, aid, pid, qty, dollars) Ví dụ Raise the price of each product in the PRODUCTS table by 10% for all PRODUCTS that were ordered from customer ‘c01’ a) Update products set price = price * 1.1 where orders.cid = ‘c01’; b) Update products p, Orders o set Products.price = Products.price * 1.1 where orders.cid = ‘c01’; c) Update products set price = 10 * price where pid in (select pid from orders where cid = ‘c01’); d) update products set price = 1.1 * price where pid in (select pid from orders where cid = ‘c01’) ; Delete all customers that did not order product p01 a) Delete ALL Customers where cid not in (selest cid from orders where pid = ‘p01’); b) Delete from Customers where products.pid ‘p01’; c) Delete from Customers where cid in (select cid from orders where pid ‘p01’); d) delete from Customers where cid not in (select cid from orders where pid = ‘p01’); month address 9901 9904 SELECT subject_name, Count(*) GROUP BY subject_name ordno SELECT student_id FROM enrolment WHERE NOT EXISTS (SELECT student_id FROM enrolment WHERE subject_id = 'CP1500') cid aid pid H0001 C01 A01 P01 qty 10 dollars 100 H0002 C01 A02 P02 20 150 H0003 C02 A01 P01 15 200 H004 C03 A01 P02 20 200 SELECT MASV,HOTEN,HOCBONG FROM Sv; SELECT MASV,HOTEN,HOCBONG FROM Sv WHERE NU And MALOP='CÑTH2B' And HOCBONG>0; SELECT MASV,HOTEN,HOCBONG FROM Sv ORDER BY HOCBONG DESC; SELECT MASV,HOTEN,TENLOP FROM Sv Inner Join Lop On Sv.MALOP = Kh.LOP; điểm >= MAHV MAMH 5.0 99001 DB 5.0 DS 2.0 99003 NW 8.0 NW 8.0 MAHV MAMH 99001 DB 99002 99003 DIEM DIEM INNER JOIN MAHV MAMH 99001 DB 99002 NW 99002 DS MAHV MAMH DIEM MAMH TENMH 5.0 DB CƠ SỞ DỮ LIỆU 2.0 DS CẤU TRÚC DỮ LIỆU 8.0 NW MẠNG MÁY TÍNH DIEM TENMH 99001 DB 5.0 CƠ SỞ DỮ LIỆU 99002 NW 2.0 MẠNG MÁY TÍNH 99002 DS 8.0 CẤU TRÚC DỮ LIỆU Truy vấn nhóm liệu Select [Distinct|Top n[%]] field1 [As alias1][,field2 [As alias2][, ]] From table1 [Inner Join table2 On table1.field1  table2.field2] [Where dieuKienLocMauTinNguon] [Group By fieldGroupBy[,fieldGroupBy[, ]] [Having dieuKienLocMauTinTongHop] [Order By field1 [Asc|Desc][,field2[Asc|Desc]][, ]]] Group functions (aggregate functions) COUNT,MIN,MAX,SUM, AVG Ví dụ Lập danh sách sinh viên có đăng ký ba môn học SELECT Kq.MASV,HOTEN,NU,NGAYSINH,COUNT(MAMH) As SLMH FROM Sv Inner Join Kq On Sv.MASV = Kq.MASV GROUP BY Kq.MASV,HOTEN,NU,NGAYSINH HAVING COUNT(MAMH)>=3; Đếm số lượng sinh viên nữ khoa SELECT Kh.MAKHOA,TENKHOA,COUNT(Kh.MAKHOA) AS SOLUONG FROM (Sv Inner Join Lop On Sv.MALOP = LOP.MALOP) INNER JOIN Kh On Lop.MAKHOA=Kh.MAKHOA WHERE NU GROUP BY Kh.MAKHOA,TENKHOA; 35 Truy vấn lồng (nested query, subquery) toanTuSoSanh [ANY | ALL | SOME] (cauLenhSQL) bieuThuc [NOT] IN (cauLenhSQL) [NOT] EXISTS (cauLenhSQL) Ví dụ: Lập danh sách sinh viên có học bổng cao SELECT * FROM Sv WHERE HOCBONG>=ALL(SELECT HOCBONG FROM SV) Lập danh sách sinh viên có điểm thi môn CSDL cao SELECT SV.MASV,HOTEN,NU,NGAYSINH,DIEMTHI FROM sv Inner Join kq On Sv.MASV = Kq.MASV WHERE MAMH='CSDL' AND DIEMTHI >= ALL (SELECT DIEMTHI FROM KQ WHERE MAMH='CSDL') Truy vấn cập nhật liệu (action query, data modification query) Update table Set field1 = biểuThức1, field2 = biểuThức2 Where điềuKiện Delete From table Where điềuKiện Truy vấn hợp Select .Union Select Ví dụ: Lệnh sau gấp đôi danh sách sinh viên SELECT MASV,HOTEN,NGAYSINH UNION SELECT MASV,HOTEN,NGAYSINH Bài taäp 6: Giaovien(MAGV,HOTEN,DTGV,MAKHOA) Khoa(MAKHOA,TENKHOA,DTKHOA) Lop(MALOP,TENLOP,SISO,MAKHOA) Monhoc(MAMH,TENMH) Phonghoc(SOPHONG,CHUCNANG) Lichbaogiang(MALICH,NGAYDAY,MAGV) Dongbaogiang(MALICH,TUTIET,DENTIET,BAIDAY,GHICHU,LYTHUYET, MAMH,MALOP,SOPHONG) Bài tập quản lý thi Q1:HD(MAHDT,TENHDT, TENCT, DCHDT,DTHDT) Q2:PT(SOPT,DCPT,MAHDT) Q3:TS(SOBD, TENTS,NGSINH,PHAI,CCNGHE, MATR,SOPT) Q4:MT(MAMT,TENMT,BUOI,NGAY) Q5:GV(MAGV,TENGV,CHUYENMON,CHUCDANH,MAHDT,MATR) Q6:TR(MATR,TENTR,DCTR,LHDT) Q7:KQ(SOBD,MAMT,DIEMTHI) Bài tập Nhanvien(MANV,HOTEN,NGAYSINH,PHAI,DIACHI,MAPB) Phongban(MAPB,TENPB) Cong(MACT,MANV,SLNGAYCONG) Congtrinh(MACT,TENCT,DIADIEM,NGAYCAPGP,NGAYKHOICONG,NGAYHT) Bài tập 3: Monhoc(MSMH ,TENMH,SOTINCHI ,TINHCHAT) Sinhvien(MSSV,HOTEN,NGAYSINH,LOP) Diem(MSSV,MSMH,DIEMTHI) Bài tập 4: Docgia(MADG,HOTEN,NGAYSINH,DIACHI,NGHENGHIEP) Phieumuon(SOPM,NGAYMUON,MADG) Chitietmuon(SOPM,MADAUSACH,NGAYTRA) Dausach(MADAUSACH,BAN,TAP,MASH) Sach(MASH,TENSACH,TACGIA,NHAXB,NAMXB) Bài taäp 5: Khach(MAKH,HOTEN,DIACHI,DIENTHOAI) Hoadon(SOHD,NGAYLAPHD,NGAYBAN,MAKH) DongHoaDon(SOHD,MAHANG,SLBAN) Hang(MAHANG,TENHANG,DONGIA,DVT,MANHOM) Nhom(MANHOM,TENNHOM) MASV HOTEN 99001 99002 99003 99004 99005 99006 99007 99008 99009 99010 99011 99012 99013 99014 99015 99016 99017 99018 99019 99020 99021 99022 99023 NU TRAN DAN NGUYEN H DA PHAM ANH NGUYEN NGOC LE THANH NGUYEN HONG VU THI TRUONG KIM TON THAT HA VAN BUI VAN LE HUU VU THANH TRAN QUANG PHAM VAN HUYNH THANH TRAN MINH PHAN VAN PHAM THI NGUYEN THI PHAM TAN TRAN PHUOC LE THI THANH RÀNG BUỘC TOÀN VẸN Ràng buộc toàn vẹn gì? – mối liên hệ thuộc tính, – điều kiện mà quan hệ phải thỏa – thực tế ta hiểu ràng buộc toàn vẹn qui tắc quản lý Các yếu tố ràng buộc toàn vẹn: – điều kiện  t1,t2  r t1.MASV  t2.MASV cuối  – bối cảnh quan hệ mà điều kiện ràng buộc có hiệu lực – tầm ảnh hưởng (Tên RBTV) r1 Thêm(T) Sửa(S) Xóa(X) + - - NGAYSINH THU TRUE THAO TRUE HUY FALSE THUAN FALSE TRUNG FALSE VAN FALSE LOAN TRUE QUANGFALSE QUYEN FALSE LONG FALSE ANH FALSE CHI FALSE CONG FALSE CUONGFALSE HAI FALSE HOANGFALSE LAM FALSE SANG FALSE HUYEN FALSE NGAN TRUE QUANGFALSE QUYEN FALSE VAN TRUE 15-03-1977 25-04-1986 16-08-1977 24-12-1980 20-11-1978 19-09-1979 15-03-1975 15-05-1975 26-06-1976 14-04-1973 22-12-1972 28-08-1977 29-03-1979 30-05-1981 30-06-1976 29-07-1982 21-08-1977 19-05-1979 16-06-1982 11-11-1981 01-01-1980 12-12-1979 11-11-1980 MALOP TINH CÑTH2B CÑTH2B CÑTH2B CÑTH2B CÑAV1 CÑAV1 CÑAV1 CÑTH2B CÑTH2B CÑAV1 CÑAV1 CÑÑT2 CÑTH2B CÑÑT2 CÑÑT2 CÑÑT2 CÑTH2B CÑDL1 CÑDL1 CÑTH2B CÑDL1 CÑTH2B CÑDL1 TIEN GIANG TPHCM BAC LIEU CA MAU CA MAU SOC TRANG CA MAU HA NOI VUNG TAU BAC LIEU AN GIANG CAN THO KIEN GIANG DONG THAP CA MAU TPHCM TRA VINH DONG THAP CAN THO CA MAU CA MAU BAC LIEU TPHCM HOCBONG 120000 120000 120000 60000 60000 60000 120000 80000 120000 120000 120000 60000 120000 The type of integrity constraint – entity integrity constraint – derived integrity constraint – referential integrity constraint – domain integrity constraint – data type integrity constraint SOLUONG DONGIA THANHTIEN 50 250 derived integrity MASV MAMH DIEM MAMH TENMH 99001 DB 5.0 DB CƠ SỞ DỮ LIỆU 99002 DS hai DS CẤU TRÚC DỮ LIỆU 99003 NW 8.0 NW MẠNG MÁY TÍNH 99002 SQL 11.0 r2 rn Entity integrity Referential integrity Domain integrity Data type integrity 36 Các loại ràng buộc: – RBTV liên R1:t1,t2  rKhach t1 MAKH  t2 MAKH Cuối  – RBTV phụ thuộc tồn R2: rDatHang[MAKH]  rKhach[MAKH] – RBTV miền giá trị R3: t  rHoaDon t.TRIGIAHD > Cuối  – RBTV liên thuộc tính R4: t  rHoaDon t.NGAYLAP B; B->C; C->A} =(Q1,Q2) Q1(A,B) Q2(B,C) Phép tách bảo toàn phụ thuộc hàm Q(TENNCC,DIACHI,QUAN) F={TENNCC->DIACHI; DIACHI->QUAN; QUAN->TENNCC} Q1(TENNCC,DIACHI) Q2(DIACHI,QUAN) r F1={TENNCC->DIACHI, DIACHI->TENNCC} r1=r.Q1+ Phép tách kết nối bảo toàn thông tin (decomposition with lossless join) Cho lược đồ quan hệ Q(TENNCC,DIACHI,SANPHAM,DONGIA) có quan hệ r F+ AB F2={DIACHI->QUAN, QUAN->DIACHI} r2=r.Q2+ TENNCC DIACHI DIACHI QUAN Hùng 12 Nguyễn Kiệm 12 Nguyễn Kiệm Gò vấp Hồng 12 Nguyễn Huệ 12 Nguyễn Huệ Quận Hạnh 11 Nguyễn Văn Trỗi 11 Nguyễn Văn Trỗi Phú Nhuận ABBC ACABC AAB AABC BBC BA BABC CBC CAC ABABC BCA AC BAB CA CABC ACB BCAB AAC BC CB ABABC ACAB BCAC ABC BAC CAB ABC ACBC BCABC Q1(F)= F1+ ={AB,AAB,BA,BAB}{AB,BA}=F1 Q2(F)= F2+ ={BC,BBC,CB,CBC}{BC,CB}=F2 Để tính F1+,F1 ta không cần tính F+ mà tính bao đóng tất tập Q1+ suy F1+,F1 Tương tự cho F2+,F2 43 Ý nghóa phân rã bảo toàn phụ thuộc hàm Q(C,S,Z) F={CS->Z; Z->C} =(Q1,Q2) Q1(S,Z) Q2(C,Z) Q1(F)={PTHHN} Q1 (S Z) s1 z1 Q2(F)={ZC, ZZC} Q2 (C Z) c1 z1 F={CSZ,ZC} Q (C S Z) c1 s1 Ví dụ: cho Q(S,D,I,M) F={SID;SDM} phân rã Q thành lược đồ đạt chuẩn BC bảo toàn thông tin Giải: Xi TNXi (TNXi)+ Siêu khóa Khóa TN={SI} TG={D} SI SDIM SI SI  D SID SDIM SID z1 s1 z2 c1 z2 c1 s1 z2 Thuật toán kiểm tra phép phân rã bảo toàn phụ thuộc hàm: Vào: Q(A,B,C),F={AB,BC,CA},Q1(A,B) Q2(B,C) Hiển nhiên G = Q1(F)Q2(F)  {AB,BC} Ta xác định CA có thuộc (Q1(F)  Q2(F))+.Bằng cách tính bao đóng CG+ Bước 1: Z’=C Bước 2: gán Z’= Z’((Z’Q1+)+ Q1+): Z’=C(AB)=C Bước có Z’ không thay đổi, ta sang lược đồ Q2 tính tiếp Z’ Bước 3: gán Z’= Z’((Z’Q2+)+ Q2+): Z’=C(ABCBC)=BC Z’thay đổi  tính tiếp Z’bắt đầu từ lược đồ Q1 Bước 4: gán Z’= Z’((Z’Q1+)+ Q1+): Z’=BC(ABCAB)=ABC Z’=Q+  Z’ không thay đổi CG+=ABC  CA(Q1(F)Q2(F))+ phép phân rã bảo toàn pth S+=S D+ =D M+ =M SD+ =SDM SM+ =SM S+=S D+ =D I+ =I SD+ =SDM DM+ =DM SDM+ =SDM SI+ =SDIM DI+ =DI SDI+ =SDIM F1+=Q1(F)={SDM,SDSM,SDDM,SDSDM}{SDM}= F1 F2+=Q2(F)={SID,SISD,SIDI,SISDI}{SID}= F2 Tính chất: Theo thuật toán trên, phân rã Q thành Q1 Q2 tập khóa SQ Q luôn với tập khóa SQ2 Q2 Chứng minh Thật vậy, K khóa Q  K siêu khóa Q2 Giả sử có K’ K K’ khóa Q2  K’(Q+-Y) mà XY  K’Q+ Điều mâu thuẫn với K khóa Q  K khóa Q2 Ngược lại Consider the following functional dependencies: a,b  c,d e  c b  e,f Given the same functional dependencies as shown above, which option shows the relations normalised to third normal form of: R(a, b, c, d, e, f) Bổ đề: Nếu Q không dạng chuẩn BC có thuộc tính A,B thuộc Q+ cho (Q+-AB)A Chứng minh: Q không dạng chuẩn BC  có XA cho X không siêu khóa  có thuộc tính B  XA  (Q+-AB)  X  (Q+-AB)A Nhận xét: Một lược đồ Q dạng chuẩn BC có AB cho (Q+-AB)A Một lược đồ Q AB cho (Q+-AB)A Q dạng chuẩn BC Ví dụ: Cho quan hệ Q(B,O,S,Q,I,D) tập phụ thuộc haøm F F = { S  D, I  B IS  Q B  O} Hãy phân rã Q thành lược đồ đạt dạng chuẩn BC bảo toàn thông tin Giải ***Đặt Z’=Q+=BOSQID Thực thuật toán chi tiết Y’= BOSQID Chọn BO:(SQID)+  B Giảm O ta Y’=BSQID Chọn BS:(QID)+  B Giảm S ta Y’=BQID Chọn BQ:(ID)+  B Giảm Q ta Y’=BID Chọn BD: I+  B Giảm D ta Y’= BI  Q1=(BI) F1={IB} ***Giảm B ta Z’=OSQID Đặt Y’=OSQID Chọn OQ: (SID)+  Q; Giảm O ta Y’= SQID chọn QD: (SI)+  D giảm Q ta Y’= SID chọn ID: S+  D; a R(a,b,c,d,e,f) R(e,c) R(b,e,f) b R(a,b,c,d) R(c,e) R(e,f,b) c R(a,b,c,d) R(c,e) R(b,e,f) d R(a,b,d) R(e,c) R(b,e,f) e R(a,b,c,d,e,f) giảm I ta Y’= SD  Q2=(SD) F2={SD} *** Giảm D ta Z’= OSQI Đặt Y’=OSQI chọn OQ: (SI)+  Q giảm O ta Y’= SQI Q3=(SQI) F3={SIQ} *** Giảm Q ta Z’= OSI Đặt Y’=OSI Chọn OS: I+=IBO  O giảm S ta Y’= OI  Q4=(OI) F4={IO} *** Giảm O ta Z’= SI Q5=(SI)và F5={PTHHN} Loại Q5 Q5+  Q3+ Vậy kết phân rã là: 1:Q1(BI) F1={IB} 2:Q2(SD) F2={SD} 3:Q3(SQI) F3={SIQ} 4:Q4(OI) F4={IO} 44 Tính chất –Không có thuật toán phân rã lược đồ Q thành lược đồ dạng chuẩn BC vừa bảo toàn thông tin vừa bảo toàn phụ thuộc hàm –Vẫn có lược đồ Q phân rã thành lược đồ dạng chuẩn BC vừa bảo toàn thông tin vưa bảo toàn phụ thuộc hàm Ví dụ: cho lược đồ Q(CSZ) có F={CSZ,ZC} Q phân rã thành lược đồ dạng chuẩn BC vừa bảo toàn thông tin vừa bảo toàn phụ thuộc hàm Thật vậy: –Tất khóa Q là: Xi TNXi (TNXi)+  Z C S S SZ SC ZC SZC sieâu khoùa khoùa SZC SZC SZ SC SZ SC SZC SZC –Vậy Q đạt dạng chuẩn không dạng chuẩn BC có ZC có vế trái không siêu khóa Nhưng ta phân rã Q thành lược đồ có thuộc tính phụ thuộc CSZ không suy từ phụ thuộc hình chiếu •Định lý: Thuật toán tạo phân rã dạng chuẩn vừa bảo toàn thông tin vừa bảo toàn phụ thuộc hàm •Chứng minh: •Ta chứng minh lược đồ dạng chuẩn Thật vậy: •Theo thuật toán lược đồ Qi có dạng YB với YB  Y siêu khóa Giả sử Qi có phụ thuộc hàm XA có vế trái không siêu khóa vế phải không thuộc tính khóa Ta phân làm hai trường hợp: •Trường hợp 1: A=B  XB  X  Y  YB phụ thuộc có vế trái dư thừa, điều trái với YB phụ thuộc hàm phủ tối thiểu •Trường hợp 2: AB  AY (1) Gọi K khóa Qi  K  Y (2) A thuộc tính không khóa nên A  K (3).(1)(2)(3) K  Y (4).K khóa nên KB  YB phụ thuộc hàm có vế trái dư thừa Điều trái với điều phụ thuộc hàm YB phụ thuộc hàm phủ tối thiểu Ftt •Ta chứng minh phép phân rã bảo toàn phụ thuộc hàm Thật vậy: •Hiển nhiên Ftt  G = Qi(Ftt) Ftt+  G+ (1) •Hơn Ftt+  G = Qi(Ftt) Ftt++  G+  Ftt+  G+ (2) •(1)và (2)  Ftt+ = G+ •Ta chứng minh phép phân rã bảo toàn thông tin Thật vậy: •Lập bảng kiểm tra bảo toàn thông tin Ta đồng giá trị theo phụ thuộc hàm phát thuật toán tìm bao đóng (có vế trái tập Qi+ chứa khóa) Do Qi+ chứa khóa nên hàng lược đồ Qi chứa toàn a điều phải chứng minh Which charater function would you use a specified portion of a character string? a) Length c) substr b) Concat d) initcap A modification anomaly occurs when: a) Relations are normalized b) none of them c) functional dependencies must be modified d) Undesirable consequences result from changing data in a table e) All of them The consequence of the reflexivity rule is that: a) A set of attributes determines an attribute from that set b) A superkey determines all other attribute c) Every attribute determines itself d) A candidate key determines all other attributes Indexing is a feature applied to a database: a) All of the others b) To place permit restriction on access c) To assist in good user respone times d) To improve access times and to enforce some integrity conrols •Thuật Toán phân rã Q, F thành dạng chuẩn 3, bảo toàn thông tin, bảo toàn phụ thuộc hàm – Tìm phủ tối thiểu Ftt F – Nếu có thuộc tính Q không nằm phụ thuộc Ftt - dù vế phải hay vế trái F chúng tạo thành lược đồ – Nếu có phụ thuộc hàm Ftt mà liên quan đến tất thuộc tính Q kết phân rã Q ( Q phân rã) – Cứ phụ thuộc hàm X  A  Ftt XA lược đồ cần tìm – Nếu có lược đồ chứa khóa K Q kết thúc thuật toán Ngược lại tạo lược đồ K •Ví dụ: cho lược đồ Q(CTHRSG),F={CT,HRC,THR,CSG,HSR}.Hãy phân rã Q thành lược đồ đạt dạng chuẩn vừa bảo toàn thông tin vừa bảo toàn phụ thuộc hàm •Gỉai: •F=Ftt={CT,HRC,THR,CSG,HSR} phủ tối thiểu •Áp dụng thuật toán Q phân rã thành lược đồ •Q1(CT) •Q2(HRC) •Q3(THR) •Q4(CSG) •Q5(HSR) •Khóa Q HSQ1,Q2,Q3,Q4,Q5 kết phân rã Q1 Q2 C T a1 a1 a2 Q3 Q4 Q5 a2 H R S G C T H R a1 a1 a2 a2 a3 a4 a3 a4 a3 a4 a3 a4 Q1 Q2 a3 a4 Q3 a1 a2 Q4 a1 a2 Q5 a1 a2 a1 a5 a3 a4 a5 a6 S G a5 a6 a5 a6 Tìm bao đóng X={HSR}  K; F={CT,HRC,THR,CSG,HSR} X0=HSR X1=HSRC HRC đồng giá trị theo phụ thuộc hàm X2=HSRCT CT đồng giá trị theo phụ thuộc hàm X3=HSRCTG CSG đồng giá trị theo phụ thuộc hàm Do X+=Q+ nên có hàng chứa toàn giá trị a Relation J is a projection of relation G Which of the following statements must be true in all cases where relation J is different from relation G? a) The arity of J is less than the arity of G b) The cardinality of J is less than the cardinality of G c) None of the others d) The arity of J is greater than the arlity of G e) The cardinality of J is greater than the cardinality of G The resulting relation from an equijoin operation which is none emty, will a) Have the same number of attribute as a natural join between the same operand relations b) None of them c) Always have one or more pairs of attributes in each tuple that have identical values d) have fewer attributes than the sum of the attributes of the two eperand relations The following is an example of a composide attribute a) list of skills b) Product code c) Address d) Employee e) Total price Which of the following best describes the source of the function dependencies a) The mathematical formalization of constraints from the mini-world b) The cardinalities of foreign key constraints c) The intuition of the schema designer d) The value of a mathematical function on the keys of a relation 45 A third normal form is violation can occur for which the following tables a) A table which a single field primary and two non – key attributes and A table with a composite primary key and two non – key attribute b) A table with a composite primary key and two non – key attributes c) A table with a composite primary key and one non – key attributes d) A table with a single field primary key and two non – key attributes e) All of the others The following is an example of a multivalued attribute c) List of skill a) Address d) Total price b) Product code e) Employee Database technologry offers a) Multi user access (in advanced DBMS’s) d) All of the others c) Imporved progrmmer and user productivity e) High integrity control over data b) Data security facilities A functional dependency violates 3NF if it: a) Has a key on its left–hand–side, a prime attrite on its right–hand-side b) Has a part of a candidate key on its left–hand side c) Has a super key on its left-hand-side,but there is no prime attribute on the right-hand-side d) Has a prime attribute on its right–hand side e) Does not have a candidate key on it’s left–hand side f) Neither has a super key on its left–hand side, nor a prime attribute on the right–hand side If we use the algorithm for producing a lossless decomposition into 3rd normal form with the relation schema of X(K, A, C) and the set of FDS as (KAC, CK) then the algorithm would produce as output a) A relation schema with (K, A, C) b) A relation schema with (X, A, C) c) A relation schema with (K, A, X) d) A relation schema with (C, K) and a relation schema with (C) e) A relation schema with (C, K) and a relation schema with (K, A) f) A relation schema with (K) and a relation schema with (A) and a relation schema with (C) Which of the following is not a relations ? a) Y (D, E, F) b) W (A) c) X (B, C) d) Z (J, K(L, M) ) If ML JQ is one of the functional dependencies, which hold for relation schema F (M,L,J,Q) then a) No two tuples in F can have the same values for M and L b) ML is a key for F c) All of above d) ML is a primary key for F Which of the following is correct a) All FDs are are–to–are relationships b) All FDs are many– to–are relationships c) None of them are true d) All FDs are many–to–many relationships The following table and the functional dependencies exhibits whay type of dependency table (Q,O,I) QI QO OI a) Transitive dependence b) Q and O c) Full dependence d) partial dependence e) None of the others A prime attribute is an attribute that a) a member of a foreign b) is single – valued c) is a member of the primary key d) is a member of all keys e) is minimal f) is a member of any candidate key Going from first to second normal form removes a) Transitive dependencies b) Functional dependencies c) Full functional dependencies d) Data redundancy This operator can only operate on relations with the same schema a) cartesian product b) All of them c) Intersection d) Equi-join Database-Processing programs a) Call the DBMS to access the stored data b) Require at least one dedicated workstation c) Can not be used by more than one person d) Present problems with storage space Which of the following best describes why we study relational algebra a) It allows for more efficient operator than SQL b) It provides a form mathematical foundation c) It is more concise than drawing query trees d) It allows the expression of operations not possible in conventional programming language The term ‘row’ (or record) used in relational database a) Define the entity–relationship model used b) Refers to the primary key nomination c) Refers to the method of matrix organisation of data d) Refers to the denormalised data Normalization is a process associated with a) Avoiding update anomalies b) Naming of primary and foreign keys in a database c) Database concurrency procedures d) Ensuring ease of access to the database Given two relation R (A,B,C) and S (A, B, C) which of the following is always true a) R – S yields the same result as S – R b) R INTERSECT S yields the same result as S INTERSECT R c) PROJECT(R) yields the same result as PROJECT(S) d) none of the above Which of the following is (are) a capability (capabilities) that should be provided by a database management system ? a) all of the others b) restrict unauthorized access c) represent relationships among data d) cantrol redundancy Which of the follwing is not correct? a) SQL may be used for data definition as well as data retrieval b) SQL SELECT operation may be used for data retrieval as well as for data modification c) SQL may be used to defining base tables as well as view tables d) SQL data definitions may be used for defining primary keys as well as foreign keys e) SQL may be invoked either interactively or from an application program A table is in 3NF if  Each functional dependency has a superkey on its left hand side  Each functional dependency either has a superkey on its left hand side, or has a prime attribute on right hand side  There are no partial functional dependencies  There is more than one key  There are no transitive functional dependencies A table in third normal form: a) Cannot have any repeating groups b) Has no non-keys fields depending on only a part of the composite primary key c) Has no transitive dependencies d) All of the others 46 If a relation schema has attributes and of those attributes make up the only key, the how many different superkeys does the relation have a) b) c) d) Table TT (YMBKGFD) and a set of functional dependencies YM  FD If a relation R is decomposed into {R1,R2, ,Rn} and G  YMB the decoposition is lossless then BF  KD a) none of them BKD  F b) The relations R1,R2, ,Rn are each in 3rd normal YMD  G form Table TT is c) The relations R1,R2, ,Rn can have more tuples than • 2NF b) 3NF c) 1NF the original relation Table A Table B d) The natural join of R1,R2, ,Rn will have the same Col1 Col2 Col3 Col4 number of tuples as the original I I G W W S C Consider the tables A and B shown above and select the result of A LEFT OUTER JOIN col1=col3 B Which of the attributes are extraneous in the functional dependency UIZE, considering the relational schema R(UIZEOD) and FDs {IO;ZD 47 ... 1 5-0 3-1 977 2 5-0 4-1 986 1 6-0 8-1 977 2 4-1 2-1 980 2 0-1 1-1 978 1 9-0 9-1 979 1 5-0 3-1 975 1 5-0 5-1 975 2 6-0 6-1 976 1 4-0 4-1 973 2 2-1 2-1 972 2 8-0 8-1 977 2 9-0 3-1 979 3 0-0 5-1 981 3 0-0 6-1 976 2 9-0 7-1 982 2 1-0 8-1 977 1 9-0 5-1 979... table Cơ sở liệu quan hệ  Cơ sở liệu quan hệ (relational database) bao gồm bảng (quan hệ) biểu diễn thực thể khóa / khóa ngoại biểu diễn mối liên kết 19 Cơ sở liệu quan hệ Cơ sở liệu quan hệ Primary... TENMH 5.0 DB CƠ SỞ DỮ LIỆU 2.0 DS CẤU TRÚC DỮ LIỆU 8.0 NW MẠNG MÁY TÍNH DIEM TENMH 99001 DB 5.0 CƠ SỞ DỮ LIỆU 99002 NW 2.0 MẠNG MÁY TÍNH 99002 DS 8.0 CẤU TRÚC DỮ LIỆU Truy vấn nhóm liệu Select

Ngày đăng: 28/02/2022, 10:02

Xem thêm:

TỪ KHÓA LIÊN QUAN