**Họ và Tên:** Lê Phước Phát
**Lớp:** 22CLC10
**MSSV:** 22127322
---
<center>
<p>
<b>BÀI TẬP RÀNG BUỘC TOÀN VẸN (13/03/2024)</b>
</p>
</center>
**Bài tập 01:**
<center>
<img src = https://scontent.fsgn5-10.fna.fbcdn.net/v/t1.15752-9/431058907_403778615742759_3292906055130705186_n.png?_nc_cat=107&ccb=1-7&_nc_sid=5f2048&_nc_ohc=BlPGMhe4VJQAX_4iGeK&_nc_ht=scontent.fsgn5-10.fna&oh=03_AdRK4x7ZQFauQ8mP4ZJYxg32sKACEgJnRl6isy-AWKOJHw&oe=66186E44>
</center>
<center>
<p>
<b>BÀI LÀM</b>
</p>
</center>
* **++Câu 01:++** ==Mỗi đơn đặt hàng phải đặt từ một nhà cung cấp==
* ++Loại RBTV:++ ràng buộc toàn vẹn liên quan hệ tham chiếu
* ++Bối cảnh:++ **DONDH**, **NHACC**
* ++Biểu diễn ngôn ngữ phép tính quan hệ (ĐSQH):++ $$\forall(\text{t})(\text{DONDH(t)} \wedge (\exists \text{s})(\text{NCC(s)} \wedge \text{t.MANCC = s.MANCC}))$$
* ++Bảng tầm ảnh hường:++
| IC01 | Thêm | Xóa | Sửa |
|:-----:|:----:|:---:|:--------:|
| DONDH | + | - | +(MANCC) |
| NHACC | - | + | +(MANCC) |
* ++**Câu 02:**++ ==Ngày giao hàng phải sau ngày đặt hàng==
* ++Loại RBTV:++ ràng buộc toàn vẹn liên quan hệ, liên thuộc tính
* ++Bối cảnh:++ **GIAOHANG**, **DONDH**
* ++Biểu diễn ngôn ngữ phép tính quan hệ (ĐSQH):++ $$(\forall \text{t})(\text{GIAOHANG(t)} \wedge (\exists\text{s})(\text{DONDH(s)} $$$$\wedge \text{t.SODDH = s.SODDH} \wedge \text{t.NGAYGH > s.NGAYDH}))$$
* ++Bảng tầm ảnh hường:++
| IC02 | Thêm | Xóa | Sửa |
|:--------:|:----:|:---:|:----------------:|
| GIAOHANG | + | - | +(NGAYGH, SODDH) |
| DONDH | - | - | +(NGAYDH) |
* ++**Câu 03:**++ ==**Mỗi ngày** chỉ nhận tối đa $20$ đơn đặt hàng==
* ++Loại RBTV:++ ràng buộc toàn vẹn liên bộ
* ++Bối cảnh:++ **DONDH**
* ++Biểu diễn ngôn ngữ phép tính quan hệ (ĐSQH):++ $$(\forall \text{t})(\text{DONDH(t)} \wedge \text{card}(\{\text{s} | \text{DONDH(s)} \wedge \text{s.NGAYDH = t.NGAYDH}\})\leq 20)$$
* ++Bảng tầm ảnh hường:++
| IC03 | Thêm | Xóa | Sửa |
|:-----:|:----:|:---:|:---------:|
| DONDH | + | - | +(NGAYDH) |
* ++**Câu 04:**++ ==**Mỗi đơn hàng** có ít nhất $1$ chi tiết đơn hàng==
* ++Loại RBTV:++ ràng buộc toàn vẹn liên quan hệ liên bộ
* ++Bối cảnh:++ **DONDH**, **CT_DDH**
* ++Biểu diễn ngôn ngữ phép tính quan hệ (ĐSQH):++ $$(\forall \text{t})(\text{DONDH(t)} \wedge (\exists \text{s})(\text{CT_DDH(s)} \wedge \text{s.SODDH = t.SODDH}))$$
* ++Bảng tầm ảnh hường:++
| IC04 | Thêm | Xóa | Sửa |
|:------:|:----:|:---:|:--------:|
| DONDH | + | - | +(SODDH) |
| CT_DDH | - | + | +(SODDH) |
* DH1 chưa có CT_DDH. update thành DH2 chưa có CT_DDH -> kiểm tra
* DH1 co CT_DDH -> update thanh DH2: kiem tra RB khoa ngoai
* CT_DDH: update SoDDH 1 -> 2hh
* ++**Câu 05:**++ ==Chỉ giao những mặt hàng mà khách hàng có đặt==
* ++Loại RBTV:++ ràng buộc toàn vẹn liên quan hệ chu trình
* ++Bối cảnh:++ CT_GH, GIAOHANG, CT_DDH
* ++Biểu diễn ngôn ngữ phép tính quan hệ (ĐSQH):++
* $\text{CTGH_GH} \gets \Pi_{\text{SODDH, MAMH}}(\text{CT_GH} \bowtie \text{GIAOHANG})$: 'tập các mặt hàng được giao cho các đơn đặt hàng'
* $$(\forall\text{t})(\text{CTGH_GH}(\text{t}) \wedge (\exists\text{s})(\text{CT_DDH}(\text{s})$$$$ \wedge \text{t.MAMH = s.MAMH} \wedge \text{t.SODDH = s.SODDH}))$$
* ++Bảng tầm ảnh hường:++
| IC05 | Thêm | Xóa | Sửa |
|:--------:|:----:|:---:|:--------------:|
| CT_GH | - | - | +(SODDH, MAMH) |
| GIAOHANG | - | - | +(SODDH) |
| CT_DDH | + | - | +(MAGH, MAMH) |
* ++Sơ đồ thể hiện:++
<center>
<img src = https://scontent.fhan3-4.fna.fbcdn.net/v/t1.15752-9/431277635_721714543491615_1500462613890605762_n.png?_nc_cat=104&ccb=1-7&_nc_sid=5f2048&_nc_ohc=BaBVIaRZVIoAX_H0Zd3&_nc_ht=scontent.fhan3-4.fna&oh=03_AdRmqYf4-yt8wl94hcGZr8nGKjU57zcTd3IXDHGZD8JGhQ&oe=661898DF>
</center>
* ++**Câu 06:**++ ==**Tổng tiền** của đơn hàng bằng tổng $\text{DonGia} \times \text{SoLuong}$ của các chi tiết đơn hàng thuộc đơn hàng đó==
* ++Loại RBTV:++ ràng buộc toàn vẹn liên quan hệ thuộc tính tổng hợp.
* ++Bối cảnh:++ **DONDH**, **CT_DDH**
* ++Biểu diễn ngôn ngữ phép tính quan hệ (ĐSQH):++
* $\text{SUM_DDH(SODDH, TONGTIEN)} \gets _{\text{SODDH}}\mathfrak{J}_{\text{SUM(DONGIA * SOLUONG)}}(\text{CT_DDH})$
* $$(\forall \text{t})(\text{DONDH(t)} \wedge (\exists\text{s})(\text{SUM_DDH(s)} $$$$ \wedge \text{s.SODDH = t.SODDH} \wedge \text{s.TONGTIEN = t.TONGTIEN}))$$
* ++Bảng tầm ảnh hường:++
| IC06 | Thêm | Xóa | Sửa |
|:------:|:----:|:---:|:-------------------------:|
| DONDH | + | - | +(TONGTIEN) |
| CT_DDH | + | + | +(SODDH, DONGIA, SOLUONG) |
* ++**Câu 07:**++ ==Mỗi đơn hàng có tối đa $3$ lần giao hàng==
* ++Loại RBTV:++ ràng buộc toàn vẹn liên bộ
* ++Bối cảnh:++ **GIAOHANG**
* ++Biểu diễn ngôn ngữ phép tính quan hệ (ĐSQH):++ $$(\forall \text{t})(\text{GIAOHANG(t)} \wedge \text{card}(\{\text{s | GIAOHANG(s)} \wedge \text{s.SODDH = t.SODDH}\}) \leq 3)$$
* ++Bảng tầm ảnh hường:++
| IC07 | Thêm | Xóa | Sửa |
|:--------:|:----:|:---:|:--------:|
| GIAOHANG | + | - | +(SODDH) |
* ++**Câu 08:**++ ==Tổng số mặt hàng của đơn hàng phải bằng tổng số mặt hàng của các chi tiết đơn hàng==
* ++Loại RBTV:++ ràng buộc toàn vẹn liên quan hệ thuộc tính tổng hợp
* ++Bối cảnh:++ **DONDH**, **CT_DDH**
* ++Biểu diễn ngôn ngữ phép tính quan hệ (ĐSQH):++
* $\text{SUM_MH(SODDH, TONGSOMH)} \gets _{\text{SODDH}}\mathfrak{J}_{\text{COUNT(MAMH)}}(\text{CT_DDH})$
* $$(\forall \text{t})(\text{DONDH(t)} \wedge (\exists \text{s})(\text{SUM_MH(s)} $$$$\wedge \text{s.SODDH = t.SODDH} \wedge \text{s.TONGSOMH = t.TONGSOMH}))$$
* ++Bảng tầm ảnh hường:++
| IC08 | Thêm | Xóa | Sửa |
|:------:|:----:|:---:|:------------------:|
| DONDH | + | - | +(SODDH, TONGSOMH) |
| CT_DDH | + | + | +(SODDH, MAMH) |
* ++**Câu 09:**++ ==**Nhà cung cấp** chỉ bán các mặt hàng có khả năng cung ứng/ Chỉ đặt những mặt hàng mà nhà cung cấp có khả năng cung ứng==
* ++Loại RBTV:++ ràng buộc toàn vẹn liên quan hệ chu trình
* ++Bối cảnh:++ **DONDH**, **CT_DDH**, **CUNGUNG**
* ++Biểu diễn ngôn ngữ phép tính quan hệ (ĐSQH):++
* $\text{DH_MH} \gets \Pi_{\text{MANCC, MAMH}}(\text{DONDH} \bowtie_{\text{SODDH = SODDH}} \text{CT_DDH})$ : 'tập những mặt hàng của nhà cung cấp đã được đặt'
* $$(\forall \text{t})(\text{DH_MH(t)} \wedge (\exists \text{s})(\text{CUNGUNG(s)} $$$$ \wedge \text{s.MANCC = t.MANCC} \wedge \text{s.MAMH = t.MAMH}))$$
* ++Bảng tầm ảnh hường:++
| IC09 | Thêm | Xóa | Sửa |
|:-------:|:----:|:---:|:--------------:|
| DONDH | - | - | +(MANCC) |
| CT_DDH | + | - | +(SODDH, MAMH) |
| CUNGUNG | - | + | +(MANCC, MAMH) |
<center><img src = https://scontent.xx.fbcdn.net/v/t1.15752-9/432398349_1229990757975654_7820998624429206419_n.png?_nc_cat=103&ccb=1-7&_nc_sid=5f2048&_nc_ohc=6HvL6gogB1UAX-6hcKj&_nc_ad=z-m&_nc_cid=0&_nc_ht=scontent.xx&oh=03_AdSWonty4BMr2bpDWhNKS9q81TXHtsWub3jKGmlHJNoPew&oe=661E0150></center>
* ++**Câu 10:**++ ==**Nếu tổng tiền** của lần giao hàng trên $5000000$ và ngày giao hàng quá $30$ ngày so với ngày đặt hàng thì mức chiết khấu $= 1\%$, quá $40$ ngày thì mức chiết khấu là $2\%$==
* ++Loại RBTV:++ ràng buộc toàn vẹn liên quan đến một quan hệ miền giá trị và liên quan hệ liên thuộc tính.
* ++Bối cảnh:++ **GIAOHANG**, **DONDH**
* ++Biểu diễn ngôn ngữ phép tính quan hệ (ĐSQH):++ $$(\forall \text{t})(\text{GIAOHANG(t)} \wedge \text{t.TONGTIEN > 5000000} $$$$\wedge (\exists \text{s})(\text{DONDH(s)} \wedge \text{s.SODDH = t.SODDH} $$$$\wedge ((\text{(t.NGAYGH - s.NGAYDH)} > 30 \wedge \text{(t.NGAYGH - s.NGAYDH)} \leq 40 $$$$\implies \text{t.MUCCK} = 1\%) \vee(\text{(t.NGAYGH - s.NGAYDH)} > 40 \implies \text{t.MUCCK} = 2\%))))$$
* ++Bảng tầm ảnh hường:++
| IC10 | Thêm | Xóa | Sửa |
|:--------:|:----:|:---:|:---------------------------------:|
| GIAOHANG | + | - | +(SODDH, TONGTIEN, NGAYGH, MUCCK) |
| DONDH | - | - | +(SODDH, NGAYDH) |