Tìm hiểu sql server

Tài liệu Tìm hiểu sql server: Phần 2 : TÌM HIỂU SQL SERVER Chương 1 : TỔNG QUAN VỀ SQL SERVER 2000 TỔNG QUAN: MS SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS _ Relational Database Management System) có tính mở, đáng tin cậy, là hệ quản trị cơ sở dữ liệu theo mô hình Client/Server và có thể dễ dàng phát triển theo mô hình dữ liệu phân tán. RDBMS là một trong những mô hình cơ sở dữ liệu quan hệ thông dụng hiện nay. MS SQL Server cung cấp đầu đủ các công cụ để: Dễ dàng xây dựng một cơ sở dữ liệu quan hệ lớn, mỗi cơ sở dữ liệu này có thể chứa 2 tỷ quan hệ và mỗi quan hệ có thể chứa đến 1024 thuộc tính. Giải quyết tình trạng va chạm giữa các user khi cùng truy xuất một dữ liệu tại cùng một thời điểm. Bảo đảm các ràng buộc toàn vẹn trên cơ sở dữ liệu. Bảo vệ an toàn cơ sở dữ liệu (Quản lý những mức độ để truy cập vào cơ sở dữ liệu). Truy vấn dữ liệu nhanh. MÔ HÌNH CLIEN...

