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

co so du lieu www kho sach blogspot com

119 209 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 119
Dung lượng 719,32 KB

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

Nội dung

Nhiều khi thuộc tính khoá của tập thực thể A lμ một thuộc tính của tập thực thể B nhờ mối liên hệ R không phải ISA.. Ví dụ 1.9: Chẳng hạn, trong ví dụ 1.5 mỗi công dân đều có thuộc tính

Trang 1

định nμo đó vμ được gọi lμ cơ sở dữ liệu

Như vậy, CSDL lμ tập hợp các thông tin có quan hệ với nhau được lưu trữ trong máy tính theo một qui định nhất định nhằm phục vụ cho một mục đích nμo đó

1.2 Hệ quản trị cơ sở dữ liệu (Database Management System- HQTCSDL)

• Hệ quản trị cơ sở dữ liệu lμ hệ thống các chương trình nhằm tạo lập,

xử lý, thay đổi, quản lý vμ khai thác các CSDL

• Một số HQTCSDL thông dụng hiện nay: Foxpro, Access, Oracle, với các phiên bản khác nhau

• Có hai đặc điểm để phân biệt một HQTCSDL với các hệ thống lập

trình khác:

1) Khả năng quản lí những dữ liệu cố định

2) Khả năng truy xuất có hiệu quả một số lượng lớn dữ liệu

Điểm (1) khẳng định rằng có một CSDL tồn tại thường xuyên vμ nội

Trang 2

Điểm (2) phân biệt một HQTCSDL với các hệ thống quản lí tập tin cùng quản lí dữ liệu cố định nhưng nói chung không cho phép truy xuất nhanh chóng các thμnh phần tuỳ ý của dữ liệu Ngoμi ra còn có một số khả năng khác thường gặp trong các HQTCSDL trên thị trường

3) HQTCSDL hỗ trợ ít nhất một mô hình dữ liệu nhờ đó người sử dụng có thể xem được dữ liệu

4) HQTCSDL hỗ trợ một số ngôn ngữ bậc cao cho phép người sử dụng định nghĩa các câu trúc dữ liệu, truy xuất dữ liệu và thao tác dữ liệu

5) HQTCSDL quản lí các giao dịch, nghĩa là cho phép nhiều người

sử dụng truy xuất đồng thời và chính xác đến một CSDL

6) HQTCSDL điều khiển quá trình truy xuất, là khả năng giới hạn các quá trình truy xuất dữ liệu của những người không được phép và khả năng kiểm tra độ tin cậy của dữ liệu

7) HQTCSDL có khả năng tự thích ứng là khả năng phục hồi lại dữ liệu do sự cố của hệ thống mà làm mất dữ liệu

Trang 3

th nh các kiểu bản ghi logic Các kiểu bản ghi logic bao gồm một tập các trường, mỗi trường chứa giá trị l một số nguyên hay một xâu ký tự Tập

tên các trường v các kiểu của chúng cấu th nh quy cách bản ghi logic

2.2 Mô hình phân cấp

Một mô hình phân cấp đơn giản l một mô hình mạng m l một rừng (tập các cây) trong có tất cả các móc nối trỏ theo hướng từ con đến cha Chúng ta sẽ tiếp tục sử dụng các thuật ngữ của mô hình mạng: kiểu bản ghi logic khi chúng ta nói về mô hình phân cấp

2.3 Mô hình quan hệ : Lμ mô hình dựa vμo ký hiệu lμ tập các tên vμ cơ sở

toán học của nó lμ các phép toán tập hợp vμ ánh xạ Nó lμ mô hình phổ biến hiện nay Tập các phép toán trong mô hình nμy dựa trên hai hệ ký hiệu: hệ

ký hiệu đại số vμ hệ ký hiệu logic

rằng “ Sơ đồ thực thể – liên kết ( Entity Relationship Diagram) có thể chuyển về lược đồ khái niệm ở các mô hình khác (ví dụ mô hình quan hệ) mμ

trên đó các hệ thống CSDL thực sự được xây dựng một cách khá đơn giản

2.4.1 Thực thể

Thuật ngữ thực thể (Entity) không có một định nghĩa hình thức Thực

thể lμ một sự vật tồn tại vμ phân biệt được, nghĩa lμ có thể phân biệt được thực thể nμy với thực thể khác Ví dụ mỗi con người lμ một thực thể, mỗi chiếc xe máy lμ một thực thể Khái niệm về “ Tính phân biệt được ” rất gần với “ đặc tính nhận dạng đối tượng” vì thế mô hình thực thể liên hệ được xem như lμ mô hình hướng đối tượng

Trang 4

2.4.2 Tập thực thể

Một nhóm bao gồm tất cả các thực thể “tương tự” tạo ra một tập thực thể

Ví dụ 1.4: Các tập thực thể

+ Tất cả mọi người trong một cơ quan

+ Tất cả mọi người có tóc đỏ

+ Tất cả mọi xe gắn máy

Một trong các bước mấu chốt để chọn một lược đồ cho thế giới thực khi nó thuộc về một CSDL cụ thể lμ lựa chọn các tập thực thể Khái niệm tập thực thể lμ một khái niệm ở mức lược đồ Khái niệm ở mức thể hiện tương ứng lμ tập con hiện hμnh của tất cả các phần tử của một tập thực thể cho trước đang hiện diện trong CSDL

2.4.3 Thuộc tính và khoá

+ Thuộc tính: Các đặc tính của tập thực thể gọi lμ các thuộc tính Mỗi thuộc

tính của tập thực thể lấy giá trị trên một miền dμnh cho thuộc tính đó

Thường thì miền giá trị đối với mỗi thuộc tính lμ một tập số nguyên, tập các

số thực hoặc chuỗi ký tự nhưng cũng không loại trừ các kiểu giá trị khác Thí dụ một tập thực thể con người có thể khai báo có các thuộc tính như họ

vμ tên (chuỗi ký tự), chiều cao (số thực), ngμy sinh (ngμy tháng năm),

Chọn thuộc tính thích hợp cho các tập thực thể lμ một bước quan trọng trong việc thiết kế lược đồ CSDL khái niệm

+ Khóa: Mỗi thuộc tính hoặc một tập các thuộc tính dùng để xác định một

