[CƠ SỞ LẬP TRÌNH] – MỘT SỐ KIẾN THỨC TRỌNG TÂM TRONG ĐỀ THI

1. Các bước xây dựng sơ đồ thực thể quan hệ (ERD)

1) Nhận dạng các tập thực thể.

2) Nhận dạng các mối quan hệ.

3) Nhận dạng các thuộc tính và gắn thuộc tính cho các tập thực thể và các mối quan hệ.

4) Nhận dạng thuộc tính định danh của tập thực thể.

5) Xác định các bản số cho các mối quan hệ.

6) Vẽ ERD.

2. Sử dụng Power Designer vẽ ERD

  • Khởi động PD, chọn Create Project
  • Trong New Project: nhập name và Location, OK
  • Chọn Create a new model
  • Chọn Conceptual Diagram
  • Đặt tên cho mô hình mức ý niệm này trong Mode Name, OK
  • Right click trên màn hình, chọn Model Option. Trong Notation, chọn ER+Merise
  • Trong Toolbox, click vào Entity để tạo các thực thể, click vào Association Link để tạo mối kết hợp.
  • Double click vào mối kết hợp để nhập tên và thuộc tính (nếu có)
  • Double click vào bản số để sửa bản số phù hợp tại Cardinality
  • Sau khi vẽ xong mô hình, RC chọn Check Model để kiểm tra lỗi. Sửa các Error để hoàn chỉnh mô hình.

• Lưu mô hình dạng hình ảnh:

 ✓Click chọn 1 entity rồi nhấn Ctrl+A

✓Menu Edit/ Export Image

 ✓Chọn dạng hình ảnh cần lưu (.png, .bmp,…)

3. Các qui tắc chuyển đổi mô hình dữ liệu ERD sang mô hình thực thể quan hệ.

  • Các tập thực thể (trừ tập thực thể yếu) chuyển thành các lược đồ quan hệ có cùng tên và tập thuộc tính.
  • Các mối quan hệ:

➢(2a) Một – Một( 1-1 )

• Hoặc thêm vào lược đồ quan hệ này thuộc tính khóa chính của lược đồ quan hệ kia.

• Hoặc thêm vào cả 2 lược đồ quan hệ thuộc tính khóa chính của lược đồ còn lại .

• Hoặc gộp thành một lược đồ quan hệ, chọn khóa chính phù hợp.

➢(2b) Một-Nhiều( 1-n ): Thêm vào lược đồ quan hệ một thuộc tính khóa chính của lược đồ quan hệ nhiều

➢(2c) Nhiều-Nhiều( n-n) : Tạo một lược đồ quan hệ mới với:

 • Tên lược đồ quan hệ là tên của mối quan hệ.

• Thuộc tính của lược đồ quan hệ là các thuộc tính trên mối quan hệ và khóa chính của các tập thực thể liên quan.

4. Ngôn ngữ truy vấn SQL

4.1. Ngôn ngữ định nghĩa dữ liệu

4.1.1. Lệnh Create Database

▪ Dùng để tạo CSDL

▪ Cú pháp tạo CSDL cơ bản:

CREATE DATABASE <tên csdl>

4.1.2.  Lệnh Create Table

▪ Dùng để tạo cấu trúc bảng

▪ Cú pháp:

 CREATE TABLE <Tên bảng>

(  <tên cột 1> <kiểu dữ liệu> [RBTV cột 1],

 ………..,

 <tên cột n> <kiểu dữ liệu> [RBTV cột n],

[RBTV bảng]

)

Note:

➢ Ràng buộc trên thuộc tính:

• Not Null: giá trị tại cột được đặt ràng buộc này không được rỗng

• Unique: giá trị tại cột được đặt ràng buộc này là duy nhất

• Default: đặt giá trị mặc định

• Check: kiểm tra giá trị của cột

➢Ràng buộc khóa chính: PRIMARY KEY

Thêm ràng buộc khóa chính vào sau thuộc tính khóa chính hoặc thêm vào cuối đoạn.

VD:

➢Ràng buộc khóa ngoại: FOREIGN KEY

FOREIGN KEY(tên thuộc tính)  REFERENCES  Tên bảng tham chiều(tên thuộc tính)

VD:

➢Đặt tên cho ràng buộc: CONSTRAINT <Tên ràng buộc> <RBTV>

VD:

4.1.3. Lệnh Alter Table

▪ Dùng để thay đổi cấu trúc của bảng

▪ Cú pháp:

➢Thêm cột mới

ALTER TABLE <tên bảng>

ADD <tên cột> <kiểu dữ liệu>

➢ Xóa cột

ALTER TABLE <tên bảng>

DROP COLUMN <tên cột>

➢ Thay đổi cột

ALTER TABLE <tên bảng>

ALTER COLUMN (<tên cột> <kiểu dữ liệu>

…..

)

➢ Thêm ràng buộc toàn vẹn vào bảng

ALTER TABLE <tên bảng>

ADD CONSTRAINT [<tên RBTV>]

<kiểu RBTV> (cột tạo RBTV)

       ➢ Xóa ràng buộc toàn vẹn của bảng

ALTER TABLE <tên bảng>

DROP CONSTRAINT <tên RBTV>

4.1.4. Lệnh Drop Table

  • Dùng để xóa bỏ một bảng (xóa dữ liệu cùng với cấu trúc được định

nghĩa của bảng)

  •  Cú pháp:

DROP TABLE <tên bảng>

4.1.5. Truncate Table

▪ Dùng để xóa bảng và giải phóng vùng nhớ

▪ Cú pháp:

TRUNCATE TABLE <tên bảng>

4.1.6. Lệnh Drop Database

▪ Dùng để xóa CSDL

▪ Cú pháp:

DROP DATABASE <tên csdl>

4.2. Ngôn ngữ thao tác dữ liệu

4.2.1. Lệnh Insert Into

▪ Dùng để thêm một hay nhiều dòng dữ liệu vào bảng

▪ Cú pháp:

➢Thêm một dòng

INSERT INTO <tên bảng> [<tên cột 1>, <tên cột 2>,…]

VALUES (<giá trị 1>, <giá trị 2>,…)

➢Thêm nhiều dòng vào một bảng (các bộ này là kết quả từ một câu truy

vấn)

INSERT INTO <tên bảng> [<tên cột 1>, <tên cột 2>,…]

SELECT …

FROM …

[WHERE …]

4.2.2. Lệnh Update

▪ Dùng để cập nhật các giá trị thuộc tính của một hay nhiều dòng trong

bảng

▪ Cú pháp:

UPDATE <tên bảng>

SET <cột 1> = <giá trị 1>, [<cột 2> = <giá trị 2>, ….. ]

[WHERE <điều kiện>]

4.2.3. Lệnh Delete From

▪ Dùng để xóa dữ liệu trong bảng

▪ Cú pháp:

DELETE FROM < tên bảng>

[WHERE <điều kiện>]

▪ Nếu không có mệnh đề WHERE thì tất cả các dòng trong bảng sẽ bị

xóa.

4.2.4. Lệnh truy vấn dữ liệu Select

4.2.4.1. Cấu trúc tổng quát của lệnh truy vấn dữ liệu:
4.2.4.2. Câu lệnh SELECT, FROM

➢ * : lấy tất cả các cột của bảng

SELECT *

FROM <tên bảng>

➢ lấy các cột cụ thể:

SELECT <cột 1>, [<cột 2>, <cột 3>,…]

FROM <tên bảng>

➢Xử lý kết quả trả về có dòng trùng:

Trong mệnh đề SELECT, sử dụng:

DISTINCT: loại bỏ các dòng trùng trong kết quả

➢ Chỉ định số lượng mẩu tin trả về

SELECT TOP <number |percent>  tên cột

FROM  Tên bảng

WHERE [condition]

➢ Sử dụng các phép toán: + – * /

➢ Sử dụng hàm tổng hợp: COUNT, SUM, MAX, MIN, AVG

4.2.4.3. Mệnh đề WHERE

➢ Chỉ định điều kiện truy vấn dữ liệu

SELECT <tên cột>

FROM <tên bảng>

WHERE <điều kiện>

➢Điều kiện trong mệnh đề WHERE gồm:

• phép so sánh: =, <>, >, >=, <, <=

• phép toán luận lý: AND, OR, NOT

• Sử dụng toán tử: IS NULL, IS NOT NULL

• Phép toán kiểm tra miền giá trị: BETWEEN…AND, NOT BETWEEN…AND, ALL, ANY

• Phép toán kiểm tra giá trị có trong danh sách các giá trị: IN, NOT IN, EXISTS, NOT EXISTS

• Phép toán kiểm tra đối chiếu (so sánh chuỗi): LIKE, NOT LIKE

Ký tự đại diện: %: đại diện cho n ký tự bất kì (bao gồm cả độ dài bằng 0)

                          _: đại diện cho 1 ký tự bất kì

➢Phép kết trong mệnh đề Where

• Thuộc tính trùng:

Khi tên thuộc tính trong các quan hệ khác nhau được đặt giống nhau, bắt buộc phải chỉ rõ thuộc tính được lấy từ bảng nào:

<Tên quan hệ>. <Tên thuộc tính>

4.2.4.4. Phép kết INNER JOIN
4.2.4.5. Phép kết LEFT JOIN

➢Việc so sánh giá trị các cột được ưu tiên cho mối quan hệ bên nhánh trái

4.2.4.6. Phép kết RIGHT JOIN

➢Việc so sánh giá trị các cột được ưu tiên cho mối quan hệ bên nhánh phải

4.2.4.7. Phép kết FULL [OUTER] JOIN

➢Là sự kết hợp các kết quả của cả Left Join và Right Join. Kết quả sẽ chứa tất cả các bản ghi từ cả hai bảng và điền vào NULL cho các kết quả bị thiếu ở hai bên.

4.2.4.8. Mệnh đề GROUP BY

➢Chỉ định điều kiện gom nhóm dữ liệu

• Phân hoạch các dòng dữ liệu trong bảng thành các nhóm dữ liệu, và trên mỗi nhóm dữ liệu thực hiện tính toán các giá trị thống kê như tính tổng, tính giá trị trung bình,…

• Các hàm thống kê dữ liệu trên nhóm gồm: COUNT, SUM, MIN, MAX, AVG,….

4.2.4.9. Mệnh đề HAVING

➢Chỉ định điều kiện lọc theo nhóm

• Điều kiện trong mệnh đề HAVING được thực hiện sau khi đã gom nhóm các dòng dữ liệu bằng mệnh đề GROUP BY.

4.2.4.10. Mệnh đề ORDER BY

➢Sắp xếp kết quả truy vấn (mặc định là sắp xếp tăng dần)

ORDER BY <danh sách các cột> [ASC]/ [DESC]

› ASC: sắp tăng dần

› DESC: sắp giảm dần

4.2.4.11.  Truy vấn lồng

➢Sử dụng một khối lệnh (SELECT – FROM – WHERE) trong mệnh đề

WHERE của một câu truy vấn khác.

➢So sánh tập hợp: các toán tử thường được sử dụng trong so sánh là

In, Not In, All, Any, Some, Exists, Not Exists

Lê Thị Mỹ Linh (Sinh viên lớp 22DTK2, khoa Công nghệ thông tin)

Bình luận về bài viết này