NGHIÊN CỨU CÁC GIẢI PHÁP CÔNG NGHỆ: NOSQL, YII FRAMEWORK ĐỂ TỐI ƯU TỐC ĐỘ TRUY VẤN THÔNG TIN VÀ DỮ LIỆU

35 1.8K 0
NGHIÊN CỨU CÁC GIẢI PHÁP CÔNG NGHỆ: NOSQL, YII FRAMEWORK ĐỂ TỐI ƯU TỐC ĐỘ TRUY VẤN THÔNG TIN VÀ DỮ LIỆU

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CHƯƠNG 1: GIỚI THIỆU VỀ YII FRAMEWORK1.1.Khái quát về Yii framework1.1.1.Kiến trúc Yii framework1.1.2.Cấu trúc thư mục trong Yii framework1.2.Model – Trao đổi thông tin1.2.1.Tạo model1.2.2.Định nghĩa lớp model1.2.3.Đặt luật cho model1.2.4.Kết nối với bảng trong cơ sở dữ liệu1.3.Controller –Bộ điều khiển1.3.1.Một lớp controller trong Yii có dạng1.3.2.Các thành phần chính của controller1.4.View – Hiện dữ liệu1.4.1.Layout1.4.2.Widget1.5.Các mở rộng (Extensions)1.6.Tạo khung ứng dụngCHƯƠNG 2: TỔNG QUAN VỀ NOSQL2.1.NoSQL là gì ?2.1.1.Thuật ngữ2.1.2.Lịch sử2.2.So sánh NoSql và RDBMs2.2.1.Một số đặc điểm.2.2.2.Phân loại NoSqlCHƯƠNG 3: GIỚI THIỆU VỀ MONGODB3.1.Tổng quan về MongoDB3.1.1.Lịch sử ra đời MongoDB3.1.2.Các khái niệm cơ bản MongoDB3.2.Mô hình hóa dữ liệu3.2.1.Mô hình nhúng OnetoOne mối quan hệ giữa các Documents3.2.2.Mô hình nhúng OnetoMany mối quan hệ giữa các Documents3.2.3.Mô hình tham chiếu OnetoMany mối quan hệ giữa các Documents3.3.Hướng dẫn cài đặt và sử dụng MongoDBCHƯƠNG 4: SO SÁNH HIỆU NĂNG MONGODB VỚI MYSQL4.1.Mô hình thử nghiệm4.2.So sánh4.2.1.So sánh dựa trên thực hiện câu lệnh INSERT4.2.2.So sánh dựa trên multi users đồng thời thực hiện truy vấn4.3.Đánh giá kết quả so sánh:KẾT LUẬNĐánh giá kết quảĐịnh Hướng phát triểnTÀI LIỆU THAM KHẢO

