资源描述:
《第2章 对象关系数据库.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第2章对象关系数据库嵌套关系对象关系模型复杂对象的查询基于复杂元组的操作面向对象和对象关系数据库的比较2.1嵌套关系嵌套关系是表示现实数据一种最自然的方式,它是对象关系模型的基础例子:文档检索系统,文档信息包括文档的标题:原子属性作者 :非原子属性日期 :非原子属性(年、月、日)关键词 :非原子属性2.1嵌套关系1NF关系flatDoc2.1嵌套关系嵌套关系NestedDoc2.1嵌套关系在关系flatDoc中存在以下多值依赖关系titleauthortitlekeywordtitledaymonthyear可以分解为满足4NF范式的关系模式(title
2、,autor)(title,keyword)(title,day,month,year)2.1嵌套关系分解后的关系2.2对象关系模型--SQL32.2.1结构类型和集合类型createtypeMyStringcharvaryingcreatetypeMyDate(dayinteger,monthchar(10),yearinteger)createtypeDocument(nameMyString,autohr-listsetof(MyString),dateMyDate,keyword-listsetof(MyString))createtabledocoftypeDoc
3、umentcreatetabledoc(nameMyString,author-listsetof(MyString),dateMyDate,keyword-listsetof(MyString))2.2对象关系模型--SQL32.2.1结构类型和集合类型(续)允许将一个属性定义为一个集合:如关系表doc中的属性author-list和keyword-list允许将一个属性定义为一个结构:如doc中的属性date类型定义要被记录在数据库模式中,而在持久性编程语言种类型定义不被保存在数据库中聚集属性类型:setof,array,multiset,listauthor-arra
4、yMyString[10]print-runsmultiset(integer)2.2.2继承--类型继承类型继承createtypePerson(nameMyString,social-securityinteger)createtypeStudent(degreeMyString,departmentMyString)underPersoncreatetypeTeacher(salaryinteger,departmentMyString)underPerson类型Student和Teacher是类型Person的子型(subtype),而类型Person是类型Stud
5、ent和Teacher的超型(Supertype)2.2.2继承--(2)多继承createtypeTeachingAssitantunderStudent,Teacher继承冲突问题类型Person中的属性name和social-security:由于来自相同的超型,不会发生冲突类型Student和Teacher中继承的属性department:发生冲突,因为一个TA可能是计算机系的学生,但是自动化系的教学助手解决手段:换名子句createtypeTeachingAssitantunderStudentwith(departmentasstudent-dept),Teac
6、herwith(departmentasteacher-dept)2.2.2继承--(3)表级继承表级继承语句createtablepeople(nameMyString,social-secrityinteger)createtablestudents(degreeMystring,departmentMystring)underpeoplecreatetableteachers(salaryinteger,departmentMyString)underpeoplestudents和teachers称之为people的子表,people称之为students和teach
7、ers的超表超表people中的每个元组对应于子表student和teachers中的至多一个元组(对于所有的继承属性具有相同属性值)在子表students和teachers中的每个元组必须对应于超类people中的一个元组(对于所有继承属性来讲具有相同值)定义一个teaching-asitants子表createtableteaching-assitantsunderstudentswith(departmentasstudent-dept),teacherswith(departmentasteacher-de