数据库系统理论复习资料利于复习_第1页
数据库系统理论复习资料利于复习_第2页
数据库系统理论复习资料利于复习_第3页
数据库系统理论复习资料利于复习_第4页
数据库系统理论复习资料利于复习_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

W数据库系统理论复习资料什么是数据?什么是信息?数据和信息有什么区别和联系? 数据(Data) 是数据库中存储的基本对象 数据的定义 描述事物的符号记录数据的种类 文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等 信息与数据之间存在着固有联系:数据是信息的符号表示或称为载体;信息则是数据的内涵,是对数据语义的解释。数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库的基本特征 数据按一定的数据模型组织、描述和储存可为各种用户共享 冗余度较小 数据独立性较高 易扩展DBMS位于用户与操作系统之间的一层数据管理软件。 是基础软件,是一个大型复杂的软件系统 DBMS 的用途 科学地组织和存储数据、高效地获取和维护数据 DBMS 的主要功能 数据定义功能 提供数据定义语言(DDL) 定义数据库中的数据对象 数据组织、存储和管理 分类组织、存储和管理各种数据 确定组织数据的文件结构和存取方式 实现数据之间的联系 提供多种存取方法提高存取效率 数据操纵功能 提供数据操纵语言(DML) 实现对数据库的基本操作 (查询、插入、删除和修改) 数据库的事务管理和运行管理 数据库在建立、运行和维护时由DBMS统一管理和控制保证数据的安全性、完整性、多用户对数据的并发使用发生故障后的系统恢复 数据库的建立和维护功能(实用程序) 数据库初始数据装载转换 数据库转储 介质故障恢复 数据库的重组织 性能监视分析等 其它功能 DBMS与网络中其它软件系统的通信 两个DBMS系统的数据转换 异构数据库之间的互访和互操作v 什么是数据库系统(Database System,DBS) v 数据库系统的构成 数据库 数据库管理系统(及其开发工具) 应用系统 数据库管理员 什么是数据处理?围绕着数据所做的工作都可称为数据处理。即对各种数据进行收集、管理、加工和传播的一系列活动的总和。如:对全班学生信息进行收集、存储和查询。数据处理包括哪些工作?v 1) 数据管理:收集信息、将信息用数据表示并按类别组织保存; 收集和整理数据; 组织和保存数据; 进行数据维护; 提供数据查询和数据统计功能。 v 2) 数据加工:对数据进行变换、抽取和运算; v 3) 数据传播:在空间或时间上以各种形式传播信息,而不改变数据的结构、性质和内容;数据管理技术v 什么是数据管理技术 对数据进行分类、组织、编码、存储、检索和维护 数据处理的中心问题 数据管理和数据处理的关系是什么?v 数据管理是数据处理业务的基本环节,而且是任何数据处理业务中必不可少的共有部分。v 数据处理是与数据管理相联系的,数据管理技术的优劣,将直接影响数据处理的效率。v 应研制有效的数据管理软件,以减少程序员的负担。数据管理技术的产生和发展(续)v 数据管理技术的发展动力 应用需求的推动 计算机硬件的发展 计算机软件的发展 一、人工管理阶段 二、文件系统阶段 三、数据库系统阶段 数据库系统的特点是什么?数据结构化 数据的共享性高,冗余度低,易扩充 数据独立性高 数据由DBMS 统一管理和控制 数据独立性高 物理独立性指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。逻辑独立性指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。数据独立性是由DBMS的二级映像功能来保证的DBMS提供的数据控制功能 (1)数据的安全性(Security)保护保护数据,以防止不合法的使用造成的数据的泄密和破坏。 (2)数据的完整性(Integrity)检查将数据控制在有效的范围内,或保证数据之间满足一定的关系。 (3)并发(Concurrency)控制对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。 (4)数据库恢复(Recovery)将数据库从错误状态恢复到某一已知的正确状态。应用程序与数据的对应关系(数据库系统)数据模型 在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟。数据模型应满足三方面要求能比较真实地模拟现实世界 容易为人所理解 便于在计算机上实现数据模型分为两类(分属两个不同的层次)(1) 概念模型 也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。 (2) 逻辑模型和物理模型 逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。什么是数据结构?描述数据库的组成对象,以及对象之间的联系 数据操作 对数据库中各种对象( 型) 的实例( 值) 允许执行的操作及有关的操作规则数据操作的类型 查询 更新( 包括插入、删除、修改)E-R 图关系数据库系统采用关系模型作为数据的组织方式 关系(Relation)一个关系对应通常说的一张表 元组(Tuple ) 表中的一行即为一个元组 属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名 关系的完整性约束条件 实体完整性 参照完整性 用户定义的完整性 模式(Schema)数据库逻辑结构和特征的描述是型的描述反映的是数据的结构及其联系模式是相对稳定的数据库系统模式的概念 数据库系统的三级模式结构 数据库的二级映像功能与数据独立性 数据库系统的三级模式结构 模式(Schema ) 外模式(External Schema ) 内模式(Internal Schema ) 模式(也称逻辑模式) 数据库中全体数据的逻辑结构和特征的描述所有用户的公共数据视图,综合了所有用户的需求一个数据库只有一个模式 模式的地位:是数据库系统模式结构的中间层 与数据的物理存储细节和硬件环境无关与具体的应用程序、开发工具及高级程序设计语言无关外模式(也称子模式或用户模式) 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示 一个数据库可以有多个外模式。但一个应用程序只能使用一个外模式 外模式(续) 内模式(也称存储模式)是数据物理结构和存储方式的描述是数据在数据库内部的表示方式一个数据库只有一个内模式二级映象在DBMS 内部实现这三个抽象层次的联系和转换 外模式模式映像 模式内模式映像 一、外模式模式映象 v 模式:描述的是数据的全局逻辑结构v 外模式:描述的是数据的局部逻辑结构 v 同一个模式可以有任意多个外模式 v 每一个外模式,数据库系统都有一个外模式模式映象,定义外模式与模式之间的对应关系 二、模式内模式映象 v 模式内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。 例如,说明逻辑记录和字段在内部是如何表示的v 数据库中模式内模式映象是唯一的v 该映象定义通常包含在模式描述中 数据库的内模式 依赖于它的全局逻辑结构 独立于数据库的用户视图,即外模式 独立于具体的存储设备 将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率 数据库的外模式 面向具体的应用程序 定义在逻辑模式之上 独立于存储模式和存储设备 当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就得做相应改动 设计外模式时应充分考虑到应用的扩充性 一、硬件平台及数据库二、软件 DBMS支持DBMS 运行的操作系统 与数据库接口的高级语言及其编译系统 以DBMS 为核心的应用开发工具 为特定应用环境开发的数据库应用系统 三、人员 数据库管理员 系统分析员和数据库设计人员 应用程序员 用户 第一章 绪论12 存在问题:研究生与学生是否作为一类实体型如何给联系起名字是否该区分教授副教授?1n1学校1n1nnmn1n1系班级教研室学生课程教员系班选修系教班生室教指导校系n13存在问题:原材料和零件与仓库的存储联系是否可以作为一个联系原材料和仓库的联系类型仓库是一个实体,有多个同学画成了两个实体q产品零件原材料仓库构成存储制造存放mnpn1mn1)求供应工程J1零件的供应商号码SNO:Sno(Jno=J1(SPJ))GET W (SPJ.SNO) : Jno=J12)求供应工程J1零件P1的供应商号码SNO:Sno(Jno=J1Pno=P1(SPJ)Sno(Jno=J1(Pno=P1(SPJ)Sno(Jno=J1 (SPJ) (Pno=P1(SPJ)GET W (SPJ.SNO) : Jno=J1Pno=P13)求供应工程J1零件为红色的供应商号码SNO:Sno(COLOR=红 (P)Jno=J1 (SPJ))RANGE P PXGET W (SPJ.SNO) : $PX(PX.COLOR = 红 SPJ.JNO = J1PX.PNO = SPJ.PNO)4)求没有使用天津供应商生产的红色零件的工程号JNO:Jno(J)- JNO(city=天津Color=红 (SSPJP)GET W (J.JNO) : $SPJX(SPJX.JNO=J.JNO $SX(SX.SNO = SPJX.SNOSX.CITY=天津) $PX(PX.PNO = SPJX.PNO PX.COLOR = 红)5)求至少用了供应商S1所供应的全部零件的工程号JNO: Jno,Pno(SPJ) Pno(Sno=S1 (SPJ)RANGE SPJ SPJXRANGE SPJ SPJYRANGE P PXGET W (J.JNO) : PX($SPJX(SPJX.PNO = PX.PNO SPJX.SNO = S1) $SPJY(SPJY.PNO=PX.PNO SPJY.JNO=J.JNOSPJX.SNO=S1)3用SQL语句建立第二章习题5中的四个表。S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNAME,CITY); SPJ(SNO,PNO,JNO,QTY);1) 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成:CREATE TABLE S(Sno CHAR(2) UNIQUE,Sname CHAR(6) ,Status Numric(2),City CHAR(4)2) 零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成:CREATE TABLE P(Pno CHAR(2) UNIQUE,Pname CHAR(6),COLOR CHAR(2), WEIGHT Integer(2)3) 工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、所在城市(CITY)组成:CREATE TABLE J(Jno CHAR(2) UNlQUE,JNAME CHAR(8), CITY CHAR(4)4) 供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成:CREATE TABLE SPJ(Sno CHAR(2),Pno CHAR(2),JNO CHAR(2), QTY Numnic(2)4针对上题中建立的四个表试用SQL语言完成第二章习题5中的查询:1) 求供应工程J1零件的供应商号码SNO:SELECT DISTINCT SNO FROM SPJ WHERE JNO=J1尽量不要写成SELECT DISTINCT SNO FROM SPJ WHERE JNO LIKE J12) 求供应工程J1零件P1的供应商号码SNO:SELECT DISTINCT SNO FROM SPJ WHERE JNO=J1 AND PNO=P13) 求供应工程J1零件为红色的供应商号码SNO:SELECT SNO FROM SPJ,P WHERE JNO=J1 AND SPJ.PNO=P.PNO AND COLOR=红不要忘了连接条件SPJ.PNO=P.PNO4) 求没有使用天津供应商生产的红色零件的工程号JNO:SELECT DISTINCT JNO FROM J WHERE JNO NOT IN (SELECT JNO FROM SPJ,P,S WHERE S.CITY=天津 AND COLOR=红 AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。 不能使用existsCITY NOT LIKE 天津 或者 CITY != 天津5) 求至少用了供应商S1所供应的全部零件的工程号JNO。select distinct jno /*不存在这样的工程,它没有使用任何一种由S1供应的零件*/from spj spjzwhere not exists( select * from spj spjx where sno = S1 and not exists( select * from spj spjy where spjy.pno = spjx.pno and spjy.jno=spjz.jno and spjy.sno=S1);5针对习题3中的四个表试用SQL语言完成以下各项操作:(1)找出所有供应商的姓名和所在城市。 SELECT SNAME,CITY FROM S(2)找出所有零件的名称、颜色、重量。SELECT PNAME,COLOR,WEIGHT FROM P(3)找出使用供应商S1所供应零件的工程号码。 SELECT DISTINCT JNO FROM SPJ WHERE SNO=S1(4)找出工程项目J2使用的各种零件的名称及其数量。SELECT PNAME,QTY FROM SPJ,P WHERE P.PNO=SPJ.PNO AND SPJ.JNO=J2(5)找出上海厂商供应的所有零件号码。SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY=上海(6)出使用上海产的零件的工程名称。SELECT JNAME FROM SPJ,S,JWHERE S.SNO=SPJ.SNO AND S.CITY=上海 AND J.JNO=SPJ.JNO(7)找出没有使用天津产的零件的工程号码。SELECT DISTINCT JNO FROM J WHERE JNO NOT IN (SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY=天津) 不能写成SELECT JNOFROM SPJWHERE NOT EXISTS(SELECT * FROM SWHERE S.CITY = 天津)也不能写成SELECT JNOFROM J,SPJWEHRE CITY != 天津 AND J.JNO = SPJ.JNO(8)把全部红色零件的颜色改成蓝色。UPDATE P SET COLOR=蓝 WHERE COLOR=红(9)由S5供给J4的零件P6改为由S3供应。 UPDATE SPJ SET SNO=S3 WHERE SNO=S5 AND JNO=J4 AND PNO=P6部分同学where条件不全或写成 UPDATE SPJ SET SNO=S5 WHERE JNO=J4 AND PNO=P6(10)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。 A、DELETE FROM S WHERE SNO=S2 B、DELETE FROM SPJ WHERE SNO=S2 不能写成DELETE FROM SPJ,S WHERE SNO=S2(11)请将(S2,J6,P4,200)插入供应情况关系。 INSERT INTO SPJ VALUES(S2,J6,P4,200) 有同学没加引号计算机系统安全性 为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件 、软件 及数据 ,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。 计算机系统的三类安全性问题 技术安全类 管理安全类 政策法律类 数据库安全性控制的常用方法 用户标识和鉴定 存取控制 视图 审计 密码存储 存取控制机制组成 定义用户权限 合法权限检查 用户权限定义和合法权检查机制一起组成了 DBMS 的安全子系统 常用存取控制方法 自主存取控制 (Discretionary Access Control , 简称DAC ) C2 级 灵活 强制存取控制 (Mandatory Access Control , 简称 MAC ) B1 级 严格 4.2 数据库安全性控制 4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权与回收4.2.5 数据库角色4.2.6 强制存取控制方法4.2.3 自主存取控制方法 v 通过 SQL 的 GRANT 语句和 REVOKE 语句实现v 用户权限组成数据对象操作类型v 定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作v 定义存取权限称为授权 自主存取控制方法(续) v 关系数据库系统中存取控制对象 例 把对Student 表和Course 表的全部权限授予用户U2 和U3 GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3; 例题 例3 把对表SC 的查询权限授予所有用户 GRANT SELECT ON TABLE SC TO PUBLIC; 例5 把对表SC 的INSERT 权限授予U5 用户,并允许他再将此权限授予其他用户 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;REVOKE (续) 例8 把用户U4 修改学生学号的权限收回 REVOKE UPDATE(Sno)ON TABLE Student FROM U4;数据库角色 被命名的一组与数据库操作相关的权限 例11通过角色来实现将一组权限授予一个用户。步骤如下:1. 首先创建一个角色 R1 CREATE ROLE R1;2. 然后使用GRANT语句,使角色R1拥有Student表的SELECT、UPDATE、INSERT权限 GRANT SELECT,UPDATE,INSERT ON TABLE Student TO R1;3. 将这个角色授予王平,张明,赵玲。使他们具有角色R1 所包含的全部权限 GRANT R1 TO 王平,张明,赵玲; 4. 可以一次性通过R1 来回收王平的这3 个权限 REVOKE R1 FROM 王平; 强制存取控制方法主体 是系统中的活动实体 DBMS 所管理的实际用户 代表用户的各进程 客体 是系统中的被动实体,是受主体操纵的 文件 基表 索引 视图 主体的敏感度标记称为许可证级别(Clearance Level)客体的敏感度标记称为密级(Classification Level) 强制存取控制规则 (1) 仅当主体的许可证级别大于或等于 客体的密级时,该主体才能读 取相应的客体 (2) 仅当主体的许可证级别等于 客体的密级时,该主体才能写 相应的客体 视图机制 把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护 审计分为 用户级审计针对自己创建的数据库表或视图进行审计 记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作 系统级审计 DBA设置 监测成功或失败的登录要求 监测GRANT和REVOKE操作以及其他数据库级权限下的操作AUDIT 语句: 设置审计功能 NOAUDIT 语句:取消审计功能 审计(续) 例15对修改SC表结构或修改SC表数据的操作进行审计 AUDIT ALTER,UPDATE ON SC;例16取消对SC表的一切审计 NOAUDIT ALTER,UPDATE ON SC;数据加密防止数据库中数据在存储和传输中失密的有效手段加密的基本思想加密方法替换方法 置换方法 混合方法数据库完整性数据的正确性和相容性数据的完整性防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据防范对象:不合语义的、不正确的数据数据的安全性保护数据库防止恶意的破坏和非法的存取防范对象:非法用户和非法操作1. 提供定义完整性约束条件的机制 2. 提供完整性检查的方法 3. 违约处理 数据库完整性 实体完整性 参照完整性 用户定义的完整性实体完整性定义( 续)例2将SC表中的Sno,Cno属性组定义为码 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno,Cno) /*只能在表级定义主码*/ ); 关系模型的参照完整性定义 在CREATE TABLE 中用FOREIGN KEY 短语定义哪些列为外码 用REFERENCES 短语指明这些外码参照哪些表的主码 例如,关系SC中一个元组表示一个学生选修的某门课程的成绩,(Sno,Cno)是主码。Sno,Cno分别参照引用Student表的主码和Course表的主码 例3 定义SC中的参照完整性 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno, Cno), /*在表级定义实体完整性*/ FOREIGN KEY (Sno) REFERENCES Student(Sno), /*在表级定义参照完整性*/ FOREIGN KEY (Cno) REFERENCES Course(Cno) /*在表级定义参照完整性*/ ); 参照完整性检查和违约处理 违约处理 参照完整性违约处理1. 拒绝(NO ACTION)执行2. 级联(CASCADE)操作3. 设置为空值(SET-NULL) 对于参照完整性,除了应该定义外码,还应定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论