You are on page 1of 57

LỜI CẢM ƠN

Chúng em xin chân thành cảm ơn các Thầy trong khoa Công Nghệ Thông Tin đã
tận tình giảng dạy, trang bị cho chúng em những kiến thức quý báu trong suốt quá
trình thực hiện đề tài cũng như đã tạo điều kiện cho chúng em thực hiên đề tài này.
Đặc biệt chúng em xin gửi lời cảm ơn sâu sắc đến Võ Hoàng Khang – Giảng viên
Trường Đại Học Công Nghệ TP.HCM đã tận tình hướng dẫn, chỉ bảo, giúp đỡ cho
chúng em để chúng em hoàn thành được đề tài này.
Mặc dù đã rất nỗ lực và cố gắng nhưng chắc chắn rằng đề tài vẫn còn nhiều thiếu
sót, chúng em mong sẽ nhận đuợc sự góp ý, phê bình của Thầy để đề tài hoàn thiện
hơn.
Chúng em xin chân thành cảm ơn!
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

Mục Lục
LỜI CẢM ƠN ............................................................................................................ 1
Chương 1: Tổng Quan ............................................................................................... 4
1.1 Giới thiệu đề tài quản lý bảo trì, sửa chữa ôtô .................................................... 4
1.1.1 Quản lý xe và nhật ký bảo dưỡng sửa chữa xe ............................................. 4
1.1.2 Khách hàng ................................................................................................. 4
1.1.3 Nhà cung cấp .............................................................................................. 4
1.2 Mô tả nghiệp vụ ................................................................................................. 5
1.2.1 Xác định yêu cầu ban quản trị ..................................................................... 5
Chương 2: Mô Hình Thiết Kế Hệ Thống .................................................................. 6
2.1 Mô hình dòng dữ liệu (DFD - Data Flow Diagram)............................................ 6
2.2 Mô hình thực thể kết hợp (Entity Relationship Model)....................................... 6
2.3 Mô Hình UML ................................................................................................... 7
2.4 Xây dựng các loại thực thể ................................................................................. 8
2.4.1 Các loại thực thể ......................................................................................... 8
2.4.2 Mô hình thực thể kết hợp ............................................................................ 9
2.4.3 Biểu diễn mô hình ERD ............................................................................ 10
2.5 Loại thực thể đối tượng ngoài .......................................................................... 11
2.6 Loại thực thể cơ bản ......................................................................................... 12
2.7 Loại thực thể nghiệp vụ .................................................................................... 13
2.8 Xác định các RBTV ......................................................................................... 15
2.8.1 RBTV trên 1 Lược đồ quan hệ .................................................................. 15
2.8.2 RBTV trên nhiều lược đồ quan hệ ............................................................. 17
2.9 Mô hình DFD................................................................................................... 20
Chương 3: Thiết kế .................................................................................................. 26
3.1 Thiết kế hệ thống ............................................................................................. 26
3.1.1 Thiết kế cây chức năng phần phềm ............................................................ 26
3.1.2 Kiến trúc phần mềm 3 lớp ......................................................................... 27
3.2 Tạo CSDL........................................................................................................ 28
3.2.1 Tạo bảng ................................................................................................... 29
3.2.2 Tạo constraint ........................................................................................... 33

Page 2
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

3.3 Tạo view .......................................................................................................... 39


3.4 Store procedure ................................................................................................ 40
3.5 Function ........................................................................................................... 53
3.6 Viết Trigger ..................................................................................................... 54
Chương 4: Kết Luận Và Kiến Nghị ........................................................................ 56
Tài Liệu Tham Khảo ............................................................................................... 57

Danh mục hình


Hình 2. 1: Usecase tổng quát ....................................................................................... 7
Hình 2. 2 Mô hình thực thể kết hợp ............................................................................. 9
Hình 2. 3 Mô hình ERD ............................................................................................. 10

Hình 3. 1 Cây chức năng phần mềm .......................................................................... 26


Hình 3. 2 Sơ đồ kiến trúc 3 tầng................................................................................. 27
Hình 3. 3 Database Diagram ...................................................................................... 28
Danh mục bảng
Bảng 2.1: Các khái niệm trong mô hình DFD .............................................................. 6
Bảng 2. 2: Các khái niệm trong mô hình ER ................................................................ 6
Bảng 2. 3: Các khái niệm trong lược đồ Use Case........................................................ 7

Page 3
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

Chương 1: Tổng Quan

1.1 Giới thiệu đề tài quản lý bảo trì, sửa chữa ôtô

Mục đích của việc xây dựng “Mô hình quản lý bảo trì, sửa chữa ôto” nhằm đáp ứng
các mục tiêu chính sau:

1.1.1 Quản lý xe và nhật ký bảo dưỡng sửa chữa xe

 Quản lý thông tin xe vào xưởng.

 Lập kế hoạch hạn sửa chữa bảo dưỡng với từng loại xe, đời xe.

 Theo dõi nhật ký bảo dưỡng của các xe vào xưởng và sử dụng dịch
vụ.

 Báo cáo các xe đến hạn bảo dưỡng, thay dầu.

1.1.2 Khách hàng

 Quản lý phân nhóm khách hàng.

 Quản lý thông tin chi tiết khách hàng ( Mã khách, số thẻ, tên khách,
điện thoại, địa chỉ, email, số mobile …)

 Đối với khách hàng là cty thì có thêm danh sách người liên hệ.

 Một khách hàng có thể vừa là khách hàng và nhà cung cấp.
1.1.3 Nhà cung cấp
 Quản lý phân nhóm nhà cung cấp.

 Quản lý thông tin chi tiết nhà cung cấp ( Mã nhà cung cấp, tên nhà
cung cấp, điện thoại, địa chỉ, email, số mobile, tài khoản ngân hàng,
mã số thuế …)

Page 4
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

1.2 Mô tả nghiệp vụ
1.2.1 Xác định yêu cầu ban quản trị
 Khi xe được đưa vào gara ban quản trị sẽ đánh giá tình trạng xe. Lập
báo giá và lên phương án sửa chữa.
 Tiến hành sửa chữa, bảo trì.
 Sau đó ban quản trị sẽ bàn giao và lập phiếu thanh toán.
 Lập phiếu xuất xưởng và cho xe xuất xưởng.
 Chăm sóc khách hàng, nhắc nhở bảo dưỡng.
 Theo dõi công nợ.

Page 5
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

Chương 2: Mô Hình Thiết Kế Hệ Thống


2.1 Mô hình dòng dữ liệu (DFD - Data Flow Diagram)

Khái niệm Ký hiệu Ý nghĩa

Một hoạt động bên trong


Ô xử lý
hệ thống

Sự chuyển đổi thông tin


Dòng dữ liệu
giữa các thành phần

Vùng chứa dữ liệu, thông


Kho dữ liệu
tin trong hệ thống

Một tác nhân bên ngoài hệ


Đầu cuối
thống

Bảng 2.1: Các khái niệm trong mô hình DFD

2.2 Mô hình thực thể kết hợp (Entity Relationship Model)

Khái niệm Ký hiệu Ý nghĩa


Biểu diễn lớp đối tượng thế
Thực thể giới thực với các tính chất
đặc trưng của chúng.

Biểu diễn sự kết hợp của 2


Kết hợp
hay nhiều thực thể.

Biểu diễn các đặc trưng


Thuộc tính của thực thể hay mối kết
hợp.
Bảng 2. 2: Các khái niệm trong mô hình ER

Page 6
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

2.3 Mô Hình UML

Khái niệm Ký hiệu Ý nghĩa

Một người hoặc một đối


Actor( Tác nhân) tượng nào đó bên ngoài
tương tác với hệ thống.

Use Case(Trường Một chức năng của hệ


hợp sử dụng) thống.

Bảng 2. 3: Các khái niệm trong lược đồ Use Case

Hình 2. 1: Usecase tổng quát

Page 7
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

2.4 Xây dựng các loại thực thể


2.4.1 Các loại thực thể
2.4.1.1 Thực thể cơ bản
NHOMSP (ID_NHOMSP, TEN).
SANPHAM (ID_SANPHAM, TENSP, DONVITINH, DIENGIAI, GHICHU,
GIABAN).
XEBAOTRI (SOXE, NGAYNHAP, YEUCAU, MOTA, TINHTRANG,
NGAYNHAN, NGUOICAPNHAT, NGAYCAPNHAT).
QUYEN (ID_QUYEN, TENQUYEN).

2.4.1.2 Thực thể đối tượng ngoài


