Вы находитесь на странице: 1из 85

LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

§Æt vÊn ®Ò
¾ C¬ së d÷ liÖu vµ qu¶n trÞ c¬ së d÷ liÖu lµ mét trong nh÷ng vÊn ®Ò cèt
lâi cña tin häc. XÐt cho cïng khi øng dông tin häc ®Ó gi¶i quyÕt c¸c bµi
to¸n th× ng−êi ta ph¶i gi¶i quyÕt vÊn ®Ò x©y dùng c¬ së d÷ liÖu vµ x©y
dùng thuËt to¸n xö lý chóng. Khi c¬ së d÷ liÖu cµng lín nhu cÇu xö lý
phøc t¹p, yªu cÇu b¶o mËt cµng cao th× vÊn ®Ò qu¶n trÞ c¬ së d÷ liÖu cµng
phøc t¹p. V× vËy c¸c môc tiªu cña ®Ò ¸n nµy lµ t×m hiÓu khai th¸c SQL
Server vµ sö dông nã ®Ó gi¶i quyÕt bµi to¸n qu¶n lý d©n c−. Tõ môc tiªu
cña ®Ò ¸n chóng ta thÊy r»ng néi dung cña ®Ò ¸n gåm cã hai phÇn c¬ b¶n:
1. T×m hiÓu khai th¸c SQL Server.
2. Gi¶i quyÕt bµi to¸n qu¶n lý d©n c− trªn SQL Server.
¾ Lý do chän Microsoft SQL Server:

• XuÊt ph¸t tõ ®Æc ®iÓm bµi to¸n kÝch th−íc lín, ph©n t¸n, ®a ng−êi
sö dông.

• MS SQL Server lµ hÖ qu¶n trÞ c¬ së d÷ liÖu hç trî tèt víi l−îng d÷


liÖu lín, cho phÐp ng−êi sö dông theo m« h×nh Client/Server.

• MS SQL Server tiÖn dông trong viÖc ph©n t¸n tra cøu d÷ liÖu
nhanh.

• MS SQL Server hç trî m¹nh víi d÷ liÖu ph©n t¸n.


¾ MS SQL Server ch¹y trªn m«i tr−êng Win NT (Server) vµ Win 9.X,
Win 2000 (Client), ...
¾ SQL Server lµ mét trong nh÷ng hÖ phÇn mÒm tiÖn lîi vµ hiÖu qu¶ trong
viÖc ph¸t triÓn c¸c øng dông c¬ së d÷ liÖu lín, ph©n t¸n thÝch hîp cho c¬
quan, tæ chøc, ®Þa ph−¬ng, ...
¾ MS SQL Server hç trî tèt trong qu¶n lý xö lý ®ång nhÊt, b¶o mËt d÷
liªu theo m« h×nh Client/Server trªn m¹ng.
¾ Víi m¸y chñ cã MS SQL Server cã thÓ qu¶n trÞ nhiÒu Server víi tªn
kh¸c nhau (c¸c Server lµ hÖ qu¶n trÞ c¸c c¬ së d÷ liÖu riªng cña m×nh), vµ
nhãm c¸c Server (Server group).

-1-
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

¾ Trªn mçi Server th«ng th−êng cã nhiÒu c¬ së d÷ liÖu (Databases). Mçi


c¬ së d÷ liÖu chøa mét sè ®èi t−îng c¬ së d÷ liÖu lµ c¸c b¶ng, c¸c khung
nh×n (view), hay c¸c thñ tôc truy vÊn (query). Mçi c¬ së d÷ liÖu sÏ chøa
danh s¸ch nh÷ng ng−êi sö dông c¬ së d÷ liÖu ®ã, hä ®−îc trao mét sè
quyÒn nhÊt ®Þnh ®Ó truy nhËp ®Õn tõng ®èi t−îng. Ng−êi sö dông cã
quyÒn cao nhÊt víi mét c¬ së d÷ liÖu chÝnh lµ ng−êi t¹o ra c¬ së d÷ liÖu
®ã (Owner).
¾ Chñ nh©n c¬ së d÷ liÖu (Database Owner) lµ ng−êi sö dông t¹o nªn c¬
së d÷ liÖu, mçi c¬ së d÷ liÖu cã mét chñ nh©n, chñ nh©n c¬ së d÷ liÖu cã
®Çy ®ñ ®Æc quyÒn bªn trong c¬ së d÷ liÖu vµ x¸c ®Þnh cung cÊp kh¶ n¨ng
truy cËp tíi ng−êi kh¸c. Trong c¬ së d÷ liÖu cña m×nh ng−êi sö dông ®−îc
giíi thiÖu nh− lµ DBO trong c¬ së d÷ liÖu kh¸c, Chñ nh©n c¬ së d÷ liÖu lµ
®−îc biÕt ®Õn bëi tªn sö dông c¬ së d÷ liÖu cña hä.
¾ Chñ nh©n cña c¸c ®èi t−îng c¬ së d÷ liÖu (Database Object Owner) lµ
ng−êi sö dông t¹o ra c¬ së d÷ liÖu (c¸c b¶ng, c¸c chØ sè, c¸c khung nh×n,
mÆc ®Þnh, c¸c trigger, c¸c quy t¾c, vµ c¸c thñ tôc ). Mçi c¬ së d÷ liÖu cã
duy nhÊt mét ng−êi t¹o ra. Chñ nh©n cña c¸c ®èi t−îng c¬ së d÷ liÖu lµ tù
®éng g¸n quyÒn cho phÐp toµn bé trªn ®èi t−îng c¬ së d÷ liÖu. Chñ nh©n
cña ®èi t−îng c¬ së d÷ liÖu cã thÓ trao quyÒn cho phÐp tíi ng−êi sö dông
kh¸c, tíi ®èi t−îng sö dông.
¾ SQL Server l−u tr÷ c¬ së d÷ liÖu trªn c¸c thiÕt bÞ kh¸c nhau, mçi thiÕt
bÞ cã thÓ n»m trªn ®Üa cøng, mÒm, b¨ng tõ, cã thÓ n»m trªn nhiÒu ®Üa.
¾ C¬ së d÷ liÖu cã thÓ ®−îc l−u tr÷ trªn mét hay nhiÒu thiÕt bÞ. Còng cã
thÓ më réng kÝch th−íc thiÕt bÞ vµ thiÕt bÞ l−u tr÷ mét c¬ së d÷ liÖu.
¾ SQL Server cho phÐp qu¶n trÞ víi tÖp d÷ liÖu lín tíi 32 TB (Tetabyte).
¾ SQL Server ®· kÕ thõa cïng Windows NT t¹o nªn mét hÖ thèng b¶o
mËt tèt qu¶n trÞ user, Server, vµ nh÷ng tiÖn Ých cña Windows NT.

-2-
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Ch−¬ng I CÊu tróc MS SQL Server


I. Nhãm Server vµ Server
I.1 T¹o nhãm Server
¾ B¹n cã thÓ t¹o nhãm Server víi SQL Server Enterprise Manager vµ ®Æt
Server cña b¹n trong nhãm Server. Nhãm Server cung cÊp h−íng thÝch
hîp ®Ó tæ chøc sè l−îng lín Server vµo trong mét nhãm.
¾ C¸c b−íc t¹o mét nhãm Server míi (Enterprise manager)
1. Trªn menu Tools, chän Register SQL Server.
2. Trong hép tho¹i Register SQL Server Properties, trong hép Server,
h·y nhÊp browse(...) ®Ó truy cËp vµo mét danh s¸ch c¸c Server trªn
m¹ng.
3. Trong hép Server Group, nhÊp browse(...).
4. Trong hép name, nhËp vµo tªn mét nhãm Server.
5. Trong hép level, h·y nhÊp:
• Top level group ®Ó t¹o mét nhãm Server míi ë møc cao nhÊt.
• Sub-group of, råi nhÊp mét nhãm Server ®Ó lËp danh s¸ch nhãm
Server míi trong mét nhãm Server ®ang cã.

-3-
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

I.2 C¸ch ®¨ng ký mét Server


1. Trªn menu Tools, chän Register SQL Server.
2. Trong hép tho¹i Register SQL Server Properties, trong hép Server,
h·y nhËp tªn cña SQL Server ®Ó ®¨ng ký, hoÆc nhÊp browse(...) ®Ó
truy cËp vµo mét danh s¸ch c¸c Server trªn m¹ng.
3. Trong hép Connect, h·y nhÊp:
y Use SQL Server Authentication ®Ó nçi vµo SQL Server víi
Microsoft Windows NT login ID password cña b¹n.
y Use Windows NT Server Authentication, råi nhÊp mét tªn login
vµ mét password mµ Server cã thÓ nhËn biÕt. ®Ó bæ xung mét
líp cña møc an toµn h·y chän Always promt for login name
password.
4. Trong danh s¸ch Server Group, h·y nhÊp tªn cña SQL Server mµ ë
®ã b¹n muèn ®−a vµo Server ®· ®−îc ®¨ng ký, hoÆc nhÊp
browse(...) ®Ó t¹o mét nhãm Server míi.

II. C¸c thiÕt bÞ vµ c¬ së d÷ liÖu hÖ thèng


¾ C¬ së d÷ liÖu lµ tËp hîp d÷ liÖu, b¶ng d÷ liÖu vµ c¸c ®èi t−îng c¬ së d÷
liÖu kh¸c cã trËt tù vµ ®−îc giíi thiÖu ®Ó ®¸p øng mét môc ®Ých râ rµng,
nh− lµ ®iÒu kiÖn thuËn lîi cña viÖc t×m kiÕm x¾p xÕp vµ tæ chøc l¹i d÷
liÖu. C¬ së d÷ liÖu ®−îc l−u tr÷ trªn c¸c thiÕt bÞ.

-4-
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

¾ ThiÕt bÞ (Device) lµ file hÖ ®iÒu hµnh trong c¬ së d÷ liÖu ®−îc l−u tr÷.
Mét c¬ së d÷ liÖu cã thÓ l−u tr÷ trªn mét vµi thiÕt bÞ. SQL Server cã hai
lo¹i thiÕt bÞ: ThiÕt bÞ c¬ së d÷ liÖu nã l−u tr÷ c¬ së d÷ liÖu vµ thiÕt bÞ sao
l−u, l−u tr÷ kh«i phôc c¬ së d÷ liÖu.

¾ Khi SQL Server ®−îc cµi ®Æt ch−¬ng tr×nh cµi ®Æt t¹o ra MASTER,
MSDBDATA, vµ thiÕt bÞ c¬ së d÷ liÖu MSDBLOG. Nã còng t¹o ra c¬ së
d÷ liÖu Master, Model, Tempdb, Pubs vµ ®Æt chóng trªn thiÕt bÞ c¬ së d÷
liÖu MASTER, h¬n n÷a nã còng t¹o ra c¬ së d÷ liÖu Msdb vµ l−u tr÷ trªn
thiÕt bÞ c¬ së d÷ liÖu MSDBDATA vµ n¬i thùc hiÖn Msdb log on thiÕt bÞ
MSDBLOG.
II.1 C¬ së d÷ liÖu chÝnh (Master database)
¾ Khi SQL Server ®−îc cµi ®Æt, ch−¬ng tr×nh cµi ®Æt t¹o ra thiÕt bÞ c¬ së
d÷ liÖu MASTER råi t¹o ra c¬ së d÷ liÖu chÝnh vµ ®Æt nã trªn thiÕt bÞ (
device ). Ng−êi ®iÒu khiÓn sö dông c¬ së d÷ liÖu chÝnh vµ thao t¸c toµn bé
SQL Server. Nã kiÓm tra vµ gi÷ l¹i sù tÝnh to¸n cña ng−êi sö dông, ng−êi
sö dông tõ xa. Server phôc vô tõ xa cã thÓ t−¬ng t¸c víi tiÕn tr×nh ®ang
diÔn ra, cã kh¶ n¨ng ®Þnh cÊu h×nh biÕn m«i tr−êng, hÖ thèng th«ng b¸o
lçi c¬ së d÷ liÖu trªn SQL Server, ph©n ph¸t kh«ng gian l−u tr÷ cho mçi
c¬ së d÷ liÖu, b¨ng vµ ®Üa s½n cã trªn hÖ thèng vµ c¸c kho¸ hiÖn hµnh.
¾ SQL Server còng cã thÓ thªm ®èi t−îng ng−êi sö dông tíi c¬ së d÷ liÖu
chÝnh nh−ng nã kh«ng ®−îc t¹o ra ®èi t−îng trong c¬ së d÷ liÖu chÝnh
dïng cho toµn bé hÖ thèng qu¶n trÞ. SQL Server thiÕt lËp vµ cho phÐp
trong toµn bé c¬ së d÷ liÖu chÝnh mµ phÇn lín ng−êi sö dông kh«ng thÓ
t¹o ra ®èi t−îng. B¹n cã thÓ ng¨n c¶n ng−êi sö dông tõ ®èi t−îng t¹o ra
trong c¬ së d÷ liÖu chÝnh b»ng c¸ch thay ®æi ngÇm ®Þnh cña ng−êi sö
dông c¬ së d÷ liÖu. Tuy nhiªn ng−êi qu¶n trÞ hÖ thèng ngÇm ®Þnh c¬ së d÷
liÖu nªn gi÷ nguyªn c¬ së d÷ liÖu chÝnh.

-5-
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

II.2 M« h×nh c¬ së d÷ liÖu (Model Database)


M« h×nh c¬ së d÷ liÖu chøa ®ùng b¶ng hÖ thèng, yªu cÇu cho mçi ng−êi
sö dông c¬ së d÷ liÖu. Nã còng cã thÓ ®−îc söa ®æi theo h−íng tuú biÕn
cÊu tróc míi t¹o ra c¬ së d÷ liÖu còng nh− mäi thay ®æi b¹n t¹o ra m«
h×nh ®−îc ph¶n ¸nh trong mçi c¬ së d÷ liÖu míi. Cã mét vµi thay ®æi
chung t¹o ra m« h×nh:
• Thªm vµo lo¹i d÷ liÖu ng−êi sö dông, c¸c rµng buéc, c¸c quy t¾c
hoÆc ngÇm ®Þnh.
• Thªm vµo ng−êi sö dông nµo lµ ®−îc truy cËp toµn bé c¬ së d÷ liÖu
trªn SQL Server.
• Lùa chän cÊu h×nh c¬ së d÷ liÖu ( nh− lµ select into/bulkcopy), thiÕt
lËp trong m« h×nh c¬ së d÷ liÖu.

II.3 C¬ së d÷ liÖu Msdb (Msdb Database)


C¬ së d÷ liÖu Msdb hç trî thùc hiÖn SQL vµ cung cÊp vïng l−u tr÷ c¸c
th«ng tin lËp biÓu trong thêi gian cµi ®Æt phÇn mÒn Server. Ch−¬ng tr×nh
cµi ®Æt tù ®éng t¹o ra hai device ( 2MB & 1MB ) trªn æ ®Üa t−¬ng tù nh−
lµ c¬ së d÷ liÖu chÝnh råi ®Æt c¬ së d÷ liÖu Msdb trªn 2MB device (
MSDBDATA ) vµ thùc hiÖn nhËp vµo device 1MB ( MSDBLOG ).
II.4 C¬ së d÷ liÖu Tempdb (Tempdb Database)
C¬ së d÷ liÖu Tempdb lµ chia sÎ kh«ng gian lµm viÖc sö dông bëi c¬ së
d÷ liÖu trªn SQL Server. C¸c b¶ng t¹m thêi cña ng−êi sö dông lµ mÊt ®i tõ
Tempdb khi ng−êi sö dông hiÖn hµnh tho¸t khái SQL Server hoÆc trong
thêi gian truy l¹i tõ sù dõng l¹i cña hÖ thèng. Thñ tôc l−u tr÷ c¸c b¶ng
t¹m thêi lµ mÊt ®i khi thñ tôc tho¸t ra. B¶ng t¹m thêi còng cã thÓ mÊt ®i
tr−íc khi kÕt thóc phiªn. KÝch th−íc ngÇm ®Þnh cña Tempdb lµ 2MB.
Ho¹t ®éng nµo ®ã theo sau cã thÓ cÇn thiÕt t¹o nªn ®Ó t¨ng kÝch th−íc cña
Tempdb:
y B¶ng t¹m thêi lín.
y Ho¹t ®éng cã ý nghÜa trªn b¶ng t¹m thêi.
y S¾p xÕp hoÆc nhiÒu s¾p xÕp lín s¶y ra trong b¶ng cïng mét lóc.
y Truy vÊn con vµ tËp hîp l¹i víi GROUP BY.
y Sè l−îng lín cña Open cursor.

-6-
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

II.5 C¬ së d÷ liÖu Pubs (Pubs Database)


C¬ së d÷ liÖu Pubs lµ c¬ së d÷ liÖu lÊy mÉu cung cÊp nh− lµ c«ng cô
nghiªn cøu. C¬ së d÷ liÖu pubs lµ c¬ së cña phÇn lín c¸c vÝ dô trong t−
liÖu cña Microsoft SQL Server. C¬ së d÷ liÖu mÉu ®−îc miªu t¶ trong
Microsoft SQL Server Transact-SQL Referrence. NÕu c¬ së d÷ liÖu Pubs
kh«ng yªu cÇu cho môc ®Ých nghiªn cøu, b¹n cã thÓ kh«ng cÇn nã.
II.6 C¸c b¶ng hÖ thèng (System Tables)
¾ B¶ng lµ mét tËp hîp c¸c hµng (Record) mµ cã liªn quan ®Õn c¸c cét (
Fields). C¬ së d÷ liÖu chÝnh vµ ng−êi sö dông c¬ së d÷ liÖu gåm cã c¸c
b¶ng hÖ thèng th«ng tin vÒ toµn bé SQL Server vµ mçi ng−êi sö dông c¬
së d÷ liÖu.
¾ Toµn bé SQL Server cung cÊp b¶ng trong c¬ së d÷ liÖu chÝnh ®−îc xem
xÐt trong b¶ng hÖ thèng. Mçi ng−êi sö dông c¬ së d÷ liÖu t¹o ra b¶ng hÖ
thèng.
¾ C¬ së d÷ liÖu chÝnh vµ b¶ng hÖ thèng ®−îc t¹o ra khi cµi ®Æt SQL
Server. Trong b¶ng hÖ thèng ng−êi sö dông c¬ së d÷ liÖu tù ®éng t¹o ra
kho c¬ së d÷ liÖu. Tªn cña phÇn lín c¸c b¶ng hÖ thèng ®Òu b¾t ®Çu víi
SYS.
¾ Sù cho phÐp b¶ng hÖ thèng (Permission for System Table)
Sù cho phÐp lµ giÊy phÐp ®¶m b¶o cho ng−êi sö dông thùc hiÖn ho¹t ®éng
nµo ®ã trªn ®èi t−îng c¬ së d÷ liÖu nµo ®ã hoÆc sö dông c©u lÖnh nµo ®ã.
Cho phÐp sö dông b¶ng hÖ thèng lµ ®−îc ®iÒu khiÓn bëi c¬ së d÷ liÖu cña
chÝnh m×nh (owner). SQL Server cµi ®Æt ch−¬ng tr×nh thiÕt lËp cho phÐp
toµn bé ng−êi sö dông cã thÓ ®äc hÖ thèng b¶ng ngo¹i trõ mét vµi tr−êng.
¾ Truy vÊn b¶ng hÖ thèng (Querying the System Table)
B¶ng hÖ thèng cã thÓ yªu cÇu ®Õn c¸c b¶ng kh¸c, vÝ dô nh− c©u lÖnh sau
cho trë l¹i tªn toµn bé b¶ng hÖ thèng trong c¬ së d÷ liÖu.
SELECT Name
FROM SysObject
WHERE Type = ‘S’
SQL Server cã thñ tôc l−u tr÷ hÖ thèng cung cÊp lèi t¾t cho truy vÊn hÖ
thèng b¶ng.

-7-
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

II.7 Thñ tôc l−u tr÷ hÖ thèng (System Store Procedure)


¾ Thñ tôc l−u tr÷ hÖ thèng lµ tËp hîp tr−íc khi biªn dÞch c©u lÖnh
Transact-SQL. NhiÒu thñ tôc l−u tr÷ hÖ thèng cã s½n cho viÖc qu¶n trÞ
SQL Server vµ hiÓn thÞ th«ng tin vÒ c¬ së d÷ liÖu vµ ng−êi sö dông.
¾ PhÇn lín tªn thñ tôc l−u tr÷ hÖ thèng b¾t ®Çu víi SP_. Thñ tôc l−u tr÷
hÖ thèng x¸c ®Þnh vÞ trÝ trong c¬ së d÷ liÖu chÝnh vµ chÝnh bëi ng−êi qu¶n
trÞ hÖ thèng. Nh−ng nhiÒu thñ tôc l−u tr÷ hÖ thèng cã kh¶ n¨ng ch¹y tõ
bÊt kú c¬ së d÷ liÖu nµo. NÕu thñ tôc l−u tr÷ hÖ thèng thùc hiÖn trong c¬
së d÷ liÖu kh¸c víi c¬ së d÷ liÖu chÝnh th× nã ®ang lµm viÖc trªn hÖ thèng
b¶ng trong c¬ së d÷ liÖu tõ b¶ng hÖ thèng ®−îc thùc hiÖn.
¾ Thªm vµo thñ tôc l−u tr÷ hÖ thèng vµ thñ tôc l−u tr÷ më réng ®−îc cµi
®Æt víi SQL Server. Thñ tôc l−u tr÷ më réng cung cÊp thªm chøc n¨ng
cho SQL Server, cung cÊp b»ng c¸ch n¹p ®éng vµ thùc hiÖn chøc n¨ng víi
th− viÖn liªn kÕt ®éng (DLL=Data Library Link) g¾n liÒn víi chøc n¨ng
më réng SQL Server. Ho¹t ®éng bªn ngoµi SQL Server cã thÓ dÔ dµng
kÝch ho¹t vµ th«ng tin më réng trë l¹i SQL Server. M· tr¹ng th¸i trë l¹i &
tham sè ®Çu ra lµ còng ®−îc hç trî.
¾ SQL Server bao gåm hÖ thèng l−u tr÷ thñ tôc cã thÓ thªm vµo vµ xo¸ ®i
thñ tôc l−u tr÷ më réng, cung cÊp th«ng tin vÒ thñ tôc l−u tr÷ më réng.
¾ H¬n thÕ SQL Server cung cÊp sè l−îng thñ tôc l−u tr÷ hÖ thèng, thñ tôc
l−u tr÷ hÖ thèng kh¸c cã thÓ t¹o ra bëi ng−êi lËp tr×nh sö dông dÞch vô d÷
liÖu më cña Microsoft.
II.8 ThiÕt lËp kÝ tù vµ trËt tù s¾p xÕp (Character Sets & Sort Order)

