Kỹ Thuật - Công Nghệ - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Tài chính - Ngân hàng Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 1 LỜI NÓI ĐẦU Microsoft SQL Server 2019 là một hệ quản trị cở sở dữ liệu mô hình quan hệ (Relational Database Management System – RDBMS) đƣợc phát triển bởi Microsoft dùng để quản lý và lƣu trữ dữ liệu theo mô hình ClientServer. Đây là một trong các hệ quản trị cơ sở dữ liệu có đầy đủ các tính năng của một hệ quản trị cơ sở dữ liệu cơ bản, đƣợc nhiều nhà phát triển ứng dụng lựa chọn nhƣ một giải pháp lƣu trữ dữ liệu cho các ứng dụng. Học phần Hệ quản trị cơ sở dữ liệu SQL Server là một trong những học phần quan trọng trong chƣơng tr nh đào t o cho sinh vi n ngành CNTT. Hiện n y có rất nhiều giáo tr nh về Hệ quản trị cơ sở dữ liệu SQL Server nhƣng kh ng phù hợp với việc giảng d y và học tập t i trƣờng ĐHQN. Việc xây dựng giáo trình Hệ quản trị cơ sở dữ liệu SQL Server là sự cấp thiết, gi p cho sinh vi n có đƣợc tài liệu th m khảo đầy đủ cả l thuyết lẫn thực hành vê Microsoft SQL Server. Giáo tr nh đƣợc chia thành 7 chƣơng, bao gồm: Chƣơng 1: Giới thiệu về hệ quản trị SQL Server. Chƣơng 2: Các th o tác cơ bản trong SQL Server Chƣơng 3: Ngôn ngữ truy vấn có cấu trúc (SQL) trong Sql Server Chƣơng 4: Khung nhìn (view) và Bẫy sự kiện (Trigger) Chƣơng 5: Thủ tục lƣu trữ (stored procedure) và Hàm trong Sql Server Chƣơng 6: Bảo mật phân quyền ngƣời dùng trong SQL Server Chƣơng 7: Kết nối vào SQL Server từ các ngôn ngữ lập tr nh để xây dựng các ứng dụng li n qu n đến cơ sở dữ liệu Cuối mỗi chƣơng đều có các câu hỏi, bài tập thực hành và bài tập tự giải để sinh viên ôn luyện và tự kiểm tra kiến thức của mình. Mặc dù đã có nhiều cố gắng trong việc biên so n và cập nhật cho phù hợp với thực tế nhƣng giáo tr nh chắc chắn vẫn còn những h n chế và thiếu sót. Tác giả mong nhận đƣợc những ý kiến đóng góp từ đồng nghiệp và các b n sinh vi n để giáo tr nh ngày đƣợc hoàn thiện hơn với mục ti u đáp ứng tốt nhất cho ngƣời học. Quảng Nam, tháng 07 năm 2022 NHÓM TÁC GIẢ NGUYỄN THỊ MINH CHÂU Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 2 MỤC LỤC LỜI NÓI ĐẦU ...............................................................................................1 MỤC LỤC .....................................................................................................2 CHƠNG 1: GIỚI THIỆU VỀ HỆ QUẢN TRỊ SQL SERVER 2019 ............ 8 1.2. Tổng quan về Hệ quản trị CSDL SQL Server 2019 ................................... 8 1.2.1. Giới thiệu SQL Server ..............................................................................8 1.2.2. Các thành phần củ SQL Server 2019 ....................................................10 1.2.3. M h nh chung củ SQL Server .............................................................11 1.2.3.1. Kết nối trên Desktop ........................................................................12 1.2.3.2. Kết nối qua m ng diện rộng theo mô hình ClientServer ................12 1.2.3.3. Kết nối ứng dụng trên m ng Internet ...............................................13 1.2.4. Các lo i CSDL có trong hệ quản trị CSDL SQL Server 2019 ...............14 1.2.5. Các đặc điểm củ hệ quản trị CSDL SQL Server 2019 .........................15 1.2.6. Hệ thống tập tin ......................................................................................15 1.2.7. Các đối tƣợng b n trong củ SQL Server ..............................................16 1.3. Các ấn bản của SQL Server 2019 ............................................................... 18 1.4. Giới thiệu về cài đặt MS SQL Server phiên bản 2019 .............................. 19 1.4.1. Các y u cầu về hệ thống .........................................................................20 1.4.2. Các bƣớc cài đặt .....................................................................................20 1.4.2.1. Cài đặt Microsoft SQL Server 2019 Express. ..................................20 1.4.2.2. Cài đặt SQL Server Management Studio(SSMS) ........................22 1.4.2.3. Cấu hình SQL Server Express 2019 ................................................24 CHƠNG 2: CÁC THAO TÁC CƠ BẢN TRONG SQL SERVER ............. 28 2.1. Các kiểu dữ liệu trong SQL Server ............................................................ 28 2.1.1. Các kiểu dữ liệu k tự ............................................................................28 2.1.2. Các kiểu dữ liệu kiểu số .........................................................................28 2.1.3. Các kiểu dữ liệu ngày tháng ...................................................................29 2.1.4. Kiểu dữ liệu luận l ................................................................................29 2.1.5. Các kiểu dữ liệu d ng nhị phân ..............................................................29 2.2. Các thao tác cơ bản trên giao diện ngƣời dùng (UI) của SQL Server .... 29 2.2.1. Đăng nhập vào SQL Server. ...................................................................29 2.2.2. T o, xó CSDL .......................................................................................31 2.2.3. Cơ sở dữ liệu minh họ ..........................................................................32 2.2.4. T o bảng dữ liệu mới và các thuộc tính .................................................32 2.2.5. Xó , sử bảng .........................................................................................35 Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 3 2.2.5.1. Xó bảng ..........................................................................................35 2.2.5.2. Sửa bảng ...........................................................................................36 2.2.6. T o d t b se Di gr m (m h nh CSDL) ................................................37 2.2.7. Mở cử sổ viết câu truy vấn (SQL Editor) .............................................38 2.3. Sao lƣu và phục hồi dữ liệu (Backup and Restore) ................................... 39 2.3.1. Các l do phải thực hiện B ckup ............................................................40 2.3.2. Các lo i B ckup ......................................................................................40 2.3.2.1. Full backup và Differential backup ..................................................40 2.3.2.2. Transaction log backup ....................................................................41 2.3.3. Các th o tác thực hiện quá tr nh B ckup và Restore CSDL trong SQL Server .........................................................................................................41 2.3.3.1. S o lƣu (B ckup)..............................................................................41 2.3.3.2. Phục hồi (Restore) ............................................................................44 2.4. Bài tập chƣơng 2: ......................................................................................... 46 2.4.1. Câu hỏi n tập .........................................................................................46 2.4.2. Bài tập thực hành: ...................................................................................46 CHƠNG 3: NGÔN NGỮ TRUY VẤN CÓ CẤ U TRÚC (SQL) TRONG SQL SERVER ................................................................................................. 50 3.1. Ngôn ngữ truy vấn có cấu trúc (SQL) ........................................................ 50 3.1.1. SQL là ng n ngữ củ cơ sở dữ liệu qu n hệ ..........................................50 3.1.2. V i trò củ ng n ngữ SQL......................................................................51 3.1.3. Giới thiệu sơ lƣợc về Tr ns ct SQL (T-SQL) ........................................52 3.2. Cú pháp của T-SQL ..................................................................................... 54 3.2.1. Đặt t n – Identifiers ................................................................................54 3.2.2. Biến (V ri bles)......................................................................................55 3.2.3. Hàm (Function) ......................................................................................55 3.2.3.1. Các lo i hàm .....................................................................................55 3.2.3.2. Các hàm SQL Server định nghĩ sẳn ...............................................56 3.2.4. Các toán tử (Oper tors) ..........................................................................63 3.2.5. Các thành phần điều khiển (Control of flow) .........................................64 3.2.6. Ch thích (Comment) .............................................................................64 3.2.7. Giá trị NULL ..........................................................................................64 3.3. Ngôn ngữ định nghĩa dữ liệu – DDL .......................................................... 64 3.3.1. T o bảng .................................................................................................65 3.3.2. Các lo i ràng buộc ..................................................................................67 3.3.2.1. Ràng buộc CHECK ..........................................................................67 3.3.2.2. Ràng buộc khóa chính PRIMARY KEY .........................................68 Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 4 3.3.2.3. Ràng buộc FOREIGN KEY .............................................................69 3.3.2.4. Ràng buộc UNIQUE ........................................................................72 3.3.2.5. Ràng buộc DEFAULT .....................................................................72 3.3.3. Sử đổi định nghĩ bảng .........................................................................73 3.3.4. Xó bảng .................................................................................................75 3.4. Ngôn ngữ thao tác dữ liệu – DML .............................................................. 75 3.4.1. Th m, cập nhật và xó dữ liệu................................................................76 3.4.1.1. Thêm dữ liệu ....................................................................................76 3.4.1.2. Cập nhật dữ liệu ...............................................................................78 3.4.1.3. Xó dữ liệu .......................................................................................78 3.4.2. Câu lệnh truy xuất dữ liệu SELECT ......................................................80 3.4.2.1. Câu lệnh truy vấn d ng tổng quát ....................................................80 3.4.2.2. Danh sách chọn trong câu lệnh SELECT.........................................81 3.4.2.3. Mệnh đề FROM ...............................................................................84 3.4.2.4. Mệnh đề WHERE ............................................................................85 3.4.2.5. Mệnh đề ORDER BY - Sắp xếp kết quả truy vấn ...........................88 3.4.2.6. Mệnh đề GROUP BY ......................................................................89 3.4.2.7. Thống kê dữ liệu ..............................................................................90 3.4.2.8. Mệnh đề HAVING ch định điều kiện trong hàm gộp.....................92 3.4.3. Phép hợp (UNION) ................................................................................92 3.4.4. Các lo i phép kết nối trong SQL Server: ...............................................94 3.4.4.2. Phép kết nối trong (Inner Join).........................................................96 3.4.4.3. Phép kết nối ngoài (Outer Join) .......................................................98 3.4.4.4. Phép kết nối tích hợp (CROSS JOIN)............................................101 3.4.4.5. Phép tự kết kết nối (Self Join) ........................................................101 3.4.5. Truy vấn con (Subquery) ......................................................................101 3.5. Ngôn ngữ điều khiển dữ liệu ..................................................................... 103 3.5.1. Cấp quyền truy cập – câu lệnh Gr nt ...................................................103 3.5.2. Thu hồi quyền truy cập – Câu lệnh Deny .............................................103 3.5.3. Thực hiện l i th o tác phân quyền – Câu lệnh Revoke C pháp: ........104 3.6. Bài tập chƣơng 3 ......................................................................................... 104 3.6.1. Câu hỏi n tập. ......................................................................................104 3.6.2. Bài tập thực hành: .................................................................................104 3.6.3. Bài tập tự giải .......................................................................................113 CHƠNG 4: KHUNG NHÌN (VIEW) VÀ BẪY SỰ KIỆN (TRIGGER) .. 115 4.1. Khung nhìn (View) ..................................................................................... 115 4.1.1. Giới thiệu ..............................................................................................115 Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 5 4.1.2. T o khung nh n .....................................................................................116 4.1.2.1. T o khung nhìn bằng công cụ có sẳn của SQL Server 2019 .........116 4.1.2.2. T o khung nhìn bằng câu lệnh .......................................................116 4.1.3. Sử cấu tr c khung nh n .......................................................................120 4.1.4. Xóa khung nhìn ....................................................................................121 4.1.5. Sử dụng khung nh n để cập nhật dữ liệu ..............................................121 4.2. Bẫy sự kiện ( Trigger) ................................................................................ 122 4.2.1. Định nghĩ ............................................................................................122 4.2.2. Các đặc điểm củ trigger ......................................................................122 4.2.3. Các trƣờng hợp sử dụng trigger............................................................123 4.2.4. Các khả năng củ trigger ......................................................................124 4.2.5. T o Trigger ...........................................................................................124 4.2.5.1. Cú pháp ..........................................................................................124 4.2.5.2. Các ví dụ minh họa ........................................................................127 4.2.6. Kích ho t trigger dự tr n sự th y đổi dữ liệu tr n cột ........................130 4.2.7. Sử dụng trigger và Gi o tác (TRANSACTION) ..................................131 4.2.7.1. Khái niệm về giao tác.....................................................................131 4.2.7.2. Sử dụng trigger và Giao tác ...........................................................132 4.2.8. Trigger cho ng n ngữ định nghĩ dữ liệu (DDL Trigger ) ...................133 4.2.9. Kích ho t bỏ kích ho t Trigger (ENABLE DISABLE TRIGGER) ..134 4.2.10. Sử đổi Trigger ...................................................................................135 4.2.11. Xóa Trigger ........................................................................................135 4.3. Bài tập chƣơng 6 ......................................................................................... 136 4.3.1. Câu hỏi n tập .......................................................................................136 4.3.2. Bài tập thực hành ..................................................................................136 4.3.3. Bài tập tự giải .......................................................................................140 CHƠNG 5: THỦ TỤC LU TRỮ (STORED PROCEDURE) VÀ HÀM (FUNCTION) ................................................................................................ 143 5.1. Thủ tục lƣu trữ ........................................................................................... 143 5.1.1. Giới thiệu ..............................................................................................143 5.1.1.1. Định nghĩ thủ tục. .........................................................................143 5.1.1.2. Phân lo i thủ tục:............................................................................144 5.1.2. Các lợi ích khi sử dụng thủ tục lƣu trữ .................................................145 5.1.3. T o thủ tục lƣu trữ ................................................................................147 5.1.4. Các t o thác tr n thủ tục lƣu trữ ...........................................................150 5.1.4.1. Lời gọi thủ tục ................................................................................150 5.1.4.2. Biến trong thủ tục lƣu trữ ...............................................................151 Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 6 5.1.4.3. Giá trị trả về trong thủ tục lƣu trữ ..................................................152 5.1.4.4. Sử dụng lệnh RETURN .................................................................153 5.1.4.5. Th m số với giá trị mặc định .........................................................153 5.1.5. Sử đổi thủ tục ......................................................................................154 5.1.6. Xó thủ tục lƣu trữ ...............................................................................154 5.2. Hàm do ngƣời dùng định nghĩa ( User Defined Function) ..................... 155 5.2.1. Khái niệm .............................................................................................155 5.2.2. Những h n chế khi sử dụng hàm do ngƣời dùng định nghĩ ................155 5.2.3. Phân lo i ...............................................................................................155 5.2.3.2. Hàm nội tuyến - Inline UDF ..........................................................158 5.2.3.3. Hàm bao gồm nhiều câu lệnh bên trong – Multi statement UDF ..159 5.2.4. Th y đổi hàm ........................................................................................160 5.2.5. Xóa hàm................................................................................................160 5.3. Bài tập chƣơng 5 ......................................................................................... 160 5.3.1. Câu hỏi n tập .......................................................................................160 5.3.2. Bài tập thực hành ..................................................................................161 5.3.3. Bài tập tự giải .......................................................................................170 CHƠNG 6: BẢO MẬT PHÂN QUYỀN NGỜ I DÙNG TRONG SQL SERVER........................................................................................................ 171 6.1. Bảo mật trong SQL Server ........................................................................ 171 6.1.1. Khái niệm .............................................................................................171 6.1.2. Giới thiệu về cơ chế bảo mật trong SQL Server ..................................172 6.1.3. Mã hó dữ liệu trong SQL Server ........................................................173 6.1.4. Các lỗ hổng bảo mật thƣờng gặp trong SQL Server ............................177 6.2. Phân quyền ngƣời dùng trong SQL Server ............................................. 180 6.2.1. Tài khoản đăng nhập vào SQL Server..................................................180 6.2.2. Quản l ngƣời dùng ..............................................................................181 6.2.3. T o ngƣời dùng ....................................................................................183 6.2.3.1. T o Login .......................................................................................183 6.2.3.2. T o USER ......................................................................................185 6.2.4. Cấp phát quyền cho ngƣời dùng ...........................................................187 6.2.5. Quản l Role .........................................................................................187 6.2.6. Thêm thành viên cho Role ....................................................................190 6.2.7. Đối tƣợng và quyền tr n đối tƣợng ( D t b se Objects nd Object Permission) ..............................................................................................190 6.2.7.1. Đối tƣợng .......................................................................................190 6.2.7.2. Quyền .............................................................................................190 Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 7 6.2.8. Cho phép và hủy bỏ quyền tr n đối tƣợng ...........................................191 6.3. Bài tập chƣơng 6 ......................................................................................... 191 6.3.1. Câu hỏi n tập .......................................................................................191 6.3.2. Bài tập thực hành ..................................................................................191 CHƠNG 7: KẾT NỐI VÀO SQL SERVER TỪ CÁC NGÔN NGỮ LẬP TRÌNH ĐỂ XÂY DỰNG CÁC ỨNG DỤNG LIÊN QUAN ĐẾN CSDL... 192 7.1. Cấu hình Microsoft SQL Server ............................................................... 192 7.1.1. Cho phép tiếp nhận các kết nối từ x tr n SQL Server ........................193 7.1.2. Kích ho t dịch vụ SQL Server Browser ...............................................193 7.1.3. T o các ngo i lệ tr n Windows Firew ll ..............................................194 7.2. Kết nối vào SQL Server trong các ngôn ngữ lập trình ........................... 195 7.2.1. Kết nối vào SQL Server trong các ng n ngữ lập tr nh C ...................195 7.2.2. Xây dựng lớp (cl ss) truy cập vào CSDL trong ng n ngữ C .............197 7.3. Bài tập chƣơng 7 ......................................................................................... 200 7.3.1. Câu hỏi ôn tập .......................................................................................200 7.3.2. Bài tập thực hành ..................................................................................200 PHỤ LỤC ..................................................................................................208 BÀI TẬP THỰC HÀNH ...........................................................................208 PHẦN KẾT LUẬN – KIẾN NGHỊ ...........................................................216 PHẦN TÀI LIỆU THAM KHẢO .............................................................216 Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 8 CHƠNG 1: GIỚI THIỆU VỀ HỆ QUẢN TRỊ SQL SERVER 2019 Mục tiêu chƣơng 1: Trong chƣơng này, tr nh bày một cách khái quát về hệ quản trị cơ sở dữ liệu Microsoft SQL Server. Các chức năng mà một hệ quản trị cơ sở dữ liệu cần phải có. Nội dung chính củ chƣơng này gồm: - Giới thiệu hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2019. - Các thành phần của Microsoft SQL Server 2019 - Mô hình Microsoft SQL Server 2019 - Giới thiệu các ấn bản của SQL Server 2019 - Hƣớng dẫn cài đặt MS SQL Server phiên bản 2019 ấn bản Express Edition. 1.2. Tổng quan về Hệ quản trị CSDL SQL Server 2019 1.2.1. Giới thiệu SQL Server Hình 1-1: Mô hình SQL Server Microsoft SQL Server là một lo i phần mềm đƣợc phát triển bởi Microsoft, nó là một hệ quản l cơ sở dữ liệu quan hệ đối tƣợng (Relational Database Management System - RDBMS) có chức năng chính là lƣu trữ, truy xuất dữ liệu và thông qua câu lệnh SQL nó có thể tr o đổi dữ liệu với các ứng dụng tr n máy Client. Trong m i trƣờng ClientServer cơ sở dữ liệu đƣợc lƣu tr n máy Server, ngƣời dùng truy cập dữ liệu từ các máy Client qua một hệ thống m ng. SQL Server hỗ trợ nhiều chức năng quản trị dữ liệu trên môi trƣờng nhiều ngƣời dùng theo kiểu ClientServer. SQL Server chịu trách nhiệm đáp ứng các yêu cầu truy cập dữ liệu từ các máy Client, xử lý và chuyển kết quả về cho máy Server. SQL Server có một hệ thống bảo mật nhiều cấp giúp cho việc quản lý và bảo mật dữ liệu thuận tiện và chặt chẽ. Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 9 SQL Server có một số đặc tính sau: Cho phép quản trị một hệ CSDL lớn, có tốc độ xử lý dữ liệu nh nh đáp ứng yêu cầu về thời gian. Cho phép nhiều ngƣời cùng khai thác trong một thời điểm đối với một CSDL (tối đ 30000 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 mật độc lập của SQL Server. Hỗ trợ trong việc triển khai CSDL phân tán và phát triển ứng dụng trên 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 các ứng dụng (Visual Basic, C, C++, C, ASP, ASP.NET, XML,...). Sử dụng câu lệnh truy vấn dữ liệu Transact-SQL: là ngôn ngữ SQL mở rộng dựa trên SQL chuẩn của ISO (International Organization for Standardization) và ANSI (American National Standards Institute). SQL Server có khả năng cung cấp đầy đủ các công cụ cho việc quản lý từ giao diện GUI đến sử dụng ngôn ngữ cho việc truy vấn SQL. Cụ thể nhƣ s u: T-SQL là một trong những lo i ngôn ngữ thuộc quyền sở hữu của Microsoft và đƣợc gọi với cái tên Transact-SQL. Nó thƣờng cung cấp thêm rất nhiều cho các khả năng kh i báo biến, thủ tục lƣu trữ và xử lý ngo i lệ,... SQL Server Management Studio là một lo i công cụ giao diện chính cho máy chủ cơ sở của chính dữ liệu SQL, th ng thƣờng thì nó hỗ trợ cho cả môi trƣờng 64 bit và 32 bit. SQL Server đƣợc tối ƣu để có thể ch y tr n m i trƣờng cơ sở dữ liệu rất lớn (Very L rge D t b se Environment) l n đến Tera-Byte và có thể phục vụ cùng l c cho hàng ngàn ngƣời sử dụng (user). SQL Server có thể kết hợp ăn ý" với các server khác nhƣ Microsoft Internet Inform tion Server (IIS), E- Commerce Server, Proxy Server.... SQL Server có các ƣu điểm sau: Mở rộng khả năng quản l dữ liệu của doanh nghiệp. Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 10 Cải thiện hiệu quả làm việc của lập trình viên. Hỗ trợ xữ lý thông minh các giao tác. Các chức năng hỗ trợ phân quyền bảo mật. SQL Server 2019 là bộ phận quản l cơ sở dữ liệu, đƣợc xây dựng dựa trên khái niệm trí tuệ nhân t o nhằm t o điều kiện thuận lợi, cải tiến dịch vụ cơ sở dữ liệu, bảo mật và giảm bớt các khó khăn gặp phải khi phát triển các ứng dụng và lƣu trữ dữ liệu. SQL Server 2019 đƣợc tích hợp với Cloud, điều này đồng nghĩ các tổ chức có thể hƣởng lợi từ tính năng bảo mật cao, vừ đồng bộ đƣợc dữ liệu trên nhiều máy tính và các thiết bị hiện đ i khác. SQL Server 2019 t o ra nền tảng dữ liệu hợp nhất đi kèm với Hệ thống tệp phân tán Ap che Sp rk và H doop (HDFS) để trở n n th ng minh hơn với tất cả dữ liệu. 1.2.2. Các thành phần của SQL Server 2019 Các thành cơ bản trong SQL Server gồm có: Reporting Services, Database Engine, Integration Services, Notification Services, Full Text Se rch Service,… Tất cả kết hợp với nhau t o thành một giải pháp hoàn ch nh giúp cho việc phân tích và lƣu trữ dữ liệu trở nên dễ dàng hơn. 1. D t b se Engine: Đây là phần lõi của SQL Server nó có chức năng chứa dữ liệu dƣới d ng các bảng và hỗ trợ các kết nối đến CSDL. Ngoài ra, nó còn có khả năng tự điều ch nh ví dụ: trả l i tài nguyên cho hệ điều hành khi một user log off và yêu cầu thêm các tài nguyên của máy khi cần. 2. Integration Services: là tập hợp các đối tƣợng lập trình và các công cụ đồ họa cho việc sao chép, di chuyển và chuyển đổi dữ liệu. Khi làm việc trong một công ty lớn thì dữ liệu đƣợc lƣu trữ ở nhiều nơi khác nh u nhƣ đƣợc chứa trong: Or cle, SQL Server, DB2, Microsoft Access,… và chắc chắn sẽ có nhu cầu di chuyển dữ liệu giữa các server này. Ngoài ra, việc muốn định d ng dữ liệu trƣớc khi lƣu vào d t b se, Integration Services sẽ giúp giải quyết đƣợc công việc này dễ dàng. 3. An lysis Services: Đây là một dịch vụ phân tích dữ liệu của Microsoft. Công cụ này giúp việc phân tích dữ liệu một cách hiệu quả và dễ dàng bằng cách dùng kỹ thuật khai thác dữ liệu – datamining và khái niệm hình khối nhiều chiều – multi dimendion cubes. Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 11 4. Notification Services: Dịch vụ thông báo này là nền tảng cho sự phát triển và triển khai các ứng dụng so n và gửi th ng báo đến hàng ngàn ngƣời đăng k sử dụng trên nhiều lo i thiết bị khác nhau. 5. Reporting Services: là một công cụ t o, quản lý và triển khai báo cáo trên server và client. Ngoài ra, nó còn là nền tảng cho việc phát triển và xây dựng các ứng dụng báo cáo. 6. Full Text Search Service: là một thành phần đặc biệt trong việc truy vấn và đánh ch mục dữ liệu văn bản không cấu tr c đƣợc lƣu trữ trong các cơ sở dữ liệu SQL Server. 7. Service Broker: là dịch vụ cân bằng tải cho SQL Server. Nó giúp cho CSDL thực hiện đƣợc nhiều thao tác với dữ liệu bằng cách dùng hàng đợi lƣu dữ liệu t m thời. Hình 1-2: Các thành phần của SQL Server 1.2.3. Mô hình chung của SQL Server SQL Server là hệ quản trị CSDL ho t động theo mô hình ClientServer, có thể thực hiện tr o đổi dữ liệu theo nhiều mô hình m ng khác nhau, nhiều giao thức và phƣơng thức truyền tin khác nhau. Hình 1-3: Mô hình SQL Server trên hệ thống mạng Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 12 Trong sơ đồ trên thể hiện ba kiểu kết nối ứng dụng đến SQL Server: Kết nối trên Desktop: Có thể kết nối trên cùng máy chủ chứa CSDL SQL Server hoặc kết nối qua m ng nội bộ. Kết nối qua m ng diện rộng: Th ng qu đƣờng truyền m ng diện rộng kết nối đến máy chủ CSDL SQL Server. Kết nối qua m ng Internet: Các ứng dụng kết nối thông qua Internet, sử dụng dịch vụ webserver IIS thực hiện ứng dụng trên Internet (ASP, JSP, ASP.net,…) 1.2.3.1. Kết nối trên Desktop Tr n Desktop m h nh SQL Server đƣợc thể hiện nhƣ s u: Hình 1-4: Mô hình SQL Server trên Desktop Trên một Desktop có thể có nhiều ứng dụng, mỗi ứng dụng có thể thực hiện thao tác với nhiều CSDL. 1.2.3.2. Kết nối qua mạng diện rộng theo mô hình ClientServer Trong mô hình clientserver, ứng dụng tr o đổi với SQL Server theo sơ đồ sau: Hình 1-5: Mô hình ClientServer của SQL Server Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 13 Nhƣ sơ đồ trên nhận thấy SQL Server cho phép các ứng dụng kết nối theo các phƣơng thức sau: OLE DB, ODBC, DB-Library, Embedded SQL, đây là các phƣơng thức kết nối hữu ích cho những nhà phát triển ứng dụng. Chi tiết hơn t có sơ đồ sau: Hình 1-6: Mô hình trao đổi dữ liệu với các ứng dụng Trong sơ đồ trên cho thấy, SQL Server có thể thực hiện tr o đổi dữ liệu với các ứng dụng theo nhiều giao thức truyền tin khác nhau (TCPIP, NetBeUI, N mes Pipes,…), các ứng dụng có thể sử dụng nhiều phƣơng thức kết nối khác nhau (OLE DB, ODBC, DB-Library). 1.2.3.3. Kết nối ứng dụng trên mạng Internet Các ứng dụng kết nối với SQL Server trên m ng Internet, các máy chủ SQL Server sẽ đƣợc quản lý thông qua các hệ thống máy chủ m ng, hệ điều hành m ng, các ứng dụng (COM+, ASP, IIS) sẽ thông qua máy chủ m ng kết nối đến SQL Server, mô hình này có thể áp dụng cho các m ng nội bộ, diện rộng, ứng dụng đƣợc khai thác trên trình duyệt Internet. Xem xét mô hình dƣới đây: Hình 1-7:Mô hình kết nối các ứng dụng Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 14 1.2.4. Các loại CSDL có trong hệ quản trị CSDL SQL Server 2019 SQL Server hỗ trợ các lo i CSDL sau: 1. Database system ( CSDL hệ thống): CSDL hệ thống ( system database) là lo i CSDL đƣợc t o bởi SQL Server, nó dùng để lƣu trữ các th ng tin về chính bản thân SQL Server th ng tin về các CSDL do ngƣời dùng định nghĩ . SQL Server cung cấp các CSDL hệ thống s u: M ster: Lƣu các th ng tin của hệ thống của SQL Server. Msdb: Đƣợc dùng bởi SQL Server để lƣu các th ng tin cảnh báo. Resource: Là một CSDL ch đọc. Nó chứ các đối tƣợng hệ thống của SQL Server. Tempdb: Lƣu giữ các đối tƣợng t m các kết quả trung gi n. 2. Database Snapshots (CSDL Snapshots) D t b se sn pshot là tính năng đƣợc giới thiệu từ SQL Server 2015. Tính năng này cung cấp khả năng re d-only, sticview cho database SQL. Nếu ngƣời dùng thao tác, ch y lệnh sai khiến database gặp lỗi, source database sẽ chuyển đổi l i tr ng thái khi sn pshot đƣợc t o ra. SQL Server Management Studio (SSMS) không hỗ trợ t o snapshot mà buộc phải sử dụng câu lệnh T- SQL làm việc này. u điểm của snapshot: Cung cấp phiên bản copy của dữ liệu một cách thuận tiện và read- only Khi đƣợc truy vấn, không bị suy giảm hiệu suất Snapshot file nhẹ và khởi t o nhanh Nhƣợc điểm của snapshot: Không thể t o snapshot backup Snapshot phải tồn t i tr n cùng d t b se server nhƣ là source của dataabase Ngƣời dùng mới không thể đƣợc gán quyền truy cập dữ liệu trong snapshot Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 15 3. User-defined database (CSDL do ngƣời dùng định nghĩ ) CSDL do ngƣời dùng định nghĩ (user defined database) là lo i CSDL do ngƣời dùng t o r . Ch ng lƣu trữ các th ng tin c ng nhƣ dữ liệu củ ngƣời sử dụng. 1.2.5. Các đặc điểm của hệ quản trị CSDL SQL Server 2019 Microsoft SQL Server có các đặc điểm sau: Dễ cài đặt (Easy Installation): SQL Server cung cấp các công cụ quản trị và phát triển để cho ngƣời sử dụng dễ dàng cài đặt, sử dụng và quản l hệ thống. Tích hợp với Internet (Integr tion with Internet): SQL Server hỗ trợ kiểu dữ liệu XML, là một kiểu dữ liệu, một chuẩn trong việc tr o đổi dữ liệu trên Internet. Khả năng mở rộng c o: SQL Server đƣợc tối ƣu để có thể ch y tr n m i trƣờng cơ sở dữ liệu rất lớn (Very L rge D t b se Environment) l n đến Tera- Byte và có thể phục vụ cùng l c cho hàng ngàn ngƣời sử dụng. Hỗ trợ kiến tr c ClientServer: Ứng dụng có thể ch y trên máy khách (máy Client), truy cập dữ liệu đƣợc lƣu trữ trên chủ (máy Server). Server có nhiệm vụ xử lý các yêu cầu và trả l i kết quả cho Client. Tƣơng thích với nhiều hệ điều hành (Oper ting System Comp tibility): Có thể cài đặt trên hầu hết các hệ điều hành từ windows 7 trở lên. Đối với SQL Server 2019 hỗ trợ cả windowns và Linux Ngoài r , SQL Server còn hỗ trợ một số đặc tính khác nhƣ hỗ trợ c ng cụ English Query để ngƣời phát triển hệ thống có thể truy vấn dữ liệu thân thiện hơn; cung cấp dịch vụ Microsoft Search Services có khả năng t m kiếm rất m nh, đặc biệt thích hợp cho phát triển ứng dụng Web; SQL Server tƣơng tích với ngôn ngữ SQL chuẩn (ANSIISO SQL-92); có công cụ hỗ trợ s o lƣu dữ liệu nh nh chóng, tự động; Có tài liệu hƣớng dẫn trực tuyến. Kiến trúc một CSDL theo HQT CSDL SQL Server 1.2.6. Hệ thống tập tin Trong SQL Server, mọi CSDL đƣợc lƣu trữ thông qua một nhóm các file (tậ p tin). Các CSDL riêng biệt có các file riêng củ ch ng và các th ng tin về dữ li ệu th ng tin về nhật k th o tác (log) đƣợc lƣu trong các file khác nh u. Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 16 Hình 1-8: Hệ thống tập tin trong SQL Server Có 3 lo i file của một CSDL torng SQL Server: File dữ liệu chính (Primary data files): Chứa thông tin hệ thống và một số đối tƣợng chính của database. Mọi dữ liệu củ CSDL đƣợc chứ trong file này. Mỗi CSDL ch có 1 file dữ liệu chính có phần mở rộng th ng thƣờng là .MDF. File dữ liệu dự phòng (Second ry d t files): File dự phòng chứ dữ liệu dự phòng khi File dữ liệu chính gặp sự cố. File này do ngƣời dùng t o thêm (nếu cần). Đối với các CSDL lớn không chứ đủ trên một ổ đĩ , khi đó cần có các file phụ lƣu tr n các ổ đĩ khác. Các file dữ liệu phụ tiếp theo nên có phần mở rộng là NDF để phân biệt. Các file dữ liệu đƣợc lƣu theo từng nhóm (File Groups). Mỗi CSDL có một nhóm file chính (PRIMARY) chứa file dữ liệu chính và một số file dữ liệu phụ. File log (Log files): File log chứ tất cả các th ng tin về nhật ký làm việc c ng nhƣ tất cả các th ng tin cần thiết cho việc phục hồi CSDL. Có ít nhất một file log cho mỗi CSDL. File log có phần mở rộng là .ldf. 1.2.7. Các đối tƣợng bên trong của SQL Server STT Đối tƣợng M tả 1. Table Bảng trong CSDL lƣu trữ dữ liệu dƣới d ng một tập các hàng các cột. 2. Data Type Ch định các kiểu dữ liệu đƣợc lƣu trữ trong các cột dữ liệu, th m số và các biến. Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 17 3. View Views đƣợc t o r bằng các sử dụng câu lệnh SELECT, nó dùng để t o r nhƣng góc nh n khác nh u củ cùng một tập dữ liệu. 4. Store procedure Là một tập hợp các phát biểu SQL đƣợc bi n dịch trƣớc đƣợc lƣu l i dƣới một cái t n, các lần sử dụng s u ch cần cung cấp t n củ Stored Procedure, SP là một đơn vị xử l trong CSDL. 5. Function Hàm là một đo n code nó thực hiện một tác vụ cụ thể. 6. Index Là một đối tƣợng trong CSDL cung cấp cơ chế truy cập nh nh vào dữ liệu trong bảng dự tr n các khó đã đƣợc đánh ch mục củ nó. 7. Constraint Là một thuộc tính có thể đƣợc thiết lập tr n một cột hoặc một tập các cột trong bảng để đảm bảo tính toàn vẹn dữ liệu. 8. Trigger Là một d ng SP đặc biệt, nó đƣợc gọi thực thi một cách tự động khi có một sự kiện nào đó xảy r tr n bảng dữ liệu (th m xó sử ... dữ 9. Login Mỗi ngƣời sử dụng phải có một định d nh đăng nhập để kết nối vào SQL Server. SQL Server chấp nhận 2 cơ chế đăng nhập: Đăng nhậpth ng qu tài khoản củ Windows (Windows Authentic tion) và Đăng nhập th ng qu tài khoản củ SQL Server (SQL Server Authentication). 10. User Tài khoản ngƣời dùng định d nh một ngƣời dùng trong CSDL. Tất cả các quyền th o tác và quyền sở hữu các đối tƣợng trong CSDL đƣợc điều khiển bởi tài khoản ngƣời dùng. 11. Role Đƣợc dùng để chi các ngƣời dùng thành các nhóm và áp dụng các phân quyền giống nh u l n nhóm này. Các quyền củ nhóm sẽ đƣợc áp dụng tự động khi có một ngƣời dùng mới trở thành thành vi n củ nhóm Bảng 1: Các đối tƣợng SQL Server quản lý. Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 18 1.3. Các ấn bản của SQL Server 2019 SQL Server 2019 cung cấp một nền tảng cơ sở dữ liệu bảo mật, hiệu suất cao và thông minh cho dữ liệu doanh nghiệp. SQL Server 2019 có 3 phiên bản chính gồm SQL Server 2019 Express, Standard và Enterprise 1. SQL Server 2019 Standard Phiên bản d t b se đầy đủ tính năng với Big Data Cluster cho các ứng dụng tầm trung và kho dữ liệu Các tính năng chính: Hỗ trợ CPU tới 24 core Hỗ trợ tới 128GB RAM SQL Server 2019 Big Data Cluster Trực quan dữ liệu qua PolyBase Tăng cƣờng hiệu suất bộ nhớ trong Tự động điều ch nh database thông minh Azure Data Studio có hỗ trợ notebook 2. SQL Server 2019 Enterprise Phiên bản database cao cấp với hiệu năng và trí th ng minh hàng đầu cho các ứng dụng quan trọng Các tính năng chính: Không giới h n số core CPU Không giới h n số RAM Hiệu năng và độ ổn định hàng đầu Nhiều lợi ích cho ảo hóa Kho dữ liệu tới quy mô hàng petabyte Tính khả dụng cao trên Windows và Linux Chi phí sở hữu thấp Kết nối với Power BI Report Server. 4. SQL Server 2019 Express Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 19 Phiên bản database miễn phí, gọn nhẹ dành cho việc xây dựng các web nhỏ và ứng dụng di động Các tính năng chính: Hỗ trợ tới CPU 4 core Hỗ trợ tới 1 GB RAM Bộ nhớ tích hợp OLTP và Cloumnstore Mã hó đầu cuối với các lớp vỏ bảo mật Đầy đủ vùng bề mặt T-SQL Hỗ trợ các container Linux và Windows Hỗ trợ giải mã UTF-8 Phân lo i và kiểm tra dữ liệu Ngoài các ấn bản tr n, Microsoft c ng có 2 ấn bản SQL Server khác, gồm: SQL Server 2019 Web: Ấn bản web này là tùy chọn chi phí thấp cho các máy chủ lƣu trữ web và VAP Web để cung cấp khả năng mở rộng, chi phí thấp và khả năng quản trị cho các web quy mô nhỏ tới lớn. SQL Server 2019 Developer: Ấn bản dành cho các lập trình viên xây dựng mọi lo i ứng dụng trên SQL Server. Nó gồm tất cả các tính năng của bản Enterprise. Tuy nhiên bản quyền ch sử dụng cho hệ thống devtest, không phải máy chủ cho sản phẩm. Phiên bản SQl Server 2019 Developer hoàn toàn miễn phí. 1.4. Giới thiệu về cài đặt MS SQL Server phiên bản 2019 SQL Server 2019 là nền tảng quản l cơ sở dữ liệu hàng đầu trong ngành củ Microsoft, đã đƣợc công ty phát hành vào ngày 4112019. SQL Server 2019 cung cấp nhiều cải tiến khác nhau cho công cụ cơ sở dữ liệu cốt lõi và tích hợp với một số nền tảng Big D t nhƣ Ap che Sp rk, D t L ke, H doop Distributed File System (HDFS), học máy... Bản phát hành này đƣợc coi là một bƣớc nhảy vọt trong việc tích hợp cơ sở dữ liệu với các tính năng và c ng nghệ thú vị khác. Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 20 Chúng ta có thể cài đặt SQL Server 2019 trên Windows, Linux hay Docker container và trong giáo trình này sẽ hƣớng dẫn cách cài đặt SQL Server 2019 trên Windows. 1.4.1. Các yêu cầu về hệ thống Để cài đặt Microsoft SQL Server 2019 hệ thống cần những yêu cầu sau: Os : Windows 7 (32 bit hoặc 64 bit) trở lên. CPU : Pentium IV trở lên. Ram : Ít nhất 1GB. Ổ đĩ trống: Ít nhất 10GB. . NET Framework: Phiên bản 3.5 SP1 . Lƣu trƣớc khi cài đặt SQL SERVER Trƣớc khi cài đặt Microsoft SQL Server cần chú ý: - Cài SQL Server trƣớc khi cài Microsoft Visual Studio để tránh xung đột. - Phải cài .Net Framework 3.5 trƣớc khi mở file cài đặt SQL Server để tránh bị lỗi. - Phải cài SQL Server 2019 trƣớc khi cài Red Gate SQL(SQL Toolbelt). 1.4.2. Các bƣớc cài đặt 1.4.2.1. Cài đặt Microsoft SQL Server 2019 Express. Bƣớc 1: Tải Microsoft SQL Server 2019 Express: Có thể vào đƣờng dẫn s u để tải Microsoft SQL Server 2019 Express. https:www.microsoft.comen-ussql-serversql-server-downloads ) Bƣớc 2: T m đến Express edition of SQL Server 2019 và chọn Download now Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 21 Hình 1-9: Download SQL Server 2019 Express Bƣớc 3: Sau khi hoàn thành tải xuống, chọn file SQL2019-SSEI- Expr.exe và nhấn Open Hình 1-10: Mở SQL Server 2019 Express Bƣớc 4: T i cửa sổ cài đặt SQL Server 2019, chọn Basic Hình 1-11: Cửa sổ cài đặt SQL Server 2019 Bƣớc 5: Chọn Accept. Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 22 Hình 1-12: Cửa sổ đồng ý các điều khoản khi cài đặt Bƣớc 6: Lựa chọn địa ch lƣu file, s u đó chọn Install Hình 1-13: Chọn địa chỉ lưu file Chờ để quá tr nh cài đặt hoàn tất. 1.4.2.2. Cài đặt SQL Server Management Studio(SSMS) Sau khi cài đặt SQL Server 2019 Express thành công, chọn Install SQL Server Management Studio (SSMS ) hoặc chọn Close và truy cập trang web: https:docs.microsoft.comen-ussqlssmsdownload-sql-server- management-studio-ssms?view=sql-serverver15 để tiếp tục cài đặt SSMS Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 23 Hình 1-14: Chọn Install SSMS - T m đến mục Download SSMS, tải từ link nhƣ hình. Hình 1-15: Dowload SSMS - Sau khi tải về, mở file chọn Install Hình 1-16: Cài đặt SSMS - Chờ cho tới khi việc cài đặt hoàn tất. Và restart l i máy tính sau khi cài đặt hoàn tất. Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 24 Hình 1-17: Hoàn tất cải đặt SQL Server Management Studio 1.4.2.3. Cấu hình SQL Server Express 2019 - Vào Microsoft SQL Server 2019 nhƣ h nh s u: Hình 1-18: SQL Server Express 2019 Vào chức năng SQL Server Configur tion M n gement để cấu hình SQL Server Hình 1-19: Cấu hình SQL Server Configuration Management Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 25 Chức năng này cho phép cấu h nh để có thể từ một máy tính khác truy cập vào SQL Server thông qua IP hoặc Server name. Hình 1-20: Cửa sổ cấu hình SQL Server Configuration Management Chuyển chế độ Start service sang Automatic (tự động) Hình 1-21: Chuyển chế độ Start service sang Automatic - Chọn T b Logon, s u đó nhấn Start, để khởi động dịch vụ: Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 26 Hình 1-22:Khởi động dịch vụ - Tiếp theo bật TPCIP cho phép máy tính khác kết nối vào SQL Server thông qua IP. Hình 1-23: Bật TCPIP - Tƣơng tự bật: Named Pipes, cho phép máy tính khác kết nối vào SQL Server thông qua Server name. Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 27 Hình 1-24: Named Pipes Tiếp theo, đảm bảo rằng SQL Server đ ng ch y dƣới chế độ Network Service. Hình 1-25: SQL Server đ ng ch y dƣới chế độ Network Service. - Sau khi cấu hình xong, restart l i service của SQL Server. Hình 1-26: Restart l i service của SQL Server. - Hoàn tất quá trình cấu hình. Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 28 CHƠNG 2: CÁC THAO TÁC CƠ BẢN TRONG SQL SERVER Mục ti u chƣơng 2: Trong chƣơng này ch ng t sẽ tìm hiểu những kiến thức li n qu n đến các th o tác cơ bản trong SQL Server nhƣ: - Đăng nhập vào SQL Server, T o, xóa csdl, t o, xóa các bản dữ liệu, mở cửa sổ viết câu truy vấn - S o lƣu và phục hồi dữ liệu - Các kiểu dữ liệu trong SQL server 2.1. Các kiểu dữ liệu trong SQL Server 2.1.1. Các kiểu dữ liệu ký tự Char(n): Kiểu chuỗI có độ dàI cố định là n k tự và kh ng hỗ trợ Unicode Nchar(n): Kiểu chuỗi có độ cố định là n k tự và có hỗ trợ Unicode Varchar(n): Kiểu chuỗi có độ dài th y đổi, có tối đ là n k tự và kh ng hỗ trợ Unicode Nvarchar(n): Kiểu chuỗi có độ dài th y đổi, có tối đ là n k tự và có hỗ trợ Unicode Text: Dữ liệu kiếu chuỗi với độ dài lớn và kh ng hỗ trợ Unicode (tối đ 2,147,483,647 k tự) Ntext: Dữ liệu kiếu chuỗi với độ dài lớn và có hỗ trợ UNICODE (tối đ 1,073,741,823 k tự) 2.1.2. Các kiểu dữ liệu kiểu số Tinyint: Số nguy n có giá trị từ 0 đến 255. Sm llint: Số nguy n có giá trị từ -215 đến 215 – 1 Int: Số nguy n có giá trị từ -231 đến 231 - 1 Bigint: Số nguy n có giá trị từ -263 đến 263-1 Numeric: Kiểu số vớI độ chính xác cố định. Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 29 Decim l(n, m): Tƣơng tự kiểu Numeric nhƣng cho phép ch ng t ch định số chữ số (n) và số chữ số l (m) Re l: Số thực có giá trị từ -3.40E+38 đến 3.40E+38 Flo t: Số thực có giá trị từ -1.79E+308 đến 1.79E+308 Money: Kiểu tiền tệ 2.1.3. Các kiểu dữ liệu ngày tháng Smalldatetime: Kiểu ngày giờ (chính xác đến ph t) Datetime: Kiểu ngày giờ (chính xác đến phần trăm củ giây) 2.1.4. Kiểu dữ liệu luận lý Bit: Là kiểu dữ liệu d ng luận l , ch nhận h i giá trị là 0 hoặc 1, tƣơng ứng với true và false. 2.1.5. Các kiểu dữ liệu dạng nhị phân Binary: Dữ liệu nhị phân với độ dài cố định (tối đ 8000bytes) Varbinary: Dữ liệu nhị phân với độ dài th y đổi (tối đ 8000 bytes) Image: Dữ liệu nhị phân với độ dài th y đổi (tối đ 2,147,483,647bytes) 2.2. Các thao tác cơ bản trên giao diện ngƣời dùng (UI) của SQL Server 2.2.1. Đăng nhập vào SQL Server. S u khi cài đặt thành c ng, SQL Server mặc định nằm trong mục Microsoft SQL Server trong mục Progr m Files. Ch ng t kích vào biểu tƣợng SQL Server M n gement Studio Express để khởi động SQL Server nhƣ h nh s u: Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 30 Hình 2-1: Khởi động SQL S u đó, sẽ xuất hiện cửa sổ Connect nhƣ s u: Trong cửa sổ này, trong phần Servername, phải chọn đ ng t n servern me nhƣ đã cài đặt và trong phần xác thực thì có 2 chế độ xác thực: + Xác thực theo Windows thì chọn windows Authentication + Xác thực theoSQL Server thì chọn SQL Server Authentication và yêu cầu nhập đ ng login và p sswword Để đăng nhập, ch ng t có thể chọn Windows Authentication hoặc SQL Server Authentic tion trong Authentic tion, việc chọn chế độ đăng nhập này còn phụ thuộc vào việc thiết lập tài khoản đăng nhập khi ch ng t cài đặt SQL Server. Nếu chọn SQL Server Authentic tion th phải nhập p ssword. P ssword này đƣợc thiết lập trong quá tr nh cài đặt SQL Server Express Edition. Hình 2-2: Kết nối SQL Server Giao diện s u khi đăng nhập thành c ng: Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 31 Hình 2-3: Giao diện đăng nhập 2.2.2. Tạo, xóa CSDL Để t o CSDL mới, ch ng t kích chuột phải vào mục D t b ses, s u đó chọn New D t b se..., nhƣ h nh s u: Hình 2-4: Cửa sổ tạo CSDL S u đó hộp tho i t o Database sẽ xuất hiện, t i đây ch ng t sẽ: Đặt tên Database t i Database name, ví dụ đ ng t o Cơ sở dữ liệu để quản l sinh vi n và đặt tên Database là QLSV. Th y đổi kích thƣớc khởi t o, kích thƣớc gi tăng, kích thƣớc tối đ cho Database. Có thể thiết lập l i đƣờng dẫn lƣu file D t b se, nếu kh ng th D t b se đƣợc lƣu theo đƣờng dẫn mặc định. S u đó click OK để kết thúc quá trình t o Database. Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 32 Hình 2-5: Kết thúc quá trình tạo Database Kết quả ta t o đƣợc D t b se nhƣ s u, trong trƣờng hợp chƣ thấy tên CSDL vừa t o thì chúng ta có thể làm mới l i hệ thống bằng cách kích chuột phải vào mục d t b se s u đó chọn refresh. Hình 2-6: Kết quả tạo được Database 2.2.3. Cơ sở dữ liệu minh họa Cơ sở dữ diệu QLSINHVIEN- quản l điểm sinh viên củ Trƣờng ĐH Quảng N m đƣợc sử dụng làm ví dụ xuyên suốt trong giáo trình 2.2.4. Tạo bảng dữ liệu mới và các thuộc tính Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 33 Hình 2-7: Cơ sở dữ liệu QLSV Sau khi t o D t b se, ch ng t kích vào dấu cộng trƣớc t n D t b se để bung cây phân cấp quản l các đối tƣợng trong CSDL, kích chuột phải l n mục Tables, chọn New Table... Hình 2-8: Cửa sổ tạo bảng Cử sổ để t o cấu tr c củ bảng dữ liệu nhƣ h nh s u: Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 34 Hình 2-9: Cửa sổ để tạo cấu tr c của ảng ữ liệu Trong đó: Column N me: T n trƣờng thuộc tính trong bả ng. Data Type: Kiểu dữ liệu củ các trƣờng thuộc tính ( sẽ giới thiệ u trong mục KIỂU DỮ LIỆU TRONG SQL) Allow Nulls: Trƣờng thuộc tính có nhận giá trị Null (Rỗng) hay không. M i t n b n trái thể hiện Record hiện hành mà ch ng t đ ng ch nh sử a. Bảng Column Properties có chứa các yếu tố tƣơng ứng mà chúng ta có thể ch nh sử ri ng cho Record đó. Trong bảng sẽ có ít nhất một thuộc tính làm khó chính (prim ry key). Thuộc tính làm khó chính sẽ có biểu tƣợng ch khó trƣớc t n thuộc tính. Để chọn một hoặc một số thuộc tính nào đó làm khó chính th chọ n các thuộc tính đó, kích chuột phải chọn Set Primary Key S u đó lƣu bảng vừa t o bằng cách nhấn Biểu tƣợng SAVE hoặ c phím tắt Ctrl + S. Cửa sổ Choose Name hiển thị. Nhập tên Table nhấn Ok Hình 2-10: Cửa sổ lưu tên ảng dữ liệu Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 35 2.2.5. Xóa, sửa bảng 2.2.5.1. Xóa ảng Click chuột phải l n bảng h y CSDL muốn xó , chọn Delete Hình 2-11: Xóa table S u đó kích n t OK. Hình 2-12: Chọn cs l để xóa. Trong trƣờng hợp xó một CSDL, n n chọn dấu tích vào mục Close existing connections. Khi đó SQL Server sẽ ngắt tất cả các kết nối vào CSDL này và việc xó sẽ kh ng gây báo lỗi. Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 36 2.2.5.2. Sửa bảng Để sử đổi bảng, t i tên bảng cần sử đổi, kích chuột phải chọn Design. Cửa sổ design xuất hiện nhƣ cửa sổ t o bảng b n đầu, sau khi sửa ta lƣu l i l i bảng. Chú ý: Mặc định của SQL Server là không cho phép ch nh sửa nên trong trƣờng hợp lƣu l i sau khi ch nh sửa thì sẽ xuất hiện hộp thoài nhƣ s u: Hình 2-13: Cửa sổ lỗi SQL Server là không cho phép chỉnh sửa Cách khắc phục nhƣ s u: Từ giao diện Sql server management các vào Menu Tools chọn Options S u đó, gi o diện options sẽ hiện thị nhƣ h nh b n dƣới: Trong hộp tho i Options - Chọn Desingers--> Table and Database Designers Bỏ chọn Prevent saving changes that require table re-creation, nhấn OK để hoàn tất. Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 37 Hình 2-14: Cửa sổ Table and Database Designers 2.2.6. Tạo database Diagram (mô hình CSDL) Nhấp chọn CSDL cần t o Diagram, t i Database Diagram, kích chuột phải chọn New Database Diagram, xuất hiện hộp tho i chứa các bảng cần t o liên kết nhƣ s u: Hình 2-15: Cửa sổ tạo Tạo database Diagram Lần lƣợc chọn bảng, nhấp add, sau khi hoàn tất, sẽ xuất hiện cửa sổ sau: Hình 2-16: Cửa sổ thêm bảng vào mô hình database Diagram Thực hiện việc kết nối bằng cách nhấp chuột trái vào bảng chứa khóa chính, s u đó kéo đến bảng chứa khóa ngo i, hộp tho i sau xuất hiện: Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 38 Hình 2-17: Cửa sổ kết nối các bảng trong mô hình database Diagram Nhấp chọn OK và tiếp tục thực hiện kết nối các bảng còn l i. Sau khi việc kết nối hoàn tất, thì cửa số Database Diagram sẽ xuất hiện nhƣ s u, t bấm biểu tƣợng lƣu hoặc cltr+S để lƣu D t b se di gr m tr n. Hình 2-18: Cửa sổ hoàn tất việc tạo database Diagram 2.2.7. Mở cửa sổ viết câu truy vấn (SQL Editor) Để mở cử sổ so n thảo câu lệnh SQL, ch ng t kích vào n t New Query tr n th nh c ng cụ. Cần ch là câu lệnh SQL sẽ có tác dụng tr n CSDL đ ng đƣợc chọn gọi là CSDL hiện hành trong hộp chọn. Do đó cần ch lựa chọn Database Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 39 mong muốn trong danh sách xổ xuống trƣớc khi thực thi lệnh trong cửa sổ viết câu truy vấn. Hình 2-19: Cửa sổ viết câu truy vấn 2.3. Sao lƣu và phục hồi dữ liệu (Backup and Restore) S o lƣu ( B ckup) và phục hồi (Restore) dữ liệu trong sql server là một trong những thao tác quan trọng mà ngƣời quản trị cơ sở dữ liệu phải thực hiện. Đây là kỹ thuật thƣờng đƣợc sử dụng nhằm bảo đảm an toàn dữ liệu phòng trƣờng hợp CSDL xảy ra sự cố. Nếu nhƣ th o tác s o lƣu (B ckup database) đƣợc thực hiện để lƣu dữ liệu và đƣợc thực hiện thƣờng xuyên thì thao tác phục hồi dữ liệu (Restore database) ch đƣợc thực hiện khi nào máy chủ bị sự cố nhƣ hƣ ổ cứng hoặc dữ liệu bị mất do ngƣời dùng vô tình hoặc cố xoá,… Ngoài r th o tác phục hồi dữ liệu c ng đƣợc thực hiện để sao chép database từ máy chủ này sang máy chủ khác. Hình 2-20: Mô hình sao lưu và phục hổi dữ liệu Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 40 2.3.1. Các lý do phải thực hiện Backup Trong quá tr nh thực hiện quản trị CSDL SQL Server th một số nguy n nhân s u đây bắt buộc phải xem xét đến kỹ thuật s o lƣu và kh i phục dữ liệu: Thiết bị lƣu trữ (CSDL nằm tr n các thiết bị lƣu trữ này) bị hƣ hỏng. Ngƣời dùng v t nh xó dữ liệu. Các hành động v t nh h y cố phá ho i, di chuyển CSDL. 2.3.2. Các loại Backup Microsoft SQL Server cung cấp h i kỹ thuật s o lƣu CSDL chính, đó là: full b ckup và differenti l b ckup. Ngoài r , SQL Server còn cung cấp cơ chế Transaction log backup. 2.3.2.1. Full backup và Differential backup + Full b ckup: s o lƣu một bản đầy đủ củ CSDL tr n các phƣơng tiện lƣu trữ. Quá tr nh full b ckup có thể tiến hành mà kh ng cần offline CSDL, nhƣng quá tr nh này l i chiếm một lƣợng lớn tài nguy n hệ thống và có thể ảnh hƣởng nghi m trọng tới thời gi n đáp ứng các y u cầu của hệ thống. V vậy máy chủ sẽ mất nhiều thời gi n để thực hiện nếu database lớn + Differenti l b ckup: đƣợc xây dựng nhằm làm giảm thời gi n cần thiết để thực hiện quá tr nh full b ckup. Differenti l b ckup ch s o lƣu những th y đổi tr n dữ liệu kể từ lần full backup gần nhất. Trong những hệ thống CSDL lớn, quá tr nh differenti l b ckup sẽ sử dụng tài nguy n ít hơn rất nhiều so với quá tr nh full b ckup và có thể kh ng ảnh hƣởng đến hiệu suất của hệ thống. + Quá tr nh differenti l b ckup ch s o lƣu những sự th y đổi của dữ liệu từ lần full backup gần nhất, do đó khi có sự cố với CSDL nếu kh ng có bản s o lƣu củ quá tr nh full b ckup th bản s o lƣu của quá tr nh differenti l b ckup sẽ trở n n v nghĩ . Ví dụ: C ng ty X thực hiện full b ckup vào cuối ngày thứ 6 hàng tuần và thực hiện differenti l b ckup vào tối các ngày từ thứ 2 tới thứ 5. Nếu CSDL có sự cố vào sáng thứ 4, quản trị vi n CSDL sẽ phục hồi dữ liệu bằng bản s o lƣu củ quá tr nh full b ckup củ ngày thứ 6 tuần trƣớc và s u đó phục hồi Ths. NGUYỄN THỊ MINH CHÂU GIÁO TRÌNH SQL SERVER2019 41 các th y đổi của dữ liệu bằng cách áp dụng bản s o lƣu củ quá tr nh differenti l b ckup vào ngày thứ ba. 2.3.2.2. Transaction log backup Quá tr nh full b ckup và differenti l b ckup chiếm nhiều tài nguy n hệ thống và ảnh hƣởng đến hiệu suất làm việc hệ thống n n thƣờng đƣợc thực hiện vào s u giờ làm việc. Tuy nhi n điều này có thể dẫn đến các ...
Trang 1LỜI NÓI ĐẦU
Microsoft SQL Server 2019 là một hệ quản trị cở sở dữ liệu mô hình quan hệ (Relational Database Management System – RDBMS) được phát triển bởi Microsoft dùng để quản lý và lưu trữ dữ liệu theo mô hình Client/Server Đây là một trong các hệ quản trị cơ sở dữ liệu có đầy đủ các tính năng của một hệ quản trị cơ sở dữ liệu cơ bản, được nhiều nhà phát triển ứng dụng lựa chọn như một giải pháp lưu trữ dữ liệu cho các ứng dụng
Học phần Hệ quản trị cơ sở dữ liệu SQL Server là một trong những học phần quan trọng trong chương tr nh đào t o cho sinh vi n ngành CNTT Hiện n y có rất nhiều giáo tr nh về Hệ quản trị cơ sở dữ liệu SQL Server nhưng kh ng phù hợp với việc giảng d y và học tập t i trường ĐHQN Việc xây dựng giáo trình Hệ quản trị cơ sở dữ liệu SQL Server là sự cấp thiết, gi p cho sinh vi n có được tài liệu th m khảo đầy đủ cả l thuyết lẫn thực hành vê Microsoft SQL Server Giáo tr nh được chia thành 7 chương, bao gồm:
Chương 1: Giới thiệu về hệ quản trị SQL Server Chương 2: Các th o tác cơ bản trong SQL Server
Chương 3: Ngôn ngữ truy vấn có cấu trúc (SQL) trong Sql Server Chương 4: Khung nhìn (view) và Bẫy sự kiện (Trigger)
Chương 5: Thủ tục lưu trữ (stored procedure) và Hàm trong Sql Server Chương 6: Bảo mật & phân quyền người dùng trong SQL Server
Chương 7: Kết nối vào SQL Server từ các ngôn ngữ lập tr nh để xây dựng các ứng dụng li n qu n đến cơ sở dữ liệu
Cuối mỗi chương đều có các câu hỏi, bài tập thực hành và bài tập tự giải để sinh viên ôn luyện và tự kiểm tra kiến thức của mình
Mặc dù đã có nhiều cố gắng trong việc biên so n và cập nhật cho phù hợp với thực tế nhưng giáo tr nh chắc chắn vẫn còn những h n chế và thiếu sót Tác giả mong nhận được những ý kiến đóng góp từ đồng nghiệp và các b n sinh vi n để giáo tr nh ngày được hoàn thiện hơn với mục ti u đáp ứng
Trang 2MỤC LỤC
LỜI NÓI ĐẦU 1
MỤC LỤC 2
CHƯƠNG 1: GIỚI THIỆU VỀ HỆ QUẢN TRỊ SQL SERVER 2019 8
1.2 Tổng quan về Hệ quản trị CSDL SQL Server 2019 8
1.2.1 Giới thiệu SQL Server 8
1.2.2 Các thành phần củ SQL Server 2019 10
1.2.3 M h nh chung củ SQL Server 11
1.2.3.1 Kết nối trên Desktop 12
1.2.3.2 Kết nối qua m ng diện rộng theo mô hình Client/Server 12
1.2.3.3 Kết nối ứng dụng trên m ng Internet 13
1.2.4 Các lo i CSDL có trong hệ quản trị CSDL SQL Server 2019 14
1.2.5 Các đặc điểm củ hệ quản trị CSDL SQL Server 2019 15
1.4.2.1 Cài đặt Microsoft SQL Server 2019 Express 20
1.4.2.2 Cài đặt SQL Server Management Studio(SSMS) 22
1.4.2.3 Cấu hình SQL Server Express 2019 24
CHƯƠNG 2: CÁC THAO TÁC CƠ BẢN TRONG SQL SERVER 28
2.1 Các kiểu dữ liệu trong SQL Server 28
2.1.1 Các kiểu dữ liệu k tự 28
2.1.2 Các kiểu dữ liệu kiểu số 28
2.1.3 Các kiểu dữ liệu ngày tháng 29
2.1.4 Kiểu dữ liệu luận l 29
2.1.5 Các kiểu dữ liệu d ng nhị phân 29
2.2 Các thao tác cơ bản trên giao diện người dùng (UI) của SQL Server 29
2.2.1 Đăng nhập vào SQL Server 29
2.2.2 T o, xó CSDL 31
2.2.3 Cơ sở dữ liệu minh họ 32
2.2.4 T o bảng dữ liệu mới và các thuộc tính 32
2.2.5 Xó , sử bảng 35
Trang 32.2.5.1 Xó bảng 35
2.2.5.2 Sửa bảng 36
2.2.6 T o d t b se Di gr m (m h nh CSDL) 37
2.2.7 Mở cử sổ viết câu truy vấn (SQL Editor) 38
2.3 Sao lưu và phục hồi dữ liệu (Backup and Restore) 39
2.3.1 Các l do phải thực hiện B ckup 40
2.3.2 Các lo i B ckup 40
2.3.2.1 Full backup và Differential backup 40
2.3.2.2 Transaction log backup 41
2.3.3 Các th o tác thực hiện quá tr nh B ckup và Restore CSDL trong SQL
3.2.4 Các toán tử (Oper tors) 63
3.2.5 Các thành phần điều khiển (Control of flow) 64
Trang 43.3.2.3 Ràng buộc FOREIGN KEY 69
3.4.2 Câu lệnh truy xuất dữ liệu SELECT 80
3.4.2.1 Câu lệnh truy vấn d ng tổng quát 80
3.4.2.2 Danh sách chọn trong câu lệnh SELECT 81
3.4.4 Các lo i phép kết nối trong SQL Server: 94
3.4.4.2 Phép kết nối trong (Inner Join) 96
3.4.4.3 Phép kết nối ngoài (Outer Join) 98
3.4.4.4 Phép kết nối tích hợp (CROSS JOIN) 101
3.4.4.5 Phép tự kết kết nối (Self Join) 101
3.4.5 Truy vấn con (Subquery) 101
3.5 Ngôn ngữ điều khiển dữ liệu 103
3.5.1 Cấp quyền truy cập – câu lệnh Gr nt 103
3.5.2 Thu hồi quyền truy cập – Câu lệnh Deny 103
3.5.3 Thực hiện l i th o tác phân quyền – Câu lệnh Revoke C pháp: 104
Trang 54.2.8 Trigger cho ng n ngữ định nghĩ dữ liệu (DDL Trigger ) 133
4.2.9 Kích ho t/ bỏ kích ho t Trigger (ENABLE/ DISABLE TRIGGER) 134
Trang 65.1.4.3 Giá trị trả về trong thủ tục lưu trữ 152
5.2.3.2 Hàm nội tuyến - Inline UDF 158
5.2.3.3 Hàm bao gồm nhiều câu lệnh bên trong – Multi statement UDF 159
6.1.2 Giới thiệu về cơ chế bảo mật trong SQL Server 172
6.1.3 Mã hó dữ liệu trong SQL Server 173
6.1.4 Các lỗ hổng bảo mật thường gặp trong SQL Server 177
6.2 Phân quyền người dùng trong SQL Server 180
6.2.1 Tài khoản đăng nhập vào SQL Server 180
6.2.6 Thêm thành viên cho Role 190
6.2.7 Đối tượng và quyền tr n đối tượng ( D t b se Objects nd Object Permission) 190
6.2.7.1 Đối tượng 190
6.2.7.2 Quyền 190
Trang 76.2.8 Cho phép và hủy bỏ quyền tr n đối tượng 191
6.3 Bài tập chương 6 191
6.3.1 Câu hỏi n tập 191
6.3.2 Bài tập thực hành 191
CHƯƠNG 7: KẾT NỐI VÀO SQL SERVER TỪ CÁC NGÔN NGỮ LẬP TRÌNH ĐỂ XÂY DỰNG CÁC ỨNG DỤNG LIÊN QUAN ĐẾN CSDL 192
7.1 Cấu hình Microsoft SQL Server 192
7.1.1 Cho phép tiếp nhận các kết nối từ x tr n SQL Server 193
7.1.2 Kích ho t dịch vụ SQL Server Browser 193
7.1.3 T o các ngo i lệ tr n Windows Firew ll 194
7.2 Kết nối vào SQL Server trong các ngôn ngữ lập trình 195
7.2.1 Kết nối vào SQL Server trong các ng n ngữ lập tr nh C# 195
7.2.2 Xây dựng lớp (cl ss) truy cập vào CSDL trong ng n ngữ C# 197
Trang 8CHƯƠNG 1: GIỚI THIỆU VỀ HỆ QUẢN TRỊ SQL SERVER 2019 Mục tiêu chương 1: Trong chương này, tr nh bày một cách khái quát về
hệ quản trị cơ sở dữ liệu Microsoft SQL Server Các chức năng mà một hệ quản trị cơ sở dữ liệu cần phải có Nội dung chính củ chương này gồm:
- Giới thiệu hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2019 - Các thành phần của Microsoft SQL Server 2019
- Mô hình Microsoft SQL Server 2019
- Giới thiệu các ấn bản của SQL Server 2019
- Hướng dẫn cài đặt MS SQL Server phiên bản 2019 ấn bản Express Edition
1.2 Tổng quan về Hệ quản trị CSDL SQL Server 2019 1.2.1 Giới thiệu SQL Server
Hình 1-1: Mô hình SQL Server
Microsoft SQL Server là một lo i phần mềm được phát triển bởi Microsoft, nó là một hệ quản l cơ sở dữ liệu quan hệ đối tượng (Relational Database Management System - RDBMS) có chức năng chính là lưu trữ, truy xuất dữ liệu và thông qua câu lệnh SQL nó có thể tr o đổi dữ liệu với các ứng dụng tr n máy Client Trong m i trường Client/Server cơ sở dữ liệu được lưu tr n máy Server, người dùng truy cập dữ liệu từ các máy Client qua một hệ thống m ng
SQL Server hỗ trợ nhiều chức năng quản trị dữ liệu trên môi trường nhiều người dùng theo kiểu Client/Server SQL Server chịu trách nhiệm đáp ứng các yêu cầu truy cập dữ liệu từ các máy Client, xử lý và chuyển kết quả về cho máy Server SQL Server có một hệ thống bảo mật nhiều cấp giúp cho việc quản lý và bảo mật dữ liệu thuận tiện và chặt chẽ
Trang 9SQL Server có một số đặc tính sau:
Cho phép quản trị một hệ CSDL lớn, có tốc độ xử lý dữ liệu nh nh đáp ứng yêu cầu về thời gian
Cho phép nhiều người cùng khai thác trong một thời điểm đối với một CSDL (tối đ 30000 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 mật độc lập của SQL Server
Hỗ trợ trong việc triển khai CSDL phân tán và phát triển ứng dụng trên 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 các ứng dụng (Visual Basic, C, C++, C#, ASP, ASP.NET, XML, )
Sử dụng câu lệnh truy vấn dữ liệu Transact-SQL: là ngôn ngữ SQL mở rộng dựa trên SQL chuẩn của ISO (International Organization for Standardization) và ANSI (American National Standards Institute)
SQL Server có khả năng cung cấp đầy đủ các công cụ cho việc quản lý từ giao diện GUI đến sử dụng ngôn ngữ cho việc truy vấn SQL
Cụ thể như s u:
T-SQL là một trong những lo i ngôn ngữ thuộc quyền sở hữu của Microsoft và được gọi với cái tên Transact-SQL Nó thường cung cấp thêm rất nhiều cho các khả năng kh i báo biến, thủ tục lưu trữ và xử lý ngo i lệ,
SQL Server Management Studio là một lo i công cụ giao diện chính cho máy chủ cơ sở của chính dữ liệu SQL, th ng thường thì nó hỗ trợ cho cả môi trường 64 bit và 32 bit
SQL Server được tối ưu để có thể ch y tr n m i trường cơ sở dữ liệu rất lớn (Very L rge D t b se Environment) l n đến Tera-Byte và có thể phục vụ cùng l c cho hàng ngàn người sử dụng (user) SQL Server có thể kết hợp ăn ý" với các server khác như Microsoft Internet Inform tion Server (IIS), E-Commerce Server, Proxy Server
SQL Server có các ưu điểm sau:
Mở rộng khả năng quản l dữ liệu của doanh nghiệp
Trang 10 Cải thiện hiệu quả làm việc của lập trình viên Hỗ trợ xữ lý thông minh các giao tác
Các chức năng hỗ trợ phân quyền bảo mật
SQL Server 2019 là bộ phận quản l cơ sở dữ liệu, được xây dựng dựa trên khái niệm trí tuệ nhân t o nhằm t o điều kiện thuận lợi, cải tiến dịch vụ cơ sở dữ liệu, bảo mật và giảm bớt các khó khăn gặp phải khi phát triển các ứng dụng và lưu trữ dữ liệu
SQL Server 2019 được tích hợp với Cloud, điều này đồng nghĩ các tổ chức có thể hưởng lợi từ tính năng bảo mật cao, vừ đồng bộ được dữ liệu trên nhiều máy tính và các thiết bị hiện đ i khác
SQL Server 2019 t o ra nền tảng dữ liệu hợp nhất đi kèm với Hệ thống tệp phân tán Ap che Sp rk và H doop (HDFS) để trở n n th ng minh hơn với tất cả dữ liệu
1.2.2 Các thành phần của SQL Server 2019
Các thành cơ bản trong SQL Server gồm có: Reporting Services, Database Engine, Integration Services, Notification Services, Full Text Se rch Service,… Tất cả kết hợp với nhau t o thành một giải pháp hoàn ch nh giúp cho việc phân tích và lưu trữ dữ liệu trở nên dễ dàng hơn
1 D t b se Engine: Đây là phần lõi của SQL Server nó có chức năng chứa dữ liệu dưới d ng các bảng và hỗ trợ các kết nối đến CSDL Ngoài ra, nó còn có khả năng tự điều ch nh ví dụ: trả l i tài nguyên cho hệ điều hành khi một user log off và yêu cầu thêm các tài nguyên của máy khi cần
2 Integration Services: là tập hợp các đối tượng lập trình và các công cụ đồ họa cho việc sao chép, di chuyển và chuyển đổi dữ liệu Khi làm việc trong một công ty lớn thì dữ liệu được lưu trữ ở nhiều nơi khác nh u như được chứa trong: Or cle, SQL Server, DB2, Microsoft Access,… và chắc chắn sẽ có nhu cầu di chuyển dữ liệu giữa các server này Ngoài ra, việc muốn định d ng dữ liệu trước khi lưu vào d t b se, Integration Services sẽ giúp giải quyết được công việc này dễ dàng
3 An lysis Services: Đây là một dịch vụ phân tích dữ liệu của Microsoft Công cụ này giúp việc phân tích dữ liệu một cách hiệu quả và dễ dàng bằng cách dùng kỹ thuật khai thác dữ liệu – datamining và khái niệm hình khối nhiều chiều – multi dimendion cubes
Trang 114 Notification Services: Dịch vụ thông báo này là nền tảng cho sự phát triển và triển khai các ứng dụng so n và gửi th ng báo đến hàng ngàn người đăng k sử dụng trên nhiều lo i thiết bị khác nhau
5 Reporting Services: là một công cụ t o, quản lý và triển khai báo cáo trên server và client Ngoài ra, nó còn là nền tảng cho việc phát triển và xây dựng các ứng dụng báo cáo
6 Full Text Search Service: là một thành phần đặc biệt trong việc truy vấn và đánh ch mục dữ liệu văn bản không cấu tr c được lưu trữ trong các cơ sở dữ liệu SQL Server
7 Service Broker: là dịch vụ cân bằng tải cho SQL Server Nó giúp cho CSDL thực hiện được nhiều thao tác với dữ liệu bằng cách dùng hàng đợi lưu dữ liệu t m thời
Hình 1-2: Các thành phần của SQL Server
1.2.3 Mô hình chung của SQL Server
SQL Server là hệ quản trị CSDL ho t động theo mô hình Client/Server, có thể thực hiện tr o đổi dữ liệu theo nhiều mô hình m ng khác nhau, nhiều giao thức và phương thức truyền tin khác nhau
Hình 1-3: Mô hình SQL Server trên hệ thống mạng
Trang 12Trong sơ đồ trên thể hiện ba kiểu kết nối ứng dụng đến SQL Server: Kết nối trên Desktop: Có thể kết nối trên cùng máy chủ chứa CSDL SQL Server hoặc kết nối qua m ng nội bộ
Kết nối qua m ng diện rộng: Th ng qu đường truyền m ng diện rộng kết nối đến máy chủ CSDL SQL Server
Kết nối qua m ng Internet: Các ứng dụng kết nối thông qua Internet, sử dụng dịch vụ webserver IIS thực hiện ứng dụng trên Internet (ASP, JSP, ASP.net,…)
1.2.3.1 Kết nối trên Desktop
Tr n Desktop m h nh SQL Server được thể hiện như s u:
Hình 1-4: Mô hình SQL Server trên Desktop
Trên một Desktop có thể có nhiều ứng dụng, mỗi ứng dụng có thể thực hiện thao tác với nhiều CSDL
1.2.3.2 Kết nối qua mạng diện rộng theo mô hình Client/Server
Trong mô hình client/server, ứng dụng tr o đổi với SQL Server theo sơ đồ sau:
Hình 1-5: Mô hình Client/Server của SQL Server
Trang 13Như sơ đồ trên nhận thấy SQL Server cho phép các ứng dụng kết nối theo các phương thức sau: OLE DB, ODBC, DB-Library, Embedded SQL, đây là các phương thức kết nối hữu ích cho những nhà phát triển ứng dụng
Chi tiết hơn t có sơ đồ sau:
Hình 1-6: Mô hình trao đổi dữ liệu với các ứng dụng
Trong sơ đồ trên cho thấy, SQL Server có thể thực hiện tr o đổi dữ liệu với các ứng dụng theo nhiều giao thức truyền tin khác nhau (TCP/IP, NetBeUI, N mes Pipes,…), các ứng dụng có thể sử dụng nhiều phương thức kết nối khác nhau (OLE DB, ODBC, DB-Library)
1.2.3.3 Kết nối ứng dụng trên mạng Internet
Các ứng dụng kết nối với SQL Server trên m ng Internet, các máy chủ SQL Server sẽ được quản lý thông qua các hệ thống máy chủ m ng, hệ điều hành m ng, các ứng dụng (COM+, ASP, IIS) sẽ thông qua máy chủ m ng kết nối đến SQL Server, mô hình này có thể áp dụng cho các m ng nội bộ, diện rộng, ứng dụng được khai thác trên trình duyệt Internet Xem xét mô hình dưới đây:
Hình 1-7:Mô hình kết nối các ứng dụng
Trang 141.2.4 Các loại CSDL có trong hệ quản trị CSDL SQL Server 2019
SQL Server hỗ trợ các lo i CSDL sau: 1 Database system ( CSDL hệ thống):
CSDL hệ thống ( system database) là lo i CSDL được t o bởi SQL Server, nó dùng để lưu trữ các th ng tin về chính bản thân SQL Server th ng tin về các CSDL do người dùng định nghĩ SQL Server cung cấp các CSDL hệ thống s u:
M ster: Lưu các th ng tin của hệ thống của SQL Server
Msdb: Được dùng bởi SQL Server để lưu các th ng tin cảnh báo
Resource: Là một CSDL ch đọc Nó chứ các đối tượng hệ thống của SQL Server
Tempdb: Lưu giữ các đối tượng t m các kết quả trung gi n 2 Database Snapshots (CSDL Snapshots)
D t b se sn pshot là tính năng được giới thiệu từ SQL Server 2015 Tính năng này cung cấp khả năng re d-only, sticview cho database SQL Nếu người dùng thao tác, ch y lệnh sai khiến database gặp lỗi, source database sẽ chuyển đổi l i tr ng thái khi sn pshot được t o ra SQL Server Management Studio (SSMS) không hỗ trợ t o snapshot mà buộc phải sử dụng câu lệnh T-SQL làm việc này
Ưu điểm của snapshot:
Cung cấp phiên bản copy của dữ liệu một cách thuận tiện và read-only
Khi được truy vấn, không bị suy giảm hiệu suất
Snapshot file nhẹ và khởi t o nhanh
Nhược điểm của snapshot:
Không thể t o snapshot backup
Snapshot phải tồn t i tr n cùng d t b se server như là source của dataabase
Người dùng mới không thể được gán quyền truy cập dữ liệu trong snapshot
Trang 153 User-defined database (CSDL do người dùng định nghĩ )
CSDL do người dùng định nghĩ (user defined database) là lo i CSDL do người dùng t o r Ch ng lưu trữ các th ng tin c ng như dữ liệu củ người sử dụng
1.2.5 Các đặc điểm của hệ quản trị CSDL SQL Server 2019
Microsoft SQL Server có các đặc điểm sau:
Dễ cài đặt (Easy Installation): SQL Server cung cấp các công cụ quản trị và phát triển để cho người sử dụng dễ dàng cài đặt, sử dụng và quản l hệ thống
Tích hợp với Internet (Integr tion with Internet): SQL Server hỗ trợ kiểu dữ liệu XML, là một kiểu dữ liệu, một chuẩn trong việc tr o đổi dữ liệu trên Internet
Khả năng mở rộng c o: SQL Server được tối ưu để có thể ch y tr n m i trường cơ sở dữ liệu rất lớn (Very L rge D t b se Environment) l n đến Tera- Byte và có thể phục vụ cùng l c cho hàng ngàn người sử dụng
Hỗ trợ kiến tr c Client/Server: Ứng dụng có thể ch y trên máy khách (máy Client), truy cập dữ liệu được lưu trữ trên chủ (máy Server) Server có nhiệm vụ xử lý các yêu cầu và trả l i kết quả cho Client
Tương thích với nhiều hệ điều hành (Oper ting System Comp tibility): Có thể cài đặt trên hầu hết các hệ điều hành từ windows 7 trở lên Đối với SQL Server 2019 hỗ trợ cả windowns và Linux
Ngoài r , SQL Server còn hỗ trợ một số đặc tính khác như hỗ trợ c ng cụ English Query để người phát triển hệ thống có thể truy vấn dữ liệu thân thiện hơn; cung cấp dịch vụ Microsoft Search Services có khả năng t m kiếm rất m nh, đặc biệt thích hợp cho phát triển ứng dụng Web; SQL Server tương tích với ngôn ngữ SQL chuẩn (ANSI/ISO SQL-92); có công cụ hỗ trợ s o lưu dữ liệu nh nh chóng, tự động; Có tài liệu hướng dẫn trực tuyến Kiến trúc một CSDL theo HQT CSDL SQL Server
1.2.6 Hệ thống tập tin
Trong SQL Server, mọi CSDL được lưu trữ thông qua một nhóm các file (tập tin) Các CSDL riêng biệt có các file riêng củ ch ng và các th ng tin về dữ liệu th ng tin về nhật k th o tác (log) được lưu trong các file khác nh u
Trang 16Hình 1-8: Hệ thống tập tin trong SQL Server
Có 3 lo i file của một CSDL torng SQL Server:
File dữ liệu chính (Primary data files): Chứa thông tin hệ thống và một số đối tượng chính của database Mọi dữ liệu củ CSDL được chứ trong file này Mỗi CSDL ch có 1 file dữ liệu chính có phần mở rộng th ng thường là *.MDF
File dữ liệu dự phòng (Second ry d t files): File dự phòng chứ dữ liệu dự phòng khi File dữ liệu chính gặp sự cố File này do người dùng t o thêm (nếu cần) Đối với các CSDL lớn không chứ đủ trên một ổ đĩ , khi đó cần có các file phụ lưu tr n các ổ đĩ khác Các file dữ liệu phụ tiếp theo nên có phần mở rộng là NDF để phân biệt
Các file dữ liệu được lưu theo từng nhóm (File Groups) Mỗi CSDL có một nhóm file chính (PRIMARY) chứa file dữ liệu chính và một số file dữ liệu phụ
File log (Log files): File log chứ tất cả các th ng tin về nhật ký làm việc c ng như tất cả các th ng tin cần thiết cho việc phục hồi CSDL Có ít nhất một file log cho mỗi CSDL File log có phần mở rộng là ldf
1.2.7 Các đối tượng bên trong của SQL Server
Trang 17trước được lưu l i dưới một cái t n, các lần sử dụng s u ch cần cung cấp t n củ Stored Procedure, SP là một đơn vị xử l trong CSDL
5 Function Hàm là một đo n code nó thực hiện một tác vụ cụ thể
6 Index
Là một đối tượng trong CSDL cung cấp cơ chế truy cập nh nh vào dữ liệu trong bảng dự tr n các khó
Là một d ng SP đặc biệt, nó được gọi thực thi một cách tự động khi có một sự kiện nào đó xảy r tr n bảng dữ liệu (th m/ xó / sử / dữ
9 Login
Mỗi người sử dụng phải có một định d nh đăng nhập để kết nối vào SQL Server SQL Server chấp nhận 2 cơ chế đăng nhập: Đăng nhậpth ng qu tài khoản củ Windows (Windows Authentic tion) và Đăng nhập th ng qu tài khoản củ SQL Server (SQL Server Authentication)
10 User
Tài khoản người dùng định d nh một người dùng trong CSDL Tất cả các quyền th o tác và quyền sở hữu các đối tượng trong CSDL được điều khiển bởi tài khoản người dùng
Trang 181.3 Các ấn bản của SQL Server 2019
SQL Server 2019 cung cấp một nền tảng cơ sở dữ liệu bảo mật, hiệu suất cao và thông minh cho dữ liệu doanh nghiệp SQL Server 2019 có 3 phiên bản chính gồm SQL Server 2019 Express, Standard và Enterprise
1 SQL Server 2019 Standard
Phiên bản d t b se đầy đủ tính năng với Big Data Cluster cho các ứng dụng tầm trung và kho dữ liệu
Các tính năng chính:
Hỗ trợ CPU tới 24 core
Hỗ trợ tới 128GB RAM
SQL Server 2019 Big Data Cluster
Trực quan dữ liệu qua PolyBase
Tăng cường hiệu suất bộ nhớ trong
Tự động điều ch nh database thông minh
Azure Data Studio có hỗ trợ notebook 2 SQL Server 2019 Enterprise
Phiên bản database cao cấp với hiệu năng và trí th ng minh hàng đầu cho các ứng dụng quan trọng
Các tính năng chính:
Không giới h n số core CPU
Không giới h n số RAM
Hiệu năng và độ ổn định hàng đầu
Nhiều lợi ích cho ảo hóa
Kho dữ liệu tới quy mô hàng petabyte
Tính khả dụng cao trên Windows và Linux
Chi phí sở hữu thấp
Kết nối với Power BI Report Server 4 SQL Server 2019 Express
Trang 19Phiên bản database miễn phí, gọn nhẹ dành cho việc xây dựng các web
Phân lo i và kiểm tra dữ liệu
Ngoài các ấn bản tr n, Microsoft c ng có 2 ấn bản SQL Server khác, gồm:
SQL Server 2019 Web: Ấn bản web này là tùy chọn chi phí thấp cho các máy chủ lưu trữ web và VAP Web để cung cấp khả năng mở rộng, chi phí thấp và khả năng quản trị cho các web quy mô nhỏ tới lớn
SQL Server 2019 Developer: Ấn bản dành cho các lập trình viên xây dựng mọi lo i ứng dụng trên SQL Server Nó gồm tất cả các tính năng của bản Enterprise Tuy nhiên bản quyền ch sử dụng cho hệ thống dev/test, không phải máy chủ cho sản phẩm Phiên bản SQl Server 2019 Developer hoàn toàn miễn phí
1.4 Giới thiệu về cài đặt MS SQL Server phiên bản 2019
SQL Server 2019 là nền tảng quản l cơ sở dữ liệu hàng đầu trong ngành củ Microsoft, đã được công ty phát hành vào ngày 4/11/2019 SQL Server 2019 cung cấp nhiều cải tiến khác nhau cho công cụ cơ sở dữ liệu cốt lõi và tích hợp với một số nền tảng Big D t như Ap che Sp rk, D t L ke, H doop Distributed File System (HDFS), học máy Bản phát hành này được coi là một bước nhảy vọt trong việc tích hợp cơ sở dữ liệu với các tính năng và c ng nghệ thú vị khác
Trang 20Chúng ta có thể cài đặt SQL Server 2019 trên Windows, Linux hay Docker container và trong giáo trình này sẽ hướng dẫn cách cài đặt SQL Server 2019 trên Windows
1.4.1 Các yêu cầu về hệ thống
Để cài đặt Microsoft SQL Server 2019 hệ thống cần những yêu cầu sau: Os : Windows 7 (32 bit hoặc 64 bit) trở lên
CPU : Pentium IV trở lên Ram : Ít nhất 1GB
Ổ đĩ trống: Ít nhất 10GB
NET Framework: Phiên bản 3.5 SP1 Lưu trước khi cài đặt SQL SERVER
Trước khi cài đặt Microsoft SQL Server cần chú ý:
- Cài SQL Server trước khi cài Microsoft Visual Studio để tránh xung
1.4.2.1 Cài đặt Microsoft SQL Server 2019 Express
Bước 1: Tải Microsoft SQL Server 2019 Express:
Có thể vào đường dẫn s u để tải Microsoft SQL Server 2019 Express https://www.microsoft.com/en-us/sql-server/sql-server-downloads ) Bước 2: T m đến Express edition of SQL Server 2019 và
chọn Download now
Trang 21Hình 1-9: Download SQL Server 2019 Express
Bước 3: Sau khi hoàn thành tải xuống, chọn file SQL2019-SSEI-Expr.exe và nhấn Open
Hình 1-10: Mở SQL Server 2019 Express
Bước 4: T i cửa sổ cài đặt SQL Server 2019, chọn Basic
Hình 1-11: Cửa sổ cài đặt SQL Server 2019
Bước 5: Chọn Accept
Trang 22Hình 1-12: Cửa sổ đồng ý các điều khoản khi cài đặt
Bước 6: Lựa chọn địa ch lưu file, s u đó chọn Install
Hình 1-13: Chọn địa chỉ lưu file
Chờ để quá tr nh cài đặt hoàn tất
1.4.2.2 Cài đặt SQL Server Management Studio(SSMS)
Sau khi cài đặt SQL Server 2019 Express thành công, chọn Install SQL Server Management Studio (SSMS ) hoặc chọn Close và truy cập trang web:
https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-serverver15 để tiếp tục cài đặt SSMS
Trang 24Hình 1-17: Hoàn tất cải đặt SQL Server Management Studio 1.4.2.3 Cấu hình SQL Server Express 2019
- Vào Microsoft SQL Server 2019 nhƣ h nh s u:
Trang 25Chức năng này cho phép cấu h nh để có thể từ một máy tính khác truy
cập vào SQL Server thông qua IP hoặc Server name
Hình 1-20: Cửa sổ cấu hình SQL Server Configuration Management
Chuyển chế độ Start service sang Automatic (tự động)
Hình 1-21: Chuyển chế độ Start service sang Automatic
- Chọn T b Logon, s u đó nhấn Start, để khởi động dịch vụ:
Trang 26Hình 1-22:Khởi động dịch vụ
- Tiếp theo bật TPC/IP cho phép máy tính khác kết nối vào SQL Server
thông qua IP
Hình 1-23: Bật TCP/IP
- Tương tự bật: Named Pipes, cho phép máy tính khác kết nối vào SQL Server thông qua Server name
Trang 27Hình 1-24: Named Pipes
Tiếp theo, đảm bảo rằng SQL Server đ ng ch y dưới chế độ Network Service
Hình 1-25: SQL Server đ ng ch y dưới chế độ Network Service
- Sau khi cấu hình xong, restart l i service của SQL Server
Hình 1-26: Restart l i service của SQL Server
- Hoàn tất quá trình cấu hình
Trang 28CHƯƠNG 2: CÁC THAO TÁC CƠ BẢN TRONG SQL SERVER
Mục ti u chương 2:
Trong chương này ch ng t sẽ tìm hiểu những kiến thức li n qu n đến các th o tác cơ bản trong SQL Server như:
- Đăng nhập vào SQL Server, T o, xóa csdl, t o, xóa các bản dữ liệu, mở cửa sổ viết câu truy vấn
- S o lưu và phục hồi dữ liệu
- Các kiểu dữ liệu trong SQL server
2.1 Các kiểu dữ liệu trong SQL Server
2.1.2 Các kiểu dữ liệu kiểu số
Tinyint: Số nguy n có giá trị từ 0 đến 255
Sm llint: Số nguy n có giá trị từ -215 đến 215 – 1
Int: Số nguy n có giá trị từ -231 đến 231 - 1
Bigint: Số nguy n có giá trị từ -263 đến 263-1
Numeric: Kiểu số vớI độ chính xác cố định
Trang 29 Decim l(n, m): Tương tự kiểu Numeric nhưng cho phép ch ng t ch định số chữ số (n) và số chữ số l (m)
Re l: Số thực có giá trị từ -3.40E+38 đến 3.40E+38
Flo t: Số thực có giá trị từ -1.79E+308 đến 1.79E+308
Money: Kiểu tiền tệ
2.1.3 Các kiểu dữ liệu ngày tháng
Smalldatetime: Kiểu ngày giờ (chính xác đến ph t)
Datetime: Kiểu ngày giờ (chính xác đến phần trăm củ giây)
2.1.4 Kiểu dữ liệu luận lý
Bit: Là kiểu dữ liệu d ng luận l , ch nhận h i giá trị là 0 hoặc 1, tương ứng với true và false
2.1.5 Các kiểu dữ liệu dạng nhị phân
Binary: Dữ liệu nhị phân với độ dài cố định (tối đ 8000bytes)
Varbinary: Dữ liệu nhị phân với độ dài th y đổi (tối đ 8000 bytes)
Image: Dữ liệu nhị phân với độ dài th y đổi (tối đ 2,147,483,647bytes)
2.2 Các thao tác cơ bản trên giao diện người dùng (UI) của SQL Server 2.2.1 Đăng nhập vào SQL Server
S u khi cài đặt thành c ng, SQL Server mặc định nằm trong mục Microsoft SQL Server trong mục Progr m Files Ch ng t kích vào biểu tượng SQL Server M n gement Studio Express để khởi động SQL Server như h nh s u:
Trang 30Hình 2-1: Khởi động SQL
S u đó, sẽ xuất hiện cửa sổ Connect nhƣ s u:
Trong cửa sổ này, trong phần Servername, phải chọn đ ng t n servern me nhƣ đã cài đặt và trong phần xác thực thì có 2 chế độ xác thực:
+ Xác thực theo Windows thì chọn windows Authentication
+ Xác thực theoSQL Server thì chọn SQL Server Authentication và yêu cầu nhập đ ng login và p sswword
Để đăng nhập, ch ng t có thể chọn Windows Authentication hoặc SQL Server Authentic tion trong Authentic tion, việc chọn chế độ đăng nhập này còn phụ thuộc vào việc thiết lập tài khoản đăng nhập khi ch ng t cài đặt SQL Server Nếu chọn SQL Server Authentic tion th phải nhập p ssword P ssword này đƣợc thiết lập trong quá tr nh cài đặt SQL Server Express Edition
Hình 2-2: Kết nối SQL Server
Giao diện s u khi đăng nhập thành c ng:
Trang 31Hình 2-3: Giao diện đăng nhập
2.2.2 Tạo, xóa CSDL
Để t o CSDL mới, ch ng t kích chuột phải vào mục D t b ses, s u đó chọn New D t b se , như h nh s u:
Hình 2-4: Cửa sổ tạo CSDL
S u đó hộp tho i t o Database sẽ xuất hiện, t i đây ch ng t sẽ:
Đặt tên Database t i Database name, ví dụ đ ng t o Cơ sở dữ liệu để quản l sinh vi n và đặt tên Database là QLSV
Th y đổi kích thước khởi t o, kích thước gi tăng, kích thước tối đ cho
Trang 32Hình 2-5: Kết thúc quá trình tạo Database
Kết quả ta t o được D t b se như s u, trong trường hợp chư thấy tên CSDL vừa t o thì chúng ta có thể làm mới l i hệ thống bằng cách kích chuột phải vào mục d t b se s u đó chọn refresh
Hình 2-6: Kết quả tạo được Database
2.2.3 Cơ sở dữ liệu minh họa
Cơ sở dữ diệu QLSINHVIEN- quản l điểm sinh viên củ Trường ĐH Quảng N m được sử dụng làm ví dụ xuyên suốt trong giáo trình
2.2.4 Tạo bảng dữ liệu mới và các thuộc tính
Trang 33Hình 2-7: Cơ sở dữ liệu QLSV
Sau khi t o D t b se, ch ng t kích vào dấu cộng trước t n D t b se để bung cây phân cấp quản l các đối tượng trong CSDL, kích chuột phải l n mục Tables, chọn New Table
Hình 2-8: Cửa sổ tạo bảng
Cử sổ để t o cấu tr c củ bảng dữ liệu như h nh s u:
Trang 34Hình 2-9: Cửa sổ để tạo cấu tr c của ảng ữ liệu
Trong đó:
Column N me: T n trường thuộc tính trong bảng
Data Type: Kiểu dữ liệu củ các trường thuộc tính ( sẽ giới thiệu trong mục KIỂU DỮ LIỆU TRONG SQL)
Allow Nulls: Trường thuộc tính có nhận giá trị Null (Rỗng) hay không M i t n b n trái thể hiện Record hiện hành mà ch ng t đ ng ch nh sửa Bảng Column Properties có chứa các yếu tố tương ứng mà chúng ta có thể ch nh sử ri ng cho Record đó
Trong bảng sẽ có ít nhất một thuộc tính làm khó chính (prim ry key) Thuộc tính làm khó chính sẽ có biểu tượng ch khó trước t n thuộc tính Để chọn một hoặc một số thuộc tính nào đó làm khó chính th chọn các thuộc tính đó, kích chuột phải chọn Set Primary Key
S u đó lưu bảng vừa t o bằng cách nhấn Biểu tượng SAVE hoặc phím tắt Ctrl + S Cửa sổ Choose Name hiển thị Nhập tên Table nhấn Ok
Hình 2-10: Cửa sổ lưu tên ảng dữ liệu
Trang 35Trong trường hợp xó một CSDL, n n chọn dấu tích vào mục Close existing connections Khi đó SQL Server sẽ ngắt tất cả các kết nối vào CSDL này và việc xó sẽ kh ng gây báo lỗi
Trang 362.2.5.2 Sửa bảng
Để sử đổi bảng, t i tên bảng cần sử đổi, kích chuột phải chọn Design Cửa sổ design xuất hiện như cửa sổ t o bảng b n đầu, sau khi sửa ta lưu l i l i bảng
Chú ý: Mặc định của SQL Server là không cho phép ch nh sửa nên trong trường hợp lưu l i sau khi ch nh sửa thì sẽ xuất hiện hộp thoài như s u:
Hình 2-13: Cửa sổ lỗi SQL Server là không cho phép chỉnh sửa
Cách khắc phục như s u:
Từ giao diện Sql server management các vào Menu Tools chọn Options S u đó, gi o diện options sẽ hiện thị như h nh b n dưới:
Trong hộp tho i Options - Chọn Desingers > Table and Database Designers
Bỏ chọn Prevent saving changes that require table re-creation, nhấn OK để
hoàn tất
Trang 37Hình 2-14: Cửa sổ Table and Database Designers
2.2.6 Tạo database Diagram (mô hình CSDL)
Nhấp chọn CSDL cần t o Diagram, t i Database Diagram, kích chuột phải chọn New Database Diagram, xuất hiện hộp tho i chứa các bảng cần t o liên kết nhƣ s u:
Hình 2-15: Cửa sổ tạo Tạo database Diagram
Lần lƣợc chọn bảng, nhấp add, sau khi hoàn tất, sẽ xuất hiện cửa sổ sau:
Hình 2-16: Cửa sổ thêm bảng vào mô hình database Diagram
Thực hiện việc kết nối bằng cách nhấp chuột trái vào bảng chứa khóa chính, s u đó kéo đến bảng chứa khóa ngo i, hộp tho i sau xuất hiện:
Trang 38Hình 2-17: Cửa sổ kết nối các bảng trong mô hình database Diagram
Nhấp chọn OK và tiếp tục thực hiện kết nối các bảng còn l i Sau khi việc kết nối hoàn tất, thì cửa số Database Diagram sẽ xuất hiện như s u, t bấm biểu tượng lưu hoặc cltr+S để lưu D t b se di gr m tr n
Hình 2-18: Cửa sổ hoàn tất việc tạo database Diagram
2.2.7 Mở cửa sổ viết câu truy vấn (SQL Editor)
Để mở cử sổ so n thảo câu lệnh SQL, ch ng t kích vào n t New Query tr n th nh c ng cụ
Cần ch là câu lệnh SQL sẽ có tác dụng tr n CSDL đ ng được chọn gọi là CSDL hiện hành trong hộp chọn Do đó cần ch lựa chọn Database
Trang 39mong muốn trong danh sách xổ xuống trước khi thực thi lệnh trong cửa sổ viết câu truy vấn
Hình 2-19: Cửa sổ viết câu truy vấn
2.3 Sao lưu và phục hồi dữ liệu (Backup and Restore)
S o lưu ( B ckup) và phục hồi (Restore) dữ liệu trong sql server là một trong những thao tác quan trọng mà người quản trị cơ sở dữ liệu phải thực hiện Đây là kỹ thuật thường được sử dụng nhằm bảo đảm an toàn dữ liệu phòng trường hợp CSDL xảy ra sự cố Nếu như th o tác s o lưu (B ckup database) được thực hiện để lưu dữ liệu và được thực hiện thường xuyên thì thao tác phục hồi dữ liệu (Restore database) ch được thực hiện khi nào máy chủ bị sự cố như hư ổ cứng hoặc dữ liệu bị mất do người dùng vô tình hoặc cố xoá,… Ngoài r th o tác phục hồi dữ liệu c ng được thực hiện để sao chép database từ máy chủ này sang máy chủ khác
Hình 2-20: Mô hình sao lưu và phục hổi dữ liệu
Trang 402.3.1 Các lý do phải thực hiện Backup
Trong quá tr nh thực hiện quản trị CSDL SQL Server th một số nguy n nhân s u đây bắt buộc phải xem xét đến kỹ thuật s o lưu và kh i phục
Microsoft SQL Server cung cấp h i kỹ thuật s o lưu CSDL chính, đó là: full b ckup và differenti l b ckup Ngoài r , SQL Server còn cung cấp cơ chế Transaction log backup
2.3.2.1 Full backup và Differential backup
+ Full b ckup: s o lưu một bản đầy đủ củ CSDL tr n các phương tiện lưu trữ Quá tr nh full b ckup có thể tiến hành mà kh ng cần offline CSDL, nhưng quá tr nh này l i chiếm một lượng lớn tài nguy n hệ thống và có thể ảnh hưởng nghi m trọng tới thời gi n đáp ứng các y u cầu của hệ thống V vậy máy chủ sẽ mất nhiều thời gi n để thực hiện nếu database lớn
+ Differenti l b ckup: được xây dựng nhằm làm giảm thời gi n cần thiết để thực hiện quá tr nh full b ckup Differenti l b ckup ch s o lưu những th y đổi tr n dữ liệu kể từ lần full backup gần nhất Trong những hệ thống CSDL lớn, quá tr nh differenti l b ckup sẽ sử dụng tài nguy n ít hơn rất nhiều so với quá tr nh full b ckup và có thể kh ng ảnh hưởng đến hiệu suất của hệ thống
+ Quá tr nh differenti l b ckup ch s o lưu những sự th y đổi của dữ liệu từ lần full backup gần nhất, do đó khi có sự cố với CSDL nếu kh ng có bản s o lưu củ quá tr nh full b ckup th bản s o lưu của quá tr nh differenti l b ckup sẽ trở n n v nghĩ
Ví dụ: C ng ty X thực hiện full b ckup vào cuối ngày thứ 6 hàng tuần và thực hiện differenti l b ckup vào tối các ngày từ thứ 2 tới thứ 5 Nếu CSDL có sự cố vào sáng thứ 4, quản trị vi n CSDL sẽ phục hồi dữ liệu bằng bản s o lưu củ quá tr nh full b ckup củ ngày thứ 6 tuần trước và s u đó phục hồi