Skip to content · ⁨Bỏ qua nội dung⁩

Databases · ⁨Cơ sở dữ liệu⁩

IGCSE Computer Science · ⁨Khoa học máy tính IGCSE⁩ · Topic 9 · ⁨Chủ đề 9⁩

Video lesson for this topic · ⁨Bài học video cho chủ đề này⁩ Open the video page · ⁨Mở trang video⁩
8:17

Cơ sở dữ liệu

Trước khi có máy tính, thư viện giữ một ngăn kéo như thế này. Một thẻ cho mỗi cuốn sách, mỗi thẻ chứa cùng vài thông tin, tất cả đều được sắp xếp — để nhân viên thư viện có thể tìm thấy bất kỳ cuốn sách nào…

English narration · English + 中文 subtitles burned in · ⁨Giọng đọc tiếng Anh · phụ đề tiếng Anh + 中文 được ghi trực tiếp⁩

Syllabus · ⁨Chương trình⁩
English
Candidates should be able to: Notes and guidance
1 Define a single-table database from given data storage requirements • Including: – fields – records – validation
2 Suggest suitable basic data types • Including: – text/alphanumeric – character – Boolean – integer – real – date/time
3 Understand the purpose of a primary key and identify a suitable primary key for a given database table
4 Read, understand and complete structured query language (SQL) scripts to query data stored in a single database table • Limited to: – SELECT – FROM – WHERE – ORDER BY DESCENDING – ORDER BY ASCENDING – SUM – COUNT – AND – OR • Identifying the output given by an SQL statement that will query the given contents of a database table
Tiếng Việt
Thí sinh cần có thể: Ghi chú và hướng dẫn
1 Định nghĩa một cơ sở dữ liệu bảng đơn từ các yêu cầu lưu trữ dữ liệu đã cho • Bao gồm: – trường – bản ghi – xác thực
2 Gợi ý các kiểu dữ liệu cơ bản phù hợp • Bao gồm: – văn bản/alphanumeric – ký tự – Boolean – số nguyên – số thực – ngày/giờ
3 Hiểu mục đích của khóa chính và xác định khóa chính phù hợp cho bảng cơ sở dữ liệu đã cho
4 Đọc, hiểu và hoàn thành ngôn ngữ truy vấn có cấu trúc (SQL) để truy vấn dữ liệu được lưu trữ trong một bảng cơ sở dữ liệu đơn • Giới hạn ở: – SELECT – FROM – WHERE – ORDER BY DESCENDING – ORDER BY ASCENDING – SUM – COUNT – AND – OR • Xác định kết quả trả về bởi một câu lệnh SQL sẽ truy vấn nội dung đã cho của bảng cơ sở dữ liệu

Source: Cambridge International syllabus · ⁨Nguồn: Chương trình Cambridge International⁩

9.1

What is a database? · ⁨Cơ sở dữ liệu là gì?⁩

English

A database 数据库 is an organised store of data, kept so that it is easy to search, sort and update. At IGCSE you work with a single-table database 单表数据库 — all the data is held in one table.

Tiếng Việt

Một cơ sở dữ liệu là nơi lưu trữ dữ liệu có tổ chức, giúp dễ dàng tìm kiếm, sắp xếp và cập nhật. Trong kỳ thi IGCSE, bạn sẽ làm việc với cơ sở dữ liệu một bảng — tất cả dữ liệu được lưu trong một bảng duy nhất.

Các ngăn kéo nhỏ có nhãn xếp thành hàng trong danh mục thẻ thư viện
Danh mục thẻ thư viện là một cơ sở dữ liệu trên giấy — các bản ghi mà bạn có thể tìm kiếm và sắp xếp theo chỉ mục
Các hàng máy chủ trong trung tâm dữ liệu
Các cơ sở dữ liệu lớn hiện đại được lưu trữ trên các máy chủ trong trung tâm dữ liệu
9.2

Records and fields · ⁨Bản ghi và trường dữ liệu⁩

English

A database table is made of records and fields.

  • A record 记录 is one row in the table — all the data about one thing (for example one student).
  • A field 字段 is one column in the table — one piece of data that every record has (for example "First name").
StudentID FirstName DateOfBirth FormClass FeesPaid
1 Amy 14/03/2009 10A TRUE
2 Ben 02/11/2008 10B FALSE

Here each row is a record, and each column is a field.

Tiếng Việt

