第4章 实现数据完整性
- 格式:doc
- 大小:321.50 KB
- 文档页数:20
第4章数据库和数据仓库4.1本章知识框架与学习要求数据库技术是数据管理的最新技术,是计算机科学的重要分支。
它已经成为先进信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心。
数据库已经成为人们存储数据、管理信息、共享资源的最先进最常用的技术。
认识和掌握有关的数据库技术对学好本课程具有重要作用。
本章主要介绍了数据库技术的相关概念包括数据的组织层次、数据模型、信息模型、关系规范化等,以及数据库的设计方法,数据库仓库和数据挖掘的概念。
4.1.1 知识框架与学习要求一、数据的描述与组织(掌握)(一)三个世界1.现实世界2.信息世界3.计算机世界(二)数据组织的层次1.数据项(字段)2.记录3.数据文件4.数据库二、数据库管理技术(一)数据管理的发展(了解)1.简单应用阶段2.文件系统阶段3.数据库系统阶段(二)数据库管理系统(掌握)1.数据库系统(DBS)2.数据库管理系统(DBMS)(1)数据库的定义功能(2)数据库的操作功能(3)数据库的保护功能(4)数据库的维护功能(5)数据的存储管理三、数据模型(掌握)(一)信息模型(概念模型)1.信息模型的要素2.两个实体集之间联系的分类3.实体联系模型(E-R模型)(二)数据模型1.数据模型的三要素2.数据模型与信息模型的关系3.三种主要的数据模型(1)层次模型(Hierarchical Model)(2)网状模型(Network Model)(3)关系模型(Relational Model)(三)概念模型向关系模型的转换(四)关系的规范化1.第一范式(1NF)2.第二范式(2NF)3.第三范式(3NF)五、数据库设计(掌握)(一)数据库设计方法简述(二)数据库设计步骤六、数据仓库和数据挖掘(了解)(一)数据仓库1.数据仓库的概念2.数据仓库和数据库的区别3.数据仓库的特性4.数据仓库的基本结构5.数据仓库工具的组成(二)数据挖掘1.数据挖掘的概念2.数据仓库与数据挖掘的关系4.1.2 学习重点本章重点掌握以下几方面的内容:1.三个世界即现实世界、信息世界、计算机世界的特点及区别与联系;2.人工管理阶段、文件系统阶段及数据库系统阶段应用程序与数据关系的区别;3.数据库管理系统功能4.信息(概念)模型的要素、E-R模型的绘制方法;5.数据模型的三要素、数据模型与信息模型的关系、关系模型;6.概念模型向关系模型的转换;7.数据库设计方法和步骤4.2 教材习题与解答4.2.1 习题一、名词解释1.数据库2.记录3.DBMS4.DBS5.概念模式6.数据模型7.概念模型8.键或码9.数据操作10.1NF 11. 2NF 12.3NF 13.关系14.关系模式15.数据仓库16.数据挖掘二、简答题1. 数据库系统组织数据的特点是什么?2. 数据库系统与文件系统的区别是什么?3. 数据管理经历了哪几个阶段?各个阶段的特点是什么?4. 数据模型的三要素是什么?5. 数据库管理系统的主要功能是什么?6. 信息模型的要素有哪些?7. 试述概念模式在数据库中的重要地位。
《网络信息安全B》作业题和考试复习题第2-4章1.什么是拒绝服务攻击?列举出至少四种拒绝服务攻击方法。
2.简单描述SYN Flood攻击的实现原理。
3.简单描述Smurf攻击的实现原理。
6.什么是社交工程攻击?7.网络信息安全需求包含哪六个基本方面?分别简单说明它们的含义。
9.什么是PPDR安全模型?它包含哪几个部分的含义?〔可配合图形描述〕作为一种安全模型,它有哪几个方面的特点?11.TCSEC又叫什么?严格说它是一个电脑安全标准还是网络安全标准?商用操作系统一般是哪些安全级别?它们采用哪种访问控制策略?军用或实验室操作系统一般是哪些安全级别?它们采用哪种访问控制策略?哪种级别的操作系统最安全?哪种级别的操作系统最不安全?现行的Windows和UNIX操作系统分别到达哪个安全级别?现有的商用操作系统是否是“安全的操作系统”?第5679章12.传统密码学和现代密码学最主要的区别是什么?为什么要求现代密码学的加密算法必须公开?14.现代密码学主要分为哪两种加密算法?对称密码加密算法又分为哪两种?15.举出四种最主要的分组加密算法?哪一种最经典?哪一种最安全且灵活?16.举出四种最主要的公开加密算法?哪一种只能用于密钥交换?哪一种只能用于数字签名?哪一种功能最全面且最常用?哪一种是未来的发展方向?17.可以预计,哪种密码学将最终取代现有的对称加密算法和公开加密算法?19.系统中有N个人需要两两保密通信,假设使用对称加密算法,每个人需要保存多少个密钥,系统中一共有多少个密钥?假设使用公开加密算法,每个人需要保存多少个密钥,系统中一共有多少个密钥?20.如果要用公开加密算法〔如RSA〕实现A将数据机密性地发送给B,该如何实现?该如何实现发送方不可否认〔进行数字签名〕?如果要同时满足机密性和数字签名,该如何使用RSA算法?21.在管理上,对称密钥和公开加密系统中的私钥存在最主要的威胁是什么?22.在管理上,公开加密系统中的公钥存在最主要的威胁是什么?列举一个方案说明如何防范这种威胁?23.使用什么算法可以最简单实现数据在存储和传输中的完整性?这种算法是公开的吗?如何使用它保证数据在传输过程中完整性?第16章27.用图形说明PGP加密系统的工作原理。
计算机网络安全基础(第5版)习题参考答案第1章习题:1.举出使用分层协议的两条理由?1.通过分层,允许各种类型网络硬件和软件相互通信,每一层就像是与另一台计算机对等层通信;2.各层之间的问题相对独立,而且容易分开解决,无需过多的依赖外部信息;同时防止对某一层所作的改动影响到其他的层;3.通过网络组件的标准化,允许多个提供商进行开发。
2.有两个网络,它们都提供可靠的面向连接的服务。
一个提供可靠的字节流,另一个提供可靠的比特流。
请问二者是否相同?为什么?不相同。
在报文流中,网络保持对报文边界的跟踪;而在字节流中,网络不做这样的跟踪。
例如,一个进程向一条连接写了1024字节,稍后又写了另外1024字节。
那么接收方共读了2048字节。
对于报文流,接收方将得到两个报文,、每个报文1024字节。
而对于字节流,报文边界不被识别。
接收方把全部的2048字节当作一个整体,在此已经体现不出原先有两个不同的报文的事实。
3.举出OSI参考模型和TCP/IP参考模型的两个相同的方面和两个不同的方面。
OSI模型(开放式系统互连参考模型):这个模型把网络通信工作分为7层,他们从低到高分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
第一层到第三层属于低三层,负责创建网络通信链路;第四层到第七层为高四层,具体负责端到端的数据通信。
每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持。
TCP/IP模型只有四个层次:应用层、传输层、网络层、网络接口层。
与OSI功能相比,应用层对应的是OSI的应用层、表示层、会话层;网络接口层对应着OSI的数据链路层和物理层。
两种模型的不同之处主要有:(1) TCP/IP在实现上力求简单高效,如IP层并没有实现可靠的连接,而是把它交给了TCP层实现,这样保证了IP层实现的简练性。
OSI参考模型在各层次的实现上有所重复。
(2) TCP/IP结构经历了十多年的实践考验,而OSI参考模型只是人们作为一种标准设计的;再则TCP/IP有广泛的应用实例支持,而OSI参考模型并没有。
第4章实现数据完整性本章概述保证数据库中的数据遵循范式的同时不会在数据的添加删除和修改等操作中产生矛盾或者缺失,是数据库程序员的一项重要任务。
本章介绍了数据完整性的概念,包括可用于强制数据完整性的方法。
本章重点介绍了确保数据完整性的主要方法——约束,并介绍了各种约束类型。
本章还详细讨论了如何创建和实现约束以及在必要时禁用约束的方法。
同时,本章还讨论了默认值和规则,并概括了几种不同方法的比较。
学习完本章后,学生能够理解数据完整性的重要性,并可以通过各种手段保证企业数据完整。
教学目标●了解数据完整性类型●掌握强制数据完整性的方法●掌握如何确定使用哪种约束并创建该约束●了解定义和使用DEFAULT、CHECK、PRIMARY KEY、UNIQUE和FOREIGN KEY约束●掌握禁用约束检查●了解及使用默认值和规则●掌握确定使用哪种方法保证数据完整性教学重点●数据完整性的概念,考试中也经常出现概念题。
●约束的类型,以及何时使用何种约束的原则。
●创建和使用约束。
教学难点●数据完整性概念,如何同企业场景结合起来。
●不同约束类型的比较。
●何时使用哪种保证数据完整性的强制方法。
数据库程序设计—SQL Server 2000 数据库程序设计教师参考手册教学资源2第4章实现数据完整性先修知识在正式开始学习本章内容以前,学生须具备下列知识基础。
建议学时课堂教学(4课时)+实验教学(3课时)教学过程4.1数据完整性的类型教学提示:本节主要达到一个目的。
●掌握数据完整性的3种类型:域完整性、实体完整性和引用完整性。
保证了数据完整性,才能使企业数据库在应用中更加健壮。
(略讲)3数据库程序设计—SQL Server 2000 数据库程序设计教师参考手册4.2强制数据完整性教学提示:本节主要达到一个目的。
●了解保证数据完整性的两种途径:通过声明和通过代码。
这两种方法企业中被广泛应用。
(略讲)4第4章实现数据完整性4.3定义约束教学提示:本节主要达到三个目的。
●了解各种约束在不同场合的作用,如何根据企业场景选择约束。
(略讲)●掌握创建约束的方法。
(精讲+演示)●了解使用约束的注意事项。
(略讲)5数据库程序设计—SQL Server 2000 数据库程序设计教师参考手册4.4约束的类型教学提示:本节主要达到两个目的。
●掌握约束的类型,定义约束的语法。
(精讲+演示)●掌握各种约束的区别和应用场景。
(精讲)6第4章实现数据完整性7数据库程序设计—SQL Server 2000 数据库程序设计教师参考手册8第4章实现数据完整性9数据库程序设计—SQL Server 2000 数据库程序设计教师参考手册10114.5禁用约束4.6使用默认值和规则124.7决定使用何种强制方法4.8推荐操作总结经过本章的学习,我们了解了下列的知识和内容。
●数据完整性类型●强制数据完整性的方法●如何确定使用哪种约束并创建该约束●定义和使用DEFAULT、CHECK、PRIMARY KEY、UNIQUE和FOREIGN KEY约束●禁用约束检查●使用默认值和规则●确定使用哪种方法保证数据完整性13在前面四章的学习中,我们已经大量用到了SQL语句对数据库对象进行操作。
下面一章中,我们将详细学习Transact-SQL语言。
随堂练习1.在一个SQL Server 2000中创建一个医院管理系统中的护士(Nurses)和病人(Patients)两个数据表,一个护士可以照看多个病人,而一个病人必须由两个护士共同负责。
在下列四个选项中SQL语句选出正确的选项。
A.CREATE TABLE Nurses{NursesID int NOT NULL PK_Nurses PRIMARY KEY CLUSTERED,Name varchar(20) NOT NULL,}GOCREATE TABLE Patients{PatientsID int NOT NULL PK_Nurses PRIMARY KEY CLUSTERED,Name varchar(20) NOT NULL,NurseID1 int NOT NULL,NurseID2 int NOT NULL}B.CREATE TABLE Nurses{NursesID int NOT NULL PK_Nurses PRIMARY KEY CLUSTERED,Name varchar(20) NOT NULL,}GOCREATE TABLE Patients{PatientsID int NOT NULL PK_Nurses PRIMARY KEY CLUSTERED,Name varchar(20) NOT NULL,14NurseID1 int NOT NULL FOREIGN KEY(NuresesID) reference Nureses,NurseID2 int NOT NULL FOREIGN KEY(NuresesID) reference Nureses }C.CREATE TABLE Nurses{NursesID int NOT NULL PK_Nurses PRIMARY KEY CLUSTERED,Name varchar(20) NOT NULL,}GOCREATE TABLE Patients{PatientsID int NOT NULL PK_Nurses PRIMARY KEY CLUSTERED,Name varchar(20) NOT NULL,NurseID1 int NOT NULL FOREIGN KEY(NuresesID) reference Nureses,NurseID2 int NOT NULL FOREIGN KEY(NuresesID) reference Nureses }GOCREATE TABLE PatientsNurses{PatientNurseID int NOT NULL CONSTRAINT PK_PatientsNurses PRIMARY KEY CLUSTED,NursesID int NOT NULL,PatientID int NOT NULL}D.CREATE TABLE Nurses{NursesID int NOT NULL PK_Nurses PRIMARY KEY CLUSTERED,Name varchar(20) NOT NULL,}15GOCREATE TABLE Patients{PatientsID int NOT NULL PK_Nurses PRIMARY KEY CLUSTERED,Name varchar(20) NOT NULL,}GOCREATE TABLE PatientsNurses{PatientID int NOT NULL REFERENCES Patients(PatientID),NurseID int NOT NULL REFERENCES Nurses(NursesID),CONSTRAINT PK_PatientsNurses PRIMARY KEY(PatientID,NurseID) }正确答案:(D)2.下图为某订购系统中的数据字典结构:请问应当使用何种方式将数据冗余减到最低?A.删除OrderDetails中的CustomerID列16B.使用OrderID和ProductID作为联合主键C.在OrderID列使用索引D.在OrderID列上添加UNIQUE属性正确答案:(A)分析:高效的数据库设计要求规范化数据库。
通过检查数据字典设计,我们发现OrderDetails 中的CustomerID列设计不正确。
CustomerID列属于Customer表,Orders表引用CustomerID列作为外键约束。
将OrderDetails表中的CustomerID列删除可以规范化数据库设计,降低数据冗余和提高性能。
3.在一个网络招聘网站的数据库中有一张记录申请者职业技能的数据表。
表结构如下图所示:应当将标中的哪一列设为主键?A.CandidateIDB.CandidateID和DateLastUsedC.CandidateID和SkillIDD.CandidateID,SKillID和DateLastUsed正确答案:(C)分析:主键约束保证了输入的数据不能为空且保证数据的唯一性。
当主键包含多列时就允许其中的一列的数据内容重复,但是所有主键列的数据组合必须唯一。
在本题中,我们需要创建主键约束来区分不同申请者的不同职业技能。
就必须包含CandidateID和SkillID两列数据作为复合主键。
4.在医院的数据库管理系统中,记录有新生婴儿的信息,使用下面的脚本语句创建一个名为Infants数据库:CREATE TABLE[dbo].[Infants](17[InfantID] [int] NOT NULL,[DateofBirth] [datetime] NOT NULL,[WeightAtBirth] [decimal](5.2) NOT NULL,[MotherID] [int] NOT NULL,[FatherID] [int] NOT NULL) ON [PRIMARY]GOALTER TABLE [dbo].[Infants] WITH NOCHECK ADDCONSTRAINT [PK_Infants]PRIMARY KEY CLUSTERED([InfantID]) ON [PRIMARY]GO如果要确保MotherID和FatherID的正确性,要求将磁盘I/O最小化,应当采用何种方法?A.使用插入触发器检验数据B.使用CHECK约束C.使用外键约束,MotherID和FatherID参照身份证数据库中的IDD.创建规则绑定列MotherID和FatherID正确答案:(C)分析:从数据库的逻辑设计中我们可以看到InfantID列和MotherID与FatherID的关系是一对多的关系:每个婴儿有一对父母,而一对父母有一个或多个孩子。
一对多在SQL Server 等关系型数据库中使用外键约束来实现。
在MotherID和FatherID上建立外键约束可以保证输入数据的参考完整性。
5.在图书馆系统中的数据表Records记录会员借阅图书的信息,假设每个会员可以借阅多本图书,而一个会员不能借阅两本相同的图书。
如果要达到上述设计要求,下列哪种做法最为合理?A.将RecordID和会员ID和图书ID设为联合主键B.在RecordID和会员ID和图书ID列上添加UNIQUE约束18C.在RecordID和会员ID和图书ID列上使用CHECK约束保证D.在RecordID和会员ID和图书ID列上创建索引正确答案:(B)分析:UNIQUE约束保证了一系列列数据的唯一性并保证输入某列的数据不能重复,而这些列不是主键的一部分。