Biểu diễn thực thể:
Tài khoản => DMTK (MaTK, TenTK, CapTK, TKCapTren) Kho => DMKHO (MaKho, TenKho)
Khách hàng => DMKH (MaKH, TenKH, SDT, DiaChi, Email, MaSoThue) Hàng hóa => DMHH (MaHH, TenHH, DVT, DonGia, MaLoai)
Loại hàng hóa =>DMLoai (MaLoai, TenLoai)
CKTM => CKTM (Sobang, MaHH, NgayHLuc, TyleCK)
Biểu diễn các mối quan hệ:
Nhập <PhieuNhap> (SoCT, NgayCT, TKNo, TKCo, MaKH, MaHH, MaKho, DienGiai, SoLuong, DVT, DonGia, ThanhTien, CTLQ)
Xuất <PhieuXuat> (SoCT, NgayCT, TKNo, TKCo, MaKH, MaKho, MaHH, SoLuong, DVT, DonGia, ThanhTien, DienGiai, CTLQ)
Bán <HDHH> (SoCT, NgayCT, MaKH, ThueSuat, SoLuong, DVT, DonGia, ThanhTien, TKNoThanhToan, TKCoDoanhThu, TKCoThue, TienThanhToan, TienDoanhThu, TienThue, CTLQ, HTTT, TKChietKhau, TyleCK, TienCK)
Giảm giá <PhieuGiamGia> (SoCT, NgayCT, MaKH, TKNo, TKCo, CTLQ, DienGiai, MaHH, SoLuong, DVT, DonGia, ThanhTien, TongTien)
Trả lại <HoaDonTraLai> (SoCT, NgayCT, MaKH, TKNo, TKCo, CTLQ, DienGiai, MaHH, SoLuong, DVT, DonGia, ThanhTien, TongTien)
Chuẩn hóa:
Chuẩn hóa là quá trình chuyển một quan hệ có cấu trúc phức hợp thành các quan hệ có cấu trúc đơn giản hơn và bền vững hơn. Chuẩn hóa dữ liệu có thể xem như một quá trình phân tích các lược đồ quan hệ cho trước dựa trên
các phụ thuộc hàm và các khóa chính của chúng để đạt đến các tính chất mong muốn như: cực tiểu sự dư thừa và cực tiểu các phép cập nhật bất thường.
Hiện nay đã có nhiều dạng chuẩn có thể loại bỏ dư thừa rất tốt như chuẩn 4, chuẩn 5, Boyce – Codd, nhưng các chuẩn này lại gây khó khăn cho người lập trình nên ta chỉ xét đến dạng chuẩn 3.
a. Chuẩn hóa PhieuNhap
PhieuNhap có các thuộc tính lặp là MaHH, SoLuong, DonGia,
ThanhTien nên chưa thỏa mãn chuẩn 1 NF. Tách PhieuNhap ra làm 2 lược đồ quan hệ:
PhieuNhap (SoCT, NgayCT, TKNo, TKCo, MaKH, MaKho, DienGiai, CTLQ)
CTPhieuNhap (SoCT, MaHH, SoLuong, DVT, DonGia, ThanhTien
b. Chuẩn hóa PhieuXuat
PhieuXuat có các thuộc tính lặp là MaHH, SoLuong, DonGia,
ThanhTien nên chưa thỏa mãn chuẩn 1 NF. Tách PhieuXuat ra làm 2 lược đồ quan hệ:
PhieuXuat (SoCT, NgayCT, TKNo, TKCo, MaKH, MaKho, DienGiai, CTLQ)
CTPhieuXuat (SoCT, MaHH, SoLuong, DVT, DonGia, ThanhTien)
c. Chuẩn hóa HDHH
HDHH có các thuộc tính trùng lặp là (MaHH, SoLuong, DonGia, ThanhTien) nên chưa thỏa mãn chuẩn 1 NF. Tách HDHH ra làm 2 lược đồ quan hệ:
HDHH (SoCT, NgayCT, MaKH, ThueSuat, TKNoThanhToan, TKCoDoanhThu, TKCoThue, TKChietKhau, TienCK, TienThanhToan, TienDoanhThu, TienThue, HTTT, CTLQ)
CTHoaDon (SoCT, MaHH, SoLuong, DVT, DonGia, ThanhTien)
d. Chuẩn hóa PhieuGiamGia
PhieuGiamGia có các thuộc tính lặp là MaHH, SoLuong, DonGia nên chưa thỏa mãn chuẩn 1 NF. Tách PhieuGiamGia ra làm 2 lược đồ quan hệ:
PhieuGiamGia (SoCT, NgayCT, MaKH, TKNo, TKCo, CTLQ, DienGiai)
CTPhieuGiamGia (SoCT, MaHH, SoLuong, DVT, DonGia, ThanhTien)
e. Chuẩn hóa HoaDonTraLai
HoaDonTraLai có các thuộc tính lặp là MaHH, SoLuong, DonGia, ThanhTien nên chưa thỏa mãn chuẩn 1 NF. Tách HoaDonTraLai ra làm 2 lược đồ quan hệ:
HoaDonTraLai (SoCT, NgayCT, MaKH, TKNo, TKCo, CTLQ, DienGiai)
CTHoaDonTraLai (SoCT, MaHH, SoLuong, DVT, DonGia, ThanhTien)
Tất cả các quan hệ đã thỏa mãn chuẩn BCNF
3.2.2. Thiết kế cơ sở dữ liệu vật lý
Từ biểu đồ mô hình quan hệ, áp dụng vào thực tế của hệ thống ta giữ lại các quan hệ: DMKH, DMHH, DMTK, DMLoai, HDHH, DMKHO, CTHoaDon, CKTM, PhieuNhap, PhieuXuat, CTPhieuNhap, CTPhieuXuat, PhieuGiamGia, CTPhieuGiamGia, HoaDonTraLai, CTHoaDonTraLai
Sử dụng hệ quản trị cơ sở dữ liệu Microsoft SQL Server Management. Mã của các bảng được đặt tên theo quy tắc chung là các kí tự chữ cài sẽ viết tắt cho đối tượng được thể hiện. Dựa vào kết quả chuẩn hóa trên và tình hình thực tế yêu cầu. Ta có cơ sở dẽ liệu vật lý được thiết kế như sau:
Bảng 3.3: Cơ sở vật lý danh mục tài khoản
DMTK
Tên trường Kiểu Ý nghĩa Ràng buộc
MaTK Nvarchar(10) Mã tài khoản Khóa chính
TenTK Nvarchar(50) Tên tài khoản
CapTK Int Cấp tài khoản
TKCapTren Nvarchar(10) Tài khoản cấp trên
- Quy tắc mã hóa: MaTK được viết theo số hiệu TK trong Bảng danh mục hệ thống tài khoản kế toán doanh nghiệp ban hành theo thông tư 200- 22/12/2014 của Bộ Tài Chính.
DMKH
Tên trường Kiểu Ý nghĩa Ràng buộc
MaKH Nvarchar(10) Mã khách hàng Khóa chính TenKH Nvarchar(150) Tên khách hàng
SDT Nvarchar(12) Số điện thoại
DiaChi Nvarchar(200) Địa chỉ
Email Nvarchar(120) Email
MaSoThue Nvarchar(15) Mã số thuế
Bảng 3.5: Cơ sở vật lý danh mục hàng hóa
DMHH
Tên trường Kiểu Ý nghĩa Ràng buộc
MaHH Nvarchar(10) Mã hàng hóa Khóa chính
TenHH Nvarchar(120) Tên hàng hóa
DVT Nvarchar(10) Đơn vị tính
DonGia Numeric(18,0) Đơn giá
MaLoai Nvarchar(10) Mã Loại Khóa thường
Bảng 3.6: Cơ sở vật lý danh mục loại
DMLoai
Tên trường Kiểu Ý nghĩa Ràng buộc
MaLoai Nvarchar(10) Mã loại Khóa chính
TenLoai Nvarchar(120) Tên loại
Bảng 3.7: Cơ sở vật lý danh mục kho
DMKHO
Tên trường Kiểu Ý nghĩa Ràng buộc
MaKho Nvarchar(10) Mã kho Khóa chính
TenKho Nvarchar(120) Tên kho
Bảng 3.8: Cơ sở vật lý phiếu nhập
Tên trường Kiểu Ý nghĩa Ràng buộc
SoCT Nvarchar(10) Số phiếu Khóa chính
NgayCT Datetime Ngày phiếu
TKNo Nvarchar(10) Tài khoản nợ Khóa thường
TKCo Nvarchar(10) Tài khoản có Khóa thường
MaKH Nvarchar(10) Mã khách hàng Khóa thường
MaKho Nvarchar(10) Mã kho Khóa thường
DienGiai Nvarchar(250) Diễn giải
CTLQ Nvarchar(50) Chứng từ liên quan
Bảng 3.9: Cơ sở vật lý phiếu xuất
PhieuXuat
Tên trường Kiểu Ý nghĩa Ràng buộc
SoCT Nvarchar(10) Số phiếu Khóa chính
NgayCT Datetime Ngày phiếu
TKNo Nvarchar(10) Tài khoản nợ Khóa thường
TKCo Nvarchar(10) Tài khoản có Khóa thường
MaKH Nvarchar(10) Mã khách hàng Khóa thường
MaKho Nvarchar(10) Mã kho Khóa thường
DienGiai Nvarchar(250) Diễn giải
CTLQ Nvarchar(50) Chứng từ lq
Bảng 3.10: Bảng cơ sở vật lý danh mục chi tiết phiếu nhập
CTPhieuNhap
Tên trường Kiểu Ý nghĩa Ràng buộc
SoCT Nvarchar(10) Số phiếu Khóa thường
MaHH Nvarchar(10) Mã hàng hóa Khóa thường
DVT Nvarchar(10) Đơn vị tính
SoLuong Numeric(18,0) Số lượng Dongia Numeric(18,0) Đơn giá ThanhTien Numeric(18,0) Thành tiền
Bảng 3.11: Cơ sở vật lý chi tiết phiếu xuất
Tên trường Kiểu Ý nghĩa Ràng buộc
SoCT Nvarchar(10) Số phiếu Khóa thường
MaHH Nvarchar(10) Mã hàng hóa Khóa thường
DVT Nvarchar(10) Đơn vị tính
SoLuong Numeric(18,0) Số lượng DonGia Numeric(18,0) Đơn giá ThanhTien Numeric(18,0) Thành tiền
Bảng 3.12: Cơ sở vật lý hóa đơn hàng hóa
HDHH
Tên trường Kiểu Ý nghĩa Ràng buộc
SoCT Nvarchar(10) Số hóa đơn Khóa chính
NgayCT Datetime Ngày hóa đơn
MaKH Nvarchar(10) Mã khách hàng Khóa thường
TKNoThanhToan Nvarchar(10) TK ghi nợ thanh toán
Khóa thường TKCoDoanhThu Nvarchar(10) TK ghi có doanh thu Khóa thường TKCoThue Nvarchar(10) TK ghi có thuế Khóa thường TKChietKhau Nvarchar(10) TK chiết khấu Khóa thường TyleCK Nvarchar(10) Tỷ lệ chiết khấu
TienCK Numeric(18,0) Tiền chiết khấu TienThanhToan Numeric(18,0) Tiền thanh toán TienDoanhThu Numeric(18,0) Tiền doanh thu ThueSuat Nvarchar(10) Thuế suất TienThue Numeric(18,0) Tiền thuế
HTTT Nvarchar(50) HTTT
DienGiai Nvarchar(10) Diễn giải
Bảng 3.13: Cơ sở vật lý chi tiết hóa đơn
CTHoaDon
Tên trường Kiểu Ý nghĩa Ràng buộc
SoCT Nvarchar(10) Số hóa đơn Khóa thường
DVT Nvarchar(10) Đơn vị tính SoLuong Numeric(18,0) Số lượng
DonGia Numeric(18,0) Đơn giá
ThanhTien Numeric(18,0) Thành tiền
Bảng 3.14: Cơ sở vật lý chiết khấu thương mại
CKTM
Tên trường Kiểu Ý nghĩa Ràng buộc
Sobang Nvarchar(10) Số bảng Khóa chính
MaHH Nvarchar(10) Mã hàng hóa Khóa thường NgayHLuc Datetime Ngày hiệu lực
TyleCK Numeric(10,2) Tỷ lệ chiết khấu TienCK Numeric(10,2) Tiền chiết khấu
Bảng 3.15: Cơ sở vật lý giảm giá
PhieuGiamGia
Tên trường Kiểu Ý nghĩa Ràng buộc
SoCT Nvarchar(10) Số phiếu Khóa chính
NgayCT Datetime Ngày phiếu
MaKH Nvarchar(10) Mã khách hàng Khóa thường TKNo Nvarchar(10) Tài khoản nợ
TKCo Nvarchar(10) Tài khoản có Khóa thường
DienGiai Nvarchar(250) Diễn giải CTLQ Nvarchar(50) Chứng từ lq
Bảng 3.16: Cơ sở vật lý chi tiết giảm giá
CTGiamGia
Tên trường Kiểu Ý nghĩa Ràng buộc
SoCT Nvarchar(10) Số phiếu Khóa thường
MaHH Nvarchar(10) Mã hàng hóa Khóa thường
DVT Nvarchar(10) Đơn vị tính
SoLuong Numeric(18,0) Số lượng
DonGia Numeric(18,0) Đơn giá
ThanhTien Numeric(18,0) Thành tiền
Bảng 3.17: Cơ sở vật lý hoá đơn trả lại
HoaDonTraLai
Tên trường Kiểu Ý nghĩa Ràng buộc
SoCT Nvarchar(10) Số phiếu Khóa chính
NgayCT Datetime Ngày lập
MaKH Nvarchar(10) Mã khách hàng Khóa thường
TKNo Nvarchar(10) TK ghi nợ
TKNoThue Nvarchar(10) TK ghi nợ thuế
TKCo Nvarchar(10) TK ghi có
DienGiai Nvarchar(250) Diễn giải
Bảng 3.18: Cơ sở vật lý chi tiết hoá đơn trả lại
CTHoaDonTraLai
Tên trường Kiểu Ý nghĩa Ràng buộc
SoCT Nvarchar(10) Số phiếu Khóa thường
MaHH Nvarchar(10) Mã hàng hoá Khóa thường
SoLuong Nvarchar(10) Số lượng
DVT Numeric Đơn vị tính
DonGia Numeric(18,0) Đơn giá ThanhTien Numeric(18,0) Thành tiền
3.2.3. Xác định luồng hệ thống
Xác định luồng hệ thống nhằm phân định công việc giữa người và máy, các kho dữ liệu liên quan đến tiến trình máy làm được thay thế bằng các File tương ứng.
Luồng hệ thống cho biểu đồ luồng dữ liệu mức 1 “Cập nhật thông tin tiền xử lý”
Hình 3.11: Luồng hệ thống cho biểu đồ dữ liệu mức 1 “Cập nhật thông tin tiền xử lý”
Hình 3.12: Luồng hệ thống cho biểu đồ dữ liệu mức 1 “Hạch toán tăng doanh thu”
Luồng hệ thống cho biểu đồ luồng dữ liệu mức 1 “Hạch toán giảm doanh thu”
Hình 3.13: Luồng hệ thống cho biểu đồ dữ liệu mức 1 “Giảm doanh thu”
Hình 3.14: Luồng hệ thống cho biểu đồ dữ liệu mức 1 “Lập sổ kế toán”
Hình 3.15: Luồng hệ thống cho biểu đồ dữ liệu mức 1 “Lập báo cáo kế toán”
3.3. Xây dựng phần mềm kế toán doanh thu bán hàng tại Công ty TNHH Biển Đông