Đồ án Quản lý vật tư, thiết bị, ứng dụng cho trung tâm phát triển Công nghệ thông tin - Đại học quốc gia Thành phố Hồ Chí Minh

Tài liệu Đồ án Quản lý vật tư, thiết bị, ứng dụng cho trung tâm phát triển Công nghệ thông tin - Đại học quốc gia Thành phố Hồ Chí Minh: nhóm sinh viên: nguyễn văn nam phạm văn mạnh nguyễn tú uyên đề tài :quản lý vật tư, thiết bị, ứng dụng cho trung tâm phát triển cntt-đhqg tphcm đồ án tốt nghiệp kỹ thuật viên chuyên ngành: công nghệ phần mềm Giáo viên hướng dẫn: tiến sĩ Lê Huy thập Niên khóa: 2003 - 2005 Lời nói đầu Ngày nay với sự phát triển không ngừng và mạnh mẽ của công nghệ thông tin (CNTT) trong tất cả các ngành nghề, các lĩnh vực khác nhau của xã hội như: kinh tế, an ninh quốc phòng, thương mại điện tử ….CNTT đang là nhu cầu cần thiết đối với các công ty, doanh nghiệp, các tổ chức kinh tế, xã hội ... và với tất cả chúng ta. Rất nhiều các chương trình phần mềm ứng dụng trong quản lý đã ra đời như chương trình quản lý nhân sự, quản lý hàng hoá, quản lý vật tư… và thực sự chiếm được lòng tin của khách hàng. Tuy nhiên để cho ra đời một sản phẩm phần mềm quản lý có chất lượng thì người thiết kế phải hiểu được thực tế về công ty, doanh nghiệp…mà mình thiết kế mô hình cơ sở dữ liệu để quản lý. Các chư...

