1. Trang chủ
  2. » Công Nghệ Thông Tin

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

42 1,8K 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 42
Dung lượng 888,41 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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

Trang 2

Độ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

- 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

(Ký, ghi rõ họ tên) (Ký, ghi rõ họ tên)

TRƯỞNG KHOA

Trang 3

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ệutrong 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 websitewowquatot.com Trong quá trình làm đồ án tốt nghiệp, ngoài những tài liệu tìm kiếmtrên mạng và trong sách vở Tôi xin cam đoan không sao chép, không nhờ người kháclà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

Trang 4

Đặ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ấtnhanh, 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ệuNoSQL 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

Trang 5

Để 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áotrong 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ữngcô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ênTrườ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àiliệ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átcá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 đồ ántố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 mongnhậ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

Trang 6

CHƯƠNG 1: GIỚI THIỆU VỀ YII FRAMEWORK 1

1.1 Khái quát về Yii framework 1

1.1.1 Kiến trúc Yii framework 1

1.1.2 Cấu trúc thư mục trong Yii framework 4

1.2 Model – Trao đổi thông tin 6

1.2.1 Tạo model 6

1.2.2 Định nghĩa lớp model 6

1.2.3 Đặt luật cho model 7

1.2.4 Kết nối với bảng trong cơ sở dữ liệu 7

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

1.3.1 Một lớp controller trong Yii có dạng 7

1.3.2 Các thành phần chính của controller 8

1.4 View – Hiện dữ liệu 9

1.4.1 Layout 9

1.4.2 Widget 9

1.5 Các mở rộng (Extensions) 10

1.6 Tạo khung ứng dụng 11

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

2.1 NoSQL là gì ? 12

2.1.1 Thuật ngữ 12

2.1.2 Lịch sử 12

2.2 So sánh NoSql và RDBMs 12

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

2.2.2 Phân loại NoSql 15

CHƯƠNG 3: GIỚI THIỆU VỀ MONGODB 17

3.1 Tổng quan về MongoDB 17

3.1.1 Lịch sử ra đời MongoDB 17

3.1.2 Các khái niệm cơ bản MongoDB 17

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

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

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

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

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

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

4.1 Mô hình thử nghiệm 26

Trang 7

4.2.1 So sánh dựa trên thực hiện câu lệnh INSERT 27

4.2.2 So sánh dựa trên multi users đồng thời thực hiện truy vấn 30

4.3 Đánh giá kết quả so sánh: 31

KẾT LUẬN 32

Đánh giá kết quả 32

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

TÀI LIỆU THAM KHẢO 33

Trang 8

Hình 1.1.1 Hiệu suất Yii 1

Hình 1.1.2 Mô hình MVC 1

Hình 1.1.3 Cấu trúc tĩnh của Yii Application 2

Hình 1.1.4 Quy trình làm việc của một ứng dụng Yii 2

Hình 1.1.5 Cấu trúc Yii 4

Hình 1.1.6 Cấu trúc lớp Category trong model 7

Hình 1.1.7 Luật (Rules) trong model 7

Hình 1.1.8 Funtion kết nối tới collection trong MongoDB 7

Hình 1.3.1 Cấu trúc 1 lớp trong controller của Yii 7

Hình 1.3.2 actionCreate thực hiện nhiệm vụ tạo mới một danh mục địa điểm 9

Hình 1.3.3 Cấu trúc layout trong Yii 9

Hình 1.3.4 Khai báo sử dụng Widget trong Yii 9

Hình 1.3.5 Extensions của Yii 10

Hình 1.3.6 Cấu hình sử dụng Extension MongoDB Suite 10

Hình 1.3.7 Cú pháp lệnh tạo mới một ứng dụng Yii 11

Hình 1.3.8 Ứng dụng wowquatot 11

Hình 3.1.1 Cấu trúc một Document 18

Hình 3.1.2 Một văn bản (Document) mẫu 18

Hình 3.1.3 Một bộ sưu tập (Collection) mẫu 18

Hình 3.1.4 So sánh cấu trúc dữ liệu MongoDB với MySQL 19

Hình 3.2.1 Các bảng trong CSDL quan hệ 20

Hình 3.2.2 Các class trong MongoDB 20

