数据库原理及应用-第4章
数据库原理及应用(第2版)--课后习题参考答案

9.在利用概念层数据模型描述数据时,一般要求模型要满足三个要求。下列描述中,不属于概念层 数据模型应满足的要求的是 A A.能够描述并发数据 B.能够真实地模拟现实世界 C.容易被业务人员理解 D.能够方便地在计算机上实现 10.数据模型三要素是指 B
3
·4·
A.数据结构、数据对象和数据共享 B.数据结构、数据操作和数据完整性约束 C.数据结构、数据操作和数据的安全控制 D.数据结构、数据操作和数据的可靠性 11.下列关于实体联系模型中联系的说法,错误的是 A.一个联系可以只与一个实体有关 B.一个联系可以与两个实体有关 C.一个联系可以与多个实体有关 D.一个联系也可以不与任何实体有关 D
·1·
第 1 章 数据概述
一.选择题 1.下列关于数据库管理系统的说法,错误的是 C A.数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型 B.数据库管理系统对数据库文件的访问必须经过操作系统实现才能实现 C.数据库应用程序可以不经过数据库管理系统而直接读取数据库文件 D.数据库管理系统对用户隐藏了数据库文件的存放位置和文件名 2.下列关于用文件管理数据的说法,错误的是 D A.用文件管理数据,难以提供应用程序对数据的独立性 B.当存储数据的文件名发生变化时,必须修改访问数据文件的应用程序 C.用文件存储数据的方式难以实现数据访问的安全控制 D.将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加快用户操作数 据的效率 3.下列说法中,不属于数据库管理系统特征的是 C A.提供了应用程序和数据的独立性 B.所有的数据作为一个整体考虑,因此是相互关联的数据的集合 C.用户访问数据时,需要知道存储数据的文件的物理信息 D.能够保证数据库数据的可靠性,即使在存储数据的硬盘出现故障时,也能防止数据丢失 5.在数据库系统中,数据库管理系统和操作系统之间的关系是 A.相互调用 B.数据库管理系统调用操作系统 C.操作系统调用数据库管理系统 D.并发运行 6.数据库系统的物理独立性是指 D A.不会因为数据的变化而影响应用程序 B.不会因为数据存储结构的变化而影响应用程序 C.不会因为数据存储策略的变化而影响数据的存储结构 D.不会因为数据逻辑结构的变化而影响应用程序 7.数据库管理系统是数据库系统的核心,它负责有效地组织、存储和管理数据,它位于用户和操作 系统之间,属于 A A.系统软件 B.工具软件 C.应用软件 D.数据软件 8.数据库系统是由若干部分组成的。下列不属于数据库系统组成部分的是 A.数据库 B.操作系统 C.应用程序 D.数据库管理系统 B D
数据库原理与应用第四章

说明:
函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。 例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名→年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。
四、关系模式的简化表示
关系模式R(U, D, DOM, F) 简化为一个三元组: R(U, F) 当且仅当U上的一个关系r 满足F时,r称为关系模式 R(U, F)的一个关系
五、数据依赖对关系模式的影响
例:描述学校的数据库:
学生的学号(Sno)、所在系(Sdept) 系主任姓名(Mname)、课程名(Cname) 成绩(Grade) 单一的关系模式 : Student <U、F> U ={ Sno, Sdept, Mname, Cname, Grade }
汇报时间:12月20日
Annual Work Summary Report
一、概念回顾
关系:描述实体、属性、实体间的联系。 从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。 关系模式:用来定义关系。 关系数据库:基于关系模型的数据库,利用关系来描述现实世界。 从形式上看,它由一组关系组成。 关系数据库的模式:定义这组关系的关系模式的全体。
4.2.2 码
定义5.4 设K为关系模式R<U,F>中的属性或属性组合。若K f U,则K称为R的一个侯选码(Candidate Key)。若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)。 主属性与非主属性 ALL KEY
数据库原理及应用(课后练习)---第4章_关系数据库设计理论

第4章关系数据库设计理论习题一、选择题1、C2、B3、C4、C5、A6、B7、A8、B9、D10、B二、填空题1、数据依赖主要包括_函数_依赖、_多值_依赖和连接依赖。
2、一个不好的关系模式会存在_插入异常_、_删除异常_和__修改复杂_等弊端。
3、设X→Y为R上的一个函数依赖,若_对任意X的真子集X’,均无X’→Y 存在__,则称Y完全函数依赖于X。
4、设关系模式R上有函数依赖X→Y和Y→Z成立,若_Y不包含于X_且_Y→X不成立_,则称Z传递函数依赖于X。
5、设关系模式R的属性集为U,K为U的子集,若_K→U为完全函数依赖_,则称K为R的候选键。
6、包含R中全部属性的候选键称_主属性_。
不在任何候选键中的属性称__非主属性_。
7、Armstrong公理系统是_有效__的和_完备__的。
8、第三范式是基于_函数_依赖的范式,第四范式是基于_多值_依赖的范式。
9、关系数据库中的关系模式至少应属于_第一_范式。
10、规范化过程,是通过投影分解,把_一个范式级别较低的_的关系模式“分解”为_若干个范式级别较高__的关系模式。
三、简答题1、解释下列术语的含义:函数依赖、平凡函数依赖、非平凡函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、范式、无损连接性、依赖保持性。
解:函数依赖:设关系模式R(U,F),U是属性全集,F是U上的函数依赖集,X和Y 是U 的子集,如果对于R(U)的任意一个可能的关系r,对于X的每一个具体值,Y都有唯一的具体的值与之对应,则称X函数决定Y,或Y函数依赖于X,记X→Y。
我们称X为决定因素,Y为依赖因素。
当Y不函数依赖于X时,记作:X Y。
当X→Y且Y→X时,则记作:X Y。
平凡函数依赖:当属性集Y是属性集X的子集时,则必然存在着函数依赖X→Y,这种类型的函数依赖称为平凡的函数依赖。
非平凡函数依赖:如果Y不是X子集,则称X→Y为非平凡的函数依赖。
完全函数依赖与部分函数依赖:设有关系模式R(U),U是属性全集,X和Y是U的子集,X→Y,并且对于X的任何一个真子集X',都有X'Y,则称Y对X完全函数依赖(Full−f Y。
第4章 Transact-SQL编程-数据库原理及应用-微课视频版-李唯唯-清华大学出版社

1. 系统数据类型--字符类型
数据类型
char(n) 普通编 码字符 varchar(n)
text(n)
nchar(n) 统一编 码字符 nvarchar(n)
ntext(n)
长度 n字节
输入的长度 输入的长度 n字节
1. 系统数据类型--数值类型
1)精确数值数据类型
数据类型
tinyint
整型
smallint int
bigint
小数 位 货币
numeric(p,q)
decimal(p,q) bit smallmoney money
长度 1字节 2字节 4字节 8字节
2~17字节
1位 4字节 8字节
取值范围 0~255 -215~215-1(-32768~32767) -231~231-1(2147483648~2147483647) -263~263-1
2. 自定义数据类型--CREATE TYPE
【例】创建一个数据类型“goodsNO”,要求基本类型是varchar,长度为20, 非空。
CREATE TYPE goodsNO FROM varchar(20) NOT NULL
2. 自定义数据类型--sp_addtype
sp_addtype存储过程创建自定义数据类型的格式: sp_addtype type_name [, system_type], {‘NULL’|’NOT NULL’|’IDENTITY’}
2. 自定义数据类型--sp_droptype
系统存储过程sp_droptype用于删除用户自定义的数据类型,其 语法结构如下:
数据库原理及应用第4章课后习题答案

