1. Trang chủ
  2. » Công Nghệ Thông Tin

OU - Cơ sở dữ liệu - Lý thuyết cuối kì

8 5 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 589,36 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐỀ CƯƠNG CƠ SỞ DỮ LIỆUMô tả tài liều: Đây là tài liệu tổng lý thuyết cơ sở dữ liệu theo giáo trình môn Cơ sở dữ liệu của trường Đại học Mở thành phố Hồ Chí Minh. Lý thuyết đã được tóm gọn trọng tâm, có thể giúp bạn đạt được 3 chấm trở lên.

Trang 1

Chương 1:

Cơ sở dữ liệu:

 Là tập hợp dữ liệu

 Có tính chia sẻ

 Chứa dữ liệu quan hệ logic

 Chứa phần tử miêu tả (mục lục dữ liệu dữ liệu)

 Được thiết kế khi có nhu cầu

Chương 2:

Mô hình thực thể mối kết hợp (ER) (ch3)

Mô hình quan hệ (RDM) (ch4)

Chương 3: Mô hình thực thể mối kết hợp

Tập thực thể

Tập thực thể yếu

Kiểu liên kết

Kiểu liên kết hỗ trợ

Thuộc tính

Thuộc tính khóa Không được phép trùng

Thuộc tính đa trị Có thể có nhiều hơn 1 trị

cho 1 thể hiện của thực thể Thuộc tính tổ hợp

Thuộc tính dẫn xuất Trị của nó có thể tính được

từ các thuộc tính khác //Trong 1 thực thể không có khóa chính: tạo 1 khóa chính, là thực thể yếu và phụ thuộc thực thể khác, nhận khóa chính của thực thể kia

Trang 2

0 º

1 |

N <

Chương 4: Mô hình dữ liệu quan hệ

Mối liên kết 1.n: thuộc tính khóa bên 1 làm khóa ngoại bên nhiều

Mối liên kết 1.1: thuộc tính khóa bên này làm khóa ngoại bên kia nếu không có giá trị tối

thiểu/ tối đa (tối thiểu là 1 sẽ đưa qua tối thiểu là 0)

Mối liên kết n.n: tạo thành quan hệ mới có khóa chính gồm 2 thuộc tính khóa của 2

quan hệ tạo thành nó Thuộc tính mối kết hợp (nếu có) trở thành thuộc tính quan hệ mới

Thuộc tính đa trị: tạo thành quan hệ mới có khóa chính gồm thuộc tính đa trị và thuộc

tính khóa của thực thể

#: khóa ngoại

Chương 5: Đại số quan hệ và phép toán quan hệ

ĐẠI SỐ QUAN HỆ

5 toán tử cơ bản: Chọn, Chiếu, Tích đề các, Hội, Trừ

Toán tử khác: Kết, Giao, Chia

 So sánh 2 bảng:

 Hội, Giao, Trừ: tương thích

 Tích đề các: khác / giống

 Kết, Chia: có ít nhất 1 thuộc tính chung

 Phép toán so sánh: ==; ! = (ℎ𝑜ặ𝑐 <>); <; <=; >; >=

 Phép toán luận lý: 𝑛𝑜𝑡 (¬); 𝑎𝑛𝑑( ); 𝑜𝑟 ( )

Phép chọn:𝜎đ𝑖ề𝑢 𝑘𝑖ệ𝑛(𝑅) dòng

Phép chiếu: 𝜋𝑐𝑜𝑙1,…,𝑐𝑜𝑙𝑛(𝑅) cột

Phép hội: 𝑅 ∪ 𝑆 hoặc

Phép giao: 𝑅 ∩ 𝑆

Phép trừ: 𝑅 − 𝑆

Phép tích đề-các: 𝑅 X 𝑆 không trả lời đúng  kết hợp phép chọn

Phép kết (Phép tích đề-các và phép chọn): dùng phép tích đề-các rồi phép chọn

Trang 3

 Phép kết theta: 𝑅 ⨝ 𝑆

 Phép kết tương đương:

 Phép kết tự nhiên:

 Phép kết ngoài:

 Phép nửa kết:

Phép chia: 𝑅 ÷ 𝑆

PHÉP TOÁN QUAN HỆ

Chương 6: Thao tác dữ liệu với ngôn ngữ sql

Gtri hằng không phải số phải nằm trong nháy đơn

{}: bắt buộc có; []: ko bắt buộc

CÂU LỆNH SELECT

SELECT {*|tên cột muốn có [AS tên mới]} //các cột muốn có trong kq

FROM tên bảng [bí danh] //các bảng được dùng

[WHERE đk] //điều kiện lọc các hàng dl

[GROUP BY ds cột] //tạo nhóm các hàng có gtri giống nhau ở 1/nhiều cột

[HAVING đk cho nhóm] //đk lọc để lấy 1 số nhóm

[ORDER BY ds cột] //sắp thứ tự các hàng trong kq (ASC: tăng; DESC: giảm)

PHÉP TOÁN TRÊN MỘT QUAN HỆ

Phép chọn: SELECT * FROM R WHERE C (quan hệ R, điều kiện C)

Phép chiếu: SELECT L FROM R (thuộc tính chiếu L)

DISTINCT: loại bỏ dl trùng lặp //SELECT DISTINCT …

TênCột BETWEEN a AND b hoặc TênCột >=a AND TênCột <=b: [a, b]

TênCột IN (a, b) hoặc TênCột =a OR TênCột =b: chọn hàng có dl giống 1 trong 2 gtri

LIKE: tìm một mẫu được chỉ định

 %: chuỗi từ 0 đến nhiều ký tự (%a: kết thúc với “a”; a%%: bắt đầu là “a” và có ít nhất 2 kí tự; a%o: bắt đầu là “a” và kết thúc là “o”)

 _ (gạch dưới): đại diện 1 ký tự (_r%: có “r” ở vị trí thứ 2)

Trang 4

NULL: IS NULL / IS NOT NULL

CÁC HÀM THỐNG KÊ TRONG LỆNH SELECT (dùng sau SELECT và HAVING)

COUNT, MIN, MAX: dùng cho gtri số / không phải số

SUM, AVG: gtri số

COUNT (*): đếm tất cả các hàng kể cả NULL và trùng lặp

GROUP BY: Nếu sau SELECT có dùng hàm thống kê thì thường phải có GROUP

BY (nếu chỉ có các hàm thống kê thì ko cần, ngược lại thì GROUP BY các hàng không nằm trong các hàm thống kê)

HAVING: kết hợp với GROUP BY để giới hạn nhóm các hàng trả về

Truy vấn con: SELECT ở truy vấn con phải giống với điều kiện lấy của truy vấn cha;

có thể đặt trong mệnh đề WHERE, FROM, SELECT

ANY / SOME: đk TRUE khi nó thỏa với bất kỳ gtri nào của truy vấn con

ALL: đk TRUE khi nó thỏa với tất cả gtri của truy vấn con

o Nếu truy vấn con rỗng: ALL trả về TRUE, ANY trả về FALSE

SELECT … FROM …

WHERE TênCột1 > SOME/ANY/ALL (SELECT TênCột1 FROM… WHERE…)

EXISTS: chỉ TRUE khi và chỉ khi truy vấn con có tồn tại ít nhất 1 hàng; FALSE

khi truy vấn con có kq rỗng

NOT EXISTS: gtri ngược với EXISTS

SELECT … FROM …

WHERE EXISTS (SELECT * FROM… WHERE…)

PHÉP TOÁN TẬP HỢP

Khả hợp: cùng số thuộc tính và cùng miền gtri

Các bộ dl trùng sẽ bị loại bỏ ra khỏi kết quả của các phép toán tập hợp

Phép giao (INTERSECT): thuộc đồng thời cả 2 //đc thực hiện trc hết

Phép hội (UNION): tất cả //UNION ALL sẽ trả lại toàn bộ kể cả kq trùng

Phép trừ (EXCEPT): Chỉ thuộc quan hệ này, ko thuộc quan hệ kia

(SELECT TênCột FROM… WHERE…)

UNION/ INTERSECT/ EXCEPT (SELECT TênCột FROM… WHERE…)

