FACTOID # 1: Guinea has the wettest capital on Earth, with 3.7 metres of rain a year.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Null (SQL)
The Greek lowercase omega (ω) character is historically used by academics to represent Null in relational databases.
The Greek lowercase omega (ω) character is historically used by academics to represent Null in relational databases.

Null (IPA: [nʌl]) is a special marker used to indicate that a data value is unknown in the Structured Query Language (SQL). Introduced by the creator of the relational database model, Dr. E.F. Codd, SQL Null serves to fulfill the requirement that all true relational database management systems (RDBMS) support a representation of "missing information and inapplicable information". Dr. Codd also introduced the use of the lowercase Greek omega (ω) symbol to represent Null in academic writing. NULL is also an SQL reserved keyword used to identify the Null special marker. Image File history File links No higher resolution available. ... Image File history File links No higher resolution available. ... Look up Ω, ω in Wiktionary, the free dictionary. ... A relational database is a database that conforms to the relational model, and refers to a databases data and schema (the databases structure of how that data is arranged). ... Articles with similar titles include the NATO phonetic alphabet, which has also informally been called the “International Phonetic Alphabet”. For information on how to read IPA transcriptions of English words, see IPA chart for English. ... SQL (IPA: or IPA: ), commonly expanded as Structured Query Language, is a computer language designed for the retrieval and management of data in relational database management systems, database schema creation and modification, and database object access control management. ... The relational model for database management is a database model based on predicate logic and set theory. ... Edgar Frank Ted Codd (August 23, 1923 – April 18, 2003) was a British computer scientist who made seminal contributions to the theory of relational databases. ... SQL (IPA: or IPA: ), commonly expanded as Structured Query Language, is a computer language designed for the retrieval and management of data in relational database management systems, database schema creation and modification, and database object access control management. ... A relational database management system (RDBMS) is a database management system (DBMS) that is based on the relational model as introduced by Edgar F. Codd. ... Look up Ω, ω in Wiktionary, the free dictionary. ...


Null has been the focus of controversy and a source of debate because of its associated Three-Valued Logic (3VL), special requirements for its use in SQL joins, and the special handling required by aggregate functions and SQL grouping operators. Though special functions and predicates are provided to properly handle Nulls, opponents feel that resolving these issues introduces unnecessary complexity and inconsistency into the relational model of databases. A join combines records from two tables in a relational database and results in a new (temporary) table, also called joined table. ... The relational model for database management is a database model based on predicate logic and set theory. ...

Contents

History

Null is a marker which represents a missing value in SQL databases. In the set of values shown, the red question mark represents Null.

Null was introduced by Dr. E.F. Codd as a method of representing missing data in the relational model. Dr. Codd later reinforced his requirement that all RDBMS' support Null to indicate missing data in a two-part series published in ComputerWorld magazine.[1][2] Dr. Codd also introduced a ternary (three-valued) logic, consisting of the truth values True, False, and Unknown, which is closely tied to the concept of Null. The Unknown truth value is generated whenever Null is compared with any data value, or with another Null. Image File history File links No higher resolution available. ... Image File history File links No higher resolution available. ... In mathematics, a set can be thought of as any collection of distinct objects considered as a whole. ... The relational model for database management is a database model based on predicate logic and set theory. ... A ternary, three-valued or trivalent logic is a term to describe any of several multi-valued logic systems in which there are three truth values indicating true, false and some third value. ...


Dr. Codd indicated in his 1990 book The Relational Model for Database Management, Version 2 that the single Null mandated by the SQL standard was inadequate, and should be replaced by two separate Null-type markers to indicate the reason why data is missing. These two Null-type markers are commonly referred to as 'A-Values' and 'I-Values', representing 'Missing But Applicable' and 'Missing But Inapplicable', respectively.[3] Dr. Codd's recommendation would have required SQL's logic system be expanded to accommodate a four-valued logic system. Because of this additional complexity, the idea of multiple Null-type values has not gained widespread acceptance.


Three-Valued Logic (3VL)

Since Null is not a member of any data domain, it is not considered a "value", but rather a marker (or placeholder) indicating the absence of value. Because of this, comparisons with Null can never result in either True or False, but always in a third logical result, Unknown.[4] The logical result of the expression below, which compares the value 10 to Null, is Unknown: In data management and database analysis, a data domain refers to all the unique values within a column. ...

 10 = NULL -- Results in Unknown 

