Có nhiệm vụ: vận chuyển hàng hóa từ nhà cung cấp về Công ty và vận chuyển các vật tư thiết bị từ kho đến tận nơi cho khách hàng.Phương tiện vận chuyển của công ty chủ yếu là ô tô tải nên
Trang 1TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM
- -NGUYỄN VĂN NHƯƠNG
ĐỒ ÁN TỐT NGHIỆP
XÂY DỰNG PHẦN MỀM QUẢN LÝ CHO THUÊ
VẬT TƯ THIẾT BỊ TẠI CÔNG TY
CỔ PHẦN THƯƠNG MẠI BÁU HOÀN
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
Giáo viên hướng dẫn: Ths Bùi Đình Vũ
HẢI PHÒNG - 2014
Trang 2MỤC LỤC
DANH MỤC HÌNH ẢNH 4
LỜI MỞ ĐẦU 6
CHƯƠNG I – KHẢO SÁT HỆ THỐNG 7
1.1 Giới thiệu 7
1.1.1 Thông tin công ty 7
1.1.2 Chức năng, nhiệm vụ 7
1.1.3 Mô hình tổ chức quản lý 7
1.2 Khảo sát nghiệp vụ quản lý 9
1.2.1 Thực trạng quản lý 9
1.2.2 Mục đích và yêu cầu của bài toán 9
1.2.3 Các nghiệp vụ quản lý 11
CHƯƠNG II – CƠ SỞ LÝ THUYẾT 27
2.1 Lý thuyết về cơ sở dữ liệu 27
2.1.1 Khái niệm cơ bản về cơ sở dữ liệu 27
2.1.2 Các dạng chuẩn của lược đồ quan hệ 28
2.2 Hệ quản trị Microsoft SQL Server 29
2.2.1 Giới thiệu về SQL Server 29
2.2.2 Các kiểu dữ liệu 30
2.3 Ngôn ngữ lập trình C# 30
2.3.1 Microsoft NET 30
2.3.2 Ngôn ngữ C# 32
2.3.3 Ngôn ngữ lập trình LinQ 33
Trang 3CHƯƠNG III – PHÂN TÍCH, THIẾT KẾ HỆ THỐNG 35
3.1 Thiết kế chức năng của hệ thống 35
3.1.1 Các chức năng của hệ thống 35
3.1.2 Sơ đồ phân rã chức năng 37
3.1.3 Mô tả các chức năng 38
3.2 Biểu đồ luồng dữ liệu các mức 41
3.2.1 Biểu đồ mức ngữ cảnh 41
3.2.2 Biểu đồ mức đỉnh 43
3.2.3.Các biểu đồ mức dưới đỉnh 44
3.3 Mô hình thực thể liên kết 50
3.3.1 Xác định danh sách các thực thể 50
3.3.2 Quan hệ giữa các thực thể 51
3.3.3 Sơ đồ thực thể liên kết 54
3.4 Mô hình dữ liệu quan hệ 55
3.4.1 Các bảng dữ liệu 55
3.4.2 Sơ đồ dữ liệu quan hệ 66
3.5 Thiết kế một số chức năng và giao diện chương trình 67
KẾT LUẬN 86
TÀI LIỆU THAM KHẢO 87
Trang 4DANH MỤC HÌNH ẢNH
Hình 1.1 – Sơ đồ tổ chức của công ty 7
Hình 3.1 – Sơ đồ phân rã chức năng 37
Hình 3.2 – Biểu đồ mức ngữ cảnh 41
Hình 3.3 – Biểu đồ mức đỉnh 43
Hình 3.4 – Biểu đồ mức dưới đỉnh hệ thống 44
Hình 3.5 – Biểu đồ mức dưới đỉnh danh mục 45
Hình 3.6 – Biểu đồ mức dưới đỉnh quản lý kho 46
Hình 3.7 – Biểu đồ mức dưới đỉnh quản lý thuê trả vật tư 47
Hình 3.8 – Biểu đồ mức dưới đỉnh quản lý công nợ 48
Hình 3.9 – Biểu đồ mức dưới đỉnh thống kê báo cáo 49
Hình 3.10 – Sơ đồ thực thể liên kết 54
Hình 3.11 – Sơ đồ dữ liệu quan hệ 66
Hình 3.12 – Form cấu hình CSDL 67
Hình 3.13 – Form đăng nhập hệ thống 67
Hình 3.14 – Form đổi mật khẩu 68
Hình 3.15 – Form người dùng 68
Hình 3.16 – Form khách hàng 69
Hình 3.17 – Form nhà cung cấp 69
Hình 3.18 – Form đơn vị tính 70
Hình 3.19 – Form kho hàng 70
Hình 3.20 – Form loại hàng 71
Hình 3.21 – Form mặt hàng 71
Hình 3.22 – Form quản lý nhân viên 72
Hình 3.23 – Form quản lý xe vận chuyển 72
Hình 3.24 – Form nhập hàng tồn đầu kỳ 73
Hình 3.25 – Form phiếu nhập 73
Trang 5Hình 3.27 – Form hợp đồng công trình 74
Hình 3.28 – Form phiếu thuê 75
Hình 3.29 – Form chi tiết phiếu thuê 75
Hình 3.30 – Form phiếu trả 76
Hình 3.31 – Form chi tiết phiếu trả 76
Hình 3.32 – Form nghiệm thu công trình khoán 77
Hình 3.33 – Form hóa đơn GTGT 77
Hình 3.34 – Form phiếu bồi thường 78
Hình 3.35 – Form chi tiết phiếu bồi thường 78
Hình 3.36 – Form thanh toán với nhà cung cấp 79
Hình 3.37 – Form thanh toán với khách hàng 79
Hình 3.38 – Form xuất chuyển kho 80
Hình 3.39 – Form chi tiết xuất chuyển kho 80
Hình 3.40 – Form phiếu thanh lý 81
Hình 3.41 – Form chi tiết phiếu thanh lý 81
Hình 3.42 – Form bảng giá 82
Hình 3.43 – Form hàng tồn theo kho 82
Hình 3.44 – Form nhập xuất tồn 83
Hình 3.45 – Form công nợ nhà cung cấp 83
Hình 3.46 – Form công nợ khách hàng 84
Hình 3.47 – Form tổng hợp giá trị khối lượng 84
Hình 3.48 – Form tính tiền thuê vật tư 85
Trang 6LỜI MỞ ĐẦU
Ngày nay cùng với sự phát triển nhanh chóng của Công nghệ thông tin
và việc ứng dụng nó vào thực tế của các ngành kinh tế và đời sống đem lạinhững lợi ích vô cùng to lớn Có thể nói rằng kỷ nguyên của chúng ta là kỷnguyên của công nghệ thông tin, trong đó Bưu Điện, Ngân Hàng, Kinh Doanh
là những ngành phát triển các ứng dụng công nghệ tin học hàng đầu Côngnghệ thông tin thực sự cần thiết trong việc hỗ trợ quản lý tối ưu tính toánnhanh chóng và khắc phục được những sai sót
Thực tế tại Công ty CP TM Báu Hoàn chưa được tin học hoá trong quản
lý kinh doanh Quản lý dịch vụ thuê trả vật tư là hoạt động chính của công ty,hiện tại công việc kinh doanh đang được lưu trữ và tính toán trên sổ sách vàcác file văn bản (Word, Excel).Vì vậy Công ty đang cần được tin học hoá đểđáp ứng với yêu cầu thực tế
Qua thời gian tiếp cận, em được các anh chị trong công ty gợi ý và giúp
đỡ, em đã quyết định chọn đề tài “Xây dựng phần mềm quản lý cho thuê vật
tư - thiết bị tại Công ty Cổ phần Thương mại Báu Hoàn” làm đề tài đồ án
tốt nghiệp của mình
Do thời gian hạn chế và kiến thức còn hạn hẹp nên trong đề tài nàykhông thể tránh khỏi những thiếu sót Kính mong quý thầy cô giáo và các bạnsinh viên đóng góp ý kiến để cho đề tài ngày càng hoàn thiện hơn
Để có được ngày hôm nay, em xin chân thành cảm ơn các thầy cô trongkhoa Công Nghệ Thông Tin trường ĐHHH đã tận tình giảng dạy em trongquá trình học tập và đặc biệt thầy Bùi Đình Vũ đã hướng dẫn em thực hiện đềtài tốt nghiệp này
Hải phòng, ngày 05 tháng 12 năm 2014
Trang 7CHƯƠNG I – KHẢO SÁT HỆ THỐNG 1.1 Giới thiệu.
1.1.1 Thông tin công ty.
- Tên công ty: CÔNG TY CỔ PHẦN THƯƠNG MẠI BÁU HOÀN
- Tên tiếng anh: BAU HOAN TRADE JOINT STOCK COMPANY
- Tên viết tắt: BAU HOAN.JSC
- Loại hình: Công ty cổ phần
- Địa chỉ: Km 99, Đường Nguyễn Văn Linh, Phường Dư Hàng Kênh -
Lê Chân - Hai Phong City – Vietnam
1.1.3 Mô hình tổ chức quản lý.
a Sơ đồ tổ chức.
Hình 1.1 - Sơ đồ tổ chức của công ty.
Trang 8b Chức năng, nhiệm vụ từng bộ phận.
Ban giám đốc
Gồm có Giám đốc là người trực tiếp điều hành công việc kinhdoanh của Công ty thông qua các trưởng bộ phận và ký kết các hợpdồng mua bán Ngoài ra, còn có một phó Giám đốc thực hiện một sốcông việc thay quyền Giám đốc
Phòng kinh doanh
Thực hiện các công việc: tìm hiểu và mở rộng thị trường để đưa
ra những chiến lược kinh doanh, khi Công ty có những mặt hàng mớithì tiến hành tiếp thị cho khách hàng và lập hóa đơn bán hàng
Bộ phận kinh doanh có nhiệm vụ theo dõi công nợ của kháchhàng và nhà cung cấp
Phòng kế toán tài chính
Thực hiện toàn bộ công việc in hóa đơn xuất, nhập hàng, lậpphiếu thu, phiếu chi theo hóa đơn tài chính, đảm nhận việc thanh toánđối với nhà cung cấp và khách hàng Quản lý các hợp đồng kinh tế
Quản lý hóa đơn, các biểu mẫu chứng từ kế toán của Công ty Tổchức lưu trữ chứng từ, tài liệu kế toán, số sách và báo cáo kế toán, cáctài liệu có liên quan đến tài chính kế toán của Công ty theo quy địnhcủa nhà nước và của Công ty
Bộ phận vận chuyển
Có nhiệm vụ: vận chuyển hàng hóa từ nhà cung cấp về Công ty
và vận chuyển các vật tư thiết bị từ kho đến tận nơi cho khách hàng.Phương tiện vận chuyển của công ty chủ yếu là ô tô tải nên bộ phận nàyquản lý việc phân công lái xe, tính toán đường đi và chi phí
Bộ phận kho
Có nhiệm vụ thực hiện các công việc sau: nhập hàng theo hóađơn bán hàng của nhà cung cấp và xuất hàng theo “Phiếu xuất kho” của
Trang 9bộ phận kinh doanh để bộ phận kinh doanh kịp thời nhập hàng, đảmbảo chất lượng hàng trong kho tránh hỏng hóc và luôn đủ để cung cấpcho khách hàng Quản lý việc lưu chuyển vật liệu giữa các kho.
1.2 Khảo sát nghiệp vụ quản lý
- Một số thủ tục nhập, xuất kho và cho thuê vẫn còn thực hiện một cáchthủ công, thiếu linh hoạt dễ dẫn đến sai sót
- Việc lập báo cáo, thống kê còn nhiều khó khăn trong việc tra cứu vàtổng hợp thông tin
Từ thực trạng trên , bài toán cần đáp ứng các yêu cầu :
- Đảm bảo đầy đủ các quy trình, thủ tục nghiệp vụ của công ty
- Dữ liệu phải được quản lý một cách khoa học, linh hoạt giúp các thaotác tra cứu, lưu trữ được thực hiện một cách dễ dàng
1.2.2 Mục đích và yêu cầu của bài toán.
Trong quá trình khảo sát hệ thống, người quản lý phải thấu hiểu nhữngtiến trình, quy trình khảo sát nhằm hỗ trợ tốt nhất cho khách hàng, đáp ứngyêu cầu của bài toán đặt ra, thông tin khảo sát hoàn chỉnh, đầy đủ và chínhxác sẽ mang lại hiệu quả tốt cho giai đoạn thiết kế dự án, áp dụng cho bài toánthực tế đặt ra chúng ta phải thiết kế một hệ thống quản lý cho hoạt động kinhdoanh của công ty CP TM Báu Hoàn Trong thời gian khảo sát dự án ngườikhảo sát phải đạt được những yêu cầu tìm hiểu về hoạt động của công ty ởhiện tại và đưa ra các đánh giá chính xác về nghiệp vụ của công ty, các ưunhược điểm của hệ thống hiện tại từ đó áp dụng cho việc phân tích, thiết kế và
Trang 10tạo một chương trình quản lý vật tư, thiết bị mới phù hợp với yêu cầu củacông ty.
Yêu cầu đặt ra sau quá trình khảo sát là:
Đánh giá được độ phức tạp của dự án, phần mềm cần đạt được
Thời gian thực hiện dự án
Tính toán số lượng nhân lực thiết kế hệ thống một cách hiệu quả nhất
Định mức được giá trị của sản phẩm, từ đó quyết định giá sản phẩm
Các yêu cầu đặt ra đối với hệ thống:
Hệ thống phải giải quyết được những yêu cầu của công ty đồng thờicũng dễ dàng sử dụng đối với các nhân viên
Hệ thống giao diện làm việc trực quan, thân thiện với người sử dụng
Hệ thống phải đáp ứng được các tính năng cơ bản cùng với những tínhnăng tiện dụng và độc đáo khác
Có tính năng quản trị và bảo mật cao, sao lưu số liệu dự phòng hiệu quả, hệ thống các phím chức năng thống nhất hỗ trợ người sử dụng trongcông tác nhập liệu, kiểm tra và báo cáo,hạn chế rủi ro trong công việc
Việc trao đổi thông tin trên mạng nội bộ (Local Area Network – LAN)
sẽ được thực hiện đồng nhất Có thể nhiều User cùng làm việc trên mộtchương trình tại cùng thời điểm nhất định
Sử dụng ngôn ngữ tiếng việt, xử lý nhanh, linh hoạt, ổn định
Hệ thống phải thanh toán theo cả ngày sử dụng lẫn số giờ sử dụng, tùychọn
Giá vật liệu, thiết bị có thể điều chỉnh theo yêu cầu người quản lý;thanh toán có thể bằng nhiều loại tiền tệ phổ biến
Tiết kiệm tối đa thời gian thực hiện công việc đặt ra
Việc quản lý vật tư trong công ty thuận tiện, tiết kiệm được nhân lực
Công việc thống kê cũng như kiểm tra thực hiện nhanh gọn chính xác
Trang 11tư-Quản lý công nợ với nhà cung cấp, công nợ của khách hàng.
Chi tiết các quy trình.
Quản lý kho:
Quy trình nhập vật tư từ nhà cung cấp:
Sau khi kiểm tra số lượng vật tư còn tồn trong kho, nếu số lượng vật tưkhông đủ để đáp ứng nhu cầu cho thuê mà công ty dự tính, bộ phận quản lýkho sẽ đề xuất với ban giám đốc về việc mua thêm vật tư, sau khi ban giámđốc đồng ý thì yêu cầu mua hàng mới có hiệu lực
Quy trình nhập vật tư từ nhà cung cấp: khi công ty gửi yêu cầu muahàng tới nhà cung cấp, nhà cung cấp sẽ kiểm tra vật tư của mình, đưa ra giá cảcủa vật tư và lập hóa đơn bán hàng gửi cho bộ phận tiếp nhận vật tư của công
ty, bộ phận kế toán thông qua hóa đơn bán hàng , tính toán chi phí , nhận vật
tư và trả tiền mua vật tư theo hóa đơn cho nhà cung cấp hoặc có thể thanhtoán sau theo công nợ
Thông tin hóa đơn gồm: số chứng từ, nhà cung cấp, ngày nhập, nhânviên, hình thức thanh toán, tên hàng, số lượng đơn vị tính, đơn giá, kho lưutrữ…
Quy trình xuất chuyển kho:
Khi một kho vật tư nào đó không còn nhiều sức chứa, một vài thiết bịcần phải chuyển sang kho khác, nhân viên quản lý kho sẽ kiểm tra điều kiệnchuyển kho Nếu có thể thực hiện chuyển, nhân viên quản lý kho thực hiệnviệc chuyển vật tư và ghi lại phiếu chuyển kho và đưa lên cho nhân viên kếtoàn thực hiện việc thống kê và cập nhật lại thông tin vật tư trong các kho
Trang 12Thông tin trong phiếu chuyển kho bao gồm: Số chứng từ, nhân viêngiao, ngày xuất, tên thiết bị, số lượng xuất, kho xuất, kho nhập…
Thanh lý thiết bị:
Nhân viên quản lý kho kiểm tra tình trạng các thiết bị vật tư theo định
kỳ, nếu có những thiết bị đã lỗi thời hoặc chất lượng kém, hỏng hóc cần đượcthanh lý thì nhân viên sẽ đề xuất với ban quản lý về việc thanh lý thiết bị Nếu
đề xuất được duyệt, nhân viên tiến hành thanh lý thiết bị theo đúng thủ tục vàquy định, ghi lại toàn bộ thông tin vào phiếu thanh lý Thông tin phiếu thanh
lý gồm: “Mã phiếu, ngày lập, nhân viên thanh lý, người mua,…” Thông tinchi tiết từng thiết bị: “Tên thiết bị, số lượng, kho xuất, lý do thanh lý, đơn giá,
Quản lý thuê, trả:
Khi khách hàng đến thuê vật tư, bộ phận quản lý vật tư cho thuê sẽkiểm tra yêu cầu của khách Nếu yêu cầu không đáp ứng được thì đưa rathông báo từ chối, nếu đáp ứng được thì lập phiếu thuê cho khách hàng
- Thông tin trên phiếu thuê gồm có: “Số chứng từ, ngày lập, tên côngtrình (theo khách hàng), hình thức thanh toán, lái xe, số xe, cước xe” Thôngtin chi tiết: “tên hàng, số lượng, đơn vị tính, đơn giá, kho xuất, ghi chú …”Phiếu thuê được lập thành 2 bản, một bản giao cho khách, một bản lưu lại.Khách hàng có thể thuê nhiều lần cho mỗi công trình khi có nhu cầu, mỗi lầnthuê sẽ có một phiếu thuê được lập
Trang 13Khi khách hàng trả vật tư, nhân viên quản lý kiểm tra số lượng và tìnhtrạng vật tư, nếu không có hỏng hóc thì lập hóa đơn trả vật tư cho khách hàng.
- Thông tin hóa đơn trả gồm: “Số chứng từ, ngày trả, tên công trình, lái
xe, số xe, cước xe, ghi chú… ” Thông tin chi tiết: “Tên hàng, số lượng, đơn
vị tính, đơn giá, kho hàng, ghi chú …”
Nghiệm thu công trình:
Đối với các công trình thuê khoán, sau khi hoàn thành công trình, nhânviên được công ty giao nhiệm vụ giám sát tiến hành tổng hợp lại các lần thuêtrả thiết bị của công trình, đo đạc phạm vi và diện tích công trình và đưa rađơn giá với khách hàng để lập phiếu nghiệm thu công trình Thông tin trongphiếu nghiệm thu công trình: “Ngày nghiệm thu, khách hàng, công trình, số
m2, đơn giá, tổng tiền, thuế VAT (nếu có),…”
Tổng tiền=Số m2× Đơn giá
Đền bù hỏng mất vật tư:
Khi khách hàng trả vật tư, bộ phận tiếp nhận vật tư kiểm tra chất lượng
và số lượng vật tư Nếu thấy thiếu hoặc vật tư bị hỏng thì nhân viên lập phiếubồi thường đối với khách hàng
Quản lý công nợ với nhà cung cấp, khách hàng:
Sau khi nhập thêm vật tư từ các nhà cung cấp, công ty có thể chọnthanh toán theo hóa đơn nhập hoặc trả sau Nhân viên kế toán sẽ đảm nhậnviệc vào sổ sách và tính toán thu chi, công nợ theo những khoản đã thanh toántrong hóa đơn nhập Nếu không thanh toán theo hóa đơn nhập thì nhân viên
kế toán có thể thống kê chi tiết các lần nhập và quản lý công nợ đối với nhàcung cấp theo định kỳ
Khi khách hàng thuê vật tư cũng có nhiều hình thức thanh toán chokhách hàng lựa chọn Khách hàng có thể thanh toán theo hóa đơn trả vật tư,thanh toán khi nghiệm thu công trình hoặc thanh toán đơn lẻ qua chuyểnkhoản, tiền mặt Tương tự như việc quản lý công nợ đối với nhà cung cấp,
Trang 14mọi thông tin về thanh toán của khách hàng sẽ được lưu lại trong hồ sơ củakhách hàng.
Thống kê báo cáo:
Theo định kỳ hoặc khi được ban quản lý yêu cầu, bộ phận kế toán phảilàm các bản thống kê hàng tồn kho, báo cáo nhập xuất tồn tổng hợp từ phiếuthuê trả của khách hàng cũng như hóa đơn nhập hàng từ nhà cung cấp để tiệncho việc theo dõi lượng thiết bị trong công ty Khi có yêu cầu của khách hànghoặc nhân viên quản lý muốn xem bảng giá của các mặt hàng thì nhân viên kếtoán thống kê lại bảng giá của các mặt hàng và in ra giao cho khách hànghoặc người quản lý
Hàng tháng thì bộ phận kinh doanh cần báo cáo về các khoản thu chicủa công ty để trình lên giám đốc Đối với việc thuê trả của khách hàng cầnthống kê: tổng doanh thu trong tháng, tổng tiền khách hàng trả, tổng tiềnkhách hàng còn nợ Đối với nhà cung cấp: tổng số tiền chi trả cho việc nhậphàng, tổng tiền đã thanh toán, số tiền còn nợ nhà cung cấp
Trang 15Một số biểu mẫu liên quan:
Bảng giá mặt hàng:
Trang 17Sinh viên: Nguy n Văn Nh ng – CNT51DH1ễ ươ 17
Trang 18 Báo cáo hàng tồn kho:
Trang 19Sinh viên: Nguy n Văn Nh ng – CNT51DH1ễ ươ 19
Trang 20 Báo cáo nhập xuất tồn:
Báo cáo đồ án tốt nghiệp GVHD: ThS Bùi Đình Vũ
Trang 21Sinh viên: Nguy n Văn Nh ng – CNT51DH1ễ ươ 21
Trang 23 Chi tiết công nợ nhà cung cấp:
Trang 24 Công nợ khách hàng:
Trang 25 Bảng tổng hợp giá trị khối lượng:
Trang 26CHƯƠNG II – CƠ SỞ LÝ THUYẾT 2.1 Lý thuyết về cơ sở dữ liệu.
2.1.1 Khái niệm cơ bản về cơ sở dữ liệu.
Cơ sở dữ liệu (CSDL) là nguồn cung cấp thông tin cho hệ thốngthông tin trên máy tính, tronsg đó các dữ liệu được lưu trữ một cách cócấu trúc theo một quy định nào đó nhằm giảm sự dư thừa và đảm bảotoàn vẹn dữ liệu
Hệ quản trị cơ sở dữ liệu là hệ các chương trình để có thể xử lý,thay đổi dữ liệu Theo nghĩa này, hệ quản trị CSDL có nhiệm vụ rấtquan trọng như là một bộ diễn dịch với ngôn ngữ bậc cao nhằm giúpngười sử dụng có thể dùng được hệ thống mà ít nhiều không cần quantâm đến thuật toán chi tiết hoặc biểu diễn dữ liệu trong máy tính
Trong lịch sử phát triển của CSDL, có ba mô hình CSDL chínhthường được sử dụng, đó là:
- Mô hình phân cấp: Mô hình dữ liệu là một cây, trong đó các
nút biểu diễn các tập thực thể, giữa các nút con và nút cha được liên hệtheo một mối quan hệ xác định
- Mô hình mạng: Mô hình đuợc biểu diễn là một đồ thị có
hướng Mô hình mạng cũng gần giống như mô hình cây, đó là một nútcha có thể có nhiều nút con, nhưng khác là một nút con không chỉ cómột nút cha mà có thể có nhiều nút cha Do vậy việc truy xuất thông tinmềm dẻo hơn
- Mô hình quan hệ: Mô hình này dựa trên cơ sở lý thuyết tập
hợp của các quan hệ Các dữ liệu được chuyển vào bảng hai chiều, mỗibảng gồm các hàng và các cột, mỗi hàng xác định một bản ghi, mỗi cộtxác định một trường dữ liệu Các bảng có thể móc nối với nhau để thểhiện các mối quan hệ
Trang 27Trong ba loại mô hình trên thì mô hình quan hệ được nhiều người quan tâm
hơn cả, bởi nó có tính độc lập dữ liệu rất cao, lại dễ dàng sử dụng và được
hình thức hoá toán học tốt
Trang 282.1.2 Các dạng chuẩn của lược đồ quan hệ.
Do việc cập nhật dữ liệu (chèn, loại bỏ, thay đổi) gây nên những
dị thường cho nên các quan hệ cần được biến đổi thành dạng phù hợp.Quan hệ được chuẩn hoá là quan hệ trong đó mỗi miền của một thuộctính chỉ chứa những giá trị nguyên tố tức là không phân nhỏ được nữa
và do đó mỗi giá trị trong quan hệ cũng là nguyên tố Một quan hệđược chuẩn hoá có thể thành một hoặc nhiều quan hệ chuẩn hoá khác
và không làm mất mát thông tin
Các khái niệm cơ bản:
- Thuộc tính khoá: Cho một lược đồ quan hệ R trên tập thuộc
tính
U= {A1, , An} Thuộc tính AU được gọi là thuộc tính khoá nếu A là thànhphần thuộc một khoá nào đó của R, ngược lại A là thuộc tính không khoá
- Phụ thuộc hàm: Cho R là một lược đồ quan hệ trên tập thuộc
tính U={A1, , An} và X, Y là tập con của U Nói rằng X Y (X xácđịnh hàm Y hay Y phụ thuộc hàm vào X) nếu r là một quan hệ xác địnhtrên R(U) sao cho bất kỳ hai bộ t1, t2 r mà
nếu t1[X] = t2[X] thì t1[Y] = t2[Y]
Nói cách khác, phụ thuộc hàm có nghĩa là với mọi giá trị củakhóa tại mọi thời điểm được xét, chỉ có một giá trị cho từng thuộc tínhkhác trong quan hệ
- Phụ thuộc hàm đầy đủ: Y là phụ thuộc hàm đầy đủ vào X nếu
Y là phụ thuộc hàm vào X nhưng không phụ thuộc vào bất kỳ một tậphợp con thực sự nào của X
Trang 29Các dạng chuẩn:
Năm 1970, khi đề xuất mô hình CSDL quan hệ, trong lý thuyết
ban đầu Codd E.F đưa ra ba dạng chuẩn của quan hệ Đó là: dạngchuẩn thứ nhất (First Normal Form-1NF), dạng chuẩn thứ hai (2NF),dạng chuẩn thứ ba (3NF) Ngoài ba dạng chuẩn trên trong lý thuyếtchuẩn hoá còn có một số dạng chuẩn khác, tuy nhiên chúng khôngđược sử dụng rộng rãi
- Dạng chuẩn thứ nhất (First Normal Form-1NF):
Một lược đồ quan hệ R được gọi là ở dạng chuẩn thứ nhất khi vàchỉ khi toàn bộ các miền có mặt trong R đều chỉ chứa các giá trị nguyên
tố, tức là các giá trị đơn
- Dạng chuẩn thứ hai (2NF):
Lược đồ quan hệ R ở dạng chuẩn hai nếu nó ở dạng chuẩn một
và nếu mỗi thuộc tính không khóa của R là phụ thuộc hàm đầy đủ vàokhóa chính, không phụ thuộc hàm vào một phần của khóa
- Dạng chuẩn thứ ba (3NF):
Lược đồ quan hệ R là ở dạng chuẩn ba nếu nó là dạng chuẩn hai và mỗi thuộctính không khóa của R không phụ thuộc hàm bắc cầu vào khóa chính Hay nóicách khác, các thuộc tính không khóa không phụ thuộc hàm vào bất kỳ phần
tử không phải khóa nào
2.2 Hệ quản trị Microsoft SQL Server.
2.2.1 Giới thiệu về SQL Server.
SQL Server là hệ thống quản trị cơ sở dữ liệu quan hệ(Relational DataBase Management System- RDBMS) sử dụng các lệnhgiáo chuyển Transaction-SQL để trao đổi dữ liệu giữa Client Computer
và Server Computer SQL Server có một số đặc tính sau:
Cho phép quản trị một hệ CSDL lớn (lên đến vài tega byte), cótốc độ xử lý dữ liệu nhanh đáp ứng yêu cầu về thời gian
Trang 30Cho phép nhiều người cùng khai thác trong một thời điểm đốivới một CSDL và toàn bộ quản trị CSDL (lên đến vài chục ngàn user)
Có hệ thống phân quyền bảo mật tương thích với hệ thống bảomật của công nghệNT (Network Technology), tích hợp với hệthống bảomật của Windows NT hoặc sử dụng hệ thống bảo vệ độc lập của SQLServer
Hỗ trợ trong việc triển khai CSDL phân tán và phát triển ứngdụng trên Internet Cho phép lập trình kết nối với nhiều ngôn ngữ lậptrình khác dùng xây dựng các ứng dụng đặc thù (Visual Basic, C, C++,ASP, ASP.NET, XML, )
Sử dụng câu lệnh truy vấn dữ liệu Transaction-SQL (Access làSQL, Oracle là PL/SQL)
2.2.2 Các kiểu dữ liệu.
- Kiểu dữ liệu số: gồm 4 loại dữ liệu số nguyên (bit, int, smallint, tinyint)lưu trữ các giá trị số nguyên và 2 loại dữ liệu số thực (float, real): lưu trữcác thông tin về số gần đúng
- Kiểu string: gồm kiểu biến char, varchar, nchar, nvarchar lưu trữ cácchuỗi ký tự
- Kiểu Binary: gồm các kiểu Binary (n), Varbinary (n), lưu trữ các thôngtin - nhị phân trong cặp 2byte
- Kiểu Date và Time: lưu trữ các ngày và giờ
- Kiểu Money: lưu trữ các giá trị tiền tệ
- Loại dữ liệu kiểu Text và Image: Loại dữ liệu Text lưu trữ dữ liệu nhưcác ký tự trong nhiều trang và được dùng lưu trữ dữ liệu có kích thướchơn 8000 byte Loại dữ liệu Image lưu trữ hình ảnh theo định dạng bmp,tiff, gif, jpeg, hoặc định dạng nhị phân
- Kiểu dữ liệu do người dùng định nghĩa: Khi định nghĩa một kiểu dữ liệu
Trang 31+ Tên kiểu.
+ Loại dữ liệu cơ sở của SQL Server
+ Có cho phép nhân giá trị null
2.3 Ngôn ngữ lập trình C#.
2.3.1 Microsoft NET
2.3.1.1 Nền tảng NET
Nền tảng NET bao gồm bốn nhóm sau:
- Một tập các ngôn ngữ, bao gồm C# và Visual Basic Net, các công
cụ phát triển bao gồm Visual Studio Net; một tập đầy đủ các thưviện phục vụ cho việc xây dựng cácứng dụng web, các dịch vụ web
và các ứng dụng Windows; còn có CLR - Common LanguageRuntime: (ngôn ngữ thực thi dùng chung) để thực thi các đối tượngđược xây dựng trên bô khung này
- Một tập các Server như SQL Server 2000 Exchange 2000.v.v…
- Các dịch vụ web thương mại miễn phí, vừa được công bố gần đậynhư là dự án Hailstorm; nhà phát triển có thể dùng các dịch vụ này
để xây dựng các ứng dụng đòi hỏi tri thức về định danh ngườidùng…
- NET cho các thiết bị không phải PC như điện thoại (cell phone),thiết bị game
2.3.1.2 Kiến trúc NET Framework
.NET Framework là một platform mới làm đơn giản việc phát triển ứngdụng trong môi trường phân tán của Internet .NET Framework được thiết kếđầy đủ để đáp ứng theo quan điểm sau:
Để cung cấp một môi trường lập trình hướng đối tượng vữngchắc, trong đó mã nguồn đối tượng được lưu trữ và thực thi một cáchcục bộ Thực thi cục bộ nhưng được phân tán trên Internet, hoặc thựcthi từ xa
Trang 32- Để cung cấp một môi trường thực thi mã nguồn mà tối thiểuđược việc đóng gói phần mềm và sự tranh chấp về phiên bản.
- Để cung cấp một môi trường thực thi mã nguồn mà đảm bảoviệc thực thi an toàn mã nguồn, bao gồm cả việc mã nguồn được tạobởi hãng thứ ba hay bất cứ hãng nào mà tuân thủ theo kiến trúc NET
- Để làm cho những người phát triển có kinh nghiệm vững chắc
có thể nắm vững nhiều kiểu ứng dụng khác nhau Như là từ những ứngdụng trên nền Windows đến những ứng dụng dựa trên web
.NET Framework có hai thành phần chính: Common LanguageRuntime (CLR) và thư viện lớp NET Framework CLR là nền tảng của.NET Framework Chúng ta có thể hiểu runtime như là một agent quản
lý mã nguồn khi nó được thực thi, cung cấp các dịch vụ cốt lõi như:quản lý bộ nhớ, quản lý tiểu trình, và quản lý từ xa
.Net hỗ trợ tích hợp ngôn ngữ, tức là ta có thể kế thừa các lớp đahình thông qua nhiều ngôn ngữ NET Framework thực hiện được việcnày nhờ vào đặc tả Common Type System - CTS (hệ thống kiểu chung)
mà tất cả các thành phần Net đều tuân theo Ví dụ, mọi thứ trong Netđều là đối tượng, thừa kế từ lớp gốc System.Object Ngoài ra Net cònbao gồm Common Language Specification - CLS (đặc tả ngôn ngữchung) Nó cung cấp các qui tắc cơ bản mà ngôn ngữ muốn tích hợpphải thỏa mãn CLS chỉ ra các yêu cầu tối thiểu của ngôn ngữ hỗtrợ Net Trình biên dịch tuân theo CLS sẽ tạo các đối tượng có thểtương hợp với các đối tượng khác Bộ thư viện lớp của khung ứng dụng(Framework Class Library - FCL) có thể được dùng bởi bất kỳ ngônngữ nào tuân theo CLS .NET Framework nằm ở tầng trên của hệ điềuhành (bất kỳ hệ điều hành nào không chỉ là Windows) NETFramework bao gồm:
- Bốn ngôn ngữ chính thức: C#, VB.Net, C++, và Jscript.NET
Trang 33phát triển ứng dụng Windows và web mà các ngôn ngữ có thể chia
- C# là ngôn ngữ đơn giản
- C# là ngôn ngữ hướng đối tượng
- C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo
- C# là ngôn ngữ ít từ khóa
- C# là ngôn ngữ hướng module
Trong C# có những từ khoá dành cho việc khai báo lớp, phươngthức, thuộc tính (property) mới C# hỗ trợ đầy đủ khái niệm trụ cộttrong lập trình hướng đối tượng: đóng gói, thừa kế, đa hình Định nghĩalớp trong C# không đòi hỏi tách rời tập tin tiêu đề với tập tin cài đặtnhư C++ Hơn thế, C# hỗ trợ kiểu sưu liệu mới, cho phép sưu liệu trựctiếp trong tập tin mã nguồn Đến khi biên dịch sẽ tạo tập tin sưu liệutheo định dạng XML
C# hỗ trợ khái niệm giao diện, interfaces (tương tự Java) Một
lớp chỉ có thể kế thừa duy nhất một lớp cha nhưng có thế cài đặt nhiềugiao diện
C# có kiểu cấu trúc, struct (không giống C++) Cấu trúc là kiểu
hạng nhẹ và bị giới hạn.Cấu trúc không thể thừa kế lớp hay được kếthừa nhưng có thể cài đặt giao diện
C# cũng cho truy cập trực tiếp bộ nhớ dùng con trỏ kiểu C++,nhưng vùng mã đó được xem như không an toàn
2.3.3 Ngôn ngữ lập trình LinQ
Trang 342.3.3.1 Tổng quan vềLinQ:
LINQ là viết tắt của từ Language – Integrated Query tạm dịch
là ngôn ngữ tích hợp truy vấn là một sự đổi mới trong Visual Studio
2008 và NET Framework 3.5 là cầu nối khoảng cách giữa thế giới củacác đối tượng với thế giới của dữ liệu Theo truyền thống các câu truyvấn trên dữ liệu được thể hiện một cách dễ dàng giống như các chuỗi kí
tự đơn giản mà không cần đến kiểu kiểm tra tại thời điểm biên dịchhoặc sự hỗ trợ của trình hỗ trợ trực quan Hơn nữa bạn cần phải tìmhiểu một ngôn ngữ truy vấn khác nhau cho mỗi loại dữ liệu liệu nguồnkhác nhau như: Cở sở dữ liệu SQL, tài liệu XML, các dịch vụ Web.LINQ làm cho một truy vấn một lớp đầu tiên xây dựng trong ngôn ngữC# và Visual Basic Bạn viết một câu truy vấn dựa trên tập hợp các đốitượng bằng cách sử dụng ngôn ngữ, các từ khóa các toán tử quen thuộc
Việc xử lý thông tin và các thao tác trên dữ liệu là 1 nhiệm vụhết sức quan trọng, bởi lẽ CSDL có thể nói là cốt lõi của tất cả các ứngdụng, và một một trong những trở ngại chính mà các nhà phát triển(Developer) luôn đối mặt đó là sự khác biệc giữa ngôn ngữ lập trìnhhướng đối tượng và ngôn ngữ truy vấn dữ liệu, càng phức tạp hơn nếuCSDL là XML …
Hiện nay có thể có một số công nghệ hổ trợ việc truy vấn dữliệu nhưng việc sử dụng hết sức rờm rà, phải qua nhiều thao tác để trả
về một kết quả, và bản chất là phải truyền vào những câu lệnh SQL,điều này làm cho thời gian phát triển ứng dụng kéo dài bởi lẽ người lậptrình phải tốn thêm khá nhiều thời gian để tiếp cận cách sử dụng, hơnnữa việc xử lý nếu không hay sẽ dể gây chết ứng dụng Mặc khác, khicác công nghệ này trả về một kết quả sẽ là một DataTable hay DataSet
mà không phải là một đối tượng hay một danh sách đối tượng, điều đó
sẽ gây khó khăn trong việc quản lý
Trang 35vấn đề khác, Microsoft đã cho ra đời công nghệ LINQ, nhằm giải quyếtnhững vấn đề khó khăn trên dữ liệu mà chúng ta đã và đang gặp phải.
2.3.3.2 Thay đổi các phương thức trong LINQ đến SQL:
Kể từ bản RTM, các phương thức dùng cho thêm và xóa entity đã đượcđổi tên, cụ thể như sau:
Add đổi thành InsertOnSubmit
AddAll đổi thành InsertAllOnSubmit
Remove đổi thành DeleteOnSubmit
RemoveAll đổi thành DeleteAllOnSubmit
Trang 36CHƯƠNG III – PHÂN TÍCH, THIẾT KẾ HỆ THỐNG
3.1 Thiết kế chức năng của hệ thống.
Quản lý hóa đơn nhập
Quản lý hàng chuyển kho
Quản lý hàng thanh lý
Quản lý thuê - trả vật tư:
Trang 37 Quản lý hóa đơn xuất
Quản lý hóa đơn trả
Nghiệm thu công trình khoán
Quản lý phiếu bồi thường
Quản lý hóa đơn GTGT
Quản lý công nợ:
Quản lý thanh toán với nhà cung cấp
Quản lý thanh toán với khách hàng
Báo cáo thống kê:
In bảng giá
Thống kê hàng tồn theo kho
Báo cáo công nợ khách hàng
Báo cáo công nợ nhà cung cấp
Báo cáo nhập xuất tồn
In bảng tiền thuê vật tư theo công trình
In bảng tổng hợp giá trị khối lượng COPPHA theo công trình
Trang 383.1.2 Sơ đồ phân rã chức năng.
Hình 3.1 – Sơ đồ phân rã chức năng.
Trang 393.1.3 Mô tả các chức năng.
Quản lý hệ thống:
Đăng nhập: Khi người dùng muốn sử dụng các chức năng của hệthống cần nhập vào tài khoản và mật khẩu để truy vập vào hệ thống Hệthống sẽ kiểm tra tài khoản và mật khẩu nhập vào xem có chính xáchay không Nếu không chính xác thì yêu cầu người dùng nhập lại
Cấu hình hệ thống: Cho phép người quản trị thiết lập các thôngtin về hệ thống và cơ sở dữ liệu
Quản lý người dùng: Theo dõi và cập nhật nhóm người dùng Ngườidùng muốn truy cập vào hệ thống thì phải được cấp một tên truy cập, một mậtkhẩu và quyền truy cập hệ thống Tên truy cập, mật khẩu và quyền truy cập hệthống này được người quản trị cấp cho mỗi người dùng, người dùng sẽ dùng
nó để truy cập hệ thống
Sao lưu, phục hồi dữ liệu: Chức năng sao chép dữ liệu ra có thể dùng
để gửi cho các đơn vị khác hoặc để lưu trữ dữ liệu Nếu có các sự cố làm mất
dữ liệu thì người người quản trị có thể phục hồi lại dữ liệu đã sao lưu
Quản lý danh mục: Cập nhật các danh mục trong hệ thống.
Quản lý nhà cung cấp: cho phép cập nhật thông tin về các nhà cungcấp Thêm mới nhà cung cấp
Cập nhật danh mục kho: Thêm mới hoặc thay đổi thông tin kho Thôngtin gồm mã kho, tên kho
Quản lý đơn vị tính: Thêm mới hoặc thay đổi thông tin về đơn vị tính.Thông tin đơn vị tính gồm: mã đơn vị tính, tên đơn vị tính
Cập nhật loại hàng: Cho phép người dùng cập nhật thông tin về loạihàng, thêm mới loại hàng
Quản lý đơn giá: Cập nhật đơn giá nhập và đơn giá cho thuê của mặthàng
Trang 40Quản lý xe vận chuyển: Quản xe thông tin các xe vận chuyển hàng hóacủa công ty.
Quản lý nhân viên: Cập nhật, thêm mới thông tin nhân viên trong công
Nhập hàng tồn đầu kỳ: Khi mới bắt đầu sử dụng hệ thống Người quảntrị hoặc nhân viên trong công ty thực hiện nhập toàn bộ thông tin về hàng hóatồn trong kho vào hệ thống và chức năng này chỉ dùng khi bắt đầu sử dụng hệthống
Quản lý hàng chuyển kho: Cho phép nhân viên cập nhật thông tin cácphiếu chuyển kho vào hệ thống để tiện theo dõi hàng hóa trong kho
Quản lý hàng thanh lý: Cập nhật, thêm mới các phiếu thanh lý hàngtrong kho
Quản lý thuê trả:
Quản lý hợp đồng công trình: Khi khách hàng đến ký hợp đồng thuêhàng cho công trình, nhân viên thêm mới các hợp đồng công trình vào hệthống Khi có những thay đổi trong hợp đồng thì nhân viên cập nhật các thôngtin hợp đồng công trình của khách hàng
Quản lý phiếu thuê: Mỗi lần thuê hàng của khách, nhân viên nhậpthông tin phiếu thuê và hệ thống và xuất ra phiếu thuê để đưa cho khách hàng.Chức năng cho phép nhân viên thêm mới hoặc chỉnh sửa thông tin của cácphiếu thuê
Quản lý phiếu trả: Khi khách hàng đến trả hàng, nhân viên nhập các