1. Trang chủ
  2. » Giáo án - Bài giảng

Thiết kế bảng

37 189 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 đề Thiết kế bảng
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Kỹ thuật phần mềm và Cơ sở dữ liệu
Thể loại Báo cáo
Thành phố Hà Nội
Định dạng
Số trang 37
Dung lượng 717,5 KB

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

Nội dung

 Rule cung cấp 1 cơ chế để thực thi bảo toàn domain domain integrity các cột hay kiểu dữ liệu người dùng user-defined datatypes 1 cột của bảng, nên dùng ràng buộc... Hạn chế khi dùng

Trang 1

Thiết kế bảng

Trang 3

Rule cung cấp 1 cơ chế để thực thi bảo

toàn domain (domain integrity) các cột

hay kiểu dữ liệu người dùng (user-defined datatypes)

1 cột của bảng, nên dùng ràng buộc

Trang 4

Rules Cú pháp lệnh CREATE RULE

CREATE RULE [owner.]rulename AS

Trang 5

Để xem thông tin của 1 rule:

sp_help <rule name>

Để xem nội dung của 1 rule:

sp_helptext <rule name>

Để huỷ 1 rule

DROP RULE { rule } [ , n ]

Trang 6

Gắn rule vào 1 cột hay kiểu dữ liệu

người dùng

sp_bindrule [ @rulename = ] 'rule' ,

    [ @objname = ] 'object_name'

  [ , [ @futureonly = ] 'futureonly_flag' ]

@Object_name: là cột của bảng hay kiểu

dữ liệu người dùng mà rule được gắn

vào Nếu object_name không ở dạng

table.column, thì nó được xem là kiểu dữ liệu của người dùng Mặc định các cột

hiện tại của kiểu dữ liệu người dùng

Trang 8

Hạn chế khi dùng Rules

Mỗi lần chỉ có 1 rule được gắn kết vào 1 cột hay 1 kiểu dữ liệu của người dùng.

Nếu 1 rule được gắn kết vào 1 kiểu dữ

liệu người dùng, nó không thay thế được rule đã được gắn kết trước đó vào các cột của kiểu dữ liệu người dùng.

Nếu 1 rule mới được gắn kết vào 1 cột

hay kiểu dữ liệu của người dùng đang gắn kết vào 1 rule khác, thì rule mới này

sẽ thay thế rule cũ.

Các rule không áp dụng được cho dữ liệu

đã có sẵn trong bảng Các dữ liệu có sẵn không phải tuân the điều kiện được xác định bởi rule.

Trang 9

Xóa gắn kết rule khỏi 1 cột hay kiểu dữ liệu người dùng

Trang 10

Các ví dụ

CREATE RULE typBook AS @list IN ('business',

'mod_cook', 'popular_comp', 'psychology')

sp_bindrule 'typBook', 'Titles.Type'

 Gắn kết rule typBook vào cột Type của bảng

Titles.

sp_unbindrule 'Titles.Type'

Xóa các rule đã gắn kết vào cột Type vào bảng Titles.

Sp_addType BookType, ‘char(20)’,’NOT NULL’

Sp_bindrule ‘typBook’, BookType

Gắn kết rule typBook vào kiểu dữ liệu người dùng

sp_unbindrule ‘BookType'

Xoá gắn kết rule đã gắn kết vào kiểu dữ liệu của người dùng

Trang 11

Defaults - Tạo giá trị mặc

Ví dụ:

CREATE DEFAULT phonedflt AS

'unknown'

Trang 12

Xoá mặc định

DROP DEFAULT { default } [ , n ]

Lệnh drop có thể xóa cùng lúc nhiều default

Ví dụ:

DROP DEFAULT phonedflt

Trang 13

Sử dụng defaults

Sau khi được tạo DEFAULT, nó cần được gắn kết vào 1 cột hay kiểu dữ liệu người dùng.

sp_bindefault default_name, object_name

[, FUTUREONLY]

Xóa gắn kết default làm cho nó không

còn áp dụng được vào cột của bảng hay kiểu dữ liệu người dùng.

sp_unbindefault object_name

[, FUTUREONLY]

Trang 15

Ví dụ default và kiểu dữ liệu người dùng

sp_addType typCity, ‘char(15)’

CREATE DEFAULT defCity AS 'Oakland '

sp_bindefault defCity, 'typCity'

sp_binddefault ‘defCity’,

‘customer.cCity’

Trang 18

Cơ bản về truy xuất dữ liệu

Access fundamentals

Khi người dùng truy xuất dữ liệu, SQL

server sẽ xác định xem có tồn tại sẵn 1 chỉ mục nào không?

Query optimizer sẽ so sánh các chỉ mục hiện có với yêu cầu của lệnh truy vấn để tìm cách thực thi tối ưu như sau:

 Nếu không có chỉ mục, SQL server sẽ duyệt toàn

bộ bảng

 Nếu có chỉ mục thích hợp, nó sẽ dùng để định vị

dữ liệu cần tìm.

Trang 19

Cơ bản về truy xuất dữ liệu Access fundamentals

Trong lúc quét duyệt bảng:

 SQL Server sẽ bắt đầu ở vị trí vật lý đầu tiên của bảng

 SQL Server sẽ tiếp tục quét cho đến cuối bảng

theo từng dòng để tìm dữ liệu thích hợp

 Các hàng thoả mãn tiêu chuẩn dò tìm sẽ được

trích ra và là kết quả trả về của lệnh truy vấn

Trang 20

Cơ bản về chỉ mục

Chỉ mục được tạo ra dựa theo các giá trị được xếp thứ tự từ 1 hay nhiều cột được chọn.

