数据库系统原理-第十一章 半结构化数据模型资料
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Page 16
• XML和数据库
– XML作为一种整合多个数据库的视图,使用一 种专门的XML查询语言来访问; – 数据库中存储XML的方法:
• 以解析的形式存储XML数据,并提供一个工具库以 该形式导航数据;
– 两种解析形式:SAX和DOM – SAX是一种事件驱动接口,以顺序的方式来处理文档,采用
SAX产生的事件序列 Start document
Start element(GREETING) Characters(欢迎来到创新电脑公司!) End element(GREETING) End document
Page 19
DOM定义
• 文档对象模型DOM将XML文档模型化为一棵结点
树,其中每一个XML语法成分(如元素、属性、文
了基于事件的方式来处理XML文档
– 根据文档的内容建立一个棵文档结点树,然后利用树模型 中各种对象或接口的方法来访问XML文档中的信息。
• 把文档和它们的元素表示为关系,并使用传统的关系 DBMS来存储它们。
Page 17
以简单XML文档为例说明SAX解析器的工作原理:
• 事件1:文档开始(Start document)
Page 5
• 信息集成与半结构化数据
– SSD模型是自描述的,模式与数据附着在一起 • 每个非根节点的入弧的标签表示该节点在弧起点节点 中的角色(属性/域/联系等) – 将SSD的特点应用于信息集成 • 同时访问多个数据库,例如合并多个库中的数据集, 如果这些数据库的模式一致,则元组直接合并; • 信息集成中需要解决数据的异构性 – 数据模式:如图11-1中影星的地址 – 数据模型:关系模型、面向对象 • 如果模式不同,且合并要考虑遗留数据库问题 – 数据库一般是持续运行的,不允许因为要复制数 据到另一个数据库而将其关闭(即使可以得出从 某一模式到另一模式的最有效途径)
Page 10
• 有模式和无模式的XML
– 格式规范的(Well-Formed)
• 格式正确的XML文档遵守XML语法,但没有文档 类型定义DTD(Document Type Definition)或模式 定义。
– 合法的(Valid)
• 包括一个DTD(文档定义类型),它定义了允许使用 的标签和使用标签的语法(如何嵌套使用),合法的 XML文档既遵守XML语法规则也遵守在其DTD或 模式中定义的规则。
Page 21
练习
Page 22
练习
Page 23
练习
属性替换:
Page 24
Page 11
• 格式规范的XML
– 要求该文档以一个XML声明开始,同时有一个根元素,它 是文本的整个主体。
<? xml version=“1.0” encoding=“utf-8” standalone=“yes”?> <SomeTag> …… </SomeTag> 例11.4 与图11-1对应的XML文档
Page 7
例11.3 例子描述中两个影星数据来自不同结构(模式)的 数据库。要进行跨库查询则有两种可能 • 通过第一种接口将数据库物理合并为SSD形式再进行 查询 • 将查询分别传递给两个库,各自完成具体查询工作 后向接口返回引用指针。后继应用需要具体结果时 可根据引用指针取到值
• 习题11.1.5。UML模型和SSD模型的本质区别?
本内容等)都用一个结点表示。 • DOM利用对象(node对象等)来模型化文档,对象描 述了文档的数据结构,还描述了数据的行为。 • DOM提供“随机访问”机制,以实现对整个XML
文档的全面、动态访问。它允许用户随意访问文档
的任何一部分,并允许修改、删除或插入新的数据 。
Page 20
• 将XML文档表示为关系
– 为每一个文档和文档中的每个元素分配一个唯 一的ID,对于文档,ID可以是它的URL或在文 件系统中的路径;
DocRoot (docID, rootElementID) SubElement (parentID, childID, position) ElementAttribute (elementID, name, value) ElementValue (elementID, value) – DocRoot把文档ID和它们根元素的ID联系起来, SubElement把元素和其子元素联系起来; ElementAttribute关系把元素和它们的属性联系起来; ElementValue关系对应没有子元素的元素。
或
Page 14
•பைடு நூலகம்连接元素的属性
– 属性的一个重要用途是在一个非树形的半结构 化数据图中表示连接。
Page 15
• 命名空间
– 解决不同数据源中的标签重名问题;为了在同一文档中 区分不同词汇表中的标签,可以为一组标签使用一个命 名空间; xmlns:name=“URI” – URI(统一资源标识符)是一个指向一个文档的URL,该 文档中描述了命名空间中的标签含义。 例11.7 假设图11-5的元素StarMovieData中的标签属于文档 infolab.stanford.edu/movies中定义的命名空间: <md:StarMovieData xmlns:md=“http://infolab.stanford.edu/movies”>
• 事件2:元素开始(Start element)
• 事件3:字符数据(Characters) • 事件4:元素结束(End element) • 事件5:文档结束(End document)
Page 18
• 下图表示解析器在读取文档时何时产生相关的事件:
XML文档 <?xml version="1.0" encoding="gb2312" standalone="yes"?> <GREETING> 欢迎来到创新电脑公司! </GREETING>
• 介绍XML的目的
– XML在HTML的数据内容表示基础上,进一步描述了文 档内部信息之间的层次关系 – XML的基本原理与前一节中的SSD相同,特别是XML中 标签的功能与SSD中的弧功能相同
• 这些相似性特点使得XML成为SSD模型的一种典型实现
Page 9
• 语义标签
– 用尖括号括起来的文本,往往成对出现,称为 开始标签和结束标签; <FOO>…</FOO> – 标签之间可以出现包含文本和嵌套标签,一对 匹配标签和出现在它们之间的一切内容称为元 素; <FOO>hello!</FOO> <address><city>NewYork</city></address> – 非成对标签不能包含任何元素或文本,但可以 有属性。 <FOO/>
第11章 半结构化数据模型
11.1 半机构化数据 11.2 XML
Page 1
11.1 半结构化数据
• 半结构化数据SSD
– 它是一种适于数据库集成的数据模型,即适于描述包含 在两个或多个数据库(这些数据库含有不同模式的相似 数据)中的数据; – 它是一种标记服务的基础模型,用于Web上共享信息。
• 为何需要半结构化数据模型
– 可以看成是E/R模型和OO模型的混合 • 类/联系;类/关系 • 关系模型成功的一大原因在于它简化了系统的高效 实现,而SSD模型的关注原因是灵活性 – SSD是无模式的。本身就指明了其模式,且该模 式会不断变化
2
• 半结构化数据表示
– SSD的数据库是节点的集合,每个节点都是一个叶子节 点或者一个内部节点;
– SSD中的节点表示实体,UML中的节点表示实体集
Page 8
11.2 XML
• 什么是XML(Extensible Markup Language)?
– XML是一种元标记语言,可以定义特定领域内的标记语言的语法结 构。
– XML与HTML不同在于可扩展性,XML不象HTML那样,提供 了一组事先定义好了的标记,而是提供了一个定义标记的标准, 利用这个标准,用户可以根据实际需要定义自己的标记。此外更 重要的是,XML描述的是结构和语义而不是格式。
– 根节点:没有进入的弧,它代表整个数据库,每个节 点都从根可达;
– 叶子节点:与数据相关,数据的类型可以是任意原子 类型,如数字或字符串; – 内部节点:至少有一条向外的弧,每条弧都有一个标 签,指明弧开始处的节点与弧末端的节点之间的关系 。
Page 3
例11.1 关于电影与影星的半结构化数据库
Page 12
• 注意图11-2中数据信息的层次结构 – 该XML文档并不表现联系starsIn – 可以将每位影星对应的电影信息放在<STAR></STAR> 段中,但是这种做法会导致电影信息的冗余(可通过 后面介绍的属性列表方法解决)
Page 13
• 属性
– 一个XML元素可以在开始标签中有属性(名称数值对); <Star ID=“cf”>…</Star> – 属性是另一种标识半结构化数据叶子节点的方 法,把图11-3的<Movie>元素替换为; 还可把两个子节点都当成属性
Page 6
• 信息集成与半结构化数据
– 异构数据集成的解决方案:外加接口 • 接口支持SSD,接口导入分布库数据源的数据,转换为 作为中间数据的SSD并存储; • 数据库中的源数据通过wrapper/adapter组件的翻译功能 进行转换。图11-2
• 另一种解决方案 – 接口只负责将查询传递给数据源,并返回在数据源中 相应模式的引用(接口最后只保留一些指针)
Page 4
• SSD表示
– Root节点:有出无入 • 每个节点都可从root到达,但这个图未必是一棵树 – 其中的cf/mh/sw是三个逻辑节点,即只是为了表示和引 用方便,本身不属于数据库; – 从节点N出发到达节点M的弧上的标签L可担任下面两个 角色之一: • N表示的是一个对象或实体,而M表示N的一个属性 ,那么L表示该属性的名字; • N和M都是对象或实体,L就是从N到M的一个联系的 名字。 例11.2。注意cf到name/address的弧标签是属性名; address到street/city的弧标签是域名;cf到sw的弧标签是 联系名