Bài Giảng SQL server

86 37 0
  • Loading ...
1/86 trang

Thông tin tài liệu

Ngày đăng: 09/06/2018, 21:55

MỤC LỤC ĐỀ MỤC TRANG BÀI TỔNG QUAN Giới thiệu .1 1.1 SQL ngôn ngữ sở liệu quan hệ 1.2 Vai trò SQL .2 1.3 Tổng quan sở liệu quan hệ 1.3.1 Mơ hình liệu quan hệ 1.3.2 Bảng (Table) 1.3.3 Khoá bảng 1.3.4 Mối quan hệ khố ngồi 1.4 Sơ lược SQL .4 1.4.1 Câu lệnh SQL 1.4.2 Qui tắc sử dụng tên SQL .6 1.4.3 Kiểu liệu 1.4.4 Giá trị NULL BÀI CÁC THÀNH PHẦN CƠ BẢN CỦA SQL SERVER 10 2.1 Khái niệm mơ hình quan hệ .10 2.2 Các thành phần cấu thành SQL Server 10 2.3 Đối tượng sở liệu 10 2.3.1 Cơ sở liệu Master 11 2.3.2 Cơ sở liệu model 11 2.3.3 Cơ sở liệu msdb .11 2.3.4 Cơ sở liệu Tempdb 12 2.3.5 Cơ sở liệu pubs 12 2.3.6 Cơ sở liệu Northwind 12 2.3.7 Tập tin chuyển tác log 12 BÀI GIỚI THIỆU MỘT SỐ CÔNG CỤ TRONG SQL SERVER 13 3.1 Các thành phần quan trọng SQL Server 2000 13 3.2 Relational Database Engine - Cái lõi SQL Server: 13 3.3 Replication - Cơ chế tạo (Replica): .13 3.4 Data Transformation Service (DTS) 13 3.5 Analysis Service 14 3.6 English Query - Một dịch vụ truy vấn 14 3.7 Meta Data Service: .14 3.8 SQL Server Books Online : 14 BÀI PHÁT BIỂU CƠ BẢN T-SQL .15 4.1 Truy xuất liệu với câu lệnh SELECT .15 4.1.1 Mệnh đề FROM 16 4.1.2 Danh sách chọn câu lệnh SELECT .17 4.1.3 Chỉ định điều kiện truy vấn liệu 20 4.1.4 Tạo bảng liệu từ kết câu lệnh SELECT 24 4.1.5 Sắp xếp kết truy vấn 24 4.1.8 Thống kê liệu với GROUP BY 25 4.1.9 Thống kê liệu với COMPUTE 27 4.2 Bổ sung, cập nhật xoá liệu .29 4.2 Bổ sung liệu 29 4.3 Cập nhật liệu 30 4.4 Xoá liệu 31 4.5 Bài tập 32 BÀI TẠO VÀ SỬA ĐỔI BẢNG DỮ LIỆU 33 5.1 Tạo bảng liệu 33 5.1.1 Ràng buộc CHECK 36 5.1.2 Ràng buộc PRIMARY KEY 38 5.1.3 Ràng buộc UNIQUE .39 5.1.4 Ràng buộc FOREIGN KEY 40 5.2 Sửa đổi định nghĩa bảng 43 5.3 Xoá bảng 45 BÀI KHÓA VÀ RÀNG BUỘC DỮ LIỆU 47 6.1 Các Phương Pháp Ðảm Bảo Data Integrity 47 6.2 Các loại ràng buộc (Constraints) 48 6.2.1 Primary Key Constraint: .48 6.2.2 Unique Constraint 49 6.2.3 Foreign Key Constraint 49 6.2.4 Check Constraint 50 6.3 Bài tập 51 BÀI CHUẨN HÓA QUAN HỆ .52 7.1 Khái niệm chuẩn hoá quan hệ 52 7.1.1 Sự dư thừa liệu .52 7.1.2 Các dị thường cập nhật liệu 52 7.2 Cấu trúc phụ thuộc liệu 53 7.2.1 Phụ thuộc hàm 54 7.2.2 Phụ thuộc đa trị .54 7.2.3 Phụ thuộc chiếu-nối 55 7.3 Chuẩn hoá lược đồ quan hệ 56 7.3.1 Dạng chuẩn thứ (1NF) 56 7.3.2 Dạng chuẩn thứ (2NF) .56 7.3.3 Dạng chuẩn thứ (3NF) .57 7.3.4 Dạng chuẩn Boyce-Codd (BCNF) .58 7.3.5 Dạng chuẩn thứ (4NF) 58 7.3.5 Dạng chuẩn thứ (5NF) .59 BÀI BẢNG ẢO - VIEW 61 8.1 Khái niệm View 61 8.2 Khung nhìn đơn giản .62 8.3 Tạo khung nhìn - Khung nhìn lọc .64 8.4 Cập nhật, bổ sung xoá liệu thơng qua khung nhìn .65 8.5 Sửa đổi khung nhìn 68 8.6 Xố khung nhìn 68 69 Bài THIẾT KẾ CƠ SỞ DỮ LIỆU 70 9.1 Cấu Trúc Của SQL Server 70 9.2 Cấu Trúc Vật Lý Của Một SQL Server Database 70 9.3 Nguyên Tắc Hoạt Ðộng Của Transaction Log Trong SQL Server 71 9.4 Cấu Trúc Logic Của Một SQL Server Database 72 9.5 Tạo Một User Database 73 9.6 Những Ðiểm Cần Lưu Ý Khi Thiết Kế Một Database 74 9.7 tập 75 MÔ ĐUN QUẢN TRỊ CƠ SỞ DỮ LIỆU NÂNG CAO Mã mô đun: MĐ 17 Vị trí, ý nghĩa, vai trò mơ đun: Mục tiêu mô đun: - Mô tả thành phần hệ quản trị sở liệu, khái niệm sở liệu quan hệ hướng đối tượng sở liệu quan hệ, ngôn ngữ MS SQL - Trình bày kiến trúc hệ quản trị sở liệu MS SQL Server, cách làm việc tương tác thành phần kiến trúc hệ thống - Kết nối hệ thống mạng để sử dụng hệ thống sở liệu - Thực thành thạo thao tác quản trị tài khoản người dùng tài khoản nhóm hệ thống MS SQL Server - Thiết lập cấu hình giải vấn đề thường xảy mạng sử dụng truy cập sở liệu - Bảo vệ tài nguyên liệu hệ thống MS SQL Server - Bố trí làm việc khoa học đảm bảo an toàn cho người phương tiện học tập Mã Tên chương mục/bài Bài Giới thiệu lịch sử phát triển Bài Các thành phần SQL server Bài Giới thiệu số công cụ SQL server Bài Phát biểu T-SQL Bài Tạo sửa đổi bảng liệu Bài Khóa ràng buộc liệu Bài Chuẩn hóa quan hệ Bài Bảng ảo (view) Bài Thiết kế sở liệu Loại dạy LT Thời lượng Tổng Lý Thực Kiểm số thuyết hành tra Lớp học 2 Địa điểm LT+TH Lớp học 4 LT+TH Lớp học 10 LT+TH Lớp học LT+TH Lớp học 17 17 5 11 12 LT+TH Lớp học 11 LT+TH Lớp học LT+TH Lớp học LT+TH Lớp học 2 1 U CẦU VỀ ĐÁNH GIÁ HỒN THÀNH MƠN HỌC/MƠ ĐUN Phương pháp đánh giá + Hình thức kiểm tra hết mơn chọn hình thức sau: - Đối với lý thuyết :Viết, vấn đáp, trắc nghiệm - Đối với thực hành : Bài tập thực hành máy tính + Thời gian kiểm tra: - Lý thuyết: Không 150 phút - Thực hành: Không + Thực theo qui chế thi, kiểm tra công nhận tốt nghiệp dạy nghề hệ qui định 14/2007/BLĐTB&XH ban hành ngày 24/05/2007 Bộ trưởng Bộ LĐ-TB&XH Nội dung đánh giá + Về kiến thức: Được đánh giá qua kiểm tra viết, trắc nghiệm đạt yêu cầu sau: - Hiểu kiểu liệu MS SQL Server - Sử dụng tiện ích MS SQL Server - Hiểu phát biểu T-SQL - Hiểu tạo khoá ràng buộc liệu - Chuẩn hóa loại quan hệ - Thiết kế CSDL - Thiết lập bảo mật CSDL +Về kỹ năng: Đánh giá kỹ thực hành sinh viên thực hành Tạo CSDL, truy vấn liệu, tạo quan hệ bảo mật liệu + Về thái độ: Cẩn thận, tự giác BÀI TỔNG QUAN Mục tiêu: - Hiểu lịch sử phát triển cần thiết SQL SERVER thời đại ngày nay; - Xác định cấu trúc CSDL sở nhằm đảm bảo thao tác liệu hiệu - Thực thao tác an tồn với máy tính Nội dung chính: Giới thiệu Ngơn ngữ hỏi có cấu trúc (SQL) hệ quản trị sở liệu quan hệ tảng kỹ thuật quan trọng cơng nghiệp máy tính Cho đến nay, nói SQL xem ngôn ngữ chuẩn sở liệu Các hệ quản trị sở liệu quan hệ thương mại có Oracle, SQL Server, Informix, DB2, chọn SQL làm ngôn ngữ cho sản phẩm Vậy thực SQL gì? Tại lại quan trọng hệ quản trị sở liệu? SQL làm nào? Nó sử dụng hệ quản trị sở liệu quan hệ? Nội dung chương cung cấp cho nhìn tổng quan SQL số vấn đề liên quan 1.1 SQL ngôn ngữ sở liệu quan hệ SQL, viết tắt 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ý truy xuất liệu đuợc lưu trữ sở liệu SQL hệ thống ngôn ngữ bao gồm tập câu lệnh sử dụng để tương tác với sở liệu quan hệ Tên gọi ngơn ngữ hỏi có cấu trúc phần làm liên tưởng đến công cụ (ngôn ngữ) dùng để truy xuất liệu sở liệu Thực mà nói, khả SQL vượt xa so với công cụ truy xuất liệu, mục đích ban đầu SQL xây dựng nên truy xuất liệu chức quan trọng SQL sử dụng để điều khiển tất chức mà hệ quản trị sở liệu cung cấp cho người dùng bao gồm: • Định nghĩa liệu: SQL cung cấp khả định nghĩa sở liệu, cấu trúc lưu trữ tổ chức liệu mối quan hệ thành phần liệu • Truy xuất thao tác liệu: Với SQL, người dùng dễ dàng thực thao tác truy xuất, bổ sung, cập nhật loại bỏ liệu sở liệu • Điều khiển truy cập: SQL sử dụng để cấp phát kiểm soát thao tác người sử dụng liệu, đảm bảo an tồn cho sở liệu • Đảm bảo toàn vẹn liệu: SQL định nghĩa ràng buộc tồn vẹn sở liệu nhờ đảm bảo tính hợp lệ xác liệu trước thao tác cập nhật lỗi hệ thống Như vậy, nói SQL ngơn ngữ hồn thiện sử dụng hệ thống sở liệu thành phần thiếu hệ quản trị sở liệu Mặc dù SQL ngơn ngữ lập trình C, C++, Java, song câu lệnh mà SQL cung cấp nhúng vào ngơn ngữ lập trình nhằm xây dựng ứng dụng tương tác với sở liệu Khác với ngơn ngữ lập trình quen thuộc C, C++, Java, SQL ngôn ngữ có tính khai báo Với SQL, người dùng cần mô tả yêu cầu cần phải thực sở liệu mà không cần phải cách thức thực yêu cầu Chính vậy, SQL ngơn ngữ dễ tiếp cận dễ sử dụng 1.2 Vai trò SQL Bản thân SQL hệ quản trị sở liệu, khơng thể tồn độc lập SQL thực phần hệ quản trị sở liệu, xuất hệ quản trị sở liệu với vai trò ngôn ngữ công cụ giao tiếp người sử dụng hệ quản trị sở liệu Trong hầu hết hệ quản trị sở liệu quan hệ, SQL có vai trò sau: • SQL ngơn ngữ hỏi có tính tương tác: Người sử dụng dễ dàng thơng qua trình tiện ích để gởi u cầu dạng câu lệnh SQL đến sở liệu nhận kết trả từ sở liệu • SQL ngơn ngữ lập trình sở liệu: Các lập trình viên nhúng câu lệnh SQL vào ngơn ngữ lập trình để xây dựng nên chương trình ứng dụng giao tiếp với sở liệu • SQL ngơn ngữ quản trị sở liệu: Thông qua SQL, người quản trị sở liệu quản lý sở liệu, định nghĩa cấu trúc lưu trữ liệu, điều khiển truy cập sở liệu, • SQL ngơn ngữ cho hệ thống khách/chủ (client/server): Trong hệ thống sở liệu khách/chủ, SQL sử dụng công cụ để giao tiếp trình ứng dụng phía máy khách với máy chủ sở liệu • SQL ngơn ngữ truy cập liệu Internet: Cho đến nay, hầu hết máy chủ Web máy chủ Internet sử dụng SQL với vai trò ngơn ngữ để tương tác với liệu sở liệu • SQL ngôn ngữ sở liệu phân tán: Đối với hệ quản trị sở liệu phân tán, hệ thống sử dụng SQL để giao tiếp với hệ thống khác mạng, gởi nhận yêu cầu truy xuất liệu với • SQL ngơn ngữ sử dụng cho cổng giao tiếp sở liệu: Trong hệ thống mạng máy tính với nhiều hệ quản trị sở liệu khác nhau, SQL thường sử dụng chuẩn ngôn ngữ để giao tiếp hệ quản trị sở liệu 1.3 Tổng quan sở liệu quan hệ 1.3.1 Mô hình liệu quan hệ Mơ hình liệu quan hệ Codd đề xuất năm 1970 đến trở thành mơ hình sử dụng phổ biến hệ quản trị sở liệu thương mại Nói cách đơn giản, sở liệu quan hệ sở liệu tất liệu tổ chức bảng có mối quan hệ với Mỗi bảng bao gồm dòng cột: dòng gọi ghi (bộ) cột trường (thuộc tính) 1.3.2 Bảng (Table) Như nói trên, sở liệu quan hệ, bảng đối tượng sử dụng để tổ chức lưu trữ liệu Một sở liệu bao gồm nhiều bảng bảng xác định tên bảng Một bảng bao gồm tập dòng cột: dòng bảng biểu diễn cho thực thể (mỗi dòng bảng SINHVIEN tương ứng với sinh viên); cột biểu diễn cho tính chất thực thể (chẳng hạn cột NGAYSINH bảng SINHVIEN biểu diễn cho ngày sinh sinh viên lưu trữ bảng) Như vậy, liên quan đến bảng bao gồm yếu tố sau: • Tên bảng: sử dụng để xác định bảng sở liệu • Cấu trúc bảng: Tập cột bảng Mỗi cột bảng xác định tên cột phải có kiểu liệu (chẳng hạn cột NGAYSINH bảng SINHVIEN hình 1.1 có kiểu DATETIME) Kiểu liệu cột qui định giá trị liệu chấp nhận cột • Dữ liệu bảng: Tập dòng (bản ghi) có bảng 1.3.3 Khố bảng Trong sở liệu thiết kế tốt, bảng phải có một tập cột mà giá trị liệu xác định dòng tập dòng bảng Tập nhiều cột có tính chất gọi khoá bảng Việc chọn khoá bảng có vai trò quan trọng việc thiết kế cài đặt sở liệu quan hệ Các dòng liệu bảng phải có giá trị khác khố Bảng MONHOC hình có khố cột MAMONHOC Một bảng có nhiều tập cột khác có tính chất khố (tức giá trị xác định dòng liệu bảng) Trong trường hợp này, khoá chọn cho bảng gọi khố (primary key) khố lại gọi khoá phụ khoá dự tuyển (candidate key/unique key) 1.3.4 Mối quan hệ khố ngồi Các bảng sở liệu không tồn độc lập mà có mối quan hệ mật thiết với mặt liệu Mối quan hệ thể thông qua ràng buộc giá trị liệu xuất bảng phải có xuất trước bảng khác Mối quan hệ bảng sở liệu nhằm đàm bảo tính đắn hợp lệ liệu sở liệu Mối quan hệ bảng sở liệu thể mối quan hệ thực thể giới thực, mối quan hệ hai bảng LOP KHOA không cho phép lớp tồn mà lại thuộc vào khoa khơng có thật Khái niệm khố ngồi (Foreign Key) sở liệu quan hệ sử dụng để biểu diễn mối quan hệ bảng liệu Một hay tập cột bảng mà giá trị xác định từ khóa bảng khác gọi khố ngồi Cột MAKHOA bảng LOP gọi khố ngồi bảng này, khố ngồi tham chiếu đến khố bảng KHOA cột MAKHOA 1.4 Sơ lược SQL 1.4.1 Câu lệnh SQL SQL chuẩn bao gồm khoảng 40 câu lệnh Trong hệ quản trị sở liệu khác nhau, câu lệnh có dạng mục đích sử dụng song hệ quản trị sở liệu có số thay đổi Điều đơi dẫn đến cú pháp chi tiết câu lệnh khác hệ quản trị cơ sở liệu khác Các câu lệnh SQL chuẩn: Câu lệnh Thao tác liệu Chức SELECT INSERT UPDATE DELETE Truy xuất liệu Bổ sung liệu Cập nhật liệu Xố liệu TRUNCATE Xố tồn liệu bảng Định nghĩa liệu CREATE TABLE Tạo bảng DROP TABLE Xoa bảng ALTER TABLE Sửa đổi bảng CREATE VIEW Tạo khung nhìn ALTER VIEW Sửa đổi khung nhìn DROP VIEW Xố khung nhìn CREATE INDEX Tạo mục DROP INDEX Xoá mục CREATE SCHEMA Tạo lược đồ sở liệu DROP SCHEMA Xoá lược đồ sở liệu CREATE PROCEDURE Tạo thủ tục lưu trữ ALTER PROCEDURE Sửa đổi thủ tục lưư trữ DROP PROCEDURE Xoá thủ tục lưu trữ CREATE FUNCTION Tạo hàm (do người sử dụng định nghĩa) ALTER FUNCTION Sửa đổi hàm DROP FUNCTION Xoá hàm CREATE TRIGGER Tạo trigger ALTER TRIGGER Sửa đổi trigger DROP TRIGGER Xoá trigger Điều khiển truy cập GRANT Cấp phát quyền cho người sử dụng REVOKE Thu hồi quyền từ người sử dụng Quản lý giao tác COMMIT Uỷ thác (kết thúc thành công) giao tác ROLLBACK Quay lui giao tác 67 liệu vấn có khả thực (hiển nhiên cập nhật liệu cột có từ biểu thức tính tốn) Ví dụ 9.6: Xét khung nhìn NV2 định nghĩa sau: CREATE VIEW nv2 AS SELECT manv,hoten,YEAR(ngaysinh) AS namsinh,madv FROM nhanvien Đối với khung nhìn NV2, ta khơng thể thực thao tác bổ sung liệu cập nhật xố liệu bảng thơng qua khung nhìn Câu lệnh khơng thể thực khung nhìn NV2 INSERT INTO nv2(manv,hoten,madv) VALUES('NV05','Le Van E',1) Nhưng câu lệnh: UPDATE nv2 SET hoten='Le Thi X' WHERE manv='NV04' câu lệnh DELETE FROM nv2 WHERE manv='NV04' lại thực có tác động liệu bảng NHANVIEN Trong trường hợp khung nhìn tạo từ phép nối (trong ngồi) nhiều bảng, ta thực thao tác bổ sung cập nhật liệu thao tác có tác động đến bảng sở (câu lệnh DELETE thực trường hợp này) Ví dụ : Với khung nhìn định nghĩa sau: CREATE VIEW nv3 AS SELECT manv,hoten,ngaysinh, diachi,nhanvien.madv AS noilamviec, donvi.madv,tendv,dienthoai FROM nhanvien FULL OUTER JOIN donvi ON nhanvien.madv=donvi.madv Câu lệnh: INSERT INTO nv3(manv,hoten,noilamviec) VALUES('NV05','Le Van E',1) 68 bổ sung thêm vào bảng NHANVIEN ghi Hoặc câu lệnh: INSERT INTO nv3(madv,tendv) VALUES(3,'P Ke toan') bổ sung thêm vào bảng DONVI ghi hai câu lệnh có tác động đến bảng sở Câu lệnh thực có tác động lúc đến hai bảng sở INSERT INTO nv3(manv,hoten,noilamviec,madv,tendv) VALUES('NV05','Le Van E',1,3,'P Ke toan') 8.5 Sửa đổi khung nhìn Câu lệnh ALTER VIEW sử dụng để định nghĩa lại khung nhìn có khơng làm thay đổi quyền cấp phát cho người sử dụng trước Câu lệnh sử dụng tương tự câu lệnh CREATE VIEW có cú pháp sau: ALTER VIEW tên_khung_nhìn [(danh_sách_tên_cột)] AS Câu_lệnh_SELECT Ví dụ : Ta định nghĩa khung nhìn sau: CREATE VIEW viewlop AS SELECT malop,tenlop,tenkhoa FROM lop INNER JOIN khoa ON lop.makhoa=khoa.makhoa WHERE tenkhoa='Khoa Vật lý’ định nghĩa lại khung nhìn câu lệnh: ALTER VIEW view_lop AS SELECT malop,tenlop,hedaotao FROM lop INNER JOIN khoa ON lop.makhoa=khoa.makhoa WHERE tenkhoa='Khoa Cơng nghệ thơng tin' 8.6 Xố khung nhìn Khi khung nhìn khơng sử dụng, ta xố khỏi sở liệu thơng qua câu lệnh: DROP VIEW tên_khung_nhìn 69 Nếu khung nhìn bị xố, tồn quyền cấp phát cho người sử dụng khung nhìn đồng thời bị xố Do đó, ta tạo lại khung nhìn phải tiến hành cấp phát lại quyền cho người sử dụng Ví dụ : Câu lệnh xố khung nhìn VIEW_LOP khỏi sở liệu DROP VIEW view_lop 70 Bài THIẾT KẾ CƠ SỞ DỮ LIỆU Mục tiêu: - Thiết tạo CSDL; - Xây dựng mơ hình CSDL; - Backup restore CSDL - Thực thao tác an tồn với máy tính Nội dung chính: 9.1 Cấu Trúc Của SQL Server Như trình bày trước đặc điểm SQL Server 2000 Multiple-Instance nên nói đến (SQL) Server ta nói đến Instance SQL Server 2000, thơng thường Default Instance Một Instance SQL Server 2000 có system databases hay nhiều user database Các system databases bao gồm: • Master : Chứa tất thông tin cấp hệ thống (system-level information) bao gồm thông tin database khác hệ thống vị trí data files, login account thiết đặt cấu hình hệ thống SQL Server (system configuration settings) • Tempdb : Chứa tất table hay stored procedure tạm thời tạo trình làm việc user hay thân SQL Server engine Các table hay stored procedure biến khởi động lại SQL Server hay ta disconnect • Model : Database đóng vai trò bảng kẻm (template) cho database khác Nghĩa user database tạo SQL Server copy tồn system objects (tables, stored procedures ) từ Model database sang database vừa tạo • Msdb : Database SQL Server Agent sử dụng để hoạch định báo động công việc cần làm (schedule alerts and jobs) 9.2 Cấu Trúc Vật Lý Của Một SQL Server Database Mỗi database SQL Server chứa data file (primary), có thêm hay nhiều data file phụ (Secondary) transaction log file • Primary data file (thường có phần mở rộng mdf) : file chứa data system tables • Secondary data file (thường có phần mở rộng ndf) : file phụ thường sử dụng database phân chia để chứa nhiều dĩa 71 • Transaction log file (thường có phần mở rộng ldf) : file ghi lại tất thay đổi diễn database chứa đầy đủ thơng tin để roll back hay roll forward cần Data SQL Server chứa thành Page 8KB page liên tục tạo thành Extent Trước SQL Server muốn lưu data vào table cần phải dành riêng khoảng trống data file cho table Những khoảng trống extents Có loại Extents: Mixed Extents (loại hỗn hợp) dùng để chứa data nhiều tables Extent Uniform Extent (loại nhất) dùng để chứa data table Ðầu tiên SQL Server dành Page Mixed Extent để chứa data cho table sau data tăng trưởng SQL dành hẳn Uniform Extent cho table 9.3 Nguyên Tắc Hoạt Ðộng Của Transaction Log Trong SQL Server Transaction log file SQL Server dùng để ghi lại thay đổi xảy database Quá trình diễn sau: có thay đổi data Insert, Update, Delete yêu cầu từ ứng dụng, SQL Server tải (load) data page tương ứng lên memory (vùng nhớ gọi data cache), sau data data cache thay đổi(những trang bị thay đổi gọi dirtypage) Tiếp theo thay đổi ghi vào transaction log file người ta gọi write-ahead log Cuối trình gọi Check Point Process kiểm tra viết tất transaction commited (hoàn tất) vào dĩa cứng (flushing the page) Ngoài Check Point Process dirty-page đưa vào dĩa Lazy writer Ðây anh chàng làm việc âm thầm thức giấc quét qua phần data cache theo chu kỳ định sau lại ngủ yên chờ lần quét tới Xin giải thích thêm chút khái niệm transaction database Một transaction hay giao dịch loạt hoạt động xảy xem công việc đơn (unit of work) nghĩa thành cơng tồn khơng làm (all or nothing) Sau Ví dụ cổ điển transaction: Chúng ta muốn chuyển số tiền $500 từ account A sang account B công việc cần làm bước sau: Trừ $500 từ account A Cộng $500 vào account B Tuy nhiên việc chuyển tiền phải thực dạng transaction nghĩa giao dịch xem hoàn tất (commited) hai bước thực thành cơng Nếu lý ta thực bước (chẳng hạn vừa xong bước điện cúp hay máy bị treo) 72 xem giao dịch khơng hồn tất cần phải phục hồi lại trạng thái ban đầu (roll back) Thế Check Point Process hoạt động để đảm bảo transaction thực thi mà không làm "dơ" database Trong hình vẽ trên, transaction biểu diễn mũi tên Trục nằm ngang trục thời gian Giả sử Check Point đánh dấu vào thời điểm transaction hình vẽ sau cố xãy trước gặp Check point Như SQL Server restart dựa ghi transaction log file để phục hồi data (xem hình vẽ) Ðiều có nghĩa SQL Server khơng cần làm transaction thời điểm Check point data lưu vào dĩa Trong transaction roll forward commited cố xảy trước thời điểm check point nên data chưa kịp lưu vào dĩa Tức dựa thông tin ghi log file SQL Server hồn tồn có đầy đủ sở để viết vào dĩa cứng Còn transaction chưa commited (do bị down bất ngờ) SQL Server roll back hai transaction dựa ghi log file 9.4 Cấu Trúc Logic Của Một SQL Server Database 73 Hầu thứ SQL Server tổ chức thành objects ví dụ tables, views, stored procedures, indexes, constraints Những system objects SQL Server thường có bắt đầu chữ sys hay sp Các objects nghiên cứu sau phần bàn sơ qua số system object thông dụng SQL Server database mà Một số Sytem objects thường dùng: System Stored Procedure Ứng dụng Cung cấp thông tin database object (table, view ) Sp_help ['object'] hay data type Sp_helpdb ['database'] Cung cấp thơng tin database cụ thể Sp_monitor Cho biết độ bận rộn SQL Server Sp_spaceused ['object', Cung cấp thông tin khoảng trống sử dụng 'updateusage' ] cho object Sp_who ['login'] Cho biết thông tin SQL Server user 9.5 Tạo Một User Database Chúng ta tạo database dễ dàng dùng SQL Server Enterprise cách right-click lên "database" chọn "New Database" Ngoài dùng SQL script để tạo database Khi ta phải rõ vị trí primary data file transaction log file Ví dụ: USE master GO CREATE DATABASE Products ON ( NAME = prods_dat, FILENAME server\mssql\data\prods.mdf', SIZE = 4, MAXSIZE = 10, FILEGROWTH = ) GO = 'c:\program files\microsoft SQL 74 Trong Ví dụ ta tạo database tên Products với logical file name prods_dat physical file name prods.mdf, kích thước ban đầu MB data file tự động tăng lên lần MB tối đa 10 MB Nếu ta khơng định transaction log file SQL tự động tạo log file với kích thước ban đầu MB Lưu Ý: Khi tạo database phải lưu ý số điểm sau: Ðối với hệ thống nhỏ mà vấn đề tốc độ server khơng thuộc loại nhạy cảm thường chọn giá trị mặc định (default) cho Initial size, Automatically growth file Nhưng số production server hệ thống lớn kích thước database phải người DBA ước lượng trước tùy theo tầm cỡ business, thông thường người ta không chọn Autogrowth(tự động tăng trưởng) Autoshrink(tự động nén) Câu hỏi đặt ta khơng để SQL Server chọn giá trị khởi đầu cho datafile sau cần tự động nới rộng mà lại phải ước lượng trước? Nguyên nhân chọn Autogrowth (hay Autoshrink) gặp vấn đề sau: • Performance hit: Ảnh hưởng đáng kể đến khả làm việc SQL Server Do phải thường xuyên kiểm tra xem có đủ khoảng trống cần thiết hay khơng khơng đủ phải mở rộng cách dành thêm khoảng trống từ dĩa cứng q trình làm chậm hoạt động SQL Server • Disk fragmentation : Việc mở rộng làm cho data không liên tục mà chứa nhiều nơi khác dĩa cứng điều gây ảnh hưởng lên tốc độ làm việc SQL Server Trong hệ thống lớn người ta dự đốn trước kích thước database cách tính tốn kích thước tables, kích thước ước đốn mà thơi (xin xem "Estimating the size of a database" SQL Books Online để biết thêm cách tính) sau thường xun dùng số câu lệnh SQL (thường dùng câu lệnh bắt đầu DBCC Phần bàn qua sau) kiểm tra xem có đủ khoảng trống hay khơng khơng đủ ta chọn thời điểm mà SQL server bận rộn (như ban đêm hay sau làm việc) để nới rộng data file không làm ảnh hưởng tới performance Server Chú ý giả sử ta dành sẵn GB cho datafile, dùng Window Explorer để xem ta thấy kích thước file GB data thực tế chiếm vài chục MB mà 9.6 Những Ðiểm Cần Lưu Ý Khi Thiết Kế Một Database Trong phạm vi nói sâu lý thuyết thiết kế database mà đưa vài lời khuyên mà bạn nên tuân theo thiết kế 75 Trước hết bạn phải nắm vững loại data type Ví dụ bạn phải biết rõ khác biệt char(10), nchar(10) varchar(10), nvarchar(10) Loại liệu Char loại string có kích thước cố định nghĩa Ví dụ data đưa vào "This is a really long character string" (lớn 10 ký tự) SQL Server tự động cắt phần ta "This is a" Tương tự string đưa vào nhỏ 10 SQL thêm khoảng trống vào phía sau cho đủ 10 ký tự Ngược lại loại varchar khơng thêm khoảng trống phía sau string đưa vào 10 Còn loại data bắt đầu chữ n chứa liệu dạng unicode Một lưu ý khác SQL Server ta có loại Integer : tinyint, smallint, int, bigint Trong kích thước loại tương ứng 1,2,4,8 bytes Nghĩa loại smallint tương đương với Integer loại int tương đương với Long VB Khi thiết kế table nên: • Có cột thuộc loại ID dùng để xác định record dễ dàng • Chỉ chứa data entity (một thực thể) Ngoài điều quan trọng phải biết rõ quan hệ (Relationship) table: • One-to-One Relationships : mối quan hệ hàng bên table A liên kết với hàng bên table B ngược lại • One-to-Many Relationships : mối quan hệ hàng bên table A liên kết với nhiều hàng bên table B • Many-to-Many Relationships : mối quan hệ hàng bên table A liên kết với nhiều hàng bên table B hàng bên table B liên kết với nhiều hàng bên table A Như ta thấy Ví dụ sách viết nhiều tác giả tác giả viết nhiều sách Do mối quan hệ Books Authors quan hệ Many to Many Trong trường hợp người ta thường dùng table trung gian để giải vấn đề (table AuthorBook) Ðể có database tương đối hoàn hảo nghĩa thiết kế cho data chứa database không thừa không thiếu bạn cần biết thêm thủ thuật Normalization Tuy nhiên phạm vi khóa học chúng tơi khơng muốn bàn sâu đề tài này, bạn xem thêm sách dạy lý thuyết sở liệu Tóm lại tìm hiểu cấu trúc SQL Server database số vấn đề cần biết thiết kế database 9.7 tập CÁC THUẬT NGỮ CHUYÊN MÔN Thuật ngữ Database Giải thích Cơ sở liệu TÀI LIỆU THAM KHẢO Tiếng Việt [1] Phạm Hữu Khang, Lập trình ứng dụng chuyên nghiệp SQL Server, Nhà xuất Lao động xã hội, 2003 [2] Microsoft SQL Server 2005 Book Online [3] Đỗ Phúc, Tài liệu môn học CSDL nâng cao , Đại học Công nghệ thông tin, Đại học Quốc gia Tp HCM, 2006 [4] Trần Đức Quang, Nguyên lý hệ sở liệu phân, Nhà xuất Thống kê, tập 2, 1999 [5] Phạm Thế Quế, Giáo trình sở liệu phân tán, Học viên cơng nghệ bưu viễn thơng, 2010 [6] Lê Văn Sơn, Giáo trình Hệ tin học phân tán cho học viên Cao học CNTT, Đại học Đà Nẵng, Đà Nẵng, 1999 [7] Lê Văn Sơn, Hệ tin học phân tán, Nhà xuất đại học quốc gia TP HCM, 2002 [8] Nguyễn Bá Tường, Nhập môn sở liệu phân tán, Nhà xuất Khoa học Kỹ thuật, 2005 [9] Trần Quốc Chiến, Giáo trình sở liệu nâng cao, Đại học Đà Nẵng, 2007 Tiếng Anh [10] M.Tamer Ozsu and Patrick Vaduries, Principles of Distributed Database System, Frentice-Hall, 2006 Trang Web [11] http://www.lirc.udn.vn/ [12] http://msdn.microsoft.com DANH SÁCH BAN BIÊN SOẠN GIÁO TRÌNH DẠY NGHỀ TRÌNH ĐỘ TRUNG CẤP, CAO ĐẲNG Tên giáo trình: QUẢN TRỊ CƠ SỞ DỮ LIỆU NÂNG CAO Tên nghề: QUẢN TRỊ MẠNG Ông (bà) Ông (bà) Ông (bà) Ông (bà) Ông(bà) Ông(bà) Ông(bà) Ông(bà) Ơng(bà) Chủ nhiệm Phó chủ nhiệm Thư ký Thành viên Thành viên Thành viên Thành viên Thành viên Thành viên DANH SÁCH HỘI ĐỒNG NGHIỆM THU GIÁO TRÌNH DẠY NGHỀ TRÌNH ĐỘ TRUNG CẤP, CAO ĐẲNG Ơng (bà) Ông (bà) Ông (bà) Ông (bà) Ông(bà) Ông(bà) Ông(bà) Ông(bà) Ông(bà) Chủ tịch Phó chủ tịch Thư ký Thành viên Thành viên Thành viên Thành viên Thành viên Thành viên Phụ lục 3.2 CÁC TIÊU CHÍ VÀ TIÊU CHUẨN ĐÁNH GIÁ CHẤT LƯỢNG GIÁO TRÌNH DẠY NGHỀ TRÌNH ĐỘ TRUNG CẤP VÀ CAO ĐẲNG Số TT A 2* 3* 4* B 5* 6* 7* 8* Các tiêu chí đánh giá Sự tương ứng với chương trình Giáo trình có đủ đề mục thể nội dung theo mẫu định dạng Giáo trình có đầy đủ nội dung theo chương trình chi tiết mơ đun chương trình đào tạo Nội dung chương/bài đảm bảo mục tiêu kiến thức, kỹ đề không? Khối lượng thông tin mô đun có phù hợp với thời lượng chương trình khơng? Tính logíc Nội dung chương/bài có trình bày cách logic với q trình nhân thức khơng? (tức là: Mức độ từ dễ đến khó, tính trình tự cho khái niệm từ đơn giản đến phức tạp) Các bước hình thành kỹ có hợp lý vừa phải không? (tức quan sát mẫu - bắt trước - làm - làm độc lập - làm thục theo đường xoắn ốc để hình thành kỹ xảo) Mối quan hệ lý thuyết thực hành có hợp lý để bảo đảm nhận thức kiến thức, hình thành kỹ khơng? Hình thức học tập giải pháp Mức độ đánh giá Đạt Đạt yêu yêu cầu cầu đề nghị ban phải hành chỉnh sửa Chưa đạt yêu cầu Ghi phải xây dựng lại C 9* 10* 11* 12 13 D 14 15 E 16 17 18 sư phạm cho chủ đề có thích hợp so với mục tiêu đề không? Mức đầy đủ/bao quát mục tiêu Nội dung có đầy đủ để đảm bảo đào tạo có kết theo mục tiêu thực khơng Nội dung có nhấn mạnh để rèn luyện, hình thành kỹ cần thiết khơng? (Tức có quy trình rèn luyện/thực hành bao gồm khía cạnh khác như: tinh thần trách nhiệm, tuân thủ kỷ luật, ý thức an tồn, ứng xử nhóm, tác phong cơng nghiệp…) Các cấu phần tạo chủ động học tích cực có đầy đủ khơng? (tức đủ mục: Giới thiệu, hướng dẫn, tự đánh giá, giải thích thuật ngữ, tài liệu tham khảo…) Có vận dụng hỗ trợ trang thiết bị, nguồn học liệu, nguồn l;ực khác cho trình học tập học viên không? Các hành ảnh minh họa, bảng biểu, vẽ, quy trình thực hiện…có đủ mức cần thiết, rõ ràng ăn nhập với đoạn viết không? Tính chuẩn xác Nội dung khoa học thơng tin có xác khơng? (về chất vấn đề, số liệu, kiện đường nét…được đề cập đoạn viêt, bảng biểu hình minh họa, vẽ ) Các thuật ngũ có đảm bảo tính phổ thơng qn khơng? Phong cách biên soạn Ý tứ trình bày rõ ràng, sáng sủa, đơn giản dễ hiểu không? Cân đối phù hợp kênh hình kênh chữ Có vi phạm văn hóa tập qn 19 20 F 21 22 23 dân tộc Việt Nam khơng? Có sai phạm Luật quyền khơng? Phong cách trình bày tính gợi mở, lôi kéo người học thực công việc không? Cấu trúc chuyên mục Bố cục có qn tồn tài liệu khơng? Mối liên hệ chuyên mục có chặt chẽ tương ứng với không? (đặc biệt mục tiêu, kiểm tra đánh giá hướng dẫn trả lời) Mã chun mục, hình vẽ, bảng biểu, vẽ…có qn xác tạo điều kiện thuận lợi cho việc tìm kiếm liên hệ Ghi chú: Các tiêu chí có đánh dấu * có ý nghĩa quan trọng chất lượng giáo trình biên soạn Các mức độ đánh giá: - Đạt yêu cầu: Khơng phải sửa chữa cần sửa chữa vài lỗi nhỏ biên tập; - Đạt yêu cầu phải chỉnh sửa: Phải sửa chữa số lỗi nội dung chuyên môn biên tập, chỉnh lý, bổ sung; sau trình chủ tịch, phó chủ tịch thư ký hội đồng xem xét, thông qua đạt yêu cầu đề nghị phê duyệt; - Khơng đạt u cầu: Có nhiều lỗi nội dung chuyên môn biên tập, phải biên soạn lại để trình Hội đồng thẩm định lại ... chương mục /bài Bài Giới thiệu lịch sử phát triển Bài Các thành phần SQL server Bài Giới thiệu số công cụ SQL server Bài Phát biểu T -SQL Bài Tạo sửa đổi bảng liệu Bài Khóa ràng buộc liệu Bài Chuẩn... xem xét thành phần SQL Server, Kiểu liệu, loại liệu quan hệ 2.2 Các thành phần cấu thành SQL Server RDBMS SQL SERVER chứa dựng nhiều đối tượng bao gồm : • Database : sở liệu SQL SERVER • Tập tin... xem thêm thành phần khác SQL Server giới thiệu sau SQL Server Books Online khơng có loạt nói rõ dịch vụ 3.8 SQL Server Books Online : Cho dù bạn có đọc sách khác dạy SQL server bạn thấy books online
- Xem thêm -

Xem thêm: Bài Giảng SQL server, Bài Giảng SQL server

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay