Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 188 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
188
Dung lượng
6,56 MB
Nội dung
MỤC LỤC BÀI 1: TỔNG QUAN VỀ SQL SERVER 1.1 Giới thiệu 1.2 Kiến trúc truy cập sở liệu 1.2.1 trúc chung - General Kiến 1.2.2 Kiến trúc nhớ - Memory .7 1.2.3 Kiến trúc file liệu - Data file 1.2.4 Kiến trúc file nhật ký - Log file 1.3 Giới thiệu số dịch vụ SQL server 10 1.4 Ngơn ngữ lập trình SQL Server 11 1.4.1 Lệnh IF 11 1.4.2 Lệnh IF ELSE 11 1.4.3 Hàm Case When 12 1.4.4 Vòng lặp While 14 BÀI 2: BỘ CÔNG CỤ MANAGEMENT STUDIO 15 2.1 Cài đặt Microsoft SQL Server .15 2.1.1 Cài đặt.Net FrameWork 3.5 .15 2.1.2 Cài đặt nâng cấp Windows 15 2.1.3 Cài đặt SQL Server 15 2.1.4 Khởi động SQL Server .23 2.2 Một số thao tác với SQL Server 24 2.2.1 Đăng nhập SQL Server 24 2.2.2 Tạo thực thi câu truy vấn với trình soạn thảo liệu mẫu, kịch bản26 2.3 Quản lý sở liệu 28 2.3.1 Tạo Database .28 2.3.2 Sao lưu Database (Backup) 31 2.3.3 Xoá Database (Delete) .33 2.3.4 Phục hồi Database (Restore) 33 2.3.5 Gỡ bỏ Database (Detach) 35 2.3.6 Đính kèm Database (Attach) 35 BÀI TẬP BÀI 37 BÀI 3: ĐỊNH NGHĨA DỮ LIỆU VỚI T-SQL 38 3.1 Ngôn ngữ định nghĩa liệu 38 3.2 Tạo sửa đổi cấu trúc sở liệu 39 3.2.1 Tạo tập tin sở liệu 39 3.2.2 Tạo bảng 43 3.3 Khung nhìn (View) 60 3.3.1 Tạo khung nhìn 62 3.3.2 Cập nhật, bổ sung xố liệu thơng qua khung nhìn 63 3.3.3 Sửa đổi khung nhìn 66 -1- BÀI TẬP CÓ HƯỚNG DẪN BÀI 67 BÀI TẬP BÀI 73 BÀI 4: THAO TÁC DỮ LIỆU VỚI T-SQL 76 4.1.Truy xuất liệu với câu lệnh SELECT 76 4.1.1.Mệnh đề FROM 77 4.1.2 Danh sách chọn câu lệnh SELECT 77 4.1.3.Chỉ định điều kiện truy vấn liệu 81 4.1.4.Tạo bảng liệu từ kết câu lệnh SELECT 85 4.1.5 Sắp xếp kết truy vấn 85 4.1.6 Phép hợp 86 4.1.7 Phép nối 88 4.1.8.Thống kê liệu với GROUP BY 94 4.1.9 Truy vấn (Subquery) 96 4.2 Bổ sung, cập nhật xoá liệu 99 4.2.1.Bổ sung liệu 99 4.2.2.Cập nhật liệu 101 4.2.3.Xoá liệu .103 BÀI TẬP CÓ HƯỚNG DẪN BÀI 104 BÀI TẬP BÀI 116 BÀI 5: BẢO MẬT CƠ SỞ DỮ LIỆU SQL SERVER 119 5.1 Các khái niệm 119 5.1.1 Các chế độ bảo mật 119 5.1.2 Quản lý người dùng .120 5.2 Cấp phát quyền 122 5.2.1.Cấp phát quyền cho người dùng đối tượng sở liệu 122 5.2.2.Cấp phát quyền thực thi câu lệnh 124 5.3.Thu hồi quyền 125 5.3.1.Thu hồi quyền đối tượng sở liệu: 125 5.3.2.Thu hồi quyền thực thi câu lệnh: 127 BÀI TẬP CÓ HƯỚNG DẪN BÀI 127 BÀI TẬP BÀI .130 BÀI 6: THỦ TỤC LƯU TRỮ 134 6.1 Các khái niệm 134 6.2 Tạo thủ tục lưu trữ 136 6.3 Lời gọi thủ tục lưu trữ .138 6.4 Định nghĩa sử dụng biến 138 6.5 Giá trị trả thủ tục lưu trữ .139 6.6 Sửa xoá thủ tục lưu trữ 141 6.6.1 Sửa thủ tục 141 6.6.2 Xoá thủ tục .141 BÀI TẬP CÓ HƯỚNG DẪN BÀI 142 -2- BÀI TẬP BÀI .144 BÀI 7: HÀM DO NGƯỜI DÙNG ĐỊNH NGHĨA .145 7.1 Hàm vô hướng 146 7.2 Hàm nội tuyến 147 7.3 Hàm bao gồm nhiều câu lệnh bên 147 7.4 Sửa xoá hàm 148 7.4.1.Sửa đổi hàm 148 7.4.2 Xoá hàm 149 7.5 Thực thi hàm người dùng định nghĩa .149 BÀI TẬP CÓ HƯỚNG DẪN BÀI 150 BÀI TẬP BÀI .153 BÀI 8: TRIGGER 154 8.1 Giới thiệu trigger 154 8.2 Tạo, thay thế, loại bỏ triggers 155 8.3 Kích hoạt trigger thay đổi liệu cột (if update) 157 8.4 Sử dụng trigger giao tác (transaction) 158 8.5 Vơ hiệu hóa hay kích hoạt trigger .164 BÀI TẬP BÀI .164 BÀI 9: QUẢN LÝ GIAO DỊCH VÀ KHÓA 166 9.1 Giao dịch(hay gọi Giao tác, tiếng Anh: transaction) 166 9.2 Khóa 171 BÀI TẬP BÀI .175 MỘT SỐ HÀM THƯỜNG SỬ DỤNG 178 1.Các hàm liệu kiểu chuỗi 178 2.Các hàm liệu kiểu ngày 180 3.Hàm chuyển đổi kiểu 181 CƠ SỞ DỮ LIỆU MẪU SỬ DỤNG TRONG GIÁO TRÌNH .182 TÀI LIỆU THAM KHẢO 188 BÀI 1: TỔNG QUAN VỀ SQL SERVER -3- Mục tiêu bài: - Khái quát hóa lịch sử phát triển hệ quản trị sở liệu SQL Server; - Trình bày vai trò SQL Server ứng dụng quản trị liệu; - Vận dụng kiến trúc bên hệ quản trị sở liệu SQL Server để nghiên cứu lập trình tốn thực tiễn chương sau; - Có thái độ làm việc cẩn thận, khoa học, xác 1.1 Giới thiệu SQL Server hệ quản trị sở liệu quan hệ (Relational Database Management System (RDBMS) ) sử dụng câu lệnh SQL (Transact-SQL) để trao đổi liệu máy Client máy cài SQL Server Một RDBMS bao gồm databases, database engine ứng dụng dùng để quản lý liệu phận khác RDBMS SQL Server tối ưu để chạy môi trường sở liệu lớn (Very Large Database Environment) lên đến Tera-Byte phục vụ lúc cho hàng ngàn user SQL Server kết hợp “ăn ý” với server khác Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server… Một vài ấn SQL Server: Enterprise : chứa tất cá đặc điểm bật SQL Server, bao gồm nhân máy sở liệu dịch vụ kèm với công cụ cho tạo quản lý phân cụm SQL Server Nó quản lý CSDL lớn tới 524 terabytes đánh địa 12 terabytes nhớ hỗ trợ tới 640 vi xử lý(các core cpu) Standard : Rất thích hợp cho cơng ty vừa nhỏ giá thành rẻ nhiều so với Enterprise Edition, lại bị giới hạn số chức cao cấp (advanced features) khác, edition chạy tốt hệ thống lên đến CPU GB RAM Developer : Có đầy đủ tính Enterprise Edition chế tạo đặc biệt giới hạn số lượng người kết nối vào Server lúc… Ðây phiên sử dụng cho phát triển kiểm tra ứng dụng Phiên phù hợp cho cá nhân, tổ chức xây dựng kiểm tra ứng dụng Workgroup: ấn SQL Server Workgroup bao gồm chức lõi sở liệu dịch vụ kèm Chú ý phiên khơng cịn tồn SQL Server 2012 Express : SQL Server Express dễ sử dụng quản trị sở liệu đơn giản Được tích hợp với Microsoft Visual Studio, nên dễ dàng để phát triển ứng dụng liệu, an toàn lưu trữ, nhanh chóng triển khai SQL Server Express phiên miễn phí, khơng giới hạn số sở liệu người sử dụng, dùng cho vi xử lý với GB nhớ 10 GB file sở liệu SQL Server Express lựa chọn tốt cho người dùng cần phiên SQL Server 2005 nhỏ gọn, dùng máy chủ có cấu hình thấp, nhà phát triển ứng dụng khơng chun hay người u thích xây dựng ứng dụng nhỏ Lịch sử đời SQL Server phiên -4- Phiên Microsoft SQL Server đời vào năm 1989 cho hệ điều hành chạy 16 bít với SQL Server phiên 1.0 tiếp tục phát triển ngày SQL Server Microsoft thị trường chấp nhận rộng rãi kể từ version 6.5 Sau Microsoft cải tiến viết lại engine cho SQL Server 7.0 Cho nên nói từ version 6.5 lên version 7.0 bước nhảy vọt Có số đặc tính SQL Server 7.0 khơng tương thích với version 6.5 Trong từ Version 7.0 lên version 8.0 (SQL Server 2000) cải tiến chủ yếu mở rộng tính web làm cho SQL Server 2000 đáng tin cậy Một điểm đặc biệt đáng lưu ý phiên 2000 Multiple-Instance Tức bạn cài đặt phiên 2000 chung với phiên trước mà không cần phải gỡ chúng Nghĩa bạn chạy song song version 6.5 7.0 với phiên 2000 máy (điều xảy với phiên trước đây) Khi phiên cũ máy bạn Default Instance phiên 2000 vừa cài Named Instance Từ tháng 10 năm 2016, phiên sau Microsoft hỗ trợ: SQL Server 2008 R2, SQL Server 2012, SQL Server 2014, SQL Server 2016 SQL Server 2017, SQL Server 2019 1.2 Kiến trúc truy cập sở liệu Kiến trúc truy cập sở liệu SQL Server phân thành phần sau đây: Kiến trúc chung - General Kiến trúc nhớ - Memory Kiến trúc file liệu - Data file Kiến trúc file nhật ký - Log file 1.2.1 trúc chung - General Kiến - Client: Nơi khởi tạo yêu cầu - Query: Truy vấn SQL 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ó giao thức: + Shared memory: Dành cho kết nối cục mục đích khắc phục cố + Named pipes: Dành cho kết nối mạng LAN + TCP/IP: Dành cho kết nối với mạng WAN + VIA-Virtual Interface Adapter: Yêu cầu phần cứng đặc biệt thiết lập nhà cung cấp không hỗ trợ từ SQL 2012 -5- Hình 1.1 Sơ đồ Kiến trúc SQL Server - Server: Nơi SQL Services cài đặt có database - Relational Engine: Đây nơi thực (execution) thực hồn thành Nó chứa phân tích Query, tối ưu hóa Query thực thi Query - Query Parser (Command Parser) Compiler (Translator): thằng chịu trách nhiệm kiểm tra cú pháp truy vấn chuyển đổi truy vấn sang ngôn ngữ máy - Query Optimizer: Nó chuẩn bị output Execution Plan cách lấy input truy vấn, thống kê Algebrizer - Execution Plan: Giống đồ đường, chứa thứ tự bước thực phần việc thực truy vấn - Query Executor: Đây nơi truy vấn thực bước một, với giúp đỡ Execution Plan nơi Storage Engine liên lạc - Storage Engine: Chịu trách nhiệm lưu trữ, truy xuất liệu hệ thống lưu trữ (ổ đĩa, SAN, ), thao tác liệu, khóa quản lý transaction - SQL OS: Nằm máy host (Windows OS) SQL Server Tất hoạt động thực engine sở liệu "chăm sóc" SQL OS SQL OS cung cấp dịch vụ hệ điều hành khác nhau, chẳng hạn hoạt động quản lý nhớ với buffer pool, log buffer, phát deadlock (khóa chết) cách sử dụng cấu trúc block lock -6- - Checkpoint: Checkpoint tiến trình nội bộ, ghi tất trang sửa đổi (gọi Dirty Page) từ Buffer Cache vào ổ đĩa vật lý Ngoài ra, ghi log từ Log Buffer vào file vật lý Việc ghi lại Dirty Page vào ổ đĩa biết đến Hardening of dirty pages (cứng hóa Dirty Page) - Lazy Writer: Lazy Writer đẩy Dirty Page ổ cứng lý hồn tồn khác, giải phóng nhớ Buffer Pool Điều xảy SQL Server bị thiếu nhớ Tiến trình kiểm sốt tiến trình Internal khơng có thiết lập cho SQL Server liên tục giám sát việc sử dụng nhớ để đánh giá tính khả dụng mức cạnh tranh tài nguyên, giúp đảm bảo ln có sẵn dung lượng trống định Khi phát xung đột tài ngun nào, kích hoạt Lazy Writer để chuyển số Dirty Page vào ổ đĩa giải phóng nhớ Nó sử dụng thuật tốn Least Recently Used (LRU) để định trang đẩy vào ổ cứng Nếu Lazy Writer ln hoạt động, tạo nút thắt cổ chai với nhớ 1.2.2 Kiến trúc nhớ - Memory Sau tính bật kiến trúc nhớ: - Một mục tiêu thiết kế tất phần mềm sở liệu giảm thiểu I/O ổ đĩa trình đọc ghi đĩa hành động sử dụng nhiều tài nguyên - Bộ nhớ Windows gọi với Virtual Address Space, chia sẻ chế độ Kernel (chế độ OS) User (ứng dụng SQL Server) - User address space SQL Server chia thành phần: MemToLeave Buffer Pool - Kích thước MemToLeave (MTL) Buffer Pool (BPool) định SQL Server trình khởi động - Buffer Management thành phần quan trọng muốn đạt hiệu suất I/O cao Nó bao gồm chế: Buffer Manager để truy cập cập nhật trang sở liệu Buffer Pool để cắt giảm I/O file vào database - Buffer Pool chia thành nhiều phần, quan trọng Buffer Cache Procedure Cache Buffer Cache giữ trang liệu nhớ để liệu thường xun truy cập trích xuất từ nhớ cache Quá trình thay đọc trang liệu từ ổ đĩa Đọc liệu từ cache tối ưu hóa hiệu suất cách giảm thiểu số lượng thao tác I/O, vốn chậm so với truy xuất liệu từ nhớ - Procedure Cache giữ thủ tục lưu trữ Excecution Plan để tối ưu hóa số lần Excecution Plan tạo Bạn tìm thấy thơng tin dung lượng hoạt động Procedure Cache sử dụng lệnh DBCC PROCCACHE - Các phần khác Buffer Pool bao gồm: + Các cấu trúc liệu mức hệ thống: Chứa liệu mức Instance sở liệu, khóa + Log Cache: Dành riêng cho việc đọc ghi trang transaction -7- + Connection Context: Mỗi kết nối với Instance có vùng nhỏ nhớ để ghi trạng thái kết nối Thông tin bao gồm thủ tục lưu trữ thông số hàm người dùng xác định, vị trí trỏ chuột nhiều + Stack Space: Windows phân bổ stack space cho luồng bắt đầu với SQL Server 1.2.3 Kiến trúc file liệu - Data file Kiến trúc có thành phần sau: File Group: Các file sở liệu nhóm lại với thành nhóm file để phân bổ quản lý theo mục đích Một file thành viên nhóm file Các file log khơng thể nhóm vào File Group dung lượng file log quản lý riêng biệt với dung lượng liệu Có hai loại File Group SQL Server Primary User-defined Primary chứa file liệu file khơng gán cụ thể cho File Group khác Tất trang cho bảng hệ thống cấp phát Primary User-defined nhóm file người dùng định nghĩa, định cách sử dụng từ khóa File group lệnh tạo sở liệu xóa sở liệu Một File Group sở liệu hoạt động nhóm file mặc định Khi SQL Server định trang cho bảng mục (không nằm File Group tạo) trang nằm nhóm file mặc định Để chuyển đổi nhóm file mặc định từ File Group sang File Group khác, cần có db_owner fixed database role Primary nhóm tệp mặc định User cần có db_owner fixed database role để lưu tập tin nhóm file riêng lẻ File: Cơ sở liệu có loại file Primary (file liệu chính), Secondary (file liệu phụ) Log (file nhật ký) Primary điểm bắt đầu sở liệu trỏ đến file khác sở liệu Mỗi sở liệu có Primary Bạn đặt phần mở rộng cho file liệu được, khuyến nghị nên để mdf File liệu phụ file khác file liệu Một sở liệu có nhiều có file liệu phụ Phần mở rộng cho file liệu phụ nên đặt ndf Các file log giữ tất thông tin sử dụng để phục hồi sở liệu Cơ sở liệu phải có file log Chúng ta có nhiều file log cho sở liệu Phần mở rộng nên đặt ldf Vị trí tất file sở liệu ghi lại sở liệu tổng thể file Primary sở liệu Trong hầu hết trường hợp, cơng cụ sở liệu sử dụng vị trí file từ sở liệu tổng thể File có tên Logical Physical Logical sử dụng để tham chiếu đến file tất lệnh T-SQL Tên Physical OS_file_name, phải tuân theo quy tắc hệ điều hành File liệu file log đặt hệ thống file FAT NTFS, đặt hệ thống file nén Có thể có tối đa 32.767 file sở liệu -8- Extent: Extent đơn vị khơng gian phân bổ cho bảng, mục Mỗi Extent trang liền kề 64KB SQL Server có loại Extent Uniform Mixed Uniform tạo thành từ object nhất, Mixed tạo thành từ tối đa object Page: Page (trang) đơn vị lưu trữ liệu SQL Server Kích thước trang 8KB Bắt đầu trang 96byte tiêu đề, sử dụng để lưu trữ thông tin hệ thống loại trang, số lượng không gian trống trang ID đối tượng sở hữu trang Có loại trang liệu SQL Server: + Data: Các hàng liệu với tất liệu từ text, ntext ảnh + Index: Các mục mục + Tex\Image: Dữ liệu text, ntext ảnh + GAM: Thông tin extent định + SGAM: Thông tin extent cấp phát mức hệ thống + Page Free Space (PFS): Thông tin khơng gian trống có trang + Index Allocation Map (IAM): Thông tin extent sử dụng bảng mục + Bulk Changed Map (BCM): Thông tin extent sử đổi hoạt động hàng loạt kể từ lệnh ghi lưu cuối + Differential Changed Map (DCM): Thông tin extent thay đổi kể từ lệnh lưu sở liệu cuối 1.2.4 Kiến trúc file nhật ký - Log file Các log transaction SQL Server hoạt động hợp lý chuỗi ghi log Mỗi ghi log xác định Log Sequence Number (LSN), chứa ID transaction mà thuộc Log ghi lại sửa đổi liệu hoạt động thực hay lấy hình ảnh trước sau liệu bị chỉnh sửa Hình ảnh trước liệu trước thao tác thực hiện, hình ảnh sau liệu sau thao tác thực Các bước để phục hồi hoạt động phụ thuộc vào loại ghi log +Thao tác logic log +Để tới thao tác logic trước, thao tác thực lại +Để quay lại thao tác logic phía sau, thao tác logic đảo ngược thực +Ảnh trước sau log +Để tới thao tác trước, ảnh sau áp dụng +Để quay lại thao tác phía sau, ảnh trước áp dụng Các thao tác khác ghi lại log transaction Những thao tác sau có đó: -9- + Bắt đầu kết thúc transaction + Mọi sửa đổi liệu (chèn, cập nhật, xóa), bao gồm thay đổi thủ tục lưu trữ hệ thống lệnh ngôn ngữ định nghĩa liệu (DDL) đến bảng, bao gồm bảng hệ thống + Mọi extent phân bổ, hủy phân bổ trang + Tạo xóa bảng, mục Các thao tác rollback log lại Mỗi transaction giữ khoảng không gian log để chắn có đủ khơng gian log cần thiết cho rollback thực lệnh thông báo lỗi Khơng gian giải phóng transaction hoàn tất Phần file log từ log (bắt buộc phải có để khơi phục lại tồn sở liệu thành công) đến log cuối gọi phần hoạt động log hay log hoạt động Đây phần log bắt buộc để phục hồi sở liệu đầy đủ Khơng có phần log hoạt động cắt xén LSN ghi log gọi LSN phục hồi tối thiểu (Min LSN) SQL Server Database Engine chia file log Physical thành số file log ảo File log ảo khơng có kích thước cố định khơng có số lượng file log ảo cố định cho file log Physical Database Engine chọn dung lượng cho file log ảo cách tự động tạo mở rộng file log Database Engine cố trì số lượng file ảo nhỏ Kích thước file log ảo khơng thể cấu hình hay thiết lập quản trị viên Duy có file log Physical xác định kích thước nhỏ giá trị growth_increment file log ảo ảnh hưởng đến hiệu suất hệ thống Giá trị kích thước kích thước khởi tạo cho file log growth_increment lượng không gian thêm cho file file yêu cầu thêm không gian Khi file log đạt đến kích thước lớn có nhiều gia tăng nhỏ, chúng có nhiều file log ảo Điều làm chậm q trình khởi động database hoạt động lưu, phục hồi log 1.3 Giới thiệu số dịch vụ SQL server - Đây trình quản lý dịch vụ SQL Server như: MSSQL Server, SQL Server Agent, Microsoft Distrinuted Transaction Coordinator (MSDTC) - - MSSQL Server: RDBMS, xử lý phát biểu Transact-SQL quản lý file lưu trữ CSDL - SQL Server Agent: dùng lập lịch thực tự động công việc Backup liệu, Replication, - - Microsoft Distributed Transaction Coordinator (MSDTC): Hỗ trợ cho ứng dụng Client làm việc với liệu phân bổ nhiều máy tính - Combo Server: Chứa danh sách SQL Server có khả truy xuất từ máy bạn Tuy nhiên, bạn gõ tên máy chủ cần kết nối khơng có danh sách click nút mũi tên hộp Services, tiện ích Services Manager cố gắng kết nối tới máy chủ xa - Combo Services: chứa tên dịch vụ cung cấp SQL Server chọn Mỗi dịch vụ trạng thái Một số dịch vụ không cung cấp chức tạm dừng -10- ... Microsoft hỗ trợ: SQL Server 2008 R2, SQL Server 2012, SQL Server 2014, SQL Server 2016 SQL Server 2017, SQL Server 2019 1.2 Kiến trúc truy cập sở liệu Kiến trúc truy cập sở liệu SQL Server phân thành... Giới thiệu số dịch vụ SQL server - Đây trình quản lý dịch vụ SQL Server như: MSSQL Server, SQL Server Agent, Microsoft Distrinuted Transaction Coordinator (MSDTC) - - MSSQL Server: RDBMS, xử lý... dụng nhỏ Lịch sử đời SQL Server phiên -4- Phiên Microsoft SQL Server đời vào năm 1989 cho hệ điều hành chạy 16 bít với SQL Server phiên 1.0 tiếp tục phát triển ngày SQL Server Microsoft thị trường