However, certain operations on Null can return values if the value of Null is not relevant to the outcome of the operation. For example:

 TRUE OR NULL -- Results in True 

In this case, the fact that the value on the right of OR is unknowable is irrelevant, because the outcome of the OR operation would be True regardless of the value on the right.


SQL implements three logical results, so SQL implementations must provide for a specialized three-valued logic (3VL). The rules governing SQL three-valued logic are shown in the tables below (p and q represent logical states)"[5] A ternary, three-valued or trivalent logic is a term to describe any of several multi-valued logic systems in which there are three truth values indicating true, false and some third value. ...

p AND q p
True False Unknown
q True True False Unknown
False False False False
Unknown Unknown False Unknown
p OR q p
True False Unknown
q True True True True
False True False Unknown
Unknown True Unknown Unknown
p NOT p
True False
False True
Unknown Unknown

Basic SQL comparison operators always return Unknown when comparing anything with Null, so the SQL standard provides for two special Null-specific comparison predicates. The IS NULL and IS NOT NULL predicates test whether data is, or is not, Null.[6]


Data typing

Null is untyped in SQL, meaning that it is not designated as an integer, character, or any other specific data type.[4] Because of this, it is sometimes mandatory (or desirable) to explicitly convert Nulls to a specific data type. For example, if overloaded functions are supported by the RDBMS, SQL might not be able to automatically resolve to the correct function without knowing the data types of all parameters, including those for which Null is passed. A data type is a constraint placed upon the interpretation of data in a type system in computer programming. ...


Data Manipulation Language

SQL three-valued logic is encountered in Data Manipulation Language (DML) in comparison predicates of DML statements and queries. The WHERE clause causes the DML statement to act on only those rows for which the predicate evaluates to True. Rows for which the predicate evaluates to either False or Unknown are not acted on by INSERT, UPDATE, or DELETE DML statements, and are discarded by SELECT queries. Interpreting Unknown and False as the same logical result is a common error encountered while dealing with Nulls.[5] The following simple example demonstrates this fallacy: Data Manipulation Language (DML) is a family of computer languages used by computer programs or database users to retrieve, insert, delete and update data in a database. ... An SQL INSERT statement adds one or more records to a table in a relational database. ... An UPDATE statement in SQL changes data in one or more records in a relational database management system. ... It has been suggested that this article or section be merged into Data Manipulation Language. ... A SELECT statement in SQL returns a result set of records from one or more tables. ...

 SELECT * FROM t WHERE i = NULL; 

The example query above always returns zero rows because the comparison of the i column with Null always returns Unknown, even for those rows where i is Null. The Unknown result causes the SELECT statement to summarily discard each and every row.


CASE expressions

SQL CASE expressions operate under the same rules as the DML WHERE clause rules for Null. Because it can be evaluated as a series of equality comparison conditions, a simple CASE expression cannot check for the existence of Null directly. A check for Null in a simple CASE expression always results in Unknown, as in the following:

 SELECT CASE i WHEN NULL THEN 'Is Null' -- This will never be returned WHEN 0 THEN 'Is Zero' -- This will be returned when i = 0 WHEN 1 THEN 'Is One' -- This will be returned when i = 1 END FROM t; 

Because the expression i = NULL evaluates to Unknown no matter what value column i contains (even if it contains Null), the string 'Is Null' will never be returned.


A searched CASE expression also returns the first value for which the result of the comparison predicate evaluates to True, including comparisons using the IS NULL and IS NOT NULL comparison predicates. The following example shows how to use a searched CASE expression to properly check for Null:

 SELECT CASE WHEN i IS NULL THEN 'Null Result' -- This will be returned when i is NULL WHEN i = 0 THEN 'Zero' -- This will be returned when i = 0 WHEN i = 1 THEN 'One' -- This will be returned when i = 1 END FROM t; 

In the searched CASE expression, the string 'Null Result' is returned for all rows in which i is Null.


Check constraints

