TỔNG QUAN VỀ ĐỀ TÀI
Lý do chọn đề tài
Trong thời đại tri thức, thông tin đã trở thành nguồn tài nguyên thiết yếu cho xã hội Sự gia tăng nhu cầu vật chất và tinh thần, cùng với số lượng người sử dụng Internet ngày càng tăng, cho thấy tầm quan trọng của thông tin trong đời sống hiện đại.
Nhu cầu tìm hiểu nghiệp vụ báo chí tại Việt Nam đang gia tăng mạnh mẽ do vai trò quan trọng của báo chí trong xã hội Hiện nay, cả nước có hơn 600 tờ báo và tạp chí, cùng với hơn 60 đài truyền thanh và truyền hình từ Trung ương đến địa phương Hơn 12.000 nhà báo đã được cấp thẻ hành nghề, và nhiều trường đại học cùng trung tâm đào tạo báo chí đang hoạt động tích cực Không chỉ các nhà báo chuyên nghiệp, mà còn nhiều người ngoài ngành cũng đang tìm hiểu về lĩnh vực này.
Theo nghiên cứu Net Index do Yahoo và Kantar Media thực hiện tại Hà Nội, Đà Nẵng, Sài Gòn và Cần Thơ, số người sử dụng internet hàng ngày tại Việt Nam đã vượt qua số lượng người đọc báo giấy và nghe radio, với 42% người dùng internet so với 40% đọc báo giấy và 23% nghe radio Khảo sát của Nielsen cũng cho thấy 96% người sử dụng internet tại Việt Nam đã từng truy cập vào mạng xã hội, và họ là những người chịu ảnh hưởng nhiều nhất từ thông tin trên mạng xã hội so với cư dân các nước Đông Nam Á.
Trong thế kỷ XXI, Internet, đặc biệt là các trang báo điện tử, đóng vai trò quan trọng và không thể thiếu trong đời sống xã hội Nhằm đáp ứng nhu cầu thông tin ngày càng cao của độc giả, tôi đã quyết định chọn đề tài “xây dựng website tin tức” với sự đồng ý của giáo viên hướng dẫn.
Phạm vi đề tài
Sinh viên Đậu Văn Hòa thuộc ngành CNTT tại Đại học Vinh đang nghiên cứu về việc xây dựng và quản lý nội dung cho một website Đề tài này bao gồm nhiều yêu cầu khác nhau và tập trung vào việc tin học hóa quy trình nhập bài viết cũng như cách trình bày chúng để phục vụ bạn đọc hiệu quả hơn.
Yêu cầu của người sử dụng website tin tức
Theo truyền thống, người tìm kiếm thông tin thường phải mua hoặc thuê báo, tạp chí tại các điểm bán, gây tốn kém thời gian và tiền bạc Để khắc phục vấn đề này, việc sử dụng cổng thông tin trực tuyến trở thành giải pháp cần thiết cho độc giả.
Yêu cầu từ bên phía quản trị
Quản lý bài viết từ nhiều lĩnh vực khác nhau là cần thiết, đảm bảo quyền và người dùng được xác định chính xác Khi xảy ra sai sót, hệ thống có khả năng phát hiện nguyên nhân để khắc phục Ngoài ra, việc lấy tin từ các website khác sẽ giúp làm phong phú nội dung cho website tin tức của bạn.
Mô tả bài toán
Chúng tôi đang phát triển một website tin tức, nơi cung cấp những thông tin mới nhất hằng ngày về nhiều lĩnh vực khác nhau trong cuộc sống mà độc giả quan tâm.
Sau khi nghiên cứu các website như dantri.com.vn, thegioitin.com, 24h.com.vn, vietbao.com và vnexpress.net, tôi đã rút ra một số nhận xét quan trọng về nội dung và cấu trúc của chúng Những trang web này đều cung cấp thông tin đa dạng và phong phú, thu hút lượng lớn người đọc Đồng thời, chúng cũng chú trọng đến việc tối ưu hóa SEO để nâng cao khả năng hiển thị trên các công cụ tìm kiếm.
- Đối với trang Dantri.com.vn thì có một số đặc điểm sau:
Thông tin đa dạng từ nhiều lĩnh vực như văn hoá, xã hội, sức khoẻ, thể thao, địên ảnh, giải trí… ở trong và ngoài nước
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Các thông tin được cập nhật liên tục, cho phép chúng ta xem theo chủ đề, theo ngày tháng …
Màu sắc hài hoà, các chức năng rõ ràng dễ sử dụng…
Bên cạnh đó cũng có những bài viết, những tin tức tồn tại rất lâu ngày
- Đối với trang vnexpress.net:
Giao diện không chứa đầy các hình ảnh và bài viết như trang Dantri, nhưng có các đầy đủ các lĩnh vực để đọc giả lựa chọn
Hình ảnh không đẹp mắt như trang Dân trí
Theo khảo sát từ bạn bè và người thân, nhiều độc giả thường chọn trang Dân trí để cập nhật tin tức Lý do là trang này cung cấp thông tin nhanh chóng, có hình ảnh minh họa và đa dạng chủ đề, giúp người đọc dễ dàng tìm kiếm nội dung mà họ quan tâm.
Dựa trên khảo sát và ý kiến của độc giả, tôi quyết định xây dựng một website tin tức tương tự như trang Dân trí của Việt Nam.
Mục đích của đề tài
Mục đích nghiên cứu của tôi là tìm hiểu và phát triển thiết kế website thực tiễn, từ đó xác định quy trình thiết kế website tin tức phù hợp với nhu cầu hiện đại.
Một website tin tức cần phải có thiết kế hấp dẫn, dễ dàng sử dụng và thân thiện với người đọc, nhằm cung cấp những thông tin hữu ích mà họ quan tâm.
Quá trình tìm hiểu và xây dựng website tin tức đã giúp em rèn luyện những phương pháp trình bày bài viết một cách rõ ràng và thu hút người xem.
Để xây dựng một phương pháp làm việc độc lập, em cần phát triển khả năng tự tìm tòi và học hỏi từ thầy cô, bạn bè Việc này không chỉ giúp em nâng cao kiến thức mà còn tạo sự tự tin khi bước vào môi trường làm việc Hãy thường xuyên trao đổi, thảo luận và áp dụng những gì đã học để củng cố kỹ năng và tự tin hơn trong công việc tương lai.
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Phương pháp tiếp cận
- Với sự cố gắng nghiên cứu tìm tòi sáng tạo của bản thân em
- Nghiên cứu, tìm hiểu qua sách vở, qua thầy cô cùng các bạn
- Tìm tòi cập nhật những ứng dụng mới qua mạng, bạn bè
- Lắng nghe những sự giúp đỡ, bổ sung ý kiến nhiệt tình đóng góp của thầy hướng dẫn để hoàn thiện đề tài một cách hiệu quả nhất.
Lựa chọn công cụ
1.8.1 Ngôn ngữ ASP.NET a Giới thiệu ngôn ngữ ASP.NET
Hiện nay, ASP.NET đang trở thành lựa chọn phổ biến cho việc thiết kế ứng dụng thương mại điện tử với nhiều hình thức khác nhau Sự hỗ trợ mạnh mẽ từ các ngôn ngữ lập trình như C# và VB.NET, cùng với cơ sở dữ liệu SQL Server 2005, đã giúp nâng cao hiệu quả của ứng dụng Thêm vào đó, sự phát triển của công nghệ COM và DCOM đã cải thiện khả năng trao đổi thông tin trên mạng Internet và Intranet, làm cho ứng dụng trở nên hoàn hảo và ưu việt hơn.
Microsoft đang nỗ lực phát triển công nghệ Web mới với ASP.NET, cho phép xử lý phía máy chủ độc lập với mọi trình duyệt Điều này có nghĩa là người dùng không cần cài đặt công cụ hỗ trợ để truy cập trang Web ASP.NET (.aspx) Với kỹ thuật này, mọi thực thi diễn ra trên máy chủ, cho phép trình duyệt xử lý nhiều yêu cầu từ nhiều người dùng cùng lúc Do đó, yêu cầu về cấu hình máy chủ phải mạnh mẽ và băng thông cần có khả năng truyền tải dữ liệu lớn với tốc độ nhanh.
ASP.NET tương thích với các phiên bản ASP trước, cho phép triển khai ứng dụng ASP.NET cùng với ứng dụng ASP trên cùng một máy chủ mà không cần thay đổi cấu hình của ứng dụng ASP.
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
ASP.NET hỗ trợ các ngôn ngữ lập trình như VBScript, JScript và C# Bạn có thể xác định ngôn ngữ sử dụng để phát triển trang ASP.NET thông qua khai báo chỉ mục trong đối tượng chỉ dẫn đầu trang.
Công nghệ ASP.NET sẽ hướng các lập trình viên Web vào quỹ đạo của chúng bằng các lý do sau :
- Độc lập ngôn ngữ cho phép bạn không biên dịch ngôn ngữ, thực hiện tối ưu các ngôn ngữ kết hợp
- Dễ phát triển: ASP.NET cho phép bạn khai báo và viết mã và đơn giản hóa vấn đề
Trong quá trình mở Web form, bạn có thể tách mã và nội dung thành hai phần riêng biệt bằng cách khai báo một số thủ tục trên tập tin với các tên mở rộng.
Tính mềm dẻo và khả năng nâng cấp của hệ thống cho phép quản lý trạng thái của các Session, đồng thời hỗ trợ việc tạo form trên ứng dụng sử dụng máy chủ.
- Hỗ trợ nhiều trình khách có thể tự động nhận dạng trình khách để hiện thị cho phù hợp
Thay vì áp dụng mô hình DLL, COM, DCOM truyền thống, ứng dụng sử dụng công nghệ ASP.NET có thể tận dụng dịch vụ Web Services tương tự Một trong những ưu điểm nổi bật của ASP.NET là khả năng tích hợp và tương tác linh hoạt với các dịch vụ web, giúp tối ưu hóa hiệu suất và khả năng mở rộng của ứng dụng.
ASP.NET nổi bật hơn các nền tảng khác trong việc phát triển ứng dụng web nhờ vào nhiều ưu điểm vượt trội, đặc biệt khi kết hợp với máy chủ Windows và các công cụ lập trình của Windows Việc xây dựng, gỡ lỗi và triển khai ứng dụng web với ASP.NET trở nên đơn giản và hiệu quả, nhờ vào khả năng thực hiện tất cả các tác vụ trong một môi trường phát triển duy nhất - Visual Studio.NET.
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Với những nhà phát triển ứng dụng Web, ASP.NET bộc lộ những ưu điểm sau đây :
- Những phần thực thi được của ứng dụng Web được biên dịch, vì vậy chúng thực thi nhanh hơn là các kịch bản thông dịch
- Các cập nhập ngay lập tức giúp cho việc triển khai các ứng dụng Web mà không phải khởi động lại máy chủ
- Truy cập tới NET Framework, có thể đơn giản hóa nhiều khía cạnh trong lập trình Windows
- Sử dụng nhiều những hiểu biết về ngôn ngữ lập trình C#, VB, vốn đã được tăng cường để hỗ trợ lập trình hướng đối tượng
- Giới thiệu ngôn ngữ lập trình mới mà nó cung cấp khả năng an toàn kiểu, hướng đối tượng, so với ngôn ngữ lập trình C
- Tự động quản lý trạng thái để điều khiển trang Web (được gọi là Server Controls) vì vậy chúng có gì đó giống với các Windows Controls
- Các tính năng bảo mật được xây dựng sẵn thông qua máy chủ Windows hoặc thông qua các phương thực xác nhận/phân quyền khác
- Tích hợp chặt chẽ với ADO.NET để cung cấp các truy xuất CSDL và các công cụ thiết kế CSDL trực quan trong bộ VS.NET
- Hỗ trợ đầy đủ XML, CSS và các chuẩn Web đã được thiết lập hoặc mới khác
ASP.NET cung cấp nhiều tính năng hữu ích như khả năng đệm các trang web thường xuyên được yêu cầu trên máy chủ, hỗ trợ nội dung bản địa hóa cho nhiều ngôn ngữ, và đảm bảo tính tương thích với các trình duyệt khác nhau Những ưu điểm này là lý do chính để lựa chọn ASP.NET cho việc phát triển ứng dụng web.
.NET Framework đã và đang tạo ra một cuộc cách mạng trong công nghệ thông tin, mang lại nhiều ứng dụng quan trọng và thay đổi sâu sắc cách thức phát triển phần mềm.
Sinh viên Đậu Văn Hòa thuộc ngành CNTT tại Đại học Vinh đã nghiên cứu các kiểu mẫu lập trình và phát triển mạng trên toàn cầu, từ đó tạo ra bước ngoặt mới đáp ứng nhu cầu cấp thiết trong các lĩnh vực kỹ thuật và thương mại hiện đại ASP.NET nổi bật là một trong những ứng dụng quan trọng nhất, giúp việc phát triển và triển khai mạng trở nên dễ dàng hơn bao giờ hết.
Khác với ASP truyền thống chỉ hỗ trợ VBScript và JScript, ASP.NET cho phép lập trình viên sử dụng hơn 25 ngôn ngữ lập trình khác nhau, bao gồm cả VB.NET, C#, JScript.NET, cùng với các ngôn ngữ mới như MC++.NET, Smalltalk.NET, COMBOL.NET, và nhiều hơn nữa, mở rộng khả năng phát triển ứng dụng trên nền tảng NET Framework.
Mặc dù Notepad đủ để phát triển trang ASP.NET, nhưng Visual Studio.NET nâng cao hiệu suất triển khai mạng, giúp người dùng dễ dàng quan sát và thiết kế các thành phần của ASP.NET bằng hình ảnh thông qua ASP.NET Web Forms hay Services Hơn nữa, Visual Studio.NET còn hỗ trợ phát hiện và khắc phục lỗi hiệu quả trong quá trình phát triển ứng dụng mạng, mang lại trải nghiệm lập trình thuận lợi hơn.
ASP.NET nhanh hơn ASP cổ điển gấp năm lần và hỗ trợ kiểu mẫu ‘just hit save’, cho phép tự động phát hiện thay đổi và biên dịch tệp khi cần thiết Điều này giúp lưu trữ kết quả biên dịch để phục vụ các yêu cầu tiếp theo, đảm bảo ứng dụng luôn được cập nhật và hoạt động nhanh chóng.
ASP.NET có khả năng lưu trữ kết quả trong bộ nhớ của trang, cho phép gửi giải đáp cho cùng một yêu cầu từ nhiều phương thức khác nhau Điều này không chỉ tiết kiệm thời gian thực hiện cho trang web mà còn nâng cao hiệu suất đáng kể bằng cách giảm thiểu tối đa việc truy vấn cơ sở dữ liệu, một công việc thường tốn nhiều thời gian.
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Khảo sát hiện trạng Website tin tức
2.1.1 Mục đích, yêu cầu của website tin tức
Sau khi học và nghiên cứu về ngôn ngữ ASP.NET, tôi đã áp dụng kiến thức thực tế để xây dựng một website tin tức Website này sẽ cung cấp những thông tin mới nhất hàng ngày, giúp người dùng cập nhật nhanh chóng các tin tức quan trọng.
Qua việc nghiên cứu các website như Dân Trí, Thế Giới Tiếp Thị, 24h, Việt Báo và VNExpress, tôi đã rút ra một số nhận xét quan trọng về nội dung và chất lượng thông tin mà các trang này cung cấp.
Trang Dantri.com.vn nổi bật với thông tin đa dạng từ nhiều lĩnh vực như văn hóa, xã hội, sức khỏe, thể thao, điện ảnh và giải trí, cả trong nước và quốc tế Nội dung được cập nhật liên tục, giúp người dùng dễ dàng theo dõi theo chủ đề hoặc theo ngày tháng.
Màu sắc hài hoà, các chức năng rõ ràng dễ sử dụng…
Bên cạnh đó cũng có những bài viết, những tin tức tồn tại rất lâu ngày
- Đối với trang vnexpress.net:
Giao diện không chứa đầy các hình ảnh và bài viết như trang Dantri, nhưng có các đầy đủ các Listbox để đọc giả lựa chọn
Hình ảnh không đẹp mắt như trang Dân trí
Theo khảo sát từ bạn bè và người thân, nhiều độc giả thường lựa chọn trang Dân trí để cập nhật tin tức Lý do là trang này cung cấp thông tin nhanh chóng, có hình ảnh minh họa phong phú và đa dạng chủ đề, giúp người đọc dễ dàng tìm kiếm những gì họ cần.
Sau khi tiến hành khảo sát và lắng nghe ý kiến độc giả, tôi quyết định xây dựng một website tin tức tương tự như Dân trí của Việt Nam (http://www.dantri.com.vn).
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
2.1.2 Tóm tăt chức năng hệ thống
Từ các mục đích nêu trên, em xin nên lên những chức năng chính mà website cần đạt được:
- Hiển thị các danh mục
- Hiển thị chi tiết về thông tin trong danh mục
- Hiển thị kết quả của việc tìm kiếm
- Hiển thị các thông tin mới diễn ra hằng ngày, tin nóng, tiêu điểm a.Chức năng đối với phóng viên
Cho phép gửi các bài viết lên hệ thống, thay đổi mật khẩu, xem tin tức, tìm kiếm thông tin b Đối với người quản trị
Quản lý người dùng bao gồm việc thêm, sửa, và xóa tài khoản User và Admin Cập nhật thông tin mới, chỉnh sửa hoặc xóa thông tin cũ là cần thiết Kiểm tra và chỉnh sửa các bài viết của người dùng trước khi đăng tải Cuối cùng, hiển thị thông tin lên nhóm tin và chuyên mục để phục vụ bạn đọc.
Xem các bài báo mới nhất, nóng nhất, tiêu điểm; xem thông tin phụ như thời tiết, chứng khoán, giá vàng… Có thể bình luận cho các bài viết.
Đặc tả yêu cầu
- Hình thức thông tin đa dạng và sống động
- Giao diên thân thiện, dễ nhìn, màu sắc không đối lập
- Cung cấp thông tin và phát triển hoạt động liên tục, không ngừng
- Thông tin được cập nhật và sửa đổi thường xuyên
- Có khả năng cập nhật, sửa, xoá
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
- Có khả năng tra và tìm kiếm dễ dàng
- cho phép người viết bài có thể lấy các bài viết từ các website chẳng hạn từ vnexpress.net.
Xây dựng hệ thống
Danh sách các chức năng yêu cầu của Website tin tức: Đầu ra: Hiển thị thông tin
- Hiện thị thông tin theo chủ đề
- Thông tin hiển thị theo khuôn có sẵn
Ngoài ra còn có chức năng hiển thị thông tin tìm kiếm Đầu vào: Quản lý thông tin
- Cập nhật thông tin ( Sửa, xóa, thêm mới) theo chủ đề
- Nhập thông tin và quản lý thông tin theo khuôn có sẵn
- Thống kê tin tức, liên hệ, phân phát quyền quản trị
- Mã thông tin: Là khóa, đảm bảo tính duy nhất của thông tin
- Tiêu đề bản tin: Không được để rỗng, Số ký tự tối đa 100 Mục tiêu là hiện thị tiêu đề và thể hiện nội dung một phần bản tin
Nội dung chính của bản tin không được để rỗng, với số ký tự từ 50 đến 500 Điều này giúp người đọc nắm bắt được những thông tin căn bản ngay cả khi họ không có thời gian để đọc toàn bộ bài viết, đảm bảo rằng phần cốt lõi của tin tức vẫn được truyền tải một cách rõ ràng và hiệu quả.
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
- Trường ảnh: Có thể được để rỗng Thể hiện hình ảnh minh họa của bản tin (nếu có)
- Trường người đưa bản tin: Hiển thị thông tin của người đưa bản tin lên Website
- Nó phục vụ cho chủ đề nào
Nhập nội dung theo khuôn:
- Thiết kế nhập: Mã thông tin tự động tăng, không nhập bằng tay
- Tiêu đề bản tin: Nhập toàn bộ ký tự số, ký tự đặc biệt máy sẽ đưa ra cảnh báo
- Nội dung chính: Nhập rỗng sẽ đưa ra cảnh báo
- Trường ảnh: Nếu để rỗng sẽ có thông bảo hỏi “ Bạn có muốn để rỗng hay không?”
Cho phép sửa xóa các thành phần phụ trong cơ sở dữ liệu mà không cho sưa đổi trường khóa
Xóa thông tin: Có thể xóa theo chủ đề hoặc một nhóm chủ đề
- Xóa theo chủ đề (Xóa rất nhiều thông tin)
- Xóa theo bản tin (Thông tin về một vấn đề gì đó)
- Xóa những bản tin có chứa cụm nội dung không lành mạnh…
- Số lượng bản tin trong Website
- Số lượng bản tin trong từng chủ đề
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Liên hệ: (Liên hệ của người đọc vào Website)
Người đọc phản ánh qua Website cho phép họ gửi nội dung vào website hoặc gửi vào cơ sở dữ liệu
Cho phép người đọc nhập thông tin cá nhân: Tên, tuổi, Email để khảng định chính xác người đó
Quy định nội dung phải tránh những cụm từ không lành mạnh hoặc những cụm từ theo quy định của Website
Để đảm bảo nội dung tuân thủ quy định, người quản trị giới hạn số từ ngữ trong cơ sở dữ liệu Nếu nội dung vi phạm, người đọc sẽ nhận thông báo "Nội dung này bị cấm" khi tìm kiếm Ngoài ra, người quản trị cần bổ sung chức năng hiển thị thông tin với giao diện đẹp, phù hợp với loại thông tin đăng tải và cách thức trình bày theo tiêu chuẩn của Dân trí.
2.3.2 Biểu đồ phân cấp chức năng
Chức năng đăng nhập của người quản trị đóng vai trò quan trọng trong việc bảo mật toàn bộ hệ thống, chỉ cho phép những người có quyền hạn tham gia Điều này bao gồm quản trị viên hệ thống, người có khả năng nhập, sửa, xóa và xem bài viết, cũng như quản lý tài khoản người dùng, và người viết bài.
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
2.3.3 Biểu đồ luồng dữ liệu
- Biểu đồ luồng dữ liệu mức khung cảnh
Quản lý nhóm chuyên mục
Quản lý hệ thống tin tức
Cung cấp tài khoản, bài viêt, chuyên mục Cập nhật bài viết
Hệ thống quản lý tin tức
Người viết bài Đăng bài viết
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Trong biểu đồ, người dùng gửi yêu cầu đến quản lý, và quản trị viên là người trực tiếp quản lý trang web, sẽ xem xét và quyết định cấp phép cho người dùng hay không.
- Biểu đồ luồng dữ liệu mức đỉnh
- Biểu đồ luồng dữ liệu mức dưới đỉnh
Thông tin cập nhật Đăng nhập
Thông tin mới Thông tin
Thông tin Xóa bổ sung
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Thông tin mới vừa nhập sẽ lưu vào kho dữ liệu Các thông tin trong kho dữ liệu sẽ được cập nhật (sửa, xoá)
Người dùng có thể dễ dàng tìm kiếm thông tin mà họ quan tâm, bao gồm thể thao, sức khỏe, âm nhạc và nhiều lĩnh vực khác theo nhu cầu cá nhân.
2.3.4 Mô hình thực thể - liên kết
Từ biểu đồ phân cấp chức năng và biểu đồ luồng dữ liệu ta xây dựng mô hình thực thể lien kết như sau: Đưa ra kết quả
Tìm kiếm Người quản lý
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Nhóm chuyên mục Tên nhóm chuyên mục
Chuyên mục Tên chuyên mục
Bài viết Người viết bài
Tên đăng nhập đăng tóm tắt nội dung
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
2.3.5 Thiết cơ sở dữ liệu
Cơ sở dữ liệu đóng vai trò quan trọng trong việc lưu trữ thông tin cần thiết cho hệ thống Mỗi cơ sở dữ liệu sẽ cung cấp những thông tin tối thiểu cần thiết để quản lý hiệu quả.
Để lưu trữ cơ sở dữ liệu (CSDL) và thực hiện các thao tác cũng như thuật toán liên quan đến trang web, việc tìm kiếm các cấu trúc dữ liệu phù hợp là rất cần thiết để mô tả quá trình hoạt động hiệu quả của trang web.
- Để tạo một cơ sở dữ liệu, trước hết ta phải xác định những thông tin gì cần thiết
- Sau đó ta thiết kế, tạo các bảng chứa các trường định nghĩa kiểu dữ liệu sẽ có
Sau khi tạo ra cấu trúc cơ sở dữ liệu, cơ sở dữ liệu có thể chứa dữ liệu dưới dạng bản ghi
Việc lựa chọn hệ quản trị cơ sở dữ liệu (CSDL) để lưu trữ dữ liệu cho một chương trình là yếu tố quan trọng quyết định đến thành công của chương trình đó Quyết định này bị ảnh hưởng bởi nhiều yếu tố khách quan và chủ quan, tùy thuộc vào từng bài toán và thuật toán cụ thể.
- SQL Server là hệ quản trị CSDL quen thuộc, gần gũi với sinh viên do đó em quyết định chọn SQL Server 2005 để lưu trữ CSDL cho hệ thống
Bước đầu tiên trong phân tích thiết kế cơ sở dữ liệu là xác định các yêu cầu dữ liệu, bao gồm việc nhận diện thông tin cần quản lý để xác định các đối tượng cần lưu trữ trong bảng.
- Người quản lý, phóng viên: Thông tin gồm tên đăng nhập, mật khẩu, tên đầy đủ, quyền người dùng, email
Mỗi nhóm chuyên mục được xác định bằng một mã riêng biệt, giúp phân biệt với các nhóm khác Bên cạnh mã nhóm chuyên mục, mỗi nhóm còn có tiêu đề riêng để dễ nhận diện.
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Mỗi chuyên mục được phân biệt bằng một mã chuyên mục riêng, giúp dễ dàng nhận diện và phân loại thông tin Bên cạnh mã chuyên mục, tiêu đề của chuyên mục cũng đóng vai trò quan trọng trong việc xác định nội dung liên quan.
Mỗi bản tin được phân biệt bằng một mã chuyên mục riêng, bao gồm các thông tin quan trọng như tiêu đề, tóm tắt, nội dung và ảnh đại diện.
Dựa trên quá trình xác định các thực thể, chúng tôi đã xây dựng cơ sở dữ liệu (CSDL) mang tên NguoiVietOnline.mdf, bao gồm các bảng dữ liệu sau đây.
- Bài viết: Article(#Id, CategotyId, UserId, Title, Discription, body, Source, CreateDate, LastModified, Show, isHot, ReadNumber)
Tên trường Kiểu dữ liệu Độ rộng Ghi chú
Id Bigint Măc định Khóa chính
CategoryId Int Măc định Khóa ngoại chuyên mục
UserId Int Măc định Khóa ngoại người dùng
Title Nvarchar 300 Tiêu đề bài viết
Body Nvarchar MAX Nội dung bài viết
Source Nvarchar 200 Ảnh đại diện
LastModifided Varchar 50 Ngày chỉnh sửa cuối cùng
Show Bit Măc định Cho phép hiển thị khi đã duyệt isHot Bit Măc định Là tin nóng nếu bằng true
ReadNumber Bigint Măc định Số lần được đọc
-Nhóm chuyên mục: Menu(#Id, Menu, Link, Discription, Position)
Tên trường Kiểu dữ liệu Độ rộng Ghi chú
Id Int Măc định Khóa chính
Menu Nvarchar 50 Tên nhóm chuyên mục
Link Nvarchar 50 Trang hiển thị
Discription Nvarchar 50 Mô tả cho nhóm chuyên mục
Position Int Măc định Vị trí hiển thị trên menu
-Chuyên mục: Pages(#Id, MenuId, Category, Discription, Page, Position)
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Tên trường Kiểu dữ liệu Độ rộng Ghi chú
Id Int Măc định Khóa chính
MenuId Int Măc định Khóa ngoại nhóm chuyên mục
Category nvarchar 50 Tên chuyên mục
Discription Nvarchar 50 Mô tả chuyên mục
Page Nvarchar 50 Trang hiển thị
Position Int Măc định Vị trí xuất hiện trên submenu
-Người dùng: Users(#UserId, FullName, LoginName, Password, Address, Phone, Email, Date, UserRole)
Tên trường Kiểu dữ liệu Độ rộng Ghi chú
UserId Int Măc định Khóa chính
FullName Nvarchar 50 Tên đầy đủ của người dùng
LoginName Nvarchar 50 Tên đăng nhập hệ thống
Email Varchar 50 Địa chỉ E-mail
UserRole Int Măc định Quyền hệ thống
Quyền hệ thống phân thành 2 loại:
Nếu giá trị bằng 1 là quyền admin, là quyền cao nhất đối với hệ thống
Nếu giá trị bằng 2 là quyền đăng bài viết, dành cho phóng viên
-Bình luận: Comment(#Id, FullName, Email, Comment, PostDate, isShow, IdArticle)
Tên trường Kiểu dữ liệu Độ rộng Ghi chú
FullName Nvarchar 50 Tên người bình luận
Email Varchar 50 Địa chỉ E-mail
Comment Ntext Măc định Lời bình luận
PostDate Varchar 50 Ngày bình isShow Bit Măc định Cho phép hiện
IdArticle Bigint Măc định Khóa ngoại
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
-Quảng cáo: Advertise(#Id, Name, Image, Link, UserId,CreateDate, Type)
Tên trường Kiểu dữ liệu Độ rộng Ghi chú
Id Int Măc định Khóa chính
Name Nvarchar 100 Tiêu đề quảng cáo
Image Nvarchar 100 Ảnh quảng cáo
Link Varchar 50 Địa chỉ website cần quảng cáo
UserId Int Măc định Khóa ngoại người đăng
Type Int Măc định Loại quảng cáo
Nếu loại quảng cáo có type=1 là quảng cáo theo file flash, nếu type=2 là loại quảng cáo file ảnh
-Thống kê truy cập: tblThongKeTruyCap
Tên trường Kiểu dữ liệu Độ rộng Ghi chú
MaTB Int Măc định Khóa chính
ThoiGian Datetime Măc định Thời gian thống kê
SoTruyCap Bigint Măc định Số lượt truy cập
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
THIẾT KẾ WEBSITE TIN TỨC
Giao diện
Bố cục của website bao gồm nhiều phần quan trọng: phần banner hiển thị logo và hộp thoại tìm kiếm, phần menu top dành cho nhóm chuyên mục và thời gian hiện tại, phần Body trình bày nội dung tùy thuộc vào trang, và phần Footer chứa menu footer, bản quyền cùng địa chỉ của cơ quan chịu trách nhiệm nội dung.
Trang chủ của website tin tức (Default.aspx) cung cấp đầy đủ các chức năng chính như xem tin nóng, tin mới, và tin được đọc nhiều nhất Người dùng cũng có thể xem video, tìm kiếm tin theo tiêu đề, cùng với việc đặt các banner quảng cáo Ngoài ra, trang còn hiển thị thông tin thời tiết, chứng khoán, và tỉ giá vàng.
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Trang xem tin tức theo nhóm chuyên mục cho phép bạn dễ dàng truy cập và theo dõi tất cả các tin tức liên quan đến nhóm chuyên mục hoặc chuyên mục mà bạn quan tâm.
Trang xem chi tiết bài viết cung cấp thông tin đầy đủ về bài viết, bao gồm tiêu đề, ngày viết, tóm tắt, nội dung chính và các tin liên quan.
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Trang đăng nhập hệ thống quản lý(login.aspx):
-Trang quản lý bài viết:
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
- Trang cập nhật bài viết:
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
-Trang quản lý lời binh (comment.aspx):
Lấy tin từ các website khác
3.2.1 Đặt vấn đề Để giảm tải công việc lấy dữ liệu từ các website khác một cách thủ công, em tìm hiểu cách lấy thông tin từ các url như http//:www.vnxpress.net, http//:dantri.com, http//:xalo.vn, …
Có hai cách tiếp cận trong việc sử dụng công cụ Cách tiếp cận đầu tiên yêu cầu người dùng cung cấp các thông số đầu vào để xác định khu vực dữ liệu cần được trích xuất từ trang web.
Sinh viên Đậu Văn Hòa từ Đại học Vinh đã thực hiện chương trình với các đặc tả cần thiết theo cách thủ công để đảm bảo chương trình có thể chạy được Hướng tiếp cận thứ hai, mặc dù thể hiện tính thông minh của chương trình và giảm thiểu can thiệp từ người sử dụng, nhưng do tính phức tạp liên quan đến AI và Machine Learning, bài viết sẽ tập trung vào hướng tiếp cận thứ nhất.
Một trang web, bất kể công nghệ nào được sử dụng để xây dựng, khi hiển thị trên trình duyệt chỉ đơn thuần là tài liệu HTML kết hợp với CSS và JavaScript Thông thường, các website được thiết kế dựa trên một mẫu cố định, ít thay đổi Nhờ vào đặc điểm này, người dùng có thể xác định vùng dữ liệu cần trích xuất, và chương trình sẽ tự động bóc tách thông tin trên các trang web có cùng bố cục mà người dùng đã chỉ định.
3.2.3 Một ví dụ tổng quát
Mô hình website cung cấp danh bạ địa chỉ các website khác được tổ chức theo cấu trúc phân cấp rõ ràng Danh bạ này chia thành nhiều mục lớn (category), mỗi mục lại được phân thành các phân mục nhỏ (sub-category), và tiếp tục phân chia đến các phân mục nhỏ nhất Ở mỗi cấp độ, danh sách các địa chỉ website sẽ được trình bày, với khả năng phân trang cho từng nhóm category thuộc cùng một cấp.
Các trang web thường được phân loại thành nhiều cấp độ, với các trang hiển thị danh sách các danh mục lớn nhất được gọi là trang cấp 0 Từ trang cấp 0, khi người dùng chọn một danh mục cụ thể, họ sẽ được dẫn đến trang hiển thị các sub-category của danh mục đó, được gọi là trang cấp 1 Quá trình này tiếp tục cho đến các cấp độ cao hơn, tạo thành một cấu trúc phân cấp rõ ràng cho người dùng.
Cấu trúc file XML cấu hình đặc tả dữ liệu cần trích xuất sẽ có cấu trúc như sau:
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
1 url: URL của trang web mà chương trình sẽ lấy dữ liệu đầu tiên, đây chính là
URL của một trang web cấp 0
2 data: chứa tập các đặc tả phân vùng dữ liệu cần trích xuất trong 1 trang web cấp 0 (chỉ dùng khi dữ liệu cần trích xuất nằm ngay trong các trang cấp 0)
3 property: đặc tả một phân vùng dữ liệu cần trích xuất, có thể có nhiều phân vùng, mỗi phân vùng sẽ là một thẻ property riêng
4 name: tên định danh duy nhất của phân vùng (trong cùng một thẻ data)
5 type: kiểu template sử dụng để chương trình trích xuất phân vùng dữ liệu mong muốn, có 2 kiểu là “xpath” và “expression”
6 template: biểu thức dùng để trích xuất dữ liệu mong muốn trong một trang web cấp 0 Nếu type là “xpath” thì đây là biểu thức Xpath, ngược lại nếu type là “expression” thì đây là biểu thức Perl Expression
7 pagination: đặc tả các đường hyperlink dẫn đến các trang cùng cấp 0 Những trang cùng cấp có thể hiểu là các trang phân trang của cùng một danh sách dữ liệu, hoặc cũng có thể là các trang độc lập nhưng có cùng cấu trúc, bố cục
8 type: kiểu template sử dụng để đặc tả các hyperlink, có 2 kiểu là “xpath” và
9 template: biểu thức template dùng để lọc ra các hyperlink dẫn đến các trang cùng cấp 0 Nếu type là “xpath” thì đây là biểu thức Xpath, ngược lại nếu type là “expression” thì đây là biểu thức Perl Expression
10 numpage: số trang tối đa thuộc cấp 0 mà chương trình sẽ thực hiện trích xuất dữ liệu (sẽ crawl tới) Giá trị 0 đồng nghĩa với không giới hạn, giá trị -1 đồng nghĩa với không crawl tới trang nào cả
11 subpage: nếu dữ liệu cần trích xuất tồn tại trong các trang cấp 1, 2, 3 trở đi thì phải sử dụng đến thẻ subpage này Cụ thể trong subpage này sẽ đặc tả các đường hyperlink dẫn đến các trang cấp 1 (từ các trang cấp 0)
12 type: kiểu template sử dụng để đặc tả các hyperlink dẫn đến các trang cấp 1 từ các trang cấp 0, có 2 kiểu là “xpath” và “expression”
Sinh viên thực hiện: Đậu Văn Hòa – CNTT – Đại học Vinh
13 template: biểu thức template dùng để lọc ra các hyperlink dẫn đến các trang cấp 1 từ các trang cấp 0 Nếu type là “xpath” thì đây là biểu thức Xpath, ngược lại nếu type là “expression” thì đây là biểu thức Perl Expression
14 numsubpage: số trang tối đa thuộc cấp 1 được link đến từ 1 trang cấp 0 mà chương trình sẽ thực hiện trích xuất dữ liệu (sẽ crawl tới) Giá trị 0 đồng nghĩa với không giới hạn, giá trị -1 đồng nghĩa với không crawl tới trang nào cả
15 data: tương tự (2), chứa tập các đặc tả phân vùng dữ liệu cần trích xuất trong
16 pagination: nếu các trang cấp 1 cũng có sự phân trang thì thẻ này lại được sử dụng tương tự như (7)
17 subpage: tương tự (11), nếu dữ liệu cần trích xuất nằm ở các trang có cấp sâu hơn cấp 1 thì ta lại sử dụng thẻ subpage, các thẻ subpage có thể lồng nhau một cách đệ quy và số cấp là hữu hạn
3.2.4 Quá trình lấy dữ liệu
Quá trình lấy dữ liệu sẽ bao gồm 2 công việc chính: crawling và extracting
Crawling là quá trình tự động tải các trang web về dựa vào những liên kết hyperlink giữa các trang web trong một website