欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第2章对象关系数据库PPT讲稿.ppt

    • 资源ID:49859019       资源大小:1.41MB        全文页数:25页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第2章对象关系数据库PPT讲稿.ppt

    第2章对象关系数据库第1页,共25页,编辑于2022年,星期一2.1 嵌套关系嵌套关系是表示现实数据一种最自然的方式,它是对象关系模型的基础例子:文档检索系统,文档信息包括*文档的标题:原子属性*作者:非原子属性*日期:非原子属性(年、月、日)*关键词:非原子属性第2页,共25页,编辑于2022年,星期一2.1 嵌套关系1NF关系flatDoc第3页,共25页,编辑于2022年,星期一2.1 嵌套关系嵌套关系NestedDoc第4页,共25页,编辑于2022年,星期一2.1 嵌套关系在关系flatDoc中存在以下多值依赖关系title authortitle keywordtitle day month year可以分解为满足4NF范式的关系模式(title,autor)(title,keyword)(title,day,month,year)第5页,共25页,编辑于2022年,星期一2.1 嵌套关系分解后的关系第6页,共25页,编辑于2022年,星期一2.2 对象关系模型-SQL32.2.1结构类型和集合类型create type MyString char varyingcreate type MyDate(day integer,month char(10),year integer)create type Document(name MyString,autohr-list setof(MyString),date MyDate,keyword-list setof(MyString)create table doc of type Documentcreate table doc(name MyString,author-list setof(MyString),date MyDate,keyword-list setof(MyString)第7页,共25页,编辑于2022年,星期一2.2 对象关系模型-SQL32.2.1结构类型和集合类型(续)允许将一个属性定义为一个集合:如关系表doc中的属性author-list和keyword-list允许将一个属性定义为一个结构:如doc中的属性date类型定义要被记录在数据库模式中,而在持久性编程语言种类型定义不被保存在数据库中聚集属性类型:setof,array,multiset,list-author-array MyString10-print-runs multiset(integer)第8页,共25页,编辑于2022年,星期一2.2.2 继承-类型继承类型继承 create type Person(name MyString,social-security integer)create type Student(degree MyString,department MyString)under Person create type Teacher(salary integer,department MyString)under Person类型Student和Teacher是类型Person的子型(subtype),而类型Person是类型Student和Teacher的超型(Supertype)第9页,共25页,编辑于2022年,星期一2.2.2 继承-(2)多继承create type TeachingAssitant under Student,Teacher继承冲突问题类型Person中的属性name和social-security:由于来自相同的超型,不会发生冲突类型Student和Teacher中继承的属性department:发生冲突,因为一个TA可能是计算机系的学生,但是自动化系的教学助手解决手段:换名子句 create type TeachingAssitant under Student with(department as student-dept),Teacher with(department as teacher-dept)第10页,共25页,编辑于2022年,星期一2.2.2 继承-(3)表级继承表级继承语句-create table people(name MyString,social-secrity integer)-create table students(degree Mystring,department Mystring)under people-create table teachers(salary integer,department MyString)under peoplestudents和teachers称之为people的 子 表,people称 之 为 students和teachers的超表超表people中的每个元组对应于子表student和teachers中的至多一个元组(对于所有的继承属性具有相同属性值)在子表students和teachers中的每个元组必须对应于超类people中的一个元组(对于所有继承属性来讲具有相同值)定义一个teaching-asitants子表 create table teaching-assitants under students with(department as student-dept),teachers with(department as teacher-dept)第11页,共25页,编辑于2022年,星期一2.2.3 引用类型*引用类型:面向对象系统提供对对象的引用功能,对象的属性类型可以是对一个特定类型对象的引用。-author-list setof(ref(Person):是一个Person对象引用的集合-author-list setof(Person )-两者间的区别:前一个是引用语义,而后一个是拷贝语义第12页,共25页,编辑于2022年,星期一2.2.3 引用类型head ref(Person)scope people引用限制在people表中的元组,与外码类似 insert into department values(CS,null)update departmentsset head=(select ref(p)from people as p where name=John)where name=CS通过查询得到元组的标识符的值,设置给事先创建好的空引用的元组。第13页,共25页,编辑于2022年,星期一2.2.3 引用类型create table people of Person ref is oid system generated 或 ref is oid user generated自引用属性(self-referential attribute)类型create type Person(name varchar(20)primary key,address varchar(20)ref from(name)create table people of Personref is oid derived使用主码值作为标识符,可在类型定义中使用ref from子句第14页,共25页,编辑于2022年,星期一2.3 基于复杂类型的查询 基于关系值属性的查询 路径表达式 Nesting(聚组)Unnesting(析组)函数和过程第15页,共25页,编辑于2022年,星期一(1)基于关系值属性的查询例子模式 create table pdoc(name MyString,author-list setof(ref(people),date MyDate,keyword-list setof(MyString)查找含有”database”的所有文档(where子句中包含关系值属性)select name from pdoc where “database”in keyword-list-关系值属性找出每个文档的名字和作者(from子句中包含关系值属性)select B.name,Y.name from pdoc as B,B.author-list as Y找出每个文档的名字和作者数目(select子句中包含关系值属性)select name,count(author-list)from pdoc第16页,共25页,编辑于2022年,星期一(2)路径表达式例子模式 create table master-students(advisor ref(people)under people查找所有研究生导师名字(select子句使用路径表达式)select master-students.advisor.name from master-students查找所有文档的所有作者的名字(from子句使用路径表达式)select Y.name select pdoc.author-list.name from pdoc.author-list as Y from pdoc查找导师为“Zhang”的所有研究生名字(where子句使用路径表达式)select name from master-students where master-students.advisor.name=“Zhang”第17页,共25页,编辑于2022年,星期一(3)聚组与析组析组:将一个嵌套关系转换为一个非嵌套关系 select name,A as author,date.day,date.month,date.year,K as keyword from doc.author-list as A,doc.keyword-list as K聚组:将一个非嵌套关系转换为一个嵌套关系 select title,author,(day,month,year)as date,set(keyword)as keyword-list from flat-doc groupby title,author,date第18页,共25页,编辑于2022年,星期一(4)函数和过程使用SQL来定义函数 create function author-count(one-doc Document)returns integer as select count(author-list)from one-doc使用编程语言来定义函数效率高、功能强需使用外部编译器,并通过数据库系统来装载和运行如果在函数中存在Bug的话,则可能破坏数据库的内部结构,它绕过了数据库系统的存取控制功能用编程语言编写的函数不同于嵌套SQL:嵌套SQL的查询是通过用户程序传递到数据库系统来运行的,然后结果被一次一个元组地返回到用户程序,这样的话,用户编写的代码从来也不必存取数据库当一个SQL查询调用一个编程语言编写的函数时,或者是函数代码被数据库系统本身运行,或者是函数所需的数据被拷贝到一个独立的数据空间中。后者引起非常高的开销,而前者将产生潜在的安全性和完整性问题。第19页,共25页,编辑于2022年,星期一(4)函数和过程SQL函数定义举例:create function author-count(title varchar(20)returns integerbegindeclare a-count integer;select count(author)into a-countfrom authorswhere authors.title=titlereturn a-count;endSQL函数调用举例:select titlefrom books4where author-count(title)1第20页,共25页,编辑于2022年,星期一(4)函数和过程SQL过程定义举例:create procedure author-count-proc(in title varchar(20),out a-count integer)beginselect count(author)into a-countfrom authorswhere authors.title=titleendSQL过程调用举例:declare a-count integer;call author-count-proc(Database System Concepts,a-count);第21页,共25页,编辑于2022年,星期一2.4 基于复杂元组的操作 复杂值元组的表示 (“salesplan”,set(“Smith”,“Jones”),(1,”April”,89),set(“profit”,”strategy”)插入 insert into doc values(“salesplan”,set(“Smith”,“Jones”),(1,”April”,89),set(“profit”,”strategy”)查询 select title,date from doc where title in set(“salesplan”,“opportunities”,“risks”)修改 update doc set author-list=set(“Smith”,“Jones”)where title=“salesplan”第22页,共25页,编辑于2022年,星期一2.5 面向对象和对象关系数据库的比较基于持久性编程语言的面向对象数据库系统面向对象数据库系统语言的过程性(目前仍不能很好支持说明性查询语言)、难以进行高层优化、查询能力弱强大的计算能力安全性问题:程序的错误造成数据库破坏持久性数据的存取效率高建立在关系模型之上的对象关系数据库系统对象关系数据库系统语言的说明性、高效的查询优化、查询能力强受限的语言功能保护数据不受程序的破坏由于存在数据格式与类型转换,数据存取效率相对要低第23页,共25页,编辑于2022年,星期一2.5 面向对象和对象关系数据库的比较(续)DBMS矩阵数据查询简单 复杂强弱1234第一象限:简单数据、没有查询文件系统:COBOL第二象限:简单数据、有查询关系数据库系统:商业数据处理年营业额:80亿美元,25%速度递增第三象限:复杂数据、没有查询面向对象的数据库系统和持久性编程语言系统:工程管理现在的年营业额:8000万美元,50%速度递增第四象限:复杂数据、有查询对象关系数据库系统:多媒体2005年市场规模(见左图)1100150第24页,共25页,编辑于2022年,星期一讨论题假设你受聘为顾问,为你的客户选择一个数据库系统。对于下面这些应用中,声明你将推荐哪种类型的数据库(RDB,OODB,ORDB,不要指定某个商业产品),并且说明你的推荐是正确的。一个为飞机制造商开发的计算机辅助设计系统。一个为政府机关设计的对为候选人做的捐进行跟踪的系统。一个支持电影制作的信息系统。第25页,共25页,编辑于2022年,星期一

    注意事项

    本文(第2章对象关系数据库PPT讲稿.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开