Chọn đến phần học sinh cần nhanh chóng thông qua mục lục bằng cách click đến phần đó
I. Lý thuyết trọng tâm
1. Yêu cầu tổ chức lưu trữ dữ liệu một cách khoa học
Việc lưu trữ dữ liệu trên máy tính không đơn thuần là chuyển các ghi chép trên giấy thành các tệp văn bản trên máy tính. Cần phải tổ chức việc lưu trữ sao cho hạn chế trùng lặp, giảm dư thừa dữ liệu, khắc phục những lỗi không nhất quán. Đây là yêu cầu chung đối với việc lưu trữ dữ liệu của mọi bài toán quản lí.
a) Hạn chế dư thừa trong lưu trữ dữ liệu
Xét ví dụ về bảng điểm môn học và bảng điểm lớp học ở Bài 10. Khi ghi chép và lưu trữ trên giấy, giáo viên chủ nhiệm lớp thường lưu trữ cả các bảng điểm môn học lẫn bảng điểm lớp học. Tuy nhiên, có thể thấy nhiều dữ liệu bị lặp lại trong các bảng điểm này, và sự lặp lại đó có thể dẫn đến sự không nhất quán về dữ liệu.


Ví dụ: Ở bảng điểm môn Toán, ĐĐG cuối kì của Nguyễn Kì Duyên là 9. Nhưng ở bảng điểm lớp học, điểm này lại có thể bị ghi nhầm thành 8. Đó là hệ quả của việc dữ liệu bị lưu trữ lặp lại ở nhiều nơi.
Thói quen cá nhân của người lưu trữ cũng có thể gây ra sự không nhất quán. Ví dụ, điểm có thể được ghi bằng chữ hoặc các kí hiệu riêng thay vì các cột điểm bằng số, gây khó khăn cho việc nhận biết và tính toán.
Khi dữ liệu được lưu trữ trên máy tính, việc lập bảng điểm lớp học từ dữ liệu cơ sở (các bảng điểm môn học) có thể được thực hiện dễ dàng. Vì thế, không cần lưu trữ bảng điểm lớp học do bảng này chỉ là một khung nhìn tổng hợp từ dữ liệu cơ sở, được ghép từ các bảng điểm môn học.
b) Sự phụ thuộc giữa phần mềm và dữ liệu
Việc lưu trữ dữ liệu không tách rời với việc khai thác thông tin nhờ các phần mềm ứng dụng, vì khai thác thông tin chính là mục đích của việc lưu trữ.
Việc lưu trữ dữ liệu điểm các môn học trên máy tính đòi hỏi cần có những phần mềm hỗ trợ cập nhật dữ liệu điểm và khai thác thông tin từ dữ liệu đó. Phần mềm có thể gồm một số thành phần (gọi là mô đun phần mềm):
- Điểm môn học: Cập nhật điểm các môn.
- Danh sách lớp: Quản lí danh sách lớp học.
- Lập bảng điểm: Lập bảng điểm lớp học từ dữ liệu điểm môn học.
Nếu viết bằng một ngôn ngữ lập trình (ví dụ Python), giải pháp lưu trữ đơn giản nhất là sử dụng trực tiếp hệ thống tệp – ví dụ tệp văn bản (text). Danh sách lớp học sẽ gồm các dòng, mỗi dòng chứa: tên lớp, số thứ tự, họ và tên, ngăn cách bởi dấu phẩy. Bảng điểm môn học cũng tương tự, mỗi dòng gồm: tên lớp, số thứ tự, họ và tên, các cột ĐĐG thường xuyên, ĐĐG giữa kì, ĐĐG cuối kì.

