Giao Trinh Co So Du Lieu

85 5 0
Giao Trinh Co So Du Lieu

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

a) Ngôn ngữ định nghĩa dữ liệu (Data Definition Language): cho phép người dùng định nghĩa CSDL, đặc tả các kiểu và các cấu trúc dữ liệu, đặc tả các ràng buộc trên các dữ liệu lưu trữ t[r]

(1)

Chương I ĐẠI CƯƠNG VỀ CÁC HỆ CƠ SỞ DỮ LIỆU 1.1 Các hệ thống xử lý tệp truyền thống

Trước đây, tin học chưa phát triển, việc tin học hoá quản lý tổ chức thực phần riêng lẻ, độc lập với mà không xem xét tổ chức tổng thể Chẳng hạn, trường đại học, để phục vụ cho công tác đào tạo quản lý khoa học, phòng Đào tạo tổ chức lưu trữ thông tin cán giảng dạy, nghiên cứu, trường với thông tin: Họ tên, ngày sinh, học hàm, học vị, chuyên môn, khoa,

Do yêu cầu tổ chức, quản lý giảng dạy nghiên cứu riêng khoa, khoa tổ chức lưu trữ hồ sơ cán khoa Hồ sơ cán khoa trích từ phịng Đào tạo phần bổ sung thêm số thông tin cần thiết khác

Việc quản lý riêng rẽ có ưu điểm thời gian triển khai ngắn, khơng địi hỏi đầu tư lớn vật chất, thiết bị nhân Tuy nhiên có nhược điểm trùng lặp thơng tin gây lãng phí Hơn nữa, trùng lặp dễ dẫn đến việc thiếu quán liệu Chẳng hạn, thời điểm thông tin cán khác hai hệ thống phòng đào tạo khoa Một hạn chế khác cách quản lý riêng rẽ thiếu chia sẻ thông tin hệ thống, khó mở rộng hệ thống kết nối hệ thống thành hệ thống chung

Để khắc phục khuyết điểm cách tổ chức liệu theo hệ thống tập tin truyền thống, phương pháp tổ chức liệu đưa phương pháp tổ chức Cơ sở liệu

1.2 Các hệ sở liệu (Database System) 1.2.1 Các khái niệm bản

- Dữ liệu (Data): Dữ liệu tất máy tính xử lý, các số, chữ hay giá trị logic,

(2)

Một cách khác ta hiểu Cơ sở liệu sưu tập liệu tác nghiệp lưu trữ lại hệ ứng dụng xí nghiệp cụ thể khai thác, sử dụng

- Hệ quản trị sở liệu hệ thống phần mềm cho phép người dùng định nghĩa, tạo lập, bảo trì sở liệu điều khiển truy nhập sở liệu

- Hệ sở liệu: Hệ sở liệu hệ thống gồm thành phần: + Cơ sở liệu hợp

+ Những người sử dụng

+ Phần mềm hệ quản trị sở liệu + Phần cứng

1.2.2 Kiến trúc ba mức hệ sở liệu

Để cho hệ thống sử dụng được, phải tra cứu hay tìm kiếm liệu cách hiệu Điều dẫn đến việc thiết kế cấu trúc liệu phức tạp để biểu diễn liệu sở liệu Do nhiều nguời sử dụng truy nhập vào hệ CSDL không đào tạo máy tính, người phát triển phải che dấu tính phức tạp người sử dụng thông qua số mức trừu tượng để đơn giản hoá tương tác người sử dụng hệ thống

Có ba mức biểu diễn sở liệu :

+ Mức vật lý: Mức thấp trừu tượng mô tả liệu thực sự lưu trữ CSDL Đây mức thể cài đặt có tính chất vật lý CSDL để đạt tối ưu lần thực thao tác tìm kiếm lưu trữ, để tận dụng vùng nhớ trống Mức vật lý mức phản ánh cấu trúc liệu, tổ chức tệp dùng cho việc lưu trữ liệu thiết bị nhớ thứ cấp

(3)

+ Khung nhìn (View) : Mức trừu xuất cao mô tả phần của toàn sở liệu, phần thích hợp với người sử dụng định Mức ngồi gồm số khung nhìn khác người sử dụng đặt vào sở liệu Mỗi người dùng khơng quan tâm đến tồn thông tin hệ CSDL mà cần phần thơng tin

Lược đồ (Scheme): Tồn mô tả CSDL gọi lược đồ CSDL. Tương ứng với ba mức trừu xuất liệu nói có ba loại lược đồ

 Lược đồ vật lý khung sở liệu mức vật lý

Lược đồ khái niệm khung sở liệu mức khái niệm. Khung nhìn gọi lược đồ (Subscheme)

Thể (Instance): Toàn liệu lưu trữ CSDL thời điểm định gọi thể CSDL

Sơ đồ sau mô tả mức sở liệu:

hình liệu: Là tập khái niệm ký pháp dùng để mô tả liệu, mối quan hệ liệu, ràng buộc liệu tổ chức

Như xem mơ hình liệu có ba thành phần: - Phần mô tả cấu trúc CSDL

- Phần mô tả thao tác, định nghĩa phép toán phép liệu - Phần mơ tả ràng buộc tồn vẹn để đảm bảo chiính xác liệu 1.2.3 Các khả hệ quản trị sở liệu

- Khả quản lý liệu tồn lâu dài

- Khả truy nhập khối lượng liệu lớn cách hiệu - Hỗ trợ mơ hình liệu

- Đảm bảo tính độc lập liệu

USER Khung nhìn1

USER Khung nhìn

CSDL mức Khái niệm

CSDL mức vật lý

(4)

- Hỗ trợ ngôn ngữ cao cấp định cho phép người sử dụng định nghĩa cấu trúc liệu, truy nhập liệu thao tác liệu

- Quản trị giao dịch - Điều khiển truy nhập - Phục hồi liệu

1.2.4 Các ngôn ngữ sở liệu

Một hệ CSDL cung cấp hai kiểu ngôn ngữ khác nhau: Một ngôn ngữ đặc tả sơ đồ CSDL ngôn ngữ biểu diễn truy vấn cập nhật CSDL

a) Ngôn ngữ định nghĩa liệu (Data Definition Language): cho phép người dùng định nghĩa CSDL, đặc tả kiểu cấu trúc liệu, đặc tả ràng buộc liệu lưu trữ CSDL Kết việc dịch câu DDL tập bảng lưu trữ tệp đặc biệt gọi từ điển liệu hay thư mục liệu

Một từ điển liệu tệp chứa siêu liệu, liệu dưữliệu Tệp đuợc tham khảo trước liệu thực đọc hay sửa đổi hệ CSDL

Ngôn ngữ định nghiã liệu xây dựng dựa loại mơ hình liệu Hiện nay, phần lớn hệ QTCSDL dựa mơ hình quan hệ

b) Ngôn ngữ thao tác liệu(Data Manipulation Language -DML):

Cho phép người sử dụng xây dựng thao tác:Tìm kiếm, thêm, sửa, xóa liệu; Có hai kiểu DML thủ tục phi thủ tục

Tự điển liệu (Data Dictionary): Chứa thông tin thành phần cấu

trúc CSDL (Các thuộc tính, mối liên hệ ), quan hệ, ràng buộc liệu Thông qua từ điển liệu, Hệ QTCSDL cung cấp thêm công cụ trợ giúp khai thác liệu, lập hồ sơ sưu liệu (documentation) cấu trúc CSDL, tạo lập CSDL

Tự điển liệu tổ chức CSDL gọi meta-cơ sở.

Để mô tả liệu mức quan niệm, người ta đưa nhiều loại mơ hình liệu: Mơ hình thực thể liên kết, Mơ hình liệu quan hệ, mơ hình liệu mạng, mơ hình liệu phân cấp, mơ hình liệu hướng đối tuợng

(5)

1.3.1 Khái niệm hệ quản trị CSDL

- Hệ quản trị sở liệu hệ thống phần mềm cho phép người dùng định nghĩa, tạo lập, bảo trì sở liệu điều khiển truy nhập sở liệu

1.3.2 Kiến trúc hệ quản trị CSDL

Các thành phần hệ sở liệu - Biểu diễn nhớ ngoài: CSDL từ điển liệu - Bộ quản lý lưu trữ: Lấy thông tin, thay đổi liệu

- Bộ xử lý câu hỏi:điều khiển câu hỏi, yêu cầu thay đổi liệu - Bộ quản lý giao dịch: Đảm bảo tính tồn vẹn hệ thống

- Các thao tác hệ quản trị CSDL: Các truy vấn, cập nhật liệu, thay đổi sơ đồ

1.4 Sự phân loại hệ CSDL

+ Hệ CSDL tập trung: Trong hệ CSDL, liệu tập trung trạm: Hệ CSDL cá nhân, Hệ CSDL trung tâm, Hệ CSDL khách/chủ

+ Hệ CSDL phân tán: Trong hệ CSDL phân tán, liệu trải tất trạm liệu địa phương có quan hệ với

Cơ sở liệu từ điển

liệu

Bộ quản lý lưu trữ Bộ xử lý câu hỏi

Bộ quản trị giao dịch

(6)

Chương II CÁC MƠ HÌNH DỮ LIỆU

Mơ hình liệu tập khái niệm ký pháp dùng để mô tả liệu, mối quan hệ liệu, ràng buộc toàn vện liệu tổ chức Như xem mơ hình liệu có ba thành phần:

- Phần mơ tả cấu trúc CSDL

- Phần mô tả thao tác, định nghĩa phép toán phép liệu - Phần mơ tả ràng buộc tồn vẹn để đảm bảo chiính xác liệu Khi dùng mơ hình liệu biểu diễn liệu theo cách đễ hiểu mơ hình sử dụng việc thiết kế CSDL

2.1 Mơ hình thực thể liên kết (Entity Relationship – ER)

Mơ hình thực thể liên kết dựa sở nhận thức giới thực bao gồm tập đối tuợng sở gọi thực thể tập liên kết đối tuợng Nó thiết kế nhằm cho phepá thiết kế CSDL cách đắc tả sơ đồ xiínghiệp, biểu diễn cấu trúc logic tổng thể CSDL xí nghiệp

2.1.1 Các khái niệm sở 2.1.1.1 Tập thực thể

Thực thể: Một thực thể một đối tượng cụ thể hay trừu tượng thế giới thực mà tồn phân biệt với đối tượng khác

Ví dụ Nhân viên thực thể, cácdự án thực thể

Thuộc tính: Trong CSDL thực thể mơ tả tập thuộc tính Ví dụ: thực thể nhân viên mô tả Manv, hoten, tuoi, chungminhthu, bacluong, diachi, sodt

Tập thực thể: Là tập hợp thực thể kiểu, nghĩa thể tập thuộc tính Ví dụ: tập tất nhân viên công ty, tập tất sinh viên trường cao đẳng

Kiểu thực thể: Một tập thực thể thường tham chiếu đến cách dùng tên Ví dụ NHANVIEN Như tên NHANVIEN vừa tên tập thực thể đồng thời coi tên kiểu thực thể

(7)

này Như lược đồ kiểu thức thể xác định tên kiểu thực thể, tên ngữ nghĩa thuộc tính ràng buộc mà thực thể thuộc kiểu phải tuân theo Nếu coi lược đồ kiểu thực thể nội hàm kiểu thực thể tập thực thể thời điểm ngoại diên

Các kiểu thuộc tính

- Thuộc tính đơn thuộc tính phức hợp: Thuộc tính đơn thuộc tính khơng phân chia thành thành phần nhỏ (bacluong), thuộc tính phức hợp thuộc tính phân chia thành phần nhỏ hơn(hoten: Ho, tendem,Ten)

- Thuộc tính đơn trị thuộc tính đa tri: Thuộc tính đơn trị thuộc tính có giá trị cho thực thể cụ thể (luong), thuộc tính đa trị thuộc tính có tập hợp giá trị cho thực thể (số điện thoại)

- Thuộc tính lưu trữ (ngaysinh), thuộc tính suy diễn (tuoi)

- Giá trị Null: sử dụng thực thể không có, chưa có giá trị cho thuộc tính

Khố: Một thuộc tính hay tập thuộc tính mà giá trị xác định thực thể tập thực thể gọi khoá tập thực thể

2.1.1.2 Tập liên kết

Liên kết: Một liên kết kết hợp số thực thể

Ví dụ:liên kết “làm việc cho” kết hợp thực thể nhân viên với thực thể Phòng Chẳng hạn nhân viên e1,e2 làm việc cho phòng d1, nhân viên e3 làm việc cho phòng d4,…các liên kết có kiểu

Một tập liên kết tập liên kết kiểu

Một kiểu liên kết R n kiểu thực thể E1, E2,…, En xác định tập liên kết thực thể thuộc kiểu thực thể E1, E2,…, En Một kiểu liên kết tập liên kết tương ứng với dùng chung tên R

(8)

của tích Decac E1xE2x….xEn Chúng ta nói kiểu thực thể E1, E2,… En tham gia vào kiểu liên kết R riêng biệt e1, e2,…,en tham gia vào liên kết ri=(e1,e2,…,en) Ví dụ r1=(e1,d1), r2=(e2,d1), r3=(e3,d4),…

Một kiểu liên kết có thuộc tính mơ tả Ví dụ: Kiểu liên kết “GỬI TIỀN” kiểu thực thể KHACHHANG kiểu thực thể TAIKHOAN cần có thuộc tính NgayTruyCap để ghi nhận lần cuối (ngày gần nhất) khách hàng truy cập vào tài khoản

Cấp kiểu liên kết: số kiểu thực thể tham gia kiểu liên kết Hầu hết kiểu liên kết cấp

Các ràng buộc kiểu liên kết

Trên kiểu liên kết thường có ràng buộc nhằm hạn chế số tổ hợp thực thể tham gia kiểu liên kết Ràng buộc kiểu liên kết xác định theo trạng giới thực mà liên kết biểu diễn Có hai ràng buộc kiểu liên kết, ràng buộc tỷ số lực lượng ràng buộc tham gia

- Ràng buộc tỷ số lực lượng

Tỷ số lực lượng kiểu liên kết cấp hai cho biết số liên kết ( kiểu liên kết này) mà thực thể tham gia vào Ví dụ kiểu liên kết cấp hai “ LÀM VIỆC CHO” kiểu thực thể NHÂN VIÊN với kiểu thực thể PHÒNG tỷ số N:1 ý nghĩa: Một thực thể phịng liên kết với nhiều thực thể nhân viên theo kiểu liên kết này( phịng có nhiều nhân viên làm việc cho nó), thực thể nhân viên liên kết với thực thể phòng (Một nhân viên làm việc phòng)

Các tỷ số lự lượng kiểu liên kết cấp hai gặp là: 1:1,1:N N:M Ví dụ: Xét kiểu liên kết “LÀM VIỆC VỚI” NHÂN VIÊN DỰ ÁN, tỷ số kiểu liên kết N:M (Một nhân viên làm việc với nhiều dự án, dự án nhiều nhân viên đảm nhận)

(9)

