When you're shopping for a database design tool, you need to understand the terms vendors use in order to understand a tool's capabities and how a specific tool compares with other products. Here are some basic terms you'll likely come across:
- Entity: An entity is an item that exists in a company—for example, an office, department, employee, computer, customer, or product.
- Relationship: Relationships are the links between entities. For example, a relationship between department and office entities might be that an office includes a department; a relationship between the employee and department entities might be that an employee is a member of a department. In a one-to-one relationship, each instance of one entity relates to one instance of a second entity. In a one-to-many relationship, each instance of one entity relates to one or more instances of a second entity. In a many-to-many relationship, many instances of one entity relate to many instances of the other entity.
- Attribute: An attribute is property of an entity or relationship. For example, the entity of employee might have the attributes of name, home address, home phone number, and date hired.
- Domain: A domain is an object that you define and populate with metadata (i.e., data about data, such as data types, validation rules, dependencies, or default values). One way to utilize domains is in place of standard data types to maintain data-type consistency in a database. For example, if your company has offices in the United States and France, you might create a domain named US_HOME_PHONE that has a variable-character data type of length 12 and a domain named FR_HOME_PHONE that has a variable-character data type of length 8. You can then use these domains for any applicable entity attribute (e.g., employee's home phone number, customer's phone number) in the database.
- Data dictionary: A data dictionary is a set of metadata. When the data model is implemented in a DBMS, the data dictionary becomes a read-only set of tables and views.
- Supertype: A supertype is a generic type of entity that has a relationship with one or more subtypes. For example, the entity of employee is a supertype.
- Subtype: A subtype is a subgroup within an entity that has common attributes or relationships. For example, the entity of employee might have the subtypes of exempt and non-exempt.