¾ ThiÕt lËp kÝ tù x¸c ®Þnh lo¹i kÝ tù mµ SQL Server chÊp nhËn trong c¬ së
d÷ liÖu. ThiÕt lËp kÝ tù lµ thiÕt lËp 256 ch÷ c¸i, ch÷ sè vµ c¸c biÓu t−îng
®Æc tr−ng cho mét quèc gia hay mét ng«n ng÷. Cã thÓ in ra 128 kÝ tù ®Çu
tiªn gièng nh− ®¹i diÖn cho toµn bé thiÕt lËp kÝ tù. 128 kÝ tù sau ®«i khi
®−îc nh¾c ®Õn nh− lµ kÝ tù më réng. B¹n nªn sö dông thiÕt lËp kÝ tù cho
c¶ Client & Server hoÆc kÕt qu¶ cña b¹n cã thÓ thay ®æi. Tuy nhiªn nÕu c¬
së d÷ liÖu cña b¹n sö dông 128 kÝ tù ban ®Çu cña tËp hîp kÝ tù, nã kh«ng
t¹o nªn sù kh¸c biÖt nµo víi thiÕt lËp kÝ tù b¹n sö dông bëi v× 128 kÝ tù
®Çu tiªn ph¶i gièng nh− toµn bé tËp kÝ tù.
¾ TrËt tù s¾p xÕp thiÕt lËp c¸c quy t¾c x¸c ®Þnh SQL Server so s¸nh vµ
giíi thiÖu d÷ liÖu trong sù h−ëng øng tíi c¬ së d÷ liÖu truy vÊn nh− thÕ
nµo ?. TrËt tù s¾p xÕp x¸c ®Þnh trËt tù d÷ liÖu lµ giíi thiÖu tr¶ lêi c©u lÖnh
SQL Server gåm: GROUP BY, ORDER BY & DISTINT. TrËt tù s¾p xÕp

-8-
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

còng ®Þnh râ truy vÊn nµo ®ã lµ ®−îc gi¶i quyÕt nh− lµ truy vÊn: WHERE
& DISTINT.
¾ ThiÕt lËp kÝ tù vµ trËt tù s¾p xÕp cung cÊp cho toµn bé Server. B¹n
kh«ng thÓ cã c¬ së d÷ liÖu kh¸c nhau víi thiÕt lËp kÝ tù kh¸c nhau hoÆc
trËt tù s¾p xÕp trªn Server.

III. C¸c tiÖn Ých, dÞch vô cña SQL Server


III.1 Qu¶n lý c¸c c«ng cô vµ c¸c tiÖn Ých (Administrative Tools & Utility)

C«ng cô ®å ho¹ M« t¶
(Graphical Tools) (Descrition)
Sö dông cÊu h×nh Server, b¹n cã thÓ sö dông
SQL setup ch−¬ng tr×nh cµi ®Æt ®Ó thay ®æi c¸c tuú chän hç
trî m¹ng. Thªm vµo c¸c ng«n ng÷, x©y dùng l¹i c¬
së d÷ liÖu chÝnh, thay ®æi thiÕt lËp kÝ tù vµ trËt tù
s¾p xÕp, thiÕt lËp c¸c tuú chän an toµn vµ gì bá
SQL Server.

SQL Server Sö dông c©u lÖnh Start, Pause, Continue & Stop
Manager SQL Server vµ SQL Execute.
ISQL/w Cho phÐp b¹n nhËp lÖnh Transact-SQL vµ thñ tôc
l−u tr÷ hÖ thèng trong giao diÖn truy vÊn ®å ho¹.
ISQL/w còng cung cÊp kh¶ n¨ng cho ph©n tÝch truy
vÊn ®å ho¹.
SQL Security Cho phÐp qu¶n lý user account víi SQL Server mµ
Manager sö dông an toµn thèng nhÊt víi Windows NT.
SQL Enterprise Cung cÊp dÔ dµng, qu¶n lý xÝ nghiÖp réng tõ
Manager Server hoÆc Workstation. Nã cho phÐp b¹n thùc
hiÖn nhiÖm vô qu¶n trÞ hÖ thèng sö dông giao diÖn
®å ho¹. B¹n cã thÓ ®Æt cÊu h×nh Server, qu¶n trÞ c¬
së d÷ liÖu vµ ®èi t−îng c¬ së d÷ liÖu, lËp thêi biÓu
cho c¸c biÕn cè (event), ®Þnh cÊu h×nh vµ qu¶n lý
sù t¸i t¹o vµ cã thÓ lµm ®−îc h¬n thÕ n÷a.
SQL Transact Cung cÊp mét c¸ch dÔ dµng, ®å ho¹ theo c¸ch
Manager truyÒn c¸c ®èi t−îng vµ d÷ liÖu tõ Server tíi n¬i
kh¸c.
SQL Performance TÝch hîp víi Windows NT thùc hiÖn ®iÒu khiÓn
Monitor víi SQL Server, ...
SQL Server Book Cung cÊp trùc tuyÕn tíi Microsoft SQL Server,

-9-
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Online thiÕt lËp t− liÖu bao gåm søc m¹nh vµ kh¶ n¨ng t×m
kiÕm dÔ dµng ®èi víi ng−êi sö dông.
Microsoft ODBC Lµ mét file trî gióp trùc tuyÕn cung cÊp th«ng tin
SQL Server driver vÒ Microsoft ODBC SQL Server driver.
SQL Distribute Lµ mét file trî gióp trùc tuyÕn hiÓn thÞ SQL
Manager Object Distribute Manager Object.
SQL Client ThiÕt lËp mÆc ®Þnh Net-Library & Server nèi tíi
Configuration th«ng tin trªn Client. Nã còng cã thÓ hiÓn thÞ BD-
Utility Library vµ kiÓm tra cho nhiÒu b¶n sao cña DB-
Library & Net-Library trong ®−êng dÉn cña b¹n.

III.2 SQL Server Book Online


Trong thêi gian cµi ®Æt Server software hoÆc Client software 32 bit hoÆc
16 bit m¸y tÝnh dùa vµo nÒn Windows. Ch−¬ng tr×nh cµi ®Æt ®−a ra cho
b¹n c¸c cµi ®Æt tù chän SQL Server Book Online. SQL Server Book
Online cung cÊp truy cËp trªn mµn h×nh tíi toµn bé thiÕt lËp t− liÖu SQL
Server. §¸ng chó ý vÒ søc m¹nh ®Æc biÖt lµ nã cã kh¶ n¨ng t×m kiÕm ®Çy
®ñ v¨n b¶n mµ cho phÐp t×m nhanh c¸c tõ hoÆc ®o¹n v¨n, b¹n còng cã thÓ
t×m kiÕm toµn bé v¨n b¶n hoÆc th«ng qua lùa chän s¸ch hoÆc c¸c chñ ®Ò.
III.3 DÞch vô cña SQL Server
¾ SQL Server Service Manager sö dông ®Ó b¾t ®Çu (start), t¹m dõng
(pause) vµ dõng (stop) c¸c thµnh phÇn Microsoft SQL Server trªn Server.
C¸c thµnh phÇn ch¹y nh− lµ dÞch vô trªn Microsoft Windows NT vµ cã
thÓ thùc hiÖn riªng biÖt trªn Microsoft Windows 95/98:

DÞch vô MSSQLServer.
DÞch vô SQLServerAgent.
DÞch vô MSDTC (Windows NT).

¾ Sö dông SQL Server Service Manager:


y C¸ch khëi ®éng SQL Server

- 10 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

1. Tõ nhãm ch−¬ng tr×nh Microsoft SQL Server chän SQL Server


Service Manager.
2. Trong hép Service chän MSSQLServer hoÆc MSServerAgent.
3. KÝch vµo nót lÖnh Start.
y C¸ch ng−ng SQL Server
1. Tõ nhãm ch−¬ng tr×nh Microsoft SQL Server chän SQL Service
Manager.
2. Tõ hép Service chän MSSQL Server hoÆc MSServerAgent.
3. NÕu b¹n t¹m dõng SQL Server, kÝch vµo nót Pause ®Ó dõng dÞch vô.
4. KÝch vµo nót Stop ®Ó ngõng ho¹t ®éng.
• HoÆc cã thÓ dïng SQL Server Enterprise Manager.

- 11 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Ch−¬ng II c¸c ®èi t−îng c¬ së d÷ liÖu


I. §èi t−îng c¬ së d÷ liÖu (SLQ-DMO)
¾ §èi t−îng c¬ së d÷ liÖu giíi thiÖu thuéc tÝnh ®¬n cña Microsoft SQL
Server.

¾ Lý do tr×nh bµy c¬ së d÷ liÖu SQL Server, ®èi t−îng c¬ së d÷ liÖu lµ


thµnh phÇn chÝnh cña ®èi t−îng c©y SLQ-DMO. §èi t−îng c¬ së d÷ liÖu
chøa ®ùng tËp hîp x¸c ®Þnh c¸c b¶ng, c¸c thñ tôc l−u tr÷, lo¹i d÷ liÖu, vµ
ng−êi sö dông c¬ së d÷ liÖu. Ph−¬ng thøc cña ®èi t−îng c¬ së d÷ liÖu cho
phÐp b¹n thùc hiÖn tr×nh diÔn b¶n chÊt chøc n¨ng duy tr× c¬ së d÷ liÖu,
nh− lµ kh«i phôc.
¾ Víi ®èi t−îng c¬ së d÷ liÖu, b¹n cã thÓ:
1. T¹o c¬ së d÷ liÖu SQL Server.
2. Thªm c¬ së d÷ liÖu roles, rules, stored procedures, tables, user-
defined data types, user, vµ view cho c¬ së d÷ liÖu hiÖn t¹i SQL
Server.
3. Gì bá hoÆc xo¸ bá ®èi t−îng c¬ së d÷ liÖu (tables, views, ...) tõ c¬
së d÷ liÖu hiÖn t¹i SQL Server.

- 12 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

4. Thay ®æi ®Üa nguån sö dông bëi c¬ së d÷ liÖu l−u tr÷.


5. Kh«i phôc hoÆc l−u tr÷ c¬ së d÷ liÖu hiÖn hµnh.
6. §iÒu khiÓn b¶o mËt c¬ së d÷ liÖu SQL Server bëi thªm users vµ g¸n
quyÒn, tõ chèi hoÆc t−íc quyÒn truy cËp tíi c¬ së d÷ liÖu.
7. KiÓm tra tÝnh toµn vÑn c¬ së d÷ liÖu.
8. KiÓm tra h−íng sö dông trong c¬ së d÷ liÖu, riªng biÖt, kiÓm tra
tr¹ng th¸i cña kho¸ cung cÊp dùa vµo c¬ së d÷ liÖu nguån.
¾ T¹o c¬ së d÷ liÖu SQL Server
1. T¹o ®èi t−îng Database.
2. ThiÕt lËp thuéc tÝnh Name cña ®èi t−îng Database.
3. T¹o ra ®èi t−îng DBFile.
4. ThiÕt lËp thuéc tÝnh Name cña ®èi t−îng DBFile.
5. ThiÕt lËp thuéc tÝnh PhysicalName cña ®èi t−îng DBFile.
6. ThiÕt lËp thuéc tÝnh ®èi t−îng DBFile tuú chän cho c¬ së d÷
liÖu míi nh− kÝch th−íc.
7. Thªm vµo ®èi t−îng DBFile cho ®èi t−îng Database míi, tªn ®èi
t−îng FileGroup c¬ b¶n.
8. Thªm vµo ®èi t−îng Database cho tËp hîp Database cña kÕt nèi ®èi
t−îng SQL Server.
¾ ChØ ®Þnh file ghi
1. T¹o ®èi t−îng LogFile.
2. ThiÕt lËp thuéc tÝnh Name.
3. ThiÕt lËp thuéc tÝnh PhysicalName.
4. ThiÕt lËp thuéc tÝnh LogFile Size.
5. Thªm vµo ®èi t−îng LogFile cho tËp hîp LogFile cña ®èi t−îng
Transation, ®èi t−îng Database míi.
¾ T¹o gi¶n ®å c¬ së d÷ liÖu
Gi¶n ®å c¬ së d÷ liÖu nªn hç trî yªu cÇu giao dÞch lµ v× c¸c yªu cÇu
query-driven ®Æc tr−ng cña mét thiÕt kÕ c¬ së d÷ liÖu OLTP. VÝ dô nh−
®−a ra gi¶n ®å c¬ së d÷ liÖu tõ hµng ®−a vµo hÖ thèng:

- 13 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

y X¸c ®Þnh sù kiÖn vµ kÝch th−íc b¶ng.


y ThiÕt kÕ c¸c b¶ng thùc.
y ThiÕt kÕ kÝch th−íc b¶ng.
I.1 TËp hîp DatabaseRoles
¾ TËp hîp DatabaseRoles chøa ®èi t−îng DatabaseRole ®−a ra vai trß
®Æc quyÒn b¶o mËt c¬ së d÷ liÖu trong SQL Server.

¾ C¬ së d÷ liÖu Roles trong SQL Server cã thÓ chøa mét hoÆc nhiÒu
thµnh viªn (database user). Mét thuéc tÝnh x¸c ®Þnh ng−êi sö dông cã thÓ
t¹o ra Databaseroles, thªm vµo hoÆc gì bá chóng tõ Databaseroles, g¸n
quyÒn hoÆc phñ nhËn c¬ së d÷ liÖu ®Æc quyÒn tíi roles cho ®Æc quyÒn
qu¶n lý mét hoÆc nhiÒu trËt tù logic ng−êi sö dông.

- 14 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Víi tËp hîp DatabaseRoles, b¹n cã thÓ:


• T¹o ra c¬ së d÷ liÖu roles SQL Server.
• Gì bá c¬ së d÷ liÖu roles SQL Server.
I.2 TËp hîp c¸c mÆc ®Þnh (Defaults)
¾ TËp hîp Defaults chøa ®èi t−îng Default tham chiÕu tíi c¸c mÆc ®Þnh
SQL Server.
Víi tËp hîp c¸c Defaults, b¹n cã thÓ:
T¹o ra c¸c Defaults.
Gì bá c¸c Defaults.

¾ Qu¸ tr×nh gäi liªn kÕt cho phÐp mét mÆc ®Þnh SQL Server. MÆc ®Þnh cã
thÓ giíi h¹n mét hoÆc nhiÒu cét hoÆc lo¹i d÷ liÖu ng−êi sö dông x¸c ®Þnh.
Mét giíi h¹n mÆc ®Þnh kh«ng thÓ gì bá.
¾ C¸c mÆc ®Þnh (defaults)
• Trong SQL Server mçi cét trong b¶n ghi ph¶i chøa ®ùng mét vµi gi¸
trÞ thËm chÝ nÕu gi¸ trÞ ®ã lµ NULL. B¹n x¸c ®Þnh cét nµo cã thÓ chÊp
nhËn gi¸ trÞ NULL bëi kiÓu d÷ liÖu, mÆc ®Þnh, hoÆc c¸c rµng buéc.
• MÆc ®Þnh chØ ®Þnh gi¸ trÞ mµ SQL Server sÏ chÌn vµo khi ng−êi sö
dông kh«ng ®−a vµo gi¸ trÞ (trong c¶ hai cét NULL hoÆc NOT NULL)
• Mét c¸ch dÔ dµng nhÊt ®Ó chØ ®Þnh c¸c mÆc ®Þnh lµ x¸c ®Þnh rµng buéc
DEFAULT khi b¹n tao nªn b¶ng.
• B¹n còng cã thÓ t¹o ra gi¸ trÞ mÆc ®Þnh vµ rµng buéc chóng vµo cét ®Ó
ng−êi sö dông x¸c ®Þnh lo¹i d÷ liÖu.
I.3 TËp hîp FileGroup
¾ TËp hîp FileGroups chøa ®ùng ®èi t−îng FileGroup tham chiÕu
FileGroups cña c¬ së d÷ liÖu Microsoft SQL Server.
FileGroups Collection (SQL-DMO)
Víi tËp hîp c¸c FileGroups, b¹n cã thÓ:
T¹o mét SQL Server FileGroups míi.
Huû bá SQL Server FileGroups.
¾ SQL Server FileGroups cã thÓ ®−îc sö dông kÕt hîp víi file hÖ ®iÒu
hµnh sö dông ®Ó duy tr× c¬ së d÷ liÖu. FileGroups cã thÓ ®¬n gi¶n nhiÖm

- 15 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

vô qu¶n trÞ nh− lµ thao t¸c l−u tr÷ vµ kh«i phôc. Theo mÆc ®Þnh, c¬ së d÷
liÖu SQL Server ®−îc t¹o ra trªn ®óng mét FileGroups gäi lµ PRIMARY.
¾ Khi sö dông Item hoÆc Remove, tËp hîp FileGroups hç trî x¸c minh
thµnh viªn sö dông mét tªn hoÆc thø tù tham chiÕu có ph¸p.
I.4 TËp hîp FullTextCatalogs
¾ TËp hîp FullTextCatalogs chøa ®èi t−îng tham chiÕu
FullTextCatalogs. Microsoft SQL Server t×m kiÕm liªn tôc d÷ liÖu trong
FullTextCatalogs.
Víi tËp hîp FullTextCatalogs, b¹n cã thÓ:
T¹o mét danh môc chØ sè míi cho Microsoft SQL
Server.
Xo¸ bá mét danh môc chØ sè cña Microsoft SQL
Server.
I.5 TËp hîp c¸c quy t¾c (Rules Collection)
¾ TËp hîp Rules chøa c¸c ®èi t−îng Rule tham chiÕu Microsoft SQL
Server, thùc thi rµng buéc tÝnh toµn vÑn d÷ liÖu nh− lµ c¸c ®èi t−îng c¬ së
d÷ liÖu gäi lµ c¸c quy t¾c.
Víi c¸c tËp quy t¾c, b¹n cã thÓ:
T¹o thùc thi rµng buéc tÝnh toµn vÑn SQL Server nh−
lµ c¸c quy t¾c.
Xo¸ bá mét quy t¾c x¸c ®Þnh tõ SQL Server.
¾ C¸c quy t¾c lµ c¸c ®èi t−îng c¬ së d÷ liÖu mµ nã cã thÓ x¸c ®Þnh c¸c
gi¸ trÞ cã thÓ ®−îc chÌn vµo mét cét riªng biÖt.
Chó ý r»ng sö dông c¸c rµng buéc lµ ®Ò cËp c¸ch giíi h¹n c¸c cét d÷ liÖu
bëi v× nhiÒu rµng buéc cã thÓ x¸c ®Þnh trªn mét cét hoÆc nhiÒu cét.
VÝ dô nh− trong mét b¶ng víi cét gäi lµ phone_number, b¹n cã thÓ x¸c
®Þnh quy t¾c mµ x¸c ®Þnh cét chÊp nhËn duy nhÊt 10 con sè ®−a vµo.
I.6 TËp hîp c¸c thñ tôc l−u tr÷ (StoredProcedures Collection)
¾ TËp hîp StoredProcedures chøa ®èi t−îng StoredProcedure tham chiÕu
hÖ thèng vµ ng−êi sö dông x¸c ®Þnh thñ tôc l−u tr÷ cña c¬ së d÷ liÖu
Microsoft SQL Server.

- 16 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Víi c¸c StoredProcedure, b¹n cã thÓ:


T¹o thñ tôc l−u tr÷.
Huû thñ tôc l−u tr÷.
¾ Sö dông thñ tôc l−u tr÷ (using stored procedures)
Thñ tôc l−u tr÷ cã kh¶ n¨ng më réng, hiÖu qu¶ vµ cã tÝnh mÒm dÎo cña
SQL Server, vµ ®ét ngét c¶i tiÕn thùc hiÖn c©u lÖnh SQL vµ file bat.
Thñ tôc l−u tr÷ cã thÓ:
y NhËn tham sè.
y Gäi c¸c thñ tôc kh¸c.
y Trë l¹i gi¸ trÞ tr¹ng th¸i ®Ó gäi thñ tôc hoÆc file bat tíi chØ ®Þnh
thµnh c«ng hoÆc thÊt b¹i.
y Trë l¹i gi¸ trÞ cña tham sè gäi thñ tôc hoÆc file bat.
Thñ tôc l−u tr÷ cã thÓ dïng kü thuËt b¶o mËt, bëi v× ng−êi sö dông cã thÓ
®−îc g¸n quyÒn ®Ó thùc hiÖn thñ tôc l−u tr÷ thËm chÝ hä kh«ng thÓ thùc
hiÖn trªn b¶ng hoÆc khung nh×n tham chiÕu tíi nã.
¾ T¹o ra thñ tôc l−u tr÷
B¹n cã thÓ t¹o ra thñ tôc l−u tr÷ sö dông c©u lÖnh CREATE
PROCEDURE Transact-SQL. Tr−íc khi t¹o thñ tôc l−u tr÷, cÇn l−u ý
®Õn:
y C©u lÖnh CREATE PROCEDURE kh«ng thÓ kÕt hîp víi c©u lÖnh
Transact-SQL kh¸c trong file bat ®¬n.
y Cho phÐp thùc hiÖn t¹o c©u lÖnh CREATE PROCEDURE mÆc ®Þnh
tíi c¬ së d÷ liÖu cña ng−êi t¹o ra nã vµ cã thÓ chuyÓn giao nã tíi
ng−êi sö dông kh¸c.
y Thñ tôc l−u tr÷ lµ c¬ së d÷ liÖu ®èi t−îng vµ mçi tªn ph¶i tu©n theo
quy t¾c chØ ®Þnh.
y B¹n cã thÓ t¹o ra thñ tôc l−u tr÷ duy nhÊt trong c¬ së d÷ liÖu hiÖn
hµnh.
¾ Khi b¹n t¹o ra thñ tôc l−u tr÷, b¹n nªn chØ ®Þnh:
y BÊt kú tham sè ®Çu vµo vµ tham sè ®Çu ra theo h−íng gäi thñ tôc
hoÆc tÖp bat.
y C¸c c©u lÖnh ch−¬ng tr×nh thùc hiÖn thao t¸c trong c¬ së d÷ liÖu,
bao gåm h−íng tíi thñ tôc kh¸c.

- 17 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

