数据结构与数据库 习题课(3) 2016年12月16日.

Slides:



Advertisements
Similar presentations
第六章 数据库技术基础 本章要点  数据库系统概述 数据库系统概述  关系数据库 关系数据库  数据库设计 数据库设计.
Advertisements

Chapter 3: SQL.
《数据库系统及应用》总结.
2012年9月等级考试辅导 数据库设计基础.
复习: :对任意的x∈A,都有x∈B。 集合A与集合B间的关系 A(B) A B :存在x0∈A,但x0∈B。 A B A B.
高等院校计算机教材系列 数据库原理与应用(第2版) 任课教师:刘雅莉
Access数据库程序设计 总复习.
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
河北化工医药职业技术学院 数据库原理及应用教案.
Access数据库基础 系列教学课件 安丘市职业中专 雷云龙.
第二章 关系数据库 2.1 关系模型概述 2.2 关系数据结构 2.3 关系的完整性 2.4 关系代数 2.5 关系演算 2.6 小结.
An Introduction to Database System An Introduction To Database System
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
数据库原理及设计 --作业.
第三章 管理信息系统的技术基础 主要内容: 数据处理 数据组织 数据库技术 4. 计算机网络.
软件设计师培训.
计算机应用基础 上海大学计算中心.
Database Principles & Applications
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
第2章 关系数据库系统.
第7章 关系数据库规范化理论 7.1 函数依赖 7.2 关系规范化 7.3 关系模式的分解准则.
请写出下列查询语句并给出结果 1、列出student表中所有记录的sname、sex和class列。
作业4讲评.
作业三讲评 04计算机.
实验二 交互式SQL 邓云.
第2章 关系数据库 2.1 关系模型 2.2 关系代数 2.3 查询优化.
第六章 关系数据理论 6.1 问题的提出 6.2 规范化 6.3 数据依赖的公理系统 *6.4 模式的分解 6.5 小结 管理科学与工程学院.
Thanks for the Slides from Renmin U
Principle and Application of Database
国家“十一五”规划教材 数据库原理与应用教程(第3版).
第三章作业讲评 文洁 2012/4/10.
SQL SERVER 一些经典语句 1.
作业3-点评.
段磊 王慧锋 TEL: qq群: 数据库系统原理课程设计 实验环节2 段磊 王慧锋 TEL: qq群:
An Introduction to Database System
作业2&3讲评.
Principle and Application of Database
数据库应用技术 SQL Server 2005.
Thanks for the Slides from Renmin U
第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算** 2.6关系数据库管理系统.
1.1 数据库基本概念 1.2 数据模型 1.3 关系数据库 1.4 Access2010简介
数据库系统概论 An Introduction to Database System
An Introduction to Database System An Introduction to Database System
第6章 关系数据库规范化理论 教学目标:通过本章学习,了解不规范的关系模式存在的问题;理解函数依赖及关系规范化的相关概念,熟悉关系模式的形式化定义;掌握第一范式(1NF)、第二范式(2NF)、第三范式(3NF)及BCNF的定义及相关术语的含义;了解多值依赖及第四范式(4NF)的定义;理解函数依赖公理的内容,掌握属性闭包的定义及求解算法,能够正确判断关系模式的候选码及规范化程度;了解最小函数依赖集的定义及算法,了解对模式分解后无损连接性和函数依赖保持性的判断。
第三章作业点评 助教: 干艳桃、张榆 Contact 干艳桃
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
作业2讲评.
SQL查询语句 蔡海洋.
VB与Access数据库的连接.
第三章 SQL Server数据管理.
复习.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
作业二讲评.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
1.把下面的关系模式转化为E-R图 1)系(系号,系名,电话) 2)教师(工号,姓名,性别,年龄,系号)
1.2 子集、补集、全集习题课.
上杭二中 曾庆华 上杭二中 曾庆华 上杭二中 曾庆华.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
第五章关系数据库设计理论 5.1 数据依赖 5.2 范式 5.3 关系模式的规范化.
An Introduction to Database System
第3章 关系数据库的规范化理论 本章导读: 关系规范化理论研究的是关系模式中各属性之间的依赖关系及其对关系模式性能的影响,探讨“好”的关系模式应该具备的性质,以及达到“好”的关系模式提供的方法。关系规范化理论提供了判断关系逻辑模式优劣的理论标准,是数据库设计的理论基础和关系模式算法工具,用于帮助数据库设计工程师预测和优化模式可能出现的问题。
正弦、余弦函数的性质 华容一中 伍立华 2017年2月24日.
§2 方阵的特征值与特征向量.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
VB与Access数据库的连接.
数据库技术及应用 机械工业出版社 2019/7/24.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
§4.5 最大公因式的矩阵求法( Ⅱ ).
关系数据库 第2章 关系数据结构 关系定义 关系性质 关系模式 关系的完整性 实体完整性 参照完整性 用户定义完整性 关系代数 关系演算
Presentation transcript:

数据结构与数据库 习题课(3) 2016年12月16日

目 录 一、关系模式 二、关系代数 三、SQL 四、关系规范化

E-R 图

学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教 员,其中教授和副教授每人各带若干研究生;每个班有若干学生,每 个学生选修若干课程,每门课可由若干学生选修。请用 E-R 图画出此 学校的概念模型。

学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教 员,其中教授和副教授每人各带若干研究生;每个班有若干学生,每 个学生选修若干课程,每门课可由若干学生选修。请用 E-R 图画出此 学校的概念模型。

学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教 员,其中教授和副教授每人各带若干研究生;每个班有若干学生,每 个学生选修若干课程,每门课可由若干学生选修。请用 E-R 图画出此 学校的概念模型。

某医院病房计算机管理中心需要如下信息: 科室:科名、科地址、科电话 病房:病房号、床位号 医生:姓名、职称、年龄、工作证号 病人:病历号、姓名、性别 其中,一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个,一个病房可以入住多个病人。 设计该计算机管理系统的E-R图

某医院病房计算机管理中心需要如下信息: 科室:科名、科地址、科电话 病房:病房号、床位号 医生:姓名、职称、年龄、工作证号 病人:病历号、姓名、性别 其中,一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个,一个病房可以入住多个病人。 设计该计算机管理系统的E-R图

图书管理中,图书信息包括:书号、书名、作者、出版社;借书证信息包括 :借书证号、姓名、办证日期、身份证号。请画出反映以上两实体间借阅联 系和属性的E-R图,并分别转换为对应的关系模式结构。

图书管理中,图书信息包括:书号、书名、作者、出版社;借书证信息包括 :借书证号、姓名、办证日期、身份证号。请画出反映以上两实体间借阅联 系和属性的E-R图,并分别转换为对应的关系模式结构。

图书管理中,图书信息包括:书号、书名、作者、出版社;借书证信息包括 :借书证号、姓名、办证日期、身份证号。请画出反映以上两实体间借阅联 系和属性的E-R图,并分别转换为对应的关系模式结构。 关系模式:关系的描述称谓关系模式。关系模式通常可以简记R(A1,A2,…,An), 其中R为关系名, A1,A2,…,An为属性名。 在此题中,图书实体和借书证实体可用下面的关系表示(下划线为主码) 图书(书号,书名,作者,出版社) 借书证(借书证号,姓名,办证日期,身份证号)

某企业集团有若干工厂,每个工厂聘用多名职工,且每名职工只能在 一个工厂工作,工厂聘用职工有聘期和工资。工厂的属性有工厂编号、 厂名、地址;职工的属性有职工号、姓名、技术等级。 (1)画出E-R图。 (2)写出关系模式。

一个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用 职工有聘期和工资。工厂的属性有工厂编号、厂名、地址;职工的属 性有职工号、姓名、技术等级。 (1)画出E-R图。 (2)写出关系模式。

一个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用 职工有聘期和工资。工厂的属性有工厂编号、厂名、地址;职工的属 性有职工号、姓名、技术等级。 (1)画出E-R图。 (2)写出关系模式。 P43例2: 学生,课程,学生与课程之间的多对多联系 学生(学号,姓名,性别,专业号,年龄) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) 学生 m 选修 n 课程

