To maintain any business, there shall be data and hence there shall be a need to organize data in a proper fashion. The requirement for an organized method to maintain data was solved by the development of the Database Management System. However, today with the advent of technologies and the internet, the volume and variety of data has also increased. It is a known fact that the pre-relational database systems did not have their own set of language to work with data handling. They had to depend upon the assistance of other languages like C and COBOL in order to manipulate and retrieve data from the database. However, handling the database model was still an attempt of massacre back then. Therefore, the Relational Database model was introduced. The Relational Database Management System was designed with the aim to store data in the form tables and relational. This boosted the ability to store or retrieve data from the database. SQL was later introduced as the prime language for RDBMS designing. SQL or Structured Query Language is a major database computer language. It was one of the first commercial languages, which was designed for database handling. The SQL language serves the purpose of management and retrieval of data in relational databases.
This report aims to talk about the evolution of the SQL language with keen details about how the language was developed, what milestones it had achieved and the changes it has faced of the past decades.
The development of SQL Language
Initially developed at the IBM centres by Raymond F. Boyce and Donald D. Chamberlin in the early 1970s, SQL was called as SEQUEL or Structure English Query Language. Its initial purpose was to manipulate and retrieve data that was stored in System R, the quasi-relational database management system of the company. However, the acronym ‘SEQUEL’ had to be changed to ‘SQL’ as a UK-based aircraft company already had the trademark rights over the name. Later that decade, Relational Software Inc. now commonly known as Oracle Corporation, recognized the importance and potential in the concepts of the language and they developed their own system, driven by SQL. This system was named Oracle Version 2. It was a commercially available product, initially designed for the VAX computers. After having tested SQL in the various customer test sites, IBM determined its practicality and usefulness. Doing so, they started working on their new chain of projects. This time, they were far more determined to grasp the commercial market through their software launches. They developed prototypes of the System R model. These included the SQL/DS, DB2 and System/38, which were available commercially in the late 1970s and early 1980s. Currently, various relational database systems or RDBMSs like Oracle Database, IBM DB2, MySQL, Microsoft’s SQL Server and Microsoft Access use SQL as their primary or background programming paradigm.
Karsai et al. (2014), says SQL is a domain specific non-procedural language. It can be used to store, update and retrieve data from a relational database model. The relational database consists of one or many tables that hold data. SQL helps to access these tables and create relationships between the tables within the database, thus creating a strong database, which is easy to work with. The working of the language shall be discussed in details in the upcoming sections of the report. However, as mentioned earlier, the language was designed with the primary motive of database handling, which remains the same application until date. However, with the advent of technology the language has gone through several modifications. These are to be elaborately explained in a later context.
As stated earlier, SQL is a database operating language. It includes the creation, deletions and modification of data in the form of rows and columns in a table. It also allows the users to fetch data from the database using their specific search criteria. SQL is an American national Standards Institute or ANSI standard language. However, the database word has seen numerous versions of the language over the past years.
The various dialects of the language that are widely used are:
- Microsoft SQL server
- Oracle SQL Plus
- The MS Access version of JET SQL
These will be further discussed under the evolution phase of the SQL language.
SQL commands are executed in a different procedure compared to other programming language codes. While executing an SQL command line for a RDM System, the best way to carry out the process request is figured out by the system and then the SQL engine takes up the responsibility of the interpretation of the task. The various steps and components involved in the execution of an SQL command are as follows:
- Query Dispatcher
- Optimization Engines
- Classic Query Engine
- SQL Query Engine and so on.
Features and Constructs that characterize SQL
SQL provides its users with a wide range of tools and commands to build a database and store and retrieve data from it. The primary features of the language that make it mostly popular among the mass are listed as follows:
- SQL allows users to access and modify data with in a relational database.
- SQL features allows users to create and delete or drop database and their respective tables.
- Data in the database can be described.
- Users are given the opportunity to define and manipulate data in the database.
- SQL also allows users to create views and functions in the database.
- Users can set permissions on tables, views and procedures.
- The most important feature of SQL is probably the ability to integrate with other programming languages. SQL database can be used as back-end data storage and retrieval platforms. SQL modules, pre-compilers and libraries.
The classic query engine of SQL handles the SQL queries and not the logical files or commands. The diagram (Fig. 1) below explains the SQL Architecture.
A language construct is defined as a syntactical part of a program. It may be formed from one or many lexical tokens that abides by the rules of the particular programming language. In simpler words, it is basically the syntax in which a programming language is constructed. In this case, for SQL the construct of a general SQL query is as follows:
- Creating a table
CREATE TABLE table_name (field_name data_type constraint);
- Inserting into table
INSERT INTO table_name (field_name) VALUES (field_values);
- Select data from the table
SELECT field_names FROM table_name WHERE condition;
These are the three most required and basic command constructs of SQL. It can be seen from the above constructs that a semicolon ‘;’ is necessary to end a query. In addition, the values and field names must be represented within parenthesis as parameters. Some real life examples of the language that makes use of these constructs shall be presented in the section below.
The evolution of SQL
Contributions of SQL in the field of Database Management Systems
SQL has proved to be a boon to the business and the software industry of the world. As SQL provides the programmers with the medium to write codes that helps them to get desired information from a database. It also helps the programmers to embed the queries with other programming languages to create a complete application system. SQL is now used in almost every field of electronic data storage and processing. From government databases to e-commerce websites on the internet, SQL has been the key solution.
Success of SQL and RDBMS
Since the introduction of the SQL language, the language and its tools has been widely used. The language tools have been integrated with numerous other technologies to produce large database systems. These systems are able to store huge chunks of data and retrieve or modify them for analysis or other needs. Enterprises, since the initiation of this language has been using SQL based relational database for internal data storage. It is widely believed that the success of relational database and SQL is one of the greatest achievements of IT. SQL, being a high-level data access language, fits suitably in its application for parallelism in data warehousing and in the programmatic extensions for server based SQL environments. It has been one of the main pillars of success factors for a wide variety of consumer applications. These range from simple departmental software applications to critical transaction or calculation processing based applications. Database vendors, in order to respond to the competitive thrust, they continually tend innovate their SQL implementations. Over the years, SQL has produced several application versions through the first IBM DB2, MySQL, PostgreSQL, Oracle SQL Plus and MS SQL Server. Web developers prefers MySQL and PostgreSQL whereas commercial platforms are more inclined towards the use of MS SQL server. However, the large corporates and organizations stick to their use of the Oracle SQL database, as these can run on PCs and large mainframe machines as well (Arora & Gupta, 2012).
Failure tasted by SQL in the recent past
This demand due to technological complexities have led to the need for newer tools and techniques. The gradual increase in the size of data collection was slowly turning out to be a threat for an SQL based relational database to handle. McAfee et al. (2012), states that this is the era of Big Data. Big data is the data that is collected from consumers and other real-time environments in order to make complex analysis. Heavy chunks of data are stored every day. Data such as these are needed to be stored on mapping-database. SQL and its relational approach fails here (Madden, 2012).
Influencing the next generation languages
The SQL language has led the path for development. It had brought about a renaissance in database management. However, since the early years of the past decade, it was time for the NoSQL database to flourish. This form of DBMS software and tools allowed lot more flexibility for big data management in the modern days. They do not use relational tabular structure and can hence store massive data bulks. These also provide innovative analytics tool (Sharma & Dave, 2012). The graph-database uses nodes to hold data and can extend infinitively by adding paths (Batra & Tyagi, 2012).
However, modern trends show that the SQL based approach is being adapted back into the IT industry. The traditional query language has influenced Amazon RDS, Microsoft’s Azure Database and Google Cloud SQL. The SQL interfaces continue to thrive on top of the Apache Spark or Hadoop platforms. SQL is widely used nowadays to store XML documents now (Schweinsberg & Wegner, 2017).
Analysis of SQL
Strength and weaknesses
The strengths of SQL can be profoundly written. They are as follows:
- It provides all the necessary semantics to store, modify and retrieve necessary data from a relational database.
- It is efficiently used in enterprise-based database. Several systems are now being updated and built to give SQL a rebirth (Evans, Lloyd & Pierce, 2012).
- The NoSQL platforms have been a headache for many developers. Each NoSQL database had their unique language and framework. This gets complex at times. However, with SQL everything was under one roof. In addition, the SQL language has been tested for years and have been used widely all over unlike the NoSQL database, which are not developed completely yet.
- SQL queries offer high speed data handling and the SQL standards are well established.
- Users of SQL are also allowed to make multiple views of the database structure.
However, there are its negative aspects too. The weakness of SQL are as listed below:
- Dealing with huge chunks of modern day big data is still a problem.
- It is also considered difficult to interface by novice users.
- The cost of some renowned SQL database platforms are too high.
SQL gives its users the assistance of indexes. Indexes makes the execution of queries faster however, slows down the updates. This also requires extra storage space for storing these indexes.
From the above report, it can hence be concluded that the advent of technology, has however gone a bit harsh on the Structured Query Language, but could not replace it completely. The SQL has been a necessary language for almost every enterprise storage and IT analysis uses. The features of the language allows users to store data, modify them and retrieve the same from the database. The retrieving of data can be done using the conditional SQL queries or scripts. SQL has been widely used by integrating it with other design languages to produce database-enabled applications. Over the recent decade, the language has had to be remoulded in order to match the updating scenario. NoSQL database came into effect in order to handle rising demand of big data management. Nevertheless, SQL still has its grabs on the IT industry and certain development companies are rebuilding their systems to support SQL-based DBMS.
- Arora, I., & Gupta, A. (2012). Cloud databases: a paradigm shift in databases. International Journal of Computer Science Issues, 9(4), 77-83.
- Batra, S., & Tyagi, C. (2012). Comparative analysis of relational and graph databases. International Journal of Soft Computing and Engineering (IJSCE), 2(2), 509-512.
- Boicea, A., Radulescu, F., & Agapin, L. I. (2012, September). MongoDB vs Oracle--database comparison. In Emerging Intelligent Data and Web Technologies (EIDWT), 2012 Third International Conference on(pp. 330-335). IEEE.
- Burleson, D. K. (2014). Advanced Oracle SQL Tuning: The Definitive Reference. Rampant TechPress.
- De Haan, L., Gorman, T., J?rgensen, I., & Caffrey, M. (2014). Beginning Oracle SQL. Apress.
- Eisenberg, A., & Melton, J. (1999). SQL: 1999, formerly known as SQL3. ACM Sigmod record, 28(1), 131-138.
- Evans, R. S., Lloyd, J. F., & Pierce, L. A. (2012). Clinical use of an enterprise data warehouse. In AMIA Annual Symposium Proceedings(Vol. 2012, p. 189). American Medical Informatics Association.
- Karsai, G., Krahn, H., Pinkernell, C., Rumpe, B., Schindler, M., & V?lkel, S. (2014). Design guidelines for domain specific languages. arXiv preprint arXiv:1409.2378.
- Kulkarni, K., & Michels, J. E. (2012). Temporal features in SQL: 2011. ACM Sigmod Record, 41(3), 34-43.
- Li, Y., & Manoharan, S. (2013, August). A performance comparison of SQL and NoSQL databases. In Communications, computers and signal processing (PACRIM), 2013 IEEE pacific rim conference on(pp. 15-19). IEEE.
- Madden, S. (2012). From databases to big data. IEEE Internet Computing, 16(3), 4-6.
- McAfee, A., Brynjolfsson, E., Davenport, T. H., Patil, D. J., & Barton, D. (2012). Big data: the management revolution. Harvard business review, 90(10), 60-68.
- McLaughlin, M. J., Harper, J., & McLaughlin, J. (2014). Oracle Database 12c PL/SQL Programming. McGraw-Hill Education.
- Schweinsberg, K.A.I. & Wegner, L.U.T.Z. (2017). Advantages of complex SQL types in storing XML documents. Future Generation Computer System, 68pp. 500-507.
- Sharma, V., & Dave, M. (2012). Sql and nosql databases. International Journal of Advanced Research in Computer Science and Software Engineering, 2(8).
- Zhao, G., Lin, Q., Li, L., & Li, Z. (2014, November). Schema conversion model of sql database to nosql. In P2P, Parallel, Grid, Cloud and Internet Computing (3PGCIC), 2014 Ninth International Conference on(pp. 355-362). IEEE.