• In the relational model, keys are important because: • they are used to ensure that each row in a table is uniquely identifiable. • They are also used to establish relationships among tables and to ensure the integrity of the data. • A "key" means a "unique identifier" for a row of information. INDEXES
• An index is a data structure that allows the
DBMS to locate particular records in a file more quickly and thereby speed response to user queries. • An index is an orderly arrangement used to logically access rows in a table. Or an Index is a data structure that facilitates the query answering process by minimizing the number of disk accesses. • This is analogous to using the index of a book to go directly to the page on which the information you are looking for is found, so that you do not have to read the entire book to find what you are looking for. • From a conceptual point of view, an index is composed of an index key and a set of pointers. • The index key is, in effect, the index’s reference point. More formally, an index is an ordered arrangement of keys and pointers. • An index structure is usually defined on a single Attribute of a Relation, called the Search Key;
Search Key Pointer to a data-file record
• Suppose you want to look up all of the paintings created by a given painter. Without an index, you must read each row in the PAINTING table and see if the PAINTER_NUM matches the requested painter. • However, if you index the PAINTER table and use the index key PAINTER_NUM, you merely need to look up the appropriate PAINTER_NUM in the index and find the matching pointers. More on relational keys
• Superkey is an attribute or set of attributes
that uniquely identifies a tuple within a relation. However, a Superkey may contain additional attributes that are not necessary for unique identification. When a key consists of more than one attribute it is called a composite key. • Candidate key is a Superkey such that no proper subset is a Superkey within the relation. That is, Superkey without unnecessary attributes. A candidate key for a relation has two properties: uniqueness – in each tuple of a relation, the values of candidate key uniquely identify that tuple; irreducibility – no proper subset of candidate key has the uniqueness property. • Every table must have at least one candidate key but at the same time can have several. • In order to be eligible for a candidate key it must pass certain criteria. – It must contain unique values – It must not contain null values – It contains the minimum number of fields to ensure uniqueness – It must uniquely identify each record in the table • Once your candidate keys have been identified you can now select one to be your primary key Primary Key • Primary key is a candidate key that is selected to identify tuples uniquely within the relation. It is a candidate key that is most appropriate to be the main reference key for the table. • It is the primary key of reference for the table and is used throughout the database to help establish relationships with other tables. • Primary keys are mandatory for every table each record must have a value for its primary key. Foreign Key • A foreign key is generally a primary key from one table that appears as a field in another where the first table has a relationship to the second. In other words, if we had a table A with a primary key X that linked to a table B where X was a field in B, then X would be a foreign key in B. • An attribute (or combination of attributes) in one table whose values must either match the primary key in another table or be null. Alternative Key
• A table may have one or more choices for the
primary key. Collectively these are known as candidate keys . One is selected as the primary key. Those not selected are known as secondary keys or alternative keys. Simple Key • Any of the key may comprise one or more fields, for example if firstName and lastName was our key this would be a key of two fields where as studentId is only one. A simple key consists of a single field to uniquely identify a record. In addition the field in itself cannot be broken down into other fields. Compound Key • A compound key consists of more than one field to uniquely identify a record. • A compound key is distinguished from a composite key because each field, which makes up the primary key, is also a simple key in its own right. Each of the fields that make up the primary key are simple keys because each represents a unique reference when identifying a student in one instance and a module in the other. Composite Key • A composite key consists of more than one field to uniquely identify a record. This differs from a compound key in that one or more of the attributes, which make up the key, are not simple keys in their own right. Because firstName + lastName represent a unique reference to a student, they are not each simple keys, they have to be combined in order to uniquely identify the student. Therefore the key for this table is a composite key