Bài giảng Học phần Hệ quản trị cơ sở dữ liệu
 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.
Bạn đang xem trước 20 trang tài liệu Bài giảng Học phần Hệ quản trị cơ sở dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1HỆ QUẢN TRỊ CSDL
ThS. Nguyễn Thị Thúy Loan
Nguyễn Thị Thúy Loan 2/12/2011Trang 2
Cách đánh giá
 Thực hành: 30%
 Bài tập: 20%
 Lý thuyết: 50%
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]. 
and-Computer-Science/index.htm/
Nguyễn Thị Thúy Loan 2/12/2011Trang 4
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
2TỔNG QUAN VỀ
SQL SERVER
Chương I
ThS. Nguyễn Thị Thúy Loan
Nguyễn Thị Thúy Loan 2/12/2011Trang 6
NỘI DUNG
 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.
SQL Server là gì?
Nguyễn Thị Thúy Loan 2/12/2011Trang 8
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.
3Nguyễn Thị Thúy Loan 2/12/2011Trang 9
SQL Server là gì?
 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.
 Được truy cập qua hai con đường chính.
o Query Analyzer.
o Enterprise Manager.
Nguyễn Thị Thúy Loan 2/12/2011Trang 10
Các dịch vụ của SQL Server 
 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 
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 Alerts: đưa ra các sự kiện xảy ra như: lỗi hay khi một 
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 2/12/2011Trang 11
Các dịch vụ của SQL Server 
 Microsoft Distributed Transaction 
Coordinator: Điều phối các giao tác phân tán, 
quản lý các giao tác, có trách nhiệm điều 
phối các giao tác của CSDL trên nhiều 
server.
Nguyễn Thị Thúy Loan 2/12/2011Trang 12
NỘI DUNG
 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.
4Nguyễn Thị Thúy Loan 2/12/2011Trang 13
Lịch sử phát triển
 1970 IBM đưa ra ngôn ngữ truy vấn SEQUEL 
