Past Research  
   

Past Research

Nested Virtual Domains in Relational Databases
Supervisor: Prof. Tim H. Merrett
Casting and Null Values for Numeric Database Types
Supervisor: Prof. Tim H. Merrett
Null values have been problematic for database theory ever since they were first proposed. The principal difficulties appear to be semantic. Although many approaches exist in literature, there is no general agreement as to which one of these, if any, provides a correct formal semantic for nulls. Underwent carefully research on various novel definitions and approaches, the convention we applied here is to define a null value as the value has yet to be determined and until the user ascertain the appropriate value, the value remains unknown. There are 4 commonly used handling techniques nowadays namely null value checking, exception handler, subclassification, truth values. The implementation of null value handler to Relix is rather a combination of the last 2 techniques. Null values are classified into DK (don't know) and DC (don't care). The first describes irrelevance; the second missing data. Inside the system, these two values are considered as literals (of course, in this case of DC & DK together with T & F, they can be thought of as a 4-value logic), and therefore arithmetic and other logical operations are possible to apply to null values also. New Page 1

         The DC values in primitive type arithmetic, as well as in string operations obey the following rules:

  •       DC is the right and left identity for any binary operator that preserves type;

  •       x + DC = x, DC + x = x, x * DC = x, ...

  •       DC - x = DC + (-x) = -x

  •       DC / x = DC * (/x) = /x

  •       Unary operations on DC are ignored: -DC = DC

  •       x op DC is DC for any comparison, op is in {<, <=, =, >=, >, ≠}

The DK values in primitive type arithmetic, as well as in string operations behave in the following manner:

  •       x op DK = DK, op is in {<, <=, =, >=, >,≠}

  •       operators on DK almost always give DC:

  •     DK - x = DK, x * DK = DK, x max DK = DK

Casting in the user interface gives the user the flexibility to switch one type to another, including numeric types and string types with valid numeric representation. The main issue arises here is lose of precision. Again there are various of handling methods in literature. After careful studies, the choice we make is in the case of converting from higher to lower precision, a null value DK is produced. From then on the value remains don't know unless the user assign a appropriate value to it.
Infinite-Precision Arithmetic for a Database Programming Language
Supervisor: Prof. Tim H. Merrett

Maintained by Victoria Yang.