# Chapter 3: Relational Database Model

relational model
based on predicate logic and set theory
predicate logic
Used extensively in mathematics to provide a framework in which an assertion (statement of fact) can be verified as either true or false.
set theory
A part of mathematical science that deals with sets, or groups of things, and is used as the basis for data manipulation in the relational model.
tuple
In the relational model, a table row.
attribute domain
range of permissible values for an attribute.
primary key
In the relational model, an identifier composed of one or more attributes that uniquely identifies a row. Also, a candidate key selected as a unique entity identifier. See also key.
key
One or more attributes that determine other attributes. See also superkey, candidate key, primary key (PK), secondary key, and foreign key.
determination
The role of a key. In the context of a database table, the statement “A determines B” indicates that knowing the value of attribute A means that the value of attribute B can be looked up.
functional dependence
Within a relation R, an attribute B is functionally dependent on an attribute A if and only if a given value of attribute A determines exactly one value of attribute B. The relationship “B is dependent on A” is equivalent to “A determines B,” and is written as A → B.
full functional dependence
A condition in which an attribute is functionally dependent on a composite key but not on any subset of the key.
determinant
Any attribute in a specific row whose value directly determines other values in that row. See also Boyce-Codd normal form (BCNF).
dependent
An attribute whose value is determined by another attribute.
composite key
A multiple attribute key.
key attributes
superkey
An attribute or attributes that uniquely identify each entity in a table. See key.
candidate key
A minimal superkey; that is, a key that does not contain a subset of attributes that is itself a superkey. Based on full functional dependency. See key.
entity integrity
The property of a relational table that guarantees each entity has a unique value in a primary key and that the key has no null value.
null
The absence of an attribute value. Note that a null is not a blank.
foreign key
An attribute or attributes in one table whose values must match the primary key in another table or whose values must be null. See key.
referential integrity
A condition by which a dependent table’s foreign key must have either a null entry or a matching entry in the related table.
secondary key
A key used strictly for data retrieval purposes. For example, customers are not likely to know their customer number (primary key), but the combination of last name, first name, middle initial, and telephone number will probably match the appropriate table row. See also key.
flags
Special codes implemented by designers to trigger a required response, alert end users to specified conditions, or encode values. Flags may be used to prevent nulls by bringing attention to the absence of a value in a table.
relational algebra
A set of mathematical principles that form the basis for manipulating relational table contents; the eight main functions are SELECT, PROJECT, JOIN, INTERSECT, UNION, DIFFERENCE, PRODUCT, and DIVIDE.
relvar
Short for relation variable, a variable that holds a relation. A relvar is a container (variable) for holding relation data, not the relation itself.
closure
A property of relational operators that permits the use of relational algebra operators on existing tables (relations) to produce new relations.
SELECT
In relational algebra, an operator used to select a subset of rows. Also known as RESTRICT.
PROJECT
In relational algebra, an operator used to select a subset of columns.
UNION
In relational algebra, an operator used to merge (append) two tables into a new table, dropping the duplicate rows. The tables must be union- compatible.
union-compatible
Two or more tables that have the same number of columns and the corresponding columns have compatible domains.
INTERSECT
In relational algebra, an operator used to yield only the rows that are common to two union-compatible tables.
DIFFERENCE
In relational algebra, an operator used to yield all rows from one table that are not found in another union-compatible table.
PRODUCT
In relational algebra, an operator used to yield all possible pairs of rows from two tables. Also known as the Cartesian product.
JOIN
In relational algebra, a type of operator used to yield rows from two tables based on criteria. There are many types of joins, such as natural join, theta join, equijoin, and outer join.
natural join
A relational operation that yields a new table composed of only the rows with common values in their common attribute(s).
join columns
Columns that are used in the criteria of join operations. The join columns generally share similar value.
equijoin
A join operator that links tables based on an equality condition that compares specified columns of the tables.
theta join
A join operator that links tables using an inequality comparison operator (<, >, <=, >=) in the join condition.
inner join
A join operation in which only rows that meet a given criterion are selected. The join criterion can be an equality condition (natural join or equijoin) or an inequality condition (theta join). The inner join is the most commonly used type of join. Contrast with outer join.
outer join
A relational algebra join operation that produces a table in which all unmatched pairs are retained; unmatched values in the related table are left null. Contrast with inner join. See also left outer join and right outer join.
left outer join
In a pair of tables to be joined, a join that yields all the rows in the left table, including those that have no matching values in the other table. For example, a left outer join of CUSTOMER with AGENT will yield all of the CUSTOMER rows, including the ones that do not have a matching AGENT row. See also outer join and right outer join.
right outer join
In a pair of tables to be joined, a join that yields all of the rows in the right table, including the ones with no matching values in the other table. For example, a right outer join of CUSTOMER with AGENT will yield all of the AGENT rows, including the ones that do not have a matching CUSTOMER row. See also left outer join and outer join.
DIVIDE
In relational algebra, an operator that answers queries about one set of data being associated with all values of data in another set of data.
data dictionary
A DBMS component that stores metadata— data about data. Thus, the data dictionary contains the data definition as well as their characteristics and relationships. A data dictionary may also include data that are external to the DBMS. Also known as an information resource dictionary. See also active data dictionary, metadata, and passive data dictionary.
system catalog
A detailed system data dictionary that describes all objects in a database.
homonym (DB context)
The use of the same name to label different attributes. Homonyms generally should be avoided. Some relational software automatically checks for homonyms and either alerts the user to their existence or automatically makes the appropriate adjustments. See also synonym.
synonym (DB context)
The use of different names to identify the same object, such as an entity, an attribute, or a relationship; synonyms should generally be avoided. See also homonym.
composite entity
An entity designed to transform an M:N relationship into two 1:M relationships. The composite entity’s primary key comprises at least the primary keys of the entities that it connects. Also known as a bridge entity or associative entity. See also linking table.