Professional Documents
Culture Documents
Thiet Ke CSDL Chuong
Thiet Ke CSDL Chuong
C
C
u
u
tr
tr
c
c
lu
lu
tr
tr
c
c
a
a
m
m
t
t
CSDL :
CSDL :
M M t t CSDL CSDL trong trong SQL Server SQL Server t t i i
thi
thi
u
u
s
s
d
d
ng
ng
hai
hai
t
t
p
p
tin
tin
v
v
t
t
l
l
lu lu tr tr d d li li u u: :
M M t t d d ng ng lu lu tr tr d d li li u u
(Data file)
(Data file)
M M t t d d ng ng lu lu tr tr c c c c v v t t
giao giao t t c c (Transaction log file) (Transaction log file)
48 of 100
Xay dng mot CSDL trong SQL Server
Thng c t chc lu tr trong
3 tp tin :
Thng c t chc lu tr trong
3 tp tin :
CSDL
Primary
DataFile
(*.MDF)
Secondary
Data Fie
(*.NDF)
Log file
(*.LDF)
Data Files
Log Files
49 of 100
Xay dng mot CSDL trong SQL Server
To mi mt CSDL
trong SQL Server
Cch 1: S dng
tin ch
EnterPriseMana
ger :Click chuc
phi vo i
tng Databases
chn New
Database
To mi mt CSDL
trong SQL Server
Cch 1: S dng
tin ch
EnterPriseMana
ger :Click chuc
phi vo i
tng Databases
chn New
Database
50 of 100
Xay dng mot CSDL trong SQL Server
Xut hin hp thoi :
Nhp tn
CSDL
51 of 100
Xay dng mot CSDL trong SQL Server
Chn Tab Data Files:
Filename :Tn tp tin Data Files
Location: V tr lu tr
Initial size(Mb) :Kch thc ban
u
Automatically grow file: T ng
tng kch thc
In megabytes : tng bao nhiu
mB
By percent :Tng theo phn trm
Maximun file size : kch thc ti
a
ca CSDL
Unrestricted file growth :Khng
gii hn kch thc
Restrict file growth(MB) :gii
hn
Tng t cho Transaction Log
52 of 100
Chng II: Xay dng mot CSDL trong SQL Server
To CSDL bng cch vit lnh trong Query
Enalyzer
CREATE DATABASE QLBANHANG
ON PRIMARY
( NAME= QLBANHANG_DATA,
FILENAME=C:\MSSQL\DATA\ QLBANHANG_DATA.MDF,
SIZE=50MB,
MAXSIZE=200MB,
FILEGROWTH=10%)
LOG ON
(
NAME= QLBANHANG_LOG,
FILENAME=C:\MSSQL\DATA\ QLBANHANG_LOG.LDF,
SIZE=10MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=5MB
)
53 of 100
Chng II: Xay dng mot CSDL trong SQL Server
Cc kiu d liu trong SQL Server
t -3.40E+38 n +3.40E+38 4
bytes
Real
t -1.79E+308 n +1.79E+308 8
bytes
Float
> Cc kiu d liu dng s thc
t -10
^38
n +10
^38
17byt
es
Decimal,
Numeric
> Cc kiu d liu dng s thp phn
0, 1 hoc Null 1 byte Bit
t 0 n 255 1 byte TinyInt
t -32768 n +32767 2
bytes
SmallInt
t-2,147,483,648n
+2,147,483,647
4
bytes
Int
> Cc kiu d liu dng s nguyn
Min gi tr d liu lu tr Kch
thc
Kiu d liu
54 of 100
Chng II: Xay dng mot CSDL trong SQL Server
Cc kiu d liu trong SQL Server
t 1 n 1,073,741,823 k t, mi
k t l 2 bytes
2*N
bytes
NText
t 1 n 4000 k t, mi k t l 2
bytes
2*N
bytes
NVarCh
ar
t 1 n 4000 k t, mi k t l 2
bytes
2*N
bytes
NChar
> Cc kiu d liu dng chui dng font ch Unicode
t 1 n 2,147,483,647 k t,
mi k t l 1 byte
N bytes Text
t 1 n 8000 k t, mi k t l
1 byte
N bytes VarChar
> Cc kiu d liu dng chui c di bin i
t 1 n 8000 k t, mi k t l
mt byte
N bytes Char
> Cc kiu d liu dng chui c di c nh
55 of 100
Xay dng mot CSDL trong SQL Server
Cc kiu d liu trong SQL Server
t 1 n 2,147,483,647
bytes
N bytes Image
t 1 n 8000 bytes N bytes VarBinary
t 1 n 8000 bytes N bytes Binary
> Cc kiu d liu dng chui nh phn (Binary String)
t01/01/1900n06/06/20
79
4
bytes
SmallDateTime
t01/01/1753n31/12/99
99
8
bytes
DateTime
> Cc kiu d liu dng ngy v gi
t -214,748.3648 n +
214,748.3647
4 bytes SmallMoney
t -922,337,203,685,477.5808 n
+922,337,203,685,477.5807
8 bytes Money
> Cc kiu d liu dng tin t
56 of 100
Chng II: Xay dng mot CSDL trong SQL Server
Cc thuc tnh c bn ca Mt
Bng
Tn bng (Table Name) di<=
128 k t. Tn bng phi duy nht
bn trong phmvi ca ngi
to ra n trong mt CSDL
Tn ct (Column Name): l tn
ca cc ct bn trong bng, tn ca
cc ct bn trong bng phi duy
nht.
Kiu d liu (Data Type):qui nh
57 of 100
Chng II: Xay dng mot CSDL trong SQL Server
di d liu (Data Length): dng qui
nh di d liu m ct s lu tr i vi
cc kiu d liu dng chui, s.
S k s lu tr (Precision): l s k s ti
a m cc kiu d liu dng s c th lu
tr c.
S l lu tr (Scale): l s l ti a m cc
kiu d liu dng s thp phn dng lu
tr.
58 of 100
Chng II: Xay dng mot CSDL trong SQL Server
Ct nh danh (Identity): Gi tr
ca ct nh danh l s nguyn
khng trng lp do h thng
Microsoft SQL Server t ng
cp pht.
Cc kiu d liu ca ct nh
danh : Int, SmallInt, TinyInt,
Decimal , Numeric
Thuc tnh Identity Seed :S
u tin
Thuc tnh Identity
59 of 100
Chng II: Xay dng mot CSDL trong SQL Server
Cho php trng d liu
(Allow Null): qui nh d liu c
th c php trng hay l
phi nhp
Gi tr mc nh (Default
Value): l gi tr mc nhin s
c gn vo ct d liu khi
ngi s dng thm mi mt mu
tin nhng li trng gi tr ti
ct d liu .
60 of 100
Chng II: Xay dng mot CSDL trong SQL Server
To Bng trong Sql Server
Cch 1: S dng tin ch
Enterprise Manager
M CSDL Click
chut phi trn i
tng Tables, chn
chc nng New
Table... trong thc
n tt.
61 of 100
Chng II: Xay dng mot CSDL trong SQL Server
Mn hnh sau xut hin :
Nhp tn bng,nhp OK
Mn hnh thit k bng xut
hin :nhp thng tin v chn ct
lmkho chnh
62 of 100
Chng II: Xay dng mot CSDL trong SQL Server
To bng bng lnh trong mn hnh Query Elyzer
To cu trc bng n gin
C php:
CREATE TABLE Tn_bng
(
Tn_ct_1 Kiu_d_liu [NOT NULL] ,
Tn_ct_2 Kiu_d_liu [NOT NULL] [ , ...]
)
Trong :
+ Tn bng, tn ct v kiu d liu c m t trn
+ T kha NOT NULL ch nh khng cho php d liu
ti ct c php b trng.
63 of 100
Chng II: Xay dng mot CSDL trong SQL Server
To bng bng lnh trong mn hnh Query Elyzer
To cu trc bng c gi tr mc nh
C php:
CREATE TABLE Tn_bng
(
Tn_ct_1 Kiu_d_liu DEFAULT Gi_tr|Hm ,
Tn_ct_2 Kiu_d_liu [NOT NULL] [ ,...]
)
Trong :
+ Gi tr: l gi tr c th s c gn vo ct.
+ Hm: l tn hm cng vi cc thams (nu c), tuy
nhin kiu d liu m hmtr v phi l cng vi kiu d
liu m ct s lu tr.
64 of 100
Chng II: Xay dng mot CSDL trong SQL Server
To bng bng lnh trong mn hnh Query Elyzer
V d 1
CREATE TABLE VATTU
(
MAVTU CHAR(4) NOT NULL,
TENVTU VARCHAR(100) NOT NULL,
DVTINH VARCHAR(10) NOT NULL,
PHANTRAM REAL DEFAULT 20
)
V d 2
CREATE TABLE DONDH
(
SODH CHAR(4) NOT NULL,
NGAYDH DATETIME DEFAULT GETDATE(),
MANHACC CHAR(3) NOT NULL
)
65 of 100
Chng II: Xay dng mot CSDL trong SQL Server
To cu trc bng c ct nh danh
C php:
CREATE TABLE Tn_bng
(
Tn_ct_1 Kiu_d_liu_s IDENTITY [(S_bt_u,
Ch_s_tng)] ,
Tn_ct_2 Kiu_d_liu [NOT NULL] [ ,...]
)
Trong mt bng ch c ti a mt ct c ch nh lm
ct nh danh.
S bt u: l s m SQL Server s dng cp pht cho
mu tin u tin. Mc nh l 1.
Ch s tng: l ch s m SQL Server cng ln cp pht
cho tng mu tin kt tip. Mc nh l 1.
66 of 100
Chng II: Xay dng mot CSDL trong SQL Server
Tnh ton vn d liu trong c s d liu : cc rng buc trong SQL
Server c qun l bI hai I tng :CONSTRAINT v TRIGGER
Constraint : qun l cc rng buc nh :
Rng buc d liu duy nht
Rng buc d liu tn ti
Rng buc min gi tr
Trigger :Qun l cc rng buc phc tp,lin quan n d liu trn
nhiu bng
67 of 100
Chng II: Xay dng mot CSDL trong SQL Server
Xy dng cc Constraint
A>Kimtra duy nht d liu :c hai loi
Primary Key (kho chnh ) :d liu khc
rng v duy nht
Unique : d liu c th rng v d liu
tn ti duy nht
68 of 100
Chng II: Xay dng mot CSDL trong SQL Server
nh ngha rng buc kho chnh :
CREATE TABLE Tn_bng
(
Tn_ct_1 Kiu_d_liu DEFAULT Gi_tr|Hm
,
Tn_ct_2 Kiu_d_liu [NOT NULL] [ ,...]
[CONSTRAINT PK_Tn_bng_TenCot
] PRIMARY
KEY (Danh_sch_ct_kha_chnh)
)
69 of 100
Chng II: Xay dng mot CSDL trong SQL Server
nh ngha rng buc d liu duy nht :
CREATE TABLE Tn_bng
(
Tn_ct_1 Kiu_d_liu DEFAULT Gi_tr|Hm
,
Tn_ct_2 Kiu_d_liu [NOT NULL] [ ,...]
[CONSTRAINT
UQ_Tn_bng_Tn_ct]
UNIQUE (Danh_sch_cc_ct)
)
Trong mt bng ch nh ngha mt rng
buc kho chnh nhng c th nh ngha
nhiu rng buc d liu duy nht
70 of 100
Xay dng mot CSDL trong SQL Server
V d :
CREATE TABLE VATTU
(
MAVTU varchar(4) not null,
TenVtu varchar(100),
Constraint PK_Vattu_Mavtu_tenvtu primary
key(Mavtu,tenvtu),
constraint UQ_Vattu_tenvtu unique(tenvtu)
)
71 of 100
Xay dng mot CSDL trong SQL Server
B>Kimtra tn ti D liu :nh ngha kho ngoi
CREATE TABLE Tn_bng
(
Tn_ct_1 Kiu_d_liu DEFAULT Gi_tr|Hm
,
Tn_ct_2 Kiu_d_liu [NOT NULL] [ ,...]
[CONSTRAINT
FK_Tn_bng_Tn_ct]
FOREIGN KEY
(Danh_sch_ct_kha_ngoi)
REFERENCES Tn_bng_tham_chiu
(Danh_sch_ct_tham_chiu)
)
Trong mt bng c th nh ngha nhiu kho ngoi
72 of 100
Chng II: Xay dng mot CSDL trong SQL Server
B>V d :
CREATE TABLE CTHOADON
(
SOHD Varchar(3) not null ,
MAVTU Varchar(3) not null,
Soluong int,
Dongia float,
CONSTRAINT FK_CTHOADON_SOHD
FOREIGN KEY (SOHD)
REFERENCES HOADON(SOHD),
CONSTRAINT FK_CTHOADON_MAVTU
FOREIGN KEY (MAVTU)
REFERENCES VATTU(MAVTU)
)
73 of 100
Xay dng mot CSDL trong SQL Server
C>Kimtra rng buc min gi tr :
C php :
CREATE TABLE Tn_bng
(
Tn_ct_1 Kiu_d_liu DEFAULT Gi_tr|Hm
,
Tn_ct_2 Kiu_d_liu [NOT NULL] [ ,...]
[CONSTRAINT
CK_Tn_bng_Tn_ct]
CHECK (Biu_thc_lun_l)
)
74 of 100
Xay dng mot CSDL trong SQL Server
B>V d :
CREATE TABLE CTHOADON
(
SOHD Varchar(3) not null ,
MAVTU Varchar(3) not null,
Soluong int,
Dongia float,
CONSTRAINT
CK_CTHOADON_SOLUONG
CHECK (Soluong>0),
CONSTRAINT CK_CTHOADON_DonGia
CHECK (Dongia>0)
)
75 of 100
Xay dng mot CSDL trong SQL Server
B>Thm Costraint vo bng c
C php chung:
ALTER TABLE Tn_bng
ADD [ CONSTRAINT Tn_Constraint ]
LOI Cc_tham_s [ , ...]
76 of 100
Xay dng mot CSDL trong SQL Server
C php chi tit tng loi constraint
PRIMARY KEY
ALTER TABLE Tn_bng
ADD [ CONSTRAINT PK_Tn_bng ]
PRIMARY KEY (Danh_sch_ct_kha_chnh)
77 of 100
Xay dng mot CSDL trong SQL Server
UNIQUE
ALTER TABLE Tn_bng ADD [ CONSTRAINT
UQ_Tn_bng_Tn_ct ]
UNIQUE (Danh_sch_cc_ct)
78 of 100
Xay dng mot CSDL trong SQL Server
FOREIGN KEY
ALTER TABLE Tn_bng
ADD [ CONSTRAINT FK_Tn_bng_Tn_ct ]
FOREIGN KEY (Danh_sch_ct_kha_ngoi)
REFERENCES Tn_Bng
(Danh_sch_ct_tham_chiu)
79 of 100
Xay dng mot CSDL trong SQL Server
Kim tra min gi tr :
ALTER TABLE Tn_bng
ADD [ CONSTRAINT CK_Tn_bng_Tn_ct ]
CHECK (Biu_thc_lun_l)
80 of 100
Xay dng mot CSDL trong SQL Server
Thm gi tr mc nh :
ALTER TABLE Tn_bng
ADD [ CONSTRAINT DF_Tn_bng_Tn_ct ]
DEFAULT Gi_tr_mc_nh FOR Tn_ct
81 of 100
Xay dng mot CSDL trong SQL Server
Hy mt Constraint :
ALTER TABLE Tn_bng
DROP CONSTRAINT Tn_constraint [ , ...]
Tt cc Constraint :
ALTER TABLE Tn_bng
NOCHECK CONSTRAINT ALL| Tn_constraint [
, ...]
Bt cc Constraint :
ALTER TABLE Tn_bng
CHECK CONSTRAINT ALL| Tn_constraint [ ,
...]
82 of 100
Xay dng mot CSDL trong SQL Server
Xa cu trc bng
DROP TABLE Danh_sch_tn_cc_bng
Thay i cu trc bng
a. Thm mt ct mi trong bng
ALTER TABLE Tn_bng
ADD Tn_ct Kiu_d_liu [ , ... ]
b. Hy b ct hin c bn trong bng
ALTER TABLE Tn_bng
DROP COLUMN Tn_ct [ , ...]
83 of 100
Xay dng mot CSDL trong SQL Server
Sa i kiu d liu ca ct
ALTER TABLE Tn_bng
ALTER COLUMN Tn_ct Kiu_d_liu_mi
i tn ct
EXEC SP_Rename
Tn_bng.Tn_ct,Tn_mi,COLUMN
i tn bng
EXEC sp_rename Tn_bng,Tn_mi
Ch :Mun thay i cu trc ca ct phi xo tt c cc Constraint lin
quan
84 of 100
BI 3: BNG o(view)
1>nh Ngha :
Bng o l mt i tng cha cu lnh Select ly
d liu
T cc bng trong csdl
Khi truy cp vo CSLD ,ngi s dng khng phn
bit c Bng o v Bng Tht
2> To View
Create view Ten_view
As
Cu lnh Select
85 of 100
Cu trc cu lnh Select
2>Cu trc cu lnh Select
Select[Ten_Bang.]Ten_Cot[,]
From Ten_Bang1 <Lin kt > Ten_Bang2
Where <iu kin>
Group by <cc ct gomnhm>
HaVing <iu kin lc nhm>
Order by [Ten_Bang.]Ten_cot [asc/desc,]
Compute Hmthng k [By Ten_cot]
86 of 100
Cu trc cu lnh Select
Mnh Select :cha cc ct,cc hm mun hin th
Nu ct tn ti trong hai bng trong mnh From ta phi ghi r
:Tn_Bng.Tn_Ct
Trong mnh Select ta c th dng cu trc lnh
Case
When iu kin 1 Then Gi tr 1
When iu kin 2 then Gi tr 2
Else
Gi tri n
End
hin th d liu
Mnh from : cho bit d liu trn cu truy vn c ly t cc bng
no
nu d liu ly t nhiu bng th cc bng ny phi c quan h vi
nhau:
C php :
87 of 100
Cu trc cu lnh Select
Mnh Where : mnh lc d liu tr v hoc gomnhm
Trong mnh Where c th s dng cc ton t :
Like tm chui gn ng
% Thay th 1 chui
_(Gch di) thay th 1 k t
Ton t BETWEEN Gt1 AND GT2
Inner
Left
Right
full
Join Bng 2 on Bng 1.tn ct= bng 2.tn
ct
Bng 1
88 of 100
Cu trc cu lnh Select
Mnh Group by : mnh gomnhmd liu
Mnh ny phi c khi trong cu truy vn c s
dng hm thng k v trn mnh Select c ly
cc gi tr khng s dng hm thng k
C php : Group By Danh sch ct,Biu thc
Vi Danh sch ct,Biu thc :c ly trn mnh
Select khng s dng hm thng k
Cc Hmthng k:
Sum(Ten_Cot) :tnh tng vi ct c kiu s
Count(Ten_Cot/*) :tnh tng s dng
AVG(Ten_Cot) :tnh gi tr trung bnh
Max(Ten_cot) : gi tr ln nht
Min(Ten_Cot) :gi tr nh nht)
89 of 100
Cu trc cu lnh Select
Mnh HaVing : mnh Lc nhmd liu
Mnh ny ch tn ti khi trong cu truy vn c mnh
Group By v iu kin lc d liu c hm thng k
Ch : trong cu truy vn c hai mnh lc d liu l
Where v havinh
Where :lc d liu to nhm( c iu kin khng s dng
hmthng k)
Having :lc nhm( cc iu kin c thng k)
Mnh OrDer By : Mnh sp xp d liu
C php Order by [Ten_bang.]Ten_Cot [asc/Desc] [,]
Mnh Compute /Compute .. By : l mnh to gi tr
thng k cui kt qu hoc thng k theo ct
C php
Compute Hm thng k : to thng k cui kt qu
Compute Hm thng k By [Ten_Bang.]Ten_cot :thng
k theo ct,d liu phi c sp xp theo ct ny
90 of 100
Cu trc cu lnh Select
Cc ton t dng trn mnh Select
C php : Select Ton t
Vi cc ton t :
Distict : loi b cc dng d liu trng
Top n : ly n dng u tin
Top n with ties : ly nhng dng thuc n cp u tin
Top n PERCENT : ly N % dng u tin
91 of 100
Cu trc cu lnh InSert into
Insert into : dng thm d liu vo bng,c 2
dng
Thmmt dng
C php : Inser into
Ten_bang(Ten_cot1,Ten_cot2[,])
Values(Gia_Tri1,)
vi gi tr :
kiu chui : nm trong hai du v d Trn thanh nht
Kiu Ngy : yyyy-mm-dd v d :1982-02-29
Thmnhiu dng
C php : Inser into
Ten_bang_Dich(Ten_cot1,Ten_cot2[,])
Select Ten_bang_nguon.ten_cot ,
from
92 of 100
Cu trc cu lnh UpDate
UpDate : dng cp nht d liu ca mt bng
D liu Update ch trn mt Bng :
C php :
UpDate Ten_Bang
Set Ten_Cot= Gi tr/Biu thc
[Where iu kin]
D liu Update trn nhiu Bng :
C php :
UpDate Ten_Bang
Set Ten_Cot= Gi tr/Biu thc
From
[Where iu kin]
Ch : d liu cp nht c th l mt gi tr thng k tr v t
cu truy vn con
C th dng cu trc Case trong lnh cp nht
Trong cu truy vn update khng s dng hm thng k
93 of 100
Cu trc cu lnh Delete
Delete : dng xa d liu ca mt bng
D liu xa ch trn mt Bng :
C php :
delete Ten_Bang
[Where iu kin]
D liu delete trn nhiu Bng :
C php :
delete Ten_Bang
From
[Where iu kin]
Ch : khi xa d liu trn bng quan h 1 m d liu
ny c bn bng quan h nhiu -> c li
94 of 100
Cu trc cu lnh Select .. into
Select .. into : dng to mt bng c cu trc v
d liu ly t cc bng c trong CSDL
C php :
Select [Ten_Bang.]tenCot [,]
From ..
95 of 100
Cu truy vn Con (Sub Query)
Sub Query :l cu truy vn m kt qu tr v l
iu kin so snh,gn gi tr cho cu truy vn
khc
t im :
Ch tr v 1 ct d liu
Nu tr v 1 dng : iu kin so snh gia cu truy vn
chnh v cu truy vn con l cc ton t
:=,>,<,<>,>=,<=
Nu tr v nhiu dng : iu kin so sch : in (nm
trong) hoc Not in(khng nm trong)
96 of 100
Bi 4: Lp trnh vi SQL SerVer
I>Bin v cc cu trc lnh trong SQL Server
A>Bin :
1> Bin cc b : l bin do ngi lp trnh khai bo,Bin c
th c khai bo trong th tc ni ti,hm, trong mt l
lnh
L Lnh : l tp hp cc lnh c kt thc bng t Go
C php khai bo bin : Declare @Tn_Bin
Kiu_D_Liu
Tn Bin :Lun bt u bng k t @,khng c khong trng,k t
t bit,k t s ng u
Gn gi tr cho bin:
Gn bng 1 gi tr :
Set @tn_bin=gitr/hm
hoc Select @tn_bin=Gitr/hm
Gn bng kt qu tr v ca cu truy vn
Select @tn_Bin=Tnct/Hm..from ..
97 of 100
Bi 4: Lp trnh vi SQL SerVer
1> Bin h thng (t155) : l bin do SQL Server cung
cp,Cho bit trng thi ca h thng,Bin h thng lun
bt u bng hai k t @@,Ch c
Mt s cc bin thng dng
Tr v <>0 nu lnh duyt
CurSor gy li
@@Fetch_Stat
us
Cho bit s dng b tc ng bi
cu truy vn gn nht
@@Rowcount
Cho bit cc lnh trc c li
hay khng,nu c li @@Error
<>0
@@Error
ngha Tn Bin
98 of 100
Bi 4: Lp trnh vi SQL SerVer
B>Cc cu trc lnh
1>lnh iu khin IF .. Else
C php :
If iu kin
Begin
<tp Lnh 1>
end
else
Begin
<tp Lnh 2>
End
- Nu iu kin ng : tp Lnh 1 thc hin, ngc li
tp lnh 2 thc hin
- Nu tp hp lnh 1 ,lnh 2 ch c 1 lnh th khng
cn Begin .. End
99 of 100
Bi 4: Lp trnh vi SQL SerVer
B>Cc cu trc lnh
2>Cu trc lp :While
While Biu thc iu kin
Begin
<Tp lnh>
end
Tp lnh s c thc hin n khi biu thc
iu kin tr v False
-c th dng lnh Break thot khi vng lp
100 of 100
Bi 4: Lp trnh vi SQL SerVer
2>Cc hm c bn trong SQL SerVer
A>Cc hm chuyn i kiu d liu :thng
dng chuyn d liu t s,ngy sang chui
Hm Cast : chuyn mt kiu d liu sang
kiu bt k
C php :Cast(Biu_Thc as Kiu_D
Liu)
V d : Cast (@tong as varchar(10))
Hm CONVERT : chuyn t ngy sang
chui
C php
:Convert(Kiu_d_Liu,Biu_Thc[,nh_
Dng])
V d : Convert(char(10),Getdate(),105)
1
Chng 3: Tng quan qu
trnh thit k CSDL
2
Gii Thiu
3
Cc tiu ch thit k
Tnh uyn chuyn ca cu trc CSDL: d dng
thm, bt, chnh sa trong tng lai
Chi ph lu tr v chi ph truy xut v chi ph cp
nht
Nhu cu ca cc nhm ngi s dng khc nhau
Phm vi ng dng
4
Chu k pht trin mt CSDL
Tri qua cc giai on:
Phn tch nhu cu NSD
Thit K:
Mc quan nim
Mc logic
Mc vt l
Ci t v cp nht d liu ban u
Khai thc
Bo hnh
5
Chu k pht trin mt CSDL
6
Giai on phn tch yu cu ca NSD
Mc tiu: lm vic vi NSD xc nh mt s
thng tin sau:
Mc tiu v yu cu chung v hiu sut ca h
thng.
Cc thng tin cn thit ca CSDL trong h thng
v nh khai thc. (lu thng tin g, chung chung,
chi tit hay ch tham kho)
Khi lng v tn sut truy xut.
Quy nh ca t chc
Yu cu v an ton v phng s c.
7
Giai on phn tch yu cu ca NSD
Cch thc hin:
Xc nh nhng ngi s dng v lp bng u
tin.
Phng vn (interviewing), tho lun (discussion),
lm bi kho st (quiz), theo di cng vic hng
ngy (shadowing)
V s lung d liu Data Flow Diagram (DFD)
c ci nhn tng th.
Xc nh cc nt trng im trong s (CSDL
phi phc v tt cho cc nt trng im.
Lp su liu th hin kt qu phn tch.
8
Giai on phn tch yu cu ca NSD
Xc nh nhng ngi s dng v lp bng u tin
cho csdl qun l kho hng. (bng)
Chn phng php thu thp thng tin thch
hp.(tn phng php)
V s lung d liu Data Flow Diagram (DFD)
v xc nh cc nt trng im trong s cho bi
ton qun l kho.(lc v danh sch nt)
Lp su liu th hin kt qu phn tch.(ti liu
tng hp)
9
Giai on Thit k CSDL
Qua trnh thit k phi thc hin 3 mc:
Mc quan nim.
Mc Logic
Mc vt l.
10
Mc quan nim
Quan tm n ni dung d liu (what)
Chn mt m hnhv din t d liu theo m
hnh .
Input: kt qu ca giai on phn tch v pht
tho cu trc CSDL.
Output: lc CSDL mc quan nim (bo m
lu va thng tin, tt hn v ph hp hn vi
mi trng pht trin ng dng.
11
Mc quan nim
Quan tm n ni dung d liu (what)
Chn mt m hnhv din t d liu theo m
hnh .
Input: kt qu ca giai on phn tch v pht
tho cu trc CSDL.
Output: lc CSDL mc quan nim (bo m
lu va thng tin, tt hn v ph hp hn vi
mi trng pht trin ng dng.
12
Mc logic
Trung gian gia mc quan nim v vt l
Quan tm n nhu cu khai thc
Tn sut truy xut
Cc con ng truy xut
Input: lc mc quan nim v nhu cu khai
thc.
Output: cu trc CSDL ph hp vi ng dng;
th quan h v cc con ng truy xut.
13
Gii Thiu
14
Mc vt l
Ci t trn mt h qun tr CSDL c th
Quan tm n hiu qu v tc x l
Input:
Kt qu thit k quan nim v logic.
Thng tin v h qun tr CSDL.
Output: ci t hon chnh, khai bo kha, rng
buc v thng s h thng.
1
Chng 4: L thuyt m
hnh CSDL quan h
2
1. Gii thiu
M hnh D liu Quan h (Relational Data
Model) da trn khi nim quan h.
Quan h l khi nim ton hc da trn nn
tng hnh thc v l thuyt tp hp.
M hnh ny do TS. E. F. Codd a ra nm
1970.
H S phm TPHCM 2
3
2.1 Thuc tnh (attribute)
Thuc tnh:
Tn gi: dy k t (gi nh)
Kiu d liu: S, Chui, Thi gian, Lun l, OLE.
Min gi trj: tp gi tr m thuc tnh c th nhn. K
hiu min gi tr ca thuc tnh A l Dom(A).
V d:GIOITINH kiu d liu l Chui,min gi tr
Dom(GIOITINH)=(Nam,Nu)
Ti mt thi im, mt thuc tnh khng c gi tr
hoc cha xc nh c gi tr => gi tr Null
H S phm TPHCM 3
4
2.2 Quan h (relation)
nh ngh a: quan h l mt tp hu hn cc
thuc tnh.
K hiu:
Trong Q l tn quan h, l tp cc
thuc tnh ca quan h Q
V d:
HOCVIEN (Mahv, Hoten, Ngsinh, Gioitinh, Noisinh, Malop)
LOP (Malop, Tenlop, Siso, Trglop, Khoa)
H S phm TPHCM 4
) ,..., , (
2 1 n
A A A Q
{ }
n
A A A Q ,..., ,
2 1
=
+
5
2.3 B (tuple)
nh ngh a: B l cc thng tin ca mt i
tng thuc quan h, c gi l mu tin
(record), dng.
Quan h l mt bng (table) vi cc ct l cc
thuc tnh v mi dng c gi l b.
Mt b ca quan h l
vi
V d: HOCVIEN(Mahv, Hoten, Ngsinh, Noisinh)
c q=(1003,Nguyen Van Lam, 1/1/1987,Dong Nai)
ngha l hc vin c m s l 1003, h tn l
Nguyen Van Lam, sinh ngy 1/1/1987 Dong Nai
H S phm TPHCM 5
) ,..., , (
2 1 n
A A A Q ) ,..., , (
2 1 n
a a a q =
) (
i i
A Dom a
6
2.4 Th hin ca quan h
(instance)
nh ngh a: th hin ca mt quan h l tp hp cc
b gi tr ca quan h ti mt thi im.
K hiu: th hin ca quan h Q l T
Q
V d: T
HOCVIEN
l th hin ca quan h HOCVIEN
ti thi im hin ti gm c cc b nh sau:
H S phm TPHCM 6
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
K1103 Ha Duy Lap Nam Nghe An K11
K1102 Tran Ngoc Han Nu Kien Giang K11
K1104 Tran Ngoc Linh Nu Tay Ninh K11
7
2.5 Tn t
nh ngh a: tn t l mt quy tc dng m
t mt quan h.
K hiu: ||Q||
V d: THI (Mahv, Mamh, Lanthi, Diem)
||THI||: mi hc vin c php thi mt mn
hc nhiu ln, mi ln thi lu tr hc vin
no thi mn g? ln thi th my? v im l
bao nhiu?
H S phm TPHCM 7
8
2.6 Php chiu (1)
Php chiu : Dng trch gi tr ca mt s thuc tnh
trong danh sch cc thuc tnh ca quan h.
K hiu: php chiu ca quan h R ln tp thuc tnh X
l R[X] hoc R.X.
V d:
hv
1
=
hv
2
=
hv
3
=
8
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
K1103 Ha Duy Lap Nam Nghe An K11
K1102 Tran Ngoc Han Nu Kien Giang K11
K1104 Tran Ngoc Linh Nu Tay Ninh K11
9
2.6 Php chiu (2)
Php chiu ca quan h HOCVIEN ln thuc
tnh NoiSinh ca quan h HOCVIEN:
HOCVIEN[Noisinh] = {Nghe An,Kien Giang,Tay Ninh}
H S phm TPHCM 9
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
K1103 Ha Duy Lap Nam Nghe An K11
K1102 Tran Ngoc Han Nu Kien Giang K11
K1104 Tran Ngoc Linh Nu Tay Ninh K11
10
2.6 Php chiu (3)
Php chiu ln 1 tp thuc tnh
X={Hoten,Noisinh} ca quan h HOCVIEN
HOCVIEN[Hoten, Noisinh] = {(Ha Duy Lap, Nghe An),(Tran
Ngoc Han, Kien Giang),(Tran Ngoc Linh,Tay Ninh)}
10
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
K1103 Ha Duy Lap Nam Nghe An K11
K1102 Tran Ngoc Han Nu Kien Giang K11
K1104 Tran Ngoc Linh Nu Tay Ninh K11
11
2.6 Php chiu (4)
Chiu ca mt b ln tp thuc tnh: dng
trch chn cc gi tr c th ca b gi tr theo cc
thuc tnh c ch ra trong danh sch thuc tnh ca
mt quan h.
K hiu: chiu ca mt b gi tr t ln tp thuc tnh
X ca quan h R l t
R
[X] hoc t[X]. Nu X c 1
thuc tnh t
R
.X
V d: cho quan h HOCVIEN vi tp thuc tnh
HOCVIEN
+
={Mahv,Hoten,Gioitinh,Noisinh,Malop},
cha 3 b gi tr hv
1
,hv
2
v hv
3
H S phm TPHCM 11
12
2.6 Php chiu (5)
Php chiu 1 b ln 1 thuc tnh
hv
1
[Hoten] = (Ha Duy Lap)
H S phm TPHCM 12
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
K1103 Ha Duy Lap Nam Nghe An K11
K1102 Tran Ngoc Han Nu Kien Giang K11
K1104 Tran Ngoc Linh Nu Tay Ninh K11
hv
1
=
hv
2
=
hv
3
=
13
2.6 Php chiu (6)
Php chiu 1 b ln 1 tp thuc tnh
tp thuc tnh X={Hoten, Gioitinh}
hv
2
[X] = (Tran Ngoc Han,Nu)
hv
1
=
hv
2
=
hv
3
=
H S phm TPHCM 13
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
K1103 Ha Duy Lap Nam Nghe An K11
K1102 Tran Ngoc Han Nu Kien Giang K11
K1104 Tran Ngoc Linh Nu Tay Ninh K11
14
Cu hi ghi nh
Trong m hnh quan h ca Codd, quan h l g,
b l g, tn t v th hin. Biu din quan h, b,
th hin v tn t cho trng hp sau:
Lp hc c m lp, tn lp trng, s s, ghi ch.
V hin ti ch c 2 lp cn qun l: lp th nht
m M1, lp trng tn A, s s 61, ghi ch l i
hc u, lp th hai c m M2, lp trng tn B,
s s 69 ghi ch l hay vng.
15
2.7 Kha
2.7.1 Siu kha (super key)
2.7.2 Kha (key)
2.7.3 Kha chnh (primary key)
2.7.4 Kha tng ng
2.7.5 Kha ngoi (foreign key)
H S phm TPHCM 15
16
2.7.1 Siu kha (super key) (1)
Siu kha : l mt tp con cc thuc tnh ca Q
+
m
gi tr ca chng c th phn bit 2 b khc nhau
trong cng mt th hin T
Q
bt k.
Ngha l: t
1
, t
2
T
Q
, t
1
[K] t
2
[K] K l siu kha
ca Q.
Mt quan h c t nht mt siu kha (Q
+
) v c th
c nhiu siu kha.
H S phm TPHCM 16
17
2.7.1 Siu kha (super key) (2)
V d: cc siu kha ca quan h HOCVIEN l:
{Mahv};{Mahv,Hoten};{Hoten};{Noisinh,Hoten}
H S phm TPHCM 17
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
K1103 Ha Duy Lap Nam Nghe An K11
K1102 Tran Ngoc Han Nu Kien Giang K11
K1104 Tran Ngoc Linh Nu Tay Ninh K11
K1105 Tran Minh Long Nam TpHCM K11
K1106 Le Nhat Minh Nam TpHCM K11
18
2.7.2 Kha (key) (1)
Kha : K l kha ca quan h R, tha mn 2 iu kin:
K l mt siu kha.
K l siu kha nh nht (cha t thuc tnh nht v
khc rng) ngha l
K
1
K, K
1
sao cho K
1
l siu kha.
Thuc tnh tham gia vo mt kha gi l thuc tnh
kha, ngc li l thuc tnh khng kha.
H S phm TPHCM 18
19
2.7.2 Kha (key) (2)
V d: cc siu kha ca quan h HOCVIEN l:
{Mahv};{Mahv,Hoten};{Hoten};{Hoten,Gioitinh};
{Noisinh,Hoten};{Mahv,Hoten,Gioitinh,Noisinh}
=> th kha ca quan h HOCVIEN c th l
{Mahv}; {Hoten}
V d: kha ca quan h GIANGDAY (Malop,
Mamh, Magv, HocKy, Nam) l K={Malop,Mamh}.
Thuc tnh kha s l: Mamh,Malop. Thuc tnh
khng kha s l Magv, HocKy, Nam.
H S phm TPHCM 19
20
2.7.3 Kha chnh (primary key)
Khi ci t trn mt DBMS c th, nu quan h c
nhiu hn mt kha, ta ch c chn mt v gi l
kha chnh
K hiu: cc thuc tnh nm trong kha chnh khi
lit k trong quan h phi c gch di.
V d:
HOCVIEN (Mahv,Hoten,Gioitinh,Noisinh,Malop)
GIANGDAY(Mamh,Malop,Magv,Hocky,Nam)
H S phm TPHCM 20
21
2.7.4 Kha tng ng
Cc kha cn li (khng c chn lm kha
chnh) gi l kha tng ng.
V d: trong hai kha {Mahv},{Hoten} th
kha chnh l {Mahv}, kha tng ng l
{Hoten}
H S phm TPHCM 21
22
2.7.5 Kha ngoi (1)
Cho R(U), S(V). K
1
U l kha chnh ca R,K
2
V
Ta ni K
2
l kha ngoi ca S tham chiu n kha
chnh K
1
ca R nu tha cc iu kin sau:
K
1
v K
2
c cng s lng thuc tnh v ng
ngha ca cc thuc tnh trong K
1
v K
2
cng
ging nhau.
Gia R v S tn ti mi quan h 1-n trn K
1
v
K
2
,
s S, !r R sao cho r.K
1
=s.K
2
H S phm TPHCM 22
23
2.7.5 Kha ngoi (2)
V d, cho 2 quan h
LOP (Malop,Tenlop,Siso,Khoahoc)
HOCVIEN (Mahv,Hoten,Gioitinh,Noisinh,Malop)
Thuc tnh Malop trong quan h LOP l kha chnh
ca quan h LOP. Thuc tnh Malop trong quan h
HOCVIEN l kha ngoi, tham chiu n Malop
trong quan h LOP
H S phm TPHCM 23
24
2.7.5 Kha ngoi (3)
H S phm TPHCM 24
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
K1103 Ha Duy Lap Nam Nghe An K11
K1102 Tran Ngoc Han Nu Kien Giang K11
K1104 Tran Ngoc Linh Nu Tay Ninh K11
K1105 Tran Minh Long Nam TpHCM K11
K1106 Le Nhat Minh Nam TpHCM K11
LOP
Malop Tenlop Trglop Siso Magvcn
K11 Lop 1 khoa 1 K1106 11 GV07
K12 Lop 2 khoa 1 K1205 12 GV09
K13 Lop 3 khoa 1 K1305 12 GV14
25
Lc CSDL QLSV
HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP)
Tn t: mi hc vin phn bit vi nhau bng m hc vin, lu tr h tn, ngy sinh,
gii tnh, ni sinh, thuc lp no.
LOP (MALOP, TENLOP, TRGLOP, SISO, MAGVCN)
Tn t: mi lp gm c m lp, tn lp, hc vin lm lp trng ca lp, s s lp v
gio vin ch nhim.
KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA)
Tn t: mi khoa cn lu tr m khoa, tn khoa, ngy thnh lp khoa v trng khoa
(cng l mt gio vin thuc khoa).
MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA)
Tn t: mi mn hc cn lu tr tn mn hc, s tn ch l thuyt, s tn ch thc
hnh v khoa no ph trch.
DIEUKIEN (MAMH, MAMH_TRUOC)
Tn t: c nhng mn hc hc vin phi c kin thc t mt s mn hc trc.
H S phm TPHCM 25
26
Lc CSDL qun l thi hc k
GIAOVIEN(MAGV,HOTEN,HOCVI,HOCHAM,GIOITINH,NGSINH,NGVL,
HESO, MUCLUONG, MAKHOA)
Tn t: m gio vin phn bit gia cc gio vin, cn lu tr h tn, hc v,
hc hm, gii tnh, ngy sinh, ngy vo lm, h s, mc lng v thuc mt khoa.
GIANGDAY(MALOP,MAMH,MAGV,HOCKY, NAM,TUNGAY,DENNGAY)
Tn t: mi hc k ca nm hc s phn cng ging dy: lp no hc mn g do
gio vin no ph trch.
KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA)
Tn t: lu tr kt qu thi ca hc vin: hc vin no thi mn hc g, ln thi th
my, ngy thi l ngy no, im thi bao nhiu v kt qu l t hay khng t.
H S phm TPHCM 26
27
Cu hi v n tp
Kt qu kho st hin trng h thng qun l nhn s tin lng ti
mt doanh nghip thu thp c cc thng tin sau:
Mi nhn vin c mt m nhn vin duy nht, v c h tn, ngy thng
nm sinh v c lnh lng theo h bc lng ca mnh. ng thi
mt nhn vin th ch thuc bin ch ca mt v ch mt phng ban. V
d: Nhn vin tn A c m s NV1 thuc bin ch phng Tng Hp
(vi m phng TH) sinh nm 1986 lnh lng chuyn vin chnh.
Thng tin cn qun l v phng ban bao gm: tn phng ban, m
phng ban v s lng nhn vin v ngi trng phng.V d: phng
Tng Hp c m TH, s lng nhn vin l 5 c trng phng l Nhn
Vin A.
Mc lng gm tn, s tin v m t yu cu cng vic. V d: Mc
lng chuyn vin chnh l 2,5 triu VN, cn ti thiu 5 nm kinh
nghim.
V Lc CSDL Nhn S Tin Lng ni trn
28
Ph thuc hm
29
Ph thuc hm
30
Ph thuc hm
31
Ph thuc hm
32
Ph thuc hm
33
Ph thuc hm
34
Ph thuc hm
35
Ph thuc hm
36
Ph thuc hm
37
Ph thuc hm
38
Ph thuc hm
39
Ph thuc hm
40
Ph thuc hm
BD ???
Theo luat D EG {B D E G}
Theo luat BE C {B D E G C}
Theo luat BC D, CG BD, CE AG {B D E G C A G}
41
Ph thuc hm
42
Ph thuc hm
43
Ph thuc hm
44
Ph thuc hm
45
Ph thuc hm
46
Ph thuc hm
47
Ph thuc hm
48
Ph thuc hm
49
Ph thuc hm
50
Ph thuc hm
51
Ph thuc hm
52
Ph thuc hm
53
Ph thuc hm
54
Ph thuc hm
55
Ph thuc hm
56
Ph thuc hm
57
Ph thuc hm
58
Ph thuc hm
59
Ph thuc hm
60
Ph thuc hm
61
Ph thuc hm
62
Ph thuc hm
63
Ph thuc hm
64
Ph thuc hm
65
Ph thuc hm
66
Ph thuc hm
67
Ph thuc hm
68
Ph thuc hm
69
Ph thuc hm
70
Ph thuc hm
71
Ph thuc hm