HỆ QUẢN TRỊ cơ sở dữ LIỆU

241 2 0
HỆ QUẢN TRỊ cơ sở dữ LIỆU

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯ Ờ NG ĐẠ I HỌ C HÀNG HẢ I KHOA CÔNG NGH Ệ THÔNG TIN BÀI GIẢ NG HỆ QUẢ N TRỊ CƠ SỞ DỮ LIỆ U Biên soạ n: K.S Nguyễ n Vư ng Thị nh Hả i Phịng – 2008 BỘ GIAO THƠNG VẬ N TẢ I TRƯ Ờ NG ĐẠ I HỌ C HÀNG HẢ I KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN HỆ THỐ NG THÔNG TIN BÀI GIẢ NG HỆ QUẢ N TRỊ CƠ TÊN HỌ C PHẦ N MÃ HỌ C PHẦ N TRÌNH ĐỘ ĐÀO TẠ O DÙNG CHO SV NGÀNH SỞ DỮ LIỆ U : CƠ SỞ DỮ LIỆ U : 17402 : ĐẠ I HỌ C CHÍNH QUY : CƠNG NGHỆ THƠNG TIN HẢ I PHỊNG - 2008 Tên họ c phầ n: Hệ n trị Cơ sở liệ u Bộ môn phụ trách giả ng y: Hệ thố ng Thông tin Mã họ c phầ n: 17402 TS tiế t 90 Lý thuyế t 45 Thự c hành/ Xemina 45 Tự họ c Loạ i họ c phầ n: Khoa phụ trách: CNTT Tổ ng số TC: Bài tậ p lớ n x Đồ án môn họ c Điề u kiệ n tiên quyế t: Không yêu cầ u Mụ c tiêu củ a họ c phầ n: Cung cấ p cho sinh viên nhữ ng khái niệ m bả n hệ n trị sở liệ u, vai trò c củ a hệ n trị sở liệ u trình tư ng tác giữ a hệ n trị sở liệ u vớ i phầ n mề m ứ ng dụ ng sở liệ u Giúp sinh viên tiế p cậ n vớ i nề n tả ng hệ n trị sở liệ u Microsoft SQL Server Nộ i dung chủ yế u: Khái niệ m CSDL hệ n trị CSDL; Các thành phầ n bả n MS SQL Server; Ngôn ngữ T-SQL đố i tư ợ ng CSDL; Các tác vụ n trị hệ thố ng Nộ i dung chi tiế t: PHÂN PHỐ I SỐ TIẾ T TÊN CHƯ Ơ NG MỤ C TS LT BT TH KT Chư ng Giớ i thiệ u 1.1 Mộ t số khái niệ m bả n 1.2 Giớ i thiệ u SQL Server mô hình Client/Server 1.3 Cài đặ t cấ u hình SQL Server 1.4 Các thành phầ n bả n SQL Server Chư ng Làm việ c vớ i CSDL bả ng 2.1 Làm việ c vớ i CSDL 2.1.1 Tổ c tậ p tin CSDL SQL Server 2.1.2 Đị nh nghĩa CSDL 2.1.3 Sử a đổ i CSDL 2.1.4 Xóa CSDL 2.2 Làm việ c vớ i bả ng liệ u 2.2.1 Các kiể u liệ u bả n 2.2.2 Ràng buộ c (Constraint) thuộ c tính cộ t 2.2.3 Đị nh nghĩa bả ng liệ u 2.2.3 Sử a đổ i bả ng liệ u 2.2.4 Xóa bả ng liệ u 2.3 Làm việ c vớ i bả n ghi 2.3.1 Thêm bả n ghi mớ i (Insert) 2.3.2 Cậ p nhậ t bả n ghi (Update) 2.3.3 Xóa bả n ghi (Delete) 2.4 Khái niệ m mụ c (Index) Chư ng Truy vấ n liệ u bả ng ả o (View) 3.1 Cấ u trúc truy vấ n bả n 3.1.1 Câu lệ nh SELECT 3.1.2 Mệ nh đề WHERE biể u thứ c điề u kiệ n 3.1.3 Mộ t số hàm thư ng dùng 3.1.4 Truy vấ n thố ng kê vớ i GROUP BY HAVING 3.1.5 Sắ p xế p vớ i ORDER BY 3.2 Truy vấ n liệ u từ nhiề u bả ng 3.2.1 Inner Join 3.2.2 Left Outer Join PHÂN PHỐ I SỐ TIẾ T TS LT BT TH KT TÊN CHƯ Ơ NG MỤ C 3.2.3 Right Outer Join 3.2.4 Full Outer Join 3.2.5 Cross Join 3.2.6 Self Join 3.2.7 Non - Equal Join 3.2.8 Union 3.3 Truy vấ n lồ ng (Subquery) 3.3.1 Nested Scalar Subquery 3.3.2 Correlated Subquery 3.4 Bả ng ả o (View) 3.4.1 Đị nh nghĩa View 3.4.2 Sử a đổ i View 3.4.3 Xóa View Chư ng Thủ tụ c thư ng trú hàm ngư i dùng 4.1 Lậ p trình vớ i T - SQL 4.2 Thủ tụ c thư ng trú (Stored Procedure) 4.3 Hàm ngư i dùng đị nh nghĩa (User Defined Fuction) Chư ng Trigger Transaction 5.1 Trigger ứ ng dụ ng củ a Trigger 5.1.1 After Trigger 5.1.2 Instead Of Trigger 5.2 Các loạ i Transaction ứ ng dụ ng 5.2.1 Transaction tự độ ng 5.2.2 Transaction tư ng minh 5.2.3 Transaction ẩ n 5.2.4 Transaction lồ ng Chư ng 6: Các tác vụ n trị hệ thố ng 6.1 Quả n lý đăng ký SQL Server (Server Registration) 6.2 Bả o mậ t phân quyề n ngư i dùng 6.3 Sao lư u (Backup) phụ c hồ i (Restore) liệ u 6.4 Hoạ ch đị nh tác vụ n trị Nhiệ m vụ củ a sinh viên: Tham dự buổ i họ c lý thuyế t thự c hành, làm tậ p đư ợ c giao, làm thi giữ a họ c phầ n thi kế t thúc họ c phầ n theo quy đị nh Tài liệ u họ c tậ p: Dư ng Quang Thiệ n, SQL Server 2000: Lậ p trình T - SQL, NXB Văn hóa Sài Gịn, 2007 Paul Turley & Dan Wood, Beginning Transact-SQL with SQL Server 2000 and 2005, Wrox Press, 2006 Brian Knightet al, Professional SQL Server 2005 Administration, Wrox Press, 2007 Ray Rankins, Paul Bertucci, Chris Gallelli, Alex T.Silverstein, Microsoft SQL Server 2005 Unleashed, Sams Publishing, 2007 Hình thứ c tiêu chuẩ n đánh giá sinh viên: Hình thứ c thi: thi viế t hoặ c vấ n đáp Tiêu chuẩ n đánh giá sinh viên: vào tham gia họ c tậ p củ a sinh viên buổ i họ c lý thuyế t thự c hành, kế t làm tậ p đư ợ c giao, kế t củ a thi giữ a họ c phầ n thi kế t thúc họ c phầ n Thang điể m: Thang điể m chữ A, B, C, D, F Điể m đánh giá họ c phầ n: Z = 0,4X + 0,6Y Bài giả ng tài liệ u thứ c thố ng nhấ t củ a Bộ môn Hệ thố ng Thông tin, Khoa Công nghệ Thông tin đư ợ c dùng để giả ng y cho sinh viên Trư ng Bộ môn Ngày phê duyệ t: / / MỤ C LỤ C MỤ C LỤ C MỞ ĐẦ U PHầ N I QUẢ N TRỊ SQL SERVER BẮ T ĐẦ U VỚ I SQL SERVER TÌM HIỂ U VỀ HỆ QUẢ N TRỊ CSDL SQL SERVER MƠ HÌNH HOẠ T ĐỘ NG CỦ A SQL SERVER TRÊN MẠ NG MÁY TÍNH CÁC THÀNH PHẦ N CỦ A SQL SERVER 11 CÁC THÀNH PHẦ N CỦ A SQL SERVER 11 CÀI ĐẶ T SQL SERVER 13 QUẢ N TRỊ SERVER 22 INSTANCE 22 ĐIỀ U KHIỂ N CÁC DỊ CH VỤ CỦ A SQL SERVER 22 QUẢ N TRỊ SERVER 26 THIẾ T LẬ P KẾ T NỐ I ĐẾ N SERVER 27 CẤ U HÌNH KẾ T NỐ I MẠ NG CỦ A SERVER 37 QUẢ N TRỊ CÁC CLIENT 38 QUẢ N TRỊ CƠ SỞ DỮ LIỆ U 45 CẤ U TRÚC CƠ SỞ DỮ QUẢ N LÝ CƠ SỞ DỮ LIỆ U 45 LIỆ U 50 BẢ NG DỮ LIỆ U – TABLE 58 CÁC CHUẨ N TẮ C 58 THIẾ T KẾ BẢ NG DỮ TẠ O BẢ NG DỮ LIỆ U 60 LIỆ U 69 KHÓA INDEX 77 THIẾ T KẾ KHÓA INDEX 77 TẠ O KHÓA INDEX 79 XÓA INDEX 81 KHUNG NHÌN – VIEW 82 KHÁI NIỆ M KHUNG NHÌN 82 TẠ O KHUNG NHÌN 82 SỬ DỤ NG VIEW 84 THỦ TỤ C LƯ U TRỮ 86 KHÁI NIỆ M THỦ TỤ C LƯ U TRỮ VÀ HÀM 86 PHÂN LOẠ I THỦ TỤ C LƯ U TRỮ 87 THIẾ T LẬ P THỦ TỤ C LƯ U TRỮ 88 SỬ A, XÓA THỦ TỤ C 95 TRIGGER 96 KHÁI NIỆ M TRIGGER 96 NHỮ NG TRƯ Ờ NG HỢ P SỬ DỤ NG TRIGGER 96 ĐẶ C ĐIỂ M CỦ A TRIGGER 96 TẠ O TRIGGER 97 SỬ A, XÓA TRIGGER 101 XUẤ T – NHẬ P DỮ LIỆ U 102 SERVER LIÊN KẾ T – LINKED SERVER 102 SỬ DỤ NG BCP VÀ BULK INSERT NHẬ P DỮ DETTACH VÀ ATTACH CƠ SỞ DỮ IMPORT VÀ EXPORT CƠ SỞ DỮ EXPORT – XUẤ T DỮ LIỆ U 110 LIỆ U 113 LIỆ U 115 LIỆ U 119 SAO LƯ U, KHÔI PHỤ C DỮ LIỆ U 120 NHỮ NG LÝ DO PHẢ I SAO LƯ U VÀ KHÔI PHỤ C DỮ LIỆ U 120 CÁC LOẠ I BACKUP 120 CÁC MƠ HÌNH PHỤ C HỒ I DỮ SAO LƯ U CƠ SỞ DỮ KHÔI PHỤ C DỮ LIỆ U 121 LIỆ U - BACKUP DATABASE 122 LIỆ U – RESTORE DATABASE 123 CHƯ Ơ NG X PHÂN QUYỀ N, BẢ O MẬ T 125 CHẾ ĐỘ BẢ O MẬ T – SECURITY MODE 125 SERVER ROLE, DATABASE ROLE 127 QUẢ N TRỊ NGƯ Ờ I DÙNG 131 NHÂN BẢ N DỮ LIỆ U 133 GIỚ I THIỆ U VỀ NHÂN BẢ N DỮ LIỆ U 133 CẤ U HÌNH PUBLISHER VÀ DISTRIBUTOR 139 TẠ O PUBLICATION 141 TẠ O PUSH SUBSCRIPTION 143 TẠ O PULL SUBSCRIPTION 145 THỰ C HIỆ N ĐỒ NG BỘ DỮ LIỆ U 147 PHầ N II CÂU LỆ NH T-SQL 148 ĐỊ NH NGHĨA DỮ THAO TÁC VỚ I DỮ TRUY VẤ N DỮ LIỆ U (DATA DEFINITION LAGUAGE - DDL) 148 LIỆ U (DATA MANIPULATION LANGUAGE - DML) 153 LỆ U 165 TẠ O BẢ NG BẰ NG LỆ NH SELECT INTO 173 LỆ NH COMPUTE BY 173 TOÁN TỬ UNION 174 TRUY VẤ N DỮ LIỆ U TỪ NHIỀ U BẢ NG 175 TRUY VẤ N TỔ NG HỢ P 183 TRUY VẤ N LỒ NG NHAU 186 UPDATE, DELETE, INSERT VỚ I LỆ NH TRUY VẤ N LỒ NG NHAU 189 LỆ NH READTEXT – ĐỌ C TEXT, IMAGE 190 THAO TÁC DỮ LIỆ U NGOÀI 190 MỘ T SỐ HÀM CƠ BẢ N 193 TRANSACTION – PHIÊN GIAO DỊ CH 199 LOCKING – KHÓA 203 GRAND – GÁN QUYỀ N 206 REVOKE – TƯ Ớ C QUYỀ N 211 DENY – TỪ CHỐ I QUYỀ N 211 TRỢ GIÚP 212 PHầ N III PHÁT TRIỂ N Ứ NG DỤ NG VỚ I SQL SERVER 213 GIỚ I THIỆ U 213 KẾ T NỐ I VỚ I SQL SERVER BẰ NG ADO 213 KẾ T NỐ I VỚ I SQL SERVER BẰ NG SQL-DMO 233 Phầ n QUẢ N TRỊ SQL SERVER BẮ T ĐẦ U VỚ I SQL SERVER TÌM HIỂ U VỀ HỆ QUẢ N TRỊ CSDL SQL SERVER Giớ i thiệ u SQL Server SQL Server hệ thố ng n trị sở liệ u quan hệ (Relational DataBase Management System- RDBMS) sử dụ ng lệ nh giáo chuyể n Transaction-SQL để trao đổ i liệ u giữ a Client Computer Server Computer SQL Server có mộ t số đặ c tính sau: Cho phép n trị mộ t hệ CSDL lớ n (lên đế n vài tega byte), có tố c độ xử lý liệ u nhanh đáp ứ ng yêu cầ u thờ i gian Cho phép nhiề u ngư i khai thác mộ t thờ i điể m đố i vớ i mộ t CSDL toàn n trị CSDL (lên đế n vài chụ c ngàn user) Có hệ thố ng phân quyề n bả o mậ t tư ng thích vớ i hệ thố ng bả o mậ t củ a công nghệ NT (Network Technology), tích hợ p vớ i hệ thố ng bả o mậ t củ a Windows NT hoặ c sử dụ ng hệ thố ng bả o vệ độ c lậ p củ a SQL Server Hỗ trợ việ c triể n khai CSDL phân tán phát triể n ứ ng dụ ng Internet Cho phép lậ p trình kế t nố i vớ i nhiề u ngơn ngữ lậ p trình khác dùng xây dự ng ứ ng dụ ng đặ c thù (Visual Basic, C, C++, ASP, ASP.NET, XML, ) Sử dụ ng câu lệ nh truy vấ n liệ u Transaction-SQL (Access SQL, Oracle PL/SQL) Các ấ n bả n củ a SQL Server SQL Server có ấ n bả n sau: Enterpise Manager: Là ấ n bả n đầ y đủ củ a SQL Server chạ y 32CPU 64GB RAM Có dị ch vụ phân tích liệ u Analysis Service Standard: Giố ng Enterprise ng bị hạ n chế mộ t số tính cao cấ p, chạ y 2CPU, 4GB RAM Personal: Phiên bả n chủ yế u để chạ y PC, nên chạ y hệ điề u hành Windows 9x, Windows XP, Windows 2000, Windows 2003… Developer: Là phiên bả n tư ng tự Enterprise ng bị giớ i hạ n bở i số user kế t nố i đế n Desktop Engine: Là phiên bả n mộ t engine chạ y desktop khơng có giao diệ n ngư i dùng (GUI), kích thư c CSDL giớ i hạ n bở i 2GB Win CE: Sử dụ ng cho ứ ng dụ ng chạ y Windows CE Trial: Phiên bả n dùng thử , bị giớ i hạ n bở i thờ i gian SQL Client: Là phiên bả n dành cho máy khách, thự c hiệ n khai thác thự c hiệ n kế t nố i đế n phiên bả n SQL Server, phiên bả n cung cấ p giao diệ n GUI khai thác cho ngư i sử dụ ng SQL Connectivity only: Là phiên bả n sử dụ ng cho ứ ng dụ ng để kế t nố i đế n SQL Server, phiên bả n không cung cấ p công cụ GUI cho ngư i dùng khai thác SQL Server Các phiên bả n đư ợ c cài đặ t phụ thộ c vào cài đặ t mà bạ n chọ n hoặ c lự a chọ n khai cài đặ t (ví dụ phiên bả n Enterprise, Standard, Personal,… bạ n phả i chọ n theo cài đặ t, phiên bả n SQL Client, Connectivity,… bạ n chọ n hộ p thoạ i trình cài đặ t) Mộ t số tính củ a Enterprise manager Dễ cài đặ t Hỗ trợ mơ hình Client/Server Thích hợ p hệ điề u hành Windows Hoạ t độ ng vớ i nhiề u giao thứ c truyề n thông Hỗ trợ dị ch vụ Data Warehousing Thích hợ p vớ i chuẩ n ANSI/ISO SQL-92 Hỗ trợ nhân bả n liệ u Cung cấ p dị ch vụ tìm kiế m Full-Text Sách trợ giúp- Book Online Khi sử dụ ng đố i tư ợ ng Recordset bạ n dị ch chuyể n vị trí củ a hàng liệ u bằ ng phư ng thứ c MoveFirst, MoveLast, MoveNext, MovePrevious Đánh dấ u vị trí theo phư ng thứ c Bookmark, phư ng thứ c clone để tạ o mộ t bả n recordset Quả n lý phiên làm việ c Trong phầ n câu lệ nh T-SQL ta xem xét việ c điề u khiể n mộ t hpiên làm việ c (transaction), nhiên ta sử dụ ng đố i tư ợ ng connection củ a ADO để điề u khiể n trự c tiế p phiên làm việ c kị ch bả n lệ nh nói bằ ng việ c sử dụ ng phư ng thứ c BeginTrans, CommitTrans, RollbackTrans Xét ví dụ sau: Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset ' Open connection cn.Open ' Open titles table rs.Open "SELECT * FROM titles", Cn, adOpenDynamic, adLockPessimistic ' Begin the transaction rs.MoveFirst cn.BeginTrans ' User loops through the recordset making changes ' Ask if the user wants to commit all the changes made If MsgBox("Save all changes?", vbYesNo) = vbYes Then cn.CommitTrans Else cn.RollbackTrans End If Thự c hiệ n lệ nh DDL Để thự c hiệ n lệ nh DDL CREATE TABLE, DROP TABLE, ALTER TABLE Bạ n sử dụ ng đố i tư ợ ng command củ a ADO, xét ví dụ sau: Dim Cn As New ADODB.Connection 222 Dim Cmd As New ADODB.Command ' If the ADOTestTable does not exist, go to AdoError On Error GoTo AdoError ' Connect using the SQLOLEDB provider cn.Provider = "sqloledb" cn.Properties("Data Source").Value = "MyServerName" cn.Properties("Initial Catalog").Value = "northwind" cn.Properties("Integrated Security").Value = "SSPI" cn.Open ' Set up command object Set Cmd.ActiveConnection = Cn Cmd.CommandText = "DROP TABLE ADOTestTable" Cmd.CommandType = adCmdText Cmd.Execute Done: Cmd.CommandText = "SET NOCOUNT ON" Cmd.Execute Cmd.CommandText = "CREATE TABLE ADOTestTable (id int, name char(100))" Cmd.Execute Cmd.CommandText = "INSERT INTO ADOTestTable values(1, 'Jane Doe')" Cmd.Execute Cn.Close Exit Sub AdoError: Dim errLoop As Error Dim strError As String ' Enumerate Errors collection and display properties of ' each Error object Set Errs1 = Cn.Errors For Each errLoop In Errs1 Debug.Print errLoop.SQLState Debug.Print errLoop.NativeError Debug.Print errLoop.Description 223 Next GoTo Done End Sub Quả n lý liệ u kiể u lớ n – Text, image Dữ liệ u kiể u text, ntext, image kiể u liệ u phứ c tạ p, việ c n lý, khai thác không đư ợ c thự c hiệ n thông thư ng, ADO hỗ trợ phư ng thứ c riêng để thự c hiệ n Thay độ c, cậ p nhậ t liệ u trự c tiế p liệ u kiể u đư ợ c thao tác theo đoạ n (chunk) bằ ng cách sử dụ ng phư ng thứ c AppendChunk, GetChunk Trư c thự c hiệ n bạ n phả i đặ t tham số bằ ng cách thự c hiệ n lệ nh sau: EXEC sp_dboption 'pubs', 'Select into/bulkcopy', 'True' Xét ví dụ sau CSDL Pubs: - Copy bả ng pub_info sang bả ng mớ i USE pubs SELECT * INTO pub_info_x FROM pub_info GO - Thự c hiệ n chèn liệ u vào bả ng: Public Sub AppendChunkX() Dim Dim Dim Dim Dim Dim Dim Dim Dim cn As ADODB.Connection rstPubInfo As ADODB.Recordset strCn As String strPubID As String strPRInfo As String lngOffset As Long lngLogoSize As Long varLogo As Variant varChunk As Variant Const conChunkSize = 100 224 ' Open a connection Set cn = New ADODB.Connection strCn = "Server=srv;Database=pubs;UID=sa;Pwd=;" cn.Provider = "sqloledb" cn.Open strCn 'Open the pub_info_x table Set rstPubInfo = New ADODB.Recordset rstPubInfo.CursorType = adOpenDynamic rstPubInfo.LockType = adLockOptimistic rstPubInfo.Open "pub_info_x", cn, , , adCmdTable 'Prompt for a logo to copy strMsg = "Available logos are : " & vbCr & vbCr Do While Not rstPubInfo.EOF strMsg = strMsg & rstPubInfo!pub_id & vbCr & _ Left(rstPubInfo!pr_info, InStr(rstPubInfo!pr_info, ",") - 1) & vbCr & vbCr rstPubInfo.MoveNext Loop strMsg = strMsg & "Enter the ID of a logo to copy:" strPubID = InputBox(strMsg) ' Copy the logo to a variable in chunks rstPubInfo.Filter = "pub_id = '" & strPubID & "'" lngLogoSize = rstPubInfo!logo.ActualSize Do While lngOffset < lngLogoSize varChunk = rstPubInfo!logo.GetChunk(conChunkSize) varLogo = varLogo & varChunk lngOffset = lngOffset + conChunkSize Loop ' Get data from the user strPubID = Trim(InputBox("Enter a new pub ID:")) strPRInfo = Trim(InputBox("Enter descriptive text:")) 225 ' Add a new record, copying the logo in chunks rstPubInfo.AddNew rstPubInfo!pub_id = strPubID rstPubInfo!pr_info = strPRInfo lngOffset = ' Reset offset Do While lngOffset < lngLogoSize varChunk = LeftB(RightB(varLogo, lngLogoSize - _ lngOffset),conChunkSize) rstPubInfo!logo.AppendChunk varChunk lngOffset = lngOffset + conChunkSize Loop rstPubInfo.Update ' Show the newly added data MsgBox "New record: " & rstPubInfo!pub_id & vbCr & _ "Description: " & rstPubInfo!pr_info & vbCr & _ "Logo size: " & rstPubInfo!logo.ActualSize rstPubInfo.Close cn.Close End Sub Kế t nố i từ ASP Trong ác ví dụ saiu thự c hiệ n làm việ c vớ i SQL Server từ ASP, sử dụ ng ngơn ngữ lậ p trình VBScript, để làm đư ợ c ví dụ bạ n đọ c phả i có kiế n thứ c thiế t kế Web site (HTML) Thiế t kế form kế t nố i: Login SQL Server example

Login SQL Server

 

User name Password Server name    sub cmdLogin_Onclick 227 frmlogin.method="post" frmlogin.action="connect.asp" frmlogin.submit end sub Tậ p tin connect.asp: Là tậ p tin đư ợ c gọ i từ form login.asp, thự c hiệ n nhậ n tham số củ a form login.asp, kế t nố i đế n SQL Server Kết nối thành công

Ngày đăng: 13/12/2022, 12:08

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan