1. Trang chủ
  2. » Tất cả

3. Giao trinh QT CSDL Voi SQL SERVER Cao dang

188 4 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 188
Dung lượng 6,56 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ụn

Trang 1

MỤC LỤC

BÀI 1: TỔNG QUAN VỀ SQL SERVER 4

1.1 Giới thiệu 4

1.2 Kiến trúc truy cập cơ sở dữ liệu 5

1.2.1 trúc chung - General Kiến 5

1.2.2 Kiến trúc bộ nhớ - Memory 7

1.2.3 Kiến trúc file dữ liệu - Data file 8

1.2.4 Kiến trúc file nhật ký - Log file 9

1.3 Giới thiệu một số dịch vụ của SQL server 10

1.4 Ngôn ngữ lập trình trong 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 bản 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 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ản26 2.3 Quản lý cơ sở dữ liệu 28

2.3.1 Tạo mới một 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 2 37

BÀI 3: ĐỊNH NGHĨA DỮ LIỆU VỚI T-SQL 38

3.1 Ngôn ngữ định nghĩa dữ liệu 38

3.2 Tạo và sửa đổi cấu trúc cơ sở dữ liệu 39

3.2.1 Tạo tập tin cơ sở dữ 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 và xoá dữ liệu thông qua khung nhìn 63

3.3.3 Sửa đổi khung nhìn 66

Trang 2

BÀI TẬP CÓ HƯỚNG DẪN BÀI 3 67

BÀI TẬP BÀI 3 73

BÀI 4: THAO TÁC DỮ LIỆU VỚI T-SQL 76

4.1.Truy xuất dữ 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 trong câu lệnh SELECT 77

4.1.3.Chỉ định điều kiện truy vấn dữ liệu 81

4.1.4.Tạo mới bảng dữ liệu từ kết quả của câu lệnh SELECT 85

4.1.5 Sắp xếp kết quả 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ê dữ liệu với GROUP BY 94

4.1.9 Truy vấn con (Subquery) 96

4.2 Bổ sung, cập nhật và xoá dữ liệu 99

4.2.1.Bổ sung dữ liệu 99

4.2.2.Cập nhật dữ liệu 101

4.2.3.Xoá dữ liệu 103

BÀI TẬP CÓ HƯỚNG DẪN BÀI 4 104

BÀI TẬP BÀI 4 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 trên các đối tượng cơ sở dữ liệu 122

5.2.2.Cấp phát quyền thực thi các câu lệnh 124

5.3.Thu hồi quyền 125

5.3.1.Thu hồi quyền trên đối tượng cơ sở dữ liệu: 125

5.3.2.Thu hồi quyền thực thi các câu lệnh: 127

BÀI TẬP CÓ HƯỚNG DẪN BÀI 5 127

BÀI TẬP BÀI 5 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 và sử dụng biến 138

6.5 Giá trị trả về trong thủ tục lưu trữ 139

6.6 Sửa và 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 6 142

Trang 3

BÀI TẬP BÀI 6 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 trong 147

7.4 Sửa và 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 các hàm do người dùng định nghĩa 149

BÀI TẬP CÓ HƯỚNG DẪN BÀI 7 150

BÀI TẬP BÀI 7 153

BÀI 8: TRIGGER 154

8.1 Giới thiệu về trigger 154

8.2 Tạo, thay thế, loại bỏ triggers 155

8.3 Kích hoạt trigger khi thay đổi dữ liệu cột (if update) 157

8.4 Sử dụng trigger và 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 8 164

BÀI 9: QUẢN LÝ GIAO DỊCH VÀ KHÓA 166

9.1 Giao dịch(hay còn gọi Giao tác, tiếng Anh: transaction) 166

9.2 Khóa 171

BÀI TẬP BÀI 9 175

MỘT SỐ HÀM THƯỜNG SỬ DỤNG 178

1.Các hàm trên dữ liệu kiểu chuỗi 178

2.Các hàm trên dữ liệu kiểu ngày giờ 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

Trang 4

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êncứ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

1.1 Giới thiệu

SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational DatabaseManagement 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, databaseengine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trongRDBMS

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 (VeryLarge Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàngngàn user SQL Server có thể kết hợp “ăn ý” với các server khác như Microsoft InternetInformation 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ụmSQL 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 sovới Enterprise Edition, nhưng lại bị giới hạn một số chức năng cao cấp (advancedfeatures) khác, edition này có thể chạy tốt trên hệ thống lên đến 4 CPU và 2 GB RAMDeveloper : Có đầy đủ các tính năng của Enterprise Edition nhưng được chế tạo đặcbiệ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ệunhư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 ở SQLServer 2012

Express : SQL Server Express dễ sử dụng và quản trị cơ sở dữ liệu đơn giản Đượctí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, antoà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ốtcho 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áychủ 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êuthí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

Trang 5

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àynay

SQL Server của Microsoft được thị trường chấp nhận rộng rãi kể từ version 6.5 Sau

đó Microsoft đã cải tiến và hầu như viết lại một engine mới cho SQL Server 7.0 Cho nên

có thể nói từ version 6.5 lên version 7.0 là một bước nhảy vọt Có một số đặc tính củaSQL Server 7.0 không tương thích với version 6.5 Trong khi đó từ Version 7.0 lênversion 8.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.5 hoặc 7.0 với phiên bản 2000 trên cùngmộ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.2 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ầndướ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.2.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

Trang 6

Hình 1.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ủamá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 Tất cả các hoạt động

được thực hiện trên engine cơ sở dữ liệu được "chăm sóc" bởi SQL OS SQL OS cungcấp các dịch vụ hệ điều hành khác nhau, chẳng hạn như hoạt động quản lý bộ nhớ vớibuffer pool, log buffer, phát hiện deadlock (khóa chết) bằng cách sử dụng cấu trúc block

và lock

Trang 7

- Checkpoint: Checkpoint là một tiến trình nội bộ, ghi tất cả các trang đã sửa đổi

(gọi là Dirty Page) từ Buffer Cache vào ổ đĩa vật lý Ngoài ra, nó cũng ghi các bản log từLog Buffer vào file vật lý Việc ghi lại các Dirty Page vào ổ đĩa còn được biết đến như làHardening of dirty pages (cứng hóa các Dirty Page)

- Lazy Writer: Lazy Writer sẽ đẩy các Dirty Page và ổ cứng vì một lý do hoàn toàn

khác, đó là giải phóng bộ nhớ trong Buffer Pool Điều này xảy ra khi SQL Server đang bịthiếu bộ nhớ Tiến trình này được kiểm soát bởi một tiến trình Internal và không có thiếtlập cho nó

SQL Server liên tục giám sát việc sử dụng bộ nhớ để đánh giá tính khả dụng và mứccạnh tranh tài nguyên, giúp đảm bảo luôn có sẵn một dung lượng trống nhất định Khiphát hiện bất kỳ sự xung đột tài nguyên nào, nó sẽ kích hoạt Lazy Writer để chuyển một

số Dirty Page vào ổ đĩa và giải phóng bộ nhớ Nó sử dụng thuật toán Least RecentlyUsed (LRU) để quyết định trang nào sẽ được đẩy vào ổ cứng Nếu Lazy Writer luôn hoạtđộng, nó có thể tạo ra nút thắt cổ chai với bộ nhớ

1.2.2 Kiến trúc bộ nhớ - Memory

Sau đây là những tính năng nổi bật của kiến trúc bộ nhớ:

- Một trong những mục tiêu thiết kế cơ bản của tất cả phần mềm cơ sở dữ liệu là giảmthiểu I/O ổ đĩa vì quá trình đọc và ghi đĩa là một trong những hành động sử dụng nhiềutài nguyên nhất

- Bộ nhớ trong Windows có thể được gọi với Virtual Address Space, được chia sẻ bởichế độ Kernel (chế độ OS) và User (ứng dụng như SQL Server)

- User address space của SQL Server được chia thành 2 phần: MemToLeave và BufferPool

- Kích thước của MemToLeave (MTL) và Buffer Pool (BPool) được quyết định bởiSQL Server trong quá trình khởi động

- Buffer Management là một thành phần quan trọng nếu muốn đạt được hiệu suất I/Ocao Nó bao gồm 2 cơ chế: Buffer Manager để truy cập và cập nhật các trang cơ sở dữliệu và Buffer Pool để cắt giảm I/O file vào database

- Buffer Pool được chia thành nhiều phần, quan trọng nhất là Buffer Cache vàProcedure Cache Buffer Cache giữ các trang dữ liệu trong bộ nhớ để những dữ liệuthường xuyên truy cập có thể trích xuất từ bộ nhớ cache Quá trình thay thế sẽ đọc cáctrang dữ liệu từ ổ đĩa Đọc dữ liệu từ cache sẽ tối ưu hóa hiệu suất bằng cách giảm thiểu

số lượng các thao tác I/O, vốn chậm hơn so với truy xuất dữ liệu từ bộ nhớ

- Procedure Cache giữ các thủ tục được lưu trữ và các Excecution Plan để tối ưu hóa

số lần Excecution Plan được tạo Bạn có thể tìm thấy thông tin về dung lượng và hoạtđộng trong Procedure Cache sử dụng lệnh DBCC PROCCACHE

- Các phần khác của Buffer Pool bao gồm:

+ Các cấu trúc dữ liệu mức hệ thống: Chứa dữ liệu mức Instance về cơ sở dữ liệu,khóa

+ Log Cache: Dành riêng cho việc đọc và ghi các trang transaction

Trang 8

+ Connection Context: Mỗi kết nối với Instance có một vùng nhỏ bộ nhớ để ghi trạngthái hiện tại của kết nối Thông tin này bao gồm thủ tục được lưu trữ và các thông số hàm

do người dùng xác định, vị trí con trỏ chuột và nhiều hơn nữa

+ Stack Space: Windows phân bổ stack space cho mỗi luồng được bắt đầu với SQLServer

1.2.3 Kiến trúc file dữ liệu - Data file

Kiến trúc này có các thành phần sau:

File Group:

Các file cơ sở dữ liệu có thể nhóm lại với nhau thành các nhóm file để phân bổ vàquản lý theo mục đích Một file chỉ có thể là thành viên của một nhóm file Các file logkhông thể nhóm vào File Group vì dung lượng file log được quản lý riêng biệt với dunglượng dữ liệu

Có hai loại File Group trong SQL Server là Primary và User-defined Primary chứacác file dữ liệu chính và bất kỳ file nào không được gán cụ thể cho File Group khác Tất

cả các trang cho bảng hệ thống được cấp phát trong Primary User-defined là các nhóm

file do người dùng định nghĩa, nó được chỉ định bằng cách sử dụng từ khóa File group trong lệnh tạo cơ sở dữ liệu hoặc xóa cơ sở dữ liệu

Một File Group trong mỗi cơ sở dữ liệu hoạt động như nhóm file mặc định KhiSQL Server chỉ định một trang cho bảng hoặc chỉ mục (không nằm trong File Group nàokhi tạo) thì trang đó sẽ nằm trong nhóm file mặc định Để chuyển đổi nhóm file mặc định

từ File Group này sang File Group khác, cần có db_owner fixed database role

Primary là nhóm tệp mặc định User cần có db_owner fixed database role để sao lưutập tin và những nhóm file riêng lẻ

File:

Cơ sở dữ liệu có 3 loại file Primary (file dữ liệu chính), Secondary (file dữ liệu phụ)

và Log (file nhật ký) Primary là điểm bắt đầu của cơ sở dữ liệu và trỏ đến các file kháctrong cơ sở dữ liệu

Mỗi cơ sở dữ liệu có một Primary Bạn có thể đặt phần mở rộng cho các file dữ liệuchính là gì cũng được, nhưng khuyến nghị là nên để mdf File dữ liệu phụ là file khácfile dữ liệu chính Một cơ sở dữ liệu có thể có nhiều hoặc chỉ có một file dữ liệu phụ.Phần mở rộng cho file dữ liệu phụ nên đặt là ndf

Các file log giữ tất cả thông tin được sử dụng để phục hồi cơ sở dữ liệu Cơ sở dữliệu phải có ít nhất một file log Chúng ta có thể có nhiều file log cho một cơ sở dữ liệu.Phần mở rộng nên đặt là ldf

Vị trí của tất cả các file trong cơ sở dữ liệu được ghi lại trong cả cơ sở dữ liệu tổngthể và file Primary của cơ sở dữ liệu Trong hầu hết trường hợp, công cụ cơ sở dữ liệu sửdụng vị trí file từ cơ sở dữ liệu tổng thể

File có 2 tên là Logical và Physical Logical được sử dụng để tham chiếu đến filetrong tất cả các lệnh T-SQL Tên Physical là OS_file_name, nó phải tuân theo quy tắc của

hệ điều hành File dữ liệu và file log có thể được đặt trên hệ thống file FAT hoặc NTFS,nhưng không thể đặt trên các hệ thống file nén Có thể có tối đa 32.767 file trong một cơ

sở dữ liệu

Trang 9

+ Tex\Image: Dữ liệu text, ntext và ảnh.

+ GAM: Thông tin về extent được chỉ định

+ SGAM: Thông tin về extent được cấp phát ở mức hệ thống

+ Page Free Space (PFS): Thông tin về không gian trống hiện có trên các trang

+ Index Allocation Map (IAM): Thông tin về extent được sử dụng bởi bảng hoặc chỉmục

+ Bulk Changed Map (BCM): Thông tin về extent được sử đổi bởi hoạt động hàngloạt kể từ lệnh ghi sao lưu cuối cùng

+ Differential Changed Map (DCM): Thông tin về extent đã thay đổi kể từ lệnh saolưu cơ sở dữ liệu cuối cùng

1.2.4 Kiến trúc file nhật ký - Log file

Các log transaction trên SQL Server hoạt động hợp lý khi nó là chuỗi các bản ghilog Mỗi bản ghi log được xác định bởi Log Sequence Number (LSN), chứa ID củatransaction mà nó thuộc về

Log ghi lại những sửa đổi dữ liệu hoặc các hoạt động được thực hiện hay lấy hìnhảnh trước và sau khi dữ liệu bị chỉnh sửa Hình ảnh trước là bản sao của dữ liệu trước khithao tác được thực hiện, hình ảnh sau là bản sao của dữ liệu sau khi thao tác đã được thựchiện

Các bước để phục hồi một hoạt động phụ thuộc vào loại bản ghi log

+Thao tác logic được log

+Để đi tới thao tác logic ở trước, thao tác sẽ được thực hiện lại

+Để quay lại thao tác logic phía sau, thao tác logic đảo ngược sẽ được thực hiện.+Ảnh trước và sau được log

+Để đi tới thao tác ở trước, ảnh sau sẽ được áp dụng

+Để quay lại thao tác phía sau, ảnh trước sẽ được áp dụng

Các thao tác khác nhau đã được ghi lại trong bản log transaction Những thao tácsau sẽ có trong đó:

Trang 10

+ Bắt đầu và kết thúc mỗi transaction.

+ Mọi sửa đổi dữ liệu (chèn, cập nhật, xóa), bao gồm các thay đổi các thủ tục lưu trữ

hệ thống hoặc lệnh ngôn ngữ định nghĩa dữ liệu (DDL) đến bảng, bao gồm cả bảng hệthống

+ Mọi extent và phân bổ, hủy phân bổ trang

+ Tạo hoặc xóa bảng, chỉ mục

Các thao tác rollback cũng được log lại Mỗi transaction sẽ giữ một khoảng khônggian trong bản log để chắc chắn rằng có đủ không gian log cần thiết cho rollback thựchiện lệnh hoặc thông báo lỗi Không gian này sẽ được giải phóng khi transaction hoàn tất.Phần của file log từ bản log đầu tiên (bắt buộc phải có để khôi phục lại toàn bộ cơ

sở dữ liệu thành công) đến bản log cuối cùng được gọi là phần hoạt động của log hay loghoạt động Đây là phần bản log bắt buộc để có thể phục hồi cơ sở dữ liệu đầy đủ Không

có phần nào trong log hoạt động được cắt xén LSN của bản ghi log đầu tiên được gọi làLSN phục hồi tối thiểu (Min LSN)

SQL Server Database Engine chia mỗi file log Physical thành một số file log ảo.File log ảo không có kích thước cố định và không có số lượng file log ảo cố định cho mỗifile log Physical

Database Engine chọn dung lượng cho file log ảo một cách tự động khi nó tạo hoặc

mở rộng file log Database Engine cố duy trì số lượng file ảo nhỏ Kích thước của file log

ảo không thể cấu hình hay thiết lập bởi quản trị viên Duy nhất chỉ có khi file logPhysical được xác định kích thước nhỏ và giá trị growth_increment thì file log ảo mớiảnh hưởng đến hiệu suất hệ thống

Giá trị kích thước là kích thước khởi tạo cho file log và growth_increment là lượngkhông gian được thêm cho file mỗi khi file yêu cầu thêm không gian mới Khi file log đạtđến kích thước lớn vì có nhiều sự gia tăng nhỏ, chúng sẽ có nhiều file log ảo Điều này cóthể làm chậm quá trình khởi động database và các hoạt động sao lưu, phục hồi log

-

1.3 Giới thiệu một số dịch vụ của SQL server.

- Đây là trình quản lý các dịch vụ trên SQL Server như: MSSQL Server, SQLServer Agent, Microsoft Distrinuted Transaction Coordinator (MSDTC)

- - MSSQL Server: là RDBMS, xử lý các phát biểu Transact-SQL và quản

lý các file lưu trữ các CSDL

-

- SQL Server Agent: dùng lập lịch thực hiện tự động các công việc như Backup

dữ liệu, Replication,

- - Microsoft Distributed Transaction Coordinator (MSDTC): Hỗ trợ cho các ứng

dụng Client làm việc với các dữ liệu được phân bổ trên nhiều máy tính

- Combo Server: Chứa danh sách các SQL Server có khả năng truy xuất từ máy của bạn.

Tuy nhiên, bạn có thể gõ tên máy chủ cần kết nối không có trong danh sách và click nútmũi tên trên hộp Services, tiện ích Services Manager sẽ cố gắng kết nối tới máy chủ ở xa

-

- Combo Services: chứa tên các dịch vụ được cung cấp bởi SQL Server đã chọn Mỗi

dịch vụ sẽ ở 1 trong 3 trạng thái Một số dịch vụ không cung cấp chức năng tạm dừng

Trang 11

Ví d ụ : MSSQL Server vẫn tiếp tục hoạt động khi nó tạm dừng, nhưng các kết nối mới thìkhông được phép.

1.4 Ngôn ngữ lập trình trong SQL Server.

Cho dù bộ công cụ SQL Server cung cấp các giao diện đồ hoạ (GUI) cho phépngười sử dụng có thể tương tác với SQL Server mà không cần phải viết code Tuy nhiênkhi phát triển h ệ thống thì người lập trình viên phải biết cách tương tác với cơ sở dữ liệuthông qua code

Một số các loại Command được hỗ trợ trong SQL để thực thi các chức năng: Cácchức năng này bao gồm xây dựng các đối tượng cơ sở dữ liệu, thao tác(manipulating ) các đối tượng, tạo các bảng (populating) cơ sở dữ liệu với dữ liệu, cậpnhật dữ liệu hiện có trong các bảng, xoá dữ liệu, thực hiện các truy vấn cơ sở dữ liệu,điều khiển truy cập cơ sở dữ liệu và quản trị tổng thể

Các loại ngôn ngữ chính:

1 DDL (Data Definition Language) Demo Sử dụng Data Definition Language

2 DML (Data Manipulation Language)

3 DQL (Data Query Language)

4 DCL (Data Control Language)

5 Data administration commands

6 Transactional control commands

DDL, là một phần của SQL cho phép người dùng cơ sở dữ liệu tạo và cơ cấu lại các đốitượng cơ sở dữ liệu, chẳng hạn như việc tạo hoặc xoá bảng

Một số cấu trúc lệnh

1.4.1 Lệnh IF

Lệnh if sẽ kiểm tra một biểu thức có đúng hay không, nếu đúng thì thực thi nội dung bêntrong của IF, nếu sai thì bỏ qua

Cú pháp: IF <Biểu thức logic> Begin < Công việc> end

Nếu công việc là lệnh đơn thì có thể bỏ cặp Begin … End

Trang 12

Declare @Diem Numeric(5,2);

Ví dụ 1.2 Dựa vào DiemTB để xếp loại học lực

Begin

If @Diemtb <7

Print 'Tb'Else

Begin

If @Diemtb <8Print 'Khá'Else

Print 'Giỏi'End

EndEND

1.4.3 Hàm Case When

Câu lệnh CASE dùng để thiết lập điều kiện rẽ nhánh trong SQL Server, tương tự chứcnăng của câu lệnh IF-THEN-ELSE

CASE có 2 định dạng:

Hàm CASE đơn giản hay còn gọi là Simple CASE

Hàm CASE tìm kiếm hay còn gọi là Searched CASE

Cú pháp:

Simple CASE

Trang 13

CASE bieuthuc_dauvao

WHEN bieuthuc_1 THEN ketqua_1

WHEN bieuthuc_2 THEN ketqua_2

WHEN dieukien_1 THEN ketqua_1

WHEN dieukien_2 THEN ketqua_2

Print @Thu

End

Trang 14

Ví dụ 1.4: Viết lại công việc ở ví dụ 1.2 bằng Case

Trang 15

BÀI 2: BỘ CÔNG CỤ MANAGEMENT STUDIO

Mục tiêu của bài:

- Mô tả được giao diện đồ hoạ thao tác đến các đối tượng trong cơ sở dữ liệu SQLServer;

- Phân biệt được công cụ thiết kế bảng và thiết kế sơ đồ quan hệ;

- Trình bày được các công cụ hỗ trợ thiết kế câu truy vấn;

- Trình bày được các công cụ quản lý các script của một dự án;

- Cài đặt và cấu hình được SQL Server;

- Xử lý được các lỗi thường gặp khi xây dựng câu truy vấn bằng công cụ hỗ trợ;

- Xây dựng được mô hình quan hệ của một số cơ sở dữ liệu mẫu;

- Có thái độ làm việc chủ động, tích cực và sáng tạo

2.1 Cài đặt Microsoft SQL Server

Tải các phần mềm tại địa chỉ:

SQL Server: http://www.microsoft.com/en-us/download/details.aspx?id=42299 Net FrameWork 3.5:

https://www.microsoft.com/en-us/download/details.aspx?id=25150

2.1.1 Cài đặt.Net FrameWork 3.5

Chạy tập tin cài đặt dotnetfx 35.exe để cài đặt theo hướng dẫn của trình cài

đặt Lưu ý: Nếu máy tính của bạn đã cài đặt Net Framework 3.5 thì bỏ qua bước này.

2.1.2 Cài đặt bản nâng cấp Windows

Kiểm tra phiên bản Windows của máy tính, nếu không phù hợp với SQL Server2014 thì bạn tra cứu trên Google để cài đặt bản nâng cấp windows.

2.1.3 Cài đặt SQL Server

Chạy tập tin setup.exe, xuất hiện cửa sổ chọn Chọn Installation -> chọn New SQL Server stand-alone installation or add features to an existing installation

Trang 16

Xuất hiện cửa sổ, chọn next

Chọn next 2 lần ở các cửa sổ tiếp sau và tiếp tục

Trang 17

Tiếp tục chọn next và Tiếp theo bạn lựa chọn "Mix Mode" điều đó cho phép bạn login vào SQL server theo 2 cách:

+ Sử dụng Username/password đăng nhập của windows.

+ Sử dụng username/password của SQLServer

Trang 18

Chờ cho tới khi việc cài đặt hoàn tất Và start lại máy tính sau khi cài đặt hoàn tất.

Cấu hình cho SQL Server:

Đây là việc quan trọng các cấu hình này cho phép bạn kết nối vào cơ sở dữ liệu từ một máy tính khác trong mạng LAN

Trang 19

Vào chức năng SQL Server Configuration Management

Chức năng này cho phép bạn cấu hình để các máy tính khác có thể truy cập vào SQL Server thông qua IP hoặc Server name

Bạn cần khởi động dịch vụ: SQL Server Browser Nhấn phải chuột vào nó

chọn Properties

Trang 20

Chuyển chế độ Start service sang Automatic (tự động).

Trang 21

Sau đó nhấn Start, để khởi động dịch vụ.

Trang 22

Enable các mục còn lại, tiếp theo, đảm bảo rằng SQL Server của bạn đang

chạy dưới chế độ Network Service.

Sau khi cấu hình xong, khởi động lại dịch vụ của SQL Server.

Trang 23

2.1.4 Khởi động SQL Server

Vào Start chọn SQL Server Management Studio

Trang 24

Trong trường hợp bạn kết nối vào SQL Server trên máy địa phương, bạn có

thể sử dụng dấu chấm, để đại diện cho tên máy.

2.2 Một số thao tác với SQL Server

2.2.1 Đăng nhập SQL Server

Đăng nhập là cách thức đơn giản để truy cập vào SQL Server, cũng như bạn dùng ID và mật khẩu để đăng nhập Windows hay tài khoản email SQL Server có 4 loại đăng nhập:

+ Theo thông tin đăng nhập của Windows

+ Chỉ định riêng cho SQL Server

+ Được tạo theo chứng nhận Certificate

+ Được tạo theo Asymmetric Keys

Bài hướng dẫn này sẽ chỉ tập trung vào cách đăng nhập theo Windows Credentials và chỉ định riêng cho SQL Server.

Trang 25

Cách 1 giúp bạn đăng nhập vào SQL Server bằng tên người dùng và mật khẩu Windows Còn nếu muốn tạo tên người dùng và mật khẩu khác thì dùng cách thứ 2.

Để tạo mới, thay đổi hay xoá thông tin đăng nhập SQL Server, có hai cách + Dùng SQL Server Management Studio

+ Dùng T-SQL

Cách 1: Đăng nhập cơ sở dữ liệu bằng SQL Server Management Studio

Bước 1: Sau khi kết nối tới SQL Server Instance, mở thư mục Logins như trong hình ảnh dưới đây.

Mở thư mục Logins trên SQL Server Management Studio

Bước 2: Click chuột phải vào Logins và chọn Newlogin , màn hình dưới đây

sẽ hiện ra.

Điền thông tin đăng nhập

Trang 26

Bước 3: Điền tên và mật khẩu, xác nhận mật khẩu lần nữa như trong hình trên

và click OK Khi đó, thông tin đăng nhập mới sẽ được tạo như trong hình dưới đây

Cách 2: Đăng nhập cơ sở dữ liệu bằng code:

Để tạo tên đăng nhập là TestLogin và mật khẩu là P@ssword, bạn chỉ cần chạy 2 truy vấn dưới đây.

Create login yourloginname with password='yourpassword'

Create login TestLogin with password='P@ssword'

2.2.2 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

Nhấn phải chuột vào một database , chọn "New Query" để mở ra một cửa sổ

làm việc với database này

Dưới đây là một khối lệnh đơn giản, tính tổng 2 số:

Trang 27

Declare @v_Result Int; Khai báo một biến

Declare @v_a Int = 50; Khai báo một biến có giá trị 50

Declare @v_b Int = 100; Khai báo một biến có giá trị 100

Print 'v_a= ' + Cast(@v_a as varchar(15)); In v_a ra màn hình Console

Print 'v_b= ' + Cast(@v_b as varchar(15));

Set @v_Result = @v_a + @v_b; Tính tổng

Print 'v_Result= ' + Cast(@v_Result as varchar(15));

Trang 28

2.3 Quản lý cơ sở dữ liệu.

2.3.1 Tạo mới một Database

Nhấp chuột phải vào Databases > New Database…. Nhập tên Database vào Database Name

Trang 29

 Tạo Table: Nhấp chuột phải vào Table, chọn Table xuất hiện bảng bên phải,

nhập tên các trường, kiểu dữ liệu vào column name và data type, bấm nút save đặt tên table, ok

Trang 30

 Tạo sơ đồ quan hệ:

+ Nhấp chuột phải vào Database Diagram chọn new DatabaseDiagram

Xuất hiện bảng các Table, chọn Table cần kết nối, nhấn Add, ok

Kéo dòng Makhoa từ Table DMKhoa vào Makhoa của DMSV, xuất hiện cửa sổ

Trang 31

Chọn OK, kết quả như bảng sau

Nhấn nút Save trên thanh công cụ để lưu sơ đồ quan hệ.

2.3.2 Sao lưu Database (Backup)

Có nhiều cách sao lưu dữ liệu, bài này chỉ giới thiệu sao lưu bằng giao diện

Trang 32

Chọn các mục theo thứ tự cửa sổ sau hoàn tất sao lưu.

4

5

Đường dẫn và tên tập tin

Trang 33

2.3.3 Xoá Database (Delete)

Nhấp chuột phải vào Database cần xoá trong danh sách Databases bên trái

> Delete

Cửa sổ Delete Object hiển thị Các bạn đánh dấu vào ô Close existing connections > OK để chắc chắn xoá được

2.3.4 Phục hồi Database (Restore)

Trước khi khôi phục CSDL ta phải xác định được thứ tự file cần khôi phục Các thông tin này được SQL Server chứa trong CSDL msdb và sẽ cho ta biết backup device nào, backup vào thời điểm nào Sau đó ta tiến hành restore Ðể khôi phục CSDL kích chuột phải ->Tasks ->Restore -> File and file group… sẽ thấy cửa sổ như sau:

Trang 34

Khôi phục cơ sở dữ liệu

Chọn thông tin thích hợp và OK hoàn tất.

Trang 35

2.3.5 Gỡ bỏ Database (Detach)

2.3.6 Đính kèm Database (Attach)

Nhấp chuột phải vào Databases, chọn Attach

Trang 36

Xuất hiện cửa sổ, chọn Add

Chọn tập tin đính kèm, Ok hoàn thành công việc

Trang 37

BÀI TẬP BÀI 2

1 Thực hành cài đặt và cấu hình cho SQL Server 2014

3 Tạo cơ sở dữ liệu QLSV

4 Tạo các bảng (KHOA, LOP, SINHVIEN) và nhập dữ liệu

5 Tạo database diagram

6 Xem dữ liệu các table

7 Sao lưu CSDL vào ổ đĩa D:

8 Xoá CSDL QLSV

9 Phục hồi CSDL QLSV

Trang 38

BÀI 3: ĐỊNH NGHĨA DỮ LIỆU VỚI T-SQL

Mục tiêu của bài:

- Mô tả được cách tạo mới, sửa, xóa các đối tượng trong cơ sở dữ liệu;

- Trình bày được các kiểu dữ liệu trong SQL Server đặc biệt là các kiểu dữ liệu mớithêm vào SQL Server;

- Phân loại được các đối tượng trong cơ sở dữ liệu;

- Viết được các câu lệnh để định nghĩa và cập nhật cấu trúc cơ sở dữ liệu;

- Hoàn thành đầy đủ bài tập một cách tích cực, chủ động khoa học và sáng tạo

3.1 Ngôn ngữ định nghĩa dữ liệu

Transact-SQL (còn gọi là T-SQL) là một ngôn ngữ lập trình database hướng thủtục độc quyền của Microsoft sử dụng trong SQL Server Ngôn ngữ thủ tục được thiết kế

để mở rộng khả năng của SQL trong khi có khả năng tích hợp tốt với SQL Một số tínhnăng như các biến địa phương và xử lý chuỗi/dữ liệu được thêm vào Các tính năng nàylàm cho ngôn ngữ Transact -SQL là Turing-complete

Chúng cũng được sử dụng để viết các thủ tục lưu trữ: Một đoạn code nằm trên máychủ để quản lý các quy tắc kinh doanh phức tạp mà khó hoặc không thể làm nổi với cácthao tác tập hợp thuần tuý (pure set-based operations)

T-SQL tổ chức theo từng khối lệnh, một khối lệnh có thể lồng bên trong một khối

lệnh khác, một khối lệnh bắt đầu bởi BEGIN và kết thúc bởi END, bên trong khối lệnh

có nhiều lệnh, và các lệnh ngăn cách nhau bởi dấu chấm phẩy “;”

BEGIN Khai báo biến

Các câu lệnh T-SQL

END;

SQL chuẩn bao gồm khoảng 40 câu lệnh Trong các hệ quản trị cơ sở dữ liệu khácnhau, mặc dù các câu lệnh đều có cùng dạng và cùng mục đích sử dụng song mỗi một hệquản trị cơ sở dữ liệu có thể có một số thay đổi nào đó Điều này đôi khi dẫn đến cú phápchi

tiết của các câu lệnh có thể sẽ khác nhau trong các hệ quản trị cơ sở dữ liệu khácnhau

T-SQL được chia làm 3 nhóm:

Ngôn ngữ định nghĩa dữ liệu ( Data Definition Language – DDL)

Ngôn ngữ điều khiển dữ liệu (Data control language – DCL)

Ngôn ngữ thao tác dữ liệu (Data manipulation language – DML)

Ngôn ngữ định nghĩa dữ liệu ( Data Definition Language – DDL)

Về cơ bản, ngôn ngữ định nghĩa dữ liệu bao gồm các lệnh:

• CREATE: định nghĩa và tạo mới đối tượng CSDL

• ALTER: thay đổi định nghĩa của đối tượng CSDL

Trang 39

• DROP: Xoá đối tượng CSDL đã có.

3.2 Tạo và sửa đổi cấu trúc cơ sở dữ liệu.

3.2.1 Tạo tập tin cơ sở dữ liệu.

3.2.1.1 Tạo cơ sở dữ liệu với đường dẫn mặc định

Cú pháp: CREATE DATABASE Tên_Database

Trong đó tên database không chứa khoảng trắng, nếu là tiếng Việt thì tiếng Việtkhông bỏ dấu

Ví dụ 3.1: tạo database với tên QuanLyDaoTao

CREATE DATABASE QuanLyDaoTao

3.2.1.2 Tạo cơ sở dữ liệu với đường dẫn chỉ định

Cú pháp:

CREATE DATABASE <Tên CSDL>

ON PRIMARY

( Name = <Tên filedata>,

Filename = <đường dẫn và tên file mdf>,

Size = dung lượng của file,

Maxsize = 50,

Filegrowth = Dung lượng có thể vượt quá giới hạnmaxsize)

LOG ON

( Name = <Tên filelog>,

Filename = <đường dẫn và tên file ldf>,

Size = dung lượng của file,

Maxsize = Dung lượng tối đa của file,

Filegrowth = Dung lượng có thể vượt quá giới hạnmaxsize)

Trong đó:

NAME: tên của file chứa database

FILENAME: đường dẫn lưu trữ file data hoặc file log

SIZE: dung lượng của file, đơn vị tính MB

MAXSIZE: Dung lượng tối đa của file data hoặc file log

FILEGROWTH: Dung lượng có thể vượt quá giới hạn maxsize

Primary data file: mỗi database có duy nhất một primary data file dùng để lưu trữ

các meta data của database đó như định nghĩa các objects, thông số cấu hình database, và

cả thông tin của các data files khác cũng được lưu ở đây Ngoài ra nó cũng được dùng đểlưu user data Để gợi nhớ thì primary file thường có đuổi là mdf

Trang 40

Secondary data file: một database có thể không có hoặc có nhiều secondary data

files, và các file này có thể nằm trên nhiều ổ đĩa khác nhau để tăng cường hiệu năng truyxuất data Và để gợi nhớ loại file này có đuôi là ndf

Log file: mỗi database phải có ít nhất một log file để chứa thông tin cần thiết dùng

cho việc khôi phục lại những transaction đã thực hiện trong database, log file này thường

có đuôi là ldf

Ví dụ 3.2: Tạo một database có tên là KHACHHANG và có file data tên là

KHACHHANG_dat, lưu ở ổ D: và có dung lượng là 10, Dung lượng tối đa là 50, và đượcvượt quá giới hạn là 5, tương tự với file log có dung lượng là 5, Dung lượng tối đa là 25,

và được vượt quá giới hạn là 5

CREATE DATABASE KHACHHANG

)

LOG ON

( NAME = Tên log file,

FILENAME = ‘Tên file.ldf'

Ngày đăng: 16/04/2022, 09:39

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Nguyễn Thiên Bằng (2007). Microsoft SQL server 2008, NXB Lao động-Xã hội, Hà Nội Khác
2. Phạm Hữu Khang (2009). Microsoft SQL server 2008 quản trị cơ sở dữ liệu, tập 1, NXB Lao động-Xã hội, Hà Nội Khác
3. Phạm Hữu Khang (2010). Microsoft SQL server 2008 quản trị cơ sở dữ liệu, tập 2, NXB Lao động-Xã hội, Hà Nội Khác
4. Trịnh Thế Tiến (2008), Giáo Trình Học Nhanh SQL Server 2008 - Tập 2, NXB Hồng Đức, Hà Nội Khác
5. Các tài liệu cập nhật nhanh trên internet: SQL Server 2008, SQL Server 2014 Khác

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w