SQL Server thuộc họ các sản phẩm và công nghệ mà kho dữ liệu phù hợp với các yêu cầu môi trường xử lý giao dịch trực tuyến (Online Transaction Processing OLTP) và xử lý phân tích trực tuyến (Online Analytical Processing OLAP). SQL Server là HQTCSDL quan hệ với các tính năng sau: Quản lý kho dữ liệu cho các giao dịch (Transactions) và phân tích (Analysis). Khả năng lưu trữ dữ liệu với các kiểu dữ liệu có miền giá trị rộng, bao gồm text, numeric, Extensible Markup Language (XML) và các đối tượng lớn… Đáp ứng các yêu cầu từ các ứng dụng Client. Sử dụng TSQL và XML để gởi các yêu cầu giữa ứng dụng client và Server. HQTCSDL SQL Server đáng tin cậy đối với: Duy trì các mối quan hệ giữa các đối tượng dữ liệu trong một CSDL. Bảo đảm rằng dữ liệu được lưu trữ đúng đắn, các quy tắc định nghĩa các quan hệ giữa các đối tượng dữ liệu là không bị vi phạm. Khôi phục tất cả dữ liệu khi hệ thống bị lỗi.
Trang 12.3 Sao chép cơ sở dữ liệu
2.4 Gán và tách cơ sở dữ liệu
2.5 Nhập và xuất cơ sở dữ liệu
2.6 Kiểu dữ liệu và cách khai báo
2.7 Bảng
2.8 View
Trang 22.1 Giới thiệu CSDL trong SQL
Server SQL Server thuộc họ các sản phẩm và công nghệ mà kho dữ liệu phù hợp với
các yêu cầu môi trường xử lý giao dịch
trực tuyến (Online Transaction
Processing - OLTP) và xử lý phân tích
trực tuyến (Online Analytical Processing
- OLAP) SQL Server là HQTCSDL quan hệ với các tính năng sau:
•Quản lý kho dữ liệu cho các giao dịch
(Transactions) và phân tích (Analysis).
•Khả năng lưu trữ dữ liệu với các kiểu dữ
liệu có miền giá trị rộng, bao gồm text,
numeric, Extensible Markup Language (XML)
và các đối tượng lớn…
Trang 32.1 Giới thiệu CSDL trong SQL
Server
•Đáp ứng các yêu cầu từ các ứng dụng
Client.
•Sử dụng T-SQL và XML để gởi các yêu cầu
giữa ứng dụng client và Server.
•HQTCSDL SQL Server đáng tin cậy đối với:
•Duy trì các mối quan hệ giữa các đối tượng
dữ liệu trong một CSDL.
•Bảo đảm rằng dữ liệu được lưu trữ đúng
đắn, các quy tắc định nghĩa các quan hệ giữa
các đối tượng dữ liệu là không bị vi phạm.
•Khôi phục tất cả dữ liệu khi hệ thống bị lỗi.
Trang 42.1.1 Các cơ sở dữ liệu xử lý giao dịch trực tuyến (Online transaction
processing – OLTP)
•Các table quan hệ tổ chức dữ liệu
trong một cơ sở dữ liệu OLTP để giảm thiểu thông tin dư thừa và tăng tốc độ cập nhật
•SQL Server cho phép số lượng lớn
người dùng thực thi các giao dịch và
sự thay đổi đồng thời dữ liệu theo
thời gian thực trong các cơ sở dữ liệu
OLTP
Trang 52.1.2 Các cơ sở dữ liệu xử lý phân tích trực tuyến (online analytical
processing - OLAP)
Công nghệ OLAP được sử dụng để tổ
chức và tổng hợp số lượng dữ liệu lớn để
một người phân tích có thể đánh giá dữ
liệu một cách nhanh chóng và theo thời
gian thực.
Microsoft SQL Server Analysis Services
tổ chức dữ liệu này để hỗ trợ các giải
pháp đối với doanh nghiệp lớn, xuất phát
từ các báo cáo công ty và sự phân tích để
mô hình hóa dữ liệu và hỗ trợ quyết định.
Trang 62.1.3 Cân nhắc khi hoạch định cơ
sở dữ liệu
•Mục tiêu của kho dữ liệu: Các
CSDL OLTP và OLAP có các mục tiêu
khác nhau và vì vậy các yêu cầu thiết
kế cũng sẽ khác nhau.
•Tần suất giao dịch: Một thiết kế
đạt hiệu suất cao liên quan đến một
mức độ thích hợp của sự chuẩn hóa,
các chỉ mục, và sự phân chia dữ liệu có thể đạt được một mức độ rất cao của
tần suất giao dịch.
Trang 72.1.3 Cân nhắc khi hoạch định cơ
sở dữ liệu
•Khả năng tăng trưởng về khía cạnh vật
lý của kho lưu trữ: Số lượng dữ liệu lớn đòi hỏi
phần cứng phù hợp đối với bộ nhớ, dung lượng
đĩa cứng, và khả năng của đơn vị xử lý trung tâm.
•File location: Nơi mà bạn đặt các tập tin có
thể có tác động ảnh hưởng về hiệu suất thực thi Nếu có thể, bạn nên sử dụng nhiều ổ đĩa, dàn trải các tập tin cơ sở dữ liệu của bạn trên nhiều hơn một đĩa Điều này cho phép SQL Server nhận
được sự thuận lợi của việc có nhiều kết nối và
nhiều đầu đọc đĩa cho việc đọc và ghi dữ liệu
hiệu quả.
Trang 82.1.4 Cấu trúc cơ sở dữ liệu
SQL Server quản lý trực tiếp các CSDL Mỗi CSDL SQL Server sẽ quản lý các cấu trúc vật lý của nó Việc quản trị cơ sở dữ liệu có một số
đặc điểm sau:
•Để Client khai thác CSDL trước hết phải
thực hiện kết nối đến Server quản trị CSDL đó.
•Chỉ thực hiện khai thác với các CSDL có tên trong danh sách các CSDL mà Server quản lý.
•Không có các phương thức mở CSDL trực
tiếp từ tập tin như Access.
•Khi đã kết nối đến Server, Client chỉ thực hiện được quyền khai thác theo quy định đã
định sẵn trong CSDL (phân quyền trong CSDL).
Trang 92.1.4 Cấu trúc cơ sở dữ liệu
•Cơ sở dữ liệu trong SQL Server lưu trữ theo 2 phần: phần dữ liệu (gồm
một tập tin bắt buộc *.mdf và các tập tin phụ *.ndf) và phần nhật ký (*.ldf)
Trang 102.1.5 Sơ đồ quản trị cơ sở dữ liệu
•Cơ sở dữ liệu trong SQL Server
chia thành 2 loại: Cơ sở dữ liệu hệ
thống (do SQL Server sinh ra khi cài
đặt) và cở sở dữ liệu người dùng (do
người dùng tạo ta)
Trang 112.1.5 Sơ đồ quản trị cơ sở dữ liệu
•Master: Ghi lại tất cả thông tin
hệ thống của SQL Server như: tài
khoản đăng nhập, các cài đặt cấu
hình hệ thống.
•Tempdb: Cơ sơ dữ liệu này là tài nguyên dùng chung cho tất cả các người dùng truy cập đến một thể
hiện của SQL Server Nó lưu giữ các tất cả các bảng và thủ tục nội tại
tạm thời.
Trang 122.1.5 Sơ đồ quản trị cơ sở dữ liệu
•Model: Được sử dụng như một
mẫu cho tất cả các CSDL được tạo ra trong một thể hiện của SQL Server
•Msdb: được sử dụng bởi SQL
Server, Management Studio và SQL
Server Agent để lưu trữ dữ liệu, bao
gồm các thông tin lập lịch và thông
tin quá trình backup restore hệ thống
Trang 132.1.6 Cấu trúc vật lý của
CSDL
Như cấu trúc các CSDL hệ quản trị CSDL thông thường, SQL Server cũng quản lý tập tin dữ liệu của CSDL ở
dạng vật lý theo trang (page) và
phân đoạn (extent)
Trang 152.1.6 Cấu trúc vật lý của
CSDL
•Extent: là đơn vị dùng chứa các
Table và Index Mỗi extent có 8 page hay 64KB SQL Server có 2 kiểu
Trang 162.1.6 Cấu trúc vật lý của
CSDL
•Cấu trúc Extent như sau:
Trang 172.2 Tạo cơ sở dữ liệu
• Trong khung Object Explorer, kích nút phải chuột tại mục Databases, chọn New Database Cửa sổ New
Database xuất hiện như sau:
Trang 182.3 Sao chép cơ sở dữ liệu
Cách 1:
• Kích chuột phải vào CSDL muốn sao chép,
chọn Task/ Copy Database, chọn Next.
• Cửa sổ Select a Source Server xuất hiện,
- Chọn Server nguồn chứa database bạn
cần sao chép trong mục Source Server.
- Kích vào biểu tượng để lựa chọn
Server.
- Chọn phương pháp chứng thực quyền
truy cập Server là Use Windows
Authentication hay Use SQL Server
Authentication, kích chọn Next.
Trang 192.3 Sao chép cơ sở dữ liệu
Cách 1:
• Cửa sổ Select a Destination
Server tương tự như cửa sổ Select
a Source Server, chọn Server đích
chứa database bạn cần sao chép tới
trong mục Source Server Mặc
định là local (Server cục bộ), kích
chọn Next
Trang 202.3 Sao chép cơ sở dữ liệu
Cách 1:
• Cửa sổ Select the Trasfer Method yêu
cầu bạn chọn phương thức truyền.
- Use the detach and attach method:
Sử dụng phương thức truyền này nhanh hơn, nhưng yêu cầu CSDL ở chế độ
offline Phương thức này tốt nhất để
nâng cấp CSDL hay di chuyển CSDL rất lớn Yêu cầu khi sử dụng lựa chọn này thì không có user nào được phép kết nối đến CSDL nguồn.
- Use the SQL Managerment Object
method: Phương thức này chậm hơn
nhưng cho phép database nguồn có thể vẫn còn ở chế độ online Kích chọn
Next
Trang 212.3 Sao chép cơ sở dữ liệu
Cách 1:
• Trong cửa sổ Select Database, bạn
chọn CSDL cần sao chép, kích chọn
Next.
• Cửa sổ Configure Destination
Database xuất hiện yêu cầu bạn :
- Nhập tên Database mới vào mục
Destination Database
- Chọn thư mục chứa các tập tin
CSDL mới trong mục Destination
Folder
Trang 22(Integration Services package) với tên được
chỉ định trong mục Package name Chọn
Next để tiếp tục.
• Trong cửa sổ Schedule the Package, bạn chọn Run immediately nếu muốn thực hiện
sao chép database ngay Còn chọn mục
Schedule nếu muốn lập lịch trình để sao
chép database Chọn Next để tiếp tục.
• Trong cửa sổ Complete the Wizard, chọn
Finish
Trang 232.3 Sao chép cơ sở dữ liệu
• Bước 3: Khởi động lại các dịch vụ
được dừng ở bước 1.
Trang 242.4 Gán và tách cơ sở dữ liệu
2.4.1 Gán cơ sở dữ liệu
• Gán (Attach) cơ sở dữ liệu là kỹ thuật
ghép nối tập tin CSDL vào thể hiện,
Các bước thực hiện như sau:
• Trong khung Object Explorer của cửa
sổ SQL Server Management Studio,
Chọn Instance cần Attach CSDL kích
nút phải tại mục Databases, chọn
Attach, cửa sổ Attach Databases xuất hiện như sau:
Trang 252.4.1 Gán cơ sở dữ liệu
Kích vào nút Add, chọn đến thư mục
chứa tập tin có đuôi “mdf” của cơ sở dữ liệu cần Attach, Chọn Ok, Chọn tiếp OK
Trang 262.4.2 Tách cơ sở dữ liệu
•Tách (Detach) là bước thực hiện
loại bỏ CSDL ra khỏi thể hiện, thể hiện không quản lý CSDL nhưng khác với
xóa CSDL là các tập tin chứa CSDL vẫn còn
•Kích nút phải lên CSDL cần tách,
chọn Tasks/ Detach
•Trong cửa sổ Detach Database,
Nhấn Ok
Trang 272.5 Nhập và xuất dữ liệu
2.5.1 Nhập dữ liệu
Nhập (Import) dữ liệu từ ngoài vào CSDL SQL Server, dữ liệu có thể từ hệ quản trị CSDL khác hoặc CSDL khác của SQL
Server.
•Kích chuột phải lên Databases cần
Import dữ liệu, chọn Tasks/ Import Data
•Trong cửa sổ Welcome to SQL Server Import and Export Wizard, bạn chọn Next
Trang 282.5.1 Nhập dữ liệu
Cửa sổ Choose a Data Source
xuất hiện:
Trang 292.5.1 Nhập dữ liệu
•Chọn kiểu nguồn dữ liệu trong
mục Data Source (SQL Server,
Oracle, Access, )
•Chọn tập tin cơ sở dữ liệu trong
mục file name
•Chọn Next
Trang 312.5.1 Nhập dữ liệu
•Chọn tên Server trong mục
Server name
•Chọn tên CSDL trong mục
Database (có trước hoặc tạo tại thời
điểm này bằng cách chọn New)
•Chọn Next.
Trang 322.5.1 Nhập dữ liệu
Trong cửa sổ Specify Table Copy or Query: yều cầu bạn chọn cách chuyển
dữ liệu
•Copy data from one or more
tables or views: Sao chép dữ liệu từ
một hoặc nhiều bảng hay view
•Write a query to specify the
data to transfer: Viết một câu truy
vấn để chỉ định dữ liệu cần chuyển
Trang 332.5.1 Nhập dữ liệuTrong cửa sổ Select Source Tables and
Trang 342.5.2 Xuất dữ liệu
Dùng để xuất (export) dữ liệu từ
một CSDL của SQL Server ra một hệ quản trị CSDL khác hoặc một CSDL
khác của SQL Server
Các bước thực hiện Export dữ liệu tương tự như Import nhưng thực hiện Data Source là SQL Server, còn
Destination là hệ quản trị CSDL khác hoặc CSDL khác của SQL Server
Trang 352.6 Kiểu dữ liệu và cách khai
báo
•Một số kiểu dữ liệu mới được giới
thiệu trong phiên bản cơ sở dữ liệu SQL Server 2005 là xml, char(max) và
varchar(max).
•Việc chọn kiểu dữ liệu phải phù hợp
dữ liệu của thế giới thực, đồng thời nó
còn phụ thuộc vào các kiểu dữ liệu có
Trang 362.6 Kiểu dữ liệu và cách khai
báo
•Các kiểu dữ liệu trong SQL Server
2005 được phân thành 4 nhóm:
•System Data Types
•User-Defined Data Types
•User-Defined Types
•Xml Schema Collections
Trang 372.6 Kiểu dữ liệu và cách khai
Trang 382.6.1 Nhóm Exact Numberics
•BIT: kiểu số nguyên 1 byte để lưu trữ một trong hai giá trị 0 hay 1 Ví dụ: Cột thể hiện giới tính là Nam (1) hay
Nữ (0) được khai báo như sau:
•Gioitinh bit not null default 1
•TINYINT: kiểu số nguyên 1 byte để lưu trữ các giá trị nằm trong khoảng từ
0 đến 255
Trang 392.6.1 Nhóm Exact
Numberics
•SMALLINT: kiểu số nguyên 1 byte
để lưu trữ các giá trị nằm trong khoảng
Trang 402.6.1 Nhóm Exact Numberics
DECIMAL hoặc NUMERIC: kiểu dữ
liệu sử dụng 9 byte để lưu trữ số chấm
động trong khoảng -1038+1 đến 1038-1
•SMALLMONEY: dùng 4 byte để lưu
trữ số kiểu tiền tệ trong khoảng
-214.748,3648 đến -214.748,3647
•MONEY: dùng 8 byte để lưu trữ số
kiểu tiền tệ trong khoảng
-922.337.203.685.477,5808 đến
922.337.203.685.477,5807
Trang 422.6.3 Nhóm Date and Time
•DATETIME: dùng 8 byte để lưu giá
trị thời gian xảy ra trong khoảng từ
1/1/1753 đến 31/12/9999
•SMALLDATETIME: dùng 4 byte để
lưu giá trị thời gian xảy ra trong
khoảng từ 1/1/1900 đến 6/6/2079
Trang 432.6.4 Nhóm Character Strings
•CHAR: cho phép bạn lưu chuỗi có
chiều dài cố định tối đa là 8000 ký tự
không hỗ trợ Unicode.
Ví dụ: SOCMND char(9) not null
•VARCHAR: cho phép bạn lưu chuỗi có
chiều dài cố định tối đa là 8000 ký tự
không unicode, khi bạn sử dụng kiểu này thì đòi hỏi dữ liệu phải có chiều dài không thay đổi.
•TEXT: khai báo chuỗi có chiều dài thay
đổi, các ký tự không hỗ trợ Unicode và
chiều dài tối đa của chuỗi là 2^31-1 ký tự.
Trang 442.6.4 Nhóm Character Strings
•CHAR: cho phép bạn lưu chuỗi có
chiều dài cố định tối đa là 8000 ký tự
không unicode.
Ví dụ: SOCMND char(9) not null
•VARCHAR: cho phép bạn lưu chuỗi có
chiều dài cố định tối đa là 8000 ký tự
không unicode, khi bạn sử dụng kiểu này thì đòi hỏi dữ liệu phải có chiều dài không thay đổi.
•TEXT: khai báo chuỗi có chiều dài thay
đổi, các ký tự không hỗ trợ Unicode và
chiều dài tối đa của chuỗi là 2^31-1 ký tự.
Trang 452.6.5 Nhóm Character Strings
•NCHAR [ ( n ) ]: khai báo chuỗi ký tự có
chiều dài cố định, các ký tự hỗ trợ Unicode và có
độ dài là n byte N phải có giá trị từ 1 đến 4.000, nếu không có khai báo n thì mặc định n=1.
•NVARCHAR [ ( n | max ) ]: khai báo chuỗi
có chiều dài thay đổi, các ký tự hỗ trợ Unicode
và có độ dài tối đa là n byte N phải có giá trị từ
1 đến 4.000 Nếu khai báo max thì kích thước
lưu trữ tối đa là 2^31-1 byte.
•NTEXT: khai báo chuỗi có chiều dài thay đổi
hỗ trợ Unicode, chiều dài tối đa là 2^30-1 ký tự
Trang 462.6.6 Nhóm Binary Strings
•BINARY [ ( n ) ]: Kiểu dữ liệu nhị
phân có độ dài cố định là n byte N nhận giá trị từ 1 đến 8000
•VARBINARY [ ( n | max) ]: Kiểu dữ
liệu nhị phân có độ dài thay đổi N nhận giá trị từ 1 đến khai báo Max cho biết
kích thước tối đa là 2^31-1 bytes.
•IMAGE: Cho phép lưu dữ liệu kiểu
dữ liệu nhị phân thay đổi có chiều dài
tối đa là 2^31-1 bytes.
Trang 472.6.7 Nhóm Orther Data
Types
•SQL_VARIANT: Kiểu dữ liệu cho
phép lưu trữ các giá trị với nhiều kiểu
dữ liệu khác nhau ngoại trừ kiểu text,
ntext, image, timestamp và
sql_variant.
•TIMESTAMP: Kiểu dữ liệu nhị
phân tự động tạo ra duy nhất trong
CSDL Kiểu dữ liệu này có kích thước 8 byte
Trang 482.6.7 Nhóm Orther Data
Types
•UNIQUEIDENTIFIER: Kiểu dữ liệu
nhị phân tự động tạo ra duy nhất
trong CSDL Kiểu dữ liệu này có kích thước 16 byte
•XML: Kiểu dữ liệu dùng để lưu trữ
các tài liệu hay đoạn (fragment) XML, dung lượng tối đa của kiểu dữ liệu này
là 2 GB
Trang 502.7.1 Tạo bảng
•Column Name: Chứa tên cột của bảng
sẽ tạo.
•Data type: Chỉ ra kiểu dữ liệu cho cột.
•Allow Nulls: Nếu được chọn thì cột này chấp nhận giá trị null (rỗng).
•Nhập tên cột và kiểu dữ liệu của nó.
•Chọn các cột khóa chính (Primary key), kích chuột vào biểu tượng để thiết lập.
•Kích vào nút Save hoặc nhấn Ctrl + S để lưu.
Trang 512.7.2 Thiết lập quan hệ cho cơ sở dữ liệu
Quan hệ giúp tránh được nguy cơ dữ liệu không nhất quán Nếu bảng có
quan hệ với bảng khác, nó sẽ có một
cột là khóa chính trong một bảng
khác Cột đó gọi là khóa ngoại
(Foreign key).
Sau khi hoàn tất việc thiết kế các
bảng dữ liệu liên quan, bạn tiến hành tạo quan hệ giữa chúng với nhau bằng đối tượng Database Diagram
Trang 522.7.2 Thiết lập quan hệ cho cơ sở dữ liệu
Nếu trước đó bạn chưa tạo quan hệ cho CSDL, khi chọn vào ngăn
Database Diagram thì thông báo xuất hiện như sau:
Trang 532.7.2 Thiết lập quan hệ cho cơ sở dữ liệu
Kích nút phải chuột lên mục
Database Diagrams, chọn New
Database Diagram Cửa sổ Add
Table xuất hiện như sau:
Trang 542.7.2 Thiết lập quan hệ cho cơ sở dữ liệu
Chọn bảng cần tạo quan hệ rồi nhấn
nút Add, nhấn Close để đóng cửa sổ
này lại Cửa sổ Database Diagram
xuất hiện như sau:
Trang 552.7.2 Thiết lập quan hệ cho cơ sở dữ liệu
Thiết lập quan hệ giữa các bảng
bằng cách chọn cột dữ liệu là khóa
chính ở bảng thứ nhất rồi kéo thả vào cột dữ liệu ứng với khóa ngoại ở bảng thứ hai Cửa sổ Tables and Columns
xuất hiện như sau:
Trang 562.7.2 Thiết lập quan hệ cho cơ sở dữ liệu
•Chọn cột dữ liệu làm khóa chính và khóa ngoại, kích OK Cửa sổ Foreign
Key Relationship xuất hiện Bạn hiệu chỉnh một số thuộc tính cần thiết rồi
kích OK
•Lưu đối tượng Diagram
Trang 572.7.2 Thiết lập quan hệ cho cơ sở dữ liệu
Trang 582.7.3 Thêm ràng buộc cho bảng
SQL Server 2005 cho phép bạn ràng buộc giá trị trong một cột xác định để
dữ liệu không thích hợp sẽ không được thêm vào Kiểu dữ liệu của cột cũng
được phép ràng buộc giá trị trong cột, nhưng nó không được xem là ràng
buộc