Luận văn: Bài tập Cơ sở dữ liệu quan hệ, HAY

  1. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 0 TRƯỜNG ĐẠI HỌC SÀI GÒN ———– o0o ———- TÀI LIỆU THAM KHẢO BÀI TẬP CƠ SỞ DỮ LIỆU QUAN HỆ ( Mã số đề tài : TL2012-06 ) Phan Tấn Quốc Huỳnh Minh Trí TP Hồ Chí Minh, năm 2013
  2. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 1 Lời trình làng Cơ sở dữ liệu là học phần cơ sở ngành so với sinh viên thuộc những chuyên ngành Công nghệ tin tức, Toán ứng dụng, Hệ thống thông tin quản trị, … là nội dung quan trọng trong khối kỹ năng và kiến thức ở những kỳ thi tuyển sinh liên thông ĐH, thi tốt nghiệp ĐH hệ vừa làm vừa học, thi cao học những chuyên ngành công nghệ thông tin. Tài liệu tìm hiểu thêm Bài tập Cơ sở dữ liệu quan hệ này được biên soạn để ship hàng cho học phần cơ sở dữ liệu ( phần bài tập ) ở những hệ ĐH và cao đẳng ; đồng thời cũng là tài liệu tương hỗ thiết yếu cho sinh viên trong những kỳ thi nói trên. Tài liệu được chia làm ba phần : Phần thứ nhất trình diễn tóm tắt triết lý, những ví dụ minh họa và một số ít đề bài tập tinh lọc tương quan đến những chủ đề cốt lõi nhất của cơ sở dữ liệu quan hệ như : quy mô thực thể tích hợp, quy mô quan hệ, ngôn từ đại số quan hệ, ngôn từ SQL, ràng buộc toàn vẹn, phép tính quan hệ, và một số ít chủ đề nâng cao như nhờ vào hàm và dạng chuẩn, chuẩn hóa cơ sở dữ liệu. Phần thứ hai trình diễn 1 số ít đề thi tổng hợp và phần thứ ba là hướng dẫn giải cho 1 số ít bài tập, đề thi. Mặc dù nhóm tác giả đã có nhiều nỗ lực để hoàn thành xong tài liệu tìm hiểu thêm này trong thời hạn được cho phép, tuy nhiên cũng không hề tránh khỏi những thiếu sót. Chúng tôi trân trọng sự góp phần của những đồng nghiệp và của những bạn đọc để chúng tôi hoàn thành xong tài liệu này trong thời hạn tới. Chúng tôi xin gởi lời cảm ơn đến những đồng nghiệp khoa Công nghệ thông tin trường Đại Học Hồ Chí Minh đã cùng chúng tôi chia sẽ nội dung những bài giảng cơ sở dữ liệu trong nhiều năm qua và kỳ vọng rằng tài liệu tìm hiểu thêm này xuất bản sẽ giúp cho việc giảng dạy và học tập phần bài tập học phần cơ sở dữ liệu được thuận tiện hơn. Thành phố Hồ Chí Minh, ngày 31 tháng 01 năm 2013 CÁC TÁC GIẢ
  3. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 2 Phần 1 Tóm tắt kim chỉ nan – Ví dụ-Bài tập
  4. Bài tập Cơ

    sở dữ liệu quan hệ – Trường Đại học Sài Gòn 3
    chương 1
    Tổng quan về cơ sở dữ liệu
    Chương này giới thiệu một số khái niệm căn bản nhất của cơ sở dữ liệu quan hệ và đồng thời
    trình bày một số ứng dụng minh họa cho các vấn đề lý thuyết sẽ được đề cập đến trong những
    chương tiếp theo.
    1.1. Cơ sở dữ liệu – hệ quản trị cơ sở dữ liệu
     Cơ sở dữ liệu (CSDL) là một hệ thống các thông tin có cấu trúc được lưu
    trữ trên các thiết bị trữ tin [3],…
    Ví dụ: Bảng lương, hóa đơn, bảng điểm là những hình ảnh về CSDL.
     Hệ quản trị cơ sở dữ liệu (HQT CSDL) là những phần mềm tạo ra CSDL
    và khai thác CSDL [3].
    Ví dụ: MS Access, SQL Server, MySQL, Oracle,… là những HQT CSDL
    phổ biến hiện nay.
    1.2. Mô hình dữ liệu
    Sau đây là một số mô hình dữ liệu thường được sử dụng trong quá trình
    phát triển một hệ thống thông tin [8][9].
     Mô hình mức quan niệm
    Mô hình mức quan niệm đưa ra các khái niệm gần gũi với người dùng.
    Một trong những mô hình mức quan niệm thường được sử dụng là mô hình thực
    thể kết hợp.
     Mô hình mức logic
    Mô hình mức logic đưa ra các khái niệm không quá khác biệt với dữ liệu
    thực sự được tổ chức trên máy tính; tuy nhiên mô hình này không đề cập đến một
    HQT CSDL cụ thể.

    Bạn đang đọc: Luận văn: Bài tập Cơ sở dữ liệu quan hệ, HAY

  5. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 4 Một trong những quy mô mức logic thường được sử dụng là quy mô dữ liệu quan hệ. Các HQT CSDL mạnh lúc bấy giờ như Microsoft Access, Microsoft SQL, Oracle, … đều được setup dựa trên kim chỉ nan của quy mô dữ liệu quan hệ.  Mô hình mức vật lý Mô hình mức vật lý đưa ra những khái niệm diễn đạt cụ thể về phương pháp dữ liệu được tàng trữ trên máy tính với một HQT CSDL đơn cử. 1.3. Ví dụ Mục này trình diễn hai ứng dụng minh họa cho những yếu tố kim chỉ nan sẽ được đề cập đến ở những chương tiếp theo. Ví dụ 1.1 Ứng dụng quản trị kỳ thi tốt nghiệp trung học phổ thông Ứng dụng quản trị kỳ thi tốt nghiệp trung học phổ thông ( trung học phổ thông ) của một Sở Giáo dục đào tạo Đào tạo được nghiên cứu và phân tích sơ bộ như sau : Mỗi thí sinh có một số ít báo danh ( SOBD ) duy nhất, mỗi số báo danh xác lập họ và tên của thí sinh ( HỌTÊN ), ngày sinh ( NGÀYSINH ), nơi sinh ( NƠISINH ), năm dự thi tốt nghiệp ( NĂMDỰTHI ). Mỗi thí sinh thuộc về một đơn vị chức năng có tính năng dạy học bậc trung học phổ thông nào đó quản trị ; ví dụ điển hình như những trường trung học phổ thông, những TT giáo dục liên tục, những trường trung học phổ thông nằm trong những trường Đại học, … ( những đơn vị chức năng này gọi chung là TRƯỜNG ). Giả thiết thêm rằng mỗi thí sinh dự thi đều phải từ 18 tuổi trở lên. Mỗi trường có một mã trường ( MÃTRƯƠNG ) duy nhất, mỗi mã trường xác lập tên trường ( TÊNTRƯƠNG ). Mỗi môn thi có một mã môn thi ( MÃMT ) duy nhất, mỗi mã môn thi xác lập tên môn thi ( TÊNMT ). Mỗi thí sinh ứng với mỗi môn thi sẽ có một tác dụng điểm thi ( ĐIÊMTHI ) duy nhất, điểm thi từ 0 đến 10 và có một số lẻ đến 0.5. Kỳ thi tốt nghiệp trung học phổ thông có đúng 6 môn, nếu thí sinh vắng thi môn nào thì bị điểm 0 ở môn thi đó và cần có thông tin ghi chú ( GHICHU ) là ‘ Vắng thi ’ ( nhằm mục đích phân biệt với một bài thi bị điểm 0 ) .
  6. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 5 Điểm xét tốt nghiệp ( ĐXTN ) = Tổng số điểm những bài thi / Tổng số môn thi. Một thí sinh được xem là đậu tốt nghiệp nếu không có bài thi nào bị điểm 0 và có ĐXTN từ 5.0 trở lên. Xếp loại tốt nghiệp : Thí sinh tốt nghiệp được xếp thành ba loại là Giỏi, Khá, Trung bình theo những tiêu chuẩn sau : Loại giỏi : ĐXTN từ 8.0 điểm trở lên và không có bài thi nào dưới 7.0. Loại khá : ĐXTN từ 6.5 điểm trở lên và không có bài thi nào dưới 6.0. Loại trung bình : những trường hợp còn lại. Ứng dụng này cần xử lý 1 số ít yếu tố tương quan đến hiệu quả điểm thi tương thích với trong thực tiễn, ví dụ điển hình : 1. Cho biết điểm thi những môn của thí sinh có số báo danh là ’ 080191000001 ’. 2. Cho biết những thí sinh có điểm tổng thể những môn thi đều  8 trong kỳ thi năm 2010. 3. Cho biết những thí sinh dự thi không đủ 6 môn trong năm 2010. 4. Cho biết những môn thi có điểm trung bình của tổng thể những thí sinh dự thi < 5.0 trong kỳ thi năm 2010. 5. Cho biết những thí sinh được xếp loại tốt nghiệp ‘ Loại Giỏi ’ trong kỳ thi năm 2010. 6. Cho biết những thí sinh có tổng số điểm những môn thi là cao nhất trong kỳ thi năm 2010. 7. Cho biết những trường có tổng thể thí sinh dự thi đều đậu tốt nghiệp trong kỳ thi năm 2010. 8. Cho biết số lượng thí sinh rớt tốt nghiệp của từng trường trong kỳ thi năm 2010. Ví dụ 1.2 Ứng dụng quản trị kỳ thi tuyển sinh vào lớp 10 Ứng dụng quản trị kỳ thi tuyển sinh vào lớp 10 trường trung học phổ thông năng khiếu sở trường như sau :
  7. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 6 Mỗi thí sinh ( THISINH ) có 1 số ít báo danh duy nhất ( SOBD ), mỗi SOBD xác lập họ tên ( HOTEN ) và lớp chuyên ( LOPCHUYEN ) mà thí sinh đó ĐK thi. Mỗi môn ( MONTHI ) thi có một tên gọi duy nhất ( MON ). MON có giá trị là VAN ( Ngữ văn ), TOAN ( Toán học ), ANH ( Tiếng Anh ), LY ( Vật lý ), HOA ( Hóa học ), SINH ( Sinh vật ), SU ( Lịch sử ), DIA ( địa lý ), PHAP ( Tiếng Pháp ), TRUNG ( Tiếng Trung ), … Các môn chuyên có thông số 2, những môn chung có thông số 1. Mỗi môn thi có thêm phần ghi chú ( GHICHU ) để lý giải thêm về môn thi đó ( GHICHU hoàn toàn có thể bằng khoảng chừng trắng ). Miền giá trị của LOPCHUYEN trong miêu tả về thí sinh phải thuộc về miền giá trị của MON trong diễn đạt về MONTHI. Mỗi thí sinh ( SOBD ) ứng với một môn thi ( MON ) có một điểm thi ( DIEM ) duy nhất. Mỗi thí sinh có ba môn thi ; trong đó hai môn chung ( môn bắt buộc ) là Toán học và Ngữ Văn, môn thứ ba là môn chuyên. Riêng những thí sinh dự thi vào lớp chuyên văn thi môn thứ ba là môn văn nhưng ở trình độ chuyên ( có giá trị MON là VANCH ), tựa như như vậy so với những thí sinh dự thi vào lớp chuyên toán ( có giá trị MON là TOANCH ). Miền giá trị của MON trong quan hệ KETQUA thuộc về miền giá trị MON trong quan hệ MONTHI. Điểm thi là số thực lấy lẻ đến 0.5. Thí sinh vắng thi môn nào thì bị điểm 0 ở môn thi đó. Thí sinh được xem là trúng tuyển nếu thỏa đồng thời 2 điều kiện kèm theo sau đây :  Điều kiện 1 : Điểm của môn chuyên phải lớn hơn hoặc bằng 5 và điểm của những môn chung phải lớn hơn hoặc bằng 2.  Điều kiện 2 : Tổng điểm thi của cả ba môn thi phải lớn hoặc bằng mức điểm tuyển, trong đó mức điểm tuyển được lấy tùy theo từng môn chuyên. Ví dụ mức điểm tuyển của lớp chuyên toán là 30 ( đã nhân thông số 2 so với môn chuyên ), mức điểm tuyển của lớp chuyên văn là 24, … Ứng dụng cần xử lý một số ít yếu tố tương quan đến hiệu quả điểm thi tương thích với trong thực tiễn, ví dụ điển hình : 1. Lập list thí sinh có điểm của cả ba môn thi đều lớn hơn hoặc bằng 8 .
  8. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 7 2. Lập list thí sinh cùng với điểm môn chuyên của thí sinh đó. 3. Lập list những môn chuyên có thí sinh dự thi môn chuyên đó đạt điểm 10. 4. Lập list thí sinh không thỏa điều kiện kèm theo 1 theo diễn đạt trên. 5. Lập list thí sinh đạt điểm môn chuyên cao nhất. 6. Lập list thí sinh có tổng điểm thi của ba môn là cao nhất. 7. Lập list thí sinh thỏa điều kiện kèm theo 1 và mức điểm tuyển theo điều kiện kèm theo 2 là 20. 8. Đếm số lượng thí sinh của mỗi lớp chuyên có điểm môn chuyên lớn hơn hoặc bằng 5 và điểm những môn chung đều lớn hơn hoặc bằng 2 .
  9. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 8 chương 2 Mô hình thực thể phối hợp Mục đích của quy mô dữ liệu mức ý niệm là chỉ ra những quy tắc về ngữ nghĩa và mối phối hợp giữa những dữ liệu. Chương này trình diễn một loại quy mô dữ liệu mức ý niệm được sử dụng thoáng đãng đó là quy mô thực thể tích hợp. 2.1. Thực thể và tập thực thể Thực thể ( entity ) là một đối tượng người dùng sống sót và phân biệt được của quốc tế thực, hoàn toàn có thể là đơn cử hoặc trừu tượng [ 1 ] [ 9 ]. Tập thực thể ( entity set ) là một tập hợp những thực thể có đặc thù giống nhau. Tập thực thể được ký hiệu bằng hình chữ nhật, bên trong hình chữ nhật ghi tên của tập thực thể ; tên của tập thực thể hoàn toàn có thể là danh từ hoặc là cụm danh từ [ 1 ] [ 9 ]. Xét trong ngữ cảnh của ví dụ 1.1 ; thí sinh Nguyễn Văn Thành, môn thi toán học, trường trung học phổ thông Nguyễn Thị Minh Khai là những thực thể đơn cử, … Trong ứng dụng này có những tập thực thể THÍ SINH, MÔN THI, TRƯỜNG. 2.2. Thuộc tính Thuộc tính là những đặc trưng diễn đạt cho tập thực thể hay mối phối hợp. Thuộc tính được ký hiệu bằng hình elip, bên trong có ghi tên thuộc tính ; tên của thuộc tính hoàn toàn có thể là danh từ hoặc cụm danh từ [ 1 ] [ 9 ]. Thuộc tính cũng hoàn toàn có thể được ký hiệu bằng cách liệt kê ( xem hình vẽ sau ). Hình sau trình diễn cho tập thực thể THÍ SINH với những thuộc tính HỌ TÊN, NGÀY SINH, NƠI SINH tương ứng. THÍ SINH MÔN THI TRƯỜNG THÍ SINH HỌ TÊN NGÀY SINH NƠI SINH THÍ SINH HỌ TÊN NGÀY SINH NƠI SINH hoặc
  10. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 9 Phân loại thuộc tính  Thuộc tính đơn trị là loại thuộc tính chỉ nhận một giá trị đơn so với một thực thể đơn cử.  Thuộc tính đa trị là thuộc tính nhận nhiều giá trị so với một thực thể đơn cử.  Thuộc tính tích hợp là thuộc tính gồm nhiều thành phần nhỏ hơn.  Thuộc tính suy diễn là thuộc tính mà giá trị của nó được thống kê giám sát từ giá trị của những thuộc tính khác. 2.3. Mối phối hợp và tập mối tích hợp Mối phối hợp là sự link giữa hai hay nhiều thực thể. Tập hợp những mối phối hợp tựa như nhau được gọi là tập mối tích hợp. Tập mối phối hợp hoàn toàn có thể được ký hiệu bằng hình thoi ( cũng hoàn toàn có thể sử dụng hình elip nếu như đã không sử dụng hình elip để màn biểu diễn thuộc tính ), bên trong hình thoi có ghi tên của tập mối tích hợp ; tên của tập mối tích hợp hoàn toàn có thể là động từ hoặc cụm danh từ hoặc cụm liên từ [ 1 ] [ 9 ]. Tập mối tích hợp cũng hoàn toàn có thể dùng để trình diễn sự liên hệ giữa những tập thực thể và tập những mối tích hợp khác. Tập mối phối hợp thường gặp ba loại sau : tập mối tích hợp một – một ( 1-1 ), tập mối phối hợp một – nhiều ( 1 – n ) hoặc nhiều – một và tập mối phối hợp nhiều – nhiều ( n – n ) [ 1 ].  Tập mối phối hợp một – một Một thực thể trong tập thực thể A phối hợp với một thực thể trong tập thực thể B và ngược lại một thực thể trong B tích hợp với một thực thể trong A.  Tập mối phối hợp một – nhiều ( hoặc nhiều – một ) Một thực thể trong tập thực thể A tích hợp với 1 số ít thực thể trong tập thực thể B. Tuy nhiên, một thực thể trong B chỉ tích hợp được với một thực thể trong A.  Tập mối phối hợp nhiều – nhiều
  11. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 10 Một thực thể trong tập thực thể A tích hợp với một số ít thực thể trong tập thực thể B và một thực thể trong B phối hợp với một số ít thực thể trong A.  Bản số của mối phối hợp Bản số được xác lập bởi một cặp số ( min – max ) để pháp luật ràng buộc mỗi thực thể e của tập thực thể E tham gia vào tập mối tích hợp R, giá trị min bộc lộ số lượng tối thiểu những thực thể thuộc tập thực thể E tham gia vào tập mối tích hợp R và giá trị max bộc lộ số lượng tối đa những thực thể thuộc tập thực thể E tham gia vào tập mối phối hợp R. Chẳng hạn mối phối hợp giữa THÍ SINH và TRƯỜNG hoàn toàn có thể vẽ như sau :  Thuộc tính trên tập mối phối hợp Tập mối phối hợp cũng hoàn toàn có thể có những thuộc tính. Với tập mối phối hợp có thuộc tính thì cần đặt tên mối tích hợp sao cho có ý nghĩa. Chẳng hạn giữa tập MÔN THI và tập THÍ SINH thì có thuộc tính ĐIỂM THI để ghi nhận điểm thi từng học phần của mỗi thí sinh. 2.4. Khóa của tập thực thể Khóa là một tập những thuộc tính cho ta thông tin vừa đủ để xác lập được duy nhất một thực thể trong một tập thực thể. Khóa cũng giúp xác lập mối tích hợp là duy nhất trong một tập mối tích hợp. Các thuộc tính tham gia vào khóa thì gọi là thuộc tính khóa ; những thuộc tính khóa được ký hiệu bằng dấu gạch chân liền nét phía dưới tên những thuộc tính đó [ 1 ] [ 9 ]. Chẳng hạn ở ví dụ 1.1 thì SOBD là khóa của tập thực thể THÍ SINH, MAMT là khóa của tập thực thể MÔN THI, MATRUONG là khóa của tập thực thể TRƯỜNG. 2.5. Tập thực thể yếu Tập thực thể mà tập thuộc tính của nó không chứa khóa được gọi là tập thực thể yếu ( tập thực thể mà tập thuộc tính của nó có chứa khóa gọi là tập thực ( 0, n ) ( 1,1 ) THÍ SINH TRƯỜNGthuộc
  12. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 11 mạnh / tập thực thể chủ ). Tập thực thể yếu thường có mối phối hợp với một tập thực thể chủ trải qua tập mối phối hợp xác lập. Tập thực thể yếu luôn tham gia toàn phần vào tập mối tích hợp xác lập ; nhờ đó, ta hoàn toàn có thể xác lập một thực thể yếu dựa vào thực thể chủ mà nó có mối quan hệ. Tập thực thể yếu có khóa riêng phần, là tập hợp tối thiểu những thuộc tính của tập thực thể yếu để xác lập duy nhất một thực thể yếu trong những thực thể yếu cùng có mối tích hợp với một thực thể chủ. Tập thực thể yếu thường được ký hiệu bởi bằng hình chữ nhật được vẽ bằng nét đôi [ 1 ]. Sau đây là quy mô thực thể phối hợp cho hai ví dụ đã diễn đạt ở chương 1. 2.6. Ví dụ Ví dụ 2.1 Mô hình thực thể phối hợp ứng với ví dụ 1.1 MÃ TRƯỜNG ( 1, n ) ( 0, n ) MÔN THI ( 0, n ) ( 1,1 ) hiệu quả THI SINH TRƯỜNGthuộc TÊNTRƯỜNG MAMT TÊNMT SOBD HỌTÊN NGÀYSINH NƠISINH NĂMDỰTHI ĐIÊMTHI GHICHU
  13. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 12 Ví dụ 2.2 Mô hình thực thể tích hợp ứng với ví dụ 1.2 HỆSỐ GHICHÚ ( 1, n ) ( 0, n ) MÔN THI Kết quả THI SINH SOBD HỌTÊN LỚPCHUYÊN ĐIÊMTHI MÔN
  14. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 13 BÀI TẬP Dựa vào những nghiên cứu và phân tích sơ bộ dưới đây, hãy lập quy mô thực thể phối hợp cho mỗi ứng dụng. BT2. 1. Ứng dụng quản trị tác dụng kỳ tuyển sinh cao học Mỗi thí sinh có 1 số ít báo danh ( SOBD ) duy nhất, mỗi SOBD xác lập họ và tên của thí sinh ( HOTEN ), ngày sinh ( NGAYSINH ), nơi sinh ( NOISINH ), ngành dự thi ( MANGANH ), năm dự thi ( NAMDUTHI ) ; giả sử một năm chỉ tổ chức triển khai một kỳ thi tuyển sinh cao học. Mỗi ngành dự thi có một mã ngành ( MANGANH ) duy nhất, mỗi mã ngành xác lập tên ngành ( TENNGANH ). Mỗi môn thi có một mã môn thi ( MAMT ) duy nhất, mỗi mã môn thi xác lập tên môn thi ( TENMT ), đặc thù môn thi – nếu là môn ngoại ngữ thì TINHCHAT là 1, ngược lại là 0. Giả sử mỗi thí sinh đều phải dự thi 3 môn : Môn cơ bản, môn cơ sở ngành và môn ngoại ngữ nào đó ; tùy theo ngành thi mà sẽ có list những môn cơ bản, cơ sở ngành và môn ngoại ngữ khác nhau. Có những môn thi sẽ được vận dụng cho nhiều ngành khác nhau, ví dụ điển hình môn cơ bản có mã số là TH01 là môn cơ sở ngành cho cả 3 ngành cao học là Khoa học máy tính, Hệ thống thông tin và Kỹ thuật mạng máy tính. Mỗi thí sinh, ứng với một môn thi sẽ có một điểm thi ( ĐIEMTHI ) duy nhất. Giả sử rằng thí sinh trúng tuyển kỳ thi tuyển sinh cao học nếu thí sinh có điểm ngoại ngữ  5, không vắng thi môn nào và tổng điểm hai môn trình độ còn lại lớn hơn hoặc bằng điểm tuyển của ngành trong năm đó. Nếu thí sinh vắng thi môn nào thì môn đó bị điểm 0 và cần ghi chú thông tin là thi sinh đã ‘ Vắng thi ’ môn đó. Ứng dụng cần xử lý 1 số ít yếu tố tương thích với trong thực tiễn, ví dụ điển hình : 1. Lập list những thí sinh dự thi của từng ngành. 2. Lập bảng điểm của một môn thi của toàn bộ thí sinh, bảng điểm tổng hợp của của những thí sinh theo từng ngành. 3. Lập list những thí sinh trúng tuyển theo từng ngành .
  15. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 14 4. Các thống kê như : Số lượng thí sinh trúng tuyển theo từng ngành, số lượng thí sinh có điểm môn ngoại ngữ  5 của từng ngành, số lượng thí sinh có điểm môn ngoại ngữ  5 và tổng điểm thi hai môn trình độ  ĐIỂM CHUẨN theo từng ngành ( theo mỗi năm ). 5. Danh sách những thí sinh có vắng thi tối thiểu là một môn thi nào đó. 6. Danh sách những thí sinh đạt điểm về ngoại ngữ ở một kỳ thi. BT2. 2. Ứng dụng quản trị phân công giảng dạy của một khoa Mỗi giảng viên có một mã cán bộ ( MAGV ) duy nhất, mỗi mã giảng viên xác lập họ tên ( HOTEN ) ; giảng viên của khoa / đơn vị chức năng này hoàn toàn có thể được phân công giảng dạy cho khoa khác. Mỗi giảng viên trong khoa phải thuộc về một bộ môn nào đó quản trị ( MABM, TENBM ). Thông tin về giảng viên cần ghi rõ đó là giảng viên cơ hữu của khoa hay là giảng viên thỉnh giảng ( từ những trường bạn hoặc từ những đơn vị chức năng bạn trong trường đều được xem là giảng viên thỉnh giảng ). Do một giảng viên thỉnh giảng A hoàn toàn có thể giảng những môn cho những bộ môn khác nhau của khoa, nên giả sử rằng ngoài những bộ môn của khoa sẽ hoàn toàn có thể một bộ môn riêng để tàng trữ những giảng viên thỉnh giảng. Mỗi học phần có một mã học phần ( MAHP ) duy nhất, mỗi mã học phần xác lập tên học phần ( TENHP ), số tín chỉ ( SOTC ), số tiết ( SOTIET ) ; trong đó số tiết là số nguyên được cho từ 30 đến 90. Ví dụ học phần Kỹ thuật lập trình có mã học phần là ‘ 841040 ’ ; số tín chỉ là số nguyên từ 1 đến 6 ( mạng lưới hệ thống chỉ quản trị hệ ĐH ). Các học phần cần chỉ rõ là thuộc về sự quản trị của bộ môn nào. Mỗi khoa có một mã khoa ( MAKHOA ) duy nhất, mỗi mã khoa xác lập tên khoa ( TENKHOA ). Mỗi học phần ở một học kỳ được mở một hoặc nhiều nhóm, những nhóm này được phân công cho những giảng viên giảng dạy. Mỗi năm học có 3 học kỳ được đánh số là 1,2,3. Ví dụ học kỳ 2 năm học ‘ 2012 – 2013 ’ ; học phần Cấu trúc dữ liệu và giải thuật mở 5 nhóm được đánh số thứ tự là nhóm 1,2,3,4,5 ; trong đó giảng
  16. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 15 viên Nguyễn Văn Thành đảm nhiệm 2 nhóm 1 và 4, còn những nhóm 2,3,5 do giảng viên Lê Kim Khánh đảm nhiệm. ( ứng dụng này chỉ số lượng giới hạn trong việc phân công giảng dạy cho giảng viên ; ứng dụng không quản trị thù lao giảng viên cũng như không quản trị về lý lịch của giảng viên. Kế hoạch giảng dạy được phân công cho cả năm học. Hệ thống này chỉ quản trị những lớp chính quy – còn những lớp hình thức Vừa Làm Vừa Học do có cách tổ chức triển khai riêng nên không thuộc khoanh vùng phạm vi của ứng dụng này ). Ứng dụng cần xử lý 1 số ít yếu tố tương thích với trong thực tiễn, ví dụ điển hình : 1. Danh sách những học phần được mở ở học kỳ 3 của một năm học nào đó. 2. Danh sách những giảng viên có phân công giảng dạy ở học kỳ 1 và học kỳ 2 của một năm học nào đó. 3. Danh sách những giảng viên chưa có phân công giảng dạy trong một năm học. 4. Danh sách những học phần được mở theo từng học kỳ của một năm học nào đó ; cho biết số nhóm mở của học phần đó. 5. Kế hoạch những nhóm lớp do những giảng viên thỉnh giảng đảm nhiệm của một năm học nào đó. ( sinh viên hoàn toàn có thể lan rộng ra ra cho huấn luyện và đào tạo nhiều hệ giảng dạy, và chú ý quan tâm thêm có những học phần chung mã số ở những hệ huấn luyện và đào tạo thì mạng lưới hệ thống cần kiểm soát và điều chỉnh như thế nào ? Ngoài ra diễn đạt trên cũng chưa đề cập đến việc một học phần được mở cho những khối lớp nào ĐK ? ). BT2. 3. Ứng dụng quản trị những đề tài khoa học của giảng viên trong một khoa Mỗi giảng viên có một mã giảng viên duy nhất ( MAGV ), mỗi mã giảng viên xác lập những thông tin : họ tên ( HOTEN ), mã bộ môn ( MABM ). Mỗi bộ môn có một mã bộ môn ( MABM ) duy nhất, mỗi mã bộ môn xác lập tên bộ môn ( TENBM ). Mỗi đề tài có một mã đề tài duy nhất ( MADETAI ), mỗi mã đề tài xác lập tên đề tài ( TENDETAI ), kinh phí đầu tư triển khai ( KINHPHI ), năm thực thi ( NAM ). Giả sử mỗi đề tài chỉ được triển khai đúng trong 01 năm ( nếu đề tài làm trong
  17. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 16 nhiều năm thì xem như có nhiều đề tài con, và mỗi đề tài con này sẽ làm không quá 1 năm – ứng dụng này không quản trị việc làm này ) và có một chủ nhiệm đề tài ( CHUNHIEM ). Mỗi giảng viên trong một năm chỉ được làm chủ nhiệm tối đa 2 đề tài. Chủ nhiệm đề tài thuộc bộ môn nào thì xem như đề tài được tính là của bộ môn đó. Mỗi giảng viên hoàn toàn có thể được phân công triển khai nhiều đề tài trong một năm ( giảng viên tham gia không quá 3 đề tài ) và mỗi đề tài hoàn toàn có thể phân công cho nhiều giảng viên cùng triển khai ( không quá 4 giảng viên ). Hệ thống cần xử lý 1 số ít yếu tố tương thích với trong thực tiễn, ví dụ điển hình : 1. Hãy cho biết những giảng viên có thực thi tối thiểu là một đề tài trong một năm nào đó. 2. Hãy cho biết những giảng viên không triển khai đề tài nào trong một năm nào đó. 3. Hãy cho biết những giảng viên cùng tham gia vào một đề tài nào đó. 4. Liệt kê list những giảng viên có tham gia vào 1 số ít đề tài nào đó. 5. Liệt kê những đề tài do một giảng viên nào đó làm chủ nhiệm trong 1 số ít năm nào đó. 6. Liệt kê những đề tài mà mỗi bộ môn thực thi, kèm theo tên chủ nhiệm đề tài. BT2. 4. Ứng dụng quản trị hiệu quả học tập của sinh viên Mỗi sinh viên cần quản trị những thông tin như : họ và tên ( HOTENSV ), ngày sinh ( NGAYSINH ), giới tính ( NU ), nơi sinh ( NƠISINH ), hộ khẩu thường trú ( TINH ). Mỗi sinh viên được cấp một mã số sinh viên duy nhất ( MASV ) để phân biệt với mọi sinh viên khác của trường, mỗi sinh viên chỉ thuộc về một lớp học tập nào đó. Mỗi lớp học có một mã số lớp ( MALOP ) duy nhất để phân biệt với toàn bộ những lớp học khác trong trường : có một tên gọi ( TENLOP ) của lớp, mỗi lớp chỉ thuộc về một khoa và có một cố vấn học tập duy nhất trong suốt cả khóa học ; tất yếu một giảng viên hoàn toàn có thể cố vấn nhiều lớp .
  18. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 17 Mỗi khoa có một tên gọi ( TENKHOA ) và một mã số duy nhất ( MAKHOA ) để phân biệt với những khoa khác. Mỗi học phần có một tên gọi ( TENHP ) đơn cử, ứng với 1 số ít tín chỉ ( SOTC ) và một mã số duy nhất ( MAHP ) để phân biệt với những học phần khác. Mỗi giảng viên cần quản trị những thông tin : họ và tên ( HOTENGV ), cấp học vị ( HOCVI ), thuộc một chuyên ngành ( CHUYENNGANH ) và được gán cho một mã số duy nhất gọi là mã giảng viên ( MAGV ) để phân biệt với những giảng viên khác. Mỗi giảng viên hoàn toàn có thể dạy nhiều môn ở nhiều khoa, nhưng chỉ thuộc về sự quản trị hành chính của một khoa. Thông tin giảng viên nhằm mục đích mục tiêu xác lập thông tin cố vấn học tập cho những lớp ( không quản trị việc phân công giảng viên ). Mỗi sinh viên ứng với một học phần có một tác dụng học tập ( giả sử đây là điểm ở đầu cuối của học phần đó ; nghĩa là nó đã được tổng hợp từ điểm thi và điểm quy trình ). Hệ thống cần xử lý 1 số ít yếu tố tương thích với thực tiễn, ví dụ điển hình : 1. Lập bảng điểm những học phần của một sinh viên khi biết mã số của sinh viên đó. 2. Lập bảng điểm của một học phần nào đó của một lớp nào đó ( ngữ cảnh câu này là lớp theo nghĩa lớp cố định và thắt chặt chứ không phải theo nghĩa nhóm lớp khi ĐK những học phần ). 3. Lập list những thí sinh không đạt ở từng học phần theo từng học kỳ của một năm học nào đó. 4. Lập list những sinh viên có điểm trung bình chung những môn thỏa mãn nhu cầu một điều kiện kèm theo nào đó, … BT2. 5. Ứng dụng quản trị kỳ coi thi tuyển sinh ĐH cao đẳng Một hội đồng coi thi tuyển sinh ĐH có nhiều khu vực thi, mỗi điểm thi có một mã số điểm thi duy nhất ( MAĐIEMTHI ) để phân biệt với những điểm thi khác, những điểm thi được đánh số là 1,2,3, … Mỗi điểm thi xác lập địa chỉ điểm thi ( ĐIACHIĐIEMTHI ). Mỗi thí sinh ĐK dự thi sẽ được cấp một số ít báo danh ( SOBD ) duy nhất để phân biệt với những thí sinh khác. Mỗi số báo danh xác lập những thông tin :
  19. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 18 họ và tên ( HOTEN ), ngày sinh ( NGAYSINH ), mã ngành ĐK dự thi ( MANGANH ) và số hiệu phòng thi ( PHONGTHI ). Mỗi thí sinh được sắp xếp thi tại một phòng thi duy nhất ( PHONGTHI ) và có một mã ngành ĐK dự thi duy nhất ( MANGANH ). Mỗi ngành có một mã ngành ( MANGANH ) duy nhất để phân biệt với những ngành khác, mỗi mã ngành xác lập tên ngành ( TENNGANH ), ví dụ điển hình mã ngành 524802 ứng với tên ngành là Công Nghệ Thông Tin, mã ngành 52140210 ứng với ngành Sư phạm tin học, … Mỗi phòng thi có một số hiệu phòng thi ( PHONGTHI ) duy nhất để phân biệt với những phòng thi khác, trong một phòng thi hoàn toàn có thể có những thí sinh của nhiều ngành thi khác nhau. Mỗi phòng thi phải thuộc về một điểm thi duy nhất ( MAĐIEMTHI ). Mỗi phòng thi có 2 cán bộ coi thi trong phòng ; ngoài những một cán bộ giám sát có trách nhiệm giám sát nhiều phòng thi. Hội đồng thi giả sử có 1 trưởng điểm thi, 1 phó điểm thi, một số ít thư ký và một số ít ship hàng điểm thi. Một cán bộ coi thi thuộc về một đơn vị chức năng nào đó ( nếu là cán bộ từ một đơn vị chức năng ngoài trường thì ghi rõ tên của đơn vị chức năng đó : Ví dụ : Cán bộ coi thi A là giảng viên của trường trung học phổ thông Nguyễn Thị Minh Khai ). Hệ thống cần xử lý một số ít yếu tố tương thích với thực tiễn, ví dụ điển hình : 1. Danh sách những thí sinh trong một phòng thi. 2. Danh sách những thí sinh theo từng ngành thi. 3. Danh sách những thí sinh theo từng khu vực thi. 4. Danh sách phân công coi thi cho từng buổi thi. 5. Một số thống kê tương quan đến số lượng như : Số lượng thí sinh ở mỗi điểm thi ? Mỗi ngành thi ? Số lượng giáo viên được phân công ở mỗi điểm thi ? BT2. 6. Ứng dụng quản trị bảo dưỡng máy tính tại nhà Công ty tin học ABC hoạt động giải trí trong nghành bảo dưỡng tại nhà những sự cố tương quan đến máy tính tại nhà ( giả sử mạng lưới hệ thống chỉ quản trị những người mua lẻ :
  20. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 19 bảo dưỡng lần nào thì tính phí bảo dưỡng xong lần đó ). Hệ thống cần quản trị những đối tượng người dùng sau : Mỗi người mua của công ty có những thông tin : mã người mua ( MAKH ), họ tên người mua ( HOTENKH ), địa chỉ ( ĐIACHI ), số điện thoại thông minh ( ĐIENTHOAI ). Mỗi nhân viên cấp dưới của công ty có những thông tin : mã nhân viên cấp dưới ( MANV ), họ tên ( HOTEN ). Ứng với mỗi lượt người mua mà công ty hoàn toàn có thể phân công cho một hoặc nhiều nhân viên cấp dưới tham gia bảo dưỡng. Mỗi lượt bảo dưỡng sẽ có một phiếu nghiệm thu sát hoạch việc làm riêng, mỗi phiếu nghiệm thu sát hoạch việc làm có một mã số nghiệm thu sát hoạch ( SONT ) duy nhất, mỗi phiếu nghiệm thu sát hoạch việc làm thuộc về một người mua nào đó ( tất yếu mỗi người mua hoàn toàn có thể có nhiều phiếu nghiệm thu sát hoạch việc làm ). Mỗi phiếu nghiệm thu sát hoạch việc làm cũng cần quản trị thêm những thông tin về ngân sách bảo dưỡng ( SOTIEN ), ngày đến bảo dưỡng ( NGAY ), nội dung bảo dưỡng ( NOIDUNG ). Sơ bộ về tiến trình bảo dưỡng máy tính cho người mua : Khi máy tính của người mua có sự cố, người mua sẽ điện thoại cảm ứng báo cho công ty thông tin sơ lược về sự cố ; công ty sẽ phân công nhân viên có kỹ năng và kiến thức tương thích với sự cố đó đến bảo dưỡng ; khi bảo dưỡng xong thì đại diện thay mặt những nhân viên cấp dưới bảo dưỡng sẽ ký một phiếu nghiệm thu sát hoạch việc làm với người mua và đồng thời thu phí bảo dưỡng. Các phiếu nghiệm thu sát hoạch việc làm này cùng với số tiền thu được sẽ được chuyển về cho nhân viên cấp dưới kế toán của công ty để tổng hợp, tàng trữ, báo cáo giải trình. Hệ thống cần xử lý một số ít yếu tố tương thích với trong thực tiễn, ví dụ điển hình : 1. Số lượt bảo dưỡng của từng nhân viên cấp dưới có trong một tháng nào đó của một năm nào đó. 2. Chi tiết về tình hình bảo dưỡng máy tính của những người mua trong một tháng nào đó của một năm nào đó. 3. Tìm list những nhân viên cấp dưới đã tham gia bảo dưỡng cho một người mua nào đó tại một ngày nào đó ( ngày / tháng / năm ). 4. Tổng số tiền bảo dưỡng thu được theo từng ngày trong một tháng nào đó .
  21. Bài tập Cơ

    sở dữ liệu quan hệ – Trường Đại học Sài Gòn 20
    chương 3
    Mô hình dữ liệu quan hệ
    Do tính chất đơn giản và được xây dựng trên nền tảng toán học vững chắc nên mô hình dữ liệu
    quan hệ được sử dụng rộng rãi từ thập niên 1980 cho đến tận ngày nay. Hiện tại, có nhiều hệ
    quản trị cơ sở dữ liệu sử dụng mô hình dữ liệu quan hệ như Access, SQL server, Oracle,…
    3.1. Định nghĩa quan hệ [1][10]
    Cho lược đồ quan hệ (relation schema) R(A1,A2,…,An), trong đó R là tên
    lược đồ quan hệ và A1,A2,…,An là danh sách các thuộc tính của R.
    Một quan hệ (relation) r trên lược đồ quan hệ R ký hiệu là r(R), là một tập
    hợp các bộ ti, r = {t1,t2,…,tm}; mỗi bộ t là một danh sách có thứ tự gồm n giá trị
    trong đó từng giá trị vi thuộc tập hợp các phần tử mà thuộc tính Ai
    có thể nhận hoặc bằng rỗng (NULL). Mỗi quan hệ thực ra là một bảng dữ liệu hai
    chiều được đặt tên, có một số cột và có một số dòng dữ liệu.
    Mỗi dòng trong quan hệ, trừ dòng tiêu đề được gọi là một bộ (tuple). Mỗi
    bộ là một tập hợp các giá trị mô tả về một thực thể hoặc là một mối kết hợp giữa
    các thực thể.
    Mỗi tiêu đề cột của quan hệ được gọi là thuộc tính (attribute). Mỗi thuộc
    tính cho biết ý nghĩa của từng giá trị dữ liệu trong một bộ; đó là đặc điểm của
    một tập thực thể hoặc là một mối kết hợp (thuộc tính của một quan hệ không thể
    là thuộc tính kết hợp hay đa trị). Tập hợp các giá trị mà mỗi thuộc tính Ai có thể
    nhận được gọi là miền giá trị (DOMAIN) của thuộc tính đó, ký hiêu Dom(Ai).
    Mô hình dữ liệu quan hệ thể hiện CSDL bằng một tập hợp các quan hệ.
    Mỗi thuộc tính thuộc về một kiểu dữ liệu nào đó (chuỗi, số nguyên, số thực,
    logic, ngày tháng,…).
    Bậc của một quan hệ là số thuộc tính của lược đồ quan hệ ứng với nó.
    Một quan hệ r còn được gọi là một thể hiện của một lược đồ quan hệ ở tại
    một thời điểm.

  22. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 21 Khi muốn đề cập đến giá trị thứ i của bộ t, tức là giá trị tương ứng với thuộc tính Ai ta dùng ký hiệu là t [ Ai ] hoặc t. Ai Tập những lược đồ quan hệ trong một ứng dụng gọi là một lược đồ CSDL. 3.2. Các khái niệm về khóa [ 1 ] [ 10 ]  Siêu khóa / khóa Cho lược đồ quan hệ R và một quan hệ r ( R ). S là siêu khóa ( super key ) của R nếu với r là quan hệ bất kể trên R, mọi t1, t2 là hai bộ bất kể thuộc r ( R ), t1  t2 thì t1. S  t2. S. Một lược đồ quan hệ hoàn toàn có thể có một hoặc nhiều siêu khóa và có một siêu khóa mặc định chính là tập hợp tổng thể những thuộc tính của lược đồ quan hệ đó. Siêu khóa không chứa một siêu khóa nào khác được gọi là khóa.  Khóa ứng viên ( candidate key ) Một quan hệ hoàn toàn có thể có nhiều khóa, mỗi khóa được gọi là khóa ứng viên.  Khóa chính ( primary key ) Trong trường hợp một lược đồ quan hệ có nhiều khóa ứng viên, thì khóa được chọn để setup gọi là khóa chính ( trong những phần sau, khi nói đến khóa mà không nói đến rõ hơn nữa thì ta hiểu đó là khóa chính ).  Khóa ngoại ( foreign key ) Khóa ngoại cho biết mối quan hệ giữa những bộ dữ liệu trong hai quan hệ. Cho hai lược đồ quan hệ R1 và R2 và hai quan hệ tương ứng r ( R1 ), r ( R2 ). Gọi FK là một tập thuộc tính của R1 và PK là khóa chính của R2. Ta nói FK là khóa ngoại của R1 tham chiếu đến R2 nếu hai điều kiện kèm theo sau được thỏa mãn nhu cầu [ 1 ] [ 10 ] : i. Các thuộc tính của FK tương ứng cùng miền giá trị với khóa chính PK. ii. Với mọi bộ t1 của r ( R1 ), thì giá trị tại FK bằng rỗng hoặc luôn tìm thấy một bộ t2 trong quan hệ r ( R2 ) thỏa điều kiện kèm theo t1 [ FK ] = t2 [ PK ]. Trong trường hợp FK gồm những thuộc tính khóa thì không được nhận giá trị rỗng .
  23. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 22 Ý nghĩa thực tiễn của khóa là dùng để nhận diện một bộ trong một quan hệ, nghĩa là, khi cần tìm một bộ t nào đó, ta chỉ cần biết giá trị của thành phần khóa của t là đủ để dò tìm và trọn vẹn xác lập được nó trong quan hệ [ 7 ].  Quy ước : – Trong một bộ của quan hệ những thuộc tính khóa không chứa giá trị rỗng. – Không được phép sửa đổi giá trị thuộc tính khóa của một bộ t. Nếu muốn sửa đổi giá trị thuộc tính khóa của một bộ t, người sử dụng phải hủy bỏ bộ t và sau đó thêm một bộ t ’ với giá trị khóa đã được sửa đổi. 3.3. Chuyển quy mô thực thể tích hợp sang quy mô dữ liệu quan hệ Sau đây là 1 số ít quy tắc được sử dụng trong việc quy đổi quy mô thực thể phối hợp sang quy mô dữ liệu quan hệ. [ 1 ] [ 8 ] [ 9 ]  Quy tắc 1 : Tập thực thể sang quan hệ Mỗi tập thực thể mạnh E tạo thành một quan hệ R tương ứng gồm tổng thể những thuộc tính đơn của E. Chọn một trong những khóa của E làm khóa chính cho R. Nếu khóa được chọn tương quan đến thuộc tính tích hợp thì những thuộc tính đơn tương quan đến thuộc tính phối hợp đó chính là khóa của R.  Quy tắc 2 : Tập mối tích hợp một-nhiều sang quan hệ Gọi S, T là hai quan hệ ứng với hai tập thực thể tham gia vào tập mối tích hợp R, và T là quan hệ ứng với tập thực thể phía bên n. Bổ sung khóa chính của T vào S và tập thuộc tính này giữ vai trò khóa ngoại của S. Các thuộc tính đơn của R là thuộc tính của S.  Quy tắc 3 : Tập mối tích hợp nhiều-nhiều sang quan hệ Đối với từng tập mối tích hợp R thuộc loại này, ta tạo ra một quan hệ mới Q ứng với R. Thuộc tính của Q là tổng hợp khóa của những quan hệ ứng với những tập thực thể tham gia vào R và những thuộc tính riêng của tập mối tích hợp. Khóa của Q được xác lập từ những thuộc tính khóa của quan hệ ứng với những tập thực thể tham gia vào R và dựa trên những bản số max của mối tích hợp.  Quy tắc 4 : Tập mối phối hợp một-một sang quan hệ
  24. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 23 Đối với tập mối tích hợp R thuộc loại này, ta xác lập những quan hệ S và T ứng với những tập thực thể tham gia vào R. Gọi S là quan hệ ứng với tập thực thể tham gia toàn phần vào R. Bổ sung khóa chính của T vào S và tập thuộc tính này giữ vai trò là khóa ngoại của S. Tất cả những thuộc tính đơn của R là những thuộc tính của S.  Quy tắc 5 : Tập thực thể yếu sang quan hệ Đối với từng tập thực thể yếu W có mối phối hợp với tập thực thể mạnh E, tạo một quan hệ R tương ứng. Tất cả những thuộc tính đơn của W là những thuộc tính của R. Bổ sung khóa chính của quan hệ ứng với tập thực thể mạnh E vào R và là khóa ngoại của R. Khóa chính của R là sự tích hợp khóa chính của quan hệ ứng với tập thực thể mạnh E và khóa riêng phần của tập thực thể yếu W.  Quy tắc 6 : Thuộc tính đa trị Đối với từng thuộc tính đa trị A, tạo ra một quan hệ mới S gồm chính thuộc tính A và khóa chính K của quan hệ ứng với tập thực thể / tập mối tích hợp mà A là thuộc tính của nó. Khóa chính của S là tích hợp A và K, K giữ vai trò là khóa ngoại trong S. Nếu thuộc tính đa trị A là thuộc tính phối hợp, ta chỉ lấy những thành phần đơn của nó. 3.4. Ví dụ Ví dụ 3.1 Mô hình dữ liệu quan hệ ứng với ví dụ 2.1 THISINH ( SOBD, HOTÊN, NGAYSINH, NƠISINH, NĂMDƯTHI, MATRƯƠNG ) TRƯƠNG ( MATRƯƠNG, TÊNTRƯƠNG ) MÔNTHI ( MAMT, TÊNMT ) KÊTQUA ( SOBD, MAMT, ĐIÊMTHI, GHICHU ) Ví dụ 3.2 Mô hình dữ liệu quan hệ ứng với ví dụ 2.2 THISINH ( SOBD, HOTEN, LOPCHUYEN ) MONTHI ( MON, HESO, GHICHU ) KETQUA ( SOBD, MON, DIEM )
  25. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 24 BÀI TẬP BT3. 1. Chuyển quy mô thực thể phối hợp đã làm ở BT2. 1 thành quy mô dữ liệu quan hệ. Xác định khóa chính, khóa ngoại. BT3. 2. Chuyển quy mô thực thể tích hợp đã làm ở BT2. 2 thành quy mô dữ liệu quan hệ. Xác định khóa chính, khóa ngoại. BT3. 3. Chuyển quy mô thực thể phối hợp đã làm ở BT2. 3 thành quy mô dữ liệu quan hệ. Xác định khóa chính, khóa ngoại. BT3. 4. Chuyển quy mô thực thể tích hợp đã làm ở BT2. 4 thành quy mô dữ liệu quan hệ. Xác định khóa chính, khóa ngoại. BT3. 5. Chuyển quy mô thực thể phối hợp đã làm ở BT2. 5 thành quy mô dữ liệu quan hệ. Xác định khóa chính, khóa ngoại. BT3. 6. Chuyển quy mô thực thể tích hợp đã làm ở BT2. 6 thành quy mô dữ liệu quan hệ. Xác định khóa chính, khóa ngoại .
  26. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 25 chương 4 Ngôn ngữ đại số quan hệ Ngôn ngữ đại số quan hệ gồm một tập hợp những thao tác cơ bản trên quy mô dữ liệu quan hệ được cho phép người dùng thực thi những nhu yếu tìm kiếm trên CSDL. Ngôn ngữ đại số quan hệ có vai trò quan trọng vì nó phân phối nền tảng cho những thao tác trên quan hệ, cho việc giải quyết và xử lý và tối ưu câu truy vấn trong những HQT CSDL quan hệ. 4.1. Các phép toán đại số quan hệ [ 1 ] [ 2 ] [ 5 ] [ 7 ] Phép hội Cho hai lược đồ quan hệ R ( A1, A2, …, An ) và S ( B1, B2, …, Bn ) và hai quan hệ tương ứng là r ( R ), r ( S ). Hai quan hệ r và s được gọi là khả hợp nếu chúng có cùng bậc n ( hay số thuộc tính ) và những thuộc tính tương ứng cùng miền giá tri ; nghĩa là Dom ( Ai ) = Dom ( Bi ), 1  i  n. Ký hiệu phép hội :  r  s = { t / ( t  r )  ( t  s ) } Kết quả của phép hội của r và s là một quan hệ chứa những bộ thuộc r hoặc thuộc s. Phép giao Ký hiệu phép giao :  r  s = { t / ( t  r )  ( t  s ) } Kết quả của phép giao của r và s là một quan hệ chứa những bộ vừa thuộc r vừa thuộc s. Phép hiệu Ký hiệu phép hiệu :  r – s = { t / ( t  r )  ( t  s ) } Kết quả của phép hiệu của r và s là một quan hệ chỉ gồm những bộ thuộc r mà không thuộc s .
  27. Bài tập Cơ

    sở dữ liệu quan hệ – Trường Đại học Sài Gòn 26
    Phép hội, phép giao có tính chất giao hoán; còn phép hiệu không có tính chất
    giao hoán.
    Phép tích Đềcác
    Phép tích Đềcác không đòi hỏi hai quan hệ phải có tính khả hợp.
    Ký hiệu phép tích Đềcác: x
    Cho hai lược đồ quan hệ R(A1,A2,…,An) và S(B1,B2,…,Bm) và hai quan hệ r(R),
    r(S). Giả sử r có k1 bộ, s có k2 bộ thì tích Đềcác của r và s ký hiệu là r x s = q.
    Với q là một quan hệ có n + m thuộc tính và có k1* k2 bộ trong đó mỗi bộ của q là
    sự kết hợp của mỗi bộ của r và các bộ của s.
    Phép chọn
    Phép chọn được dùng để chọn ra từ một quan hệ các bộ thỏa mãn điều kiện chọn.
    Ký hiệu phép chọn: 
    Cú pháp: <Điều kiện chọn> (r)
    hoặc có thể dùng cú pháp r : <Điều kiện chọn>
    Trong đó điều kiện chọn là một biểu thức luận lý được tạo thành dựa trên các
    thuộc tính của r. Kết quả của phép chọn trên quan hệ r là một quan hệ có cùng
    tập thuộc tính như quan hệ r và có số bộ ít hơn hoặc bằng số bộ của quan hệ r.
    Điều kiện chọn có thể sử dụng các phép so sánh (=, <, >, , , ), các giá trị
    hằng, các toán tử logic AND, OR, NOT.
    Phép chọn có tính chất giao hoán.
    Phép chiếu
    Phép chiếu được dùng để giữ lại một số thuộc tính của một quan hệ ban đầu;
    nghĩa là bỏ qua những thuộc tính khác không quan tâm.
    Ký hiệu phép chiếu: 
    Cú pháp: (r)
    hoặc có thể dùng cú pháp r[]
    Kết quả của phép chiếu là một quan hệ có các thuộc tính được liệt kê trong . Phép chiếu chỉ giữ lại một bộ trong các bộ trùng nhau.

  28. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 27 Phép gán Ký hiệu phép gán :  Cú pháp : r  E Khi đó tác dụng của biểu thức đại số quan hệ E sẽ được gán cho quan hệ r ; sau đó hoàn toàn có thể dùng r như là toán hạng cho một phép toán đại số quan hệ khác. Phép đổi tên Ta hoàn toàn có thể dùng phép đổi tên để đổi tên những quan hệ hoặc tên của thuộc tính trong quan hệ hoặc cả hai. Ký hiệu phép đổi tên :  Phép đổi tên tổng quát vận dụng cho quan hệ R bậc n được viết như sau :  s ( B1, B2, …, Bn ) ( r ) : Dùng để đổi tên quan hệ lẫn tên thuộc tính, hoặc  s ( r ) : Dùng để đổi tên quan hệ, hoặc  ( B1, B2, …, Bn ) ( r ) : Dùng để đổi tên thuộc tính. Trong đó s là tên mới của quan hệ ; Bi là tên mới của những thuộc tính, r là quan hệ bắt đầu. Phép kết Phép kết có vai trò rất quan trọng trong CSDL quan hệ. Phép kết được cho phép truy xuất dữ liệu trên nhiều quan hệ. Ký hiệu phép kết : Cú pháp : r < Điều kiện kết > s Cho hai lược đồ quan hệ R ( A1, A2, …, An ) và S ( B1, B2, …, Bm ) và hai quan hệ r ( R ), s ( S ). Giả sử r có k1 bộ, s có k2 bộ. Kết quả của phép kết là một quan hệ q có n + m thuộc tính, có lược đồ quan hệ là Q ( A1, A2, …, An, B1, B2, …, Bm ) ; với những thuộc tính Open đúng theo thứ tự này. Điều kiện kết tương quan đến những thuộc tính r và s có dạng : < điều kiện kèm theo 1 >  < điều kiện kèm theo 2 >  .. < điều kiện kèm theo t >
  29. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 28 Trong đó mỗi điều kiện kèm theo có dạng Ai  Bj với Ai là thuộc tính của r và Bj là thuộc tính của s ; Ai và Bj có cùng miền giá trị ;  ( đọc là thê-ta ) là một trong những phép so sánh. Phép kết với điều kiện kèm theo kết tương quan đến phép so sánh  tổng quát được gọi là phép theta-kết. Phép kết tự nhiên Phép kết được sử dụng phổ cập nhất trong CSDL quan hệ chỉ dùng phép so sánh bằng trong điều kiện kèm theo kết, gọi là phép kết-bằng. Kết quả của phép kết-bằng luôn Open tối thiểu một cặp thuộc tính có giá trị trùng nhau trong từng bộ. Một trong hai thuộc tính trong một / nhiều cặp thuộc tính này là thừa. Phép kết tự nhiên cũng hoàn toàn có thể được ký hiệu là *, bỏ đi thuộc tính thứ hai trong từng cặp thuộc tính trùng nhau này. Định nghĩa chuẩn của phép kết tự nhiên nhu yếu từng cặp thuộc tính kết này phải cùng tên. Trong trường hợp những cặp thuộc tính không trùng tên và muốn sử dụng phép kết tự nhiên thì phải thực thi phép toán đổi tên trước. Phép chia Ký hiệu phép chia :  Cho lược đồ quan hệ R và một tập thuộc tính Z, r ( Z ) và quan hệ r ( R ). Cho lược đồ quan hệ S và một tập thuộc tính X, S ( X ) và quan hệ s ( S ). Để vận dụng được phép chia trên hai quan hệ r và s thì X  Z. Đặt Y = Z – X. Y là thuộc tính của r mà không phải là tập thuộc tính của s. Phép chia được định nghĩa r  s = q. Với q là quan hệ có tập thuộc tính là Y và gồm những bộ t, trong đó t Open trong r dưới dạng tích hợp của t và mọi bộ của s ; nghĩa là q = r ÷ s = { t /  u  s, ( t, u )  r }. 4.2. Các hàm tổng hợp và gom nhóm [ 1 ] [ 10 ]. Một số nhu yếu truy vấn không hề thực thi được với những phép toán đại số quan hệ cơ bản, thế cho nên ngôn từ đại số quan hệ định nghĩa 1 số ít hàm tính tổng hợp như SUM, AVG, COUNT, MAX, MIN.
  30. Bài tập Cơ

    sở dữ liệu quan hệ – Trường Đại học Sài Gòn 29
    Ngoài ra, việc tính toán sau khi đã gom nhóm cũng thường xảy ra khi truy vấn.
    Ngôn ngữ đại số quan hệ định nghĩa hàm gom nhóm  như sau.
    Cú pháp: (r)
    Trong đó là các thuộc tính của r mà dữ liệu sẽ
    được gom nhóm trên đó để phục vụ cho mục đích tính toán.
    những cặp (hàm, thuộc tính) với hàm là một trong các hàm được đề cập ở trên và
    thuộc tính là một trong các thuộc tính của r. Kết quả cho ra là một quan hệ có số
    thuộc tính là số thuộc tính gom nhóm, còn mỗi hàm tính tổng hợp cho ra thêm
    một thuộc tính nữa.
    4.3. Phép toán cập nhật dữ liệu [1]
    Thêm
    Cú pháp: r  r  E
    Trong đó r là quan hệ và E là một biểu thức đại số quan hệ cho biết một/nhiều bộ
    dữ liệu được chèn vào r.
    Xóa
    Cú pháp: r  r – E
    Trong đó r là quan hệ và E là một biểu thức đại số quan hệ cho biết một/nhiều bộ
    dữ liệu được xóa từ r.
    Sửa
    Cú pháp: r F1,F2,…,Fn(r)
    Trong đó Fi là thuộc tính thứ i của quan hệ r, hoặc là biểu thức cho biết giá trị
    mới của thuộc tính thứ i.
    4.4. Ví dụ
    Ví dụ 4.1
    Cho lược đồ cơ sở dữ liệu như ở ví dụ 3.1
    THISINH(SOBD,HOTÊN,NGAYSINH,NƠISINH,NĂMDƯTHI,MATRƯƠNG)
    TRƯƠNG(MATRƯƠNG,TÊNTRƯƠNG)

  31. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 30 MÔNTHI ( MAMT, TÊNMT ) KÊTQUA ( SOBD, MAMT, ĐIÊMTHI, GHICHU ) Dùng ngôn từ đại số quan hệ trình diễn những nhu yếu sau : 1. Cho biết điểm thi những môn của thí sinh có số báo danh là ’ 080191000001 ’. 2. Cho biết những thí sinh có tối thiểu một môn thi nào đó bị điểm 0 ở kỳ thi năm 2010 ( điểm 0 do vắng thi hoặc điểm 0 do bài thi bị chấm điểm 0 ). 3. Cho biết những thí sinh đã đăng dự thi năm 2010 nhưng không dự thi môn nào ( tổng thể những môn đều vắng thi ). 4. Cho biết những thí sinh có điểm tổng thể những môn thi đều lớn hơn hoặc bằng 8 trong kỳ thi năm 2010. 5. Cho biết những thí sinh cùng trường với thí sinh có số báo danh là ’ 080191000001 ’. 6. Cho biết những thí sinh có điểm TOÁN bằng điểm TOÁN của của thí sinh có số báo danh là ’ 080191000001 ’. Giải 1. Cho biết điểm thi những môn của thí sinh có số báo danh là ’ 080191000001 ’. MAMT MONTHI KETQUA : SOBD = ’ 080191000001 ’ [ MAMT, TÊNMT, ĐIÊMTHI ] 2. Cho biết những thí sinh có tối thiểu một môn thi nào đó bị điểm 0 ở kỳ thi năm 2010. SOBD ( THISINH : NAMDUTHI = 2010 KETQUA : DIEMTHI = 0 [ SOBD ] ) [ SOBD, HOTEN ] 3. Cho biết những thí sinh đăng dự thi năm 2010 nhưng không dự thi môn nào SOBD THISINH ( THISINH [ SOBD ] – KETQUA : GHICHU < > ’ Vắng thi ’ ) [ SOBD ] ) : NAMDUTHI = 2010 [ SOBD, HOTEN ] 4. Cho biết những thí sinh có điểm toàn bộ những môn thi đều lớn hơn hoặc bằng 8 trong kỳ thi năm 2010. SOBD
  32. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 31 THISINH ( THISINH [ SOBD ] – ( KETQUA : ĐIÊMTHI < 8 [ SOBD ] ) : NAMDUTHI = 2010 [ SOBD, HOTEN ] Câu 4 này hoàn toàn có thể giải cách khác bằng cách sử dụng phép chia như sau : SOBD ( ( KETQUA [ SOBD, MAMT ] : DIEMTHI > = 8 )  KETQUA [ MAMT ] ) THISINH : NAMDUTHI = 2010 [ SOBD, HOTEN ] 5. Cho biết những thí sinh cùng trường với thí sinh có số báo danh là ’ 080191000001 ’. SOBD THISINH THISINH : SOBD = ’ 080191000001 ’ [ MATRUONG ] [ SOBD, HOTEN ] Câu 5 này hoàn toàn có thể giải cách khác bằng cách sử dụng phép chia như sau : ( THISINH [ SOBD, MATRUONG ]  ( THISINH : SOBD = ’ 080191000001 ’ SOBD [ MATRUONG ] ) ) THISINH [ SOBD, HOTEN ] 6. Cho biết những thí sinh có điểm TOÁN bằng điểm TOÁN của của thí sinh có số báo danh là ’ 080191000001 ’. ( KETQUA  ( KETQUA : SOBD = ’ 080191000001 ’  MAMT = ’ TOÁN ’ [ MAMT, DIEM ] ) ) [ SOBD ] Ví dụ 4.2 Cho lược đồ cơ sở dữ liệu như ở ví dụ 3.2 THISINH ( SOBD, HOTEN, LOPCHUYEN ) MONTHI ( MON, HESO, GHICHU ) KETQUA ( SOBD, MON, DIEM ) Dùng ngôn từ đại số quan hệ trình diễn những nhu yếu sau : 1. Lập list thí sinh có điểm cả ba môn thi đều lớn hơn hoặc bằng 8. 2. Lập list thí sinh cùng với điểm môn chuyên của thí sinh đó. 3. Lập list thí sinh có điểm môn chuyên nhỏ hơn 5 hoặc có môn chung có điểm nhỏ hơn 2. 4. Lập list những thí sinh có cả hai môn chung đều bị điểm 0. 5. Lập list những môn chuyên có thí sinh dự thi môn chuyên đạt điểm 10 .
  33. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 32 Giải 1. SOBD THISINH ( THISINH [ SOBD ] – KETQUA : DIEM < 8 [ SOBD ] ) [ SOBD, HOTEN, LOPCHUYEN ] 2. SOBD MON THISINH KETQUA MONTHI : HESO = 2 [ SOBD, HOTEN, LOPCHUYEN, DIEM ] 3. MON SOBD KETQUA MONTHI : ( HESO = 2  DIEM < 5 )  ( HESO = 1  DIEM < 2 ) THISINH [ SOBD, HOTEN ] 4. SOBD MON THISINH ( THISINH [ SOBD ] - KETQUA MONTHI : HESO = 1  DIEM > 0 [ SOBD ] ) [ SOBD, HOTEN, LOPCHUYEN ] 5. SOBD MON THISINH KETQUA MONTHI : HESO = 2  HESO = 10 [ LOPCHUYEN ]
  34. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 33 BÀI TẬP Dùng ngôn từ đại số quan hệ màn biểu diễn những nhu yếu sau ( lược đồ cơ sở dữ liệu được lấy từ những bài tập chương 3 tương ứng – đã được giải hoàn hảo trong phần Hướng dẫn giải ). BT4. 1. Ứng dụng quản trị hiệu quả kỳ tuyển sinh cao học 1. Cho biết tổng thể những thí sinh có điểm ngoại ngữ lớn hơn hoặc bằng 5 ở kỳ thi năm 2010. 2. Cho biết những thí sinh có điểm ngoại ngữ < 5 hoặc có một mộn thi trình độ nào đó bị điểm 0 ở kỳ thi năm 2010. 3. Cho biết những thí sinh có tối thiểu một môn thi nào đó bị điểm 0 ( vắng thi hoặc bài thi bị điểm 0 ) ở kỳ thi năm 2010. 4. Cho biết những thí sinh có điểm toàn bộ những môn thi đều lớn hơn hoặc bằng 8 ở kỳ thi năm 2010. 5. Danh sách những thí sinh dự thi năm 2010 có vắng thi tối thiểu là một môn thi nào đó. BT4. 2. Ứng dụng quản trị phân công giảng dạy của một khoa 1. Danh sách những học phần được mở ở học kỳ 3 năm học ‘ 2011 - 2012 ’. 2. Danh sách những giảng viên có phân công giảng dạy ở học kỳ 1 và học kỳ 2 năm học ‘ 2011 - 2012 ’. 3. Danh sách những giảng viên chưa có phân công giảng dạy trong năm học ‘ 2011 - 2012 ’. 4. Danh sách những học phần được mở theo từng học kỳ của năm học ‘ 2011 - 2012 ’ cho biết số nhóm mở của học phần đó. 5. Kế hoạch những nhóm lớp do những giảng viên thỉnh giảng đảm nhiệm của năm học ‘ 2011 - 2012 ’. BT4. 3. Ứng dụng quản trị những đề tài khoa học của khoa 1. Hãy cho biết những giảng viên có triển khai tối thiểu là một đề tài trong năm 2011 .
  35. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 34 2. Hãy cho biết những giảng viên không triển khai đề tài nào trong năm 2011. 3. Hãy cho biết những giảng viên cùng tham gia đề tài có mã là ‘ MS2012-06 ’. 4. Liệt kê list những giảng viên có tham gia đề tài có mã đề tài là ‘ MS2012-06 ’ và đề tài có mã là ‘ MS2012-07 ’. 5. Liệt kê những đề tài do giảng viên có mã giảng viên là 10281 làm chủ nhiệm đề tài trong những năm 2009,2010,2011. 6. Liệt kê những đề tài mà mỗi bộ môn đã thực thi, kèm theo họ và tên của chủ nhiệm đề tài đó. BT4. 4. Ứng dụng quản trị hiệu quả học tập của sinh viên 1. Lập bảng điểm học phần 841020 của những sinh viên lớp DCT1103. 2. Lập bảng điểm những học phần của sinh viên có mã số sinh viên 3311410092. 3. Lập list những sinh viên lớp DCT1103 không có học phần nào có điểm nhỏ hơn 8. 4. Lập list những sinh viên lớp DCT1103 có điểm tối thiểu một học phần nào đó nhỏ hơn 5. 5. Lập list những lớp thuộc khoa Công nghệ thông tin có sinh viên có tối thiểu một học phần nào đó có điểm nhỏ hơn 5. 6. Lập list những giảng viên từng giảng học phần Kỹ thuật lập trình 7. Lập list những giảng viên đã từng dạy sinh viên có mã số sinh viên là 3311410092. Yêu cầu ghi rõ dạy học phần nào, và sinh viên đạt bao nhiêu điểm ở học phần đó. BT4. 5. Ứng dụng quản trị coi thi tuyển sinh 1. Lập list những thí sinh ĐK dự thi có số hiệu PHONGTHI là ‘ C.A 508 ’, list cần những thông tin : SOBD, HOTEN, NGAYSINH. 2. Lập list những thí sinh ĐK dự thi có số hiệu PHONGTHI là ‘ 1. A111 ’, list cần những thông tin : SOBD, HOTEN, NGAYSINH, TENNGANH.
  36. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 35 3. Danh sách những thí sinh có mã số ngành thi là D480101 4. Phân công giảng viên buổi thi môn TOAN ( mã môn thi ). 5. Danh sách những giảng viên không tham gia coi thi 6. Danh sách những giảng viên đơn vị chức năng khoa công nghệ thông tin tham gia ở từng điểm thi nào 7. tin tức của một thí sinh có số báo danh là QHXC. 01234 ( thông tin gồm : họ tên, ngày sinh, tên ngành thi, phòng thi, khu vực thi, giảng viên coi thi từng môn thi ). BT4. 6. Hệ thống quản trị bảo dưỡng máy tính tại nhà 1. Số lượt bảo dưỡng của từng nhân viên cấp dưới có trong một tháng m nào đó của năm y. Thông tin cần : MANV, HOTEN, SOLUOT ( trong đó SOLUOT là thuộc tính tự đặt ). 2. Chi tiết về tình hình bảo dưỡng máy tính của những người mua trong một tháng m nào đó của năm y. Thông tin cần : MAKH, HOTENKH, SONT, NGAY, NOIDUNG, SOTIEN. 3. Tìm list những nhân viên cấp dưới đã tham gia bảo dưỡng cho một người mua có mã là kh0001 tại một ngày d ( ngày / tháng / năm ) nào đó. Thông tin cần : MANV, HOTEN, ĐIACHI, ĐIENTHOAI. 4. Các nhân viên cấp dưới chưa từng tham gia bảo dưỡng máy tính cho người mua 5. Các nhân viên cấp dưới đã từng tham gia bảo dưỡng máy tính cho người mua Nguyễn Văn Hùng 6. Chi tiết phân công những nhân viên cấp dưới trong một ngày d ( ngày / tháng / năm ). 7. Tổng số tiền bảo dưỡng thu được theo từng ngày trong một tháng th nào đó. Thông tin cần : NGAY, TONGSO ( trong đó TONGSO là thuộc tính tự đặt ). BT4. 7. Ứng dụng quản trị kỳ thi tốt nghiệp trung học phổ thông. 1. In tác dụng thi của thí sính có SOBD là ’ 080191000001 ’. Thông tin cần MAMT, DIEMTHI, GHICHU. 2. In hiệu quả thi của thí sinh có SOBD là ‘ 080191000001 ’. Thông tin cần MAMT, TENMT, DIEMTHI, GHICHU.
  37. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 36 3. In tác dụng thi tất cà những môn của toàn bộ những thí sinh. Thông tin cần : SOBD, HOTEN, NGAYSINH, TENTRUONG, TENMT, DIEMTHI. 4. In list những thí sinh của trường có mã trường là ‘ 018 ’ có điểm môn TOAN < 5. tin tức cần SOBD, HOTEN, NGAYSINH, TENTRUONG, DIEMTHI. 5. In tác dụng thi môn thi có mã môn thi là TOAN của toàn bộ những thí sinh. Thông tin cần : SOBD, HOTEN, TENTRUONG, DIEMTHI. 6. In hiệu quả thi có mã môn thi là TOAN của tất cà những thí sinh dự thi năm 2010. Thông tin cần SOBD, HOTEN, TENTRUONG, DIEMTHI, SOBD. 7. Cho biết những thí sinh dự thi không đủ 6 môn trong trong năm 2010. Thông tin cần SOBD, HOTEN, NGAYSINH, TENTRUONG. 8. In list những thí sinh không vắng thi môn nào. Thông tin cần : SOBD, HOTEN, NGAYSINH, TENTRUONG. 9. Cho biết tác dụng thi môn TOAN của những thí sinh dự thi trong năm 2010. 10. Cho biết những thí sinh có điểm thi môn TOAN  9 của trường 018. 11. Cho biết những thí sinh có tối thiểu 1 môn thi nào đó bị điểm 0 ở kỳ thi năm 2010. 12. Cho biết những thí sinh đã ĐK dự thi nhưng không tham gia dự thi môn nào. 13. Cho biết những thí sinh có điểm tổng thể những môn thi đều  8 trong kỳ thi năm 2010. 14. Cho biết thí sinh dự thi không đủ 6 môn trong năm 2010. BT4. 8. 1. Cho quan hệ R ( U ), những biểu thức chọn e và h trên U và tập con những thuộc tính X  U. Ký hiệu Attr ( e ) là tập những thuộc tính có trên e. Chứng minh, nếu Attr ( e )  X thì : a. R ( e ) [ X ] = R [ X ] ( e ) b. R ( h  e ) [ X ] = R ( h ) ( e ) [ X ] = R ( h ) [ X ] ( e ) 2. Chứng minh rằng phép chia hoàn toàn có thể được màn biểu diễn qua những phép chiếu, liên kết và trừ như sau :
  38. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 37 R  S = R [ M ] – ( R [ M ] * S – R ) [ M ], M = Attr ( R ) – Attr ( S ). 3. Cho quan hệ R ( U ), e và h là hai biểu thức chọn trên U. Chứng minh rằng nếu e suy ra h thì : a. R ( e ) ( h ) = R ( e ) b. R ( e )  R ( h )
  39. Bài tập Cơ

    sở dữ liệu quan hệ – Trường Đại học Sài Gòn 38
    chương 5
    Ngôn ngữ SQL
    SQL (Structured Query Language) là ngôn ngữ chuẩn cho các HQT CSDL quan hệ. SQL hỗ trợ
    để rút trích thông tin từ một CSDL đó là lệnh SELECT. Lệnh SELECT này không có mối liên hệ
    gì so với phép toán chọn trong ngôn ngữ đại số quan hệ
    5.1. Giới thiệu về câu lệnh SELECT
    Cú pháp tổng quát của câu lệnh select như sau:
    SELECT DISTINCT /*/Danh sách các thuộc tính/ ,…
    FROM
    WHERE
    GROUP BY
    HAVING <Điều kiện nhóm>
    ORDER BY
    Trong đó:
    là tên của các thuộc tính cần được hiển thị
    trong kết quả truy vấn.
    là tên các quan hệ liên quan đến câu truy vấn.
    (expression) là biểu thức logic xác định dòng nào sẽ được rút
    trích.
    Các toán tử so sánh :=, <>, >, <, >=, <= Các toán tử logic : NOT (phủ định), AND (phép hội), OR (phép tuyển) 5.2. Tìm thông tin từ các cột của quan hệ - Mệnh đề SELECT SELECT DISTINCT /*/Danh sách các thuộc tính/ ,…
    FROM
    -Những thuộc tính được liệt kê trong mệnh đề SELECT sẽ là các thuộc
    tính trong quan hệ kết quả.

  40. Bài tập Cơ

    sở dữ liệu quan hệ – Trường Đại học Sài Gòn 39
    -Ký hiệu * theo sau từ khóa SELECT dùng để chỉ tất cả các thuộc tính của
    quan hệ nguồn sẽ là thuộc tính của quan hệ kết quả. Danh sách các thuộc tính này
    cách nhau bởi dấu phẩy và thứ tự này cũng chính là thứ tự của các thuộc tính
    trong quan hệ kết quả.
    -Mệnh đề FROM:
    Những quan hệ liên quan đến câu truy vấn được liệt kê sau mệnh đề
    FROM, các quan hệ này cách nhau bởi dấu phẩy, thứ tự của các quan hệ là không
    quan trọng.
    Cần chú ý rằng khi mệnh đề FROM chỉ ra từ hai quan hệ trở lên, nếu có
    một thuộc tính ở mệnh đề SELECT là thuộc tính của nhiều hơn một quan hệ thì
    cần phải chỉ rõ thuộc tính đó thuộc về quan hệ nào; theo cú pháp
    TÊNQUANHỆ.TÊNTHUỘCTÍNH
    Khi cần lấy thông tin về tất cả các cột của quan hệ, chúng ta có thể sử
    dụng dấu sao (*) thay cho việc liệt kê các tên cột của quan hệ.
    Nếu chúng ta muốn đặt tên khác cho tên của các cột của quan hệ (còn gọi
    là bí danh – ALIAS), việc này được thực hiện bằng cách thêm từ khóa AS và
    theo sau là một tên mới. Nếu tên có chứa các ký tự đặc biệt và/hoặc khoảng trắng
    thì viết tên đó trong cặp dấu ngoặc vuông ( [ ] ).
    Câu lệnh SELECT không chỉ thực hiện việc trích thông tin từ các cột đơn
    lẻ của quan hệ mà còn có thể thực hiện các tính toán theo công thức hay biểu
    thức bất kỳ dựa trên giá trị của các cột trên từng bản ghi của quan hệ.
    Từ khóa DISTINCT nhằm loại bỏ bớt các bộ trùng nhau trong quan hệ kết
    quả của lệnh truy vấn (chỉ giữ lại một bộ đại diện cho các bộ giống nhau).
    5.3. Chọn các dòng của quan hệ – mệnh đề WHERE
    SELECT DISTINCT /*/Danh sách thuộc tính/ ,…
    FROM
    WHERE
    Trong đó có giá trị là hoặc đúng (true) hoặc sai
    (false).

  41. Bài tập Cơ

    sở dữ liệu quan hệ – Trường Đại học Sài Gòn 40
    Nếu điều kiện này chỉ liên quan đến một quan hệ thì gọi là điều kiện chọn,
    nếu điều kiện liên quan đến từ hai quan hệ trở lên thì gọi là điều kiện kết. Các
    điều kiện chọn và điều kiện kết có thể phối hợp với nhau bởi các toán tử logic
    (AND,OR,NOT) để tạo nên những biểu thức logic phức tạp hơn. Cần chú ý rằng
    thứ tự của các điều kiện ở đây là quan trọng: Nếu có thể thì nên thực hiện điều
    kiện chọn trước khi thực hiện điều kiện kết.
    5.4. Sắp xếp các dòng của quan hệ – mệnh đề ORDER BY
    SELECT DISTINCT /*/Danh sách thuộc tính/ ,…
    FROM
    WHERE
    ORDER BY
    Quan hệ kết quả có thể được sắp xếp tăng/giảm theo một (hoặc nhiều)
    thuộc tính nào đó bằng cách sử dụng mệnh đề ORDER BY (độ ưu tiên giảm dần tư trái sang phải), từ khóa DESC (DESCending) được
    dùng nếu muốn sắp xếp giảm dần, nếu có dùng ORDER BY mà không có DESC,
    mặc định CSDL sẽ được sắp xếp tăng dần ASC (ASCending) theo các thuộc tính
    đã chỉ ra.
    5.5. Câu lệnh truy vấn lồng nhau
    Là những câu lệnh mà trong thành phần WHERE có chứa thêm một câu
    lệnh Select khác nữa. Câu lệnh này thường gặp khi dữ liệu cần thiết phải duyệt
    qua nhiều lần. Đây là một trong những vấn đề khó khăn nhất khi truy vấn dữ liệu
    kết quả của câu hỏi con được sử dụng trong phép so sánh với một giá trị khác
    trong biểu thức điều kiện của câu hỏi bao nó.
    Các toán tử tập hợp:
    SQL có cài đặt các phép toán tập hơp như: UNION (phép hội),
    INTERSECT (phép giao), EXCEPT (phép trừ). Kết quả của các phép toán này sẽ
    loại bỏ các bộ trùng nhau (giữ lại 1). Nếu chúng ta muốn giữ lại các bộ trùng
    nhau này thì sử dụng từ khóa ALL đi kèm như: UNION ALL, INTERSECT
    ALL, EXCEPT ALL.

  42. Bài tập Cơ

    sở dữ liệu quan hệ – Trường Đại học Sài Gòn 41
    In (danh sách các giá trị), NOT IN, ALL, ANY, SOME, LIKE, NOT
    LIKE, EXISTS và NOT EXISTS. Trong đó IN dùng để so sánh giá trị của thuộc
    tính với một tập hợp. Đối với IN, thuộc tính ở mệnh đề SELECT được truy vấn
    con phải có cùng kiểu với dữ liệu với thuộc tính ở mệnh đề WHERE của truy vấn
    cha. EXISTS dùng để kiểm tra một câu truy vấn bất kỳ có trả về bộ dữ liệu nào
    hay không ? Nếu câu tuy vấn tham số của EXISTS trả về ít nhất một bộ dữ liệu
    thì EXISTS trả về giá trị TRUE, ngược lại trả về giá trị FALSE. Những câu truy
    vấn có sử dụng ‘=ANY’ hoặc IN đều có thể chuyển về câu truy vấn sử dụng
    EXISTS.
    5.6. Gom nhóm dữ liệu– mệnh đề GROUP BY
    Khi cần tính toán trên các bộ theo một nhóm nào đó – theo một thuộc tính
    nào đó, thì ta dùng mệnh đề GROUP BY, chẳng hạn cần tính điểm tổng của tất
    cả các môn thi cho tất cả các thí sinh, hay là cần tính số lượng thí sinh cho mỗi
    mỗi trường, mỗi năm, đếm số lượng thí sinh nữ của mỗi trường,…
    Các hàm tính toán tổng hợp theo nhóm
    SUM : tính tổng giá trị của các bộ theo thuộc tính đã chỉ ra.
    AVG : cho biết giá trị trung bình của các bộ theo thuộc tính
    đã chỉ ra.
    COUNT <*>// distinct MAX :cho biết giá trị lớn nhất của các bộ theo thuộc tính đã
    chỉ ra.
    MIN : cho biết giá trị nhỏ nhất của các bộ theo thuộc tính đã
    chỉ ra.
    Mệnh đề GROUP BY dùng để phân nhóm dữ liệu. những bộ
    của quan hệ có cùng giá trị trên các thuộc tính này sẽ tạo thành một nhóm.
    5.7. Điều kiện trên nhóm dữ liệu– mệnh đề HAVING
    Nếu cần kiểm tra điều kiện của một nhóm thì dùng mệnh đề HAVING,
    chẳng hạn như cần biết danh sách những thí sinh có điểm trung bình các môn thi

  43. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 42  8, những trường nào có nhiều hơn 1000 thí sinh dự kỳ thi tốt nghiệp năm 2012, … Lưu ý những thuộc tính có tham gia vào mệnh đề GROUP BY để phân nhóm phải được liệt kê trong list thuộc tính theo sau từ khóa SELECT. Mệnh đề HAVING < điều kiện kèm theo trên nhóm > được sử dụng như là phép chọn phối hợp với việc phân nhóm dữ liệu. Trong một lệnh truy vấn tổng hợp, ngoại trừ hai thành phần bắt buộc là SELECT ( phải đặt lên đầu ) và FROM, những mệnh đề còn lại là tùy chọn dựa vào nhu yếu truy vấn. Thứ tự thực thi của câu lệnh truy vấn như sau : FROM  WHERE  GROUP BY  HAVING  SELECT  ORDER BY [ 12 ] [ 13 ] 5.8. Ví dụ Ví dụ 6.1 THISINH ( SOBD, HOTÊN, NGAYSINH, NƠISINH, NĂMDƯTHI, MATRƯƠNG ) TRƯƠNG ( MATRƯƠNG, TÊNTRƯƠNG ) MÔNTHI ( MAMT, TÊNMT ) KÊTQUA ( SOBD, MAMT, ĐIÊMTHI, GHICHU ) Dùng ngôn từ SQL màn biểu diễn những nhu yếu sau : 1. Cho biết điểm thi những môn của thí sinh có số báo danh là ’ 080191000001 ’. 2. Cho biết những thí sinh có tối thiểu một môn thi nào đó bị điểm 0 ở kỳ thi năm 2010 ( điểm 0 do vắng thi hoặc điểm 0 do bài thi bị chấm điểm 0 ). 3. Cho biết những thí sinh đã đăng dự thi năm 2010 nhưng không dự thi môn nào ( tổng thể những môn đều vắng thi ). 4. Cho biết những thí sinh có điểm toàn bộ những môn thi đều lớn hơn hoặc bằng 8 trong kỳ thi năm 2010. 5. Cho biết những thí sinh dự thi không đủ 6 môn trong năm 2010. 6. Cho biết những môn thi có điểm trung bình của toàn bộ những thí sinh dự thi nhỏ hơn 5.0 trong kỳ thi năm 2010 .
  44. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 43 7. Cho biết những thí sinh được xếp loại tốt nghiệp ‘ Loại Giỏi ’ trong kỳ thi năm 2010. 8. Cho biết những thí sinh có tổng số điểm những môn thi là cao nhất trong kỳ thi năm 2010. 9. Cho biết những trường có tổng thể thí sinh dự thi đều đậu tốt nghiệp trong kỳ thi năm 2010. 10. Cho biết số lượng thí sinh rớt tốt nghiệp của từng trường trong kỳ thi năm 2010. 11. Cho biết những thí sinh cùng trường với thí sinh có số báo danh là ’ 080191000001 ’. 12. Cho biết những thí sinh trong họ tên có chữ Thi. 13. Cho biết những thí sinh có điểm TOÁN bằng điểm TOÁN của của thí sinh có số báo danh là ’ 080191000001 ’. 14. Cho biết những thí sinh có tổng điểm thi những môn bằng với tổng điểm thi những môn của thí sinh có số báo danh là ’ 080191000001 ’. Giải 1. Cho biết điểm thi những môn của thí sinh có số báo danh là ’ 080191000001 ’. SELECT * FROM KETQUA, MONTHI WHERE MONTHI.MAMT = KETQUA.MAMT AND SOBD = ‘ 080191000001 ‘ 2. Cho biết những thí sinh có tối thiểu một môn thi nào đó bị điểm 0 ở kỳ thi năm 2010 ( điểm 0 do vắng thi hoặc điểm 0 do bài thi bị chấm điểm 0 ). SELECT * FROM THISINH WHERE NAMDUTHI = 2010 AND SOBD IN ( SELECT SOBD FROM KETQUA WHERE DIEMTHI = 0 )
  45. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 44 3. Cho biết những thí sinh đã đăng dự thi năm 2010 nhưng không dự thi môn nào ( toàn bộ những môn đều vắng thi ). SELECT * FROM THISINH WHERE NAMDUTHI = 2010 AND SOBD NOT IN ( SELECT SOBD FROM KETQUA WHERE DIEMTHI > 0 OR ( DIEMTHI = 0 AND GHICHU < > ‘ Vắng thi ‘ ) ) 4. Cho biết những thí sinh có điểm toàn bộ những môn thi đều lớn hơn hoặc bằng 8 trong kỳ thi năm 2010. SELECT * FROM THISINH WHERE NAMDUTHI = 2010 AND SOBD NOT IN ( SELECT SOBD FROM KETQUA WHERE DIEMTHI < 8 ) 5. Cho biết những thí sinh dự thi không đủ 6 môn trong năm 2010. SELECT * FROM THISINH WHERE NAMDUTHI = 2010 AND SOBD IN ( SELECT DISTINCT SOBD FROM KETQUA WHERE GHICHU = ' Vắng thi ' ) 6. Cho biết những môn thi có điểm trung bình của tổng thể những thí sinh dự thi nhỏ hơn 5.0 trong kỳ thi năm 2010. SELECT MONTHI.MAMT, TENMT ,
  46. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 45 AVG ( DIEMTHI ) AS DIEMTRUNGBINH FROM MONTHI, KETQUA, THISINH WHERE MONTHI.MAMT = KETQUA.MAMT AND THISINH.SOBD = KETQUA.SOBD AND NAMDUTHI = 2010 GROUP BY MONTHI.MAMT, TENMT HAVING AVG ( DIEMTHI ) < 5 7. Cho biết những thí sinh được xếp loại tốt nghiệp ‘ loại giỏi ’ trong kỳ thi năm 2010. SELECT THISINH.SOBD, HOTEN FROM THISINH, KETQUA WHERE THISINH.SOBD = KETQUA.SOBD AND NAMDUTHI = 2010 AND DIEMTHI > = 7 GROUP BY THISINH.SOBD, HOTEN HAVING AVG ( DIEMTHI ) > = 8 AND COUNT ( THISINH.SOBD ) = 6 8. Cho biết những thí sinh có tổng số điểm những môn thi là cao nhất trong kỳ thi năm 2010. SELECT KETQUA.SOBD, HOTEN FROM THISINH, KETQUA WHERE THISINH.SOBD = KETQUA.SOBD AND NAMDUTHI = 2010 GROUP BY KETQUA.SOBD, HOTEN HAVING SUM ( DIEMTHI ) > = ALL ( SELECT SUM ( DIEMTHI ) FROM THISINH, KETQUA WHERE THISINH.SOBD = KETQUA.SOBD AND NAMDUTHI = 2010 GROUP BY KETQUA.SOBD, HOTEN ) 9. Cho biết những trường có toàn bộ thí sinh dự thi đều đậu tốt nghiệp trong kỳ thi năm 2010 .
  47. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 46 SELECT MATRUONG, TENTRUONG FROM TRUONG, THISINH WHERE TRUONG.MATRUONG = THISINH.MATRUONG AND NAMDUTHI = 2010 AND MATRUONG NOT IN ( SELECT MATRUONG FROM THISINH, KETQUA WHERE THISINH.SOBD = KETQUA.SOBD AND NAMDUTHI = 2010 AND DIEMTHI > 0 GROUP BY THISINH.SOBD, MATRUONG HAVING AVG ( DIEMTHI ) < 5 OR COUNT ( THISINH.SOBD ) < 6 ) 10. Cho biết số lượng thí sinh rớt tốt nghiệp của từng trường trong kỳ thi năm 2010. SELECT THISINH.MATRUONG, TRUONG.TENTRUONG, COUNT ( THISINH.SOBD ) AS SOLUONG FROM TRUONG, THISINH WHERE ( THISINH.MATRUONG = TRUONG.MATRUONG ) AND NAMDUTHI = 2010 AND THISINH.SOBD IN ( SELECT THISINH.SOBD FROM THISINH, KETQUA WHERE THISINH.SOBD = KETQUA.SOBD AND DIEMTHI > 0 GROUP BY THISINH.SOBD HAVING AVG ( DIEMTHI ) < 5 OR COUNT ( THISINH.SOBD ) < 6 ) GROUP BY THISINH.MATRUONG, TRUONG.TENTRUONG 11. Cho biết những thí sinh cùng trường với thí sinh có số báo danh là ’ 080191000001 ’ ( list không liệt kê thí sinh là ’ 080191000001 ’ ) SELECT SOBD, HOTEN FROM THISINH WHERE SOBD < > ‘ 080191000001 ‘ AND MATRUONG IN ( SELECT MATRUONG
  48. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 47 FROM THISINH WHERE SOBD = ‘ 080191000001 ‘ ) 12. Cho biết những thí sinh trong họ tên có chữ Thi SELECT * FROM THISINH WHERE HOTEN LIKE ‘ * THI * ‘ 13. Cho biết những thí sinh có điểm TOÁN bằng điểm TOÁN của của thí sinh có số báo danh là ’ 080191000001 ’. SELECT THISINH.SOBD, HOTEN FROM THISINH, KETQUA WHERE THISINH.SOBD = KETQUA.SOBD AND KETQUA.SOBD < > ‘ 080191000001 ‘ AND MAMT = ‘ TOAN ‘ AND DIEMTHI IN ( SELECT DIEMTHI FROM KETQUA WHERE SOBD = ‘ 080191000001 ‘ AND MAMT = ‘ TOAN ‘ ) 14. Cho biết những thí sinh có tổng điểm thi những môn bằng với tổng điểm thi những môn của thí sinh có số báo danh là ’ 080191000001 ’. SELECT SOBD, SUM ( DIEMTHI ) FROM KETQUA WHERE SOBD < > ‘ 080191000001 ‘ GROUP BY SOBD HAVING SUM ( DIEMTHI ) = ( SELECT SUM ( DIEMTHI ) FROM KETQUA WHERE SOBD = ‘ 080191000001 ‘ GROUP BY SOBD ) Ví dụ 6.2 THISINH ( SOBD, HOTEN, LOPCHUYEN )
  49. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 48 MONTHI ( MON, HESO, GHICHU ) KETQUA ( SOBD, MON, DIEM ) Dùng ngôn từ SQL màn biểu diễn những nhu yếu sau : 1. Lập list thí sinh không thỏa điều kiện kèm theo 1 theo miêu tả trên. 2. Lập list thí sinh đạt điểm môn chuyên cao nhất. 3. Lập list thí sinh có tổng điểm thi của ba môn là cao nhất, môn chuyên đã nhân thông số. 4. Lập list thí sinh thỏa điều kiện kèm theo 1 và mức điểm tuyển theo điều kiện kèm theo 2 là 20. 5. Đếm số lượng thí sinh của mỗi lớp chuyên có điểm môn chuyên lớn hơn hoặc bằng 5 và điểm những môn chung đều lớn hơn hoặc bằng 2. 6. Cho biết số lương thí sinh có tổng điểm những môn thi  24 cho từng môn chuyên, thông tin cần : LOPCHUYEN, SOLUONG ; trong đó điểm môn chuyên đã nhân thông số 2. Giải 1. SELECT SOBD, HOTEN FROM THISINH WHERE SOBD IN ( SELECT SOBD FROM KETQUA, MONTHI WHERE ( KETQUA.MON = MONTHI.MON AND DIEM < 5 AND HESO = 2 ) OR ( DIEM < 2 AND HESO = 1 ) ) 2. SELECT THISINH.SOBD, HOTEN, LOPCHUYEN, DIEM FROM KETQUA, THISINH WHERE THISINH.SOBD = KETQUA.SOBD AND MON = LOPCHUYEN AND
  50. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 49 DIEM > = ALL ( SELECT DIEM FROM KETQUA, THISINH WHERE THISINH.SOBD = KETQUA.SOBD AND MON = LOPCHUYEN ) Câu 2 này hoàn toàn có thể giải cách khác bằng cách sử dụng hàm MAX như sau : SELECT THISINH.SOBD, HOTEN, LOPCHUYEN, DIEM FROM KETQUA, THISINH WHERE THISINH.SOBD = KETQUA.SOBD AND MON = LOPCHUYEN AND DIEM = ( SELECT MAX ( DIEM ) FROM KETQUA, THISINH WHERE THISINH.SOBD = KETQUA.SOBD AND MON = LOPCHUYEN ) 3. SELECT THISINH.SOBD, HOTEN, SUM ( DIEM * HESO ) AS TONG FROM KETQUA, THISINH, MONTHI WHERE THISINH.SOBD = KETQUA.SOBD AND KETQUA.MON = MONTHI.MON GROUP BY THISINH.SOBD, HOTEN HAVING SUM ( DIEM * HESO ) > = ALL ( SELECT SUM ( DIEM * HESO ) FROM KETQUA GROUP BY SOBD ) 4. SELECT THISINH.SOBD, HOTEN, SUM ( DIEM * HESO ) AS TONGDIEM FROM THISINH, KETQUA, MONTHI WHERE THISINH.SOBD = KETQUA.SOBD AND KETQUA.MON = MONTHI.MON AND ( ( HESO = 2 AND DIEM > = 5 ) OR ( HESO = 1 AND DIEM > = 2 ) )
  51. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 50 GROUP BY THISINH.SOBD, HOTEN HAVING COUNT ( THISINH.SOBD ) = 3 AND SUM ( DIEM * HESO ) > = 20 5. SELECT LOPCHUYEN, COUNT ( THISINH.SOBD ) AS SOLUONG FROM THISINH, KETQUA, MONTHI WHERE THISINH.SOBD = KETQUA.SOBD AND KETQUA.MON = MONTHI.MON AND DIEM > = 5 AND THISINH.LOPCHUYEN = KETQUA.MON AND THISINH.SOBD NOT IN ( SELECT SOBD FROM KETQUA WHERE HESO = 1 AND DIEM < 2 ) GROUP BY LOPCHUYEN 6. SELECT LOPCHUYEN, COUNT ( SOBD ) AS SOLUONG FROM THISINH WHERE SOBD IN ( SELECT SOBD FROM KETQUA, MONTHI WHERE MONTHI.MON = KETQUA.MON GROUP BY SOBD HAVING SUM ( DIEMTHI * HESO ) > = 24 ) GROUP BY LOPCHUYEN
  52. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 51 BÀI TẬP BT5. 1. Ứng dụng quản trị tác dụng kỳ tuyển sinh cao học Hãy viết những câu truy vấn sau bằng ngôn từ SQL 1. Lập list những thí sinh đạt điểm ngoại ngữ ở kỳ thi năm 2010 2. Lập list những thí sinh ở kỳ thi năm 2010 có điểm thi cả môn đều lớn hơn hoặc bằng 5. 3. Cho biết những thí sinh có điểm ngoại ngữ < 5 hoặc có một mộn thi trình độ nào đó bị điểm 0 ở kỳ thi năm 2010. 4. Lập list những thí sinh có mã ngành là KHMT có điểm thi môn TH01 cao nhất ở kỳ thi năm 2010. 5. Lập list những thí sinh đậu thủ khoa có mã ngành là KHMT ở kỳ thi năm 2010 ( tổng điểm 2 môn trình độ là cao nhất ) ; tất yếu phải đạt điểm chuẩn về ngoại ngữ và không có môn trình độ bị điểm 0. 6. Lập list những thí sinh trúng tuyển ở kỳ thi năm 2010. Danh sách được sắp theo từng ngành. BT5. 2. Ứng dụng quản trị phân công giảng dạy của một khoa Dùng ngôn từ SQL trình diễn những nhu yếu sau : 1. Thông tin về mã học phần, tên học phần, số tiết, số nhóm, họ tên ( những ) giảng viên được phân công giảng dạy học phần đó trong năm học ‘ 2011 - 2012 ’. 2. Danh sách những học phần được phân công cho giảng viên ‘ Nguyễn Viết Thụ ’ trong năm học ‘ 2011 - 2012 ’. Danh sách được sắp theo từng học kỳ. 3. Tổng số tiết được phân công cho mỗi giảng viên trong năm học ‘ 2011 - 2012 ’. 4. Danh sách những giảng viên được phân công nhiều hơn 280 tiết trong năm học ‘ 2011 - 2012 ’. 5. Danh sách những giảng viên có tổng số tiết được phân công là nhiều nhất trong năm học ‘ 2011 - 2012 ’ .
  53. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 52 6. Danh sách những giảng viên không có phân công giảng dạy trong năm học ’ 2011 – 2012 ’. 7. Số nhóm lớp được mở trong học kỳ 3 năm học ‘ 2011 – 2012 ’ cho từng bộ môn. 8. Tổng số tiết học kỳ 3 của năm học ‘ 2011 – 2012 ’ đã được phân công. 9. Bảng phân công cụ thể cho những giảng viên thuộc Bộ môn Khoa học máy tính BT5. 3. Ứng dụng quản trị những đề tài khoa học của khoa 1. Hãy cho biết những giảng viên có triển khai tối thiểu là một đề tài trong năm 2011. 2. Hãy cho biết những giảng viên không được phân công thực thi đề tài trong năm 2011. 3. Danh sách những bộ môn chưa tham gia triển khai đề tài nào, 4. Hãy cho biết list những giảng viên cùng tham gia đề tài có mã là ‘ MS2012-06 ’. 5. Liệt kê list những giảng viên có tham gia những đề tài có mã số là ‘ MS2012-06 ’ và ‘ MS2012-07 ’. 6. Hãy cho biết số lượng đề tài mà mỗi bộ môn triển khai trong năm 2011. 7. Hãy cho biết tổng kinh phí đầu tư những đề tài thực thi trong năm 2011 của từng bộ môn. 8. Hãy liệt kê những giảng viên có tham gia vào những đề tài có kinh phí đầu tư lớn hơn 50 triệu trong năm 2011 ? 9. Liệt kê những đề tài do giảng viên có mã giảng viên là 10281 làm chủ nhiệm trong những năm 2009,2010,2011. 10. Liệt kê list những đề tài cùng với họ và tên của giảng viên làm chủ nhiệm đề tài trong năm 2011. BT5. 4. Ứng dụng quản trị hiệu quả học tập của sinh viên 1. Lập bảng điểm môn 840120 của những sinh viên lớp DCT1081. 2. Lập bảng điểm của sinh viên có mã số sinh viên là 3311418001 .
  54. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 53 3. Đếm số lượng sinh viên của mỗi lớp thuộc khoa công nghệ thông tin có điểm học phần 840120 nhỏ hơn 5. 4. Lập list những sinh viên lớp DCT1081 tích góp được từ 123 tín chỉ trở lên. Cho biết tổng số tín chỉ và điểm trung bình cộng của những học phần của từng sinh viên ( giả sử rằng học phần được tích góp nếu sinh viên đạt điểm học phần đó lớn hơn hoặc bằng 5 ). 5. Lập list những sinh viên thuộc lớp DCT1081 đạt loại giỏi ( sinh viên đạt loại giỏi nếu có tổng điểm trung bình công lớn hơn hoặc bằng 8.0 và không có môn học nào có điểm nhỏ hơn 6.5 ). 6. Tìm những sinh viên lớp DCT1081 có điểm học phần 840120 là cao nhất. 7. Tìm những sinh viên lớp DCT1081 có điểm trung bình cộng là cao nhất. 8. Đếm số lượng sinh viên của mỗi lớp thuộc khoa công nghệ thông tin có điểm trung bình cộng những học phần nhỏ hơn 5. 9. Lập list những sinh viên thuộc lớp DCT1081 không có học phần nào có điểm nhỏ hơn 8.0. 10. Lập list những lớp thuộc khoa công nghệ thông tin có tổng thể sinh viên đều có điểm của toàn bộ những học phần đều lớn hơn hoặc bằng 5.0. BT5. 5. Ứng dụng quản trị coi thi tuyển sinh 1. Lập list những thí sinh ĐK dự thi có số hiệu PHONGTHI là ‘ C.A 508 ’, list cần những thông tin : SOBD, HOTEN, NGAYSINH. 2. Lập list những thí sinh ĐK dự thi có số hiệu PHONGTHI là ‘ 1. A111 ’, list cần những thông tin : SOBD, HOTEN, NGAYSINH, TENNGANH. 3. Danh sách những thí sinh có mã số ngành thi là D480101 4. Phân công giảng viên buổi thi môn TOAN ( mã môn thi ). 5. Danh sách những giảng viên không tham gia coi thi 6. Danh sách những giảng viên đơn vị chức năng khoa công nghệ thông tin tham gia ở từng điểm thi nào
  55. Bài tập Cơ

    sở dữ liệu quan hệ – Trường Đại học Sài Gòn 54
    7. Thông tin của một thí sinh có số báo danh là QHXC.01234 (thông tin
    gồm: họ tên, ngày sinh, tên ngành thi, phòng thi, địa điểm thi, giảng viên
    coi thi từng môn thi).
    8. Đếm số lượng cán bộ coi thi ở mỗi điểm thi.
    9. Đếm số lượng thí sinh ở mỗi phòng thi của điểm thi 0012.
    10.Đếm số lượng thí sinh đăng ký ở mỗi ngành thi.
    BT5.6. Ứng dụng quản lý bảo trì máy tính tại nhà
    1. Số lượt bảo trì của từng nhân viên có trong một tháng m nào đó của năm
    y. Thông tin cần: MANV, HOTEN, SOLUOT (trong đó SOLUOT là
    thuộc tính tự đặt).
    2. Chi tiết về tình hình bảo trì máy tính của các khách hàng trong một tháng
    m nào đó của năm y. Thông tin cần: MAKH, HOTENKH, SONT, NGAY,
    NOIDUNG, SOTIEN.
    3. Tìm danh sách các nhân viên đã tham gia bảo trì cho một khách hàng có
    mã là KH0001 tại một ngày d (ngày/tháng/năm) nào đó. Thông tin cần:
    MANV, HOTEN, ĐIACHI, ĐIENTHOAI.
    4. Các nhân viên chưa từng tham gia bảo trì máy tính cho khách hàng
    5. Các nhân viên đã từng tham gia bảo trì máy tính cho khách hàng Nguyễn
    Văn Hùng
    6. Chi tiết phân công các nhân viên trong một ngày d (ngày/tháng/năm).
    7. Tổng số tiền bảo trì thu được theo từng ngày trong một tháng th nào đó.
    Thông tin cần: NGAY, TONGSO (trong đó TONGSO là thuộc tính tự
    đặt).
    BT5.7.
    THISINH(SOBD, HOTÊN, NGAYSINH, NƠISINH, NĂMDƯTHI,
    MATRƯƠNG)
    TRƯƠNG(MATRƯƠNG,TÊNTRƯƠNG)
    MÔNTHI(MAMT,TÊNMT)
    KÊTQUA(SOBD,MAMT,ĐIÊMTHI, GHICHU)

  56. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học TP HCM 55 1. In hiệu quả thi của thí sinh có SOBD là ‘ 080191000001 ’. Thông tin cần : MAMT, DIEMTHI, GHICHU. 2. In hiệu quả thi của thí sinh có SOBD là ‘ 080191000001 ’. Thông tin cần : MAMT, TENMT DIEMTHI, GHICHU 3. In tác dụng thi toàn bộ những môn của tổng thể những thí sinh. Thông tin cần : SOBD, HOTEN, NGAYSINH, TENTRUONG, TENMT, DIEMTHI 4. In list những thí sinh của trường có mã trường là ‘ 018 ’ có điểm môn TOAN < 5. tin tức cần : SOBD, HOTEN, NGAYSINH, TENTRUONG, DIEMTHI 5. In tác dụng thi môn thi có mã môn thi là TOAN của tổng thể những thí sinh. Thông tin cần : SOBD, HOTEN, TENTRUONG, DIEMTHI 6. In tác dụng thi có mã môn thi là TOAN của tổng thể những thí sinh dự thi năm 2010. Danh sách được sắp theo cột điểm thi giảm dần. Thông tin cần : SOBD, HOTEN, TENTRUONG, DIEMTHI 7. In tổng điểm thi những môn của những thí sinh có mã trường là 018. Thông tin cần : SOBD, HOTEN, TONGDIEM 8. Cho biết những thí sinh dự thi không đủ 6 môn trong năm 2010. Thông tin cần : SOBD, HOTEN, NGAYSINH, TENTRUONG 9. In list những thi sinh không vắng thi môn nào. Thông tin cần : SOBD, HOTEN, NGAYSINH, TENTRUONG 10. Đếm số lượng thí sinh dự thi của từng trường. Thông tin cần : MATRUONG, TENTRUONG, SOLUONG 11. Đếm số lượng thí sinh có tổng điểm những môn thi  48 của từng trường. Thông tin cần : MATRUONG, TENTRUONG, SOLUONG 12. Đếm số lượng thí sinh vắng thi của từng trường. Thông tin cần : MATRUONG, TENTRUONG, SOLUONG 13. Đếm số lượng thí sinh có điểm môn TOAN < 5 của từng trường. Thông tin cần : MATRUONG, TENTRUONG, SOLUONG 14. Tìm list những thí sinh có điểm thi môn TOAN cao nhất. Thông tin cần : SOBD, HOTEN, NGAYSINH, TENTRUONG, DIEMTHI
  57. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 56 15. In list những thí sinh có tổng điểm những môn thi cao nhất. Thông tin cần : SOBD, HOTEN, NGAYSINH, TONGDIEM. 16. In list những trường có thí sinh đỗ thủ khoa trong kỳ thi năm 2010. 17. In list những thí sinh cùng trường với thí sinh đỗ thủ khoa trong kỳ thi năm 2010. 18. In list những trường không có thí sinh rớt tốt nghiệp. BT5. 8. THISINH ( SOBD, HOTÊN, NGAYSINH, NƠISINH, NĂMDƯTHI, MATRƯƠNG ) TRƯƠNG ( MATRƯƠNG, TÊNTRƯƠNG ) MÔNTHI ( MAMT, TÊNMT ) KÊTQUA ( SOBD, MAMT, ĐIÊMTHI, GHICHU ) 1. Cho biết tác dụng thi môn TOAN của những thí sinh dự thi trong năm 2010. 2. Cho biết những thí sinh có điểm thi môn TOAN  9 của trường 018. 3. Tổng điểm thi những môn của từng thí sinh dự thi năm 2010. 4. Cho biết điểm thi những môn của thí sinh có số báo danh là ’ 080191000001 ’. 5. Cho biết những thí sinh có tối thiểu một môn thi nào đó bị điểm 0 ở kỳ thi năm 2010 ( điểm 0 do vắng thi hoặc điểm 0 do bài thi bị chấm điểm 0 ). 6. Cho biết những thí sinh đã đăng dự thi năm 2010 nhưng không dự thi môn nào ( tổng thể những môn đều vắng thi ). 7. Cho biết những thí sinh có điểm toàn bộ những môn thi đều lớn hơn hoặc bằng 8 trong kỳ thi năm 2010. 8. Cho biết những thí sinh dự thi không đủ 6 môn trong năm 2010. 9. Cho biết những môn thi có điểm trung bình của toàn bộ những thí sinh dự thi nhỏ hơn 5.0 trong kỳ thi năm 2010. 10. Cho biết những thí sinh được xếp loại tốt nghiệp ‘ Loại Giỏi ’ trong kỳ thi năm 2010. 11. Lập list những thí sinh có điểm thi môn TOAN cao nhất năm 2010. 12. Cho biết những thí sinh có tổng số điểm những môn thi là cao nhất trong kỳ thi năm 2010 .
  58. Bài tập Cơ sở dữ liệu quan hệ – Trường Đại học Hồ Chí Minh 57 13. Cho biết những trường có tổng thể thí sinh dự thi đều đậu tốt nghiệp trong kỳ thi năm 2010. 14. Cho biết số lượng thí sinh rớt tốt nghiệp của từng trường trong kỳ thi năm 2010. 15. Đếm số lượng thí sinh đậu tốt nghiệp năm 2010 của từng trường. BT5. 9. Dùng ngôn từ SQL để hiển thị những phép toán của đại số quan hệ [ 2 ] .
Luận văn: Bài tập Cơ sở dữ liệu quan hệ, HAY

Bài viết liên quan
Hotline 24/7: O984.666.352
Alternate Text Gọi ngay