Saturday, February 8, 2014

SQL (Structured Query Language)

SQL (Structured Query Language) is a language used for accessing and managing relational databases. Based on the mathematical principles of relational algebra, it was standardized in 1986 by the American National Standards Institute (ANSI) and later adopted internationally by the International Organization for Standardization (ISO). It has also been implemented as a Federal Information Processing Standard by the United States government, meaning that it is utilized in federal databases (National Institute of Standards and Technology). Other large institutions such as banks often rely on SQL-defined databases as well (Cogswell).

SQL is important because it is the most popular language for defining relational database models, which have been the standard in the data industry for roughly the past four decades. Relational databases, as opposed to hierarchical databases, are composed of tables for which the creator explicitly defines the links or relationships. For hierarchical databases, every segment is already implicitly defined in a hierarchical path (“Comparison of Hierarchical and Relational Databases”). The main advantage of relational databases is that they do not limit the user to a strict hierarchy of data and allow the programmer more liberty in regards to defining how the information is joined. As a result, they are more desirable in instances that demand flexible data structures. It is also relatively simple to edit and manipulate those structures (NIST). Stephen addressed this in his blog post and observed that relational databases can be easily used by untrained people because they are visually intuitive and eliminate the redundancies that plagued older types of databases.

As Jeremy noted in his post, SQL in its current state is merely a framework and requires additional complex coding to interact successfully with other programs. ANSI and ISO are working to develop SQL beyond its basic function as a language interface for relational models. Specifically, efforts are being made to enable interfacing for non-SQL databases and support the integration of “heterogeneous data systems” (repositories of various object and information types) by automatically enforcing SQL constraints (NIST).

In recent years, NoSQL databases (utilized by Google and Amazon) have drawn a lot of attention. NoSQL lends itself more readily to naturally hierarchical data structures. Additionally, the response time or relational databases can get “bogged down” for very complex systems that must handle many relationships and high user traffic (Cogswell). However, SQL is seeing performance improvements with the emergence of better data management extensions and remains the standard for database definition and communication.

References

"Comparison of Hierarchical and Relational Databases." IBM Information Management Software. IBM, Oct. 2013. Web. 04 Feb. 2014.

Cogswell, Jeff. "SQL vs. NoSQL: Which Is Better?" Slashdot. N.p., 12 July 2012. Web. 04 Feb. 2014.


National Institute of Standards and Technology. "Description of SQL Standards." Database Language SQL. National Institute of Standards and Technology, n.d. Web. 04 Feb. 2014.

1 comment:

  1. I found SQL quite interesting because of its development over the years. I also had no idea that SQL is the most popular software language for relational database models. I was aware of management systems, but of not any particular language used within the database.

    ReplyDelete