NHACUNGCAP (ID_NHANCC, TENNCC, DIACHI, SDT, FAX, EMAIL,
SOTK).
NHASANXUAT(ID_NHASX, TENNSX, MOTA).
NHANVIEN (ID_NHANVIEN, PASSWORD, DIACHI, SDT, EMAIL, SOTK,
SOCMND, TEN, TINHTRANG).
KHACHHANG (ID_KHACHHANG, TENKHACHHANG, DIACHI, SDT,
EMAIL, SOTK, NGANHANG, MAST).

2.4.1.3 Thực thể nghiệp vụ


HOADONNHAP (ID_HDNHAP, TONGTIEN, DATRA, NGAYNHAP,
NGAYCAPNHAT, TINHTRANG).
HOADONBAOTRI (ID_HDBAOTRI, TONGTIEN, PHUPHI, NGAYNHAP,
TINHTRANG).
CHITIETHD_NHAP (ID_SANPHAM, ID_HDNHAP, SOLUONG,
GIATIENNHAP).
CHITIETBAOTRI (ID_SANPHAM, ID_HDBAOTRI, SOLUONG, DONGIA,
THANHTIEN, HINHTHUCBAOTRI).

Page 8
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

2.4.2 Mô hình thực thể kết hợp

Hình 2. 2 Mô hình thực thể kết hợp

Page 9
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

2.4.3 Biểu diễn mô hình ERD

Hình 2. 3 Mô hình ERD

Page 10
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

2.5 Loại thực thể đối tượng ngoài


Table: NHACUNGCAP
Name Type Size Ghi Chú
ID_NHACC char 10 Mã Nhà Cung Cấp
TENNCC nvarchar 50 Tên Nhà Cung Cấp
DIACHI nvarchar 50 Địa Chỉ
SDT varchar 20 Số Điện Thoại
Fax varchar 20 Fax
Email varchar 20 Email
SoTK varchar 20 Số Tài Khoản
Ràng buộc: TENNCC unique, DT có thể có từ 8 chữ số đến 11 chữ số.
Table: NHASANXUAT
Name Type Size Ghi Chú
ID_NHASX char 10 Mã Nhà Sản Xuất
TENNHASX nvarchar 50 Tên Nhà Cung Cấp
MOTA nvarchar 500 Mô Tả
Ràng buộc: TENNHASX unique.
Table: NHANVIEN
Name Type Size Ghi Chú
ID_NHANVIEN char 10 Mã Nhân Viên
ID_QUYEN interger Mã Quyền
PASSWORD varchar 20 Mật Khẩu
DIACHI nvarchar 50 Địa Chỉ
SDT varchar 20 Số Điện Thoại
EMAIL varchar 10 Email
SOTK varchar 20 Số Tài Khoản
SOCMND varchar 20 Số CMND
TEN nvarchar 50 Tên Nhà Cung Cấp

Page 11
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

TINHTRANG nvarchar 20 Tình Trạng


Ràng buộc: ID_NHANVIEN unique, DT có thể có từ 8 chữ số đến 11 chữ số.
Table: KHACHHANG
Name Type Size Ghi Chú
ID_KHACHHANG char 10 Mã Khách Hàng
TENKH nvarchar 50 Tên Khách Hàng
DIACHI nvarchar 50 Địa Chỉ
SDT char 20 Số Điện Thoại
EMAIL varchar 20 Email
SOTK varchar 20 Số Tài Khoản
NGANHANG varchar 50 Ngân Hàng
MAST varchar 50 Mã Số Thuế
Ràng buộc: ID_KHACHHANG unique, DT có thể có từ 8 chữ số đến 11 chữ
số.
2.6 Loại thực thể cơ bản
Table: QUYEN
Name Type Size Ghi Chú
ID_QUYEN char 10 Quyền
TENQUYEN nvarchar 50 Tên Quyền
Ràng buộc: TENQUYEN unique.
Table: SANPHAM
Name Type Size Ghi Chú
ID_SANPHAM char 10 Mã Sản Phẩm
ID_NHASX char 10 Mã Nhà SX
ID_NHOMSP char 10 Mã Nhóm SP
ID_NHACC char 10 Mã Nhà CC
TENSP nvarchar 50 Tên Sản Phẩm
DONVITINH nvarchar 10 Đơn Vị Tính

Page 12
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

DIENGIAI nvarchar 500 Diễn Giải


GHICHU nvarchar 500 Ghi Chú
GIABAN Float Giá Bán
Ràng buộc: TENSP unique
Table: NHOMSP
Name Type Size Ghi Chú
ID_NHOMSP varchar 20 Mã Nhóm SP
TEN nvarchar 50 Tên Nhóm SP
Table: XEBAOTRI
Name Type Size Ghi Chú
SOXE varchar 20 Mã Nhóm SP
ID_KH nvarchar 50 Tên Nhóm SP
YEUCAU nvarchar 500 Yêu Cầu
MOTA nvarchar 500 Mô Tả
TINHTRANG nvarchar 50 Tình Trạng

2.7 Loại thực thể nghiệp vụ


Table: HOADONNHAP
Name Type Size Ghi Chú
ID_HDNHAP char 10 Mã HD Nhập
ID_NHANVIEN char 10 Mã Nhân Viên
TONGTIEN float Tổng Tiền
DATRA float Đã Trả
NGAYNHAP smalldatetime Ngày Nhập
NGAYCAPNHAT smalldatetime Ngày Cập Nhật
TINHTRANG nvarchar 20 Tình Trạng

Table: HOADONBAOTRI

Page 13
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

Name Type Size Ghi Chú


ID_HDBAOTRI char 10 Mã HD Bảo Trì
ID_NHANVIEN char 10 Mã Nhân Viên
SOXE char 10 Số Xe
PHUPHI float Phụ Phí
NGAYBAOTRI SmallDateTime Ngày Bảo Trì
TINHTRANG nvarchar 20 Tình Trạng
NGAYCAPNHAT SmallDateTime Ngày Cập Nhật
TIENDATRA Float Tiền Đã Trả
ID_KH char 10 Mã Khách Hàng
Ràng buộc: NGAYCAPNHAT > NGAYBAOTRI
Table: CHITIETHD_NHAP
Name Type Size Ghi Chú
ID_SP varchar 20 Mã Sản Phẩm
ID_HDNHAP varchar 20 Mã HĐ Nhập
SLNHAP int Số Lượng Nhập
GIATIENNHAP Float Giá Tiền Nhập
Ràng buộc: GIATIENNHAP > 0
Table: CHITIETBAOTRI
Name Type Size Ghi Chú
ID_SANPHAM char 10 Mã Sản Phẩm
ID_HDBAOTRI char 10 Mã HD Bảo Trì
SOLUONG interger Số Lượng
DONGIA float Đơn Giá
THANHTIEN float Thành Tiền
HINHTHUCBAOTRI nvarchar 50 Hình Thức Bảo Trì
Ràng buộc: DONGIA > 0

Page 14
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

2.8 Xác định các RBTV


2.8.1 RBTV trên 1 Lược đồ quan hệ
2.8.1.1 RBTV liên bộ
Mô tả: Mỗi quyền có mã số riêng và tên quyền không được trùng
Bối cảnh: QUYEN
Biểu diễn:  q1, q2  QUYEN, nếu q1 ≠ q2 thì q1.ID_Quyen ≠ q2.ID_Quyen ᶺ
q1.TenQuyen ≠ q2.TenQuyen
Bảng tầm ảnh hưởng:
R Thêm Xóa Sửa

QUYEN + - +(ID_QUYEN, TENQUYEN)

Mô tả: Với mỗi nhân viên có một mã số riêng


Bối cảnh: NHANVIEN
Biểu diễn:  n1,n2  NHANVIEN nếu n1 # n2 thì n1.ID_NV ≠ n2.ID_NV
Bảng tầm ảnh hưởng:

R Thêm Xóa Sửa

NHANVIEN + - +(*)

Mô tả: Với mỗi khách hàng có một mã số riêng


Bối cảnh: KHACHHANG
Biểu diễn:  n1, n2  KHACHHANG nếu n1 ≠ n2 thì n1.ID_KH ≠ n2.ID_KH
Bảng tầm ảnh hưởng:

R Thêm Xóa Sửa

KHACHHANG + - +(*)

Mô tả: Với mỗi nhà cung cấp phải có mã riêng


Bối cảnh: NHACUNGCAP
Biểu diễn:  n1,n2 NHACUNGCAP nếu n1 ≠ n2 thì n1.ID_NCC ≠
n2.ID_NCC

Page 15
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

Bảng tầm ảnh hưởng:

R Thêm Xóa Sửa

NHACUNGCAP + - +(*)