y Tr¹ng th¸i gi¸ trÞ trë l¹i theo h−íng thñ tôc hoÆc tÖp bat cho biÕt
thµnh c«ng hoÆc thÊt b¹i.
¾ T¹o ra thñ tôc l−u tr÷:
y Tõ menu trong SQL Server Enterprise Manager, chän c¬ së d÷ liÖu
muèn t¹o thñ tôc l−u tr÷, råi kÝch chuét ph¶i vµo Stored procedure
chän New stored procedure...
y Sö dông c©u lÖnh CREATE PROCEDURE.
¾ Quy t¾c ch−¬ng tr×nh thñ tôc l−u tr÷ gåm cã:
y X¸c ®Þnh c©u lÖnh CREATE PROCEDURE cã thÓ gåm bÊt kú sè
vµ kiÓu c©u lÖnh SQL lo¹i trõ c©u lÖnh CREATE, mµ kh«ng thÓ sö
dông bÊt cø chç nµo trong thñ tôc l−u tr÷:
CREATE DEFAULT CREATE TRIGGER
CREATE PROCEDURE CREATE VIEW
CREATE RULE
y C¸c ®èi t−îng c¬ së d÷ liÖu kh¸c cã thÓ t¹o trong thñ tôc l−u tr÷.
B¹n cã thÓ tham chiÕu ®èi t−îng t¹o ra trong mét thñ tôc l−u tr÷
chØ cÇn ®−îc t¹o ra tr−íc khi nã ®−îc tham chiÕu.
y B¹n cã thÓ tham chiÕu c¸c b¶ng t¹m trong thñ tôc l−u tr÷.
y Sè l−îng lín nhÊt cña tham sè trong thñ tôc lµ 1024.
y Sè l−îng lín nhÊt cña biÕn côc bé trong thñ tôc l−u tr÷ lµ giíi h¹n
bëi bé nhí cã s½n.
y Tuú thuéc vµo bé nhí, kÝch th−íc cùc ®¹i cña thñ tôc l−u tr÷ lµ 128
MB.
¾ X¸c ®Þnh tªn bªn trong thñ tôc l−u tr÷
• Bªn trong thñ tôc l−u tr÷, tªn ®èi t−îng sö dông víi c¸c c©u lÖnh (vÝ
dô nh− SELECT hoÆc INSERT) mµ kh«ng x¸c ®Þnh ng−êi sö dông
mÆc ®Þnh cho thñ tôc l−u tr÷ cña chÝnh m×nh. NÕu ng−êi sö dông
mµ t¹o ra thñ tôc l−u tr÷ kh«ng x¸c ®Þnh tªn cña b¶ng tham chiÕu
trong c©u lÖnh SELECT, INSERT, UPDATE, hoÆc DELETE trong
thñ tôc l−u tr÷, truy cËp b¶ng nµy th«ng qua thñ tôc l−u tr÷ lµ giíi
h¹n bëi mÆc ®Þnh ®Ó t¹o ra thñ tôc.
• Tªn ®èi t−îng sö dông víi c©u lÖnh ALTER TABLE, CREATE
TABLE, DROP TABLE, TRUNCATE TABLE, CREATE INDEX,
DROP INDEX, UPDATE STATISTICS, vµ DBCC ph¶i ®ñ kh¶

- 18 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

n¨ng cïng víi sù hiÖn diÖn tªn cña chÝnh ®èi t−îng nÕu ng−êi sö
dông kh¸c lµ sö dông thñ tôc l−u tr÷.
¾ §æi tªn thñ tôc l−u tr÷
1. Më réng mét sever group, råi më réng server.
2. Më réng Database, më réng c¬ së d÷ liÖu mµ thñ tôc thuéc vÒ nã
råi kÝch Stores procedure.
3. Trong detail pane, kÝch ph¶i stored procedure, chän rename.
4. Gâ tªn míi cña thñ tôc.
Thùc hiÖn thñ tôc l−u tr÷ hÖ thèng ps_rename.
¾ Xo¸ mét thñ tôc l−u tr÷.
1. Më réng mét sever group, råi më réng server.
2. Më réng Database, më réng c¬ së d÷ liÖu mµ thñ tôc thuéc vÒ nã
råi kÝch Stores procedure.
3. Trong detail pane, kÝch ph¶i stored procedure, chän delete.
4. §Ó xem c¸ch xo¸ bá thñ tôc l−u tr÷ sÏ ¶nh h−ëng nh− thÕ nµo tíi
c¬ së d÷ liÖu, nhÊp show dependencies.
5. NhÊp Drop all.
Sö dông c©u lÖnh DROP PROCEDURE.
I.7 TËp hîp kiÓu d÷ liÖu hÖ thèng (SystemDatatypes Collection)
¾ TËp hîp SystemDatatypes chøa ®èi t−îng SystemDatatype liÖt kª kiÓu
d÷ liÖu c¬ b¶n cña cµi ®Æt Microsoft SQL Server.

¾ SQL Server x¸c ®Þnh sè l−îng cè ®Þnh kiÓu d÷ liÖu c¬ b¶n. Bëi v× sè
l−îng lµ cè ®Þnh, tËp hîp SystemDatatypes, miªu t¶ kiÓu d÷ liÖu nµy, cè
®Þnh c¸c thµnh viªn vµ kh«ng hç trî ph−¬ng thøc Add hoÆc Remove.
I.8 TËp hîp c¸c b¶ng (Tables Collection)
¾ T©p hîp c¸c b¶ng chøa ®èi t−îng b¶ng tham chiÕu hÖ thèng vµ x¸c
®Þnh c¸c b¶ng cña ng−êi sö dông cña c¬ së d÷ liÖu Microsoft SQL Server.

- 19 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Víi tËp hîp c¸c b¶ng, b¹n cã thÓ:


T¹o b¶ng.
Xo¸ b¶ng.
¾ Sù lËp kÕ ho¹ch t¹o b¶ng:
1. QuyÕt ®Þnh kiÓu nµo cña b¶ng d÷ liÖu sÏ chøa ®ùng.
2. QuyÕt ®Þnh cét nµo b¹n cÇn trong b¶ng, lo¹i d÷ liÖu nµo cho mçi
cét.
3. QuyÕt ®Þnh cét nµo nªn chÊp nhËn gi¸ trÞ null.
4. QuyÕt ®Þnh sö dông rµng buéc cã mÆc ®Þnh hoÆc kh«ng quy t¾c.
5. QuyÕt ®Þnh kiÓu chØ sè nµo b¹n cÇn, b¹n cÇn chØ sè ®Ó lµm g× vµ cét
nµo nªn lµ kho¸ chÝnh vµ kho¸ ngoµi.
¾ §Ó t¹o b¶ng
1. T¹o lo¹i d÷ liÖu do ng−êi sö dông x¸c ®Þnh sau ®ã b¹n x¸c ®Þnh
b¶ng nµo b¹n muèn sö dông chóng.
2. T¹o b¶ng víi c¸c rµng buéc, c¸c mÆc ®Þnh sö dông bëi c©u lÖnh
CREATE TABLE.
3. T¹o triggers víi c©u lÖnh CREATE TRIGGER.
4. T¹o c¸c khung nh×n víi c©u lÖnh CREATE VIEW.
5. T¹o b¶ng
y Trong SQL Server Enterprise Manager, chän c¬ së d÷ liÖu b¹n
muèn t¹o b¶ng, chän b¶ng hoÆc ®èi t−îng, kÝch chuét ph¶i råi
chän New table.
y Sö dông c©u lÖnh CREATE TABLE.
y Sö dông tuú chän INTO cña c©u lÖnh SELECT.
B¹n cã thÓ x¸c ®Þnh lªn tíi 250 cét mçi b¶ng. B¶ng vµ tªn cét ph¶i tu©n
theo c¸c quy t¾c cho ®ång nhÊt ho¸, chóng ph¶i duy nhÊt víi b¶ng.
Nh−ng b¹n cã thÓ sö dông tªn cét t−¬ng tù trong b¶ng kh¸c, trong c¬ së
d÷ liÖu t−¬ng tù, B¹n ph¶i x¸c ®Þnh lo¹i d÷ liÖu cho mçi cét.

- 20 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

¾ Xo¸ b¶ng
Khi b¹n kh«ng cÇn b¶ng, b¹n cã thÓ gì bá nã tõ c¬ së d÷ liÖu.
1. Trong cöa sæ SQL Server Enterprise Manager, chän b¶ng b¹n
muèn xo¸, kÝch chuét ph¶i, chän delete, råi chän Drop all.
2. Sö dông c©u lÖnh DROP TABLE.
¾ §æi tªn b¶ng
1. Trong cöa sæ SQL Server Enterprise Manager, chän b¶ng b¹n
muèn ®æi tªn, kÝch chuét ph¶i, chän Rename.
2. Thùc hiÖn thñ tôc l−u tr÷ hÖ thèng sp_rename.
VÝ dô: sp_rename title, books
Thay ®æi tªn cña b¶ng titles thµnh b¶ng books.
¾ Thay ®æi b¶ng
Sau khi b¹n t¹o b¶ng, b¹n muèn thay ®æi cÊu tróc b¶ng bëi céng thªm vµo
cét, thªm vµo kho¸ b¶n ghi, hoÆc thay ®æi c¸c rµng buéc.
X¸c ®Þnh b¶ng cÇn thay ®æi
1. Trong SQL Server Enterprise Manager, kÝch ®óp vµo b¶ng thÝch
hîp, råi t¹o nªn sù thay ®æi.
2. Sö dông c©u lÖnh ALTER TABLE.
I.9 TËp hîp kiÓu d÷ liÖu do ng−êi dïng x¸c ®Þnh.
¾TËp hîp UserDefineDatatypes chøa c¸c ®èi t−îng UserDefineDatatypes
tham chiÕu c¬ chÕ tÝnh toµn vÑn d÷ liÖu SQL Server gäi lµ kiÓu d÷ liÖu do
ng−êi sö dông x¸c ®Þnh.
Víi kiÓu d÷ liÖu do ng−êi dïng x¸c ®Þnh, b¹n cã thÓ:
T¹o mét kiÓu d÷ liÖu míi do ng−êi dïng x¸c ®Þnh.
Xo¸ bá kiÓu d÷ liÖu do ng−êi sö dông x¸c ®Þnh.

¾ T¹o nªn kiÓu d÷ liÖu do ng−êi dïng x¸c ®Þnh (create user-defined
datatype)
1. Më réng mét server group, råi më réng server

- 21 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

2. Më réng Database, råi më réng c¬ së d÷ liÖu mµ qua ®ã b¹n t¹o


kiÓu d÷ liÖu do ng−êi dïng x¸c ®Þnh.
3. NhÊp ph¶i chuét vµo Defined Data Type, råi nhÊp New User
Defined Data Type...
HoÆc tõ menu SQL Server Enterprice Manager, chän Action\ New\ user
Defined data type...
1. NhËp tªn cña kiÓu d÷ liÖu míi.
2. Trong danh s¸ch Data type, h·y chän kiÓu d÷ liÖu.
3. NÕu length ®−îc kÝch ho¹t, nã chøa c¸c kiÓu d÷ liÖu:binary, char,
nchar, nvarchar, varbinary vµ varchar.
4. §Ó cho phÐp d÷ liÖu chÊp nhËn c¸c gi¸ trÞ trèng, h·y chän Allow
NULLs.
5. Tuú ý, trong danh s¸ch Rule vµ Default, h·y chä mét quy t¾c hoÆc
mÆc ®Þnh ®Ó buéc vµo kiÓu d÷ liÖu ®· ®−îc ng−êi dïng x¸c ®Þnh.

¾ Xo¸ d÷ liÖu do ng−êi dïng x¸c ®Þnh


1. Më réng mét server group, råi më réng server.
2. Më réng Database, råi më réng d÷ liÖu, råi nhÊp User Defined
Data Types.
3. Trong detail pane, h·y nhÊp kiÓu d÷ liÖu xo¸ bá råi nhÊp Delete.

- 22 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

4. §Ó xem c¸ch xo¸ bá kiÓu d÷ liÖu nµy sÏ ¶nh h−ëng nh− thÕ nµo ®Õn
c¬ së d÷ liÖu, b¹n h·y nhÊp show Dependencies...
5. trong hép tho¹i Drop Object, h·y nhÊp Drop All.

I.10 TËp hîp ng−êi sö dông (Users Collection)


¾ TËp hîp Users chøa ®èi t−îng ph¶n chiÕu ®Þnh nghÜa ng−êi sö dông c¬
së d÷ liÖu cña SQL Server.

Víi tËp hîp Users, b¹n cã thÓ:


T¹o ra c¬ së d÷ liÖu ng−êi sö dông SQL Server.
Huû bá c¬ së d÷ liÖu ng−êi sö dông SQL Server.
I.11 TËp hîp c¸c khung nh×n (Views Collection)
¾ TËp hîp c¸c Views chøa ®èi t−îng View tham chiÕu ®Õn khung nh×n
x¸c ®Þnh trong c¬ së d÷ liÖu Microsoft SQL Server.

Víi tËp hîp c¸c Views, b¹n cã thÓ:


T¹o ra mét b¶ng view.
Huû bá mét b¶ng view.

¾ Sö dông khung nh×n ®Ó tèi −u ho¸ d÷ liÖu


C¸c khung nh×n cho phÐp ng−êi sö dông kh¸c nhau xem d÷ liÖu b»ng
c¸ch kh¸c nhau, ngay c¶ khi hä ®ang sö dông c¬ së d÷ liÖu t−¬ng tù cïng
mét lóc. Sù thuËn lîi nµy lµ ®Æc biÖt quan trong khi ng−êi sö dông víi
nhiÒu quan t©m kh¸c nhau vµ tr×nh ®é kü n¨ng chia sÎ gièng nh− c¬ së d÷
liÖu.
¾ Sö dông khung nh×n ®Ó xuÊt d÷ liÖu

Sö dông khung nh×n, b¹n cã thÓ xuÊt d÷ liÖu tíi c¸c øng dông kh¸c. VÝ dô
gi¶ sö b¹n muèn sö dông b¶ng stores vµ sales ®Ó ph©n tÝch d÷ liÖu b¸n
hµng ®−îc l−u tr÷ trong Microsoft Excel. §Ó lµm ®iÒu nµy, b¹n cã thÓ t¹o
nªn khung nh×n dùa trªn b¶ng stores vµ sales. Råi b¹n cã thÓ xuÊt d÷ liÖu
x¸c ®Þnh bëi sö dông ch−¬ng tr×nh tiÖn Ých bulk copy (bcp).
¾ Sö dông khung nh×n cho sù b¶o mËt
Sö dông c©u lÖnh CREATE VIEW víi WITH CHECK OPTION, b¹n cã
thÓ ®¶m b¶o r»ng ng−êi sö dông truy vÊn vµ söa ch÷a duy nhÊt d÷ liÖu mµ
hä nh×n thÊy. Tuú chän nµy b¾t toµn bé c©u lÖnh söa ch÷a d÷ liÖu thùc

- 23 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

hiÖn dùa vµo khung nh×n tham gia thiÕt lËp tiªu chuÈn víi c©u lÖnh
SELECT x¸c ®Þnh khung nh×n.
Sö dông c©u lÖnh GRANT vµ REVOKE, b¹n cã thÓ giíi h¹n ng−êi sö
dông c¬ së d÷ liÖu truy cËp ®Ó x¸c ®Þnh ®èi t−îng c¬ së d÷ liÖu bao gåm
c¸c khung nh×n. NÕu khung nh×n vµ toµn bé b¶ng thùc hiÖn g¸n quyÒn tíi
®èi t−îng kh¸c sö dông khung nh×n vµ chñ nh©n cã thÓ tõ chèi truy cËp
tíi khung nh×n ë d−íi b¶ng.
¾ T¹o c¸c khung nh×n
B¹n cã thÓ t¹o views víi SQL Server Enterprise Manager hoÆc sö dông
c©u lÖnh CREATE TABLE.
1. Trong cöa sæ SQL Server Enterprise Manager, chän view thÝch hîp,
råi kÝch chuét ph¶i, chän new view...
2. Sö dông c©u lÖnh CREATE TABLE.
¾ §æi tªn view.

B¹n cã thÓ ®æi tªn view, chñ ®Ò theo h−íng dÉn sau:
y View khi ®æi tªn ph¶i trong c¬ së d÷ liÖu hiÖn t¹i.
y Tªn míi ph¶i theo sau c¸c quy t¾c cho ®ång nhÊt ho¸.
y B¹n cã thÓ ®æi tªn duy nhÊt view cña b¹n.
y Chñ nh©n c¬ së d÷ liÖu cã thÓ thay ®æi tªn cña bÊt kú view cña
ng−êi sö dông.
Thùc hiÖn thñ tôc hÖ thèng sp_rename.
VÝ dô: sp_rename account, owing

II. §Æc t¶ dung l−îng cùc ®¹i cña SQL Server


B¶ng sau chØ ®Þnh kÝch th−íc cùc ®¹i vµ c¸c sè l−îng kh¸c nhau x¸c ®Þnh
®èi t−îng trong c¬ së d÷ liÖu Microsoft SQL Server hoÆc tham chiÕu
trong c©u lÖnh Transact-SQL.

Object (®èi t−îng) Maximum sizes/numbers


SQL Server 6.5 SLQ Server 7.0
65,536* KÝch th−íc
KÝch th−íc file bat (Batch size) 128 KB gãi tin m¹ng
(Network Packet Size)
Sè byte cho mçi chuçi kÝ tù cét
255 8000
(Bytes per short string column)

- 24 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Sè byte cho mçi cét text, ntext


hoÆc image
2 GB-2 2 GB-2
(Bytes per text, ntext, or image
column)
Sè byte cho mçi GROUP BY,
ORDER BY 900 8060
(Bytes per GROUP BY, ORDER BY)
Sè byte cho mçi chØ sè
900 900
(Bytes per index)
Sè byte cho mçi kho¸ ngoµi
900 900
(Bytes per foreign key)
Sè byte cho mçi kho¸ c¬ b¶n
900 900
(Bytes per primary key)
Sè byte cho mçi hµng
1962 8060
(Bytes per row)
Sè byte trong nguån text cña thñ
Lesser
of batch size or
tôc l−u tr÷ (Bytes in source text of a 65025
250 MB
stored procedure)
Nhãm chØ sè cho mçi b¶ng
1 1
(Clustered indexes per table)
H¹n chÕ tèt nhÊt bëi
C¸c cét trong GROUP BY, sè l−îng byte
ORDER BY (Columns in GROUP 16
(Limited only by
BY, ORDER BY)
number of bytes)
C¸c cét hoÆc biÓu thøc trong c©u
lÖnh GROUP BY WITH CUBE 10 10
hoÆc WITH ROLLUP
C¸c cét cho mçi chØ sè
16 16
(Columns per index)
C¸c cét cho mçi kho¸ ngoµi
16 16
(Columns per foreign key)
C¸c cét cho mçi kho¸ c¬ b¶n
16 16
(Columns per primary key)
C¸c cét cho mçi b¶ng c¬ b¶n
250 1024
(Columns per base table)
C¸c cét cho mçi c©u lÖnh SELECT 4096 4096
C¸c cét cho mçi c©u lÖnh INSERT 250 1024
Max. value of
KÕt nèi cho mçi client Gi¸ trÞ ®Þnh cÊu h×nh
configured
(Connections per client) kÕt nèi
connections

- 25 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

KÝch th−íc c¬ së d÷ liÖu


1 TB 1,048,516 TB
(Database size)
C¬ së d÷ liÖu cho mçi server
32,767 32,767
(Databases per server)
Nhãm file cho mçi c¬ së d÷ liÖu
N/A 256
(Filegroups per database)
C¸c file cho mçi c¬ së d÷ liÖu
32 32,767
(Files per database)
KÝch th−íc file (d÷ liÖu)
32 GB 32 TB
{File size (data)}
KÝch th−íc file (log)
32 GB 4 TB
{File size (log)}
Kho¸ ngoµi b¶ng tham chiÕu cho
mçi b¶ng.
16 253
(Foreign key table references per
table)
®Þnh danh ®é dµi (trong kÝ tù)
30 128
{Identifier length (in characters)}
C¸c kho¸ cho mçi
C¸c kho¸ cho mçi kÕt nèi Max. locks per
server (Max. locks per
(Locks per connection) server
server)
2,147,483,647 (static)
C¸c kho¸ cho mçi server
2,147,483,647 40% of SQL Server
(Locks per server)
memory (dynamic)
Møc lång nhau cña thñ tôc l−u tr÷
16 32
(Nested stored procedure levels)
C¸c truy vÊn lång nhau
16 32
(Nested subqueries)
Møc lång nhau cña trigger
16 32
(Nested trigger levels)
ChØ sè kh«ng nhãm cho mçi b¶ng
249 249
(Nonclustered indexes per table)
C¸c ®èi t−îng më ®ång thêi trong
server*
2 billion 2,147,483,647
(Objects concurrently open in a
server*)
§èi t−îng trong c¬ së d÷ liÖu*
2 billion 2,147,483,647
(Objects in a database*)
Tham sè cho mçi thñ tôc l−u tr÷
255 1024
(Parameters per stored procedure)

- 26 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Tham chiÕu cho mçi b¶ng


31 63
(REFERENCES per table)
Giíi h¹n bëi l−u tr÷
C¸c hµng cho mçi b¶ng Limited by cã s½n
(Rows per table) available storage (Limited by available
storage)
§é dµi chuçi kÝ tù SLQ
128 KB 128* TDS packet size
{SLQ string length (batch size)}
Giíi h¹n bëi sè l−îng
Sè b¶ng cho mçi c¬ së d÷ liÖu
2 billion ®èi t−îng trong c¬ së
(Tables per database)
d÷ liÖu
Sè b¶ng cho mçi c©u lÖnh SELECT
16 256
(Tables per SELECT statement)
Giíi h¹n bëi sè l−îng
Triggers cho mçi b¶ng
3 ®èi t−îng trong c¬ së
(Triggers per table)
d÷ liÖu
249 kh«ng nhãm vµ 1
ChØ sè duy nhÊt hoÆc c¸c rµng
nhãm (249
buéc cho mçi b¶ng (UNIQUE 249
nonclustered and 1
indexes, constraints per table)
clustered)
* C¸c ®èi t−îng c¬ së d÷ liÖu bao gåm toµn bé c¸c b¶ng, c¸c thñ tôc l−u tr÷,
c¸c thñ tôc më réng, c¸c triggers, c¸c defaults, vµ c¸c constraints. Tæng sè
l−îng cña toµn bé c¸c ®èi t−îng trong c¬ së d÷ liÖu kh«ng thÓ v−ît qu¸
2,147,483,647.

- 27 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Ch−¬ng III Lµm viÖc víi d÷ liÖu