(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. 
Nguyễn Thị Thúy Loan 2/12/2011Trang 14
Lịch sử phát triển
 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 
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 2/12/2011Trang 15
Lịch sử phát triển
 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 
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 2/12/2011Trang 16
NỘI DUNG
 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.
5Nguyễn Thị Thúy Loan 2/12/2011Trang 17
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 2/12/2011Trang 18
Mô hình Client/Server
Sử dụng giao tiếp lập trình 
ứng dụng để truy xuất dữ
liệu (API- Application 
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 2/12/2011Trang 19
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ý.
Nguyễn Thị Thúy Loan 2/12/2011Trang 20
Mô hình Client/Server
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.
6Nguyễn Thị Thúy Loan 2/12/2011Trang 21
NỘI DUNG
 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.
Nguyễn Thị Thúy Loan 2/12/2011Trang 22
 Client network Utility: 
công cụ dùng để thiết lập, 
tham khảo các cấu hình 
mạng: giao thức truyền 
cho client, các đường dẫn 
tham khảo đến thư viện.
Các thành phần SQL Server
Nguyễn Thị Thúy Loan 2/12/2011Trang 23
 Enterprise Manager (EM): là màn hình dùng 
để quản trị SQL Server. EM cung cấp cho người 
quản trị chức năng để quản lý SQL bằng giao 
diện đồ hoạ
o Quản trị các database 
o Tạo database và các thành phần bên trong 
database 
o Đăng ký làm việc với SQL Server khác.
Các thành phần SQL Server
Nguyễn Thị Thúy Loan 2/12/2011Trang 24
 Import and Export Data: công cụ hỗ trợ cho 
phép dễ dàng thực hiện việc chuyển dữ liệu từ
ngoài vào SQL Server và SQL Server ra 
 Query Analyzer: là công cụ cung cấp bởi 
SQL Server, là trình soạn thảo và thực thi câu 
lệnh SQL hay Stored Procedure.
Các thành phần SQL Server
7Nguyễn Thị Thúy Loan 2/12/2011Trang 25
Các thành phần SQL Server
 Server Network Utility: công cụ dùng để thiết 
lập các cấu hình cho server và hiển thị các 
thông tin đường dẫn tham chiếu thư viện làm 
việc 
 Server Manager: dùng để khởi động, tạm 
dừng, hoặc kết thúc các phục vụ của SQL 
Server.
CÁC ĐỐI TƯỢNG TRONG 
CƠ SỞ DỮ LIỆU
Chương II
ThS. Nguyễn Thị Thúy Loan
Nguyễn Thị Thúy Loan 2/12/2011Trang 27
NỘI DUNG
 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 2/12/2011Trang 28
Cơ sở dữ liệu của SQL 
Server
8Nguyễn Thị Thúy Loan 2/12/2011Trang 29
Cơ sở dữ liệu của SQL Server
Nguyễn Thị Thúy Loan 2/12/2011Trang 30
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 2/12/2011Trang 31
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 2/12/2011Trang 32
Các tập tin vật lý lưu trữ DL
9Nguyễn Thị Thúy Loan 2/12/2011Trang 33
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ập tin thứ yếu (Secondary Data Files) (không 
bắt buộc phải có khi tạo mới CSDL). Phần mở
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 2/12/2011Trang 34
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 
 Vị trí tập tin (File location): Thông thường 
tập tin này sẽ được lưu tại C:\Program 
Files\Microsoft SQL Server\MSSQL\ Data 
 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.
Nguyễn Thị Thúy Loan 2/12/2011Trang 35
Tạo mới cơ sở dữ liệu
 Kích thước ban đầu (Initial size): là kích 
thước khởi tạo của tập tin dữ liệu khi CSDL 
mới được tạo lập.
 Tăng kích thước tập tin dữ liệu (File 
growth)
 Kích thước tối đa tập tin dữ liệu (Maximun 
file size)
Nguyễn Thị Thúy Loan 2/12/2011Trang 36
Tạo mới cơ sở dữ liệu
 Ví dụ: tạo CSDL có tên QLBH với kích thước 
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 
tập tin tối đa không quá 200MB. Và tập tin lưu 
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 
MB khi dữ liệu bị đầy, kích thước tăng trưởng 
tập tin không giới hạn.
10
Nguyễn Thị Thúy Loan 2/12/2011Trang 37
Tạo mới cơ sở dữ liệu
 Cách 1: tạo trong Query Analyzer
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 2/12/2011Trang 38
Tạo mới cơ sở dữ liệu
 Cách 2: tạo trong Enterprise Manager
Nguyễn Thị Thúy Loan 2/12/2011Trang 39
Tạo mới cơ sở dữ liệu
Tên CSDL
Click 
Nguyễn Thị Thúy Loan 2/12/2011Trang 40
NỘI DUNG
 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.
11
Nguyễn Thị Thúy Loan 2/12/2011Trang 41
Bảng (Tables)
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.
 Tên bảng (table name): dài tối đa 128 ký tự
 Tên cột (column name)
 Kiểu dữ liệu (Data type): quy định kiểu dữ
liệu mà cột sẽ lưu trữ bên trong bảng.
Nguyễn Thị Thúy Loan 2/12/2011Trang 42
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ữ
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 
Các kiểu dữ liệu dạng số thập phân
Decimal,
Numeric 
17 byte Từ -10^38 đến +10^38 
Các kiểu dữ liệu dạng số thực
Float 8 bytes Từ -1.79E + 308 đến +1.79E + 308 
Real 4 bytes Từ -1.79E + 308 đến +1.79E + 308 
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
Text N bytes Từ 1 đến 2,147,483,647 ký tự
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 
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 2/12/2011Trang 44
Tạo cấu trúc bảng dữ liệu
 Tạo cấu trúc bảng đơn giản
CREATE TABLE (
: [NOT NULL],
: [NOT NULL],
……………
: [NOT NULL])
12
Nguyễn Thị Thúy Loan 2/12/2011Trang 45
Tạo cấu trúc bảng dữ liệu
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 2/12/2011Trang 46
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 (
: Default
gia_trị|hàm,
: [NOT NULL],
……………
: [NOT NULL])
Nguyễn Thị Thúy Loan 2/12/2011Trang 47
Tạo cấu trúc bảng dữ liệu
Ví dụ:
CREATE TABLE LOP(
Malop char(6) NOT NULL,
TenLop varchar(20) NOT NULL,
SiSo smallInt Default 0)
Nguyễn Thị Thúy Loan 2/12/2011Trang 48
Tạo cấu trúc bảng dữ liệu
 Tạo cấu trúc bảng có cột định danh
CREATE TABLE (
: Identity 
[(số_bắt_đầu,chỉ_số_tăng)],
: [NOT NULL],
……………
: [NOT NULL])
13
Nguyễn Thị Thúy Loan 2/12/2011Trang 49
Tạo cấu trúc bảng dữ liệu
Ví dụ:
CREATE TABLE LOP(
Malop int Identity(1000,5),
TenLop varchar(20) NOT NULL,
SiSo smallInt NOT NULL)
Nguyễn Thị Thúy Loan 2/12/2011Trang 50
Tạo cấu trúc bảng dữ liệu
Enterprise Manager
 Right-click Tables/ chọn New Table…
Nguyễn Thị Thúy Loan 2/12/2011Trang 51
Tạo cấu trúc bảng dữ liệu
 Tạo các cột.
Tên column Kiểu DL
Nguyễn Thị Thúy Loan 2/12/2011Trang 52
Tạo cấu trúc bảng dữ liệu
 Đặt tên bảng
14
Nguyễn Thị Thúy Loan 2/12/2011Trang 53
Thay đổi cấu trúc bảng
Query Analyzer
 Thêm một cột mới vào bảng
ALTER TABLE Tên_bảng 
ADD Tên_cột kiểu_dữ_liệu
Ví dụ:
ALTER TABLE LOP 
ADD Nien_khoa int 
Nguyễn Thị Thúy Loan 2/12/2011Trang 54
Thay đổi cấu trúc bảng
Query Analyzer
 Hủy bỏ cột hiện có bên trong bảng
ALTER TABLE Tên_bảng 
DROP COLUMN Tên_cột
Ví dụ:
ALTER TABLE LOP 
DROP COLUMN Nien_khoa 
Nguyễn Thị Thúy Loan 2/12/2011Trang 55
Thay đổi cấu trúc bảng
Query Analyzer
 Sửa đổi kiểu dữ liệu của cột
ALTER TABLE Tên_bảng 
alter column Tên_cột 
Ví dụ:
ALTER TABLE LOP 
ALTER COLUMN Nien_khoa char(9)
Nguyễn Thị Thúy Loan 2/12/2011Trang 56
Thay đổi cấu trúc bảng
 Đổ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’
15
Nguyễn Thị Thúy Loan 2/12/2011Trang 57
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à
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 2/12/2011Trang 58
Tính toàn vẹn trong cơ sở DL
Các Phương Pháp Ðảm Bảo Data Integrity
 Data Type
 Not Null Definitions
 Default Definitions
 Identity Properties 
 Constraints 
 Rules 
 Triggers 
 Indexes 
Nguyễn Thị Thúy Loan 2/12/2011Trang 59
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)) 
Nguyễn Thị Thúy Loan 2/12/2011Trang 60
Cách tạo các ràng buộc
 Primary Key Constraint