Tỷ số lực lượng ràng buộc tham gia gọi chung Các ràng buộc cấu trúc kiểu kiên kết Có cách khác để đặc tả ràng buộc cấu trúc Với kiểu liên kết R, đưa cặp số nguyên (min, max) với (0≤min max ≥ 1, mang ý nghĩa sau: thời điểm , thực thể e thuộc kiểu E phải tham gia liên kết R tham gia nhiều max liên kết R Như E tham gia phận vào R min=0, tham gia tồn min>0, thường lấy min=1

Thực thể yếu

Có kiểu thực thể mà khơng có tập thuộc tính tạo thành khố cho Điều có nghĩa khơng biệt hai thực thể thuộc kiểu dựa vào tổ hợp giá trị thuộc tính chúng Một kiểu thực thể gọi kiểu thực thể yếu Một kiểu thực thể có khố gọi kiểu thực thể mạnh Các thực thể thuộc kiểu thực thể yếu phân biệt với nhờ mối liên quan đến thực thể (xác định ) kiểu thực thể khác

2.1.2 Sơ đồ thực thể liên kết:

Việc tóm tắt thơng tin cần lưu trứ sở liệu thiết kế sử dụng sơ đồ Ẻ có ích Trong sơ đồ Ẻ sử dụng ký hiệu sau để biểu diễn thành phần sơ đồ:

Kiểu thực thể

Kiểu liên kết

(10)

Thuộc tính phức hợp

Thuộc tính suy dẫn

Sự tham gia toàn E

vào kiểu liên kết R N Tỷ số lực lượng E1:E2 1:N

Min,max Ràng buộc cấu trúc(min,max) kiểu thực thể E tham gia vào kiểu liên kết R

Sơ đồ thực thể liên kết gồm phần:

+ Thực thể + Thuộc tính + Liên kết

Ví dụ sơ đồ E-R cho CSDL QLNS gồm NHANVIEN(HoTen, DT, Luong), PHONG(TenPhong, Vitri), NGUOIQUANLY(Hoten) NHANVIEN PHONG có quan hệ với liên kết SAPXEPVAO, PHONG NGUOIQUANLY có quan hệ với liên kết QUANLY

2.2 Mơ hình liệu quan hệ (Relational data model) 2.2.1 Các khái niệm bản

2.2.1.1 Miền: Một miền D tập hợp giá trị nguyên tố, hiểu theo nghĩa giá trị miền phân chia phạm vi mơ hình quan hệ Để đặc tả miền người ta tên miền, kiểu liệu khuôn dạng liệu

2.2.1.2 Thuộc tính: Mỗi đối tượng quản lý có đặc tính riêng biệt Các đặc tính riêng biệt gọi thuộc tính Tương ứng với thuộc tính có miền Ví dụ, sinh viên có mã sinh viên, họ tên, quê

R

E1 E2

R

E1 E2

R

(11)

quán, năm sinh Các thuộc tính đối tượng phân biệt với qua tên chúng Trong thực tế, nhà phân tích - thiết kế thường đặt tên thuộc tính mang tính gợi nhớ Trong giáo trình khơng cần quan tâm đến ngữ nghĩa ta thường ký hiệu tên thuộc tính chữ hoa đầu bảng chữ A, B, C,

2.2.1.3 Quan hệ: Một quan hệ tập thuộc tính tập của tích đề hay nhiều miền

Một quan hệ r với tập thuộc tính U = {A1, A2, , An} tập tích đề dom(A1) dom(A2) dom(An), dom(Ai) miền trị thuộc

tính Ai, tập giá trị thuộc tính Như quan hệ r tập hợp n_bộ có dạng:

r= {(a1, a2, , an)  Dom(Ai), i=1,2,…,n} Khi ta ký hiệu r(U) r(A1, A2, , An)

Một quan hệ biểu diễn dạng bảng, dòng biểu diễn quan hệ, cột biểu diễn thành phần (một thuộc tính) quan hệ

Trong mơ hình quan hệ khơng cho phép có thuộc tính phức hợp hay thuộc tính đa trị: thuộc tính đa trị phải biểu diễn quan hệ, cịn thuộc tính phức hợp đuợc biểu diễn thuộc tính thành phần đơn ( điều kiện để đạt dạng chuẩn 1: First normal form)

Giá trị null: Giá trị số thuộc tính chưa biết chưa có dùng null

Trong quan hệ khơng có hai thuộc tính

2.2.1.4 Lược đồ quan hệ: Một lược đồ quan hệ R cặp có thứ tự R=<U,F> U tập hữu hạn thuộc tính quan hệ, F tập điều kiện thuộc tính (F cịn gọi tập ràng buộc tồn vẹn)

Ví dụ: Quan hệ TKB với tập thuộc tính U={Ngay, Tiet, Mon, Phong, Giaovien) có dạng:

Ngay Tiet Mơn Phịng Giaovien

4/9 Cơ sở liệu 214 Nguyễn Siêu

(12)

Các ràng buộc toàn vẹn:

- Miền thuộc tính tiết từ đến 12

- Vào tiết ngày, giáo viên cụ thể xuâấthiện nhiều phòng

Khi nói đến lược đồ quan hệ tập trung vào khía cạnh mơ tả cấu trúc quan hệ mà không quan tâm đến ràng buộc ta dùng ký hiệu R(U) hay R(A1 , A2, , An)

Ta dùng ký hiệu r(R) để quan hệ r lược đồ R

Với t thuộc quan hệ r lược đồ R X  U, ta ký hiệu t[X]

t chứa giá trị thuộc tính X ( hạn chế t X) dùng ký hiệu t[Ai] để giá trị t tưong ứng với thuộc tính Ai

Một quan hệ r định nghĩa lược đồ quan hệ R(U) thể lược đồ quan hệ R thời điểm

Nhận xét: Về mặt trực quan, quan hệ xem bảng gồm các cột (thuộc tính) dịng (bộ)

Một lược đồ CSDL quan hệ tập lược đồ quan hệ S={R1,R2, …,Rn}

Để tiện cho việc trình bày, giáo trình ta đưa số quy định cách viết sau đây:

- Các thuộc tính: Ký hiệu chữ La tinh hoa: A, B, C, đầu bảng chữ

- Tập thuộc tính: Ký hiệu chữ La tinh hoa cuối bảng chữ cái: X,Y, Z,

- Các thuộc tính tập thuộc tính liệt kê xâu ký tự, khơng có dấu tập hợp {}

Ví dụ: X={A,B,C}  A,B,C  ABC

- XY biểu diễn hợp hai tập thuộc tính X Y

(13)

Siêu khoá: Cho quan hệ r định nghĩa lược đồ R với tập thuộc tính U=[A1, ,An] Tập K  U gọi siêu khoá r (hoặc R) với t1, t2  r , t1  t2 t1[K]  t2[K] (t1[K]t2[K] nghĩa tồn A  K cho t1[A]  t2[A])

Nói cách khác tập K  U gọi siêu khoá lược đồ quan

hệ R K có tính chất xác định thể R * Một lược đồ quan hệ R có siêu khố có nhiều siêu khố Trong trường hợp xấu nhất, siêu khóa tồn tập U.

Ví dụ: Với lược đồ quan hệ SINHVIEN(MaSV, Hoten, QQ, NS) có siêu khoá:

K1={MaSV}

K2={MaSV, Hoten}, …

Ý nghĩa thực tiễn siêu khoá dùng để nhận diện quan hệ, nghĩa cần tìm kiếm t quan hệ r ta cần biết giá trị thành phần siêu khoá đủ Tuy nhiên, K  U siêu khố r K  K1 U K1 siêu khố r Vì vấn đề đặt cần lựa chọn siêu khoá nhỏ (có thuộc tính nhất) để giảm bớt chi phí tìm kiếm

Khố: Cho lược đồ quan hệ R với tập thuộc tính U = [ A1, , An ] Tập KU gọi khoá R nếu:

1 K siêu khoá R

2 Với K'  K K' khơng phải siêu khố R

Nói cách khác Khoá lược đồ quan hệ siêu khoá lược đồ cho tập thực khơng siêu khố

Một lược đồ quan hệ R có khố, trường hợp xấu khố tồn tập thuộc tính U

Ví dụ: Với lược đồ quan hệ SINHVIEN(MaSV, Hoten, QQ, NS) ta có khố K={MaSV}

(14)

Khố ngồi: Một tập K gọi khố ngồi lược đồ quan hệ R nếu khơng phải khố R lại khoá lược đồ quan hệ khác

Một CSDL có nhiều lược đồ quan hệ thường có nhiều khố ngồi để biểu diễn mối liên kết quan hệ, ta gọi mối liên kết ràng buộc toàn vẹn tham chiếu

Yêu cầu giá trị thuộc tính khố phải khác giá trị null Một CSDL phải thoả mãn điều ta nói ràng buộc toàn vẹn thức thể

Các ràng buộc mà thuộc tính phải thoả mãn thường đuợc gọi ràng buộc tồn vẹn ngữ nghĩa, ví dụ: Mức lương tối đa GVC 7.0 hay lương nhân viên không cao lương thủ trưởng

Các thuộc tính tham gia vào khố gọi thuộc tính khố, ngược lại gọi thuộc tính khơng khoá

2.2 Các thao tác cập nhật liệu quan hệ

Các thao tác ( hay cịn gọi phép tốn ) quan hệ chia làm hai loại: phép toán cập nhật phép toán tìm kiếm thơng tin

Có ba phép cập nhật bản, là: thêm (Insert), xố(Delete), sửa đổi(Update) Một thực phép cập nhật số ràng buộc lược đồ CSDL bị vi phạm

a) Phép thêm bộ: (INSERT)

Phép thêm dùng để thêm vào quan hệ cho trước, định nghĩa sau:

Cho quan hệ r tập thuộc tính U={A1, , An} Phép thêm t vào quan hệ r có dạng r= rt

Ta viết INSERT( r ; A1=a1, A2=a2, , An =an) ,  dom (Ai)

Nếu xem thứ tự thuộc tính cố định, ta viết đơn giản INSERT( r; a1, a2 , , an)

Ví dụ: Thêm t=('01', 'Nguyễn Ngọc Anh', 'Hải Dương', 1972) vào quan hệ SINHVIEN, ta viết:

(15)

hoặc INSERT(SINHVIEN; '01', 'Nguyễn Ngọc Anh', 'Hải Dương', 1972) b) Phép xoá (DELETE)

Phép xoá dùng để xoá khỏi quan hệ Phép xoá t khỏi quan hệ r (U) có dạng r = r - t

Ta viết DELETE (r ; A1=a1, A2=a2, , An=an) Hoặc DELETE (r ; a1, a2 , , an)

Trong trường hợp biết khoá K quan hệ r tập {B1, , Bm} ta cần viết DELETE (r; B1= b1, B2= b2, , Bm=bm)

Ví dụ: Xố t=('01', 'Nguyễn Ngọc Anh', 'Hải Dương', 1972) quan hệ SINHVIEN, ta viết:

DELETE ( SINHVIEN;MaSV='01', Hoten='Nguyễn Ngọc Anh', QQ='Hải Dương', NS=1972)

c) Phép sửa đổi (Update)

Phép sửa đổi cho phép ta thay đổi giá trị số thuộc tính quan hệ cho trước Phép sửa đổi định nghĩa sau:

Cho quan hệ r (U); U={A1, , An} Tập C = {C1 , , C p}  U tập thuộc tính mà giá trị cần thay đổi Khi phép thay đổi có dạng r =r \ t  t'

Ta viết: MODIFY(r; A1=a1,A2=a2 , , An=an; C1=c1,C2=c2, ,Cp =cp) Nếu K={B1, , Bm} khoá r Khi ta cần viết

MODIFY(r; B1=b1,B2=b2, , Bm=bm; C1=c1,C2=c2, ,Cp =cp)

Ví dụ: Sửa năm sinh t=('01', 'Nguyễn Ngọc Anh', 'Hải Dương', 1972) quan hệ SINHVIEN thành 1971 ta viết:

MODIFY(SINHVIEN;MaSV='01',Hoten='Nguyễn Ngọc Anh', QQ='Hải Dương', NS=1972; NS =1971)

Hoặc MODYFY(SINHVIEN; MaSV='01'; NS=1971) 2.3 Mơ hình liệu mạng ( tự đọc tài liệu)

2.4 Mơ hình liệu phân cấp ( tự đọc tài liệu)

(16)

Chương III NGÔN NGỮ ĐỊNH NGHĨA VÀ THAO TÁC DỮ LIỆU ĐỐI VỚI MƠ HÌNH QUAN HỆ

Trong chương này, tìm hiểu ngơn ngữ cho phép định nghĩa đối tượng CSDL biểu diễn yêu cầu (truy vấn) CSDL mà hệ quản trị CSDL hỗ trợ Các khía cạnh khơng truy vấn ngôn ngữ thao tác liệu quan hệ liên quan đến thao tác thêm , xóa, sửa đỏi thường khơng phức tạp Vì ngơn ngữ thao tác liệu trước đơi cịn đuợc gọi ngôn ngữ truy vấn Các ngôn ngữ truy vấn mơ hình quan hệ chia thành hai lớp: Các ngôn ngữ đại số ngôn ngữ tính tốn vị từ

I NGƠN NGỮ ĐẠI SỐ QUAN HỆ

Ngôn ngữ đại số quan hệ sở quan trọng ngôn ngữ bậc cao sử dụng để thao tác quan hệ Với liệu lưu trữ quan hệ đó, sử dụng phép toán đại số quan hệ để tạo quan hệ mới, quan hệ thông tin trả theo yêu cầu người dùng Các phép toán đại số quan hệ thường chia thành hai nhóm Nhóm thứ gồm phép tốn tập hợp ( Phép hợp, Phép giao, Phép trừ, Phép tích đề các) Nhóm thứ hai gồm phép tốn đặc biệt quan hệ ( Phép chọn, Phép chiếu, , Phép kết nối, Phép chia quan hệ)

1.1 Các phép toán tập hợp

Định nghĩa: Cho hai quan hệ r s, r s gọi khả hợp chúng xác định tập thuộc tính thuộc tính tên có miền giá trị Các phép tốn hợp, giao hiệu quan hệ định nghĩa quan hệ khả hợp

a Phép hợp (Union)

Định nghĩa: Hợp hai quan hệ khả hợp r(U) s(U) quan hệ, ký hiệu r  s, với tập thuộc tính U thuộc hai

quan hệ

Ta viết r  s = { t | t  r t  s ) }

(17)

Định nghĩa: Giao hai quan hệ khả hợp r(U) s(U) quan hệ, ký hiệu r  s, với tập thuộc tính U đồng thời thuộc hai

quan hệ

Ta viết r  s = {t | tr t  s}

c Phép trừ (Minus)

Định nghĩa: Hiệu quan hệ r(U) trừ quan hệ s(U) quan hệ, ký hiệu r – s, với tập thuộc tính U có mặt r khơng có mặt s Ta viết r - s = {t | tr t s}

d Phép tích Đề (Cartesian product)

Định nghĩa: Cho hai quan hệ r(U) s(V), với U= A1, , An , V= B1, , Bm Tích Đề r s quan hệ, ký hiệu r x s, tập tất (n+m) cho có n thành phần đầu làm thành thuộc r m thành phần sau làm thành thuộc s Ta viết:

r  s = {t| t= (a1 , , an , b1, , bm )| (a1 , , an )  r (b1 , , bm ) s}

Nhận xét: Nếu quan hệ r có p quan hệ s có q quan hệ kết r

 s có p  q

1.2 Các phép toán đặc biệt quan hệ a Phép chọn: (Selection)

Phép chọn phép toán lọc tập quan hệ cho thoả mãn điều kiện xác dịnh Điều kiện gọi điều kiện chọn hay biểu thức chọn

Biểu thức chọn E định nghĩa tổ hợp logic toán hạng, toán hạng phép so sánh đơn giản hai biến hai thuộc tính biến thuộc tính giá trị Biểu thức chọn E cho giá tri sai cho quan hệ kiểm tra riêng Các phép so sánh biểu thức E là: =, >, ≥ , <, ≤,  Các phép toán logic

biểu thức E là:  (và),  (hoặc),  (phủ định)

Định nghĩa 1: Cho quan hệ r tập thuộc tính U, E biểu thức logic phát biểu U Ta nói t  r thoả mãn biểu thức E thay mọi

(18)

thức logic mệnh đề E gọi điều kiện chọn (hay biểu thức chọn ) quan hệ r tập thuộc tính U

Ví dụ : Cho quan hệ SINHVIEN(MaSV, Hoten, QQ, NS)

Khi t = <MASV='01', HOTEN ='Lê Anh', QQ ='Nghệ An', NS = 1960 >  SINHVIEN thoả mãn biểu thức E : (NS < 1970)  (QQ ='Nghệ An')

Định nghĩa 2: Cho quan hệ r(U) biểu thức chọn E phát biểu U. Phép chọn quan hệ r, theo điều kiện E cho ta quan hệ mới, ký hiệu

E(r), với tập thuộc tính U r thoả mãn điều kiện E

Ta viết : E(r) = {t  r | E(t) = đúng}, E(t) giá trị biểu thức E thay thuộc tính A có mặt E t t[A]

Ví dụ: Cho thơng tin sinh viên sinh trước năm 1972, quê 'Nghệ An' quan hệ SINHVIEN

Ta viết  (NS<1972)(QQ='Nghệ An')(SINHVIEN) Khi quan hệ SINHVIEN

MaSV Hoten QQ NS

01 Lê Anh Nghệ An 1970

03 Thu Hà Hải phòng 1972

04 Hữu Thắng Nghệ An 1975

05 Hồng Sơn Hà Nội 1972

06 Huỳnh Đức TP Hồ Chí Minh 1974

07 Sỹ Hùng Nghệ An 1971

Kết phép chọn cho ta quan hệ

MaSV Hoten QQ NS

01 Lê Anh Nghệ An 1970

07 Sỹ Hùng Nghệ An 1971

* Thực chất phép chọn theo điều kiện E chọn từ quan hệ r số thoả mãn điều kiện E cho trước

b Phép chiếu : (Projection)

Định nghĩa: Cho quan hệ r tập thuộc tính U={A1, , An} tập thuộc tính X U Phép chiếu quan hệ r tập thuộc tính X cho ta quan hệ, ký

(19)

Ta viết x(r) = {t[ X] | t  r }

Chú ý: Vì quan hệ định nghĩa tập nên quan hệ khơng thể có hai giống hồn tồn Do sau chiếu xảy tượng có trùng Vì ta xác định x(r), theo hai bước

Bước 1: Lấy từ r t[X]

Bước 2: Loại bỏ giống nhau, trừ lại số giống

Ví dụ 1: Cho xem thơng tin Hoten, QQ sinh viên quan hệ SINHVIEN(MaSV, Hoten, QQ, NS)

MaSV Hoten QQ NS

