Tìm hiểu SQL Server

QL (Structured Query Language - ngôn ngữ truy vấn mang tính cấu trúc) là một loại ngôn ngữ máy tính phổ biến để tạo, sửa, và lấy dữ liệu từ một hệ quản trị cơ sở dữ liệu quan hệ. Ngôn ngữ này phát triển vượt xa so với mục đích ban đầu là để phục vụ các hệ quản trị cơ sở dữ liệu đối tượng-quan hệ. Nó là một tiêu chuẩn ANSI/ISO. . . . . . . . .

pdf84 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 2066 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Tìm hiểu 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:

  • pdfTìm hiểu SQL Server.pdf
Tài liệu liên quan