习题61、说明数据库设计的特点。
1)三分技术,七分管理,十二分基础数据2)综合性3)结构(数据)设计和行为(处理)设计相结合2、试述数据库设计的过程3、试述数据库设计过程的各个阶段设计内容。
1)需求分析阶段需求分析是对用户提出的各种要求加以分析,对各种原始数据加以综合、整理,是形成最终设计目标的首要阶段。
需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。
2)概念结构设计阶段概念结构设计是对用户需求进行进一步抽象、归纳,并形成独立于DBMS和有关软、硬件的概念数据模型的设计过程。
3)逻辑结构设计阶段逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化的设计过程。
4)物理设计阶段数据库物理设计阶段,是将逻辑结构设计阶段所产生的逻辑数据模型,转换为某种计算机系统所支持的数据库物理结构的实现过程。
5)数据库实施阶段数据库实施阶段,即数据库调试、试运行阶段。
一旦数据库的物理结构形成,就可以用已选定的DBMS来定义、描述相应的数据库结构,装入数据库数据库,以生成完整的数据库,编制有关应用程序,进行联机调试并转入试运行,同时进行时间、空间等性能分析。
6)数据库运行和维护阶段数据库实施阶段结束,标志着数据库系统投入正常运行工作的开始。
在数据库系统运行过程中必须不断地对其进行评价、调整与修改。
4、需求分析中发现事实的方法有哪些?1)跟班作业。
通过亲身参加业务工作来观察和了解业务活动的情况。
2)开调查会。
通过与用户座谈来了解业务活动的情况及用户需求。
3)检查文档。
通过检查与当前系统有关的文档、表格、报告和文件等,进一步理解原系统,并有利于提供与原系统问题相关的业务信息。
4)问卷调查。
5、需求分析阶段的设计目标是什么?调查的内容是什么?需求分析阶段的目标是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,确定企业的组织目标,明确用户的各种需求,进而确定新系统的功能,并把这些要求写成用户和数据库设计者都能够接受的文档。
数据库原理与应用(Access) 第四章 表的创建与表的

本章学习目标
在Access 2003中,表是有结构的数据的集合, 是数据库应用系统的数据“仓库”。开发数据库应用 系统时,开发者首要的工作是分析应用系统的数据要 求,然后根据分析的结果建立适合于系统要求的表结 构和表间关系。例如,我们要设计一个“学生信息管 理系统”就必须先设计表结构、建立表和对表进行必 要的操作与维护。
图4-1 新建表对话框
图4-2 表设计视图窗口
(3)在表设计器窗口单击第一行的“字段名称” 列,输入“学生”表的“学号”字段,单击“数据类 型”列右侧的向下箭头,从下拉列表中选择所需要的 数据类型,如“文本”;在窗口下半部的字段属性区 域设置“字段大小”属性,如8,并将必填字段设置 为“是”。如图4-3所示。 (4) 按上述方法依次定义每个字段的名字、类型、 长度及小数位数等参数。如图4-4所示。 (5)定义好表的全部字段后,单击“保存”按钮, 进入“另存为”对话框,在文件名输入框输入表名 称(“学生”),单击“确定”按钮。进入如图45所示的对话框。
图4-24 查找和替换对话框
(4)若要逐个替换,可单击“查找下一个”按钮, 当找到满足条件的记录时,单击“替换”按钮,可 替换当前记录,若不替换当前记录,则单击“查找 下一个”按钮。如要一次替换所有满足条件的记录, 可单击“全部替换”按钮。 (5)替换完成后,单击“取消”按钮,退出替换 操作。
4.4修改表结构
(9)超级链接 超级链接类型用于保存超链接的字段。超链接 可以是某个UNC路径(通往局域网中一个文件的地 址)或是URL(通往Internet节点)。当单一个超 链接时,Web浏览器或Access 2003将根据超链接 地址到达指定的目标。 (10)查询向导 查询向导类型(Loolup Wizard)字段通过列 表框或组合框提供了一个字段内容的列表,用户可 以在列表框或组合框中选择所列内容作为输入字段 的内容。其长度由系统默认设置。
数据库原理及应用教程(第4版)源代码

