1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI GIẢNG Thiết kế vật lý database

116 401 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 116
Dung lượng 1,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

Nội dung Quá trình thiết kế database vật lý  Chọn định dạng lưu trữ cho các thuộc tính từ mô hình dữ liệu luận lý  Mô tả ba kiểu tổ chức tập tin  Chỉ mục: mục đích và các loại chỉ mụ

Trang 1

Chương 6:

Thiết kế vật lý database

Trang 2

Nội dung

 Quá trình thiết kế database vật lý

 Chọn định dạng lưu trữ cho các thuộc tính

từ mô hình dữ liệu luận lý

 Mô tả ba kiểu tổ chức tập tin

 Chỉ mục: mục đích và các loại chỉ mục

 Chuyển đổi mô hình dữ liệu quan hệ thành cấu trúc database hiệu quả

Trang 3

6.1 Thiết kế database

 Yêu cầu:

Thận trọng trong thiết kế vì những quyết

định được làm trong giai đoạn này sẽ ảnh hưởng đến khả năng truy xuất dữ liệu,

thời gian đáp ứng, tính bảo mật, tính thân thiện với người dùng, …

 Phạm vi thiết kế:

Chỉ thiết kế database tập trung

(centralized DB), không phân tán

Trang 4

Mục tiêu thiết kế database

 Tập trung vào tính hiệu quả xử lý dữ liệu (data processing efficiency)

 Chi phí máy tính ngày nay giảm đáng kể, việc thiết kế chỉ cần tập trung vào việc

giảm nhỏ thời gian xử lý làm thế nào xử

lý database và các file vật lý hiệu quả,

không quan tâm nhiều đến không gian lưu trữ

Trang 5

Chuẩn bị trước khi thiết kế

thống sẽ thiết kế:

Các quan hệ đã chuẩn hoá, kể cả việc ước

lượng khối lượng thông tin

Các định nghĩa về các thuộc tính

Các mô tả về nơi nào và khi nào dữ liệu

được dùng: thêm, truy xuất, xóa, cập nhật

Các mong muốn và yêu cầu về thời gian

đáp ứng, độ bảo mật dữ liệu, sao lưu phục hồi dữ liệu, tính toàn vẹn dữ liệu

Mô tả về công nghệ, DBMS sẽ dùng để

thực thi DB

Trang 6

Quá trình thiết kế database

1 Chọn kiểu dữ liệu cho mỗi thuộc tính có

mặt trong mô hình dữ liệu luận lý: kiểu

dữ liệu ít tốn bộ nhớ mà vẫn bảo đảm

tính toàn vẹn dữ liệu

2 Nhóm các thuộc tính từ mô hình dữ liệu

luận lý vào các bản ghi vật lý (physical record)

3 Sắp xếp các bản ghi có cấu trúc tương tự

vào bộ nhớ phụ (đĩa cứng) sao cho việc truy xuất các bản ghi này nhanh chóng.

• Cần quan tâm đến việc bảo vệ và khôi phục dữ liệu

khi có lỗi

4 Chọn cấu trúc lưu trữ và kết nối các file

Trang 7

Khối lượng dữ liệu & tần suất sử dụng

(Data volume and usage frequency)

 Đánh giá khối lượng dữ liệu và tần số sử dụng dữ liệu là bước cuối của quá trình thiết kế CSDL luận lý hay là bước đầu tiên của quá trình thiết kế vật lý CSDL

 Để thống kê, thêm các ghi chú (natation) vào sơ đồ ERR biểu diễn các quan hệ đã chuẩn hóa cuối cùng

Trang 8

PART 1000

SUPPLIER 50

MANUFACTURED

PART

400

PURCHASED PART 700

Trang 9

Khối lượng dữ liệu & tần suất sử dụng

(Data volume and usage frequency)

 Việc thống kê khối lượng và tần suất được thực hiện trong giai đoạn phân tích hệ

thống bởi phân tích viên hệ thống ( system analyst)

 Việc thống kê không đòi hỏi chính xác

tuyệt đối mà chỉ dùng làm cơ sở cho bước thiết kế tiếp theo

Trang 10

6.2 Thiết kế các vùng tin

(Field design)

 Field là đơn vị nhỏ nhất của dữ liệu mà phần mềm hệ thống hay DBMS có thể nhận biết được

 Field tương ứng với 1 thuộc tính (attribute) trong mô hình dữ liệu luận lý

 Quyết định cần làm khi thiết kế là phải chọn kiểu dữ liệu cho field, kiểm soát tính toàn vẹn dữ liệu và DBMS sẽ quản lý các