01 Lê Anh Nghệ An 1970

02 Trần Trung Hà nội 1975

03 Thu Hà Hải phòng 1972

04 Hữu Thắng Nghệ An 1975

05 Hồng Sơn Hà Nội 1972

06 Huỳnh Đức TP Hồ Chí Minh 1974

07 Sỹ Hùng Nghệ An 1971

Khi ta viết {Hoten, QQ}(SINHVIEN) kết ta quan hệ sau

Hoten QQ

Lê Anh Nghệ An

Trần Trung Hà nội

Thu Hà Hải phòng

Hữu Thắng Nghệ An

Hồng Sơn Hà Nội

Huỳnh Đức TP Hồ Chí Minh

Sỹ Hùng Nghệ An

(20)

Trả lời:  QQ (SINHVIEN) ta kết

QQ Nghệ An Hải phòng Hà Nội

TP Hồ Chí Minh

c Phép kết nối (Join)

Cho quan hệ r xác định tập thuộc tính {A1,A2,…,An} quan hệ s xác định tập thuộc tính {B1,B2,…,Bm}

Khái niệm xếp cạnh (phép ghép bộ): Cho u=(a1,a2,…,an) v= (b1,b2,…,bm) Xếp cạnh u v, ký hiệu (u,v) xác định sau: (u,v)=( a1,a2,…,an, b1,b2,…,bm)

Phép kết nối hai quan hệ thực chất phép ghép cặp hai quan hệ thoả mãn điều kiện chúng Điều kiện gọi điều kiện kết nối hay biểu thức kết nối

Biểu thức kết nối định nghĩa phép hội toán hạng, toán hạng phép so sánh đơn giản thuộc tính quan hệ r thuộc tính quan hệ s

Phép kết nối quan hệ r với quan hệ s với biểu thức kết nối F định nghĩa sau:

r s = { t| t=(u,v)  u  r  v  s  F(t)= đúng}

F

Tất nhiên cần giả thiết phép so sánh cặp thuộc tính thuộc hai quan hệ có nghĩa, hay giá trị thuộc tính so sánh với giá trị thuộc tính

(21)

ký hiệu * Phép kết nối tự nhiên hai quan hệ định nghĩa sau: r(U) * s(V) = { t, t=(u,v)[U V]| t[U] r  t[V] s }

Ví dụ 1: Cho hai quan hệ r s sau: r(

A

B C D) s(E K H)

a1 b1 1 d1 1 k1 h1

a2 b2 5 d2 2 k2 h2

a3 b3 3 d3 4 k3 h3

a4 b4 1 d4 3 k4 h4

Kết nối quan hệ r với s theo điều kiện C > E ta có r s

r s(A B C D E K H)

a2 b2 d2 k1 h1

a2 b2 d2 k2 h2

a2 b2 d2 k3 h3

a2 b2 d2 k4 h4

a3 b3 d3 k1 h1

a3 b3 d3 k2 h2

Ví dụ 2: Cho hai quan hệ r s sau: r(

A

B C D) s(C E F)

a1 b1 d1 e1 f1

a2 b2 d2 e2 f2

a3 b3 d3 e3 f3

a4 b4 d4 e4 f4

Kết nối tự nhiên hai quan hệ r s theo thuộc tính C ta có

r * s ( A B C D E F)

a1 b1 1 d1 e1 f1

a4 b4 1 d4 e1 f1

C > E

(22)

a3 b3 3 d3 e4 f4

Nhận xét: Phép kết nối quan hệ r quan hệ s thực theo bước sau:

- Lấy tích đề r s

- Thực phép chọn theo điều kiện F e Phép chia (Division)

Định nghĩa: Cho hai quan hệ r(U) s(V) với U  V s  Đặt X=U \

V Phép chia quan hệ r cho quan hệ s quan hệ, ký kiệu r  s, với tập

thuộc tính X, tập tất t cho với v  s t ghép với v thuộc

r Ta viết r  s ={ t|  v  s  (t,v)  r }

Ví dụ: Cho hai quan hệ r s sau: r(

A

B C D) s ( B C)

a1 b1 d1 b1

a1 b2 d1 b2

a2 b3 d3 b3

a4 b1 d2

a1 b3 d1

a2 b3 d3

a4 b3 d2

a4 b2 d2

a2 b1 d3

Phép chia quan hệ r cho s cho ta quan hệ r  s

( A

D)

a1 d1

a4 d2

Bài tập: Trang 66, Nguyên lý hệ CSDL- Nguyễn Kim Anh 1.3 Các phép toán quan hệ bổ sung

(23)

CSDL quan hệ thương mại hố có phép tốn bổ sung để thực hiện truy vấn

a Các hàm kết tập: SUM, AVERAGE, MAX, MIN, COUNT b Các phép gộp nhóm

Có kiểu yêu cầu khác nữât hay gặp mà đại số quan hệ Đó yêu cầu nhóm quan hệ theo giá trị số thuộc tính chúng sau áp dụng hàm kết tập nhóm cách độc lập

Ví dụ Nhóm quan hệ nhân viên theo MA_PHONG, sau đưa thơng tin: phịng có nhân viên, trung bình lương nhân viên phịng,…

Có thể định nghĩa phép gộp nhóm sau:

<các thuộc tính sở để gộp nhóm> f <danh sách hàm kết tập> (r) Trong f ký hiệu phép gộp nhóm, <các thuộc tính sở để gộp nhóm> danh sach thuộc tính quan hệ r, <danh sách hàm kết tập> danh sách cặp(<hàm> <thuộc tính>) Kết phép gộp nhóm quan hệ Ngồi thuộc tính sở để gộp nhóm, quan hệ kết cịn có thuộc tính tương ứng với phần tử danh sách hàm kết tập Ví dụ:

MA_PHONG f count MANV, Average LUONG (NHAN_VIEN)

Quan hệ kết gồm thuộc tính MA_PHONG,COUNT_MANV, AVERAGE_LUONG

Nếu danh sách thuộc tính gộp nhóm rỗng hàm kết tập áp dụng cho giá trị thuộc tính tất quan hệ Khi quan hệ kết có bộ.Ví dụ:

f count MANV, Average LUONG (NHAN_VIEN)

quan hệ kết gồm thuộc tính COUNT_MANV, AVERAGE_LUONG

COUNT_MANV AVERAGE_LUONG

10 100 000

(24)

II Ngơn ngữ tân từ ( Các phép tính quan hệ )

Đại số quan hệ cung cấp tập phép toán ta sử dụng chúng để cho hệ thống biết làm để từ quan hệ có xây dựng nên quan hệ ta muốn có Trong đó, phép tính quan hệ lại cung cấp ký hiệu để phát biểu định nghĩa quan hệ ta muốn có theo quan hệ có Ngơn ngữ SQL (giới thiệu sau) xây dựng dự khíâ cạch phép tính quan hệ Có hai cách áp dụng phép tính tân từ vào ngơn ngữ truy vấn sở liệu quan hệ

2.1 Ngôn ngữ tân từ ( thường gọi vị từ) biến bộ

Ngôn ngữ tân từ biến dựa đặc tả biến Miền trị của biến quan hệ cụ thể CSDL, nói cách khác giá trị mag biến nhận quan hệ

a) Định nghĩa hình thức: Một câu hỏi ngơn ngữ tân từ có dạng {t| ĐK(t)} Với t biến ĐK(t) biểu thức điều kiện có chứa biến t Kết tra cho câu hỏi tập tất t làm cho ĐK(t) thoả

Ví dụ: Cho biết danh sách nhân viên có lương 500 000 {t|NHANVIEN(t) and t.LUONG>1 500 00}

Mỗi kết trả với tất thuộc tính, cần đưa số thuộc tính liệt kê chúng ra:

{t.HoTen,T.QueQuan, T.namSinh | NHANVIEN(t) and t.LUONG>1 500 00} b) Biểu thức phép tính biến

Trong định nghĩa trên, ĐK(t) gọi cơng thức phép tính biến Cơng thức phép tính biến tạo nên từ công thức nguyên tố Mỗi công thức nguyên tố thuộc dạng sau:

- r(t): công thức nguyên tố, r quan hệ,t biến Nói cách khác phát biểu tr

- ti.A  tj.B với  phép so sánh =, ≠,>, ≥ , <, ≤

- ti.A  c, c  ti.B c giá trị

(25)

L1: Mỗi công thức nguyên tố công thức

L2: Nếu F1, F2 cơng thức (F1  F2), (F1  F2 ), F1, F2, F1

F2 công thức

L3: Nếu F công thức,  tr (F(t)),  t r (F(t)) cơng thức

c Các ví dụ biểu diễn câu hỏi ngôn ngữ tân từ biến 2.2 Ngơn ngữ tân từ biến miền

III NGƠN NGỮ SQL (STRUCTURED QUERY LANGUAGE )

Giới thiệu : SQL (Structured Query Language): ngôn ngữ truy vấn IBM phát triển vào thập niên 70, ANSI công nhận phát triển thành chuẩn quốc tế (86)

- Khởi thuỷ gọi SEQUEL (Structured English QUEry Language) Bản cài đặt đầu tiên:SYSTEM R IBM (DB/2) vào 1978

- Trở thành chuẩn ANSI ISO vào 1986 (SQL-86) - ANSI/ISO chỉnh lý vào 1989 (SQL-89) - ANSI/ISO chỉnh lý lần vào 1992 (SQL-92)

- Chuẩn (SQL-99) SQL cài đặt hầu hết hệ qủan trị CSDL, cho phép :

+ Truy vấn CSDL + Cập nhật CSDL

+ Tạo, sửa, huỹ đối tượng CSDL :table, indexes, views,… + Kiểm soát việc truy xuất CSDL đối tượng CSDL

I - Truy vấn liệu với câu lệnh Select: Cú pháp:

SELECT [DISTINCT|ALL] {*|[<bt cột> [ as <tên mới>],…} FROM <Danh sách bảng>

[WHERE <Điều kiện lọc bộ> ]

(26)

Công dụng: Tạo quan hệ từ quan hệ ghi sau từ khóa From Trong :

1 Các tham số sau SELECT

- DISTINCT|ALL: Chỉ giữ lại trùng lấy tất trùng

- *: tất cột tất bảng tham gia truy vấn (sau FROM) Ký hiệu S.* cột bảng S

- bt cột: Tên thuộc tính quan hệ tham gia: [table].Field <Biểu thức cột > As <tên mới>

+ Toán hạng bt cột: Hằng (số, text,ngày tháng…) tên cột, tên hàm(SUM (cột số), AVG(cột số),…)

+ Toán tử số học như: ^, *, /, \ (chia nguyên) , MOD, +, - , phép so sánh <,<=,>,>=,=,<>, phép toán logic AND, OR, NOT, phép toán phạm vi IN, BETWEEN, LIKE

- as <tên mới>: tên cột xuát quan hệ kết truy vấn, khơng có as dùng tên cột bt cột

2 Các tham số sau FROM

3 Các tham số sau WHERE : <điều kiện chọn bộ> dùng toán tử phép so sánh, phép toán logic, phép toán phạm vi IN, BETWEEN, LIKE

4 GROUP BY: Dùng để gộp nhóm giá trị tương ứng cột HAVING <điều kiện lọc nhóm>: Chỉ chọn nhóm thoả mãn điều kiện lọc nhóm ( nghĩa dùng GROUP BY )

6 Order By Field1 [ACS|DESC],

Sắp thứ tự theo thứ tăng hay giãm giá trị Field1, Field2,

Ví dụ: Xét CSDL sau

HH(MSHH, TenHH, DVT, SoTon, ĐG) KH(MSKH, TenKH, DC, DT, Fax) DDH(SoDDH, NgayLap, MSKH)

(27)

Ví dụ 1: Hiện danh sách mặt hàng gồm thông tin: MSHH, TenHH, SoTon:

SELECT MSHH, TenHHH, SoTon FROM HangHoa;

Ví dụ 2: Tính tiền bán mặt hàng CTDDH:

SELECT SoDDH, MSHH, SL, Dg, GiamGia, SL*DG*(1-GiamGia)*100 As ThanhTien

FROM CTDDH;

Ví dụ 3: Tính tiền bán mặt hàng CTDDH thứ tự theo SoDDH, Tiền bán :

SELECT SoDDH, MSHH, SL, Dg, GiamGia, SL*DG*(1-GiamGia)*100 As ThanhTien

FROM CTDDH

Order By SoDDD, ThanhTien Desc;

4- Các ví dụ dùng với phát biểu Where <Điều kiện lọc bộ> - So sánh: =, <>, >, <, >=, <=.

Ví dụ 4: Hiện danh sách mặt hàng có số lượng tồn kho < 10 gồm thông tin: MSHH, TenHHH, SoTon:

SELECT MSHH, TenHHH, SoTon FROM HangHoa

Where SoTon < 10; - Logic: And, Or, Not.

Ví dụ 5: Liệt kê DDH lập tháng 10 năm 1999: DDH(SoDDH, NgayLap, MSKH)

Select * From DDH

Where NgayLap>=#1/10/1999# And NgayLap < #30/10/1999#;

(28)

Select SoDDH,TenHH,SL,DG*(1-GiamGia)*100 As GiaBan ,GiaBan* SL As ThanhTien

From CTDH, DDH

Where CTDDH.SoDDH = DDH.SoDDH AND DDH.SoDDH = "10001";

- Đối sánh mẫu Like: <biểu thức> Like "Mẫu liệu"

Chức năng: So sánh giá trị biểu thức với "Mẫu dl" Sử dụng ký tự đại diện *, ?, # (số)

Ví dụ 7: Chọn danh sách khách hàng họ "Nguyễn" Select *

From KH

Where TenKH Like "Nguyễn *";

- Thuộc miền giá trị:

<biểu thức> [Not] Between Value1 And Value2

Chức năng: So sánh giá trị biểu thức thuộc miền giá trị [Value1, Value2] Ví dụ 8: Danh sách mặt hàng có đơn giá từ 20 đến 50

Select * From HH

Where DG Between 20 And 50;

- Thuộc tập giá trị: <biểu thức> [Not] In (Value Set)

Chức năng: Kiểm tra giá trị biểu thức thuộc tập giá trị cho trước Ví dụ 9: Danh sách khách hàng có mã số 3, 6,

Select * From KH

Where MSKH In (3,6,9);

Ví dụ 10: Danh sách khách hàng đặt hàng ngày 1/5/2000 Select Distinct *

From KH

(29)

Where NgayLap = #1/5/2000#);

Ví dụ 11: Danh sách mặt hàng không bán Select *

From HH

Where MSHH Not In (Select Distinct MSHH From CTDH);

- Not Exists (Subquery): Chọn có giá trị field thỏa điều kiện SubQuery

Ví dụ 12: Danh sách mặt hàng không bán Select * From HH As A

Where Not Exists (Select * From CTDH As B Where A.MsHH = B.MsHH); - Biểuthức <comparison> ALL (subquery): Kiểm tra giá trị thỏa phép so sánh với tất giá trị subquery

Ví dụ 13: In SoDDH SL mua mặt hàng số DDH mua mặt hàng nhiều

Select A.SoDDH, A.SL From CTDH As A Where A.MsHH=3 And A.SL >= ALL (Select B.SL From CTHH As B Where B.MSHH = 3);

- Biểuthức <comparison> ANY | SOME (subquery): Kiểm tra giá trị thỏa phép so sánh với giá trị tạo subquery

5- Phát biểu Group By <DS thuộc tính> Having <điều kiện nhóm>: Dùng để tổng hợp, thống kê liệu theo nhóm dựa giá trị thuộc tính <DS thuộc tính> Trong đó, phát biểu Having dùng chọn nhóm theo điều kiện

Các hàm tổng hợp theo nhóm:

Sum(Biểu thức):Tính tổng giá trị biểu thức số thuộc nhóm Max(Biểu thức): Chọn giá trị lớn thuộc nhóm

Min(Biểu thức): Chọn giá trị thấp thuộc nhóm

Avg(Biểu thức): Tính trung bình cộng giá trị biểu thức thuộc nhóm Count(* | Biểu thức | Distinct Biểu thức): Đếm nhóm

(30)

Count(biểu thức): Chỉ đếm mà có giá trị biểu thức khác NULL Count(Distinct Biểu thức): Chỉ đếm mà có giá trị biểu thức khác khác NULL

Ví dụ 1: Đếm tổng số DDH khách hàng: Select MSKH, Count(*)

Form DDH

Group By MSKH;

Ví dụ 2: Liệt kê danh sách DDH số tiền DDH: Select SoDDH, Sum(DG*SL)

From CTDH Group By SoDDH;

Ví dụ 3: Liệt kê danh sách DDH số tiền DDH DDH có tổng trị giá > 5000

Select SoDDH, Sum(DG*SL) From CTDH

Group By SoDDH

Having Sum(DG*SL)>5000; 6-Thứ tự dịch lệnh Select:

Form > Where > Group By > Having > Select > Order

Ví dụ : Danh sách khách hàng có tổng trị giá mua 10 triệu Select KH.MSKH, TenKH, Sum(DG*SL) As TongTien

From KH, CTDH, DDH

Where KH.MsHH = DDH.MSKH And DDH.SoDDH=CTDH.SoDDH Group By DDH.MSKH Having Sum(DG*SL)>100000 Order By TongTien; II- Các Lệnh Định Nghiã Dữ Liệu:

a) Lệnh Tạo Cấu Trúc Quan Hệ Mới: Lệnh CREATE TABLE

