- Learning PostgreSQL 11
- Salahaldin Juba Andrey Volkov
- 316字
- 2021-07-02 13:11:37
Relation
Think of a relation as a table with a header, columns, and rows. The table name and the header help in interpreting the data in the rows. Each row represents a group of related data, which points to a certain object.
A relation is represented by a set of tuples. Tuples should have the same set of ordered attributes. Attributes have a domain, that is, a type and a name:

The relation schema is denoted by the relation name and the relation attributes. For example, customer (customer_id, first_name, last_name, and email) is the relation schema for the customer relation. Relation state is defined by the set of relation tuples; thus, adding, deleting, and amending a tuple will change the relation to another state.
Tuple order or position in the relation is not important, and the relation is not sensitive to tuple order. The tuples in the relation could be ordered by a single attribute or a set of attributes. Also, a relation cannot have duplicate tuples.
A relation can represent entities in the real world, such as a customer, or can be used to represent an association between relations. For example, the customer could have several services and a service can be offered to several customers. This could be modeled by three relations: customer, service, and customer_service. The customer_service relation associates the customer and the service relations. Separating the data in different relations is a key concept in relational database modeling, and is called normalization. Normalization is the process of organizing relation columns and relations to reduce data redundancy. For example, assume that a collection of services is stored in the customer relation. If a service is assigned to multiple customers, this would result in data redundancy. Also, updating a certain service would require updating all its copies in the customer table.
- Qt 5 and OpenCV 4 Computer Vision Projects
- 實戰Java程序設計
- 區塊鏈:以太坊DApp開發實戰
- Apex Design Patterns
- Linux操作系統基礎案例教程
- Android系統級深入開發
- JavaScript程序設計(第2版)
- Learning Hadoop 2
- Building Serverless Architectures
- 網絡數據采集技術:Java網絡爬蟲實戰
- TypeScript 2.x By Example
- 從零開始學Android開發
- Learning Ionic
- Java EE Web應用開發基礎
- 超簡單:Photoshop+JavaScript+Python智能修圖與圖像自動化處理