Trang 11

8.2.1 Chọn kiểu dữ liệu

1. Tối thiểu hoá không gian lưu trữ

2. Diễn tả được tất cả các giá trị có thể có

của dữ liệu

3. Cải thiện được tính toàn vẹn dữ liệu

4. Hỗ trợ được tất cả phép thay đổi dữ liệu

Trang 12

8.2.2 Kỹ thuật mã hoá và nén dữ liệu

 Một số thuộc tính có tập giá trị thưa hay có trị quá lớn chiếm nhiều không gian lưu trữ

 Một trường có số ít giá trị nên mã hoá để chiếm ít không gian hơn

Trang 13

giá trị là Birch, Maple và Oak

Mã hoá bằng cách tạo 1 bảng tra cứu FINISH,

sao cho mỗi giá trị của trường Finish được thay thế bằng 1 mã

giảm không gian lưu trữ cho trường Finish

Thêm không gian phụ cho bảng FINISH

Không có lợi khi Finish ít dùng hay số sản phẩm quá lớn

Bảng mã FINISH không xuất hiện trong mô hình nhận thức, là 1 thiết kế vật lý để cải thiện việc

xử lý dữ liệu

Trang 14

Kỹ thuật mã hoá và nén dữ liệu

C A C B

Code ValueA

BC

BirchMapleOak

Bảng Product

Bảng tra cứu FINISH

Trang 15

Kỹ thuật mã hoá và nén dữ liệu

Kỹ thuật nén tin ( data compression

technique) tìm các mẫu (pattern) và mã hoá các mẫu xuất hiện thường xuyên với số bit ít hơn

Kỹ thuật mã hoá ( encryption technique):

dùng để chuyển 1 trường sang dạng bảo mật

Kỹ thuật nén tin hay mã hoá được dùng với

1 số DBMSs Để người dùng đọc được giá trị

thực sự của các trường, phần mềm cần phải

biết quá trình dịch ngược lại

Trang 16

6.2.3 Kiểm soát tính toàn vẹn dữ liệu

 Việc kiểm tra tính toàn vẹn dữ liệu được

xây dựng thành cấu trúc vật lý của các

trường và được DBMS quản lý tự động

Kiểu dữ liệu là 1 dạng của tính toàn vẹn

Trang 17

Giá trị mặc định (Default value)

 Là giá trị mà 1 trường luôn thừa nhận

ngoại trừ người dùng đưa vào 1 giá trị

tường minh khác để thay thế

Giảm thời gian nhập liệu

Giảm những sai sót khi nhập liệu

Trang 18

Kiểm soát miền giá trị

(Range control)

 Giới hạn 1 tập các giá trị cho phép mà 1

trường có thể nhận được

 Miền giá trị có thể là 1 cận dưới và cận

trên dạng số hay là 1 tập các giá trị cụ thể

Sự cố năm 2000

 Nên để DBMS thực hiện việc kiểm soát

miền giá trị thay cho chương trình

Trang 19

VD: Một trường đại học có thể cấm không

chấp nhận bất kỳ course nào thiếu tiêu đề

Trang 20

Bảo toàn tham chiếu (Referential integrity)

 Là 1 dạng của kiểm tra miền trong đó giá trị của 1 trường có thể tồn tại như giá trị

trường của 1 hàng nào đó trong cùng bảng hay của 1 bảng khác

Trang 21

Không cho phép giá trị bị thiếu khi nhập liệu

Thay trị bị thiếu bằng 1 giá trị phỏng đoán

Trang 22

6.2.4 Xử lý dữ liệu bị thiếu

(missing data)

Theo dõi những giá trị bị thiếu, tổng kết thành

báo cáo để buộc người dùng có liên quan đến phải nhanh chóng giải quyết các giá trị chưa biết.

Dùng phương pháp thử để xác định trị bị thiếu

Trang 23

6.3 Thiết kế các bản ghi vật lý

 Bản ghi vật lý ( physical record): là 1 nhóm các trường được lưu trữ trong những vị trí bộ nhớ cạnh nhau và được truy xuất như 1 đơn vị

 Bản ghi luận lý (logical record) nhóm các thuộc tính vào cùng một quan hệ căn cứ vào việc các thuộc tính ấy phụ thuộc hàm vào cùng 1 khóa chính

Trang 24