Hình 3.2.3 Mô hình nhúng One-to-One thông thường 21

Hình 3.2.4 Mô hình nhúng One-to-One tối ưu 21

Hình 3.2.5 Mô hình nhúng One-to-Many thông thường 22

Hình 3.2.6 Mô hình nhúng One-to-Many tối ưu 22

Hình 3.2.7 Mô hình tham chiếu One-to-Many thông thường 23

Hình 3.2.8 Mô hình tham chiếu One-to-Many tối ưu 24

Hình 3.3.1 Các phiên bản MongoDB 24

Hình 3.3.2 Quản lý Service MongoDB 25

Hình 3.3.3 Thông báo cài đặt MongoDB thành công 25

Hình 4.1.1 Mô hình UML mẫu 27

Hình 4.2.1 Kết quả test Sinh 5000 users và lưu vào CSDL 28

Hình 4.2.2 Kết quả test Sinh 5000 IPs và lưu vào CSDL 28

Hình 4.2.3 Kết quả test Sinh 120000 domains và lưu vào CSDL 29

Hình 4.2.4 Kết quả test Sinh 100000 bản ghi HTTP logs và lưu vào CSDL 29

Trang 9

Bảng 1.1.1 Chức năng các thư mục và file trong cấu trúc Yii 4

Bảng 1.1.2 Bảng các thành phần ứng dụng trong Yii 5

Bảng 2.2.1 Một số so sánh giữa RDBM và NoSQL 13

Bảng 4.2.1 Bảng danh sách scripts so sánh câu lệnh INSERT 27

Bảng 4.2.2 Kết quả thời gian thực hiện câu lệnh INSERT 30

Bảng 4.2.3 Bảng danh sách scripts thực hiện truy vấn trên multi users 30

Bảng 4.2.4 Tìm kiếm thông tin ngẫu nhiên của 1 user (Read Test) 30

Bảng 4.2.5 Thêm mới 1 user (Write Test) 31

Bảng 4.2.6 Tìm kiếm hoặc thêm mới 1 user với xác suất tương ứng là 80% hoặc 20% (Read & Write Test) 31

Trang 10

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ủaEasy (dễ dàng), Efficient (hiệu quả) và Extensible (khả năng mở rộng) Yii là một PHPframework mã nguồn mở và hoàn toàn miễn phí, có hiệu năng cao, giúp người lậptrì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ácthành phần của ứng dụng để tăng tốc độ viết ứng dụng

Hình 1.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ìnhweb 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épkiểm tra, quản lý và bảo trì một cách dễ dàng và độc lập:

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 chocontroller thích hợp để xử lý thêm

View

Controller

Model

Hình 1.1.2 Mô hình MVC

Trang 11

Để 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

đây về các xử lý yêu cầu nhập vào từ người dùng

Controllerfiltersaction

Hình 1.1.3 Cấu trúc tĩnh của Yii Application

Hình 1.1.4 Quy trình làm việc của một ứng dụng Yii

Trang 12

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/533ba29963ff878c09000004)

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ươngthức (actionView) trong controller Sau đó nó sẽ tạo ra các bộ lọc để kếthợ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

Trang 13

1.1.2 Cấu trúc thư mục trong Yii framework

Hình 1.1.5 Cấu trúc YiiTrong đó thư mục chính là 3 thư mục: models, controllers, views

Bảng 1.1.1 Chức năng các thư mục và file trong cấu trúc Yii

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

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

Trang 14

config chứa các file cấu hình

controller chứa các tập tin lớp điều khiển

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

runtime chứa các tập tin tạm thời tạo ra

view chứa các file điều khiển xem và bố trí của

ứng dụng

yiic.bat yiic command line script cho Windows

yiic.php yiic command line script cho Windows

Bảng 1.1.2 Bảng các thành phần ứng dụng trong Yii

TÊN CÁC THÀNH PHẦ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

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ànhphầ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 Yiirequest: CHttpRequest cung cấp thông tin liên quan đến yêu cầu

người dùngsecurityManager: 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

Trang 15

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ạouser: CWebUser mang thông tin liên quan đến danh tính người

dùng hiện hànhthemeManager: CThemeManager quản lý chủ đề

