- Đảm bảo toàn vẹn dữ liệu: SQL định nghĩa các ràng buộc toàn vẹn trong cơ sở dữ liệu nhờđó đảm bảo tính hợp lệ và chính xác của dữ liệu trướ c các thao
b. Sẵn sàng sau khi server bị hỏng
Một số tính năng được thêm vào liên kết lỗi server đã được hỗ trợ ở SQL Server 2000:
- Khôi phục nhanh hơn: sau khi server bị hỏng, CSDL được làm để sẵn sàng cho người dùng nhanh hơn trong quá trình khôi phục.
- Tạo bản sao CSDL trực tuyến (Database Mirroring): sử dụng phần cứng chuẩn, server lưu bản sao (mirror server) luôn được duy trì bản sao mới nhất. Khi server chính bị lỗi, server lưu bản sao sẵn sàng để sử dụng chỉ trong vài giây và server chính lúc này được ẩn đi đối với người dùng.
- Định hướng ngầm lại kết nối cho client: khi khôi phục, server lưu bản sao dùng định hướng ngầm lại kết nối cho client (Transparent Client Redirect). Lớp MDAC (Microsoft Data Access Component) ghi nhận mirror server khi kết nối tới server chính. Nếu server chính bị hỏng, MDAC định hướng kết nối tới mirror server.
c. Sẵn sàng trong khi bảo trì CSDL
Quá trình sao lưu và khôi phục phải tin cậy để đảm bảo việc khôi phục dữ
liệu hiệu quả. Một số tính năng được cung cấp trong SQL Server 2005:
- Sữa chữa trực tuyến từng phần(Finer grained Online repairs): khôi phục dữ
liệu filegroup với CSDL đang sẵn sàng sau khi filegroup chính được khôi phục. - Nâng cao chức năng kiểm tra sao lưu dự phòng (Enhanced Backup Verification): với cú pháp RESTORE VERIFY ONLY, mọi thức có thểđược kiểm tra, rút ngắn quá trình ghi bản sao lưu dự phòng xuống server.
- Tạo bản sao của bản sao lưu dự phòng (Backup Media mirroring): mục
đích để giảm thiểu khả năng khôi phục không thành công hoặc tạo bản sao lưu ngoài.
- Kiểm tra tổng trang CSDL (Database Page Checksums): mục đích để dò rìm lỗi trong từng trang dữ liệu để tránh sai sót.
- Kiểm tra tổng bản sao lưu dự phòng (Backup Checksums): cơ chế dò tìm lỗi trong khi thực hiện sao lưu dự phòng. Nó có thể tìm lỗi trước và sửa lỗi sau.
- Sao lưu dự phòng dữ liệu cùng lúc với sao lưu dự phòng tập tin log (Backup Data and Logs).
3.1.2.6. Nâng cao khả năng mở rộng CSDL
- Phân vùng dữ liệu
- Giám sát điều chỉnh cỗ máy CSDL
Chức năng giám sát điều chỉnh cỗ máy CSDL của SQL Server 2005 là Database Engine Tuning Advisor (DTA) thay thế cho SQL Server 2000 Index Tuning Wizard.
- Hỗ trợ gắn nóng bộ nhớ giúp cải thiện hiệu suất thực thi dưới tải cao và tránh được thới gian chết máy.
- Nâng cao hiệu suất sao chép và đồng bộ (Replication).
3.1.2.7. Tăng cường khả năng khai thác thông tin (Business Intelligence)
Khai thác thông tin là sức mạnh đáng chú ý của SQL Server 2005. Các tính năng được thêm vào Analysis Services, Intergration Services (thay thế cho Data Transformation Services) và Reporting services được xây dựng trên cơ sở các tính năng của Reporting Services trong SQL Server 2000.
Khai thác thông tin trong SQL Server 2005 sử dụng các mẫu Analyze, Intergrate và Report.
Dùng Intergration Services để kết hợp dữ liệu từ nhiều nguồn lại với nhau; dùng Analysis Services để có cái nhìn chi tiết bên trong dữ liệu; dùng Reporting Services để tạo các báo cáo thể hiện các phân tích với người dùng.
3.2. Quản trị CSDL bằng SQL Server 2005
Phần này chúng ta sẽ làm việc trên thể hiện SQL Server Management Studio của SQL Server 2005. SQL Server Management Studio (thay thế cho công cụ
Enterprise Management trong SQL Server 2000) cho phép truy cập các đối tượng CSDL như table, view, store procedure, index… thông qua Object Explorer
3.2.1. Một số thuật ngữ cần tìm hiểu trong CSDL.
3.2.1.1. Mẩu tin, trường và giá trị
Bảng (table) được tạo thành từ mẩu tin (record) và trường (field). Một mẩu tin là tất cả thông tin về một trong những thực thể trong bảng. Trường là một phần thông tin cụ thể được lưu trong bảng. Tùy thuộc vào mục đích của việc sử dụng bảng mà đôi khi việc tương tác với mẩu tin sẽ thuận lợi hơn đối với trường và ngược lại. Khi kiểm tra một trường cụ thể trong một bảng cụ thể, chúng ta xem giá trị của trường đó trong mẩu tin đó.
Trong ví dụ minh họa trên: + Tên bảng là Docgia
+ Trường là: những thông tin từng phần về Ma_docgia, Họ, Tên_lot… và
được xác định theo cột.
+ Mẩu tin: là tất cả những thông tin về một trong những độc giả trong bảng Docgia, bao gồm những thông tin về Ma_docgia, và được xác định theo dòng
+ 1, 2, Tran,… là các giá trịđược xác định trong trường và mẩu tin.
3.2.1.2. Dòng và cột
Các mẩu tin được biểu diển theo dòng và các trường được biểu diễn theo cột. Nội dung của bảng được hiển thi trên lưới tạo bởi dòng và cột. Tài liệu Microsoft SQL Server thường dùng thuật ngữ dòng và cột, nhưng một số tài liệu về CSDL nói chung thì sử dụng thuật ngữ mẩu tin và trường.
3.2.1.3. Giá trị Null
Một giá trị là dữ liệu thật sự được lưu trong một trường xác định của một bảng xác định. Vậy điều gì sẽ xảy ra khi không có dữ liệu? Một gía trị Null thể hiện sự thiếu thông tin, đó là cách CSDL cho chúng ta biết rằng nó không biết dữ liệu thuộc cột đó là dữ liệu gì.
3.2.1.4. Thuộc tính và cột
Không phải tất cả các cột đều được tạo ra như nhau, việc diễn tả sự khác nhau đó được SQL Server chỉ ra thông qua thuộc tính cột.
Mỗi cột trong bảng thường có các thuộc tính sau:
- Column name: tên cột, cho phép tham chiếu đến cột đó trong bảng
- Data type: kiểu dữ liệu, cho phép ràng buộc dữ liệu lưu trong cột. Thuộc tính length của cột chỉ ra lượng dữ liệu tối đa có thể lưu giữ trong cột đó.
- Allow Nulls: cho biết giá trị Null có được phép lưu trong cột hay không. Bằng cách sử dụng thuộc tính cột để phân biệt một cột với cột khác, làm cho cột gọn gàng và có trật tự.
Khóa chính: là thông tin nhận dạng duy nhất cho phép bạn tìm ra chính xác một dòng dữ liệu trong bảng. Không thể có 2 dòng trong cùng một bảng có cùng giá trị trong cột khóa chính.
Khóa chính có thể được tạo thành từ một cột đơn hoặc từ nhiều cột trong bảng.
Ngoài khóa chính, còn có khóa ngoại. Khóa ngoại cho phép chúng ta lấy dữ
liệu từ các bảng káhc trong cùng một CSDL.
3.2.1.6. Chỉ mục và ràng buộc
Chỉ mục (index) trên bảng dùng để xác định nhanh chóng các dòng dữ liệu cụ thể. Chúng ta sẽ chọn một hoặc nhiều cột trong bảng để đánh chỉ mục. Chỉ mục có thể duy nhất hoặc không. Chỉ mục duy nhất hạn chế dữ liệu thêm vào bảng. Một chỉ mục cũng có thể là liên cung hoặc phi liên cung.Thuật ngữ này nói đến thứ tự
lưu trữ vật lý của bảng.
Lưu ý:
Mặc dù một bảng có thể có nhiều chỉ mục nhưng chỉ có thể có một chỉ mục liên cung.
SQL Server cung cấp một kiểu chỉ mục khác gọi là full-text. Không giống với chỉ mục thông thường được lưu với bảng, chỉ mục full-text được lưu trong các
đối tượng đặc biệt gọi là catalogs. Chỉ mục full-text không được cập nhật tự động. Nó có thể được cập nhật bằng cách chạy một tác vụ đánh chỉ mục đặc biệt trên server hoặc chúng ta cấu hình để nó được cập nhật tự động khi bảng thay đổi. Tuy nhiên khả năng tìm kiếm của full-text kém chính xác hơn chỉ mục thông thường.
Đối với chỉ mục thông thường, để xác định dòng dữ liệu, cần cung cấp chính xác giá trị đã đặt trong chỉ mục. Đối với full-text có thể tìm kiếm theo cách tự nhiên hơn.
Ràng buộc là những quy tắc áp dụng cho dữ liệu trong bảng. Khi đã cái đặt ràng buộc cho dữ liệu trong bảng, bất kỳ hành động thêm hoặc sửa đổi dữ liệu mà pha 1vỡ ràng buộc này đều bị server CSDL từ chối.
3.2.1.7. Biểu thức và giá trị mặc định
Hai đối tượng khác kết hợp với bảng là qui tắc và mặc định. Qui tắc là một biểu thức có thể được đánh giá là True hoặc False khi áp dụng vào giá trị của cột. Ví dụ, một qui tắc xác định giá trị của cột có nằm giữa giá trị 0 và 100 hay không.
Nếu áp dụng qui tắc này cho một cột cụ thể, server CSDL sẽ không cho phép nhập vào giá trị ngoài phạm vi trên.
Giá trị mặc định (default): là một đối tượng riêng biệt chỉ ra một giá trị đơn. Bằng cách kết hợp giá trị mặc định với cột của bảng thì giá trị của cột đó trong dòng dữ liệu mới được thêm vào bảng bằng với giá trị mặc định trong trường hợp không cung cấp giá trị cho cột đó.
Mặc dù SQL Server hỗ trợ cả quy tắc và giá trị mặc định nhưng chỉ còn tương thích với các phiên bản cũ. Đối với phát triển mới thì quy tắc được thay thế
bằng ràng buộc và giá trị mặc định được thay thế bằng thuộc tính giá trị của cột.
3.2.2. Quản lý Database trong SQL Server 2005
Phần này sẽ giới thiệu một số thao tác cơ bản trên Database như: tạo mới, thay đổi, xóa, lưu trữ dự phòng và phục hồi CSDL.
Để thực hiện các thao tác này, chúng ta có thể dùng công cụ trong Object Explorer hoặc tập lệnh T-SQL.
3.2.2.1. Dùng công cụ trong Object Explorer