DROP DATABASETeach
【例3-6】
CREATE TABLE S
(SNoVARCHAR(6),
SNNVARCHAR(10),
Sex NCHAR(1) DEFAULT '男',
AgeINT,
DeptNVARCHAR(20))
【例3-7】
CREATE TABLE S
(SNoVARCHAR(6) CONSTRAINT S_CONSNOT NULL,
CNoVARCHAR(6) NOT NULL CONSTRAINT C_ForeFOREIGN KEY REFERENCES C(CNo),
ScoreNUMERIC(4,1),
CONSTRAINT S_C_PrimPRIMARY KEY (SNo,CNo))
【例3-13】
CREATE TABLE SC
ΠTN,TNo,Prof(T)或Π2,1,5(T)(其中2,1,5分别为属性TN,TNo和Prof的序号)
【例2-8】查询教师关系中有哪些系。
ΠDept(T)
【例2-9】查询讲授C5课程的教师号。
ΠTNo(σCNo='C5'(TC))
【例2-11】查询讲授“数据库”课程的教师姓名。
ΠTN(CN='数据库'(C) TC ΠTNo,TN(T))或
SNNVARCHAR(10),
Sex NCHAR(1),
Age INT,
DeptNVARCHAR(20))
【例3-8】
CREATE TABLE S
(SNoVARCHAR(6),
SNNVARCHAR(10)CONSTRAINT SN_UNIQUNIQUE,
数据库原理与设计-第四章

练习:
1、在关系R(R#,RN,S#)和S(S#,SN,SD)中,R的主键
是R#,S的主键是S#,则S#在R中称为 外键
。
2、用户选作元组元组标识的一个侯选键称为 主键
。
3、关系模式的任何属性( A )。
A、不可再分
B、可再分
C、命名在该关系模式中可以不惟一 D、以上都不是
4、一个关系数据库文件中的各条记录( B )
练习:
1、分别建立表dept1和emp1,并在二者之间定义关联。
表名
列名
数据约束
约束
DEPT1
Dno NAME
Decimal(3) VARCAHR(10)
PRIMARY KEY
LOC
VARCHAR(20)
表名 EMP1
列名 数据类型
Eno
Decimal(4)
NAME VARCHAR(10)
Salary Decimal(6,2)
Dno
Decimal(3)
约束
UNIQUE
FOREIGN KEY 级联删除
2、增加约束
(1)值唯一; (2)可有一个且仅有一个空值。
唯一约束既可以在列级定义,也可以在表 级定义。
【例4-4】示例。
(1)建立employee表,在employee表中定义一个phone字段, 并为phone字段定义指定名称的唯一约束。
CREATE TABLE employee ( empno DECIMAL(2) PRIMARY KEY, name VARCHAR(8), age DECIMAL(3), phone VARCHAR(12), deptno DECIMAL(2), CONSTRAINT emp_phone UNIQUE(phone) );
林子雨大数据技术原理及应用第四章课后作业答案

大数据技术原理与应用第四章课后作业黎狸1.试述在Hadoop体系架构中HBase与其他组成部分的相互关系。
HBase利用Hadoop MapReduce来处理HBase中的海量数据,实现高性能计算;利用Zookeeper作为协同服务,实现稳定服务和失败恢复;使用HDFS作为高可靠的底层存储,利用廉价集群提供海量数据存储能力; Sqoop为HBase的底层数据导入功能,Pig 和Hive为HBase提供了高层语言支持,HBase是BigTable的开源实现。
2.请阐述HBase和BigTable的底层技术的对应关系。
3.请阐述HBase和传统关系数据库的区别。
4.HBase有哪些类型的访问接口?HBase提供了Native Java API , HBase Shell , Thrift Gateway , REST GateWay , Pig , Hive 等访问接口。
5.请以实例说明HBase数据模型。
6.分别解释HBase中行键、列键和时间戳的概念。
①行键标识行。
行键可以是任意字符串,行键保存为字节数组。
②列族。
HBase的基本的访问控制单元,需在表创建时就定义好。
③时间戳。
每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳进行索引。
7.请举个实例来阐述HBase的概念视图和物理视图的不同。
8.试述HBase各功能组件及其作用。
①库函数:链接到每个客户端;②一个Master主服务器:主服务器Master主要负责表和Region的管理工作;③③许多个Region服务器:Region服务器是HBase中最核心的模块,负责存储和维护分配给自己的Region,并响应用户的读写请求9.请阐述HBase的数据分区机制。
每个行区间构成一个分区,被称为“Region”,分发到不同的Region服务器上。
10.HBase中的分区是如何定位的?通过构建的映射表的每个条目包含两项内容,一个是Regionde 标识符,另一个是Region服务器标识,这个条目就标识Region和Region服务器之间的对应关系,从而就可以知道某个Region被保存在哪个Region服务器中。
《数据库原理与应用教程》(第4版)课件第4章 数据操作语句

WHERE rtrim(Sname) LIKE '王__'
涉及空值的查询
• 空值(NULL)在数据库中表示不确定的值。 • 例如,学生选修课程后还没有考试时,这些学生有
选课记录,但没有考试成绩,因此考试成绩为空值。 • 判断某个值是否为NULL值,不能使用普通的比较运
rue,表明此记录为符合查询条件的记录; • NOT IN:当列中的值与某个常量值相同时,则结果
为False,表明此记录为不符合查询条件的记录
示例
• 例12.查询信息系、数学系和计算机系学生的姓 名和性别。
SELECT Sname, Ssex FROM Student WHERE Sdept IN ('信息系', '数学系', '计算
算符。 • 判断取值为空的语句格式为:
列名 IS NULL • 判断取值不为空的语句格式为:
列名 IS NOT NULL
示例
• 例20.查询没有考试成绩的学生的学号和相应的 课程号。 SELECT Sno, Cno FROM SC WHERE Grade IS NULL
• 例21.查询所有有考试成绩的学生的学号和课程 号。 SELECT Sno, Cno FROM SC WHERE Grade IS NOT NULL
列名 | 表达式 [ NOT ] BETWEEN 下限值 AND 上 限值
• 如果列或表达式的值在[不在]下限值和上限值范围 内,则结果为True,表明此记录符合查询条件。
示例
• 例10.查询年龄在20~23岁之间的学生的姓名、所 在系和年龄。 SELECT Sname, Sdept, Sage FROM Student WHERE Sage BETWEEN 20 AND 23
数据库原理及应用教案

数据库原理及应用教案第一章:数据库概述1.1 数据库的基本概念理解数据库的定义理解数据和信息的关系理解数据模型的概念1.2 数据库系统的结构理解数据库系统的组成部分理解数据库管理系统的作用理解应用程序和数据库之间的交互过程1.3 数据库的发展历史了解数据库的起源和发展过程了解关系数据库和面向对象数据库的区别了解当前数据库技术的发展趋势第二章:关系数据库理论2.1 关系模型的基本概念理解关系表的定义和表示方法理解关系模型的特点和优势理解实体和属性的概念2.2 关系的操作理解选择、投影和连接操作的含义和应用掌握关系代数和SQL语言的使用方法理解关系的性质和操作的限制条件2.3 关系的完整性约束理解实体完整性和参照完整性的概念理解主键和外键的作用和定义掌握关系的完整性约束的实现方法第三章:数据库设计3.1 需求分析理解需求分析的目的和重要性掌握需求分析的方法和技术理解数据字典和数据流图的使用3.2 概念设计理解概念设计的概念和目的掌握实体-关系模型的表示方法理解概念设计到逻辑设计的转换方法3.3 逻辑设计理解逻辑设计的概念和目的掌握关系模型的设计方法理解关系数据库设计的原则和方法第四章:数据库管理4.1 数据库的创建和管理理解数据库的创建和管理过程掌握SQL语言创建和管理数据库的方法理解数据库的备份和恢复的概念和方法4.2 数据库的安全性和完整性理解数据库安全性的概念和重要性掌握数据库的权限管理和访问控制方法理解数据库完整性的概念和实现方法4.3 数据库性能优化理解数据库性能优化的概念和方法掌握查询优化和索引的使用方法理解数据库缓存和分区的概念和方法第五章:数据库应用系统开发5.1 数据库应用系统的设计和实现理解数据库应用系统的设计和实现过程掌握数据库应用系统的设计原则和方法理解应用程序和数据库之间的交互过程5.2 常用数据库开发工具了解常用的数据库开发工具的概念和功能掌握数据库开发工具的使用方法理解不同开发工具的优缺点和适用场景5.3 数据库应用系统的运行和维护理解数据库应用系统的运行和维护的重要性掌握数据库应用系统的运行和维护方法理解故障排除和性能监控的概念和方法第六章:SQL语言6.1 SQL语言基础理解SQL语言的作用和特点掌握SQL语言的基本语法和操作理解数据定义语言(DDL)和数据操作语言(DML)的概念6.2 SQL数据查询掌握SQL查询语句的编写和执行理解选择、投影和连接操作的SQL实现掌握子查询和联合查询的使用方法6.3 SQL数据定义和操纵掌握SQL语言创建表、视图和索引的方法掌握插入、更新和删除数据的SQL语句理解SQL语言的数据类型和约束定义第七章:数据库事务管理7.1 事务的基本概念理解事务的定义和特性掌握事务的ACID属性理解事务的作用和重要性7.2 事务管理理解事务的提交和回滚掌握事务控制语句的使用理解事务隔离级别的概念和作用7.3 事务日志和恢复理解事务日志的作用和结构掌握数据库的恢复机制理解崩溃后的数据库恢复过程第八章:数据库高级特性8.1 数据库触发器和存储过程理解触发器和存储过程的定义和作用掌握创建和调用触发器和存储过程的方法理解触发器和存储过程在数据完整性管理中的应用8.2 数据库视图和索引理解视图的概念和作用掌握创建和使用视图的方法理解索引的原理和作用掌握索引的创建和管理方法8.3 数据库分区理解分区的作用和原理掌握分区的创建和管理方法理解分区对数据库性能的影响第九章:数据库性能优化9.1 查询优化理解查询优化的目的和方法掌握查询优化技术理解查询优化器的工作原理9.2 数据库索引设计理解索引的作用和类型掌握索引的设计原则和方法理解索引维护和更新策略9.3 数据库缓存和并发控制理解数据库缓存的作用和原理掌握缓存优化策略理解并发控制的重要性掌握并发控制技术第十章:数据库应用案例分析10.1 数据库应用案例介绍分析实际数据库应用案例理解案例中数据库的设计和实现方法理解案例中数据库的应用场景和效果10.2 数据库应用案例分析分析案例中的数据库需求和设计分析案例中的数据库管理和维护方法分析案例中的数据库性能优化措施10.3 数据库应用案例实践基于案例进行数据库设计和实现实践案例中的数据库管理和维护方法实践案例中的数据库性能优化措施重点和难点解析重点环节1:关系模型的基本概念关系表的定义和表示方法关系模型的特点和优势实体和属性的概念重点环节2:关系的操作选择、投影和连接操作的含义和应用关系代数和SQL语言的使用方法关系的性质和操作的限制条件重点环节3:关系的完整性约束实体完整性和参照完整性的概念主键和外键的作用和定义关系的完整性约束的实现方法重点环节4:数据库的创建和管理数据库的创建和管理过程SQL语言创建和管理数据库的方法数据库的备份和恢复的概念和方法重点环节5:数据库的安全性和完整性数据库安全性的概念和重要性数据库的权限管理和访问控制方法数据库完整性的概念和实现方法重点环节6:数据库性能优化查询优化和索引的使用方法数据库缓存和分区的概念和方法数据库性能优化的概念和方法重点环节7:数据库事务管理事务的定义和特性事务的ACID属性事务的提交和回滚重点环节8:数据库高级特性触发器和存储过程的定义和作用视图和索引的原理和作用分区对数据库性能的影响重点环节9:数据库性能优化查询优化技术索引的设计原则和方法缓存优化策略重点环节10:数据库应用案例分析数据库应用案例的需求分析和设计数据库应用案例的管理和维护方法数据库应用案例的性能优化措施全文总结和概括:本文主要分析了数据库原理及应用教案中的重点环节,包括关系模型的基本概念、关系的操作、关系的完整性约束、数据库的创建和管理、数据库的安全性和完整性、数据库性能优化、数据库事务管理、数据库高级特性、数据库应用案例分析等。
数据库原理与应用-第二版(张俊玲)清华大学出版社-课后习题答案完整版

数据库原理与应用-第二版(张俊玲)清华大学出版社-课后习题答案完整版数据库原理与应用习题答案第一章一、填空题1.常见的数据库管理系统有 Oracle、Microsoft SQL Server、Visual FoxPro 和Microsoft Access。
2.中文Microsoft Access 2003的基本工作界面包括主窗口 (外面的大窗口)和数据库窗口(里面的小窗口)两部分。
3.数据库像一个电子表格,其中每一行称为记录,每一列称为字段。
4. 从数据库窗口可以看出,Access 2000数据库系统的基本结构由数据库对象和组两部分组成,其中对象有7种,它们分别是数据表、查询、窗体、报表、Web页、宏和模块。
二、简答题1.试述数据、数据库、数据库管理系统、数据库系统的概念。
答:数据(Data):描述事物的符号称为数据,它是数据库存储的基本对象。
广义的数据包括数字、文字、图形和声音等。
数据库(DataBase,DB):指长期存储在计算机内的、有组织的、可共享的数据集合。
数据库管理系统(DataBase Management System,DBMS):是位于用户与操作系统之间的一层数据管理软件。
‘数据库系统(DataBase System,DBS):指在计算机中引入数据库后的系统,由数据库、数据库管理系统及其开发工具、应用系统、数据库管理员和用户构成。
2.使用数据库系统有什么好处?答:使用数据库系统可以将现实中的大量有用信息,以数据的形式保存在计算机里,数据库本身可被看作是一种电子文件柜,它是收集计算机数据文件的仓库或容器,系统用户可以对这些文件执行一系列操作,如向数据库中增加新的空文件、向现有文件中插入数据、更改现有文件中的数据及删除数据库中的数据等。
并能达到数据结构化、共享性高、冗余度低、独立性高的要求,提高了管理效率和准确性。
3.数据库管理系统的主要功能有哪些?答:数据库管理系统的功能主要有数据定义功能、数据操纵功能、数据库的运行管理及数据库的建立与维护功能。
数据库原理及应用-第4章-SQL语言

建立学生表student,由学号、姓名、性别、年龄 、系别5个属性组成.
CREATE TABLE student
(Sno char(8) primary key, Sname char(20) not null ,
Ssex char(1) default ‘男’, Sage int check(Sage>=0 and Sage <=120),
Transact-SQL命令格式的约定
在Transact-SQL语言的命令格式中,
[ ]括起来的内容表示是可选的;
[,…n]表示重复前面的内容;
< >括起来表示在实际编写语句时,用相应的内容替代;
{ }括起来表示是必选的; 类似A|B的格式:表示A和B只能选择一个,不能同时都 选。
数据类型
系统数据类型 SQL Server预先定义好的,可以直接使用。
选择表中的若干行
1)消除重复的行:DISTINCT
1. 查询所有选修过课的学生的学号 SELECT Sno FROM SC
等价于:
SELECT ALL Sno FROM SC
结果中保留了重复的行
SELECT DISTINCT Sno FROM SC
结果中消除了重复的行
2)查询满足条件的元组
通过WHERE子句实现 常用的查询条件
约束 constraint
约束是SQL Server提供的自动保持数据库完整 性的一种方法 。
主键约束 primary key 主键能够唯一地确定表中的每一条记录,主键不能取空值。 主键约束可以保证实体的完整性。
唯一性约束 unique •唯一性约束用于指定一个或多个列的组合值具有唯一 性,以防止在列中输入重复的值。 •使用唯一性约束的字段允许为空值; •一个表中可以允许有多个唯一性约束; •可以把唯一性约束定义在多个字段上;
数据库原理及应用(第2版)--课后习题参考答案

·5·
2.实体-联系模型主要包含______、______和______三部分内容。实体 属性 联系 3. 如果实体 A 与实体 B 是一对多联系, 则实体 B 中的一个实例最多可对应实体 A 中的______实例。 一个 4.数据完整性约束包括______完整性、______完整性和______完整性。 实体 参照 用户定义 5.关系数据模型的组织形式是______。 二维表 6.数据库系统的______和______之间的映像,提供了数据的物理独立性。 7.数据的逻辑独立性是指当______变化时可以保持______不变。 内模式 模式 8.数据模型三要素包括______、______和______。 数据结构 数据操作 数据完整性约束 9.实体联系模型属于______层数据模型,它与具体的 DBMS______。概念 无关 10.关系操作的特点是基于______的操作。 集合 11.当数据的物理存储位置发生变化时,通过调整______映像,可以保证______不变化,从而保证 数据的物理独立性。 模式/内模式 模式 12.参照完整性约束是通过______保证的。 外码
客户服务器结构返回给客户端的是处理后的结果数据文件服务器结构返回给客含客户所需数据的文件感谢您的阅读祝您生活愉快
·1·
第 1 章 数据概述
一.选择题 1.下列关于数据库管理系统的说法,错误的是 C A.数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型 B.数据库管理系统对数据库文件的访问必须经过操作系统实现才能实现 C.数据库应用程序可以不经过数据库管理系统而直接读取数据库文件 D.数据库管理系统对用户隐藏了数据库文件的存放位置和文件名 2.下列关于用文件管理数据的说法,错误的是 D A.用文件管理数据,难以提供应用程序对数据的独立性 B.当存储数据的文件名发生变化时,必须修改访问数据文件的应用程序 C.用文件存储数据的方式难以实现数据访问的安全控制 D.将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加快用户操作数 据的效率 3.下列说法中,不属于数据库管理系统特征的是 C A.提供了应用程序和数据的独立性 B.所有的数据作为一个整体考虑,因此是相互关联的数据的集合 C.用户访问数据时,需要知道存储数据的文件的物理信息 D.能够保证数据库数据的可靠性,即使在存储数据的硬盘出现故障时,也能防止数据丢失 5.在数据库系统中,数据库管理系统和操作系统之间的关系是 A.相互调用 B.数据库管理系统调用操作系统 C.操作系统调用数据库管理系统 D.并发运行 6.数据库系统的物理独立性是指 D A.不会因为数据的变化而影响应用程序 B.不会因为数据存储结构的变化而影响应用程序 C.不会因为数据存储策略的变化而影响数据的存储结构 D.不会因为数据逻辑结构的变化而影响应用程序 7.数据库管理系统是数据库系统的核心,它负责有效地组织、存储和管理数据,它位于用户和操作 系统之间,属于 A A.系统软件 B.工具软件 C.应用软件 D.数据软件 8.数据库系统是由若干部分组成的。下列不属于数据库系统组成部分的是 A.数据库 B.操作系统 C.应用程序 D.数据库管理系统 B D
数据库原理与应用教程第四版 第四章答案

免责声明:私人学习之余整理,如有错漏,概不负责1.查询学生选课表中的全部数据SELECT *FROM SC2.查询计算机系的学生的姓名、年龄SELECT Sname,SageFROM StudentWHERE Sdept = '计算机系'3.查询成绩在70到80分之间的学生的学号课程号和成绩SELECT *FROM SCWHERE Grade BETWEEN 70 AND 804.查询计算机系年龄在18-20岁之间且性别为男的学生的姓名和年龄SELECT Sname,SageFROM StudentWHERE Sage BETWEEN 18 AND 20AND Sdept = '计算机系'AND Ssex = '男'5.查询课程号为‘c001’的课程的最高的分数SELECT MAX(Grade)FROM SCWHERE Cno = 'c001'6.查询计算机系学生的最大年龄和最小年龄SELECT MAX(Sage),MIN(Sage)FROM StudentWHERE Sdept = '计算机系'7.统计每个系的学生人数SELECT Sdept,COUNT(*) AS 学生人数FROM StudentGROUP BY Sdept8.统计每门课程的选课人数和考试最高分SELECT Cno,COUNT(*) AS 选课人数,MAX(Grade)FROM SCGROUP BY Cno9.统计每个学生的选课门数和考试总成绩,并按照选课门数升序显示结果SELECT Sno,COUNT(*) AS 选课门数,SUM(Grade) AS 总成绩FROM SCGROUP BY SnoORDER BY COUNT(*) ASC10.查询总成绩超过200分的学生的学号和总成绩SELECT Sno,SUM(Grade) AS 总成绩FROM SCGROUP BY SnoHAVING SUM(Grade) >20011.查询选修了'c002'号课程的学生的姓名和所在系SELECT Sname,SdeptFROM Student INNER JOIN SC ON Student.Sno = SC.SnoWHERE Cno = 'C002'12.查询成绩80分以上的学生的姓名、课程号和成绩,按成绩降序排列SELECT Sname,Cno,GradeFROM Student INNER JOIN SC ON Student.Sno = SC.SnoWHERE Grade > 80ORDER BY Grade DESC13.查询那些学生没有选修课,列出学号、姓名和所在系SELECT Student.Sno,Sname,Sdept,CnoFROM Student LEFT OUTER JOIN SC ON Student.Sno = SC.SnoWHERE Cno IS NULL14.查询与java在同一学期开设的课程的课程名和开课学期SELECT ame,c2.SemesterFROM Course c1 JOIN Course c2 ON c1.Semester = c2.SemesterWHERE ame = 'Java'-- 注意select的列与where的列应该不同15.查询与李勇年龄相同的学生的姓名、所在系和年龄SELECT s1.Sname,s1.Sdept,s1.SageFROM Student s1 JOIN Student s2 ON s1.Sage = S2.SageWHERE s2.Sname = '李勇'16.用子查询实现如下查询1)查询选修了'c001'号课程的学生的姓名和所在系SELECT Sname,SdeptFROM StudentWHERE Sno IN (SELECT Sno FROM SC WHERE Cno = 'c001')2)查询数学系成绩在80分以上的学生的学号、姓名、课程号和成绩SELECT s.Sno,Sname,Cno,GradeFROM Student s INNER JOIN SC ON s.Sno = SC.SnoWHERE Grade > 80 ANDs.Sno IN (SELECT Sno FROM SC WHERE Sdept = '数学系')3)查询计算机系考试成绩最高的学生的姓名SELECT SnameFROM Student s INNER JOIN SC ON s.Sno = SC.SnoWHERE Sdept = '计算机系' ANDgrade = (SELECT MAX(Grade) FROM SC INNER JOIN Student ON SC.Sno = Student.Sno)-- 不用子查询SELECT SnameFROM Student s INNER JOIN SC ON s.Sno = SC.SnoWHERE Sdept = '计算机系'GROUP BY Grade DESC LIMIT 1-- mysql没有top n 可以用limit替代4)查询数据结构考试成绩最高的学生的姓名、所在系、性别和成绩SELECT Sname,Sdept,Ssex,GradeFROM SC INNER JOIN Student s ON SC.Sno = s.SnoWHERE Grade = (SELECT MAX(Grade) FROM SC INNER JOIN Course c ON o = o WHERE Cname = '数据结构')AND Cno = (SELECT Cno FROM Course WHERE Cname = '数据结构')-- 使用排序SELECT Sname,Sdept,Ssex,GradeFROM Student s INNER JOIN SC ON s.Sno = SC.SnoWHERE Cno = (SELECT Cno FROM Course WHERE Cname = '数据结构')GROUP BY Grade DESC LIMIT 1-- mysql没有top n 可以用limit替代17.查询没有选修java课程的学生的姓名和所在系-- 子查询SELECT Sname,SdeptFROM StudentWHERE Sno NOT IN (SELECT Sno FROM SCWHERE Cno = (SELECT Cno FROM Course WHERE Cname = 'Java'))18.查询计算机系没有选课的学生的姓名和性别SELECT Sname,SsexFROM StudentWHERE Sno NOT IN (SELECT Sno FROM SC)19.创建一个新表,表明test_t........CREATE TABLE test_t(COL1 INT,COL2 CHAR(10) NOT NULL,COL3 CHAR(10))INSERT INTO test_t VALUE(NULL,'B1',NULL),(1,'B2','C2'),(2,'B3',NULL)20.删除考试成绩低于50分的学生的选课记录DELETE FROM SCWHERE Grade < 5021.删除没有人选的课程记录DELETE FROM CourseWHERE Cno NOT IN (SELECT Cno FROM SC)22.删除计算机系java成绩不及格学生的java课程选课记录DELETE FROM SCWHERE Sno IN (SELECT Sno FROM Student WHERE Sdept = '计算机系')AND Cno = (SELECT Cno FROM Course WHERE Cname = 'Java')AND Grade < 6023.将第二学期开设的所有课程的学分增加2分UPDATE Course SET Credit = Credit + 2WHERE Semester = 224.将java课程的学分改为3分UPDATE Course SET Credit = 3WHERE Cname = 'Java'25.将计算机系的学生的年龄增加一岁UPDATE Student SET Sage = Sage + 1WHERE Sdept = '计算机系'26.将信息系学生的计算机文化学课程的考试成绩加5分UPDATE SC SET Grade = Grade + 5WHERE Sno IN (SELECT Sno FROM Student WHERE Sdept = '信息系')AND Cno = (SELECT Cno FROM Course WHERE Cname = '计算机文化学')27.查询每个系年龄大于等于20的学生人数,并将结果保存到一个新永久标Dept_ageCREATE TABLE Dept_age (SELECT b.Sdept,IFNULL(人数,0) AS 人数FROM(SELECT Sdept,COUNT(*) AS 人数FROM Student WHERE Sage >= 20 GROUP BY Sdept) a RIGHT OUTER JOIN (SELECT DISTINCT Sdept FROM Student) b ON a.Sdept = b.Sdept)SELECT * FROM Dept_age-- mysql不支持select into from28.查询计算机系每个学生的java考试情况,列出学号、姓名、成绩和成绩情况>=90(好)80-89(较好)70-79(一般)60-69(较差)<60(差)SELECT s.Sno,Sname,Grade,CASEWHEN Grade >= 90 THEN '优'WHEN Grade BETWEEN 80 AND 89 THEN '较好'WHEN Grade BETWEEN 70 AND 79 THEN '一般'WHEN Grade BETWEEN 60 AND 69 THEN '较差'WHEN Grade < 60 THEN '差'END AS 成绩情况FROM Student s INNER JOIN SC ON s.Sno = SC.SnoWHERE Cno = (SELECT Cno FROM Course WHERE Cname = 'Java')29.统计每个学生的选课门数(包括没有选课的人),列出学号、选课门数和选课情况>=6(多)3-5(一般)1-2(偏少)0(未选课)SELECT s.Sno,IFNULL(COUNT(*),0) AS 选课门数,CASEWHEN COUNT(*) >= 6 THEN '多'WHEN COUNT(*) BETWEEN 3 AND 5 THEN '一般'WHEN COUNT(*) BETWEEN 1 AND 2 THEN '偏少'WHEN COUNT(*) IS NULL THEN '未选课'END AS 选课情况FROM Student s LEFT OUTER JOIN SC ON s.Sno = SC.SnoGROUP BY Sno30.修改全部课程的学分,修改规则如下:1-2学期开设的课程加5分3-4学期开设的课程加3分5-6学期开设的课程加1分其余不变UPDATE Course SET Credit = Credit +CASEWHEN Semester BETWEEN 1 AND 2 THEN 5WHEN Semester BETWEEN 3 AND 4 THEN 3WHEN Semester BETWEEN 5 AND 6 THEN 5ELSE 0END31.查询李勇和王大力所选的全部课程,列出课程名、开课学期和学分,不包括重复结果SELECT Cname,Semester,CreditFROM CourseWHERE Cno IN (SELECT Cno FROM SC WHERE Sno IN (SELECT Sno FROM Student WHERE Sname = '李勇' OR Sname = '王大力'))-- 并运算SELECT Cname,Semester,Credit FROM CourseWHERE Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '李勇'))UNIONSELECT Cname,Semester,Credit FROM CourseWHERE Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '王大力'))32.查询第3学期开设的课程中,李勇选了但王大力没选的课程,列出课程名和学分SELECT Cname,CreditFROM CourseWHERE Semester = 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '李勇'))AND Cno NOT IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '王大力'))-- 差运算mysql不支持EXCEPTSELECT Cname,CreditFROM CourseWHERE Semester = 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '李勇'))EXCEPTSELECT Cname,CreditFROM CourseWHERE Semester = 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '王大力'))33.查询学分大于3分的课程中,李勇和王大力所选的相同课程,列出课程名和学分SELECT Cname,CreditFROM CourseWHERE Credit > 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '李勇'))AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '王大力'))-- 交运算mysql不支持INTERSECTSELECT Cname,CreditFROM CourseWHERE Credit > 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '李勇'))INTERSECTSELECT Cname,CreditFROM CourseWHERE Credit > 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '王大力'))。
《数据库原理与应用(Access)》第4章:建立和使用查询