(31)

-Các ràng buộc thuộc tính (NULL, NOT NULL, khố chính, khố ngoại, …)

Cú pháp: CREATE TABLE <tên Quan Hệ > (field1 type [(size)] [NOT NULL] [index1]

[, field2 type [(size)] [NOT NULL] [index2] [, ]] [, CONSTRAINT multifieldindex [, ]])

- Các kiểu liệu sử dụng :

Char(n) Kiểu chuỗi gồm n ký tự, mặc định

Text(n)

Integer Số nguyên byte Long

Smallint Số nguyên byte Short

Decimal(n,t) Không hỗ

trợ

Real số thực byte Single

Float, Double số thực byte Double

Date, Time Ngay DateTime

Boolean Bit YesNo

Ví dụ: Tạo quan hệ Nhanvien

Create Table NV (msnv Char(5), HoTen Char(30), NS Date, Nu Boolean, HsLg Float);

- Các biểu thức ràng buộc:

1 Ràng buộc liên quan đến thuộc tính:

Access: CONSTRAINT name {PRIMARY KEY | UNIQUE |

REFERENCES foreigntable [(foreignfield1, foreignfield2)]}

1 Not Null : Không thể rỗng

(32)

3 REFERENCES foreigntable [(foreignfield)]: Ràng buộc toàn vẹn tham chiếu, tên cột tùy chọn trùng tên Field

4 Check (điều kiện) : Ràng buộc miền giá trị Điều kiện biểu thức danh sách giá trị

Ví dụ: Create Table NV (msnv Char(5) Primary Key, HoTen Char(30) Not Null, NS Date, Nu Boolean, HsLg Float);

2 Ràng buộc quan hệ: Liên quan đến nhiều thuộc tính I Primary Key(f1, ,fn):

II Unique (f1, ,fn)

III Foreign Key(f1, fn) References tenQH2 [(fg1, ,fgn)] IV Check (điềukiện)

Ví dụ: Create Table NV (msnv Char(5) Not Null, HoTen Char(30) Not Null, NS Date, Nu Boolean, HsLg Float, Primary Key(msnv));

Access: CONSTRAINT name {PRIMARY KEY (primary1[, primary2 [, ]]) |

UNIQUE (unique1[, unique2 [, ]]) |

FOREIGN KEY (ref1[, ref2 [, .]]) REFERENCES foreigntable [(foreignfield1 [, foreignfield2 [, ]])]}

Ví dụ: (Access)

Create Table NV (msnv Char(5) Not Null Constraint rb1 Primary Key(msnv), HoTen Char(30) Not Null, NS Date, Nu Boolean, HsLg Float, MsPB Char(5) Not Null Constraint References PhBan (MP));

Hay viết:

Create Table NV (msnv Char(5) Not Null, HoTen Char(30) Not Null, NS Date, Nu Boolean, HsLg Float, MsPB Char(5) Not Null, Constraint RB1 Primary Key(msnv), Constraint RB2 Foreign Key (MsPB) References PhBan (MP));

a Lệnh Xóa Một Quan Hệ: DROP TABLE TênQH;

(33)

VD: DROP TABLE THAN_NHAN

Chú ý: xoá bảng khoá ngoại tham chiếu tới b Lệnh Thay Đổi Cấu Trúc Của Quan Hệ:

Sử dụng để sửa đổi cấu trúc ràng buộc bảng, Thêm cột, Mở rộng cột Bổ sung, thay đổi loại bỏ ràng buộc tòan vẹn

Cú pháp:

a) Thêm thuộc tính:

ALTER TABLE TenQH ADD COLUMN fieldname type[(size)] [NOT NULL] [CONSTRAINT <index>];

b) Xóa thuộc tính:

ALTER TABLE TênQH DROP COLUMN fieldname;

Chú ý: Lệnh không hợp lệ thuộc tính xóa thuộc tính khóa III- Các Lệnh cập nhật liệu:

Thêm Bộ Mới Vào Bảng:

cp1: INSERT INTO TenQH VALUES (value1[, value2[, ]) Ví dụ: Thêm nhân viên

INSERT INTO KH VALUES (5, 'Anh', #1/5/78#)

cp2: Thêm với giá trị không đầy đủ (Các Field không liệt kê có giá trị NULL)

INSERT INTO TenQH [(field1[, field2[, ]])] VALUES (value1[, value2[, ]);

Ví dụ: Thêm nhân viên biết Msnv, Tên, Giới tính INSERT INTO KH (Msnv, Ten, GT) VALUES (5, 'Anh', 'Nam') cp3: Thêm vào QH kết câu lệnh Select INSERT INTO TenQH [(field1[, field2[, ]])]

SELECT [source.]field1[, field2[, ] FROM tableexpression ;

Ví dụ: Chèn dòng dòng đặt hàng DDH = 12 vào bảng CTGiaoHang

(34)

WHERE SoDDH = 12; Xóa Bộ quan hệ:

DELETE [tênQH.*] FROM TênQH [WHERE <DK>]; Ví dụ: Xóa DDH trước ngày 1/1/2000

DELETE FROM DDH WHERE NgayLHD <= #1/1/2000#; Cập nhật giá trị bộ:

UPDATE tênQH SET <Field1>=<BT1>,<Field2>=<BT2> WHERE <ĐiềuKiện>;

Ví dụ: Cập nhật đơn giá sản phẩm Bánh mì, Bơ lên 5%

UPDATE HH SET DonGia = [DonGia]*1.05 WHERE TenHH like “*Bánh mì*” or TenHH like “*Bơ*”

Hội quan hệ:

[TABLE] query1 UNION [ALL] [TABLE] query2 [UNION [ALL] [TABLE] queryn [ ]]

Ví dụ: Tạo quan hệ chứa danh sách DDH tháng 1/99 tháng 4/99 Select *

From DDH

Where Ngaydat between #1/1/99# and #31/1/99# Union

Select * From DDH

Where Ngaydat between #1/4/99# and #30/4/99#

IV-Hướng dẫn đề nghị cách gỉai số câu truy vấn : Gỉa sử cho CSDL “Địa Lý Việt Nam” có cấu trúc sau:

Tinh_TP(T_TP, DT, DS, Ten_T) Mien(T_TP,MN)

BG(Nuoc, T_TP)

(35)

Hãy viết câu trả lời câu hỏi sau ngôn ngữ SQL:

1) Cho biết dân số tên tỉnh tỉnh thành phố có diện tích 7000 km2

2) Cho biết dân số với tên tỉnh tỉnh miền Bắc 3) Cho biết mã nước biên giới tỉnh miền Nam 4) Cho biết diện tích trung bình tỉnh

5) Cho biết mật độ dân cư tên tỉnh tất tỉnh

6) Cho biết tên tỉnh có diện tích có diện tích lớn tất tỉnh láng giềng

Lời gỉai đề nghị :

Câu 1: Select Ten_T, DS From Tinh_TP Where DT>=7000 Câu 2: Select Ten_T, DS From Tinh_TP, Mien

Where Mien.T_TP= Tinh_TP.T_TP And MN="Bắc"; Câu 3: Select Nuoc From BG, Mien

Where Mien.T_TP= BG.T_TP And MN="Nam" Câu 4: Select AVG(DT) From Tinh_TP;

Câu 5: Select Ten_T, DS / DT As MDDC From Tinh_TP; Câu 6:

Cách 1: Thực bước

- Tạo Query liệt kê T_TP diện tích lớn tỉnh láng giềng nó: (Save as query : DTLGMax)

SELECT LG.T_TPLG, Max(Tinh_TP.DT) AS DTmax

FROM Tinh_TP INNER JOIN LG ON Tinh_TP.T_TP = LG.T_TP GROUP BY LG.T_TP_LG;

- Tạo Query tỉnh có diện tích lớn diện tích tỉnh láng giềng

SELECT Tinh_TP.TenTinh, Tinh_TP.DT, DTLGMax.DTmax

(36)

WHERE (((Tinh_TP.DT)>=[DTMax])); Cách 2: Sử dụng phép toán >= ALL

SELECT a.TenTinh, a.DT FROM Tinh_TP AS a

WHERE (((a.DT)>=All (Select b.DT From Tinh_TP b, LG c Where b.T_T = c.T_TP_LG And a.T_TP=c.T_TP)));

Bài Tập chương : Cho lược đồ sở liệu sau: 1- CLB( MsCLB , DcCLB)

Tân từ: Mỗi CLB có mã số (MSCLB) để phân biệt với CLB khác, địa CLB (DcCLB)

2- DOI(MsCLB, MsDoi, MsLT, Phai)

Tân từ: Mỗi đội có mã số đội (MsDoi) để phân biệt với đội khác Câu lạc (MsCLB); Mỗi đội thuộc lứa tuổi (MsLT) phái (nam hay nữ) Tất vận động viên đội phải có lứa tuổi đội thấp lứa tuổi đội

3- TD(MsTD, MsPh, GioTD, NgayTD)

Tân từ: Mỗi trận đấu có mã số (mstd) để phân biệt với trận đấu khác, diễn phòng, vào ngày (NgayTD) bắt đầu (GioTD) quy định

4- DOI_TD(MsTD, MsDoi, MsCLB)

Tân từ: Mỗi trận đấu gặp gỡ đội Cả đội phải thuộc lứa tuổi phái

5- PHÒNG(MsPh, DCPh, SốSân)

Tân từ: Mỗi phịng có mã số (MSPh) để phân biệt với phịng khác, có địa số lượng sân (SốSân) định, nơi diễn trận đấu

6- LỨA_TUỔI(MsLT, TGTĐ_LT)

Tân từ: Mỗi lứa tuổi phân biệt mã lứa tuổi (MsLT) có thời gian trận đấu dành cho lứa tuổi

(37)

Tân từ: Mỗi vận động viên có mã số (MsVDV) dùng để phân biệt với VDV khác, có tên, địa chỉ, thuộc CLB, phái lứa tuổi

8- VĐV_ĐỘI(MsVDV, MsDoi)

Tân từ: Mỗi VĐV đăng ký chơi đội Họ đăng ký vào nhiều đội khác

Yêu cầu:Thực câu hỏi sau ngôn ngữ SQL a) Danh sách tên VĐV CLB có mã số 45 b) Tên tất VĐV đội số CLB mã số 27 c) Số lượng trận đấu LT1 diễn ngày 16/06/90

d) Mã số CLB mã số đội có quy tụ VĐV thuộc lứa tuổi nhỏ lứa tuổi đội

e) Địa mã số CLB có hay nhiều đội tham dự trận đấu diễn phòng mã số 17 ngày 06/12/90

f) Danh sách trận đấu bắt đầu kết thúc khoảng thời gian từ 13g 16g diễn sân phòng mã số 49 ngày 05/08/90

g) Địa tên vận động viên chơi chơi đối lại đội mã số CLB mã số 50

h) Số tối đa trận đấu bắt đầu đồng thời ngày 06/12/90 Cho sở liệu gồm quan hệ:

MH(MãMH, TênMH, ĐVT, ĐGiá) - Các mặt hàng

NCC(MãNCC, TênNCC, ĐCNCC, ĐTNCC) - Các nhà cung cấp

MH_NCC(MãNCC, MãMH) - Các mặt hàng NCC cung cấp đó:

MãNCC : Mã số nhà cung cấp MãMH: Mã số mặt hàng

ĐVT : Đơn vị tính ĐGiá : Đơn giá

(38)

ĐTNCC : Điện thoại nhà cung cấp TênMH : Tên nhà cung cấp

Hãy trả lời câu hỏi sau biểu thức đại số quan hệ, ngôn ngữ đại số quan hệ vằ ngơn ngữ SQL (nếu có thể):

a) Cho xem mã số nhà cung cấp cung cấp mặt hàng b) Cho xem mã số nhà cung cấp không cung cấp mặt hàng c) Cho xem mã số, tên, điện thoại nhà cung cấp cung cấp mặt hàng có mã số 10

7 Cho sở liệu gồm quan hệ (bảng) sau: TACGIA(MãTG, TênTG, Quêquán)

NXB(MãNXB, TênNXB, Địachỉ, Điệnthoại)

SACH(MãS, TênS, NămXB, Slượng, MãTG, MãNXB) a Tạo bảng ngôn ngữ SQL

b Trả lời câu hỏi sau ngôn ngữ đại số quan hệ: + Cho biết tên sách xuất năm 1998

+ Cho biết mã, tên sách xuất năm 1998 có số lượng xuất 1000

+ Cho biết tên sách xuất năm 1998 "Nhà xuất Giáo dục"

+ Tìm tên tác giả có sách xuất "Nhà xuất Giáo dục" + Xoá tác giả "Nguyễn Văn An" sở liệu

c Trả lời câu hỏi câu b) ngôn ngữ SQL Cho sở liệu gồm quan hệ sau:

TRUONG(MãTR, TênTR, HiệuTR, Địachỉ) KHOA (MãTR, MãKH, TênKH, SốSV)

SINHVIEN(MãTR, MãKH, MãSV, TênSV, Địachỉ)

Trả lời câu hỏi sau ngôn ngữ đại số quan hệ ngơn ngữ SQL (nếu có thể)

a Cho biết tên trường đại học có khoa "CNTT"

(39)(40)

Chương IV

LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ

Thiết kế sở liệu phận hệ thống thông tin quản lý Đây hoạt động phức tạp, có tầm quan trọng đặc biệt hệ thông tin quản lý Việc thiết kế sở liệu định trực tiếp đến hiệu chương trình, phát triển bảo trì hệ thống

I Q TRÌNH THIẾT KẾ CƠ SỞ DỮ LIỆU

Quá trinh thiết kế CSDL thường qua bước sau Bước 1: Tập hợp yêu cầu phân tích

Bước 2: Thiết kế khái niệm Ở bước người thiết kế lựa chọn mơ hình liệu, dùng khái niệm mơ hình liệu chọn để chuyển đặc tả yêu cầu người dùng sang thành lược đồ khái niệm, bao gồm mô tả chi tiết kiểu liệu, liên kết, ràng buộc, đặc tả yêu cầu chức

Bước 3: Thiết kế Logic, bước người thiết kế cài đặt CSDL hệ quản trị CSDL

Bước 4: Thiết kế vật lý, bao gồm cấu trúc lưu trữ bên trongvaf kiểu tổ chức tệp cho CSDL

II DƯ THỪA DỮ LIỆU VÀ CÁC DỊ THƯỜNG CẬP NHẬT

Mục đích thiết kế CSDL quan hệ nhóm thuộc tính vào bảng cho giảm nhiều dư thừa liệu Đối với quan hệ dư thừa liệu, có số vấn đề nảy sinh gọi dị thường cập nhật.:

1 Dị thường thêm Dị thường xóa Dị thường sửa

III PHỤ THUỘC HÀM

Phụ thuộc hàm (functional dependency) công cụ dùng để biểu diễn cách hình thức ràng buộc tồn vẹn

Ràng buộc toàn vẹn điều kiện mà thuộc tính hay phải thỏa mãn thời điểm Có thể có loại ràng buộc toàn vẹn sau:

(41)

- Ràng buộc toàn vẹn tham chiếu: mối liên kết quan hệ thơng qua khóa ngồi

- Ràng buộc tồn vẹn ngữ nghĩa: thuộc tính phải thỏa mãn điều kiện đó, gồm RBRV bề miền giá trị, RBTV liên thuộc tính, RBTV liên

Phương pháp biểu diễn có nhiều ưu điểm, công cụ quan trọng, gắn chặt với lý thuyết thiết kế sở liệu Phụ thuộc hàm ứng dụng việc giải tốn tìm khóa, tìm phủ tối thiểu chuẩn hóa sở liệu

Cho quan hệ phanCong sau:

phanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)

Chiến 116 10/8 1:25p

Thắng 281 8/8 5:50a

Bạch 301 12/8 6:35p

Đằng 412 15/8 1:25p

Quan hệ phanCong diễn tả phi công lái máy bay máy bay khởi hành vào thời gian Không phải phối hợp phi công, máy bay ngày khởi hành chấp nhận mà chúng có điều kiện ràng buộc qui định sau:

+ Mỗi máy bay có khởi hành

+ Nếu biết phi cơng, biết ngày khởi hành biết máy bay phi công lái

+ Nếu biết máy bay, biết ngày khởi hành biết phi công lái chuyến bay Các ràng buộc ví dụ phụ thuộc hàm phát biểu lại sau:

+ MAYBAY xác định GIOKH

