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

Ct467 c2 luu tru va cau truc tap tin 3 4

63 6 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Lưu Trữ Và Cấu Trúc Tập Tin
Tác giả Ths. Nguyễn Thị Kim Yến
Trường học Trường Đại Học Cần Thơ
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài Giảng
Định dạng
Số trang 63
Dung lượng 2,82 MB

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

Nội dung

MỤC TIÊUNhằm giới thiệu 2 kỹ thuật rất phổ biến được sử dụng để tăng hiệu suất truy cập dữ liệu trong các Hệ QT CSDL là chỉ mục index và băm hash... 6.1 Chỉ mục indexing• Chỉ mục: một cấ

Trang 1

TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

BỘ MÔN CÔNG NGHỆ THÔNG TIN

Biên soạn:

Ths Nguyễn Thị Kim Yến Ntkyen@ctu.edu.vn

QUẢN TRỊ DỮ LIỆU - CT467 Chương 2: LƯU TRỮ VÀ

CẤU TRÚC TẬP TIN

Trang 2

MỤC TIÊU

Nhằm giới thiệu 2 kỹ thuật rất phổ biến được sử dụng

để tăng hiệu suất truy cập dữ liệu trong các Hệ QT

CSDL là chỉ mục (index) và băm (hash)

Trang 4

6.1 Chỉ mục (indexing)

Chỉ mục: một cấu trúc dữ liệu được dùng để định vị

và truy cập nhanh nhất vào trong các bảng DB

• Một Index là một con trỏ tới dữ liệu trong một bảng

Tăng tốc độ tìm kiếm

và truy cập DB

Trang 5

Cấu trúc của Index:

Trang 6

6.1.1 Chỉ mục được sắp (Ordered index)

• Là chỉ mục lưu trữ các giá trị khoá tìm kiếm trong thứ tự được sắp và kết hợp từng khoá tìm kiếm với các mẫu tin chứa khoá tìm kiếm này

Trang 7

• Nếu file chứa các mẩu tin được sắp tuần tự theo khóa tìm kiếm, chỉ mục theo khoá tìm kiếm này được gọi là

chỉ mục sơ cấp (hay chỉ mục theo cụm)

• Nếu file chứa các mẩu tin không được sắp theo khóa tìm kiếm, chỉ mục theo khóa tìm kiếm này được gọi là

chỉ mục thứ cấp (hay chỉ mục không phân cụm)

6.1.1 Chỉ mục được sắp (Ordered index) (tt)

Trang 8

a) Chỉ mục sơ cấp (Primary index)

Chỉ mục đặc (dense index): có mẩu tin chỉ mục cho

mỗi khóa tìm kiếm

Brighton A-217 750 Downtown A-101 500 Downtown A-110 600 Mianus A-215 700 Perryridge A-102 400 Perryridge A-201 900 Perryridge A-218 700 Redwood A-222 700 Round Hill A-305 350

Trang 9

Chỉ mục thưa (sparse index): chỉ có mẩu tin chỉ mục

cho một số khóa tìm kiếm

a) Chỉ mục sơ cấp (Primary index) (tt)

Brighton A-217 750 Downtown A-101 500 Downtown A-110 600 Mianus A-215 700 Perryridge A-102 400 Perryridge A-201 900 Perryridge A-218 700 Redwood A-222 700 Round Hill A-305 350

Brighton

Mianus

Redwood

Trang 10

• Mỗi index record trỏ tới một bucket chứa các con trỏ tới tất cả các bản ghi có giá trị search-key.

b) Chỉ mục thứ cấp (Secondary index)

Bucket: 1 đơn vị lưu trữ chứa 1 hoặc

nhiều record

Trang 11

Chỉ mục nhiều cấp (Multilevel index)

• Sử dụng trong trường hợp tập tin chỉ mục quá lớn

Cách thực hiện: Lưu chỉ mục sơ cấp trên ổ cứng và

xây một chỉ mục thưa trên nó

Trang 12

Đặc Thưa

6.1 Chỉ mục (indexing) (tt)

Trang 13

Nhược điểm của file chỉ mục tuần tự: giảm hiệu năng khi file lớn lên

Để khắc phục: đòi hỏi phải tổ chức lại file

B+-cây là một cấu trúc tổ chức chỉ mục được sử

dụng rộng rãi vì nó đảm bảo được tính hiệu quả bất chấp các hành động xen xoá.

6.1.2 File chỉ mục B+ -Cây (B+-Tree Index file)

Trang 14

6.1.2 File chỉ mục B+ -Cây (tt)

Nút bên trái sẽ có tất cả các giá trị nhỏ hơn hoặc bằng nút gốc

Nút bên phải sẽ có

giá trị lớn hơn nút gốc

Trang 15

6.1.2 File chỉ mục B+ -Cây (tt)

v Cấu trúc của một nút lá B+ Tree có bậc p

• Con trỏ dữ liệu chỉ xuất phát ở nút lá

