Mặc dù đã rất cố gắng, nhưng đây là cuốn " Giáo trình Hệ cơ sở dữ liệu SQL server và phát triển nghề nghiệp Tin học ứng dụng." đầu tiên dành cho đối tượng Cao đẳng Tin học ứng dụng không
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG CAO ĐẲNG DU LỊCH VÀ CÔNG THƯƠNG
GIÁO TRÌNH MÔN HỌC/MÔ ĐUN: HỆ CƠ SỞ DỮ LIỆU NGÀNH/NGHỀ: LẮP RÁP MÁY TÍNH
TRÌNH ĐỘ: CAO ĐẲNG
(Ban hành kèm theo Quyết định số 875/QĐ-DLCT ngày 26 tháng 8 năm
2022 của Hiệu trưởng trường Cao đẳng Du Lịch và Công Thương)
Hải Dương, năm 2022
Trang 4LỜI GIỚI THIỆU
Đào tạo Tin học ứng dụng có trình độ là một nội dung đào tạo mới ở Nhà trường Chính
vì vậy phương tiện và kinh nghiệm giảng dạy trong đó có tài liệu học tập cho đối tượng này còn gặp nhiều khó khăn
Nhằm khắc phục khó khăn về tài liệu học tập của sinh viên Cao đẳng Tin học ứng dụng, chúng tôi đã biên soạn cuốn sách Giáo trình Hệ cơ sở dữ liệu SQL server nghề nghiệp Tin học ứng dụng
Cuốn sách được viết dựa trên chương trình hiện đang áp dụng giảng dạy cho đối tượng Cao đẳng Tin học ứng dụng hệ chính quy tại các trường Cao đẳng hiện nay Cuốn sách này là tài liệu học tập cho sinh viên Cao đẳng Tin học ứng dụng, đồng thời có thể sử dụng như tài liệu tham khảo cho các đối tượng học viên khác
Mặc dù đã rất cố gắng, nhưng đây là cuốn " Giáo trình Hệ cơ sở dữ liệu SQL server và phát triển nghề nghiệp Tin học ứng dụng." đầu tiên dành cho đối tượng Cao đẳng Tin học ứng dụng không thể tránh khỏi những sai sót, rất mong sự đóng góp ý kiến của các thầy giáo, cô giáo, các em học sinh, sinh viên và các bạn đồng nghiệp để cuốn sách được hoàn thiện hơn
Chúng tôi xin chân thành cảm ơn Ban Giám hiệu Nhà trường, các nhà chuyên môn và bạn đọc đã giúp đỡ, động viên, tạo điều kiện cho chúng tôi hoàn thành cuốn giáo trình này
Hải Dương, ngày 01 tháng 01 năm 2022
Tham gia biên soạn Chủ biên
Nguyễn Thị Thuỷ
Trang 5MỤC LỤC
MỤC LỤC 1
BÀI 1:TỔNG QUAN VỀ DBMS VÀ SQL SERVER 11
1 Một số khái niệm về DBMS 11
4 Giới thiệu các công cụ 15
5 Cài đặt 17
6 CSDL mẫu 29
BÀI 2: GIỚI THIỆU NGÔN NGỮ TRANSACT SQL (T-SQL) 34
1 Ngôn ngữ định nghĩa dữ liệu (DDL) 34
2 Ngôn ngữ điều khiển, kiểm soát dữ liệu (DCL) 47
3 Ngôn ngữ thao tác dữ liệu (DML) 48
BÀI 3: THIẾT KẾ CƠ SỞ DỮ LIỆU (CSDL) 79
1 Cấu trúc của SQL Server 79
2 Cấu trúc Vật lý, cấu trúc Logic của một CSDL 80
3 Tạo CSDL bằng EM và T – SQL 81
BÀI 4: SAO LƯU VÀ PHỤC HỔI DỮ LIỆU 107
1 Lý do sao lưu, phục hồi dữ liệu 107
2 Các Loại Backup 107
3 Recovery Models 109
4 Backup Database 112
5 Restore Database 115
BÀI 5: VIEW, STORED, PROCEDURE, STORED FUNCTION 118
1 Views 118
2 Stored Procedures 125
3 Stored functions 132
BÀI 6: TRIGGERS 136
1 Khái niệm 137
2 Phân loại Triggers 140
Trang 73.3 Ý nghĩa và vai trò của môn học
Môn học Hệ cơ sở dữ liệu SQL phát triển nghề nghiệp Tin học ứng dụng giúp cho sinh viên biết được các nội quy, quy chế nghề Tin học ứng dụng, chuẩn năng lực của người Tin học ứng dụng và các hiệp hội Tin học ứng dụng trên thế giới
4 Mục tiêu môn học
4.1 Về kiến thức
1.1 Mô tả được vai trò, nhiệm vụ của người Tin học ứng dụng, quy chế nghề nghiệp nghề Tin học ứng dụng
1.2 Trình bày được cách thu thập dữ liệu; các cú pháp lệnh khi thực hiện
1.3.Trình bày được sự hình thành và các năng lực của người Tin học ứng dụng
1.4 Mô tả, phân tích được Hệ cơ sở dữ liệu SQL
1.5 Kể được các lệnh thực hiện trong Hệ cơ sở dữ liệu SQL
4.2 Về kỹ năng
2.1 Thực hiện được nhiệm vụ và quy chế nghề nghiệp của người Tin học ứng dụng trong quá trình phát triển nghề nghiệp
2.2 Thu thập được các dữ liệu về cơ sở dữ liệu của khách hàng
2.3 Hình thành và phát triển hoàn thiện năng lực nghề nghiệp Tin học ứng dụng theo mức độ tăng dần của khung năng lực
2.4 Phát hiện, đánh giá được sự an toàn thông tin để xử lý; Sửa chữa kịp thời các trường hợp bất thường trong khi thực hiện chương trình
4.3 Về tự chủ và tự chịu trách nhiệm
Trang 84.3.1 Ứng xử tế nhị, không phán xét, không chỉ trích, có văn hóa thích hợp với mọi đối tượng phục vụ
4.3.2 Tôn trọng sự riêng tư, văn hóa và phong tục của khách và cơ quan tiếp nhận; không phân biệt tình trạng kinh tế, văn hóa xã hội, sắc tộc hoặc niềm tin, tín ngưỡng của họ Đảm bảo tính bảo mật đối với tất cả các thông tin cá nhân
Trang 9Mã
Thời gian học tập Tổng
5.2 Chương trình chi tiết môn học
Thời gian (giờ) Tổng
1 Bài 1: Tổng quan về DBMS và SQL Server 6 2 4 0
4 Bài 4: Sao lưu và phục hồi dữ liệu 12 4 8 0
5 Bài 5: View, Stored Procedure, Stored function 12 4 8 0
2 Trang thiết bị dạy học: Projetor, máy vi tính, bảng, phấn
3 Học liệu, dụng cụ, mô hình,phương tiện: Giáo trình, mô hình học tập, bảng kiểm…
4 Các điều kiện khác:
7 Nội dung và phương pháp, đánh giá
7.1 Nội dung:
- Kiến thức: Đánh giá tất cả các nội dung đã nêu trong mục tiêu kiến thức
- Kỹ năng: Đánh giá tất cả các nội dung đã nêu trong mục tiêu kĩ năng, chủ yếu đánh giá ở nội dung Thực hành tại trường và thực hành tại nơi thực tập
- Năng lực tự chủ và trách nhiệm: Trong quá trình học tập, sinh viên cần: + Nghiên cứu bài trước khi đến lớp
Trang 10+ Chuẩn bị đầy đủ tài liệu học tập
+ Tham gia đầy đủ thời lượng môn học
+ Nghiêm túc trong quá trình học tập
Hướng dẫn thực hiện quy chế đào tạo áp dụng tại Trường Cao đẳng
Du lịch và Công thương như sau:
Điểm đánh giá Trọng số
+ Điểm kiểm tra định kì (Hệ số 2)
7.2.2 Phương pháp đánh giá
- Điểm kiểm tra thường xuyên: 2 điểm kiểm tra 15 phút, hỏi miệng
- Kiểm tra định kỳ lý thuyết: 2 điểm kiểm tra
+ Hình thức: Kiểm tra viết
+ Công cụ: Câu hỏi truyền thống cải tiến
+ Thời gian: 45 phút
- Thi kết thúc môn học lý thuyết: 1 điểm
+ Hình thức: Thi trắc nghiệm khách quan
+ Công cụ: Ngân hàng đề thi/ Bộ câu hỏi trắc nghiệm khách quan
8 Hướng dẫn thực hiện môn học
8.1 Phạm vi, đối tượng áp dụng: Đối tượng Cao đẳng Tin học ứng dụng
8.2 Phương pháp giảng dạy, học tập môn học
Trang 118.2.1 Đối với giảng viên
* Lý thuyết: Áp dụng phương pháp dạy học tích cực bao gồm: Thuyết trình ngắn,
nêu vấn đề, hướng dẫn đọc tài liệu, bài tập tình huống…
* Thảo luận: Phân chia nhóm nhỏ thảo luận theo nội dung đề ra
* Hướng dẫn tự học theo nhóm: Nhóm trưởng phân công các thành viên trong
nhóm tìm hiểu, nghiên cứu theo yêu cầu nội dung trong bài học, cả nhóm thảo luận, trình bày nội dung, ghi chép và viết báo cáo nhóm
8.2.2 Đối với người học
Sinh viên phải thực hiện các nhiệm vụ như sau:
- Nghiên cứu kỹ bài học tại nhà trước khi đến lớp Các tài liệu tham khảo sẽ được cung cấp nguồn trước khi sinh viên vào học học phần này (trang web, thư viện, tài liệu )
- Tham dự tối thiểu 70% các buổi giảng lí thuyết Nếu học sinh vắng >30%
số tiết lý thuyết phải học lại môn học mới được tham dự kì thi lần sau
- Tự học và thảo luận nhóm: là một phương pháp học tập kết hợp giữa làm việc theo nhóm và làm việc cá nhân Một nhóm gồm 8-10 sinh viên sẽ được cung cấp chủ đề thảo luận trước khi học lý thuyết, thực hành Mỗi sinh viên sẽ chịu trách nhiệm về 1 hoặc một số nội dung trong chủ đề mà nhóm đã phân công để phát triển và hoàn thiện tốt nhất toàn bộ chủ đề thảo luận của nhóm
- Tham dự đủ các bài kiểm tra thường xuyên, định kỳ
- Tham dự thi kết thúc học phần lý thuyết và thực hành tại nơi thực tập
- Chủ động tổ chức thực hiện giờ tự học
9 Tài liệu tham khảo:
[1] Hệ Cơ sở dữ liệu - Dương Tuấn Anh, Nguyễn Trung Trực – NXB ĐHQG
TP HCM
[2] Giáo trình phần mềm SQL Server trên mạng Internet
Trang 12BÀI 1:TỔNG QUAN VỀ DBMS VÀ SQL SERVER
Mã bài học: MĐ15-01
GIỚI THIỆU BÀI HỌC
SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System (RDBMS) ) sử dụng câu lệnh SQL (Transact-SQL) để trao đổi dữ liệu giữa máy Client và máy cài SQL Server 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 đượ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 có thể kết hợp “ăn ý” với các server khác như Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server…
MỤC TIÊU BÀI HỌC
Trình bày được khái niệm về SQL Server, các công cụ và thao tác cài đặt
Thực hiện được các thao tác cài đặt và cơ sở dữ liệu mẫu
Nghiêm túc, trách nhiệm, chủ động, tích cực, sáng tạo trong học tập
NỘI DUNG BÀI HỌC
1 Một số khái niệm về DBMS
DBMS là viết tắt của Database Management System, dịch sang tiếng Việt là Hệ quản trị Cơ sở dữ liệu DBMS là phần mềm được thiết kế để có thể xác định, tiến hành các thao tác, truy xuất và quản lý dữ liệu trong Cơ sở dữ liệu DBMS thường có khả năng tự thao tác với dữ liệu, định dạng dữ liệu, tên trường, cấu trúc bản ghi và cấu trúc tệp Nó cũng xác định các quy tắc để xác nhận và thao tác với dữ liệu
Với DBMS, người dùng có thể thao tác sửa/xóa/thêm dữ liệu mà không còn cần các chương trình khung Các ngôn ngữ lập trình truy vấn như SQL thường đi kèm với DBMS để lập trình viên dễ dàng tương tác với dữ liệu họ cần
Trang 13thêm lên, lấy xuống hoặc sửa đổi dữ liệu hiện có trên hệ thống
Một DBMS luôn có tính chất độc lập về mặt dữ liệu Bất kỳ thay đổi nào về phương thức lưu trữ và định dạng đều được thực hiện mà không sửa đổi toàn bộ ứng dụng Dưới đây là 4 dạng tổ chức cơ sở dữ liệu nổi bật nhất:
Cơ sở dữ liệu quan hệ: Dữ liệu được tổ chức dưới dạng các bảng độc lập có tính
logic Mối quan hệ giữa các bảng được thể hiện thông qua dữ liệu được chia sẻ Dữ liệu trong một bảng có thể tham chiếu dữ liệu trong các bảng khác, duy trì tính toàn vẹn của các liên kết giữa chúng Tính năng này được gọi là tính toàn vẹn tham chiếu, một khái niệm quan trọng trong cơ sở dữ liệu quan hệ Các hành động như "select" và "join" có thể được thực hiện trên các bảng dữ liệu Đây là kiểu tổ chức cơ sở dữ liệu đang được
sử dụng rộng rãi nhất
Cơ sở dữ liệu phẳng: Dữ liệu được tổ chức trong một loại bản ghi với một số
trường nhất định Kiểu cơ sở dữ liệu này gặp nhiều lỗi hơn do tính chất lặp của dữ liệu
Cơ sở dữ liệu hướng đối tượng: Dữ liệu được tổ chức theo cách giống như những
gì chúng ta thấy ở ngôn ngữ lập trình hướng đối tượng Một đối tượng có các dữ liệu
và phương thức trong khi một nhóm đối tượng tương tự nhau có chung dữ liệu và phương thức
Cơ sở dữ liệu phân cấp: Dữ liệu được tổ chức với các mối quan hệ phân cấp Nó
trở thành một mạng lưới phức tạp nếu một trong các mối quan hệ bị vi phạm
Cơ sở dữ liệu (Database) là một tập hợp các dữ liệu có tổ chức, thường được lưu trữ và truy cập điện tử từ hệ thống máy tính Khi cơ sở dữ liệu phức tạp hơn, chúng thường được phát triển bằng cách sử dụng các kỹ thuật thiết kế và mô hình hóa chính thức
Hệ quản lý cơ sở dữ liệu (Database Management System - DBMS) là phần mềm tương tác với người dùng cuối, ứng dụng và chính cơ sở dữ liệu để thu thập và phân tích dữ liệu Phần mềm DBMS bao gồm các tiện ích cốt lõi được cung cấp để quản trị
cơ sở dữ liệu Tổng cộng của cơ sở dữ liệu, DBMS và các ứng dụng liên quan có thể được gọi là "hệ thống cơ sở dữ liệu" Thông thường thuật ngữ "cơ sở dữ liệu" cũng được
sử dụng để nói đến bất kỳ DBMS, hệ thống cơ sở dữ liệu hoặc ứng dụng nào được liên kết với cơ sở dữ liệu
Các DBMS hiện tại cung cấp các chức năng khác nhau cho phép quản lý cơ sở dữ liệu và dữ liệu có thể được phân loại thành bốn nhóm chức năng chính:
Định nghĩa dữ liệu - Tạo, sửa đổi và loại bỏ các định nghĩa xác định tổ chức dữ liệu
Cập nhật - Chèn, sửa đổi và xóa dữ liệu thực tế
Truy xuất - Cung cấp thông tin dưới dạng có thể sử dụng trực tiếp hoặc để xử lý thêm bởi các ứng dụng khác Dữ liệu được truy xuất có thể được cung cấp ở dạng cơ bản giống như được lưu trữ trong cơ sở dữ liệu hoặc ở dạng mới thu được bằng cách
Trang 14thay đổi hoặc kết hợp dữ liệu hiện có từ cơ sở dữ liệu
Quản trị - Đăng ký và giám sát người dùng, thực thi bảo mật dữ liệu, giám sát hiệu suất, duy trì tính toàn vẹn dữ liệu, xử lý kiểm soát đồng thời và khôi phục thông tin đã
bị hỏng do một số sự kiện như lỗi hệ thống không mong muốn
2 Giới thiệu về SQL Server
SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System (RDBMS) ) sử dụng câu lệnh SQL (Transact-SQL) để trao đổi dữ liệu giữa máy Client và máy cài SQL Server 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 đượ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 có thể kết hợp “ăn ý” với các server khác như Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server…
SQL, viết tắt của Structured Query Language (ngôn ngữ hỏi có cấu trúc), là 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ệ
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ủa người sử dụng trên dữ liệu, đảm bảo sự an toàn cho cơ sở dữ liệu
Đả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ác
hệ 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
Trang 15trê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
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,
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
3 Các phiêm bản SQL Server
Microsoft SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ được phát triển bởi Microsoft Là một máy chủ cơ sở dữ liệu, nó là một sản phẩm phần mềm có chức năng chính là lưu trữ và truy xuất dữ liệu theo yêu cầu của các ứng dụng phần mềm khác Có thể chạy trên cùng một máy tính hoặc trên một máy tính khác trên mạng (bao gồm cả Internet)
Microsoft tiếp thị ít nhất một chục phiên bản Microsoft SQL Server khác nhau, nhắm vào các đối tượng khác nhau và cho khối lượng công việc khác nhau, từ các ứng dụng máy đơn nhỏ đến các ứng dụng Internet lớn có nhiều người dùng đồng thời
Trang 16Lịch sử của Microsoft SQL Server bắt đầu với sản phẩm Microsoft SQL Server đầu tiên SQL SQL Server 1.0, máy chủ 16-bit cho hệ điều hành OS/2 vào năm 1989 và kéo dài đến ngày hiện tại
SQL Server 7.0 được phát hành vào năm 1998, đánh dấu việc chuyển đổi mã nguồn từ C sang C ++
SQL Server 2005, được phát hành năm 2005, hoàn thành việc sửa đổi hoàn toàn
4 Giới thiệu các công cụ
SQL Server được cấu tạo bởi nhiều thành phần như Database Engine, Reporting Services, Notification Services, Integration Services, Full Text Search Service… 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
Trang 17Database 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ử chúng ta 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 Một ngày đẹp trời chúng ta muốn có một cái database giống y 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 chúng ta 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 Chúng ta không thể dùng cơ chế back
up and restore trong trường hợp này 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) Integration Services (DTS)
Integration Services là một tập hợp các công cụ đồ họa và các đối tượng lập trình cho việc di chuyển, sao chép và chuyển đổi dữ liệu
Nếu chúng ta 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….Chúng ta 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 chúng ta còn muốn định dạng (format) nó trước khi lưu vào database khác, khi
đó chúng ta sẽ thấy DTS giúp chúng ta giải quyết công việc trên dễ dàng
Trang 18Analysis Services
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ư chúng ta không thể lấy được những thông tin (Information) bổ ích từ đó Do đó Microsoft cung cấp cho chúng ta 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)
Notification Services
Dịch vụ thông báo Notification Services là nền tảng cho sự phát triển và triển khai các ứng dụng tạo và gửi thông báo Notification Services có thể gửi thông báo theo địch thời đến hàng ngàn người đăng ký sử dụng nhiều loại thiết
bị khác nhau
Reporting Services
Reporting Services bao gồm các thành phần server và client cho việc tạo, quản lý và triển khai các báo cáo Reporting Services cũng là nền tảng cho việc phát triển và xây dựng các ứng dụng báo cáo
Full Text Search Service
Dịch vụ SQL Server Full Text Search là một dịch vụ đặc biệt cho đánh chỉ mục và truy vấn cho dữ liệu văn bản không cấu trúc được lưu trữ trong các CSDL SQL Server Đánh chỉ mục với Full Text Search có thể dduwowcj tạo trên bất kỳ cột dựa trên dữ liệu văn bản Nó sẽ rất hiệu quả cho việc tìm các sử dụng toán tử LIKE trong SQL với trường hợp tìm văn bản
5 Cài đặt
SQL Server 2005 có nhiều phiên bản khác nhau, trong đó bản Express là bản thấp nhất, được Microsoft cung cấp miễn phí cho người dùng với mục đích học tập và ứng dụng vào những ứng dụng nhỏ, không yêu cầu cao về các tính năng khác ngoài việc lưu trữ và xử lý đơn giản
Yêu cầu về phần cứng và hệ điều hành sử dụng
Hệ điều hành tối thiểu: Windows 2000 Service Pack 4; Windows Server
2003 Service Pack 1; Windows XP Service Pack 2
Trang 19Phần cứng: Máy tính chip Pentium III 600 MHz trở lên (Cấu hình đề nghị:
Chip 1 GHz hoặc cao hơn.)
Tối thiểu 192 MB RAM (Cấu hình đề nghị: 512 MB RAM.)
2 Microsoft Net Framework 2.0
Hệ điều hành 32bit: http://go.microsoft.com/fwlink/?LinkId=55731
Hệ điều hành 64bit: http://go.microsoft.com/fwlink/?LinkId=55734
3 Bạn phải có file cài đặt SQL Server 2005 Express, có thể download miễn phí từ Website của Microsoft tại địa chỉ:
4 http://www.microsoft.com/downloads/details.aspx?familyid=220549b5- 0b07-4448-8848-dcc397514b41&displaylang=en
5 SQL Server Management Studio Express:
6 http://www.microsoft.com/downloads/details.aspx?familyid=C243A5A E-4BD1-4E3D-94B8-5A0F62BF7796&displaylang=en
Sau khi download về, hãy lưu vào một thư mục nào đó để bắt đầu tiến hành cài đặt Trong hướng dẫn dưới đây, các thành phần trên có tên file cài đặt lần lượt là:
WindowsInstaller-KB893803-v2-x86.exe: Windows Installer 3.1
dotnetfx.exe: Microsoft Net Framework 2.0
SQLEXPR.EXE: SQL Server 2005 Express
SQLServer2005_SSMSEE.msi: Công cụ quản lý SQL Server Management Studio Express
Bước 1: Cài Windows Installer 3.1
Nhấn vào file WindowsInstaller-KB893803-v2-x86.exe
Nhấn Next
Trang 20Chọn I agree, nhấn Next
Trang 21Click Finish
Bước 2: Cài Framework 2.0
File cài: dotnetfx.exe
Nhấn Finish
Trang 22Máy sẽ khởi động lại, sau đó tiếp tục bước 3
Bước 3: Cài Microsoft SQL Server 2005
Nhấn vào file SQLEXPR.EXE
Trên màn hình tiếp theo, đánh dấu vào mục: "I accept the licensing terms and conditions", nhấn Next
Trên màn hình tiếp theo, nhấn Install
Trang 23Nhấn Next
Tiếp tục nhấn Next
Trang 24Trên màn hình tiếp theo, bỏ dấu check mở mục "Hide advanced
configuration options", nhấn Next
Nhấn Next trên màn hình tiếp theo
Khai báo Instance name, chọn Default Instance (Server Name sẽ trùng với tên máy)
Nhấn Next
Trang 25Nhấn Next trên cửa sổ tiếp theo
Trên cửa sổ tiếp theo, chọn chế độ chứng thực user
Windows Authentication Mode: Sử dụng chứng thực của Windows
Mixed Mode: Kết hợp cả chứng thực của Windows và chứng thực của SQL Server Ở đây có thể để mặc định: "Windows Authentication Mode"
Nhấn Next
Nhấn Next
Trang 26Nhấn Next
Nhấn Next
Click Install để bắt đầu cài đặt
Quá trình cài đặt có thể mất 5 -> 10 phút
Trang 27Khi màn hình báo cài đặt thành công như hình dưới, click Next
Tiếp tục click Finish
Bước 4: Cài Microsoft SQL Server Management Studio Express:
Trang 28File cài đặt SQLServer2005_SSMSEE.msi
Nhấn Next
Click chọn "I accept the terms in the license agreement", nhấn Next
Gõ tên người dùng, đơn vị sử dụng, sau đó nhấn Next
Trang 29Màn hình tiếp theo, nhấn Next
Click Install
Đợi trong vài phút
Nhấn Finish
Trang 30Đến đây chúng ta đã cài đặt xong SQL Server 2005 Express và các công cụ
để quản lý database của nó Từ đây chúng ta có thể bắt đầu sử dụng các tính năng quản lý của hệ quản trị cơ sở dữ liệu này rồi
6 CSDL mẫu
Khách hàng đặt hàng cho cty thông qua các đơn đặt hàng Thông tin chung
về các đơn đạt hàng được lưu trữ trong DONDATHANG (mỗi một đơn đặt hàng phải do một nhân viên của cty lập và do đó bảng này có quan hệ với bảng NHANVIEN)
Thông tin chi tiết của các đơn đặt hàng (đặt mua hàng gì, số lượng, giá cả,
…) được lưu trữ chi tiết trong bảng CHITIETDATHANG Bảng này có quan hệ với DONDATHANG và MATHANG
Sử dụng câu lệnh sau để tạo cơ sở dữ liệu:
CREATE TABLE nhacungcap
(
macongty NVARCHAR(10) NOT NULL
CONSTRAINT pk_nhacungcap
PRIMARY KEY(macongty),
tencongty NVARCHAR(40) NOT NULL,
tengiaodich NVARCHAR(30) NULL,
diachi NVARCHAR(60) NULL,
dienthoai NVARCHAR(20) NULL,
fax NVARCHAR(20) NULL,
Trang 31email NVARCHAR(50) NULL
maloaihang INT NULL ,
soluong INT NULL,
donvitinh NVARCHAR(20) NULL ,
giahang MONEY NULL
ho NVARCHAR(20) NOT NULL ,
ten NVARCHAR(10) NOT NULL ,
ngaysinh DATETIME NULL ,
Trang 32ngaylamviec DATETIME NULL ,
diachi NVARCHAR(50) NULL ,
dienthoai NVARCHAR(15) NULL ,
luongcoban MONEY NULL ,
phucap MONEY NULL
email NVARCHAR(30) NULL ,
dienthoai NVARCHAR(15) NULL ,
fax NVARCHAR(15) NULL
makhachhang NVARCHAR(10) NULL ,
manhanvien NVARCHAR(10) NULL ,
ngaydathang SMALLDATETIME NULL , ngaygiaohang SMALLDATETIME NULL , ngaychuyenhang SMALLDATETIME NULL , noigiaohang NVARCHAR(50) NULL
Trang 33)
CREATE TABLE chitietdathang
(
sohoadon INT NOT NULL ,
mahang NVARCHAR(10) NOT NULL ,
giaban MONEY NOT NULL ,
soluong SMALLINT NOT NULL ,
mucgiamgia REAL NOT NULL,
Trang 34ON DELETE CASCADE ON UPDATE CASCADE
CÂU HỎI ÔN TẬP
1 Nêu các phiên bản SQL Server; Cho biết các công cụ?
2 Nêu cách cài đặt SQL Server?
3 Cho biết cơ sở dữ liệu SQL Server ?
Trang 35BÀI 2: GIỚI THIỆU NGÔN NGỮ TRANSACT SQL (T-SQL)
Mã bài học: MĐ15-02
GIỚI THIỆU BÀI HỌC
T-SQL hay còn gọi là Transact-SQL là ngôn ngữ truy vấn được dành riêng cho sản phẩm của Microsoft SQL Server Chúng có tác dụng giúp bạn thực hiện các hoạt động như truy xuất dữ liệu ở chung một hàng, chèn hàng mới hoặc truy xuất nhiều hàng Chúng là một ngôn ngữ được sử dụng bởi SQL Server
Transact-SQL là ngôn ngữ SQL mở rộng dựa trên SQL chuẩn của ISO (International Organization for Standardization) và ANSI (American National Standards Institute) được sử dụng trong SQL Server khác với P-SQL (Procedural- SQL) dùng trong Oracle
SQL chuẩn bao gồm khoảng 40 câu lệnh 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
MỤC TIÊU BÀI HỌC
Trình bày được một số định nghĩa dữ liệu DDL, DCL, DML
Lựa chọn và vận dụng được vào từng công việc cụ thể
Nghiêm túc, trách nhiệm, chủ động, tích cực, sáng tạo trong học tập
NỘI DUNG BÀI HỌC
1 Ngôn ngữ định nghĩa dữ liệu (DDL)
Trong chương này sẽ đề cập đến nhóm các câu lệnh được sử dụng để định nghĩa và quản lý các đối tượng CSDL như bảng, khung nhìn, chỉ mục, và được gọi là ngôn ngữ định nghĩa dữ liệu (DDL)
Về cơ bản, ngôn ngữ định nghĩa dữ liệu bao gồm các lệnh: CREATE: định nghĩa và tạo mới đối tượng CSDL ALTER: thay đổi định nghĩa của đối tượng CSDL DROP: Xoá đối tượng CSDL đã có
Đây là những lệnh dùng để tạo (create), thay đổi (alter) hay xóa (drop) các đối tượng trong CSDL Các câu lệnh DDL thường có dạng:
Create object
Alter object
Drop object
Trang 36Trong đó object có thể là: table, view, storedprocedure, function, trigger…
Ví dụ: Câu lệnh Create sau sẽ tạo một bảng mới có tên là Nhanvien trong CSDL Test Bảng Nhanvien này gồm có ba cột: manv, tennv, diachi
Lưu ý: Nếu trong SQL Server 2005 Express Edition chưa có CSDL Test, hãy tạo một CSDL có tên Test theo hướng dẫn
create table Nhanvien
(
manv int primary key,
tennv nvarchar(50) not null,
diachi nvarchar(50) not null
alter table Nhanvien
add ghichu nvarchar(50) not null
Cuối cùng, dùng lệnh drop để xóa hoàn toàn bảng Nhanvien ra khỏi CSDL, nghĩa là toàn bộ định nghĩa bảng và các dữ liệu bên trong đều bị xóa
drop table Nhanvien
Lưu ý: Lệnh drop khác với lệnh delete Lệnh delete chỉ xóa các dòng dữ liệu
có trong bảng
1.1 Tạo bảng
Câu lệnh CREATE TABLE được sử dụng để định nghĩa một bảng dữ liệu mới trong CSDL Khi định nghĩa một bảng dữ liệu mới, ta cần phải xác định được các yêu cầu sau đây:
Bảng mới được tạo ra sử dụng với mục đích gì và có vai trò như thế nào trong cơ sở dữ liệu
Cấu trúc của bảng bao gồm những trường (cột) nào, mỗi một trường
có ý nghĩa như thế nào trong việc biểu diễn dữ liệu, kiểu dữ liệu của mỗi trường
là gì và trường đó có cho phép nhận giá trị NULL hay không
Những trường nào sẽ tham gia vào khóa chính của bảng Bảng có quan hệ
Trang 37với những bảng khác hay không và nếu có thì quan hệ như thế nào
Trên các trường của bảng có tồn tại những ràng buộc về khuôn dạng, điều kiện hợp lệ của dữ liệu hay không; nếu có thì sử dụng ở đâu và như thế nào Câu lệnh CREATE TABLE có cú pháp như sau
CREATE TABLE tên_bảng
Tên_bảng: tuân theo quy tắc định danh, không vượt quá 128 ký tự
Tên_cột: các cột trong bảng, mỗi bảng có ít nhất một cột
Thuộc_tính_cột: bao gồm kiểu dữ liệu của cột, giá trị mặc định của cột, cột
có được thiết lập thuộc tính identity, cột có chấp nhận giá trị NULL hay không Trong đó kiểu dữ liệu là thuộc tính bắt buộc
Các_ràng_buộc: gồm các ràng buộc về khuôn dạng dữ liệu ( ràng buộc CHECK) hay các ràng buộc về bào toàn dữ liệu (PRIMARY KEY, FOREIGN KEY, UNIQUE)
Ví dụ: Ví dụ dưới đây tạo một bảng có tên CUSTOMERS
create table customers
(
customerid int identity (1,1) primary key,
customername nvarchar(50) not null,
address nvarchar(100 ) null ,
birthday datetime null,
gender bit default('true') not null
)
Cột customerid có kiểu dữ liệu int, được chỉ định thuộc tính identity(1,1) nghĩa là dữ liệu cột này được thêm tự động bắt đầu từ 1 và mỗi lần có dòng mới thêm vào, giá trị cột này được tăng lên 1 Cột này cũng được chỉ định làm khóa
Trang 38chính của bảng thông qua thuộc tính primary key
Thuộc tính NULL/ NOT NULL chỉ ra rằng cột đó có chấp nhận/ không chấp nhận giá trị
insert into customers
values('Nguyen Van An', '22 Nguyen Thien Thuat', '5/5/1988', 'True')
Thêm dòng mới vào bảng customers sử dụng giá trị mặc định
insert into customers (customername, address, birthday)
values('Nguyen Van An', '22 Nguyen Thien Thuat', '5/5/1988')
Thêm dòng mới vào bảng customers và không truyền giá trị cho các cột cho phép giá trị
NULL
insert into customers (customername )
values('Nguyen Van An')
1.2 Các loại ràng buộc
1.2.1 Ràng buộc CHECK
Ràng buộc CHECK được sử dụng nhằm chỉ định điều kiện hợp lệ đối với
dữ liệu Mỗi khi có sự thay đổi dữ liệu trên bảng (INSERT, UPDATE), những ràng buộc này sẽ được sử dụng nhằm kiểm tra xem dữ liệu mới có hợp lệ hay không
Ràng buộc CHECK được khai báo theo cú pháp như sau:
[CONSTRAINT tên_ràng_buộc] CHECK (điều_kiện)
Trang 39Ví dụ:
create table students
(
studentid int identity(1,1) primary key,
studentname nvarchar(50) not null,
address nvarchar(100) not null,
score1 tinyint not null
constraint chk_score1 CHECK (score1 >= 0 and score1 <= 10),
score2 tinyint not null
constraint chk_score2 CHECK (score2 between 0 and 10),
score3 tinyint not null
constraint chk_score3 CHECK (score3 in (1,2,3,4,5,6,7,8,9,10)),
)
Thực hiện việc thêm một dòng có dữ liệu không thỏa điều kiện
insert into students
values('Nguyen Van Dung', '12 Tran Quang Khai', 10, 10, -2)
Có thể gộp chung các ràng buộc CHECK lại trong một ràng buộc duy nhất như sau:
create table students
(
studentid int identity(1,1) primary key,
studentname nvarchar(50) not null,
address nvarchar(100) not null,
score1 tinyint not null ,
score2 tinyint not null,
score3 tinyint not null,
Trang 40constraint chk_score CHECK( (score1>= 0 and score1 <=10)
and (score2 between 0 and 10)
and (score3 in (1,2,3,4,5,6,7,8,9,10)))
)
1.2.2 Ràng buộc PRIMARY KEY
Ràng buộc PRIMARY KEY được sử dụng để định nghĩa khoá chính của bảng Khoá chính của một bảng là một hoặc một tập nhiều cột mà giá trị của chúng là duy nhất trong bảng Hay nói cách khác, giá trị của khoá chính sẽ giúp cho ta xác định được duy nhất một dòng (bản ghi) trong bảng dữ liệu Mỗi một bảng chỉ có thể có duy nhất một khoá chính và bản thân khoá chính không chấp nhận giá trị NULL Ràng buộc PRIMARY KEY là cơ sở cho việc đảm bảo tính toàn vẹn thực thể cũng như toàn vẹn tham chiếu
Để khai báo một ràng buộc PRIMARY KEY, ta sử dụng cú pháp như sau: [CONSTRAINT tên_ràng_buộc] PRIMARY KEY [(danh_sách_cột)]
Nếu khoá chính của bảng chỉ bao gồm đúng một cột và ràng buộc PRIMARY KEY được chỉ định ở mức cột, ta không cần thiết phải chỉ định danh sách cột sau từ khoá PRIMARY KEY Tuy nhiên, nếu việc khai báo khoá chính được tiến hành ở mức bảng (sử dụng khi số lượng các cột tham gia vào khoá là
từ hai trở lên) thì bắt buộc phải chỉ định danh sách cột ngay sau từ khóa PRIMARY KEY và tên các cột được phân cách nhau bởi dấu phẩy
Ví dụ 1: Định nghĩa một bảng chỉ có một khóa chính
create table customers
(
customerid int identity(1,2)
constraint chk_primarykey primary key,
customername nvarchar(50) not null,
address nvarchar(100) not null,
gender bit not null
)
Hoặc là
create table customers
(