04735数据库系统原理(知识点快速记忆)

一 概述

数据管理系统DBMS
数据库系统DBS
简述DBA的的主要职责
数据模型的分类
三级模式、两级映像
数据独立性
简述外模式、模式映像及如何保证数据的逻辑独立性
简述物理数据独立性(模式/内模式映像)
二 关系数据库

关系数据库的基本术语:
关系代数
函数依赖
三大范式
关系模型
关系模型的优点
完整性约束
实体完整性
参照完整性约束
用户定义完整性约束
弱实体与强实体。
三 数据库设计
数据库应用软件设计与开发过程:
数据库设计步骤
数据库设计方法
数据库设计阶段任务
数据库设计过程
简述需求分析阶段的主要工作

概念结构设计E-R
四 SQL

select…into语句
将选定列的值直接存储到局部变量中,注意其结果集只能有一行数据。其语法格式为:
简述数据定义语言DDL

简述数据操纵语言的功能及主要SQL语句。
简述数据控制语言 DCL
索引定义
查询
简述SQL调用及主要目的

简述使用视图的优点

游标
简述 在MysSQL中使用游标的具体步骤
简述游标的注意事项
简述嵌入式SQL中引入游标的原因
简述变量的含义及其属性
简述在存储过程中局部变量与用户变量的区别。
简述声明局部变量的注意事项
六 完整性、安全、触发器、事务、锁
完整性约束
第一节 数据库完整性
一、完整性约束条件的作用对象
实体完整性约束
实体完整性约束
主键需要遵守的规则
2.参照完整性约束
3.用户自定义完整性约束
简述触发器的概念及其作用。
账号权限
简述用户修改数据库模式的权限
事务和锁
封锁的概念
简述事务的概念与事务的特征。
可串行性,串行调整
并发操作带来哪些问题
封锁的级别的内容
简述封锁的工作原理
数据库系统投入运行后,有哪些维护工作?
简述数据库的可恢复性

数据仓库
数据挖掘
大数据
简述层次模型的数据结构和特点

设计题关系代数题
模拟一
模拟二
202010
202008
201804
201710
201610
201604
综合应用题
202008
202010
201910
201904
201810
201804
201710
201610
201604
201510无
模拟一

模拟二
关键词

一 概述

数据:描述事物的符号记录
数据库:长期存储在计算机内有组织、可共享统一管理的数据集合

数据管理系统DBMS
DBMS,专门用于建立和管理数据库的一套软件,介于用户、应用程序和操作系统之间
20世纪60年代后期,
系统能把数据把数据库从被破坏、不正确,必须具有将数据库从错误状态恢复到某一已知的正确 状态功能,这就是数据库的故障恢复。
主要功能:数据的定义功能、数据库操纵功能、数据库保护功能、数据库的维护功能、数据字典
子模式描述语言定义子模式
数据库的运行管理功能
保证数据的安全性、可靠性、实现并发使用,
数组组织、存储和管理功能
为了提高数据的存取效率,对数据进行分类存储

数据库系统DBS
数据库系统:是指在计算机中引入数据库技术之后的系统,包括数据库 、数据库管理系统及相关实用工具、应用程序、数据库管理员和用户
提供了备份和恢复性保证数据的可靠性和完整性
运行的最小逻辑工作单位是事务,
用户:DBA、专用用户、应用程序员、终端用户
数据库的恢复、数据库的并发控制、数据库的完整性、数据库的安全性
主要张职责:
定义模式;定义内模式;与用户的联络;定义安全性规则,对用户访问数据库的授权;定义完整性规则,监督数据库运行;数据库的转储与恢复工作。
数据库系统的开放性:支持数据库语言标准;在网络上支持标准网络协议;系统具有良好可移植性、可连续性、可扩展性和互操作性。

人工管理阶段:~20th50中以前
数据不保存
由使用数据的应用程序管理数据
数据面向应用
数据不共享
数据不具有独立性
记录内无结构,整体无结构

文档存储:20th50后~20th60中,设备独立性
可以长期保存,
有专业数据管理软件–文件系统
共享性差、冗余度大。
记录内有结构,整体无结构
独立性差
存储格式可以多样化,适合存储系统日志等非结构化数据。(多样化意味着无序)数据

三、数据库系统阶段 20th60后
特点:
1.数据集成,是数据库管理系统的主要目的
2.数据共享度高
3.数据冗余度小(多余,无用的)
4.数据一致性,不一致的原因是冗余度高
5.数据独立性高
6.实施统一管理与控制
安全性:保护数据库,以防止不合法的使用造成的数据泄密、更改或破坏。
完整性:正确性、有效性和相容性
并发控制:
故障恢复:从错误状态恢复到某一已知正确的状态
7.减少应用程序开发与维护的工作量

命令行客户端,图形化界面管理工具,应用程序等称为客户端,前台或表示层,主要完成与数据库使用者的交互任务;
而数据库管理系统则称之为服务器,后台或数据层,其主要负责数据管理。

直观设计法。
规范设计法:一类较为普遍、常用的数据库设计方法
计算机辅助设计法
@用户变量,@@系统变量

set赋值

CASE:计算机辅助软件工具
ODBC:开发数据库互联,数据库应用程序、驱动程序管理器、DB驱动程序、数据库

数据库与web技术相结合出现了web数据库系统

简述DBA的的主要职责
定义模式;定义内模式;与用户的联络;定义安全性规则,对用户访问数据库的授权;定义完整性规则,监督数据库运行;数据库的转储与恢复工作。

数据模型的分类
数据模型是对现实世界数据特征的抽象,描述的是数据的共性内容
数据模型三要素
数据结构:静态特性
数据操作:动态特性
数据约束:数据间的语法和主义关联
是模型化数据和信息的工具,也是数据库系统的核心和基础

第一类
概念模型:用来描述现实世界的事物,与具体的计算机系统无关 ,最大限度地满足应用需求
最典型的概念模型是实体联系(E-R),
最大限度也满足应用需求
实体-联系模型
现实世界 ->抽象
概念模型(信息世界)->转换、组织
具体DBMS支持的逻辑模型和物理模型(机器世界)

概念设计三步:进行数据抽象,设计局部概念模型
将局部概念模型统合成概念模型
评审
概念层数据模型:实体、属性、键码

第二类
逻辑层数据模型:关系模型(二维表格结构来表示实体与实体之间联系)
层次(IMS):树形、网状(DBTG)、关系(1970IBM E.F.Codd)、面向对象
优点:关系模型是建立在严格的数学概念基础上的;
关系模型的概念单一;
关系模型的存取路径对用户透明,从而有更高的安全性

物理层数据模型:存储介质上的组织结构,物理模型是数据库最底层的抽象,它确定数据的物理存储结构、数据存取路径以及调整、优化数据库的性能。

外部模型:用来表达用户使用观点的数据库局部逻辑结构的模型。
内部模型:用来表达数据库物理结构的模型

