• Thứ Hai, 31/10/2005 15:09 (GMT+7)

    Structured Query Language

    Định nghĩa: Structured Query Language (SQL) là ngôn ngữ lập trình được thiết kế để lấy thông tin ra và đưa thông tin vào một cơ sở dữ liệu quan hệ. Các vấn tin được tạo thành từ ngôn ngữ lệnh cho phép bạn chọn lọc, chèn, cập nhật và định vị dữ liệu. SQL là chuẩn của cả ANSI (American National Standards Institute) và ISO (International Standards Organization), mặc dù nhiều cơ sở dữ liệu hỗ trợ loại SQL có các mở rộng chuyên biệt.

    Động lực chính được dùng để vấn tin, đọc và cập nhật cơ sở dữ liệu quan hệ là ngôn ngữ vấn tin có cấu trúc hay SQL. Được thiết kế để đặt những câu hỏi về thông tin, SQL không phải là ngôn ngữ thủ tục như các ngôn ngữ truyền thống: Fortran, Basic, C hay Cobol, trong đó bạn phải viết thủ tục để thực hiện một thao tác nào đó tuần tự theo thứ tự đã định trước cho đến khi tác vụ được hoàn tất. Thủ tục này có thể là tuyến tính, lặp hoặc nhảy đến một điểm hay một thủ tục khác. Trong bất kỳ trường hợp nào, lập trình viên cũng phải xác định thứ tự thực thi.

    Tuy nhiên, với SQL bạn chỉ cần "bảo" cho hệ thống những gì bạn cần. Tuỳ thuộc vào hệ thống quản lý cơ sở dữ liệu mà nó sẽ phân tích vấn tin theo cấu trúc riêng của nó và xác định được những thao tác cần thiết để thực hiện việc lấy thông tin. SQL hết sức phổ biến và là nền tảng để hoàn thành bất kỳ công việc nào liên quan đến cơ sở dữ liệu cho dù giao diện của chúng có khác nhau.

    Vì vậy, một công cụ lập trình trực quan dùng để phát triển ứng dụng có tính năng cơ sở dữ liệu có thể có giao diện đồ hoạ hướng đối tượng rất hấp dẫn. Tuy nhiên, một khi công việc lập trình hoàn tất, hệ thống này sẽ chuyển toàn bộ lời gọi và lệnh cơ sở dữ liệu thành dạng SQL. Điều này giúp đơn giản hoá việc tích hợp các hệ thống yêu cầu và cung cấp dịch vụ, đặc biệt là trong các ứng dụng client/server nhiều lớp. Ngoại lệ duy nhất cho quy tắc này là với cơ sở dữ liệu hướng đối tượng, cấu trúc và kiến trúc của nó không phải là dạng quan hệ.

    Cơ sở dữ liệu quan hệ

    Trong cơ sở dữ liệu quan hệ, dữ liệu được tách biệt thành từng tập và được lưu trong một hay nhiều bảng có cấu trúc hàng và cột tương tự nhau. Cơ sở dữ liệu quan hệ có thể nhanh chóng thu thập các mục dữ liệu từ những bảng khác nhau và trả chúng về cho người dùng hay ứng dụng ở dạng tập hợp dữ liệu thống nhất được gọi là kết quả. Vì những mẫu dữ liệu khác nhau có thể được nhóm theo những quan hệ đặc biệt (chẳng hạn quan hệ giữa tên của nhân viên với vị trí của nhân viên đó hay kết quả bán hàng), mô hình cơ sở dữ liệu quan hệ mang lại cho người thiết kế cơ sở dữ liệu khả năng linh hoạt trong việc mô tả những mối quan hệ giữa các thành phần dữ liệu cho bất kỳ hệ thống riêng biệt nào. Một ưu điểm khác là người dùng có thể hiểu biết thông tin trong cơ sở dữ liệu này một cách sâu sắc hơn.

    Chuyện về SQL

    Lịch sử của SQL bắt đầu vào năm 1970 tại phòng nghiên cứu của IBM, ở đó E.F. Codd và cộng sự đã phát triển mô hình cơ sở dữ liệu quan hệ và tạo ra hệ thống có tên là DB2. Khi cơ sở dữ liệu quan hệ phát triển rộng rãi vào thập niên 1980, SQL đã được hệ thống hoá để dùng trong công nghệ thông tin thương mại. Năm 1986, tổ chức tiêu chuẩn ANSI và ISO đã thiết lập tiêu chuẩn đầu tiên cho ngôn ngữ này.

    Trong thời gian này cũng có những thay đổi và tiến bộ nhanh chóng, cùng sự xuất hiện của mạng client/server. Với SQL và kết nối mạng, nhiều ứng dụng trên máy khách có thể truy cập vào cơ sở dữ liệu trung tâm nằm trên máy chủ ở xa.

    Giữa những năm 1980, Oracle, Sybase đã phát hành những hệ thống quản lý cơ sở dữ liệu quan hệ chạy trên DOS và dùng SQL làm cơ chế vấn tin. Microsoft đã nhanh chóng mua bản quyền công nghệ của Sybase để làm nền tảng cho Microsoft SQL Server. Hầu hết những sản phẩm này đều có kèm theo thư viện công cụ riêng để các nhà phát triển có thể dùng tạo ra ứng dụng trên máy khách, làm việc với cơ sở dữ liệu này, cũng như các trình điều khiển để hỗ trợ một số phần cứng của mạng cục bộ, mang lại tính linh hoạt và khả năng mở rộng.

    Những phiên bản sửa đổi trong năm 1989 và 1992 bổ sung khả năng kiểm soát tính nhất quán của dữ liệu nền, quản trị dữ liệu và các tính năng về định nghĩa và thao tác dữ liệu. Cũng trong thời gian này, một đặc tả khác là Open Database Connectivity (ODBC) mang lại môi trường giao tiếp cho lập trình ứng dụng (API) để qua đó các phần mềm có thể kết nối đến một hệ thống cơ sở dữ liệu khác nếu hệ thống này tương thích ODBC. Vài năm sau đó, một đặc tả tương tự có tên là Java Database Connectivity xuất hiện để xác định cách thức các phát biểu SQL được ánh xạ vào các chương trình Java.

    Đặc tả SQL 1992 là phiên bản dùng phổ biến nhất, mặc dù bản cập nhật mới, SQL3 (còn gọi là SQL-99) đã được thực hiện trong vài năm. Chuẩn SQL3 sẽ tăng cường ngôn ngữ, cho phép nó được dùng với những đối tượng phức tạp, thường trực trong cơ sở dữ liệu đối tượng. Điều này có nghĩa là SQL3 phải gồm cả cấu trúc phân cấp tổng quát hoá và chuyên biệt hoá, đa thừa kế, kiểu dữ liệu do người dùng định nghĩa, bẫy và bảo vệ, hỗ trợ hệ tri thức, đệ quy biểu thức vấn tin và những tính năng khác. Ngoài ra, nó còn phải có khả năng làm việc được với tất cả các tính năng kết hợp với lập trình hướng đối tượng, kể cả kiểu dữ liệu trừu tượng, thủ tục, thừa kế, đa hình và đóng gói.

    Computerworld 2000

    ID: A0102_58