数据库原理习题课.ppt

上传人:李医生 文档编号:8917960 上传时间:2021-01-24 格式:PPT 页数:17 大小:139KB
返回 下载 相关 举报
数据库原理习题课.ppt_第1页
第1页 / 共17页
数据库原理习题课.ppt_第2页
第2页 / 共17页
数据库原理习题课.ppt_第3页
第3页 / 共17页
数据库原理习题课.ppt_第4页
第4页 / 共17页
数据库原理习题课.ppt_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《数据库原理习题课.ppt》由会员分享,可在线阅读,更多相关《数据库原理习题课.ppt(17页珍藏版)》请在三一文库上搜索。

1、数据库原理习题课,大纲,设计E-R图 SQL语句及关系代数,设计E-R图,设计E-R图 根据题目给定条件,分析实体和联系,设计E-R图。 解题思路 第一步、根据题意,找出(强弱)实体集及各自属性与关键字(码)。 第二步、根据题意,找出实体集间的两两联系,确定联系类型。 第三步、根据题意,判断是否需要表明参与度。,例一,某工厂生产多种产品,每种产品由不同的零件组装而成,有的零件可用在不同的产品上。产品有产品号和产品名两个属性,零件有零件号和零件名两个属性。根据语义设计E-R模型,并将E-R模型转换成关系模式,要求关系模式主码加下划线表示。 产品(产品号,产品名) 零件(零件号,零件名) 组装(产

2、品号,零件号),例二,工商银行有许多支行,每个具有唯一的名称,拥有一定的资产,坐落在某个城市的某条街道上。银行要记录每位客户的客户标识(如身份证号)、客户名、客户地址、联系电话等信息。银行的主要业务是办理客户的存款和贷款。每位客户可以有多个存款账户,并可以多次存取;存款账户需要存放账号和存款余额等信息;每次存取款需要登记日期和存取款金额。一位客户可以多次贷款,但每笔贷款只能贷给一个客户。每笔贷款海域特定的支行相关联。每笔贷款需要登记贷款号、贷款日期和贷款金额。,(1)确定实体集,工商银行有许多支行,每个具有唯一的名称,拥有一定的资产,坐落在某个城市的某条街道上。 银行要记录每位客户的客户标识(

3、如身份证号)、客户名、客户地址、联系电话等信息。 存款账户需要存放账号和存款余额等信息; 每笔贷款需要登记贷款号、贷款日期和贷款金额。,(2)确定联系及其类型,银行的主要业务是办理客户的存款和贷款。 每位客户可以有多个存款账户,并可以多次存取;每次存取款需要登记日期和存取款金额。 一位客户可以多次贷款,但每笔贷款只能贷给一个客户。 每笔贷款海域特定的支行相关联。,属于,借贷,支行,客户,存款账户,贷款,业务,业务,存取,登记日期,存款金额,1,N,N,N,N,N,1,N,1,1,(3)确定参与度,存款账户-支行:账户与支行之间的多对一联系,其中账户全部参与。 贷款-支行:贷款与支行之间的多对一

4、联系,其中贷款全部参与。 借贷-客户:客户与贷款之间的多对一联系,其中贷款全部参与。 在的多对一关系中,所有1端变为箭头,全部参与的变为N端变为双线,属于,借贷,支行,客户,存款账户,贷款,业务,业务,存取,登记日期,存款金额,SQL语句及关系代数,SQL语句 sql 语句就是对数据库进行操作的一种语言。 主要操作是选择、插入、删除和更新: 选择:select * from table1 where 条件范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 条件范围 更

5、新:update table1 set field1=value1 where 条件范围 其中,选择操作是最常用且复杂的操作。 连接查询 Select * from table1 table2 where table1.X = table2.X and 条件范围 X是联系两个表的属性,一般是表的主码或外码。 嵌套查询 Select * from table1 where XX in (select XX from table1 where 条件范围) 括号内搜索的XX属性的结果作为外面搜索的条件,SQL语句及关系代数,关系代数 关系代数是过程化查询语言,研究关系数据库语言的数学建模工具。 关系