cách duy nhất mỗi thực thể trong một tập thực thể gọi lμ khóa đối với tập thực thể đó Về nguyên tắc, mỗi thực thể có một khóa, bởi vì mỗi thực thể

đều có thể phân biệt được với thực thể khác Nếu không chọn được một tập các thuộc tính có chứa một khóa cho một tập thực thể thì không có khả năng

Trang 5

phân biệt được thực thể nμy với thực thể kia trong tập thực thể đó Trong trường hợp nμy thì các số đếm thường được gán lμm thuộc tính khóa

Ví dụ 1.5: Một tập thực thể chỉ bao gồm các công dân Việt Nam có thể dùng

thuộc tính “Số chứng minh thư ” (IDNO) lμm khoá Tuy nhiên, nếu muốn xác định một cách duy nhất các công dân của nhiều quốc gia thì không thể

đảm bảo được hai quốc gia sẽ không dùng hai số chứng minh thư giống

nhau Vì vậy, một khoá thích hợp phải gồm một cặp thuộc tính IDNO vμ COUNTRY (nước)

2.4.4 Mối liên hệ

Mối liên hệ (Relationship) giữa các tập thực thể lμ một danh sách có thứ tự của các tập thực thể Một tập thực thể đặc biệt có thể xuất hiện nhiều lần trong danh sách Danh sách các tập thực thể nμy lμ một khái niệm ở mức lược đồ của một mối liên hệ Nếu có một mối liên hệ R giữa các tập thực thể E1, E2, E3, , EK thì thể hiện của R lμ một tập các k – bộ, một tập như thế được gọi lμ một tập liên hệ Mỗi k – bộ (e1, , ek) trong tập liên hệ R khảng định rằng các thực thể e1, e2, ,ek trong đó ei ∈ Ei ; i =1, , k liên kết với nhau thμnh một nhóm trong mối liên hệ R Trường hợp thông dụng nhất

lμ k =2

Ví dụ 1.7: Có một tập thực thể PERSONS có mối liên hệ MOTHER_OF vμ

danh sách các thực thể của nó lμ PERSONS, PERSONS Tập liên hệ tương ứng với mối liên hệ MOTHER_OF gồm tất cả những cặp (P1, P2) sao cho cá thể P2 lμ mẹ cá thể P1

Một cách khác để biểu diễn thông tin nμy lμ thừa nhận tồn tại tập thực thể MOTHERS vμ mối liên hệ MOTHERS isa PERSONS Do vậy mối liên

hệ MOTHER_OF lμ danh sách các tập PERSONS, MOTHERS

Trang 6

2.4.5 Thuộc tính khoá vay mượn

Trong mối liên hệ ISA nếu A isa B thì đương nhiên khoá của A sẽ lμ khoá của B vμ những thuộc tính nμy không xuất hiện như thuộc tính của tập

A mμ vay mượn của tập B

Ví dụ 1.8: (Trong ví dụ 1.6) Khoá của tập DANGVIEN sẽ lμ thuộc tính

MANV của NHANVIEN Vì vậy, một Đảng viên được xác định một cách duy nhất nhờ vμo MaNV của NHANVIEN

Nhiều khi thuộc tính khoá của tập thực thể A lμ một thuộc tính của tập thực thể B nhờ mối liên hệ R không phải ISA Điều nμy cần thiết để cung cấp cho mỗi thực thể a trong A một thực thể b trong B

Ví dụ 1.9: Chẳng hạn, (trong ví dụ 1.5) mỗi công dân đều có thuộc tính

Country vμ cùng với IDNO để tạo ra một khoá cho mỗi công dân điều đó có nghĩa lμ việc thiết kế CSDL đã xem các quốc gia như một kiểu thực thể khác

vμ có một mối liên hệ Country_of liên kết giữa các công dân với các quốc gia Vì vậy, các công dân đã phải mượn thuộc tính Country để cùng với

IDNo lμm khoá Trong các ví dụ trên thuộc tính MANV, Country lμ các thuộc tính khoá vay mượn

sẽ lμ một vòng tròn chứ không phải lμ hình chữ nhật vμ nó gắn kết với các mối liên hệ mμ tập đó hμm chứa

Trang 7

c C¸c h×nh thoi biÓu diÔn c¸c mèi liªn hÖ Chóng ®−îc liªn kÕt víi c¸c c¸c tËp thμnh viªn bëi c¸c c¹nh v« h−íng hoÆc cã h−íng (c¸c cung)

VÝ dô 1.10: Gi¶ sö ta cã 3 tËp thùc thÓ EMPS (Nh©n viªn) cã c¸c thuéc tÝnh

ENO, EName, Salary ( ENO lμ kho¸), DEPTS (Phßng) cã c¸c thuéc tÝnh

DNO, DName, Location (DnO lμ kho¸), MANAGERS (Tr−ëng phßng) cã duy nhÊt thuéc tÝnh ENO (ENO lμ kho¸) Hai tËp ®Çu liªn kÕt nhê mèi liªn

hÖ ASSIGNED_TO (thuéc phßng) vμ hai tËp sau nhê liªn hÖ MANAGES (qu¶n lÝ)

MANAGES S

Trang 8

2.4.7.Tính chất hàm của mối liên hệ

Để mô hình hóa đầy đủ thế giới thực cần phải phân loại các mối liên

hệ theo số lượng các thực thể từ mỗi tập tham gia vμo trong mối liên hệ

a) Mối liên hệ một – một

Một mối liên hệ một - một (one to one ralationship) lμ một mối liên hệ

mμ với mỗi thực thể trong một tập thực thể nμy chỉ có nhiều nhất một phần tử

được liên kết trong tập thực thể kia

Ví dụ 1.11: Mối liên hệ MANAGES giữa depts vμ MANAGER trong ví dụ

trên được khai báo lμ mối liên hệ một - một Nếu như vậy trong CSDL không bao giờ tìm được nhiều trưởng phòng cho một phòng vμ cũng không có người nμo quản lý nhiều phòng Có thể lμ tại một thời điểm một phòng nμo đó

không có trưởng phòng, thậm chí cũng có thể có người có tên trong danh sách trưởng phòng lại không quản lý một phòng nμo cả Tính một- một của mối liên hệ nμy chỉ lμ một giả thiết về thế giới thực Vì vậy, người thiết kế CSDL có thể tuỳ ý chọn lựa Vẫn có thể cho rằng một người lãnh đạo 2

