Structure of Relational Databases

  • 关系数据库由表 (table) 的集合构成,每个表有唯一的名字
  • 表中的一行戴奥了一组值之间的一种联系 (relationship)
  • 表是这种联系的一个集合
  • Venn图如下

数据库系统概念 Relational Model
可以看到,table和relation两个概念密切相关。

  • r e l a t i o n    ⟹    t a b l e relation\implies{table} relationtable
  • a t t r i b u t e    ⟹    c o l u m n attribute\implies{column} attributecolumn
  • 关系实例 (relation instance):一个关系的特定实例,即即一组特定的行;
  • 对于关系的每个属性,都存在一个允许取值的集合,成为该属性的域 (domain)
  • 关系的所有属性的域都具有原子性 (atomic 不可再分)

Database Schema

  • Database Schema 数据库模式:数据库的逻辑设计 可类比变量定义
  • Databse Instance 数据库实例:给定时刻数据库中状态 类比某一时刻变量的值

Keys

用于区分给定关系中不同元组的方法。

  • Superkey 超码:能够在一个关系中唯一地标识一个元组的,一个或多个属性的集合。
  • Candidate key 候选码:如果一个超码地任意真子集都不能成为超码,这样最小的超码称为候选码。
  • Primary key 主码:被数据库设计者选中的、主要用来在一个关系中区分不同元组的候选码。
  • Venn图如下

数据库系统概念 Relational Model
需要注意,码是整个关系的一种性质,而不是单个元组的性质。

  • 一个关系模式(r1)可能在它的属性中包括另一个关系模式和(r2)的主码,这个属性在r1上称作参照r2的外码 (foreign key)
    r1称为外码的参照关系(referencing relation)
    r2称为外码的被参照关系(referenced relation)

Schema Diagrams

一个含有主码和外码依赖的数据库模式可以用模式图(schema diagram)表示。

数据库系统概念 Relational Model

Relational Query Languages

查询语言(query language) 是用户用来从数据库中请求获取信息的语言。
过程化与非过程化。

Relational Operations

Symbol (Name) Usage Example
σ \sigma σ (Selection) 返回输入关系中满足谓词的元组 σ a g e > = 18 ( s t u d e n t ) \sigma_{age>=18}(student) σage>=18(student)
Π \Pi Π (Projection) 对输入关系的所有行输出指定的属性。从输出中去除重复元组 Π I D , s a l a r y ( i n s t r u c t o r ) \Pi_{ID,salary}(instructor) ΠID,salary(instructor)
⋈ ⋈ (Natural join) 从两个输入关系中输出这样的元组对:他们在具有相同名字的所有属性上取值相同 i n s t r u c t o r ⋈ d e p a r t m e n t instructor⋈department instructordepartment
× \times × (Cartesian product) 从两个输入关系中输出所有的元组对 i n s t r u c t o r × d e p a r t m e n t instructor \times department instructor×department
⋃ \bigcup (Union) 输出两个输入关系中元组的并 Π n a m e ( i n s t r u c t o r ) ⋃ Π n a m e ( s t u d e n t ) \Pi_{name}(instructor) \bigcup \Pi_{name}(student) Πname(instructor)Πname(student)
− - (Set Difference) 输出两个输入关系中元组的差 Π n a m e ( i n s t r u c t o r ) − Π n a m e ( s t u d e n t ) \Pi_{name}(instructor) - \Pi_{name}(student) Πname(instructor)Πname(student)

数据库系统概念 Relational Model

数据库系统概念 Relational Model

数据库系统概念 Relational Model

数据库系统概念 Relational Model

数据库系统概念 Relational Model

数据库系统概念 Relational Model

数据库系统概念 Relational Model

数据库系统概念 Relational Model

例题:

数据库系统概念 Relational Model

数据库系统概念 Relational Model
(1) Π p e r s o n _ n a m e ( σ c i t y = " M i a m i " ( e m p l o y e e ) ) \Pi_{person\_name}(\sigma_{city="Miami"}(employee)) Πperson_name(σcity="Miami"(employee))
(2) Π p e r s o n _ n a m e ( e m p l o y e e ⋈ σ s a l a r y > 100000 ( w o r k s ) ) \Pi_{person\_name}(employee⋈\sigma_{salary>100000}(works)) Πperson_name(employeeσsalary>100000(works))
(3) Π p e r s o n _ n a m e ( σ c i t y = " M i a m i " ( e m p l o y e e ) ⋈ σ s a l a r y > 100000 ( w o r k s ) ) \Pi_{person\_name}(\sigma_{city="Miami"}(employee)⋈\sigma_{salary>100000}(works)) Πperson_name(σcity="Miami"(employee)σsalary>100000(works))
(4) Π p e r s o n _ n a m e , c i t y ( e m p l o y e e ⋈ σ c o m p a n y _ n a m e = " F i r s t B a n k C o r p a r a t i o n " ( w o r k s ) ) \Pi_{person\_name, city}(employee⋈ \sigma_{company\_name="First Bank Corparation"}(works)) Πperson_name,city(employeeσcompany_name="FirstBankCorparation"(works))
(5) Π p e r s o n _ n a m e , s t r e e t , c i t y ( e m p l o y e e ⋈ σ c o m p a n y _ n a m e = " F i r s t B a n k C o r p a r a t i o n " ⋀ s a l a r y > 10000 ( w o r k s ) ) \Pi_{person\_name, street, city}(employee ⋈ \sigma_{company\_name="First Bank Corparation"\bigwedge salary>10000}(works) ) Πperson_name,street,city(employeeσcompany_name="FirstBankCorparation"salary>10000(works))
(6) Π p e r s o n _ n a m e ( σ e m p l o y e e . c i t y = c o m p a n y . c i t y ( e m p l o y e e × ( w o r k s ⋈ c o m p a n y ) ) ) \Pi_{person\_name}(\sigma_{employee.city=company.city}(employee \times (works ⋈ company))) Πperson_name(σemployee.city=company.city(employee×(workscompany)))

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-09
  • 2021-07-28
  • 2021-05-31
  • 2021-10-05
  • 2021-07-02
猜你喜欢
  • 2021-08-19
  • 2021-08-23
  • 2021-07-02
  • 2022-01-18
  • 2021-06-16
  • 2021-08-17
  • 2021-08-19
相关资源
相似解决方案