三级模式、两级映像
1.模式
模式也称为概念模式或逻辑模式(程序员,基本表,整体逻辑结构)
全体数据的逻辑结构和特征的描述
DBMS提供模式描述语言来严格定义模式
2.外模式
外模式是也称子模式或用户模式,(用户,视图)
局部数据的逻辑结构和特征的描述,用户视图
DBMS提供子模式描述语言来严格定义子模式
3.内模式 内模式也称为存储模式(Storage Schema)(硬件,存储文件)
对数据库中数据物理结构和存储方式的描述,内部视图或存储视图

优点:数据库系统的三级模式是数据的三个抽象级别,它把数据的具体组织留给数据库系统管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表现方式与存储方式。

数据独立性
数据独立性是指应用程序和数据库的数据结构之间相互独立,不受影响。在修改数据结构时尽可能不修改应用程序,则称系统达到了数据独立性。

简述外模式、模式映像及如何保证数据的逻辑独立性
外模式/模式映像定义了各个外模式与概念模式之间的映像关系,这些映像定义通常在各自的外模式中加以描述。数据库系统的模式如若发生改变,数据库管理员(DBA)通常会对各个外模式/模式的映像做出相应的改变,以使那些对用户可见的外模式保持不变,从而应用程序的编程人员就不必去修改那些依据数据的外模式所编写的应用程序,如此实现了外模式不受概念模式变化的影响,并保证了数据与程序的逻辑独立性。

简述物理数据独立性(模式/内模式映像)
如果数据库的内模式要修改即数据库的物理结构有变化,那么只对逻辑模式/内模式映像作相应的修改,可以使逻辑模式尽可能保持不变。也就是对内模式的修改尽量不影响逻辑模式,当然对于外模式的应用程序的影响更小,我们称数据库达到物理数据独立性。

二 关系数据库
SQL是1974年由Boyce和Chamberlin提出
1975-·1979在IBM的System R上实现
1986年成为国际标准

关系实际上就是关系模式在某一时刻的状态或内容。
也就是说,关系模式是型,关系是它的值
关系数据库系统的优点之一是用户通常不需要进行数据存储和存取方法的设计

不好的关系模式可能存在的问题()
数据冗余:存储太多相同的数据,导致存储空间浪费 和潜在数据不一致及修改麻烦
更新异常、插入异常、删除异常(插入不了应该插入的数据)

插入异常:由于关系模型设计不当所引起,由于码值的一部分为空而不能将有用的信息作为一个元组插入到关系中。

可以区别的客观存在的事物称为实体
数据等价是指两个数据库实例应表示没告诉人信息内容用无损分解衡量

逻辑模型是从数据库实现的观点出发,对数据库建模

关系模型三要素:关系数据结构、关系操作集合和关系完整性约束
关系有三种类型:基本关系、查询表、视图表。

关系数据库的6个性质:
1)每一列的分量是同一类型的数据,来自同一个域。
2)不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。
3)列的顺序无所谓,即列的次序可以任意交换。
4)任意两个元组不能完全相同。
5)行的顺序无所谓,即行的次序可以任意交换。
6)分量必须取原子值,即每一个分量必须是不可分的数据项。

关系数据库的基本术语:

表、关系,一人二维数据结构,基本关系、查询关系、视图表
列、字段、属性
行、元组、记录,一行数据等于一个元组或一条记录:相同的数据类型,元组的个数称为基数
分量:元组中的一个属性值成为分量,属性的个数称为元数或者度
码、键:(由一个或几个属性组成的集合,不一定是唯一一个属性)学号、身份证号
超键:如果在关系的一个码中移去某个属性,它仍然是这个关系的码,在关系中能唯一标识元组的属性集称为关系模式的超键。超键也是一个属性集,不一定只是一个属性。一定含有唯一标识的属性集合(学号、性别)(身份证号、身高)
候选键:不含有多余属性的的超键,比如(学号、身份证号)不能有性别、身高
主键:用户从很多候选键选出来的一个键就是只键,只有一个。
全码、全键:所有属性集合都是这个关系的主码、主键
主属性:关系中包含在任何一个候选码中的属性
非主属性:不包含任何一个候选码中的属性
参照关系和被参照关系
外码所在的关系(表格)是参照关系,从关系(学生)
以外码作为主码的关系是被参照关系,主属性在的表格是主关系。(专业)
关系模式:
关系模式是静态的、稳定的,关系是动态的、随时间不断变化的。
关系

关系代数
关系代数是关系操作语言的一种传统表示形式,它是以集合代数为基本发展起来的。

并集U:两都相加,相同的只保留一份
差集-:前者减去和后者相同部分,如(1、2、3、4)-(3、4、5) =(1、2)
交集A:保留两者趋同部分
笛卡尔积X:两者结合,列数相加,行数相乘

σ 条件1 ∧ 条件2 (表名) 水平分割
π 列名 (表名) 垂直分割,相同的会合起来
π 列名1, 列名2 (σ 条件1 ∧ 条件2 (表名))
等值联结R S 2=2:

比较第二列是否相等,列数相加
自然联结:取消重复列

函数依赖
若A1—nB
则B→A
完全函数依赖:(SNO,CNO) →GRADE,缺一不可,左部不可约
部分函数依赖:(SNO,SNAME) →SSEX,其中(SNO) →SSEX,SNAME不是必须
传递函数依赖:BNO →PNAME,PNAME →PADDRESS

三大范式
第一范式:不可再分的基本元素
第二范式:所有非主属性都依赖于候选关键字,消除部分函数依赖
第三范式:任何非主属性不依赖于其他非主属性,,消除传递函数依赖

数据库的生命期:分析与设计阶段、实现与操作阶段。
分解无损连接性BCNF;保持函数依赖3NF,既无损连接又保持函数依赖,可以达到3NF,不一定BCNF

关系模型
简述多对多联系
如果对于实体集A中每一个实体,实体集中B有中N个实体与之联系,对于实体集B中每一个实体,实体集中有M个实体与之联系,记为N:M
关系数据库基本特征:使用关系数据模型组织数据
以关系模型作为数据的逻辑模型

关系模型的优点
关系模型是建立在严格的数学概念的基础上的。
概念单一
统一用关系来实现实体和实体之间的联系
对数据的检索和更新也是通过关系
存储路径对用户透明,提高了数据的独立和更好的保密性,简化了程序员的工作和数据库开发建立工作

完整性约束
实体完整性
通过主键约束和候选键约束现实,即主属性不能是空值NULL

参照完整性约束
实体之间存在的联系;外码和主码之间的引用规则
若属性F是基本关系R的外码,它与基本关系S的主码K相对应,则对于R中每个元组在F上的值只谢两种可能,要么取空值,要么等于S中某个元组的主码值。

用户定义完整性约束
用户定义的完整性约束是针对某一应用环境的完整性约束条件,反映了某一具体应用所涉及的数据应满足的要求。

