You are on page 1of 49

TRNG CAO NG NGH TNH B RA VNG TU

Khoa Cng ngh thng tin

GIO TRNH
H QUN TR C S D LIU
MS SQL SERVER

Gio vin: Trn Th Thy Dung

Gio trnh H qun tr CSDL MS SQL Server 1

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.

Hnh 1: Kin trc ca mt h qun tr CSDL

Khoa CNTT trng Cao ng ngh

Gio trnh H qun tr CSDL MS SQL Server 1

2. Cc giai on pht trin ca mt h qun tr CSDL.


Nhng nm 1975-1976, IBM ln u tin a ra h qun tr CSDL kiu quan h mang tn
SYSTEM-R vi ngn ng giao tip CSDL l SEQUEL (Structured English QUEry
Language), mt ngn ng con thao tc vi CSDL.
Nm 1976 ngn ng SEQUEL c ci tin thnh SEQUEL2. Khong nm 1978-1979
SEQUEL2 c ci tin v i tn thnh Ngn ng truy vn c cu trc (Structured
Query Language - SQL) v cui nm 1979 c ci tin thnh SYSTEM-R.
Nm 1986 Vin Tiu Chun Quc Gia M (American National Standards Institute - ANSI)
cng nhn v chun ha ngn ng SQL, v sau T chc Tiu chun Th gii
(International Standards Organization - ISO) cng cng nhn ngn ng ny. l chun
SQL-86.
Ti nay SQL qua 3 ln chun ha li (1989, 1992, 1996) m rng cc php ton v
tng cng kh nng bo mt v tnh ton vn d liu.

Ngn ng CSDL c ci t khc nhau i ty theo cc h qun tr CSDL khc


nhau, tuy nhin u phi theo mt chun (Standard) nht nh. Hin nay, a phn cc
ngn ng truy vn CSDL da trn chun SQL-92.
3. Gii thiu v m hnh Client/Server v cc h qun tr CSDL phc v cho m hnh
Client/Server.
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
Truy xut v thao tc d liu
iu khin truy cp
m bo ton vn d liu
4. Cc c trng ca m hnh Client/server
Mt ng dng kiu Client/Server bao gm 2 phn: Mt phn chy trn Server (my ch)
v phn khc chy trn cc Workstations (my trm).

Hnh 2: M hnh Client/Server trn SQL Server


Khoa CNTT trng Cao ng ngh

Gio trnh H qun tr CSDL MS SQL Server 1

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?

Khoa CNTT trng Cao ng ngh

Gio trnh H qun tr CSDL MS SQL Server 1

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

Gio trnh H qun tr CSDL MS SQL Server 1

c cho l cn thit phi a vo CSDL, ng thi m t r mi lin h gia cc thng tin


ny. C th ni cch khc, CSDL mc quan nim l mt s biu din tru tng CSDL mc
vt l; hoc ngc li, CSDL vt l l s ci t c th ca CSDL mc quan nim.
V d : M hnh thc th kt hp (ERD), m hnh i tng.
c. M hnh d liu mc thc hin
a ra cc khi nim ngi dng c th hiu c nhng khng nm qu xa vi d liu
c t chc thc s trn my. y l mc ca ngi s dng v cc chng trnh ng dng.
Mi ngi s dng hay mi chng trnh ng dng c th c "nhn" (View) CSDL theo
mt gc khc nhau. C th "nhn" thy ton b hay ch mt phn hoc ch l cc thng tin
tng hp t CSDL hin c. Ngi s dng hay chng trnh ng dng c th hon ton
khng c bit v cu trc t chc lu tr thng tin trong CSDL, thm ch ngay c tn gi
ca cc loi d liu hay tn gi ca cc thuc tnh. H ch c th lm vic trn mt phn
CSDL theo cch "nhn" do ngi qun tr hay chng trnh ng dng quy nh, gi l khung
nhn (View).

Hnh 3 : Kin thc tng qut (ANSI PARC) ca mt CSDL.

3. Cc m hnh d liu ca h thng Client/Server


a. M hnh CSDL tp trung (Centralized database model)
Trong m hnh ny, cc thnh phn x l ng dng, phn mm CSDL v bn thn CSDL
u trn mt b x l.
V d Ngi dng my tnh c nhn c th chy cc chng trnh ng dng c s dng
phn mm CSDL Oracle truy nhp ti CSDL nm trn a cng ca my tnh c nhn .
T khi cc thnh phn ng dng, phn mm CSDL v bn thn CSDL cng nm trn mt
my tnh th ng dng thch hp vi m hnh tp trung.
Khoa CNTT trng Cao ng ngh

