Tải bản đầy đủ (.ppt) (47 trang)

Chương 3 Thiết kế bảng

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.95 MB, 47 trang )

Chương 3
1

Nhận biết được các đối tượng trong 1
CSDL của SQL Server.

Chọn kiểu dữ liệu SQL Server thích
hợp cho yêu cầu lưu trữ dữ liệu, và tạo
kiểu dữ liệu theo nhu cầu người dùng

Tạo và quản lý các bảng CSDL.

Tạo và quản lý các ràng buộc
(constraint)
2

Table

Data type

Default

Rule

Constraint

Index

View

Stored procedure



User-defined function

Trigger
3
4
5
Mở Folder chưa đối
tương cần xem

binary[(n)]

varbinary[(n)]

bit

decimal[(p[,s])]

real

float[(n)]

bigint

int

smallint

tinyint


numeric [(p[,s])]

money

smallmoney

char[(n)]
6

nchar[(n)]

varchar[(n)]

nvarchar[(n)]

datetime

smalldatetime

cursor

table

sysname

timestamp

uniqueidentifier

image


text

ntext

sql_variant

Giá trị NULL dùng để chỉ các giá trị chưa biết, không
thể dùng được, hay sẽ được bổ sung sau. Nó khác với
giá trị rỗng (empty) hay zero. Hai giá trị null không
được xem là bằng nhau. Khi so sánh hai giá trị null,
hay 1 giá trị null với 1 giá trị khác thì kết quả trả về sẽ
là unknown.

Ví dụ: số phone của khách hàng hiện tại chưa có,
nhưng có thể sẽ được bổ sung này. Số phone sẽ có giá
trị là null.

Để kiểm tra giá trị null trong lệnh truy vấn, phải dùng
toán tử IS NULL hay IS NOT NULL trong mệnh đề
WHERE.

Mặc định các cột hay kiểu dữ liệu của người dùng
thường không có gía trị NULL.
7

Tạo kiểu dữ liệu người dùng là để bảo đảm tính
thống nhất của dữ liệu (data consistency) khi mà
nhiều bảng phải lưu trữ cùng 1 loại dữ liệu trong
1 cột


Kiểu dữ liệu của người dùng được tạo dựa vào
các kiểu dữ liệu hệ thống.

Chỉ có tác dụng trong CSDL mà nó được tạo ra
ngoại trừ trường hợp nó được tạo ra trong CSDL
hệ thống model.
8

Dùng lệnh để tạo:
sp_addtype type_name, system_data_type
[,'NULL'|'NOT NULL']
Ví dụ:
sp_addtype stateab,‘char(2)’,’NOT NULL’

Dùng lệnh để xoá:
sp_droptype type_name
9
continued
10
Dùng Enterprise Manager để tạo
Nhấp phải tại folder
User Defined Data Type,
chọn lệnh
New User Defined Data Type

Bảng là một đối tượng của CSDL được dùng
để lưu trữ dữ liệu.

Dữ liệu trong bảng được tổ chức thành các hàng

(rows) và cột (columns).

Mỗi hàng trong bảng biểu diễn một bản ghi (record) duy
nhất. Mỗi cột biểu diễn một thuộc tính (attribute).

Tên cột trong 1 bảng không được trùng nhau nhưng cho
phép tên cột có thể trùng nhau trong những bảng khác
nhau của cùng 1 CSDL.

SQL Server cho phép:

Tối đa 2 triệu bảng trong 1 CSDL.

Tối đa 1024 cột trong 1 bảng

Tối đa 8060 bytes trong 1 hàng
11

Phải có quyền tạo và thay đổi cấu trúc
bảng, nếu không sẽ sinh ra lỗi.

Tên bảng phải là từ định danh hợp lệ.

Với phiên bản SQL Server 6.5 hoặc các
phiên bản trước nữa thì sẽ không thay đổi
được kiểu dữ liệu cột hoặc thêm cột cho
một bảng dữ liệu.
12
continued


Không thể thay đổi dữ liệu cột hoặc huỷ
cột mà có tham chiếu chỉ mục.

Không thể xóa 1 bảng nếu có bất kỳ phụ
thuộc giữa bảng đó với các đối tượng khác
của SQL Server.
13
continued
CREATE TABLE
[ database_name.[ owner ] .|owner.] table_name
({ < column_definition >
|column_name AS computed_column_expression
| < table_constraint > ::= [ CONSTRAINT
constraint_name ] }
[ , n ]
)
[ ON { filegroup | DEFAULT } ]
[ TEXTIMAGE_ON { filegroup | DEFAULT } ]
14
< column_definition > ::=
{ column_name data_type }
[ [ DEFAULT constant_expression ]
| [ IDENTITY [ ( seed , increment ) ] ]
]
[ < column_constraint > ] [ n ]
15