phòng thậm chí 1 phòng có 2 trưởng phòng khi đó mối quan hệ trên lμ nhiều

- nhiều Tuy nhiên nếu cho MANAGES lμ mối liên hệ một - một sẽ có ích hơn khi thiết kế CSDL vật lý

b) Mối liên hệ nhiều – một

Một mối liên hệ giữa các tập thực thể E1 vμ E2 được gọi lμ mối liên hệ nhiều – một (many - one relationship) nếu mỗi thực thể trong tập E2 có thể không liên kết với thực thể nμo hoặc liên kết với một hay nhiều thực thể trong tập E1, nhưng mỗi thực thể trong tập thực thể E1 chỉ liên kết nhiều nhất với một thực thể trong tập thực thể E2

Ví dụ 1.12: Mối liên hệ ASSGNED_TO giữa EMPS vμ DEPS ở ví dụ trên lμ

mối liên hệ nhiều-một, có nghĩa lμ mỗi nhân viên chỉ lμm việc trong một phòng, một vμi nhân viên như giám đốc chẳng hạn không gán cho một phòng nμo cả vμ một phòng có nhiều nhân viên

Trang 9

Khái niệm liên hệ nhiều - một tổng quát hóa thμnh mối liên hệ giữa ba tập trở lên Nếu có một mối liên hệ R giữa các tập E1, E2, , Ek vμ với các thực thể trong tất cả các tập thực thể trừ Ei chỉ có nhiều nhất một thực thể của Ei có liên hệ với chúng thì ta gọi R lμ mối liên hệ nhiều – một từ E1, E2, , Ek (trừ Ei) đến Ei

c) Mối liên hệ nhiều – nhiều

Chúng ta cũng gặp mối liên hệ nhiều – nhiều, ở đó không có môt hạn chế nμo trên tập k – bộ của các thực thể khi xuất hiện trong tập liên hệ Một mối liên nhiều - nhiều (many-many relationship) lμ một mối liên hệ

mμ với mỗi thực thể trong một tập thực thể nμy có thể không liên kết với thực thể nμo hoặc liên kết với một hay nhiều thực thể trong tập thực thể kia

Ví dụ 1.13: Mối liên hệ SUPPLIES giữa tập thực thể SUPPLIERS gồm các

thuộc tính SNO, SNAME, SADDR vμ tập thực thể PRODUCTS gồm các thuộc tính PNO, PNAME, COLOR, WEIGHT lμ mối liên hệ nhiều - nhiều Trong thực hμnh các mối liên hệ nhiều - nhiều thường hay gặp nên phải cẩn thận trong cách diễn đạt những mối liên hệ nμy trong lược đồ khái niệm của CSDL thực sự (thiết kế thực thể - liên hệ không phải lμ lược đồ khái niệm, đúng hơn chỉ lμ bảng phác thảo vμ cần chuyển đổi các tập thực thể vμ các mối liên hệ về mô hình dữ liệu mμ DBMS hỗ trợ) Nhiều mô hình dữ liệu không cho phép biểu diễn trực tiếp các mối liên hệ nhiều - nhiều, yêu cầu phải phân chúng ra thμnh các mối liên hệ nhiều - một

2.5 Mô hình hướng đối tượng : Lμ mô hình cung cấp đặc tính nhận dạng

đối tượng Trong đó mỗi lớp đối tượng được đặc trưng bởi hai yếu tố:

a) Tập các thuộc tính (properties) để nhận dạng đối tượng

b) Tập các phương thức (methods) để thao tác với đối tượng

Trang 10

Câu hỏi và bài tập chương 1

1.1 Nêu khái niệm về CSDL

1.2 Nêu khái niệm HQTCSDL, phân biệt nó với các hệ thống lập trình khác 1.3 Nêu kiến trúc một hệ CSDL vμ phân biệt các mức của nó

1.4 Nêu khái niệm lược đồ vμ thể hiện, cho ví dụ

1.5 Nêu khái niệm mô hình dữ liệu

1.6 Nêu các khái niệm thực thể vμ tập thực thể Cho ví dụ

1.7 Nêu các khái niệm khoá của tập thực thể vμ cho ví dụ

1.8 Nêu các mối liên hệ giữa các tập thực thể vμ cho ví dụ

Chương II: Mô hình cơ sở dữ liệu quan hệ

Loại thực thể MON-HOC có một số thuộc tính Ma-mon, Ten-mon

Chẳng hạn với b i toán quản lý điểm thi của sinh viên: với đối tượng sinh viên ta cần chú ý đến các đặc trưng riêng như họ tên, ng y sinh, giới tính, địa chỉ, lớp các đặc trưng n y gọi l thuộc tính

Các thuộc tính được phân biệt qua tên gọi v phải thuộc v o 1 kiểu dữ liệu nhất định (số, chuỗi, ng y tháng, ) Trong cùng 1 đối tượng không được

có 2 thuộc tính cùng tên

Trang 11

- Mỗi thuộc tính được xác định trên 1 miền giá trị gọi l miền thuộc tính

Ký hiệu DOM (<tên thuộc tính>)

Ví dụ: DOM (họ tên ) = {char(30)}

DOM (tuổi ) = N

Ví dụ 1.2: Thuộc tính ng y trong tháng có kiểu dữ liệu l số nguyên, miền

giá trị của nó l từ 1 đến 31 Hoặc điểm thi của sinh viên có miền giá trị từ 0 đến 10

Người ta dựng các chữ cái hoa A, B, C, để biểu diễn các thuộc tính, hoặc

A1, A2, để biểu diễn một số lượng lớn các thuộc tính

1.2 Quan hệ

• Miền (domain) lμ một tập các giá trị, chẳng khác gì một kiểu dữ liệu (data type) Ví dụ tập các số nguyên lμ một miền, tập các xâu kí tự tạo thμnh tên người trong tiếng Anh có độ dμi không quá 30 kí tự lμ một miền, tập hai số{0,1} cũng lμ một miền v.v

• Tích Đề - Các: Gọi D1, D2, , Dn lμ các miền Tích Đề - Các của n miền nμy ký hiệu lμ D1xD2x xDn lμ tập tất cả n- bộ (n tuples) (v1, v2, , vn) sao cho vi thuộc Di, với i = 1 n