ALTER TABLE ADD 
CONSTRAINT 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
16
Nguyễn Thị Thúy Loan 2/12/2011Trang 61
Add Primary Key
Enterprise Manager
 Right-click column of interest
 Set Primary Key
Nguyễn Thị Thúy Loan 2/12/2011Trang 62
Cách tạo các ràng buộc
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 2/12/2011Trang 63
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))
Nguyễn Thị Thúy Loan 2/12/2011Trang 64
Cách tạo các ràng buộc
 Foreign Key Constraint
ALTER TABLE ADD 
CONSTRAINT FOREIGN 
KEY(các cột khóa ngoại) REFERENCES <tên 
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) 
17
Nguyễn Thị Thúy Loan 2/12/2011Trang 65
Cách tạo các ràng buộc
 Check Constraint (ràng buộc miền giá trị)
CREATE TABLE LOP
(MaLop INT PRIMARY KEY,
TenLop VARCHAR(30),
Siso INT CHECK (Siso BETWEEN 1 
AND 100)) 
Nguyễn Thị Thúy Loan 2/12/2011Trang 66
Cách tạo các ràng buộc
 Check Constraint (ràng buộc miền giá trị)
CREATE TABLE LOP
(MaLop INT PRIMARY KEY,
TenLop VARCHAR(30), 
Siso INT,
CONSTRAINT Siso_Ck CHECK (Siso 
BETWEEN 1 AND 100))
Nguyễn Thị Thúy Loan 2/12/2011Trang 67
Cách tạo các ràng buộc
 Check Constraint (ràng buộc miền giá trị)