关系模型提供定义和检验这类完整性规则的机制,其目的是用统一的方式由系统来处理它们,不再由应用程序来完成这项工作。
在实际系统中,这类完整性规则一般在建立数据库的同时进行定义,也可以由应用编程人员在各模块的具体编程中通过程序进行检查和控制。

弱实体与强实体。
一个实体对另一个实体的依赖关系,也就是一个实体的存在必须以另一个实体的存在这前提,前为弱,后为强。

三 数据库设计

一、需求分析
1.确定数据库范围
即确定数据库应支持哪些功能

2.应用过程分析
应用过程分析是指了解并分析数据与数据处理间的关系。
数据应用过程可以借助数据流程图或其他信息及应用结构图形表示。

数据库设计是从用户对数据的需求出发,研究并构造数据库的过程
数据库设计的目标:满足应用功能需要,良好的数据库性能。
功能调试和性能调试
一、数据库的生命周期
分析与设计阶段:需求分析、概念设计、逻辑设计和物理设计
实现与操作阶段:数据库的实现、操作与监督、修改与调整

数据库应用软件设计与开发过程:
可分为需求分析、系统功能与数据库设计、系统功能与数据库实现、测试与维护阶段
阶段

实现:进行应用程序的编制和调试
行为设计

数据库设计步骤
需求分析阶段:
综合各个用户的应用需求,是起点
概念结构设计方法,E-R图
形成独立于机器特点、独立于各个关系数据库管理系统产品的概念模型阶段
局部信息结构设计
全局信息结构设计
逻辑结构设计方法
将概念结构转换为某个DBMS所支持的数据模型(如关系模型),将E-R图转成关系模式
物理设计方法:
确定数据库在物理设备上的存储结构和存取方法。
聚集:将相关数据集中存放的物理存储技术
数据实施阶段:
加载数据
应用程序设计
数据库试运行

数据库运行和维护

数据库设计方法
直观设计法:最原始的
规范设计法:
新奥尔良设计方法。
基于E-R模型的数据库设计方法
基于第三范式设计方法
计算机辅助设计法:计算机辅助软件工程(CASE),

数据库设计阶段任务
系统调查
可行性分析
确定数据库系统的总目标

数据库设计过程
1.需求分析阶段
2.结构设计阶段:模式或子模式设计,包括概念结构设计、逻辑结构设计和物理结构设计
3.行为设计阶段:确定用户的为行和动作,功能设计、事务设计、程序设计
4.数据实施阶段:
5.数据库运行和维护阶段

简述需求分析阶段的主要工作
分析用户活动,产生业务流程图
确定系统范围,产生系统关系图
分析用户活动涉及的数据产生数据流图
分析系统数据,产生数据字典

编写需求分析报告
1.数据库的应用功能目标
2.标明不同用户视力范围
3.应用处理过程需求说明
数据流程图
任务分类表
数据操作特征表
操作过程说明书

概念结构设计E-R
概念结构设计的常用方法:实体分析法、属性综合法
逻辑结构设计的步骤
属性冲突
命名冲突:同名异义,异名同义
结构冲突

四 SQL
什么是T-SQL:sql server专有的sql语言扩展来弥补sql标准的不足之处。
ODBC:为应用程序提供了一套CLI(调用层接口)函数库存和基于DLL(支态链接库)的运行环境

1.LAMP(Linux+Apache+MySQL+PHP/perl/python)
2.WAMP(Windows+Apache+MySQL+PHP/perl/python)
视图:从一个或几个基本表导出的表,其本身不独立存储在数据库中

select…into语句
将选定列的值直接存储到局部变量中,注意其结果集只能有一行数据。其语法格式为:

简述数据定义语言DDL
定义SQL模式,基本表、视图和索引
CREATE
ALTER
DROP

简述数据操纵语言的功能及主要SQL语句。
用于操纵数据库中的各种对象,特别是检索和修改数据。
主要的SQL语句有:
SELECT:检索数据
INSERT:插入数据
UPDATE:修改数据
DLETE:删除数据
CREATE VIEW view_name (
id, name) as SELECT id, name FROM user;

简述数据控制语言 DCL
用来定义访问权限和安全级别。
GRANT
REVOKE

常量:字符串常量
ASCII字符串常量
Unicode字符串常量
数据值常量
整数常量和浮点数常量
十六进制常量:前X

索引定义
索引是以文件的形式存储的
普通索引index
唯一索引unique
主键primary key
CREATE INDEX
SHOW INDEX
DROP INDEX

查询
交叉连接/笛卡尔积CROSS JOIN
CROSS JOIN
返回两张表的乘积

内连接INNER JOIN
只返回满足条件的记录
内连接分为等值连接、非等值连接和自连接。

外连接LEFT JION
有时也可以输出不满足连接条件的无级信息
左表为基表,右表为参考表,返回结果包含左表所有的行。若左表有
数据右表没有数据,则显示左表中的数据右表中的数据显示为空。

子查询返回一个表,一定要用in

简述SQL调用及主要目的
SQL调用包括SQL例程和调用规则。
主要目的:
提高SQL的灵活性
提高SQL的有效性
提高SQL的共享性
使SQL具有更多的高级语言特征

简述使用视图的优点
集中分散数据
简化查询语句
重用sql语句
保护数据安全
共享所需数据
更改数据格式

五 存储过程、存储函数
存储过程:是一组为了完成某项特定功能的SQL语句集,实质上是一段存储在数据中的代码。

数据规范化主要避免数据不一致,消除数据冗余
SET 为局部变量赋值

存储过程是一组为了完成某项特定功能的SQL语句集,实质上是一段存储在数据中的代码。
存储过程的优点:
1.可增强SQL语言的功能和灵活性
2.良好的封装性
3.高性能
4.可减少网络流量
5.存储过程可作为一种安全机制来确保数据库的安全性和数据的完整性
安全、执行性能、网络性能、代码重用
DELIMITER C R E A T E P R O C E D U R E s p u p d a t e e m a i l ( ′ J a c k ′ , ′ J a c k @ g m a i l . c o m ′ ) C R E A T E P R O C E D U R E s p u p d a t e e m a i l ( I N u s e r n a m e V A R C H A R ( 50 ) , I N e m a i l v a r c h a r ( 50 ) ) B E G I N U P D A T E c o n t e n t S E T e m a i l = e m a i l W H E R E u s e r n a m e = u s e r n a m e ; E N D CREATE PROCEDURE sp_update_email('Jack', 'Jack@gmail.com')CREATE PROCEDURE sp_update_email(IN user_name VARCHAR(50), IN e_mail varchar(50)) BEGIN UPDATE content SET email=e_mail WHERE username=user_name; END CREATEPROCEDUREspupdateemail(Jack,Jack@gmail.com)CREATEPROCEDUREspupdateemail(INusernameVARCHAR(50),INemailvarchar(50))BEGINUPDATEcontentSETemail=emailWHEREusername=username;END
CALL sp_update_email(‘Jack’, ‘Jack@gmail.com’)
drop procedure