Gio trnh H qun tr CSDL MS SQL Server 1

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

Gio trnh H qun tr CSDL MS SQL Server 1

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?

Khoa CNTT trng Cao ng ngh

Gio trnh H qun tr CSDL MS SQL Server 1

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.

Khoa CNTT trng Cao ng ngh

Gio trnh H qun tr CSDL MS SQL Server 1

SQL Server s dng ngn ng lp trnh v truy vn CSDL Transact-SQL (T-SQL), mt


phin bn ca Structured Query Language. Ngn ng lp trnh v truy vn T-SQL cho php
truy xut d liu, cp nht v qun l h thng CSDL quan h. Mi my ch ch c mt h
qun tr CSDL SQL Server.
2. Ci t MS SQL Server
SQL Server 2005 c nhiu phin bn khc nhau, trong bn ExpreSQL Server l bn thp nht,
c Microsoft cung cp min ph cho ngi dng vi mc ch hc tp v ng dng vo nhng ng
dng nh, khng yu cu cao v cc tnh nng khc ngoi vic lu tr v x l n gin.

a. Yu cu v phn cng v h iu hnh s dng


H iu hnh ti thiu: Windows 2000 Service Pack 4; Windows Server 2003 Service Pack1;
Windows XP Service Pack 2

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

Khoa CNTT trng Cao ng ngh

10

Gio trnh H qun tr CSDL MS SQL Server 1

b. Tin hnh ci t MS SQL Server


Bc 1: Ci Windows Installer 3.1
Nhn vo file WindowsInstaller-KB893803-v2-x86.exe
Nhn Next

Chn I agree, nhn Next

Click Finish

Khoa CNTT trng Cao ng ngh

11

Gio trnh H qun tr CSDL MS SQL Server 1

Bc 2: Ci Framework 2.0
File ci: dotnetfx.exe

Nhn Finish

My s khi ng li
Khoa CNTT trng Cao ng ngh

12

Gio trnh H qun tr CSDL MS SQL Server 1


Sau tip tc bc 3
Bc 3: Ci Microsoft SQL Server 2005
Nhn vo file SQLEXPR.EXE

Trn mn hnh tip theo, nh du vo mc: "I accept the licensing terms and conditions", nhn
Next

Trn mn hnh tip theo, nhn Install

Khoa CNTT trng Cao ng ngh

13

Gio trnh H qun tr CSDL MS SQL Server 1


Nhn Next

Tip tc nhn Next

Trn mn hnh tip theo, b du check m mc "Hide advanced configuration options", nhn Next.

Khoa CNTT trng Cao ng ngh

14

Gio trnh H qun tr CSDL MS SQL Server 1


Nhn Next trn mn hnh tip theo

Khai bo Instance name, chn Default Instance (Server Name s trng vi tn my)
Nhn Next

Nhn Next trn ca s tip theo

Khoa CNTT trng Cao ng ngh

15

Gio trnh H qun tr CSDL MS SQL Server 1


Trn ca s tip theo, chn ch chng thc user
Windows Authentication Mode: S dng chng thc ca Windows
Mixed Mode: Kt hp c chng thc ca Windows v chng thc ca SQL Server

y c th mc nh: "Windows Authentication Mode"


Nhn Next

Nhn Next

Nhn Next

Khoa CNTT trng Cao ng ngh

16

Gio trnh H qun tr CSDL MS SQL Server 1


Nhn Next

Click Install bt u ci t

Qu trnh ci t c th mt 5 -> 10 pht

Khoa CNTT trng Cao ng ngh

17

Gio trnh H qun tr CSDL MS SQL Server 1


Khi mn hnh bo ci t thnh cng nh hnh di, click Next

Tip tc click Finish

Bc 4: Ci Microsoft SQL Server Management Studio ExpreSQL Server:


File ci t SQLServer2005_SQL SERVERMSEE.msi
Nhn Next

Khoa CNTT trng Cao ng ngh

18

Gio trnh H qun tr CSDL MS SQL Server 1


Click chn "I accept the terms in the license agreement", nhn Next

G tn ngi dng, n v s dng, sau nhn Next

Mn hnh tip theo, nhn Next

Click Install

Khoa CNTT trng Cao ng ngh

19

Gio trnh H qun tr CSDL MS SQL Server 1

i trong vi pht

Nhn Finish

n y ta ci t xong SQL Server 2005 ExpreSQL Server v cc cng c qun l