• Các Nút lá liên kết với nhau theo thứ tự khóa tìm kiếm

Trang 16

• Là một dạng cây cân bằng (mọi đường dẫn từ gốc đến

lá có cùng độ dài)

• Mỗi nút không là lá có số con (pointer) nằm trong

khoảng [m/2] m, m là 1 số cố định gọi là bậc của cây

• Mỗi nút lá có số giá trị (key) nằm trong khoảng

[(m-1)/2] m-1

• Nút gốc (nếu không phải nút lá) có ít nhất 2 nút con

• Mọi nút lá đều nằm cùng một mức

6.1.2 File chỉ mục B+ -Cây (tt)

Trang 17

File chỉ mục B+ -cây - THÊM

Ý tưởng: Tìm vị trí khóa có thể thêm vào cây Khóa

mới sẽ được thêm vào nút lá:

– Nếu chưa đầy → Thêm khóa mới vào là hoàn tất

– Nếu đầy → Tách nút lá ra làm hai nút cạnh nhau trong cùng một mức Cụ thể: chuyển phần tử giữa lên nút cha

Quá trình tách nút có thể được lan truyền ngược về nút gốc và kết thúc khi có một nút cha nào đó cần được thêm 1 khóa từ dưới lên mà chưa đầy

Trang 20

9 23

9 19 23 27 1

3

11

Tách nút

3 Thêm nút: 3 và 11

Trang 21

19 23 9 1 3 11 21 5 13 17 15 29 25 27

Trang 22

19 23 9 1 3 11 21 5 13 17 15 29 25 27

Trang 23

19 23 9 1 3 11 21 5 13 17 15 29 25 27

Trang 24

19 23 9 1 3 11 21 5 13 17 15 29 25 27

Trang 26

19 23 9 1 3 11 21 5 13 17 15 29 25 27

Trang 27

19 23 9 1 3 11 21 5 13 17 15 29 25 27

Trang 28

Giả sử bây giờ ta chèn thêm record:

Trang 29

Brig Clearview Down

Clearview

Trang 30

Downtown Mianus Redwood

Clearview

Clearview

Downt

Downto

Trang 31

File chỉ mục B+ -cây - XÓA

Thao tác thực hiện:

1 Tìm nút lá chứa khóa cần xóa

2 Xóa khóa trong nút lá tìm được 1 trong các cách sau:

2.1 Trường hợp đơn giản , xóa khóa cây vẫn đúng cấu trúc

2.2 Trường hợp nút lá có ít hơn k khóa (trong đó, m = 2k+1),

(a) Nếu 1 nút kề có nhiều hơn k khóa, chuyển một khóa sang