Ví dụ 2.1: n=2, D1={0,1}, D2={a,b,c}

Khi đó:

D1 x D2={(0,a),(0,b),(0,c),(1,a)(1,b),(1,c)}

• Quan hệ (Relation) lμ một tập con của tích Đề - Các của một hoặc nhiều

miền Như vậy, mỗi quan hệ có thể lμ vô hạn ở đây luôn giả thiết rằng, quan hệ lμ một tập hữu hạn

Ví dụ 2.2: {(0,a),(0,c),(1,a)(1,b)} lμ một quan hệ đó lμ tập con của tích đề

các D1xD2 được đề cập ở trên Tập rỗng ∅ cũng lμ một quan hệ

Trang 12

Mỗi phần tử của quan hệ gọi lμ một bộ (tuples) Quan hệ n - ngôi lμ tập con của tích đề các D1 x D2 x x Dn của n - miền Khi đó mỗi bộ của quan hệ có n thμnh phần (v1, v2, , vn) đ−ợc gọi lμ một n-bộ

Về trực quan thì mỗi quan hệ xem như 1 bảng, trong đó mỗi cột l thông tin

về 1 thuộc tính v mỗi dòng l thông tin về một bộ

Nh− vậy khi ta nói cho một l−ợc đồ quan hệ R(A1, A2, , An) có nghĩa lμ ta

đã cho một tập thuộc tính A1, A2, , An vμ trên đó đã tồn tại một quan hệ R

Ví dụ 2.2: Hình 2.3 cho thấy một quan hệ NHAN_VIEN có các thuộc tính

HO_TEN, NAM_SINH, NOI_LAM_VIEC vμ LUONG lμ một quan hệ 4 ngôi

NHAN_VIEN (Ho_Ten Nam_Sinh Noi_lam_viec Luong)

Trang 13

Nam_Sinh, Noi_lam_viec, Luong)

1.5 Thể hiện của quan hệ

Thể hiện (hoặc còn gọi lμ tình trạng) của quan hệ R, ký hiệu bởi TR, lμ

tập hợp các bộ giá trị của quan hệ R vμo một thời điểm Tại những thời điểm

khác nhau thì quan hệ sẽ có những thể hiện khác nhau Thể hiện (hay tình

trạng) của các l−ợc đồ quan hệ con TRi gọi lμ tình trạng của l−ợc đồ cơ sở dữ

liệu

Ví dụ :

Các thể hiện của quan hệ lớp-học vμ môn-học

Quan hệ lớp-học :

QTKD1 Quản trị kinh doanh QT01 96-99 154 QTKD

1.6 Khoá - Siêu khoá - Khoá chỉ định – khoá chính – khoá ngoại

Khoá (key): Khoá của một quan hệ R(A1, A2, ,An) lμ tập con

∅ ≠ K ⊆ { A1, A2, ,An }, thoả mãn các tính chất sau đây:

Trang 14

1) Với bất kỳ 2 bộ t1, t2 ∈ R đều tồn tại một thuộc tính A∈K sao cho

t1[A] ≠ t2[A] Nói một cách khác không tồn tại 2 bộ mμ có giá trị bằng nhau trên mọi thuộc tính của K Điều kiện nμy có thể viết t1[K] ≠ t2[K] Do vậy mỗi giá trị của K lμ xác định duy nhất

2) Không có tập con thực sự nμo của K có tính chất (1)

Một điều quan trọng cần phải nhớ lμ khoá phụ thuộc vμo l−ợc đồ quan

hệ không phụ thuộc vμo thể hiện của quan hệ Một quan hệ có thể có nhiều khoá

Siêu khóa (Super key ): k l 1 khóa của quan hệ r(U) thì mọi tập hợp k’

chứa k đều l khóa của quan hệ r(U)→ k’ gọi l siêu khóa của quan hệ

- Siêu khóa chứa ít thuộc tính nhất được gọi l khóa chỉ định

- Khóa chính: l khóa được chọn để c i đặt trong một hệ quản trị cơ sở dữ

liệu Khi chọn khóa chính ta phải chú ý các tính chất:

ƒ Khóa có tính áp dụng khi nó không bỏ sót bất kỳ trường hợp n o của vấn đề

Trang 15

ƒ Khóa phải có tính duy nhất dùng để phân biệt bộ n y với bộ kia trong quan hệ

ƒ Khóa có tính nhỏ nhất khi ta bỏ qua bất kỳ thuộc tính n o của nó thì

nó không còn tính duy nhất nữa

ƒ Khóa có tính ổn định khi giá trị của khóa không thay đổi

- Khóa ngoại: một thuộc tính được gọi l khóa ngoại nếu nó l thuộc tính

của một lược đồ quan hệ n y nhưng lại l khóa chính của lược đồ quan hệ khác

1.7.Phụ thuộc hàm

Quan hệ R được định nghĩa trên tập thuộc tính U = {A1,A2, ,An}

U

Y

X , ⊂ lμ hai tập con của tập thuộc tính U Nếu tồn tại một ánh xạ f:

X → Y thì ta nói rằng X xác định hμm Y, hay Y phụ thuộc hμm vμo X vμ ký hiệu lμ X →Y Chúng ta sẽ tìm hiểu kỹ hơn về phụ thuộc hμm trong Chương

IV

1.8.Ràng buộc toàn vẹn

Rμng buộc toμn vẹn (viết tắt lμ RBTV) lμ một quy tắc định nghĩa trên một (hay nhiều) quan hệ do môi trường ứng dụng quy định Đó lμ quy tắc để đảm bảo tính nhất quán của dữ liệu trong CSDL

Mỗi RBTV được định nghĩa bằng một thuật toán trong CSDL

Ví dụ:

Quan hệ CCVC(Mã-CBVC, Họ-tên, Hệ-số-lương)

Quy tắc: Hệ số lương của cán bộ viên chức (CBVC) phải lớn hơn hay bằng 1.00 vμ nhỏ hơn hay bằng 10.00

Thuật toán: ccCCVC thì cc.Hệ-số-lương>=1 & cc.Hệ-số-lương<=10

Các khái niệm cũng như vấn đề chủ yếu của RBTV sẽ được trình bμy chi tiết trong Chương IV

Trang 16