Mô tả: Với mỗi nhà cung cấp phải có mã riêng


Bối cảnh: NHASANXUAT
Biểu diễn:  n1,n2 NHASANXUAT nếu n1 ≠ n2 thì n1.ID_NhaSx ≠
n2.ID_NhaSX
Bảng tầm ảnh hưởng:

R Thêm Xóa Sửa

NHASANXUAT + - +(*)

2.8.1.2 RBTV miền giá trị


Mô tả: Tất cả các hóa đơn có ngày nhập và ngày cập nhật phải lớn hơn
ngày hiện hành. Ngày cập nhật phải lớn hơn ngày nhập
Bối cảnh: HOADONNHAP
Biểu diễn:  n  HOADONNHAP, n.NGAYNHAP >= GETDATE ᶺ^
n.NGAYCAPNHAT >= GETDATE ᶺ n.NGAYCAPNHAT > n.NGAYNHAP
Bảng tầm ảnh hưởng:

R Thêm Xóa Sửa


+(NGAYCAPNHAT,
HOADONNHAP + -
NGAYLAP)

Mô tả: Tất cả các hóa đơn có ngày bảo trì và ngày cập nhật phải lớn hơn
ngày hiện hành. Ngày cập nhật phải lớn hơn ngày bao trì
Bối cảnh: HOADONBAOTRI
Biểu diễn:  n  HOADONBAOTRI, n.NGAYBAOTRI >= GETDATE ᶺ
n.NGAYCAPNHAT >= GETDATE ᶺ n.NGAYCAPNHAT >
n.NGAYBAOTRI
Bảng tầm ảnh hưởng:

Page 16
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

R Thêm Xóa Sửa


+(NGAYCAPNHAT,
HOADONBAOTRI + -
NGAYBAOTRI)

2.8.2 RBTV trên nhiều lược đồ quan hệ


2.8.2.1 RBTV tham chiếu
Mô tả: Với mỗi hóa đơn cho biết hóa đơn bảo trì xe nào, ngày cập nhật lớn hơn
ngày lập, ngày cập nhật và ngày lập phải lớn hơn ngày hiện hành
Bối cảnh: HOADONBAOTRI, XEBAOTRI
Biểu diễn:  n  HOADONNHAP, ᴲ x  XEBAOTRI , (x.SoXe = n.SoXe ) ᶺ
n.NGAYCAPNHAT > n.NGAYLAP ᶺ n.NGAYCAPNHAT >= GetDate ᶺ
n.NGAYLAP >= GetDate
Bảng tầm ảnh hưởng:
R Thêm Xóa Sửa
+(NGAYCAPNHAT,
HOADONBAOTRI + -
NGAYLAP)

XEBAOTRI - + -(*)

Mô tả: Mỗi nhân viên có 1 quyền khác nhau


Bối cảnh: NHANVIEN, QUYEN
Biểu diễn:  n  NHANVIEN, ᴲ m QUYEN, n.ID_QUYEN = m.ID_QUYEN
Bảng tầm ảnh hưởng:
R Thêm Xóa Sửa
NHANVIE
+ - +(ID_QUYEN)
N

QUYEN - + +(ID_QUYEN)

Page 17
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

2.8.2.2 RBTV liên bộ liên quan hệ


Mô tả: Tất cả các hóa đơn bảo trì đều ghi nhận lại số lượng bảo trì và hình thức
bảo trì
Bối cảnh: HOADONBAOTRI, CHITIETBAOTRI, SANPHAM
Biểu diễn:  c  CHITIETBAOTRI, ᴲ x  SANPHAM, ᴲ h
HOADONBAOTRI,( h.Hoadon = h.Hoadon ) ᶺ (x.ID_SP = c.ID_SP) ᶺ c.SoLuong > 0
Bảng tầm ảnh hưởng:
R Thêm Xóa Sửa

SANPHAM - + -(*)

HOADONBAOT
- + -(*)
RI
CHITIETBAOT
+ - +(SoLuong)
RI

Mô tả: Tất cả các hóa đơn nhập đều ghi nhận lại số lượng nhập linh kiện
Bối cảnh: HOADONNHAP, CTHD_NHAP, SANPHAM
Biểu diễn:  c  CTHD_NHAP, ᴲ S  SANPHAM, ᴲ h HOADONNHAP, ( c.Hoadon
= h.Hoadon ) ᶺ (s.ID_SP = c.ID_SP) ᶺ c.SLNhap > 0
Bảng tầm ảnh hưởng:
R Thêm Xóa Sửa

SANPHAM - + -(*)

HOADONNHAP - + -(*)

CTHD_NHAP + - +(SLNhap)

Page 18
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

Mô tả: Tất cả sản phẩm cho biết tên nhà cung cấp, tên nhà sản xuất và nó thuộc
loại sản phẩm nào
Bối cảnh: NHASANXUAT, NHOMSP, SANPHAM, NCC
Biểu diễn:  S  SANPHAM, ᴲ n NHASX, ᴲ C  NCC, ᴲ X  NHOMSP
( s.ID_NhaSX = n.ID_NhaSX ) ᶺ (s.ID_SP = x.ID_SP) ᶺ (c.ID_NCC = s.ID_NCC)
Bảng tầm ảnh hưởng:

R Thêm Xóa Sửa

SANPHAM + - +

NHASANXUAT - + +

NHOMSP - + +

NCC - + +

Page 19
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

2.9 Mô hình DFD


 Mức 0:

Page 20
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

 Mức 1:

Page 21
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

Page 22
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

 Mức 2:

Page 23
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

Page 24
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

Page 25
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

Chương 3: Thiết kế
3.1 Thiết kế hệ thống
3.1.1 Thiết kế cây chức năng phần phềm

Hình 3. 1 Cây chức năng phần mềm

Page 26
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

3.1.2 Kiến trúc phần mềm 3 lớp

Hình 3. 2 Sơ đồ kiến trúc 3 tầng

Page 27
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

3.2 Tạo CSDL

Hình 3. 3 Database Diagram

Page 28
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

3.2.1 Tạo bảng


-------DDL for Table KHACHHANG-----------

CREATE TABLE "SYSTEM"."KHACHHANG"

( "ID_KH" VARCHAR2(20 BYTE),

"TEN_KH" NVARCHAR2(50),

"DIACHI_KH" NVARCHAR2(100),

"SDT_KH" VARCHAR2(11 BYTE),

"EMAIL_KH" VARCHAR2(50 BYTE),

"TK_KH" VARCHAR2(20 BYTE),

"MASOTHUE" VARCHAR2(50 BYTE)

) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

-- DDL for Table NCC

CREATE TABLE "SYSTEM"."NCC"

( "ID_NCC" VARCHAR2(20 BYTE),

"TEN_NCC" NVARCHAR2(50),

"DIACHI" NVARCHAR2(100),

"SDT_NCC" VARCHAR2(11 BYTE),

"FAX_NCC" VARCHAR2(20 BYTE),

"EMAIL_NCC" VARCHAR2(50 BYTE),

"TK_NCC" VARCHAR2(50 BYTE)

) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

Page 29
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

--------------------------------------------------------

-- DDL for Table NHANVIEN

CREATE TABLE "SYSTEM"."NHANVIEN"

( "ID_NV" VARCHAR2(20 BYTE),

"ID_QUYEN" VARCHAR2(20 BYTE),

"MATKHAU" VARCHAR2(33 BYTE),

"TEN_NV" NVARCHAR2(50),

"DIACHI_NV" NVARCHAR2(50),

"SDT_NV" VARCHAR2(11 BYTE),

"EMAIL_NV" VARCHAR2(50 BYTE),

"TK_NV" VARCHAR2(20 BYTE),

"CMND_NV" NUMBER(12,0),

"TINHTRANG_ACC" VARCHAR2(10 BYTE)

) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

-- DDL for Table NHASANXUAT

CREATE TABLE "SYSTEM"."NHASANXUAT"

( "ID_NHASX" VARCHAR2(20 BYTE),

"TEN_NSX" NVARCHAR2(50),

"MOTA" NVARCHAR2(500)

) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING


STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

-- DDL for Table QUYEN

CREATE TABLE "SYSTEM"."QUYEN"

( "ID_QUYEN" VARCHAR2(20 BYTE),

"TEN_QUYEN" NVARCHAR2(50)

) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

Page 30
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

--------------------------------------------------------

-- DDL for Table SANPHAM

CREATE TABLE "SYSTEM"."SANPHAM"

