数据库关系运算.ppt
文本预览下载声明
准则11: 分布独立性。 对于如下两类具体问题: 其一, 原来的DBMS只管理非分布式数据, 现在要引入了分布式数据; 其二, 原来的DBMS能管理分布式数据, 现在要改变原来的数据分布。 在这两种情况下, 由于RDBMS具有特定的数据子语言, 都能使应用程序和终端活动保持逻辑不变性。 准则12: 无破坏准则。 如果一个关系系统具有一个低级(一次一个记录)语言, 该语言不能破坏或绕过完整性准则和用高级关系语言表达的约束条件。 以上这十二条准则都以准则0为基础, 但仅有准则0是不够的。 全关系系统的十二条准则是十分重要的准则, 是关系产品最完备的表述, 理论相当严谨,要求相当苛刻。 小 结 关系数据库系统由于有较为成熟的关系代数理论的有力支持, 因此目前成为数据库应用的主流。 商品化的关系数据库产品越来越多, 既有支持大型应用的, 也有支持一般规模的, 还有面向大众在微机上使用的。 表结构的数据组织方式是关系数据库组织数据的基本形式, 该结构能够提供哪些基本操作, 有什么样的约束, 哪种方式的操作是效率最高的等问题, 是关系数据操作的核心问题。 本章主要介绍了关系数据库的各种操作, 包括传统的集合运算和专门的关系运算。 重点讲述了选择、 投影、 连接三种基本操作, 对关系代数和关系演算完成数据操作的基本过程进行了讨论, 指出各种运算的等价性。 同时介绍了关系操作的等价变换规则, 查询优化方法,对关系系统的概念也做了简单介绍。 习 题 3 1. 解释下列概念: 关系模型、 关系数据库、 主码、 候选码、 外部码。 2. 笛卡尔乘积、 等值连接、 自然连接三种运算有什么不同?试举例说明。 3. 对给定的三个关系模式: S(S#, SN, SA, SE, SD) Key={S#} C(C#, CN, TEACHER) Key={C#} SC(S#, C#, G) Key={S#, C#} 试用关系代数表达式表示下列查询操作。 (1) 检索WU老师讲授的课程号和课程名。 (2) 检索所有女同学和年龄小于20的男同学。 (3) 检索至少选修WU老师所讲授课程中一门课的学生姓名。 (4) 检索LI同学不学的课程的课程名。 (5) 检索至少选修两门课程的学生姓名。 (6) 检索未被选修的课程的课程名。 (7) 检索选修全部课程的学生学号。 (8) 检索选修了WU老师讲授课程的学生号。 (9) 检索选修了WU老师讲授的课程且成绩高于85的学生号。 (10) 检索至少选修WANG同学所学课程的课程号。 (11) 检索选修了C1和C2两门课程的学生姓名。 (12) 检索未选修课程的学生学号。 4. 上题中如果有查询语句: 检索男同学所选修课程的课程名和任课教师姓名, 试给出查询代数表达式, 画出表达式对应的语法树并进行优化。 5. 查询优化的一般规律是什么?其基本步骤有哪些? 6. 对学生选课关系数据库进行如下查询: SELECT CN FROM S, C, SC WHERE S.S#=SC.S# AND SC.C#=C.C# AND S.SD=′MA′ 请问: 此查询的结果是什么?画出关系代数表示的语法树, 并用关系代数表达式优化算法对原始的语法树进行优化处理, 画出优化后的标准语法树。 外连接(续) 例:以学生为主体,查询每个学生及其选修课程的情况 (要求学生信息均保留,用外连接) . 显示:Sno,Sname,Ssex,Sage,Sdept,Cno,Grade Oracle中实现外联接 SELECT Student.Sno,Sname,Ssex, Sage,Sdept,Cno,Grade FROM Student,SC WHERE Student.Sno = SC.Sno(+); 修改基本表 语句格式 ALTER TABLE 表名 [ ADD 新列名 数据类型 [ 完整性约束 ] ] [ DROP 完整性约束名 ] [ MODIFY 列名 数据类型 ]; ADD子句:增加新列和新的完整性约束条件 DROP子句:删除指定的完整性约束条件 MODIFY子句:用于修改列名和数据类型 例题 向R表增加“D”列, S表增加“A”列;其数据类型为CHAR。 ALTER TABLE R ADD D CHAR(1); ALTER
显示全部