Trang 5

TRUY VẤN NHIỀU BẢNG

 Dữ liệu lấy từ nhiều bảng thì kết bảng, khi đó liệt kê các bảng tham gia phép kết vào FROM

 Bí danh đứng sau tên bảng

SELECT… FROM bang1 a, bang2 b WHERE a TênCột1 = b TênCột1

Câu lệnh sql thực hiện phép tích đề các

SELECT {*|columnList}

FROM table1 CROSS JOIN table2

https://quantrimang.com/join-trong-sql-server-147627

 JOIN: trả về các hàng có trong cả 2 bảng

 LEFT (RIGHT) JOIN: trả về các hàng nằm ở bảng bên trái (phải) và chỉ lấy ở các bảng còn lại những hàng đáp ứng được đk

 FULL JOIN: trả về toàn bộ hàng ở bảng trái và phải

SELECT cột

FROM bảng1 LEFT/ RIGHT/ FULL [OUTER] JOIN bảng2

ON bảng1 Cột = bảng2 Cột

INSERT INTO TênBảng [(cột i)] VALUES (gtri i): thêm 1 hàng vào bảng (thêm đủ

dl cho các cột bắt buộc nhập dl)

INSERT INTO TênBảngA [(cột i)] SELECT (cột i) FROM TênBảngB [WHERE

đk]: thêm dữ liệu là kết quả của lệnh SELECT vào 1 bảng đã có sẵn (thêm nhiều dòng vào bảng đã có)

SELECT INTO…: thêm dl từ câu truy vấn vào 1 bảng mới

UPDATE TênBảng SET cột i= gtri i [WHERE đk]: chỉnh sửa

DELETE FROM TênBảng [WHERE đk]: xóa dữ liệu trong bảng

CASE…END […]: thay đổi mệnh đề xuất ra của SELECT

CASE biểu thức sẽ được so sánh với từng

gtri của biểu thức i

WHEN biểu thức i THEN kết quả i

ELSE kết quả khác

END

SELECT Country, CASE Country

WHEN ‘USA’ THEN N ‘MỸ’ ELSE Country //còn lại để nguyên END AS N ’Quốc gia’

FROM EMPLOYEES

Trang 6

Chương 7: Định nghĩa dữ liệu với ngôn ngữ sql

https://giasutinhoc.vn/database/co-so-du-lieu/cai-dat-co-so-du-lieu-bai-4-2/

//các kiểu dl

Các loại CONSTRAINT

NOT NULL

Position VARCHAR(10) NOT NULL

Sử dụng để đảm bảo dữ liệu của cột không được nhận giá trị NULL

DEFAULT

DEFAULT (1) FOR SoLuong

NgayVay date DEFAULT GETDATE()

Gán giá trị mặc định trong trường hợp dữ liệu của cột không được nhập vào hay không được xác định (1 bảng: nhiều; 1 cột: chỉ 1)

UNIQUE

//ghi như PRIMARY KEY Sử dụng để đảm bảo dữ liệu của cột là duy nhất, không trùng lặp giá trị trên cùng 1

cột

PRIMARY KEY

(Khóa chính)

SoHoaDon int PRIMARY KEY

PRIMARY KEY (SoHoaDon, MaHang)

Dùng để thiết lập khóa chính trên bảng, xác định giá trị trên tập các cột làm khóa chính phải là duy nhất, không được trùng lặp Việc khai báo ràng buộc khóa chính yêu cầu các cột phải NOT NULL

FOREIGN KEY

(Khóa ngoại)

CONSTRAINT fk_ten

FOREIGN KEY (cộtCon i)

REFERENCES bảngMẹ (cộtMẹ i)

Dùng để thiết lập khóa ngoại trên bảng, tham chiếu đến bảng khác thông qua giá trị của cột được liên kết Giá trị của cột được liên kết phải là duy nhất trong bảng kia

CHECK

CHECK (sex IN (‘M’, ‘F’)) Bảo đảm tất cả giá trị trong cột thỏa mãn điều kiện nào đó Đây là hình thức sử

dụng phổ biến để kiểm tra tính hợp lệ của