CSDL.

Khoa CNTT trng Cao ng ngh

20

Gio trnh H qun tr CSDL MS SQL Server 1

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.

Hnh 6: Giao din SQL Server Enterprise Manager

c. Cng c lp trnh - Query Analyzer (ISQL):


L giao din chnh chy cc truy vn Transact-SQL hoc th tc lu tr.
Query Analyzer cho php thc hin 32 kt ni ring r cng mt lc. Mi kt ni c mt

thanh tiu nhn dng cc yu t sau:

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

Hnh 7: Giao din Query Analyzer.


Khoa CNTT trng Cao ng ngh

21

Gio trnh H qun tr CSDL MS SQL Server 1

d. Tin ch mng Client / Server Network


Cung cp cc th vin nghi thc kt ni mng (Netword-Libraries) cho php cc my trm
c th truy cp CSDL trn my Server: Named Pipes; TCP/IP; Multiprotocol; NW Link
IPX/SPX
e. Books Online
Sch hng dn trc tuyn c lu di dng HTML c bin dch, nn c th xem
chng bng cc trnh duyt Web.
4. Lm vic vi cng c Enterprise Manager
y l mt cng c cho ta thy ton cnh h thng CSDL mt cch rt trc quan. N rt
hu ch c bit cho ngi mi hc v cha thng tho SQL.
a. To CSDL trong SQL Server
Vo menu Start/Programs/Microsoft SQL Server/Enterprise Manager, ca s sau s xut
hin:

Nhn chut phi vo mc Databases /New database, mt ca s s hin ra yu cu nhp


tn CSDL

Nhp tn CSDL vo hp Name (v d QuanLyHocVien)


Vo ty chn In megabytes thit lp kch thc lu tr gii hn v dung lng lu tr.

Khoa CNTT trng Cao ng ngh

22

Gio trnh H qun tr CSDL MS SQL Server 1

b. To bng trong CSDL


to bng cho mt CSDL ta nhp chut vo du cng (+) bn tri CSDL tng ng, ta
c danh sch cc thnh phn ca CSDL

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.

Khoa CNTT trng Cao ng ngh

23

Gio trnh H qun tr CSDL MS SQL Server 1

sa i cu trc bng to chng ta nhp chut phi vo bng tng ng chn Design
Table

c. To mi quan h cho cc bng trong CSDL


to quan h cho mt CSDL trong SQL Server, chng ta nhp chut phi vo thnh
phn Diagrams ca CSDL tng ng chn New Database Diagram

Sau s hin th mt ca s mi

Khoa CNTT trng Cao ng ngh

24

Gio trnh H qun tr CSDL MS SQL Server 1

Nhn nt Next tip tc, mt ca s s hin ra:

Chn bng cn thit lp quan h v nhn nt Add a cc bng ny sang ca s bn


phi, chn vo ty chn Add related tables automatically nu mun SQL t ng thit lp
quan h.

Bm Next tip tc v Finish hon thnh vic to mi quan h.


d. Nhp d liu cho bng
Trong ca s Enterprise Manager, chn CSDL ri chn Tables.
Nhn chut phi ln bng cn nhp d liu, chn Open Table
o
o
o

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

Gio trnh H qun tr CSDL MS SQL Server 1

ngn ng lp trnh nhng cc cu lnh m SQL cung cp c th c nhng vo trong cc


ngn ng lp trnh nhm xy dng cc ng dng tng tc vi CSDL.
SQL l ngn ng c tnh khai bo. Ngi dng ch cn m t cc yu cu cn phi thc
hin trn CSDL m khng cn phi ch ra cch thc thc hin cc yu cu nh cc ngn ng
lp trnh.
6. Bi tp
Bi 1: S dng Enterprise Manager ca MS SQL thc hin cc yu cu sau
1. To mt CSDL tn QuanLyNhanVien.
2. To v thit lp quan h cho hai bng nh s sau:

3. Nhp d liu cho hai bng, mi bng t nht 10 bn ghi.


Bi 2: S dng Enterprise Manager ca MS SQL thc hin cc yu cu sau
1. To CSDL c tn QLDeAn
2. Xy dng cc bng v mi quan h da trn m hnh d liu sau

Khoa CNTT trng Cao ng ngh

26

Gio trnh H qun tr CSDL MS SQL Server 1

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

S dng c phn mm qun tr CSDL MS SQL Server