1.9.Các thao tác cơ bản trên các quan hệ

Ba thao tác cơ bản trên môtj quan hệ, mμ nhờ đó CSDL đ−ợc thay đổi, đó lμ Thêm(Insert), Xoá (Delete) vμ Sửa (Update) các bộ giá trị của quan hệ

1.9.1.Phép thêm (chèn) một bộ mới vào quan hệ:

Phép thêm một bộ v o quan hệ R = {A1, A2, , An}:

INSERT (R; A1=d1, A2 = d2, , An = dn} trong đó Ai (i = 1, 2, ,

n) l tên các thuộc tính v di ∈ dom (Ai)

Ví dụ: Thêm một bộ t5 = (Vũ Văn Việt, 1986, Caođangcodien, 3.36)

v o quan hệ Nhanvien (Hoten, Namsinh, Noilamviec, Luong):

INSERT (Nhanvien; Hoten = VuVanViet, Namsinh = 1986,

Noilamviec = Caodangcodien, Luong = 3.36)

+ Bộ mới thêm v o không phù hợp với lược đồ quan hệ cho trước + Một giá trị của một thuộc tính n o đó nằm ngo i miền giá trị của thuộc tính đó

+ Giá trị khoá của bộ mới có thể l giá trị đã có trong quan hệ đang lưu trữ

Do vậy, tùy từng hệ cụ thể sẽ có những cách khắc phục riêng

1.9.2 Phép loại bỏ bộ khỏi quan hệ

Phép loại bỏ (DELETE) l phép xoá một bộ ra khỏi một quan hệ cho trước

DELETE (R; d1, d2, , dn)

Ví dụ: khi cần loại bỏ một bộ, chẳng hạn t2 từ quan hệ Nhanvien:

DELETE (Nhanvien; HaiHa; 1987, Khoatin, 4.45)

Chú ý: không phải lúc n o phép loại bỏ cũng cần đầy đủ thông tin về

cả bộ cần loại Khi ta có giá trị của bộ đó tại các thuộc tính khoá K = {B1, , Bn}, lúc đó phép loại bỏ có dạng:

DELETE (R; B1 =e1, , Bi = ei)

1.9.3 Phép sửa đổi giá trị của các thuộc tính của quan Hử

Khi cần điều chỉnh một số giá trị n o đó tại một số thuộc tính, ta sử dụng phép thay đổi

Trang 17

Gọi tập {C1, , Cp}⊆ {A1, , An} l tập các thuộc tính m tại đó casc giá trị của bộ cần thay đổi: CH (R; A1=d1, A1 = d2, , An =d2; C1=e1, C2 = e2, , Cp=ep}

Nếu K = {B1, , Bm} l khoá của quan hệ, khi đó chỉ cần viết:

được tôn trọng Các điều nμy tương tự đối với các phép toán khác như hiệu, giao, tích Descartes

Trang 18

b g a Chú ý: Trong ví dụ trên, ta thấy hai quan hệ R vμ S cùng ngôi, ta vẫn có thể lấy hợp của chúng dù các cột của hai quan hệ trên mang tên khác nhau, miễn

lμ các quan hệ có cùng số l−ợng các thμnh phần Tuy vậy quan hệ thu đ−ợc

sẽ không có tên rõ rμng cho các cột (ta có thể không viết tên cột hoặc đặt tên cho các cột kết quả lμ A, B, C nh−ng nó mang nghĩa mới)

R ∩ S (A B C) a1 b1 c1

2.3.Phép trừ

Hiệu của hai quan hệ R vμ S khả hợp lμ một quan hệ ký hiệu lμ R-S vμ

lμ tập tất cả các bộ t sao cho t thuộc R nh−ng không thuộc S

Trang 19

RxS ( A B C D E F ) a1 b1 c1 d1 e1 f1 a1 b1 c1 d2 e2 f1 a1 b1 c1 d1 e2 f2 a1 b2 c1 d1 e1 f1 a1 b2 c1 d2 e2 f1 a1 b2 c1 d1 e2 f2 R(A B C )

Trang 20

- Trong quan hệ r xác định trên quan hệ U1 l quan hệ bậc n

- Trong quan hệ s xác định trên quan hệ U2 l quan hệ bậc m

Với n > m

Khi đó phép chia của r cho s l 1 tập các bộ t có bậc l n-m sao cho mọi

bộ giá trị u ∈ s thì bộ ghép đ−ợc giữa (t,u) ∈ r

Trang 21

3.Các phép toán trên đại số quan hệ

