1. SQL là gì?
SQL là viết tắt của Structure Query Language, nó là một công cụ quản lý dữ liệu được sử dụng phổ biến ở nhiều lĩnh vực. Hầu hết các ngôn ngữ bậc cao đều có trình hỗ trợ SQL như Visual Basic,Oracle,Visual C.
Trong Oracle tất cả các chương trình và người sử dụng phải sử dụng SQL để truy nhập vào dữ liệu trong CSDL của Oracle. Các chương trình ứng dụng và các công cụ Oracle cho phép người sử dụng truy nhập tới CSDL mà không cần sử dụng trực tiếp SQL. Nhưng những ứng dụng đó khi chạy phải sử dụng SQL.
2.Lịch sử phát triển:
SQL được phát triển từ ngôn ngữ SEQUEL2 bởi IBM theo mô hình Codd tại trung tâm nghiên cứu của IBM ở California vào những năm 70 cho hệ thống quản trị cơ sở lớn.
Ban đầu SQL được sử dụng trong các ngôn ngữ quản lý CSDL và chạy trên các máy đơn lẻ. Song do sự phát triển nhanh chóng của nhu cầu xây dựng những CSDL lớn theo mô hình khách chủ( trong mô hình này toàn bộ CSDL được tập trung trên máy chủ (Server)). Mọi thao tác xử lý dữ liệu được thực hiện trên máy chủ bằng các lệnh SQL máy trạm chỉ dùng để cập nhập hoặc lấy thông tin từ máy chủ). Ngày nay trong các ngôn ngữ lập trình bậc cao đều có sự trợ giúp của SQL. Nhất là trong lĩnh vực phát triển của Internet ngôn ngữ SQL càng đóng vai trò quan trọng hơn. Nó được sử dụng để nhanh chóng tạo các trang Web động.
SQL đã được viện tiêu chuẩn quốc gia Mỹ (ANSI) và tổ chức tiêu chuẩn quốc tế (ISO) chấp nhận như một ngôn ngữ chuẩn cho CSDL quan hệ. Nhưng cho đến nay chuẩn này chưa đưa ra đủ 100%. Nên các SQL nhúng trong các ngôn ngữ lập trình khác nhau đã được bổ xung mở rộng cho SQL chuẩn cho phù hợp với các ứng dụng của mình. Do vậy có sự khác nhau rõ ràng giưã các SQL.
3 Đối tượng làm việc của SQL:
Là các bảng ( tổng quát là các quan hệ dữ liệu hai chiều). Các bảng này bao gồm một hoặc nhiều cột và hàng. Các cột gọi là các trường, các hàng gọi là các bản ghi. Cột với tên gọi và kiểu dữ liệu (kiểu dl của mỗi cột là duy nhất)xác định tạo nên cấu trúc của bảng ( ta có thể dùng lệnh Desc[ribe] TABLE-name để xem cấu trúc của bảng, phần tuỳ chọn[] có thể được bỏ trong Oracle). Khi bảng đã được tổ chức hệ thống cho một mục đích nào đó có một CSDL
SQL thực hiện thao tác trên các bảng này bằng những câu lệnh truy vấn. Chúng có tác dụng bao gồm tìm ra những quan hệ theo yêu cầu hay tạo ra những bảng mới, những quan hệ mới. Do đề tài là tìm hiểu SQL server nên chúng em không đi chi tiết vào những vấn đề này.
44 trang |
Chia sẻ: tuandn | Lượt xem: 4048 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đồ án Microsoft SQL Server và Postgre SQL, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Đồ án môn học :Công nghệ phần mềm
Sinh viên thực hiện:
Nguyễn Tuấn Anh
Đỗ Minh Ngọc
Phạm Hồng Phúc
Nguyễn Hoàng Tú
Lớp Tin 7- K44
Phần I. Giới thiệu chung.
I_Giới thiệu chung về SQL
1. SQL là gì?
SQL là viết tắt của Structure Query Language, nó là một công cụ quản lý dữ liệu được sử dụng phổ biến ở nhiều lĩnh vực. Hầu hết các ngôn ngữ bậc cao đều có trình hỗ trợ SQL như Visual Basic,Oracle,Visual C...
Trong Oracle tất cả các chương trình và người sử dụng phải sử dụng SQL để truy nhập vào dữ liệu trong CSDL của Oracle. Các chương trình ứng dụng và các công cụ Oracle cho phép người sử dụng truy nhập tới CSDL mà không cần sử dụng trực tiếp SQL. Nhưng những ứng dụng đó khi chạy phải sử dụng SQL.
2.Lịch sử phát triển:
SQL được phát triển từ ngôn ngữ SEQUEL2 bởi IBM theo mô hình Codd tại trung tâm nghiên cứu của IBM ở California vào những năm 70 cho hệ thống quản trị cơ sở lớn.
Ban đầu SQL được sử dụng trong các ngôn ngữ quản lý CSDL và chạy trên các máy đơn lẻ. Song do sự phát triển nhanh chóng của nhu cầu xây dựng những CSDL lớn theo mô hình khách chủ( trong mô hình này toàn bộ CSDL được tập trung trên máy chủ (Server)). Mọi thao tác xử lý dữ liệu được thực hiện trên máy chủ bằng các lệnh SQL máy trạm chỉ dùng để cập nhập hoặc lấy thông tin từ máy chủ). Ngày nay trong các ngôn ngữ lập trình bậc cao đều có sự trợ giúp của SQL. Nhất là trong lĩnh vực phát triển của Internet ngôn ngữ SQL càng đóng vai trò quan trọng hơn. Nó được sử dụng để nhanh chóng tạo các trang Web động..
SQL đã được viện tiêu chuẩn quốc gia Mỹ (ANSI) và tổ chức tiêu chuẩn quốc tế (ISO) chấp nhận như một ngôn ngữ chuẩn cho CSDL quan hệ. Nhưng cho đến nay chuẩn này chưa đưa ra đủ 100%. Nên các SQL nhúng trong các ngôn ngữ lập trình khác nhau đã được bổ xung mở rộng cho SQL chuẩn cho phù hợp với các ứng dụng của mình. Do vậy có sự khác nhau rõ ràng giưã các SQL.
3 Đối tượng làm việc của SQL:
Là các bảng ( tổng quát là các quan hệ dữ liệu hai chiều). Các bảng này bao gồm một hoặc nhiều cột và hàng. Các cột gọi là các trường, các hàng gọi là các bản ghi. Cột với tên gọi và kiểu dữ liệu (kiểu dl của mỗi cột là duy nhất)xác định tạo nên cấu trúc của bảng ( ta có thể dùng lệnh Desc[ribe] TABLE-name để xem cấu trúc của bảng, phần tuỳ chọn[] có thể được bỏ trong Oracle). Khi bảng đã được tổ chức hệ thống cho một mục đích nào đó có một CSDL
SQL thực hiện thao tác trên các bảng này bằng những câu lệnh truy vấn. Chúng có tác dụng bao gồm tìm ra những quan hệ theo yêu cầu hay tạo ra những bảng mới, những quan hệ mới... Do đề tài là tìm hiểu SQL server nên chúng em không đi chi tiết vào những vấn đề này.
II. Giới thiệu chung SQL Server
SQL Server là một sản phẩm của tập đoàn phần mềm nổi tiếng Microsoft. Nó được thị trường chấp nhận một cách rộng rãi vào những phiên bản 6.5 trở lên. Khi ra đời phiên bản 7.0, hãng này có tuyên bố họ thay đổi toàn bộ engine bên trong cho server và tạo ra một bước nhảy vọt. Một số đặc tính vốn có của các version trước không còn tương thích với version 7.0. Từ phiên bản 7.0 lên đến 8.0 ( tức là Microsoft SQL Server 2000) có sự tăng cường mạnh mẽ về các tính năng thao tác trên các Web site và làm cho nó đáng tin cậy hơn.
Một trong những đặc điểm được coi là nổi bật của phiên bản 2000 là khả năng cài đa phiên bản trong cùng một máy mà không cần gỡ bỏ các phiên bản trước nếu có. Người ta gọi đấy là Mutliple-Instance. Khi đó các phiên bản cũ trên máy là Default-Instance còn phiên bản 2000 vừa cài có tên là Named Instance.
Để tiện theo kịp công nghệ mới, bắt đầu từ đây trở đi, chúng em xin trình bày về những đặc điểm trong SQL Server 2000.
Phần 2 SQL Server.
I. SQL server 2000.
1. Khái niệm.
SQL server là một hệ thống quản lý cơ sở dữ liệu ( RDBMS – Relational Database Management System ) và sử dụng Transact-SQL để thao tác dữ liệu trên các máy khách và máy chủ.
Một RDBMS bao gồm những database, data engine, 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 nhằm tăng khả năng quản lý một khối lượng cơ sở dữ liệu rất lớn ( very large database environment). Cỡ vào khoảng hàng Tera-Byte và đồng thời phục vụ hàng ngàn user. Ngoài ra, SQL server còn có thể cùng thao tác với các loại server khác như IIS ( Microsoft Internet Information Server), E-Commerce...
2. Các ấn bản của SQL server 2000
Enterprise: có đầy đủ tính năng của một SQL Server. Cho phép chạy tốt trên hệ thống 32 CPUs và 64 GB RAM. Nó được tích hợp các dịch vụ phân tích dữ liệu hiệu quả (Analysis Service).
Standard: phù hợp cho các công ty vừa và nhỏ do giá thành rẻ hơn nhiều Enterprise, tất nhiên không thể có đầy đủ các tính năng như ấn bản trên. Song nó cũng chạy tốt trên hệ thống 4 CPUs và 2 GB Ram.
Personal: đây là một ấn bản tối ưu cho phép chạy trên các máy tính cá nhân và được cài trên hầu hết các phiên bản Window.
Developer: có đầy đủ tính năng như ấn bản Enterprise nhưng giới hạn số lượng người dùng kết nối. Đây là một ấn bản nên cài đặt với người mới sử dụng trên Window 2000 hay Window NT
Desktop Engine: là một engine chạy trên desktop không giao diện người dùng, kích thước cơ sở dữ liệu giới hạn khoảng 2GB.
Win CE: dùng cho các ứng dụng trên Window CE
Trial: một ấn bản dùng thử, có đầy đủ khả năng của ấn bản Enterprise, cho phép dùng miễn phí nhưng chỉ được dùng trong khoảng thời gian cho trước.
3. Các thành phần cơ bản trong hệ thống SQL Server
Một hệ thống SQL Server có tương đối nhiều thành phần. Dưới đây mô tả chúng.
Web Application
Line of Business. Reporting Application
Administration
Tools
DMO / DSO / WMI
MDX ADO/OLE DB/ HTTP / ODBC XML Transact-SQL
Analysis Services
Relational Database Engine Enterprise Edition
Query
Data Transformation Service
Replication
OLTP Database
Remote OLE DB Data Source
OLAP Data WareHouse
Relational Database Engine Enterprise Edition
SQL Server for Window CE
Mobile Disconnected Users or Desktop Database
Relational Database Engine Personal Edition or Desktop Engine
Local Database
Local Database
Mutli -Dimension Cube
a. Relational Database Engine: đây là thành phần cơ bản nhất của SQL Server. Nó có khả năng chứa dữ liệu ở các quy mô khác nhau như dạng bảng hay các kiểu kết nối thông dụng của Microsoft ( ADO-Activex Data Object, OLE DB, ODBC- Open Database Connectivity). Bên cạnh đó, nó có khả năng tự điều chỉnh như thêm tài nguyên của máy khi cần và trả lại tài nguyên cho hệ điều hành khi user log off.
b. Replication: khả năng nhân bản. Nếu một user có một database dùng chứa dữ liệu được các ứng dụng thường truy cập tới. Tuy nhiên, có lúc user muốn dùng database này trên server khác để tạo ra một báo cáo nhằm tránh ảnh hưởng cho server chính. Điều này gây ra một khó khăn là làm thế nào để cập nhập database này trên server chính. Cơ chế nhân bản cho phép thực hiện
điều này.
c. DTS ( Data Transformation Service): dịch vụ chuyển giao dữ liệu. Khi có người dùng sử dụng trong một công ty có các dữ liệu được lưu trữ tại nhiều nơi và tại các dạng khác nhau như Oracle, Microsoft Access, DB2... thì làm thế nào để chuyển dữ liệu giữa các server có các dữ liệu khác nhau về định dạng như thế này? Chức năng DTS cho phép chuyển đổi cả về vị trí lẫn chuyển giao các định dạng cho nhau.
d. Analysis Service: dịch vụ phân tích dữ liệu. Đây là một dịch vụ được cung cấp rất hiệu quả trong việc tìm được những thông tin cần thiết trong database dựa vào khái niệm khối đa chiều (multiple-dimension cube) và khai phá dữ liệu (data-mining)
e. English Query: những người đã từng học SQL thì rõ ràng đây là một phần không thể thiếu. Chúng là những câu lệnh truy vấn thao tác cơ sơ dữ liệu.
f . Meta Data Service: đây là một dịch vụ giúp cho lưu trữ và xử lý Meta data dễ dàng hơn. Chúng ta nên hiểu rằng Meta data là những thông tin mô tả cấu trúc của dữ liệu trong database như dữ liệu kiểu cột nào có thuộc tính khoá chính... Những kiểu dữ liệu này cũng được lưu trữ trong database nhưng khác với những loại dữ liệu thông thường nên gọi là Meta data.
g. SQL Server Tools: những công cụ cho người quản trị cơ sở dữ liệu. Chúng có một số công cụ dưới đây:
Enterprise Manager: cho người dùng toàn cảnh hệ thống cơ sở dữ liệu một cách trực quan. Nó quan trọng với những người mới học SQL.
Query Analyzer: cho phép sửa lỗi câu lệnh SQL rất quan trọng đối với những người quản trị hệ thống.
SQL Profiler: có khả năng bắt các sự kiện hay hoạt động diễn ra trên một SQL server và lưu lại dưới dạng text hữu dụng trong việc kiểm soát server.
h. Data Warehousing Framework: là tập hợp các thành phần và các API thực thi các tính năng lưu trữ dữ liệu của SQL Server 2000. Nó cung cấp một giao diện chung vốn được sử dụng bởi nhiều thành phần khác nhau để tạo và sử dụng một nơi lưu trữ dữ liệu.
4. Những tính năng trong SQL Server 2000
Tăng cường khả năng liên kết với Internet. Cho phép xuất các kết quả của Transact-SQL ra dạng XML với Web hoặc các trình ứng dụng kinh doanh bằng API ADO và OLE DB.
Bao gồm một ISAPI DLL cho phép các gốc ảo trong Microsoft Internet Information (IIS) liên kết với một instance của SQL Server. Các trình ứng dụng Internet có thể tạo các chuỗi URL để tham chiếu tới một gốc ảo của SQL Server và chứa một câu lệnh Transact-SQL. Câu lệnh này được gởi tới một instance của SQL Server và cho kết quả dạng XML.
Có các tính năng tối ưu hoá cao, hỗ trợ cho môi trường có khối lượng cơ sở dữ liệu lớn. Các phiên bản cũ hơn 6.5 có thể hỗ trợ các cơ sở dữ liệu từ 200GB - 300GB, còn đối với 7.0 trở lên là terabyte.
Trình cơ sở dữ liệu quan hệ SQL Server hỗ trợ tạo các index trên các khung nhìn. Tập hợp kết quả index được xác định lúc index được tạo ra và được bảo lưu lúc dữ liệu nền tảng được sửa chữa. Nhờ tạo ra một index trên một khung nhìn, việc thực hiện các phép tính phức tạp trên số lượng dữ liệu lớn có thể được gia tăng về tốc độ các query liên tiếp theo thứ tự độ rộng.
SQL Server tự động cấu hình khi chạy. Nhiều user cùng kết nối với SQL Server thì nó có thể sử dụng tài nguyên bổ sung. Nếu các trình ứng dụng khác cùng chạy trên server thì SQL Server sẽ giảm sử dụng bộ nhớ ảo để dành các trình ứng dụng kia...
Có các tính năng bảo vệ đầy đủ đối với các môi trường nhằm đảm bảo tính an toàn ngăn các sự cố như nhiều user cùng cố cập nhập cùng một loại dữ liệu trong một thời điểm.
Nhiều instance SQL Server 2000 có thể cùng chạy trên cùng một máy tính. Chẳng hạn, 1 công ty cung cấp các dịch vụ cơ sở dữ liệu cho nhiều khách hàng khác có thể chạy 1 instance của SQL Server cho mỗi khách hàng.
Các trình ứng dụng SQL Server có thể chạy trên cùng máy tính với SQL Server.
II. Transact SQL
1. Khái niệm về Transact SQL (T-SQL)
Thực chất T-SQL là một dạng mở rộng của chuẩn SQL theo ISO ( International Organization for Standardization) và ANSI ( American National Standards Institute) được sử dụng trong các SQL Server (nó khác với Procedural-SQL dùng trong Oracle).
Có thể hiểu T-SQL là một ngôn ngữ chính giúp người dùng giao tiếp với SQL Server.
2. Phân loại.
T-SQL bao gồm 3 nhóm sau đây
a. Data Definition Language ( DDL): chứa các lệnh quản lý thuộc tính của database như hàng, cột, tạo bảng mới... Chúng thường có dạng.
Để tạo ra một đối tượng có tên là name_Object
Creat name_Object
Để thay đổi định nghĩa bảng tên là name_Object
Alter name_Object
Để xoá bảng tên name_Object
Drop name_Object
b. Data Control Language ( DCL): đây là các lệnh trên từng Object. Chúng có các lệnh như là Grant, Revoke, Deny...
c. Data Manipulation Language ( DML): đây là các lệnh cho phép thao tác dữ liệu. Chúng có dạng Select, Delete, Update, Insert...
Select Name, Class
From Customers
Where (ClassName=’Tin7-K44’)
Trong ví dụ trên là, chọn Name, Class trong bảng Customers có ClassName là chuỗi Tin7-K44.
3. Cú pháp của T-SQL
a. Identifiers: là tên của các đối tượng cơ sở dữ liệu. Các đối tượng ở đây là những table, view, index... Có 2 loại identifier: regular identifier và delimited identifier (loại này cần phải có dấu ngoặc vuông đi kèm [])
Select * From [My Table]
Where [Order]=40
Lý do đặt Order trong dấu ngoặc vuông như trên là tránh va chạm với từ khoá Order.
b. Variances: biến trong SQL phải khai báo kiểu. Bắt đầu một biến luôn có @. Trong trường hợp biến là toàn cục cần 2 dấu @@.
DECLARE @IdClass
SET @IdClass=3
SELECT * FROM Customers
WHERE IdClassRoom=@IdClass + 2
c. Function: bao gồm những hàm có sẵn và những hàm do người dùng tự xây dựng
Hàm có sẵn lại thuộc vào 3 loại sau:
Rowset Functions: trả về một đối tượng như là recordset.
Aggregate Functions: thực hiện tính toán và trả về các giá trị như tổng, tích, trung bình...
Scalar Functions: làm việc trên các giá trị đơn và trả về giá trị đơn. Nó, chẳng hạn, cắt lấy phần tháng trong kiểu date...
d. Comment: những lời chú thích được đặt trong /*....*/
4. Thực thi lệnh trong SQL Server.
a. Lệnh đơn.
Đầu tiên, 1 lệnh đơn được phân tích cú pháp thông qua một bộ phân tích cú pháp là Parser. Tiếp đến, SQL Optimizer sẽ thực thi tối ưu câu lệnh nhằm tăng tốc độ và ít tốn tài nguyên. Sau đó, SQL Server Engine sẽ thực hiện và trả về kết quả.
b. Tập nhóm lệnh.
SQL Server cũng thực hiện tối ưu cho tập lệnh như các lệnh đơn và tìm cách thực thi tối ưu nhất. Đồng thời, chứa các lệnh trên đã biên dịch trong bộ nhớ. Sau đó, nếu các lệnh trên được gọi lại thì nó sẽ được chạy nhanh hơn nhờ không phải biên dịch lại.
Bên cạnh đó, còn 1 lệnh mà không thuộc T-SQL. Đó là lệnh GO. Lệnh này thông báo cho biết kết thúc một tập nhóm lệnh để thực thi tập lệnh.
III. Cơ sở dữ liệu trên SQL Server
1. Cấu trúc của SQL Server.
SQL Server có là một hệ thống multiple-instance như đã nói ở trên. Do vậy, chúng ta khi nói đến instance nào đó của Server thì hiểu rằng đang nói tới Default instance. Một instance bất kì của Server bao gồm 4 cơ sở dữ liệu hệ thống và có 1 hay nhiều cơ sở dữ liệu người dùng.
4 cơ sở dữ liệu hệ thống bao gồm:
Master: chứa thông tin hệ thống, các thông tin về database khác trong hệ thống, vị trí các file dữ liệu, thiết kế cấu hình hệ thống, các mã số khi đăng nhập.
Tempdb: chứa các bảng biểu hay các hàm lưu trữ tạm thời trong quá trình làm việc bởi các user hay chính do SQL Server Engine. Các bảng này tự động biến mất khi khởi động lại SQL Server hay cắt kết nối.
Model: có vai trò như một bản mẫu cho các database khác. Khi mà user tạo ra một database cho mình thì SQL sẽ copy những thông tin này vào database của user vừa tạo.
Msdb: những dữ liệu này được SQL Server Agent sử dụng hoặch định các báo động và các công việc làm cần thiết.
2. Cấu trúc của một SQL Server Database
Mỗi một database trong SQL Server bao giờ cũng có ít nhất 1 file chính và có thể có 1 hay nhiều file phụ đồng thời có 1 file transaction log.
Primary Data File (file chính): có phần mở rộng là .mdf. Nó chứa dữ liệu và các bảng hệ thống.
Secondary Data File (file phụ): có phần mở rộng là .ndf. Thường được dùng khi database phân chia trên nhiều đĩa.
Transaction Log File : thường có phần mở rộng là .ldf. Chứa những sự thay đổi trong database và đầy đủ thông tin để có thể roll back hay roll forward.
Trong SQL Server thì dữ liệu được lưu trữ theo từng Page 8KB và 8 Page liên tục tạo ra một phần mở rộng.
database
tÖp d÷ liÖu .mdf hay .ndf
tÖp log
.ldf
8 Pages 8KB liªn tiÕp nnhau
1 page 8KB
Trong SQL Server, muốn lưu trữ dữ liệu vào 1 bảng thì chúng ta phải dành một khoảng trống cho bảng đó. Những khoảng trống đó là các mở rộng ở trên. Có 2 loại mở rộng: phần mở rộng hỗn hợp ( mixed extend - cho phép chứa nhiều bảng trong cùng một mở rộng) và phần đồng bộ ( uniform extend - chỉ chứa dữ liệu của một bảng table). Đầu tiên, SQL Server thực hiện phần mở rộng hỗn hợp cho dữ liệu của một bảng và khi dữ liệu tăng trưởng thì chuyển sang phần đồng bộ.
3. Nguyên tắc hoạt động của file Transaction Log.
Như đã nói ở trên, file này ghi nhận sự thay đổi trong cơ sở dữ liệu. Quá trình thực hiện: khi có sự thay đổi data bằng các lệnh Insert, Update, Delete... từ các trình ứng dụng của người dùng, SQL Server sẽ tải trang dữ liệu tương ứng lên bộ nhớ ( vùng bộ nhớ này còn gọi là data cache). Tại đây, dữ liệu trên trang này được thay đổi ( những trang này đựơc gọi là dirty page) và những sữ thay đổi này được ghi vào file này. Sau cùng có một quá trình kiểm tra và ghi vào đĩa cứng nội dung của file này. Quá trình đó được gọi là Check Point Process. Tuy nhiên, không chỉ có quá trình trên, còn một quá trình khác mang tên Lazy writer cũng ghi nội dung của file log vào đĩa theo từng chu kì.
Chúng ta tiếp tục đi kỹ một chút về tiến trình Check Point này. Transaction nghĩa là giao dịch. Nhưng giao dịch nhiều khi gây nên những lỗi nguy hiểm. Vậy Check Point phải có cơ chế thực hiện thích hợp để không gây nhiễu database. Sơ đồ dưới đây minh hoạ điều này.
1
2
3
4
5
None
Roll forward
Roll back
Roll forwarrd
Roll back
Check Point
System faillure
Có thể giải thích sơ đồ này như sau:
Trong sơ đồ trên, mỗi transaction được biểu diễn bởi 1 mũi tên. Trục nằm ngang là trục thời gian. Tại transaction 2 và 3 có điểm Check Point. Tiếp đến, nó gặp sự cố hệ thống. Khi SQL Server được khôi phục trở lại, nó sẽ dựa vào những thông tin trên file log để phục hồi dữ liệu.
Như vậy, đối với transaction 1 thì Server không cần làm gì cả khi hệ thống bị sụp đổ vì tại Check Point nó đã được ghi vào đĩa rồi. Đối với transaction 2 và 4 sẽ được roll forward còn transaction 3 và 5 được roll back.
4. Cấu trúc logic của một SQL Server Database.
Trong SQL Server, mọi thứ đều được cụ thể hoá theo hướng đối tượng. Có những đối tượng dễ biết như table, view... và có những đối tượng thuộc hệ thống. Đối tượng thuộc hệ thống luôn bắt đầu với cụm từ sys hay sp. Chẳng hạn,
Sp_help[‘object’] : cho biết thông tin của object. Object ở đây là những table, view...
Sp_helpdb[‘database’]: cung cấp thông tin của một database nào đó.
Sp_helpdb[‘login’]: cho biết thông tin của user
IV Sao lưu và phục hồi dữ liệu.
1. Chiến lược phục hồi dữ liệu.
Chúng ta nên biết việc phục hồi dữ liệu là cực kì quan trọng. Khi những sự cố thường xuyên xảy ra như người dùng vô ý xoá đi một file cơ sở dữ liệu, file hệ thống, file transaction, bị tấn công bởi virus... phải đảm bảo hệ thống phục hồi đầy đủ trong thời gian sớm nhất. Bởi vậy, cần phải luôn kiểm tra trước khi hệ thống xảy ra sự cố và tránh số lần sao lưu dự phòng.
2 Một số phương pháp Back Up có trong SQL Server
Full Database Backups: copy toàn bộ các file trong cơ sở dữ liệu. Như vậy, mọi thông tin về user, database object, system object đều được sao lưu đề phòng. Làm như thế này giúp cho khôi phục toàn bộ thông tin nhưng gây tốn bộ nhớ và tốn thời gian thực hiện.
Differential Database Backups: copy toàn bộ thay đổi trong database sau lần full database backup trước đó.
File or File Group Backups: copy một data file đơn hay một nhóm file
Differantial File or File Group Backups: copy sự thay đổi của một file hay một nhóm file.
Transaction Log Backups: ghi lại những transaction trong transaction log file kể từ lần transaction log backup gần nhất. Phương pháp này cho ta phục hồi dữ liệu vào một thời điểm nào đó trong quá khứ mà vẫn đảm bảo tính đồng nhất.
Trong khi thực hiện quá trình sao lưu, mọi hoạt động của cơ sở dữ liệu cũng được back up nên có thể sao lưu ngay khi SQL đang chạy.
3. Một số mô hình phục hồi.
Full Recovery Model: phục hồi dữ liệu ít rủi ro nhất. Mọi hoạt động trong chế độ này như insert, update, delete... kể cả insert bằng bulk insert hay bcp cũng được đưa vào file transaction log. Khi có sự cố ta có thể phục hồi dữ liệu tại một thời điểm nào đó trong quá khứ. Khi dữ liệu bị hỏng, sẽ được back up lại từ file transaction log.
Bulk-Logged Recovery Model: phục hồi mang tính hành động. Có nghĩa là những hoạt động như bulk insert, bcp, creat index, write text, update text... chỉ được đưa vào transaction log file một lượng ít nhất thông tin nhằm cho biết hoạt động này có diễn ra mà không đi chi tiết về hoạt động đó. Còn những hoạt động của lệnh insert, update, delete vẫn được đưa đầy đủ vào file trên để tiện cho việc phục hồi.
Simple Recovery Model: trong chế độ này file transaction log luôn được