dữ liệu (validate data)

CREATE TABLE table name //tạo bảng

( column i dataType, …

);

Trang 7

ALTER TABLE tênBảng

ADD tênCột địnhNghĩaCột; //thêm cột Hoặc ALTER tênCột DROP/SET DEFAULT (gtri); //xóa/đặt gtri cho cột Hoặc ALTER COLUMN tênCột kiểuCột; //chỉnh sửa cột

Hoặc DROP COLUMN tênCột; //xóa cột

Hoặc ADD CONSTRAINT tênRàngBuộc

DEFAULT (gtri) FOR tênCột; //thêm ràng buộc Hoặc DROP CONSTRAINT tênRàngBuộc; //xóa ràng buộc

DROP TABLE TênBảng: xóa dữ liệu và cả bảng

DECLARE @tênGánChoBiến dataType [=gtri mặc định gán cho biến]

VIEW

CREATE VIEW tênView AS //tạo view

SELECT cột 1, cột 2, …

FROM tênBảng

[WHERE đk;]

DROP VIEW tênView //xóa view

WITH CHECK OPTION; //đảm bảo rằng tất cả UPDATE & INSERT thỏa đk trong view

//////còn nhiều thứ nhưng thấy ko thi GK nên bỏ :)

Chương 8: Chuẩn hóa cơ sở dữ liệu

Phụ thuộc hàm: A & B là các thuộc tính của quan hệ R,B phụ thuộc hàm A (A xác định B) ký hiệu: A  B

Bao đóng của tập X (𝑋+): tập chứa phụ thuộc hàm sinh ra từ phụ thuộc hàm X

(tìm bao đóng  tìm khóa của qh R; bao đóng xđ đc hết kq R  có thể là khóa chính)

TIỀN ĐỀ AMSTRONG:

1 B là tập con của A: AB

2 AB: A,CB,C

3 AB, BC: AC

4 Hợp: XY, XZ: XYZ

5 Chiếu: XYZ; XY

6 Bắc cầu giả: XY, YZW: XZW

Trang 8

Bao đóng của tập phụ thuộc hàm F (𝐹+): tập phụ thuộc hàm nhỏ nhất chứa F, ko thể áp dụng Amstrong

Tập thuộc tính nguồn (TN): thuộc tính ko có ở 2 vế và thuộc tính chỉ có ở vế trái

Tập thuộc tính đích (TD): thuộc tính chỉ có ở vế trái

Tập thuộc tính trung gian (TG): thuộc tính có ở cả 2 vế

Thuật toán:

B1: tìm TN, TG

B2: TN= rỗngK= TN, kết thúc Ngược lại B3

B3: tìm tập con Xi của TG

B4: tìm siêu khóa Si: TN  Xi

B5: tìm khóa bằng cách loại bỏ các siêu khóa ko tối thiểu (Si  Sj  loại Sj)

Ex: R (A,B,C,D,E,F) DB; AC; ADE; CF

TN= {D, A}; TG= {C}={, C} //dòng này bao gồm 3 bước 1,2,3

//B4: 𝐷𝐴 += {D, A, B, C, E, F} //khi tìm khóa chính thì cho bằng chính TN trc

𝐷𝐴𝐶 += {D, A, B, C, E, F}

//B5: DA DAC DA là khóa của R

 Dạng chưa chuẩn hóa (UNF): bảng chứa 1/ nhiều nhóm lặp

 Dạng chuẩn 1 (1NF): 1 ô dl1 gtri đơn trị

 Dạng chuẩn 2 (2NF): 1NF, thuộc tính ko phải khóa phải phụ thuộc hàm đầy đủ

vào khóa (vế trái là SK, hoặc vế trái ko nằm trong khóa)

 Dạng chuẩn 3 (3NF): 2NF, ko có phụ thuộc hàm bắc cầu vào khóa (vế trái là SK, hoặc vế phải có thuộc tính nằm trong khóa)

 Dạng chuẩn BC (BCNF): vế trái là siêu khóa

Ngày đăng: 03/09/2022, 22:01

🧩 Sản phẩm bạn có thể quan tâm

w