( "ID_SP" VARCHAR2(20 BYTE),

"ID_NHASX" VARCHAR2(20 BYTE),

"ID_NHOMSP" VARCHAR2(20 BYTE),

"ID_NCC" VARCHAR2(20 BYTE),

"TENSP" NVARCHAR2(20),

"DVT" NVARCHAR2(10),
"GHICHU" NVARCHAR2(100),

"DIENGIAI" NVARCHAR2(500),

"SLTON" NUMBER(*,0)

) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

-- DDL for Table XEBAOTRI

CREATE TABLE "SYSTEM"."XEBAOTRI"

( "SOXE" VARCHAR2(20 BYTE),

"ID_KH" VARCHAR2(20 BYTE),

"YEUCAU" NVARCHAR2(100),

"MOTA" NVARCHAR2(100),

"TINHTRANG_XE" NVARCHAR2(100)

) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

-- DDL for Table HOADONBAOTRI

CREATE TABLE "SYSTEM"."HOADONBAOTRI"

( "ID_HDBAOTRI" VARCHAR2(20 BYTE),

"ID_NV" VARCHAR2(20 BYTE),

"SOXE" VARCHAR2(20 BYTE),

"PHUPHI" FLOAT(126),

"NGAY_BAOTRI" DATE,

"TINHTRANG_HDBAOTRI" VARCHAR2(20 BYTE),

"NGAY_CAPNHAT" DATE,

"TIENDATRA" FLOAT(126)

) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

Page 31
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

-- DDL for Table HOADONNHAP

CREATE TABLE "SYSTEM"."HOADONNHAP"

( "ID_HDNHAP" VARCHAR2(20 BYTE),

"ID_NV" VARCHAR2(20 BYTE),

"NGAYNHAP" DATE,

"NGAYCAPNHAT" DATE,

"TINHTRANG_HDNHAP" VARCHAR2(20 BYTE),

"TIENTRATRUOC" FLOAT(126)

) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

-- DDL for Table CHITIETBAOTRI

CREATE TABLE "SYSTEM"."CHITIETBAOTRI"

( "ID_SP" VARCHAR2(20 BYTE),

"ID_HDBAOTRI" VARCHAR2(20 BYTE),

"SOLUONG" NUMBER(*,0),

"DONGIA_SANPHAM" FLOAT(126),

"HINHTHUC_BAOTRI" NVARCHAR2(50)

) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

-- DDL for Table CTHDNHAP

--------------------------------------------------------

CREATE TABLE "SYSTEM"."CTHDNHAP"

( "ID_SP" VARCHAR2(20 BYTE),

"ID_HDNHAP" VARCHAR2(20 BYTE),

"SL_NHAP" INT,

"DONGIA_NHAP" VARCHAR2(20 BYTE),

) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

Page 32
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

3.2.2 Tạo constraint


-- DDL for Index HOADONBAOTRI_PK

--------------------------------------------------------

CREATE UNIQUE INDEX "SYSTEM"."HOADONBAOTRI_PK" ON "SYSTEM"."HOADONBAOTRI" ("ID_HDBAOTRI")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT


CELL_FLASH_CACHE DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

-- DDL for Index HOADONNHAP_PK

--------------------------------------------------------

CREATE UNIQUE INDEX "SYSTEM"."HOADONNHAP_PK" ON "SYSTEM"."HOADONNHAP" ("ID_HDNHAP")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT


CELL_FLASH_CACHE DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

-- DDL for Index KHACHHANG_PK

--------------------------------------------------------

CREATE UNIQUE INDEX "SYSTEM"."KHACHHANG_PK" ON "SYSTEM"."KHACHHANG" ("ID_KH")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT


CELL_FLASH_CACHE DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

-- DDL for Index NCC_PK

--------------------------------------------------------

CREATE UNIQUE INDEX "SYSTEM"."NCC_PK" ON "SYSTEM"."NCC" ("ID_NCC")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT


CELL_FLASH_CACHE DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

Page 33
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

-- DDL for Index NHANVIEN_PK

--------------------------------------------------------

CREATE UNIQUE INDEX "SYSTEM"."NHANVIEN_PK" ON "SYSTEM"."NHANVIEN" ("ID_NV")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

-- DDL for Index NHASANXUAT_PK

--------------------------------------------------------

CREATE UNIQUE INDEX "SYSTEM"."NHASANXUAT_PK" ON "SYSTEM"."NHASANXUAT" ("ID_NHASX")


PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

-- DDL for Index QUYEN_PK

--------------------------------------------------------

CREATE UNIQUE INDEX "SYSTEM"."QUYEN_PK" ON "SYSTEM"."QUYEN" ("ID_QUYEN")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

-- DDL for Index SANPHAM_PK

--------------------------------------------------------

CREATE UNIQUE INDEX "SYSTEM"."SANPHAM_PK" ON "SYSTEM"."SANPHAM" ("ID_SP")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ;

--------------------------------------------------------

-- DDL for Index XEBAOTRI_PK

--------------------------------------------------------

CREATE UNIQUE INDEX "SYSTEM"."XEBAOTRI_PK" ON "SYSTEM"."XEBAOTRI" ("SOXE")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ;

Page 34
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

-- Constraints for Table CHITIETBAOTRI

--------------------------------------------------------

ALTER TABLE "SYSTEM"."CHITIETBAOTRI" MODIFY ("ID_SP" NOT NULL ENABLE);

ALTER TABLE "SYSTEM"."CHITIETBAOTRI" MODIFY ("DONGIA_SANPHAM" NOT NULL ENABLE);

--------------------------------------------------------

-- Constraints for Table HOADONBAOTRI

--------------------------------------------------------

ALTER TABLE "SYSTEM"."HOADONBAOTRI" ADD CONSTRAINT "HOADONBAOTRI_PK" PRIMARY KEY ("ID_HDBAOTRI")

USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ENABLE;

ALTER TABLE "SYSTEM"."HOADONBAOTRI" MODIFY ("ID_HDBAOTRI" NOT NULL ENABLE);

--------------------------------------------------------

-- Constraints for Table HOADONNHAP

--------------------------------------------------------

ALTER TABLE "SYSTEM"."HOADONNHAP" ADD CONSTRAINT "HOADONNHAP_PK" PRIMARY KEY ("ID_HDNHAP")

USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ENABLE;

ALTER TABLE "SYSTEM"."HOADONNHAP" MODIFY ("ID_HDNHAP" NOT NULL ENABLE);

--------------------------------------------------------

-- Constraints for Table KHACHHANG

--------------------------------------------------------

ALTER TABLE "SYSTEM"."KHACHHANG" ADD CONSTRAINT "KHACHHANG_PK" PRIMARY KEY ("ID_KH")

USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ENABLE;

ALTER TABLE "SYSTEM"."KHACHHANG" MODIFY ("ID_KH" NOT NULL ENABLE);

--------------------------------------------------------

Page 35
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

-- Constraints for Table NCC

--------------------------------------------------------

ALTER TABLE "SYSTEM"."NCC" ADD CONSTRAINT "NCC_PK" PRIMARY KEY ("ID_NCC")

USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ENABLE;

ALTER TABLE "SYSTEM"."NCC" MODIFY ("ID_NCC" NOT NULL ENABLE);

--------------------------------------------------------

-- Constraints for Table NHANVIEN

--------------------------------------------------------

ALTER TABLE "SYSTEM"."NHANVIEN" ADD CONSTRAINT "NHANVIEN_PK" PRIMARY KEY ("ID_NV")

USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ENABLE;

ALTER TABLE "SYSTEM"."NHANVIEN" MODIFY ("ID_NV" NOT NULL ENABLE);

--------------------------------------------------------

-- Constraints for Table NHASANXUAT

--------------------------------------------------------

ALTER TABLE "SYSTEM"."NHASANXUAT" ADD CONSTRAINT "NHASANXUAT_PK" PRIMARY KEY ("ID_NHASX")

USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ENABLE;

ALTER TABLE "SYSTEM"."NHASANXUAT" MODIFY ("ID_NHASX" NOT NULL ENABLE);

--------------------------------------------------------

-- Constraints for Table QUYEN

--------------------------------------------------------

ALTER TABLE "SYSTEM"."QUYEN" ADD CONSTRAINT "QUYEN_PK" PRIMARY KEY ("ID_QUYEN")

USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ENABLE;

ALTER TABLE "SYSTEM"."QUYEN" MODIFY ("ID_QUYEN" NOT NULL ENABLE);

Page 36
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

-- Constraints for Table SANPHAM

--------------------------------------------------------

ALTER TABLE "SYSTEM"."SANPHAM" ADD CONSTRAINT "SANPHAM_PK" PRIMARY KEY ("ID_SP")

USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ENABLE;

