Untitled 0 ĐẠI HỌC UEH TRƯỜNG CÔNG NGHỆ VÀ THIẾT KẾ KHOA CÔNG NGHỆ THÔNG TIN KINH DOANH ĐỒ ÁN NHÓM Thiết kế Cơ Sở Dữ Liệu Hệ thống Quản lý Nhân viên, Khách hàng và Đơn đặt hàng Môn học Cơ Sở Dữ Liệu G[.]
Trang 1ĐẠI HỌC UEH TRƯỜNG CÔNG NGHỆ VÀ THIẾT KẾ KHOA CÔNG NGHỆ THÔNG TIN KINH DOANH
ĐỒ ÁN NHÓM Thiết kế Cơ Sở Dữ Liệu
Hệ thống Quản lý Nhân viên, Khách hàng và Đơn đặt hàng
Môn học: Cơ Sở Dữ Liệu
Giảng viên hướng dẫn: Bùi Xuân Huy
Trang 2Đồ Án Cuối Kỳ Môn Cơ Sở Dữ Liệu
Nhóm 7 Thông tin các thành viên
Trang 3M ục Lục
I/ Mô tả các quy trình nghiệp vụ liên quan: 4
1/ Quy Trình Quản Lý Đơn Đặt Hàng 4
2/ Quy Trình Đặt Hàng Từ Nhà Cung Cấp 4
3/ Các nghiệp vụ khác 4
II/ Mô tả dữ liệu: 4
III/ Mô hình hóa dữ liệu 6
1/ Các thực thể tham gia: 6
2/ Mô hình quan hệ - thực thể: 6
IV/ Chuyển đổi thành lược đồ quan hệ: 7
1/ Lược đồ quan hệ: 7
2/ Diễn giải thực thể và thuộc tính: 7
V/ Ràng buộc toàn vẹn: 10
1/ Bảng Nhân Viên - Employee: 10
2/ Bảng Chi Nhánh – Branch: 12
3/ Bảng Khách Hàng – Client: 13
4/ Bảng Đơn Đặt Hàng – Orders: 13
5/ Bảng Chi Tiết Đơn Đặt Hàng – Order_details: 15
6/ Bảng Hàng Hóa Cung Cấp – Item: 16
7/ Bảng Nhà Cung Cấp – Supplier: 17
VI/ Phụ thuộc hàm và chuẩn hóa: 18
VII/ Cài đặt cơ sở dữ liệu: 20
1/ Cài đặt các bảng: 20
2/ Mô hình dữ liệu trong SQL Server: 22
VIII/ Truy vấn: 23
Trang 4M ục Lục Bảng
Table 1 Employee - Nhân Viên 7
Table 2 Branch - Chi Nhánh 8
Table 3 Client - Khách Hàng 8
Table 4 Orders - Đơn Đặt Hàng 8
Table 5 Order_details - Chi Tiết Đơn Đặt Hàng 8
Table 6 Item - Hàng Hóa Cung Cấp 9
Table 7 Supplier - Nhà Cung Cấp 9
Trang 5I/ Mô t ả các quy trình nghiệp vụ liên quan:
1/ Quy Trình Qu ản Lý Đơn Đặt Hàng
- Các Khách Hàng đối tác sẽ làm việc với những Chi Nhánh tại các tỉnh thành khác nhau của doanh nghiệp Khi đó, những thông tin của khách hàng như tên công ty, loại hàng hóa đặt, số lượng, thông tin liên lạc, địa chỉ sẽ được nhân viên ghi nhận Trong quá trình làm việc, thông tin của Nhân Viên trực thuộc chi nhánh làm việc với khách hàng đó cũng sẽ được ghi nhận
- Sau khi đã bàn bạc và ghi nhận tất cả những yêu cầu đặt hàng thì một đơn đặt hàng sẽ được tạo, trong đó có thông tin về KH và nhân viên làm việc với KH, ngày đặt hàng và chi tiết đơn đặt hàng (gồm loại mặt hàng, số lượng, giá thành) để sau đó tính tổng giá trị của mỗi mặt hàng
bằng cách lấy (giá thành x số lượng đặt) và tính tổng giá trị đơn hàng bằng cách lấy (tổng giá trị của các mặt hàng trong đơn hàng đó cộng lại)
2/ Quy Trình Đặt Hàng Từ Nhà Cung Cấp
- Doanh nghiệp sẽ thu thập thông tin về nhà cung cấp (như mã nhà cung cấp, tên nhà cung cấp, loại hàng hóa và địa chỉ), sau đó phân tích và đánh giá nhà cung cấp trên cơ sở những thông tin thu thập được
- Tất cả các nhà cung cấp đã được phê duyệt phải được cập nhật vào danh sách nhà cung cấp gồm có thông tin tên nhà cung cấp và loại hàng hóa cung cấp để làm căn cứ lựa chọn trong quá trình thực hiện mua hàng của doanh nghiệp
- Chi nhánh có nhu cầu mua hàng thì lập phiếu yêu cầu cung ứng hàng chuyển cho bộ phận cung ứng xem xét Căn cứ vào phiếu yêu cầu cung ứng hàng, trưởng bộ phận gửi thông tin mua vật
tư cho các nhà cung cấp đã được phê duyệt để lựa chọn nhà cung cấp phù hợp Sau khi hoàn tất
việc phê duyệt, trưởng bộ phận cung ứng tiến hành tiếp xúc, thương thảo và soạn thảo hợp đồng (hoặc đơn đặt hàng) với nhà cung cấp Sau khi nhận được hàng hóa bộ phận cung ứng tiến hành kiểm tra, nghiệm thu hàng hóa nếu hàng hóa đáp ứng đúng các yêu cầu nêu trong hợp đồng thì tiến hành nhập kho
3/ Các nghi ệp vụ khác
- Nghiệp vụ cập nhật giá trị và chiết khấu cho các đơn đặt hàng: tính toán giá trị của từng mặt hàng trong chi tiết của từng đơn hàng, và cập nhật tổng giá trị đơn hàng đó bằng cách lấy tổng giá trị của các mặt hàng trong chi tiết đơn hàng Sau đó dựa vào bảng chiết khấu sau để cập nhật các mức chiết khấu khác nhau dựa trên giá trị của mỗi đơn hàng
T ổng giá trị đơn đặt hàng M ức chiết khấu
Trang 6Để quản lý nhân viên hiệu quả cũng như biết được các hoạt động của mỗi người trong các quy trình của công ty, mỗi nhân viên sẽ được cấp một Mã nhân viên duy nhất giúp phân biệt các nhân viên với nhau Ngoài ra, những thông tin cá nhân (như tên, ngày sinh, giới tính) và thông tin về lương của từng người cũng được ghi nhận
Ngoài ra mỗi nhân viên trực thuộc chi nhánh tại một tỉnh thành sẽ được giám sát bởi một nhân viên là giám sát, đồng thời cũng là trưởng chi nhánh tại tỉnh thành đó
- Thực thể Đơn Đặt Hàng:
Nhân viên trực thuộc chi nhánh sẽ làm việc với khách hàng để ghi nhận những thông tin khách hàng và đơn hàng, mỗi đơn đặt hàng sẽ có một mã định danh là mã đơn hàng, kèm theo ngày đặt hàng và tổng giá trị của đơn hàng
Ngoài ra, chi tiết của đơn đặt hàng bao gồm các loại hàng hóa mà khách hàng đã đặt, giá thành của từng mặt hàng, số lượng đặt là bao nhiêu để sau đó tính tổng giá trị của mỗi mặt hàng bằng cách lấy (giá thành x số lượng đặt)
- Thực thể Hàng Hóa Cung Cấp:
Để dễ dàng tham chiếu và quản lý các mặt hàng mà doanh nghiệp bán ra, các loại hàng hóa sẽ được ghi nhận chi tiết, cụ thể là mỗi mặt hàng sẽ được cung cấp một mã định danh, kèm theo các thông tin về tên mặt hàng, giá thành, đơn vị tính trên giá thành và thông tin của nhà cung cấp mặt hàng đó
- Thực thể Nhà Cung Cấp:
Để quản lý thông tin của các nhà cung cấp làm việc với doanh nghiệp, mỗi nhà cung cấp sẽ được phân biệt bằng một mã nhà cung cấp, kèm theo các thông tin như tên nhà cung cấp, loại hàng hóa cung cấp, thông tin liên lạc và địa chỉ nhà cung cấp
Trang 7III/ Mô hình hóa d ữ liệu 1/ Các th ực thể tham gia:
Trang 8IV/ Chuy ển đổi thành lược đồ quan hệ:
1/ Lược đồ quan hệ:
2/ Diễn giải thực thể và thuộc tính:
- Thực thể bảng Nhân Viên – Employee :
Tên trường Ki ểu dữ liệu Di ễn giải Ràng bu ộc
first_name VARCHAR (20) Tên nhân viên
sex VARCHAR (1) Giới tính Nam – M, Nữ - F ‘M’ or ‘F’
super_id INT Mã nhân viên giám sát Khóa ngoại branch_id INT Mã chi nhánh trực thuộc Khóa ngoại
Table 1 Employee - Nhân Viên
- Thực thể bảng Chi Nhánh – Branch:
Tên trường Ki ểu dữ liệu Di ễn giải Ràng bu ộc
branch_name VARCHAR (20) Tên chi nhánh
manager_id INT Mã trưởng chi nhánh Khóa ngoại
Trang 9Table 2 Branch - Chi Nhánh
- Thực thể bảng Khách Hàng – Client:
Tên trường Ki ểu dữ liệu Di ễn giải Ràng bu ộc
client_name VARCHAR (40) Tên khách hàng
client_contact VARCHAR (20) Số điện thoại khách hàng
client_address VARCHAR (100) Địa chỉ khách hàng
branch_id INT Mã chi nhánh phụ trách Khóa ngoại
Table 3 Client - Khách Hàng
- Thực thể bảng Đơn Đặt Hàng – Orders:
Tên trường Ki ểu dữ liệu Di ễn giải Ràng bu ộc
client_name VARCHAR (40) Tên khách hàng
order_subtotal INT Tổng giá trị đơn hàng
discount DECIMAL (3,2) Phần trăm giảm giá
client_id INT Mã khách hàng đặt Khóa ngoại emp_id INT Mã nhân viên lập đơn Khóa ngoại
Table 4 Orders - Đơn Đặt Hàng
- Thực thể bảng Chi Tiết Đơn Đặt Hàng – Order_details:
Tên trường Ki ểu dữ liệu Di ễn giải Ràng bu ộc
2 khóa ngo ại)
unit_cost INT Giá thành mỗi mặt hàng
Table 5 Order_details - Chi Tiết Đơn Đặt Hàng
- Thực thể bảng Hàng Hóa Cung Cấp – Item:
Trang 10Tên trường Ki ểu dữ liệu Di ễn giải Ràng bu ộc
item_name VARCHAR (40) Tên mặt hàng
item_unit VARCHAR (10) Mô tả đơn vị tính
supplier_id VARCHAR (10) Mã nhà cung cấp mặt hàng Khóa ngoại
Table 6 Item - Hàng Hóa Cung Cấp
- Thực thể bảng Nhà Cung Cấp – Supplier:
Tên trường Ki ểu dữ liệu Di ễn giải Ràng bu ộc
supplier_name VARCHAR (40) Tên nhà cung cấp
supplier_type VARCHAR (40) Loại hàng hóa cung cấp
supplier_contact VARCHAR (20) Số điện thoại nhà cung cấp
supplier_address VARCHAR (100) Địa chỉ nhà cung cấp
Table 7 Supplier - Nhà Cung Cấp
Trang 11V/ Ràng bu ộc toàn vẹn:
1/ B ảng Nhân Viên - Employee:
Mã nhân viên (emp_id) v ừa là Khóa Chính - PK trong bảng Nhân Viên - Employee, vừa là
ràng buộc Khóa Ngoại - FK trong bảng Nhân Viên dưới dạng mã của Nhân viên Giám sát (super_id)
Mã chi nhánh (branch_id) là FK trong bảng Nhân Viên, tham chiếu từ mã chi nhánh trong bảng
Chi Nhánh
- Đặc tả hình thức:
+ Ràng bu ộc khóa chính:
Ràng buộc mã nhân viên – R1:
t1, t2 ∊ Employee, t1 ≠ t2 → t1.emp_id ≠ t2.emp_id
(Trong bảng Nhân Viên - Employee, 2 dòng bất kỳ có mã nhân viên - emp_id không được phép trùng nhau)
+ Ràng bu ộc khóa ngoại:
Ràng buộc mã chi nhánh – R2:
∀ t ∊ Employee, ∃! t’ ∊ Branch, t.branch_id = t’.branch_id
(Trong quan hệ bảng Nhân Viên và bảng Chi Nhánh, giá trị mã chi nhánh - branch_id tại mỗi dòng trong bảng Nhân Viên phải tương ứng tồn tại với mã chi nhánh trong bảng Chi Nhánh) Ràng buộc mã nhân viên giám sát – R3:
∀ t ∊ Employee → t.emp_id ≠ t.super_id
(Trong bảng Nhân Viên, mọi dòng bất kỳ đều phải có mã nhân viên – emp_id khác với mã nhân viên giám sát – supper_id)
Ràng buộc tuổi nhân viên – R5:
∀ t ∊ Employee, t.(Current_Year – Year(birth_date) ) > 18
(Trong bảng Nhân Viên, tất cả nhân viên phải lớn hơn 18 tuổi – lấy năm hiện tại trừ cho năm trong ngày sinh của nhân viên)
Ràng buộc lương nhân viên – R6:
∀ t ∊ Employee, t.salary > 0
(Trong bảng Nhân Viên, lương của tất cả nhân viên phải lớn hơn 0)
Trang 1211
Ràng buộc lương nhân viên giám sát – R7:
∀ e ∊ Employee, ∀ s ∊ Employee: (e.emp_id = s.supper_id) (e.salary > s.salary)
Trong bảng Nhân Viên, lương của nhân viên giám sát phải lớn hơn lương của các nhân viên còn lại)
Employee + (emp_id, super_id) + (emp_id, super_id)
Trang 1312
2/ B ảng Chi Nhánh – Branch:
Mã chi nhánh (branch_id) là PK trong b ảng Chi Nhánh – Branch và là FK trong bảng Nhân
Viên cho biết nhân viên nào thuộc chi nhánh nào
Ngoài ra, mã nhân viên quản lý chi nhánh (manager_id) là FK trong bảng Chi Nhánh tham chiếu từ mã nhân viên (emp_id) trong bảng Nhân Viên
- Đặc tả hình thức:
+ Ràng bu ộc khóa chính:
Ràng buộc mã chi nhánh – R1:
t1, t2 ∊ Branch, t1 ≠ t2 → t1.branch_id ≠ t2.branch_id
(2 dòng bất kỳ trong bảng Chi Nhánh không đươc phép có cùng mã chi nhánh – branch_id)
+ Ràng bu ộc khóa ngoại:
Ràng buộc mã nhân viên làm trưởng chi nhánh – R2:
∀ t ∊ Branch, ∃! t’ ∊ Employee, t.manager_id = t’.emp_id
(Trong quan hệ bảng Chi Nhánh và bảng Nhân Viên, giá trị mã nhân viên làm trưởng - manager_id tại mỗi dòng trong bảng Chi Nhánh phải tương ứng tồn tại với mã nhân viên – emp_id trong bảng Nhân Viên)
Trang 1413
3/ B ảng Khách Hàng – Client:
Mã khách hàng (client_id) là PK trong b ảng Khách hàng và là FK trong bảng Đơn đặt hàng -
Orders
Ngoài ra mã chi nhánh (branch_id) trong bảng Khách Hàng là FK tham chiếu từ bảng Chi
Nhánh cho biết chi nhánh nào đang làm việc với những khách hàng nào
- Đặc tả hình thức:
+ Ràng bu ộc khóa chính:
Ràng buộc mã khách hàng – R1:
t1, t2 ∊ Client, t1 ≠ t2 → t1.client_id ≠ t2.client_id
(Trong bảng Khách Hàng, 2 dòng bất kỳ không được phép có trùng mã khách hàng – client_id)
+ Ràng bu ộc khóa ngoại:
Ràng buộc chi nhánh làm việc với khách hàng – R2:
∀ t ∊ Client, ∃! t’ ∊ Branch, t.branch_id = t’.branch_id
(Trong quan hệ bảng Khách Hàng và bảng Nhân Viên, giá trị mã chi nhánh - branch_id tại mỗi dòng trong bảng Khách Hàng phải tương ứng tồn tại với mã chi nhánh – branch_id trong bảng Chi Nhánh)
Mã đơn đặt hàng (order_id) là PK trong bảng Đơn đặt hàng - Orders, và là FK tham gia vào
khóa phức hợp trong bảng Chi tiết đơn đặt hàng - Order_details
Ngoài ra, 2 cột mã khách hàng – client_id, mã nhân viên phụ trách và lập đơn hàng –
emp_id trong b ảng Đơn Đặt Hàng là 2 FK tham chiếu từ bảng Khách Hàng và bảng Nhân
Viên
Trang 1514
- Đặc tả hình thức:
+ Ràng bu ộc khóa chính:
Ràng buộc mã đơn đặt hàng – R1:
t1, t2 ∊ Orders, t1 ≠ t2 → t1.order_id ≠ t2.order_id
(Trong Bảng Đơn đặt hàng - Order, 2 dòng bất kỳ có mã đặt hàng order_id không được phép trùng nhau)
+ Ràng bu ộc khóa ngoại:
Ràng buộc đơn đặt hàng của khách hàng – R2:
∀ t ∊ Orders, ∃! t’ ∊ Client, t.client_id = t’.client_id
(Trong quan hệ bảng Đơn Đặt Hàng và bảng Khách Hàng, giá trị mã khách hàng – client_id tại mỗi dòng trong bảng Đơn Đặt Hàng phải tương ứng tồn tại với mã khách hàng – client_id trong
bảng Khách Hàng)
Ràng buộc đơn đặt hàng do nhân viên nào lập – R3:
∀ t ∊ Orders, ∃! t’ ∊ Employee, t.emp_id = t’.emp_id
(Trong quan hệ bảng Đơn Đặt Hàng và bảng Nhân Viên, giá trị mã nhân viên – emp_id tại mỗi dòng trong bảng Đơn Đặt Hàng phải tương ứng tồn tại với mã nhân viên – emp_id trong bảng Nhân Viên)
Trang 1615
5/ B ảng Chi Tiết Đơn Đặt Hàng – Order_details:
Bảng Chi Tiết Đơn Đặt Hàng có khóa chính là khóa ph ức hợp gồm 2 khóa là Mã đơn đặt hàng (order_id) và Mã hàng hóa cung cấp (item_id), đồng thời cũng là 2 FK tham chiếu từ 2 bảng
Đơn đặt hàng - Orders và Hàng hóa cung cấp - Item
- Đặc tả hình thức:
+ Ràng bu ộc khóa chính:
Ràng buộc khóa phức hợp – R1:
t1, t2 ∊ Order_details, t1 ≠ t2 → t1.(order_id, item_id) ≠ t2 (order_id, item_id)
(Trong Bảng Chi Tiết Đơn Đặt Hàng- Order_details, 2 dòng bất kỳ có đồng thời mã đơn đặt hàng order_id và mã hàng hóa cung cấp item_id không được phép trùng nhau)
+ Ràng bu ộc khóa ngoại:
Ràng buộc Chi tiết đơn đặt hàng thuộc đơn hàng – R2:
∀ t ∊ Order_details, ∃! t’ ∊ Orders, t.order_id = t’.order_id
(Trong quan hệ bảng Chi Tiết Đơn Đặt Hàng và bảng Đơn Đặt Hàng, giá trị mã đơn đặt hàng – order_id tại mỗi dòng trong bảng Chi Tiết Đơn Đặt Hàng phải tương ứng tồn tại với mã đơn đặt hàng – order_id trong bảng Đơn Đặt Hàng)
Ràng buộc Hàng hóa cung cấp được bao gồm trong Chi tiết đơn đặt hàng – R3:
∀ t ∊ Order_details, ∃! t’ ∊ Item, t.item_id = t’.item_id
(Trong quan hệ bảng Chi Tiết Đơn Đặt Hàng và bảng Hàng Hóa Cung Cấp, giá trị mã hàng hóa cung cấp – item_id tại mỗi dòng trong bảng Chi Tiết Đơn Đặt Hàng phải tương ứng tồn tại với
mã hàng hóa cung cấp – item_id trong bảng bảng Hàng Hóa Cung Cấp)
+ Ràng bu ộc khác:
Ràng buộc thời hạn hoàn thành đơn đặt hàng – R4:
∀ t ∊ Order_details, t.order_date + 7 ≤ t.order_due
(Đơn đặt hàng phải được hoàn thành trong vòng 7 ngày kể từ ngày đặt)
- Bảng Tầm Ảnh Hưởng:
Trang 176/ B ảng Hàng Hóa Cung Cấp – Item:
Mã hàng hóa cung c ấp (item_id) là PK của bảng Hàng hóa cung cấp - Item và là FK trong
bảng Chi tiết đơn đặt hàng - Order_details
- Đặc tả hình thức:
+ Ràng bu ộc khóa chính:
Ràng buộc mã hàng hóa cung cấp – R1:
t1, t2 ∊ Item, t1 ≠ t2 → t1.item_id ≠ t2.item_id
(Trong Bảng Hàng Hóa Cung Cấp – Item, 2 dòng bất kỳ có mã mặt hàng – item_id không được phép trùng nhau)
+ Ràng bu ộc khóa ngoại:
Ràng buộc mã Nhà cung cấp hàng hóa – R2:
∀ t ∊ Item, ∃! t’ ∊ Supplier, t.supplier_id = t’.supplier_id
(Trong quan hệ bảng Hàng Hóa Cung Cấp và bảng Nhà Cung Cấp, giá trị mã nhà cung cấp – supplier_id tại mỗi dòng trong bảng Hàng Hóa Cung Cấp phải tương ứng tồn tại với mã nhà cung cấp – supplier_id trong bảng Nhà Cung Cấp)
Trang 18Mã nhà cung c ấp (supplier_id) là PK của bảng Nhà cung cấp - Supplier và là FK trong bảng
Hàng hóa cung cấp - Item cho biết mặt hàng nào của nhà cung cấp nào
- Đặc tả hình thức:
+ Ràng bu ộc khóa chính:
Ràng buộc mã nhà cung cấp – R1:
t1, t2 ∊ Supplier, t1 ≠ t2 → t1.supplier_id ≠ t2.supplier_id
(Trong Bảng Nhà Cung Cấp – Supplier, 2 dòng bất kỳ có mã nhà cung cấp – supplier_id không được phép trùng nhau)
- Bảng Tầm Ảnh Hưởng:
Trang 1918
VI/ Ph ụ thuộc hàm và chuẩn hóa:
Quan hệ Employee chỉ chứa các thuộc tính đơn, tất cả các thuộc tính không khoá phụ thuộc vào
khoá chính (emp_id) và không phụ thuộc bắc cầu vào bất kỳ khoá nào
Đạt chuẩn 3NF
Quan hệ Branch chỉ chứa các thuộc tính đơn, tất cả các thuộc tính không khoá phụ thuộc vào
khoá chính (branch_id) và không phụ thuộc bắc cầu vào bất kỳ khoá nào
Đạt chuẩn 3NF
Quan hệ Client chỉ chứa các thuộc tính đơn, tất cả các thuộc tính không khoá phụ thuộc vào
khoá chính (client_id) và không phụ thuộc bắc cầu vào bất kỳ khoá nào
Đạt chuẩn 3NF
Quan hệ Orders chỉ chứa các thuộc tính đơn, tất cả các thuộc tính không khoá phụ thuộc vào khoá chính (order_id) và không phụ thuộc bắc cầu vào bất kỳ khoá nào
Đạt chuẩn 3NF
Quan hệ Orders chỉ chứa các thuộc tính đơn, tất cả các thuộc tính không khoá phụ thuộc vào khoá chính (order_id, item_id) và không phụ thuộc bắc cầu vào bất kỳ khoá nào
Đạt chuẩn 3NF