Đề tài Xây dựng hệ thống trợ giúp sắp xếp lịch sử dụng phòng

Tài liệu Đề tài Xây dựng hệ thống trợ giúp sắp xếp lịch sử dụng phòng: PHẦN A: XÂY DỰNG CHƯƠNG TRÌNH CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI TÊN ĐỀ TÀI: XÂY DỰNG HỆ THỐNG TRỢ GIÚP SẮP XẾP LỊCH SỬ DỤNG PHÒNG Đề tài được áp dụng tại trường Đại học Dân lập Kỹ thuật Công nghệ, do sinh viên Ngô Quốc Huy 10102067 khoa Công nghệ thông tin thực hiện dưới sự hướng dẫn của cô Ngô Thị Bích Phượng. PHẠM VI ĐỀ TÀI Qua quá trình khảo sát thực tế tại trường, em nhận thấy công việc sắp xếp lịch sử dụng phòng rất rộng và nhiều phức tạp, nên trong luận vă này em chỉ phân tích và xây dựng một chương trình giới hạn trong một phạm vi cụ thể như sau: Quản lý lưu trữ có giới hạn các thông tin về giáo viên, môn học, lớp học, phòng, khoa_phòng ban,… Xử lý việc tìm kiếm thông tin về phòng. Xử lý việc phân bố phòng. Xuất báo cáo như lịch sử dụng phòng,phiếu đăng ký. TÍNH THỰC TIỄN CỦA ĐỀ TÀI Chương trình này hỗ trợ cho nhân viên phòng đào tạo có thể sắp xếp được lịch sử dụng các phòng dễ dàng, giáo viên có thể tra cứu để biết thông tin về phòng cần tìm. CHƯƠNG 2: TÌM HIỂU HI...

doc84 trang | Chia sẻ: hunglv | Lượt xem: 1244 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Xây dựng hệ thống trợ giúp sắp xếp lịch sử dụng phòng, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
PHẦN A: XÂY DỰNG CHƯƠNG TRÌNH CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI TÊN ĐỀ TÀI: XÂY DỰNG HỆ THỐNG TRỢ GIÚP SẮP XẾP LỊCH SỬ DỤNG PHÒNG Đề tài được áp dụng tại trường Đại học Dân lập Kỹ thuật Công nghệ, do sinh viên Ngô Quốc Huy 10102067 khoa Công nghệ thông tin thực hiện dưới sự hướng dẫn của cô Ngô Thị Bích Phượng. PHẠM VI ĐỀ TÀI Qua quá trình khảo sát thực tế tại trường, em nhận thấy công việc sắp xếp lịch sử dụng phòng rất rộng và nhiều phức tạp, nên trong luận vă này em chỉ phân tích và xây dựng một chương trình giới hạn trong một phạm vi cụ thể như sau: Quản lý lưu trữ có giới hạn các thông tin về giáo viên, môn học, lớp học, phòng, khoa_phòng ban,… Xử lý việc tìm kiếm thông tin về phòng. Xử lý việc phân bố phòng. Xuất báo cáo như lịch sử dụng phòng,phiếu đăng ký. TÍNH THỰC TIỄN CỦA ĐỀ TÀI Chương trình này hỗ trợ cho nhân viên phòng đào tạo có thể sắp xếp được lịch sử dụng các phòng dễ dàng, giáo viên có thể tra cứu để biết thông tin về phòng cần tìm. CHƯƠNG 2: TÌM HIỂU HIỆN TRẠNG VÀ YÊU CẦU THỰC TẾ MÔ TẢ KHÁI QUÁT Trường Đại học Dân lập Kỹ thuật Công nghệ là một trường đại học đào tạo các kỹ sư, cử nhân trong nhiều lĩnh vực theo khối đại học, cao đẳng và cả trung học chuyên nghiệp.Từ những ngày đầu mới thành lập, Trường Đại học Dân lập Kỹ thuật Công nghệ đã lấy phương châm chất lượng và hiệu quả đào tạo làm gốc trong suốt quá trình đào tạo, với tôn chỉ đào tạo, với tôn chỉ đào tạo con người có tri thức, đạo đức, sáng tạo.Trường đào tạo nhiều ngành và lĩnh vực về kỹ thuật, kinh doanh như Công nghệ thông tin, Điện_điện tử, Cơ khí tự động_Robot, Quản trị kinh doanh, Ngoại ngữ, Kỹ thuật công trình, Công nghệ môi trường, Công nghệ may mặc.Hệ thống tổ chức của trường đã từng bước được điều chỉnh và họat động có hiệu quả.Từ Trường cho đến các bộ môn, tổ công tác đều có đầy đủ các tổ chức về chính quyền cũng như các đoàn thể, với các quy định, quy chế hoạt động đầy đủ các mặt công tác trong Trường.         Trường đã có một đội ngũ giảng viên không chỉ bảo đảm số lượng, mà phải có chất lượng, không những phải có kiến thức uyên thâm, mà phải có đạo đức nghề nghiệp, cũng như phương pháp sư phạm tốt, là một tấm gương cho SV-HS về mọi mặt. Hàng năm, ngoài việc tổ chức thi tuyển giảng viên cơ hữu để chọn được các giảng viên trẻ, học giỏi để có thể tiến xa hơn, Trường đã mời được nhiều thầy cô giáo giỏi, có tâm huyết về làm giáo viên cơ hữu, cũng như làm cộng tác viên là nòng cốt trong nhiều mặt công tác của Trường.Đội ngũ thầy cô giáo thỉnh giảng cũng được mời từ nhiều trường đại học, viện nghiên cứu khác nhau và nhất là được chọn lọc qua nhiều năm học. Vì vậy, các thầy cô thỉnh giảng, tuy không phải cơ hữu của Trường, nhưng đều là những nhà giáo đầy tâm huyết, thực sự gắn bó với Trường, giảng dạy với chất lượng cao.  Hiện nay, Trường có một đội ngũ cán bộ quản lý cơ hữu, điều hành mọi hoạt động của Trường, tạo ra được kỷ cương làm việc, triển khai đồng bộ các kế hoạch công tác của Trường theo tiến độ đã định. Việc phấn đấu bảo đảm và nâng cao chất lượng đào tạo là nhiệm vụ quan trọng nhất của trường.Chất lượng là sự phù hợp của tổ chức đào tạo trong Trường với mục tiêu đào tạo.Trường đã cụ thể hóa với điều kiện của Trường cho từng chuyên ngành. Chúng ta đã chú ý đến kỹ năng thực hành, trình độ tác nghiệp của sinh viên ra trường. Một vấn đề cần phải bàn kỹ hơn nữa, đó là nội dung và yêu cầu của kỹ năng thực hành là gì, trình độ tác nghiệp của kỹ sư, cử nhân là gì, biện pháp để thực hiện.V Về ngành nghề đào tạo, Trường luôn chú ý lựa chọn mở các ngành mũi nhọn, dựa vào nhu cầu về nhân lực của xã hội, của thành phố sau bốn đến năm năm, vào trình độ phát triển khoa học – công nghệ qua các dự báo thống kê, vào thị trường lao động sau nhiều năm. Việc xây dựng cấu trúc chương trình đào tạo cần phải chọn tỷ lệ thích hợp giữa lý thuyết và thực hành, trong đó phần thực hành cần phải coi trọng đúng mức; tỷ lệ giữa kiến thức cơ bản, cơ sở và chuyên ngành.Để nâng cao chất lượng đào tạo, một điều kiện tối quan trọng là phải đảm bảo chất lượng đầu vào,năm nào chúng ta cũng tổ chức thi tuyển cùng một đợt với các trường công lập khác, số lượng thí sinh năm sau cao hơn năm trước. Trong việc tổ chức dạy và học, ngoài việc kiểm tra chặt chẽ khâu lên lớp của thầy, Trường hết sức coi trọng khâu thi cử, kiểm tra, coi đây là một thước đo chính xác thực chất trình độ của sinh viên, qua đó giáo dục nhân cách cho sinh viên. Phòng Đào tạo, các Khoa đã tổ chức thi, hệ thống giám thị và thanh tra đào tạo tổ chức theo dõi, đôn đốc, chấn chỉnh kịp thời những sai sót trong khi thực hiện các quy chế. Nhằm gắn kết giữa lý thuyết và thực hành, nâng cao trình độ tay nghề của sinh viên, qua đó củng cố thêm về lý thuyết, trường đã chú trọng mua sắm những trang thiết bị, phòng thí nghiệm hiện đại, các phương tiện kỹ thuật tiên tiến.Hiện nay Trường đã có diện tích sử dụng hơn 20.000 m2, 51 phòng thí nghiệm và xưởng thực hành, gần 1.000 máy vi tính các thế hệ. Các phòng thí nghiệm, xưởng đã đáp ứng đầy đủ nhu cầu thực hành của sinh viên, học sinh, tiếp cận được những trang bị hiện đại và đắt tiền.Thực hiện chủ trương tin học hóa quá trình quản lý và giảng dạy của Bộ GD-ĐT, Trường đã bỏ ra hàng tỉ đồng để trang bị các phương tiện thông tin như máy vi tính, các phương tiện dạy học, các phần mềm để giảng dạy, quản lý đào tạo và quản lý tài chính, xây dựng mạng nội bộ và trang Web của Trường trên Internet. Thư viện điện tử của Trường nằm trong liên hiệp các thư viện trường Đại học, Cao đẳng, ngày càng phục vụ tốt cho công tác học tập – nghiên cứu của thầy cô giáo và sinh viên. Công tác nghiên cứu khoa học và chuyển giao công nghệ đang dần đi vào củng cố và phát triển. Nghiên cứu khoa học cần phải gắn liền với thực tế, với hiệu quả ứng dụng. Chúng ta đã hướng công tác nghiên cứu khoa học vào việc nâng cao trình độ của thầy cô giáo, phục vụ cho công tác xây dựng và quản lý của Trường, đóng góp phần nào vào sự phát triển của nền khoa học kỹ thuật của nước nhà. KHẢO SÁT HỆ THỐNG Sơ đồ tổ chức Trường Đại học Dân lập Kỹ thuật Công nghệ với một cơ cấu tổ chức hoạt động khá chặt chẽ. Bên cạnh đó mỗi khoa đều có hệ thống các phòng học, phòng thí nghiệm với đầy đủ các trang thiết bị phục vụ tốt cho việc học và nghiên cứu như: Khoa Công nghệ thông tin: Phòng thực hành máy tính cơ sở. Phòng thực hành máy tính chuyên ngành. Phòng thực hành cấu trúc máy tính. Phòng thực hành mạng máy tính & internet. Phòng thực hành truyền số liệu & viễn thông . Khoa Điện-điện tử: Phòng thí nghiệm điện tử viễn thông. Phòng thí nghiệm điện tử công suất. Phòng thí nghiệm điện tử & điện tử số. Phòng thí nghiệm vi xử lý. Phòng thí nghiệm máy điện. Phòng thí nghiệm mạch điện. Phòng thí nghiệm điện công nghiệp. Phòng thí nghiệm xung số. Phòng thí nghiệm truyền số liệu & mô phỏng. Phòng thí nghiệm tự động hóa. Khoa Kỹ thuật công trình: Phòng vẽ kỹ thuật. Phòng thí nghiệm thủy lực. Phòng thí nghiệm trắc địa. Phòng thí nghiệm sức bền vật liệu. Phòng thí nghiệm vật liệu xây dựng. Phòng thí nghiệm cơ học. Khoa Cơ khí tự động_Robot: Phòng thí nghiệm cơ học. Phòng thí nghiệm thủy lực. Phòng thí nghiệm CNC. Phòng thí nghiệm điều khiển khí nén. Phòng thí nghiệm điều khiển PLC & mạng PLC. Khoa Công nghệ môi trường: Phòng thí nghiệm hóa. Phòng thí nghiệm hóa sinh. Phòng thí nghiệm vi sinh. Phòng thí nghiệm môi trường. Khoa Ngoại ngữ: Sinh viên được thực hành trên các phòng máy Multimedia hiện đại,phòng internet,… Khoa Quản trị kinh doanh: Phòng mô phỏng kế toán & giao dịch. Phòng mô phỏng các nghiệp vụ kinh tế. Doanh nghiệp huấn luyện & tổ chức Europen. Các cấp bậc đào tạo Trường hiện nay có 4 cấp bậc đào tạo: đại học, cao đẳng, trung cấp, dạy nghề. Cấp đại học: Trường giảng dạy trong các lĩnh vực như điện-điện tử, công nghệ thông tin, cơ-tin học kỹ thuật, kỹ thuật công trình, công nghệ may mặc, công nghệ môi trường, ngoại ngữ, quản trị kinh doanh. Cấp cao đẳng: Trường giảng dạy trong các lĩnh vực như công nghệ thông tin, điện tử viễn thông. Cấp trung học: Trường giảng dạy trong các lĩnh vực như tin học kế toán, điện tử viễn thông, điện-điện lạnh, kỹ thuật viên tin học. Dạy nghề: Trường giảng dạy trong các lĩnh vực như điện công nghiệp, điện tử, cơ điện lạnh. Khảo sát Hệ thống thông tin trong trường: Trường Đại học dân lập Kỹ thuật công nghệ hiện nay đào tạo kỹ sư, cử nhân theo 3 hệ: đại học, cao đẳng, trung học.Đừng đầu là ban quản trị nhà trường và ban giám hiệu nhà trường sẽ chịu mọi trách nhiệm về việc thực hiện và đào tạo theo các qui định của bộ giáo dục ban hành.Trường hiện nay được quản lý theo các loại phòng ban và các khoa khác nhau.Về phòng ban, phòng hành chính và tài vụ có chức năng lưu trữ và xử lý các loại giấy tờ; phòng đào tạo có chức năng quản lý các vấn đề liên quan đến việc học và sinh hoạt của sinh viên trong trường; thư viện là nơi lưu trữ nhiều tài liệu, sách tham khảo, các luận văn, luận án mẫu của các sinh viên để sinh viên có thể tham khảo và tra cứu; phòng công tác chính trị sinh viên chăm lo về các hoạt động đoàn thể, sinh hoạt xã hội của sinh viên;ngoài ra là 1 hệ thống nhiều phòng học, thực hành và thí nghiệm được trang bị nhiều trang thiết bị để phục vụ tốt cho việc học của sinh viên.Về các khoa, trường hiện nay có nhiều khoa, mỗi khoa sẽ có văn phòng khoa để quản lý sinh viên, giáo viên, lớp học, môn học, thời khoá biểu của từng khoa. Các công nghệ/ phần mềm hiện dùng trong trường : Excel Đánh giá hiện trạng: Ưu điểm: dễ dàng sử dụng cho người biết sử dụng Excel Khuyết điểm: giao diện không phù hợp, không linh hoạt và tiện dụng cho mọi người dùng. Giải pháp: Viết một chương trình quản lý phòng ban trong trường đại học với đầy đủ các tính năng và khắc phục được các khuyết điểm trên.Đây là chương trình trợ giúp người sử dụng sắp xếp lịch sử dụng phòng một cách chính xác, nhanh chóng, cải thiện phương pháp xếp lịch bằng tay hiện nay không có hiệu quả và mất nhiều thời gian. Chọn giải pháp: Phân tích thiết kế hệ thống (UML), cơ sở dữ liệu (SQL Server), lập trình trên môi trường Microsoft .Net. Tôi chọn giải pháp trên là do đã có kiến thức và khả năng làm việc tốt trên các phần mềm đó. MÔ HÌNH BÀI TOÁN Giới thiệu bài toán Trợ giúp sắp xếp lịch sử dụng phòng là vấn đề chính trong luận văn này.Bài tóan đặt ra là vấn đề sắp xếp lịch sử dụng phòng cho trường Đại học Dân lập Kỹ thuật Công nghệ.Cần có sự sắp xếp lịch sử dụng phòng cho các loại phòng ở mỗi thời điểm sao cho vừa hợp lý lại vừa tiện dụng nhất. Bài toán đặt ra bao gồm tất cả các vấn đề có liên quan đến việc sắp xếp lịch sử dụng phòng ở trường đại học, chẳng hạn như: đặt lớp học vào một phòng sao cho tương ứng về sức chứa của nó, tránh việc tại một thời điểm trong một ngày có hai lớp học cùng sử dụng một phòng .Thông thường, công việc này được làm bằng tay, tất nhiên chúng ta luôn thực hiện được và luôn cho ra kết quả tương đối tốt nhưng phải mất nhiều thời gian và ít nhất phải có kinh nghiệm xếp lịch nếu không muốn có sai sót xảy ra, chẳng hạn như: chỗ này thừa phòng, chỗ khác lại thiếu, sai chỗ, sai giờ… .Vấn đề của bài toán là ngoài việc thực hiện đúng, chính xác, còn phải tốt hơn, nhanh hơn và hiệu quả hơn công việc sắp xếp lịch bằng tay mà chúng ta vẫn làm Phát biểu bài toán Ngay khi vấn đề được đặt ra, chúng ta đã thấy là bài toán phải được giải quyết trên hai nền tảng cơ bản là nghiệp vụ và kỹ thuật. Muốn đọc hiểu được một thông tin của lịch sử dụng phòng, yêu cầu dữ liệu phải được hiển thị đầy đủ, không thiếu sót, không bị sai lệch, phải phù hợp với nghiệp vụ đề ra. Phần kỹ thuật cũng vậy, phải xử lý tất cả những yêu cầu riêng biệt từ các đối tượng gởi đến, chúng được xem như là thành phần rang buộc của bài toán, bắt buộc vấn đề phải thỏa mãn và đáp ứng hoàn toàn.Vì vậy ta sẽ phân tích bài toán trên hai thành phần đó. Dữ liệu bài toán Như đã nói trên, thông tin sẽ phát sinh từ các đối tượng chính trong bài toán. Do đó, các dữ liệu luôn có mối liên hệ với nhau, phần lớn vì nhu cầu nghiệp vụ mà dữ liệu xuất hiện đối tương đối nhiều. Trong bài toán sắp xếp lịch sử dụng phòng của trường Đại học, cụ thể sẽ đòi hỏi các thông tin sau: Danh sách các lớp học. Danh sách các môn học. Danh sách các giáo viên. Danh sách các loại phòng. Danh sách các khoa_phòng ban. Danh sách các phòng. Danh sách các khu vực. Danh sách các tiết học. Danh sách các phiếu đăng ký. Các ràng buộc Ràng buộc trên cơ bản vẫn là yêu cầu từ phía các đối tượng đặt ra, bắt buộc bài toán phải thỏa mãn tất cả, nhưng phần nghiệp vụ cũng mang lại một phần ràng buộc cần thiết nhằm tránh một số trường hợp cần thiết và giúp cho quá trình thực thi sẽ cho ra kết quả đúng. Điều quan trọng ở đây là làm sao chúng ta có thể liệt kê được đầu đủ các ràng buộc có thể có trong bài toán. Ràng buộc dữ liệu nhập vào: Do yêu cầu riêng của các đối tượng đối với bài toán nên chúng ta phải nhập đúng dữ liệu trước khi thao tác: Ràng buộc nghiệp vụ-thời gian: Không có lớp nào tại một thời điểm học nhiều môn. Giáo viên không dạy nhiều lớp cùng một lúc. Phòng học tại một thời điểm chỉ có một lớp đang học. Ràng buộc nghiệp vụ-chuyên môn: Một buổi học trong ngày sẽ có số tiết theo qui định (buổi sáng: 6 tiết, buổi chiều: 5 tiết, buổi tối: 4 tiết). Mỗi phiếu đăng ký chỉ dành cho 1 phòng duy nhất với số tiết duy nhất (có thể 2-3-4-5 tiết liên tục một buổi) trong khoảng thời gian qui định. CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG 1. HỆ THỐNG CÁC YÊU CẦU Tuy được tổng quát hóa nhưng dữ liệu dựa trên nền tảng của trường Đại học Dân lập Kỹ thuật Công nghệ nên phần nào riêng biệt.Tuy nhiên phần mềm vẫn đảm bảo đầy đủ các yêu cầu của bài toán. Các đối tượng được sử dụng: Các đối tượng chính yếu xung quanh mô hình bài toán như sau: Giáo viên. Lớp học. Môn học. Phòng học. Khoa_Phòng ban. Mối quan hệ giữa các đối tượng: Trên lịch sử dụng phòng thể hiện đầy đủ thông tin các đối tượng liên quan với nhau ở tại một thời điểm. Các ràng buộc đối tượng: Trong mô hình bài toán, các đối tượng có những yêu cầu, ràng buộc riêng biệt khác nhau với công việc của riêng từng đối tượng.Các đối tượng có quan hệ với nhau tạo ra một ràng buộc chung cho toàn bộ hệ thống. Tại một thời điểm không không xuất hiện nhiều lớp học trong cùng một phòng trên lịch sử dụng phòng. Sức chứa của phòng phải lớn hơn hay bằng với yêu cầu sử dụng phòng đó. Số tiết học phải được qui định khi đăng ký sử dụng phòng Các yêu cầu: Yêu cầu nghiệp vụ: Tiếp nhận yêu cầu đăng ký sử dụng phòng. Lập phiếu đăng ký sử dụng phòng. Ghi nhận và lập lịch sử dụng phòng. Tra cứu lịch sử dụng phòng. Yêu cầu hệ thống: Yêu cầu bảo mật: phân quyền sử dụng phần mềm rõ ràng đối với các đối tượng sử dụng. Yêu cầu an toàn: có thể phục hồi, lưu dự phòng dữ liệu. Yêu cầu công nghệ: dễ sửa lỗi, dễ bảo trì, tái sử dụng, dễ mang chuyển. Yêu cầu tiện dụng: người dùng dễ sử dụng, không đòi hỏi chuyên môn nhiều. Yêu cầu tiến hóa: có thể phát triển phần mềm như lập lịch lớp học, lập lịch giảng dạy, sắp xếp thời khóa biểu… Các chức năng: Chức năng lưu trữ: Tất cả các thông tin của các đối tượng đều được lưu trữ dưới dạng dữ liệu: Giáo viên (họ tên). Môn học (tên môn học, tên viết tắt). Phòng học (tên phòng, sức chứa, loại phòng, khu vực ...). Khoa_Phòng ban (tên khoa_phòng ban). Lớp học (tên lớp). Chức năng tra cứu: Ngoài thông tin được lưu trữ, chương trình còn thể hiện những bảng kết quả thực thi: Danh sách phòng học theo từng khu vực, từng khoa_phòng ban, từng loại phòng, từng phòng riêng biệt. Danh sách các đối tượng lưu trữ. Lịch sử dụng phòng. 2. MÔ HÌNH HÓA CÁC YÊU CẦU MÔ HÌNH USE CASE NGHIỆP VỤ Đối tượng giáo viên: Giáo viên sẽ cung cấp những yêu cầu về trang thiết bị dạy học cần thiết liên quan đến môn học được phụ trách cho nhân viên học vụ của khoa.Giáo viên có thể đăng nhập hệ thống để xem về lịch phòng học. Đối tượng nhân viên học vụ của khoa: Sau khi nhận thông tin từ giáo viên thì nhân viên học vụ của khoa sẽ cung cấp thêm thông tin về các lớp học, thời gian học cho từng lớp học đó.Nhân viên học vụ của khoa có thể đăng nhập và tra cứu được lịch phòng ban. Đối tượng nhân viên phòng đào tạo: Sau khi tiếp nhận thông tin từ nhân viên học vụ của khoa thì nhân viên phòng đào tạo sẽ cung cấp thêm thông tin chi tiết về từng loại phòng ban trong trường.Nhân viên phòng đào tạo sẽ đăng nhập hệ thống và có các chức năng sau:cập nhật dữ liệu, kiểm tra lại tất cả các thông tin(lớp học, môn học, thời gian học, phòng học) được cung cấp, tra cứu hiện trạng của các phòng học(sử dụng hay không sử dụng), phân bố phòng theo các yêu cầu trên, sắp xếp lịch phòng, tra cứu lịch phòng hoặc loại bỏ yêu cầu. Đối tượng nhân viên quản trị hệ thống: Quản trị hệ thống sẽ có chức năng tạo các user mới, xoá bỏ user cũ, cấp các quyền sử dụng hệ thống cho các user đó. MÔ HÌNH HOẠT ĐỘNG Mô hình hoạt động cho giáo viên, nhân viên học vụ khoa. Mô hình hoạt động cho nhân viên phòng đào tạo. Mô hình hoạt động của quản trị hệ thống: MÔ HÌNH TUẦN TỰ Mô hình tuần tự cho use case cập nhật dữ liệu: Mô hình tuầu tự cho use case đăng nhập hệ thống: Mô hình tuần tự cho use case tra cứu lịch phòng học: Mô hình tuầu tự cho use case phân bố phòng: Mô hình tuần tự cho use case kiểm tra thông tin lớp học: Mô hình tuần tự cho use case kiểm tra thông tin môn học: Mô hình tuần tự cho use case kiểm tra thông tin phòng học: Mô hình tuần tự cho use case kiểm tra thông tin thời gian học: MÔ HÌNH LỚP CHƯƠNG 4: THIẾT KẾ DỮ LIỆU CHI TIẾT CÁC BẢNG DỮ LIỆU Loại phòng: Tên Kiểu Ghi chú MaLP Chuỗi Mã loại phòng TenLP Chuỗi Tên loại phòng DienGiai Chuỗi Diễn giải Mỗi loại phòng có một mã loại phòng riêng để phân biệt với các loại phòng khác, tên loại phòng dùng để mô tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu loại phòng, phần diễn giải để chú thích thêm những thông tin phụ về loại phòng đó. Khu vực: Tên Kiểu Ghi chú MaKV Chuỗi Mã khu vực TenKV Chuỗi Tên khu vực Mỗi khu vực có một mã khu vực riêng để phân biệt với các khu vực khác, tên khu vực dùng để mô tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu khu vực. Buổi học: Tên Kiểu Ghi chú MaBuoi Chuỗi Mã buổi học TenBuoi Chuỗi Tên buổi học Mỗi buổi học có một mã buổi học riêng để phân biệt với các buổi học khác, tên buổi học dùng để mô tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu buổi học. Khoa/Phòng ban: Tên Kiểu Ghi chú MaK_PB Chuỗi Mã khoa/phòng ba TenK_PB Chuỗi Tên khoa/Phòng ban DienGiai Chuỗi Diễn giải Mỗi khoa_phòng ban có một mã khoa_phòng ban riêng để phân biệt với các khoa_phòng ban khác, tên khoa_phòng ban dùng để mô tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu khoa_phòng ban, phần diễn giải để chú thích thêm những thông tin phụ về khoa_phòng ban đó. Lớp: Tên Kiểu Ghi chú MaLop Chuỗi Mã lớp TenLop Chuỗi Tên lớp SoLuongSV Số Số lượng sinh viên MaK_PB Chuỗi Khoá ngoại Mỗi lớp học có một mã lớp học riêng để phân biệt với các lớp học khác, tên lớp học ban dùng để mô tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu lớp học, đồng thời có lưu trữ số lượng sinh viên trong từng lớp và một khóa ngoại với bảng dữ liệu khoa_phòng ban để nhận biết lớp đó trực thuộc khoa_phòng ban nào. Môn học: Tên Kiểu Ghi chú MaMH Chuỗi Mã môn học TenMH Chuỗi Tên môn học TenTat Chuỗi Tên viết tắt Mỗi môn học có một mã môn học riêng để phân biệt với các môn học khác, tên môn học dùng để mô tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu môn học và một tên viết tắt của môn học đó(có hoặc không có tên viết tắt. Phòng học: Tên Kiểu Ghi chú MaPhong Chuỗi Mã phòng TenPhong Chuỗi Tên phòng SucChua Số Sức chứa của phòng IsProjector Yes/No Máy chiếu DienGiai Chuỗi Trang thiết bị dạy học TinhTrang Yes/No Tình trạng của phòng Hinhanh Hình Hình ảnh minh hoạ MaLP Chuỗi Khoá ngoại MaKV Chuỗi Khoá ngoại MaK_PB Chuỗi Khoá ngoại Mỗi phòng có một mã phòng riêng để phân biệt với các phòng khác, tên phòng dùng để mô tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu phòng học, sức chứa của từng phòng, phòng có trang bị máy chiếu hay không, phần diễn giải để chú thích thêm những thông tin phụ về phòng đó, tình trạng mô tả trạng thái ban đầu của phòng (cố định là trạng thái cho các phòng có thể dung để sắp xếp lịch sử dụng, không cố định là trạng thái cho các phòng không để sắp xếp lịch sử dụng, hình ảnh minh họa cho từng phòng, liên kết với bảng dữ liệu loại phòng để biết phòng thuộc loại phòng nào, liên kết với bảng dữ liệu khoa_phòng ban để biết phòng thuộc khoa_phòng ban nào, liên kết với bảng dữ liệu khu vực để biết phòng thuộc khu vực nào trong trường. Tiết học: Tên Kiểu Ghi chú MaTiet Chuỗi Mã tiết học TenTiet Chuỗi Tên tiết học TGBatDau Giờ Thời gian bắt đầu TGKetThuc Giờ Thời gian kết thúc MaBuoi Chuỗi Khoá ngoại Mỗi tiết học có một mã tiết học riêng để phân biệt với các tiết học khác, tên tiết học dùng để mô tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu tiết học, mỗi tiết học sẽ có một thời gian bắt đầu và một thời gian kết thúc tiết đó, liên kết với bảng dữ liệu buổi học để biết tiết học thuộc buổi học nào trong ngày. Giáo viên: Tên Kiểu Ghi chú MaGV Chuỗi Mã giáo viên TenGV Chuỗi Tên giáo viên Mỗi giáo viên có một mã giáo viên riêng để phân biệt với các giáo viên khác, tên giáo viên dùng để mô tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu giáo viên. Phiếu đăng ký: Tên Kiểu Ghi chú MaDK Chuỗi Mã đăng ký NgayDK Ngày Ngày đăng ký TuNgay Ngày Ngày bắt đầu DenNgay Ngày Ngày kết thúc MaGV Chuỗi Khoá ngoại MaLop Chuỗi Khóa ngoại MaMH Chuỗi Khoá ngoại MaPhong Chuỗi Khoá ngoại Khoa Chuỗi Khóa ngoại TinhTrang Yes/No Tình trạng SucChua Số Sức chứa Mỗi phiếu đăng ký có một mã phiếu đăng ký riêng để phân biệt với các phiếu đăng ký khác, ngày đăng ký phiếu , phiếu đăng ký từ ngày nào đến ngày nào, tình trạng để biết phiếu đăng ký đó còn hiệu lực hay không, sức chứa là sức chứa mà người dùng muốn đăng ký, liên kết với bảng dữ liệu giáo viên để biết phiếu đăng ký cho giáo viên nào, liên kết với bảng dữ liệu lớp để biết phiếu đăng ký cho lớp nào, liên kết với bảng dữ liệu môn học để biết phiếu đăng ký cho môn học nào, liên kết với bảng dữ liệu phòng học để biết phiếu đăng ký sử dụng phòng nào . Quyền: Tên Kiểu Ghi chú MaQuyen Chuỗi Mã quyền TenQuyen Chuỗi Tên quyền DienGiai Chuỗi Diễn giải Mỗi quyền hạn sử dụng chương trình có một mã quyền riêng để phân biệt với các quyền khác, tên quyền hạn dùng để mô tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu quyền, phần diễn giải để chú thích thêm những thông tin phụ về quyền hạn đó. Phân quyền: Tên Kiểu Ghi chú UName Chuỗi Tên người dùng PWord Chuỗi Mật khẩu MaQuyen Chuỗi Khóa ngoại Mỗi người dùng khi đăng ký sử dụng chương trình sẽ có một tên dùng riêng để phân biệt với các tên dùng khác, mỗi người dùng có thể thay đổi mật khẩu cho riêng mình, liên kết với bảng dữ liệu quyền để biết người sử dụng được cấp quyền hạn nào trong chương trình . Tham số: Tên Kiểu Ghi chú Khoa Chuỗi Mã bộ dữ liệu SoTiet Số Số tiết học Bo Số Bộ dữ liệu TietD Số Khóa ngoại TietK Số Khóa ngoại DienGiai Chuỗi Diễn giải Bảng tham số dùng để lưu trữ về các bộ dữ liệu liên quan đến các tiết học.Mỗi tham số có một mã tham số (khóa) riêng để phân biệt với các tham số khác, số tiết của mỗi tham số (có thể là 2,3,4,5 tiết), mỗi tham số có số bộ đế biết bộ dữ liệu thứ mấy, mỗi tham số chỉ rõ từ tiết đầu thứ mấy đến tiết cuối thứ mấy thông qua liên kết với bảng dữ liệu tiết học, diễn giải dùng để mô tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu tham số. ĐÁNH GIÁ DẠNG CHUẨN Bảng phụ thuộc hàm: STT Mã số Mô tả 1 RB1 MaBuoiàTenBuoi 2 RB2 MaGVàTenGV 3 RB3 MaK_PBàTenK_PB,DienGiai 4 RB4 MaKVàTenKV 5 RB5 MaLPàTenLP,DienGiai 6 RB6 MaLopàTenLop,SoLuongSV,MaK_PB 7 RB7 MaMHàTenMH,TenTat 8 RB8 UNameàPWord,MaQuyen 9 RB9 MaQuyenàTenQuyen,DienGiai 10 RB10 MaTietàTenTiet,TGBatDau,TGKetThuc,MaBuoi 11 RB11 KhoaàSoTiet,Bo,TietD,TietK,DienGiai 12 RB12 MaPhongàTenPhong,SucChua,IsProjector,DienGiai, TinhTrang,HinhAnh,MaLP,MaKV,MaK_PB 13 RB13 MaDKàNgayDK,TuNgay,DenNgay,MaGV,MaLop, TinhTrang,MaMH,MaPhong,Khoa,SucChua Dạng chuẩn: Treân ñaây laø lieät keâ ñaày ñuû taát caû caùc thuoäc tính cuûa töøng quan heä trong löôïc ñoà quan heä vaø caùc phuï thuoäc haøm öùng vôùi löôïc ñoà. Khoâng toàn taïi caùc thuoäc tính laëp hoaëc thuoäc tính keùp, moãi thuoäc tính ñeàu laø nguyeân toá Þ Löôïc ñoà quan heä treân ñaït daïng chuaån 1. Löôïc ñoà quan heä ñaõ ñaït daïng chuaån 1 vaø caùc thuoäc tính khoâng khoùa phuï thuoäc ñaày ñuû vaøo khoùa Þ Löôïc ñoà quan heä treân ñaït daïng chuaån 2. Löôïc ñoà quan heä ñaõ ñaït daïng chuaån 2 vaø caùc thuoäc tính khoâng khoùa cuûa quan heä khoâng phuï thuoäc baéc caàu vaøo baát kyø khoùa naøo cuûa quan heä Löôïc ñoà quan heä treân ñaït daïng chuaån 3. Trong mỗi phụ thuộc hàm của từng quan hệ, mỗi khóa chính trong từng quan hệ là siêu khóa của quan hệ đó. Þ Löôïc ñoà quan heä treân ñaït daïng chuaån BC (Boyce_Cold). RÀNG BUỘC TOÀN VẸN Ràng buộc trên 1 LĐQH : PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa) Điều kiện : "qi Î T(PhieuDangKy) qi.TuNgay >= qi.NgayDK qi.DenNgay >= qi.TuNgay cuối " Bối cảnh : PhieuDangKy Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhieuDangKy + - +/ NgayDK, TuNgay, DenNgay, MaGV, MaLop, MaPhong, MaMH Ràng buộc trên nhiều LĐQH : Đối với bảng TietHoc , BuoiHoc : TietHoc( MaTiet, TenTiet, TGBatDau, TGKetThuc, MaBuoi). BuoiHoc( MaBuoi, TenBuoi) Điều kiện : "qi Î T(TietHoc) qi.MaBuoi Í BuoiHoc [ MaBuoi ] cuối " Bối cảnh : TietHoc , BuoiHoc Bảng tầm ảnh hưởng : Thêm Xóa Sửa TietHoc - + +/ MaBuoi BuoiHoc + - +/ MaBuoi Đối với bảng Khoa_PhongBan , Lop : Khoa_PhongBan( MaK_PB, TenK_PB, DienGiai). Lop( MaLop, TenLop, SoLuongSV, MaK_PB) Điều kiện : "qi Î T(Lop) qi.MaK_PB Í Khoa_PhongBan [ MaK_PB ] cuối " Bối cảnh : Khoa_PhongBan , Lop Bảng tầm ảnh hưởng : Thêm Xóa Sửa Lop - + +/ MaK_PB Khoa_PhongBan + - +/ MaK_PB Đối với bảng Khoa_PhongBan , PhongHoc : Khoa_PhongBan( MaK_PB, TenK_PB, DienGiai). PhongHoc( MaPhong, TenPhong, SucChua, IsProjector, DienGiai, TinhTrang, HinhAnh, MaLP, MaKV, MaK_PB) Điều kiện : "qi Î T(PhongHoc) qi.MaK_PB Í Khoa_PhongBan [ MaK_PB ] cuối " Bối cảnh : Khoa_PhongBan , PhongHoc Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhongHoc - + +/ MaK_PB Khoa_PhongBan + - +/ MaK_PB Đối với bảng KhuVuc , PhongHoc : KhuVuc( MaKV, TenKV). PhongHoc( MaPhong, TenPhong, SucChua, IsProjector, DienGiai, TinhTrang, HinhAnh, MaLP, MaKV, MaK_PB) Điều kiện : "qi Î T(PhongHoc) qi.MaKV Í KhuVuc [ MaKV ] cuối " Bối cảnh : KhuVuc , PhongHoc Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhongHoc - + +/ MaKV KhuVuc + - +/ MaKV Đối với bảng LoaiPhong , PhongHoc : LoaiPhong( MaLP, TenLP, DienGiai). PhongHoc( MaPhong, TenPhong, SucChua, IsProjector, DienGiai, TinhTrang, HinhAnh, MaLP, MaKV, MaK_PB) Điều kiện : "qi Î T(PhongHoc) qi.MaLP Í LoaiPhong [ MaLP ] cuối " Bối cảnh : LoaiPhong , PhongHoc Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhongHoc - + +/ MaLP LoaiPhong + - +/ MaLP Đối với bảng TietHoc , ThamSo : TietHoc( MaTiet, TenTiet, TGBatDau, TGKetThuc, MaBuoi). ThamSo( Khoa, SoTiet, Bo, TietD, TietK, DienGiai) Điều kiện : "qi Î T(ThamSo) qi.TietD Í TietHoc [ MaTiet ] qi.TietK Í TietHoc [ MaTiet ] cuối " Bối cảnh : TietHoc , ThamSo Bảng tầm ảnh hưởng : Thêm Xóa Sửa ThamSo - + +/ TietD, TietK TietHoc + - +/ MaTiet Đối với bảng Quyen , PhanQuyen : Quyen( MaQuyen, TenQuyen, DienGiai). PhanQuyen( UName, PWord, MaQuyen) Điều kiện : "qi Î T(PhanQuyen) qi.MaQuyen Í Quyen [ MaQuyen ] cuối " Bối cảnh : Quyen , PhanQuyen Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhanQuyen - + +/ MaQuyen Quyen + - +/ MaQuyen Đối với bảng PhieuDangKy , GiaoVien : GiaoVien( MaGV, TenGV). PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa) Điều kiện : "qi Î T(PhieuDangKy) qi.MaGV Í GiaoVien [ MaGV ] cuối " Bối cảnh : GiaoVien , PhieuDangKy Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhieuDangKy - + +/ MaGV GiaoVien + - +/ MaGV Đối với bảng PhieuDangKy , MonHoc : MonHoc( MaMH, TenMH, TenTat). PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa) Điều kiện : "qi Î T(PhieuDangKy) qi.MaMH Í MonHoc [ MaMH ] cuối " Bối cảnh : MonHoc , PhieuDangKy Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhieuDangKy - + +/ MaMH MonHoc + - +/ MaMH Đối với bảng PhieuDangKy , Lop : Lop( MaLop, TenLop, SoLuongSV, MaK_PB). PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa) Điều kiện : "qi Î T(PhieuDangKy) qi.MaLop Í Lop [ MaLop ] cuối " Bối cảnh : Lop , PhieuDangKy Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhieuDangKy - + +/ MaLop Lop + - +/ MaLop Đối với bảng PhieuDangKy , PhongHoc : PhongHoc( MaPhong, TenPhong, SucChua, IsProjector, DienGiai, TinhTrang, HinhAnh, MaLP, MaKV, MaK_PB) PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa) Điều kiện : "qi Î T(PhieuDangKy) qi.MaPhong Í PhongHoc [ MaPhong ] cuối " Bối cảnh : PhongHoc , PhieuDangKy Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhieuDangKy - + +/ MaPhong PhongHoc + - +/ MaPhong Đối với bảng PhieuDangKy , ThamSo : ThamSo( Khoa, SoTiet, Bo, TietD, TietK, DienGiai) PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa) Điều kiện : "qi Î T(PhieuDangKy) qi.Khoa Í ThamSo [ Khoa ] cuối " Bối cảnh : ThamSo , PhieuDangKy Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhieuDangKy - + +/ Khoa ThamSo + - +/ Khoa CHƯƠNG 5: THIẾT KẾ GIAO DIỆN Màn hình chính của chương trình: Khi khởi động chương trình, màn hình trên sẽ mở ra với giao diện đơn giản, dễ nhìn và trên thanh công cụ chỉ xuất hiện 2 thực đơn chính đó là thực đơn Hệ thống để người dùng đăng nhập vào hệ thống chương trình và thực đơn Trợ giúp sẽ chỉ dẫn người dùng sử dụng chương trình. Màn hình đăng nhập: Màn hình trên để người dùng đăng nhập tên, mật khẩu và chương trình sẽ kiểm tra, nếu đúng sẽ đăng nhập thành công, ngược lại không sử dụng được chương trình. Màn hình chính để lưu trữ thông tin phòng học: Màn hình trên để nhân viên phòng đào tạo dùng để lưu trữ thông tin về phòng học. Màn hình thêm ,sửa dữ liệu về phòng học: Màn hình dùng cho nhân viên phòng đào tạo thêm hoặc sửa thông tin chi tiết cho từng phòng học Màn hình tạo tài khoản mới: Màn hình dùng cho nhân viên quản trị mạng khi muốn thêm người dùng mới cho chương trình. Màn hình phiếu đăng ký: Màn hình dùng cho nhân viên phòng đào tạo khi muốn đăng ký phân bố sử dụng phòng . Màn hình đăng ký phòng: Tiếp theo sau màn hình phiếu đăng ký thì nhân viên phòng đào tạo sẽ tiếp tục chọn phòng và số tiết hợp lý để phân bố sử dụng phòng đó. Màn hình tra cứu phòng theo các khoa_phòng ban: Màn hình dùng cho tất cả người dùng để tra cứu thông tin phòng học. Màn hình tra cứu phòng theo các khu vực: Màn hình dùng cho tất cả người dùng để tra cứu thông tin phòng học. Màn hình tra cứu phòng theo từng phòng: Màn hình lưu dự phòng dữ liệu: Màn hình dùng để sao lưu dự phòng cơ sở dữ liệu . Màn hình lưu tập tin: Sau khi bấm vao nút (…) thì màn hình trên sẽ mở để người dùng chỉ rõ đường dẫn cho tập tin lưu dự phòng đó. Màn hình phục hồi dữ liệu: Màn hình dùng để phục hồi cơ sở dữ liệu từ tập tin lưu dự phòng . Màn hình mở tập tin: Sau khi bấm vao nút (…) thì màn hình trên sẽ mở để người dùng chỉ rõ đường dẫn của tập tin lưu dự phòng để mở ra. Màn hình mở tập tin: Màn hình dùng để xuất báo cáo danh sách phiếu đăng ký trong khoản thời gian mà người dùng chọn. Màn hình báo cáo danh sách phiếu đăng ký: Màn hình kết quả danh sách phiếu đăng ký của màn hình trên. Màn hình báo cáo lịch sử dụng phòng: Màn hình xuất báo cáo toàn bộ lịch sử dụng phòng . PHẦN B: TÌM HIỂU CÔNG NGHỆ CHƯƠNG 6: TÌM HIỂU MICROSOFT C#.NET 1. GIỚI THIỆU NHANH VỀ .NET Trong công nghiệp máy tính, có thể nói rằng Microsoft đã mang lại những bước đi quan trọng nhất .Chính hành động can đảm của Bill Gates và Steve Ballmer khi họ nói với ông lớn IBM rằng họ có một hệ điều hành cần bán đã đem lại thành công vang dội cho DOS. Họ cũng làm thế với hệ điều hành Windows phổ biến hầu như khắp toàn cầu khi “cầm nhầm” cái phong cách “nhìn và cảm nhận”(Look and Feel) của Apple Macintosh. Và bây giờ, có thể sẽ là một chuyển biến lớn khi Microsoft phát minh lạI một cách tổng thể phương thức mà chúng ta sẽ làm việc ,sẽ lập trình cho chiếc máy tính thân yêu. Nếu bạn đang là một nhà lập trình C++,hay bạn đang sống nhờ vào hệ điều hành Windows hay bộ thư viện MFC, không còn nghi ngờ chắc chắn bạn cũng sẽ bị đắm chìm trong thế giới .Net. Trên thực tế ngày nay, Internet đã trở thành phương tiện cho chúng ta làm việc ,thăm bạn bè ,sử dụng tài khoản ngân hàng ,chơi, tán ngẫu, rất thực tế và hiệu quả nhờ vào các phần mềm được viết để thực hiện các kết nốI IP( Internet Protocol) cho WWW (World Wide Web) .Các phần mềm được yêu cầu thực hiện hàng cuộc triệu cuộc giao dịch dữ liệu giữa các máy tính với nhau,và số lượng các cuộc giao dịch này ngày càng tăng theo sự tăng nhanh của khả năng và sự phức tạp của web. Việc sử dụng thư điện tử ,lướt trên các trang web ,trao đổi với các cơ sở dữ liệu và sử dụng các ứng dụng phân tán ngày càng trở nên phức tạp hơn ,vì thế trình độ và kỹ thuật lập trình để tạo và bảo dưỡng các phần mềm cũng ngày càng được yêu cầu cao hơn ,tinh vi hơn. Các nhà lập trình chúng ta hằng ngày phải đối diện với COM,COM+,DCOM,SP,SOAP,XML,XSL…cũng như phảI chiến đấu với hàng tá sách hướng dẫn ,các bộ công cụ SDK (Software Developer Kit) phức tạp. Microsoft,cũnh như đa số trong chúng ta, đã tạo nên ngày càng nhiều các công cụ chuyên dùng.Hệ điều hành hay các ứng dụng Windows đầy đủ tính năng hơn ,theo yêu cầu kỹ thuật, công nghệ, và do đó đã thêm vào không ít các SDK hay các tiêu chuẩn ở chỗ này ,chỗ nọ.Kết quả là hệ điều hành ,thư viện ,công cụtrở nên không còn khả chuyển ,quá nặng nề với biết bao các mỏ rộng (extensions),add-in(phần phụ thêm) .Thế là bộ khung .NET ra đời. .NET thực sự thay đổi điều kể trên .Đó không chỉ là một bước tiến ,một nâng cấp hay một sự hợp nhất các công việc.Mà đó chính là một điều vĩ đại ,một sự dũng cảm, một cuộc bức phá ngoạn mục.Nó định nghĩa lại tất cả mọi điều bạn đã biết về lập trình cho máy PC về tất cả mọi hình thù lẫn kích thước ,kể cả ngôn ngữ lập trình trong đó. 2. QUẢN LÝ BỘ NHỚ .NET Một đặc điểm đáng bàn cải của .NET là trình quản lý bộ nhớ thưc thi của nó hoạt động như một hệ thống thu gom rác (garbage-collected system viết tắt là GC system).Có ngườI thì thích thú, có người lại lo sợ hay chết lặng đi vì nó.Có thể các bạn đã là các nhà lập trình từ lâu lắm,nếu thế ,chắc bạn khó thể mà quên được những ác mộng trong những ngày của Lisp,lúc đợi chờ người dọn rác đến,mà ông ta chỉ đến vào thứ 3:cả núi giấy loại ở chung quanh bạn.Còn bạn là lập trình viên C++ thì hằn bạn sẽ thấy trình quản lý bộ nhớ nhảy loạn xạ và có khi dẫn đến treo máy khi bạn quên đi lời nguyền về sự quản lý việc định vị con trỏ và loại bỏ các vùng nhớ bạn đã cấp. Trình quản lý bộ nhớ của .NET đã tiếp cận việc định vị theo một cách khác.Một khối bộ nhớ được tự động ghi nhớ thông tin khi nó được yêu cầu cấp phát cho đối tượng và có những tham chiếu đến nó.Và chỉ khi tất cả các tham chiếu đến khối nhớ được xoá thì đối tượng hay vùng nhớ mới bị huỷ thật sự.Cách giảI quyết như thế đã thật sự giảm nhẹ gánh nặng quản lý bộ nhớ cho lập trình viên.Bạn không còn cần phải nhớ là đã xoá vùng nhớ đã cấp hay chưa :đơn giản là từ nay bạn chỉ cần biết là bạn không còn dùng nó nữa.Một lớp sẽ không còn phải chú ý theo dõi lượng tham chiếu đến nó nữa , nó đã biết được khi nào nào nó sẽ tự mình huỷ bỏ. Để giảm sự phân mảnh của vùng nhớ động (heap),trình GC cũng đã hướng mục tiêu vào việc củng cố các vùng bộ nhớ đang sử dụng hay các vùng nhớ chưa dùng đến .Điều này ngăn ngừa bộ nhớ bị mất vô lý và nâng cao hiệu quả của một bộ máy chủ.Heap được quản lý cũng chắc chắn rằng tất cả các truy xuất bộ nhớ không chuẩn ,như tràn bộ nhớ hay treo máy, sẽ không thể tác động đến dữ liệu các chương trình khác đang chạy trên cùng máy này.Và như thế nó làm cho hệ thống trở nên tin cậy và bảo mật. Bộ GC thường bị coi là chậm và không hiệu quả nhưng Microsoft quả quỵết rằng GC của .NET sẹ khác ,nó thật sự hoạt động theo thời gian thực .GC của NET sẽ hoạt động tức thời và không tác động đáng kể lên bộ vi xử lý (CPU).Tổng quát trên một máy Windows 2000,GC chỉ cần khoảng 1/1000 tổng thời gia xử lý của CPU. Cuối cùng, có cả một hệ thống dự phòng cho cái gọi là vùng nhớ hay mã lệnh không được quản lý(hay không an toàn) mà các lập trình viên dùng con trỏ để định vị vùng nhớ thường gặp phảI .Như thế bạn có thể dùng các cấu trúc cổ xưa của C++ ngay trong bộ khung của .NET. 3. C# -MỘT NGÔN NGỮ LẬP TRÌNH MỚI. Khởi đầu với tên gọi là Cool vào khoảng năm 2000, C# đã tạo ra vô số các cuộc tranh luận lớn trên nền .NET .Từ các huyền thoại, các đồn đại và các ước đoán,C# ngày nay đã thật sự trở thành một ngôn ngữ đơn giản ,hoàn toàn hướng đối tượng và rất tuyệt vời .Các đặc trưng này của C# cũng gần giống với tuyên bố của Java ?Dù có hay không thì rõ ràng các nhà thiết kế của C# đã rất muốn tạo ra một ngôn ngữ có thể làm vừa lòng giớI lập trình C++ .Dĩ nhiên ta cũng không thể loại trừ một vài thiếu xót nhỏ nào đó mà đối với một số người thì chúng trở nên bất cập và không tiện lợi. C# không hổ trợ đa thừa kế (multiple inhertance):Một lớp (class) của C# có thể được khai báo là nó có thể đựng một hay nhiều các interface(giao diện hay giao tiếp),nhưng tính đa kế thừa của các lớp (classes) cơ bản lại không được chấp nhận.Đối với một số lập trình viên,đặc biệt là những ai yêu thích ALT,thì tính chất này được xem là một bất cập. Hệ thống C# cũng không cho phép sự dụng bất kì các kiểu mẫu template nào cả.Dù vậy chúng ta sẽ bàn thêm về vấn đề này ở các chương sau. Đa số các cuộc thảo luận về C# hiện nay đều từ các phản ứng của những ai gạt bỏ C# như là một cố gắng hiển nhiên nhằm vào vịêc xoá bỏ Java.Tuy nhiên thật ra C# va Java có thể được xem như những con ngựa trên những đường đua khác nhau,chúng có thể cùng tồn tại và chung sống hoà bình .C# và toàn bộ hệ thống .NET sẽ là công cụ tốt hơn cho việc kết hợp các ứng dụng khách và các ứng dụng phía máy chủ ,còn Java có những khuyết điểm rõ ràng cho phần máy khách. Chúng ta có thể nói thêm về C# là một ngôn ngữ hoàn toàn hướng đối tượng (totally object-oriented0.C++ bắt nguồn từ C: trước hết là một sự phức hợp cho C,sau đó là một cố gắng thực sự của định hướng đối tượng .Để tốt hơn, C++ phải giữ lại một số đặc điểm của ngôn ngữ không-hướng- đối-tượng.Đó là những hàm độc lập và các biến toàn cục .C# thì khác ,nó tuyệt giao hoàn toàn với các đặc tính như thế .Mọi kiểu biến,kể cả kiểu giá trị đơn giản ,đều được xem xét như là một đối tượng .Mọi hàm đều phải thuộc một lớp(class) .Không còn được dùng các biến toàn cục.Tuy thế xin đừng lo lắng vì các lớp chứa các hàm tĩnh hay biến tĩnh có thể được xem và hành động như các hàm độc lập và các biến toàn cục . 4. TƯƠNG TÁC VỚI THẾ GIỚI COM Tuy .NET là mô hình mới thay thế cho thế giới COM đang có trong kiến trúc của Windows nhưng việc thay thế không diễn ra đến nỗi bạn mất hết khả năng sử dụng đốI tượng COM. Nền .NET cho phép bạn sử dụng và gọi các đối tượng Com ngay từ đối tượng .NET và tạo ra các lớp vỏ bọc cho phép đối tượng .NET có thể biến thành đối tượng COM. 5. WINDOWS FORMS,WEB CONTROLS VÀ GDI+ Nếu bạn đã từng viết chương trình Windows trước đây bạn hẳn đã quen với lớp thư viện đồ hoạ cực kỳ hấp dẫn.Trong .NET bạn có rất nhiều lựa chọn để lập trình giao diện đồ hoạ ,sử dụng lớp Windows Forms, thư viện GDI+ hơặc các điều khiển Web Control để tiếp cận với giao diện dành cho ứng dụng Web.Bạn không còn phảI mệt nhọc vớI các lớp MFC ,thay vào đó là những lớp thư viện .NET đơn giản dễ hiểu và hiệu quả hơn rất nhiều.Hàng loạt công cụ lập trình hiệu quả được thêm vào môi trường Visual Studio .NET mà bạn không hề tìm thấy trong những môi trường lập trình trước đây. Mọi thứ đã sẵn sằng, có lẽ đã đến lúc chúng ta đi sâu và tìm hiểu ngôn ngữ C# và đó cũng là mục đích của giáo trình này . 6. MICROSOFT .NET PLATFORM Ý tưởng đằng sau Microsoft .NET là thay đổi cách nhìn trong lĩnh vực điện toán ,từ một thế giới mà trong đó các thiết bị cá nhân và các website được nối đơn giản với nhau thông qua Internet sang một thế giới mà trong đó các thiết bị ,các dịch vụ và các máy tính làm việc với nhau để cung cấp những giải pháp phong phú cho người tiêu dùng. Một giải pháp (solution) của Microsoft .NET bao gồm 4 thành phần cốt lõi sau: .NET Building Block Services: hoặc truy cập bằng cách lập trình đến các dịch vụ nào đó ,chẳng hạn như file storage (lưu trữ tập tin) ,calendar(lịch) và Passport .Net (một dịch vụ xác nhận ID) Phần mềm thiết bị .NET ,chạy trên các thiết bị Internet mới. The .NET user experience ,bao gồm các đặc điểm như giao diện tự nhịên,các thẻ thông minh, kỹ thuật tự động liên kết tới các thông tin liên quan đến các từ hoặc các nhóm từ trong tài liệu được tạo bởi người dùng . Cơ sở hạ tầng .NET ,bao gồm .NET Framework ,Microsoft Visual Studio.NET, .NET Enterprise Servers ,và Microsoft Windows .NET. Cơ sở hạ tầng .NET là một phần của .NET mà hầu hết các lập trình viên đều phải nhắc đến khi đề cập đến .NET .Ở đây chúng ta sẽ qui ước là mỗi khi nói đến .NET (mà không có từ đi trước )là đang nói đến cơ sở hạ tầng .NET .Cơ sở hạ tầng .NET đề cập đến tất cả các kỹ thuật tạo nên một môi trường làm việc mới trong viêc tạo và thi hành các ứng dụng mạnh mẽ ,có thể phát triển và được phận phối. Thành phần .NET cho phép lập trình viên phát triển những ứng ụng này là .NET Framework. .NET Framework bao gồm Common Language Runtime (CLR) và các thư viện lớp .NET Framework ,đôi khi còn được gọi là thư viện lớp cơ sở,đôi khi còn được gọi là thư viện lớp cơ sở(Base Class Library (BCL)).Bạn có thể hiểu CLR như một máy ảo (Virtual Machine) mà các ứng dụng .NET hoạt động trong đó .Tất cả các ngôn ngữ .NET đều có các thư viện lớp .NET Framework .Nếu bạn đã từng lập trình vớI MFC (Microsoft Foundation Classes) hoặc OWL (Ojbect Windows Library) của Borland nghĩa là bạn đã quen với thư viện lớp.Các thư viện lớp .NET Framework bao gồm hổ trở về mọi thứ ,từ nhập xuất tập tin,cơ sở dữ liệu đến XML và SOAP.Thực ra các thư viện lớp .NET Framework quá lớm đến nỗi một cuốn sách cũng chỉ có thể nói sơ lược về tất cả các lớp mà nó hổ trợ. Bạn cần lưu ý là từ “máy ảo” ở trên không có ý nói đến kiến trúc máy ảo Java Virtual Machine. Nhiều thập kỷ trước ,trước khi Java ra đờI ,IBM lần đầu tiên đưa ra khái niệm “virtual machine”.Một máy ảo là một sự trừu tượng hoá hệ điều hành bậc cao ,trong đó hệ điều hành khác có thể hoạt động trong một môi trường hoàn toàn được đóng gói .Khi nói CLR là một loại máy ảo nghĩa là code thực thi trong CLR sẽ chạy trong một môi trường được đóng gói và được quản lý ,tách biệt với các tiến trình khác trên máy. 7. NET FRAMEWORK Phần này sẽ so sánh .NET và môi trường phát triển ứng dụng phân phối trước đây ,sau đó sẽ liệt kê những khả năng mà .NET cung cấp cho các lập trình viên để tạo ra các ứng dụng phân phối đầy sức mạnh một cách nhanh chóng. WINDOWS DNA và .NET Trong phần trước, chúng ta đã mô tả .NET là một môi trường để tạo các ứng dụng mạnh mẽ ,dễ phát triển và phân tán .Lý do là .NET là kết quả của một sự nổ lực trước đó để thoả mãn những mục tiêu lớn lao .Đó là nền được gọi là Windows DNA .Tuy nhiên .NET có nhiều hơn những gì mà Windows DNA cung cấp.Windows DNA là một nền các giải pháp mà chú trọng đến việc giải quyết các vấn đề thương mại thông qua việc dùng các sản phẩm phục vụ Microsoft.Ngoài những đặc điểm về kỹ thuật ,Windows DNA không có bất kỳ bộ phận xác thực nào. Đây là điểm khác biệt chính giữa Windows DNA và .NET .Microsoft .NET không chỉ là một tập các đặc điểm kỹ thuật mà còn bao gồm nhiều sản phẩm xác thực ,chẳng hạn như trình biên dịch,thư viện lớp, và thậm chí cả những ứng dụng người dùng cuối. 8. Common Language Runtime-CLR CLR là một phần cốt lỗi của .NET .Như tên gọi của nó ,CLR là một môi trường thực thi trong đó các ứng dụng được viết bởi các ngôn ngữ khác nhau có thể hoạt động cùng nhau,đôi khi còn được biết đến như là khả năng giao tiếp xuỵên ngôn ngữ (cross-language interoperability0).Vậy làm thế nào mà CLR cung cấp được môi trường như thế cho khả năng giao tiếp xuyên ngôn ngữ ?Đặc tả ngôn ngữ chung (Common Language Specification) là một tập các qui tắc mà một trình biên dịch ngôn ngữ phải tuân theo để tạo một ứng dụng .NET thi hành trong CLR. Khi muốn viết một trình biên dịch tương thích vớI .NET cần phải tuân theo những qui tắc này và ứng dụng được phát sinh từ trình biên dịch đó sẽ thi hành cùng với các ứng dụng .Net khác và có cùng giao tiếp giữa các thành phần. Một khái niệm quan trọng liên quan đến CLR là managed code.Managed code là code thi hành dưới sự bảo trợ của CLR và vì thế, được quản lý bởi CLR .Bạn có thể hiểu như sau :Trong các môi trường phát triển của Microsoft Windows hiện nay,chúng ta có nhiều tiến trình khác nhau cùng thi hành,qui luật duy nhất mà các ứng dụng đòi hỏi chúng phải hoạt động tốt trong môi trường Windows.Những ứng dụng này được tạo bằng cách dùng một trong nhiều trình biên dịch hoàn toàn khác nhau.Nói cách khác ,các ứng dụng phải tuân theo một tập duy nhất các qui luật chung để thi hành trong Windows. Môi trường Windows có một vài qui luật chung cho biết cách ứng dụng phải hoạt động về các mặt như giao tiếp với các ứng dụng khác ,cấp phát bộ nhớ,thậm chí nhờ hệ điều hành Windows để làm việc thay cho nó. Tuy nhiên, trong một môi trường code được quản lý, một số quy luật được đặt ra để đảm bảo rằng tất cả các ứng dụng hoạt động theo một cách giống nhau,bất chấp chúng được viết bằng ngôn ngữ gì.Cách hoạt động thống nhất của các ứng dụng .NET là bản chất của .NET ,thật may mắn là các quy luật này ảnh hưởng đến những người viết trình biên dịch trước tiên ,còn bạn thì không phải lo gì đến các quy luật này cả. 9. Các thư viện lớp .NET Framework Các thư viện lớp .NET Framework cực kì quan trọng trong việc cung cấp khả năng giao tiếp giữa các ngôn ngữ vì chúng cho phép lập trình viên dùng một giao diện lập trình đơn đến các chức năng được đưa ra bởi CLR. Nếu bạn đã từng dùng nhiều hơn một ngôn ngữ lập trình được phát triển trên Windows ,bạn sẽ thích đặc điểm này của .NET .Thực ra ,các thư viện lớp .NET Framewwork đang tiến đến một cuộc cách mạng trong việc phát triển các trình biên dịch.Trước .NET ,hầu hết các nhà viết trình biên dịch đã phát triển những ngôn ngữ có khả năng làm tất cả các công việc của nó.Ngay cả một ngôn ngữ như C++ ,được thiết kế như một nhóm các chức năng được dùng để kết hợp với một thư viện các lớp ,cũng có tối thiểu một vài chức năng riêng của nó.Tuy nhiên, trong thế giới của .NET,các ngôn ngữ trở nên ít code hơn với các thư viện lớp .NET Framework. 10. Ngôn ngữ trung gian Microsoft và JITter Để làm cho những người viết ngôn ngữ dễ dàng chuyển ngôn ngữ của họ sang .NET, Microsoft phát triển một ngôn ngữ thuộc họ ngôn ngữ bậc thấp gọi là ngôn ngữ trung gian Microsoft (MSIL).Để biên dịch các ứng dụng sang .NET ,các trình biên dịch lấy mã nguồn như đầu vào và tạo ra MSIL như là đầu ra .MSIL tự nó đã là một ngôn ngữ hoàn chỉnh mà bạn có thể viết các ứng dụng trên nó .Tuy nhiên ,như với một ngôn ngữ bậc thấp ,chắc chắn bạn sẽ không bao giờ viết các ứng dụng trên nó ngoại trừ một vài trường hợp hiếm hoi.Vì MSIL là một ngôn ngữ ,mỗi nhóm viết trình biên dịch sẽ quyết định nó hổ trợ MSIL bao nhiêu. Tuy nhiên, nếu bạn là một nhà viết trình biên dịch và bạn muốn tạo một ngôn ngữ có thể giao tiếp với các ngôn ngữ khác,bạn nên tự hạn chế trong phạm vi các đặc điểm được xác định trong CLS. Khi biên dịch một ứng dụng C# hoặc bất kỳ một ứng dụng nào được viết bằng một ngôn ngữ tương thích với CLS,ứng dụng đó sẽ được biêb dịch sang MSIL ,sau đó sẽ được biên dịch sang các chỉ thị CPU khi ứng dụng được thi hành lần đầu bởi CLR( thực ra ,chỉ có các hàm được gọi mới được biên dịch lần đầu khi chúng dược gọi).Xem những gì thực sự đang diễn ra bên dưới: Viết mã nguồn trong C#. Sau đó biên dịch nó thành trình biên dịch C# (csc.exe) sang một tập tin EXE. Trình biên dịch C# tạo ra mã MSIL và một manifest (tương tự như một bản kê khai) vào phần chỉ đọc của tập tin .EXE có header PE ( Wìn-portable executable) chuẩn. Khi ứng dụng được thi hành ,hệ điều hành nạp PE và các thư viện liên kết động phụ thuộc khác,chẳng hạn như mscoree.dll (chứa hàm CorExeMain) Chương trình nạp hệ điều hành sẽ nhảy đến điểm vào bên trong PE,đây là cách mà một PE bất kỳ được thi hành trong Windows. Tuy nhiên, vì hệ điều hành không thể thi hành mã MSIL ,nên điểm vào đó chỉ là điểm để nhảy đến hàm _CorExeMain trong mscoree.dll. 6. Hàm _CorExeMain bắt đầu thi hành mã MSIL được đặt trong PE. 7. Vì MSIL không thể được thi hành một cách trực tiếp ,CLR dùng trình biên dịch just-in-time để biên dịch MSIL sang chỉ thị CPU, biên dịch just-in-time chỉ xảy ra khi các phương thức trong chương trình được gọi.Code đã được biên dịch và có thể thi hành được lưu giữ trên máy và chỉ được biên dịch lại khi có sự thay đổi mã nguồn. 11. Hệ thống kiểu thống nhất Một trong những đặc điểm chính của bất kỳ một môi trường phát triển nào là hệ thống kiểu của nó.Sau hết, một môi trường phát triển với số lượng kiểu bị giới hạn ,hoặc giới hạn khả năng của lập trình viên trong việc mở rộng các kiểu được hệ thống hổ trợ,sẽ không phải là một môi trừơng tồn tại lâu dài ..NET runtime không chỉ cung cấp cho lập trình viên một hệ thống kiểu thống nhất ,được dùng cho tất cả ngôn ngữ ,nó còn cho phép những nhà viết ngôn ngữ mở rộng hệ thống kiểu bằng cách thêm các kiểu mới hoạt động như các kiểu có sẵn trong hệ thống. Điều này có nghĩa là các lập trình viên có thể dùng tất cả các kiểu theo cách giống nhau ,bất chấp việc chúng là các kiểu được định nghĩa trước của .NET hay các kiểu do người dùng tạo ra. 12. Sự an toàn Khía cạnh quan trọng nhất của bất kỳ một môi trường phát triển các ứng dụng phân phối nào là cách nó quản lý sự an toàn.Thực tế,sự an toàn bắt đầu ngay khi một lớp được nạp bởI CLR vì trình nạp lớp là một phần của sự an toàn trong .NET .Thí dụ, khi một lớp nạp vào .NET runtime ,các nhân tố liên quan đến sự an toàn chẳng hạn như các quy tắc truy cập vá các yêu cầu bảo đảm tính nhất quán sẽ được kiểm tra.Ngoài ra , các kiểm tra cho sự an toàn sẽ đảm bảo rằng một đoạn mã được phép truy cập đến các tài nguyên nào đó.Đoạn mã an toàn bảo đảm vai trò xác nhận và kiểm tra thông tin. Các kiểm tra an toàn này còn mở rộng đến các tiến trình để bảo đảm rằng các dữ liệu nhạy cảm không bị làm hại trong các môi trường phân tán . CHƯƠNG 7: TÌM HIỂU SQL SERVER 2000 1. GIỚI THIỆU SQL Server 7.0 ra đời là một bước nhảy vọt công nghệ cơ sở dữ liệu so với cơ sở dữ liệu SQL Server 6.5, SQL Server 2000 ra đời không ngừng cung cấp cho người dùng những công cụ và những đặc điểm mới phiên bản 7.0 còn thiếu sót. Ngoài những đặc tính khắc phục thiếu sót của SQL Server 7.0, phiên bản SQL Server 2000 còn thay đổi một số cục diện khác trong các chức năng lập trình cũng giống như trong quan hệ và ràng buộc dữ liệu. Ngoài ra SQL Server 2000 còn cung cấp 1 số công cụ hỗ trợ khác như Phân tích xử lý trực tuyến (OLAP), chuyển tác trực tuyến (OLTP), English Query… Một đặc điểm mớI chúng ta cần quan tâm trong phiên bản SQL Server 2000, khái niệm Object Oriented Database-OOD, và một số kiểu dữ liệu mới cũng trình bày trong giáo trình này. SQL Server 2000 tốI uư hơn nhiều mô hình cơ sở dữ liệu quan hệ. Chúng phát triển để sử dụng trên nhiều ần bản như CE, Personal, Desktop Engine, Standard, Enterprise.Chúng ta sẽ thấy chi tiết về những thành phần này trong những chương sau . Những thành phần trong SQL Server 2000 bao gồm : Hệ thống Diễn giải SQL Server 2000 Đây là phần chính của hệ thống, là trung tâm điều hành những phần thực thi khác Với Desktop Engine bạn sẽ tìm thấy các dịch vụ trong hệ thống như SQL Server Agent (Schedule), Distributed Transaction Coordinator ( DTC ), SQL Server Profiler(Trouble Shooting), Enterprise Manager(EM), và một số công cụ hỗ trợ khác Full-Text Search Đây là phần tự chọn trong lúc cài đặt, nếu bạn muốn chức năng tìm kiếm thì nên chọn hệ thống này vì chúng không la phần mặc nhiên Full-Text Search cung cấp chức năng tìm kiếm từ rất mạnh , nếu sử dụng Internet để tìm kiếm thì đây là giải pháp tuyệt vời. Nếu bạn muốn tìm kiếm một chuỗI con trong 1 đoạn văn bản lớn thì đây là công cụ thích hợp cho công việc đó . English Query English Query (EQ) cho phép ngườI sử dụng không có kỹ thuật về SQL cũng có thể SQL Server, bằng cách đặt câu hỏi bằng chuỗi English sau đó được dịch ra query mà có thể thực thi trên SQL Server. Nhưng công cụ này được cài đặt cách biệt SQL Serve r Analysis Services Phần này không bao gồm mặc định trong phần cài đặt, chúng là dạng sản phẩm tự chọn, và là công cụ phân tích OLAP( Online Analytical Processing), sử dụng cho cơ sở dữ liệu lớn Những phiên bản có OLAP đầy đủ chức năng là Enterprise và Developer, nhưng trong ấn phẩm Standard và Personal cũng có một số chức năng chính của OLAP Replication Chức năng này cho phép tái tạo 1 bản sao đến SQL Server khác, thông thường dùng chức năng này cho các hệ thống Server từ xa hay trong netword, nhằm để làm giảm trao đổidữ liệu giữa các SQL Server với nhau Data Transformatuion Server Data Transformation Server ( DTS) được mở rộng trong phiên bản SQL Server 2000 , bao gồm những chức năng trao đổi dữ liệu,và giao tiếp dữ liệu giữa các cơ sở dữ liệu khác nhau, đây là những giảI pháp lập trình trên Visual Basic . 2. XÂY DỰNG HỆ THỐNG KẾT NỐI Có 1 vài mô hình hình thành trong những năm trước đây,nhưng hiện nay chúng ta thường sử dụng và kiểm soát theo nhóm 3 mô hình sau: User Services: Dịch vụ này thiên về giao diện (UI), nó dựa trên việc định dạng dữ liệu và sử dụng các nguyên tắc về kiểm tra dữ liệu của trường (field) Ví dụ như về việc định dạng ngày tháng dịch vụ này đưa ra trường ngày tháng bằng giao diện , và kiểm tra những giá trị user nhập vào trường này. Business services: Phần này được sử dụng cho các qui tắc nghiệp vụ ( Business rules ) . Ví dụ điển hình như thao tác kiểm tra Credit Card, những thông tin này phảI được kiểm chứng khi khấu trừ khách hàng . Trong hệ thống đa tầng đối tượng Business Services được tập trung trú ngụ tại Server , và có thể tách biệt ra nhiều Server với Data Services Data Services: Đây là dịch vụ liên quan đến việc kiểm soát và hoạt động như 1 chức năng luư trữ truy vấn dữ liệu . Data Services có thể xem và kiểm tra nguyên tắc trọn vẹn của dữ liệu nhưng nó không quan tâm đến các qui tắc nghiệp vụ ví dụ như Credit Card đã xuất phát từ đâu và có hợp lệ hay không . 3. .NET .Net đánh vần dot net là chiến lược phát triển mới của Microsoft. Sản phẩm cập nhật mớI nhất trong bộ sản phẩm của họ Server là SQL Server 2000 gọI là .Net Servers. Bên cạnh đó Microsoft cũng đang nâng cấp phiên bản Visual Studio vào sản phẩm .Net .Net vẫn chưa hòan thành, nhưng rõ ràng dòng họ sản phẩm này có thể hỗ trợ XML. 4. MÔ HÌNH TRUY CẬP DỮ LIỆU Mô hình truy cập dữ liệu : Chắc chắn 1 điều rằng khi quan tâm đến cơ sở dữ liệu , chúng ta thường muốn biết làm thế nào để kết nốI và truy cập dữ liệu của SQL Server 2000 . Chúng tôi giớI thiệu đến các bạn những mô hình truy cập cơ sở dữ liệu SQL Server như sau: ADO( Activ X Data objects) : Không giống như RDO dựa trên nền tảng ODBC , ADO dựa trên OLE DB . Chúng cung cấp 1 mức linh động ma ODBC không thể thực hiện được . Tuy RDO cũng có những chức năng đặt biệt mà ADO không có , nhưng ngược lại ADO có những chức năng thông dụng , tối ưu hơn như xử lý lọc , sắp xếp mẩu tin mà không cần trở lại Server . Điều này không có trong RDO. ODBC(Open Database Connectivity):ODBC mô hình cho phép các ứng dụng khác có thể truy cập vào dữ liệu SQL server , cho phép sử dụng những câu lệnh SQL thực thi thông qua chúng . Tuy nhiên ODBC không hỗ trợ những kiểu dữ liệu không chuẩn hóa như cấu trúc thư mục hay nhiều bảng liên kết. OLE DB: Điểm khác biệt giữa OLE DB và ODBC đó là : OLE DB có thể giao tiếp với cả 2 loại dữ liệu thuộc dạng bảng và không dạng bảng bằng trình điều khiển gọi là Provider. Provider không giống như trình điều khiển ODBC . Chúng là phần cơ bản của ADO. JDBC( Java database connectivity):JDBC là trình điều khiển truy cập dữ liệu của Java . Khi sử dụng Java trong ứng dụng của bạn với SQL Server thi JDBC được làm cầu nối với ODBC của họ sản phẩm Microsoft. Ngoài những mô hình kết nối dữ liệu trình bày ở trên , chúng ta còn 1 số mô hình khác như RDO( Remote Data Objects), DB-Lib, VB-SQL, DAO( Data Access Objects). 5. CÁC THÀNH PHẦN CẤU THÀNH CỦA SQL SERVER 2000 RDBMS cũng như SQL Server chứa đựng nhiều đốI tượng bao gồm : Database : cơ sở dữ liệu của SQL Server Tập tin log : tập tin lưu dữ những chuyển tác cua SQL Tables: bảng dữ liệu Filegroups:tập tin nhóm Diagrams:sơ đồ quan hệ Views:khung nhìn ( hay bảng ảo) số liệu dựa trên bảng Stored Procedure: Thủ tục và hàm nội Users defined Function:Hàm cho người dùng định nghĩa Users : NgườI sử dụng cơ sở dữ liệu Roles : Các qui định vai trò và chức năng trong hệ thống SQL Server Rules : Những qui tắc Defaults : Các giá trị mặc nhiên User-defined data types : Kiểu dữ liệu do người dùng tự định nghĩa Full-tẽt catalogs : Tập phân loại dữ liệu text . 6. ĐỐI TƯỢNG CƠ SỞ DỮ LIỆU Cơ sở dữ liệu là đốI tượng cao nhất khi bạn làm việc với SQL Server , tuy nhiên những đối tượng con của cơ sở dữ liệu mới là thành phần chính của cơ sở dữ liệu.Bản thân SQL Server là 1 hệ cơ sở dữ liệu, chúng bao gồm các đốI tượng như database , table , view , stored procedure nêu trên cùng 1 số cơ sở dữ liệu hỗ trợ khác Cơ sở dữ liệu SQL Server là cơ sở dữ liệu đa người dùng, với mỗi Server bạn chỉ co 1 hệ quản trị cơ sở dữ liệu , . Nếu muốn có nhiều hệ quản trị cơ sở dữ liệu bạn cần có nhiều Server tương ứng Truy cập cơ sở dữ liệu của SQL Server dựa vào những tài khoản người dùng riêng biệt và ứng vớI quyền truy cập nhất định . Khi cài đặt SQL Server bạn có 6 cơ sở dữ liệu mặc định như sau: Master Model Msdb Tempdb Pubs Northwind 6. GIỚI THIỆU VỀ ĐỐI TƯỢNG CỦA CƠ SỞ DỮ LIỆU BẢNG _ TABLE: Trong cơ sở dữ liệu , bảng (table ) là phần chính của chúng . Do bảng là đối tượng lưu trữ dữ liệu thực , khi cần giao tiếp với cơ sở dữ liệu khác, bảng la đối tượng căn bản nhất trong bất kỳ loại cơ sở dữ liệu nào , chúng được coi như 1 miền dữ liệu Mỗi bảng được định nghĩa nhiều trường , mỗi trường ( field còn gọi la column name ) ứng với 1 loại kiểu dữ liệu . Dữ liệu nhập vào có thể chấp nhận hay từ chối tùy thuộc vào nguyên tắc ràng buộc dữ liệu hay loại dữ liệu tương thích do hệ thống hay người dùng định nghĩa . Khi làm việc trong ngành cơ sở dữ liệu hay lập trình , để đặt tên cho 1 bảng trong cơ sở dữ liệu SQL Server , bạn cần đặt tên đúng chuẩn , điều này giúp cho các bạn làm việc theo nhóm lập trình , hay công ty chuyên nghiệp , bạn nên sử dụng tiếp đầu ngữ “ tbl “ trước kế đến là tên bảng . CHỈ MỤC – INDEXS Index hay còn gọi là chỉ mục, đối tượng này chỉ tồn tại trong bảng hay khung nhìn (View) . Chỉ mục có ảnh hưởng đến tốc độ truy cập số liệu ,nhất là khi cần tìm kiếm thông tin trên bảng . Chỉ mục giúp tăng tốc cho việc tìm kiếm . Chỉ mục có 2 loạI sau : Clustered : Ứng với loại chỉ mục này 1 bảng chỉ có 1 chỉ mục , và số liệu được sắp xếp theo trang . Non-Clustered : Ứng với loại chỉ mục này 1 bảng chỉ có thể có nhiều chỉ mục và số liệu được sắp xếp theo trường dữ liệu mà bạn trỏ đến BẪY LỖI – TRIGGERS Trigger là đối tượng chỉ tồn tại trong bảng , cụ thể là 1 đoạn mã, và tự động thực thi khi có 1 hành động nào đó xảy ra đối với dữ liệu trong bảng như Insert, Update, Delete Trigger có thể sử dụng để bẩy rất nhiều tình huống như copy dữ liệu , xóa dữ liệu , cập nhật dữ liệu , kiểm tra dữ liệu theo 1 cách nào đó RÀNG BUỘC_ CONSTRAINTS Constranit là 1 đối tượng , nó là 1 phần nhỏ trong bảng , chúng ràng buộc dữ liệu trong bảng hay các bảng khác phảI tuân theo 1 quy tắc nào đó DIAGRAM_ LƯỢC ĐỒ QUAN HỆ Khi xây dựnng cơ sở dữ liệu cho ứng dụng hay thương mại điện tử , thường phảI dựa trên trình phân tích thiết kế hệ thống . Sau những bước phân tích và thiết kế , bạn sẽ thiết lập quan hệ dữ liệu giữa các thưc thể ERD ( Entity relationship diagram ) Bằng mô hình quan hệ này bạn đưa chúng vào xây dựng trên cơ sở dữ liệu thực của SQL Server Diagram là công cụ duy nhất giúp bạn thực hiện công việc kết nối trên . KHUNG NHÌN_ VIEWS View là 1 khung nhìn (hay bảng ảo) của bảng. Cũng giống như bảng nhưng View không thể chứa dữ liệu, bản thân View có thể tạo thêm trường mới dựa vào những phép toán , biểu thức của SQL Server . Bên cạnh đó View có thể kết nối nhiều bảng lại với nhau theo quan hệ nhất định cùng với những tiêu chuẩn , nhằm tạo ra 1 bảng dữ liệu theo nhu cầu của người dùng . Cho đến nay , trong SQL Server 2000 , mục đích của View là kiểm soát tất cả những gì mà ngườI sử dụng muốn thấy , nó bao gồm 2 ảnh hưởng chính đó là tính bảo mật và dễ sử dụng . THỦ TỤC NỘI_ STORED PROCEDURE Stored procedure còn gọi là Spocs , tiếp tục phát triển như 1 phần lập trình SQL trên cơ cở dữ liệu . Stored Procedure cho phép khai báo biến , nhận tham số cũng như thực thi các phát biểu có điều kiện . Thông qua Stored Procedure, bạn có thể sử dụng tài nguyên của mỗi chuyển tác trên Server có liên quan đến cơ sở dữ liệu. Các ưu điểm của chúng như sau : Kế thừa tất cả các phát biểu của SQL , và là 1 đối tượng xử lý số liệu hiệu quả nhất khi dùng SQL Server Tiết kiệm thời gian thưc thi trên dữ liệu Có thể gọi Stored Procedure theo cách gọi của thủ tục hay hàm trong các ngôn ngữ lập trình truyền thống , đồng thờI sử dụng lạI khi có yêu cầu SỬ DỤNG KIỂU DỮ LIỆU CURSOR( CURSOR TYPE ) Khi dùng cơ sở dữ liệu SQL Server , nếu có nhu cầu tính toán trên bảng số liệu , chuyển tác thực hiện trên từng mẫu tin , bạn hãy nghĩ đến kiểu dữ liệu mang tên CURSOR . 7. TIỆN ÍCH MẠNG CLIENT/SERVER Khi nó đến những tiện ích về mạng , chắc hẳn bạn biết rằng công việc cấu trình này do người quản lý mạng đảm nhận . Để các máy PC khác có thể kết nối và sử dụng cơ sở dữ liệu SQL Server trong hệ thống mạng bạn cần cấu hình các tiện ích trên máy trạm giống như cấu hình của Server . Bạn gọi tiện ích cấu hình mạng bằng cách chọn Start ® Programs®Microsoft SQL Server 2000 ®Client Netword Utility SQL Server cung cấp 1 bộ thư viện Net-Libraries hay còn gọi là NetLibs. Thư viện này gồm nhiều nghi thức (còn gọi là Protocol) kết nối cho phép các máy trạm có thể truy cập cơ sở dữ liệu vào SQL Server : Named Pipes TCP/IP Multiprotocol NWLink IXP/SPX AppleTalk Banyan VINES Shared Memory VIA 8. TRÌNH ENTERPRISE MANAGER Enterprise Manager còn gọi là EM , là màn hình điều khiển khi quản trị SQL Server . EM cung cấp cho người quản trị nhiều chức năng để quản lý SQL Server bằng giao diện đồ họa Bắt đầu từ SQL Server 7.0 trình điều khiển này đã cung cấp những tính năng giao diện đồ họa để tạo các lượt đồ quan hệ thực thẻ ERD ( Entity Relationship Diagram ), tạo bảng , view , stored procedure, trigger …. Những chức năng trong Enterprise Manager Tạo , Cập nhật , Xóa cơ sở dữ liệu và đối tượng của chúng Tạo , Cập nhật , Xóa các gói Data Transformation Packages Quản lý lập trình backup dữ liệu Quản lý ngườI dùng đang truy cập SQL Server và cơ sở dữ liệu Cấu hình Job Managerment Tạo , cập nhật , xóa , quyền Login user Thiết lập và quản lý Mail Server Tạo và quản lý tìm kiếm Cấu hình cho Server Tạo và cấu hình cho Replication Ngoài ra EM còn có 1 vài chức năng khác như đăng ký nhiều SQL server khác , SQL Server Profiler , Query Analyzer 9. TRÌNH QUERY ANALYZER Công cụ này giúp cho bạn phát triển hay gở rối trong SQL Server , Query Analyzer là công cụ cung cấp bởi SQL Server , là trình soạn thảo và thực thi câu lệnh SQL hay Stored Procedure Để sử dụng trình này bạn cần phải kết nối vào SQL Server . Khi kích hoạt chúng bạn cần cung cấp tên Server của SQL server muốn kêt nối , đồng thời cung cấp Username và Password để đăng nhập Khi cung cấp Username và Password , chúng phụ thuộc vào sự xác nhận 2 yếu tố , nếu Username và Password của bạn được kế thừa Username và Password của Windows NT/2000 thì Authentication là Windows Authentication, ngược lại bạn chọn SQL Server Authentication Nếu bạn kíck hoạt Query Analyzer từ EM thì yêu cầu trên không cần thiết, nếu bạn kích hoạt từ menu Start/Programs/MS SQL Server 2000/Query Analyzer thì yêu cầu trên được xuất hiện . Sau khi đăng nhập Query Analyzer , bạn có thể thay đổi cơ sở dữ liệu dể thực thi từ DB combo box hoặc có thể sử dụng phát biểu SQL để chuyển đổi cơ sở dữ liệu làm việc. TỔNG KẾT ƯU KHUYẾT ĐIỂM – HƯỚNG PHÁT TRIỂN Ưu điểm: Với chương trình Xây Dựng Hệ Thống Trợ Giúp Sắp Xếp Lịch Sử Dụng Phòng sẽ giúp cho Phòng đào tạo quản lý lịch sử dụng phòng trong trường Đại học Dân lập Kỹ thuật Công nghệ một cách hiệu quả, nắm bắt được tình hình sử dụng phòng, thống kê được lịch sử dụng phòng. Chương trình Xây Dựng Hệ Thống Trợ Giúp Sắp Xếp Lịch Sử Dụng Phòng đã được xây dựng khá hoàn chỉnh, đáp ứng được nhu cầu truy vấn thông tin nhanh chóng và giải quyết được việc tổ chức cơ sở dữ liệu nhất quán và lưu trữ thông tin. Khuyết điểm: Chương trình vì được xây dựng trong một thời gian quá ngắn nên còn nhiều khuyết điểm và thiếu sót như: Chưa sắp xếp được lịch sử dụng phân theo ngày trong tuần, theo học kỳ. Một phòng chỉ có thể cho đăng ký một lớp học duy nhất. Tôi sẽ cố gắng hoàn thiện trong các phiên bản tới.Rất mong sự đóng góp ý kiến của quý Thấy Cô và các bạn quan tâm đến vấn đề này. Hướng phát triển: Hiện nay chương trình Xây Dựng Hệ Thống Trợ Giúp Sắp Xếp Lịch Sử Dụng Phòng chưa quản lý tốt các thông tin về giáo viên, môn học, học kỳ, học phần,… nên thông tin lưu trữ còn hạn chế.Ngoài ra chưa sắp xếp lịch sử dụng phòng theo dạng thời khóa biểu trong tuần. Trong tương lai, chương trình Xây Dựng Hệ Thống Trợ Giúp Sắp Xếp Lịch Sử Dụng Phòng có thể áp dụng cho hệ thống quản lý phòng của trường và có thể mở rộng hơn nữa việc sắp xếp lịch giảng dạy, lịch học từng lớp để xây dựng một hệ thống thời khóa biểu hoàn chỉnh. TÀI LIỆU THAM KHẢO ------------------- Lập trình ứng dụng chuyên nghiệp SQL SERVER 2000 toàn tập Nhà xuất bản Lao động – xã hội. Phạm Hữu Khang (chủ biên). Bài tập và bài giải tham khảo SQL SERVER 7.0 DN Sách Thành Nghĩa TP HCM – Nhà sách Nguyễn Văn Cừ. ThS Nguyễn Gia Tuấn Anh – Trương Châu Long (biên soạn). Lập trình Windows với C#.NET Nhà xuất bản Lao động – xã hội. Phương Lan (chủ biên). Inside C# - Tập 1 Nhà xuất bản Thống Kê. Phạm Hồng Tài – Nguyễn Phước Lành – Đỗ Kim Oanh (biên soạn).

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

  • docCHUONGTRINH.doc
Tài liệu liên quan