Khi viết mỗi mô đun phần mềm, người lập trình phải biết cấu trúc của các tệp dữ liệu để lần lượt đọc từng dòng, rồi tách các thành phần dữ liệu tương ứng theo dấu phẩy. Mỗi mô đun phần mềm phải đọc và ghi dữ liệu từ các tệp liên quan.
Vấn đề phát sinh: Khi thay đổi cấu trúc các dòng ghi dữ liệu thì các mô đun phần mềm liên quan bắt buộc phải chỉnh sửa theo. Ví dụ: nếu quy định mới về điểm có phần lẻ thập phân và dùng dấu phẩy để ngăn cách phần nguyên với phần thập phân, thì việc phân tích, tách dòng dữ liệu bằng dấu phẩy sẽ bị sai. Người viết chương trình buộc phải sửa lại các mô đun liên quan.
Tình trạng phụ thuộc giữa chương trình và dữ liệu này dẫn tới: nếu thay đổi cách lưu trữ dữ liệu thì phải sửa đổi phần mềm, gây tốn nhiều thời gian và công sức cho thiết kế, bảo trì, phát triển phần mềm.
Bên cạnh đó, bài toán quản lí lớn hoặc có nhiều biến động thường xuất hiện các yêu cầu khai thác thông tin đa dạng khác nhau từ dữ liệu lưu trữ. Do vậy, cần tổ chức dữ liệu độc lập để phần mềm không cần “nhìn thấy” chi tiết về cách lưu trữ mà vẫn sử dụng được dữ liệu. Đây là một trong các ý tưởng quan trọng hình thành nên khoa học về cơ sở dữ liệu (CSDL).
Kết luận: Dữ liệu cần được tổ chức lưu trữ một cách độc lập với việc xây dựng phát triển phần mềm, đảm bảo dễ dàng chia sẻ, dễ dàng bảo trì phát triển, đồng thời đảm bảo hạn chế tối đa việc dữ liệu lặp lại, gây dư thừa dữ liệu và hỗ trợ đảm bảo tính nhất quán dữ liệu.
2. Cơ sở dữ liệu và một số thuộc tính cơ bản
a) Khái niệm CSDL
Không thể tiếp tục với cách tiếp cận có sự phụ thuộc lẫn nhau giữa dữ liệu và phần mềm. Cần chọn cách tiếp cận khác, theo đó việc lưu trữ dữ liệu phải là một vấn đề độc lập được xem xét một cách khái quát. Nhu cầu tổ chức dữ liệu sao cho việc khai thác thuận tiện, giảm được công sức và thời gian làm phần mềm chính là lí do cần tổ chức lưu trữ dữ liệu dưới dạng các CSDL.
Cơ sở dữ liệu (CSDL) là một tập hợp các dữ liệu có liên quan với nhau, được lưu trữ một cách có tổ chức trên hệ thống máy tính.
Ví dụ: Bảng điểm các môn học khi được lưu trữ trong máy tính có thể được xem là ví dụ về CSDL. Thông tin về tài khoản ngân hàng bao gồm tên chủ tài khoản, số căn cước công dân, số dư có trong tài khoản,… có thể được tổ chức thành CSDL để quản lí và phục vụ khách hàng nhanh chóng, tiện lợi.
b) Một số thuộc tính cơ bản của CSDL
Tính cấu trúc: Dữ liệu trong CSDL được lưu trữ dưới dạng bảng gồm các hàng và các cột. Mỗi cột tương ứng với một loại thông tin (trường dữ liệu), mỗi hàng tương ứng với một bản ghi. Đây là hình dung đơn giản nhất về tính cấu trúc của CSDL.
Tính không dư thừa: Cần hạn chế việc lưu trữ các dữ liệu trùng lặp, vì những dữ liệu dư thừa dễ dàng có được thông qua việc khai thác thông tin từ dữ liệu đã có. Thuộc tính này gọi là tính không dư thừa của CSDL.
Tính độc lập dữ liệu: Ở Mục 1, ta đã thấy sự cần thiết phải đảm bảo tính độc lập dữ liệu với phần mềm. Tính độc lập dữ liệu có thể hiểu là khả năng các mô đun phần mềm ứng dụng không cần phải cập nhật khi thay đổi cách thức tổ chức hoặc lưu trữ dữ liệu. Trong thực tế, các CSDL được thiết kế nhằm phục vụ nhiều người dùng với nhiều mục đích quản lí khác nhau, không phụ thuộc vào bài toán quản lí cụ thể hay phương tiện lưu trữ, xử lí dữ liệu. Người dùng không đòi hỏi phải biết được các chi tiết kỹ thuật liên quan đến CSDL. Đây là một trong các thuộc tính quan trọng nhất của CSDL.
Tính toàn vẹn: Các giá trị dữ liệu lưu trữ phải thoả mãn những ràng buộc cụ thể tuỳ thuộc vào thực tế mà nó phản ánh. Ví dụ: điểm đánh giá học tập phải là số nguyên (hay số thập phân) không âm và nhỏ hơn hoặc bằng 10, tuỳ theo quy định về đánh giá điểm học tập của tổ chức.
Tính nhất quán: Ở Mục 1, ta đã biết sơ suất khi cập nhật dữ liệu trong trường hợp CSDL tổ chức không tốt có thể làm ảnh hưởng tới tính nhất quán của dữ liệu. Tính nhất quán trong CSDL đòi hỏi dữ liệu được đảm bảo đúng đắn sau các thao tác cập nhật, kể cả khi xảy ra sự cố ngay trong quá trình cập nhật. Ví dụ: phải có cơ chế để đảm bảo không xảy ra hiện tượng số tiền đã bị trừ bớt trong tài khoản chuyển đi nhưng lại chưa xuất hiện trong tài khoản nhận về; hoặc hai đại lí vé máy bay bán cùng một vé ngồi cho hai khách hàng khác nhau,… Để xảy ra những trường hợp như vậy đều là sự vi phạm tới tính nhất quán của dữ liệu.
Tính bảo mật và an toàn: Dữ liệu phải được bảo vệ an toàn, ngăn chặn được những truy xuất trái phép, chống được việc sao chép dữ liệu không hợp lệ. CSDL cần được tổ chức sao cho không phải ai cũng có quyền truy cập hay cập nhật dữ liệu. Ví dụ: với CSDL bảng điểm môn học, không phải ai cũng có thể vào sửa chữa điểm; với CSDL tài khoản ngân hàng, người không có thẩm quyền không được truy xuất để lấy thông tin cá nhân hay sửa đổi số dư tài khoản. Bên cạnh đó, dữ liệu phải được bảo vệ an toàn, không dễ bị sai lạc, mất mát, có thể khôi phục dù có xảy ra các sự cố liên quan tới phần cứng hay phần mềm của máy tính.
Kết luận:
- CSDL là một tập hợp dữ liệu có liên quan với nhau, được lưu trữ một cách có tổ chức trên hệ thống máy tính.
- Một số thuộc tính cơ bản của CSDL bao gồm: tính cấu trúc; tính không dư thừa; tính độc lập; tính toàn vẹn; tính nhất quán; tính bảo mật và an toàn.
II. Sơ đồ tư duy
┌ Dữ liệu lặp lại → không nhất quán
┌ Hạn chế ───┤
│ dư thừa └ Không cần lưu dữ liệu tính được
│ từ dữ liệu gốc
1. YÊU│ ┌ Phần mềm phải biết cấu trúc tệp
CẦU ├ Sự phụ ───┤
TỔ │ thuộc PM ├ Đổi cấu trúc dữ liệu → phải sửa PM
CHỨC │ & dữ liệu └ Cần tách dữ liệu độc lập với PM
LƯU │
TRỮ └ Kết luận: Lưu trữ độc lập, hạn chế
lặp, đảm bảo nhất quán
CƠ SỞ ──────────────────────────────────────────
DỮ LIỆU
┌ Khái niệm: Tập hợp dữ liệu có liên quan,
2. │ lưu trữ có tổ chức trên hệ thống máy tính
CSDL │
& │ ┌ Tính cấu trúc (dạng bảng: hàng, cột)
THUỘC ├ 6 thuộc ──┼ Tính không dư thừa (không lưu trùng lặp)
TÍNH │ tính ├ Tính độc lập (PM không phụ thuộc cách lưu)
CƠ │ cơ bản ├ Tính toàn vẹn (ràng buộc giá trị hợp lệ)
BẢN │ ├ Tính nhất quán (đúng đắn sau cập nhật)
│ └ Tính bảo mật & an toàn (phân quyền,
│ chống truy xuất trái phép, khôi phục)
│
└ Ví dụ: CSDL điểm, CSDL ngân hàng,
CSDL thư viện, CSDL bệnh viện

Thầy Phạm Thành Danh
(Người kiểm duyệt, ra đề)
Chức vụ: Trưởng ban biên soạn môn Tin Học THPT
Trình độ: Cử nhân Sư phạm Tin học, Chứng chỉ hạng II, Chứng chỉ Tin học, Ngoại ngữ B1
Kinh nghiệm: 8+ năm kinh nghiệm tại Trường THPT Thuận Hóa