ALTER TABLE "SYSTEM"."SANPHAM" MODIFY ("ID_SP" NOT NULL ENABLE);

--------------------------------------------------------

-- Constraints for Table XEBAOTRI

--------------------------------------------------------

ALTER TABLE "SYSTEM"."XEBAOTRI" MODIFY ("SOXE" NOT NULL ENABLE);

ALTER TABLE "SYSTEM"."XEBAOTRI" ADD CONSTRAINT "XEBAOTRI_PK" PRIMARY KEY ("SOXE")

USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE


DEFAULT)

TABLESPACE "SYSTEM" ENABLE;

--------------------------------------------------------

-- Ref Constraints for Table CHITIETBAOTRI

--------------------------------------------------------

ALTER TABLE "SYSTEM"."CHITIETBAOTRI" ADD CONSTRAINT "CHITIETBAOTRI_ID_HDBAOTRI" FOREIGN KEY ("ID_HDBAOTRI")

REFERENCES "SYSTEM"."HOADONBAOTRI" ("ID_HDBAOTRI") ENABLE;

ALTER TABLE "SYSTEM"."CHITIETBAOTRI" ADD CONSTRAINT "CHITIETBAOTRI_ID_SP" FOREIGN KEY ("ID_SP")

REFERENCES "SYSTEM"."SANPHAM" ("ID_SP") ENABLE;

--------------------------------------------------------

-- Ref Constraints for Table HOADONBAOTRI

--------------------------------------------------------

ALTER TABLE "SYSTEM"."HOADONBAOTRI" ADD CONSTRAINT "HOADONBAOTRI_ID_NV_FK" FOREIGN KEY ("ID_NV")

REFERENCES "SYSTEM"."NHANVIEN" ("ID_NV") ENABLE;

ALTER TABLE "SYSTEM"."HOADONBAOTRI" ADD CONSTRAINT "HOADONBAOTRI_SOXE_FK" FOREIGN KEY ("SOXE")

REFERENCES "SYSTEM"."XEBAOTRI" ("SOXE") ENABLE;

Page 37
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

ALTER TABLE "SYSTEM"."HOADONBAOTRI" ADD CONSTRAINT "HOADONBAOTRI_ID_KH_FK" FOREIGN KEY ("ID_KH")

REFERENCES "SYSTEM"."XEBAOTRI" ("SOXE") ENABLE;

--------------------------------------------------------

-- Ref Constraints for Table HOADONNHAP

--------------------------------------------------------

ALTER TABLE "SYSTEM"."HOADONNHAP" ADD CONSTRAINT "HOADONNHAP_ID_NV" FOREIGN KEY ("ID_NV")

REFERENCES "SYSTEM"."NHANVIEN" ("ID_NV") ENABLE;

--------------------------------------------------------

-- Ref Constraints for Table NHANVIEN

--------------------------------------------------------

ALTER TABLE "SYSTEM"."NHANVIEN" ADD CONSTRAINT "NHANVIEN_ID_QUYEN_FK" FOREIGN KEY ("ID_QUYEN")

REFERENCES "SYSTEM"."QUYEN" ("ID_QUYEN") ENABLE;

--------------------------------------------------------

-- Ref Constraints for Table SANPHAM

--------------------------------------------------------

ALTER TABLE "SYSTEM"."SANPHAM" ADD CONSTRAINT "SANPHAM_ID_NCC_FK" FOREIGN KEY ("ID_NCC")

REFERENCES "SYSTEM"."NCC" ("ID_NCC") ENABLE;

ALTER TABLE "SYSTEM"."SANPHAM" ADD CONSTRAINT "SANPHAM_ID_NHASX_FK" FOREIGN KEY ("ID_NHASX")

REFERENCES "SYSTEM"."NHASANXUAT" ("ID_NHASX") ENABLE;

ALTER TABLE "SYSTEM"."SANPHAM" ADD CONSTRAINT "SANPHAM_ID_NHOMP" FOREIGN KEY ("ID_NHOMSP")

REFERENCES "SYSTEM"."NHOMSP" ("ID_NHOMSP") ENABLE;

--------------------------------------------------------

-- Constraints for Table CTHDNHAP

--------------------------------------------------------

ALTER TABLE "SYSTEM"."CTHDNHAP" MODIFY ("ID_SP" NOT NULL ENABLE);

ALTER TABLE "SYSTEM"."CTHDNHAP" MODIFY ("DONGIA_NHAP" NOT NULL ENABLE);

-- Ref Constraints for Table CTHDNHAP

--------------------------------------------------------

ALTER TABLE "SYSTEM"."CTHDNHAP" ADD CONSTRAINT "CTHDNHAP_ID_HDNHAP" FOREIGN KEY ("ID_HDNHAP")

REFERENCES "SYSTEM"."HOADONBAOTRI" ("ID_HDNHAP") ENABLE;

ALTER TABLE "SYSTEM"."CTHDNHAP" ADD CONSTRAINT "CTHDNHAP_ID_SP" FOREIGN KEY ("ID_SP")

REFERENCES "SYSTEM"."SANPHAM" ("ID_SP") ENABLE;

--------------------------------------------------------

Page 38
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

3.3 Tạo view


create view v_dsnhanvien
Lấy ra danh sách tất cả nhân viên
select * from NHANVIEN;
create view v_dskhachhang
Lấy ra danh sách tất cả khách hàng
select * from KHACHHANG;
Lấy ra danh sách những khách hàng mới create view V_dskhachhangmoinhat
nhất select * from KHACHHANG order by ID_KH DESC;
create view v_dssanpham
Lấy ra thông tin danh sách tất cả sản phẩm
select * from SANPHAM;
create view v_dssanphammoinhat
Lấy ra danh sách những sản phẩm mới nhất
select * from SANPHAM order by ID_SP DESC;
create view v_dsnsx
Lấy ra danh sách tất cả nhà sản xuất
select * from NHASANXUAT;
create view v_dsnsxmoinhat
Lấy ra danh sách những nhà sản xuất mới
select * from NHASANXUAT order by ID_NHASX
nhất
DESC;
create view v_dsnhomsp
Lẩy ra danh sách tất cả nhóm sản phẩm select * from NHOMSP;

Lấy ra thông tin những nhóm sản phẩm mới create view v_dsnhomspmoinhat
nhất select * from NHOMSP order by ID_NHOMSP DESC;
create view v_dsncc
Lấy ra danh sách tất cả nhà cung cấp
select * from NCC;
Lây ra thông tin những nhà cung cấp mới create view v_dsnccmoinhat
nhất select * from NCC order by ID_NCC DESC;
create view v_dshoadonnhap
Lấy ra danh sách tất cả hóa đơn nhập
select * from HOADONNHAP;
create view v_dshoadonnhapmoinhat
Lấy ra thông tin những hóa đơn nhập mới
select * from HOADONNHAP order by ID_HDNHAP
nhất
DESC;
create view v_dsxebaotri
Lấy ra danh sách tất cả xe bảo trì
select * from XEBAOTRI;
Lấy ra danh sách tất cả chi tiết hóa đơn bảo create view v_dschitiethdbaotri
trì select * from CHITIETHOADONBAOTRI;
creare view v_dschitietxebaotri
Lấy ra danh sách tất cả chi tiết xe bảo trì
select * from CHITIETXEBAOTRI;
Lấy ra danh sách tất cả thông tin thanh toán create view v_dsthanhtoanno
nợ select * from CHITIETTHANHTOANNO;
create view v_quyen
Lấy ra thông tin tất cả các quyền người dùng
select * from QUYEN;
Lâấy ra thông tin tất cả chi tiết hóa đơn create view v_dschitiethdnhap
nhập select * from CTHDNHAP;
Lấy ra thông tin chi tiết hóa đơn nhập mới create view v_dschitiethdnhapmoinhat
gần đây select * from CTHDNHAP order by ID_HDNHAP DESC;

Page 39
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

3.4 Store procedure


