Theo phương thức truyền thống cũ, các nhà quản lý chỉ áp dụng theo hìnhthức quản lý bằng tay nghĩa là mọi công việc liên quan đến quản lý đề thựchiện một cách thủ công như việc ghi chép
Trang 1LỜI CẢM ƠN
Em xin chân thành cảm ơn thầy cô giáo trong khoa Công nghệ thông tin,Viên Đại học Mở Hà Nội đã tận tình dạy bảo em nhiều kiến thức bổ ích trongsuốt quá trình học tập tại trường cũng như tạo điều kiện cho em thực hiện đềtài này Kính chúc thầy cô luôn dồi dào sức khỏe và thành công trong cuộcsống
Em xin bày tỏ lòng biết ơn sâu sắc đến thầy giáo Trần Duy Hùng đã tận
tình hướng dẫn em trong suốt quá trinh thực hiện đề tài, cho em sự bình tĩnh
và tự tin, giúp em rút ra được nhiều bài học kinh nghiệm quý báu mỗi khi emvấp phải khó khăn Em khó có thể hoàn thành được đề tài này nếu không có
sự chỉ bảo tận tình của thầy giáo
Cảm ơn các bạn của tôi, các bạn đã bên cạnh ủng hộ và giúp đỡ tôi rấtnhiều, đóng góp cho tôi những ý kiến quý báu mà qua đó giúp tôi thực hiệnđược tốt hơn đề tài này
Mặc dù rất nỗ lực, cố gắng, nhưng chắc chắn đề tài vẫn còn nhiều thiếusót Em rất mong nhận được sự đóng góp, phê bình của quý thầy cô giáo, anhchị và các bạn
Một lần nữa em xin chân thành cảm ơn!
Hà nội, ngày 1 tháng 6 năm 2012
Sinh viên
Đặng Thị Thanh Thảo
Trang 2MỤC LỤC
LỜI CẢM ƠN 1
DANH MỤC BẢNG BIỂU 4
DANH MỤC HÌNH VẼ 5
CHƯƠNG 1: MỞ ĐẦU 7
1.1 Giới thiệu 7
1.2 Phạm vi đề tài 8
CHƯƠNG 2: CÔNG NGHỆ SỬ DỤNG 9
2.1 Tổng quan về Internet 9
2.1.1 Sự ra đời và phát triển Internet 9
2.1.2 Giới thiệu về Internet Information Server (IIS) 11
2.2 Giới thiệu về công nghệ ASP.NET 12
2.2.1 Tìm hiểu về ASP.NET 12
2.2.2 Quá trình xử lý tệp ASPX 14
2.2.3 Phân loại tệp tin trong ASP.NET 15
2.2.4 Các đối tượng và các thành phần điều khiển trong ASP.NET 16
2.3 Giới thiệu về ngôn ngữ lập trình C# 19
2.3.1 Tổng quan về ngôn ngữ lập trình C# 19
2.3.2 Tại sao phải sử dụng ngôn ngữ C# 21
2.3.3 Các từ khóa của C# 25
2.3.4 Ngôn ngữ C# và các ngôn ngữ khác 25
2.3.5 Các bước chuẩn bị cho chương trình 27
2.4 Công cụ SQL Server 27
2.4.1 Giới thiệu về SQL Server 28
2.4.2 Các đối tượng trong hệ quản trị cơ sở dữ liệu 32
2.4.3 Tính toàn vẹn và bảo mật 35
CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 37
3.1 Giới thiệu chung về trường mẫu giáo Sao Sáng 2 37
3.2 Phân tích thực trạng của hệ thống 37
3.3 Phân tích yêu cẩu về chức năng của hệ thống 37
3.3.1 Mô tả hệ thống 37
Trang 33.3.2 Sơ đồ chức năng của hệ thống 39
3.3.3 Sơ đồ ngữ cảnh của hệ thống 45
3.3.4 Sơ đồ dòng dữ liệu mức đỉnh 45
3.4 Phân tich dữ liệu 49
3.4.1 Sơ đồ lớp đối tượng chính 49
3.4.2 Các thực thể trong hệ thống 50
CHƯƠNG 4: THIẾT KẾ HỆ THỐNG 51
4.1 Thiết kế cơ sở dữ liệu 51
4.1.1 Các bảng trong cơ sở dữ liệu 51
4.1.2 Sơ đồ dữ liệu quan hệ 56
4.2 Thiết kế giao diện 57
CHƯƠNG 5: HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG 66
5.1 Hướng dẫn cài đặt 66
5.2 Hướng dẫn sử dụng 67
KẾT LUẬN 78
DANH MỤC TÀI LIỆU THAM KHẢO 79
Trang 4DANH MỤC CÁC BẢNG
Bảng 3.1: Các thực thể trong hệ thống 50
Bảng 4.1: Bảng học sinh 51
Bảng 4.2: Bảng lớp 51
Bảng 4.3: Bảng giáo viên 51
Bảng 4.4: Bảng khối 52
Bảng 4.5: Bảng điểm danh 52
Bảng 4.6: Bảng thực đơn 52
Bảng 4.7: Bảng thực đơn tuần 52
Bảng 4.8: Bảng tháng 53
Bảng 4.9: Bảng thu tiền 53
Bảng 4.10: Bảng quyền 53
Bảng 4.11: Bảng tin tức 53
Trang 5DANH SÁCH HÌNH VẼ
Hình 3.1 Sơ đồ chức năng nghiệp vụ của hệ thống webstie 40
Hình 3.2: Phân rã chức năng đăng nhập 41
Hình 3.3: Phân rã chức năng thay đổi thông tin 42
Hình 3.4: Phân rã chức năng tìm kiếm giáo viên 42
Hình 3.5: Phân rã chức năng tìm kiếm học sinh 42
Hình 3.6: Phân rã chức năng tìm kiếm thực đơn 43
Hình 3.7: Phân rã chức năng quản lý giáo viên 43
Hình 3.8: Phân rã chức năng quản lý học sinh 43
Hình 3.9: Phân rã chức năng quản lý lóp học 44
Hình 3.10: Phân rã chức năng quản lý thực đơn 44
Hình 3.11: Phân rã chức năng quản lý tin tức 44
Hình 3.12: Sơ đồ mức ngữ cảnh của hệ thống 45
Hình 3.13: Sơ đồ dòng dữ liệu mức đỉnh của hệ thống 46
Hình 3.14: Sơ đồ luồng dữ liệu của chức năng tìm kiếm thông tin 46
Hình 3.15: Sơ đồ luồng dữ liệu của chức năng tạo tài khoản 47
Hình 3.16: Sơ đồ luồng dữ liệu của chức năng quản lý giáo viên 47
Hình 3.17: Sơ đồ luồng dữ liệu của chức năng quản lý học sinh 48
Hình3.20: Sơ đồ lớp đối tượng chính 49
Hình 4.1: Giao diện trang chủ 57
Hình 4.2: Giao diện trang đăng nhập 58
Hình 4.3: Giao diện trang quản lý giáo viên 58
Hình 4.4: Giao diện trang quản lý học sinh 59
Hình 4.5: Giao diện trang quản lý lớp học 60
Hình 4.6: Giao diện trang quản lý thực đơn 61
Hình 4.7: Giao diện trang quản lý tin tức 62
Hình 4.8: Giao diện trang thay đổi mât khẩu 63
Trang 6Hình 4.9: Giao diện trang thống kê tiền ăn hàng tháng của học sinh 64
Hình 5.1: Tổng kết tiền ăn trong tháng 68
Hình 5.2: Xem thực đơn trong tháng 69
Hình 5.3: Xem danh sách học sinh trong lớp 70
Hình 5.4: Cập nhật thông tin học sinh 71
Hình 5.5: Màn hình cập nhật thông tin của từng học sinh 72
Hình 5.6: Thêm hoá đơn thu tiền của học sinh 73
Hình 5.7: Cập nhật thông tin lớp học 74
Hình 5.8: Cập nhật thông tin bài viết 75
Hình 5.9: Màn hình thêm mới giáo viên 76
Hình 5.10: Màn hình phân bổ thực đơn trong tháng 77
Trang 7CHƯƠNG 1: MỞ ĐẦU1.1 Giới thiệu
Công nghệ thông tin đã và đang thay đổi thế giới cũng như tạo được một
cuộc cách mạng thực sự trong mọi lĩnh vực của khoa học và đời sống Máy
tính cá nhân xuất hiện đã tác động mạnh mẽ và thay đổi mọi hoạt động củacon người Cùng với đó là sự bùng nổ của Internet đã làm cho cả thế giới thayđổi
Các nhà quản lý đã nắm bắt xu thế mới này và thấy rằng sử dụng côngnghệ thông tin là một trong những cách làm có hiệu quả Đặc thù của côngviệc quản lý thường xuyên tiếp nhận, trao đổi xử lý và lưu trữ các thôngtin ,số liệu, tư liệu, dữ liệu… Việc ứng dụng của công nghệ thông tin trongquản lý mọi lĩnh vực của đời sống cũng không nằm ngoài của xu thế đó Chonên việc áp dụng các ứng dụng của công nghệ thông tin vào công việc quản lý
sẽ có tác động rất lớn đến mức độ thành công của công việc Khái niệm ứngdụng công nghệ thông tin trong quản lý ra đời đã và đang trở thành xu thếmới thay thế dần cho phương thức quản lý cũ với rất nhiều ưu thế nổi bật nhưnhanh hơn, rẻ hơn, tiện dụng hơn, hiệu quả hơn và không bị giới hạn bởi thờigian và không gian…
Theo phương thức truyền thống cũ, các nhà quản lý chỉ áp dụng theo hìnhthức quản lý bằng tay nghĩa là mọi công việc liên quan đến quản lý đề thựchiện một cách thủ công như việc ghi chép dữ liệu, cập nhật số liệu, thốngkê… Tuy nhiên hiện nay thì phương thức truyền thống này không còn phùhợp với xu thế phát triển chung của thời đại nữa vì gây nhiều lãng phí cho conngười về cả vật chất và thời gian
Vì vậy cần có một công cụ giúp con người giảm tải được các công việcnặng nhọc tốn nhiều công sứcvà thời gian giúp cho con người làm ra nhiềusản phẩm cho xã hội và có nhiều thời gian để làm các công việc khác chăm lo
Trang 8đến đời sống, giúp cho cuộc sống con người ngày càng được nâng cao Cùngvới sự phát triển của kỹ thuật số, sự ra đời của máy tính cá nhân, các websiteứng dụng cũng được ra đời để giúp con người làm việc tốt hơn, để cuộc sốngcủa con người cũng thú vị hơn.
Khái niệm website ứng dụng ngày nay không còn xa lạ, mới mẻ đối vớichúng ta Website ứng dụng giúp chúng ta thực hiện các chức năng của hệthống trong mà không bị hạn chế về mặt không gian, tức là chỉ cần ở bất cứđâu, bạn chỉ cần có thiết bị duyệt web và Internet bạn sẽ truy cập được vàotrang web và thực hiện công việc của mình
Vì vậy em quyết định chọn đề tài” Xây dựng website quản lý trường mẫugiáo Sao Sáng 2 – Quận Ngô quyền – Hải Phòng”, một phần em hy vọng sảnphẩm của em hoàn thành nó giúp ích cho việc quản lý cuả các cán bộ quản lýtrường mẫu giáo Sao Sáng 2.Một phần nữa là em muốn khẳng định lại những
gì đã được học tập tại khoa bằng một sản phẩm công nghệ thông tin
Chính từ ý tưởng trên, em đã suy nghĩ và xây dựng đề tài này Mục đíchcủa đề tài là xây dựng một ứng dụng giúp cho con người quản lý dễ dàngcông việc trong trường mẫu giáo một cách thuận tiện chính xác và tiết kiệmđược thời gian.Chương trình được xây dựng trên máy tính nhằm tận dụng tàinguyên mạnh mẽ của nó nếu so sánh với pocket PC hay điện thoại di động.Website này nếu được thực hiện tốt sẽ trở thành một ứng dụng rất hữu ích,rất thiết thực và tiện dụng với những người làm nhiệm vụ quản lý trong ngànhgiáo dục mầm non
1.2 Phạm vi đề tài
Website quản lý” Xây dựng website quản lý trường mẫu giáo Sao Sáng 2– Quận Ngô quyền – Hải Phòng” được xây dưng trên cơ sở yêu cầu thực tếcủa trường mẫu giáo Sao Sáng 2 Quận Ngô Quyền Hải Phòng được xây dựng
và hoàn thành sau 4 tháng thực hiện
Trang 9CHƯƠNG 2: CÔNG NGHỆ SỬ DỤNG
Chương trình được cài đặt trên máy Server Các phần mềm cần thiết để thiết
kế và hoạt động chương trình
- Hệ điều hành Window SERVER 2003
- Internet Information Server (IIS) đóng vai trò làm Web Server
- Trình duyệt Web Internet Explorer 4.0 trở lên
- Hệ quản trị cơ sở dữ liệu MS SQL Server 2005
- MS Visual Studio 2008
- Unikey
2.1 Tổng quan về Internet
2.1.1 Sự ra đời và phát triển Internet
Internet ra đời thực sự là một cuộc cách mạng vĩ đại Internet đã mang lạicho chúng ta một kho kiến thức mà không một thư viện, một bộ bách khoatoàn thư hay một hệ thống thư viện nào khác có thể so sánh được Internetcũng là môi trường kinh doanh Nhanh - Rẻ - Hiệu quả nhất
- 1962: ý tưởng đầu tiên về mạng kết nối các máy tính với nhau(J.C.R.Licklider)
- 1965: mạng gửi các dữ liệu đó được chia nhỏ thành từng packet, đi theocác tuyến đường khác nhau và kết hợp lại tại điểm đến (Donald Dovies);Lawrence G.Roberts đó kết nối một máy tính ở Massachussetts với một máytính khác ở California qua đường dây điện thoại
- 1967: Ông này đề xuất ý tưởng mạng ARPANET – Advanced search Project Agency Network tại một hội nghị ở Michigan
Re Công nghệ chuyển gởi tin – packet switching technology đem lại lợiích to lớn khi nhiều máy tính có thể chia sẻ thông tin với nhau; phát triểnmạng máy tính thử nghiệm của Bộ quốc phòng Mỹ theo ý tưởng ARPANET
Trang 10- 1969: Mạng này được đưa vào hoạt động và là tiền thân của Internet;Internet- liên mạng bắt đầu xuất hiện khi nhiều mạng được kết nối với nhau
- 1972: thư điện tử bắt đầu được sử dụng (Ray Tomlinson)
- 1973: ARPANET lần đầu tiên được kết nối ra nước ngoài, tới trườngđại học London
- 1984: giao thức chuyển gởi tin TCP/IP (Transmision Control Pro- tocol
và Internet Protocol) trở thành giao thức chuẩn của Internet; hệ thống các tênmiền DNS (Domain Name System) ra đời để phân biệt các máy chủ; đượcchia thành sáu loại chính
+.edu (education) cho lĩnh vực giáo dục
+.gov (government) thuộc chính phủ
+.mil (miltary) cho lĩnh vực quân sự
+.com (commercial) cho lĩnh vực thương mại
+.org (organization) cho các tổ chức
+.net (network resources) cho các mạng
- 1990: ARPANET ngừng hoạt động, Internet chuyển sang giai đoạn
mới
- 1991: ngôn ngữ đánh dấu siêu văn bản HTML (Hyper Text Mark- up
Language) ra đời cùng với giao thức truyền siêu văn bản HTTP (Hyper TextTransfer Protocol), Internet đó thực sự trở thành công cụ đắc lực với hàng loạtcác dịch vụ mới
- WWW ra đời đem lại cho người dùng khả năng tham chiếu từ một văn
bản đến nhiều văn bản khác, chuyển từ cơ sở dữ liệu này sang cơ sở dữ liệukhác với hình thức hấp dẫn và nội dung phong phú
- Internet và Web là công cụ quan trọng nhất của TMĐT, giúp cho
TMĐT phát triển và hoạt động hiệu quả
Trang 11- Mạng Internet được sử dụng rộng rãi từ năm 1994.
- Công ty Netsscape tung ra các phần mềm ứng dụng để khai thác thông
tin trên Internet vào tháng 5 năm 1995
- Công ty Amazon.com ra đời vào tháng 5 năm 1997.
- Công ty IBM tung ra chiến dịch quảng cáo cho các mô hình kinh doanh
điện tử năm 1997…
- Dịch vụ Internet bắt đầu được cung cấp tạo Việt Nam chính thức từ
năm 1997
2.1.2 Giới thiệu về Internet Information Server (IIS)
IIS – Viết tắt của Microsoft Internet Information Services (các dịch vụcung cấp thông tin Internet) là các dịch vụ dành cho máy chủ chạy trên nền
Hệ điều hành Window nhằm cung cấp và phân tán các thông tin lên mạng, nóbao gồm nhiều dịch vụ khác nhau như Web Server, FTP Server,…Nó có thểđược sử dụng để xuất bản nội dung của các trang Web lên Internet/Intranetbằng việc sử dụng “Phương thức chuyển giao siêu văn bản”- HypertextTransport Protocol (HTTP) Như vậy, sau khi bạn thiết kế xong các trangWeb của mình, nếu bạn muốn đưa chúng lên mạng để mọi người có thể truycập và xem chúng thì bạn phải nhờ đến một Web Server, ở đây là IIS Nếukhông thì trang Web của bạn chỉ có thể được xem trên chính máy của bạnhoặc thông qua việc chia sẻ tệp (file sharing) như các tệp bất kỳ trong mạngnội bộ mà thôi
Nhiệm vụ của IIS là tiếp nhận yêu cầu của máy trạm và đáp ứng lại yêucầu đó bằng cách gửi về máy trạm những thông tin mà máy trạm yêu cầu Bạn
có thể sử dụng IIS để:
Xuất bản một Website của bạn trên Internet
Tạo các giao dịch thương mại điện tử trên Internet (hiện các catalog vànhận được các đơn đặt hang từ người tiêu dùng)
Trang 12Chia sẻ file dữ liệu thông qua giao thức FTP.
Cho phép người ở xa có thể truy xuất database của bạn (gọi là Databaseremote access) Và rất nhiều khả năng khác…
IIS sử dụng các giao thức mạng phổ biến là HTTP (Hyper Text TransferProtocol) và FPT (File Transfer Protocol) và một số giao thức khác nhưSMTP, POP3,… để tiếp nhận yêu cầu và truyền tải thông tin trên mạng vớicác định dạng khác nhau Một trong những dịch vụ phổ biến nhất của IIS màchúng ta quan tâm trong giáo trình này là dịch vụ WWW (World Wide Web),nói tắt là dịch vụ Web Dịch vụ Web sử dụng giao thức HTTP để tiếp nhậnyêu cầu (Requests) của trình duyệt Web (Web browser) dưới dạng một địa chỉURL (Uniform Resource Locator) của một trang Web và IIS phản hồi lại cácyêu cầu bằng cách gửi về cho Web browser nội dung của trang Web tươngứng
2.2 Giới thiệu về công nghệ ASP.NET
2.2.1 Tìm hiểu về ASP.NET
Từ khoảng cuối thế thập niên 90, ASP (Active Server Page) đã đượcnhiều lập trình viên lựa chọn để xây dựng và phát triển ứng dụng web độngtrên máy chủ sử dụng hệ điều hành Windows ASP đã thể hiện được những
ưu điểm của mình với mô hình lập trình thủ tục đơn giản, sử dụng hiệu quảcác đối tượng COM: ADO (ActiveX Data Object) - xử lý dữ liệu, FSO (FileSystem Object) - làm việc với hệ thống tập tin…, đồng thời, ASP cũng hỗ trợnhiều ngôn ngữ: VBScript, JavaScript Chính những ưu điểm đó, ASP đãđược yêu thích trong một thời gian dài
Tuy nhiên, ASP vẫn còn tồn đọng một số khó khăn như Code ASP vàHTML lẫn lộn, điều này làm cho quá trình viết code khó khăn, thể hiện vàtrình bày code không trong sáng, hạn chế khả năng sử dụng lại code Bêncạnh đó, khi triển khai cài đặt, do không được biên dịch trước nên dễ bị mất
Trang 13source code Thêm vào đó, ASP không có hỗ trợ cache, không được biên dịchtrước nên phần nào hạn chế về mặt tốc độ thực hiện.Quá trình xử lý Postbackkhó khăn,…
Đầu năm 2002, Microsoft giới thiệu một kỹ thuật lập trình Web khá mới
mẻ với tên gọi ban đầu là ASP+, tên chính thức sau này là ASP.Net VớiASP.Net, không những không cần đòi hỏi bạn phải biết các tag HTML, thiết
kế web, mà nó còn hỗ trợ mạnh lập trình hướng đối tượng trong quá trình xâydựng và phát triển ứng dụng Web
ASP.Net là kỹ thuật lập trình và phát triển ứng dụng web ở phía Server(Server-side) dựa trên nền tảng của Microsoft.Net Framework
Hầu hết, những người mới đến với lập trình web đều bắt đầu tìm hiểunhững kỹ thuật ở phía Client (Client-side) như: HTML, Java Script, CSS(Cascading Style Sheets) Khi Web browser yêu cầu một trang web (trangweb sử dụng kỹ thuật client-side), Web server tìm trang web mà Client yêucầu, sau đó gởi về cho Client Client nhận kết quả trả về từ Server và hiển thịlên màn hình
ASP.Net sử dụng kỹ thuật lập trình ở phía server thì hoàn toàn khác, mãlệnh ở phía server (ví dụ: mã lệnh trong trang ASP) sẽ được biên dịch và thihành tại Web Server Sau khi được Server đọc, biên dịch và thi hành kết quả
tự động được chuyển sang HTML/JavaScript/CSS và trả về cho Client Tất cảcác xử lý lệnh ASP.Net đều được thực hiện tại Server và do đó, gọi là kỹthuật lập trình ở phía server
Những ưu điểm của ASP.Net
- ASP.Net cho phép bạn lựa chọn một trong các ngôn ngữ lập trình mà
bạn yêu thích: Visual Basic.Net, J#, C#,…
- Trang ASP.Net được biên dịch trước Thay vì phải đọc và thông dịch
mỗi khi trang web được yêu cầu, ASP.Net biên dịch những trang web động
Trang 14thành những tập tin DLL mà Server có thể thi hành nhanh chonhs và hiệu quả.Yếu tố này là một bước nhảy vọt đáng kể so với kỹ thuật thông dịch của ASP.
- ASP.Net hỗ trợ mạnh mẽ bộ thư viện phong phú và đa dạng của Net
Framework, làm việc với XML, Web Server, truy cập cơ sở dữ liệu quaADO.Net,…
- ASPX và ASP có thể cùng hoạt động trong 1 ứng dụng.
- ASP.Net sử dụng phong cách lập trình mới: Code behide Tách code
riêng, giao diện riêng => dễ đọc, dễ quản lý và bảo trì
- Kiến trúc lập trình giống ứng dụng trên Windows.
- Hỗ trợ quản lý trạng thái của các control.
- Tự động phát sinh mã HTML cho các Server control tương ứng với
từng loại Browser
- Hỗ trợ nhiều cơ chế cache.
- Triển khai cài đặt
Không cần lock, không cần đăng ký DLL
Cho phép nhiều hình thức cấy hình ứng dụng
- Hỗ trợ quản lý ứng dụng ở mức toàn cục.
Global.aspx có nhiều sự kiện hơn
Quản lý session trên nhiều Server, không cần Cookies
2.2.2 Quá trình xử lý tệp ASPX
Khi web server nhận được yêu cầu từ phía client, nó sẽ tìm kiếm tập tinđược yêu cầu thông qua chuỗi URL được gửi về, sau đó tiến hành xử lý theo
sơ đồ sau:
Trang 152.2.3 Phân lo i t p tin trong ASP.NET ại tệp tin trong ASP.NET ệp tin trong ASP.NET
tin global.asa của ASP, là tập tin quản lý các sự kiệncủa ứng dụng (application), session, và các sự kiệnkhi có các yêu cầu tới trang web
trữ với phần mở rộng là ascx
XML.Web.config chứa hầu hết các cấu hình của ứngdụng
2.2.4 Các đối tượng và các thành phần điều khiển trong ASP.NET
Server tìm kiếm tập tin
Xử lý tập tin ASPX
Biên dịch
Thay đổi
Lưu trữ lại dưới dạng DLL
Thi hành trang ASPX
Trang 16Các đối tượng nội tại như Request, Response, Form, Cookies, Serverđều được giữ lại và hoàn toàn tương thích với ASP Tuy nhiên ASP.Net cungcấp cho các đối tượng này nhiều thuộc tính và phương thức mới giúp nângcao khả năng xử lý lỗi của chúng.
Các thành phần điều khiển trong ASP.NET
Điều khiển nội tại (intrinsic control)
Các điều khiển này tạo ra những phần tử kiểu HTML phía trình khách.Các phần tử HTML được coi là điều khiển nội tại: <table> <tr> <td> <form>
<input> <select> <textarea> <button> <a> <img>
Điều khiển danh sách (list control)
Thành phần điều khiển này cho phép hiển thị mọi loại dữ liệu kiểu danhsách như các bảng dữ liệu (table), khung nhìn (view), liệt kê…Điều khiểndanh sách chuẩn gồm các thành phần sau: Repeater, Datalist và DataGrid.Điều khiển Repeater là thành phần đơn giản cho phép kết xuất những nộidung lặp lại với cùng một định dạng, font chữ, màu sắc…
DataList giống như Repeater nhưng cho phép thêm vào các phần tử điềukhiển HTML khác để biểu diễn cho dữ liệu lặp lại
DataGrid là khung lưới hay bảng dùng để trình bày dữ liệu theo địnhdạng hàng và cột, có thể dùng DataGrid để định dạng các dòng hoặc cột dữliệu giống như bảng tính Excel và kết xuất cuối cùng hoàn toàn là mã HTMLtương thích với hầu hết các trình duyệt
Ngoài ra còn có hai điều khiển danh sách khác là RadioButtonList vàCheckBoxList để tạo các nút chọn
Điều khiển đa năng (rich control)
Các điều khiển đa năng không dễ xây dựng bằng các phần tử HTML đơngiản Các điều khiển đa năng được tạo bởi JavaScript cùng với thẻ HTML đểtạo nên những hiệu ứng đặc biệt
Điều khiển kiểm tra (validate control)
Trang 17ASP.NET cung cấp các điều khiển kiểm tra gọi là Validation Control cóthể dùng để sinh mã kiểm tra ở cả hai phía Client và Server
Sơ đồ xử lý kiểm tra dữ liệu nhập tại Client va Server
Như các bạn đã biết, mỗi khi PostBack về Server, trang Web luôn kiểm tra tính hợp
lệ dữ liệu (nếu có yêu cầu khi thiết kế) Nếu dữ liệu không hợp lệ (bỏ trống, vi phạm miền giá trị, mật khẩu lại không đúng…) trang web sẽ không thể PostBack về Server.
Không
Không -Có
Có
Client
Server
Trang 18Thuộc tính Ý nghĩa
thuộc tính mà các bạn phải xác định
khi sử dụng Validation Control
khiển Validation Summary
Giá trị này sẽ được hiển thị tại vị trícủa điều khiển nếu chúng ta không
gán giá trị cho thuộc tính Text
None: Không hiển thị thông báolỗi (vẫn có kiểm tra dữ liệu)
Static: Trong trường hợp không có
vi phạm dữ liệu, điều khiểnkhôngcó hiển
Trang 19Có 3 điều khiển:
RequeredFieldValidator: dùng kiểm tra giá trị bắt buộc của trường
ComparedValidator: Kiểm tra giá trị thông qua so sánh với giá trị khác.RegularExpressionValidator: Kiểm tra tính hợp lệ của dữ liệu
Ngoài ra còn có các điều khiển CustomValidator để cài đặt bộ kiểm tra
dữ liệu cho riêng mình bằng các hàm JavaScript hoặc Basic…, ValidationSummary sẽ kiểm tra tất cả các thành phần điều khiển của Validator và in kếtquả nếu một điều khiển nào không thỏa mãn điều kiện kiểm tra Mỗi điềukhiển Validator được liên kết với một thành phần HTML thông qua thuộc tínhcủa phần tử
2.3 Giới thiệu về ngôn ngữ lập trình C#
Ngôn ngữ C# được phát triển bởi đội ngũ kỹ sư của Microsoft, trong đóngười dẫn đầu là Anders Hejlsberg và Scott Wiltamuth Cả hai người này đều
là những người nổi tiếng, trong đó Anders Hejlsberg được biết đến là tác giảcủa Turbo Pascal, một ngôn ngữ lập trình PC phổ biến Và ông đứng đầunhóm thiết kế Borland Delphi, một trong những thành công đầu tiên của việcxây dựng môi trường phát triển thích hợp (IDE) cho lập trình client/server.Phần cốt lõi hay còn gọi là trái tim của bất cứ ngôn ngữ lập trình hướngđối tượng là sự hỗ trợ của nó cho việc định nghĩa và làm việc với những lớp
Trang 20Những lớp thì định nghĩa những kiểu dữ liệu mới, cho phép người phát triển
mở rộng ngôn ngữ để tạo mô hình tốt hơn để giải quyết vấn đề Ngôn ngữ C#chứa những từ khóa cho việc khai báo những kiểu lớp đối tượng mới vànhững phương thức hay thuộc tính của lớp, và cho việc thực thi đóng gói, kếthừa, và đa hình, ba thuộc tính cơ bản của bất cứ ngôn ngữ lập trình hướngđối tượng
Trong ngôn ngữ C# mọi thứ liên quan đến khai báo lớp đều được timthấy trong phần khai báo của nó Định nghĩa một lớp trong ngôn ngữ C#không đòi hỏi phải chia ra tập tin header và tập tin nguồn giống như trongngôn ngữ C++ Hơn thế nữa, ngôn ngữ C# hỗ trợ kiểu XML, cho phép chèncác tag XML để phát sinh tự động các document cho lớp
C# cũng hỗ trợ giao diện interface, nó được xem như một cam kết vớimột lớp cho những dịch vụ mà giao diện quy đinh Trong ngôn ngữ C#, mộtlớp chỉ có thể kế thừa từ duy nhất một lớp cha, tức là không cho đa kế thừanhư tronh ngôn ngữ C++, tuy nhiên một lớp có thể thực thi nhiều giao diện.Khi một lớp thực thi một giao diện thì nó sẽ hứa là nó sẽ cung cấp chức năngthực thi giao diện
Trong ngôn ngữ C#, những cấu trúc cũng được hỗ trợ, nhưng khái niệm
về ngữ nghĩa của nó thay đổi khác với C++ Trong C#, một cấu trúc được giớihạn, là kiểu dữ liệu nhỏ gọn, và khi tạo thể hiện thì nó yêu cầu ít hơn về hệđiều hành và bộ nhớ so với một lớp Một cấu trúc thì không thể kế thừa từmột lớp hay được kế thừa nhưng một cấu trúc có thể thực thi một giao diện.Ngôn ngữ C# cung cấp những đặc tính hướng thành phần (component-oriented), như là những thuộc tính, những sự kiện Lập trình hướng thànhphần được hỗ trợ bởi CLR cho phép lưu trữ metadata với mã nguồn cho mộtlớp Metadata mô ta cho một lớp, bao gồm những phương thức và nhữngthuộc tính của nó, cũng như những sự bảo mật cần thiết và những thuộc tính
Trang 21khác Mã nguồn chứa đựng những logic cần thiết để thực hiện những chứcnăng của nó Do vậy, một lớp được biên dịch như là một khối self-contained,nên môi trường hosting biết được cách đọc Metadata của một lớp và mãnguồn cần thiết mà không cần những thông tin khác để sử dụng nó.
2.3.2 Tại sao phải sử dụng ngôn ngữ C#
Nhiều người tin rằng không cần thiết có một ngôn ngữ lập trình mới.Java, C++, Perl, Microsoft Visual Basic, và những ngôn ngữ khác được nghĩrằng đã cung cấp tất cả những chức năng cần thiết
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êm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụnghơ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ông dừng lại ở đó, Microsoft đưa ra một số mục đíchkhi xây dựng ngôn ngữ này Những mục đích này đượ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ừ khóa
C# là ngôn ngữ hướng module
C# sẽ trở nên phổ biến
C# là ngôn ngữ đơn giản
C# loại bỏ một vài sự phức tạp và rối rắm của những ngôn ngữ như Java
và C++ bao gồm việc loại bỏ những macro, những templace, đa kế thừa, vàlớp cơ sở ảo (virtual base class) Chúng là những nguyên nhân gây ra sự nhầmlẫn hay dẫn đến những vấn đề cho các người phát triển C++ Nếu chúng ta là
Trang 22người học ngôn ngữ nàu đầu tiên thì chắc chắn là ta sẽ không trải qua nhữngthời gian để học nó!
Nhưng khi đó ta sẽ không biết được hiệu quả của ngôn ngữ C# khi loại
C# là ngôn ngữ hiện đại
Điều gì làm cho một ngôn ngữ hiện đại? Những đặc tính như là xử lýngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật
mã nguồn là những đặc tính được mong đợi trong một ngôn ngữ hiện đại C#chứa tất cả những đặc tính trên Nếu là người mới học lập trình có thể chúng
ta sẽ cảm thấy những đặc tính trên phức tạp và khó hiểu.Trong C#, bộ thugom bộ nhớ tự động và kiểu dữ liệu an toàn được tích hợp vào ngôn ngữ sẽloại bỏ những vấn đề rắc rối của C++
C# là ngôn ngữ hướng đối tượng
Những đặc điểm chính của ngôn ngữ hướng đối tượng (Object-orientedlanguage) là sự đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình(polymorphism) C# hỗ trợ tất cả những đặc tính trên
Trang 23C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo
Như đã đề cập trước, với ngôn ngữ C# chúng ta chỉ bị giới hạn ở chínhbởi bản thân hay là trí tưởng tượng của chúng ta Ngôn ngữ này không đặtnhững ràng buộc lên những việc có thể làm C# được sử dụng cho nhiểu các
dự án khác nhau như là tạo ta ứng dụng xử lý văn bản, ứng dụng đồ họa, bảntính, hay thậm chí những trình biên dịch cho các ngôn ngữ khác
C# là ngôn ngữ ít từ khóa
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được sử dụng để mô tả thông tin Chúng ta có thể nghĩ rằng một ngôn ngữ cónhiều từ khóa thì sẽ mạnh hơn
Điều này không phải sự thật, ít nhất là trong trường hợp ngôn ngữ C#,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
C# là ngôn ngữ hướng module
Mã nguồn C# có thể được viết trong những phần được gọi là những lớp,những lớp này chứa các phương thức thành viên của nó Những lớp và nhữngphương thức có thể được sử dụng lại trong các ứng dụng hay các chương trìnhkhác Bằng cách truyền các mẫu thông tin đến những lớp hay phương thứcchúng ta có thể tạo ra những mã nguồn dùng lại có hiệu quả
C# sẽ là một ngôn ngữ phổ biến
C# là một trong những ngôn ngữ lập trình mới nhất Vào thời điểm cuốnsách này được viết, nó không được biết như là một ngôn ngữ phổ biến Nhưngngôn ngữ này có một số lý do chính là Microsoft và sự cam kết của NET
Trang 24Microsoft muốn ngôn ngữ C# trở nên phổ biến Mặc dù một công ty khôngthể làm một sản phẩm trở nên phổ biến, nhưng nó có thể hỗ trợ Cách đâykhông lâu, Microsoft đã gặp sự thất bại về hệ điều hành Microsoft Bob Mặc
dù Microsoft muốn Bob trở nên phổ biến nhưng thất bại C# thay thế tốt hơn
để đem đến thành công sơ với Bob Thật sự là không biết khi nào mọi ngườitrong công ty Microsoft sử dụng Bob trong công việc hằng ngày của họ
Tuy nhiên với C# thì khác, nó được sử dụng bởi Microsoft Nhiều sảnphẩm của công ty này đã chuyển đổi và viết lại bằng C# Bằng cách sử dụngngôn ngữ này Microsoft đã xác nhận khả năng của C# cần thiết cho nhữngngười lập trình
Microsoft .NET là một lý do khác để đem đến sự thành công củaC# .NET là một sự thay đổi trong cách tạo và thực thi những ứng dụng
Ngoài hai lý do trên ngôn ngữ C# cũng sẽ trở nên phổ biến do những đặctính của ngôn ngữ này được đề cập trong mục trước như: đơn giản, hướng đốitượng, mạnh mẽ…
Trang 252.3.3 Các từ khóa của C#
Bảng sau liệt kê các từ khóa của ngôn ngữ C#
2.3.4 Ngôn ngữ C# và các ngôn ngữ khác
Chúng ta đã từng nghe đến những ngôn ngữ khác như Visual Basic, C++
và Java Có lẽ chúng ta cũng tự hỏi sự khác nhau giữa ngôn ngữ C# và nhữngngôn ngữ đó Và cũng tự hỏi tại sao lại chọn ngôn ngữ này để học mà khôngchọn một trong những ngôn ngữ kia Có rất nhiều lý do và chúng ta hãy xemmột số sự so sánh giữa ngôn ngữ C# với những ngôn ngữ khác giúp chúng taphần nào trả lời được những thắc mắc
Microsoft nói rằng C# mang đến sức mạnh của ngôn ngữ C++ với sự dễdàng của ngôn ngữ Visual Basic Có thể nó không dễ như Visual Basic,nhưng với phiên bản Visual Basic.NET (Version 7) thì ngang nhau Bởi vìchúng được viết lại từ một nền tảng Chúng ta có thể viết chương trình với ít
mã nguồn hơn nếu dùng C#
Mặc dù C# loại bỏ một vài các đặc tính của C++, nhưng bù lại nó tránh
Trang 26được những lỗi mà thường gặp trong ngôn ngữ C++ Điều này có thể tiếtkiệm được hàng giờ hay thậm chí hàng ngày trong việc hoàn tất một chươngtrình Chúng ta sẽ hiểu nhiều về điều này trong các chương của giáo trình.Một điều quan trọng khác với C++ là mã nguồn C# không đòi hỏi phải
có tập tin header Tất cả mã nguồn được viết trong khai báo một lớp
Như chúng ta biết NET runtime trong C# thực hiện việc thu gom bộ nhớ
tự động Do điều này nên việc sử dụng con trỏ trong C# ít quan trọng hơntrong C++ Những con trỏ cũng có thể được sử dụng trong C#, khi đó nhữngđoạn mã nguồn này sẽ được đánh dấu là không an toàn (unsafe code)
C# cũng từ bỏ ý tưởng đa kế thừa như trong C++ Và sự khác nhau là C#đưa thêm thuộc tính vào trong một lớp giống như trong Visual Basic Vànhững thành viên của lớp được gọi duy nhất bằng toán tử “.” khác với C++ cónhiều cách gọi trong các tình huống khác nhau
Một ngôn ngữ khác rất mạnh và phổ biến là Java, giống như C++ và C#được phát triển dựa trên C Nếu chúng ta quyết định sẽ học Java sau này,chúng ta sẽ tìm được nhiều cái mà học từ C# có thể được áp dụng
Điểm giống nhau C# và Java là cả hai cùng biên dịch mã trung gian: C#biên dịch ra MSIL còn Java biên dịch ra bytecode Sau đó chúng được thựchiện bằng cách thông dịch hoặc biên dịch just-in-time trong từng máy ảotương ứng Tuy nhiên, trong ngôn ngữ C# nhiều hỗ trợ được đưa ra để biêndịch mã ngôn ngữ trung gian sang mã máy C# chứa nhiều kiểu dữ liệu giá trị
Ví dụ, ngôn ngữ C# hỗ trợ kiểu liệt kê (enumerator), kiểu này được giới hạnđến một tập hằng được định nghĩa trước, và kiểu dữ liệu cấu trúc đây là kiểu
dữ liệu giá trị do người dùng định nghĩa Chúng ta sẽ được tìm hiểu kỹ hơn vềkiểu dữ liệu tham chiếu và kiểu dữ liệu giá trị sẽ được trình bày trong phầnsau
Tương tự như Java, C# cũng từ bỏ tính đa kế thừa trong một lớp, tuy
Trang 27nhiên mô hình kế thừa đơn này được mở rộng bởi tính đa kế thừa nhiều giaodiện.
2.3.5 Các bước chuẩn bị cho chương trình
Thông thường, trong việc phát triển phần mềm, người phát triển phảituân thủ theo quy trình phát triển phần mềm một cách nghiêm ngặt và quytrình này đã được chuẩn hóa Tuy nhiên trong phạm vi của chúng ta là tìmhiểu một ngôn ngữ mới và viết những chương trình nhỏ thì không đòi hỏi khắtkhe việc thực hiện theo quy trình Nhưng để giải quyết được những vấn đề thìchúng ta cũng cần phải thực hiện đúng theo các bước sau Đầu tiên là phải xácđịnh vấn đề cần giải quyết Nếu không biết rõ vấn đề thì ta không thể tìmđược phương pháp giải quyết Sau khi xác định được vấn đề, thì chúng ta cóthể nghĩ ra các kế hoạch để thực hiện Sau khi có một kế hoạch, thì có thểthực thi kế hoạch này Sau khi kế hoạch được thực thi, chúng ta phải kiểm ralại kết quả để xem vấn đề được giải quyết xong chưa Logic này thường được
áp dụng trong nhiều lĩnh vực khác nhau, trong đó có lập trình
Khi tạo một chương trình trong C# hay bất cứ ngôn ngữ nào, chúng tanên theo những bước tuần tự sau:
Trang 28 SQL cho phép bạn truy cập vào CSDL.
SQL có thể thực thi các câu truy vấn trên CSDL
SQL là một chuẩn
SQL là một chuẩn của ANSI (American National Standards Institute Viện tiêu chuẩn quốc gia Hoa kỳ) về truy xuất các hệ thống CSDL Các câulệnh SQL được sử dụng để truy xuất và cập nhật dữ liệu trong một CSDL.SQL hoạt động với hầu hết các chương trình CSDL như MS Access,DB2, Informix, MS SQL Server, Oracle, Sybase v.v…
-Bảng CSDL
Một CSDL thường bao gồm một hoặc nhiều bảng (table) Mỗi bảng được
xác định thông qua một tên ( ví dụ Customers hoặc Orders) Bảng chưa các
mẩu tin - dòng (record - row), là dữ liệu của bảng
Quy tắc sử dụng tên trong SQL
Các đối tượng trong cơ sở dữ liệu dựa trên SQL được xác định thông quatên của đối tượng Tên của các đối tượng là duy nhất trong mỗi cơ sở dữ liệu.Tên được sử dụng nhiều nhất trong các truy vấn SQL và được xem là nềntảng trong cơ sở dữ liệu quan hệ là tên bảng và tên cột
Trong các cơ sở dữ liệu lớn với nhiều người sử dụng, khi ta chỉ định têncủa một bảng nào đó trong câu lệnh SQL, hệ quản trị cơ sở dữ liệu đó là têncủa bảng do ta sở hữu (tức là bảng do ta tạo ra) Thông thường, trong các hệquản trị cơ sở dữ liệu này cho phép những người dùng khác nhau tạo ra nhữngbảng trùng tên với nhau mà không gây ra xung đột về tên Nếu trong một câu
Trang 29lệnh SQL ta cần chỉ đến một bảng do một người dùng khác sở hữu (hiểnnhiên là phải được phép) thì tên của bảng phải được viết sau tên của người sởhữu và phân cách với tên người sở hữu bởi dấu chấm:
Tên_người_sở _hữu tên_bảng
Một số đối tượng cơ sở dữ liệu khác (như khung nhìn, thủ tục, hàm), việc
sử dụng tên cũng tương tự như đối với bảng
Ta có thể sử dụng tên cột một cách bình thường trong các câu lệnh SQLbằng cách chỉ cần chỉ định tên của cột trong bảng Tuy nhiên, nếu trong câulệnh có liên quan đến hai cột trở lên có cùng tên trong các bảng khác nhau thìbắt buộc phải chỉ định thêm tên bảng trước tên cột, tên bảng và tên cột đượcphân cách nhau bởi dấu chấm
SQL là ngôn ngữ thao tác dữ liệu (DML - Data Manipulation Language)
SQL là cú pháp để thực thi các câu truy vấn SQL cũng bao gồm cú pháp
để cập nhật - sửa đổi, chèn thêm và xóa các mẩu tin
Sau đây là danh sách các lệnh và truy vấn dạng DML của SQL:
SELECT - lấy dữ liệu từ một bảng CSDL
Câu lệnh SELECT được sử dụng để truy xuất dữ liệu từ các dòng và cáccột của một hay nhiều bảng, khung nhìn Câu lệnh này có thể dùng để thựchiện phép chọn ( tức là truy xuất một tập con các dòng trong một hay nhiềubảng), phép chiếu ( tức là truy xuất một tập con các cột trong một hay nhiềubảng) và phép nối ( tức là liên kết các dòng trong hai hay nhiều bảng để truy
Trang 30xuất dữ liệu) Ngoài ra, câu lệnh này còn cung cấp khả năng thực hiện cácthao tác truy vấn và thống kê dữ liệu phức tạp khác.
Điều cần lưu ý đầu tiên đối với câu lệnh này là các thành phần trong câulệnh SELECT nếu được sử dụng phải tuân theo đúng thứ tự như trong cúpháp Nếu không câu lệnh sẽ được xem là không hợp lệ
Câu lệnh SELECT được sử dụng để tác động lên các bảng dữ liệu và kếtquả của câu lệnh cũng được hiển thị dưới dạnh bảng, tức là một tập hợp cácdòng và các cột (ngoại trừ trường hợp sử dụng câu lệnh SELECT với mệnh đềCOMPUTE)
UPDATE - cập nhật/sửa đổi dữ liệu trong bảng
DELETE - xóa dữ liệu trong bảng
INSERT INTO - thêm dữ liệu mới vào bảng
Trong số các câu lệnh này, có thể nói SELECT là câu lệnh tương đốiphức tạp và được sử dụng nhiều trong cơ sở dữ liệu Với câu lệnh này, takhông chỉ thực hiện các yêu cầu truy xuất dữ liệu đơn thuần mà còn có thểthực hiện được các yêu cầu thống kê dữ liệu phức tạp
SQL là ngôn ngữ định nghĩa dữ liệu (DDL - Data Definition Language)Phần DDL của SQL cho phép tạo ra hoặc xóa các bảng Chúng ta cũng
có thể định nghĩa các khóa (key), chỉ mục (index), chỉ định các liên kết giữacác bảng và thiết lập các quan hệ ràng buộc giữa các bảng trong CSDL
Các lệnh DDL quan trọng nhất của SQL là:
CREATE TABLE - tạo ra một bảng mới.
Khi định nghĩa một bảng dữ liệu mới, ta cần phải xác định được các yêucầu sau đây:
Bảng mới được tạo ra sử dụng với mục đích gì và có vai trò như thế nàotrong cơ sở dữ liệu
Trang 31Cấu trúc của bảng bao gồm những trường (cột) nào, mỗi trường có ýnghĩa như thế nào trong việc biểu diễn dữ liệu, kiểu dữ liệu của mỗi trường là
gì và trường đó có cho phép nhận giá trị NULL hay không
Những trường nào sẽ tham gia vào khóa chính của bảng Bảng có quan
hệ với những bảng khác hay không và nếu có thì quan hệ như thế nào
Trên các trường của bảng có tồn tại những ràng buộc về khuôn dạng,điều kiện hợp lệ của dữ liệu hay không, nếu có thì sử dụng ở đâu và như thếnào
ALTER TABLE - thay đổi cấu trúc của bảng.
Lưu ý: Nếu bổ sung thêm một cột vào bảng và trong bảng đã có ít nhấtmột bản ghi thì cột mới cần bổ sung phải cho phép chấp nhận giá trị NULLhoặc phải có giá trị mặc định
Muốn xóa một cột đang được ràng buộc bởi một ràng buộc hoặc đangđược tham chiếu bởi một khóa ngoài, ta phải xóa ràng buộc hoặc khóa ngoàitrước sao cho trên cột không còn bất kỳ một ràng buộc và không còn đượctham chiếu bởi bất kỳ khóa ngoài nào
Nếu bổ sung thêm ràng buộc cho một bảng đã có dữ liệu và ràng buộccần bổ sung không được thỏa mãn bởi các bản ghi đã có trong bảng thì câulệnh ALTER TABLE không thực hiện được
DROP TABLE - xóa một bảng.
Trong các hệ quản trụ cơ sở dữ liệu, khi đã xóa một bảng bằng lệnhDROP TABLE, ta không thể khôi phục lại bảng cũng như dữ liệu của nó Do
đó, cần phải cẩn thận khi sử dụng câu lệnh này
Câu lệnh DROP TABLE không thể thực hiện được nếu bảng cần xóađang được tham chiếu bởi một ràng buộc FOREIGN KEY Trong trường hợpnày, ràng buộc FOREIGN KEY đang tham chiếu hoặc bảng đang tham chiếuđến bảng cần xóa phải được xóa trước
Trang 32Khi một bảng bị xóa, tất cả các ràng buộc, chỉ mục và trigger liên quanđến bảng cũng đồng thời bị xóa theo Do đó, nếu ta tạo lại bảng thì cũng phảitạo lại các đối tượng này.
2.4.2 Các đối tượng trong hệ quản trị cơ sở dữ liệu
a Bảng (Table)
Bảng là đơn vị lưu trữ dữ liệu chính trong cơ sở dữ liệu SQL Server, đó
là tập hợp dữ liệu có liên quan với nhau, là một đối tượng lưu trữ dữ liệu dướidạng hàng, cột Các hàng trong bảng người ta gọi là các bản ghi chứa dữ liệu,các cột là các trường chứa các thuộc tính của bảng
Khi tạo và làm việc với các bảng dữ liệu, ta cần phải để ý đến các thuộctính khác trên bảng như: kiểu dữ liệu, các ràng buộc, các khóa, các quy tắc…Các thuộc tính này được sử dụng nhằm tạo ra các ràng buộc toàn vẹn trên cáccột (trường) trên bảng cũng như tạo ra các toàn vẹn tham chiếu giữa các bảng
dữ liệu trong CSDL
Các thuộc tính liên quan đến bảng
Khi tạo và làm việc với các bảng dữ liệu, ta cần phải để ý đến các thuộctính khác trên bảng như: kiểu dữ liệu, các ràng buộc, các khóa, các quy tắc…Các thuộc tính này được sử dụng nhằm tạo ra các ràng buộc toàn vẹn trên cáccột (trường), trên bảng cũng như tạo ra các toàn vẹn tham chiếu giữa các bảng
dữ liệu trong CSDL
Kiểu dữ liệu:
Mỗi một cột (trường) của một bảng đều phải thuộc vào một kiểu dữliệu nhất định đã được định nghĩa từ trước Mỗi một kiểu dữ liệu quyđịnh các giá trị dữ liệu được cho phép đối với cột đó Các hệ quản trịCSDL thường cung cấp các kiểu dữ liệu chuẩn, ngoài ra còn có thể chophép người sử dụng định nghĩa các kiểu dữ liệu khác dựa trên các kiểu dữ
Trang 33 Quy định giá trị mặc định cho các cột (ràng buộc DEFAULT).
Tạo nên tính toàn vẹn thực thể trong một bảng dữ liệu và toàn vẹn thamchiếu giữa các bảng dữ liệu trong CSDL
b Khung nhìn dữ liệu (View)
Một khung nhìn có thể coi như là một “bảng ảo” có nội dung được xácđịnh từ một truy vấn Một truy vấn (query) là một tập các chỉ dẫn (instruction)nhằm truy xuất và hiển thị dữ liệu từ các bảng trong CSDL
Về mặt logic, bảng ảo giống như một bảng thực, nó không chứa bảng vật
lý nào mà nó chỉ là kết quả của việc thực hiện các câu lệnh Select trên nhữngbảng thực và dữ liệu của nó sẽ bị mất đi khi không thực hiện các câu lệnh đó.Các khung nhìn thường được sử dụng bên trong CSDL nhằm các mụcđích sau đây:
Sử dụng khung nhìn để tập trung trên dữ liệu được xác định
Sử dụng khung nhìn để đơn giản hóa thao tác dữ liệu
Sử dụng khung nhìn để bảo mật dữ liệu
c Chỉ số của bảng (Index)
Chỉ số là một cấu trúc được tạo ra để lưu trữ thông tin về vị trí các bảnghi trong một bảng dữ liệu nhằm cải thiển tốc độ truy xuất dữ liệu Một chỉ số
Trang 34được tạo trên một hay nhiều bảng, mọi sự thay đổi dữ liệu trong bảng đềuđược tự động cập nhật với các chỉ số có liên quan trong suốt quá trình sửdụng Chỉ số được chia ra làm hai loại: chỉ số tụ nhóm (clustered index) và chỉ
số không tụ nhóm (non clustered index)
Một chỉ số tụ nhóm là một chỉ số mà trong đó thứ tự logic củacác khóa tương tự như thứ tự vật lý của các dòng tương ứng tồn tại trongbảng Một bảng chỉ có thể có tối đa một chỉ số tụ nhóm
Một chỉ số không tụ nhóm là một chỉ số mà trong đó thứ tự logiccủa các khóa không như thứ tự vật lý của các dòng trong bảng Các chỉ số tụnhóm hỗ trợ việc truy cập đến các dòng dữ liệu nhanh hơn nhiều so với các chỉ sốkhông tụ nhóm
d Thủ tục lưu trữ (Store procedure)
Là một khối các câu lệnh truy vấn cơ sở dữ liệu, được lưu trữ trong mộtthủ tục và có tham số vào cũng như giá trị trả về khi thủ tục đó được thựchiện Mỗi một thử tục lưu trữ có thể có các khả năng sau:
Nhận các tham số đầu vào, thực thi các câu lệnh bên trong thủtục và trả về các giá trị
hiện các thao tác trên cơ sở dữ liệu (kể cả việc gọi đến các thủ tục lưu trữkhác)
Trả về một giá trị trạng thái thông qua đó có thể xác định việcthực thi thủ tục là thành công hay bị lỗi
Việc sử dụng các thủ tục lưu trữ bên trong cơ sở dữ liệu sẽ mang lạinhững lợi ích sau:
kiện thuận lợi cho việc thực hiện các thao tác trên dữ liệu
Thủ tục lưu trữ được phân tích, tối ưu và biên dịch khi tạo
Trang 35ra nên việc thực thi chúng nhanh hơn nhiều so với việc sử dụng một tập cáccâu lệnh giao tác SQL theo những cách thông thường.
cầu bằng một câu lệnh đơn giản thay vì phải sử dụng nhiểu dòng lệnh SQL.Điều này sẽ làm giảm thiểu sự lưu thông trên mạng
các câu lệnh SQL, ta có thể cấp phát quyền cho người sử dụng thông qua cácthủ tục lưu trữ, nhờ đó tăng khả năng bảo mật đối với hệ thống
Ngăn chặn sự truy cập trái phép tới cơ sở dữ liệu
Không cho phép sự truy cập trái phép trên các đối tượng của
hệ quản trị cơ sở dữ liệu
Bảo mật cơ sở dữ liệu được thực hiện ở hai mức: bảo mật hệthống và bảo mật mức dữ liệu
Bảo mật hệ thống cung cấp những kỹ thuật điều khiển sự truy nhập và sửdụng CSDL ở mức hệ thống, cụ thể là:
nhập
Trang 36Bảo mật dữ liệu trong SQL được thực hiện dựa trên ba khái niệm chínhsau đây:
dụng cơ sở dữ liệu, thực thi các thao tác trên cơ sở dữ liệu như tạo bảng, truyxuất dữ liệu,… Mỗi một người dùng trong cơ sở dữ liệu được xác định thôngqua tên người dùng (User ID) Một tập nhiểu người dùng có thể được tổ chứctrong một nhóm người dùng (User Group) Chính sách bảo mật cơ sở dữ liệu
có thể được áp dụng cho mỗi người dùng hoặc cho các nhóm người dùng
Các đối tượng cơ sở dữ liệu (Database objects): Tập hợp cácđối tượng, các cấu trúc lưu trữ được sử dụng trong cơ sở dữ liệu như bảng,khung nhìn, thủ tục, hàm được gọi là các đối tượng cơ sở dữ liệu Đây lànhững đối tượng cần được bảo vệ trong chính sách bảo mật của cơ sở dữ liệu
Đặc quyền (Privileges): Là tập những thao tác được cấp phátcho người dùng trên các đối tượng cơ sở dữ liệu Chẳng hạn một người dùng
có thể truy xuất dữ liệu trên một bảng bằng câu lệnh SELECT nhưng có thểkhông thể thực hiện các câu lệnh INSERT, UPDATE hay DELETE trên bảngđó
SQL cung cấp hai câu lệnh cho phép chúng ta thiết lập các chính sáchbảo mật trong cơ sở dữ liệu:
trên các đối tượng cơ sở dữ liệu hoặc quyền sử dụng các câu lệnh SQL trong
cơ sở dữ liệu
Lệnh REVOKE: Được sử dụng để thu hồi quyền đối vớingười sử dụng
Trang 37CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
3.1 Giới thiệu chung về trường mẫu giáo Sao Sáng 2
Trường mẫu giáo Sang Sáng 2 nằm trên đường Lê Lợi, số 212 Quận NgôQuyền Hải Phòng Với điều kiện vật chất đầy đủ, phòng ốc khang trang , cùngđội ngũ các cô giáo nhiệt tình , yêu thương các bé nên từ nhiều năm qua, nơiđây đã trở thành ngôi trường lý tưởng, được các bé yêu thích và các phụhuynh tin tưởng
Trường có diện tích 800 m2, có 8 lớp bán trú, các lớp đều được trang bịmáy tính để phục vụ không chỉ việc soạn giáo án của giáo viên, đầy đủ cácphòng chức năng: phòng ăn, phòng ngủ, nhà vệ sinh thoáng mát, nhà vệ sinhthoàng mát, sạch sẽ và đẹp mắt
3.2 Phân tích thực trạng của hệ thống
Tại trường mẫu giáo số 5, công tác quản lý về hồ sơ cán bộ giáo viên và
hồ sơ học sinh, tiền ăn học phí của nhà trường hiện nay đang được nhà trườngquản lý bằng cách lưu hồ sơ bằng văn bản: giấy tờ sổ sách
Yêu cầu:
Thiết kế một phần mềm giúp việc quản lý hồ sơ hồ sơ giáo viên
Cho phép quản lý hồ sơ học sinh từ khi bắt đầu nhập học và trong suốtquá trình học tập tại trường; quản lý chuyên cần của học sinh
Cho phép phép quản lý tình hình tiền ăn, tiền học phí của học sinh đóngtrong tháng
Cho phép quản lý thực đơn, lập thực đơn, sửa thực đơn cho học sinh
3.3 Phân tích yêu cẩu về chức năng của hệ thống
3.3.1 Mô tả hệ thống
Trang 38Hệ thống xây dựng chủ yếu hai vấn đề chính
Quản trị cấp cao (Admin)
Người dùng (User)
- Người quản trị hay admin là người làm chủ ứng dụng, họ có quyền
kiểm soát mọi hoạt động của hệ thống Mỗi admin sẽ được cấp một tài khoản,password và quyền admin Để thực hiện chức năng của mình họ phải đăngnhập vào hệ thống bằng tài khoản mà họ đăng ký Admin bao gồm các chứcnăng quản lý sau:
Chức năng quản lý giáo viênThêm giáo viên mới
Xóa giáo viênSửa thông tin giáo viênHiển thị thông tin giáo viên
Chức năng quản lý học sinh Thêm học sinh mới
Xóa học sinhSửa thông tin học sinhHiển thị thông tin học sinh
Chức năng quản lý lớp học Thêm lớp mới
Xóa lớp họcSửa thông tin về lớp họcHiển thị thông tin học sinh
Chức năng quản lý thực đơnThêm thực đơn mới
Xóa thực đơnSửa thông tin thực đơn
Trang 39Phân bổ thực đơn trong thángHiển thị thông tin thực đơn
Chức năng quản lý thu chi Thêm thu chi
Xóa thu chiSửa thông tin thu chiHiển thị thông tin thu chi
Chức năng quản lý thông tinThêm thông tin
Xóa thông tinSửa thông tin thông tinHiển thị thông tin thông tin
- Người dùng:
Là người có tài khoản user như các giáo viên, phu huynh vào hệ thống
để tìm kiếm thông tin về học sinh, tình hình ăn uống của trẻ…
Chức năng chính của người dùng là:
Thay đổi thông tin người dùng như username, password
Xem thông tin
Tra cứu thông tin
Tìm kiếm thông tin
3.3.2 Sơ đồ chức năng của hệ thống
Qua việc nghiên cứu và tìm hiểu các yêu cầu của hệ thống, sơ đồ chứccủa hệ thống sẽ xây dựng như hình 3.1 Sơ đồ chức năng của hệ thống
“ Xây dựng website quản lý trường mầm non mẫu giáo Sao Sáng 2”