CHƯƠNG I: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU 1.1 Khái niệm dữ liệu và cơ sở dữ liệu Dữ liệu là các thông tin liên quan đến đối tượng (ví dụ như người, vật, sự việc.) được lưu trữ trên máy tính. Dữ liệu được mô tả dưới nhiều dạng khác nhau (như ký tự, ký hiệu, hình ảnh, âm thanh.) Dữ liệu về đối tượng có thể khác nhau tùy thuộc vào mục địch quản lý. Ví dụ: cùng là dữ liệu về đối tượng sinh viên nhưng với mục đích quản lý khác nhau thì sẽ khác nhau, cụ thể như sau: - Với mục đích quản lý điểm, dữ liệu về đối tượng sinh viên sẽ bao gồm: Tên, Mã sinh viên, Điểm môn 1, Điểm môn 2, Điểm môn 3. - Với mục đích quản lý thông tin cá nhân, dữ liệu về đối tượng sinh viên sẽ bao gồm: Tên, Địa chỉ, Ngày Sinh, Quê Quán, Lớp.
Cơ sở dữ liệu là tâp hợp dữ liệu được tổ chức một cách có cấu trúc liên quan với nhau và được lưu trữ trong máy tính. Cơ sở dữ liệu được thiết kế, xây dựng cho phép người dùng lưu trữ dữ liệu, truy xuất thông tin hoặc cập nhật dữ liệu Lợi ích của việc quản lý dữ liệu bằng cơ sở dữ liệu: Giúp dữ liệu được lưu trữ một cách hiệu quả và có tổ chức Tránh dư thừa, trùng lặp dữ liệu Đảm bảo sự nhất quán trong CSDL Các dữ liệu được lưu trữ có thể được chia sẻ Duy trì tính toàn vẹn dữ liệu Đảm bảo dữ liệu được bảo mật 5 lOMoARcPSD|27827034 Ví dụ về dữ liệu và cơ sở dữ liệu: Hình 1.1: Ví dụ về dữ liệu và cơ sở dữ liệu 1. Các mô hình cơ sở dữ liệu 1. Mô hình dữ liệu file phẳng (Flat file) Dùng cho các CSDL đơn giản.
CSDL dạng file phẳng thường là file kiểu văn bản chứa dữ liệu dạng bảng Ví dụ: 6 lOMoARcPSD|27827034 Hình 1.2: Cơ sở dữ liệu dạng file phẳng 1. Mô hình dữ liệu mạng (Network model) Các file trong mô hình dữ liệu mạng được gọi là các bản ghi. Tập hợp các bản ghi cùng kiểu tạo thành một kiểu thực thể dữ liệu. Các kiểu thực thể kết nối với nhau thông qua mối quan hệ cha-con.
Mô hình này được biểu diễn bởi một đồ thị có hướng và các mũi tên chỉ từ kiểu thực thể cha sang kiểu thực thể con. Ví dụ như sau: Hình 1.3: Thực thể kết nối Ưu điểm của mô hình này là có thể biểu diễn được các mối quan hệ phức tạp Nhược điểm là truy xuất chậm và không thích hợp với các CSDL có quy mô lớn 7 lOMoARcPSD|27827034 1. Mô hình dữ liệu phân cấp (Hierarchical model) Tổ chức theo hình cây, mỗi nút biểu diễn một thực thể dữ liệu. Mỗi nút cha có thể có một hoặc nhiều nút con nhưng mỗi nút con chỉ có một nút cha.
Do đó mô hình dữ liệu phân cấp có thể có các kiểu quan hệ: 1-1, 1-N. Nhược điểm của mô hình này là một nút con không thể có quá một nút cha nên không biểu diễn được các quan hệ phức tạp.4: Mô hình dữ liệu phân cấp 1. Mô hình dữ liệu quan hệ (Relational model) Trong mô hình dữ liệu quan hệ không có các liên kết vật lý. Dữ liệu được biểu diễn dưới dạng bảng với các hàng và các cột.
Dữ liệu trong hai bảng liên kết với nhau thông qua các cột chung và có các toán tử để thao tác trên các hàng của bảng Ví dụ: 8 lOMoARcPSD|27827034 Hình 1.5: Mô hình dữ liệu quan hệ 1. Mô hình dữ liệu hướng đối tượng (Object-Oriented model) Mô hình này ra đời vào khoảng đầu những năm 90, dựa trên cách tiếp cận của phương pháp lập trình hướng đối tượng Cơ sở dữ liệu bao gồm các đối tượng: Mỗi đối tượng bao gồm các thuộc tính, phương thức của đối tượng Các đối tượng trao đổi với nhau thông qua các phương thức Một dối tượng có thể được sinh ra từ việc kế thừa từ đối tượng khác Ví dụ: 9 lOMoARcPSD|27827034 Hình 1.6: Mô hình dữ liệu hướng đối tượng 1. Hệ quản trị cơ sở dữ liệu là gì? Hiện nay, một lượng vô cùng lớn các thông tin hữu ích với chúng ta đang tồn tại ở dạng văn bản. Việc của chúng ta là phải biết cách quản lý và sử dụng chúng sao cho thật hiệu quả.
Để quản lý một lượng dữ liệu lớn phức tạp, người sử dụng phải có những công cụ hỗ trợ tính năng đơn giản trong thao tác nhưng lại hiệu quả trong trích lọc thông tin. Từ thực tế đó, hệ quản trị cơ sở dữ liệu ra đời. Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS): Là một hệ thống phần mềm cho phép tạo lập cơ sở dữ liệu và cung cấp cơ chế lưu trữ, truy cập dựa trên các mô hình CSDL Trên thị trường phần mềm hiện nay ở Việt Nam xuất hiện khá nhiều phần mềm hệ quản trị cơ sở dữ liệu như: Microsoft Access, Foxpro, SQL Server, Oracle.Trong đó: 10 lOMoARcPSD|27827034 SQL Server, Microsoft Access, Oracle là các hệ quản trị CSDL điển hình cho mô hình quan hệ IMS của IBM là hệ quản trị CSDL điển hình cho mô hình dữ liệu phân cấp IDMS là hệ quản trị CSDL điển hình cho mô hình dữ liệu mạng Những lợi ích mà DBMS mang lại: Quản trị các CSDL Cơ chế an toàn, bảo mật cao Hỗ trợ các ngôn ngữ giao tiếp. Ví dụ như ngôn ngữ truy vấn dữ liệu có cấu trúc - SQL, ngôn ngữ thao tác dữ liệu - DML, ngôn ngữ mô tả, định nghĩa dữ liệu - DDL 1.
Cấu trúc của một DBMS Hình 1.7: Cấu trúc DBMS 11 lOMoARcPSD|27827034 1. Các thành phần của một DBMS - Dữ liệu, Siêu dữ liệu: Đáy kiến trúc là thiết bị nhớ ngoài lưu trữ dữ liệu và siêu dữ liệu. Trong phần này không chỉ chứa dữ liệu được lưu trữ trong CSDL mà còn chứa cả các siêu dữ liệu, tức là thông tin cấu trúc của CSDL. Ví dụ như tên của các quan hệ, tên các thuộc tính của quan hệ và các kiểu dữ liệu của các thuộc tính này.
- Bộ quản lý lưu trữ: Nhiệm vụ của bộ quản lý lưu trữ là lấy ra các thông tin được yêu cầu từ những thiết bị lưu trữ dữ liệu và thay đổi những thông tin này khi được yêu cầu bởi các mức trên nó của hệ thống. - Bộ xử lý câu hỏi: Bộ xử lý câu hỏi không chỉ điều khiển các câu hỏi mà còn điều khiển cả các yêu cầu thay đổi dữ liệu hay siêu dữ liệu. Nhiệm vụ của nó là tìm ra cách tốt nhất để thực hiện một thao tác được yêu cầu và phát ra lệnh đối với bộ quản lý lưu trữ và thực thi thao tác đó. - Bộ quản lý giao dịch: Bộ quản lý giao dịch có trách nhiệm đảm bảo tính toàn vẹn của hệ thống.
Nó phải đảm bảo rằng các thao tác thực hiện thông suốt đồng thời không cản trở các thao tác khác và đảm bảo hệ thống không bị mất dữ liệu thậm chí cả khi lỗi hệ thống xảy ra. Các kiểu thao tác với DBMS - Các truy vấn: Đây là thao tác hỏi đáp về dữ liệu được lưu trữ trong CSDL và được thực hiện thông qua giao diện truy vấn chung hoặc thông qua giao diện của các chương trình ứng dụng - Cập nhật dữ liệu: Đây là các thao tác, thêm, sửa, xóa dữ liệu trong CSDL. Giống như các truy vấn, chúng có thể được thực hiện thông qua giao diện chung hoặc thông qua giao diện của các chương trình ứng dụng 12 lOMoARcPSD|27827034 - Thay đổi sơ đồ: Các lệnh này thường được thực hiện bởi những người sử dụng được cấp phép, thường là những người quản trị CSDL mới được phép thay đổi sơ đồ của CSDL hoặc tạo lập các CSDL mới. SQL và NoSQL Trước khi phân biệt SQL và NoSQL chúng ta cần làm rõ được thế nào là SQL và thế nào là NoSQL.
SQL là gì? SQL chính là viết tắt của Structured Query language, được phát âm là "S-Q- L" hoặc đôi khi là "See-Quel" là ngôn ngữ chuẩn để xử lý Cơ sở dữ liệu quan hệ. Một cơ sở dữ liệu quan hệ xác định các mối quan hệ dưới dạng các bảng. Lập trình SQL có thể được sử dụng hiệu quả để chèn, tìm kiếm, cập nhật, xóa các bản ghi cơ sở dữ liệu. Điều đó không có nghĩa là SQL không thể làm được gì ngoài việc đó.
Nó có thể làm rất nhiều thứ bao gồm, nhưng không giới hạn, tối ưu hóa và duy trì cơ sở dữ liệu. Các cơ sở dữ liệu quan hệ như Cơ sở dữ liệu MySQL, Oracle, MS SQL Server, Sybase, vv sử dụng SQL. NoSQL là gì? NoSQL là một DMS không quan hệ, không yêu cầu một lược đồ cố định, tránh các phép nối, và dễ dàng mở rộng. Cơ sở dữ liệu NoSQL được sử dụng cho các kho dữ liệu phân tán với nhu cầu lưu trữ dữ liệu khổng lồ.
NoSQL được sử dụng cho dữ liệu lớn và các ứng dụng web thời gian thực. Ví dụ như các công ty như Twitter, Facebook, Google thu thập hàng terabyte dữ liệu người dùng mỗi ngày. 13 lOMoARcPSD|27827034 Cơ sở dữ liệu NoSQL là viết tắt của "Không chỉ SQL" hoặc "Không phải SQL". Mặc dù một thuật ngữ tốt hơn sẽ NoREL NoSQL bắt gặp.
Carl Strozz giới thiệu khái niệm NoSQL vào năm 1998. RDBMS truyền thống sử dụng cú pháp SQL để lưu trữ và truy xuất dữ liệu để có thêm thông tin chi tiết. Thay vào đó, một hệ thống cơ sở dữ liệu NoSQL bao gồm một loạt các công nghệ cơ sở dữ liệu có thể lưu trữ dữ liệu có cấu trúc, bán cấu trúc, không có cấu trúc và đa hình.8: Dữ liệu người dùng mỗi ngày của GG 1. So sánh SQL và NoSQL Tham số SQL NoSQL Cơ sở dữ liệu SQL chủ yếu Cơ sở dữ liệu NoSQL chủ yếu được Định nghĩa được gọi là RDBMS hoặc Cơ gọi là cơ sở dữ liệu không liên quan sở dữ liệu quan hệ hoặc phân tán Design for RDBMS truyền thống sử dụng Hệ thống cơ sở dữ liệu NoSQL bao 14 lOMoARcPSD|27827034 Tham số SQL NoSQL cú pháp và truy vấn SQL để gồm nhiều loại công nghệ cơ sở dữ phân tích và lấy dữ liệu để có liệu khác nhau.
Các cơ sở dữ liệu thêm thông tin chi tiết. Chúng này được phát triển để đáp ứng nhu được sử dụng cho các hệ thống cầu trình bày cho sự phát triển của OLAP. ứng dụng hiện đại.