create or replace procedure sq_NhanVien_GetByID (Username in varchar2)
as
Lấy ra thông CURSOR cur_ds is
tin của nhân select * from NhanVien where ID_NV=Username ;
viên với tham begin
sô truyền vào for k in cur_ds
là mã nhân loop
viên. DBMS_OUTPUT.PUT_LINE(k.ID_NV||','||k.TEN_NV);
end loop;
end;
create or replace procedure sq_NhanVien_GetByTop (Username in varchar2, Pass in
varchar2)
as
CURSOR cur_ds is
Lấy ra thông select ID_NV, ID_QUYEN, MATKHAU, DIACHI_NV, SDT_NV, EMAIL_NV,
tin của nhân TK_NV, CMND_NV, TEN_NV, TINHTRANG_ACC from NHANVIEN where
viên với tham ID_NV=Username and MATKHAU = Pass;
sô truyền vào begin
là mã nhân for k in cur_ds
viên và mật loop
khẩu.
DBMS_OUTPUT.PUT_LINE(k.ID_NV||','||k.ID_QUYEN||','||k.MATKHAU||','||k.DIAC
HI_NV||','||k.SDT_NV||','||k.EMAIL_NV||','||k.TK_NV);
end loop;
end;
create or replace procedure sq_NhanVien_DoiMatKhau (Username in varchar2, Pass
in varchar2)
is
Cho phép
begin
nhân viên thay
update NHANVIEN set MATKHAU = Pass where ID_NV = Username;
đổi mật khẩu
COMMIT ;
END;
CREATE OR REPLACE PROCEDURE sq_NhanVien_Delete (Username IN
Xóa thông tin varchar2)
nhân viên với IS
mã nhân viên BEGIN
là tham số DELETE NHANVIEN where ID_NV = Username;
truyền vào COMMIT;
END;

Page 40
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

create or replace procedure sq_NhanVien_Insert (Username in varchar2, maquyen in


VARCHAR2, Pass in VARCHAR2, ten in nvarchar2, diachi in nvarchar2, sdt in
varchar2, email in varchar2, sotk in varchar2, cmnd in number, tinhtrang in
VARCHAR2)
is
begin
INSERT INTO NHANVIEN
(
ID_NV,
ID_QUYEN,
MATKHAU,
Cho phép TEN_NV,
thêm một DIACHI_NV,
nhân viên mới SDT_NV,
EMAIL_NV,
TK_NV,
CMND_NV,
TINHTRANG_ACC
)
VALUES
(
Username, maquyen, Pass, ten, diachi, sdt, email, sotk, cmnd, tinhtrang
);
COMMIT ;
END;
create or replace procedure sq_NhanVien_Update (Username in varchar2, maquyen in
VARCHAR2, Pass in VARCHAR2, ten in nvarchar2, diachi in nvarchar2, sdt in
varchar2, email in varchar2, sotk in varchar2, cmnd in number, tinhtrang in
VARCHAR2)
Cho phép cập is
nhật thông tin begin
nhân viên update NHANVIEN set DIACHI_NV = diachi, SDT_NV = sdt, EMAIL_NV =
email, TK_NV = sotk, MATKHAU = Pass, TEN_NV = ten, CMND_NV = cmnd,
TINHTRANG_ACC = tinhtrang, ID_QUYEN = maquyen where ID_NV = Username;
COMMIT ;
END;
create or replace procedure sq_KhachHang_GetByID (makh in varchar2)
AS
CURSOR cur_ds is
Lấy ra thông
select * from KHACHHANG where ID_KH=makh ;
tin khách hàng
begin
với mã khách
for k in cur_ds
hàng là tham
loop
số truyền vào.
DBMS_OUTPUT.PUT_LINE(k.ID_KH||','||k.TEN_KH);
end loop;
end;

Page 41
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

create or replace procedure sq_KhachHang_Insert (makh in varchar2, tenkh in


nvarchar2, diachikh in nvarchar2, sdtkh in varchar2, emailkh in varchar2, tkkh in
varchar2, masothue in varchar2)

is
begin

INSERT INTO KHACHHANG


(
ID_KH,
Tạo thông tin TEN_KH,
một khách DIACHI_KH,
hàng mới vào SDT_KH,
bảng EMAIL_KH,
khachhang. TK_KH,
MASOTHUE

)
VALUES
(
makh, tenkh, diachikh, sdtkh, emailkh, tkkh, masothue
);

COMMIT ;
END;
create or replace procedure sq_KhachHang_Update (makh in varchar2, tenkh in
nvarchar2, diachikh in nvarchar2, sdtkh in varchar2, emailkh in varchar2, tkkh in
varchar2, masothue in varchar2)
Cập nhật is
thông tin của begin
một khách update KHACHHANG set TEN_KH = tenkh, DIACHI_KH = diachikh, SDT_KH =
hàng. sdtkh, EMAIL_KH = emailkh, TK_KH = tkkh, MASOTHUE = masothue where
ID_KH = makh;
COMMIT ;
END;
CREATE OR REPLACE PROCEDURE sq_KhachHang_Delete(makh IN varchar2)
IS
Xóa thông tin BEGIN
khách hàng
với mã khách DELETE KHACHHANG where ID_KH = makh;
hàng là tham
số truyền vào. COMMIT;

END;

Page 42
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

create or replace procedure sq_SanPham_GetByID (sp in varchar2)


as
CURSOR cur_ds is
Lấy ra thông
select * from SANPHAM where ID_SP=sp ;
tin sản phẩm
begin
với mã sản
for k in cur_ds
phẩm là tham
loop
số truyền vào
DBMS_OUTPUT.PUT_LINE(k.ID_SP||','||k.TENSP);
end loop;
end;
create or replace procedure sq_SanPham_Insert (sp in varchar2, nsx in varchar2,
nhomsp in varchar2, ncc in varchar2, tensp in nvarchar2, dvt in nvarchar2, gc in
nvarchar2, dg in nvarchar2, gb in varchar2)
is
begin
INSERT INTO SANPHAM
(
ID_SP,
ID_NHASX,
ID_NHOMSP,
ID_NCC,
Cho phép
TENSP,
thêm một sản
DVT,
phẩm mới
GHICHU,
DIENGIAI,
GIABAN
)
VALUES
(
sp, nsx, nhomsp, ncc, tensp, dvt, gc, dg, gb
);

COMMIT ;
END;

CREATE OR REPLACE PROCEDURE sq_SanPham_Delete(sp IN varchar2)


IS
Xóa thông tin BEGIN
một sản phẩm DELETE SANPHAM where ID_SP = sp;
COMMIT;
END;

Page 43
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

create or replace procedure sq_SanPham_Update (sp in varchar2, nsx in varchar2,


nhomsp in varchar2, ncc in varchar2, tensp in nvarchar2, dvt in nvarchar2, gc in
nvarchar2, dg in nvarchar2, gb in varchar2)
Cập nhật is
thông tin một begin
sản phẩm update SANPHAM set TENSP = tensp, DVT = dvt, DIENGIAI = dg, GHICHU =
gc, GIABAN = gb where ID_SP = sp;
COMMIT ;
END;
create or replace procedure sq_SanPham_Updategia (sp in varchar2, gb in varchar2)
Cập nhật is
thông tin giá begin
bán của một update SANPHAM set GIABAN = gb where ID_SP = sp;
sản phẩm COMMIT ;
END;
create or replace procedure sq_NhaSanXuat_GetById(mansx in varchar2)
as
Lấy ra thông CURSOR cur_ds is
tin nhà sản select * from NHASANXUAT where ID_NHASX=mansx;
xuất với mã begin
nhà sản xuất là for k in cur_ds
tham số loop
truyền vào DBMS_OUTPUT.PUT_LINE(k.ID_NHASX||','||k.TEN_NSX);
end loop;
end;
create or replace procedure sq_NhaSanXuat_Insert (mansx in varchar2, tennsx in
nvarchar2, mt in nvarchar2)
is
begin

INSERT INTO NHASANXUAT


(
ID_NHASX,
Thêm một nhà TEN_NSX,
sản xuất mới MOTA
)
VALUES
(
mansx, tennsx, mt
);

COMMIT ;
END;

Page 44
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

create or replace procedure sq_NhaSanXuat_Update (mansx in varchar2, tennsx in


nvarchar2, mt in nvarchar2)
is
Cập nhật
begin
thông tin của
update NHASANXUAT set TEN_NSX = tennsx, MOTA = mt where
một nhà sản
ID_NHASX = mansx;
xuất
COMMIT ;
END;

CREATE OR REPLACE PROCEDURE sq_NhaSanXuat_Delete(mansx IN varchar2)


IS
BEGIN
Cho phép một
DELETE NHASANXUAT where ID_NHASX = mansx;
nhà sản xuất
COMMIT;

END;
create or replace procedure sq_NhomSP_GetById
as
Lấy ra thông CURSOR cur_ds is
tin nhóm sản select * from NHOMSP where ID_NHOMSP=nhomsp;
phẩm với tham begin
số truyền vào for k in cur_ds
mã nhóm sản loop
phẩm DBMS_OUTPUT.PUT_LINE(k.ID_NHOMSP||','||k.TEN_NHOMSP);
end loop;
end;
create or replace procedure sq_NhomSP_Insert (nhomsp in varchar2, tennhomsp in
nvarchar2)
is
begin