查询的结果有一定生存期。当一个查询关闭后,其结果就不存在了。 所有记录都是保存在原来的表中。这样处理有两个好处: 这样处理有两个好处: 这样处理有两个好处 节约外存空间。对查询的要求是多种多样的,长期使用数据库,必 然会生成大批量的、种类繁多的查询,如果将这些查询的结果都保存下 来,必然会占用巨大的外存空间。另外,许多查询用过之后可能再也不 会使用了,也没有必要长期保存。 当记录数据信息的基本表发生变化时,仍可用这些查询进行同样的 查找,并且获得的是变化之后的实际数据。也就是说,可以使查询结果 与表的更改保持同步。
第二步:三个条件都写在“条件”栏目中。如图4-10所示。等同于: flh=“A” and jianjie>50 and cbs=“清华大学出版社”。
图4-1选择创建查询方式窗口 - 选择创建查询方式窗口
第三步:在新建查询对话框中可以选择“使用设计视图”或“者向导方 式”来创建简单查询,其中向导方式根据查询类型的不同还可以分成:简单查 询向导、交叉表查询向导、查找重复项查询向导、查找不匹配项查询向导。 查询的创建可以由一个查询设计器或4个查询向导共5种方式来完成,在 向导的指导下可以完成不同功能的简单查询设计。 1.使用查询设计器创建查询 使用查询设计器创建查询 使用查询设计器创建查询,具有很高的灵活性。 【例4.1】使用查询设计器创建查询,查询所有读者借阅图书的“书 名”、“价格”与“读者姓名”。
4.2.1 简单查询
简单查询是指对于查询的结果没有条件的限制,只是从一个数据源或多个 数据源中提取感兴趣的字段组成一个新的记录集的查询方式。
简单查询的创建主要有两种方式:设计视图和查询向导。新建简 单查询的步骤如下: 第一步:在数据库窗口中选择【查询】模块。 第二步:单击工具栏上的【新建】按钮,然后在弹出的对话框中 选择新建的方式,如图4-1所示。
数据库原理与应用第四章课件

