万博manbex官网ManBetX万博在经过行业权威专家的评估后,中国足彩网、500万彩票网、 OKOO澳客等彩票巨头网站与球探、7M体育、DS足球、懂球帝、捷报等体育门户网站均收录了ManBetX万博的盘口赔率,并根据不同赛事指数进行专业解读与分析,透过ManBetX万博开出的盘口数据走向,对每场比赛进行赛果预测和盘面专业解读,供给广大用户参考。
当前位置:

重庆大学硕士学位论文2关系模型与对象模型 82 3关系模型

作者: 万博manbex官网|来源: http://www.rzqianhui.com|栏目:bet体育万博|    日期:2019-11-04

文章关键词:

万博manbex官网,非过程语言

  重庆大学硕士学位论文2关系模型与对象模型 82 3关系模型 关系模型是目前数据库系统中应用范围最为广泛的数据模型。相对于70年代的网状模型和层次模型 关系模型有严格的数学基础 概念简单清晰 非过程化程度高 数据具有独立性 更利于数据管理和数据检索。关系模型是由关系数据结构、关系数据操作以及关系完整性

  重庆大学硕士学位论文2关系模型与对象模型 82 3关系模型 关系模型是目前数据库系统中应用范围最为广泛的数据模型。相对于70年代的网状模型和层次模型 关系模型有严格的数学基础 概念简单清晰 非过程化程度高 数据具有独立性 更利于数据管理和数据检索。关系模型是由关系数据结构、关系数据操作以及关系完整性约束三个部分组成 1关系数据结构关系模型的数据结构非常单一 其逻辑结构是一张扁平的二维的表。关系成为描述现实世界的实体以及实体间各种联系的基本手段。关系模型是建立在集合论基础上的 下面对关系数据结构中的一些基本项进行说明 关系relation 一个关系对应通常说的一张表 是笛卡儿积的子集。关系数据库是表的集合 每个表有唯一的名字。 元组tuple 表中的一行记录即为一个元组。一个元组可表示一个实体或实体之间的联系。 属性attribute 表中的一个列称为关系的一个属性 即元组的一个数据项。 domain一组具有相同数据类型的值的集合。属性的取值范围。对所有关系r而言 r的每个属性的域都应是原子的 即不可再分割的。 key表中可以唯一确定一个元组的某一属性组。一个关系至少有一个码 也可能有多个码。在多个码中选一个作为主码 primary key 。如果关系中的属性或属性组不是本关系的码 而是引用其他关系或本关系的码 则称为此关系的外码 foreign key 。码是关系的核心。 关系模式对关系的描述。它可以形式化地表示为 关系名 属性1 属性2 2关系操作关系操作采用集合操作方式 操作的对象和结果都是集合。关系模型中常用的关系操作包括 选择、投影、连接、除、并、交、差等查询操作和增加、删除、修改等更新操作两个部分。 关系数据操作方式有关系代数和关系演算。关系代数是用对关系的运算来表达查询要求的 关系演算是用谓词来表达查询要求的。 3关系完整性约束完整性约束是给定的数据模型中数据及其联系所具有的制约和依存规则 用以限定符合数据模型的数据库状态以及状态的变化 以保证数据库中数据的正确、有效和安全。数据模型既要反映和规定数据模型必须遵循的基本的完整性约束条件 又要提供定义完整性约束条件的机制 以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。 重庆大学硕士学位论文 2关系模型与对象模型 9关系模型中有以下三类完整性约束 实体完整性entity integrity 。主码作为元组的唯一性标识 主码中的属性即主属性不能取空值。 参照完整性referential integrity 。参照完整性约束是不同关系之间或同一关系的不同元组之间的约束。它的基本内容是 外码或者是空值 或者是引用某个元组的主码值。 用户定义的完整性user defined integrity 。这一约束是针对某一具体关系数据库的约束条件 它反映某一具体应用所涉及的数据必须满足的语义要求。 4关系模型的优势和局限性关系数据模型具有下列优点 具有坚实的理论支柱形式化基础好。 概念单一数据结构简单 无论实体还是实体之间的联系都用关系表示。对数据的检索结果也是关系 数据独立性强屏蔽了数据的存取路径 具有很好的安全保密性。 关系模型的局限性表现在 关系模型过于简单语义表示能力差 不利于表达复杂的数据结构 支持的数据类型有限一般只提供一些简单的数据类型 不能提供新类型的定义和生成能力 关系模型不能以自然的方式表达实体之间的联系缺乏数据抽象。 4本章小结对比关系模型和面向对象模型 对象模型基于耦合、内聚和封装等软件工程概念 而关系模型则基于数学理论 特别是集合论。在数据访问方式上 对象模型通过对象之间的关系遍历对象 而关系模型则是复制数据来连接表中的行。这是关系模型与对象模型的模式不匹配的关键。 这一章主要介绍了关系模型和面向对象模型各自的特点、优势和局限 并进一步介绍了统一建模语言UML。因此 在结合面向对象应用与关系数据库时 首先要考虑如何将对象模型转换为关系模型 使对象具有持久性。下两章将会详细分析对象持久化的方法和对象 关系映射规则及映射策略。 重庆大学硕士学位论文 3对象持久化概述 10 3对象持久化的存储机制和实现方式 1概述在许多应用中 都需要将业务数据进行永久存储 即使应用程序终止 对象的属性和状态依然被保留 可以在程序下一次运行时使用 也可以实现不同应用之间的数据共享。实现对象持久化 必须根据所选择的持久化机制来确定对象持久化的方法 不同的持久化方法有各自的优缺点 适合于不同的应用业务模式和系统架构。 2对象持久化的基本概念持久性是指对象的生存特性。对象持久化主要研究在面向对象的高级程序设计中实现对象持久性 有效地存储和管理持久对象 persistent object 使程序员按同一表达式语法访问暂态对象 transient object 和持久对象 统一暂态对象空间和永久对象空间 对象的持久化是将一个瞬态对象变为持久对象的方法目前 实现对象持久化的方式主要是根据不同的持久化存储机制 文件系统、数据库系统等 形成不同的解决方案 主要包括利用文件系统的持久化和利用数据库系统的持久化。 3持久化存储机制持久化存储机制即能实现对象永久保存、访问的系统 文件系统、数据库系统都是对象持久化存储机制。通过文件系统持久化对象的方式比较简单 它利用基本的对象序列化技术就可以实现。此外 一些将对象与XML转换的技术 例如JAVA的JAXB技术 可以将对象序列化成XML文件。相比之下 数据库是保存数据的更加高效的手段 实现对象持久化的方式也相对复杂。 1对象持久化的理想方式——面向对象数据库面向对象数据库最初是随着CAD 计算机辅助设计 、CASE 计算机辅助工程 、OA 办公自动化系统 、超文本及多媒体应用等领域发展起来的。在这些领域里 常常需要处理结构复杂、类型多样的数据 包括图形、图象、影象、声音等 传统的数据库在对这些数据进行存储、处理以及在其上的各种查询、检索等方面都不能很好地支持。为了更有效地管理这些数据 面向对象数据库系统被开发出来。 面向对象数据库系统支持对象数据模型 具有面向对象的特征。这些特征包括 支持复杂对象可以由原子对象 整型、实型、布尔、字符串、字节等 通过应用对象构造符 元组、集合、线性表、数组等 构成对象。 重庆大学硕士学位论文 3对象持久化概述 11 每个对象具有对象标识它独立于对象的值。 具有封装性数据库对象中封装了数据与方法 一个外部运算可以更新或读取对象的唯一方法是通过方法 从而达到信息隐蔽 也是逻辑数据独立性的一种形式。 支持类型和类的概念类型概括具有相同特性的一组对象的共同特性 具有相同内部结构和一组相同的方法的对象可以组成类。 支持继承的概念类可以用增加新的属性、新的关系及新的方法加以特殊化。 支持过载。同时 面向对象数据库必须是一个数据库管理系统 DBMS 具有数据库管理系统的基本功能。主要包括 持久性即对数据的持久保存 事务及并发性保证多个用户并发操作时数据的完整性 故障恢复提供将数据库从故障后的错误状态恢复到某一正确状态的功能 具有非过程化的、高效的、独立于应用的查询功能。OQL语言Object Query Language 现在已被接受为标准的面向对象数据库查询语言。它支持典型的连接、选择、投影查询。 除此之外 一些面向对象数据库系统还具备新应用领域所需要的一些特性 包括模式演化、版本管理、分布式计算、嵌套事务和长事务等。 可以看出以对象模型为基础的面向对象数据库能按照面向对象的思想来管理对象数据 应当是实现对象持久化最理想的技术。目前 面向对象数据模型最大问题是没有一个统一的标准 并且缺乏一个完善的理论来指导。尽管有许多商品化的ODBMS 但它们在程序设计接口、实现方法 手段 、对查询的支持等方面都存在许多差异。其次 面向对象的数据库产品在一些方面仍然落后于关系数据库产品 例如 还没有OODB支持视图机制 并且在这方面的先前研究也未真正展开 模式化在OODB中更为落后 许多OODB产品仍然停留在类似CODASYL风格的模式 应用编译周期上 OODB与它们的应用程序语言紧密集成 许多系统仅提供一种语言 大多为C 除此以外 OODB的鲁棒性、可伸缩性和容错性都难以赶上关系数据库系统。 面向对象数据库目前仍然是一个发展很不完善的技术 没有象关系数据库管理系统那样众多成熟的产品 而且各厂商之间的面向对象数据库系统不能通用 使得应用的移植性大为降低。相比之下 关系数据库以其成熟的产品、良好的通用性和移植性 能很好实现数据共享 在一段时期内仍将是作为数据库系统的首选。 重庆大学硕士学位论文 3对象持久化概述 123 Codd在1970年提出了关系数据库的概念、理论和方法奠定了关系数据库的理论基础。关系数据库是基于关系模型的数据库。关系数据模型提供了关系操作的规范和功能要求 但不对DBMS的语言给出具体的语法要求。用户对关系数据库的操作是高度非过程化的 不需要指出特殊的存取路径 路径的选择由DBMS的优化机制来完成。 Codd在发表的一系列论文中论述了范式理论和衡量关系系统的12条标准 用数学理论奠定了关系数据库的基础。1974年 IBM的Ray Boyce和Don Chamberlin将Codd关系数据库的12条准则的数学定义以简单的关键字语法表现出来 里程碑式地提出了SQL Structured Query Language 语言。SQL的实际功能包括数据定义、数据操纵和数据控制 是一个综合的、通用的关系数据库语言 同时又是一种高度非过程化的语言 用户只需要指出做什么而不需要指出怎么做。 目前SQL标准有3个版本。基本SQL定义是 SQL 89。SQL 89标准定义了模式定义、数据操作和事务处理。SQL 92描述了一种增强功能的SQL 包括模式操作 动态创建和SQL语句动态执行、网络环境支持等增强特性。在完成SQL 92标准后 ANSI和ISO即开始合作开发SQL3标准。SQL3的主要特点在于抽象数据类型的支持 为新一代对象关系数据库提供了标准。 RDBMS是关系数据库管理系统 它从功能上划分主要可分为四部分 关系数据库模式定义语言、关系数据操纵语言、关系数据库系统控制以及关系数据库维护和服务。 关系数据库通过事务管理和锁机制来控制数据库并发和多用户访问 提供事务提交、关系数据库转储、日志和日志文件以及检查点等技术保证关系数据库的恢复 通过对被访问的数据加锁、执行封锁的两段式协议等技术 保证并发事务调度的正确性。 使用关系数据库持久化对象最理想的方案是通过在关系数据库和应用之间建立一个数据访问中间件 通过对象 关系映射来实现对象持久化 这样直接在应用中进行对象的存储和访问 使之完全具有面向对象的特性。 使用关系数据库来实现对象持久化 虽然需要在对象模型和关系模型间进行一次转换 但是关系数据库产品之间良好的通用性和移植性使面向对象应用更能够适应异构数据库环境 具有更加好的移植性。 1对象数据访问方式在使用关系数据库作为数据存储机制的面向对象应用中 对象数据的访问方重庆大学硕士学位论文 3对象持久化概述 13式一般分为以下三种 内嵌SQL方法或SQL硬编码式。这种方法将访问数据库的SQL代码直接内置在类的源码对象方法 中。这种方法的局限性很强 但是设计和开发难度小 可以快速构建出系统原型。使用内嵌SQL的缺点是将业务逻辑耦合到关系数据库上 需要所有业务逻辑类了解底层数据库的模式 使得编写的代码重用性极差 而且不易于维护且难以扩展。 1在业务类中耦合SQLFig SQLembedded businessclasses 紧耦合映射方法或代理式。这是稍好一些的方案 它将业务逻辑类的SQL语句封装在一个或多个数据类中 由这个数据类实现业务逻辑类的访问数据库操作。这样 把耦合到关系数据库的SQL语句就集中在数据访问类中处理 在一定程度上增强了重用性和可维护性。但是这种方法仍然需要为不同的业务逻辑类建立与之对应的数据访问类 且在数据库发生变化是需要重新编译数据类。 2创建对应业务类的数据访问类Fig Businessclasses access RDB through corresponding data access classes 数据访问层方式。这是目前比较理想的方法。通过建立一个数据访问层于RDB业务类 SQL RDB SQL 业务类 数据访问类 重庆大学硕士学位论文 3对象持久化概述 14业务对象和关系数据库之间 将业务对象映射到持久化机制中 由数据访问层为业务对象提供一个统一的数据库访问接口。由于数据访问层是独立于系统的其他模块 使得业务逻辑类与关系数据库无关 同时数据访问层应该具有通用的持久化对象的机制 使得数据访问层不绑定在特定的业务逻辑类上。这样就大大增强了重用性。这种方法的缺点是对系统的性能有一定影响 原因在于存取对象时都需要先映射 然后才能存取 降低了数据访问的效率。 3业务类通过数据访问层访问RDBFig Businessclasses access RDB through data access layer Java环境下的对象持久存储技术就Java这种目前应用比较广泛的面向对象语言而言 有四种技术来实现对象持久存储 Serialization 序列化 、JDBC Java数据库连接 、EJB Enterprise Java Beans 、JDO Java Data Object Mapping对象 关系映射 Serialization序列化技术是JVM Java虚拟机 中的标准组件。它可运行于任何Java环境中 通过与文件关联可将任何Java对象序列化到流对象中。序列化是在Java环境中非常容易使用的一种模式。一个类要实现序列化只要声明实现Serializable接口 即可通知JRE Java Runtime Environment 执行缺省的序列化类而不要进行任何的其他编码。但是序列化缺乏一种可靠的数据环境 不支持事务处理、查询以及为不同的用户提供共享数据服务。尤其缺乏内存中的对象实例的保护机制 当内存中存在许多对象实例的副本时无法协调数据的一致性 并且其访问的粒度只能基于整个对象。因为编程人员要很小心的处理多个实例化到内存的对象 既消耗资源又难于管理 在一个实际的应用中很少有通过一个序列化可以存储所有程序运行需要的数据 所以这种机制不适合大规模数据处理的应用 只适用于最简单的应用 或者在某些无法有效地支持数据库的嵌入式系统中。 JDBCJDBC是基于关系数据库调用SQL的标准API 采用SQL关系数据模型表达数RDB SQL 业务类 数据访问层重庆大学硕士学位论文 3对象持久化概述 15据 不再需要考虑为不同的数据库产品写不同的访问代码。也就是说 应用的业务逻辑类需要直接使用SQL语句访问关系数据库 即通过上面描述的方式1或方式2来实现对象存储。其基本的工作方式是 第一 建立数据库连接 第二 发送SQL语句 最后 处理和返回结果。 JDBC要求你明确地处理数据字段 并且将它们映射到关系数据库的表中。开发人员被迫与两种区别非常大的数据模型、语言和数据访问手段打交道 Java对象模型以及SQL中的关系数据模型 他们只能是简单地编写过程化的Java代码来对底层的关系数据库中的数据表进行操纵。因此 程序中有大量的数据库访问代码、逻辑冗长、业务逻辑一旦改变就需要大量修改和重写代码 难以扩展和维护。最终结果是 面向对象应用的开发者根本不能从面向对象中得到任何好处。 EJB13 J2EE PlatformEnterprise Edition 是SUN公司推出的一种全新概念的多层分布式应用平台 定义了开发和部署企业级的多层体系结构应用标准。它通过提供基于组件的方法 使得部署在J2EE平台上的多层应用可以实现高可用性、安全性、可扩展性和可靠性。EJB是J2EE最重要的核心技术之一 它提供了一个框架来开发和部署分布式商务逻辑 显著简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。 EJB2 0定义了3种不同的企业级Bean 会话Bean、消息驱动Bean、实体Bean。 其中 实体Bean是能长时间存在、可以在不同会话中访问的、以及能被多个客户端共享的相对稳定的对象 它是J2EE中的永久性存储对象 代表着业务实体。实体Bean将底层数据以对象形式映射到内存中 进行数据的对象封装 从而把相关数据聚合在一起成为一个统一的对象 封装进简单的方法 方便数据的管理和操作 而且可以从应用服务器中得到中间件服务 如安全、网络和事务等。 实体Bean的持久化有两种 Bean管理持久化 Bean Managed Persistence BMP 和容器管理持久化 Container Managed Persistence CMP 。BMP是指由Bean自己来实现实体Bean 的持久性 即在Bean中实现数据库操作 而CMP则是由容器实现Bean的持久性 使我们不需要在Bean内再编写数据库操作的代码。 CMP实体Bean 提供健壮的数据持久性。Bean容器处理大部分的数据完整性、资源管理和并发性功能 从而使开发人员关注业务逻辑和数据处理 而不是这些低级细节。使用BMP实体Bean时 开发人员编写持久化代码而容器确定何时执行该代码。使用CMP实体Bean时 容器生成持久化代码并管理持久化逻辑。 JDOJDO是JCP Java Community Process 在众多公司合作的基础上推出的一种新重庆大学硕士学位论文 3对象持久化概述 16的持久性存储规范 提供透明持久化 transparent persistence 即具有将Java对象透明地映射和持久化到数据库的能力 14 。JDO整合了JDBC中关于数据库的性能和Java序列化中处理Java对象的优势 其目标就是减少对SQL的直接使用、减少在业务应用中的事务处理。除了透明存储之外 按JDO方式写的代码具有二进制兼容性 可以跨平台、跨数据库。JDO可以用于对象 关系映射 这种方式中会生成JDBC调用来自动地将Java对象和关系数据库中的数据对应起来。另外 JDO对象也可以直接保存到文件中 达到与对象数据库一样的功能和性能。 JDO规范为访问、存储和处理持久对象提供了一组标准接口。Persistence Manager代表了到数据源的连接 解决应用程序和底层数据存储之间的访问。Transaction提供对数据的ACID事务。Query允许用户搜索与给定条件匹配的持久对象。PersistenceCapable类代表被存储和取回的实际实体 管理对象生命周期 几乎所有用户定义的类都可以成为持久类 可持久化类要实现PersistenceCapable接口 15 4JDO体系结构Fig Mapping对象 关系映射是把Java对象映射到数据库的技术 它把内存中的一个对象转化为关系型数据。对象 关系映射具有自我存储到关系数据库的能力 对对象的改变能够直接得以存储 而不考虑数据库存取代码 17 。这样 把全部精力集中到对对象和类进行编程 解决业务问题。 对象 关系映射属于上文描述的方式3 但是也有多种具体的实现方式。其实质都是通过对象 关系映射来转换对象模型和关系模型 并建立有效的对象级的事务管理、并发控制和查询机制。开发者可以自己的应用需求和规模编写对象关系映射工具 也可以使用商用的映射工具。 业务对象Business Objects Persistence Manager JDO Objects 实现PersistenceCapable Query Transaction数据源 暂态对象 Class Meta Data描述 描述 重庆大学硕士学位论文 3对象持久化概述 17目前 商业应用系统要求更高的灵活性、移植性和可维护性 相比EJB 对象 关系映射是一种轻量级的持久化方式。一般CMP都不会直接暴露给客户端 而用Session Bean来封装实体Bean 那么CMP的事务功能、安全性检查都没有Entity Bean CMP必要 光是一个对象 关系映射的功能 就不一定非用CMP。此外 CMP在每个应用服务器的实现都不相同 J2EE的标准是CMP实体Bean 而实际应用中受到的诟病也最多。 mapping的最大作用不是分布式和安全检查而是让程序员能够完全用面向对象的思维来分析和设计系统 让系统能够支持多种不同的数据库平台。 mapping使用的是本地调用CMP虽然也有Local接口 但是web层还是需要通过接口Remote接口访问层EJB的数据序列化、网络调用、创建大量的对象 这是都是性能降低的原因。 动态Query实体Bean很难实现动态 这是因为它基于代码自动生成技术 即最终的执行代码是在部署编译时生成的。O mapping则有根本的改变它基于reflection机制 运行时动态是很自然的事。 再来看JDO 虽然出发点非常好 但它不是一个轻量级封装 它试图建立一个完整的持久层框架 但是还很不完善 造成了JDO感觉比较笨重。而且JDO没有一个好的开源免费实现。好的产品都是商业产品 并且在国内没有销售和技术支持。JDO标准不完善以及严重的产品分裂问题给它的推广使用带来了很大的阻碍。目前规范委员会里面没有一个关系映射的开发商。这个委员会基本上是由对象数据库的开发商组成的。事实上 ODMG的基本前提是为对象数据库提供一个更友好Java API JDO试图提供一个对象持久化的完全版本 但是 它又不被任何的主流数据库厂商所支持。 5本章小结对象持久化使得对象的生存周期可以跨越应用的生存期而独立存在 实现对象的持久存储。常用的持久化机制包括面向对象数据库和关系数据库。不同的持久机制的持久化实现方式是不同的。 本章总结了关系数据库中面向对象应用的数据访问方式 并且具体分析和对比了Java环境下的对象持久存储技术。

  基于关系数据库的对象持久化及性能优化研究,对象持久化,对象持久化技术,数据库性能优化,持久化,redis 持久化,ios数据持久化,数据持久化,activemq持久化,ios持久化

文章标签: 万博manbex官网 ,非过程语言

 上一篇:浙江大学大学计算机基础 2010-12-模拟卷及答案

 下一篇:管理学基础判断题