Thit k c cc bng d liu vi cc kiu d liu ph hp
Phn bit cc mi quan h 1-1, 1-n, n-n v thit lp c quan h cho cc bng.
Thc hin c cc truy vn Select, Insert, Update v Delete ca ngn ng SQL
Server trong cng c Query Analyzer.
- Thc hin cc thao tc an ton vi my tnh
Ni dung chnh
- ng nhp vo MS SQL Server.
- Cc kiu d liu trong MS SQL Server
- To CSDL trong MS SQL Server
- To bng trong MS SQL Server
- To quan h trong MS SQL Server
- Nhp d liu trong MS SQL Server
- Truy vn SQL Server
Ni dung chi tit
1. ng nhp vo MS SQL Server
Sau khi ci t thnh cng, vic ng nhp s c thc hin qua cc bc nh sau:
Vo Start/Programs/ Microsoft SQL Server/Service Manager ca s sau s xut hin:

Hnh 8: ng nhp SQL Server

Khoa CNTT trng Cao ng ngh

27

Gio trnh H qun tr CSDL MS SQL Server 1

Nhn vo nt Start/Continue bt u chy dch v ca SQL Server. Nu thnh cng,


ca s sau s xut hin:

Hnh 9:Chy dch v ca SQL Server


- Sau chng ta c th ng ca s ny li, mt biu tng s xut hin
gc phi di ca mn hnh (trn thanh toolbars).

2. Kiu d liu trong MS SQL


Tn kiu

M t

CHAR (n)

Kiu chui vi di c nh

NCHAR (n)

Kiu chui vi di c nh h tr UNICODE

VARCHAR (n)

Kiu chui vi di chnh xc

NVARCHAR (n)
INTEGER

Kiu chui vi di chnh xc h tr UNICODE


S nguyn c gi tr t -231n 231-1

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

S nguyn c gi tr t -263n 263-1

NUMERIC (p,s)

Kiu s vi chnh xc c nh.

DECIMAL (p,s)

Tng t kiu Numeric

FLOAT

S thc c gi tr t -1.79E+308 n 1.79E+308

REAL

S thc c gi tr t -3.40E + 38 n 3.40E + 38

Khoa CNTT trng Cao ng ngh

28

Gio trnh H qun tr CSDL MS SQL Server 1

MONEY

Kiu tin t

BIT

Kiu bit (c gi tr 0 hoc 1)

DATETIME

Kiu ngy gi (chnh xc n phn trm ca giy)

SMALLDATETIME

Kiu ngy gi (chnh xc n pht)

TIMESTAMP
BINARY

D liu nh phn vi di c nh (ti a 8000 bytes)

VARBINARY

D liu nh phn vi di chnh xc (ti a 8000 bytes)

IMAGE

D liu nh phn vi di chnh xc

TEXT

D liu kiu chui vi di ln

NTEXT

D liu kiu chui vi di ln v h tr UNICODE

3. To CSDL trong MS SQL Server


M giao din Query Analyzer. G c php lnh
CREATE DATABASE <tn CSDL>
Sau bi en, bm F5 hoc

thc thi cu lnh.

V d: Create Database QLHocsinh


CREATE DATABASE QLBanHang
Dng c php DROP DATABASE <tn CSDL> xa CSDL
4. To bng trong MS SQL Server
M giao din Query Analyzer. G c php lnh

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

Khoa CNTT trng Cao ng ngh

thc thi cu lnh.

29

Gio trnh H qun tr CSDL MS SQL Server 1

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

5. To quan h gia cc bng trong CSDL


Ngoi vic to quan h gia cc bng trong qu trnh to bng, ta c th thm cc rng
buc sau khi to bng theo c php sau

Hoc xa b bng c php


Sau bi en, bm F5 hoc
thc thi cu lnh.
V d: To quan h gia bng PhongBan v Nhanvien trong QLDeAn

Khoa CNTT trng Cao ng ngh

30

Gio trnh H qun tr CSDL MS SQL Server 1

6. Nhp d liu trong MS SQL Server


a. Thm d liu
INSERT INTO <TN BNG>
(
<TNTHUCTNH1>,
<TNTHUCTNH2 ,)
VALUES(<GI TR 1>, <GI TR 2>, )
)
Lu : Cc gi tr trong VALUES() phi tng ng vi cc thuc tnh trong tn bng
Nu c thuc tnh no khng c khai th gi tr ca b mi c thm vo ng vi thuc
tnh s c t bng Null
b. Sa d liu
UPDATE <TN BNG> SET
<THUC TNH 1> = <GI TR 1>,
<THUC TNH 2> = <GI TR 2>,

<THUC TNH n> = <GI TR n>


