Академический Документы
Профессиональный Документы
Культура Документы
§Æ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 tiÖn dông trong viÖc ph©n t¸n tra cøu d÷ liÖu
nhanh.
-1-
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
-2-
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
-3-
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
-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
-6-
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
-7-
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
¾ 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.
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.
DÞch vô MSSQLServer.
DÞch vô SQLServerAgent.
DÞch vô MSDTC (Windows NT).
- 10 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 11 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 12 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 13 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
¾ 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
¾ 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
- 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
- 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
- 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.
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
- 24 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 25 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 26 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 27 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 28 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 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
¾ 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
- 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
- 34 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
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
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.
- 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
- 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.
- 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
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.
- 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.
- 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
- 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
- 49 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 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.
- 51 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 52 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 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
- 55 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 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
- 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
- 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.
- 60 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 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.
- 62 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 63 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 64 -
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
¾ 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
- 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
¾ 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
- 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
• 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
• 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
- 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
- 84 -