6.3 Thiết kế các bản ghi vật lý

 Thiết kế bản ghi vật lý liên quan đến việc chọn sắp xếp các trường vào vị trí kề cận nhau sao cho đảm bảo 2 mục tiêu:

Sử dụng hiệu quả không gian lưu trữ

Tốc độ truy xuất dữ liệu

Trang 25

Sử dụng hiệu quả bộ nhớ phụ

 Hai yếu tố ảnh hưởng:

Kích thước của bản ghi vật lý

Trang 27

6.3.1 Trường có chiều dài cố định

 Nếu các trường có chiều dài cố định, các trường

sẽ đặt liền kề nhau, việc quản lý bộ nhớ sẽ dễ dàng hơn

 Để tìm vị trí của trường thứ m trong bản ghi thứ

n của tập tin CSDL

Địa chỉ bắt đầu của file+ (n-1) chiều dài bản ghi+ sum(lengthi)

i=1 đến m-1

= Địa chỉ bắt đầu của trường thứ mLengthi : chiều dài của trường thứ i

Trang 28

6.3.2Trường có chiều dài thay đổi

 Vị trí của 1 trường thuộc 1 bản ghi nào đó

thường không theo quy luật

 Cách chung để quản lý các trường độ dài thay đổi là chia quan hệ thành 1 bản ghi vật lý chứa toàn bộ các trường có chiều dài cố định và 1

hay nhiều bản ghi vật lý chứa các trường có

chiều dài thay đổi

Trang 30

6.4.1 Các phương pháp truy xuất

(access method)

 Phương pháp truy xuất tương đối (relative access): truy xuất dựa vào khoảng cách (offset) giữa dữ liệu đó và dữ liệu vừa truy xuất trong

bộ nhớ ngoài

 Phương pháp truy xuất tuần tự là trường hợp đặc biệt của phương pháp truy xuất tương đối

Trang 31

6.4.1 Các phương pháp truy xuất

(access method)

 Phương pháp truy xuất trực tiếp(direct access): dùng một cách tính để tính ra địa chỉ của bản ghi cần truy xuất

31

Trang 32

6.4.2 Các kiểu tổ chức tệp tin

 Một kiểu tổ chức tệp tin (file organization) là một kỹ thuật sắp xếp về mặt vật lý các bản ghi của một tệp tin trên bộ nhớ ngoài

 Đối với các HQTCSDL hiện đại ta không phải thiết kế tổ chức tệp tin, mà chỉ lựa một kiểu tổ chức và những thông số của cách tổ chức này đối với một tệp tin vật lý

Trang 33

6.4.2 Các kiểu tổ chức tệp tin

 Các yếu tố liên quan đến việc lựa chọn:

1. Truy xuất dữ liệu nhanh

2. Xử lý việc nhập dữ liệu và các giao tác với hiệu năng cao

3. Sử dựng chỗ bộ nhớ hữu hiệu

4. Bảo vệ để không bị hỏng hóc hay mất dữ liệu

5. Tối thiểu hóa việc tái tổ chức tệp tin

33

Trang 34

6.4.2 Các kiểu tổ chức tệp tin

 Các yếu tố liên quan đến việc lựa chọn:

6 Thích ứng với yêu cầu phát triển mở rộng

7 Tránh khỏi những sự truy xuất dữ liệu không có thẩm quyền

Trang 35

a. Tổ chức tệp tin tuần tự

(sequential file organization)

 Các bản ghi được lưu trữ một cách tuần tự

theo giá trị khóa chính

 Tìm kiếm: duyệt từ điểm khở đầu cho đến khi

tìm thấy

35

Trang 36

b Tổ chức tệp tin với chỉ mục (indexed file

organization)

 Các bản ghi được lưu trữ một cách tuần tự hay không tuần tự và một chỉ mục (Index) được tạo

ra cho phép PM ứng dụng có thể định trị được các bản ghi riêng lẻ

 Chỉ mục là một bảng được dùng để định trị các hàng trong một tệp tin mà thỏa một đk nào đó

 Mỗi phần tử trong chỉ mục sẽ liên kết một khóa với một hay nhiều bản ghi

Trang 37

Chỉ mục - Indixes

 Mục đích: cải thiện việc truy tìm dữ liệu

 Ý tưởng: tương tự như index của sách

 Cho phép tìm nhanh 1 hàng mà không

phải duyệt tuần tự từng hàng của bảng dữ liệu  giảm thời gian thực thi truy vấn

Trang 38

Các index entry được xếp theo search key

như ISAM hay B+ tree

Hash index

