Computer >> Máy Tính >  >> Lập trình >> MySQL

Cuộc chiến cơ sở dữ liệu:MSSQL Server, Oracle PL / SQL và MySQL

Với rất nhiều cơ sở dữ liệu trên thị trường, cuộc chiến tranh tâm trí đã bắt đầu và đây là thời điểm thích hợp để hiểu sự khác biệt và tầm quan trọng của 3 cơ sở dữ liệu quan hệ hàng đầu trên thị trường - Microsoft SQL Server, Oracle PL / SQL và MySQL. Hệ quản trị cơ sở dữ liệu quan hệ hiện đã trở thành xương sống của ngành và với rất nhiều lựa chọn sẵn có, rất khó để tìm ra lựa chọn nào.

Hệ thống quản lý cơ sở dữ liệu quan hệ được giới thiệu vào năm 1980. Bài viết này tập trung vào khám phá lịch sử và các tính năng của ba RDBMS phổ biến trong ngành:Microsoft SQL Server, Oracle và MySQL. Microsoft SQL Server và Oracle là phần mềm thương mại, MySQL là RDBMS mã nguồn mở.

Cuộc chiến cơ sở dữ liệu:MSSQL Server, Oracle PL / SQL và MySQL

Oracle là công ty đầu tiên đưa RDBMS ra sử dụng thương mại vào những năm 1980. Vào giữa những năm 1990, Microsoft tham gia thị trường với SQL Server như một đối thủ nặng ký của Oracle. Mặt khác, MySQL ban đầu được phát triển và phân phối như một phần mềm mã nguồn mở. MySQL được phát hành lần đầu tiên vào năm 1995 và phiên bản windows được phát hành vào năm 1998. Năm 2008, nó được mua lại bởi SUN và sau đó là Oracle.

Ngôn ngữ - Trái tim của Giao tiếp

Xương sống của bất kỳ RDBMS nào là ngôn ngữ được sử dụng để thực thi các truy vấn và đó là cách mà hiệu suất và việc triển khai của chúng bị ảnh hưởng. Mặc dù cả ba hệ thống quản lý cơ sở dữ liệu đều sử dụng phiên bản Ngôn ngữ truy vấn có cấu trúc hoặc SQL. Microsoft SQL Server sử dụng Transact-SQL, hoặc T-SQL, là một phần mở rộng của SQL được phát triển ban đầu bởi Sybase và được Microsoft sử dụng. Trong khi đó, Oracle sử dụng PL / SQL hoặc Ngôn ngữ thủ tục / SQL.

Cả hai đều là “hương vị” hoặc phương ngữ khác nhau của SQL và cả hai ngôn ngữ đều có cú pháp và khả năng hơi khác nhau. Sự khác biệt chính giữa hai ngôn ngữ là cách chúng xử lý các biến, các thủ tục được lưu trữ và các hàm tích hợp. PL / SQL trong Oracle cũng có thể nhóm các thủ tục lại với nhau thành các gói, điều này không thể thực hiện được trong MS SQL Server. PL / SQL có thể phức tạp hơn một chút và có khả năng mạnh mẽ hơn, trong khi T-SQL đơn giản hơn và dễ triển khai hơn nhiều.

Cuộc chiến cơ sở dữ liệu:MSSQL Server, Oracle PL / SQL và MySQL

Mặt khác, MySQL sử dụng phiên bản nhẹ của T-SQL và cũng kết hợp ngôn ngữ thủ tục liên quan chặt chẽ đến SQL / PSM. Tuy nhiên, các đối tượng mã được lưu trữ của MySQL gần với tiêu chuẩn ANSI, nhưng một lần nữa, chúng không có chiều rộng và chiều sâu của phần mở rộng độc quyền của T-SQL, Microsoft và Sybase cho SQL.

Kiểm soát giao dịch

Một giao dịch có thể được nói là một nhóm các hoạt động được thực hiện như một đơn vị duy nhất. Ví dụ:nếu người dùng đang cố gắng thực thi một số truy vấn SQL, thì tất cả đều được thực thi hoặc không có. Đây là một trong những điểm khác biệt chính giữa Oracle và MS SQL Server liên quan đến kiểm soát giao dịch.