+ {PHICONG,NGAYKH,GIOKH} xác định MABAY + {MAYBAY,NGAYKH} xác định PHICONG

hay

+ GIOKH phụ thuộc hàm vào MAYBAY

(42)

+ PHICONG phụ thuộc hàm vào {MAYBAY,NGAYKH} ký hiệu sau:

+ {MAYBAY}→ GIOKH

+ {PHICONG,NGAYKH,GIOKH}→ MABAY + {MAYBAY,NGAYKH}→ PHICONG

Trong ký hiệu ta ký hiệu MAYBAY thay cho {MAYBAY} Một cách tổng quát:

1 Định nghĩa phụ thuộc hàm

Cho U tập thuộc tính, R(U) lược đồ quan hệ U Giả sử X,Y 

U Khi Y gọi phụ thuộc hàm vào X lược đồ R(U), ký hiệu X → Y, với quan hệ r lược đồ quan hệ R(U), với hai t1,t2  r,

mà t1[X] = t2[X] t1[Y] = t2[Y]) Khi ta nói quan hệ r thoả phụ thuộc hàm X  Y

Nếu Y phụ thuộc hàm vào X ta nói X xác định hàm Y

Cho tập hợp F phụ thuộc hàm lược đồ quan hệ R(U) Ta nói X 

Y suy diễn logic từ F ký hiệu F|= (X  Y) với quan hệ r

R(U), r thoả F ( r thoả phụ thuộc hàm F) r thoả X  Y

Ta gọi bao đóng tập hợp phụ thuộc hàm F tập phụ thuộc hàm suy diễn logic từ F ký hiệu F* F*={ X  Y| F|= (X  Y)}

1.2 Định nghĩa khoá

Cho lược đồ quan hệ R(U) F tập phụ thuộc hàm xác định U K U

Ta nói K khố R nếu:

1/ K  U F*, nghĩa với quan hệ r lược đồ R, hai

r K nhau.(r R) ( t1,t2 r) t1[K]=t2[k]  t1=t2)

2/ Với  K’ tập thực K, K'  K K'  U  F*

+ K gọi siêu khoá lược đồ R K  U

Thuộc tính A gọi thuộc tính khóa A K với K khóa

của Q Ngược lại A gọi thuộc tính khơng khóa

(43)

Có thể thấy PTH dạng phổ biến biểu diễn dư thừa liệu Mục đích thiết kế CSDL loại bỏ dư thừa gây tượng dị thường cập nhật Việc tính F* từ F, xem xét phụ thuộc hàm (PTH) X  Y có

suy diễn logic từ F hay không thường đặt thiết kế CSDL Một tập quy tắc suy diễn Armstrong cho phép khẳng định PTH có thuộc F* hay không mà kiểm tả liệu cụ thể

Cho lược đồ quan hệ R(U) với U={A1, , An} F tập PTH gồm thuộc tính U X, Y, Z  U, ta sử dụng XY để ký hiệu cho X Y

Khi ta có tiên đề sau:

A1) Tính phản xạ: Nếu Y  X X  Y

A2) Tính tăng trưởng: Nếu X  Y Z  U XZ  YZ

A3) Tính bắc cầu: Nếu X  Y Y  Z X  Z

Ví dụ: Cho F={AB  C,C  A } cần chứng minh BC  ABC

Chúng ta ký hiệu trình suy diễn nhờ hệ quy tắc suy diễn |- Arm Ký hiệu F+ ={ f | F|- A rm f} Ta có F+ F*

Định lý: Hệ tiên đề Armstrong đầy đủ. 1.4 Các luật suy diễn

Từ hệ tiên đề Armstrong ta suy số quy tắc (luật) suy diễn sau đây: L1 Luật hợp: X  Y X  Z X  YZ

L2 Luật tựa bắc cầu: Nếu X  Y WY  Z XW  Z

L3 Luật tách: Nếu X  Y ZY X  Z

Hệ Nếu X  Y X  A với A  Y

1.5 Bao đóng tập thuộc tính

Cho lược đồ quan hệ R(U), X  U tập phụ thuộc hàm F xác định U

Ta gọi bao đóng tập thuộc tính X tập phụ thuộc hàm F, ký hiệu X+ F, tập thuộc tính A cho X A suy diễn từ F nhờ quy tắc suy diễn

Armstrong X+

F={AU| (XA) F+}

Bổ đề: X  Y suy diễn từ hệ tiên đề Armstrong Y  X+:

(X  Y)  F+  Y  X+

(44)

Vào: Lược đồ quan hệ R(U), tập PTH F, tập thuộc tính XU

Ra: X+, bao đóng x F: X+ ={AU | X A F+} Phương pháp:

Lần lượt tính tập X0, X1, X2, theo bước sau: Bước 0: Đặt X (0) = X

Bước i: Tính Xi từ Xi-1, cụ thể:

X(i) =X(i-1)  {A} tồn (YZ)  F mà Y  X(i-1) với A  Z A  X(i-1) Xi= X(i-1) ngược lại

Vì X=X0 …Xi ….U U hữu hạn tồn chỉ số i mà Xi =Xi+1, đặt X+ = Xi

Ví dụ: Cho tập phụ thuộc hàm sau:

F={ AB  C, C A, BC D, ACD  B, D  EG, BE  C, CG  BD, CE  AG} X=BD Hãy tính X+F

1.7 Thuật tốn kiểm tra F|= X Y ? (Bài tốn thành viên)

Nói X  Y thành viên F X  Y  F+

Một vấn đề quan trọng nghiên cứu lý thuyết CSDL cho trước tập phụ thuộc hàm F phụ thuộc hàm X → Y, làm để biết X → Y có thuộc F+ hay khơng tốn gọi toán thành viên Để trả lời câu hỏi ta tính F+ xác định xem X → Y có thuộc F+ hay khơng Việc tính F+ cơng việc địi hỏi thời gian cơng sức Tuy nhiên, thay tính F+ dùng thuật tốn sau để xác định X → Y có thành viên F hay không?

Vào: Lược đồ quan hệ R(U), tập phụ thuộc hàm F, tập X, Y U

Ra: X  Y ?

Cách kiểm tra: i) Tính X+

ii) Kiểm tra Y  X+ Nếu thoả mãn X  Y

Định lý: Cho R(U), F tập PTH U, X U X siêu khóa U

(45)

Áp dụng định ta kiểm tra tập có phải siêu khóa hay khơng

1.8 Thuật tốn tìm khố lược đồ quan hệ

Khi thiết kế hệ thống thơng tin, việc lập lược đồ sở liệu đạt đến tiêu chuẩn việc làm quan trọng Việc xác định chuẩn cho lược đồ quan hệ có liên quan mật thiết với thuật tốn tìm khóa

Thuật tốn 1:Tìm khóa lược đồ quan hệ R(U) Dựa vào định nghĩa khóa lược đồ quan hệ

Bước 1: gán K = U

Bước 2: A thuộc tính K, đặt K’ = K − A Nếu K’+= U gán K = K' thực lại bước 2

Nếu muốn tìm khóa khác (nếu có) lược đồ quan hệ, ta thay đổi thứ tự loại bỏ phần tử K

Ví dụ :R(A,B,C,D,E,G,H,I)

F={AC→ B;BI → ACD;ABC→D;H→I;ACE→BCG;CG→AE} Tìm K

Lần lượt loại thuộc tính K theo thứ tự sau: A, B, D, E, I

Ta khóa lược đồ quan hệ {C,G,H}

(Lưu ý thuật toán nên sử dụng trường hợp cần tìm khóa)

Thuật tốn 2: Tìm khố lược đồ quan hệ R(U,F)

Vào: Lược đồ quan hệ R(U,F); F={Ti Pi |Ti,Pi  U, Ti Pi= , i=1,2,…,p}

T=Ti, P= Pj

Ra: Một khoá K R Phương pháp:

Đặt P=Pj

Bước 1: K=U\P

(46)

Bước 4: Với Ai  (T  P) thực hiện:

+ K=K\{Ai} + Nếu K+

U K=K  {Ai}

Bước 5: Kết luận K khố

2 Thuật tốn tìm tất khóa

Cho lược đồ quan hệ R(U), tập PTH F 2.1 Thuật toán bản

Bước 1: Xác định tất tập khác rỗng U Kết tìm giả sử tập thuộc tính X1, X2, …,X2n-1

Bước 2: Tìm bao đóng Xi

Bước 3: Siêu khóa Xi có bao đóng U Giả sử ta có siêu khóa S = {S1,S2,…,Sm}

Bước 4: Xây dựng tập chứa tất khóa U từ tập S cách xét Si, Sj S (i ≠ j), Si  Sj ta loại Sj (i,j=1 n), kết cịn lại S

chính tập tất khóa cần tìm

Ví dụ 8: Tìm tất khóa lược đồ quan hệ tập phụ thuộc hàm sau:

Q(C,S,Z); F = {f1:CS → Z; f2:Z → C}

Xi Xi+ Siêu khóa

C C

S S

CS CSZ CS CS

Z ZC

CZ CZ

SZ SZC SZ SZ

CSZ CSZ CSZ

Vậy lược đồ quan hệ Q có hai khóa là: {C,S} {S,Z}

(47)

thu hẹp không gian duyệt Chúng ta nghiên cứu thuật toán cải tiến theo hướng giảm số thuộc tính tập cần duyệt tất tập

2.2 Thuật toán cải tiến

Trước vào thuật toán cải tiến, ta cần quan tâm số khái niệm sau: + Tập thuộc tính nguồn (TN) chứa tất thuộc tính có xuất vế trái khơng xuất vế phải phụ thuộc hàm thuộc tính khơng xuất vế trái lẫn vế phải phụ thuộc hàm

+ Tập thuộc tính đích (TD) chứa tất thuộc tính có xuất vế phải khơng xuất vế trái phụ thuộc hàm

+ Tập thuộc tính trung gian (TG) chứa tất thuộc tính xuất vế trái lẫn vế phải phụ thuộc hàm

Hệ quả: Nếu K khóa R(U) TN  K TD ∩ K = 

Chứng minh TN  K

Theo hệ thuật toán tìm bao đóng ta có K+ K TD TG

Ta chứng minh A TN  A  K Thật vậy:

Nếu A  K  K+ K TD TG  Q+-A  K khơng khóa  mâu

thuẫn

Chứng minh TD ∩ K = 

Giả sử có thuộc tính A  TD ∩ K ta dẫn đến điều mâu thuẫn Thật vậy:

Theo hệ thuật tốn tìm bao đóng K+ = (K-A)+

 A

A  TD  có X vế trái phụ thuộc hàm F cho X → A

(1) A ∉ X  X  K+ = (K-A)+ A A ∉ X  X  (K-A)+ (K-A) → X

(2)

(1) (2) cho (K-A) → A  A (K-A)+  (K-A)+  A = (K-A)+  K+ =

(K-A)+ mâu thuẫn với điều K khóa.

Dựa vào hệ ta có thuật tốn tìm tất khóa sau: Dữ liệu vào: Lược đồ quan hệ R(U) tập phụ thuộc hàm F Dữ liệu ra: Tất khóa quan hệ

Thuật tốn tìm tất khóa lược đồ quan hệ

(48)

Bước 2: if TG = ∅ then lược đồ quan hệ có khóa K K = TN

kết thúc Ngược lại Qua bước 3

Bước 3: tìm tất tập Xi tập trung gian TG Bước 4: tìm siêu khóa Si cách Xi

if (TN  Xi)+ = U then

Si = TN  Xi

Bước 5: tìm khóa cách loại bỏ siêu khóa khơng tối tiểu

 Si, Sj  S

if Si  Sj then Loại Sj khỏi Tập siêu khóa S

S cịn lại tập khóa cần tìm. Ví dụ 9: Giải lại tập ví dụ

Ap dụng thuật tốn cải tiến ta có lời giải sau: TN = {S}; TG = {C,Z}

Gọi Xi tập tập TG:

Kết quan hệ có hai khóa : {S,C} {S,Z}

2.3 Dùng đồ thị tập phụ thuộc hàm để xác định khóa lược đồ quan hệ

a Đồ thị tập phụ thuộc hàm: Biểu diễn PTH đồ thị sau: AB

ABC , ABC

- Đỉnh gốc: đỉnh mà có điểm mũi tên - Đỉnh ngọn: đỉnh có điểm đến mũi tên

- Đỉnh trung gian: đỉnh vừa có điểm đến vừa có điểm mũi tên A

B

C A

B

C

(49)

b Dùng đồ thị để xác định khóa Thuật tốn

- Các đỉnh gốc đồ thị thuộc tính khóa

- Các đỉnh đồ thị khơng thuộc tính khóa - K tập đỉnh gốc:

+ Nếu K+

F = U K khóa.

Ngược lại, ta thêm vào K số thuộc tính đỉnh trung gian cho đến K+

F = U

Ví dụ: F={ AB, ABC, BD, CDE} Tìm khóa U

1.9 Các tập phụ thuộc hàm tương đương

Cho hai tập phụ thuộc hàm F G Ta nói F G tương đương F+ = G+. Khi ta cịn gọi G phủ F (và F phủ G) viết F G

*Cách kiểm tra F tương đương với G

+ Với phụ thuộc hàm (XY)  F kiểm tra (XY)  G+ hay không?

bằng cách xét Y  X+G hay không?

Nếu PTH F thuộc G+ PTH F+ suy diễn logic từ G+ Do F+

 G+

+ Với phụ thuộc hàm (XY)  G kiểm tra (XY)  F+ hay không?

Kiểm tra tương tự Cuối kết luận F G tương đương Thuật toán xác định F G có tương đương khơng

Bước 1: Với phụ thuộc hàm X→Y F ta xác định xem X→Y có là thành viên G khơng

Bước 2: Với phụ thuộc hàm X→Y G ta xác định xem X→Y có là thành viên F khơng

Nếu hai bước F ≡ G

Chú ý: Thuật toán xác định f = X→Y có thành viên F hay khơng Bước 1: tính X+

Bước 2: so sánh X+ với Y X+  Y ta khẳng định X → Y thành

viên F

(50)

F={A→BC,A→D,CD→E} G = {A→BCE,A→ABD,CD→E} a) F có tương đương với G khơng?

b) F có tương đương với G’={A→BCDE} khơng?

IV PHỦ TỐI THIỂU CỦA MỘT TẬP PHỤ THUỘC HÀM (minimal cover)

1 Phụ thuộc hàm có vế trái dư thừa

F tập phụ thuộc hàm lược đồ quan hệ Q, Z→YF Nói phụ

thuộc hàm Z → Y có vế trái dư thừa (phụ thuộc khơng đầy đủ) có thuộc tính AZ cho:

F ≡ F- {Z → Y}  {(Z-A) → Y}

Ngược lại Z → Y phụ thuộc hàm có vế trái khơng dư thừa hay Y phụ thuộc hàm đầy đủ vào Z hay phụ thuộc hàm đầy đủ.

Ví dụ 2: Q(A,B,C) F={AB→C; B→C} AB → C phụ thuộc hàm không đầy đủ B → C phụ thuộc hàm đầy đủ

Chú ý: phụ thuộc hàm có vế trái chứa thuộc tính phụ thuộc hàm đầy đủ

Ví dụ 3: cho tập phụ thuộc hàm F = {A → BC,B → C,AB → D} phụ thuộc hàm AB→D có vế trái dư thừa B

Định nghĩa: Ta nói F tập phụ thuộc hàm có vế trái không dư thừa F không chứa phụ thuộc hàm có vế trái dư thừa.

Thuật tốn loại khỏi F phụ thuộc hàm có vế trái dư thừa.

Bước 1: thực bước cho phụ thuộc hàm X→Y F Bước 2:Với tập thật X’≠ của X.

Nếu X'→YF+ thay X→Y F X'→Y thực lại bước 2

Ví dụ: Ở ví dụ phụ thuộc hàm AB→D có A+=ABCD  A→DF+ Trong

F ta thay AB→D

A→D  F ≡ {A → BC,B → C,A → D}

(51)

Mỗi tập phụ thuộc hàm F tương đương với tập phụ thuộc hàm G mà vế phải phụ thuộc hàm G gồm thuộc tính

Ví dụ 4: cho F = {A → BC,B → C,AB → D} ta suy F ≡ {A → B, A → C ,B → C,AB → D} = G

G gọi tập phụ thuộc hàm có vế phải thuộc tính 3 Tập phụ thuộc hàm khơng dư thừa

Nói F tập phụ thuộc hàm không dư thừa không tồn F’ F

cho F’≡ F Ngược lại F tập phụ thuộc hàm dư thừa

Ví dụ: cho F = {A→BC, B→D, AB→D} F dư thừa F ≡ F’= {A→BC, B→D}

Thuật toán loại khỏi F phụ thuộc hàm dư thừa: Bước 1: Lần lượt xét phụ thuộc hàm X → Y F

Bước 2: X → Y thành viên F - {X → Y} loại X → Y khỏi F Bước 3: thực bước cho phụ thuộc hàm F

