mở đầu và 9 bài: Bài 1: Tổng quan về SQL Server Bài 2: Bộ công cụ Management Studio Bài 3: Định nghĩa dữ liệu với T-SQL Bài 4: Thao tác dữ liệu với T-SQL Bài 5: Bảo mật cơ sở dữ liệu SQL Server. Bài 6: Thủ tục lưu trữ. Bài 7: Hàm do người dùng định nghĩa. Bài 9: Quản lí giao dịch và khóa Mặc dầu có rất nhiều cố gắng, nhưng không tránh khỏi những khiếm khuyết, rất mong nhận được sự đóng góp ý kiến của độc giả để giáo trình được hoàn thiện hơn.
Xin chân thành cảm ơn! Quảng Bình, ngày tháng năm 2019 Biên soạn ThS. Lương Thanh Phương ThS. Nguyễn Thành Minh -5- MỤC LỤC BÀI 1: TỔNG QUAN VỀ SQL SERVER. Kiến trúc truy cập cơ sở dữ liệu.
trúc chung - General Kiến. Kiến trúc bộ nhớ - Memory. Kiến trúc file dữ liệu - Data file. Kiến trúc file nhật ký - Log file.
Giới thiệu một số dịch vụ của SQL server. Ngôn ngữ lập trình trong SQL Server. Lệnh IF ELSE. Hàm Case When.
Vòng lặp While. 19 BÀI 2: BỘ CÔNG CỤ MANAGEMENT STUDIO. Cài đặt Microsoft SQL Server. Cài đặt bản nâng cấp Windows.
Cài đặt SQL Server. Khởi động SQL Server. Một số thao tác với SQL Server. Đăng nhập SQL Server.
Tạo và thực thi các câu truy vấn với trình soạn thảo trên dữ liệu mẫu, kịch bản 31 2. Quản lý cơ sở dữ liệu. Tạo mới một Database. Phục hồi Database (Restore).
Gỡ bỏ Database (Detach). Đính kèm Database (Attach). 40 BÀI TẬP BÀI 2. 42 BÀI 3: ĐỊNH NGHĨA DỮ LIỆU VỚI T-SQL.
Ngôn ngữ định nghĩa dữ liệu. Tạo và sửa đổi cấu trúc cơ sở dữ liệu. Tạo tập tin cơ sở dữ liệu. Tạo khung nhìn .2 Cập nhật, bổ sung và xoá dữ liệu thông qua khung nhìn .3 Sửa đổi khung nhìn.
71 -6- BÀI TẬP CÓ HƯỚNG DẪN BÀI 3. 72 BÀI TẬP BÀI 3. 78 BÀI 4: THAO TÁC DỮ LIỆU VỚI T-SQL.Truy xuất dữ liệu với câu lệnh SELECT. Danh sách chọn trong câu lệnh SELECT.Chỉ định điều kiện truy vấn dữ liệu .Tạo mới bảng dữ liệu từ kết quả của câu lệnh SELECT.
Sắp xếp kết quả truy vấn .Thống kê dữ liệu với GROUP BY. Truy vấn con (Subquery). Bổ sung, cập nhật và xoá dữ liệu .Bổ sung dữ liệu .Cập nhật dữ liệu .Xoá dữ liệu. 108 BÀI TẬP CÓ HƯỚNG DẪN BÀI 4.
109 BÀI TẬP BÀI 4. 121 BÀI 5: BẢO MẬT CƠ SỞ DỮ LIỆU SQL SERVER. Các chế độ bảo mật. Quản lý người dùng.
Cấp phát quyền .Cấp phát quyền cho người dùng trên các đối tượng cơ sở dữ liệu .Cấp phát quyền thực thi các câu lệnh .Thu hồi quyền.Thu hồi quyền trên đối tượng cơ sở dữ liệu: .Thu hồi quyền thực thi các câu lệnh:. 132 BÀI TẬP CÓ HƯỚNG DẪN BÀI 5. 132 BÀI TẬP BÀI 5. 135 BÀI 6: THỦ TỤC LƯU TRỮ.
Tạo thủ tục lưu trữ. Lời gọi thủ tục lưu trữ. Định nghĩa và sử dụng biến. Giá trị trả về trong thủ tục lưu trữ.
Sửa và xoá thủ tục lưu trữ.1 Sửa thủ tục. Xoá thủ tục. 146 -7- BÀI TẬP CÓ HƯỚNG DẪN BÀI 6. 147 BÀI TẬP BÀI 6.
149 BÀI 7: HÀM DO NGƯỜI DÙNG ĐỊNH NGHĨA. Hàm vô hướng. Hàm nội tuyến. Hàm bao gồm nhiều câu lệnh bên trong.
Sửa và xoá hàm.Sửa đổi hàm. Thực thi các hàm do người dùng định nghĩa. 154 BÀI TẬP CÓ HƯỚNG DẪN BÀI 7. 155 BÀI TẬP BÀI 7.
Giới thiệu về trigger. Tạo, thay thế, loại bỏ triggers. Kích hoạt trigger khi thay đổi dữ liệu cột (if update). Sử dụng trigger và giao tác (transaction).
Vô hiệu hóa hay kích hoạt trigger. 169 BÀI TẬP BÀI 8. 169 BÀI 9: QUẢN LÝ GIAO DỊCH VÀ KHÓA. 176 BÀI TẬP BÀI 9.
180 MỘT SỐ HÀM THƯỜNG SỬ DỤNG .Các hàm trên dữ liệu kiểu chuỗi .Các hàm trên dữ liệu kiểu ngày giờ.Hàm chuyển đổi kiểu. 186 CƠ SỞ DỮ LIỆU MẪU SỬ DỤNG TRONG GIÁO TRÌNH. 187 TÀI LIỆU THAM KHẢO. 193 -8- BÀI 1: TỔNG QUAN VỀ SQL SERVER Mục tiêu của bài: - Khái quát hóa được lịch sử phát triển của hệ quản trị cơ sở dữ liệu SQL Server; - Trình bày được vai trò của SQL Server trong các ứng dụng quản trị dữ liệu; - Vận dụng kiến trúc bên trong của hệ quản trị cơ sở dữ liệu SQL Server để nghiên cứu lập trình trong bài toán thực tiễn trong các chương sau; - Có thái độ làm việc cẩn thận, khoa học, chính xác.
Giới thiệu SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System (RDBMS) ) sử dụng câu lệnh SQL (Transact-SQL) để trao đổi dữ liệu giữa máy Client và máy cài SQL Server. Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS. 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 Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user. SQL Server có thể kết hợp “ăn ý” với các server khác như Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server….
Một vài ấn bản SQL Server: Enterprise : chứa tất cả cá đặc điểm nổi bật của SQL Server, bao gồm nhân bộ máy cơ sở dữ liệu và các dịch vụ đi kèm cùng với các công cụ cho tạo và quản lý phân cụm SQL Server. Nó có thể quản lý các CSDL lớn tới 524 terabytes và đánh địa chỉ 12 terabytes bộ nhớ và hỗ trợ tới 640 bộ vi xử lý(các core của cpu) Standard : Rất thích hợp cho các công ty vừa và nhỏ vì giá thành rẻ hơn nhiều so với Enterprise Edition, nhưng lại bị giới hạn một số chức năng cao cấp (advanced features) khác, edition này có thể chạy tốt trên hệ thống lên đến 4 CPU và 2 GB RAM Developer : Có đầy đủ các tính năng của Enterprise Edition nhưng được chế tạo đặc biệt như giới hạn số lượng người kết nối vào Server cùng một lúc…. Ðây là phiên bản sử dụng cho phát triển và kiểm tra ứng dụng. Phiên bản này phù hợp cho các cá nhân, tổ chức xây dựng và kiểm tra ứng dụng Workgroup: ấn bản SQL Server Workgroup bao gồm chức năng lõi cơ sở dữ liệu nhưng không có các dịch vụ đi kèm.
Chú ý phiên bản này không còn tồn tại ở SQL Server 2012. Express : SQL Server Express dễ sử dụng và quản trị cơ sở dữ liệu đơn giản. Được tích hợp với Microsoft Visual Studio, nên dễ dàng để phát triển các ứng dụng dữ liệu, an toàn trong lưu trữ, và nhanh chóng triển khai. SQL Server Express là phiên bản miễn phí, không giới hạn về số cơ sở dữ liệu hoặc người sử dụng, nhưng nó chỉ dùng cho 1 bộ vi xử lý với 1 GB bộ nhớ và 10 GB file cơ sở dữ liệu.
SQL Server Express là lựa chọn tốt cho những người dùng chỉ cần một phiên bản SQL Server 2005 nhỏ gọn, dùng trên máy chủ có cấu hình thấp, những nhà phát triển ứng dụng không chuyên hay những người yêu thích xây dựng các ứng dụng nhỏ. Lịch sử ra đời SQL Server và các phiên bản -9- Phiên bản đầu tiên của Microsoft SQL Server ra đời đầu tiên vào năm 1989 cho các hệ điều hành chạy 16 bít với SQL Server phiên bản 1.0 và tiếp tục phát triển cho tới ngày nay. SQL Server của Microsoft được thị trường chấp nhận rộng rãi kể từ version 6. Sau đó Microsoft đã cải tiến và hầu như viết lại một engine mới cho SQL Server 7.
Cho nên có thể nói từ version 6.0 là một bước nhảy vọt. Có một số đặc tính của SQL Server 7.0 không tương thích với version 6. Trong khi đó từ Version 7.0 (SQL Server 2000) thì những cải tiến chủ yếu là mở rộng các tính năng về web và làm cho SQL Server 2000 đáng tin cậy hơn Một điểm đặc biệt đáng lưu ý ở phiên bản 2000 là Multiple-Instance. Tức là bạn có thể cài đặt phiên bản 2000 chung với các phiên bản trước mà không cần phải gỡ chúng.
Nghĩa là bạn có thể chạy song song version 6.0 với phiên bản 2000 trên cùng một máy (điều này không thể xảy ra với các phiên bản trước đây). Khi đó phiên bản cũ trên máy bạn là Default Instance còn phiên bản 2000 mới vừa cài sẽ là Named Instance. Từ tháng 10 năm 2016, các phiên bản sau được Microsoft hỗ trợ: SQL Server 2008 R2, SQL Server 2012, SQL Server 2014, SQL Server 2016 SQL Server 2017, SQL Server 2019 1. Kiến trúc truy cập cơ sở dữ liệu Kiến trúc truy cập cơ sở dữ liệu của SQL Server có thể phân thành những phần dưới sau đây: ➢ Kiến trúc chung - General ➢ Kiến trúc bộ nhớ - Memory ➢ Kiến trúc file dữ liệu - Data file ➢ Kiến trúc file nhật ký - Log file 1.
trúc chung - General Kiến - Client: Nơi khởi tạo yêu cầu. - Query: Truy vấn SQL là ngôn ngữ bậc cao. - Logical Units: Keyword, biểu thức, toán tử,. - N/W Packets: Code liên quan đến mạng.
- Protocols: Trong SQL Server ta có 4 giao thức: + Shared memory: Dành cho các kết nối cục bộ và mục đích khắc phục sự cố. + Named pipes: Dành cho những kết nối trong mạng LAN. + TCP/IP: Dành cho các kết nối với mạng WAN. + VIA-Virtual Interface Adapter: Yêu cầu phần cứng đặc biệt được thiết lập bởi nhà cung cấp và cũng không được hỗ trợ từ bản SQL 2012.1 Sơ đồ Kiến trúc SQL Server - Server: Nơi SQL Services được cài đặt và có database.
- Relational Engine: Đây là nơi sự thực hiện (execution) thực sự sẽ được hoàn thành. Nó chứa bộ phân tích Query, tối ưu hóa Query và bộ thực thi Query. - Query Parser (Command Parser) và Compiler (Translator): 2 thằng này chịu trách nhiệm kiểm tra cú pháp của truy vấn và chuyển đổi truy vấn sang ngôn ngữ của máy. - Query Optimizer: Nó sẽ chuẩn bị output là Execution Plan bằng cách lấy input là truy vấn, các thống kê và cây Algebrizer - Execution Plan: Giống như một bản đồ chỉ đường, chứa thứ tự các bước thực hiện như là một phần của việc thực hiện các truy vấn.
- Query Executor: Đây là nơi truy vấn được thực hiện từng bước một, với sự giúp đỡ của Execution Plan và cũng là nơi Storage Engine sẽ được liên lạc. - Storage Engine: Chịu trách nhiệm lưu trữ, truy xuất dữ liệu trong hệ thống lưu trữ (ổ đĩa, SAN,.), thao tác dữ liệu, khóa và quản lý các transaction. - SQL OS: Nằm giữa máy host (Windows OS) và SQL Server.