doc18 trang | Chia sẻ: hunglv | Lượt xem: 1209 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Tìm hiểu sql server, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Phaàn 2 : TÌM HIEÅU SQL SERVER Chöông 1 : TOÅNG QUAN VEÀ SQL SERVER 2000 TOÅNG QUAN: MS SQL Server laø moät heä quaûn trò cô sôû döõ lieäu quan heä (RDBMS _ Relational Database Management System) coù tính môû, ñaùng tin caäy, laø heä quaûn trò cô sôû döõ lieäu theo moâ hình Client/Server vaø coù theå deã daøng phaùt trieån theo moâ hình döõ lieäu phaân taùn. RDBMS laø moät trong nhöõng moâ hình cô sôû döõ lieäu quan heä thoâng duïng hieän nay. MS SQL Server cung caáp ñaàu ñuû caùc coâng cuï ñeå: Deã daøng xaây döïng moät cô sôû döõ lieäu quan heä lôùn, moãi cô sôû döõ lieäu naøy coù theå chöùa 2 tyû quan heä vaø moãi quan heä coù theå chöùa ñeán 1024 thuoäc tính. Giaûi quyeát tình traïng va chaïm giöõa caùc user khi cuøng truy xuaát moät döõ lieäu taïi cuøng moät thôøi ñieåm. Baûo ñaûm caùc raøng buoäc toaøn veïn treân cô sôû döõ lieäu. Baûo veä an toaøn cô sôû döõ lieäu (Quaûn lyù nhöõng möùc ñoä ñeå truy caäp vaøo cô sôû döõ lieäu). Truy vaán döõ lieäu nhanh. MOÂ HÌNH CLIENT / SERVER: Caùc khaùi nieäm : Khaùi nieäm veà phaàn cöùng : Client/ Server laø kieán truùc goàm hai thaønh phaàn maùy Client vaø maùy Server, hai thaønh phaàn naøy lieân laïc vôùi nhau thoâng qua heä thoáng maïng. Khaùi nieäm veà xöû lyù : Khi xaây döïng vaø khai thaùc öùng duïng treân moâi tröôøng maïng, moät trong nhöõng ñieàu caàn quan taâm tröôùc tieân laø ñaùnh giaù caùc tính naêng cuûa heä thoáng maïng. Vieäc xaây döïng vaø khaùi thaùc öùng duïng treân maïng seõ deã daøng hôn neáu coù heä thoáng maïng oån ñòn, thi haønh vaø ñaùng tin caäy. Tuy nhieân , ñoái vôùi baát kyø heä thoáng maïng naøo, khi xaây döïng caùc öùng duïng treân noù ta cuõng caàn phaûi tính toaùn sao cho vieäc truyeàn taûi döõ lieäu laø toát nhaát (giaûm löôïng löu thoâng döõ lieäu treân ñöôøng truyeàn maø vaãn ñaùp öùng yeâu caàu veà döõ lieäu), vaø an toaøn nhaát. Moâ hình tính toaùn client/ server nhaèm giaûi quyeát vaán ñeà naøy. Trong moâ hình tính toaùn client/server, caùc vieäc xöû lyù döõ lieäu, xöû lyù logic vaø giao dieän ngöôøi duøng ñöôïc phaân chia ra vaø ñöôïc thöïc hieän taïi nhieàu ñieåm khaùc nhau trong maïng. Maùy client göûi tôùi maùy chuû caùc yeâu caàu truy vaán döõ lieäu hoaëc caäp nhaät döõ lieäu (theâm, xoaù, söûa caùc maãu tin). Maùy server khi nhaän ñöôïc yeâu caàu truy vaán, sau khi kieåm tra quyeàn truy caäp cuûa ngöôøi yeâu caàu, seõ tieán haønh choïn loïc, tính toaùn, toång hôïp thoâng tin trong cô sôû döõ lieäu ñeå göûi traû keát quaû truy vaán theo yeâu caàu cuûa maùy client. Khi nhaän ñöôïc yeâu caàu caäp nhaät döõ lieäu (theâm, xoaù, söûa), maùy chuû ngoaøi vieäc kieåm tra quyeàn caäp nhaät cuûa ngöôøi yeâu caàu coøn phaûi baûo ñaûm vieäc caäp nhaät khoâng phaù vôõ tính toaøn veïn cuûa döõ lieäu. Database server coøn coù nhieäm vuï lieân laïc vôùi cô sôû döõ lieäu khaùc ñeå laáy ñöôïc caùc thoâng tin caàn thieát, ñaûm baûo cho ngöôøi duøng ñöôïc nhöõng thoâng tin caàn moät caùch thoâng suoát cho duø döõ lieäu thöïc söï naèm phaân taùn ôû nhieàu maùy chuû khaùc nhau. Vieäc phaân chia nhieäm vuï giöõa client vaø server laø nhaân toá quyeát ñònh söï thaønh baïi cuûa vieäc öùng duïng moâ hình tính toaùn client/ server. Phaân loaïi öùng duïng client/ server : Thoâng thöôøng moät öùng duïng ñöôïc chia thaønh 6 öùng duïng nhö sau: Giao dieän vôùi ngöôøi duøng (User Interface) laø nhöõng theå hieän treân maøn hình maø User thaáy coù theå töông taùc ñöôïc. Logic trình baøy (presentation logic) laø nhöõng gì xaûy ra khi User töông taùc vaøo nhöõng theå hieän treân maøn hình. Logic öùng duïng (application logic) laø nhöõng tröông trình hay ñoaïn tröông trình thi haønh nhöõng chöùc naêng naøo ñoù. Truy vaán döõ lieäu vaø keát quaû Toaøn veïn döõ lieäu(data integrity) nhu: chöùng nhaän hôïp leä, an toaøn vaø toaøn dieän Quaûn lyù döõ lieäu vaät lyù (physical) theâm, xoaù, söûa, phuïc hoài. Ñoái vôùi öùng duïng client/server thì tuyø thuoäc vaøo yeâu caàu cuûa noù maø moãi nhieäm vuï treân ñöôïc ñaët vaøo thaønh phaàn client hay server ñeå cho ôû ñoù noù ñöôïc thöïc hieän hieäu quaû nhaát. Döïa vaøo caùch ñaët nhieäm vuï treân maø ngöôøi ta ñaõ phaân öùng duïng client/server thaønh 3 loaïi: Host- based procesing. Client – based procesing vaø cooperative procesing. Server : Khaùi nieäm veà phaàn cöùng Laø moät maùy coù caáu hình tuyø thuoäc vaøo vieäc ta söû duïng moäi tröôøng phaàn meàn naøo ñeå xaây döïng caøc öùng duïng vaø yeâu caàu veà caáu hình cuûa heä ñieàu haønh muoán duøng treân server. Khaùi nieäm veà xöû lyù Laø tính cung caáp dòch vuï cho maùy khaùc treân maïng. Caùc dòng vuï nhö chia seû file, caàu noái maïng, söû lyù öùng duïng,… Ñoái vôùi moâ hình client/ server. server laøm nhieäm vuï quaûn lyù vieäc truy caäp CSDL, nhaän caùc yeâu caàu töø client ñeå xöû lyù vaø gôûi keát quaû veà cho client yeâu caàu. Phaân loaïi server Döïa vaøo chöùc naêng cuûa server ngöôøi ta chia server ra laøm 6 loaïi: File server, data server, computer server, application server, vaø communication server. File server Quaûn lyù öùng duïng cuûa moät nhoùm, vaø quaûn lyù nhöõng file döõ lieäu. Do ñoù nhöõng file döõ lieäu naøy coù theå ñöôïc chia seû trong nhoùm. Khi client ñoøi hoûi döõ lòeu trong moät file. Fioler server seõ chuyeån toaøn boä nhöõng file cuøng vôùi index ñeán client, do vaäy seõ gay löu thoâng lôùn treân maïng vaø chuyeån nhöõng döõ lieäu khoâng caàn thieát. Vieäc khoaù file theå hieän khoùa moät phaàn hay khoùa toaøn boä file, khoâng phaân chia khoùa ñeå ñoïc vaø khoaù ñeå ghi. Application server Moâ hình naøy laø söï thay theá host- terminal. Application server chòu traùch nhieäm quaûn lyù döõ lieäu vaø thi haønh caùc öùng duïng. Data server Chæ quaûn lyù nhöõng döõ lieäu vaø nhöõng chöùx naêng ñeå ñaûm baûo cho söï toaøn veïn döõ lieäu. Thöôøng hoaït ñoäng chung vôùi computer server. Data server do löu tröõ vaø cung caáp döõ lieäu. Computer server Quaûn lyù nhöõng chöùc naêng : Khi client ñoøi hoûi döõ lieäu, noù seõ yeâu caàu data server theo caùch laáy döõ lieäu ít nhaát maø vaãn thoaû maõn yeâu caàu cuûa client, sau ñoù seõ söû treân nhöõng döõ lieäu naøy vaø gôûi keát quaû veà cho client Database server Söï keát hôïp cuûa computer server vôùi data server. Khi client gôûi yeâu caàu ñeán server, server coù theå chaáp nhaän hoaêc khoâng, neáu chaáp nhaän server seõ truy caäp döõ lieäu caàn thieát ñang naèm treân server cuï boä (local), hoaëc ôû treân caùc server khaùc ñeå söû lyù vaø traû keát quaû veà cho client. Caùch söû lyù naøy giuùp toái öu hoaù ñöôøng truyeàn: Client chòu traùch nhieäm trình baøy vaø laø ñaàu vaøo caùc yeâu caàu gôûi cho server Server do quaûn trò CSDL, quaûn lyù söï hôïp taùc vôùi caùc server khaùc Multipprocessing Coù khaû naêng duøng ñöôïc nhieàu processor ñoàng thôøi ( theo caùch phaân chia töï ñoäng nhieäm vuï hoaëc daùn saün nhieän vu cho prosesor) Multihread Thread laø ñôn vò nhoû nhaát coù theå laäp thôøi khoùa bieåu ñeå deã thöïc hieän. Moãi thread coù moät stack, moät intruction pointer,moät thöù töï yeâu tieân, traïng thaùi CPU vaø moät entry trong danh saùch phaân boá cuûa heä thoáng.Moät thread coù theå thi haønh hoaëc ñang bò treo. Thread laø ñôn vò con cuûa process ñoäc laäp vôùi nhau, coù theå thöïc söï hoaït ñoäng ñoàng haønh vôùi nhau treân nhöõnh CPU khaùc nhau. Disk Array Nhieàu ñóa vaät lyù coù theå ñöôïc quaûn lí nhö moät ñóa logic vaø xuyeân suoát ñoái vôùi ngöôøi duøng. Mirror disk Coù hai ñóa troáng chöùa cuøng döõ lieäu, khi bò hö moät ñóa seõ phuïc hoài töø ñóa coøn laïi Error correction code memory Duøng bieåu dieãn chuaån ñeå phaùt hieän vaø söûa chöõa khi coù sai xoùt trong luùc chuyeån döõ lieäu treân server Phaàn meàm server Döõa vaøo nhieäm vuï ngöôøi ta phaân thaønh 8 loaïi phaàn meàm hoaït ñoäng tren server. Nhöng phaûi coù cô cheá keát hôïp vôùi nhau thaønh heä thoáng nhaát. Taùm loaïi bao goàm : network manegement enviroment, netword computing enviroment and extension, netword operatingsystem. Server operating system, loadable module, database management, database gateway, application. Netword computing enviromennt Moäi tröôøng tính toaùn maïng cho pheùp nhöõng öùng duïng phaân taùn ôû nhieàu moäi tröôøng phaàn cöùng vaø phaàn meàm Caùc chuaån OSF hoã trôï cho caáu truùc naøy laø : - Moâi tröôøng phaân taùn DCE - Tính toaùn höôùng môû roäng maïng ONC Netword operating system Heä ñieàu haønh maïng quaûn lyù caùc xöû lyù lieân quan ñeán xuaát / nhaäp cuûa server Loadable module Laø nhöõng module phaàn meàm ñöôïc load treân server nhaèm laøm taêng theâm chöùc naêng cho heä ñieàu haønh Server operating system Heä ñieàu haønh server quaûn lyù caùc taøi nguyeân cuûa server. Noù töông taùc vôùi heä ñieàu haønh maïng vaø phaàn meàm xöû lyù döõ lieäu ñeå nhaän vaø traû lôùi caùc yeâu caàu töø ngöôøi duøng. Database gateway Hoaït ñoäng nhö boä ñoåi döõ lieäu, nhöõng caâu leänh SQL, vaø caùc öùng duïng töø moät lieåu CSDL thaønh lieåu khaùc. Client : Khaùi nieäm veà phaàn cöùng Laø moät maùy destop thöïc thi phaàn meàm client. Destop laø thuaät ngöõ duøng ñeå chæ toaøn boä maøn hình doa dieän ngöôøi- maùy bao goàm caùc cöûa soå, bieåu töôïng vaø caùc hoäp thoaïi … treân client coù theå chaïy caùc phaàn meàm giap tieáp, heä ñieàu haønh ,phaàn meàm truyeàn tthoâng Khaùi nieäm veà xöû lyù Trong moâi tröôøng client /server coâng vieäc cuûa client thöïc hieän chöùc naêng trìng baøy, xöû lyù caùc töông taùc giöõa ngöôøi söû duïng vaø öùng duïng. Maùy client göûi tôùi maùy chuû caùc yeâu caàu truy vaán döõ lieäu hoaêc caäp nhaät döõ lieäu(theâm,xoaù ,söûa caùc maãu tin) ñoàng thôøi nhaän keát quaû traû veà töø maùy client Nhö theá naøo laø client toát Moät client toát phaûi ñaùp öùng caùc yeâu caàu sau: Giao dieän ñaùp öùng ñöôïc caùc taùc vuï caàn thieát vaø thaân thieän vôùi ngöôøi söû duïng Khoâng trình baøy nhöõng thoâng tin khoâng caàn thieát ñoái vôùi coâng vieäc cuûa traïm laøm vieäc Phaàn cöùng client Laø moät maùy tính coù caáu hình tuyø thuoäc vaøo vieäc ta söû duïng moäi tröôøng phaàn meàm naøo ñeå xaây döïng caùc öùng duïng vaø yeâu caàu veà caáu hình cuûa heä ñieàu haønh muoán duøng treân client Phaàn meàm client Heä ñieàu haønh : Microsoft windows DOS, OS/2, UNIX client Phaàn meàm : Moãi maùy client coù theå chaïy boán loaïi phaàn meàm: Moâi tröôøng giao tieáp, logic öùng duïng,heä ñieàu haønh client, vaø heä ñieàu haønh maïng, tuyø theo yeâu caàu cuûa öùng duïng maø ta löïa choïn phaàn meàm thích hôïp. Moâi tröôøng giao tieáp Giuùp cho ngöôøi duøng khoâng caàn bieát döõ lieäu ôû ñaâu maø vaãn truy caäp ñöôïc Ñaùp öùng vieäc gôûi nhöõng yeâu caàu vaø nhaän keáy quaû töø server Ñòng daïng keát quaû ñuùng yeâu caàu Giuùp truy vaán nhanh ñuùng döõ kieäu Lôïi ích cuûa moâ hình client- server Tieát kieäm: Chi phí veà phaàn cöùng : maùy client vaø server coù theå laø nhöõng maùy tính khoâng ñaét tieàn laém ( khoâng caàn söû duïng nhöõng maùy ñieän toaùn ñaét tieàn). Chi phí phaàn meàm: nhöõng öùng duïng treân caáu truùc client server coù theå phaùt trieån vôùi thôøi gian ít hôn so vôùi vieäc phaùt trieån öùng duïng treân moâi tröôøng mainframe vaø phaàn meàm treân maùy vi tính thì reû hôn treân mainframe. Taêng naêng xuaát saûn phaåm Thoâng qua giao dieän ngöôøi söû duïng coù theå deõ daøng truy caäp döï lieäu maø khoâng caàn phaûi bieát caùch thöùc löu tröõ cuûa nhöõng döõ lieäu maø mình truy caäp Hieän nay coù nhieàu coâng cuï maïnh giuùp deõ daøng thieáy keá caùi ñaët moät öùng duïng treân caáu truùc client / server Uyeån chuyeån vaø roäng raõi Baèng caùch phaân chia nhöõng öùng duïng ra thaønh nhöõng nhieäm vuï neân coù theå deõ daøng hoaø hôïp vôùi nhöõng kó thuaät môùi ñoàng thôùi vaãn baûo ñaûm töông thích vôùi nhöõng kó thuaät cuõ maø raát ít phaûi gaëp trôû ngaïi. Vieäc xaây döïng theo module khieán cho coäng vieäc söûa chöõa boå sung ñöôïc deãn daøng. d. Taän duïng taøi nguyeân - Cho pheùp lieân keát vôùi nhöõng öùng duïng phaàn cöùng hieän coù moät caùch hieäu quaû maø khoâng caàn phaûi thay môùi. Ñieàu khieån taäp trung Heä môû roäng Caáu truùc client sever keát hôïp vôùi kó thuaät Rightsizing laøm taêng tính uyeån chuyeån vaø môû roäng Kyõ thuaät rightsizing bao goàm : Downsizing chuyeån töø moâi tröôøng lôùn sang moâi tröôøng nhoû hôn Upsizing chuyeån töø moâi tröôøng nhoû sang moâi tröôøng lôùn Smarsizing tính toaùn phaân chia vaø ñaët caùc nhieäm vuï laïi cho thích hôïp vôùi moâi tröôøng môùi Caùc chuù yù khi xaây döïng client/ sever Khi thöïc hieän tính toaùn client sever caàn quan taâm ñeán caùc vaán ñeà sau: Khaû naêng hoaït ñoäng cuûa heä thoáng maïng toác ñoä truyeàn ñoä tin caäy ñöôøng truyeàn khaû naêng hoaït ñoäng cuûa maùy server vaø khaû naên hoaït ñoäng cuûa maùy client Giaûm thieåu döõ lieäu truyeàn: phaân phoái hôïp lyù caùc söû lyù Tính toaùn sao cho hôïp lyù thôøi gian giöõ keát noái cuûa maùy client/ server Taän duïng sao cheùp ñoái vôùi heä thoáng mang dieän roäng Xaây döïng hôïp lyù caùc chæ muïc treân cô döõ lieäu Taän duïng caùc thuû tuïc coù saün Toái öu heä thoáng hoaù phuïc vuï server:dung löôïng boä nhôù, xem caùc tröôøng hôïp phaân trang sao cho hôïp lyù Chaïy thöû treân öùng duïng maùy server, chaïy thöû treân maùy client sau ñoù so saùnh vaø ñieàu chænh heä thoáng maïng neáu caàn thieát. Chöông II : LAÄP TRÌNH TREÂN SQL SERVER TOÅNG QUAN: Khi xaây döïng öùng duïng chaïy treân maïng maùy tính theo moâ hình tính toaùn Client – Server coù theå seõ coù caùc xöû lyù tính toaùn döõ lieäu maø ta caàn chuùng thöïc hieän taïi maùy Server. Ñieàu naøy coù nghóa laø ta caàn phaûi xaây döïng caùc xöû lyù tính toaùn vaø caùc xöû lyù tính toaùn naøy ñöôïc löu treân Server. SQL Server cung caáp coâng cuï ñuû maïnh ñeå ta coù theå xaây döïng caùc xöû lyù veà döõ lieäu ñaùp öùng yeâu caàu nhö treân. Vôùi nhöõng ñoái töôïng döõ lieäu View, Trigger vaø Stored Procedure, ta coù theå duøng SQL ñeå taïo nhöõng chöông trình nhoû. Trong khi ñoù Trigger vaø Stored Procedure ñaõ raát maïnh, ta vaãn coù theå laøm cho chuùng maïnh hôn baèng caùch keát hôïp SQL chuaån vôùi nhöõng tính naêng laäp trình cao caáp cuûa Transact-SQL. SQL Server cung caáp Transact_SQL laø moät phieân baûn cuûa SQL, noù cuõng laø moät ngoân ngöõ laäp trình vaø truy vaán cô sôû döõ lieäu. Vôùi Transact_SQL ta coù theå truy vaán, caäp nhaät döõ lieäu vaø quaûn trò caùc heä thoáng cô sôû döõ lieäu quan heä. BIEÁN TRONG TRANSACT-SQL: Bieán cuïc boä (local variable) trongTtransact-SQL: Moät bieán cuïc boä trong Transact-SQL laø moät ñoái töôïng coù theå löu giöõ moät giaù trò döõ lieäu ñôn coù moät kieåu xaùc ñònh. Caùc bieán trong batches vaø scripts ñöôïc söû duïng tieâu bieåu nhö sau: Söû duïng nhö laø moät boä ñeám duøng ñeå ñeám soá laàn laëp ñöôïc thöïc hieän hoaëc duøng ñeå ñieàu khieån voøng laëp. Söû duïng ñeå löu giöõ giaù trò döõ lieäu seõ ñöôïc kieåm tra bôûi moät leänh ñieàu khieån doøng (ontrol-of-flow). Söû duïng ñeå ghi nhaän giaù trò traû veà töø moät Stored Procedure (khaùi nieäm Stored Procedure seõ ñöôïc ñeà caäp ôû phaàn VI). Bieán toaøn cuïc (local variable): Caùc bieán toaøn cuïc ñöôïc söû duïng trong tình huoáng maø ta caàn gôûi döõ lieäu hoaëc ñoái töôïng coù söï lieân quan giöõa moät vaøi Microsoftâ ActiveXâ scripts khaùc nhau trong moät goùi ñôn. SQL Server cung caáp saün moät soá bieán toaøn cuïc raát tieän ích cho vieäc laäp trình vaø quaûn trò heä thoáng. Ñeå xem caùc giaù trò hieän taïi cuûa caùc bieán toaøn cuïc naøy, ta coù theå thöïc thi (exec) thuû tuïc ñöôïc xaây döïng saün coù teân sp_monitor. ÑÒNH DANH: Teân cuûa moät ñoái töôïng database ñöôïc hieåu laø ñònh danh. Taát caû caùc ñoái töôïng trong Microsoftâ SQL Serverä coù theå coù moät ñònh danh. Taát caû caùc Server, database vaø caùc ñoái töôïng trong database nhö table, views, columns, indexes, triggers, procedures constraints, rules, vaø v.v… ñeàu coù caùc ñònh danh. Haàu heát moïi ñoái töôïng ñeàu yeâu caàu coù moät ñònh danh. Moät ñònh danh cuûa moät ñoái töôïng ñöôïc taïo khi ñoái töôïng ñöôïc ñònh nghóa. Sau ñoù ta söû duïng ñònh danh ñeå tham chieáu ñeán ñoái töôïng. Coù 2 loïai ñònh danh: Caùc ñònh danh chuaån (regular identifiers) Tuaân theo caùc quy taéc hình thöùc cuûa caùc ñònh danh. Caùc ñònh danh chuaån khoâng bò giôùi haïn khi chuùng ñöôïc söû duïng trong caùc caâu leänh Transact-SQL. Moät ñònh danh coù theå chöùa töø 1® 128 kyù töï. Ñoái vôùi table taïm, ñònh danh khoâng vöôït quaù 116 kyù töï. Caùc ñònh danh phaân ñònh (delimited identifiers) Moät ñònh danh tuaân theo taát caû caùc quy taéc cho hình thöùc ñònh danh coù theå söû duïng hoaëc khoâng caùc daáu phaân ñònh. Moät ñònh danh maø noù khoâng tuaân theo caùc quy taéc veà hình thöùc cuûa caùc ñònh danh chuaån, noù phaûi ñöôïc phaân ñònh. KIEÅU DÖÕ LIEÄU: Kieåu döõ lieäu ñöôïc duøng ñeå xaùc ñònh kieåu thoâng tin (soá, kyù töï, …) vaø caàn bao nhieâu khoâng gian ñeå chöùa thoâng tin trong moät coät. Ta phaûi choïn kieåu döõ lieäu caùch caån thaän, vì chuùng khoâng deã daøng thay ñoåi khi baûng ñöôïc taïo xong vaø khi ñaõ nhaäp lieäu. Moät soá kieåu döõ lieäu coù chieàu daøi thay ñoåi, trong khi soá khaùc coù chieàu daøi coá ñònh. Caùc kieåu döõ lieäu cuûa SQL Server coù theå ñöôïc phaân thaønh caùc nhoùm sau : string (chuoãi) chuoãi Unicode binary (nhò phaân) integer (soá nguyeân) approximate numeric (soá gaàn ñuùng) exact numeric (soá chính xaùc) special date and time (ngaøy vaø giôø ) money (tieàn teä) auto-incrementing datatypes (kieåu döõ lieäu töï taêng) synonym (töông ñöông) user-defined (kieåu ngöôøi söû duïng ñònh nghóa) computed column (coät tính) · Döõ lieäu Unicode söû duïng boä kyù töï Unicode UCS-2 laø boä kyù töï nhieàu byte. Khi baïn söû duïng caùc kyù töï ANSI bình thöôøng, moãi kyù töï ñöôïc löu trong moät byte. Chính vì ñieàu naøy maø ñoâi khi ANSI bò coi laø “heïp hoøi”. Unicode ñöôïc goïi laø boä kyù töï môû roäng vôùi nhieàu byte cho moät kyù töï. Boä kyù töï Unicode UCS-2 söû duïng 2 byte ñeå bieåu thò cho moät kyù töï. Ñieàu naøy ñaëc bieät höõu ích khi baïn ñang laøm vieäc vôùi caùc cô sôû döõ lieäu coù caùc ngoân ngöõ khaùc nhau. Ví duï, boä chöõ caùi tieáng Anh vaø Taây Ban Nha coù ít kyù töï neân boä kyù töï moät byte coù theå deã daøng bieåu thò cho taát caû caùc chöõ caùi. Tuy nhieân, vôùi moät ngoân ngöõ nhö tieáng Nhaät chaúng haïn, ngay caû tieáng Nhaät chuaån (Kana) ñaõ coù hôn 1000 kyù töï. Boä kyù töï moät byte (8 bit) chæ coù theå bieåu dieãn 256 kyù töï, trong khi boä kyù töï Unicode nhieàu byte coù theå bieåu dieãn ñeán 65536 kyù töï. Baïn coù theå söû duïng caùc kieåu döõ lieäu nchar, nvarchar vaø text ñeå bieåu thò cho döõ lieäu Unicode. Vôùi nchar vaø nvarchar coù giôùi haïn toái ña laø 8000 byte hay 4000 kyù töï. Ví duï, nchar(4000) laø hôïp leä, nhöng nchar (6000) ñaïi dieän cho 12000 kyù töï vaø seõ khoâng vöøa vôùi moät trang döõ lieäu. Nchar (6000) cuûa ta hoaëc bò phaân ra thaønh 2 kieåu döõ lieäu nachar rieâng bieät hoaëc laø moät kieåu döõ lieäu ntext. Kieåu döõ lieäu ntext hoã trôï tôùi 2.14GB döõ lieäu. Caùc kieåu döõ lieäu Unicode laø moät tính naêng môùi cöïc maïnh cuûa SQL Server 7.0 vaø 2000. neáu chuùng ta coù keá hoaïch quoác teá hoùa hay söû duïng SQL Server ôû nhöõng nöôùc khoâng söû duïng tieáng Anh, löu tröõ döõ lieäu baèng caùc kieåu döõ lieäu Unicode laø moät giaûi phaùp toát nhaát. SCRIPT VAØ BATCH: Script : Script ñôn giaûn laø taäp hôïp cuûa moät hay nhieàu batch. Thoâng thöôøng, caùc script ñöôïc thi haønh nhö moät phaàn cuûa ñôn vò coâng vieäc naøo ñoù, nhö naïp döõ lieäu hay baûo trì cô sôû döõ lieäu. Batch : Batch laø moät taäp hôïp caùc leänh Transact-SQL ñöôïc dòch cuøng vôùi nhau bôûi SQL Server. Chuùng ñöôïc gôûi cuøng moät luùc vaø keát thuùc baèng töø khoùa GO. Phaùt bieåu GO phaûi khai baùo treân moät doøng sau khi keát thuùc moät boù. Taát caû caùc boù phaûi caùch nhau bôûi GO ñeàu ñöôïc xem nhö moät taäp leänh vaø coù theå gôûi ñeán Server ñeå thöïc thi. Caùc batch tuaân theo nhieàu quy taéc khaùc nhau. Taát caû caùc leänh SQL ñöôïc bieân dòch cuøng luùc. Neáu coù moät loãi cuù phaùp baát kyø nôi naøo trong batch, toaøn boä batch bò huûy. Neáu söûa ñoåi moät taäp leänh SQL tröôùc ñaây vaø gaây ra moät loãi cuù phaùp, ta seõ nhaän ñöôïc moät thoâng baùo loãi töø SQL Server, vaø khoâng coù leänh naøo chaïy. Boù coù raát nhieàu muïc ñích, nhöng thoâng thöôøng nhaát vaãn laø vaán ñeà taùch bieät nhöõng phaùt bieåu SQL ra thaønh nhieàu nhoùm khaùc nhau, ñeå SQL Server coù theå thöïc hieän caùc phaùt bieåu treân töøng ñoaïn ñoäc laäp vôùi nhau. Coù nhieàu phaùt bieåu caàn phaûi phaân tích ra thaønh boù trong khi thöïc hieän moät taäp hôïp phaùt bieåu SQL. STORE PROCEDURE: Khaùi nieäm: Trigger laø moät loaïi stored procedure ñöôïc ñònh nghóa ñaëc bieät ñeå thöïc thi moät caùch töï ñoäng khi coù moät caâu leänh UPDATE, INSERT, hoaëc DELETE taùc ñoäng vaøo table. Trigger laø moät coâng cuï maïnh, khi döõ lieäu bò söûa ñoåi noù seõ töï ñoäng thöïc hieän vieäc eùp buoäc caùc giao dòch söûa ñoåi naøy theo caùc quy taéc ñaõ ñònh (caùc raøng buoäc döõ lieäu ) nhaèm muïc ñích baûo ñaûm tính toaøn veïn cuûa döõ lieäu. Caùc table coù theå coù nhieàu trigger. Caâu leänh CREATE TRIGGER coù theå ñòng nghóa vôùi caùc meänh ñeà FOR UPDATE, FOR INSERT, hoaëc FOR DELETE. Caùc caâu leänh chöùa beân trong caùc trigger khoâng coù gì khaùc vôùi stored procedure. Caùc trigger thöïc thi sau khi caùc caâu leänh beân trong chuùng hoaøn thaønh. Neáu toàn taïi caâu leänh sai vôùi moät loãi, ví duï nhö laø moät loãi vi phaïm raøng buoäc hoaëc loãi cuù phaùp, trigger seõ khoâng ñöôïc thöïc thi. Taïo Trigger kieåm tra Insert: Trigger loaïi naøy duøng ñeå töï ñoäng kieåm tra vi phaïm vaø baét buoäc thao taùc theâm maãu tin vaøo table phaûi tuaân theo quy taéc ñònh tröôùc döïa treân tính duy nhaát cuûa khoùa chính, vaø caùc moái quan heä raøng buoäc giöõa caùc table. Ví duï tröôøng hôïp theâm moät maãu tin vaøo table “con” do ñoù caàn phaûi kieåm xem giaù trò cuûa thuoäc tính khoaù chính cuûa table “cha”. Neáu chöa toàn taïi- baùo loãi. Taïo Trigger kieåm tra Delete: Trigger loaïi naøy duøng ñeå töï ñoäng kieåm tra vi phaïm vaø baét buoäc thao taùc xoùa maãu tin treân table phaûi tuaân theo quy taéc ñònh tröôùc döïa treân moái quan heä raøng buoäc raøng buoäc giöõa caùc table. Ví duï cho tröôøng hôïp xoùa maãu tin treân table naøy toàn taïi moái quan heä “cha-con” vôùi caùc table khaùc vaø trong moái quan heä naøy noù coù vai troø laø “cha”. Nhö vaäy veà maët baûo toaøn toaøn veïn döõ lieäu khi xoùa maãu tin treân table “cha” caàn phaûi chaéc chaén raèng giaù trò thuoäc tính khoùa chính (primary key) beân table “cha” coù toàn taïi (ñaõ ñöôïc söû duïng ) treân baát cöù maãu tin naøo taïi coät khoùa ngoaïi cuûa table “con” hay khoâng. Neáu coù, coù nghóa laø thao taùc naøy vi phaïm raøng buoäc döõ lieäu. Taïo Trigger kieåm tra Update: Tröôùc tieân ta caàn hieåu baûn chaát UPDATE thaät ra bao goàm hai haønh ñoäng: DELETE vaø INSERT. Nhö vaäy kieåm tra moät thao taùc UPDATE laø kieåm lieâm tuïc hai haønh ñoäng xoaù maãu tin ñang toàn taïi vaø theâm maãu tin môùi. TRIGGER: Chöông III : SQL SERVER BAÛO MAÄT KHAÙI NIEÄM: Baûo maät trong SQL Server 2000 coù raát nhieàu khaùi nieäm, bao goàm taøi khoaûn ñaêng nhaäp, quyeàn heä thoáng, caùc ñoái töôïng, döõ lieäu. Baûo maät cho pheùp ngöôøi quaûn trò cô sôû döõ lieäu töï ra quyeát ñònh cho pheùp, hay khoâng cho pheùp ngöôøi duøng truy caäp vaø thao taùc treân cô sôû döõ lieäu, sao cho coù hieäu quaû baûo maät döõ lieäu toát nhaát, döôùi moät goùc ñoä naøo ñoù, ngöôøi quaûn trò döïa treân neàn taûng lyù thuyeát baûo maät cuûa heä cô sôû döõ lieäu ña ngöôøi duøng, nhaèm tìm ra nhöõng phöông phaùp baûo maät theo ñuùng vôùi nhu caàu cuûa ñoä baûo maät döõ lieäu. Vôùi muïc ñích taêng tính baûo maät döõ lieäu, SQL Server 2000 hoã trôï caùc tính naêng cho pheùp nhaø quaûn trò thieát laäp cô cheá baûo veä cô sôû döõ lieäu trong moâi tröôøng ña ngöôøi duøng, bao goàm caùc yeáu toá chính sau: Vai troø cuûa ngöôøi duøng trong heä thoáng cô sôû döõ lieäu. Quyeàn söû duïng caùc öùng duïng cô sôû döõ lieäu trong SQL Server. Quyeàn taïo vaø söûa ñoåi caáu truùc caùc ñoái töôïng cô sôû döõ lieäu. Quyeàn truy caäp, xöû lyù döõ lieäu. Khi ñaêng nhaäp vaøo moät heä thoáng cô sôû döõ lieäu ña ngöôøi duøng, ngöôøi söû duïng caàn phaûi cung caáp UserID (taøi khoaûn) vaø password (maät khaåu). Döïa treân UserID heä thoáng coù khaû naêng kieåm soaùt taát caû caùc haønh vi cuûa ngöôøi söû duïng treân cô sôû döõ lieäu SQL Server 2000. Dó nhieân ñeå laøm ñöôïc chöùc naêng naøy, ngöôøi quaûn trò cô sôû döõ lieäu caàn phaûi thieát laäp caùc quyeàn xöû lyù vaø truy caäp vaøo cô sôû döõ lieäu khi taïo ra UserID naøy, ngoaøi ra coøn coù moät soá thuoäc tính khaùc cuûa SQL Server nhö quyeàn backup (löu tröõ ) döõ lieäu, trao ñoåi döõ lieäu vôùi caùc öùng duïng cô sôû döõ lieäu khaù,… Khi noùi ñeán baûo maät, ta caàn phaûi quan taâm ñeán teân Taøi Khoaûn, maät khaåu, chieàu daøi, thôøi gian coù hieäu löïc,… nhö sau: Moät ngöôøi söû duïng chæ moät UserID vaø moät maät khaåu Thôøi gian coù hieäu löïc cuûa maät khaåu Chieàu daøi cuûa maät khaåu coù giôùi haïn <=36 Giôùi haïn ngöôøi söû duïng theo license hay môû roäng Thoâng tin veà ngöôøi söû duïng Khi taïo ngöôøi söû duïng, vôùi teân ngöôøi söû duïng caàn roõ raøng, deã hieåu ñeå ngôïi nhôù, vaø khoâng choy1 töï ñaëc bieät, khoâng neân coù khoaûng traéng, ñieàu naøy gaây khoù khaên cho baïn veà sau. LÖÏA CHOÏN BAÛO MAÄT Khi taïo ra moät ngöôøi duøng (login user) trong SQL Server 2000, ta caàn löu yù 3 caùch ñeå taêng tính baûo maät cho ngöôøi söû duïng ñoù : Giao tieáp vôùi heä ñieáu haønh : Söû duïng UserID vaø Password cuûa heä ñieàu haønh Window NT 4.0/ 2000 ñeå ñaêng nhaäp SQL Server 2000. Vôùi loaïi naøy ngöôøi duøng truy caäp vaøo maïng vaø coù theå söû duïng cô sôû döõ lieäu SQL Server 2000, ñoàng thôøi moät ngöôøi duøng coù UserID vaø Password coù theå söû duïng taøi nguyeân treân maïng. Baûo maät chuaån : Vôùi loaïi naøy, ngöôøi söû duïng coù UserID vaø Password taùch rôøi vôùi heä ñieàu haønh maïng, öùng vôùi loaïi naøy ngöôøi söû duïng coù hieäu löïc trong cô sôû döõ lieäu SQL Server 2000, khoâng theå söû duïng taøi nguyeân treân maïng. Toång hôïp hai tröôøng hôïp treân : Moät soá ngöôøi söû duïng quyeàn söû duïng treân heä ñieàu haønh vaø SQL Server, moät soá khaùc chæ söû duïng quyeàn truy caäp vaøo SQL Server 2000. Ghi chuù: Taøi khoaûn ngöôøi duøng coù giaù trò treân SQL Server 2000 hieän haønh , khi sang moät SQL Server khaùc phaûi taïo ra taøi khoaûn ngöôøi duøng treân server ñoù. Vôùi taøi khoaûn ngöôøi duøng laøm cô sôû cho vieäc taïo taøi khoaûn ngöôøi duøng cho cô sôû döõ lieäu cuï theå Ngoaøi caùc tröôøng hôïp treân, SQL Server 2000 cung caáp caùc chöùc naêng hay caùc thuû tuïc taïo môùi vaø quaûn trò ngöôøi duøng cô sôû döõ lieäu SQL Server nhö sau: Söû duïng sp addlogin Söû duïng trình ñieàu khieån EM Söû duïng SQL Distributed Management Objects (DMO) Söû duïng Windows management Intrumenttation (WMI) QUYEÀN NGÖÔØI DUØNG (USER RIGHT) Quyeàn cuûa ngöôøi duøng ñöôïc ñònh nghóa nhö möùc ñoä ngöôøi duøng coù theå hay khoâng theå thöïc thi treân cô sôû döõ lieäu, quyeàn ñöôïc chia thaønh 4 loaïi nhö sau: Quyeàn truy caäp vaøo SQL Server 2000. Quyeàn truy xuaát vaøo cô sôû döõ lieäu. Quyeàn thöïc hieän treân caùc ñoái töôïng cô sôû döõ lieäu. Quyeàn xöû lyù döõ lieäu. Phaàn 1: PHAÂN TÍCH VAØ THIEÁT KEÁ HEÄ THOÁNG QUAÛN LYÙ ÑAÊNG KYÙ VAØ XEÙT TUYEÅN NGUYEÄN VOÏNG CUÛA HOÏC SINH VAØO LÔÙP 10 ÔÛ TP.HOÀ CHÍ MINH Chöông I : GIÔÙI THIEÄU ÑEÀ TAØI VAØ NGHIEÂN CÖÙU KHAÛ THI Chöông II : PHAÂN TÍCH VAØ THIEÁT KEÁ HEÄ THOÁNG THIEÁT KEÁ MOÂ HÌNH THÖÏC THEÅ KEÁT HÔÏP (ERD) : MOÂ HÌNH QUAN HEÄ DÖÕ LIEÄU : TÖØ ÑIEÅN DÖÕ LIEÄU: MOÂ HÌNH CHÖÙC NAÊNG HEÄ THOÁNG (BFD) : MOÂ HÌNH DOØNG DÖÕ LIEÄU (DFD) : Chöông III : CAÙC RAØNG BUOÄC TOAØN VEÏN 1. Töø ADO ñeán ADO.NET: ADO.NET vöôït xa hôn nöõa : Raøng buoäc (Constraint), quan heä (Relationship) :

Các file đính kèm theo tài liệu này:

  • docphan 3 - Tim hieu SQL Server.doc