WHERE IU KIN>

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

t cc dng v cc ct ca mt hay nhiu bng, khung nhn. Cu lnh ny c th dng


thc hin php chn, php chiu v php ni. Ngoi ra, cu lnh ny cn cung cp kh nng
thc hin cc thao tc truy vn v thng k d liu phc tp khc
C php chung

Khoa CNTT trng Cao ng ngh

31

Gio trnh H qun tr CSDL MS SQL Server 1

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:

Khoa CNTT trng Cao ng ngh

32

Gio trnh H qun tr CSDL MS SQL Server 1

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:

Khoa CNTT trng Cao ng ngh

33

Gio trnh H qun tr CSDL MS SQL Server 1

SELECT TOP 5 hodem,ten,ngaysinh


FROM sinhvien
Ngoi cch ch nh c s lng dng cn hin th trong kt qu truy vn, ta c th ch
nh s lng cc dng cn hin th theo t l phn trm bng cch s dng thm t kho
PERCENT nh v d di y.
V d: Cu lnh di y hin th h tn v ngy sinh ca 10% s lng
sinh vin hin c trong bng SINHVIEN
SELECT TOP 10 PERCENT hodem,ten,ngaysinh
FROM sinhvien
c. Ch nh iu kin truy vn d liu
Mnh WHERE trong cu lnh SELECT c s dng nhm xc nh cc iu kin i
vi vic truy xut d liu. Sau mnh WHERE l mt biu thc logic v ch nhng dng d
liu no tho mn iu kin c ch nh mi c hin th trong kt qu truy vn.
* Trong mnh WHERE thng s dng:
+ Cc ton t kt hp iu kin (AND, OR)
+ Cc ton t so snh
+ Kim tra gii hn ca d liu (BETWEEN/ NOT BETWEEN)
+ Kim tra khun dng d liu.
+ Cc gi tr NULL
i. Cc ton t so snh
To
n t
=

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

Khoa CNTT trng Cao ng ngh

34

(gi_tr
(gi_tr>b)

<

a)

AND

Gio trnh H qun tr CSDL MS SQL Server 1

V d: Cu lnh di y cho bit h tn v tui ca cc sinh vin c tn l Bnh v c


tui nm trong khong t 20 n 22
SELECT hodem,ten,year(getdate())-year(ngaysinh) AS tuoi
FROM sinhvien
WHERE ten='Bnh' AND
YEAR(GETDATE())-YEAR(ngaysinh) BETWEEN 20 AND 22
iii. Danh sch (IN v NOT IN)
V d: bit danh sch cc mn hc c s n v hc trnh l 2, 4 hoc 5, thay v s dng
cu lnh
SELECT * FROM monhoc
WHERE sodvht=2 OR sodvht=4 OR sodvht=5
ta c th s dng cu lnh SELECT * FROM monhoc WHERE sodvht IN (2,4,5)
iv. Ton t LIKE v cc k t i din
T kho LIKE (NOT LIKE) s dng trong cu lnh SELECT nhm m t khun dng ca
d liu cn tm kim. Chng thng c kt hp vi cc k t i din sau y:
% :Chui k t bt k gm khng hoc nhiu k t
_ : K t n bt k
[] K t n bt k trong gii hn c ch nh (v d [a-f]) hay mt tp (v d [abcdef])
[^] K t n bt k khng nm trong gii hn c ch nh ( v d [^a-f] hay mt tp (v
d [^abcdef]).
V d: Cu lnh di y
SELECT hodem,ten FROM sinhvien
WHERE hodem LIKE 'L%'
Cu lnh:
SELECT hodem,ten FROM sinhvien
WHERE hodem LIKE 'L%' AND ten LIKE '[AB]%'
v. Gi tr NULL
L mt gi tr c bit trong SQL Server dng ch mt gi tr d liu khng cha g c.
d. To mi bng d liu t kt qu ca cu lnh SELECT
Cu lnh SELECT ... INTO c tc dng to mt bng mi c cu trc v d liu c xc
nh t kt qu ca truy vn. Bng mi c to ra s c s ct bng s ct c ch nh
trong danh sch chn v s dng s l s dng kt qu ca truy vn

Khoa CNTT trng Cao ng ngh

35

Gio trnh H qun tr CSDL MS SQL Server 1

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]

Khoa CNTT trng Cao ng ngh

36

Gio trnh H qun tr CSDL MS SQL Server 1

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

Gio trnh H qun tr CSDL MS SQL Server 1

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

Gio trnh H qun tr CSDL MS SQL Server 1

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

