1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng gốc môn học cơ sở dữ liệu học phần 3

240 26 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

HỌC VIỆN TÀI CHÍNH Ths Phan Phước Long BÀI GIẢNG GỐC MÔN HỌC CƠ SỞ DỮ LIỆU HỌC PHẦN NHÀ XUẤT BẢN TÀI CHÍNH LỜI NĨI ĐẦU Cùng với phát triển với tốc độ nhanh công nghệ thông tin (CNTT), sở liệu trở thành chuyên ngành quan trọng cần thiết cho nhiều lĩnh vực khoa học Cơ sở liệu thành phần thiết yếu phần mềm giải pháp quản lý, giúp lưu trữ, tổ chức, quản lý liệu cách khoa học có tính hệ thống Do vậy, sở liệu chủ đề quan tâm chương trình đào tạo ngành tin học Hiện nay, Học viện Tài chính, mơn học sở liệu cấu cho chun ngành Tin học Tài kế tốn, ngành Hệ thống thống tin quản lí Mơn học sở liệu bao gồm 03 học phần: Cơ sở liệu học phần cung cấp cho sinh viên kiến thức hệ thống sở liệu Cơ sở liệu học phần cung cấp cho sinh viên kiến thức quản trị sở liệu, thành phần của dự án phần mềm, nhận dạng sử dụng đối tượng để triển khai thành phần dự án xây dựng phần mềm quản trị liệu Tài Cơ sở liệu học phần cung cấp cho sinh viên kiến thức mơ hình sở liệu, trang bị việc quản trị liệu server xử lý tốn kinh tế mơ hình Client/Server Học phần môn học cung cấp kỹ thuật liên kết từ máy client hệ quản trị sở liệu hay ngơn ngữ lập trình học đến hệ quản trị sở liệu server Bài giảng gốc "Cơ sở liệu - học phần 3" ThS Phan Phước Long làm chủ biên trực tiếp biên soạn Tác giả hi vọng, giảng gốc mang lại cho sinh viên tư tưởng phương pháp luận đại kết hợp với kĩ thuật thiết yếu việc giải vấn đề thực tiễn Bài giảng gốc biên soạn dựa kinh nghiệm trình làm phần mềm, nghiên cứu giảng dạy tác giả Học viện Tài Nội dung mơn học mang tính thiết kế tồn diện nên khó tránh khỏi thiếu sót, mong nhận đóng góp quý báu đồng nghiệp Học viện để giảng gốc ngày hồn thiện Mọi đóng góp xin gửi hộp thư: phanphuoclong@hvtc.edu.vn Trân trọng cám ơn Hà nội, tháng 12 năm 2020 MỤC LỤC CHƯƠNG 1: HỆ CƠ SỞ DỮ LIỆU CLIENT/SERVER Cấu trúc CSDL 1.1 Hệ CSDL đơn lẻ (StandAlone DataBase System) 10 1.2 Hệ CSDL nhiều người sử dụng 11 Mơ hình liệu Client/ Server với SQL 15 2.1 Lợi ích dùng cấu trúc Client/Server 15 2.2 Sử dụng SQL cấu trúc Client/Server: 16 2.3 Nhiệm vụ máy server client 17 CHƯƠNG 2: HỆ QUẢN TRỊ CSDL SQL SERVER 2012 21 Giới thiệu SQL Server 2012 21 1.1 Cài đặt SQL Server 2012 Express Edition 23 1.2 Lịch sử phát triển SQL Server 2012 40 Các thành phần SQL Server 42 Các lệnh T-SQL 54 3.1 Giới thiệu T-SQL 54 3.2 Tạo sửa đổi bảng liệu 56 3.3 Thao tác với CSDL 73 3.4 Kiểm soát hoạt động khai thác CSDL 107 Thủ tục thường trú (Stored Procedures) 137 4.1 Lệnh CREATE PROCEDURE 140 4.2 Lệnh ALTER PROCEDURE 146 4.3 Lệnh DROP PROCEDURE 146 Bẫy lỗi (Trigger) SQL Server 147 5.1 Các đặc điểm Trigger 147 5.2 Các trường hợp sử dụng trigger 148 5.3 Khả sau trigger 148 5.4 Định nghĩa trigger 149 5.5 Kích hoạt trigger dựa thay đổi liệu cột 154 5.6 Sử dụng Trigger Giao tác (TRANSACTION) 155 5.6 DDL TRIGGER 157 5.7 Enable/ Disable TRIGGER 159 Lập trình SQL Server 2012 160 6.1 Các yếu tố 160 6.2 Các thành phần điều khiển 180 CHƯƠNG 3: VISUAL FOXPRO VỚI SQL SERVER 187 Làm việc với view từ xa 187 1.1 Kết nối 187 1.2 Tạo view từ xa 192 1.3 View cập nhật 194 1.4 Bộ đệm cho view 199 1.5 Các kiểu liệu tương thích 204 SQL Pass Through 206 2.1 Kết nối 206 2.2 Đệ trình truy vấn 211 2.3 Cập nhật kết server 220 CHƯƠNG 4: C SHARP VỚI SQL SERVER 229 Giới thiệu ADO.NET 229 Kết nối với SQL server 231 2.1 Tạo kết nối với SqlConnection 231 2.2 Sử dụng SqlConnectionStringBuilder 235 2.3 Thông tin kết nối SqlConnection 235 Chương HỆ CƠ SỞ DỮ LIỆU CLIENT/SERVER Khi thiết kế sở liệu, xuất phát từ yêu cầu liệu tốn Và tùy thuộc vào mơ hình liệu mà có cách thức xây dựng, có chiến lược quản trị CSDL cho phù hợp Cho tới nay, có nhiều mơ hình liệu đề xuất: Mơ hình liệu phân cấp, mơ hình liệu mạng, mơ hình liệu quan hệ, Tuy nhiên, mơ hình liệu quan hệ, với uyển chuyển cấu trúc nên nhiều hệ thống áp dụng dễ dàng triển khai, bảo trì Chính mà mơ hình trở nên phổ biến trình bày chi tiết học phần CSDL HP1 Trong chương chủ yếu trình bày cấu trúc mạng client/server Cấu trúc CSDL Cấu trúc logic CSDL thiết kế khác tùy thuộc vào mơ hình CSDL mà chúng tổ chức Do vậy, cấu trúc vật lí hệ CSDL khác cách đáng kể Tổ chức MTĐT lớn (mainframe) rõ ràng khác hẳn MTĐT mini lại khác biệt nhiều tổ chức PC Tất hệ thống chạy hệ quản trị CSDL, cấu trúc hệ quản trị CSDL tùy thuộc vào phần cứng phụ thuộc vào kiểu truy xuất liệu yêu cầu Có số phương thức mà theo xây dựng cấu hình cho hệ thống máy tính truy xuất CSDL, thông thường rơi vào hai loại sau: - Cấu hình đơn lẻ (StandAlone) - Cấu hình nhiều người sử dụng (MultiUser) 1.1 Hệ CSDL đơn lẻ (StandAlone DataBase System) Một hệ CSDL đơn lẻ bao gồm máy tính Dữ liệu, NSD làm việc máy hệ quản trị CSDL phần mềm tích hợp đơn độc Với hệ thống này, thời điểm phục vụ người, nên quy mô tương đối nhỏ 10 ENDIF = SQLDISCONNECT(hConn) ENDIF Ví dụ 2: Cập nhật nhiều bảng server LOCAL hConn, lcQuery, stComm stComm= "DSN=Northwind;" ; + "DATABASE=Northwind;" ; + "Trusted_connection=Yes" hConn=SQLSTRINGCONNECT(stComm) IF hConn 0 SELECT curOrders BROWSE CURSORSETPROP("Buffering",5,"curOrders") CURSORSETPROP("Tables","Orders, [Order Details]","curOrders") CURSORSETPROP("KeyFieldList","OrderID ProductID","curOrders") CURSORSETPROP("UpdatableFieldList","OrderDate, City, Discount","curOrders") CURSORSETPROP("UpdateNameList", ; "OrderID Orders.OrderID, "+; "ProductID [Order Details].ProductID, "+; "OrderDate Orders.OrderDate, "+ ; "City Orders.ShipCity, " + ; "Discount [Order Details].Discount", "curOrders") CURSORSETPROP("WhereType",1,"curOrders") 227 CURSORSETPROP("Buffering",5,"curOrders") CURSORSETPROP("SendUpdates",.F.,"curOrders") REPLACE OrderDate WITH Date(), City WITH "New City", Discount WITH 25, UnitPrice WITH ALL CURSORSETPROP("SendUpdates",.T.,"curOrders") =TABLEUPDATE(.T.) USE IN curOrders ELSE =MESSAGEBOX([An error occurred],16,[Note]) ENDIF = SQLDISCONNECT(hConn) ENDIF 228 Chương C SHARP VỚI SQL SERVER Giới thiệu ADO.NET NET Framework, cách tạo kết nối đến SQL Server từ chuỗi kết nối với lớp SqlConnection C#, Net Framework, sử dụng SqlConnectionStringBuilder để tạo chuỗi kết nối lưu chuỗi kết nối từ file config Giới thiệu ADO.NET ADO.NET tập hợp thư viện lớp qua cho phép ứng dụng tương tác (lấy về, cập nhật, xóa) với nguồn liệu (Như SQLServer, XML, MySQL, Oracle Database ) Kiến trúc để truy cập liệu với ADO.NET phân nhiều phần rời rạc, phần sử dụng độc lập hay đồng thời nhiều thành phần sử dụng Cơ phân chia hai khu vực hình dưới: Kiến trúc ADO.NET 229 Phần thứ gọi Data Provider: thư viện lớp cung cấp chức tạo kết nối đến nguồn liệu, thi hành lệnh nguồn liệu inset, update, delete, read SQL Server: Loại Data Provider mặc định NET Core SqlClient namespace System.Data.SqlClient cung cấp khả kết nối đến SQL Server MySQL: Nếu muốn có loại Data Provider truy cập đến MySQL cài đặt package MySql.Data, có Data Provider MySql.Data.MySqlClient SQLite cài đặt Data Provider Microsoft.Data.SQLite Phần thứ gọi DataSet thư viện lớp (độc lập với Data Provider) tạo đối tượng để quản lý liệu không phụ thuộc ngồn liệu đến từ đâu, ứng dụng (local) hay từ nguồn XML DataSet thường gồm nhiều DataTable, DataTable lại gồm DataColumn, dàng buộc, khóa chính, Vậy DataSet trừu tượng hóa CSDL thực Trước tiên tìm hiểu sử dụng Data Provider với trường hợp cụ thể SqlClient để truy cập đến CSDL MS SQL Server Hãy gõ lệnh sau để thêm package SqlClient vào dự án: dotnet add package System.Data.SqlClient Sau code sử dụng thêm namespace: 230 using System.Data; using System.Data.SqlClient; Kết nối với SQL server 2.1 Tạo kết nối với SqlConnection SqlConnection (System.Data.SqlClient.SqlConnection) lớp biểu diễn kết nối tới SQL Server Sử dụng SqlConnection thực sau: Tạo đối tượng SqlConnection từ chuỗi kết nối tới SQL Server   Mở kết nối với phương thức Open()  Thực truy vấn cách sử dụng lớp SqlCommand, SqlDataAdapter, SqlDataReader Khơng cịn sử dụng đến kết nối cần đóng lại phương thức Close  Ví dụ, có SQL Server địa localhost (hoặc 127.0.0.1), cổng kết 1433, tên tài khoản SA, password Password123, tạo mở kết nối sau: string sqlconnectStr = "Data Source = localhost, 1433;Initial Catalog=xtlab;User ID=SA; Password=123456"; SqlConnection connection = new SqlConnection(sqlconnectStr); 231 // Mở kết nối - connection.OpenAsync(); dùng async connection.Open(); / thực cá tác vụ truy vấn CSDL connection.Close(); // Đóng kết nối 2.1.1 Tạo chuỗi kết nối với SQL Server Chuỗi kết nối (connection string) tham số để khởi tạo đối tượng SqlConnection, chuỗi chứa thông tin để thực kết nối đến SQL Server, thông tin chứa theo cặp key=value; ví dụ chuỗi "key 1=value1;key 2=value2", dây tham khảo số key KEY Connect Timeout Mô tả Số giây cố gắng kết nối trước phát sinh lỗi (mặc định 15s) Timeout Connection Timeout Data Source Server 232 Key dùng để gán địa mạng (tên máy IP domain) SQL Server, tên hành chạy SQL Server Nếu muốn gán cổng thêm vào phía sau địa ,port Address Addr Initial Catalog Tên Database Database Password để kết nối Password PWD Tài khoản (account) dùng để đăng nhập User ID UID 2.1.2 Tạo chuỗi kết nối Chuỗi có dạng sau: Server=ServerAddress;Database=DataBaseName;User Id= Username; Password=myPassword; Hoặc Data Source=ServerAddress; Database=DataBaseName; User Id=Username;Password=myPassword; 233 Ví dụ: SQL Server máy có địa IP 192.168.1.10, có CSDL tên exampledb, cho phép kết nối với User/Password testuser/testpass, tạo chuỗi kết nối đối tượng SqlConnection sau: String connectionString = "Server=192.168.1.10;Database=exampledb;User Id=testuser; Password=testpass;"; SqlConnection = new SqlConnection(connectionString); sqlConnection.Open(); //Mở kết nối // Code truy vấn, cập nhật liệu sqlConnection.Close(); //Đóng kết nối sau sử dụng Nếu sử dụng using kết nối tự động đóng lại cuối khối using, nên không cần phải gọi Close String connectionString = "Server=192.168.1.10;Database=exampledb;User Id=testuser; Password=testpass;"; using (SqlConnection = new SqlConnection(connectionString)) { sqlConnection.Open();//Mở kết nối // Code truy vấn, cập nhật liệu } 234 2.2 Sử dụng SqlConnectionStringBuilder SqlConnectionStringBuilder giúp tạo chuỗi kết nối, cách thiết lập loại key trên, sau phát sinh chuỗi kết nối giúp bạn Ví dụ: SqlConnectionStringBuilder stringBuilder = new SqlConnectionStringBuilder(); stringBuilder["Server"] = "127.0.0.1,1433"; stringBuilder["Database"] stringBuilder["User Id"] = "xtlab"; = "sa"; stringBuilder["Password"] string sqlConnectStr = "Password123"; = stringBuilder.ToString(); using(SqlConnection connection = new SqlConnection(sqlConnectStr)) { connection.Open(); // Thực tác vụ } 2.3 Thông tin kết nối SqlConnection Ở phần biết tạo chuỗi kết nối, từ sinh đối tượng SqlConnection, đối tượng sử dụng lớp khác SqlCommand, SqlDataAdapter để 235 thực truy vấn đến liệu Những đối tượng tìm hiều phần sau, nói thêm chút SqlConnection Một số phương thức, thuộc tính SqlConnection State Kiểu ConnectionState trạng thái kết nối:  ConnectionState.Closed kết nối đóng ConnectionState.Connecting kết nối  ConnectionState.Executing thi hành lệnh  ConnectionState.Fetching nhận liệu   ConnectionState.Open kết nối mở Để kiểm tra cần thực phép toán bitwise phương thức FlagsAttribute, ví dụ: if ((connection.State.HasFlag(ConnectionSta te.Open)) && (connection.State.HasFlag(ConnectionStat e.Fetching))) { 236 Console.WriteLine("Kết nối mở nhận liệu"); } Database Trả tên Database - sau kết nối mở StatisticsEnabl Mặc định false, thiết lập ed true cho phép thu thập thơng tin kết nối Để lấy thông tin thù thập dùng phương thức RetrieveStatistics() Open() Mở kết nối, sử dụng OpenAsync() dùng kỹ thuật async Close() Đóng kết nối CreateComma nd() Tạo đối tượng SqlCommand để thực lệnh SQL RetrieveStatist Lấy thông tin thống kê (trả IDictionary) ics() StateChange Event - phát sinh thay đổi trạng thái kết nối, muốn bắt kiện gán delegate dạng (object sender, StateChangeEventArgs e) =>{ / } 237 Ví dụ: SqlConnectionStringBuilder stringBuilder = new SqlConnectionStringBuilder(); stringBuilder["Server"] stringBuilder["Database"] stringBuilder["User Id"] stringBuilder["Password"] = "127.0.0.1,1433"; = "xtlab"; = "SA"; = "Password123"; SqlConnection connection = new SqlConnection(stringBuilder.ToString()); connection.StatisticsEnabled = true; // kích hoạt chế độ thu thập thống kê // Bắt kiện trạng thái kết nối thay đổi connection.StateChange += (object sender, StateChangeEventArgs e) =>{ Console.WriteLine($"Trạng thái tại: {e.CurrentState}, trạng thái trước: " + $"{e.OriginalState}"); }; connection.Open(); // mở kết nối // Dùng SqlCommand thi hành SQL - tìm hiểu sau using (SqlCommand command = connection.CreateCommand()) { command.CommandText = "select top(5) * from Products"; var reader = command.ExecuteReader(); Console.WriteLine("CÁC SẢN PHẨM:"); 238 Console.WriteLine($"{"ProductID", 10} {"ProductName"}"); while (reader.Read()) { Console.WriteLine($"{reader["ProductID"], 10} {reader["ProductName"]}"); } } Console.WriteLine($"{"ConnectionString", 17} : {stringBuilder}"); Console.WriteLine($"{"DataSource", 17} : {connection.DataSource}"); // Lấy thống kê in số liệu thống kê var dicStatics = connection.RetrieveStatistics(); foreach (var key in dicStatics.Keys) { Console.WriteLine($"{key, 17} : {dicStatics[key]}"); } connection.Close(); 239 BÀI GIẢNG GỐC MÔN HỌC CƠ SỞ DỮ LIỆU HỌC PHẦN Chịu trách nhiệm xuất bản: GIÁM ĐỐC - TỔNG BIÊN TẬP Phan Ngọc Chính Chịu trách nhiệm biên soạn: Ths Phan Phước Long Biên tập: Đào Thị Hiền Trình bày bìa: Ban quản lý Khoa học, Hưng Hà Biên tập kỹ thuật: Hưng Hà Đơn vị liên kết: Học viện Tài chính, số 58 Phố Lê Văn Hiến, Phường Đức Thắng, Bắc Từ Liêm, Hà Nội In 500 cuốn, khổ 14.5 x 20.5cm Công ty TNHH Sản xuất Thương mại Hưng Hà Địa chỉ: Số 20, Hoàng Quốc Việt, Cầu Giấy, Hà Nội Số xác nhận ĐKXB: 2083-2020/CXBIPH/13-46/TC Số QĐXB: 119/QĐ-NXBTC ngày 11 tháng năm 2020 Mã ISBN: 978-604-79-2437-0 In xong nộp lưu chiểu năm 2020 240 ... bao gồm 03 học phần: Cơ sở liệu học phần cung cấp cho sinh viên kiến thức hệ thống sở liệu Cơ sở liệu học phần cung cấp cho sinh viên kiến thức quản trị sở liệu, thành phần của dự án phần mềm,... Client/Server Học phần mơn học cung cấp kỹ thuật liên kết từ máy client hệ quản trị sở liệu hay ngơn ngữ lập trình học đến hệ quản trị sở liệu server Bài giảng gốc "Cơ sở liệu - học phần 3" ThS Phan... sở liệu chủ đề quan tâm chương trình đào tạo ngành tin học Hiện nay, Học viện Tài chính, mơn học sở liệu cấu cho chuyên ngành Tin học Tài kế tốn, ngành Hệ thống thống tin quản lí Môn học sở liệu

Ngày đăng: 03/02/2022, 15:05

Xem thêm:

TỪ KHÓA LIÊN QUAN