Professional Documents
Culture Documents
GIO TRNH
H QUN TR C S D LIU
MS SQL SERVER
BI 1
TNG QUAN V M HNH CLIENT/SERVER
Thi lng: 5 gi (3 gi L thuyt, 2 gi Thc hnh)
Mc tiu bi hc
- Hiu r m hnh CSDL Client/Server.
- Nm vng cc c trng ca m hnh Client/Server.
- Nghim tc, t gic trong hc tp.
Ni dung chnh
- Cc kin thc tng quan v CSDL.
- Cc giai on pht trin ca mt h qun tr CSDL.
- Gii thiu v m hnh Client server v cc h qun tr CSDL phc v cho m hnh
Client/Server.
- Cc c trng ca m hnh Client/server
Ni dung chi tit
1. Cc kin thc tng quan v CSDL
Mt h CSDL (DB system) bao gm mt CSDL (Database) v mt h qun tr CSDL
(DBMS)
CSDL (CSDL) l mt tp hp d liu c t chc v lu tr theo mt cu trc cht ch
nhm phc v nhiu i tng s dng vi nhiu mc ch khc nhau.
H qun tr CSDL (Database Management System - DBMS) l mt cng c phn mm
tng qut nhm h tr vic lu tr, truy xut v qun tr CSDL. N cung cp cho ngi dng
v ng dng mt mi trng thun tin v s dng hiu qu ti nguyn d liu. Ni cch
khc, H qun tr CSDL l phn mm chuyn dng gii quyt tt cc tnh hung m CSDL
t ra nh: bo mt, cnh tranh trong truy xut.
Phn Server: (My ch) cha cc CSDL, cung cp cc chc nng phc v cho vic t
chc v qun l CSDL, cho php nhiu ngi s dng cng truy cp d liu. iu ny khng
ch tit kim m cn th hin tnh nht qun v mt d liu. Tt c d liu u c truy xut
thng qua server, khng c truy xut trc tip. Do , c bo mt cao, tnh nng chu
li, chy ng thi, sao lu d phng
Phn Client (My khch): L cc phn mm chy trn my trm cho php ngi s dng
giao tip CSDL trn Server.
H thng my tnh Client/Server c 5 m hnh kin trc da trn cu hnh phn tn v truy
nhp d liu, gm:
- M hnh CSDL tp trung (Centralized database model)
- M hnh CSDL theo kiu file - server (File - server database model)
- M hnh x l tng phn CSDL (Database extract proceSQL Servering model)
- M hnh CSDL Client/Server (Client/Server database model)
- M hnh CSDL phn tn (Distributed database model)
5. Bi tp
Cu 1: Phn bit cc khi nim CSDL, h qun tr CSDL, h CSDL, SQL, T-SQL
Cu 2: Cho v d v mt s h qun tr CSDL theo m hnh Client/Server ?
Cu 3: Hy trnh by cc t trng ca m hnh Client/Server?
BI 2
CU HNH CSDL CLIENT/SERVER
Thi lng: 9 gi (4 gi L thuyt, 4 gi Thc hnh, 1 gi Kim tra)
Mc tiu bi hc
- Phn tch c cc tng cu trc ca m hnh Client/Server.
- Phn bit c cc m hnh CSDL.
- Nghim tc, t gic trong hc tp.
- m bo an ton cho ngui v thit b.
Ni dung chnh
- Tng quan v cu trc Client/Server
- Cc tng cu trc.
- Cc m hnh d liu ca h thng Client/Server.
Ni dung chi tit
1. Tng quan v cu trc Client/Server
Mt CSDL phi m bo c tnh c lp gia d liu v chng trnh ng dng. V vy,
trong m hnh CSDL Client/Server, h thng Server lu tr CSDL trn my A, th h thng
Client chy cc chng trnh ng dng phi trn my khc.
Trong m hnh ny, cc thnh phn x l ng dng trn h thng Client a ra yu cu
cho phn mm CSDL trn my Client, phn mm ny s kt ni vi phn mm CSDL chy
trn Server. Phn mm CSDL trn Server s truy nhp vo CSDL v gi tr kt qu cho my
Client.
2. Cc tng cu trc
Theo kin trc ANSI-PARC, mt CSDL c 3 mc biu din :
a. M hnh d liu mc thp (Mc vt l hay mc trong)
a ra cc khi nim m t chi tit v cch thc d liu c lu tr trong my tnh nn
cn c gi l mc lu tr CSDL.
Ti mc ny, vn cn gii quyt l, d liu g v c lu tr nh th no, lu u
(a t, bng t, track, sector)? Cn cc ch mc g? Vic truy xut l tun t (Sequential
AcceSQL Server) hay ngu nhin (Random AcceSQL Server) i vi tng loi d liu.
Nhng ngi hiu v lm vic vi CSDL ti mc ny l ngi qun tr CSDL
(Administrator), nhng ngi s dng (NSD) chuyn mn.
V d : M hnh quan h, m hnh mng, m hnh phn cp.
b. M hnh d liu mc cao (Mc quan nim)
Cung cp cc khi nim gn gi vi ngi dng. M hnh t nhin v giu ng ngha.
Ti mc ny s gii quyt cho cu hi CSDL cn phi lu gi bao nhiu loi d liu?
l nhng d liu g? Mi quan h gia cc loi d liu ny nh th no?
T th gii thc cc chuyn vin tin hc qua qu trnh kho st v phn tch, cng vi
nhng ngi s m nhn vai tr qun tr CSDL, s xc nh c nhng loi thng tin g
Khoa CNTT trng Cao ng ngh
Hu ht cng vic x l lung thng tin chnh c thc hin bi nhiu t chc m vn
ph hp vi m hnh tp trung. V d mt b x l mainframe chy phn mm CSDL IMS
hoc DB2 ca IBM c th cung cp cho cc trm lm vic cc v tr phn tn s truy nhp
nhanh chng ti CSDL trung tm. Tuy nhin trong rt nhiu h thng nh vy, c 3 thnh
phn ca ng dng CSDL u thc hin trn cng mt my mainframe do vy cu hnh ny
cng thch hp vi m hnh tp trung.
b. M hnh CSDL theo kiu file - server (File - server databasemodel)
Trong m hnh CSDL theo kiu file - server cc thnh phn ng dng v phn mm CSDL
trn mt h thng my tnh v cc file vt l to nn CSDL nm trn h thng my tnh
khc. Mt cu hnh nh vy thng c dng trong mi trng cc b, trong mt hoc
nhiu h thng my tnh ng vai tr ca server, lu tr cc file d liu cho h thng my
tnh khc thm nhp ti. Trong mi trng file - server, phn mm mng c thi hnh v
lm cho cc phn mm ng dng cng nh phn mm CSDL chy trn h thng ca ngi
dng cui coi cc file hoc CSDL trn file server thc s nh l trn my tnh ca ngi
chnh h.
M hnh file server rt ging vi m hnh tp trung. Cc file CSDL nm trn my khc vi
cc thnh phn ng dng v phn mm CSDL; tuy nhin cc thnh phn ng dng v phn
mm CSDL c th c cng thit k vn hnh mt mi trng tp trung.
c. M hnh x l tng phn CSDL (Database extract proceSQL Servering model)
Mt CSDL xa c th c truy nhp bi phn mm CSDL, c gi l x l d liu
tng phn. Vi m hnh ny, ngi s dng c th ti mt my tnh c nhn kt ni vi h
thng my tnh xa ni c d liu mong mun. Ngi s dng c th tc ng trc tip n
phn mm chy trn my xa v to yu cu ly d liu t CSDL . Ngi s dng cng
c th chuyn d liu t my tnh xa v chnh my tnh ca mnh v vo a cng v c th
thc hin vic sao chp bng phn mm CSDL trn my c nhn.
Vi cch tip cn ny, ngi s dng phi bit chc chn l d liu nm u v lm nh
th no truy nhp v ly d liu t mt my tnh xa. Phn mm ng dng i km cn
phi c trn c hai h thng my tnh kim sot s truy nhp d liu v chuyn d liu
gia hai h thng. Tuy nhin, phn mm CSDL chy trn hai my khng cn bit rng vic
x l CSDL t xa ang din ra v ngi s dng tc ng ti chng mt cch c lp.
d. M hnh CSDL Client/Server (Client/Server database model)
M hnh CSDL Client/Server gn ging nh m hnh file - server, tuy nhin m hnh
Client/Server c rt nhiu thun li hn m hnh file - server.
Xt v d sau y: Mt ngi dng cui mun to ra mt vn tin ly d liu tng s,
yu cu i hi ly d liu t 1000 bn ghi.
Vi cch tip cn File-Server ni dung ca tt c 1000 bn ghi phi a ln mng, v phn
mm CSDL chy trn my ca ngi s dng phi truy nhp tng bn ghi tho mn yu
cu ca ngi s dng.
Vi cch tip cn CSDL Client/Server, ch c li vn tin khi ng ban u v kt qu
Khoa CNTT trng Cao ng ngh
cui cng cn a ln mng. Phn mm CSDL chy trn my lu gi CSDL s truy nhp cc
bn ghi cn thit, x l chng v gi cc th tc cn thit a ra kt qu cui cng.
Front-end software
Trong m hnh CSDL Client/Server, thng ni n cc phn mm front-end software v
back-end software. Front-end software c chy trn mt my tnh c nhn hoc mt
workstation v p ng cc yu cu n l ring bit, phn mm ny ng vai tr ca Client
trong ng dng CSDL Client/Server v thc hin cc chc nng hng ti nhu cu ca ngi
dng cui cng, phn mm Front-end software thng c chia thnh cc loi sau:
- End user database software: c thc hin bi ngi s dng cui trn chnh h thng
ca h truy nhp cc CSDL cc b nh cng nh kt ni vi cc CSDL ln hn trn
CSDL Server.
- Simple query and reporting software: c thit k cung cp cc cng c d dng hn
trong vic ly d liu t CSDL v to cc bo co n gin t d liu c.
- Data analysis software: Cung cp cc hm v tm kim, khi phc, chng c th cung cp
cc phn tch phc tp cho ngi dng.
- Application development tools: Cung cp cc kh nng v ngn ng m cc nhn vin h
thng thng tin chuyn nghip s dng xy dng cc ng dng CSDL.
- Database administration Tools: Cc cng c ny cho php ngi qun tr CSDL s dng
my tnh c nhn hoc trm lm vic thc hin vic qun tr CSDL nh nh ngha cc
CSDL, thc hin lu tr hay phc hi.
Back-end software
Phn mm ny bao gm phn mm CSDL Client/Server v phn mm mng chy trn my
ng vai tr l Server CSDL.
e. M hnh CSDL phn tn (Distributed database model)
C hai m hnh File - Server v Client/Server u gi nh l d liu nm trn mt b x l
v chng trnh ng dng truy nhp d liu nm trn mt b x l khc, cn m hnh CSDL
phn tn li gi nh bn thn CSDL c trn nhiu my khc nhau.
4. Bi tp
Cu 1: Hy so snh m hnh d liu tp trung v m hnh d liu phn tn ?
Cu 2: Cho v d v m hnh d liu tp trung v m hnh d liu phn tn hin nay?
BI 3
H QUN TR CSDL MS SQL SERVER
Thi lng: 10 gi (5 gi L thuyt, 5 gi Thc hnh)
Mc tiu bi hc
- Trnh by lch s pht trin ca h qun tr CSDL MS SQL Server
- Ci t c phn mm h qun tr CSDL MS SQL Server
- S dng c cc cng c h tr ca h qun tr CSDL MS SQL Server
- Cu hnh c h thng qun tr CSDL trn Server ni b.
- Nghim tc, t gic trong hc tp.
- m bo an ton cho ngui v thit b.
Ni dung chnh
- Gii thiu h qun tr CSDL MS SQL Server.
- Ci t MS SQL Server
- Cc cng c ca MS SQL Server
- Lm vic vi cng c Enterprise Manager
Ni dung chi tit
1. Gii thiu h qun tr CSDL MS SQL Server
SQL vit tt ca Structured Query Language (ngn ng truy vn c cu trc), l cng c
s dng t chc, qun l v truy xut d liu uc lu tr trong cc CSDL. SQL l mt h
thng ngn ng bao gm tp cc cu lnh s dng tng tc vi CSDL quan h.
Ngn ng truy vn c cu trc v cc h qun tr CSDL quan h l mt trong nhng nn
tng k thut quan trng trong cng nghip my tnh. Hin nay SQL c xem l ngn ng
chun trong CSDL. Cc h qun tr CSDL quan h thng mi hin c nh Oracle, SQL
Server, Informix, DB2,... u chn SQL lm ngn ng cho sn phm ca mnh.
SQL l mt h qun tr CSDL nhiu ngi dng kiu Client/Server. y l h thng c
bn dng lu tr d liu cho hu ht cc ng dng ln hin nay. M hnh Client/Server trn
SQL c s dng iu khin tt c cc chc nng m mt h qun tr CSDL cung cp
cho ngi dng cc kh nng:
nh ngha d liu: SQL cung cp kh nng nh ngha cc CSDL, cc cu trc lu tr
v t chc d liu cng nh mi quan h gia cc thnh phn d liu.
Truy xut v thao tc d liu: Ngi dng c th d dng thc hin cc thao tc truy
xut, b sung, cp nht v loi b d liu trong cc CSDL.
iu khin truy cp: SQL c th c s dng cp pht v kim sot cc thao tc
ca ngi s dng trn d liu, m bo s an ton cho CSDL
m bo ton vn d liu: SQL nh ngha cc rng buc ton vn trong CSDL nh
m bo tnh hp l v chnh xc ca d liu trc cc thao tc cp nht cng nh cc li ca
h thng.
Phn cng:
o My tnh chip Pentium III 600 MHz tr ln (Cu hnh ngh: Chip 1 GHz hoc cao hn.)
o Ti thiu 192 MB RAM (Cu hnh ngh: 512 MB RAM.)
o cng cn trng ti thiu 525 MB
B ci t:
ci t SQL Server 2005 ExpreSQL Server, my tnh phi c
Windows Installer 3.1 tr ln, download v ti a ch:
http://go.microsoft.com/fwlink/?LinkId=46459
Microsoft .Net Framework 2.0
o H iu hnh 32bit: http://go.microsoft.com/fwlink/?LinkId=55731
o H iu hnh 64bit: http://go.microsoft.com/fwlink/?LinkId=55734
File ci t SQL Server 2005 ExpreSQL Server
http://www.microsoft.com/downloads/details.aspx?familyid=220549b5-0b07-4448-8848dcc397514b41&displaylang=en
SQL Server Management Studio ExpreSQL Server
http://www.microsoft.com/downloads/details.aspx?familyid=C243A5AE-4BD1-4E3D-94B85A0F62BF7796&displaylang=en
Sau khi download v, lu vo mt th mc no bt u tin hnh ci t (VD: D:\SQL)
Trong hng dn di y, cc thnh phn trn c tn file ci t ln lt l: WindowsInstallerKB893803-v2-x86.exe: Windows Installer 3.1; dotnetfx.exe: Microsoft .Net Framework 2.0;
SQLEXPR.EXE: SQL Server 2005 ExpreSQL Server; SQLServer2005_SQL SERVERMSEE.msi:
Cng c qun l SQL Server Management Studio ExpreSQL Server
10
Click Finish
11
Bc 2: Ci Framework 2.0
File ci: dotnetfx.exe
Nhn Finish
My s khi ng li
Khoa CNTT trng Cao ng ngh
12
Trn mn hnh tip theo, nh du vo mc: "I accept the licensing terms and conditions", nhn
Next
13
Trn mn hnh tip theo, b du check m mc "Hide advanced configuration options", nhn Next.
14
Khai bo Instance name, chn Default Instance (Server Name s trng vi tn my)
Nhn Next
15
Nhn Next
Nhn Next
16
Click Install bt u ci t
17
18
Click Install
19
i trong vi pht
Nhn Finish
20
3. Cc cng c ca MS SQL
a. English Query
y l mt dch v gip cho vic truy vn d liu bng ting Anh.
b. Trnh Enterprise Manager
y l mi trng trc quan s dng h thng thc n Enterprise Manager. S dng h
thng thc n (menu) thc hin cc yu cu. Ch yu cc yu cu to, thm, xo, sa d
liu. Qun l lch trnh Backup d liu. Qun l ngi dng ang truy cp CSDL. To, xa
quyn Login User. nh cu hnh cho Server. To v qun l tm kim.
My tnh c ng nhp
CSDL ang s dng
Thng tin ng nhp
Tn File truy vn ang m
S ca ca s c hin th
21
22
Nhp chut phi vo thnh phn Tables (bng)/ New Table/ t tn bng.
Sau khi nhp tn bng nhn OK xc nhn, nu mun b qua thao tc to bng nhn nt
Cancel.
Sau khi to bng mi, ta thit k bng bng cch nhp vo tn trng vo ct Column
Name, chn kiu d liu trong ct Datatype, t kch thc d liu ca trng trong ct
Length, b chn Allow Nulls nu mun trng tng ng khng c trng, chn Identity
nu mun to ch mc.
Mun to kha chnh cho trng no th chn dng tng ng sau nhp vo biu tng
cha kha trn thanh cng c. C th kt hp vi phm Shift v Ctrl nu mun chn nhiu
dng.
Sau khi thit k bng xong, ta nhp chut vo biu tng a mm trn thanh cng c
lu bng v nhn vo du (X) bn di ca ca s Enterprise Manager ng bng li.
23
sa i cu trc bng to chng ta nhp chut phi vo bng tng ng chn Design
Table
Sau s hin th mt ca s mi
24
Chn Return all rows nu mun nhp d liu vi hin trng xem tt c cc dng
Chn Reture Top nu mun xem mt s dng u tin
Chn Query nu mun nh ngha d liu theo ca ngi dng.
5. Nhn xt
C th ni rng: SQL l mt ngn ng hon thin c s dng trong cc h thng CSDL
v l mt thnh phn khng th thiu trong cc h qun tr CSDL. SQL khng phi l mt
Khoa CNTT trng Cao ng ngh
25
26
BI 4
CC THAO TC TRN MS SQL SERVER
Thi lng: 36 gi (12 gi L thuyt, 23 gi Thc hnh, 1 gi Kim tra)
Mc tiu bi hc
27
M t
CHAR (n)
Kiu chui vi di c nh
NCHAR (n)
VARCHAR (n)
NVARCHAR (n)
INTEGER
INT
Nh kiu Integer
TINYTINT
SMALLINT
S nguyn c gi tr t 0 n 255.
S nguyn c gi tr t -215 n 215-1
BIGINT
NUMERIC (p,s)
DECIMAL (p,s)
FLOAT
REAL
28
MONEY
Kiu tin t
BIT
DATETIME
SMALLDATETIME
TIMESTAMP
BINARY
VARBINARY
IMAGE
TEXT
NTEXT
Trong
- Not null: thuc tnh khng ly gi tr rng. Lu thuc tnh kho mc nhin b r ng buc
not null.
- Primary key( kho chnh>): khai bo kho chnh ca bng.
- Unique ( kho ): khai bo cc kho ch nh khc (nu c)
- Foreign key( kho ngoi>) : khai bo kho ngoi ca bng
- Check iu kin r ng buc>: m t cc r ng buc min gi tr
Sau bi en, bm F5 hoc
29
Lu : Trc khi to bng phi chn CSDL cha bng bng lnh
USE <Tn CSDL>
V d:
To bng vi lc quan h sau: HANGHOA (MaHG, TenHG, DVT)
M hng ha l kha chnh. Tt c cc thuc tnh khng c rng.
Use QLBanHang
Create Table Hanghoa
(
MaHG varchar(10) Not Null,
TenHG nvarchar(50) Not Null,
DVT varchar(5) Not Null,
Primary key (MaHG)
)
V d 2: To bng NhanVien c tham chiu kha ngoi n PhongBan
30
V d:
UPDATE MONHOC SET
TCLT = 45
WHERE MAMH = MH001
c. Xa mt trng d liu
DELETE FROM <TN BNG>
WHERE IU KIN>
Lu Trong vic sa, xa trng d liu cn phi c iu kin where trnh cp nht d
liu sai
7. Truy vn SQL
L ngn ng rt trch d liu tha mt s iu kin no . c s dng truy xut d liu
31
a. Mnh FROM
Mnh FROM trong cu lnh SELECT c s dung nhm ch nh cc bng v khung
nhn cn truy xut d liu. Sau FROM l danh sch tn ca cc bng v khung nhn tham
gia vo truy vn, tn ca cc bng v khung nhn c phn cch nhau bi du phy.
V d: Cu lnh di y hin th danh sch cc khoa trong trng
SELECT * FROM khoa
b. Danh sch chn trong cu lnh SELECT
Danh sch chn trong cu lnh SELECT c s dng ch nh cc trng, cc biu
thc cn hin th trong cc ct ca kt qu truy vn. Cc trng, cc biu thc c ch nh
ngay sau t kho SELECT v phn cch nhau bi du phy.
i. Chn tt c cc ct trong bng
V d: Lit k tt c cc ct trong bng Lop
SELECT * FROM lop
ii. Tn ct trong danh sch chn
V d: Lit k danh sch malop, tenlop, namnhaphoc, khoa trong bng Lop
SELECT malop,tenlop,namnhaphoc,khoa
FROM lop
Lu : Nu truy vn c thc hin trn nhiu bng/khung nhn v trong cc bng/khung
nhn c cc trng trng tn th tn ca nhng trng ny nu xut hin trong danh sch chn
phi c vit di dng: tn_bng.tn_trng
V d:
SELECT malop, tenlop, lop.makhoa, tenkhoa
FROM lop, khoa
WHERE lop.malop = khoa.makhoa
iii. Thay i tiu cc ct
Ta s dng cch vit: tiu__ct = tn_trng
hoc: tn_trng AS tiu__ct hoc: tn_trng tiu__ct
V d: Cu lnh di y:
SELECT 'M lp'= malop,tenlop 'Tn lp',khoa AS 'Kho' FROM lop
iv. S dng cu trc CASE trong danh sch chn
Cu trc ny c c php nh sau:
32
CASE biu_thc
WHEN biu_thc_kim_tra THEN kt_qu
[ ... ]
[ELSE kt_qu_ca_else]
END hoc: CASE
WHEN iu_kin THEN kt_qu
[ ... ]
[ELSE kt_qu_ca_else] END
V d: hin th m, h tn v gii tnh (nam hoc n) ca cc sinh vin, ta s dng cu
lnh
SELECT masv,hodem,ten, CASE gioitinh
WHEN 1 THEN 'Nam' ELSE 'N'
END AS gioitinh FROM sinhvien hoc:
SELECT masv,hodem,ten, CASE
WHEN gioitinh=1 THEN 'Nam' ELSE 'N'
END AS gioitinh
FROM sinhvien
Kt qu ca hai cu lnh trn u nh nhau.
v. Hng v biu thc trong danh sch chn
V d: cu lnh di y cho bit tn v s tit ca cc mn hc
SELECT tenmonhoc,sodvht*15 AS sotiet
FROM monhoc
Nu trong danh sch chn c s xut hin ca gi tr hng th gi tr ny
s xut hin trong mt ct ca kt qu truy vn tt c cc dng
V d: Cu lnh
SELECT tenmonhoc,'S tit: ',sodvht*15 AS sotiet
FROM monhoc
vi. Loi b cc dng d liu trng nhau trong kt qu truy vn
Ta ch nh thm t kha DISTINCT ngay sau t kho SELECT.
V d: Hai cu lnh di y
SELECT khoa FROM lop v:
SELECT DISTINCT khoa FROM lop
vii. Gii hn s lng dng trong kt qu truy vn
Ta ch nh thm mnh TOP ngay trc danh sch chn ca cu lnhSELECT.
V d: Cu lnh di y hin th h tn v ngy sinh ca 5 sinh vin u tin trong danh
sch:
33
ngha
Bng
>
<
Ln hn
Nh hn
>=
<=
<>
!>
Ln hn hoc
bng
Nh hn hoc
bng
Khc
Khng ln hn
!<
Khng nh hn
ii. Kim tra gii hn ca d liu
kim tra xem gi tr d liu nm trong (ngoi) mt khong n o , ta s dng ton t
BETWEEN (NOT BETWEEN) nh sau:
ngha
a gi_tr b
Cch s dng
gi_tr BETWEEN a AND b
gi_tr
AND b
NOT
BETWEEN
34
(gi_tr
(gi_tr>b)
<
a)
AND
35
V d:
SELECT hodem,ten,YEAR(GETDATE())-YEAR(ngaysinh) AS tuoi
INTO tuoisv
FROM sinhvien
Lu : Nu trong danh sch chn c cc biu thc th nhng biu thc ny phi c t
tiu .
e. Sp xp kt qu truy vn
Cu lnh v d trn c th c vit li nh sau:
SELECT hodem,ten,gioitinh, YEAR(GETDATE())-YEAR(ngaysinh) AS tuoi FROM
sinhvien
WHERE ten='Bnh' ORDER BY 3, 4
f.Php hp
C php nh sau:
Cu_lnh_1
UNION [ALL] Cu_lnh_2
[UNION [ALL] Cu_lnh_3]
...
[UNION [ALL] Cu_lnh_n]
[ORDER BY ct_sp_xp]
[COMPUTE danh_sch_hm_gp [BY danh_sch_ct]]
Trong
Cu_lnh_1 c dng
SELECT danh_sch_ct
[INTO tn_bng_mi]
[FROM danh_sch_bng|khung_nhn]
[WHERE iu_kin]
[GROUP BY danh_sch_ct]
[HAVING iu_kin]
v Cu_lnh_i (i = 2,..,n) c dng
SELECT danh_sch_ct
[FROM danh_sch_bng|khung_nhn]
[WHERE iu_kin]
[GROUP BY danh_sch_ct]
[HAVING iu_kin]
36
g. Php ni
Khi cn thc hin mt yu cu truy vn d liu t hai hay nhiu bng, ta phi s dng n
php ni. Mt cu lnh ni kt hp cc dng d liu trong cc bng khc nhau li theo
mt hoc nhiu iu kin n o v hin th chng trong kt qu truy vn.
Xt bng KHOA v LOP
o Chn ra dng trong bng KHOA c tn khoa l Khoa Cng ngh Thng tin, t xc
nh c m khoa (MAKHOA) l DHT02.
o Tm kim trong bng LOP nhng dng c gi tr trng MAKHOA l DHT02 (tc l
bng MAKHOA tng ng trong bng KHOA) v a nhng dng ny vo kt qu truy
vn
Nh vy, thc hin c yu cu truy vn d liu trn, ta phi thc hin php ni gia
hai bng KHOA v LOP vi iu kin ni l MAKHOA ca KHOA bng vi MAKHOA ca
LOP.
i. S dng php ni
V d: Cu lnh di y hin th danh sch cc sinh vin vi cc thng tin: m sinh vin,
h v tn, m lp, tn lp v tn khoa
SELECT masv,hodem,ten,sinhvien. malop, tenlop, tenkhoa
FROM sinhvien,lop,khoa
WHERE sinhvien.malop = lop.malop AND lop.makhoa=khoa.makhoa
ii. Cc loi php ni
Php ni bng v php ni t nhin
V d: Cu lnh di y thc hin php ni bng gia hai bng LOP v KHOA
SELECT *
FROM lop,khoa
WHERE lop.makhoa=khoa.makhoa
V d: thc hin php ni t nhin, cu lnh trong v d trn c vit li:
SELECT malop,tenlop,khoa, hedaotao,namnhaphoc,siso,lop.makhoa,tenkhoa,dienthoai
FROM lop,khoa
WHERE lop.makhoa=khoa.makhoa
hoc vit di dng ngn gn hn:
SELECT lop.*,tenkhoa,dienthoai FROM lop,khoa
WHERE lop.makhoa=khoa.makhoa
h. Thng k d liu vi GROUP BY
Ngoi kh nng thc hin cc yu cu truy vn d liu thng thng (chiu, chn,
ni,) nh cp nh cc phn trc, cu lnh SELECT cn cho php thc hin cc
thao tc truy vn v tnh ton thng k trn d liu nh: cho bit tng s tit dy ca mi gio
vin, im trung bnh cc mn hc ca mi sinh vin,
Khoa CNTT trng Cao ng ngh
37
Mnh GROUP BY s dng trong cu lnh SELECT nhm phn hoch cc dng d liu
trong bng thnh cc nhm d liu, v trn mi nhm d liu thc hin tnh ton cc gi tr
thng k nh tnh tng, tnh gi tr trung bnh,...
Cc hm gp c s dng tnh gi tr thng k cho ton bng hoc trn mi nhm d
liu. Chng c th c s dng nh l cc ct trong danh sch chn ca cu lnh SELECT
hoc xut hin trong mnh HAVING, nhng khng c php xut hin trong mnh
WHERE
Cc hm gp m SQL cung cp
SUM([ALL | DISTINCT] biu_thc) Tnh tng cc gi tr.
AVG([ALL | DISTINCT] biu_thc) Tnh trung bnh ca cc gi tr
COUNT([ALL | DISTINCT] biu_thc) m s cc gi tr trong biu thc.
COUNT(*) m s cc dng c chn. MAX(biu_thc) Tnh gi tr ln nht
MIN(biu_thc) Tnh gi tr nh nht
Trong :
o Hm SUM v AVG ch lm vic vi cc biu thc s.
o Hm SUM, AVG, COUNT, MIN v MAX b qua cc gi tr NULL khi
tnh ton.
o Hm COUNT(*) khng b qua cc gi tr NULL.
V d: thng k trung bnh im ln 1 ca tt c cc mn hc, ta s dng cu lnh nh
sau:
SELECT AVG(diemlan1) FROM diemthi
Cu lnh di y cho bit tui ln nht, tui nh nht v tui trung bnh ca tt c cc
sinh vin sinh ti Dalat:
SELECT MAX(YEAR(GETDATE())-YEAR(ngaysinh)), MIN(YEAR(GETDATE())YEAR(ngaysinh)), AVG(YEAR(GETDATE())-YEAR(ngaysinh))
FROM sinhvien
WHERE noisinh=' Dalat'
Thng k d liu trn cc nhm
Trong trng hp cn thc hin tnh ton cc gi tr thng k trn cc nhm d liu, ta s
dng mnh GROUP BY phn hoch d liu vo trong cc nhm. Cc hm gp c s
dng s thc hin thao tc tnh ton trn mi nhm v cho bit gi tr thng k theo cc nhm
d liu.
V d: Cu lnh di y cho bit s s (s lng sinh vin) ca mi lp
SELECT lop.malop,tenlop,COUNT(masv) AS siso
FROM lop,sinhvien
WHERE lop.malop=sinhvien.malop
GROUP BY lop.malop,tenlop
Khoa CNTT trng Cao ng ngh
38
cn cu lnh:
SELECT
sinhvien.masv,hodem,ten,
sum(diemlan1*sodvht)/sum(sodvht)
FROM
sinhvien,diemthi,monhoc
WHERE sinhvien.masv=diemthi.masv AND diemthi.mamonhoc=monhoc.mamonhoc
GROUP BY sinhvien.masv,hodem,ten
cho bit trung bnh im thi ln 1 cc mn hc ca cc sinh vin
Lu : Trong trng hp danh sch chn ca cu lnh SELECT c c cc hm gp v
nhng biu thc khng phi l hm gp th nhng biu thc ny phi c mt y trong
mnh GROUP BY, nu khng cu lnh s khng hp l.
V d: Di y l mt cu lnh sai
SELECT lop.malop,tenlop,COUNT(masv) FROM lop,sinhvien
WHERE lop.malop=sinhvien.malop
GROUP BY lop.malop
do thiu trng TENLOP sau mnh GROUP BY.
Ch nh iu kin i vi hm gp
Mnh HAVING c s dng nhm ch nh iu kin i vi cc gi tr thng k
c sn sinh t cc hm gp tng t nh cch thc mnh WHERE thit lp cc iu
kin cho cu lnh SELECT.
8. Bi tp
39
BI 5
THIT K, BO TR V PHT TRIN M HNH CLIENT/SERVER
40
41
ALL[PRIVILEGES]
cc_quyn_cp_pht
tn_bng |tn_khung_nhn
danh_sch_ct
tn_th_tc
tn_hm
danh_sch_ngi_dng
Cho php ngi dng chuyn tip quyn cho ngi dng khc
V d minh ho cch s dng cu lnh GRANT cp pht quyn cho ngi dng
trn cc i tng CSDL.
Cp pht cho ngi dng c tn thuchanh quyn thc thi cc cu lnh SELECT,
INSERT v UPDATE trn bng LOP
GRANT SELECT,INSERT,UPDATE ON lop
TO thuchanh
Cho php ngi dng thuchanh quyn xem h tn v ngy sinh ca cc sinh vin (ct
HODEM,TEN v NGAYSINH ca bng SINHVIEN)
GRANT SELECT (hodem,ten,ngaysinh)
ON sinhvien
TOthuchanh
Hoc
GRANT SELECT
ON sinhvien(hodem,ten,ngaysinh) TO thuchanh
FROM sinhvien
Vi quyn c cp pht nh trn, ngi dng thuchanh c th thc hin cu lnh
SELECT hoden,ten,ngaysinh trn bng SINHVIEN
Nhng cu lnh SELECT * FROM sinhvien li khng th thc hin c
Trong trng hp cn cp pht tt c cc quyn c th thc hin c trn i tng
CSDL cho ngi dng, thay v lit k cc cu lnh, ta ch cn s dng t kho ALL
PRIVILEGES (t kha PRIVILEGES c th khng cn ch nh).
43
Thu hi quyn thc thi cc cu lnh trn c s d liu cp pht cho ngi dng.
i. Thu hi quyn trn i tng c s d liu:
C php cu lnh REVOKE s dng thu hi quyn cp pht trn i tng c s
d liu c c php nh sau:
REVOKE [GRANT OPTION FOR]
ALL [PRIVILEGES]| cc_quyn_cn_thu_hi
[(danh_sch_ct)] ON tn_bng | tn_khung_nhn
|ON tn_bng | tn_khung_nhn [(danh_sch_ct)]
|ON tn_th_tc
|ON tn_hm
FROM danh_sch_ngi_dng
[CASCADE]
Cu lnh REVOKE c th s dng thu hi mt s quyn cp pht cho ngi
dng hoc l thu hi tt c cc quyn (ALL PRIVILEGES).
V d: Thu hi quyn thc thi lnh INSERT trn bng LOP i vi ngi dng
thuchanh.
REVOKE INSERT
ON lop
FROM thuchanh
Gi s ngi dng thuchanh c cp pht quyn xem d liu trn cc ct
HODEM, TEN v NGAYSINH ca bng SINHVIEN, cu lnh di y s thu hi
quyn cp pht trn ct NGAYSINH (ch cho php xem d liu trn ct HODEM v
TEN)
REVOKE SELECT
ON sinhvien(ngaysinh)
FROM thuchanh
Khi ta s dng cu lnh REVOKE thu hi quyn trn mt i tng CSDL t mt
ngi dng no , ch nhng quyn m ta cp pht trc mi c thu hi, nhng
quyn m ngi dng n y c cho php bi nhng ngi dng khc vn cn c
hiu lc. Ni cch khc, nu hai ngi dng khc nhau cp pht cng cc quyn trn
cng mt i tng CSDL cho mt ngi dng khc, sau ngi thu nht thu hi li
quyn cp pht th nhng quyn m ngi dng th hai cp pht vn c hiu lc.
ii. Thu hi quyn thc thi cc cu lnh:
Vic thu hi quyn thc thi cc cu lnh trn c s d liu (CREATE
DATABASE, CREATE TABLE, CREATE VIEW,...) c thc hin n gin vi
cu lnh REVOKE c c php:
REVOKE ALL | cc_cu_lnh_cn_thu_hi
FROM danh_sch_ngi_dng
Khoa CNTT trng Cao ng ngh
44
V d: khng cho php ngi dng thuchanh thc hin lnh CREATE TABLE trn
c s d liu, ta s dng cu lnh:
REVOKE CREATE TABLE
FROM thuchanh
3. Chuyn i c s d liu t cc ngun c s d liu
Vic chuyn i c s d liu c th thc hin qua li gia cc h qun tr c s d
liu. Vic chuyn i ch thng qua mt s bc n gin. Trong gii hn ca
module ny, chng ta s tm hiu v cch chuyn i qua li gia ngun c s d liu
SQL Server v c s d liu Access. i vi cc c s d liu khc, chng ta cng c
cch l m tng t.
d. To c s d liu SQL Server t ngun c s d liu Access
Trc tin, thun tin cho vic thc hnh chng ta to mt c s d liu Acces c
tn QuanLyNhanVien (qun l nhn vin) vi hai bng v quan h nh sau:
Hnh:Import Data
mt ca s s hin ra nh sau:
45
46
Export Data
Sao lu d phng c s d lu
47
Gii Thch
Thut ng
Backup
Device
BackupFile
Backup
48
5. Bo tr c s d liu
Vic sao lu d phng c s d liu nhm phc hi li khi cn thit, l mt qu
trnh bo tr c s d liu. Trc khi phc hi c s d liu (restore database) ta phi xc
nh c th t file cn phc hi. Cc thng tin n y c SQL Server cha
trong msdb. Vic phc hi li d liu c th thc hin nh sau:
Right-click->All Tasks->Restore database... s thy window nh hnh v sau:
49