Among different  isolation levels , non-repeatable reads are prevented by the  serializable read  and  repeatable read  levels, and allowed by the  consistent read , and  read uncommitted  levels. See Also ACID, consistent read, isolation level, READ UNCOMMITTED, REPEATABLE READ, SERIALIZABLE, transaction.  An industry term that means the same as  asynchronous I/O . See Also asynchronous I/O.  A database design strategy where data is split into multiple tables, and duplicate values condensed into single rows represented by an ID, to avoid storing, querying, and updating redundant or lengthy values. It is typically used in  OLTP  applications. nonblocking I/O normalized For example, an address might be given a unique ID, so that a census database could represent the relationship lives at this address  by associating that ID with each member of a family, rather than storing multiple copies of a complex value such as  123 Main Street, Anytown, USA . For another example, although a simple address book application might store each phone number in the same table as a person’s name and address, a phone company database might give each phone number a special ID, and store the numbers and IDs in a separate table. This normalized representation could simplify large-scale updates when area codes split apart. Normalization is not always recommended. Data that is primarily queried, and only updated by deleting entirely and reloading, is often kept in fewer, larger tables with redundant copies of duplicate values. This data representation is referred to as  denormalized , and is frequently found in data warehousing applications. See Also denormalized, foreign key, OLTP, relational.  A broad term for a set of data access technologies that do not use the  SQL  language as their primary mechanism for reading and writing data. Some NoSQL technologies act as key-value stores, only accepting single-value reads and writes; some relax the restrictions of the  ACID  methodology; still others do not require a pre-planned  schema . MySQL users can combine NoSQL-style processing for speed and simplicity with SQL operations for flexibility and convenience, by using the  memcached  API to directly access some kinds of MySQL tables. The  memcached  interface to  InnoDB  tables is available in MySQL 5.6 and higher; see Section 15.20, “InnoDB memcached Plugin”  for details. The  memcached  interface to  NDB  tables is available in NDB Cluster 7.2 and later; see ndbmemcache—Memcache API for NDB Cluster (NO LONGER SUPPORTED). See Also ACID, InnoDB, memcached, schema, SQL.  A type of  constraint  that specifies that a  column  cannot contain any  NULL  values. It helps to preserve referential integrity , as the database server can identify data with erroneous missing values. It also helps in the arithmetic involved in query optimization, allowing the optimizer to predict the number of entries in an index on that column. See Also column, constraint, NULL, primary key, referential integrity.  A special value in  SQL , indicating the absence of data. Any arithmetic operation or equality test involving a NULL  value, in turn produces a  NULL  result. (Thus it is similar to the IEEE floating-point concept of NaN, “not a number” .) Any aggregate calculation such as  AVG()  ignores rows with  NULL  values, when determining how many rows to divide by. The only test that works with  NULL  values uses the SQL idioms  IS NULL  or  IS NOT NULL . NULL  values play a part in  index  operations, because for performance a database must minimize the overhead of keeping track of missing data values. Typically,  NULL  values are not stored in an index, because a query that tests an indexed column using a standard comparison operator could never match a row with a  NULL  value for 6171 NULL NOT NULL constraint NoSQL