Tài liệu Cơ sở dữ liệu - Bài 1: Tổng quan vềcơ sở dữ liệu: CƠ SỞ DỮ LIỆU
GV: ThS.VŨ VĂN ĐỊNH
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
*************************
Bài 1. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
1. Tại sao cần phải có một CSDL?
- Hệ thống các tập tin cổ điển :
• Được tổ chức riêng rẽ, phục vụ một mục đích hay một
bộ phận nào đó của doanh nghiệp.
• Nhược điểm:
- Tính phụ thuộc giữa chương trình và dữ liệu .
- Lưu trữ trùng lặp dữ liệu
- Việc chia sẻ dữ liệu bị hạn chế
- Tốn thời gian xây dựng
- Chi phí cho bảo trì chương trình lớn
2. Ví dụ về CSDL.
-Cơ sở dữ liệu cho một công ty chuyên
kinh doanh :
Gồm các bảng: KHACH HANG, SANPHAM,
DON_DAT_HANG, NHA_CUNG_CAP,... và
một số quy tắc nghiệp vụ áp đặt lên các
bảng.
Ví dụ về bảng KHACHHANG :
STT MKH Tên KH Ma hang So
luong
1 CN22 Hoàng Hà MK02 8
2 CT20 Bến Nghé CT01 200
3. Cơ sở dữ liệu là gì?
ĐN: CSDL là một tập hợp các dữ liệu có cấu trúc
về một tổ chức nào đó được lưu trữ trên các thiết
bị lưu trữ thông tin thứ cấp như băng từ, đĩa từ,..
Mục đích: Nh...
75 trang |
Chia sẻ: Khủng Long | Lượt xem: 1181 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Cơ sở dữ liệu - Bài 1: Tổng quan vềcơ sở dữ liệu, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
CƠ SỞ DỮ LIỆU
GV: ThS.VŨ VĂN ĐỊNH
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
*************************
Bài 1. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
1. Tại sao cần phải có một CSDL?
- Hệ thống các tập tin cổ điển :
• Được tổ chức riêng rẽ, phục vụ một mục đích hay một
bộ phận nào đó của doanh nghiệp.
• Nhược điểm:
- Tính phụ thuộc giữa chương trình và dữ liệu .
- Lưu trữ trùng lặp dữ liệu
- Việc chia sẻ dữ liệu bị hạn chế
- Tốn thời gian xây dựng
- Chi phí cho bảo trì chương trình lớn
2. Ví dụ về CSDL.
-Cơ sở dữ liệu cho một công ty chuyên
kinh doanh :
Gồm các bảng: KHACH HANG, SANPHAM,
DON_DAT_HANG, NHA_CUNG_CAP,... và
một số quy tắc nghiệp vụ áp đặt lên các
bảng.
Ví dụ về bảng KHACHHANG :
STT MKH Tên KH Ma hang So
luong
1 CN22 Hoàng Hà MK02 8
2 CT20 Bến Nghé CT01 200
3. Cơ sở dữ liệu là gì?
ĐN: CSDL là một tập hợp các dữ liệu có cấu trúc
về một tổ chức nào đó được lưu trữ trên các thiết
bị lưu trữ thông tin thứ cấp như băng từ, đĩa từ,..
Mục đích: Nhằm thoả mãn nhu cầu khai thác
thông tin của một hay nhiều người sử dụng phục vụ
cho nhiều mục đích khác nhau
Điểm khác nhau nổi bật giữa CSDL và hệ thống
File là : Các dữ liệu trong CSDL được lưu trữ tại
một vị trí. Với cùng một CSDL có thể được nhiều
người sử dụng và phục vụ cho nhiều mục đích khác
nhau.
Ưu điểm của CSDL:
Tối thiểu hoá dư thừa thông tin
Tính độc lập chương trình- ứng dụng
Nâng cao tính nhất quán dữ liệu
Nâng cao tính chia sẻ dữ liệu
Nâng cao chất lượng dữ liệu
Nâng cao khả năng truy cập và trả lại dữ liệu
Giảm chi phí bảo trì chương trình.
Tính bảo mật
Tính độc lập
Tránh sự dư thừa thông tin
Có khả năng lưu trữ, phục hồi khi gặp sự cố
Hiệu suất sử dụng tốt, đảm bảo chế độ ưu tiên khi
truy nhập dữ liệu.
Tiêu chuẩn của một CSDL:
4. Các đối tượng sử dụng CSDL
Những người sử dụng không chuyên
về lĩnh vực tin học
Các chuyên viên tin học biết khai
thác CSDL
Những người quản trị CSDL: là người
tổ chức CSDL, cấp quyền hạn khai
thác dữ liệu và giải quyết các tranh
chấp khi gặp sự cố
Gồm 3 mức :
Mức ngoài : là tập tất cả các dữ liệu mà người sử dụng
cụ thể có thể nhìn thấy và được phép truy cập, là mức của
người sử dụng và các chương trình ứng dụng.
Mức quan niệm : giải quyết vấn đề lưu trữ dữ liệu loại
gì, lưu trữ bao nhiêu, mối quan hệ trong CSDL và mối quan
hệ giữa các loại dữ liệu này như thế nào?
Mức trong( mức vật lý): Đây là mức lưu trữ dữ liệu.
Mục đích của mức này giải quyết vấn đề dữ liệu là gì, dữ
liệu được lưu trữ như thế nào và nhằm mục đích gì.
5. Các mức biểu diễn một CSDL.
CSDL
mức
khái
niệm
View 1
View 2
View k
CSDL
mức
vật
lý
.
User 1
User 2
User k
Mức ngoài Mức trung gian Mức vật lý
View ( khung nhìn) của một user là một tập hợp tất cả
các dữ liệu mà user đó nhìn thấy, được phép truy cập vào.
Hình biểu diễn Sự phân mức một CSDL
6. Tính độc lập giữa dữ liệu và
chương trình
Một CSDL là độc lập dữ liệu nếu nó có hoặc có thể có
khả năng phát triển mà không ảnh hưởng tới các hệ ứng
dụng.
Tính độc lập dữ liệu là " tính bất biến của các hệ ứng
dụng đối với các thay đổi trong cấu trúc lưu trữ và chiến
lược truy nhập"
Có hai mức độc lập dữ liệu:
Độc lập dữ liệu mức vật lý : Có thể tổ
chức lại CSDL vật lý (như thay đổi các tổ
chức, cấu trúc dữ liệu) để làm thay đổi
hiệu quả tính toán của các chương trình
ứng dụng nhưng không đòi hỏi phải viết
lại chương trình ứng dụng.
Độc lập dữ liệu mức logic: Có thể
thay đổi lược đồ khái niệm như thêm,
xoá , bớt thông tin của các thực thể
đang tồn tại trong CSDL nhưng không
làm ảnh hưởng tới các lược đồ con, do
đó không cần phải viết lại các chương
trình ứng dụng.
II. Hệ quản trị CSDL
1. Khái niệm
- Là một phần mềm điều khiển mọi truy
nhập đối với CSDL. Nó giúp người sử dụng
có thể dùng được hệ thống mà không cần
quan tâm tới thuật toán chi tiết hoặc biểu
diễn dữ liệu trong máy.
- Mỗi hệ QT CSDL được cài đặt dựa trên
mô hình dữ liệu cụ thể và hỗ trợ tối đa cho
người dùng thực hiện các thao tác trên
đó.
- VD : FOXPRO, ACCESS, ORACLE, v.v..
2.Tính năng của hệ QTCSDL:
Tạo cấu trúc lưu trữ dữ liệu trên
máy. Cho phép đưa dữ liệu vào máy
tính theo cấu trúc đã tạo ra.
Cho phép khai thác CSDL đã lưu trữ
Tạo cơ chế đảm bảo an toàn, bí mật
cho dữ liệu trong quá trình thao tác
-3. Các thành phần trong hệ QT CSDL:
Ngôn ngữ giao tiếp với người sử dụng: Gồm :ngôn ngữ
mô tả , thao tác , truy vấn và quản lý dữ liệu.
- Từ điển dữ liệu : là một CSDL của hệ QT CSDL sử dụng
để lưu trữ cấu trúc CSDL, các thông tin bảo mật, bảo đảm
an toàn dữ liệu và các cấu trúc ngoài
- Các biện pháp bảo mật
- Cơ chế giải quyết tranh chấp dữ liệu. Các biện pháp:
+ Cấp quyên ưu tiên cho NSD
+ Đánh dấu yêu cầu truy xuất, phân chia thời gian,
người nào yêu cầu trước thì có quyền truy xuất trước.
- Cơ chế phục hồi, sao lưu dữ liệu khi
có sự cố:
+ Định kỳ kiểm tra CSDL, sau một
thời gian nhất định tự động tạo bản sao.
+ Tạo nhật kí thao tác, khi có sự cố
thì tự động lật ngược lại để phụ hồi.
- Đảm bảo tính độc lập giữa dữ liệu và
chương trình.
- Cung cấp giao diện thân thiện với người dùng
không chuyên
Bài 2
NHỮNG CÁCH TIẾP CẬN MỘT CSDL
Mô hình dữ liệu là sự trừu tượng hoá
môi trường thực, nó là biểu diễn dữ liệu ở
mức quan niệm.
Mỗi loại mô hình dữ liệu đặc trưng cho
một cách tiếp cận dữ liệu khác nhau của
những nhà phân tích thiết kế CSDL.
Một số loại mô hình dữ liệu phổ biến :
1. Mô hình dữ liệu quan hệ
Mô hình dữ liệu quan hệ do E.F.
Codd đề xuất.
Nền tảng cơ bản của nó là khái
niệm lý thuyết tập hợp trên các quan
hệ, tức là tập các bộ giá trị.
2. Cách tiếp cận theo mô hình dữ liệu
mạng
Mô hình dữ liệu mạng (lưới) là mô hình
được biểu diễn bởi một đồ thị có hướng.
Loại mẫu tin (Record Type): là mẫu đặc
trưng cho từng loại đối tượng riêng biệt, được
biểu diễn bởi một hình chữ nhật.
Loại liên hệ ( Set Type): là sự liên kết
giữa một loại mẫu tin chủ với một loại mẫu tin
thành viên, được biểu diễn bởi một hình bầu
dục.
Sự liên kết giữa 2 loại mẫu tin được thể
hiện bởi các cung có hướng đi từ loại mẫu tin
chủ tới loại liên hệ và từ loại liên hệ tới loại
mẫu tin thành viên.
Trong loại liên kết, cần chỉ ra số
lượng các mẫu tin tham gia trong
mỗi kết hợp. Các loại liên hệ:
1-1
1-n
n-1
Đệ quy
PHÒNG
CÔNG VIỆC
LÝ LỊCH
NHÂN VIÊN
CóGồm
Cùng làm
quản lý
1-nn-1
1-n
1-1
Hình 3. Mô hình dữ liệu mạng ( Network Model)
3. Mô hình dữ liệu phân cấp
Mô hình dữ liệu phân cấp là một cây ( Tree)
trong đó mỗi nút của cây biểu diễn một thực thể, giữa
nút con và nút cha được liên hệ với nhau theo một mối
quan hệ xác định.
Loại mẫu tin : Giống trong mô hình mạng
Loại liên hệ : Kiểu liên hệ là phân cấp, theo cách:
Mẫu tin thành viên chỉ đóng vai trò thành viên
của một mối liên hệ duy nhất, tức là thuộc một
chủ duy nhất.
- Như vậy, mối liên hệ từ mẫu tin chủ tới các mẫu tin
thành viên là 1-n, và từ mẫu tin thành viên tới mẫu
tin chủ là 1-1.
- Giữa hai loại mẫu tin chỉ tồn tại một mối liên hệ duy
nhất
Ví dụ : TOÀN QUỐC
HÀ
NỘI
HẢI PHÒNG NAM
ĐỊNH
NAM HỒNGCỔ
LOA
BA
ĐÌNH
ĐÔNG ANH
NK 1
HỘ
2
NK 1
HỘ 1
4. Mô hình dữ liệu hướng đối tượng
- Cho phép biểu diễn các đối tượng khá
tự nhiên và sát với thực tế.
- Hỗ trợ các ngôn ngữ thao tác hướng
đối tượng mạnh, cho phép người sử
dụng dễ dàng biểu diễn cả các truy
vấn phức tạp
Bài 3. Mô hình quan hệ của E.F. Codd
I. Khái quát chung
Mô hình quan hệ :
• Biểu thị dữ liệu trong một CSDL như một tập các quan
hệ.
• Một quan hệ là một bảng các giá trị gồm các dòng và các
cột.
• Mỗi dòng trong bảng là một tập các giá trị có liên quan
đến nhau, biểu thị một sự kiện tương ứng với một thực
thể hay một mối quan hệ tương ứng với thế giới thực.
VD: Quan hệ :
SINH_VIEN (Ma SV, Hoten, Nam sinh, DiaChi, Diem)
t38Tây Hồ1985Hoàng Hà003
t210Ba Đình1980Minh Tuấn002
t19Hoàn
Kiếm
1986Ngọc Anh001
ĐiemDiachiNamsinhHotenMã SV
II. Các khái niệm của mô hình quan hệ
1. Thuộc tính :
• Mỗi đối tượng quản lý đều có các đặc tính riêng biệt, gọi
là các thuộc tính. Kí hiệu các thuộc tính là A, B, C, A1, A2,...
• VD: Mã sinh viên, họ tên, quê quán, ngày sinh, ...
• Các thuộc tính được đặc trưng bởi một tên gọi, kiểu giá
trị, miền giá trị của chúng.
2. Lược đồ quan hệ :
Một lược đồ quan hệ được đặc trưng bởi tên lược đồ và
một tập hữu hạn các thuộc tính U={A1, A2, ..., An}. Lược đồ R
với tập thuộc tính là U= { A1, A2,... An} được kí hiệu là R(U)
hay R ( A1, A2, ... An).
3. Miền giá trị :
- Là tập hợp các giá trị nguyên tử mà thuộc tính có thể
nhận
- Để đặc tả một miền, người ta dùng:
tên miền, một kiểu dữ liệu và khuôn dạng dữ liệu.
VD: Miền Mã SV là tập hợp các dãy kí tự có độ dài từ 5
ki tự Miền Điểm là tập các giá trị số thuộc [0..10]
4. Quan hệ :
Một quan hệ trên một tập thuộc tính là một tập
con của tích Desscartes cuả một hay nhiều miền.
Cho một quan hệ r xác định trên tập thuộc
tính ={ A1, A2, ..,An}.
Khi đó r Dom(A1) x Dom(A2) x ...x
Dom(An), trong đó Dom(Ai ) là miền của thuộc
tính Ai
Như vậy, quan hệ r là một tập hợp các n_ bộ có
dạng :
r = {( a1, a2,.., an) | ai Dom(Ai), i= 1, 2,..,n }
Có thể quan niệm quan hệ là một bảng hai
chiều, mỗi cột là một thuộc tính thường gọi là
trường, mỗi dòng là một bộ n.
VD: Quan hệ R= {(di1,di2,...,din ) / i=1..m}
An...A2A1
dmn...dm2dm1
............
d2n...d22d21
d1n...d12d11
Một số chú ý :
- Các tập D1= Dom ( A1),.., Dn=Dom ( An)
là tập các miền trị của R
- n được gọi là bậc của quan hệ r
- M được gọi là lực lượng của r
- Quan hệ bậc 1 là quan hệ nhất nguyên,
quan hệ bậc hai là quan hệ nhị nguyên, quan hệ
bậc n là qua hệ n nguyên.
Các tính chất dặc trưng của một quan hệ.
• Một quan hệ có một tên phân biệt với các quan hệ khác
• Mỗi ô trong bảng quan hệ chứa một giá trị nguyên tố
• Mỗi thuộc tính trong một quan hệ có một tên phân biệt
• Các giá trị của một thuộc tính thuộc cùng một miền
• Thứ tự của các thuộc tính, các bộ là không quan trọng
• Các bộ trong quan hệ là phân biệt
VD: Quan hệ TKB( Ngày, tiết thứ, môn, phòng, GV}
là một quan hệ 5 ngôi.
t3Hoàng Hà200CSDL326/3
t2Minh Tuấn102NN225/3
t1Ngọc Anh202CSB2124/3
GVPhòngMônTiết thứNgày
t1 (24/3, 1, CSB2, 202, Ngoc Anh)= t1(R)
Chú ý : Các khái niệm tương đương
(Fox)(SQL-Access)(NN ĐSQH)
Bản ghiDòngBộ
TrườngCộtThuộc tính
TệpBảngQuan hệ
4. Khoá và siêu khoá
a. Siêu khoá
• Siêu khoá của một quan hệ R là một tập hợp gồm
một hay nhiều thuộc tính của lược đồ R có tính chất xác
định duy nhất một bộ trong mỗi thể hiện của R.
• Nếu SK là siêu khoá của R= thì SK và
trong một quan hệ bất kỳ của lược đồ R không thể có hai
bộ khác nhau nhưng có cùng một giá trị trên SK.
• Mỗi quan hệ có ít nhất một siêu khoá, đó là - tập tất
cả các thuộc tính của quan hệ.
• Mọi tập con của chứa một siêu khoá cũng là siêu
khoá.
b.Khoá
Khoá của một lược đồ quan hệ R là một siêu khoá
của lược đồ này sao cho mọi tập con thực sự của nó
không là siêu khoá.
Như vậy, một khoá là một siêu khoá tối thiểu hiểu
theo nghĩa, đó là một siêu khoá mà chúng ta không thể bỏ
bớt thuộc tính nào ra khỏi nó mà vẫn giữ được tính chất
xác định duy nhất cho mỗi bộ.
VD: Xét quan hệ SINH_VIEN
- Các siêu khoá : {Mã SV, Họ tên} hay {Mã SV, ngày
sinh, điểm,},...
- Khoá : {Mã SV}
•- Một lược đồ quan hệ có nhiều hơn một khoá, khi đó
mỗi khoá được gọi là một khoá dự tuyển.
• Thông thường có một khoá dự tuyển được chọn làm
khoá chính. Ta nên chọn khoá dự tuyển có một thuộc
tính hoặc có ít thuộc tính nhất làm khoá chính.
• Khoá chính là khóa được dùng để nhận diện một bộ
trong quan hệ do đó các giá trị của các bộ ở các thuộc
tính trong khoá chính không được null.
• Thuộc tính khoá : là các thuộc tính có tham gia vào
một khoá ( khoá dự tuyển hay khoá chính).
• Ngược lại, thuộc tính không tham gia vào một khoá
nào gọi là thuộc tính không khoá.
VD: Quan hệ KHOA
- Quan hệ trên có 3 khoá dự tuyển là { Mã khoa}, {
Tên khoa}, {Điện thoại }. Người ta thường chọn Mã
khoa làm khoá chính. Như vậy, thuộc tính không khoá
chỉ còn là : Địa chỉ và Chủ nhiệm khoa
Nguyễn AnhA304.7683
43
CNTTSPCN
Hoài NamA404.7689
45
VănSPV
Nguyễn AnhA304.7684
59
ToánSPT
Chủ nhiệm
khoa
Địa chỉĐiện
thoại
Tên
khoa
Mã
khoa
c. Khoá ngoài :
Một tập thuộc tính K là khoá ngoài của một quan hệ
r nếu K không là khoá chính của quan hệ r nhưng lại
là khoá chính của một quan hệ khác .
VD: Có hai quan hệ:
SINHVIEN (Mã SV, Tên SV,..., Mã lớp)
LOP( Mã lớp, Tên lớp,...)
Mã lớp là khoá ngoài của quan hệ SINHVIEN.
Bài 4. Đại số quan hệ
I. Đại số quan hệ
Đại số quan hệ là cơ sở của một ngôn ngữ bậc
cao để thao tác trên các quan hệ. Đại số quan hệ gồm 8
phép toán cơ bản. Bằng các phép toán này, ta có thể trích
dữ liệu từ một hay nhiều quan hệ để tạo ra các quan hệ
mới.
II. Các phép toán lý thuyết tập hợp
-Gọi r là quan hệ trên tập thuộc tính R={A1, ..,An}.
Giả thiết rằng r là tập hữu hạn các bộ.
- Khái niệm khả hợp : Hai lược đồ quan hệ R1 và
R2 được goị là khả hợp nếu có cùng bậc n và
DOM(Ai) = DOM(Bi) (1in)
- Cho hai quan hệ R1=(A1,A2,..An) và
R2=(B1,B2,..,Bn) là hai quan hệ khả hợp, ta có định
nghĩa:
1.Phép hợp
Hợp của hai quan hệ r và s khả hợp, kí hiệu là r s là tập
các bộ thuộc r hoặc s hoặc thuộc cả hai quan hệ.
Biểu diễn hình thức:
r s = { t/ t r hoặc t s hoặc t r và s }
Ví dụ :
r ( A B C) s ( A B C) r s = ( A B C)
___________ __________ _________________
a1 b1 c1 a1 b1 c1 a1 b1 c1
a2 b1 c2 a2 b2 c2 a2 b1 c2
a2 b2 c1 a2 b2 c2
a2 b2 c1
2. Phép giao
Giao của hai quan hệ r và s khả hợp, kí hiệu là
r s là tập các bộ thuộc cả quan hệ r và s .
Biểu diễn hình thức :
r s = { t/ t r và t s }
Ví dụ : Với hai quan hệ ở ví dụ trên, giao của chúng
là:
r s = ( A B C )
a1 b1 c1
3. Phép trừ
Hiệu của hai quan hệ r và s khả hợp, kí hiệu là r - s
là tập các bộ thuộc r nhưng không thuộc s .
Biểu diễn hình thức :
r - s = { t/ t r và t s }
Ví dụ : Cũng với ví dụ trên, hiệu của chúng là:
r - s = ( A B C )
a2 b1 c2
a2 b2 c1
Chú ý : phép giao của hai quan hệ có thể biểu diễn qua phép
trừ:
r s = r- ( r - s )
4. Tích Đề -Các
- Gọi r là quan hệ xác định trên tập thuộc tính { A1, A2,..,An} và s là
quan hệ xác định trên tập thuộc tính { B1, B2,..,Bm} . Tích Đề - Các
r x s của r và s là tập ( n + m ) - bộ với n thành phần đầu có dạng
một bộ thuộc r và m thành phần sau có dạng của một bộ thuộc s.
- Biểu diễn hình thức :
r x s = { t/ t có dạng (a1, a2, .., an, b1, b2,..,bm)
trong đó ( a1, ..,an ) r và (b1,.. ,bm) s }
- Ví dụ :
r ( A B C) s ( D E F) r x s = ( A B C D E F)
a1 b1 c1 d e f a1 b1 c1 d e f
a2 b2 c2 d1 e1 f 1 a1 b1 c1 d1 e1 f1
a2 b2 c2 d e f
a2 b2 c2 d1 e1 f1
5. Phép chiếu
Phép chiếu trên một quan hệ thực chất là loại bỏ đi
một số thuộc tính và giữ lại những thuộc tính còn lại của
quan hệ đó. Dạng tổng quát : (< tên
quan hệ >)
là kí hiệu phép chiếu.
: danh sách các thuộc tính được lấy ra
Nếu chỉ có những thuộc tính không
khoá thì phép chiếu sẽ tự bỏ đi những bộ lặp.
Phép chiếu không có tính giao hoán.
Nếu thì
( (R)) = (R)
Ví dụ :
Cho quan hệ SV ( Mã SV, Họ tên, Ngày sinh, điểm) như sau :
10004
7003
9002
8001
ĐiểmMã
SV
Thì phép chiếu Mã Sv, Điểm (SV) sẽ cho ta một quan hệ mới chỉ
gồm hai thuộc tính là Mã SV và Điểm .
1021/6/85Hồng Vân004
725/3/87Xuân Mai003
913/4/85Ngọc Bích002
823/4/86Trần Anh001
ĐiểmNgày sinhHọ tênMã
SV
DIEM( Mã SV, Điểm ) :
6. Phép chọn
Phép chọn dùng để trích chọn một tập con trong một
quan hệ, các bộ được trích chọn phải thoả mãn điều kiện chọn.
( Phép chọn trích ra các hàng trong quan hệ)
Dạng tổng quát : ()
là kí hiệu phép chọn.
Kết quả thu được từ phép chọn là một quan hệ có danh sách
thuộc tính được chỉ ra trong Tên quan hệ
Điều kiện : là các biểu thức điều kiện cần thoả mãn.. Các
biểu thức này được nối với nhau bằng các phép: ( phủ định ),
(giao), (hợp)
Phép chọn có tính giao hoán.
7. Phép kết nối
Phép kết nối : Dùng để kết hợp hai bộ có
liên quan từ hai quan hệ thành một bộ.
Trước hết ta làm quen với khái niệm xếp
cạnh nhau:
Cho bộ d =( d1, d2,..,dm) và bộ e= (e1, e2,..,
em). Phép xếp cạnh nhau được định nghĩa qua :
d e = ( d1, d2,.., dm,e1, e2,..,em).
Gọi là một trong các phép so sánh . Phép kết nội
được định nghĩa:
Phép kết nối của quan hệ r đối với thuộc tính A
với quan hệ s đối với thuộc tính B được định nghĩa
qua.
r s = { (t u ) | t r và u s và t[A] u[B] }
A B
Kết quả của phép kết nối là một quan hệ Q có (
n+m) thuộc tính, mỗi bộ trong Q thoả mãn điều
kiện kết nối.
Các bộ có giá trị rỗng tại thuộc tính kết nối
thì không xuất hiện trong kết quả của phép kết.
Bản chất của phép kết nối là phép lấy tích
Đề - Các của hai quan hệ và chọn ra các bộ thoả
mãn điều kiện kết.
Ví dụ :
r ( A B C ) s( C D E ) r s = ( A B C C D E)
a1 1 1 1 d1 e1 a1 1 1 1 d1 e1
a2 2 1 2 d2 e2 a2 2 1 1 d1 e1
a1 2 2 3 d3 e3 a2 2 1 2 d2 e2
a1 2 2 1 d1 e1
a1 2 2 2 d2 e2
B≥ C
Nếu điều kiện kết nối chứa phép so sánh (=) bằng thì
phép kết nối được gọi là phép kết nối bằng.
Trường hợp kết nối bằng tại thuộc tính cùng tên của
hai quan hệ và một trong hai thuộc tính đó bị loại bỏ, thì phép
kết nối được gọi là kết nối tự nhiên . Kí hiệu là " * ".
Biểu diễn của phép kết nối tự nhiên :
r(ABC) * s(CDE) = { t[ABCDE]/ t[ABC] r và
t[CDE ] s}
VD : với hai quan hệ r và s nêu trên thì :
r(ABC) * s(CDE) = ( A B C D E)
a1 1 1 d1 e1
a2 2 1 d1 e1
a1 2 2 d2 e2
8. Phép chia
Gọi r là quan hệ n- ngôi và s là quan hệ m ngôi (
n > m, s ). Phép chia r s là tập tất cả các ( n-m )-
bộ t sao cho với mọi bộ u s thì bộ t u r.
Ví dụ :
r ( A B C D ) s ( C D) r s = ( A B)
a b c d c d a b
a b e f e f e d
b c e f
e d c d
e d e f
c a d e
Cơ sở dữ liệu minh hoạ
Cho một cơ sở dữ liệu Thực tập gồm 3 quan hệ sau đây:
SV( SV#, HT, NS, QUE, HL)
DT(DT#, TDT, CN, KP)
SD(SV#, DT#, NTT, KM, KQ)
-Quan hệ SV chứa thông tin về các sinh viên trong một lớp
của một trường đại học. Trong đó:
SV# : mã số sinh viên
HT : Họ và tên sinh viên
NS : Năm sinh của sinh viên
QUE: quê quán
HL : Học lực thể hiện qua điểm trung bình
- Quan hệ DT chứa thông tin về đề tài nhà trường quản lý .
Trong đó :
DT# : mã số đề tài
TDT : tên đề tài
CN : họ và tên chủ nhiệm đề tài
KP : Kinh phí cấp cho đề tài ( triệu đồng)
- Quan hệ SD chứa thông tin về tình hình thực tập của các
sinh viên theo các đề tài. Trong đó :
NTT : nơi thực tập
KM : khoảng cách từ nơi thực tập đến trường
KQ : kết quả thực tập theo đề tài đã chọn .
* Giả thiết là mỗi sinh viên có thể tham gia nhiều đề tài, mỗi đề
tài sinh viên đó thực tập tại một địa điểm.
SV# HT NS Que HL
1 Hồng Mai 22/4/1982 Hà Nội 6.8
2 Mạnh Khánh 27/6/1986 Nam Định 8.3
3 Xuân Quỳnh 17/5/1987 Hà Nội 9.5
4 Ngọc Bích 25/4/1979 Nam Định 8.6
5 Minh Tú 19/3/1986 Quảng Ninh 6.2
6 Hồng Vân 19/4/1980 Hải Phòng 9.8
7 Ngọc Anh 27/5/1982 Hà Nội 7.6
8 Mai Lan 16/8/1983 Hải Phòng 8.5
DT# TDT CN KP
1 Phân tích thiết kế CSDL Trần Hùng 1000000
2 Mạng máy tính Nguyễn Anh 500000
3 Kiến trúc máy tính Hồng Hạnh 1400000
4 Phần mềm A Mạnh Hùng 2300000
5 Giáo trình ABC Hoàng Hà 900000
6 Mạng Internet Ngọc Lan 1800000
SV
DT
SV# DT# NTT KM KQ
1 4 Hà Tây 56 6.8
1 6 Hải Phòng 120 8.7
3 5 Quảng Ninh 300 9
3 4 Hà Đông 30 9.7
2 3 Hà Nội 40 9.8
1 5 Nam Định 80 9.4
7 3 Hà Nội 38 8.7
5 5 Hải Phòng 150 8.2
7 3 Thanh Hoá 240 7.9
SD
Yêu cầu :
- Hãy viết các biểu thức đại số quan hệ biểu diễn các yêu cầu
sau :
1. Cho thông tin về những sinh viên sinh trước năm 1985 có
quê ở Hà Nội.
2. Cho biết các địa điểm thực tập xa trường (KM >100) của đề
tài số 5.
3. Cho thông tin về các đề tài có sinh viên thực tập.
4. Cho biết mã của các đề tài không có sinh viên nào tham gia.
5. Cho danh sách các tỉnh có sinh viên đến thực tập.
6. Cho thông tin về việc thực tập tại Hải Phòng của sinh viên.
7. Cho biết mã của những đề tài có kinh phí lớn hơn 1 triệu và
nhỏ hơn 2 triệu
8. Cho biết mã của sinh viên dưới 20 tuổi, thực tập khá ( có
điểm kết quả thực tập >=6.5)
III. Các phép toán quan hệ bổ sung
Các hàm kết tập: Có nhiều truy vấn mà
đại số quan hệ không thể thực hiện được
như: đưa ra tổng lương, tìm lương lớn nhất
,v.v..
Ta có các hàm sau:
Hàm tính trung bình cộng ( AVERAGE)
Hàm tính tổng ( SUM)
Hàm tìm giá trị lớn nhất ( MAX), nhỏ
nhất (MIN)
Hàm đếm các bộ giá trị ( COUNT)
Các phép gộp nhóm: Nhóm các bộ trong
một quan hệ theo một giá trị của một số các
thuộc tính và sau đó áp dụng các hàm kết tập
trên từng nhóm một cách độc lập.
Phép gộp nhóm được định nghĩa như
sau:
< ds các hàm
kết tập > (r)
Trong đó : - là kí hiệu của phép gộp nhóm
- : là danh sách
các thuộc tính của quan hệ.
- : là danh sách các cặp (
.
• Kết quả của phép gộp nhóm là một
quan hệ. Ngoài các thuộc tính cơ sở để
gộp nhóm, quan hệ kết quả còn có các
thuộc tính tương ứng với các phần tử
trong danh sách hàm kết tập.
• Nếu ds các thuộc tính cơ sở để gộp
nhóm là rỗng thì các hàm kết tập
được áp dụng cho các giá trị thuộc tất cả
các bộ trong quan hệ. Khi đó quan hệ
kết quả chỉ có một bộ.
Ví dụ : Giả sử có quan hệ NHAN_VIEN
MA_NV HO_TEN NG_SINH MA_P LUONG
1 Hồng Mai 22/4/1982 P1 1000000
2 Mạnh Khánh 27/6/1978 P3 2500000
3 Xuân Quỳnh 17/5/1977 P2 1200000
4 Ngọc Bích 25/4/1979 P1 2000000
5 Minh Tú 19/3/1981 P3 1500000
6 Hồng Vân 19/4/1980 P1 1800000
7 Ngọc Anh 27/5/1982 P2 1800000
8 Mai Lan 16/8/1979 P1 1200000
Nếu thực hiện phép gộp nhóm
MA_PHONG COUNT MA_NV, AVERAGE LUONG (NHAN_VIEN)
Thì quan hệ kết quả sẽ là :
MA_P COUNT MA_NV AVERAGE LUONG
P1 4 1500000
P2 2 2000000
P3 2 1500000
Nếu thực hiện phép gộp nhóm :
COUNT MA_NV, AVERAGE LUONG (NHAN_VIEN)
Thì quan hệ kết quả sẽ là :
COUNT MA_NV AVERAGE LUONG
8 1666666.7
MA_NV HO_TEN NG_SINH GIOI_TINH MA_P LUONG
1 Trần Anh 28/3/1978 Nam P2 2000000
2 Ngọc Hà 17/4/1979 Nữ P1 1700000
3 Hồng Mai 29/6/1980 Nữ P4 2300000
4 Hoàng Hà 24/5/1980 Nam P2 1800000
5 Ngọc Lan 7/11/1979 Nữ P1 2500000
Bài tập:
Xét các CSDL gồm các lược đồ quan hệ được cho bởi các
thể hiện của chúng như sau:
NHAN_VIEN
MA_P TEN_P ĐIA_CHI
P1 Hành chính quản trị P302 - Nhà A
P2 Nghiên cứu và PT Tầng 3 - Nhà B
P3 Giám đốc Tầng 2- Nhà A
P4 Kỹ thuật P205 - Nhà C
PHONG
DU_AN
MA_DA TEN_DA ĐIA_ĐIEM_DA MA_P
D1 Phần mềm A HÀ NỘI P4
D5 Mạng B NAM ĐỊNH P2
D20 Giáo trình điện tử HẢI PHÒNG P1
CHAM_CONG
MA_NV MA_DA SO_GIO
1 D8 20
2 D4 15
3 D1 17
4 D8 24
5 D20 30
6 D1 27
Yêu cầu :
1. Tìm tên dự án có mã là D20
2.Cho biết tên các thành phố có dự án thực hiện.
3. Cho biết tên phòng thực hiện dự án có mã là D20
4. Cho biết tên và lương của những nhân viên thực hiện dự án D8 và
làm việc trên 20 giờ
5. Cho biết họ tên và lương của những nhân viên thuộc phòng "
Nghiên cứu & PT"
6. Đếm số nhân viên trong công ty và tính mức lương trung bình của
các nhân viên.
7. Đếm số dự án mà công ty đã thực hiện
Bài 5. Ngôn ngữ CSDL – SQL
Để người sử dụng có thể giao tiếp được
với CSDL phải có một hệ thống ngôn ngữ
giao tiếp bao gồm:
• Ngôn ngữ định nghĩa dữ liệu .
• Ngôn ngữ thao tác dữ liệu
• Ngôn ngữ truy vấn dữ liệu
• Ngôn ngữ quản lý dữ liệu
Mỗi hệ quản trị CSDL đều có cách
cài đặt các ngôn ngữ khác nhau
nhưng đều dựa trên chuẩn của ngôn
ngữ truy vấn có cấu trúc SQL (
Structured- Query Language)
I. Ngôn ngữ định nghĩa dữ liệu SQL
Là ngôn ngữ mô tả dữ liệu, cho phép
người dùng định nghĩa cấu trúc CSDL, sửa
đổi cấu trúc, liên kết các thành phần trong
CSDL
Ngoài ra , nó còn cung cấp các khả năng
khác như : định nghĩa khung nhìn, kiểm
soát tính toàn vẹn dữ liệu, cấp phát quyền
truy cập,
Quy ước :
– Tên tên bảng, thuộc tính đối tượng không chứa dấu
cách, không trùng tên với nhau.
– Các phạm trù cú pháp bắt buộc phải điền được đặt
trong cặp dấu
– Các thành phần tuỳ chọn được viết trong cặp dấu [ ]
– Mỗi câu lệnh SQL có thể được viết trên nhiều dòng và
được kết thúc bằng dấu ;
Các kiểu dữ liệu đơn giản trong
SQL
Kiểu dữ liệu số: integer , float,
decimal(n,p)- số thực với độ dài tối đa là
n chữ số với p chữ số thập phân ,
number(n)- kiểu số có độ dài tối đa là n
Kiểu dữ liệu chuỗi :
-varchar (n) - chuỗi có độ dài biến đổi
từ 0 đến n
- Char (n): xâu kí tự có độ dài cố định n (
n<=255)
Kiểu dữ liệu ngày tháng: date, time
Kiểu luận lí : boolean
II. Các câu lệnh tạo cấu trúc
bảng
1. Lệnh tạo bảng tổng quát
CREATE TABLE
( <
kích thước 1>,
.
< kích
thước n>,
);
Ví dụ :
Tạo bảng SINH_VIEN có các thuộc tính:
- mã sinh viên ( kiểu số có độ dài <5)
- họ tên ( kiểu xâu kí tự có độ dài <25)
- ngày sinh (kiểu date)
- giới tính ( kiểu xâu có độ dài <3)
- địa chỉ ( kiểu xâu có độ dài < 30 )
- điểm TB ( kiểu số thực có độ dài <4, trong đó có
2 chữ số sau phần thập phân)
CREATE TABLE SINH_VIEN
( ma_sv NUMBER(5) ,
ho_ten VARCHAR(25),
ng_sinh DATE,
gioi_tinh VARCHAR (3),
đia_chi VARCHAR (30),
diem_tb DECIMAL (4,2),
);
2. Lệnh tạo bảng với một số điều kiện ràng
buộc
CREATE TABLE
( ,
.
,
[ CONSTRAINT ]| NULL|
NOT NULL|
Primary Key ( Khoá chính )
[ Unique ( khoá )]
[Foreign Key (Khoá _ ngoài) References Tên_bảng]
[ Check ]
);
Trong đó :
NOT NULL : chỉ rằng cột không nhận giá trị rỗng.
Ngầm định là Null. Thuộc tính khoá ngầm định là Not
Null.
COSNTRAINT :
khai báo các ràng buộc toàn vẹn của CSDL.
Primary Key ( Khoá chính): Khai báo khoá chính
của mảng
Unique ( Khoá ) : Khai báo các khoá khác nếu có
Foreign Key Khoá_ ngoài References Tên_
bảng : Khai báo các khoá ngoài của bảng
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 bảng SINH_VIEN có:
- khoá chính là thuộc tính mã sinh viên ( kiểu
số)
- họ tên ( kiểu xâu kí tự có độ dài <=25) không
được để trống,
- ngày sinh (kiểu date)
- giới tính ( kiểu xâu có độ dài <=3, mặc định là
'Nam')
- mã lớp là một khoá ngoài, mã lớp thuộc bảng
LOP.
- điểm TB ( kiểu số thực có độ dài <=4)
Các file đính kèm theo tài liệu này:
- tailieu.pdf