没有合适的资源?快使用搜索试试~ 我知道了~
Centre de Recherche en Informatique,0里尔大学0计算机博士学位培养部 SPI Lille UFR IEEA0管理关系数据库的结构和行为演变:0软件工程技术的应用0管理关系数据库的结构和行为演变0关系数据库:0软件工程技术的应用0博士论文0于2020年9月28日公开答辩0获得0里尔大学博士学位0(计算机专业)0由JulienDelplanque撰写0评审委员会成员0主席:Kathia Oliveira(法国高等理工学院教授)0评审人:Olivier Barais(雷恩1大学教授)Anthony Cleve(纳慕尔大学教授)0考官:Tom Mens(蒙斯大学教授)0博士论文导师:Anne Etien(里尔大学教授)0博士论文的联合导师:Nicolas Anquetil(里尔大学讲师)0里尔计算机、信号和自动化研究中心,Lille - Nord Europe INRIA 91890Julien Delplanque的博士论文,里尔大学,2020年0© 2020 保留所有权利。lilliad.univ-lille.frThèse de Julien Delplanque, Université de Lille, 2020© 2020 Tous droits réservés.lilliad.univ-lille.fr0Julien Delplanque的博士论文,里尔大学,2020年0lilliad.univ-lille.fr © 2020 保留所有权利。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.0致谢0我感谢Anne Etien和NicolasAnquetil担任我的博士导师。我感谢评审委员会成员Olivier Barais,AnthonyClève,Tom Mens和Kathia Oliveira对我的审阅和评论。我感谢StéphaneDucasse在Rmod团队的接纳,以及我们在博士期间的各种合作。我感谢OlivierAuverlot在我博士期间给予我的宝贵时间,参与各种实验,提供帮助,并因我们的友谊而度过了许多咖啡时间。我感谢我在博士期间在Rmod遇到的所有人。特别感谢我的同伴Vincent Aranega,Clément Béra,VincentBlondeau,Christophe Demarey,Thomas Dupriez,CyrilFerlicot,Christopher Fuhrman,Pavel Krivanek,GuillaumeLarchevêque,Pierre Misse,Damien Pollet,BenoîtVerhaeghe和OleksandrZaitsev,感谢他们与我博士论文有关的许多非常有趣的讨论,以及我们在这三年期间建立的友谊。他们每个人都以自己的方式帮助我度过了这个考验。我感谢我的家人为我所做的一切,以及我相信他们在未来还将为我做的一切。特别感谢我的父母传授给我的价值观。最后,我感谢我的未婚妻Émeline对我的支持,耐心和每天的陪伴。0Julien Delplanque的博士论文,里尔大学,2020年0lilliad.univ-lille.fr © 2020 保留所有权利。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.0Julien Delplanque的博士论文,里尔大学,2020年0lilliad.univ-lille.fr © 2020 保留所有权利。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.iii0摘要0几十年来,关系数据库一直是许多信息系统的核心,并继续在新的软件开发中使用。其中许多数据库反映了人类或社会活动,例如与人力资源、保险、银行等相关的流程。反映这些活动会导致软件系统和关系数据库的频繁演变。关系数据库不仅存储和确保数据一致性,还可以定义行为,例如视图、存储过程、触发器等。在数据库内直接实现行为的优点是当使用它的多个程序执行类似任务时,可以防止代码重复。然而,这种数据库的演变变得复杂,文献中很少有方法来解决这个问题。大部分关于关系数据库演变的文献要么关注数据库模式的演变,要么关注数据库模式与与之交互的软件的共同演变。缺少逆向工程和演变关系数据库的结构和行为实体的方法。在本论文中,我们通过四个主要贡献填补了文献中的这一空白:(i)我们报告了一个架构师进行的关系数据库演变的观察,并从我们的观察中确定了问题;(ii)我们提出了一个元模型,表示数据库的结构和行为部分,并简化了依赖性分析;(iii)我们提出了一个工具,用于在数据库模式中查找质量问题;(iv)我们提出了一种半自动的方法来演变关系数据库(其结构和行为部分),该方法基于可以编译成SQL脚本的建议。本论文中报告的研究结果为开发面向关系数据库的行为感知集成开发环境提供了基础。0关键词:关系数据库,行为感知元模型,逆向工程,影响分析,建议0Julien Delplanque的博士论文,里尔大学,20200lilliad.univ-lille.fr © 2020 保留所有权利。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.0Julien Delplanque的博士论文,里尔大学,20200lilliad.univ-lille.fr © 2020 保留所有权利。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.v0摘要0几十年来,关系数据库一直是许多信息系统的核心,并在开发新软件时继续使用。这些数据库中的许多反映了人类或社会活动。其中包括与人力资源、保险、银行等相关的过程。由于不断发展,它们导致软件和关系数据库的频繁变化。另外,关系数据库不仅仅用于存储和确保数据的一致性。它们还可以定义行为,例如视图、存储过程、触发器等。当这种行为直接在数据库内部定义时,可以减少多个使用该数据库的程序执行相似任务时的代码重复。然而,这种数据库的演化变得更加复杂,很少有方法在科学文献中处理这个问题。大多数关于关系数据库演化的文章要么涉及其模式的演化,要么涉及与其交互的软件的共同演化。在这篇论文中,我们通过四个主要贡献来回应这个缺陷:(i)我们观察了关系数据库的演化并识别了其中的明显问题;(ii)我们提出了一个元模型,同时表示关系数据库的结构实体和行为实体,并简化了依赖性分析;(iii) 我们提出了一个工具来发现数据库模式中的质量问题;(iv)我们提出了一种半自动化的方法来演化关系数据库(包括其结构实体和行为实体),通过可以编译为SQL脚本的建议。本论文中的结果对于构建一个综合考虑结构实体和行为实体的关系数据库集成开发环境是有用的。0关键词:关系数据库,行为感知元模型,逆向工程,影响分析,建议0Julien Delplanque的博士论文,里尔大学,20200lilliad.univ-lille.fr © 2020 保留所有权利。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.0Julien Delplanque的博士论文,里尔大学,20200lilliad.univ-lille.fr © 2020 保留所有权利。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.0目录01 引言 101.1 软件工程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.2 关系数据库 . . . . . . . . . . . . . . . . . . . . . . . . . 201.3 问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501.4 面向关系数据库的软件工程 . . . . . . . . . . 701.5 贡献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701.6 论文结构 . . . . . . . . . . . . . . . . . . . . . . . 801.7 发表论文列表 . . . . . . . . . . . . . . . . . . . . . . . . . 902 动机 1102.1 引入AppSI数据库. . . . . . . . . . . . . . . . . . . . . 1102.2 背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1502.3 案例研究的条件. . . . . . . . . . . . . . . . . . . . . . 1602.4 定性分析. . . . . . . . . . . . . . . . . . . . . . . . . . 1602.5 定量分析. . . . . . . . . . . . . . . . . . . . . . . . . . 2102.6 问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2502.7 结论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2803 现状 2903.1 数据库设计. . . . . . . . . . . . . . . . . . . . . . . . . . 2903.2 关系数据库逆向工程. . . . . . . . . . . . . . . . . . . . . . 3003.3 关系数据库影响分析. . . . . . . . . . . . . . . . . . . . . . . . 3803.4 结论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4204 面向行为的关系数据库元模型 4304.1 目标. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4304.2 元模型. . . . . . . . . . . . . . . . . . . . . . . . . . 4504.3 元模型实例化. . . . . . . . . . . . . . . . . . . . . . . 4904.4 案例研究. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5704.5 结论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6805 在关系数据库中识别质量问题 6905.1 场景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6905.2 DBCritics. . . . . . . . . . . . . . . . . . . . . . . . . . . 7105.3 案例研究. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7305.4 结论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760Julien Delplanque的博士论文,里尔大学,20200lilliad.univ-lille.fr © 2020 保留所有权利。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.0第八章 内容06 关系数据库演化的建议 7906.1 设定背景. . . . . . . . . . . . . . . . . . . . . . . . . 7906.2 方法描述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8206.3 实验. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8806.4 结论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9107 结论 9307.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9307.2 贡献. . . . . . . . . . . . . . . . . . . . . . . . . . . . 9507.3 未来工作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 950A 运算符目录 1010A.1 目录. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010参考文献 1070Julien Delplanque的博士论文,里尔大学,20200lilliad.univ-lille.fr © 2020 保留所有权利。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.0图表清单01.1 马蹄铁过程。. . . . . . . . . . . . . . . . . . . . . . . . . 301.2 数据库和RDBMS的责任。. . . . . . . . . . . . . . . 401.3 我们方法的概述。. . . . . . . . . . . . . . . . . . . . . 802.1 数据库架构师需要实现的演化概述。1402.2 分析视频的方法。. . . . . . . . . . . . . . . . . . 1702.3 数据库架构师行动的流程规范化。. . . . . . 2003.1 数据库设计过程. . . . . . . . . . . . . . . . . . . . . . . 3003.2 数据库逆向工程过程. . . . . . . . . . . . . . . . 3104.1 元模型的结构实体. . . . . . . . . . . . . . . . . 4604.2 元模型的行为实体. . . . . . . . . . . . . . . . 4704.3 仅使用元数据表实例化模型. . . . . . . . . . . . . . . . . . . . . 5104.4 查询获取存储在数据库中的表的命名空间的唯一标识符、名称和标识符. . .. . . . . . . . . . . . . . 5104.5 通过解析数据库的转储来实例化模型. . . . . . . . . . . . . . . 5304.6 通过查询元数据表和解析行为实体的源代码来实例化模型的混合方法的示例. .. . . . . . . 5504.7 案例研究的背景. . . . . . . . . . . . . . . . . . . . . . . 5804.8 具有实体之间引用的数据库模型的示例. . . . . . . . 6004.9 自引用视图的示例. . . . . . . . . . . . . . . . . . 6104.10 提取Web视图依赖的实体的查询的可视化. 62 4.11行为实体与一个或多个表组之间的依赖关系的两种情况. . . . . . . . . . . . . . . . . 6404.12 我们用于记录AppSI数据库的六步方法的活动图. . . . . . . . . . . . . . . . . . . . .. . . . . . 6505.1 DBCritics的高级视图,评估数据库模型上的规则并提供报告. . . . . . . . . . . .. . . . . . . . . . 7105.2 WikiMedia和AppSI每个版本的违规计数. . . . . . . 7405.3 WikiMedia和AppSI每个版本的违反实体(虚线)与实体计数(实线). . .. . . . . . . . . . . . . . . . . . . 7506.1 方法的粗粒度示例. . . . . . . . . . . . . . 8206.2 示例数据库. . . . . . . . . . . . . . . . . . . . . . . . . . 8506.3 推荐选择. . . . . . . . . . . . . . . . . . . . . 8606.4 将面向引用的操作符转换为面向实体的操作符. . 870Julien Delplanque的博士论文,里尔大学,20200lilliad.univ-lille.fr © 2020 保留所有权利.Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.0x 图表列表06.5 将面向实体的操作符转换为满足RDBMS模式一致性的DDL语句列表. . . . . .. . . . . . . . . . 8706.6 应用拓扑排序在图上找到DDL语句的顺序,以确保模式一致性. . . . . . . . . .. . . . . 8806.7 DBEvolution的屏幕截图,我们用它来执行实验. . . . . . . . . . . . . . . 9007.1 应用一系列操作的当前策略. . . . . . . . . . . . . 9807.2 应用一系列操作的期望策略. . . . . . . . . . . . . . . . . . . . . . . 990Julien Delplanque的博士论文,里尔大学,20200lilliad.univ-lille.fr © 2020 保留所有权利.Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.0表格列表02.1 数据库模式中每种实体类型的实体数量. 1202.2 AppSI演化过程中的操作列表. . . . . . . . . . . . . . . . 1902.3 观察过程中操作和步骤之间的关系. . . . . . . 2003.1 根据我们的标准,文献中发现的关系数据库逆向工程方法的比较。. . . . . . .. . . . . 3703.2 关系数据库影响分析方法的比较. . . 4104.1 CRUD查询和子句之间的包含关系。 . . . . 4804.2 子句中对实体的引用。其他对实体的引用在图4.1和4.2中显示。 . . . . . . . .. . . . . . . . . . 4904.3 构建数据库模型的方法比较。 . . . . . 5704.4 每个特征组的表数量。 . . . . . . . . . . . . . . 6704.5 分类启发式和架构验证的结果。 . . . 6704.6 特定类别中特定类型的实体数量。 . . 6805.1 每种类型的实体的最小/最大数量和每个数据库的最小/最大代码行数。 . .. . . . . . . . . . . . . . . . . . . . . . . . 7405.2已解决的规则违反的“修复时间”的最小值、第一四分位数、中位数、第三四分位数和最大值(以天为单位)。 . . . . . . . . 760Julien Delplanque的论文,里尔大学,2020年0lilliad.univ-lille.fr © 2020 保留所有权利。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.0Julien Delplanque的论文,里尔大学,2020年0lilliad.univ-lille.fr © 2020 保留所有权利。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.0第1章 引言0目录01.1 软件工程 . . . . . . . . . . . . . . . . . . . . . . . . 101.2 关系数据库 . . . . . . . . . . . . . . . . . . . . . . . . . 201.3 问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501.4 关系数据库的软件工程 . . . . . . . . . . 701.5 贡献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701.6 论文结构 . . . . . . . . . . . . . . . . . . . . . . . 801.7 发表论文清单 . . . . . . . . . . . . . . . . . . . . . . . . . 90在本论文中,我们从软件工程的角度来研究关系数据库的演化。本章介绍了论文的背景,列出了我们发现的问题,并介绍了我们的方法和贡献。01.1 软件工程0软件工程起源于对构建软件的方式进行合理化的需求。该术语首次在1968年被用作由北约组织的一次会议的标题 [ Naur 1969]。这个研究领域旨在提供技术和工具,帮助开发人员在软件开发和维护过程中。软件工程的定义如下所示:“建立和使用健全的工程原则,以获得在真实机器上可靠且高效运行的经济软件。” [ Naur 1969 ]在部署后,软件会发生变化。在软件工程研究领域的初期,科学界认为这些变化只是错误修复或小的改进。这种直觉导致了罗伊斯提出的瀑布式软件开发过程 [Royce 1987]。瀑布式软件开发过程在工业实践中广泛传播。然而,科学界后来意识到,软件可能需要进行重大改变,以适应新的需求或提高质量。这种现象被称为软件演化,并在七十年代末由雷曼 [ Lehman 1980 ] 进行了研究和理论化。根据Mens [Mens 2008 ]的说法,已经确定了软件演化的两个主要观点:0Julien Delplanque的论文,里尔大学,2020年0lilliad.univ-lille.fr © 2020 保留所有权利。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.• the “how” focusing on more pragmatic aspects of software evolution phe-nomenon, aiming to help in day to day development of software.02 第1章 引言0• 关注软件演化现象的更实用方面的“如何”,旨在帮助日常软件开发。0• 关注软件演化现象的本质的“是什么和为什么”; and0在这篇论文中,我们主要讨论关系数据库中的后续维度:“如何”。软件演化很难处理。软件可以强烈依赖于现实世界的活动,因为它是这些活动的一部分(想想与人力资源、保险、银行等相关的软件)。这种软件称为E型软件,需要经常进行调整以满足需求的变化。E型软件:“机械化人类或社会活动的程序。”[Lehman 1980]E型软件的一些属性,列在著名的“软件演化定律”[Lehman1980]中,发现很难解决。即使不采取任何措施,复杂性会不断增加(定律II),功能内容会不断增加以满足用户需求(定律VI),如果不采取任何措施,质量会不断降低(定律VII)。开发人员需要付出很多精力来对抗这些现象。为了解决这些E型软件的属性,重新工程出现了。重新工程是一个由马蹄铁过程[Kazman1998]确定的由三个活动组成的过程(参见图1.1)。首先,逆向工程帮助开发人员理解现有软件系统并抽象出其工作方式,从而形成良好的心智模型。良好的心智模型对于进一步的开发至关重要。其次,对软件进行重组以改进它和/或添加功能。第三,构建一个新版本的软件来替换原始版本。本论文与软件重构相关。因此,马蹄铁过程被我们的方法用作实施软件重构的标准方式。01.2 关系数据库0关系模型:关系数据库是符合科德在七十年代引入的关系模型的数据库[Codd1970a]。关系模型描述了如何使用一些基本概念组织数据:0Julien Delplanque博士论文,里尔大学,2020年0lilliad.univ-lille.fr © 2020版权所有。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.2301.2. 关系数据库 30遗留软件0系统0高级0架构模型0改进0重组模型0新软件系统0分析0改进,重组,扩展0生成,完善 10图1.1:马蹄铁过程,灵感来自[ Mens 2008 ]中的图1.3。0• 表由一组属性和域对(称为表的模式)和包含数据的一组行组成。0• 属性是表的命名列,属性的名称必须在表的所有属性中是唯一的。0• 域(或数据类型)对要存储的数据设置约束。0•完整性约束是关于数据的断言。它们需要始终为真。Codd的关系模型引入了两种完整性约束:主键确保表中一组属性的值是唯一的,外键允许指定一组属性的取值是另一组属性的取值的子集,可能位于另一个表中,并受主键约束。0• 数据库模式是数据库中存在的表和完整性约束的集合。它描述了数据库中整体的数据结构。0关系数据库:数据的存储被称为关系数据库。基本上,它包含数据和数据库模式。为了防止数据损坏,用户不能直接与数据库进行交互。相反,用户与数据库之间的交互是通过关系数据库管理系统进行的。最新的系统确保关系数据库中存储的数据保持一致。0Julien Delplanque的论文,Lille大学,2020年0lilliad.univ-lille.fr © 2020版权所有。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.12340第4章 引言0关系数据库管理系统:管理数据库的软件称为关系数据库管理系统(RDBMS)。其目的是管理一个或多个关系数据库。此管理包括多个任务:0• 管理用户和权限(可以控制用户对数据的访问)。0• 创建、删除或更改数据库的模式。0• 解析、分析和执行查询,查询可以读取或修改数据。0• 在执行查询时始终确保完整性约束得到满足。如果违反约束,RDBMS会引发错误。0关系数据库0关系数据库0关系数据库0关系数据库0关系数据库管理系统0管理0数据 + 模式0- 修改数据库 - 管理用户权限 -查询、修改数据 - 确保一致性0查询/修改0数据0结果0用户0图1.2:数据库和RDBMS的责任。0图1.2总结了RDBMS与其数据库之间的关系。数据库包含具有其描述(数据库模式)的数据,RDBMS负责通过允许用户在其上执行查询并确保存储在所有数据库中的数据根据其模式保持一致来管理数据库。0现代RDBMS:自第一个RDBMS实现以来,添加了许多新功能。现代RDBMS不仅涉及数据库管理、权限管理、数据查询/修改和一致性检查。例如,可以在数据库中直接定义执行计算的实体。我们将这些实体称为“行为”实体,与不定义计算但描述数据结构的“结构”实体相对。我们确定了以下行为实体:0Julien Delplanque的论文,Lille大学,2020年0lilliad.univ-lille.fr © 2020版权所有。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.1https://www.postgresql.org2https://insights.stackoverflow.com01.3. 问题 50• 视图:一个命名的SELECT查询,可以在其他SELECT查询中重用。0• 存储过程:通过RDBMS提供的编程语言直接在数据库中定义的函数。0•触发器:一个实体,监视表上发生的事件,例如行插入、更新和删除,并可以在此事件之前、代替或之后执行计算。0•检查约束:作为SQL表达式实现的开发者定义的数据约束。如果表达式求值为true,则满足约束,可以插入/更新行。否则,会引发错误。检查约束的表达式可以涉及存储过程。0论文重点:RDBMS在世界各地的许多信息系统中使用。这对于开源软件和专有软件都是如此。尽管NoSQLDBMS的使用现在很普遍,但不太可能完全取代关系数据库。在本论文中,我们专注于关系数据库。在关系数据库的情况下处理演变已经很复杂,并引发了有趣的研究课题。0PostgreSQL作为参考实现:尽管本论文的研究旨在适用于任何关系数据库管理系统(RDBMS),但我们使用PostgreSQL1作为参考。这个选择有两个主要原因。首先,我们可以访问我们实验室使用的真实数据库以及其主要开发人员。该数据库的特性在第2章中详细介绍。其次,PostgreSQL是一个成熟的开源RDBMS,提供与行为实体相关的高级功能。此外,根据Stackover�ow关于软件技术使用的年度调查2,PostgreSQL的使用量在多年来不断增加。2017年,Stackover�ow开始明确询问开发人员关于他们使用的RDBMS(在此之前没有明确提问)。自2017年以来,PostgreSQL的使用报告一直在增加,2019年仅次于MySQL排名第二。01.3 问题0我们确定了在演化关系数据库时出现的两个主要问题:关系数据库很难理解和很难演化。这两个问题在本节中简要介绍,并在第2章中进行了更深入的研究。0Julien Delplanque的论文,里尔大学,2020年0lilliad.univ-lille.fr © 2020 版权所有。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.0第1章 引言0关系数据库很难理解如前所述,现代RDBMS提供了各种功能来描述数据组织和处理数据。我们确定了理解关系数据库复杂的两个原因。第一个原因涉及查询RDBMS元数据的复杂性。实际上,RDBMS通常在一组系统表中进行元描述,可以像查询任何表一样使用SQL查询进行查询。然而,从这些表中检索数据库实体之间的关系可能很麻烦,因为在SQL中查询存储在表中的图形数据结构并不直观。第二个困难是一些元数据缺失。例如,我们确定无法查询数据库的系统表以收集存储过程的调用者。0关系数据库很难演化。对于人类来说,更改对软件的影响很难预测。这对关系数据库也是如此,但关系数据库有两个特点使其演化变得更加具有挑战性。第一个特点是数据库与使用它的程序之间的依赖通常是隐式的。存储过程依赖于表也是如此。如果更改数据库模式,可能会导致存储过程在运行时崩溃。RDBMS不会注意到更改后存储过程源代码的无效性。第二个特点适用于除存储过程之外的所有实体:数据库模式在任何时刻都不能处于不一致状态。不一致状态的示例可以是视图在其源代码中引用了一个不存在的表。这个特性使得关系数据库的演化与其他软件的演化不同。实际上,Java软件系统在演化过程中可以处于不一致状态,只要在重新编译软件时,源代码处于一致状态即可。但对于RDBMS来说,数据库模式必须在演化过程中的任何时刻都处于一致状态。0总结1:关系数据库演化中的问题01. 关系数据库很难理解。01.1. 查询元数据的复杂性。01.2. 缺失的元数据。02. 关系数据库很难演化。02.1. 隐式依赖关系。02.2. 执行过程中不允许出现任何不一致。0Julien Delplanque的论文,里尔大学,2020年0lilliad.univ-lille.fr © 2020 版权所有。Thèse de Julien Delplanque, Université de Lille, 2020lilliad.univ-lille.fr© 2020 Tous droits réservés.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功