Khoa CNTT trng Cao ng ngh

39

Gio trnh H qun tr CSDL MS SQL Server 1

BI 5
THIT K, BO TR V PHT TRIN M HNH CLIENT/SERVER

Thi lng: 15 gi (5 gi L thuyt, 9 gi Thc hnh, 1 gi Kim tra)


Mc tiu bi hc
- c c h s thit k CSDL
- Thc hin c cc thao tc to ngi s dng, phn quyn cho ngi s dng
- Chuyn i c CSDL n gin t h qun tr CSDL MS SQL sang MS Access hoc
sang cc h qun tr CSDL khc v ngc li.
- Sao lu v phc hi c CSDL
- Thc hin cc thao tc an ton vi my tnh
Ni dung chnh
- c h s thit k CSDL
- Bo mt CSDL
- Chuyn i CSDL t cc ngun CSDL
- Sao lu d phng c s d lu
- Bo tr CSDL
Ni dung chi tit
1. c h s thit k CSDL
Bc u tin ca vic thit k CSDL l chng ta phi bit cch c h s thit k CSDL.
Vic c c s ny i hi chng ta phi nm r cc k hiu v quy nh c trnh
by trong mn hc CSDL.
2. Bo mt CSDL
a. Cc khi nim
Bo mt l mt trong nhng yu t ng vai tr quan trng i vi s sng cn ca CSDL.
Hu ht cc h qun tr CSDL thng mi hin nay u cung cp kh nng bo mt CSDL
vi nhng chc nng nh:
Cp pht quyn truy cp CSDL cho ngi dng v cc nhm ngi dng, pht hin v
ngn chn nhng thao tc tri php ca ngi s dng trn CSDL.
Cp pht quyn s dng cc cu lnh, cc i tng CSDL i vi ngi dng.
Thu hi (hu b) quyn ca ngi dng.
Bo mt d liu trong SQL c thc hin da trn ba khi nim chnh sau y:
Ngi dng CSDL (Database user): L i tng s dng CSDL, thc thi cc thao tc
trn CSDL nh to bng, truy xut d liu,... Mi mt ngi dng trong CSDL c xc nh
thng qua tn ngi dng (User ID). Mt tp nhiu ngi dng c th c t chc trong
mt nhm v c gi l nhm ngi dng (User Group). Chnh sch bo mt CSDL c th
c p dng cho mi ngi dng hoc cho cc nhm ngi dng.
Cc i tng CSDL (Database objects): Tp hp cc i tng, cc cu trc lu tr
c s dng trong CSDL nh bng, khung nhn, th tc, hm c gi l cc i tng
Khoa CNTT trng Cao ng ngh

40

Gio trnh H qun tr CSDL MS SQL Server 1

CSDL. y l nhng i tng cn c bo v trong chnh sch bo mt ca CSDL.


