|
SQL database is a type of database technology that is the most widely used in today's computing environment. Here the data is stored in a very structured format that provides high levels of functionality. SQL databases are generally more robust, secure, and have better performance than other older database technologies. It provides for 'SQL' access to the data. So it is important to understand the term SQL before we proceed further. What is SQL? SQL pronounced either as "sequel" or "seekel" is an acronym for Structured Query Language, a language developed by IBM Corporation for processing data contained in mainframe computer databases. The relational model from which SQL draws much of its conceptual core was formally defined in 1970 by Dr. E. F. Codd, a researcher for IBM in his paper titled "A Relational Model of Data for Large Shared Data Banks". System/R project began in 1974 and developed SEQUEL or Structured English Query Language. System/R was implemented on an IBM prototype called SEQUEL-XRM during 1974-75. Later it included multi-table and multi-user features revised as SEQUEL/2 and renamed as "SQL". SQL is used to create, maintain, and query relational databases and uses regular English words for many of its commands, which makes it easy to use. It is often embedded within other programming languages. A fundamental difference between SQL and standard programming languages is that SQL is declarative. You specify what kind of data you want from the database; and the RDBMS is responsible for figuring out how to retrieve it. SQL Standards SQL, the most popular relational database language was first standardized in 1986 by the American National Standards Institute (ANSI). Since then, it has been formally adopted as an International Standard by the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC). Although SQL is both an ANSI and an ISO standard, many database products support SQL with proprietary extensions to the standard language. Database Language SQL is under continual development by the above mentioned standardization bodies. At present there are two committees that are working to ensure SQL standards - an International committee (ISO/IEC JTC 1/SC 32/WG 3) and an American committee (ANSI TC NCITS H2). After 1986, a revised standard known commonly as SQL-89 or SQL1 was published in 1989. Due to partially conflicting interests from commercial vendors, most of the SQL-89 standard was intentionally left incomplete and many features were labeled implementer-defined. In order to strengthen the standard, the ANSI committee revised its previous work with the SQL-92 standard ratified in 1992 also called SQL2. This standard addressed several weaknesses in SQL-89 and set forth conceptual SQL features, which at the time exceeded the capabilities of any existing RDBMS implementation. In fact, SQL-92 standard was approximately six times the length of its predecessor. In 1999, the ANSI/ISO released the SQL-99 standard also called SQL3. This standard addresses some of the more advanced and previously ignored areas of modern SQL systems such as object-relational database concepts, call level interfaces, and integrity management. Basically, SQL-99 replaces the SQL-92 levels of compliance (Entry, Intermediate, and Full) with its own degrees of conformance - Core SQL-99 and Non-core (Enhanced) SQL-99. Recently, in 2003, ANSI/ISO released the SQL-2003 standard also called SQL-200n. The important features of SQL-2003 are: more collection data types, cleaner object/relational specification, and references to new parts, such as XML. The big missing SQL-2003 feature is the SQL-99 standard BIT data type. From the above discussion, it is clear that the three editions that matter today are:
|
||
|
||
|
Technology standards are important for several reasons - number one being that consumers are assured of what the product is supposed to do before they buy it. There are also several benefits to have a standard:
Daffodil DB presently conforms to most of the Entry - Level SQL92 standard as well as many of the Intermediate- and Full-level features. Working of 'SQL' in SQL databaseThe basic structure of the relational model of an SQL database is a table consisting of rows and columns. Data definition includes - declaring the name of each table to be included in a database, the names and data types of all columns of each table, constraints on the values in and among columns, and the granting of table manipulation privileges to prospective users. Tables can be accessed by inserting new rows, deleting or updating existing rows, or selecting rows that satisfy a given search condition for output. Tables can be manipulated to produce new tables by Cartesian products, unions, intersections, joins on matching columns, or projections on given columns. SQL data manipulation operations may be invoked through a cursor or through a general query specification. The language includes all arithmetic operations, predicates for comparison and string matching, universal and existential quantifiers, summary operations for max/min or count/sum, and GROUP BY and HAVING clause to partition tables by groups. Transaction management is achieved through COMMIT and ROLLBACK statements. <TI LEVELS> The standard provides language facilities for defining application specific views of the data. Each view is the specification of database operations that would produce a desired table. The viewed table is then materialized at application execution time. <UPDATABLE VIEW> The SQL standard provides a Module Language for interface to other languages. Each SQL statement may be packaged as a procedure that can be called and have parameters passed to it from an external language. A cursor mechanism provides row-at-a-time access from languages that can only handle one row of a table at one time. Access control is provided by GRANT and REVOKE statements. Each prospective user must be explicitly granted the privilege to access a specific table or view using a specific statement. <ROLE> The SQL Integrity Enhancement facility offers additional tools for referential integrity, CHECK constraint clauses, and DEFAULT clauses. Referential integrity allows specification of primary and foreign keys with the requirement that no foreign key row may be inserted or updated unless a matching primary key row exists. Check clauses allow specification of inter-column constraints to be maintained by the database system. Default clauses provide optional default values for missing data. The Embedded SQL specification provides SQL interface to programming languages, specifically Ada , C, COBOL, FORTRAN, MUMPS, Pascal, and PL/I. Applications may integrate program control structures with SQL data manipulation capabilities. The Embedded SQL syntax is just shorthand for an explicit SQL Module accessed from a standard conforming programming language. SQL-92 significantly increases the size of the original 1986 standard to include a schema manipulation language for modifying or altering schemas, schema information tables to make schema definitions accessible to users, new facilities for dynamic creation of SQL statements, and new data types and domains. Other new SQL-92 features include outer join, cascade update and delete referential actions, set algebra on tables, transaction consistency levels, scrolled cursors, deferred constraint checking, and greatly expanded exception reporting. SQL-92 also removes a number of restrictions in order to make the language more flexible and orthogonal. Daffodil DB supports all the above mentioned features. As regards SQL-92, Daffodil DB can be placed somewhere midway between Intermediate and Fully compliant levels. The major features that are introduced in SQL-99 are regular expression matching, recursive queries, triggers, non-scalar types, and some object-oriented features. Daffodil DB supports all the above listed features with the exception of object-oriented features. Major features in SQL-2003 are: XML-related features, window functions, and standardized sequences and columns with auto-generated values (including identity-columns). All the above features are included in the Road map of Daffodil DB. Advantages of SQL databases |
||
|
||
|
Disadvantages of SQL databases
|
||
|
||
|
Conclusion:
Hopefully this article has served to demystify SQL databases and how to start using them. We now know that a SQL database is just a handy and structured place to put all our data. This article has given us an introduction to the history of SQL databases, models of SQL, and what role SQL plays in the functioning of SQL databases. We are now aware of what a SQL database is for, what its features, merits and demerits are and the available SQL database options in the market. This article also focuses on SQL99 and some of its key features. Security and Compatibility are two most significant features of SQL databases. Storing data in a SQL database is more secure than ever before. SQL databases are compatible with almost all technologies which is probably the strongest reason of its wide acceptance. In SQL databases, the operations can be performed within the time constraints, as high speed query execution is another vital advantage of SQL databases. In this article, we have also pointed out the features of ORDBMS and the flavours it is available in. The difference between advantages and disadvantages of SQL databases is narrowing day by day as developers are putting severe efforts in making SQL databases as user-friendly as possible. So we can expect some considerable improvements in the features of existing SQL databases in near future. |
||
