Tải bản đầy đủ (.pdf) (13 trang)

bài giảng truy vấn cơ sở dữ liệu Bài 4

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.62 MB, 13 trang )

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




×