I. D÷ liÖu
¾ Sau khi b¹n t¹o ra c¸c b¶ng, b¹n sÏ muèn nhËp d÷ liÖu vµo c¸c b¶ng vµ
lµm viÖc víi d÷ liÖu. B¹n cã thÓ thay ®æi d÷ liÖu, hñy bá d÷ liÖu hoÆc
thªm vµo d÷ liÖu, b¹n còng cã thÓ xuÊt, nhËp d÷ liÖu tíi tõ c¸c øng dông
kh¸c nhau.
¾ Trong SQL Server b¹n cã thÓ lµm viÖc víi d÷ liÖu bëi c©u lÖnh thay ®æi
d÷ liÖu (modification data), b¹n cã thÓ thªm d÷ liÖu víi lÖnh INSERT,
thay ®æi d÷ liÖu víi c©u lÖnh UPDATE, WRITETEXT hoÆc
UPDATETEXT vµ huû bá d÷ liÖu víi c©u lÖnh DELETE hoÆc
TRUNCATE TABLE.
I.1 Thªm vµo kÕ ho¹ch hoÆc thay ®æi d÷ liÖu
§Ó lµm viÖc víi d÷ liÖu trong c¬ së d÷ liÖu, b¹n cÇn ho¹ch ®Þnh cho viÖc
thªm vµo hoÆc thay ®æi. B¹n cÇn quan t©m ai nªn thay ®æi d÷ liÖu, hä cÇn
thùc hiÖn thay ®æi nã nh− thÕ nµo vµ ®¶m b¶o tÝnh toµn vÑn cña d÷ liÖu ra
sao.
¾ Cho phÐp g¸n quyÒn
y C©u lÖnh söa ch÷a d÷ liÖu lµ kh«ng cÇn thiÕt cã s½n cho mäi ng−êi. C¬
së d÷ liÖu chÝnh chñ vµ chñ nh©n cña c¸c ®èi t−îng c¬ së d÷ liÖu cã
thÓ sö dông c©u lÖnh GRANT vµ REVOKE ®Ó x¸c ®Þnh ai cã thÓ sö
dông c©u lÖnh söa ch÷a d÷ liÖu.
y Sù cho phÐp cã thÓ g¸n quyÒn tíi ng−êi sö dông riªng lÎ, hay mét
nhãm ng−êi sö dông hoÆc tíi mét tæ chøc x· héi.
¾ §¶m b¶o tÝnh toµn vÑn cña d÷ liÖu
§Ó ®¶m b¶o tÝnh toµn vÑn cña c¬ së d÷ liÖu, b¹n cã thÓ h¹n chÕ toµn bé
d÷ liÖu vµo trong b¶ng cña c¬ së d÷ liÖu. VÝ dô b¹n cã thÓ yªu cÇu d÷ liÖu
integer (nguyªn) trong mét cét cña b¶ng vµ d÷ liÖu character (kÝ tù) trong
cét kh¸c. §Ó giíi h¹n toµn bé d÷ liÖu, b¹n cã thÓ sö dông lo¹i d÷ liÖu hÖ
thèng, kiÓu d÷ liÖu do ng−êi dïng x¸c ®Þnh, c¸c mÆc ®Þnh, c¸c rµng buéc,
hoÆc ®Æc tÝnh IDENTITY.

- 28 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

I.2 Thªm vµo, thay ®æi hoÆc gì bá d÷ liÖu


Trong SQL Server, b¹n cã thÓ thªm vµo, xo¸ bá, hoÆc thay ®æi d÷ liÖu bëi
sö dông c©u lªnh söa ch÷a d÷ liÖu INSERT, DELETE, TRUNCATE
TABLE, UPDATE, UPDATETEXT vµ WRITETEXT.
1. INSERT thªm vµo mét hµng míi trong b¶ng.
VÝ dô: gi¶ sö cã b¶ng Congdan cã 4 tr−êng lµ [Stt], [Hä vµ tªn],
[Tuæi], [Giíi tÝnh], [Tr×nh ®é].
Stt Hä vµ tªn Tuæi Giíi tÝnh Tr×nh ®é
1 Vò Hïng C−êng 23 Nam §¹i Häc
2 Lª HuyÒn Thanh 20 N÷ Cao §¼ng
3 NguyÔn ThÞ M¬ 18 N÷ Trung Häc

INSERT INTO Congdan([Stt], [Hä vµ tªn], [Tuæi], [Giíi tÝnh],


[Tr×nh ®é]) VALUE( 3, ‘NguyÔn ThÞ M¬’,18,‘N÷’,‘Trung Häc’)
Sau khi thùc hiÖn song c©u lªnh INSERT th× trong b¶ng Congdan
cã thªm b¶n nghi míi (in nghiªng).
2. DELETE xo¸ mét hoÆc nhiÒu hµng, TRUNCATE TABLE xo¸ bá
toµn bé hµng trong b¶ng.
VÝ dô: DELETE Congdan WHERE Tuæi=20
Sau khi thùc hiÖn c©u lªnh th× b¶n ghi sè 2 sÏ bÞ xo¸.
3. UPDATE thay ®æi c¸c hµng.
VÝ dô: UPDATE Congdan
SET [Trung Häc]= ‘§¹i Häc’
WHERE [Tr×nh ®é]= ‘Trung Häc’
CËp nhËt ng−êi cã tr×nh ®é trung häc lªn §¹i Häc.
4. UPDATETEXT vµ WRITETEXT thay ®æi text vµ image.
I.3 NhËp, xuÊt d÷ liÖu
¾ NhËp d÷ liÖu, xö lÝ kh«i phôc d÷ liÖu tõ nguån bªn ngoµi tíi Microsoft
SQL Server, vÝ dô mét file v¨n b¶n ASCII, chÌn d÷ liÖu vµo trong b¶ng
SQL Server.
¾ NhËp d÷ liÖu tõ nguån d÷ liÖu bªn ngoµi vµo trong SQL Server gièng
nh− b−íc ®Çu tiªn b¹n thùc hiÖn sau khi cµi ®Æt c¬ së d÷ liÖu cña b¹n. Sau

- 29 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

khi d÷ liÖu võa nhËp vµo trong c¬ së d÷ liÖu SQL Server, b¹n cã thÓ b¾t
®Çu lµm viÖc víi c¬ së d÷ liÖu.
¾ XuÊt d÷ liÖu lµ xö lý trÝch d÷ liÖu tõ SQL Server tíi mét vµi khu«n thøc
chØ ®Þnh ng−êi sö dông, vÝ dô nh− copy néi dung cña b¶ng SQL Server tíi
c¬ së d÷ liÖu Microsoft Access.
¾ XuÊt d÷ liÖu th−êng xuÊt hiÖn Ýt. SQL Server cung cÊp c«ng cô ®a d¹ng
vµ tÝnh n¨ng mµ cho phÐp c¸c øng dông, nh− lµ Access hoÆc Microsoft
Excel, ®−îc kÕt nèi vµ thao t¸c trùc tiÕp víi d÷ liÖu.
¾ SQL Server cung cÊp c¸c c«ng cô nhËp, xuÊt d÷ liÖu vµ tõ sù ®a d¹ng
cña d÷ liÖu bao gåm c¸c file text, nguån d÷ liÖu ODBC (nh− lµ c¬ së d÷
liÖu Oracle), nguån d÷ liÖu OLE DB (nh− lµ c¸c server kh¸c ch¹y SQL
Server), c¸c file v¨n b¶n ASCII, vµ c¸c b¶ng tÝnh Excel.
¾ Ngoµi ra, m« h×nh SQL Server cho phÐp d÷ liÖu ph©n bè th«ng qua c¸c
tæ chøc, copy d÷ liÖu gi÷a c¸c vÞ trÝ vµ tù ®éng thay ®æi ®ång bé gi÷a d÷
liÖu copy kh¸c.
I.4 Xö lÝ thùc hiÖn trong khèi
¾ B¹n cã thÓ ®−a ra c©u lÖnh SQL tíi SQL Server cïng mét lóc, ®−a vµo
c©u lÖnh vµ nhËn kÕt qu¶ ®Çu ra, hoÆc b¹n cã thÓ ®−a ra nhiÒu c©u lÖnh
SQL nh− lµ mét khèi (batches), hoÆc trong mét file. Khèi lÖnh cña SQL lµ
x¸c ®Þnh bëi tÝn hiÖu end-of-batch (cuèi khèi) mµ chØ dÉn SQL Server ®i
tíi ®Çu vµ thùc hiÖn c©u lÖnh.
¾ File batch lµ tËp hîp cña mét hoÆc nhiÒu c©u lÖnh SQL göi trong mét
khèi thèng nhÊt vÒ phÝa m¸y tr¹m (Client). Mçi file batch lµ ®−îc biªn
dÞch trong s¬ ®å thùc hiÖn ®¬n. NÕu file batch chøa nhiÒu c©u lÖnh SQL,
toµn bé c¸c b−íc tèi −u cÇn thùc hiÖn toµn bé c©u lÖnh ®−îc x©y thµnh kÕ
ho¹ch thùc hiÖn ®¬n.
¾ Cã vµi c¸ch chØ ®Þnh file batch.
1. Toµn bé c©u lÖnh SQL göi trong mét thùc hiÖn ®¬n tõ mét øng
dông bao gåm khèi ®¬n vµ t¹o ra kÕ ho¹ch thùc hiÖn ®¬n.
2. Toµn bé c©u lÖnh trong thñ tôc l−u tr÷ hoÆc trigger bao gåm khèi
®¬n (single batch). Mçi thñ tôc l−u tr÷ hoÆc trigger biªn dÞch thµnh
kÕ ho¹ch thùc hiÖn ®¬n.
3. Thùc hiÖn chuçi bëi c©u lÖnh EXECUTE lµ biªn dÞch khèi (batch)
thµnh kÕ ho¹ch thùc hiÖn ®¬n.
4. Thùc hiÖn chuçi bëi thñ tôc l−u tr÷ hÖ thèng sp_executesql lµ biªn
dÞch khèi thµnh kÕ ho¹ch thùc hiÖn ®¬n.

- 30 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

VÝ dô nh− batch chøa bèn c©u lÖnh:


C©u lÖnh EXECUTE thùc hiÖn thñ tôc l−u tr÷.
Gäi sp_execuresql thùc hiÖn chuçi kÝ tù.
C©u lÖnh EXECUTE thùc hiÖn chuçi kÝ tù.
C©u lÖnh UPDATE chuyÓn ®Õn b¶ng mµ cã cËp nhËt trigger.

¾ Transact-SQL cung cÊp c¸c tõ ®Æc biÖt gäi lµ tr×nh ®iÒu khiÓn dßng
ng«n ng÷ (control-of-flow language) mµ ®iÒu khiÓn l−u l−îng cña sù thùc
hiÖn c©u lÖnh Transact-SQL, khèi lÖnh vµ c¸c thñ tôc l−u tr÷. C¸c tõ cã
thÓ sö dông trong c©u lÖnh Transact-SQL, trong khèi, trong thñ tôc l−u
tr÷.
B¶ng tõ kho¸ tr×nh ®iÒu khiÓn dßng ng«n ng÷ Transact-SQL:
Tõ kho¸ (keyword) M« t¶ (Description)
BEGIN...END §Þnh nghÜa khèi lÖnh.
BREAK Tho¸t khái vßng lÆp WHILE.
CONTINUE B¾t ®Çu l¹i vßng lÆp WHILE.
TiÕp tôc xö lÝ c©u lÖnh sau label nh− lµ x¸c ®Þnh bëi
GOTO label
label.
X¸c ®Þnh ®iÒu kiÖn vµ tuú chän, thùc hiÖn lu©n
IF...ELSE
phiªn khi ®iÒu kiÖn lµ FALSE.
RETURN Tho¸t khái v« ®iÒu kiÖn.
WAITFOR ThiÕt lËp thùc hiÖn c©u lÖnh delay.
WHILE LÆp l¹i c©u lÖnh trong khi ®iÒu kiÖn lµ TRUE.

- 31 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

II. Truy T×m d÷ liÖu víi c¸c truy vÊn


B¹n cã thÓ truy t×m d÷ liÖu tõ c¸c b¶ng (table) vµ c¸c khung nh×n (view)
nhanh chãng vµ dÔ dµng bëi sö dông c¸c truy vÊn (queries). B¹n cã thÓ sö
dông truy vÊn cho rÊt nhiÒu c¸c lý do: tr¶ lêi nhanh c©u hái, thiÕt lËp
th«ng tin b¸o c¸o hoÆc t×m kiÕm bÊt kú t©p hîp con cã liªn quan ®Õn d÷
liÖu cña b¹n. SQL Server cung cÊp c«ng cô b¹n cÇn ®Ó nhËn ®−îc d÷ liÖu
b¹n cÇn t×m kiÕm.
II.1 T¹o ra c¸c truy vÊn c¬ b¶n
¾ B¹n cã thÓ sö dông c©u lÖnh SELECT ®Ó chän c¸c hµng vµ c¸c cét tõ
b¶ng, b¹n cã thÓ sö dông nã cho tËp hîp (truy t×m tËp hîp con cña c¸c
hµng trong mét hoÆc nhiÒu b¶ng), dù th¶o {Projections} (truy t×m tËp hîp
con cña c¸c cét trong mét hoÆc nhiÒu b¶ng), liªn kÕt {Joint}(liªn kÕt hµng
trong hai hoÆc nhiÒu b¶ng ®Ó truy t×m d÷ liÖu b¶ng chÐo).
¾ Tõ ®Þnh danh (identifiers)
Mçi mét ®èi t−îng trong c¬ së d÷ liÖu cã mét tªn, ®Ó lµm viÖc víi ®èi
t−îng b¶ng, b¹n ph¶i x¸c ®Þnh (®Þnh danh) nã bëi tªn. Trong Transact-
SQL, b¹n ph¶i ®Þnh danh ®Ó x¸c ®Þnh tªn cña ®èi t−îng b¹n muèn lµm
viÖc. Tõ ®Þnh danh cã tõ 1 ®Õn 30 kÝ tù. KÝ tù ®Çu tiªn cã thÓ lµ kÝ tù b¶ng
ch÷ c¸i hoÆc biÓu t−îng @, _, #, ...
¾ Chän c¬ së d÷ liÖu
Toµn bé c¸c ®èi t−îng trong Microsoft SQL Server l−u tr÷ trong c¬ së d÷
liÖu. Toµn bé tham chiÕu tíi ®èi t−îng SQL Server cã ®−îc gi¶i quyÕt ®Ó
x¸c ®Þnh c¬ së d÷ liÖu trong ®ã mµ nã th−êng tró.
¾ Có ph¸p cña c©u lÖnh SELECT
Có ph¸p ®Çy ®ñ cña c©u lÖnh SELECT lµ phøc t¹p, nh−ng mÖnh ®Ò chÝnh
cã thÓ tæng kÕt:
SELECT select_list
[INTO new_table_name]
FROM table_list
[WHERE search_conditions]
[GROUP BY group_by_list]
[HAVING search_conditions]
[ORDER BY order_list [ASC | DESC] ]
select_list

- 32 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

M« t¶ c¸c cét cña tËp kÕt qu¶, mçi tr−êng (field) cã dÊu ph¶y ng¨n
c¸ch danh s¸ch cña biÓu thøc. Mçi biÓu thøc x¸c ®Þnh c¶ hai ®Þnh d¹ng
(kÝch th−íc vµ kiÓu d÷ liÖu) vµ nguån cña d÷ liÖu cho tËp kÕt qu¶ cét.
Mçi mét lùa chän danh s¸ch biÓu thøc th−êng tham chiÕu tíi cét trong
b¶ng nguån. Transact-SQL sö dông biÓu thøc * trong lùa chän danh
s¸ch x¸c ®Þnh toµn bé cét trong b¶ng nguån.
VÝ dô: SELECT * FROM Congdan
0INTO new_table_name
ChØ ®Þnh tËp kÕt qu¶ sö dông ®Ó t¹o b¶ng míi, new_table_name chØ
®Þnh tªn cña b¶ng míi.
VÝ dô: SELECT * INTO Congdan1 FROM Congdan
FROM table_list
Chøa ®ùng danh s¸ch cña b¶ng tõ ®ã kÕt qu¶ tËp d÷ liÖu lµ ®−îc truy
vÊn. Nguån nµy cã thÓ lµ:
• C¸c b¶ng c¬ b¶n trong Server côc bé ch¹y Microsoft SQL Server.
• C¸c khung nh×n trong SQL Server côc bé.
• Liªn kÕt b¶ng trong d÷ liÖu nguån OLE DB t¹o ra cã thÓ gÇn víi
SQL Server.
VÝ dô: SELECT [Hä vµ tªn], [Tuæi], [Tr×nh ®é] FROM Congdan
WHERE search_conditions
Trong thµnh phÇn WHERE c¸c dßng ph¶i ®−îc cung cÊp cho kÕt qu¶
cuèi cïng ®−îc x¸c ®Þnh trong ®iÒu kiÖn.
VÝ dô: SELECT [Hä vµ tªn], [Tuæi], [Tr×nh ®é]
FROM Congdan
WHERE [Tr×nh ®é] = ‘§¹i Häc’
C¸c ®iÒu kiÖn ®¬n:
y So s¸nh ®¬n.
y §iÒu kiÖn kÐp víi AND, OR, NOT.
y To¸n tö BETWEEN.
y To¸n tö IN.
y To¸n tö LIKE.
y To¸n tö NULL.

- 33 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

y To¸n tö IN víi truy vÊn phô.


y To¸n tö so s¸nh víi truy vÊn phô.
y To¸n tö ANY vµ ALL.
y To¸n tö EXIST.
GROUP BY group_by_list
Thµnh phÇn GRUOP BY ®−îc sö dông ®Ó nhãm c¸c dßng cña mét kÕt
qu¶ t¹m.
HAVING search_conditions
Thµnh phÇn HAVING läc nh÷ng nhãm kh«ng tho¶ m·n ®iÒu kiÖn truy
vÊn d÷ liÖu.
ORDER BY order_list [ ASC | DESC ]
MÖnh ®Ò ORDER BY x¸c ®Þnh trËt tù hµng trong tËp kÕt qu¶ cã trËt tù.
Order_list x¸c ®Þnh cét kÕt qu¶ t¹o nªn danh s¸ch s¾p xÕp. Tõ kho¸
ASC vµ DESC lµ sö dông ®Ó x¸c ®Þnh hµng lµ s¾p xÕp t¨ng hoÆc gi¶m
¾ Gi¶ sö r»ng chóng ta cã b¶ng Nhansu vµ Tienluong dïng ®Ó ¸p dông
trong truy vÊn d÷ liÖu theo có ph¸p c©u lªnh SELECT ... FROM:

- 34 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

™ Sö dông thao t¸c so s¸nh ®¬n ®Ó t×m nh÷ng ng−êi cã ®é tuæi tõ 22


®Õn 25 tuæi trong b¶ng Nhansu.

™ Dïng ®iÒu kiÖn kÐp víi AND, OR, ... t×m ng−êi cã tuæi lín h¬n 20
vµ cã giíi tÝnh lµ nam.

- 35 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

™ To¸n tö BETWEEN cã thÓ sö dông víi kiÓu d÷ liÖu ký tù, kiÓu


chuçi, bit hoÆc kiÓu datetime gièng nh− ®èi víi kiÓu d÷ liªu sè häc.
T×m nh÷ng ng−êi cã ®é tuæi tõ 23 ®Õn 30 tuæi.

™ Sö dông to¸n tö IN ®Ó t×m kiÕm nh÷ng ng−êi tho¶ m·n mét trong
®é tuæi lµ 23, 30, 20. C©u lÖnh
SELECT ... FROM ... WHERE IN (23, 30, 20) t−¬ng ®−¬ng víi
SELECT ... FROM ... WHERE Tuoi = 23 OR Tuoi = 30 OR Tuoi = 20

- 36 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

™ To¸n tö LIKE cã thÓ dïng c¸c ký hiÖu % thay cho mét chuçi ký tù,
thay cho mét ký tù, khi ®ã ng−êi ta gäi lµ ‘mÆt n¹’.

™ To¸n tö NULL t×m tÊt c¶ nh÷ng hµng mµ gi¸ trÞ t¹i mét cét quy
®Þnh nµo ®ã lµ NULL.

- 37 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

™ To¸n tö IN trong truy vÊn con gièng víi c¸c to¸n tö ANY vµ ALL.

™ So s¸nh víi truy vÊn con.

- 38 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

™ To¸n tö EXISTS

™ Thµnh phÇn GROUP BY nhãm c¸c dßng, trong b¶ng kÕt qu¶ truy
vÊn, tÊt c¶ nh÷ng hµng mµ cã gi¸ trÞ ë cét lËp nhãm gièng nhau sÏ
®−îc gom chung l¹i thµnh mét nhãm.

- 39 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

™ MÖnh ®Ò HAVING quy ®Þnh läc ®Ó ®Æt thªm mét h¹n chÕ n÷a ®èi
víi b¶ng kÕt qu¶ vÊn tin do mÖnh ®Ò GROUP BY t¹o ra.

™ MÖnh ®Ò ORDER BY ®Ó hiÓn thÞ b¶ng kÕt qu¶ truy vÊn theo thø tù
t¨ng dÇn hoÆc gi¶m dÇn.

- 40 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

II.2 Sö dông liªn kÕt ®Ó t¹o nhiÒu truy vÊn


C¸c thao t¸c liªn kÕt cho phÐp b¹n truy lôc d÷ liÖu tõ hai hay nhiÒu b¶ng
hoÆc khung nh×n trong c¬ së d÷ liÖu hoÆc trong c¬ së d÷ liÖu kh¸c vÒ thao
t¸c ®¬n.
¾ Thao t¸c liªn kÕt
Liªn kÕt hai hoÆc nhiÒu b¶ng xö lÝ so s¸nh d÷ liÖu x¸c ®Þnh cét vµ sö dông
so s¸nh kÕt qu¶ tõ b¶ng míi tíi c¸c hµng chØ ®Þnh (that qualify).
C©u lÖnh liªn kÕt:
y X¸c ®Þnh cét cho mçi b¶ng.
y So s¸nh gi¸ trÞ trong cét nµy bëi tõng hµng.
y Tæ hîp hµng víi ®Þnh tÝnh chÊt gi¸ trÞ vµo trong hµng míi.
¾ Lùa chän danh s¸ch trong liªn kÕt
C©u lÖnh liªn kÕt nh− c©u lÖnh lùa chän kh¸c, b¾t ®Çu víi tõ kho¸
SELECT. Tªn c¸c cét sau tõ kho¸ SELECT lµ c¸c cét bao gåm trong kÕt
qu¶ truy vÊn, trong trËt tù mong muèn.
¾ MÖnh ®Ò FROM trong liªn kÕt
MÖnh ®Ò FROM cña c©u lÖnh liªn kÕt tªn toµn bé c¸c b¶ng hoÆc c¸c view
bao gåm t¹i liªn kÕt. FROM lµ mÖnh ®Ò mµ thùc sù chØ ra tíi SQL Server
mµ liªn kÕt mong muèn. TrËt tù danh s¸ch b¶ng hoÆc khung nh×n (view)
trong mÖnh ®Ò FROM ¶nh h−ëng tíi hiÓn thÞ kÕt qu¶ khi b¹n sö dông *
trong lùa chän danh s¸ch.
¾ MÖnh ®Ò WHERE trong liªn kÕt
MÖnh ®Ò WHERE x¸c ®Þnh tËp hîp gi÷a tªn b¶ng hoÆc view trong mÖnh
®Ò FROM vµ giíi h¹n c¸c hµng ®−îc tÝnh ®Õn trong kÕt qu¶. Nã ®−a ra
tªn cña c¸c cét ®−îc liªn kÕt vµ thao t¸c liªn kÕt gièng nh− lµ tÝnh ngang
b»ng.
¾ M« h×nh quan hÖ vµ c¸c liªn kÕt
Thao t¸c liªn kÕt x¸c nhËn tiªu chuÈn m« h×nh quan hÖ cña hÖ qu¶n trÞ c¬
së d÷ liÖu. Trong cÊu tróc c¬ së d÷ liÖu qu¶n trÞ hÖ thèng (th−êng biÕt ®Õn
nh− lµ m¹ng hoÆc hÖ thèng cã cÊp bËc) mèi quan hÖ gi÷a d÷ liÖu lµ x¸c
®Þnh tr−íc. Mét c¬ së d÷ liÖu võa ®−îc cµi ®Æt, nã khã kh¨n thùc hiÖn truy
vÊn vÒ mèi quan hÖ kh«ng dù kiÕn tr−íc gi÷a d÷ liÖu.
¾ Liªn kÕt ®−îc xö lÝ nh− thÕ nµo ?

- 41 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

§iÒu kiÖn liªn kÕt cã thÓ x¸c ®Þnh trong mÖnh ®Ò FROM hoÆc WHERE,
chØ ®Þnh chóng trong mÖnh ®Ò FROM lµ ®−îc giíi thiÖu. MÖnh ®Ò
WHERE vµ HAVING cã thÓ còng chøa ®ùng ®iÒu kiÖn kiÓm tra cho viÖc
lùa chän läc c¸c hµng bëi ®iÒu kiÖn liªn kÕt.
¾ Hîp cã thÓ ph©n lo¹i sau:
y Hîp trong {Inner Joins} (thao t¸c liªn kÕt ®Æc tr−ng mµ sö dông
mét vµi thao t¸c so s¸nh nh− = hoÆc <>). §iÒu nµy bao gåm liªn
kÕt ngang b»ng vµ liªn kÕt tù nhiªn. Inner joins sö dông thao t¸c so
s¸nh c¸c hµng tho¶ m·n tõ hai b¶ng dùa trªn gi¸ trÞ cét chung tõ
mçi b¶ng.
y Hîp ngoµi {Outer joins}cã thÓ cã hîp tr¸i (left), ph¶i (right), vµ
hîp toµn phÇn.
y Hîp chÐo {Cross joins}
y Mét hîp chÐo ghÐp nèi toµn bé c¸c hµng cña b¶ng thø nhÊt víi
b¶ng thø hai. Hîp nµy cßn gäi lµ tÝch Cartesian.
™ VÝ dô vÒ sö dông liªn kÕt trong truy vÊn.

II.3 Sö dông nhãm c¸c truy vÊn


¾ B¹n cã thÓ nhãm d÷ liÖu bëi mÖnh ®Ò GROUP BY hoÆc HAVING.
GROUP BY tæ chøc d÷ liÖu thµnh nhãm, HAVING thiÕt lËp ®iÒu kiÖn

- 42 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

trªn nhãm gåm cã trong kÕt qu¶. MÖnh ®Ò nµy th−êng ®−îc sö dông víi
nhau. HAVING sö dông kh«ng cã GROUP BY cã thÓ ®−a ra kÕt qu¶ khã
hiÓu.
¾ B¹n cã thÓ sö dông chøc n¨ng tæng qu¸t víi mÖnh ®Ò GROUP BY

Chøc n¨ng tæng qu¸t


KÕt qu¶ (Result)
(Aggregate function)
SUM([ALL| DISTINCT]
Tæng cña gi¸ trÞ trong biÓu thøc sè.
expression)
AVG([ALL| DISTINCT]
Gi¸ trÞ trung b×nh trong biÓu thøc sè.
expression)
COUNT([ALL | DISTINCT] X¸c ®Þnh gi¸ trÞ xuÊt hiÖn trong cét hay
expression) sè dßng trong b¶ng.
COUNT(*) Sè c¸c gi¸ trÞ xuÊt hiÖn trong hµng.
MAX(expression) Cho gi¸ trÞ lín nhÊt cña biÓu thøc.
MIN(expression) Cho gi¸ trÞ nhá nhÊt cña biÓu thøc.

™ VÝ dô sau cho ta thÊy chøc n¨ng cña mét sè hµm nh− MAX, MIN, ...

- 43 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

y SUM, AVG, COUNT, MAX, vµ MIN bá qua gi¸ trÞ Null, COUNT(*)
kh«ng bá qua gi¸ trÞ Null.
y Tõ kho¸ tù chän DISTINCT cã thÓ ®−îc sö dông víi SUM, AVG, vµ
COUNT ®Ó lo¹i trõ gi¸ trÞ ®óp sau khi tËp hîp chøc n¨ng ¸p dông.
y SUM vµ AVG cã thÓ ®−îc sö dông duy nhÊt víi cét sè, vÝ dô nh− lo¹i
int, smallint, tinyint, decimal, numeric, float, real, money, vµ
smallmoney.
y MIN and MAX kh«ng thÓ sö dông víi kiÓu d÷ liÖu bits. TËp hîp chøc
n¨ng kh¸c nh− COUNT(*) kh«ng thÓ sö dông víi kiÓu d÷ liÖu text and
image.

II.4 Sö dông truy vÊn con (subquery)


¾ Truy vÊn con lµ c©u lÖnh SELECT lång trong c©u lÖnh SELECT,
INSERT, UPDATE, DELETE hoÆc trong truy vÊn con kh¸c. C©u lÖnh
gåm cã thao t¸c truy vÊn con trªn c¸c hµng dùa vµo ®¸nh gi¸ cña c©u lÖnh
truy vÊn con SELECT. C©u lÖnh truy vÊn con cã thÓ chuyÓn ®Õn b¶ng
kh¸c bªn ngoµi truy vÊn hoÆc tíi b¶ng kh¸c.
¾ Có ph¸p truy vÊn con
Truy vÊn con lång trong c©u lÖnh SELECT cã có ph¸p:
(SELECT [ALL|DISTINCT] subquery_select_list
[ FROM {table_name | view_name}{optimizer_hints}
[[,{table_name2 | view_name2}{optimizer_hints}
[...,{table_name16 | view_name16}{optimizer_hints}]]]
[WHERE clause]
[GROUP BY clause]
[HAVING clause]
C©u lÖnh SELECT cña truy vÊn con lu«n lu«n chøa trong ngoÆc ®¬n. Nã
kh«ng thÓ cã mÖnh ®Ò ODER BY, COMPUTE hoÆc BROWSE.
Truy vÊn con cã thÓ lång trong mÖnh ®Ò WHERE hoÆc HAVING cña
bªn ngoµi c©u lÖnh SELECT, INSERT, UPDATE hoÆc DELETE. Kh«ng
cã sù giíi h¹n trªn cÊp ®é lÆp. Mét truy vÊn con cã thÓ xuÊt hiÖn ë bÊt kú
biÓu thøc cã thÓ ®−îc sö dông víi ®iÒu kiÖn lµ nã trë vÒ gi¸ trÞ ®¬n. B¹n
kh«ng thÓ sö dông truy vÊn con trong danh s¸ch ORDER BY.
¾HiÓn thÞ toµn bé víi GROUP BY hoÆc COMPUTE

- 44 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

B¹n cã thÓ hiÓn thÞ toµn bé bëi tËp hîp chøc n¨ng vµ mÖnh ®Ò GROUP
BY hoÆc hµng tËp hîp chøc n¨ng vµ mÖnh ®Ò COMPUTE.
TËp hîp chøc n¨ng SUM, AVG, COUNT, MAX vµ MIN tæng kÕt gi¸ trÞ
xuÊt hiÖn nh− cét míi trong kÕt qu¶ truy vÊn. MÖnh ®Ò GROUP BY, phÇn
cña c©u lÖnh SELECT, chia b¶ng thµnh nhãm. GROUP BY vµ tËp hîp
chøc n¨ng th−êng sö dông víi nhau, vµ tæng gi¸ trÞ lµ tÝnh to¸n cho mçi
nhãm.
™ VÝ dô sö dông truy vÊn con.

II.5 Sö dông chøc n¨ng lËp s½n (using built-in functions)


SQL Server cung cÊp ®ñ lo¹i c¸c hµm chøc n¨ng lËp s½n gióp b¹n thùc
hiÖn thao t¸c nµo ®ã nhanh chãng vµ dÔ dµng. Chøc n¨ng ®−îc chia thµnh
c¸c lo¹i sau:
y Chøc n¨ng hÖ thèng.
y Chøc n¨ng chuçi cho thao t¸c gi¸ trÞ char, varchar, binary vµ
varbinary.
y Chøc n¨ng text vµ image cho thao t¸c gi¸ trÞ text vµ image.
y Chøc n¨ng sè häc.
y Chøc n¨ng date (ngµy th¸ng) cho vËn dông gi¸ trÞ datetime vµ
smalldatetime.

- 45 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

y Chøc n¨ng chuyÓn ®æi (convert), cho phÐp chuyÓn ®æi biÓu thøc tõ
mét kiÓu d÷ liÖu tíi d¹ng kh¸c vµ ®Þnh d¹ng date.
¾ Chøc n¨ng hÖ thèng
Chøc n¨ng hÖ thèng cho phÐp b¹n truy cËp th«ng tin tõ b¶ng hÖ thèng
Microsoft SQL Server mµ kh«ng truy cËp b¶ng hÖ thèng trùc tiÕp.
Nhãm nµy gåm n¨m cÆp chøc n¨ng hÖ thèng cho Database (c¬ së d÷
liÖu), Server (m¸y chñ), Object (®èi t−îng), Login (®¨ng nhËp) vµ User
(ng−êi sö dông) tr¶ vÒ tªn khi dùa vµo ID (chØ danh) vµ khai b¸o ID
dùa vµo tªn:
y DB_ID and DB_NAME
y HOST_ID and HOST_NAME
y OBJECT_ID and OBJECT_NAME
y SUSER_ID and SUSER_NAME (or SUSER_SID and
SUSER_SNAME)
y USER_ID and USER_NAME
Chøc n¨ng nµy cung cÊp dÔ dµng c¸ch chuyÓn ®æi tªn tíi mét ID hoÆc
mét ID tíi tªn.
¾ Chøc n¨ng chuçi kÝ tù
Chøc n¨ng chuçi kÝ tù sö dông cho ho¹t ®éng kh¸c nhau trªn kÝ tù,
chuçi nhÞ ph©n chóng tr¶ l¹i gi¸ trÞ chung nhÊt cÇn cho thao t¸c trªn kÝ
tù d÷ liÖu. PhÇn lín chøc n¨ng chuçi cã thÓ sö dông trªn kiÓu d÷ liÖu
char, nchar, nvarchar hoÆc kiÓu d÷ liÖu mµ hoµn toµn chuyÓn ®æi
chóng. Mét vµi chøc n¨ng chuçi cã thÓ còng sö dông d÷ liÖu binary
hoÆc varbinary.
B¹n cã thÓ sö dông chøc n¨ng ®Ó:
y Truy vÊn mét phÇn cña chuçi.
y T×m kiÕm ®ång d¹ng trong chuçi kÝ tù.
y T×m kiÕm b¾t ®Çu vÞ trÝ chuçi ®Æc biÖt trong cét hoÆc biÓu thøc.
y Rµng buéc vµo nhau hoÆc tæ hîp chuçi thµnh mét chuçi. VÝ dô
nh− tªn, hä, vµ ®Öm thµnh tªn ®Çy ®ñ.
y ChuyÓn ®æi gi¸ trÞ kh«ng ph¶i lµ chuçi thµnh gi¸ trÞ chuçi.
y ChÌn thªm chuçi vµo trong chuçi hiÖn hµnh. VÝ dô nh− chÌn x©u
“Once” vµo trong x©u “upon a time” thµnh s©u kÕt qu¶ “ Once
upon a time”.

- 46 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

¾ Chøc n¨ng v¨n b¶n vµ h×nh ¶nh (text & image)


Chøc n¨ng v¨n b¶n (text) sö dông thao t¸c trªn d÷ liÖu v¨n b¶n vµ h×nh
¶nh. Qu¸ tr×nh chuyÓn ®æi sö dông chøc n¨ng CONVERT hç trî tõ
text tíi varchar vµ tõ image tíi varbinary hoÆc binary, nh−ng text vµ
image rót gän tíi 255 bytes.
¾ Chøc n¨ng sè häc
Chøc n¨ng sè häc thùc hiÖn thao t¸c sè häc trªn biÓu thøc sè vµ trë l¹i
kÕt qu¶ cña thao t¸c. Chøc n¨ng sè häc thao t¸c trªn hÖ thèng
Microsoft SQL Server cung cÊp d÷ liÖu sè (decimal, integer, float,
real, money, smallmoney, smallint, and tinyint). §é chÝnh x¸c x©y
dùng thao t¸c trªn lo¹i d÷ liÖu ®éng lµ ®Æt s¸u vÞ trÝ thËp ph©n bëi mÆc
®Þnh.
Sau ®©y lµ mét sè hµm to¸n häc:
ABS, LOG10, ACOS, PI, ASIN, POWER, ATAN, RADIANS,
ATN2, RAND, CEILING, ROUND, COS, SIGN, COT, SIN,
DEGREES, SQUARE, EXP, SQRT, FLOOR,TAN, LOG.
¾ Chøc n¨ng ngµy th¸ng (Date Functions)
Chøc n¨ng ngµy th¸ng hiÓn thÞ th«ng tin vÒ ngµy, th¸ng vµ giê. Chøc
n¨ng sö dông gi¸ trÞ datetime vµ smalldatetime, thùc hiÖn thao t¸c sè
häc trªn ®ã. Chøc n¨ng ngµy th¸ng cã thÓ ®−îc sö dông ë bÊt kú biÓu
thøc nµo cã thÓ sö dông. SQL Server thõa nhËn ®é réng kh¸c nhau cña
d÷ liÖu datetime ®−a vµo ®Þnh d¹ng. B¹n cã thÓ sö dông c©u lÖnh SET
DATEFORMAT ®Ó thiÕt lËp trËt tù cña phÇn ngµy th¸ng ®Ó ®−a vµo
d÷ liÖu datetime hoÆc smalldatetime.
¾ Chøc n¨ng chuyÓn ®æi
Chøc n¨ng chuyÓn ®æi CAST vµ CONVERT ®Ó chuyÓn ®æi biÓu thøc
cña mét lo¹i d÷ liÖu tíi kiÓu d÷ liÖu kh¸c bÊt cø lóc nµo biÓu thøc nµy
còng kh«ng thùc hiÖn tù ®éng bëi Microsoft SQL Server. Chøc n¨ng
chuyÓn ®æi còng sö dông ®Ó ®¹t ®−îc tr¹ng th¸i kh¸c nhau cña ®Þnh
d¹ng d÷ liÖu ®Æc biÖt. Chøc n¨ng chuyÓn ®æi còng cã thÓ ®−îc sö dông
trong danh s¸ch lùa chän, trong mÖnh ®Ò WHERE vµ bÊt cø chç nµo
biÓu thøc cho phÐp.
Khi sö dông c¶ hai phÇn CAST hoÆc CONVERT cña th«ng tin yªu
cÇu:
y KiÓu thøc chuyÓn ®æi (vÝ dô, b¸o c¸o b¸n hµng yªu cÇu d÷ liÖu
b¸n hµng ®−îc chuyÓn ®æi tõ d÷ liÖu tiÒn tÖ thµnh d÷ liÖu ký tù)
y KiÓu d÷ liÖu chuyÓn ®æi còng dùa vµo biÓu thøc.

- 47 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

- 48 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Ch−¬ng IV b¶o mËt trong SQL Server


I. C¸c lo¹i b¶o mËt
I.1 B¶o mËt
B¹n cã thÓ giíi h¹n truy cËp tíi d÷ liÖu sö dông bëi dÞch vô Microsoft
SQL Server OLAP qua tÝnh n¨ng b¶o mËt. Sö dông tÝnh n¨ng b¶o mËt,
b¹n cã thÓ ®iÒu khiÓn ng−êi nµo ®−îc truy cËp d÷ liÖu vµ kiÓu thao t¸c mµ
hä cã thÓ thùc hiÖn víi d÷ liÖu. OLAP Services hç trî tÝch hîp hÖ thèng
b¶o mËt Microsoft Windows NT vµ cho phÐp b¹n thùc hiÖn truy cËp c¬ së
d÷ liÖu vµ møc luü thõa 3 (cube level).

I.2 B¶o mËt d÷ liÖu


Mét trong nh÷ng chøc n¨ng cña c¬ së d÷ liÖu lµ b¶o vÖ d÷ liÖu b»ng c¸ch
ng¨n c¶n ng−êi sö dông nµo ®ã xem xÐt hoÆc thay ®æi d÷ liÖu nh¹y c¶m
cao vµ ng¨n c¶n toµn bé ng−êi sö dông t¹o ra lçi. HÖ thèng b¶o mËt trong
Microsoft SQL Server ®iÒu khiÓn ng−êi sö dông cã thÓ lµm viÖc víi d÷
liÖu vµ ng−êi sö dông ®ã cã thÓ thùc hiÖn ho¹t ®éng trong c¬ së d÷ liÖu.

I.3 Qu¶n lý b¶o mËt


§Ó ®¶m b¶o d÷ liÖu vµ ®èi t−îng l−u trong Microsoft SQL Server lµ ®−îc
truy cËp bëi uû quyÒn cña ng−êi sö dông, b¶o mËt ph¶i thiÕt lËp thÝch
hîp. Sù hiÓu biÕt vÒ b¶o mËt thÝch hîp gióp b¹n ®¬n gi¶n trong qu¶n lý.
YÕu tè b¶o mËt mµ cã thÓ cã thiÕt lËp gåm cã chÕ ®é x¸c thùc, ®¨ng nhËp,
ng−êi sö dông, g¸n quyÒn, t−íc quyÒn vµ b¶o mËt.

I.4 CÊu tróc b¶o mËt (Security Architecture)


CÊu tróc cña hÖ thèng b¶o mËt dùa trªn ng−êi dïng vµ nhãm ng−êi dïng,
®−îc nh¾c ®Õn nh− lµ b¶o mËt chÝnh (Security Principals). Sù minh ho¹
nµy chØ ra ng−êi dïng vµ nhãm ng−êi sö dông côc bé, toµn côc trong
Microsoft Windows NT cã thÓ ¸nh x¹ sù tÝnh to¸n b¶o mËt trong
Microsoft SQL Server vµ SQL Server cã thÓ qu¶n lý sù tÝnh to¸n b¶o mËt
kh«ng phô thuéc vµo sù tÝnh to¸n trong Windows NT.
SQL Server còng cung cÊp b¶o mËt víi møc øng dông qua sù sö dông
riªng biÖt c¬ së d÷ liÖu øng dông roles.

- 49 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

I.5 Qu¶n lý b¶o mËt cã cÊp bËc (Hierarchical Security Management)


M«i tr−êng b¶o mËt trong Microsoft Windows NT vµ Microsoft SQL
Server ®−îc l−u tr÷, qu¶n lý vµ cã hiÖu lùc qua hÖ thèng cã cÊp bËc cña
ng−êi sö dông. §Ó ®¬n gi¶n ho¸ qu¶n trÞ nhiÒu ng−êi sö dông, Windows
NT vµ SQL Server sö dông c¸c nhãm (groups). Cµi ®Æt b¶o mËt x¸c ®Þnh
cho mét nhãm ®−îc cung cÊp cho toµn bé thµnh viªn cña nhãm.
HÖ thèng cã cÊp bËc cña nhãm b¶o mËt ®¬n gi¶n ho¸ qu¶n lý thiÕt lËp b¶o
mËt. Nã cho phÐp thiÕt lËp b¶o mËt tíi øng dông chung cho toµn bé nhãm
thµnh viªn, kh«ng x¸c ®Þnh d− thõa kh«ng cÇn thiÕt cho mçi ng−êi. M«
h×nh cã cÊp bËc còng cung cÊp thiÕt lËp b¶o mËt ¸p dông tèt nhÊt tíi
ng−êi sö dông ®¬n.
I.6 B¶o mËt cho server tõ xa
ThiÕt lËp b¶o mËt thùc hiÖn lêi gäi thñ tôc l−u tr÷ tõ xa (Remote
Procedure Call) dùa vµo Server tõ xa gåm thiÕt lËp biÓu ®å ph¶n x¹ trong
Server tõ xa thùc hiÖn Microsoft SQL Server vµ cã thÓ trªn Server côc bé
(local).
¾ ThiÕt lËp Server tõ xa (Setting Up the Remote Server)
¸nh x¹ ®¨ng nhËp tõ xa cÇn ®−îc cµi ®Æt dùa trªn Server tõ xa. Sö dông
¸nh x¹ ®ã, Server tõ xa ®¨ng nhËp bëi kÕt nèi lêi gäi thñ tôc tõ xa c¨n cø
vµo Server ®Ó ®¨ng nhËp côc bé (local). ¸nh x¹ ®¨ng nhËp tõ xa cã thÓ
®−îc cµi ®Æt sö dông thñ tôc sp_addremotelogin l−u trªn Server tõ xa.
¾ ThiÕt lËp Server côc bé (Setting Up the Local Server)
Trong SQL Server 7.0, tªn ng−êi sö dông ®¨ng nhËp tõ bªn ngoµi tíi
Microsoft Windows NT x¸c thùc ®¨ng nhËp kh¸c nhau tõ gi¶i phãng
tr−íc ®ã. V× thÕ c¸c b−íc sau ®©y cÇn ®−îc thùc hiÖn t¹o ra sù kÕt nèi
Server tõ xa víi ®¨ng nhËp x¸c thùc cho Windows NT. Sù s¾p xÕp ®¨ng
nhËp côc bé cã thÓ thiÕt lËp dùa trªn Server côc bé mµ x¸c ®Þnh ®¨ng
nhËp vµ mËt khÈu nµo sÏ ®−îc sö dông bëi SQL Server khi nã t¹o ra mét
kÕt nèi lêi gäi thñ tôc tõ xa tíi Server tõ xa. §Ó ®¨ng nhËp x¸c thùc
Windows NT, nã kh«ng cÇn thiÕt t¹o ra bÊt kú ¸nh x¹ côc bé cho viÖc
thùc hiÖn lêi gäi thñ tôc l−u tr÷ dùa trªn Server tõ xa. Sö dông thñ tôc l−u
tr÷ sp_addlinkedsrvlogin t¹o ra ¸nh x¹ ®¨ng nhËp côc bé.

I.7 SQL Server thùc hiÖn b¶o mËt


Ng−êi dïng v−ît qua 2 giai ®o¹n cña b¶o mËt khi lµm viÖc trªn SQL
Server: Sù x¸c nhËn lµ ®óng vµ sù cho phÐp hiÖu lùc. X¸c thùc giai ®o¹n
nhËn biÕt mµ ng−êi dïng sö dông kª khai ®¨ng nhËp vµ x¸c nhËn kh¶

- 50 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

n¨ng ®Ó kÕt nèi víi SQL server. NÕu sù x¸c nhËn lµ ®óng lµ thµnh c«ng
th× ng−êi dïng cã thÓ kÕt nèi víi SQL Server. Ng−êi dïng còng cÇn sù
cho phÐp ®Ó truy cËp c¬ së d÷ liÖu trªn Server, nã thùc hiÖn b»ng viÖc sö
dông gi¸ trÞ trªn mçi c¬ së d÷ liÖu, ¸nh x¹ tíi ®¨ng nhËp cña ng−êi sö
dông. Giai ®o¹n cho phÐp hiÖu lùc ®iÒu khiÓn ho¹t ®éng ng−êi dïng ph¶i
tu©n theo ®Ó thùc hiÖn trong c¬ së d÷ liÖu SQL Server.

II. Sù tÝch hîp víi Windows NT


II.1 ThiÕt lËp chÕ ®é b¶o mËt cña Windows NT (Enterprise Manager)
1. Më réng Server group.
2. NhÊp ph¶i Server, råi chän Properties.
3. NhÊp Security.
4. Chän Windows NT only.
5. Trong Audit level, chän møc mµ ng−êi sö dông truy cËp Microsoft
SQL Server.

- 51 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

II.2 Sù x¸c thùc (Authentication)


Microsoft SQL Server cã thÓ thao t¸c mét trong hai chÕ ®é b¶o mËt sau:
1. ChÕ ®é x¸c thùc Windows NT (Windows NT Authentication).
2. ChÕ ®é hçn hîp (Windows NT Authentication vµ SQL Server
Authentication).
ChÕ ®é hçn hîp cho phÐp ng−êi sö dông kÕt nèi sö dông Windows NT
Authentication hoÆc SQL Server Authentication. Ng−êi sö dông kÕt nèi
qua Microsoft Windows NT sö dông tÝnh to¸n cã thÓ t¹o ra sö dông kÕt
nèi tin cËy (sù kÕt nèi cã hiÖu lùc bëi Windows NT) trong chÕ ®é hçn hîp
vµ chÕ ®é x¸c thùc Windows NT. Sau khi kÕt nèi thµnh c«ng tíi SQL
Server, kü thuËt b¶o mËt gièng nh− c¶ hai chÕ ®é trªn.
HÖ thèng b¶o mËt dùa trªn ®¨ng nhËp vµ mËt khÈu SQL Server (SQL
Server Authentication) cã thÓ dÔ dµng qu¶n lý h¬n hÖ thèng b¶o mËt dùa
trªn Windows NT, ®Æc biÖt cho c¬ së d÷ liÖu mµ kh«ng cÇn nhiÖm vô tíi
h¹n, c¸c øng dông kh«ng nh¹y c¶m vµ th«ng tin mËt.
¾ X¸c thùc Windows NT
• Khi ng−êi sö dông kÕt nèi qua Windows NT, SQL Server x¸c nhËn
r»ng tªn account vµ passwod lµ cã hiÖu lùc khi ng−êi sö dông nhËp
vµo hÖ Windows NT hoÆc Microsoft Windows 95/98.
y SQL Server thùc hiÖn ®¨ng nhËp (login) tÝch hîp b¶o mËt víi
Windows NT bëi sö dông thuéc tÝnh b¶o mËt cña ng−êi sö dông
m¹ng kiÓm so¸t truy cËp ®¨ng nhËp.
y Sù tÝch hîp b¶o mËt ®¨ng nhËp ®iÒu khiÓn trªn giao thøc m¹ng hç
trî x¸c thùc kÕt nèi gi÷a m¸y ch¹m (Client) vµ m¸y chñ (Server).
Nh− lµ sù kÕt nèi dùa vµo kÕt nèi thùc vµ hç trî bëi SQL Server sö
dông th− viÖn m¹ng cã s½n.
y X¸c thùc Windows NT cã chøa lîi Ých trªn SQL Server tr−íc hÕt nã
tÝch hîp víi hÖ thèng b¶o mËt Windows NT. HÖ thèng b¶o mËt
Windows NT cung cÊp nhiÒu ®Æc ®iÓm, nh− ®¶m b¶o hiÖu lùc, m·
ho¸ mËt khÈu, ... bëi v× nhãm sö dông Windows NT duy tr× bëi
Windows NT, SQL Server ®äc c¸c th«ng tin vÒ thµnh viªn trong
nhãm khi ng−êi sö dông kÕt nèi. NÕu thay ®æi nµy t¹o ra quyÒn
truy cËp cña kÕt nèi sö dông, thay ®æi trë nªn hiÖu lùc ë lÇn kÕt nèi
tiÕp theo tíi SQL Server hoÆc nhËp vµo hÖ Windows NT.

- 52 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

¾ Sù uû quyÒn b¶o mËt account (Security Account Delegation)


Sù uû quyÒn b¶o mËt account cho phÐp m¸y tr¹m (Client) kÕt nèi tíi
mét Server sö dông Windows NT Authentication ®Ó truy cËp Server
kh¸c sö dông lêi gäi thñ tôc tõ xa (RPC) víi uû quyÒn b¶o mËt cña hä,
®óng h¬n sù uû quyÒn b¶o mËt cña Server lóc ®Çu hoÆc x¸c ®Þnh thiÕt
lËp uû quyÒn b¶o mËt trªn Server ®Çu tiªn.
¾ SQL Server Authentication
y Khi ng−êi sö dông kÕt nèi víi tªn ®¨ng nhËp x¸c ®Þnh mËt khÈu tõ
sù kÕt nèi kh«ng tin cËy, SQL Server thùc hiÖn chÝnh sù nhËn thøc
bëi kiÓm tra xem xÐt nÕu SQL Server ®¨ng nhËp account võa cµi
®Æt vµ nÕu tho¶ mËt khÈu x¸c ®Þnh mét b¶n ghi (record) tr−íc ®©y.
y SQL Server Authentication cung cÊp tÝnh t−¬ng hîp lïi l¹i bëi v×
øng dông viÕt cho phiªn b¶n gÇn ®©y cña SQL Server cã thÓ yªu
cÇu sö dông mËt khÈu vµ ®¨ng nhËp SQL Server. H¬n thÕ SQL
Server Authentication yªu cÇu khi SQL Server ch¹y trªn Windows
95/98 bëi v× chÕ ®é x¸c thùc Windows NT lµ kh«ng hç trî trªn
Windows 95/98. V× thÕ SQL Server sö dông chÕ ®é hçn hîp khi
ch¹y trªn Windows 95/98 (nh−ng hç trî duy nhÊt víi SQL Server
Authentication).
y Ph¸t triÓn øng dông vµ c¬ së d÷ liÖu ng−êi sö dông cã thÓ ®−a ra
SQL Server bëi v× chóng quen thuéc víi chøc n¨ng mËt khÈu vµ
®¨ng nhËp. SQL Server Authentication còng yªu cÇu cho sù kÕt nèi
víi internet vµ m¸y tr¹m (Client).

- 53 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

- 54 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Ch−¬ng V

kh¶ n¨ng liªn kÕt víi c¸c ng«n ng÷ lËp tr×nh

I. Liªn kÕt víi C, C++, Visual C++


1. Ch−¬ng tr×nh nhóng SQL cho ng«n ng÷ l©p tr×nh C.
Microsoft nhóng SQL cho ng«n ng÷ l©p tr×nh C (ESQL/C) ®Ò nghÞ ng−êi
lËp tr×nh thay phiªn nhau viÕt øng dông m¸y tr¹m Microsoft SQL Server
víi th− viÖn c¬ së d÷ liÖu (DB-Library) cho ng«n ng÷ l©p tr×nh C hoÆc hÖ
thèng kÕt nèi c¬ së d÷ liÖu më (ODBC) giao diÖn ch−¬ng tr×nh øng dông.
ESQL/C cã kh¶ n¨ng gióp b¹n kÕt hîp chÆt trÏ c©u lªnh Transact-SQL
vµo trong ch−¬ng tr×nh ng«n ng÷ C cña b¹n.
ESQL/C chñ yÕu sö dông chuyÓn mang øng dông hiÖn t¹i cña b¹n tõ c¬
së d÷ liÖu kh¸c tíi SQL Server.

2. Xö lý c©u lÖnh nhóng SQL(Processing Embedded SQL Statements)


Nhóng SQL cho ng«n ng÷ lËp tr×nh C hç trî hoµn toµn phÇn më réng
Transact-SQL, gåm cã thñ tôc l−u tr÷, biÕn côc bé, tr×nh ®iÒu khiÓn dßng
ng«n ng÷. Nhê cã có ph¸p xung ®ét víi nhóng SQL dµnh riªng c¸c tõ
kho¸, bëi v× c©u lÖnh SQL biªn dÞch vµo trong thñ tôc l−u tr÷ bëi tiÒn biªn
dÞch, h¹n chÕ thø yÕu cung cÊp phÇn më réng Transact-SQL lµ ®−îc thùc
thi. Cã c¸c h¹n chÕ sau:
y C©u lÖnh Transact-SQL EXECUTE nªn viÕt t¾t nh− EXEC ®Ó tr¸nh
xung ®ét víi nhóng SQL EXECUTE.
y Nh·n c©u lªnh Transact-SQL kh«ng nªn sö dông trong c©u lÖnh
SQL tÜnh bëi v× chóng xung ®ét víi có ph¸p biÕn chÝnh. Tuy nhiªn
b¹n cã thÓ sö dông nh·n trong c©u lÖnh Transact-SQL ®éng.
y Bëi v× nsqlrep chuyÓn ®æi toµn bé c©u lÖnh SQL tÜnh vµo thñ tôc
l−u tr÷, toµn bé giíi h¹n cho Transact-SQL cung cÊp thñ tôc l−u tíi
c©u lÖnh SQL tÜnh. C©u lÖnh SQL tÜnh chøa c©u lÖnh qu¶n lý giao
dich (nh− COMMIT TRANSACTION hoÆc SAVEPOINT) lµ
kh«ng biªn dich vµo trong thñ tôc l−u tr÷.

3. Ch−¬ng tr×nh th− viÖn c¬ së d÷ liÖu cho ng«n ng÷ C (DB-library)


Microsoft SQL Server lµ cÊu tróc m¹nh cña ng«n ng÷ truy vÊn c¬ së d÷
liÖu Server. Víi phÇn mÒm m¹ng côc bé (LAN), SQL Server cho phÐp

- 55 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Client ch¹y Microsoft Windows NT, c¸c hÖ ®iÒu hµnh Microsoft


Windows hoÆc Microsoft MS-DOS truy cËp tíi dÞch vô. Ng−êi ph¸t triÓn
sÏ viÕt c¸c øng dông cho SQL Server b»ng ch−¬ng tr×nh víi DB-library
cho ng«n ng÷ l©p tr×nh C, phiªn b¶n ng«n ng÷ C th«ng b¸o th− viÖn cho
SQL Server.
DB-Library cho ng«n ng÷ C giao diÖn ch−¬ng t×nh øng dông (API) gåm
cã chøc n¨ng C vµ macros mµ cho phÐp mét øng dông giao tiÕp víi SQL
Server. Chøc n¨ng gåm cã göi c©u lÖnh Transact-SQL tíi SQL Server vµ
chøc n¨ng xö lý kÕt qu¶ cña c©u lÖnh ®ã. C¸c chøc n¨ng kh¸c vÒ ®iÒu
khiÓn lçi vµ chuyÓn ®æi d÷ liÖu.
DB-Library C cã chøc n¨ng sau:
y HÖ thèng kÕt nèi më.
y T¹o khu«n thøc truy vÊn.
y Göi khèi truy vÊn tíi Server vµ nhËn l¹i kÕt qu¶.
y §iÒu khiÓn hai phÇn cam kÕt thao t¸c gi÷a mét vµi thao t¸c SQL
Server.
y Sö dông con trá cã thÓ cuén.
y Bulk-copying d÷ liÖu tõ c¸c file hoÆc biÕn ch−¬ng tr×nh tíi Server.
y Thùc hiÖn thñ tôc l−u tr÷ vµ thñ tôc l−u tr÷ tõ xa.
DB-Library hç trî m«i tr−êng ®a nhiÖm, lËp tr×nh viªn C cã thÓ chän
ph−¬ng thøc sau:
• NhiÒu kü thuËt luång th− viÖn liªn kÕt ®éng (DLL) cho hÖ ®iÒu
hµnh Windows NT.
• M« h×nh võa vµ lín víi th− viÖn liªn kÕt tÜnh cho MS-DOS, cho c¶
ch−¬ng tr×nh biªn dÞch Microsoft vµ Borland.

4. Yªu cÇu hÖ thèng cho viÖc nhóng SQL trong C


Sö dông ESQL/C, b¹n cã thÓ biªn dÞch vµ ch¹y c¸c øng dông trªn c¸c hÖ
®iÒu hµnh kh¸c nhau.
¾ Window NT
Trong Microsoft SQL Server phiªn b¶n 7.0, ESQL/C ®−îc hç trî bëi c¶
Intel@ vµ Alpha ®Æt trªn nÒn chuÈn Microsoft Windows NT. Nh÷ng ®Æc
tr−ng cña hÖ thèng ®ßi hái :
y Microsolft Windows NT Workstation phiªn b¶n 3.51 trë lªn hoÆc
Microsoft Windows NT Server phiªn b¶n 3.5 vÒ sau.

- 56 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

y Microsoft Visual C++ ph¸t triÓn trªn hÖ thèng 32 bit, phiªn b¶n 2.0
hoÆc phiªn b¶n vÒ sau (phiªn b¶n 5.0 lµ ®−îc giíi thiÖu) hoÆc
100% t−¬ng thÝch víi ch−¬ng tr×nh biªn dÞch vµ liªn kÕt.
y Microsoft SQL Server 6.0 hoÆc phiªn b¶n sau nµy, file Ntwdblib.dll
cÇn thiÕt ë phiªn b¶n 6.0 hoÆc phiªn b¶n sau. Th− viÖn nµy ®−îc
cµi ®Æt trong hÖ thèng cña b¹n d−íi \Devtools\lib.
¾ Windows 95/98
• Microsoft Windows 95/98.
y Microsoft Visual C++ ph¸t triÓn trªn hÖ thèng 32 bit, phiªn b¶n 2.0
hoÆc phiªn b¶n vÒ sau (phiªn b¶n 5.0 lµ ®−îc giíi thiÖu) hoÆc
100% t−¬ng thÝch víi ch−¬ng tr×nh biªn dÞch vµ liªn kÕt.
y Microsoft SQL Server 6.0 hoÆc phiªn b¶n sau nµy, file Ntwdblib.dll
cÇn thiÕt ë phiªn b¶n 6.0 hoÆc phiªn b¶n sau.
¾ Windows
y Ch−¬ng tr×nh biªn dÞch vµ th− viÖn ESQL/C 16-bit cã s½n cho sö
dông víi SQL Server 7.0 nh−ng kh«ng ®−îc hç trî. Ch−¬ng tr×nh
biªn dÞch vµ th− viÖn cã thÓ copy tõ ®Üa compact SQL Server. HÖ
thèng yªu cÇu ch¹y ESQL/C d−íi Windows 16-bit lµ:
y Microsoft Windows phiªn b¶n 3.1 hoÆc phiªn b¶n sau, hoÆc
Microsoft Windows for Workgroups phiªn b¶n 3.11 hoÆc phiªn
b¶n sau.
y Microsoft Visual C++ ph¸t triÓn trªn hÖ thèng 32 bit, phiªn b¶n 5.0
(phiªn b¶n nhá nhÊt lµ 2.0), hoÆc 100% t−¬ng thÝch víi ch−¬ng
tr×nh biªn dÞch vµ liªn kÕt.
y Microsoft SQL Server 6.0 hoÆc phiªn b¶n sau nµy, file Ntwdblib.dll
cÇn thiÕt ë phiªn b¶n 6.0 hoÆc phiªn b¶n sau.
¾ MS-DOS
y Ch−¬ng tr×nh biªn dÞch vµ th− viÖn ESQL/C 16-bit cã s½n sö dông
víi SQL Server 7.0 nh−ng kh«ng ®−îc hç trî. Ch−¬ng tr×nh biªn
dÞch vµ th− viÖn cã thÓ copy tõ ®Üa compact SQL Server. HÖ thèng
yªu cÇu ch¹y ESQL/C d−íi Microsoft MS-DOS 16-bit lµ:
y Microsoft MS-DOS phiªn b¶n 6.22 hoÆc phiªn b¶n sau.
y Microsoft Visual C++ ph¸t triÓn trªn hÖ thèng 16 bit, phiªn b¶n
1.52 hoÆc phiªn b¶n sau, hoÆc 100% t−¬ng thÝch víi ch−¬ng tr×nh
biªn dÞch vµ liªn kÕt.

- 57 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

y Microsoft SQL Server 6.0 hoÆc phiªn b¶n sau.

II. Liªn kÕt víi Visual Basic


Víi Visual Basic còng cã kh¶ n¨ng nhóng SQL t−¬ng tù ®èi víi ng«n ng÷
lËp tr×nh C hoÆc Visual C.

- 58 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Ch−¬ng VI
X©y dùng thiÕt kÕ ch−¬ng tr×nh

I. M« h×nh Client/Server
I.1 M« h×nh Client/Server lý thuyÕt
Ngµy nay m« h×nh Client/Server ®−îc sö dông rÊt réng r·i v× cÊu tróc cña
m« h×nh nµy rÊt phï hîp víi cÊu tróc cña nhiÒu ngµnh nghÒ cã thÓ kÓ ra
nh− ng©n hµng, b−u ®iÖn, n¨ng l−îng, ...
¾ KiÕn tróc nguyªn lý gåm c¸c hÖ thèng:
• M¸y chñ (Server), phÇn mÒm m¸y chñ.
• M¸y kh¸ch (Client), phÇn mÒm trªn m¸y kh¸ch.
• HÖ thèng m¹ng LAN, WAN, ... vµ c¸c phÇn mÒm qu¶n trÞ m¹ng.
¾ Ho¹t ®éng cña øng dông Client/Server nh− sau:
PhÇn mÒm trªn Server nhËn nh÷ng yªu cÇu xö lý d÷ liÖu tõ m¸y Client
th«ng qua mét kÕt nèi gi÷a m¸y Server vµ Client kÓ trªn. M¸y Server
nhËn ®−îc yªu cÇu trªn cña Client sÏ tiÕn hµnh sö lý d÷ liÖu dùa trªn hÖ
thèng c¬ së d÷ liÖu trªn Server nµy vµ tr¶ vÒ cho m¸y Client kÕt qu¶ xö lý
vµ c¸c lçi nÕu cã.

Client Server
Procesed
SQL Request
Application Logic Application Logic
Presentation Logic Processed DBMS
Result

Applications logic: giao diÖn víi ng−êi sö dông.


Presentations Logic: xö lý t−¬ng t¸c cña ng−êi dïng.
DBMS: HÖ qu¶n trÞ c¬ së d÷ liÖu ®Æt trªn Server.

- 59 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Processed SQL request: tiÕn tr×nh ®−a ra yªu cÇu xö lý d÷ liÖu theo d¹ng
lÖnh SQL Server.
Processed result: tiÕn tr×nh tr¶ vÒ d÷ liÖu cho Client tõ Server.
¾ M« h×nh nµy mang l¹i nhiÒu lîi Ých:
• TiÖn lîi, linh ho¹t: khi ph¶i n©ng cÊp phÇn mÒm cho Client hoÆc
Server th× Ýt ¶nh h−ëng ®Õn phÇn cßn l¹i.
• B¶o mËt, an toµn d÷ liÖu.
• X©y dùng ph©n t¸n nh−ng ®iÒu khiÓn tËp trung.
• TiÕt kiÖm h¬n so víi c¸c øng dông dùa trªn Mainframe.
• TÝnh më cao.

I.2 ¸p dông lý thuyÕt vµo ch−¬ng tr×nh qu¶n lý d©n c−


Dùa trªn nh÷ng c¬ së lý thuyÕt ®· tr×nh bµy ë trªn ta ¸p dông vµo qu¶n lý
d©n c−.
HÖ thèng ®−îc cµi ®Æt theo m« h×nh Client/Server bao gåm:
¾ M¸y Client
• HÖ ®iÒu hµnh Windows 95/98 hoÆc Windows 2000.
• C«ng cô giao diÖn ng−êi sö dông vµ kÕt nèi tíi Server: SQL Server.
• KÕt nèi th«ng qua hÖ thèng chuÈn ODBC cña h·ng Microsoft.
¾ M¸y Server
• HÖ ®iÒu hµnh Windows NT Server 4.0 hoÆc phiªn b¶n cao h¬n.
• HÖ qu¶n trÞ c¬ së d÷ liÖu: Microsoft SQL Server 7.0
¾M¹ng: hÖ thèng m¹ng LAN,WAN, ...

II. Mét sè vÊn ®Ò vÒ chuÈn ho¸ d÷ liÖu


II.1 §Þnh nghÜa phô thuéc hµm
¾ Khi tiÕn hµnh x©y dùng thiÕt kÕ mét c¬ së d÷ liÖu cho bµi to¸n cã c¸c
vÊn ®Ò n¶y sinh:
• D− thõa d÷ liÖu (Redundancy): mét th«ng tin ®−îc l−u tr÷ ë nhiÒu
n¬i trong c¬ së d÷ liÖu.

- 60 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

• Kh«ng nhÊt qu¸n (Inconsistency): lµ hÖ qu¶ cña viÖc d− thõa d÷


liÖu, lµ do khi cËp nhËt d÷ liÖu ®· kh«ng ®Ò cËp nhËp hÕt c¸c d÷
liÖu d− thõa.
• DÞ th−êng khi thªm bé (Insertion anomalies): x¶y ra khi thªm mét
bé mµ c¸c gi¸ trÞ t−¬ng øng víi c¸c thuéc tÝnh kh«ng ®ñ.
• DÞ th−êng khi xo¸ bé (Deletion anomalies): x¶y ra khi xo¸ mét bé
vµo mét quan hÖ.
C¸c vÊn ®Ò trªn cho thÊy cÇn cã mét gi¶i ph¸p ®Ó kh¾c phôc ®−îc nh÷ng
nh−îc ®iÓm trªn. ®ã lµ ph−¬ng ph¸p chuÈn ho¸ c¸c b¶ng d÷ liÖu.
¾ §Ó t×m hiÓu néi dung cña ph−¬ng ph¸p chuÈn ho¸ chóng ta xem xÐt
mét sè kh¸i niÖm sau ®©y vÒ phô thuéc hµm:
§Þnh nghÜa: Cho R(U) lµ mét l−îc ®å quan hÖ víi U lµ tËp c¸c thuéc tÝnh.
X,Y lµ tËp con cña U.
Ta nãi r»ng X -> Y (®äc lµ X x¸c ®Þnh hµm Y hoÆc Y phô thuéc hµm vµo
X). NÕu r lµ mét quan hÖ x¸c ®Þnh trªn R(U) sao cho bÊt kú hai bé T1,
T1∈ r mµ
T1[X] = T2[X] th× T1[Y] = T2[Y]
CÇn chó ý r»ng chØ xÐt c¸c phô thuéc hµm tho¶ m·n mäi quan hÖ trªn
l−îc ®å quan hÖ t−¬ng øng cña nã chø kh«ng xÐt phô thuéc hµm tho¶
m·n mét quan hÖ ®Æc biÖt nµo.
II.2 C¸c d¹ng chuÈn
ViÖc chuÈn ho¸ c¸c quan hÖ còng nh− c¸c s¬ ®å quan hÖ ®ãng vai trß cùc
kú quan trong trong viÖc thiÕt kÕ c¸c hÖ qu¶n trÞ c¬ së d÷ liÖu trªn m«
h×nh d÷ liÖu. Nhê cã c¸c chuÈn ho¸ c¸c quan hÖ vµ c¸c s¬ ®å quan hÖ
chóng ta tr¸nh ®−îc viÖc d− thõa d÷ liÖu vµ t¨ng tèc ®é cña c¸c phÐp to¸n
xö lÝ quan hÖ.
¾ D¹ng chuÈn 1 (1NF)
§Þnh nghÜa 1NF: mét l−îc ®å quan hÖ R ®−îc gäi lµ ë d¹ng chuÈn mét
(1NF) nÕu vµ chØ nÕu toµn bé c¸c miÒn cã mÆt trong R ®Òu chØ chøa
gi¸ trÞ nguyªn tè.
¾ D¹ng chuÈn 2 (2NF)
Tr−íc khi ®−a ra ®Þnh nghÜa cÇn xem xÐt tíi kh¸i niÖm vÒ phô thuéc
hµm ®Çy ®ñ:
Cho l−îc ®å quan hÖ R(U) trªn tËp thuéc tÝnh U = {A1,...Ak}. X, Y lµ
hai tËp thuéc tÝnh kh¸c nhau nh−ng ®Òu lµ tËp con cña U. Y lµ phô

- 61 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

thuéc hµm ®Çy ®ñ vµo X nÕu Y lµ phô thuéc hµm vµo X nh−ng kh«ng
phô thuéc hµm vµo bÊt kú mét tËp hîp con thùc sù nµo cña X.
§Þnh nghÜa 2NF: L−îc ®å quan hÖ R ë d¹ng chuÈn thø hai nÕu nã ë
d¹ng chuÈn thø nhÊt vµ mçi thuéc tÝnh kh«ng kho¸ cña R lµ phô thuéc
hµm ®Çy ®ñ vµo kho¸ chÝnh.
¾ D¹ng chuÈn 3 (3NF)
§Þnh nghÜa 3NF: l−îc ®å quan hÖ R ë d¹ng chuÈn thø ba nÕu nã ë
d¹ng chuÈn thø hai vµ nÕu mçi thuéc tÝnh kh«ng kho¸ cña R lµ kh«ng
phô thuéc hµm b¾c cÇu vµo kho¸ chÝnh.
Trªn ®©y lµ ba d¹ng chuÈn ®iÓn h×nh, ngoµi ra cßn cã mét sè chuÈn kh¸c
nh− kh«ng nªu ra ë ®©y. C¸c b¶ng trong c¬ së d÷ liÖu ch−a chuÈn ho¸ th×
ta cã thÓ tiÕn hµnh ph©n r· c¸c b¶ng nµy thµnh c¸c b¶ng ë d¹ng chuÈn
ho¸. Trong thùc tÕ kh«ng ph¶i lóc nµo d÷ liÖu d− thõa còng kh«ng tèt, ®«i
khi ng−êi ta chÊp nhËn sù d− thõa nµy ®Ó tr¸nh ph¶i tr¶ gi¸ cho viÖc thªm
phÐp kÕt nèi tõ xa tèn kÐm h¬n nhiÒu.

III. ThiÕt kÕ d÷ liÖu


III.1 ThiÕt kÕ d÷ liÖu ®Çu vµo
D÷ liÖu ®Çu vµo cña hÖ thèng qu¶n lý d©n c− bao gåm c¸c th«ng tin sau:
1. M· sè c«ng d©n *
2. Tªn khai sinh
3. Tªn th−êng gäi
4. Giíi tÝnh
5. Ngµy sinh
6. Quèc tÞch
7. D©n téc
8. T«n gi¸o
9. Quª qu¸n
10. Sè chøng minh th−
11. N¬i ®¨ng ký hé khÈu th−êng tró
12. Sè hé khÈu
13. Lo¹i hé khÈu
14. Hä tªn chñ hé

- 62 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

15. Quan hÖ víi chñ hé


16. Ngµy nhËp khÈu
17. Lý do nhËp khÈu
18. Chç ë hiÖn nay
19. DiÖn tÝch b×nh qu©n nhµ ë
20. C¸c m· sè ®¨ng ký kÕt h«n
21. C¸c m· sè giÊy ly h«n
22. C¸c m· sè khai tö
23. Lo¹i hé khÈu tai n¬i ë hiÖn nay
24. Tr×nh ®é häc vÊn
25. Tr×nh ®é chuyªn m«n ®µo t¹o
26. Ngµnh nghÒ ®−îc ®µo t¹o
27. Ngµnh nghÒ ®ang lµm
28. T×nh tr¹ng viÖc lµm (th−êng xuyªn, thÊt th−êng, thÊt nghiªp)
29. H×nh thøc viÖc lµm (tù do, biªn chÕ, hîp ®ång)
30. Cã nhu cÇu häc nghÒ
31. ChÕ ®é −u ®·i ®ang h−ëng
32. M· sè c¸c b¶n ¸n
33. C¸c téi danh
34. C¸c lo¹i téi ph¹m
35. C¸c h×nh ph¹t
36. Ngµy kª khai/ cËp nhËt

III.2 D÷ liÖu ®Çu ra gåm


- HiÓn thÞ th«ng tin vÒ d©n c−.
- CËp nhËt, söa ch÷a, ...
- T×m kiÕm vµ tra cøu d÷ liÖu vÒ d©n c−.
III.3 CÊu tróc c¸c b¶ng
¾ B¶ng Congdan dïng l−u tr÷ hå s¬ c«ng d©n

- 63 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Stt Tªn tr−êng KiÓu d÷ liÖu §é réng


1 M· sè c«ng d©n * Char 10
2 Tªn khai sinh Char 30
3 Tªn th−êng gäi Char 15
4 Giíi tÝnh Char 3
5 Ngµy sinh Datetime 8
6 Quèc tÞch Char 15
7 D©n téc Char 15
8 T«n gi¸o Char 10
9 Quª qu¸n Varchar 50
10 Sè chøng minh th− Numeric 9
11 Sè hé khÈu Numeric 9
12 Lo¹i hé khÈu Char 15
13 N¬i ®¨ng ký hé khÈu t. tró Varchar 50
14 Hä tªn chñ hé Char 32
15 Quan hÖ víi chñ hé Char 25
16 Ngµy nhËp khÈu Datetime 8
17 Lý do nhËp khÈu Char 35
18 Chç ë hiÖn nay Varchar 50
19 DiÖn tÝch b×nh qu©n nhµ ë Int 3
20 M· sè ®¨ng ký kÕt h«n Numeric 9
21 M· sè giÊy ly h«n Numeric 9
22 M· sè giÊy khai tö Numeric 9
23 Ngµy kª khai/ cËp nhËt Datetime 8

¾ CÊu tróc b¶ng Trinhdo.


B¶ng nµy dïng ®Ó l−u tr÷ vÒ tr×nh ®é vµ nghÒ nghiÖp cña mçi c«ng d©n.

- 64 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Stt Tªn tr−êng KiÓu d÷ liÖu §é réng


1 M· sè c«ng d©n * Char 10
2 Tr×nh ®é häc vÊn Char 35
3 Tr×nh ®é chuyªn m«n ®µo t¹o Char 30
4 Ngµnh nghÒ ®−îc ®µo t¹o Char 55
5 Ngµnh nghÒ ®ang lµm Char 40
T×nh tr¹ng viÖc lµm (th−êng
6 Char 25
xuyªn, thÊt th−êng, thÊt nghiªp)
H×nh thøc viÖc lµm
7 Char 30
(tù do, biªn chÕ, hîp ®ång)
8 Cã nhu cÇu häc nghÒ Char 15
9 ChÕ ®é −u ®·i ®ang h−ëng Varchar 50
10 Ngµy kª khai/ cËp nhËt Datetime 8

¾ CÊu tróc b¶ng Toidanh.

Stt Tªn tr−êng KiÓu d÷ liÖu §é réng


1 M· sè c«ng d©n * Char 10
2 M· sè c¸c b¶n ¸n Numeric 9
3 C¸c téi danh Varchar 50
4 C¸c lo¹i téi ph¹m Varchar 50
5 C¸c h×nh ph¹t Varchar 50
6 Ngµy kª khai/ cËp nhËt Datetime 8

¾ ThiÕt kÕ m·
C¸c b¶ng Congdan, Trinhdo, Toi danh, ... ®Òu dïng m· sè c«ng d©n lµm
kho¸ c¬ b¶n nªn chØ cÇn thiÕt kÕ m· sè c«ng d©n. ChØ cÇn biÕt ®−îc m·
c«ng d©n lµ cã thÓ t×m ra c¸c th«ng tin cã liªn quan nh− lµ hä tªn, ngµy
sinh, quª qu¸n, tr×nh ®é häc vÊn, ...

- 65 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Tªn hÖ thèng: ..........................


ThiÕt kÕ m· cho b¶ng Congdan Ngµy ThiÕt kÕ: 25/5/2000
Tªn m·: Ph−¬ng ph¸p m·: Sè cét: 23
M· sè c«ng d©n M· tuÇn tù
Sè l−îng sö dông: Chu kú sö dông: §−îc sö dông trong:
HiÖn nay kho¶ng: 5-10 n¨m X¸c ®Þnh th«ng tin vÒ d©n
250000-500000 c− trong quËn.
T−¬ng lai kho¶ng: Thèng kª, b¸o c¸o, cËp
600000-999999 nhËt, t×m kiÕm, tra cøu, ...
§èi t−îng m·: M· sè c«ng d©n
CÊu tróc: tuÇn tù
CÊu tróc:
A 01 000001: m· quËn, m· ph−êng/x·, sè thø tù
D¹ng m· quËn: A Î Z
D¹ng m· ph−êng/x·: 01 Î 99
D¹ng sè thø tù: 000001 Î 999999

IV. Sö dông SQL Server vµo viÖc qu¶n lý


IV.1 Giíi thiÖu vÒ mµn h×nh giao diÖn SQL Server
¾ Microsoft Management Console (MMC) lµ mét c«ng cô mµ b¹n cã thÓ
dïng ®Ó t¹o, l−u, vµ më c¸c c«ng cô qu¶n lý (®−îc gäi lµ MMS consoles)
nh»m qu¶n lý phÇn cøng, phÇn mÒn, vµ c¸c thµnh phÇn cña hÖ Windows
NT. (B¹n còng cã thÓ ch¹y MMS trªn c¸c hÖ ®iÒu hµnh Windows 95 vµ
Windows 98). MMS cung cÊp c¸c thuËn lîi sau ®©y:
• Giao diÖn chung (Common interface): MMS cung cÊp mét giao
diÖn ng−êi dïng ®¬n ®Ó tõ ®ã cã thÓ ch¹y tÊt c¶ c¸c c«ng cô qu¶n
lý.
• TÝnh nguyªn vÑn (Integration): MMS tÝch hîp tÊt c¶ c¸c c«ng cô
®−îc yªu cÇu ®Ó thùc hiÖn t¸c vô qu¶n lý.
• Cã thÓ ®Þnh cÊu h×nh (Configurable): MMS cÊu h×nh c¸c c«ng cô
®Ó ho¹t ®éng trªn c¸c thµnh phÇn hÖ thèng ®Æc biÖt.

- 66 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

• Cã thÓ t¹o l¹i (Reproducible): MMS l−u c¸c c«ng cô vµ c¸c cÊu
h×nh kÕt hîp ®Ó b¹n cã thÓ më vµ sö dông trªn c¸c m¸y tÝnh kh¸c
nhau.
MMC kh«ng thùc hiÖn chøc n¨ng qu¶n lý, nh−ng l¹i ®iÒu khiÓn c¸c
ch−¬ng tr×nh, ®−îc gäi lµ snap-ins ®Ó thùc hiÖn ®iÒu ®ã. B¹n cã thÓ bæ
sung snap-ins vµo bÊt cø MMS consoles vµ cÊu h×nh chung ®Ó qu¶n lý
mét thµnh phÇn cña hÖ thèng.
Cã hai c¸ch chÝnh mµ b¹n cã thÓ sö dông MMS: trong chÕ ®é user, lµm
viÖc víi c¸c MMS consoles ®ang cã ®Ó qu¶n lý mét hÖ thèng, hoÆc trong
chÕ ®é author, t¹o ra mét consoles míi hoÆc chØnh söa MMS ®ang cã.
¾ SQL Enterprise Manager lµ mét c«ng cô ®å ho¹ cho phÐp b¹n dÔ dµng
®inh cÊu h×nh vµ qu¶n lý c¸c ®èi t−îng Microsoft SQL Server vµ SQL
Server. SQL Enterprise Manager hç trî mét sè kh¶ n¨ng sau:
• Kh¶ n¨ng c¶nh b¸o dµnh cho ng−êi qu¶n lý.
• Mét c«ng cô lËp thêi biÓu (scheduling engine)
• Giao diÖn qu¶n lý lÆp l¹i ®−îc t¹o s½n.
• T¹o c¸c script.
• Qu¶n lý c¸c thiÕt bÞ vµ c¬ së d÷ liÖu.
• Sao chÐp dù phßng c¸c c¬ së d÷ liÖu vµ transaction log.
• Qu¶n lý c¸c Table, c¸c View, c¸c Trigger, c¸c index, ...

- 67 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

¾ C¬ së d÷ liÖu (Databases)
Mét c¬ së d÷ liÖu trong Microsoft SQL Server bao gåm tËp hîp cña
c¸c b¶ng víi d÷ liÖu vµ c¸c ®èi t−îng kh¸c nh− c¸c views, c¸c indexes,
c¸c stored procedures, c¸c triggers mµ x¸c ®Þnh ®Ó hç trî ho¹t ®éng
thùc hiÖn víi d÷ liÖu. Tr−íc c¸c ®èi t−îng trong c¬ së d÷ liÖu cã thÓ
®−îc t¹o ra, b¹n ph¶i t¹o c¬ së d÷ liÖu vµ hiÓu vÒ c¸ch thay ®æi cµi ®Æt
vµ ®Þnh cÊu h×nh c¬ së d÷ liÖu nh− thÕ nµo. Thao t¸c nµy bao gåm nh−
lµ më réng hoÆc rót gän c¬ së d÷ liÖu, hoÆc chØ ®Þnh c¸c file sö dông
t¹o ra c¬ së d÷ liÖu.
¾ Sö dông Data Transformation Services (DTS)
B¹n cã thÓ nhËp xuÊt d÷ liÖu gi÷a nhiÒu nguån kh¸c nhau sö dông cÊu
tróc dùa trªn OLE DB. B¹n cã thÓ biÕn ®æi d÷ liÖu theo h−íng x©y
dùng kho d÷ liÖu tõ xö lý biÕn ®æi trùc tuyÕn (Online Transaction
Processing = OLTP) hÖ thèng trong qu¸ tr×nh nµy. H¬n thÕ n÷a DTS
cho phÐp b¹n chuyÓn giao ®èi t−îng c¬ së d÷ liÖu nh− lµ c¸c chØ sè vµ
c¸c thñ tôc l−u tr÷ gi÷a c¸c m¸y ch¹y SQL Server 7.0
Sö dông DTS, cã thÓ thùc hiÖn:
• X©y dùng kho d÷ liÖu vµ d÷ liÖu trung t©m trong Microsoft SQL
Server bëi nhËp vµo vµ chuyÓn giao d÷ liÖu tõ nhiÒu nguån kh¸c
nhau t−¬ng t¸c hoÆc nÒn t¶ng lËp tr−íc theo chu kú tù ®éng.
• T¹o tuú chØnh biÕn ®æi c¸c ®èi t−îng mµ cã thÓ tÝch hîp vµo ba
phÇn (third-party) s¶n phÈm.
• Truy cËp øng dông sö dông third-party OLE DB providers. §iÒu
nµy cho phÐp c¸c øng dông, mµ nhµ cung cÊp OLE DB hiÖn cã,
®−îc sö dông nh− lµ nguån vµ ®Ých cña d÷ liÖu.
DTS cho phÐp b¹n di chuyÓn vµ biÕn ®æi d÷ liÖu theo h−íng vµ xuÊt
ph¸t tõ:
• Nhµ cung cÊp OLE DB nh− lµ SQL Server, Microsoft Excel, vµ
Microsoft Access.
• Nguån d÷ liÖu ODBC nh− lµ Oracle vµ DB2 sö dông Microsoft
OLE DB provider cho ODBC.
C¸c thµnh phÇn DTS gåm cã DTS Import Wizard, DTS Export Wizard, vµ
DTS Designer, mµ dïng s½n qua SQL Server Enterprise Manager. DTS
còng bao gåm ch−¬ng tr×nh giao tiÕp COM b¹n cã thÓ sö dông ®Ó t¹o ra
tuú biÕn nhËp xuÊt vµ chuyÓn ®æi c¸c øng dông.

- 68 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

¾ Qu¶n lý Server
ViÖc qu¶n lý Microsoft SQL Server gåm mét lo¹t c¸c t¸c vô qu¶n lý
sau:
• §¨ng ký Server vµ g¸n nhËn passwords.
• §Þnh l¹i cÊu h×nh kÕt nèi m¹ng.
• CÊu h×nh Server liªn kÕt, cho phÐp b¹n thùc hiÖn c¸c truy vÊn
(queries) ph©n bè vµ c¸c môc chuyÓn giao ph©n bè vÒ nguån d÷
liÖu OLE DB th«ng qua Enterprise.
• §Þnh cÊu h×nh Server tõ xa, mµ cho phÐp b¹n kÕt nèi tíi sö dông
SQL Server ®Ó thùc hiÖn thñ tôc l−u tr÷ th−êng tró trªn SQL
Server kh¸c.
• ThiÕt lËp cÊu h×nh tuú chän Server.
• Qu¶n lý th«ng tin SQL Server.
• Cµi ®Æt kho¶ng kiÓm xo¸t vßng (polling interval).
Trong phÇn lín c¸c tr−êng hîp, b¹n kh«ng cÇn ®Þnh l¹i cÊu h×nh
Server. MÆc ®Þnh cµi ®Æt cho c¸c thµnh phÇn Server, cÊu h×nh trong khi
cµi ®Æt SQL Server, cho phÐp b¹n ch¹y ngay sau khi cµi ®Æt. Tuy
nhiªn, sù qu¶n lý Server cÇn thiÕt trong t×nh huèng khi b¹n muèn thªm
vµo Server míi, cµi ®Æt riªng biÖt cÊu h×nh Server, thay ®æi kÕt nèi
m¹ng, hoÆc thiÕt lËp cÊu h×nh tuú chon c¶i thiÖn thùc thi SQL Server.
¾ Qu¶n lý b¶o mËt (Managing Security)
§Ó ®¶m b¶o r»ng d÷ liÖu vµ ®èi t−îng l−u tr÷ trong Microsoft SQL
Server lµ truy cËp duy nhÊt bëi uû quyÒn cña ng−êi sö dông (user), sù
b¶o mËt ph¶i ®−îc thiÕt lËp ®óng. Sù hiÓu biÕt vÒ thiÕt lËp ®óng cã thÓ
gióp nhµ qu¶n lý nh÷ng viÖc s¶y ra ®¬n gi¶n. YÕu tè b¶o mËt mµ cã
thÓ cã thiÕt lËp gåm cã c¸ch thøc x¸c nhËn, logins, users, roles, g¸n
quyÒn, huû quyÒn, vµ tõ chèi cho phÐp trªn c©u lÖnh Transact-SQL vµ
c¸c ®èi t−îng, sù mËt ho¸ d÷ liÖu.

- 69 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

IV.2 BiÓu ®å c¬ së d÷ liÖu vµ khung nh×n.

¾ BiÓu ®å c¬ së d÷ liÖu cho ta biÕt ®−îc mèi quan hÖ gi÷a c¸c b¶ng víi
nhau nh− b¶ng Congdan, Trinhdo, Toidanh.

¾ B»ng c¸ch t¹o, chØnh söa vµ sö dông thñ tôc l−u tr÷ chóng ta cã thÓ
®¬n gi¶n ho¸ c¸c tr×nh øng dông giao dÞch vµ c¶i tiÕn tr×nh øng dông
vµ thùc hiÖn c¬ së d÷ liÖu.

- 70 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

¾ B»ng c¸ch sö dông c¸c view ®Ó tèi −u ho¸, b¹n cã thÓ t¨ng tèc ®é
truy cËp nhanh h¬n.

- 71 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

IV.3 ¸p dông SQL Server vµo viÖc qu¶n lý vµ truy vÊn


¾ Sau khi nhËp d÷ liÖu vµo trong c¬ së d÷ liÖu chóng ta b¾t ®Çu sö dông
c©u lÖnh SQL Server ®Ó truy vÊn t×m c¸c th«ng tin cÇn thiÕt vÒ mét c¸
nh©n nµo ®ã chØ cÇn biÕt mét sè ®Æc ®iÓm c¬ b¶n nh−: m· sè c«ng d©n,
ngµy sinh, giíi tÝnh, quª qu¸n, tr×nh ®é, ...
¾ Mµn h×nh truy vÊn trong SQL Server Enterprise cã d¹ng nh− h×nh sau
trong ®ã cã: Show/Hide Diagram Pane, Show/Hide Grid Pane, Show/Hide
SQL Pane, Show/Hide Results Pane.
• Show/Hide Diagram Pane giíi thiÖu tr×nh bµy minh ho¹ cña d÷ liÖu
®Çu ra (c¸c b¶ng, hoÆc c¸c truy vÊn kh¸c) b¹n cã sù lùa chän tõ d÷ liÖu
cã liªn quan. Trong Diagram Pane b¹n cã thÓ:
- Thªm vµo hoÆc gì bá nguån d÷ liÖu vµo vµ chØ ®Þnh c¸c cét cho
®Çu ra.
- ChØ ®Þnh c¸c cét cho trËt tù truy vÊn.
- ChØ ®Þnh mµ b¹n muèn nhãm c¸c hµng trong tËp kÕt qu¶.

- 72 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

• Show/Hide Grid Pane cho phÐp b¹n chØ ®Þnh tuú chän query – nh− lµ
d÷ liÖu cét ®−îc hiÓn thÞ nh− thÕ nµo, thø tù kÕt qu¶ ra sao vµ c¸c hµng
nµo lµ lùa chän trong truy vÊn, ... víi Grid Pane b¹n cã thÓ:
- C¸c cét hiÓn thÞ vµ bÝ danh tªn cét.
- B¶ng cã cét thuéc vÒ nã.
- BiÓu thøc tÝnh to¸n cho c¸c cét.
- TrËt tù s¾p xÕp cho c¸c truy vÊn.
- T×m kiÕm cã ®iÒu kiÖn.
- KÕt hîp tiªu chÝ, gåm chøc n¨ng tæng hîp sö dông cho b¸o c¸o
tæng kÕt.
- Gi¸ trÞ míi cho cËp nhËt hoÆc chÌn c¸c gi¸ trÞ truy vÊn.
- Tªn cét ®Ých dùa vµo truy vÊn.
• Show/Hide SQL Pane hiÓn thÞ c©u lÖnh SQL cho truy vÊn hiÖn hµnh.
Víi SQL Pane b¹n cã thÓ:
- T¹o ra truy vÊn míi bëi ®−a vµ c¸c c©u lÖnh SQL.
- Thay ®æi c©u lÖnh SQL tao ra bëi ng−êi thiÕt kÕ truy vÊn dùa
trªn cµi ®Æt t¹o ra Diargam vµ Grid pane.
- §−a vµo c¸c c©u lÖnh mµ ®em l¹i sù thuËn lîi cña tÝnh n¨ng x¸c
®Þnh tíi c¬ së d÷ liÖu b¹n ®ang sö dông.
• Show/Hide Results Pane ®−a ra c¸c kÕt qu¶ cña phÇn lín truy vÊn lùa
chän thùc hiÖn trªn SQL pane. (c¸c kÕt qu¶ cña truy vÊn kh¸c hiÓn thÞ
trong hép th«ng b¸o). Trong Results pane b¹n cã thÓ:
- Xem tËp kÕt qu¶ truy vÊn trong b¶ng Results pane.
- HiÖu chØnh c¸c gi¸ trÞ trong c¸c cét riªng trong tËp kÕt qu¶,
thªm vµo hµng míi, xo¸ bá nh÷ng hµng kh«ng cÇn thiÕt.
¾ Sö dông c©u lÖnh SQL ®Ó kiÕt xuÊt, xem xÐt c¸c th«ng tin cã liªn quan
®Õn c«ng d©n, thèng kª, b¸o c¸o, tæng hîp, ...
D÷ liÖu thö trong c¬ së d÷ liÖu lµ 131 b¶n ghi trong ®ã gåm nhiÒu tr−êng
kh¸c nhau nh− M· sè c«ng d©n, Tªn Khai sinh, Ngµy sinh, ...

- 73 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

• T×m tæng sè d©n trong quËn:

• Trong tæng sè d©n cña mét quËn cã bao nhiªu nam, bao nhiªu n÷.

- 74 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

• Tæng sè trÎ em ®Õn tuæi tíi tr−êng n¨m häc 2000 - 2001 lµ bao nhiªu
em ?

• Xem cã bao nhiªu em ch−a ®Õn tuæi ®i häc, bao nhiªu em häc tiÓu
häc, bao nhiªu em häc phæ th«ng c¬ së, bao nhiªu em häc trung häc.

- 75 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

• Thèng kª mét quËn cã bao nhiªu ng−êi cã tr×nh ®é ®¹i häc, cao häc.

• Trong tæng sè d©n h·y t×m ng−êi cã ngµy th¸ng n¨m sinh cao tuæi nhÊt
vµ ng−êi trÎ tuæi nhÊt.

- 76 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

• Tõ b¶ng Congdan vµ Trinhdo t×m nh÷ng ng−êi cã tr×nh ®é cao häc


®−îc s¾p xÕp theo ngµy sinh.

• Khi biÕt ®−îc m· sè ®¨ng ký kÕt h«n hoÆc ly h«n th× ta cã thÓ t×m
®−îc th«ng tin vÒ t×nh tr¹ng h«n nh©n cña ng−êi ®ã.

- 77 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

• Khi biÕt ®−îc m· sè c¸c b¶n ¸n th× ta cã thÓ t×m ra m· sè c«ng d©n,
tªn tuæi, ngµy sinh, giíi tÝnh, ...

• Ta cã thÓ dïng c©u lÖnh Update, Delete ®Ó thay ®æi d÷ liÖu hoÆc xo¸.

Trªn ®©y lµ mét sè truy vÊn gióp ta hiÓu thªm vÒ c¸ch mµ SQL Server
thùc hiÖn xö lý c¸c thao t¸c mµ chóng ta cã thÓ dïng trong thùc tÕ.

- 78 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

V. Ph©n ®Þnh c«ng viÖc gi÷a Client/Server trong qu¶n lý


V.1 Chøc n¨ng cña Client vµ Server
Chøc n¨ng cña Client vµ Server trong bµi to¸n qu¶n lý d©n c−:
¾ Chøc n¨ng cña Client lµ n¬i c¸c th«ng tin ®−îc nhËp vµo vµ n¬i th«ng
tin cuèi cïng ®Õn ng−êi sö dông ®−îc kiÕt xuÊt ra mµn h×nh giao tiÕp.
Nh− vËy nhiÖm vô chÝnh cña Client lµ vµo ra th«ng tin, cßn nhiÖm vô xö
lý th«ng tin lµ thø yÕu.
¾ Chøc n¨ng cña Server lµ n¬i t¹o vµ l−u tr÷ d÷ liÖu cña hÖ thèng. Server
lµ n¬i xö lý d÷ liÖu nh− thùc hiÖn c¸c lêi gäi thñ tôc l−u tr÷ (store
procedure), thùc hiÖn c¸c c©u lÖnh SQL Server do Client göi tíi.
¾ HÖ thèng ®−îc x©y dùng bëi:
• T¹i Client: giao diÖn ng−êi dïng ®−îc sö dông b»ng phÇn mÒm
Microsoft SQL Server 7.0.
• T¹i Server: sö dông hÖ qu¶n trÞ c¬ së d÷ liÖu Microsoft SQL Server
7.0
• HÖ ®iÒu hµnh m¹ng: Windows NT Server 4.0 hoÆc cao h¬n.
ViÖc liªn l¹c gi÷a Client vµ Server th«ng qua chuÈn ODBC cña
Microsoft, b»ng viÖc gäi tíi c¸c thñ tôc l−u tr÷ (store procedure), c¸c
lÖnh SQL göi lªn tõ Client.
¾ §¸nh gi¸ −u ®iÓm:
• D÷ liÖu tËp trung trªn Server, dÔ dµng trong qu¶n lý, t¨ng c−êng
tÝnh thèng nhÊt vµ an toµn d÷ liÖu, tr¸nh ®−îc nh÷ng thay ®æi ngoµi
ý muèn cña ng−êi sö dông.
• TËn dông ®−îc tiÒm n¨ng søc m¹nh vÒ sö lý cña Server.
• Gi¶m ®−îc c¸c xö lý t¹i Client, t¨ng tèc ®é nhËp xuÊt d÷ liÖu.
• TËn dông ®−îc −u ®iÓm cña c¬ chÕ gäi thñ tôc l−u tr÷. ®©y lµ mét
trong nh÷ng ®Æc tÝnh −u viÖt nhÊt cña hÖ thèng xö lý c¸c øng dông
ph©n t¸n theo m« h×nh Client/Server.
¾ §¸nh gi¸ nh−îc ®iÓm:
• Xö lý d÷ liÖu trªn Server lµ chÝnh nªn nÕu Server cÊu h×nh kh«ng
m¹nh hoÆc ch¹y song song SQL Server víi nhiÒu øng dông kh¸c
hoÆc cã nhiÒu Client gäi tíi Server th× tèc ®é ®em l¹i sÏ kh«ng nh−

- 79 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

mong muèn. Lµ v× cã nhiÒu lêi gäi thñ tôc, lÖnh SQL ®−îc göi tíi
cïng lóc, th× dßng xÕp hµng sÏ dµi ra.
• SÏ cã qu¸ nhiÒu luång th«ng tin ®i trªn m¹ng, lµm gi¶m tèc ®é
m¹ng.
V.2 C«ng viÖc thùc hiÖn t¹i Client
¾ Chøc n¨ng xuÊt nhËp d÷ liÖu:
• Client cã mét hÖ thèng giao diÖn hÕt søc th©n thiÖn, gióp cho ng−êi
sö dông dÔ dµng, thuËn tiÖn cho ng−êi sö dông trong viÖc theo dâi,
qu¶n lý c¸c d÷ liÖu vµo ra hÖ thèng. Cã thÓ liÖt kª mét sè ®iÓm
nh−: viÖc thiÕt lËp c¸c khu«n d¹ng thèng nhÊt cho c¸c tr−êng d÷
liÖu, viÖc thèng nhÊt sö dông c¸c hÖ thèng phÝm ®iÒu khiÓn.
• Khi Client goi thñ tôc l−u tr÷, mét lÖnh SQL th× kÕt qu¶ truy vÊn
®−îc Server göi l¹i Clinet th«ng qua mét cursor, mäi th«ng tin kiÕt
xuÊt ra mµn h×nh ®Òu dùa vµo cursor nµy.
¾ Chøc n¨ng xö lý
• KiÓm tra tÝnh hîp lÖ cña d÷ liÖu
Môc ®Ých lo¹i trõ phÇn lín c¸c tr−êng hîp d÷ liÖu nhËp vµo kh«ng
hîp lÖ, thùc hiÖn ngay t¹i Client vµ tr¶ l¹i ngay kÕt qu¶ cho ng−êi
sö dông, lµm gi¶m qu¸ tr×nh kiÓm tra trªn Server.
• Xö lý d÷ liÖu göi ®i
TÝnh to¸n ngay ra kÕt qu¶ t¹i Client, chØ cÇn cËp nhËt kÕt qu¶ lªn
trªn Server lµm gi¶m bít thêi gian tÝnh to¸n trªn Server. Thùc tÕ
cho thÊy ®©y lµ mét biÖn ph¸p rÊt h÷u hiÖu, c¸c kÕt qu¶ tÝnh to¸n ra
nÕu cã vÊn ®Ò nµo ®ã (tÝnh hîp lÖ, ...) sÏ ®−îc th«ng b¸o vµ söa ®æi
ngay t¹i Client vµ tÝnh to¸n tiÕp. Qu¸ tr×nh nµy ®¶m b¶o cho viÖc
cËp nhËt trªn Server mét lÇn duy nhÊt víi kÕt qu¶ ®óng.
• Thùc hiÖn lêi gäi thñ tôc l−u tr÷ SP
§èi víi qu¸ tr×nh xö lý, ch¼ng h¹n khi ph¶i cËp nhËt vµo nhiÒu
b¶ng, viÖc thùc hiÖn gäi tíi c¸c thñ tôc l−u tr÷ ®−îc tèi −u ho¸ b»ng
c¸ch thùc hiÖn mét lÇn duy nhÊt mµ vÉn ®¶m b¶o toµn bé c¸c thao
t¸c d÷ liÖu bªn trong nh»m môc ®Ýnh tr¸nh gäi hµm nhiÒu lÇn trong
mét quy tr×nh xö lý, lµm gi¶m tíi møc thÊp nhÊt c¸c th«ng tin l−u
th«ng trªn m¹ng.
• Xö lý d÷ liÖu göi vÒ

- 80 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

KÕt qu¶ cña viÖc thùc hiÖn lêi gäi tíi thñ tôc l−u, hoÆc lÖnh SQL
trªn Server sÏ tr¶ vÒ Client, kÕt qu¶ ®ã cã thÓ lµ mét tËp hîp d÷
liÖu, hoÆc cã thÓ lµ c¸c lçi trong khi thùc hiÖn trªn Server, tham sè
tr¶ vÒ sÏ cho biÕt lçi nµy.
V.3 C«ng viÖc thùc hiÖn t¹i Server
¾ Server lµ n¬i t¹o vµ l−u tr÷ d÷ liÖu cho toµn bé hÖ thèng ®Ó t¹o mét c¬
së d÷ liÖu, ta cã thÓ t¹o trùc tiÕp trªn Server hoÆc t¹o trªn c¸c c«ng cô hç
trî kh¸c nh− SQL Server, Microsoft Access, ...
¾ Server lµ n¬i xö lý chÝnh c¸c d÷ liÖu trªn hÖ thèng
C«ng viÖc xö lý ®−îc thùc hiÖn bëi c¸c thñ tôc l−u tr÷. Thñ tôc l−u tr÷ lµ
mét tËp c¸c lÖnh QSL th−êng dïng vµ cã môc ®Ých sö lý d÷ liÖu vµ x¾p
xÕp cã hÖ thèng t¹o thµnh mét thñ tôc l−u tr÷. Thñ tôc nµy sau khi biªn
dÞch ®−îc l−u th¼ng vµo c¬ së d÷ liÖu, do ®ã ®−îc gäi lµ c¸c thñ tôc. CÊu
tróc ®Ó t¹o thñ tôc l−u tr÷ trong SQL Server 7.0 nh− sau:
===================================================
/* ** Add an object to the dtproperties table */
create procedure dbo.dt_adduserobject as
set nocount on
/*
** Create the user object if it does not exist already
*/
begin transaction
insert dbo.dtproperties (property) VALUES 'DtgSchemaOBJECT')
update dbo.dtproperties set objectid=@@identity
where id=@@identity and roperty='DtgSchemaOBJECT'
commit
return @@identity
===================================================
¾ T¸c dông cña viÖc thùc hiÖn thñ tôc l−u tr÷
Thñ tôc l−u tr÷ lµ mét trong c¸c −u ®iÓm rÊt m¹nh cña hÖ qu¶n trÞ c¬ së
d÷ liÖu xö lý c¸c øng dông ph©n t¸n theo m« h×nh Client/Server nãi chung
vµ cña SQL Server nãi riªng. Lîi Ých cña thñ tôc l−u tr÷ ®em l¹i rÊt nhiÒu,
nh−ng ph¶i kÓ ®Õn:

- 81 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

• Lµm gi¶m bít c¸c luång th«ng tin trªn m¹ng. Thay v× viÖc mçi
khi thùc hiÖn mét lo¹t c¸c giao dÞch, b»ng c¸ch göi mét lo¹t c¸c
c©u lÖnh SQL tõ Client tíi Server, giê ®©y ta cã thÓ nhãm tÊt c¶
c¸c c©u lÖnh ®ã vµo chung mét thñ tôc vµ l−u t¹i Server vµ viÖc
thùc hiÖn b©y giê chØ ®¬n gi¶n ta göi mét lêi gäi tõ Client sang
Server.
• Mét lêi gäi cã thÓ thùc hiÖn mét tËp hîp c¸c c©u lÖnh SQL, ®iÒu
nµy rÊt quan trong cho viÖc ®¶m b¶o tÝnh an toµn vµ thèng nhÊt
d÷ liÖu cho hÖ thèng.
• Thùc hiÖn c¸c c©u lÖnh SQL mµ kh«ng cÇn dÞch l¹i, lµm t¨ng
tèc ®é xö lý d÷ liÖu.
• C©u lÖnh SQL l−u trªn Server ®−îc sö dông trªn nhiÒu tr¹m lµm
viÖc, lµm gi¶m bít thêi gian lËp tr×nh.
• Qu¶n lý tËp trung c¸c lÖnh xö lý d÷ liÖu trªn Server, t¹o thuËn
lîi cho ng−êi sö dông trong viÖc kiÓm so¸t c¸c thao t¸c d÷ liÖu,
tèi −u ho¸ c¸c lÖnh sö lý b»ng SQL.
V.4 VÊn ®Ò liªn l¹c gi÷a Client vµ Server
VÊn ®Ò liªn l¹c gi÷a Client víi Server ®−îc thùc hiÖn th«ng qua chuÈn
ODBC (Open Database Connectivities: hÖ thèng kÕt nèi c¬ së d÷ liÖu më)
th«ng qua viÖc thùc hiÖn thñ tôc l−u (hay gäi thùc hiÖn c¸c lÖnh SQL). Sö
dông chuÈn ODBC cã nhiÒu −u ®iÓm nh−:
• Sö dông ODBC rÊt tiÖn lîi ®èi víi ng−êi lËp tr×nh, hä hoµn toµn bÞ
trong xuèt víi c¸c xö lý hÖ thèng nh− viÖc göi c¸c c©u lÖnh SQL ®i,
nhËn kÕt qu¶ trë vÒ, th«ng b¸o lçi, ... ®Òu do ODBC ®¶m tr¸ch.
• ODBC hÕt søc mÒm dÎo, ®iÒu ®ã cã nghÜa ODBC hç trî cho ng−êi
sö dông mét kh¶ n¨ng to lín vÒ viÖc sö dông Database Server, vµ
viÖc chuyªn ®æi gi÷a c¸c Database Server lµ dÔ dµng.
• VÒ tèc ®é xö lý ODBC hiÖn t¹i kh«ng ph¶i lµ gi¶i ph¸p tèi −u cho
tèc ®é, tuy nhiªn h·ng Microsoft rÊt khuyÕn khÝch viÖc sö dông
ODBC vµ høa hÑn trong t−¬ng lai sÏ cã kÕ hoach tèi −u ho¸.
• ViÖc lËp tr×nh t¹i Client b»ng ng«n ng÷ lËp tr×nh ®Ó kÕt nèi lªn SQL
Server theo chuÈn ODBC hÕt søc dÔ dµng, lËp tr×nh viªn sÏ kh«ng
cã c¶m gi¸c kh¸c biÖt gi÷a lËp tr×nh b»ng ODBC vµ lËp tr×nh trùc
tiÕp víi c¬ së d÷ liÖu.

- 82 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

Tæng kÕt
I. §¸nh gi¸ kÕt qu¶ thùc hiÖn luËn v¨n
I.1 NhËn xÐt vÒ x©y dùng thiÕt kÕ c¬ së d÷ liÖu qu¶n lý d©n c−
¾ ¦u ®iÓm
ViÖc x©y dùng thiÕt kÕ c¬ s¬ d÷ liÖu cho qu¶n lý d©n c− ®· ®¸p øng ®−îc
yªu cÇu cña hÖ thèng qu¶n lý d©n c− cÇn thùc hiÖn:
• Cung cÊp th«ng tin ®Çy ®ñ, chÝnh x¸c vÒ mçi c«ng d©n.
• Cã kh¶ n¨ng qu¶n lý réng h¬n kh«ng chØ cÊp quËn mµ cã thÓ thùc
thi trªn c¶ n−íc.
• X©y dùng thiÕt kÕ c¬ së d÷ liÖu theo m« h×nh kiÕn tróc
Client/Server, ch¹y ë trªn m«i tr−êng Windows 95, Windows 98,
Windows NT, sö dông hÖ qu¶n trÞ c¬ së d÷ liÖu SQL Server nªn ®·
sö dông ®−îc nh÷ng ®iÓm m¹nh cña nã.
• Lµ mét ch−¬ng tr×nh ch¹y trªn Windows nªn nã cã giao diÖn theo
chuÈn cña Windows nªn dÔ sö dông.
• ViÖc thiÕt kÕ d÷ liÖu trªn SQL Server lµ mét hÖ qu¶n trÞ chuyªn
dông cho viÖc qu¶n lý nªn dÔ ®èi víi ng−êi dïng.
• Cã kh¶ n¨ng ph©n quyÒn vµ b¶o mËt ®èi víi ng−êi dïng.
• Tr¸nh ®−îc nh÷ng sai sãt vÒ hÖ thèng, còng nh− ®iÒu khiÓn th«ng
tin trªn m¹ng, nh»m h¹n chÕ tèi ®a thiÖt h¹i cã thÓ tr¸nh.
¾ Nh−îc ®iÓm
H¹n chÕ trong viÖc sö dông thñ tôc l−u tr÷ trªn SQL Server th«ng qua
ODBC.
• NÕu m« h×nh Database Server nh− ®· ¸p dông th«ng qua ODBC,
viÖc sö lý d÷ liÖu, x¸c ®Þnh vµ sö lý lçi sÏ phô thuéc hoµn toµn vµo
Server. Trong khi ®ã nhiÒu tr−êng hîp lçi tr¶ vÒ tõ Server bÞ ODBC
chÆn l¹i vµ lçi tr¶ vÒ Client lµ do ODBC göi tíi, do ®ã rÊt khã x¸c
®Þnh lçi trªn Server.
• H¹n chÕ ®¸ng kÓ trong viÖc sö dông thñ tôc l−u tr÷ trªn Server
th«ng qua ODBC giíi h¹n viÖc sö dông cursor trªn Server.

- 83 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT

I.2 Tù nhËn xÐt vÒ luËn v¨n


Theo ý kiÕn cña em th× luËn v¨n cßn cã ®iÓm ®−îc vµ ch−a ®−îc nh− sau:
¾ ¦u ®iÓm
• §· cè g¾ng tr×nh bµy mét c¸ch hÖ thèng.
• §· cè g¾ng ®−a ra tr×nh bµy mét c¸ch ®Çy ®ñ nhÊt trong tÇm hiÓu
biÕt cña b¶n th©n vÒ c¸c vÊn ®Ò.
• §· cè g¾ng tr×nh bµy s¸t víi thÇy h−íng dÉn.
¾ Nh−îc ®iÓm
• Tr×nh bµy con ch−a tèi −u.
• §«i chç cßn dµi dßng.
I.3 Thu ho¹ch cho b¶n th©n
¾ Lµm quen vµ sö dông t−¬ng ®èi thµnh th¹o mét hÖ qu¶n trÞ c¬ së d÷
liÖu chuyªn dông cho c¸c øng dông Client/Server lµ SQL Server, mét
trong nh÷ng hÖ c¬ s¬ d÷ liÖu m¹nh hiÖn nay.
¾ Trau råi ®−îc nh÷ng kinh nghiÖm quý gi¸ trong viÖc x©y dùng thiÕt kÕ
c¬ së d÷ liÖu trong m«i tr−êng Client/Server, sö lý c¸c øng dông ph©n t¸n.
¾ Nghiªn cøu vµ n¾m b¾t ®−îc mét sè nghiÖp vô vÒ qu¶n lý d©n c−.

II. KÕt luËn


¾ Trªn ®©y t«i ®· tr×nh bµy nh÷ng −u ®iÓm, nh−îc ®iÓm vµ thÕ m¹nh cña
SQL Server ®ång thêi tr×nh bµy mét øng dông thiÕt kÕ x©y dùng mét c¬
së d÷ liÖu d©n c− cÊp quËn trªn SQL Server.
¾ Qua qu¸ tr×nh lµm luËn v¨n ®· gióp cho t«i hiÓu biÕt thªm vÒ mét sè
vÊn ®Ò trong qu¶n lý d©n c− còng nh− n¾m b¾t, sö dông SQL Server mét
c¸ch t−¬ng ®èi thµnh th¹o.
¾ Cuèi cïng mét lÇn n÷a em xin tr©n thµnh c¶m ¬n thÇy NguyÔn V¨n
XuÊt, ng−êi ®· gióp em hoµn thµnh luËn v¨n tèt nghiÖp.

- 84 -

Вам также может понравиться