The primary place in which SQL three-valued logic intersects with SQL Data Definition Language (DDL) is in the form of check constraints. A check constraint placed on a column operates under a slightly different set of rules than those for the DML WHERE clause. While a DML WHERE clause must evaluate to True for a row, a check constraint must not evaluate to False. This means that a check constraint will succeed if the result of the check is either True or Unknown. The following example table with a check constraint will prohibit any integer values from being inserted into column i, but will allow Null to be inserted since the result of the check will always evaluate to Unknown for Nulls.[7] A Data Definition Language (DDL) is a computer language for defining data. ... A check constraint (also known as table check constraint) is a condition that defines valid data when adding or updating an entry in a table of a relational database. ...

 CREATE TABLE t ( i INTEGER, CONSTRAINT ck_i CHECK ( i < 0 AND i = 0 AND i > 0 ) ); 

In order to constrain a column to reject Nulls, the NOT NULL constraint can be applied, as shown in the example below. The NOT NULL constraint is semantically equivalent to a check constraint with an IS NOT NULL predicate. A check constraint (also known as table check constraint) is a condition that defines valid data when adding or updating an entry in a table of a relational database. ...

 CREATE TABLE t ( i INTEGER NOT NULL ); 

Procedural extensions

SQL/PSM (SQL Persistent Stored Modules) defines procedural extensions for SQL, such as the IF statement. However, the major SQL vendors have historically included their own proprietary procedural extensions. Procedural extensions for looping and comparisons operate under Null comparison rules similar to those for DML statements and queries. The following code fragment, in ISO SQL standard format, demonstrates the use of Null 3VL in an IF statement. This does not adequately cite its references or sources. ... “Then” redirects here. ...

 IF i = NULL THEN SELECT 'Result is True' ELSEIF NOT(i = NULL) THEN SELECT 'Result is False' ELSE SELECT 'Result is Unknown'; 

The IF statement performs actions only for those comparisons that evaluate to True. For statements that evaluate to False or Unknown, the IF statement passes control to the ELSEIF clause, and finally to the ELSE clause. The result of the code above will always be the message 'Result is Unknown' since the comparisons with Null always evaluate to Unknown. “Then” redirects here. ... “Then” redirects here. ...


Joins

Example SQL outer join query with Null placeholders in the result set. The Null markers are represented by the word NULL in place of data in the results. Results are from Microsoft SQL Server, as shown in SQL Server Management Studio.
Example SQL outer join query with Null placeholders in the result set. The Null markers are represented by the word NULL in place of data in the results. Results are from Microsoft SQL Server, as shown in SQL Server Management Studio.

SQL outer joins, including left outer joins, right outer joins, and full outer joins, automatically produce Nulls as placeholders for missing values in related tables. For left outer joins, for instance, Nulls are produced in place of rows missing from the table appearing on the right-hand side of the LEFT OUTER JOIN operator. The following simple example uses two tables to demonstrate Null placeholder production in a left outer join. Image File history File links No higher resolution available. ... Image File history File links No higher resolution available. ... SQL (IPA: or IPA: ), commonly expanded as Structured Query Language, is a computer language designed for the retrieval and management of data in relational database management systems, database schema creation and modification, and database object access control management. ... A join combines records from two tables in a relational database and results in a new (temporary) table, also called joined table. ... Microsoft Corporation, (NASDAQ: MSFT, HKSE: 4338) is a multinational computer technology corporation with global annual revenue of US$44. ... Mostly it refers to the Microsoft SQL Server, which was actually derived from Sybase SQL Server ... A join combines records from two tables in a relational database and results in a new (temporary) table, also called joined table. ...


The first table (Employee) contains employee ID numbers and names, while the second table (PhoneNumber) contains related employee ID numbers and phone numbers, as shown below. A telephone number is a sequence of decimal digits that uniquely indicates the network termination point. ...

Employee
ID LastName FirstName
1 Johnson Joe
2 Lewis Larry
3 Thompson Thomas
4 Patterson Patricia
PhoneNumber
ID Number
1 555-2323
3 555-9876

The following sample SQL query performs a left outer join on these two tables.

 SELECT e.ID, e.LastName, e.FirstName, pn.Number FROM Employee e LEFT OUTER JOIN PhoneNumber pn ON e.ID = pn.ID; 

The result set generated by this query demonstrates how SQL uses Null as a placeholder for values missing from the right-hand (PhoneNumber) table, as shown below.

Query Result
ID LastName FirstName Number
1 Johnson Joe 555-2323
2 Lewis Larry NULL
3 Thompson Thomas 555-9876
4 Patterson Patricia NULL

Inner joins and cross joins, also available in standard SQL, do not generate Null placeholders for missing values in related tables.


