Thứ Năm, 10 tháng 10, 2019

Bạn lựa chọn Oracle hay SQL Server?

MS SQL Server và Oracle là 2 trong số các hệ thống quản lý cơ sở dữ liệu quan hệ (Relational Database Management Systems - RDBMS) hiệu quả. Vậy MS SQL Server và Oracle và gì? Nên dùng cái nào? Bài viết dưới đây sẽ giúp bạn so sánh MS SQL Server và Oracle để đưa ra lựa chọn đúng đắn nhất dành cho mình.

Những tiến bộ của công nghệ đáp ứng được phần nào nhu cầu sử dụng các giao dịch trực tuyến cho người dùng. Cụ thể là mua sắm trực tuyết hoặc bất kỳ hình thức thanh toán hóa đơn nào hầu hết đều có thể thực hiện thông qua internet.
Dần dần, người dùng bắt đầu sử dụng cơ sở dữ liệu quan hệ (RDB) để cộng tác bằng cách sử dụng nhiều dữ liệu hơn mà không phải sắp xếp lại dữ liệu cho các mục đích khác nhau. 
Để quản lý cơ sở dữ liệu quan hệ (RDB), các chuyên gia cơ sở dữ liệu đã tạo ra một giải pháp quản lý dữ liệu độc quyền cho các các sở dữ liệu quan hệ này, giải pháp này được gọi là hệ thống quản lý cơ sở dữ liệu quan hệ (Relational Database Management Systems - RDBMS).
Một số ví dụ về hệ thống quản lý cơ sở dữ liệu quan hệ - RDBMS như MS AccessOracleIBM DB2MS SQL ServerSybase và My SQL. Đó là một trong những RDBMS tốt nhất, đáp ứng nhu cầu của người dùng.
Chúng ta sẽ cùng so sánh các tính năng của 2 CSDL Oracle và SQL Server:
Cú pháp và ngôn ngữ truy vấn
Cả MS SQL Server và Oracle sử dụng ngôn ngữ truy vấn mang tính cấu trúc (Structured Query Language) để lấy dữ liệu từ các cơ sở dữ liệu tương ứng. MS SQL Server sử dụng T-SQL, nghĩa là Transact-SQL và Oracle sử dụng PL/SQL, tức là Procedural SQL.
Công ty
MS SQL Server là sản phẩm của Microsoft Corporation và được biết đến với dịch vụ khách hàng thông qua các diễn đàn như MSDN và Connect Website, nơi người dùng có thể tiếp cận team dịch vụ khách hàng dễ dàng khi gặp phải bất kỳ vấn đề nào. Ngay cả khi người dùng bị mắc kẹt, họ có thể dễ dàng liên hệ với kỹ thuật viên để được giúp đỡ. 
Oracle ngoài các diễn đàn miễn phí họ còn có kho Oracle Support (tính phí) với hàng tỷ case vượt trôi so với MS SQL Server. Các tài liệu docs.oracle.com cũng rất đa dạng, phong phú từ cơ bản đến master để tự học và phát triển.
Tính phức tạp của các cú pháp
Các cú pháp được sử dụng trong MS SQL Server tương đối đơn giản và dễ sử dụng. MS SQL Server cho phép đóng gói procedure, đến mức độ nào đó.
Với Oracle, người dùng có thể tạo các gói bằng cách nhóm các procedure. Các cú pháp phức tạp hơn một chút nhưng hiệu quả hơn.
Lỗi xử lý
MS SQL Server cung cấp các thông báo lỗi bằng một định dạng được xác định trước. Thông báo lỗi của Oracle được hiển thị rõ ràng hơn và xử lý dễ dàng hơn. Nhưng người dùng cần phải cẩn thận trong việc xác định các deadlock vì cả MS SQL Server và Oracle đều gây rắc rối cho người dùng trong trường hợp như vậy.
Quản lý giao dịch
MS SQL Server khóa toàn bộ khối hồ sơ được sử dụng trong một giao dịch và thực thi từng lệnh một. Vì hồ sơ bị chặn và không cho phép người khác sử dụng, MS SQL Server có thể tự do sửa đổi nó trước khi nhận được lệnh Commit. Oracle không bao giờ sửa đổi dữ liệu cho đến khi nhận được lệnh Commit từ DBA, trong suốt một giao dịch.
Rollback giao dịch
Trong một giao dịch trong MS SQL Server không được phép roll back lại dữ liệu vừa thay đổi nhưng chưa commit, nhưng trong Oracle thì được phép (lệnh rollback).
Các giao dịch không hành công
Trong trường hợp giao dịch thất bại, MS SQL Server phải đảo ngược tất cả các hoạt động đã được thực hiện cho giao dịch đó. Điều này là do MS SQL Server đã thực hiện những thay đổi bằng cách chặn hồ sơ.
Ngược lại Oracle không phải đảo ngược như vì tất cả những thay đổi đã được thực hiện trên bản sao chứ không phải trên bản gốc.
Truy cập đồng thời và thời gian chờ (wait)
Trên MS SQL Server, khi đang thực hiện quá trình ghi không được phép đọc, và điều này dẫn đến tình trạng là thời gian chờ lâu.
Trong khi quá trình ghi đang diễn ra trên Oracle, nó cũng cho phép người dùng đọc bản sao cũ trước khi cập nhật. Do đó, Oracle có thời gian chờ ngắn hơn nhưng bạn không được phép ghi.
Hỗ trợ nền tảng
MS SQL Server chỉ có thể chạy trên một nền tảng duy nhất là Windows. Do thiếu sự hỗ trợ nền tảng, nên MS SQL Server không phù hợp với các doanh nghiệp hoạt động trên toàn thế giới sử dụng các hệ điều hành khác nhau.
Oracle có thể chạy trên hầu hết nền tảng khác nhau như  Solaris, AIX, Linux, Debin, Windows, MACOS,…. Nó cung cấp hỗ trợ nền tảng tốt, do đó, Oracle có thể được sử dụng trong các doanh nghiệp sử dụng nhiều hệ điều hành khác nhau.
Khóa (lock)
Khóa trang là một khái niệm trong MS SQL Server được sử dụng khi nó cần nhiều chuỗi của một trang được chỉnh sửa. MS SQL Server khóa các trang có cùng kích thước cho mỗi sửa đổi, nhưng các chuỗi chưa được chỉnh sửa cũng bị khóa theo mà không có lý do chính đáng. Vì vậy, người dùng khác phải đợi cho quá trình chỉnh sửa kết thúc.
Ngược lại Oracle không khóa các trang nhưng thay vào đó nó tạo ra một bản sao trong quá trình chỉnh sửa, sửa đổi nội dung. Do đó, người dùng khác không cần phải chờ cho đến khi quá trình chỉnh sửa nội dung hoàn tất.
Phân bố bộ nhớ để phân loại
MS SQL Server sử dụng global memory allocation và không thể thay đổi bởi DBA khi phân loại hoặc bộ nhớ đệm cho hiệu suất tốt hơn. Với thiết lập này, những lỗi của người dùng có thể tránh được. Oracle sử dụng dynamic memory allocation, do đó hiệu suất được cải thiện, nhưng tỉ lệ xuất hiện lỗi của người dùng là cao khi bạn “xâm nhập” vào DB để cải thiện hiệu suất của nó.
Index (chỉ mục)
MS SQL Server có rất ít tùy chọn để phân loại các bảng với các chỉ mục. Lý do là bởi vì MS SQL Server thiếu Bitmap, các chỉ số dựa trên các chức năng, và key đảo ngược (reverse key). Oracle sử dụng Bitmap, các chỉ mục dựa trên các chức năng và các key đảo ngược, cung cấp các tùy chọn tốt hơn và hiệu suất tốt hơn.
Table Partition
MS SQL Server  thời kỳ đầu không cho phép phân chia các bảng lớn, điều này khiến cho việc quản lý dữ liệu trở nên khó khăn, tuy nhiên các phiên bản mới đã hỗ trợ tính năng Table partition. Oracle giúp cho việc quản lý dữ liệu dễ dàng hơn bằng cách cho phép phân đoạn các bảng lớn với tính năng table partition rất tuyệt vời. Có thể chuyển (move), exchange, drop, truncate,.. với partition.
Tối ưu hoá truy vấn
Tối ưu hóa các truy vấn trong MS SQL Server bị thiếu, nhưng trong Oracle thì có đầy đủ các tính năng để tối ưu hóa các câu lệnh dù phức tạp đến đâu.
Triggers
Cả hai đều cho phép Triggers, nhưng trong MS SQL Server chủ yếu sử dụng After Triggers. Trong Oracle, cả Before Triggers và After Triggers được sử dụng như nhau. Việc sử dụng Triggers được yêu cầu trong các môi trường thời gian thực và sự hỗ trợ này để các cơ sở dữ liệu thích hợp hơn.
Liên kết các file bên ngoài
MS SQL Server sử dụng các máy chủ liên kết để đọc hoặc ghi các file bên ngoài. Ngược lại, Oracle sử dụng Java để làm điều đó.
Cả MS SQL Server và Oracle đều có một tùy chọn để liên kết các file như thế, chỉ có điều là cách tiếp cận khác nhau.
Giao diện
Giao diện đơn giản và thân thiện với người dùng là tính năng tuyệt vời của MS SQL Server. Nó tự động tạo ra các dữ liệu thống kê và tự chỉnh. Ngoài ra, với nguồn dữ liệu có sẵn lớn, người dùng có thể dễ dàng tìm hiểu và tự học MS SQL Server. Ngược lại giao diện người dùng của Oracle phức tạp hơn một chút nhưng giao diện Pro hơn, đầy đủ các tính năng cho quản trị sử dụng, đặc biệt với Oracle Cloud 13c thì việc quản trị đơn giản, thuận tiện, trực quan hơn bất kỳ công cụ nào khác.
Sử dụng tốt nhất
Khi so sánh MS SQL Server với Oracle: MS SQL Server là lựa chọn tốt nhất cho các cơ sở dữ liệu nhỏ hơn, bởi nó sẽ tốn rất nhiều thời gian cho các cơ sở dữ liệu có kích thước lớn hơn. Nếu bạn có nhiều thời gian và có thể chờ đợi được thì có thể lựa chọn MS SQL Server.
Oracle vì hỗ trợ cơ sở dữ liệu lớn hơn, thời gian chờ ít hơn, hoạt động tối ưu, hiệu năng cao hơn với các hệ thống lớn, điều  này đã được các doanh nghiệp trên toàn thế giới công nhận từ khi Oracle đưa ra phiên bản đầu tiên đến nay. Với tính năng Pluggable từ Oracle DB 12c lại phù hợp với dữ liệu nhỏ, trung bình. Do đó cơ sở dữ liệu Oracle chính là sự lựa chọn thông minh, tinh tế mà bạn đang tìm kiếm cơ sở dữ liệu cho doanh nghiệp của bạn, từ doanh nghiệp lớn, đến doanh nghiệp nhỏ.
BẢNG SO SÁNH MS SQL SERVER VÀ ORACLE
MS SQL Server
Oracle
Sử dụng T-SQL
Sử dụng PL/SQL
Thuộc Microsoft Corporation
Thuộc Oracle Corporation
Cú pháp đơn giản và dễ hiểu
Cú pháp phức tạp hơn một chút
Hiển thị thông báo lỗi ở một định dạng xác định trước
Hiển thị thông báo lỗi rõ ràng hơn
Lỗi giao dịch yêu cầu dữ liệu được sửa đổi trở lại bản gốc trước khi thực hiện quá trình ghi
Quá trình xử lý đơn giản hơn nhiều vì các thay đổi được thực hiện trên một bản sao
Các giá trị thay đổi trước khi nhận lệnh Commit
Các giá trị không đổi trước khi nhận lệnh Commit
Sử dụng tính năng chặn trang và không cho phép đọc trong quá trình chặn trang
Sử dụng bản sao của hồ sơ trong quá trình chỉnh sửa và cho phép đọc dữ liệu gốc trong quá trình chỉnh sửa
Roll Back không được cho phép trong một giao dịch
Roll Back được phép
Hỗ trợ khách hàng tốt
Hỗ trợ khách hàng tốt nhưng kỹ thuật viên không có nhiều kinh nghiệm
Chỉ chạy trên nền tảng Windows 
Chạy trên nhiều nền tảng khác nhau
Khóa các trang cùng kích thước
Kích thước khóa thay đổi theo nhu cầu
Sử dụng Global memory allocation và ít xâm nhập DBA. Do đó tỉ lệ lỗi người dùng thấp
Sử dụng Dynamic memory allocation và xâm nhập DBA nhiều hơn. Do đó tỉ lệ lỗi người dùng cao hơn
Không sử dụng Bitmap, các chỉ số dựa trên chức năng và key reverse 
Sử dụng Bitmap, các chỉ số dựa trên chức năng và key reverse
Tối ưu hóa truy vấn bị thiếu
Sử dụng tối ưu hóa truy vấn Star
Cho phép triggers và sử dụng After triggers
Sử dụng cả After và Before triggers
Sử dụng liên kết máy chủ để đọc và ghi các file bên ngoài
Sử dụng Java
Giao diện người dùng đơn giản
Giao diện phức tạp hơn nhưng đầy đủ và Pro hơn
Phù hợp với các dữ liệu nhỏ, trung bình
Phù hợp với các dữ liệu lớn, mức enterprise
Với Pluggable từ 12c lại phù hợp với dữ liệu nhỏ, trung bình