3.1.Phép chiếu (( Projection )

Cho quan hệ R(A1, A2, ,An), X⊆ { A1, A2, ,An } Phép chiếu quan hệ

R trên tập thuộc tính X lμ một quan hệ trên tập thuộc tính X, ký hiệu lμ

Các phép so sánh trong biểu thức F lμ <, =, >, >=, <= vμ ≠; Các phép logic lμ ∧ (vμ), ∨ (hoặc) vμ ơ (không)

Cho quan hệ R(A1, A2, ,An) Phép chọn quan hệ R với điều kiện F lμ một quan hệ trên tập thuộc tính (A1, A2, ,An) ký hiệu lμ δF(R)

Trang 22

Hình thức hoá phép chọn đ−ợc định nghĩa nh− sau

δF(R) = { t ∈R | F (t) = đúng }

F(t) đ−ợc hiểu lμ giá trị của biểu thức F đối với bộ t

Ví dụ 2.19: Cho quan hệ sau

δ(A=a1) V (D =d2) (R) = ( A B C D )

a1 b1 c1 d2 a2 b2 c2 d2

đó gọi lμ “kết nối tự nhiên “ vμ sử dụng ký hiệu “∗” thay cho ><

Trang 23

3.4.1 phép kết nối nội (Inner Join)

Thực chất lμ phép kết nối bằng đã trình bμy trên Tuy nhiên, ngay cả trong trường hợp hai thuộc tính so sánh có cùng tên thì kết quả phép kết nối vẫn giữ lại 2 tên thuộc tính đó

Ví dụ 3.4.1: Cho 2 quan hệ R(A B C) vμ S(A D E F) với các

bộ giá trị như dưới đây Kết quả phép kết nối nội được cho trên bảng phía bên phải

R(A B C ) S(A D E F) (A B C A D E F)

R >< S = B≥C

R(ABC) ∗ S(CDE) =

R >< S = R.A=S.A

Trang 24

a1 b1 c1 a1 d1 e1 f1 a1 b1 c1 a1 d1 e1 f1 a2 b2 c2 a2 d2 e2 f2 a2 b2 c2 a2 d2 e2 f2 a3 b3 c3 a4 d4 e4 f4 a7 b7 c7 a7 d7 e7 f7 a5 b5 c5 a6 d6 e6 f6

a7 b7 c7 a7 d7 e7 f7

3.4.2 phép kết nối trái (Left Join)

Giả sử có hai quan hệ R(A1 A2 An) vμ S(B1 B2 Bm) t=(a1,a2, , an) vμ u= (b1,b2, ,bm) lμ hai bộ giá trị của R vμ S Gọi r lμ bộ ghép nối u vμo t (hay bộ giá trị t vμ u được “xếp cạnh nhau”) vμ ký hiệu lμ:

đương được với mỗi giá trị của cột S[B], được định nghĩa lμ:

R >< S ={r =(t,u)|(t∈ ,R uSvμ t.A θ u.B)hoặc(tR,u=uNULL với

Ví dụ 3.4.2: Với quan hệ R vμ S cùng các bộ giá trị của chúng đã được cho

trong ví dụ 3.4.1, kết quả của phép kết nối trái của R vμ S lμ:

Trang 25

3.4.3 phép kết nối phải (Right Join)

Vẫn với các quan hệ R,S; Các thuộc tính A, B; vμ các bộ giá trị v,t,u, tNULL,

uNULL được xác định như trên

Phép kết nối phải hai quan hệ R với S trên các thuộc tính A vμ B với phép so sánh bằng, với giả thiết lμ giá trị cột R[A] có thể so sánh tương

đương được với mỗi giá trị của cột S[B], được định nghĩa lμ:

R >< S ={r =(t,u)|(t∈ ,R uSvμ t.A θ u.B)hoặc(uS,t=tNULLvới t.B∉R[A])} A=B

nghĩa lμ, tất cả các bộ r có được nhờ cách đặt bộ giá trị của R vμ S xếp cạnh nhau, nếu có giá trị giống nhau trên 2 thuộc tính kết nối vμ các bộ

NULL của R với các bộ của S, nếu không tìm được giá trị tương ứng của thuộc tính kết nối trên quan hệ R

Ví dụ 3.4.3: Với quan hệ R vμ S cùng các bộ giá trị của chúng đã được cho

trong ví dụ 3.4.1, kết quả của phép kết nối tráI của R vμ S lμ:

Trang 26

Các dòng có giá trị thuộc tính A của S lμ a4 vμ a6 không tìm được giá trị của thuộc tính A tương ứng trong quan hệ R, nên phần đầu của nó được để lμ không xác định Qua bảng kết quả trình bμy trên, chúng ta thấy ý nghĩa của phép toán nμy lμ nhằm xác định các bộ giá trị của quan hệ bên phải nhưng không có bộ tương ứng trong quan hệ phía bên trái

Câu hỏi và bài tập chương 2

2.1 Nêu định nghĩa quan hệ, cho ví dụ

2.2 Nêu các phép toán đại số quan hệ, cho ví dụ

2.3 Cho hai quan hệ r vμ s như sau:

Trang 28

T×m :

a R ∪ S, R ∩ S, R - S

b R x U, R*U, Π A,B(R), δ(A=a1) ∨ (E= e2)(U)

c Π A,B (δ(A=a1) ∨ (E= e2)(R*U))

d δ(A=a1) ∨ (E= e2) ( Π A,B (R*U))

2.5 Cho hai quan hÖ R vμ S

Trang 29

c) Hãy dùng các phép toán đại số quan hệ trả lời các câu hỏi sau

*Cho biết các thông tin A, B, E có A=1 vμ E = 0

*Cho biết các thông tin A, B, C có A=1 hoặc E= 0

d) Tính lại kết quả của các biểu thức ở câu c)

Trang 30

- Hoten: Họ vμ tên sinh viên

- Ngaysinh: Ngμy sinh

- Gioitinh: Giới tính

- Quequan: Quê quán

- Sophach: Số phách

- Diem: Điểm thi của môn học

Hãy dùng các phép toán của đại số quan hệ để trả lời các câu hỏi sau:

a Cho biết họ vμ tên, ngμy sinh, giới tính, quê quán, điểm thi của mỗi sinh viên

b Cho biết họ vμ tên, ngμy sinh, giới tính, điểm thi của những sinh viên có

điểm thi ≥ 5

c Cho biết họ vμ tên, ngμy sinh, diểm thi của những sinh viên có giới tính lμ

“Nu” vμ quê ở “Thai Binh”

d Cho biết họ vμ tên, ngμy sinh, điểm thi của những sinh viên có quê ở

“Nam Dinh” hoặc “Thai Binh” vμ có điểm thi < 3 hoặc điểm thi >8

2.8 Cho 3 quan hệ:

MatHang(Mamh, Tenmh, Mau, DVT)

KhHang(Makh, Tenkh, Diachi, DT, Gioitinh)

MuaBan(Mamh, Makh, Muaban, NgayMB, Soluong, Dongia)

Trang 31

Hãy dùng các phép toán của đại số quan hệ để trả lời các câu hỏi sau:

a Cho biết makh, tenkh, tenmh của những khách hμng đã bán mặt hμng

có mamh = “MH001” hoặc mamh = “MH002”

b Cho biết makh của những khách hμng đã bán mặt hμng mμu đỏ với số l−ợng >100 trong quý I năm 2003

c Cho biết tenkh, diachi, DT của những khách hμng đã bán mặt hμng mμu “Vang” hoặc “xanh” với số l−ợng >100

d Cho biết tenkh, tenmh của những khách hμng có giới tính lμ “nam” đã bán mặt hμng mμu “Den” vμ mua mặt hμng mμu “Xanh” với 200> soluong>100

e Cho biết makh ch−a tham gia mua bán lần nμo

Trang 32

f Cho biết makh ch−a tham gia bán lần nμo

g Cho biết makh, tenkh ch−a tham gia mua bán lần nμo

h Cho biết makh đã mua mặt hμng mμu xanh nh−ng không bán mặt hμng mμu đỏ

