Cơ sở dữ liệu là một thuật ngữ quen thuộc và quan trọng trong ngành công nghệ phần mềm ngay từ những ngày đầu mà máy tính trở nên phố biến trong đời sống xã hội, khoảng những thập niên 70 của thế kỹ 20. Nó là một phần cốt lõi, xương sống của hầu hết các tổ chức từ lớn đến nhỏ, ngay cả các tổ chức chính phủ, quốc phòng. Đây cũng là tên của môn học chuyên ngành không thể thiếu của tất cả các sinh viên ngành công nghệ thông trên toàn cầu. Ngày nay, với sự bùng nổ của dữ liệu lớn và sự chuyển dịch cơ chế làm việc của nhiều ngành nghề sang việc khai thác dữ liệu, sự hiểu biết về cơ sở dữ liệu (CSDL) trở thành kiến thức phổ thông cơ sở cho những người làm việc trong môi trường tri thức.
Trong phạm chủ đề trong lớp 12 và mục tiêu ôn tập thi tốt nghiệp phổ thông, chúng ta cần bám sát yêu cầu cần đạt mà Bộ GD ban hành để tránh sa đà quá sâu vào các kiến thức chuyên ngành.
Giới thiệu các hệ Cơ sở dữ liệu
- Nhận biết được nhu cầu lưu trữ dữ liệu và khai thác thông tin cho bài toán quản lí.
- Diễn đạt được khái niệm hệ Cơ sở dữ liệu, các khái niệm cơ bản trong mô hình Cơ sở dữ liệu quan hệ như quan hệ (bảng), khoá, khoá ngoài, truy vấn, cập nhật dữ liệu,...
- Nêu được những khái niệm cơ bản của hệ Cơ sở dữ liệu. Giải thích được các khái niệm đó qua ví dụ minh hoạ.
- Phân biệt được hai loại kiến trúc hệ Cơ sở dữ liệu là tập trung và phân tán.
- Nêu được tầm quan trọng và một số biện pháp bảo mật hệ Cơ sở dữ liệu.
Mọi tổ chức trong xã hội điều có nhu cầu quản lý, từ các tổ chức lớn như cơ quan chính phủ, các công ty, tập đoàn, trường học, bệnh viên, ... đến các tổ chức rất nhỏ như một lớp học.
Ví dụ:
Công ty cần quản lý khách hàng, nhân viên, tài chính, sản phẩm.
Bệnh viện cần quản lý bệnh nhân, y bác sỹ, trang thiết bị y tế, thuốc, ...
Trường học cần quản lý học sinh, giáo viên, nhân viên, cơ sở vật chất, điểm số, môn học, ...
Mọi công tác quản lý đều gắn liền với một công cụ quan trọng là hồ sơ. Đây là công cụ lưu trữ những thông tin quan trọng cần thiết cho việc quản lý. Từ rất xa xưa trong lịch sử loài người, các hình thức lưu trữ thông tin khác nhau đã được tiến hành như trên đá, các phiến đất sét, xương thú, mai rùa, da thú, thanh tre, ...Nhưng quan trọng nhất là việc phát minh ra giấy đã nâng tầm việc lưu trữ thông tin lên rất nhiều. Sổ sách bằng giấy là hình thức lưu trữ phổ biến nhất hành tinh chúng ta trong suốt hàng ngàn năm và vẫn được sử dụng cho đến tận ngày này. Tuy nhiên, cùng với sự phát triển của máy tính, ngày nay chúng ta còn dùng nhiều loại sổ sách điện tử khác không phải bằng giấy, nhưng về mặt cấu trúc thì hầu như được mô phỏng lại loại sổ sách lâu đời này. Có thể kế đến một số loại sổ điện tử như Microsoft excel, google sheet, ...
Các loại hồ sơ phổ biến nhất trong xã hội gồm:
Tại các công ty: hồ sơ khách hàng, hồ sơ nhân viên, hồ sơ sản phẩm, sổ sách kế toán, ...
Tại bệnh viện: bệnh án, hồ sơ y bác sỹ, hồ sơ về thuốc, sổ sách kế toán,...
Tại trường học: học bạ, sổ điểm, hồ sơ viên chức, hồ sơ về cơ sở vật chất, sổ sách kế toán, ...
Các thao tác xử lý hồ sơ:
Tạo lập hồ sơ: Tạo ra hồ sơ ban đầu
Cập nhật hồ sơ: thêm mới, sửa đổi, xóa thông tin cũ trong hồ sơ. Thậm chí thay đổi cấu trúc của hồ sơ.
Khai thác hồ sơ: Tìm kiếm, thông kế, rút trích, lập báo báo, sắp xếp,... phục vụ nhu cầu quản lý.
Tạo lập hồ sơ:
Việc tạo lập hồ sơ ban đầu được phát triển tự nhiên trong nhu cầu quản lý. Dần dần do quy mô các tổ chức ngày càng lớn và yêu cầu quản lý ngày càng phức tạp, việc tạo lập hồ sơ cần tuân theo quy trình chặc chẽ để tạo được hồ sơ tốt ngay từ đầu. Quy trình đó có thể được tóm tắt như sau:
Bước 1: Xác định yêu cầu quản lý
Bước 2: Xác định các đối tượng liên quan
Bước 3: Xác định các cấu trúc hồ sơ
Bước 4: Tập hợp thông tin mẫu
Bước 5: Sử dụng thử
Ví dụ: Tạo bảng điểm để quản lý điểm chi tiết môn Tin học cho một lớp 12 cụ thể.
Bước 1. Xác định yêu cầu
Tạo ra bảng điểm chi tiết cho một lớp cụ thể của một môn cụ thể.
Bước 2. Xác định các đối tượng liên quan
Tên học sinh, tên các cột điểm (không cần tên môn học, vì đây là bảng điểm của môn Tin)
Bước 3. Xác định cấu trúc hồ sơ
Cấu trúc dạng bảng, mỗi học sinh là một dòng, các cột gồm: STT, họ tên HS, các cột điểm thường xuyên, giữa học kỳ và cuối học kỳ.
Bước 4. Tập hợp thông tin mẫu
Nhập thử thông tin và điểm của một số học sinh
Bước 5. Sử dụng thử
Thử các thao tác cập nhật dữ liệu: Thêm, xóa, sửa
Thử các thao tác khai thác hồ sơ: tìm học sinh điểm cao nhất, thống kê số học sinh trên 10 điểm của lớp, ...
Ví dụ về hồ bảng điểm khi nhập thử dữ liệu mẫu
Chúng ta thầy được rằng hồ sơ này khác rất nhiều so với hồ sơ quản lý điểm của giáo viên chủ nhiệm với nhu cầu quản lý điểm tổng hợp của nhiều môn học.
Nhưng vậy, với mỗi như cầu quản lý, chúng ta thường tạo ra một hoặc nhiều hồ sơ. Trong một tổ chức, có rất nhiều nhu cầu quản lý, nên chúng ta thường gọi là một bộ hồ sơ.
Cập nhật hồ sơ
Cập nhật dữ liệu
Cập nhất cấu trúc
Khai thác hồ sơ
Sắp xếp, tìm kiếm, rút trích, thống kê, lập báo cáo. Nói chung là các thao tác để sử dụng thông tin lấy được trong hồ sơ để phục vụ như cầu quản lý hằng ngày
Nhiệm vụ 1. Lập một bộ hồ sơ quản lý cho một trạm bán xăng dầu (cây xăng). Đề xuất phương án cập nhật thông tin mới, một số nhu cầu khai thác dữ liệu từ hồ sơ này.
Nộp bài vào: Nộp bài tập phần CSDL - Nhiem_Vu_1
Là tập hợp các thông tin có liên quan của một tổ chức, được lưu trong các thiết bị nhớ theo cấu trúc xác định cho phép nhiều người sử dụng với nhiều mục đích khác nhau.
Ví dụ:
CSDL của trường Trần Đại Nghĩa
CSDL của bệnh viện Chợ Rẩy
CSDL của công ty ABC
...
Tính không dư thừa: Hạn chế lưu trữ dữ liệu trùng lặp hoặc các dữ liệu có thể dễ dàng tính ra từ dữ liệu khác.
Ví dụ trong bảng điểm, ta chỉ lưu các cột điểm chi tiết, không nên lưu điểm trung bình, vì cột này có thể tính được từ các cột khác.
Tính độc lập dữ liệu
Dữ liệu cần độc lập với các phần mềm ứng dụng khai thác nó. Một CSDL phục vụ nhiều phần mềm ứng dụng cùng truy cập vào nó, cho nên khi nó thay đổi về cấu trúc, không nên để ảnh hưởng đến các hệ thống phần mềm bên trên.
Ví dụ: CSDL điểm của trường trung học ngoài việc phục vụ cho học sinh và phụ huynh xem điểm, còn cho giáo viên nhập điểm, bộ phận học vụ quản lý các thống kê về điểm và các phần mềm khen thưởng, xét lên lớp, chuyển cấp hay xét tốt nghiệp, ...Mỗi phần mềm này khai thác các khía cạnh khác nhau của CSDL và do vậy chỉ cần biết về mức khái niệm của dữ liệu.
Tính toàn vẹn
Dữ liệu phải phản ánh đúng được thực tế của nhu cầu quản lý mà nó phục vụ. Nghĩa là ngoài việc được lưu trữ lại, nó còn phải đảm bảo những ràng buộc của việc lưu trữ đó sao cho phù hợp với thực tế của nhu cầu quản lý tại tổ chức đó.
Ví dụ: Khi chúng ta lưu điểm của học sinh phổ thông tại Việt Nam, chúng ta ràng buộc điểm chỉ nằm trong đoạn từ 0 đến 10. Khi nhập liệu, phải đảm bảo người nhập không thể nhập điểm âm hoặc 11 điểm.
Tương tự như vậy, tuổi của sinh viên đại học phải từ 17 trở lên, không thể có sinh viên có tuổi dưới 17.
Tính nhất quán
Dữ liệu phải luôn phản ánh đúng thực tế sau các thao tác cập nhật dữ liệu, kể cả khi xảy ra các sự cố phần cứng hay phần mềm.
Ví dụ: một dãy thao tác trong giao tác chuyển tiền trên ứng dụng mobile banking là xác thực tài khoản người nhận, nhập số tiền cần chuyển, thực hiện chuyển, hệ thống trừ tiền trong tài khoản người gửi, cộng tiền vào tài khoản người nhận. Nhưng vì lý do mất nguồn đột ngột ở sever khiến hệ thống chỉ mới trừ tiền người gửi mà chưa cộng vào tài khoản người nhận. Vậy sau khi khôi phục lại được nguồn điện. Hệ thống phải thực hiện một trong hai thao tác: trả lại tiền cho người gửi hoặc cộng tiền vào cho người nhận để hoàn tất quy trình.
Ví dụ thứ 2 là nếu hai người khách vào mua vé máy bay của cùng một chuyến bay, cùng một thời điểm ở hai đại lý khác nhau thì hệ thống phải có cơ chế đảm bảo hai khách này nhận 2 vé ở hai ghế khác nhau.
Tính bảo mật và an toàn
Hệ thống phải có khả năng phân quyền để kiểm soát được các truy cập.
Đồng thời phải có cơ chế sao lưu, hồi phục được dữ liệu sau các sự cố phần cứng hoặc phần mềm.
Là phần mềm giúp chúng ta quản lý cơ sở dữ liệu. Cụ thể là cung cấp cho chúng ta các công cụ để tạo lập, cập nhật, khai thác và bảo mật dữ liệu.
Một số hệ quản trị CSDL
Là một hệ bao gồm CSDL và hệ quản trị đi kèm
Hệ CSDL
Cơ sở dữ liệu tập trung
Toàn bộ dữ liệu được tập trung tại một máy chủ (server). Các thao tác xử lý thường diễn ra trên server này.
CSDL Tập trung
Nguồn: Phạm Thế Long, SGK Tin học 12 Kết nối tri thức và cuộc sống, NXB Giáo Dục Việt Nam
Cơ sở dữ liệu phân tán
Dữ liệu được đặt ở nhiều máy chủ (server) khác nhau. Mỗi server như vậy được gọi một trạm. Các trạm này liên kết với nhau thông qua mạng máy tính. Các thao tác cục bộ được xử lý trên server cục bộ, tuy nhiên có những thao tác toàn cục cần sử dụng dữ liệu của nhiều trạm.
CSDL phân tán
Nguồn: Phạm Thế Long, SGK Tin học 12 Kết nối tri thức và cuộc sống, NXB Giáo Dục Việt Nam
Cơ sở dữ liệu quan hệ (relational database) là cơ sở dữ liệu dựa trên mô hình quan hệ dữ liệu, được đề xuất bởi Edgar F. Codd vào năm 1970 (Nguồn: Wikipedia)
Bảng (table): là đối tượng chính của mô hình dữ liệu quan hệ, nơi lưu trữ dữ liệu của CSDL
Trường (field): Mỗi cột trong bảng được gọi là một trường hay một thuộc tính.
Bản ghi (record): Mỗi dòng dữ liệu của bảng được gọi là một bản ghi.
Khóa (key): Là tập hợp các trường có thể tạo thành một dòng dữ liệu duy nhất, phân biệt được với các dòng khác.
Khóa chính (Primary key): Là khóa nhỏ nhất đảm bảo phân biệt được các dòng dữ liệu với nhau.
Khóa ngoại (Foregin key): Là khóa chính của bảng này nhưng xuất hiện lại ở bảng khác.
Tham khảo thêm về các mối quan hệ giữa các bảng: relationships-in-sql
CSDL quản lý âm nhạc
Nguồn: Phạm Thế Long, SGK Tin học 12 Kết nối tri thức và cuộc sống, NXB Giáo Dục Việt Nam
Nhiệm vụ 2. Thiết kế CSDL quan hệ
Một kỳ thi quản lý các thí sinh bằng số bao danh và một số thông cá nhân. Các thí sinh có thể chọn thi nhiều môn. Mỗi môn học có mã môn và các thông tin chi tiết. Mỗi thí sinh được xếp vào một phòng thi có đánh mã phòng. Sau khi thi và chấm thi xong, người ta công bố các bảng điểm theo từng thí sinh và có điểm chi tiết của từng môn mà thí sinh đã thi, có thông tin phòng thi. Em hãy thiết kế CSDL quan hệ này.
Nhiệm vụ 3. Làm bài trắc nghiệm CSDL quan hệ
SQL (Strutured Query Language) được xây dựng từ những năm 1970, đã trở thành ngôn ngữ phổ biến nhất để thao tác với dữ liệu và được tích hợp trong hầu hết các hệ quản trị CSDL.
SQL có ba thành phần chính là: DDL (Data Definition Language) - Ngôn ngữ định nghĩa dữ liệu, DML (Data Manipulation) - Ngôn thao tác dữ liệu và DCL (Data Control Language) - Ngôn ngữ kiểm soát dữ liệu.
Thành phần DDL của SQL cung cấp các câu lệnh cho phép ta tạo lập dữ liệu: Tạo CSDL, tạo bảng, tạo trường, định nghĩa khóa chính, thiết lập khóa ngoại.
Các từ khóa cụ thể được mô tả trong bảng sau:
Nguồn: Phạm Thế Long, SGK Tin học 12 Kết nối tri thức và cuộc sống, NXB GD Việt Nam
Cú pháp
CREATE DATABASE databasename;
ví dụ:
CREATE DATABASE QuanLyAmNhac;
Cú pháp
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
....
);
ví dụ:
CREATE TABLE nhacsi (
Aid INT NOT NULL PRIMARY KEY ,
TenNhacsi varchar(64)
);
CREATE TABLE bannhac (
Mid Char(4) NOT NULL PRIMARY KEY ,
Aid INT,
TenBN varchar(128),
FOREIGN KEY (Aid) REFERENCES nhacsi(Aid)
);
Một số kiểu dữ liệu trong SQL
Nguồn: Phạm Thế Long, SGK Tin học 12 Kết Nối Tri Thức và Cuộc Sống, NXB GD Việt Nam
Thành phần DML của SQL cung cấp cho ta các câu lệnh để cập nhật dữ liệu, cụ thể cho các thao tác thêm, xóa, sửa như sau
Ví dụ:
Nguồn: Phạm Thế Long, SGK Tin học 12 Kết Nối Tri Thức và Cuộc Sống, NXB GD Việt Nam
Nhiệm vụ 4. Tạo CSDL quản lý âm nhạc như trong phần khái niệm CSDL và nhập đầy đủ dữ liệu như hình minh họa
Thành phần DML cũng cung cấp các câu lệnh để khai thác dữ liệu, chủ yếu là để truy vấn dữ liệu. Cú pháp cụ thể như sau:
Ví dụ:
Nguồn: Phạm Thế Long, SGK Tin học 12 Kết Nối Tri Thức và Cuộc Sống, NXB GD Việt Nam
Nhiệm vụ 5. Thực hiện các truy vấn như sau
5.1. Trích danh sách các bản bản nhạc bắt đầu bằng chữ 'T'
5.2. Trích danh sách ca sĩ học "Lê"
5.3. Trích các bản nhạc do nhạc sĩ Văn Cao sáng tác
5.4. Trích các bản thu âm do ca sĩ Trần Khánh trình bày
5.5. Trích các bản thu âm của bản nhạc Việt Nam quê hương tôi
Nhiệm vụ 6. Thực hiện trắc nghiệm ngôn ngữ SQL
CSDL chứa nhiều thông tin quan trọng và nhạy cảm. Việc bảo mật giúp bảo vệ dữ liệu khỏi việc truy cập trái phép, tấn công mạng và mất mát dữ liệu.
Sử dụng mã hóa dữ liệu
Phân quyền truy cập rõ ràng để chỉ những người được phép mới có thể truy cập hoặc chỉnh sửa dữ liệu.
Sao lưu dữ liệu định kỳ để đảm bảo có thể khôi phục khi có sự cố
Nhiệm vụ 7. Thực hiện trắc nghiệm Bảo mật dữ liệu