chuong 4

54 6 0
chuong 4

Đ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

THIẾT KẾ VÀ XÂY DỰNG CƠ SỞ DỮ LIỆU CHƯƠNG 4: THIẾT KẾ VÀ TỔ CHỨC CƠ SỞ DỮ LIỆU VẬT LÝ NỘI DUNG Thiết kế sở liệu vật lý Các ràng buộc quan hệ Tổ chức vật lý sở liệu Thiết kế sở liệu vật lý Thiết kế sở liệu vật lý Sơ đồ thiết kế sở liệu vật lý Thiết kế sở liệu vật lý a Thiết kế trường a1 Vài đặc tả tiêu biểu trường a2 Một số đặc trưng thiết kế trường b Thiết kế ghi vật lý b1 Ví dụ phi chuẩn 10 d Phép băm  Băm tĩnh (Static Hashing)  1.4.1.1 Tổ chức tệp băm  Gọi K tập giá trị khóa tìm kiếm, B tập địa bucket Hàm băm h hàm ánh xạ giá trị từ K sang B  Bản ghi với khóa tìm kiếm Ki thêm vào bucket có địa h(Ki) Để tìm kiếm ghi với khóa tìm kiếm Ki, ta thực tìm kiếm bucket h(Ki)  Thêm ghi với giá trị khố K vào file: ta tính h(K) Giá trị h(K) địa bucket chứa ghi Nếu có khơng gian bucket cho ghi, ghi lưu trữ bucket  Tìm kiếm ghi theo giá trị khoá K: tính h(K) → tìm bucket tương ứng → tìm bucket ghi với giá trị khoá K mong muốn  Xoá ghi với giá trị khoá K: tính h(K) → tìm bucket tương ứng ghi mong muốn → xố khỏi bucket 40 d Phép băm  1.4.1 Băm tĩnh (Static Hashing)  1.4.1.2 Các hàm băm  Hàm băm dùng tổ chức file + tạo mục  Tạo mục băm: áp dụng hàm băm trường khóa tìm kiếm để xác định địa bucket → lưu giá trị khóa tìm kiếm + trỏ tới ghi liệu vào bucket  Hàm băm xấu nhất: ánh xạ tất giá trị khoá vào bucket  Hàm băm lý tưởng: phân phối giá trị khoá vào bucket (mỗi bucket chứa số lượng ghi nhau) Chọn hàm băm thoả mãn tiêu chuẩn sau:  Phân phối đều: Mỗi bucket gán số giá trị khoá tìm kiếm tập hợp tất giá trị khố  Phân phối ngẫu nhiên: Trong trường hợp trung bình, bucket gán số lượng giá trị khố tìm kiếm gần 41 d Phép băm  1.4.1 Băm tĩnh (Static Hashing)  1.4.1.3 Xử lí đụng độ  Khi thêm ghi, bucket tương ứng chỗ, ghi xen vào bucket, không xảy tràn bucket  Các nguyên tràn bucket:  Các bucket không đủ Số bucket nB phải thoả mãn nB>nr/fr nr tổng số ghi lưu trữ, fr số ghi lấp đầy bucket  Sự lệch Một vài bucket gán cho số lượng ghi nhiều bucket khác → bucket tràn bucket khác cịn khơng gian Tình gọi lệch bucket, nguyên nhân:  Nhiều ghi có khố tìm kiếm  Hàm băm chọn phân phối giá trị khố khơng 42 d Phép băm  1.4.1 Băm tĩnh (Static Hashing)  1.4.1.3 Xử lí đụng độ  Quản lý tràn bucket cách dùng bucket tràn  Nếu ghi phải xen vào bucket B bucket B đầy, bucket tràn cấp cho B ghi xen vào bucket tràn  Nếu bucket tràn đầy bucket tràn lại cấp  Tất bucket tràn bucket “móc xích” với thành danh sách liên kết  Việc điều khiển tràn dùng danh sách liên kết gọi dây chuyền tràn  Đối với dây chuyền tràn, thuật tốn tìm kiếm thay đổi: tính giá trị hàm băm khố tìm kiếm (được bucket B) → kiểm tra ghi , bucket B tất bucket tràn tương ứng, có giá trị khố khớp với giá trị tìm khơng 43 d Phép băm  1.4.1 Băm tĩnh (Static Hashing)  1.4.1.4 Các mục băm  Một mục băm tổ chức khố tìm kiếm trỏ kết hợp vào cấu trúc file băm sau: áp dụng hàm băm khố tìm kiếm để định danh bucket → lưu giá trị khoá trỏ kết hợp vào bucket (hoặc vào bucket tràn)  Chỉ mục băm thường mục thứ cấp  Ví dụ: mục băm thứ cấp file instructor với khóa tìm kiếm ID Hàm băm trường hợp tính tổng chữ số ID đem chia lấy dư cho 44 d Phép băm  1.4.1 Băm tĩnh (Static Hashing)  1.4.1.4 Các mục băm 45 d Phép băm  1.4.2 Băm động (Dynamic Hashing)  Trong kỹ thuật băm tĩnh, tập B địa bucket phải cố định Các CSDL phát triển lớn lên theo thời gian Nếu ta sử dụng băm tĩnh cho CSDL, ta có ba lớp lựa chọn:  Chọn hàm băm dựa kích cỡ file hành→ suy giảm hiệu CSDL lớn lên  Chọn hàm băm dựa kích cỡ file dự đoán trước: suy giảm hiệu cải thiện, khơng gian bị lãng phí lúc khởi đầu  Tổ chức lại theo chu kỳ cấu trúc băm đáp ứng phát triển kích cỡ file  Lựa chọn hàm băm mới, tính lại hàm băm ghi file sinh gán bucket   Tổ chức lại hoạt động tốn thời gian Đòi hỏi cấm truy xuất file tổ chức lại file 46 d Phép băm  1.4.2 Băm động (Dynamic Hashing) 47 d Phép băm  1.4.2 Băm động (Dynamic Hashing)  Kỹ thuật băm động cho phép sửa đổi hàm băm để phù hợp với tăng giảm CSDL  Một dạng băm động gọi băm mở rộng (extendable hashing) thực sau:  Chọn hàm băm h với tính chất đều, ngẫu nhiên có miền giá trị tương đối rộng, chẳng hạn, số nguyên b bit (b thường 32)  Khi khởi đầu ta khơng sử dụng tồn b bit giá trị băm  Tại thời điểm, ta sử dụng i bit ≤ i ≤ b  i bit dùng độ dời (offset) bảng địa bucket phụ  giá trị i tăng lên hay giảm xuống tuỳ theo kích cỡ CSDL 48 d Phép băm  1.4.2 Băm động (Dynamic Hashing)  Số i xuất bên bảng địa bucket i bit giá trị băm h(K) đòi hỏi để xác định bucket cho K, số thay đổi kích cỡ file thay đổi  Mặc dù i bit địi hỏi để tìm đầu vào bảng địa bucket, số đầu vào bảng kề trỏ đến bucket Tất có chung hash prefix chung, chiều dài prefix nhỏ i Ta kết hợp số nguyên độ dài hash prefix chung này, ta ký hiệu số nguyên kết hợp với bucket j ij Số đầu vào bảng địa bucket trỏ đến bucket j là 2i – i j  49 d Phép băm  1.4.2 Băm động (Dynamic Hashing)  Cấu trúc băm mở rộng tổng quát  Để định vị bucket chứa giá trị khố tìm kiếm K , ta lấy i bit cao h(K), tìm đầu vào bảng tương ứng với chuỗi bit lần theo trỏ đầu vào bảng Để xen mẩu tin với giá trị khố tìm kiếm K, tiến hành thủ tục dịnh vị trên, ta bucket, giả sử bucket j Nếu cho cho mẩu tin, xen mẩu tin vào bucket Nếu khơng, ta phải tách bucket phân phối lại mẩu tin có mẩu tin Để tách bucket, ta xác định từ giá trị băm có cần tăng số bit lên hay không 50 1.4 Phép băm  1.4.2 Băm động (Dynamic Hashing)  Nếu i = ij , có đầu vào bảng địa bucket trỏ đến bucket j ta cần tăng kích cỡ bảng địa bucket cho ta bao hàm trỏ đến hai bucket kết việc tách bucket j cách xét thêm bit giá trị băm tăng giá trị i lên một, kích cỡ bảng địa bucket tăng lên gấp đôi Mỗi đầu vào thay hai đầu vào, hai chứa trỏ đầu vào gốc Bây hai đầu vào bảng địa bucket trỏ tới bucket j Ta định vị bucket (bucket z), đặt đầu vào thứ hai trỏ tới bucket mới, đặt i j và iz về i, mẩu tin bucket j băm lại, tuỳ thuộc vào i bit đầu tiên, lại bucket j cấp phát cho bucket tạo 51 1.4 Phép băm  1.4.2 Băm động (Dynamic Hashing)  Nếu i > ij khi nhiều đầu vào bảng địa bucket trỏ tới bucket j ta tách bucket j mà khơng cần tăng kích cỡ bảng địa bucket Ta cấp phát bucket (bucket z) đặt i j và iz đến giá trị kết việc thêm vào giá trị ij gốc Kế đến, ta điều chỉnh đầu vào bảng địa bucket trước trỏ tới bucket j Ta để lại nửa đầu đầu vào, đặt tất đầu vào lại trỏ tới bucket tạo (z) Tiếp theo, mẩu tin trong bucket j băm lại cấp phát cho vào bucket j bucket z 52 1.4 Phép băm  1.4.2 Băm động (Dynamic Hashing)  Để xoá mẩu tin với giá trị khoá K, trước tiên ta thực thủ tục định vị, ta tìm bucket tương ứng, gọi j, ta xố khố tìm kiếm bucket lẫn mẩu tin mẩu tin file bucket bị xố, trở nên rỗng Chú ý rằng, điểm này, số bucket kết hợp lại kích cỡ bảng địa bucket giảm nửa 53 1.4 Phép băm  1.4.3 So sánh  Ưu nhược điểm băm mở rộng  Ưu điểm: hiệu khơng bị suy giảm file tăng kích cỡ + tổng phí khơng gian tối tiểu (mặc dù phải thêm vào không gian cho bảng địa bucket)  Nhược điểm: tìm kiếm phải bao hàm mức gián tiếp → phải truy xuất bảng địa bucket trước truy xuất đến bucket  Chọn mục hay băm? xét yếu tố sau:  Cái giá phải trả cho việc tổ chức lại theo định kỳ mục băm có chấp nhận hay khơng?  Tần số tương đối hoạt động xen xố ?  Có nên tối ưu hố thời gian truy xuất trung bình thời gian truy xuất trường hợp xấu tăng lên hay không ?  Các kiểu vấn tin mà người sử dụng thích đặt ? 54 ... trường hợp tính tổng chữ số ID đem chia lấy dư cho 44 d Phép băm  1 .4. 1 Băm tĩnh (Static Hashing)  1 .4. 1 .4 Các mục băm 45 d Phép băm  1 .4. 2 Băm động (Dynamic Hashing)  Trong kỹ thuật băm... tất bucket tràn tương ứng, có giá trị khố khớp với giá trị tìm khơng 43 d Phép băm  1 .4. 1 Băm tĩnh (Static Hashing)  1 .4. 1 .4 Các mục băm  Một mục băm tổ chức khoá tìm kiếm trỏ kết hợp vào cấu... TenCN[20]; char MaTK[15]; float So_du; };  Ví dụ:  Kích thước ghi 43 byte → dùng 43 byte cho ghi thứ nhất, 43 byte cho ghi thứ hai,… 34 a Các khái niệm sở  Tổ chức tệp tin  1.1.2.1 Bản ghi với độ

Ngày đăng: 01/12/2021, 21:05

Hình ảnh liên quan

 Bảng Khách - chuong 4

ng.

Khách Xem tại trang 13 của tài liệu.

Mục lục

    1. Thiết kế cơ sở dữ liệu vật lý

    1. Thiết kế cơ sở dữ liệu vật lý

    1. Thiết kế cơ sở dữ liệu vật lý

    a1. Vài đặc tả tiêu biểu một trường

    a2. Một số đặc trưng thiết kế trường

    b. Thiết kế bản ghi vật lý

    b1. Ví dụ phi chuẩn

    c. Thiết kế tệp vật lý

    c. Thiết kế tệp vật lý

    c1. Ví dụ thiết kế tệp vật lý

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan