SQL Server
Bài 4
Mục tiêu của chương
n
n
n
n
n
Tìm hiểu từng bước để tạo lập CSDL
Tìm hiểu các kiểu dữ liệu khác nhau trong SQL
Server
Định nghĩa các ràng buộc toàn vẹn trên thực thể và
giải thích tính cần thiết của các ràng buộc
Tìm hiểu cách cập nhật và xoá một bảng bằng cách
sử dụng T-SQL và Enterprise Manager
Tìm hiểu các khái niệm liên quan tới các ràng buộc
và các kiểu ràng buộc
Concepts of RDBMS and SQL Server 2000/Session 4/ 2 of 37
CSDL và bảng
CSDL quản lý
đặt vé máy bay
Hành khách
Chi tiết
về chuyến bay
chỗ đặt trước
Concepts of RDBMS and SQL Server 2000/Session 4/ 3 of 37
1
Thiết kế các bảng
trong SQL Server
n
n
n
Các bảng cần thiết
Kiểu dữ liệu trong mỗi
bảng
Giới hạn trên dữ liệu
n
n
n
n
Khoá
Giá trị mặc định
chỉ mục
Giá trị rỗng(Null)
Chuẩn hoá là quá trình loại bỏ các thông tin dư
thừa trên dữ liệu.
Concepts of RDBMS and SQL Server 2000/Session 4/ 4 of 37
Các đặc điểm của sự chuẩn
hoá CSDL
Concepts of RDBMS and SQL Server 2000/Session 4/ 5 of 37
Khi nào chúng ta
cần chuẩn hoá??
Concepts of RDBMS and SQL Server 2000/Session 4/ 6 of 37
2
Tạo lập các bảng bằng cách
sử dụng T-SQL
Concepts of RDBMS and SQL Server 2000/Session 4/ 7 of 37
Tạo lập các bảng bằng cách sử
dụng Enterprise Manager-1
Chúng ta có thể
tạo lập một bảng
mới với
Enterprise
Manager bằng
cách lựa chọn
CSDL và sau đó
chọn vào tuỳ
chọn Action,
New và Table.
Concepts of RDBMS and SQL Server 2000/Session 4/ 8 of 37
Tạo lập các bảng bằng cách
sử dụng Enterprise Manager-2
Khi chọn vào tuỳ chọn Table, cửa sổ thiết kế xuất
hiện tại đó chúng ta có thể thiết kế cấu trúc bảng.
Concepts of RDBMS and SQL Server 2000/Session 4/ 9 of 37
3
Kiểu dữ liệu
Binary, varbinary,
Numeric,
Decimal, float, real
Concepts of RDBMS and SQL Server 2000/Session 4/ 10 of 37
Các kiểu dữ liệu của hệ thống
Concepts of RDBMS and SQL Server 2000/Session 4/ 11 of 37
Tính toàn vẹn dữ liệu (1)
Độ tin cậy
Độ chính xác
Toàn vẹn dữliệu
Concepts of RDBMS and SQL Server 2000/Session 4/ 12 of 37
4
Tính toàn vẹn dữ liệu (2)
Ràng buộc
Ràng buộc
tham chiếu
Thực thể
Ràng buộc
dữ liệu
Ràng buộc miền
Ràng buộc người
dùng định nghĩa
Concepts of RDBMS and SQL Server 2000/Session 4/ 13 of 37
Toàn vẹn thực thể
Concepts of RDBMS and SQL Server 2000/Session 4/ 14 of 37
Toàn vẹn miền
Concepts of RDBMS and SQL Server 2000/Session 4/ 15 of 37
5
Toàn vẹn tham chiếu
Concepts of RDBMS and SQL Server 2000/Session 4/ 16 of 37
Toàn vẹn tham chiếu
Sử dụng ràng buộc khoá
chính và ràng buộc khoá
ngoại
Thêm
If item
Not Found
in Parent
Child
Bản ghi
Xoá
If Child results
in Orphan
Records
Parent
Concepts of RDBMS and SQL Server 2000/Session 4/ 17 of 37
Các công cụ thực hiện toàn
vẹn dữ liệu
Concepts of RDBMS and SQL Server 2000/Session 4/ 18 of 37
6
Các công cụ ràng buộc
thực thể
SQL Server 2000 cung cấp ba cơ chế để
thực hiện toàn vẹn Thực thể
n
n
n
Ràng buộc khoá chính
Ràng buộc duy nhất
Thuộc tính định danh
Concepts of RDBMS and SQL Server 2000/Session 4/ 19 of 37
Xác định khoá chính
Employee Table
Khoá dự tuyển
Khoá dự tuyển
Khoá dự tuyển
Employee No
E001
E002
E003
E004
Employee Name
John
Smith
Mary
Lisa
Social Security No
K3450
H7832
I56741
J45322
Grade
A
B
A
C
Concepts of RDBMS and SQL Server 2000/Session 4/ 20 of 37
Tính tối thiểu và Tính ổn định
Nhìn vào bảng trong trang trước, cột employee number (mã
nhân viên) có thể là khoá ứng cử viên, nhưng cột Social
Security Number hoặc kết hợp hai cột Social Security
Number và Grade cũng có thể là khoá ứng cử viên
Do đó làm thế nào để xác định được khoá ứng cử viên nào
có khả năng để trở thành khoá chính ? Có hai tiêu chí để lựa
chọn:
n
n
Tối thiểu
Ổn định
Concepts of RDBMS and SQL Server 2000/Session 4/ 21 of 37
7
Tạo lập khoá chính trong khi
định nghĩa cấu trúc bảng
CREATE TABLE Table_name
<Column_definition> PRIMARY KEY
Ví dụ:
CREATE TABLE Reservation
( PNR_no int PRIMARY KEY )
Lệnh này sẽ tạo ràng buộc khoá chính trên cột
PNR_no trong bảng Reservation.
Concepts of RDBMS and SQL Server 2000/Session 4/ 22 of 37
Thêm khoá chính vào một
bảng đã tồn tại
ALTER TABLE Table_name ADD CONSTRAINT
<Constraint_name> PRIMARY KEY
(<Column_name>)
Ví dụ:
ALTER TABLE Reservation ADD CONSTRAINT
PK_const PRIMARY KEY PNR_no
Concepts of RDBMS and SQL Server 2000/Session 4/ 23 of 37
Ràng buộc duy nhất
n
n
n
n
Một cột hoặc một tổ hợp các cột không
phải là khoá chính.
Nhiều ràng buộc duy nhất có thể được định
nghĩa trong bảng, trong khi ngược lại trong
bảng chỉ có duy nhất một ràng buộc khoá
chính.
Một cột cho phép các giá trị Null.
Các ràng buộc duy nhất có thể được định
nghĩa trên các cột cho phép nhận giá trị rỗng,
trong khi các ràng buộc khoá chính chỉ được
định nghĩa trên các cột không cho phép giá
trị rỗng.
Concepts of RDBMS and SQL Server 2000/Session 4/ 24 of 37
8
Thuộc tính Identity
Áp dụng Thuộc tính Identity trên một trường, thì giá
trị tự sinh ra là duy nhất trong bảng. Theo mặc
định, giá trị bắt đầu thiết lập bởi thuộc tính này là 1.
Cú pháp:
Column_name Data Type IDENTITY (SEED, INCREMENT)
Ví dụ:
CREATE TABLE Reservation_Copy (PNR_NO INT
IDENTITY(1,1))
Concepts of RDBMS and SQL Server 2000/Session 4/ 25 of 37
Cập nhật cấu trúc của bảng bằng cách
sử dụng Enterprise Manager
Concepts of RDBMS and SQL Server 2000/Session 4/ 26 of 37
Cập nhật cấu trúc của bảng
bằng cách sử dụng T-SQL
ALTER TABLE <Table_Name> [ALTER
COLUMN <Column_name>
_type>] |ADD[Column_name
<Data_Type>]| {DROP COLUMN
<column _Name>
Ví dụ,
ALTER TABLE jobs ADD HIRE_DATE DATETIME
Lệnh này thêm cột Hire_Date vào bảng jobs.
Concepts of RDBMS and SQL Server 2000/Session 4/ 27 of 37
9
Xoá bảng bằng cách sử
dụng Enterprise Manager
Concepts of RDBMS and SQL Server 2000/Session 4/ 28 of 37
Xoá bảng bằng cách sử dụng
T-SQL
Sử dụng cú pháp T-SQL và công cụ Query
Analyzer để xoá bảng như sau:
Cú pháp:
DROP TABLE <Table_Name>
Ví dụ:
DROP TABLE Airlines_Master
Concepts of RDBMS and SQL Server 2000/Session 4/ 29 of 37
Ràng buộc
Một Ràng buộc là thuộc tính có thể
được đặt trên một cột hoặc một tập hợp
các cột trong bảng
Ràng buộc này nhằm hạn chế việc nhập
liệu trên một cột hoặc tập hợp các cột.
Nếu một ràng buộc bi vi phạm, câu lệnh
gây ra sự vi phạm sẽ bị chấm dứt hoặc
không có tác dụng.
Concepts of RDBMS and SQL Server 2000/Session 4/ 30 of 37
10
Các ràng buộc
Concepts of RDBMS and SQL Server 2000/Session 4/ 31 of 37
Các ràng buộc để bắt tính
toàn vẹn trên miền
n
n
n
n
Gán giá trị Default
n Giá trị điền mặc định trên cột trong trường hợp
người sử dụng không nhập
Ràng buộc khoá ngoại
n Điều khiển dữ liệu liên kết với khoá chính trong
bảng cha và khoá ngoại được lưu trữ trong bảng
con
Ràng buộc Check
n Giới hạn các giá trị trong cột.
Ràng buộc Not Null
n Không cho phép giá trị rỗng trong cột.
Concepts of RDBMS and SQL Server 2000/Session 4/ 32 of 37
Ràng buộc Default
Nó được sử dụng với một cột của bảng
khi:
n
Không có giá trị nhập vào
n
Không cho phép giá trị rỗng
Concepts of RDBMS and SQL Server 2000/Session 4/ 33 of 37
11
Ràng buộc khoá ngoại
Concepts of RDBMS and SQL Server 2000/Session 4/ 34 of 37
Ràng buộc Check
Kiểm tra sự tồn tại của
một giá trị cụ thể trong
cột
Ví dụ
n Bắt đầu với “A”
n Kết thúc là một
số
n Không chứa ký
hiệu “$”
Concepts of RDBMS and SQL Server 2000/Session 4/ 35 of 37
Thêm ràng buộc trong khi
tạo bảng
Concepts of RDBMS and SQL Server 2000/Session 4/ 36 of 37
12
Thêm ràng buộc vào một
bảng đã tồn tại
Concepts of RDBMS and SQL Server 2000/Session 4/ 37 of 37
13