Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 34 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
34
Dung lượng
1,38 MB
Nội dung
Cơ sở dữ liệu nâng cao Giới thiệu chủ đề 1 NoSQL và Ứng dụng Bài tập môn CSDL Nâng cao Nhóm 16: Nguyễn Thành Trung Nguyễn Minh Hà Hà Nội, 2012 Cơ sở dữ liệu nâng cao Mục lục Mục lục I.Giới thiệu chủ đề 1 1.Bài toán 1 2.Lịch sử 1 II.Các vấn đề liên quan 2 1.Điện toán đám mây 2 1.1Giới thiệu 2 1.2Kiến trúc 3 2.Could Database 4 2.2Data Model 5 III. NoSQL 7 1.Định nghĩa 7 2.Kiến trúc 7 3.Tích chất 7 4.Phân loại 9 4.1Tổng quan 9 4.2Logical Data Models 10 IV.Demo mô hình NoSQL 22 1.Giới thiệu MongoDB 22 2.Đặc điểm của MongoDB 23 3.Cài đặt Mongo DB và driver kết nối với PHP, cách sử dụng MongoDB Shell Script 24 4.Demo module web xây dựng bằng php với mongo DB 25 V.Nhận xét và đánh giá 29 2 Cơ sở dữ liệu nâng cao Giới thiệu chủ đề I. Giới thiệu chủ đề 1. Bài toán Trong những năm gần đây, cùng với sự phát triển mạnh của công nghệ nhu cầu sử dụng các dịch vụ, chia sẻ thông tin trên mạng tăng mạnh mẽ. Cùng với đó là nhu cầu lưu trữ dữ liệu với kích thước khổng lồ và dường như mô hình cơ sở dữ liệu quan hệ (RMDBs) không còn đáp ứng được nhu cầu về lưu trữ thông tin. Yêu cầu đặt ra là phải xây dựng một mô hình lưu trữ cơ sở dữ liệu đáp ứng được các yêu cầu như lưu trữ dữ liệu với kích thước lớn (lên đến hàng petabytes), truy cập nhanh, dễ dàng mở rộng quy mô, .v.v. Như một tất yếu, mô hình điện toán đám mây ra đời có thể đáp ứng các yêu cầu trên. Cốt lõi của mô hình điện toán đám mây, tạo ra sự khác biệt giữa nó với mô hình cơ sở dữ liệu quan hệ chính là mô hình lưu trữ dữ liệu kiểu mới: NoSQL. NoSQL còn 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ỉ SQL. NoSQL ý chỉ đến những cơ sở dữ liệu không dùng mô hình dữ liệu quan hệ để quản lý dữ liệu trong lĩnh vực phần mềm. 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ọi chung cho các cơ sở dữ liệu quan hệ mã nguồn mở nhỏ (Lightweight open source relational database) 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 trong một hội thảo về cơ sở dữ liệu nguồn mở phân tán. Thuật ngữ NoSQL đánh dấu bước phát triển của thế hệ cơ sở dữ liệu mới: phân tán không ràng buộc – distributed non-relational. 1 Các vấn đề liên quan Cơ sở dữ liệu nâng cao II. Các vấn đề liên quan 1. Điện toán đám mây 1.1 Giới thiệu Điện toán đám mây là một dẫn xuất của điện toán như một dịch vụ hơn là một sản phẩm, bằng cách chia sẻ nguồn tài nguyên, phần mềm và thông tin được cung cấp từ một tập hợp các máy tính hoặc một số thiết bị khác trên mạng máy tính (điển hình là mạng Internet).Điện toán đám mây như một thành phần thương mại cho công nghệ; cung cấp sự tính toán, phần mềm, truy nhập hay lưu trữ dữ liệu mà người dùng cuối cùng không cần biết về vị trí địa lý hay cấu hình của hệ thống. Giống như một mạng điện lưới, người dùng tiêu thụ điện mà không cần biết hoặc hiểu các thành phần hoặc kiến trúc của dịch vụ đó. Có thể hiểu điện toán đám mây là một mô hình dẫn xuất của mô hình dịch vụ công nghệ thông tin dựa trên các giao thức trên Internet và đây là một mô hình đặc trưng cho khả năng mở rộng và thường các nguồn dữ liệu là nguồn dữ liệu logic. Điện toán đám mây là một sản phẩm phụ, kết quả của sự phát triển các nguồn dễ dàng truy cập từ xa bằng máy tính được cung cấp trên Internet được truy cập bằng những công cụ dựa trên nền tảng Web-base hoặc người dùng có thể truy cập sử dụng trình duyệt Web, ứng dụng cho phép người dùng sử dụng tài nguyên tương tự như các ứng dụng được cài đặt trên máy tính người dùng. Điện toán đám mây cung cấp các dịch vụ thông qua mạng Internet do đó dễ dàng được truy cập, sử dụng bằng trình duyệt Web, hoặc các phần mềm cài đặt trên máy tính cá nhân, điện thoại và kết nối với các phần mềm dịch vụ, dữ liệu được lưu trữ được cài đặt trên máy chủ. 2 Các vấn đề liên quan Cơ sở dữ liệu nâng cao 1.2 Kiến trúc Mô hình điện toán đám mây gồm có một mặt trước (front end) và một mặt sau (back end). Hai thành phần này được kết nối thông qua một mạng, trong đa số trường hợp là Internet. Phần mặt trước là phương tiện chuyên chở qua đó người dùng tương tác với hệ thống; phần mặt sau chính là đám mây. Phần mặt trước gồm có một máy tính khách hoặc mạng máy tính của doanh nghiệp và các ứng dụng được sử dụng để truy cập vào đám mây. Phần mặt sau cung cấp các ứng dụng, các máy tính, các máy chủ và lưu trữ dữ liệu để tạo ra đám mây của các dịch vụ. Khái niệm điện toán đám mây được xây dựng trên các tầng, mỗi tầng cung cấp một mức chức năng riêng. Sự phân tầng này của các thành phần đám mây đã cung cấp một phương tiện cho các tầng của điện toán đám mây để trở thành một loại hàng hóa như điện, dịch vụ điện thoại hoặc khí tự nhiên. Hàng hóa mà điện toán đám mây bán là khả năng tính toán với chi phí và phí tổn thấp hơn cho người dùng. Điện toán đám mây đã sẵn sàng để trở thành dịch vụ siêu tiện ích tiếp theo. Các tầng đám mây được cung cấp: Tầng cơ sở hạ tầng là nền tảng của đám mây. Nó gồm có các tài sản vật lý — các máy chủ, các thiết bị mạng, các ổ đĩa lưu trữ, .v.v. Cơ sở hạ tầng là một dịch vụ (IaaS) có các nhà cung cấp như IBM® Cloud. Khi sử dụng IaaS bạn thực tế không kiểm soát cơ sở hạ tầng nằm dưới, nhưng bạn có quyền kiểm soát các hệ điều hành, lưu trữ, triển khai các ứng dụng và ở một mức độ hạn chế, có quyền kiểm soát việc lựa chọn các thành phần mạng. Dịch vụ in theo yêu cầu (POD) là một ví dụ về các tổ chức có thể hưởng lợi từ IaaS. Mô hình POD được dựa trên việc bán sản phẩm có khả năng tùy chỉnh. Các POD cho phép các cá nhân mở cửa hàng và bán thiết kế của các sản phẩm. Các chủ cửa hàng có thể tải lên nhiều hay ít thiết kế tùy theo khả năng sáng tạo của họ; có hàng ngàn lần tải lên. Với các khả năng lưu trữ đám mây, một POD có thể cung cấp không gian lưu trữ không hạn chế. Tầng giữa là nền tảng hệ thống. Nó cung cấp cơ sở hạ tầng của ứng dụng. Nền tảng hệ thống là một dịch vụ (PaaS) cung cấp sự truy cập đến các hệ điều hành và các dịch vụ có liên quan. Nó cung cấp một cách để triển khai các ứng dụng lên đám mây bằng cách sử dụng các ngôn ngữ lập trình và các công cụ do nhà cung cấp hỗ trợ. Bạn không cần phải quản lý hoặc kiểm soát cơ sở hạ tầng nằm dưới, nhưng bạn có quyền điều khiển các ứng dụng đã triển khai và ở một mức độ nào có quyền điều khiển ứng dụng sử dụng các cấu hình môi trường trên máy tính chủ. PaaS có các nhà cung cấp như là Elastic Compute Cloud (EC2) của Amazon. Nhà phần mềm doanh nhân nhỏ là một hoạt động kinh doanh lý tưởng đối với PaaS. Với nền tảng hệ thống đã chọn lọc kỹ, có thể tạo ra các sản phẩm đẳng cấp thế giới mà không thêm gánh nặng cho hệ thống đang chạy trong công ty. Tầng trên cùng là tầng ứng dụng, tầng mà hầu hết mọi người xem như là đám mây. Các ứng dụng chạy ở đây và được cung cấp theo yêu cầu của những người dùng. Phần mềm là một dịch vụ (SaaS) có các nhà cung cấp như Google Pack. Google Pack bao gồm các ứng dụng, các công cụ có thể sử dụng được qua Internet, như Calendar, Gmail, Google Talk, Docs và nhiều hơn nữa. Điện toán đám mây thường bị lẫn lộn với điện toán lưới, điện toán theo yêu cầu hay điện toán tự trị. Đâu là sự khác nhau giữa chúng: Điện toán lưới (grid computing) là một dạng của điện toán phân tán, trong đó tồn tại một siêu máy tính ảo, là sự bao gồm một tập hợp các máy tính đơn liên kết với nhau và hoạt động phối hợp để thực hiện các tác vụ cực lớn, tác vụ này có thể được chia nhỏ để thực hiện song song trên những máy tính đơn của tập hợp máy tính đó. Điện toán theo yêu cầu (utility computing) là khối tài nguyên máy tính như bộ nhớ, bộ xử lý trong vai trò một dịch vụ riêng biệt và cụ thể tương tự với các công trình hạ tầng kỹ thuật truyền 3 Các vấn đề liên quan Cơ sở dữ liệu nâng cao thống chẳng hạn như điện lực hay mạng điện thoại. Điện toán tự trị là những hệ thống có khả năng tự vận hành, quản lý và xử lý những vấn đề xảy ra trong quá trình vận hành. Điện toán đám mây được nhìn nhận như là một bước phát triển tự nhiên tiếp theo từ những mô hình trên. Những hệ thống điện toán đám mây hiện nay đều có khả năng tự trị và có khả năng xử lý những tác vụ lớn như điện toán lưới, và riêng biệt cụ thể cho một yêu cầu nào đó như điện toán theo yêu cầu. 2. Could Database Một cơ sở dữ liệu đám mây là một cơ sở dữ liệu chạy trên nền tảng là điện toán đám mây, ví dụ như Amazon EC2, GoGrid và Rackspace. Hình 1 – Cơ sở dữ liệu đám mây 2.1 Deployment Model Có hai mô hình phổ biến để cài đặt: Người dùng có thể chạy cơ sở dữ liệu trên đám mây độc lập, sử dụng những máy ảo; hoặc có thể trả phí để truy cập các dịch vụ cơ sở dữ liệu được cung cấp bởi các nhà cung cấp dịch vụ cơ sở dữ liệu đám mây. Trong mô hình cơ sở dữ liệu đám mây sử dụng hai dạng cơ sở dữ liệu chính là SQL-base (Dựa trên ngôn ngữ SQL) và sử dụng mô hình dữ liệu NoSQL Virtual Machine Image – nền tảng đám mây cho phép người dùng cài đặt các máy ảo trong một khoảng thời gian giới hạn và có thể chạy các cơ sở dữ liệu trên các máy ảo đó. Người dùng có thể tải lên các cài đặt cho máy ảo riêng cùng với cơ sở dữ liệu đã được cài đặt hoặc có thể sử 4 Các vấn đề liên quan Cơ sở dữ liệu nâng cao dụng các mấy ảo có sẵn bao gồm sự cài đặt tối ưu cho các cơ sở dữ liệu. Ví dụ như Oracle cung cấp những máy ảo cài đặt sẵn cùng với cơ sở dữ liệu Oracle Database 11g Enterprise Edition on Amazon EC2. Trình giám sát máy ảo (VMM- virtual machine monitor) cung cấp phương tiện để sử dụng đồng thời các tiện ích điện toán đám mây (xem Hình 2). VMM là một chương trình trên một hệ thống máy tính chủ cho phép một máy tính hỗ trợ nhiều môi trường thi hành giống hệt nhau. Từ quan điểm của người dùng, hệ thống này là một máy tính độc lập, hoàn toàn cách biệt với những người dùng khác. Trong thực tế, người dùng đang được phục vụ bởi cùng một máy tính. Một máy ảo là một hệ điều hành (OS) đang được quản lý bởi một chương trình điều khiển nằm dưới cho phép nó xuất hiện giống như là nhiều hệ điều hành. Trong điện toán đám mây, VMM cho phép những người dùng giám sát và do đó quản lý các khía cạnh của quá trình như là truy cập dữ liệu, lưu trữ dữ liệu, mã hóa, đánh địa chỉ, cấu trúc liên kết và di chuyển tải công việc. Hình 2 – Trình giám sát máy ảo Database as Service – một số nền tảng đám mây hướng tới lựa chọn sử dụng các cơ sở dữ liệu như một dịch vụ mà không cần sử dụng các máy ảo. Trong cài đặt, các ứng dụng chủ không phải cài đặt hoặc chứa dữ liệu trên nó. Thay vào đó, dịch vụ cung cấp dữ liệu được tạo ra chịu trách nhiệm cho việc cài đặt và lưu trữ dữ liệu và các ứng dụng chủ sẽ truy cập, lấy dữ liệu hoặc sử dụng sử liệu từ các dịch vụ cung cấp dữ liệu này. Ví dụ, Amazon Web Services cung cấp 2 dịch vụ dữ liệu như là một phần dịch vụ điện toán đám mây của mình, SimpleDB lưu trữ NoSQL key-value và Amazon Relational Database Service là dịch vụ cơ sở dữ liệu nền tảng SQL cùng với giao diện MySQL. Lựa chọn thứ 3 là quản lý máy chủ cơ sở dữ liệu trên những đám mây, tại đây cơ sở dữ liệu không quan niệm như dịch vụ mà nhà cung cấp dịch vụ đám mây cung cấp và quản lý như một ứng dụng. Ví dụ, nhà cung cấp dịch vụ đám mây Rackspace hướng tới quản lý máy chủ cho cơ sở dữ liệu MySQL. 2.2 Data Model SQL Databases, như Oracle Database, Microso ft SQL Server và MySQL là một dạng cơ sở dữ liệu chạy trên đám mây. SQL database rất khó để mở rộng kích thước, có nghĩa không phù hợp với môi trường đám mây mặc dù dịch vụ cơ sở dữ liệu đám mây cơ bản dựa trên SQL đã được nghiên cứu và cố gắng khắc phục nhược điểm này. 5 Các vấn đề liên quan Cơ sở dữ liệu nâng cao NoSQL Databases, như Apache Cassandra, CouchDB và MongoDB là dạng khác của cơ sở dữ liệu cũng chạy trên nền tảng đám mây. Cơ sở dữ liệu NoSQL được xây dựng để phục vụ việc đọc, viết hoặc tải dữ liệu lớn và có khả năng thay đổi kích thước hệ thống một cách dễ dàng và phù hợp với nền tảng đám mây hơn. Tuy nhiên, hầu hết các ứng dụng hiện tại được xây dựng xung quanh một mô hình dữ liệu SQL, do đó, làm việc với cơ sở dữ liệu NoSQL thường đòi hỏi phải viết lại hoàn toàn mã ứng dụng. Phân loại nhà cung cấp Cloud database dựa trên giải pháp triển khai và mô hình dữ liệu Virtual Machine Deployment Database as a Service SQL Data Model Oracle Da tabase [1] [9] IBM DB2 [10] Ingres (database) [11] PostgreSQL [12] MySQL [13] Amazon Relational Database Service (MySQL) Microsoft SQL Azure (MS SQL) [14] Heroku PostgreSQL as a Service (shared and dedicated database options) [15] Xeround Cloud Database - MySQL front-end [2] EnterpriseDB Postgres Plus Cloud Database [16] NoSQL Data Model CouchDB on Amazon EC2 [17] Hadoop on Amazon EC2 [18] Apache Cassandra on Amazon EC2 [19] Neo4J on Amazon EC2 [20] or Microsoft Azure [21] MongoDB on Amazon EC2 [22] or Microsoft Azure [23] Amazon SimpleDB Database.com by SalesForce [24] Google App Engine Datastore CouchDB Hosted Database [25] MongoDB Database as a Service (several options) [26] 6 Cơ sở dữ liệu nâng cao NoSQL III. NoSQL 1. Định nghĩa Cơ sở dữ liệu thế hệ tiếp theo chủ yếu giải quyết một trong số các điểm: là một cơ sở dữ liệu không có ràng buộc (non-relation), phân tán (distributed), mã nguồn mở (open-source), và có khả năng mở rộng theo chiều ngang (horizontal scalable) có thể lưu trữ, xử lý một lượng rất nhỏ cho tới hàng petabytes dữ liệu trong hệ thống có thể chịu tải, chịu lỗi cao với những đòi hỏi về tài nguyên phần cứng thấp. Một số những đặc điểm nhận dạng cho cơ sở dữ liệu thế hệ mới này như: lược đồ tự do (schema – free), hỗ trợ mở rộng dễ dàng, giao diện sử dụng (API) đơn giản, nhất quán, hạn chế trên các thành phần dữ liệu đơn lẻ, không giới hạn không gian dữ liệu, .v.v. Mô hình NoSQL đặc biệt phổ dụng trong thời kỳ Web 2.0 bùng nổ với số lượng người dùng trên các trang mạng xã hội lên tới hàng triệu. Do đó, dữ liệu tăng rất nhanh về kích thước vượt qua giới hạn mà phần cứng có thể đáp ứng và cần giải quyết bằng bài toán phân tán. 2. Kiến trúc Các hệ quản trị cơ sở dữ liệu quan hệ (RDBMs) hiện tại đã bộc lộ những yếu kém như việc đánh chỉ mục một lượng lớn dữ liệu, phân trang, hoặc phân phối luồng dữ liệu đa phương tiện (phim, ảnh, nhạc, .v.v.). Cơ sở dữ liệu quan hệ được thiết kế cho những mô hình dữ liệu nhỏ thường xuyên đọc viết trong khi các Social Network Services lại có một lượng dữ liệu cực lớn và cập nhật liên tục do số lượng người dùng quá nhiều ở một thời điểm. Thiết kế trên Distributed NoSQL giảm thiểu tối đa các phép tính toán, I/O liên quan kết hợp với xử lý theo lô đủ đảm bảo được yêu cầu xử lý dữ liệu của các mạng dịch vụ dữ liệu cộng đồng này. Các trang như mạng xã hội - Facebook, thương mại điện tử - Amazon là những ví dụ điểm hình.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ặp giá trị key-value. Khái niệm node được sử dụng trong quản lý dữ liệu phân tán. Với cá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 truy vấ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ều database. Một database nhỏ đảm bảo vào ra liên tục, khi đạt tới ngưỡng thời gian hoặc dung lượng, database nhỏ sẽ được gộp (merge) vào database lớn có thiết kế tối ưu cho phép đọc (read operation). Mô hình đó cho phép tăng cường hiệu suất I/O - một trong những nguyên nhân chính khiến performance trở nên kém. 3. Tích chất Các mô hình cơ sở dữ liệu NoSQL có một số các tính chất như sau: High Scalability: Gần như không có một giới hạn cho dữ liệu và người dùng trên hệ thống. High Availability: Do chấp nhận sự trùng lặp trong lưu trữ nên nếu một node nào đó bị chết cũng không ảnh hưởng tới toàn bộ hệ thống. 7 Cơ sở dữ liệu nâng cao NoSQL Atomicity: Độc lập data state trong các operation. Consistency: chấp nhận tính nhất quán yếu, cập nhật mới không đảm bảo rằng các truy xuất sau đó thấy ngay được sự thay đổi. Sau một khoảng thời gian lan truyền thì tính nhất quán cuối cùng của dữ liệu mới được đảm bảo. Durability: dữ liệu có thể tồn tại trong bộ nhớ máy tính nhưng đồng thời cũng được lưu trữ lại đĩa cứng. Deployment Flexibility: việc bổ sung thêm/loại bỏ các node, hệ thống sẽ tự động nhận biết để lưu trữ mà không cần phải can thiệp bằng tay. Hệ thống cũng không đòi hỏi cấu hình phần cứng mạnh, đồng nhất. Modeling flexibility: Key-Value pairs, Hierarchical data (dữ liệu cấu trúc), Graphs. Query Flexibility: Multi-Gets, Range queries (load một tập giá trị dựa vào một dãy các khóa). Không chỉ là "Database": CEO của Amazon, Werner Vogels đề cập đến hệ thống Dynamo của họ đã gọi nó là một "Highly available key-value store"; Google gọi BigTable để nhấn mạnh đây là "Distributed storage system for managing structured data" (Hệ thống lưu trữ và quản lý dữ liệu cấu trúc có phân tán) có thể thổi bay một lượng dữ liệu cực lớn. Hypertable, một cơ sở dữ liệu dạng cột mã nguồn mở trên mô hình BigTable được sử dụng cho local search engine của Zvents Inc có thể ghi tới 1 tỷ cell dữ liệu mỗi ngày (theo Doug Judd một kỹ sư của Zvents). Trong khi đó BigTable kết hợp với MapReduce có thể xử lý tới 20 petabytes dữ liệu mỗi ngày. Đánh bại performance bottlenecks. Bằng việc bỏ qua thông dịch trong SQL cùng với những truy vấn rườm rà, NoSQL cho ta một kiến trúc tối ưu về tốc độ thực thi (ghi và truy vấn dữ liệu). Việc sử dụng các ràng buộc quan hệ cùng truy vấn SQL có vẻ thân thiện và thích hợp với phần đông dữ liệu. Tuy nhiên, nếu dữ liệu quá đơn giản, các thủ tục SQL sẽ không cần thiết (theo Curt Monash - một nhà phân tích cơ sở dữ liệu, một blogger). Raffaele Sena, một senior computer scientist ở Adobe Systems Inc đã nói rằng ConnectNow Web collaboration service của họ sử dụng Java clustering software từ Terracotta thay cho cơ sở dữ liệu quan hệ đã khiến "Hệ thống của họ trở nên mạnh hơn, phức tạp hơn so với việc sử dụng cơ sở dữ liệu quan hệ". Các thiết kế database có tính đặc thù (như document-oriented database) sẽ lược bỏ được tầng chuyển đổi sang mô hình lưu trữ quan hệ từ interface của nó đồng thời khiến giao tiếp tương tác trở nên tự nhiên hơn. 8 [...]... giữa 2 đỉnh của một đồ thị 20 NoSQL Cơ sở dữ liệu nâng cao Ví dụ: Cơ sở dữ liệu đồ thị công nhân có dạng như dưới hình 15 Hình 15 – Ví dụ về graph database 21 Cơ sở dữ liệu nâng cao Demo mô hình NoSQL IV Demo mô hình NoSQL 1 Giới thiệu MongoDB Phần này giới thiệu một Nosql cụ thể là MongoDB Chúng ta sẽ đi cụ thể vào cấu trúc dữ liệu của MongoDB, lưu trữ dữ liệu, tạo dữ liệu và truy vấn Cuối cùng là kết... 6 Hình 6 – Bảng dữ liệu theo thời gian Mặc dù đây là một ví dụ hết sức đơn giản, bạn có thể cảm nhận được rằng bảng dữ liệu cùng với sự tăng của dữ liệu, lưu trữ rất nhiều các ô dữ liệu riêng rẽ theo thời gian sẽ làm vấn đề trở lên rất phức tạp Giới thiệu các cơ sở dữ liệu dạng cột bởi vì ví dụ biểu diễn cách sử dụng cơ sở dữ liệu 11 NoSQL Cơ sở dữ liệu nâng cao quan hệ (RDBMs), để hiểu được mô hình. .. việc nhìn Hình 7, ví dụ hiện tại thay đổi để phù hợp với lưu trữ dữ liệu dạng cột Hình 7 – Column - Family 12 NoSQL Cơ sở dữ liệu nâng cao Một phần từ những lưu trữ thân thiện cho tập dữ liệu riêng rẽ và lỏng lẻo, những dữ liệu dạng cột cũng lưu trữ các phiên bản khác nhau của ô dữ liệu Tuy nhiên, sự tăng liên tục của dữ liệu trong ví dụ trên có thể được lưu trữ trong dữ liệu dạng cột như hình 8 Hình 8-... csdl với _id và mảng truyền lên + Xóa bài viết (delete.php) : Xóa dữ liệu trong db 27 Demo mô hình NoSQL Cơ sở dữ liệu nâng cao Để xóa dữ liệu, sử dụng phương thức remove( ) để xóa một bài viết từ cơ sở dữ liêu Phương thức này nhận tham số là một mảng Nó sẽ duyệt toàn bộ document, nếu document nào khớp sẽ bị xóa : $articleCollection->remove(array('_id' => new MongoId($id))); 28 Cơ sở dữ liệu nâng cao. .. bảng dữ liệu Những cột được định nghĩa trước và toàn bộ giá trị được lưu trữ trong các ô của bảng dữ liệu như hình 5 10 NoSQL Cơ sở dữ liệu nâng cao Hình 5 – Bảng dữ liệu Khi khối lượng dữ liệu tăng lên thì chúng ta phải lưu trữ các giá trị tại các ô dữ liệu theo từng lần mà sự thay đổi của nó diễn ra Có thể coi như là một bảng Excel bao gồm có 3 chiều và chiều thứ 3 chính là chiều thời gian như dưới hình. .. vậy, một key-value memory storage là đủ dùng 4 Phân loại 4.1 Tổng quan Mô hình NoSQL sử dụng mô hình dữ liệu logic có các lược đồ dữ liệu mở rộng lỏng lẻo (Map, Column Family, Document, Graph, v.v.) thay vì các mô hình hóa dữ liệu trong bộ dữ theo lược đồ quan hệ cố định Thiết kế mở rộng quy mô ngang thông qua mô hình phân phối dữ liệu qua nhiều nút tuân thủ theo các nguyên tắc của định lý CAP (đảm bảo... articles Khi dữ liệu được đẩy từ form lên, thực hiện khởi tạo 1 biến array lưu trữ 2 tham số title, content, sau đó đẩy array này vào cơ sở dữ liệu : $article = array(); 25 Demo mô hình NoSQL Cơ sở dữ liệu nâng cao $article['title'] = $_POST['title']; $article['content'] = $_POST['content'];… $collection->insert($article);// Đẩy mảng vào cơ sở dữ liệu + Hiển thị danh sách bài viết : Select dữ liệu từ db... xếp và chia thành từng bó, chứa các giá trị liền nhau như là sự phát triển của dữ liệu Hình 9 sẽ minh họa rõ hơn dữ liệu được lưu trữ vật lý như thế nào 13 NoSQL Cơ sở dữ liệu nâng cao Hình 9 – Mô hình lưu trữ vật lý Những dữ liệu dạng cột điển hình thường được lưu trữ theo dạng Cluster (phân cụm) mặc dù nó có thể chạy trong những Node đơn lẻ cho sự phát triển hoặc những mục đích thử nghiệm Mỗi dữ liệu. .. hình cơ sở dữ liệu dạng cột trong mô hình không quan hệ cần nắm rõ được khái niệm đặc tính khóa (key) Sự đối lập của cơ sở dữ liệu dạng cột và cơ sở dữ liệu quan hệ Đầu tiên và cũng là quan trọng nhất, một cơ sở dữ liệu hướng dạng cột (column-oriented database) áp đặt một sự cần thiết nhỏ nhất cho việc định nghĩa các lược đồ trước và có thể dễ dàng chứa được các cột mới như là sự gia tăng của dữ liệu. .. suất cao, mặc dù trong lưu trữ dữ liệu bộ nhớ và cũng đảm bảo độ bền bằng cách lưu trữ dữ liệu vào đĩa sau khi đủ viết đã xảy ra Hình 4 - Phân loại mô hình NoSQL 4.2 Logical Data Models a Wide Column Store / Column Families Hệ cơ sở dữ liệu phân tán cho phép truy xuất ngẫu nhiên/tức thời với khả năng lưu trữ một lượng cực lớn dữ liệu có cấu trúc Dữ liệu có thể tồn tại dạng bảng với hàng tỷ bản ghi và . Cơ sở dữ liệu nâng cao Giới thiệu chủ đề 1 NoSQL và Ứng dụng Bài tập môn CSDL Nâng cao Nhóm 16: Nguyễn Thành Trung Nguyễn Minh Hà Hà Nội, 2012 Cơ sở dữ liệu nâng cao Mục lục Mục. triển của dữ liệu. Hình 9 sẽ minh họa rõ hơn dữ liệu được lưu trữ vật lý như thế nào. 13 Cơ sở dữ liệu nâng cao NoSQL Hình 9 – Mô hình lưu trữ vật lý. Những dữ liệu dạng cột điển hình thường. trong các ô của bảng dữ liệu như hình 5 10 Cơ sở dữ liệu nâng cao NoSQL Hình 5 – Bảng dữ liệu Khi khối lượng dữ liệu tăng lên thì chúng ta phải lưu trữ các giá trị tại các ô dữ liệu theo từng lần