(b) Ngược lại, thực hiện gộp lại với một nút kề (cha sẽ giảm đi

Trang 32

File chỉ mục B+ -cây - XÓA

Thao tác thực hiện (tiếp theo):

2.3 Trường hợp nút trung gian có ít hơn k khóa , lặp lại thao

3 Nếu thực hiện gộp đến nút gốc và nút gốc chỉ còn 1 nút con, thì cho nút con làm nút gốc mới

Trang 33

2.1 Cây không thay đổi cấu trúc: Xóa khóa D

Trang 34

2.2 Nút lá có ít hơn k khóa thực hiện tái cân bằng cây

(a) Nút kề có nhiều hơn k khóa, chuyển 1 khóa sang

H A

E

I J D

F C

Trang 35

2.2 Nút lá có ít hơn k khóa thực hiện tái cân bằng cây

(a) Nút kề có nhiều hơn k khóa, chuyển 1 khóa sang

Trang 36

2.2 Nút lá có ít hơn k khóa thực hiện tái cân bằng cây

(b) Gộp lại với một nút kề (cha sẽ giảm đi một nút con)

G

E F C

J

G A

m=5 k=2

Nút trung gian ít hơn k khóa

Trang 37

G A

thao tác tái cân bằng cây như ở bước 2.1 và 2.2

m=5 k=2

Trang 38

m=5 k=2

G

E F C

Trang 40

Xoá khóa:Downtown ra khỏi B+ -cây

Trang 42

• Hạn chế của cơ chế tổ chức file tuần tự là:

– Tốn nhiều thời gian cho các thao tác I/O

Kỹ thuật băm giúp bỏ qua các thao tác truy xuất cấu trúc Index DL được lưu trữ dưới dạng các khối dữ liệu

Có 2 loại băm: Băm tĩnh (static hashing) và Băm động

(dynamic hashing)

6.2 Băm (hashing)

Trang 43

v Các thuật ngữ trong phương pháp băm

Trang 44

• Một hàm băm tốt phải thỏa mãn các điều kiện sau:

– Giảm thiểu va chạm

– Tính toán nhanh

– Các giá trị khóa được phân bổ đều trong bảng

– Xử lý được các loại khóa có kiểu dữ liệu khác nhau

v Lựa chọn hàm băm (hash function)

Trang 45

6.2 Băm (hashing)

6.2.1 Băm tĩnh

• Địa chỉ của một vùng nhớ dữ liệu khi được tính toán thì

sẽ luôn giống nhau

Ví dụ: hàm băm là mod (5) để xác định địa chỉ của khối

dữ liệu

Trang 46

• Là nơi dữ liệu được lưu trữ tại các khối dữ liệu có địa chỉ được tạo ra bằng cách sử dụng hàm băm.

• Hàm băm có thể sử dụng bất kỳ giá trị cột nào để tạo địa chỉ

v Phương pháp tổ chức file băm

Trang 47

• Trong kỹ thuật băm, người ta cho đầu vào là một

khoá tìm kiếm, hàm băm trên khoá này sẽ cho ra giá trị là vị trí của khối đĩa chứa mẫu tin

Trang 48

1. Chia lấy số dư: h(k) = k % m , với m là 1 số nguyên tố

2. Nhân: h(k) = một số chữ số ở "giữa" giá trị k 2

3. Phân đoạn: phân ra thành nhiều đoạn bằng nhau

– Tách: căn thẳng lề các đoạn trái or phải  Tính tổng

– Gấp: gấp các đoạn lại theo đường biên tương tự như gấp giấy

v Một số phương pháp xây dựng hàm băm

Trang 49

v Xây dựng bảng băm - Hash table

• Ví dụ: Giả sử có hàm h(k) = k%5

• Có các giá trị key: 11, 21, 44, 23, 42, 4, 34, 12

θ

0 1 2 3 4

Mã băm (Index) Bucket

11 21 42

23

44 4 34

giá trị

Trang 50

Va chạm giá trị băm

• Là trạng thái khi các kết quả băm từ hai hoặc nhiều DL trong tập DL, ánh xạ vào cùng một vị trí trong bảng băm

Trang 51

Một số kỹ thuật giải quyết sự va chạm

• Direct Chaining (tạo dây chuyền): Ứng dụng danh sách liên kết

– Separate chaining (chuỗi riêng biệt)

• Open Addressing (định địa chỉ mở): Dựa trên cấu trúc mảng

– Linear probing (thăm dò tuyến tính)

– Quadratic probing (thăm dò bình phương)

– Double hashing (băm kép)

Trang 53

v Phương pháp băm mở

Băm mở: Thay vì ghi đè vùng nhớ dữ liệu cũ, thì vùng nhớ

dữ liệu tiếp theo được sử dụng để nhập bản ghi mới (phương pháp thăm dò tuyến tính: tìm kiếm ô kế tiếp)

Trang 54

• Xét hàm băm "key mod 7"

• dãy key = {50, 700, 76, 85, 92, 73, 101}

0 1 2 3 4 5 6

Trang 55

Insert (k): tìm kiếm cho đến khi thấy một ô trống, sau

đó bổ sung k

Search(k): tìm kiếm cho đến khi khóa của ô bằng k

hoặc ô trống được tìm thấy

Delete(k): khóa bị xóa được đánh dấu "deleted"

Nhận xét: Insert có thể bổ sung 1 phần tử vào ô đánh dấu "deleted" nhưng Search thì không được dừng lại

Trang 56

v Phương pháp băm đóng

Băm đóng: Khi các vùng nhớ dữ liệu đầy, một vùng nhớ mới

sẽ được cấp phát cho cùng một hàm băm và kết quả sẽ được liên kết sau vùng nhớ trước đó (chuỗi tràn)

Chứa các giá trị băm giống nhau

Trang 57

Ví dụ

• Xét hàm băm "key mod 7"

• dãy key = {50, 700, 76, 85, 92, 73, 101}

0 1 2 3 4 5 6

50 700 73 76

101

85 mod 7 => dư 1

Trang 58

0 1 2 3

a

b c e

Trang 59

6.2 Băm (hashing)

6.2.2 Băm động

Chúng ta đối phó như thế nào khi file dữ liệu phình to quá khả năng quản lý của bảng băm?

Nếu tràn  Nới rộng, chọn hàm băm mới và tổ chức

lại bảng băm  Tốn chi phí

Trang 61

Không có không gian cho R3

Sử dụng 1 bit

Sử dụng 2 bit

Ví dụ

Trang 62

• Có 2 phương pháp xử lý khi xuất hiện khối trống:

– Không merge các khối trống lại

– Merge các khối trống lại và rút ngắn chiều dài bảng băm nếu có thể (làm ngược thủ tục chèn)

Băm động - Xóa

Ngày đăng: 23/11/2024, 09:41

HÌNH ẢNH LIÊN QUAN

Bảng băm tự nới rộng nhưng hàm băm - Ct467 c2 luu tru va cau truc tap tin  3 4
Bảng b ăm tự nới rộng nhưng hàm băm (Trang 59)

TỪ KHÓA LIÊN QUAN

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

w