CREATE FUNCTION GetName(id INT)
RETURNS VARCHAR(255)
BEGIN
RETURN (SELECT name FROM auth_permission WHERE id=id limit 1);
END$$
SELECT GetName(5)

游标
游标是一个被SELECT语句检索出来的结果集。
存储了游标后,用户或程序可以需要滚动或浏览其中的数据。
DECLARE cursor_name CURSOR FOR select_statement

declare sex_cur CURSOR for select sid,sex from student;

简述 在MysSQL中使用游标的具体步骤
(1)声明游标,DECLARE CURSOR cursor_name
(2)打开游标,OPEN cursor_name
(3)读取游标,FETCH cursor_name INTO
(4)关闭游标,CLOSE cursor_name

简述游标的注意事项
只能用于存储过程或者或存储函数中,不单独在查询操作中使用
在存储过程或者存储函数中可以定义多个游标,但在BEGIN…END语句块中的每个游标的名字必须是唯一的
游标不是一条SELECT语句,是被SELECT语句检索出来的结果集。

简述嵌入式SQL中引入游标的原因
由于SQL语句处理的是记录集合,而主语言语句一次只能处理一个记录,因此需要用游标机制把集合操作转换成单词录处理方式。

简述变量的含义及其属性
变量用于临时存储数据,变量中的数据可以随着程序的运行而变化;变量属性有名字、数据类型

简述在存储过程中局部变量与用户变量的区别。
局部变量声明明没有使用@符号,并且它只能被声明它的BEGINEND语句块所使用
用户变量在声明时,会在其名称前面使用@符号,同时已经声明的用户变量存在于整个会话中。

简述声明局部变量的注意事项
只能在存储过程体的BEGIN…END语句块中声明
必须在存储过程体的开头处声明。
作用的范围仅限于声明它的BEGIN…END语句块。
局部变量不同于用户变量,两者间的区别是:局部变量声明时,在其前面没有使用@符号,而用户变量在声明时,会使用@符号。

六 完整性、安全、触发器、事务、锁
数据库设计、数据库实现、测试、维护
完整性:
正确性(数据格式,比如性别只能男女)、
相容性(数据与数据之间)
一致性(一改皆改)

当触发器涉及对表自身的更新操作时,只能使用 before update 触发器,而 after update 触发器会报错。

防止错误的数据进入数据库
丢失更新:1级封锁
读脏数据 :2级封锁
不可重复读:3级封锁
主存取路:主键索引
辅助存取路径:辅助键索引

查看表索引
SHOW INDEX FROM table_name;

完整性约束

第一节 数据库完整性
一、完整性约束条件的作用对象
实体完整性约束
1.列级约束
 对数据类型的约,束长度、精度等
 对数据格式的约束,如学号的第四位为入学年份。
 对取值范围和取值集合的约束
 对空值的约束
2.元组约束
 指各字段之间的约束,例如开始日期小于结束日期
3.表级约束
 指若干元组之间、关系之间的联系约束

实体完整性约束
(1)实体完整性约束是指关系的主属性和候选键,即主码的组成不能为空,也就是关系的主属性不能是空值NULL,
(2)关系对应于现实世界中的实体集,而现实世界中的实体是可区分的,即说明每个实体具有唯一标识。
(3)在关系模型中,是使用主码作为唯一标识的,若假设主码取空,则说明这个实体不可标识即不可区分

在各种完整性约束的定义说明之前加关键字CONSTRAINT和该约束
主键需要遵守的规则
每一个表只能定义一个主键。
主键的值,也称为键值,必须能够唯一标志表中的每一行记录,且不能为NULL。也就是说,表中两个不同的行在主键上不能具有相同的值。
复合主键不能包含不必要的多余列
一个列名在复合主键中只能出现一次

2.参照完整性约束
实体之间存在联系
若属性F是基本关系R的外码,它与基本关系S的主码K相对应,则对于R中每个元组在F上的值只谢两种可能,要么取空值,要么等于S中某个元组的主码值。
教师(职工号,姓名,性别,职称,系编号)
系(系编号,系名,办公地点,办公电话)

3.用户自定义完整性约束
非空约束、CHECK约束、触发器
反映某一具体应用所涉及的数据应满足的要求
用户定义的完整性约束是针对某一应用环境的完整性约束条件,它反映了某一具体应用环境的完整性约束条件,反映了某一具体应用所涉及的数据应满足的要求。
关系模型提供定义和检验这类完整性规则的机制,其目的是用统一的方式由系统来处理它们,不再由应用程序来完成这项工作。
在实际系统中,这类完整性规则一般在建立数据库的同时进行定义,也可以由应用编程人员在各模块的具体编程中通过程序进行检查和控制。

命名完整性约束
CONSTRAINT <约束名字> <约束条件>
create table student
(
sno INT(6)
constraint c1 check (sno between 100 and 1000), //sno只能为100到1000
sex char(2)
constraint c2 check (sex in (‘男’,‘女’)), //sex必须为男或者女
constraint sno primary key (sno) //主键约束
)

简述触发器的概念及其作用。
触发器是用户定义在关系表上的一类由事件驱动的数据库对象,也是一种保证数据完整性的方法。触发器一旦定义,无须用户调用,任何对表的修改操作均为数据库服务器自动激活相应的触发器。触发器与表的关系十分密切,
其主要作用是实现主键和外键不能保证的复杂的参照完整性和数据的一致性,从而有效地保护表中的数据。

CREATE TRIGGER AFTER INSERT
ON employees FOR EACH ROW SET @str=‘one customer added!’;
SELECT @trigger1

账号权限

数据库恢复、与备份相对应的是系统维护和管理操作

.修改用户账号
RENAME USER old_user TO new_user[, old_user TO new_user]…
例6.8
RENAME USER ‘zhangsan’@‘localhost’ TO ‘wangwu’@‘localhost’;
DROP USER; //删除用户

权限转移
WITH GRANT OPTION

简述用户修改数据库模式的权限
索引(INDEX)权限、资源(RESOURCE)权限、修改(ALTERATION)权限、撤销(DROP)权限

事务和锁
只有使用了innoDB引擎的数据库或表才支持事务

封锁的概念
锁:允许或阻止一个事务对一个数据对象的存取特权
是一个与数据项相关的变量,对可能应用于该数据项上的操作而言,锁描述了该数据项的状态。
封锁的粒度:封锁对象的大小称为封锁的粒度

对未完成的事务作UNDO处理,对已提交事务但更新还保留在缓冲区的事务进行REDO

简述事务的概念与事务的特征。
事务是用户定义的一个数据操作序列,这些操作可作为一个完整的工作单元,要么全都执行,要么全不执行,是一个不可分割的单元。
原子性:不可分割的工作单位(DBMS的事务管理子系统)
一致性:完整性约束,从一个到另一个一致性状态(编写事务的应用程序员)(完整性子系统)
隔离性:不能被其他事务干扰(DBMS的并发控制子系统,先后单独执行的结果一样)
持续性:一旦提交,永久性(由DBMS的恢复管理子系统实现的)

两段封锁法