某企业集团有若干工厂,每个工厂聘用多名职工,且每名职工只能在 一个工厂工作,工厂聘用职工有聘期和工资。工厂的属性有工厂编号、 厂名、地址;职工的属性有职工号、姓名、技术等级。 (1)画出E-R图。 (2)写出关系模式。 职工(职工号,姓名,技术等级 工厂(工厂编号,厂名,地址) 聘用(职工号,工厂编号,聘期,工资)

关系代数 习题

传统的集合运算:并、差、交、广义笛卡尔积 专门的关系运算:选择、投影、连接、除 1、关系模型的三要素: 关系数据结构 关系操作集合 关系完整性约束 2、关系运算的三要素 运算对象 运算符 运算结果 3、关系代数运算的分类 传统的集合运算:并、差、交、广义笛卡尔积 专门的关系运算:选择、投影、连接、除 实体完整性、 参照完整性、 用户定义完整性

4. 设k元关系R,则σ2>’4’表示( )。 A、从R中挑选第4个分量的值小于2的元组所构成的关系 B、从R中挑选第2个分量值大于4的元组所构成的关系 C、从R中挑选第2个分量值大于第4个分量值的元组所构成的关系 D、σ 2>’4’与R相比,基数不变,元数减少 答案:B 5、设关系R和S的结构相同,且各有10个元组,那么这两个关系的并操作结果的元组个数为( )。 A、20 B、≤20 C、10 D、≤10 答案:B

分析: 并、交、差要求关系R 、S具有相同的目,(即两个关系都有n个 属性),相应的属性取自同一个域。 答案:A 6. 分析:C 在有n个顶点的无向完全图中,每一个顶点都有一条边与其它 某一顶点相连,所以每一个顶点有n-1条边与其他n-1个顶点相连, 总计n个顶点有n(n-1)条边。但在无向图中,顶点i到顶点j与顶点j到 顶点i是同一条边,所以总共有n(n-1)/2条边。 分析: 并、交、差要求关系R 、S具有相同的目,(即两个关系都有n个 属性),相应的属性取自同一个域。 答案:A

7、设关系R、S、W各有10个元组,那么这3关系的自然联接的元组个数为( )。 A、10 B、30 C、1000 D、不确定(与计算结果有关) 答案:D 8、下列式子中,不正确的是( )。 A、R-S=R-(R∩S) B、R=(R-S)∪(R∩S) C、R∩S=S-(S-R) D、R∩S=S-(R-S) 答案:D

A、πD,B(R)为取属性值为D,B的两列组成新关系 B、π4,2(R)为取属性值为4,2的两列组成新关系 9、设4元关系R(A,B,C,D), 则( )。 A、πD,B(R)为取属性值为D,B的两列组成新关系 B、π4,2(R)为取属性值为4,2的两列组成新关系 C、πD,B(R)和π4,2(R)是等价的 D、πD,B(R)与π4,2(R)不是等价的 答案:C 10、对表进行水平方向的分割用的运算是 () 。 A、交 B、投影 C、选择 D、连接 分析:投影操作主要是从列的角度进行运算 答案:C

11、若有关系选课(学号,课号,成绩),对于每一门课,教室是固定的。已知有50个学生选修了课x,则当课x换教室时,需要修改的元组有()。 A、1个 B、3个 C、50个 D、100个 答案:A

11、若有关系选课(学号,课号,成绩),对于每一门课,教室是固定的。已知有50个学生选修了课x,则当课x换教室时,需要修改的元组有()。 A、1个 B、3个 C、50个 D、100个 答案:A

11、

答案: 基本关系的性质

SQL

作业题解析 3.2 建立4个表 3.3 1) 求供应工程 J1 零件的供应商号码 SNO ; CREATE TABLE S (SNO C(2) UNIQUE, SNAME C(6), CITY C(4)); CREATE TABLE P(PNO C(2) UNIQUE, PNAME C(6), COLOR C(2), WEIGHT INT); CREATE TABLE J(JNO C(2) UNIQUE, JNAME C(8), CITY C(4)); CREATE TABLE SPJ(SNO C(2), PNO C(2), JNO C(2), QTY INT). 3.3 1) 求供应工程 J1 零件的供应商号码 SNO ; SELECT DIST SNO FROM SPJ WHERE JNO=’J1’ 2) 求供应工程 J1 零件P1的供应商号码 SNO ; SELECT DIST SNO FROM SPJ WHERE JNO=’J1’ AND PNO=’P1’

