Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
Danh sách thành viên trong nhóm
Họ và tên:
Lớp:
MSSV:
NGUYỄN VĂN ĐẠI
Điện Tử Y Sinh K52
20070689
Họ và tên:
Lớp:
MSSV:
LÊ ĐĂNG TUẤN
Điện Tử Y Sinh K52
20073154
Họ và tên:
Lớp:
MSSV:
NGUYỄN LỆNH TUẤN
Điện Tử Y Sinh K52
20073189
Họ và tên:
Lớp:
MSSV:
NGUYỄN THỊ HẢI YẾN
Điện Tử 5 K52
20073568
Họ và tên:
Lớp:
MSSV:
NGUYỄN TUẤN TÚ
Điện Tử 10 K52
20073379
1
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
MỤC LỤC
Danh sách thành viên trong nhóm 1
MỤC LỤC 2
CHƯƠNG 1: GIỚI THIỆU 4
1.1 Giới thiệu về đề tài: 4
Hình 1.1: Thư viện trường THPT Nguyễn Tất Thành 4
1.2 Tính khả thi của dự án: 5
1.2.1 Thời gian biểu của dự án: 5
1.2.2 Nhiệm vụ của các thành viên trong nhóm dự án: 5
1.2.3 Đánh giá tính khả thi: 5
1.3 Phạm vi của Project: 6
CHƯƠNG 2: GIẢI PHÁP VÀ CÔNG NGHỆ 7
2.1 Sơ lược về công nghệ ứng dụng cho hệ thống: 7
2.2 Công nghệ phần cứng: 7
2.3 Công nghệ phần mềm: 7
2.3.1 Giới thiệu C#: 7
2.3.2 Đánh giá các hệ quản trị cơ sở dữ liệu – chọn hệ quản trị cơ sở dữ liệu hợp lí: 8
2.3.3 SQL Server: 8
CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG 9
3.1 Phân tích yêu cầu hệ thống (System requirement analysis) 9
3.2 Mẫu biểu mượn tài liệu: 10
3.4 Phân tích các chức năng: 11
3.4.1 Phân tích các chức năng: 11
3.4.2 Sơ đồ phân cấp chức năng: 12
3.4.3 Sơ đồ mức ngữ cảnh: 13
3.4.4 Biểu đồ luồng dữ liệu – Data Flow Diagram (DFD): 13
CHƯƠNG 4: THIẾT KẾ HỆ THỐNG 18
4.1 Thiết kế cơ sở dữ liệu: 19
4.1.1 Phân tích yêu cầu của cơ sở dữ liệu: 19
4.1.2 Nhận diện các thực thể: 19
4.1.3 Nhận diện mối tương quan giữa các thực thể: 19
2
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
4.1.4 Xác định khóa chính: 20
4.1.5 Nhận diện khóa ngoại lai: 21
4.1.6 Thêm các thuộc tính không khóa vào bảng dữ liệu: 21
4.1.7 Thực hiện chuẩn hóa các bảng dữ liệu: 21
4.1.8 Khai báo phạm vi của mỗi thuộc tính: 26
4.2 Thiết kế Form: 28
4.2.1 Form Main: 28
4.2.2 Form Đăng nhập: 29
4.3.3 Form thêm mới thể loại sách: 29
4.3.4 Form Thêm mới sách: 30
4.3.5 Form thêm mới Nhà xuất bản: 31
4.3.6: Form Mượn sách: 31
4.3.7 Form Trả sách: 32
4.3.8 Form Đổi mật khẩu: 32
4.3.9 Form Thống kê: 33
4.3.10 Form Thêm mới hoặc xóa nhân viên: 34
3
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
CHƯƠNG 1: GIỚI THIỆU
1.1 Giới thiệu về đề tài:
Ngày nay công nghệ thông tin ngày càng chiếm một ví trí quan trọng
trong nhiều lĩnh vực của đời sống như kinh tế, chính trị, xã hội, văn hoá, giáo
dục, giải trí… Nhờ có công nghệ thông tin mà nhiều vấn đề được giải quyết rất
đơn giản, giúp sức rất nhiều cho con người trong công việc. Để minh chứng cho
sự đóng góp của công nghệ thông tin ta xem xét một vấn đề nhỏ như sau:
Giả sử bạn là nhân viên của một thư viện nào đó, có thể là thư viện của
một trường học, thư viện của thành phố hay lớn hơn có thể là thư viện quốc gia.
Khi đó khối lượng sách trong thư viện mà bạn phải quản lý là rất lớn, lượng độc
giả đến mượn, trả sách là rất nhiều. Vậy liệu bạn có thể quản lý được các công
việc đó bằng cách làm văn bản theo phương pháp truyền thống hay không. Điều
đó là không thể khi mà lượng sách trong thư viện ngày càng lớn, số lượng độc
giả ngày một đông, cùng với đó là rất nhiều sự cố phát sinh kèm theo.
Để làm được như vậy thì có một cách đơn giản hơn rất nhiều mà tính hiệu
quả cao hơn đó là áp dụng công nghệ thông tin vào quản lý.
Hiện nay, trên thị trường đã có rất nhiều phần mềm quản lý có thể giúp
bạn trong nhiều lĩnh vực khác nhau. Tuy nhiên, chúng tôi vẫn mong muốn xây
dựng một phần mềm ứng dụng nhỏ về quản lý thư viện nâng cao kinh nghiệm và
hiểu biết.
Trong phạm vi bài tập lớn lần này, chúng tôi chọn đề tài: “Phân tích thiết
kế hệ thống thông tin quản lý thư viên trường THPT Nguyễn Tất Thành”
Hình 1.1: Thư viện trường THPT Nguyễn Tất Thành
4
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
1.2 Tính khả thi của dự án:
1.2.1 Thời gian biểu của dự án:
Sau khi tham khảo, đánh giá thực trạng và yêu cầu công việc của phòng
cũng như khả năng của nhóm phát triển, dự án có thể thực hiện theo trình tự sau:
Hình 1.2: Kế hoạch làm việc
1.2.2 Nhiệm vụ của các thành viên trong nhóm dự án:
Phase
1
Phase
2
Phase
3
Phase
4
Phase
5
Phase
6
Viết báo
cáo
Nguyễn Văn Đại
Nguyễn Lệnh Tuấn
Lê Đăng Tuấn
Nguyễn Thị Hải
Yến
Nguyễn Tuấn Tú
1.2.3 Đánh giá tính khả thi:
Hiện tại, thư viện trường THPT Nguyễn Tất Thành chưa sử dụng phầm
mềm quản lí thư viện nào. Do đó, công tác quản lý của thư viện đều được thực
hiện thủ công. Vì vậy, hình thức trên gặp nhiều hạn chế như: tính phức tạp của
hệ thống; sự tốn kém trong công tác bảo quản sổ sách, tài liệu lưu trữ; sự khó
5
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
khăn khi tổng hợp dữ liệu… Với những lý do trên, ứng dụng phần mềm vào
quản lý thư viện là hoàn toàn khả thi. Nếu hệ thống được ứng dụng, sẽ đem lại
nhiều tiện ích về kinh tế và kỹ thuật.
1.3 Phạm vi của Project:
1. Chức năng:
• Quản lý việc mượn trả tài liệu của học sinh trong trường.
• Quản lý kho sách của thư viện.
• Tạo báo cáo theo thời gian.
2. Dữ liệu:
• Phiều mượn sách.
• Thẻ học sinh.
• Cơ sở dữ liệu trên máy chủ.
3. Phần cứng: Hệ thống máy tính của thư viện, máy chủ.
6
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
CHƯƠNG 2: GIẢI PHÁP VÀ CÔNG NGHỆ
2.1 Sơ lược về công nghệ ứng dụng cho hệ thống:
Do tính chất của cơ sở dữ liệu của bài toán, chương trình này sử dụng
ngôn ngữ lập trình C# trong việc tạo giao diện và chương trình chính, kết hợp
với SQL Server 2005 để tạo cơ sở dữ liệu. Chương trình chạy trên nền hệ điều
hành Windows XP, Windows Vista, Windows 7.
Mặt khác, khi dùng C# sẽ tiết kiệm thời gian và công sức so với các ngôn
ngữ lập trình khác khi xây dựng cùng một ứng dụng.
C# gắn liền với khái niệm lập trình trực quan. Nghĩa là khi thiết kế
chương trình, ta nhìn thấy ngay kết quả qua từng thao tác và giao diện khi
chương trình thực hiện. Đây là thuận lợi lớn so với các ngôn ngữ lập trình khác,
C# cho phép ta chỉnh sửa đơn giản, nhanh chóng về màu sắc, kích thước và hình
dạng của các đối tượng có mặt trong ứng dụng. Bên cạnh đó, C# còn hỗ trợ tính
năng kết nối môi trương dữ liệu SQL Server, Việc liên kết dữ liệu có thể thực
hiện bằng nhiều cách.
Chương trình "Quản lý thư viện trường THPT Nguyễn Tất Thành" là
chương trình quản lý cơ sở dữ liệu (lưu trữ, tra cứu ) tại thư viện. Do đó, việc
dùng ngôn ngữ C# là thích hợp.
2.2 Công nghệ phần cứng:
- Máy tính có kết nối Internet.
2.3 Công nghệ phần mềm:
Đề tài sử dụng ngôn ngữ lập trình C# và SQL Server 2005.
Hệ thống chương trình quản lý thư viện sẽ rất tiện dụng khi chạy trên môi
trường mạng. Tuy nhiên nó vẫn có thể cài trên máy lẻ, áp dụng với những cơ sở
chưa ứng dụng mạng máy tính trong quản lý.
2.3.1 Giới thiệu C#:
Là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft,
là phần khởi đầu cho kế hoạch .NET của họ.
Tên của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng theo ECMA
là C#, chỉ bao gồm dấu số thường. Microsoft phát triển C# dựa trên 2 ngôn ngữ
cực mạnh là C++ và Java. C# được miêu tả là ngôn ngữ có được sự cân bằng
giữa C++, Visual Basic, Delphi và Java. C# được thiết kế chủ yếu bởi Anders
Hejlsberg kiến trúc sư phần mềm nổi tiếng với các sản phẩm Turbo Pascal,
Delphi, J++, WFC. C# là ngôn ngữ khá đơn giản với hơn 80 từ khóa, 10 kiểu dữ
7
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
liệu định nghĩa sẵn. Tuy nhiên nó vẫn có khả năng hỗ trợ đầy đủ lập trình cấu
trúc, thành phần component, lập trình hướng đối tượng. C# theo một hướng nào
đó là ngôn ngữ lập trình phản ánh trực tiếp nhất đến .NET Framework mà tất
cả các chương trình .NET chạy, và nó phụ thuộc mạnh mẽ vào Framework này.
Mọi dữ liệu cơ sở đều là đối tượng, được cấp phát và hủy bỏ bởi trình dọn rác
Garbage-Collector (GC), và nhiều kiểu trừu tượng khác chẳng hạn như class,
delegate, interface, exception, v.v…, phản ánh rõ ràng những đặc trưng của
.NET runtime.
Tóm tắt ưu điểm của công cụ lập trình này:
- Là ngôn ngữ đơn giản, ít từ khóa.
- C# có khả năng lập trình đa dạng, hỗ trợ hướng đối tượng, hướng
module.
- Hiện nay C# là ngôn ngữ khá phổ biến.
2.3.2 Đánh giá các hệ quản trị cơ sở dữ liệu – chọn hệ quản trị cơ sở dữ liệu
hợp lí:
Hệ Quản Trị CSDL là một phần mềm cho phép tạo lập CSDL và điều khiển
hoặc truy nhập CSDL đó, đặc biệt Hệ Quản Trị CSDL đảm bảo tính độc lập dữ
liệu (là sự bất biến của các chương trình ứng dụng đối với các thay đổi về cấu
trúc lưu trữ và chiến lược truy nhập). Hiện nay có rất nhiều Hệ Quản Trị CSDL,
tùy từng yêu cầu cụ thể ta sẽ sử dụng các công cụ khác nhau. Thực hiện đề tài
này, chúng tôi đã chọn Hệ Quản Trị CSDL SQL Server 2005.
2.3.3 SQL Server:
SQL (Structured Query Language - ngôn ngữ truy vấn mang tính cấu trúc) là
một loại ngôn ngữ máy tính phổ biến để tạo, sửa và lấy dữ liệu từ một hệ quản
trị cơ sở dữ liệu quan hệ. Ngôn ngữ này phát triển vượt xa so với mục đích ban
đầu là để phục vụ các hệ quản trị cơ sở dữ liệu đối tượng quan hệ. Nó là một tiêu
chuẩn ANSIJISO. SQL Server có các đặc điểm sau:
Là công cụ miễn phí được cung cấp bởi Microsoft nên khả năng triển khai
sẽ dễ dàng đơn giản hơn. Tính tương thích cao cũng như chi phí rẻ hơn các phần
mềm như Oracle,Visual Foxpro. Hơn nữa nó là hệ quản trị cơ sở dữ liệu dạng
quan hệ nên dễ dàng cho việc xây dựng và quản lí.
Vì những ưu điểm nêu trên nên trong đề tài này chúng tôi sử dụng hệ quản
trị cơ sở dữ liệu SQL Server 2005. SQL Server được phát triển bởi Microsoft
nhằm cạnh tranh với các hệ quản trị cơ sở dữ liệu khác như Oracle, IBM. SQL
Server 1.0 ra đời vào năm 1989 và nhanh chóng được phát triển lên các phiên
bản mới hơn như 2.0, 4.0., SQL Server 2000, SQL Server 2005, SQL Server
2008
8
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG
3.1 Phân tích yêu cầu hệ thống (System requirement analysis)
Hệ thống quản lý mượn trả sách của thư viện trường THPT Nguyễn Tất
Thành nhằm thực hiện các yêu cầu sau :
- Nhận yêu cầu mượn tài liệu của học sinh và hồi đáp.
- Nhận sách trả về và cập nhật dữ liệu.
- Quản lý kho tài liệu (nhập tài liệu, phân loại, tình trạng sử dụng…)
- Tạo báo cáo công việc theo ngày, tháng, năm.
- Tạo báo cáo tài chính.
Từ các yêu cầu trên, chúng tôi đưa ra sơ đồ chức năng hệ thống như sau:
Hình 3.1: Sơ đồ chức năng của hệ thống
9
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
3.2 Mẫu biểu mượn tài liệu:
Hình 3.2: Mẫu phiếu mượn sách
10
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
3.4 Phân tích các chức năng:
Thư viện có chức năng chính là quản lý tài liệu cho học sinh mượn trả.
Bởi thế, hệ thống quản lý thư viện yêu cầu các hoạt động khởi tạo, cập nhật, xóa
và xử lý thông tin trong các chức năng: đăng nhập, quản lý tài liệu trong kho và
tài liệu cho mượn, kiểm tra thông tin và báo cáo cho người quản lý.
3.4.1 Phân tích các chức năng:
a. Quản lý quyền sử dụng:
Mỗi thủ thư sẽ được cấp 1 tài khoản (user name) và password riêng. Thông
tin sẽ được lưu trên máy chủ đảm bảo tính bảo mật. Nhân viên quản trị có thể
chỉnh sửa thông tin người dùng (cung cấp lại password, tạo tài khoản mới, sửa
đổi thông tin tài khoản,…).
b. Quản lý thông tin học sinh:
Đây là chức năng kiểm tra mã số học sinh theo thẻ để cho phép học sinh
mượn/trả tài liệu và update danh sách học sinh của các khóa mới cũng như danh
sách học sinh đã ra trường từ hệ thống thông tin học sinh của trường THPT
Nguyễn Tất Thành.
c. Quản lý tài liệu trong kho:
Khi có các yêu cầu cần bổ sung tài liệu, thủ thư có thể kiểm tra danh mục tài
liệu có trong kho.
Từ đó, có thể đưa ra danh sánh tài liệu cần bổ sung thêm cho thư viện và gửi
các thông báo yêu cầu tài liệu bổ sung cho thư viện.
Tài liệu mới nhận về sẽ được chuyển sang bộ phận biên tập để đóng dấu, dán
mã vạch và được đưa về để nhập vào cơ sở dữ liệu.
d. Quản lý mượn trả tài liệu:
Mỗi học sinh mượn tài liệu đều phải khai danh sánh tài liệu muốn mượn theo
mẫu phiếu và đưa cho thủ thư để kiểm tra.
Thủ thư sẽ kiểm tra số lượng tài liệu học sinh đã mượn, có vượt quá số lượng
quy định hoặc mượn quá hạn theo các ghi nhận trong kho dữ liệu mượn trả. Sau
đó, kiểm tra trong kho còn tài liệu yêu cầu không và trả lời yêu cầu của sinh
viên.
e. Báo cáo kết quả:
Hệ thống sẽ đưa ra các báo cáo về:
Báo cáo kho sách:
Số lượng tài liệu thư viện quản lý, số lượng tài liệu thực tế có trong kho. Số
lượng tài liệu được mượn, tài liệu quá hạn và danh sách học sinh mượn theo đầu
tài liệu.
11
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
Báo cáo thông tin học sinh:
Tra cứu danh mục học sinh, đưa ra các danh sách tài liệu đã mượn theo từng
học sinh.
Tra cứu số lượng học sinh mới đăng kí và học sinh đã ra trường.
Báo cáo thông tin nhân viên:
3.4.2 Sơ đồ phân cấp chức năng:
Hình 3.3: Sơ đồ phân cấp chức năng
12
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
3.4.3 Sơ đồ mức ngữ cảnh:
Hình 3.4: Sơ đồ mức ngữ cảnh
3.4.4 Biểu đồ luồng dữ liệu – Data Flow Diagram (DFD):
a. DFD mức đỉnh:
Hình 3.5: DFD mức đỉnh
13
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
b. DFD mức 1 chức năng 1:
Hình 3.6: DFD mức 1 chức năng 1
14
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
c. DFD mức 1 chức năng 2:
Hình 3.7: DFD mức 1 chức năng 2
d. DFD mức 1 chức năng 3:
15
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
Hình 3.8: DFD mức 1 chức năng 3
e. DFD mức 1 chức năng 4
16
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
Hình 3.9: DFD mức 1 chức năng 4
f. DFD mức 1 chức năng 5:
17
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
Hình 3.10: DFD mức 1 chức năng 5
CHƯƠNG 4: THIẾT KẾ HỆ THỐNG
18
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
4.1 Thiết kế cơ sở dữ liệu:
Cơ sở dữ liệu được thiết kế dựa vào các phân tích yêu cầu ở phần trên và
tuân thủ theo 8 buớc thiết kế cơ sở dữ liệu cũng như các quy tắc toàn vẹn dữ liệu
trong mô hình quan hệ.
4.1.1 Phân tích yêu cầu của cơ sở dữ liệu:
Dựa vào yêu cầu chức năng và phi chức năng của hệ thống, ta xây dựng
cơ sở dữ liệu gồm các thuộc tính sau: Mã tài liệu, Tên tài liệu, Tác giả, Mã
NXB, Tên NXB, Mã thể loại, Nội dung, Bìa tài liệu, Giá tiền, Vị trí, Tình trạng,
Mã học sinh, Họ tên học sinh, Lớp, Ngày mượn, Hạn trả, Tiền đặt cược, Mã
nhân viên, Họ tên nhân viên, Mật khẩu.
4.1.2 Nhận diện các thực thể:
Dựa trên yêu cầu hệ thống và yêu cầu của cơ sở dữ liệu chúng tôi đã xác
định các thực thể trong hệ thống như sau:
- Thực thể “Tài liệu”.
- Thực thể “Nhân viên”.
- Thực thể “Học sinh”.
- Thực thể “NXB”.
- Thực thể “Thể loại”.
- Thực thể “Mượn – trả sách”.
4.1.3 Nhận diện mối tương quan giữa các thực thể:
a. Quan hệ giữa thực thể “Tài liệu mượn/trả” và thực thể “ Học sinh”
Một học sinh có thể mượn được nhiều tài liệu và một tài liệu có thể do
nhiều học sinh mượn. Do đó quan hệ giữa “Tài liệu mượn/trả” và “Học sinh” là
quan hệ nhiều – nhiều.
- Quan hệ giữa thực thể “Tài liệu” và thực thể “NXB”
Một Tài liệu do một NXB ấn hành, một NXB có thể ấn hành nhiều tài
liệu. Do đó đây là quan hệ một – nhiều.
- Quan hệ giữa thực thể “Tài liệu” và thực thể “Thể loại”
Một tài liệu chỉ có một thể loại duy nhất, nhưng một thể loại có thể gồm
nhiều tài liệu. Do đó quan hệ này là quan hệ một – nhiều.
- Quan hệ giữa thực thể thực thể “Tài liệu mượn/trả” và thực thể “Tài liệu”
19
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
Một tài liệu có thể cho mượn/trả nhiều lần, một tài liệu mượn/ trả chỉ là
một tài liệu duy nhất. Do đó đây là quan hệ nhiều – một.
4.1.4 Xác định khóa chính:
a. Với thực thể “Tài liệu”
Do mỗi tài liệu có một Mã tài liệu duy nhất, nên ứng với một giá trị của
Mã tài liệu, ta xác định được duy nhất một giá trị của tập hợp (Tên tài liệu, Tác
giả, Mã NXB, Mã thể loại, Nội dung, bìa tài liệu, giá tiền, Vị trí, Tình trạng).
Vì thế Mã tài liệu là khóa chính của thực thể “Tài liệu”.
b. Với thực thể “Nhân viên”
Do mỗi nhân viên có một Mã nhân viên duy nhất nên ứng với một giá trị
của Mã nhân viên, xác định được duy nhất một giá trị của tập hợp (Họ tên nhân
viên, Mật khẩu).
Vì thế, Mã nhân viên là khóa chính của thực thể “Nhân viên”.
c. Với thực thể “Học sinh”
Do mỗi học sinh có một Mã học sinh duy nhất nên ứng với mỗi giá trị của
Mã học sinh, xác định được duy nhất một giá trị của tập hợp (Họ tên sinh viên,
Lớp).
Vì thế, Mã học sinh là khóa chính của thực thể “Học sinh”.
d. Với thực thể “NXB”
Do mỗi Mã NXB cho ta biết một NXB, nên ứng với mỗi giá trị của Mã
NXB là một giá trị của Tên NXB.
Vì thế, Mã NXB là khóa chính của thực thể “NXB”.
e. Với thực thể “Thể loại”
Do mỗi Mã thể loại cho ta biết một thể loại duy nhất, nên ứng với mỗi giá
trị của Mã thể loại là một giá trị của Tên thể loại.
Vì thế, Mã thể loại là khóa chính của thực thể “Thể loại”.
f. Với thực thể “Mượn – trả sách”
Do tại một thời điểm, một tài liệu chỉ do một học sinh mượn, nên ứng với
mỗi giá trị của tập hợp (Mã tài liệu, Mã học sinh) xác định được duy nhất một
giá trị của tập hợp (Ngày mượn, Hạn trả, Tiền đặt cược).
Vì thế, tập hợp (Mã tài liệu, Mã học sinh) là khóa chính của thực thể “Tài
liệu mượn trả”.
20
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
4.1.5 Nhận diện khóa ngoại lai:
Vì Mã tài liệu là khóa chính của thực thể “Tài liệu” nhưng không là khóa
chính của thực thể “Tài liệu mượn/trả” nên Mã tài liệu là khóa ngoại lại của thực
thể “Tài liệu mượn/trả”.
Vì Mã học sinh là khóa chính của thực thể “Học sinh” nhưng không là
khóa chính của thực thể “Tài liệu mượn/trả” nên Mã học sinh là khóa ngoại lại
của thực thể “Tài liệu mượn/trả”.
Vì Mã NXB là khóa chính của thực thể “NXB” nhưng không là khóa
chính của thực thể “Tài liệu” nên Mã NXB là khóa ngoại lại của thực thể “Tài
liệu”.
Vì Mã thể loại là khóa chính của thực thể “Thể loại” nhưng không là khóa
chính của thực thể “Tài liệu” nên Mã thể loại là khóa ngoại lại của thực thể “Tài
liệu”.
4.1.6 Thêm các thuộc tính không khóa vào bảng dữ liệu:
4.1.7 Thực hiện chuẩn hóa các bảng dữ liệu:
a. Chuẩn hóa từ UNF sang 1NF:
- Xác định các phụ thuộc hàm:
Do mỗi tài liệu có một Mã tài liệu duy nhất, nên ứng với một giá trị của
Mã tài liệu, ta xác định được duy nhất một giá trị của tập hợp (Tên tài liệu, Tác
giả, Mã NXB, Mã thể loại, Nội dung, bìa tài liệu, giá tiền, Vị trí, Tình trạng). Vì
thế, (Tên tài liệu, Tác giả, Mã NXB, Mã thể loại, Nội dung, bìa tài liệu, giá tiền,
Vị trí, Tình trạng) phụ thuộc hàm vào Mã tài liệu.
Do mỗi nhân viên có một Mã nhân viên duy nhất nên ứng với một giá trị
của Mã nhân viên, xác định được duy nhất một giá trị của tập hợp (Họ tên nhân
viên, Mật khẩu). Vì thế, (Họ tên nhân viên, Mật khẩu) phụ thuộc hàm vào Mã
nhân viên.
Do mỗi học sinh có một Mã học sinh duy nhất nên ứng với mỗi giá trị của
Mã học sinh, xác định được duy nhất một giá trị của tập hợp (Họ tên sinh viên,
Lớp). Vì thế, (Họ tên sinh viên, Lớp) phụ thuộc hàm vào Mã học sinh.
Do mỗi Mã NXB cho ta biết một NXB, nên ứng với mỗi giá trị của Mã
NXB là một giá trị của Tên NXB. Do đó Tên NXB phụ thuộc hàm vào Mã
NXB.
Do mỗi Mã thể loại cho ta biết một thể loại duy nhất, nên ứng với mỗi giá
trị của Mã thể loại là một giá trị của Tên thể loại. Vì thế, Tên thể loại phụ thuộc
hàm vào Mã thể loại.
21
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
Do tại một thời điểm, một tài liệu chỉ do một học sinh mượn, nên ứng với
mỗi giá trị của tập hợp (Mã tài liệu, Mã học sinh) xác định được duy nhất một
giá trị của tập hợp (Ngày mượn, Hạn trả, Tiền đặt cược). Vì thế, (Ngày mượn,
Hạn trả, Tiền đặt cược) phụ thuộc hàm vào (Mã tài liệu, Mã học sinh).
Hình 4.1: UNF
- Chuẩn hóa 1NF bằng phương pháp dàn phẳng:
Do mỗi học sinh có thể mượn được nhiều tài liệu nên ứng với một giá trị
của khóa chính Mã tài liệu có thể xác định được nhiều giá trị của tập hợp (Mã
học sinh, Họ tên học sinh, Lớp, Ngày mượn, Hạn trả, Tiền đặt cược). Vì thế,
(Mã học sinh, Họ tên học sinh, Lớp, Ngày mượn, Hạn trả, Tiền đặt cược) là
nhóm lặp.
22
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
Đưa Mã tài liệu và nhóm lặp sang một bảng ta có quan hệ 1NF như sau:
Hình 4.2: 1NF
b. Chuẩn hóa 1NF sang 2NF:
Do thuộc tính Lớp và thuộc tính Họ tên học sinh phụ thuộc hàm vào thuộc
tính Mã học sinh. Mà Mã học sinh là một thành phần của khóa chính (Mã tài
liệu, Mã học sinh) nên thuộc tính Lớp và thuộc tính Họ tên học sinh phụ thuộc
hàm không đầy đủ vào khóa chính (Mã tài liệu, Mã học sinh).
Ta có dạng chuẩn 2NF như sau:
Hình 4.3: 2NF
c. Chuẩn hóa 2NF sang 3NF:
23
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
Do Tên NXB phụ thuộc hàm vào Mã NXB, Mã NXB phụ thuộc hàm vào
Mã tài liệu nên ta có: Tên NXB phụ thuộc hàm vào Mã tài liệu thông qua Mã
NXB.
Do Tên thể loại phụ thuộc hàm vào Mã thể loại, Mã thể loại phụ thuộc
hàm vào Mã tài liệu nên ta có: Tên thể loại phụ thuộc hàm vào Mã tài liệu thông
qua Mã thể loại.
Từ điều trên ta có dạng chuẩn 3NF như sau:
Hình 4.4: 3NF
d. Sơ đồ thực thể liên kết:
24
Báo cáo bài tập lớn Kỹ Thuật Phần Mềm
Dựa vào quan hệ chuẩn hóa BCNF và mối liên hệ giữa các thuộc tính ta
có sơ đồ thực thể liên kết sau:
Hình 4.5: Sơ đồ thực thể liên kết
25