数据库可选复习资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库系统:指在计算机系统中引入数据库后的系统构成,一般由数据库、DBMS、应用程序、数据库管理员和用户构成。
数据库管理系统简称DBMS,是位于用户和操作系统之间帮助用户建立、使用和管理数据库的数据库管理软件,以对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。视图是从一个或者几个基本表(或视图)导出的一个虚表(3分),数据库中只存放视图的定义,不存放视图对应的数据。是关系数据库提供给用户以多种角度观察数据库中的数据的重要机制。
数据库保护又称数据库控制。包括安全性控制,完整性控制,并发性控制和数据库恢复。外模式也称子模式或用户模式,它是数据库用户看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用相关的数据的逻辑表示
查询超市名为‘南工分店’所销售商品的商品名、产地、价格
select 商品名,产地,价格from 超市,销售,商品
where 销售.超市号=超市.超市号and 销售.商品号=商品.商品号and 超市名='南工分店'
查询所有被在超市销售的商品的商品名、产地、价格,并按商品名和产地排序(序)SELECT 商品名,产地,价格
from 商品 ,销售
where 商品.商品号=销售.商品号 order by 商品名,产地
商品的价格录入有误,现要求把所有商品的价格增加20%
update 商品
set 价格=价格*1.2
查询价格高于商品平均价格的商品的全部信息
SELECT * FROM 商品
WHERE 价格>(select avg(价格) from 商品 );
查询销售某一种商品数量在200---300间的超市号、商品号
SELECT 超市号,商品号 from 销售 where 销售数量 between 200 and 300
查询销售的商品类型在200种以上的超市号、超市名、地址。
select 超市号,超市名,地址
from 超市
where 超市号 in (select 超市号 from 销售 group by 超市号 having count(商品号)>=200)
查找‘0088’号超市销售的商品的商品名、产地、价格
∏商品名,产地,价格(σ超市号=’0088’(销售)∞商品)
查找超市地址在‘朝阳路’的超市所销售商品的商品名、产地、价格
∏商品名,产地,价格(σ地址=’朝阳路’(超市)∞销售∞商品)
查找地址在‘人民路’的超市所销售的产地在‘浙江’的商品的商品名
∏商品名(σ地址=’人民路’(超市)∞销售∞σ产地=‘浙江’(商品))
根据上述规定,写出关系模式R的基本函数依赖;
有三个函数依赖:(商店编号,商品编号) →部门编号
(商店编号,部门编号) →负责人
(商店编号,商品编号) →数量
找出关系模式R的候选码;R的候选码是(商店编号,商品编号)
试问关系模式R最高已经达到第几范式?为什么?
R属于2NF,R不属于3NF。因为R中存在着非主属性“负责人”对候选码(商店编号、商品编号)的传递函数依赖。
如果R不属于3NF,请将R分解成3NF模式集。
将R分解成:R1 (商店编号,商品编号,数量,部门编号)
R2 (商店编号,部门编号,负责人)
将以上的E-R模型转换成关系模型,要求写出每一个关系的主码和外码(如果有)。主码用下划线表示,外码用波浪线表示。
客户(身份证号,客户姓名,联系电话,地址,邮政编码)
业务员(业务员代号,业务员姓名,电话号码)
房地产(房间号,居室数,使用面积,建筑面积,单位,金额,合同号)
合同(合同号,日期,身份证号,业务员代号,付款方式,总金额)
什么是数据库管理系统?
数据库管理系统是位于用户与操作系统之间帮助用户建立、使用和管理数据库的数据管理软件,以对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
什么是外模式?也称为子模式或用户模式,是数据库用户看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用相关的数据的逻辑表示。
简述数据库三级模式结构及他的优点?
外模式,模式,内模式的三级模式结构。优点:
保证了数据的独立性
简单用户接口
有利于数据共享
有利于数据的安全保密
数据库的并发操作会带来哪些问题?
导致数据库不一致性有三个方面:
丢失更新;污读;不可重读
(1)查询在公司号为‘C2’和‘C5’公司兼职的职工的职工号。
(2)查询职工号为‘002’的职工所在的公司及相应的工资。
(1)将所有在“联华公司”工作的职工加薪5﹪。
Update 工作set 工资=工资+工资×0.05 where 公司号=(select 公司号from 公司where 公司名=‘联合公司’)
f(2)查询姓‘李’的职工的详细信息。
Select * from 职工where 职工名like ‘李%’
(3)查询‘上海’的职工所在的公司的公司名。
Select 公司名from 职工,工作where 职工.职工号=工作.职工号and 城市=‘上海’(4)查询所在城市为上海的职工的平均工资Select avg(工资) from 工作,职工where 职工.职工号=工作.职工号and 城市=‘上海’
(5)删除职工号为004的职工信息。Delete from 职工where 职工号=‘005’
(6)输出平均工资大于2000元的的公司名和它的平均工资
select 公司号avg(工资)from 工作,公司where 工作.公司号=公司.公司号group by 公司号having avg(工资)>2000
学校有多名学生,财务处每年要收一次学费。为财务处收学费工作设计一个数据库,包括两个关系
试用SQL语句定义上述表的结构
(1)create 学生(学号char (10)primary key,姓名char(8),专业char(16)入学日期date)
(2)Create 收费(学年char(8),not null,学号char(8),学费float,书费float,总金额float Constraint 收primary key (学年,学号))。