Chỉ mục được tạo tự động bất cứ lúc nào ta xác định khoá chính hay ràng buộc unique.

Mỗi bảng chỉ có thể có duy nhất 1 chỉ mục clustered nhưng không bắt buộc

là phải có chỉ mục này.

Một bảng có thể có tới 249 chỉ mục nonclustered

Trang 22

Các bảng nhỏ nói chung không có lợi nhiều trong việc tạo chỉ mục

Trang 23

Hướng dẫn tạo chỉ mục

Các cột cần tạo chỉ mục sẽ phụ thuộc vào dữ liệu và cách dữ liệu được truy xuât.

Nên cân nhắc khi chọn cột làm chỉ mục

Nên tạo chỉ mục cho các cột sau:

Trang 24

Khái quát về chỉ mục

Ch í mục là 1 danh sách các giá trị trong 1 bảng kèm theo v ị trí hàng chứa giá trị tương ứng trong bảng đó

Chỉ mục có thể được tạo từ 1 hay 1 tổ hợp các cột của bảng và được thực thi trong dạng B-tree (cây nhị phân).

B-tree được xếp dựa theo giá trị dò tìm

(search key) và có thể dò tìm hiệu quả dựa vào tổ hợp các ký tự đầu của search key

Ví dụ: chỉ mục trên các cột A,B,C có thể

được dò tìm hiệu quả dựa theo giá trị trên cột A, trên cột A,B hay A,B,C

Trang 25

Bảng Employee và chỉ mục trên

cột emp_id

Trang 26

Tạo chỉ mục

Cú pháp:

CREATE [ UNIQUE ] [ CLUSTERED |

NONCLUSTERED ] INDEX index_name

ON { table | view } ( column [ ASC | DESC ] [ , n ] )

[ WITH < index_option > [ , n] ]

Khi chỉ mục được tạo, 1 hàng sẽ được thêm vào bảng sysindexes Để nhận thông tin về các chỉ mục của 1 bảng:

sp_helpindex table_name

Trang 27

Các tuỳ chọn của lệnh index

< index_option > :: =

    { PAD_INDEX |         FILLFACTOR = fillfactor |         IGNORE_DUP_KEY |

        DROP_EXISTING |     STATISTICS_NORECOMPUTE |     SORT_IN_TEMPDB 

}

Trang 28

Fill Factor

Với chỉ mục clustered, dữ liệu được sắp

xếp và lưu trữ trong các trang dữ liệu

(data page).

Với chỉ mục nonclustered, các giá trị

khoá sẽ được lưu riêng trong các trang chỉ mục ( index page)

Khí 1 hàng mới được thêm vào 1 trang chỉ mục đã đầy thì SQL Server sẽ chuyển gần

1 nữa số hàng của trang đó vào 1 trang mới để có chỗ cho hàng mới Việc sắp xếp này được gọi là phân trang ( page split)

Việc phân trang có thể ảnh hưởng đến

việc thực thi và phân mảnh việc lưu trữ

dữ liệu trong bảng

Trang 29

Giá trị của fill factor được tính theo %

từ 0->100 dùng để xác định bao nhiêu

dữ liệu được đưa vào 1 trang sau khi chỉ mục đã được tạo.

Trang 30

Xác định không gian trống đượcchừa lại trên mỗi trang (node) ở mức giữa của cây chỉ mục

Tuỳ chọn này chỉ được sử dụng khi

FILLFACTOR xác định, vì PAD_INDEX sử dụng cùng tỷ lệ phần trăm được xác

định bởi FILLFACTOR

Trang 32

Managing indexes

Trang 33

Managing indexes

Trang 34

Công cụ Index Tuning Wizard

Công cụ Index Tuning Wizard trong SQL

Server được dùng để chọn lọc và tạo 1 tập hợp các chỉ mụcvà thông tin tốt nhất trong

Một tập hợp các lệnh truy vấn hay đuợc thực thi lặp đi lặp lại được xem như là workload.

 Công cụ sẽ giúp phân tích hiệu quả thực thi truy vấn trong workload Nếu các lệnh truy vấn trong workload tương đối ít, công cụ sẽ đề nghị cách tối ưu nó, bằng cách đề nghị các chỉ mục nên dùng.

Trang 35

Ví dụ minh họa cho việc sử dụng công cụ INDEX TUNING WIZARD

Tạo 1 loạt các chỉ mục cho bảng Department trong CSDL Recruiment như sau:

CREATE NONCLUSTERED INDEX idxdepcode

Trang 36

Ví dụ minh họa cho việc sử dụng công cụ INDEX TUNING WIZARD

SELECT Requisition.cRequisitionCode,

Position.vDescription,vDepartmentName FROM Position JOIN Requisition

ON Requisition.cPositionCode=

Position.cPositionCode JOIN Department

ON Requisition.cDepartmentCode=

Department.cDepartmentCode

Lệnh này có được xem là workload??

Trang 37

Ví dụ minh họa cho việc sử dụng công cụ INDEX TUNING WIZARD

Dùng công cụ Index Tuning Wizard để phân tích tìm ra cách sử dụng tối ưu cho các index đã được tạo

Công cụ sẽ cung cấp cho người dùng các loại báo cao khác nhau dựa trên việc phân tích workload cần thực hiện.

Công cụ Index Tuning Wizard đã đề nghị như thế nào với các chỉ mục đã tạo??

Ngày đăng: 12/05/2014, 12:08

HÌNH ẢNH LIÊN QUAN

Bảng Employee và chỉ mục trên - Thiết kế bảng
ng Employee và chỉ mục trên (Trang 25)

TỪ KHÓA LIÊN QUAN

w