Rang buoc toan ven

  • 4,724 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
4,724
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
4
Likes
12

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. www.elarion.com Cơ sở dữ liệu [email_address] Never stop improving quality
  • 2. Nội dung
    • Khái niệm cơ bản
    • Đại số quan hệ
    • Ngôn ngữ truy vấn SQL
    • Ràng buộc toàn vẹn
    • Phụ thuộc hàm và chuẩn hóa CSDL
  • 3. Khái niệm về RBTV (1/1)
      • Khái niệm:
        • Ràng buộc toàn vẹn (RBTV) là một qui tắc định nghĩa trên một hay nhiều quan hệ do môi trường ứng dụng qui định.
        • RBTV là qui tắc để đảm bảo tính nhất quán của dữ liệu trong CSDL.
        • Mỗi RBTV được định nghĩa bằng một thuật toán bên trong CSDL.
        • VD: Mỗi lớp học có 1 mã số duy nhất để phân biệt với các lớp học khác.
    Không được trùng MALOP LOPHOC MALOP TENLOP 08TH1D Tin học khóa 2008 08TA1D Trung Anh khóa 2008 08TA1D Trung Anh khóa 2009
  • 4. Kiểm tra RBTV (1/1)
    • Phương pháp kiểm tra RBTV
      • Hệ quản trị CSDL có các cơ chế tự động kiểm tra các RBTV về miền giá trị của Khóa nội,khóa ngoại, NOT NULL qua khai báo cấu trúc bảng.
      • Thông qua những thủ tục kiểm tra và xử lý vi phạm RBTV do những người phân tích và thiết kế cài đặt.
    • Thời điểm kiểm tra RBTV:
      • Ngay khi thực hiện 1 thao tác cập nhật CSDL (thêm, sửa, xóa).
      • Thao tác cập nhật được xem là hợp lệ nếu không vi phạm ràng buộc nào.
      • Đối với những trường hợp vi phạm hệ thống sẽ có hướng xử lý thích hợp.
  • 5. Các yếu tố của RBTV (1/11)
    • Các yếu tố của RBTV:
      • Điều kiện: tức là nội dung của RBTV từ đó xác định cách biểu diễn.
      • Bối cảnh: RBTV xảy ra trên một hay nhiều quan hệ, cụ thể là các quan hệ nào.
      • Tầm ảnh hưởng: khả năng tính toàn vẹn dữ liệu bị vi phạm.
      • Hành động: cần phải có khi phát hiện có RBTV bị vi phạm.
  • 6. Các yếu tố của RBTV (2/11)
    • Điểu kiện của RBTV:
      • Là sự mô tả và biểu diễn hình thức nội dung của nó.
      • Có thể được biểu diễn bằng:
        • Ngôn ngữ tự nhiên
        • Thuật giải
        • Ngôn ngữ đại số tập hợp, đại số quan hệ.
        • Các phụ thuộc hàm
      • VD: Cho 1 CSDl quản lý hóa đơn bán hàng gồm các bảng sau.
    HOADON SOHOADON SOMATHANG TONGTRIGIA DANHMUCHANG MAHANG TENHANG DONVI CHITIETHOADON SOHOADON MAHANG SOLUONGDAT DONGIA TRIGIA
  • 7. Các yếu tố của RBTV (3/11)
        • Ràng buộc R1: “Mỗi hóa đơn có một số hóa đơn riêng biệt không trùng với hóa đơn khác”:
        • Biễu diễn: ∀ hđ1, hđ2 ∈ HOADON, hđ1 ≠ hđ2
      • ⇒ hđ1.SOHOADON ≠ h đ 2.SOHOADON.
        • Ràng buộc R2:”SOMATHANG = số bộ của CHITIETHOADON có cùng SOHOADON
        • Biểu diễn: ∀ hđ ∈ HÓAĐƠN thì:
      • h đ.S OMATHANG = COUNT (cthđ ∈ CHITIETHOADON ,
      • cthđ. SOHOADON = hđ. SOHOADON )
    HOADON SOHOADON SOMATHANG TONGTRIGIA CHITIETHOADON SOHOADON MAHANG SOLUONGDAT DONGIA TRIGIA
  • 8. Các yếu tố của RBTV (4/11)
        • Ràng buộc R3 : “Tổng các trị giá của các mặt hàng trong CHIT IET H OA Đ ON có cùng SOHOADON phải bằng Tổng-trị-giá ghi trong HOADON ”:
        • Biểu diễn: ∀ hđ ∈ H O AĐ O N thì: hđ.T ONGTRIGIA = SUM
        • ( CHITIETHOADON.TRIGIA ) đối với các cthđ ∈ CHITIETHOADON s ao cho: cthđ. SOHOADON = hđ. SOHOADON
    HOADON SOHOADON SOMATHANG TONGTRIGIA A001 3 1.400.000 A002 1 600.000 CHITIETHOADON SOHOADON MAHANG SOLUONGDAT DONGIA TRIGIA A001 KTS035 2 500.000 1.000.000 A001 MG047 1 400.000 400.000 A002 LCD022 1 600.000 600.000
  • 9. Các yếu tố của RBTV (5/11)
        • Ràng buộc R4: “Mỗi bộ của CHITIETHOADON phải có MAHANG thuộc về DANHMUCHANG ”:
        • Biểu diễn: CHITI ETHOADON [ MAHANG ] ⊆ DM HAN G [ MAHANG ]
          • ∀ cthđ ∈ CHI TIETHOADON , ∃ hh ∈ DANHMUCHANG , sao cho cthđ . M AHANG = hh. MAHANG
    DANHMUCHANG MAHANG TENHANG DONVI KTS035 Máy ảnh KTS Cannon cái LCD022 Tivi LCD SamSung cái CHITIETHOADON SOHOADON MAHANG SOLUONGDAT DONGIA TRIGIA A001 KTS035 2 500.000 1.000.000 A002 LCD022 1 600.000 600.000
  • 10. Các yếu tố của RBTV (6/11)
        • Bối cảnh của RBTV:
          • Trong ví dụ trên bối cảnh của các ràng Trong ví dụ trên, bối cảnh của các ràng buộctoànvẹnnhư sau
            • R1 :chỉ là một quanhệ HOADON
            • R2 : 2 quan hệ H OADON và CHITIETHOADON.
            • R3 : 2 quan hệ H OADON và CHITIETHOADON ;
            • R4 : 2 quan hệ CHIT IETHOADON và DANHMUCHANG .
  • 11. Các yếu tố của RBTV (7/11)
      • Tầm ảnh hưởng của RBTV:
        • Một RBTV có thể liên quan đến một số quan hệ, và chỉ khi có thao tác cập nhật (Thêm, Sửa, Xóa) mới có nguy cơ dẫn đến vi phạm RBTV .
        • C ần xác định rõ thao tác nào dẫn đến việc cần xác định rõ thao tác nào dẫn đến việc c ần phải kiểm tra RBTV.
        • Trong quá trình phân tích thiết kế một CSDL, người phân tích cần lập bảng xác định tầm ảnh hưởng cho mỗi ràng buộc toàn vẹn nhằm xác định khi nào thì phải tiến k iểm tra các ràng buộc toàn vẹn đó
  • 12. Các yếu tố của RBTV (8/11)
        • Bảng tầm ảnh hưởng:
          • Bảng tầm ảnh hưởng gồm 4 cột : c ột 1 chứa tên các bảng liên quan tới RBTV; 3 cột tiếp theo là thao tácThêm/ Sửa / Xóa1 bộ giá trị
          • Nếu RBTV có nguy cơ bị vi phạm thì tại ô đó người ta đánh dấu bằng dấu cộng (+)
          • Có thể chỉ rõ thêm các thuộc tính nào nếu được cập nhật mới dẫn đến vi phạm RBTV bằng cách liệt kê chúng dưới dấu (+).
          • Nếu RBTV không có nguy cơ bị vi phạm kh icập nhật CSDL thì đánh dấu trừ (-) .
          • Nếu không bị vi phạm vì không được phép sửa đổi thì ký hiệu là trừ với dấu sao ( -(*) ).
          • VD: <Xem trang sau>
  • 13. Các yếu tố của RBTV (9/11)
      • Bảng tầm ảnh hưởng của R1,R2,R3,R4:
    R1 Quan hệ Thêm Sửa Xóa HOADON + (SOHOADON) - (*) - R2 Quan hệ Thêm Sửa Xóa HOADON + +(SOMATHANG) - CHITIETHOADON + - + R3 Quan hệ Thêm Sửa Xóa HOADON + +(TONGTRIGIA) - CHITIETHOADON + +(TRIGIA) + R4 Quan hệ Thêm Sửa Xóa CHITIETHOADON + (MAHANG) - (*) - DANHMUCHANG - - (*) +
  • 14. Các yếu tố của RBTV (10/11)
      • Bảng tầm ảnh hưởng tổng hợp.
    QH HOADON CHITIETHOADON DANHMUCHANG RB Thêm Sửa Xóa Thêm Sửa Xóa Thêm Sửa Xóa R1 + - (*) - R2 + + - + - + R3 + + - + + + R4 + - (*) - - - (*) +
  • 15. Các yếu tố của RBTV (11/11)
      • Hành động khi RBTV bị vi phạm:
        • Hành động (phản ứng) gồm 2 phần :
          • Thôngbáo: thông báo cho người dùng biết dữ liệu vi phạm RBTV nào và cần sửa lại như thế nào
          • Xử lý: Đưa ra phương án xử lý khi RBTV bị vi phạm, có thể từ chối thao tác hoặc tiếp tục cho hiệu chỉnh dữ liệu
        • Thông thường có 2 giải pháp:
          • Đưa ra thông báo và yêu cầu sửa chữa dữ liệu cho phù hợp với RBTV. Thông báo phải đầ y đủ v à tạo đ ượ c s ự thân thiện v ới ng ư ời sử dụng.Giải pháp này là phù hợp cho việc xử lý thời gian thực.
          • Từ chối thao tác cập nhật.Giải pháp này là phù hợp đối với việc xử lý theo lô (Batch processing).
  • 16. Phân loại ràng buộc toàn vẹn (1/1)
    • RBTV có bối cảnh là 1 bảng:
      • RBTV về miền giá trị RBTV về miền giá trị
      • RBTV liên thuộc tính
      • RBTV liên bộ
    • RBTV có bối cảnh là nhiều bảng:
      • RBTV về phụ thuộc tồn tại
      • RBTV liên thuộc tính – liên quan hệ
      • RBTV liên bộ – liên quan hệ
      • RBTV do có chu trình
  • 17. RBTV về miền giá trị (1/1)
    • RBTV về miền giá trị
      • Trong hầu hết các CSDL quan hệ loại RBTV này là rất phổ biến.
      • Mỗi thuộc tính được đặc trưng không chỉ bởi kiểu giá trị,mà còn bị giới hạn bởi m iền giá trị trong kiểu dữ liệu đó.
      • Do đó,khi thực hiện các thao tác cập nhật(thêm, xóa, sửa) cho quan hệ đều phải k iểm tra RBTV này.
      • VD: Trong quan hệ K et QU A -THI(MASV, MAMH, LANTHI, DIEM), do quy định mỗi sinh viên chỉ được thi 1 môn tối đa 3 lần, và điểm thi của môn học trong mọi lần thi không bị âm và khôngvượtquá10.
        • Có 2 RBTV về miềngiátrị trongquanhệ:
        • R1: ∀ kq ∈ KQUẢ-THI thì0 ≤ kq.Lầnthi ≤ 3
        • R2: ∀ kq ∈ KQUẢ-THI thì0 ≤ kq.Điểm ≤ 10
  • 18. RBTV liên thuộc tính (1/1)
    • RBTV liên thuộc tính
      • Đó là loại RBTV có liên quan tới nhiều thuộc t ính của một quan hệ.
      • Thông thường đó là các phụ thuộc tính toán, hoặc một suy diễn từ giá trị của một hay nhiều thuộc tính trong cùng một bộ giá trị .
      • VD:
        • Quan hệ NHANVIEN ( M A NV, H OTEN , PHAI , NGAYSINH , N GAY-TD , HESOLUONG ) Với quy định18 tuổi trở lên mới được tuyển. Ta có RBTV liên thuộc tính sau:
        • ∀ nv ∈ NHANVIEN /Year( nv.N GAY -TD )–Year( nv . N GAYSINH ) ≥ 18
    NHANVIEN MANV HOTEN PHAI NGAYSINH NGAY-TD HESOLUONG KT025 Trần Tiến 1 02/12/1978 11/05/2008 3.0 HM011 Trần Thu Hà 0 16/04/1989 12/10/2010 1.8
  • 19. RBTV liên bộ (1/1)
    • RBTV liên bộ
      • Liên quan tới nhiều bộ và c ó thể tới nhiều thuộc tính của (các) bộ giá trị t rong mộ t quan hệ.
      • Vídụ: Qui định đ iểm thi phải >=0 và <= 10 và điểm thi lần sau > = lần trước:
        • ∀ kq ∈ K ET QU A THI
        • Nếu kq.L ANTHI = 1 thì 0 ≤ kq.Đ IEM ≤ 10 hoặc:
        • Nếu kq.L ANTHI > 1 thì ∃ kq’ ∈ K ET QU A THI
        • Sao cho kq’. LANTHI =kq. LANTHI và kq. DIEM ≥ kq’. DIEM
    KETQUATHI Status MSSV LANTHI DIEM LANTHI DIEM 080095T 1 9 OK 080173T 1 5 2 10 OK 090051T 1 4 2 3 NOT OK
  • 20. RBTV về phụ thuộc tồn tại (1/1)
    • RBTV về phục thuộc tồn tại:
      • RBTV về phụ thuộc tồn tại còn được gọi là phụ thuộcvề khóa ngoại. Đây là loại RBTV phổ biến trong các CSDL.
      • ™ Bộ giá trị của quan hệ này được thêm vào một cách hợp lệ nếu tồn tại một bản ghi tương ứng của 1 quan hệ khác.
      • ™Phụ thuộc tồn tại xảy ra nếu có một trong hai trường hợp sau:
        • Có sự hiệndiệncủa khóa ngoại.
        • Có sự lồng khóa giữa các quan hệ.
      • VD: mỗi lớp phải thuộc một khoa
    LOP MALOP TENLOP 08TH1D Tin học khóa 2008 08TA1D Anh văn khóa 2008 DANHSACHLOP-KHOA MALOP TENKHOA 08TH1D Công nghệ thông tin 08TA1D Ngoại ngữ
  • 21. RBTV liên thuộc tính – liên quan hệ (1/1)
    • RBTV liên thuộc tính – liên quan hệ:
      • Một thuộc tính trong 1 quan hệ này có mối liên hệ với 1thuộc tính trong 1 quan hệ khác.
      • Ví dụ: Ngày giao hàng phải sau ngày đặt H OADON . NGAYGIAO >= DATHANG . NGAYDAT
    HOADON MAHOADON MADON-DH NGAYGIAO MAHANG SOLUONG THANHTIEN HD053 DH033 26/09/2010 TV017 1 3.950.000 HD053 DH034 26/09/2010 MG005 1 3.500.000 HD054 DH035 27/09/2010 DT012 1 1.100.00 DATHANG MADON-DH MAHANG SOLUONG NGAYDAT NGUOIDAT DH033 TV017 1 20/09/2010 Nguyễn Văn Minh DH034 MG005 1 20/09/2010 Nguyễn Văn Minh DH035 DT012 1 21/09/2010 Trịnh Bảo Chi
  • 22. RBTV liên bộ - liên quan hệ(1/1)
    • RBTV liên bộ – liên quan hệ:
      • Một thuộc tính của quan hệ này có mối liên hệ với các bộ của 1 quan hệ khác.
      • Ví dụ:  Mỗi phiếu mượn chỉ được mượn tối đa 3 quyển sách.
    PHIEUMUON MAPM SOLUONG NGAYMUON TENNGUOIMUON PM032 3 22/06/2010 Lê Văn Linh PM033 1 22/06/2010 Lý Minh Hà CHITIET-PHIEUMUON MAPM TENSACH NXB PM032 Giáo trình Mỹ học Giáo dục PM032 Không gia đình Văn học PM032 Cánh đồng bất tận Hôi nhà văn PM033 Cơ sở tin học Giáo dục
  • 23. RBTV do có chu trình (1/4)
    • RBTVdo có chu trình
      • Biểu diễn cấu trúc CSDL dưới dạng đồ thị ™ như sau: Mỗi nút của đồ thị biểu diễn1 quan hệ hoặc1 thuộc tính
      • Quan hệ được biểu diễn bằng nút tròn trắng
      • Thuộc tính được biểu diễn bởi một nút tròn đen nhỏ hơn.
      • Các nút đượcchỉ rõ bằng tên của quan hệ hoặc thuộc tính. Thuộc tính thuộc một quan hệ được biểu diễn bởi một cung nối giữa nút tròn trắng và nút tròn đen đó.
      • Nếu trên đồ thị ta thấy xuất hiện 1 đường Nếu trên đồ thị, ta thấy xuất hiện 1 đường khép kín thì ta nói rằng trong lược đồ CSDL có sự hiện diện của chu trình.
      • Sự hiện diện này làm nảy sinh một vấn đề mới: Xác định khả năng đảm bảo tính nhất quán của dữ liệu, đó là một RBTV, do sự hiện diện của chu trình.
  • 24. RBTV do có chu trình (2/4)
    • Ví dụ:
    • Q1 (Mã-nhân-viên, Mã-phòng)
    • Q2 (Mã-phòng, Mã-đề-án)
    • Q3 (Mã-đề-án, Tên-đề-án)
    • Q4 (Mã-đề-án, Mã-nhân-viên)
  • 25. RBTV do có chu trình (3/4)
    • Giả thiết 1: Với tân từ sau:
      • Mỗi nhân viên được phân công vào tất cả các đề án do phòng đó phụ trách.
      • 2 con đường mang ý nghĩagiống nhau. Đường dài hơn Q1 kết nối với Q2 (ký hiệu là Q1 I><I Q2) ? con đường ngắn hơn Q4 khi cùng xác định 1 đề án mà 1 nhân viên tham gia vào. Đây là một chu trình giả.
      • Nếu vẫn muốn giữ lại quan hệ Q4, tức là không hủy bỏ chu trình, thì phải có một RBTV với thuật toán sau:
      • Q1 I><I Q2 [Mã-nhân-viên, Mã-đề-án] = Q4 [Mã-nhân-viên, Mã-đề-án]
  • 26. RBTV do có chu trình (4/4)
    • Giả thiết 2: Với tân từ sau:
      • Mỗi nhân viên được phân công vào một số đề án do phòng đó phụ trách.
      • Con đường ngắn Q4 phụ thuộc vào con đường dài Q1 I><I Q2, vì 1 nhân viên có thể không tham gia vào tất cả các đề án do phòng mình phụ trách. Chu trình trên mang ý nghĩa thực sự.
      • RBTV được thể hiện bởi thuật toán sau:
      • Q4 [Mã-nhân-viên, Mã-đề-án] ? Q1 I><I Q2 [Mã-nhân-viên Mã-đề-án]
    • Giả thiết3: Với tântừ sau:
      • Mỗi nhân viên được phân công vào những đề án bất kỳ.
      • 2 con đường hoàn toàn độclập nhau, không liên quan gì tới nhau, mang ý nghĩa hoàn toàn khác nhau.
      • Do đó không có RBTV.
  • 27. Tài liệu tham khảo (1/1)
        • Tài liệu tham khảo:
          • Giáo trình CSDL , ThS.Lê Thị Ngọc Thảo - ĐH Tôn Đức Thắng.