logo xDuLieu.com

Trang trướcTổng quan về ngôn ngữ SQLTrang sau

Một vài nét về lịch sử SQL

 

Theo dòng lịch sử, vào đầu những năm 1970, sau khi E. Codd đề xuất mô hình quan hệ, IBM bắt đầu phát triển một ngôn ngữ để làm việc với các CSDL thuộc loại này. Đầu tiên, họ sử dụng thuật ngữ Structured English Query Language (tạm dịch là Anh ngữ có cấu trúc dùng làm ngôn ngữ tham vấn) và gọi tắt là SEQUEL. Nhưng sau đó họ khám phá ra rằng nhãn hiệu này đã thuộc bản quyền của Hawker-Siddeley Aircraft Company (thuộc Anh). Để tránh những rắc rối về mặt pháp lý, IBM đổi tên là SQL và sử dụng cho các sản phẩm quản lý CSDL của mình (như DB2).

Do những ưu điểm của SQL mà những nhà sản xuất khác cũng sử dụng ngôn ngữ ấy cho các sản phẩm cùng loại và sau đó trở thành một tiêu chuẩn được ANSI và ISO thừa nhận và xây dựng. Tiêu chuẩn này cũng phát triển dần theo thời gian với các phiên bản SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2006, SQL:2008, SQL:2011 và mới nhất là SQL:2016.

Trong thời gian đầu, SQL chỉ sử dụng cho CSDL hoạt động theo mô hình quan hệ. Tuy nhiên, khi khoa học máy tính phát triển, dữ liệu cũng trở nên đa dạng hơn, và trong một số trường hợp, vượt quá khả năng của SQL theo quan điểm truyền thống. Để theo kịp với sự phát triển này, từ phiên bản 1999, SQL bắt đầu đưa vào một số tính năng để làm việc theo hướng đối tượng, hỗ trợ nhiều loại dữ liệu hơn, sử dụng một số khái niệm của lập trình hướng đối tượng như phương thức (method), đóng gói (encapsulation). Vì vậy những phiên bản mới của SQL được xem là hoạt động theo kiểu phối hợp quan hệ và đối tượng (object-relational database language).


Một số đặc điểm của SQL

 

Hiện nay nhiều người thường cho rằng SQL là những chữ viết đầu của Structured Query Language (ngôn ngữ tham vấn có cấu trúc). Thật ra không hoàn toàn như thế, SQL không có những tính chất của các ngôn ngữ lập trình có cấu trúc khác như C, Java hay Python. Mặt khác SQL không những chỉ dùng để tham vấn mà chức năng của nó còn phong phú hơn rất nhiều, ta có thể tạo ra các quan hệ, định nghĩa và thay đổi cấu trúc các quan hệ ấy, đưa thêm dữ liệu vào, hiệu đính dữ liệu, ...

Khi sử dụng các ngôn ngữ các lập trình thông dụng, ta phải xây dựng các đoạn lệnh (command) yêu cầu máy tính phải làm thế nào để đạt được các mục tiêu đã đề ra (thí dụ thuật toán để giải phương trình bậc hai). Nhưng trong SQL, ta chỉ phát biểu (statement) việc phải làm là gì (thí dụ tính điểm trung bình môn Toán của sinh viên lớp XYZ), còn làm thế nào thì chương trình sẽ tự tìm cách thực hiện.

Mặc dù SQL có thể đảm nhiệm nhiều chức năng, thực hiện được nhiều việc, nhưng nếu so sánh với những ngôn ngữ lập trình khác như C++, Basic, Python, thì SQL còn thiếu rất nhiều chức năng. Ta không thể dùng SQL để xây dựng các chương trình ứng dụng như các ngôn ngữ lập trình thông dụng khác. Vì thế SQL chỉ được xem như một ngôn ngữ con (sublanguage).

Như vậy ta thấy SQL không phải là một ngôn ngữ, không chỉ dùng để tham vấn và các phát biểu của SQL thì cũng không có cấu trúc chặt chẽ.


Phân loại các phát biểu của SQL

 

Với SQL, ta có thể yêu cầu CSDL thực hiện một số việc như thêm cột, bớt dòng, tra cứu thông tin. Yêu cầu này được đặt ra dưới dạng các phát biểu. Tùy theo ý nghĩa của yêu cầu này, người ta chia các phát biển làm 3 nhóm :

  • Các phát biểu để định nghĩa dữ liệu (Data Definition Language hay DDL). Các phát biểu này dùng để tạo mới, điều chỉnh hay xóa bỏ các thành phần của cơ sở dữ liệu như bảng, khung hiển thị, lược đồ, thủ tục. Các từ khóa phổ biến của nhóm này là CREATE (tạo mới), ALTER (thay đổi), DROP (loại bỏ).
  • Các phát biểu để thao tác trên dữ liệu (Data Manipulation Language hay DML). Các phát biểu này dùng để tìm kiếm, thay đổi, thêm, bỏ bớt dữ liệu trong các thành phần của CSDL. Các từ khóa thường dùng của nhóm này là SELECT (tìm chọn), INSERT (thêm), UPDATE (cập nhật), DELETE (xóa).
  • Các phát biểu để theo dõi, kiểm soát hoạt động của CSDL (Data Control Language hay DCL). Các phát biểu này dùng để theo dõi các hoạt động của các đối tượng, đặc biệt là những dữ liệu nhạy cảm và có những biện pháp phù hợp khi cần thiết. Các từ khóa phổ biến của nhóm này là GRANT (cấp quyền), REVOKE (thu hồi).

Các phương pháp thực thi phát biểu SQL

 

Ta có 4 phương pháp để thực thi các phát biểu SQL:

  • Thực thi trực tiếp : người dùng gõ các phát biểu SQL trực tiếp vào một màn hình cung cấp bởi phần ứng dụng ngoại vi (front-end application) của HQTCSDL. Phát biểu này được thực thi và câu trả lời hiện ra trên màn hình. Phần ứng dụng ngoại vi thường được đặt riêng rẽ với máy chủ chứa CSDL.
  • Nhúng (embeded) SQL : SQL được nhúng vào chương trình ứng dụng chính được viết bằng một ngôn ngữ khác (như C hay Python). Trước khi chương trình được biên dịch, phần tiền xử lý (preprocessor) sẽ phân tích mã lệnh, tách đoạn SQL riêng để biên dịch riêng.
  • Liên kết qua các mô đun : Các phát biểu SQL hình thành các mô đun riêng, nối với chương trình chính qua các liên kết.
  • Sử dụng các câu gọi lệnh (call level interface hay CLI) : Các phát biểu SQL được đưa vào đối số của các chương trình con trong chương trình chính. Như vậy, các phát biểu SQL không được biên dịch trước mà được thực thi bởi HQTCSDL.

Trong thực tế, phương pháp thứ hai được sử dụng phổ biến hơn cả nhờ tận dụng thế mạnh của cả hai phần, ngôn ngữ lập trình chính và SQL. Tuy nhiên, trong website này chúng tôi sẽ sử dụng phương pháp thứ nhất để các bạn nắm vững các kiến thức cơ bản hơn.



Trang trướcVề đầu chươngTrang sau


Trang web này được cập nhật lần cuối ngày 25/11/2018