1.2 Model – Trao đổi thông tin

Model là lớp được xây dựng nhằm trao đổi thông tin với cơ sở dữ liệu Một lớpmodel có thể thực hiện việc kết nối, thêm, xoá, sửa dữ liệu Theo lời khuyên của cáclập trình viên ta nên tuân theo một số nguyên tắc sau:

Không nên sử dụng $_GET, $_POST hoặc các biến tương tự được gắn liền vớiyêu cầu người dùng

Tránh nhúng đoạn mã HTML vào model

Tên lớp được viết hoa chữ cái đầu tiên, các chữ còn lại viết thường, ví dụ như:Place,Ticket…

Tên tập tin được đặt tên trùng với tên lớp và được đặt vào thư mụcprotected/models

Bắt buộc thừa kế từ lớp model, trong hàm tạo lớp con phải gọi đến hàm lớp cha.1.2.1 Tạo model

Để xây dựng một lớp model, phải quyết định loại dữ liệu từ người dùng yêu cầu

và những luật lệ mà những dữ liệu này phải tuân theo Một model, như định nghĩa, lànơi trung tâm để xác nhận yêu cầu

Tùy thuộc vào cách ta sử dụng các đầu vào của người sử dụng, ta có thể tạo rahai loại mô hình Nếu yêu cầu của người dùng nhập vào được sử dụng và sau đó bỏ đi,

ta sẽ tạo ra một form_model, nếu yêu cầu của người dùng nhập vào được lưu vào cơ sở

dữ liệu, ta sẽ sử dụng một active record thay thế

1.2.2 Định nghĩa lớp model

Dưới đây là lớp Category dùng để xử lý phần danh mục địa điểm:

Hình 1.1.6 Cấu trúc lớp Category trong modelKhi đã định nghĩa xong lớp model ta sẽ đặt luật cho model

1.2.3 Đặt luật cho model