4.1 数 据 依 赖
2. 三种函数依赖 在R(U)中,如果X→Y,并且对于X的任意一个真子集X‘,
都有X’不能确定Y,则称Y对X完全函数依赖。 若X →Y,但Y不完全函数依赖于X,则称Y对X部分函数依
赖。
在R(U)中,如果X→Y,(X不属于Y),Y→Z,(Z不属于
Y),则称Z对X传递函数依赖。
关 系 模 式 R<U , F>∈1NF , 如 果 对 于 R 的 每 个 函 数 依 赖 X→Y,若Y不属于X,则X必含有候选码,那么R∈BCNF。
4.3 模 式 分 解
把泛关系模式R用一组关系模式的集合ρ={R1,R2,…, Rk}来表示(R1,R2,...,Rk)都是R的子集,ρ就是数据库模式。以ρ 代替R的过程称为关系模式的分解。实际上,关系模式的分解不 仅仅是属性集合的分解,它是对关系模式上的函数依赖集、以 及关系模式的当前值分解的具体表现。
4.1 数 据 依 赖
3. 最小函数依赖集 每一个函数依赖集F均等价于一个极小函数依赖集Fm。此
Fm称为F的最小依赖集。
4.2 关系的规范化
4.2.1 第一范式
如果一个关系模式R的所有属性都是不可分的基本数据项, 则R∈1NF。
第一范式是对关系模式的最起码的要求。不满足第一范式 的数据库模式不能称为关系数据库。但是满足第一范式的关系 模式并不一定是一个好的关系模式。
4.3 模 式 分 解
2.模式分解的具体算法 算法1 (合成法)转换为3NF的保持函数依赖的分解。 算法2 转换为3NF既有无损连接性又保持函数依赖的分解。
本章小结
《数据库原理及应用》教学课件 第四章数据操纵与查询