4 Tập phụ thuộc hàm tối thiểu (minimal cover)

F gọi tập phụ thuộc hàm tối thiểu (hay phủ tối thiểu) F thỏa đồng thời ba điều kiện sau:

1 F tập phụ thuộc hàm có vế trái không dư thừa F tập phụ thuộc hàm có vế phải thuộc tính F tập phụ thuộc hàm khơng dư thừa

Thuật tốn tìm phủ tối thiểu tập phụ thuộc hàm Bước 1: loại khỏi F phụ thuộc hàm có vế trái dư thừa.

Bước 2: Tách phụ thuộc hàm có vế phải thuộc tính thành các phụ thuộc hàm có vế phải thuộc tính.

Bước 3: loại khỏi F phụ thuộc hàm dư thừa.

Chú ý: Theo thuật toán trên, từ tập phụ thuộc hàm F ln tìm phủ tối thiểu Ftt để F≡Ftt thứ tự loại phụ thuộc hàm tập F khác thu phủ tối thiểu khác

(52)

Hãy tính phủ tối thiểu F Giải:

Bước 1: AB→CD phụ thuộc hàm có vế trái dư thừa? B → CD  F+? trả lời: B+=BCD  B → CD  F+

Vậy AB → CD phụ thuộc hàm có vế trái dư thừa A  kết bước

là:

F≡{B → CD;B → C;C → D} Bước 2: kết bước là: F≡{B → D; B → C;C → D}=F1tt

Bước 3: F1tt, B → C phụ thuộc hàm dư thừa? B → C  G+? với G = F1tt - {B → C}={B → D;C → D}

BG+=BD  B → C  G+  F1tt B → C không dư thừa

trong F1tt,B → D phụ thuộc hàm dư thừa?

B → D G+? với G = F1tt - {B → D}={B → C;C → D}

BG+=BCD  B → D  G+  F1tt,B → D dư thừa

kết bước cho phủ tối thiểu: F≡{B → C;C → D}=Ftt

Ví dụ 6: Cho lược đồ quan hệ Q(MSCD,MSSV,CD,HG) tập phụ thuộc F sau:

F = {MSCD → CD;CD → MSCD; CD,MSSV → HG; MSCD,HG → MSSV;

CD,HG → MSSV; MSCD,MSSV → HG} Hãy tìm phủ tối thiểu F

kết quả:

Ftt = {MSCD → CD; CD → MSCD; CD,HG → MSSV; MSCD,MSSV → HG}

Định lý: Mỗi tập phụ thuộc hàm F tương đương với tập phụ thuộc hàm tối thiểu F'

(53)

1 Khái niệm phép tách lược đồ quan hệ: Cho lược đồ quan hệ R(U,F). Việc tách lược đồ quan hệ R(U) thay tập lược đồ {R1(U1), R2(U2), ,Rn(Un)} U1U2 Un=U

Chú ý khơng địi hỏi U1, U2, ,Un phải rời

Mục đích việc tách lược đồ quan hệ nhằm loại bỏ dị thường liệu

Ví dụ: Cho lược đồ quan hệ nhà cung cấp NCC (TênNCC, Địachỉ, Sảnphẩm, Giá) tập phụ thuộc hàm {TênNCCĐịachỉ; TênNCC, Sảnphẩm 

Giá} Với lược đồ ta thấy liệu dư thừa lớn, chẳng hạn địa nhà cung cấp lưu trữ nhiều lần

Ta tách lược đồ NCC thành lược đồ NCC1(TênNCC, Địachỉ) NCC2(TênNCC, Sảnphẩm, Giá)

Với việc tách ta thấy nhà cung cấp cần lưu địa tương ứng mà không cần lặp lặp lại nhiều lần NCC

Giả sử U có tập F phụ thuộc hàm Với Z  U, Hình chiều F lên

Z, ký hiệu Z(F)={ (X Y F+ | XY  Z }

Ta ký hiệu phép chiếu F lên Ui Fi, Khi phép tách lược đồ R(U,F) viết {R1(U1,F1), R2(U2,F2),…,Rn(Un,Fn)} ký hiệu

 (R1, R2, , Rn) hay =(R1,R2, , Rn)

2 Phép tách với kết nối không tổn thất (không thông tin).

( Phép tách không mát thông tin- Lossless Join De composition)

Cho lược đồ quan hệ R tập phụ thuộc hàm F Phép tách lược đồ R thành tập lược đồ R1, , Rn gọi tách kết nối khơng tổn thất ( cịn gọi không thông tin) tập phụ thuộc hàm F với quan hệ r R thoả F thì, ta có

r =r1*r2*…*rn = U1(r)* U2(r) * * Un(r)

Như  tách - kết nối không tổn thất F kết nối tự nhiên

hình chiếu r lên tập thành phần , ta lại quan hệ r

Ví dụ phép tách kết nối tổn thất

(54)

Đặt r1 quan hệ có cách chiếu r lên U1(TENNCC,SANPHAM,DONGIA),

Đặt r2 quan hệ có cách chiếu r lên U2(TENNCC,DIACHI) Đặt r’ quan hệ có cách kết nối tự nhiên r1 r2 qua TENNCC Chẳng hạn: r

TENNCC DIACHI SANPHAM DONGIA

Hung 12 Nguyễn Kiệm Gạch ống 200 Hung 12 Nguyễn Kiệm Gạch thẻ 250 Hung 40 Nguyễn Oanh Gạch ống 200

r2 r1 TENNCC DIACHI

Hung 12 Nguyễn Kiệm Hung 40 Nguyễn Oanh

r’ = r1|><|r2 TENNCC

TENNCC DIACHI SANPHAM DONGIA

Hung 12 Nguyễn Kiệm Gạch ống 200

Hung 12 Nguyễn Kiệm Gạch thẻ 250

Hung 40 Nguyễn Oanh Gạch ống 200

Hung 40 Nguyễn Oanh Gạch thẻ 250

Kết r ≠ r’ hay r ≠ r.U1|><|r.U2

Với kết trên, ta nói phép tách ρ(U1,U2) tách R thành U1, U2 tách-kết nối (phân rã) mát thông tin

Vậy với điều kiện phép tách trở thành tách-kết nối khơng mát thơng tin?

Thuật tốn kiểm tra tính kết nối không tổn thất phép tách TENNCC SANPHAM DONGIA

Hung Gạch ống 200

(55)

Dữ liệu vào: lược đồ quan hệ R(A1,A2,…An), tập phụ thuộc hàm F, phép tách ρ=(U1,U2,…,Uk)

Dữ liệu ra: kết luận phép tách ρ có phải phép tách kết nối không tổn thất hay không ?

Phương pháp:

1 Thiết lập bảng với k+1 dòng, n+1 cột Dịng đầu ghi tên thuộc tính, cột đầu ghi quan hệ Ui Cột j ứng với thuộc tính Aj (j=1 n), hàng i ứng với lược đồ quan hệ Ui(i=1…k) Tại ví trí hàng i, cột j ta điền ký hiệu Aj Aj 

Ui, không ta đặt ký hiệu Bij vào vị trí

2 Xét phụ thuộc hàm F, áp dụng cho bảng vừa thành lập Giả sử xét (X → Y)  F, tìm hàng tập

thuộc tính X, thấy hàng ta thay đổi ký hiệu dòng để chúng mang giá trị Y Việc thay đổi thực theo quy tắc :

+ Nếu hai ký hiệu cho ký hiệu trở thành

+ Nếu hai ký hiệu dều có dạng Bij lấy tuỳ ý hai ký hiệu đó, gán chung cho hai

Bước tiếp tục cho phụ thuộc hàm lại F( kể việc lặp lại PTH áp dụng ) khơng cịn áp dụng nữa( thay đổi giá trị bảng nữa)

3 Xét bảng kết quả, thấy bảng có hàng chứa tồn aj (j=1 n) kết luận phép tách kết nối khơng tổn thất (bảo tồn thơng tin) , ngược lại phép kết nối mát thơng tin

Ví dụ:

Định lý 1: Thuật toán đúng

Trong trường hợp phép tách R thành hai lược đồ R1 R2 ta xác định tính tách kết nối khơng tổn thất định lý sau:

Định lý 2: Giả sử = (R1(U1),R2(U2)) phép tách R(U) F tập phụ thuộc hàm R.Khi  phép tách -kết nối không tổn thất (không

(56)

Chú ý phụ thuộc hàm không thiết thuộc F, cần thuộc F+

Hệ quả: Cho lược đồ quan hệ R(U), F tập phụ thuộc hàm U X,Y

 U Nếu (X → Y)  F+ phép tách = (R1(U1),R2(U2)) với U1=XY, U2=XZ, với Z=U\XY phép tách không mát thơng tin

Ví dụ: R(S,N,A,I,P) F={ S → NA, SI → P}

Xét phép tách: U1(SNA), U2(SIP) Ta có U1U2 =S, U1\ U2 =NA, ta có pth S → NA đúng, nên phép tách không tổn thất

Nếu áp dụng hệ ta có phép tách khơng tổn thất sau:

- Với ptt S → NA , ta tách U1(SNA) Z=SNAIP\SNA=IP  U2=SZ=SIP Vậy R tách thành U1,U2 phép tách không tổn thất đaqx kiểm tra

Vận dụng điều ta phân rã R thành lước đồ bảo tồn thơng tin

3 Phép tách bảo toàn phụ thuộc hàm (decompositions that preserve dependencies)

Thông thường mong muốn phép tách phải có tính chất khơng mát thơng tin đảm bảo quan hệ phục hồi từ quan hệ chiếu Một tính chất quan trọng khác phép tách quan hệ R thành =R1, R2, ,Rk tập phụ thuộc hàm F R phải suy diễn tập phụ thuộc hàm chiếu F Ri, với i=1, 2, ,k

Định nghĩa: Cho phân rã ρ =(R1(U1),R2(U2),…,Rk(Ui)) lược đồ quan hệ R, tập phụ thuộc hàm F Hình chiếu F tập thuộc tính Ui ký hiệu Ui(F) tập phụ thuộc hàm X → Y  F+ cho XY  Ui

Ui(F)=Fi+={ X → Y| X → Y  F+ XY  Ui} Ta nói phân rã ρ bảo tồn tập phụ thuộc hàm F F+ = (ΠUi(F)+ với i=1 k

Hệ quả: F+  (ΠUi(F)+ với i=1 k

(57)

ta xác định xem có thành viên tập phụ thuộc hàm G = ΠUi(F) hay

không Ta không cần xác định chiều ngược lại VI CHUẨN HOÁ LƯỢC ĐỒ QUAN HỆ 1 Các khái niệm:

* Chuẩn hoá lược đồ quan hệ trình phân tách lược đồ quan hệ thành lược đồ nhỏ hay biến đổi dạng chuẩn thích hợp để tránh dị thường liệu

* Lược đồ chuẩn hố lược đồ miền trị thuộc tính chứa giá trị nguyên tố (khơng phân nhỏ nữa), giá trị quan hệ giá trị nguyên tố

* Lược đồ có chứa miền trị không nguyên tố gọi lược đồ không chuẩn hoá.

Sau ta xem xét lược đồ chuẩn hoá

Định nghĩa 1: Cho lược đồ quan hệ R tập thuộc tính U = { A1, , An} Thuộc tính AU gọi thuộc tính khố A thành phần khố

nào R Ngược lại A gọi thuộc tính khơng khố

Ví dụ: Cho lược đồ quan hệ R tập thuộc tính U = { A, B, C, D} phụ thuộc hàm AB C, B  D, BC A Khi khố R AB BC

nên A, B, C thuộc tính khố, cịn D thuộc tính khơng khố

Định nghĩa 2: Cho lược đồ quan hệ R(U) X,Y U, A U ; Ta nói Y

phụ thuộc hàm đầy đủ vào X nếu: - XY  F+

- Với tập thực X' X X'Y khơng thuộc F+

Ngược lại, nói Y phụ thuộc phận vào X

Định nghĩa 3: Cho lược đồ quan hệ R(U) X  U, A U nói

rằng A phụ thuộc bắc cầu vào X tồn Y  U cho X Y, Y  A

thuộc F+ Y

 X không thuộc F+ với A XY

Ngược lại ta nói A không phụ thuộc bắc cầu vào X hay A phụ thuộc trực tiếp vào X

2 Các dạng chuẩn

(58)

a Dạng chuẩn ( First Normal Forrm - 1NF)

Định nghĩa 4: Lược đồ quan hệ R gọi dạng chuẩn toàn miền giá trị thuộc tính R chứa giá trị nguyên tố

* Như lược đồ chuẩn hoá dạng chuẩn 1. b Dạng chuẩn ( Second Normal Forrm- 2NF)

Định nghĩa 5: Lược đồ quan hệ R gọi dạng chuẩn nếu: i) R dạng chuẩn

ii) Mọi thuộc tính khơng khố R phụ thuộc hàm đầy đủ vào khố

Nhắc lại định nghĩa thuộc tính pth đầy đủ vào tập: Cho lược đồ quan hệ R(U) XU, A U ; Ta nói A phụ thuộc hàm đầy đủ vào X nếu:

- XA  F+

- Với tập thực X' X X'A khơng thuộc F+

Ngược lại, nói A phụ thuộc phận vào X c Dạng chuẩn ( Third Normal Forrm - 3NF)

Định nghĩa 6: Lược đồ quan hệ R gọi dạng chuẩn (3NF) nếu: i) R dạng chuẩn

ii) Mọi thuộc tính khơng khố R khơng phụ thuộc bắc cầu vào khố R

d Dạng chuẩn Boyce-Codd (Boyce-Codd Normal Forrm -BCNF )

Định nghĩa 7: Lược đồ quan hệ R với tập phụ thuộc hàm F gọi ở dạng chuẩn Boyce-codd với XA  F+ A X X chứa khóa

của R( nói cách khác, X siêu khóa) Nói cách khác, sơ đồ quan hệ R có phụ thuộc hàm không tầm thường phụ thuộc hàm khóa xác định hàm hay nhiều thuộc tính khác

Định lý: Mọi lược đồ quan hệ R với tập phụ thuộc hàm F dạng chuẩn Boyce -Codd dạng chuẩn ba

3 Phép tách đưa lược đồ quan hệ dạng chuẩn.

(59)

Bổ đề : a Giả sử R lược đồ quan hệ với tập phụ thuộc hàm F Đặt

=(R1,R2, , Rk) phép tách không thông tin R F Với mối i=1, 2, , k, gọi Fi hình chiếu F lên Ri đặt =(S1, S2, ,Sm) phép không mát thông tin Ri Fi Thì phép tách R thành =(R1,R2, , Rn-1, S1, S2, ,Sm, Ri+1, , Rk) pháp tách không thông tin F

b Giả sư có R, F =(R1,R2, , Rk), = (R1,R2, , Rk, Rk+1, , Rn) phép tách R thành tập lược đồ chứa lược đồ   là phép

tách khơng thơng tin

Thuật tố3.1: tách khơng thông tin dạng chuẩn Boyce-codd + Vào: Lược đồ quan hệ R(U) Tập phụ thuộc hàm F

+ Ra:  phép tách không mát thông tin bao gồm tập sơ đồ

con sơ đồ dạng chuẩn Boyce-codd với phụ thuộc hàm hình chiếu F lên sơ đồ

Phương pháp:

- Chúng ta xây dựng phép tách  R theo phương pháp lặp Mỗi lần

lặp,  tách tiếp với phép tách không mát thông tin F

- Ban đầu, đặt =(R) Nêu S sơ đồ quan hệ  không dạng

chuẩn Boyce-codd, xét phụ thuộc hàm XA S, với điều kiện X không

chứa khóa S A X Ta thay S S1, S2 với S1= A {X} S2={S}\A - Tiếp tục trình sơ đồ dạng chuẩn Boyce-codd, xây dựng phép tách không mát thông tin chuẩn hóa R dạng BCNF

3.2 Phép tách bảo toàn tập phụ thuộc hàm dạng chuẩn ba Thuật tốn3.2: Tách bảo tồn tập phụ thuộc hàm dạng chuẩn ba

+ Vào: Lược đồ quan hệ R(U) Tập phụ thuộc hàm F, khơng tính tổng quát giả sử F phủ tối thiểu

+ Ra:  ={R1(U1), ,Rm(Um) | Ri(Ui), i=1, , m 3NF} với phép tách bảo toàn phụ thuộc hàm

+ Phương pháp:

(60)

Nếu U0  lấy R0(U0)

2) Nếu L  A F mà LA = U \ U0  =(R0(U0), R1(U \ U0)) phép tách thành 3NF

3) Ngược lại, kết bao gồm lược đồ XA ứng với phụ thuộc hàm X  A F Tuy nhiên,  XA1, , XAk sử dụng lược đồ XA1 Ak thay cho XAi với i=1,2, ,k

3.3 Phép tách khơng thơng tin bảo tồn tập phụ thuộc hàm về dạng chuẩn ba

