SQL Server Bài 4 Concepts of RDBMS and SQL Server 2000 /Session 4/ 2 of 37 Mục tiêu của chương n Tìm hiểu từng bước để tạo lập CSDL n Tìm hiểu các kiểu dữ liệu khác nhau trong SQL Serve
Trang 1SQL Server Bài 4
Concepts of RDBMS and SQL Server 2000 /Session 4/ 2 of 37
Mục tiêu của chương
n Tìm hiểu từng bước để tạo lập CSDL
n Tìm hiểu các kiểu dữ liệu khác nhau trong SQL
Server
n Đị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
n 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
n 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
CSDL và bảng
Chi tiết
về chuyến bay
Hành khách chỗ đặt trước
CSDL quản lý
đặt vé máy bay
Trang 2Concepts of RDBMS and SQL Server 2000 /Session 4/ 4 of 37
Thiết kế các bảng
trong SQL Server
n Các bảng cần thiết
n Kiểu dữ liệu trong mỗi
bảng
n Giới hạn trên dữ liệu
n Khoá
n Giá trị mặc định
n chỉ mục
n 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/ 5 of 37
Các đặc điểm của sự chuẩn
hoá CSDL
Khi nào chúng ta
cần chuẩn hoá??
Trang 3Concepts 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 T-SQL
Concepts of RDBMS and SQL Server 2000 /Session 4/ 8 of 37
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.
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
Trang 4Concepts of RDBMS and SQL Server 2000/Session 4/ 10 of 37
Kiểu dữ liệu
Binary, varbinary, Numeric, Decimal, float, real
Concepts of RDBMS and SQL Server 2000/Session 4/ 11 of 37
Các kiểu dữ liệu của hệ thống
Tính toàn vẹn dữ liệu (1)
Toàn vẹn dữliệu
Trang 5Concepts of RDBMS and SQL Server 2000/Session 4/ 13 of 37
Tính toàn vẹn dữ liệu (2)
Ràng buộc
dữ liệu
Ràng buộc tham chiếu
Ràng buộc người dùng định nghĩa Ràng buộc miền
Ràng buộc
Thực thể
Concepts of RDBMS and SQL Server 2000/Session 4/ 14 of 37
Toàn vẹn thực thể
Toàn vẹn miền
Trang 6Concepts of RDBMS and SQL Server 2000/Session 4/ 16 of 37
Toàn vẹn tham chiếu
Concepts of RDBMS and SQL Server 2000/Session 4/ 17 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á
Bản ghi
If item
Not Found
in Parent Thêm
Parent
If Child results
in Orphan Records
Xoá
Các công cụ thực hiện toàn
vẹn dữ liệu
Trang 7Concepts of RDBMS and SQL Server 2000/Session 4/ 19 of 37
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 Ràng buộc khoá chính
n Ràng buộc duy nhất
n Thuộc tính định danh
Concepts of RDBMS and SQL Server 2000/Session 4/ 20 of 37
Xác định khoá chính
Khoá dự tuyển
Employee No Employee Name Social Security No Grade
E001 John K3450 A
E002 Smith H7832 B
E003 Mary I56741 A
E004 Lisa J45322 C
Employee Table
Khoá dự tuyển Khoá dự tuyển
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 Tối thiểu
n Ổn định
Trang 8Concepts of RDBMS and SQL Server 2000/Session 4/ 22 of 37
đị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/ 23 of 37
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
Ràng buộc duy nhất
n Một cột hoặc một tổ hợp các cột không
phải là khoá chính.
n 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.
n Một cột cho phép các giá trị Null.
n 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.
Trang 9Concepts of RDBMS and SQL Server 2000/Session 4/ 25 of 37
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 :
V í dụ :
CREATE TABLE Reservation_Copy (PNR_NO INT
IDENTITY(1,1))
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 Enterprise Manager
ALTER TABLE <Table_Name> [ALTER
COLUMN <Column_name> <New_data
_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.
Trang 10Concepts of RDBMS and SQL Server 2000/Session 4/ 28 of 37
Concepts of RDBMS and SQL Server 2000/Session 4/ 29 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
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.
Trang 11Concepts of RDBMS and SQL Server 2000/Session 4/ 31 of 37
Các ràng buộc
Concepts of RDBMS and SQL Server 2000/Session 4/ 32 of 37
toàn vẹn trên miề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
n 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
n Ràng buộc Check
n Giới hạn các giá trị trong cột.
n Ràng buộc Not Null
n Không cho phép giá trị rỗng trong cột.
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
Trang 12Concepts of RDBMS and SQL Server 2000/Session 4/ 34 of 37
Ràng buộc khoá ngoại
Concepts of RDBMS and SQL Server 2000/Session 4/ 35 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 “$”
tạo bảng
Trang 13Concepts of RDBMS and SQL Server 2000/Session 4/ 37 of 37
bảng đã tồn tại