Alter table 
add constraint check 
Ví dụ: 
Alter table Lop 
add constraint Siso_Ck check (Siso between 1 and 
100)
Nguyễn Thị Thúy Loan 2/12/2011Trang 68
Cách tạo các ràng buộc
 Check Constraint (ràng buộc miền giá trị)
Alter table KhachHang
Add constraint DT_Ck check (DT like 
‘[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]’)
Alter table SanPham
Add constraint GiaBan_Ck check (GiaBan >0)
18
Nguyễn Thị Thúy Loan 2/12/2011Trang 69
NỘI DUNG
 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 2/12/2011Trang 70
Khung nhìn (View)
 Đối tượng bên trong nó chỉ lưu trữ duy nhất 
một câu lệnh SELECT 
 Bảng ảo không hoàn toàn lưu trữ dữ liệu một 
cách riêng rẽ.
Nguyễn Thị Thúy Loan 2/12/2011Trang 71
Khung nhìn (View)
 Cú pháp:
CREATE VIEW
 [(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 2/12/2011Trang 72
Khung nhìn (View)
 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 
19
Nguyễn Thị Thúy Loan 2/12/2011Trang 73
Khung nhìn (View)
 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 
Nguyễn Thị Thúy Loan 2/12/2011Trang 74
Khung nhìn (View)
Tạo bằng Enterprise Manager
 Bước 1:
Nguyễn Thị Thúy Loan 2/12/2011Trang 75
Khung nhìn (View)
Tạo bằng Enterprise Manager
 Bước 2: Chọn các bảng
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ế
20
Nguyễn Thị Thúy Loan 2/12/2011Trang 77
NỘI DUNG
 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 2/12/2011Trang 78
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:
Nguyễn Thị Thúy Loan 2/12/2011Trang 79
Mô hình dữ liệu quan hệ
o Bước 2:
Nguyễn Thị Thúy Loan 2/12/2011Trang 80
Mô hình dữ liệu quan hệ
o Bước 3:
21
Nguyễn Thị Thúy Loan 2/12/2011Trang 81
NỘI DUNG
 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 2/12/2011Trang 82
KDL do người dùng định nghĩa
 Mục đích đảm bảo cho cấu trúc dữ liệu bên 
trong CSDL được nhất quán và dễ sửa đổi. 
 Cú pháp:
EXEC sp_addtype Tên_kiểu_dl_mới, 
‘kiểu_dữ_liệu_cơ_sở’ [,NULL| NOT NULL]
Nguyễn Thị Thúy Loan 2/12/2011Trang 83
KDL do người dùng định nghĩa
 Ví dụ:
exec sp_addtype dn_sl, ‘float’, ‘not null’
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:
CREATE TABLE KQ
(MaSV nchar(10),
MaMH nchar(10),
Diem dn_sl)
Nguyễn Thị Thúy Loan 2/12/2011T
            
         
        
    


 
                    