可串行性,串行调整
一组事务的一个调度就是它们的基本操作的一种排序
通常,在数据库系统中,可串行性就是并发执行的正确性准则,即当
且仅当一组事务的并发执行调度是可串行化的,才认为它们是正确的

并发操作带来哪些问题
丢失更新、读脏数据、不可重复读

封锁的级别的内容
0级封锁,封锁的事务不重复写其他非0级封锁事务的未提交的更新数据
1级封锁,被封锁的事务不允许重写未提交的更新数据,还防止了丢失更新。
2级封锁,被封锁的事务即不重写也不读未提交的更新数据,还防止了读脏数据。
3级封锁,被封锁的事务不读未提交的更新数据 ,不写任何未提交数据,防止不可重读。
写、非0、非提交、更新
与、未提交、更新
写、读、未提交、更新
读、未提交、更新、写、未提交

简述封锁的工作原理
(1)若事务T对数据D加了X锁,则所有别的事务对数据D的锁都必须等待直到事务T释放锁。
(2)若事务T对数据D加了S锁,则别的事务还可以对数据D请求S锁,而对数据D的X锁请求必须等待直到事务T释放锁。
(3)对读请求S锁,对更新(插入、删除、修改)请求X锁。
(4)事务一直占有获得的锁直到结束 (COMMIT或者ROLLBACK)时释放。

数据库系统投入运行后,有哪些维护工作?
数据库的转储和恢复
数据库安全性、完整性控制
数据库性能的监督、分析和改进
数据库的重组织和重构造。

简述数据库的可恢复性
系统能把数据把数据库从被破坏、不正确状态,恢复到最后一个正确的状态,DBMS的这种功能称为数据库的可恢复性。


SQL1:1986
SQL2:1989
SQL3:1999

一、第一代数据库系统
代表:
1.IBM公司的IMS,1969,层次模型
2.CODASYL的DBTG,1970,网状模型

二、第二代数据库系统
关系数据库系统
IBM公司的E.F.Codd,1970
主要成果:
 奠定了关系模型的理论基础
 研究了关系数据语言
 研制了大量的RDBMS的原型
20世纪80年代之后,几乎所有新开发的DBMS均是关系数据库系统

第三代数据库存系统:面向对象
与分布式处理技术相结合:分布式数据库系统
与并行处理技术相结合:并行数据库系统;
人工智能技术:演绎数据库、知识库、主动数据库;
多媒体技术:多媒体数据库系统;
模糊技术相结合:模糊数据库系统;
移动通信技术:移动数据库系统;
web技术相结合:web数据库。

操作型处理OLPT
分析型处理OLAP

数据仓库
数据仓库:粒度(影响数据量的大小)、分割、维
面向主题、集成性、数据非易失性、数据的时变性

数据挖掘
数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中发现并提取隐藏在其中的、人们事先不知道的、但又是潜在有用的信息和知识的一种技术。它又被称为数据库中的知识发现,其与数据库、数据统计、机器学习、模式识别、模糊教学等诸多技术相关。
需要数据预处理
数据挖掘具备的几种功能:
1.概念描述:归纳总结
2.关联分析。Apriori、FP-Grows
3.分类与预测。决策树模型、神经网络模型、线性回归等
4.聚类。K-Means、GMM,聚类:把数据按照相似性归纳成若干类别。
5.孤立点检测
6.趋势和演变分析
孤立点:指数据中与整体表现行为不一致数据集合

大数据
1、一般意义上,大数据是指无法在可容忍的时间内用现有信息技术和软、硬件工具对其进行感知、获取、管理、处理的服务的数据集合。

定义:通常被认为是数据量很大,数据形式多样化的数据。
特征:大量、多样、快速、价值低
大多快低

二、大数据管理技术典型代表
1.大数据存储
2.NoSQL数据管理系统:以互联网大数据应用为背景发展起来的分布式数据管理系统 。
(1)键值(Key-Value)存储
Tokyo Cabinet/Tyrant、Redis和Oracle BDB等
(2)文档存储:非结构化数据,不需要定义表结构,但可以像定义表结构一样使用
CouchDB、MongoDB等
(3)列存储:以列为单位来存储数据的,擅长以列为单位读入数据,比较适合对某一列进行随机查询处理
Cassandra、Hbase等
(4)图存储:结点、属性、边
3.MapReduce技术
是一种并行编程模型,将计算过程分为Map阶段和Reduce阶段。应用于大规模廉价集群上的大数据并行处理

简述层次模型的数据结构和特点
(1)层次模型的数据结构是一棵“有向树”,树的每个结点对应一个记录集,也就是现实世界的实体集。
(2)有且仅有一个结点没有父结点,它称作根结点。
(3)其他结点仅有一个父结点。

设计题关系代数题
σ 条件 (表名)
π 列名 (表名)
∧ 与
∨ 或
count总个数
max最大值
min最小值
sum总和
avg平均值
having;由于WHERE无法与聚合函数GROUP BY COUNT一起使用
R∩S = R - (R-S)
A∪B

模拟一
房屋(房屋编号, 小区名, 租金, 地区)
会员(会员编号, 会员名, 性别, 所在区, 联系电话)
租赁(房屋编号, 会员编号, 租借日期, 到期日期)
使用关系代数查询"万科城"小区的记到信息
σ 小区名=“万科城” (房屋);
使用关系代数查询会员的会员名和联系电话
π 会员名, 联系电话 (会员);
使用SQL语句查询每个相同地区房屋数量
SELECT 地区, COUNT(*)AS ‘房屋数量’ FROM (房屋) GROUP BY 地区;
使用SQL语句查询“李红”租过的房屋编号和租借日期
SELECT 房屋编号, 租借日期 FROM 租赁 WHERE 会员编号 IN
(SELECT 会员编号 FROM 会员 WHERE 会员名=‘李红’);
使用SQL语句创建一个“男”会员的视图VSH,视图包括:会员编号, 会员名, 性别, 联系电话
CREATE VIEW VSH (会员编号, 会员名, 性别, 联系电话)
AS SELECT 会员编号, 会员名, 性别, 联系电话 FROM 会员 WHERE 性别=‘男’;

模拟二
商品(商品编号, 商品名, 价格, 生产日期);
采购员(编号, 姓名,性别, 联系电话);
采购(商品编号,编号,采购日期, 采购数量);
使用关系代数查询“女”采购员的所有信息。
σ 性别=‘女’(采购员);
使用关系代数查询所有商品的商品名和生产日期
π 商品名, 生产日期 (商品);
使用SQL语言查询价格在10~15之间的商品编号
SELECT 商品编号 FROM 商品 WHERE 价格 BETWEEN 10 AND 15;
SELECT 商品编号 FROM 商品 WHERE 价格 >=10 AND 价格 <=15;
使用SQL语言查"刘聪"采购的商品编号、采购日期和采购数量"(用嵌套查询)
SELECT 商品编号, 采购日期, 采购数量 FROM 采购 WHERE 编号 IN
(SELECT 编号 FROM 采购员 WHERE 姓名 = ‘刘聪’);
使用SQL语言创建一个采购数量大于100的信息视图。商品编号、编号、采购日期
CREATE VIEW VSC1 (商品编号, 编号, 采购日期) AS
SELECT 商品编号, 编号, 采购日期 FROM 采购 WHERE 采购数量>1000;

