Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.64 MB, 180 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>TP. Hồ Chí Minh – 2022 </b>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">1.2. Kiến trúc hệ cơ sở dữ liệu ... 2
1.3. Lịch sử phát triển của hệ quản trị cơ sở dữ liệu ... 2
1.4. Các chức năng của hệ quản trị cơ sở dữ liệu ... 4
1.5. Cấu trúc tổng thể của hệ quản trị cơ sở dữ liệu ... 4
1.6. Các xu hướng mới về hệ quản trị cơ sở dữ liệu ... 5
1.7. Câu hỏi ôn tập ... 6
CHƯƠNG 2: Tổng quan hệ quản trị Microsoft SQL Server ... 7
2.1. Lịch sử phát triển Hệ quản trị Microsoft SQL Server ... 7
2.2. Cài đặt SQL Server ... 11
2.3. Kiến trúc SQL Server ... 15
2.4. Các công cụ quản trị SQL Server ... 19
2.5. Quản lý máy chủ SQL Server ... 21
2.6. Các danh mục trong SQL Server ... 31
2.7. Câu hỏi ôn tập ... 33
CHƯƠNG 3: Quản trị vận hành cơ sở dữ liệu ... 34
3.1. Tạo và cấu hình cơ sở dữ liệu ... 34
3.2. Giao dịch dữ liệu ... 44
3.3. Sao lưu, phục hồi dữ liệu ... 49
3.4. Tự động hóa các tác vụ quản trị ... 68
3.5. Giám sát hiệu suất ... 88
3.6. Bài tập có lời giải ... 100
3.7. Bài tập rèn luyện ... 104
3.8. Câu hỏi ôn tập ... 104
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">CHƯƠNG 4: Quản trị thành phần cơ sở dữ liệu ... 105
4.1. Các thành phần lưu trữ ... 105
4.2. Các thành phần xử lý ... 116
4.3. Bài tập có lời giải ... 131
4.4. Bài tập rèn luyện ... 135
4.5. Câu hỏi ôn tập ... 136
CHƯƠNG 5: Quản trị người dùng cơ sở dữ liệu ... 137
5.1. Quyền đăng nhập hệ thống ... 137
5.2. Quyền truy xuất dữ liệu ... 141
5.3. Tạo và quản lý việc đăng nhập ... 144
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">CNTT Công nghệ thông tin Information technology CPU Đơn vị xử lý trung tâm Central processing unit CSDL Cơ sở dữ liệu Database
DBE Máy cơ sở dữ liệu Database engine
DBMS Hệ quản trị cơ sở dữ liệu Database management system DCL Ngôn ngữ điều khiển dữ liệu Data controlling language DDL Ngôn ngữ định nghĩa dữ liệu Data definition language DML Ngôn ngữ thao tác dữ liệu Data manipulation language DQC Trình khách chất lượng dữ liệu Data Quality Client
DQS Trình chủ chất lượng dữ liệu Data Quality Server DTA Trình phân tích câu lệnh Data Tuning Advisor ID Định danh Identifier
KB Cơ sở tri thức Knowledge base
RAM Bộ nhớ truy xuất ngẫu nhiên Random access memory SQL Ngơn ngữ truy vấn có cấu trúc Structured query language SQLOS Hệ điều hành SQL SQL Operating system
SSCM Cơng cụ cấu hình SQL Server SQL Server configuration management SSDT Công cụ dữ liệu SQL Server SQL Server Data Tools
SSMS Công cụ quản trị SQL Server SQL Server management studio
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">Bảng 2.1. So sánh các phiên bản khác nhau của SQL Server ... 11
Bảng 2.2. Phiên bản và giá trị phiên bản được sử dụng trong ID ... 14
Bảng 2.3. Một số danh mục hệ thống ... 32
Bảng 3.1. Một số thủ tục hệ thống ... 99
Bảng 3.2. Một số câu lệnh DBCC ... 99
Bảng 5.1. Các vai trò cấp máy chủ cố định và khả năng của chúng. ... 141
Bảng 5.2. Các vai trò cấp CSDL cố định và khả năng của chúng. ... 142
Bảng 5.3. Các quyền đối với đối tượng dữ liệu và khả năng của chúng. ... 143
Bảng 5.4. Các thủ tục và câu lệnh đối với vai trò cấp máy chủ ... 163
Bảng 5.5. Các thủ tục và câu lệnh đối với vai trò cấp CSDL ... 163
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">Hình 1.1. Cấu trúc tổng thể của Hệ quản trị CSDL ... 5
Hình 2.1. Kiến trúc của MS SQL Server ... 16
Hình 2.2 - 2.4 Kết nối tới dịch vụ SQL Server ... 22
Hình 2.6 - 2.14 Thiết lập kết nối từ xa ... 24
Hình 2.15 - 2.18 Kết nối máy chủ SQL Server ... 29
Hình 3.1 - 3.4 Tạo cơ sở dữ liệu với SSMS ... 35
Hình 3.5 - 3.8 Thay đổi cấu hình cơ sở dữ liệu với SSMS ... 38
Hình 3.9 - 3.12 Xóa cơ sở dữ liệu với SSMS ... 41
Hình 3.13. Giao dịch dữ liệu ... 44
Hình 3.14. Các trạng thái của giao dịch ... 46
Hình 3.15 - 3.18 Sao lưu cơ sở dữ liệu với SSMS ... 58
Hình 3.19 - 3.23 Phục hồi cơ sở dữ liệu với SSMS ... 61
Hình 3.24 - 3.49 Tự động hóa các tác vụ quản trị ... 71
Hình 3.50 - 3.63 Giám sát hiệu suất ... 92
Hình 5.1. Mơ hình bảo mật CSDL ... 137
Hình 5.2 - 5.6 Chế độ xác thực của SQL Server ... 138
Hình 5.7 - 5.13 Quản lý login với SSMS ... 144
Hình 5.14 - 5.17 Quản lý user với SSMS ... 151
Hình 5.18 - 5.28 Quản lý vai trị với SSMS ... 155
Hình 5.29 - 5.34 Quản lý quyền với SSMS ... 166
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8"><i><b>1.1.1. Cơ sở dữ liệu </b></i>
<b>Dữ liệu là những sự kiện có thể ghi lại được, và thường khơng có ý nghĩa. Dữ liệu </b>
được gọi là thông tin sau khi được người sử dụng xử lý trong một ngữ cảnh cụ thể để trở nên có ý nghĩa.
<b>Cơ sở dữ liệu (CSDL) là tập hợp các dữ liệu có mối liên hệ với nhau về mặt ý </b>
nghĩa, được lưu trữ trên các thiết bị thứ cấp để thỏa mãn nhu cầu khai thác thông tin của nhiều người sử dụng hoặc nhiều chương trình ứng dụng.
<i><b>1.1.2. Góc nhìn dữ liệu </b></i>
Tính hiệu quả của hệ thống đòi hỏi phải thiết kế các cấu trúc dữ liệu phức tạp để biểu diễn dữ liệu trong CSDL. Các nhà phát triển che dấu sự phức tạp này thơng qua các mức trừu tượng nhằm đơn giản hóa sự trao đổi của người sử dụng với hệ thống:
<i><b>- Mức vật lý: Mô tả cách thức lưu trữ dữ liệu trong thiết bị thứ cấp. </b></i>
<i><b>- Mức ngữ nghĩa: Mô tả cách tổ chức dữ liệu trong CSDL và các mối liên hệ giữa </b></i>
các dữ liệu với nhau.
<i><b>- Mức khung nhìn: Mơ tả chỉ một phần của CSDL theo góc nhìn hay nhu cầu của </b></i>
người sử dụng.
<i><b>1.1.3. Mơ hình dữ liệu </b></i>
Mơ hình kiến trúc ba mức của hệ CSDL bao gồm:
<i><b>Mơ hình mức ngồi được dùng để mơ tả dữ liệu ở mức luận lý và mức khung nhìn. </b></i>
Chúng cung cấp khả năng cấu trúc linh hoạt và cho phép các ràng buộc dữ liệu được xác định một cách tường minh.
<i><b>Mơ hình mức khái niệm được dùng để mô tả dữ liệu ở mức luận lý hay mức khung </b></i>
nhìn. Chúng được dùng để xác định cấu trúc luận lý tổng thể CSDL và cung cấp sự mô tả chi tiết cấu trúc của dữ liệu.
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><i><b>Mơ hình mức trong được dùng để mô tả dữ liệu ở mức thấp nhất. Hai mơ hình dữ </b></i>
liệu vật lý được biết rộng rãi nhất là mơ hình hợp nhất (unifying model) và mơ hình bộ nhớ (frame-memory model ).
<i><b>khung-1.1.4. Ngơn ngữ dữ liệu </b></i>
<i><b>Ngôn ngữ định nghĩa dữ liệu (data definition language) là loại ngôn ngữ được sử </b></i>
dụng để định nghĩa cấu trúc của các thành phần trong CSDL.
<i><b>Ngôn ngữ thao tác dữ liệu (data manipulation language ) là loại ngôn ngữ được sử </b></i>
dụng để thực hiện các thao tác như thu thập, chèn, sửa, và xóa dữ liệu.
<i><b>Ngôn ngữ điều khiển dữ liệu (data controlling language) là loại ngôn ngữ được sử </b></i>
dụng để để thực hiện các khai báo bảo mật thông tin và cấp quyền hạn khai thác CSDL cho những người sử dụng khác trong hệ thống.
1.2. Kiến trúc hệ cơ sở dữ liệu
Kiến trúc hệ CSDL bị ảnh hưởng nhiều bởi hệ thống máy tính cài đặt chúng. Ba loại kiến trúc phổ biến là kiến trúc khách – chủ, song song và phân tán.
- Kiến trúc khách chủ (client – server) cho phép thực hiện một số công việc trên một hệ thống các máy chủ (server), một số công việc trên các máy trạm (client).
- Kiến trúc song song cho phép thực hiện cùng lúc nhiều truy vấn dữ liệu, qua đó làm tăng tốc độ các hoạt động của hệ CSDL, phản hồi các giao dịch nhanh hơn.
- Kiến trúc phân tán được phát triển để quản lý dữ liệu phân tán, trên phương diện địa lý hay quản trị, trải rộng trên nhiều hệ CSDL.
1.3. Lịch sử phát triển của hệ quản trị cơ sở dữ liệu
Trong gần 50 năm, hệ quản trị CSDL đã trải qua nhiều giai đoạn phát triển.
<i><b>Giai đoạn đầu những năm 1960 (giai đoạn tiền CSDL – hệ thống hướng tập tin). </b></i>
Dữ liệu được tổ chức lưu trữ trên các tập tin và được xử lý thông qua ngơn ngữ lập trình thế hệ thứ ba (ngơn ngữ bậc cao) như COBOL, BASIC. Mỗi chương trình máy tính hay ứng dụng phần mềm làm việc với dữ liệu của riêng mình. Do đó, sự trùng lặp dữ liệu, khơng chia sẻ, khó khăn trong việc nâng cấp là đặc điểm chung của các hệ thống hướng tập tin. Giai đoạn này chưa có sự hiện diện của các hệ quản trị CSDL.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"><i><b>Giai đoạn 1968 – 1980 ghi nhận sự xuất hiện của hệ quản trị CSDL đầu tiên của </b></i>
công ty IBM mang tên IMS, trong đó sử dụng mơ hình CSDL phân cấp. Bên cạnh đó, phần mềm IDMS, hệ quản trị CSDL với mơ hình CSDL mạng CODASYL, cũng được sử dụng phổ biến trong giai đoạn này. Hạn chế cơ bản của các hệ quản trị CSDL này, cũng là hạn chế của hai mơ hình CSDL nói trên, là người sử dụng, đội ngũ phát triển ứng dụng, phải nắm vững cấu trúc vật lý của CSDL với có thể truy xuất được thông tin.
<i><b>Giai đoạn 1970 đến nay (giai đoạn CSDL quan hệ - relational database). Người đặt </b></i>
nền tảng cho mơ hình dữ liệu quan hệ là E.F. Codd (1972) khi đề xuất tách tổ chức logic của CSDL khỏi các phương pháp lưu trữ vật lý. Quan điểm này cho đến nay vẫn được đánh giá là đúng đắn và nhận được sự quan tâm phát triển trong suốt thời gian qua. Đi tiên phong trong lĩnh vực CSDL, vào đầu những năm 1980, IBM giới thiệu hệ quản trị CSDL DB2, một trong những sản phẩm cốt lõi của IBM từ khi xuất hiện cho đến nay. Sự bùng nổ của công nghệ thông tin là động lực thúc đẩy sự phát triển của hàng loạt hãng sản xuất phần mềm quản trị CSDL như Oracle, PARADOX, OS/2 Database Manager, DBase, FoxBase, FoxPro (Visual FoxPro), Sysbase, Informix, ... Sự xuất hiện của mơ hình clien – server trong tính tốn vào đầu những năm 1990 trở thành chuẩn mực cho việc phát triển hệ thống thông tin với ngôn ngữ lập trình hướng đối tượng. Điều này thúc đẩy sự ra đời của dòng hệ quản trị CSDL hướng đối tượng (Object Database Management System – ODBMS). Từ giữa những năm 1990, Internet ra đời và thúc đẩy thị trường ứng dụng Web kết nối CSDL tăng trưởng mạnh mẽ. Nhiều hệ quản trị CSDL mã nguồn mở xuất hiện trong giai đoạn này, tiêu biểu là MySQL và ProgreSQL.
<i><b>Giai đoạn 2000 đến nay (giai đoạn CSDL phi quan hệ - nonrelational database). </b></i>
Trong bối cảnh các ứng dụng dựa trên Web phải luôn trực tuyến, và phải hỗ trợ một số lượng lớn các hoạt động đồng thời, việc duy trì một hệ quản trị CSDL theo mơ hình quan hệ là khơng phù hợp. Đồng thời, người ta cho rằng quá tốn kém để vận hành một hệ quản trị CSDL đầy đủ tính năng như Oracle, SQLServer, DB2 hay MySQL chỉ để quản lý một kho dữ liệu. Tương tự, việc sử dụng SQL là quá mức cần thiết cho các yêu cầu tra cứu dữ liệu đơn giản. Kết quả là sự ra đời của mơ hình dữ liệu NoSQL. Các hệ quản trị CSDL sử dụng mơ hình dữ liệu NoSQL tiêu biểu là MongoDB, Apache Cassandra, và Redis.
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">1.4. Các chức năng của hệ quản trị cơ sở dữ liệu
Hệ quản trị CSDL là một gói phần mềm có chức năng xác định, thao tác, truy xuất, quản lý toàn bộ dữ liệu trong CSDL. Các chức năng chính của hệ quản trị CSDL bao gồm:
<i><b>- Định nghĩa dữ liệu: Cung cấp khả năng định nghĩa dữ liệu, các cấu trúc lưu trữ và </b></i>
tổ chức dữ liệu cũng như mối liên hệ giữa các thành phần dữ liệu.
<i><b>- Truy xuất và thao tác dữ liệu: Cho phép thực hiện các thao tác truy xuất, bổ sung </b></i>
và cập nhật dữ liệu.
<i><b>- Điều khiển truy cập: Cấp phát và kiểm soát các thao tác của người sử dụng dữ liệu, </b></i>
đảm bảo an toàn cho dữ liệu.
<i><b>- Đảm bảo tồn vẹn dữ liệu: Cung cấp các cơng cụ để đảm bảo tính hợp lệ và chính </b></i>
xác của dữ liệu trước thao tác cập nhật cũng như các lỗi của hệ thống. 1.5. Cấu trúc tổng thể của hệ quản trị cơ sở dữ liệu
<i>Cấu trúc tổng thể của một hệ quản trị CSDL được phác họa trong Hình 1.1 với các </i>
<i><b>- Bộ xử lý truy vấn: Thực hiện điều khiển không chỉ các câu hỏi mà cả các yêu cầu </b></i>
thay đổi dữ liệu hay siêu dữ liệu nhằm tìm ra cách tốt nhất để thực hiện một thao tác.
<i><b>- Bộ quản lý giao dịch: Đảm bảo tính nguyên tố, tính nhất q, tính biệt lập và tính </b></i>
duy trì xuyên suốt trong quá trình thao tác đối với dữ liệu.
<i><b>- Thao tác của người dùng: Hệ quản trị CSDL đáp ứng các thao tác sau đây từ phía </b></i>
người sử dụng:
o <i>Truy vấn dữ liệu: hỏi đáp về dữ liệu lưu trữ, được tạo ra theo giao diện truy </i>
vấn hoặc qua giao diện chương trình ứng dụng.
o <i>Cập nhật dữ liệu: thao tác thay đổi dữ liệu như thêm, sửa, xoá dữ liệu lưu </i>
trữ, được tạo ra theo hai cách như trên.
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">o <i>Thay đổi lược đồ: thao tác thay đổi cấu trúc logic của dữ liệu, được tạo ra bởi </i>
nhân viên thiết kế (trong quá trình phát triển ứng dụng) hoặc nhân viên quản trị (trong quá trình khai thác ứng dụng).
Hình 1.1. Cấu trúc tổng thể của Hệ quản trị CSDL 1.6. Các xu hướng mới về hệ quản trị cơ sở dữ liệu
Các khái niệm trong quản trị CSDL hầu như không thuộc về loại thay đổi dễ dàng, do chi phí chuyển đổi giữa các phương pháp tiếp cận công nghệ sẽ áp đảo các nhà sản xuất, quản lý và thiết kế. Tuy nhiên, có một số xu hướng trong quản trị CSDL và biết cách tận dụng chúng sẽ mang lại lợi ích cho tổ chức. Sau đây là một số xu hướng hiện tại:
<b>CSDL kết nối SQL/NoSQL. Xu hướng mới nhất trong các sản phẩm CSDL là các </b>
sản phẩm không chỉ bao gồm một cấu trúc CSDL duy nhất. Thay vào đó, CSDL kết nối SQL và NoSQL được kết hợp nhằm mang lại cho người dùng những khả năng tốt nhất được cung cấp bởi cả hai. Các sản phẩm loại này cho phép người dùng truy cập CSDL NoSQL theo cách tương tự như CSDL quan hệ.
<b>CSDL trên đám mây/nền tảng như là dịch vụ. Khi các nhà phát triển tiếp tục thúc </b>
đẩy các doanh nghiệp của họ lên đám mây, các tổ chức đang cân nhắc cẩn thận giữa sự cân bằng giữa công khai và riêng tư. Các nhà phát triển cũng đang xác định cách kết hợp các dịch vụ đám mây với các ứng dụng và cơ sở hạ tầng hiện có. Các nhà cung cấp dịch vụ đám mây đưa ra nhiều tùy chọn cho người quản trị CSDL. Tiến tới đám mây khơng có
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">nghĩa là thay đổi các ưu tiên của tổ chức mà là tìm kiếm các sản phẩm và dịch vụ giúp nhóm các tổ chức đạt được mục tiêu.
<b>Tự động hóa trong việc quản trị. Tự động hóa quản trị CSDL là một xu hướng </b>
mới nổi khác. Tập hợp các kỹ thuật và cơng cụ nhằm mục đích đơn giản hóa việc bảo trì, vá lỗi, cung cấp, cập nhật và nâng cấp - ngay cả quy trình làm việc của dự án. Tuy nhiên, xu hướng này có thể có giới hạn về tính hữu ích vì các rủi ro thường không dự kiến trước và việc khắc phục thường cần sự can thiệp của con người.
<b>Tăng cường tập trung vào bảo mật. Mặc dù không phải là một xu hướng chính </b>
xác với sự tập trung liên tục vào bảo mật dữ liệu, nhưng các vụ vi phạm CSDL bán lẻ đang diễn ra gần đây cho thấy tầm quan trọng của việc quản trị viên CSDL hợp tác với các đồng nghiệp bảo mật công nghệ thông tin để đảm bảo tất cả dữ liệu doanh nghiệp vẫn cịn an tồn. Bất kỳ tổ chức nào lưu trữ dữ liệu đều dễ bị tấn công. Quản trị viên CSDL cũng phải làm việc với nhóm bảo mật để loại bỏ các điểm yếu tiềm ẩn bên trong có thể khiến dữ liệu dễ bị tấn cơng. Chúng có thể bao gồm các vấn đề liên quan đến đặc quyền mạng, thậm chí cả cấu hình sai phần cứng hoặc phần mềm có thể bị sử dụng sai, dẫn đến rò rỉ dữ liệu.
<b>Dữ liệu lớn. Dữ liệu lớn khơng nhất thiết có nghĩa là nhiều dữ liệu. Những gì nó </b>
thực sự đề cập đến là khả năng xử lý bất kỳ loại dữ liệu nào: những gì thường được gọi là dữ liệu bán cấu trúc và phi cấu trúc cũng như dữ liệu có cấu trúc. Suy nghĩ hiện tại là những giải pháp này thường sẽ tồn tại cùng với các giải pháp thông thường như các công nghệ riêng biệt, ít nhất là trong các tổ chức lớn, nhưng điều này sẽ không luôn đúng như vậy. 1.7. Câu hỏi ơn tập
1- Trình bày khái niệm Hệ CSDL, góc nhìn, mơ hình và ngơn ngữ dữ liệu 2- Trình bày các kiến trúc Hệ CSDL
3- Trình bày lịch sử phát triển của Hệ quản trị CSDL 4- Trình bày các chức năng chính của Hệ quản trị CSDL 5- Trình bày cấu trúc tổng thể của Hệ quản trị CSDL 6- Trình bày một số xu hướng mới về Hệ quản trị CSDL
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14"><b>Sự bắt đầu. Giữa năm 1988, Microsoft kết hợp với Ashton-Tate và Sybase tạo ra </b>
một biến thể của Sybase SQL Server cho IBM OS/2. Đây là phiên bản đầu tiên của Microsoft SQL Server và là bước gia nhập thị trường CSDL cấp doanh nghiệp của Microsoft, cạnh tranh với Oracle, IBM, Informix, Ingres và sau đó là Sybase. SQL Server 4.2 được xuất xưởng vào năm 1992, đi kèm với OS/2 phiên bản 1.3, tiếp theo là phiên bản 4.21 dành cho Windows NT, được phát hành cùng với Windows NT 3.1. Sau đó, SQL Server 6.0 là phiên bản đầu tiên được thiết kế cho Windows NT và không bao gồm bất kỳ hướng dẫn nào từ Sybase. Vào ngày 12 tháng 6 năm 1988, Microsoft kết hợp với Ashton-Tate và Sybase để tạo ra một biến thể của Sybase SQL Server cho IBM OS / 2 (sau đó được phát triển chung với Microsoft), được phát hành vào năm sau. [1] Đây là phiên bản đầu tiên của Microsoft SQL Server và đóng vai trò là bước gia nhập thị trường CSDL cấp doanh nghiệp của Microsoft, cạnh tranh với Oracle, IBM, Informix, Ingres và sau đó là Sybase. SQL Server 4.2 được xuất xưởng vào năm 1992, đi kèm với OS / 2 phiên bản 1.3, tiếp theo là phiên bản 4.21 dành cho Windows NT, được phát hành cùng với Windows NT 3.1. SQL Server 6.0 là phiên bản đầu tiên được thiết kế cho NT và không bao gồm bất kỳ hướng dẫn nào từ Sybase. Giữa năm 1993, Sybase và Microsoft đã chia tay nhau và mỗi người theo đuổi các kế hoạch thiết kế và tiếp thị của riêng mình. Microsoft đã thương lượng độc quyền đối với tất cả các phiên bản SQL Server được viết cho hệ điều hành của Microsoft. Cho đến năm 1994, SQL Server của Microsoft đã mang ba thông báo bản quyền Sybase như một dấu hiệu về nguồn gốc của nó.
<b>SQL Server 7.0 là một bản viết lại lớn sử dụng ngơn ngữ lập trình C++ trên cơ sở </b>
máy Sybase vốn được phát triển bằng ngơn ngữ lập trình C. Các trang dữ liệu được phóng to từ 2 KB đến 8 KB. Cơ chế lập lịch người dùng (User Mode Scheduling - UMS) được giới thiệu để xử lý các luồng SQL Server tốt hơn so với cơ chế xử lý của hệ điều hành Windows lúc bấy giờ. SQL Server 7.0 cũng giới thiệu một sản phẩm CSDL đa chiều gọi
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">là Dịch vụ SQL OLAP. SQL Server 7.0 đã hết được hỗ trợ chính kết thúc vào ngày 31 tháng 12 năm 2005.
<b>SQL Server 2000 bao gồm nhiều sửa đổi và mở rộng hơn cho cơ sở mã Sybase, bổ </b>
sung hỗ trợ cho kiến trúc IA-64. Trong bản phát hành này, hiệu suất của hệ thống đã được cải tiến đáng kể với các công cụ IDE máy khách và một số hệ thống bổ sung bao gồm; dịch vụ tích hợp, dịch vụ báo cáo, dịch vụ phân tích, dịch vụ mơi giới và thơng báo. SQL Server 2000 cũng giới thiệu nhiều cải tiến của ngôn ngữ T-SQL, chẳng hạn như biến bảng, hàm do người dùng định nghĩa, chế độ xem được lập chỉ mục, trình kích hoạt INSTEAD OF, ràng buộc tham chiếu theo tầng và một số hỗ trợ XML cơ bản. Với việc phát hành Gói dịch vụ 3, Microsoft cũng đã phát hành phiên bản 64-bit đầu tiên của SQL Server cho nền tảng Itanium IA-64. Các công cụ ứng dụng khách, chẳng hạn như Trình quản lý doanh nghiệp, vẫn cần được chạy từ các ứng dụng khách x86 32-bit. Bản phát hành đầu tiên của SQL IA-64 là phiên bản 8.00.760, với ngày xây dựng là 6 tháng 2 năm 2003. SQL Server 2000 chính thức hết hỗ trợ từ ngày 8 tháng 4 năm 2008.
<b>SQL Server 2005 được phát hành vào tháng 11 năm 2005 với chức năng quản lý </b>
dữ liệu XML, ngồi dữ liệu quan hệ. Với mục đích này, SQL Server đã sử dụng XML như một kiểu dữ liệu trong các cột CSDL hoặc dưới dạng các ký tự trong các truy vấn. Dữ liệu XML đang được lưu trữ được xác minh dựa trên lược đồ XSD. XML được chuyển đổi thành kiểu dữ liệu nhị phân nội bộ trước khi được lưu trữ trong CSDL. Các phương pháp lập chỉ mục chuyên biệt đã được cung cấp cho dữ liệu XML. Dữ liệu XML được truy vấn bằng XQuery; SQL Server 2005 đã thêm một số phần mở rộng vào ngôn ngữ T-SQL để cho phép nhúng các truy vấn XQuery vào T-SQL. SQL Server 2005 cũng cho phép một máy chủ CSDL được hiển thị qua các dịch vụ web bằng cách sử dụng các gói Tabular Data Stream (TDS) được đóng gói trong các yêu cầu SOAP. Nhờ vậy, khi dữ liệu được truy cập qua các dịch vụ web, kết quả được trả về dưới dạng XML. Trong phiên bản này, các mã SQL được quản lý bởi một công cụ mới là Common Language Runtime (CLR). Đối với dữ liệu quan hệ, T-SQL đã được tăng cường các tính năng xử lý lỗi và hỗ trợ các truy vấn đệ quy với Common Table Expressions (CTE). SQL Server 2005 cũng đã được cải tiến với các thuật toán lập chỉ mục mới, cú pháp và hệ thống khôi phục lỗi tốt hơn. Các trang dữ
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">liệu được tổng kiểm tra để có khả năng phục hồi lỗi tốt hơn và hỗ trợ đồng thời lạc quan đã được thêm vào để có hiệu suất tốt hơn. Quyền và kiểm soát truy cập đã được thực hiện chi tiết hơn và bộ xử lý truy vấn xử lý việc thực thi đồng thời các truy vấn theo cách hiệu quả hơn. Các phân vùng trên bảng và chỉ mục được hỗ trợ nguyên bản, vì vậy việc mở rộng CSDL thành một cụm dễ dàng hơn. Nhiều tính năng khác được giới thiệu trong SQL Server 2005, bao gồm Multi-version Concurrency Control (MVCC), Multiple Active Results Set (MARS), hay Dynamic Management Views (DMV). Đây cũng là phiên bản đầu tiên hỗ trợ nền tảng 64 bit. SQL Server 2005 chính thức hết hỗ trợ từ ngày 12 tháng 4 năm 2011.
<b>SQL Server 2008 được phát hành vào tháng 8 năm 2008 nhằm mục đích làm cho </b>
việc quản lý dữ liệu tự điều chỉnh, tự tổ chức và tự bảo trì với sự phát triển của cơng nghệ SQL Server Always On. SQL Server 2008 cũng bao gồm hỗ trợ cho dữ liệu có cấu trúc và bán cấu trúc, bao gồm các định dạng phương tiện kỹ thuật số cho hình ảnh, âm thanh, video và dữ liệu đa phương tiện khác. Trong các phiên bản hiện tại, dữ liệu đa phương tiện như vậy có thể được lưu trữ dưới dạng BLOB (đối tượng lớn nhị phân), nhưng chúng là dòng bit chung. Nhận thức nội tại về dữ liệu đa phương tiện sẽ cho phép thực hiện các chức năng chuyên biệt trên chúng. SQL Server 2008 có thể được xem là một phần mềm lưu trữ dữ liệu cho nhiều loại dữ liệu khác nhau: XML, email, thời gian / lịch, tệp, tài liệu, không gian, ... cũng như thực hiện tìm kiếm, truy vấn, phân tích, chia sẻ và đồng bộ hóa trên tất cả các loại dữ liệu. Kiểu dữ liệu FILESTREAM mới được giới thiệu trong SQL Server 2008 có thể được sử dụng để tham chiếu bất kỳ tập tin nào được lưu trữ trên hệ thống tập tin. Dữ liệu có cấu trúc và siêu dữ liệu về tập tin được lưu trữ trong CSDL SQL Server, trong khi thành phần khơng có cấu trúc được lưu trữ trong hệ thống tập tin. Các tập tin như vậy có thể được truy cập cả thông qua các API xử lý tệp Win32 cũng như qua SQL Server bằng T-SQL. Sao lưu và khôi phục CSDL cũng sao lưu hoặc khôi phục các tập tin được tham chiếu. SQL Server 2008 cũng hỗ trợ dữ liệu phân cấp một cách nguyên bản và bao gồm các cấu trúc T-SQL để xử lý trực tiếp chúng mà không cần sử dụng truy vấn đệ quy.
<i><b>SQL Server 2012 ra mắt vào tháng 6 năm 2021 với sự xuất hiện của Always On </b></i>
<i>SQL Server Failover Cluster Instances và Availability Groups. Các tính năng này cung cấp </i>
một tập hợp các tùy chọn để cải thiện tính khả dụng của CSDL, đơn giản hóa việc di chuyển
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">CSDL giữa các phiên bản. Khả năng lập trình được cải thiện với Dynamic Management Views and Functions và một số tính năng mới liên quan đến quản lý dữ liệu không gian, khám phá siêu dữ liệu. Phiên bản này chú trọng tới việc nâng cao hiệu suất hoạt động với sự xuất hiện của ColumnStore Indexes, hay tăng cường khả năng bảo mật trong thiết lập, quyền mới, cải tiến quản lý vai trò và chỉ định giản đồ mặc định cho các nhóm, ... Đây cũng là phiên bản cuối cùng hỗ trợ OLEDB nguyên gốc.
<b>SQL Server 2014 được phát hành vào tháng 4 năm 2014, cung cấp một khả năng </b>
lưu trữ toàn bộ bảng dữ liệu trong bộ nhớ. Trong các phiên bản trước, các bảng dữ có thể lưu trữ trên ổ đĩa vật lý, vì vậy phát sinh hàng loạt công việc liên quan khi truy cập dữ liệu trong bảng, bao gồm lưu trữ dữ liệu trong RAM, ghi các trang bị đẩy ra đĩa, tải các trang mới từ đĩa vật lý, khóa các trang trong RAM khi chúng đang được vận hành, ... Bằng cách coi một bảng được đảm bảo là hồn tồn nằm trong bộ nhớ, có thể tránh được tình trạng nghẽn dữ liệu. SQL Server 2014 cũng nâng cao giải pháp Always On (HADR) bằng cách tăng khả năng có thể đọc và duy trì hoạt động đọc khi ngắt kết nối chính-phụ. Nó cung cấp các giải pháp sao lưu và khôi phục thảm họa kết hợp mới với Microsoft Azure, cho phép khách hàng sử dụng các kỹ năng hiện có với phiên bản SQL Server tại chỗ để tận dụng các trung tâm dữ liệu tồn cầu của Microsoft. Ngồi ra, nó cịn tận dụng các khả năng mới của Windows Server 2012 và Windows Server 2012 R2 để có khả năng mở rộng ứng dụng CSDL trong môi trường vật lý hoặc ảo.
<b>SQL Server 2016 được phát hành vào tháng 6 năm 2016 và chỉ hỗ trợ bộ xử lý 64 </b>
bit. Đây là phiên bản cuối cùng có gói Server Packs.
<b>SQL Server 2017 xuất hiện vào tháng 10 năm 2017 có phiên bản chạy trên dòng </b>
hệ điều hành Linux.
<b>SQL Server 2019 xuất hiện vào tháng 11 năm 2019 với tính năng mới Big Data </b>
Clusters for SQL Server. Nó cũng cung cấp khả năng và cải tiến bổ sung cho nhiều dịch vụ khác của SQL Server.
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18"><b>2.2. Cài đặt SQL Server </b>
<i><b>2.2.1. Lập kế hoạch cài đặt </b></i>
Cài đặt SQL Server là một hoạt động phức tạp và kéo dài với nhiều yêu cầu về phần cứng, phần mềm và bảo mật khác nhau. Do đó, việc tìm hiểu các u cầu cài đặt, kiểm tra cấu hình hệ thống và các cân nhắc bảo mật để cài đặt SQL Server là cần thiết. Các nội dung này cụ thể như sau:
- Tìm hiểu chi tiết về các tính năng mới hoặc cải tiến trong phiên bản SQL Server muốn cài đặt.
- Tìm hiểu các yêu cầu phần cứng, phần mềm tối thiểu để cài đặt và chạy phiên bản SQL Server; đối chiếu với cấu hình hiện tại của máy chủ để xác định bản cài đặt phù hợp.
- Xem xét một số phương pháp bảo mật tốt nhất trước và sau khi cài đặt SQL Server.
- Tìm hiểu cấu hình mặc định và tùy chọn của các dịch vụ cần thiết lập trong và sau khi cài đặt SQL Server.
- Tìm hiểu cấu hình mặc định và tùy chọn của các giao thức mạng trong SQL Server.
- Xem xét việc cài đặt nhiều phiên bản và sử dụng nhiều thể hiện SQL Server. - Xem xét việc sử dụng SQL Server được bản địa hóa (nếu có).
<i><b>2.2.2. Lựa chọn phiên bản cài đặt </b></i>
Microsoft phát hành nhiều phiên bản cài đặt khác nhau, người sử dụng lựa chọn dựa trên đặc điểm kỹ thuật, nhu cầu sử dụng và khả năng đáp ứng của phiên bản (Bảng 2.1). Bảng 2.1. So sánh các phiên bản khác nhau của SQL Server
<b>Tính năng </b>
<b>Doanh nghiệp Enterprise </b>
<b>Tiêu chuẩn Standard </b>
<b>Rút gọn Express </b>
<b>Phát triển Developer </b>
Số lượng core tối đa <sup>Không giới </sup><sub>hạn </sub> 24 core 4 core giới hạn <sup>Khơng </sup>Kích thước vùng đệm tối đa Tối đa 128 GB 1410 MB Tối đa Bộ nhớ cache phân đoạn cột tối đa Tối đa 32 GB 352 MB Tối đa Bộ nhớ tối đa cho mỗi CSDL Tối đa 32 GB 352 MB Tối đa
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">Kích thước CSDL tối đa 524 PB 524 PB 10 GB 524 PB
Báo cáo tuân thủ với tuân thủ SQL Server x x x x
Báo cáo trên thiết bị di động và KPI x x
Quyền truy cập Power BI Report Server x Tích hợp Machine Learning cơ bản x x x x Tích hợp Machine Learning nâng cao x x Machine Learning cho Spark và Linux x
<i><b>- Đĩa cứng (Hard disk): SQL Server yêu cầu tối thiểu 6GB đối với khơng gian lưu </b></i>
trữ trên đĩa cứng. Ngồi ra, kích thước lưu trữ cịn phụ thuộc vào các thành phần SQL Server được lựa chọn để cài đặt theo mục đích sử dụng. Một máy chủ CSDL SQL Server có thể chiếm tới 8GB lưu trữ trong đĩa cứng.
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20"><i><b>- Màn hình (Monitor): SQL Server u cầu màn hình có độ phân giải 800x600 </b></i>
hoặc cao hơn.
<i><b>- Internet: Các chức năng liên quan đến kết nối mạng yêu cầu truy cập Internet. - Bộ nhớ RAM (Random access memory): SQL Server bản Express yêu cầu tối </b></i>
thiểu 1 GB, trong khi mức tối thiểu đối với các phiên bản khác là 4 GB hoặc cao hơn, tùy theo kích thước của các CSDL người dùng và các nghiệp vụ xử lý trên dữ liệu.
<i><b>- Bộ xử lý CPU (Central Processing Unit): SQL Server yêu cầu x64 Processor 2.0 </b></i>
GHz hoặc nhanh hơn. 2.2.3.2. Yêu cầu phần mềm
Các yêu cầu sau đây về bộ nhớ và bộ xử lý áp dụng đối với tất cả các phiên bản của SQL Server 2019:
<i><b>- Hệ điều hành Windows 10 TH1 1507 hoặc cao hơn; Windows Server 2016 hoặc </b></i>
Đối với một phiên bản của SQL Server bao gồm Máy chủ CSDL (Database Engine – DBE), Dịch vụ phân tích (Analysis Services) và Dịch vụ báo cáo (Reporting Services), mỗi thành phần có một tập hợp đầy đủ dữ liệu và tập tin thực thi cũng như các tập tin chung được chia sẻ bởi tất cả các thành phần. Để cơ lập các vị trí cài đặt cho từng thành phần, các định danh (Identifier – ID) phiên bản duy nhất được tạo cho từng thành phần trong một phiên bản SQL Server nhất định.
Các tập tin chung được sử dụng bởi tất cả các phiên bản trên một máy tính được cài đặt trong thư mục <drive>: \ Program Files \ Microsoft SQL Server \ nnn \. Trong đó,
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21"><i><b><drive> là ký tự ổ đĩa nơi các thành phần được cài đặt. Mặc định thường là ổ C. nnn xác </b></i>
<b>định phiên bản. Bảng sau xác định các phiên bản cho các đường dẫn. {nn} là giá trị phiên </b>
bản được sử dụng trong ID phiên bản và đường dẫn đăng ký. Bảng 2.2. Phiên bản và giá trị phiên bản được sử dụng trong ID
Ví dụ 2.1. ID của thể hiện trong SQL Server
<b>- MSSQL{nn}.MSSQLSERVER thể hiện mặc định của SQL Server. </b>
<b>- MSAS{nn}.MSSQLSERVER thể hiện mặc định của of Dịch vụ phân tích. - MSSQL{nn}.MyInstance thể hiện người dùng đặt tên của SQL Server với tên </b>
gọi là “MyInstance”
Ví dụ 2.2. Cấu trúc thư mục của SQL Server
Cấu trúc thư mục cho phiên bản SQL SERVER bao gồm Máy chủ CSDL và Dịch vụ phân tích, với thể hiện được đặt tên là “MyInstance”. Mặc định, các thư mục cài đặt là:
- C:\Program Files\Microsoft SQL Server\MSSQL{nn}.MyInstance\ - C:\Program Files\Microsoft SQL Server\MSAS{nn}.MyInstance\
<b>Chú ý: Có thể chỉ định thư mục chứa các tập tin cài đặt thay vì sử dụng thư mục mặc định </b>
trong khi thiết lập cài đặt SQL Server.
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">- Cài đặt Dịch vụ báo cáo - Cài đặt Các công cụ quản trị - Cài đặt Các công cụ dữ liệu
- Nâng cấp từ các phiên bản trước của SQL Server
<b>2.3. Kiến trúc SQL Server </b>
<i><b>2.3.1. Kiến trúc chung </b></i>
Microsoft SQL Server là một kiến trúc khách – chủ (client – server). Một tiến trình của SQL Server bắt đầu với việc ứng dụng khách gửi một yêu cầu, sau đó máy chủ SQL thực hiện các bước xử lý và phản hồi kết quả đạt được. SQL Server được cấu thành bởi hai thành phần chính là Máy CSDL (Database Engine - DBEngine) và Hệ điều hành SQL Server (SQL Server Operating System – SQLOS).
<b>Máy CSDL (DBEngine) là thành phần cốt lõi của kiến trúc SQL Server, chịu trách </b>
nhiệm lưu trữ, xử lý và bảo mật dữ liệu. SQL Server hỗ trợ tối đa 50 thể hiện DBEngine trên một máy tính đơn. Mỗi thể hiện DBEngine cung cấp quyền truy cập có kiểm sốt và xử lý giao dịch nhanh chóng nhằm đáp ứng yêu cầu của các ứng dụng sử dụng dữ liệu. DB Engine gồm một máy quan hệ (Relational Engine) để xử lý các truy vấn là một máy lưu trữ (Storage Engine) để quản lý các tập tin CSDL, trang, chỉ mục, … Ngay cả các đối tượng CSDL như thủ tục, khung nhìn và bẩy lỗi cũng được tạo và thực thi thông qua DB Engine.
<i><b>Máy quan hệ (Relational Engine) có nhiệm vụ xử lý các truy vấn, do đó cịn được </b></i>
gọi là bộ xử lý truy vấn. Ngồi ra, máy quan hệ cịn quản lý bộ nhớ, quản lý luồng và tác vụ, quản lý bộ đệm và xử lý truy vấn phân tán. Nó thường yêu cầu dữ liệu từ công cụ lưu trữ cho một truy vấn đầu vào nhất định và xử lý đầu ra trên cơ sở đó. Ba thành phần chính của máy quan hệ bao gồm:
<i>- Trình phân tích câu lệnh (Command Parser) là thành phần đầu tiên của công cụ </i>
quan hệ để nhận dữ liệu truy vấn. Nó chủ yếu kiểm tra truy vấn để tìm lỗi cú pháp và ngữ nghĩa. Sau cùng, nó tạo một cây truy vấn tương ứng với truy vấn ban đầu.
<i>- Trình tối ưu hóa (Optimizer) tìm kế hoạch thực thi rẻ nhất, không phải tốt nhất, </i>
hiệu quả về chi phí. Việc tối ưu hóa chủ yếu được thực hiện cho các lệnh thao
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">tác dữ liệu (Data manipulation language – DML) chứ không phải tất cả các truy vấn. Mục tiêu cuối cùng là giảm thiểu thời gian thực hiện truy vấn.
<i>- Trình thực thi (Query executor) cung cấp một kế hoạch để tìm, nạp dữ liệu cần </i>
thiết để thực thi truy vấn. Sau khi nhận được dữ liệu máy lưu trữ, kết quả sẽ được chuyển vào vào lớp giao thức (Protocol layer). Cuối cùng, dữ liệu được gửi đến người dùng cuối.
<i>Hình 2.1. Kiến trúc của MS SQL Server (Nguồn: Microsoft) </i>
<i><b>Máy lưu trữ (Storage Engine) chịu trách nhiệm chính về việc lưu trữ và truy xuất </b></i>
dữ liệu từ các hệ thống lưu trữ. Nó có ba thành phần chính sau:
<i>- Phương thức truy cập (Access method) xác định xem truy vấn là câu lệnh chọn </i>
(SELECT) hay không. Sau đó nó gọi bộ đệm và chuyển giao dịch cho Trình quản lý tương ứng.
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24"><i>- Trình quản lý bộ đệm (Buffer manager) quản lý các chức năng cốt lõi của Plan </i>
Cache, Data Parsing & Dirty Page.
<i>- Trình quản lý giao dịch (Transaction manager) quản lý giao dịch không chọn </i>
(Non-Select transaction) với sự trợ giúp của trình quản lý nhật ký và khóa (Log and Lock Manager).
<b>Hệ điều hành SQL Server (SQLOS) là một lớp ứng dụng riêng biệt ở cấp thấp </b>
nhất của SQL Server. Nó nằm ở lớp dưới so với máy lưu trữ và máy quan hệ. Nó thực sự cung cấp các dịch vụ hệ điều hành như bộ nhớ và quản lý I/O với nhiều dịch vụ khác như là dịch vụ đồng bộ và xử lý ngoại lệ. Một số chức năng quan trọng của SQLOS:
- Lập lịch và báo cáo hoàn thành nhập xuất - Quản lý đồng bộ hóa luồng.
- Xử lý ngoại lệ.
- Phát hiện và quản lý khóa chết (deadlock)
- Kiểm soát lượng bộ nhớ mà một thành phần trong SQL Server đang sử dụng. - Thực hiện lưu trữ cho các thành phần bên ngoài như CLR và MDAC.
<i><b>2.3.2. Kiến trúc bộ nhớ </b></i>
SQL Server tự động thu nhận và giải phóng bộ nhớ theo yêu cầu. Thông thường, quản trị viên không phải chỉ định lượng bộ nhớ nên được cấp phát cho SQL Server, mặc dù tùy chọn này vẫn tồn tại và được yêu cầu trong một số môi trường. Một trong những mục tiêu thiết kế chính của tất cả các phần mềm CSDL là giảm thiểu I/O đĩa vì đọc và ghi đĩa là một trong những hoạt động sử dụng nhiều tài nguyên nhất. SQL Server xây dựng một vùng đệm trong bộ nhớ để giữ các trang được đọc từ CSDL. Phần lớn mã trong SQL Server được dành riêng để giảm thiểu số lần đọc và ghi vật lý giữa đĩa và vùng đệm. SQL Server cố gắng đạt được sự cân bằng giữa hai mục tiêu:
- Giữ cho vùng đệm không trở nên quá lớn khiến toàn bộ hệ thống sắp hết bộ nhớ. - Giảm thiểu I / O vật lý cho các tập tin CSDL bằng cách tối đa hóa kích thước
của vùng đệm.
<i><b>2.3.3. Kiến trúc tập tin dữ liệu </b></i>
Kiến trúc tập tin dữ liệu (data file) của SQL Server gồm các thành phần sau đây:
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25"><b>- Nhóm tập tin (File Group): Các tập tin CSDL có thể nhóm lại với nhau thành các </b>
nhóm tập tin. Có hai loại File Group trong SQL Server:
<i><b>o Primary chứa các tập tin dữ liệu chính và bất kỳ tập tin nào khơng được gán </b></i>
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.
<i><b>o User-defined là các nhóm tập tin do người dùng định nghĩa, nó được chỉ định </b></i>
<b>bằng cách sử dụng từ khóa file group trong lệnh tạo CSDL hoặc xóa CSDL. - Tập tin dữ liệu (Datafile): Trong SQL Server có 3 loại tập tin dữ liệu là Primary </b>
(tập tin dữ liệu chính), Secondary (tập tin dữ liệu phụ) và Log (tập tin nhật ký). Primary là điểm bắt đầu của CSDL và chỉ dẫn đến các file khác trong CSDL.
<b>- Khối dữ liệu (Extent) là một đơn vị lưu trữ, trong đó khơng gian được phân bổ cho </b>
mỗi bảng, chỉ mục. Mỗi Extent gồm 8 trang liền kề hoặc 64KB.
<b>- Trang dữ liệu (Page): đơn vị cơ bản trong lưu trữ dữ liệu của SQL Server. Kích </b>
thước của một trang là 8KB.
<i><b>2.3.4. Kiến trúc tập tin nhật ký </b></i>
Các nhật ký giao dịch (transaction log) trên SQL Server là chuỗi các bản ghi nhật ký (record log). Mỗi bản ghi nhật ký được xác định bởi Log Sequence Number (LSN), trong đó có ID của giao dịch chứa nó.
Nhật ký ghi lại những sửa đổi dữ liệu hoặc các hoạt động được thực hiện. Nó được sử dụng để khơi phục hình ảnh trước khi hoặc xác định hình ảnh 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 khi thao 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ực hiện.
<i><b>2.3.5. Các CSDL hệ thống </b></i>
Hệ quản trị SQL Server có bốn CSDL hệ thống, bao gồm:
<b>CSDL master lưu trữ toàn bộ các thông tin cấp hệ thống, thông tin khởi tạo và cấu </b>
hình hệ thống, thơng tin tài khoản người dùng, biến môi trường, thông điệp lỗi hệ thống và các thủ tục hệ thống, ghi nhận sự tồn tại của tất cả các CSDL, vị trí của các tập tin dữ liệu.
<b>CSDL model là CSDL mẫu cho tất cả CSDL tạo mới trong hệ thống, có thể tùy </b>
biến cho phù hợp.
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26"><b>CSDL msdb lưu giữ các bảng hệ thống, đồng thời được SQL Server Agent sử dụng </b>
trong việc lập biểu, cảnh báo và ghi nhận các thao tác.
<b>CSDL tempdb được dùng như là vùng chứa tạm thời đối với các bảng và các thủ </b>
tục tạm. Toàn bộ bảng tạm và thủ tục trong CSDL tempdb liên quan đến phiên làm việc bị xóa bỏ khi phiên làm việc đó kết thúc.
<b>2.4. Các công cụ quản trị SQL Server </b>
<i><b>2.4.1. Management Studio </b></i>
SQL Server Management Studio (SSMS) là một phần mềm ứng dụng phát hành lần đầu tiên với Microsoft SQL Server 2005, được sử dụng để định cấu hình, quản lý và quản trị tất cả các thành phần trong Microsoft SQL Server.
SSMS là một trong những công cụ quản lý SQL Server, được sử dụng để thiết kế truy vấn và quản lý CSDL và kho dữ liệu thơng qua máy tính cá nhân hoặc đám mây. Trên thực tế, SSMS là một mơi trường tích hợp cung cấp các cơng cụ để định cấu hình, giám sát và quản trị các phiên bản và CSDL SQL Server.
Một tính năng quan trọng của SSMS là Object Explorer, cho phép người dùng duyệt, chọn và thao tác trên trên bất kỳ đối tượng nào trong máy chủ. Microsoft cũng kết hợp khả năng tương thích ngược cho các phiên bản SQL Server cũ hơn. Nhờ vậy, phiên bản SSMS mới có thể kết nối với các SQL Server phiên bản cũ. Từ năm 2017, Microsoft phát hành các phiên bản SSMS độc lập với các bản phát hành công cụ CSDL SQL Server.
<i><b>2.4.2. Configuration manager </b></i>
SQL Server Configuration Manager (SSCM) là một công cụ để quản lý các dịch vụ được liên kết với SQL Server, để định cấu hình các giao thức mạng được sử dụng bởi SQL Server và quản lý cấu hình kết nối mạng từ các máy khách SQL Server. SSCM được cài đặt cùng với cài đặt SQL Server. SSCM là một phần mềm Microsoft Management Console có sẵn từ menu Start hoặc có thể được thêm vào bất kỳ màn hình Microsoft Management Console nào khác.
Trình quản lý SSCM và SSMS sử dụng Công cụ quản lý cửa sổ (Window Management Instrumentation – WMI) để xem và thay đổi một số cài đặt máy chủ. WMI cung cấp một cách thống nhất để giao tiếp với các lệnh gọi API quản lý các hoạt động đăng
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">ký được yêu cầu bởi các công cụ SQL Server và cung cấp khả năng kiểm soát và thao tác nâng cao đối với các dịch vụ SQL đã chọn của thành phần đính vào SSCM.
<i><b>2.4.3. Server Profiler </b></i>
Microsoft SQL Server Profiler là một giao diện đồ họa người dùng (Graphical User Interface – GUI) cho SQL Trace để giám sát thể hiện của máy CSDL (Database Engine) hoặc các dịch vụ phân tích (Analysis Services). Người dùng có thể chụp và lưu dữ liệu về từng sự kiện vào một tập tin hoặc bảng để phân tích sau này, chẳng hạn giám sát và xác định thủ tục lưu trữ nào đang thực thi quá chậm, làm ảnh hưởng đến hiệu suất của hệ thống. SQL Server Profiler được sử dụng cho các hoạt động như:
- Duyệt các câu truy vấn để tìm ra nguyên nhân của vấn đề. - Tìm và chẩn đốn các truy vấn chạy chậm.
- Nắm bắt chuỗi câu lệnh T-SQL dẫn đến sự cố. Sau đó, các dấu vết đã lưu có thể được sử dụng để tái tạo sự cố trên máy chủ thử nghiệm nhằm chẩn đoán sự cố. - Giám sát hiệu suất của SQL Server để điều chỉnh khối lượng công việc.
- So sánh bộ đếm hiệu suất để chẩn đoán sự cố.
<i><b>2.4.4. Database Engine Tuning Advisor </b></i>
SQL Server tích hợp một cơng cụ hiệu suất khác được gọi là Database Engine Tuning Advisor (DTA). Công cụ này cho phép SQL Server phân tích một câu lệnh hoặc một loạt câu lệnh có sẵn bằng cách chạy một hồ sơ (profiler) hoặc dấu vết phía máy chủ (server side trace). Sau đó, DTA sẽ xem xét từng câu lệnh để xác định nơi có thể thực hiện các cải tiến và sau đó trình bày các tùy chọn để cải tiến.
Về cơ bản, DTA là một công cụ giúp xác định liệu các chỉ mục bổ sung hay việc phân vùng có hữu ích hay khơng. Dưới đây là tóm tắt về các tùy chọn:
- Thêm chỉ mục (chế độ xem theo nhóm, khơng nhóm và được lập chỉ mục) - Thêm phân vùng
- Thêm thống kê, bao gồm thống kê nhiều cột không được tạo tự động ngay cả khi đã bật tùy chọn AUTO_CREATE_STATISTICS
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28"><i><b>2.4.5. Data Quality Client Application </b></i>
Data Quality Client (DQC) cung cấp giao diện đồ họa trực quan và đơn giản để kết nối với Data Quality Server (DQS) và thực hiện các thao tác làm sạch dữ liệu. Nó cũng cho phép theo dõi tập trung các hoạt động khác nhau được thực hiện trong quá trình làm sạch dữ liệu.
DQC cho phép thực hiện các hoạt động kiểm sốt chất lượng dữ liệu bằng một cơng cụ độc lập. Ứng dụng này cho phép tạo cơ sở kiến thức (Knowledge Base – KB), tạo và chạy các dự án chất lượng dữ liệu và thực hiện các tác vụ quản trị. DQC được cài đặt trong quá trình thiết lập SQL Server. Nó có thể được cài đặt trên cùng một máy tính với DQS hoặc trên một máy tính khác.
Người quản lý dữ liệu, chuyên gia dữ liệu hoặc chuyên gia CNTT chịu trách nhiệm quản lý tài sản dữ liệu và duy trì các tiêu chuẩn cao về chất lượng dữ liệu có thể sử dụng DQC ở bất kỳ vai trò nào trong ba vai trị: Điều hành DQS KB, người có thể chỉnh sửa và thực hiện dự án chất lượng dữ liệu; Biên tập DQS KB, người có thể thực hiện các chức năng của dự án, tạo và chỉnh sửa cơ sở tri thức; và Quản trị viên DQS, người có thể thực hiện các chức năng của dự án và cơ sở tri thức cũng như quản trị hệ thống.
<i><b>2.4.6. Data Tools </b></i>
SQL Server Data Tools (SSDT) là một giải pháp Visual Studio nhằm phát triển CSDL quan hệ SQL Server. Về cơ bản, nó là sự mở rộng của sản phẩm Business Intelligence Developer Studio (BIDS) từ Visual Studio 2008. Ngồi các cơng cụ CSDL mới, SSDT hỗ trợ các loại dự án BIDS thông thường cho Dịch vụ phân tích (SQL Server Analysis Services – SSAS), Dịch vụ báo cáo (SQL Server Reporting Services – SSRS) và Dịch vụ tích hợp (SQL Server Integration Services – SSIS). Với SSDT, Microsoft đã hợp nhất tất cả các trải nghiệm phát triển CSDL SQL Server vào một phiên bản Visual Studio duy nhất.
<b>2.5. Quản lý máy chủ SQL Server </b>
SQL Server Configuration Manager (SSCM) cho phép thiết lập các giao thức mạng máy chủ và máy khách cũng như các tùy chọn kết nối. Thông thường việc thiết lập này chỉ cần thực hiện một lần, ngay sau khi hoàn thành cài đặt hệ thống. Tuy nhiên, trong quá trình
</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">quản lý, vận hành, nếu có sự thay đổi về hạ tầng cơng nghệ, việc cấu hình lại các giao thức mạng cũng như các kết nối máy chủ là cần thiết.
<i><b>2.5.1. Điều khiển hoạt động SQL Server </b></i>
Thông thường, dịch vụ SQL Server cùng với máy CSDL (DBE) hoạt động liên tục 24/7 hoặc tự động khởi động lại cùng với máy chủ CSDL. Nói cách khác, các ứng dụng quản trị có thể kết nối với dịch vụ SQL Server và DBE bất kỳ lúc nào. Tuy nhiên, một vài trường hợp lỗi xảy ra trong quá trình khởi động các ứng dụng này. Dưới đây là một lỗi phổ biến liên quan đến việc SSMS không thể kết nối tới dịch vụ SQL Server.
Hình 2.2. Kết nối tới dịch vụ SQL Server
Nhiều nguyên nhân dẫn tới tình trạng nói trên (1) lỗi đường truyền phía máy chủ cài đặt SQL Server hoặc máy khách cài đặt SSMS; (2) bị chặn bởi các thiết bị bảo mật như tường lửa. Trong trường hợp đường truyền hoạt động tốt và kết nối không bị cản trở bởi các thiết bị bảo mật, lỗi nói trên nhiều khả năng là do dịch vụ SQL Server đang không ở trong trạng thái hoạt động. Khi đó, SSCM là cơng cụ hữu ích để kiểm tra và kích hoạt dịch vụ SQL Server theo trình tự sau đây:
<b>Bước 1: Gọi thực hiện SSCM, mở SQL Server Services </b>
</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">Hình 2.3. Kết nối tới dịch vụ SQL Server
<b>Bước 2: Chọn dịch vụ SQL Server (<server name>), nhấn chuột phải để hiển thị </b>
danh sách các thao tác có thể thực hiện
Hình 2.4. Kết nối tới dịch vụ SQL Server
<b>Bước 3: Chọn thao tác muốn thực hiện (Start/Stop/Pause/Resume/Restart) </b>
</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">Hình 2.5. Kết nối tới dịch vụ SQL Server
<i><b>2.5.2. Thiết lập kết nối từ xa </b></i>
SSMS hoạt động như một trình khách, được cài đặt trên một máy tính khác với máy chủ CSDL. Để SSMS có thể kết nối vào máy chủ CSDL và thực hiện các tác vụ quản trị vận hành, cần thiết thực hiện một số thay đổi trên máy chủ CSDL thông qua SSCM theo trình tự sau đây:
<b>Bước 1: Khởi động dịch vụ SQL Server Browser </b>
- Gọi thực hiện SSCM, mở SQL Server Services
Hình 2.6. Thiết lập kết nối từ xa
</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">- Nhấn chuột phải vào dịch vụ SQL Server Browser trong danh sách các dịch vụ của SQL Server, và chọn Properties trong thanh thực đơn.
</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">Hình 2.9. Thiết lập kết nối từ xa
- Nhấn nút Start để khởi động dịch vụ SQL Server Browser.
<b>Bước 2: Thiết lập giao thức mạng thích hợp </b>
- 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 2.10. Thiết lập kết nối từ xa
</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">- 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
Hình 2.11. Thiết lập kết nối từ xa
<b>Bước 3: Thiết lập cơ chế kết nối </b>
- Nhấn chuột phải vào dịch vụ SQL Server (<server name>) trong danh sách các dịch vụ của SQL Server, và chọn Properties trong thanh thực đơn.
Hình 2.12. Thiết lập kết nối từ xa
- Trong giao diện SQL Server (<server name>) Properties, đánh dấu nút Built-in account và chọn Network Service cho hộp chọn đi kèm.
</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">Hình 2.13. Thiết lập kết nối từ xa
- Nhấn nút OK trong giao diện SQL Server (<server name>) Properties để hoàn tất việc cấu hình.
<b>Bước 4: Khởi động lại dịch vụ SQL Server </b>
- Nhấn chuột phải vào dịch vụ SQL Server (<server name>) trong danh sách các dịch vụ của SQL Server, và chọn Restart trong thanh thực đơn để khởi động lại dịch vụ SQL Server.
Hình 2.14. Thiết lập kết nối từ xa
</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36"><i><b>2.5.3. Kết nối máy chủ SQL Server </b></i>
Bước 1: Khởi động phiên kết nối máy chủ SQL Server, sử dụng SSMS
Hình 2.15. Kết nối máy chủ SQL Server Bước 2: Lựa chọn kiểu máy chủ muốn kết nối (Server type), bao gồm:
- Máy chủ CSDL (Database Engine – DBE), mặc định. - Các dịch vụ phân tích (Analysis Services).
- Các dịch vụ báo cáo (Reporting Services). - Các dịch vụ tích hợp (Integration Services). - Và các dịch vụ khác (nếu có).
Bước 3: Lựa chọn tên máy chủ muốn kết nối (Server name), mặc định là máy chủ cục bộ (Local server) với tên máy tính đang cài SQL Server cũng như SMSS. Tuy nhiên, nhấn vào dấu mũi tên nếu muốn hiển thị danh sách các máy chủ đã kết nối trước đó (connection history). Trong trường hợp muốn tìm một máy chủ chưa bao giờ sử dụng, nhấn nút
<b>Browsers for more ... để mở giao diện lựa chọn máy chủ (Browser for Servers). </b>
</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">Hình 2.16. Kết nối máy chủ SQL Server
Trong giao diện này, thẻ Local Servers chứa máy chủ CSDL và các dịch vụ cài sẵn trên máy cục bộ. Nếu muốn chọn máy chủ từ xa, nhấn thẻ Network Servers.
Hình 2.17. Kết nối máy chủ SQL Server
Hệ thống sẽ tự động dị tìm trong các mạng khả dụng với máy tính cục bộ và trả về danh sách các máy tính có cài đặt SQL Server sẵn sàng cho việc kết nối. Trong trường hợp có một danh sách như thế, nhấn vào máy tính muốn kết nối để hiển thị máy chủ CSDL và các dịch vụ khả dụng tại đó. Sau đó, nhấn nút OK để lựa chọn. Kết quả này sẽ được ghi nhận trong mục Server Name ở giao diện Connect to Server.
Bước 4: Lựa chọn cơ chế xác thực:
- Nếu kết nối vào máy chủ cục bộ, có thể lựa chọn cả hai cơ chế xác thực là Window Authentication và SQL Server Authentication
- Nếu kết nối vào máy chủ từ xa, chỉ lựa chọn SQL Server Authentication. Bước 5: Cung cấp tài khoản đăng nhập (đối với cơ chế xác thực SQL Server Authentication. Bước 6: Nhấn nút Connect để thực hiện kết nối. Sau khi kết nối thành cơng, SSMS có giao diện như sau:
</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">Hình 2.18. Kết nối máy chủ SQL Server
<b>2.6. Các danh mục trong SQL Server </b>
Danh mục hệ thống bao gồm các bảng mô tả cấu trúc của các đối tượng như CSDL, bảng, khung nhìn và chỉ mục. Các bảng này được gọi là bảng cơ sở hệ thống. DB Engine thường xuyên truy cập vào danh mục hệ thống để tìm thơng tin cần thiết cho hoạt động bình thường của hệ thống. Việc thay đổi hay xóa các bảng cơ sở hệ thống nói trên có thể làm cho CSDL bị mất chức năng, bị xáo trộn hoặc không sử dụng được, thậm chí có thể làm cho tồn bộ hệ thống dừng hoạt động.
<i><b>DB Engine phân biệt các bảng cơ sở hệ thống của CSDL master với các bảng của </b></i>
một CSDL do người dùng định nghĩa (user-defined database). Các bảng hệ thống của
<i><b>CSDL master thuộc về danh mục hệ thống (system catalog), trong khi các bảng hệ thống </b></i>
<b>của một CSDL người dùng định nghĩa tạo thành danh mục CSDL (database catalog). Nói </b>
cách khác, danh mục hệ thống hoạt động trên phạm vi toàn bộ hệ thống, trong khi danh mục CSDL có ý nghĩa trên mỗi CSDL người dùng định nghĩa. Bảng dưới đây tóm tắt nội dung của một số danh mục hệ thống:
</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">Bảng 2.3. Một số danh mục hệ thống
Sys.altfiles Thông tin về mỗi tập tin trong CSDL
Sys.configures Thông tin về mỗi lựa chọn máy chủ được thiết lập Sys.databases Thông tin về mỗi CSDL
Sys.devices Thông tin về mỗi thiết bị sao lưu
Sys.logins Thông tin về mỗi tài khoản đăng nhập
Sys.comments Thông tin về mỗi khung nhìn, luật, mặc định, bẩy lỗi, ràng buộc Sys.indexes Thông tin về mỗi chỉ mục
Sys.objects Thông tin về mỗi đối tượng trong CSDL Sys.users Thông tin về mỗi người dùng
Trong tất cả các hệ CSDL quan hệ, các bảng cơ sở hệ thống có cấu trúc giống như các bảng cơ sở. Do đó, các câu lệnh T-SQL được sử dụng để truy xuất thơng tin trong bảng cơ sở có thể được sử dụng để truy xuất thông tin trong bảng cơ sở hệ thống với tài khoản sử dụng thuộc nhóm System Administrator.
Ví dụ 2.3. Sử dụng T-SQL truy cập danh mục hệ thống
</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">Ví dụ 2.4. Sử dụng T-SQL truy cập danh mục CSDL
<b>2.7. Câu hỏi ơn tập </b>
1- Trình bày lịch sử phát triển của Hệ quản trị SQL Server
2- Trình bày các nội dung cần thực hiện khi lập kế hoạch cài đặt SQL Server
3- Xác định điều kiện phần cứng, phần mềm và cách tổ chức các ổ đĩa lưu trữ để cài đặt SQL Server 2019.
4- Trình bày kiến trúc SQL Server 2019
5- Trình bày tóm tắt chức năng của một số công cụ quản trị SQL Server 2019. 6- Trình bày quản lý máy chủ SQL Server 2019
7- Trình bày các danh mục trong SQL Server 2019
</div>