NEW
Font size
WorksheetsBài tập kiểm tra: Phép nối và câu lệnh SQL
Total questions: 73
Worksheet time: 37mins
___ là phép toán không giữ lại các bộ (tuple) không khớp.
Kết nối trong (Inner Join)
Kết nối ngoài trái (Left Outer Join)
Kết nối tự nhiên (Natural Join)
Kết nối ngoài phải (Right Outer Join)
Phép nối theta-join khác với natural join ở chỗ:
Cho phép sử dụng điều kiện so sánh bất kỳ
Luôn có cùng kết quả
Không có điều kiện nối
Không dùng phép tích
Phép nối ngoài trái (Left Outer Join) giữ lại:
Tất cả bản ghi của bảng bên trái, kể cả không khớp
Chỉ các bản ghi khớp
Tất cả bản ghi của bảng bên phải
Cả hai bảng đầy đủ
Phép nối ngoài phải (Right Outer Join) giữ lại:
Tất cả bản ghi của bảng bên phải, kể cả không khớp
Tất cả bản ghi của bảng bên trái
Chỉ bản ghi khớp
Quan hệ rỗng nếu không khớp
Phép nối ngoài toàn phần (Full Outer Join) giữ lại:
Tất cả bản ghi của cả hai bảng
Chỉ bản ghi khớp
Chỉ bản ghi không khớp
Chỉ bản ghi của bảng có nhiều dữ liệu hơn
Phép chia (÷) thường được dùng trong bài toán:
Tìm các nhân viên có tất cả các kỹ năng trong danh sách
Tìm các nhân viên có một kỹ năng bất kỳ
Tìm các nhân viên không có kỹ năng nào
Tìm kỹ năng hiếm
___ mệnh đề là một bộ lọc bổ sung được áp dụng cho kết quả.
Select
Group By
Having
Order By
___ joins là mặc định trong SQL Server.
Outer
Inner
Equi
None of the mentioned
___ được sử dụng chủ yếu để tìm kiếm các mẫu trong chuỗi đích.
Like Predicate
Null Predicate
In Predicate
Out Predicate
Lệnh nào được dùng để xóa một quan hệ trong SQL?
DROP TABLE
DELETE
PURGE
REMOVE
Lệnh nào sau đây đúng để xóa các giá trị trong quan hệ teaches?
DELETE FROM teaches;
DELETE FROM teaches WHERE Id = 'Null';
REMOVE TABLE teaches;
DROP TABLE teaches;
Lệnh nào được dùng để lấy dữ liệu trong SQL?
SELECT
UPDATE
INSERT
DELETE
Cú pháp chuẩn để lấy tất cả các cột trong bảng SinhVien:
SELECT * FROM SinhVien;
SELECT all FROM SinhVien;
SELECT col FROM SinhVien;
GET * FROM SinhVien;
Lệnh nào dùng để thêm bản ghi mới vào bảng?
INSERT INTO
UPDATE
ADD NEW
CREATE
Lệnh nào xóa tất cả dữ liệu trong bảng nhưng vẫn giữ cấu trúc bảng?
TRUNCATE TABLE
DROP TABLE
DELETE DATABASE
ERASE TABLE
Mệnh đề nào dùng để lọc dữ liệu trong truy vấn SQL?
WHERE
HAVING
ORDER BY
GROUP BY
Cú pháp để sắp xếp kết quả tăng dần theo cột Ten:
ORDER BY Ten ASC;
ORDER Ten;
SORT Ten;
SORT BY Ten UP;
Cú pháp để chọn các giá trị duy nhất (không trùng lặp) trong một cột:
SELECT DISTINCT
SELECT ONLY
SELECT UNIQUE
SELECT SEPARATE
Câu lệnh nào tìm tất cả sinh viên có điểm > 8?
SELECT * FROM SinhVien WHERE Diem > 8;
SELECT * FROM SinhVien HAVING Diem > 8;
SELECT * FROM SinhVien ORDER BY Diem > 8;
FIND * FROM SinhVien WHERE Diem > 8;
Để đếm số lượng bản ghi trong bảng dùng hàm:
COUNT()
SUM()
AVG()
TOTAL()
Hàm AVG() trong SQL dùng để:
Tính trung bình cộng
Lấy giá trị lớn nhất
Tính tổng
Lấy giá trị nhỏ nhất
Câu lệnh nào thêm cột Email vào bảng SinhVien:
ALTER TABLE SinhVien ADD Email VARCHAR(50);
UPDATE SinhVien ADD Email VARCHAR(50);
INSERT Email TO SinhVien;
MODIFY TABLE SinhVien ADD Email;
Sau khi các nhóm đã được thiết lập, SQL áp dụng các điều kiện trong mệnh đề ___, cho phép sử dụng các hàm tổng hợp.
HAVING
WHERE
GROUP BY
WITH
Khóa chính được định nghĩa khi tạo bảng bằng:
PRIMARY KEY
UNIQUE
FOREIGN KEY
INDEX
Mệnh đề nào được dùng để nhóm dữ liệu theo cột?
GROUP BY
ORDER BY
Điểm khác nhau giữa WHERE và HAVING:
WHERE lọc bản ghi trước khi nhóm, HAVING lọc sau khi nhóm
Không khác nhau
WHERE chỉ dùng với SUM, HAVING dùng với COUNT
WHERE chỉ dùng cho bảng, HAVING cho cột
Trong SQL, toán tử % dùng với LIKE có nghĩa là gì?
Chuỗi ký tự bất kỳ (0 hoặc nhiều)
Ký tự bất kỳ 1 lần
So sánh số chia
So sánh phần trăm
Câu lệnh chọn sinh viên có tên bắt đầu bằng "Nguyen":
SELECT * FROM SinhVien WHERE Ten LIKE 'Nguyen%';
SELECT * FROM SinhVien WHERE Ten = 'Nguyen%';
SELECT * FROM SinhVien WHERE Ten LIKE '%Nguyen';
SELECT * FROM SinhVien WHERE Ten IN 'Nguyen';
Câu lệnh nào dùng để cập nhật địa chỉ sinh viên có mã SV = 'S01':
UPDATE SinhVien SET DiaChi='HN' WHERE MaSV='S01';
UPDATE SinhVien VALUES DiaChi='HN' WHERE MaSV='S01';
MODIFY SinhVien DiaChi='HN' WHERE MaSV='S01';
CHANGE SinhVien SET DiaChi='HN';
Trong SQL, ràng buộc NOT NULL có nghĩa là gì?
Cột bắt buộc có giá trị, không được để trống
Cột không thể NULL hoặc rỗng
Cột bắt buộc khác 0
Cột có thể để trống
Ràng buộc UNIQUE đảm bảo:
Không có giá trị trùng lặp trong cột
Không có cột nào được NULL
Giá trị phải tăng dần
Chỉ khóa chính mới được dùng
Trong SQL Server, để tạo chỉ mục ta dùng:
CREATE INDEX
CREATE KEY
CREATE PRIMARY KEY
CREATE UNIQUE
Câu lệnh nào dùng để gán tên tạm (bí danh) cho bảng/cột?
AS
DEFINE
NAME
ALIAS
Câu lệnh nào tạo view TopSinhVien:
CREATE VIEW TopSinhVien AS SELECT * FROM SinhVien WHERE Diem > 8;
MAKE VIEW TopSinhVien AS SELECT * FROM SinhVien WHERE Diem > 8;
NEW VIEW TopSinhVien SELECT * FROM SinhVien WHERE Diem > 8;
VIEW CREATE TopSinhVien AS SELECT * FROM SinhVien WHERE Diem > 8;
Khi thiết kế index, nên tạo trên:
Cột thường xuất hiện trong điều kiện WHERE, JOIN, ORDER BY
Cột ít được truy vấn
Cột có nhiều NULL
Cột khóa ngoại duy nhất
Phụ thuộc hàm (Functional Dependencies) là loại ràng buộc dựa trên yếu tố nào dưới đây?
Khóa (Key)
Khóa được xét lại (Key revisited)
Siêu khóa (Superset key)
Không có đáp án nào đúng
Phương pháp thiết kế cơ sở dữ liệu theo hướng từ dưới lên (bottom-up), được thực hiện bằng cách xem xét mối quan hệ giữa các thuộc tính, là:
Chuẩn hóa (Normalization)
Mô hình hóa cơ sở dữ liệu (Database modeling)
Phụ thuộc hàm (Functional dependency)
Phân rã (Decomposition)
Phụ thuộc hàm (Functional Dependency – FD) biểu diễn mối quan hệ giữa:
Các thuộc tính trong cùng một quan hệ
Các hàng (tuple) trong quan hệ
Các cơ sở dữ liệu khác nhau
Các bảng khác nhau
Ký hiệu X → Y trong phụ thuộc hàm nghĩa là:
Giá trị của X xác định duy nhất giá trị của Y
X và Y độc lập
Y xác định X
X và Y luôn có cùng giá trị
Nếu X → Y và Y → Z thì ta có:
X → Z (theo tính bắc cầu)
X → X
Z → X
Z → Y
Phát biểu nào sau đây đúng về phụ thuộc hàm đầy đủ (full functional dependency):
X xác định Y, nhưng nếu bỏ đi bất kỳ thuộc tính nào trong X thì không còn xác định được Y
Một phần của X cũng có thể xác định Y
Y xác định X
X và Y không liên quan
Phụ thuộc hàm riêng phần (partial dependency) xảy ra khi:
Một phần tập thuộc tính của X cũng có thể xác định Y
X → Y và không bỏ đi được thuộc tính nào trong X
X và Y độc lập
X và Y cùng là khóa chính
Trong Armstrong’s axioms, tính phản xạ (reflexivity) phát biểu rằng:
Nếu Y ⊆ X thì X → Y
Nếu X → Y và Y → Z thì X → Z
Nếu X → Y thì XZ → YZ
Nếu X → Y thì Y → X
Bao đóng của một tập thuộc tính X (ký hiệu X+) là:
Tập tất cả các thuộc tính có thể được xác định bởi X dựa trên tập FD cho trước
Tập con của X
Tập các thuộc tính độc lập với X
Tập tất cả các siêu khóa
Phủ tối thiểu của tập phụ thuộc hàm (minimal cover) là:
Tập FD tương đương nhưng không thể rút gọn thêm
Tập FD có số lượng phụ thuộc nhiều nhất
Tập FD chứa tất cả các thuộc tính
Tập FD chỉ có phụ thuộc toàn bộ
Cho R(A, B, C) với FD: A → B. Hỏi A+ = ?
{A, B}
{A}
{B}
{A, B, C}
Cho R(A, B, C, D) với FD: A → B, B → C. Hỏi A+ = ?
{A, B, C}
{A}
{A, B, C, D}
{B, C}
Cho R(A, B, C) với FD: AB → C. Hỏi AB là gì?
Khóa (vì xác định toàn bộ quan hệ)
Thuộc tính
Khóa ngoại
Không phải khóa
Cho FD: A → BC. Hỏi điều nào đúng?
A → B và A → C
A → B nhưng không chắc A → C
BC → A
B → A
Cho quan hệ R(A, B, C) với các phụ thuộc hàm: A → B, A → C. Hỏi A → BC có đúng không?
Đúng (theo luật hợp – union rule)
Sai
Không xác định
Chỉ khi B và C độc lập
Cho quan hệ R(A, B, C, D) với các phụ thuộc hàm: A → B, C → D. Hỏi bao đóng của AC là (AC)+ ?
{A, B, C, D}
{A, C}
{A, B, C}
{B, D}
Mục đích chính của chuẩn hoá cơ sở dữ liệu là gì?
Loại bỏ dư thừa dữ liệu và bất thường cập nhật
Giảm số lượng bảng
Tăng tốc độ truy vấn
Tăng kích thước dữ liệu
Một bảng ở dạng chuẩn 1 (1NF) nếu:
Tất cả các thuộc tính đều nguyên tố (atomic)
Không có khóa ngoại
Mỗi thuộc tính có thể đa trị
Có ít nhất một khóa chính
Dạng chuẩn 2 (2NF) yêu cầu:
Bảng ở 1NF và không có phụ thuộc bộ phận
Không có thuộc tính thừa
Bảng ở 1NF và không có phụ thuộc bắc cầu
Có ít nhất 2 khóa ngoại
Một bảng ở dạng chuẩn 3 (3NF) nếu:
Đạt chuẩn 2NF và không có phụ thuộc bắc cầu
Đạt chuẩn 2NF và không có phụ thuộc bộ phận
Đạt chuẩn 2NF và không có giá trị NULL
Đạt chuẩn 2NF và tất cả thuộc tính là số
BCNF (Boyce–Codd Normal Form) là một dạng mạnh hơn của:
3NF
1NF
2NF
5NF
Bất thường (anomaly) trong CSDL xuất hiện khi:
Thiết kế không chuẩn hoá gây dư thừa và lỗi khi chèn, cập nhật, xoá
CSDL không có khóa
Có nhiều khóa chính
Có nhiều chỉ mục
Chúng ta có thể sử dụng ba quy tắc sau để tìm ra các phụ thuộc hàm được suy diễn hợp logic. Tập hợp các quy tắc này được gọi là:
Tiên đề Armstrong (Armstrong’s axioms)
Tiên đề
Armstrong
Bao đóng (Closure)
Quy tắc nào sau đây không phải là Tiên đề Armstrong?
Quy tắc giả bắc cầu (Pseudotransitivity rule)
Quy tắc phản xạ (Reflexivity rule)
Quy tắc bắc cầu (Transitivity rule)
Quy tắc tăng cường (Augmentation rule)
Để đạt chuẩn 3NF, bảng phải loại bỏ:
Phụ thuộc bắc cầu
NULL
Khóa ngoại
Siêu khóa
Mục tiêu của chuẩn hoá cao (4NF, 5NF) thường là:
Tránh dư thừa phức tạp hơn, đảm bảo toàn vẹn dữ liệu
Giảm số bảng
Tăng hiệu năng
Giảm phụ thuộc hàm
Khi chuẩn hóa quá cao, nhược điểm có thể là gì?
Tăng số lượng bảng, truy vấn chậm hơn
Dư thừa dữ liệu
Không thể JOIN
Không thể có khóa chính
Để chuẩn hóa cần phân tích điều gì?
Phụ thuộc hàm giữa các thuộc tính
Kiểu dữ liệu
Chỉ số (index)
Tên cột
Trong thiết kế CSDL, nên dừng chuẩn hóa ở mức nào?
3NF hoặc BCNF (tùy ứng dụng)
1NF
2NF
5NF
Tối ưu hóa truy vấn thường dựa trên yếu tố nào?
Execution plan (kế hoạch thực thi)
Số lượng view
Số lượng user
Chỉ số CPU
Denormalization (phi chuẩn hóa) được dùng khi nào?
Cần tăng tốc độ truy vấn, chấp nhận dư thừa dữ liệu
Cần giảm dung lượng dữ liệu
Cần giảm số khóa ngoại
Cần loại bỏ phụ thuộc hàm
Trong SQL, lệnh nào được dùng để thực hiện nhiều câu lệnh CREATE TABLE, CREATE VIEW và GRANT trong một giao dịch?
CREATE SCHEMA
CREATE PACKAGE
CREATE CLUSTER
Tất cả các lựa chọn trên
Trong SQL, lệnh CREATE TABLESPACE được sử dụng để làm gì?
Tạo một không gian trong CSDL để lưu trữ các đối tượng schema và dữ liệu
Tạo trigger trong CSDL
Thêm/đổi tên tập tin dữ liệu
Tất cả các lựa chọn trên
Trong SQL, lựa chọn nào sau đây tạo một quan hệ ảo để lưu trữ kết quả truy vấn?
View
Function
Procedure
Không có đáp án nào
Trong SQL, câu lệnh SELECT * FROM R, S tương đương với điều gì?
SELECT * FROM R CROSS JOIN S
SELECT * FROM R NATURAL JOIN S
SELECT * FROM R UNION JOIN S
SELECT * FROM R INNER JOIN S
Kiểu dữ liệu do người dùng định nghĩa có thể được tạo ra bằng lệnh nào?
CREATE TYPE
CREATE DATATYPE
CREATE DEFINETYPE
CREATE DATA
Xét quan hệ R(A, B, C, D, E) với FD: ABC → DE; D → AB. Số lượng siêu khóa (superkey) của R là bao nhiêu?
10
2
7
12
_____ của một thực thể là một thuộc tính hoặc tập thuộc tính duy nhất trong tất cả các thể hiện của thực thể đó.
Khóa chính (Primary key)
Khóa ngoại (Foreign key)
Ràng buộc toàn vẹn
Lược đồ