202010
某学生管理系统的数据库有如下三个关系:
学生(学号,姓名,性别,院系编号)
课程(课程号,课程名,学分)
选修(学号,课程号,成绩)
实现下列操作:
26.使用关系代数查询大于3学分的课程信息。
σ 学分>3 (课程)
27.使用关系代数查询学生的院系编号。
π 院系编号 (学生)
28.使用SQL语句查询每个院系的院系编号、性别及相应性别的人数。
SELECT 院系编号, 性别, COUNT(性别) AS ‘人数’ FROM 学生 GROUP BY 院系编号, 性别;
29.使用SQL语言查询选修了“数据库”课程的学生学号和成绩。
SELECT 学生号, 成绩 FROM 选修 WHERE 课程号 IN (SELECT 课程号 FROM 课程 WHERE 课程名 = ‘数据库’);
30.使用SQL语言删除“001”号学生的选修成绩。
DELETE FROM 学生 WHERE 学号=001;

202008
某学生社团管理系统的数据库包含如下三个
学生(学号, 姓名,年龄,性别,所在系)
协会(协会编号, 协会名,办公地点,负责人)
入会(学号,协会编号,入会日期)
使用关系代数查询"科技"协会的信息
σ 协会名=“科技” (协会)
使用关系代数查询学生的学号,姓名和所在系
π 学号,姓名, 所在系 (学生)
使用SQL语句查询每个相同协会的入会学生数,并按学生数降序排列
SELECT COUNT(学号) AS 入会人数 FROM 入会
GROUP BY 协会编号 ORDER BY COUNT(学号) DESC;
使用SQL语句查询加入协会编号 为"XH4"的学号、姓名和所在系
SELECT 学号, 姓名, 所在系 FROM 学生 WHERE 学号 IN
(SELECT 学号 FROM 入会 WHERE 协会编号 = “XH4”);
使用SQL语句将"自愿者"协会的办公地点改为"F109"
UPDATE 协会 SET 办公地点=“F109” WHERE 协会名=“自愿者”;

201804
某职工管理系统的数据库包括如下关系表:
职工(职工号,姓名,性别,年龄)
工程(工程号,工程名称,预算)
报酬(职工号,工程号,工资)实现下列操作:
使用关系代数查询年龄不在30至50岁之间的职工姓名和性别。
π 姓名, 性别 (σ 年龄<30 ∨ 年龄>50 (职工))
使用SQL语句查询王琦的工资信息,姓名、工程名称、工资
SELECT 姓名, 工程名, 工资 FROM 职工, 报酬, 工程 WHERE
职工.职工号 = 报酬.职工号 AND 报酬.工程号 = 工程.工程号 AND 职工.姓名=‘王琦’;
使用SQL语句按照职工号统计每名职工的总收入
SELECT 职工号, SUM(工资) AS 总收入 FROM 报酬 WHERE GROUP BY 职工号;
使用SQL语句将预算额达到10000元及以上工程的职工工资提高10%
UPDATE 报酬 SET 工资=工资*1.1 WHERE 工程号 IN
(SELECT 工程号 FROM 工程 WHERE 预算 >= 10000);
创建一个职工参加工程项目的视图VPS,视图包括职工号,姓名,工程名和工资
CREATE VIEW VPS (职工号,姓名,工程名, 工资)
AS SELECT 工号.职工号, 姓名,工程名 工资 FROM 职工,工程,报酬
WHERE 职工.职工号 = 报酬.职工号 AND 报酬.工程号 = 工程.工程号

201710
某火车站订票系统数据库表如下:
车次(车号,出发地,目的地,发车日期,开出时刻,剩余座位数,票价)
用户(身份证号,姓名,性别,电话)
订票(订单号,身份证号,车号,订购日期)
实现下列操作: 使用关系代数查询“2017-01-01”从“沈阳站”出发终到“大连站”的剩余座位数。
π 剩余座位数 (σ 发车日期=‘2017-01-01’ ∧ 出发地=‘沈阳阳’ ∧ 目的地=‘大连站’(车次))
使用SQL语言查询订票次数超过20次的身份证号及订票次数。
SELECTT 身份证号, COUNT(身份证号) FROM 订购
ORDER BY 身份证号 HAVING COUNT(身份证号) >20;
用HAVING代替WHERE
使用SQL语言查询“杨鸣”订票信息,并按订购日期降序排序。(用嵌套查询做)
SELECT * FROM 订票 WHERE 身份证号 IN
(SELECT 身份证号 FROM 用户 WHERE 姓名=‘杨鸣’) ORDER BY 订购日期 DESC;
使用SQL语言将“T2567”车次的票价提高5元。
UPDATE 车次 SET 票价=票价+5 WHERE 车号 = ‘T2567’;
使用SQL语言创建视图V_CYD,视图信息包括:车号、出发地、目的地、姓名、订购日期。
CREATE VIEW V_CYD (车号, 出发地, 目的地, 姓名, 订购日期) AS
SELECT 车号, 出发地, 目的地, 姓名, 订购日期 FROM 车次,用户,订票 WHERE
车次.车号 = 订单.车号 AND 用户.身份证号 = 订单.身份证号;

201610
某学生管理系统的数据库包含如下关系表:
Student(Sno, Name, Gender, Class, Major, Dno);
Course(Cno, )
学生(学号, 姓名,性别, 班级,专业,系号)
36.使用关系代数查询与“王晓”在同一个班级的学生的学号、姓名、性别。
π 学号, 姓名, 性别 (σ 班级 = (π 班级 (σ Name=‘王晓’ (Student))));

π 学号, 姓名, 性别(σ Name=‘王晓’ (Student X Student));
使用SQL语句追寻学生表Student,学号为主键,系号为外码,姓名不可为空值
CREATE TABLE Student(
Sno VARCHAR(20) NOT NULL PRIMARY KEY,
Name VARCHAR(20) NOT NULL,
Gender CHAR(2),
Class VARCHAR(20),
Major VARCHAR(20),
Don CHAR(2);
FOREIGN KEY(Dno)REFERENCES Dept(Dno);
)
38.使用SQL语句查询没有选修“001”号课程的学生姓名、专业、系号。
SELECT Name, Major, Dno FROM Student WHERE Sno NOT IN
(SELECT Sno FROM Study WHERE Cno = ‘001’);
39.使用SQL语句将在系表(Dept)中插入一条记录,系号为“06”,系名为“机械自动化系”,电话为“84706601”。
INSERT INTO Dept (系号, 系名, 电话) value(‘06’, ‘机械自动化系’, ‘84706601’);
40.使用SQL语言将“数据库原理”课程的学时改为64。
UPDATE Course SET Time=64 WHERE Subject=‘数据库原理’;

