[数据库] 2.1 - 关系模型之基本概念


文章目录

  • 2.1 关系模型之基本概念
    • 2.1.1 关系模型简述
      • 提出
      • 关系模型研究什么
      • 关系模型与关系数据库语言的关系
      • 为什么要学习关系模型与关系数据库语言
    • 2.1.2 关系的数学定义
      • “表”的基本构成要素
      • “表”的严格定义--关系?
        • ( D o m a i n ) (Domain) (Domain) (列)
        • 笛卡尔积 ( C a r t e s i a n (Cartesian (Cartesian P r o d u c t ) Product) Product)
        • 元组 ( T u p l e ) (Tuple) (Tuple) (行)
        • 关系 ( R e l a t i o n ) (Relation) (Relation)
        • 关系模式与关系
    • 2.1.3 关系的特性及相关概念
      • 关系的特性
      • 关系上的一些重要概念
        • 候选码 ( C a n d i d a t e (Candidate (Candidate K e y ) Key) Key) / 候选键
        • 主码 ( P r i m a r y (Primary (Primary K e y ) Key) Key) / 主键
        • 外码 ( F o r e i g n (Foreign (Foreign K e y ) Key) Key) / 外键
      • 小结
    • 2.1.4 关系模型中的完整性




2.1 关系模型之基本概念

2.1.1 关系模型简述

提出

  • 最早由 E . F . C o d d E.F.Codd E.F.Codd 1970 1970 1970 年提出
  • 是从表 ( T a b l e ) (Table) (Table) 及表的处理方式中抽象出来的, 是在对传统表及其操作进行数学化严格定义基础上,引入 集合理论逻辑学理论 提出的
  • 是数据库的三大经典数据模型之一
  • 标准的数据库语言 ( S Q L SQL SQL语言)是 建立在关系模型基础之上 的, 数据库领域的众多理论也都是建立在关系模型基础之上的

目录

关系模型研究什么

  • 形象地说,一个关系 ( r e l a t i o n ) (relation) (relation)就是一个表 ( T a b l e ) (Table) (Table)

  • 关系模型就是处理表的,它由三个部分组成

    • 描述 D B DB DB 各种数据的基本结构形式 ( T a b l e / R e l a t i o n ) (Table/Relation) (Table/Relation)
    • 描述 T a b l e Table Table T a b l e Table Table 之间所可能发生的各种操作(关系运算)
    • 描述这些操作所应遵循的约束条件(完整性约束)
  • T a b l e Table Table 如何描述,有哪些操作、结果、约束

  • 关系模型的三要素

  • 基本结构:关系 ( R e l a t i o n ) (Relation) (Relation) / 表 ( T a b l e ) (Table) (Table)

  • 基本操作
    基本的: ∪ \cup (并, UNION)、 − - (差, DIFFERENCE) 、 × \times × (广义积, PRODUCT)、 σ \sigma σ (选择, SELECTION)、 π \pi π (投影, PROJECTION)
    扩展的: ∩ \cap (交, INTERSECTION) 、 ⋈ \bowtie (连接, JOIN)、 ÷ \div ÷ (除, DIVISION)运算

  • 完整性约束:实体完整性、参照完整性和用户自定义的完整性

  • 关系运算:关系代数和关系演算(元组演算和域演算)

  • 关系代数(是一种数学语言):基于集合的运算

    • 即:操作的对象及结果都是集合,是一次一集合的操作,而非关系型的数据操作通常是一次一记录的操作
      π 姓 名 , 课 程 名 ( σ 课 程 号 = c 2 ( R ⋈ S ) ) \pi_{姓名, 课程名} \left( \sigma_{课程号=c_2} \left( R \bowtie S\right) \right) π,(σ=c2(RS))
    • 基于关系代数设计的数据库语言 ( I S B L ) (ISBL) (ISBL):用计算机可识别的符号表征关系代数的运算符号
      R : F R:F R:F 表示选择运算, R % R\% R% 表示投影运算
      ( ( R ∗ S ) : 课 程 号 = c 2 % 姓 名 , 课 程 名 ((R * S):课程号 = c2 \% 姓名, 课程名 ((RS):=c2%,

目录

关系模型与关系数据库语言的关系

  • 元组演算 示例(也是一种数学语言):

    基于逻辑的运算(与、或、非、存在量词、全称量词)
    { t ∣ ( ∃ u ) ( R ( t ) ∧ W ( u ) ∧ t [ 3 ] < u [ 1 ] ) } \{t| (\exists u) (R(t) \wedge W(u) \wedge t[3] < u[1])\} {t(u)(R(t)W(u)t[3]<u[1])}

  • 基于元组演算设计的数据库语言( I n g r e s Ingres Ingres 系统的 Q U E L QUEL QUEL ):用计算机可识别的符号表征元组演算的运算符号

    range of t is R
    range of u is W
    retrieve t where t.sage < u.sage
    
  • **域演算 **示例:

    也称做“字段”,是指数据中不可再分的基本单元。一个域包含一个值。 如学生的名字等。
    { t 1 , t 2 ∣ S ( t 1 , t 2 ) ∧ R ( t 1 , t 2 ) ∧ t 1 < 20 } \{t1,t2|S(t1,t2) \wedge R(t1,t2) \wedge t_1 < 20\} {t1,t2S(t1,t2)R(t1,t2)t1<20}

  • 基于域演算设计的数据库语言示例:( Q B E QBE QBE:Query By Example)

[数据库] 2.1 - 关系模型之基本概念_第1张图片

目录

为什么要学习关系模型与关系数据库语言

[数据库] 2.1 - 关系模型之基本概念_第2张图片

目录




2.1.2 关系的数学定义

“表”的基本构成要素

[数据库] 2.1 - 关系模型之基本概念_第3张图片

目录

“表”的严格定义–关系?

( D o m a i n ) (Domain) (Domain) (列)

  1. 一组值的集合,这组值具有 相同的数据类型 ,域是列的 取值范围
  2. 集合中元素的个数称为域的 基数 ( C a r d i n a l i t y ) (Cardinality) (Cardinality)

笛卡尔积 ( C a r t e s i a n (Cartesian (Cartesian P r o d u c t ) Product) Product)

  1. 一组域 D 1 , D 2 , . . . , D n D_1, D_2, ... , D_n D1,D2,...,Dn 的笛卡尔积为:
    D 1 × D 2 × . . . × D n = { ( d 1 , d 2 , . . . , d n ) ∣ d i ∈ D i , i = 1 , . . . , n ) } D_1 \times D_2 \times ... \times D_n = \{(d_1,d_2,...,d_n)|d_i \in D_i, i=1,...,n)\} D1×D2×...×Dn={(d1,d2,...,dn)diDi,i=1,...,n)}
  2. 笛卡尔积的每个元素 ( d 1 , d 2 , . . . , d n ) (d_1,d_2,...,d_n) (d1,d2,...,dn) 称作一个 n n n元组 ( n − t u p l e ) (n-tuple) (ntuple)
  3. 笛卡尔积中的所有元组并不是都有意义的

元组 ( T u p l e ) (Tuple) (Tuple) (行)

  1. 元组 ( d 1 , d 2 , . . . , d n ) (d_1, d_2, ..., d_n) (d1,d2,...,dn) 的每一个值 d i d_i di 都叫做一个分量 ( c o m p o n e n t ) (component) (component)
  2. 元组 ( d 1 , d 2 , . . . , d n ) (d_1, d_2, ..., d_n) (d1,d2,...,dn) )是从每一个域任取一个值所形成的一种组合,笛 卡尔积是所有这种可能组合的集合, 即:笛卡尔积是由 n n n 个域形成的所有可能 n n n 元组的集合
  3. D i D_i Di 的基数为 m i m_i mi,则笛卡尔积的基数,即元组个数为 ∏ 1 ≤ i ≤ n m i \prod_{1 \leq i \leq n}m_i 1inmi

关系 ( R e l a t i o n ) (Relation) (Relation)

  1. 一组域 D 1 , D 2 , . . . , D n D_1, D_2, ... , D_n D1,D2,...,Dn 的笛卡尔积的子集
    笛卡尔积中具有某一方面意义的那些元组被称作一个关系
  2. 由于关系不同列可能来自同一个域,为区分,需要为每一列起一个名字,改名字即为 属性名
[数据库] 2.1 - 关系模型之基本概念_第4张图片
  1. 关系可用 R ( A 1 : D 1 , A 2 : D 2 , … , A n : D n ) R(A_1:D_1, A_2:D_2, …, A_n:D_n) R(A1:D1,A2:D2,,An:Dn) 表示,可简记为 R ( A 1 , A 2 , … , A n ) R(A_1, A_2, …, A_n) R(A1,A2,,An),这种描述又被称为 关系模式(Schema)表标题(head)
  2. R R R 是关系的名字, A i A_i Ai 是属性, D i D_i Di 是属性所对应的域, n n n 是关系的 目 (degree) , 关系中元组的数目称为 关系的基数(Cardinality)
  3. 关系模式 R ( A 1 : D 1 , A 2 : D 2 , … , A n : D n ) R(A_1:D_1, A_2:D_2, …, A_n:D_n) R(A1:D1,A2:D2,,An:Dn) 中属性向域的映象在很多 D B M S DBMS DBMS 中一般直接说明为属性的 类型、长度

关系模式与关系

  1. 同一关系模式下,可以有很多关系
  2. 关系模式是关系的结构,关系是关系模式在某一时刻的数据
  3. 关系模式是稳定的,二关系是某一时刻的值,是随时间可能变化的
  • 举个栗子
[数据库] 2.1 - 关系模型之基本概念_第5张图片

目录




2.1.3 关系的特性及相关概念

关系的特性

  • 列是同质:即每一列中的分量来自同一域,是同一类型的数据
  • 不同的列可来自同一个域,称其中的每一列为一个 属性,不同属性要基于不同的 属性名
    关系模型 R ( A 1 : D 1 , A 2 : D 2 , . . . , A n : D n ) R(A_1:D_1,A_2:D_2,...,A_n:D_n) R(A1:D1,A2:D2,...,An:Dn) A i ( i = 1 , . . . , n ) A_i(i=1,...,n) Ai(i=1,...,n) 必须是不同的,而 D i ( i = 1 , . . . , n ) D_i(i=1,...,n) Di(i=1,...,n) 可以是相同的
  • 列位置互换性:区分哪一列是靠列名
  • 行位置互换性:区分哪一行是靠某一或某几列的值(关键字/键字/码字)
  • 关系是以内容(名字或值)来区分的,而不是属性在关系的位置来区分
  • 理论上,关系的 任意两个元组不能完全相同(集合的要求,集合内不能有相同的两个元素);但现实应用中,表可能并不完全遵守此特性
  • **元组相同 **是指两个元组的每个分量都相同
  • 属性不可再分特性:又被称为 关系第一范式
[数据库] 2.1 - 关系模型之基本概念_第6张图片
符合第一范式
[数据库] 2.1 - 关系模型之基本概念_第7张图片
不符合第一范式

目录

关系上的一些重要概念

候选码 ( C a n d i d a t e (Candidate (Candidate K e y ) Key) Key) / 候选键

  1. 关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作 候选码
  2. 举个栗子
    Employee(EmpID, EmpName, Mobile)
    每一雇员有唯一的EmpID, 没有两个雇员有相同的手机号Mobile, 则 EmpID是候选码,Mobile也是候选码
  3. 后面的改变中尽量不要改变候选码,不然可能就需要重新编写

主码 ( P r i m a r y (Primary (Primary K e y ) Key) Key) / 主键

  • 当有多个候选码时,可以选定一个作为 主码

  • D B M S DBMS DBMS 以主码为主要线索管理关系中的各个元组

    • 例如可选定属性 S# 作为 “学生” 表的主码,也可以选定 属性组(Sname, Saddress) 作为“学生”表的主码。选定 EmpID 为Employee的主码。
  • 主属性与非主属性

    • 包含在 任何一个候选码 中的属性被称作主属性,而其他属性被称作非主属性
    • 最简单的,候选码只包含一个属性
    • 最极端的,所有属性构成这个关系的候选码,称为 全码 ( A l l − K e y ) (All-Key) (AllKey)

外码 ( F o r e i g n (Foreign (Foreign K e y ) Key) Key) / 外键

​ 关系 R R R 中的一个属性组,它不是 R R R 的候选码,但它与另一个关系 S S S 的候选码相对应,则称这个属性组为 R R R 的外码或外键

小结

[数据库] 2.1 - 关系模型之基本概念_第8张图片

目录




2.1.4 关系模型中的完整性

  • 实体完整性

    • 关系的主码中的属性值不能为空值;
    • 意义:关系中的元组对应到现实世界相互之间可区分的一个个个体,这些个体是通过主码来唯一标识的;若主码为空,则出现不可标识的个体,这是不容许的
  • 空值

    • 空值:不知道、不存在或无意义的值
    • 含义:在进行关系操作时,有时关系中的某属性值在当前是填不上的,比如档案中有“生日不详”、“下落不明”等,这时就需要空值来代表这种情况。关系模型中用'?'表征
    • 数据库中有了空值,会影响许多方面,如影响聚集函数运算的正确性,不能参与算术、比较或逻辑运算等。
    • 有空值的时候是需要特殊处理的,要特别注意
  • 参照完整性

    • 意义:如果关系 R 1 R1 R1 的某个元素 t 1 t1 t1参照了关系 R 2 R2 R2 的某个元组 t 2 t2 t2,则 t 2 t2 t2 必须存在
    • 参照完整性与 外码 有关,保证两个关系之间连接的 正确性、一致性
  • 用户自定义完整性

    • 用户针对具体的应用环境定义的完整性约束条件
    • 如 S# 要求是 10 10 10 位整数,其中前四位为年度,当前年度与他们的差必须在 4 4 4 以上
  • D B M S DBMS DBMS 对关系完整性的支持

    • 实体完整性和参照完整性由 D B M S DBMS DBMS 系统自动支持
    • D B M S DBMS DBMS 系统通常提供了如下机制:
      (1)它使用户可以自行定义有关的完整性约束条件
      (2)当有更新操作发生时, D B M S DBMS DBMS 将自动按照完整性约束
    • 条件检验更新操作的正确性,即是否符合用户自定义的完整性
  • 小结

[数据库] 2.1 - 关系模型之基本概念_第9张图片

目录





你可能感兴趣的:(#,数据库)