已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章 数据库系统概述基本概念:1.数据模型:数据结构、数据操作、完整性约束2.完整性约束:实体、参照、用户定义3.实体、属性、码4.三级模式结构:外模式、模式、内模式第一章 数据库系统概述4 使用数据库系统有什么有点?P4数据结构化数据的共享性高、冗余度低、易扩充数据独立性高DBMS对数据进行统一的管理和控制6 数据库管理系统的主要功能有哪些?P6数据定义功能数据操纵功能数据库的事务管理和运行管理数据库的建立和维护功能其他功能9 简述数据库系统的三级模式结构,这种结构的优点是什么?P7-9模式(逻辑模式):模式结构的中间层,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。外模式(用户模式):是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。内模式(存储模式):是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。优点:三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。第一章 数据库系统概述10 什么是数据库的逻辑独立性、物理独立性?为什么数据库系统具有数据与程序的独立性?P9逻辑独立性:当模式改变时,由DBA对各个外模式/模式作相应改变,从而保持外模式不变。因此依据外模式所编写的应用程序也可以不必改变。物理独立性:当数据库的存储结构改变时,由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性。数据库之所以能够具有数据与程序的独立性,是由两级映射所提供的逻辑独立性和物理独立性所保证的。11 什么是数据模型?其作用和三要素是什么?P11-12数据模型是对现实世界数据特征的抽象。用来描述数据、组织数据和对数据进行操作的。三要素:数据结构、数据操作、数据的完整性约束条件151617第二章 关系数据库2 解释概念关系:P25定义2.2关系模式:P27关系数据库:P27主键:候选键:外键: P25主属性:3 关系的性质 P26任意两个元组不能完全相同关系中元组的次序是不重要的,次序可以任意交换关系种属性的次序是不重要的,次序可以任意交换同一列中的分量必须来自同一个域,是同一类型的数据属性必须有不同的名称,不同的属性可以出自相同的域每一分量必须取原子量6 关系数据语言的特点和分类 P28特点:具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。分类:关系代数语言、关系演算语言(元组关系演算语言、域关系演算语言)、具有关系代数和关系演算双重特点的语言7 关系模型的完整性规则?在参照完整性中,为什么外键属性的值也可以为空,什么情况下才可以为空?P29实体完整性规则:关系中的元组在主属性上不能有空值;参照完整性规则:外键得知不允许参照不存在的相应表的主键的值;用户定义的完整性规则:用户根据具体应用的语义定义的完整性规则。当外键非本表的主属性时可以取空值。11在下列表中完成相应的操作S (s#,sname,sex,age)C (c#,cname,teacher)SC (s#,c#,grade)(1) 检索LIU老师所授课程的课程号和课程名: c#,cname(teacher=LIU(C)(2) 检索年龄大于22岁的男同学的学号和姓名: s#,sname(sex=男 age22(S)(3) 检索学号为S3的学生所学课程的课程号与任课老师姓名: c#,teacher(s#=S3 (SC) C)(4) 检索WANG同学不学的课程的课程号: c#(C)-c#(sname=WANG(SCS)(5) 检索至少选修LIU老师所授课程中一门课程的女学生的姓名:sname (teacher=LIU(C) SC s#,sname(sex=女( S)(6) 检索全部学生都选修的课程的课程号与课程名: c#, cname,s#(SC C) s#(S)(7) 检索选修课程包含LIU老师所授全部课程的学生的学号: s#, c#(SC) c#(teacher=LIU(C)第三章 关系数据库标准语言SQL1 SQL具有哪些特点?P50综合统一高度非过程化面向集合的操作方式以同一种语法结构提供多种使用方式语言简洁,易学易用8 什么是基本表、视图,两者有什么区别?基本表:本身独立存在的表,一个关系对应一个基本表;视图:从一个或多个基本表或视图导出的表,是关系数据库系统为用户提供从不同角度观察和使用数据库中数据的一种机制。视图是虚表,在数据库中只存放视图的定义,而不存放视图所对应的数据,这些数据仍存放在原来的基本表中。10 是否所有视图都可以更新?为什么?并不是所有视图都可以更新,因为有些视图的更新操作不能唯一地、有意义地转换为对相应基本表的更新。第三章 关系数据库标准语言SQL3建立chap2习题10的各表,包括主键和外键CREATE TABLE S(sno char(6) primary key,sname char(20),status int,city char(20);CREATE TABLE P( pno char(6) primary key, pname char(20), color char(10), weight real);CREATE TABLE J( jno char(6) primary key, jname char(40), city char(20);CREATE TABLE SPJ(sno char(6) foreign key references S(sno),pno char(6) foreign key references P(pno),jno char(6) foreign key references J(jno),qty int,primary key (sno, pno,jno);4 在第3题所建的表中完成下列操作(1)求供应工程J1零件的供应商号码SNO: select distinct sno from SPJ where jno=J1;(2)求供应工程J1零件P1的供应商号码SNO: select sno from SPJ where jno=J1 and pno=P1;(3)求供应工程J1零件为红色的供应商号码SNO: select sno from SPJ where jno=J1 and pno in (select pno from P where color=红);或: select sno from SPJ,P where SPJ.pno=P.pno and SPJ.jno=J1 and P.color=红;(4)求没有使用天津供应商生产的红色零件的工程号JNO:方法一(不相关子查询): select jno from J where jno not in (select jno from SPJ,S,P where SPJ.sno=S.sno and SPJ.pno=P.pno and city=天津 and color=红);(5)求至少使用了供应商S1所供应的全部零件的工程号JNO:P67例3.46select distinct jno from SPJ A wherenot exists (select * from SPJ B where sno=S1 and not exists (select * from SPJ C where C.pno=B.pno and C.jno=A.jno);5建立market 库中的3个表CREATE TABLE customers(customerid char(6) primary key,cname char(20),city char(10);CREATE TABLE goods(goodid char(6) primary key,gname char(20),price real,provider char(20),stocks int,status int);CREATE TABLE orders(orderid char(6) primary key,goodid char(6) foreign key references goods(goodid),customerid char(6) foreign key references customers(customerid),quantity int,ordersum real,date datetime);6针对market数据库完成下列操作(1) 查找所有上海客户的信息 Select * from customers where city=上海;(2) 查找所有商品的名称、库存量、价格及折价25%后的价格,并使用别名discount标识折扣价。结果按价格由低到高排序 Select gname,stocks,price,price*0.75 Discount from goods order by price(3) 查找商品名中包含computer的商品编号、名称及价格 Select goodid,gname,price from goods where gname like %computer%(4) 查找库存量大于100小于500的商品名称、库存量和单价 Select stocks,gname,price from goods where stocks between 100 and 500(5) 查找2007.7.1至2007.12.31期间,订货金额大于30000的所有订单的客户姓名、商品名称、单价、订货数量和订货金额Select cname,gname,price,quantity,ordersumfrom customers,goods,orderswhere customers. customerid=orders. customerid and goods. goodid=orders. goodid and date between2007-7-1and2007-12-31 and ordersum30000(6) 查找订单编号、商品编号、和客户编号,要求按日期对订单进行分组,并只显示订货数量超过200的订单信息 Select customerid, goodid, orderid from orders where quantity200 Group by date, customerid, goodid, orderid(7) 查找所有北京客户的订单信息,要求用不相关查询 Select * from orders where customerid in (Select customerid from customers where city=北京 )(8) 查找不是天津客户的订单信息 Select * from orders where customeid not in (Select customeid from customers where city=天津 )(9) 查找所有西安客户的相关信息以及他们的订单情况 Select c.customerid, cname, city, orderid, goodid, quantity, ordersum,date from customers c,orders o where c.customerid=o.customerid and city=西安UNION Select customerid, cname, city, null, null, null, null, null from customers where city=西安 and customerid not in (select o.customerid from customers c,orders o where c.customerid= o.customerid and city=西安)(10) 将所有的库存量大于500的商品价格下调15% Update goods Set price=price*0.85 where stocks500(11) 将库存量为0的所有商品记录删除 Delete from goods where stocks=0(12) 将新数据插入到商品表中 Insert into goods values(T10056,计算机,5300, 清华同方, 20,0)11 在market库上完成下列操作(1)建立北京客户订单视图CREATE VIEW Bj_orders(orderid,gname,quantity,customerid, cname) AS select orderid,gname,quantity, orders.customerid,cname from orders,customers,goods where customers. customerid=orders.customerid and goods. goodid=orders.goodid and city=beijing(2) 针对(1)中的视图查询客户张三的所有订单信息 Select * from Bj_orders where Cname=张三12 在market数据库上完成下列操作(1) 允许用户李明对orders表进行插入、删除操作GRANT insert,delete on orders to 李明(2) 将查询goods表和修改单价的权限授予用户李四GRANT update(price),select on goods to 李四(3) 将查询goods表的权限授予用户王二,并允许他将此权限授予他人GRANT select on goods to 王二 with grant option第四章 存储过程和触发器1 什么是存储过程?为什么要使用存储过程?P89存储过程是指经过预先编译的SQL语句的集合,可以以一种可执行的形式永久地存储在数据库中。运行速度快.模块化编程.减少网络通信量.保证系统的安全性2 简述触发器的概念和作用。P95触发器是在满足某个特定条件时自动触发执行的专用存储过程用于保证表中的数据遵循数据库设计者确定的规则和约束5 在market数据库上完成下列操作(1) 编写存储过程shanghai,查看上海客户的信息 Create procedure shanghai As select * from customers where city=上海(2) 便携存储过程goods,查看指定商品的信息,商品编号作为输入参数 CREATE PROC querygoods queryid char(6) AS Select * From goods Where goodid=queryid;(3) 编写存储过程goodssum,查看指定客户的所有订单的订货总金额数,客户编号作为输入参数,订货总金额数作为输出参数。 CREATE PROC goodssum cid char(6), osum int output AS Select osum=sum(ordersum) From orders Where customerid=cid(4) 编写存储过程insertgoods,向goods表中插入一条记录。 Create procedure insertGoods Goodnum char(6), Goodname char(20), Gprice real, Gprovider char(20), Gstocks int, Gstate int As insert into goods values(Goodnum, Goodname, Gprice, Gprovider, Gstocks, Gstate )(5) 在customers表上建立删除触发器,实现customers表和orders表的级联删除 Create trigger C_delete on customers after delete As delete from orders where customerid in (select customerid from deleted)(6) 在orders表上建立插入触发器,当向表中添加一条订货记录时,若订单中的商品状态为整理(status=1),则不能插入该条记录。 Create trigger Goods_insert on orders after insert As if (select status from goods,inserted where goods.goodid=inserted.goodid)=1 begin print 不能插入 Rollback transaction end(7) 在orders表上建立插入触发器,当添加订单时,减少goods表中相应商品的库存量 Create trigger Orders_insert1 on orders after insert As update goods set stocks=stocks - (select quantity from inserted) where goodid in (select goodid from inserted)(8) 在orders表上建立触发器,不允许对订单日期进行修改。 Create trigger Goods_update on orders after update As if update(date) begin print 不能更新日期 Rollback transaction end(9) 若在orders表中添加一条订单记录时,则该订单中的商品必须在goods表中存在,否则不允许添加。 Create trigger Orders_insert2 on orders after insert As if( select count(*) from goods, inserted where goods.goodid=inserted.goodid)=0 begin print 该商品不存在 Rollback transaction end第五章 关系数据库规范化理论1.名词解释P104 函数依赖、平凡函数依赖、非平凡函数依赖、部分函数依赖、完全函数依赖、传递函数依赖P105 候选键、主键、外键、全键、1NF、2NFP107 2NF、BCNFP111 4NFP110 多值依赖4 R(商店编号,商品编号,数量,部门编号,负责人)规定:每个商店的每种商品只在一个部门销售; 每个商店的每个部门只有一个负责人; 每个商店的每种商品只有一个库存数量。(1)写出关系R的基本函数依赖: (商店编号,商品编号) 库存数量 (商店编号,商品编号) 部门编号 (商店编号,部门编号) 负责人(2) 关系模式R达到了第几范式?为什么? 因为关系R的键是(商店编号,商品编号) 而所有非主属性均对键是完全函数依赖。 但存在传递函数依赖:(商店编号,商品编号) (商店编号,部门编号)(商店编号,部门编号) 负责人(商店编号,商品编号) 负责人(3) 如果R不属于3NF,将R分解成3NF模式集 R1(商店编号,商品编号,部门编号,数量) R2(商店编号,部门编号,负责人)5. 给定关系SC为第几范式?是否存在插入、删除异常?若存在,说明发生原因。将他分解为高一级范式后能否解决操作异常问题? 插入异常:某个教师如未代课,则不能插入该教师的信息。 删除异常:删除教授某一门课的所有教师的信息会导致该课程信息的丢失。 因为存在部分与传递函数依赖,所以 关系SC键(SNO,CNO) 函数依赖: (SNO,CNO)Grade,Iname CNO Ctitle Iname Iloca 分解为高一级范式,要消除部分函数依赖: SC1(SNO,CNO,Grade,Iname,Ilocal) SC2(CNO,Ctitle) 由于仍存在传递函数依赖Iname Iloca ,所以不能解决异常。11. 建立订货系统的数据库关系模式顾客信息(顾客号,地址,赊购限额,余额,折扣)订单信息(订单号,顾客号,收货地
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024运输委托合同协议书委托承运协议
- 二零二五版风力发电变压器租赁及技术支持协议3篇
- 2024版汽车轮胎维修销售合同范本
- 对现代农庄建设的绿色设计理念与节能力提升策略的研究
- 2025年度创新型民间抵押借款服务标准合同4篇
- 提升客户服务质量的关键因素
- 2025年度汽车买卖合同中的全面质量担保承诺3篇
- 二零二五版物流企业人才培训与引进合同3篇
- 智能家居系统与人工智能的跨界融合
- 提升汇报质量的五个关键步骤
- 2024-2025学年山东省潍坊市高一上册1月期末考试数学检测试题(附解析)
- 数学-湖南省新高考教学教研联盟(长郡二十校联盟)2024-2025学年2025届高三上学期第一次预热演练试题和答案
- 2020-2024年安徽省初中学业水平考试中考物理试卷(5年真题+答案解析)
- 部编版5年级语文下册第五单元学历案
- 高考介词练习(附答案)
- 单位就业人员登记表
- 卫生监督协管-医疗机构监督
- 记录片21世纪禁爱指南
- 腰椎间盘的诊断证明书
- 移动商务内容运营(吴洪贵)任务七 裂变传播
- 单级倒立摆系统建模与控制器设计
评论
0/150
提交评论