Cơ chế hoạt động của file nhật ký giao dịch trong SQL Server và PostgreSQL

MỤC LỤC

Nguyên tắc hoạt động của file Transaction Log

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. 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ì.

Cấu trúc logic của một SQL Server Database

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. 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.

Một số mô hình phục hồi

Trong đó riêng ngày chủ nhật được thực hiện Full Database BackUp còn 2 ngày thứ 3 và thứ 5 thực hiện lưu trữ những thay đổi. Chúng ta phải thống nhất rằng file transaction log được lưu trữ trong một đĩa cứng khác, nghĩa là file này không bị hỏng cùng với đĩa cứng lưu trữ dữ liệu.

BackUp Database

Copy toàn bộ file dữ liệu vào từ đĩa backup đến đĩa mới và thực hiện toàn bộ transaction trong transaction log file. Khi nói đến tính toàn vẹn dữ liệu là nói đến độ chính xác, tin cậy của dữ liệu.

Phương pháp đảm bảo an toàn dữ liệu

Đây là những thuộc tính mà bảng khi có sẽ tránh được các dữ liệu không chính xác đưa vào bảng. Trong một bảng thường có một hay nhiều cột có giá trị mang tính chất duy nhất để xác định một hàng bất trong bảng. Cho dù có những điểm tương đồng giữa Unique và Primary Key nhưng chúng có những cách dùng khác nhau.

Một cột cho phép chứa giá trị Null, thì Unique được đặt lên cột này nhưng Primary Key thì không. Một cột hay nhiều cột được thiết lập thuộc tính này để liên kết với dữ liệu trong bảng khác. Foreign Key của một bảng này sẽ giữ thuộc tính khoá chính cho bảng khác hay tham chiếu với cột có tính Unique.

Mặc dù mục đích của Foreign Key là quản lý một bảng con nhưng thực tế nó kiểm soát luôn cả bảng cha. Tương tự như Foreign Key kiểm soát giá trị đưa vào một cột nhưng nó không dựa vào bảng cha để xác định mà nó dựa vào một biểu thức để xác định điều này.

Truy vấn nâng cao

GROUP BY và HAVING: là những dãy điều kiện đi kèm khi ta chọn dữ liệu trong bảng. Lệnh này cho phép ghép nối các bảng có chung một hay nhiều cột lại với nhau. Lệnh này lựa chọn dữ liệu từ 2 hay nhiều bảng mà những cột bảng thứ nhất không có bên bảng thứ 2 cộng với những cột có được từ Inner Joins.

SELECT a.Au_fname, a.Au_lname, p.Pub_name FROM Authors a LEFT OUTER JOIN Publishers p ON a.City = p.City. SELECT a.Au_fname, a.Au_lname, p.Pub_name FROM Authors a FULL OUTER JOIN Publishers p ON a.City = p.City. Lệnh này chọn tất cả những dữ liệu từ 2 hay nhiều bảng trong đó tất cả các cột của bảng thứ 1 và bảng thứ 2 đều được chọn các giá trị giống nhau chỉ lấy một lần.

Kỹ thuật Import và Export Data

Thậm chí nó có thể xuất dữ liệu từ SQL Server ra các file này. Từ đó, muốn chuyển giao dữ liệu từ Oracle sang SQL Server thì trước tiên dùng bcp xuất dữ liệu sang file text sau đó nhập lại vào SQL Server. Bulk Insert cũng là lệnh cho phép nhập dữ liệu vào SQL nhưng không thể xuất được dữ liệu.

Khi nhập dữ liệu, thì bản thân file cho dữ liệu phải có dạng bảng hay cột. Đồng thời, trong SQL Server cũng phải tồn tại một bảng để lưu trữ dữ liệu được nhập vào. Còn khi xuất thì một file được tạo nếu nó chưa tồn tại hay được ghi đè nếu không tồn tại.

Đõy là xuất dữ liệu từ bảng Orders trong database PracticeDB ra file dạng văn bản Orders.txt, các cột ngăn với nhau bởi dấu ; Để xuất dữ liệu dùng “out” còn nhập dữ liệu dùng “in”. Nếu không có, mặc định là dùng TAB để phân cột và dùng xuống dòng để phân định hàng (“\n”).

Linked_Server_Name.Catalog.Shema.Object_Name

SQL Server và mạng

Nó có thể ghép nối với các SQL Server khác, liên kết với các client, hoặc thực hiện cùng trình ứng dụng ngay trên một máy tính. Với những trang Web có cơ sở dữ liệu lớn vượt quá tải trọng của SQL Server riênglẻ thì việc kết hợp các SQL Server vào với nhau là một việc quan trọng. Để kết nối các SQL Server gần nhau, người ta dùng các mạng SAN nhằm hỗ trợ cấp độ chuyển thông báo cao, giảm tải trọng của CPU, và thời gian chờ thông báo của các SAN đáng tin cậy hơn LAN hay WAN.

