Ngôn ngữ định nghĩa dữ liệu bao gồm các lệnh cho phép gì?

Trả lời nhanh

Ngôn ngữ định nghĩa dữ liệu bao gồm các lệnh cho phép khai báo kiểu, cấu trúc của dữ liệu và các ràng buộc trên dữ liệu của cơ sở dữ liệu. Nói cách khác, nó dùng để “dựng khung” cho CSDL (tạo bảng, trường, khoá, ràng buộc), chứ không dùng để nhập, sửa, xoá hay tìm kiếm dữ liệu.

Câu hỏi và cách hiểu đề

Đây là câu hỏi lý thuyết ở phần Hệ quản trị cơ sở dữ liệu (Tin học 12). Câu thường có dạng điền khuyết: «Ngôn ngữ định nghĩa dữ liệu bao gồm các lệnh cho phép … ». Vì phương án trắc nghiệm có thể khác nhau tuỳ đề, thầy trình bày theo hướng điền khuyết để em nắm bản chất rồi tự chọn được đáp án đúng ở mọi dạng đề.

Phần cần điền: khai báo kiểu dữ liệu, cấu trúc dữ liệu và các ràng buộc trên dữ liệu của CSDL.

Vì sao lại là đáp án này?

Hệ quản trị CSDL cung cấp các nhóm công cụ ứng với các nhu cầu khác nhau. Trước khi lưu được dữ liệu, ta phải nói cho hệ thống biết: có những bảng nào, mỗi bảng có những trường nào, trường đó thuộc kiểu gì, khoá chính là gì, giá trị phải thoả điều kiện nào. Việc “mô tả” này chính là định nghĩa dữ liệu.

Mẹo nhớ: Định nghĩa = Khai báo = Dựng khung. Chữ “định nghĩa” nghĩa là mô tả dữ liệu là gì, chưa nói đến chuyện thêm bớt dữ liệu.

Phân biệt các loại ngôn ngữ trong hệ QTCSDL

Loại ngôn ngữ Cho phép làm gì Ví dụ lệnh SQL
Định nghĩa dữ liệu (DDL) Khai báo kiểu, cấu trúc, ràng buộc của dữ liệu CREATE TABLE, ALTER TABLE, DROP TABLE
Thao tác dữ liệu (DML) Cập nhật (nhập, sửa, xoá) và khai thác (tìm kiếm, kết xuất) dữ liệu INSERT, UPDATE, DELETE, SELECT
Điều khiển (kiểm soát) truy cập Phân quyền, bảo mật, cho phép hay cấm người dùng thao tác GRANT, REVOKE

Loại trừ các phương án hay gặp

  • “Nhập, sửa, xoá dữ liệu” → sai, đó là cập nhật dữ liệu, thuộc ngôn ngữ thao tác dữ liệu.
  • “Tìm kiếm, kết xuất thông tin” → sai, đó là khai thác dữ liệu (truy vấn), cũng thuộc ngôn ngữ thao tác dữ liệu.
  • “Kiểm soát, điều khiển việc truy cập vào CSDL” → sai, đây là nhóm lệnh phân quyền, bảo mật.
  • Chỉ “khai báo kiểu dữ liệu” → thiếu: DDL còn khai báo cấu trúc và ràng buộc.

Ví dụ minh hoạ bằng SQL

Ví dụ tự đặt: tạo bảng HOCSINH lưu thông tin học sinh.

CREATE TABLE HOCSINH (
  MaHS CHAR(6) PRIMARY KEY,
  HoTen VARCHAR(40) NOT NULL,
  NgaySinh DATE,
  Diem FLOAT CHECK (Diem BETWEEN 0 AND 10)
);
  • Kiểu dữ liệu: CHAR, VARCHAR, DATE, FLOAT.
  • Cấu trúc: bảng có 4 trường.
  • Ràng buộc: PRIMARY KEY (khoá chính), NOT NULL (không được để trống), CHECK (điểm từ 0 đến 10).

Muốn thêm trường hoặc xoá bảng, ta vẫn dùng DDL: ALTER TABLE HOCSINH ADD Lop VARCHAR(5); hoặc DROP TABLE HOCSINH;. Còn INSERT INTO HOCSINH ... để thêm một học sinh là lệnh thao tác dữ liệu.

Lỗi sai thường gặp

  • Nhầm “định nghĩa dữ liệu” với “nhập dữ liệu”: định nghĩa là tạo khung, nhập là đổ dữ liệu vào khung.
  • Cho rằng DDL chỉ có kiểu dữ liệu, quên các ràng buộc (khoá chính, khoá ngoài, điều kiện giá trị).
  • Xếp SELECT vào DDL: SELECT là lệnh truy vấn/khai thác dữ liệu.

Bài luyện tập nhanh

  1. Lệnh ALTER TABLE HOCSINH ADD Lop VARCHAR(5); thuộc ngôn ngữ nào?
    Đáp án: Ngôn ngữ định nghĩa dữ liệu, vì thay đổi cấu trúc bảng.
  2. Lệnh DELETE FROM HOCSINH WHERE MaHS='HS0001'; thuộc ngôn ngữ nào?
    Đáp án: Ngôn ngữ thao tác dữ liệu, vì xoá một bản ghi chứ không đổi cấu trúc.
  3. Việc quy định “Diem” chỉ nhận giá trị từ 0 đến 10 là công việc của loại ngôn ngữ nào?
    Đáp án: Ngôn ngữ định nghĩa dữ liệu, vì đó là ràng buộc trên dữ liệu.

Câu hỏi thường gặp

Ngôn ngữ định nghĩa dữ liệu viết tắt là gì?

Viết tắt là DDL (Data Definition Language). Nó gồm các lệnh khai báo kiểu, cấu trúc và ràng buộc của dữ liệu trong CSDL.

Ngôn ngữ định nghĩa dữ liệu khác ngôn ngữ thao tác dữ liệu ở điểm nào?

DDL dùng để tạo và thay đổi cấu trúc CSDL (bảng, trường, ràng buộc). Ngôn ngữ thao tác dữ liệu (DML) dùng để nhập, sửa, xoá và truy vấn dữ liệu có trong cấu trúc đó.

Các lệnh CREATE, ALTER, DROP thuộc loại ngôn ngữ nào?

Chúng thuộc ngôn ngữ định nghĩa dữ liệu, vì tạo mới, sửa đổi và xoá cấu trúc đối tượng như bảng trong CSDL.

Lệnh SELECT có thuộc ngôn ngữ định nghĩa dữ liệu không?

Không. SELECT dùng để truy vấn, khai thác dữ liệu nên thuộc nhóm thao tác (truy vấn) dữ liệu.