Theo mặc định, MS SQL Server sẽ thực thi và cam kết từng lệnh / tác vụ riêng lẻ và sẽ rất khó hoặc không thể khôi phục các thay đổi nếu có bất kỳ lỗi nào xảy ra. Lệnh "BEGIN TRANSACTION" được sử dụng để nhóm các câu lệnh một cách hợp lý và khai báo phần đầu của một giao dịch và câu lệnh COMMIT có thể được sử dụng ở phần cuối. Câu lệnh COMMIT này sẽ ghi dữ liệu đã thay đổi vào đĩa và kết thúc giao dịch. Trong một giao dịch, ROLLBACK sẽ loại bỏ bất kỳ thay đổi nào được thực hiện trong khối giao dịch. Sau khi lệnh COMMIT được đưa ra, bạn không thể quay trở lại nữa, ngoài lệnh COMMIT.

Cuộc chiến cơ sở dữ liệu:MSSQL Server, Oracle PL / SQL và MySQL

Trong khi đó trong Oracle, mỗi kết nối cơ sở dữ liệu mới được coi là một giao dịch mới. Khi các truy vấn được thực thi và các lệnh được đưa ra, các thay đổi chỉ được thực hiện trong bộ nhớ của cơ sở dữ liệu và vẫn còn trong bộ đệm. Không có gì được cam kết cho đến khi một tuyên bố COMMIT rõ ràng được đưa ra. Sau COMMIT, lệnh tiếp theo được phát hành về cơ bản bắt đầu một giao dịch mới và quá trình bắt đầu lại. Điều này cung cấp tính linh hoạt cao hơn và giúp kiểm soát lỗi cũng như không có thay đổi nào được cam kết trên đĩa cho đến khi lệnh COMMIT được thực thi rõ ràng.

Trong trường hợp của MySQL, việc hỗ trợ các giao dịch dễ dàng tương thích với InnoDB. InnoDB là một công cụ lưu trữ cho MySQL và theo mặc định là có sẵn với MySQL. Nó cung cấp các tính năng giao dịch tuân thủ ACID tiêu chuẩn, cùng với hỗ trợ khóa ngoại.

Tổ chức các đối tượng cơ sở dữ liệu

Việc tổ chức các đối tượng cơ sở dữ liệu cũng là một điểm khác biệt lớn trong 3 cơ sở dữ liệu này. MS SQL Server tổ chức tất cả các đối tượng, chẳng hạn như bảng, dạng xem và thủ tục, theo tên cơ sở dữ liệu. Người dùng MS SQL được gán cho một đăng nhập, được cấp quyền truy cập vào cơ sở dữ liệu cụ thể và cả các đối tượng của nó. Trong Microsoft SQL Server, mỗi cơ sở dữ liệu có một tệp đĩa riêng, không được chia sẻ trên máy chủ.

Trong khi đó trong Oracle, tất cả các đối tượng cơ sở dữ liệu được nhóm theo các lược đồ. Các lược đồ không là gì ngoài các cấu trúc cơ sở dữ liệu là một tập hợp con của các đối tượng cơ sở dữ liệu. Tất cả các đối tượng cơ sở dữ liệu được chia sẻ giữa tất cả các lược đồ và người dùng. Mặc dù tất cả đều được chia sẻ, nhưng vai trò và quyền đối với mỗi người dùng được xác định và quyền giống nhau có thể được giới hạn ở một số lược đồ và bảng nhất định.

Tóm lại, cả ba, MySQL, Oracle và SQL Server đều là các tùy chọn RDBMS mạnh mẽ. Mặc dù có một số khác biệt khác về cách chúng hoạt động “chui” và được triển khai, chúng có thể được sử dụng theo cách gần như tương đương. Mỗi loại có thể được sử dụng với các mục tiêu khác nhau trong môi trường khác nhau. Mục đích có thể giống nhau, nhưng cách triển khai khác nhau.