6、代数的运算对象是关系(表),运算结果亦为关系(表)。 主要包括选择、投影、并、差和笛卡尔积。还会用到交、除、(等值)连接和自然连接。 所有关系运算都可以用选择运算和投影运算表示。 关系运算形式化 (运算符号)(属性)(条件范围)关系): 学号,分数( 课程号=C112(学习) 学号,姓名,课程名,分数(学号,姓名( 专业=英语(学生) 学习 课程号,课程名(课程),解题思路,先看查询属性 从属性找表 依据限制条件范围 相同表内限制的同层(where and) 不同表内限制的分层(where in),例一,现有关系数据库如下: 学生(学号,姓名,性别,专业) 课程(课程号,课程名,学分) 学习(

7、学号,课程号,分数) 分别用关系代数表达式和SQL语句实现下列15小题: 1检索所有选修了课程号为“C112”的课程的学生的学号和分数;,SQL语句: SELECT 学号,分数 FROM 学习 WHERE 课程号=C112 关系代数: 学号,分数( 课程号=C112(学习),例一,现有关系数据库如下: 学生(学号,姓名,性别,专业) 课程(课程号,课程名,学分) 学习(学号,课程号,分数) 分别用关系代数表达式和SQL语句实现下列15小题: 2检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数;,SQL语句: SELECT 学生.学号,姓名,课程名,分数 FROM 学生,学习,课

8、程 WHERE 学习.学号=学生.学号 AND 学习.课程号=课程.课程号 AND 专业=英语 关系代数: 学号,姓名,课程名,分数(学号,姓名( 专业=英语(学生) 学习 课程号,课程名(课程) 学号,姓名,课程名,分数(专业=英语(学生 学习 课程),例一,现有关系数据库如下: 学生(学号,姓名,性别,专业) 课程(课程号,课程名,学分) 学习(学号,课程号,分数) 分别用关系代数表达式和SQL语句实现下列15小题: 3检索“数据库原理”课程成绩高于90分的所有学生的学号、姓名、专业和分数;,SQL语句: SELECT 学生.学号,姓名,专业,分数 FROM 学生,学习,课程 WHERE

9、学生.学号=学习.学号 AND 学习.课程号=课程.课程号 AND分数90 AND 课程名=数据库原理 关系代数: 学号,姓名,专业,分数(学号,姓名,专业(学生) ( 分数90(学习) 课程号,课程名( 课程名=数据库原理(课程),例一,现有关系数据库如下: 学生(学号,姓名,性别,专业) 课程(课程号,课程名,学分) 学习(学号,课程号,分数) 分别用关系代数表达式和SQL语句实现下列15小题: 4检索没学课程号为“C135”课程的学生信息,包括学号,姓名和专业;,SQL语句: SELECT 学号,姓名,专业 FROM 学生 WHERE 学号 NOT IN (SELECT 学号 FROM

10、学习 WHERE 课程号=C135) 关系代数: (学号(学生)-学号( 课程号=C135 (学习) (学号,姓名,专业(学生),例一,现有关系数据库如下: 学生(学号,姓名,性别,专业) 课程(课程号,课程名,学分) 学习(学号,课程号,分数) 分别用关系代数表达式和SQL语句实现下列15小题: 5检索至少学过课程号为“C135”和“C219”的课程的学生的信息,包括学号、姓名和专业。,SQL语句: SELECT 学号,姓名,专业 FROM 学生 WHERE 学号 IN (SELECT X1.学号 FROM 学习 X1,学习 X2 WHERE X1.学号=X2.学号 AND X1.课程号=C135AND X2.课程号=C219) 关系代数: (学号,课程号(学习)课程号( 课程号=C135课程号=C219 (课程) 学号,姓名,专业(学生),The end,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1