Báo cáo Phân tích thiết kế hệ thống thông tin quản lý thiết bị và lập lịch bảo trì

-Lệnh HAVINGSUM(column) condition value Từkhóa HAVING được thêm vào SQL vì từkhóa WHERE không thểdùng với các hàm tổng (nhưhàm SUM). Thiếu từkhóa HAVING sẽkhông thểkiểm tra các điều kiện dùng hàm tổng. Cú pháp của HAVING : SELECT column,SUM(column) FROM table GROUP BY column HAVING SUM(column) condition value -Lệnh Alter Table phát biểu ALTER TABLE dùng đểthêm hay loại bỏcác cột trong một bảng cho trước. ALTER TABLE table_name ADD column_name datatype ALTER TABLE table_name DROP column_name

pdf86 trang | Chia sẻ: lylyngoc | Ngày: 02/01/2014 | Lượt xem: 1696 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Báo cáo Phân tích thiết kế hệ thống thông tin quản lý thiết bị và lập lịch bảo trì, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
iện : THIET_BI[MA_THIET_BI], CUM_CHI_TIET[MA_THIET_BI] : CUM_CHI_TIET[MA_THIET_BI] ⊆ THIET_BI[MA_THIET_BI] Tầm ảnh hưởng : R22 Thêm Xóa Sửa CUM_CHI_TIET +[MA_THIET_BI] - + THIET_BI - + + 41 R23 : MA_NCC trong thực thể THIET_BI là khóa ngoại tham chiếu từ bảng NHA_CUNG_CAP. Bối cảnh : NHA_CUNG_CAP,THIET_BI Điều kiện : NHA_CUNG_CAP[MA_NCC], THIET_BI[MA_NCC] : THIET_BI[MA_NCC] ⊆ NHA_CUNG_CAP[MA_NCC] Tầm ảnh hưởng : R23 Thêm Xóa Sửa THIET_BI +[MA_NCC] - + NHA_CUNG_CAP - + + R24 : MA_TO trong thực thể CONG_VIEC là khóa ngoại tham chiếu từ bảng TO_THUC_HIEN. Bối cảnh : TO_THUC_HIEN, CONG_VIEC Điều kiện : TO_THUC_HIEN[MA_TO], CONG_VIEC[MA_TO] : CONG_VIEC[MA_TO] ⊆ TO_THUC_HIEN[MA_TO] Tầm ảnh hưởng : R24 Thêm Xóa Sửa CONG_VIEC +[MA_TO] - + TO_THUC_HIEN - + + 42 R25 : MA_THIET_BI trong PHIEU_THEO_DOI là khóa ngoại tham chiếu từ bảng THIET_BI. Bối cảnh : THIET_BI, PHIEU_THEO_DOI Điều kiện : THIET_BI[MA_THIET_BI], PHIEU_THEO_DOI[MA_THIET_BI] : PHIEU_THEO_DOI[MA_THIET_BI] ⊆ THIET_BI[MA_THIET_BI] Tầm ảnh hưởng : R25 Thêm Xóa Sửa PHIEU_THEO_DO I +[MA_THIET_B I] - + THIET_BI - + + R26 : : MA_THIET_BI trong PHIEU_BAO_TRI là khóa ngoại tham chiếu từ bảng THIET_BI. Bối cảnh : THIET_BI, PHIEU_BAO_TRI Điều kiện : THIET_BI[MA_THIET_BI], PHIEU_BAO_TRI[MA_THIET_BI] : PHIEU_BAO_TRI[MA_THIET_BI] ⊆ THIET_BI[MA_THIET_BI] Tầm ảnh hưởng : R26 Thêm Xóa Sửa PHIEU_BAO_TRI +[MA_THIET_B I] - + THIET_BI - + + 43 R27 : MA_CCT, MA_CV trong thực thể CCT_CONG_VIEC là khóa chính tham chiếu từ bảng CUM_CHI_TIET và bảng CONG_VIEC. Bối cảnh : CCT_CONG_VIEC, CUM_CHI_TIET, CONG_VIEC Điều kiện : CCT_CONG_VIEC [MA_CCT,MA_CV] , CUM_CHI_TIET [MA_CCT], CONG_VIEC [MA_CV] CCT_CONG_VIEC[MA_CCT] ⊆ CUM_CHI_TIET[MA_CCT] OR CCT_CONG_VIEC[MA_CV] ⊆ CONG_VIEC [MA_CV] Tầm ảnh hưởng : R27 Thêm Xóa Sửa CCT_CONG_VIEC +[MA_CCT,MA_CV] - + CUM_CHI_TIET - + + CONG_VIEC - + + R28: MA_PHIEU_TD, MA_CCT, MA_CV trong thực thể PHIEU_BT_CCT_CV là khóa chính tham chiếu từ các bảng PHIEU_BAO_TRI, CUM_CHI_TIET, CONG_VIEC. Bối cảnh : PHIEU_BT_CCT_CV, PHIEU_BAO_TRI, CUM_CHI_TIET, CONG_VIEC. Điều kiện : PHIEU_BT_CCT_CV[MA_PHIEU_BT, MA_CCT, MA_CV] , CUM_CHI_TIET[ MA_CCT], CONG_VIEC[MA_CV], PHIEU_BT[MA_PHIEU_BT] : PHIEU_BT_CCT_CV[MA_PHIEU_BT] ⊆ PHIEU_BAO_TRI[MA_PHIEU_BT] OR 44 PHIEU_BT_CCT_CV[MA_CCT] ⊆ CUM_CHI_TIET[MA_CCT] OR PHIEU_BT_CCT_CV[MA_CV] ⊆ CONG_VIEC[MA_CV] . R28 Thêm Xóa Sửa PHIEU_BT_CCT_ CV +[MA_PHIEU_BT, MA_CCT, MA_CV] - + CUM_CHI_TIET - + + CONG_VIEC - + + PHIEU_BAO_TRI - + + III. Mô hình dòng dữ liệu( DFD) : Mức 0 : : 45 Mức 1 : 46 47 48 CHƯƠNG III : GIẢI QUYẾT BÀI TOÁN 1. Bài toán lập lịch bảo trì : Các loại thiết bị bảo trì theo giờ đều được gắn đồng hồ để đo chỉ số , từ đó xác định được tần suất hoạt động. Công thức tính toán để xác định trạng thái bảo trì TRUE hoặc FALSE đối với một thiết bị bao gồm các thống số sau : -Chỉ số đồng hồ hiện tại : Chính là số giờ chạy của máy được ghi tại một thời điểm cần kiểm tra trạng thái bảo trì. -Chỉ số đồng hồ lần trước : Lưu lại chỉ số giờ chạy của máy lần gần đây nhất. - Mốc định kỳ : Là chỉ số giờ chạy được dự tính sẽ bảo trì cho máy. Đối với một thiết bị khi mua về sẽ được các kỹ sư phụ trách bảo trì thiết lập cho một mốc định kỳ đầu tiền, gọi là số giờ dự tính sẽ bảo trì. -Định kỳ : Là số giờ mà máy cần phải ngưng để tiến hành công tác bảo trì. Mỗi máy được thiết lập một định kỳ sẵn, có thể do nhà sản xuất hoặc do kỹ sư phụ trách bảo trì thiết lập. Sau đây là ví dụ minh họa đối với một máy bảo trì theo công thức trên : Giả sử có một thiết bị A được mua về, chỉ số đồng hồ hiện tại của máy 0032. Định kỳ của máy là 1000 giờ. Kỹ sư sẽ thiết lập mốc định kỳ đầu tiên, tức thiết lập chỉ số đạt được cần phải ngưng để bảo trì là 1000 giờ. Chỉ số nhập để kiểm tra tại một thời điểm : 0573 Chỉ số lần trước : 0032 Mốc định kỳ : 1000 49 Ta sẽ công thức tính như sau : Gọi P là chỉ số kết quả kiểm tra, M là mốc định kỳ , DK là định kỳ của máy, L là chỉ số nhập tại một thời điểm cần kiểm tra, T là trạng thái bảo trì. P = ( M – L ) Nếu P > DK/2 thì T = FALSE ( Chưa cần bảo trì ) Nếu P <= DK/2 thì T = TRUE ( Đã đến lúc cần bảo trì) Nếu T = TRUE thì M = M + DK Áp dụng cho các thông số ở ví dụ ta có : P = ( M – L) = ( 1000 – 573) = 427 DK/2 = 1000/2 = 500 P = 427 T = TRUE , thiết bị này đã đến lúc cần bảo trì. M = M + DK = 1000 + 1000 = 2000 Như vậy mốc định kỳ dự tính bảo trì ở lần kế tiếp là 2000. Đối với thiết bị bảo trì theo tháng, cần lập ra danh sách công việc cho từng cụm chi tiết của thiết bị theo các định kỳ định sẵn. 2. Hướng giải quyết : Lập lịch bảo trì theo từng tháng cho các thiết bị. Hướng giải quyết cho các thiết bị bảo trì theo giờ như sau : - Xuất ra những thiết bị có trạng thái cần bảo trì và có thời gian lập phiếu nằm trong tháng bảo trì.. - Xuất ra tất cả các công việc bảo trì của tất cả các cụm chi tiết thuộc thiết bị đó. - Xuất ra các công việc theo từng định kỳ đối với mỗi cụm chi tiết thuộc một thiết bị. 50 CHƯƠNG IV : KẾT QUẢ THỰC NGHIỆM I. Giao diện và chức năng của chương trình. -Chương trình được xây dựng dựa trên công cụ Microsoft Visual C# và Microsoft SQL. -Thích ứng với các hệ điều hành : Win2000/XP/Vista. Giao diện các Form trong chương trình : Form Đăng nhập : -Chức năng : Đăng nhập vào form chính của chương trình. Hệ thống sẽ kiểm tra bảng tài khoản, nếu người dùng không có tài khoản thì sẽ không sử dụng được chương trình. 51 Form Chức năng : -Đây là form giao diện chính của toàn bộ chương trình. Danh mục bao gồm việc Quản lý dữ liệu cho các bảng : Quản lý thông tin khu vực , thông tin dây chuyền sản xuất , thông tin thiết bị , thông tin chi tiết các công việc. Bảo trì bao gồm các chức năng bảo trì theo giờ , quản lý thiết bị , lập phiếu bảo trì. Khu vực ngoài quản lý thông tin của tổ thực hiện bảo trì và thông tin của nhà cung cấp thiết bị. Tài khoản có chức năng quản lý thông tin tài khoản của người dùng. Báo cáo bao gồm các danh sách cung cấp thông tin cho việc lập kế hoạch các công việc bảo trì cho máy móc thiết bị nhà máy. Thoát : Thoát khỏi chương trình quản lý. 52 Form Khu Vực : Các thông tin cho người dung biết trong form bao gồm : Tên các khu vực trong nhà máy. Chức năng : -Thêm một khu vực mới. -Chỉnh sửa tên khu vực. -Xóa bỏ một khu vực. -Thoát : thoát khỏi form đang sử dụng. 53 Form Dây chuyền sản xuất : Các thông tin cho người dung biết trong form bao gồm : Tên dây chuyền và khu vực dây chuyền đang hoạt động. Chức năng : - Thêm một dây chuyền mới. -Chỉnh sửa tên dây chuyền, thay đổi khu vực hoạt động của dây chuyền. -Xóa bỏ một dây chuyền. -Thoát : thoát khỏi form đang sử dụng. 54 Form Thiết bị : Các thông tin trong form bao gồm : Tên thiết bị , tên nhà cung cấp , tên dây chuyền mà thiết bị hiện đang hoạt động tại đó , kiểu bảo trì cho thiết bị , định kỳ bảo trì. Chức năng : -Thêm một thiết bị mới vào một dây chuyền sản xuất. -Xóa thiết bị ra khỏi dây chuyền sản xuất. -Sửa thông tin của thiết bị như : nhà cung cấp thiết bị , kiểu bảo trì , định kỳ bảo trì. -Xem : in ra nội dung danh sách thiết bị theo từng dây chuyền sản xuất. -Thoát : thoát khỏi form đang sử dụng. 55 Form Công Việc : Các thông tin trong form bao gồm : Tên công việc bảo trì cho thiết bị và cụm chi tiết của thiết bị, tên tổ phụ trách công việc đó. Chức năng : -Thêm một công việc mới cho một tổ phụ trách. -Xóa bỏ công việc khi không còn phù hợp trong công tác lên kế hoạch bảo trì cho thiết bị của nhà máy. -Chỉnh sửa thông tin công việc cho phù hợp với từng cụm chi tiết hoặc cho phù hợp với chuyên môn của từng tổ phụ trách. -Thoát : thoát khỏi form đang sử dụng. 56 Form Bảo trì thiết bị theo giờ : Các thông tin trong form bao gồm : Tên thiết bị, chỉ số đồng hồ lần gần nhất (lần trước) , chỉ số đồng hồ cần nhập để kiểm tra (lần hiện tại), tuần suất bảo trì (định kỳ bảo trì của thiết bị) , ngày ghi lưu thời điểm lập phiếu theo dõi, mốc định kỳ dự định bảo trì lần kế tiếp. Chức năng : -Kiểm tra : Dữ liệu nhập vào sẽ được tính toán và xuất ra thông tin cho người dùng biết thiết bị đó đã đến thời hạn bảo trì hay chưa ( dựa vào trạng thái true hay false), đồng thời lưu thông tin vào phiếu theo dõi tại thời điểm đó. Nếu thông tin của thiết bị trả ra giá trị true, tức là thiết bị đã đến thời hạn cần bảo trì, trên giao diện sẽ xuất hiện nút chức năng lập bảo trì. Khi người dùng muốn lập phiếu bảo trì thì phải bấm vào nút này để thông báo cho hệ thống biết và tự động lưu thông tin vào phiếu bảo trì. -Xóa : xóa một dòng dữ liệu khi người dùng vô tình nhập sai chỉ số đồng hồ. Khi đó chương trình sẽ xóa bỏ dòng dữ liệu vừa nhập và cho phép người dùng nhập lại chỉ số đồng hồ. -Thoát : thoát khỏi form đang sử dụng. 57 Form Quản lý thiết bị theo tháng : Form cung cấp những thông tin cho người dùng biết bao gồm : Tên thiết bị, tên cụm chi tiết của thiết bị đó, và một danh sách công việc kèm theo cho các cụm chi tiết theo từng thiết bị. Các chức năng của from : -Cho phép người dùng chọn thiết bị bằng cách click chọn tên thiết bị trên danh sách thiết bị nằm phía bên trái của form. Mỗi khi form được kích hoạt, hệ thống sẽ tự động xuất dữ liệu danh sách thiết bị theo kiểu bảo trì ứng với nút chọn ở phía bên trái gần danh sách thiết bị. -Khi người dùng đã chọn một thiết bị, hệ thống sẽ tự động load lên danh sách cụm chi tiết của thiết bị đó đang có, đồng thời sẽ load danh sách các công việc ứng với một cụm chi tiết của thiết bi. -Người dùng có thể thay đổi danh sách các cụm chi tiết ứng với thiết bị được chọn bằng cách click vào nút thêm/sửa/xóa cụm chi tiết. Khi đó hệ thống sẽ kích hoạt form cụm chi tiết cho người dùng chọn. 58 Form Cụm Chi Tiết : Form cung cấp thông tin cho người dùng biết bao gồm : Tên cụm chi tiết của thiết bị nào đó. Tên thiết bị được chọn để thực hiện thay đổi danh sách cụm chi tiết cho thiết bị đó. Chức năng của form: -Thêm danh sách một cụm chi tiết cho thiết bị -Xóa : cụm chi tiết ra khỏi thiết bị, khi cụm chi tiết không còn sử dụng hiệu quả hay bị hư hao trong quá trình hoạt động. -Sửa : thay đổi thông tin của cụm chi tiết -Thoát : khi người dùng click nút thoát hệ thống sẽ tự động kích hoạt form quản lý thiết bị và cập nhật thông tin mà người dùng đã thay đổi. đồng thời thoát khỏi form cụm chi tiết. 59 Quay trở lại với form quản lý thiết bị: Người dùng có thể xem danh sách thiết bị theo giờ bằng cách kích hoạt hệ thống khi nhấn thay đổi nút chọn ở phía danh sách thiết bị. -Các chức năng khi thêm công việc cho từng cụm chi tiết hay thêm cụm chi tiết cho thiết bị đều được hệ thống xử lý giống như trên. -Để thay đổi công việc cho từng cụm chi tiết người dùng có thể chọn một cụm chi tiết nào đó và click nút thêm/xóa công việc. Khi đó hệ thống sẽ tự động kích hoạt form Chọn công việc cho cụm chi tiết. -Đối với danh sách thiết bị bảo trì theo giờ hệ thống sẽ tự động lấy chu kỳ thời gian cho phép của thiết bị mà thiết lập định kỳ bảo trì cho các công việc được thêm vào từng cụm chi tiết. 60 Form chọn công việc : Form cung cấp thông tin cho người dùng biết bao gồm : danh sách các công việc hiện có, thông tin của cụm chi tiết được chọn để thêm công việc, định kỳ của công việc, và ngày áp dụng để thực hiện. Chức năng của form : -Xóa CV Cụm chi tiết : khi click nút này hệ thống sẽ tải danh sách công việc hiện có của cụm chi tiết này. Người dùng có thể chọn tên từng công việc và thay đổi nó như : người dùng có thể xóa, Thay đổi định kỳ công việc cho phù hợp với kế hoạch bảo trì ( chỉ áp dụng cho những thiết bị bảo trì theo tháng). -Tạo mới : Khi click nút tạo mới hệ thống sẽ kích hoạt form công việc cho người dùng thực hiện thay đổi công việc hay xóa….. 61 -Chọn: khi muốn áp dụng một công việc trên danh sách hiện có người dùng chỉ cần click nút chọn. -Không chọn : khi được click sẽ tự động trở về form quản lý thiết bị, đồng thời cập nhật lại thông tin công việc cho cụm chi tiết. Form Tổ Thực Hiện : Form cung cấp thông tin danh sách các tổ phụ trách bảo trì. Chức năng : -Thêm một tổ mới để phụ trách các công việc tùy theo chức năng của tổ. -Xóa bỏ một tổ phụ trách công việc không cần thiết nữa. -Chỉnh sửa tên tổ phụ trách nếu có sai sót về chức năng của tổ. -Thoát : thoát khỏi form đang sử dụng 62 Form Nhà Cung Cấp : Form cung cấp thông tin cho người dùng bao gồm : tên các nhà cung cấp, sản xuất thiết bị cho nhà máy, địa chỉ cụ thể của từng nhà cung cấp để có thể thuận tiện liên lạc khi cần thiết. Chức năng : -Thêm một nhà cung cấp mới vào hệ thống danh sách các nhà cung cấp thiết bị của nhà máy. -Xóa bỏ nhà cung cấp khi không còn sử dụng thiết bị của nhà cung cấp đó nữa. -Chỉnh sửa thông tin nhà cung cấp khi có sai sót về tên hoặc địa chỉ của nhà cung cấp, cập nhật chỉnh sửa số điện thoại, mail, … -Xem : In ra danh sách các nhà cung cấp thiết bị cho nhà máy. -Thoát : thoát khỏi form đang sử dụng. 63 Form Phiếu Bảo Trì : Form phiếu bảo trì có hai tùy chọn : Xuất ra danh sách thiết bị bảo trì trong tháng và xuất ra danh sách chi tiết công việc cho thiết bị. Khi người dùng chọn mục “Danh sách thiết bị bảo trì trong tháng” , combobox lựa chọn thiết bị cụ thể sẽ bị bôi mờ. Người dụng chọn tháng/năm để hệ thống tìm kiếm và xuất ra danh sách các thiết bị đã được lập lịch bảo trì trong tháng/năm đó. Khi người dụng chọn mục “Chi tiết công việc cho thiết bị”, combobox chọn thiết bị sẽ hiện ra cho người dùng chọn thiết bị cần xem chi tiết công việc. Người dùng cũng cần phải chọn tháng/năm để hệ thống tìm kiếm và xuất ra danh sách công việc bảo trì cụ thể cho thiết bị đó nếu tìm thấy dữ liệu phù hợp trong phiếu bảo trì. -Chức năng xem để người dùng có thể xem thông tin trực tiếp ngay bên khung bên dưới của giao diện form. 64 -Chức năng in để hệ thống xuất ra file dạng báo cáo khi người dùng cần thiết phải lập hồ sơ báo cáo lên cấp trên hoặc đưa xuống cho tổ phụ trách bảo trì. Form Tài Khoản : . Form quản lý thông tin tài khoản của người sử dụng chương trình quản lý. Phần danh sách tài khoản chỉ hiện tên tài khoản và ẩn đi phần mật khẩu để bảo mật thông tin tài khoản cho người dùng. Chức năng : -Thêm một tài khoản mới. -Sửa lại tên hoặc mật khẩu của tài khoản. Khi làm việc này sẽ cần thao tác nhập lại mật khẩu. -Xóa một tài khoản sử dụng khỏi hệ thống. -Thoát : thoát khỏi form đang sử dụng. 65 Một số mẫu báo cáo trong chương trình : -Danh sách các nhà cung cấp thiết bị cho nhà máy : 66 -Danh sách các thiết bị được sắp xếp theo từng dây chuyền sản xuất riêng biệt , bao gồm các thông tin như tên thiết bị, kiểu bảo trì, định kỳ , nhà cung cấp. 67 -Danh sách nội dung chi tiết công việc bảo trì cho từng thiết bị, bao gồm tên của từng thiết bị, kiểu bảo trì của thiết bị, định kỳ cụ thể của từng công việc bảo trì , tổ phụ trách bảo trì. -Dựa vào nội dung chi tiết này , hệ thống sẽ xuất lịch bảo trì cho từng thiết bị cũng như cho toàn bộ các thiết bị khi cần lập lịch bảo trì trong tháng/năm. 68 Danh sách các thiết bị được bảo trì trong tháng/năm : Khi người dùng chọn tháng/năm và bấm nút in ở phiếu bảo trì, danh sách các thiết bị được bảo trì trong tháng sẽ được xuất ra dưới dạng báo cáo : Phiếu này sẽ được có tác dụng bàn giao danh sách các thiết bị cần bảo trì trong tháng. Phiếu sẽ được ký giữa hai bên giao và nhận. Bên giao là ban kỹ thuật nhà máy, bên nhận là tổ phụ trách bảo trì. Trong phiếu còn có hai cột ngày giao và ngày trả để xác định rõ thời gian bàn giao. 69 Danh sách công việc cụ thể cho từng thiết bị cần bảo trì trong tháng/năm. Nội dung phiếu bao gồm : mô tả chi tiết công việc cho từng cụm chi tiết của một thiết bị cụ thể theo lịch bảo trì. Trong phiếu có ghi rõ ngày bắt đầu và ngày kết thúc bảo trì. Đơn vị thực hiện, kết quả thực hiện, công việc phát sinh (nếu có) , ký tên. Dựa vào thông tin chi tiết của phiếu cho từng thiết bị , hệ thống sẽ lập ra một lịch bảo trì cho toàn bộ các thiết bị của nhà máy theo tháng/năm. 70 II. Giới thiệu công cụ thực hiện : 1. Giới thiệu sơ lược VISUAL STUDIO.NET : 1.1 Tổng quan về ASP.NET : Hệ điều hành được Microsoft xem là tập hợp bao gồm nhiều đối tượng hoạt động tương tác lẫn nhau.Chương trình của bạn là một đối tượng .Microsoft gọi mô hình này với tên gọi khá phổ biến là COM (Component Object Model).Tất cả mọi thứ đều quy về đối tượng với phương thức ,thuộc tính và dịch vụ mà đối tượng có thể cung cấp.Phát triển hơn nữa gicrosoft mở rông COM thành kiến trúc COM+ cho phép các đối tượng COM mở rộng giao tiếp với nhau trên mọi nền Windows ,máy chủ(server),máy khách (client) đâu đâu cũng là các thành phần đối tượng có thể giao tiếp và triệu gọi xuyên suốt. Với sự bùng nổ Internet,Microsoft một lần nữa lại đưa mô hình kiến trúc COM+ thành mô hình đối tượng cao hơn ảnh hưởng đến toàn bộ hệ điều hành.Kiến trúc này mang khung dịch vụ web kế tiếp-Next Generation Web Service Framwork hay NGWSG.Tuy mang tên Web nhưng thực tế kiến trúc này đã ăn sâu vào hệ điều hành.NGWSF bổ sung các dịch vụ mới cho các đối tượng ứng dụng phân tán COM+ bao gồm : -Một tập các thư viện lập trình phong phú và thống nhất. -Bộ thực thi chương trình đa ngôn ngữ. -Đơn giản hóa quá trình tạo lập,phân phối và bảo trì ứng dụng. -Tăng tính mềm dẻo và khả chuyển cho các ứng dụng phân tán. -Bảo vệ các phầm mềm hiện có và giảm đầu tư về đào tạo. Kiến trúc NGWSF hoàn chỉnh mọi kiểu ứng dụng từ đóng gói,phát triển bảo trì,kiểm tra các ứng dụng trên trình khác (client) cho đến các ứng dụng phân tán phức tạp trên trình chủ(server).Toàn bộ khái niệm NGWSF là một phần dực trên ý tưởng và nền tảng của kiến trúc “Ứng dụng Internet phân tán” (DNA-Distributed Internet Application) 71 Bộ khung NGWSF không đơn thuần chỉ dành riêng cho ASP.NET mà nó ảnh hưởng đến tất cả các ứng dụng chạy trên Windows trong tương lai.Bộ khung thực thi(runtime framework) được Windows kiểm soát trên toàn bộ hệ điều hành đối với mọi ứng dụng trong đó ASP.NET chỉ là một bộ phận. Khung làm việc NGWSF cung cấp bộ máy thực thi mã lệnh (execute engine) cùng với tập hợp các lớp hay thành phần hướng đối tượng có thể sử dụng để tạo nên ứng dụng.Bộ khung này làm việc như là lớp giao tiếp giữa ứng dụng và hạt nhân của hệ điều hành.Tầng trung gian này sẽ cho phép các ứng dụng sử dụng tốt hơn các ưu điểm của hệ điều hành,đơn giản hóa quá trình phát triển và phân phối ứng dụng trong môi trường thương mại đầy cạnh tranh hiện nay. Để đạt mục đích này,bộ khung thực thi runtime của NGWSF đã cài đặt rất nhiều đặc điểm mà lập trình viên hay một môi trường lập trình cụ thể nào đó phải tự cài đặt trước đây.Bộ khung này cung cấp các cơ chế như:Tự động thu gom rác bộ nhớ (garbage collector),tập các đối tượng đầy đủ những chức năng phục vụ cho những công việc lập trình thông thường nhất.Tăng khả năng bảo mật và an toàn cho ứng dụng.Chức năng bảo mật sau cùng rất quan trọng ,nhất là đối với các chương trình mở rộng triệu gọi thông qua mạng Internet như ngày nay Một trong những ưu điểm nổi bật của bộ khung thực thi cung cấp cho bạn môi trường thực thi trung lập về ngôn ngữ.Tất cả mã lệnh viết bằng ngôn ngữ lập trình nào điều được biên dịch thành ngôn ngữ trung gian gọi là IL(Intermediate Language).Bộ khung thực thi sẽ tạo ra mã nhị phân cuối cùng hình thành nên ứng dụng và điều khiển mã.Đối với trang ASP.NET mã nguồn sẽ được dịch ra mã IL và chỉ có mã IL được gọi thực thi.Khi mã nguổn thay đổi thì mã IL của trang ASP.NET sẽ được biên dịch lại.Các trang ASP.NET còn giữ trong vùng đệm cache sẽ bị hủy bỏ và được thay bằng các trang biên dịch ASP.NET với mã IL mới.Cho dù bạn sử dụng Visual Basic ,C#,Jscript ,Perl hay bất kỳ ngôn ngữ hỗ trợ nào khác ,mã IL được biên dịch cũng sẽ như nhau.Chúng là mã thực thi trong bộ khung NGWSF. 72 Một ưu điểm nữa là bạn có thể gọi mã lệnh của một ngôn ngữ lập trình hoàn toàn khác với ngôn ngữ lập trình đang được dùng để viết ứng dụng.Nghĩa là bạn có thể tạo ra đối tượng từ một ngôn ngữ,sau đó có thể triệu gọi hay thay đổi nội dung đối tượng từ một ngôn ngữ khác.Ví dụ như bạn có thể tạo ra một đối tượng từ ngôn ngữ C# sau đó kế thừa và tạo ra một đối tượng mới từ ngôn ngữ Visual Basic(VB) như thêm vào phương thức ,thuộc tính ,thay đổi hay đè chồng lên các phương thức thay đổi trước đó…Thực tế một phần của bộ khung NGWSF và toàn bộ mô hình ASP.NET được cài đặt bên trong bằng C# thay vì C++. Cơ sở hạ tầng của ứng dụng web : Hạ tầng của các ứng dụng Web nằm trong một phần của kiến trúc .NET NGWSF.Chúng bao gồm các dịch vụ Web và trang ASP ,ASP.NET.Cùng với bộ khung mới của môi trường thực thực thi ứng dụng .NET,các ứng dụng và dịch vụ web đưa ra những đặc điểm nổi bật sau đây:Hỗ trợ giao diện người dùng. Các thành phẩn điều khiển đa năng (rich control) là một phần trong cài đặt của ASP.NET.Những điều khiển này giúp bạn tạo ra giao diện web nhanh chóng và đơn giản.Thành phần rich control chạy trên Server và có khả năng tạo ra mã HTML tương thích với hầu hết các trình duyệt cũ.Đồng thời bạn cũng có thể yêu cầu sinh mã tận dụng các tính năng nâng cao hỗ trợ bởi trình duyệt phía máy khách như HTML 4.0 ,các dịch vụ và hỗ trợ bởi Internet explore 4,5,6...Bạn có thể mở rộng ,kế thừa và tạo ra các thành phần điều khiển đa năng khác dựa trên các thành phần chuẩn của thư viện sẵn có. Hỗ trợ truy xuất dữ liệu : Môi trường NGWSF cung cấp phiên bản mới của ADO gọi là ADO+ cho phép truy xuất dữ liệu bất kể khuôn dạng hoặc vị trí của dữ liệu.ADO+ thiết kế theo mô hình hướng đối tượng trên dữ liệu quan hệ,chúng cho phép các nhà phát triển có khả năng trích rút dữ liệu từ các nguồn phân tán khác nhau. ADO+ cũng tăng cường khả năng hỗ trợ dữ liệu XML .Bạn có thể tạo ra tập dữ liệu các recordset từ XML ( còn gọi là dataset trong XML) lưu trữ ,đóng gói và truyền đi trên mạng.Dữ liệu XML có thể đọc và hiểu bởi rất nhiều ứng dụng Internet 73 Khả năng mở rộng dành cho các ứng dụng phân tán : Hai yêu cầu thiết yếu đối với tất cả các ứng dụng dựa trên nền web đó là hệ điều hành nền(platform) phải vững chắc và khả năng mở rộng trên môi trường truy xuất lớn cho phép đồng thời xử lý nhiều kết nối.Môi trường thực thi NGWSF cung cấp các chức năng tự động kiểm tra lỗi và phát hiện những trường hợp quá tải.NGWSF sẽ tìm cách khởi động và tái tạo lại các ứng dụng cũng như các thành phần đối tượng để khả năng phục vụ của chúng cho kết nối tốt hơn.Điều này sẽ giảm thiểu những lỗi như tài nguyên hệ thống cạn kiệt ,kết nối tắc nghẽn… 1.2 ASP.NET(ACTIVE SERVER PAGE.NET) ASP.NET là một công nghệ có tính cách mạng dùng để phát triển các ứng dụng mạng hiện nay cũng như trong tương lai. ASP.NET là một platform phát triển các ứng dụng web hợp nhất cung cấp các dịch vụ cần thiết cho việc xây dựng các ứng dụng Enterprise – class Web.ASP.NET được thiết kế tương thích với các ứng dụng ASP trước đó. ASP .NET được biên dịch, dựa trên môi trường .NET cho phép tạo ra các ứng dụng trong bất cứ ngôn ngữ lập trình nào tương thích .NET chẳng hạn như C#, Visual Basic.NET, Jscrip.NET. Ngoài ra, toàn bộ .NET Framework sẵn sàng cho các ứng dụng ASP.NET, các nhà phát triển có thể có lợi ích từ những kỹ thuật sau bao gồm : managed common langguage runtime environment, an toàn kiểu… ASP.NET được sử dụng chung với các lớp lập trình mà nó có thể tạo các ứng dụng Web một cách dễ dàng cho người lập trình. ASP.NET cung cấp cách truy cập giao diện HTML chung và nó chạy trên chương trình máy phục vụ nhưng thể hiện kết quả thông qua HTML (ví dụ như text box chẳng hạn). Giao diện ASP.NET làm cho việc phát triển các ứng dụng Web trở nên nhanh hơn do bởi các đối tượng điều khiển chung này. Như một kết quả (của) các lớp lập trình chung và những đặc tính chuẩn của ASP.NET, các nhà phát triển tiêu tốn ít thời gian hơn khi viết các mã mới và cần nhiều thời gian hơn khi sử dụng các mã đã có. ASP.NET được sử dụng ở phần trên của hai thành phần thực thi ngôn ngữ chung CLR và các ngôn ngữ lập trình hợp nhất để tạo ra các dịch vụ Web. 74 ASP.NET giúp ta phát triển và triển khai các ứng dụng về mạng trong một thời gian kỷ lục vì nó cung cấp cho ta một kiểu mẫu lập trình dễ dàng và gọn gàng nhất.Ngoài ra các trang ASP.NET có thể làm việc với mọi browser hiện nay như Internet Explorer(IE),Netscape,Opera,AOL...mà không cần phải thay đổi mã nguồn vất vả như trước. ASP.NET có khả năng lưu trữ một kết quả chung trong bộ phận memory của trang để gởi giải đáp cho cùng môt yêu cầu từ nhiều khách hàng khác nhau và nhờ đó không chỉ tiết kiệm được sự lập đi lập lại công tác thi hành của một trang web mà còn gia tăng hiệu suất một cách ngoạn mục do hạn chế tối đa việc truy xuất các cơ sở dữ liệu vốn tốn rất nhiều thời gian. ASP.NET tự động dò tìm và phục hồi (detect and recovers) những trở ngại nghiêm trọng như deadlocks hay bộ nhớ (memory) bị rỉ để đảm bảo ứng dụng của bản luôn luôn sẵn sàng mà không làm cản trở việc cung ứng các dịch vụ cần thiết thường lệ. Một số đặc tính nổi bật của ASP.NET Pages(trang ứng dụng) :Sử dụng các thành phần điều khiển có khả năng hoạt động và tương tác với nhau ngay trên trình chủ web server.Đặc điểm này giảm thiểu quá trình viết mã tương tác giữa các trang.Lập trình trong môi trường ASP.NET tuơng tự như lập trình thiết kế trong VB Form và do đó các ứng dụng ASP.NET còn gọi là Web Forms. HTML server Side Controls :Các thành phần điều khiển HTML có khả năng xử lý ngay trên trình chủ dựa vào thuộc tính và phương thức tương tự các họat động của chúng phía trình khách.Những thành phần điểu khiển này còn cho phép kết hợp mã xử lý của trang ASP.NET với một sự kiện nào đó phát sinh phía trình khách được xem như đang diễn ra trên trình chủ(mô hình chuyển giao-deligated). Rich Control : Tập các thành phần điều khiển đa năng .Các Rich Control chạy trên server và có thể tạo ra các phần tử cũng như đối tuợng HTML thích hợp cho trình khách. Ví dụ :(grid),lich(calendar),bảng(table),khung nhìn(list view)..Rich Control còn cho phép bạn ràng buộc dữ liệu và xử lý dữ liệu tương tự như đang viết ứng dụng destop thật sự.Xóa đi biên giới của mô hình khách chủ client/server. 75 Web service : Các dịch vụ web,trang ASP.NET của bạn có thể không cần hiển thị kết xuất cho trình khách.Chúng hoạt động như các chương trình xử lý yêu cầu ở hậu cảnh.Ví dụ trang ASP.NET có thể là một lớp đối tượng cung cấp các phương thức trả về giá trị nào đó khi nhận được yêu cầu từ trình khách. Cấu hình và phân phối : Đơn giản ,dễ dàng với các file cấu hình theo định dạng XML .Các thành phần đối tượng không cần phải đăng ký với hệ thống trước khi sử dụng nữa(không còn dùng đến regsvr32.exe).Bạn chỉ cần copy các trang ASP.NET hay các đối tượng lên máy chủ,chỉ ra vị trí của chúng và thế là chương trình hay dịch vụ của bạn đã có thể sẵn sàng sử dụng. Tự động quản lý trạng thái Session và Application :Bạn có thể lưu nội dung của Session hay Application của một ứng dụng đặc thù xuống các file trên đĩa để sử dụng lại. Một tập các đối tượng phong phú :ASP.NET hỗ trợ một tập phong phú các thư viện lớp và đối tượng phục vụ cho hầu hết những gì các nhà phát triển cần đến.Bằng những thư viện này công việc viết ứng dụng cho web trở nên đơn giản và dễ dàng hơn bao giờ hết.Ví dụ như bạn có thể sử dụng các thành phần đối tượng « Send Mail« để gửi nhận nhận ,đối tượng mã hóa và giải mã thông tin ,đối tượng đếm số người truy cập Web (counter),đối tượng truy xuất dữ liệu ADO ,đối tượng truy cập các dịch vụ mạng,đối tượng đọc ghi hệ thống file NT,đối tượng ghi ra logfile của hệ điều hành... Các đối tượng nội tại khác như Request ,Respone ,Form ,Cookies ,Servervariables đều được giữ lại và hoàn toàn tương thích với ASP. Độc lâp ngôn ngữ : ASP cho phép bạn biên dịch không phụ thuộc ngôn ngữ, thực hiên tối ưu việc kết hợp các ngôn ngữ khác nhau. Chúng ta có thể sử dụng C#, VB.NET hay kể cả C++ để xây dựng trang ASP.NET. Dễ phát triển : ASP.NET cho phép khai báo và viết mã đơn giản. Tách mã và nội dung hai thành phần khác nhau : sử dụng trang Code Behide (.vb, .cs) chứa mã và trang asp chứa giao diện người dùng. Tính mềm dẻo à khả năng cung cấp. Hỗ trợ nhiều trình khách 76 Các Web form Controls ngoài việc có thể xuất mã trên trình duyệt còn cho phép xuất ra tất cả các điều khiển của Platform khác như wireless phone, palm, pager… Xử lý trình chủ dùng phát biểu Runat = server . Thay vì sử dụng mô hình tích hợp DLL, COM, DCOM trước đây, với công nghệ ASP.NET ta có thể sử dụng dịch vụ đơn giả hơn đó là Web Services. ASP.NET và ASP 3.0. Mặc dù ASP 3.0 ra đời chưa lâu, Microsoft đã và đang nỗ lực cho một công nghệ web xử lý phía máy chủ hoàn toàn mới đó là ASP.NET (còn được biết đến với một tên khác là ASP+ ở bản beta) .Microsoft gọi công nghệ này với môt tên hấp dẫn hơn là” Dịch vụ web thế hệ kế tiếp” ( Next Generation Web Service) ASP.NET được thiết kế tương thích với các phiên bản ASP trước đó.Chỉ cần thay đổi rất ít khi chuyển ứng dụng sẵn có từ ASP sang ASP.NET. Hiện tại ASP chỉ là ngôn ngữ kịch bản phi định kiểu(none type) dựa trên VBScript hay Jscript.ASP không tận dụng được các ngôn ngữ ràng buộc kiểu mạnh như C++ hay Visual Basic.ASP.NET cho phép sử dụng ngôn ngữ trung lập.Trang ASP.NET có thể viết bằng rất nhiều ngôn ngữ như VBScript ,Jscript ,Visual Basic ,C++,C#,Perl… Một bất tiện của các trang ASP đó là mã lệnh và giao diện(định dạng bằng HTML) trộn lẫn với nhau.Khi phát triển các ứng dụng Web lớn thường các dự án tách ra làm hai nhóm.Một nhóm thiết kế giao diên và một nhóm viết lập trình.Kết quả cuối cùng thường là sự trộn lẫn giữa phần thiết kế giao diện và mã lệnh ASP để tạo ra một file chương trình duy nhất.Các trang ASP của ứng dụng do đó rất khó bảo trì khi muốn them vào các mã lập trình mới hay thay đổi giao diện.ASP.NET cho phép tách rời giữa mã lập trình và nội dung tài liệu. Trong các phiên bản ASP trước ,hầu như phải viết mã chương trình để quản lý mọi chuyện.Bạn muốn quản lý trạng thái của các trường nhập liệu trong FORM ,cần phải viết mã.Bạn muốn kiểm tra tính hợp lệ của dữ liệu(validate)do người dùng nhập vào cần phải viết mã.ASP.NET thật sự là mô hình đối tượng thành phần loại bỏ rất nhiều công đọan viết mã chương trình cho lập trình viên Web thường phải làm.ASP.NET cung cấp các thành phần điều khiển họat động phía máy chủ(server side control) họat động theo hướng xử lý sự kiện(tương tự các sự kiện xử lý trên Form của chương trình 77 Visual Basic).Bạn chỉ cần khai báo các thành phần điều khiển cần sử dụng và trong hầu hết các trường hợp bạn không cần phải viết thêm mã lệnh.Mọi việc kiểm soát trạng thái và tuơng tác với thành phần điều khiển đều được trình chủ Web Server với kiến trúc ASP.NET lo liệu. Ngày nay thế giới đã thay đổi nhanh chóng với các thiết bị cầm tay như điện thoại di động ,máy Palm ,TV có thể kết nối Internet.Những thiết bị này đều chuẩn bị khả năng kết nối Internet và máy chủ phục vụ Web.Công việc xử lý trên máy chủ là rất nhiều.Chẳng hạn ngoài việc xử lý trang HTML bạn còn phải có khả năng tạo các trang WML phục vụ cho điện thoại di động,xử lý và trao đổi dữ liệu XML…Những công việc này có thể xử lý bằng ASP nhưng cũng cần them các thư viện phụ và đòi hỏi quá trình viết mã rất công phu.ASP.NET sẵn có các dịch vụ này cho để bạn sử dụng. Bên cạnh đó chúng ta cần phải có khả năng xây dựng các đối tượng phân tán có thể triệu gọi từ xa và sử dụng lại trên nhiều hệ điều hành.Các đối tượng phải dễ thiết kế và cài đặt khi đưa vào sử dụng.ASP.NET cung cấp kiến trúc hạ tầng để xây dựng các ứng dụng phân tán trên Web theo phương thức triệu gọi SOAP (Simple Object Access Protocol-Giao thức truy xuất đối tuợng giản đơn) cho phép thực hiện chuyển đổi dữ liệu XML phục vụ cho môi trường thương mại điện tử B2B(Business to Business).ASP.NET cung ấp đầy đủ các dịch vụ từ bảo mật đến cấp phát bộ nhớ ,thu gom rác ,theo dõi sự quá tải của các thành phần đối tượng,cân bằng tải(load balane)giảm thiểu tối đa các kết nối tốn tài nguyên… Để đạt được những mục tiêu này ASP đã thay đồi toàn bộ thành môi trường lập trình mới .Visual Studio.NET của Microsoft là công cụ tuyệt vời nhất để bạn xây dựng các ứng dụng Web,đặc biệt là ASP.NET.Môi trường lập trình mới cùa Microsoft trên nền Windows không phân biệt ngôn ngữ.ASP.NET có thể viết bằng bất kỳ ngôn ngữ nào của Visual Studio.NET như C#,VB,C++. Tập tin của ASP.NET(ASP.NET file) có extension là .ASPX ,còn tập tin của ASP là .ASP Tập tin của ASP.NET(ASP.NET file) được phân tích ngữ pháp(parsed) XSPISAPI.DLL ,còn tập tin của ASP được phân tích bởi ASP.DLL. 78 ASP.NET là kiểu mẫu lập trình phát động bằng sự kiện(event driven),còn trang ASP được thực thi theo thứ tự tuần tự từ trên xuống. ASP.NET sử dụng trình biên dịch (compiled code) nên rất nhanh ,còn ASP sử dụng trình thông dịch(interpreted code) do đó hiệu suất và tốc độ phát triển cũng thua sút hẳn. Cơ cấu hoạt động của trang ASP.NET. Khi trình khách lần đầu tiên yêu cầu trang ASP.NET ,trình chủ Web Server sẽ kiểm tra xem trang ASP.NET đã được biên dịch và lưu trong bộ đệm(cache) chưa .Nếu chưa môi trường thực thi .NET sẽ biên dịch trang ASP.NET mà trình khách yêu cầu và đưa mã trang đã biên dịch vào vùng đêm cache.Trang ASP.NET sẽ được biên dịch ra mã thực thi trung gian IL(khác với mã nhị phân của các trình ứng dụng.exe)Vì lý do này mọi ngôn ngữ lập trình có khả năng tạo ra mã IL đều có thể được dùng để viết trang ASP.NET.Do được biên dịch và lưu trong vùng đệm nên ứng dụng xây dựng dựa trên trang ASP.NET chạy nhanh hơn các trang ASP. Web Clients ASP.NET Applications IIS .NET Framework Win NT/2000 Operating System 79 Như mô tả ở hình trên, ta thấy tất cả các web clients truyền thông với các ứng dụng ASP.NET thông qua các IIS. IIS giải mã và xác nhận tuỳ ý các request. Nếu Allow Anonymous được đặt là true thì sẽ không có việc chứng thực. IIS cũng tìm kiếm các tài nguyên được yêu cầu và nếu client được cấp quyền thì sẽ trả về các tài nguyên tương ứng. 1.3 Data Access Application Block : ASP.NET còn là một ngôn ngữ lập trình cở sở dữ liệu khá phổ biến ngày nay. Trong hệ thống quản lý thiết bị và bảo trì hệ thống còn sử dụng bộ thư viện applicationBlock.trong enterprise Library. Enterprise Library - Data Access Application Block (DAAB) cung cấp một số chức năng hết sức đơn giản để truy xuất, thực thi dữ liệu. Các ứng dụng có thể vận dụng DAAB dễ dàng và linh hoạt trong nhiều trường hợp như truy xuất dữ liệu để hiển thị (Select), các thao tác (Insert, Delete, Update, ...) trên cơ sở dữ liệu. DAAB hỗ trợ nhiều cách liên kết đến dữ liệu như sử dụng (thủ tục trữ sẵn) stored procedure hoặc viết lệnh trực tiếp từ mã lệnh (in-line SQL). Ngoài ra, DAAB còn cung cấp một số kỹ thuật như tạo tham số (parameters), lưu đệm (caching) tham số và cung cấp nhiều phương thức (methods). Tóm lại, DAAB là một giải pháp tiện ích giúp các lập trình viên tiết kiệm nhiều thời gian và công sức. Xem hai đoạn cose sau: Code1: string conString = "server=sqlserver;uid=sa;pwd=tc0ffsh0re;database=Northwind"; SqlConnection conn = new qlConnection(conString); string sqlQuery = "select top 10 FirstName, LastName from Employees"; conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.CommandType = CommandType.Text; cmd.Connection = conn; cmd.CommandText = sqlQuery; SqlDataAdapter da = new SqlDataAdapter(cmd); 80 da.Fill(ds); conn.Close(); Code2: string conString = "server=sqlserver;uid=sa;pwd=password;database=Northwind"; SqlConnection conn = new SqlConnection(conString); string sqlQuery = "select top 10 FirstName, LastName from Employees"; DataSet ds = SqlHelper.ExecuteDataset(conn, CommandType.Text, sqlQuery); Hai đoạn code này chỉ nhằm mục đích lấy dữ liệu từ câu truy vấn đổ vào dataset vào có kết quả giống hệt nhau. Đoạn code dưới dùng một lớp SqlHelper để "help" get data còn đoạn code trên là code chuẩn mà tất cả chúng ta phải làm khi muốn connect đên database. Lớp SqlHelper này là một tool do Microsoft cung cấp free giúp chúng ta thao tác với SQL Server. Sử dụng bộ thư viện này sẽ giúp ta lập trình trên cơ sở dữ liệu nhanh hơn, giảm thời gian hoàn thanh và tiện lợi và cấu trúc viết không còn phức tạp nhiều. 1.3.1Cấu trúc một số lệnh được dùng : Câu lệnh để tạo một đối tượng lệnh sql để thực thi một stored procedure và thêm các tham số lựa chọn được cung cấp. Lệnh : CreateCommand SqlCommand command = CreateCommand(conn, "AddCustomer", "CustomerID", "CustomerName") Lệnh : ExecuteNonQueryTypedParams int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders") Lệnh : ExecuteReader ExecuteReader(connectionString, CommandType.StoredProcedure, spName, commandParameters) 81 Lệnh : ExecuteNonQuery int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders") Lệnh : ExecuteNonQuery có tham số int result =ExecuteNonQuery(connString, "PublishOrder",24,36) Lệnh : UpdateDataset UpdateDataset(conn,insertCommand, deleteCommand, updateCommand, dataset,"Order") Lệnh : ExecuteScalar. int orderCount = CInt(ExecuteScalar(connString, CommandType.StoredProcedure, "GetOrderCount")) Lệnh : ExecuteScalar có tham số. int orderCount = Cint(ExecuteScalar(connString, CommandType.StoredProcedure, "GetOrderCount", new SqlParameter ("@prodid", 24))). 2. Giới thiệu hệ quản trị cơ sở dữ liệu SQL SERVER : 2.1 Tổng quan về SQL SERVER : Để lập trình trên cơ sở dữ liệu phục vụ nhu cầu của công ty, có thể là người lên kế hoạch, thiết kế, và cài đặt các cơ sở dữ liệu... Có thể phải lập trình dựa trên một cơ sở dữ liệu đang tồn tại mà trước đó do một chuyên viên phát triển cơ sở dữ liệu khác đã tạo. Bởi vì cơ sở dữ liệu tạo thành là một phần then chốt của nhiều ứng dụng doanh nghiệp, việc hiểu cách mà các cơ sở dữ liệu được tạo và các tùy chọn nào thông thường được sử dụng là điều quan trọng. Microsoft SQL Server 2005 là một công cụ cho phép thiết kế cơ sở dữ liệu, các cách tính toán trên dữ liệu, và các hàm có sẳn để hổ việc lập trình trên các công cụ lập trình như Asp.net, Foxpro, java, … một cách nhanh chóng và thuận tiện. SQL Server 2005 có thể cho thấy các cách thiết lập, các tùy chọn cơ sở dữ liệu, và cách xem cấu trúc dữ liệu (metadata) của một cơ sở dữ liệu và các đối tượng. 82 Có thể sử dụng SQL Server thực hiện việc xử lý giao dịch, lưu trữ và phân tích dữ liệu. Các tính năng của SQL SEVER để thực hiện , xử lý giao dịch, lưu trữ và phân tích dữ liệu : ữ liệu cho các giao dịch (transactions) và phân tích (analysis). -Quản lý kho d -Khả năng lưu trữ dữ liệu với các kiểu dữ liệu có miền giá trị rộng, bao gồm text, numeric, Extensible Markup Language (XML), và các đối tượng lớn. -Đáp trả các yêu cầu từ các ứng dụng client. -Sử dụng Transact-SQL, XML, hay các câu lệnh SQL Server khác để gởi các yêu cầu giữa ứng dụng client và SQL Server. Hệ quản trị cơ sở dữ liệu SQL Server là đáng tin cậy đối với: ·Việc duy trì các mối quan hệ giữa các đối tượng dữ liệu trong một cơ sở dữ liệu. ·Việc bảo đảm rằng dữ liệu được lưu trữ đúng đắn và đứng đắn và các quy tắc định nghĩa các quan hệ giữa các đối tương dữ liệu là không bị xâm phạm. ·Việc khôi phục tất cả dữ liệu tới một điểm “point of known consistency”, trong sự kiện lỗi hệ thống. 2.2 Các lưu ý khi hoạt định một cơ sở dữ liệu : Mục tiêu của kho dữ liệu (Purpose of data storage): các cơ sở dữ liệu OLTP và OLAP có các mục tiêu khác nhau và vì vậy các yêu cầu thiết kế cũng sẽ khác nhau. Tần suất giao dịch (Transaction throughput) : các cơ sở dữ liệu OLTP thường có nhu cầu cao đối với số lượng các giao dịch có thể được xử lý mỗi phút, giờ, hay mỗi ngày. Một thiết kế đạt hiệu suất cao liên quan đến một mức độ thích hợp của sự chuẩn hóa (normalization), các chỉ mục (indexes), và sự phân chia dữ liệu có thể đạt được một mức độ rất cao của tần suất giao dịch. Khả năng tăng trưởng về khía cạnh vật lý của kho lưu trữ (Potential growth of physical dataưữ storage) Số lượng dữ liệu lớn đòi hỏi phần cứng phù hợp đối với bộ nhớ (memory), dung lượng đĩa cứng (hard disk), và khả năng của đơn vị xử lý trung tâm (central processing unit - CPU). Việc ước lượng số lượng dữ liệu mà cơ sở dữ liệu của bạn sẽ phải lưu trữ trong nhiều tháng và nhiều năm tiếp theo sau sẽ bảo đảm rằng cơ sở dữ liệu của bạn sẽ duy trì làm việc hiệu quả. Bạn có thể định cấu hình các cơ sở dữ liệu 83 sao cho các tập tin tăng trưởng một cách tự động với bước tăng theo thông số xác định nào đó đến một kích thước tối đa đã được chỉ định. Tuy nhiên, việc tăng trưởng tự động tập tin có thể ảnh hưởng đến hiệu suất hoạt động. Trong hầu hết các giải pháp cơ sở dữ liệu server-based, bạn nên tạo cơ sở dữ liệu với kích thước các tập tin phù hợp, theo dõi giám sát không gian thường sử dụng, và chỉ cấp phát thêm không gian cho tập tin chỉ khi thấy cần thiết. File location: nơi mà bạn đặt các tập tin có thể có tác động ảnh hưởng về hiệu suất thực thi. Nếu có thể, bạn nên sử dụng nhiều ổ đĩa, bạn có thể dàn trải các tập tin cơ sở dữ liệu của bạn trên nhiều hơn một đĩa. Điều này cho phép SQL Server nhận được sự thuận lợi của việc có nhiều kết nối và nhiều đầu đọc đĩa cho việc đọc và ghi dữ liệu hiệu quả. Để tạo một cơ sở dữ liệu có thể sử dụng các công cụ trực quan trong SQL Server Management Studio hoặc sử dụng câu lệnh CREATE DATABASE của Transact- SQL. Ví dụ sau đây trình bày cách tạo một cơ sở dữ liệu bằng cách sử dụng Transact- SQL : CREATE DATABASE TestDB ON (NAME = 'TestDB_Data', FILENAME = 'D:\DATA_ViDu\TestDB_Data.mdf', SIZE = 20 MB, FILEGROWTH = 0) LOG ON (NAME = 'TestDB_Log', FILENAME = 'D:\DATA_ViDu\TestDB_Log.ldf', SIZE = 5 MB, FILEGROWTH = 0) Nếu muốn, thay vì sử dụng câu lệnh Transact – SQL có thể dùng công cụ trực quan SQL Server Management Studio để tạo một cơ sở dữ liệu 84 (Hình I.1) Hình I.1 trình bày cách thực thi câu lệnh trên bằng cách sử dụng trình soạn thảo Query trong SQL Server Management Studio 2.3 Các đặt trưng trong một giao dịch của SQL SERVER : Atomicity (Tính nguyên tử): Một giao dịch là một đơn thể nguyên tử (atomic unit), có nghĩa là nó không thể được chia nhỏ, tất cả các các hành động đã được định nghĩa trong giao dịch được hoặc hoàn hoàn tất hoặc chẳng có hành động nào trong chúng được hoàn tất. Consistency (Tính nhất quán): Kết quả tác động của một giao dịch đối với dữ liệu luôn bảo đảm tính nhất quán của chúng. Isolation (Tính cô lập): Một giao dịch hành động trong sự cô lập tách rời khỏi các hoạt động cơ sở dữ liệu khác. Các hoạt động cơ sở dữ liệu khác không có hiệu lực với giao dịch. Durability (Tính bền vững): Bảo đảm rằng một khi giao dịch ủy thác kết quả của nó được duy trì cố định không bị xóa khỏi CSDL dù giao dịch có thành công hay không.Tính bền vững dẫn đến khái niệm phục hồi CSDL(database recovery). SQL Server hỗ trợ không tường minh (implicit) các giao dịch đối với các lệnh riêng lẻ sửa đổi dữ liệu và tường minh các giao dịch đối với các lệnh phức tạp mà chúng phải được thực thi như là một đơn thể. 85 Phân Loại Loại View Diển Giải Databases and files sys.database_files Trả về một dòng đối với mỗi tập tin database Objects sys.columns Trả về một dòng đối với mỗi cột (columns) của một đối tượng chứa các cột trong database Objects sys.events Trả về một dòng đối với mỗi sự kiện và một trigger hay một hành động nào đó kích hoạt Objects sys.indexes Trả về một dòng của mỗi index hay heap, danh sách của mỗi đối tượng Objects sys.tables Trả về một dòng đối với mỗi table trong database Objects sys.views Trả về một dòng đối với mỗi view trong database Schemas sys.schemas Trả về một dòng đối với mỗi schemas đã định nghĩa trong database Security sys.database_permissions Trả về một dòng đối với mỗi permission đã định nghĩa trong database Security sys.database_principals Trả về một dòng đối với mỗi Sercurity principal trong database Security sys.database_role_members Trả về một dòng đối với mỗi thành viên của một database role 86 2.4 Thao tác trên dữ liệu SQL : SQL là một cú pháp để thực hiện các truy vấn. Nhưng ngôn ngữ SQL cũng chứa các cú pháp cập nhật các mẩu tin (record), chèn các mẩu tin mới và xóa các mẩu tin đang tồn tại. Các lệnh truy vấn và cập nhật này thuộc dạng Ngôn ngữ Thao tác Dữ liệu (Data Manipulation Language - DML) một phần của SQL : -Lệnh SELECT – trích dữ liệu từ một cơ sở dữ liệu Phát biểu SELECT chọn các cột dữ liệu từ một cơ sở dữ liệu. Dùng phát biểu này để chọn (SELECT) thông tin từ (FROM) một bảng như sau: Cú pháp : SELECT column_name(s) FROM table_name -Lệnh WHERE dùng để chỉ định một tiêu chuẩn (criteria) chọn. Cú pháp : SELECT column FROM table WHERE column condition value = Bằng Không bằng > Lớn hơn < Nhỏ hơn >= Lớn hơn hay bằng <= Nhỏ hơn hay bằng LIKE Giống như Chú ý: Vài phiên bản SQL toán tử có thể được viết thành != -Toán tử AND & OR AND và OR kết nối hai hay nhiều điều kiện trong một mệnh đề WHERE. Toán tử AND hiển thị một cột nếu TẤT CẢ các điều kiện liệt kê đều đúng. Toán tử OR hiển thị một cột nếu MỘT TRONG các điều kiện liệt kê là đúng. -Toán tử BETWEEN ... AND Toán tử BETWEEN ... AND chọn tất cả các trị trong khoảng giới hạn giữa hai trị. Các trị này có thể là các số, văn bản, hay ngày tháng. -Từ khóa DISTINCT dùng trả về chỉ các trị khác biệt (distinct). 87 Cú pháp : SELECT DISTINCT column-name(s) FROM table-name -Từ khóa ORDER BY dùng sắp xếp kết quả thứ tự kết quả. Cú pháp : SELECT Company, OrderNumber FROM Orders ORDER BY Company -Lệnh INSERT INTO : chèn các dòng mới vào trong một bảng: Cú pháp : INSERT INTO table_nameVALUES (value1, value2,....) -Lệnh UPDATE : cập nhật hoặc thay đổi các dòng Cú pháp : UPDATE table_name SET column_name = new_value WHERE column_name = some_value -Lệnh DELETE dùng xóa một hay nhiều dòng trong một bảng. Cú pháp : DELETE FROM table_name WHERE column_name = some_value -Lệnh COUNT đếm số giá trị một cột nào đó. Cú pháp : SELECT COUNT(column) FROM table -Lệnh AVG trị trung bình của dữ liệu trong một cột có đu7ọc nhờ phép chọn. Các trị NULL sẽ không được tính toán. Cú pháp : SELECT AVG(Age) FROM Persons -Lệnh MAX trả về trị lớn nhất trong một cột. Các trị NULL sẽ không được tính toán. Cú pháp : SELECT MAX(Age) FROM Persons -Lệnh MIN trả về trị lớn nhất trong một cột. Các trị NULL sẽ không được tính toán. Cú pháp : SELECT MIN(Age) FROM Persons. -Lệnh GROUP BY được thêm vào SQL vì các hàm tổng (như SUM) trả về tổng của tất cả các trị trong cột mỗi khi chúng ta gọi đến. Thiếu chức năng GROUP BY, không thể tìm tổng của mỗi nhóm trị riêng trong cột. Cú pháp GROUP BY: SELECT column,SUM(column) FROM table GROUP BY column -Lệnh HAVING được thêm vào SQL vì từ khóa WHERE không thể dùng với các hàm tổng (như hàm SUM). Thiếu từ khóa HAVING sẽ không thể kiểm tra các điều kiện dùng hàm tổng. Cú pháp HAVING : SELECT column,SUM(column) FROM table GROUP BY column 88 -Lệnh HAVING SUM(column) condition value Từ khóa HAVING được thêm vào SQL vì từ khóa WHERE không thể dùng với các hàm tổng (như hàm SUM). Thiếu từ khóa HAVING sẽ không thể kiểm tra các điều kiện dùng hàm tổng. Cú pháp của HAVING : SELECT column,SUM(column) FROM table GROUP BY column HAVING SUM(column) condition value -Lệnh Alter Table phát biểu ALTER TABLE dùng để thêm hay loại bỏ các cột trong một bảng cho trước. ALTER TABLE table_name ADD column_name datatype ALTER TABLE table_name DROP column_name 89 KẾT LUẬN Qua thời gian nghiên cứu và thực hiện đề tài : “Phân tích thiết kế hệ thống thông tin và xây dựng chương trình Quản lý thiết bị - Lập lịch bảo trì” chúng em tới nay đã hoàn thành nhiệm vụ mà yêu cầu đề tài đặt ra. Qua quá trình thực hiện đồ án chúng em đã được trang bị thêm kiến thức về công tác bảo trì đối với các nhà máy sản xuất sản phẩm ở trong nước. Hạn chế của đề tài là việc phải nắm bắt về một lĩnh vực khá mới mẻ đối với những người chuyên về công nghệ thông tin như chúng em. Xây dựng chương trình quản lý trang thiết bị và lập lịch bảo trì cho các nhà máy hiện đang là một vấn đề rất khó khăn và được rất nhiều doanh nghiệp quan tâm. Do thời gian làm đề tài có hạn nên chúng em chỉ giới hạn đề tài ở mức độ Quản lý trang thiết bị và lập lịch bảo trì chứ chưa đủ sức mở rộng ra phạm vi chương trình Quản lý bảo trì. Hướng nghiên cứu tiếp của đề tài này là mở rộng giới hạn quản lý để đạt được tầm chương trình Quản lý bảo trì hoàn thiện hơn, ứng dụng cho các xí nghiệp, nhà máy. Mặc dù đã nỗ lực hết khả năng nhưng chắc chắn luận văn không tránh khỏi những thiếu sót do độ phức tạp của vấn đề, chúng em kính mong được sự chỉ dẫn tận tình của quý thầy cô giáo. SVTH : Châu Minh Danh Lê Việt Đức 90 TÀI LIỆU THAM KHẢO : -Microsoft SQL Server 2005 Implementation and Maintenance - Joseph L. Jorden, Dandy Weyn. -.NET Toàn Tập - Tập 2: C# Và.NET Framework - Lập Trình Visual C# Thế Nào? (Sách Tự Học) -Professional Crystal Reports for Visual Studio .NET by David McAmis. -Lập kế hoạch, điều độ và kiểm soát công tác bảo trì – Khoa Cơ Khí Đại Học Bách Khoa, Biên soạn : PGS.TS. Phạm Ngọc Tuấn. -Phân tích và thiết kế hệ thống thông tin quản lý – Biên soạn : PGS.TS Trần Thành Trai. -SQL Server 2005 – Lập trình nâng cao , tác giả : Phạm Hữu Khang.

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

  • pdfphan_tich_thiet_ke_he_thong_thong_tin_quan_ly_thiet_bi_va_lap_lich_ba_.pdf
Luận văn liên quan