Bảng cơ sở dữ liệu được tạo thành từ các bản ghi và các trường dữ liệu.

  • Một bản ghi là một hàng trong bảng — toàn bộ dữ liệu về một đối tượng cụ thể (ví dụ: một học sinh).
  • Một trường dữ liệu là một cột trong bảng — một mảnh thông tin mà mọi bản ghi đều có (ví dụ: "Tên").
StudentID FirstName DateOfBirth FormClass FeesPaid
1 Amy 14/03/2009 10A TRUE
2 Ben 02/11/2008 10B FALSE

Ở đây, mỗi hàng là một bản ghi, và mỗi cột là một trường dữ liệu.

Bảng Học sinh với mỗi hàng được dán nhãn là bản ghi, mỗi cột là trường dữ liệu, và cột StudentID được làm nổi bật là khóa chính
Mỗi hàng là một bản ghi và mỗi cột là một trường dữ liệu; khóa chính (StudentID) là duy nhất cho mỗi bản ghi
9.3

Data types for fields · ⁨Các loại dữ liệu cho trường⁩

English

Each field stores one data type 数据类型. You choose the type that best fits the data.

Data type Used for Example
text/alphanumeric 文本 letters, digits and symbols "10A", "Amy"
character 字符 a single character 'M'
Boolean 布尔值 one of two values TRUE / FALSE
integer 整数 a whole number 42
real 实数 a number with a decimal point 3.5
date/time 日期时间 a date or a time 14/03/2009
Tiếng Việt

Mỗi trường lưu trữ một loại dữ liệu. Bạn chọn loại phù hợp nhất với dữ liệu đó.

Các loại trường: văn bản (một cái tên), số (tuổi), ngày/giờ (ngày sinh), boolean (có/không)
Các kiểu trường: văn bản, số, ngày/giờ và boolean
Loại dữ liệu Dùng cho Ví dụ
văn bản/alphanumeric chữ cái, chữ số và ký hiệu "10A", "Amy"
ký tự một ký tự đơn lẻ 'M'
Boolean một trong hai giá trị TRUE / FALSE
nguyên (integer) một số nguyên 42
thực (real) một số có dấu thập phân 3.5
ngày/giờ một ngày tháng hoặc thời gian 14/03/2009
Vocabulary · ⁨Từ vựng⁩ Train · ⁨Luyện tập⁩
English Tiếng Việt
database/ˈdeɪtəbeɪs/ cơ sở dữ liệu
single-table database/ˈsɪŋɡl ˈteɪbl ˈdeɪtəbeɪs/ cơ sở dữ liệu bảng đơn
record/ˈrekɔːd/ bản ghi
field/fiːld/ trường
data type/ˈdeɪtə taɪp/ kiểu dữ liệu
text/alphanumeric/tekst ˌælfənjuːˈmerɪk/ văn bản / chữ số
character/ˈkærɪktə/ tính cách
Boolean/ˈbuːlɪən/ Boolean
integer/ˈɪntɪdʒə/ integer
real/rɪəl/ số thực
date/time/deɪt taɪm/ ngày / giờ
primary key/ˈpraɪməri kiː/ khóa chính
unique/juːˈniːk/ duy nhất
9.4

The primary key · ⁨Khóa chính⁩

English

A primary key 主键 is a field that holds a unique 唯一的 value for every record. No two records can have the same primary key, so it lets you pick out exactly one record.

In the table above, StudentID is a good primary key because every student has a different number. A field like FormClass would be a bad primary key, because many students share the same class.

Tiếng Việt

Một khóa chính là một trường chứa giá trị duy nhất cho mỗi bản ghi. Không có hai bản ghi nào có cùng khóa chính, vì vậy nó cho phép bạn xác định chính xác một bản ghi.

Trong bảng trên, StudentID là một khóa chính tốt vì mỗi học sinh có một con số khác nhau. Một trường như FormClass sẽ là một khóa chính kém, vì nhiều học sinh cùng thuộc một lớp.

9.5

Validation in a database · ⁨Xác thực dữ liệu trong cơ sở dữ liệu⁩

English

When data is put into a database, validation 验证 checks make sure it is sensible — for example a range check on an age field, or a presence check so a field is not left empty. (You saw these checks in topic 7.)

Tiếng Việt

Khi dữ liệu được nhập vào cơ sở dữ liệu, các kiểm tra xác thực đảm bảo dữ liệu hợp lý — ví dụ: kiểm tra phạm vi cho trường tuổi, hoặc kiểm tra sự tồn tại để đảm bảo trường không để trống. (Bạn đã gặp các kiểm tra này trong chủ đề 7.)

Kiểm tra phạm vi trên trường tuổi chấp nhận 16 nhưng từ chối 200
Kiểm tra khoảng giá trị chấp nhận các giá trị hợp lý và loại bỏ phần còn lại
Vocabulary · ⁨Từ vựng⁩ Train · ⁨Luyện tập⁩
English Tiếng Việt
validation/ˌvælɪˈdeɪʃn/ xác minh tính hợp lệ
structured query language/ˈstrʌktʃəd ˈkwɪərɪ ˈlæŋɡwɪdʒ/ ngôn ngữ truy vấn có cấu trúc
9.6

Structured Query Language (SQL) · ⁨Ngôn ngữ truy vấn có cấu trúc (SQL)⁩

English

Structured Query Language 结构化查询语言 (SQL) is a language used to query 查询 a database — to pick out the records you want. You must understand and complete SQL scripts.

SELECT, FROM and WHERE

  • SELECT says which fields to show.
  • FROM says which table to use.
  • WHERE gives a condition 条件, so only matching records are shown.

This shows the first name and class of every student who has paid the fees.

Use * to select all fields:

ORDER BY

ORDER BY sorts the results. Use ASC for ascending 升序 (smallest first, A→Z) or DESC for descending 降序 (largest first, Z→A).

AND and OR

Join conditions with AND (both must be true) or OR (at least one must be true).

SUM and COUNT

  • SUM adds up the values in a number field.
  • COUNT counts how many records match.

This counts how many students have not paid. SUM works the same way but adds a number field instead of counting rows.

Working out the output

To find the output of an SQL script, read it in this order:

  1. FROM — which table;
  2. WHERE — keep only the records that match the condition;
  3. SELECT — show only the chosen fields;
  4. ORDER BY — put the results in order.

Following these steps, you can write down exactly which rows and columns the query returns.

Worked example. A Book table has the fields Title, Author, Price and InStock. Write a query showing the title and price of every book by Orwell that is in stock, cheapest first.

Build it in the reading order: FROM names the table; WHERE keeps only the matching records, and because there are two conditions they need AND; SELECT shows only the two fields asked for; ORDER BY … ASC sorts them. Text values go in quotes, and only the fields the question asks for belong in SELECT - adding Author just because you filtered on it is the commonest way to lose a mark here.

Tiếng Việt

Ngôn ngữ truy vấn có cấu trúc (SQL) là ngôn ngữ dùng để truy vấn cơ sở dữ liệu — để lấy ra các bản ghi bạn mong muốn. Bạn cần hiểu và viết được các đoạn mã SQL.

SELECT, FROM và WHERE

  • SELECT chỉ định các trường nào cần hiển thị.
  • FROM chỉ định bảng nào cần sử dụng.
  • WHERE đưa ra một điều kiện, để chỉ những bản ghi khớp mới được hiển thị.
Một câu lệnh SQL: SELECT name FROM students WHERE age > 15
SELECT chọn trường, FROM nêu tên bảng, WHERE đặt điều kiện
SELECT FirstName, FormClass
FROM Student
WHERE FeesPaid = TRUE;

Câu này hiển thị tên và lớp của tất cả các học sinh đã thanh toán học phí.

Sử dụng * để chọn tất cả các trường:

SELECT *
FROM Student
WHERE FormClass = '10A';

ORDER BY

ORDER BY sắp xếp kết quả. Sử dụng ASC để tăng dần (nhỏ nhất trước, A→Z) hoặc DESC để giảm dần (lớn nhất trước, Z→A).

SELECT FirstName, DateOfBirth
FROM Student
ORDER BY DateOfBirth ASC;

AND và OR

Kết nối các điều kiện bằng AND (cả hai đều phải đúng) hoặc OR (ít nhất một phải đúng).

SELECT FirstName
FROM Student
WHERE FormClass = '10A' AND FeesPaid = FALSE;

SUM và COUNT

  • SUM cộng tổng các giá trị trong một trường số.
  • COUNT đếm số lượng bản ghi khớp.
SELECT COUNT(StudentID)
FROM Student
WHERE FeesPaid = FALSE;

Câu này đếm số học sinh chưa thanh toán. SUM hoạt động tương tự nhưng cộng một trường số thay vì đếm số hàng.

Tính toán đầu ra

Để tìm đầu ra của một đoạn mã SQL, hãy đọc theo thứ tự sau:

  1. FROM — bảng nào;
  2. WHERE — giữ lại chỉ những bản ghi khớp với điều kiện;
  3. SELECT — chỉ hiển thị các trường đã chọn;
  4. ORDER BY — sắp xếp kết quả theo thứ tự.
Bốn bước theo thứ tự: FROM (bảng nào), WHERE (giữ lại các dòng khớp), SELECT (hiển thị các trường đã chọn), ORDER BY (sắp xếp kết quả)
Đọc một truy vấn SQL theo thứ tự này: FROM (bảng nào), WHERE (những hàng nào), SELECT (những trường nào), ORDER BY (sắp xếp)

Theo các bước này, bạn có thể xác định chính xác những hàng và cột mà truy vấn sẽ trả về.

Ví dụ minh họa. Một bảng Book có các trường là Title, Author, Price và InStock. Viết một truy vấn hiển thị tiêu đề và giá của tất cả các sách của Orwell đang có sẵn, sắp xếp từ rẻ nhất lên đắt nhất.

SELECT Title, Price
FROM Book
WHERE Author = 'Orwell' AND InStock = TRUE
ORDER BY Price ASC;

Xây dựng theo thứ tự đọc: FROM đặt tên bảng; WHERE chỉ giữ lại các bản ghi khớp, và vì có hai điều kiện nên chúng cần AND; SELECT chỉ hiển thị hai trường được yêu cầu; ORDER BY … ASC sắp xếp chúng. Giá trị văn bản phải nằm trong dấu ngoặc kép, và chỉ những trường mà câu hỏi yêu cầu mới thuộc về SELECT - thêm Author chỉ vì bạn đã lọc theo nó là cách phổ biến nhất để mất điểm ở đây.

Explore · ⁨Khám phá⁩

SELECT … WHERE

Step through a query: WHERE filters rows, SELECT picks columns. · ⁨Lặp qua truy vấn: WHERE lọc các hàng, SELECT chọn các cột.⁩

Vocabulary · ⁨Từ vựng⁩ Train · ⁨Luyện tập⁩
English Tiếng Việt
query/ˈkwɪərɪ/ truy vấn
condition/kənˈdɪʃn/ điều kiện
ascending/əˈsendɪŋ/ tăng dần
descending/dɪˈsendɪŋ/ giảm dần
9.7

Exam tips · ⁨Mẹo làm bài thi⁩

English
  • A record is a row (all the data about one thing); a field is a column (one item that every record has).
  • A primary key must be unique for every record, so it picks out exactly one record (StudentID, not FormClass).
  • Learn the SQL parts: SELECT (which fields), FROM (which table), WHERE (the condition), ORDER BY (sort, ASC or DESC).
  • Read a query in the order FROM → WHERE → SELECT → ORDER BY to work out its output.
  • COUNT counts the matching records; SUM adds up a number field.
Tiếng Việt
  • Một bản ghi là một hàng (toàn bộ dữ liệu về một đối tượng); một trường là một cột (một mục mà mọi bản ghi đều có).
  • Một khóa chính phải duy nhất cho mỗi bản ghi, do đó nó chọn ra đúng một bản ghi (StudentID, không phải FormClass).
  • Học các phần SQL: SELECT (các trường nào), FROM (bảng nào), WHERE (điều kiện), ORDER BY (sắp xếp, ASC hoặc DESC).
  • Đọc một truy vấn theo thứ tự FROM → WHERE → SELECT → ORDER BY để xác định đầu ra của nó.
  • COUNT đếm số bản ghi khớp; SUM cộng tổng một trường số.

Interactive lessons on this topic · ⁨Bài học tương tác về chủ đề này⁩

Work through it step by step, with instant-check exercises. · ⁨Làm theo từng bước, kèm theo bài tập kiểm tra ngay lập tức.⁩

Past Papers · ⁨Đề thi cũ⁩

More topics in IGCSE Computer Science · ⁨Khoa học máy tính IGCSE⁩ · ⁨Nhiều chủ đề hơn trong IGCSE Computer Science · ⁨Khoa học máy tính IGCSE⁩⁩

Log in or create account · ⁨Đăng nhập hoặc tạo tài khoản⁩

IGCSE, A-Level & AP