1. Trang chủ
  2. » Công Nghệ Thông Tin

Ràng buộc toàn vẹn cơ sở dữ liệu

15 368 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 168,6 KB

Nội dung

Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin

Trang 1

Ràng bu c toàn v n (Integrity Constraint)

N i dung trình bày

̇ Gi i thi u

̇ Các y u t c a RBTV

̇ Phân lo i RBTV

̇ Cài đ t RBTV

Trang 2

Gi i thi u

̇ RBTV

• Các đi u ki n m i tr ng thái c a quan h đ u ph i th a b t k th i đi m nào.

• Xu t phát t các qui t c qu n lý đ c áp đ t lên các đ i t ng trong th

gi i th c.

̇ M c đích c a RBTV

• m b o tính nh t quán c a d li u.

- Ng i giám sát ph i là m t nhân viên trong công ty.

- D án ph i đ c đi u ph i b i m t phòng trong công ty.

• m b o ng ngh a th c t c a CSDL.

- Ngày nh n ch c > Ngày sinh.

- L ng nhân viên < L ng tr ng phòng.

̇ RBTV có 3 y u t

• N i dung.

• B i c nh.

• B ng t m nh h ng.

N i dung c a RBTV

̇ c phát bi u b ng

• Ngôn ng t nhiên.

• Ngôn ng hình th c

code)

Trang 3

Ví d

̇ RB-1

• M i nhân viên có m t mã s riêng bi t dùng đ phân bi t v i các nhân viên khác.

• ∀t1, t2∈ NHANVIEN (t1 ≠ t2 ⇒ t1.MaNV ≠ t2.MaNV)

̇ RB-2

• M i nhân viên ph i làm vi c trong m t phòng ban.

• NHANVIEN[MaPhong] ⊆ PHONGBAN[MaPB]

̇ RB-3

• M i nhân viên ch đ c phép tham gia không quá 3 d án.

• ∀s ∈ THAMGIA (card({t | t ∈ THAMGIA ∧ t.MaNV = s.MaNV}) ≤ 3)

̇ RB-4

• M i phòng ban ph i có ít nh t m t nhân viên

• ∀s ∈ PHONGBAN (∃t ∈ NHANVIEN (t.MaPhong = s.MaPB))

B i c nh c a RBTV

̇ Là nh ng quan h mà RBTV có hi u l c.

̇ B i c nh có th là m t quan h ho c nhi u quan

h

̇ Ví d

• RB-1 có b i c nh là NHANVIEN

• RB-2, RB-4 có b i c nh là NHANVIEN, PHONGBAN

• RB-3 có b i c nh là THAMGIA

Trang 4

B ng t m nh h ng c a RBTV (1)

̇ RBTV có th b vi ph m khi th c hi n các thao tác c p nh t trên b i c nh

• Thêm

• Xóa

• S a

tra RBTV

-+ Quan h k

-+

+ Quan h 1

S a Xóa

Thêm Tên RBTV

+ : c n ph i ki m tra RBTV

- : không c n ki m tra RBTV

Các quan h

b i c nh

Ví d

-+ NHANVIEN

S a Xóa

Thêm RB-1

-+

-PHONGBAN

+

-+ NHANVIEN

S a Xóa

Thêm RB-2

-+ THAMGIA

S a Xóa

Thêm RB-3

-+ PHONGBAN

+

-NHANVIEN

S a Xóa

Thêm RB-4

Trang 5

B ng t m nh h ng c a RBTV (2)

• Xây d ng trên c s b ng t m nh h ng c a các RBTV.

• xác đ nh th i đi m ki m tra RBTV khi m t thao tác c p nh t trên

m t quan h nào đó đ c th c hi n.

+ T Tên RBTV r

-X

+

+

X T

-+ Quan h n

-+ Quan h 1

Tên RBTV 1

Ví d

+ -T RB-4

-X

-+ S

-+ THAMGIA

-+ -PHONGBAN

+ -+ -+ NHANVIEN

S X T S X T S X T

RB-3 RB-2

RB-1

Trang 6

Phân lo i RBTV

̇ Phân lo i theo b i c nh

• B i c nh là m t quan h

• B i c nh là nhi u quan h

̇ M c đích

• Giúp ng i thi t k phát hi n các RBTV c a m t CSDL.

̇ RBTV có b i c nh là m t quan h

• RBTV mi n giá tr

• RBTV liên thu c tính.

• RBTV liên b

̇ RBTV có b i c nh là nhi u quan h

• RBTV tham chi u.

• RBTV liên thu c tính - liên quan h

• RBTV liên b - liên quan h

• RBTV thu c tính t ng h p.

RBTV mi n giá tr (1)

̇ RB-5

+

-+ NHANVIEN

S a Xóa

Thêm RB-5

Trang 7

RBTV mi n giá tr (2)

̇ RB-6

