Professional Documents
Culture Documents
-----***-----
BI GING
THC TP CHUYN NGNH (SQL SERVER)
TN HC PHN
: THC TP CHUYN NGNH (SQL SERVER) M HC PHN : 17413 TRNH O TO : I HC CHNH QUY DNG CHO SV NGNH : CNG NGH THNG TIN
HI PHNG - 2011
MC LC
Ni dung Chng 1: Gii thiu Microsoft SQL Server (2005) 1.1. Cc thnh phn v chc nng ca SQL Server 1.2. Gii thiu b cng c qun l SQL Server (2005) (SQL Server Management StudioSSMS) Chng 2: Ci t Microsoft SQL Server (2005) 2.1. Cc yu cu ci t (Installation requirements) 2.2. Thc hin ci t (Installation walkthrough) Chng 3: Bo mt v qun tr ngi dng 3.1. Qun l ng nhp SQL Server (Logins) 3.2. Qun l ngi dng SQL Server (Users) 3.3. Qun l cc nhm quyn CSDL (Database roles) 3.4. Qun l phn quyn ngi dng trong SQL Server (Permissions) Chng 4: To v qun l c s d liu 4.1. To c s d liu (Database) 4.2. Xa c s d liu Chng 5: To v qun l cc bng 5.1. To bng (Tables) 5.2. nh ngha cc ct (Columns) 5.3. nh ngha cc rng buc (Constrains) 5.4. Sa bng (ALTER TABLE) 5.5. Xa bng (DROP TABLE) 5.6. Thm bn ghi mi (INSERT) 5.7. Cp nht bn ghi (UPDATE) 5.8. Xa bn ghi (DELETE) Chng 6: Truy vn d liu 6.1. Truy vn c bn 6.2. Truy vn t nhiu bng 6.3. Truy vn lng nhau (Subqueries) Chng 7: Sao lu v phc hi CSDL 7.1. Sao lu CSDL 7.2. Phc hi CSDL Chng 8: Lp trnh vi ADO.NET 8.1. Gii thiu v nn tng .NET 8.2. ADO.NET 2.0 v SQL Server 8.3. Kt ni n SQL Server 8.4. Thc thi cc cu lnh SQL MT S THI MU Trang 5 5 5 7 7 8 9 9 9 10 11 12 12 13 14 14 15 17 20 21 22 23 23 25 25 27 29 31 31 34 38 38 38 39 40 44
3
Tn hc phn: Thc tp chuyn ngnh 2- SQL Server Loi hc phn: 2 B mn ph trch ging dy: H thng Thng tin Khoa ph trch: CNTT. M hc phn: 17413 Tng s TC: 3 Tng s tit L thuyt Thc hnh/Xemina T hc Bi tp ln n mn hc 75 30 45 0 c khng Hc phn hc trc: C s d liu; H qun tr c s d liu. Hc phn tin quyt: Khng yu cu. Hc phn song song: Khng yu cu. Mc tiu ca hc phn: Cung cp cho sinh vin kin thc v k nng cn thit qun tr c s d liu (CSDL) trong Microsoft SQL Server (2005); Gip sinh vin hiu cc chc nng ca Microsoft SQL Server (2005) xy dng cc ng dng c s d liu. Ni dung ch yu: Gii thiu Microsoft SQL Server (2005); Ci t v cu hnh Microsoft SQL Server; Bo mt v qun tr ngi dng; To v qun l CSDL; To v qun l cc bng; Truy vn d liu; Sao lu v phc hi CSDL; SQL Server v nn tng .NET; Xy dng cc ng dng SQL Server; Ni dung chi tit: PHN PHI S TIT TN CHNG MC TS LT TH BT KT Chng 1: Gii thiu Microsoft SQL Server (2005) 2 1 1 1.1. Cc thnh phn v chc nng ca SQL Server 1.2. Gii thiu b cng c qun l SQL Server (2005) (SQL Server Management Studio- SSMS) Chng 2: Ci t Microsoft SQL Server (2005) 3 1 2 2.1. Cc yu cu ci t (Installation requirements) 2.2. Thc hin ci t (Installation walkthrough) Chng 3: Bo mt v qun tr ngi dng 5 2 3 3.1. Qun l ng nhp SQL Server (Logins) 3.2. Qun l ngi dng SQL Server (Users) 3.3. Qun l cc nhm quyn CSDL (Database roles) 3.4. Qun l phn quyn ngi dng trong SQL Server (Permissions) Chng 4: To v qun l c s d liu 5 2 3 4.1. To c s d liu (Database) 4.2. Xa c s d liu Chng 5: To v qun l cc bng 10 4 6 5.1. To bng (Tables) 5.2. nh ngha cc ct (Columns) 5.3. nh ngha cc rng buc (Constrains) 5.4. Sa bng (ALTER TABLE) 5.5. Xa bng (DROP TABLE) 5.6. Thm bn ghi mi (INSERT) 5.7. Cp nht bn ghi (UPDATE) 5.8. Xa bn ghi (DELETE) Chng 6: Truy vn d liu 10 4 6 6.1. Truy vn c bn 6.2. Truy vn t nhiu bng 6.3. Truy vn lng nhau (Subqueries) Chng 7: Sao lu v phc hi CSDL 5 2 3 7.1. Sao lu CSDL
4
TN CHNG MC 7.2. Phc hi CSDL Chng 8: Lp trnh vi ADO.NET 8.1. Gii thiu v nn tng .NET 8.2. ADO.NET 2.0 v SQL Server 8.3. Kt ni n SQL Server 8.4. Thc thi cc cu lnh SQL 8.5. Xy dng cc ng dng SQL Server PHN PHI S TIT TS LT TH BT KT 30 12 18
Nhim v ca sinh vin: Tham d cc bui hc l thuyt v thc hnh, lm cc bi tp c giao, lm cc bi thi gia hc phn v bi thi kt thc hc phn theo ng quy nh. Ti liu hc tp: 1. Ray Rankins, Paul Bertucci, Chris Gallelli, Alex T.Silverstein, Microsoft SQL Server 2005 Unleashed, Sams Publishing, 2007. 2. Brian Knightet al, Professional SQL Server 2005 Administration, Wrox Press, 2007. Hnh thc v tiu chun nh gi sinh vin: - Hnh thc thi: t lun hoc vn p. - Tiu chun nh gi sinh vin: cn c vo s tham gia hc tp ca sinh vin trong cc bui hc l thuyt v thc hnh, kt qu lm cc bi tp c giao, kt qu ca cc bi thi gia hc phn v bi thi kt thc hc phn. Thang im: Thang im ch A, B, C, D, F. im nh gi hc phn: Z = 0,3X + 0,7Y. Bi ging ny l ti liu chnh thc v thng nht ca B mn H thng Thng tin, Khoa Cng ngh Thng tin v c dng ging dy cho sinh vin. Ngy ph duyt: Trng B mn / /
1.2. Gii thiu b cng c qun l SQL Server (2005) (SQL Server Management Studio- SSMS)
ng nhp
: Qun l c s d liu:
Bi tp: 1. Cc phng php ng nhp SQL Server 2. Cc thnh phn trong ca s qun l SQL Server
10
11
Bi tp:
1. Cc nhm quyn trong CSDL SQL Server 2. Cc quyn ngi dng trong CSDL SQL Server
12
13
4.2. Xa c s d liu
Click chut phi ln bng hay CSDL mun xa -> Delete - >OK. Trong trng hp xa mt CSDL, nn chn du tch vo Close existing connections. Khi SQL Server 2005 s ngt tt c cc kt ni vo CSDL ny v vic xa s khng gy bo li. Bi tp: 1. Thc hin to mt CSDL trong SQL Server 2. Thc hin sa i cu trc v d liu ca mt CSDL c trong SQL Server 3. Thc hin xo mt CSDL c trong SQL Server
14
Bng gm cc cc ct. Mi ct gm tn ct (Column Name), kiu d liu (Data Type) v mt gi tr cho bit ct c th cha gi tr NULL hay khng. Trong bng s c t nht mt ct lm kha chnh (primary key). Ct lm kha chnh s c biu tng cha kha trc tn ct.
15
Sau khi to xong tt c cc ct ca bng, tin hnh Save -> OK
16
Trn cc trng ca bng c tn ti nhng rng buc v khun dng, iu kin hp l ca d liu hay khng; nu c th s dng u v nh th no. Cu lnh CREATE TABLE c c php nh sau CREATE TABLE tn_bng ( tn_ct thuc_tnh_ct cc_rng_buc [,... ,tn_ct_n thuc_tnh_ct_n cc_rng_buc_ct_n] [,cc_rng_buc_trn_bng] ) Tn_bng: tun theo quy tc nh danh, khng vt qu 128 k t Tn_ct: cc ct trong bng, mi bng c t nht mt ct. Thuc_tnh_ct: bao gm kiu d liu ca ct, gi tr mc nh ca ct, ct c c thit lp thuc tnh identity, ct c chp nhn gi tr NULL hay khng. Trong kiu d liu l thuc tnh bt buc. Cc_rng_buc: gm cc rng buc v khun dng d liu (rng buc CHECK) hay cc rng buc v bo ton d liu (PRIMARY KEY, FOREIGN KEY, UNIQUE) V d: V d di y to mt bng c tn CUSTOMERS create table customers ( customerid int identity (1,1) primary key, customername nvarchar(50) not null, address nvarchar(100 ) null , birthday datetime null, gender bit default('true') not null ) Ct customerid c kiu d liu int, c ch nh thuc tnh identity(1,1) ngha l d liu ct ny c thm t ng bt u t 1 v mi ln c dng mi thm vo, gi tr ct ny c tng ln 1. Ct ny cng c ch nh lm kha chnh ca bng thng qua thuc tnh primary key. Thuc tnh NULL/ NOT NULL ch ra rng ct c chp nhn/ khng chp nhn gi tr NULL. Ct gender c ch nh gi tr mc nh l true ngha l nu khng ch nh gi tr cho ct ny th ct ny c gi tr l true V d: Thm dng mi vo bng customers vi gi tr truyn vo y cho cc ct insert into customers values('Nguyen Van An', '22 Nguyen Thien Thuat', '5/5/1988', 'True')
17
Thm dng mi vo bng customers s dng gi tr mc nh insert into customers (customername, addr ess, birthday) values('Nguyen Van An', '22 Nguyen Thien Thuat', '5/5/1988') Thm dng mi vo bng customers v khng truyn gi tr cho cc ct cho php gi tr NULL insert into customers (customername ) values('Nguyen Van An')
18
Nu kho chnh ca bng ch bao gm ng mt ct v rng buc PRIMARY KEY c ch nh mc ct, ta khng cn thit phi ch nh danh sch ct sau t kho PRIMARY KEY. Tuy nhin, nu vic khai bo kho chnh c tin hnh mc bng (s dng khi s lng cc ct tham gia vo kho l t hai tr ln) th bt buc phi ch nh danh sch ct ngay sau t kha PRIMARY KEY v tn cc ct c phn cch nhau bi du phy. V d 1: nh ngha mt bng ch c mt kha chnh create table customers ( customerid int identity(1,2) constraint chk_primarykey primary key, customername nvarchar(50) not null, address nvarchar(100) not null, gender bit not null ) Hoc l create table customers ( customerid int identity(1,2) primary key, customername nvarchar(50) not null, 60 address nvarchar(100) not null, gender bit not null ) V d 2: nh ngha bng c hai kha chnh: create table orderdetail ( customerid int, orderid int, itemid int not null, quantity decimal(8,2) not null, constraint chk_primarykey primary key (customerid, orderid) ) Rng buc FOREIGN KEY FOREIGN KEY l mt ct hay mt s kt hp ca nhiu ct c s dng p t mi lin kt d liu gia hai table. FOREIGN KEY ca mt bng s gi gi tr ca PRIMARY KEY ca mt bng khc v chng ta c th to ra nhiu FOREIGN KEY trong mt table.
19
FOREIGN KEY c th tham chiu vo PRIMARY KEY hay ct c rng buc duy nht. FOREIGN KEY c th cha gi tr NULL. Mc d mc ch chnh ca rng buc FOREIGN KEY l kim sot d liu cha trong bng c FOREIGN KEY (tc table con) nhng thc cht n cng kim sot lun c d liu trong bng cha PRIMARY KEY (tc table cha). V d nu ta xa d liu trong bng cha th d liu trong bng con tr nn "m ci" (orphan) v khng th tham chiu ngc v bng cha. Do rng buc FOREIGN KEY s m bo iu khng xy ra. Nu bn mun xa d liu trong bng cha th trc ht bn phi xa hay v hiu ha rng buc FOREIGN KEY trong bng con trc. Rng buc FOREIGN KEY c nh ngha theo c php di y: [CONSTRAINT tn_rng_buc] FOREIGN KEY [(danh_sch_ct)] REFERENCES tn_bng_tham_chiu(danh_sch_ct_tham_chiu) [ON DELETE CASCADE | NO ACTION | SET NULL | SET DEFAULT] [ON UPDATE CASCADE | NO ACTION | SET NULL | SET DEFAULT] Vic nh ngha mt rng buc FOREIGN KEY bao gm cc yu t sau: Tn ct hoc danh sch ct ca b ng c nh ngha tham gia vo kho ngoi. Tn ca bng c tham chiu bi kho ngoi v danh sch cc ct c tham chiu n trong bng tham chiu. Cch thc x l i vi cc bn ghi trong bng c nh ngha trong trng hp cc bn ghi c tham chiu trong bng tham chiu b xo (ON DELETE) hay cp nht (ON UPDATE). SQL chun a ra 4 cch x l. CASCADE: T ng xo (cp nht) nu bn ghi c tham chiu b xo (cp nht). NO ACTION: (Mc nh) Nu bn ghi trong bng tham chiu ang c tham chiu bi mt bn ghi bt k trong bng c nh ngha th bn ghi khng c php xo hoc cp nht (i vi ct c tham chiu). SET NULL: Cp nht li kho ngoi ca bn ghi thnh gi tr NULL (nu ct cho php nhn gi tr NULL). SET DEFAULT: Cp nht li kho ngoi ca bn ghi nhn gi tr mc nh (nu ct c qui nh gi tr mc nh). V d: drop table orderdetail create table orderdetail ( orderid int constraint fk_orderdetail_orders foreign k ey references orders(orderid) on delete cascade
20
on update cascade, customerid int constraint fk_orderdetail_customer foreign key references customers(customerid) on delete cascade on update cascade, itemid int constraint fk_orderdetail_items fore ign key references items(itemid) on delete cascade on update cascade, quantity decimal(18,2) not null, )
21
alter table orders drop chk_descriptionlength V d 5: Xa ct description alter table orders drop column description V d 6: Thm mt ct mi vo bng orders v thm rng buc cho ct ny alter table orders add description nvarchar(100) null, constraint chk_descriptionlength CHECK (len(description) > 0) Nu b sung thm mt ct vo bng v trong bng c t nht mt bn ghi th ct mi cn b sung phi cho php chp nhn gi tr NULL hoc phi c gi tr mc nh. Mun xo mt ct ang c rng buc bi mt rng buc hoc ang c tham chiu bi mt kho ngoi, ta phi xo rng buc hoc kho ngoi trc sao cho trn ct khng cn bt k mt rng buc v khng cn c tham chiu bi bt k kho ngoi no. Nu b sung thm rng buc cho mt bng c d liu v rng buc cn b sung khng c tho mn bi cc bn ghi c trong bng th cu lnh ALTER TABLE khng thc hin c.
22
drop table orders
23
insert into Customers_Backup select * from Customers Lu : Kt qu ca cu lnh SELECT phi c s ct bng vi s ct c ch nh trong bng ch v phi tng thch v kiu d liu.
24
Trong cu lnh ny, tn ca bng cn xo d liu c ch nh sau DELETE FROM. Mnh WHERE trong cu lnh c s dng ch nh iu kin i vi cc dng d liu cn xo. Nu cu lnh DELETE khng c mnh WHERE th ton b cc dng d liu trong bng u b xo. V d: delete from Items where itemid = 3 Xo d liu khi iu kin lin quan n nhiu bng Nu iu kin trong cu lnh DELETE lin quan n cc bng khng phi l bng cn xa d liu, ta phi s dng thm mnh FROM v sau l danh sch tn cc bng . Trong trng hp ny, trong mnh WHERE ta ch nh thm iu kin ni gia cc bng. V d: delete from orderdetail from items where items.itemid = orderdetail.itemid and items.itemname = 'LAPTOP' S dng truy vn con trong cu lnh DELETE Mt cu lnh SELECT c th c lng vo trong mnh WHERE trong cu lnh DELETE lm iu kin cho cu lnh tng t nh cu lnh UPDATE. V d: delete from orderdetail from items where items.itemid = (select i.itemid from items i inner join orderdetail od on i.itemid = od.itemid WHERE itemname = 'LAPTOP') Bi tp:
Thc hin cc thao tc to, sa, xo cc bng trong c s d liu sau Sach (MaSH, TenSH, TacGia, NXB, NamXB) DocGia (MaDG, TenDG, CMND, NgaySinh, DiaChi) PhieuMuon (MaPM, MaDG, NgayMuon) ChiTietPM (MaCTPN, MaPM, MaSH, NgayTra)
25
26
V d di y hin th tn khch hng v a ch cc khch hng hin c. select customername, gender, address from customers
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. S dng danh sch chn trong cu lnh SELECT bao gm cc t rng hp sau: Chn tt c cc ct: Nh ni trong chng 1, chng ta dng du * trong cu lnh Select hm chn ht tt c cc ct. Trong trng hp ny, cc ct c hin th trong kt qu truy vn s tun theo th t m chng c to ra khi bng c nh ngha. Chn mt s ct c th: Trong trng hp cn ch nh c th cc ct cn hin th trong kt qu truy vn, ta ch nh danh sch cc t n ct trong danh sch chn. Th t ca cc ct trong kt qu truy vn tun theo th t ca cc trng trong danh sch chn. Mnh FROM
27
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. Mnh WHERE - 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) Tp hp Kim tra khun dng d liu. Cc gi tr NULL
V d php kt ni t nhin: select c.CUSTOMERID, c.CUSTOMERNAME, c.BIRTHDAY, c.GENDER, c.ADDRESS, o.ORDERDATE from Customers c, Orders o where c.customerid = o.customerid hoc vit gn: select c.*, o.ORDERDATE
28
from Customers c, Orders o where c.customerid = o.customerid
Trong php kt ni bng, trng CUSTOMERID xut hin hai ln. S d tha c loi b bng cch s dng php kt ni t nhin v vic ch nh r cc ct ct cn truy xut. Trong cc cu lnh ni, ngoi iu kin ca php ni c ch nh trong mnh WHERE cn c th ch nh cc iu kin tm kim d liu khc (iu kin chn). Thng thng, cc iu kin ny c kt hp vi iu kin ni thng qua ton t AND. V d: select c.*, o.ORDERDATE from Customers c, Orders o where c.customerid = o.customerid and c.customerid = 3 Php t ni Php t ni l php ni m trong iu kin ni c ch nh lin quan n cc ct ca cng mt bng. Trong trng hp ny, s c s xut hin tn ca cng mt bng nhiu ln trong mnh FROM v do cc bng cn phi c t b danh. V d: Gi s c yu cu tm ra cc khch hng c nhi u hn mt n t hng trong cng ngy select c1.CUSTOMERID, c1.CUSTOMERNAME from customers c1, customers c2, orders o1, orders o2 where c1.customerid = o1.customerid and c2.customerid = o2.customerid and c1.customerid = c2.customerid and o1.orderdate = o2.orderdate and o1.orderid <> o2.orderid Cu truy vn c gii thch nh sau: Ln lt ly ra cc m khch hng, m ha n v ngy t hng t bng c1, o1 em so snh ln lt vi cc m khch hng, m ha n v ngy t hng t bng c2, o2. Nu vic so snh hai tp hp n y tha iu kin sau y: m khch hng trng nhau, ngy t hng trng nhau v c m ha n khc nhau th thng tin khch hng ny c cho vo kt qua truy vn. Php ni ngoi Trong cc php ni cp trn, ch nhng dng c gi tr trong cc ct c ch nh tho mn iu kin kt ni mi c hin th trong kt qu truy vn, v c gi l php ni trong (inner join) Theo mt ngha no , nhng php ni ny loi b thng tin cha trong nhng dng khng tho mn iu kin ni. Tuy nhin, i khi ta cng cn gi li nhng thng tin ny bng cch cho
29
php nhng dng khng tho mn iu kin ni c mt trong kt qu ca php ni. lm iu ny, ta c th s dng php ni ngoi. SQL cung cp cc loi php ni ngoi sau y: Php ni ngoi tri (k hiu: *=): Php ni ny hin th trong kt qu truy vn tt c cc dng d liu ca bng nm bn tri trong iu kin ni cho d nhng dng ny khng tho mn iu kin ca php ni Php ni ngoi phi (k. hiu: =*): Php ni n y hin th trong kt qu truy vn tt c cc dng d liu ca bng nm bn phi trong iu kin ni cho d nhng dng ny khng tho iu kin ca php ni.
30
V d: Cu truy vn sau y tm tn khch hng c tui ln nht select c.CUSTOMERNAME, c.ADDRESS from customers c where year(getdate()) - year(BIRTHDAY) = (select max(year(getdate()) - year(BIRTHDAY)) from customers) Nu truy vn con tr v nhiu hn mt gi tr, vic s dng php so snh nh trn s khng hp l. Trong trng hp ny, sau php ton so snh phi s dng thm lng t ALL hoc ANY. Lng t ALL c s dng khi cn so snh gi tr ca biu thc vi tt c cc gi tr tr v trong kt qu ca truy vn con; ngc lai, php so snh vi lng t ANY c kt qu ng khi ch cn mt gi tr bt k no trong kt qu ca truy vn con tho mn iu kin Ton t IN/NOT IN Khi cn thc hin php kim tra gi tr ca mt biu thc c xut hin (khng xut hin) trong tp cc gi tr ca truy vn con hay khng, ta c th s dng ton t IN (NOT IN) nh sau: WHERE biu_thc [NOT] IN (truy_vn_con) Truy vn con vi EXISTS Lng t EXISTS c s dng kt hp vi truy vn con di dng: WHERE [NOT] EXISTS (truy_v n_con) Lng t EXISTS (tng ng NOT EXISTS) tr v gi tr True (t ng ng False) nu kt qu ca truy vn con c t nht mt d ng (tng ng khng c dng no). iu khc bit ca vic s dng EXISTS vi hai cch nu trn l trong danh sch chn ca truy vn con c th c nhiu hn hai ct. Truy vn con v mnh HAVING Mt truy vn con c th c s dng trong mnh HAVING ca mt truy vn khc. Trong trng hp ny, kt qu ca truy vn con c s dng to nn iu kin i vi cc hm gp. Bi tp: 1. Cho cc lc quan h sau: Sach (MaSH, TenSH, TacGia, NXB, NamXB) DocGia (MaDG, TenDG, CMND, NgaySinh, DiaChi) PhieuMuon (MaPM, MaDG, NgayMuon) ChiTietPM (MaCTPN, MaPM, MaSH, NgayTra) a) Vit cu lnh SQL thc hin truy vn sau: Lp danh sch chi tit phiu mn gm MaSH, TenSH, NgayTra ca tt c cc quyn sch trong phiu mn c MaPM l PM0001. b) Vit cu lnh SQL thc hin truy vn sau: Lp danh sch gm MaDG, TenDG ca cc c gi mn sch trong ny 24/2/2009.
31
32
Trong qu trnh hot ng, SQL Server s dng transaction log theo di tt c cc thay i trn CSDL. Log bo m CSDL c th phc hi sau nhng s c t xut v cng m bo ngi dng c th quay ngc cc kt qu trong cc giao tc CSDL. Cc giao tc cha hon thnh c lu trong log trc khi c lu vnh vin trong CSDL. Transaction log backup sao lu transactio n log ca CSDL vo thit b lu tr. Mi khi transaction log c sao lu, SQL Server b i cc transaction thc hin thnh cng (committed tracsaction) v ghi cc transaction vo phng ti n sao lu. Transaction log backup s dng ti nguyn h thng t hn rt nhiu so vi full backup v differential backup, do c th s dng transaction log backup bt k thi gian no m khng s nh hng n hiu sut h thng. Tr li vi v d v cng ty XYZ. Cng ty ny thc hin full backup vo ti th 6 v differential backup vo ti t th 2 ti th 5. Cng ty thc hin thm qu trnh transaction log backup mi gi mt ln. Gi s s c CSDL xy ra vo 9h:05 sng th 4. Qu trnh khi phc li CSDL nhu sau: Dng full backup v differential backup c a ti th 6 v ti th 3 phc hi li trng thi CSDL vo ti th 3. Tuy nhin qu trnh ny vn cn mt d liu trong 2 gi (7 9h) sng th 4. Tip theo s dng 2 bn sao lu transaction backup lc 8h v 9h sng khi phc CSDL v trng thi lc 9h sng th 4. Cc thao tc thc hin qu trnh Backup
33
Click OK
34
35
36
Click OK hai ln
37
Click OK. Qu trnh phc hi hon tt Bi tp: Thc hin sao lu v phc hi cc c s d liu to chng trc.
38
ADO.NET l mt phn ca .NET Framework, n c xem l b th vin lp chu trch nhim x l d liu trong ngn ng MS.NET. ADO.NET c thit k vi dng d liu ngt kt ni, ngha l chng ta c th ly c mt cu trc phc tp ca d liu t database, sau ngt kt ni vi database ri mi thc hin cc thao tc cn thit. y l mt s tin b v mt thit k bi v thit k ADO trc y lun cn duy tr mt kt ni trong qu trnh thao tc d liu.
39
Oracle). SQL Server .NET Data Provider hot ng hiu qu hn bi v n thao tc trc tip vi SQL Server m khng cn phi thng qua OLE DB Provider. s dng 2 loi .NET Data Provider ny ta phi import 2 Namespace : System.Data.SqlClient cho SQL Server .NET Data Provider v System.Data.OleDb cho OLE DB Data Provider.
40
BeginTransaction: s dng cho trng hp x l giao tc ca ng dng. Vic x l giao tc rt c li trong khi x l d liu t database v c lc trong khi x l d liu gp li th c th thc hin cu lnh nh Rollback hay trong lc thao tc cng c th thc hin c cc giao tc chnh nh trn SQL Server nh Commit Close: ng 1 connection. Open: M 1 connection vi cc thuc tnh hin hnh. S kin InfoMessage: Xy ra khi provider gi ra 1 li cnh co hay thng tin. StateChange: Xy ra khi trng thi ca connection thay i. Sau y l on source code s dng i tng Connection kt ni vo c s d liu: * Dim connString As String = "server=CSC;database=Northwind;uid=sa;pwd=sa" Dim conn As SqlConnection = New SqlConnection(connString) 'mo ket noi conn.Open() 'Thuc hien cac thao tac du lieu 'dong ket noi conn.Close()
OleDbParameterCollection/ SQLParameterCollection). Connection: Thit lp / ly kt ni ang c i tng Command s dng. Transaction: Thit lp / ly giao tc m i tng Command thc thi.
41
Phng thc: ExecuteReader: Thc thi cu lnh CommandText ca i tng Command v tr v kiu DataReader (OleDbDataReader / SqlDataReader ). ExecuteNonQuery: Thc thi cu lnh CommandText ca i tng Command, y l dng cu lnh cp nht c s d liu (xo /sa) nn ch tr v s dng b nh hng m khng tr v dng d liu no. ExecuteScalar: Thc thi cu truy vn ca i tng Command v ch tr v ct u tin ca dng u tin ca kt qu. Cc kt qu cn li b b qua. - Cc hm khi to ca i tng SqlCommand (Tng t cho i tng OleDbCommand): New(): khng c tham s no. New(cmdText as String) ,trong : o cmdText l cu lnh truyn vo cho i tng Command. New(cmdText as String, connectin as SqlConnection), trong : o cmdText nh trn. o connection l i tng kt ni truyn vo cho i tng Command. New(cmdText as String, connection as SqlConnection, transaction as SqlTransaction), trong : o cmdText,connnection nh trn. o Transaction: l giao tc truyn cho i tng Command. Cc v d: - S dng cu lnh ExecuteNonQuery update d liu: * Dim connStr As String = "server=CSC;database=Northwind;uid=sa;pwd=sa" Dim cmdStr As String = "Update Customers set CompanyName='CSC' where
CustomerID='Seves'" Dim conn As New SqlConnection(connStr) conn.Open() Dim cmd As SqlCommand = New SqlCommand(cmdStr, conn) cmd.ExecuteNonQuery() conn.Close() - S dng cu lnh ExecuteReader ly d liu: * Dim conn As New SqlConnection("server=CSC; database=Northwind;uid=sa; pwd=sa") Dim cmd As New SqlCommand("Select * From Customers", conn) conn.Open() Dim rdr As SqlDataReader = cmd.ExecuteReader() While rdr.Read() Response.Write(rdr.GetString(0) + "")
42
End While rdr.Close() - S dng cu lnh ExecuteScalar ly d liu: * Dim conn As New SqlConnection("server=CSC; database=Northwind2;uid=sa; pwd=sa") conn.Open() Dim cmdStr As String = "Select * From Customers" Dim cmd As SqlCommand = New SqlCommand(cmdStr, conn) Response.Write(cmd.ExecuteScalar()) conn.Close() Bi tp: 1. Trnh by cc phng thc v thuc tnh ca i tng Connection? 2. Trnh by cc phng thc v thuc tnh ca i tng Command?
43
44
MT S THI MU
45 Trng i Hc Hng Hi Vit Nam Khoa Cng ngh Thng tin B MN H THNG THNG TIN -----***-----
Cu 1: (5 im)
Cho lc quan h sau: Suppliers(sid: integer, sname: string, address: string) Parts(pid: integer, pname: string, color: string) Catalog(sid: integer, pid: integer, cost: real) (Suppliers: thng tin v cc nh cung cp; Parts: thng tin v cc loi hng ha; Catalog: thng tin v gi bn cc loi hng ha ca cc nh cung cp). a. To mt c s d liu c cc bng tng ng vi lc quan h trn. b. Thc hin truy vn sau bng SQL: Hin th danh sch tn ca nhng nh cung cp c sn phm mu (RED) hoc mu xanh (GREEN)
Cu 2: (5 im) Xy dng mt ng dng vi c s d liu cu 1 cho php ngi s dng cp nht, sa, xo thng tin v cc nh cung cp, cc loi hng ho v thng tin v gi bn cc loi hng ho ca cc nh cung cp. ----------------------------------------***HT***---------------------------------------Lu : - Khng sa, xa thi, np li sau khi thi
46 Trng i Hc Hng Hi Vit Nam Khoa Cng ngh Thng tin B MN H THNG THNG TIN -----***-----
Cu 1: (5 im)
Cho lc quan h sau: Suppliers(sid: integer, sname: string, address: string) Parts(pid: integer, pname: string, color: string) Catalog(sid: integer, pid: integer, cost: real) (Suppliers: thng tin v cc nh cung cp; Parts: thng tin v cc loi hng ha; Catalog: thng tin v gi bn cc loi hng ha ca cc nh cung cp). c. To mt c s d liu c cc bng tng ng vi lc quan h trn. d. Thc hin truy vn sau bng SQL: Hin th danh sch tn ca nhng nh cung cp c tt c cc loi sn phm.
Cu 2: (5 im) Xy dng mt ng dng vi c s d liu cu 1 cho php ngi s dng cp nht, sa, xo thng tin v cc nh cung cp, cc loi hng ho v thng tin v gi bn cc loi hng ho ca cc nh cung cp. ----------------------------------------***HT***---------------------------------------Lu : - Khng sa, xa thi, np li sau khi thi