HỌC TRèNH I CÁC KHÁI NIỆM CƠ BẢN VỀ DỮ LIỆU VÀ CÁC Mễ HèNH CƠ SỞ DỮ LIỆU Nguyễn Đỡnh Hõn Phần này bao gồm cỏc nội dung sau đõy Cỏc khỏi niệm cơ bản về dữ liệu và hệ quản trị cơ sở dữ l
Trang 1Giáo Trình
Dữ liệu và các mô hình
cơ sở dữ liệu
Trang 2MỤC LỤC
HỌC TRỐNH I CÁC KHÁI NIỆM CƠ BẢN VỀ DỮ LIỆU VÀ CÁC MỄ HỐNH CƠ SỞ DỮ LIỆU 4
1.1 CÁC KHÁI NIỆM CƠ BẢN VỀ DỮ LIỆU VÀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 5
1.1.1 Dữ liệu 6
1.1.2 File dữ liệu 6
1.1.3 Cơ sở dữ liệu 6
1.1.4 Định nghĩa hệ cơ sở dữ liệu 7
1.1.5 Sơ đồ vật lý hệ cơ sở dữ liệu 8
1.1.6 Hệ thống cơ sở dữ liệu mức logic 8
1.1.7 Một số tớnh chất đặc trưng của cơ sở dữ liệu 8
1.2 CÁC MỄ HỐNH CƠ SỞ DỮ LIỆU 8
1.2.1 Cỏc khỏi niệm cơ bản để xõy dựng một hệ thống thụng tin 8
1.2.2 Cỏc mụ hỡnh dữ liệu 9
1.3 KHÁI NIỆM TOÁN HỌC HOÁ MỄ HỐNH QUAN HỆ 11
1.3.1 Thuộc tớnh (Attribute) 11
1.3.2 Quan hệ (Relation) 12
1.3.3 Khỏi niệm phụ thuộc hàm (Function dependency) 13
1.3.4 Khoỏ (Key) 13
1.3.5 Lược đồ quan hệ (Relation Schema) 15
1.3.6 Phộp tỏch lược đồ quan hệ 15
1.3.7 Bao đúng của tập phụ thuộc hàm 17
1.3.8 Hệ tiờn đề cho phụ thuộc hàm 17
1.3.9 Cỏc dạng phụ thuộc hàm 18
1.4 CÁC PHẪP TOÁN CỦA NGỄN NGỮ THAO TÁC DỮ LIỆU 19
1.4.1 Phộp chốn (Insert) 19
1.4.2 Phộp loại bỏ (Del) 19
1.4.3 Phộp thay đổi 20
1.5 CÁCH THỨC TỔ CHỨC DỮ LIỆU VẬT LỚ 20
1.5.1 Giới thiệu cỏch thức tổ chức dữ liệu 20
1.5.2 Mụ hỡnh tổ chức bộ nhớ ngoài 20
1.6 TỔ CHỨC CÁC TỆP CƠ SỞ DỮ LIỆU 21
1.6.1 Tệp băm 21
1.6.2 Tệp chỉ số 22
1.6.3 B - Cõy (Balanced tree) 24
Trang 3HỌC TRỐNH II CÁC NGỄN NGỮ ĐỊNH NGHĨA VÀ THAO TÁC DỮ LIỆU 27
2.1 ĐẠI SỐ QUAN HỆ 28
2.1.1 Giới thiệu về đại số quan hệ 28
2.1.2 Phộp hợp (Union) 28
2.1.3 Phộp giao (Intersection) 28
2.1.4 Phộp trừ (Deference) 29
2.1.5 Tớch Đề cỏc mở rộng (Extended Cartesian Product) 29
2.1.6 Phộp chiếu (Projection) 30
2.1.7 Phộp chọn (Selection) 30
2.1.8 Phộp kết nối (join) 31
2.1.9 Phộp chia (Division) 32
2.1.10 Cỏc vớ dụ về tỡm kiếm bằng đại số quan hệ 33
2.2 NGỄN NGỮ CON DỮ LIỆU DSL - ALPHA 33
2.2.1 Biểu thức ALPHA 34
2.2.2 Phộp tỡm kiếm 35
2.2.3 Cỏc phộp cập nhật dữ liệu 38
2.2.4 Cỏc hàm thư viện 39
2.3 NGỄN NGỮ CON DỮ LIỆU SQL 40
2.3.1 Giới thiệu ngụn ngữ SQL 40
2.3.2 Thao tỏc bảng 40
2.3.3 Khối SELECT 44
Một số trường hợp vận dụng lệnh SELECT 47
2.3.4 Cỏc mệnh đề cập nhật dữ liệu 47
2.3.5 Cỏc mệnh đề về an toàn dữ liệu 48
HỌC TRỐNH III CHUẨN HOÁ DỮ LIỆU VÀ ĐIỀU KHIỂN AN TOÀN DỮ LIỆU 50
3.1 CHUẨN HOÁ LƯỢC ĐỒ QUAN HỆ 51
3.1.1 Giới thiệu chuẩn hoỏ 51
3.1.2 Cỏc dạng chuẩn hoỏ 51
3.2 PHÂN TÍCH CÁC CÂU HỎI 51
3.2.1 Phõn tớch sơ bộ về cỳ phỏp 54
3.2.2 Phõn tớch 54
3.2.2.1 Cỏc cụng cụ dựng trong phõn tớch cõu hỏi 54
3.2.2.2 Tớnh đỳng đắn của cỏc cõu hỏi 54
3.2.2.3 Cỏc cõu hỏi tương đương do truyền ứng 54
3.2.2.2 Cỏc cõu hỏi tương đương do tớnh toàn vẹn 54
3.3 SẮP XẾP THỨ TỰ CÁC CÂU HỎI 56
Trang 43.3.1 Cõy đại số quan hệ 57
3.3.2 Luật biến đổi cõy đại số quan hệ 57
3.3.3 Cỏc bước tối ưu cõy đại số quan hệ 58
3.3.4 Sắp thứ tự bằng cỏch phõn ró cỏc cõu hỏi con 58
3.4 CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN AN TOÀN DỮ LIỆU 58
3.4.1 An toàn trong cơ sở dữ liệu 59
3.4.2 Cỏc điều khiển an toàn 59
Trang 5HỌC TRèNH I
CÁC KHÁI NIỆM CƠ BẢN VỀ DỮ LIỆU VÀ CÁC Mễ HèNH CƠ SỞ DỮ LIỆU
Nguyễn Đỡnh Hõn
Phần này bao gồm cỏc nội dung sau đõy
Cỏc khỏi niệm cơ bản về dữ liệu và hệ quản trị cơ sở dữ liệu
Cỏc mụ hỡnh cơ sở dữ liệu
Khỏi niệm toỏn học hoỏ mụ hỡnh quan hệ
Cỏc phộp toỏn của ngụn ngữ thao tỏc dữ liệu
Cỏch thức tổ chức dữ liệu vật lý
Tổ chức cỏc tệp cơ sở dữ liệu
Trang 61.1 CÁC KHÁI NIỆM CƠ BẢN VỀ DỮ LIỆU VÀ HỆ QTCSDL
1.1.1 Dữ liệu
Chỳng ta đang sống trong kỷ nguyờn thụng tin Xu hướng xó hội hoỏ tin học tiếp đến là toàn cầu hoỏ
là xu hướng tất yếu khụng thể đảo ngược Trong bối cảnh đú việc nắm bắt được cỏc thụng tin nhanhchúng và chuẩn xỏc là yếu tố tối cần thiết quyết định sự thắng lợi trong quản lý điều hành Việc tinhọc hoỏ xó hội đó dẫn tới nhu cầu quản lý điều hành cụng việc trờn mỏy tớnh điện tử, như vậy thựcchất của cụng tỏc quản lý chớnh là quản lý thụng tin Mọi thụng tin được quản lý trờn mỏy tớnh theobất kỳ phương cỏch gỡ cũng đều phải được thể hiện bằng cỏc dữ liệu ghi trờn một thiết bị lưu trữ nào
đú Dữ liệu cũng rất phong phỳ cú thể là dữ liệu ở dạng văn bản, õm thanh hay hỡnh ảnh, … Trongthực tế người ta lưu dữ liệu dưới nhiều dạng khỏc nhau mục đớch chung là đạt hiệu quả cao trong lưutrữ và khai thỏc
Như vậy dữ liệu chớnh là thụng tin, chỉ xột ở gúc độ tin học theo nghĩa hẹp thỡ đú chớnh là phần nộidung của cỏc file
1.1.2 File dữ liệu
File là một khối thụng tin được lưu trữ trong mỏy tớnh, được đặc trưng bởi tờn gọi File được xỏcđịnh duy nhất bởi tờn (bao gồm cả đường dẫn) hoặc số hiệu file Cú rất nhiều cỏc loại file khỏc nhaunhư file ảnh (.BMP, GIF, JPG, …), file hệ thống (.SYS), file thực hiện được (.COM, EXE, …), file
dữ liệu (.DBF, MDB, DAT, DOC, …) Tuy nhiờn ở đõy chỳng ta chỉ xem xột cỏc file dữ liệu,những file này bao gồm nhiều bản ghi cú cựng cấu trỳc xỏc định (loại bản ghi), đồng thời mỗi bản ghiđược phõn chia thành cỏc trường dữ liệu
Vớ dụ:
File d li u HOSO.MDB d ng ựng để lưu trữ hồ sơ của tất cả cỏc cỏn bộ cụng nhõn viờn chức để lưu trữ hồ sơ của tất cả cỏc cỏn bộ cụng nhõn viờn chức ưu trữ hồ sơ của tất cả cỏc cỏn bộ cụng nhõn viờn chức l u tr h s c a t t c c c c n b c ng nhõn vi n ch c ồ sơ của tất cả cỏc cỏn bộ cụng nhõn viờn chức ơ của tất cả cỏc cỏn bộ cụng nhõn viờn chức ủa tất cả cỏc cỏn bộ cụng nhõn viờn chức ất cả cỏc cỏn bộ cụng nhõn viờn chức ả cỏc cỏn bộ cụng nhõn viờn chức ỏc cỏn bộ cụng nhõn viờn chức ỏc cỏn bộ cụng nhõn viờn chức ộ cụng nhõn viờn chức ụng nhõn viờn chức ờn chức ức
c a Tr ủa tất cả cỏc cỏn bộ cụng nhõn viờn chức ưu trữ hồ sơ của tất cả cỏc cỏn bộ cụng nhõn viờn chứcờn chức ng C SPKT I nh sau: ĐSPKT I như sau: ưu trữ hồ sơ của tất cả cỏc cỏn bộ cụng nhõn viờn chức
Tờn file: HOSO.MDB
A01 Nguyễn Văn A 22/10/1984 Dõn tiến Nhõn viờn 1.92A02 Trần Minh Anh 12/12/1983 Dạ trạch Nhõn viờn 1.78B01 Nguyễn Văn B 12/06/1984 Dõn tiến Trưởng phũng 2.82
Trang 7Khỏi niệm cơ sở dữ liệu được định nghĩa mụ tả như sau: Cơ sở dữ liệu là một tập hợp dữ liệu của một tổ chức được lưu trữ trờn mỏy tớnh (được nhiều người sử dụng) và việc thực hiện nú được chi phối bởi một mụ hỡnh dữ liệu Núi theo nghĩa hẹp một cơ sở dữ liệu là một hệ thống cỏc file dữ liệu,
mỗi file này cú cấu trỳc bản ghi khỏc nhau, nhưng về mặt nội dung cú quan hệ với nhau Cần lưu ý làmột cơ sở dữ liệu khỏc với một ngõn hàng dữ liệu
b Cỏc tiờu chuẩn của một cơ sở dữ liệu
Một cơ sở dữ liệu thụng thường thoả món 5 tiờu chuẩn sau đõy:
Biểu diễn tốt thế giới thực: một cơ sở dữ liệu phải cú khả năng cung cấp một hỡnh ảnh trungthực của thế giới thực cho phộp người sử dụng cú được cỏc thụng tin sử dụng tốt và cập nhậtđược
Khụng dư thừa thụng tin: điều này cú nghĩa là khụng cú sự lặp lại thụng tin trong cơ sở dữliệu, mỗi thụng tin chỉ cú mặt một lần trong cơ sở dữ liệu, nhờ đú cú sự lựa chọn duy nhất
Tớnh độc lập của cỏc chương trỡnh đối với dữ liệu: điều này tương ứng với sự cần thiết làmgiảm giỏ thành bảo trỡ cỏc chương trỡnh, những thay đổi về cấu trỳc của cơ sở dữ liệu là do
sự thay đổi của thế giới thực chứ khụng phải do một ỏp dụng cụ thể nào cả và nú cho phộpnhiều ỏp dụng cựng chia sẻ cựng một bộ dữ liệu
Tớnh an toàn và bảo mật của dữ liệu: cần cú sự bảo đảm an toàn cho cỏc trang thiết bị lưu trữ
cơ sở dữ liệu chống lại mọi sự huỷ hoại, ngoài ra khi cú nhiều người sử dụng chỉ cú nhữngngười cú trỏch nhiệm mới cú thể truy cập đến toàn bộ hoặc một phần cơ sở dữ liệu
Hiệu suất ứng dụng: mặc dự chia sẻ cựng một nguồn chung, cỏc ứng dụng phải cú hiệu suấttrong cơ sở dữ liệu giống như trong sử dụng thụng tin truyền thống
Chỳ ý: Năm tiờu chuẩn nờu trờn là yờu cầu đối với một cơ sở dữ liệu được thiết kế hoàn thiện,
trong thực tiễn khụng phải bao giờ cũng thực hiện được đầy đủ, tuỳ từng trường hợp cụ thể và donhững yờu cầu khỏc nhau mà mỗi tiờu chuẩn trờn được tụn trọng hoặc bị vi phạm nhiều ớt khỏcnhau
1.1.4 Định nghĩa hệ cơ sở dữ liệu
Như ta đó biết cơ sở dữ liệu là một tập hợp dữ liệu cú liờn quan với nhau được lưu trữ trờn mỏy tớnh,phần chương trỡnh cho phộp khai thỏc cơ sở dữ liệu này gọi là hệ quản trị cơ sở dữ liệu, núi cỏchkhỏc nú cho phộp mụ tả, lưu giữ, thao tỏc, xử lý cỏc tập hợp dữ liệu tạo nờn cơ sở dữ liệu, đồng thời
nú bảo đảm sự an toàn và bớ mật của cỏc dữ liệu trong mụi trường cú nhiều người sử dụng
Chỳ ý: với mỗi hệ quản trị cơ sở dữ liệu cần thiết phải tồn tại một cơ sở dữ liệu nhưng điều ngược
lại khụng đỳng
Cỏc hệ quản trị cơ sở dữ liệu cú nhiệm vụ hỗ trợ cho cỏc nhà phõn tớch thiết kế cơ sở dữ liệu cũngnhư cho cỏc người khai thỏc cơ sở dữ liệu Thụng thường một hệ quản trị cơ sở dữ liệu phải đạt được
5 yờu cầu sau:
Một hệ quản trị cơ sở dữ liệu phải cú ngụn ngữ khai bỏo dữ liệu Ngụn ngữ khai bỏo dữ
liệu một phương tiện cho phộp khai bỏo cấu trỳc của dữ liệu, mụ tả cỏc mối liờn hệ của dữ
Trang 8liệu cũng như những qui tắc quản lý ỏp đặt lờn trờn dữ liệu đú Ngụn ngữ khai bỏo dữ liệuđược xõy dựng trờn một loại mụ hỡnh nào đú Hiện nay phần lớn cỏc hệ QTCSDL được xõydựng dựa trờn mụ hỡnh dữ liệu quan hệ
Một hệ quản trị cơ sở dữ liệu phải cú ngụn ngữ thao tỏc dữ liệu Ngụn ngữ thao tỏc dữ
liệu cho phộp người sử dụng cú thể cập nhật dữ liệu (thờm, sửa , xoỏ) khai thỏc dữ liệu chonhiều mục đớch khỏc nhau
Một hệ quản trị cơ sở dữ liệu phải cú ngụn ngữ con truy vấn dữ liệu
Mỗi hệ quản trị cơ sở dữ liệu cũng cú thể được cài đặt một cơ chế riờng để giải quyết vấn đềtranh chấp dữ liệu
Một hệ quản trị cơ sở dữ liệu cũn cung cấp cho người sử dụng những cơ chế bảo mật và phụchồi dữ liệu khi cú sự cố xảy ra
1.1.5 Sơ đồ vật lý hệ cơ sở dữ liệu
Một cơ sở dữ liệu được phõn thành cỏc mức khỏc nhau, mức thấp nhất là cơ sở dữ liệu vật lý Cơ sở
dữ liệu vật lý là sự cài đặt cụ thể của cơ sở dữ liệu ở mức khỏi niệm, núi cỏch khỏc chớnh là cỏc tệp
dữ liệu theo một cấu trỳc nào đú được lưu trờn cỏc thiết bị lưu trữ và được thực hiện trờn cỏc trangthiết bị tin học
1.1.6 Hệ thống cơ sở dữ liệu mức logic
Mức khỏi niệm là mức biểu thị ý niệm của cấu trỳc mà chỳng ta định mụ hỡnh hoỏ trong cơ sở dữliệu Mục tiờu của mức này là mụ tả nội dung thụng tin của cơ sở dữ liệu chứ khụng phải là mụ tả cỏccấu trỳc lưu trữ do việc quản lý thụng tin yờu cầu
Cấu trỳc mong đợi ở mức này là trỡnh bày cỏch tổ chức, cho một hỡnh ảnh trung thành nhất cú thểđược của cỏc hiện tượng đang tồn tại và phỏt triển ở tổ chức Cần phải cố gắng mụ tả và thể hiện đểnhận được một tập hợp chặt chẽ cỏc thụng tin sẽ được dựng cho mỗi nhu cầu đặc thự của nhữngngười sử dụng
Mức cài đặt logic là sự bổ sung của cấu trỳc nhận được ở mức trờn Cấu trỳc ở mức này sẽ thực tếhơn, hiệu quả hơn để mụ tả cỏc đường vào cho phộp đi khắp khụng gian cơ sở dữ liệu Cỏc yếu tốđịnh lượng như khối lượng, cỏc chu kỳ, cỏc tần số tiếp cận thụng tin được tớnh đến ở mức này
1.1.7 Một số tớnh chất đặc trưng của cơ sở dữ liệu
Ta xem xột cỏc tiờu chuẩn của một cơ sở dữ liệu đó đưa ra ở trờn
1.2 CÁC Mễ HèNH CƠ SỞ DỮ LIỆU
1.2.1 Cỏc khỏi niệm cơ bản để xõy dựng một hệ thống thụng tin.
Hệ thống thụng tin là một tập hợp cỏc thụng tin được lưu giữ và tập hợp cỏc xử lý cho phộp xõy dựnglại một hỡnh ảnh trung thành nhất cú thể được của tổ chức
Như vậy, một cơ sở dữ liệu là một bộ phận của hệ thống thụng tin Tập hợp cỏc xử lý được gọi là cỏcđộng thỏi của hệ thống thụng tin
Nguyễn Đỡnh Hõn
Trang 9a Thực thể
Thế giới nhận biết được chứa cỏc phần tử biểu diễn cỏc đối tượng mà người ta cú thể phõn biệt chỳngvới nhau, cỏc đối tượng này là khụng phõn chia được
Định nghĩa 1 Thực thể là một hỡnh ảnh tượng trưng cho một đối tượng cụ thể hay một khỏi niệm
trừu tượng nhưng cú mặt trong thế giới thực
b Đặc trưng
Định nghĩa 2 Đặc trưng của thực thể là những yếu tố giỳp ta nhận biết thực thể, một thực thể bao
gồm nhiều đặc trưng để phõn biệt nú với cỏc thực thể khỏc
c Mối quan hệ giữa cỏc kiểu thực thể
Thế giới thực chịu những sự biến đổi được thể hiện bằng sự tạo ra, sự thay đổi, sự loại bỏ Tất cả cỏc
thể hiện đú được gọi là sự kiện Cỏc thực thể cú sự liờn kết với nhau trong khi tham gia vào cỏc sự
kiện của thế giới thực
1.2.2 Cỏc mụ hỡnh dữ liệu
- Thế hệ đầu tiờn
Từ những năm 70 người ta đó thương mại hoỏ thế hệ đầu tiờn cỏc cơ sở dữ liệu Thế hệ đầu tiờn nàydựa trờn mụ hỡnh dữ liệu phõn cấp hoặc mụ hỡnh dữ liệu mạng
Mụ hỡnh dữ liệu phõn cấp đặc trưng bởi cấu trỳc dữ liệu được trỡnh bày dưới dạng phõn cấp cõy
nhiều mức, mỗi một mức bao gồm một hoặc nhiều nhúm dữ liệu và chỳng lại cú thể phõn ra thànhnhiều nhúm dữ liệu hoặc cỏc dữ liệu cơ bản (cỏc lỏ cõy)
Mụ hỡnh dữ liệu mạng đặc trưng bởi cấu trỳc dữ liệu tương ứng với một tổ hợp của nhiều phõn cấpcõy khỏc nhau Mỗi một đối tượng của thế giới thực được biểu diễn bởi một phõn cấp, cũn sự liờn kếtgiữa cỏc đối tượng được thể hiện bằng cỏc múc nối giữa cỏc phõn cấp này
- Thế hệ thứ hai
Thế hệ thứ hai của cỏc cơ sở dữ liệu được đặc trưng bởi mụ hỡnh dữ liệu quan hệ và mụ hỡnh dữ liệuquan hệ thực thể
Mụ hỡnh dữ liệu quan hệ đặc trưng bởi cấu trỳc dữ liệu được tạo nờn bởi một hệ thống cỏc quan hệ
(biểu diễn dạng bảng), trong đú quan hệ biểu diễn một đối tượng của tổ chức
Mụ hỡnh dữ liệu quan hệ thực thể cú thể coi như là một loại mụ hỡnh quan hệ, nú tập trung trong một
mụ hỡnh cỏc ưu điểm của mụ hỡnh dữ liệu mạng và mụ hỡnh dữ liệu quan hệ đúng gúp của mụ hỡnh
này là đưa ra một quan niệm thống nhất giữa cỏc dữ liệu thụng qua sự đi lại dễ dàng cho phộp trong
Trang 101.3 KHÁI NIỆM TOÁN HỌC HOÁ Mễ HèNH QUAN HỆ
1.3.1 Thuộc tớnh (Attribute)
Một thuộc tớnh biểu thị một đơn vị thụng tin nhỏ nhất, cú thể được sử dụng tự do và cú ý nghĩa độclập với cỏc đơn vị thụng tin khỏc Trong mọi mụ hỡnh, thuộc tớnh đại diện cho một phần tử cơ sở của
hệ thống thụng tin
Mỗi đặc trưng của một kiểu thực thể hoặc một kiểu liờn kết dược biểu thị trong hệ thống thụng tin
bằng một thuộc tớnh Một thuộc tớnh được xỏc định bằng một cặp {Tờn thuộc tớnh, miền giỏ trị} i) Tờn thuộc tớnh Để xỏc định một thuộc tớnh, người ta đặt cho nú một cỏi tờn (nờn cú tớnh gợi nhớ), tờn này được gọi là tờn thuộc tớnh.
Tờn thuộc tớnh là duy nhất cho mỗi thuộc tớnh Để đảm bảo tớnh duy nhất của tờn thuộc tớnh vàphõn biệt với cỏc tờn thuộc tớnh khỏc, người ta lập ra một từ điển cỏc tờn thuộc tớnh, mỗi tờn thuộctớnh là một từ của từ điển đú Trong chừng mực cú thể, cần loại bỏ tớnh đồng nghĩa hoặc nhiều nghĩacủa từ Cú thể dựng từ viết tắt để đặt tờn cho thuộc tớnh
ii) Miền giỏ trị Mỗi thuộc tớnh đều thuộc một kiểu dữ liệu, kiểu dữ liệu cú thể là vụ hướng hoặc cú
cấu trỳc Kiểu dữ liệu cú cấu trỳc được định nghĩa dựa trờn cỏc kiểu dữ liệu vụ hướng
Do ràng buộc toàn vẹn, một thuộc tớnh thường chỉ chọn lấy giỏ trị trong một tập hợp con của kiểu dữ
liệu Tập hợp cỏc phần tử mà một thuộc tớnh cú thể lấy giỏ trị gọi là miền giỏ trị (domain), núi cỏch
khỏc, miền giỏ trị tà tập hợp cỏc giỏ trị cựng loại cú thể cú của thuộc tớnh
Núi chung, một giỏ trị của một thuộc tớnh là sự thể hiện trong hệ thống thụng tin một giỏ trị của một
sự kiện của thế giới thực
Xột tập cỏc thuộc tớnh trong một hệ thống thụng tin, khi giỏ trị của một thuộc tớnh là giỏ trị nhận
được từ cỏc giỏ trị của cỏc thuộc tớnh khỏc thỡ thuộc tớnh này được gọi là thuộc tớnh tớnh toỏn, trong trường hợp ngược lại thỡ gọi là thuộc tớnh khụng tớnh toỏn Rừ ràng cỏc giỏ trị của một thuộc
tớnh khụng tớnh toỏn phải được cung cấp từ thế giới thực Vớ dụ: thuộc tớnh điểm trung bỡnh mụn(DTB) được tớnh toỏn từ điểm cỏc mụn, điểm cỏc mụn ta phải nhập vào Do đú DTB là thuộc tớnhtớnh toỏn, điểm cỏc mụn là thuộc tớnh khụng tớnh toỏn
Chỳ ý: Giỏ trị của một thuộc tớnh khụng phải lỳc nào cũng xỏc định được nờn người ta quy ước:
miền giỏ trị của cỏc thuộc tớnh đều cú thể chứa thờm một giỏ trị đặc biệt gọi là giỏ trị rỗng (null).
Giỏ trị rỗng này, tuỳ theo ngữ cảnh, cú thể đặc trưng cho một giỏ trị khụng thể xỏc định được hoặcđược đặc trưng cho một giỏ trị chưa thể xỏc định được ở thời điểm đang xột nhưng cú thể được biếtvào thời điểm khỏc
iii) Cỏch mụ tả miền giỏ trị của một thuộc tớnh
- Nếu số cỏc phần tử của miền giỏ trị là ớt thỡ liệt kờ tất cả cỏc giỏ trị của cỏc phần tử
Vớ dụ: {Giới tớnh, (nam, nữ)}, {Màu, (xanh, đỏ, tớm, vàng)}
- Nếu số cỏc phần tử của miền giỏ trị nhiều thỡ dựng cỏch mụ tả tập hợp
Trang 11Vớ dụ: {Tuổi học sinh, số nguyờn N: N [6, 18]}
- Nếu số cỏc phần tử của miền giỏ trị rất nhiều hoặc khụng biết trước được mà khụng cú tớnh chất đặctrưng nào thỡ mụ tả tập hợp đú theo kiểu của dữ liệu
Vớ dụ: {Họ tờn, chuỗi ký tự cú độ dài nhỏ hơn 50}
- Nếu kiểu dữ liệu của thuộc tớnh cú cấu trỳc thỡ miền giỏ trị của nú là tớch đề cỏc của cỏc miền giỏtrị thành phần
Tuy nhiờn, cú những trường hợp miền giỏ trị của một thuộc tớnh chỉ là một tập con thực sự của tớch
đề cỏc của cỏc miền giỏ trị thành phần
i
D
sao cho hj(ai) Da i
Núi cỏch khỏc, một quan hệ r trờn R là tập hợp con của tớch
đề cỏc của n miền giỏ trị Da i
x Da2
x … x Da n
Giỏ trị n được gọi là bậc của r, giỏ trị m được gọi
là lực lượng của r Theo định nghĩa, lực lượng của một quan hệ cú thể vụ hạn, nhưng chỉ cú ý nghĩa
sử dụng khi lực lượng của quan hệ là hữu hạn mặc dự nú cú thể rất lớn, vỡ vậy khi xột một quan hệ taluụn luụn coi rằng lực lượng của nú là hữu hạn
Quan h r cú th ệ r cú thể được biểu diễn dưới dạng bảng: ể được biểu diễn dưới dạng bảng: được biểu diễn dưới dạng bảng:c bi u di n dể được biểu diễn dưới dạng bảng: ễn dưới dạng bảng: ưới dạng bảng: ạng bảng:i d ng b ng:ảng:
Trang 12h1 h1(a1) h1(a2) … h1(an)
1.3.3 Khỏi niệm phụ thuộc hàm (Function dependency)
Khỏi niệm về phụ thuộc hàm là một khỏi niệm cú tầm quan trọng rất lớn đối với việc thiết kế CSDLquan hệ Năm 1970 khỏi niệm này được E.F.Codd đề cập nhằm giải quyết vấn đề phõn ró cỏc quan hệ
(khi chuẩn hoỏ cỏc quan hệ) mà khụng làm mất thụng tin.
Định nghĩa 1 Phụ thuộc hàm trờn quan hệ
Cho R = {a1, a2, …, an} là một tập hữu hạn và khụng rỗng thuộc tớnh r = {h1, h2, …, hn} là một quan
hệ r trờn R, và A, B R Khi đú ta núi A xỏc định hàm cho B hay B phụ thuộc hàm vào A trong r
Định nghĩa 2 Phụ thuộc hàm trờn tập cỏc thuộc tớnh
Cho R = {a1, a2, …, an} là một tập hữu hạn và khụng rỗng thuộc tớnh Một phụ thuộc hàm trờn tập cỏc thuộc tớnh R là một dóy ký tự cú dạng A B với A, B R
Ta núi phụ thuộc hàm A B là đỳng trong quan hệ r nếu A
r
f
B, khi đú ta cũng núi rằng rthoả món A B
Chỳ ý: Ta cú thể viết (A, B) hoặc A B thay cho A
r
f
B nếu khụng sợ nhầm lẫn về mặt kýphỏp
1.3.4 Khoỏ (Key)
Định nghĩa Giả sử r là một quan hệ trờn R và K R Khi đú K là một khoỏ của r nếu K R.Gọi K là một khoỏ tối thiểu của r nếu:
- K là một khoỏ của r
- Bất kỳ một tập con thực sự của K khụng là khoỏ của r
Cỏc thuộc tớnh tham gia vào một khoỏ được gọi là thuộc tớnh khoỏ, cỏc thuộc tớnh khụng tham gia vào một khoỏ gọi là thuộc tớnh khụng khoỏ.
Từ định nghĩa của quan hệ và định nghĩa của khoỏ dễ thấy rằng một quan hệ luụn luụn cú ớt nhất một
khoỏ (tầm thường nhất là lấy R làm khoỏ), cú thể cú nhiều khoỏ và cú thể cú nhiều khoỏ tối thiểu.
Trang 13Từ định nghĩa của khoỏ và định nghĩa phụ thuộc hàm trờn quan hệ ta cú thể chứng minh rằng khoỏđược dựng làm cơ sở để phõn biệt hai bộ tuỳ ý trong một quan hệ Núi cỏch khỏc, khoỏ của một quan
hệ r trờn R là tập con K R thoả món cỏc tớnh chất: Với bất kỳ hai bộ hi, hj r đều tồn tại thuộctớnh a K sao cho hi(a) hj(a) tức là khụng tồn tại hai bộ thuộc r mà cú giỏ trị bằng nhau trờn mọithuộc tớnh của K Do vậy mỗi giỏ trị của khoỏ K là xỏc định duy nhất
Từ đõy ta thấy ý nghĩa thực tế của khoỏ là dựng để nhận diện một bộ trong một quan hệ, nghĩa là khicần tỡm một bộ hi nào đú ta chỉ cần biết giỏ trị của cỏc thuộc tớnh khoỏ của hi là đủ Xột về mặt hiệuquả sử dụng thỡ dựng khoỏ tối thiểu là tốt nhất
Vớ dụ: xột quan hệ r trờn R = {SCMT, SBD, Họ và tờn, Ngày sinh, Điểm mụn 1, Điểm mụn 2,Điểm mụn 3} ta thấy quan hệ này ớt nhất cú cỏc khoỏ:
Dễ thấy {SBD} và {SCMT} là cỏc khoỏ tối thiểu
Trong trường hợp quan hệ cú nhiều khoỏ tối thiểu, khi cài đặt trờn một HQT CSDL người sử dụngchọn một trong số cỏc khoỏ tối thiểu để làm cơ sở nhận diện một bộ trong quan hệ, khoỏ được chọn
này được gọi là khoỏ chớnh (primary key) Khoỏ chớnh chỉ thật sự cú ý nghĩa trong quỏ trỡnh khai
thỏc CSDL, cũn về phương diện lý thuyết, khoỏ chớnh khụng cú vai trũ gỡ khỏc cỏc khoỏ tối thiểucũn lại
Trong một số HQT CSDL như Access, Oracle, DB2, … cú cài đặt cơ chế tự động kiểm tra tớnh duynhất trờn khoỏ chớnh Vớ dụ, nếu thờm một bộ mới hn cú giỏ trị khoỏ chớnh trựng với giỏ trị khoỏchớnh của một bộ hi đó cú thỡ hệ thống sẽ thụng bỏo lỗi và yờu cầu nhập lại một giỏ trị khỏc
Để cho thuận tiện trong cỏc phộp xử lý, người ta thường quy ước:
1 Trong một bộ của một quan hệ cỏc thuộc tớnh khoỏ khụng chứa cỏc giỏ trị rỗng
2 Khụng được phộp sửa đổi giỏ trị của thuộc tớnh khoỏ Nếu muốn sửa đổi giỏ trị của thuộc tớnhkhúa của một bộ h, người sử dụng phải xoỏ bộ h và sau đú thờm mới một bộ h’ với giỏ trị củathuộc tớnh khoỏ đó được sửa đổi
1.3.5 Lược đồ quan hệ (Relation Schema)
Định nghĩa: Một lược đồ quan hệ s (hay một sơ đồ quan hệ) là một cặp <R, F> trong đú R là một tập
hữu hạn và khụng rỗng cỏc thuộc tớnh, F là tập cỏc phụ thuộc hàm trờn R
Chỳ ý:
1 Cần phõn biệt khỏi niệm quan hệ và lược đồ quan hệ, một quan hệ thuộc vào khụng gian
cơ sở dữ liệu, một lược đồ quan hệ thuộc vào sơ đồ thiết kế
Trang 142 Thứ tự cỏc thuộc tớnh trong R, thứ tự cỏc bộ trong r, thứ tự cỏc phụ thuộc hàm trong F làkhụng quan trọng.
3 Trong một quan hệ khụng được cú 2 bộ bất kỳ tựng nhau
Vớ dụ: Trong hệ quản trị cơ sở dữ liệu Foxpro mỗi lược đồ quan hệ được đặt tương ứng với cấutrỳc của một file dữ liệu, cũn quan hệ chớnh là file dữ liệu đú Mỗi thuộc tớnh ứng với một trường,mỗi bộ ứng với một bản ghi Số lượng cỏc bản ghi chớnh là lực lượng của quan hệ
R
1
, ở đõy khụng đũi hỏi cỏc Ri phải phõn biệt với nhau Mục đớch của
phộp phõn ró này là nhằm loai bỏ cỏc dữ liệu dư thừa (redundancy) và loại bỏ cỏc dị thường: khụng nhất quỏn (inconsistency), dị thường khi thờm bộ (insertion anormalous), dị thường khi xoỏ bộ (Deletion anormalous) của quan hệ khi thực hiện cỏc phộp cập nhật (sửa, thờm, xoỏ) Vớ dụ xột quan
hệ HANG {Tờn hóng (TH), Địa chỉ (DC), Mặt hàng (MH), Đơn giỏ(DG)} ta sẽ thấy:
a Dư thừa dữ liệu: khi cú tờn hóng, thỡ lại cú địa chỉ của hóng đú trong quan hệ
b Khụng nhất quỏn, là hệ quả của a); giả sử trong quan hệ cú nhiều bộ ghi tờn hóng và địachỉ thỡ khi địa chỉ của hóng thay đổi, nếu ta chỉ sửa địa chỉ này trờn một số bộ thỡ cỏc
bộ khỏc vẫn giữ giỏ trị cũ
c Dị thường khi thờm bộ: một hóng chưa cung cấp mặt hàng nào thỡ chưa thể thờm bộ ứng
với hóng đú được (khụng đưa được mặt hàng, đơn giỏ vào).
d Dị thường khi xoỏ bộ: là vấn đề ngược lại của c); nếu bỏ tất cả cỏc mặt hàng trong quan
hệ thỡ tờn hóng và địa chỉ của hóng cũng bị xoỏ theo (nhất là trong trường hợp nhiều hóng cựng cung cấp một mặt hàng).
Do vậy, vấn đề đặt ra là: cú thể phõn ró quan hệ trờn thành một tập cỏc quan hệ con nhằm trỏnh tất cảcỏc điều đó núi ở trờn, nhưng khụng bị mất mỏt thụng tin Ta định nghĩa phộp phõn ró khụng mấtthụng tin như sau:
Định nghĩa 2: Giả sử lược đồ quan hệ s = <R, F> được phõn ró thành cỏc lược đồ quan hệ s1, s2, …, sk
với si = <Ri, Fi>, i = 1, 2, …, k Ri R, Fi là chiếu của F trờn Ri Khi đú ta núi rằng, phộp phõn rótrờn là phõn ró khụng mất thụng tin (lossless join decomposition) đối với F nếu với quan hệ:
Trang 15- Thiết lập một bảng với n cột và k hàng; hàng i ứng với sơ đồ quan hệ Ri, cột j ứng với thuộctớnh aj Tại ụ (i, j) điền Aj nếu aj Ri, ngược lại điền ký hiệu bij.
- Bõy giờ xột cỏc phụ thuộc hàm từ F ỏp dụng cho bảng vừa thiết lập được Giả sử X Y
F, xột cỏc hàng và nếu cú giỏ trị bằng nhau trờn thuộc tớnh X thỡ làm bằng cỏc giỏ trị củachỳng trờn thuộc tớnh Y theo cỏch sau: Nếu một giỏ trị là Aj thỡ chuyển cỏc giỏ trị thành Aj,ngược lại thỡ chuyển cỏc giỏ trị thành một trong cỏc ký hiệu bij
- Tiếp tục ỏp dụng cỏc phụ thuộc hàm cho bảng (kể cả việc lặp lại phụ thuộc hàm đó được ỏpdụng) cho đến khi khụng cũn ỏp dụng được nữa
- Cuối cựng, xem xột bảng kết quả: nếu xuất hiện một hàng cú đủ A1, A2, …, An thỡ phộp phõn
ró khụng mất thụng tin, ngược lại là phộp phõn ró mất thụng tin
Vớ dụ:
Cho s = <R, F> với R = {a, b, c, d, e, g}, F = {a b, cd a, bc d, ae g, ce d}, = (s1, s2,
…, sk) với: R1 = {a, b}, R2 = {a, c, d}, R3 = {b, c, d}, R4 = {a, e, g}, R5 = {c, d, e} Kiểm tra xemphộp phõn ró mất thụng tin?
Trang 16nờn ta kết luận phộp phõn ró này khụng mất thụng tin
1.3.7 Bao đúng của tập phụ thuộc hàm
Định nghĩa Xột lược đồ quan hệ s = <R, F>; A, B R, A B là một phụ thuộc hàm Ta núi rằng
A B được suy diễn logic từ F nếu quan hệ r trờn R đều thoả món cỏc phụ thuộc hàm của F thỡcũng thoả món phụ thuộc hàm A B
Gọi tập tất cả cỏc phụ thuộc hàm được suy diễn logic từ F là bao đúng (closure) của F, ký phỏp là F+.Nếu F = F+ thỡ F được gọi là họ đầy đủ (full family) cỏc phụ thuộc hàm
1.3.8 Hệ tiờn đề cho phụ thuộc hàm
Để cú thể xỏc định được khoỏ của một quan hệ và cỏc suy diễn lụgic giữa cỏc phụ thuộc hàm cầnthiết phải tớnh được F+ từ F, điều này đũi hỏi phải cú cỏc quy tắc, muốn vậy phải xõy dựng hệ tiờn đềcho phụ thuộc hàm
Cho R là một tập hữu hạn và khụng rỗng cỏc thuộc tớnh, ký phỏp P(R) là tập cỏc tập con của R, giả
Bài tập: chứng minh hệ tiờn đề Armstrong là đỳng trờn quan hệ r.
Vớ dụ: Cho F = {A B C, C A}, dựng hệ tiờn đề Armstrong chứng minh rằng B C
Trang 17i) Phụ thuộc hàm đầy đủ (fully functional dependence)
Định nghĩa: Giả sử r là một quan hệ trờn tập thuộc tớnh R và A, B P(R), khi đú B được gọi là phụ
thuộc hàm đầy đủ (fully functional dependence) vào A nếu B phụ thuộc hàm vào A, nhưng khụng phụ
thuộc hàm vào bất kỳ một tập con thực sự nào của A
ii) Phụ thuộc hàm bắc cầu
Định nghĩa: Giả sử r là một quan hệ trờn tập thuộc tớnh R và A, C P(R), khi đú C được gọi là phụthuộc hàm bắc cầu vào A trờn R nếu tồn tại B P(R) sao cho A B, B C, nhưng B khụng xỏcđịnh hàm cho A với C A B T nh b c c u th hi n qua s ới dạng bảng: ắc cầu thể hiện qua sơ đồ sau: ầu thể hiện qua sơ đồ sau: ể được biểu diễn dưới dạng bảng: ệ r cú thể được biểu diễn dưới dạng bảng: ơ đồ sau: đồ sau: sau:
Điều kiện C A B là cần thiết vỡ nếu C B A thỡ theo tiờn đề phản xạ luụn cú A B
C, cũn điều kiện B khụng xỏc định hàm cho A để loại bỏ nhiều khoỏ khỏi quan hệ ở dạng chuẩn 3.1.4 CÁC PHẫP TOÁN CỦA NGễN NGỮ THAO TÁC DỮ LIỆU
Cỏc phộp tớnh cơ bản mà nhờ đú một cơ sở dữ liệu được thay đổi là chốn (insert), loại bỏ (delete), và thay đổi (change) Trong mụ hỡnh cơ sở dữ liệu quan hệ được nờu trờn, cỏc phộp tớnh này được ỏp
dụng cho từng bộ của cỏc quan hệ lưu trữ trong mỏy
Trang 18Vớ dụ: Thờm một bộ hi = (Fujitsu, F8 fortuna LH, PC, 1200$) vào quan hệ HANG.
INSERT( HANG; TH = Fujitsu, DC = F8 fortuna LH, MH = PC, DG = 1200$)
Nếu xem thứ tự cỏc trường là cố định, khi đú cú thể biểu diễn phộp chốn dưới dạng khụng tườngminh như sau:
INSERT (r; d1, d2, …, dn)
Mục đớch của phộp chốn là thờm một bộ phận vào một quan hệ nhất định Kết quả của phộp tớnh này
cú thể gõy ra một số sai sút bởi những lý do sau:
1 Bộ mới được thờm vào là khụng phự hợp với lược đồ quan hệ cho trước
2 Một số giỏ trị của một số thuộc tớnh nằm ngoài miền giỏ trị của thuộc tớnh đú
3 Giỏ trị khoỏ của bộ mới cú thể là giỏ trị đó cú trong quan hệ đang lưu trữ
Vớ dụ: Xoỏ một bộ hi = (Fujitsu, F8 fortuna LH, PC, 1200$) trong quan hệ HANG
DEL ( HANG; Fujitsu, F8 fortuna LH, PC, 1200$)
Tuy nhiờn khụng phải bao giờ cũng cần cung cấp toàn bộ cỏc thụng tin (giỏ trị thuộc tớnh) trong
phộp loại bỏ, trong trường hợp ta biết khoỏ của quan hệ, chẳng hạn K = {b1, b2, …, bm}, thụng thường
m << n, thỡ khi đú phộp loại bỏ chỉ cần viết: DEL (r; b1 = d1, b2 = d2, …, bm = dm)
1.4.3 Phộp thay đổi (Change)
Ta cú thể dựng hai phộp tớnh trờn để xử lý toàn bộ cỏc thao tỏc trờn CSDL quan hệ, tuy nhiờn đụikhi người ta chỉ cần thay đổi giỏ trị của một hay một số cỏc thuộc tớnh nhất định, khi đú sử dụngphộp tớnh thay đổi (CH) là rất cần thiết, nhằm giảm thiểu cỏc thao tỏc cũng như sự nhầm lẫn cú thể
cú Phộp thay đổi như sau: Gọi tập {c1, c2, …, cp} {a1, a2, …, an} là tập cỏc thuộc tớnh của bộ cần
thay đổi giỏ trị, phộp thay đổi cú dạng:
Trang 191.5 CÁCH THỨC TỔ CHỨC DỮ LIỆU VẬT Lí
1.5.1 Giới thiệu cỏch thức tổ chức dữ liệu
Dữ liệu vật lý là kết quả thể hiện của việc đưa thụng tin vào quản lý trờn mỏy tớnh Ở mức này cơ sở
dữ liệu vật lý được tổ chức dưới dạng cỏc tệp (file) dữ liệu, bao gồm cỏc bản ghi cú cựng cấu trỳc xỏc định (loại bản ghi), đồng thời mỗi bản ghi được phõn chia thành cỏc trường dữ liệu (field names), mỗi
trường chiếm một số xỏc định cỏc bytes và cú kiểu dữ liệu cố định Cỏc phộp tớnh đặc trưng trờn cỏctệp dữ liệu là:
- Thờm một bản ghi
- Xoỏ một bản ghi
- Sửa một bản ghi
- Tỡm một bản ghi theo giỏ trị xỏc định tại một trường hoặc một số trường nào đú
Chỳ ý: cần thận trọng trong việc xoỏ một bản ghi trong CSDL, thụng thường trong cỏc hệ quản trị
cơ sở dữ liệu người ta luụn cung cấp cơ chế xoỏ hai lần Lần thứ nhất là xoỏ về mặt logic, lần thứ hai mới thực sự xoỏ và trong trường hợp này ta khụng khụi phục lại được.
1.5.2 Mụ hỡnh tổ chức bộ nhớ ngoài
Bộ nhớ ngoài hay cũn gọi là bộ nhớ thứ cấp, bộ nhớ ngoài cú thể là bỡa đục lỗ, băng từ, đĩa từ, đĩaquang, trồng từ … Hiện nay, đĩa từ được sử dụng rất rộng rói, phổ biến và trở thành một phần khụngthể thiếu được đối với mỏy tớnh điện tử Do vậy ta chỉ xột việc tổ chức thụng tin trờn đĩa từ như một
vớ dụ chuẩn mực cho mụ hỡnh tổ chức bộ nhớ ngoài
Đĩa từ được chia thành nhiều rónh (track - được đỏnh số 0,1,2, … từ ngoài vào trong), tập cỏc rónh
cú cựng số thứ tự được gọi là cỏc cylinder, mỗi rónh lại được chia thành nhiều cỏc sector Cỏc sector hay cỏc khối vật lý (physical block) cú kớch cỡ như nhau Mỗi khối chiếm khoảng 512 bytes đến 4096
bytes và được đỏnh địa chỉ khối Địa chỉ này được gọi là địa chỉ tuyệt đối của cỏc khối
Mỗi tệp dữ liệu lưu trờn đĩa từ chiếm một hoặc nhiều khối, mỗi khối chứa một hoặc nhiều bản ghi.Việc thao tỏc với cỏc tệp dữ liệu sẽ thụng qua tờn tệp và thực chất là thụng qua địa chỉ tuyệt đối củacỏc khối
Cỏc bản ghi đều cú địa chỉ và thường được xem là địa chỉ tuyệt đối của byte đầu tiờn của bản ghihoặc là địa chỉ của khối chứa bản ghi đú
Địa chỉ của cỏc bản ghi hoặc cỏc khối được xỏc định thụng qua cỏc chỉ dẫn được gọi là con trỏ (pointer).
1.6 TỔ CHỨC CÁC TỆP CƠ SỞ DỮ LIỆU
Trang 201.6.1 Tệp băm
Trước hết ta xột khỏi niệm hàm băm (Hash function) Nếu mỗi bản ghi đều cú một khoỏ là giỏ trị số (vớ dụ x), hàm băm h(x) (đối số là x) nhận một giỏ trị trong khoảng [0, k] với k là một giỏ trị nguyờn dương đủ lớn nào đú (thường lấy k là một số nguyờn tố) khi đú h(x) = i mod k.
Tư tưởng cơ bản của tổ chức tệp băm là phõn chia tập cỏc bản ghi của tệp dữ liệu thành cỏc cụm
(Buckets) Mỗi cụm bao gồm một hoặc nhiều khối (block) Mỗi khối chứa một số lượng cố định cỏc
bản ghi
Mỗi cụm ứng với một địa chỉ băm Địa chỉ băm được đỏnh số từ 0 đến k-1 ở đầu mỗi khối đều chứa
con trỏ trỏ tới khối tiếp theo trong cụm, khối cuối cựng trong cụm chứa con trỏ rỗng Cú một bảng chỉ dẫn cụm (bucket directory) chứa k con trỏ, mỗi con trỏ ứng với một cụm, đú là địa chỉ của khối
đầu tiờn trong cụm
- Thờm một bản ghi
Trang 21Giả sử cần thờm một bản ghi cú khoỏ là x vào tệp, thủ tục được thực hiện giống như tỡm kiếm mộtbản ghi.
- Nếu trong tệp đó cú một bản ghi cú khoỏ trựng với x, chứng tỏ bản ghi mới là sai (vỡ khoỏ làduy nhất)
- Nếu khụng cú bản ghi trựng khoỏ, bản ghi cú khoỏ x được thờm vào khối đầu tiờn trong cụmcũn chỗ trống Nếu khụng cũn chỗ trống nào trong mọi khối của cụm, thỡ phải tạo thờm một
khối mới, con trỏ null của khối cuối cựng được trỏ sang khối mới này Trong trường hợp này
bản ghi mới sẽ là bản ghi đầu tiờn của khối vừa được thiết lập và khối này trở thành khối cuốicựng
1.6.2 Tệp chỉ số
Một kiểu tổ chức tệp dữ liệu truy nhập khúa rất thường dựng trong CSDL là tệp chỉ số Để dễ trỡnhbày, ta giả thiết rằng tệp dữ liệu chớnh luụn luụn là tệp đó được sắp xếp theo khoỏ (vớ dụ theo thứ tựtăng dần) Khoỏ luụn luụn được quan niệm rằng, bao gồm một hoặc nhiều trường cú thứ tự và cú độdài cố định Giỏ trị của khoỏ cú thể là số, cú thể là một xõu kớ tự Nếu là một xõu ký tự, việc sắp xếp
là theo A, B, C, … hay thứ tự từ điển Chẳng hạn xi, yj là cỏc xõu ký tự, hai xõu x1…xk < y1…ym khi
và chỉ khi:
1 k < m và x1…xk = y1…yk hoặc
2 với i nào đú, i min (k, m) cú x1 = y1, …, xi-1 = yi-1, xi = yi
Để hỗ trợ cho tệp dữ liệu chớnh, cần tạo một tệp chỉ số theo khoỏ được chọn Tệp chỉ số bao gồm cỏccặp (k, d) trong đú k là giỏ trị của khoỏ, d là địa chỉ của khối (hay con trỏ khối) Cỏc cặp này đượcsắp xếp theo giỏ trị của khoỏ
Trang 22Giả sử cần tỡm một bản ghi nào đú cú giỏ trị khoỏ là x, cú thể cú nhiều cỏch duyệt trong tệp chỉ số.
Phương phỏp tỡm kiếm tuần tự
Duyệt trong tệp chỉ số cỏc cặp (k, d) trong bảng khối chỉ số, so sỏnh giỏ trị x với k; gặp cặp đầu tiờn(k’, d’) cú k’ > x thỡ dừng Như vậy giỏ trị x cú thể thuộc khối đứng ngay trước khối (k’, d’), vớ dụkhối (k1, d1) Trong khối (k1, d1) sẽ tỡm tuần tự theo tệp chỉ số cho tới khi gặp giỏ trị k nào đú bằng xthỡ giỏ trị d tương ứng là địa chỉ của bộ cần tỡm Nếu khụng cú giỏ trị k nào trong khối (k1, d1) bằngvới x, xem như bản ghi khụng tồn tại
Phương phỏp tỡm kiếm nhị phõn
Phương phỏp tỡm kiếm tuần tự núi chung là chậm, thường cú thể sử dụng cỏc phương phỏp khỏc nhưphương phỏp nhị phõn (chia đụi), vỡ tệp chỉ số bao giờ cũng được sắp xếp Giả sử tệp chỉ số được lưutrữ trờn n khối (b1, b2, …, bn) Để tỡm một bản ghi cú khoỏ x, trước hết chọn khối bn/2, so sỏnh giỏ trị
k thuộc khối bn/2 và x, nếu k > x thỡ bộ cần tỡm nằm ở một trong cỏc khối b1, b2, …, bn/2, ngược lạitrong cỏc khối từ bn/2+1, …, bn quỏ trỡnh lặp lại cho đến khi chỉ cũn một khối chứa bản ghi khoỏ x.Trong khối này tiếp tục tỡm tuần tự trong cỏc cặp (k, d) như phương phỏp tỡm tuần tự
- Thờm một bản ghi
Muốn thờm một bản ghi mới cú khoỏ là x vào tệp chỉ số, sử dụng thủ tục tỡm kiếm bản ghi như trờn
để xỏc định khối bi (i =1 ,n) sẽ chứa bản ghi đú Nếu trong khối bi cũn chỗ thỡ thờm bản ghi nàyvào khối đú theo đỳng thứ tự sắp xếp của khoỏ Việc đặt đỳng vị trớ này đũi hỏi phải chuyển chỗ cỏcbản ghi đứng sau bản ghi cú khoỏ x trong khối bi Nếu bản ghi khoỏ x là bản ghi đầu tiờn của khốithỡ phải sửa lại khoỏ k thành x trong bảng chỉ dẫn khối
Nếu việc thờm bản ghi vào khối bi hết chỗ thỡ bản ghi cuối cựng của khối bi sẽ chuyển sang làm bảnghi đầu tiờn của khối bi+1, khi đú phải sửa lại giỏ trị (k, d) của khối bi+1 tương ứng Nếu bản ghi cúkhoỏ x là bản ghi cuối cựng, tức x lớn hơn mọi khoỏ k trong tệp chỉ dẫn và mọi bi đều hết chỗ, khi đúthiết lập một khối mới bi+1, bản ghi khoỏ x sẽ là bản ghi đầu tiờn của khối mới này
- Xoỏ một bản ghi
Trang 23Quỏ trỡnh giống như thờm bản ghi, lưu ý nếu khi xoỏ một bản ghi tạo nờn một khối rỗng, khi đú cúthể loại bỏ cả khối đú.
- Sửa một bản ghi
Sử dụng thủ tục tỡm một bản ghi để xỏc định bản ghi cần sửa
- Nếu cỏc trường cần sửa khụng phải là trường khoỏ, việc sửa đổi giỏ trị của bản ghi tiến hànhbỡnh thường, giỏ trị của bản ghi sau khi sửa được ghi lại vị trớ cũ
- Nếu cỏc giỏ trị cỏc trường cần sửa tham gia khoỏ, quỏ trỡnh sửa sẽ là xoỏ và sau đú thờmmới một bản ghi
Chỳ ý: Tệp chỉ số cú thể được cấu trỳc một cỏch đơn giản hơn rất nhiều Tệp này chỉ gồm hai
trường: khoỏ k, con trỏ d Mỗi bản ghi của tệp chỉ số tương ứng với một bản ghi của tệp chớnh, cũncon trỏ d là địa chỉ của bản ghi trong tệp chớnh Trong trường hợp này tệp dữ liệu chớnh khụng nhấtthiết phải được sắp xếp
1.6.3 B - Cõy (Balanced tree)
Một kiểu tổ chức dữ liệu thường được sử dụng trong cơ sở dữ liệu là tổ chức cõy cõn bằng (B-cõy).B-cõy được tổ chức theo cấp m, cú cỏc tớnh chất sau đõy:
- Gốc của cõy hoặc là một nỳt lỏ hoặc ớt nhất cú hai con,
- Mỗi nỳt (trừ nỳt gốc và nỳt lỏ) cú từ [m/2] đến m con,
- Mỗi đường đi từ gốc đến bất kỳ lỏ nào đều cú độ dài như nhau
Hỡnh 3 biểu diễn một cõy phõn cấp 5 Mỗi khối ứng với lỏ chứa tối đa 5 bản ghi Khối ứng với nỳtchứa được 5 con trỏ và 4 khoỏ Cỏc nỳt trong B-cõy thực chất là khối tệp chỉ số Cỏc khối chỉ sốđược phõn theo từng mức, mức càng cao độ chi tiết càng lớn
Cấu trỳc mỗi nỳt trong B-cõy cú dạng:
(p0, k1, p1, k2, …, kn, pn) với pi (i =1 ,n) là con trỏ trỏ tới khối i của nỳt cú ki là khoỏ đầu tiờn củakhối đú Cỏc khoỏ k trong một nỳt được sắp xếp theo thứ tự tăng dần
- Mọi khoỏ trong cõy con, trỏ bởi con trỏ p0 đều nhỏ hơn k1
- Mọi khoỏ trong cõy con, trỏ bởi con trỏ pi đều nhỏ hơn ki+1 Mọi khoỏ trong cõy con, trỏ bởicon trỏ pn đều lớn hơn kn
Cỏc nỳt lỏ chỉ chứa khoỏ của cỏc bản ghi trong tệp chớnh
Trang 24kn, pn)) của B-cõy kể từ nỳt gốc Tại mỗi nỳt sẽ xỏc định con trỏ đi tới nỳt tiếp theo.
Thủ tục: So sỏnh khoỏ x với cỏc khoỏ k1, k2, …, kn tại nỳt đang xột Nếu ki x <ki+1 sẽ chọn con trỏ
pi để duyệt tiếp nỳt con trỏ từ pi tới Quỏ trỡnh duyệt tiếp tục như trờn nếu x < k1 thỡ cú khả năngtỡm x trong nỳt trỏ p0, nếu x kn thỡ tỡm theo nỳt trỏ từ pn
Cuối cựng sẽ tới một nỳt lỏ trong nỳt lỏ tỡm tuần tự bằng cỏch so sỏnh khoỏ x với cỏc giỏ trị khoỏtrong nỳt lỏ, từ đú sẽ nhận được bản ghi cần tỡm nếu bản ghi đú tồn tại, cũng cú thể khụng tồn tại bảnghi trong tệp
- Xoỏ một bản ghi
Giả sử cần loại bỏ bản ghi cú khoỏ x vào B-cõy, trước hết cần xỏc định vị trớ nỳt lỏ sẽ chứa bản ghi
đú Thủ tục xỏc định nỳt lỏ như thủ tục tỡm kiếm một bản ghi
Nếu bản ghi cần xoỏ là bản ghi đầu tiờn của nỳt L thỡ phải tỡm tới nỳt p ngay trờn nỳt L để chỉnh lạigiỏ trị khoỏ đầu tiờn của L cú trước đú
Nếu L lại là nỳt con đầu tiờn của p thỡ khoỏ đầu tiờn của L khụng đặt được ở p, khi đú khụng cầnthiết chỉnh sửa nữa Tuy nhiờn cú thể khoỏ đầu tiờn đú của p lại xuất hiện ở một nỳt trờn đú Do vậyviệc tỡm và chỉnh lý khoỏ này vẫn phải tiếp tục ngược lờn cho tới tận gốc như đường đi đó vạch rakhi dựng thủ tục tỡm kiếm
Nếu sau khi loại bỏ bản ghi khoỏ x khỏi nỳt L, L trở thành một nỳt rỗng, khi đú cần chỉnh lý lại cặp(k, p) ứng với L trong nỳt trờn là p để mụ tả lại sự thay đổi xảy ra Việc thay đổi này cú thể làm nỳt p
Trang 25cú thể cú ớt hơn [m/2] cặp (k, p) khi đú ta xem xột cỏc nỳt cú hơn [m/2+1] cặp (k, p) sẽ phõn bố lạicỏc cặp này theo đỳng thứ tự sao cho mỗi nỳt ớt nhất cú [m/2] cặp (k, p) Ngược lại, nếu nỳt bờn trỏi
(hoặc phải) cú đỳng [m/2] cặp, khi đú ghộp p và p’ thành một nỳt mới với 2*[m/2]-1 cặp (k, p) và
chỉnh lại khoỏ và con trỏ ứng với nỳt trờn Quỏ trỡnh này cú thể truyền ứng ngược lờn tới tận gốc
Trang 272.1 ĐẠI SỐ QUAN HỆ
2.1.1 Giới thiệu về đại số quan hệ
Ngụn ngữ xử lý dữ liệu là một phần quan trọng trong cỏc hệ quản trị cơ sở dữ liệu Từ năm 1970E.F.Codd đưa ra 2 ngụn ngữ xử lý dữ liệu chớnh là ngụn ngữ đại số quan hệ và ngụn ngữ tớnh toỏnquan hệ (dựa vào phộp toỏn tõn từ)
Hầu hết cỏc ngụn ngữ xử lý của cỏc hệ quản trị cơ sở dữ liệu hiện nay đều dựng ngụn ngữ đại số quan
hệ nờn ta trỡnh bày cỏc phộp toỏn cơ sở của đại số quan hệ và sau đú là cỏc phộp toỏn đại số quan hệ
là hệ quả của cỏc phộp toỏn cơ sở
Cỏc phộp toỏn cơ sở của đại số quan hệ bao gồm: phộp hợp, phộp trừ, phộp tớch đề cỏc, phộp chiếu,phộp chọn
2.1.2 Phộp hợp (Union)
Gọi r1, r2 là hai quan hệ trờn tập thuộc tớnh R, phộp hợp của hai quan hệ r1, r2 là một quan hệ r Kýphỏp r= r1r2 bao gồm tất cả cỏc bộ thuộc r1 ( r1) hoặc r2 hoặc thuộc cả hai, trong đú cỏc bộgiống nhau chỉ giữ lại một
Vớ dụ: cho c c quan hỏc quan hệ ệ r cú thể được biểu diễn dưới dạng bảng:
Trang 282.1.5 Tớch Đề cỏc mở rộng (Extended Cartesian Product)
Gọi: r1 là quan hệ trờn tập thuộc tớnh R1 = {a1, a2, …, an}
Trang 29a a d e f g
2.1.6 Phộp chiếu (Projection)
Giả sử r là quan hệ trờn tập thuộc tớnh R = {a1, a2, …, an}, phộp chiếu ký phỏp i2 i p với ij lấy
từ j = 1 , p lấy trong tập từ 1 đến n và pn trong ký phỏp thay cho i1, i2, …, ip ta cú thể viết abc…tvới a, b, c, …, t là tờn p thuộc tớnh lấy trong tập thuộc tớnh {a1, a2, …, an} được thực hiờn như sau:Giả sử p thuộc tớnh cú số hiệu là i1, i2, …, ip cỏc bộ trựng nhau chỉ giữ lại một kết quả nhận được làmột quan hệ trờn tập thuộc tớnh { a, b, c, …, t} hoặc {ai1, ai2, …, aip}
Vớ dụ: Cho quan h rệ r cú thể được biểu diễn dưới dạng bảng:
Gọi F là điều kiện nếu nú bao gồm:
- Cỏc toỏn hạng (tờn thuộc tớnh, cỏc hằng bao bởi cặp dấu nhỏy ‘ ‘)
- Cỏc phộp toỏn so sỏnh (<, =, >, <=, >=, #)
- Cỏc phộp toỏn logic (and( ), or( ), not ( ))
Vớ dụ: Cho quan hệ r, tỡm quan hệ thoả món điều kiện F = (A=’a’) (C=’b’)
Giả sử r1 là quan hệ trờn tập thuộc tớnh R1 = {a1, a2, …, an}, r2 là quan hệ trờn tập thuộc tớnh R2 = {b1,
b2, …, bm} (Trong đú ai và bj khụng nhất thiết phải khỏc nhau, trường hợp giống nhau cần đỏnh dấu