| A | B |
| entity type | group of objects with the same properties, which are identified by the enterprise as having an independent existence |
| entity occurrence | a uniquely identifiable object of an entity type |
| relationship type | set of meaningful associations among entity types |
| relationship occurrence | a uniquely identifiable association, which includes one occurrence from each participating entity type |
| degree of a relationship type | the number of participating entity types in a relationship |
| recursive relationship | a relationship type where the same entity type participates more than once in different roles |
| attribute | a property of an entity or a relationship type |
| attribute domain | the set of allowable values for one or more attributes |
| simple attribute | composed of a single component with an independent existence |
| composite attribute | composed of multiple components each with an independent existence |
| single-valued attribute | holds a single value for each occurrence of an entity type |
| multi-valued attribute | holds multiple values for each occurrence of an entity type |
| derived attribute | representes a value that is derivable from the value of a related attribute or set of attributes, not necessarily in the same entity |
| candidate key | the minimal set of attributes that uniquely identifies each occurrence of an entity type |
| primary key | the candidate key that is selected to uniquely identify each occurrence of an entity type |
| composite key | a candidate key that consists of two or more attributes |
| strong entity type | entity type that is NOT existence-dependent on some other entity type |
| weak entity type | entity type that IS existence-dependent on some other entity type |
| multiplicity | the number (or range) of possible occurrences of an entity type that may relate to a single occurrence of an associated entity type through a particular relationship |
| multiplicity for a complex relationship | the number (or range) of possible occurrences of an entity type in an n-ary relationship when the other (n-l) values are fixed |
| cardinality | the maximum number of possible relationship occurrences for an entity participating in a given relationship type |
| participation | determines whether all or only some entity occurrences participate in a given relationship |
| fan trap | exists where a model represents a relationship between entity types, but the pathway between certain entity occurrences is ambiguous |
| chasm trap | exists where a model suggests the existence of a relationship between entity types, but the pathway does not exist between certain entity occurrences |
| superclass | an entity type that includes one or more distinct sub-groupings of its occurrences, which require to be represented in a data model |
| subclass | a distinct sub-grouping of occurrences of an entity type, which require to be represented in a data model |
| specialization | the process of maximizing the differences between members of an entity by identifying their distinguishing features |
| generalization | the process of minimizing the differences between entities by identifying their common features |
| participation constraint | determines whether every member in the superclass must participate as a member of a subclass |
| disjoint constraint | describes the relationship between members of the subclasses and indicates whether it is possible for a member of a superclass |
| aggregation | represents a "has-a" or "is-part-of" relationship between entity types, where one represents the "whole" and the other a "part" |
| Relations required for a Mandatory participation constraint and a nondisjoint {And} Disjoint Constraint | Constraints requiring a single relation (with one or more discriminators |
| Relations required for an optional participation constraint and a nondisjoint {And} Disjoint Constraint | Constraints requiring two relations: one relation for superclass and one relation for all subclasses (with one or more discriminators to distinguish the type of each tuple) |
| Relations required for a Mandatory participation constraint and a Disjoint {Or} Constraint | Constraints requiring many relations: one relation for each combined superclass/sublcass |
| Relations required for an optional participation constraint and a Disjoint {Or} Constraint | Constraints requiring many relations: one relation for superclass and one for each subclass |
| Concurrency control | The process of managing simultaneous operations on the database without having them interfere with one another |
| Database recovery | the process of restoring the database to a correct state after a failure. |
| transaction | an action, or series of actions, carried out by a single user or application program, that accesses or changes the contents of the database. A logical unit of work that takes the database from one consistent state to another. |
| commit | transactions terminating successfully |
| abort | transactions terminating unsuccessfully |
| undone | what must happen to aborted transactions |
| ACID stands for | atomicity, consistency, isolation, and durability |
| Atomicity | all database modifications must follow an "all or nothing rule" |
| Consistency | Each transaction the database performs will take it from one consistent state to another |
| Isolation | the requirement that other operations cannot access data that has been modified during a transaction that has not yet completed |
| Durability | the ability of the DBMS to recover the committed transaction updates against any kind of system failure |
| schedule | shows the sequence of operations of transactions |
| serializable schedule | a schedule that produces the same results as some serial schedule |
| two-phase locking (2PL) | a transaction acquires all its locks before releasing any. |
| timestamping | transactions are ordered in such a way that older transactions get priority in the event of a conflict |
| deadlock | when two or more transactions are waiting to access data the otehr transaction has locked |
| The only way to break a deadlock | abort one or more transactions |
| intention lock | locking each ancestor of a node being locked to show whether descendants of nodes are locked |
| query processing | to transform a query written in a high level language such as SQL into a correct and efficient execution strategy expressed in a low level langauge like relational algebra and to execute the strategy |
| heuristic rules | ordering the operations in a query |
| phases of query processing | decomposition (parsing and validation), optimization, code generation, and execution. First three can be done either at compile or runtime |
| Query decomposition | transforms a high-level query into a relational algebra query and checks that the query is syntactically and sematically correct |
| Stages of query decomposition | analysis, normalization, semantic analysis, simplification, and query restructuring |
| query optimization | applies transformation rules to convert one relational algebra expression into an equivalent expression that is known to be more efficient |