Giáo trình modul Hệ quản trị cơ sở dữ liệu SQL Server

LỜI GIỚI THIỆU  
Vài nét về xuất xứ giáo trình:  
Giáo trình này được viết theo căn cứ Thông tư số 03/2017/TT-BLĐTBXH ngày  
01 tháng 03 năm 2017 của Bộ Lao động – Thương binh và Xã hội về việc Quy định về  
quy trình xây dựng, thẩm định và ban hành chương trình; tổ chức biên soạn, lựa chọn,  
thẩm định giáo trình đào tạo trình độ trung cấp, trình độ cao đẳng.  
Quá trình biên soạn:  
Giáo trình này được biên soạn có sự tham gia tích cực của các giáo viên có kinh  
nghiệm, cùng với những ý kiến đóng góp quý báu của các chuyên gia về lĩnh vực công  
nghệ thông tin.  
Mối quan hệ của tài liệu với chương trình, mô đun/môn học:  
Căn cứ vào chương trình đào tạo nghề Thiết kế trang web, giáo trình giúp cung  
cấp cho người học những kiến thức cơ bản về ngôn ngữ truy vấn SQL Server cũng như  
kỹ năng sử dụng phần mềm SQL Server để thiết kế cơ sở dữ liệu quan hệ.  
Để học được mô đun này người học cần có kiến thức cơ bản về cơ sở dữ liệu.  
Cấu trúc chung của giáo trình này bao gồm 6 bài:  
Lời cảm ơn  
Giáo trình được biên soạn trên cơ sở các văn bản quy định của Nhà nước và tham  
khảo nhiều tài liệu liên quan có giá trị. Song chắc hẳn quá trình biên soạn không tránh  
khỏi những thiếu sót nhất định. Ban biên soạn mong muốn và thực sự cảm ơn những ý  
kiến nhận xét, đánh giá của các chuyên gia, các thầy cô đóng góp cho việc chỉnh sửa  
để giáo trình ngày một hoàn thiện hơn.  
Lâm Đồng, ngày 10 tháng 12 năm 2019  
Tham gia biên soạn  
1. Phạm Đình Nam  
2. Ngô Thiên Hoàng  
3. Nguyễn Quỳnh Nguyên  
4. Phan Ngọc Bảo  
Trang 2  
MỤC LỤC  
Trang 3  
Trang 4  
Bài 1. Tổng quan về DBMS và SQL sever  
1.  
Tổng quan về DBMS và SQL Sever  
Chương này trình bày một cách nhìn khái quát về cơ sở dữ liệu (CSDL/DB), về  
hệ quản trị cơ sở dữ liệu (HQTCSDL/DBMS) và về hệ cơ sở dữ liệu (HCSDL/DBS).  
Các đòi hỏi khi xây dựng một HQTCSDL đó cũng chính là những chức năng mà một  
HCSDL cần phải có.  
Trong chương này chúng tôi cũng muốn giới thiệu tổng quan về ngôn ngữ hỏi có  
cấu trúc (SQL) và các hệ quản trị cơ sở dữ liệu quan hệ là một trong những nền tảng  
kỹ thuật quan trọng trong công nghiệp máy tính. Cho đến nay, có thể nói rằng SQL đã  
được xem là ngôn ngữ chuẩn trong cơ sở dữ liệu. Các hệ quản trị cơ sở dữ liệu quan hệ  
thương mại hiện có như Oracle, SQL Server, Informix, DB2,... đều chọn SQL làm  
ngôn ngữ cho sản phẩm của mình  
Vậy thực sự SQL là gì? Tại sao nó lại quan trọng trong các hệ quản trị cơ sở dữ  
liệu? SQL có thể làm được những gì và như thế nào? Nó được sử dụng ra sao trong  
các hệ quản trị cơ sở dữ liệu quan hệ? Chương này sẽ cung cấp cho chúng ta cái nhìn  
tổng quan về SQL và một số vấn đề liên quan.  
Ta tìm hiểu DBMS trên một HQCSDL cụ thể: SQL Server 2000. Do vậy chương  
này giới thiệu cài đặt SQL Server 2000 và các thành phần của nó, giúp chúng ta chủ  
động khai thác trong nắm bắt và tạo lập ứng dụng.  
1.1Tổng quan về DBMS  
MỘT SỐ KHÁI NIỆM  
Một cơsở dữ liệu - CSDL(DataBase): Là một kho dữ liệu được tổ chức theo  
một nguyên tắc nào đó. Đó là một tập hợp các tập tin có liên quan với nhau, được thiết  
kế nhằm làm giảm thiểu sự dư thừa dữ liệu, đảm bảo tính tin cậy khi truy xuất dữ liệu.  
Các tập tin này chứa các thông tin biểu diễn các đối tượng trong một ứng dụng thế giới  
thực.  
CSDL lưu giữ thông tin của một trường đại học như : khoa, giảng viên, sinh viên,  
khóa học,…  
Thông thường, một cơ sở dữ liệu sẽ bao trùm tất cả các thông tin của một ứng  
dụng, không nên đặt hai cơ sở dữ liệu vào một ứng dụng.  
Hệ quản trị cơ sở dữ liệu DBMS(DataBaseManagement System): là một hệ  
thống gồm một CSDL và các thao tác trên CSDL. Đó là hệ thống chương trình, công  
cụ cho phép quản lý và tương tác với CSDL. Trên đó người dùng có thể định nghĩa,  
thao tác, và xử lí dữ liệu trong một CSDL để xuất ra những thông tin có nghĩa.  
Ví dụ 1-5 : một DBMS có thể quản trị cơ sở dữ liệu của một trường đại học cũng  
như những cơ sở dữ liệu có ý nghĩa khác như : cơ sở dữ liệu phục vụ tổng thu nhập  
quốc gia,  
một cơ sở dữ liệu liên hợp quốc về dữ liệu địa lý thế giới,v..v…  
- Một hệ cơ sở dữ liệu (HCSDL/ DBS: DataBase System) là một phần mềm cho  
phép xây dựng một HQTCSDL.  
Các vấn đề cần xử lý của hệ cơ sở dữ liệu  
Trang 6  
     
