Professional Documents
Culture Documents
SQL Server
SQL Server
vn tch hp). Thm vo l s h tr hiu qu hn cho cc thc th d liu doanh nghip cng vi cc ty chn ng b d liu.
Pages and Extents Page: n v lu tr d liu c s trong SQL Server Khng gian a c cp pht cho tp tin d liu (.mdf hoc ndf) ca mt csdl c phn chia logic thnh cc page v c nh s lin tc t 0 n n. SQL Server thc hin c ghi d liu trn cc page ny C kch thc l 8 Kbs (1MB c 128 pages). 96 byte u tin ca page (page header) lu tr cc thng tin h thng v page nh: s trang, loi trang (data, Index, text/image,..), ch s ID ca trang. 2.2 Cu trc logic
Hu nh mi th trong SQL Server c t chc thnh nhng objects v d nh tables, views, stored procedures, indexes, constraints.... i tng Table Data type View Stored procedure Function Index Kiu d liu i tng CSDL cha cc lnh Select i tng cha cc lnh T-SQL Hm nh ngha cc logic x l i tng CSDL nhm truy cp d liu nhanh hn Constraint Rng buc d liu, c thit lp trn 1 ct hoc nhiu ct to ton vn d liu Trigger Loi th tc lu tr c bit, c thc thi khi CSDL trong bng thay i M t i tng lu tr d liu ca CSDL
Bn trong c s d liu ca Microsoft SQL Server vic kim tra tnh ton vn d liu s thng qua hai i tng qun l, l cc constraint v trigger. C hai i tng ny u c lin kt trc tip vo bng d liu. Cc loi quy tc kim tra tnh ton vn d liu bao gm : Kim tra tnh duy nht ca d liu Kim tra tn ti d liu Kim tra min gi tr
3.2 Kh nng bo mt
Bo mt l mt trong nhng yu t ng vai tr quan trng i vi s sng cn ca c s d liu. C s d liu l ton b thng tin v hot ng ca cng vic thc thi bi vy m vic gi an ton bo mt cho c s d liu s gip cng vic hot ng n nh, khng b nhng ngi dng khng c quyn hn truy cp v lm thay i gy mt tnh ton vn ca c s d liu. Hu ht cc h qun tr c s d liu thng mi hin nay u cung cp kh nng bo mt c s d liu vi nhng chc nng nh: Cp pht quyn truy cp c s d liu cho ngi dng v cc nhm ngi dng, pht hin v ngn chn nhng thao tc tri php ca ngi s dng trn c s d liu. Cp pht quyn s dng cc cu lnh, cc i tng c s d liu i vi ngi dng. Thu hi (hu b) quyn ca ngi dng. Bo mt d liu trong SQL c thc hin da trn ba khi nim chnh sau y:
Ngi dng c s d liu (Database user) : L i tng s dng c s d liu, thc thi cc thao tc trn c s d liu nh to bng, truy xut d liu, Mi mt ngi dng trong c s d liu c xc nh thng qua tn ngi dng (User ID). Mt tp nhiu ngi dng c th c t chc trong mt nhm v c gi l nhm ngi dng (User Group). Chnh sch bo mt c s d liu c th c p dng cho mi ngi dng hoc cho cc nhm ngi dng. Cc i tng c s d liu (Database objects): Tp hp cc i tng, cc cu trc lu tr c s dng trong c s d liu nh bng, khung nhn, th tc, hm c gi l cc i tng c s d liu. y l nhng i tng cn c bo v trong chnh sch bo mt ca c s d liu. c quyn (Privileges): L tp nhng thao tc c cp pht cho ngi dng trn cc i tng c s d liu. Chng hn mt ngi dng c th truy xut d liu trn mt bng bng cu lnh SELECT nhng c th khng th thc hin cc cu lnh INSERT, UPDATE hay DELETE trn bng . SQL cung cp cho ngi lp trnh cu lnh cp pht quyn truy cp cho ngi dung cng nh thu hi quyn s dng , cu trc cu lnh s c nhc n phn sau.
4. T-SQL
4.1. Gii thiu s lc v T-SQL Transact-SQL l ngn ng SQL m rng da trn SQL chun ca ISO (International Organization for Standardization) v ANSI (American National
Standards Institute) c s dng trong SQL Server khc vi P-SQL (Procedural-SQL) dng trong Oracle. Trong phn ny chng ta s tm hiu s qua v T-SQL. Chng c chia lm 3 nhm: Data Definition Language (DDL): y l nhng lnh dng qun l cc thuc tnh ca mt database nh nh ngha cc hng hoc ct ca mt table, hay v tr data file ca mt database...thng c dng : Create object_Name Alter object_Name Drop object_Name Trong object_Name c th l mt table, view, stored procedure, indexes... Data Control Language (DCL): y l nhng lnh qun l cc quyn truy cp ln tng object (table, view, stored procedure...). Thng c dng sau: Grant Rovoke Deny Data Manipulation Language (DML):
y l nhng lnh ph bin dng x l data nh :
Delete 4.2. C php lnh T-SQL Phn ny chng ta s bn v cc thnh phn to nn c php ca T-SQL Identifiers y chnh l tn ca cc database object. N dng xc nh mt object. (Ch khi ni n Object trong SQL Server l chng ta mun cp n table, view, stored procedure, index.....V hu nh mi th trong SQL Server u c thit k theo kiu hng i tng (objectoriented)). C hai loi Identifiers mt loi thng thng (Regular Identifier) v mt loi gi l Delimited Identifier, loi ny cn c du "" hay du [] ngn cch. Loi Delimited c dng i vi cc ch trng vi t kha ca SQL Server (reserved keyword) hay cc ch c khong trng. Variables (Bin) Bin trong T-SQL cng c chc nng tng t nh trong cc ngn ng lp trnh khc ngha l cn khai bo trc loi d liu trc khi s dng. Bin c bt u bng du @ (i vi cc global variable th c hai du @@) Functions (Hm) C 2 loi hm mt loi l built-in v mt loi user-defined Cc hm Built-In c chia lm 3 nhm: Rowset Functions : Loi ny thng tr v mt object v c i x nh mt table. V d nh hm OPENQUERY s tr v mt recordset v c th ng v tr ca mt table trong cu lnh Select.
Aggregate Functions : Loi ny lm vic trn mt s gi tr v tr v mt gi tr n hay l cc gi tr tng. V d nh hm AVG s tr v gi tr trung bnh ca mt ct. Scalar Functions : Loi ny lm vic trn mt gi tr n v tr v mt gi tr n. Trong loi ny li chia lm nhiu loi nh nh cc hm v ton hc, v thi gian, x l kiu d liu String.... Cc hm User-Defined (c to ra bi cu lnh CREATE FUNCTION v phn body thng c gi trong cp lnh BEGIN...END) cng c chia lm cc nhm nh sau: Scalar Functions : Loi ny cng tr v mt gi tr n bng cu lnh RETURNS. Table Functions : Loi ny tr v mt table Data Type (Loi D Liu) Exact numberics (s chnh xc, khng sai s): BIGINT INT SMALLINT TYNYINT BIT DECIMAL NUMERIC MONEY SMALLMONEY Approximate Numerics FLOAT
REAL Datetime and smalldatetime: DATETIME SMALLDATETIME Character Strings (kiu chui): CHAR VARCHAR TEXT Unicode Character Strings (kiu chui c cha Unicode): NCHAR NVARCHAR NTEXT Binary strings: BINARY VARBINARY IMAGE Other data types (cc kiu d liu khc) Ngoi ra SQL cn h tr mt s kiu d liu khc nh: cursor, sql_variant, table, timestamp v uniqueidentifier. Expressions
Cc Expressions c dng Identifier + Operators (nh +,-,*,/,=...) + Value
Cc thnh phn Control-Of Flow Nh BEGIN...END, BREAK, CONTINUE, GOTO, IF...ELSE, RETURN, WHILE.... Xin xem thm Books Online bit thm v cc thnh phn ny.
Comments (Ch Thch) T-SQL dng du -- nh du phn ch thch cho cu lnh n v dng /*...*/ ch thch cho mt nhm.
4.3. Thc Thi Cc Cu Lnh SQL Thc thi mt cu lnh n: Mt cu lnh SQL c phn ra thnh cc thnh phn c php nh trn bi mt parser, sau SQL Optimizer (mt b phn quan trng ca SQL Server) s phn tch v tm cch thc thi (Execute Plan) ti u nht v d nh cch no nhanh v tn t ti nguyn ca my nht... v sau SQL Server Engine s thc thi v tr v kt qu. Thc Thi mt nhm lnh (Batches) Khi thc thi mt nhm lnh SQL Server s phn tch v tm bin php ti u cho cc cu lnh nh mt cu lnh n v cha execution plan c bin dch (compiled) trong b nh sau nu nhm lnh trn c gi li ln na th SQL Server khng cn bin dch m c th thc thi ngay iu ny gip cho mt batch chy nhanh hn. Lnh GO Lnh ny ch dng gi mt tn hiu cho SQL Server bit kt thc mt batch job v yu cu thc thi. N vn khng phi l mt lnh trong T-SQL.