Định lý: Giả sử  kết phép tách R theo thuật tốn 3.2 X

khóa R = {X} phép tách bảo tồn phụ thuộc hàm khơng

mất mát thơng tin chuẩn hóa R dạng chuẩn ba

Thuật tốn 3.3: Tách khơng mát thơng tin bảo toàn tập phụ thuộc hàm dạng chuẩn ba

+ Vào: Lược đồ quan hệ R(U) Tập phụ thuộc hàm F

+ Ra:  ={R1(U1), ,Rm(Um) | Ri(Ui), i=1, , m 3NF} với phép tách không mát thơng tin bảo tồn tập phụ thuộc hàm

+ Phương pháp:

Bước 1: Tìm phủ tối thiểu F' F

Giả sử F'={ XjAij,i=1,2, ,n,j=1,2, m} Bước 2:

i) Đặt U0= X với X tập thuộc tính khơng xuất phụ thuộc hàm (cả vế trái lẫn vế phải) F (U0 rỗng)

Nếu U0  lấy R0(U0)

ii) Nếu L  A F mà LA = U \ U0  =(R0(U0), R1(U \ U0)) phép tách thành 3NF

iii) Ngược lại, kết bao gồm lược đồ XA ứng với phụ thuộc hàm X  A F Tuy nhiên,  XA1, , XAk sử dụng lược đồ XA1 Ak thay cho XAi với i=1,2, ,k

Giả sử  ={R0(U0), R1(U1), ,Rm(Um)} Bước 3:

(61)

ii) Nếu tồn Ui mà K  Ui (Ri(Ui), R0(U0)) lược đồ chuẩn hố 3NF khơng mát thơng tin bảo toàn phụ thuộc hàm R(U)

iii) Nếu không tồn Ui thoả ii) tồn Ui mà K U0  Ui ta có:

(Ri(Ui), R0(K) với i 0) (thay U0 =K) lược đồ chuẩn hố 3NF khơng mát thơng tin bảo toàn phụ thuộc hàm R(U)

iv) Nếu khơng tồn Ui thoả iii) (Ri(Ui), R0(U0), R(K)) lược đồ chuẩn hố 3NF khơng mát thơng tin bảo tồn phụ thuộc hàm R(U)

Ví dụ 1: Cho lược đồ quan hệ R(U), với U={C, T, H, R, S,G} tập phụ thuộc hàm F={CT, HTR, HRC, CSG, HSR} Hãy tách lược đồ R thành

dạng 3NF không mát thông tin Phủ tối thiểu F F'=F

2 * Khơng tồn thuộc tính khơng xuất PTH F' (U0=)

* Không tồn PTH L  A mà LA = U \ U0

* Khơng tồn PTH có vế trái giống

Vậy ta có phép tách (R1(CT), R2(HTR), R3(HRC), R4(CSG), R5(HSR)) Ta tìm khoá R K=SH Do K  U5=SHR nên (R1(CT), R2(HTR), R3(HRC), R4(CSG), R5(HSR)) lược đồ chuẩn hố khơng mát thơng tin

Ví dụ 2: Cho lược đồ quan hệ R(U) với U= {A, B, C, D, E, F, G} tập phụ thuộc hàm F={ABC, DE, ADF} Hãy tách lược đồ quan hệ thành tập

các lược đồ dạng 3NF với phép tách khơng mát thơng tin Tìm phủ tối thiểu F' F

Ta có F' = {AB, A C, DE, AD F}

2 Tách

i) Do G có mặt PTH F' nên đặt U0 = G xác định lược đồ R0(G)

ii) Không tồn phụ thuộc hàm dạng L  A mà LA = U - U0 iii) Từ A B, A  C ta xác định lược đồ : R1(ABC)

(62)

Vậy phép tách là:  (R0(G),R1(ABC), R2(DE), R3(ADF)) Đưa kết quả:

+ Ta tìm khố U là: K= ADG + Khơng tồn Ui mà K  Ui

+ Tồn U3= ADF để K = ADG U3G = ADGF nên ta có phép tách thành lược đồ 3NF không mát thông tin R là:  (R0(ADG), R1(ABC), R2(DE), R3(ADF))

Chú ý: Ta chuẩn hoá lược đồ quan hệ 3NF phương pháp sơ đồ:

Chuẩn hoá 1NF vẽ sơ đồ

Chuẩn hoá 2NF: Tách phụ thuộc hàm phậnChuẩn hoá 3NF: Tách phụ thuộc hàm bắc cầu. Câu hỏi tập

1 Cho lược đồ quan hệ R, quan hệ r xác định R tập phụ thuộc hàm F = {AB  E, AG  I, BE  I, E  G, GI  H}

Chứng minh quan hệ r xác định R thoả F r thoả ABGH

2 Cho lược đồ quan hệ R, quan hệ r xác định R tập phụ thuộc hàm F = {AB  C, B  D, CD  E, CE  GH, G  A}

Chứng minh quan hệ r xác định R thoả F r thoả ABE, ABG

3 Cho lược đồ quan hệ R tập thuộc tính U={ A, B, C, D, E, F, G, H } tập phụ thuộc hàm F = {A  D, AB  DE, CE  G, E  H}

a Tính (AB)+.

b Tìm khố R

4 Cho lược đồ quan hệ R(U) với U = { A, B, C, D, E, F, G, H, I, K, L } tập phụ thuộc hàm

F = {BK  FG, G  F, A  CDL, ABEK  H}

Hãy tìm khố R

(63)

U={A, B, C, D, E, F, G, H}

F={A  CD, C D, EG  F, B  H}

Hãy tách lược đồ thành tập lược đồ 3NF với phép tách không mát thông tin

6 Cho lược đồ quan hệ R tập thuộc tính U={A, B, C, D, E, F, G, H} tập phụ thuộc hàm

F = {AEF  CD, A  GH, EF  B, G  H}

Hãy tách lược đồ R thành tập lược đồ dạng chuẩn với phép tách không mát thông tin

7 Cho lược đồ quan hệ S(U) với U = {A, B, C, D, E} tập phụ thuộc hàm F = {A  BC, B  C, AD  E}

Hãy tách lược đồ S thành tập lược đồ 3NF với phép tách không mát thông tin

Chương V TỐI ƯU HOÁ CÂU HỎI

Như ta biết, biểu thức tính tốn máy phải trả giá định thời gian, nhớ Do vấn đề làm để giảm bớt thời gian tính tốn, giảm nhớ nhiều tốt vấn đề cần quan tâm Để đạt điều này, trước thực câu hỏi ta cần phải thực phép biến đổi thích hợp cho chi phí nhớ, thời gian tính tốn biểu thức nhận giảm so với thời gian tính tốn biểu thức ban đầu Cơng việc gọi tối ưu hoá câu hỏi (Optimiztation) Tuy nhiên việc tối ưu hố khơng thiết phải tối ưu khả cách cài đặt câu hỏi Trong phạm vi môn học ta quan tâm đến số phương pháp tối ưu hoá biểu thức quan hệ, chủ yếu quan tâm đến việc xử lý biểu thức có liên quan đến phép kết nối, phép tích đề

Đ1 CHIẾN LƯỢC TỐI ƯU HOÁ CƠ BẢN

(64)

của quan hệ r1 gồm n với quan hệ r2 gồm m ta quan hệ gồm mn cách nhân r1 với r2 Hơn phép toán nhớ tốn Vì chiến lược tối ưu hố câu hỏi tìm cách tổ chức lại câu hỏi để giảm bớt thời gian tính tốn biểu thức.

Ví dụ 1: Cho CSDL thư viện bao gồm quan hệ sau: SACH(MaS, TenS, TenTG, MaNXB): Quan hệ sách

NHAXB(MaNXB, Tennxb, ĐCXB, ĐTNXB): Quan hệ nhà xuất DOCGIA(SOtheĐG, TenDG, ĐCĐG, ĐTĐG): Quan hệ độc giả MUON( SOtheĐG, MaS, NgayM): Quan hệ sổ mượn

Biểu thức đại số quan hệ trả lời câu hỏi: Đưa tên sách cho mượn trước ngày 1/4/1992 viết

TenS(ngayM < {1/4/1992}(MUON * SACH))

Ta đưa biểu thức biểu thức tương đương sau tối ưu

TenS(MãS (ngayM< {1/4/2000}(MUON))) * TenS,MãS (SACH)) Đ2 CÁC CHIẾN LƯỢC TỐI ƯU TỔNG QUÁT

Ullman đưa chiến lược tổng quát để tối ưu hoá câu hỏi sau đây: Đưa phép chọn, chiếu thực sớm

2 Tổ hợp phép chọn với phép tích đề thành phép kết nối Tổ hợp dãy phép tính ngơi phép chọn, phép chiếu Tìm biểu thức chung biểu thức

5 Xử lý tệp trước tính tốn (Chẳng hạn xếp, tạo tệp số) Đánh giá trước thực tính tốn

Đ3 CÁC PHÉP BIẾN ĐỔI TƯƠNG ĐƯƠNG

Để thực việc tối ưu hoá biểu thức đại số quan hệ, ta dựa vào phép biến đổi tương đương biểu thức quan hệ Giả sử E1 E2 biểu thức quan hệ, F biểu thức chọn thuộc tính E1 E2 Khi ta có phép biến đổi tương đương sau:

(65)

(R1 E1 R2) E2 R3 = R1 E1 (R2E2 R3 ) với E1 điều kết nối R1 với R2, E2 điều kết nối R2 với R3

2 Nếu E1, E2 E3 biểu thức điều kiện thì:

E1(E2 (En (R))) = E1  E2   En(R) X (Y(R)) = X(R) với X  Y

4 E (X(R)) = X (E (R)) với E=E(X) biểu thức chọn phát biểu X E (R1(X)  R2(Y)) = E1 (R1(X)) E2(R2(Y) ) với E=E1(X)  E2(Y) E (R1(X)  R2(Y)) = E1 (R1(X))  R2(X) với E=E1(X)

E (R1(X)  R2(Y)) = E2 (E1(R1(X))  R2(Y)) với E=E1(X)  E2(XY) E (R1 R2) = E (R1) E(R2 )

E (R1 - R2) = E (R1) - E (R2 )

X(R1(Y) x R2(Z))= XY (R1(X)) x X z (R2(Z)) X(R1 R2)= X (R1) X(R2)

Đ4 CÁC VÍ DỤ

Ví dụ 1: Cho CSDL thư viện bao gồm quan hệ sau: SACH(MaS , TenS, TenTG, MaNXB): Quan hệ sách

NHAXB(MaNXB, TenNXB, ĐCXB, ĐTNXB): Quan hệ nhà xuất DOCGIA(SOtheDG , TenĐG, ĐCĐG, ĐTĐG,): Quan hệ độc giả MUON( SOtheDG, MaS, NgayM): Quan hệ sổ mượn

Hãy đưa tên sách cho mượn trước ngày 1/4/1992 Ta có biểu thức đại số quan hệ TenS(ngayM< {1/4/2000}(MUON * SACH)) Ta biểu diễn biểu thức dạng sau:

r3 (r3=TenS(r2))

r2 (r2=ngayM <{1/4/2000} (r1))

r1 (r1=SACH*MUON)

SACH MUON

(66)

+ Ta thấy phép chọn  ngayM< {1/4/2000} thuộc quan hệ MUON nên ta thay  ngayM < {1/4/2000} (MUON * SACH )  ngayM < {1/4/2000} (MUON) * SACH Do ta đẩy phép chọn xuống thực sớm Khi ta có

r3 (r3=TenS(r1)) r1 (r1=SACH* r2)

r2 (r2=ngayM <{1/4/2000} (MUON)) SACH MUON

+ Vì thơng tin cuối ta cần có TênS nên ta đưa thêm phép chiếu vào để làm giảm bớt kích thước quan hệ trước kết nối Do ta có

r3 (r3=TenS(r1)) r1 (r1=r4* r2)

r4 r2 (r4=TenS, MãS (SACH)), r2=ngayM <{1/4/2000} (MUON))

SACH MUON

r3 (r3=TenS(r1)) r1 (r1=r4* r5)

r5 (r5=MãS(r2))

r4 r2 (r4=TenS, MãS (SACH)), r2=ngayM <{1/4/2000} (MUON))

SACH MUON

Như biểu thức đại số tối ưu thu

TenS(MãS (ngayM< {1/4/2000}(MUON))) * TenS,MãS (SACH)) Ví dụ 2: Cho quan hệ: q(ABD), r(BCF), s(FG)

Hãy tối ưu hoá biểu thức đại số sau:

B='b' (BF(q*r) - BF(r*s)) Ta có:

(67)

= B='b' (BF(q*r)) - B='b'(BF(r*s)) (theo 7) = BF (B='b' ( q*r)) - BF ( B='b'(r*s)) (theo 4)

= BF(B='b' ( q)* B='b' (r)) - BF ( B='b'(r)*s) (vì s(FG) khơng chứa B)

(68)

Câu hỏi tập

1 Cho CSDL gồm quan hệ sau:

SV(MãSV, TênSV, MãKh, Địachỉ, Nămsinh)

CBGD(MãCB, TênCB, MãKh, Mơndạy, ĐThoại) KHOA(MãKh, TênKh, Vịtrí, TrKhoa)

Tìm lời giải đại số tối ưu cho câu hỏi sau:

a Cho xem danh sách sinh viên với (TênSV, Nămsinh) có địa "Vinh" học khoa "CNTT"

b Cho xem Tên, môn dạy, điện thoại cán khoa "CNTT" Cho quan hệ q(ABD), r(BDF), s(FG)

Hãy tối ưu hoá biểu thức đại số sau: a AD ( q * r * G='g'(s))

b B (A='a' ( D=d (q) * (r - BDF (r * s )))) Cho sở liệu gồm quan hệ:

MH(MãMH, TênMH, Quycách, ĐVT, Đgiá) - Quan hệ mặt hàng NCC(MãNCC, TênNCC, ĐCNCC, ĐTNCC) -Quan hệ nhà cung cấp

MH_NCC(MãNCC, MãMH, NgàyCC, SLCC)-Quan hệ mặt hàng cung cấp

Hãy đưa biểu thức đại số quan hệ tối ưu trả lời câu hỏi sau a Cho xem mã nhà cung cấp cung cấp mặt hàng b Cho xem mã, tên nhà cung cấp không cung cấp mặt hàng

c Cho xem mã số, tên, điện thoại nhà cung cấp cung cấp mặt hàng có mã số 10

4 Cho sở liệu gồm quan hệ sau: TACGIA(MãTG, TênTG, Quêquán)

NXB(MãNXB, TênNXB, Địachỉ, Điệnthoại)

(69)

Hãy đưa biểu thức đại số quan hệ tối ưu trả lời câu hỏi sau a Cho biết tên sách xuất năm 1998

b Cho biết mã, tên sách xuất năm 1998 có số lượng xuất 1000

c Cho biết tên sách xuất năm 1998 "Nhà xuất Giáo dục"

(70)

Chương VI ĐIỀU KHIỂN KHAI THÁC TƯƠNG TRANH

Cơ sở liệu phục vụ nhiều người dùng Tuy người thực nhiệm vụ khác nhau, họ truy nhập đến liệu Do khoảng thời gian xảy tranh chấp liệu người dùng khác Sự tranh chấp tranh chấp liệu thứ tự truy cập Khi họ chấp nhận khai thác tương tranh

Điều khiển khai thác tương tranh chức hệ quản trị sở liệu nhằm đảm bảo việc điều khiển khai thác đồng thời liệu cho kết khai thác Bản chất điều khiển khai thác tương tranh phân phối thời gian thực hiện, chia liệu cho người sử dụng

Đ1 CÁC KHÁI NIỆM 1.1 Tồn vẹn liệu

Tính tồn vẹn liệu bảo vệ liệu sở liệu chống lại truy nhập, sửa đổi hay phá huỷ khơng có Đảm bảo tính đắn, xác liệu Các điều kiện toàn vẹn liệu điều cần kiểm chứng liệu thời điểm định

Định nghĩa Điều kiện toàn vẹn liệu điều kiện cần kiểm chứng liệu thời điểm định

Các dạng điều kiện toàn vẹn liệu bao gồm: - Điều kiện tồn vẹn thuộc tính

- Điều kiện tồn vẹn nhiều thuộc tính - Điều kiện tính

a Điều kiện tồn vẹn thuộc tính.

Điều kiện tồn vẹn liệu thuộc tính thường xác định xác định dạng liệu sơ cấp Các điều kiện bao gồm:

- Điều kiện miền giá trị - Điều kiện kiểu liệu

(71)

Điều kiện toàn vẹn liệu nhiều thuộc tính bao gồm dạng sau: - Phụ thuộc hàm, phụ thuộc đa trị

- Phụ thuộc tồn hay hạn chế - Điều kiện ràng buộc giải tích

- Điều kiện bất biến số đại lượng phép xử lý c Điều kiện tính nhất