Trang 39

Chỉ mục - Index

 Cơ chế xếp theo search key: có 2 dạng

Các index entries được tích hợp

(intergrated) vào cùng file dữ liệu

Index entries được lưu trữ vào 1 file khác

Trang 41

Bất lợi của index

 Chiếm không gian đĩa

 Nếu index lớn thì các trang index cần được đọc vào bộ nhớ  gây ra chi phí cho thao tác vào ra

 Index cần được bảo trì (maintenance) các chỉ mục phải được sửa đổi cùng với sự

thay đổi của dữ liệu

Trang 43

Phân loại chỉ mục

 Chỉ mục clustered còn được gọi là chỉ mục

sơ cấp ( primary index) hay main index

 Unclustered index thường được gọi là

secondary index

 Thường thì với mỗi bảng chỉ có 1 clustered index và có thể có nhiều unclustered index

Trang 44

Phân loại chỉ mục

 Trong chỉ mục clustered, thứ tự vật lý của các index entry tương ứng với thứ tự vật lý của các bản ghi dữ liệu

 Ví dụ: quan hệ PROFESSOR có thể được

xếp thứ tự theo thuộc tính Department

(không phải là khóa chính), khi đó index

trên thuộc tính này sẽ là index clustered trong khi đó index trên khóa chính ID sẽ là

Trang 45

Data File

Index File

Mechanism for Locating

Index Entries

Index Entries

Clustered index

Trang 46

Index File

Mechanism for Locating

Index Entries

Index Entries

Trang 47

Chỉ mục thưa và dày Sparse versus dense index

Trang 48

009406321 Jacob Taylor MGT

101202303 John Smyth CS

121232343 David Jones EE

131141151 Anita Cohen CS

234567891 Mary Brown ECO

333444555 Ying Chen CHE

444555666 Sanjay Sen ENG

555666777 Mary Doe CS

666777888 Mary Brown PHY

900012045 Ann White MAT

009406321

234567891

666777888

Mary Brown Mary Brown Ying Chen Anita Cohen Mary Doe David Jones Sanjay Sen John Smyth Jacob Taylor

Chỉ mục thưa

Search key:ID

Trang 49

Chỉ mục thưa

 File dữ liệu được xếp theo cùng khóa với

index, khi đó thứ tự của file dữ liệu cho

phép ta tìm được các bản ghi không có

tham chiếu tương ứng trong chỉ mục

 Chỉ mục thưa phải là clustered

 Search key nên là candidate key của file

dữ liệu, nếu không thì sẽ có nhiều bản ghi

có cùng search key và nếu các bản ghi này nằm trên các trang khác nhau, thì các bản ghi trong trang đầu thường bị bỏ sót

Trang 50

là candidate key

Trang 51

Chỉ mục dày

 Các chỉ mục unclustered thường là chỉ mục dày

 Ứng với mỗi bản ghi đều có 1 index entry, nên search key không cần là candidate key

 Có thể nhiều index entry có cùng giá trị

search key

Trang 52

6.5 Sử dụng và cách chọn chỉ mục

- Tạo một chỉ mục khóa chính

- Tạo một chỉ mục thứ cấp

- Khi nào nên dùng chỉ mục:

+ CSDL cần nhiều thao tác truy xuất thì nên tạo nhiều chỉ mục

+ CSDL cần nhiều thao tác cập nhật thì hạn chế chỉ mục

Trang 55

Chỉ mục hai mức (Two-level index)

 Nên dùng chỉ mục nhiều mức (multilevel index)

Trang 56

 Fan-out: để chỉ số separator trong 1 trang Fan-out xác định được số mức trong 1 cây:

nó càng nhỏ thì số mức của cây càng lớn

Trang 58

ISAM (Index-sequential access method)

 ISAM index là chỉ mục nhiều mức và là loại clustered index

 Các bản ghi dữ liệu được chứa trong các lá

 ISAM là cấu trúc lưu trữ cho file dữ liệu

Trang 60

Đặc tính của ISAM

phối 1 cách tuần tự không gian đĩa cho các trang chỉ mục lá trước Sau đó mới xây

dựng các mức separator từ đáy lên Gốc sẽ nằm ở đỉnh cao nhất

Trang 61

Đặc tính của ISAM

 Các mức separator thường không thay đổi sau khi chúng đã được tạo

 Các trang mức lá có thể thay đổi nhưng

các trang này sẽ không mở rộng thêm hay

