Đặ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).
84 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2334 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Xây dựng phần mềm quản lý dân cư trên SQL server, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 45 -
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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 46 -
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”.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 47 -
¾ 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.
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 -
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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 50 -
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¶
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 51 -
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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 52 -
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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 53 -
¾ 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).
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
- 55 -
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
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 56 -
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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 57 -
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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 58 -
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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 59 -
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ã.
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.
Client Server
Procesed
SQL Request
Processed
Result
Application Logic
Presentation Logic
Application Logic
DBMS
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 60 -
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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 61 -
• 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ô
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 62 -
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é
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 63 -
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
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 64 -
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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 65 -
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
6 T×nh tr¹ng viÖc lµm (th−êng
xuyªn, thÊt th−êng, thÊt nghiªp) Char 25
7
H×nh thøc viÖc lµm
(tù do, biªn chÕ, hîp ®ång)
Char 30
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, ...
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 66 -
Tªn hÖ thèng: ..........................
ThiÕt kÕ m· cho b¶ng Congdan Ngµy ThiÕt kÕ: 25/5/2000
Tªn m·:
M· sè c«ng d©n
Ph−¬ng ph¸p m·:
M· tuÇn tù
Sè cét: 23
Sè l−îng sö dông:
HiÖn nay kho¶ng:
250000-500000
T−¬ng lai kho¶ng:
600000-999999
Chu kú sö dông:
5-10 n¨m
§−îc sö dông trong:
X¸c ®Þnh th«ng tin vÒ d©n
c− trong quËn.
Thèng kª, b¸o c¸o, cËp
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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 67 -
• 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, ...
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 68 -
¾ 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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 69 -
¾ 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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 70 -
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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 71 -
¾ 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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 72 -
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¶.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 73 -
• 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, ...
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 74 -
• 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÷.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 75 -
• 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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 76 -
• 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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 77 -
• 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 ®ã.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 78 -
• 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Õ.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 79 -
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−
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 80 -
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Ò
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 81 -
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:
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 82 -
• 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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 83 -
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.
LuËn v¨n tèt nghiÖp Vò Hïng C−êng B2 - CNTT
- 84 -
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.
Các file đính kèm theo tài liệu này:
- Xây dựng phần mềm quản lý dân cư trên SQL server.pdf