Professional Documents
Culture Documents
Mi database trong SQL Server cha t nht mt data file chnh (primary), c th c thm mt hay nhiu data file ph (Secondary) v mt transaction log file.
file chnh cha data v nhng system tables (ui .mdf) file ph thng ch s dng khi database c phn chia cha trn nhiu a (ui .ndf) file ghi li tt c nhng thay i din ra trong mt database v cha y thng tin c th roll back hay roll forward khi cn (ui .ldf)
C s d liu
Physical Implementation
Data1.mdf
Data2.ndf
Log1.ldf
V mt logic, d liu trong CSDL c t chc trong cc i tng ca csdl V mt vt l, CSDL c lu tr trn 2 hoc nhiu tp tin
ThS. Lng Thi Ngoc Khanh K. CNTT - H Tn c Thng
C s d liu h thng
Trong SQL Server, tt c thng tin h thng c lu trong CSDL h thng Tt c CSDL ngi dng c qun l bi CSDL h thng SQL Server cung cp v h tr CSDL h thng sau:
msdb
model
resource
tempdb
Data Type
View Stored procedure
Kiu d liu
View l i tng CSDL cha cc cu lnh SELECT L i tng cha cc tp lnh T-SQL
Trigger
Logins
Mt ngi dng c nh danh bi Login ID kt ni n SQL Server. SQL Server h tr 2 c ch chng thc l Windows Authentication v SQL Server Authentication. Nhn din mi ngi dng trong mi CSDL. Quyn truy cp ca ngi dng da trn i tng ny.
Users
Roles Groups
Vai tr, l nhm ngi dng cng chc nng Nhm nhiu SQL Server li thnh mt Groups
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
SQL Server phn b vng nh cho cc i tng v ly li vng nh khi cc hng, i tng b xa Table and Index Architecture Mi bng v ch mc, cc hng d liu c lu tr trn 8KB gi l page
Mi c s d liu trong SQL Server u bao gm file log ghi li tt c cc giao dch v thao tc c s d liu. Cc thao tc h tr bi giao dch gm:
Khi phc li tng giao dch Khi phc li tt c cc giao dch cha hon tt khi SQL Server khi ng Khi phc d liu v trc v tr m h thng b li
Relational database engine c hai phn chnh: relational engine v storage engine
Relational Engine
OLE DB
Storage Engine
Local Database
Local Database
Local Database
Cc cu lnh gi t ng dng ngi dng n SQL Server l cc cu lnh SQL. Cc cu lnh SQL c SQL Server thc hin theo mt trong nhng cch sau:
Single SQL Statement Processing X l l/ tp lnh Thc thi Stored Procedure v Trigger Execution Plan Caching and Reuse Parallel Query Processing
Vic c/ghi a tn nhiu ti nguyn v mt nhiu thi gian gii phng ti nguyn. SQL Server phn b khng gian b nh m ln lu tr tm v trnh vic c ghi a thng
Truy vn phn tn c th truy cp d liu hn tp trn nhiu ngun d liu trn cng hoc cc my khc nhau. SQL Server h tr truy vn phn tn bng vic s dng Microsoft OLE DB Provider.
ThS. Lng Thi Ngoc Khanh K. CNTT - H Tn c Thng
C s d liu h thng
Ngi s dng SQL Server c th to cc c s d liu ngi dng nh ngha Mc ch ca cc c s d liu ny l lu d liu ca ngi s dng SQL Server cung cp cc c s d liu mu ngi s dng lm vic
C s d liu v d
Database dng
Ngi dng phi c quyn truy cp database C th phn nhm ngi dng cp quyn SQL Server 2000 h tr Application Role
Cc database h thng
C th b sung thm cc tp tin lu tr khc T chc tt cc tp tin lu tr gip tng tc x l H tr phc hi d liu H tr backup/restore d liu
.mdf .ndf
Lng Thi Ngoc Khanh
.ldf
Tao mt CSDL
C th to CSDL bng:
Tn ca c s d liu Ngi s hu hoc ngi to c s d liu Kch thc ca c s d liu Cc tp tin v nhm cc tp tin c s dng lu tr c s d liu
Tham s:
Database_name: tham chiu ti toan b CSDL name: ch nh tn logic se s dng bn trong SQL Server tham chiu ti tp tin CSDL vt l trn a cng. Filename: ng dn v tn tp tin gn lin vi v tr ca d liu trn a cng. N phi la a cng cc b.
Size: ch nh tp tin CSDL se ln nh th nao Maxsize: ch nh kch thc ln nht ma CSDL c th pht trin ti Filegrowth: ch nh tng nao c s dng i vi vic t ng pht trin ca tp tin CSDL. Log on: m t ni ma cc tp tin nht k chuyn tc c tim kim va kch thc ca chung la bao nhiu.
V d 1:
To mt CSDL danh ra 20MB luc u cho phn d liu v 5MB cho nht k chuyn tc. Cc tp tin c th pht trin ln ti 100MB i vi d liu va 15MB i vi nht ky chuyn tc.
V d 2:
CREATE DATABASE Products ON ( NAME = prods_dat, FILENAME = D:\BTSQL\prods.mdf', SIZE = 4, MAXSIZE = 10, FILEGROWTH = 1)
Lu y: Nu khng ch nh mt transaction log file th SQL s t ng to ra 1 log file vi kch thc ban u l 1 MB.
ThS. Lng Thi Ngoc Khanh K. CNTT - H Tn c Thng
V d: To csdl c tn l QLSV
CREATE DATABASE QLSV On Primary( Name = QLSV_data, -- Tn file logic: QLSV_data FileName ='C:\QLSV.mdf',-- Tn file vt l Size = 50MB, -- size file ban u:50MB MaxSize = Unlimited,-- size ti a: Khng gii hn FileGrowth = 10MB -- size tng trng: 10 MB ) Log On ( Name = QLSV_log, FileName = 'C:\QLSV.ldf', S dng th Size = 50MB, tc sp_helpdb MaxSize = 100MB, xem li thng tin csdl FileGrowth = 10MB c to ra ) ;
ThS. Lng Thi Ngoc Khanh K. CNTT - H Tn c Thng
M SQL Server Management Studio Right-click ln trn "database" v chn "New Database" Nhp tn CSDL Kch phi chut vao tn CSDL va to va chn Properties hoc (kch up chut). the General ta c cc thng tin chung ca CSDL (tn, kch thc) thay i thuc tnh cc tp tin CSDL, kch chut vao the va hp thch hp, thc hin cc thay i va nhn OK.
Lng Thi Ngoc Khanh
C php:
ALTER DATABASE database_name MODIFY FILE( NAME = logical_file_name , FILENAME = os_file_name , SIZE = size , MAXSIZE = max_size , FILEGROWTH = size )
ThS. Lng Thi Ngoc Khanh K. CNTT - H Tn c Thng
V d:
ALTER DATABASE QLSV
MODIFY FILE (NAME = QLSV_data, SIZE = 60MB)
V d:
USE QLSV DBCC SHRINKDATABASE (NAME = QLSV , 20);
V d:
ALTER DATABASE QLSV ADD FILE ( NAME = QLSV_data2, filename = D:\qlsv_data2.ndf, size = 2, maxsize = 5, filegrowth = 2)
Lu :
Tp tin phi trng trc khi g b S dng DBCC SHRINKFILE vi ty chn EMPTYFILE lm trng mt tp tin.
V d:
USE QLSV GO DBCC SHRINKFILE ( QLSV_DATA, EMPTYFILE ) GO ALTER DATABASE QLSV REMOVE FILE QLSV_DATA
i tn CSDL: c 2 cch
V d:
C php 2: Thc thi th tc lu tr h thng sp_renamedb i tn CSDL sp_renamedb old name, new name
V d:
sp_renamedb 'baitap1 , 'baitap
Lu y khi i tn:
CSDL phi ch mt ngi dung Phi lam vic trong CSDL chnh thc thi th tc trn
G b (xa) mt CSDL:
G b thng tin ca CSDL t cc bng h thng v g b cc tp tin nht k v d liu t h thng. Mt CSDL b xa ch c th to li bng cch khi phc n t bn sao Khng mt ngi dung nao c th trong CSDL ti thi im n b xa. Phi la thanh vin ca db_owner (hoc vai tr my ch sysadmin) xa CSDL.
Cu php:
DROP DATABASE database_name
database_name,
Chn CSDL cn xa Kch chut phi v chn Delete, nhn Yes cho thng bo xc nhn
Tng kch thc S dng pht biu ALTER DATABASE hoc cc ca CSDL thuc tnh CSDL trong SQL Server Management Studio.
Thay i v tr vt S dng pht biu ALTER DATABASE l ca CSDL
Thm tp tin ghi S dng pht biu ALTER DATABASE hoc cc vt d liu v giao thuc tnh CSDL trong SQL Server Management dch Studio
Co rt mt CSDL S dng pht biu DBCC SHRINKDATABASE hoc chn la Shrink Database trong SQL Server Management Studio, chp nhn la chn ny trong mc CSDL cn co rt.
Co rt mt tp tin S dng pht biu DBCC SHRINKFILE ThS. Lng Thi Ngoc Khanh K. CNTT - H Tn c Thng CSDL
Xa b cc tp tin S dng pht biu ALTER DATABASE hoc cc d liu hoc tp thuc tnh CSDL trong Server Management Studio. tin ghi vt Thm mt nhm S dng pht biu ALTER DATABASE hoc cc tp tin vo CSDL thuc tnh CSDL trong Server Management Studio.
Bn chp CSDL:
L bn ch c, khung nhn tnh ca mt CSDL SQL Server. Tnh nng mi trong t Microsoft SQL Server 2005/2008.
CREATE DATABASE database_snapshot_name ON( NAME = logical_file_name, FILENAME = os_file_name ) [ ,...n ] AS SNAPSHOT OF source_database_name [;]
ThS. Lng Thi Ngoc Khanh K. CNTT - H Tn c Thng
To mt bn chp CSDL:
Nhc im
Bn sao ca bn chp khng th c to ra. Bn chp phi tn ti trn cng my ch c s d liu cng vi c s d liu gc. Mt ngi s dng mi khng th c quyn truy cp vo d liu trong bn chp. Quyn c tha k t c s d liu gc khi n tn ti ti thi im to ra bn chp.
Cc tp tin:
Nhm tp tin
Lu :
Nhm tp tin c th c to cng lc vi to CSDL hoc thm vo sau. Mt tp tin khng th thuc nhiu hn 1 nhm tp tin ti cng thi im. Cc tp tin khng th di chuyn n cc nhm tp tin khc sau khi cc tp tin c thm vo trong csdl. Nhm tp tin c th ch cha cc file d liu v khng c cc file giao dch.
C php: CREATE DATABASE database_name [ON [PRIMARY] [<filespec> [ ,...n ] [,<filegroup> [ ,...n ]] [LOG ON { <filespec> [ ,...n ] }] ] [COLLATE collation_name ] ] [;]
ThS. Lng Thi Ngoc Khanh K. CNTT - H Tn c Thng
C php: ALTER DATABASE database_name{ <add_or_modify_files> | <add_or_modify_filegroups> | <set_database_options> | MODIFY NAME = new_database_name | COLLATE collation_name } [;]
V d:
Bng sau lit k mt s hm h thng, v cc th tc lu tr h thng tr v thng tin ca cc c s d liu, cc tp tin, v cc nhm tp tin:
M t Hm ny tr v s ID ca c s d liu. Hm ny tr v tn ca c s d liu Hm ny tr v s ID ca tp tin theo tn tp tin lun l trong c s d liu hin ti. Hm ny tr v tn lun l ca tp tin theo s ID ca tp tin cho trc.
ThS. Lng Thi Ngoc Khanh K. CNTT - H Tn c Thng
Cc Loi Backup:
Copy tt c data files trong mt database. Tt c nhng user data v database objects nh system tables, indexes, user-defined tables u c backup. Copy nhng thay i trong tt c data files k t ln full backup gn nht.
Copy mt data file n hay mt file group. Tng t nh differential database backup nhng ch copy nhng thay i trong data file n hay mt file group. Ghi nhn tt c cc transactions cha trong transaction log file k t ln transaction log backup gn nht. Loi backup ny cho php phc hi d liu tr ngc li vo mt thi im no trong qu kh.
Backup
Click vo database mun backup Right-click Tasks Backup Database... Ty theo yu cu ca database m chn cc option thch hp. Ngoi ra, c th schedule cho SQL Server backup nh k.
ThS. Lng Thi Ngoc Khanh K. CNTT - H Tn c Thng
Bi tp
1. Lnh sau lm g?
Alter database Test Add file (name = test_data2, C:\test_data2.ndf, size = 10)
filename
Hai tp tin d liu tn l Frogdata1 v Frogdata2, mi khi to ban u l 3MB, c th pht trin ti 20MB, mi ln pht trin 2MB Hai tp tin nht k tn l Froglog1, Froglog2, mi khi to l 1MB, kch thc ti a l 5MB, s dng ch pht trin t ng.
ThS. Lng Thi Ngoc Khanh K. CNTT - H Tn c Thng
Bi tp (tt)
3. Thm tp tin d liu khc tn l Frogdata3 vi cc thuc tnh mc nhin cho tt c cc gi tr khc 4. Co csdl li 20% 5. Lm rng tp tin Froglog2 6. G b tp tin Froglog2 7. i tn csdl l Treelog 8. Xa csdl