资源描述
考试基本题型及分数分布选择题(30分) 填空题(15分) 简答题(20分)设计题(15分) 综合题(20分)1. 数据库概述(1)理解DB(数据库)、DBMS(数据库管理系统)和DBS(数据库系统)的概念和它们之间的关系;数据库的定义数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。什么是DBMS 位于用户与操作系统之间的一层数据管理软件。 是基础软件,是一个大型复杂的软件系统.数据库系统(Database System,简称DBS)在计算机系统中引入数据库后的系统构成(2) 理解数据库系统的特点; 数据结构化 数据的共享性高,冗余度低,易扩充 数据独立性高 数据由DBMS统一管理和控制(3) 掌握数据模型的概念和三个基本要素; 概念: 数据模型是对现实世界数据特征的抽象,通俗地讲数据模型就是现实世界的模拟。 数据模型应满足三方面要求(比较真实地模拟现实世界容易为人所理解便于在计算机上实现) 数据模型是数据库系统的核心和基础三个基本要素: 数据结构 数据操作 数据的完整性约束条件(4) 理解数据库系统的三级模式结构和二级映像功能;模式(Schema)模式的定义:数据的逻辑结构(数据项的名字、类型、取值范围等) 数据之间的联系 数据有关的安全性、完整性要求 模式(也称逻辑模式):数据库中全体数据的逻辑结构和特征的描述,所有用户的公共数据视图,综合了所有用户的需求,一个数据库只有一个模式 模式的地位:是数据库系统模式结构的中间层,与数据的物理存储细节和硬件环境无关,与具体的应用程序、开发工具及高级程序设计语言无关外模式(External Schema) 外模式(也称子模式或用户模式): 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示外模式的地位:介于模式与应用之间模式与外模式的关系:一对多外模式通常是模式的子集对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同外模式与应用的关系:一对多同一外模式也可以为某一用户的多个应用系统所使用但一个应用程序只能使用一个外模式外模式的用途保证数据库安全性的一个有力措施每个用户只能看见和访问所对应的外模式中的数据内模式(Internal Schema) 内模式(也称存储模式):是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,记录的存储方式(顺序存储,按照B树结构存储,按hash方法存储)索引的组织方式: 数据是否压缩存储、数据是否加密、数据存储记录结构的规定、一个数据库只有一个内模式三级模式是对数据的三个抽象级别二级映象在DBMS内部实现这三个抽象层次的联系和转换外模式模式映像:保证数据的逻辑独立性模式内模式映像:保证数据的物理独立性(5) 掌握数据库物理独立性的含义和逻辑独立性的含义。保证数据的逻辑独立性: 当模式改变时,数据库管理员修改有关的外模式模式映象,使外模式保持不变。保证数据的物理独立性: 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式内模式映象,使模式保持不变。本章占试卷总分6%2. 关系数据库(1)熟练掌握关系模型的完整性规则;1 实体完整性规则2.1 实体完整性规则(Entity Integrity)若属性A是基本关系R的主属性,则属性A不能取空值空值就是“不知道”或“不存在”或“无意义”的值2 参照完整性规则2.2 参照完整性规则 若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值3 用户定义的完整性针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不需由应用程序承担这一功能。(2) 掌握传统的并、交、差和笛卡儿积运算;(3) 深入理解专门关系运算含义,特别是不同种类连接操作的区别与联系;(4)能够应用除运算解决实际问题;(5)能够同时运用传统运算和专门关系运算解决实际问题;(6)熟练应用关系代数表达式完成实际的查询操作。设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式: S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNANE,CITY); SPJ(SNO,PNO,JNO,QTY)。 其中:供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表J 由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量组成(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。 试分别用关系代数和sql语句写出如下查询: 1)求供应工程J1 零件的供应商号码SNO。 2)求供应工程J1 零件P1的供应商号码SNO。 3)求供应工程J1 零件为红色的供应商号码SNO。 4)求没有使用天津供应商生产的红色零件的工程号。 5)求至少用了供应商S1所供应的全部零件的工程号。关系代数:1)求供应工程J1零件的供应商号码SNO:Sno(Sno=J1(SPJ))2)求供应工程J1零件P1的供应商号码SNO:Sno(Sno=J1Pno=P1(SPJ)3)求供应工程J1零件为红色的供应商号码SNO:Sno(Pno=P1(COLOR=红 (P)SPJ))4)求没有使用天津供应商生产的红色零件的工程号JNO:Jno(SPJ)- JNO(city=天津Color=红 (SSPJP)5)求至少用了供应商S1所供应的全部零件的工程号JNO:Jno,Pno(SPJ) Pno(Sno=S1 (SPJ)sql语句:( l )求供应工程 Jl 零件的供应商号码 SNO ;SELECT SNO FROM SPJ WHERE JNO=J1( 2 )求供应工程 Jl 零件 Pl 的供应商号码 SNO ;SELECT SNO FROM SPJ WHERE JNO=J1 AND PNO=P1( 3 )求供应工程 Jl 零件为红色的供应商号码 SNO ;SELECT SNO FROM SPJ,P WHEREJNO=J1 AND SPJ.PNO=P.PNO AND COLOR=红( 4 )求没有使用天津供应商生产的红色零件的工程号 JNO ;SELECT JNO FROM SPJ WHERE JNO NOT IN(SELE JNO FROM SPJ,P,S WHERE S.CITY=天津 AND COLOR=红 ANDS.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。( 5 )求至少用了供应商 Sl 所供应的全部零件的工程号 JNO ;由于VFP不允许子查询嵌套太深,将查询分为两步A、查询S1供应商供应的零件号SELECT PNO FROM SPJ WHERE SNO=S1结果是(P1,P2)B、查询哪一个工程既使用P1零件又使用P2零件。SELECT FROM SPJ WHEREPNO=P1AND JNO IN (SELECT JNO FROM SPJ WHERE PNO=P2)本章占试卷总分12%3. 关系数据库标准语言SQL (1)掌握SQL语言的主要功能;sQL 的数据定义功能包括定义表、定义视图和定义索引。 SQL 语言使用 cREATE TABLE 语句建立基本表, ALTER TABLE 语句修改基本表定义, DROP TABLE 语句删除基本表;使用 CREATE INDEX 语句建立索引, DROP INDEX 语句删除索引;使用 CREATE VIEW 语句建立视图, DROP VIEW 语句删除视图。(2) 掌握数据定义语句中的create和drop基本语法;例3CREATE SCHEMA TEST AUTHORIZATION ZHANG CREATE TABLE TAB1(COL1 SMALLINT, COL2 INT, COL3 CHAR(20), COL4 NUMERIC(10,3), COL5 DECIMAL(5,2) ); 为用户ZHANG创建了一个模式TEST,并在其中定义了一个表TAB1。DROP SCHEMA CASCADE(级联) 删除模式的同时把该模式中所有的数据库对象全部删除RESTRICT(限制) 如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行。 当该模式中没有任何下属的对象时 才能执行。例4 DROP SCHEMA ZHANG CASCADE; 删除模式ZHANG 同时该模式中定义的表TAB1也被删除例5 建立“学生”表Student,学号是主码,姓名取值唯一 CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, /* 列级完整性约束条件*/ Sname CHAR(20) UNIQUE, /* Sname取唯一值*/ Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20) ); 例6 建立一个“课程”表Course CREATE TABLE Course ( Cno CHAR(4) PRIMARY KEY, Cname CHAR(40), Cpno CHAR(4) , Ccredit SMALLINT, FOREIGN KEY (Cpno) REFERENCES Course(Cno) ); 例7 建立一个“学生选课”表SCCREATE TABLE SC (Sno CHAR(9), Cno CHAR(4), Grade SMALLINT, PRIMARY KEY (Sno,Cno), /* 主码由两个属性构成,必须作为表级完整性进行定义*/ FOREIGN KEY (Sno) REFERENCES Student(Sno), /* 表级完整性约束条件,Sno是外码,被参照表是Student */ FOREIGN KEY (Cno) REFERENCES Course(Cno) /* 表级完整性约束条件, Cno是外码,被参照表是Course*/); 例11 删除Student表 DROP TABLE Student CASCADE ;(基本表定义被删除,数据被删除;表上建立的索引、视图、触发器等一般也将被删除 )例12若表上建有视图,选择RESTRICT时表不能删除 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept=IS; DROP TABLE Student RESTRICT; -ERROR: cannot drop table Student because other objects depend on it例12如果选择CASCADE时可以删除表,视图也自动被删除 DROP TABLE Student CASCADE; -NOTICE: drop cascades to view IS_StudentSELECT * FROM IS_Student;-ERROR: relation IS_Student does not exist (3) 熟练应用SQL语句实现数据检索功能,包括多表查询和嵌套查询;P99-P115(4) 熟练应用SQL语句实现数据插入、修改和删除操作;P115-P119(5) 熟练应用group分组和order排序语句;(6) 掌握计数和求平均值等聚集函数的应用;P97(7) 熟练掌握视图的定义和应用视图的优点;P123 例3.89试述视图的优点。答 ( l )视图能够简化用户的操作; ( 2 )视图使用户能以多种角度看待同一数据; ( 3 )视图对重构数据库提供了一定程度的逻辑独立性; ( 4 )视图能够对机密数据提供安全保护。(8)试述等值连接与自然连接的区别和联系。答:连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。要点遗漏:信息世界的基本概念:(1) 实体:客观存在并相互区别的事物称为实体(2) 属性:实体所具有的某一特性,一个实体可由若干个属性来刻画。(3) 码:唯一标识实体的属性集称为码(4) 实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。(5) 实体集:同型实体的集合称为实体集。(6) 联系:实体之间的联系有一对多、一对一和多对多等多种类型课后习题3、5、9:P1303、3 用 sQL 语句建立第二章习题 5 中的 4 个表。答:对于 S 表: S ( SNO , SNAME , STATUS , CITY ) ; 建 S 表: CREATE TABLE S ( Sno C(2) UNIQUE,Sname C(6) ,Status C(2),City C(4);对于 P 表: P ( PNO , PNAME , COLOR , WEIGHT );建 P 表 :CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2), WEIGHT INT);对于 J 表: J ( JNO , JNAME , CITY); 建 J 表:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4);对于 sPJ 表: sPJ ( sNo , PNo , JNo , QTY) ; 建 SPJ 表:SPJ(SNO,PNO,JNO,QTY)CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY INT)5针对习题3中的四个表试用SQL语言完成以下各项操作:(1)找出所有供应商的姓名和所在城市。 SELECT SNAME,CITY FROM S(2)找出所有零件的名称、颜色、重量。SELECT PNAME,COLOR,WEIGHT FROM P(3)找出使用供应商S1所供应零件的工程号码。 SELECT DIST 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 DISP JNO FROM SPJ WHERE JNO NOT IN (SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY=天津) 适用于JNO是唯一或不唯一的情况. 注意: SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY天津适用于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(10)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。 A、DELETE FROM S WHERE SNO=S2 B、DELETE FROM SPJ WHERE SNO=S2(11)请将(S2,J6,P4,200)插入供应情况关系。 INSERT INTO SPJ VALUES(S2,J6,P4,200)9、请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J WHERE SPJ.JNO=J.JNO AND J.JNAME=三建针对该视图VSP完成下列查询:(1)找出三建工程项目使用的各种零件代码及其数量。SELECT DIST PNO,QTY FROM VSP(2)找出供应商S1的供应情况。SELECT DIST * FROM VSP WHERE SNO=S1本章占试卷总分18%4. 数据库安全性(1)理解数据库安全性的含义;答:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。(2) 熟练使用grant进行授权,使用revoke收回权限;答:SQL 中的自主存取控制是通过GRANT语句和REVOKE语句来实现的。如:SELECT , INSERT ON Student TO 王平WITH GRANT OPTION ; 就将Student 表的SELECT 和INSERT 权限授予了用户王平,后面的“WITH GRANT OPTION ”子句表示用户王平同时也获得了“授权”的权限,即可以把得到的权限继续授予其他用户。REVOKE INSERT ON Student FROM 王平CASCADE ; 就将Student 表的INSERT 权限从用户王平处收回,选项CASCADE 表示,如果用户王平将Student 的INSERT 权限又转授给了其他用户,那么这些权限也将从其他用户处收回。(3) 理解数据库管理系统的存取控制方法;存取控制机制组成:定义用户权限+合法权限检查 用户权限定义和合法权检查机制一起组成了DBMS的安全子系统常用存取控制方法:自主存取控制 C2级 灵活强制存取控制B1级严格自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。(4) 理解视图机制实现数据库安全性控制。视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。主要功能是提供数据独立性,无法完全满足要求间接实现了支持存取谓词的用户权限定义例14建立计算机系学生的视图,把对该视图的SELECT权限授于王平,把该视图上的所有操作权限授于张明 先建立计算机系学生的视图CS_Student CREATE VIEW CS_Student AS SELECT *FROM StudentWHERE Sdept=CS;在视图上进一步定义存取权限 GRANT SELECT ON CS_Student TO 王平 ; GRANT ALL PRIVILIGES ON CS_Student TO 张明; P155(79)7请用SQL的GRANT 和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能:( a )用户王明对两个表有SELECT 权力。GRANT SELECT ON 职工,部门TO 王明( b )用户李勇对两个表有INSERT 和DELETE 权力。GRANT INSERT,DELETE ON 职工,部门TO 李勇( c ) 每个职工只对自己的记录有SELECT 权力。GRANT SELECT ON 职工WHEN USER()=NAMETO ALL;( d )用户刘星对职工表有SELECT 权力,对工资字段具有更新权力。GRANT SELECT,UPDATE(工资) ON 职工TO 刘星 ( e )用户张新具有修改这两个表的结构的权力。GRANT ALTER TABLE ON 职工,部门TO 张新; ( f )用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力。GRANT ALL PRIVILIGES ON 职工,部门TO 周平WITH GRANT OPTION;( g )用户杨兰具有从每个部门职工中SELECT 最高工资、最低工资、平均工资的权力,他不能查看每个人的工资。CREATE VIEW 部门工资 ASSELECT 部门.名称,MAX(工资),MIN(工资),AVG(工资)FROM 职工,部门WHERE 职工.部门号=部门.部门号GROUP BY 职工.部门号GRANT SELECT ON 部门工资TO 杨兰;8把习题8 中(1)-(7)的每一种情况,撤销各用户所授予的权力(1) REVOKE SELECT ON 职工,部门 FROM 王明;(2) REVOKE INSERT , DELETE ON 职工,部门 FROM 李勇;(3) REOVKE SELECT ON 职工WHEN USER ( ) =NAMEFROM ALI ;(4) REVOKE SELECT , UPDATE ON 职工FROM 刘星;(5) REVOKE ALTER TABLE ON 职工,部门FROM 张新;(6) REVOKE ALL PRIVILIGES ON 职工,部门FROM 周平;(7) REVOKE SELECT ON 部门工资FROM 杨兰;DROP VIEW 部门工资;本章占试卷总分4%5. 数据库完整性数据库的完整性:数据的正确性和相容性数据的完整性和安全性是两个不同概念数据的完整性:防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据 防范对象:不合语义的、不正确的数据数据的安全性:保护数据库防止恶意的破坏和非法的存取 防范对象:非法用户和非法操作(1)理解关系主码的含义,能够指定具体关系模式的主码;(2) 理解关系外码的含义,能够找出具体关系模式的外码;(3) 掌握使用SQL数据定义语句实现实体完整性和参照完整性;(4) 关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的? 答:对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。实体完整性定义CREATE TABLE中用PRIMARY KEY定义单属性构成的码有两种说明方法:定义为列级约束条件定义为表级约束条件对多个属性构成的码只有一种说明方法定义为表级约束条件 例1 将Student表中的Sno属性定义为码(1) 在列级定义主码CREATE TABLE Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) NOT NULL, Ssex CHAR(2) , Sage SMALLINT, Sdept CHAR(20);(2)在表级定义主码 CREATE TABLE Student (Sno CHAR(9), Sname CHAR(20) NOT NULL, Ssex CHAR(2) , Sage SMALLINT, Sdept CHAR(20), PRIMARY KEY (Sno) ); 例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) /*在表级定义参照完整性*/ );(5) 使用SQL完成自定义完整性约束。1.不允许取空值 例5 在定义SC表时,说明Sno、Cno、Grade属性不允许取空值。 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT NOT NULL, PRIMARY KEY (Sno, Cno), /* 如果在表级定义实体完整性,隐含了Sno,Cno不允许取空值,则在列级不允许取空值的定义就不必写了 * / ); 2.列值唯一 例6 建立部门表DEPT,要求部门名称Dname列取值唯一,部门编号Deptno列为主码 CREATE TABLE DEPT (Deptno NUMERIC(2), Dname CHAR(9) UNIQUE,/*要求Dname列值唯一*/ Location CHAR(10), PRIMARY KEY (Deptno) );3. 用CHECK短语指定列值应该满足的条件例7 Student表的Ssex只允许取“男”或“女”。 CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(8) NOT NULL, Ssex CHAR(2) CHECK (Ssex IN (男,女) ) , /*性别属性Ssex只允许取男或女 */ Sage SMALLINT, Sdept CHAR(20) );例9 当学生的性别是男时,其名字不能以Ms.打头。 CREATE TABLE Student (Sno CHAR(9), Sname CHAR(8) NOT NULL, Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20), PRIMARY KEY (Sno), CHECK (Ssex=女 OR Sname NOT LIKE Ms.%) /*定义了元组中Sname和 Ssex两个属性值之间的约束条件*/ );性别是女性的元组都能通过该项检查,因为Ssex=女成立;当性别是男性时,要通过检查则名字一定不能以Ms.打头课后习题6:P173 6 假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门(部门号,名称,经理名,电话),其中部门号为主码。用 sQL 语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不得超过 60 岁。答CREATE TABLE DEPT (Deptno NUMBER(2), Deptname VARCHAR(10), Manager VARCHAR(10), PhoneNumber Char(12) CONSTRAINT PK_SC RIMARY KEY(Deptno);CREATE TABLE EMP (Empno NUMBER(4), Ename VARCHAR(10), Age NUMBER(2), CONSTRAINT C1 CHECK ( Aage=60), Job VARCHAR(9), Sal NUMBER(7,2), Deptno NUMBER(2), CONSTRAINT FK_DEPTNO FOREIGN KEY(Deptno) REFFERENCES DEPT(Deptno);本章占试卷总分8%6. 关系数据理论(1)根据实际语义确定关系模式的函数依赖集;P180(2) 掌握1NF、2NF、3NF和BCNF的定义;P180(3) 理解1NF、2NF可能存在的插入和删除异常现象,并能结合具体关系模式举例说明;P183(4) 理解满足BCNF关系模式的特点;(5)能够判定指定关系模式的范式级别,并陈述判定依据;(6)能够根据语义将低级别范式分解为高级别范式;(7)能够依据函数依赖找出关系的候选码。课后习题:2建立一个关于系、学生、班级、学会等诸信息的关系数据库。学生:学号、姓名、出生年月、系名、班号、宿舍区。班级:班号、专业名、系名、人数、入校年份。系:系名、系号、系办公地点、人数。学会:学会名、成立年份、办公地点、人数。 语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。 请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在?解:(1)关系模式如下: 学生:S(Sno,Sname,Sbirth,Dept,Class,Rno) 班级:C(Class,Pname,Dept,Cnum,Cyear) 系:D(Dept,Dno,Office,Dnum) 学会:M(Mname,Myear,Maddr,Mnum) (2)每个关系模式的最小函数依赖集如下: A、学生S (Sno,Sname,Sbirth,Dept,Class,Rno) 的最小函数依赖集如下:SnoSname,SnoSbirth,SnoClass,ClassDept,DEPTRno 传递依赖如下:由于SnoDept,而DeptSno ,DeptRno(宿舍区)所以Sno与Rno之间存在着传递函数依赖。 由于ClassDept,Dept Class,DeptRno 所以Class与Rno之间存在着传递函数依赖。 由于SnoClass,ClassSno,ClassDept 所以Sno与Dept之间存在着传递函数依赖。 B、班级C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下: ClassPname,ClassCnum,ClassCyear,PnameDept. 由于ClassPname,PnameClass,PnameDept 所以C1ass与Dept之间存在着传递函数依赖。 C、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下: DeptDno,DnoDept,DnoOffice,DnoDnum 根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。 D、学会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下: MnameMyear,MnameMaddr,MnameMnum 该模式不存在传递依赖。 (3)各关系模式的候选码、外部码,全码如下: A、学生S候选码:Sno;外部码:Dept、Class;无全码 B、班级C候选码:Class;外部码:Dept;无全码 C、系D候选码:Dept或Dno;无外部码;无全码 D、学会M候选码:Mname;无外部码;无全码5 试举出3 个多值依赖的实例。答:(1)关系模式MSC ( M , S , C )中,M 表示专业,S 表示学生,C 表示该专业的必修课。假设每个专业有多个学生,有一组必修课。设同专业内所有学生选修的必修课相同,实例关系如下。按照语义对于M 的每一个值M i , s 有一个完整的集合与之对应而不问C 取何值,所以M 一一S 。由于C 与S 的完全对称性,必然有M 一一C 成立。(2)关系模式ISA ( I , S , A )中,I 表示学生兴趣小组,S 表示学生,A 表示某兴趣小组的活动项目。假设每个兴趣小组有多个学生,有若干活动项目。每个学生必须参加所在兴趣小组的所有活动项目,每个活动项目要求该兴趣小组的所有学生参加。按照语义有I 一一S , I 一一A 成立。(3) 关系模式RDP ( R , D , P )中,R 表示医院的病房,D 表示责任医务人员,P 表示病人。假设每个病房住有多个病人,有多个责任医务人员负责医治和护理该病房的所有病人。下面的结论哪些是正确的? 哪些是错误的? 对于错误的请给一个反例说明之。(1)任何一个二目关系是属于3NF。答:正确。因为关系模式中只有两个属性,所以无传递。(2)任何一个二目关系是属于BCNF.答:正确。按BCNF的定义,若XY,且Y不是X的子集时,每个决定因素都包含码,对于二目关系决定因素必然包含码。本章占试卷总分20%7. 数据库设计 (1)熟练掌握关系数据库设计的基本步骤,能简单描述各个步骤主要完成的任务;数据库设计分6个阶段需求分析:准确了解与分析用户需求(包括数据与处理)概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体 DBMS 的概念模型。逻辑结构设计:将概念结构转换为某个 DBMS 所支持的数据模型,并对其进行优化。物理结构设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。数据库实施:设计人员运用 DBMS 提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改。(2) 了解需求分析阶段完成的主要工作和结果;需求分析的任务详细调查现实世界要处理的对象(组织、部门、企业等)充分了解原系统(手工系统或计算机系统)明确用户的各种需求确定新系统的功能充分考虑今后可能的扩充和改变调查的重点是“数据”和“处理”,获得用户对数据库要求 信息要求处理要求安全性与完整性要求(3) 理解物理结构设计的主要工作; 答:数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的 DBMS 。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构,就是数据库的物理设计的主要内容。数据库的物理设计步骤通常分为两步: ( l)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构; ( 2)对物理结构进行评价,评价的重点是时间效率和空间效率。(4) 能够陈述数据库逻辑结构设计的含义,并阐述其具体设计步骤;数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本 E 一 R 图转换为与选用的 DBMS 产品所支持的数据模型相符合的逻辑结构。设计步骤为 : ( l)将概念结构转换为一般的关系、网状、层次模型; ( 2)将转换来的关系、网状、层次模型向特定 DBMS 支持下的数据模型转换; ( 3)对数据模型进行优化。(5)能够根据实际应用场景设计ER图,并正确判定联系类型的种类和各个实体的属性;(6)能够结合实际,并依据联系类型的转换规则将ER图转换为关系模式,同时正确标注关系模式的主码;(7)理解局部视图集成过程中产生的冲突种类。课后习题7、8、107、10. 本章占试卷总分18%8. 数据库编程 存储过程:由过程化SQL语句书写的过程,经编译和优化后存储在数据库服务器中,使用时只要调用即可。存储过程的优点(1)运行效率高(2)降低了客户机和服务器之间的通信量(3)方便实施企业规则本章占试卷总分4%9. 关系查询处理和查询优化 在集中式数据库中,查询执行开销主要包括磁盘存取块数(I/O代价)、处理机时间(CPU代价)以及查询的内存开销。典型的启发式规则有: (1)选择运算尽可能先做 (2)把投影运算和选择运算同时进行 (3)把投影同其前或后的双目运算结合 (4)把某些选择同在它前面要执行的笛卡尔积结合起来成为连接运算(1) 能够实现关系代数表达式与SQL语句的转换;(2)(2) 理解关系数据库系统查询处理的基本过程;(3) 理解查询优化的目标以及查询操作的主要代价。本章占试卷总分2%10. 数据库恢复技术 (1)理解事务的概念和事务的四大特性;事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务和程序是两个概念在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序一个程序通常包含多个事务事务是恢复和并发控制的基本单位事务的四大特性:(ACID特性)原子性(Atomicity)事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做一致性(Consistency):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态一致性状态数据库中只包含成功事务提交的结果不一致状态数据库系统运行中发生故障,有些事务尚未完成就被迫中断;这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态隔离性(Isolation)一个事务的执行不能被其他事务干扰 一个事务内部的操作及使用的数据对其他并发事务是隔离的 并发执行的各个事务之间不能互相干扰持续性(Durability ) 持续性也称永久性(Permanence) 一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。 接下来的其他操作或故障不应该对其执行结果有任何影响。(2)掌握建立冗余的常用技术; 数据转储和登记日志文件(4) 理解事务日志的作用; 进行事务故障恢复 进行系统故障恢复 协助后备副本进行介质故障恢复(5) 掌握事务的提交和撤销方法; COMMIT 事务正常结束 提交事务的所有操作(读+更新) 事务中所有对数据库的更新写回到磁盘上的物理数据库中 ROLLBACK 事务异常终止 事务运行的过程中发生了故障,不能继续执行 系统将事务中对数据库的所有已完成的操作全部撤销 事务滚回到开始时的状态(6) 掌握数据库运行中可能产生的故障种类,理解各种故障对数据库带来的影响; 1.事务内部的故障 有的是可以通过事务程序本身发现的(见下面转账事务的例子) 有的是非预期的,不能由事务程序处理的。 2.系统故障:称为软故障,是指造成系统停止运转的任何事件,使得系统要重新启动。 整个系统的正常运行突然被破坏 所有正在运行的事务都非正常终止 不破坏数据库 内存中数据库缓冲区的信息全部丢失3.介质故障: 称为硬故障,指外存故障 磁盘损坏 磁头碰撞 瞬时强磁场干扰 介质故障破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务 介质故障比前两类故障的可能性小得多,但破坏性大得多4.计算机病毒 一种人为的故障或破坏,是一些恶作剧者研制的一种计算机程序 可以繁殖和传播,造成对计算机系统包括数据库的危害 计算机病毒种类 小的病毒只有20条指令,不到50B 大的病毒像一个操作系统,由上万条指令组成本章占试卷总分4%11. 并发控制 (1)理解并发控制的含义;并发控制机制是衡量一个数据库管理系统性能的重要标志之一。(2) 理解并发操作可能产生的问题; 会产生多个事务同时存取同一数据的情况 可能会存取和存储不正确的数据,破坏事务隔离性和数据库的一致性(3) 掌握常见的并发控制技术;
展开阅读全文