本例需要查询学生选课信息,即查询数据表 SC 中的所有属性,在 SELECT 后用“*”表示;在 WHERE 子句中使用比较运算符构造查询 条件,输出满足条件的元组。所得查询结果如图所示。
18
4.2 单表查询
4.2.2 无条件查询与条件查询
20
4.2 单表查询
4.2.2 无条件查询与条件查询
(4)确定集合查询
【例4-12】 从数据表 SC 中查询选修了课程“C0204”或“D0101”的学生的选课信息。
SELECT * FROM SC WHERE CNo IN('C0204','D0101')
IN 表示查询属性值属于指定集合的元组。本例查询结果如图 所示。
23
4.2 单表查询
4.2.2 无条件查询与条件查询
(6)空值查询
不同于零和空格,空值不占用任何存储空间。例如,某学生选修了某门课程,但没有参加考试, 这时就会出现数据表中有选课记录但考试成绩为空的情况,空值查询就可以对这类数据进行查询。 同样,也可以对不为空的数据进行查询。
【例4-14】 从数据表 SC中查询考试成绩有效的学生选课信息。 SELECT * FROM SC WHERE Grade IS NOT NULL
查询数据的 SQL 命令为 SELECT,具体语法格式如下:
SELECT [ALL|DISTINCT] <列名> [[AS] <列别名>] [ , N ] FROM <表名> [[AS] <表别名>] [WHERE <条件1>] [GROUP BY <列名1> [HAVING <条件2>] ] [ORDER BY <列名2> [ASC|DESC]]
(完整版)数据库原理与应用习题参考答案