class Category extends EMongoDocument {

public static function model($className = CLASS ) {

return parent::model ( $className );

}

Trang 16

Để đặt luật cho model ta dùng hàm

Hình 1.1.7 Luật (Rules) trong modelMột khi người dùng gửi các yêu cầu của mình ta cần đảm bảo chúng phải hợp lệtrước khi sử dụng Ta xác định luật trong phương thức rules(), tuỳ thuộc vào yêu cầu

mà ta xác lập trong hàm rules() sẽ trả về điều kiện theo ta đặt ra

1.2.4 Kết nối với bảng trong cơ sở dữ liệu

Lớp model có chức năng kết nối với các bảng trong cơ sở dữ liệu MySQL hay

collection trong MongoDB, để thể hiện mối liên kết đó ta dùng:

Hình 1.1.8 Funtion kết nối tới collection trong MongoDB

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

Controller là những lớp đóng vai trò trung gian giữa view và model Controllernhận các yêu cầu từ phía người dùng, kiểm tra chúng trước khi chuyển qua cho model.Sau khi model xử lý yêu cầu và trả về cho controller, controller sẽ chuyển sang view

để hiện thị dữ liệu cho người dùng

1.3.1 Một lớp controller trong Yii có dạng

Hình 1.3.9 Cấu trúc 1 lớp trong controller của Yii Khai báo hàm cotroller ta cần tuân theo một số nguyên tắc:

- Tên lớp được viết hoa chữ cái đầu tiên, các chữ còn lại viết thường, ví dụ

// Đặt luật cho model

public function rules() {

return array(

array('name', 'required'),

array('description', 'length', "max" => 500),

array('status, position', 'numerical', 'integerOnly' =>

Trang 17

- Controller thể hiện của lớp CController hoặc của một lớp mở rộng từ

CController Khi một controller chạy nó thực hiện các hành động được yêu

cầu thường là mang từ model và sau đó render đến view Một hành động,

thực chất là một lớp điều khiển có tên bắt đầu bằng action

1.3.2 Các thành phần chính của controller

Route: Là thành phần quan trọng trong controller, nó giúp controller định tuyến

một địa chỉ khi người dùng gửi yêu cầu đến hệ thống Ví dụ khi người dùng nhập điạ

chỉ http://wowquatot.com/index.php/category/view/, thì địa chỉ này sẽ được bộ điều

hướng của Yii xử lý và gọi đến action được yêu cầu trong controller

Trong đó:

- category: là tên controller

- view: là tên action trong controller

Action: Phương thức làm việc trong controller là làm nhiệm vụ tiếp nhận và xử

lý yêu cầu Sau khi nhận kết quả từ model trả về, controller sẽ gọi đến view để hiện thị

kết quả cho người dùng

Một action thường được định nghĩa như một phương pháp có tên bắt

đầu bằng action Thông thường trong controller ta sẽ khai báo thêm các

hàm action để thực hiện các yêu cầu người dùng Ví dụ actionCreate thực

hiện nhiệm vụ tạo mới một danh mục địa điểm

Hình 1.3.10 actionCreate thực hiện nhiệm vụ tạo mới một danh mục địa điểm

Đây là hành động sẽ điều khiển đến trang create.php

1.4 View – Hiện dữ liệu

View được xây dựng nhằm thể hiện dữ liệu trong model thành các giao diện

tương tác với người dùng View có thể là một trang web hoàn chỉnh hoặc chỉ là một

class CategoryController extends Controller

$this->render('create',array(

'model'=>$model,

));

}

Trang 18

phần của trang web (header, footer, ) Nội dung của view ngoài mã HTML còn có mãPHP View không bao giờ được gọi trực tiếp mà phải thông qua controller.

Nó là một view đặc biệt được dùng để trang trí cho view Layout thường chứamột phần của giao diện người dùng được phổ biến một vài lần.Ví dụ một layout có thểchứa phần header và footer, nhúng thêm phần nội dung hiển thị của view:

Hình 1.3.11 Cấu trúc layout trong YiiLayout được sử dụng khi ta gọi hàm render(), theo mặc định file main.php trongthư mục protected/views/layouts được sử dụng làm layout trong view Ta có thể tuỳchỉnh bằng cách thay đổi CWebApplication::layout, CController::layout Nếu view

mà không cần một layout nào ta dùng hàm renderPartial ()

Trang 19

Hình 1.3.13 Extensions của Yii

Để làm việc với MongoDB trong đồ án này tôi đã sử dụng Extensions YiiMongoDB Suite để thao tác dữ liệu với MongoDB một cách dễ dàng nhất Phần mởrộng này gần như hỗ trợ hoàn toàn cho ActiveRecord trong Yii nó được viết bởityohan

Để sử dụng Extensions này trong file protected/config/main.php chúng ta sẽ thêm đoạn code sau:

Hình 1.3.14 Cấu hình sử dụng Extension MongoDB Suite

Trang 20

Hình 1.3.15 Cú pháp lệnh tạo mới một ứng dụng Yii

Ví dụ ta tạo một ứng dụng tên là wowquatot được lưu trong thư mục D:\xampp\htdocs Sau đây là kết quả của câu lệnh trên, ta sẽ được một ứng dụng như sau:

Hình 1.3.16 Ứng dụng wowquatot

Kết quả của việc tạo bộ khung ứng dụng ta có:

Thư mục controller: SiteController.php

Thư mục models: ContactForm.php, LoginForm.php

Trang 21

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

2.1 NoSQL là gì ?

2.1.1 Thuật ngữ

NoSQL có nghĩa là Non-Relational (NoRel) - không ràng buộc Tuy nhiên,

thuật ngữ đó ít phổ dụng hơn và ngày nay người ta thường dịch NoSQL thành Not

Only SQL - không chỉ là SQL

Đây là thuật ngữ chung cho các hệ CSDL không sử dụng mô hình dữ liệu quan

hệ NoSQL đặc biệt nhấn mạnh đến mô hình lưu trữ cặp giá trị - khóa và hệ thống lưutrữ phân tán

2.1.2 Lịch sử

Thuật ngữ NoSQL được giới thiệu lần đầu vào năm 1998 sử dụng làm tên gọichung cho các lightweight open source relational database (cơ sở dữ liệu quan hệnguồn mở nhỏ) nhưng không sử dụng SQL cho truy vấn

Vào năm 2009, Eric Evans, nhân viên của Rackspace giới thiệu lại thuật ngữNoSQL khi Johan Oskarsson của Last.fm muốn tổ chức một hội thảo về cơ sở dữ liệunguồn mở phân tán Thuật ngữ NoSQL đánh dấu bước phát triển của thế hệ CSDLmới: phân tán (distributed) + không ràng buộc (non-relational)

NoSQL storage đặc biệt phổ dụng trong thời kỳ Web 2.0 bùng nổ, nơi các mạngdịch vụ dữ liệu cộng đồng cho phép người dùng tạo hàng tỷ nội dung trên web Do đó,

dữ liệu lớn rất nhanh vượt qua giới hạn phần cứng cần phải giải quyết bằng bài toánphân tán

Về cơ bản, các thiết kế của NoSQL lựa chọn mô hình lưu trữ tập dữ liệu theo cặpgiá trị key value Khái niệm node được sử dụng trong quản lý dữ liệu phân tán Vớicác hệ thống phân tán, việc lưu trữ có chấp nhận trùng lặp dữ liệu Một request truyvấn tới data có thể gửi tới nhiều máy cùng lúc, khi một máy nào nó bị chết cũng khôngảnh hưởng nhiều tới toàn bộ hệ thống Để đảm bảo tính real time trong các hệ thống xử

lý lượng lớn, thông thường người ta sẽ tách biệt database ra làm 2 hoặc nhiềudatabase Một database nhỏ đảm bảo vào ra liên tục, khi đạt tới ngưỡng thời gian

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

HÌNH ẢNH LIÊN QUAN

Hình 1.1.1 Hiệu suất Yii 1.1.1. Kiến trúc Yii framework - 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
Hình 1.1.1 Hiệu suất Yii 1.1.1. Kiến trúc Yii framework (Trang 10)
Hình 1.1.4 Quy trình làm việc của một ứng dụng Yii - 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
Hình 1.1.4 Quy trình làm việc của một ứng dụng Yii (Trang 11)
Hình 1.1.3 Cấu trúc tĩnh của Yii Application - 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
Hình 1.1.3 Cấu trúc tĩnh của Yii Application (Trang 11)
Hình 1.1.5 Cấu trúc Yii - 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
Hình 1.1.5 Cấu trúc Yii (Trang 13)
Hình 1.3.13 Extensions của Yii - 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
Hình 1.3.13 Extensions của Yii (Trang 19)
Hình 1.3.14 Cấu hình sử dụng Extension MongoDB Suite - 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
Hình 1.3.14 Cấu hình sử dụng Extension MongoDB Suite (Trang 19)
Hình 3.1.19 Một bộ sưu tập (Collection) mẫu - 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
Hình 3.1.19 Một bộ sưu tập (Collection) mẫu (Trang 27)
Hình 3.2.21 Các bảng trong CSDL quan hệ - 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
Hình 3.2.21 Các bảng trong CSDL quan hệ (Trang 29)
Hình 3.2.22 Các class trong MongoDB - 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
Hình 3.2.22 Các class trong MongoDB (Trang 29)
Hình 3.2.27 Mô hình tham chiếu One-to-Many thông thường - 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
Hình 3.2.27 Mô hình tham chiếu One-to-Many thông thường (Trang 32)
Hình 3.2.28 Mô hình tham chiếu One-to-Many tối ưu - 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
Hình 3.2.28 Mô hình tham chiếu One-to-Many tối ưu (Trang 33)
Bảng 4.2.4 Bảng danh sách scripts so sánh câu lệnh INSERT - 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
Bảng 4.2.4 Bảng danh sách scripts so sánh câu lệnh INSERT (Trang 36)
Hình 4.2.33 Kết quả test Sinh 5000 users và lưu vào CSDL - 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
Hình 4.2.33 Kết quả test Sinh 5000 users và lưu vào CSDL (Trang 37)
Hình 4.2.35 Kết quả test Sinh 120000 domains và lưu vào CSDL - 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
Hình 4.2.35 Kết quả test Sinh 120000 domains và lưu vào CSDL (Trang 38)
Hình 4.2.36 Kết quả test Sinh 100000 bản ghi HTTP logs và lưu vào CSDL - 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
Hình 4.2.36 Kết quả test Sinh 100000 bản ghi HTTP logs và lưu vào CSDL (Trang 38)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w