ĐẠI HỌC ĐÔNG Á KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC ĐỀ TÀI: “NGHIÊN CỨU CÁC GIẢI PHÁP CÔNG NGHỆ: NOSQL, YII FRAMEWORK ĐỂ TỐI ƯU TỐC ĐỘ TRUY VẤN THÔNG TIN VÀ DỮ LIỆU CHO WEBSITE WOWQUATOT.COM” Giảng viên hướng dẫn : Ths. HỒ ĐỨC LĨNH Sinh viên thực hiện : BÙI XUÂN BÍCH Lớp : 12DHLTTH1A Khoá : 2012-2014 Hệ : Chính quy Đà Nẵng, tháng 4 /2014 ĐẠI HỌC ĐÔNG Á CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do – Hạnh phúc KHOA CÔNG NGHỆ THÔNG TIN ĐỀ TÀI ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Họ và tên sinh viên: Bùi Xuân Bích Lớpp: 12DHLTTH1A Khoá: 2012-2014 Ngành đào tạo: Công nghệ thông tin Hệ đào tạo: Chính quy 1/ Tên đồ án tốt nghiệp: Nghiên cứu các giải pháp công nghệ: NoSQL, Yii framework để tối ưu tốc độ truy vấn thông tin và dữ liệu cho website wowquatot.com. 2/ Nội dung chính của đồ án: - Mở đầu. - Giới thiệu về Yii framework. - Tổng quan về NoSQL. - Giới thiệu về mongodb. - So sánh hiệu năng MongoDB với MySQL. - Kết luận và hướng phát triển. 3/ Cơ sở dữ liệu ban đầu - Dữ liệu của website đang hoạt động: wowquatot.com. 4/ Ngày giao đồ án: /12/2013 5/ Ngày nộp đồ án : /4/2014 TRƯỞNG BỘ MÔN (Duyệt) GIÁO VIÊN HƯỚNG DẪN (Ký, ghi rõ họ tên) (Ký, ghi rõ họ tên) TRƯỞNG KHOA LỜI CAM ĐOAN Tôi xin cam đoan đây là đề tài nghiên cứu của tôi. Những thông tin và các số liệu trong báo cáo thực tập tốt nghiệp được khai thác tại nguồn dữ liệu của website wowquatot.com. Trong quá trình làm đồ án tốt nghiệp, ngoài những tài liệu tìm kiếm trên mạng và trong sách vở. Tôi xin cam đoan không sao chép, không nhờ người khác làm. Nếu không đúng sự thật tôi xin chịu hoàn toàn trách nhiệm và chịu mọi hình thức kỉ luật của thầy, cô và của khoa CNTT Trường Đại Học Đông Á. Sinh viên thực hiện Bùi Xuân Bích MỞ ĐẦU 1. Lý do chọn đề tài Hiện nay có rất nhiều ngôn ngữ lập trình web như: ASP, ASP.NET, C#, VB, PHP, JAVA và phổ biến nhất hiện nay là ASP.NET và PHP. Trong đó thì PHP được sử dụng rộng rãi vì đây là mã nguồn mở rất dễ sử dụng. Ngôn ngữ PHP có thêm những framework hỗ trợ người lập trình rất nhiều trong quá trình viết code. Đứng đầu trong nhóm framework đó thì Yii là giải pháp tốt nhất cho tôi áp dụng vào website wowquatot.com vì các đặc tính nổi trội của nó. Đặc biệt là sự bùng nổ công nghệ Web 2.0, nơi các mạng dịch vụ dữ liệu cộng đồng cho phép người dùng tự do tạo nội dung trên web, dẫn đến dữ liệu tăng lên rất nhanh, vượt qua giới hạn xử lý của các Hệ quản trị cơ sở dữ liệu quan hệ truyền thống. Để đáp ứng được nhu cầu phát triển của xã hội, đòi hỏi một cơ sở dữ liệu (CSDL) có thể lưu trữ, xử lý được một lượng dữ liệu lớn một cách nhanh chóng và hiệu quả. NoSQL đã ra đời, thay thế hệ quản trị CSDL quan hệ, giải quyết bài toán trên. 2. Mục đích và nhiệm vụ nghiên cứu Vận dụng tổng hợp những kiến thức về Yii framework đó là những kiến thức về mặt lý thuyết để áp dụng vào ứng dụng. Tìm hiểu khái quát về các CSDL hiện đại NoSQL, chi tiết hơn về hệ cơ sở dữ liệu NoSQL là MongoDB và đồng thời giúp tôi có thể thực hiện tối ưu tốc độ truy vấn dữ liệu cho website wowquatot.com trên hệ cơ sở dữ liệu MongoDB LỜI CẢM ƠN Để hoàn thành đồ án tốt nghiệp, tôi xin gửi lời cảm ơn sâu sắc tới các thầy cô giáo trong Khoa công nghệ thông tin Trường Đại học Đông Á đã trực tiếp giảng dạy và cung cấp cho tôi những kiến thức quý báu để tôi có thể tìm hiểu và tiếp cận với những công nghệ và lĩnh vực mới. Đặc biệt tôi xin chân thành gửi lời cảm ơn đến thầy Hồ Đức Lĩnh – Giảng viên Trường Đại Học Đông Á đã tận tình hướng dẫn tôi cũng như tạo mọi điều kiện về tài liệu và kiến thức để tôi có thể hoàn thành được đồ án tốt nghiệp này. Và cuối cùng xin gửi lời cảm ơn tới gia đình, tới các bạn đã động viên, góp ý và sát cánh cùng tôi trên con đường học tập. Báo cáo hoàn thành trong thời gian ngắn và khả năng của tôi còn hạn chế nên đồ án tốt nghiệp không tránh khỏi những thiếu sót trong quá trình thực hiện. Kính mong nhận được nhiều ý kiến đóng góp, phê bình của quý thầy cô và các bạn để sản phẩm được hoàn thiện hơn. Tôi xin chân thành cảm ơn! Đà Nẵng, Ngày… tháng…năm 2014 MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC BẢNG Đồ án tốt nghiệp Đại học 6 CHƯƠNG 1: YII FRAMEWORK 1.1.Khái quát về Yii framework Yii là từ viết tắt của Yes, it is! hoặc cũng có thể là viết ngắn gọn 3 chữ cái đầu của Easy (dễ dàng), Efficient (hiệu quả) và Extensible (khả năng mở rộng). Yii là một PHP framework mã nguồn mở và hoàn toàn miễn phí, có hiệu năng cao, giúp người lập trình phát triển tốt nhất các ứng dụng Web 2.0. Yii cho phép tái sử dụng tối đa các thành phần của ứng dụng để tăng tốc độ viết ứng dụng. Hình 1.1. Hiệu suất Yii 1.1.1. Kiến trúc Yii framework Yii được viết theo mô hình MVC, đây là mô hình thông dụng trong lập trình web. Mô hình MVC tách biệt phần xử lý dữ liệu ra khỏi phần giao diện, cho phép kiểm tra, quản lý và bảo trì một cách dễ dàng và độc lập: View Controller Model Hình 1.2: Mô hình MVC Bên cạnh đó Yii còn phát triển thêm một bộ điều khiển phía trước gọi là Application. Application thu thập một số yêu cầu của người dùng sau đó đưa đến cho controller thích hợp để xử lý thêm. GVHD: Ths. Hồ Đức Lĩnh SVTH: Bùi Xuân Bích Lớp: 12DHLTTH1A Hình 1.1. Mô hình MVC Đồ án tốt nghiệp Đại học 7 widget index.php application controller app componentss model view Để hiểu rõ hơn về cách thức phối hợp của Yii ta có thể xem ví dụ dưới 7 model view layout widget 8 9 10 Controller filters action 4 5 urlManager index.php application Request 1 11 2 3 6 đây về các xử lý yêu cầu nhập vào từ người dùng. GVHD: Ths. Hồ Đức Lĩnh SVTH: Bùi Xuân Bích Lớp: 12DHLTTH1A Hình 1.1. Cấu trúc tĩnh của Yii Application Hình 1.1. Quy trình làm việc của một ứng dụng Yii Đồ án tốt nghiệp Đại học 8 Quá trình phối hợp của Yii được mô tả theo các bước sau: - Bước1: Người dùng tạo yêu cầu đối với url (ví dụ: với thanh địa chỉ http://wowquatot.com/index.php/category/view/id/533ba29963ff878c09000 004) và máy chủ web xử lý yêu cầu đó bằng cách thực hiện script. - Bước 2: Script tạo ra một Application và chạy nó. - Bước 3: Application có được chi tiết yêu cầu của người dùng từ application component có tên là request. - Bước 4: Application này xác định yêu cầu controller và action với sự giúp đỡ của một application component có tên urlManager. - Bước 5: Application tạo ra một bộ điều khiển để tiếp tục xử lý yêu cầu người dùng, bộ điều khiển nhận thấy action (view) có liên quan đến phương thức (actionView) trong controller. Sau đó nó sẽ tạo ra các bộ lọc để kết hợp với action này.Các action sẽ được thực hiện dưới sự cho phép của các bộ lọc. - Bước 6: Action sẽ đọc Catagory model với ID=533ba29963ff878c09000004 với dữ liệu từ database. - Bước 7: Action sẽ render một view có tên là view với Category model. - Bước 8: View sẽ đọc là trình bài các thuộc tính của Category model. - Bước 9: View sẽ thực hiện một số widgets. - Bước 10: Kết quả của view sẽ được nhúng vào layout. - Bước 11: Action hoàn thành các kết quà của view và hiện kết quả nguời dùng. 1.1.2. Cấu trúc thư mục trong Yii framework GVHD: Ths. Hồ Đức Lĩnh SVTH: Bùi Xuân Bích Lớp: 12DHLTTH1A Đồ án tốt nghiệp Đại học 9 Hình 1.1. Cấu trúc Yii Trong đó thư mục chính là 3 thư mục: models, controllers, views. Bảng 1.1. Chức năng các thư mục và file trong cấu trúc Yii TÊN FILE VÀ THƯ MỤC CHỨC NĂNG index.php file script truy cập đến ứng dụng web index-test.php file script truy cập đến các chức năng kiểm định assets chứa các file nguồn được công bố css chứa các file định dạng css images chứa các file ảnh protected chứa các file bảo vệ của ứng dụng commands chứa các lệnh yiic được thiết lập components chứa các components có thể sử dụng lại config chứa các file cấu hình controller chứa các tập tin lớp điều khiển data chứa các cơ sở dữ liệu mẫu GVHD: Ths. Hồ Đức Lĩnh SVTH: Bùi Xuân Bích Lớp: 12DHLTTH1A Đồ án tốt nghiệp Đại học 10 extensions chứa các phần mở rộng của Yii messages chứa các thông điệp đã được dịch model chứa các tập tin lớp của mô hình runtime chứa các tập tin tạm thời tạo ra test chứa các file script kiểm tra view chứa các file điều khiển xem và bố trí của ứng dụng yiic yiic command line script cho Unix/Linux yiic.bat yiic command line script cho Windows yiic.php yiic command line script cho Windows themes chứa các mẫu của ứng dụng Bảng 1.1. Bảng các thành phần ứng dụng trong Yii TÊN CÁC THÀNH PHẦN ỨNG DỤNG CHỨC NĂNG assetManager: CAssetManager quản lý việc xuất bản các tập tin riêng. authManager: CAuthManager quản lý kiểm soát truy cập cache: CCache cung cấp dữ liệu bộ nhớ đệm clientScript: CClientScript quản lý lệnh của người dùng (JavaScript và CSS). coreMessages: CPhpMessageSource cung cấp thông điệp cốt lõi dịch được sử dụng bởi các khuôn khổ Yii. db: CDbConnection Cung cấp các kết nối cơ sở dữ liệu.Lưu ý, phải cấu hình connection String để sử dụng thành phần này. errorHandler: CErrorHandler xử lý lỗi format: CFormatter định dạng dữ liệu giá trị cho mục đích hiển thị messages: CPhpMessageSource cung cấp thông dịch được sử dụng bởi ứng dụng Yii request: CHttpRequest cung cấp thông tin liên quan đến yêu cầu người dùng securityManager: CSecurityManager cung cấp vấn đề liên quan đến dịch vụ session: CHttpSession cung cấp phiên liên quan đến chức năng statePersister: CStatePersister cung cấp cơ chế cho trạng thái toàn cục urlManager: CUrlManager cung cấp các phân tích cú pháp URL và chức năng sáng tạo user: CWebUser mang thông tin liên quan đến danh tính người GVHD: Ths. Hồ Đức Lĩnh SVTH: Bùi Xuân Bích Lớp: 12DHLTTH1A [...]... sở dữ liệu không quan hệ, nó quản lý thành các tập tài liệu BSON, các tập tài liệu này có thể lồng vào nhau thành một cấu trúc cây phân cấp phức tạp, nhưng vẫn dễ dàng truy vấn, đánh chỉ mục Điều này cho phép các ứng dụng lưu trữ dữ liệu theo cách tự nhiên và nó cũng thích hợp với các kiểu dữ liệu và các cấu trúc tự nhiên trong các ngôn ngữ lập trình Mục đích chính là tạo ra một cơ sở dữ liệu có các. .. MongoDB, phải xem xét các đặc tính vốn có và các yêu cầu của các đối tượng lưu trữ và mối quan hệ giữa các đối tượng đó với nhau Quyết định mô hình dữ liệu liên quan đến việc xác định cách cấu trúc các văn bản để lưu trữ hiệu quả, sao cho mô hình dữ liệu gần giống và phản ánh đối tượng ở cấp ứng dụng Hãy xem xét ví dụ dưới để có thể hình dung cụ thể hơn về mô hình dữ liệu và cách lưu trữ dữ liệu của MongoDB... hướng công nghệ và cơ sở dữ liệu trong trong lai gần Các kết quả test đã cho thấy được hiệu quả rõ ràng của NoSQL (MôngDB) so với các giải pháp cũ Với Yii framework thì tôi đã hiểu được khái niệm về một framework, kiến thức về mô hình MVC(Model-View-Controller) và có thêm một cách tiếp cận mới so với phương pháp lập trình truy n thống Với cơ sở dữ liệu thì ta có một cách lưu trữ và tổ chức dữ liệu mới... không thông qua các câu truy vấn cũ và tôi tin tưởng vào MongoDB để áp dụng vào website Định Hướng phát triển Hiện tại tôi mới nghiên về các khái niệm, đặc điểm của các giải pháp công nghệ Chưa đi sâu về việc triển khai áp dụng nó vào website wowquatot.com Trong giai đoạn tiếp theo tôi sẽ áp dụng các công nghệ đã nghiên cứu được triển khai áp dụng cho website wowquatot đáp ứng được tốt hơn về vấn đề truy. .. Có thể bao gồm các kiểu dữ liệu cơ bản hoặc kiểu dữ liệu tập hợp Dữ liệu trong MongoDB được lưu trữ một cách linh hoạt, bộ sưu tập không quy định cấu trúc của văn bản Điều đó có nghĩa là các văn bản trong cùng một bộ sưu tập không cần phải có cùng một lĩnh vực hoặc cùng cấu trúc Các field trong các văn bản của một bộ sưu tập có thể chứa các loại dữ liệu khác nhau Khi xây dựng mô hình dữ liệu cho MongoDB,... So sánh cấu trúc dữ liệu MongoDB với MySQL 3.2.Mô hình hóa dữ liệu Cũng như các hệ quản trị cơ sở dữ liệu khác, MongoDB đưa ra các khái niệm về mô hình dữ liệu của bản thân nó: Mongo system: Hệ thống lưu trữ dữ liệu Database: Mỗi database lưu trữ một tập các collection Collection (bộ sưu tập): Mỗi collection lưu trữ một tập các document Document (văn bản): Mỗi document lưu trữ một tập các field GVHD:... wowquatot đáp ứng được tốt hơn về vấn đề truy vấn thông tin và dữ liệu của website Ngoài việc đã nghiên cứu Yii framework và NoSQL(MongoDB) tôi sẽ tiếp tục nghiên cứu NodeJS và AngularJS để người dùng cảm thấy mượt mà hơn khi trải nghiệm website wowquatot.com TÀI LIỆU THAM KHẢO [1] The Definitive Guide to Yii URL: http://www.yiiframework.com/doc/guide/ [2] Yii 1.1 Application Development Cookbook, Alexander... nhau Ví dụ: MongoDB và Redis là những lựa chọn tốt cho việc lưu trữ các dữ liệu thống kê ít được đọc mà lại được ghi thường xuyên Hadoop, một CSDL dạng tự do, phân tán làm tốt công việc lưu trữ các dữ liệu lớn như các con số thống kê thời tiết hoặc công việc phân tích nghiệp vụ Memcachedb, một CSDL nhất thời chóng tàn, tuyệt vời trong lưu trữ các phiên làm việc web, các khóa, và các con số thống kê... Thực chất là các cơ sở dữ liệu hướng tài liệu, một thiết kế riêng biệt cho việc lưu trữ tài liệu Các cài đặt có thể là giả lập tương tác trên các cở sở dữ liệu quan hệ, cơ sở dữ liệu đối tượng hay key-value store Một số sản phẩm tiêu biểu: MongoDB, Elasticsearch, Couchbase Server, CouchDB, RethinkDB Key Value / Tuple Store: Mô hình lưu trữ dữ liệu dưới dạng cặp giá trị keyvalue trong đó việc truy suất,... để ràng buộc dữ liệu nhằm thể hiện tính nhất quán dữ liệu từ các bảng khác nhau Nonrelational là khái niệm không sử dụng các ràng buộc dữ liệu cho nhất quán dữ liệu Lưu trữ phân tán: mô hình lưu trữ phân tán các tập tin hoặc dữ liệu ra nhiều máy khác nhau trong mạng LAN hoặc Internet dưới sự kiểm soát của phần mềm Nhất quán cuối: tính nhất quán của dữ liệu không cần phải đảm bảo ngay tức khắc sau mỗi

