数据库系统概论笔记(一)
一、绪论
1.1 数据模型
1.1.1 数据模型概述
- 数据模型是严格定义的一组概念,精确的描述了系统的静态特性、动态特性和完整性约束
- 组成要素
- 数据结构:描述系统的静态特性,即组成数据库的对象类型
- 数据操作:描述系统的动态特性,即对数据库中对象的实例允许执行的操作的集合,包括操作及操作规则
- 数据的约束条件:数据的约束条件是完整性规则的集合,规定数据库状态及状态变化所应满足的条件,以保证数据的正确、有效
- 类型
- 概念模型
- 层次模型
- 网状模型
- 关系模型
1.1.2 实体-联系模型(E-R模型)
- 基本概念
- 世界是由一组称作实体的基本对象和这些对象之间的联系构成的
- 实体(Entity):客观存在并可相互区别的人、事物、事件和概念
- 属性(Attribute):实体具有的特性
- 码(Key、实体标识符):唯一标识实体的属性集
- 域(Domain):属性的取值范围
- 实体型(Entity Type):用实体名及其属性名集合来抽象刻画同类实体
- 实体集(Entity Set):同型实体的集合,如全体学生,全部的系
- 联系(Relationship):实体(型)内部的联系(组成实体的各属性间);实体(型)之间的联系(不同的实体集之间)
- 图形表示
- 矩形框 – 实体型
- 菱形框 – 联系类型
- 椭圆形框 – 实体型/联系类型的属性
- 直线 – 实体型与联系之间用直线相连,线旁标注联系的种类(1:1, 1:N, M:N)
- 实体集属性中作为主码的一部分的属性用下划线来标明
- 在1:N的联系中,联系集的主码是n端的主码
1.1.3 由E-R图到数据库设计
- E-R图的设计要点
- 确定实体:实体名、实体属性、实体码
- 确定联系:存在性联系、功能性联系、事件联系
- E-R图向关系模型的转换
- 实体→关系
- 属性→关系的属性
- 一对一联系→新的关系,属性为双方的码
- 一对一联系→与某一端关系合并,合并后在该端加入另一端关系的码和联系本身的属性,其码不变
- 多对多联系→新的关系,其属性为与该联系相连的各实体的码以及联系本身的属性,其码是与该联系相连的各实体的码的组合
- 一对多联系→新的关系,其属性为与该联系相连的各实体的码以及联系本身的属性,其码是n端实体的码
- 一对多联系→与n端关系合并,合并后在n端关系加入1端关系的码和联系本身的属性,n端关系的码不变
- 三个或三个以上实体间的多元联系→新的关系,其属性为与该多元联系相连的各实体的码以及联系本身的属性,其码是与该联系相连的各实体的码的组合
- 合并具有相同码的关系模式,并去除同义属性
- 从关系模型到数据库实施
- 定义数据库结构:表结构、视图
- 装载数据
- 编制与调试应用程序
- 数据库试运行
- 数据库运行与维护
1.1.4 关系模型
关系模型使用二维表来表示实体及其联系:行、列
- 用表格表示实体集,用列表示属性,表结构表示实体的型
- 用表间的特定冗余信息表示实体间的联系(主键、外键)
- 行、列无序
- 列不可再分
关系模型中的概念
- 关系:即通常说的表,用于表示实体以及实体间的联系
- 元组:表中的一行即为一个元组
- 属性:表中的一列即为一个属性
- 主码(key):图中的某个属性组,它可以唯一确定一个元组
- 域(domain):属性的取值范围
- 分量:元组中的一个属性值
- 关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,…,属性n)
1.2 数据库系统
- 数据库系统:由应用程序、DBMS、操作系统、硬件、人员(数据库管理员DBA)组成
- 数据库管理系统DBMS
- DB定义
- 操纵语言及编译程序
- DB运行控制程序
- 实用程序
二、关系数据库
2.1 关系数据结构
- 域:一组值的集合,这组值具有相同的数据类型
- 笛卡尔积
- 一组域$D_1,D_2,\cdots,D_n$的笛卡尔积为:$D_1\times D_2\times\cdots\times D_n = {(d_1 , d_2 , \cdots, d_n)\vert d_i∈D_i , i=1,\cdots,n}$
- 笛卡尔积的每个元素$(d_1,d_2,\cdots,d_n)$称作一个$n$元组
- 元组的每个值$d_i$称为一个分量
- 若$D_i$的基数为$m_i$,则笛卡尔积的基数为$$\prod\limits_{i=1}^{n}m_i$$
- 关系
- 笛卡尔积$D_1\times D_2\times\cdots\times D_n$的子集叫做在域$D_1,D_2,\cdots,D_n$上的关系,用$R(D_1 , D_2 ,\cdots, D_n )$表示
- 关系是笛卡尔积中有意义的子集
- 候选码
- 关系中的一个属性组,其值能唯一标识一个元组。
- 若从该属性组中去掉任何一个属性,它就不具有这一性质
- 主属性:任何一个候选码中的属性称作主属性
- 主码:从一个关系的多个候选码中选定一个作为主码
- 外部码:关系R中的一个属性组,它不是R的码,但它与另一个关系S的码相对应,则称这个属性组为R的外部码
- 关系模式
- 关系的描述称作关系模式,包括关系名、关系中的属性名、属性向域的映象、属性间的数据依赖关系等
- 关系模式是一个5元组$R(U,D,Dom,F)$,其中R是关系名;U是关系的属性集合;D是U中属性所来自的域的集合;DOM是属性向域映射的集合;F是属性间的依赖关系集合
- 关系数据库
- 在一个应用领域内,用关系表示实体及其联系,关系的集合构成一个关系数据库
- 其型是关系模式的集合,即数据库描述,称作数据库的内涵(Intension)
- 其值是某一时刻关系的集合,称作数据库的外延(Extension)
2.2 关系的完整性
- 实体完整性:若属性A是基本关系R的主属性,则A不能取空值
- 参照完整性:如果关系$R_2$的外部码$F_k$与关系$R_1$的主码$P_k$相对应,则$R_2$中的每一个元组的$F_k$值或者等于$R_1$中某个元组的$P_k$值,或者为空值
- 用户定义的完整性:用户针对具体的应用环境定义的完整性约束条件
2.3 关系代数
关系代数是一种抽象的查询语言,通过对关系的运算来表达查询操作
基本概念
- 如果两个关系的属性数目相同,且各属性的域相同,则两个关系是相容的
- 元组的连串:若$r=(r_1,r_2,\cdots,r_n)$,$s=(s_1,s_2,\cdots,s_n)$则定义二者的连串$\widehat{AB}=(r_1,r_2,\cdots,r_n,s_1,s_2,\cdots,s_n)$
- 给定关系模式$R(A_1 , A_2 ,\cdots, A_n)$,设$R$是它的一个具体的关系,$t\in R$是关系的一个元组
- $A={A_{i1},A_{i2},\cdots,A_{ik}}\subseteq {A_a,A_2,\cdots,A_n}$是属性列,$\overline{A}$表示${A_1,A_2,\cdots,A_n}$去掉$A$后剩余的属性组
- $t[A_i]$表示元组$t$中相应于属性$A_i$的一个分量
- $t[A]={t[A_{i1}],t[A_{i2}],\cdots,t[A_{ik}]}$表示元组$t$在属性列$A$上各分量的集合
- 给定关系$R(X,Z)$,$X$和$Z$为属性组。当$t[X]=x$时,$x$在$R$中的象集为:$Z_X={t[Z]\vert t∈ R,t[X]=x}$ ,它表示$R$中属性组$X$上值为$x$的诸元组在$Z$上分量的集合
集合运算符(进行集合运算的两个关系必须相容):并$\cup$、交$\cap$、差$-$
关系运算符
笛卡尔积$\times$
- 设两个关系R,S,其度分别为n,m,则它们的广义笛卡尔积为$R\times S={\widehat{rs}\vert r\in R\land s\in S}$
选择$\sigma$
- $\sigma_F(R)={t\vert t\in R\land F(t)=true}$
- 即$\sigma$运算的结果为满足条件F的元组集合
投影$\Pi$
- $\Pi_A(R)={t[A]\vert t\in R}$,其中$A$为$R$的属性列
- 投影结果中要去掉相同的行
连接$\Join$
$R\underset{A\Theta B}\Join S={\widehat{rs}|r\in R\land s\in S\land r[A]\Theta S[B]}$
$R\underset{A\Theta B}\Join S=\sigma_{R[A]\Theta S[B]}(R\times S)$
即从两个关系的笛卡尔积中选取给定属性间满足一定条件的元组
等值连接:从两个关系的广义笛卡儿积中选取满足某一等值条件的元组,两个关系可以没有相同属性列
自然连接:特殊的等值连接,从两个关系的广义笛卡儿积中选取在相同属性列上取值相等的元组,并去掉重复的列
除$÷$
- 设有关系$R(X,Y)$和$S(Y,Z)$,则$R÷Z$可根据如下过程得到
- 在关系$S$中对$Y$做投影,得到$\Pi_Y(Z)$
- 关系$R$在属性列$X$上作取消重复值的投影,得到$\Pi_X(R)$
- 判断$\Pi_X(R)$中$x_i$的象集$Y_i$是否包含$\Pi_Y(Z)$,如果包含,则最终结果中包含$x_i$
- 即$R÷Z$表示【$R$在$X$上分量值$x$的象集$Y_x$包含$S$在$Y$上投影的集合】在$X$属性列上的投影
比较运算符:<、≤、>、≥、≠、=
逻辑运算符:与$\land$、或$\lor$、非$\lnot$
评论
匿名评论
评论条例