Điều kiện tính nhằm đảm bảo tính sở liệu Điều kiện thường gắn với khoá quan hệ

Định nghĩa Cơ sở liệu mà liệu ln tơn trọng điều kiện toàn vẹn gọi sở liệu chặt chẽ

1.2 Giao tác chương trình

Định nghĩa Giao tác đơn vị xử lý người sử dụng khai thác tuỳ ý mà giữ tính chặt chẽ sở liệu

Nói cách khác giao tác thao tác vừa đủ nhỏ để dễ quản lý mà đảm bảo tính chặt chẽ sở liệu Những thao tác không nhỏ để tránh phức tạp quản lý

Việc xử lý liệu chia thành giao tác Các giao tác lại chia thành phần việc nhỏ mà ta gọi hành động

Định nghĩa Hành động lệnh riêng khai thác hệ thống cho giao tác

1.3 Vấn đề tương tranh, tranh chấp khai thác liệu

Khi giao tác thực liệu khoảng thời gian, nghĩa có tranh chấp tài nguyên gây ra số tượng sau:

- Thất lạc phép toán: Đây tương thường xảy Khi có hai hay nhiều phép toán đồng thời tác động lên liệu khoảng thời gian phép tốn có hiệu

- Khơng đảm bảo tính chặt chẽ sở liệu

(72)

Trước hết ta có định nghĩa sau:

* Modul hệ thống dùng để điều khiển khai thác tương tranh liệu gọi người điều khiển

* Ta gọi đơn vị sở liệu cho phép người sử dụng khai thác điều khiển Hạt

* Phép toán dãy hoạt động tạo thành chức hạt, tơn trọng tính chặt chẽ sở liệu Trạng thái hạt sau thực phép toán gọi kết phép toán

* Dãy hoạt động đạt tách hoạt động khác giao tác T1 , , Tn mà tôn trọng trật tự hoạt động giao tác gọi khai thác giao tác

* Một khai thác tôn trọng trật tự hoạt động giao tác tham gia vào khai thác gọi khai thác

2.2 Khai thác có thứ tự

Khi khai thác liệu, để khơng phép tốn khơng vi phạm điều kiện toàn vẹn sở liệu ta thường sử dụng cách xếp giao tác, nghĩa khai thác hết giao tác khai thác giao tác khác

Ta gọi khai thác E giao tác T1, , Tn khai thác có thứ tự có hốn vị r (1, 2, , n) cho E=< Tr(1), , Tr(n)> Một khai thác giao tác T1, , Tn gọi cho kết khai thác T1, , Tn

2.3 Thuộc tính phép tốn

Như ta biết, việc tranh chấp xảy có hai giao tác đồng thời hạt nhớ Do hai giao tác thực hai hạt độc lập thực đồng thời mà khơng xảy xung đột Ngồi hai giao tác hạt mà không làm thay đổi giá trị hạt khai thác đồng thời mà không sợ xảy xung đột

(73)

Đ3 SỬ DỤNG THUẬT TOÁN KHOÁ HAI PHA

Modun điều khiển tương tranh cho phép khai thác đồng thời hạt phép toán tương hợp với Mỗi hệ quản trị sở liệu có cách riêng để mơ tả phép tốn tương hợp với Việc thực phép tốn phải đảm bảo mơ tả tính tương hợp

Thao tác khố hạt nhớ h cho phép toán M gồm hai hành động sau: + LOCK(h, M): Dành cho giao tác Ti khiến modun điều khiển tương tranh kiểm soát hạt h trước thực phép toán M Hạt h dùng cho phép toán M M giải phóng h

+ UNLOCK(h): Thơng báo cho giao tác khác hạt h giải phóng

Tư tưởng việc sử dụng khố hai pha cho giao tác khoá hết hạt nhớ h khác hoàn thành phép tốn giao tác thơi Giao tác thoả mãn yêu cầu gọi giao tác hai pha

Một giao tác hai pha không LOCK sau sử dụng UNLOCK Giao tác hai pha có ý nghĩa lớn việc điều khiển khai thác tương tranh tất khai thác tập giao tác {Ti} hai pha khai thác có thứ tự

Tuy nhiên điều cần lưu ý giao tác T khoá hạt nhớ h nảy sinh khố chết cần phải có biện pháp ngăn cản phát khố chết

Đ4 CÁC THUẬT TỐN CHO PHÉP KHOÁ CÁC GIAO TÁC

Để điều khiển tranh chấp, người ta sử dụng phương pháp đánh dấu giao tác đánh dấu hạt

Đánh dấu giao tác việc gán trị số cho giao tác cho phép xếp giao tác

Đánh dấu hạt việc gán giá trị số hạt để nhớ đánh dấu giao tác cuối làm việc hạt

Với phương pháp đánh dấu giao tác đánh dấu hạt, ta có thuật tốn cho phép khố giao tác sau:

(74)

Ti hay Tj thứ tự đánh dấu khơng thoả mãn Khi ta có thuật tốn thực giao tác Ti hạt g sau:

Procedure Read(Ti , g ); if (i>=E(g) then

"khai thác đọc"; E(g):= i Else ABORT; End;

Procedure Write (Ti , g); if (i>= E(g) then

"khai thác ghi"; E(g):= i Else ABORT; End;

Một điều cần lưu ý rằng, thứ tự đánh dấu Ti , Tj không thoả mãn nên cần thực lại giao tác Ti Để thực lại giao tác Ti lần nữa, người ta cho Ti đánh dấu i' (i<j<i' ) Nếu Tj lại mang dấu j' (i<j<i'<j' ) Ti khơng thực Vì người ta dùng phương pháp khôi phục lại Ti Các bước để khôi phục Ti gồm:

 Khôi phục nội dung trước đánh dấu hạt khai thác  Làm cho điều khiển trật tự khai thác phù hợp với dấu

b Thuật toán xếp phần: Thuật tốn xếp tồn nhằm sắp xếp phép toán thực thể Thuật toán xếp phần nhằm kiểm tra giao tác gồm phép tốn khơng giao hốn được: đọc/ghi, ghi/đọc, ghi/ghi thực tốt hay không Các hạt nhớ dùng hai đánh dấu dấu đọc dấu ghi

(75)

i) Thực giao tác Ti đọc hạt g Khi đọc cần kiểm tra đánh dấu Ti với dấu ghi g Giao tác Ti thực đánh dấu lớn dấu ghi g

ii) Thực giao tác Tj ghi hạt g Khi thực giao tác Tj cần quan tâm đến giao tác đọc ghi g thực trước Việc thực Tj cần đảm bảo đánh dấu Tj lớn dấu đọc dấu ghi hạt g

Chương VII AN TOÀN DỮ LIỆU

Đ1 AN TOÀN TRONG CƠ SỞ DỮ LIỆU 1.1 An toàn sở liệu

Khái niệm an toàn liệu đề cập đến việc giữ bí mật quyền khai thác sở liệu Đa số người sử dụng sở liệu muốn sở liệu đảm bảo an tồn, bí mật khơng để người khác nhịm vào Vì sở liệu phải có khả giữ gìn tính cá nhân liệu

An toàn liệu bảo vệ liệu sở liệu chống lại truy nhập, sửa đổi hay phá huỷ bất hợp pháp An toàn liệu nhìn theo ba khía cạnh chính:

- Tính bảo mật: Nghĩa ngăn ngừa, phát chống lại xâm nhập sở liệu bất hợp pháp

- Tính tồn vẹn: Đảm báo tính tồn vẹn liệu nhằm tránh thay đổi khơng phù hợp

- Tính sẵn sàng: Việc bảo đảm tính sẵn sàng liệu nhằm tránh từ chối phục vụ Điều có nghĩa ngăn ngừa, phát hiện, ngăn cản hành động từ chối khả hệ thống

(76)

Vi phạm an toàn sở liệu việc xâm nhập hay biến đổi không hợp lệ thông tin hệ thống quản lý

Các vi phạm an toàn sở liệu bao gồm hành động đọc không hợp lệ, thay đổi xố liệu khơng phép

Vi phạm an tồn thơng tin vi phạm cố ý hay vi phạm không cố ý Tuy nhiên, dù cố ý hay vơ ý hậu vi phạm gây lớn Ta tính đến hậu sau:

+ Sử dụng thông tin không hợp lệ người dùng không phép đọc liệu cố ý hay vơ tình

+ Thay đổi liệu Việc thay đổi không hợp pháp làm thay đổi phần thơng tin có liên quan đến điều kiện toàn vẹn

+ Từ chối dịch vụ Điều dẫn đến việc người dùng không truy nhập đến liệu, không sử dụng tài nguyên

1.3 Các yêu cầu bảo vệ sở liệu

Việc bảo vệ sở liệu để đảm bảo tính an tồn liệu nhiệm vụ quan trọng Bảo vệ liệu khỏi vi phạm an tồn có nghĩa bảo vệ liệu khỏi việc đọc hay cập nhật khơng phép cách cố ý hay vơ tình Các yêu cầu việc bảo vệ bao gồm:

- Tránh truy nhập không hợp pháp - Tránh suy diễn

- Đảm bảo tính tồn vẹn liệu

Đ2 CÁC ĐIỀU KHIỂN AN TOÀN DỮ LIỆU

Để bảo vệ an toàn sở liệu, người ta thường dùng biện pháp sau: - Điều khiển luồng thông tin

- Điều khiển suy diễn - Điều khiển truy nhập

2.1 Điều khiển luồng thông tin

Điều khiển luồng thông tin biện pháp nhằm kiểm tra xem nội dung luồng thông tin trao đổi hai đối tượng khai thác có bị rị rỉ sang đối tượng khác khơng

(77)

Thơng tin rị rỉ kênh truyền giữ X Y 2.2 Điều khiển suy diễn

Điều khiển suy diễn nhằm bảo vệ sở liệu khỏi truy nhập gián tiếp Truy nhập gián tiếp thường xảy kênh suy diễn Một kênh suy diễn kênh mà người sử dụng tìm X suy Y nhờ Y=f(X) Các kênh suy diễn làm thất thơng tin bao gồm:

- Truy nhập gián tiếp: Việc thường xảy người khơng có quyền truy nhập thu tập liệu Y thông qua câu hỏi tập liệu X phép sử dụng

- Dữ liệu tương quan: Là kênh suy diễn mà liệu X phép truy nhập có quan hệ ngữ nghĩa với liệu Y cần bảo vệ

- Mất liệu: Đây kênh suy diễn giúp người sử dụng biết có mặt X Việc liệu thường xảy để lộ tên đối tượng, làm cho người khơng có quyền truy nhập liệu đối tượng truy nhập Ngoài thực suy diễn thống kê, suy luận liệu có khả liệu

2.3 Điều khiển truy nhập

Điều khiển quyền truy nhập hệ thống thông tin nhằm đảm bảo tất truy nhập đối tượng hệ thống tuân theo kiểu cách quy luật bảo vệ hệ thống Một hệ thống điều khiển quyền truy nhập gồm hai chủ thể người sử dụng trình Các chủ thể khai thác liệu, chương trình thơng qua phép toán Hai thành phần chức hệ thống điều khiển truy nhập là:

- Tập sách luật truy nhập - Tập thủ tục điều khiển

a Tập sách luật truy nhập

(78)

luật truy nhập có chức diễn tả sách an toàn Chúng định trạng thái hệ thống thời gian khai thác

Thủ tục điều khiển

b Tập thủ tục điều khiển

Tập thủ tục điều khiển hay gọi chế an tồn có chức kiểm sốt câu hỏi, cho phép hay từ chối yêu cầu câu hỏi Các chế an toàn bao gồm:

+ Các chế ngoài: Gồm biện pháp điều khiển vật lý chức quản trị để ngăn cản truy nhập đến tài nguyên vật lý

+ Các chế trong: Có chức xác định tính đắn người dùng xử lý yêu cầu từ bên

MỤC LỤC

Tr ang

Lời nói đầu

Chương I Tổng quan sở liệu

Đ1 Các khái niệm bản

1.1 Dữ liệu hệ thống tệp cổ điển

1.2 Cơ sở liệu

1.3 Vai trò sở liệu

Từ chối truy nhập Cho phép truy nhập Cần thay đổi yêu cầu Các thủ tục

điều khiển

Yêu cầu truynhập

Các sách an tồn

(79)

1.4 Hệ quản trị sở liệu

Đ2 Các mơ hình liệu 10

2.1 Mơ hình hố tin học 10

2.2 Các mơ hình liệu 11

Đ3 Ngơn ngữ điều khiển liệu 16

Chương II Mơ hình liệu quan hệ 17

Đ1 Các định nghĩa 17

Đ2 Cơ sở liệu quan hệ hệ sở liệu quan hệ 19

2.1 Các khái niệm 19

2.2 Tạo lập sở liệu quan hệ 19

Đ3 Định nghĩa siêu khoá khố 20

Đ4 Các phép tính sở liệu quan hệ 21 Chương III Ngôn ngữ định nghĩa thao tác liệu 24

Đ1 Đại số quan hệ 24

1.1 Các phép toán đại số quan hệ 24

1.2 Đại số hệ Đại số quan hệ 33

1.3 Cài đặt phép toán đại số quan hệ 37

1.4 Ngôn ngữ đại số quan hệ 42

1.5 Các ví dụ tìm kiếm ngơn ngữ đại số quan hệ 44

Đ.2 Ngôn ngữ SQL 46

2.1 Các lệnh kiến trúc sở liệu 46

2.2 Các lệnh cập nhật liệu 49

2.3 Các hàm mẫu 53

2.4 Các lệnh truy vấn 53

2.5 Các mệnh đề an toàn liệu SQL 57

Đ3 Ngôn ngữ QBE 58

Chương IV Lý thuyết thiết kế sở liệu quan hệ 63

Đ1 Phụ thuộc hàm 63

1.1 Đặt vấn đề 63

1.2 Định nghĩa phụ thuộc hàm 64

(80)

1.4 Bao đống tập phụ thuộc hàm 64

1.5 Bao đóng tập thuộc tính 65

1.6 Định nghĩa khoá siêu khoá 65

1.7 Tập phụ thuộc hàm tối thiểu 66

Đ2 Phép tách lược đồ quan hệ 68

Đ3 Chuẩn hoá lược đồ quan hệ 69

Chương V Tối ưu hoá câu hỏi 75

Đ1 Chiến lược tối ưu hoá bản 75

Đ2 Các chiến lược tối ưu tổng quát 76

Đ3 Các phép biến đổi tương đương 76

Đ4 Các ví dụ 87

Chương VI Điều khiển khai thác tương tranh 82

Đ1 Các khái niệm 82

1.1 Toàn vẹn liệu 82

1.2 Giao tác chương trình 83

1.3 Vấn đề tương tranh, tranh chấp khai thác liệu 84

Đ2 Đặc tính khai thác khơng xung đột 84

2.1 Các khái niệm 84

2.2 Khai thác có thứ tự 84

2.3 Thuộc tính phép tốn 85

Đ3 Sử dụng thuật toán khoá hai pha 85

Đ4 Các thuật toán cho phép khoá giao tác 86

Chương VII An toàn liệu 88

Đ1 An toàn sở liệu 88

1.1 An toàn sở liệu 88

1.2 Vi phạm an toàn sở liệu 88

1.3 Yêu cầu bảo vệ sở liệu 89

Đ2 Điều khiển an toàn liệu 89

2.1 Điều khiển luồng thông tin 89

2.2 Điều khiển suy diễn 90

(81)(82)

TÀI LIỆU THAM KHẢO

1 Đồn Văn Ban, Ngơ Trung Việt, Đặng Văn Hưng, Trần Thị Phiến Phạm Ngọc Khôi, Phân tích, thiết kế, cài đặt Hệ thơng tin quản lý (Bản dịch), Viện Tin học, 1990

2 Thạc Bình Cường, Bài giảng Phân tích thiết kế hệ thống thông tin, Đại học Bách khoa Hà Nội, 2000.

3 Nguyễn An Tế, Giáo trình Nhập mơn sở liệu, Đại học Quốc gia Thành phố Hồ Chí Minh, 1996

4 Vũ Đức Thi, Cơ sở liệu, Nhà xuất Thống kê Hà nội, 1997 Đỗ Trung Tuấn, Cơ sở liệu, Nhà xuất Giáo dục, 1998

6 Lê Tiến Vương, Nhập môn sở liệu quan hệ, Nhà xuất Khoa học Kỹ thuật, 1996

7 C J Date, An introduction to database Systems, Addison Weslay Publishinh Company, 4th Ed., 1986

8 David Maier, The Theory of Relational Databases, Computer Science Press, Rockville, 1983

(83)

TỦ SÁCH ĐẠI HỌC SƯ PHẠM VINH

PHẠM QUANG TRÌNH

NHẬP MƠN

CƠ SỞ DỮ LIỆU

(84)

PHẠM QUANG TRÌNH

NHẬP MÔN

CƠ SỞ DỮ LIỆU

(85)

Ngày đăng: 26/05/2021, 15:54

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan