Là một công cụ thực thi mã trung gian tựa JVM Thư viện lớp Framework Class Library – FCL Là một thành phần chính khác của .NET Framework là một tập hợp hướng đốitượng của các kiểu dữ
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Tel (84-511) 736 949, Fax (84-511) 842 771Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn
LUẬN VĂN TỐT NGHIỆP KỸ SƯ
NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH : 05115
ĐỀ TÀI : XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ ĐIỂM
HỆ VỪA HỌC VỪA LÀM QUA HỆ THỐNG MẠNG CỤC BỘ
Mã số : 06T2 - 037 Ngày bảo vệ : 15-16/06/2011
SINH VIÊN : LÊ ĐỨC THỌ LỚP : 06T2
CBHD :ThS PHAN CHÍ TÙNG
ĐÀ NẴNG - 2011
Trang 2……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
Đà Nẵng, Ngày…….tháng…….năm 2011
Giảng viên hướng dẫn
Th.S PHAN CHÍ TÙNG
Trang 3……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
……….……
Trang 4Em xin chân thành cảm ơn khoa Công nghệ thông tin, trường Đại học Bách khoa, Đại học Đà Nẵng đã tạo điều kiện thuận lợi cho em học tập và hoàn thành tốt
đề tài này.
Em xin chân thành cảm ơn các thầy cô trong khoa Công nghệ thông tin đã tận tình giảng dạy, trang bị cho em những kiến thức quý báu trong quá trình học tập tại trường đã đóng góp rất nhiều để hoàn thành đề tài.
Em xin bày tỏ lòng biết ơn sâu sắc đến thầy Phan Chí Tùng đã tận tình hướng dẫn, chỉ bảo em trong suốt quá trình thực hiện đề tài.
Xin cảm ơn sự quan tâm, giúp đỡ, ủng hộ, động viên của bạn bè trong quá trình học tập cũng như trong quá trình hoàn thành tiến độ đề tài ở từng giai đoạn.
Em xin chân thành cảm ơn !
Trang 5Tôi xin cam đoan :
1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy ThS Phan Chí Tùng.
2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm.
Sinh viên,
LÊ ĐỨC THỌ
Trang 6CHƯƠNG 1 4
CƠ SỞ LÝ THUYẾT 4
I Giới thiệu về công nghệ sử dụng 4
I.1 Microsoft NET 4
I.1.1 Tổng quan 4
I.1.2 Kiến trúc Net Framework 5
I.1.3 Biên dịch và ngôn ngữ trung gian (MSIL) 8
I.2 Ngôn ngữ C# 9
I.2.1 C# là ngôn ngữ đơn giản 9
I.2.2 C# là ngôn ngữ hiện đại 9
I.2.3 C# là ngôn ngữ hướng đối tượng 10
I.2.4 C# là ngôn ngữ mạnh mẽ và mềm dẻo 10
I.2.5 C# là ngôn ngữ hướng module 10
I.2.6 C# sẽ trở nên phổ biến 10
I.3 Giới thiệu mô hình 3-layer 10
I.4 Giới thiệu về SQL Server 11
I.4.1 SQL là ngôn ngữ cơ sở dữ liệu quan hệ 12
I.4.2 Vai trò của SQL 13
II Lý thuyết về cách thức quản lý điểm 13
II.1 Đối tượng sử dụng 14
II.2 Quá trình quản lý điểm 14
II.3 Quy trình quản lý điểm 15
CHƯƠNG 2 17
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 17
I Khảo sát hệ thống 17
I.1 Mô tả bài toán 17
I.2 Yêu cầu 18
I.3 Phân tích và đặc tả yêu cầu 19
II Thiết kế cơ sở dữ liệu 23
II.1 Đối tượng và mối quan hệ được quản lý 23
Trang 7II.2 Bảng từ điển và thuộc tính của các đối tượng 24
II.2.1 Bảng từ điển dữ liệu 24
II.2.2 Thuộc tính của các đối tượng 26
II.3 Mô hình dữ liệu quan hệ giữa các bảng 28
II.3.1 Ràng buộc dữ liệu và khóa 30
II.3.2 Mô tả các bảng 30
CHƯƠNG 3 36
KẾT QUẢ CHƯƠNG TRÌNH 36
I Giao diện chính 36
II Danh mục của chương trình 36
III Các chức năng của chương trình 41
KẾT LUẬN 46
PHỤ LỤC 47
TÀI LIỆU THAM KHẢO 65
Trang 8Hình 1: Kiến trúc khung ứng dụng Net……… ………… 5
Hình 2: CLR độc lập với Hệ điều hành……… ……… 6
Hình 3: Quá trình thực thi……….………… …… 8
Hình 4: Mô hình 3 layer……… ……… 11
Hình 5: Mô hình thực thể kết hợp ……… ……… 22
Hình 6: Mô hình quan hệ giữa các bảng……… ……… 29
Hình 7: Giao diện chính của chương trình……… …….….36
Hình 8: Các danh mục của chương trình……… …… …36
Hình 9: Danh mục Hệ Đào Tạo……… …… ….37
Hình 10: Danh mục Khối Lớp……… ……….37
Hình 11: Danh mục Học Kỳ……… …………38
Hình 12: Danh mục Giảng Viên……… ……… …38
Hình 13: Danh mục Sinh Viên……… ………….39
Hình 14: Danh mục Học Phần……….….……… 39
Hình 15: Danh mục Lớp……….…….……….… 40
Hình 16: Danh mục Kế Hoạch Giảng Dạy……….……….……….… 40
Hình 17: Giao diện các chức năng của chương trình……….…….……….… 41
Hình 18: Form nhập điểm ……….……… ……….… 41
Hình 19: Form Quản Lý Điểm……….… …………42
Hình 20: Form Xem điểm sinh viên trong học kỳ……….……….…….… 42
Hình 21: Mẫu Excel bảng điểm của sinh viên……….……….…….….43
Hình 22: Form xem điểm lớp……….…… 43
Hình 23: Mẫu Excel bảng điểm của lớp……….……… ……… 44
Hình 24: Form Danh sách học lại……… 44
Hình 25: Form báo cáo danh sách lớp……… 45
Hình 26: Form liên hệ……….45
DANH MỤC CÁC TỪ VIẾT TẮT
Trang 91 IDE Integrated Development Environment
2 XML Extensible Markup Language
4 CLS Common Language Specification
5 FCL Framework Class Library
6 CLR Common Language Runtime
7 BLL Business Logic Layer
9 SQL Structured Query Language
11 CVD Chuyên viên đào tạo
12 HSSV Học sinh sinh viên
15 FDD Function Decomposition Diagram
17 CNTT Công nghệ thông tin
MỞ ĐẦU
Trang 10sâu vào rất nhiều lĩnh vực Giáo dục và đào tạo cũng đang từng bước đưa khoa học vàcông nghệ vào áp dụng trong đó, lĩnh vực quản lý là một trong số lĩnh vục được ápdụng Chúng ta có thể thấy rằng có rất nhiều chương trình được viết ra như: Quản lýthư viện, quản lý học sinh, sinh viên hay quản lý giáo viên…và trong đó không thểkhông nói tới lĩnh vực quản lý điểm Qua một thời gian tìm hiểu và làm việc, em đãxây dựng hoàn thành chương trình Quản lý điểm của một khoa trong trường Đại học
và Cao Đẳng Qua quá trình tìm hiểu đề tài chúng em nhận thấy việc “Quản lý điểm”
là không thể thiếu trong trường học Bởi vì đó là cơ sở để đánh giá kết quả học tập vàrèn luyện của sinh viên trong quá trình học tập tại trường Nếu không có cơ sở dữ liệu
để quản lý điểm thì sẽ không có cơ sở để đánh giá quá trình học tập của sinh viên, vànghiễm nhiên là sinh viên đã tốn một khoảng thời gian mà không thu lại được gì Do
đó, em mạnh dạn tìm hiểu và xây dựng chương trình” quản lý điểm sinh viên hệ vừa
học vừa làm qua hệ thống mạng cục bộ “cho sinh viên.
2 Mục đích của đề tài
- Mang tính chuyên nghiệp cho việc quản lý của trường
- Hồ sơ lưu trữ của nhà trường sẽ được tốt hơn
- Đáp ứng nhu cầu xử lý tính toán, tìm kiếm, thống kê, xuất báo cáo thông tin
và điểm số của sinh viên một cách nhanh chóng, chính xác và có hiệu quả
3 Nhiệm vụ thực hiện
- Các nguồn điều tra
Với hệ thống này có thể thấy nguồn điều tra bao gồm :
+ Người dùng hệ thống: là giáo vụ khoa, sinh viên, các thầy cô …
+ Các mẫu biểu, bảng điểm, danh sách sinh viên, các báo cáo tổng kết…
+ Các phần mềm quản lý điểm hiện có trên thị trường
- Phương pháp điều tra
+ Tham khảo ý kiến của các thầy cô, các anh chị khóa trước và trên Internet…
Trang 11- Tìm hiểu đề tài
Quá trình quản lý điểm được diễn ra như sau:
+ Sau khi thi và có điểm của các môn thi Điểm của các môn thi được chuyểntới phòng giáo vụ khoa, nhiệm vụ của phòng là nhập điểm của từng môn học đó vào
cơ sở dữ liệu
+ Thang điểm tối đa của mỗi môn học là thang điểm 10 Sau mỗi kỳ học thìgiáo vụ khoa sẽ tiến hành sắp xếp phân loại sinh viên Đối với những sinh viên khágiỏi thì tiến hành khen thưởng
+ Phân loại sinh viên để từ đó đề ra phương hướng dạy và học tập của khoa sao chokết quả học tập và dạy học trong kỳ tới đạt nhiều thành tích cao hơn kỳ vừa qua
Trang 12Đề tài bao gồm 3 phần: phần mở đầu, phần nội dung, phần kết luận
Phần nội dung gồm
Cơ sở lý thuyết: Cung cấp các kiến thức cơ bản về các công nghệ, ngôn ngữ
lập trình và mô hình được sử dụng để xây dựng chương trình Nghiên cứu cách quản
lý điểm hệ vừa học vừa làm…
Visual Studio 2008
Microsoft SQL Server 2005
Microsoft Net
Phân tích và thiết kế hệ thống: Nhằm đi sâu chi tiết vào các chức năng của hệ
thống Xây dựng biểu đồ phân cấp chức năng, biểu đồ luồng dữ liệu Từ đó xác địnhcác thực thể, kiểu thực thể, các thuộc tính và xây dựng mô hình thực thể liên kết cho
hệ thống
Khảo sát yêu cầu
+ Mô tả bài toán+ Yêu Cầu+ Phân tích và đặc tả yêu cầu
Thiết kế cơ sở dữ liệu
Kết quả chương trình: Chạy DEMO chương trình Phân tích dữ liệu cho ta
cách thức tổ chức và truy cập dữ liệu hiệu quả nhất
Trang 13CHƯƠNG 1
CƠ SỞ LÝ THUYẾT
I.1 Microsoft NET
Tổng quan
Microsoft NET gồm 2 phần chính: Framework và Integrated DevelopmentEnvironment (IDE) Framework cung cấp những gì cần thiết và căn bản, chữFramework có nghĩa là khung hay khung cảnh trong đó ta dùng những hạ tầng cơ sởtheo một qui ước nhất định để công việc được trôi chảy IDE thì cung cấp một môitrường giúp chúng ta triển khai dễ dàng, và nhanh chóng các ứng dụng dựa trên nềntảng NET
Nếu không có IDE chúng ta cũng có thể dùng một trình soạn thảo ví nhưNotepad hay bất cứ trình soạn thảo văn bản nào và sử dụng command line để biêndịch và thực thi, tuy nhiên việc này mất nhiều thời gian Tốt nhất là chúng ta dùngIDE phát triển các ứng dụng, và cũng là cách dễ sử dụng nhất
Thành phần Framework là quan trọng nhất NET là cốt lõi và tinh hoa của môitrường, còn IDE chỉ là công cụ để phát triển dựa trên nền tảng đó Trong NET toàn
bộ các ngôn ngữ C#, Visual C++ hay Visual Basic.NET đều dùng cùng một IDE
Tóm lại, Microsoft NET là nền tảng cho việc xây dựng và thực thi các ứngdụng phân tán, độc lập với hệ điều hành Một số tính năng của Microsoft NET chophép những nhà phát triển sử dụng như sau:
Tích hợp một số công nghệ đã có của Microsoft và một số công nghệ mớinhằm tạo ra giao diện lập trình mới
Sử dụng mã trung gian, độc lập với hệ điều hành
Đa ngôn ngữ và tốc độ phát triển ứng dụng nhanh
Một mô hình lập trình cho phép nhà phát triển xây dựng các ứng dụngdịch vụ web và ứng dụng client với Extensible Markup Language (XML)
Cung cấp các server phục vụ bao gồm: Windows 2000, SQLServer, và BizTalk Server, tất cả điều tích hợp, hoạt động, và quản lý cácdịch vụ XML Web và các ứng dụng
Nhiều công cụ hỗ trợ như Visual Studio NET, để phát triển các dịch vụWeb XML, ứng dụng trên nền Windows hay nền web một cách dể dàng và
Trang 14hiệu quả.
I.1.1 Kiến trúc Net Framework
.Net hỗ trợ tích hợp ngôn ngữ, tức là ta có thể kế thừa các lớp, bắt các biệt lệ,
đa hình thông qua nhiều ngôn ngữ .Net Framework thực hiện được việc này là nhờvào đặc tả Common Type System – CTS (hệ thống kiểu chung) mà tất cả các thànhphần Net đều tuân theo Ví dụ, mọi thứ trong Net đều là đối tượng, thừa kế từ lớpgốc System.Object
Ngoài ra Net còn bao gồm Common Language Specification – CLS (đặc tảngôn ngữ chung) Nó cung cấp các qui tắc cơ bản mà một ngôn ngữ muốn tích hợpphải thoả mãn CLS chỉ ra các yêu cầu tối thiểu của ngôn ngữ hỗ trợ Net Trình biêndịch tuân theo CLS sẽ tạo các đối tượng có thể tương hợp với các đối tượng khác Bộthư viện lớp của khung ứng dụng (Framework Class Library – FCL) có thể được dungbởi bất kỳ ngôn ngữ nào tuân theo CLS
.Net Framework nằm ở tầng trên của hệ điều hành (bất kỳ hệ điều hành nàokhông chỉ là Windows) .Net Framework bao gồm:
Bốn ngôn ngữ chính thức: C#, VB.Net, C++, và Jscript.Net
Common Language Runtime – CLR, nền tảng hướng đối tượng cho pháttriển ứng dụng Windows và Web mà các ngôn ngữ có thể chia sẻ sử dụng
Bộ thư viện Framework Class Library – FCL
Hình 1 : Kiến trúc khung ứng dụng Net
Trang 15.NET Framework có hai thành phần chính: Common Language Runtime(CLR) và thư viện lớp NET Framework Phần tiếp theo sẽ mô tả rõ hơn về 2 thànhphần này.
Common Language Runtime (CLR)
CLR là nền tảng của NET Framework Nó cung cấp môi trường cho ứngdụng thực thi, CLR là một máy ảo, tương tự máy ảo Java Chúng ta có thể hiểuruntime như là một agent quản lý mã nguồn khi nó được thực thi, cung cấp các dịch
vụ cốt lõi như: quản lý bộ nhớ, quản lý tiểu trình, và quản lý từ xa
Khái niệm quản lý mã nguồn là nguyên lý nền tảng của runtime Mã nguồn
mà đích tới runtime thì được biết như là mã nguồn được quản lý và khôngbao giờ được dịch (managed code) Trong khi đó mã nguồn mà không có đích tớiruntime thì được biết như mã nguồn không được quản lý (unmanaged code) Khảnăng hoạt động giữa mã nguồn được quản lý và mã nguồn không được quản lý chophép người phát triển tiếp tục những thành phần cần thiết của COM và DLL
.NET Compile r
Intermediate Language
Intermediate Language
CLR for Linux CLR for Window
s
CLR for Unix
Linux Native code Native code Windows Native code Unix
Trang 16 Là một công cụ thực thi mã trung gian (tựa JVM)
Thư viện lớp (Framework Class Library – FCL)
Là một thành phần chính khác của NET Framework là một tập hợp hướng đốitượng của các kiểu dữ liệu được dùng lại, nó cho phép chúng ta có thể phát triểnnhững ứng dụng từ những ứng dụng truyền thống command-line hay những ứng dụng
có giao diện đồ họa (GUI) đến những ứng dụng mới nhất được cung cấp bởiASP.NET, như là Web Form và dịch vụ XML Web
Thư viện lớp NET Framework là một tập hợp những kiểu dữ liệu được dùnglại và được kết hợp chặt chẽ với Common Language Runtime Thư viện lớp là hướngđối tượng cung cấp những kiểu dữ liệu mà mã nguồn được quản lý của chúng ta cóthể dẫn xuất Điều này không chỉ làm cho những kiểu dữ liệu của NET Framework dễ
sử dụng mà còn làm giảm thời gian liên quan đến việc học đặc tính mới của NETFramework Thêm vào đó, các thành phần của các hãng thứ ba có thể tích hợp vớinhững lớp trong NET Framework
Cũng như mong đợi của người phát triển với thư viện lớp hướng đối tượng,kiểu dữ liệu NET Framework cho phép người phát triển thiết lập nhiều mức độ thôngdụng của việc lập trình, bao gồm các nhiệm vụ như: quản lý chuỗi, thu thập hay chọnlọc dữ liệu, kết nối với cơ cở dữ liệu, và truy cập tập tin Ngoài những nhiệm vụ thôngdụng trên Thư viện lớp còn đưa vào những kiểu dữ liệu để hỗ trợ cho những kịch bảnphát triển chuyên biệt khác Ví dụ người phát triển có thể sử dụng NET Framework
để phát triển những kiểu ứng dụng và dịch vụ như sau:
Trang 17I.1.2 Biên dịch và ngôn ngữ trung gian (MSIL)
Với Net, chương trình không biên dịch thành tập tin thực thi, mà biên dịchthành ngôn ngữ trung gian MSIL (Microsoft Intermediate Language, viết tắc là IL),sau đó chúng được CLR thực thi Các tập tin IL biên dịch từ C# đồng nhất với các tậptin IL biên dịch từ ngôn ngữ Net khác
Khi biên dịch dự án, mã nguồn C# được chuyển thành tập tin IL lưu trên đĩa.Khi chạy chương trình thì IL được biên dịch (hay thông dịch) một lần nữa bằng trìnhJust In Time – JIT, khi này kết quả là mã máy và bộ xử lý sẽ thực thi
Hình 3: Quá trình thực thiTrình biên dịch JIT chỉ chạy khi có yêu cầu Khi một phương thức được gọi,JIT phân tích IL và sinh ra mã máy tối ưu cho từng loại máy JIT có thể nhận biết mãnguồn được biên dịch chưa, để có thể chạy ngay ứng dụng hay phải biên dịch lại CLS
có nghĩa là các ngôn ngữ Net cùng sinh ra mã IL Các đối tượng được tạo theo một
…
.NET Compile r
.NET Compile r
Intermediate Language
Intermediate Language
Native code
Just In Time
Compiler
Trang 18ngôn ngữ nào đó sẽ được truy cập và kế thừa bởi các đối tượng thuộc ngôn ngữ khác.
Vì vậy ta có thể tạo được một lớp cơ sở trong VB.Net và thừa kế nó từ C#
I.2 Ngôn ngữ C#
Ngôn ngữ C# có ý nghĩa cao khi nó thực thi những khái niệm lập trình hiệnđại C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần component, lập trìnhhướng đối tượng Được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++
và Java
Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được tạo
từ nền tảng phát triển hơn Microsoft bắt đầu với công việc trong C và C++ và thêmvào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn Nhiều trong sốnhững đặc tính này khá giống với những đặc tính có trong ngôn ngữ Java Khôngdừng lại ở đó, Microsoft đưa ra một số mục đích khi xây dựng ngôn ngữ này Nhữngmục đích này được được tóm tắt như sau:
C# là ngôn ngữ đơn giản
C# là ngôn ngữ hiện đại
C# là ngôn ngữ hướng đối tượng
C# là ngôn ngữ mạnh mẽ và mềm dẻo
C# là ngôn ngữ có ít từ khoá
C# là ngôn ngữ hướng module
C# sẽ trở nên phổ biến
I.2.1 C# là ngôn ngữ đơn giản
- C# loại bỏ được một vài sự phức tạp và rối rắm của các ngôn ngữ C++ vàJava
- C# khá giống C / C++ về diện mạo, cú pháp, biểu thức, toán tử
- Các chức năng của C# được lấy trực tiếp từ ngôn ngữ C / C++ nhưng đượccải tiến để làm cho ngôn ngữ đơn giản hơn
I.2.2 C# là ngôn ngữ hiện đại
C# có được những đặc tính của ngôn ngữ hiện đại như:
- Xử lý ngoại lệ
- Thu gom bộ nhớ tự động
- Có những kiểu dữ liệu mở rộng
Trang 19- Bảo mật mã nguồn
I.2.3 C# là ngôn ngữ hướng đối tượng
C# hỗ trợ tất cả những đặc tính của ngôn ngữ hướng đối tượng là:
- Sự đóng gói (encapsulation)
- Sự kế thừa (inheritance)
- Đa hình (polymorphism)
I.2.4 C# là ngôn ngữ mạnh mẽ và mềm dẻo
- Với ngôn ngữ C#, chúng ta chỉ bị giới hạn ở chính bản thân của chúng ta.Ngôn ngữ này không đặt ra những ràng buộc lên những việc có thể làm
- C# được sử dụng cho nhiều dự án khác nhau như: tạo ra ứng dụng xử lý vănbản, ứng dụng đồ họa, xử lý bảng tính; thậm chí tạo ra những trình biên dịch cho cácngôn ngữ khác
- C# là ngôn ngữ sử dụng giới hạn những từ khóa Phần lớn các từ khóa dùng
để mô tả thông tin, nhưng không gì thế mà C# kém phần mạnh mẽ Chúng ta có thểtìm thấy rằng ngôn ngữ này có thể được sử dụng để làm bất cứ nhiệm vụ nào
I.2.5 C# là ngôn ngữ hướng module
- Mã nguồn của C# được viết trong Class (lớp) Những Class này chứa cácMethod (phương thức) thành viên của nó
- Class (lớp) và các Method (phương thức) thành viên của nó có thể được sửdụng lại trong những ứng dụng hay chương trình khác
I.2.6 C# sẽ trở nên phổ biến
C# mang đến sức mạnh của C++ cùng với sự dễ dàng của ngôn ngữ Visual Basic
I.3 Giới thiệu mô hình 3-layer
Trong phát triển ứng dụng, để dễ quản lý các thành phần của hệ thống, cũngnhư không bị ảnh hưởng bởi các thay đổi, người ta hay nhóm các thành phần có cùngchức năng lại với nhau và phân chia trách nhiệm cho từng nhóm để công việc không
bị chồng chéo và ảnh hưởng lẫn nhau Bạn sẽ nghe nói đến thuật ngữ kiến trúc đatầng/nhiều lớp, mỗi lớp sẽ thực hiện một chức năng nào đó, trong đó mô hình 3 lớp làphổ biến nhất 3 lớp này là gì? Là Presentation, Business Logic, và Data Access Cáclớp này sẽ giao tiếp với nhau thông qua các dịch vụ(services) mà mỗi lớp cung cấp đểtạo nên ứng dụng, lớp này cũng không cần biết bên trong lớp kia làm gì mà chỉ cầnbiết lớp kia cung cấp dịch vụ gì cho mình và sử dụng nó mà thôi
Trang 20Ví dụ: Trong một công ty bạn có từng phòng ban, mỗi phòng ban sẽ chịu trách
nhiệm một công việc cụ thể nào đó, phòng này không được can thiệp vào công việcnội bộ của phòng kia như Phòng tài chính thì chỉ phát lương, còn chuyện lấy tiền đâuphát cho các anh phòng Marketing thì các anh không cần biết
Hình 4: Mô hình 3 layer
Vai trò của các layer
- GUI (Presentation) Layer: Nhập liệu và trình bày dữ liệu, có thể bao gồmcác bước kiểm tra dữ liệu trước khi gọi Business Logic Layer
- Business Logic Layer: Kiểm tra các yêu cầu nghiệp vụ trước khi cập nhật
dữ liệu, quản lý các Transaction, quản lý các concurrent access
- Data Access Layer: Kết nối CSDL, tìm kiếm, thêm, xóa, sửa,…trên CSDL
I.4 Giới thiệu về SQL Server
Ngôn ngữ hỏi có cấu trúc (SQL) và các hệ quản trị cơ sở dữ liệu quan hệ làmột trong những nền tảng kỹ thuật quan trọng trong công nghiệp máy tính Cho đếnnay, có thể nói rằng SQL đã được xem là ngôn ngữ chuẩn trong cơ sở dữ liệu Các hệquản trị cơ sở dữ liệu quan hệ thương mại hiện có như Oracle, SQL Server, Informix,DB2, đều chọn SQL làm ngôn ngữ cho sản phẩm của mình
Trang 21Vậy thực sự SQL là gì? Tại sao nó lại quan trọng trong các hệ quản trị cơ sở dữliệu? SQL có thể làm được những gì và như thế nào? Nó được sử dụng ra sao trongcác hệ quản trị cơ sở dữ liệu quan hệ? Nội dung của chương này sẽ cung cấp chochúng ta cái nhìn tổng quan về SQL và một số vấn đề liên quan
I.4.1 SQL là ngôn ngữ cơ sở dữ liệu quan hệ
SQL, viết tắt của Structured Query Language (ngôn ngữ hỏi có cấu trúc), làcông cụ sử dụng để tổ chức, quản lý và truy xuất dữ liệu đuợc lưu trữ trong các cơ sở
dữ liệu SQL là một hệ thống ngôn ngữ bao gồm tập các câu lệnh sử dụng để tươngtác với cơ sở dữ liệu quan hệ
Tên gọi ngôn ngữ hỏi có cấu trúc phần nào làm chúng ta liên tưởng đến mộtcông cụ (ngôn ngữ) dùng để truy xuất dữ liệu trong các cơ sở dữ liệu Thực sự mà nói,khả năng của SQL vượt xa so với một công cụ truy xuất dữ liệu, mặc dù đây là mụcđích ban đầu khi SQL được xây dựng nên và truy xuất dữ liệu vẫn còn là một trongnhững chức năng quan trọng của nó SQL được sử dụng để điều khiển tất cả các chứcnăng mà một hệ quản trị cơ sở dữ liệu cung cấp cho người dùng bao gồm:
• Định nghĩa dữ liệu: SQL cung cấp khả năng định nghĩa các cơ sở dữ liệu,
các cấu trúc lưu trữ và tổ chức dữ liệu cũng như mối quan hệ giữa các thànhphần dữ liệu
• Truy xuất và thao tác dữ liệu: Với SQL, người dùng có thể dễ dàng thực
hiện các thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu trong các cơ
sở dữ liệu
• Điều khiển truy cập: SQL có thể được sử dụng để cấp phát và kiểm soát các
thao tác của người sử dụng trên dữ liệu, đảm bảo sự an toàn cho cơ sở dữliệu
• Đảm bảo toàn vẹn dữ liệu: SQL định nghĩa các ràng buộc toàn vẹn trong cơ
sở dữ liệu nhờ đó đảm bảo tính hợp lệ và chính xác của dữ liệu trước cácthao tác cập nhật cũng như các lỗi của hệ thống
Như vậy, có thể nói rằng SQL là một ngôn ngữ hoàn thiện được sử dụng trongcác hệ thống cơ sở dữ liệu và là một thành phần không thể thiếu trong các hệ quản trị
cơ sở dữ liệu Mặc dù SQL không phải là một ngôn ngữ lập trình như C, C++, Java, song các câu lệnh mà SQL cung cấp có thể được nhúng vào trong các ngôn ngữ lậptrình nhằm xây dựng các ứng dụng tương tác với cơ sở dữ liệu
Khác với các ngôn ngữ lập trình quen thuộc như C, C++, Java, SQL là ngônngữ có tính khai báo Với SQL, người dùng chỉ cần mô tả các yêu cầu cần phải thựchiện trên cơ sở dữ liệu mà không cần phải chỉ ra cách thức thực hiện các yêu cầu nhưthế nào Chính vì vậy, SQL là ngôn ngữ dễ tiếp cận và dễ sử dụng
Trang 22I.4.2 Vai trò của SQL
Bản thân SQL không phải là một hệ quản trị cơ sở dữ liệu, nó không thể tồn tạiđộc lập SQL thực sự là một phần của hệ quản trị cơ sở dữ liệu, nó xuất hiện trong các
hệ quản trị cơ sở dữ liệu với vai trò ngôn ngữ và là công cụ giao tiếp giữa người sửdụng và hệ quản trị cơ sở dữ liệu
Trong hầu hết các hệ quản trị cơ sở dữ liệu quan hệ, SQL có những vai trò nhưsau:
• SQL là ngôn ngữ hỏi có tính tương tác: Người sử dụng có thể dễ dàng thông
qua các trình tiện ích để gởi các yêu cầu dưới dạng các câu lệnh SQL đến cơ sở dữliệu và nhận kết quả trả về từ cơ sở dữ liệu
• SQL là ngôn ngữ lập trình cơ sở dữ liệu: Các lập trình viên có thể nhúng các
câu lệnh SQL vào trong các ngôn ngữ lập trình để xây dựng nên các chương trình ứngdụng giao tiếp với cơ sở dữ liệu
• SQL là ngôn ngữ quản trị cơ sở dữ liệu: Thông qua SQL, người quản trị cơ
sở dữ liệu có thể quản lý được cơ sở dữ liệu, định nghĩa các cấu trúc lưu trữ dữ liệu,điều khiển truy cập cơ sở dữ liệu,
• SQL là ngôn ngữ cho các hệ thống khách/chủ (client/server): Trong các hệ
thống cơ sở dữ liệu khách/chủ, SQL được sử dụng như là công cụ để giao tiếp giữacác trình ứng dụng phía máy khách với máy chủ cơ sở dữ liệu
• SQL là ngôn ngữ truy cập dữ liệu trên Internet: Cho đến nay, hầu hết các máy
chủ Web cũng như các máy chủ trên Internet sử dụng SQL với vai trò là ngôn ngữ đểtương tác với dữ liệu trong các cơ sở dữ liệu
• SQL là ngôn ngữ cơ sở dữ liệu phân tán: Đối với các hệ quản trị cơ sở dữ liệu
phân tán, mỗi một hệ thống sử dụng SQL để giao tiếp với các hệ thống khác trênmạng, gởi và nhận các yêu cầu truy xuất dữ liệu với nhau
• SQL là ngôn ngữ sử dụng cho các cổng giao tiếp cơ sở dữ liệu: Trong một hệ
thống mạng máy tính với nhiều hệ quản trị cơ sở dữ liệu khác nhau, SQL thường được
sử dụng như là một chuẩn ngôn ngữ để giao tiếp giữa các hệ quản trị cơ sở dữ liệu
II Lý thuyết về cách thức quản lý điểm
Dựa theo quyết định số 3676/GD-ĐT ngày 9/12/1994 của Bộ trưởng Bộ Giáodục và đào tạo về các quy định và cách thức tính điểm thi, điểm tổng kết, xét tốtnghiệp của sinh viên
Trang 23II.1 Đối tượng sử dụng
Giáo vụ đóng vai trò Admin: lập bảng phân công giảng dạy các môn học, quản
lý điểm và thông tin của sinh viên
Giảng viên đóng vai trò Giangvien: nhập bảng điểm, quản lý thông tin lớp, sinh
viên
Sinh viên đóng vai trò User: xem điểm tổng kết các môn học, lập báo cáo các
môn học đã kết thúc
II.2 Quá trình quản lý điểm
Trong mỗi kỳ thi, đối với học phần (hoặc nhóm học phần) xác định, sinh viênchỉ được thi một lần Nếu thi chưa đạt hoặc thi đạt nhưng chưa thoả mãn, xin thi lấyđiểm cao hơn, thì sinh viên được thi lại ở kỳ sau và chỉ được thi lại không qua 02 lần.Tuỳ theo đặc điểm của từng học phần, từng trường mà Hiệu trưởng qui định số lần thiđối với trường hợp thi chưa đạt và là điểm thi lần cuối cùng đối với trường hợp đã đạtnhưng thi lại để lấy điểm cao hơn
- Điểm trung bình chung học tập của mỗi năm học, mỗi khoá học và điểmtrung bình chung tất cả các học phần tính từ đầu khoá học được tính theo công thức vàđược tính đến hai chữ số thập phân:
Trong đó : A là điểm trung bình chung học tập năm học, mỗi khoáhọc hoặc điểm trung bình chung các học phần tính từ đầu khoá học
ai là điểm cao nhất trong các lần thi của học phần thứ i
N i
i i
n
n a
1
1
A =
Trang 26CHƯƠNG 2
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
I.1 Mô tả bài toán
• Bài toán Quản lý điểm của một khoa đối với các trường Đại học: Công tác
quản lý điểm (kết quả học tập) của sinh viên đóng vai trò hết sức quan trọng đối vớihoạt động của một khoa trong các trường đại học Trong khoảng 10 năm trở lại đâycông tác quản lý điểm đã dần được tin học hóa nhằm đem lại hiệu quả cao hơn, tincậy hơn
• Bài toán Quản lý điểm đặt ra các vấn đề cơ bản như sau: Thể hiện được mô
hình tổ chức quản lý sinh viên theo khóa, theo lớp, theo các loại hình đào tạo; Quản lýcác môn học của các lớp theo học kỳ và kết quả học tập của sinh viên đối với các mônhọc đó Hệ thống còn phải cho phép tạo ra các báo cáo từ kết quả học tập của sinhviên nhằm phục vụ công tác điều hành huấn luyện như: Tổng kết kết quả học tập theo
kỳ, theo năm, theo khóa; In Danh sách thi lại; In Bảng điểm học kỳ; In Bảng điểm cánhân…
Ngoài các chức năng chính như trên, hệ thống này còn cần thêm một số chứcnăng khác như: cập nhật các loại danh mục dữ liệu (danh mục lớp, danh mục loại hìnhđào tạo, danh mục ngành học …); các chức năng sao lưu và phục hồi dữ liệu; cácchức năng trợ giúp …
• Có thể mô tả sơ lược các công việc chính (đối với 1 khóa học) trong hệ thốngquản lý điểm của một khoa như sau:
1 Với mỗi khóa học mới thì cần phải có mô tả cho khóa mới này
2 Mô tả danh mục các lớp cho khóa mới
3 Với mỗi lớp đã có cập nhật danh sách sinh viên của lớp
4 Với mỗi học kỳ cần cập nhật danh sách môn học, danh sách các lớp họcphần sẽ mở trong kỳ
5 Khi có kết quả các lớp học phần -> Cập nhật điểm môn học / lớp
6 Tổng kết kết quả học tập học kỳ, năm học, khóa học
7 In Danh sách thi lại
8 In Bảng điểm học kỳ
9 In Bảng điểm cá nhân
I.2 Yêu cầu
Xây dựng hệ thống Quản lý điểm phục vụ công tác quản lý điểm trong mộtkhoa của các trường ĐH và CĐ với các yêu cầu sau:
Trang 27Quản trị viên có các chức năng:
- Như người dùng bình thường
- Được quyền tạo, thay đổi, xóa thông tin các khóa học
- Quyền tạo, thay đổi, xóa thông tin các ngành học
- Quyền tạo, thay đổi, xóa thông tin người dùng
- Quyền tạo, thay đổi, xóa thông tin các hệ đào tạo
- Quyền tạo, thay đổi, xóa thông tin các lớp học
- Quyền tạo, thay đổi, xóa thông tin học kỳ
- Quyền tạo, thay đổi thông tin giáo viên
- Quyền tạo, thay đổi, xóa điểm các sinh viên
- Quyền sao lưu phục hồi cơ sở dữ liệuQuản lý viên có các chức năng:
- Được quyền tạo, thay đổi, xóa thông tin các sinh viên
- Quyền tạo, thay đổi, xóa điểm của các sinh viên
- Quyền tạo, thay đổi, xóa môn học
- Quyền thống kê in ấn
* Yêu cầu về hệ thống
Xây dựng hệ thống mang tính bảo mật, người dùng dễ dàng sử dụng Sử dụngngôn ngữ lập trình C# dựa theo mô hình 3 layer để dễ kiểm soát lỗi trong quá trình sửdụng,và hệ quản trị CSDL SQL Sever 2005…
Trang 28I.3 Phân tích và đặc tả yêu cầu
Khối lớp với hệ đào tạo
Một hệ đào tạo có ít nhất 1 khối lớp và có thể có nhiều khối lớp Một khối lớpthì thuộc một hệ đào tạo nhất định
Trang 29Sinh viên với học phần
Một sinh viên có thể học ở nhiều học phần khác nhau Một học phần có thể cónhiều sinh viên theo học
Học phần với giảng viên
Một giảng viên có thể không tham gia giảng dạy bất cứ một học phần nào vàcũng có thể tham gia giảng dạy ở nhiều học phần khác nhau Một học phần đượcgiảng dạy bởi một giảng viên nhất định
Kế hoạch giảng dạy với học phần
Một kế hoạch giảng dạy có nhiều học phần Một học phần thì thuộc 1 kế hoạchgiảng dạy nhất định
Trang 30Lớp với giảng viên
Một giảng viên có thể làm cố vấn học tập cho nhiều lớp hoặc không làm cố vấnhọc tập cho bất kì một lớp nào Một lớp thì có một cố vấn học tập nhất định
Khối lớp với kế hoạch giảng dạy
Một khối lớp có nhiều kế hoạch giảng dạy tùy thuộc vào từng học kỳ, năm học.Một kế hoạch giảng dạy thuộc một khối lớp nhất định
Học kỳ với kế hoạch giảng dạy
Một học kỳ có nhiều kế hoạch giảng dạy tùy thuộc vào từng khối lớp khác nhau.Một kế hoạch giảng dạy thuộc một học kỳ nhất định
Mô hình thực thể kết hợp
Trang 31Hình 5: Mô hình thực thể kết hợp
Trang 32I Thiết kế cơ sở dữ liệu
I.1 Đối tượng và mối quan hệ được quản lý
I.1.1 Đối tượng quản lý của khoa bao gồm
I.1.2 Mối quan hệ chính được quản lý
Mối quan hệ chính được quản lý là kết quả học tập của sinh viên theo từngnhóm học phần thuộc một học phần nào đó Sau đó thống kê theo từng học kỳ vàthống kê toàn khóa học
Kết quả của sinh viên được tổng hợp từ 2 nguồn dữ liệu
Điểm: Điểm của sinh viên được phân thành 2 cột
Điểm thi lần 1 kết thúc học phần
Điểm thi lần 2 nếu lần thi 1 điểm thi của sinh viên không đạt
hoặc muốn cải thiện điểm cao hơn
Thông tin học phần: Bao gồm
Một học phần có bao nhiêu đơn vị học trình
Từ những nguồn dữ liệu trên hệ thống sẽ tự động tính kết quả học tập của sinh viên như sau:
- Điểm trung bình chung học tập của mỗi năm học, mỗi khoá học vàđiểm trung bình chung tất cả các học phần tính từ đầu khoá học được tính theo côngthức và được tính đến hai chữ số thập phân:
N i
i i
n
n a
1
1
A =
Trang 33Trong đó : A là điểm trung bình chung học tập năm học, mỗi khoáhọc hoặc điểm trung bình chung các học phần tính từ đầu khoá học.
ai là điểm cao nhất trong các lần thi của học phần thứ i
Kết quả xếp loại các sinh viên trong lớp
Danh sách các sinh viên thi lại
I.2 Bảng từ điển và thuộc tính của các đối tượng
I.2.1 Bảng từ điển dữ liệu
Trang 34Mối kết hợp
2 TenHeDT Tên hệ đào tạo HeDaoTao
4 TenKhoiLop Tên khối lớp KhoiLop
16 DonViHocTrinh Đơn vị học trình HocPhan
20 DiemThiLan1 Điểm thi lần 1 KetQua
21 DiemThiLan2 Điểm thi lần 2 KetQua
22 DiemTongKet Điểm tổng kết KetQua
23 MaKHGD Mã kế hoạch giảng dạy KeHoachGiangDay
24 Username Mã người dùng Users
25 Password Mật khẩu người dùng Users
26 Quyen Phân quyền người dùng Users
I.2.2 Thuộc tính của các đối tượng
Sinh viên
Tên thực thể : Sinh Viên
Tên viết tắt : SinhVien
Ý nghĩa : Dùng để lưu thông tin của sinh viên như: Mã sinh viên, tên, ngày sinh.
Các sinh viên khác nhau được xác định thông qua mã sinh viên
SinhVien
MaSV
TenSVNgaySinh
Trang 35Tên thực thể : Lớp
Tên viết tắt : Lop
Ý nghĩa: Dùng để lưu trữ thông tin của lớp như : Mã lớp, tên lớp, giảng viên.
Các lớp khác nhau được xác định thông qua mã lớp
Khối lớp
Tên thực thể : Khối lớp
Tên viết tắt : KhoiLop
Ý nghĩa : Dùng để lưu thông tin của khối lớp như: Mã khối lớp, tên khối lớp
Các khối lớp khác nhau được xác định thông qua mã khối lớp
Hệ đào tạo
Tên thực thể : Hệ đạo tạo
Tên viết tắt : HeDaoTao
Ý nghĩa : Dùng để lưu thông tin của các hệ đào tạo như: Mã hệ đào tạo, tên hệ
Trang 36Ý nghĩa : Dùng để lưu thông tin của các học phần như: Mã học phần, tên học
phần, số tín chỉ, số tiết lí thuyết,số tiết thực hành, phần trăm điểm quá trình, phần trămđiểm thi
Các học phần khác nhau được xác định thông qua mã học phần
Học kỳ
Tên thực thể : Học kỳ
Tên viết tắt : HocKy
Ý nghĩa : Dùng để lưu thông tin của các học kỳ như: Mã học kỳ, Tên học kỳ,
Năm học
Các học kỳ khác nhau được xác định thông qua mã học kì
Giảng viên
Tên thực thể : Giảng viên
Tên viết tắt : GiangVien
Ý nghĩa : Dùng để lưu thông tin giảng viên như: Mã giảng viên, tên giảng viên
Các giảng viên khác nhau được xác định thông qua mã giảng viên
HocPhan
MaHP
TenHPDonViHocTrinh
HocKy
MaHK
TenHKNamHoc
GiangVien
MaGV
TenGV
Trang 37Tên Thực thể : Users
Tên viết Tắt : User
Ý nghĩa: Dùng để lưu thông tin người dùng, người quản lý, phân quyền người
dùng
Các người dùng, người quản lý khác nhau được xác định thông qua tến và cấp
độ phân quyền người dùng
I.1 Mô hình dữ liệu quan hệ giữa các bảng
HeDaoTao(MaHeDT, TenHeDT)
KhoiLop(MaKhoiLop, TenKhoiLop, MaHeDT)
Lop(MaLop, TenLop, MaKhoiLop, MaGV)
SinhVien(MaSV, TenSV, NgaySinh, MaLop)
KetQua(MaSV, MaNhomHP, DiemThiLan1, DiemThiLan2, DiemTongKet) KeHoachGiangDay(MaKHGD, MaHK, MaKhoiLop)
HocPhan(MaHP, TenHP,DonViHocTrinh)
HocKy(MaHK, TenHK, NamHoc)
GiangVien(MaGV, TenGV, DienThoai, DiaChi)
Users Username
PasswordQuyen