INSERT INTO NHOMSP


(
Cho phép
ID_NHOMSP,
thêm một
TEN_NHOMSP
nhóm sản
)
phẩm mới
VALUES
(
nhomsp, tennhomsp
);

COMMIT ;
END;

Page 45
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

create or replace procedure sq_NhomSP_Update (nhomsp in varchar2, tennhomsp in


nvarchar2)
is
Cập nhật
begin
thông tin một
update NHOMSP set TEN_NHOMSP = tennhomsp where ID_NHOMSP =
nhóm sản
nhomsp;
phẩm
COMMIT ;
END;

CREATE OR REPLACE PROCEDURE sq_NhomSP_Delete(nhomsp IN varchar2)


IS
BEGIN
Xóa một
nhóm sản DELETE NHOMSP where ID_NHOMSP = nhomsp;
phẩm
COMMIT;

END;
create or replace procedure sq_NhaCungCap_GetById(mancc in varchar2)
as
Lấy ra thông CURSOR cur_ds is
tin nhà cung select * from NCC where ID_NCC=mancc;
cấp với mã begin
nhà cung cấp for k in cur_ds
là tham số loop
truyền vào DBMS_OUTPUT.PUT_LINE(k.ID_NCC||','||k.TEN_NCC);
end loop;
end;
create or replace procedure sq_NhaCungCap_Insert (mancc in varchar2, tenncc in
nvarchar2, dcncc in nvarchar2, sdtncc in varchar2, faxncc in varchar2, emailncc in
varchar2, tkncc in varchar2)
is
begin

INSERT INTO NCC


(
ID_NCC,
TEN_NCC,
DIACHI,
Thêm một nhà
SDT_NCC,
cung cấp mới
FAX_NCC,
EMAIL_NCC,
TK_NCC
)
VALUES
(
mancc, tenncc, dcncc, sdtncc, faxncc, emailncc, tkncc
);

COMMIT ;
END;

Page 46
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

create or replace procedure sq_NhaCungCap_Update (mancc in varchar2, tenncc in


nvarchar2, dcncc in nvarchar2, sdtncc in varchar2, faxncc in varchar2, emailncc in
varchar2, tkncc in varchar2)
is
Cập nhật
begin
thông tin nhà
update NCC set TEN_NCC = tenncc, DIACHI = dcncc, SDT_NCC = sdtncc,
cung cấp
FAX_NCC = faxncc, EMAIL_NCC = emailncc, TK_NCC = tkncc where ID_NCC =
mancc;
COMMIT ;
END;
CREATE OR REPLACE PROCEDURE sq_NhaCungCap_Delete(mancc IN varchar2)
IS
BEGIN
Cho phép xóa
DELETE NCC where ID_NCC = mancc;
nhà cung cấp
COMMIT;

END;
create or replace procedure sq_HoaDonNhap_GetById (mahd in varchar2)
as
CURSOR cur_ds is
Lây ra thông
select * from HOADONNHAP where ID_HDNHAP = mahd ;
tin hóa đơn
begin
nhập với mã
for k in cur_ds
hóa đơn là
loop
tham số
DBMS_OUTPUT.PUT_LINE(k.ID_HDNHAP||','||k.NGAYNHAP);
truyền vào
end loop;
end;

create or replace procedure sq_HoaDonNhap_Insert (mahd in varchar2, manv in


nvarchar2, ngaynhaphd in date, tongsotien in varchar, datra in varchar2, tinhtrang in
varchar2, mancc in varchar2, ngaycn in date)
is
begin

INSERT INTO HOADONNHAP


(
ID_HDNHAP,
ID_NV,
NGAYNHAP,
Thêm một hóa TONGTIEN,
đơn nhập TIENTRATRUOC,
TINHTRANG_HDNHAP,
ID_NCC,
NGAYCAPNHAT
)
VALUES
(
mahd, manv, ngaynhaphd, tongsotien, datra, tinhtrang, mancc, ngaycn
);

COMMIT ;
END;

Page 47
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

create or replace procedure sq_HoaDonNhap_Update (mahd in varchar2, tongsotien


in varchar, datra in varchar2, ngaynhaphd in date, ngaycapnhathd in date, tinhtrang in
varchar2, mancc in varchar2)
is
Cập nhật
begin
thông tin một
update HOADONNHAP set TONGTIEN = tongsotien, TIENTRATRUOC = datra,
hóa đơn nhập
NGAYNHAP = ngaynhaphd, NGAYCAPNHAT = ngaycapnhathd,
TINHTRANG_HDNHAP = tinhtrang, ID_NCC=mancc where ID_HDNHAP = mahd;
COMMIT ;
END;
create or replace procedure sq_HoaDonNhap_Tien (mahd in varchar2, tongsotien in
varchar)
is
begin

INSERT INTO HOADONNHAP


(
Cập nhật tổng ID_HDNHAP,
số tiền cho TONGTIEN
hóa đơn nhập )
VALUES
(
mahd, tongsotien
);

COMMIT ;
END;
CREATE OR REPLACE PROCEDURE sq_HoaDonNhap_Delete(mahd IN varchar2)
IS
BEGIN
Xóa một hóa
DELETE HOADONNHAP where ID_HDNHAP = mahd;
đơn nhập
COMMIT;

END;
create or replace procedure sq_XeBaoTri_GetById (maxe in varchar2)
as
CURSOR cur_ds is
Lấy ra thông
select * from XEBAOTRI where SOXE = maxe;
tin xe bảo trì
begin
với mã xe là
for k in cur_ds
tham số
loop
truyền vào
DBMS_OUTPUT.PUT_LINE(k.SOXE||','||k.TIHHTRANG_XE);
end loop;
end;

Page 48
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

create or replace procedure sq_XeBaoTri_Insert (maxe in varchar2, yc in nvarchar2,


mt in nvarchar2, tinhtrang in nvarchar2, ngaynhanxe in date, makh in varchar2)
is
begin

INSERT INTO XEBAOTRI


(
SOXE,
YEUCAU,
MOTA,
Thêm thông
TINHTRANG_XE,
tin xe bảo trì
NGAYNHAN,
ID_KH
)
VALUES
(
maxe, yc, mt, tinhtrang, ngaynhanxe, makh
);

COMMIT ;
END;

create or replace procedure sq_XeBaoTri_Update (maxe in varchar2, yc in nvarchar2,


mt in nvarchar2, tinhtrang in nvarchar2, ngaynhanxe in date, makh in varchar2)
is
Cập nhật begin
thông tin xe update XEBAOTRI set YEUCAU = yc, MOTA = mt, TINHTRANG_XE =
bảo trì tinhtrang, NGAYNHAN = ngaynhanxe, ID_KH = makh where SOXE = maxe;
COMMIT ;
END;

CREATE OR REPLACE PROCEDURE sq_XeBaoTri_Delete(maxe IN varchar2)


IS
BEGIN
Xóa thông tin
DELETE XEBAOTRI where SOXE = maxe;
xe bảo trì
COMMIT;
END;

Page 49
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

create or replace procedure sq_ChiTietBaoTri_Insert (masp in varchar2, mahdbt in


varchar2, sl in number, dongia in float, hinhthuc in nvarchar2)
is
begin

INSERT INTO CHITIETBAOTRI


(
ID_SP,
ID_HDBAOTRI,
Thêm một
SOLUONG,
thông tin bảo
DONGIA_SANPHAM,
trì
HINHTHUC_BAOTRI
)
VALUES
(
masp, mahdbt, sl, dongia, hinhthuc
);

COMMIT ;
END;
create or replace procedure sq_ChiTietBaoTri_Update (masp in varchar2, mahdbt in
varchar2, sl in number, dongia in float, hinhthuc in nvarchar2)
is
Cập nhật begin
thông tin bảo update CHITIETBAOTRI set SOLUONG = sl, DONGIA_SANPHAM =
trì dongia, HINHTHUC_BAOTRI = hinhthuc where ID_SP = masp and ID_HDBAOTRI =
mahdbt;
COMMIT ;
END;
CREATE OR REPLACE PROCEDURE sq_ChiTietBaoTri_Delete (masp IN varchar2,
mahdbt in varchar2)
IS
Xóa một BEGIN
thông tin bảo
trì DELETE CHITIETBAOTRI where ID_SP = masp and ID_HDBAOTRI = mahdbt;

COMMIT;
END;

Page 50
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

create or replace procedure update_tong_tien


