Quản trị dự án cần có chức năng hoạch định, tổ chức, lãnh đạo và kiểm soát dự án • Development team: Đội phát triển dự án, thành viên đội dự án có thể tham gia đầy đủ thời gian của một d
Trang 1MỤC LỤC
Trang
LỜI NÓI ĐẦU 4
CHƯƠNG 1 ĐẶT VẤN ĐỀ 5
CHƯƠNG 2 PHÂN TÍCH YÊU CẦU CỦA BÀI TOÁN 7
CHƯƠNG 3 MÔ HÌNH XỬ LÝ 10
3.1 Mô hình phân rã chức năng/phân hệ 10
3.2 Mô hình phân lớp 13
CHƯƠNG 4 XÂY DỰNG ỨNG DỤNG 15
4.1 Tổng quan về hệ quản trị cơ sở dữ liệu ORACLE 15
4.1.1 Mô hình kiến trúc 15
4.1.2 Tính năng tích hợp 16
4.1.3 Khả năng ứng dụng phát triển phần mềm 17
4.1.4 Những mặt hạn chế của Oracle 19
4.2 Thiết kế cơ sở dữ liệu 19
4.2.1 Mô hình dữ liệu quan hệ 19
4.2.2 Mô hình quan hệ dữ liệu của hệ thống 20
4.2.3 Mô hình dữ liệu quan hệ người sử dụng 29
4.3 Thiết kế mã 34
4.4 Chạy ứng dụng với web browser 35
4.5 Một số kinh nghiệm 36
CHƯƠNG 5 GIỚI THIỆU PHẦN MỀM VÀ KIỂM THỬ 37
5.1 Giới thiệu phần mềm 37
5.1.1 Hệ thống 37
5.1.2 Quản lý cán bộ, khách hàng 42
5.1.3 Quản lý hợp đồng, dự án 46
5.1.4 Báo cáo 51
5.2 Kiểm thử chương trình 51
CHƯƠNG 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 55
6.1 Kết luận 55
6.2 Hướng phát triển chương trình 56
TÀI LIỆU THAM KHẢO 57
Trang 2DANH MỤC HÌNH VẼ
Trang
Hình 1 Sơ đồ tổ chức dự án 7
Hình 2 Mô hình chương trình quản lý 9
Hình 3 Mô hình phân rã chức năng 11
Hình 4 Mô hình phân lớp 14
Hình 5 Kiến trúc Oracle server 15
Hình 6 Cấu trúc database 16
Hình 7 Mối quan hệ và lưu đồ của forms builder 18
Hình 8 Mô hình quan hệ dữ liệu 23
Hình 9 Mô hình quan hệ dữ liệu người dùng 30
Hình 10 Kiến trúc Form Builder của client – server 35
Hình 11 Đăng nhập hệ thống 37
Hình 12 Đổi mật khẩu 37
Hình 13 Nhập thông tin người sử dụng 38
Hình 14 Nhập thông tin nhóm người sử dụng 39
Hình 15 Quản trị người sử dụng 40
Hình 16 Phân quyền chức năng 41
Hình 17 Nhập thông tin cán bộ 42
Hình 18 Tra cứu thông tin cán bộ 43
Hình 19 Nhập thông tin khách hàng 44
Hình 20 Tra cứu thông tin khách hàng 45
Hình 21 Nhập thông tin hợp đồng 46
Hình 22 Tra cứu thông tin hợp đồng 47
Hình 23 Nhập thông tin dự án 48
Hình 24 Tra cứu thông tin dự án 49
Hình 25: Tài chính dự án 50
Hình 26 Phân cấp cán bộ quản lý 53
Hình 28 Phân quyền cho cán bộ quản lý dự án 53
Hình 29 Quản lý hợp đồng 54
Hình 30.Quản lý chi phí dự án 54
Trang 3DANH MỤC BẢNG BIỂU
Trang
Bảng 1 So sánh các hệ quản trị cơ sở dữ liệu 13
Bảng 2 Yêu cầu tối thiểu cho hệ thống 13
Bảng 3: Danh sách các bảng dữ liệu của hệ thống 24
Bảng 4: ALLCODE 24
Bảng 5: PML_BRANCH 25
Bảng 6: PML_CUSTOM_INFO 25
Bảng 7: PML_CONTRACT_INFO 26
Bảng 8: PML_STAFF_INFO 28
Bảng 9: PML_PROJECT_INFO 29
Bảng 10: Danh sánh bảng dữ liệu người dùng 31
Bảng 11: PML_USERS 32
Bảng 12: PML_GROUP_USER 32
Bảng 13: PML_FUNCTIONS 32
Bảng 14: PML_USER_FUNCTION 33
Bảng 15: PML_USER_FIELD 33
Bảng 16: PML_FUNC_FIELD 33
Bảng 17: Bảng mã 34
Trang 4LỜI NÓI ĐẦU
Trong thời đại ngày nay công nghệ thông tin đóng vai trò hết sức quan trọng trong đời sống xã hội, nó len lỏi vào mọi hoạt động sống của con người từ những nhu cầu sinh hoạt tất yếu đời thường đến những công việc tưởng chừng như con người không thể thực hiện được Với tốc độ phát triển như vũ bão của nó thì ngày nay không còn nghi ngờ gì về vai trò của Công Nghệ Thông Tin trong đời sống, trong khoa học kỹ thuật, kinh doanh cũng như trong mọi mặt vận động của xã hội dưới mọi quy mô, từ các xí nghiệp công ty đến quốc gia và cả quốc tế Công nghệ thông tin là một lĩnh vực rất rộng lớn, bao hàm trong nó có lĩnh vực được áp dụng rất rộng rãi trong thực tế mà bất cứ một cơ quan, tổ chức nào cũng đều quan tâm đến, đó là Cơ Sở Dữ Liệu (database) Đến nay, hệ quản trị cơ sở dữ liệu được nhiều hãng phần mềm lớn trên thế giới phát triển thành thương phẩm trên nền tảng của lý thuyết quan hệ Đó là công cụ tốt cho người lập trình, giúp họ xây dựng nên các ứng dụng quản lý
Một phần mềm quản lý có thể thu hẹp không gian lưu trữ, tránh được thất lạc dữ liệu, từng bước tự động hóa thông tin theo yêu cầu của người quản lý, giúp họ tìm kiếm thông tin nhanh, chính xác và đầy đủ, bảo mật tin cậy và hiệu quả
Từ nhận thức về tầm quan trọng của công nghệ thông tin với công tác quản lý, với sự mong muốn học hỏi và đóng góp công sức của mình vào việc phổ biến, đưa tin học vào công tác quản lý, trong đồ án tốt nghiệp này, em đã xây dựng một phần mềm quản lý dự án phục vụ cho các cơ quan, doanh nghiệp vừa và nhỏ, cụ thể là áp dụng cho một công ty sản xuất phần mềm, nơi em đang công tác
Tuy đã rất cố gắng học hỏi dựa trên kiến thức đã học và thực tế tại công ty nhưng do khả năng và thời gian có hạn nên em không thể tránh khỏi những thiếu sót
Em kính mong quý Thầy cô cùng bạn bè thông cảm và góp ý để em kịp thời lấp kín những lỗ hổng kiến thức và chương trình đạt hiệu quả cao hơn
Em xin chân thành cảm ơn Cô Phạm Thiếu Nga đã hết lòng chỉ bảo để em hoàn thành đồ án tốt nghiệp này
Trang 5CHƯƠNG 1 ĐẶT VẤN ĐỀ
Trong sự phát triển chung của xu hướng thị trường Quá trình đầu tư và quyết định đầu tư đòi hỏi sự chính xác và nhạy bén Quá trình theo dõi đầu tư cần thực hiện một cách sâu sát nhằm đem lại hiệu quả cao nhất
Bên cạnh đó, thông tin về các dự án đầu tư ngày càng lớn, để có được thông tin chính xác về các dự án, mỗi chuyên viên mất rất nhiều thời gian để rà soát công việc, đồng thời khó tránh khỏi sự sai sót Do đó, hệ thống chương trình quản lý dự án cơ bản
ra đời nhằm đáp ứng các yêu cầu cấp bách trên
Một chương trình quản lý chung chỉ sự tác động của con người tới một hay một nhóm thực thể để đạt được một yêu cầu nào đó Trong bất cự một lĩnh vực nào cũng cần có sự quản lý cụ thể để đạt được kết quả và mục tiêu mà người quản lý đặt ra trong mỗi lĩnh vực Một chương trình quản lý có đặc điểm chung là:
− Lưu trữ thông tin về đối tượng cần quản lý
− Xử lý thông tin thuộc đối tượng đó
− Đưa ra kết quả và hướng đi tiếp theo của từng đối tượng quản lý
− Thống kê báo cáo kết quả khi có yêu cầu
− Tổng kết tình hình chung
Quản lý dự án là một khái niệm mang tính trừu tượng cao, nó bao quát mọi lĩnh vực trong quá trình đầu tư, từ xây dựng cơ bản đến nâng cấp, sửa chữa, khấu hao tài sản Vì vậy, để đáp ứng được mục đích đó, hệ thống phần mềm cần phải có khả năng thích ứng những yêu cầu trên nhằm đảm bảo tính hệ thống và đem lại kết quả khai thác thông tin hiệu quả Các công ty mỗi năm phải thực hiện hàng chục dự án đầu tư, và con số đó còn lớn hơn nhiều trong các dự án sửa chữa, khấu hao tài sản, nâng cấp, mua sắm thiết bị phục vụ công tác Qua đó chúng ta có thể thấy được khối lượng thông tin cần quản lý là rất lớn Mục đích phần mềm nhằm cung cấp cho người dùng các tính năng phân định quyền hạn trách nhiệm của người sử dụng Ràng buộc thông tin cập nhật, chỉnh sửa và huỷ bỏ cho từng người sử dụng
Ngoài ra, phần mềm quản lý dự án cần được xây dựng thông qua giao diện đơn giản, gần gũi với người sử dụng, mô tả đầy đủ thông tin cần quản lý, tra cứu thông tin theo nhiều tiêu chí phong phú và đặc biệt có thể mở rộng tiêu chí tìm kiếm mà không cần nâng cấp phần mềm Thông tin của mỗi dự án được lưu trữ đầy đủ và hệ thống giúp cho các chuyên viên dễ dàng theo dõi và báo cáo Thông qua các văn bản đã được Scan
và đưa vào hệ thống, phần mềm còn cho phép người dùng tìm kiếm, chiết xuất các văn bản của từng dự án
Trang 6Đối với một công ty hay một tổ chức thì việc xây dựng nên các phần mềm quản
lý là hết sức cần thiết Đặc biệt với một công ty chuyên sản xuất phần mềm, họ có rất nhiều dự án và các hợp đồng khác nhau, họ cần một chương trình để quản lý thông tin
về các dự án đó Chương trình là một kế hoạch dài hạn bao gồm nhiều dự án Đôi khi
về mặt thuật ngữ, chương trình được dùng đồng nghĩa với dự án Với sự giúp đỡ của một chương tình quản lý, các dự án sẽ được quản lý một cách tốt hơn, chính xác hơn, kiểm soát được tình hình tài chính, tiến độ thực hiện dự án, theo dõi được một dự án từ lúc Lập hợp đồng ‚> Ký hợp đồng ‚> Lập dự án ‚> Nghiệm thu dự án ‚> Thanh lý hợp đồng…
Phần mềm quản lý dự án cho các cơ quan, doanh nghiệp vừa và nhỏ trong đồ án tốt nghiệp này là một bộ chương trình quản lý thực hiện tin học hóa vào trong lĩnh vực quản lý dự án mà trước đây vẫn quản lý theo lối thủ công Nó giúp nhà quản lý tiết kiệm được thời gian, tránh được những rủi ro trên giấy tờ, đảm bảo tính chính xác và tính nhất quán Phần mềm được xây dựng với những yêu cầu về tính năng sau :
− Giải pháp quản trị trực tuyến cho phép cập nhật, tổng hợp thông tin trong thời gian ngắn nhất, đảm bảo quản lý hiệu quả nhất
− Cho phép quản lý cùng một lúc nhiều dự án khác nhau
− Giao diện đồ hoạ và sử dụng tiếng Việt thuận tiện cho người sử dụng
− Cơ chế bảo mật tin cậy, phân quyền sử dụng tùy theo yêu cầu của khách hàng
Đồ án bao gồm 6 chương:
Chương 1: Đặt vấn đề
Chương 2: Phân tích các yêu cầu của bài toán
Chương 3: Đề xuất mô hình xử lý
Chương 4: Trình bày việc xây dựng phần mềm quản lý dự án
Chương 5 : Giới thiệu phần mềm và kết quả kiểm thử phần mềm
Chương 6: Tổng kết những kết quả đồ án đạt được và hướng phát triển tiếp của chương trình
Trang 7CHƯƠNG 2 PHÂN TÍCH YÊU CẦU CỦA BÀI TOÁN
Dự án là một quá trình gồm các công tác, nhiệm vụ có liên quan với nhau, được thực hiện nhằm đạt được mục tiêu đã đề ra trong điều kiện ràng buộc về thời gian, nguồn lực và ngân sách Mỗi dự án đều có mục tiêu rõ ràng và thời hạn nhất định Mỗi
dự án đều có nguồn lực, tính độc đáo và độ phức tạp riêng Trên thực tế nhu cầu xem xét thông tin về một vấn đề nào đó tại một thời điểm đối với người quản lý, nhà lãnh đạo rất cần thiết Chúng cho phép người quản lý theo dõi được việc quản lý thường xuyên đối với một dự án Tại mỗi lúc, các thông tin mà người sử dụng cần biết là khác nhau Thông tin có thể ngắn gọn hoặc đầy đủ tùy vào yêu cầu của người sử dụng Các thông tin này là một trong nhiều phần nhỏ trong hệ thống dữ liệu đầy đủ
Để đảm bảo tính hiệu quả và thành công, dự án phải được phân tích, đánh giá trong suốt quá trình thực hiện Điều này đòi hỏi người quản trị cũng như nhân sự tham gia dự án phải luôn được cập nhật thông tin và nắm rõ tiến trình, yêu cầu thực hiện dự
án Hình 1 mô tả sơ đồ tổ chức dự án
Hình 1 Sơ đồ tổ chức dự án
• Project director(Giám đốc dự án): Có trách nhiệm quản lý trực tiếp dự án, mọi vấn đề của dự án đều phải thông qua giám đốc, giám đốc có quyền quyết định tất cả mọi thông tin trong dự án Giám đốc dự án cũng có trách nhiệm hỗ trợ quản trị dự án (Project manager) trong việc điều hành nguồn lực, xem xét và thông qua kế hoạch dự án, hợp tác với khách hàng và giải quyết kịp thời các đề xuất của quản trị dự án
Trang 8• Project manager (Quản trị dự án): Quan hệ với khách hàng (Customer) là yếu
tố quan trọng hàng đầu của quản tị dự án Quản trị dự án có trách nhiệm điều hành mọi hoạt động của dự án Quản trị dự án cần có chức năng hoạch định, tổ chức, lãnh đạo và kiểm soát dự án
• Development team: Đội phát triển dự án, thành viên đội dự án có thể tham gia đầy đủ thời gian của một dự án hoặc tham gia không đầy đủ
• Support team: Đội hỗ trợ dự án
• Phòng hành chính: Gồm có quản trị mạng, lễ tân, kế toán, nhân viên, bảo vệ Phần mềm quản lý dự án cần thỏa mãn những yêu cầu sau:
− Chương trình xây dựng với mô hình phân tán nhưng theo dữ liệu tập trung, chương trình áp dụng cho một công ty xây dựng theo mô hình hội sở ‚ chi nhánh
− Chi nhánh sẽ quản lý thông tin về dự án mà chi nhánh đó đang thực hiện, tất cả thông tin về dự án đó sẽ được đẩy về hội sở Các chi nhánh không được xem thông tin của hội sở
− Hội sở quản lý tất cả thông tin ở hội sở và có quyền xem tất cả thông tin của chi nhánh khác
− Tất cả dữ liệu sẽ được lưu trong một cơ sở dữ liệu chung Cơ sở dữ liệu này sẽ được bảo mật theo cơ chế của hệ điều hành
Là một chương trình quản lý, cơ sở dữ liệu cần thỏa mãn những yêu cầu cần thiết sau:
− Giảm dự thừa thông tin
− Chuẩn hóa dữ liệu
vụ, nặng thì mất thông tin quan trọng ‚ một điều tối kỵ trong kinh doanh Việc tấn công vào tài sản thông tin diễn ra đôi khi chỉ do một lỗi nhỏ trong quá trình
Trang 9Hình 2 Mô hình chương trình quản lý
Trang 10CHƯƠNG 3 MÔ HÌNH XỬ LÝ
Mô hình là kết quả của sự trừu tượng hóa nhằm miêu tả các thành phần cốt yếu của một vấn đề hay một cấu trúc phức tạp qua việc lọc bớt các chi tiết không quan trọng và làm cho vấn đề trở thành dễ hiểu hơn Một môi trường kinh doanh mang tính cạnh tranh gay gắt và luôn luôn thay đổi dẫn đến tính phức tạp ngày càng tăng cao, và tính phức tạp này đặt ra những thách thức đặc trưng cho các nhà phát triển hệ thống
Mô hình giúp chúng ta tổ chức, trình bày trực quan, thấu hiểu và tạo nên các hệ thống phức tạp Mô hình giúp chúng ta hiểu vấn đề, giao tiếp với mọi người có liên quan đến
dự án (khách hàng, chuyên gia lĩnh vực thuộc đề án, nhà phân tích, nhà thiết kế,…)
Mô hình rất hữu dụng trong việc mô hình hoá doanh nghiệp, soạn thảo tài liệu, thiết kế chương trình cũng như ngân hàng dữ liệu Mô hình giúp hiểu các đòi hỏi của hệ thống tốt hơn, tạo các thiết kế rõ ràng hơn và xây dựng nên các hệ thống dẽ dàng bảo trì hơn Chúng ta xây dựng mô hình cho các hệ thống phức tạp bởi chúng ta không thể hiểu thấu đáo những hệ thống như thế trong trạng thái toàn vẹn của chúng Khả năng thấu hiểu và nắm bắt tính phức tạp của con người là có hạn Nếu chỉ tập trung vào các dòng code hay thậm chí cả phân tích Forms chẳng cung cấp một cái nhìn toàn cục về việc phát triển đồ án Xây dựng mô hình cho phép nhà thiết kế tập trung vào bức tranh lớn
về sự tương tác giữa các thành phần trong đồ án, tránh bị sa lầy vào những chi tiết riêng biệt của từng thành phần
3.1 Mô hình phân rã chức năng/phân hệ
Chương trình được xây dựng theo các module chức năng sau (hình 3):
− Quản lý dự án về tổ chức và nhân sự để thực hiện công việc soạn thảo, triển khai và vận hành dự án, bao gồm định ra ban điều hành, xác định số lượng nhân
sự, nguồn kinh phí Các thông tin được cập nhật và tập hợp nhanh chóng, giúp người quản lý có cái nhìn tổng quát về toàn bộ dự án Nếu dự án đang được đồng thời tiến hành, hệ thống sẽ tự động lọc ra các dự án mà người quản trị, người thực hiện có tham gia
− Mỗi giai đoạn của dự án có đặc thù riêng, vì vậy các yếu tố công việc, nhiệm
vụ, nhân lực, chi phí, thời gian… cần được hoạch định riêng biệt và cụ thể Chương trình hỗ trợ, phân chia và quản lý công việc một cách linh hoạt tùy thuộc vào mỗi giai đoạn của dự án Các báo cáo của nhân viên giúp cho người quản trị nắm bắt và điều chỉnh kịp thời những yếu tố ảnh hưởng tới hiệu quả công việc Quản lý được tiến độ thực hiện giúp cho việc phối hợp các giai đoạn
dự án hài hòa, ăn khớp, một yếu tố quan trọng đảm bảo tính hiệu quả, thành công của dự án
Trang 11Hình 3 Mô hình phân rã chức năng
Mô hình được thiết kế theo hướng đối tượng nên có những tính năng:
− Khả năng tái sử dụng đối tượng có tác dụng giảm thiểu lỗi và các khó khăn trong việc bảo trì, giúp tăng tốc độ thiết kế và phát triển
− Giúp chúng ta xử lý các vấn đề phức tạp trong phát triển phần mềm và tạo ra các thế hệ phần mềm có khả năng thích ứng và bền chắc
− Quá trình phát triển phần mềm đồng thời là quá trình cộng tác của khách hàng/người dùng, nhà phân tích, nhà thiết kế, nhà phát triển, chuyên gia lĩnh
Trang 12vực, chuyên gia kỹ thuật, nên lối tiếp cận này khiến cho việc giao tiếp giữa họ với nhau được dễ dàng hơn
Khi xây dựng một chương tình quản lý thì việc thiết kế một hệ quản trị cơ sở dữ liệu là vô cùng quan trọng Với thời buổi công nghệ thông tin hiện nay thì các phần mềm thiết kế cở sở dữ liệu là tương đối nhiều, dẫn đến việc khó khăn cho người lập trình làm sao lựa chọn được Cơ sở dữ liệu cho hiệu quả nhất Dưới đây là bảng so sánh
ưu, nhược điểm của một số hệ quản trị cơ sở dữ liệu phổ biến:
3 Quy mô dữ liệu (đạt
hiệu quả cao)
Thấp Vài chục ngàn bản ghi
Cao Hàng triệu bản ghi
Cao.Hàng triệu bản ghi
4 Có công cụ phân tích
& thiết kế ứng dụng
5 Kết nối với Cơ sở dữ
liệu
Phải qua ODBC hayADO
Tốc độ truy xuất CSDL bị hạn chế
Trực tiếp
Tốc độ tốt
Trực tiếp qua SQL Net Tốc độ tốt
6 Platform (cơ sở hạ
tầng)
Kém Phát triển trên nền tảng công nghệ INTEL ‚ WINDOWNT không ổn định
Khá
PC SERVER, AS400, OS2
Tốt Multi platform:
NT, UNIX, PC SERVER RS/6000, SUN, HP
7 An toàn và bảo mật
dữ liệu
Thấp (Thông qua hệ điều hành WINDOWNT)
Cao (Thông qua
hệ điều hành OS400)
Cao (Cơ chế bảo mật tới từng bản ghi trong table)
8 Khả năng giải quyết
các bài toán dữ liệu
10 Khả năng nâng cấp Thấp (chỉ nâng cấp
được cấu hình phần cứng)
Thấp Cao (nâng cấp
được cơ sở dữ liệu mà không ảnh hưởng dữ liệu; nâng cấp cả phần cứng)
Trang 1311 Tiếp cận Cao
Do tính phổ dụng cao nên hệ quản trị
cơ sở dữ liệu SQL rất dễ tiếp cận
Thấp
ít hiểu biết về hệ quản trị cơ sở dữ liệu này
TB
Rất nhiều bộ ban ngành đã lựa chọn hệ quản trị
cơ sở dữ liệu này như Bộ tài chính, Tổng công ty điện lực,
Bảng 1 So sánh các hệ quản trị cơ sở dữ liệu
Từ những ưu nhược điểm trên, em đã lựa chọn ngôn ngữ ORACLE để xây dựng chương trình của mình
Yêu cầu tối thiểu cho hệ thống xây dựng chương trình
Phần mềm
‚ Windows 2003, XP
‚ Oracle 9i, 10g
‚ Oracle Application(Oracle developer suite 9i,10g, SQL navigator5)
− Lớp Application Server: Được xây dựng trên nền Oracle Form và Oracle Report, sử dụng công cụ Oracle development 10g Có nhiệm vụ lưu các log trong qua trình xử lý, trao đổi dữ liệu, kết xuất dữ liệu cho chương trình quản lý
• Form Service: Cung cấp các hàm và thủ tục xử lý nghiệp vụ, hệ thống quản lý được tích hợp trong cơ sở dữ liệu
Trang 14• Report Service: Lấy dữ liệu từ cơ sở dữ liệu sau các giao dịch, đưa ra báo cáo cho người sử dụng
− Lớp Database: Sử dụng hệ quản trị cơ sở dữ liệu Oracle 10g và tool hỗ trợ SQL Navigator 5.5 Đẩy dữ liệu cho Form Service, sau khi Form Service thực hiện xong một giao dịch với customer, dữ liệu được lưu lại trong cơ sở dữ liệu
Hình 4 Mô hình phân lớp
Trang 15CHƯƠNG 4 XÂY DỰNG ỨNG DỤNG 4.1 Tổng quan về hệ quản trị cơ sở dữ liệu ORACLE
Oracle là một bộ phần mềm được cung cấp bởi công ty oracle, nó bao gồm bộ xây dựng các ứng dụng và các sản phẩm cuối cùng cho user (end_user product) Oracle cung cấp một hệ quản trị cơ sở dữ liệu mềm dẻo, nó bao gồm cơ sở dữ liệu oracle, môi trường cho việc thiết kế cơ sở dữ liệu (Designer) và công cụ phát triển (Developer)… Được coi là một trong những cơ sở dữ liệu mạnh mẽ nhất thế giới và thực tế Oracle đã chứng minh được khả năng của mình với hàng ngàn ứng dụng quy mô lớn:
− Được thiết kế để triển khai cho doanh nghiệp
− Hệ quản trị cơ sở dữ liệu có tính an toàn, bảo mật cao, tính nhất quán và tính toàn vẹn dữ liệu Cho phép user truy cập tới cơ sở dữ liệu phân tán như một khối thống nhất Vì vậy, nó được đánh giá là ưu việt nhất hiện nay
− Việc cài đặt, quản lý dễ dàng Các công cụ để phát triển các ứng dụng một cách hoàn thiện và nhanh chóng
− Cơ sở dữ liệu Oracle phù hợp cho mọi loại dữ liệu, các ứng dụng và các môi trường khác nhau bao gồm cả windows và linux với chi phí tối thiểu
4.1.1 Mô hình kiến trúc
Oracle là một hệ quản trị cơ sở dữ liệu đối tượng – quan hệ cho phép quản lý thông tin một cách toàn diện Oracle server gồm hai thành phần chính là Oracle Instance và Oracle database
Hình 5 Kiến trúc Oracle server
Trang 16a) Oracle Instance
Oracle instance bao gồm một cấu trúc bộ nhớ System Global Area(SGA) và các Background process(tiến trình nền) được sử dụng để quản trị cở sở dữ liệu Oracle instance được xác định thông qua tham số môi trường oracle_sid của hệ điều hành
b) Oracle database
Oracle database là tập hợp các dữ liệu được xem như một đơn vị thành phần Database có nhiệm vụ lưu trữ trả về các thông tin liên quan Database được xem xét dưới hai góc độ cấu trúc logic và cấu trúc vật lý Oracle được xác định bởi một tên duy nhất và được quy định trong tham số DB_NAME của parameter file
Hình 6 Cấu trúc database 4.1.2 Tính năng tích hợp
Oracle được ưa chuộng vì hệ quản trị cơ sở dữ liệu này tích hợp đầy đủ tính năng sau:
− Kiến trúc client/server hoặc multitier: Việc xử lý một tác vụ sẽ được chia sẻ và thực hiện trên nhiề máy tính khác nhau, máy trạm, máy chủ ứng dụng hoặc các máy chủ lưu trữ dữ liệu
− Cơ sở dữ liệu lớn và quản lý không gian lưu trữ: Oracle databse hỗ trợ lưu trữ khối lượng dữ liệu lớn lên đến hàng terabytes, và để sử dụng tối đa hiệu quả các
Trang 17thiết bị lưu trữ tiên tiến, Oracle cho phép quản lý và cấp phát các không gian lưu trữ một cách mềm dẻo và đầy đủ nhất
− Truy cập dữ liệu đồng thời: Oracle hỗ trợ số lượng lớn người sử dụng truy cập
và thao tác đồng thời trên cùng dữ liệu Đảm bảo tính toàn vẹn của dữ liệu và giảm thiểu xung đột với những người sử dụng khác
− Hiệu suất xử lý: Trong môi trường nhiều người sử dụng với các thao tác khác nhau, Oracle vẫn đảm bảo được hiệu suất tối ưu của toàn hệ thống
− Tính sẵ sàng: Cơ chế tự động khắc phục lỗi của oracle cho phép hệ thống có thể đạt được tính sẵn sàng 24/24 mà không làm gián đoạn sự vận hành của hệ thống
− Tính mở: Oracle tuân thủ các tiêu chuẩn công nghiệp bao gồm ngôn ngữ truy xuất dữ liệu, hệ điều hành, giao diện người sử dụng và các giao thức truyền thông qua mạng Điều này sẽ đảm bảo cho khách hàng giữ lại được các thiết bị
và hệ thống đã có
− Tính khả chuyên: Một trong những tính năng nổi bật nhất của Oracle là khả năng chạy trên nhiều hệ điều hành khác nhau Vì thế mà các ứng dụng được phát triển trên Oracle có thể chạy trên bất ký hệ điều hành nào mà không cần phải thay đổi hoặc thay đổi rất ít
− Hệ thống phân tán: Trong một hệ thống phân tán, Oracle kết hợp các dữ liệu vật
lý được lưu trữ trên các máy chủ khác nhau thành một hệ thống logic tổng thể
và có thể truy cập bởi bất kỳ người sử dụng nào trong mạng Hệ thống phân tán cũng đảm bảo được tính nhất quán và tính trong suốt với người dùng như hệ thống tập trung
4.1.3 Khả năng ứng dụng phát triển phần mềm
Phát triển ứng dụng trên cơ sở dữ liệu Oracle với bài toán có quy mô dữ liệu lớn (Decision Support System), các bài toán xử lý giao dịch trực tuyến(Online Tracnsaction Processing), Oracle có đầy đủ khả năng để xây dựng thành công các bài toán nghiệp vụ phức tạp nhất, đưa dến cho khách hàng những ứng dụng có tính hiệu quả cao, hỗ trợ cho công tác quản lý, kinh doanh của mọi tổ chức, doanh nghiệp một cách hiệu quả nhất
a) SQL navigator 5.0
Là công cụ hỗ trợ oracle database rất tốt Người dùng có thể truy cập vào cơ sở
dữ liệu để truy vấn thông qua công cụ này
b) Oracle developer suite 9i, 10g (Form Report Service)
Form Builder là công cụ phát triển Form chính của Oracle trong hơn 15 năm qua Trong suốt thời gian này, các ứng dụng Forms Builder được sử dụng trong hệ
Trang 18thống máy tính lớn, môi trường dựa trên cơ sở ký tự, môi trường client – server và bây
giờ là môi trường Web Developer sử dụng ba thành phần khác nhau:
− Một môi trường phát triển tích hợp được gọi là form builder Công cụ này cung
cấp các thành phần thiết kế mong muốn ở trong một file thư viện với phần mở
rộng là fmb File thư viện form này không thể thực thi cho đến khi nó được
chuyển thành mã máy
− Forms Builder chứa một công cụ thứ hai gọi là Forms Compiler để tạo ra một
file biên dịch(file dạng mã máy) dựa trên file thự viện form Đây là file có phần
mở rộng là fmx Nó thông dụng hơn, tuy nhiên phải biên dịch file bên trong
công cụ Forms Builder
− Bộ thời gian chạy gọi là Forms Server, thực thi file biên dịch fmx trong môi
trường Web Forms Server là sản phẩm trung gian để nhận các yêu cầu từ môt
trình duyệt Web và dọn sẵn một Java Applet dựa trên form cho trình duyệt
Forms Server thông thường được gọi từ một trình duyệt Web nhưng nó có thể
được gọi từ một công cụ trong Forms Builder IDE
Ba công cụ này là rất cần thiết bởi vì mỗi công cụ thực hiện một tác vụ khác
nhau File fmb nằm trong Forms Builder IDE chứa các thiết lập và các thông số có liên
quan đến việc thể hiện các thành phần khác nhau bên trong công cụ Nó được định
dạng vì thế Forms Builder có thể đọc file này Forms Compiler chuyển file thư viện
Forms Builder thành mã máy File đó có thể được đọc bởi máy(Forms Server hoặc
Forms Runtime) để thực thi biên bản được biên dịch
Forms Builder Forms Compiler dịch Forms Server hoặc
xây dựng Forms Runtime
Hình 7 Mối quan hệ và lưu đồ của forms builder Đây là công cụ hỗ trợ để xây dựng nên các ứng dụng giao tiếp với người sử
dụng Giao diện người sử dụng có lẽ là thành phần quan trọng nhất đối với một ứng
dụng Người dùng giao tiếp với Form Report Service để thực hiện các hành động như
truy vấn, thêm, sửa, xóa dữ liệu Sau khi thực hiện xong dữ liệu được lưu trong cơ sở
dữ liệu
File thư viện
FMB
File thực thi FMX
Người dùng thực thi Form
Trang 194.1.4 Những mặt hạn chế của Oracle
Ngoài những các tính năng, oracle cũng có một số mặt hạn chế:
− Đối với một công ty vừa và nhỏ thì vấn đề kinh phí đầu tư cũng là khá quan trọng Tiền mua bản quyền Oracle có thể làm nghèo công ty
− Nếu người dùng không cần dùng các chức năng của một hệ quản trị cơ sở dữ liệu cao cấp mà chỉ cùng các chức năng cơ bản như lưu data, đọc data, xoá, thay đổi data và sort data thì các hệ quản trị khác sẽ có tốc độ (trung bình) nhanh hơn
− So với các ngôn ngữ Net thì giao diện của form Oracle là không đẹp
4.2 Thiết kế cơ sở dữ liệu
4.2.1 Mô hình dữ liệu quan hệ
Cơ sở dữ liệu: là một tập hợp các bảng dữ liệu có quan hệ với nhau sao cho cấu trúc của chúng cũng như các mối quan hệ bên trong giữa chúng là tách biệt với chương trình ứng dụng bên ngoài, đồng thời nhiều người dùng khác nhau cũng như nhiều ứng dụng khác nhau có thể cùng khai thác và chia xẻ một cách chọn lọc lúc cần
Thực thể là hình ảnh cụ thể của một đối tượng trong hệ thống thông tin quản lý Một thực thể xác định tên và các thuộc tính Thuộc tính là một yếu tố dữ liệu hoặc thông tin của thực thể ấy
Ai : tên thuộc tính
Di : miền xác định của thuộc tính
M : mệnh đề ràng buộc Nội dung của một lược đồ quan hệ gọi là các bộ
Các phép toán tối thiểu:
• Tìm kiếm dữ liệu theo tiêu chuẩn đã chọn, không làm thay đổi trạng thái cơ sở
dữ liệu
• Thay đổi cấu trúc cơ sở dữ liệu
Trang 20• Thay đổi nội dung cơ sở dữ liệu
• Xử lý, tính toán trên cơ sở dữ liệu
4.2.2 Mô hình quan hệ dữ liệu của hệ thống
Sử dụng một mô hình có sẵn
Về ý tưởng và hướng xây dựng cơ sở dữ liệu là rất phức tạp và vô cùng quan trọng cho một chương trình quản lý Nếu không có một mô hình dữ liệu hợp lý ngay từ ban đầu, người lập trình sẽ rất khó khăn trong việc xây dựng hệ thống, không đưa ra được các ràng buộc chặt chẽ và logic, không biết đi từ module nào…dẫn đến nhiều vấn
đề và phát sinh lỗi hệ thống, như vậy thì chương trình quản lý sẽ không còn tác dụng Một chương trình quản lý mà không chặt chẽ, hiệu quả, dữ liệu không nhất quán…nếu đem ra sử dụng thì thiệt hại về vật chất là vô cùng to lớn Do vậy, việc thiết kế cơ sở
dữ liệu là người dẫn đường cho chương trình quản lý
Qua quá trình làm việc tại công ty Navisoft, một công chuyên trong lĩnh vực giải pháp và dịch vụ phần mềm, em đã xây dựng nên một hệ thống cơ sở dữ liệu tương đối hoàn chỉnh với các ràng buộc quan hệ giữa các bảng chặt chẽ và nhất quán Việc xây dựng nên một cơ sở dữ liệu thành công là do sự hỗ trợ nhiệt tình của ban lãnh đạo công ty
Qua thời gian hoạt động nhiều năm của công ty, đúc rút ra kinh nghiệm từ dự án nhận được từ phía các khách hàng, các hợp đồng thỏa thuận của hai bên đưa ra cho dự
án, ban lãnh đạo công ty đã thảo luận, đưa ra ý kiến đóng góp và thống nhất đưa ra một
mô hình cơ sở dữ liệu với các bảng (thể hiện màu trắng trên hình 8), các trường với các ràng buộc chặt chẽ cho cơ sở dữ liệu Trước hết, khi có một đối tác làm ăn, gọi là khách hàng, chúng ta cần lưu lại thông tin về khách hàng đó, do vậy phát sinh ra bảng pml_custom_info Đối với một khách hàng, chúng ta cần lưu lại thông tin chi tiết về một đại diện của khách hàng đó như tên, số điện thoại liên lạc, vị trí làm việc của họ trong công ty, cho nên hình thành ra việc xây dựng bảng pml_custom_list Với một đối tác làm ăn, chúng ta cần xác định làm ăn theo công việc gì với khách hàng, như vậy đòi hỏi phải có một hợp đồng rõ ràng, có các điều khoản thanh toán trong hợp đồng và điều kiện nghiệm thu hợp đồng Bảng pml_contract_info lưu thông tin chi tiết về một hợp đồng, bảng pml_payment_clause lưu thông tin về các điều khoản thanh toán trong hợp đồng và bảng pml_access_term lưu thông tin về điều kiện nghiệm thu hợp đồng Rồi có các bảng lưu thông tin về dự án (pml_project_info) và những cán bộ nào tham gia dự
án, thường gọi là nguồn lực của dự án (pml_pro_resources) và lịch bàn giao sản phẩm
cụ thể (pml_transfer_clr) Bảng pml_staff_info là cần thiết để lưu lại thông tin của các cán bộ, là cơ sở cho nguồn lực của dự án Qua nhiều năm kinh nghiệm lập trình, họ đã
Trang 21xây dựng nên bảng allcode làm bảng định nghĩa dữ liệu cho các trường của các bảng khác, việc này giúp cho người lập trình thuận tiện khi xây dựng chương trình
Phát triển cơ sở dữ liệu
Qua quá trình phân tích và đi vào xây dựng chương trình, em đã phát triển chương trình của mình nên theo hướng rộng hơn (thêm các bảng màu xanh trên hình 8 vào trong cơ sở dữ liệu của mình), đòi hỏi một cơ sở dữ liệu phức tạp hơn mà vẫn đảm bảo tính chặt chẽ và nhất quán:
− Dữ liệu ban đầu chỉ được thiết kế để sử dụng và áp dụng cho chương trình quản
ký công ty con Từ đó, em đã nghĩ lên ý tưởng hình thành nên chương trình quản lý mức tổng công ty gồm nhiều chi nhánh Bảng pml_branch được thêm vào để định nghĩa mã, tên cho các chi nhánh
− Trong quá trình công tác của nhân viên, thông tin về nhân viên có thể thay đổi Bảng pml_staff_history là bảng sẽ lưu lại thông tin lịch sử của nhân viên Trong bảng có ghi rõ các lần thay đổi theo trường update_no Điều này giúp cho công
ty có cái nhìn trực quan hơn về sự đóng góp công sức của nhân viên cho công việc, cho công ty, một phần nhỏ đưa công ty đến thành công
− Dữ liệu ban đầu chưa thiết kế cho việc tính chi phí cho từng dự án Công việc tính phí cho dự án một cách hợp lý là vô cùng phức tạp Trao đổi kinh nghiệm với ban lãnh đạo công ty, bộ phận kế toán, em đã xây dựng nên cơ sở dữ liệu phục vụ cho chương trình quản lý gồm các bảng sau:
• Tính phí sẽ tính vào cuối tháng cho các dự án, đưa ra báo cáo về tình hình tài chính dự án
• Trong thời gian làm dự án, cần có những buổi gặp gỡ khách hàng để thảo luận, thống nhất Việc tính phí cho những buổi như vậy là cần thiết, đó gọi là phí tiếp khách, bảng pml_spend_visitors thể hiện đầy đủ nội dung cần thiết
• Khi một dự án hoàn thành, cần phải được dùng thử nghiệm sản phẩm Đội sản xuất cần phải trực tiếp sang bên khách hàng làm việc, cài đặt hệ thống, dựng môi trường ứng dụng cho hệ thống thử nghiệm, đáp ứng nhu cầu theo ý khách hàng Từ đó phát sinh ra chi phí triển khai, thông tin phí bảng pml_spend_deploy
• Chi phí lương cho cán bộ tham gia dự án là không phải bàn cãi, bảng pml_staff_salary là bảng có thông tin về tên cán bộ, mã cán bộ, vị trí trong dự
án, và lương của từng cán bộ Từ đó, phí của dự án là lương tổng của tất cả các cán bộ tham gia dự án
• Trong quá trình sản xuất phần mềm, việc gặp nhiều hệ thống phức tạp là không thể tránh khỏi Vì vậy, các dự án như thế sẽ cần chuyên gia tư vấn hoặc trực tiếp
Trang 22hỗ trợ sản xuất Bảng pml_spend_training nêu thông tin về chi phí đào tạo cho những dự án như trên
• Các dự án có thể kéo dài qua nhiều tháng, thậm chí hàng năm, tất cả các chi phí trong văn phòng cũng ơhair có trong dự án Chi phí văn phòng gồm có tiền điện, nước, thuê nhà hàng tháng, tiền vệ sinh, phong trào phát sinh… các chi phí đó
sẽ công lại và chia đều cho tất cả các dự án, thông tin chi phí lưu trong bảng pml_spend_office
• Có bảng lưu thông tin về cán bộ trong văn phòng, gồm có Mã cán bộ, tên cán
bộ, vị trí làm việc trong công ty, lương hiện có Đó là những chi phí về lương cho cán bộ quản lý văn phòng như bộ phận kế toán, bộ phận lễ tân, ban quản trị mạng, bộ phận bảo vệ….Thông tin chi tiết về phí được lưu trong bảng pml_spend_management, và thông tin về cán bộ văn phòng lưu tại bảng pml_staff_offcie
• Sau khi kết thúc dự án, sẽ có chi phí thưởng cho đội săn xuất dự án, đó là điều kiện cần thiết để khích lệ đội cho các dự án tiếp theo Bảng pml_spend_reward lưu thông tin về phí thưởng cho từng cán bộ thamm gia dự án, thông tin gồm có
mã cán bộ, tên cán bộ, vị trí trong dự án, chi phí thưởng…
Mô hình mô tả quan hệ giữa các bảng trong cơ sở dữ liệu Mô hình mô tả các thông tin chi tiết của dự án, thông tin về hợp đồng, về cán bộ tham gia dự án
Trang 23Hình 8 Mô hình quan hệ dữ liệu
Mô tả bảng:
01 ALLCODE Bảng lưu thông tin tương ứng với các giá trị
của biến
02 PML_BRANCH Bảng lưu tên các chi nhánh, được định nghĩa
trong cơ sở dữ liệu
03 PML_CUSTOM_INFO Lưu thông tin chung về khách hàng
04 PML_CUSTOM_LIST Lưu thông tin danh sách các khách hàng cần
quan tâm
05 PML_STAFF_INFO Lưu thông tin chung về cán bộ
Trang 2406 PML_CONTRACT_INFO Lưu thông tin chung về hợp đồng
07 PML_PAYMENT_CLAUSE Lưu thông tin về điều khoản thanh toán trong
12 PML_SPEND_SALARY Chi phí lương dự án
13 PML_SPEND_DEPLOY Chi phí triển khai dự án
14 PML_SPEND_VISITORS Chi phí tiếp khách dự án
15 PML_SPEND_OFFICE Chi phí văn phòng dự án
16 PML_SPEND_MANAGEMENT Chi phí quản lý dự án
17 PML_SPEND_REWARD Chi phí thưởng dự án
18 PML_SPEND_TRAINING Chi phí đào tạo dự án
Bảng 3: Danh sách các bảng dữ liệu của hệ thống
Mô tả chi tiết thông tin một số bảng cần quan tâm:
• Bảng ALLCODE
ComboBox Đánh các giá trị từ 1,2,3…99
0 Không mặc định
1 Mặc định
Trang 25Bảng 6: PML_CUSTOM_INFO
• Bảng PML_CONTRACT_INFO
Bảng lưu thông tin chi tiết về hợp đồng, thông tin bảng này sẽ tham chiếu tới bảng PML_PAYMENT_CLAUSE và PML_ACCEPT_TERM
Trang 26Tên trường Kiểu Độ dài Null Khóa Mô tả
CONTRACT_DATE Date Ngày ký hợp đồng
CONTRACT_SCO
PE
PROGRESS_TIME Varchar2 50 Thời gian tiến độ
STAFF_MANAGER Varchar2 50 N Cán bộ quản lý hợp đồng Link đến bảng
“STAFF_INFO”
STAFF_MAR_NAME Varchar2 150 Tên cán bộ quản lý hợp đồng
COST_SUM_VN Number 20 Tổng giá trị hợp đồng VNĐ
COST_SUM_USD Number 20 Tổng giá trị hợp đồng USD
STATUS Number 2 Trạng thái hợp đồng Định nghĩa trong
Bảng 7: PML_CONTRACT_INFO
• Bảng PML_STAFF_INFO
Bảng lưu thông tin chi tiết về cán bộ, thông tin thay đổi sẽ lưu vết lại trong bảng PML_STAFF_INFO_HISTORY
Trang 27Tên trường Kiểu Độ dài Null Khóa Mô tả
0 Giám đốc trung tâm
1 Lập trình viên
2 Kế toán trưởng
3 Kế toán viên
4 Test
Trang 28CREATE_BY Varchar2 150 Người tạo
MODIFIED_BY Varchar2 150 Người sửa