Tài liệu môn hệ quản trị cơ sở dữ liệu
ĐẠI HỌC TÂY NGUYÊN KHOA KHTN – CN BỘ MÔN TIN HỌC BÀI GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU NGƯỜI VIẾT ThS. Trương Hải BÀI GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 2 DakLak, tháng 03 năm 2012 MỤC LỤC MỤC LỤC 3 PHẦN 1. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 4 I. MỘT SỐ KHÁI NIỆM 4 II. CÁC MÔ HÌNH DỮ LIỆU: 4 III. CÁCH NHÌN VÀ TÍNH ĐỘC LẬP DỮ LIỆU 5 IV. THÀNH PHẦN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 6 V. PHÂN LOẠI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 6 VI. NGÔN NGỮ CƠ SỞ DỮ LIỆU 6 PHẦN 2. HỆ QUẢN TRỊ CSDL SQL SERVER 2005 7 I. TỔNG QUAN 7 II. CÀI ĐẶT SQL SERVER 2005 7 III. QUẢN LÝ CÁC DỊCH VỤ SQL SERVER 12 IV. TẠO CƠ SỞ DỮ LIỆU 15 V. TẠO BẢNG 17 VI. TẠO VIEW 30 1. Giới thiệu T-SQL: 30 Lệnh SQL: 39 VII. QUẢN LÝ STORED PROCEDURE 40 Tạo mới Stored Procedure 40 Hiệu chỉnh Stored Procedure 41 1.VIII. QUẢN LÝ TRIGGER 43 Tạo mới trigger 43 IX. SỬ DỤNG FUNCTION 46 X. SAO LƯU VÀ KHÔI PHỤC DỮ LIỆU 51 1. Sao lưu dữ liệu 51 2. Phục hồi dữ liệu 52 XI. QUẢN LÝ BẢO MẬT NGƯỜI DÙNG 54 1. Tạo (thay đổi) tài khoản đăng nhập trong SQL 54 2. Thêm người dùng vào CSDL 55 3. Thay đổi quyền thực thi CSDL 56 4. Thay đổi quyền người dùng 56 PHẦN 3: BÀI THỰC HÀNH SQL SERVER 2005 59 BÀI GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 4 PHẦN 1. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU I. MỘT SỐ KHÁI NIỆM 1. Dữ liệu (data): là khả năng lượng hóa sự vật và hiện tượng để lưu trữ. 2. Thông tin (information): là sự hiểu biết khi xử lý dữ liệu. 3. Hệ thống file (file system): hay hệ thống quản lý file, là hệ thống đảm bảo quản lý các tập tin (chức năng của hệ điều hành) gồm các công việc: tạo, xóa, lưu trữ, quản lý tập tin. Các nhược điểm của hệ thống file: • Phụ thưộc vào dữ liệu và vào chương trình. • Dữ liệu trùng lặp nhiều nơi. • Hạn chế việc dùng chung và chia sẻ dữ liệu. • Tốn thời gian để phát triển hệ thống. (khó kế thừa khi có nhu cầu phát triển hệ thống) • Tính an toàn dữ liệu không cao và tốn kém. 4. Cơ sở dữ liệu (CSDL/DB: DataBase): là tập hợp có tổ chức các dữ liệu liên quan với nhau về mặt logic. 5. Hệ thống cơ sở dữ liệu (DataBase System): là tập hợp các CSDL trong hệ thống. 6. Hệ quản trị cơ sở dữ liệu (HQTCSDL/DBMS: DataBase Management System): là hệ thống phần mềm ứng dụng dùng để tạo mới, bảo trì, và đảm bảo truy cập có điều khiển đến các CSDL của người dùng. Bao gồm các chức năng sau: • Quản lý người sử dụng: thêm, bớt, quản lý quyền truy cập CSDL. • Quản lý CSDL: tạo, xóa, thay đổi CSDL. • Đảm bảo tính an toàn CSDL: Lưu trữ, phục hồi CSDL khi có sự cố. • Đảm bảo tính ràng buột toàn vẹn CSDL. 7. Quản trị cơ sở dữ liệu (SA: System Administrator/DataBase Management): là người có quyền phát triển cơ sở dữ liệu trong hệ thống. 8. Dữ liệu meta (Metadata): là dữ liệu mô tả các thuộc tính hay các đặc tính của các dữ liệu khác. 9. Kho dữ liệu (datawarehouse): là cơ sở dữ liệu trợ giúp quyết định tích hợp, bao gồm thông tin trích từ các cơ sở dữ liệu khác. II. CÁC MÔ HÌNH DỮ LIỆU: Là khả năng mô tả và thể hiện CSDL bằng mô hình logic. Gồm có các mô hình dữ liệu sau: • Mô hình phân cấp: Thể hiện CSDL dưới dạng cây, trong đó các nút biểu diễn các tập thực thể, giữa nút con và nút cha được liên hệ theo mối quan hệ xác định. Mô hình này phát triển vào những năm 1960-1970. • Mô hình mạng: Mô hình mô tả CSDL dưới dạng đồ thị có hướng, phát triển những năm 1970-1980. • Mô hình quan hệ: Mô hình này đựa trên cơ sở khái niệm lý thuyết tập hợp các quan hệ. CSDL quan hệ được xây dựng theo lý thuyết do E. F. Codd giới thiệu năm 1970, và từ những năm 1980 đã trở thành mô hình được sử dụng rộng rãi để phát triển hệ quản trị CSDL. Theo mô hình quan hệ, dữ liệu được thể hiện trong bảng hai chiều, gồm các cột và dòng. Các bảng gọi là các quan hệ, các cột gọi là các thuộc tính, các dòng gọi là các bộ, hay là bản ghi, các thuộc tính cho biết ý nghĩa của bản ghi. • Mô hình dữ liệu hướng đối tượng: thể hiện CSDL gồm tập các “lớp”. Mỗi lớp có nhiều đối tượng (Mỗi đối tượng cụ thể gọi là thể hiện), mỗi lớp có các thuộc tính và phương thức xử lý để có thể thay đổi các thuộc tính của lớp đó. Hướng tiếp cận CSDL hướng đối tượng sẽ mô tả chân thực hơn về thế giới thực, phổ biến vào đầu những năm 1990, nhưng đến nay vẫn chưa có nhiều CSDL thuộc loại này. 5 PHẦN 3: BÀI THỰC HÀNH SQL SERVER 2005 III. CÁCH NHÌN VÀ TÍNH ĐỘC LẬP DỮ LIỆU Tính hiệu quả của hệ thống đòi hỏi phải thiết kế các cấu trúc dữ liệu phức tạp để biểu diễn dữ liệu trong CSDL. Các nhà phát triển che dấu sự tphức tạp này thông qua các mức trừu tượng nhằm đơn giản sự trao đổi giữa người dùng và hệ thống: • Mức vật lý (Physical level): Mức thấp nhất của sự trừu tượng, mô tả dữ liệu hiện tại được lưu trữ như thế nào. Cấu trúc phức tạp được mô tả chi tiết. • Mức logic (Logical level): Mức kế tiếp cao hơn về sự trừu tượng, mô tả loại dữ liệu và mối quan hệ giữa các loại dữ liệu. • Mức view (View level): Mức cao nhất của sự trừu tượng, mô tả một phần của dữ liệu tổng thể. Một CSDL có thể có nhiều mức view cho nhiều người sử dụng khác nhau. Người ta sử dụng CSDL để tạo nên môi trường cho phép nhiều người sử dụng cùng truy cập vào các dữ liệu dùng chung. Dữ liệu không gắn chặt vào một ứng dụng nào, cũng không bị một ứng dụng nào điều khiển. Điều này đạt được là do người ta đã chia việc quản lý dữ liệu theo nhiều tầng độc lập, cụ thể là trách nhiệm tạo và bảo trì dữ liệu lưu trữ do phần mềm đặt biệt quản lý, đó là hệ quản trị cơ sở dữ liệu. Mức View Cơ chế lưu trữ để dễ truy cập Bộ nhớ ngoài Hệ CSDL CSDL1 (Tên, vị trí, người dùng ) Table 1 (Vị trí, kích thước, ) Field 1 (Type1, size1 ) Field 2 (Type2, size2 ) Field 3 (Type3, size3 ) Table 2 (Vị trí, kích thước, ) Field 1 (Type1, size1 ) Field 2 (Type2, size2 ) Field 3 (Type3, size3 ) CSDL2 (Tên, vị trí, người dùng ) Table 1 (Vị trí, kích thước, ) Field 1 (Type1, size1 ) Field 2 (Type2, size2 ) Field 3 (Type3, size3 ) Table 2 (Vị trí, kích thước, ) Field 1 (Type1, size1 ) Field 2 (Type2, size2 ) Field 3 (Type3, size3 ) Mức vật lý CSDL1 Table1 (Field1, field2) Table2 (Field1, field2) CSDL2 Table1 (Field1, field2) Table2 (Field1, field2) Mức logic View1 CSDL1(Table1.Field1, Table2.field1) View2 CSDL1(Table1.Field1, Table1.field2) BÀI GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 6 Tính độc lập dữ liệu: Việc tách mô tả dữ liệu ra khỏi chương trình ứng dụng sử dụng dữ liệu đó được gọi là tính độc lập dữ liệu. Có 2 loại độc lập dữ liệu sau: • Độc lập dữ liệu vật lý: Là khả năng sửa đổi sơ đồ dữ liệu vật lý (nơi lưu trữ, phương thức truy xuất, ) mà không làm cho chương trình ứng dụng phải viết lại. tính độc lập dữ liệu vật lý phụ thuộc vào chất lượng của HQTCSDL. • Độc lập dữ liệu logic: là khả năng sửa đổi sơ đồ dữ liệu luận lý (thêm bớt thuộc tính, thay đổi kiểu dữ liệu ) không làm cho chương trình ứng dụng phải viết lại. Tính độc lập ở mức logic phụ thuộc vào thiết kế CSDL. IV. THÀNH PHẦN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Dựa theo chức năng và có thể xem HQTCSDL được cấu tạo từ ba thành phần: Giao diện dữ liệu, giao diện người sử dụng và giao diện lập trình. 1. Giao diện dữ liệu: là tập các chương trình cấp thấp có nhiệm vụ tổ chức CSDL. Hiệu suất của HQTCSDL hoàn toàn phụ thuộc vào giao diện dữ liệu. 2. Giao diện người sử dụng: Cung cấp giao diện đơn giản, hiệu quả cho người sử dụng giao tiếp với CSDL. 3. Giao diện người lập trình: Là sự tích hợp NNLT trong HQTCSDL V. PHÂN LOẠI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 1. HQTCSDL cá nhân: phát triển trên nền máy tính cá nhân như Foxpro, Access 2. HQTCSDL tập trung: phát triển trên nền tảng mạng máy tính như DB2, Inter Base, SQL Server, Oracle 3. HQTCSDL phân tán: phát triển trên nền tảng mạng máy tính, CSDL được lưu trữ phân mãnh nhiều nơi nhưng dưới sự điều khiển của HQTCSDL phân tán thì đối với ứng dụng vẫn thấy được sự tập trung CSDL. VI. NGÔN NGỮ CƠ SỞ DỮ LIỆU Một HQTCSDL cung cấp hai kiểu ngôn ngữ khác nhau để tương tác với CSDL: • Một là ngôn ngữ định nghĩa dữ liệu (Data Definition Language: DDL) cho phép xác lập lược đồ dữ liệu (Tạo các Table ). • Hai là ngôn ngữ thao tác dữ liệu (Data Manipulation Language: DML) là ngôn ngữ cho phép người sử dụng truy xuất hoặc thao tác CSDL. Hệ quản trị CSDL CSDL dùng chung Ứng dụng 1 Người dùng Người dùng Ứng dụng 2 Người dùng Người dùng Ứng dụng 3 Người dùng 7 PHẦN 3: BÀI THỰC HÀNH SQL SERVER 2005 PHẦN 2. HỆ QUẢN TRỊ CSDL SQL SERVER 2005 I. TỔNG QUAN Microsoft SQL Server 2005 là một HQTCSDL quan hệ, tổ chức dữ liệu bằng cách lưu chúng vào bảng, giữa các bảng có mối liên hệ với nhau. Là HQTCSDL có khả năng lưu trữ số lượng lớn dữ liệu và hỗ trợ việc cho phép nhiều người sử dụng truy cập đồng thời. Hệ thống SQL Server 2005 là hệ thống khách/chủ (client/server), có thể chạy tốt trên hệ thống mạng LAN (Windows) hay trên máy PC. 1. Các thành phần chính của Server: Phần Server gồm các dịch vụ sau: • SQL Server: là cơ cấu CSDL chính, mặc nhiên thì dịch vụ này được chọn. • SQL Server Agent: Điều khiển các tác vụ tự động. 2. Các thành phần chính của Client: • Enterprise Manager: Công cụ quản trị CSDL server chính. • SQL Query Analyzer: Công cụ quản lý T-SQL. II. CÀI ĐẶT SQL SERVER 2005 1.Chạy tập tin \Setup.exe • Đánh dấu mục I accept the licensing terms and conditions rồi chọn Next để được hình sau 2. Chọn Install BÀI GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 8 3. chọn Next 9 PHẦN 3: BÀI THỰC HÀNH SQL SERVER 2005 Chọn Advanced • Tiếp tục chọn Next BÀI GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 10 • Tiếp tục chọn Next sau khi đã nhập và ghi nhớ mật khẩu cho SA (Windows Authentication Mode: Sử dụng quyền truy cập của Windows; Mixed Mode: Dùng quyền truy cập của Windows hoặc của SQL Server) [...]... một giá trị phù hợp được chọn (chức năng gần giống với hàm IF trong Excel, nhưng khác với hàm IF ở chỗ biểu thức CASE ở đây cho phép chọn 1 trong nhiều giá trị) CASE biểu thức lựa chọn WHEN giá trị 1 THEN giá trị trả về 1 WHEN giá trị 2 THEN giá trị trả về 2 WHEN giá trị 3 THEN giá trị trả về 3 WHEN giá trị n THEN giá trị trả về n [ESLE giá trị trả về khác] END BÀI GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 32... nối và quản lý điều khiển SQL Server SQL Server Management Studio là công cụ hoàn hảo để quản lý SQL Server, với các tác vụ sau: • • • • Cấu hình Server cục bộ và từ xa Thiết lập bảo mật đăng nhập, thêm người dùng, người quản trị hệ thống Quản lý các tác vụ tự động Quản trị CSDL Thực hiện lệnh Start/Programs/Microsoft SQL Server2005/ SQL Server Management Studio BÀI GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Ta... @level2name=N'DiemMax' BÀI GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 30 VI TẠO VIEW 1 Giới thiệu T-SQL: SQL là ngôn ngữ truy vấn CSDL dùng để truy cập,cập nhật thông tin SQL được chia làm 2 nhóm: DDL : ngôn ngữ định nghĩa dữ liệu, DML : ngôn ngữ tương tác dữ liệu DDL: gồm các phát biểu: CREATE TABLE, DROP TABLE, ALTER TABLE DML: gồm có các phát biểu cập nhật dữ liệu: INSERT, UPDATE, DELETE và phát biểu truy vấn dữ liệu: SELECT... hình cài đặt Các hàm hệ thống thông dụng được liệt kê như sau : db_id ( database_name ) : Mã số định danh cơ sở dữ liệu db_name (database_id ) : Tên cơ sở dữ liệu host_id() : Số định danh của trạm làm việc host_name() : Tên trạm làm việc isnull (expr , value) : Giá trị Value thay thế nếu expr có giá trị Null object_id ( ' object_name ' ) : Số định danh của đối tượng cơ sở dữ liệu object_name ( ' object_id... gì? • Có các trường (field, cột) nào? • Trường này dùng lưu trữ cái gì? Thuộc loại dữ liệu nào?độ dài bao nhiêu? Cho phép null hay không? Có duy nhất hay không? Có ràng buộc nào không? BÀI GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 18 Trong SQL Server 2005 có các kiểu dữ liệu thường được sử dụng (Tùy mục đích) như sau: Kiểu dữ liệu Mô tả Kích thước bigint Integer (whole number) data from -2^63 (-9223372036854775808)... có tên biến và kiểu dữ liệu tương ứng Tên biến bắt đầu bởi ký hiệu @ và phải tuân thủ quy tắc đặt tên của T-SQL Ví dụ: Declare @Lastname varchar(20) hoặc nhiều biến trên một dòng Declare @a int, @b int, @c int b Gán giá trị cho biến: Để gán giá trị cho biến ta có thể sử dụng từ khoá Set Ví dụ: Set @a=2 Với mỗi từ khoá Set chỉ cho phép gán giá trị cho một biến Nếu muốn gán giá trị cho nhiều biến một... tượng cơ sở dữ liệu suser_sid ( ' login_name ' ) : Số định danh bảo mật sid đối với tên đăng nhập của người sử dụng suser_id ( ' login_name ' ) : Số định danh đăng nhập người dùng suser_sname ( server_user_id ) : Trả về tên định danh đăng nhập từ số định danh bảo mật của người sử dụng suser_name ( server_user_id ) : Tên định danh đăng nhập của người sử dụng user_id (user_name ) : Số định danh cơ sở dữ liệu. .. hợp tất cả những người sử dụng của server Kích phải chuột lên mục Databases rồi chọn New Database BÀI GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 16 Nhập tên CSDL mới vào hộp Name (12345) Chọn OK để kết thúc Ta có được CSDL mới chỉ có tên như sau: CSDL mới tạo có đầy đủ các thành phần quan trọng như sau: Diagrams: Là lược đồ mô hình dữ liệu của CSDL Là cái nhìn trực quan giữa các Table và mối quan hệ giữa chúng Tables:... ) Trả về kết quả giá trị ngày là 15 BÀI GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 34 d/ Các hàm toán học trong SQL abs (num_expr) : Giá trị tuyệt đối của một số Ví dụ : select abs(- 43) Kết quả trả về là : 43 floor (num_expr) : Số nguyên lớn nhất nhỏ hơn hoặc bằng giá trị Ví dụ : select floor ( 43,5 ) Kết quả trả về là : 43 ceiling (num_expr) : Số nguyên lớn nhất lớn hơn hoặc bằng giá trị Ví dụ : select ceiling... tròn giá trị số trong biểu thức Ví dụ : select round ( 43.54321 , 1 ) Kết quả trả về là : 43.5 sign (num_expr ) : Trả về giá trị +1 cho số dương và - 1 cho số âm và 0 cho số 0 Ví dụ : select sign ( - 43 ) Trả về giá trị là : - 1 Sqrt ( float_expr ) : Trả về giá trị căn bậc 2 của biểu thức Vi dụ : select sqrt(9) Kết quả trả về là : 3 e/ Các hàm hệ thống trong SQL Các hàm hệ thống trả về thông tin cơ bản . HÌNH DỮ LIỆU: 4 III. CÁCH NHÌN VÀ TÍNH ĐỘC LẬP DỮ LIỆU 5 IV. THÀNH PHẦN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 6 V. PHÂN LOẠI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 6 VI. NGÔN NGỮ CƠ SỞ DỮ LIỆU 6 PHẦN 2. HỆ QUẢN TRỊ CSDL. HỌC BÀI GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU NGƯỜI VIẾT ThS. Trương Hải BÀI GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 2 DakLak, tháng 03 năm 2012 MỤC LỤC MỤC LỤC 3 PHẦN 1. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 4 I. MỘT. GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 6 Tính độc lập dữ liệu: Việc tách mô tả dữ liệu ra khỏi chương trình ứng dụng sử dụng dữ liệu đó được gọi là tính độc lập dữ liệu. Có 2 loại độc lập dữ liệu sau: •