Uploaded by Nguyễn Đình Long Vũ K17HL

lab2 trl

advertisement
Câu a
σ(Giá bán > Giá mua)(Sản phẩm)
Giải trình:
σ biểu thị thao tác lựa chọn. Trong trường hợp này, chúng tôi muốn chọn các hàng từ mối quan hệ Sản
phẩm trong đó giá bán lớn hơn giá mua.
Giá bán và Giá mua là các thuộc tính/cột trong quan hệ Sản phẩm.
Vì vậy, biểu thức σ(SellPrice > PurchasePrice)(Product) sẽ cung cấp cho bạn tập hợp con của mối quan hệ
Sản phẩm trong đó giá bán cao hơn giá mua.
Câu b
Biểu thức logic σ(SupplierName = 'SamSung' and (Type = 'television' or Type = 'mobile' or Type =
'tablet')) (Product) được giải thích như sau:
1. Đầu tiên, chúng ta sử dụng mệnh đề σ (selection) để lọc các hàng trong bảng "Product".
2. Chúng ta chỉ quan tâm đến các hàng có "SupplierName" là 'SamSung', vì điều này đại diện cho các sản
phẩm được cung cấp bởi Samsung.
3. Sau đó, chúng ta áp dụng điều kiện cho cột "Type" để xác định loại sản phẩm cụ thể mà chúng ta quan
tâm. Cụ thể, chúng ta muốn lấy những hàng mà "Type" là 'television', 'mobile' hoặc 'tablet'.
4. Kết quả của biểu thức này là một tập hợp các hàng trong bảng "Product" mà thỏa mãn cả hai điều
kiện: "SupplierName" là 'SamSung' và "Type" là 'television', 'mobile' hoặc 'tablet'.
Vì vậy, biểu thức trên giải thích rằng chúng ta đang lọc và trả về các sản phẩm thuộc loại 'television',
'mobile' hoặc 'tablet' được cung cấp bởi Samsung trong bảng "Product".
Cau d
Biểu thức R1 := p(InvoiceLine)σ(InvoiceLine.Productcode = R1.Productcode && InvoiceLine.InvoiceId =
R1.InvoiceID && InvoiceLine.quantity != R1.quantity)(R1⋈InvoiceLine) = ∅ biểu thị các thao tác lựa chọn
và chiếu được áp dụng vào mối quan hệ "InvoiceLine".
Biểu thức này lọc ra các bản ghi trong đó một sản phẩm xuất hiện nhiều lần trong hóa đơn. Truy vấn con
R1 chọn các bản ghi từ "InvoiceLine" trong đó mã sản phẩm, ID hóa đơn và số lượng không bằng bất kỳ
bản ghi nào khác có cùng mã sản phẩm và ID hóa đơn.
Sau đó, thao tác nối (R1⋈InvoiceLine) kết hợp các bản ghi kết quả từ R1 với mối quan hệ "InvoiceLine"
ban đầu, liên kết chúng dựa trên mã sản phẩm và ID hóa đơn trùng khớp.
Cuối cùng, biểu thức (R1⋈InvoiceLine) = ∅ kiểm tra xem mối quan hệ nối kết quả có trống hay không.
Nếu đúng thì có nghĩa là không có sản phẩm nào xuất hiện nhiều lần trong một hóa đơn.
Nói cách khác, dựa trên biểu thức đã cho, không có sản phẩm trùng lặp nào trong mối quan hệ
"InvoiceLine", đảm bảo rằng mỗi sản phẩm chỉ xuất hiện một lần trong hóa đơn.
e
Biểu thức đúng sẽ là: σ(quantity > 0)(InvoiceLine) = ∅
Điều này có nghĩa là thao tác lựa chọn phải được thực hiện trên mối quan hệ "InvoiceLine" để chọn tất
cả các hàng có số lượng của mỗi sản phẩm lớn hơn 0. Nếu không có hàng nào phù hợp với điều kiện này
thì kết quả sẽ là tập trống (∅), cho biết rằng không có sản phẩm nào có số lượng nhỏ hơn hoặc bằng 0
trong bất kỳ hóa đơn nào.
f πProductCode(InvoiceLine) - πProductCode(Product) = ∅
Biểu thức này biểu thị tập hợp mã sản phẩm có trong quan hệ "InvoiceLine" nhưng không có trong quan
hệ "Sản phẩm". Phép toán chênh lệch (dấu trừ) được sử dụng để tìm bộ mã sản phẩm xuất hiện trong
"InvoiceLine" nhưng không có mục nhập tương ứng trong mối quan hệ "Sản phẩm".
Nếu kết quả của biểu thức này là tập trống (∅), điều đó có nghĩa là không có mã sản phẩm nào trong mối
quan hệ "InvoiceLine" mà không có trong mối quan hệ "Sản phẩm". Nói cách khác, mỗi mã sản phẩm
trong "InvoiceLine" đều có mục nhập tương ứng trong quan hệ "Sản phẩm", đảm bảo không có hóa đơn
nào không có sản phẩm.
Cau h
Đúng rồi! Biểu thức σ(SellPrice > PurchasePrice * 2) = ∅ thể hiện thao tác lựa chọn được áp dụng cho
quan hệ "Sản phẩm".
Biểu thức này lọc ra các bản ghi có giá bán lớn hơn hai lần giá mua. Kết quả là một tập trống (∅), cho
biết rằng không có bản ghi nào trong mối quan hệ "Sản phẩm" mà giá bán vượt quá hai lần giá mua.
Nói cách khác, dựa trên biểu thức đã cho, không có sản phẩm nào trong cơ sở dữ liệu có giá bán lớn hơn
hai lần giá mua.
Download