+ Các tình huống xuất hiện Checkpoint: thực hiện lệnh checkpoint, cậpnhật khối dữ liệu lớn, … - Tìm hiểu ý nghĩa và cách đặt tham số recovery interval: + Tham số recovery interval tác độ
Trang 1BỘ MÔN DUYỆT
Chủ nhiệm Bộ môn
Phan Nguyên Hải
ĐỀ CƯƠNG CHI TIẾT BÀI
GIẢNG
(Dùng cho 45 tiết giảng)
Học phần: Công nghệ Client/Server
và SQLNhóm môn học: Dữ liệu/ Phần mềm mạng
Bộ môn: Công nghệ phần mềmKhoa (Viện): Công nghệ Thông tin
Thay mặt nhóm môn
học
Phan Việt Anh
Thông tin nhóm môn học
TT Họ tên giáo
viên
Học hàm Học vị Đơn vị công tác (Bộ môn)
1 Hồ Nhật Quang GV Ths Công nghệ phần mềm
2 Phan Việt Anh GV Ths Công nghệ phần mềm
Địa điểm làm việc: Bộ môn Công nghệ phần mềm, khoa Công nghệ Thôngtin
Điện thoại, email: 069 515 338, bmcnpmmta@yahoo.com
Bài giảng 1: Các khái niệm cơ bản
+ Giới thiệu hệ quản trị CSDL MS SQL Server 2005
- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu
- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết
- Địa điểm: Giảng đường do P2 phân công.
- Nội dung chính:
- Giới thiệu về hệ thống quản trị CSDL quan hệ (RDBMS)
- Các thành phần của một ứng dụng cơ sở dữ liệu: Thành phần xử lý ứngdụng (Application processing components), thành phần phần mềm cơ sở
dữ liệu (Database software componets), bản thân cơ sở dữ liệu (Thedatabase itself)
- Các mô hình xử lý cơ sở dữ liệu:
Trang 2+ Mô hình cơ sở dữ liệu tập trung (Centralized database model)
+ Mô hình cơ sở dữ liệu theo kiểu file-server (File - server databasemodel)
+ Mô hình cơ sở dữ liệu Client/Server (Client/Server database model)+ Mô hình cơ sở dữ liệu phân tán (Distributed database model)
- Các bước cài đặt SQL Server 2005
- Các bước cài đặt SQL Server
- SQL Server Analysis Services
- SQL Server Integration Services
- SQL Server Reporting Services
- SQL Server Notification Services
- SQL Server Service Broker (Workload distribution)
- Full Text Search
- SQL Server Tools and Utilities
- MS SQL Server Management (Object Explorer,Database Engine Query,SQL Profiler, Query Analyzer, Analysis Services)
- SQL Server Books Online
- Tempdb: Chứa tất cả những table hay stored procedure được tạm thờitạo ra trong quá trình làm việc bởi user hay do bản thân SQL Server
Trang 3engine Các table hay stored procedure này sẽ biến mất khi khởi động lạiSQL Server hay khi ta disconnect
- Model: Database này đóng vai trò như một mẫu (template) cho cácdatabase khác Khi một database được tạo ra thì SQL Server sẽ copy toàn
bộ các system objects (tables, stored procedures ) từ Model databasesang database mới vừa tạo
Msdb: Được SQL Server Agent sử dụng để lưu các công việc cần làm,các sự kiện về sao lưu phục hồi dữ liệu
- Resource: (mới có) Là CSDL chỉ đọc, chứa các đối tượng hệ thống vềcác Service pack
- Distribution: (mới có) chỉ áp dụng đối với các SQL Server trong một hệthống phân tán
- Cấu trúc vật lý của một Database trên SQL Server 2005
- Tìm hiểu các file dữ liệu của SQL: Primary data file, Secondary datafile, Transaction log file
- Mô hình lưu trữ dữ liệu
+ Dữ liệu sẽ được lưu trữ trong data file và log file
+ Với một CSDL có tối thiểu 2 file (mdf, ldf)
+ Dữ liệu được lưu trong các khối 8KB (1MB -128 trang)
+ Một bản ghi không thể chiếm nhiều trang
+ Các bảng, các đối tượng dữ liệu khác được lưu trữ trong các vùng (8trang)
- Tìm hiểu cấu trúc của logfile
+ Transaction log file trong SQL Server dùng để ghi lại các thay đổixảy ra trong database
+ Khi có sự thay đổi dữ liệu SQL Server sẽ tải (load) data page tươngứng lên memory (data cache)
+ Mọi sự thay đổi được ghi vào logfile
+ Checkpoint sẽ kiểm tra lại tất cả các giao dịch thành công, ghi từlogfile vào datafile
- Hoạt động của transaction log, checkpoint
+ Các tình huống xuất hiện Checkpoint: thực hiện lệnh checkpoint, cậpnhật khối dữ liệu lớn, …
- Tìm hiểu ý nghĩa và cách đặt tham số recovery interval:
+ Tham số recovery interval tác động đến việc phát ra tự động cáccheckpoint của SQL Server
+ Giá trị từ 0 đến 32767 (đơn vị là phút)
Trang 4+ Nếu đặt là 0, là chế độ cấu hình tự động phát sinh Checkpoint.
- Cấu trúc logic của một Database trên SQL Server 2005
- Những điểm cần lưu ý khi thiết kế CSDL.
- Cách tạo CSDL sử dụng MS SQL Server Management
- Ý nghĩa và cách sử dụng các tham số: Initial size, Automatically growthfile, Performance hit, Disk fragmentation, Collation
- Ví dụ về sử dụng quy tắc sắp xếp (Collation)
- Các mô hình truy cập CSDL từ phía ứng dụng
- Các mô hình xác thực người sử dụng của SQL Server 2005
+ Xác thực Window NT Group hoặc User
+ Xác thực SQL Server
- Yêu cầu SV chuẩn bị:
+ Cài đặt SQL Server 2005
+ Tạo cơ sở dữ liệu sử dụng MS SQL Server Management
+ Đặt các tham số Initial size, Automatically growth file, Collation, …+ Đọc tài liệu [3] chương 1 từ trang 1 - 41
Bài giảng 2: Xử lý nâng cao và các phát biểu của Transact-SQL
- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu
- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết
- Địa điểm: Giảng đường do P2 phân công.
- Nội dung chính:
- Kịch bản (Transact-SQL Script)
+ Các lệnh định nghĩa dữ liệu (DLL), là những câu lệnh dùng để:
Tạo và định nghĩa cấu trúc Cú pháp tổng quát có dạng CREATEobject_name Ví dụ, tạo mới CSDL sample:
CREATE DATABASE sample
ON PRIMARY ( NAME=sample_data, FILENAME='c:\data\sample.mdf', SIZE=10MB,
MAXSIZE=15MB,
Trang 5ALTER DATABASE BANHANG
ADD FILE (FILENAME = 'c:\data\sample.ndf' , SIZE = 3MB,MAXSIZE = 100 , FILEGROWTH = 10)
Và xóa các đối tượng trong CSDL Cú pháp tổng quát có dạng DROPobject_name Ví dụ xóa CSDL Sample:
DROP DATABASE sample
Định nghĩa (Tạo, sửa, xóa) các đối tượng khác trong CSDL: Bảng(Table), kiểu dữ liệu (User Data Type)
+ Các lệnh thao tác CSDL (DML):
Lệnh SELECT:
Câu lệnh Select đơn giản
Câu lệnh select với mệnh đề where, các biểu thức logic, kiểu dữ liệuNULL
Select với IN và NOT IN
Select với LIKE và NOT LIKE
Select với EXISTS và NOT EXISTS
Select với BETWEEN và NOT BETWEEN
Select với nhiều điều kiện
Select lồng nhau
Select với UNION [ALL]
Select từ nhiều bảng sử dụng INNER JOIN, LEFT JOIN, RIGH JOIN,FULL JOIN
Các hàm thống kê COUNT, AVG, SUM, MAX …
Sử dụng mệnh đề GROUP BY, HAVING
Sắp xếp dữ liệu, mệnh đề ORDER BY expression ASC| DESC
Hạn chế kết quả truy vấn với TOP n| n PERCENT
Tạo thêm cột kết quả sử dụng biểu thức, hàm CASE
Các phép toán thông dụng: + , - , * ,/, %: cộng, trừ, nhân, chia, phéptoán module Các phép so sánh: = ,>, <, >=, <=, <>
Trang 6Các hàm thao tác với xâu chuỗi: Upper, Lower LEFT, RIGHT,CHARINDEX, LTRIM, RTRIM.
Thao tác với kiểu dữ liệu ngày tháng: CONVERT, CAST
Lệnh INSERT (thêm bản ghi vào bảng):
Lệnh DELETE (Xóa dữ liệu)
- Bó lệnh (Batch of Transact-SQL statement)
- Các phương pháp đảm bảo tính toàn vẹn dữ liệu
+ Điều kiện của các ràng buộc
Các câu lệnh thao tác dữ liệu trên bảng vi phạm ràng buộc sẽ không đượcthực hiện và SQL Server sẽ trả về lỗi
Ràng buộc có thể được thay đổi ở mức xây dựng hoặc sửa đổi CSDL.Nếu thêm ràng buộc cho bảng đã có dữ liệu, nhưng dữ liệu không thoảmãn ràng buộc thì ràng buộc đó sẽ: hoặc là không có hiệu lực hoặc là một
số dữ liệu trong bảng sẽ bị mất
+ Đảm bảo toàn vẹn dữ liệu bằng ràng buộc miền
+ Đảm bảo toàn vẹn dữ liệu bằng ràng buộc khóa
+ Đảm bảo toàn vẹn dữ liệu bằng kích họat trigger
- Tạo hàm phân hoạch, giản đồ phân hoạch, bảng phân hoạch (partitionedtable)
- Truy vấn nâng cao:
+ Select với từ khóa WITH
+ Truy vấn đệ quy sử dụng từ khóa WITH
a) Nội dung thảo luận:
+ Nhóm các lệnh định nghĩa dữ liệu (DLL)
+ Nhóm các lệnh thao tác dữ liệu: SELECT, INSERT, UPDATE,DELETE
+ Phương pháp bảo đảm tính toàn vẹn dữ liệu
+ Sử dụng các kiểu dữ liệu trong SQL Server
+ Ý nghĩa của việc sử dụng các thủ tục, hàm
+ Truy vấn nâng cao: truy vấn lồng, truy vấn đệ quy, truy vấn với hàmCASE
- Yêu cầu SV chuẩn bị:
Trang 7+ Đọc trước tài liệu [1] chương 3, từ trang 36 - 69
+ Sử dụng cơ sở dữ liệu bán hàng và AdventureWokd, thực hành các nội dung sau:
Tạo và nhập dữ liệu cho cơ sở dữ liệu bán hàng
Thực hiện các truy vấn cơ bản: SELECT, INSERT, UPDATE,DELETE
Bài giảng 3: Xử lý nâng cao và các phát biểu của Transact-SQL (tiếp)
Chương 2: Mục 2.6 + 2.7
Tiết thứ: 7 - 9 Tuần thứ: 3
- Mục đích, yêu cầu:
+ Cung cấp cho sinh viên các kiến thức về ngôn ngữ T – SQL
- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu
- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết
- Địa điểm: Giảng đường do P2 phân công.
- Nội dung chính:
- Ngôn ngữ lập trình T-SQL
+ Qui tắc đặt tên – Identifiers
Cách đặt tên table, view, stored procedure, index,tên biến,…
Có thể dài từ 1 đến 128 ký tự theo mã Unicode (gồm chữ cái, chữ số, kýhiệu)
Ký tự đầu tiên phải là: chữ cái hoặc @,#,_, or $
Có thể sử dụng khoảng trắng trong các định danh, tuy nhiên để truy cậpcác định danh này bạn phải đặt nó trong dấu nháy kép hoặc ngoặc vuông []
Ví dụ: 7007Customers; @Variable; #tblTMP; [Ho va Ten]
Định danh đầy đủ của một đối tượng CSDL: [[[server.][database].][schema].]database_object
+ Kiểu dữ liệu
Kiểu dữ liệu xâu ký tự: char, varchar, nchar, nvarchar
Kiểu dữ liệu ngày tháng: datetime, smalldatetime
Kiểu dữ liệu số nguyên: Int, Smallint,bigint,tinyint
Kiểu số thực gần đúng: Float – 8b,Real -4b
Kiểu số thực chính xác: Decimal[(s[,p])], numeric[(s[,p])]
Kiểu dữ liệu nhị phân: Binary, Text, Image, Ntext
Kiểu Bit, TimesTamp, Uniqueidentifier, XML
+ Biến (Variables)
Khai báo biến: declare @i int, @ngay datetime
Trang 8Gán giá trị cho biến: set @i = 10 select @ngay = getdate().+ Biểu thức (Expressions)
Trang 9- Yêu cầu SV chuẩn bị:
+ Đọc tài liệu [4], chương 4 từ trang 81 - 114
+ Ôn luyện, hệ thống lại các kiến thức chương 2
+ Sinh viên phải nắm được các lệnh thao tác dữ liệu cơ bản
+ Có khả năng thực hiện các truy vấn nâng cao, các cấu trúc lệnh của T - SQL
- Hình thức tổ chức dạy học: Thực hành, tự học, tự nghiên cứu
- Thời gian: Thực hành: 3 tiết; Tự học, tự nghiên cứu: 3 tiết
- Địa điểm: Giảng đường do P2 phân công.
- Nội dung chính:
Thực hành trên cơ sở dữ liệu bán hàng và AdventureWork
+ Thực hiện các truy vấn cơ bản: INSERT, UPDATE, DELETE
+ Thực hiện một số truy vấn nâng cao
+ Thực hiện truy vấn đệ quy sử dụng từ khóa with
- Yêu cầu SV chuẩn bị:
+ Ôn luyên các kiến thức về ngôn ngữ T-SQL
Trang 10+ Đọc và tìm hiểu trước các bài tập chương 2
Bài giảng 5: Quản trị SQL Server 2005
+ Nắm được phương pháp phân quyền cho nhóm và người dùng
- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu
- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết
- Địa điểm: Giảng đường do P2 phân công.
- Nội dung chính:
a) Nội dung chi tiết:
- Triển khai CSDL - Database Deployment
+ Triển khai CSDL bằng module viết trên .Net – dùng cho cácdevelopers
+ Triển khai CSDL bằng công cụ của SQL Server 2005 – dùng cho cácSQL Server specialists:
+ Detach and reattach cơ sở dữ liệu sử dụng T-SQL
+ Attach and detach cơ sở dữ liệu sử dụng Management Studio
- Vấn đề tiềm ẩn trong việc triển khai CSDL
+ Khi triển khai CSDL như trên sẽ không đảm bảo được liên kết giữaserver logins and database users Vì:
Server logins được lưu trữ trong CSDL Master, Database users đượclưu trữ trong từng CSDL
Các Database users sẽ được attach theo CSDL, nhưng các Databaseusers này lại liên kết đến server logins trên server cũ => Lỗi
Trang 11+ Khi cài đặt chúng ta đã chọn một kiểu xác thực cho SQL Server Tuynhiên có thể thay đổi kiểu xác thực.
- Giản đồ (Schema)
+ Tạo Schema
+ Chuyển đối tượng giữa các lược đồ
- Giới thiệu các nhóm server (server roles)
+ Các server roles hệ thống (Fixed Server Roles) Các role này khôngđược phép thay đổi
+ Tạo mới user database
+ Thêm user vào các nhóm bằng T-SQL
- Thêm người sử dụng vào nhóm
+ Nếu sử dụng password policy thì mật khẩu phải tối thiểu là 6 kí tự vàphải chứa cả ba lọai: chữ thường a-z, chữ hoa A-Z, chữ số 0-9
+ Thêm NSD mức HQT theo xác thực Windows
+ Thêm NSD mức HQT theo xác thực SQL Server
+ Thêm NSD mới bằng T-SQL
+ Tạo giấy ủy nhiệm (CREDENTIAL)
- Giới thiệu các nhóm CSDL (database roles) và thêm người sử dụng vàonhóm
+ Các Roles trên SQL Server giống như Groups trên Windows
+ Trên SQL Server có 4 nhóm:
Server Roles: đã được xây dựng sẵn người dùng không thể thay đổi.Database Roles: Định nghĩa các quyền trên CSDL của các nhóm.Database Roles do người dùng định nghĩa
Nhóm Application Roles
+ Thêm người sử dụng vào nhóm Server Roles
+ Thêm người sử dụng vào nhóm DB Roles
- Tạo nhóm CSDL (database role) và phân quyền cho nhóm
- Tạo nhóm app role và cách sử dụng
+ App Roles được dùng cho việc bảo mật các ứng dụng riêng lẻ Approles khác với DB roles ở các điểm sau:
App Roles yêu cầu password để kích họat
App Roles không có members Ứng dụng sẽ cung cấp tên của AppRole và Password
Server bỏ qua tất cả các quyền khác khi mà App Roles được kíchhọat
- Phân quyền cho nhóm và người sử dụng:
Trang 12+ Phân các quyền trên server
+ Phân các quyền trên database
+ Phân các quyền trên giản đồ (schema)
+ Phân các quyền trên bảng và view
+ Phân các quyền trên thủ tục và hàm
- Yêu cầu SV chuẩn bị:
+ Đọc trước tài liệu [3] trang 8, 9 từ trang 321 - 413
+ Tìm hiểu các nội dung:
Các vấn đề tiềm ẩn trong triển khai CSDL
Vấn đề phân quyền, bảo mật trong SQL Server
Attach và Detach cơ sở dữ liệu
Tạo schema
Tạo các userlogin
Tạo các Database Role
Phân quyền trên lược đồ
Phân quyền trên các đối tượng (Views, Tables, …)
Bài giảng 6: Thủ tục lưu trữ trên MS SQL Server 2005 (Stored Procedure)
Chương 4
Tiết thứ: 16 - 18 Tuần thứ: 6
- Mục đích, yêu cầu:
+ Ý nghĩa của thủ tục lưu trữ, tạo và thực thi thủ tục
+ Hiểu được ý nghĩa các tham số EXECUTE AS, RECOMPILE,ENCRYPTION, OUTPUT
- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu
- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết
- Địa điểm: Giảng đường do P2 phân công.
- Nội dung chính:
a) Nội dung chi tiết:
- Khai báo thủ tục
Cú pháp:
CREATE PROC[EDURE] [schema.]procedure_name
[ {@parameter data_type} [= default] [OUTPUT] ]
[, n]
[WITH {RECOMPILE | ENCRYPTION |
EXECUTE AS { CALLER} }]
AS
Trang 13OUT|OUTPUT: là tham số dạng output Sử dụng tham số output đểnhận giá trị từ lời gọi thủ tục Các kiểu dữ liệu text, ntext, and imagehoặc kiểu dữ liệu giá trị bảng (table) không thể để dạng tham số output.RECOMPILE: Database Engine không lưu kế hoạch truy vấn, nó sẽđược biên dịch lại với mỗi lần thực thi
ENCRYPTION: Mã hóa lệnh tạo thủ tục, người dùng không thể xemđược nội dung thủ tục
- Cú pháp sửa thủ tục: ALTER PROC[EDURE]
- Cú pháp xóa thủ tục: DROP PROCEDURE
- Ý nghĩa của các tham số EXECUTE AS; AS CALLER; AS OWNER;
AS SELF
EXECUTE AS CALLER: chỉ định là user muốn thực hiện thủ tục phải cóquyền thực hiên trên thủ tục này, và có các quyền tương ứng trên các objectstrong thủ tục
EXECUTE AS SELF tương đương với EXECUTE AS user_name, ngườidùng tạo hoặc sửa đổi các đối tượng trong thủ tục mới có quyền gọi
AS OWNER: Người gọi là người có quyền sở hữu thủ tục Nếu thủ tục
không quy định người sở hữu, thì sẽ sử dụng quyền sở hữu của schema.
- Thực thi thủ tục: EXEC [ UTE ] Ví dụ với các biến đặt default, output Các
tham số EXECUTE AS; AS CALLER; AS OWNER; AS SELF
Trang 14+ Đọc trước tài liệu [4] chương 6 từ trang 151 - 184
+ Tìm hiểu các nội dung sau:
Các ưu điểm khi dùng thủ tục so với dùng tập các câu lệnh đơn lẻ
Ý nghĩa của query plan, các tham số dạng default, output, execute as.Thủ tục đệ quy
Tạo một số thủ tục đơn giản trong CSDL bán hàng
Tạo thủ tục đệ quy, thực hiện lời gọi để đệ quy quá 32 lần
Bài giảng 7: Hàm (Function)
- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu
- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết
- Địa điểm: Giảng đường do P2 phân công.
+ Thuật ngữ “scalar functions – các hàm vô hướng” dùng để chỉ các hàm trả
về một giá trị, tương phản với nó là các hàm trả về một table
- Hàm trả về giá trị đơn - Scalar Functions
Cú pháp:
CREATE FUNCTION [ schema_name ] function_name
( [ { @parameter_name [ AS ][ type_schema_name ] parameter_data_type [ = default ] } [ , n ] ])
RETURNS return_data_type
[ WITH <function_option> [ , n ] ]
[ AS ]
Trang 15- Ý nghĩa của các tham số EXECUTE AS; AS CALLER; AS OWNER;
+ Hàm đệ quy tính số Fibonaci (Hàm trả về giá trị vô hướng)
Create function dbo.fibonaci(@n int)
+ Tạo hàm đảo ngược chuỗi
+ Tạo hàm bảng mã kí tự ASCII, UNICODE, qui tắc sắp xếp trường dữ liệuvăn bản (collation) trên MS SQL Server
- Xây dựng hàm sắp xếp dữ liệu văn bản tiếng Việt
- Yêu cầu SV chuẩn bị:
+ Tìm hiểu một số hàm thường dùng của hệ thống: getdate, row_number,
@@identity,…
+ Viết một số hàm tổng hợp, tìm kiếm dữ liệu trên CSDL bán hàng
Trang 16+ Đọc trước tài liệu [4] chương 5 trang 117 - 149
Bài giảng 8: Kích họat (Trigger)
Chương 6
Tiết thứ: 22 - 24 Tuần thứ: 8
- Mục đích, yêu cầu:
+ Giúp sinh viên biết cách sử dụng các luồng và xử lý file
+ Tìm hiểu ý nghĩa, trường hợp sử dụng, cú pháp tạo, sửa, xóa DDL trigger
và DML trigger
+ Sử dụng MS Management Studio để tạo, xóa, sửa trigger
- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu
- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết
- Địa điểm: Giảng đường do P2 phân công.
- Tạo trigger: Cú pháp CREATE TRIGGER
- Sửa trigger: ALTER TRIGGER
- Xóa trigger: DROP TRIGGER
- Data definition trigger (DDL triggers)
+ Tạo DDL trigger trên server
+ Tạo DDL Trigger trên database
+ DDL triggers được tự động gọi sau khi máy thực hiện các lệnh sau: CreateTable, Drop Table, Alter Procedure, Drop Schema, Create Login, …
+ Trigger trên Server được lưu trong: Server Objects -> Triggers
+ Trigger trên Database được lưu trong: Programmability -> DatabaseTriggers
+ Ví dụ trigger ngăn cấm việc tạo UserLogin
+ Ví dụ trigger ngăn cấm thay đổi UserLogin
Ngăn cấm can thiệp đến loginUser(CREATE_LOGIN,DROP_LOGIN, ALTER_LOGIN)
ALL SERVER - chỉ định ràng trigger này họat động trong tất cả cácCSDL của server hiện thời
CREATE TRIGGER trgPreventLoginChanges ON ALL SERVER FORDDL_LOGIN_EVENTS
Trang 17drop trigger trgPreventLoginChanges ON ALL SERVER
+ Event Data Trigger: cho phép ghi lại những thay đổi về dữ liệu
- Data manipulation language triggers (DML triggers)
+ Trigger dạng For: các câu lệnh bên trong trigger sẽ được thực hiện sau khicác sự kiện tạo nên trigger đã xảy ra rồi
+ Trigger dạng thay thế INSTEAD OF: sẽ bỏ qua sự kiện đã kích hoạt trigger
mà thay vào đó sẽ thực hiện các dòng lệnh SQL bên trong Trigger.INSTEAD OF được chia làm 3 loại nhỏ: INSTEAD OF INSERT,INSTEAD OF UPDATE và INSTEAD OF DELETE
+ Cú pháp:
Tạo trigger:
CREATE TRIGGER <trigger_name> ON <table_name>|<view_name> [With encryption|EXECUTE AS { CALLER | SELF | 'user_name' } ] {[FOR| AFTER] [insert],[update],[delete] | Instead of}
AS Transact-SQL statements
Sửa trigger: ALTER Trigger
Xóa trigger: DROP Trigger
Vô hiệu hóa trigger: DISABLE TRIGGER
Làm trigger có hiệu lực trở lại: ENABLE TRIGGER
- Lưu ý:
+ Trigger không thể được tạo ra trên bảng tạm thời hay bảng hệ thống.Trigger chỉ có thể được kích hoạt một cách tự động bởi một trong các eventInsert, Update, Delete mà không thể chạy manually được Có thể áp dụngtrigger cho View
+ Trigger Insert: Trigger được phát biểu bởi for insert Trigger này sẽ đượcthực hiện khi tiến hành thêm một mẫu tin vào bảng Mẫu tin cần thêm sẽđược lưu trong một bảng tạm có tên là Inserted
+ Trigger Delete: Trigger được phát biểu bởi for delete Trigger này sẽ đượcthực hiện khi tiến hành xóa một mẫu tin trong bảng Mẫu tin bị xóa sẽ đượclưu trong một bảng tạm có tên là deleted
Trang 18+ Trigger Update: Trigger được phát biểu bởi for update Trigger này sẽđược thực hiện khi tiến hành sửa một mẫu tin trong bảng Mẫu tin bị thayđổi sẽ được lưu trong 2 bảng tạm có tên là Inserted (chứa giá trị mới) vàDeleted (chứa giá trị cũ).
+ Inserted và Deleted là 2 table tạm chỉ chứa trên bộ nhỏ và chỉ có giá trịbên trong trigger mà thôi (nghĩa là chỉ nhìn thấy được trong trigger mà thôi)
Ta có thể dùng thông tin trong 2 table này để so sánh data cũ và mới hoặckiểm tra xem data mới
- Tạo trigger trên bảng, view
- Hàm Update() trong các trigger.
- Ý nghĩa của các tham số EXECUTE AS; AS CALLER; AS OWNER;
AS SELF
- Gỡ rối trigger: Để gỡ rối một trigger chúng ta phải viết một procedure có
gọi các thao tác làm phát sinh sự kiện để thực thi trigger
- Các ví dụ
- Yêu cầu SV chuẩn bị:
+ Đọc trước tài liệu [4] chương 7 từ trang 187 - 217
+ Tạo một số trigger có chức năng quản trị mức Server
+ Tạo một số trigger có chức năng quản trị mức database
+ Tạo một số trigger mức bảng, có chức năng kiểm tra tính hợp lệ dữ liệutrong khi thao tác
Bài giảng 9: Cách tạo và làm việc với chỉ mục (Index)
Chương 7
Tiết thứ: 25 - 27 Tuần thứ: 9
- Mục đích, yêu cầu:
+ Giới thiệu về chỉ mục, tạo và sử dụng chỉ mục trong CSDL
+ Sinh viên nắm được cách tạo và bảo trì chỉ mục
- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu
- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết
- Địa điểm: Giảng đường do P2 phân công.
Trang 19+ Trường hợp ngược lại, gọi là ‘table scan’ khi đó các bản ghi sẽ được xử
lý tuần tự
+ Tất cả các indexes trong SQL Server 2005 đều sử dụng cấu trúc B-tree.+ Việc truy cập dữ liệu trong bảng sử dụng chỉ mục là một chiến lược rấttốt: SQL Server 2005 nói chung cần một thời gian ngắn đề truy cập mộtbảng ghi bất kỳ trong bảng Trong khi đó việc truy cập tuần từ cần một thờigian lớn để truy cập đến một bản ghi nằm ở cuối bảng
- Phương pháp lưu trữ dữ liệu trên SQL Server
+ Trong SQL 2000 mỗi dòng chứa tối đa 8,060 bytes
+ Trong SQL 2005 kích thước mỗi dòng có thể vượt quá 8,060 bytes
- Qui tắc chọn các trường dữ liệu làm chỉ mục
- Quan hệ giữa keys và indexes
+ Trong mô hình CSDL quan hệ có sử dụng 3 loại khóa: primary,candidate và foreign keys
+ Một chỉ mục “unique index” sẽ được tạo tự động tạo cho mỗi primary vàcandidate key Hơn nữa, mỗi cột primary key hoặc candidate key sẽ khôngthể chứa giá trị NULL
+ Một chỉ mục “non unique index” sẽ được tạo tự động tạo cho mỗiforeign key
- Các trường nên tạo chỉ mục:
+ Các trường dữ liệu xuất hiện sau where
+ Sau where có nhiều điều kiện với phép and
+ Với phép toán JOIN thì hai trường tham gia vào phép toán này phải là
Trang 20khác của FILLFACTOR chỉ giá trị phần trăm được điền đầy của các trang ởmức lá.
Cách đặt lại giá trị mặc định cho FILLFACTOR
+ Tham số PAD_INDEX: xác định rằng các trang ở gốc và trung gian củachỉ mục sử dụng giá trị FILLFACTOR giống như trang lá
+ Tham số INCLUDE ( column [ , n ] ) chỉ định một số trường khôngphải là trương khóa được bổ sung thêm vào các bản ghi ở mức lá của chỉmục N-Index
- Ví dụ minh họa
- Bảo trì chỉ mục
+ Xem thông tin về các chỉ mục của bảng
+ Xem các thông tin về sự phân mảnh của dữ liệu và chỉ mục của mộtbảng
+ Khi phát hiện phân mảnh chúng ta có thể sử dụng một trong ba cách sau:+ Xóa và tạo lại index
+ Rebuild the index - DBCC DBREINDEX
+ Defrag the index - DBCC INDEXDEFRAG
- Sử dụng công cụ Database Engine Tuning Advisor (DTA)
+ Sử dụng cộng cụ DTA để hiệu chỉnh CSDL nhằm tăng tốc độ truy vấn.+ DTA dùng để tìm một thiết kế vật lý tốt nhất cho việc thực hiện các truyvấn
+ Các bước hiệu chỉnh các truy vấn trong file:
- Giám sát hiệu năng thực thi của các truy vấn
+ Thực hiện truy vấn
+ Chọn menu Query -> Display Estimated Execution Plan
+ Nếu muốn hiển thị kế hoạch thực thi mỗi lần thực hiện một truy vấn thì
ta chọn Query -> Include Actual Execution Plan
+ Muốn xem thông tin thống kê ở client mỗi lần thực thi, chọn Query ->Include Client Statistic (Chú ý dòng total execution time – ghi nhớ lại để sosanh với truy vấn khi đã được tối ưu)
- Cải thiện truy vấn bằng tạo chỉ mục
- Yêu cầu SV chuẩn bị:
+ Đọc trước tài liệu [1] chương 8 trang 189 - 228
+ Tạo bảng có dữ liệu lớn, thực thi truy vấn với điều kiện where có nhiềuphép AND, sắp xếp dữ liệu Xem hiệu năng thực thi truy vấn