Chương 1: Tổng quan về CSDL Dữ liệu gộp (Data aggregate) là tập các mục tin xếp tuần tự trong cơ sở và có một tên. Nó có hai dạng là vector, hay mang và nhóm lặp. Với ví dụ trên, ta có thể gộp họ và tên thành dữ liệu gộp có tên là Họ_tên. Bản ghi (record) là tập các dữ liệu gộp lớn và các mục tin xếp kế tiếp trong cơ sở dữ liệu, tạo thành đơn vị trao đổi giữa cơ sở dữ liệu và các ứng dụng.
Rõ ràng các đối tượng được mô tả thông qua các bản ghi và qua các mối quan hệ giữa chúng. Trong mô hình này, chỉ có thể xác định quan hệ qua một bản ghi gọi là chủ và n bản ghi gọi là bản ghi thành phần. Và, tập (set) là quan hệ giữa một bản ghi chủ và n bản ghi thành phần. Khi đó, cơ sở dữ liệu mạng (Network Database) là cơ sở dữ liệu gồm các bản ghi được nối với nhau qua các tập.5 Mô hình hướng đối tượng Từ đầu những năm 1980 “vấn đề hướng đối tượng” đã nhắc đến rất nhiều và đã có nó trở thành xu hướng mới của tin học.
Việc phân tích hướng đối tượng trong cơ sở dữ liệu hay trong một phần mềm đòi hỏi phải trang bị phương pháp phân tích có đặc thù riêng, nhưng có khả năng như các cách phân tích quen dùng khác. Theo Coad và Yourdon năm 1990, phân tích hướng đối tượng dựa trên các khái niệm các đối tượng và thuộc tính, các lớp và các thành viên, cái toàn thể và bộ phận. Từ đó xuất hiện các ngôn ngữ lập trình đối tượng và hướng đối tượng. Và, các mô hình hướng đối tượng thì bắt nguồn từ các mạng ngữ nghĩa và các ngôn ngữ lập trình hướng đối tượng.
Trong mô hình này, mỗi thực thể của thế giới thực sẽ biểu diễn bằng một đối tượng. Đặc trưng của mô hình dữ liệu hướng đối tượng: - Đặc tính nhận dạng đối tượng (Object Identity): Mỗi đối tượng được xác định duy nhất bởi định danh đối tượng. Định danh này được hệ thống sinh ra và quản lí. - Các đối tượng phức tạp (Complex Object): Cho phép xây dựng một kiểu mới từ các kiểu đã có.
- Phân cấp theo kiểu (Type hierarchy): Cho phép có các kiểu con với các đặc tính riêng của nó. Trong thực tế thì cơ sở dữ liệu hướng đối tượng có rất nhiều ưu điểm như: Cho phép liên kết các đối tượng dưới dạng các phép lưu trữ với các đối tượng, Các đối tượng dùng chung giữa nhiều người sử dụng Khả năng phát triển kho trí thức bằng cách thêm các đối tượng mới và các phép xử lí kèm theo, Vũ Bá Anh – Phan Phước Long 18 Chương 1: Tổng quan về CSDL Phát triển hệ quản trị cơ sở dữ liệu dựa trên việc xử lí các đối tượng phức tạp, giao diện chương trình, đối tượng động và trừu tượng. … Các mô hình hướng đối tượng thì đa dạng, cho phép mô hình hóa các đối tượng theo sự phát triển của chúng, cho phép sử dụng lại các đối tượng và các thủ tục thực hiện trên các đối tượng đó, và xây dựng các đối tượng phức tạp. Đối tượng (Object) là tập các phần tử của các dữ liệu có cấu trúc, tham chiếu duy nhất qua tên.
Ví dụ: - Đồ vật: báo cáo, thư từ, chữ kí, …. - Các thể hiện hay sự kiện - Các nhân vật: nhà quản lí, kĩ sư, … - Các đơn vị có tổ chức - Các cấu trúc: động cơ, máy tính, điện thoại, …. Mỗi một đối tượng có các thuộc tính (còn gọi là các thể hiện). Một thuộc tính mang giá trị cho phép xác định đặc tính của đối tượng.
Giá trị này có thể là dữ liệu cơ bản như số nguyên, số thực, kí tự hay dữ liệu phức tạp như một cấu trúc, các giá trị lặp, và có thể dung con trỏ để trỏ đến đối tượng khác. Vậy, thuộc tính (Attribute) là tính chất của đối tượng được gán tên, cho phép tương ứng với một giá trị hay một tham chiếu đến một đối tượng khác. Trong mô hình đối tượng còn cho phép quản lí cấu trúc của các đối tượng theo chức năng mà được gọi là phương thức. Phương thức (Method) là thủ tục đặc trưng bởi tên đầu thủ tục, các tham số gọi và các tham số trả về dùng để áp lên một đối tượng có tên.
Và như thế, một đối tượng được các phương phức xử lí.5 Mô hình dữ liệu NoSQL Cơ sở dữ liệu quan hệ (RDBMS – Relational Database Management System) SQL đã được phát triển từ lâu, được kiểm nghiệm qua thời gian và sử dụng rất nhiều. RDBMS được thiết kế cho các giao dịch đáng tin cậy và các truy vấn đặc biệt trong các ứng dụng. Tuy nhiên, cơ sở dữ liệu SQL không phải là không có hạn chế và và không phải lúc nào cũng phù hợp với tất cà các nhu cầu lưu trữ và truy xuất dữ liệu. Trong thập kỷ đầu tiên của thế kỷ XXI, sự gia tăng của các ứng dụng và nền tảng như các trang web truyền thông xã hội, các công ty thương mại điện tử lớn, chỉ mục tìm kiếm trên web và lưu trữ / sao lưu đám mây đã dẫn đến sự gia tăng lượng dữ liệu được lưu trữ trên cơ sở dữ liệu lớn và máy chủ lớn.
Các loại hệ thống cơ sở dữ liệu mới là cần thiết để quản lý các cơ sở dữ liệu khổng lồ này — các hệ thống sẽ cung cấp khả năng tìm kiếm và truy xuất nhanh chóng cũng như lưu trữ an toàn và đáng tin cậy đối với các loại dữ liệu phi truyền thống, chẳng hạn như các bài đăng và tweet trên mạng xã hội. Một số yêu cầu của các hệ thống mới này không tương thích Vũ Bá Anh – Phan Phước Long 19 Chương 1: Tổng quan về CSDL với các DBMS quan hệ SQL. Hệ thống cơ sở dữ liệu NoSQL ra đời để lưu trữ dữ liệu lớn và quản lý dữ liệu theo cách cho phép tốc độ hoạt động cao và tính linh hoạt cao. Nhiều hệ thống cơ sở dữ liệu NoSQL được phát triển bởi các công ty như Google, Amazon, Yahoo và Facebook nhằm tìm kiếm những cách tốt hơn để lưu trữ nội dung hoặc xử lý dữ liệu cho các trang web lớn.
Không giống như cơ sở dữ liệu SQL, nhiều cơ sở dữ liệu NoSQL có thể được mở rộng theo chiều ngang trên hàng trăm hoặc hàng ngàn máy chủ.1 Khái niệm cơ sở dữ liệu NoSQL 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 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 trong một hội thảo về cơ sở dữ liệu nguồn mở phân tán. Cơ sở dữ liệu NoSQL (tên gốc là "non-SQL" hoặc "non relational") cung cấp một cơ chế để lưu trữ và truy xuất dữ liệu được mô hình hóa khác với các quan hệ bảng được sử dụng trong các cơ sở dữ liệu kiểu quan hệ. Các hệ thống NoSQL cũng đôi khi được gọi là "Not only SQL", có nghĩa là trong các hệ thống ngoài việc quản lý lượng lớn dữ liệu, một số dữ liệu được lưu trữ bằng hệ thống SQL, trong khi dữ liệu khác sẽ được lưu trữ bằng NOSQL, tùy thuộc vào yêu cầu ứng dụng Cơ sở dữ liệu NoSQL có hai đặc tính cơ bản: Distributed (phân tán) non-relational (không ràng buộc).
Một số đặc điểm của cơ sở dữ liệu NoSQL: 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 (commodity machine) nào đó bị chết cũng không ảnh hưởng tới toàn bộ hệ thống. Atomicity: Độc lập data state trong các operation. Consistency: chấp nhận tính nhất quán yếu, có thể không thấy ngay được sự thay đổi mặc dù đã cập nhật dữ liệu.
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. Vũ Bá Anh – Phan Phước Long 20 Chương 1: Tổng quan về CSDL 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).2 Phân loại các cơ sở dữ liệu NoSQL Cơ sở dữ liệu NoSQL được phân loại thành bốn loại: Key-value pair, Column- oriented, Graph-based và Document-oriented. Mỗi loại đều có những thuộc tính và hạn chế riêng. Không có cơ sở dữ liệu nào được cho là tốt hơn để giải quyết tất cả các vấn đề. Người sử dụng nên chọn cơ sở dữ liệu dựa trên nhu cầu ứng dụng của mình 1.1 Key Value Pair Based NoSQL database Với Key Value Pair Based, Dữ liệu được lưu trữ trong các cặp khóa / giá trị (Key/Value Pair).
Nó được thiết kế theo cách để xử lý nhiều dữ liệu và tải nặng. Cơ sở dữ liệu lưu trữ cặp khóa-giá trị lưu trữ dữ liệu dưới dạng bảng băm trong đó mỗi khóa là duy nhất và giá trị có thể là JSON, BLOB (Binary Large Objects), chuỗi, v. Ví dụ: một cặp khóa-giá trị có thể chứa một khóa như “Trang web” được liên kết với một giá trị như “Itguru”. Đây là một trong những ví dụ cơ sở dữ liệu NoSQL cơ bản nhất.
Loại cơ sở dữ liệu NoSQL này được sử dụng như một bộ sưu tập, từ điển, mảng kết hợp, v. Key value stores giúp developer lưu trữ dữ liệu không có schema. Không có mối quan hệ giữa Multiple-Data. Multi-operation Transactions: Nếu bạn đang lưu trữ nhiều khóa và không thể lưu một trong các khóa, bạn không thể quay lại phần còn lại của các thao tác.
Query Data by ‘value’: Tìm kiếm ‘khóa’ dựa trên một số thông tin được tìm thấy trong phần ‘giá trị’ của các cặp khóa-giá trị. Vũ Bá Anh – Phan Phước Long 21 Chương 1: Tổng quan về CSDL Operation by groups: Vì các hoạt động được giới hạn trong một khóa tại một thời điểm, không có cách nào để chạy nhiều khóa đồng thời. Key Value NoSQL database tiêu biểu: DynamoDB Riak Berkeley DB Redis 1.2 Column-based NoSQL database Với Column based database, dữ liệu được lưu trữ trong database dưới dạng các cột. Mỗi cột được xử lý riêng biệt.