Tổng quan về cơ sở dữ liệu SQL

SQL là loại ngôn ngữ máy tính, giúp cho thao tác lưu trữ và truy xuất dữ liệu được lưu trữ trong một cơ sở dữ liệu quan hệ. SQL là viết tắt của Structured Query Language là ngôn ngữ truy vấn có cấu trúc. Ngoài việc là một ngôn ngữ máy tính phổ biến, SQL còn là ngôn ngữ máy tính hữu dụng. Vì vậy, người ta thường sử dụng SQL cho các mục đích:

  • Tạo cơ sở dữ liệu, bảng và view mới.
  • Để chèn các bản ghi vào trong một cơ sở dữ liệu.
  • Để xóa các bản ghi từ một cơ sở dữ liệu.
  • Để lấy dữ liệu từ một cơ sở dữ liệu.

Tóm tắt lịch sử của SQL

Từ một bài báo tham dự hội thảo khoa học A Relational Model of Data for Large Share Data Banks (tạm dịch là “Mô hình quan hệ cho dữ liệu dùng trong ngân hàng dữ liệu chia sẻ có khối lượng lớn”) của tiến sĩ Edgar F. Codd xuất bản tháng 6 năm 1970 trong tạp chí Communications of the ACM của Hiệp hội ACM, một mô hình đã được chấp nhận rộng rãi là mô hình tiêu chuẩn dùng cho hệ thống quản lý cơ sở dữ liệu quan hệ.Giữa những năm 1970, một nhóm các nhà phát triển tại trung tâm nghiên cứu của IBM tại San Jose phát triển hệ thống cơ sở dữ liệu “Hệ thống R” dựa trên mô hình của Codd. Structured English Query Language, viết tắt là “SEQUEL” (tạm dịch là “Ngôn ngữ truy vấn tiếng Anh có cấu trúc”), được thiết kế để quản lý và truy lục dữ liệu được lưu trữ trong Hệ thống R. Sau này, tên viết tắt SEQUEL được rút gọn thành SQL để tránh việc tranh chấp nhãn hiệu (từ SEQUEL đã được một công ty máy bay của UK là Hawker-Siddeley đăng ký). Mặc dù SQL bị ảnh hưởng bởi công trình của tiến sĩ Codd nhưng nó không do tiến sĩ Codd thiết kế ra. Ngôn ngữ SEQUEL được thiết kế bởi Donald D. Chamberlin và Raymond F. Boyce tại IBM, và khái niệm của họ được phổ biến để tăng sự chú ý về SQL.Phiên bản cơ sở dữ liệu quan hệ phi thương mại, không hỗ trợ SQL đầu tiên được phát triển năm 1974.(Ingres from U.C. Berkeley.)