Care must be taken when using nullable columns in SQL join criteria. Because a Null is not equal to any other Null, Nulls in a column of one table will not join to Nulls in the related column of another table using the standard equality comparison operators. The SQL COALESCE function or CASE expressions can be used to "simulate" Null equality in join criteria, and the IS NULL and IS NOT NULL predicates can be used in the join criteria as well. The following predicate tests for equality of the values A and B and treats Nulls as being equal.

 ( A = B ) OR ( A IS NULL AND B IS NULL ) 

Math and string concatenation

Because Null is not a data value, but a marker for an unknown value, using mathematical operators on Null results in an unknown value, which is represented by Null.[8] In the following example multiplying 10 by Null results in Null:

 10 * NULL -- Result is NULL 

This can lead to unanticipated results. For instance, when an attempt is made to divide Null by zero, platforms may return Null instead of throwing an expected "data exception - division by zero".[8] In the example below, the Oracle and Microsoft SQL Server platforms both return a Null result.

 NULL / 0 

String concatenation operations, which are common in SQL, also result in Null when one of the operands is Null.[9] The following example demonstrates the Null result returned by using Null with the SQL || string concatenation operator.

 'Fish ' || NULL || 'Chips' -- Result is NULL 

Aggregate functions

SQL defines aggregate functions to simplify server-side aggregate calculations on data. Almost all aggregate functions perform a Null-elimination step, so that Null values are not included in the final result of the calculation.[10] This implicit Null elimination, however, can have an impact on aggregate function results. In computer science, an aggregate function is a function that compute a single result value from a collection of input values such as a set, a bag or a list. ...


The following example table results in different results being returned for each column when the SQL AVG (average) aggregate function is applied.

Table
i j
150 150
200 200
350 350
NULL 0

The SQL AVG aggregate function returns 233 when applied to column i, but returns 175 when applied to column j. The aggregate function's Null-elimination step accounts for the difference in these results. The only aggregate function that does not implicitly eliminate Null is the COUNT(*) function.


Grouping and sorting

Because SQL:2003 defines all Null markers as being unequal to one another, a special definition was required in order to group Nulls together when performing certain operations. SQL defines "any two values that are equal to one another, or any two Nulls", as "not distinct".[11] This definition of not distinct allows SQL to group and sort Nulls when the GROUP BY clause (and other keywords that perform grouping) are used.


Other SQL operations, clauses, and keywords use "not distinct" in their treatment of Nulls. These include the following:

  • PARTITION BY clause of ranking and windowing functions like ROW_NUMBER
  • UNION, INTERSECT, and EXCEPT operator which treat NULLs as the same for row comparison/elimination purposes
  • DISTINCT keyword used in SELECT queries
  • Unique constraints on nullable columns, which allow only a single Null value to be stored in the column

The SQL standard does not explicitly define a default sort order for Nulls. Instead, on conforming systems, Nulls can be sorted before or after all data values by using the NULLS FIRST or NULLS LAST clauses of the ORDER BY list, respectively. Not all DBMS vendors implement this functionality, however. Vendors who do not implement this functionality may specify different treatments for Null sorting in the DBMS.[7]


Null-handling functions

SQL defines two functions to explicitly handle Nulls: COALESCE and NULLIF. Both functions are abbreviations for searched CASE expressions.[12]


COALESCE

The COALESCE function accepts a list of parameters, returning the first non-Null value from the list:

 COALESCE(value1, value2, value3, ...) 

COALESCE is defined as shorthand for the following SQL CASE expression:

 CASE WHEN value1 IS NOT NULL THEN value1 WHEN value2 IS NOT NULL THEN value2 WHEN value3 IS NOT NULL THEN value3 ... END 

Some SQL DBMS's implement vendor-specific functions similar to COALESCE. Some systems implement an ISNULL function, or other similar functions which are functionally similar to COALESCE.


NULLIF

The NULLIF function accepts two parameters. If the first parameter is equal to the second parameter, NULLIF returns Null. Otherwise, the value of the first parameter is returned.

 NULLIF(value1, value2) 

Thus, NULLIF is an abbrevation for the following CASE expression:

 CASE WHEN value1 = value2 THEN NULL ELSE value1 END 

Controversy

Common mistakes

