Bài tập đại số quan hệ có lời giải

Academia.edu no longer supports Internet Explorer.

To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.

Mục Lục

  • 1. Đại số quan hệ là gì?
  • 2. Các phép toán cơ bản
  • 3. Một số phép toán khác
  • Tổng kết

1. Đại số quan hệ là gì?


Đại số quan hệ là ngôn ngữ hình thức cho mô hình quan hệđược phát triển trước SQL. Đại số quan hệ còn có thể được hiểu là tập các thao tác trên mô hình quan hệ, được sử dụng như là cơ sở cho việc cài đặt và tối ưu các câu lệnh truy vấn.


Một số khái niệm của đại số quan hệ được tích hợp vào các câu lệnh truy vấn của SQL, do đó việc tìm hiểu về đại số quan hệ là bệ phóng để xây dựng và thực thi các câu lệnh SQL một cách có hiệu quả.





Đại số quan hệ được định nghĩa bằng công thức:α = [R, O]


Trong đó:


  • R: Là các quan hệ trong CSDL hoặc kết hợp với các phép toán quan hệ
  • O: Là tập các phép toán quan hệ với đầu vào là một hoặc nhiều quan hệ để được đầu ra là một quan hệ mới – quan hệ kết quả.

2. Các phép toán cơ bản


Phép toán một ngôi:


Là phép toán chỉ thao tác trên một quan hệ. Đầu vào là một quan hệ và trả về kết quả là một quan hệ mới. Phép toán một ngôi bao gồm các phép toán cơ bản:


  • Phép chọn [Selection]: Được sử dụng để chọn ra một tập hợp con các bộ từ một quan hệ thoả mãn một điều kiện chọn. Kí hiệu: ϭ


Cho quan hệ R[U] và E – biểu thức logic gồm [=, ^, ≠, ⌐, v] à Phép chọn ϭ trên quan hệ R theo điều kiện E, kí hiệu ϭE[R] có kết quả là một tập hợp con của R, gồm các bộ t thuộc R thoã điều kiện E.


ϬE[R] = {t / t R ^ t[E] }



Ví dụ: Tìm các sinh viên sinh năm 2000 của quan hệ sinh viên ta làm như sau:

Ϭsinhvien=2000[SINHVIEN]



  • Phép chiếu [Projection]: Được sử dụng để chọn một vài cột hay thuộc tính từ một bảng, ký hiệu π


Cho quan hệ R[U], X là tập con của U, X khác rỗng à Phép chiếu π trên quan hệ R theo tập thuộc tính X, kí hiệu πX[R] có kết quả là tập hợp các bộ t thuộc R nhưng chỉ lấy giá trị trên X.


πX[R] = { t / t ꞓ R ^ t[X] }

πX[R] chỉ gồm các bộ phân biệt – các bộ trùng nhau trong kết quả chỉ giữ lại một.


Ví dụ:


a] Liệt kê mã số và tên của tất cả sinh viên:


πMSSV, hoten[SINHVIEN]



b] Liệt kê mã và tên của các sinh viên sinh năm 2000:

π MSSV, hoten[ϭnamsinh=2000[SINHVIEN]]


  • Phép đặt lại tên: Là phép dùng để đặt lại tên cho thuộc tính hoặc quan hệ nào đó.



Trong đó:

  • ᵽS[A1, A2,…An][R]: Đặt lại tên quan hệ và thuộc tính
  • ᵽS[R] : Đặt lại tên quan hệ và giữ nguyên các thuộc tính


Ví dụ:


  • ᵽS[πMSSV, hoten[SINHVIEN] ]
  • ᵽS[ma, ten] [πMSSV, hoten[SINHVIEN] ] à MSSV, hoten được đặt lại là ma, ten.


Thêm nữa, chúng ta có phép toán trên tập hợp.


  • Các phép toán trên tập hợp: Bao gồm giao, hợp, trừ - và chỉ sử dụng được khi đó là 2 quan hệ tương thích [hai quan hệ cùng bậc và các thuộc tính thư j có cùng miền giá trị]


Phép hợp: Hợp của hai quan hệ tương thích R và S gồm các bộ thuộc ít nhất một trong hai quan hệ đã cho.


Ví dụ: Khi dùng phép hợp để liệt kê danh sách tên sinh viên và giáo viên:


πhoten[SINHVIEN] ᴗ πhoten[GIAOVIEN]



Phép giao: Giao của hai quan hệ S và R gồm các bộ thuộc về cả hai quan hệ đã cho.


Ví dụ: Tìm MSSV vừa học CSDL, vừa học JAVA


πmssv[ϭmonhoc=’CSDL’[SINHVIEN]] ᴖ πmssv[ϭmonhoc=’JAVA’[SINHVIEN]]


Phép trừ [Hiệu]: Của hai quan hệ tương thích R và S, kí hiệu R \ S gồm các bộ chỉ thuộc R không thuộc S.


Ví dụ: R \ S theo dữ liệu trong bảng sau:

3. Một số phép toán khác


* Các phép toán kết nối Theta:


Cho quan hệ R[U] và S[V]


θ là một trong các phép toán so sánh : Thông thường, để bắt đầu HỌC LẬP TRÌNHvà ở mức Junior thì bạn có thể bỏ qua bài này :D. Khi nào bạn đã là lập trình viên rồi, cần tối ưu truy vấn [chuyện sau này] thì có thể xem lại sau.



---

HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI

Học Lập trình chất lượng cao [Since 2002]. Học làm Lập trình viên. Hành động ngay!

Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội

SĐT: 02435574074 - 0914939543

Email:

Website://niithanoi.edu.vn

Fanpage: //facebook.com/NIIT.ICT/

#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python

Video liên quan

Chủ Đề