Năm 1978, việc thử nghiệm phương pháp được khởi đầu tại một cơ sở thử nghiệm của khách hàng. Cuộc thử nghiệm đã chứng minh được sự có ích và tính thực tiễn của hệ thống và đã chứng tỏ sự thành công của IBM. Dựa vào kết quả đó, IBM bắt đầu phát triển các sản phẩm thương mại bổ sung thêm SQL dựa trên nguyên mẫu Hệ thống R bao gồm System/38 (Hệ thống/38) (được công bố năm 1978 và được thương mại hóa tháng 8 năm 1979, SQL/DS (được giới thiệu vào năm 1981) và DB2 (năm 1983).

Cùng thời điểm đó Relational Software, Inc. (bây giờ là Oracle Corporation) đã nhận thấy tiềm năng của những khái niệm được Chamberlin and Boyce đưa ra và đã phát triển phiên bản Hệ quản trị cơ sở dự liệu quan hệ riêng của họ cho Navy, CIA và các tổ chức khác. Vào mùa hè năm 1979, Relational Software, Inc. giới thiệu Oracle V2 (Phiên bản 2), phiên bản thương mại đầu tiên hỗ trợ SQL cho máy tính VAX. Oracle thường xuyên được nhắc tới một cách không nghiêm túc vì đã tấn công thị trường của IBM trong 2 năm, nhưng việc táo bạo nhất trong quan hệ công chúng của họ là tấn công một phiên bản của IBM System/38 chỉ trong có vài tuần. Tương lai của Oracle đã được đảm bảo vì có sự quan tâm đáng kể của công chúng sau đó mới phát triển, trong khi đã có nhiều phiên bản của các nhà cung cấp khác.

IBM đã quá chậm trong việc phát triển SQL và các sản phẩm quan hệ, có lẽ vì ban đầu nó không dùng được trong môi trường Unix và máy tính lớn (Mainframe), và họ sợ nó sẽ làm giảm lợi nhuận thu được từ việc bán các sản phẩm cơ sở dữ liệu IMS (những sản phẩm dựa trên mô hình cơ sở dữ liệu định hướng chứ không phải cơ sở dữ liệu quan hệ) của mình. Trong lúc đó, Oracle vẫn đang phát triển, IBM đang phát triển System/38, được mong đợi là hệ cơ sở dữ liệu quan hệ đầu tiên của họ. Với năng lực và thiết kế tiên tiến của nó, người ta cho rằng nó có thể sẽ thay thế cho hệ thống Unix và máy tính lớn.

SQL được thừa nhận là tiêu chuẩn của ANSI (American National Standards Institute) vào năm 1986 và ISO (International Organization for Standardization) năm 1987. ANSI đã công bố cách phát âm chính thức của SQL là “ess kyoo ell”, nhưng rất nhiều các chuyên gia cơ sở dữ liệu nói tiếng Anh vẫn gọi nó là sequel. Một quan niệm sai khác cũng được phổ biến rộng rãi đó là “SQL” là chữ viết tắt của “Structured Query Language” (Ngôn ngữ truy vấn có cấu trúc).

Chức năng của SQL là gì?

Một trong những lý do khiến cho SQL được sử dụng phổ biến, chính là nó đã cho phép người dùng thực hiện đa dạng các chức năng sau:

  • Cho phép người dùng truy cập dữ liệu trong các hệ thống quản lý cơ sở dữ liệu quan hệ.
  • Cho phép người dùng mô tả dữ liệu.
  • Cho phép người dùng xác định dữ liệu trong cơ sở dữ liệu và thao tác dữ liệu đó.
  • Cho phép nhúng trong các ngôn ngữ khác sử dụng mô-đun SQL, thư viện và trình biên dịch trước.
  • Cho phép người dùng tạo và thả các cơ sở dữ liệu và bảng.
  • Cho phép người dùng tạo chế độ view, thủ tục lưu trữ, chức năng trong cơ sở dữ liệu.
  • Cho phép người dùng thiết lập quyền trên các bảng, thủ tục và view.

Ưu điểm của SQL là gì?

Tại sao cần sử dụng SQL? Với SQL, người dùng dường như khai thác được khá nhiều lợi ích. Dưới đây là một số ưu điểm của SQL:

  • Dữ liệu có ở mọi nơi: Dữ liệu xuất hiện ở mọi nơi trên màn hình từ laptop đến điện thoại của bạn. Việc học tập và tìm hiểu SQL sẽ giúp bạn biết được cách thức hoạt động của những dữ liệu này.
  • Thêm, sửa, đọc và xóa dữ liệu dễ dàng: với SQL, các thao tác xử lý dữ liệu trở nên dễ dàng hơn bao giờ hết. Bạn chỉ cần thực hiện một số thao tác với dữ liệu đơn giản trên SQL thay vì phải dùng nhiều câu lệnh phức tạp trên các loại ngôn ngữ khác.
  • SQL giúp công việc lập trình dễ dàng hơn: bạn có thể lưu nhiều dữ liệu cho nhiều ứng dụng khác nhau trên cũng một cơ sở dữ liệu và việc truy cập các cơ sở dữ liệu này trở lên đơn giản hơn nhờ một cách thức giống nhau.
  • Được sử dụng và hỗ trợ bởi nhiều công ty lớn: tất cả các công ty lớn về công nghệ trên thế giới hiện nay như Microsoft, IBM, Oracle… đều hỗ trợ việc phát triển ngôn ngữ SQL.
  • Lịch sử hơn 40 năm: với lịch sử phát triển hơn 40 năm từ 1970, SQL vẫn tồn tại và trụ vững đến ngày nay. Điều này cho thấy vị trí của SQL hiện tại rất khó bị thay thế bởi bất kỳ một ngôn ngữ máy tính nào khác.

Nhược điểm của SQL là gì?

Mặc dù là ngôn ngữ được sử dụng phổ biến, thế nhưng, không một ngôn ngữ nào là hoàn hảo. Vì vậy, SQL cũng tồn tại một số hạn chế dưới đây:
  • Giao diện khó dùng: SQL có giao diện phức tạp khiến một số người dùng khó truy cập.
  • Không được toàn quyền kiểm soát: Các lập trình viên sử dụng SQL không có toàn quyền kiểm soát cơ sở dữ liệu.
  • Thực thi: Hầu hết các chương trình cơ sở dữ liệu SQL đều có phần mở rộng độc quyền riêng.
  • Giá cả: Chi phí vận hành của một số phiên bản SQL khá cao khiến một số lập trình viên gặp khó khăn khi tiếp cận.