1
Cách đánh giá
HỆ QUẢN TRỊ CSDL
Thực hành: 30%
Bài tập: 20%
ThS. Nguyễn Thị Thúy Loan
Lý thuyết: 50%
Nguyễn Thị Thúy Loan
Tài liệu tham khảo
[1]. Bài giảng của Giảng viên khoa Công nghệ Thông tin.
[2]. Giáo trình SQL Server 200, Nguyễn Thiên Bằng chủ biên, NXB
Lao động – xã hội.
[3]. Lập trình SQL căn bản, Đoàn Thiện Ngân chủ biên, NXB Lao
động – xã hội.
[4]. Lập trình ứng dụng chuyên nghiệp SQL – Server 2000, Phạm
Hữu Khang chủ biên, NXB Lao động – xã hội
[5]. />
Trang 2
2/12/2011
Nội dung
Tổng quan về SQL Server.
Các đối tượng trong cơ sở dữ liệu.
Lập trình với cơ sở dữ liệu.
Store Procedure (thủ tục).
Trigger & Function.
Backup anh restore
Nguyễn Thị Thúy Loan
Trang 4
2/12/2011
2
NỘI DUNG
Chương I
TỔNG QUAN VỀ
SQL SERVER
SQL Server là gì?
Lịch sử phát triển.
Mô hình Client/ Server
Các thành phần của SQL Server.
ThS. Nguyễn Thị Thúy Loan
Nguyễn Thị Thúy Loan
Trang 6
2/12/2011
SQL Server là gì?
SQL Server là gì?
Phần mềm quản trị dữ liệu đáng tin cậy, có tính
mở cao.
Dễ dàng xây dựng một CSDL quan hệ lớn.
Giải quyết tình trạng va chạm giữa các user khi
cùng truy xuất một dữ liệu tại cùng một thời
điểm.
Bảo đảm các RBTV trên CSDL.
Bảo vệ an toàn dữ liệu.
Truy vấn dữ liệu nhanh.
Nguyễn Thị Thúy Loan
Trang 8
2/12/2011
3
SQL Server là gì?
Các dịch vụ của SQL Server
Hệ quản trị CSDL theo mô hình Client/ Server
có thể dễ dàng phát triển trên mô hình phân
tán.
MSSQL Server: Xử lý các câu lệnh giao tác gởi
từ client và server.
SQL Server Agent:
o Jobs: Các công việc có thể được lên kế hoạch để thực
Được truy cập qua hai con đường chính.
thi tại một thời điểm chỉ định trước hay thực thi theo
các khoảng thời gian chu trình.
o Query Analyzer.
o Alerts: đưa ra các sự kiện xảy ra như: lỗi hay khi một
o Enterprise Manager.
CSDL đạt tới một giới hạn vì bộ nhớ trống sẵn không
còn đủ nữa.
Nguyễn Thị Thúy Loan
Trang 9
2/12/2011
Nguyễn Thị Thúy Loan
Các dịch vụ của SQL Server
Microsoft
Distributed
Transaction
Trang 10
2/12/2011
NỘI DUNG
SQL Server là gì?
Coordinator: Điều phối các giao tác phân tán,
Lịch sử phát triển.
quản lý các giao tác, có trách nhiệm điều
Mô hình Client/ Server
phối các giao tác của CSDL trên nhiều
Các thành phần của SQL Server.
server.
Nguyễn Thị Thúy Loan
Trang 11
2/12/2011
Nguyễn Thị Thúy Loan
Trang 12
2/12/2011
4
Lịch sử phát triển
Lịch sử phát triển
1970 IBM đưa ra ngôn ngữ truy vấn SEQUEL
Nhưng sau đó IBM đưa ra phiên bản mới của
OS/2 gọi là OS/2 mở rộng, HĐH này sẽ mạnh
(Structured English Query Language)
1975 IBM và Microsoft hợp tác xây dựng
HĐH OS/2 dựa theo hệ điều hành MS DOS
của Microsoft. Ngày 16/12/1987 HĐH OS/2
phiên bản 1.0 đã được chính thức phát hành.
hơn OS/2 phiên bản 1.0 bởi vì nó sẽ tích hợp
thêm một phần CSDL SQL của IBM (ngày nay
chính là HQTCSDL DB2)
Microsoft hợp tác Sybase làm ra sản phẩm
thuộc loại HQTCSDL Ashton-Tate vào năm
1988 phát triển trên môi trường OS/2.
Nguyễn Thị Thúy Loan
Trang 13
2/12/2011
Nguyễn Thị Thúy Loan
Lịch sử phát triển
Trang 14
2/12/2011
NỘI DUNG
Sau đó Sybase đã phát triển sản phẩm trên môi
trường UNIX và đổi tên riêng là DataServer mà
ngày nay có tên khác là Sybase Adaptive Server
Microsoft quyết định không phát triển HĐH OS/2
mà thay vào đó cho ra đời một HĐH mạng máy
SQL Server là gì?
Lịch sử phát triển.
Mô hình Client/ Server
Các thành phần của SQL Server.
tính có tên là NT Server và thế là SQL Server chỉ
hoạt động độc lập trên môi trường Windows NT
Server mà thôi.
Nguyễn Thị Thúy Loan
Trang 15
2/12/2011
Nguyễn Thị Thúy Loan
Trang 16
2/12/2011
5
Mô hình Client/Server
Mô hình Client/Server
Vì sao phát triển trên mô hình Client/Server
o Giảm chi phí
o Tốc độ nhanh
o Tương thích cao
Mô hình Client/Sever: là kiến trúc gồm 2 thành
phần máy Client và máy Server, 2 thành phần
này liên lạc với nhau thông qua hệ thống mạng
Nguyễn Thị Thúy Loan
Trang 17
2/12/2011
Sử dụng giao tiếp lập trình
ứng dụng để truy xuất dữ
liệu
(APIApplication
Programming Interfece)
Thư viện mạng client sử
dụng 1 phương thức liên lạc
bên trong mạng để giao tiếp
với thư viện mạng của
server
Thư viện mạng của
server nhận gói dữ liệu
và trao chúng cho các
dịch vụ mở dữ liệu
Nguyễn Thị Thúy Loan
Trang 18
2/12/2011
Mô hình Client/Server
Mô hình Client/Server
Nhánh máy trạm (client)
Đọc và hiển thị dữ liệu hiện có bên trong
CSDL, tính toán dữ liệu đang hiển thị trên màn
hình ứng dụng, in dữ liệu ra các kết xuất
Các ngôn ngữ sử dụng bên máy khách thường
là: C++, C#, VB, Delphi…
Các ứng dụng khi xây dựng bên nhánh máy
trạm nên tránh việc đọc tòan bộ dữ liệu của
bảng mà chỉ lấy đúng các thông tin cần thiết
khi xử lý.
Nhánh máy chủ (server)
Các xử lý đảm bảo việc truy cập của các người
dùng trên mạng là bảo mật.
Các xử lý liên quan đến việc thực hiện hoặc
cập nhật dữ liệu đồng thời cùng lúc giữa những
người dùng hiện hành trên mạng.
Các xử lý sao lưu dữ liệu (backup data) tự
động để đảm bảo các dữ liệu không bị mất
trong trường hợp có các sự cố xấu nhất tình cờ
xảy ra.
Nguyễn Thị Thúy Loan
Trang 19
2/12/2011
Nguyễn Thị Thúy Loan
Trang 20
2/12/2011
6
NỘI DUNG
Các thành phần SQL Server
SQL Server là gì?
Client network Utility:
Lịch sử phát triển.
công cụ dùng để thiết lập,
Mô hình Client/ Server.
tham khảo các cấu hình
Các thành phần của SQL Server.
mạng: giao thức truyền
cho client, các đường dẫn
tham khảo đến thư viện.
Nguyễn Thị Thúy Loan
Trang 21
2/12/2011
Nguyễn Thị Thúy Loan
Trang 22
2/12/2011
Các thành phần SQL Server
Các thành phần SQL Server
Enterprise Manager (EM): là màn hình dùng
Import and Export Data: công cụ hỗ trợ cho
để quản trị SQL Server. EM cung cấp cho người
phép dễ dàng thực hiện việc chuyển dữ liệu từ
quản trị chức năng để quản lý SQL bằng giao
diện đồ hoạ
ngoài vào SQL Server và SQL Server ra
Query Analyzer: là công cụ cung cấp bởi
o Quản trị các database
o Tạo database và các thành phần bên trong
database
SQL Server, là trình soạn thảo và thực thi câu
lệnh SQL hay Stored Procedure.
o Đăng ký làm việc với SQL Server khác.
Nguyễn Thị Thúy Loan
Trang 23
2/12/2011
Nguyễn Thị Thúy Loan
Trang 24
2/12/2011
7
Các thành phần SQL Server
Server Network Utility: công cụ dùng để thiết
Chương II
lập các cấu hình cho server và hiển thị các
CÁC ĐỐI TƯỢNG TRONG
thông tin đường dẫn tham chiếu thư viện làm
CƠ SỞ DỮ LIỆU
việc
Server Manager: dùng để khởi động, tạm
ThS. Nguyễn Thị Thúy Loan
dừng, hoặc kết thúc các phục vụ của SQL
Server.
Nguyễn Thị Thúy Loan
Trang 25
2/12/2011
NỘI DUNG
Cơ sở dữ liệu của SQL Server
Bảng (Table)
Cơ sở dữ liệu của SQL
Server
Bảng ảo (View)
Mô hình quan hệ dữ liệu
Kiểu dữ liệu do người dùng định nghĩa
Quy tắc kiểm tra miền giá trị dữ liệu (rule)
Giá trị mặc định.
Nguyễn Thị Thúy Loan
Trang 27
2/12/2011
Nguyễn Thị Thúy Loan
Trang 28
2/12/2011
8
Cơ sở dữ liệu của SQL Server
Cơ sở dữ liệu của SQL Server
Khi cài SQL Server xong, hệ thống sẽ tự động tạo
một vài CSDL mặc định:
Master
Model
Tempdb
Pubs
Northwind
Msdb
Xem các CSDL trong Query Analyzer:SP_helpdb
Nguyễn Thị Thúy Loan
Trang 29
2/12/2011
Các tập tin vật lý lưu trữ DL
Nguyễn Thị Thúy Loan
Trang 30
2/12/2011
Các tập tin vật lý lưu trữ DL
Hai tập tin vật lý để lưu trữ dữ liệu:
o Lưu trữ dữ liệu (data file)
o Lưu trữ các giao tác mà người dùng đã thực
hiện (transaction log file)
Các tập tin CSDL trong SQL Server được chia
thành 3 loại tập tin.
Nguyễn Thị Thúy Loan
Trang 31
2/12/2011
Nguyễn Thị Thúy Loan
Trang 32
2/12/2011
9
Các tập tin vật lý lưu trữ DL
Tập tin dữ liệu chính (Primary Data File). Phần
mở rộng của tập tin này là *.mdf
Tạo mới cơ sở dữ liệu
Các thuộc tính CSDL trong SQL Server
Tên CSDL (Database name): dài tối đa 128
ký tự, duy nhất trong SQL Server
Tập tin thứ yếu (Secondary Data Files) (không
Vị trí tập tin (File location): Thông thường
bắt buộc phải có khi tạo mới CSDL). Phần mở
tập tin này sẽ được lưu tại C:\Program
Files\Microsoft SQL Server\MSSQL\ Data
rộng của tập tin này là *.ndf
Tập tin lưu trữ (Log Files). Phần mở rộng là
*.ldf
Nguyễn Thị Thúy Loan
Tên tập tin (File name): là tên luận lý của mỗi
loại tập tin dữ liệu tương ứng mà hệ thống
SQL Server dùng để quản lý bên trong.
Trang 33
2/12/2011
Nguyễn Thị Thúy Loan
Trang 34
2/12/2011
Tạo mới cơ sở dữ liệu
Tạo mới cơ sở dữ liệu
Kích thước ban đầu (Initial size): là kích
Ví dụ: tạo CSDL có tên QLBH với kích thước
thước khởi tạo của tập tin dữ liệu khi CSDL
ban đầu là 50 MB, tự động tăng kích thước lên
10% khi dữ liệu đầy, kích thước tăng trưởng
mới được tạo lập.
Tăng kích thước tập tin dữ liệu (File
growth)
vết với kích thước ban đầu lúc khởi tạo là
10MB, tự động tăng kích thước tập tin lên 5
Kích thước tối đa tập tin dữ liệu (Maximun
MB khi dữ liệu bị đầy, kích thước tăng trưởng
tập tin không giới hạn.
file size)
Nguyễn Thị Thúy Loan
tập tin tối đa không quá 200MB. Và tập tin lưu
Trang 35
2/12/2011
Nguyễn Thị Thúy Loan
Trang 36
2/12/2011
10
Tạo mới cơ sở dữ liệu
Tạo mới cơ sở dữ liệu
Cách 1: tạo trong Query Analyzer
Cách 2: tạo trong Enterprise Manager
CREATE DATABASE QLBH
ON PRIMARY (NAME = QLBH,
FILENAME= ‘C:\Program Files\Microsoft SQL
Server\MSSQL.3\MSSQL\Data\ QLBH.mdf’,
SIZE=50MB, MAXSIZE = 200MB,
FILEGROWTH = 10%)
LOG ON(NAME = QLBH_Log,
FILENAME= ‘C:\Program Files\Microsoft SQL
Server\MSSQL.3\MSSQL\Data\ QLBH_Log.ldf',
SIZE=10MB, MAXSIZE = UNLIMITED,
FILEGROWTH = 5MB)
Nguyễn Thị Thúy Loan
Trang 37
2/12/2011
Nguyễn Thị Thúy Loan
Tạo mới cơ sở dữ liệu
Trang 38
2/12/2011
NỘI DUNG
Tên CSDL
Cơ sở dữ liệu của SQL Server
Bảng (Table)
Bảng ảo (View)
Mô hình quan hệ dữ liệu
Kiểu dữ liệu do người dùng định nghĩa
Quy tắc kiểm tra miền giá trị dữ liệu (rule)
Click
Nguyễn Thị Thúy Loan
Trang 39
Giá trị mặc định.
2/12/2011
Nguyễn Thị Thúy Loan
Trang 40
2/12/2011
11
Bảng (Tables)
Bảng (Kiểu dữ liệu)
Dùng để lưu trữ các thông tin dữ liệu của những
đối tượng, thực thể trong thế giới thực vào máy
tính.
Kiểu dữ liệu
Kích thước
Miền giá trị dữ liệu lưu trữ
Số nguyên
Int
4 bytes
Từ -2,147,483,648 đến +2,147,483,648
Smallint
2 bytes
Từ -32,768 đến + 32,767
Tinyint
1 byte
Từ 0 đến 255
Bit
1 byte
0,1 hoặc Null
Tên bảng (table name): dài tối đa 128 ký tự
Các kiểu dữ liệu dạng số thập phân
Tên cột (column name)
Decimal,
Numeric
Kiểu dữ liệu (Data type): quy định kiểu dữ
Các kiểu dữ liệu dạng số thực
liệu mà cột sẽ lưu trữ bên trong bảng.
Nguyễn Thị Thúy Loan
Trang 41
2/12/2011
Bảng (Kiểu dữ liệu)
Kiểu dữ liệu
Kích thước Miền giá trị dữ liệu lưu trữ
Các kiểu dữ liệu dạng chuỗi
Char
N bytes
Từ 1 đến 8,000 ký tự, độ dài cố định
Varchar
N bytes
Từ 1 đến 8,000 ký tự, độ dài biến đổi
Từ 1 đến 2,147,483,647 ký tự
Text
N bytes
Nchar
2* n bytes Unicode, từ 1 đến 4,000 ký tự, mỗi ký tự 2 bytes
Nvarchar
2* n bytes Từ -10^38 đến +10^38
Ntext
2* n bytes từ 1 đến 1,073,741,823 ký tự, mỗi ký tự 1 byte
Các kiểu dữ liệu dạng ngày giờ
datetime
8 bytes
Từ 01/01/1753 đến 31/12/9999
smalldatetime 4 bytes
Từ 01/01/1900 đến 06/06/2079
17 byte
Từ -10^38 đến +10^38
Float
8 bytes
Từ -1.79E + 308 đến +1.79E + 308
Real
4 bytes
Từ -1.79E + 308 đến +1.79E + 308
Nguyễn Thị Thúy Loan
Trang 42
2/12/2011
Tạo cấu trúc bảng dữ liệu
Tạo cấu trúc bảng đơn giản
CREATE TABLE <tên bảng> (
<tên cột 1>:
<kiểu dữ liệu 1> [NOT NULL],
<tên cột 2>:
<kiểu dữ liệu 2> [NOT NULL],
……………
<tên cột n>:
<kiểu dữ liệu n> [NOT NULL])
Các kiểu dữ liệu dạng chuỗi nhị phân
Image
N byte
Từ 1 đến 2,147,483,647 bytes
Binary
N byte
Từ 1 đến 8,000
Nguyễn Thị Thúy Loan
Trang 44
2/12/2011
12
Tạo cấu trúc bảng dữ liệu
Tạo cấu trúc bảng có giá trị mặc định
CREATE TABLE <tên bảng> (
<tên cột 1>:
<kiểu dữ liệu 1> Default
gia_trị|hàm,
<tên cột 2>:
<kiểu dữ liệu 2> [NOT NULL],
……………
<tên cột n>:
<kiểu dữ liệu n> [NOT NULL])
Ví dụ:
CREATE TABLE LOP(
Malop
char(6) NOT NULL,
TenLop
varchar(20) NOT NULL,
SiSo
smallInt NOT NULL)
Nguyễn Thị Thúy Loan
Trang 45
Tạo cấu trúc bảng dữ liệu
2/12/2011
Tạo cấu trúc bảng dữ liệu
Nguyễn Thị Thúy Loan
Trang 46
2/12/2011
Tạo cấu trúc bảng dữ liệu
Tạo cấu trúc bảng có cột định danh
Ví dụ:
CREATE TABLE LOP(
Malop
char(6) NOT NULL,
TenLop
varchar(20) NOT NULL,
SiSo
smallInt Default 0)
CREATE TABLE <tên bảng> (
<tên cột 1>: <kiểu dữ liệu 1> Identity
[(số_bắt_đầu,chỉ_số_tăng)],
<tên cột 2>: <kiểu dữ liệu 2> [NOT NULL],
……………
<tên cột n>: <kiểu dữ liệu n> [NOT NULL])
Nguyễn Thị Thúy Loan
Trang 47
2/12/2011
Nguyễn Thị Thúy Loan
Trang 48
2/12/2011
13
Tạo cấu trúc bảng dữ liệu
Enterprise Manager
Right-click Tables/ chọn New Table…
Ví dụ:
CREATE TABLE LOP(
Malop int
Tạo cấu trúc bảng dữ liệu
Identity(1000,5),
TenLop varchar(20) NOT NULL,
SiSo
smallInt NOT NULL)
Nguyễn Thị Thúy Loan
Trang 49
2/12/2011
Tạo cấu trúc bảng dữ liệu
Tạo các cột.
Tên column
Nguyễn Thị Thúy Loan
Nguyễn Thị Thúy Loan
Trang 50
2/12/2011
Tạo cấu trúc bảng dữ liệu
Đặt tên bảng
Kiểu DL
Trang 51
2/12/2011
Nguyễn Thị Thúy Loan
Trang 52
2/12/2011
14
Thay đổi cấu trúc bảng
Thay đổi cấu trúc bảng
Query Analyzer
Query Analyzer
Thêm một cột mới vào bảng
Hủy bỏ cột hiện có bên trong bảng
ALTER TABLE Tên_bảng
ALTER TABLE Tên_bảng
ADD Tên_cột kiểu_dữ_liệu
DROP COLUMN Tên_cột
Ví dụ:
Ví dụ:
ALTER TABLE LOP
ALTER TABLE LOP
ADD Nien_khoa int
DROP COLUMN Nien_khoa
Nguyễn Thị Thúy Loan
Trang 53
2/12/2011
Thay đổi cấu trúc bảng
2/12/2011
Đổi tên cột, tên bảng dữ liệu
EXEC sp_rename ‘Tên_bảng[.tên_cột]’,
‘Tên_mới’ [, ‘COLUMN’]
Ví dụ 1: đổi tên cột Nien_khoa thành khoa_hoc
trong bảng LOP
EXEC sp_rename ‘LOP.nien_khoa’,
‘khoa_hoc’, ‘COLUMN’
Ví dụ 2: thay đổi tên LOP thành LOPHOC
EXEC sp_rename ‘LOP’, ‘LOPHOC’
Sửa đổi kiểu dữ liệu của cột
ALTER TABLE Tên_bảng
alter column Tên_cột <kiểu_dữ_liệu_mới>
Ví dụ:
ALTER TABLE LOP
ALTER COLUMN Nien_khoa char(9)
Trang 55
Trang 54
Thay đổi cấu trúc bảng
Query Analyzer
Nguyễn Thị Thúy Loan
Nguyễn Thị Thúy Loan
2/12/2011
Nguyễn Thị Thúy Loan
Trang 56
2/12/2011
15
Tính toàn vẹn trong cơ sở DL
Tính toàn vẹn trong cơ sở DL
Ràng buộc toàn vẹn (RBTV) dữ liệu thực sự là
Các Phương Pháp Ðảm Bảo Data Integrity
Data Type
Not Null Definitions
Default Definitions
Identity Properties
Constraints
Rules
Triggers
Indexes
việc đặc ra các quy tắc trong một cơ sở dữ liệu
nhằm kiểm tra các giá trị của dữ liệu trước khi
lưu trữ phải đảm bảo tính chính xác và hợp lý
bên trong một cơ sở dữ liệu.
Nguyễn Thị Thúy Loan
Trang 57
2/12/2011
Nguyễn Thị Thúy Loan
Trang 58
2/12/2011
Cách tạo các ràng buộc
Cách tạo các ràng buộc
Primary Key Constraint
CREATE
TABLE LOP
(MaLop
INT PRIMARY KEY,
TenLop VARCHAR(30))
Hay
CREATE
TABLE LOP
(MaLop
INT,
TenLop VARCHAR(30),
CONSTRAINT MaLop_pk PRIMARY KEY
(MaLop))
Primary Key Constraint
ALTER TABLE
<tên bảng> ADD
CONSTRAINT <tên RBTV> PRIMARY
KEY(thuộc tính khóa chính)
Ví dụ:
ALTER
TABLE
HOCVIEN
ADD
CONSTRAINT
MaHV_pk
PRIMARY
KEY(MaHV)
Chú ý: khi thêm khóa chính thì cột MaHV trong
bảng HOCVIEN buộc phải khác NULL
Nguyễn Thị Thúy Loan
Trang 59
2/12/2011
Nguyễn Thị Thúy Loan
Trang 60
2/12/2011
16
Add Primary Key
Cách tạo các ràng buộc
Enterprise Manager
Right-click column of interest
Set Primary Key
Unique Constraint
Cách tạo ra Unique Constraint cũng tương tự
như Primary Key Constraint chỉ việc thay chữ
Primary Key thành Unique.
Chỉ có một Primary Key Constraint trong một
table trong khi ta có thể có nhiều Unique
Constraint trên một table.
Nguyễn Thị Thúy Loan
Trang 61
2/12/2011
Nguyễn Thị Thúy Loan
Trang 62
2/12/2011
Cách tạo các ràng buộc
Cách tạo các ràng buộc
Foreign Key Constraint
CREATE TABLE LOP
(MaLop INT PRIMARY KEY,
MaKh INT REFERENCES Khoa (MaKH))
Hay
CREATE TABLE LOP
(MaLop INT PRIMARY KEY,
MaKh INT,
CONSTRAINT MaKh_fk FOREIGN KEY
(MaKh) REFERENCES Khoa(MaKh))
Foreign Key Constraint
ALTER TABLE <tên bảng> ADD
CONSTRAINT <tên RBTV> FOREIGN
KEY(các cột khóa ngoại) REFERENCES
bảng> (các cột khóa chính)
Ví dụ:
ALTER TABLE LOP ADD CONSTRAINT
Makh_fk FOREIGN KEY(MaKh)
REFERENCES Khoa (MaKh)
Nguyễn Thị Thúy Loan
Trang 63
2/12/2011
Nguyễn Thị Thúy Loan
Trang 64
2/12/2011
17
Cách tạo các ràng buộc
Cách tạo các ràng buộc
Check Constraint (ràng buộc miền giá trị)
Check Constraint (ràng buộc miền giá trị)
CREATE TABLE LOP
CREATE TABLE LOP
(MaLop INT PRIMARY KEY,
(MaLop INT PRIMARY KEY,
TenLop VARCHAR(30),
TenLop
Siso
Siso
INT CHECK (Siso BETWEEN 1
AND 100))
VARCHAR(30),
INT,
CONSTRAINT
Siso_Ck
CHECK
(Siso
BETWEEN 1 AND 100))
Nguyễn Thị Thúy Loan
Trang 65
2/12/2011
Cách tạo các ràng buộc
Nguyễn Thị Thúy Loan
Trang 66
2/12/2011
Cách tạo các ràng buộc
Check Constraint (ràng buộc miền giá trị)
Check Constraint (ràng buộc miền giá trị)
Alter table <tenbang>
Alter table KhachHang
add constraint <tên constraint> check
Add constraint DT_Ck check (DT like
Ví dụ:
‘[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]’)
Alter table Lop
add constraint Siso_Ck check (Siso between 1 and
100)
Nguyễn Thị Thúy Loan
Alter table SanPham
Add constraint GiaBan_Ck check (GiaBan >0)
Trang 67
2/12/2011
Nguyễn Thị Thúy Loan
Trang 68
2/12/2011
18
NỘI DUNG
Khung nhìn (View)
Cơ sở dữ liệu của SQL Server
Đối tượng bên trong nó chỉ lưu trữ duy nhất
Bảng (Table)
một câu lệnh SELECT
Bảng ảo (View)
Bảng ảo không hoàn toàn lưu trữ dữ liệu một
Mô hình quan hệ dữ liệu
cách riêng rẽ.
Kiểu dữ liệu do người dùng định nghĩa
Quy tắc kiểm tra miền giá trị dữ liệu (rule)
Giá trị mặc định.
Nguyễn Thị Thúy Loan
Trang 69
2/12/2011
Khung nhìn (View)
Trang 71
Trang 70
2/12/2011
Khung nhìn (View)
Cú pháp:
CREATE VIEW
<Tên_Bang_ao> [(tên_các_cột)]
[WITH ENCRYPTION] //mã hóa câu lệnh
AS
Câu lệnh SELECT
[WITH CHECK OPTION]// ngăn cản các thao
tác cập nhật dữ liệu (thêm, sửa) tác động trực
tiếp vào bảng ảo không thỏa điều kiện trong
mệnh đề WHERE.
Nguyễn Thị Thúy Loan
Nguyễn Thị Thúy Loan
2/12/2011
Một số từ khoá chuẩn không được dùng trong
VIEW:
ORDER BY
COMPUTE (thống kê dữ liệu cuối cùng)
COMPUTE BY (thống kê dữ liệu theo từng
nhóm)
SELECT INTO
Nguyễn Thị Thúy Loan
Trang 72
2/12/2011
19
Khung nhìn (View)
Khung nhìn (View)
Tạo bằng Enterprise Manager
Bước 1:
Ví dụ:
CREATE VIEW KQ_DAU AS
select kq.masv,tensv,mamh,diem
from sv,kq
where diem>7 and kq.masv=sv.masv
Xem kết quả của View
Select * from <Tenview>
Nguyễn Thị Thúy Loan
Trang 73
2/12/2011
Khung nhìn (View)
Trang 75
Trang 74
Khung nhìn (View)
Bước 3: lần lượt chọn các cột
như trong màn hình thiết kế
Tạo bằng Enterprise Manager
Bước 2: Chọn các bảng
Nguyễn Thị Thúy Loan
Nguyễn Thị Thúy Loan
2/12/2011
2/12/2011
20
NỘI DUNG
Mô hình dữ liệu quan hệ
Tạo các ràng buộc khóa ngoại một cách trực
quan hơn.
Tạo mô hình quan hệ
o Bước 1:
Cơ sở dữ liệu của SQL Server
Bảng (Table)
Bảng ảo (View)
Mô hình quan hệ dữ liệu
Kiểu dữ liệu do người dùng định nghĩa
Quy tắc kiểm tra miền giá trị dữ liệu (rule)
Giá trị mặc định.
Nguyễn Thị Thúy Loan
Trang 77
2/12/2011
Mô hình dữ liệu quan hệ
o Bước 2:
Nguyễn Thị Thúy Loan
Nguyễn Thị Thúy Loan
Trang 78
2/12/2011
Mô hình dữ liệu quan hệ
o Bước 3:
Trang 79
2/12/2011
Nguyễn Thị Thúy Loan
Trang 80
2/12/2011
21
NỘI DUNG
KDL do người dùng định nghĩa
Cơ sở dữ liệu của SQL Server
Mục đích đảm bảo cho cấu trúc dữ liệu bên
Bảng (Table)
trong CSDL được nhất quán và dễ sửa đổi.
Bảng ảo (View)
Cú pháp:
Mô hình quan hệ dữ liệu
EXEC
Kiểu dữ liệu do người dùng định nghĩa
‘kiểu_dữ_liệu_cơ_sở’ [,NULL| NOT NULL]
sp_addtype Tên_kiểu_dl_mới,
Quy tắc kiểm tra miền giá trị dữ liệu (rule)
Giá trị mặc định.
Nguyễn Thị Thúy Loan
Trang 81
2/12/2011
Nguyễn Thị Thúy Loan
KDL do người dùng định nghĩa
Ví dụ:
Trang 82
2/12/2011
NỘI DUNG
Cơ sở dữ liệu của SQL Server
exec sp_addtype dn_sl, ‘float’, ‘not null’
Bảng (Table)
exec sp_addtype slg, ‘int’
Khi tạo lập cấu trúc bảng KQ chúng ta có thể
sử dụng:
Bảng ảo (View)
Mô hình quan hệ dữ liệu
CREATE TABLE KQ
Kiểu dữ liệu do người dùng định nghĩa
(MaSV nchar(10),
Quy tắc kiểm tra miền giá trị dữ liệu (rule)
MaMH nchar(10),
Giá trị mặc định.
Diem dn_sl)
Nguyễn Thị Thúy Loan
Trang 83
2/12/2011
Nguyễn Thị Thúy Loan
Trang 84
2/12/2011
22
Rules
Rules
Kiểm tra các cột bên trong bảng phải thoả mãn
Tên_quy_tắc: kiểm tra miền giá trị dữ liệu
điều kiện nào đó khi dữ liệu bị sửa đổi hoặc
thêm vào. Tính năng hoạt động của nó gần
giống như CHECK constraint
AS
o Tên biến hình thức (phải bắt đầu bằng @)
Tên_qui_tắc
o Toán tử so sánh
Biểu_thức
Nguyễn Thị Thúy Loan
Trang 85
Biểu thức: biểu thức luận lý hoặc so sánh. Có
3 thành phần:
Cú pháp (Query Analyzer)
CREATE RULE
được tạo mới.
o Giá trị so sánh
2/12/2011
Nguyễn Thị Thúy Loan
Trang 86
2/12/2011
Rules
Rules
Ví dụ 1: Để tạo quy tắc kiểm tra miền giá trị
Ví dụ 2: Để tạo quy tắc kiểm tra miền giá trị
dữ liệu cột điểm phải từ 0 đến 10.
dữ liệu cột đơn vị tính của vật tư chỉ thuộc
trong các từ: cái, bộ, kg, m2, m3.
CREATE RULE R_Diem
CREATE RULE
AS
rule_Dvtinh_Hople
AS
@Diem between 0 and 10
@Dvt IN (‘Cái’, ‘Bộ’, ‘Kg’, ‘m2’, ‘m3’)
Nguyễn Thị Thúy Loan
Trang 87
2/12/2011
Nguyễn Thị Thúy Loan
Trang 88
2/12/2011
23
Rules (áp dụng quy tắc KT)
Rules (áp dụng quy tắc KT)
Cú pháp:
EXEC sp_bindrule
Ví dụ 2: Áp dụng quy tắc kiểm tra có tên là
Tên_qui_tắc, Tên_đối_tượng
R_Diem cho kiểu dữ liệu mới có tên là dn_sl
Ví dụ 1: Áp dụng quy tắc kiểm tra có tên
EXEC sp_bindrule R_Diem, ‘dn_sl’
R_Diem cho cột điểm trong bảng KQ.
EXEC sp_bindrule R_Diem, ‘KQ.Diem’
Nguyễn Thị Thúy Loan
Trang 89
2/12/2011
Nguyễn Thị Thúy Loan
Rules (gỡ bỏ quy tắc KT)
Cú pháp:
EXEC sp_unbindrule Tên_đối_tượng
Ví dụ
EXEC sp_unbindrule ‘dn_sl’
2/12/2011
Trang 90
Rules
Enterprise Manager
Tên Rule
ND Rule
Nguyễn Thị Thúy Loan
Trang 91
2/12/2011
Nguyễn Thị Thúy Loan
Trang 92
2/12/2011
24
Rules
Click vào
Properties.
mục
Bind
Nguyễn Thị Thúy Loan
Rules
Columns…
Trang 93
trong
2/12/2011
Chọn những bảng và cột tương ứng để ràng
buộc.
Nguyễn Thị Thúy Loan
Rules
Trang 94
2/12/2011
NỘI DUNG
Xóa rule
DROP Rule Tên_rule
Ví dụ;
Drop Rule R_Diem
Drop Rule R_Siso
Cơ sở dữ liệu của SQL Server
Bảng (Table)
Bảng ảo (View)
Mô hình quan hệ dữ liệu
Kiểu dữ liệu do người dùng định nghĩa
Quy tắc kiểm tra miền giá trị dữ liệu (rule)
Giá trị mặc định.
Nguyễn Thị Thúy Loan
Trang 95
2/12/2011
Nguyễn Thị Thúy Loan
Trang 96
2/12/2011
25
Giá trị mặc định (Default)
Giá trị mặc định (Default)
Cú pháp:
CREATE
DEFAULT
tên_giá_trị_mặc_định
AS
Biểu_thức
Trong đó:
Tên_giá_trị_mặc_định: tên giá trị mặc định
phải duy nhất trong CSDL.
Biểu thức: là một giá trị cụ thể nào đó như số,
ngày, chuỗi hoặc một hàm, biểu thức tính
toán.
Ví dụ: tạo giá trị mặc định cho các cột điểm là 0.
Nguyễn Thị Thúy Loan
Trang 97
2/12/2011
Giá trị mặc định (Default)
CREATE DEFAULT D_Diem
AS
‘0’
Nguyễn Thị Thúy Loan
Trang 98
2/12/2011
Giá trị mặc định (Default)
Liên kết các giá trị mặc định vào dữ liệu
Không liên kết các giá trị mặc định vào cột
Cú pháp:
Cú pháp:
EXEC sp_bindefault
Tên_mặc_định,
EXEC sp_unbindefault Tên_đối_tượng
Ví dụ: Để hủy bỏ giá trị mặc định đã liên kết
Tên_đối_tượng
Ví dụ: Để liên kết giá trị mặc định vừa tạo
D_Diem vào cột Diem có trong bảng KQ
cho cột Diem trong bảng KQ trước đó.
EXEC sp_unbindefault ‘KQ.Diem’
EXEC sp_bindefault D_Diem, ‘KQ.Diem’
Nguyễn Thị Thúy Loan
Trang 99
2/12/2011
Nguyễn Thị Thúy Loan
Trang 100
2/12/2011