Giáo trình Lập trình cơ sở dữ liệu (Phần 1)
1. Giới thiệu về .NET Framework
.NET được phát triển từ đầu năm 1998, lúc đầu có tên là Next Generation
Windows Services (NGWS). Nó là hạ tầng cơ bản được chuẩn hoá, độc lập với
ngôn ngữ lập trình, cho phép ta xây dựng, tích hợp, biên dịch, triển khai, chạy các
dịch vụ Web, XML, tiện ích hay thực hiện chương trình đa cấu trúc (phát triển bằng
các ngôn ngữ lập trình hỗ trợ .NET) trên hệ điều hành có cài đặt .NET Framework.
Nó sẽ trở thành một phần của MicroSoft Windows và sẽ được xuất qua các platform
khác, có thể ngay cả Unix. Mô hình ứng dụng của .NET Framework
2. Các thành phần của MicroSoft .NET framework
Các phần chính của Microsoft.NET Framework:7
.NET Framework bao gồm 2 phần chính là Common Language Runtime (CLR),
và .NET Framework Class Library (FCL).
CLR là thành phần chính của .NET Framework, quản lý mã có thể thực thi của
chương trình, quản lý các tiến trình, quản lý tiểu trình (Threading), quản lý bộ nhớ,
cung cấp dịch vụ để biên dịch, tích hợp và tác vụ truy nhập từ xa (Remoting)
FCL bao gồm tất cả các dịch vụ giao tiếp người sử dụng, điều khiển, truy cập dữ
liệu, XML, Threading, bảo mật
3. Tìm hiểu về Metadata
Metadata là một thuật ngữ mà người lập trình sử dụng dùng để mô tả dữ liệu về
dữ liệu. Môi trường .NET sử dụng Metadata để mô tả những đối tượng, các gói
assembly, dữ liệu ADO.NET. Nét đặc trưng của môi trường .NET là những đối
tượng có thể tự mô tả. Một chương trình có thể truy vấn thông tin về một đối tượng
để xác định phương thức, thuộc tính, trường mà đối tượng sẵn sàng hỗ trợ cho
chương trình sử dụng.
.NET có một file đặc biệt gọi là assembly sử dụng metadata để mô tả thông tin về
những lớp mà ứng dụng cung cấp và những thành phần mà ứng dụng sử dụng (như
các file dữ liêụ ), XML định nghĩa metadata, metadata định nghĩa các dữ liệu khác.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Giáo trình Lập trình cơ sở dữ liệu (Phần 1)
ck button thứ ba, chương trình cũng generate một Click Event nhưng hiện giờ ta không dùng nó, chỉ hiển thị một thông điệp nhỏ để xác định là có Event Click ấy. Như thế, ta thấy .NET ghép một ContextMenu vào một ToolbarButton để biến nó thành một DropDownMenu. Có điều sau khi người sử dụng đã chọn một Item trong ContextMenu/DropDownMenu, Text của Item đó không được hiển thị giống như trong một ComboBox. 111 Chương 5. Tạo lập cơ sở dữ liêụ 5.1. Tạo cơ sở dữ liêụ Access 5.1.1. Tạo cơ sở dữ liệu Bước 1. Khởi động MicroSoft Access Bước 2. Trên thanh thực đơn, Click chọn File/New hoặc nhấn tổ hợp phím Ctrl + N để mở hộp thoại New file Bước 3. Chọn Blank database Hộp thoại File New Database xuất hiện, chọn vị trí lưu trữ và nhập tên cơ sở dữ liệu cần tạo csdlaccess.mdb, rồi nhấn nút Create để tạo cơ sở dữ liệu 112 Cửa sổ làm việc của cơ sở dữ liệu hiện hành chứa các đối tượng của cơ sở dữ liệu: Tables, Queries, Forms,.. 5.1.2. Tạo bảng Sau khi tạo cơ sở dữ liệu, ta tiến hành các bước sau để tạo bảng dữ liệu 113 Bước 1. Trong tab Tables trên khung bên trái của cửa sổ, chọn Create table in Design view trong vùng làm việc để khai báo cấu trúc của bảng. Xác lập các thông số của mỗi trường gồm: FieldName- tên trường, DataType- kiểu dữ liệu, Description – mô tả trường. Bước 2. Chọn trường GroupID, rồi Click chuột chọn Edit/Primary key trên thanh thực đơn để thiết lập trường GroupID làm khoá chính của bảng 114 Bước 3. Nhấn Ctrl + S, nhập tên bảng (Group) trong hộp thoại Save As, rồi nhấn nút OK để hoàn tất việc tạo bảng Làm tương tự các bước trên với các bảng Project có cấu trúc gồm các trường: Bảng GroupProject có cấu trúc: 115 5.1.3. Tạo mối quan hệ giữa các bảng Sau khi tạo xong cấu trúc của 3 bảng, ta thực hiện các bước sau để tạo mối quan hệ giữa bảng Project với bảng GroupProject và bảng GroupProject với bảng Group, mối liên hệ giữa các bảng sẽ đảm bảo tính nhất quán về dữ liệu trong các bảng. Bước 1. Tại thanh thực đơn nhấn chọn Tools/ Relationshipsđể mở hộp thoại Show table lần lượt chọn từng bảng trong danh sách, nhấn nút Add để chọn các bảng tham gia vào mối liên hệ. Bước 2. Click chuột vào cột GroupID trong bảng Group kéo và thả vào cột GroupID trong bảng GroupProject để thiết lập mối liên hệ giữa hai bảng 116 nhấn nút Create, khi đó một mối liên hệ một- nhiều (one – many) được thiết lập gữa bảng Group và bảng GroupProject. Làm tương tự đối với bảng Project và GroupProject 117 Bước 3. Click chọn File/Save hoặc Click lên biểu tượng Save để lưu mối liên hệ vừa thiết lập. Bước 4. Click vào nút X ở góc trên bên phải của cửa sổ Relationships để đóng cửa sổ 5.1.4. Tạo Queries Bước 1. Chọn nút Queries trong khung bên trái của cửa sổ để xuất hiện lựa chọn trình thiết kế Query (Create Query in Design View) 118 Bước 2. Nháy đúp chuột vào mục chọn Create Query in Design view, để mở hộp thoại Show table Bước 3. Chọn các bảng trong danh sách bảng (Tab Tables), hoặc các Query trong danh sách các Query (Tab Queries) nhấn nút Add để bổ sung nguồn dữ liệu cho các Query. Bước 4. Lựa chọn các trường kết xuất dữ liệu trong hàng Field, các bảng dữ liệu trong hàng Table, các tuỳ chọn sắp xếp và lọc dữ liệu trong hàng Sort và Criteria. 119 Xem thử kết quả bằng cách nhấn vào biểu tượng Run (!) Bước 5. Nhấn Ctrl + S hoặc biểu tượng Save, xuất hiện hộp thoại Save As, đặt tên Query trong ô Query Name, nhấn OK để lưu Query vừa tạo. Bước 6. Click vào nút X ở góc trên bên phải của cửa sổ để đóng cửa sổ thiết kế Queries 5.2. Tạo cơ sở dữ liêụ sử duṇg MicroSoft SQL Server Managemant Studio 5.2.1. Tạo cơ sở dữ liêụ Bước 1. Tạo kết nối đến một thể hiện SQL Server dùng hộp thoại Connect to Server: 120 chọn Database Engine trong hộp danh sách Server type, trong hôp̣ danh sách Server name chọn (hoăc̣ nhâp̣ vào) dấu . hoăc̣ nhâp̣ chữ local hoăc̣ nhâp̣ tên máy tính. Chọn phương pháp xác thực trong hộp danh sách Authentication, nếu choṇ Windows Authentication thì nhấn nút Connect để thực hiện kết nối, nếu choṇ SQL Server Authentication thì phải cung cấp tên đăng nhâp̣ và mâṭ khẩu rồi nhấn nút Connect để kết nối. Bước 2. Ngay sau khi kết nối thành công tới môṭ thể hiêṇ cuc̣ bô ̣của SQL Server 2005, cửa sổ SQL Server Management Studio đươc̣ hiển thi ̣ 121 Trong cửa sổ Object Explorer, nhấn chuôṭ phải lên nút Databases của môṭ thể hiêṇ SQL Server và choṇ New Database . Hôp̣ thoaị New Database xuất hiêṇ 122 Xác lập các thông tin trên trang General cho cơ sở dữ liêụ mới trong hôp̣ thoaị New Database: Database name: Nhâp̣ tên cơ sở dữ liêụ, chẳng haṇ qlsach Owner: Chọn chủ sở hữu cơ sở dữ liêụ Database file: Liêṭ kê các tâp̣ tin cơ sở dữ liêụ Sau khi xác lâp̣ các thông tin trên, nhấn nút OK để taọ cơ sở dữ liêụ 5.2.2. Tạo bảng Bước 1. Mở rôṇg cơ sở dữ liêụ qlsach, chúng ta sẽ thấy các đối tượng trong cơ sở dữ liêụ như: Tables, View,.. 123 Bước 2. Nhấn phải chuôṭ lên nút Tables và choṇ New Table, xuất hiêṇ hôp̣ thoaị Table Designer, nhâp̣ tên và kiểu dữ liêụ cho các côṭ thông qua các hôp̣ Column name: Nhâp̣ tên côṭ Data type: Nhâp̣ kiểu dữ liêụ cho côṭ Allow Nulls: Nếu đươc̣ choṇ thì côṭ này có thể nhâṇ giá tri ̣ NULL Ví dụ tạo bảng sach Column name Data type Allow Nulls Mas nvarchar(5) không Tens nvarchar(20) không Tacgia nvarchar(30) không Nhaxb nvarchar(20) không Namxb int không 124 Bước 3. Nhấn phải chuôṭ lên dòng Mas rồi choṇ Set Primary Key để chỉ ra rằng côṭ này là khóa chính. 125 Bước 4. Nhấn tổ hơp̣ phím Ctrl + S hoăc̣ nút Save để lưu cấu trúc bảng vừa taọ vào cơ sở dữ liêụ. Hôp̣ thoaị Choose Name xuất hiêṇ chờ nhâp̣ tên cho bảng, ta nhâp̣ Sach rồi nhấn OK Tương tư,̣ ta taọ các bảng Docgia(Madg nvarchar(5), tendg nvarchar(30), namsinh int, donvi nvarchar(20)) Muontra(Mas nvarchar(5), Madg nvarchar(5), ngaymuon nvarchar(10), ngaytra nvarchar(10)) 5.2.3. Tạo Query Bước 1. Nhấn nút New Query để mở cửa sổ Query mới 126 Bước 2. Nhâp̣ câu lêṇh SQL Bước 3. Nhấn phím F5 hoăc̣ Execute để xem kết quả 127 5.2.4. Điṇh nghiã quan hê ̣ Viêc̣ taọ quan hê ̣giữa các bảng giúp cho cơ sở dữ liêụ đảm bảo tính nhất quán , tránh việc nhập trùng thông tin . Để thiết lâp̣ quan hê ̣giữa bảng Sach và bảng Muontra ta tiến hành các bước sau: Bước 1. Mở nút Tables trong cơ sở dữ liêụ Qlsach Bước 2. Nhấn phải chuôṭ lên bảng Muontra, chọn Modify Bước 3. Nhấn phải chuôṭ lên dòng bất kỳ trong bảng Muontra và chọn Relationships. Hôp̣ thoaị Foreign Key Relationships xuất hiêṇ 128 Bước 4. Nhấn nút Add để taọ quan hê ̣khóa ngoaị mới , bên phải của hôp̣ thoaị nhấn nút () của dong Table And Columns Specification để mở hiêṇ hôp̣ thoaị Tables And Columns. Bước 5. Trong hôp̣ văn bản Primary key table choṇ bảng Sach , rồi choṇ khóa chính của bảng là cột Mas, trong hôp̣ Foreign key table choṇ bảng Muontra , rồi chọn khóa ngoại là Mas, nhấn OK để đóng hôp̣ thoaị. 129 Bước 6. Nhấn nút Close để đóng hôp̣ thoaị Foreign Key Relationships Bước 7. Nhấn Ctrl + S hoăc̣ Save để lưu những thay đổi của bảng Sach laị 5.2.5. Thêm ràng buôc̣ cho bảng SQL Server 2005 cho phép baṇ ràng buôc̣ giá tri ̣ trong môṭ côṭ xác điṇh để dữ liêụ không thích hơp̣ se ̃không đươc̣ thêm vào bảng . Kiểu dữ liêụ của cột cũng được phép ràng buộc giá trị trong cột, nhưng nó không đươc̣ xem là ràng buôc̣. SQL Server 2005 hỗ trơ ̣5 kiểu ràng buôc̣: NOT NULL: Khi ràng buôc̣ này đươc̣ chỉ ra , côṭ bắt buôc̣ phải có giá tri ̣ khi ta thêm dữ liêụ vào bảng CHECK: Ràng buộc này chỉ ra miền giá trị được phép . UNIQUE: Ràng buộc này chỉ ra rằng giá trị nhập vào cột này phải là duy nhất PRIMARY KEY: Ràng buộc này chỉ ra giá trị trên cột này không được phép trùng lăp̣ FOREIGN KEY: Ràng buộc này tham chiếu đến một nhận dạng duy nhất trong môṭ bảng khác của cơ sở dữ liêụ. 5.2.6. Thêm dữ liêụ vào bảng Sau khi taọ xong bảng , ta có thể thêm dữ liêụ vào bảng ngay bằng công cụ MicroSoft SQL Server Manager Studio. Các bước thực hiện như sau: 130 Bước 1. Mở nút Databases->Tables trong cơ sở dữ liêụ hiêṇ hành Bước 2. Nhấn phải chuôṭ lên nút Tables, chọn Open Table Bước 3. Nhâp̣ dữ liêụ cho các côṭ 5.2.7. Tạo views View là môṭ daṇg bảng nhưng chỉ dùng để nhâṇ dữ liêụ. Nó không cập nhật dữ liêụ. Sử duṇg view cho phép baṇ: - Liên kết dữ liêụ để người dùng có thể làm việc dễ dàng - Gôp̣ dữ liêụ để người dùng có thể làm việc dễ dàng - Giấu tên côṭ đối với người dùng , giới haṇ lươṇg côṭ và dòng mà người dùng se ̃ làm việc - Dê ̃dàng bảo mâṭ dữ liêụ Để taọ view, ta thưc̣ hiêṇ các bước sau: Bước 1. Mở cửa sổ MicroSoft SQL Server Manager Studio đa ̃đươc̣ kết nối đến cơ sở dữ liêụ 131 nhấn phải chuôṭ vào nút View và chọn New View, hôp̣ thoaị Add table xuất hiêṇ Bước 2. Chọn bảng muốn tạo View trong danh sách , rồi nhấn nút Add (Ta choṇ bảng Sach và bảng Muontra) Bước 3. Trong cửa sổ View nếu chưa xuất hiêṇ liên kết giữa các bảng thì kéo các côṭ là khóa chính và thả vào cột cùng tên đóng vai trò là khóa ngoại trong bảng khác để tạo liên kết. 132 Bước 3. Thiết lâp̣ các lưạ choṇ để thành lâp̣ câu lêṇh SQL cho view , để xem thử kết quả dữ liêụ trả về nhấn nút Execute. Bước 4. Nhấn nút Save để lưu View 5.2.8. Thủ tục lưu trữ (Stored Procedure) 5.2.8.1. Tạo và thi hành một thủ tục lưu trữ Các phát biểu SQL cũng là những thủ tục lưu trữ. SQL cũng là một ngôn ngữ lập trình, nó không chỉ bao gồm các phát biểu hướng dữ liệu (như Select) mà còn bao gồm các phát biểu điều kiện như If .. then, vòng lặp, khai báo thủ tục, trả về dữ liệu,Như vậy, chúng ta hoàn toàn có thể viết các thủ tục bằng SQL và lưu chúng vào server CSDL. Các thủ tục lưu trữ có thể có tham số hoặc không có tham số. Nó có thể trả về giá trị hoặc không trả về giá trị thông qua tham số đầu ra, thậm chí nó có thể trả về toàn bộ nội dung bảng ảo (giống như view) 133 SQL Server phân tích cú pháp thủ tục lưu trữ và lưu nó ở dạng tối ưu. Thủ tục lưu trữ được tạo bằng phát biểu: Create procedure Tên_thủ_tục danh_sách_tham_số As Phát_biểu_SQL Ví dụ: Create procedure GetEmployee @EmployID int As Select * from HumanResource.Employee where EmployeeID=@EmployeeID Kết quả của phát biểu trên là một thủ tục có tên là GetEmployee được lưu trong thư mục Programmability\Stored Procedure của CSDL, thủ tục này nhận tham số là EmployeeID (mã nhân viên) và trả về bảng dữ liệu thông qua câu lệnh Select * from HumanResource.Employee where EmployeeID=@EmployeeID Để thi hành một thủ tục lưu trữ ta gọi thủ tục như sau: Execute dbo.Tên_thủ_tục Danh_sách_tham_số Ví dụ: Execute bdo.GetEmployee 12 5.2.8.2. Thủ tục lưu trữ của hệ thống Ngoài những thủ tục lưu trữ do người dùng tạo ra, còn có những thủ tục lưu trữ thực hiện những tác vụ chung, được tối ưu bởi nhà sản xuất. Đó chính là thủ tục lưu trữ của hệ thống dùng để thực hiện các hoạt động như: - Liệt kê tất cả người dùng đăng nhập vào server - Liệt kê tất cả các bảng, view và các đối tượng khác trong CSDL - Thêm các đối tượng như Operator hoặc Subcriber vào server - Cấu hình server - Xóa các tác vụ tự động hóa (Job) không cần dùng nữa - Gửi email trực tiếp từ CSDL - Quản lý bảo mật cho các đối tượng Các thủ tục lưu trữ của hệ thống được lưu trữ trong thư mục Programmability\Stored Procedure\System Stored Procedures 5.2.9. Trigger và thông báo sự kiện Trigger là một thủ tục lưu trữ đặc biệt. Thay vì được thực thi bởi người dùng, trigger được thi thi bởi Server khi một hoạt động xác định được thực hiện trên bảng dữ liệu như: 134 Insert Trigger được thực thi bất cứ khi nào một bản ghi mới được thêm vào bảng Delete Trigger được thực thi bất cứ khi nào một bản ghi bị xóa khỏi bảng Update Trigger được thực thi bất cứ khi nào một bản ghi tồn tại trong bảng bị thay đổi SQL Server 2005 ngoài các Trigger trên còn có các Trigger theo dõi sự thay đổi lược đồ CSDL và các hoạt động khác như: Tạo bảng, xóa bảng, xóa cột (Create, Alter, Drop) Trigger hữu dụng khi bạn muốn CSDL tự động phản ứng với các tác động của người dùng, ngoài ra nó còn được sử dụng như một ràng buộc về dữ liệu để hạn chế thông tin thêm vào bảng. Thông báo sự kiện (Notification) tương tự như Trigger nhưng nó không thực hiện lệnh mà ghi vào dịch vụ SQL Server Service Broker (SSB) sự kiện được phát sinh và được đặt trên hàng đợi, thông báo sẽ được đọc và được xử lý bởi các chương trình ứng dụng khác. 5.2.10. Giao dịch (Transaction) Giao dịch là một đơn vị, bao gồm một dãy các tác vụ thực hiện thay đổi trên dữ liệu. Mỗi giao dịch phải hoặc được thực hiện hoàn toàn hoặc bị hủy hoàn toàn. Các giao dịch được hỗ trợ thông qua cơ chế gọi là xác nhận thay đổi (commit) hoặc khôi phục (rollback). Trước hết, ta cho server biết điểm bắt đầu giao dịch, sau đó thực hiện các hoạt động của giao dịch. Nếu xảy ra lỗi trong bất kỳ hoạt động nào thì server sẽ khôi phục lại toàn bộ giao dịch. Nếu toàn bộ hoạt động được thực hiện thành công, ta thông báo cho server thực hiện xác nhận giao dịch. Server sau đó sẽ lưu toàn bộ những thay đổi được thực hiện bởi từng hoạt động riêng biệt. 2.5.11. Bảo mật và quyền sở hữu SQL Server cung cấp mô hình bảo mật cho phép ta bảo vệ giữ liệu của mình. Mô hình bảo mật phụ thuộc vào tương tác giữa các thực thể: - Logins (đăng nhập) - Users (người dùng) - Rolers (nhóm người dùng) - Owners (chủ sở hữu) 135 - Permisions (quyền) Logins là những tài khoản mà thông qua đó người dùng đăng nhập vào SQL Server. SQL Server cung cấp hai cách để xác thực người dùng. Phương thức cũ là thông qua tên người dùng và mật khẩu được lưu trong server CSDL. Cách thứ hai là sử dụng tài khoản đăng nhập vào windows làm tài khoản đăng nhập vào SQL Server. User là tài khoản để đăng nhập vào từng CSDL xác định Rolers cho phép ta tập hợp các người dùng thành nhóm để dễ quản lý. SQL Server cũng cung cấp một số nhóm được xây dựng sẵn cho tác vụ quản trị Mỗi đối tượng trong CSDL như (Table, view, Stored procedure,) có một chủ sở hữu (Owner). Sở hữu mặc định của đối tượng là người tạo ra đối tượng và chỉ có một người dùng có thể sử dụng chúng. Các chủ sở hữu có thể cấp quyền (permision) cho ngơ]ì dùng khác. Quyền trên đối tượng kiểm soát người dùng có thể làm được những gì trên đối tượng đó. Để tham chiếu đến đối tượng ta sử dụng cú pháp: Server.database.owner.object Ví dụ: MK.AdventureWorks.bdo.HumanResources.Employee
File đính kèm:
- giao_trinh_lap_trinh_co_so_du_lieu_phan_1.pdf