i Cho biết makh đã mua mặt hμng mμu xanh vμ bán mặt hμng mμu đỏ

j Cho biết makh đã mua mặt hμng mμu xanh hoặc bán mặt hμng mμu

đỏ

2.9 Cho 2 quan hệ sau:

Ds

001 Nguyễn Vân Anh 20/05/1984 Nữ Nam Định

002 Bùi Thu Huệ 12/04/1987 Nữ Thái Bình

c Cho xem Danh sách sinh viên không dự thi tất cả các môn

d Cho xem Danh sách sinh viên không dự thi tất cả các môn gồm các

thông tin MaSV, Hoten, Ns

Trang 33

Chương III Ngôn ngữ dữ liệu SQL

1 Khái quát về ngôn ngữ dữ liệu SQL

Trong chương nμy trình bμy ngôn ngữ dữ liệu SQL (Structured Query

Language) Đây lμ ngôn ngữ con dữ liệu quan hệ được xác nhận lμ rất mạnh,

phổ dụng vμ lại dễ sử dụng

SQL được phát triển từ ngôn ngữ SEQUEL-2, thử nghiệm vμ cμi đặt tại trung tâm nghiên cứu của hãng IBM ở San Jose, California cho hệ thống QTCSDL lớn điển hình lμ System - R trong System - R, SQL vừa đóng vai trò lμ một ngôn ngữ định nghĩa dữ liệu - DDL vừa lμ ngôn ngữ thao tác dữ liệu - DML SQL lμ một ngôn ngữ phi thủ tục, chuẩn mực vμ điển hình Do vậy hiện nay rất nhiều sản phẩm phần mềm thương mại đều được cμi đặt SQL như Oracle, Visual Foxpro, Visual Basic, Access Trong tμi liệu nμy

sẽ trình bμy các khả năng của ngôn ngữ, đồng thời cung cấp cho bạn đọc thêm kinh nghiệm vμ cách nhìn các hệ QTCSDL tạm gọi lμ “kinh điển” Phép toán cơ bản trong SQL lμ phép ánh xạ được miêu tả như một khối SELECT - FROM - WHERE Các mệnh đề của ngôn ngữ SQL sẽ được trình bμy chi tiết bằng các ví dụ

Các thuật ngữ trong CSDL quan hệ như quan hệ, thuộc tính, bộ,

được thay thế bằng các thuật ngữ như bảng (table), cột (column), bản ghi (record) hoặc hμng (row) để phù hợp với ý nghĩa của các hệ mềm nμy

2 Các lệnh liên quan đến cấu trúc của cơ sở dữ liệu

2.1 Tạo bảng

Cú pháp:

CR EATE TABLE <Tên bảng>(

Trang 34

<Tên cột 1> <kiểu dữ liệu 1> [Not null ],

<Tên cột 2> <kiểu dữ liệu 2> [Not null ],

<Tên cột n> <kiểu dữ liệu n> [Not null ], PRIMARY KEY (Khoá chính),

[UNIQUE (khoá), … ]

[FOREIGN KEY (khoá ngoại) REFERENCES Tên bảng … ]

[Check Điều kiện ràng buộc, … ])

Trong đó:

- Tên bảng: l xâu ký tự bất kỳ, không trùng từ khoâ, không chứa dấu

cách trống

- Tên cột: l xâu ký tự bất kỳ, không chứa dấu cách trống Trong một

bảng tên cột l duy nhất Thứ tự các cột không quan trọng

- Kiểu dữ liệu: Kiểu dữ liệu của cột Kiểu dữ liệu có thể dùng một số loại

Float: Số dấu phẩy động

Char(n): Xâu ký tự có độ dμi tối đa lμ n, n<=255

Varchar(n): kiểu ký tự với kích thước thay đổi từ 0 đến n ký tự Giá trị

lớn nhất của n lμ 2000

Date: Dữ liệu dạng ngμy tháng

Trang 35

Logical: Dữ liệu kiểu logic 1 byte có giá trị hoặc đúng (True), hoặc

sai (False)

- Chỉ thị Notnull: chỉ rằng cột không nhận giá trị rỗng Thuộc tính khoá

ngầm định l Notnull

- Chỉ thị PRIMARYKEY(khoá chính): Khai báo khoá chính của bảng

- Chỉ thị UNIQUE Khoá: Khai báo các khoá khác nếu có

- Chỉ thị FOREIGN KEY (khoá ngoại) REFERENCES Tên bảng :

Khai báo các khoá ngo i của bảng

- Chỉ thị Check điều kiện ràng buộc,…:Khai báo các r ng buộc dữ liệu

Ví dụ: Tạo các bảng sau:

SV(MaSV,TenSV,MaKh,Điachi,Namsinh)

KHOA(MaKh,TenKh,Vitri,TrKhoa)

* Tạo bảng SV

CR EATE TABLE SV(MaSV char (5) Notnull,

TenSV varchar(20) Notnull

MaKh char(2) Notnull

Điachi varchar(30) Notnull

Namsinh Integer Notnull

PRIMARYKEY(MaSV)

FOREIGN KEY(MaKh) REFERENCES KHOA)

*Tạo bảng KHOA:

