一、三级模式结构
- 模型:对现实世界特征的模拟和抽象
- 数据模型:对现实世界数据特征的抽象
- 数据模型的三要素:
- 数据结构:数据对象存储、组织的集合
- 数据操作:对数据对象操作的集合
- 数据的约束条件:数据对象完整性规则性的集合
外模式:也称子模式或用户模式,是模式的子集,是数据的局部逻辑结构和特征的描述
可以理解为视图
概念模式:也称为模式、逻辑模式, 是数据库中全体数据的全局逻辑结构和特性的描述
可以理解为基本表
内模式:也称存储模式和物理模式, 一个数据库只有一个内模式。是数据在数据库系统中的内部表示,即数据的物理结构和存储 方式的描述
可以理解为存储文件
两级映像:
外模式/模式:保证了当模式改变时,外模式不用变— 逻辑独立性
模式/内模式:保证了当内模式改变时,模式不用变— 物理独立性
数据库的模式:是全局逻辑结构,是数据库的中心和关键,它独立于其他层次,设计数据模式结构时,首先确定数据库的逻辑模式
数据库管理系统
功能:
数据定义:数据定义语言DDL,对数据库结构进行描述,包括外模式、 模式、内模式,完整性、安全保密定义等
数据操作:数据操作语言DML,方便外部程序、用户对数据的CRUD
数据库运行管理:安全检查、完整性检查、事件检查、自动恢复等
数据组织、存储和管理:数据字典、用户数据、存取路径等
数据的建立和维护:数据的初始建立,数据库的性能分析、 数据库的重建
其它功能:数据库之间的通信、数据之间的转换等
数据结构化且统一管理:将数据与程序逻辑分离,数据独立存储,即描述数据的结构、 特征,且描述数据之间的关联。数据由统一的数据管理系统管 理,实现数据的分享。
有较高的数据独立性:是指数据与程序的独立,数据的定义从程序中独立出去,程序 只关心程序的逻辑结构,而不关心数据的存储结构,简化了应 用程序的开发,包括物理独立性、逻辑的独立性。
数据控制功能:数据管理系统提供了数据控制功能,提供数据的共享
特征:
安全性保护:保护数据库,防止被不合法的数据操作引起数据的读取、破坏 等,用户只能按照规定进行处理
完整性保护:数据库的正确性、相容性,避免合法用户数据库的异常操作引 发数据的异常,确保数据正确,避免异常更新
并发控制:避免多用户同时对某数据进行操作,防止数据不一致性,包括 丢失更新、不可重复读,读脏数据。主要是破坏了事物的隔离性,并发控制协调并发数据的操作,保证数据不被破坏,避免 用户读取不正确的数据。
故障恢复:内部故障、系统故障、介质故障,后期细化介绍
数据库术语:
关系:一个关系R对应一张二维表,二维表名就是关系名
属性:二维表中的一列称为属性,其中A1,A2...An为属性名 列的值称为属性值,属性值的取值范围为值域
域:属性A1,A2...An的取值范围
关系模式:对关系的描述(有哪些属性,各个属性之间的依赖关系如何),记为R(U、D、DOM、 F), 其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性的域,DOM为属性向域的映 象集合,F为属性间数据的依赖关系集合。
通常将关系模式简记为
R(U)
或R(A1,A2,...,An )
R为关系名
A1,A2,...An为属性名或者域名
属性向域的映像常常直接说明属性的类型和长度
通常在关系模式主属性上加下划线表示该属性为主码属性
例:学生关系模式S(Sno,Sname,Sex,SD,Age)
元组:二维表中一行称为元组
分量:元组中的一个属性值
主属性/ 非主属性:关系中包含在任何一个候选码中的属性称为主属性或码的属性,不包括在任何一个候选码中的属性称为非主属性或非码属性
候选码/ 候选键:如果在一个关系中,存在一个属性(或属性组)都能用来唯一标识 该关系的元组,并不含有多余的属性,这个属性(或属性组)称为 该关系的候选码或候选键
主码/ 主键:其值能唯一地标识元组中的一个或多个属性,称为主码或关键字(主码是任意一个候选码。)
外码/ 外键:关系中的某个属性(或属性组)不是该关系的主码 或者只是主码的一部分,但却是另一个关系的主码 时,该属性(或属性组)称为这个关系的外码
完整性约束
防止的是对数据的意外破坏
实体完整性:规定基本关系R的主属性A不能取空
用户自定义完整性:就是针对某一具体关系数据库的约束条件,反映某一具体应用 。所涉及的数据必须满足的语义要求,由应用的环境决定
如:年薪必须为30W至60W
参照完整性/引用完整性:
关系模型中,实体间的联系是用关系来描述的,这样自然 就存在着关系和关系间的引用
规定,若F是基本关系R的外码,它与基本关系S的主码K 相对应(基本关系R和S不一定是不同的关系),则R中每 个元组在F上的值必须为
或者取空值
或者等于S中某个元组的主码值
例:员工(员工号,姓名,性别,参加工作时间,职级号 职级(职级号,职级名,薪酬)
关系代数
是一种传统的表达方式,用对关系的运算来表达查询 运算对象、运算结果都为关系
笛卡尔积:
定义1:
D1,D2,...,Dn为任意集合,定义其笛卡尔积为: D1D2...Dn={(d1,d2,...dn) | di e Di ,i=1,2,...n}
其中每个元素(d1,d2,...dn) 叫做一个元组 元组的每个值di叫做元组的一个分量 笛卡尔积可以用二维表来表示
定义2:
D1D2,...,Dn的子集叫做在域D1,D2,...Dn上的关系,记为 R(D1,D2...Dn),称关系R为n元关系
广义笛卡尔积:
两个元素分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合
元组的前n列是关系R的一个元组 元组的后m列是关系S的一个元组
关系运算
笛卡尔积结果: 属性数:加
元组数:乘
![](https://img2020.cnblogs.com/blog/1024536/202108/1024536-20210803235327890-1597656706.png)
关系运算——投影
关系R的投影是从关系R中选择出若干属性列组成新的关系。
分为两步:
- (1)选择出指定的属性,形成一个可能含有重复行的表。
- (2)删除重复行,形成新的关系。
关系模式中R(A1,A2,...An),t∈R表示t是R的一个元组,其中A为R中的属性列。t[A(_i)]则表示元组t中相应于属性A(_i)的一个分量。投影的运算表达式为:
在关系二维表中投影是一种垂直操作,它针对二维表中的属性列。
在SQL中,投影运算是一个单目运算,它是从一个关系R中选取所需要的列组成一个新关系。
例:
π(_{名称,单价})(表1)=表2
关系运算——选择
定义:在关系中选择在指定属性上有确定值的关系的子集。表示为:
是从关系R中选择满足给定条件的诸元组
F中的运算对象是属性名(或列的序号)或常数
例:σ(_{1≠6})( R ) : 选取关系R中第一个属性值不等于第六个属性值的元组
例:σ(_{1≠'6'})( R ) : 选取关系R中第一个属性值不等于'6'的元组
![](https://img2020.cnblogs.com/blog/1024536/202108/1024536-20210804212745185-1689529431.png)
关系运算——连接
是从两个关系R和S的笛卡尔积中选取满足一定条件的元组
3种类型
θ连接:
是从两个关系R和S的笛卡尔积中选取满足一定条件的元组
形式定义
xθy为连接条件
θ是比较运算符
X,Y分别为R和S上度数相等,且可比的属性组
tn[X]表示R中tn元组相应于X的一个分量
tm[Y]表示R中tm元组相应于Y的一个分量
等值连接
自然连接:
是一种特殊的等值连接
要求两个关系中进行比较的分量必须是相同的属性组 ,并且在结果集中将重复属性列去掉
形式定义
tn表示关系R的元组变量,tm表示关系S的元组变量
S去除重复属性B所组成新的元组tm*
R和S具有相同的属性组B,且B=( B1,B2,...,Bk)
假定R的属性为:A1,A2,...,An-k,B1,B2,...Bk 假定S的属性为:B1,B2,...,Bk,Bk+1,Bk+2,...Bm
数据库语言
SQL(Structure Query Language)称为结构化查询语言。是介乎关系代数和元组 验算之间的一种语言,广泛应用于商用系统中,是关系数据库的标准语言
语言分类 | 详细描述 |
---|---|
数据查询语句 | select |
数据操纵语句(DML) | insert;update;delete; |
数据定义语句(DDL) | create;alter;drop;rename;truncate; |
事务控制语句(TC) | commit;rollback;savepoint |
数据控制语言(DCL) | Grant;Revoke; |