doc88 trang | Chia sẻ: hunglv | Lượt xem: 1332 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đồ án Quản lý vật tư, thiết bị, ứng dụng cho trung tâm phát triển Công nghệ thông tin - Đại học quốc gia Thành phố Hồ Chí Minh, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
nhóm sinh viên: nguyễn văn nam phạm văn mạnh nguyễn tú uyên đề tài :quản lý vật tư, thiết bị, ứng dụng cho trung tâm phát triển cntt-đhqg tphcm đồ án tốt nghiệp kỹ thuật viên chuyên ngành: công nghệ phần mềm Giáo viên hướng dẫn: tiến sĩ Lê Huy thập Niên khóa: 2003 - 2005 Lời nói đầu Ngày nay với sự phát triển không ngừng và mạnh mẽ của công nghệ thông tin (CNTT) trong tất cả các ngành nghề, các lĩnh vực khác nhau của xã hội như: kinh tế, an ninh quốc phòng, thương mại điện tử ….CNTT đang là nhu cầu cần thiết đối với các công ty, doanh nghiệp, các tổ chức kinh tế, xã hội ... và với tất cả chúng ta. Rất nhiều các chương trình phần mềm ứng dụng trong quản lý đã ra đời như chương trình quản lý nhân sự, quản lý hàng hoá, quản lý vật tư… và thực sự chiếm được lòng tin của khách hàng. Tuy nhiên để cho ra đời một sản phẩm phần mềm quản lý có chất lượng thì người thiết kế phải hiểu được thực tế về công ty, doanh nghiệp…mà mình thiết kế mô hình cơ sở dữ liệu để quản lý. Các chương trình ướng dụng phải có độ chính xác cao, việc lưu trữ dữ liệu phải thuận tiện cho việc tra cứu và kiểm tra. Phần mềm phải hoạt động tốt đáp ứng được các nhu cầu mới phát sinh và cho hiệu quả kinh tế cao đồng thời phải phù hợp với khả năng kinh tế của công ty, doanh nghiệp . Trong xu thế hội nhập vào nền kinh tế thế giới, để phát triển nền kinh tế theo hướng công nghiệp hoá, hiện đại hoá ngành CNTT đã trở thành cầu nối xuyên quốc gia trong mọi hoạt động và tổ chức kinh tế, thương mại. Với việc áp dụng các thành tựu khoa học tiên tiến, hiện đại vào lĩnh vực tin học chúng ta đã dần thay thế các phương pháp thủ công bằng các chương trình phần mềm quản lý trên máy tính, giảm bớt đi thời gian, nhân lực, tăng độ chính xác và bảo mật cao. Những phần mềm quản lý sẽ là công cụ không thể thiếu cho các doanh nghiệp trong và ngoài nước. Với những ưu điểm và tính năng vượt trội đó chúng em đã chọn đề tài : “quản lý vật tư, thiết bị, ứng dụng cho trung tâm phát triển CNTT- đhqg tphcm” làm đồ án tốt nghiệp. Với đề tài này chúng em mong muốn các công ty, doanh nghiệp, các trung tâm, các tổ chức kinh tế, xã hội và các nhà quản lý sẽ nhìn thấy tầm quan trọng của CNTT đặc biệt là các phần mềm ứng dụng trong công tác quản lý của mình. Trong suốt quá trình làm đề tài, chúng em xin trân thành cảm ơn thầy giáo - tiến sĩ LÊ HUY THập đã tận tình chỉ bảo và nhà trường đã tạo điều kiện giúp đỡ chúng em hoàn thành đồ án này. Nhưng do thời gian ngắn và trình độ có phần hạn chế nên quá trình phân tích và thiết kế đề tài không tránh khỏi những thiếu xót, chúng em rất mong nhận được những ý kiến đóng góp và chỉ bảo của các thầy, cô để đề tài lần sau chúng em sẽ làm tốt hơn. Chúng em xin trân thành cảm ơn! Hà nội tháng 5-2005 Chương 1. khảo sát nghiệp vụ đề tàI 1.1.Khảo sát hiện trạng và xác lập dự án. 1.1.1.Mục đích: Là quá trình khảo sát từ sơ bộ đến chi tiết, hiện tại ta cần phải có đầy đủ về các thông tin, để từ đó làm thế nào xây dựng được dự án mang tính khả thi nhất. 1.1.2.Các bước tiến hành khảo sát: -Khảo sát và đánh giá hiện trạng hoạt động của hệ thống cũ. -Xác định phạm vi của hệ thống mới. -Đề xuất các giải pháp và cân nhắc tính khả thi. -Vạch kế hoạch cho dự án cùng với dự trù tổng quát. 1.1.3.Khảo sát, tìm hiểu hệ thống hiện tại. a.Quan sát, tìm hiểu hệ thống hiện tại. -Việc quan sát, tìm hiểu cũng như đánh giá hệ thống phải theo cách nhìn của nhà tin học. -Có các bước quan sát: +Mức thao tác thừa hành. +Mức điêù phối quản lý. +Mức quyết định lãnh đạo. +Mức chuyên gia cố vấn. -Các hình thức tiến hành: +áp dụng hình thức quan sát. +áp dụng hình thức phỏng vấn. +Phương pháp thăm dò. +Phương pháp nghiên cứu tài liệu. b.Tập hợp và phân loại thông tin. Phân loại dựa theo một số tiêu chuẩn sau: -Hiện tại và tương lai. -Phân loại theo thông tin tĩnh, động, thông tin biến đổi. -Phân loại dựa vào nội bộ môi trường. -Tập hợp lại tất cả nhũng thông tin đã được phân loại. c.Phát hiện yếu kém của hiện trạng và các yêu cầu trong tương lai. -Phát hiện yếu kém: Là tìm hiểu các yếu kém về một số mặt như: Sự thiếu vắng thông tin xử lý, thiếu nhân lực, kém hiệu quả trong tổ chức quản lý, ùn tắc thông tin, phức tạp và tổn phí cao.. -Phương pháp phát hiện: Trên cơ sở đã xác định rõ nguyên nhân của yếu kém để đề ra các biện pháp khắc phục những yếu kém đó. 1.2.Phác hoạ giải pháp và cân nhắc tính khả thi. -Xác định phạm vi: Phạm vi của bài toán đặt ra cho dự án trong kế hoạch tổng thể và lâu dài của tổ chức.Phạm vi của bài toán phụ thuộc vào phạm vi của tổ chức: +Tổ chức cỡ lớn, quốc gia, quốc tế: Tập đoàn, Tổng công ty… +Tổ chức cỡ trung bình: Đơn vị nhiều chi nhánh, công ty liên doanh.. +Tổ chức cỡ vừa và nhỏ: Các cơ quan, xí nghiệp.. -Xác định mục tiêu dự án: +Mang lại lợi ích nghiệp vụ: Tăng khẳ năng xử lý, đáp ứng yêu cầu nghiệp vụ, tin cậy, chính xác, bí mật.. +Mang lại lợi ích kinh tế: Tăng thu nhập, giảm chi phí hoạt động, hoàn vốn nhanh.. +Mang lại lợi ích sử dụng: Nhanh chóng, thuận tiện.. +Khắc phục yếu kém của hệ thống cũ, hỗ trợ chiến lược lâu dài, đáp ứng các ưu tiên, hạn chế áp đặt.. -Phác hoạ các giải pháp: +Chỉ cho người dùng thấy triển vọng cụ thể của dự án. +Có một định hướng trong triển khai dự án. +Chỉ ra được: *Các chức năng chính của hệ thống, đầu vào, đầu ra, các giải pháp thực hiện. *Kiến trúc tổng thể của hệ thống(phần cứng, phần mềm..). -Cân nhắc tính khả thi: +Khả thi về nghiệp vụ. +Khả thi về kĩ thuật. +Khả thi về kinh tế. 1.3. Lập dự trù và kế hoạch phát triển dự án. 1.3.1.Lập hồ sơ về dự trù và lựa chọn giải pháp. a.Dự trù thiết bị và kinh phí. Khối lượng dữ liệu lưu trữ. -Số lượng thông tin cần thu thập, tài liệu cần kết xuất. -Thiết bị ngoại vi, đường truyền. -Khối lượng công việc, số người tham gia, thời gian của dự án. -Yêu cầu về chất lượng, thời hạn bảo hành. b.Dự trù về nhân lực. -Nhóm làm việc: Phân tích, thiết kế, lập trình. -Nhóm điều hành dự án: Quản trị dự án. c.Dự trù về thiết kế. 13.2.Lập kế hoạch triển khai dự án. -Chọn tiến trình cho dự án( Thác nước, Xoắn ốc…) -Dự kiến lịch biểu thực hiện dự án. 1.4.Một số vấn đề về hệ thống thông tin quản lý vật tư. 1.4.1. Đặc điểm của hệ thống quản lý vật tư. a.Phân cấp quản lý. -Hệ thống quản lý vật tư là một hệ thống lớn có chức năng tổng hợp tất cả những thông tin về vật tư, thiết bị…để từ đó có thể quản lý một cách dễ dàng. Nhằm giúp các công ty, doanh nghiệp,..thực hiện công tác quản lý vật tư được chính xác, khoa học và tiết kiệm thời gian thì chúng ta cần áp dụng tin học vào công tác quản lý có như vậy hiệu quả quản lý và kinh doanh mới được tăng lên. b.Luồng thông tin. -Thông tin đầu vào: Trong hệ thống quản lý vật tư có những thông tin đầu vào và đầu ra khác nhau, thông tin đầu vào gồm các thông tin về nhà cung cấp, thông tin vật tư, các hoá đơn, phiếu nhập, phiếu xuất, các yêu cầu..những thông tin này có tính chất thay đổi thường xuyên như vật tư. -Thông tin đầu ra:Thông tin đầu ra được tổng hợp từ thông tin đầu vào thông tin đầu ra ở đây chủ yếu là các bảng biểu, báo cáo, thông tin về khách hàng, tình hình nhập xuất.. -Các bảng biểu báo cáo là những thông tin đầu ra quan trọng được tổng hợp để phục vụ công tác quản lý vật tư, nó phản ánh trực tiếp mục đích quản lý của hệ thống. Vì vậy các bảng biểu báo cáo đòi hỏi phải chính xác và kịp thời . 1.4.2.Mô hình một số thông tin quản lý hiện hành. a.Mô hình luân chuyển dữ liệu. -Mô hình luân chuyển dữ liệu trong hệ thống quản lý vật tư có thể mô tả các modul sau: +Cập nhật thông tin có tính chất cố định để lưu trữ, tra cứu. +Cập nhật thông tin có tính chất thay đổi thường xuyên. +Lập bảng biểu báo cáo. b.Cập nhật thông tin động. -Modul này có chức năng xử lý thông tin luân chuyển chi tiết và tổng hợp nhưng đối với loại thông tin chi tiết đặc biệt lớn về số lượng cần xử lý thường nhật đòi hỏi tốc độ nhanh và tin cậy cao. Khi thiết kế modul cần quan tâm đến các yêu cầu sau: +Phải biết rõ các thông tin cần lọc từ thông tin động. +Giao diện màn hình và số lượng phải hợp lý, giảm tối đa các thao tác cho người cập nhật dữ liệu. +Tự động nạp các thông tin đã biết và các giá trị lặp. +Kiểm tra và phát hiện sai sót trong quá trình. +Biết loại bỏ những thông tin đã có và không cần thiết. c.Cập nhật thông tin cố định có tính chất tra cứu. -Thông tin loại này không cần cập nhật thường xuyên, nhưng yêu cầu chủ yếu là phải đầy đủ và phải tổ chức hợp lý để có thể tra cứu nhanh khi cần thiết. d.Lập báo cáo, in ấn. -Để thiết kế phần này đòi hỏi người quản lý nắm thật vững nhu cầu quản lý, tìm hiểu thật kỹ các mẫu biểu báo cáo. Vì thông tin sử dụng trong công việc này thuận lợi hơn do đã được xử lý từ trước nên việc kiểm tra sự sai lệch của số liệu trong ngày ở phân này được giảm bớt. 1.4.3 - Các nguyên tắc đảm bảo. Để xây dựng một hệ thống thông tin quản lý vật tư hoàn chỉnh, là một công việc không phải là đơn giản, mất nhiều thời gian công sức, cũng như trí óc người thiết kế. Nói chung việc xây dựng một hệ thống quản lý vật tư thường phải dựa trên một số nguyên tắc cơ bản sau: a.Nguyên tắc cơ sở thông tin thống nhất. Là thông tin được tích luỹ thường xuyên và cập nhật để phục vụ cho bài toán quản lý. Chính vì thế mà thông tin trùng lặp phải được loại bỏ. Một điều cần thiết loại trừ nữa là, để đảm bảo thông tin không nhất quán. Do vậy ta cần tổ chức thành các mảng thông tin cơ bản mà trong đó các trường hợp trùng lặp không nhất quán về thông tin đã được loại bỏ. Chính mảng thông tin cơ bản này sẽ tạo thành đối tượng thông tin của đối tượng điều khiển. b. Nguyên tắc linh hoạt của thông tin. Nguyên tắc này, ngoài các mảng thông tin cơ bản thì cần phải có những công cụ đặc biệt, để tạo ra các mảng làm việc cố định hoặc tạm thời, dựa trên cơ sở các mảng thông tin cơ bản đã có và chỉ trích từ mảng cơ bản. Việc tuân theo hai nguyên tắc thống nhất và linh hoạt với hệ thống thông tin sẽ làm hoàn thiện và phát triển hệ thống rõ ràng và đơn giản hơn. c. Nguyên tắc làm cực tiểu thông tin vào và thông tin ra. Đây là nguyên tắc có ý nghĩa rất lớn đối với việc làm tăng hiệu xuất sử dụng máy tính. Vì chính đầu vào và đầu ra của máy tính lá khâu hẹp nhất của hệ thống. Để làm được việc này cần phải có phương pháp thay thế giữa việc truyền tải tài liệu thủ công bằng việc truyền tải tài liệu trên thiết bị như băng từ, đĩa từ...., để đảm bảo việc truyền xuất thông tin được nhanh chóng. Việc này sẽ giảm bớt đi được thời gian lãng phí và tăng hiệu quả của máy tính. Nguyên tắc này vận dụng cả đưa thông tin mới vào hệ thống. Việc này không những rút ngắn thời gian và công sức cho việc vào dữ liệu, mà còn đảm bảo độ tin cậy của thông tin. Chương 2: Cơ sở lý thuyết phân tích, thiết kế và xây dựng hệ thống thông tin 2.1.Đại cương về hệ thống thông tin Hệ thống thông tin là một hệ thống bao gồm con người, phương tiện và các phương pháp xử lý thông tin trong một tổ chức. Hệ thông thông tin bao gồm hai thành phần cơ bản: các dữ liệu ghi nhận thực trạng của doanh nghiệp và các xử lý cho phép biến đổi các dữ liệu. Các dữ liệu: Đó là các thông tin được lưu và duy trì nhằm phản ánh thực trạng hiện thời hay quá khứ của doanh nghiệp. Có thể tách các dữ liệu này thành hai phần: -Các dữ liệu phản ánh cấu trúc nội bộ cơ quan, như dữ liệu về nhân sự, nhà xưởng, thiết bị v.v... Cấu trúc cơ quan không phải là cố định, mà có thể có biến động khi có một sự kiện xảy ra (chẳng hạn khi một nhân viên thuyên chuyển, một thiết bị mới được bổ sung...). Sự kiện thường xảy ra bất chợt, ngoài ý muốn của con người. Việc điều chỉnh lại các dữ liệu cho thích hợp khi có một sự kiện xảy ra gọi là cập nhật. -Các dữ liệu phản ánh các hoạt động kinh doanh/ dịch vụ của cơ quan, như dữ liệu về sản xuất, mua bán, giao dịch v.v... Hoạt động kinh doanh/ dịch vụ biến đổi luồng vào/ra của doanh nghiệp có thể coi là chuỗi các sự việc sơ đẳng, gọi là một tác nghiệp (operation - chẳng hạn nhận một lô hàng, hoàn thành một mẻ sản phẩm, một đơn hàng tới, thanh toán một hóa đơn v.v...). Khi có một tác nghiệp xảy ra, sự kiện này cần được ghi nhận, và như vậy làm thay đổi các dữ liệu phản ánh các hoạt động kinh doanh/dịch vụ của doanh nghiệp. Các xử lý: Đó là những quá trình biến đổi thông tin, nhằm vào hai mục đích chính: - Sản sinh các thông tin theo thể thức quy định, chẳng hạn lập các chứng từ giao dịch (đơn mua hàng, hóa đơn...), lập các báo cáo, lập các bản thống kê .v.v... - Trợ giúp ra các quyết định, thông thường là cung cấp những thông tin cần thiết cho việc thực hiện lựa chọn một quyết định của lãnh đạo, nhưng cũng có thể là lựa chọn quyết định( một cách tự động), nếu đó là loại quyết định dựa trên giải thuật( khác với loại quyết định dựa trên trực giác). Mỗi xử lý thường áp dụng một số quy tắc quản lý định sẵn và diễn ra theo một trật tự định sẵn (gọi là thủ tục). Các quy tắc quản lý và các thủ tục có thể được ấn định bởi hệ thống lãnh đạo của doanh nghiệp, và như vậy có thể điều chỉnh theo ý muốn( chẳng hạn các quy tắc tiêu thụ sản phẩm, phương pháp phân phối các trợ cấp, các quy định về khuyến mãi...), cũng có thể được ấn định từ bên ngoài doanh nghiệp, đặc biệt là bởi Nhà nước( ví dụ quy tắc tính thuế VAT, cách tính lương và bảo hiểm xã hội v.v..) và như vậy doanh nghiệp không được tùy tiện thay đổi. Đầu vào của một xử lý có thể là các thông tin phản ánh cấu trúc doanh nghiệp và/ hoặc các thông tin phản ánh hoạt động của doanh nghiệp. Đầu ra có thể là: - Các kết quả chuyển trực tiếp cho các cá nhân hay tổ chức ngoài doanh nghiệp( chẳng hạn đơn đặt hàng, hóa đơn, thống kê Quản lý Sinh Viên, báo cáo tài chính v.v...) được gọi là các kết quả ngoài. - Các kết quả được lưu trữ, để sau này dùng làm đầu vào cho các xử lý khác( thường là các thông tin về tình trạng, về lịch sử hay thông tin lưu trữ) được gọi là các kết quả trong. Trong thực tế, thuật ngữ hệ thống thông tin thường được dùng để chỉ môi trường điện tử - tin học trợ giúp cho một công việc quản lý cụ thể nào đó, hay nói cách khác, là để chỉ cái đích đạt được sau quá trình xây dựng nhằm tin học hoá trợ giúp cho công tác quản lý của một hệ thống kinh tế - xã hội… 2.2. Quy trình phát triển hệ thống thông tin Quy trình phát triển hệ thống thông tin được chia thành nhiều giai đoạn. Tuỳ thuộc vào phương pháp luận và quy định về phương thức làm việc của đơn vị, qui trình này có thể được chia thành số lượng bước nhiều ít khác nhau. Tuy nhiên có thể tổng hợp chung thành các bước: Khảo sát, Phân tích, Thiết kế, Xây dựng, Cài đặt và Bảo trì hệ thống. Một điểm cần nhấn mạnh là dù làm việc có phương pháp hay không thì công việc vẫn phải trải qua đầy đủ các bước kể trên. Hay nói cách khác là dù có làm như thế nào đi chăng nữa thì người ta vẫn phải xác định yêu cầu(Khảo sát), tưởng tượng ra hình hài của hệ thống( Phân tích), xác định cách thể hiện dữ liệu và thông tin( Thiết kế), lập trình( Xây dựng), cài đặt và bảo trì. 2.2.1. Chiến lược và khảo sát. Là giai đoạn tìm hiểu quy trình hoạt động của hệ thống thực, các nhu cầu thông tin chính làm cơ sở xác định các yêu cầu, phạm vi của hệ thống thông tin. Kết quả là hồ sơ khảo sát chiếm khoảng 10-15% công sức. Việc khảo sát thường được tiến hành qua các giai đoạn: - Khảo sát sơ bộ: Nhằm xác định tính khả thi của đề án. - Khảo sát chi tiết: Nhằm xác định chính xác những gì sẽ thực hiện và khẳng định những kết quả thu được. - Báo cáo: Lập hồ sơ khảo sát. ở giai đoạn khảo sát cần xác định rõ những nhu cầu, vấn đề quan tâm, để có giới hạn chính xác của công việc( phạm vi dự án: những gì phải làm được, chưa làm được và những gì đã vượt ra ngoài phạm vi của vấn đề). Cũng ở giai đoạn này, cần tìm hiểu và xác định cụ thể đối tượng sử dụng dù họ có thể sẽ bị biến động cả về số lượng và loại công việc. 2.2.2. Phân tích hệ thống Là giai đoạn xác định rõ các mục tiêu quản lý chính cần đạt được của hệ thống, nêu được các yếu tố quan trọng và đảm bảo đạt được các mục tiêu của hệ thống. Dựa trên các mục tiêu đó, xác định được các mô hình chức năng và mô hình dữ liệu. Kết quả là hồ sơ phân tích chiếm 15-25% công sức. Mục tiêu chính của giai đoạn này là biến đổi phần đầu vào thành các đặc tả có cấu trúc. Đây là quá trình mô hình hoá hệ thống với các sơ đồ luồng dữ liệu, thực thể liên kết, sơ đồ phân rã chức năng, sơ đồ ngữ cảnh... Các công cụ thể hiện (chủ yếu là dạng đồ hoạ) được sử dụng trong các bước khác nhau của quá trình xây dựng và có thể để phục vụ các mục đích, đối tượng khác nhau. Việc sử dụng các công cụ là không bắt buộc( đặc biệt là các công cụ luồng dữ liệu) và tuỳ thuộc vào sở trường của đội ngũ phân tích hệ thống. Trong thực tế, phần phân tích dữ liệu là phức tạp và quan trọng nhất. Các phần phân tích chức năng và phân tích dữ liệu không được bỏ qua. a. Phân tích chức năng Cung cấp một cách nhìn tổng thể tới mọi công việc. Xác định rõ các công việc cần phải giải quyết để đạt mục tiêu quản lý của hệ thống. Việc phân rã là một cách biểu diễn cấu trúc chức năng giúp cho việc kiểm tra các chức năng còn thiếu và có thể dễ dàng phân tách, tổ hợp các chức năng công việc. Cấu trúc phân rã này không phản ánh độ quan trọng hay thứ tự giải quyết các chức năng. Trong giai đoạn phân tích chỉ nên đưa vào các chức năng phản ánh nghiệp vụ và thuộc phạm vi của mục tiêu quản lý đặt ra. Một chức năng được xem là đầy đủ gồm những thành phần sau: - Tên chức năng. - Mô tả có tính tường thuật. - Đầu vào của chức năng (dữ liệu). - Đầu ra của chức năng (dữ liệu). - Các sự kiện gây ra sự thay đổi, việc xác định và hiệu quả của chúng. Phân tích chức năng đưa ra những chi tiết quan trọng sẽ được dùng lại nhiều lần trong các giai đoạn sau của quá trình phân tích. Sơ đồ chức năng sau khi được lập sẽ cho chúng ta một cách nhìn toàn diện hơn về những nhu cầu hệ thống. b. Phân tích dữ liệu Thực thể là đối tượng chứa thông tin cơ bản phục vụ cho các chức năng mà hệ cần giải quyết. Mỗi thực thể( Entity) là một nhóm các dữ liệu có cùng thuộc tính, luôn cùng xuất hiện. Các thực thể trung gian sẽ sinh ra trong phần thiết kế. Các thực thể lấy dữ liệu từ các thực thể cơ bản nhưng sẽ bị sửa đổi theo yêu cầu của chức năng cũng cần đưa vào giai đoạn phân tích. c. Phân tích ngữ cảnh Mô tả mối liên hệ thực tế của hệ thống với các yếu tố, tác nhân liên quan đến hệ thống. Trong sơ đồ, phần bên trong sẽ thể hiện các chức năng chính ở mức tổng quát nhất với dòng dữ liệu chính trong hệ. Phần bên ngoài có thể là các tác nhân như con người, một tổ chức hay bộ phận nghiệp vụ của hệ thống khác và dòng dữ liệu liên quan đến hệ thống. d. Phân tích luồng dữ liệu Sơ đồ dòng dữ liệu (DFD) là một công cụ để trợ giúp bốn hoạt động chính: (1) Phân tích: Dùng để xác định các quy trình quản lý, thể hiện yêu cầu của người sử dụng. (2) Thiết kế: Dùng để minh hoạ các phương án cho phân tích viên, lập trình viên và người dùng xem xét khi thiết kế một hệ thống mới. Thể hiện quy trình xử lý thông tin trong hệ thống. (3) Liên lạc: DFD là một công cụ trực quan, đơn giản, dễ hiểu trợ giúp cho việc hiểu biết lẫn nhau giữa phân tích viên và người sử dụng. (4) Tài liệu: Việc dùng DFD trong đặc tả yêu cầu người dùng và đặc tả thiết kế hệ thống làm đơn giản công việc mô hình hoá và chấp nhận những tài liệu như vậy. 2.2.3. Thiết kế hệ thống Là giai đoạn phát triển các bước phân tích ở giai đoạn trước thành các mô hình logic và vật lý, thiết kế giao diện với người sử dụng. Giai đoạn này phụ thuộc nhiều vào cấu hình của phần cứng và phần mềm được lựa chọn. Kết quả là hồ sơ thiết kế chiếm khoảng 15-25% công sức. Đầu chính của quá trình thiết kế là các đặc tả yêu cầu đã được xây dựng trong quá trình phân tích. Trong giai đoạn này từ khái niệm biểu diễn bởi mô hình quan hệ thực thể có thể sinh ra được các mô hình dữ liệu logic. Giai đoạn này là quá trình chuyển từ các mô hình dữ liệu và chức năng thành các thiết kế cơ sở dữ liệu và thiết kế module. Trong giai đoạn thiết kế, có rất nhiều công cụ cho phép đặc tả hệ thống song không phải tất cả các công cụ đều cần phải sử dụng. Nếu sử dụng quá ít các công cụ phát triển hệ thống sẽ làm cho hệ thống kém chất lượng, ngược lại việc sử dụng quá nhiều các công cụ sẽ gây lãng phí thời gian để đồng bộ các mô hình, một mặt có thể kéo dài thời gian xây dựng, mặt khác lại có thể làm giảm chất lượng hệ thống. Người phân tích phải tự chịu trách nhiệm đánh giá để có quyết định đúng xem nên dùng công cụ nào cho phù hợp với hệ thống cụ thể. Thiết kế hệ thống bao gồm các công việc: - Xác định hệ thống máy tính. - Phân tích việc sử dụng dữ liệu. - Hình thức hoá hệ thống thành phần: áp dụng các cách kiểm soát cần thiết, gộp nhóm các thành phần chức năng. - Thiết kế cơ sở dữ liệu vật lý. - Thiết kế chương trình. 2.2.4. Xây dựng chương trình Là giai đoạn lập trình trên cơ sở các phân tích, thiết kế ở các giai đoạn trước. Kết quả là chương trình. Giai đoạn này chiếm khoảng 35-60% công sức. Giai đoạn này gồm các bước : a. Thi công: - Trên cơ sở kết quả thiết kế tiến hành tích hợp, mã hoá các module chương trình. - Viết các câu lệnh sản sinh CSDL. - Thực hiện các câu lệnh trên hệ quản trị CSDL lựa chọn. b. Tạo các CSDL kiểm tra. c. Kiểm thử chương trình. 2.2.5. Cài đặt hệ thống a. Lập tài liệu hướng dẫn sử dụng. b. Chuyển đổi dữ liệu cũ. Thực hiện chuyển đổi cơ sở dữ liệu nếu có yêu cầu thay đổi sang hệ thống mới. Việc này đòi hỏi đồng thời hiểu biết cấu trúc của cả hệ thống cũ và hệ thống mới và nguyên tắc chuyển đổi. Cơ chế chuyển đổi phải được thiết kế ngay trong giai đoạn thiết kế hệ thống. c. Kiểm nghiệm, cài đặt. 2.2.6. Bảo trì hệ thống Bảo trì hệ thống được tính từ khi hệ thống được chính thức đưa vào sử dụng. Công việc bảo trì bao gồm : a. Theo dõi việc sử dụng hệ thống, nhận các thông báo lỗi. b. Sửa đổi, nâng cấp phiên bản. c. Trợ giúp hiệu chỉnh các sai sót số liệu. Thông thường việc bảo trì được tiến hành miễn phí trong khoảng 6 tới 12 tháng. Sau đó hợp đồng bảo trì sẽ được tiếp tục hàng năm với trị giá khoảng 10% tổng giá trị hệ thống. Việc bảo trì có thể thực hiện tại chỗ hoặc thông qua một Trung Tâm hỗ trợ từ xa. 2.3. Phương pháp luận phân tích và thiết kế hệ thống thông tin. Cùng với sự phát triển của công nghệ thông tin, việc xây dựng hệ thống đã dần được chuẩn hóa chuyển thành các hoạt động chuyên nghiệp, công nghiệp hóa hơn. Các phương pháp luận phân tích thiết kế hệ thống dần được hình thành và hoàn thiện. Một cuộc cách mạng, đỉnh cao của sự hoàn thiện là sự ra đời của phương pháp luận phân tích thiết kế có cấu trúc kết hợp được kết quả của các cách tiếp cận hướng chức năng và hướng dữ liệu và phương pháp luận phân tích thiết kế hướng đối tượng. Một phương pháp luận thông thường được đặc trưng bởi các yếu tố sau: - Quy trình và phân đoạn các bước tiến hành. - Các công cụ và cách thức mô hình hóa. - Cách tiếp cận (hướng chức năng, hướng đối tượng, trên xuống, dưới lên...). 2.3.1. Phương pháp phân tích thiết kế có cấu trúc. Phương pháp phân tích thiết kế có cấu trúc tập trung vào các chức năng của hệ thống, bao gồm các hoạt động: Khảo sát, Phân tích, Thiết kế, Xây dựng và cài đặt chương trình. Đặc trưng mới của phương pháp này là các hoạt động có thể thực hiện một cách song song. Mỗi hoạt động có thể cung cấp những sửa đổi phù hợp cho một hoặc nhiều hệ thống trước đó. Trong phân tích có cấu trúc cách tiếp cận cấp tiến cho phép các hoạt động khảo sát, phân tích, thiết kế, xây dựng và cài đặt chương trình được tiến hành một cách song song. Chính ưu điểm này đã làm cho phương pháp phân tích có cấu trúc ngày càng được phát triển. Phương pháp phân tích thiết kế có cấu trúc được sử dụng rộng rãi trong việc phân tích và thiết kế các hệ thống thông tin quản lý vì tính đon giản và hiệu quả của phương pháp. Mặt khác, nhiều khái niệm cơ sở, không thể thiếu được đối với người phân tích và thiết kế cũng được bao hàm trong phương pháp này. Thông qua phương pháp phân tích thiết kế này, người dùng có thể dễ dàng nắm bắt được phần cốt lõi - quy trình xây dựng: Các bước trong quy trình xây dựng hệ thống và yêu cầu đối với mỗi bước, để đạt được trình độ cần thiết cho công việc thẩm định giám sát. Có nhiều công cụ được sử dụng trong quá trình phân tích và thiết kế. Tuy nhiên với hệ thống ít phức tạp sẽ không đòi hỏi phải sử dụng tất cả các công cụ này. Ba công cụ quan trọng để mô hình hoá hệ thống theo phương pháp phân tích thiết kế có cấu trúc là: - Mô hình chức năng. - Mô hình dữ liệu. - Mô hình luồng dữ liệu. Trong đó mỗi mô hình thể hiện một cách nhìn ở góc độ khác nhau vào hệ thống. a. Mô hình chức năng. Mô hình này mô tả các chức năng chính của hệ thống thông tin, thông thường được biểu diễn bằng sơ đồ chức năng nghiệp vụ, thể hiện hệ thống từ khía cạnh chức năng, trả lời cho câu hỏi: Hệ thống thực hiện những công việc gì? Mô hình được sử dụng cho mục đích này là sơ đồ phân rã chức năng (Business Functional Diagram viết tắt là BFD). Nội dung chính của BFD là sơ đồ phân cấp chức năng của hệ thống. Tư tưởng trên xuống (Top-Down) được thể hiện rõ nét trên sơ đồ này. Trước tiên các chức năng cần thiết được liệt kê và phân loại thành các nhóm chức năng. Việc phân loại có thể theo loại hình tính chất công việc, có thể theo đơn vị sử dụng, có thể theo dữ liệu sử dụng và có thể là kết hợp của các kiểu phân loại khác nhau. Các nhóm chức năng lại tiếp tục được phân nhỏ thành các cụm chức năng hoặc các chức năng cụ thể. Sơ đồ BFD được biểu diễn dưới dạng hình cây, tại mỗi nút là một hình chữ nhật thể hiện chức năng hoặc nhóm chức năng cụ thể. Sơ đồ chức năng là công cụ khá hữu hiệu cho người đọc một bức tranh tổng thể về các chức năng mà hệ thống có thể thực hiện được. b. Mô hình dữ liệu Mô tả các dữ liệu chính sẽ có trong hệ thống và mối quan hệ ràng buộc giữa chúng, thông thường được mô tả bằng sơ đồ quan hệ thực thể, các bảng thuộc tính các ràng buộc dữ liệu... thể hiện hệ thống từ khía cạnh dữ liệu hay trả lời cho câu hỏi: Hệ thống sử dụng dữ liệu gì để phục vụ cho hoạt động của mình? Tuy BFD là một công cụ thực sự hữu hiệu cho việc mô hình hóa các hệ thống nhưng công cụ này cũng chỉ mô tả được một khía cạnh lớn của hệ thống là chức năng, mà không cho được một phân tích đầy đủ về toàn bộ hệ thống. Mô hình dữ liệu (Entity Relationship Diagram viết tắt là ERD) là một trong các công cụ phản ánh hệ thống từ một khía cạnh khác, bổ sung cho BFD để tạo nên một tổ hợp trọn vẹn của quá trình phân tích. ERD bao gồm 2 thành phần chính: Thực thể (Entity): Được ký hiệu bởi hình chữ nhật. Một thực thể tượng trưng cho một tập hợp hay một đối tượng trong thế giới thực. Quan hệ (Relationship): Một quan hệ tượng trưng cho sự liên kết giữa các thực thể. Mối liên kết đó được biểu diễn trên mô hình thực thể bằng đường kẻ có tách ba chân ở một hoặc cả hai đầu (thường gọi là chân gà) Có ba kiểu quan hệ chính của mô hình thực thể: - Quan hệ một – một. - Quan hệ một – nhiều. - Quan hệ nhiều - nhiều. c. Mô hình luồng dữ liệu Mô tả luồng luân chuyển dữ liệu trong hệ thống. Có thể biểu diễn bằng nhiều sơ đồ: Sơ đồ ngữ cảnh, Sơ đồ quá trình xử lý, Sơ đồ luồng dữ liệu hoặc bằng các ma trận chức năng/ thực thể. Nếu như các mô hình chức năng và mô hình dữ liệu thể hiện hệ thống dưới dạng tĩnh thì ngược lại, mô hình luồng dữ liệu thể hiện hệ thống dưới cách nhìn động. Mô hình này lột tả luồng luân chuyển dữ liệu trong cả quá trình hoạt động của hệ thống. Hệ thống được mô tả như một quá trình vận động. Một trong các mô hình kinh điển được sử dụng cho mục đích mô tả luồng dữ liệu là sơ đồ dòng dữ liệu (Data Flow Diagram viết tắt là DFD). DFD thể hiện một mô hình hệ thống với quan điểm bình đẳng cho cả dữ liệu và chức năng (quá trình), là một trong những công cụ quan trọng nhất của phân tích hệ thống có cấu trúc. Sơ đồ chỉ cách thông tin chuyển vận từ một quá trình hoặc từ chức năng này sang một quá trình hoặc một chức năng khác. Một điều khá quan trọng là sơ đồ chỉ ra được những thông tin nào cần phải có trước khi thực hiện một chức năng hay một quá trình. Nói cách khác, DFD đưa ra một phương pháp thiết lập mối quan hệ giữa chức năng hoặc quá trình của hệ thống với thông tin mà chúng sử dụng. DFD bao gồm những thành phần sau: - Quá trình (Processes): Được ký hiệu bởi vòng tròn, tượng trưng cho các chức năng khác nhau mà hệ thống phải thực hiện. Chức năng thay đổi thông tin đầu vào theo một cách nào đó, như tổ chức lại thông tin, bổ sung hoặc tạo ra thông tin mới. - Dòng dữ liệu (Flow): Được ký hiệu bởi đường kẻ có mũi tên. Mũi tên chỉ hướng ra của dòng thông tin. Dòng dữ liệu liên kết các Processes với nhau, tượng trưng cho thông tin mà processes yêu cầu cho đầu vào hoặc thông tin mà chúng biến đổi thành đầu ra. - Kho dữ liệu (Data store): Được ký hiệu bởi 2 đường kẻ song song, hoặc bởi hình chữ nhật tròn góc, biểu diễn cho thông tin mà hệ thống cần phải lưu giữ trong một khoảng thời gian để một hay nhiều quá trình hoặc tác nhân truy nhập vào. Một khi công việc xây dựng hệ thống kết thúc thì những thông tin này được tồn tại dưới dạng file hay cơ sở dữ liệu. - Tác nhân ngoài: Là một người, một nhóm hoặc một tổ chức bên ngoài lĩnh vực nghiên cứu của hệ thống, nhưng có một số hình thức tiếp xúc với hệ thống. Nhân tố bên ngoài là nguồn cung cấp thông tin và là phần sống còn của mọi hệ thống. - Tác nhân bên trong: Là một chức năng hoặc một quá trình bên trong hệ thống. DFD cung cấp một bức tranh tổng thể, dễ hiểu về các chức năng và các dữ liệu chính của hệ thống. Tuy nhiên nếu xét về khía cạnh chi tiết thì DFD lại chưa được đầy đủ cả từ góc độ chức năng và dữ liệu. Hai công cụ được sử dụng để bổ khuyết cho DFD là: - Từ điển dữ liệu: Data dictionary. - Đặc tả chức năng: Process specification. Ba thành phần, ba loại hình công cụ phân tích cơ bản kết hợp, bổ sung cho nhau cho phép thể hiện hệ thống một cách hoàn chỉnh. Mô hình luồng dữ liệu cho phép thể hiện hệ thống một cách tổng thể trong tiến trình hoạt động là công cụ đặc biệt hữu hiệu trong giai đoạn khảo sát, một mặt giúp cho người sử dụng và phân tích viên xích lại gần nhau, mặt khác giúp cho người lập trình có được cái nhìn tổng thể trên toàn bộ hệ thống. Có thể nói đây là công cụ phân tích - ngôn ngữ chung chủ yếu giữa phân tích viên và người sử dụng. Khác với mô hình luồng dữ liệu, các mô hình chức năng và dữ liệu cho cách nhìn cụ thể một mặt nào đấy gần gũi với người lập trình. Trong quá trình phát triển( thiết kế, mã hoá, cài đặt) chủ yếu hai mô hình này được tiếp tục phát triển, chi tiết hoá. Nói cách khác đây là công cụ thể hiện ngôn ngữ chung giữa phân tích viên và lập trình viên. d. Mối quan hệ và thứ tự xây dựng các mô hình. Các mô hình kể trên cùng có chung một đối tượng mô tả là mô hình hệ thống vì vậy chúng có quan hệ mật thiết với nhau, từ một mô hình có thể suy ra được một phần các mô hình còn lại. Trong phương pháp luận phân tích thiết kế, cấu trúc các mô hình này được xây dựng chi tiết hoá dần theo cách tiếp cận từ trên xuống. Các mô hình thường được xây dựng đồng thời, tuy nhiên vẫn có thể theo một thứ tự trước sau một chút. (1) Có thể xây dựng theo thứ tự: BFD, ERD, DFD. Thứ tự xây dựng này thường được lựa chọn khi phân tích định hướng lập trình. Trong trường hợp này DFD (mô hình luồng dữ liệu) được sử dụng như một công cụ minh hoạ làm rõ quan hệ giữa các phần tử của BFD( mô hình chức năng) và ERD ( mô hình dữ liệu). (2) Với định hướng trao đổi, làm rõ các yêu cầu của người dùng, DFD lại được xây dựng trước, thể hiện các quy trình nghiệp vụ của hệ thống thực. Sau khi được người dùng xác nhận tính đúng đắn, từ DFD trích lọc các chức năng để xây dựng BFD và dữ liệu để xây dựng ERD. 2.3.2. Phương pháp phân tích thiết kế hướng đối tượng Cách tiếp cận mới nhất trong phân tích và thiết kế hệ thống là phương pháp phân tích và thiết kế hướng đối tượng. Hệ thống được xây dựng bao gồm các thành phần liên kết với nhau gọi là đối tượng. Mỗi đối tượng bao gói cả dữ liệu và xử lý làm cho các phần tử hệ thống độc lập với nhau và có thể tái sử dụng, điều đó đã cải thiện cơ bản chất lượng của hệ thống và làm tăng năng suất hoạt động phân tích và thiết kế. Chương 3. Cơ sở lý thuyết phân tích-thiết kế cơ sở dữ liệu. 3.1 Tổng quan về cơ sở dữ liệu. 3.1.1 Cơ sở dữ liệu là gì? Cơ sở dữ liệu là tập dữ liệu về một đơn vị tổ chức được lưu trên máy và có cách tổ chức quản lý theo một mô hình phù hợp với đơn vị tổ chức đó. Hệ quản trị cơ sở dữ liệu là hệ thống các phần mềm cho phép mô tả, lưu trữ thao tác các dữ liệu trên cơ sở dữ liệu nó bảo đảm bí mật, an toàn với nhiều người sử dụng. 3.1.2 Một số khái niệm cơ bản. a.Thực thể. Là một đối tượng cụ thể hay trừu tượng tồn tại thực sự và khá ổn định trong thế giới thực mà ta muốn phản ánh nó trong hệ thống thông tin. Ví dụ: giáo viên, hàng hoá: Là đối tượng cụ thể. Dự án: Là đối tượng trừu tượng. b.Thuộc tính. Là tính chất mô tả một khía cạnh nào đó của thực thể như vậy thuộc tính là thông tin cần quản lý dữ liệu. c.Khoá. Là một thuộc tính duy nhất cho phép nhận diện sự thể hiện của thực thể. 3.1.3 Quan hệ. Là sự gom nhóm hai hay nhiều thực thể với nhau trong đó mỗi thực thể có một vai trò nhất định. a.Quan hệ 1-1. Một phần tử của A kết hợp với không quá một phần tử của B: b.Quan hệ 1-nhiều. Một phần tử của A có thể kết hợp với N phần tử của B và ngược lại một phần tử của B chỉ kết hợp duy nhất với một phần tử của A. c.Quan hệ nhiều-nhiều. Một phần tử của A có thể kết hợp với N phần tử của B và ngược lại mỗi phần tử của B có thể kết hợp với N phần tử của A. Trong đó: A, B là tập thuộc tính. R là tập hữu hạn các phần tử, Rạặ 3.1.4 Các dạng chuẩn. a.Phụ thuộc hàm. A xác định B hay B phụ thuộc hàm vào A{(A B): Khi đó mỗi phần tử của A chỉ xác định được duy nhất một phần tử của B}. b.Dạng chuẩn 1NF-First Normal Form: Dạng khởi đầu của chuẩn hoá cơ sở dữ liệu. Yêu cầu của dạng chuẩn này là cơ sở dữ liệu phải đảm bảo không có nhóm lặp và chỉ có thể tồn tại các phụ thuộc hàm không phụ thuộc đầy đủ vào khoá chính-phụ thuộc một phần vào khoá. c.Dạng chuẩn 2NF-Seccond Normal Form: Bảng được coi là ở dạng chuẩn 2NF nếu nó ở dạng chuẩn 1NF, đồng thời không tồn tại các phụ thuộc hàm phụ thuộc không đầy đủ vào khoá, có thể tồn tại các phụ thuộc hàm gián tiếp. d.Dạng chuẩn 3NF-Third Normal Form: Bảng được coi là ở dạng chuẩn 3NF nếu nó ở dạng chuẩn 2NF, đồng thời không tồn tại các phụ thuộc hàm gián tiếp, có thể tồn tại các phụ thuộc hàm có nguồn là một thuộc tính không khoá, có đích là một thuộc tính khoá. e.Dạng chuẩn Boyce-Codd-BCNF: Là chuẩn 3NF với yêu cầu là các cột xác định phải chỉ ra duy nhất một bản ghi. h.Dạng chuẩn 4NF: Được thiết kế dựa trên chuẩn BCNF nhưng nếu có sự phụ thuộc đa trị không hiển nhiên giữa 2 cột A và B thì tất cả các cột khác phải phụ thuộc hàm vào cột A. 3.2. Các bước xây dựng-thiết kế cơ sở dữ liệu logic Quá trình thiết kế dữ liệu logic có đầu vào là một mô hình dữ liệu quan niệm, đầu ra là một tập các quan hệ được chuẩn hoá: Mô hình dữ liệu quan niệm(sơ đồ E-R) Biểu diễn các thực thể Hợp nhất các quan hệ Biểu diễn các mối quan hệ Chuẩn hoá các quan hệ Mô hình dữ liệu logic(các quan hệ chuẩn) Quá trình thiết kế logic 3.2.1 Biểu diễn các thực thể. Trước tiên, mỗi thực thể của sơ đồ E-R được biểu diễn thành một quan hệ. Trong đó các thuộc tính của thực thể trở thành các thuộc tính của quan hệ và thuộc tính định danh của thực thể trở thành khoá chính của quan hệ.. Một quan hệ có thể biểu diễn dưới dạng bảng hay dạng cấu trúc(một lược đồ quan hệ). Vídụ:Mô hình thực thể NHACUNGCAP được biêu diễn ở hai dạng như sau: Dạng bảng: NHACUNGCAP. MãNCC TênNCC Địachỉ Đthoại NCC1 Trần Lập 20-Bà Triệu 04-7844746 Dạng cấu trúc: 3.2.2 Biểu diễn các mối quan hệ Một mối quan hệ được biểu diễn bằng một hình thoi, bên trong hình thoi là tên của quan hệ và được lối với các kiểu thực thể liên quan. Biểu diễn mối quan hệ còn phụ thuộc vào bậc cũng như bản số của quan hệ đó: a.Quan hệ 1-nhiều hai ngôi và không có thuộc tính riêng. Như vậy quan hệ ĐƠNHàng được biểu diễn bằng cách thêm khoá chính của quan hệ tương ứng với phía 1(Mãkhách) vào quan hệ tương ứng với phía nhiều để trở thành khoá ngoại của quan hệ này. b.Quan hệ nhiều-nhiều(N:N) hoặc có thuộc tính riêng, hoặc có mối quan hệ bậc 3 trở lên. Như vậy quan hệ mới sinh ra sẽ được biểu diễn có dạng là: VậnchuyểN(MãNCC, Mãhàng, Ngàychuyển , Sốlượng) 3.2.3.Chuẩn hoá các quan hệ. Là quá trình chuyển một quan hệ có cấu trúc dữ liệu phức hợp thành các quan hệ có cấu trúc dữ liệu đơn giản hơn và vững chắc. Quá trình chuẩn hoá thường gồm một số bước tương ứng với một dạng chuẩn: (1) Quan hệ chưa chuẩn hoá: -Quan hệ chưa chuẩn hoá là quan hệ có chứa thuộc tính lặp. Vídụ: Đơnhàng(Sốđơn, Mãkhách, Địachỉ, Ngàyđặt, Mãhàng, Tênhàng, Đơnvị, Sốlượng) (2) Quan hệ ở dạng chuẩn 1: -Là quan hệ không chứa thuộc tính lặp. -Tách một quan hệ chưa chuẩn hoá thành quan hệ ở dạng chuẩn 1. +Quan hệ 1: Gồm các thuộc tính lặp và phần khoá xác định chúng. +Quan hệ 2: Gồm các thuộc tính còn lại và khoá chính. (3) Quan hệ ở dạng chuẩn 2: -Là quan hệ : +ở dạng chuẩn 1. +Không tồn tại các thuộc tính không khoá phụ thuộc vào một phần khoá chính. -Tách một quan hệ ở dạng chuẩn 1 thành quan hệ ở dạng chuẩn 2: + Quan hệ 1: Gồm các thuộc tính phụ thuộc vào một phần khoá chính và phần khoá xác định chúng. + Quan hệ 2: Gồm các thuộc tính còn lại và khoá chính. (4) Quan hệ ở dạng chuẩn 3: -Là quan hệ: + ở dạng chuẩn 2. +Không tồn taị các thuộc tính không khoá phụ thuộc bắc cầu vào khoá chính(qua một thuộc tính gọi là thuộc tính cầu). -Tách một quan hệ ở dạng chuẩn 2 thành quan hệ ở dạng chuẩn 3: +Quan hệ 1: Gồm các thuộc tính phụ thuộc bắc cầu và thuộc tính cầu. +Quan hệ 2: Gồm các thuộc tính còn lại và thuộc tính cầu. (5) Quan hệ ở dạng chuẩn BCNF: -Là quan hệ : + ở dạng chuẩn 3. + Không tồn tại các thuộc tính không khoá phụ thuộc hàm vào khoá chính (khoá dự tuyển). -Tách quan hệ ở dạng chuẩn 3 thành quan hệ ở dạng chuẩn BCNF: + Quan hệ 1: Gồm các thuộc tính không chứa khoá dự tuyển. + Quan hệ 2: Gồm các thuộc tính còn lại và khoá dự tuyển. (6) Quan hệ ở dạng chuẩn 4: -Là quan hệ : + ở dạng chuẩn BCNF. +Không tồn tại các thuộc tính không khoá phụ thuộc đa trị vào thuộc tính khoá. -Tách quan hệ ở dạng chuẩn BCNF thành quan hệ ở dạng chuẩn 4: + Quan hệ 1: Gồm các thuộc tính phụ thuộc đa tri vào khoá chính và phần khoá xác định chúng. + Quan hệ 2: Gồm các thuộc tính còn lại và thuộc tính đa trị. Như vậy để chuẩn hoá các quan hệ ta xét lần lượt từng quan hệ và kiểm tra tính chuẩn của nó.Muốn vậy trước hết ta phải xác định các phụ thuộc hàm và khoá chính của quan hệ.Sau đó kiểm tra lần lượt các chuẩn đối với quan hệ. Ta có thể mô tả bằng sơ đồ sau: Tách nhóm lặp Loại phụ thuộc đa trị Phân rã loại dị thường Bảng với nhóm lặp Chuẩn 3 Chuẩn BCNF Chuẩn 4 Chuẩn 5 Tách phụ thuộc bộ phận Tách phụ thuộc hàm không chứa khoá dự tuyển Chuẩn 1 Chuẩn 2 Tách phụ thuộc bắc cầu 3.2.4 Hợp nhất các quan hệ. Sau khi chuyển sơ đồ E-R thành mô hình dữ liệu quan hệ, ta cần xác định các chuẩn của quan hệ và tiến hành chuẩn hóa nếu cần thiết, sau đó tiến hành tích hợp dữ liệu. Trong quá trình tích hợp dữ liệu thường gặp một số vấn đề như: Đồng nghĩa, Đồng danh, Phụ thuộc bắc cầu, Quan hệ thực thể chính và thực thể con. a.Đồng nghĩa: Trong một số trường hợp hai hay nhiều thuộc tính khác tên nhưng có cùng một nghĩa, cùng mô tả một tính chất của một thực thể. Những thuộc tính như vậy gọi là đồng nghĩa. Khi hợp nhất quan hệ có chứa các đồng nghĩa ta cần có sự thoả thuận với người dùng, chuẩn hoá tên thuộc tính đó và hạn chế sự đồng nghĩa khác. b.Đồng danh: Trong nhiều trường hợp khác nhau, một thuộc tính được gọi là đồng danh nếu nó có thể có nhiều hơn một nghĩa hoặc mô tả nhiều tính chất khác nhau. Khi hợp nhất các quan hệ ta chỉ cần tạo ra một tên mới cho những thuộc tính đó. c.Phụ thuộc bắc cầu: Khi hai quan hệ chuẩn 3 được hợp nhất từ hai quan hệ riêng rẽ thì có thể nảy sinh sự phụ thuộc bắc cầu. Khi đó ta cần tạo ra một chuẩn 3 bằng cách tách phụ thuộc hàm khỏi quan hệ trên. Chương 4. Phân tích thiết kế hệ thống quản lý vật tư. 4.1.Tổng quát công tác quản lý tại Trung Tâm phát triển CNTT. 4.1.1.Mô hình đào tạo tại Trung Tâm. Trung Tâm phát triển CNTT thuộc trường Đại học quốc gia TP Hồ Chí Minh trực thuộc Bộ giáo dục và đào tạo có trụ sở đặt tại khu liên cơ quan Mỹ Đình-Từ Liêm-Hà Nội. Đây là một trong những Trung Tâm có bề dày thành tích về giảng dạy và kinh doanh các sản phẩm tin học. Với đội ngũ giáo viên dày dặn kinh nghiệm và nhiệt tình trong giảng dạy, Trung Tâm đã đào tạo được một đội ngũ kỹ sư, chuyên viên và lập trình viên xuất sắc hiện đang làm việc tại các công ty lớn trong nứơc. Hiện nay Trung Tâm có khoảng 5000 học viên đang theo học và Trung Tâm vẫn tiếp tục tuyển sinh các khoá mới. Trung Tâm không những chú trọng đến lĩnh vực đào tạo mà còn đặc biệt quan tâm đến hoạt động kinh doanh về vật tư, thiết bị tin học. Trung Tâm có các phòng ban giúp việc cho Giám Đốc để điều hành hoạt động kinh doanh của trung tâm với mối quan hệ đa dạng: Ban giám đốc giao nhiệm vụ cho phòng kinh doanh lên kế hoạch kinh doanh trong tháng hay trong quý. Phòng kinh doanh có nhiệm vụ chính về hoạt động kinh doanh của Trung Tâm. Các thông tin về việc mua, bán vật tư sẽ được xử lý và thực hiện tại bộ phận kinh doanh xuất nhập. Phòng kế toán tổng hợp mọi số liệu liên quan đến hoạt động tài chính của Trung Tâm, lập ra các báo cáo tài chính và báo cáo quản lý. Trên các số liệu báo cáo đó phòng kế toán sẽ hỗ trợ ban giám đốc trong việc ra các quyết định về tài chính giúp cho việc quản lý kinh doanh của Trung Tâm đạt hiệu quả cao. Phòng vật tư là nơi quản lý các vật tư thiết bị của Trung Tâm đồng thời hàng tháng báo cáo tình hình nhập, xuất, tồn vật tư lên cấp trên. Phòng kỹ thuật có trách nhiệm kiểm tra vật tư thiết bị khi nhập, xuất đồng thời có kế hoạch bảo trì thiết bị cho khách hàng. -Sơ đồ phân cấp phòng ban tại Trung Tâm: Ban Giám Đốc Kho Phòng kế toán Phòng kinh doanh Phòng vật tư Phòng kỹ thuật Phòng đào tạo 4.1.2.Tình hình và thực trạng ứng dụng công nghệ tin học trong quản lý vật tư tại Trung Tâm phát triển CNTT. Trong lĩnh vực kinh doanh, Trung Tâm thường phải nhập, xuất hàng hoá với số lượng lớn, chính vì vậy công tác quản lý đòi hỏi phải chặt chẽ, rõ ràng và nhanh chóng. Hiểu được tầm quan trọng của công nghệ thông tin đối với công tác quản lý Ban giám đốc đã chủ động và tổ chức đưa công nghệ thông tin vào công tác quản lý tại Trung Tâm . 4.1.3.Những khó khăn trong công tác quản lý theo kiểu thủ công. Số lượng vật tư thiết bị nhiều, chủng loại phong phú, nếu như không quản lý tốt, chặt chẽ thì rất dễ dẫn đến nhầm lẫn khi xuất, nhập vật tư thiết bị. Mỗi lần xuất hay nhập vật tư thiết bị là lại có một hoá đơn lưu trữ, như vậy chỉ tính trong một lần báo cáo về tình hình xuất, nhập vật tư thiết bị thì số lượng hoá đơn sẽ rất nhiều. Nếu kế toán hay người phụ trách về giấy tờ sổ sách không cẩn thận sẽ dẫn đến việc làm thất thoát hoá đơn, từ đó làm ảnh hưởng đến hoạt động kinh doanh củaTrungTâm. Ngoài ra, khi muốn tìm kiếm một hoá đơn nào đó để kiểm tra sẽ mất rất nhiều thời gian và khi muốn tổng hợp báo cáo sẽ gặp rất nhiều khó khăn. 4.1.4.Tầm quan trọng trong việc quản ý xuất nhập vật tư thiết bị bằng máy tính. Khi ứng dụng tin học vào công tác quản lý xuất, nhập vật tư thiết bị dựa trên những thuật toán và các nghiệp vụ xuất nhập, trình tự hoạch toán, người lập trình có thể đưa ra những chương trình phần mềm về kỹ thuật nhằm thu thập tài liệu, xử lý thông tin, đáp ứng những yêu cầu cần thiết của nhà quản lý. Quá trình quản lý xuất nhập vật tư thiết bị bằng máy vi tính, người quản lý chỉ cần chuẩn bị các điều kiện về máy tính, khi nhập dữ liệu vào máy tính, máy tính sẽ tự động tổng hợp các thông tin như: Lượng tồn kho, tình hình xuất nhập vật tư thiết bị, phải thu của khách, phải trả cho nhà cung cấp…, theo yêu cầu của người sử dụng. Sơ đồ trình tự quản lý xuất,nhập vật tư thiết bị bằng máy vi tính: Dữ liệu đầu vào: Các hoá đơn nhập, xuất Các thông tin yêu cầu. Khai báo yêu cầu về thông tin đầu ra. Máy tính xử lý thông tin đưa số liệu đầu ra. Dữ liệu đầu ra: Các báo cáo mà người sử dụng yêu cầu. 4.2.Phân tích hệ thống quản lý vật tư . 4.2.1.Phát biểu bài toán: Trung Tâm phát triển công nghệ thông tin kinh doanh nhiều mặt hàng khác nhau như: Các thiết bị về máy tính, máy in, thiết bị điện tử…Các mặt hàng này được nhập từ nhiều nhà cung cấp khác nhau. Mỗi lần nhập hàng bộ phận nhập hàng của Trung Tâm sẽ lập đơn mua hàng dựa trên báo giá của nhà cung cấp và số lượng hàng còn lại trong kho rồi gửi đơn mua hàng đến nhà cung cấp. Khi nhận được hoá đơn giao hàng của nhà cung cấp thì viết phiếu nhập kho để nhập hàng vào kho đồng thời thanh toán với nhà cung cấp thông qua hoá đơn. Bộ phận bán hàng khi nhận được đơn đặt hàng của khách sẽ kiểm tra xem trong kho có còn đủ hàng cung cấp cho khách hay không. Nếu hết hàng thì thông báo cho khách, nếu đủ thì bộ phận bán hàng tiến hành viết phiếu xuất kho để xuất hàng cho khách đồng thời lập hoá đơn thanh toán để thu tiền của khách. Hàng tháng bộ phận kinh doanh phải theo dõi tình hình nhập xuất của Trung Tâm và lập sổ theo dõi nhập xuất các mặt hàng trong tháng, quý. Cuối mỗi quý, tháng bộ phận báo cáo dựa vào sổ theo dõi nhập xuất để lập báo cáo về tình hình nhập, xuất, hàng tồn kho và qua đó tính doanh thu gửi ban lãnh đạo. 4.2.2.Mục đích quản lý. - Nhằm quản lý tất cả những vật tư, thiết bị hiện có tại Trung Tâm đồng thời quản lý quá trình nhập, xuất vật tư và hoạt động kinh doanh của Trung Tâm. 4.2.3.Phân tích về chức năng. Vì các chức năng thường vẫn còn phức tạp nên phải diễn tả chúng một cách chi tiết hơn, thông qua các chức năng nhỏ hơn. Cứ tiếp tục như thế, ta sẽ có sự phân cấp trong mô tả. ở mức cuối cùng thì các chức năng là khá đơn giản. Sự mộ tả đại thể hay chi tiết đặc tả cũng như sự logic được sử dụng tùy lúc, tuỳ nơi trong phân tích thiết kế hệ thống. Dưới đây là một số mô hình và phương tiện diễn tả chức năng được vận dụng ở những mức độ khác nhau: A.Biểu đồ phân cấp chức năng: Ta thấy mỗi nút trong biểu đồ là một chức năng và quan hệ duy nhất giữa các chức năng, diễn tả bởi cung nối liền các nút là quan hệ bao hàm. Như vậy BPC tạo thành một cấu trúc hình cây như mô hình dưới đây: Hình1:Biểu đồ phân cấp chức năng. ờ.Đặc tả chức năng của hệ thống a.Chức năng nhập hàng (1).Chức năng lập đơn mua hàng. - Cho phép người sử dụng lập danh sách các loại vật tư, thiết bị cần mua sau khi nhận được báo giá của nhà cung cấp và căn cứ vào số lượng các vật tư, thiết bị còn trong kho của Trung Tâm. (2).Chức năng viết phiếu nhập kho. -Người sử dụng sẽ viết phiếu nhập kho dựa trên thông tin hoá đơn giao hàng của nhà cung cấp. ãNút “Thêm”: Khi nút này được kích hoạt chương trình sẽ cho phép cập nhật hay tạo thêm một phiếu nhập mới, gồm các thông tin như: Số phiếu, Ngày nhập, Mã nhà cung cấp, Mã vật tư, Đơn giá, Số lượng, Thành tiền. ãNút “Không”: Nếu bạn không muốn thêm bản ghi vừa nhập thì nhấn nút không để xoá bản ghi vừa tạo ra khỏi danh sách. ãNút “Ghi”: Nhấn nút ghi nếu muốn lưu bản ghi vừa cập nhật, khi nhấn nút này thì bản ghi vừa thêm sẽ tự động nhảy xuống hộp list box phía dưới. ãNút “Đầu”: Cho phép trở về bản ghi đầu tiên của Form lập phiếu nhập. ãNút “Sau”: Cho phép di chuyển đến bản ghi tiếp theo. ãNút “Trước”: Cho phép di chuyển đến bản ghi trước so với bản ghi hiện hành. ãNút “Cuối”: Cho phép di chuyển đến ban ghi cuối cùng của bảng. ãNút “Thoát”: Cho phép bạn thoát khỏi Form đang làm việc. (3).Chức năng lập danh sách nhà cung cấp. -Cho phép người sử dụng cập nhật thông tin về các nhà cung cấp, lên danh sách và lưu vào bảng Nhacungcap. ãNút “Thêm”: Chương trình cho phép cập nhật thêm một nhà cung cấp mới. ãNút “Không”: Nếu bạn không muốn thêm bản ghi vừa nhập thì nhấn nút không để xoá bản ghi vừa tạo ra khỏi danh sách. ãNút “Ghi”: Nhấn nút ghi nếu muốn lưu bản ghi vừa cập nhật, khi nhấn nút này thì bản ghi vừa thêm sẽ tự động nhảy xuống hộp list box phía dưới. ãNút “Tìm kiếm”: Chức năng này cho phép tìm kiếm một nhà cung cấp. Khi nút này được kích hoạt chương trình sẽ hiện ra một Form cho phép bạn chọn mã nhà cung cấp cần tìm kiếm sau đó nhấn nút thi hành để bắt đầu tìm kiếm và kết quả cho biết đầy đủ thông tin của nhà cung cấp mà bạn cần. ãNút “Xoá”: Nút này cho phép bạn xoá một bản ghi hiện thời tại vị trí con trỏ. ãNút “ Đầu”: Cho phép về bản ghi đầu tiên của bảng. ãNút “Sau”: Cho phép di chuyển đến bản ghi kế tiếp. ãNút “Trước “:Cho phép về bản ghi trước so với bản ghi hiện hành. ãNút “Cuối”:Cho phép di chuyển đến bản ghi cuối cùng của bảng . ãNút “Thoát”:Cho phép bạn thoát khỏi Form đang làm việc. (4).Chức năng lập danh sách hàng -Cho phép người sử dụng nhập các thông tin về những mặt hàng được nhập vào kho của Trung tâm. ãNút “Thêm”: Chương trình cho phép cập nhật thêm một mặt hàng mới. ãNút “Không”: Nếu bạn không muốn thêm bản ghi vừa nhập thì nhấn nút không để xoá bản ghi vừa tạo ra khỏi danh sách. ãNút “Ghi”: Nhấn nút ghi nếu muốn lưu bản ghi vừa cập nhật, khi nhấn nút này thì bản ghi vừa thêm sẽ tự động nhảy xuống hộp list box phía dưới. ãNút “Tìm kiếm”: Chức năng này cho phép tìm kiếm một mặt hàng. Khi nút này được kích hoạt chương trình sẽ hiện ra một Form cho phép bạn chọn mã vật tư cần tìm kiếm sau đó nhấn nút thi hành để bắt đầu tìm kiếm và kết quả cho biết đầy đủ thông tin của mặt hàng mà bạn cần. ãNút”Xoá”: Nút này cho phép bạn xoá một bản ghi hiện thời tại vị trí con trỏ. ãNút “ Đầu”: Cho phép về bản ghi đầu tiên của bảng. ãNút “Sau”: Cho phép di chuyển đến bản ghi kế tiếp. ãNút “Trước “:Cho phép về bản ghi trước so với bản ghi hiện hành. ãNút “Cuối”:Cho phép di chuyển đến bản ghi cuối cùng của bảng . ãNút “Thoát”:Cho phép bạn thoát khỏi Form đang làm việc. b.Chức năng xuất hàng (1).Chức năng nhận đơn đặt hàng -Sau khi nhận đơn đặt hàng của khách thì người sử dụng sẽ kiểm tra các mặt hàng trong kho và lên danh sách các mặt hàng có thể cung cấp cho khách. (2).Chức năng lập hoá đơn bán -Dựa vào đơn đặt hàng của khách thì người sử dụng sẽ lập hoá đơn bán giao cho khách. ãNút “Thêm” : Khi kích vào nút thêm chương trình cho phép cập nhật thêm một hoá đơn bán mới gồm các thông tin : Số hoá đơn, Ngày lập, Mã khách, Mã vật tư... ãNút “Không”: Nếu bạn không muốn nhập hoá đơn vừa thêm thì nhấn nút không để xoá hoá đơn vừa tạo ra khỏi danh sách. ãNút “Ghi”: Nhấn nút ghi nếu muốn lưu thông tin hoá đơn vừa cập nhật, khi nhấn nút này thì hoá đơn vừa thêm sẽ tự động nhảy xuống hộp list box phía dưới. ãNút “In hoá đơn”: Khi được kích hoạt nó sẽ cho phép in ra hoá đơn bán vừa cập nhật. ãNút “Xoá”: Nút này cho phép bạn xoá một bản ghi hiện thời tại vị trí con trỏ. ãNút “Đầu”:Cho phép về bản ghi đầu tiên của bảng. ãNút “Sau”:Cho phép di chuyển đến bản ghi kế tiếp. ãNút “Trước”: Cho phép về bản ghi trước so với bản ghi hiện hành. ãNút “Cuối”:Cho phép di chuyển đến bản ghi cuối cùng của bảng . ãNút “Thoát”:Cho phép bạn thoát khỏi Form đang làm việc. (3).Chức năng viết phiếu xuất kho. -Dựa vào thông tin của hoá đơn bán hàng thi người sử dụng sẽ viết phiếu xuất kho đưa cho khách đến kho nhận hàng. ãNút “Thêm”: Khi nút này được kích hoạt chương trình sẽ cho phép cập nhật hay tạo thêm một phiếu xuất mới, gồm các thông tin như: Số phiếu, Ngày xuất, Mã khách, Ghi chú, Mã vật tư, Đơn giá, Số lượng, Thành tiền. ãNút “Không”: Nếu bạn không muốn thêm bản ghi vừa nhập thì nhấn nút không để xoá bản ghi vừa tạo ra khỏi danh sách. ãNút “Ghi”: Nhấn nút ghi nếu muốn lưu bản ghi vừa cập nhật, khi nhấn nút này thì bản ghi vừa thêm sẽ tự động nhảy xuống hộp list box phía dưới. ãNút “Đầu”: Cho phép trở về bản ghi đầu tiên của Form lập phiếu xuất. ãNút “Sau”: Cho phép di chuyển đến bản ghi tiếp theo. ãNút “Trước”: Cho phép di chuyển đến bản ghi trước so với bản ghi hiện hành. ãNút “Cuối”: Cho phép di chuyển đến ban ghi cuối cùng của bảng. ãNút “Thoát”: Cho phép bạn thoát khỏi Form đang làm việc. (4).Chức năng lên danh sách khách hàng. -Dựa vào thông tin hàng đã có người sử dụng có thể nhập các thông tin về khách hàng để tiện cho việc theo dõi sau này. ãNút “Thêm” : Khi kích vào nút thêm chương trình cho phép cập nhập thêm một khách hàng mới. ãNút “Không”: Nếu bạn không muốn nhập khách hàng vừa thêm thì nhấn nút không để xoá khách hàng vừa tạo ra khỏi danh sách. ãNút “Ghi”: Nhấn nút ghi nếu muốn lưu thông tin khách hàng vừa cập nhập, khi nhấn nút này thì khách hàng vừa thêm sẽ tự động nhảy xuống hộp list box phía dưới. ãNút “Tìm kiếm”: Chức năng này cho phép tìm kiếm một khách hàng, Khi nút này được kích hoạt chương trình sẽ hiện ra một Form cho phép bạn chọn mã khách hàng cần tìm kiếm sau đó nhấn nút thi hành để bắt đầu tìm kiếm. ãNút “Xoá”: Nút này cho phép bạn xoá một bản ghi hiện thời tại vị trí con trỏ. ãNút “Đầu”: Cho phép về bản ghi đầu tiên của bảng. ãNút “Sau”: Cho phép di chuyển đến bản ghi kế tiếp. ãNút “Trước”: Cho phép về bản ghi trước so với bản ghi hiện hành. ãNút “Cuối”: Cho phép di chuyển đến bản ghi cuối cùng của bảng . ãNút “Thoát”: Cho phép bạn thoát khỏi Fỏm đang làm việc. c.Chức năng theo dõi nhập, xuất, doanh thu. (1).Chức năng lập sổ theo dõi nhập. -Cho phép người sử dụng có thể theo dõi được số lượng vật tư đã nhập từ các nhà cung cấp theo ngày, theo quý..mà người sử dụng muốn xem nhờ thông tin từ phiếu nhập. (2).Chức năng lập sổ theo dõi xuất. -Cho phép người sử dụng có thể theo dõi được số lượng vật tư đã xuất cho khách theo ngày, theo quý..mà người sử dụng muốn xem nhờ thông tin từ phiếu xuất. (3).Chức năng lập sổ theo dõi doanh thu. -Cho phép người sử dụng có thể theo dõi được tình hình doanh thu của Trung Tâm theo quý, theo tháng mà người sử dụng muốn biết nhờ vào các hoá đơn đã thanh toán với nhà cung cấp và của khách hàng. d.Chức năng lập báo cáo. (1).Chức năng lập báo cáo hàng nhập, xuất. -Dựa vào sổ theo dõi nhập, xuất mà người sử dụng có thể lập được báo cáo chi tiết về số lượng hàng đã nhập và đã xuất theo quý, theo tháng gửi lãnh đạo. (2).Chức năng lập báo các hàng tồn. -Dựa vào số lượng hàng đã có trong kho và sổ theo dõi nhập, xuất người sử dụng có thể lập được báo cáo chi tiết về số lượng hàng còn tồn kho trong tháng , trong quý gửi lãnh đạo. (3).Chức năng lập báo các doanh thu. -Dựa vào sổ theo dõi doanh thu người sử dung có thể lập được báo cáo về tình hình doanh thu của Trung Tâm trong tháng, trong quý gửi lãnh đạo. *Một số ký hiệu sử dụng trong biểu đồ luồng dữ liệu: Tên chức năng -Biểu thị cho chức năng: Ký hiệu: Chức năng được hiểu là khâu biến đổi thông tin. -Biểu thị cho dòng dữ liệu: Xử lý TT Ký hiệu: Thông tin đầu vào Thông tin đầu ra Dòng dữ liệu là nội dung thông tin và đường luân chuyển. -Biểu thị cho kho dữ liệu: Ký hiệu: Tên kho dữ liệu Kho dữ liệu thể hiện các thông tin cần lưu trữ dưới dạng vật lý. -Biểu thị cho tác nhân ngoài: Ký hiệu: Tác nhân ngoài là một người, một nhóm người hoặc một tổ chức nằm bên ngoài hệ thống nhưng liên quan mật thiết tới hệ thống nhằm xác định danh giới hệ thống. B.Biểu đồ luồng dữ liệu. Cũng là một loại biểu đồ nhằm mục đích điễn tả một quá trình xử lý và trao đổi thông tin giữa các chức năng. Biểu đồ luồng dữ liệu (BLD) được chia làm 3 mức : -Mức 0 (Mức khung cảnh): Là mức khái quát của hệ thống, mô tả sự trao đổi thông tin của các đối tác với hệ thống. Biểu đồ luồng dữ liệu mức khung cảnh (Mức 0): Hình 2:Biểu đồ luồng dữ liệu mức khung cảnh. Mô tả quá trình trao đổi thông tin ở mức 0: Hệ thống gửi yêu cầu mua hàng đến nhà cung cấp,nhà cung cấp sẽ gửi lại cho hệ thống hoá đơn giao hàng và số lượng hàng mà hệ thống cần mua. Đồng thời khi hệ thống nhận được yêu cầu mua hàng của khách hàng thì hệ thống sẽ gửi lại cho khách hoá đơn giao hàng và số lượng hàng mà khách cần mua. -Mức 1(Mức đỉnh): Là mức mô tả quá trình trao đổi thông tin của những chức năng chính với nhau và với đối tác. Biểu đồ luồng dữ liệu mức đỉnh: Hình 3:Biểu đồ luồng dữ liệu mức đỉnh. Mô tả quá trình trao đổi thông tin ở mức 1: Bộ phận nhập hàng gửi yêu cầu mua hàng đến nhà cung cấp, nhà cung cấp sẽ gửi lại hoá đơn giao hàng và hàng. Bộ phận này lưu hoá đơn mua vào kho hoá đơn mua đồng thời viết phiếu nhập để nhập hàng vào kho và lưu phiếu nhập vào kho phiếu nhập. Bộ phận nhập hàng sẽ lên danh sách các nhà cung cấp và lưu vào kho danh sách nhà cung cấp. Khách hàng gửi yêu cầu mua hàng đến bộ phận xuất hàng, bộ phận này sẽ gửi lại cho khách hoá đơn giao hàng và lưu hoá đơn vào kho hoá đơn bán. Bộ phận xuất hàng viết phiếu xuất kho để xuất hàng cho khách và lưu phiếu vào kho phiếu xuất. Đồng thời bộ phận này sẽ lên danh sách khách hàng và lưu vào kho danh sách khách hàng. Bộ phận theo dõi nhập, xuất, doanh thu sẽ tổng hợp thông tin từ các kho phiếu nhập, phiếu xuất, hoá đơn bán, hoá đơn mua để biết được số lượng hàng nhập, số lượng hàng xuất và tính doanh thu đồng thời lưu lần lượt vào các kho: Sổ theo dõi nhập, Sổ theo dõi xuất, Sổ theo dõi doanh thu. Khi lãnh đạo gửi yêu cầu báo cáo xuống bộ phận lập báo cáo thì bộ phận này sẽ tổng hợp thông tin từ các kho: Sổ theo dõi nhập, Sổ theo dõi xuất, Sổ theo dõi doanh thu để lập ra các báo cáo về lượng hàng nhập và xuất, báo cáo về lượng hàng tồn kho và báo cáo doanh thu gửi lên lãnh đạo. -Mức 2(Mức dưới đỉnh): Mô tả quá trình trao đổi thông tin một cách chi tiết của các chức năng nhỏ trong từng chức năng lớn. *BLD định nghĩa chức năng 1: Chức năng nhập hàng Hình 4:Biểu đồ luồng dữ liệu mức dưới đỉnh-Chức năng nhập hàng. Mô tả quá trình trao đổi thông tin chức năng 1 mức dưới đỉnh: Dựa trên báo giá của nhà cung cấp, bộ phận lập đơn mua hàng sẽ gửi yêu cầu mua hàng đến nhà cung cấp, khi đó nhà cung cấp sẽ gửi lại bộ phận này hoá đơn giao hàng và hàng. Bộ phận này sẽ lưu hoá đơn vào kho hoá đơn mua đồng thời gửi danh sách hàng đã nhập tới bộ phận lập danh sách hàng. Bộ phận lập danh sách hàng sẽ lưu danh sách hàng vào kho danh sách hàng. Sau khi nhận được những thông tin về nhà cung cấp do phía nhà cung cấp gửi thì bộ phận lập danh sách nhà cung cấp sẽ lên danh sách các nhà cung cấp và lưu vào kho danh sách nhà cung cấp. Bộ phận viết phiếu nhập kho sẽ tổng hợp thông tin từ các hoá đơn trong kho hoá đơn mua và danh sách nhà cung cấp trong kho danh sách nhà cung cấp để viết phiếu nhập hàng vào kho đồng thời lưu phiếu vào kho phiếu nhập. *BLD định nghĩa chức năng 2: Chức năng xuất hàng. Hình 5:Biểu đồ luồng dữ liệu mức dưới đỉnh-Chức năng xuất hàng. Mô tả quá trình trao đổi thông tin chức năng 2 mức dưới đỉnh: Khách hàng gửi yêu cầu mua hàng đến bộ phận nhận đơn đặt hàng, bộ phận này gửi thông tin về khách hàng tới bộ phận lập danh sách khách hàng đồng thời gửi thông tin về đơn hàng đến bộ phận lập hoá đơn bán hàng.Bộ phận lập danh sách khách hàng sẽ lên danh sách khách hàng và lưu vào kho danh sách khách hàng. Bộ phận lập hoá đơn bán hàng sau khi nhận được thông tin về đơn hàng sẽ lập hoá đơn bán hàng gửi khách hàng đồng thời lưu hoá đơn vào kho hoá đơn bán. Bộ phận viết phiếu xuất kho dựa trên thông tin về hoá đơn bán hàng trong kho hoá đơn bán và danh sách những mặt hàng còn trong kho để viết phiếu xuất kho xuất hàng cho khách đồng thời lưu phiếu vào kho phiếu xúât. *BLD định nghĩa chức năng 3: Chức năng theo dõi nhập, xuất, doanh thu. Hình 6:Biểu đồ luồng dữ liệu mức dưới đỉnh-Chức năng theo dõi nhập, xuất, doanh thu. Mô tả quá trình trao đổi thông tin chức năng 3 mức dưới đỉnh: Lãnh đạo gửi yêu cầu xuống các bộ phận, các bộ phận sẽ có trách nhiệm thống kê. Bộ phận lập sổ theo dõi nhập sẽ tổng hợp thông tin từ các phiếu nhập trong kho phiếu nhập để thống kê lượng hàng nhập và lưu vào kho sổ theo dõi nhập. Bộ phận lập sổ theo dõi xuất tổng hợp thông tin từ các phiếu xuất hàng trong kho phiếu xuất để thống kê lượng hàng đã xuất cho khách và lưu vào sổ theo dõi xuất. Cuối cùng bộ phận lập sổ theo dõi doanh thu sẽ dựa trên các hoá đơn mua và hoá đơn bán trong kho hoá đơn mua và kho hoá đơn bán để tính doanh thu trong tháng, trong quý và lưu vào sổ theo dõi doanh thu. *BLD định nghĩa chức năng 4: Chức năng lập báo cáo. Hình 7:Biểu đồ luồng dữ liệu mức dưới đỉnh - Chức năng lập báo cáo. Mô tả quá trình trao đổi thông tin chức năng 4 mức dưới đỉnh: Lãnh đạo gửi yêu cầu báo cáo xuống các bộ phận. Bộ phận lập báo cáo nhập, xuất sẽ tổng hợp thông tin từ sổ theo dõi nhập, sổ theo dõi xuất trong kho sổ theo dõi nhập và kho sổ theo dõi xuất để thống kê báo cáo về lượng hàng nhập, xuất gửi lãnh đạo đòng thời lưu vào kho danh sách hàng nhập, xuất. Bộ phận lập báo cáo hàng tồn cũng dựa vào thông tin từ sổ theo dõi nhập, sổ theo dõi xuất và danh sách những mặt hàng còn tồn kho của quý trước để thống kê báo cáo lượng hàng tồn kho của quý này gửi lãnh đạo đồng thời lưu vào kho danh sách hàng tồn. Bộ phận lập báo cáo doanh thu dựa trên sổ theo dõi doanh thu hàng tháng trong kho sổ theo dõi doanh thu để lập báo cáo về tình hình doanh thu của Trung Tâm trong quý gửi lên lãnh đạo và lưu vào bảng doanh thu. 4.2.4.Phân tích về dữ liệu. -Mục đích quá trình phân tích dữ liệu là xác định các thực thể cần thiết, các thuộc tính của dữ liệu và mối quan hệ giữa các thực thể. Một hệ thống thông tin phải được tổ chức rõ ràng, đầy đủ, tránh dư thừa dữ liệu, tránh trùng lặp dữ liệu và đảm bảo độc lập dữ liệu. a.Xác định các thực thể. Qua việc phân tích hệ thống quản lý vật tư ta thấy hệ thống cần lưu trữ những thực thể sau: Thực thể : + Nhà cung cấp. + Khách hàng. +Vật tư. +Nhân viên. +Hình thức thanh toán. +Hoá đơn mua. +Hoá đơn bán. +Kho. +Phiếu nhập. +Phiếu xuất. b.Xác định các thuộc tính của thực thể. + Thực thể nhà cung cấp gồm các thuộc tính: Mã nhà cung cấp, Tên nhà cung cấp, Địa chỉ, Điện thoại, Tài khoản, Fax. + Thực thể khách hàng gồm các thuộc tính: Mã khách hàng, Tên khách hàng, Địa chỉ, Điện thoại, Tài khoản, Fax. + Thực thể vật tư gồm các thuộc tính: Mã vật tư, Tên vật tư, Đơn vị tính, Số lượng, Đơn giá. + Thực thể nhân viên gồm các thuộc tính: Mã nhân viên, Tên nhân viên, Địa chỉ, Điện thoại. + Thực thể kho gồm các thuộc tính: Mã kho, Tên kho, Địa chỉ kho. +Thục thể hình thức thanh toán gồm các thuộc tính: Mã hình thức thanh toán, Tên hình thức thanh toán. + Thực thể hoá đơn mua gồm các thuộc tính: Số hoá đơn mua, Ngày lập, Mã nhân viên, Mã nhà cung cấp, Mã hình thức thanh toán, Số lượng, Đơn giá. + Thực thể phiếu nhập gồm các thuộc tính: Số phiếu, Ngày nhập, Mã vật tư, Mã nhà cung cấp, Số hoá đơn mua, Mã kho, Mã nhân viên, Số lượng, Đơn giá. + Thực thể hoá đơn bán gồm các thuộc tính: Số hoá đơn bán, Ngày lập, Mã nhân viên, Mã khách, Mã hình thức thanh toán, Số kượng, Đơn giá. +Thực thể phiếu xuất gồm các thuộc tính: Số phiếu, Ngày xuất, Mã vật tư, Mã khách, Số hoá đơn bán, Mã kho, Mã nhân viên, Số lượng, Đơn giá. c.Biểu diễn các liên kết của thực thể: d.Xác định các mối quan hệ. -Để xác định mối quan hệ giưã các thực thể và thuộc tính ta phải trả lời các câu hỏi như: Ai?, Cái gì?, Bao giờ?, Bằng cách nào?, ở đâu?, Bao nhiêu?…. -Chẳng hạn như các quan hệ: Nhập Cái gì? Vật tư. Của ai? Nhà cung cấp. Bao giờ? Ngày nhập. Bằng cách nào? Số phiếu. Bao nhiêu? Số lượng, Đơn giá. ở đâu? Địa chỉ nhà cung cấp. Xuất Cái gì? Vật tư. Cho ai? Khách hàng. Bao giờ? Ngày xuất. Bằng cách nào? Số phiếu. Bao nhiêu? Số lượng, Đơn giá. ở đâu? Địa chỉ khách. -Sau khi xác định được các quan hệ giữa các thực thể và thuộc tính ta sẽ tiến hành xây dựng mô hình thực thể/liên kết tức là mô hình E-R. *Mô hình thực thể/liên kết( Mô hình E-R). e.Chuẩn hoá các quan hệ. -Để chuyển mô hình E-R sang mô hình quan hệ ta phải chuẩn hoá một số quan hệ chưa ở dạng chuẩn. Tách những quan hệ chưa thuộc dạng chuẩn thành những quan hệ mới không còn thuộc tính lặp… -Trong hệ thống quản lý vật tư có những quan hệ sau chưa ở dạng chuẩn ta phải chuẩn hoá: * Quan hệ Phiếu nhập( Số phiếu, Ngày nhập, Mã NCC, Mã vật tư, Mã kho, Số lượng, Đơn giá, Mã NV). Được tách thành 2 quan hệ: Quan hệ 1: Phiếunhập( Số phiếu, Ngày nhập, Mã NCC, Mã NV, Mã kho) Quan hệ 2: NhậpCT( Số phiếu, Mã vật tư, Số lượng, Đơn giá). *Quan hệ Phiếu xuất( Số phiếu, Ngày xuất, Mã khách, Mã vật tư, Mã kho, Số lượng, Đơn giá, Mã NV). Được tách thành 2 quan hệ: Quan hệ 1: Phieuxuat( Số phiếu, Ngày xuất, Mã khách, Mã NV, Mã kho). Quan hệ 2: XuatCT( Số phiếu, Mã vật tư, Số lượng, Đơn giá). *Quan hệ Hoá đơn mua( SốHĐ_mua, Ngày lập, Mã NCC, Mã NV, Mã vật tư, Số lượng, Đơn giá). Được tách thành 2 quan hệ: Quan hệ 1: HĐ_mua( SốHĐ_mua, Ngày lập, Mã NCC, Mã NV). Quan hệ 2: Dong_HĐmua( SốHĐ_mua, Mã vật tư, Số lượng, Đơn giá). *Quan hệ Hoá đơn bán( SốHĐ_bán, Ngày lập, Mã khách, Mã NV, Mã vật tư, Sốlượng, Đơn giá). Được tách thành 2 quan hệ: Quan hệ 1: HĐ_bán( SốHĐ_bán, Ngày lập, Mã khách, Mã NV). Quan hệ 2: Dòng_HĐbán( SốHĐ_bán, Mã vật tư, Số lượng, Đơn giá). -Sau khi đã chuẩn hoá tất cả những quan hệ song ta tiến hành xây dựng mô hình quan hệ giữa các thực thể. *Mô hình quan hệ thực thể: 4.2.5 Thiết kế cơ sở dữ liệu. *Thiết kế các bảng dữ liệu: 1>.Phieunhap: Bảng Phiếu nhập Tên trường Kiểu dữ liệu Độ rộng Ghi chú Sophieu Text 10 Số phiếu _khóa chính SoHĐ_mua Text 10 Số hoá đơn mua_khoá ngoại Ngaynhap Date/time Ngày nhập Mancc Text 10 Mã nhà cung cấp_ khoá ngoại Makho Text 10 Mã kho_ khoá ngoại Manv Text 10 Mã nhân viên_ khoá ngoại 2>.NhapCT :Bảng Nhập chi tiết Tên trường Kiểu dữ liệu Độ rộng Ghi chú Sophieu Text 10 Số phiếu _khóa ngoại Mavt Text 10 Mã vật tư_ khoá ngoại Soluong Number Double Số lượng Dongia Number Double Đơn giá 3>.Phieuxuat:Bảng Phiếu xuất Tên trường Kiểu dữ liệu Độ rộng Ghi chú Sophieu Text 10 Số phiếu _khoá chính SoHĐ_ban Text 10 Số hoá đơn bán_ khoá ngoại Ngayxuat date/time Ngày nhập Makhach Text 10 Mã khách_ khoá ngoại Makho Text 10 Mã kho_ khoá ngoại Manv Text 10 Mã nhân viên_ khoá ngoại 4>.XuatCT :Bảng Xuất chi tiết Tên trường Kiểu dữ liệu Độ rộng Ghi chú Sophieu Text 10 Số phiếu _khóa ngoại Mavt Text 10 Mã vật tư_ khoá ngoại Soluong Number Double Số lượng Dongia Number Double Đơn giá 5>.Khachhang:Bảng Khách hàng Tên trường Kiểu dữ liệu Độ rộng Ghi chú Makhach Text 10 Mã khách_khóa chính Tenkhach Text 50 Tên khách Diachi Text 50 Địa chỉ Dienthoai Text 10 Điện thoại Sotk Text 50 Số tài khoản fax Text 15 Fax 6>.Nhacungcap:Bảng Nhà cung cấp Tên trường Kiểu dữ liệu Độ rộng Ghi chú Mancc Text 10 Mã nhà cung cấp_khóa chính Tenncc Text 50 Tên nhà cung cấp Diachi Text 50 Địa chỉ Dienthoai Text 10 Điện thoại Sotk Text 50 Số tài khoản Fax Text 15 fax 7>.Vattu: BảngVật tư Tên trường Kiểu dữ liệu Độ rộng Ghi chú Mavt Text 10 Mã vật tư_khoá chính Tenvt Text 50 Tên vật tư Donvitinh Number Double Đơn vị tính 8>.Kho:Bảng Kho Tên trường Kiểu dữ liệu Độ rộng Ghi chú Makho Text 10 Mã kho_khóa chính Tenkho Text 50 Tên kho Diachikho Text 50 Địa chỉ kho 9>.HinhthứcTT:Bảng Hình thức thanh toán Tên trường Kiểu dữ liệu Độ rộng Ghi chú Mahttt Text 10 Mã hình thức thanh toán_khóa chính Tenhttt Text 50 Tên hình thức thanh toán 10>Nhanvien: Bảng Nhân viên Tên trường Kiểu dữ liệu Độ rộng Ghi chú Manv Text 10 Mã nhân viên_khoá chính Tennv Text 30 Tên nhân viên Diachi Text 30 Đia chỉ Dienthoai Text 10 Điện thoại 11>.HDban:Bảng hóa đơn bán Tên trường Kiểu dữ liệu Độ rộng Ghi chú SoHĐ_ban Text 10 Số hoá đơn bán_khoá chính Ngaylap Date/Time Ngày lập hoá đơn Makhach Text 10 Mã khách_ khoá ngoại Manv Text 10 Mã nhân viên_khoá ngoại Mavt Text 10 Mã vật tư_ khoá ngoại Soluong Number Double Số lượng Dongia Number Double Đơn giá 12>.HDmua:Bảng hoá đơn mua Tên trường Kiểu dữ liệu Độ rộng Ghi chú Sohd_mua Text 10 Số hoá đơn mua_khoa chính Ngaylap Date/Time Ngày lập hoá đơn Mancc Text 10 Mã nhà cung cấp_ khoá ngoại Mavt Text 10 Mã vật tư_ khoá ngoại Dongia Number Double Đơn giá Soluong Number Double Số lượng Manv Text 10 Mã nhân viên_ khoá ngoại 13>.Dong_hdban:Bảng dòng hoá đơn bán Tên trường Kiểu dữ liệu Độ rộng Ghi chú Sohd_ban Text 15 Số hoá đơn bán_khoá ngoại Mavt Text 10 Mã vật tư_ khoá ngoại Soluong Number Double Số lượng Dongia Number Double Đơn giá Thanhtien Number Double Thành tiền 14>.Dong_hdmua:Bảng dòng hoá đơn mua Tên trường Kiểu dữ liệu Độ rộng Ghi chú Sohd_mua Text 15 Số hoá đơn mua_khoá ngoại Mavt Text 10 Mã vật tư_ khoá ngoại Soluong Number Double Số lượng Dongia Number Double Đơn giá Thanhtien Number Double Thành tiền Chương 5 Thiết kế giao diện người máy 5.1 Lập trình thực nghiệm 5.1.1 Giới thiệu về Microsoft Access Việc sử dụng ngôn ngữ lập trình phù hợp với mô hình thiết kế đóng vai trò quan trọng trong sự thành công của chương trình . Việc chọn ngôn ngữ dựa trên nhiều yếu tố khác nhau từ cấu trúc của mô hình, đồng thời cũng từ tác động của bên ngoài như mô hình nghiệp vụ của người quản lý, thói quen của người sử dụng, độ thuận tiện… với khả năng săn có của Access và kết hợp với VBA là ngôn ngữ lập trình cơ sở dữ liệu nó có khả năng đáp ứng đầy đủ yêu cầu của người sử dụng 5.1.2 Giới thiệu về các thành phần của Access Trước tiên ta nên định nghĩa cơ sở dữ liệu là gì ? Cơ sở dữ liệu là tập hợp những số liệu liên quan đến một chủ đề hay một mục đích quản lý khai thác nào đó, trong cơ sở dữ liệu ngoài các Table chứa những số liệu, còn có những thứ khác cụ thể như những Query (bảng truy vấn), những Form (mẫu biểu), những Report (báo biểu), những Macro (lịnh ngầm), và những Module (đơn thể lập trình) giúp ta quản lý và khai thác số liệu. Do đó, ta có thể tạo một ứng dụng cơ sở dữ liệu Access hoàn chỉnh lưu trữ trong chỉ một tập tin .mdb. Một cách tổng quát, một cơ sở dữ liệu của Microsoft Access bao gồm các thành phần dưới đây : 1.Table : Bảng dữ liệu Là thành phần cơ bản quan trọng của Cơ Sở Dữ Liệu, nó dùng để ghi nhận các số liệu cơ sở, cần thiết của Cơ Sở Dữ Liệu. Có thể nói tất cả quá trình xử lý dữ liệu đều dựa trên cơ sở các dữ liệu thô được lưu trữ trong các table. Trong 1 table số liệu được tổ chức thành các cột (fields or columns) và dòng (records). Mỗi cột ứng với một mục dữ liệu cần lưu trữ. Mỗi dòng chứa dữ liệu về một người hay vật cụ thể mà ta cần lưu trữ. Khi thiết kế các cột cho table, ta có thể ràng buộc điều kiện để Access kiểm tra các record nhập vào không bị sai sót. Chính nhờ những table này mà ta xây dựng nên được những mối quan hệ trong hệ thống (relationship). 2.Query : Bảng truy vấn Query là công cụ dùng để tính tóan và xử lý dữ liệu từ các table và các query khác có sẵn trong Cơ Sở Dữ Liệu. Dạng Query thường được sử dụng nhiều nhất là Select Query. Bằng lọai Query này ta có thể lọc ra những thông tin cần quan tâm từ nhiều bảng dữ liệu khác nhau của cơ sở dữ liệu, có thể phân tích và hiệu chỉnh dữ liệu ngay trên bản thân Query hay sử dụng làm cơ sở cho công việc khác. Ngoài ra còn có các lọai Query khác như Update Query để cập nhật, chỉnh sữa dữ liệu cho table, Crosstab Query tổng hợp số liệu, Make Table Query nhằm phục hồi dữ liệu nếu có sơ sót xảy ra cho table. Ráp nối dữ liệu vào table có Append Query, xóa dữ liệu Delete Query … Query như là một nền tảng để tạo ra các báo biểu có đặc tính định dạng cao hơn Table. 3.Form : mẫu biểu Không thể thiếu được trong Access, là phần hiển thị ra bên ngòai dành cho người sử dụng. Điểm nổi bật là có thể thiết kế Form thật đẹp và tiện dụng để người sử dụng điều khiển một cách dễ dàng và không bị nhàm chán vì giao diện quá xấu như một số phần mềm khác. Trong một Form có thể chứa một Form khác gọi là Sub Form cho phép cùng lúc nhập liệu vào nhiều Table khác nhau. Form có thể dùng để nhập mới hay sữa đổi các dữ liệu trên Table, Query, có thể chứa các nút lệnh để thực hiện các chỉ thị như chạy Query, xem hay in Report … Trong Form Access hỗ trợ tất cả những công cụ cần thiết trong Toolbox nhằm trợ giúp ta tạo được một Form thân thiện nhất cho người sử dụng. Vd : Command Button tạo các nút bấm cho Form Combo Box tạo ra danh sách cho ta chọn Các List Box, Check Box … Đặc biệt có Control Wizards hỗ trợ cho ta rất nhiều. 4.Report : Báo biểu Là đầu ra của Access. Dùng để in ấn hay thể hiện các báo biểu có nguồn gốc từ các Table hay từ kết quả của Query dưới nhiều hình thức trình bày phong phú, đẹp mắt. 5.Macro : Lệnh ngầm Là một tập hợp các lệnh được chọn, sắp xếp hợp lý cho việc tự động hóa các thao tác. Macro của Access được xem như một công cụ lập trình đơn giản giúp cho công việc quản lý số liệu trở thành linh hoạt. 6.Module : Đơn thể Là phương tiện lập trình trong Access với ngôn ngữ lập trình Access Basic. Nhờ mã Access VBA bạn có thể tạo các ứng dụng cơ sở dữ liệu hoàn chỉnh có các lệnh đơn, thanh công cụ tùy biến, và các tính năng khác. Mã Access VBA cho phép điều khiển theo lập trình nhiều tác vụ và tùy chọn cơ sở dữ liệu mà bạn không thể điều khiển bằng Macro. 5.1.3 dao-data access object Là thư viện DLL cung cấp các chức năng (function, class) để truy cập đến cơ sở dữ liệu, ngoài ra DAO còn là ACTIVE DLL và được sử dụng trong lập trình web Thư viện DAO được sử dụng cho tất cả các ngôn ngữ lập trình trong windows như VB, C++ đặc biệt là Micosoft access. 5.2 Hướng dẫn sử dụng 5.2.1 Hướng dẫn sử dụng chương trình Khi khởi động chương trình sẽ xuất hiện form login, Kiểm tra user name và password truy nhập hệ thống. Nếu đúng username và password thì sẽ cho vào còn không thì cảnh báo. Sau 3 lần đăng nhập thất bại chương trình sẽ tự động tắt. Sau khi đăng nhập thành công bạn sẽ sử dụng hệ thống menu của trương trình. Để cung cấp quyền user bạn cần vào mục cập nhập quyền user với quyền admin. Chương trình cho phép thay đổi mật mã admin (nếu bạn có quyền admin) hoặc thay đổi mã số truy nhập user nếu bạn truy nhập với quyền user. (chỉ có quyền admin mới có quyền thêm và xoá user) Mỗi lần nhập dữ liệu cho hệ thống bạn phải nhập dữ liệu ở ngoài bảng chính của các thuộc tính khoá trước. Sau đó nhập dữ liêu ở các form khoá ngoại Các thông tin ngày tháng năm bạn phải nhập đúng theo cấu trúc ngày tháng năm của hệ thống. Nếu không chương trình sẽ báo lỗi. Trong chương trình ở các menu tìm kiếm bạn có thể tìm kiếm dữ liệu để từ đó có thể điều trỉnh dữ liệu như thêm, xoá sửa một cách nhanh chóng. Các thông tin báo cáo có thể giúp lập báo cáo hàng tồn, tình hình nhập xuất nhanh chóng, mà không phải tìm kiếm trong kho dữ liệu khổng lồ. Do thời gian và điều kiên thực hiện trương thình còn hạn chế nên chương trình chỉ mang tính tượng trưng, kiểm nghiệm lại những kiến thức chúng em đã học được để viết nên chương trình. 5.2.2 Đánh giá nhận xét Trong phạm vi của khoá luận này ta chỉ giới thiệu mang tính chất khẳng định lại những thành quả đạt được về mặt lý thuyết và ứng dụng chúng cho việc thiết kế các bài toán thực tế với sự hỗ trợ của công nghệ thông tin Sau khi hoàn thành chương trình chúng em nhận thấy chương trình tuy đã cung cấp được các thông tin hàng tồn, tình hình nhập xuất của các kho hàng. Nhưng so với bài toán thực tế trong việc quản lý vật tư thiết bị vẫn còn nhiều thiếu xót. 5.3 Các Form chương trình 5.4 Các mã lệnh được sử dụng trong chương trình Private Sub Form_Load() DoCmd.Restore Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb() Set rs = db.OpenRecordset("user") If rs.EOF Then DoCmd.Close DoCmd.OpenForm "main" End If End Sub Private Sub login_Click() Dim db As DAO.Database Dim rs As DAO.Recordset Me.dem = Me.dem + 1 Set db = CurrentDb() Set rs = db.OpenRecordset("user") rs.MoveFirst Do While Not rs.EOF If rs![username] = ten And rs![password] = ma Then kt = 1 Exit Do End If rs.MoveNext Loop If kt = 1 Then DoCmd.Close DoCmd.OpenForm "main" Else If Me.dem = 3 Then DoCmd.Quit Exit Sub End If MsgBox "ban nhap username hoac password sai", 0 + 48, "thong bao" End If End Sub Private Sub Form_Timer() Dim x As String, y As String Randomize r = Rnd(1) * 250 + 1 g = Rnd(1) * 250 + 1 b = Rnd(1) * 250 + 1 r1 = Rnd(1) * 250 + 1 g1 = Rnd(1) * 250 + 1 b1 = Rnd(1) * 250 + 1 Me.Label6.ForeColor = RGB(r, g, b) End Sub Option Compare Database Private Sub Form_Load() DoCmd.Restore End Sub Private Sub ok_Click() Dim db As DAO.Database, rec As DAO.Recordset Set db = CurrentDb() Set rec = db.OpenRecordset("admin") rec.MoveFirst If passcu = rec![pass] Then If IsNull(passmoi) And IsNull(xlpassmoi) Then MsgBox "Ban chua nhap ma so he thong moi!" & Chr(10) & "De nghi nhap day du", 0 + vbCritical, "Thong bao" Exit Sub End If If passmoi = xlpassmoi Then rec.Edit rec![pass] = passmoi rec.Update rec.Close db.Close passcu = "" passmoi = "" xlpassmoi = "" MsgBox "Ma so he thong da duoc thay doi", 0 + 64, "Thong bao" DoCmd.Close Else MsgBox "Xac lap ma so moi sai !" & Chr(10) & "De nghi nhap lai...", 0 + vbCritical, "Thong bao" passmoi = "" xlpassmoi = "" End If Else MsgBox "Ma he thong khong dung" & Chr(10) & "De nghi nhap lai", 0 + 16, "Thong bao" passcu = "" End If End Sub Option Compare Database Private Sub Command4_Click() Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb() Set rs = db.OpenRecordset("user") If Not rs.EOF Then rs.MoveFirst Do Until rs.EOF If rs![userID] = mauser And rs![username] = ten And rs![password] = ma Then If IsNull(ma1) = False And IsNull(ma2) = False Then If ma1 = ma2 Then rs.Edit rs![password] = ma1 rs.Update MsgBox "Ban da thay doi ma so thanh cong", 0 + 60, "thong bao" Me.mauser = "" Me.ten = "" Me.ma = "" Me.ma1 = "" Me.ma2 = "" GoTo Thoat Else If ma1 ma2 Then MsgBox "new password va retype new password cua ban khong dung", 0 + 48, "thong bao" GoTo Thoat End If End If Else MsgBox "ban khong duoc de trong new password va retype new password", 0 + 48, "thong bao" GoTo Thoat End If End If rs.MoveNext Loop MsgBox "ban nhap userID, username hoac password chua dung", 0 + 60, "Thong bao" End If Thoat: End Sub Private Sub Form_Load() Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb() Set rs = db.OpenRecordset("user") If Not rs.EOF Then Me.ma.Enabled = True Me.ten.Enabled = True Else Me.ma.Enabled = False Me.ten.Enabled = False End If End Sub Private Sub Command13_Click() On Error GoTo Err_Command13_Click DoCmd.Close Exit_Command13_Click: Exit Sub Err_Command13_Click: MsgBox Err.Description Resume Exit_Command13_Click End Sub Private Sub Form_Load() DoCmd.Restore Me.khungxoa.Visible = False Me.khungthem.Visible = False End Sub Private Sub Ghi_Click() Dim db As DAO.Database Dim rec As DAO.Recordset Set db = CurrentDb() Set rec = db.OpenRecordset("user") If (mamoi "") And (ten "") And (pass "") Then On Error GoTo loi rec.AddNew rec![userID] = mamoi rec![username] = ten rec![password] = pass rec.Update mamoi = "" ten = "" pass = "" MsgBox "Ho so da duoc luu", 0 + 64, "Thong bao" Me.macu.Requery Me.bangma.Requery Else MsgBox "Nhap thieu du lieu", 0 + 64, "Thong bao" End If loi: rec.MoveFirst Do Until rec.EOF If rec![userID] = mamoi Then MsgBox "Ma User da ton tai" & Chr(10) & "De nghi nhap Ma User khac", 0 + 64, "thông báo" Exit Sub End If rec.MoveNext Loop End Sub Private Sub Option59_GotFocus() Me.khungxoa.Visible = False Me.khungthem.Visible = True End Sub Private Sub Option61_GotFocus() Me.khungxoa.Visible = True Me.khungthem.Visible = False End Sub Private Sub thoat1_Click() DoCmd.Close End Sub Private Sub thoat2_Click() DoCmd.Close End Sub Private Sub Xoa_Click() Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb() Set rs = db.OpenRecordset("user") rs.Edit Do While Not rs.EOF If rs![userID] = macu Then rs.Delete End If rs.MoveNext Loop Me.macu = "" bangma.Requery macu.Requery End Sub Option Compare Database Dim xMshh, xsl, Xthem, Xsua Private Sub Command13_Click() Select Case luachon Case 1: Me.List12.RowSource = "select * from nhacungcap where([nhacungcap]![mancc] like '*" & [txtma] & "*')" Case 2: Me.List12.RowSource = "select * from nhacungcap where([nhacungcap]![tenncc] like '*" & [txtten] & "*')" Case 3: Me.List12.RowSource = "select * from nhacungcap where([nhacungcap]![diachi] like '*" & [txtdiachi] & "*')" Case 4: Me.List12.RowSource = "select * from nhacungcap where([nhacungcap]![dienthoai] like '*" & [txtdienthoai] & "*')" End Select End Sub Private Sub Command49_Click() Me.txtma = "" Me.txtten = "" Me.txtdiachi = "" Me.txtdienthoai = "" Me.List12.RowSource = "select * from nhacungcap" End Sub Private Sub Cuoi_Click() On Error GoTo Err_Cuoi_Click If cmt = mancc Then MsgBox "ban dang o hang cuoi cung!", vbExclamation + vbDefaultButton1, "chu y" Else DoCmd.GoToRecord , , acLast End If Exit_Cuoi_Click: Exit Sub Err_Cuoi_Click: MsgBox Err.Description Resume Exit_Cuoi_Click End Sub Private Sub Form_Open(Cancel As Integer) DoCmd.Maximize End Sub Private Sub Dau_Click() On Error GoTo Err_Dau_Click If dmt = mancc Then MsgBox "ban dang o hang dau tien !", vbExclamation + vbDefaultButton1, "chu y" Else End If DoCmd.GoToRecord , , acFirst Exit_Dau_Click: Exit Sub Err_Dau_Click: MsgBox Err.Description Resume Exit_Dau_Click End Sub Private Sub Ghi_Click() On Error GoTo Err_Ghi_Click If IsNull(mancc) Then MsgBox "khong luu duoc gia tri rong!", vbExclamation + vbDefaultButton1, "chu y" Exit Sub Else DoCmd.RunCommand (acCmdSaveRecord) List12.Requery End If List12.Visible = True Dau.Visible = True Truoc.Visible = True Sau.Visible = True dieukien.Visible = True Cuoi.Visible = True Them.Visible = True Thoat.Visible = True DoCmd.GoToControl "Them" Ghi.Visible = False Khong.Visible = False Sua.Visible = True Xoa.Visible = True Xthem = False Xsua = False mancc.Locked = True tenncc.Locked = True diachi.Locked = True dienthoai.Locked = True sotk.Locked = True fax.Locked = True List12.Requery Exit_Ghi_Click: List12.Visible = True Dau.Visible = True dieukien.Visible = True Sau.Visible = True Truoc.Visible = True Cuoi.Visible = True Thoat.Visible = True Ghi.Visible = False Khong.Visible = False Xoa.Visible = True Sua.Visible = True Them.Visible = True DoCmd.GoToControl "Them" Xthem = False Xsua = False mancc.Locked = True tenncc.Locked = True diachi.Locked = True dienthoai.Locked = True sotk.Locked = True fax.Locked = True List12.Requery Exit Sub Err_Ghi_Click: MsgBox "Du lieu nhap khong hop le" End Sub Private Sub Khong_Click() On Error Resume Next DoCmd.RunCommand acCmdUndo DoCmd.GoToRecord , , acFirst List12.Visible = True Dau.Visible = True Sau.Visible = True dieukien.Visible = True Truoc.Visible = True Cuoi.Visible = True Thoat.Visible = True Sua.Visible = True Xoa.Visible = True Them.Visible = True Them.SetFocus Khong.Visible = False Ghi.Visible = False Xthem = False Xsua = False mancc.Locked = True tenncc.Locked = True diachi.Locked = True dienthoai.Locked = True sotk.Locked = True fax.Locked = True List12.Requery End Sub Private Sub Option35_GotFocus() Me.txtma.Enabled = True Me.txtten.Enabled = False Me.txtdiachi.Enabled = False Me.txtdienthoai.Enabled = False Me.txtma = "" Me.txtten = "" Me.txtdiachi = "" Me.txtdienthoai = "" End Sub Private Sub Option37_GotFocus() Me.txtma.Enabled = False Me.txtten.Enabled = True Me.txtdiachi.Enabled = False Me.txtdienthoai.Enabled = False Me.txtma = "" Me.txtten = "" Me.txtdiachi = "" Me.txtdienthoai = "" End Sub Private Sub Option39_GotFocus() Me.txtma.Enabled = False Me.txtten.Enabled = False Me.txtdiachi.Enabled = True Me.txtdienthoai.Enabled = False Me.txtma = "" Me.txtten = "" Me.txtdiachi = "" Me.txtdienthoai = "" End Sub Private Sub Option41_GotFocus() Me.txtma.Enabled = False Me.txtten.Enabled = False Me.txtdiachi.Enabled = False Me.txtdienthoai.Enabled = True Me.txtma = "" Me.txtten = "" Me.txtdiachi = "" Me.txtdienthoai = "" End Sub Private Sub Sau_Click() On Error GoTo Err_Sau_Click If cmt = mancc Then MsgBox "Ban dang o hang sau cung!", vbExclamation + vbDefaultButton1, "chu y" Else DoCmd.GoToRecord , , acNext End If Exit_Sau_Click: Exit Sub Err_Sau_Click: MsgBox Err.Description Resume Exit_Sau_Click End Sub Private Sub Sua_Click() On Error GoTo Err_Sua_Click mancc.Locked = False tenncc.Locked = False diachi.Locked = False dienthoai.Locked = False sotk.Locked = False fax.Locked = False mancc.SetFocus List12.Visible = False Dau.Visible = False Sau.Visible = False Truoc.Visible = False Cuoi.Visible = False dieukien.Visible = False Sua.Visible = False Khong.Visible = True Ghi.Visible = True Xoa.Visible = False Thoat.Visible = False Them.Visible = False Xsua = True Exit_Sua_Click: Exit Sub Err_Sua_Click: MsgBox Err.Description Resume Exit_Sua_Click End Sub Private Sub Them_Click() On Error GoTo Err_Them_Click DoCmd.GoToRecord , , acNewRec mancc.Locked = False tenncc.Locked = False diachi.Locked = False dienthoai.Locked = False sotk.Locked = False fax.Locked = False mancc.SetFocus List12.Visible = False Dau.Visible = False Sau.Visible = False dieukien.Visible = False Truoc.Visible = False Cuoi.Visible = False Sua.Visible = False Khong.Visible = True Ghi.Visible = True Xoa.Visible = False Thoat.Visible = False Them.Visible = False Xthem = True Exit_Them_Click: Exit Sub Err_Them_Click: MsgBox Err.Description Resume Exit_Them_Click End Sub Private Sub thoat_Click() On Error GoTo Err_thoat_Click DoCmd.Close Exit_thoat_Click: Exit Sub Err_thoat_Click: MsgBox Err.Description Resume Exit_thoat_Click End Sub Private Sub Truoc_Click() On Error GoTo Err_Truoc_Click If dmt = mancc Then MsgBox "ban dang o hang dau tien!", vbExclamation + vbDefaultButton1, "chu y" Else DoCmd.GoToRecord , , acPrevious End If Exit_Truoc_Click: Exit Sub Err_Truoc_Click: MsgBox Err.Description Resume Exit_Truoc_Click End Sub Private Sub Xoa_Click() On Error GoTo Err_Xoa_Click Dim traloi If IsNull(mancc) Then MsgBox "khong the xoa du lieu rong", 48, "chu y" Else traloi = MsgBox("Ban muon xoa ma nha cung cap: " & [mancc] & " (cung nhung mau tin lien quan )?", 48 + 4, "thong bao") If traloi = 6 Then DoCmd.SetWarnings False DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 DoCmd.GoToRecord , , acFirst List12.Requery DoCmd.SetWarnings True End If End If Exit_Xoa_Click: Exit Sub Err_Xoa_Click: MsgBox "khong the xoa mau tin nay" Resume Exit_Xoa_Click End Sub Private Sub List12_AfterUpdate() ' Find the record that matches the control. Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[mancc] = '" & Me![List12] & "'" If Not rs.EOF Then Me.Bookmark = rs.Bookmark End Sub Option Compare Database Dim xMshh, xsl, Xthem, Xsua Private Sub Command13_Click() If IsNull(txtma) = False And IsNull(txtten) = True Then Me.List12.RowSource = "select * from nhacungcap where([nhacungcap]![mancc] like '*" & [txtma] & "*')" Else If IsNull(txtma) = True And IsNull(txtten) = False Then Me.List12.RowSource = "select * from nhacungcap where([nhacungcap]![tenncc] like '*" & [txtten] & "*')" Else If IsNull(txtma) = False And IsNull(txtten) = False Then Me.List12.RowSource = "select * from nhacungcap where([nhacungcap]![mancc] like '*" & [txtma] & "*' or [nhacungcap]![tenncc] like '*" & [txtten] & "*')" Else If IsNull(txtma) = True And IsNull(txtten) = True Then MsgBox "Ban chua nhap dieu kien tim kiem", 0 + 60, "Thong bao" End If End If End If End If End Sub Private Sub Command49_Click() Me.txtma = Null Me.txtten = Null Me.List12.RowSource = "select * from nhacungcap" End Sub Private Sub Cuoi_Click() On Error GoTo Err_Cuoi_Click If cmt = mancc Then MsgBox "ban dang o hang cuoi cung!", vbExclamation + vbDefaultButton1, "chu y" Else DoCmd.GoToRecord , , acLast End If Exit_Cuoi_Click: Exit Sub Err_Cuoi_Click: MsgBox Err.Description Resume Exit_Cuoi_Click End Sub Private Sub Form_Open(Cancel As Integer) DoCmd.Maximize End Sub Private Sub Dau_Click() On Error GoTo Err_Dau_Click If dmt = mancc Then MsgBox "ban dang o hang dau tien !", vbExclamation + vbDefaultButton1, "chu y" Else End If DoCmd.GoToRecord , , acFirst Exit_Dau_Click: Exit Sub Err_Dau_Click: MsgBox Err.Description Resume Exit_Dau_Click End Sub Private Sub Ghi_Click() On Error GoTo Err_Ghi_Click If IsNull(mancc) Then MsgBox "khong luu duoc gia tri rong!", vbExclamation + vbDefaultButton1, "chu y" Exit Sub Else DoCmd.RunCommand (acCmdSaveRecord) List12.Requery End If List12.Visible = True Me.dktk.Visible = True Dau.Visible = True Truoc.Visible = True Sau.Visible = True Cuoi.Visible = True Them.Visible = True Thoat.Visible = True DoCmd.GoToControl "Them" Ghi.Visible = False Khong.Visible = False Sua.Visible = True Xoa.Visible = True Xthem = False Xsua = False mancc.Locked = True tenncc.Locked = True diachi.Locked = True dienthoai.Locked = True sotk.Locked = True fax.Locked = True List12.Requery Exit_Ghi_Click: List12.Visible = True Me.dktk.Visible = True Dau.Visible = True Sau.Visible = True Truoc.Visible = True Cuoi.Visible = True Thoat.Visible = True Ghi.Visible = False Khong.Visible = False Xoa.Visible = True Sua.Visible = True Them.Visible = True DoCmd.GoToControl "Them" Xthem = False Xsua = False mancc.Locked = True tenncc.Locked = True diachi.Locked = True dienthoai.Locked = True sotk.Locked = True fax.Locked = True List12.Requery Exit Sub Err_Ghi_Click: MsgBox "Du lieu nhap khong hop le" End Sub Private Sub Khong_Click() On Error Resume Next DoCmd.RunCommand acCmdUndo DoCmd.GoToRecord , , acFirst List12.Visible = True Me.dktk.Visible = True Dau.Visible = True Sau.Visible = True Truoc.Visible = True Cuoi.Visible = True Thoat.Visible = True Sua.Visible = True Xoa.Visible = True Them.Visible = True Them.SetFocus Khong.Visible = False Ghi.Visible = False Xthem = False Xsua = False mancc.Locked = True tenncc.Locked = True diachi.Locked = True dienthoai.Locked = True sotk.Locked = True fax.Locked = True List12.Requery End Sub Private Sub Sau_Click() On Error GoTo Err_Sau_Click If cmt = mancc Then MsgBox "Ban dang o hang sau cung!", vbExclamation + vbDefaultButton1, "chu y" Else DoCmd.GoToRecord , , acNext End If Exit_Sau_Click: Exit Sub Err_Sau_Click: MsgBox Err.Description Resume Exit_Sau_Click End Sub Private Sub Sua_Click() On Error GoTo Err_Sua_Click mancc.Locked = False tenncc.Locked = False diachi.Locked = False dienthoai.Locked = False sotk.Locked = False fax.Locked = False mancc.SetFocus List12.Visible = False Me.dktk.Visible = False Dau.Visible = False Sau.Visible = False Truoc.Visible = False Cuoi.Visible = False Sua.Visible = False Khong.Visible = True Ghi.Visible = True Xoa.Visible = False Thoat.Visible = False Them.Visible = False Xsua = True Exit_Sua_Click: Exit Sub Err_Sua_Click: MsgBox Err.Description Resume Exit_Sua_Click End Sub Private Sub Them_Click() On Error GoTo Err_Them_Click DoCmd.GoToRecord , , acNewRec mancc.Locked = False tenncc.Locked = False diachi.Locked = False dienthoai.Locked = False sotk.Locked = False fax.Locked = False mancc.SetFocus Me.dktk.Visible = False List12.Visible = False Dau.Visible = False Sau.Visible = False Truoc.Visible = False Cuoi.Visible = False Sua.Visible = False Khong.Visible = True Ghi.Visible = True Xoa.Visible = False Thoat.Visible = False Them.Visible = False Xthem = True Exit_Them_Click: Exit Sub Err_Them_Click: MsgBox Err.Description Resume Exit_Them_Click End Sub Private Sub thoat_Click() On Error GoTo Err_thoat_Click DoCmd.Close Exit_thoat_Click: Exit Sub Err_thoat_Click: MsgBox Err.Description Resume Exit_thoat_Click End Sub Private Sub Truoc_Click() On Error GoTo Err_Truoc_Click If dmt = mancc Then MsgBox "ban dang o hang dau tien!", vbExclamation + vbDefaultButton1, "chu y" Else DoCmd.GoToRecord , , acPrevious End If Exit_Truoc_Click: Exit Sub Err_Truoc_Click: MsgBox Err.Description Resume Exit_Truoc_Click End Sub Private Sub Xoa_Click() On Error GoTo Err_Xoa_Click Dim traloi If IsNull(mancc) Then MsgBox "khong the xoa du lieu rong", 48, "chu y" Else traloi = MsgBox("Ban muon xoa ma nha cung cap: " & [mancc] & " (cung nhung mau tin lien quan )?", 48 + 4, "thong bao") If traloi = 6 Then DoCmd.SetWarnings False DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 DoCmd.GoToRecord , , acFirst List12.Requery DoCmd.SetWarnings True End If End If Exit_Xoa_Click: Exit Sub Err_Xoa_Click: MsgBox "khong the xoa mau tin nay" Resume Exit_Xoa_Click End Sub Private Sub List12_AfterUpdate() ' Find the record that matches the control. Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[mancc] = '" & Me![List12] & "'" If Not rs.EOF Then Me.Bookmark = rs.Bookmark End Sub

Các file đính kèm theo tài liệu này:

  • docDO AN _PHAM MEN.doc
  • mdbquan ly vat tu1.mdb
Tài liệu liên quan