c quyn (Privileges): L tp nhng thao tc c cp pht cho ngi dng trn cc
i tng CSDL. Chng hn mt ngi dng c th truy xut d liu trn mt bng bng cu
lnh SELECT nhng c th khng th thc hin cc cu lnh INSERT, UPDATE hay
DELETE trn bng .
SQL cung cp hai cu lnh cho php chng ta thit lp cc chnh sch bo mt trong
CSDL:
Lnh GRANT: S dng cp pht quyn cho ngi s dng trn cc i tng CSDL
hoc quyn s dng cc cu lnh SQL trong CSDL.
Lnh REVOKE: c s dng thu hi quyn i vi ngi s dng.
b. Cp pht quyn
Cu lnh GRANT c s dng cp pht quyn cho ngi dng hay nhm ngi dng
trn cc i tng CSDL. Cu lnh ny thng c s dng trong cc trng hp sau:
Ngi s hu i tng CSDL mun cho php ngi dng khc quyn s dng nhng
i tng m anh ta ang s hu.
Ngi s hu CSDL cp pht quyn thc thi cc cu lnh (nh CREATE TABLE,
CREATE VIEW,...) cho nhng ngi dng khc.
i. Cp pht quyn cho ngi dng trn cc i tng CSDL
Ch c ngi s hu CSDL hoc ngi s hu i tng CSDL mi c th cp pht quyn
cho ngi dng trn cc i tng CSDL. Cu lnh GRANT trong trng hp ny c c
php nh sau:
GRANT ALL [PRIVILEGES]| cc_quyn_cp_pht
[(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
TO danh_sch_ngi_dng | nhm_ngi_dng
[WITH GRANT OPTION ]
Trong :

Khoa CNTT trng Cao ng ngh

41

ALL[PRIVILEGES]

cc_quyn_cp_pht

Cp pht tt c cc quyn cho ngi dng trn i tng CSDL


c ch nh. Cc quyn c th cp pht cho ngi dng bao
gm:
i vi bng, khung nhn, v hm tr v d liu kiu bng:
SELECT, INSERT, DELETE, UPDATE v REFERENCES.
i vi ct trong bng, khung nhn: SELECT v UPDATE
i vi th tc lu tr v hm v hng: EXECUTE
Quyn REFERENCES c s dng nhm cho php to kha
ngoi tham chiu n bng cp pht.
Danh sch cc quyn cn cp pht cho ngi dng trn i tng
CSDL c ch nh. Cc quyn phn cch nhau bi du phy

tn_bng |tn_khung_nhn

Tn ca bng hoc khung nhn cn cp pht quyn

danh_sch_ct

Danh sch cc ct ca bng/khung nhn cn cp pht quyn.

tn_th_tc

Tn ca th tc c cp pht cho ngi dng.

tn_hm

Tn h m (do ngi dng nh ngha) c cp pht quyn.

danh_sch_ngi_dng

Danh sch tn ngi dng nhn quyn c cp pht. Tn ca


cc ngi dng c phn cch nhau bi du phy

WITH GRANT OPTION

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).

Gio trnh H qun tr CSDL MS SQL Server 1

Cu lnh GRANT ALL ON diemthi TO thuchanh cp pht cho ngi dng


thuchanh cc quyn SELECT, INSERT, UPDATE, DELETE V REFERENCES trn
bng DIEMTHI
Khi ta cp pht quyn n o cho mt ngi dng trn mt i tng CSDL, ngi
dng c th thc thi cu lnh c cho php trn i tng cp pht. Tuy nhin,
ngi dng khng c quyn cp pht nhng quyn m mnh c php cho
nhng ngi s dng khc.Trong mt s trng hp, khi ta cp pht quyn cho mt
ngi dng n o , ta c th cho php ngi chuyn tip quyn cho ngi dng khc
bng cch ch nh tu chn WITH GRANT OPTION trong cu lnh GRANT.
ii. Cp pht quyn thc thi cc cu lnh
Ngoi chc nng cp pht quyn cho ngi s dng trn cc i tng CSDL , cu
lnh GRANT cn c th s dng cp pht cho ngi s dng mt s quyn trn h
qun tr CSDL hoc CSDL. Nhng quyn c th cp pht trong trng hp ny bao gm:
To CSDL: CREATE DATEBASE.
To bng: CREATE RULE
To khung nhn: CREATE VIEW
To th tc lu tr: CREATE PROCEDURE
To hm: CREATE FUNCTION
Sao lu CSDL: BACKUP DATABASE
Cu lnh GRANT s dng trong trng hp n y c c php nh sau:
GRANT ALL | danh_sch_cu_lnh
TO danh_sch_ngi_dng
V d: cp pht quyn to bng v khung nhn cho ngi dng c tn l thuchanh,
ta s dng cu lnh nh sau:
GRANT CREATE TABLE,CREATE VIEW
TO thuchanh
Vi cu lnh GRANT, ta c th cho php ngi s dng to cc i tng CSDL
trong CSDL. i tng CSDL do ngi dng no to ra s do ngi s hu v do
ngi ny c quyn cho ngi dng khc s dng i tng v cng c th xa
b (DROP) i tng do mnh to ra.
Khc vi trng hp s dng cu lnh GRANT cp pht quyn trn i
tng CSDL, cu lnh GRANT trong trng hp ny khng th s dng tu chn WITH
GRANT OPTION, tc l ngi dng khng th chuyn tip c cc quyn thc thi cc
cu lnh c cp pht.
c. Thu hi quyn
Cu lnh REVOKE c s dng thu hi quyn c cp pht cho ngi dng.
Tng ng vi cu lnh GRANT, cu lnh REVOKE c s dng trong hai trng hp:
Thu hi quyn cp pht cho ngi dng trn cc i tng CSDL
Khoa CNTT trng Cao ng ngh

43

Gio trnh H qun tr CSDL MS SQL Server 1

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

Gio trnh H qun tr CSDL MS SQL Server 1

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 quan h gia hai bng


Tip theo, chng ta nhp mt s bn ghi cho tng bng v ng c s d liu li.
Cc bc kt xut d liu t Access:
1 - To mt c s d liu SQL mi , y chng ta t tn l QLNV.
2 - Click chut phi ln c s d liu All Tasks/ Import Data

Hnh:Import Data
mt ca s s hin ra nh sau:

Khoa CNTT trng Cao ng ngh

45

Gio trnh H qun tr CSDL MS SQL Server 1

Hnh 5.3:Data Transformation Services


3 Nhn Next tip tc, ca s tip theo s hin ra:

Hnh 5.4:Choose a data source


4 Chn ngun c s d liu. Trong hp Data Source chn Microsoft Access, trong
hp File name chn c s d liu Access c to trc (QuanLyNhanVien.mdb) nh
hnh trn, nhn Next tip tc.
5 Chn c s d liu ch. mc nh nh hnh di y, nu bn chn kt ni
vi ti khon ca SQL Server th nh du vo Use SQL Server
Authentication, trong hp Username nhp ti khon ng nhp qun tr c s d
liu nh hnh di y:

Khoa CNTT trng Cao ng ngh

46

Gio trnh H qun tr CSDL MS SQL Server 1

Nhn Next tip tc, ca s mi hin ra:

6 mc nh nh hnh trn nu mun sao chp ton b bng v truy vn t c s


d liu ngun, nhn Next tip tc.
7 nh du vo bng v truy vn cn sao chp, nhn Next / Next tip tc:

8. Nhn Finish. i trong vi giy, ph thuc v o dung lng c s d liu ngun m


thi gian ny c th lu hn, sau nhn Done hon tt cng vic.
e. Xut c s d liu SQL Server sang c s d liu Access
Nhn chut phi ln c s d li

Export Data

Thc hin ln lt 8 bc tng t nh trn, ch thay i CSDL ngun v ch.


4.

Sao lu d phng c s d lu

Trong phn ny chng ta s bn v cch sao lu c s d liu(backup


database).
Khoa CNTT trng Cao ng ngh

47

Gio trnh H qun tr CSDL MS SQL Server 1

Gii Thch

Thut ng

Backup

Qu trnh copy ton b hay mt phn ca database, transaction log,


file hay file group hnh thnh mt backup set. Backup set c cha
trn backup media (tape or disk) bng cch s dng mt backup
device (tape drive name hay physical filename)

Device

Mt file vt l (nh C:\SQLBackups\Full.bak) hay tape drive c th


(nh \\.\Tape0) dng record mt backup vo mt backupmedia.

BackupFile

File cha mt backup set

Backup

Disk hay tape c s dng cha mt backup set. Backup Media


c th cha nhiu backup sets (v d nh t nhiu SQLServer 2000
BackupMedia
backups v t nhiu Windows 2000 backups).
BackupSet

Mt b backup t mt ln backup n c cha trn backup Media.

Chng ta c th to mt backup device c nh (permanent) hay to ra mt backup file


mi cho mi ln backup. Thng thng chng ta s to mt backup device c nh c
th dng i dng li c bit cho vic t ng ha cng vic backup. to mt backup
device dng Enterprise Manager bn chn Management->Backup ri Right-click>New Backup Device. Ngoi ra bn c th dng sp_addumpdevice system stored
procedure nh v d sau:
USE Master
Go
Sp_addumpdevice 'disk' , 'FullBackupDevice' ,
'E:\SQLBackups\Full.bak'
backup database bn c th dng Backup Wizard hoc click ln trn database
mun backup sau Right-click->All Tasks->BackupDatabase... s hin ra
window nh hnh v sau:

Khoa CNTT trng Cao ng ngh

48

Gio trnh H qun tr CSDL MS SQL Server 1

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:

Nu chng ta mun phc hi c s d liu t mt tp tin khc ca SQL Server hay


t mt server khc bn c chn ty chn From device v chn backup device (file
backup) tng ng .
6. Bi tp
1. To hai ti khon ng nhp l nguoisudung1, nguoisudung2 v cho php hai ti
khon ny s dng c s d liu QuanLyNhanVien.
2. Cp pht tt c cc quyn cho nguoisudung1, cp quyn SELECT cho
nguoisudung2 trn hai bng ca c s d liu QuanLyNhanVien.
3. Thu hi quyn Delete i vi nguoisudung1 trn bng DONVI.
4. Sao lu c s d liu QuanLyNhanVien v lu trn th mc
C:\BackUp\Data vi tn QLNV.bak.
5. Xa c s d liu QuanLyNhanVien khi h thng v phc hi li nh c nh tp
tin QLNV.bak.

Khoa CNTT trng Cao ng ngh

49

You might also like