首页 > 知识点讲解
       继承、引用类型
知识路径: > 数据库主流应用技术 > 数据库主流应用技术 > 数据库主流应用技术 > 面向对象数据库 > 对象关系数据库系统 > 
被考次数:1次     被考频率:低频率     总体答错率:48%     知识难度系数:     
相关知识点:9个      
        在这里的介绍是基于SQL:1999标准的,不过也会提到一些在这个标准中没有出现的,但是在SQL标准的未来版本中会介绍到的一些特征。
        继承可以在类型的级别上进行,也可以在表的级别上进行。首先考虑类型的继承。
        假定我们有如下的人的类型定义:
        
        如果要在数据库中对那些是学生或教师的人分别存储一些额外的信息,由于学生和教师都是人,因而可以使用类型继承来定义学生和教师类型如下:
        
        Student和Teacher都继承了Person的属性,即name和address。Student和Teacher都被称为Person的子类型,Person是Student的父类型,同时也是Teacher的父类型。
        现在假定要存储关于助教的信息,这些助教既是学生又是教师,甚至可能是在不同的系里。如果类型系统支持多重继承,可以为助教定义一个类型如下:
        
        TeacherAssistant将继承Student和Teacher的所有属性,但是却有一个问题,因为name、address和department同时存在于Student和Teacher中。
        name和address属性实际上是从同一个来源即Person继承来的,因此同时从Student和Teacher中都继承这两个属性不会引起冲突。然而department属性在Student和Teacher中分别都有定义,事实上,一个助教可能是某个系的学生同时又是另一个系的教师。为了避免两次出现的department之间的冲突,可以使用as子句将它们重新命名,如对TeacherAssistant类型定义如下:
        
        在SQL:1999中只支持单继承,即一个类型只能继承一种类型,使用的语法如同前面提到的例子。TeacherAssistant例子中的多重继承在SQL:1999中是不支持的。
        我们通过下面的例子来说明表继承。
        假设定义people表如下:
        
        那么再定义表students和teachers作为people的子表,如下:
        
        子表的类型必须是父表类型的子类型,因此people中的每一个属性均出现在子表中。
        当我们声明students和teachers作为people的子表时,每一个students和teachers中出现的元组也隐式存在于people中。所以,如果一个查询用到people表,它将查找的不仅仅是直接插入到这个表中的元组,而且还包含插入到它的子表students和teachers中的元组。然而,只有出现在people中的属性才可以被访问。
        面向对象的程序设计语言提供了应用对象的能力,类型的一个属性可以是对一个指定类型的对象的引用。我们可以定义一个Department类型,它有一个name字段和一个引用到Person类型的head字段,然后定义一个Department类型的表departments,如下所示:
        
        在上面的定义中,使用关键词scope来限定了引用范围。这里,引用限制在people表中的元组。
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2011年上半年
   数据库系统工程..
   上午试卷 综合知识
第62题
选择题
以下的SQL语句,Student与Person之间的关系是(62)。

48%
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有