Tải bản đầy đủ
II. CƠ SỞ LÝ THUYẾT

II. CƠ SỞ LÝ THUYẾT

Tải bản đầy đủ

2.3.

Miền giá trị của các thuộc tính
• NhanVien có GioiTinh là Nam hoặc Nữ

2.4.

Ràng buộc toàn vẹn
2.4.1. RBTV bối cảnh trên 1 quan hệ:
• RBTV miền giá trị:
R1: SoDT (Điện thoại nhân viên) là điện thoại bàn hay điện thoại di
động có độ dài 8-11 số.
Nội dung:
∀ NV ∈ NhanVien: 8<=lenght(NV.SoDT)<=11

NV.SoDT[i] ∈[0-9] với

i∈ [0-11]
Bối cảnh: NhanVien
Bảng tầm ảnh hưởng:
R1
Nhân Viên

Thêm
+

Xóa
-

Sửa
+(SoDT)
9

R2: Giới tính của Nhân viên chỉ là Nam hoặc Nữ
Nội dung:
∀ NV ∈ NV: NV.GioiTinh ∈ {‘Nam’,’Nữ’}
Bối cảnh: quan hệ NhanVien
Bảng tầm ảnh hưởng:
R2
Nhân Viên



Thêm
+

Xóa
-

Sửa
+(Giới tính)

Ràng buộc liên thuộc tính:
R3: Giờ Bắt đầu Suất Chiếu phải luôn nhỏ hơn Giờ kết thúc Suất Chiếu
Nội dung:
S

Suất Chiếu: S.giờ bắt đầu < S.giờ kết thúc

Bối cảnh: quan hệ Suất Chiếu
Bảng tầm ảnh hưởng:
R3
Suất Chiếu

Thêm
+

Xóa
-

Sửa
+(giờ bắt đầu, giờ kết
thúc)

R4: Tương tự cho ngày bán vé phải nhỏ hơn Ngày chiếu
Nội dung:
V

Vé: V.Ngay Ban

V.Ngay Chieu

Bối cảnh: Quan hệ Vé
Bảng tầm ảnh hưởng:
R4


Thêm
+

Xóa
-

Sửa
+(ngày bán, ngày chiếu)

10

R5: Ràng buộc liên thuộc tính trong Vé , Các vé có cùng Ngày chiếu, Suất
chiếu, Phòng chiếu thì có số ghế khác nhau
Nội dung
V1, V2

Vé:

Nếu [(V1.MaPhim # V2.MaPhim)
(V1.Masuat = V2.MaSuat)

(V1.MaPhong = V2.MaPhong)

(V1.Ngay Chieu = V2.Ngay Chieu)]

Thì V1.SoGhe # V2.SoGhe
Bối cảnh: Vé
Bảng tầm ảnh hưởng:
R5


Thêm
+

Xóa
-

Sửa
+(MaPhim, MaSuat,
MaPhong, Ngày
Chiếu, SoGhe)

R6: Các vé có cùng Ngày chiếu, Suất Chiếu, Phòng chiếu, Phim, Loại ghế sẽ
có giá bán bằng nhau
Nội dung:
V1, V2

Vé:

Nếu [(V1.MaPhim = V2.MaPhim)
(V1.Ngay Chieu = V2.Ngay Chieu)

(V1.MaSuat = V2.MaSuat)
(V1.MaPhong = V2.MaPhong)

(V1.SoGhe = V2.SoGhe)]
Thì V1.GiaVe = V2.GiaVe
Bối cảnh: Vé
Bảng tầm ảnh hưởng:
R6


Thêm
+

Xóa
-

Sửa
+(MaPhim, MaSuat,
MaPhong, Ngày
Chiếu, SoGhe)
11



Ràng buộc liên bộ:
R7: ràng buộc khóa chính cho tất cả các bảng Nhân Viên , Phòng, Phim, Ghế,
Thiết Bị, Vé Suất, Lịch, Vị Trí, Hợp Đồng
Nội dung:
NV1, NV2

Nhân Viên: Nếu NV1 # NV2 thì: NV1.MaNV #

NV2.MaNV
Bối cảnh: Nhân Viên
Nội dung:
H1, H2

Hợp Đồng: Nếu H1 # H2 thì: H1.SoHD # H2.SoHD

Bối cảnh: Hợp Đồng
Nội dung:
V1, V2

Vé: Nếu V1 # V2 thì: V1.MaVe # V2.MaVe

Bối cảnh: Vé
Nội Dung:
P1, P2

Phòng: Nếu P1 # P2 thì: P1.MaPhong # P2.MaPhong

Bối cảnh: Phòng
Tương tự với các bảng: Suất, Loại Ghế, Nhà Cung Cấp , Thể loại, Event .........
Bảng tầm ảnh hưởng
R7
Nhân Viên
Hợp Đồng

Suất
Phòng
Phim
Ghế
Thiết Bị

Thêm
+
+
+
+
+
+
+
+

Xóa
-

Sửa
-(*)
-(*)
-(*)
-(*)
-(*)
-(*)
-(*)
-(*)
12

Lịch Chiếu
Vị trí
Event
Thể loại

+
+
+
+

-

-(*)
-(*)
-(*)
-(*)

2.4.2. RBTV bối cảnh nhiều quan hệ
• Ràng buộc tham chiếu:
R8: Nhân viên phải thuộc vị trí
Nội dung:
NhanVien[MaNV] ⊆ Vitri[MaVT]
Bối cảnh: NhanVien, ViTri
Bảng tầm ảnh hưởng :
R8
ViTri
NhanVien

Thêm
+
-

Xóa
+

Sửa
+(MaNV)
+(MaNV)

R9: Khi In vé thì Bảng Phân Công phải có Phòng, Suất, Ngày, Nhân viên
Đứng quầy vé và Số ghế thuộc bảng Ghế
Nội dung:
V1

Vé,

Bảng Phân Công: V1.Ngay Chieu = L. Ngay Chieu

V1

Vé,

Bảng Phân Công: V1.MaPhong = L.MaPhong

V1

Vé,

Bảng Phân Công: V1.MaSuat = L.MaSuat

V1

Vé,

Bảng Phân Công: V1.MaNV = L.MaNV

V1

Vé,

Ghế: V1.SoGhe = G.SoGhe

Bối cảnh : Quan Hệ Ghế, Vé, Bảng Phân Công
Bảng tầm ảnh hưởng:
R9

Thêm

Xóa

Sửa
13


Ghế
Bảng Phân Công

2.5.

+
-

+
+

-(*)
-(*)
-(*)

Mô hình ERD

14

2.6.

Mô hình DFD

15

16

2.7.
-

-

Ánh xạ mô hình quan hệ
HopDong( SoHD, MaNCC)
MaNCC tham chiếu đến NhaCungCap(MaNCC)
TheLoai ( MaTL, TheLoai)
CT_Phongg ( MaPhong, MaTB, SoLuong)
MaTB tham chiếu đến ThietBi(MaTB)
SuatChieu ( MaSuat, Gio Bat Dau, Gio Ket Thuc)
LichChieu ( NgayChieu, MaSuat, MaPhong, MaPhim)
MaSuat tham chiếu đến SuatChieu(MaSuat)
MaPhong tham chiếu đến Phong(MaPhong)
MaPhim tham chiếu đến Phim(MaPhim)
BangPhanCong ( NgayChieu, MaSuat, MaPhong, MaNV, MaVT)
NgayChieu tham chiếu đến LichChieu(NgayChieu)
MaSuat tham chiếu đến SuatChieu(MaSuat)
MaPhong tham chiếu đến Phong(MaPhong)
MaNV tham chiếu đến NhanVien(MaNV)
MaVT tham chiếu đến ViTri(MaVT)
ViTri ( MaVT, Ten Vi Tri)
Ve ( MaVe, Ngay Chieu, MaSuat, MaPhong, MaNV,So Ghe, Gia, Ngay Ban)
NgayChieu tham chiếu đến LichChieu(NgayChieu)
MaSuat tham chiếu đến SuatChieu(MaSuat)
MaPhong tham chiếu đến Phong(MaPhong)
MaNV tham chiếu đến NhanVien(MaNV)
SoGhe tham chiếu đến Ghe(SoGhe)
NhaCungCap ( MaNCC, TenNCC, DiaChi)
NhanVien ( MaNV, Ten Nhan Vien, Ngay Sinh, Gioi tinh, Dia Chi, CMND,
SoDT)
Thể Loại ( MaTL, TheLoai)
Phim ( MaPhim, SoHD, MaTL, Ghichu, Đaodien, DienVien, ThoiGian)
SoHD tham chiếu đến HopDong(SoHD)
MaTL tham chiếu đến TheLoai(MaTL)
Phong ( MaPhong, Ten Phong, KichThuoc, SoLuongGhe, GhiChu)
Ghe ( SoGhe, MaLoaiGhe, MaPhong, Hang, Khu)
MaLoaiGhe tham chiếu đến LoaiGhe(MaLoaiGhe)
MaPhong tham chiếu đến Phong(MaPhong)
LoaiGhe ( MaLoaiGhe, Tenloai)
ThietBi ( MaTB, MaloaiTB, TenTB)
MaloaiTB tham chiếu đến LoaiThietBi(MaLoaiTB)
LoaiThietBi ( MaLoaiTB, TenLoai)
Event (MaEvent, MaPhim, Ten Event)
MaPhim tham chiếu đến Phim(MaPhim)

17

III.

KẾT QUẢ THỰC NGHIỆM
3.1.
Mô Hình Cơ Sở Dữ Liệu:
3.1.1. Database tự tăng mã:
• DDL for Trigger TRIGGER_TUTANG_LOAIGHE
-------------------------------------------------------CREATE OR REPLACE TRIGGER TRIGGER_TUTANG_LOAIGHE
BEFORE INSERT ON loaighe
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
SELECT SEQUENCE_TUTANG_loaighe.NEXTVAL INTO
:NEW.maloaighe
FROM DUAL;
END;
/
ALTER TRIGGER TRIGGER_TUTANG_LOAIGHE ENABLE;
-------------------------------------------------------• DDL for Trigger TRIGGER_TUTANG_GHE
-------------------------------------------------------CREATE OR REPLACE TRIGGER TRIGGER_TUTANG_GHE
BEFORE INSERT ON ghe
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
SELECT SEQUENCE_TUTANG_ghe.NEXTVAL INTO :NEW.maghe
FROM DUAL;
END;
/
ALTER TRIGGER TRIGGER_TUTANG_GHE ENABLE;
-------------------------------------------------------• DDL for Trigger TRIGGER_TUTANG_EVENT_PR_PHIM
-------------------------------------------------------CREATE OR REPLACE TRIGGER
TRIGGER_TUTANG_EVENT_PR_PHIM
BEFORE INSERT ON EVENT_PR_PHIM
REFERENCING NEW AS NEW
FOR EACH ROW
18

BEGIN
SELECT SEQUENCE_TUTANG_EVENT_PR_PHIM.NEXTVAL INTO
:NEW.MAEVENT
FROM DUAL;
END;
/
ALTER TRIGGER TRIGGER_TUTANG_EVENT_PR_PHIM ENABLE;
-------------------------------------------------------• DDL for Trigger TRIGGER_TUTANG_HOPDONGMUAPHIM
-------------------------------------------------------CREATE OR REPLACE TRIGGER
TRIGGER_TUTANG_HOPDONGMUAPHIM
BEFORE INSERT ON hopdongmuaphim
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
SELECT SEQUENCE_TUTANG_hopdongmuaphim.NEXTVAL INTO
:NEW.sohd
FROM DUAL;
END;
/
ALTER TRIGGER TRIGGER_TUTANG_HOPDONGMUAPHIM
ENABLE;
-------------------------------------------------------• DDL for Trigger TRIGGER_TUTANG_LICHCHIEU
-------------------------------------------------------CREATE OR REPLACE TRIGGER TRIGGER_TUTANG_LICHCHIEU
BEFORE INSERT ON lichchieu
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
SELECT SEQUENCE_TUTANG_lichchieu.NEXTVAL INTO :NEW.stt
FROM DUAL;
END;
/
ALTER TRIGGER TRIGGER_TUTANG_LICHCHIEU ENABLE;
-------------------------------------------------------• DDL for Trigger TRIGGER_TUTANG_LOAITB
19