Lecture
In the SQL / 92 standard, compared to the SQL / 89 standard, the language was mainly quantitatively expanded, although even these quantitative extensions were sufficient to prevent the SQL / 92 standard from being fully implemented in most commercial DBMS. Since SQL / 92 did not satisfy a significant part of the claims historically imposed on the SQL language, a new committee was formed, which should develop a standard language with high-quality extensions. The SQL-3 language has not yet been fully formed, many aspects continue to be discussed. Therefore, the summary of opportunities presented here should be treated as purely preliminary.
The set of built-in data types is supposed to be expanded with the types BOOLEAN and ENUMERATED. Although due to the support of null values, the use of three-digit logic is peculiar to the SQL language, the type BOOLEAN contains only two possible values true and false. It is recommended to use NULL to represent the value unknown, which, of course, is not quite natural. Enumerated type ENUMERATED has properties similar to the properties of enumerated types in programming languages.
Expanded options for working with null values. A new CREATE NULL CLASS statement has appeared, allowing you to enter a named set of named undefined values. When defining a domain, you can explicitly specify the name of the class of undefined values, the appearance of which is permissible in the columns associated with this domain. The meaning of each undefined value is interpreted at the user level.
It is intended to include in the language the possibility of using user-defined data types. Apparently, there will be possibilities for defining abstract data types with an arbitrarily complex internal structure based on such traditional aggregation and structuring possibilities as LIST, ARRAY, SET, MULTISET and TUPLE, as well as the possibility of defining object types with appropriate methods in the style of an object-oriented approach.
It becomes possible to use the principles of inheriting the properties of an existing table (supertables) when defining a new table (subtables). A subtable inherits from the supertable all the definitions of the columns and primary key. Another possibility is to create a table “similar” to the existing one in the sense that the definition of some columns of an existing table is inherited in the new table.
One of the problems with implementing the SQL language has always been the problem of recognizing the "mutability" of connections. As is known, if a representation includes a compound of a general form, then it is theoretically impossible to determine whether it is possible to unambiguously interpret the update operation of such a representation. However, there are several important classes of compounds that are known to be mutable. In SQL-3, these classes are supposed to be distinguished using special syntactic structures.
Finally, it is possible to define triggers as a combination of event and action specifications. An action is defined as an SQL procedure in which both SQL statements and a number of control structures can be used. In fact, this mechanism is very close to that implemented in Oracle V.7.
With regard to transaction management, it returns to the old System R idea about the possibility of setting savepoints inside a transaction. In the ROLLBACK statement, you can specify the identifier of the previously set save point, and then the transaction will be rolled back not to its beginning, but to this save point.
As you can see, you can expect many interesting and useful features in SQL-3. However, even intermediate draft standards include almost twice as many pages as the SQL / 92 standard. Therefore, it is difficult to expect a quick implementation of this standard after its adoption (and many in general doubt that this standard will ever be implemented).
Comments
To leave a comment
IBM System R — реляционная СУБД
Terms: IBM System R — реляционная СУБД