Ngày đăng: 18/07/2014, 23:07

Từ khóa liên quan

Mục lục

  • CHƯƠNG 1: YII FRAMEWORK

    • 1.1. Khái quát về Yii framework

    • 1.3. Controller –Bộ điều khiển

      • 1.4.1. Layout

      • 1.4.2. Widget

      • CHƯƠNG 2: TỔNG QUAN VỀ NOSQL

        • 2.1. NoSQL là gì ?

          • 2.1.1. Thuật ngữ

          • 2.1.2. Lịch sử

          • 2.2. So sánh NoSql và RDBMs

            • 2.2.1. Một số đặc điểm.

            • 2.2.2. Phân loại NoSql

            • CHƯƠNG 3: MONGODB

              • 3.1. Tổng quan về MongoDB

                • 3.1.1. Lịch sử ra đời MongoDB

                • 3.1.2. Các thành phần/ cấu trúc của HQTCSDL MongoDB

                • 3.2. Mô hình hóa dữ liệu

                  • 3.2.1. Mô hình nhúng One-to-One mối quan hệ giữa các Documents

                  • 3.2.2. Mô hình nhúng One-to-Many mối quan hệ giữa các Documents

                  • 3.2.3. Mô hình tham chiếu One-to-Many mối quan hệ giữa các Documents

                  • 3.3. Hướng dẫn cài đặt và sử dụng MongoDB

                  • CHƯƠNG 4: SO SÁNH HIỆU NĂNG MONGODB VỚI MYSQL

                    • 4.1. Mô hình thử nghiệm

                    • 4.2. So sánh

                    • KẾT LUẬN

                      • Đánh giá kết quả

                      • Định Hướng phát triển

                      • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

Tài liệu liên quan