Misunderstanding of how Null works is the cause of a great number of errors in SQL code, both in ISO standard SQL statements and in the specific SQL dialects supported by real-world database management systems. These mistakes are usually the result of confusion between Null and either 0 (zero) or an empty string (a string value with a length of zero, represented in SQL as ''). Null is different from an empty string and the numerical value 0, however. While Null indicates the absence of any value, the empty string and numerical zero both represent actual values.


For example, a WHERE clause or conditional statement might compare a column's value with a constant. It is often incorrectly assumed that a missing value would be "less than" or "not equal to" a constant if that field contains Null, but in fact, such expressions return Unknown. An example is below:

 SELECT * FROM sometable WHERE num <> 1; -- Rows where num is NULL will not be returned, -- contrary to many users' expectations. 

Similarly, Null values are often confused with empty strings. Consider the LENGTH function, which returns the number of characters in a string. When a Null is passed into this function, the function returns Null. This can lead to unexpected results, if users are not well versed in 3-value logic. An example is below:

 SELECT * FROM sometable WHERE LENGTH(string) < 20; -- Rows where string is NULL will not be returned. 

Criticisms

The ISO SQL implementation of Null is the subject of criticism, debate and calls for change. In The Relational Model for Database Management: Version 2, Dr. E.F. Codd suggested that the SQL implementation of Null was flawed and should be replaced by two distinct Null-type markers. The markers he proposed were to stand for "Missing but Applicable" and "Missing but Inapplicable", known as A-values and I-values, respectively. Codd's recommendation, if accepted, would have required the implementation of a four-valued logic in SQL.[3] Others have suggested adding additional Null-type markers to Codd's recommendation to indicate even more reasons that a data value might be "Missing", increasing the complexity of SQL's logic system. At various times, proposals have also been put forth to implement multiple user-defined Null markers in SQL. Because of the complexity of the Null-handling and logic systems required to support multiple Null markers, none of these proposals have gained widespread acceptance.


Still other Relational Management (RM) experts, like the authors of The Third Manifesto, Chris Date and Hugh Darwen, have suggested that the SQL Null implementation is inherently flawed and should be eliminated altogether.[13] These experts often point to inconsistencies and flaws in the implementation of SQL Null-handling (particularly in aggregate functions) as proof that the entire concept of Null is flawed and should be removed from the Relational Model.[14] Others, like author Fabian Pascal, have stated a belief that "how the function calculation should treat missing values is not governed by the relational model." The Third Manifesto (1995) is Christopher J. Dates and Hugh Darwens proposal for future relational database management systems that would avoid Object-Relational Impedance Mismatch between object-oriented programming languages and RDBMSs by fully supporting all the capabilities of the relational model. ... Chris (C. J.) Date is an independent author, lecturer, researcher, and consultant, specializing in relational database technology (a field he helped pioneer). ... Hugh Darwen, employee of IBM UK from 1967 to 2004, has been involved in the history of the relational model since the beginning. ... Fabian Pascal is a consultant to large software vendors such as IBM, Oracle, and Borland, but is better known as an author and seminar speaker. ...


Closed World Assumption

Another point of conflict concerning Nulls is that they violate the Closed World Assumption model of relational databases by introducing an Open World Assumption into it.[15] The Closed World Assumption, as it pertains to databases, states that "Everything stated by the database, either explicitly or implicitly, is true; everything else is false."[16] This view assumes that the knowledge of the world stored within a database is complete. Nulls, however, operate under the Open World Assumption, in which some items stored in the database are considered unknown, making the databases's stored knowledge of the world incomplete. Relational Management experts see this as an inconsistency within SQL. The closed world assumption is the presumption that what is not currently known to be true is false. ... The open world assumption is the presumption that what is not stated is currently unknown. ...


See also

SQL (IPA: or IPA: ), commonly expanded as Structured Query Language, is a computer language designed for the retrieval and management of data in relational database management systems, database schema creation and modification, and database object access control management. ... Tutorial D is an example of a truly relational database query language, developed by Christopher J. Date and Hugh Darwen and described in The Third Manifesto. ... A ternary, three-valued or trivalent logic is a term to describe any of several multi-valued logic systems in which there are three truth values indicating true, false and some third value. ... Data Manipulation Language (DML) is a family of computer languages used by computer programs or database users to retrieve, insert, delete and update data in a database. ... Codds 12 rules are a set of thirteen rules proposed by Edgar F. Codd, a pioneer of the relational model for databases, designed to define what is required from a database management system in order for it to be considered relational, i. ... A check constraint (also known as table check constraint) is a condition that defines valid data when adding or updating an entry in a table of a relational database. ... A relational database management system (RDBMS) is a database management system (DBMS) that is based on the relational model as introduced by Edgar F. Codd. ... A join combines records from two tables in a relational database and results in a new (temporary) table, also called joined table. ... The Third Manifesto (1995) is Christopher J. Dates and Hugh Darwens proposal for future relational database management systems that would avoid Object-Relational Impedance Mismatch between object-oriented programming languages and RDBMSs by fully supporting all the capabilities of the relational model. ...

