Chương 4 Hệ quản trị cơ sở dữ liệu SQL Server Mục tiêu: Kết thúc chương, học viên có thể: Hiểu được các chức năng của SQL Server Hiểu được các chức năng mở rộng, các đặc tính và ưu đi
Trang 1Chương 4 Hệ quản trị cơ sở dữ liệu SQL Server Mục tiêu:
Kết thúc chương, học viên có thể:
Hiểu được các chức năng của SQL Server
Hiểu được các chức năng mở rộng, các đặc tính và ưu điểm của SQL Server
Hiểu được những dịch vụ của SQL Server
Làm việc với hệ quản lý CSDL (Enterprise Manager), bộ phân tích truy vấn (Query Analyzer)
Hiểu rõ cách sử dụng tệp cơ sở dữ liệu (database file) và log file
Hiểu rõ cách làm thế nào để tạo và xoá cơ sở dữ liệu trong SQL Server
Nắm được các thao tác bảo trì CSDL
Giới thiệu
Trong phần trước, chúng ta đã tìm hiểu các đặc điểm của một hệ quản trị CSDL quan hệ (RDBMS) thông dụng là MS Access Chúng ta đã biết cách tạo CSDL và bảng trong MS Access, cách đặt khóa chính và cách tạo mối quan hệ giữa các bảng Chúng ta cũng biết cách xuất dữ liệu (export data), thu gọn và sửa chữa khôi phục lại cơ sở dữ liệu Trong phần trước, chúng ta đã được giới thiệu về SQL Server, các đặc điểm cơ bản và cơ chế làm việc của nó Phần này, chúng
ta sẽ phân biệt cơ chế lưu trữ dữ liệu bên trong của SQL Server và MS Access, học cách tạo lập
và quản lí dữ liệu trong SQL Server
4.1 Giới thiệu SQL Server 2000
Vào những năm 1980, tập đoàn Microsoft và Sybase cùng hợp tác với nhau cho ra đời hệ quản trị
cơ sở dữ liệu quan hệ đa năng gọi là “SQL Server” Sau đó ra đời phiên bản SQL Server 6.5, Microsoft và Sybase đã tách riêng và SQL Server đã trở thành sản phẩm cạnh tranh Phiên bản mới nhất, SQL Server 2000 là phiên bản đánh dấu tầm quan trọng của SQL Server SQL Server
2000 cung cấp một hệ thống quản lí dữ liệu lớn dành cho doanh nghiệp
SQL Server 2000 có các phiên bản khác nhau, tuỳ thuộc vào yêu cầu thực thi và cấu hình tại chế
độ chạy thực SQL Server chia thành các phiên bản sau:
SQL Server 2000 Enterprise Edition
SQL Server 2000 Standard Edition
SQL Server 2000 Personal Edition
SQL Server Developer Edition
SQL Server 2000 Desktop Engine
SQL Server 2000 Windows CE Edition
Trong tất cả các phiên bản trên, bản SQL Server 2000 Enterprise Edition được ứng dụng rộng rãi
do hỗ trợ đầy đủ và mạnh mẽ về khả năng đáp ứng và độ tin cậy
Trang 24.1.1 Tìm hiểu các đặc điểm của SQL Server
Chúng ta xét một vài các đặc điểm chính của SQL Server 2000
Dễ cài đặt
Nhằm đáp ứng mục đích dễ cài đặt, dễ sử dụng và dễ quản lý, SQL Server 2000 cung cấp một tập hợp các công cụ để quản trị và phát triển
Mềm dẻo và khả năng dễ dùng
Đây là phiên bản cơ sở dữ liệu có thể làm việc trên nhiều hệ thống khác nhau từ máy tính xách tay cài đặt hệ điều hành Windows 98 đến máy tính server cài đặt phiên bản Windows
2000 Data Center
Hỗ trợ mô hình Client/Server
SQL Server được thiết kế theo mô hình khách/chủ (Client/Server) Trong mô hình này, máy khách và máy chủ như tham gia vào một hội thoại theo cơ chế ‘yêu cầu – đáp ứng’ (request – response) Một ứng dụng chạy trên máy khách và yêu cầu dữ liệu từ máy chủ Phía máy chủ
xử lý các yêu cầu từ phía ứng dụng và chỉ gửi về các dữ liệu được yêu cầu bởi máy khách
Do đó, các công việc được tách biệt giữa máy khách và máy chủ Công việc phía máy trạm là yêu cầu dữ liệu bằng cách sử dụng các câu lệnh được diễn tả bằng ngôn ngữ cơ sở dữ liệu, trong khi đó công việc phía máy chủ là xử lý các yêu cầu và gửi kết quả trả về phía máy khách
Tính tương thích với hệ điều hành
Là một sản phẩm của Microsoft, SQL Server 2000 chạy trên nền Windowss NT 4 và Windows 2000 Yêu cầu tối thiểu để chạy các phiên bản SQL Server 2000 là phải cài đặt bản Service Pack (SP) từ phiên bản 5 trở đi
Thích hợp nhiều giao thức
Một giao thức là một tập hợp các qui tắc đã được chuẩn hóa Trong cuộc sống, chúng ta cũng phải tuân theo những tiêu chuẩn và nguyên tắc nhất định đối với ngôn ngữ mà chúng ta nói hàng ngày Trong môi trường mạng máy tính cũng như vậy Đối với máy tính, để giao tiếp (nói chuyện) với nhau, có sự gửi và nhận những gói dữ liệu, máy tính ở cả hai phía phải sử dụng một ngôn ngữ chung để nói chuyện, gọi là giao thức (Protocol) SQL Server 2000 hỗ trợ hầu hết những giao thức thông dụng như AppleTalk, TCP/IP
Kho dữ liệu (Data Warehousing)
SQL Server cung cấp một vài công cụ để xây dựng kho dữ liệu Sử dụng DTS designer, bạn
có thể định nghĩa các bước thực hiện, luồng công việc và chuyển đổi dữ liệu để xây dựng kho
dữ liệu từ nhiều nguồn dữ liệu khác nhau SQL Server cũng cung cấp nhiều công cụ để phân tích dữ liệu dựa trên các câu hỏi bằng tiếng Anh Dữ liệu đã được lấy ra và phân tích được dùng trong quá trình phân tích dữ liệu trực tuyến
Tương thích (ANSI/ISO SQL-92)
Trang 3SQL Server tuân theo các chuẩn ANSI/ISO SQL-92 Microsoft cũng đưa thêm một số mở
rộng vào ngôn ngữ SQL, gọi là ‘Transact – SQL’.
Hỗ trợ việc nhân bản dữ liệu (Data Replication Support)
SQL Server 2000 hỗ trợ việc nhân bản dữ liệu (Data replication) Điều này có nghĩa là có hai hay nhiều bản sao của CSDL được đồng bộ để những thay đổi trên một bản sẽ được cập nhật vào các bản khác
Tìm kiếm (Full-Text)
Tìm kiếm full-text cho phép tìm kiếm theo các kí tự Nó cũng có thể tìm kiếm theo từ hoàn chỉnh hay cụm từ Indexing wizard tạo index trên một bảng nhất định Wizard này có thể tìm thấy trong Enterprise Manager Nó chứa tất cả các dữ liệu cần thiết để tìm kiếm từ/ cụm từ
Sách hướng dẫn trực tuyến (Books Online)
Books Online là một thành phần thêm vào, và sẽ tốn không gian trên server Trợ giúp dưới dạng một quyển sách giúp cho việc tìm kiếm theo bất kì chủ đề nào rất dễ dàng
4.1.2
Cài đặt SQL Server
Trước khi cài đặt SQL Server, bạn phải đảm bảo các yêu cầu về phần mềm và phần cứng được đáp ứng Các yêu cầu phần mềm và phần cứng cho việc cài đặt SQL Server bao gồm:
Các yêu cầu phần cứng của SQL Server được liệt kê trong bảng sau
Thành phần phần cứng Yêu cầu
Không gian đĩa Cài đặt tối thiều cần 95 MB; cài đặt đầy đủ 270 MB
Table 4.1: Các yêu cầu phần cứng của SQL Server
Các yêu cầu phần mềm của SQL Server 2000 là:
Windows 98, Windows NT Server 4.0 với Service Pack 5 hoặc cao hơn, Windows NT Workstation 4.0 với Service Pack 5 hoặc cao hơn hay Windows 2000 (tất cả các phiên bản)
Internet Explorer 5.0 hoặc cao hơn
Để cài đặt một bản cục bộ, đơn giản, người sử dụng có thể lựa chọn cài đặt một bản mới (New) hoặc cài thêm (Additional) Sau khi nhập thông tin người dùng và số ID của sản phẩm, người dùng có thể chọn các thành phần sẽ được cài đặt Sau đó người sử dụng có thể lựa chọn cài đặt hoặc là Connectivity only, Client tools only (bao gồm các thành phần kết nối) hoặc Complete
Server and Client tools (bao gồm đầy đủ các công cụ trên máy chủ và máy khách).
Trang 4Nếu người sử dụng chọn việc cài đặt CSDL quan hệ SQL Server 2000 gồm cả các công cụ trên máy chủ và máy khách, người sử dụng sẽ lựa chọn hoặc đặt một tên khác (named instance) hoặc dùng tên mặc định (default instance) cho SQL Server 2000
Sau khi lựa chọn tên mặc định hay đặt tên mới cho SQL Server, màn hình lựa chọn kiểu cài đặt hiện ra
Tùy theo các đặc trưng của hệ thống và những xác lập trong quá trình cài đặt, các lựa chọn khác
có thể xuất hiện
4.2 Môi trường ứng dụng tích hợp của SQL Server 2000
Trong phần này, chúng ta sẽ tìm hiểu Enterprise Manager, các thể hiện của SQL Server 2000 ( SQL Server 2000 instance) và đăng nhập vào chúng, các CSDL hệ thống, T-SQL, Query Analyzer và trợ giúp trực tuyến
4.2.1
SQL Server Enterprise Manager
SQL Server Enterprise Manager là công cụ quản trị chính của SQL Server 2000 và cung cấp giao diện cho phép người sử dụng định nghĩa các nhóm máy chủ chạy SQL Server 2000, đăng ký từng máy chủ vào nhóm, thiết lập cấu hình tất cả các lựa chọn của SQL Server 2000 cho mỗi máy chủ đã đăng ký, tạo và quản trị tất cả các CSDL của SQL Server 2000, các đối tượng, đăng nhập, người sử dụng, và quyền trên mỗi máy chủ đã đăng ký
SQL Server Enterprise Manager có thể được gọi bằng cách lựa chọn biểu tượng ‘Enterprise Manager’ trong nhóm chương trình Microsoft SQL Server
Chúng ta có thể đăng nhập vào một thể hiện của SQL Server 2000 bằng bất kỳ công cụ quản trị nào hoặc từ dấu nhắc dòng lệnh
Khi ta đăng nhập vào một thể hiện của SQL Server 2000 bằng một công cụ quản trị như SQL Server Enterprise Manager hay SQL Query Analyzer, chúng ta được yêu cầu nhập tên máy chủ, login ID, và mật khẩu nếu cần Quá trình đăng nhập phụ thuộc vào việc SQL Server 2000 sử
dụng chế độ xác thực nào: Windows Authentication (xác thực của Windows), hay mixed mode
(xác thực kết hợp của Windows và SQL Server) Nếu SQL Server sử dụng Windows
Authentication bạn không cần phải cung cấp login ID mỗi khi bạn truy cập vào SQL Server Thay vào đó, SQL Server 2000 tự động đăng nhập sử dụng tài khoản đăng nhập vào Windows NT của bạn
Một CSDL là một tập hợp dữ liệu được lưu trong các tệp trên đĩa cứng Một CSDL chứa nhiều tệp để có thể lưu được toàn bộ dữ liệu thực
SQL Server 2000 có hai kiểu CSDL
CSDL Hệ thống
CSDL người dùng
Trang 5CSDL hệ thống (System databases) chứa thông tin về SQL Server 2000 SQL Server 2000 sử
dụng CSDL hệ thống để vận hành và quản lý các CSDL người dùng Các CDSL người dùng được tạo ra bởi người sử dụng Cả hai kiểu CSDL đều lưu trữ dữ liệu
Các CSDL hệ thống là master, model, msdb, và tempdb CSDL mẫu là pubs và Northwind.
Để nhập dữ liệu vào trong các bảng của bất kể một CSDL mẫu nào, bạn phải chỉ ra CSDL tương ứng, lựa chọn bảng và kích chuột phải lên nó để hiển thị menu ‘shortcut’ Từ menu shortcut, chọn
Open Table và Return all Rows Sau đó nhập dữ liệu thích hợp vào bảng.
Figure 4.1: CSDL mẫu NorthWind với dữ liệu có sẵn
4.2.2 Giới thiệu T-SQL
Các chuẩn đã có của SQL không đủ khả năng để giải quyết tất cả các vấn đề gặp phải khi lập trình trên CSDL quan hệ Để đáp ứng nhu cầu của cộng đồng người dùng, nhà cung cấp CSDL bắt đầu mở rộng ngôn ngữ SQL thêm vào những tính năng được cải tiến từ các chức năng cơ bản của SQL. Transact-SQL (còn được gọi là T-SQL) là một tập hợp những sự mở rộng khả năng
lập trình trong SQL của Microsoft Một số tính năng thêm vào SQL bao gồm kiểm soát giao dịch, xử lý lỗi, xử lý bản ghi Thậm chí một vài thao tác đơn giản khác, chẳng hạn tạo một index hoặc thực hiện một thao tác có điều kiện, là sự mở rộng của ngôn ngữ SQL Transact-SQL không phải là một sản phẩm độc lập Nó không thể sử dụng để viết ứng dụng một cách trực tiếp Thay vào đó, Transact-SQL là thành phần chính có các chức năng lập trình bên trong các CSDL quan
hệ cung cấp bởi SQL Server 2000
Transact-SQL cho phép bạn khai báo và sử dụng các biến và hằng cục bộ bên trong một đối tượng Transact-SQL Những biến và hằng này phải là một kiểu dữ liệu mà CSDL có thể hiểu được, như VARCHAR hoặc INT Các kiểu dữ liệu với mục đích đặc biệt tồn tại bên trong Transact-SQL để phục vụ chức năng đặc biệt Ví dụ, kiểu dữ liệu IDENTITY được sử dụng để lưu bộ đếm số tăng tự động cho một trường trong một bảng nhất định
4.2.3 SQL Query Analyzer
Chú ý: Các CSDL hệ thống không nên thay đổi, việc thay đổi chúng có thể làm máy chủ
ngừng hoạt động
Trang 6SQL Server 2000 cung cấp hai công cụ để làm việc là:
Enterprise Manager
Query Analyzer
Enterprise Manager đã được xem xét trong phần trước Query Analyzer là một giao diện đồ họa cho phép người phát triển hoặc người quản trị có thể thực hiện một cách dễ dàng các tác vụ hàng ngày như truy vấn các bảng, thao tác với dữ liệu trong các bảng
SQL Server Query Analyzer có thể được gọi bằng cách chọn biểu tượng ‘Query Analyzer’ trong nhóm chương trình Microsoft SQL Server Cửa sổ của SQL Query Analyzer được hiển thị như hình 4.2
Hình 4.2: Query Analyzer 4.2.4 Sử dụng trợ giúp trực tuyến
SQL Server 2000 có cách thức cung cấp phần trợ giúp mới Books Online là tiện ích trợ giúp trực
tuyến của SQL Server 2000, hướng dẫn theo các chủ đề từ việc cài đặt SQL Server 2000 đến việc tạo và quản trị các cơ sở dữ liệu, cách sử dụng Enterprise Manager và Query Analyzer
Books Online cung cấp trợ giúp theo 3 dạng khác nhau Trang Content, và Index giúp ta có thể
tìm kiếm ngay mục chúng ta cần Cuối cùng là trang Search.
Cửa sổ Books Online của SQL Server được hiển thị như trong hình 4.3.
Trang 7Hình 4.3: Các sách trực tuyến 4.3 Quản trị CSDL trong SQL Server 2000
Bây giờ chúng ta đã được giới thiệu sơ lược về SQL Server 2000, các công cụ mà nó cung cấp, và T-SQL, chúng ta sẽ làm việc thực sự với SQL Server 2000 để tạo và quản lý các CSDL
4.3.1
Các tệp CSDL và Log
Không giống với Access, SQL Server 2000 ánh xạ một CSDL thành một tập các tệp của hệ điều hành Dữ liệu và phần log không bao giờ được ghi trong cùng một tệp
Các CSLD SQL Server 2000 có ba loại tệp sau:
Các tệp dữ liệu sơ cấp
Các tệp dữ liệu thứ cấp
Các tệp Log
Tệp dữ liệu sơ cấp (Primary data file) là điểm bắt đầu của CSDL và chỉ đến các tệp khác trong
CSDL Mỗi CSDL có một tệp dữ liệu sơ cấp
Các tệp dữ liệu thứ cấp (Secondary data files) bao gồm tất cả các tệp dữ liệu Một vài CSDL
có thể không có bất kỳ tệp dữ liệu thứ cấp nào, một vài CSDL khác lại có nhiều tệp dữ liệu thứ cấp
Trang 8Các tệp Log: chứa thông tin ghi lại các thay đổi trên CSDL để khôi phục CSDL Mỗi CSDL phải
có ít nhất một tệp log, và cũng có thể nhiều hơn
4.3.2
Tạo và xoá các CSDL người dùng
Như chúng ta đã biết, các CSDL hệ thống không nên bị thay đổi, vì nếu bị thay đổi chúng có thể làm cho máy chủ không hoạt động được nữa Các CSDL có thể được tạo và xoá bằng cách sử
dụng Enterprise Manager hoặc các câu lênh T-SQL Chúng ta sẽ lần lượt tìm hiểu cả hai cách
này
Tạo và xoá các CSDL bằng Enterprise Manager
Để tạo một CSDL bằng Enterprise Manager, chúng ta mở Enterprise Manager và chọn
Databases Một danh sách các CSDL đã tạo trong SQL Server group sẽ được hiện ra.
Chúng ta chọn menu Action trên thanh menu và chọn New Database từ menu sổ xuống.
Cửa sổ các thuộc tính của CSDL được hiển thị như trong hình 4.4
Hình 4.4: Các thuộc tính của CSDL
Chúng ta đặt tên cho CSDL là Flights
Sau đó CSDL Flights được hiển thị trong cửa sổ của Enterprise Manager như hình 4.5.
Trang 9Hình 4.5: Tạo CSDL ngưòi dùng bằng Enterprise Manager
Chúng ta cũng có thể tạo một CSDL sử dụng Wizard trong SQL Server bằng cách chọn Wizards
từ menu Tools
Hình 4.6: Using Wizards
Trang 10Hình 4.7: Sử dụng Create Database Wizards để tạo lập CSDL
Thực hiện theo các bước trong Wizard, chúng ta có thể tạo được CSDL
Hình 4.8: Sử dụng Create Database Wizards để tạo lập CSDL
Xóa CSDL trong SQL Server 2000 khá dễ dàng Bạn lựa chọn CSDL cần xóa, sau đó từ menu
Action chọn mục Delete giống như hình 4.9 Sau khi người dùng đồng ý sẽ xóa CSDL, SQL Server 2000 sẽ gỡ bỏ CSDL đó
Trang 11Hình 4.9: Xoá CSDL
Bên cạnh việc tạo và xóa CSDL dùng Enterprise Manager, bạn cũng có thể dùng các câu lệnh Transact-SQL để tạo và xóa CSDL.
Câu lệnh T-SQL để tạo một CSDL là:
CREATE DATABASE
Câu lệnh trên tạo một CSDL mới, và tạo ra các file dùng để lưu CSDL, hoặc cho phép gắn một CSDL đã tồn tại trước đó vào CSDL mới Một trong những tham số quan trọng cần phải chỉ ra trong câu lệnh trên là tên của CSDL mới Tên của CSDL không được trùng với tên các CSDL khác trên server và tuân theo các qui tắc về đặt tên
Hình 4.10: Sử dụng Transact-SQL để tạo lập CSDL
Chúng ta cũng có thể sử dụng T-SQL để gỡ bỏ CSDL khi không cần đến
Câu lệnh DROP DATABASE dùng để gỡ bỏ một hoặc nhiều CSDL từ SQL Server 2000.