---------------------------
* Dữ liệu trong thời đại 4.0 là "TRÁI TIM" của doanh nghiệp. Quản trị cơ sở dữ liệu (Database Administration - DBA) là ngành có lương cao nhất trong ngành IT và đầy tiềm năng trong thời đại 4.0. Oracle là cơ sở dữ liệu hàng đầu trên thế giới và được rất nhiều doanh nghiệp lớn trên thế giới và Việt Nam sử dụng.

* Bạn có mong muốn từng bước trở thành chuyên gia DBA không? Nếu câu trả lời là CÓ thì hãy nhanh chóng đăng ký sở hữu trọn đời khóa học online "Quản trị cơ sở dữ liệu cơ bản" của tôi tại Unica (bạn có thể xem trên điện thoại, máy tính bảng, PC vào bất kỳ lúc nào chỉ cần có mạng Internet). Hiện tại tôi đang khuyến mại cho 100 bạn đăng ký đầu tiên giảm giá từ 2400K còn 799K, CAM KẾT HOÀN TIỀN 100% nếu học xong không có kết quả:

* Môn 1: Quản trị Oracle 12 cơ bản, giảm giá 70% HÔM NAY cho 100 bạn đầu tiên từ 2tr4 còn 799K theo link:  https://bit.ly/3d2ofqZ (khoá này học ở Oracle hãng là 1.500$), chuyển khoản còn 699K

