【数据库】第二章-关系数据库(关系模型基本概念、关系数据语言简介)

关系及其相关概念

  • 定义:一组具有相同数据类的值的集合。如整数、实数、{0,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 , 2 , . . . , n D_1\times D_2\times ... \times D_n = {(d_1,d_2,...,d_n)|d_i\isin D_i, i=1,2,...,n} D1×D2×...×Dn=(d1,d2,...,dn)diDi,i=1,2,...,n
    • 笛卡尔积和二维表是等价的;
    • 笛卡尔积的基数为 ∏ i = 1 n m i \prod_{i=1}^nm_i i=1nmi
  • 元组:每个元素 ( d 1 , d 2 , . . . , d n ) (d_1,d_2,...,d_n) (d1,d2,...,dn)是一个n元组(n-tuple),简称元组。
  • 分量:元组的每一个值 d i d_i di是一个分量。

关系

  • 定义:笛卡尔积 D 1 × D 2 × . . . × D n D_1\times D_2\times ... \times D_n D1×D2×...×Dn的子集,用 R ( D 1 , D 2 , . . . , D n ) R(D_1, D_2,...,D_n) R(D1,D2,...,Dn)表示, R R R是关系的名字, n n n叫做关系的度或目(degree)
    • n = 1 n=1 n=1时称为单元关系;
    • n = 2 n=2 n=2时称为二元关系,以此类推。

二元表

二元表与关系是等价的。

  • 二元表的一行就是一个元组;
  • 二元表的一列就是一个域,称为一个属性(attribute);
    • 不同的列也可以出自同一域,但名字必须不同,也就是属性名不同(进行关系代数的连接操作后,可能会出现完全相同的列,这种结果一般需要进行化简);
    • 属性是唯一的, n n n元关系必有 n n n个属性,不一定出自 n n n个域。

关系的性质

  • 列是同质的(Homogeneous);
  • 不同的列可以出自同一域;
  • 行列的顺序无关紧要,可以互换;
  • 任意两个元组不能完全相同;
  • 分量不可再分(满足第一范式,即1NF)。

关系模型的数据结构

或称键(key)。

  • 候选码(candidate key):关系中的能够唯一标识一个元组的最小属性组
    • 注:这个属性组中可以有一个或多个属性
  • 主码(primary key):如果一个关系有多个候选码,选定其中一个作为主码。

主属性和非主属性

  • 主属性:码中的各属性称为主属性;
  • 非主属性:不在码中的属性称为非主属性。

关系模式(关系的描述)

  • 形式化描述: R ( U , D , D o m , F ) R(U,D,Dom,F) R(U,D,Dom,F)
    • R R R为关系名;
    • U U U为该关系的属性名集合;
    • D D D为各属性所来自的域的集合;
    • D o m Dom Dom为该关系各属性向域的映像集合;
    • F F F为属性间的关系依赖集合。
  • 一般简记为 R ( A 1 , A 2 , . . . , A n ) R(A_1,A_2,...,A_n) R(A1,A2,...,An)
    • R R R为关系名;
    • A i A_i Ai为各属性名。
  • 关系模式与关系
    • 关系模式是静态的形;关系是动态的值,是关系模式在某一时刻的状态;
    • 关系数据库就是关系模式,关系数据库中存储的值就是关系。

关系模型的语义约束

包括实体完整性、参照完整性、用户定义完整性(与用户有关)。

实体完整性

  • 主码不能为空值或部分为空值。或者说主属性不能为空值或部分为空值。
    • 空值:不存在或不知道。

参照完整性

定义**外部码
如果一个关系 R R R的一个或一组属性 F F F不是它的码,但是是另一个关系 S S S的主码 K S K_S KS(或者与之有一一对应关系),那么:

  • R R R称为参照关系(referencing relation), F F F称为它的外部码(foreign key)
  • S S S称为被参照关系(referenced relation)或目标关系(target relation)

由此定义参照完整性:如果关系 R R R有外部码 F F F,其对应 S S S中的主码 K S K_S KS,则 R R R中一个元组的 F F F值,要么是 S S S中某个元组的 K S K_S KS值,要么是空值。即 R R R中的 F F F值不能出现 S S S K S K_S KS没有的值。

关系模型的数据操作

特点

是集合操作,操作对象和结果都是集合。

分类

  • 关系代数(无需安全性约束)
  • 关系演算(需要安全性约束)
    • 元组关系演算
    • 域关系演算

以上三种关系运算是等价的,可相互转换。

关系数据语言

数据库数据语言的分类

  • 数据定义(描述)语言(Data Definition or Description Language, DDL),包括模式DDL,外模式DDL,内模式DDL;
  • 数据操纵语言(Data Manipulation Language, DML)
    • 数据库的四种基本操作:检索、插入、修改、删除;
    • DML有联机交互方式宿主语言方式
      • 联机交互方式下的DML称为自含式语言,可独立使用,适用于终端直接查询;
      • 宿主语言方式下的DML称为嵌入式语言,依附于宿主语言,是嵌入高级语言的程序中,以实现数据操作。
  • 数据控制语言(Data Control Language, DCL)完成数据库的安全性控制、完整性控制、并发控制等。

关系数据语言特点

  • 一体化:定义、查询、更新、控制等功能融为一体;
  • 非过程化:用户提出操作,具体怎么做由DBMS完成;
  • 面向集合的存取方式:操作对象和结果均为关系;
  • 既可独立使用又可与主语言嵌套使用。

关系数据优越性的根源:

  • 使用了最先进的关系模型,并且采用了最简单、最规范化的数据结构(二元表),这使DML大大简化;
  • 关系数据语言建立在关系运算的数学基础上,可实现关系的垂直方向和水平方向的任意分割和组装操作,使得关系语言可随机地构造出用户需要的各种各样的新关系。

关系数据语言的分类

关系数据语言的核心是查询,所以又称为查询语言。而查询往往表示成一个关系运算表达式,因此关系运算是设计关系数据语言的基础,关系运算的分类也决定了关系语言的分类:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值