Các user chạy trình ứng dụng trên máy tính của mình kết nối đến một instance của SQL Server đang chạy trên một máy tính server. Các trình ứng dụng cùng thực hiện chung với SQL Server trên một máy tính tương tự như các user thực hiện trình ứng dụng của họ kết nối với trình cơ sở dữ liệu đang chạy trên server từ xa. Quá trình trao đổi thông tin giữa một trình ứng dụng SQL Server chạy trên cùng một máy tính với một instance của SQL Server.

SQL Server 2000 sử dụng các thành phần được gọi là client Net-Libraris để ngăn OLE DB Provider, SQL Server ODBC driver và DB-Library DLL không trao đổi thông tin với các IPC. Điều này làm cho OLE DB Provider, SQL Server ODBC driver và DB-Library DLL được SQL Server sử dụng để trao đổi thông tin.

Hình vẽ dưới đây mô tả quá trình này.
Hình vẽ dưới đây mô tả quá trình này.

Sơ lược ngôn ngữ Perl

    - Cỏc biến trong Perl được xỏc định bằng dấu $. Rừ ràng trong chương trỡnh trên không cần sự khai báo biến trước khi dùng. - Lệnh print là lệnh in ra màn hình, nó gần giống như printf của C. II.Cách chạy một chương trình trong Perl. Đầu tiên, bạn hãy soạn thảo một chương trình nguồn trong một file văn bản nào đó. Chẳng hạn, vidu1.pl và đặt nó trong thư mực vidu tại ổ đĩa C. Hóy đến dấu nhắc con trỏ DOS và gừ:. c:\vidu>perl vidu1.pl. Nhớ là đuôi file là .pl thì perl mới thực hiện. Các kiểu dữ liệu trong Perl. 3) Kiểu biến băm (associate array hay hash). Bản thân các biến này mang rất nhiều kiểu được định nghĩa trong các ngôn ngữ khác như C, Pascal. Mỗi phần tử của mảng có thể chứa giá trị tương ứng là nguyên, thực, sâu, giá trị hex, giá trị oct hoặc trống.

    Không như mảng ở trên, chỉ số của biến băm là các sâu còn gọi là khoá(key) trỏ đến giá trị (value). Có hai cách để khai báo biến băm. 2) Giữa khóa và giá trị cách nhau bằng dấu phẩy. Chú ý rằng giá trị mang kiểu vô hướng, nghĩa là nó có thể bằng sâu, nguyên, thực, giá trị hex. Vì Perl là ngôn ngữ chuyên về xử lý file cho nên print được sử dụng rộng rãi hơn printf.

    Song hãy cẩn thận, khi nhập dữ liệu phải Enter để tiếp tục lệnh khác cho nên dòng vào có kí tự Enter ở cuối dòng vào. Đối với phép -- thì chỉ tác dụng với số chứ không có tác dụng với chữ cái vì nếu giảm đi thì trong mọi trường hợp đều đưa về -1.

    PostGre SQL

    • Cấu trúc của Postgress SQL
      • Đặc điểm nổi bật của Postgres SQL

        Các khái niệm mô hình dữ liệu ban đầu của Posgre SQL và kể cả các quy tắc thiết kế, lưu trữ dữ liệu cũng được nói đến trong trang web này. Các ứng dụng của Posgre SQL bao gồm: hệ thống phân tích dữ liệu tài chính, theo dừi đúng gúi, một cơ sở dữ liệu thụng tin y học, và vài hệ thống thụng tin địa lý, trong tính toán khoa học. Sau năm 1996 tên của phiên bản đã bị thay đổi và phiên bản Posgress 95 không còn tồn tại nữa nó được thay bằng cái tên mới Posgress SQL nó thể hiện sự liên quan với SQL.

        • Các khoá và các mức đã đợc thay thế cùng với các phiên bản ,nó cho phép những phiên bản mới có thể vẫn xử dụng được dữ liệu của các phiên bản cũ. • SQL92 -tương hợp bổ sung ngôn ngữ với các đặc tính đã đợc thêm, bao gồm những khoá sơ cấp , sự bắt buộc kiểu chuỗi ký tự, và số nguyên hệ 16 và nhị phân nhập vào. Các trình ứng dụng độc lập với cơ sở dữ liệu có thể dễ dàng thay đổi, cập nhật hệ thống hoặc sử dụng các host cục bộ hay từ xa mà không cần thay đổi mã nguồn.

        Sau khi cài đặt được, thì chúng ta mới có thể sử dụng các phương thức trong DBI là available_driver() và data_sources() để tìm các driver và các database nào đang hiện diện. Thuộc tính AutoCommit cũng mặc định đang được kích hoạt và sẽ đưa ra cảnh cáo nếu phương thức commit được sử dụng để thay đổi database. Để thực hiện đIều này chúng ta sử dụng những phương thức sau fetchrow_array, fetchrow_arrayref, fetchrow_hashref, và fetchall_arrayref.

        Mỗi phương thức trên đều trả về dữ liệu ở dạng cụ thể là một mảng của các giá trị trường hay tham chiếu tới một biến băm có dạng name-value.

        Hình vẽ dưới đây mô tả cơ chế kết nối giữa server và client.
        Hình vẽ dưới đây mô tả cơ chế kết nối giữa server và client.