* Môn 2: Quản trị Linux trong 21h, cũng giảm giá 70% HÔM NAY  cho 100 bạn đầu tiên từ 2tr4 còn 799K theo link: https://bit.ly/3e7gwJw, chuyển khoản còn 699K

* Combo1: Cho 2 khóa  hc (Quản trị Oracle 12 cơ bản + Quản trị Linux trong 21h)  giá 1.200K chuyển khoản

--> Thông tin TÀI KHOẢN:

- Trần Văn Bình, STK 1920767736012, Ngân hàng Techcombank, chi nhánh Thăng Long


- Nội dung: Tên + (Môn 1 hoặc Môn 2 hoặc Combo) + Số tiền, sau đó chụp màn hình chuyển khoản gửi về email tranbinh48ca@gmail.com (ví dụ nội dung: TranVanBinh Combo1 1200K, TranVanBinh Mon1 799K, TranVanBinh Mon2 799K, 

---------------------------
* KT NI VI TRN VĂN BÌNH:
📧 Mail: tranbinh48ca@gmail.com
☎️ Mobile: 0902912888
🅿️ Website: http://www.tranvanbinh.vn
🎬 Youtube: http://bit.ly/2YIZKtc
👨‍👩‍👧‍👦 Group FB: https://www.facebook.com/groups/413698089218929
👨‍ Messenger: https://m.me/101036604657441
⚡️ Skype: tranbinh48ca


Đăng ký kênh ca Trn Văn Bình 🎬 Youtube: http://bit.ly/2YIZKtc đ cp nht nhng video mi nht

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master