SQL Server có thể kết hợp “ăn ý” với các server khác như Microsoft InternetInformation Server IIS, E-Commerce Server, Proxy Server… Một vài ấn bản SQL Server: − Enterprise: chứa tất cả c
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
ĐỒ ÁN TỐT NGHIỆP KHOA ĐIỆN – ĐIỆN TỬ NGÀNH CÔNG NGHỆ THÔNG TIN
Tên đề tài:
Xây dựng trang tin tức phòng công tác học sinh sinh viên trường Đại Học Sư Phạm Kỹ Thuật
Giảng viên hướng dẫn: Th.S ĐỖ PHÚ HUY
Sinh viên thực hiện : NGUYỄN VĂN CƯỜNG 161250533205
: NGUYỄN DUY HƯNG 161250533319
Đà Nẵng, tháng 5 năm 2019
Trang 2ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
ĐỒ ÁN TỐT NGHIỆP KHOA ĐIỆN – ĐIỆN TỬ NGÀNH CÔNG NGHỆ THÔNG TIN
Tên đề tài:
Xây dựng trang tin tức phòng công tác học sinh sinh viên trường Đại Học Sư Phạm Kỹ Thuật
Giảng viên hướng dẫn: Th.S ĐỖ PHÚ HUY
Sinh viên thực hiện : NGUYỄN VĂN CƯỜNG 161250533205
: NGUYỄN DUY HƯNG 161250533319
Đà Nẵng, tháng 5 năm 2019
Trang 3LỜI MỞ ĐẦU
Ngày nay cuộc cách mạng công nghiệp 4.0 đang diễn ra và không ai có thể đứng ngoài cuộc Cách mạng công nghiệp 4.0 hội tụ nhiều công nghệ, trong đó cốt lõi là công nghệ thông tin Công nghệ thông tin xuất hiện trong hầu khắp các lĩnh vực như: kinh tế 4.0, dịch vụ thông minh, nông nghiệp thông minh 4.0, y tế thông minh 4.0, giáo dục thông minh 4.0, giao thông thông minh 4.0
Với sự hướng dẫn tận tình của ThS Đỗ Phú Huy, chúng em đã hoàn thành đồ án tốt nghiệp này Tuy đã cố gắng hết sức tìm hiểu, phân tích thiết kế và cài đặt hệ thống nhưng không thể tránh khỏi những thiếu sót Chúng em rất mong nhận được sự thông cảm và góp ý của quý Thầy cô
Chúng em xin chân thành cảm ơn!
Trang 4Sinh viên thực hiện
Nguyễn Văn Cường Nguyễn Duy Hưng
Trang 5LỜI CAM ĐOAN
Chúng tôi xin cam đoan:
Những nội dung trong luận văn này do chúng em thực hiện dưới sự hướng dẫn của ThS
Sinh viên thực hiện
Nguyễn Văn Cường Nguyễn Duy Hưng
Trang 6NHẬN XÉT
Trang 7
Mục lục
Trang 8CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1 Hệ quản trị cơ sở SQL Server
a Giới thiệu về SQL Server
SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational DatabaseManagement System (RDBMS)) sử dụng câu lệnh SQL (Transact-SQL) để trao đổi dữliệu giữa máy Client và máy cài SQL Server Một RDBMS bao gồm databases, databaseengine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trongRDBMS
SQL Server được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (VeryLarge Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàngngàn user SQL Server có thể kết hợp “ăn ý” với các server khác như Microsoft InternetInformation Server (IIS), E-Commerce Server, Proxy Server…
Một vài ấn bản SQL Server:
− Enterprise: chứa tất cả cá đặc điểm nổi bật của SQL Server, bao gồm nhân
bộ máy cơ sở dữ liệu và các dịch vụ đi kèm cùng với các công cụ cho tạo và quản lý phân cụm SQL Server Nó có thể quản lý các CSDL lớn tới 524 petabytes và đánh địa chỉ
12 terabytes bộ nhớ và hỗ trợ tới 640 bộ vi xử lý (các core của cpu)
− Standard: Rất thích hợp cho các công ty vừa và nhỏ vì giá thành rẻ hơn
nhiều so với Enterprise Edition, nhưng lại bị giới hạn một số chức năng cao cấp
(advanced features) khác, edition này có thể chạy tốt trên hệ thống lên đến 4 CPU và 2
GB RAM
− Developer: Có đầy đủ các tính năng của Enterprise Edition nhưng được chế
tạo đặc biệt như giới hạn số lượng người kết nối vào Server cùng một lúc… Ðây là phiên bản sử dụng cho phát triển và kiểm tra ứng dụng Phiên bản này phù hợp cho các cá nhân,
tổ chức xây dựng và kiểm tra ứng dụng
− Workgroup: Ấn bản SQL Server Workgroup bao gồm chức năng lõi cơ sở
dữ liệu nhưng không có các dịch vụ đi kèm Chú ý phiên bản này không còn tồn tại ở SQL Server 2012
− Express: SQL Server Express dễ sử dụng và quản trị cơ sở dữ liệu đơn
giản Được tích hợp với Microsoft Visual Studio, nên dễ dàng để phát triển các ứng dụng
dữ liệu, an toàn trong lưu trữ, và nhanh chóng triển khai SQL Server Express là phiên
Trang 9bản miễn phí, không giới hạn về số cơ ở dữ liệu hoặc người sử dụng, nhưng nó chỉ dùng cho 1 bộ vi xử lý với 1 GB bộ nhớ và 10 GB file cơ sở dữ liệu SQL Server Express là lựachọn tốt cho những người dùng chỉ cần một phiên bản SQL Server 2005 nhỏ gọn, dùng trên máy chủ có cấu hình thấp, những nhà phát triển ứng dụng không chuyên hay những người yêu thích xây dựng các ứng dụng nhỏ.
b Lịch sử ra đời SQL Server và các phiên bản:
Phiên bản đầu tiên của Microsoft SQL Server ra đời đầu tiên vào năm 1989 cho các
hệ điều hành chạy 16 bít với SQL Server phiên bản 1.0 và tiếp tục phát triển cho tới ngàynay
SQL Server của Microsoft được thị trường chấp nhận rộng rãi kể từ version 6.5 Sau
đó Microsoft đã cải tiến và hầu như viết lại một engine mới cho SQL Server 7.0 Cho nên
có thể nói từ version 6.5 lên version 7.0 là một bước nhảy vọt Có một số đặc tính củaSQL Server 7.0 không tương thích với version 6.5 Trong khi đó từ Version 7.0 lênversion 8.0 (SQL Server 2000) thì những cải tiến chủ yếu là mở rộng các tính năng vềweb và làm cho SQL Server 2000 đáng tin cậy hơn
Một điểm đặc biệt đáng lưu ý ở phiên bản 2000 là Multiple-Instance Tức là bạn cóthể cài dặt phiên bản 2000 chung với các phiên bản trước mà không cần phải gỡ chúng.Nghĩa là bạn có thể chạy song song version 6.5 hoặc 7.0 với phiên bản 2000 trên cùngmột máy (điều này không thể xảy ra với các phiên bản trước đây) Khi đó phiên bản cũtrên máy bạn là Default Instance còn phiên bản 2000 mới vừa cài sẽ là Named Instance
Từ tháng 10 năm 2018, các phiên bản sau được Microsoft hỗ trợ:
a Các thành phần cơ bản của SQL Server:
SQL Server được cấu tạo bởi nhiều thành phần như Database Engine, Reporting Services, Notification Services, Integration Services, Full Text Search Service… Các thành phần này khi phối hợp với nhau tạo thành một giải pháp hoàn chỉnh giúp cho việc lưu trữ và phân tích dữ liệu một cách dễ dàng
Trang 10− Database Engine - Cái lõi của SQL Server:
Ðây là một engine có khả năng chứa data ở các quy mô khác nhau dưới dạng table và support tất cả các kiểu kết nối (data connection) thông dụng của Microsoft như
ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC).Ngoài ra nó còn có khả năng tự điều chỉnh (tune up) ví dụ như sử dụng thêm các tàinguyên (resource) của máy khi cần và trả lại tài nguyên cho hệ điều hành khi một userlog off
− Replication: Cơ chế tạo bản sao (Replica) giả sử bạn có một database dùng
để chứa dữ liệu được các ứng dụng thường xuyên cập nhật Một ngày đẹp trời bạn muốn
có một cái database giống y hệt như thế trên một server khác để chạy báo cáo (report database) (cách làm này thường dùng để tránh ảnh hưởng đến performance của server chính) Vấn đề là report server của bạn cũng cần phải được cập nhật thường xuyên để đảmbảo tính chính xác của các báo cáo Bạn không thể dùng cơ chế back up and restore trong trường hợp này Thế thì bạn phải làm sao? Lúc đó cơ chế replication của SQL Server sẽ được sử dụng để bảo đảm cho dữ liệu ở 2 database được đồng bộ (synchronized)
− Integration Services (DTS) - Integration Services là một tập hợp các công
cụ đồ họa và các đối tượng lập trình cho việc di chuyển, sao chép và chuyển đổi dữ liệu.Nếu bạn làm việc trong một công ty lớn trong đó data được chứa trong nhiều nơi khác nhau và ở các dạng khác nhau cụ thể như chứa trong Oracle, DB2 (của IBM), SQL Server, Microsoft Access, Bạn chắc chắn sẽ có nhu cầu di chuyển data giữa các server này (migrate hay transfer) và không chỉ di chuyển bạn còn muốn định dạng (format) nó trước khi lưu vào database khác, khi đó bạn sẽ thấy DTS giúp bạn giải quyết công việc trên dễ dàng
− Analysis Services : Một dịch vụ phân tích dữ liệu rất hay của Microsoft, dữ
liệu (Data) chứa trong database sẽ chẳng có ý nghĩa gì nhiều nếu như bạn không thể lấy được những thông tin (Information) bổ ích từ đó Do đó Microsoft cung cấp cho bạn một công cụ rất mạnh giúp cho việc phân tích dữ liệu trở nên dễ dàng và hiệu quả bằng cách dùng khái niệm hình khối nhiều chiều (multi-dimension cubes) và kỹ thuật “khai phá dữ liệu” (data mining)
− Notification Services: Dịch vụ thông báo Notification Services là nền tảng
cho sự phát triển và triển khai các ứng dụng tạo và gửi thông báo Notification Services
có thể gửi thông báo theo địch thời đến hàng ngàn người đăng ký sử dụng nhiều loại thiết
bị khác nhau
Trang 11− Reporting Services: Reporting Services bao gồm các thành phần server và
client cho việc tạo, quản lý và triển khai các báo cáo Reporting Services cũng là nền tảng cho việc phát triển và xây dựng các ứng dụng báo cáo
− Full Text Search Service: Dịch vụ SQL Server Full Text Search là một
dịch vụ đặc biệt cho đánh chỉ mục và truy vấn cho dữ liệu văn bản không cấu trúc được lưu trữ trong các CSDL SQL Server Đánh chỉ mục với Full Text Search có thể dduwowcj tạo trên bất kỳ cột dựa trên dữ liệu văn bản Nó sẽ rất hiệu quả cho việc tìm các sử dụng toán tử LIKE trong SQL với trường hợp tìm văn bản
− Service Broker: Được sử dụng bên trong mỗi Instance, là môi trường lập
trình cho việc các ứng dụng nhảy qua các Instance Service Broker giao tiếp qua giao thứcTCP/IP và cho phép các component khác nhau có thể được đồng bộ cùng nhau theo hướng trao đổi các message Service Broker chạy như một phần của bộ máy cơ sở dữ liệu,cung cấp một nền tảng truyền message tin cậy và theo hàng đợi cho các ứng dụng SQL Server
− Những nền tảng cải tiến của ASP.NET Core: ASP.NET Core có một số
thay đổi kiến trúc lớn, đó là kết quả của việc học hỏi rất nhiều từ các framework module hóa khác ASP.NET Core không còn dựa trên System.Web.dll nữa Nó được dựa trên một tập hợp các gói, các module hay cũng được gọi là các Nuget packages Điều này cho phépbạn tối ưu ứng dụng của bạn để chỉ bao gồm những packages nào cần thiết Lợi ích của nó
Trang 12là giúp cho ứng dụng nhỏ hơn, bảo mật chặt chẽ hơn, giảm sự phức tạp, tối ưu hiệu suất hoạt động và giảm chi phí, thời gian cho việc phát triển ASP.NET Core có được những nền tảng cải tiến dưới đây:
Hợp nhất việc xây dựng web UI và web APIs
Tích hợp những client-side frameworks hiện đại và những luồng phát triển
Hệ thống cấu hình dựa trên môi trường đám mây thật sự
Dependency injection được xây dựng sẵn
HTTP request được tối ưu nhẹ hơn
Có thể host trên IIS hoặc self-host trong process của riêng bạn
Được xây dựng trên NET Core, hỗ trợ thực sự app versioning
Chuyển các thực thể, thành phần, module như những NuGet packages
Những công cụ mới để đơn giản hóa quá trình phát triển web hiện đại
Xây dựng và chạy đa nền tảng (Windows, Mac và Linux)
Mã nguồn mở và tập trung vào cộng đồng
− Xây dựng web UI và web API sửng dụng ASP.NET Core MVC
Bạn có thể tạo ra các ứng dụng web có thể testing theo mô hình View-Controller)
MVC(Model- Bạn có thể xây dựng HTTP services cái mà hỗ trợ nhiều định dạng và có đầy đủ hỗtrợ cho nội dung của dữ liệu trả về
Razor cung cấp một ngôn ngữ hiệu quả để tạo Views
Tag Helper cho phép code server side tham gia vào việc tạo và render phần tử HTML
Model Binding tự động ánh xạ dữ liệu từ HTTP request tới tham số của method action
Model Validation tự động thực hiện validate client và server
− Phát triển client-side
ASP.NET Core được thiết kế để tích hợp một cách liên tục với nhiều client-side frameworks, bao gồm AngularJS, KnockoutJS và Bootstrap.
− ASP.NET Core nhắm đến NET Framework
ASP.NET Core có thể nhắm đến NET Core hoặc NET Framework Các ứng dụng ASP.NET Core nhắm đến NET Framework không phải là ứng dụng đa nền tảng khi chỉ chạy trên Windows Hiện chưa có kế hoạch loại bỏ sự hỗ trợ NET Framework ở
ASP.NET Core Nhìn chung, ASP.NET Core được tạo thành các thư viện NET Standard (bản NET chuẩn) Các ứng dụng viết bằng NET Standard 2.0 cho thế chạy bất kỳ đâu nếu NET Standard 2.0 được hỗ trợ
Trang 13− Kết luận
ASP.NET Core là một mô hình lập trình mới sử dụng cho các ứng dụng chạy đa nền tảng (macOs, Linux và Windows) và có khả năng triển khai trên đám mây ASP.NET Corecũng hỗ trợ ASP.NET MVC, ASP.NET Web API, backend mobile và cũng là mã nguồn
mở Bạn cần phân tích kỹ yêu cầu của ứng dụng để quyết định xem có nên dùng ASP.NETCore hay không
b Mô hình MVC trong ASP.NET Core
− Mô hình MVC trong ASP.NET Core là một mã nguồn mở nhẹ, được kiểm chứng và trình bày cách tối ưu để sử dụng với ASP.NET Core
− – Mô hình MVC trong ASP.NET Core cung cấp một mô hình để xây dựng các trang web động hiệu quả Nó cung cấp cho bạn toàn quyền kiểm soát đánh dấu, hỗ trợphát triển TDD thân thiện và sử dụng các tiêu chuẩn web mới nhất
− ASP.NET Core trong Mô hình MVC bao gồm các thành phần:
• Razor view engine
• Strongly typed views
• Tag Helpers
• View Components
− Routing: Routing bạn có thể hiểu đơn giản nó là một thành phần URL cho
phép bạn xây dựng các URL một cách dễ hiểu, dễ tìm kiếm và tối ưu hóa công cụ tìm kiếm (SEO) mà không cần quan tâm các tập tin trên máy chủ được tổ chức thế nào Bạn chỉ cần định nghĩa routes của bạn bằng cách sử dụng các routes được hỗ trợ và được mặc định với các giá trị tùy chọn
− Model binding: ASP.NET Core với Mô hình MVC model binding giúp
chuyển đổi dữ liệu theo yêu cầu từ client (giá trị, dữ liệu route, các thông số chuổi truy
Trang 14vấn, tiêu đề HTTP) vào các đối tượng mà Controller có thể xử lý Kết quả là logic
Controller của bạn không phải làm công việc tìm ra các dữ liệu yêu cầu gửi đến; nó chỉ đơn giản có các dữ liệu như tham số cho các hành động của nó
− Model validation: Mô hình MVC trong ASP.NET Core hỗ trợ validation
bằng cách giúp xác thực dữ liệu trong Model của bạn Thuộc tính này sẽ kiểm tra trên các client trước khi gửi đến máy chủ, cũng như trên máy chủ trước khi các hành động được gọi Hãy xem thử ví dụ bên dưới
Framework sẽ xử lý yêu cầu xác thực dữ liệu trên cả client và trên server
− Dependency injection: ASP.NET Core hỗ trợ xây dựng dependency
injection (DI) Trong mô hình MVC ASP.NET Core, các Controller có thể yêu cầu các dịch dụ cần thiết thông qua các constructors của ASP.NET Core, cho phép họ thực hiện theo Explicit Dependencies Principle
− Filters: Filters giúp các nhà phát triển gói gọn các yêu cầu của họ, như xử
lý ngoại lệ hoặc xác thực Bộ lọc có thể được sử dụng để điều khiển hoặc thực hiện các hành động dưới dạng thuộc tính Một số sộ lọc bạn có thể thấy như là Authorize
− Areas: Areas là một cách để phân chia các ASP.NET Core với Mô hình
MVC web thành các nhóm chức năng nhỏ hơn Với mỗi Area chính là một cấu trúc MVC.Trong một project MVC, các thành phần như Model, Controller và View được lưu giữ trong các thư mục khác nhau, và MVC sử dụng quy ước đặt tên để tạo ra các mối quan hệ giữa các thành phần Đối với dự án lớn, việc phân chia các Area sẽ giúp tạo ra những phân vùng với những chức năng riêng biệt Ví dụ, đối với một project thương mại điện tử bạn sẽ cần các chức năng như là thanh toán, tìm kiếm, checkout… và lúc này bạn sẽ chia thành các Area nhỏ hơn như là checkout, billing, và Seach, tương ứng với mỗi area lúc này đều sẽ có các thành phần Model, Controller, View
− WebAPIs: Ngoài việc là một nền tảng tuyệt vời để xây dựng các trang web
Mô hình MVC trong ASP.NET Core còn hỗ trợ rất tốt cho việc xây dựng các Web API Bạn có thể xây dựng các services mà tại đó có thể tiếp cận tới các client bao gồm trình duyệt và các thiết bị di động
Framework hỗ trợ HTTP với việc xây dựng các định dạng dữ liệu như là JSON và XML
Trang 15Sử dụng các link cho phép hỗ trợ hypermedia Cho phép chia sẻ tài nguyên gốc (CORS) để API Web của bạn có thể chia sẻ trên nhiều ứng dụng Web
− Testability: Framework sử dụng các interfaces và dependency injection nên
rất phù hợp để kiểm thử đơn vị, và framework bao gồm các tính năng (như một TestHost
và cung cấp bộ nhớ cho Entity Framework)
Razor view engine: Hồi trước thì Microsoft còn sử dụng Web form, nhưng đến
ASP.NET Core thì Web form đã không còn được sử dụng nữa, Microsoft chỉ còn sử dụng Razor view engine để hiển thị nội dung Razor gọn nhẹ, ý nghĩa và là một ngôn ngữ đánh dấu giúp định nghĩa các view được nhúng code C# Razor được sử dụng để tự động tạo ra nội dụng web trên máy chủ Bạn có thể kết hợp giữa code server với code và nội dung từ client
Sử dụng Razor bạn có thể định nghĩa các layouts, partial views và thay thế các sections
− Strongly typed views:
− Tag Helpers: Tag Helpers giúp bạn tạo ra và dựng các phần tử HTML trong
Razor Bạn có thể sử dụng Tag Helpers để định nghĩa các tags (ví dụ, <environment>) hoặc chỉnh sửa các hành vi của các thẻ hiện tại (ví dụ, <label>) Tag Helpers liên kết với các phần từ cụ thể dựa vào tên và thuộc tính của các phần tính
Có rất nhiều Tag Helpers được xây dựng phục cho việc tạo form, link, load assets nhiều hơn nữa, nhiều hơn cả các kho có sẵn trên GitHub và các gói NuGet Tag Helpers
sử dụng C# và hướng đến mục tiêu là các phần tử HTML dựa trên tên phần tử, thuộc tínhphần tử, hoặc thẻ chính
Tag Helpers giúp bạn có thể phát triển HTML thân thiện và một môi trường
IntelliSense giàu để tạo HTML và Razor Hầu hết các Tag Helpers được xây dựng nhắm đến mục tiêu là các phần tử HTML hiện có và cung cấp các thuộc tính từ phía máy chủ cho phần tử
− View Componets: View Componets cho phép bạn đóng gói và tái sử dụng
nó thông qua ứng dụng View Components tương tự như Partial views, nhưng với liên kết logic
Trang 16CHƯƠNG 2: TỔNG QUAN HỆ THỐNG
1 Tính cấp thiết
Hiện nay, trường Đại Học Sư Phạm Kỹ Thuật vẫn chưa có website tin tức dành cho phòng công tác học sinh, sinh viên là một thiếu cho sinh viên của trường, sinh viên không cập nhật thông tin một cách nhanh nhất và đặc biệt đối với các bạn tân sinh viên là một khó khăn trong việc theo dõi các thông báo của trường Qua đó chúng em đã thực hiện và xây dựng “website quản lý tin tức phòng công tác học sinh, sinh viên”.
Đây là một website giúp các bạn sinh viên theo dõi các hoạt động của trường một cách nhanh chóng.
2 Phân tích bài toán
User: Id, UserName, FistName, LastName, Password, Address, Email, Phone, Gender,
Birthday, Status, Role_id
Admin: Người quản lý
o Tạo tài khoản nhân sự
o Tạo các bài đăng (Tin tức)
o Quản lý tài khoản
o Quản lý bài đăng
o Cập nhật trạng thái tài khoản và bài đăng
User: Người dùng (sinh viên)
o Xem bài đăng
Trang 18− Hệ thống sẽ xác nhận thông tin đăng nhập:
Nếu hợp lệ sẽ chuyển đến giao diện chức năng chính của từng tài khoản.
Nếu không hợp lệ sẽ hiện thông báo lỗi “Đăng Nhập Thất Bại” và quay trở lại giao diện đăng nhập.
− Output
Đăng nhập thành công.
− Phát thảo giao diện
Trang 19b Tạo tài khoản
− Actor: Người quản lý (Admin).
− Input
(a) Thông tin tài khoản: tên đăng nhập, email, công ty, giới tính, số điện thoại
− Xử lý hệ thống
(a) Hệ thống sẽ kiểm tra các dữ liệu đầu vào có hợp lệ hay không
(i) Nếu hợp lệ tài khoản nhân viên sẽ được tạo, lưu vào hệ thống, nhận thông báo “Đăng Ký Tài Khoản Thành Công!” và mật khẩu tự động được tạo và gởi về email cho người dùng.
(ii)Nếu không hợp lệ sẽ hiện thông báo kèm theo lỗi thông tin không hợp lệ.
− Output
Tài Khoản Thành Viên được tạo thành công.
− Phát thảo giao diện
Trang 20(a) Hệ thống sẽ kiểm tra các dữ liệu đầu vào có hợp lệ hay không
(b)Nếu hợp lệ sẽ thay đổi mật khẩu và gởi email thông báo cho người dùng.
(c)Nếu không thì thông báo lỗi
− Output
Hiển thị thông báo thành công hoặc thất bại.
− Phát thảo giao diện