(NB) Mục đích của giáo trình là trang bị cho học viên những kiến thức và kỹ năng về xây dựngcác ứng dụng chuyên nghiệp theo mô hình Client/Server trên hệ quản trị cơ sở dữ liệu MS SQL Server; quản trị được hệ quản trị cơ sở dữ liệu MS SQL Server từ xa.
Trang 3L B B B T BB UỜ H ỚH Ệ
Bôn ng ghệ t ôn t n n àB àn p át trh g i g c g h iển và thậ m
nhập vào nhiều l n vĩ h ực tron ug c ộc ố g s n B Bon song g
với ự s p át trh iển óB là n u đ h cầu qu n lý ả dữ liệ u
t n và ả g dịch v ụ dữ liệu tron o n ng d a h ghiệpB
Vì v B tá ậ c giả đ ã biên so n u n ạ c ố giáo trìn h Hệ qu nả
qu n tr ả ị cơ ở dữ s liệu BB BQL B rv re e B qu n tr ả ị được hệ
qu n tr ả ị cơ ở dữ s liệu BB BQL B rv r t x Be e ừ a
Nội d un g chín h của giáo trìn h gồm á pc c hần chínhB
Thủ tục l u tr (Btorư ữ e Broced ceu BB TriggerB àmH( un t onBB B o m t tron BQL B rv r và B t nF c i ả ậ g e e ế ối ứ g n
n v s l u
dụ g ới cơ ở dữ iệ
Bặc d bả ù n t ân ã th đ ham Bhảo á tà lc c i iệu và ý Biế n
tham gia của c c đồ g á n nghiệpB son u n g c ố giáo trình
v n B ôn trán Bẫ h g h hỏi nhữ gn thiếu sótB Bon á g c c bạ n
Trang 4B B L BỤ Ụ
Trang 6Bô un đ Hệ qu n tr ả ị cơ s ở dữ liệu Bicroso t BQLf
B rv r B là mô un nân e e đ g cao của mô un đ Hệ qu nả
tr ị cơ ở dữ s liệu Bicroso t BQL B rv r B mà nf e e gười
XâB dự g được c c ứ g dụ g chn á n n uBên nghiệp the o
mô ìn Blh h ientBB rv r trên e e hệ qu n tr ả ị cơ ở s
Lý
t uBh ết
Thự
c ànhh
Kiể mtra*
*Hhi ch TúB hời gian Biểm tr a được tích hợp giữa lý
t uB t vh ế ới thực h àn h được tín vào h giờ thực h àn Bh
Trang 7BB Nội d un g chi tiế t
BBB BB
Trang 8l n BB ệ h
BQL B rv r un e e c g cấ p m t s á t ộ ố c c hủ t ục được
l u tr s n tron ư ữ ẵ g hệ t hố g gi n úp t hực hiệ n m t ộ
s ôn v ố c g iệc t hườ g n xuBênB Nó được gọi là t hủ
t ục hệ t hố g n –BBst m stor e ed pro ced ur sB Bòn e
n hữ g n t hủ t ục d o n gười ử dụ g s n t v ự iế t gọi là
Us r stor e ed pro ced ur sB e
BBs tron BQL B rv r g e e cũ g n t ươ g n t n ự hư h i B á
n iệ m v t ề hủ t ục tron á n ôn n g c c g gữ l p trìn ậ h
t àn ôn h h c g ha B t hấ t bại B
Trang 9ìn BB
H h B Bá t àn p c h h hầ n của BBs
BB Lợi ích hi B qu n lý ả dữ liệu bằ gn BBs
T n tă g ốc độ thực hiệ B t tron nnB ộ g hữ gn lợi ích l nớ
nhất Bhi s ử dụ gn BBs là tốc độB BBs được tối ư u oáhtron ng ga ởB l n ầ biên dịch đầu t ênB i điều nàB ch o
p ép h ch g cún ó thể thực hiện nha h hơn n nhiều l n soầ
với c c c á âu l n TBBQL t ôn tệ h h g hườ gn B
Tốc độ truB cập dữ liệu nha h hơ Kn nB hi thực thi
m t âu l n BQL t ì BQL B rv r pộ c ệ h h e e hải iể B m tra
p rm ss on x m us r e i i e e gửi c âu l n ó ó ệ h đ c được p éph
thực hiện âu l n c ệ h haB B ôn h g đồ gn thời iể B m tr úa c
p áp rh ồi mới t o r m t xạ a ộ e ecut pl n và te a hực
thiB N u ó nế c hiều âu l n nc ệ h hư v B ậ gửi qu n tworBa e
ó t làm m t làm v s rv rB BQL
B rv r s làm ve e ẽ iệc hiệu qu ả hơn n u ùn storế d g ed procedur vì ne gười gửi chỉ gửi m t âu l n ộ c ệ h đơn vàBQL B rv r e e chỉ iể B m tr m t l n s u ó t o r m ta ộ ầ a đ ạ a ộ
x ut pl n và t t B N u stor pro ur
n u l n t ì x ut pl n ó t sđược gọi hiề ầ h e ec e a c hể được ử
n l nên s làm v n n nB N oà r ú
p áp h của c c c á âu l n BQL ã ệ h đ được BQL B v r Be e iểm tra
trước hi B l u nên nó B ôn ư h g cần Biểm lại hi B thực thiB
Bhươ gn trình được mo ul d hoáB B t Bộ hi stored procedur e được t o r nó ó tạ a c hể được ử dụ g s n lại B
Ðiều nàB sẽ làm cho việc bảo trì(maintai abi in l tBB dễ d àn g hơn o vd iệc tách rời
us n ss rul s (t là n n lo t n
ên tron stor pro ur B và s l uB Ví
n u ó m t s t B nào ó v m t lo t ì
ta chỉ việc thaB đổi c de bo ên trong stored procedur mà t ô B Ne h i hữ g ứ g dụ g d gn n n ùn stored procedur nàB ó te c hể ẽ h s B ôn g cần phải tha đổiB mà
v n tẫ ươ gn t íh ch với b us n ss rul mi e e ớiB
Nhất quánB Lợi ích nữa của BBs là thiết đặt được ràn ug b ộc dữ liệu để đảm bảo tín nh hất quánB Người
Trang 10s ử dụ g hn B ôn tg hể thực hiện tu tỳ iện dữ liệu để làm
m t tín ún ấ h đ g đắn của dữ liệuB
Nân g cao Bhả n n ă g bảo m t ậ dữ liệuB Hiả ử ch g s ún ta
mu n ố giới hạn việc truB xu t ấ dữ liệu trực tiếp của
m t us r nào ó vào m t s ộ e đ ộ ố bả gn B t ó ta c hể viế t
m t storộ ed procedur e để truB xu t ấ dữ liệu và chỉ
o p ép us r ó s n stor pro ur ã
viết s n mà t ô ẵ h i chứ h B ôn tg hể thao tá trc ực tiế ptrên á c c bả g đn óB Ví dụB t ó ta c hể t o r BBs ạ a để ta làm chủ và chỉ c un g cấp quB n BXBUTB ề cho nhữ gn BBsnàBB vì thế nhữ gn người ử dụ g h c h s n B á B ôn g được p éph
trực tiếp làm việc với dữ liệuB
N oà r storg i a ed procedur ó te c hể được e c n rBpt(mã ó B h a để t n ă g cườ g bản o m tậ
B Bá Bc iểu BBs
BBs chia làm B loạiB
BBst m store ed procedur se B Thủ tục m nhữ gn người
s ử dụ g chỉ cn ó quB n tề hực hiệnB B ôn h g được p ép th ha BB
đổi
Us r store ed procedur sBe Thủ tục d o người ử dụ g s n
t o và tạ hực hiện
BBBB BBst m store ed procedur se
Là nhữ gn stored procedure chứa trong B st ra e
t s và t n t u n t p u n
Da aba e hườ g bắ đầ bằ g iế đầ gữ sp_ B
Bá storc ed procedur nàB t ue h ộc loại b i u ltB n vài
sp_who @loginame='DomainName\Administrators'
Người t ó ta c hể chia c c á BBst m store ed procedur se
t àn á loh h c c ại a s uB
Trang 11ìn BB
H h Bá loc ại của BBst m store ed procedur se
Bó àn tr m sBst m storh g ă e ed procedur tron BQLe g
B rv rB B n ó te e ạ c hể x m e chi tiết p ân loh ại và nội
un t n t t tron BQL B rv r BooBs Bnl n B
B u âB là m t s ta đ ộ ố hủ tục hệ thố gn thườ g ử dụ gn s n B
BBst m estored procedure
Trang 12BBBB Us rBe defi edn Btored Brocedure
BB BBBB B
a i a Bú p ápBh
Người ử dụ g c s n ó thể ử dụ g c s n âu l n BRBBTB BRBBB URB ệ h D để
t o tạ hủ tục tron BB L g D hiện tạiB
t s own r m n ó quB n s n âu l n
Da aba e e ặc đị h c ề ử dụ g c ệ h BRBBTB BRBBB URBBD
Bú p ápBh
CREATE PROC[EDURE] procedure_name
Ví dụB
CREATE PROCEDURE London_Flights AS
PRINT 'This code displays the details of flights to London' SELECT * FROM flight WHERE destination='Lon'
úHhi ch
Tên thủ tục phải tuân theo quB tắc đặt tên
T t ấ cả c c đối á tượ g của cơ ở dữn s liệu ó tc hể được
t o tron BBsB tr nạ g ừ hữ g đốin tượ g defan B ultsBrul sB tre iggersB procedur sB và ve iewsB
Nhữ g đốin tượ g đn ã được t o ó tạ c hể được tha m
u n n B B nó t oBchiế đế ga hi được ạ
Btored procedur s e có thể tham chiếu tới
nhữ g bả gn n phụ (t mpor rB te a ab el sBB
Bó thể c ó BBBB biến tron storg ed procedur Be
B ún t ó th g a c hể t o nạ hiều biến địa phươ gn trong stored procedur n u e ế bộ nhớ cho p épBh
Kích thước tối đa cho stored procedur là BBBeBBB
c B ử dụ g biến n tron Btorg ed Brocedur se
Biến ó tc hể được ử dụ g để s n nhập dữ liệu vào (BNBUTB
o xu t l u r n oà (BUTBUTB
h ặc ấ dữ iệ a g i
Trang 13N u ó nế c hiều biến tron tg hủ tục t ì Bh hi thực hiệ n
t la iệt Bê theo thứ t á ự c c biến và phải c ch á nha u
n u p BB
bằ g dấ hẩ
B
d B ên i dịch lại B R B omp l n Btor B roe ci i g e d cedur se
Khi người ử dụ g s n làm tha đổiB tới nhữ g i den n x của
n B Btor pro ur s p ên l
(recomp li ed để chấB p nhận nhữ gn tha đổi đB óB
Bó B ác ch để biên dịch lại procedur sBe
Bách BB Bử dụ gn sp r_ ecomp li e sBst m store ed procedur B B n ó te ạ c hể ử dụ g c ch s n á nàB để biên dịch lại
thủ tục ở l n ầ chạ ếB B tiếp của nóB
Bú p ápBh
sp_recompile [@objectname=] ‘object’
Bách BB Bhỉ ra BBT RBBBBBBLB tronH g câu l nệ h BRBBTBBRBBB URBB BQL B rv r s D e e ẽ biên dịch lại thủ tục ở mỗi l nầ
nó thực hiệnB
Bú p ápBh
Trang 14CREATE PROCEDURE procedure_name
@Parameter_name data_type
WITH RECOMPILE
AS
Bách BB Bhỉ r BBT RBBBBBBLB tron âu l n BXBBUTBBa H g c ệ h
B ên i dịch lại ga ở n B l n tầ hực hiện nàBB
Bú p áph : EXEC[UTE] procedure_name WITH RECOMPILE
B
e Bửa cấu trú c của Btored Brocedur se
Bâu l n ệ h ALTER PROCEDURE được ử dụ g để ửa s n s BBB
Bú p áp th ươ gn t BRBBTB BRBBB URB ự D chỉ thaB t ừ CREATE bằ g nALTERB
Việc sửa chữa v n l u lẫ ư ại quB n ề của người s ử dụ g n(us r p rm ss onsBe e i i
B
f T ôn áo lh g b ỗi
Tr v mã lả ề ỗi (Bode h ặc cB o âu l n RBBBBRRBR ó tệ h c hể
DECLARE @return_variable_name data_type
EXECUTE @return_variable_name = procedure_name
ALTER PROCEDURE Titles_Pub
Trang 15N oà vg i iệc ử dụ g c s n âu l n RBBBBRRBRB t òn ó tệ h a c c hể
ùn BRBNT n t t ôn áo l o n s n B
d g để hiể hị h g b ỗi ch gười ử dụ g TuB nhiênB nhữ gn lời nhắc nàB chỉ là t m tạ hời và chỉ
n t o n s n B B ún t n s n âu l nhiể hị ch gười ử dụ g h g a cầ ử dụ g c ệ h RBBBBRRBR để ghi lại nhữ gn lỗi nàB và án g cho nó mức
Trang 16BB Hiệu qu ả của việc chỉ r BBT RBBBBBBLB tron Ba H g hi đị h n
nghĩa Btored Brocedur (BBB là ì?e g
BB BB được biên dịch lại ở ngaB l n tầ iếp theo nó thực
n B
hiệ
BB BB được biên dịch lại ở t t ấ cả c c á l n nó tầ hực hiệnB
BB BB được biên dịch lại hi B BQL B rv r Be e hởi độ gn
BB BB được biên dịch lại hi c B ó chỉ ố được s t o trên áạ c c
Trang 17 B ửa đổi được t hủ t ục đ ã n n đị h ghĩa B
Xó a được c c á t hủ t ục B
Trang 18BBB B BTRBGGBR
Đị h ghĩa được igge
Bp dụ g đượcn m n ệ h đề F B UB BTB tron TrD g igger để
B Hiới thiệu Trigger
Trigger là m t loộ ại stored procedur e đặc biệtB
và nó s ẽ được t ự độ gn thực thi hi c B ó s Bự iện tươ g ứ g n n
tác độ gn B Bó B loại triggersB DBL triggersB DD L
triggersB và lo on trg iggersB
L tr rs là á tr r s t n t
DD igge c c igge ẽ được ự độ g hực
thi hi ả B x B r á s Ba c c ự iện l ên qu n i a đến n nđị h ghĩa dữ
liệu trên phạm v s rv r oi e e h ặc da aba e DDt s B L là
viết t t ắ của da a defi i it n t on l n ua g ageB
Lo on trg iggers là trigger được Bích h ạ o t tươ g n
n v s B n LB BNB B B n nàB p át s n B us r
ứ g ới ự iệ H ự iệ được h i h hi e
s ss on e i được thiết l p ậ đối với m t nst nộ i a ce của BQL
B rv rBe e
BL tr rs là á tr rs s t n t
D igge c c igge ẽ được ự độ g hực
thi hi c c c B á ó s Bự iện thao tá c dữ liệu x B tả ươ g ứ g n n
l ên qu n ti a hao tá c dữ liệu trên tab e h ặcl o vie w
BL trD igger giố gn như m t storộ ed procedur Be
nghĩa là trigger cũ g ẽ chứan s t p ậ hợp á âu l nc c c ệ h TBBQLB TuB nhiênB t B ôn ta h g hể p át lh ời gọi trực
tiếp đối với triggerB Bác câu l nệ h bên trong
trigger s t ẽ ự độ gn thực thi hi c B ó thao tá c dữ
liệu tươ g ứ gn n x B r trên ả a đối tượ gn Tab el mà nó
Trang 19Bước BB B QBB ở chọn cơ ở dữ s liệu BBF
Bước BB Thực hiện o n l n s u tron QBBđ ạ ệ h a g
CREATE TRIGGER insert_trigg
ghi g bả g a e ge đồ g hời
Bá c bước thực hiệnB
Bước BB Tron QB tg hực hiện như a s uB
CREATE TRIGGER delete_trigg
ON Passenger
FOR Delete
Trang 20No o_ f_ eas ts tron g bả gn R s rv t on B ôn e e a i h g được cậ p
nhật giá tr l n ị ớ hơn B và Bourn B te _dae h g B ôn n h ỏ hơ n
n àB g hiện tạiB
Bá c bước tiến ành h
Bước BB Thực hiện như a s u tron QBBg
CREATE TRIGGER CheckingUpdate
ON Reservation
FOR UPDATE
AS
IF((Select no_of_seats From inserted)>5)
OR ((Select journey_date From Inserted)<getdate())
BEGIN
PRINT 'Error'
ROLLBACK TRAN
Trang 21Loại Trigger được thực hiện Bhi dữ liệu tron g cộ tnào ó đ được cập nhậtB
Bước BB Thực hiện như a s u tron QBBg
CREATE TRIGGER Col_Update_trig
Trang 22Bước BB BâB giờ ch gB ún t s ta ẽ hử cập nhật cột Fa er B
Trang 23B Hiển t hị da hn sách c c á trigger tron Bg D
B ử dụ gn thủ tục hệ t ôn sph g _helptrigger để hiển thị
X m xét ví e dụ a s uB T o Trạ igger để iể B m tr a dữ liệ u
nhập vào cột Beal Bref của bả g a e gen B ss n r phải là dữ
liệu ã t n tđ ồ ại tron g cột Beal oc de của bả g eas n B lB
Bước BB Thực hiện như a s u tron QBBg
CREATE TRIGGER ins_trig
ON Passenger
FOR INSERT
AS
IF (Select [Meal Pref]FROM INSERTED)
NOT IN (Select meal_code FROM Meal)
Trong N ste ed triggerB m t trộ igger có thể được
thực hiện l n tron trồ g g igger B á B B ún t ó th c h g a c hể
l n trồ g igger tối đa BB mứcB N ste ed trigger cho p éph
ca cade da e ca cade de e e
Thực hiện âu l n c ệ h để Bích h ạ o t N ste ed triggerB
Trang 24sp_configure ‘nested trigger’, 1
Ngược lạiB
sp_configure ‘nested trigger’, 0
T o B sạ a cade de e el t trigger để thực hiện ôn vc g iệc
s uB N u xoá m t a ế ộ chuB n ế baB tron g bả g F ighn l tB t ìh
t t ấ cả c cá t ônh g t n l ên qu n troni i a g bả g n
l t t ls s xoáB
F igh _De ai ẽ bị
Bước BBThực hiện như a s u tron QBBg
CREATE TRIGGER Casc_del
Bước BBT o ạ De e el t Trigger B á trên h c bả g F ighn l tB
Trigger nàB s tẽ hực hiện Bhi trigger B sa c_del thực nB
SELECT * FROM Flight
SELECT * FROM Flight_Details
Bước BBThực hiện câu l nệ h
B Bước BB Bâu l n ệ h được thực thi h B ôn x B rg ả a
B Bước BB Bá âu l n c c ệ h của BNBTBB B trD F igge được r
thực thi
Trang 25liệu x B r ả a đối với tab e cl ó tên tab cB ó cấu trúc
T ó ta c hể viết trigger như a s uB
create trigger del_InsteadOf_tab1 on tab1
tab el tabB với việc ử x lý lại dữ liệu ns rt ti e he o
ý đồ ử x lý nghiệp v nào óBụ đ
alter trigger ins_InsteadOf_tab1 on tab1
instead of insert as
begin
declare @a int,@b int
select @a=a,@b=b from inserted
insert tab1 values(@a+10,@b+5)
Bước BBThực hiện như a s u bằ gn QBB
CREATE TRIGGER instead_trigg
Trang 26Select Service_code AS 'Deleted columns' From Deleted
Select Service_code AS 'Table contents' From Service
END
Bước BBThực hiện âu l n s uBc ệ h a
INSERT INTO Service Values(‘FA’, ‘First Aid’)
K t qu Bế ả
Bâu hỏi và à t pb i ậ
Thực hiện nhữ gn Bêu cầu s u a bằ gn QBB
B T o BNBBRT trạ igger ó tên nsc i _ch cB l ss trên na b ả g
R s rv t onB Tre e a i igger đảm bảo r n ằ g dữ liệu được
nhập vàp trườ g c an l ss oc de t n tồ ại tron g bả g n
Bl ss m st r và s a _ a e ố ghế được đặt B ôn quá BBh g
B T o ạ B sa cadi gn UB BTBD trigger có tên
upd_ ea c dem l o tron g bả g ean B lB Khi meal oc de tron g bả g ean B l được cập nhật t ì nh hữ g dữn liệ u
l ên qu n tron i a g bả g in B rl ni e_ eam l cũ g được cậ n p
trigger tên là de _da đểl B xoá dữ liệu trong
ViewB Kiểm tr la ại ự s thực hiện của triggerB
Trang 27Yêu cầu Biểm tr án a đ h giá B t qu ế ả học t pậ
B át h biểu được h i iệ B á n m bả g dữn liệuB
T o l p ạ ậ được cấu trú c bả gn B
Thiết l p ậ được c c á trườ gn B t uh ộc tín Bh
Thao tá c được với dữ liệu tron g Da a heet s t viewB
Trang 28B n ũ g giố gn như Btored Brocedur B àm là m t e H ộ đối
tượ gn tron g cơ ở dữ s liệu bao gồm m t t p nộ ậ hiều âuc
l n BQL ệ h được n óm lh ại với nhau t àn m t n ómB h h ộ h Điể m
B á h c biệt giữa h àm và thủ tục là àm tr v m t h ả ề ộ gi á
tr t ôn qu tên àmB ị h g a h Điều nàB cho p ép t s h a ử dụ g n
àm n là m t t àn p n m t u t n
n n tron á âu l n truB v n B á âu l n
àm v u (Btr n un t onsBB á àm v n àB
t án (h g Da e a dt n T m un t onsBB Bá àm toán i e F c i c h học (B ta he a icam t l un t onBB BBB F c i
N oà ng i hữ g hn àm o d hệ qu n tr ả ị cơ ở dữ s liệu unc g
Bá àm o nc h d gười d g đị h ùn n nghĩa thườ g cn ó B loại B
Loại B là àm vH ới giá tr tr v là "ị ả ề dữ liệu Biể u
Trang 29BEGIN
Cac_Cau_Lenh_Cua_Ham
END
B T ne _HamB Tên của h àm cần t oB Tên pạ hải tuân the o
qu ti ắc đị h da h n n và B ôn trùn vh g g ới tên của c c h á àm
t n ó s nB
hệ hố g c ẵ
B Da h_ ach_ ac_n Bh B Ta _m B oB Bá t m sc h a ố của h àm được
Bhai b áo ngaB s u tên àm và a h được bao bởi cặp dấu (BB
n sá á t m s nàB ó t B ôn ó B tr n p
Da h ch c c ha ố c hể h g c ườ g hợ nàB t ì s u tên àm h a h cần ó c cặp dấu (BB N u àm óế h c
nhiều tham s t ì á Bố h c c hai b áo p ân áh c ch nhau bởi
u p B và p o m B p nB Tên t m s t
u u @B K u l u t m s B
đầ bởi dấ iể dữ iệ của ha ố
B Bac_ aB u L n_ e h _ Bua_HamB T p ậ hợp á âu l n s c c c ệ h ử dụ g ntron ng ội d un àm g h để thực hiện á Bêu c c cầu của h àmB
Ví dụ BB àm B ôn ó H h g c Da h_ ach_ ac_n Bh B Ta _m B o B tr vBả ề
Da h_ ach_ ac_h a _ H ẽ ả ề ố g c ủa h g
n m o nă d gười d g ùn truB n vàoB ề
CREATE FUNCTION dbo.fuDaysInMonth (
Trang 30DECLARE @KetQua NVARCHAR(10)
SELECT @KetQua=CASE DATEPART(DW,@ngay)
WHEN 1 THEN N'Chủ nhật'
WHEN 2 THEN N'Thứ hai'
WHEN 3 THEN N'Thứ ba'
WHEN 4 THEN N'Thứ tư'
WHEN 5 THEN N'Thứ năm'
WHEN 6 THEN N'Thứ sáu'
thườ gn trước tên àm t ph a hải chỉ đị h n t êm tên h của
người ở hữ s u àm h bằ g dbn oBB như ví dụ dưới đ âBB
SELECT e.FirstName, e.LastName,
dbo.fuThu(e.BirthDate) AS ThuOfBirth
FROM Employees e
Trang 31B àm vG ới giá tr tr v là "ị ả ề dữ liệu Biểu bả gn "
Categories INNER JOIN
Products ON Categories.CategoryID = Products.CategoryID
bạ đ c ế ả hư hư g ới hữ g a eg D h c
t ì Vh iew vBro u ts B ôn làm d c h g đượcB Vì v BB t s ậ a ử dụ g n
àm t o ví B
Ví dụ BB T o m t àm tr v ạ ộ h ả ề dữ liệu dạ g bả gn n tùB
theo giá tr ị của biến ca egt orBB truB n vàoBD ề
CREATE FUNCTION fuGetProducts
Trang 32Products ON Categories.CategoryID = Products.CategoryID
WHERE Categories.CategoryID=@CategoryID)
Tiến àn h h chạB thử h àm trên (B ú ý là Bh hi h àm trả
v ề dạ g bả gn n t a cũ g c i đn o ó như m t tộ ab e h ặcl o m tộ
View và người d g c ùn ó thể truB v n tấ heo m t ộ haB nhiề u
trườ g của hn àmB như a s uB
Trang 33cấ h ề ch gười d g được h hai h c D
là m t Bêu ộ cầu đặc biệt cần thiếtB Nội d un à g b i học ố s
B s ẽ hướ g dẫn n ác ch thức t o Us rB ạ e cấp quB nB t u quB nề h ề
T hực hiệ n đựợc c c biệ á n p áp n toàn h a ch o máB tínhB
thao tá trá p ép c i h của gười ử dụ g n s n trên BB LBD
• B p p át quB n s ấ h ề ử dụ g c c cn á âu l n B á ệ h c c đối
tượ g Dn BB L đối với gười d g n ùn B
• T u h hồi ( u h ỷ bỏB quB n ề của gười d g n ùn B
B o m t ả ậ dữ liệu tron BQL g được thực hiện dựa trên
n B truB xu t l uBBBB B m t n ùn tron
BB L D được xá n t ôn qu tên nc đị h h g a gười d g ùn (Us r B BBe D
B t t p nộ ậ hiều người d g c ùn ó thể được t ổ chức trong
m t n óm và ộ h được gọi là
n óm nh gười d g ùn (Us re roupBB B ín sá o m t
H h h ch bả ậ BB L ó tD c hể được áp dụ g n
o m n ùn o o á n óm n ùn B
ch ỗi gười d g h ặc ch c c h gười d g