CR EATE TABLE KHOA(M aKh char(2) Notnull,

T enKh varchar(20) Notnull

Trang 36

Vitri varchar(30) Notnull

TrKhoa varchar(20) Notnull

Lệnh chèn dữ liệu INSERT INTO đ−ợc sử dụng để chèn một dòng hay

h ng dữ liệu mới v o trong một bảng

Cú pháp:

INSERT INTO tên bảng VALUES (value1, value2, )

Trang 37

Hoặc có thể chỉ rõ những cột cụ thể muốn chèn dữ liệu nh− cú pháp sau:

INSERT INTO tênbảng (Column1, column2, )

VALUES (value1, value2 )

Chèn một dòng mới:

INSERT INTO Nhanvien

VALUES (‘05’,‘Van’, ‘21/02/1987’, ‘Giaovien’, ‘HaNoi’, 2.400.000)

Kết quả:

01 Lan 22/9/1988 Ketoan HaiPhong 1.500.000

02 Nghia 12/9/1988 Quanly HaiPhong 1.500.000

03 Hai 22/9/1989 Ketoan HaiPhong 1.000.000

04 Trang 30/1/1999 Taivu BacNinh 2.000.000

05 Van 21/02/1987 Giaovien HaNoi 2.400.000

Ví dụ chèn dữ liệu v o những cột chỉ định cụ thể:

INSERT INTO Nhanvien (MNV, Hoten, Nghenghiep)

VALUES ('Hoang', 'Baove')

Kết quả:

01 Lan 22/9/1988 Ketoan HaiPhong 1.500.000

02 Nghia 12/9/1988 Quanly HaiPhong 1.500.000

03 Hai 22/9/1989 Ketoan HaiPhong 1.000.000

04 Trang 30/1/1999 Taivu BacNinh 2.000.000

3.2.Cập nhật nội dung của bộ trong bảng

Lệnh cập nhật dữ liệu đ−ợc sử dụng để sửa đổi dữ liệu trong một bảng

Cú pháp:

UPDATE tên bảng

SET <tên cột 1> = <biểu thức 1>,

Trang 38

<tên cột 2> = <biểu thức 2>,

<tên cột n> = <biểu thức n>

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

Ví dụ: Đổi tên Nghenghiep một người có tên l Hoang th nh nghề

Taivu

UPDATE Nhanvien SET Nghenghiep = 'Taivu'

WHERE Hoten= 'Hoang'

Kết quả:

01 Lan 22/9/1988 Ketoan HaiPhong 1.500.000

02 Nghia 12/9/1988 Quanly HaiPhong 1.500.000

03 Hai 22/9/1989 Ketoan HaiPhong 1.000.000

04 Trang 30/1/1999 Taivu BacNinh 2.000.000

Cập nhật nhiều cột trong một dòng dữ liệu

Chúng ta muốn thay đổi địa chỉ v thêm v o tiền lương:

UPDATE Nhanvien

SET Diachi = 'BacNinh', Luong = '3.000.000'

WHERE Hoten = 'Hoang'

Kết quả:

01 Lan 22/9/1988 Ketoan HaiPhong 1.500.000

02 Nghia 12/9/1988 Quanly HaiPhong 1.500.000

03 Hai 22/9/1989 Ketoan HaiPhong 1.000.000

04 Trang 30/1/1999 Taivu BacNinh 2.000.000

Trang 39

MNV Hoten Ngaysinh Nghenghiep Diachi Luong

01 Lan 22/9/1988 Ketoan HaiPhong 1.500.000

02 Nghia 12/9/1988 Quanly HaiPhong 1.500.000

03 Hai 22/9/1989 Ketoan HaiPhong 1.000.000

04 Trang 30/1/1999 Taivu BacNinh 2.000.000

Xoá tất cả các hàng

Có thể xoá tất cả các dòng trong một bảng m không cần phải xoá bảng Điềuu n y có nghĩa l cấu trúc bảng, cột v chỉ mục sẽ không bị thay đổi v mất đi

DELETE FROM tên bảng

Hoặc

DELETE * FROM tên bảng

4 Các lệnh truy vấn cơ sở dữ liệu

Cấu trúc đơn giản nhất trong SQL lμ khối SELECT đ−ợc miêu tả về cú pháp

nh− một khối select -from -where

Một cách tổng quát khối select bao gồm 3 mệnh đề chính:

Select: Xác định nội dung của các cột cần đ−a ra kết quả

From: Xác định các bảng cần lấy thông tin ra Where: Xác định các bản ghi thoả điều kiện chọn lọc để đ−a ra

kết quả

Ngoμi ra, để mở rộng khả năng của ngôn ngữ, khối select - from -

where còn đ−ợc bổ sung thêm các mệnh đề group by, having, order by, các hμm mẫu vμ một số phần mềm còn thêm cả mệnh đề compute, for browse

Trong các phần sau sẽ trình bμy chi tiết từng mệnh đề

Dạng tổng quát của khối lệnh select đ−ợc biểu diễn nh− sau:

Select [∗ | distinct ] danh_sách_cột / biểu thức

From danh_sách_tên_bảng | tên_các_view

[ where biểu_thức_điều_kiện]

Trang 40

[ groupe by danh_sách_tên_cột ]

[having biểu_thức_điều_kiện ]

[ order by { tên_cột | số_thứ_tự_cột | biểu_thức }

[ASC/ DESC ] ]

Trong đó mệnh đề where được biểu diễn dạng:

WHERE [NOT] biểu_thức phép_sánh biểu_thức

WHERE [NOT] tên_cột [ NOT ] LIKE xâu_ký_tự

WHERE [NOT] biểu_thức [ NOT ] BETWEEN biểu_thức and

WHERE [NOT] biểu_thức_logic

WHERE [NOT] biểu_thức_logic { AND | OR}[ NOT ]

biểu_thức_logic

4.1 Tìm thông tin từ các cột của bảng (phép chiếu)

Trước hết lμm quen với các câu hỏi chỉ liên quan tới một bảng Trong mệnh đề select có danh sách chiếu Danh sách nμy xác định tên các cột cần

có trong bảng kết quả Nếu xuất hiện giá trị ‘*’ có nghĩa lμ chọn toμn bộ các cột của bảng

Ví dụ 4.1.1: Cho biết tất cả các thông tin về các nhμ cung cấp

Ngày đăng: 22/12/2016, 12:51

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Ví dụ sơ đồ thực thể - liên kết. - co so du lieu www kho sach blogspot com
Hình 2.1 Ví dụ sơ đồ thực thể - liên kết (Trang 7)
Hình thức hoá phép chọn đ−ợc định nghĩa nh− sau - co so du lieu www kho sach blogspot com
Hình th ức hoá phép chọn đ−ợc định nghĩa nh− sau (Trang 22)
Bảng n y chứa to n các ký hiệu + ,  – hoặc -(*). - co so du lieu www kho sach blogspot com
Bảng n y chứa to n các ký hiệu + , – hoặc -(*) (Trang 57)
Bảng kết quả lμ: - co so du lieu www kho sach blogspot com
Bảng k ết quả lμ: (Trang 84)
Hình 6.2 Cây với tổ hợp phép chọn và phép chiếu - co so du lieu www kho sach blogspot com
Hình 6.2 Cây với tổ hợp phép chọn và phép chiếu (Trang 111)

TỪ KHÓA LIÊN QUAN

w