201604
某项目管理系统的数据库有如下三个关系:
音像(音像编号,音像名,租金,类别)
会员(会员编号,会员名,年龄,所在地区,联系电话)
租借(音像编号,会员编号,租借日期,归还日期)
实现下列操作:
使用关系代数查询“天津”地区的会员名和联系电话。  
π 会员名, 联系电话 (σ 所在地区=’’ (会员))
使用SQL语句查询2015年12月以前(不包括12月)租借音像制品的会员编号。(注:租借日期为日期型)
SELECT 会员编号 FROM 租借 WHERE 租借日期 < ‘2015/12/01’;
使用SQL语句查询每一类音像制品的类别和被租借的次数。
SELECT 类别, COUNT(*) AS 被租借的次数 FROM 租借, 音像
WHERE 音像.音像编号 = 租借.音像编号 GROUP BY 类别;
使用SQL语言查询李芳租借过的音像制品的名称和类别。
SELECT 音像名, 类别 FROM 租借, 音像, 会员
WHERE 会员.会员编号 = 租借.会员编号 AND 音像.音像编号 = 租借.音像编号 AND
会员.会员名= ‘李芳’;
使用SQL语言建立一个有关“科幻”类音像制品的视图VLM.该视图包括信息:音像,编号,音像名,租金,类別。
CREATE VIEW VLM (音像编号,音像名,租金,类別) AS
SELECT 音像编号,音像名,租金,类別 FROM 音像 WHERE 类别 = ‘科幻’;

综合应用题
202008
BACAD
DBAAD
ACDBD
属性、外键、规范、系统、SELECT…INTO、
用户自定义、WITH GRANT OPTION、需求分析、关系、Reduce

36.设有关系模式R(商品号,商品名,类号,类名,商店号,商店名,销售日期,售价),存储商店销售商品等信息。
如果规定:每个商品只属于一个类别;每个商店可以销售多种商品,每种商品也可以在多个商店销售,同种商品可心有不同的售价,但每个商店的每种商品每天只能有一个售价。
(1)根据上术条件,写出模式R的关键字
商品号,商店号,销售日期
(2)R最高属于第几范式,为什么
R∈1NF,因为存在非主属性对码的部分函数依赖。
(3)举例说明R在何种情况下会发生删除异常
删除商店销售商品等信息时可能 会把商品信息也删除了
(4)将R规范到3NF.
R1(商品号,商品名,类号)
R2(类号,类名)
R3(商店号,商店名)
R4(商品号,商店号,销售日期,售价)

202010
设有如下实体:
读者:读者号,姓名,出生日期,单位号
图书:图书号,书名,出版社,定价
单位:单位号,单位名
其中,每个单位有若干读者,每名读者只属于一个单位;每名读者可借阅多本图书,每本图书可被多名读者借阅,读者借阅图书要记录借书日期。
(1)试画出反映上述实体关系的E-R图(不必画实体的属性)。

(2)转换成关系模式并指出每个关系模式的主码和外码,在主码下画直线在外码下画波浪线。
读者:(读者号,姓名,出生日期,单位号)
图书:(图书号,书名,出版社,定价)
单位:(单位号,单位名)
借阅:(图书号, 读者号, 借书日期)
(3)用SQL语言建立“单位”表。
CREATE TABLE 单位(
单位号 INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
单位名 VARCHAR(50) NOT NULL,
);
CREATE TABLE 单位(
单位号 CHAR PRIMARY KEY ,
单位名 CHAR(50) ,
);

201910
设有如下实体:读者:读者号,姓名,出生日期
图书:图书号,图书名,作者,出版社,定价
类别:类号,类名
其中,每一类别有多本图书,每本图书只属于一个类别:每本图书可以被多名读者借阅,每个读者可以借阅多本图书,读者借阅图书要记录借书日期、还书日期。
(1)试画出反映上述实体关系的E-R图(不必画实体的属性)。
(2)转换成关系模式,并指出每个关系模式的主码和外码(如果有外码指出来),在主码下画直线,在外码下画波浪线
(3)用SQL语言建立“类别”表。

CREATE TABLE 类别
(类号CHAR(5)PRIMARY KEY,
类名CHAR(30));

201904
设有如下实体:
学生:学号,姓名,性别
课程:课程号,课程名,学分
班级:班号,班名
其中,每个班有若干学生,每个学生只可以在一个班级学习:每个学生可选修多门课程,每门课程可被多个学生选修,学生选修课程要记录成绩。
(1)试画出反映上述实体关系的ER图(不必画实体的属性)。

(2)转换成关系模式,并指出每个关系模式的主码和外码(如果有外码指出来),在主码下画直线,在外码下画波浪线
学生(学号,姓名,性别,班号)
课程:(课程号,课程名,学分)
班级:(班号,班名)
选修:(学号,课程号,成绩)
(3)用SQL语言建立“课程”表
CREATE TABLE 课程(
课程号 INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
课程名 VARCHAR(50) NOT NULL,
学分 FLOAT NOT NULL
);

某超市商品采购数据库包含三个关系:
商品(商品编号,商品名,价格,生产日期)
采购员(编号,姓名,性别,联系电话)
采购(商品编号,编号,采购日期,采购数量)
实现下列操作:
(1)使用关系代数查询“女”采购员的所有信息。
(2)使用关系代数查询所有商品的商品名和生产日期。
(3)使用SQL语言查询价格在10~15元之间的商品编号。
(4)使用SQL语言查询“刘聪”采购的商品编号、采购日期和采购数量。(用嵌套查询)
(5)使用SQL语言建立一个采购数量大于100的采购信息视图VSC,该视图包括商品编号、编号和采购日期。

201810
设有关系模式R(读者号,姓名,单位号,单位名,图书号,书名,借阅日期,还书日期)存储读者借阋图书等信息。 如果规定:每个读者只属于一个单位;每个读者可以借阅多本图书,每本图书也可以被多名读者備阅,每个读者也可以对某本图书多次借阅,但每个读者每本图书每天最多借一次。 (1) 根据上述条件,写出模式R的关键字
读者号、单位号、借阅日期
(2) R最高属于第几范式,为什么?
R∈1NF,因为存在非主属性对码的部分函数依赖。
(3) 举例说明R在何种情况下会发生删除异常。
删除读者借阅图书信息时有可能把读者的基本信息也删除了。
(4) 将R规范到3NF。
R1(读者号,姓名,单位号)
R2(单位号,单位名)
R3(图书号,书名)
R4(读者号,图书号,借阅日期,还书日期)

201804
设有关系模式R(读者编号,姓名,性别,图书号,图书名,借书日期,还书日期)其中,每个读者可以借阅多本图书,每本图书可以由多名读者借阅,读者可以重复借阅图书,但每本图书每个读者每天最多允许借一次。根据上述条件:(1)写出关系模式R的关键码。(2)R最高属于第几范式,为什么么?(3)将R规范到3NF
关键码(读者编号, 图书号, 借书日期)
R∈1NF,存在非主属性对码的部分函数依赖
R1(读者编号,姓名,性别)
R2(图书号,图书名)
R(读者编号, 图书号, 借书日期, 还书日期)

