● Tương tác với người dùng: Yêu cầu cho phép tương tác với người dùng thông qua các giao diện người dùng thân thiện và dễ sử dụng.. ● Giao tiếp với các hệ thống khác: Yêu cầu cho phép ph
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI KHOA ĐIỆN TỬ - VIỄN THÔNG
Trang 2Mục Lục
Chương I: Tổng quan về chương trình quản lý CSDL chăn nuôi 4
Trang 4Mở Đầu
Trong những năm qua, ngành chăn nuôi Việt Nam đang trên đà phát triển, là một ngành nông nghiệp rất quan trọng, đóng góp vào nhu cầu thực phẩm của con người Tuy nhiên, để quản lý và kiểm soát chất lượng sản phẩm đạt tiêu chuẩn, cần phải có một hệ thống quản lý dữ liệu hiệu quả.
Bài tập lớn này sẽ tập trung vào việc thiết kế một CSDL để quản lý các thông tin liên quan đến chăn nuôi, bao gồm thông tin về các sản phẩm xử lý chất thải chăn nuôi; các cơ sở chăn nuôi, thị trường chế biến sản phẩm chăn nuôi và các thông tin khác Mục đích của bài tập này là giúp hiểu rõ hơn về cách thiết kế CSDL, tăng cường kỹ năng phân tích và thiết kế hệ thống cơ sở dữ liệu.
Nhiệm vụ của bài tập lớn này bắt đầu bằng việc phân tích yêu cầu và thiết kế các bảng dữ liệu, quan hệ giữa chúng, các khóa chính và ngoại Sau đó, sẽ xây dựng các truy vấn và hàm trong CSDL để truy xuất thông tin một cách hiệu quả Bên cạnh đó, cũng cần thiết kế giao diện dễ dàng sử dụng.
Bản cáo cáo này gồm có 3 chương Chương I về tổng quan chương trình quản
lý CSDL chăn nuôi Chương II về phân tích hệ thống, bằng cách vẽ các sơ đồ FHD, DFD, ERD Chương III trình bày về phần xây dựng cơ sở dữ liệu trên Microsoft SQL Server.
Trang 5Chương I: Tổng quan về chương trình quản lý CSDL
chăn nuôi
1 Yêu cầu chức năng
● Đăng nhập và quản lý người dùng: Yêu cầu cho phép người dùng đăng nhập và quản lý thông tin người dùng.
● Quản lý dữ liệu: Yêu cầu cho phép người dùng tạo, lưu trữ, cập nhật và xóa dữ liệu.
● Tìm kiếm và lọc dữ liệu: Yêu cầu cho phép người dùng tìm kiếm
và lọc dữ liệu theo nhiều tiêu chí khác nhau.
● Hiển thị dữ liệu: Yêu cầu cho phép hiển thị dữ liệu theo cách rõ ràng, dễ đọc và dễ hiểu.
● Thao tác và xử lý dữ liệu: Yêu cầu cho phép người dùng thao tác với dữ liệu và thực hiện các xử lý dữ liệu.
● Tương tác với người dùng: Yêu cầu cho phép tương tác với người dùng thông qua các giao diện người dùng thân thiện và dễ sử dụng.
● Bảo mật và phân quyền: Yêu cầu cho phép bảo mật dữ liệu và phân quyền truy cập cho người dùng.
● Giao tiếp với các hệ thống khác: Yêu cầu cho phép phần mềm giao tiếp với các hệ thống khác để chia sẻ và truyền dữ liệu.
2 Yêu cầu phi chức năng
● Hiệu suất: Yêu cầu về hiệu suất để đảm bảo rằng phần mềm hoạt động một cách nhanh chóng và mượt mà.
● Độ tin cậy: Yêu cầu độ tin cậy để đảm bảo rằng phần mềm không gây ra lỗi, sự cố hoặc mất dữ liệu.
● An ninh: Yêu cầu về an ninh để đảm bảo rằng phần mềm được bảo vệ chống lại các cuộc tấn công và lỗ hổng bảo mật.
● Khả năng mở rộng: Yêu cầu về khả năng mở rộng để đảm bảo rằng phần mềm có thể mở rộng và tích hợp với các hệ thống khác.
● Khả năng tương thích: Yêu cầu về khả năng tương thích để đảm bảo rằng phần mềm có thể hoạt động trên các hệ điều hành khác nhau và với các phiên bản khác nhau của các công nghệ khác nhau.
● Dễ sử dụng: Yêu cầu về dễ sử dụng để đảm bảo rằng người sử dụng có thể sử dụng phần mềm một cách dễ dàng và không gặp phải khó khăn trong việc tìm hiểu cách sử dụng.
● Tính linh hoạt: Yêu cầu về tính linh hoạt để đảm bảo rằng phần mềm có thể tùy chỉnh và cấu hình cho các nhu cầu đặc biệt của khách hàng.
Trang 6● Thân thiện với người dùng: Yêu cầu về thân thiện với người dùng
để đảm bảo rằng phần mềm tạo ra trải nghiệm người dùng tốt và thân thiện.
3 Giới thiệu công cụ, phần mềm sử dụng
1.1.1 Visual Studio C#
Visual Studio là một môi trường phát triển tích hợp (IDE) được phát triển bởi Microsoft Nó cung cấp cho nhà phát triển một công cụ toàn diện để phát triển phần mềm cho nhiều nền tảng khác nhau, bao gồm Windows, MacOS, Linux, iOS, Android và nhiều hệ điều hành khác.
Visual Studio hỗ trợ nhiều ngôn ngữ lập trình như C#, C++, F#, Visual Basic, JavaScript, TypeScript và nhiều ngôn ngữ khác Nó cũng cung cấp cho người dùng một số công cụ và tính năng hữu ích như IntelliSense, bộ dò lỗi, kiểm tra mã nguồn, quản lý mã nguồn, thiết kế giao diện, đồ họa, và các công cụ kiểm thử và phân tích mã nguồn.
Visual Studio là một công cụ quan trọng trong việc phát triển phần mềm và được sử dụng rộng rãi trong các công ty phát triển phần mềm, doanh nghiệp và cộng đồng lập trình viên trên toàn thế giới.
1.1.2 WPF (Windows Presentation Foundation)
WPF (Windows Presentation Foundation) là một công nghệ của Microsoft được sử dụng để phát triển các ứng dụng Windows đồ họa, bao gồm cả ứng dụng desktop và ứng dụng trên nền tảng web (Web applications) WPF cung cấp một bộ công cụ mạnh mẽ cho việc thiết
kế giao diện người dùng, bao gồm các tính năng như đường viền, nền, hiệu ứng chuyển động, hình ảnh và video, và hỗ trợ việc tạo các điều khiển người dùng tùy chỉnh WPF được phát triển trên nền tảng NET Framework của Microsoft, cho phép các lập trình viên sử dụng nhiều ngôn ngữ lập trình khác nhau như C# và VB.NET để phát triển ứng dụng.
1.1.3 Microsoft SQL Server
Microsoft SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ được phát triển bởi Microsoft Nó cung cấp cho người dùng một hệ thống quản lý cơ sở dữ liệu mạnh mẽ để lưu trữ, truy xuất và quản lý
dữ liệu của một tổ chức.
Trang 7Microsoft SQL Server hỗ trợ nhiều ngôn ngữ lập trình như T-SQL, C++, C#, Java và nhiều ngôn ngữ khác Nó cũng cung cấp cho người dùng các tính năng quản lý cơ sở dữ liệu như sao lưu dữ liệu, phục hồi, quản lý người dùng, bảo mật, kiểm soát phiên, xử lý dữ liệu, và các tính năng liên quan đến hiệu suất.
Microsoft SQL Server được sử dụng rộng rãi trong các doanh nghiệp, tổ chức và cộng đồng lập trình viên trên toàn thế giới để lưu trữ và quản lý dữ liệu Nó cũng được sử dụng để phát triển các ứng dụng web và desktop phức tạp, cùng với các hệ thống quản lý quan
hệ khác như Oracle và MySQL.
4 Mô hình MVVM
MVVM (Model-View-ViewModel) là một kiến trúc phần mềm được sử dụng trong các ứng dụng WPF (Windows Presentation Foundation) và Silverlight của Microsoft MVVM được thiết kế để giúp tách biệt hoàn toàn giữa dữ liệu (Model), giao diện người dùng (View) và quản lý tương tác giữa các thành phần này (ViewModel) Trong MVVM, Model đại diện cho
dữ liệu và luật logic của ứng dụng View đại diện cho giao diện người dùng, bao gồm các điều khiển và các thành phần khác như hình ảnh, văn bản, nút bấm, v.v ViewModel là cầu nối giữa Model và View, nó chứa các thuộc tính và phương thức để định nghĩa cách dữ liệu được hiển thị trong giao diện người dùng và xử lý các tương tác người dùng với dữ liệu.
Với MVVM, các thành phần Model, View và ViewModel được tách biệt hoàn toàn, giúp cho việc phát triển ứng dụng trở nên dễ dàng hơn, dễ bảo trì hơn và có khả năng tái sử dụng cao hơn Ngoài ra, MVVM cũng cung cấp một số lợi ích khác như khả năng kiểm thử dễ dàng hơn, tăng tính linh hoạt của ứng dụng và giảm độ phức tạp của mã nguồn.
Trang 8Hình I.4: Mô hình MVVM trên sản phẩm
Chương II: Phân tích hệ thống
1 Phân tích chức năng
1.1 Sơ đồ FHD
Sơ đồ FHD thường được sử dụng trong giai đoạn thiết kế hệ thống phần mềm, sau khi đã xác định được các yêu cầu của khách hàng và các chức năng cần có trong hệ thống Nó giúp cho các nhà phát triển và nhà thiết kế có thể phân tích và trình bày các chức năng của hệ thống một cách cụ thể, đồng thời tạo ra một cái nhìn tổng quan về các chức năng chính và cách chúng tương tác với nhau.
Dưới đây là sơ đồ FHD của phần mềm.
Sơ đồ FHD
Trang 9Hình 2.1a
Từ sơ đồ FHD bên trên, thiết kế hệ thống thực hiện 2 chức năng chính đó là Quản trị hệ thống và Quản lý CSDL chăn nuôi Bên trong Quản trị hệ thống gồm: Quản lý chức năng hệ thống, Quản lý thông tin người dùng và Bảo mật, phân quyền Bên trong Quản lý CSDL chăn nuôi gồm: Quản lý CSDL về sản phẩm xử lý chất thải chăn nuôi, Quản lý CSDL về cơ sở chăn nuôi, chế biến và thị trường sản phẩm chăn nuôi, Quản lý CSDL khác về chăn nuôi.
1.2 Sơ đồ DFD
1.2.1 Sơ đồ luồng dữ liệu mức ngữ cảnh (Mức 0)
Hình 2.1b: Sơ đồ DFD mức 0
Trang 10Trong đó:
(1) Dữ liệu mà cán bộ, nhân viên (CBNV) cần tìm kiếm quản lý
(2) Dữ liệu về các kết quả tìm kiếm trên
(3) Các tác vụ mà Quan trị hệ thống (QTHT) thực hiện
(4) Phản hồi của hệ thống về cho Quản trị hệ thống
(5) Cấp quyền truy cập người dùng
(6) Truy vấn quyền người dùng
1.2.2 Sơ đồ luồng dữ liệu mức ngữ đỉnh (Mức 1)
Hình 2.1c: Sơ đồ DFD mức 1
Trong đó:
(1) Phân quyền cho người dùng, nhóm người dùng
(2) Phản hồi của hệ thống về việc phân quyền cho người dùng
(3) Tìm kiếm thông tin người dùng, nhóm người dùng
(4) Thông tin về người dùng nhóm người dùng
(5) Tra cứu quyền truy cập của người dùng
(6) Phản hồi thông tin về quyền người dùng
(7) Phản hồi của hệ thống về các tác vụ mà QTHT thực hiện
(8) Các tác vụ của QTHT như tìm kiếm, sửa đổi, thêm, xóa… đối với hệ thống hoặc người dùng
(9) Truy vấn thông tin về hệ thống như lịch sử truy cập, tác động …
(10) Thông tin về hệ thống vừa truy vấn
(11) Đăng nhập vào hệ thống, tìm kiếm, sửa đổi thông tin bản thân…
(12) Phản hồi của hệ thống về tác vụ của CBNV
(13) Phản hồi của hệ thống về chức năng mà CBNV thực hiện
(14) Truy vấn chức năng cần thực hiện
Trang 11(15) Tìm kiếm thông tin người dùng
(16) Thông tin về người dùng
2 Phân tích dữ liệu
2.1 Sơ đồ ERD
Hình 2.2a: sơ đồ ERD về hệ thống quản lý người dùng và nhóm người dùng
Trang 12Hình 2.2b: Sơ đồ ERD về sản phẩm xử lý chất thải chăn nuôi
Hình 2.2c: Sơ đồ ERD về cơ sở chăn nuôi, chế biến và thị trường sản phẩm chăn nuôi
Trang 13Hình 2.2d: Sơ đồ ERD thông tin khác về chăn nuôi
Chương III: SQL Server
create table DonViHanhChinhHuyen
(Ma nvarchar(10) primary key
, TenHuyen nvarchar(20)
)
create table DonViHanhChinhXa
(Ma nvarchar(10) primary key
, MaHuyen nvarchar(10) foreign key references
DonViHanhChinhHuyen(Ma)
, TenXa nvarchar(20)
)
create table Quyen
(Ma nvarchar(5) primary key
, MoTa nvarchar(30)
)
create table ThongTinCaNhan
(ID nvarchar(12) primary key
, HoTen nvarchar(30)
, MaQuyen nvarchar(5) foreign key references Quyen(Ma)
, MaDiaChi nvarchar(10) foreign key references
DonViHanhChinhXa(Ma)
)
create table TaiKhoan
(ID nvarchar(12) foreign key references ThongTinCaNhan(ID), password nvarchar(20)
, state bit
Trang 14create table LichSuTruyCap
(ID nvarchar(12) foreign key references ThongTinCaNhan(ID)
, ThoiGian Datetime
)
create table LichSuTacDong
(ID nvarchar(12) foreign key references ThongTinCaNhan(ID)
, TacDong nvarchar(20)
, ThoiGian Datetime
)
create table Nhom
(Ma nvarchar(10) primary key
, Ten nvarchar(20)
, MaQuyen nvarchar(5) foreign key references Quyen(Ma)
, TrangThai bit
)
create table NhomNguoiDung
(ID nvarchar(12) foreign key references ThongTinCaNhan(ID)
, MaNhom nvarchar(10) foreign key references Nhom(Ma)
If @Action = 1 Begin
Insert into DonViHanhChinhHuyen (Ma,TenHuyen) values (@Ma,@TenHuyen)
Endend
Trang 15Ma= @Ma,MaHuyen= @MaHuyen,TenXa = @TenXawhere Ma = @MaEnd
Trang 17create table CoSoSanXuat
(Ten nvarchar(50) primary key
, DiaChi nvarchar(50)
, SDT nvarchar(12)
, TrangThai nvarchar(20)
)
Trang 18create table SanPham
(Ma nvarchar(10) primary key
create table CoSoKhaoNghiem
(Ten nvarchar(50) primary key
, DiaChi nvarchar(50)
, SDT nvarchar(12)
, TrangThai nvarchar(20)
)
create table QlSanPham
(MaSanPham nvarchar(10) foreign key references SanPham(Ma)
, CoSoSanXuat nvarchar(50) foreign key references
@Ten nvarchar(50), @DiaChi nvarchar(50), @SDT nvarchar(12), @TrangThai nvarchar(20), @Action int
If @Action = 1 Begin
Insert into CoSoSanXuat (Ten,DiaChi,SDT,TrangThai) values (@Ten,@DiaChi,@SDT,@TrangThai)
Endend
gocreate procedure UpdateSanPham(
@Ma nvarchar(10), @Ten nvarchar(30), @ThanhPham nvarchar(30), @CongDung nvarchar(50), @NguonGoc nvarchar(30), @Action int
Trang 19If @Action = 0 Begin
Update SanPham SET Ma= @Ma,
Ten= @Ten,ThanhPham= @ThanhPham,CongDung= @CongDung,NguonGoc = @NguonGocEnd
Trang 20create table ThongTinCaNhan
(ID nvarchar(12) primary key
, HoTen nvarchar(30)
, ChucVu nvarchar(15)
, TrangThai nvarchar(20)
)
create table ToChucCapGiayChungNhan
(Ten nvarchar(30) primary key
, DiaChi nvarchar(50)
, SDT nvarchar(10)
, TrangThai varchar(20)
)
create table GiayChungNhan
(Ma nvarchar(10) primary key
, NoiCap nvarchar(30) foreign key references
ToChucCapGiayChungNhan(Ten)
, ChiTieu nvarchar(20)
)
create table CoSoChanNuoi
(Ten nvarchar(30) primary key
create table ToChucCoSo
(Ten nvarchar(30) primary key
, VaiTro nvarchar(30)
)
create table QuanLyNhanSu
(TenCoSo nvarchar(30) foreign key references CoSoChanNuoi(Ten)
, IDCaNhan nvarchar(12) foreign key references ThongTinCaNhan(ID)
, TenToChuc nvarchar(30) foreign key references ToChucCoSo(Ten)
)
create table DKChanNuoi
(TenCoSo nvarchar(30) foreign key references CoSoChanNuoi(Ten)
create table CoSoCheBien
(Ten nvarchar(30) primary key
, DiaChi nvarchar(50)
Trang 21create table SanPhamCheBien
(TenCoSo nvarchar(30) foreign key references CoSoCheBien(Ten)
@ID nvarchar(12), @HoTen nvarchar(30), @ChucVu nvarchar(15), @TrangThai nvarchar(20), @Action int
gocreate procedure UpdateToChucCapGiayChungNhan(
@Ten nvarchar(30), @DiaChi nvarchar(50), @SDT nvarchar(10), @TrangThai varchar, @Action int
If @Action = 1 Begin
Insert into ToChucCapGiayChungNhan (Ten,DiaChi,SDT,TrangThai) values (@Ten,@DiaChi,@SDT,@TrangThai)
Trang 23VaiTro = @VaiTrowhere Ten = @TenEnd
If @Action = 1 Begin
Insert into DKChanNuoi (TenCoSo,MatDoVatNuoi,NguonNuoc,NguonThucAn,XuLyChatThai)
values (@TenCoSo,@MatDoVatNuoi,@NguonNuoc,@NguonThucAn,@XuLyChatThai)
Trang 24, @MaChungNhan nvarchar(10), @TrangThai nvarchar(20), @Action int
If @Action = 1 Begin
Insert into CoSoCheBien (Ten,DiaChi,SDT,MaChungNhan,TrangThai) values (@Ten,@DiaChi,@SDT,@MaChungNhan,@TrangThai)
Endend gocreate procedure UpdateSanPhamCheBien(
@TenCoSo nvarchar(30), @TenSanPham nvarchar(30), @NguyenLieu nvarchar(50), @PhuongThuc nvarchar(30), @Action int
If @Action = 1 Begin
Insert into SanPhamCheBien (TenCoSo,TenSanPham,NguyenLieu,PhuongThuc)
values (@TenCoSo,@TenSanPham,@NguyenLieu,@PhuongThuc)
Endend go
4 Quản lý khác về chăn nuôi
Trang 25create table ChiCuc
(Ten nvarchar(30) primary key
, DiaChi nvarchar(30)
, SDT nvarchar(10)
, TrangThai nvarchar(30)
)
create table DaiLyBanThuoc
(Ten nvarchar(30) primary key
create table ThuocThuY
(DaiLy nvarchar(30) foreign key references
create table KhuTamGiuTieuHuy
(Ten nvarchar(30) primary key
create table QLTamGiuTieuHuy
(TenCoSo nvarchar(30) foreign key references
create table KhuGietMo
(Ten nvarchar(30) primary key
create table QLGietMo
(TenCoSo nvarchar(30) foreign key references KhuGietMo(Ten), LoaiVatNuoi nvarchar(30)
Trang 26End
Trang 27NguyenNhan = @NguyenNhan,TrangThai = @TrangThai,ThoiGian = @ThoiGianwhere TenCoSo = @TenCoSoEnd
If @Action = 1 Begin
Insert into QLTamGiuTieuHuy (TenCoSo,LoaiVatNuoi,SoLuong,NguyenNhan,TrangThai,ThoiGian)
values (@TenCoSo,@LoaiVatNuoi,@SoLuong,@NguyenNhan,@TrangThai,@ThoiGian)
End
end
Trang 28ThoiGian = @ThoiGianwhere TenCoSo = @TenCoSoEnd
Trang 29Kết luận
Dựa trên quá trình thiết kế CSDL chăn nuôi, bản báo cáo này đã hoàn thành các công việc cơ bản như phân tích yêu cầu, thiết kế mô hình dữ liệu, đặc tả các chức năng của hệ thống và xây dựng sơ đồ DFD Qua đó, hi vọng rằng hệ thống CSDL chăn nuôi được thiết kế sẽ giúp cho các doanh nghiệp trong lĩnh vực chăn nuôi có thể quản lý, theo dõi và nắm bắt thông tin về các sản phẩm xử lý chất thải chăn nuôi, các cơ sở
Tuy nhiên, đây chỉ là một bài tập lớn trên giảng đường học tập, do đó hệ thống CSDL chăn nuôi còn cần được phát triển và hoàn thiện hơn trong thực tế để đáp ứng nhu cầu sử dụng của doanh nghiệp và mang lại hiệu quả kinh tế cao nhất.