3) 求供应工程 J1 零件为红色的供应商号码 SNO SELECT SNO FROM SPJ,P WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红' 4)求没有使用天津供应商生产的红色零件的工程号 JNO SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELECT JNO FROM SPJ,P,S WHERE S.CITY='天津' AND COLOR=‘红' AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO) 5) 求至少用了供应商 Sl 所供应的全部零件的工程号 JNO 不存在这样的零件Y,供应商S1生产了它,而工程X没有用(不存在工程X使用)。 Select DIST JNO from SPJ SPJX where not exist ( select * from SPJ SPJY where SPJY.SNO='S1' AND not exist (select * from SPJ SPJZ where SPJZ.JNO=SPJX.JNO AND SPJZ.PNO=SPJY.PNO));

3.4 1) 统计每种零件的供应总量: Select PNO, sum(Qty) from SPJ group by PNO 2) 零件供应总量在1000以上的供应商名 Select SNAME from S where SNO in (Select SNO from SPJ group by SNO having Sum(Qty) >=1000) 3) 在S表中插入一条供应商信息(S6,华天,深圳) INSERT INTO S(SNo, SName, City) VALUES ('S6','华天','深圳') 4) 把全部红色零件改成粉红色 UPDATE P SET Color = '粉红色' where Color = '红色‘ 5) 将s1供应给J1的零件p1改成p2 UPDATE SPJ SET PNO = 'P2' where SNO = 'S1' and JNO = 'J1' and PNO = 'P1‘ 6)删除全部蓝色零件及其相应的SPJ记录 先从表再主表 delete from SPJ where PNO in (select PNO from P where Color = '蓝色') delete from P where [Color] = '蓝色'

