2014 春季 信息11,12 DB P,T&A-张祖平 数据库原理、技术及应用 张祖平/Zhang Zuping 电子信息工程系 School of Information Science and Engineering,Central South University , zpzhang@mail.csu.edu.cn 本章小结 关系模型中的相关概念 关系(集合),性质,关系模型,关系数据库, 关系的完整性 三类完整性,实体,参照与用户自定义 关系操作 关系代数(重点) 元组演算 域演算(QBE) 关系系统 四种类型,关系的查询优化 作业 P50 练习题 信息11级 1 3 元组,候选码,关系模式 4 (1),(3)用关系代数与元组演算,(5)关系代数 5 (1) 信息12级 2 3 关系,关系模型,关系系统 4 (2),(4)用关系代数与元组演算,(6)关系代数 5 (2) 域关系演算语言QBE-15 例9 查询有两个人以上选修的课程号。 本查询是在一个表内连接。这个查询就是要显示这样的课程1,它不仅被05001选修,并且也被另一个学生(┑05001)选修了。 域关系演算语言QBE-16 更新操作 修改操作 插入操作 域关系演算语言QBE-17 修改操作 修改操作符为“U.”。在QBE中,关系的主码不允许修改,如果需要修改某个元组的主码,只能先删除该元组,然后再插入新的主码的元组。 域关系演算语言QBE-18 例10 把05001学生的年龄改为18岁。 ① 这是一个简单修改操作,不包含算术表达式,因此可以有两种表示方法。将操作符“U.”放在值上; ② 将操作符“U.”放在关系上; 这是这里,码05001标明要修改的元组。“”标明所在的行是修改后的新值。由于主码是不能修改的,所以即使在第(2)种写法中,系统也不会混淆要修改的属性 域关系演算语言QBE-19 例11 把05001学生的年龄增加1岁。 这个修改操作涉及表达式,所以只能将操作符“U.”放在关系上。 域关系演算语言QBE-20 插入操作 插入操作符为“I.”。新插入的元组必须具有码值,其他属性值可以为空。 例12 把信息系女生05701,姓名张三,年龄17岁存入数据库中。 域关系演算语言QBE-21 删除操作 删除操作符为“D.”。 例13 删除学生05089。 由于SC关系与Student关系之间具有参照关系,为保证参照完整性,删除05089学生后,通常还应删除05089学生选修的全部课程。 关系系统的分类-1 分类依据----依据关系系统支持关系模型的程度不同分类 表式系统 仅支持关系数据结构(即表),最早的链表式系统。 (最小)关系系统 支持:关系数据结构 选择、投影、连接关系操作 一般的关系数据库系统为最小关系如ACCESS,MYSQL等。 关系系统的分类-2 关系上完备的系统 支持:关系数据结构,如所有的关系代数操作 大型数据库系统一般为完备式关系系统,如DB2,ORACLE,SQL SERVER等。 全关系系统 支持:关系模型的所有特征。 特别是数据结构中域的概念,实体完整性和参照完整性。 是理想的关系系统定义,一般现在还没有,是大型数据库系统努力的方向。 关系数据库系统的查询优化-1 关系数据库系统和非过程化的SQL语言能够取得巨大的成功,关键是得益于查询优化技术的实现发展。关系查询优化是影响RDBMS性能的关键因素。 优化对关系系统来说既是挑战又是机遇。所谓挑战是指关系系统为了达到用户可以接受的性能必须进行查询优化。由于关系表达式的语义级别很高,使关系系统可以从关系表达式中分析查询语义,提供了执行查询优化的可能性。这就为关系系统在性能上接近甚至超过非关系系统提供了机遇。 关系数据库系统的查询优化-2 关系系统的查询优化既是RDBMS实现的关键技术又是关系系统的优点所在。它减轻了用户选择存取路径的负担。用户只要提出“干什么”,不必提出“怎么干”。 查询优化的特点不仅在于用户不必考虑如果最好地表达查询以获得较好的效率,而且在于系统可以比用户程序的“优化”做得更好。 关系数据库查询优化的总目标是:选择有效的策略,求得给定关系表达式的值。 关系数据库系统的查询优化-3 实际系统对查询优化的具体实现不尽相同,但一般来说,可以归纳为四个步骤: ① 将查询转换成某种内部表示,通常是语法树。 ② 根据一定的等价变换规则把语法树转换成标准(优化)形式。 ③ 选择低层的操作算法。对于语法树中的每一个操作需要根据存取路径、数据的存储分布、存储数据的聚簇等信息来选择具体的执行算法。 ④ 生成查询计划。 关系数据库系统的查询优化-4 在集中式数据库中,查询的执行开销主要包括: 总代价=I/O代价+C