∀t ∈ NHANVIEN (t.NgXepLuong < τ(t).NgXepLuong)

+

-NHANVIEN

S a Xóa

Thêm RB-6

RBTV liên thu c tính

̇ RB-7

̇ RB-8

+

-+ NHANVIEN

S a Xóa

Thêm RB-7

Trang 8

RBTV liên b

̇ S t n t i c a b này ph thu c vào b khác.

• Tr ng h p đ c bi t là ràng bu c khóa chính.

̇ RB-1 và RB-3.

RBTV tham chi u (1)

̇ RB-9

án c a công ty

- S t n t i c a m t b t ∈ THAMGIA ph thu c vào s t n t i c a

m t b u ∈ NHANVIEN và m t b v ∈ DUAN.

= t.MaNV ∧ v.MaDA = t.MaDA))

-+

-DUAN

-+

-NHANVIEN

-+ THAMGIA

S a Xóa

Thêm RB-9

Trang 9

RBTV tham chi u (2)

̇ RB-10

• M i thân nhân ph i có m i quan h h hàng v i nhân viên c a công ty

- S t n t i c a b m t t ∈ THANNHAN ph thu c vào s t n t i

c a m t b u ∈ NHANVIEN.

-+ THANNHAN

-+

-NHANVIEN

S a Xóa

Thêm RB-10

RBTV tham chi u (3)

̇ RB-11

trong công ty

- S t n t i c a b m t t ∈ NHANVIEN ph thu c vào s t n t i

c a m t b u ∈ NHANVIEN.

t.MaGS))

S a Xóa

Thêm RB-11

Trang 10

RBTV liên thu c tính - liên quan h

̇ M i liên h gi a các thu c tính trong nhi u l c đ quan h

̇ RB-12

sinh

t.TrPhong ∧ u.NgSinh < t.NgNhanChuc))

+

-+ PHONGBAN

+

-NHANVIEN

S a Xóa

Thêm RB-12

RBTV liên b - liên quan h

̇ M i liên h gi a các b trên nhi u l c đ quan

h

̇ RB-4.

̇ RB-13

phòng

(v.MaNV = u.TrPhong ∧ u.MaPB = t.MaPhong ∧ v.Luong

> t.Luong)))

+

-+ NHANVIEN

S a Xóa

Thêm RB-13

Trang 11

RBTV thu c tính t ng h p

̇ Thu c tính c a l c đ này đ c tính toán t các thu c tính ho c các b c a các l c đ khác.

̇ RB-14

u.MaPhong = t.MaPB}))

+

-+ PHONGBAN

+ +

+ NHANVIEN

S a Xóa

Thêm RB-14

Cài đ t RBTV v i Assertion (1)

̇ create assertion <Tên assertion> check <đi u ki n>

̇ drop assertion <Tên assertion>

̇ RB-12

• create assertion RB_12 check (not exists (

select * from PHONGBAN, NHANVIEN where TrPhong = MaNV and

Trang 12

Cài đ t RBTV v i Assertion (2)

̇ RB-3

• create assertion ( check (not exists (

select MaNV from THAMGIA group by MaNV having count(*) > 3));

Cài đ t RBTV v i Check (1)

̇ create table <Tên b ng> (

<khai báo thu c tính> check <đi u ki n>, .,

check <đi u ki n>

);

̇ RB-5

• create table NHANVIEN ( ,

Luong int check (Luong >= 10000), ,

)

Trang 13

Cài đ t RBTV v i Check (2)

̇ RB-7

• create table NHANVIEN ( .,

NgSinh date, NgXepLuong date, .,

check (NgSinh < NgXepLuong) );

Cài đ t RBTV v i Trigger (1)

̇ T p h p các l nh t đ ng th c hi n khi x y ra các

s ki n nào đó.

̇ Mô hình ECA (S ki n - i u ki n - Hành đ ng)

S KI N I U KI N úng HÀNH NG

Trang 14

Cài đ t RBTV v i Trigger (2)

̇ create trigger <Tên trigger>

<after | before> <insert | delete | update> on <Tên

b ng>

[for each row | for each statement]

[when < đi u ki n>]

<Các l nh SQL>;

̇ drop trigger <Tên trigger>

Cài đ t RBTV v i Trigger (3)

̇ RB-13

• create trigger RB_13 before insert or update of Luong on NHANVIEN for each row

when ( new.Luong > (select Luong

from NHANVIEN where MaNV = new.MaGSat)) ERROR(“Luong moi cao hon luong giam sat”);

Trang 15

Cài đ t RBTV trên SQL Server

̇ SQL Server 2000

• Không h tr Assertion.

• H tr Check và Trigger.

̇ Trigger trên SQL 2000

• Xem Help Book Online

- Transact SQL → CREATE TRIGGER

Ngày đăng: 23/10/2014, 21:03

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w