练习题 设有关系S(S#,SNAME,SAGE,SEX),C(C#,CNAME),SC(S#, C#,GRADE)。其中S#是学生号,SNAME是学生姓名,SAGE是学生年 龄,SEX是学生的性别,C#是课程号,CNAME是课程名称,GRADE是成 绩。 1、用SQL语句创建S表,声明“S#”为主码,“SNAME”不能为空, “SEX” 的取值为男或女。 2、用SQL语句修改C表中的列CNAME为CNAME char(40)。 3、用SQL语句使用嵌套查询,查询出没有选修1号课程的学生学号和 姓名。

1. 2. ALTER TABLE C MODIEY CNAME CHAR(40) 3.

资源 W3School SQL 教程:http://www.w3school.com.cn/sql/ 搜索“著名的 SQL 50题”

数据结构与数据库习题课(三) ——关系规范化 数据结构与数据库习题课(三) ——关系规范化

今要建立关于系、学生、班级、学会诸信息的一个关系数据库。一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。 描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。 描述班级的属性有:班号、专业名、系名、人数、入校年份。 描述系的属性有:系名、系号、系办公室地点、人数。 描述学会的属性有:学会名、成立年份、地点、人数。学生参加某学会有一个入会年份。 请给出关系模式,写出每个关系模式的极小函数依赖集,支出是否存在传递函数依赖,对于函数依赖左部是多属性的情况,讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系的候选码和外部码。

关系模式: (1)学生:S(Sno, Sname, Sbirth, Dept, Class, Rno) (2)班级:C(Class, Pname, Dept, Cnum, Cyear) (3)系:D(Dept, Dno, Office, Dnum) (4)学会:M(Mname, Myear, Maddr, Mnum) (5)学生-学会:SM(Sno, Mname, Smyear)

最小函数依赖集: 定义:如果函数依赖集F满足下列条件,则称F为最小函数依赖集或最小覆盖: (1)F中的任何一个函数依赖的右部仅含有一个属性; (2)F中不存在这样一个函数依赖X→A,使得F与F-{X→A}等价;(即:不存在冗余依赖关系) (3)F中不存在这样一个函数依赖X→A,X有真子集Z使得F-{X→A}∪{Z→A}与F等价。(即:依赖关系左部不存在冗余属性)

最小函数依赖集: 求解方法: (1)用分解的法则,使F中的任何一个函数依赖的右部仅含有一个属性; (2)去掉多余的函数依赖:从第一个函数依赖X→Y开始将其从F中去掉,然后在剩下的函数依赖中求X的闭包X+,看X+是否包含Y,若是,则去掉X→Y;否则不能去掉,依次做下去。直到找不到冗余的函数依赖; 属性X的闭包就是该属性直接或间接推导出的所有属性集合 (3)去掉各依赖左部多余的属性。一个一个地检查函数依赖左部非单个属性的依赖。例如XY→A,若要判Y为多余的,则以X→A代替XY→A是否等价?若是,则Y是多余属性,可以去掉

S(Sno,Sname,Sbirth,Dept,Class,Rno) 最小函数依赖集: S(Sno,Sname,Sbirth,Dept,Class,Rno) 根据现实生活及题中的规则,可以看出有如下的依赖关系: Sno → Sname, Sno → Dept ,Sno → Sbirth ,Sno → Class, Sno → Rno,Class → Dept,Dept → Rno (一个系的同学住同一个宿舍区) (1)把Sno → Sname去掉后,寻找Sno的闭包为Sno, Sbirth, Dept, Class, Rno,不包括Sname,因此Sno → Sname不能去除; (2)把Sno → Dept 去掉后,寻找Sno的闭包为Sno, Sname, Sbirth, Dept, Class, Rno,由Sno → Class → Dept从而包含Dept,因此Sno → Dept 应该去除; (3)同理依次操作。。。 Sno → Rno也可以去除。 最小函数依赖集为: Sno → Sname, Sno → Sbirth, Sno → Class, Class → Dept, Dept → Rno

最小函数依赖集: 同理,可以依次得到各个关系模式的最小函数依赖集: C:Class → Pname, Class → Cnum, Class → Cyear, Pname → Dept (Pname,Cyear) →Class(完全函数依赖) D:Dept → Dno, Dno → Dept, Dno → Office, Dno → Dnum M:Mname → Myear, Mname → Maddr, Mname → Mnum SM:(Sno, Mname) → Smyear(完全函数依赖)

传递函数依赖: (1)对于关系模式S: Sno → Class, 而Class → Dept, Dept → Rno,所以Sno和Dept之间、Class和Rno之间、Sno和Rno之间存在传递函数依赖 (2)对于关系模式C: 由于Class → Pname,Pname → Dept,所以Class和Dept之间存在 传递函数依赖。 (3)对于关系模式D: 不存在传递函数依赖。 (4)对于关系模式M: (5)对于关系模式SM:

候选码、外部码和全码: (1)对于关系模式S: 候选码:Sno 外部码:Dept、Class (2)对于关系模式C: 候选码:Class 候选码:Dept或Dno 无外部码 (4)对于关系模式M: 候选码:Mname (5)对于关系模式SM: 候选码:(Sno, Mname) 外部码:Sno, Mname

B 1.X→Y,当下列哪一条成立时,称为平凡的函数依赖( )。 X ∈Y Y∈X X∩Y=Φ X∩Y≠Φ 2.从关系规范化理论的角度讲,一个只满足1NF的关系可能存在的四方面问题是:数据冗余度大、修改异常、插入异常和 。 删除异常

其中:AB组合构成关系模式的主码,R上存在的函数依赖有(AB)→E,B→C,C→D,分析关系模式R是否达到3NF,如果没有将其分解到3NF。 3. 现有如下关系模式: R(A,B,C,D,E) 其中:AB组合构成关系模式的主码,R上存在的函数依赖有(AB)→E,B→C,C→D,分析关系模式R是否达到3NF,如果没有将其分解到3NF。 R关系中存在非主属性C对主码(AB)的部分函数依赖,非主属性D对主码(AB)的传递函数依赖,所以关系模式R没有达到3NF。分解之后的关系模式为: R1(A,B,E) R2(B,C) R3(C,D)