全九章节的笔记导航目录:其他剩余章节目录
全笔记PDF版下载链接:下载链接
有用的话记得一键三连哦!!
本章目录
- 一、业务对象和持久性
- (一)数据库管理系统
- 1.实体类和持久类
- 2.数据库的分类
- 3.数据模型(数据库模式)层次
- 4.集成应用系统与数据库建模
- 5.对象-数据库映射基础
- 二、关系数据库模型
- (一)关系数据库(RDB)
- 1.原始类型
- 2.RDB不支持的原始类型
- 3.RDB模型
- (二)列、域和规则
- 1.列(column)
- 2.域(domain)
- 3.业务规则(rules)
- (三)表(table)
- 1.表的组成
- (四)参照完整性(Referential integrity)
- 1.参照完整性的作用
- 2.外码
一、业务对象和持久性 (一)数据库管理系统 1.实体类和持久类
- 实体类表示应用程序中的持久数据库对象,但实体类不是数据库中的持久类
- 关系型(如Sybase、DB2、Oracle)——最常用
- 对象—关系型(如UniSQL、Oracle)
- 面向对象型(如ObjectiveStore、Versant)
- 数据模型的定义
- 数据模型是用比原始的位和字节更易于理解的词来表示数据库结构的一种抽象
- 过去数据库主要把精力放在数据模型(UML称为静态模型)上
- 当今数据库存储和执行程序的功能已经扩展到行为模型(以触发器和存储过程为中心)
- 数据模型的3个层次
- 外部(概念)数据模型
- 实体关系(ER)图——最流行的概念数据建模技术
- 逻辑数据模型
- 逻辑模式,也称为全局概念模式
- 能够反映系统实现时所采用的数据库模型的逻辑存储结构(表等)的模型
- 物理数据模型
- 专门针对特定的DBMS
- 定义数据如何真正存储在持久存储设备上,通常指磁盘
- 外部(概念)数据模型
- PCBMER中的向下依赖原则(DDP)扩展了应用程序与数据库间的通信
- 面向对象数据库模型可以用作客户端应用程序和服务器端数据源之间协同工作的对象存储API
- 映射困难的原因:
- 数据库的存储结构处理不了面向对象泛型
- 数据库几乎都不是为了单个应用程序设计的
二、关系数据库模型 (一)关系数据库(RDB) 1.原始类型
- 为建模和程序设计提供的固有数据类型称为原始类型
- 对象类型及相关的概念(如继承和或方法)
- 结构化类型
- 集合
- 引用
- RDB模型的主要原始类型是由多列组成的关系表
- 表的列只能取原子值——结构化值或值的集合是不允许的
- 关系型数据库采用由列和行组成的表来定义数据
- 具有单一定义域,具有原子域(数据类型)
- 原子域(atomic domains):数据值必须是简单的(不可分割的)和单一的(不重复的)值
- 定义了一个列可以取值的合法集(可以匿名)
- 默认值(default)
- 取值范围(range)
- 值列表(list)
- 值大小写
- 值格式(format)
- 关系表定义为固定列的集合,表中的列可以是固有类型或用户自定义类型(域)
- 表中的行数量没有限制,特定行中的列值允许为null
(3)表在数学上是一个集合,因此不能有重复的行(主码约束)
- 通过参照完整性约束才维护表间关系——外码
- CPA约束(Change Parent allowed)——可以将子(外)表中的记录重新指派到父表中另一个记录上
- 外码是指表中的一组列,它的值要么是null,要么必须与同一个或另一个表中的主码值匹配
- Restrict——限制更新或删除操作
- Cascade——级联操作
- Set Null——设置为空值
- Default——设置为缺省值
- 一个小程序,当定义了触发器的表发生修改操作时(如insert,update,delete)自动执行(触发)
- SQL语句格式:create trigger
on for
as (六)存储过程(Stored Procedure) 1.存储过程的定义- 必须指定名字,可以有输入、输出参数
- 执行效率比传统查询高,性能的优势在于缓解了网络堵塞
- 视图的本质是一条select语句,把这条语句起了个名
- 关系视图是被存储和命名的SQL查询
- 视图并不存储持久数据,只是将数据的快照展现出来
- 第一范式
- 第二范式
- 第三范式
- BCNF范式
- 第四范式
- 第五范式
- 高范式的表能满足所有低范式
- 低范式的表可能会出现更新异常——对表进行修改操作所引起的意外的连带后果(数据不一致)
三、对象—关系映射 (一)映射的种类 1.映射实体类- 实体类到关系表的映射必须满足表的第一范式,列必须是原子的
- 如果类图中涉及集合类型,映射时将集合字段属性拆开单独成表Web应用程序
- 一对一关联——外码选取任意一方都可
- 一对多关联 / 多对一关联——外码选取“多”的一方
- 多对多关联——需要额外一个交叉表
- 具有特殊语义的一对多的关联
-
第一种映射策略——每个类映射到一个表——存在数据冗余、信息不一致问题
-
第二种映射策略——类层次映射到一个表——存在数据冗余、信息不一致问题
-
第三种映射策略——映射每个具体类到一个表——存在数据冗余、信息不一致问题
- 第四种映射策略——映射每个没有连接的具体类到一个表——存在数据冗余、信息不一致问题
四、管理持久对象的模式 (一)企业应用体系结构模式(Patterns of Enterprise Application Architecture) 1.标识映射(Identity Map)- 给内存中所有持久对象都指定对象标识符(OID),没在内存中的对象不管
- 程序随时都知道所需要的对象是在内存中还是从数据库中获得,具有当前内存中的对象的相关信息
- 如果对象在内存中,在标识映射表去找,如果不在则去加载进内存
- 一个对象并没有包含你需要的所有数据,但知道如何获取
- 应用程序可以只装载一部分对象到内存中
- 程序知道一个业务事务都包含内存中的哪些对象
- 负责协调改变的写入和解决并发问题
- 和事务配套,随时可以回滚
- 事务是一个逻辑工作单元,保证数据库的一致性
- DBMS事务管理有两个作用——数据库恢复和并发控制
- 事务是原子的,事务中的所有SQL语句的结果要么被提交(commit),要么被回滚(rollback)
- 长事务不允许自动回滚,只允许人工回滚
- 排他(写)锁——必须等待当前持有锁的事务释放该锁之后才能处理其他事务
- 更新(预写)锁——其他事务可以读取对象,但有需要可以随时升级为排他锁
- 读(共享)锁——其他事务可以读取对象并可能得到这个对象的更新锁
- 无锁——其他事务可以随时更新对象,因此它只适用于允许脏读的应用系统
- 脏读(Dirty read possible)
- 非重复读(Nonerepeatable read possible)
- 虚读(Phantom possible)
- 可重复读(保证事务的可序列化的执行)
- 如果事务没被提交,恢复可以回滚
- 如果事务被提交后,恢复需要做一个逆操作
- 可编程的恢复:
- 保存点(save point)——程序中的一条语句,把一个长事务分成若干个短事务,人为设置
- 触发器回滚,是一种特殊的保存点,允许用触发器回滚事务
架构设计相关栏目本月热门文章
- 1【Linux驱动开发】设备树详解(二)设备树语法详解
- 2别跟客户扯细节
- 3Springboot+RabbitMQ+ACK机制(生产方确认(全局、局部)、消费方确认)、知识盲区
- 4【Java】对象处理流(ObjectOutputStream和ObjectInputStream)
- 5【分页】常见两种SpringBoot项目中分页技巧
- 6一文带你搞懂OAuth2.0
- 7我要写整个中文互联网界最牛逼的JVM系列教程 | 「JVM与Java体系架构」章节:虚拟机与Java虚拟机介绍
- 8【Spring Cloud】新闻头条微服务项目:FreeMarker模板引擎实现文章静态页面生成
- 9JavaSE - 封装、static成员和内部类
- 10树莓派mjpg-streamer实现监控及拍照功能调试
- 11用c++写一个蓝屏代码
- 12从JDK8源码中看ArrayList和LinkedList的区别
- 13idea 1、报错java: 找不到符号 符号: 变量 log 2、转换成Maven项目
- 14在openwrt使用C语言增加ubus接口(包含C uci操作)
- 15Spring 解决循环依赖
- 16SpringMVC——基于MVC架构的Spring框架
- 17Andy‘s First Dictionary C++ STL set应用
- 18动态内存管理
- 19我的创作纪念日
- 20Docker自定义镜像-Dockerfile
热门相关搜索路由器设置 木托盘 宝塔面板 儿童python教程 心情低落 朋友圈 vim 双一流学科 专升本 我的学校 日记学校 西点培训学校 汽修学校 情书 化妆学校 塔沟武校 异形模板 西南大学排名 最精辟人生短句 6步教你追回被骗的钱 南昌大学排名 清朝十二帝 北京印刷学院排名 北方工业大学排名 北京航空航天大学排名 首都经济贸易大学排名 中国传媒大学排名 首都师范大学排名 中国地质大学(北京)排名 北京信息科技大学排名 中央民族大学排名 北京舞蹈学院排名 北京电影学院排名 中国戏曲学院排名 河北政法职业学院排名 河北经贸大学排名 天津中德应用技术大学排名 天津医学高等专科学校排名 天津美术学院排名 天津音乐学院排名 天津工业大学排名 北京工业大学耿丹学院排名 北京警察学院排名 天津科技大学排名 北京邮电大学(宏福校区)排名 北京网络职业学院排名 北京大学医学部排名 河北科技大学排名 河北地质大学排名 河北体育学院排名