第1章数据库概述1.与文件管理相比,数据库管理有哪些优点?答:(1)相互关联的数据集合;(2)较少的数据冗余;(3)程序与数据相互独立;(4)保证数据的安全可靠;(5)最大限度地保证数据的正确性;(6)数据可以共享并能保证数据的一致性。
2.比较文件管理和数据库管理数据的主要区别。
答:文件系统不能提供数据的独立性,也不能提供数据共享、安全性等功能,这些需要客户端编程实现。
而数据库管理系统可以很方便地提供这些功能。
3.在数据库管理方式中,应用程序是否需要关心数据的存储位置和结构?为什么?答:不需要。
因为这些都由数据库管理系统来维护。
4.在数据库系统中,数据库的作用是什么?答:数据库是存储数据的仓库,其作用是存储数据。
5.在数据库系统中,应用程序可以不通过数据库管理系统而直接访问数据库文件吗?答:不可以。
6.数据独立性指的是什么?它能带来哪些好处?答:数据独立性包括逻辑独立性和物理独立性两部分。
物理独立性是指当数据的存储结构发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内容发生变化时,不影响应用程序的特性。
这两个独立性使用户只需关心逻辑层即可,同时增强了应用程序的可维护性。
7.数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么?答:数据库系统一般包括3个主要部分:数据库、数据库管理系统和应用程序。
数据库是数据的汇集,它以一定的组织形式保存在存储介质上;数据库管理系统是管理数据库的系统软件,它可以实现数据库系统的各种功能;应用程序专指以数据库数据为基础的程序8.在文件服务器结构和客户/服务器结构中,对数据的处理有什么区别?答:在文件服务器结构中,数据的处理是在客户端完成的,而在客户/服务器结构中,对数据的处理是在服务器端完成的,服务器返回给客户端的是处理后的结果。
第2章数据模型与数据库系统结构1.解释数据模型的概念,为什么要将数据模型分成两个层次?答:数据模型实际上是模型化数据和信息的工具,在数据库中,数据模型要满足三个要求:第一,要能够比较真实地模拟现实世界;第二,要容易被人们理解;第三,要能够很方便地在计算机上实现。
数据库原理及应用chp4课后习题答案