bị thu hồi lại, do đó vị trí của các trang lá trong file cũng cố định

 Phát sinh nhiều vấn đề khi xóa hay thêm hàng vào bảng

Trang 62

Một trang ở cấp separator của ISAM

 Mỗi cấp separator đều là chỉ mục thưa

dùng để chỉ đến cấp chỉ mục kế tiếp

 Mỗi separator entry đều chứa 1 giá trị dò tìm ( search key) ki và con trỏ pi trỏ đến trang kế tiếp trong file chỉ mục Trang kế tiếp này có thể là cấp separator kế tiếp

thấp hơn hay có thể là trang chứa các lá chỉ mục

 Các cấp separator trong cùng 1 trang sẽ

Trang 63

Chỉ mục ISAM

 Mỗi giá trị search key sẽ chia tập các giá trị search key thành 2 cây con được trỏ

đến bởi 2 con trỏ liền kề pi-1 và pi

 Nếu giá trị search key k được tìm thấy

trong cây con được trỏ tới bởi pi-k thì k <ki; nếu được tìm thấy trong cây con được trỏ tới bởi pi thì k ≥ ki

Trang 64

Đặc tính của ISAM

 Nội dung các nút lá có thể thay đổi

 Một số vấn đề khi xóa/ thêm 1 nút lá

 Ví dụ: Xét chỉ mục ISAM gồm 2 mức

separator và 1 mức lá Giá trị search key là tên sinh viên

Trang 65

judy jane

al

mike bob

sol phil

karen joe

Trang 66

Ví dụ

 Khi xóa bản ghi của Jane, thì trong mức

separator chỉ mục Jane trở nên xa lạ

nhưng chỉ mục ISAM vẫn làm việc được

 Khi thêm bản ghi mới có tên ivan,trang lá thích hợp bị đầy cần 1 trang overflow,

nó không thể là mức mới mà cũng không thể trang mức lá mới được

Trang 67

joe abe

Trang 68

Đặc tính của ISAM

 Nếu bảng mà việc thêm mới thường hay xảy ra thì chuỗi các trang overflow có thể rất dài và việc dò tìm sẽ kém hiệu quả

 Các entry trên chuỗi các trang overflow

không thể xếp thứ tự được và các trang

overflow không thể được xếp gần các

trang khác

 Cách khắc phục: chỉ mục có thể được xây dựng lại một cách định kỳ để loại trừ các trang overflow, nhưng chi phí này quá đắt

Trang 69

 Key search có thể chứa nhiều thuộc tính.

Hỗ trợ việc dò tìm chi tiết hơn (finer

granularity) Ví dụ: chỉ mục NAMEDEPT

xếp thứ tự theo Name và DeptId Chỉ mục cho phép khôi phục nhanh thông tin về

người có tên là Name ( có thể có nhiều

người trùng tên) của 1 phòng cụ thể nào đó

Hỗ trợ dò tìm miền (range search)

Trang 70

009406321 Jacob Taylor MGT

101202303 John Smyth CS

121232343 David Jones EE

131141151 Anita Cohen CS

234567891 Mary Brown ECO

333444555 Ying Chen CHE

444555666 Sanjay Sen ENG

555666777 Mary Doe CS

666777888 Mary Brown PHY

900012045 Ann White MAT

Mary Brown, ECO

Mary Brown, PHY

Ying Chen, CHE

Trang 71

Range search

 Ví dụ:

Từ việc tìm ra tất cả những ai có tên Mary

Brown của phòng ECO (bằng cách dò

bằng), ta có thể khôi phục tất cả những ai

có tên Mary Brown trong các phòng khác.

Tìm tất cả giáo sư có tên xếp theo

alphabet từ Mary Brown đến David Jones của mọi phòng ban

Trang 72

B+ Trees

trợ việc dò tìm khóa các dạng miền,một

phần khóa hay cả khóa.

như 1 index mà còn như 1 cấu trúc lưu trữ

(main index)

Trang 74

Cấu trúc của B+ tree

 Con trỏ liền kề (sibling pointer) liên kết các trang của mức lá thành một danh sách liên kết chứa các giá trị search key của các bản ghi trong bảng theo thứ tự được sắp

 Trái với ISAM, B+ tree tự thay đổi động Khi các bản ghi được thêm hay xóa, các trang

lá và chỉ mục sẽ sửa đổi, thêm hay xóa và

vì vậy các trang lá không tuần tự trong

file

Ngày đăng: 25/08/2017, 09:45

TỪ KHÓA LIÊN QUAN