数据库应用程序生存期阶段 数据库规划 系统定义 收集的数据 数据库项目的目标和任务 描述主要用户视图 生成的文档 数据库应用程序的任务陈述和任务目标 定义数据库应用程序的分为和边界;定义要支持的用户视图 用户和系统需求说明书 需求收集和分析 用户视图和系统需求 数据库设计 应用程序设计 DBMS选择 建立原型 实现 验证逻辑数据库设计的用户反概念/逻辑数据库设计;物理数据库设计 映;目标DBMS提供的功能; 用户对界面设计的反映 目标DBMS提供的功能 用户对系统原型的反响 目标系统提供的功能 应用程序设计 DBMS的评估和推荐 改进的用户需求和系统需求说明书 采用的测试策略;测试结果分析 用户手册;性能分析;改变的用户需求和系统说明书 数据转换和加载 当前数据的格式;目标DBMS的数据导入性能 测试 运行维护 测试结果 性能测试结果;用户和系统需求的增加和变化
实体/联系 强实体 弱实体 1∶*二元联系 1∶1二元联系 (a)双方强制参与 (b)一方强制参与 (c)双方可选参与 超类/子类联系 *∶*二元联系、复杂联系 映射 创建包含所有简单属性的的关系 创建包含所有简单属性的关系(主关键字等到每个主实体的联系映射后再确定) 将一方实体的主关键字处理为表示多方实体关系的外部关键字 组合为一个实体 将“可选”方实体的主关键字处理为表示“强制”方实体关系的外部关键字 无进一步消息任选 参照超类/子类映射表 创建一个关系表示该联系,该关系包含该联系的所有属性。参与联系的所有实体的主关键字作为该关系的外部关键字 创建一个新关系表示多值属性,并将主实体的主关键字作为该关系的外部关键字 10
多值属性
8
弱实体类型必须与标识所有者参与一对多关系类型。
弱实体在确定所有者关系中有完全参与,而确定所有者在确定所有者关系中有部分参与。
何时可能存在风扇陷阱? 何时可能发生裂缝陷阱?
如果两个或多个1:*关系从同一实体中展开,则可能存在风扇陷阱。
当存在一个或多个最小多重性为零的关系(即可选参与)时,可能会出现鸿沟陷阱,形成相关实体之间的路径的一部分
扇形陷阱
模型表示实体类型之间的关系,但某些实体出现之间的路径不明确。
函数依赖StuNo→MajorNo和MajorNo→DeptNo可以推导出函数依赖StuNo→DeptNo
深坑陷阱
模型表明实体类型之间存在关系,但某些实体出现之间不存在路径。
在本章中,您应该学习:
如何在数据库设计中使用实体关系(ER)建模 与实体关系(ER)模型相关的基本概念
使用统一建模语言(UML)或Crow's Feet表示法显示ER模型的一种图表技术。
如何识别和解决ER模型中的一些问题 如何根据需求规范构建ER模型
9 在本章中,您应该学习:
规范化的目的:规范化目的是使结构更合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新
与冗余数据相关的问题 功能依赖的概念
如何识别最常用的形式:1nf、2nf、3nf和bcnf 如何使用表单规范化关系。
规范化定义:
根据企业的数据需求,产生一组具有理想属性的关系的技术。 规范化过程是一种形式化方法,它根据主关键字或候选关键字以及属性之间的数据依赖性来标识关系。
1NF:一种关系,其中每一行和每一列的交集只包含一个值。属性不可再分。
添加行 添加列 将重复数据以及原始键属性的副本放置到单独的关系中。 添加列以每个单元格仅包含一个值,前提是我们可以确定单元格中可能出现的值的数目。或者添加列无法解决问题。
2NF:1nf中的关系和每个非主键属性在功能上完全依赖于主键。 具有单个属性主键的关系至少一定满足2nf。
如果存在部分依赖关系,我们会将属性与它依赖属性的副本放在新关系中,从而从关系中移除。
3NF:在1nf和2nf中的一种关系,其中没有非主键属性可传递地依赖于主键。 如果存在可传递依赖项,则通过将它和它依赖列的副本放置在新关系中,从关系中移除可传递依赖属性。
对于一般定义,我们定义主键属性是任何候选键的一部分。 2nF的一般定义 一个关系,在第一正常形式和每个非主键属性是完全依赖于任何候选键的功能。 一般3nF的定义 一种第一和第二范式的关系,其中没有非主键属性可传递地依赖于任何候选键。
违反BCNF是非常罕见的,因为它可能只发生在特定的条件下。违反BCNF的可能性可能发生在以下关系中:
包含两个(或多个)复合候选键; 候选键重叠,即至少有一个共同属性。 2NF
关系密钥
超级密钥 唯一标识关系中某个元组的属性或一组属性。 候选关键字 在关系中没有适当子集是超键的超键。 主键 选择用来在关系中唯一标识元组的候选键。 备用键 未选择作为主键的候选键 外键 一个关系中与某个(可能相同)关系的候选键匹配的一个属性或一组属性。
PPT12
事务有关的属性和保证通常被称为酸性属性:原子性、一致性、隔离性和持久性。 原子性 原子性要求执行事务操作的“全部”或“无”。 事务的所有操作都被视为单个不可分割的原子单元。 一致性 一致性要求事务维护数据库的完整性约束。 假设交易是正确的,并将其视为一致性单位。
隔离性 隔离要求事务执行时不受其他并发事务的任何干扰。 假设交易是的。
耐久性 持久性要求提交的事务所做的所有更改在数据库中都是永久性的,任何错误都不影响事务所作的更改。
DBMS如何支持事务的酸性属性?
并发控制协议,确保隔离性; 恢复协议,确保原子性和持久性; 触发机制,对数据库实施完整性约束。
锁定 用于控制对数据的并发访问的过程。
共享锁(读锁) 如果事务T在数据项Q上具有共享锁,则它可以读取Q,
但不能更新Q,其他事务可以对Q加读锁,不能加写锁。 表示为锁(Q) 排他锁(写锁) 如果事务T在数据项Q上具有排他锁,只有它可以读取和更新Q。 其他事务都不能再给Q加任何类型的锁,直到Q上T的锁释放为止。
两段锁协议不能回滚
严格的2PL协议 严格的2pl是一种事务在对数据项进行操作之前请求锁定,并且在提交之前就结束了它们的增长阶段。 有了严格的2pl,事务可以按提交顺序序列化。 严格的2pl可以保证一个方案是可撤销的
JDBC方式连接数据库的过程: 1加载JDBC驱动程序 2、提供JDBC连接的URL 3、创建数据库的连接 4、创建一个Statement 5、执行SQL语句 6、处理结果
7、关闭JDBC对象 操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 明顺序相反: 1、关闭记录集 2、关闭声明 3、关闭连接对象
.R:只在FD右部出现的属性,不属于候选码;
2.L:只在FD左部出现的属性,一定存在于某候选码当中;
3.N:外部属性一定存在于任何候选码当中;
4.其他属性逐个与2,3的属性组合,求属性闭包,直至X的闭包等于U,若等于U,则X为候选码。
数据库
第一章 数据库的结构和抽象
基本内容:1. 数据库系统的标准结构?
2. 数据模型? 3. 数据库系统的演变与发展?
重点: 一组概念的区分:三级模式两层映像,物理性和逻辑性
一组概念的区分:数据→模式→数据模型
几种数据模型的差异:网状/层次模型→关系模型→OO数据模型
一、数据库系统的标准结构
1数据库系统的分层抽象:三级模式两层映像(数据库系统的标准结构)
外部/用户模式(视图):某一用户能够看到与处理的局部数据的结构描述 全局/概率/逻辑模式:从全局角度理解/管理的数据的结构描述,含相应的关联约束体现在数据之间的内在本质联系
内部模式:存储在介质上的数据结构描述,含存储路径、存储方式、索引方式等
E-C映像:将外模式映射为概念模式,从而支持实现数据概念视图向外部视图的转换 便于用户观察和使用
C-I映像:将概念模式映射为内模式,从而支持实现数据概念视图向内部视图的转换 ,便于计算机进行存储和处理
模式(Schema) 对数据库中数据所进行的一种结构性的描述,所抽象到数据的结构信息
视图(View)/数据(Data) 某一种表现形式下表现出来的数据库中的数据
2 标准结构的意义:
逻辑数据性 当概念模式变化时,可以不改变外部模式(只需改变E-C Mapping),从而无需改变应用程序
物理数据性 当内部模式变化时,可以不改变概念模式(只需改变C-I Mapping) ,从而不改变外部模式
第二章 数据模型
1 模式与模式的结构:数据模型
•规定模式统一描述方式的模型,包括:数据结构、操作和约束
•数据模型是对模式本身结构的抽象,模式是对数据本身结构形式的抽象 比如: •关系模型:所有模式都可为抽象表(Table)的形式[数据结构],而每一个具体的 模式都是拥有不同列名的具体的表。对这种表形式的数据有哪些[操作]和[约束]
疑问:(关系模型描述的到底是实例之间的关系,还是数据?)
2 三大经典数据模型
•关系模型:表的形式组织数据
•层次模型:树的形式组织数据 •网状模型:图的形式组织数据
第三章 关系模型及其基本概念
学习目标 :Table如何描述,有哪些操作、结果是什么、有哪些约束等?
一、关系模型
1三个要素(详细内容在后面讲述)
/表
数据操作(并,交,差,笛卡尔积,选择,
完整性约束(实体完整性、参照完整性和用户自定义的完整性) 关系运算:关系代数和关系演算; 关系代数:基于集合的运算 (ISBL)
关系演算元组演算言(Ingres系统的QUEL)和域演算(QBE)
二、关系
一组域D1, D2,…, Dn的笛卡尔积的子集
笛卡尔积中具有某一方面意义的那些元组被称作一个关系
三、关系的特性
·列是同质:即每一列中的分量来自同一域,是同一类型的数据 ·不同的属性可来自同一个域,不同的属性必须给予不同的属性名 ·列位置互换性:区分哪一列是靠列名
行位置互换性:区分哪一行是靠某一或某几列的值(关键字/键字/码字) 关系是以内容(名字或值)来区分的,即使属性位置改变也是同种关系
·理论上,关系的任意两个元组不能完全相同。(集合的要求集合内不能有相同的两个元素); 现实应用中,表(Table)可能并不完全遵守此特性。元组可能相同(元组相同是指两个元组的每个分量都相同) ·属性不可再分特性:又被称为关系第一范式
分为不同列
复合属性
多值属性
四、候选码、主码、外码、主属性与非主属性 候选码(Candidate Key)/候选键 组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了
(S#, Sname, Sage, Sclass)”,S#
“选课(S#, C#, Sname, Cname, Grade)”,(S#,C#)联合起来是一 个候选码
多组候选码,例如: 学生(S#, Sname, Sage, Sclass, Saddress) 其
中属性S#是候选码,属性组(Sname, Saddress)也是候选码(同名同地 址的两个同学是不存在的)
主码(PrimaryKey)/主键 DBMS以主码为主要线索管理关系中的各个元组。
主属性与非主属性 包含在任何一个候选码中的属性被称作主属性,而其他属性被称作非主属性 S# , C#为主属性,而Sname, Cname, Grade则为非 主属性; 构成这个关系的候选码,称为全码(All-Key)。 (T#,C#)中的候选码(T#,C#)就是全码。
五、完整性约束
空值:不知道、不存在或无意义的值;
·在进行关系操作时,有时关系中的某属性值在当前是填不上的 比如档案中有“生日不详”、“下落不明”、“日程尚待公布”等
·数据库中有了空值,会影响许多方面,如影响聚集函数运算的正确性,不能参与算术、比较或逻辑运算等 例如:“3 + ?”结果是多少呢?“3 * ?”结果是多少呢?“? and (A=A)”结果又是多少呢?再例如,一个班有30名同学,如所有同学都有成绩,则可求出平均 成绩;如果有一个同学没有成绩,怎样参与平均成绩的计算呢,是当作 0,还是当作100呢?还是不考虑他呢?
·有空值的时候是需要特殊处理的,要特别注意。
实体完整性 关系的主码中的属性值不能为空值;
·元组通过主码来唯一标识的,若主码为空,则无法区分元组 参照完整性 外码要么为空,要么参照相应的主码
·空值,表示该学生尚未分到任何系中,若非空值,该学生不可能分到一个不存在的系中
用户自定义完整性 用户针对具体的应用环境定义的完整性约束条件 ·如果添加元组失败,可能是因为不满足此项原则
第四章 关系代数
·并、差、交等,需满足“并相容性”
(1) 属性数目必须相同;
(2) 对于任意i,第i个属性的域相同
并 —“或者…或者…” 差 —“是…但不含…” 交 — “…, 并且…”
笛卡儿积:(R是n度关系,S是m度关系,关系R的基数x, S的基数y) R x S的属性个数 = n+ m R x S的元组个数 = x×y
选择:条件的书写注意优先级,作用于行 投影: 投影后重复元组应去掉。作用于列
连接:等值连接,自然连接(有相同属性) 外连接:左外连接,右外连接,全外连接
除法 —“查询…全部的/所有的…” (R除S,前提:S包含于R) 结果属性为R属性去掉所有S属性
结果元组为与S中任一元组组合的结果都在R中的元组 注意:选择出主要的属性做除法
第十一章 数据建模:思想与方法
重点与难点
·理解E-R模型进行数据建模的基本思想,熟练掌握E-R模型的Crow’s foot表达方法
·熟练运用Crow's foot方法进行数据建模,即建模训练
只有count不忽略null。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- xiaozhentang.com 版权所有 湘ICP备2023022495号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务