第四章 关系规范化1. 设有关系模式R (职工名,项目名,工资,部门号,部门名,部门经理)(职工名,项目名,工资,部门号,部门名,部门经理) 如果规定:如果规定:每个职工可参加多个项目,各领一份工资;每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门经理;每个项目只属于一个部门经理;每个部门只有一个经理。
每个部门只有一个经理。
该模式中,函数依赖关系如下图所示:该模式中,函数依赖关系如下图所示:试回答下列问题:试回答下列问题:(1) 请分析该模式是不是一个好的关系模式?为什么?(5分)分) (2) 试问关系模式R 最高已经达到第几范式?如果该模式不是一个好的模式,试用规范化理论对其进行分解使之达到第三范式。
( 5分)分)参考答案:参考答案: 2、(1) R (职工名,项目名,工资,部门号,部门名,部门经理)不是一个好的关系模式,因为:模式,因为:通过图中关系依赖图可以发现其码为(职工号,项目名)通过图中关系依赖图可以发现其码为(职工号,项目名)① 插入异常插入异常假设职工号为07102,部门号为S1的职工的职工还未还未还未参加项目,参加项目,因项目名是因项目名是主主属性,因此该学生学生的的信息无法插入R 。
② 删除异常删除异常假定某个职工个职工本来本来本来只参加只参加只参加了了项目名为“三建”的一个工的一个工程程。
现在因某种原某种原因,因,他连“他连“三三建”建”工工程也程也不参加不参加不参加了了。
因项目名是。
因项目名是主主属性,此操作将导致此操作将导致该该学生信息学生信息的的职工名项目名工资部门经理部门号部门名整个元组都要删除元组都要删除。
③ 数据冗余度大据冗余度大如果一个职工参加如果一个职工参加了了10个工个工程程,那么他的部门名的部门名称和称和称和部门经理的部门经理的部门经理的值就要重复值就要重复存储了10次。
④ 修改复杂修改复杂例如由于某种原某种原因,因,因,某某职工职工要改变要改变要改变所参所参所参与与的项目,的项目,在修改此在修改此在修改此职工职工职工元组元组元组的项目的项目名的名的同时同时同时,,还可能需要修改能需要修改其部门号,其部门号,部门名部门名称和称和称和部门经理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•I标准(续)
B1级
标记安全保护。“安全”(Security)或“可信的 ”(Trusted)产品; 对系统的数据加以标记,对标记的主体和客体实施强 制存取控制(MAC)、审计等安全机制。
典型例子: • 操作系统
– 惠普公司的HP-UX BLS release 9.0.9+
评估保证 级
EAL7
形式化验证的设计和测试(formally verified design and tested)
A1
第四章
数据库安全性
4.1 计算机安全性概述 4.2 数据库安全性控制 4.3 视图机制 4.4 审计(Audit)
4.5 数据加密
4.6 统计数据库安全性 4.7 小结
4.2数据库安全性控制概述
因为口令无需解密,只要用相同的加密算法对
用户输入密码加密,然后比对系统中已经存在
的加密口令,相同即可。
4.2.2 存取控制
1. 存取控制机制组成
① 定义用户权限,记入数据字典(Data Dictionary ) ② 合法权限检查
2. 用户权限定义和合法权检查机制一起组成
了DBMS的安全子系统
存取控制(续)
4.1.2 安全标准简介 ◆TCSEC/TDI标准
TCSEC 是 1985 年美国国防部( DoD )正式颁布的《DoD 可 信 计 算 机 系 统 评 估 准 则 》 ( Trusted Computer System
Evaluation Criteria,TCSEC或DoD85),又称桔皮书。1991
年4月美国国家计算机安全中心(NCSC)颁布了《可信计算机 系 统 评 估 准 则 关 于 可 信 数 据 库 系 统 的 解 释 》 ( Trusted DataBase Interpretation,TDI),也称紫皮书。
◆CC标准
1993年将各自独立的准则集合成一组单一、能被广泛使用的 IT安全准则(Common Criteria) CC通用标准。
GRANT(续)
发出GRANT:
DBA 数据库对象创建者(即属主Owner) 拥有该权限的用户
按受权限的用户 一个或多个具体用户 PUBLIC(全体用户)
WITH GRANT OPTION子句
WITH GRANT OPTION子句: 指定:可以再授予 没有指定:不能传播 不允许循环授权
TCSEC/TDI标准(续)
C2级
安全产品的最低档次; 提供受控的存取保护,将C1级的自主存取控制(DAC)进 一步细化,以个人身份注册负责,并实施审计和资源隔离;
达到C2级的产品在其名称中往往不突出“安全”(Security) 这一特色。
典型例子:
• 操作系统 – Microsoft的Windows 2000
例题(续)
[例3] 把对表SC的查询权限授予所有用户
GRANT SELECT
ON TABLE SC
TO PUBLIC;
例题(续)
[例4] 把查询Student表和修改学生学号的权限授给 用户U4 GRANT SELECT, UPDATE(Sno) ON TABLE Student
TO U4; 对属性列的授权时必须明确指出相应属性列名
数据对象 操作类型
定义用户存取权限:定义用户可以在哪些数据库 对象上进行哪些类型的操作
定义存取权限称为授权
自主存取控制方法(续)
关系数据库系统中存取控制对象
对象类型 数据库 对象 模式 基本表 模式 视图 索引 数据 数据 基本表和视图 属性列 CREATE SCHEMA CREATE TABLE,ALTER TABLE CREATE VIEW CREATE INDEX SELECT,INSERT,UPDATE,DELETE, REFERENCES,ALL PRIVILEGES SELECT,INSERT,UPDATE, REFERENCES ALL PRIVILEGES 操作类型
• 数据库
– Oracle公司的Trusted Oracle 7 – Sybase公司的Secure SQL Server version 11.0.6
TCSEC/TDI标准(续)
B2级
结构化保护; 建立形式化的安全策略模型并对系统内的所有主体和客 体实施DAC和MAC;
经过认证的B2级以上的安全系统非常稀少。
计算机系统中,安全措施是一级一级层层设置
计算机系统的安全模型
数据库安全性控制概述(续)
数据库安全性控制的常用方法
① 用户标识和鉴定
② 存取控制 ③ 视图 ④ 审计 ⑤ 密码存储
4.2 数据库安全性控制
4.2.1 用户标识与鉴别
4.2.2 存取控制
4.2.3 自主存取控制(DAC)方法 4.2.4 授权(Authorization)与回收
逐步成为新的商业标准。
CC标准
CC
提出国际公认的表述信息技术安全性的结构
把信息产品的安全要求分为
安全功能要求 安全保证要求
CC标准(续)
CC文本三部分组成
简介和一般模型
安全功能要求
安全保证要求
CC标准(续)
CC评估保证级划分
定 功能测试 结构测试 系统地测试和检查 系统地设计、测试和复查 半形式化设计和测试 半形式化验证的设计和测试 C1 C2 B1 B2 B3 义 TCSEC安全级别 (近似相当) EAL1 EAL2 EAL3 EAL4 EAL5 EAL6
例题
[例1] 把查询Student表权限授给用户U1 GRANT SELECT ON TABLE Student TO U1;
例题(续)
[ 例 2] 把对 Student 表和 Course 表的全部权限授予 用户U2和U3 GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3;
数据库原理及应用
Database Principle and Application
第四章 数据库安全性
数据库安全性
问题的提出
数据库的一大特点是数据可以共享
数据共享必然带来数据库的安全性问题
数据库系统中的数据共享不能是无条件的共享
例: 军事秘密、国家机密、新产品实验数据、市场需求 分析、市场营销策略、销售计划、客户档案、医疗档 案、银行储蓄数据
【例如:SQL SERVER 2000】
③ 复杂方式:
用户名和口令易被窃取 每个用户预先约定好一个计算过程或者函数
实现方法
2. 利用只有用户具有的物品
智能卡
3. 利用用户个人特征
签名、声波、指纹等
•
目前DBMS多用户口令识别用户,口令选用字符
越广越不易猜出。口令宜用加密保存,最好采
用不可逆的加密方法(只能加密不能解密)。
安全标准简介(续)
信息安全标准的发展历史
TCSEC/TDI标准
TCSEC/TDI标准的基本内容
◆从四个方面来描述安全性级别划分的指标 安全策略
责任
保证
文档
TCSEC/TDI标准(续) TCSEC/TDI安全级别划分
安全级别
定
义
A1 B3 B2 B1 C2 C1
验证设计(Verified Design) 安全域(Security Domains) 结构化保护(Structural Protection) 标记安全保护(Labeled Security Protection) 受控的存取保护(Controlled Access Protection) 自主安全保护(Discretionary Security Protection)
为计算机系统建立和采取的各种安全保护措施, 以保护计算机系统中的硬件、软件及数据,防
止其因偶然或恶意的原因使系统遭到破坏,数
据遭到更改或泄露等。
计算机系统的三类安全性问题(续)
计算机系统的三类安全性问题
◆技术安全类
计算机系统中采用具有一定安全性的硬件、软
件来实现对计算机系统及其所存数据的安全保护,
当计算机系统受到无意或恶意的攻击时仍能保证系
统正常运行,保证系统内的数据不增加、不丢失、
不泄露。
计算机系统的三类安全性问题(续) ◆管理安全类
由于管理不善导致的计算机设备和数据介
质的物理破坏、丢失等软硬件意外故障以及
场地的意外事故等安全问题。
◆政策法律类
政府部门建立的有关计算机犯罪、数据安 全保密的法律道德准则和政策法规、法令。
数据库安全性
数据库安全性
数据库中数据的共享是在DBMS统一的严格的 控制之下的共享,即只允许有合法使用权限的 用户访问允许他存取的数据
数据库系统的安全保护措施是否有效是数据库 系统主要的性能指标之一
什么是数据库的安全性
数据库的安全性是指保护数据库,防止因用户
非法使用数据库造成数据泄露、更改或破坏。
D
最小保护(Minimal Protection)
TCSEC/TDI标准(续)
四组(division)七个等级
• • • • D C(C1,C2) B(B1,B2,B3) A(A1)
按系统可靠或可信程度逐渐增高。
各安全级别之间具有一种偏序向下兼容的关系 ,即较高安全性级别提供的安全保护要包含较 低级别的所有保护要求,同时提供更多或更完 善的保护能力。
4.2.5 数据库角色
4.2.6 强制存取控制(MAC)方法
4.2.1 用户标识与鉴别 用户标识与鉴别 (Identification & Authentication)
◆系统提供的最外层安全保护措施
实现方法
1. 利用只有用户知道的信息
① 用户标识 User ID