Một số điểm bất lợi chính của việc lưu giữ thông tin có tổ chức trong hệ thống xử  
lý file thông thường mà hệ HCSDL cần lưu ý:  
• Dư thừa dữ liệu và tính không nhất quán (Data redundancy and  
inconsistency) : Do các file và các trình ứng dụng được tạo ra bởi các người lập trình  
khác nhau, nên các file có định dạng khác nhau, các chương trình được viết trong các  
ngôn ngữ lập trình khác nhau, cùng một thông tin có thể được lưu giữ trong các file  
khác nhau. Tính không thống nhất và dư thừa này sẽ làm tăng chi phí truy xuất và lưu  
trữ, hơn nũa, nó sẽ dẫn đến tính không nhất quán của dữ liệu: các bản sao của cùng  
một dữ liệu có thể không nhất quán .  
• Khó khăn trong việc truy xuất dữ liệu: Môi trường của hệ thống xử lý file  
thông thường không cung cấp các công cụ cho phép truy xuất thông tin một cách hiệu  
quả và thuận lợi.  
• Sự cô lập dữ liệu(Data isolation) : Các giá trị dữ liệu được lưu trữ trong cơ sở  
dữ liệu phải thoả mãn một số các ràng buộc về tính nhất quán của dữ liệu ( ràng buộc  
nhất quán  
/ consistency contraints ).  
Trong hệ thống xử lý file thông thường, rất khó khăn trong việc thay đổi các  
chương trình để thoả mãn các yêu cầu thay đổi ràng buộc. Vấn đề trở nên khó khăn  
hơn khi các ràng buộc liên quan đến các hạng mục dữ liệu nằm trong các file khác  
nhau.  
• Các vấn đề về tính nguyên tử (Atomicity problems):  
Tính nguyên tử của một hoạt động (giao dịch) là: hoặc nó được hoàn tất trọn vẹn  
hoặc không có gì cả . Điều này có nghĩa là một hoạt động (giao dịch) chỉ làm thay đổi  
các dữ liệu bền vững khi nó đã hoàn tất (kết thúc thành công) nếu không, giao dịch  
không để lại một dấu vết nào trên CSDL. Trong hệ thống xử lý file thông thường khó  
đảm bảo được tính chất này.  
• Tính bất thường trong truy xuất cạnh tranh : Một hệ thống cho phép nhiều  
người sử dụng cập nhật dữ liệu đồng thời, có thể dẫn đến kết quả là dữ liệu không nhất  
quán. Điều này đòi hỏi một sự giám sát. Hệ thống xử lý file thông thường không cung  
cấp chức năng này.  
• Vấn đề an toàn (Security problems): một người sử dụng hệ cơ sở dữ liệu  
không cần thiết và cũng không có quyền truy xuất tất cả các dữ liệu. Vấn đề này đòi  
hỏi hệ thống phải đảm bảo được tính phân quyền, chống truy xuất trái phép ... Các bất  
lợi nêu trên đã gợi mở sự phát triển các DBMS. Phần sau của giáo trình sẽ đề cập đến  
các quan niệm và các thuật toán được sử dụng để phát triển một hệ cơ sở dữ liệu nhằm  
giải quyết các vấn đề nêu trên .  
Hầu hết các hệ quản trị CSDL đều thực hiện các chức năng sau :  
Lưu trữ dữ liệu  
Tạo ra và duy trìCSDL  
Cho phép nhiềungười dùngtruy xuất đồngthời  
Hỗ trợ tính bảo mật và riêng tư  
Cho phép xem và xử lý dữ liệu lưu trữ  
Trang 7  
Cho phép cập nhật và lưu trữ dữ liệu sau khi cập nhật  
Cung cấp một cơ chế chỉ mục (index) hiệu quả để truy cập nhanh các dữ liệu lựa  
chọn  
Cung cấp tính nhất quán giữa các bản ghi khác nhau  
Bảo vệ dữ liệu khỏi mất mát bằng các quá trình sao lưu (backup) và phục hồi  
(recovery).  
1.2 Tổng quan về cơ sở dữ liệu quan hệ  
Mô hình dữ liệu quan hệ  
Mô hình dữ liệu quan hệ được Codd đề xuất năm 1970 và đến nay trở thành mô  
hình được sử dụng phổ biến trong các hệ quản trị cơ sở dữ liệu thương mại. Nói một  
cách đơn giản, một cơ sở dữ liệu quan hệ là một cơ sở dữ liệu trong đó tất cả dữ liệu  
được tổ chức trong các bảng có mối quan hệ với nhau. Mỗi một bảng bao gồm các  
dòng và các cột: mỗi một dòng được gọi là một bản ghi (bộ) và mỗi một cột là một  
trường (thuộc  
tính). Hai hay nhiều bảng có thể có liên kết nếu chúng có một hay nhiều trường  
chung)  
Hình 1.1 minh hoạ cho ta thấy được 3 bảng trong một cơ sở dữ liệu  
Bảng (Table)  
Như đã nói ở trên, trong cơ sở dữ liệu quan hệ, bảng là đối tượng được sử dụng  
để tổ chức và lưu trữ dữ liệu. Một cơ sở dữ liệu bao gồm nhiều bảng và mỗi bảng được  
xác định duy nhất bởi tên bảng. Một bảng bao gồm một tập các dòng và các cột: mỗi  
một dòng trong bảng biểu diễn cho một thực thể (trong hình 1.1, mỗi một dòng trong  
Trang 8  
 
bảng SINHVIEN tương ứng với một sinh viên), và mỗi một cột biểu diễn cho một tính  
chất của thực thể (chẳng hạn cột NGAYSINH trong bảng SINHVIEN biểu diễn cho  
ngày sinh của các sinh viên được lưu trữ trong bảng).  
Như vậy, liên quan đến mỗi một bảng bao gồm các yếu tố sau:  
• Tên của bảng: được sử dụng để xác định duy nhất mỗi bảngn trong cơ sở dữ  
liệu.  
• Cấu trúc của bảng: Tập các cột trong bảng. Mỗi mộtcột trong bảng được xác  
định bởi một tên cột và phải có một kiểu dữ liệu nào đó (chẳng hạn cột NGAYSINH  
trong bảng SINHVIEN ở hình 1.1 có kiểu là DATETIME). Kiểu dữ liệu của mỗi cột  
qui định giá trị dữ liệu có thể được chấp nhận trên cột đó.  
• Dữ liệu của bảng: Tập các dòng (bản ghi) hiện có trong bảng.  
Khoá của bảng  
Trong một cơ sởdữ liệu được thiết kế tốt, mỗi một bảng phải có một hoặc một tập  
các cột mà giá trị dữ liệu của nó xác định duy nhất một dòng trong một tập các dòng  
của bảng.  
Tập một hoặc nhiều cột có tính chất này được gọi là khoá của bảng.  
Việc chọn khoá của bảng có vai trò quan trọng trong việc thiết kế và cài đặt các  
cơ sở dữ liệu quan hệ. Các dòng dữ liệu trong một bảng phải có giá trị khác nhau trên  
khoá.  
Bảng MONHOC trong hình dưới đây có khoá là cột MAMONHOC  
Bảng MONHOC với khoá chính là MAMONHOC  
Một bảng có thể có nhiều tập các cột khác nhau có tính chất của khoá (tức là giá  
trị của nó xác định duy nhất một dòng dữ liệu trong bảng). Trong trường hợp này,  
khoá được chọn cho bảng được gọi là khoá chính (primary key) và những khoá còn lại  
được gọi là khoá phụ hay là khoá dự tuyển (candidate key/unique key).  
Mối quan hệ và khoá ngoài  
Các bảng trong một cơ sở dữ liệu không tồn tại độc lập mà có mối quan hệ mật  
thiết với nhau về mặt dữ liệu. Mối quan hệ này được thể hiện thông qua ràng buộc giá  
trị dữ liệu xuất hiện ở bảng này phải có xuất hiện trước trong một bảng khác. Mối quan  
Trang 9  
hệ giữa các bảng trong cơ sở dữ liệu nhằm đàm bảo được tính đúng đắn và hợp lệ của  
dữ liệu trong cơ sở dữ liệu.  
Trong hình 1.3, hai bảng LOP và KHOA có mối quan hệ với nhau. Mối quan hệ  
này đòi hỏi giá trị cộtMAKHOA của một dòng (tức là một lớp)trong bảng LOP phải  
được xác định từ cột MAKHOA của bảng KHOA.  
Mối quan hệ giữa hai bảng LOP và KHOA trong cơ sở dữ liệu  
Mối quan hệ giữa các bảng trong một cơ sở dữ liệu thể hiện đúng mối quan hệ  
giữa các thực thể trong thế giới thực. Trong hình 1.3, mối quan hệ giữa hai bảng LOP  
và KHOA không cho phép một lớp nào đó tồn tại mà lại thuộc vào một khoa không có  
thật.  
Khái niệm khoá ngoài (Foreign Key) trong cơ sở dữ liệu quan hệ được sử dụng  
để biểu diễn mối quan hệ giữa các bảng dữ liệu. Một hay một tập các cột trong một  
bảng mà giá trị của nó được xác định từ khóa chính của một bảng khác được gọi là  
khoá ngoài.  
Trong hình 1.3, cột MAKHOA của bảng LOP được gọi là khoá ngoài của bảng  
này, khoá ngoài này tham chiếu đến khoá chính của bảng KHOA là cột MAKHOA.  
1.3 Giới Thiệu SQL Server 2000  
SQL Server 2000 là một hệ thống quản trị cơ sở dữ liệu quan hệ (Relational  
Database Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu  
giữa Client computer và SQL Server computer. Một RDBMS bao gồm databases,  
database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau  
trong RDBMS.  
SQL Server 2000 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn  
(Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho  
hàng ngàn user. SQL Server 2000 có thể kết hợp "ăn ý" với các server khác như  
Microsoft  
InternetInformation Server (IIS), E-Commerce Server, Proxy Server....  
Trang 10  
 
SQL Server có 7 editions  
- Enterprise : Chứa đầy đủ các đặc trưng của SQL Server và có thể chạy tốt trên  
hệ thống lên đến 32 CPUs và 64 GB RAM. Thêm vào đó nó có các dịch vụ giúp cho  
việc phân tích dữ liệu rất hiệu quả (Analysis Services)  
- Standard : Rất thích hợp cho các công ty vừa và nhỏ vì giá thành rẻ hơn nhiều  
so với Enterprise Edition, nhưng lại bị giới hạn một số chức năng cao cấp (advanced  
features) khác, edition này có thể chạy tốt trên hệ thống lên đến 4 CPU và 2 GB RAM.  
- Personal: được tối ưu hóa để chạy trên PC nên có thể cài đặt trên hầu hết các  
phiên bản windows kể cả Windows 98.  
- Developer : Có đầy đủ các tính năng của Enterprise Edition nhưng được chế tạo  
đặc biệt như giới hạn số lượng người kết nối vào Server cùng một lúc.... Ðây là edition  
mà các bạn muốn học SQL Server cần có. Chúng ta sẽ dùng edition này trong suốt  
khóa học. Edition này có thể cài trên Windows 2000 Professional hay Win NT  
Workstation.  
- Desktop Engine (MSDE): Ðây chỉ là một engine chạy trên desktop và không có  
user interface (giao diện). Thích hợp cho việc triển khai ứng dụng ở máy client. Kích  
thước database bị giới hạn khoảng 2 GB.  
- Win CE : Dùng cho các ứng dụng chạy trên Windows CE  
- Trial: Có các tính năng của Enterprise Edition, download free, nhưng giới hạn  
thời gian sử dụng.  
1.4 Cài Ðặt SQL Server 2000 (Installation)  
Ta cần có Developer Edition và ít nhất là 64 MB RAM, 500 MB hard disk để có  
thể install SQL Server. Có thể install trên Windows Server hay Windows XP  
Professional, Windows 2000 Professional hay NT Workstation nhưng không thể  
install trên Win 98 family.  
Khi install cần lưu ý các điểm sau:  
Ở màn hình thứ hai bạn chọn Install Database Server. Sau khi install xong SQL  
Server bạn có thể install thêm Analysis Service nếu thích.  
Ở màn hình Installation Definition chọn Server and Client Tools.  
Sau đó nên chọn kiểu Customvà chọn tất cảcác bộ phận của SQL Server. Ngoài  
ra nên  
chọn các giá trị mặc định (default)  
Ở màn hình Authentication Mode nhớ chọn Mixed Mode. Lưu ý vì SQL Server  
có thể dùng chung chế độ bảo mật (security) với Win NT và cũng có thể dùng chế độ  
bảo mật riêng của nó. Trong Production Server người ta thường dùng Windows  
Authetication vì độ an toàn cao hơn và dễ dàng cho người quản lý mạng và cả cho  
người sử dụng. Nghĩa là một khi bạn được chấp nhận (authenticated) kết nối vào  
domain thì bạn có quyền truy cập dữ liệu (access data) trong SQL Server. Tuy nhiên ta  
nên chọn Mixed Mode để dễ dàng cho việc học tập.  
Sau khi install bạn sẽ thấy một icon nằm ở góc phải bên dưới màn hình, đây  
chính là Service Manager. Có thể Start, Stop các SQL Server services dễ dàng bằng  
cách doubleclick vào icon này.  
Trang 11  
   
Một chút kiến thức về các Version của SQL Server  
SQL Server của Microsoft được thị trường chấp nhận rộng rãi kể từ version 6.5.  
Sau đó Microsoft đã cải tiến và hầu như viết lại một engine mới cho SQL Server 7.0.  
Cho nên có thể nói từ version 6.5 lên version 7.0 là một bước nhảy vọt. Có một số đặc  
tính của SQL Server 7.0 không tương thích với version 6.5. Trong khi đó từ Version  
7.0 lên version 8.0 (SQL Server 2000) thì những cải tiến chủ yếu là mở rộng các tính  
năng về web và làm cho SQL Server 2000 đáng tin cậy hơn.  
Một điểm đặc biệt đáng lưu ý ở version 2000 là Multiple-Instance. Nói cho dễ  
hiểu là bạn có thể install version 2000 chung với các version trước mà không cần phải  
uninstall chúng. Nghĩa là bạn có thể chạy song song version 6.5 hoặc 7.0 với version  
2000 trên cùng một máy (điều này không thể xảy ra với các version trước đây). Khi đó  
version cũ trên máy bạn là Default Instance còn version 2000 mới vừa install sẽ là  
Named  
Instance.  
Các thành phần quan trọng trong SQL Server 2000  
SQL Server 2000 được cấu tạo bởi nhiều thành phần như Relational Database  
Engine, Analysis Service và English Query.... Các thành phần này khi phối hợp với  
nhau tạo thành một giải pháp hoàn chỉnh giúp cho việc lưu trữ và phân tích dữ liệu  
một cách dễ dàng  
Relational Database Engine - Cái lõi của SQL Server:  
Ðây là một engine có khả năng chứa data ở các quy mô khác nhau dưới dạng  
table và support tất cả các kiểu kết nối (data connection) thông dụng của Microsoft  
như ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity  
(ODBC). Ngoài ra nó còn có khả năng tự điều chỉnh (tune up) ví dụ như sử dụng thêm  
các tài nguyên  
(resource) của máy khi cần và trả lại tài nguyên cho hệ điều hành khi một user  
log off.  
Replication - Cơ chế tạo bản sao (Replica):  
Giả sử bạn có một database dùng để chứa dữ liệu được các ứng dụng thường  
xuyên cập nhật. Khi bạn muốn có một database giống hệt như thế trên một server khác  
để chạy báo cáo (report database) (cách làm này thường dùng để tránh ảnh hưởng đến  
performance của server chính). Vấn đề là report server của bạn cũng cần phải được cập  
nhật thường xuyên để đảm bảo tính chính xác của các báo cáo. Ta không thể dùng cơ  
chế back up and restore trong trường hợp này. Vậy cần xử lý thế nào? Lúc đó cơ chế  
replication của SQL Server sẽ được sử dụng để bảo đảm cho dữ liệu ở 2 database được  
đồng bộ  
(synchronized)  
Data Transformation Service ( DTS ) - Một dịch vụ chuyển dịch data hiệu quả  
.
Nếu bạn làm việc trong một công ty lớn trong đó data được chứa trong nhiều nơi  
khác nhau và ở các dạng khác nhau cụ thể như chứa trong Oracle, DB2 (của IBM),  
SQL Server, Microsoft Access....Bạn chắc chắn sẽ có nhu cầu di chuyển data giữa các  
server này (migrate hay transfer) và không chỉ di chuyển bạn còn muốn định dạng  
Trang 12  
(format) nó trước khi lưu vào database khác, khi đó bạn sẽ thấy DTS giúp bạn giải  
quyết công việc trên dễ dàng như thế nào.  
Analysis Service- Một dịch vụ phân tích dữ liệu rất hay của Microsoft  
Dữ liệu (Data) chứa trong database sẽ chẳng có ý nghĩa gì nhiều nếu như bạn  
không thể lấy được những thông tin (Information) bổ ích từ đó. Do đó Microsoft cung  
cấp cho bạn một công cụ rất mạnh giúp cho việc phân tích dữ liệu trở nên dễ dàng và  
hiệu quả bằng cách dùng khái niệm hình khối nhiều chiều (multi-dimension cubes) và  
kỹ thuật khai phá dữ liệu (data mining).  
English Query - Ðây là một dịch vụ giúp cho việc query data bằng tiếng Anh  
"trơn"  
(plain English).  
MetaData Service : Dịch vụ này giúp cho việc chứa đựng và "xào nấu" Meta  
data dễ dàng hơn. Thế thì Meta Data là cái gì vậy? Meta data là những thông tin mô tả  
về cấu trúc của data trong database như data thuộc loại nào String hay Integer..., một  
cột nào đó có phải là Primary key hay không....Bởi vì những thông tin này cũng được  
chứa trong database nên cũng là một dạng data nhưng để phân biệt với data "chính  
thống" người ta gọi nó là Meta Data. Phần này phải xem thêm trong một thành phần  
khác của SQL Server là SQLServerBooks Online.  
SQL Server Books Online - Rất hữu dụng và không thể thiếu (được đính kèm  
theo  
SQL Server).  
SQL Server Tools - Ðây là một bộ đồ nghề của người quản trị cơ sở dữ liệu  
(DBA), gồm:  
Enterprise Manager - Ðây là một công cụ cho ta thấy toàn cảnh hệ thống cơ sở  
dữ liệu một cách rất trực quan. Nó rất hữu ích đặc biệt cho người mới học và không  
thông thạo lắm về SQL.  
Query Analyzer - Ðối với một DBA giỏi thì hầu như chỉ cần công cụ này là có  
thể quản lý cả một hệ thống database mà không cần đến những thứ khác. Ðây là một  
môi trường làm việc khá tốt vì ta có thể đánh bất kỳ câu lệnh SQL nào và chạy ngay  
lập tức đặc biệt là nó giúp cho ta debug stored procedure dễ dàng.  
SQL Profiler - Nó có khả năng "chụp" (capture) tất cả các sự kiện hay hoạt động  
diễn ra trên một SQL server và lưu lại dưới dạng text file rất hữu dụng trong việc kiểm  
soát hoạt động của SQL Server.  
Ngoài một số công cụ trực quan như trên chúng ta cũng thường hay dùng osql và  
bcp (bulk copy) trong command prompt.  
SQL là ngôn ngữ cơ sở dữ liệu quan hệ  
SQL , viết tắt của Structured Query Language (ngôn ngữ hỏi có cấu trúc), công  
cụ sử dụng để tổ chức, quản lý và truy xuất dữ liệu đuợc lưu trữ trong các cơ sở dữ  
liệu. SQL là một hệ thống ngôn ngữ bao gồm tập các câu lệnh sử dụng để tương tác  
với cơ sở dữ liệu quan hệ.  
Tên gọi ngôn ngữ hỏi có cấu trúc phần nào làm chúng ta liên tưởng đến một  
công cụ (ngôn ngữ) dùng để truy xuất dữ liệu trong các cơ sở dữ liệu. Thực sự mà nói,  
Trang 13  
khả năng của SQL vượt xa so với một công cụ truy xuất dữ liệu, mặc dù đây là mục  
đích ban đầu khi SQL được xây dựng nên và truy xuất dữ liệu vẫn còn là một trong  
những chức năng quan trọng của nó. SQL được sử dụng để điều khiển tất cả các chức  
năng mà một hệ quản trị cơ sở dữ liệu cung cấp cho người dùng bao gồm:  
• Định nghĩa dữ liệu : SQL cung cấp khả năng định nghĩa các cơ sở dữ liệu, các  
cấu trúc lưu trữ và tổ chức dữ liệu cũng như mối quan hệ giữa các thành phần dữ liệu.  
• Truy xuất và thao tác dữ liệu : Với SQL, người dùng có thể dễ dàng thực hiện  
các thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu trong các cơ sở dữ liệu.  
• Điều khiển truy cập - SQL có thể được sử dụng để cấp phát và kiểm soát các  
thao tác  
củangười sử dụng trên dữ liệu, đảm bảo sự an toàn cho cơ sở dữ  
• Đả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 tác cập  
nhật cũng như các lỗi của hệ thống.  
Như vậy, có thể nói rằng SQL là một ngôn ngữ hoàn thiện được sử dụng trong  
cáchệ thống cơ sở dữ liệu và là một thành phần không thể thiếu trong các hệ quản trị  
cơ sở dữ liệu. Mặc dù SQL không phải là một ngôn ngữ lập trình như C, C++, Java,...  
song các câu lệnh mà SQL cung cấp có thể được nhúng vào trong các ngôn ngữ lập  
trình nhằm xây dựng các ứng dụng tương tác với cơ sở dữ liệu.  
Khác với các ngôn ngữ lập trình quen thuộc như C, C++, Java,... SQL là ngôn  
ngữ có tính khai báo. Với SQL, người dùng chỉ cần mô tả các yêu cầu cần phải thực  
hiện trên cơ sở dữ liệu mà không cần phải chỉ ra cách thức thực hiện các yêu cầu như  
thế nào.  
Chính vì vậy, SQL là ngôn ngữ dễ tiếp cận và dễ sử dụng.  
Cài đặt SQL Server  
Cài Ðặt SQL Server 2000 (Installation)  
Ta cần có Developer Edition và ít nhất là 64 MB RAM, 500 MB hard disk để có  
thể install SQL Server. Bạn có thể install trên Windows Server hay Windows XP  
Professional, Windows 2000 Professional hay NT Workstation nhưng không thể  
install trên Win 98 family.  
Vì một trong những đặc điểm của các sản phẩm Microsoft là dễ install nên chúng  
tôi không trình bày chi tiết về cách install hay các bước install mà chỉ trình bày các  
điểm cần lưu ý khi install mà thôi. Khi install cần lưu ý các điểm sau:  
Ở màn hình thứ hai bạn chọn Install Database Server. Sau khi install xong SQL  
Server bạn có thể install thêm Analysis Service nếu bạn thích.  
Ở màn hình Installation Definition bạn chọn Serverand ClientTools.  
Sau đó bạn nên chọn kiểu Custom và chọn tất cả các bộ phận của SQL Server.  
Ngoài  
ra nên chọn các giá trị mặc định (default)  
Ở màn hình Authentication Mode nhớ chọn Mixed Mode. Lưu ý vì SQL Server  
có thể dùng chung chế độ bảo mật (security) với Win NT và cũng có thể dùng chế độ  
Trang 14  
 
bảo mật riêng của nó. Trong Production Server người ta thường dùng Windows  
Authetication vì độ an toàn cao hơn và dễ dàng cho người quản lý mạng và cả cho  
người sử dụng. Nghĩa là một khi bạn được chấp nhận (authenticated) kết nối vào  
domain thì bạn có quyền truy cập dữ liệu (access data) trong SQL Server. Tuy nhiên ta  
nên chọn Mixed Mode để dễ dàng cho việc học tập.  
Sau khi install bạn sẽ thấy một icon nằm ở góc phải bên dưới màn hình, đây  
chính là Service Manager. Bạn có thể Start, Stop các SQL Server services dễ dàng  
bằng cách double-click vào icon này.  
Một chút kiến thức về các Version của SQL Server  
SQL Server của Microsoft được thị trường chấp nhận rộng rãi kể từ version  
6.5. Sau đó Microsoft đã cải tiến và hầu như viết lại một engine mới cho SQL  
Server 7.0. Cho nên có thể nói từ version 6.5 lên version 7.0 là một bước nhảy vọt. Có  
một số đặc tính của SQL Server 7.0 không tương thích với version 6.5. Trong khi đó  
từ Version 7.0 lên version 8.0 (SQL Server 2000) thì những cải tiến chủ yếu là mở  
rộng các tính năng về web và làm cho SQL Server 2000 đáng tin cậy hơn.  
Một điểm đặc biệt đáng lưu ý ở version 2000 là Multiple-Instance. Nói cho dễ  
hiểu là bạn có thể install version 2000 chung với các version trước mà không cần phải  
uninstall chúng. Nghĩa là bạn có thể chạy song song version 6.5 hoặc 7.0 với version  
2000 trên cùng một máy (điều này không thể xảy ra với các version trước đây). Khi đó  
version cũ trên máy bạn là DefaultInstance còn version 2000 mới vừa install sẽ là  
NamedInstance.  
2. Sơ lược về SQL  
Tổng quan về T- SQL  
Bản thân SQL không phải là một hệ quản trị cơ sở dữ liệu, nó không thể tồn tại  
độc lập. SQL thực sự là một phần của hệ quản trị cơ sở dữ liệu, nó xuất hiện trong các  
hệ quản trị cơ sở dữ liệu với vai trò ngôn ngữ và là công cụ giao tiếp giữa người sử  
dụng và hệ quản trị cơ sở dữ liệu.  
Trong hầu hết các hệ quản trị cơ sở dữ liệu quan hệ, SQL có những vai trò như  
sau:  
• SQL là ngôn ngữ hỏi có tính tương tác: Người sử dụng có thể dễ dàng thông  
qua các trình tiện ích để gởi các yêu cầu dưới dạng các câu lệnh SQL đến cơ sở dữ liệu  
và nhận  
kết quả trả về từ cơ sở dữ liệu  
• SQL là ngôn ngữ lập trình cơ sở dữ liệu: Các lập trình viên có thể nhúng các  
câu lệnh SQL vào trong các ngôn ngữ lập trình để xây dựng nên các chương trình ứng  
dụng  
giao tiếp với cơ sở dữ liệu  
• SQL là ngôn ngữ quản trị cơ sở dữ liệu : Thông qua SQL, người quản trị cơ  
sở dữ liệu có thể quản lý được cơ sở dữ liệu, định nghĩa các cấu trúc lưu trữ dữ liệu,  
điều khiển truy cập cơ sở dữ liệu,...  
Trang 15  
 
• SQL là ngôn ngữ cho các hệ thống khách/chủ (client/server): Trong các hệ  
thống cơ sở dữ liệu khách/chủ, SQL được sử dụng như là công cụ để giao tiếp giữa các  
trình ứng dụng phía máy khách với máy chủ cơ sở dữ liệu.  
• SQL là ngôn ngữ truy cập dữ liệu trên Internet : Cho đến nay, hầu hết các  
máy chủ Web cũng như các máy chủ trên Internet sử dụng SQL với vai trò là ngôn  
ngữ để tương tác với dữ liệu trong các cơ sở dữ liệu.  
• SQL là ngôn ngữ cơ sở dữ liệu phân tán : Đối với các hệ quản trị cơ sở dữ  
liệu phân tán, mỗi một hệ thống sử dụng SQL để giao tiếp với các hệ thống khác trên  
mạng, gởi và nhận các yêu cầu truy xuất dữ liệu với nhau.  
• SQL là ngôn ngữ sử dụng cho các cổng giao tiếp cơ sở dữ liệu : Trong một  
hệ thống mạng máy tính với nhiều hệ quản trị cơ sở dữ liệu khác nhau, SQL thường  
được sử dụng như là một chuẩn ngôn ngữ để giao tiếp giữa các hệ quản trị cơ sở dữ  
liệu SQL chuẩn bao gồm lệnh thường được sử dụng nhấ t khoảng 40 câu lệnh.  
Các bảng phía dưới liệt kê danh sách các câu trong số các câu lệnh của SQL.  
Trong các hệ quản trịcơ sở dữ liệu khác nhau, mặc dù các câu lệnh đều có cùng dạng  
và cùng mục đích sử dụng song mỗi một hệ quản trị cơ sở dữ liệu có thể có một số  
thay đổi nào đó. Điều này đôi khi dẫn đến cú pháp chi tiết của các câu lệnh có thể sẽ  
khác nhau trong các hệ quản trị cơ cơ sở dữ liệu khác nhau.  
Câu l ệ nh t hao tác dữ li ệ u C h ứ c n ă n g  
SELECT  
Truy xuất dữ liệu  
Bổ sung dữ diệu  
INSERT  
UPDATE  
DELETE  
TRUNCATE  
Cập nhật dữ liệu  
Xoá dữ liệu  
Xoá toàn bộ dữ liệu trong bảng  
Câu l ệ nh định nghĩa dữ liệu C h ứ c n ă n g  
CREATE TABLE  
DROP TABLE  
ALTER TABLE  
CREATE VIEW  
ALTER VIEW  
Tạo bảng  
Xoá bảng  
Sửa đổi bảng  
Tạo khung nhìn  
Sửa đổi khung nhìn  
Xoá khung nhìn  
Tạo chỉ mục  
DROP VIEW  
CREATE INDEX  
DROP INDEX  
Xoá chỉ mục  
CREATE SCHEMA  
DROP SCHEMA  
Tạo lược đồ cơ sở dữ liệu  
Xoá lược đồ cơ sở dữ liệu  
Trang 16  
CREATE PROCEDURE  
ALTER PROCEDURE  
DROP PROCEDURE  
CREATE FUNCTION  
ALTER FUNCTION  
DROP FUNCTION  
CREATE TRIGGER  
ALTER TRIGGER  
Tạo thủ tục lưu trữ  
Sửa đổi thủ tục lưu trữ  
Xoá thủ tục lưu trữ  
Tạo hàm (do người sử dụng định nghĩa)  
Sửa đổi hàm  
Xoá hàm  
Tạo trigger  
Sửa đổi trigger  
DROP TRIGGER  
Xoá trigger  
Câu l ệ nh điều khiển truy cập C h ứ c n ă n g  
GRANT  
Cấp phát quyền cho người sử dụng  
Thu hồi quyền từ người sử dụng  
REVOKE  
Câu l ệ nh quản lý giao dịch C h ứ c n ă n g  
COMMIT  
Uỷ thác (kết thúc thành công) giao dịch  
ROLLBACK  
Quay lui giao dịch  
SAVE TRANSACTION  
Đánh dấu một điểm trong giao dịch  
Câu l ệ nh lập trình C h ứ c n ă n g  
DECLARE  
OPEN  
Khai báo biến hoặc định nghĩa con trỏ  
Mở một con trỏ để truy xuất kết quả truy vấn  
Đọc một dòng trong kết quả truy vấn (sử dụng con trỏ)  
Đóng một con trỏ  
FETCH  
CLOSE  
EXECUTE  
Thực thi một câu lệnh SQL  
Các câu lệnh của SQL đều được bắt đầu bởi các từ lệnh, là một từ khoá cho biết  
chức năng của câu lệnh (chẳng hạn SELECT, DELETE, COMMIT). Sau từ lệnh là các  
mệnh đề của câu lệnh. Mỗi một mệnh đề trong câu lệnh cũng được bắt đầu bởi một từ  
khoá (chẳng hạn FROM, WHERE,...).  
Câu lệnh:  
SELECT masv,hodem,ten FROM sinhvien WHERE  
malop=’C24102’  
Trang 17  
dùng để truy xuất dữ liệu trong bảng SINHVIEN được bắt đầu bởi từ lệnh  
SELECT, trong câu lệnh bao gồm hai mệnh đề: mệnh đề FROM chỉ định tên của bảng  
cần truy xuất dữ liệu và mệnh đề WHERE chỉ định điều kiện truy vấn dữ liệu.  
Qui tắc sử dụng tên trong SQL  
Các đối tượng trong cơ sở dữ liệu dựa trên SQL được xác định thông qua tên của  
đối tượng. Tên của các đối tượng là duy nhất trong mỗi cơ sở dữ liệu. Tên được sử  
dụng nhiều nhất trong các truy vấn SQL và được xem là nền tảng trong cơ sở dữ liệu  
quan hệ là tên bảng và tên cột.  
Trong các cơ sở dữ liệu lớn với nhiều người sử dụng, khi ta chỉ định tên của một  
bảng nào đó trong câu lệnh SQL, hệ quản trị cơ sở dữ liệu hiểu đó là tên của bảng do  
ta sở hữu (tức là bảng do ta tạo ra). Thông thường, trong các hệ quản trị cơ sở dữ liệu  
này cho phép những người dùng khác nhau tạo ra những bảng trùng tên với nhau mà  
không gây ra xung đột về tên. Nếu trong một câu lệnh SQL ta cần chỉ đến một bảng do  
một người dùng khác sở hữu (hiển nhiên là phải được phép) thì tên của bảng phải được  
viết sau tên của người sở hữu và phân cách với tên người sở hữu bởi dấu chấm:  
tên_người_sở_hữu.tên_bảng  
Một số đối tượng cơ sở dữ liệu khác (như khung nhìn, thủ tục, hàm), việc sử  
dụng tên cũng tương tự như đối với bảng.  
Ta có thể sử dụng tên cột một cách bình thường trong các câu lệnh SQL bằng  
cảch chỉ cần chỉ định tên của cột trong bảng. Tuy nhiên, nếu trong câu lệnh có liên  
quan đến hai cột trở lên có cùng tên trong các bảng khác nhau thì bắt buộc phải chỉ  
định thêm tên bảng trước tên cột; tên bảng và tên cột được phân cách nhau bởi dấu  
chấm.  
Ví dụ dưới đây minh hoạ cho ta thấy việc sử dụng tên bảng và tên cột trong câu  
lệnh SQL  
SELECT masv,hodem,ten,sinhvien.malop,tenlop FROM  
dbo.sinhvien,dbo.lop WHERE sinhvien.malop = lop.malop  
2.1 Kiểu dữ liệu  
Chuẩn ANSI/ISO SQL cung cấp các kiểu dữ liệu khác nhau để sử dụng trong các  
cơ sở dữ liệu dựa trên SQL và trong ngôn ngữ SQL. Dựa trên cơ sở các kiểu dữ liệu do  
chuẩn ANSI/ISO SQL cung cấp, các hệ quản trị cơ sở dữ liệu thương mại hiện nay có  
thể sử dụng các dạng dữ liệu khác nhau trong sản phẩm của mình. Bảng 1.2 dưới đây  
liệt kê một số kiểu dữ liệu thông dụng được sử dụng trong SQL.  
Trang 18  
 
Một số kiểu dữ liệu thông dụng trong SQL  
Mô tả  
Tên kiểu  
CHAR (n)  
Kiểu chuỗi với độ dài cố định  
NCHAR (n)  
VARCHAR (n)  
NVARCHAR (n)  
INTEGER  
INT  
Kiếu chuỗi với độ dài cố định hỗ trợ UNICODE  
Kiểu chuỗi với độ dài chính xác  
Kiểu chuỗi với độ dài chính xác hỗ trợ UNICODE  
Số nguyên có giá trị từ -231 đến 231 - 1  
Như kiểu Integer  
TINYTINT  
SMALLINT  
Số nguyên có giá trị từ 0 đến 255.  
Số nguyên có giá trị từ -215 đến 215 – 1  
BIGINT  
Số nguyên có giá trị từ -263 đến 263-1  
NUMERIC (p,s) Kiểu số với độ chính xác cố định.  
DECIMAL (p,s)  
FLOAT  
Tương tự kiểu Numeric  
Số thực có giá trị từ -1.79E+308 đến 1.79E+308  
Số thực có giá trị từ -3.40E + 38 đến 3.40E + 38  
Kiểu tiền tệ  
REAL  
MONEY  
BIT  
Kiểu bit (có giá trị 0 hoặc 1)  
DATETIME  
Kiểu ngày giờ (chính xác đến phần trăm của giây)  
SMALLDATETIME Kiểu ngày giờ (chính xác đến phút)  
TIMESTAMP  
BINARY  
Dữ liệu nhị phân với độ dài cố định (tối đa 8000 bytes)  
Dữ liệu nhị phân với độ dài chính xác (tối đa 8000 bytes)  
VARBINARY  
Dữ liệu nhị phân với độ dài chính xác (tối đa 2,147,483,647  
IMAGE  
TEXT  
bytes)  
Dữ liệu kiếu chuỗi với độ dài lớn (tối đa 2,147,483,647 ký tự)  
Dữ liệu kiếu chuỗi với độ dài lớn và hỗ trợ UNICODE (tối đa  
NTEXT 1,073,741,823 ký tự)  
Câu lệnh dưới đây định nghĩa bảng với kiểu dữ liệu được qui định cho các cột  
trong bảng  
CREATE TABLE NHANVIEN ( MANV NVARCHAR(10) NOT NULL,  
HOTEN  
Trang 19  
NVARCHAR(30) NOT NULL, GIOITINH BIT, NGAYSINH  
SMALLDATETIME, NOISINH NCHAR(50), HSLUONG  
DECIMAL(4,2),  
MADV INT )  
Giá trị NULL  
Một cơ sở dữ liệu là sự phản ánh của một hệ thống trong thế giới thực, do đó các  
giá trị dữ liệu tồn tại trong cơ sở dữ liệu có thể không xác định được. Một giá trị không  
xác định được xuất hiện trong cơ sở dữ liệu có thể do một số nguyên nhân sau:  
• Giá trị đó có tồn tại nhưng không biết.  
• Không xác định được giá trị đó có tồn tại hay không.  
• Tại một thời điểm nào đó giá trị chưa có nhưng rồi có thể sẽ có.  
• Giá trị bị lỗi do tính toán (tràn số, chia cho không,...)  
Những giá trị không xác định được biểu diễn trong cơ sở dữ liệu quan hệ bởi các  
giá trị NULL. Đây là giá trị đặc biệt và không nên nhầm lẫn với chuỗi rỗng (đối với dữ  
liệu kiểu chuỗi) hay giá trị không (đối với giá trị kiểu số). Giá trị NULL đóng một vai  
trò quan trọng trong các cơ sở dữ liệu và hầu hết các hệ quản trị cơ sở dữ liệu quan hệ  
hiện nay đều hỗ trợ việc sử dụng giá trị này.  
2.2 Các tập tin vật lý lưu trữ cơ sở dữ liệu  
Mặc dù phải quản lý nhiều đối tượng bên trong cơ sở dữ liệu nhưng Microsoft  
SQL  
Server chỉ tổ chức hai loại tập tin để lưu trữ.  
Một cơ sở dữ liệu trong Microsoft SQL Server tối thiểu sẽ dùng hai (2) tập tin vật  
lý để lưu trữ dữ liệu:  
Datafile: dùng lưu trữ dữ liệu.  
Transaction log file : dùng để lưu trữ các hành động thực hiện trên cơ sở dữ liệu  
trong quá trình sử dụng. Các hành động thực hiện trên CSDL gọi là các giao tác.  
Các loại tập tin lưu trữ dữ liệu của SQL Sever 2000  
Trang 20  
 
Các loại tập tin lưu trữ dữ liệu của SQL Sever 2000  
Các tập tin lưu trữ cơ sở dữ liệu bên trong Microsoft SQL Server được phân chia  
thành ba loại tập tin vật lý khác nhau:  
Tập tin dữ liệu chính (Primary Data File) : Đây là tập tin chính dùng để lưu trữ  
các thông tin hệ thống của cơ sở dữ liệu và phần còn lại dùng lưu trữ một phần dữ liệu.  
Phần mở rộng của tập tin này thông thường là *.MDF.  
Tập tin dữ liệu thứ yếu(Secondary Data Files) : Đây là tập tin dùng lưu trữ các  
đối tượng dữ liệu không nằm trong tập tin dữ liệu chính. Loại tập tin này không bắt  
buộc phải có khi tạo mới cơ sở dữ liệu. Phần mở rộng của tập tin này thông thường là  
*.NDF.  
Tập tin lưu vết (Log Files): Đây là tập tin dùng lưu vết các giao tác – là những  
hành động cập nhật dữ liệu (thêm, sửa, xóa) vào các bảng do người sử dụng tác động  
trên cơ sở dữ liệu. Tập tin sẽ này hỗ trợ cho phép các bạn có thể hủy bỏ (rollback) các  
thao tác cập nhật dữ liệu đã được thực hiện hay giúp SQL Server phục hồi dữ liệu  
trong các trường hợp gặp sự cố như mất điện,… Phần mở rộng của tập tin này thông  
thường là *.LDF.  
Kết chương  
Như vậy, SQL (viết tắt của StructuredQueryLanguage) là hệ thống ngôn ngữ  
được sử dụng cho các hệ quản trị cơ sở dữ liệu quan hệ. Thông qua SQL có thể thực  
hiện được các thao tác trên cơ sở dữ liệu như định nghĩa dữ liệu, thao tác dữ liệu, điều  
khiển truy cập, quản lý toàn vẹn dữ liệu... SQL là một thành phần quan trọng và không  
thể thiếu trong hệ quản trị cơ sở dữ liệu quan hệ.  
SQL ra đời nhằm sử dụng cho các cơ sở dữ liệu theo mô hình quan hệ. Trong  
một cơ sở dữ liệu quan hệ, dữ liệu được tổ chức và lưu trữ trong các bảng. Mỗi một  
bảng là một tập hợp bao gồm các dòng và các cột; mỗi một dòng là một bản ghi và  
mỗi một cột tương ứng với một trường, tập các tên cột cùng với kiểu dữ liệu và các  
tính chất khác tạo nên cấu trúc của bảng, tập các dòng trong bảng chính là dữ liệu của  
bảng.  
Các bảng trong một cơ sở dữ liệu có mối quan hệ với nhau. Các mối quan hệ  
được biểu diễn thông qua khoá chính và khoá ngoài của các bảng. Khoá chính của  
bảng là tập một hoặc nhiều cột có giá trị duy nhất trong bảng và do đó giá trị của nó  
xác định duy nhất một dòng dữ liệu trong bảng. Một khoá ngoài là một tập một hoặc  
nhiều cột có giá trị được xác định từ khoá chính của các bảng khác.  
Trang 21  
 
Tải về để xem bản đầy đủ
pdf 116 trang yennguyen 24900 Free
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình modul Hệ quản trị cơ sở dữ liệu SQL Server", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_modul_he_quan_tri_co_so_du_lieu_sql_server.pdf