Cú pháp:
column_name AS computed_column_expression


Là một cột ảo không được lưu trữ vật lý trong bảng.
Nó được tính toán dựa vào các cột khác trong cùng
bảng thông qua 1 biểu thức.
Ví dụ : cost AS price * qty.

Có thể được dùng trong mệnh đề SELECT, WHERE,
hay ORDER BY

Không thể dùng trong lệnh INSERT hay UPDATE

Có thể được dùng như giá trị khóa trong chỉ mục hay
1 phần của các ràng buộc PRIMARY KEY hay UNIQUE
nếu gía trị của nó được định nghĩa bởi 1 biêu thức
xác định và kiểu dữ liệu của giá trị trả về hợp lệ.
Ví dụ: Cột tính toán a+b có thể được dùng làm chỉ mục nhưng
a+DATEPART(dd, GETDATE()) không thể dùng làm chỉ mục
16
CREATE TABLE cthoadon
( sohd int NOT NULL,
MaHang char(4) NOT NULL,
SoLuong int NOT NULL,
DonGia money,
ThanhTien AS SoLuong*DonGia
)
17

Tạo giá trị gia tăng duy nhất cho 1 cột, và cột
này thường được dùng khoá chính cho
bảng. Giá trị được gán thường là các kiểu dữ
liệu sau: tinyint, smallint, int, bigint,

decimal(p,0), hay numeric(p,0).

Trong mỗi bảng chỉ cho phép 1 cột là identity
mà thôi.

Seed: là giá trị đầu tiên được tạo.

Increment:là bước tăng để tạo ra giá trị kế tiếp.

Giá trị mặc định thường là (1,1).
18
CREATE TABLE jobs
(
job_id smallint IDENTITY(1,1) ,
job_desc varchar(50) NOT NULL
)
19

Để bảo đảm chất lượng (quality) của dữ
liệu trong 1 CSDL.

Có 4 loại:

Domain integrity (bảo toàn miền)

Entity integrity (bảo toàn thực thể)

Referential integrity (bảo toàn tham chiếu)

User-defined integrity (bảo toàn do người

dùng quy định)
20

Domain integrity — xét tính hợp lệ (validity)
của dữ liệu khi nhập vào 1 cột của bảng

Có thể được thực hiện bằng cách:

Kiểu dữ liệu

Ví dụ: trường Ho_Ten phải là kiểu dữ liệu char

Định dạng cột

Ví dụ: trường phone phải có dạng ‘0914-071569’

Dãy giá trị cho phép :

Ví dụ: trường tuổi chỉ trong khoảng 1-100, trường
lương trong khoảng từ 0-10.000.000
21

Entity integrity — xác định mỗi hàng như 1 thực thể duy
nhất trong bảng

Referential integrity — bảo toàn mối quan hệ giữa hai
bảng, bảo đảm các giá trị khoá được thống nhất giữa các
bảng có quan hệ nhau. Không có tham chiếu khi không tồn
tại giá trị khoá trong bảng chính, và nếu giá trị khoá thay đổi
thì tất cả các tham chiếu đến nó cũng thay đổi thống nhất

theo. Khi áp dụng quy luật bảo toàn tham chiếu, người
dùng không thể:

Thêm các bản ghi vào bảng được quan hệ (related table) nếu không
có bản ghi tương ứng trong bảng chính (primary table).

Thay đổi giá trị trong bảng chính làm cho các bản ghi trong bảng
được quan hệ bị mất mối liên kết ( orphaned record)

Xoá các bản ghi trong bảng chính nếu tồn tại 1 số bản ghi trong
bảng được quan hệ.
22

SQL server 2000 hỗ trợ các loại constraint sau :

Default

Check

Unique

Primary key

Foreign key

Các ràng buộc dùng để bảo đảm các giá trị của
dữ liệu không vi phạm quy luật bảo toàn dữ liệu
23
Domain integrity
Entity integrity

Referential integrity

Cú pháp: DEFAULT constant_expression

Default dùng để xác định giá trị “sẵn trước” được
gán cho 1 cột khi thêm 1 bản ghi mới vào bảng.

DEFAULT có thể áp dụng cho bất kỳ cột nào trong
bảng ngoại trừ cột có kiểu timestamp hay có thuộc
tính IDENTITY.

constant_expression: chỉ có giá trị hằng như chuỗi
ký tự, hàm hệ thống, hay giá trị NULL.
24
CREATE TABLE jobs
(
job_id smallint IDENTITY(1,1) ,
job_desc varchar(50) NOT NULL
DEFAULT 'New Position - title not formalized
yet'
)
25

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×