as
begin
update HOADONBAOTRI
set TONGTIEN=
Cập nhật
(
thông tin hóa
select sum(SOLUONG*DONGIA_SANPHAM)
đơn bảo trì
from CHITIETBAOTRI
where HOADONBAOTRI.ID_HDBAOTRI = CHITIETBAOTRI.ID_HDBAOTRI
group by ID_HDBAOTRI
);
end;
create or replace procedure sq_Quyen_GetById (maquyen in varchar2)
as
Lây ra thông CURSOR cur_ds
tin quyền is select * from QUYEN where ID_QUYEN=maquyen ;
người dùng begin
với mã quyền for k in cur_ds
là tham số loop
truyền vào DBMS_OUTPUT.PUT_LINE(k.ID_QUYEN||','||k.TEN_QUYEN);
end loop;
end;
create or replace procedure sq_Quyen_Insert (maquyen in varchar2, ten in nvarchar2)
is
begin

INSERT INTO QUYEN


(
ID_QUYEN,
Thêm một TEN_QUYEN
quyền mới )
VALUES
(
maquyen, ten
);

COMMIT ;
END;

Page 51
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

create or replace procedure sq_Quyen_Update (maquyen in varchar2, ten in


nvarchar2)
is
Cập nhật
begin
thông tin
update QUYEN set ID_QUYEN = maquyen, TEN_QUYEN = ten where
quyền
ID_QUYEN = maquyen;
COMMIT ;
END;
CREATE OR REPLACE PROCEDURE sq_Quyen_Delete (maquyen IN varchar2)
IS
BEGIN
Xóa quyền DELETE QUYEN where ID_QUYEN = maquyen;
COMMIT;
END;

create or replace procedure sq_ChiTietNhap_GetById (mahd in varchar2, masp in


varchar2)
as
Lấy ra thông
CURSOR cur_ds
tin chi tiết
is select * from CTHDNHAP where ID_HDNHAP = mahd and ID_SP = masp;
nhập với mã
begin
hóa đơn nhập
for k in cur_ds
và mã sản
loop
phẩm là tham
DBMS_OUTPUT.PUT_LINE(k.ID_SP||','||k.ID_HDNHAP);
số truyền vào
end loop;
end;

create or replace procedure sq_ChiTietBaoTri_Insert (mahd in varchar2, masp in


varchar2, sl in INT, dongia in float)
is
begin
INSERT INTO CTHDNHAP
(
ID_SP,
Thêm thông ID_HDNHAP,
tin chi tiết bảo SL_NHAP,
trì DONGIA_NHAP
)
VALUES
(
masp, mahd, sl, dongia
);
COMMIT ;
END;

Page 52
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

create or replace procedure sq_ChiTietNhap_Update (mahd in varchar2, masp in


varchar2, sl in INT, dongia in float)
is
Cập nhật
begin
thông tin số
update CTHDNHAP set SL_NHAP = sl, DONGIA_NHAP = dongia where ID_SP
lượng và đơn
= masp and ID_HDNHAP = mahd and ID_SP = masp;
giá nhập trong
COMMIT ;
chi tiết hóa
END;
đơn nhập

CREATE OR REPLACE PROCEDURE sq_ChiTietNhap_Delete (mahd IN varchar2,


masp in varchar2)
Xóa thông tin IS
chi tiết hóa BEGIN
đơn nhập DELETE CTHDNHAP where ID_HDNHAP = mahd and ID_SP = masp;
COMMIT;
END;

3.5 Function
create or replace function sq_ChiTietBaoTri_Sum (mahd varchar2)
RETURN number
AS
tong number;
TÍnh tổng giá trị hóa begin
đơn bảo trì SELECT SUM( SoLuong * DONGIA) into tong FROM
ChiTietBaoTri where ID_Hoadon = mahd;
return tong;
end;

create or replace function sq_ChiTietHDNhap_Sum (mahd varchar2)


RETURN number
AS
Tính tổng giá trị hóa tong number;
đơn nhập begin
SELECT SUM( SLNHAP * DONGIA_NHAP) into tong FROM
CTHDNHAP where ID_HDNHAP = mahd;
return tong;
end;

Page 53
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

3.6 Viết Trigger

create or replace TRIGGER check_TONGTRIGIA


BEFORE INSERT or update of TONGTRIGIA ON HOADON
FOR EACH ROW
BEGIN
IF INSERTING OR (UPDATING AND :OLD.TONGTRIGIA!=
viết trigger không
:new.TONGTRIGIA) THEN
cho phép tổng trị giá
BEGIN
của hóa đơn không
IF(:new.TONGTRIGIA>2000000) THEN
được vượt qua 20
RAISE_APPLICATION_ERROR(-20001,'DON HANG KHONG
triệu đồng.
DUOC LON HON 20TRIEU');
end if;
END;
END IF;
END;
create or replace TRIGGER check_GIABAN
BEFORE INSERT or update of GIABAN ON SANPHAM
FOR EACH ROW
BEGIN
IF INSERTING OR (UPDATING AND :OLD.giaban!= :NEW.giaban)
THEN
viết trigger không BEGIN
cho phép giá bán nhỏ IF (:NEW.GIABAN < :OLD.GIAMUA )
hơn giá mua THEN
RAISE_APPLICATION_ERROR(-20001,'GIA BAN PHAI LON HON
GIA MUA ');
end if;
END;
END IF;
END;

Page 54
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

CREATE OR REPLACE TRIGGER check_tensp


BEFORE INSERT OR UPDATE OF TENSP ON SANPHAM
FOR EACH ROW
DECLARE
DEM NUMBER;
BEGIN
IF INSERTING OR (UPDATING AND :old.TENSP != :new.TENSP)
THEN
viết trigger không
BEGIN
cho phép tên sản
SELECT COUNT(*) INTO DEM FROM SANPHAM WHERE
phẩm được trùng
TENSP=:new.TENSP;
nhau
IF (DEM>0)
THEN
RAISE_APPLICATION_ERROR(-20001,'TEN SAN PHAM DA
TON TAI ');
END IF;
END;
END IF;
END;
CREATE OR REPLACE TRIGGER check_ngaylaphd
BEFORE INSERT OR UPDATE OF ngaylaphd ON HOADON
FOR EACH ROW
BEGIN
IF INSERTING OR (UPDATING AND :old.NGAYLAPHD !=
:new.NGAYLAPHD)
THEN
BEGIN
viết trigger không
cho phép ngaylaphd
lớn hơn ngày hiện tại
IF (:new.NGAYLAPHD > SYSDATE)
THEN
RAISE_APPLICATION_ERROR(-20001,'NGAYLAP K DC LON HON
NGAY HIEN TAI ');
END IF;
END;
END IF;
END;

Page 55
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

Chương 4: Kết Luận Và Kiến Nghị


Với chương trình quản lí sửa chữa bảo trì oto, chúng ta có thể áp dụng nó vào
một số mô hình quản lí vừa và nhỏ. Chương trình đáp ứng được những yêu cầu cơ bản
nhất, dễ sử dụng và thân thiện với người dùng. Do kinh nghiệm và kiến thức còn hạn
chế nên chương trình mà chúng em xây dựng còn nhiều hạn chế, thiếu sót, đáp ứng
chưa cao. Vì thế trong giai đoạn tới, chúng em sẽ tiếp tục nghiên cứu, phát triển để có
thể đưa chương trình vào thực tiễn.

Để hoàn thành được đề tài tốt nghiệp này cùng với sự nổ lực của nhóm thực
hiện đề tài,cùng sự giúp đỡ thầy cô bạn bè. Chúng em xin chân thành cảm ơn thầy Võ
Hoàng Khang phụ trách khoa Công nghệ thông tin trường Đại học Công Nghệ TP.Hồ
Chí Minh đã tận tình giúp đỡ, chỉ bảo chúng em để hoàn thành tốt bài báo cáo này.

Page 56
Đề tài: Bảo trì và sửa chửa gara ôtô GVHD: Võ Hoàng Khang

Tài Liệu Tham Khảo


Sách tham khảo
1. Đỗ Trung Tuấn; Cơ Sở dữ liệu; Nhà xuất bản Giáo dục; 1998.

2. Phạm Hữu Khang (Chủ biên); Lập trình cơ sở dữ liệu (tập 4_ 2 quyển); NXB
Lao Động Xã Hội; 2006

3. Phạm Hữu Khang (Chủ biên); Lập trình Windows forms (tập 2); NXB Lao
Động Xã Hội; 2006

4. Phạm Hữu Khang (Chủ biên); Lập trình hướng đối tượng (tập 3); NXB Lao
Động Xã Hội; 2006

Website
1. Website youtube.com

2. Forum caulacbovs.com

3. Forum congdongcviet.com

4. Bách khoa toàn thư wikipedia.org

Page 57

You might also like