References

  1. ^ Codd, E.F. (14 October 1985). "Is Your Database Really Relational?". ComputerWorld. 
  2. ^ Codd, E.F. (21 October 1985). "Does Your DBMS Run By The Rules?". ComputerWorld. 
  3. ^ a b Codd, E.F. (1990). The Relational Model for Database Management, Version 2, Addison Wesley Publishing Company. ISBN 0-201-14192-2. 
  4. ^ a b ISO/IEC (2003). ISO/IEC 9075-1:2003, "SQL/Framework". ISO/IEC, Section 4.4.2: The null value. 
  5. ^ a b Coles, Michael (June 27, 2005). "Four Rules for Nulls". SQL Server Central. 
  6. ^ ISO/IEC (2003). ISO/IEC 9075-2:2003, "SQL/Foundation". ISO/IEC, Section 8.7: null predicate. 
  7. ^ a b Coles, Michael (February 26, 2007). "Null Versus Null?". SQL Server Central. 
  8. ^ a b ISO/IEC (2003). ISO/IEC 9075-2:2003, "SQL/Foundation". ISO/IEC, Section 6.2.6: numeric value expressions. .
  9. ^ ISO/IEC (2003). ISO/IEC 9075-2:2003, "SQL/Foundation". ISO/IEC, Section 6.2.8: string value expression. .
  10. ^ ISO/IEC (2003). ISO/IEC 9075-2:2003, "SQL/Foundation". ISO/IEC, Section 4.15.4: Aggregate functions. .
  11. ^ ISO/IEC (2003). ISO/IEC 9075-2:2003, "SQL/Foundation". ISO/IEC, Section 3.1.6.8: Definitions: distinct. 
  12. ^ ISO/IEC (2003). ISO/IEC 9075-2:2003, "SQL/Foundation". ISO/IEC, Section 6.11: case expression. .
  13. ^ Darwen, Hugh; Chris Date. The Third Manifesto. Retrieved on May 29, 2007.
  14. ^ Darwen, Hugh. The Askew Wall (PDF). Retrieved on May 29, 2007.
  15. ^ Date, Chris (May 2005). Database in Depth: Relational Theory for Practicioners. O'Reilly Media, Inc., 73. ISBN 0-5961-0012-4. 
  16. ^ Date, Chris. Abstract: The Closed World Assumption. Data Management Association, San Francisco Bay Area Chapter. Retrieved on May 29, 2007.

Computerworld is an IT magazine that provides information to technology managers. ... Computerworld is an IT magazine that provides information to technology managers. ... Year 1990 (MCMXC) was a common year starting on Monday (link displays the 1990 Gregorian calendar). ... Pearson plc LSE: PSON;NYSE: PSO is a London-based media conglomerate. ... June 27 is the 178th day of the year (179th in leap years) in the Gregorian calendar. ... Year 2005 (MMV) was a common year starting on Saturday (link displays full calendar) of the Gregorian calendar. ... is the 57th day of the year in the Gregorian calendar. ... Year 2007 (MMVII) is the current year, a common year starting on Monday of the Gregorian calendar and the AD/CE era. ... May 29 is the 149th day of the year (150th in leap years) in the Gregorian calendar. ... May 29 is the 149th day of the year (150th in leap years) in the Gregorian calendar. ... May 29 is the 149th day of the year (150th in leap years) in the Gregorian calendar. ...

Further reading

  • Codd, E.F. (1970). "A Relational Model of Data for Large Shared Data Banks". Communications of the ACM 13 (6): 377–387. 
  • National Academy of Sciences (1999). "Chapt. 6: The Rise of Relational Databases", Funding a Revolution: Government Support for Computing Research. Washington DC, USA: National Academy Press. 
  • Date, C.J. (2000). The Database Relational Model: A Retrospective Review and Analysis: A Historical Account and Assessment of E. F. Codd's Contribution to the Field of Database Technology. Addison Wesley Longman. ISBN 0-201-61294-1. 

Communications of the ACM (CACM) is the flagship monthly magazine of the Association for Computing Machinery. ... Year 1999 (MCMXCIX) was a common year starting on Friday (link will display full 1999 Gregorian calendar). ... Nickname: Motto: Justitia Omnibus (Justice for All) Location of Washington, D.C., in relation to the states Maryland and Virginia Coordinates: , Country United States Federal District District of Columbia Government  - Mayor Adrian M. Fenty (D)  - City Council Chairperson: Vincent C. Gray (D) Ward 1: Jim Graham (D) Ward 2: Jack... Christopher J. Date is an independent author, lecturer, researcher, and consultant, specializing in relational database technology. ... 2000 (MM) was a leap year starting on Saturday of the Gregorian calendar. ... Pearson plc LSE: PSON;NYSE: PSO is a London-based media conglomerate. ...

External links

  • Oracle NULLs
  • The Third Manifesto
  • Implications of NULLs in sequencing of data
Topics in database management systems (DBMS)view  talk  edit )

Concepts
Database • Database models • Database storage • Relational model • Distributed DBMS • ACID • Null
Relational database • Relational algebra • Relational calculus • Database normalization • Referential integrity • Relational DBMS 
Primary key, Foreign key, Surrogate key, Superkey, Candidate key  A database management system (DBMS) is computer software designed for the purpose of managing databases. ... This article does not cite any references or sources. ... A data model is not just a way of structuring data: it also defines a set of operations that can be performed on the data. ... Database tables/indexes are typically stored in memory or on hard disk in one of many forms, ordered/unordered Flat files, ISAM, Heaps, Hash buckets or B+ Trees. ... The relational model for database management is a database model based on predicate logic and set theory. ... According to Elmasri and Navathe (2004, p. ... Acidity redirects here. ... A relational database is a database that conforms to the relational model, and refers to a databases data and schema (the databases structure of how that data is arranged). ... Relational algebra, an offshoot of first-order logic, is a set of relations closed under operators. ... The relational calculus refers to the two calculi, the tuple calculus and the domain calculus, that are part of the relational model for databases and that provide a declarative way to specify database queries. ... Database normalization is a design technique for structuring relational database tables. ... An example of a database that has not enforced referential integrity. ... A relational database management system (RDBMS) is a database management system (DBMS) that is based on the relational model as introduced by E. F. Codd. ... In database design, a primary key is a value that can be used to identify a unique row in a table. ... In the context of relational databases, a foreign key is a referential constraint between two tables[1]. The foreign key identifies a column or a set of columns in one (referencing) table that refers to a column or set of columns in another (referenced) table. ... A surrogate key is a unique primary key generated by the relational database management system that is not derived from any data in the database and whose only significance is to act as the primary key. ... A superkey is defined in the relational model as a set of attributes of a relation variable (relvar) for which it holds that in all relations assigned to that variable there are no two distinct tuples (rows) that have the same values for the attributes in this set. ... In the relational model a candidate key of a relation variable (relvar) is a set of attributes of that relvar such that (1) at all times it holds in the relation assigned to that variable that there are no two distinct tuples with the same values for these attributes and...

Objects
Trigger • View • Table • Cursor • Log • Transaction • Index 
Stored procedure • Partition A database trigger is procedural code that is automatically executed in response to certain events on a particular table in a database. ... In database theory, a view is a virtual or logical table composed of the result set of a query. ... In relational databases, SQL databases, and flat file databases, a table is a set of data elements (values) that is organized using a model of horizontal rows and vertical columns. ... In database packages, the term cursor refers to a control structure for the successive traversal (and potential processing) of records in a result set as returned by a query. ... In in the field of databases in computer science, a transaction log (also database log or binary log) is a history of actions executed by a database management system to guarantee ACID properties over crashes or hardware failures. ... A database transaction is a unit of interaction with a database management system or similar system that is treated in a coherent and reliable way independent of other transactions that must be either entirely completed or aborted. ... It has been suggested that Bitmap index be merged into this article or section. ... A stored procedure is a subroutine available to applications accessing a relational database system. ... A partition is a division of a logical database or its constituting elements into distinct independent parts. ...

Topics in SQL
Select • Insert • Update • Merge • Delete • Join • Union • Create • Drop
  Begin work • Commit • Rollback • Truncate • Alter SQL (IPA: or IPA: ), commonly expanded as Structured Query Language, is a computer language designed for the retrieval and management of data in relational database management systems, database schema creation and modification, and database object access control management. ... A SELECT statement in SQL returns a result set of records from one or more tables. ... An SQL INSERT statement adds one or more records to a table in a relational database. ... An UPDATE statement in SQL changes data in one or more records in a relational database management system. ... Wikipedia does not have an article with this exact name. ... It has been suggested that this article or section be merged into Data Manipulation Language. ... A join combines records from two tables in a relational database and results in a new (temporary) table, also called joined table. ... In SQL the UNION operator combines the results of two SQL queries into a single table of all matching rows. ... A CREATE statement in SQL creates an object inside of a relational database management system (RDBMS). ... A DROP statement in SQL removes an object from a relational database management system (RDBMS). ... It has been suggested that this article or section be merged into Database transaction. ... A COMMIT statement in SQL ends a transaction within a relational database management system (RDBMS) and makes all changes visible to other users. ... In database technologies, a rollback is an operation which returns the database to some previous state. ... The Truncate statement removes all the data from a table. ... An ALTER statement in SQL changes the properties of an object inside of a relational database management system (RDBMS). ...

Implementations of database management systems

Types of implementations
Relational • Flat file • Deductive • Dimensional • Hierarchical • Object oriented • Object relational • Temporal • XML data stores A relational database is a database that conforms to the relational model, and refers to a databases data and schema (the databases structure of how that data is arranged). ... A simple diagram depicting conversion of a CSV-format flat file database table into a relational database table. ... A deductive database system is a database system which can make deductions (ie: infer additional rules or facts) based on rules and facts stored in the (deductive) database. ... In a hierarchical data model, data are organized into a tree-like structure. ... In an object oriented database, information is represented in the form of objects like in object oriented programming. ... An object-relational database (ORD) or object-relational database management system (ORDBMS) is a relational database management system that allows developers to integrate the database with their own custom data types and methods. ... A temporal database is a database management system with built-in time aspects, e. ... In Software engineering, an XML database is a data persistence software system that allows data to be imported, accessed and exported in the XML format. ...

Database products
Object-oriented (comparison) • Relational (comparison) The following is a list of object-oriented database management systems. ... This article or section is not written in the formal tone expected of an encyclopedia article. ... // 4th Dimension Greenplum CA-Datacom Dataphor Daffodil database EnterpriseDB eXtremeDB DB2 FileMaker Greenplum Helix database Informix InterBase Kognitio, WX2 Linter Matisse Microsoft Jet Database Engine (part of Microsoft Access) Microsoft SQL Server Microsoft Visual FoxPro Mimer SQL mSQL Netezza NonStop SQL Openbase Oracle Oracle Rdb for OpenVMS OpenLink Virtuoso Universal... The following tables compare general and technical information for a number of relational database management systems. ...

Components
Query language • Query optimizer • Query plan • ODBC • JDBC Query languages are computer languages used to make queries into databases and information systems. ... The query optimizer is a component of database management system that is used to analyzes queries submitted to database server for execution, and then determines the optimal way to execute the query. ... A query plan (or query execution plan) is an set of steps used to access information in a SQL relational database management system. ... In computing, Open Database Connectivity (ODBC) provides a standard software API method for using database management systems (DBMS). ... Java Database Connectivity, or JDBC, is an API for the Java programming language that defines how a client may access a database. ...


  Results from FactBites:
 
Null - Wikipedia, the free encyclopedia (116 words)
Null (mathematics), a zero value in several branches of mathematics.
Null (physics), a concept in electromagnetism and theoretical physics.
Null result, the absence of the expected result in a scientific experiment.
SQL - Wikipedia, the free encyclopedia (2456 words)
SQL was adopted as a standard by ANSI (American National Standards Institute) in 1986 and ISO (International Organization for Standardization) in 1987.
One joke about SQL is that "SQL is not structured, nor is it limited to queries, nor is it a language." This is founded on the notion that pure SQL is not a classic programming language since it is not Turing-complete.
However, it also makes it possible for SQL source code to be produced (and optimized) by software, leading to the development of a number of natural language database query languages, as well as 'drag and drop' database programming packages with 'object oriented' interfaces.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.