某运输公司管理系统信息如下有三个实体集,
一是“车队”实体集,属性有车队号、车队名等;
二是“司机”实体集,属性有司机编号、姓名、电话等;
三是“车辆”实体集,属性有汽车牌照、厂家、出厂日期等。车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有个聘期;司机与车辆之间存在“使用”联系,司机使用车辆时记录使用日期和公里数两个属性,每个司机可使用多辆汽车,每个汽车可被多个司机使用。(1)试画出反映上述实体关系的E—R图(不必画实体的属性)(2)转换成关系模式,并指出每个关系模式的主码和外码(如果有外码指出来),在主码下画直线,在外码下画波浪线

车队 (车队号, 车队名)
司机 (司机编号, 姓名, 电话, 车队号, 聘期)
车辆 (汽车牌照, 厂家, 出厂日期)
车辆使用记录 (司机编号, 汽车牌照, 使用日期, 公里数)

201710
现有如下关系模式:R(司机编号,汽车牌照,行驶公里,车队编号,车队主管) 其中:每个汽车牌照对应一辆汽车,“行驶公里”为某司机驾驶某辆汽车行驶的总公里数,每个司机属于一个车队,每个车队只有一个主管。 (1)根据上述条件,写出模式R的关键码。 (2)R最高属于第几范式,为什么? (3)将R规范到3NF。
关键码(司机编号,汽车牌照)
R∈1NF,存在非主属性对码的部分函数依赖
R1(车队编号,车队主管)
R2(汽车牌照)
R3(司机编号,车队编号)
R4(司机编号,汽车牌照,行驶公里)(驾驶)

设有如下实体:
学生:学号,姓名,性别,出生日期
课程:课程号,课程名,学分,学时
教师:教师号,姓名,性别,职称
单位:单位名称,电话,办公地址 其中,一个学生可选修多门课程,一门课程可被多个学生选修,学生选学课程后要记录考试成绩;一个教师可讲授多门课程,一门课程可由多个教师讲授,教师讲授一门课程要记录教师的工作量;一个单位有多个教师,一个教师只能属于一个单位。 (1)试画出反映上述实体关系的E-R图。(不必画实体的属性) (2)转换成关系模式,并指出每个关系模式的主码和外码(如果有外码指出来),在主码下画直线 ,在外码下画波浪线 。

学生:(学号, 姓名, 性别, 出生日期 )
课程:(课程号,课程名,学分,学时 )
教师:(教师号, 姓名, 性别, 职称, 单位名称)
单位:(单位名称, 电话, 办公地址)
选修:(课程号, 学号, 成绩)
授课:(课程号, 教师号, 工作量)

201610
41.现有如、
F关系模式:R(教师号,姓名,部门号,部门名称,科研项目编号,项目名称,项目经费,担任工作,完成时间)
每名教师可以参加多项科研项目,每个项目可以有多名教师参加,教师参加科研工作包括担任工作及他完成所担任部分的完成时间。
(1)根据上述条件,写出关系模式R的关键码。
教师号、科研项目编号
(2)R最高属于第几范式,为什么?
R∈1NF
(3)将R规范到3NF。
R1(教师号,姓名, 部门号)
R2(部门号,部门名称)
R3(科研项目编号,项目名称,项目经费)
R4(教师号, 科研项目编号,担任工作,完成时间)

201604
设有一个关系模式
R (导游编号,姓名,性别,旅游班次号,出发日期,回程日期,宾馆编号,宾馆名,城市,星级,地址)
其中:每个导游可以带多个旅游班次,每个旅游班次可以有多个导游;每个旅游班次只能食宿在一个宾馆,一个宾馆可以接待多个旅游班次。
(1)根据上述条件,写出关系模式R的关键码。
(2)R最高属于第几范式,为什么?
(3)将R规范到3NF.
导游编号 旅游班次号
R∈1NF,存在非主属性对关键码部分函数依赖
R1(导游编号,姓名,性别)
R2(旅游班次号,出发日期,回程日期,宾馆编号)
R3(宾馆编号,宾馆名,城市,星级,地址)
R4(导游编号,旅游班次号)

房屋:房屋编号,房型、建筑面积、使用面积
业主:业主编号、姓名。性别、电话、身份证号
维修单:维修单号、维修内容、维修日期、费用、经办人
维修员:工号、姓名、工种、地址、电话
其中,一个业主可在小区购买多个房屋,但每个房屋的业主只有一个:每个房屋可能有多个维修单,但每张维修单只属于一个房屋;一个维修员可以接多个维修单,每个维修单只用一个维修员。
(1)试画出反映上述实体关系的E-R图(可以省略实体的属性)。
(2)转换成关系模式,并指出每个关系模式的主键和外键(如果存在)。
房屋:(房屋编号,房型、建筑面积、使用面积, 业主)
业主:(业主编号、姓名,性别、电话、身份证号)
维修单:(维修单号、维修内容、维修日期、费用、经办人, 房屋编号 , 工号)
维修员:(工号、姓名、工种、地址、电话)

201510无

模拟一
读者:读者号, 姓名, 出生日期
图书:图书图, 作者, 出版社, 定价
类别:类号, 类名
(1)画出ER图, 不必画实体的属性
(2)转换成关系模式
(3)用SQL语言建立"类别"表

读者:读者号, 姓名, 出生日期
图书:图书图, 作者, 出版社, 定价, 类号
类别:类号, 类名
借阅:读者号, 图书图, 借阅日期, 还书日期
CREATE TABLE 类另(
类号 VARCHAR(20) NOT NULL PRIMARY KEY,
类名 VARCHAR(30),
);

模拟二
学生(学号,姓名,性别)
课程(课程号,课程名,学分)
班级(班号,班名)
实体关系

关系模型
学生(学号,姓名,性别, 班号)
课程(课程号,课程名,学分)
班级(班号,班名)
选修(学号,课程号,成绩)
使用SQL语言建立“课程”表
CREATE TABLE 课程(
课程号 VARCHAR(20) NOT NULL PRIMARY KEY,
课程名 VARCHAR(20),
学分 FLOAT
);

SELECT 工资,姓名,年龄,入职日期 FROM 员工, 薪酬 WHERE
员工.员工编号 = 薪酬.员工编号 AND 员工.姓名 = ‘王涛’;

关键词
foreign: 外键
constraint:定义约束
procedure: 存储过程
exist:判断是否存在,if exist查询结果集是否为空
revoke:撤销用户权限,不删除用户
declare:声明局部变量
union:查询结果进行并操作
intersect:进行交操作
exists:内部有一个了查询语句,找到子查询满足的条件再进行查询
except:返回两个结果集的差(即从左查询中返回右查询没有找到的所有非重复值

  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值