首页 自考04735数据库系统原理复习资料

自考04735数据库系统原理复习资料

举报
开通vip

自考04735数据库系统原理复习资料自考04735数据库系统原理复习资料 《数据库原理及应用》复习重点 第一章 数据库系统基本概念 要求、目标: 了解和掌握数据管理技术的发展阶段,数据描述的术语,数据抽象的四个级别,数据 库管理系统的功能,数据库系统的组成。 一、 数据管理技术的发展 1( 分为四个阶段:人工管理阶段、文件系统阶段、数据库阶段和高级数据库阶段。 2( 数据库阶段数据管理的特点: 1) 采用数据模型表示复杂的数据结构。 2) 有较高的数据独立性。 3) 数据库系统为用户提供了方便的用户接口。 4) 提供四方面的数据控...

自考04735数据库系统原理复习资料
自考04735数据库系统原理复习资料 《数据库原理及应用》复习重点 第一章 数据库系统基本概念 要求、目标: 了解和掌握数据管理技术的发展阶段,数据描述的术语,数据抽象的四个级别,数据 库管理系统的功能,数据库系统的组成。 一、 数据管理技术的发展 1( 分为四个阶段:人工管理阶段、文件系统阶段、数据库阶段和高级数据库阶段。 2( 数据库阶段数据管理的特点: 1) 采用数据模型表示复杂的数据结构。 2) 有较高的数据独立性。 3) 数据库系统为用户提供了方便的用户接口。 4) 提供四方面的数据控制功能:数据库的恢复、数据库的并发控制、数据的完整 性、数据安全性。 5) 增加了系统的灵活性。 3( 数据库(DB):是长期存储在计算机内、有组织的、统一管理的相关数据的集合。 4( 数据库管理系统(DBMS):是位于用户与操作系统之间的一层数据管理软件,它为 用户或应用程序提供访问DB的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ,包括DB的建立、查询、更新及各种数据控 制。 5( 数据库系统(DBS):是实现有组织地、动态地存储大量关联数据、方便多用户访 问的计算机硬件、软件和数据资源组成的系统,即它是采用数据库技术的计算机系 统。 二、 数据描述 1( 分为三个阶段:概念设计、逻辑设计和物理设计。 2( 概念设计中的术语: 1) 实体:客观存在,可以相互区别的事物称为实体。 2) 实体集:性质相同的同类实体的集合。 3) 属性:实体有很多特性,每一个特性称为属性。 4) 实体标识符(关键码或键):能惟一标识实体的属性或属性集。 以上概念均有类型和值之分。 3( 逻辑设计中的术语: 1) 字段(数据项):标记实体属性的命名单位称为字段或数据项。 2) 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 :字段的有序集合。 3) 文件:同一类记录的集合。 4) 关键码:能惟一标识文件中每个记录的字段或字段集。 以上概念均有类型和值之分。 4( 概念设计和逻辑设计中术语的对应关系: 概念设计 逻辑设计 实体 — 记录 属性 — 字段(数据项) 实体集 — 文件 实体标识符— 关键码 5( 实体之间联系的元数:与一个联系有关的实体集个数。常用二元联系。二元联系的 类型有三种:一对一联系、一对多联系、多对多联系。 6( 一对一联系:如果实体集E1中每个实体至多和实体集E2中的一个实体有联系,反 1 之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“1:1”。 7( 一对多联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体 间有联系,而E2中每个实体至多和E1中一个实体有联系,那么称E1对E2的联 系是“一对多联系”,记为“1:N”。 8( 多对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个) 实体间有联系,反之亦然,那么称E1和E2的联系是“多对多联系”,记为“M:N”。 三、 数据抽象的级别 1( 数据模型:描述数据库的结构和定义,对现实世界的数据进行抽象。 2( 从现实世界的信息到数据库存储的数据以及用户使用的数据是一个逐步抽象过程, 根据数据抽象的级别定义了四种模型:概念模型、逻辑模型、外部模型和内部模型。 3( 概念模型:表达用户需求观点的数据全局逻辑结构的模型。 4( 逻辑模型:表达计算机实现观点的DB全局逻辑结构的模型。 5( 外部模型:表达用户使用观点的DB局部逻辑结构的模型。 6( 内部模型:表达DB物理结构的模型。 7( 数据抽象的过程、即数据库设计的过程具体步骤: 1) 根据用户需求,设计数据库的概念模型; 2) 根据转换规则,把概念模型转换成数据库的逻辑模型; 3) 根据用户的业务特点,设计不同的外部模型,给程序员使用; 4) 数据库实现时,要根据逻辑模型设计其内部模型。 通常分为概念设计、逻辑设计(2和3步)和物理设计三个阶段。 8( 常用的概念模型是实体联系(ER)模型,ER模型主要用ER图来表示。 9( 逻辑模型的分类:层次模型、网状模型、关系模型等。 10( 层次模型:用树型(层次)结构表示实体及实体间联系的数据模型。 11( 1969年,美国IBM公司的IMS系统是典型的层次模型系统。 12( 网状模型:用有向图结构表示实体及实体间联系的数据模型。 13( 1969年,CODASYL组织提出DBTG报告中的数据模型是网状模型的主要代 表。 14( 关系模型:是由若干个关系模式组成的集合。关系模式即记录类型,它的实例 称为关系,每个关系实际上是一张二维表格。 15( 1970年,美国IBM公司的E.F.Codd连续发表论文,提出关系模型,奠定了关 系数据库的理论基础。关系数据库是目前的主流数据库。 16( 外部模型中的模式称为视图。 17( 三级模式: 从用户(或应用程序)到数据库之间,DB的数据结构描述有三个层次: 1)外模式:用户与数据库系统的接口,是用户用到的那部分数据的描述。外模式 由若干个记录类型组成。 2)逻辑模式:是数据库中全部数据的整体逻辑结构的描述。 3)内模式:是数据库在物理存储方面的描述。 注意:外模式是逻辑模式的子集。 18( 两级映像: 1)外模式/逻辑模式映像:存在于外模式和逻辑模式之间,用于定义外模式和逻辑 模式之间的对应性。 2)逻辑模式/内模式映像:存在于逻辑模式和内模式之间,用于定义逻辑模式和内 模式之间的对应性。 2 19( 数据库系统的三级模式、两级映像结构使数据库系统达到了高度的数据独立 性。 20( 数据独立性:是指应用程序与数据库的数据结构之间相互独立,在修改数据结 构时,尽可能不修改应用程序。分为逻辑数据独立性和物理数据独立性。 21( 逻辑数据独立性:如果数据库的逻辑模式要修改,那么只要对外模式/逻辑模 式映像作相应的修改,可以使外模式和应用程序尽可能保持不变。这样就认为数据 库达到了逻辑数据独立性。 22( 物理数据独立性:如果数据库的内模式要修改,即数据库的物理结构有所变化, 那么只要对逻辑模式/内模式映像作相应的修改,可以使逻辑模式尽可能保持不变。 也就是对内模式的修改尽量不影响逻辑模式,当然对外模式和应用程序的影响更 小,这样就认为数据库达到了物理数据独立性。 四、 数据库管理系统(DBMS) 1(DBMS的主要功能:数据库的定义功能(DBMS提供DDL定义数据库的三级模式、两 级映像等)、数据库的操纵功能(DBMS提供DML实现对数据的操作,基本的数据操 作有检索和更新两类)、数据库的保护功能、数据库的维护功能、数据字典。 五、 数据库系统(DBS) 1(DBS的组成:是数据库、硬件、软件和数据库管理员的集合体。 2(软件包括DBMS、OS、各种主语言和应用开发支撑软件等程序。其中,DBMS是 DBS的核心软件,要在OS支持下才能工作。 3(数据库管理员(DBA):是控制数据整体结构的一组人员,负责DBS的正常运行, 承担创建、监控和维护数据库结构的责任。 第一章 复习题 一、单项选择题 1(在数据库系统中,当数据库的内模式发生改变时,应用程序也可以不变。这是( A ) A) 物理数据独立性 B)逻辑数据独立性 C) 位置数据独立性 D)存储数据独立性 2(在下面列出的数据模型中,哪一个是概念数据模型( D ) A)关系模型 B) 层次模型 C) 网状模型 D) 实体-联系模型 3. 下面列出的数据管理技术发展阶段中,哪个(些)阶段数据不能保存在计算机中, ( A ) ?.人工管理阶段 ?.文件系统阶段 ?.数据库阶段 A) 只有? B) 只有? C) ?和? D) ?和? 4. 用二维表结构表示实体以及实体间联系的数据模型称为( C ) A) 网状模型 B) 层次模型 C) 关系模型 D) 实体-联系模型 5. 下面列出的条目中,哪些是数据库技术的主要特点( A ) ?.数据共享度高 ?.数据的冗余小 ?.较高的数据独立性 ?.程序的标准化 A) ?、?和? B) ?和? C) ?、?和? D) 都是 6. 数据库管理系统DBMS中用来定义逻辑模式、内模式和外模式的语言是( C ) 3 A) DML B)C C)DDL D)Basic 7. 层次模型的典型代表是( A )数据库管理系统。 A) IMS B)IBM C)DBTG D)ATM 8. 负责数据库系统的正常运行,承担创建、监控和维护数据库结构责任的是( C ) A) 应用程序员 B)终端用户 C)数据库管理员 D)数据库管理系统的软件设计员 9. 在以下各条叙述中,正确的叙述有几条( B ) 1) 数据库避免了一切数据重复 2) 数据库减少了数据冗余 3) 数据库中,如果逻辑模式改变,则需将与其有关的外模式做相应改变, 否则应用程序需改写 4) 数据库中的内模式如有改变,逻辑模式可以不变 A) 1 B)2 C)3 D)4 10. 在三级模式之间引入两级映像,其主要功能之一是( A ) A) 使数据与程序具有较高的独立性 B) 使系统具有较高的通道能力 C) 保持数据与程序的一致性 D)提高存储空间的利用率 11. 视图对应于数据库系统三级模式结构中的( A ) A) 外模式 B)逻辑模式 C)内模式 D)都不对应 12. 对数据库中数据可以进行查询、插入、删除、修改,这是因为数据库管理系统提供 了( B ) A) 数据库定义功能 B)数据库操纵功能 C)数据库维护功能 D)数据库控制功能 13. 1970年,美国IBM公司研究员E.F.Codd提出了数据库的( C ) A) 层次模型 B)网状模型 C)关系模型 D)实体联系模型 14. 具有数据冗余度小、数据共享、以及较高数据独立性等特征的系统是( B ) A) 文件系统 B)数据库系统 C)管理系统 D)高级程序 15. 在概念设计中的事物称为( A ) A) 实体 B)记录 C)对象 D)结点 16. 层次模型表达实体及实体之间联系用的数据结构是( D ) A) 网状 B)表 C)有向图 D)树型 17. DB是( A ) A) 数据库 B)数据库管理系统 C)数据处理系统 D)数据库系统 18. DBMS是( B ) A) 数据库 B)数据库管理系统 C)数据处理系统 D)数据库系统 19. 已知在一个工厂中有多个车间,每一个车间有多名职工,工厂的产品要经过多个 车间的多道工序加工。具体来说,一个产品要经过多个工人加工,一位工人要加 工多个产品。问:工厂与车间之间属于( A )联系,车间与工人之间属于( A ) 联系,工人与产品之间属于( D )联系。 A) 一对多 B)一对一 C)未知 D)多对多 20. ( D )是存储在计算机内的有结构的数据集合。 4 A) 网络系统 B)数据库系统 C)操作系统 D)数据库 21. 数据库系统的核心是( D ) A) 编译系统 B)数据库 C)操作系统 D)数据库管理系统 22. 数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是 ( A ) A) DBS包括DB和DBMS B)DBMS包括DB和DBS C)DB包括DBS和DBMS D)DBS就是DB,也就是DBMS 23. 数据库管理系统(DBMS)是( B ) A) 一组硬件 B)一组软件 C)既有硬件,也有软件 24. 在DBS中,DBMS和OS之间关系是( B ) A) 相互调用 B)DBMS调用OS C)OS调用DBMS D)并发运行 25. 数据库系统是在( A )的基础上发展起来的。 A) 文件系统 B)应用程序系统 C)数据库管理系统 D)编译系统 26. 三级模式间存在两种映射,它们是( A ) A) 逻辑模式与外模式间,逻辑模式与内模式间 B) 外模式与内模式间,外模式与逻辑模式间 C) 内模式与外模式间,内模式与逻辑模式间 27. 表达用户使用观点的数据库局部逻辑结构的模型是( C ) A) 概念模型 B)逻辑模型 C)外部模型 D)内部模型 二、填空题 1(数据管理技术的发展经历了如下四个阶段:人工管理阶段、文件系统阶段、数据库阶段和高级数据库阶段。 2(用二维表结构表示的实体及实体间联系的数据模型称为关系模型。 3(两个实体集之间的联系有三种,分别是一对一联系,一对多联系和多对多联系。 4(如果实体集E1中每个实体至多和实体集E2中的一个实体有联系,反之亦然,那么实体集E1和E2的联系称为一对一联系。 5(数据库系统的三级模式、两级映像结构使数据库系统达到了高度的数据独立性。 第二章 数据库设计和ER模型 要求、目标: 了解和掌握数据库应用系统设计的全过程,掌握ER模型和关系模型的基本概念,掌握概念设计中ER模型的设计方法,掌握逻辑设计中ER模型向关系模型转换的方法。 一、数据库系统生存期 1(数据库系统生存期:数据库应用系统从开始规划、设计、实现、维护到最后被新的系统取代而停止使用的整个期间。 2(数据库系统生存期分七个阶段:规划、需求分析、概念设计、逻辑设计、物理设计、实现、运行维护。 3(规划阶段三个步骤:系统调查、可行性分析、确定数据库系统总目标。 4(需求分析阶段:主要任务是系统分析员和用户双方共同收集数据库系统所需要的信息内容和用户对处理的需求,并以需求说明书的形式确定下来。 5 5(概念设计阶段:产生反映用户单位信息需求的概念模型。与硬件和DBMS无关。 6(逻辑设计阶段:将概念模型转换成DBMS能处理的逻辑模型。外模型也将在此阶段完成。 7(物理设计阶段:对于给定的基本数据模型选取一个最适合应用环境的物理结构的过程。数据库的物理结构主要指数据库的存储记录格式、存储记录安排和存取方法。 8(数据库的实现:包括定义数据库结构、数据装载、编制与调试应用程序、数据库试运行。 二、ER模型的基本概念ER模型的基本元素是:实体、联系和属性。 2( 实体:是一个数据对象,指应用中可以区别的客观存在的事物。 实体集:是指同一类实体构成的集合。 实体类型:是对实体集中实体的定义。 一般将实体、实体集、实体类型统称为实体。 3( 联系:表示一个或多个实体之间的关联关系。 联系集:是指同一类联系构成的集合。 联系类型:是对联系集中联系的定义。 一般将联系、联系集、联系类型统称为联系。 4( 同一个实体集内部实体之间的联系,称为一元联系;两个不同实体集实体之间的联系, 称为二元联系,以此类推。 5( 属性:实体的某一特性称为属性。在一个实体中,能够惟一标识实体的属性或属性集称 为实体标识符。 6( ER模型中,方框表示实体、菱形框表示联系、椭圆形框表示属性、实体与联系、实体 与其属性、联系与其属性之间用直线连接。实体标识符下画横线。联系的类型要在直线 上标注。注意:联系也有可能存在属性,但联系本身没有标识符。 例:假设一个学生可选多门课程,而一门课程又有多个学生选修,一个教师可讲多门课 程,一门课程至多只有一个教师讲授。ER图如下: 7( 概念设计三个步骤:设计局部ER模型、设计全局ER模型和全局ER模型的优化。 三、关系模型的基本概念 1(关系模型的定义:用二维表格表示实体集,用关键码表示实体之间联系的数据模型。 2(在关系模型中,字段称为属性,字段值称为属性值,记录类型称为关系模式。记录称为元组,元组的集合称为关系或实例。有时习惯称关系为表或表格,元组为行,属性为列。关系中属性个数称为元数,元组个数称为基数。 3(关键码(简称键):由一个或多个属性组成。 4(超键:在关系中能惟一标识元组的属性集称为关系模式的超键。 5(候选键:不含有多余属性的超键。 6(主键:用户选作元组标识的候选键。一般如不加说明,键是指主键。 7(外键:如果模式R中属性集K是其他模式的主键,那么K在模式R中称为外键。 8(值域:关系中每一个属性都有一个取值范围,称为属性的值域。每一个属性对应一个值域,不同的属性可对应于同一值域。 6 9(关系的定义:关系是一个属性数目相同的元组的集合。 10(关系的性质:关系是一种 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 化了的二维表格。 1)关系中每一个属性值都是不可分解的; 2)关系中不允许出现重复元组; 3)关系没有行序; 4)元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序。 11(关系数据库中的数据与更新操作必须遵循三类完整性规则:实体完整性规则、参照完整性规则、用户定义的完整性规则。 12(实体完整性规则:要求关系中元组在组成主键的属性上不能有空值。 13(参照完整性规则:如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值。这条规则的实质是“不允许引用不存在的实体”。其中,R1称为参照关系;R2称为依赖关系。 注意:这条规则在具体使用时,有三点变通: 1)外键和相应的主键可以不同名,只要定义在相同值域上即可; 2)R1和R2可以是同一个关系模式,此时表示了同一个关系中不同元组之间的联系; 3)外键值是否允许空,应视具体问题而定。 14(用户定义的完整性规则:用户针对具体的数据约束,设置的完整性规则,由系统来检验实施。 四、ER模型到关系模型的转换 1(ER图转换成关系模式集的算法: 1)实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。 2)联系类型的转换:主要掌握二元联系类型的转换。 a) 若实体间联系是1:1,可以在两个实体类型转换成的关系模式中任意一个关 系模式的属性中加入另一个关系模式的键(作为外键)和联系类型的属性。 b) 若实体间联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体 类型的键(作为外键)和联系类型的属性。 c) 若实体间联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体 类型的键(作为外键)加上联系类型的属性,而键为两端实体键的组合。 例:下面是教学管理的一个可能的ER图。图中,有三个实体类型:系、教师和课程;有四个联系类型:主管、聘用、开设和任教。根据转换算法,把该图转换成关系模式集的步骤如下: 7 系编号 系名 电话 系 1 1 1 主管 聘用 开设 聘期 N 1 N N M 教师 课程 学分 任教 教工号 姓名 性别 职称 教材 课程号 课程名 教学管理的ER图 第一步:把三个实体类型转换成三个关系模式(注意关系模式的表示方法): 系(系编号,系名,电话) 教师(教工号,姓名,性别,职称) 课程(课程号,课程名,学分) 第二步:对于1:1联系,可以在“系”模式中加入教工号(教工号为外键)。 对于1:N联系“聘用”,可以在“教师”模式中加入系编号和聘期两个属性(系编号为外键); 对于1:N联系“开设”,可以在“课程”模式中加入系编号(系编号为外键)。这样第一步得到的三个模式改变成如下形式(注意:外键通常使用波浪线表示): 系(系编号,系名,电话,主管人的教工号) 教师(教工号,姓名,性别,职称,系编号,聘期) 课程(课程号,课程名,学分,系编号) 第三步:对于M:N联系“任教”,则生成一个新的关系模式: 任教(教工号,课程号,教材) 这样,转换成的四个关系模式如下: 系(系编号,系名,电话,主管人的教工号) 教师(教工号,姓名,性别,职称,系编号,聘期) 课程(课程号,课程名,学分,系编号) 任教(教工号,课程号,教材) 2(采用ER模型的逻辑设计步骤 1)导出初始关系模式集:把概念设计的结果(即全局ER模型)转换成初始关系模式集。 8 2)规范化处理 3)模式评价 4)模式修正 5)设计外模式 第二章 复习题 一、单项选择题 1(下面对于关系的叙述中,哪个是不正确的,( C ) A)关系中的每个属性是不可分解的 B) 在关系中元组的顺序是无关紧要的 C) 任意的一个二维表都是一个关系 D)每一个关系只有一种记录类型 2(设属性A是关系R的主键,则属性A不能取空值。这是( A ) A)实体完整性规则 B) 参照完整性规则 C)用户定义完整性规则 D) 域完整性规则 3(对关系数据库来讲,下面( C )说法是错误的 A)外键和相应的主键可以不同名,只要定义在相同值域上即可 B)不同的属性可对应于同一值域 C)行的顺序可以任意交换,但列的顺序不能任意交换 D) 关系中的任意两个元组不能完全相同 4(数据库的物理设计是为一个给定的逻辑结构选取一个适合应用环境的( B )的过程,包括 确定数据库在物理设备上的存储结构和存取方法。 A) 逻辑结构 B)物理结构 C)概念结构 D)层次结构 5(在关系中,能惟一标识元组的属性集称为( B )。 A)外键 B)超键 C)域 D)元组 6(在数据库逻辑设计中,当将E-R图转换为关系模式时,下面的做法( B )是不正确的 A)一个实体类型转换为一个关系模式 B)一个联系类型转换为一个关系模式 C)由实体类型转换成的关系模式的主键是该实体类型的主键 7(数据库设计的概念设计阶段,表示概念结构的常用方法和描述工具是( D ) A)层次分析法和层次结构图 B)数据流程分析法和数据流程 C)结构分析法和模块结构图 D)实体—联系方法和E—R图 8(关系数据库中,实现表与表之间的联系是通过( B ) A) 实体完整性规则 B)参照完整性规则 C)用户定义的完整性 D)值域 9(有两个实体集,并且它们之间存在着一个M:N联系,那么按照E—R模型转换成关系数 据库的规则,这个E—R结构转换成表的个数为( C ) A) 1 B)2 C)3 D)4 10(把E-R图转换为关系模型的过程,属于数据库设计的( B ) A) 概念设计 B)逻辑设计 C)需求分析 D)物理设计 11(在数据库设计的( D )阶段,进行应用程序的编制和调试。 A) 概念设计 B)逻辑设计 C)物理设计 D)实现 9 12( EMP 雇员号 雇员名 部门号 工资 001 张山 02 2000 010 王宏达 01 1200 056 马林生 02 1000 101 赵敏 04 1500 DEPT 部门号 部门名 地址 01 业务部 1号楼 02 销售部 2号楼 03 服务部 3号楼 04 财务部 4号楼 在雇员信息表关系EMP中,哪个属性是外键,( C ) A) 雇员号 B) 雇员名 C) 部门号 D) 工资 二、填空题 1(表示实体及其联系的方法为ER图,基本图素包括方框、菱形框和椭圆形框。习惯上实体用方框表示,实体的属性用椭圆形框表示,联系用菱形框表示。 2(在关系模型中,二维表的列称为属性,二维表的行称为元组。 3(假设班级和班长之间的联系是一对一联系,则班级和学生之间是一对多联系;另外,学生和课程之间的联系是多对多联系。 4(关系模型的三种完整性规则是实体完整性规则、参照完整性规则和 用户定义的完整性规则。 5(已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主键是系编号,学生关系的主键是学号,外键是系编号。 6(数据库系统生存期分七个阶段:规划、需求分析、概念设计、逻辑设计、物理设计、实现、运行维护。 7(关系中属性个数称为元数,元组个数称为基数。 10 三、综合题 1(设某商业集团数据库中有三个实体集。一是“商店”实体集,属性有商店编号、商店名、地址等;二是“商品”实体集,属性有商品号、商品名、规格、单价等;三是“职工”实体集,属性有职工编号、姓名、性别、业绩等。 商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店每销售一种商品,有月销售量;商店与职工间存在着“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。 试画出ER图,并在图上注明属性、联系的类型。再转换成关系模式集,并指出每个关系模式的主键和外键。 商品名 规格 单价 姓名 性别 职工编号 商品号 业绩 N 商品 职工 N 销售 聘用 聘期 月销售量 M 1 月薪 商店 商店编号 商店名 地址 关系模式集: 商店(商店编号,商店名,地址) 商品(商品号,商品名,规格,单价) 职工(职工编号,姓名,性别,业绩,商店编号,月薪,聘期) 销售(商店编号,商品编号,月销售量) 11 2(设某商业集团数据库中有三个实体集。一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属性有仓库编号、仓库名、地址等;三是“职工”实体集,属性有职工编号、姓名、性别等。 公司与仓库间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。 试画出ER图,并在图上注明属性、联系的类型。再转换成关系模式集,并指出每个关系模式的主键和外键。 公司编号 公司名 地址 姓名 性别 职工编号 N 公司 职工 1 隶属 聘用 聘期 N 1 工资 仓库 地址 仓库编号 仓库名 关系模式集: 公司(公司编号,公司名,地址) 仓库(仓库编号,仓库名,地址,公司编号) 职工(职工编号,姓名,性别,仓库编号,聘期,工资) 12 3(设某商业集团数据库中有三个实体集。一是“商品”实体集,属性有商品号、商品名、规格、单价等;二是“商店”实体集,属性有商店编号、商店名、地址等;三是“供应商”实体集,属性有供应商编号、供应商名、地址等。 供应商与商品间存在“供应”联系,每个供应商可供应多种商品,每种商品可向多个供应商订购,供应商供应商品有月供应量;商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品可在多个商店销售,商店销售商品有月 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 数。 试画出ER图,并在图上注明属性、联系的类型。再转换成关系模式集,并指出每个关系模式的主键和外键。 供应商编号 供应商名 规格 地址 商品号 商品名 单价 N 供应商 商品 M 供应 销售 月计划数 月供应量 N M 商店 商店编号 商店名 地址 关系模式集: 供应商(供应商编号,供应商名,地址) 商店(商店编号,商店名,地址) 商品(商品号,商品名,规格,单价) 供应(供应商编号,商店编号,月供应量) 销售(商店编号,商品号,月计划数) 第三章 关系模式设计理论 要求、目标: 了解关系数据库规范化理论及其在数据库设计中的作用,重点是 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 依赖和范式,要求掌握这些概念并能运用它们来进行模式分解。 一、关系模式的设计准则 1(数据冗余:同一个数据在系统中多次重复出现。 2(关系模式设计不当引起的异常问题:数据冗余、操作异常(包括修改异常、插入异常和删除异常) 3(关系模式的非形式化设计准则 1)关系模式的设计应尽可能只包含有直接联系的属性,不要包含有间接联系的属性。也就是,每个关系模式应只对应于一个实体类型或一个联系类型。 13 2)关系模式的设计应尽可能使得相应关系中不出现插入异常、删除和修改等操作异常现象。 3)关系模式的设计应尽可能使得相应关系中避免放置经常为空值的属性。 4)关系模式的设计应尽可能使得关系的等值连接在主键和外键的属性上进行,并且保证以后不会生成额外的元组。 4(习惯使用的一些符号: 1)英文字母表首部的大写字母“A,B,C,…”表示单个的属性。 2)英文字母表尾部的大写字母“…,U,V,W,X,Y,Z”表示属性集。 3)大写字母R表示关系模式,小写字母r表示其关系。 4)关系模式的简化表示方法:R(A,B,C,…)或R(ABC…) 5)属性集X和Y的并集简写为XY。 二、函数依赖 1(函数依赖(FD)的定义:设有关系模式R(U),X和Y是属性集U的子集,函数依赖是形成X?Y的一个命题,只要r是R的当前关系,对r中任意两个元组t和s,都有t[X]=s[X]蕴涵t[Y]=s[Y],那么称FD X?Y在关系模式R(U)中成立。 说明: 1)t[X]表示元组t在属性集X上的值,其余类同。 2)X?Y读作“X函数决定Y”或“Y函数依赖于X”。 3)FD是对关系模式R的一切可能的关系r定义的。对于当前关系r的任意两个元组,如果X值相同,则要求Y值也相同,即有一个X值就有一个Y值与之对应,或者说Y值由X值决定。 例:设关系模式R(ABCD),在R的关系中,属性值间有这样的联系:A值与B值有一对多联系;C值与D值之间有一对一联系。试根据这些规则写出相应的函数依赖。 B?A C?D D?C 2(如果X?Y和Y?X同时成立,则可记为:X?Y 3(FD的逻辑蕴涵:设F是在关系模式R上成立的函数依赖的集合,X?Y是一个函数依赖。如果对于R的每个满足F的关系r也满足X?Y,那么称F逻辑蕴涵X?Y,记为F|=X?Y。 4(设F是函数依赖集,被F逻辑蕴涵的函数依赖全体构成的集合,称为函数依赖集F的闭 ++包,记为F。即F={X?Y | F|=X?Y } 5(FD的推理规则(Armstrong公理) 设U是关系模式R的属性集,F是R上成立的只涉及到U中属性的函数依赖集。 1) 自反性:若Y,X,U,则X?Y在R上成立。 2) 增广性:若X?Y在R上成立,且Z,U,则XZ?YZ在R上成立。 3) 传递性:若X?Y和Y?Z在R上成立,则X?Z在R上成立。 6(FD的其他五条推理规则: 1)合并性:{X?Y,X?Z} |= X?YZ 2)分解性:{X?Y,Z,Y } |= X?Z 3)伪传递性:{X?Y,WY?Z } |= WX?Z 4)复合性:{X?Y,W?Z } |= WX?YZ 5){X?Y,W?Z } |= X?(W-Y)?YZ 7(对于FD X?Y,如果Y,X,那么称X?Y是一个“平凡的FD”,否则称为“非平凡的FD”。通常研究非平凡FD。 例:X?X,X?φ, φ?φ,XY?X都是平凡函数依赖;X?XY则是非平凡函数依赖。 8(函数依赖是关键码概念的推广。 设关系模式R的属性集是U,X是U的一个子集。如果X?U在R上成立,那么称X是R 14 的一个超键。如果X?U在R上成立,但对于R的任一真子集X都有X?U不成立,那么11称X是R的一个候选键。在关系模式设计理论中,键通常是指候选键。 9(属性集的闭包 +10(设F是属性集U上的FD集,X上U的子集,那么(相对于)属性集X的闭包用X +表示,它是一个从F集使用FD推理规则推出的所有满足X?A的属性A的集合:X={属性A | F|=X?A} ++11(X?Y能用FD推理规则推出的充分必要条件是Y, X,从而避开求F,使问题得到简化。 +12(求属性集X相对于FD集F的闭包X的算法: + X=X; ++ do {oldX:=X; for F中每个FD Y?Z do +++ if Y, X then X:=X?Z; ++ }while(X~=oldX); ++例:属性集U为ABCD,FD集为{A?B,B?C,D?B}。求A、(AD)和 +(BD) +A=ABC +(AD)=ABCD +(BD)=BCD ++13(如果关系模式R(U)上的两个函数依赖集F和G,有F=G,则称F和G是等价的函数依赖集。 三、关系模式的分解特性 1(关系模式的分解: 设有关系模式R(U),属性集为U,而R,R,…,R都是U的子集,并且有R?R?…12k12?R=U。关系模式R,R,…,R的集合用ρ表示,ρ={R,R,…,R}。用ρ代替Rk12k12k的过程称为关系模式的分解。这里ρ称为R的一个分解,也称为数据库模式。 一般把上述的R称为泛关系模式,R对应的当前值称为泛关系。数据库模式ρ对应的当前值称为数据库实例,它由数据库模式中的每一个关系模式的当前值组成。我们用σ=表示。 2k 因此,在计算机中数据并不是存储在泛关系r中,而是存储在数据库σ中。 2(σ和r是否等价,即是否表示同样的数据。这个问题用“无损分解”特性表示。 在模式R上有一个FD集F,在ρ的每一个模式R上有一个FD集F,那么{F,F,…,2ii1F}与F是否等价。这个问题用“保持依赖”特性表示。 k 四、范式 1(范式:衡量关系模式好坏的标准。 2(数据库设计中最常用的是3NF和BCNF。 3(第一范式(1NF):如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式的模式。满足1NF的关系称为规范化的关系,否则称为非规范化的关系。1NF是关系模式应具备的最起码的条件。 4(局部依赖和完全依赖:对于FD W?A,如果存在X,W有X?A成立,那么称W?A是局部依赖(A局部依赖于W);否则称W?A是完全依赖。 5(主属性和非主属性:如果A是关系模式R的候选键中的属性,那么称A是R的主属性;否则称A是R的非主属性。 6(第二范式(2NF):如果关系模式是1NF,且每个非主属性完全函数依赖于候选键,那么 15 称R是第二范式(2NF)的模式。 7(分解成2NF模式集的算法: 设关系模式R(U),主键是W,R上还存在FD X?Z,并且Z是非主属性和X ,W,那么W?Z就是一个局部依赖。此时应把R分解成两个模式: R1(XZ),主键是X; R2(Y),其中Y=U-Z,主键仍是W,外键是X(参照R1)。 如果R1和R2还不是2NF,则重复上述过程,一直到数据库模式中的每一个关系模式都是2NF为止。 8(如果X?Y,Y?A,且Y?X和A,Y,那么称X?A是传递依赖(A传递依赖于X)。 9(第三范式(3NF):如果关系模式R是2NF,且每个非主属性都不传递依赖于R的候选键,那么称R是第三范式(3NF)的模式。 10(分解成3NF模式集的算法: 设关系模式R(U),主键是W,R上还存在FD X?Z。并且Z是非主属性,Z,X,X不是候选键,这样W?Z就是一个传递依赖。此时应把R分解成两个模式: R1(XZ),主键是X; R2(Y),其中Y=U-Z,主键仍是W,外键是X(参照R1)。 如果R1和R2还不是3NF,则重复上述过程,一直到数据库模式中的每一个关系模式都是3NF为止。 11(如果R是3NF模式,那么R也是2NF模式。如果R是2NF模式,那么R也是1NF模式。 12(BC范式(BCNF):如果关系模式R是1NF,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式。 13(如果R是BCNF模式,那么R也是3NF模式。 14(分解成BCNF模式集的算法能保持无损分解,但不一定能保持FD集。而分解成3NF模式集的算法既能保持无损分解,又能保持FD集。 15(关系模式由1NF分解为2NF,消除了非主属性对键的局部函数依赖;由2NF分解为3NF,消除了非主属性对键的传递函数依赖;而BCNF则消除了每一属性对键的传递函数依赖。 16(关系模式设计理论主要用于数据库的逻辑设计过程中。 第三章 复习题 一、单项选择题 1(由于关系模式设计不当所引起的插入异常指的是( B ) A) 两个事务并发地对同一关系进行插入而造成数据库不一致 B) 由于键值的一部分为空而不能将有用的信息作为一个元组插入到关系中 C) 未经授权的用户对关系进行了插入 D) 插入操作因为违反完整性约束条件而遭到拒绝 2(下面有关模式分解的叙述中,不正确的是( D ) A) 若一个模式分解保持函数依赖,则该分解一定具有无损连接性 B) 若要求分解保持函数依赖,那么模式分解可以达到3NF,但不一定能达到 BCNF C) 若要求分解既具有无损连接性,又保持函数依赖,则模式分解可以达到 3NF,但不一定能达到BCNF 16 D) 若要求分解具有无损连接性,那么模式分解一定可以达到BCNF 3(下述哪一条不是由于关系模式设计不当而引起的( B ) A) 数据冗余 B) 丢失修改 C) 插入异常 D) 修改异常 4(根据数据库规范化理论,下面命题中正确的是( D ) A) 若R?2NF,则R?3NF B) 若R?3NF,则R不属于BCNF C) 若R?3NF,则R?BCNF D) 若R?BCNF,则R?3NF 5(若关系模式R?3NF,则下面最正确的说法是( C ) A) 某个主属性不传递依赖于码 B) 某个非主属性不部分依赖于码 C) 所有的非主属性都不传递依赖于码 D) 所有的非主属性都不部分依赖于码 6(给定关系模式R〈U,F〉,其中,U是所有属性的集合,F是FD集。如果X,Y是U的子 集,且X?Y?F,则X和Y之间必然存在( C ) A) 一对一联系 B) 一对多联系(含一对一联系) C) 多对一联系(含一对一联系) D) 多对多联系 7(设R(U),其中,U是所有属性的集合。如果存在U的子集K,且K?U,则K为R的( D ) A) 外键 B)候选键 C)主键 D)超键 8( 任何一个二元关系在函数依赖的范畴内必能达到( D ) A) 1NF B)2NF C)3NF D)BCNF 9(在关系模式设计理论中,如果一个关系R满足1NF,但R的某个非主属性传递依赖于键, 则关系R至多属于( B ) A) 1NF B)2NF C)3NF D)BCNF 10(在一个BCNF关系模式中,所有的非主属性对每一个键都是( D ) A) 部分函数依赖 B)平凡函数依赖 C) 传递函数依赖 D)完全函数依赖 11(在一个关系模式R(A,B,C,D)中,若各个属性间没有任何函数依赖关系,则该模式 的主属性有( A ) A) A,B,C,D B)R,A C)A,B D)R,A,B,C,D 12(当下述哪一条成立时,称X?Y为平凡的函数依赖( B ) ,,A)X Y B)Y X C)X?Y=φ D)X?Y?φ 13(当关系模式R(A,B)已属于3NF,下列( B )说法是正确的。 A) 它一定消除了插入和删除异常 B) 仍可能存在着一定的插入和删除异常 C) 一定属于BCNF D) A和C都是 14(关系模型中的关系模式至少是( A ) A) 1NF B)2NF C)3NF D)BCNF 15(下列函数依赖中,( C )是平凡的函数依赖。 A) AB?BC B)AB?CD C)AB?A D)AB?D 16(下列命题中,不正确的是( D ) 17 A)若X?Y在R上成立,且Z,U,则XZ?YZ在R上成立。 B)若X?Y和Y?Z在R上成立,则X?Z在R上成立。 C)若X?Y,X?Z在R上成立,则 X?YZ在R上成立。 D)若X?Y,WY?Z 在R上成立,则WX?Z在R上不成立。 17(设关系模式R(ABCDE),F是R上成立的FD集,F={AB?C,CD?E,DE?B},则下列哪一项不是关系模式R的候选键( D ) A) ACD B)ABD C)AED D)AD 18(设关系模式R(ABCD)上FD集为F,并且F={ AB?C,C?D,D?A},则下列哪一项不是关系模式R的候选键( B ) A) AB B)AD C)BC D)BD 二、填空题 1(关系模式规范化过程中,若要求分解保持函数依赖,那么模式分解一定可以达到3NF,但不一定能达到BCNF。 2(将一个关系从1NF规范到2NF,目的是消除非主属性对键的部分函数依赖,若进一步规范到3NF,目的是消除非主属性对键的传递函数依赖。 3(在关系数据库的规范化设计中,对模式分解的等价性进行评价的两条主要标准是具有无损连接性和保持函数依赖。 4(若关系为1NF,且它的每一非主属性都完全函数依赖于候选键,则该关系为2NF。 5(衡量关系模式好坏的标准称为范式。 6(满足第一范式的关系称为规范化的关系。 7(设关系模式R(ABCD),F是R上成立的FD集,F={A?B,C?B},则相对于F,关系模式R的候选键是AC。 三、综合题 1(设关系模式R(ABCD),F是R上成立的FD集,F={A?B,B?C}。 + 1)试写出属性集BD的闭包(BD)。 2)试写出所有左部是B的函数依赖(即形为“B?,”)。 +(BD)=BCD 左部是B的函数依赖有:B?φ,B?B,B?C,B?BC 2(设关系模式R(ABCDE)上FD集为F,并且F={ A?BC,CD?E,B?D,E?A}。 1)试求R的候选键。 + 2)试求B的值。 R的候选键为:A、E、BC、CD +B=BD 3(设关系模式R(ABCD),F是R上成立的FD集,F={AB?CD,A?D}。 1)试说明R不是2NF模式的理由。 2)试把R分解成2NF模式集。 理由:R的候选键是AB,则非主属性为C和D,并且AB?D成立。而已知A?D,因此AB?D为非主属性D对候选键的局部依赖。 R分解为:R1(AD)主键是A; R2(ABC)主键是AB,外键是A。 4(设关系模式R(ABCD),F是R上成立的FD集,F={C?B,B?A}。 1)试说明R不是3NF模式的理由。 18 2)试把R分解成3NF模式集。 理由:R的候选键是C,则非主属性为A和B。因为C?B,B?A,则C?A为非主属性A对候选键的传递依赖。 R分解为:R1(CB)主键是C,外键是B; R2(AB)主键是B。 5(设有关系模式R(职工编号,日期,日营业额,部门名,部门经理),该模式记录了商店里每个职工的日营业额,以及职工所在的部门和经理信息。 如果规定:每个职工每天只有一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。 试回答下列问题: 1)根据上述规定,写出模式R的基本FD和关键码; 2)说明R不是2NF的理由,并把R分解成2NF模式集; 3)进而分解成3NF模式集。 答:1)R的基本FD:(职工编号,日期)?日营业额,职工编号?部门名,部门名?部门 经理 R的关键码:(职工编号,日期) 2)R不是2NF的理由:R的候选键是(职工编号,日期),则部门名和部门经理为非 主属性,并且(职工编号,日期)?部门名和(职工编号,日期)?部门经理成立。 而职工编号?部门名,部门名?部门经理,因此职工编号?部门经理,因此(职工 编号,日期)?部门名为非主属性部门名对候选键的局部依赖,(职工编号,日期) ?部门经理为非主属性部门经理对候选键的局部依赖 R分解为:R1(职工编号,部门名,部门经理)主键是职工编号; R2(职工编号,日期,日营业额)主键是(职工编号,日期),外键 是职工编号。 3)R分解为:R11(职工编号,部门名)主键是职工编号,外键是部门名(参照R12); R12(部门名,部门经理) 主键是部门名; R2(职工编号,日期,日营业额)主键是(职工编号,日期),外键 是职工编号(参照R11)。 6(设有关系模式R(运动员编号,比赛项目,成绩,比赛类别,比赛主管),存储运动员比赛成绩及比赛类别、主管等信息。 如果规定:每个运动员每参加一个比赛项目,只有一个成绩;每个比赛项目只属于一个比赛类别;每个比赛类别只有一个比赛主管。 试回答下列问题: 1)根据上述规定,写出模式R的基本FD和关键码; 2)说明R不是2NF的理由,并把R分解成2NF模式集; 3)进而分解成3NF模式集。 答:1)R的基本FD:(运动员编号,比赛项目)?成绩,比赛项目?比赛类别,比赛类别 ?比赛主管 R的关键码:(运动员编号,比赛项目) 2)R不是2NF的理由:R的候选键是(运动员编号,比赛项目),则比赛类别和比赛 主管为非主属性,并且(运动员编号,比赛项目)?比赛类别和(运动员编号,比 赛项目)?比赛主管成立。而比赛项目?比赛类别,比赛类别?比赛主管,因此比 赛项目?比赛主管成立,因此(运动员编号,比赛项目)?比赛类别为非主属性比 赛类别对候选键的局部依赖,(运动员编号,比赛项目)?比赛主管为非主属性比 19 赛主观对候选键的局部依赖。 R分解为:R1(比赛项目,比赛类别,比赛主管)主键是比赛项目; R2(运动员编号,比赛项目,成绩)主键是(运动员编号,比赛项目), 外键是比赛项目。 3)R分解为:R11(比赛项目,比赛类别)主键是比赛项目,外键是比赛类别(参 照R12); R12(比赛类别,比赛主管) 主键是比赛类别; R2(运动员编号,比赛项目,成绩)主键是(运动员编号,比赛项 目),外键是比赛项目(参照R11)。 第四章 关系运算 要求、目标: 理解关系模型的运算理论,了解关系演算和查询优化,熟练掌握关系代数运算,掌握关系代数表达式的构造方法。 一、简介 1(关系模型的三个组成部分:数据结构、数据操纵和数据完整性规则。 2(数据结构:数据库中全部数据及其相互联系都被组织成“关系”(二维表格)的形式。关系模型基本的数据结构是关系。 3(数据操纵:关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作。关系运算分成关系代数和关系演算两类。 4(数据完整性规则:数据库中数据必须满足实体完整性、参照完整性和用户定义的完整性等三类完整性规则。 5(关系数据库的数据操纵语言(DML)的语句分成查询语句和更新语句两大类。查询语句用于描述用户的各种检索要求;更新语句用于描述插入、删除、修改等操作。前者是基础。 6(关系查询语言分两类:关系代数语言(查询操作以集合操作为基础)和关系演算语言(查询操作以谓词演算为基础) 二、关系代数 1(关系代数中的操作可以分为两类: 1)传统的集合操作:并、差、交、笛卡儿积(乘法)、笛卡儿积的逆运算(除法) 2)扩充的关系操作:投影、选择、连接等。 2(关系代数的五个基本操作:并、差、笛卡儿积、投影和选择。 3(并:设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为R?S。 4(差:设关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为R-S。 5(笛卡儿积:设关系R和S的元数分别为r和s,R和S的笛卡儿积是一个(r+s)元的元组集合,每个元组的前r个分量(属性值)来自R的一个元组,后s个分量来自S的一个元组。若R有m个元组,S有n个元组,则R×S有m×n个元组。 6(投影:对一个关系进行垂直分割,消去某些列,并重新安排列的顺序。例:π,R, 下,31标也可以用属性名表示。 7(选择:对关系做水平分割,即选取符合条件的元组。表示为:σ,R,从R中挑选满足F 公式F为真的元组所构成的集合。 20 F中有两种成分: 1)运算对象:常数(用引号括起来)、元组分量(属性名或列的序号) 2)运算符:算术比较运算符(,、?、,、?、,、?、也称为θ符)、逻辑运算符(?、 ?、,) ,R,、σ,R,。 例:两个关系R和S如下:求R?S、R-S、R×S、π,CAB>’4’ 关系R 关系S A B C A B C 1 2 3 2 4 6 4 5 6 4 5 6 7 8 9 答案: R?S R-S A B C 1 2 3 A B C 4 5 6 1 2 3 7 8 9 7 8 9 2 4 6 R×S π,R, ,CAR.A R.B R.C S.A S.B S.C C A 1 2 3 2 4 6 3 1 1 2 3 4 5 6 6 4 4 5 6 2 4 6 9 7 4 5 6 4 5 6 7 8 9 2 4 6 7 8 9 4 5 6 σ,R, B>’4’ A B C 4 5 6 7 8 9 8.交:设关系R和S具有相同的关系模式,R和S的交是由属于R又属于S的元组构成的 集合,记为R?S。R?S=R-(R-S)或R?S=S-(S-R) 9(连接:从关系R和S的笛卡儿积中选取属性值满足某一θ操作的元组,记为R?S i和 j分别是关系R和S中的第i个和第j个属性名或序号。 iθj 连接是由笛卡儿积和选择操作组合而成。 如果θ为“=”,该连接操作称为“等值连接”。 例:已知关系R和S,求R?S 2=1 21 关系R 关系S A B C D E 1 2 3 2 4 4 5 6 5 6 7 2 9 7 8 答案:R?S 2=1 A B C D E 1 2 3 2 4 4 5 6 5 6 7 2 9 2 4 10(自然连接:公共属性只出现一次的等值(公共属性值全部相等)连接。 记为:R?S 一般自然连接使用在R和S有公共属性的情况中。如果两个关系没有公共属性,那么其自然 连接就转化为笛卡儿积操作。 22 例:已知关系R和S,求R?S 关系R 关系S A B C B C D 2 4 6 5 7 3 3 5 7 4 6 2 7 4 6 5 7 9 5 4 7 5 6 3 答案: A B C D 2 4 6 2 3 5 7 3 3 5 7 9 7 4 6 2 11(除法:设关系R(X,Y)和关系S(Y,Z),则R?S定义为: R(X,Y)?S(Y,Z)=?(R)-?((?(R)×?(S))-R) XXXY例:关系R是学生选修课程的情况,COURSE表示课程情况,而操作R?COURSE表示至少选 修COURSE中列出课程的学生名单。 R COURSE S# SNAME C# C# CNAME S1 BAO C1 C2 OS S1 BAO C2 C4 MIS S1 BAO C3 S1 BAO C4 S2 GU C1 S2 GU C2 S3 AN C2 S4 LI C4 S4 LI C2 R?COURSE S# SNAME S1 BAO S4 LI 12(关系代数表达式:由五个基本操作经过有限次复合的式子称为代数表达式。这种表达式 的运算结果仍是一个关系。可以用关系代数表达式表示各种数据查询操作。 例:教学数据库中的四个关系如下: 教师关系T(T#,TNAME,TITLE) 课程关系C(C#,CNAME,T#) 学生关系S(S#,SNAME,AGE,SEX) 选课关系SC(S#,C#,SCORE) 使用关系代数表达式表达下列每个查询语句。 1) 检索学习课程号为C2课程的学生学号与成绩。 23 π,σ,SC,,或π,σ,SC,, ,‘‘,‘‘S#SCOREC#=C2 132=C2 2)检索学习课程号为C2课程的学生学号和姓名。 π,σ,S?SC,, ,‘‘S#SNAMEC#=C2 3)检索至少选修LIU老师所授课程中一门课程的学生学号与姓名。 π,σ,S?SC?C?T,, ,‘‘S#SNAMETNAME=LIU 4)检索选修课程号为C2或C4课程的学生学号。 π,SC,, ,σ? ‘‘‘‘S#C#=C2 C#=C4 5)检索至少选修课程号为C2和C4课程的学生学号。 π,σ,SC×SC,, ?‘‘?‘‘11=4 2=C2 5=C4 6)检索不学C2课程的学生姓名与年龄。 π,S,-π,σ,S×SC,, ,,‘‘SNAMEAGESNAMEAGEC#=C2 7)检索学习全部课程的学生姓名。 π,S?(π,SC,?π,C,,, ,SNAMES#C#C# 8)检索所学课程包含学号为S3学生所学课程的学生学号。 π,SC,?π,σ,SC,, ,‘‘S#C#C#S#=S3 总结:查询语句的关系代数表达式的一般形式是: π…(σ…(R×S))或π…(σ…(R?S)) 即首先把查询涉及到的关系取来,执行笛卡儿积或自然连接操作得到一张大的表格,然后对大表格执行水平分割(选择操作)和垂直分割(投影操作)。 但这种形式不适用于否定或全部值的查询。这时要用差或除法操作。 13(外连接:如果R和S做自然连接时,把原该舍弃的元组也保留在新关系中,同时在这些元组新增加的属性上填上空值(Null),这种操作称为“外连接”操作。 14(左外连接:如果R和S做自然连接时,只把R中原该舍弃的元组放到新关系中,那么这种操作称为“左外连接”操作。 15(右外连接:如果R和S做自然连接时,只把S中原该舍弃的元组放到新关系中,那么这种操作称为“右外连接”操作。 16(外部并:两个关系R和S做并操作时,如果它们的关系模式不同,构成的新关系的属性由R和S的所有属性组成(公共属性只取一次),新关系的元组由属于R或属于S的元组构成,同时元组在新增加的属性上填上空值,那么这种操作称为“外部并”操作。 三、关系演算 关系演算又可分为元组关系演算和域关系演算,前者以元组为变量,后者以属性(域)为变量。 四、关系代数表达式的优化 1(目的:提高系统效率。 2(三条启发式规则: 24 1)尽可能早地执行选择操作; 2) 尽可能早地执行投影操作; 3) 避免直接做笛卡儿积,把笛卡儿积操作之前和之后的一连串选择和投影合并起来一 起做。 第四章 复习题 一、单项选择题 1(设关系R和S的元组个数分别为100和300,关系T是R与S的笛卡儿积,则T的元组 个数是( C ) A)400 B)10000 C)30000 D)90000 2(设关系R与关系S具有相同的关系模式,则R-(R-S)等于( B ) A) R?S B)R?S C)R×S D)R-S 3(在关系代数中,从两个关系的笛卡儿积中,选取它们属性间满足一定条件的元组的操作, 称为( D ) A) 投影 B)选择 C)自然连接 D)连接 4(设关系R和关系S的元数分别是3和4,关系T是R与S的笛卡儿积,即:T=R×S,则 关系T的元数是( A ) A) 7 B)9 C)12 D) 16 5(在关系代数中,自然连接的运算符号为( A ) A) ? B)? C) π D) σ 6(设有关系R,S和T如下。关系T由关系R和S经过( B )操作得到。 R A B C 1 2 3 4 1 6 3 2 4 S A B C 4 1 6 2 7 1 T A B C 1 2 3 3 2 4 A) R?S B) R,S C) R×S D) R?S 7(查询优化策略中最重要、最基本的一条原则是( C ) A) 投影运算应尽可能先做 B) 连接运算应尽可能先做 C) 选择运算应尽可能先做 D) 把投影运算和选择运算同时进行 8(假定有两个关系R与S,其内容分别为: R关系 A B C 1 2 5 25 2 5 6 3 5 4 S关系 B C D 2 5 17 2 5 9 5 4 1 则R?S的运算结果为( B ) A) A B C 1 2 5 1 2 4 2 5 5 B) A B C D 1 2 5 17 1 2 5 9 3 5 4 1 C) A B C S(B S(C D 1 2 5 2 5 17 2 5 6 2 5 9 3 5 4 5 4 1 D) A B C 2 5 6 9( 对表进行垂直方向的分割用的运算是( B ) A)交 B)投影 C)选择 D)连接 10(当关系R与S做自然连接时,能够把R和S原该舍弃的元组放到结果关系中的操作是( D ) A)左外连接 B)右外连接 C)外部并 D)外连接 11(关系笛卡儿积运算记号R?S中,( D ) A) R为关系名,S为属性名 B)R,S均为属性名 B) R为属性名,S为关系名 D)R,S均为关系名 12(关系模型通常由3部分组成,它们是( B ) A) 数据结构、数据通信、数据操作 B) 数据结构、数据操作、完整性规则 C) 数据通信、数据操作、完整性规则 D) 数据结构、数据通信、完整性规则 13(如果两个关系没有公共属性,那么其自然连接操作( A ) A)转化为笛卡儿积操作 B)转化为连接操作 C) 转化为外部并操作 D)结果为空关系 二、填空题 26 1(关系模型的三个组成部分分别是:数据结构、数据操纵和数据完整性规则。 2(已知关系R,T,试求下列运算结果。 R: A B a d b c f f T: B C b b c c b g ?σ(R×T) A R.B T.B C A=C b c c c ?R?T A B C b c c 3(给定两个关系S1,S2, S1: B C D 2 5 7 3 6 7 2 5 8 3 6 9 S2: B C 2 5 3 6 求π (σ(S1))?S2 ,BC’5’ B C 3 6 4(关系代数中,从两个关系中找出相同元组的运算称为 交 运算。 5(关系代数的五个基本操作为: 并 、 差 、笛卡儿积、投影和选择。 6(关系运算分成关系代数和关系演算两类。 三、计算题 1(设有关系R和S: 27 R S A B C A B C 2 4 6 2 5 7 3 5 7 4 6 8 4 6 8 3 5 9 ,S,、σ,R,、R?S、R?S 计算R?S、R-S、R?S、R×S、π,31C>’6’ 2=2 答: R?S R-S A B C A B C 2 4 6 2 4 6 3 5 7 3 5 7 4 6 8 2 5 7 3 5 9 R?S R×S A B C R.A R.B R.C S.A S.B S.C 4 6 8 2 4 6 2 5 7 2 4 6 4 6 8 2 4 6 3 5 9 π,S, ,31 3 5 7 2 5 7 3 5 7 4 6 8 C A 3 5 7 3 5 9 7 2 4 6 8 2 5 7 8 4 4 6 8 4 6 8 9 3 4 6 8 3 5 9 σ,R, C>’6’ A B C 3 5 7 4 6 8 R?S R?S 2=2 R.A R.B R.C S.A S.B S.C A B C 3 5 7 2 5 7 4 6 8 3 5 7 3 5 9 4 6 8 4 6 8 2.设有关系R和S,计算R?S、R?S、σ,R×S, 3=6 1=1 R S 28 A C D B C D 2 5 8 3 5 8 7 4 1 4 4 1 4 5 8 4 1 8 3 4 9 6 4 1 答:R?S R?S 1=1 A C D B 2 5 8 3 A R.C R.D B S.C S.D 7 4 1 4 4 5 8 4 4 1 7 4 1 6 4 5 8 4 1 8 4 5 8 3 3 4 9 3 5 8 σ,R×S, 3=6 A R.C R.D B S.C S.D 2 5 8 3 5 8 2 5 8 4 1 8 7 4 1 4 4 1 7 4 1 6 4 1 4 5 8 3 5 8 4 5 8 4 1 8 四、设计题 1(设教学数据库中有四个关系: 教师关系T(T#,TNAME,TITLE) 课程关系C(C#,CNAME,T#) 学生关系S(S#,SNAME,AGE,SEX) 选课关系SC(S#,C#,SCORE) 试用关系代数表达式表示下列查询语句: 1)检索年龄小于17岁的女学生的学号和姓名。 2)检索男学生所学课程的课程号和成绩。 3)检索男学生所学课程的任课教师的工号和姓名。 4)检索至少选修两门课程的学生学号。 5)检索至少有学号为S2和S4学生选修的课程的课程号。 6)检索WANG同学不学的课程的课程号。 7)检索全部学生都选修的课程的课程号和课程名。 8)检索选修课程包含LIU老师所授全部课程的学生学号。 答: 1)π,σ,S,, ,?女S#SNAMEAGE<’17’ SEX=’’ ,S?SC), 2) π,σ,‘男‘C#SCOREsex= 29 3)π,σ,S?SC?C?T,, ,‘男‘T#TNAMEsex= 4)π,σ,SC×SC,, ??11=4 25 5)π,σ,SC,,? π,σ,SC,, ‘‘‘‘C#S#=S2 C#S#=S4 6)π,C,-π,σ,S×SC,, ‘‘C#C#SNAME=WANG 7)π,,C?(π,SC,?π,S,,, ,c#CNAMES#C#S# ,σ,C?T,, 8)π,SC,?π,‘‘S#C#C#TNAME=LIU 第五章 SQL语言 要求、目标: SQL语言是关系数据库的标准语言,是本课程的一个重点。本章总的要求是:全面掌握、深刻理解、熟练应用。 要求了解嵌入式SQL和存储过程,掌握SQL定义语句的应用,熟练掌握SQL查询语句、视图、SQL更新语句的应用。 一、SQL简介 1(SQL:结构化查询语言,关系数据库的标准语言。 2(SQL数据库的体系结构 SQL数据库的体系结构基本上也是三级结构,但术语与传统的关系模型术语不同。在SQL中,关系模式称为“基本表”,存储模式称为“存储文件”,子模式称为“视图”,元组称为“行”,属性称为“列”。 SQL数据库的体系结构要点: 1)一个SQL模式是表和约束的集合。 2)一个表由行集构成,一行是列的序列,每列对应一个数据项。 3)表有三种类型:基本表、视图和导出表。 基本表:实际存储在数据库中的表。 视图:由若干基本表或其他视图构成的表的定义。 导出表:执行了查询时产生的表。 4)一个基本表可以跨一个或多个存储文件,一个存储文件也可以存放一个或多个基本表。每个存储文件与外部存储器上一个物理文件对应。 5)用户可以用SQL语句对基本表和视图进行查询等操作。在用户看来,两者一样,都是表。 6) SQL语句可嵌在C、FORTRAN等主语言的程序中使用,也可在交互环境下供终端用户使用。 3(SQL的组成 核心SQL主要有四个部分: 1)数据定义语言,即DDL,用于定义SQL模式、基本表、视图、索引等结构。 2)数据操纵语言,即SQL DML。数据操纵分成数据查询和数据更新两类。而数据更新又分成插入、删除和修改三种操作。 3)嵌入式SQL语言的使用规定 4)数据控制语言,即SQL DCL,这一部分包括对基本表和视图的授权、完整性规则的 30 描述、事务控制等内容。 4(SQL的特点 1)SQL具有十分灵活和强大的查询功能。 2)SQL不是一个应用开发语言,它只提供对数据库的操作功能。但SQL既可作为交互式语言独立使用,也可作为子语言嵌入在主语言中使用,成为应用开发语言的一部分。 3)SQL是国际标准语言,有利于各种数据库之间交换数据,有利于程序的移植,有利于实现高度的数据独立性,有利于实现标准化。 4)SQL完成核心功能只用9个英语动词,语法结构接近英语,容易学习和使用。 二、SQL的数据定义 1(SQL模式的创建 在SQL中,一个SQL模式定义为基本表的集合。一个SQL模式由模式名和模式拥有者的用户名或账号来确定,并包含模式中每一个元素(基本表、视图、索引等)的定义。创建SQL模式,就是定义了一个存储空间。 创建模式语法: CREATE SCHEMA <模式名> AUTHORIZATION <用户名> 2(SQL模式的撤销 语法:DROP SCHEMA <模式名> [CASCADE | RESTRICT] 说明: CASCADE(级联式)方式:执行DROP语句时,把SQL模式及其下属的基本表、视图、索引等所有元素全部撤销。 RESTRICT(约束式)方式:只有当SQL模式中没有任何下属元素时,才能撤销SQL模式,否则拒绝执行DROP语句。 3(SQL的基本数据类型 1)数值型 INTEGER(或INT) 长整数 SMALLINT 短整数 REAL 浮点数 DOUBLE PRECISION 双精度浮点数 FLOAT(n) 浮点数,精度至少为n位数字 NUMERIC(p,d) 定点数,有p位数字(不包括符号、小数点)组成,小数点后有d位数字,也可写成DECIMAL(p,d)或DEC(p,d) 2)字符串型 CHAR(n) 长度为n的定长字符串 VARCHAR(n) 具有最大长度为n的变长字符串 3)位串型 BIT(n) 长度为n的二进制位串 BIT VARYING(n) 最大长度为n的变长二进制位串 4)时间型 DATE 日期,包含年、月、日,形为YYYY-MM-DD TIME 时间,包含时、分、秒,形为HH:MM:SS 4(基本表结构的创建 语法:CREATE TABLE <基本表名> (<列名 类型>, …… 31 <完整性约束>, ……) 说明:完整性约束常用以下几种子句:主键子句(PRIMARY KEY)、外键子句(FOREIGN KEY)等 NOT NULL:表示不允许某一列的值为空值 例:对于教学数据库中的四个关系: 教师关系T(T#,TNAME,TITLE) 课程关系C(C#,CNAME,T#) 学生关系S(S#,SNAME,AGE,SEX) 选课关系SC(S#,C#,SCORE) 创建基本表。 CREATE TABLE T (T# CHAR(4) NOT NULL, TNAME CHAR(8) NOT NULL, TITLE CHAR(10), PRIMARY KEY(T#)) CREATE TABLE C (C# CHAR(4) NOT NULL, CNAME CHAR(10) NOT NULL, T# CHAR(4), PRIMARY KEY(C#), FOREIGN KEY(T#) REFERENCES T(T#)) CREATE TABLE S (S# CHAR(4) NOT NULL, SNAME CHAR(8) NOT NULL, AGE SMALLINT, SEX CHAR(2), PRIMARY KEY(S#)) CREATE TABLE SC (S# CHAR(4), C# CHAR(4), SCORE SMALLINT, PRIMARY KEY(S#,C#), FOREIGN KEY(S#) REFERENCES S(S#), FOREIGN KEY(C#) REFERENCES C(C#)) 5(基本表结构的修改 1)增加新的列 语法:ALTER TABLE <基本表名> ADD <列名> <类型> 2)删除原有的列 语法:ALTER TABLE <基本表名> DROP <列名> [CASCADE | RESTRICT] 说明:CASCADE方式表示在基本表中删除某列时,所有引用到该列的视图和约束也要 32 一起自动地被删除;RESTRICT方式表示在没有视图或约束引用该属性时,才能在基本表中删除该列,否则拒绝删除。 3)修改原有列的类型、宽度 语法:ALTER TABLE <基本表名> MODIFY <列名> <类型> 6(基本表的撤销 语法:DROP TABLE <基本表名> [CASCADE | RESTRICT] 7(索引的创建 语法:CREATE [UNIQUE] INDEX <索引名> ON <基本表名>(<列名序列>) 说明:UNIQUE表示每个索引值对应惟一的数据记录。 索引在用户查询时会自动起作用。 一个索引键可以对应多个列。索引排列时可以升序,也可以降序,升序排列用ASC表示,降序排列用DESC表示,默认时表示升序。 8(索引的撤销 语法:DROP INDEX <索引名> 三、SQL的数据查询 1(SELECT查询语句句型 在关系代数中最常用的式子是下列表达式: Π(σ(R1×…×Rm)) ,,A1…AnF 这里,R1、…、Rm为关系,F是公式,A1、„、An为属性。 与该表达式对应,SQL设计了SELECT—FROM—WHERE句型: SELECT A1,„,An FROM R1,…,Rm WHERE F 注意:1)在学习时,应把SELECT语句和关系代数表达式联系起来考虑问题。 2)在WHERE子句的条件表达式F中可使用下列运算符: 比较运算符:〈、 〈=、 〉、 〉=、 =、 〈〉或~= 逻辑运算符:AND、OR、NOT 集合成员资格运算符:IN、NOT IN 谓词:EXISTS、ALL、SOME 聚合函数:AVG、MIN、MAX、SUM、COUNT F中运算对象还可以是另一个SELECT语句,即SELECT语句可以嵌套。 2(SELECT语句的使用技术 SELECT使用时有三种写法:连接查询、嵌套查询和带存在量词的嵌套查询。 例:针对前面使用的教学数据库,检索学习课程号为C2课程的学生学号与姓名。 第一种写法(连接查询): SELECT S.S#,SNAME FROM S,SC WHERE S.S#=SC.S# AND C#=’C2’ 第二种写法(嵌套查询): SELECT S#,SNAME FROM S WHERE S# IN(SELECT S# FROM SC 33 WHERE C#=‘C2’) 第三种写法(使用存在量词的嵌套查询): SELECT S#,SNAME FROM S WHERE EXISTS(SELECT * FROM SC WHERE SC.S#=S.S# AND C#=’C2’) 例:对于教学数据库中四个基本表T、C、S、SC,用SELECT语句表示下面查询。 1) 检索学习课程号为C2课程的学生学号与成绩。 SELECT S#,SCORE FROM SC WHERE C#=‘C2’ 2)检索学习课程号为C2课程的学生学号和姓名。 见上例 3)检索至少选修LIU老师所授课程中一门课程的学生学号与姓名。 SELECT S.S#,SNAME FROM S,SC,C,T WHERE S.S#=SC.S# AND SC.C#=C.C# AND C.T#=T.T# AND TNAME=’LIU’ 4)检索选修课程号为C2或C4课程的学生学号。 SELECT S# FROM SC WHERE C#=’C2’ OR C#=’C4’ 5)检索至少选修课程号为C2和C4课程的学生学号。 SELECT X.S# FROM SC AS X,SC AS Y WHERE X.S#=Y.S# AND X.C#=’C2’ AND Y.C#=’C4’ 6)检索不学C2课程的学生姓名与年龄。 SELECT SNAME,AGE FROM S WHERE S# NOT IN(SELECT S# FROM SC WHERE C#=’C2’) 7)检索学习全部课程的学生姓名。(在表S中找学生,在C中不存在一门课程,这个学 生没有学。) SELECT SNAME FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.S#=S.S# AND SC.C#=C.C#)) 34 8)检索所学课程包含学号为S3学生所学课程的学生学号。(在SC表中找一个学生,不 存在S3学的一门课,该学生没有学。) SELECT DISTINCT S# FROM SC AS X WHERE NOT EXISTS (SELECT * FROM SC AS Y WHERE Y.S#=’S3’ AND NOT EXISTS (SELECT * FROM SC AS Z WHERE Z.S#=X.S# AND Z.C#=Y.C#)) 注:DISTINCT表示去掉重复值。 3(聚合函数 COUNT(*):计算元组个数 COUNT(<列名>) 对一列中的值计算个数 SUM(<列名>) 求某一列值的总和(此列值为数值型) AVG(<列名>) 求某一列值的平均值(此列值为数值型) MAX(<列名>) 求某一列值的最大值 MIN(<列名>) 求某一列值的最小值 说明:列名前均可加DISTINCT,表示去掉重复值。 例1:求男生的总人数和平均年龄。 SELECT COUNT(*),AVG(AGE) FROM S WHERE SEX=‘男’ 例2:统计选修了课程的学生人数。 SELECT COUNT(DISTINCT S#) FROM SC 4(SELECT语句完整的句法 SELECT <目标表的列名或列表达式序列> FROM <基本表名和(或)视图序列> [WHERE <行条件表达式>] [GROUP BY <列名序列> [HAVING <组条件表达式>]] [ORDER BY <列名[ASC | DESC]>,„] 说明:[]表示其中的内容根据需要可以省略。 |表示二选一。 各子句的作用:SELECT子句用于指定输出的内容;FROM子句用于指定要检索的 数据的来源表;WHERE子句称为“行条件子句”,用于指定对元组的选取条件;GROUP BY 子句称为“分组子句”,作用是指定对元组进行分类后再检索;HAVING子句称为“组条件子 句”,用于指定对分类后的元组的选取条件;ORDER BY子句称为“排序子句”,作用是对检 索到的元组进行排序。 整个语句的执行过程为: 1)读取FROM子句中基本表、视图的数据,执行笛卡儿积操作。 35 2)选取满足WHERE子句中给出的条件表达式的元组。 3)按GROUP子句中指定列的值分组,同时提取满足HAVING子句中组条件表达式的那些组。 4)按SELECT子句中给出的列名或列表达式求值输出。 5)ORDER子句对输出的目标表进行排序,按附加说明ASC升序排列,或按DESC降序排列。 例1:统计每门课程的学生选修人数。 SELECT COUNT(S#) FROM SC GROUP BY C# 例2:统计每门课程的学生选修人数,要求只查询出选修人数超过50人的结果。 SELECT COUNT(S#) FROM SC GROUP BY C# HAVING COUNT(S#)>50 例3:检索每名学生的学号和年龄,查询结果按年龄降序排列,年龄相同按学号升序排列。 SELECT S#,AGE> FROM S ORDER BY AGE DESC,S# ASC 5.SELECT子句的具体规定 SELECT [ALL | DISTINCT] 〈列名或列表达式序列>|* 说明:1)DISTINCT选项保证重复的行将从结构中去除;而ALL选项是默认的,将保证重复的行留在结果中,一般可不必写出。 2)*是对于在FROM子句中命名表的所有列的简写。 3)列表达式中允许出现+、-、*、/等运算符以及列名和常数、聚合函数等。 例1:检索男同学选修的课程的课程号。 SELECT DISTINCT C# FROM S,SC WHERE S.S#=SC.S# AND SEX=’男’ 例2:检索所有的学生信息。 SELECT * FROM S 例3:检索每个学生的学号和出生年份。 SELECT S#,2008-AGE FROM S 6(列和基本表的改名操作 有时,一个基本表在SELECT语句中多次出现,即这个表被多次调用,为区别不同的引用,应给每次的引用加上不同的名字。当然,除此情况之外,也可以给任何一个表起别名。但要注意:一旦给表起了别名,在该语句中,凡是引用该表名时,必须用别名而不能用原表名。 有时,用户也可以要求输出的列名与基本表中列名不一致,可在SELECT子句用“旧名 AS 新名”形式改名。其中AS可以省略。 例:检索每个学生的姓名和出生年份,输出的列名分别为STUDENT_NAME和BIRTH_YEAR。 36 SELECT S# AS STUDENT_NAME,2008-AGE AS BIRTH_YEAR FROM S 7(条件表达式中的比较操作 1)算术比较操作:常用运算符有〈、〈=、〉、〉=、=、<>或!= [NOT] BETWEEN…AND用来查找(不)在给定范围内的数据,下限在 前,上限在后,包括上、下限。 例:检索18—20岁的学生姓名。 SELECT SNAME FROM S WHERE AGE〉=18 AND AGE〈=20 或: SELECT SNAME FROM S WHERE AGE BETWEEN 18 AND 20 2)字符串的匹配操作 语法:<字符串> [NOT] LIKE <匹配模式> 说明:匹配模式中常使用两个通配符: %:与零个或多个字符组成的字符串匹配。 _:与单个字符匹配。 例:检索姓名以字符D打头的学生姓名。 SELECT SNAME FROM S WHERE SNAME LIKE ‘D%’ 转义字符:为使字符串中包含特殊字符(即%和_),允许定义转义字符。转义字符紧靠特殊 字符并放在它前面,表示该特殊字符被当成普通字符。使用ESCAPE定义转义字符。 例:LIKE ‘ab\%cd%’ ESCAPE ‘\’ 匹配所有以ab%cd开头的字符串。 LIKE ‘ab\\cd%’ ESCAPE ‘\’ 匹配所有以ab\cd开头的字符串。 3)空值的比较操作 使用IS [NOT] NULL来比较。 例:检索年龄为空值的学生姓名。 SELECT SNAME FROM S WHERE AGE IS NULL 4)集合成员资格的比较 语法:[NOT] IN (<集合>) 例1:检索年龄分别是18、20、21岁的学生姓名。 SELECT SNAME FROM S WHERE AGE IN(18,20,21) 例2:检索男同学选修课程的课程号。 SELECT DISTINCT C# FROM SC WHERE S# IN(SELECT S# FROM S WHERE SEX=‘男’) 5)集合成员的算术比较 37 语法:元组 θ ALL|SOME|ANY(〈集合〉) 说明:ALL表示左边那个元组与右边集合中每一个元组满足θ运算; ANY和SOME含义相同,表示左边那个元组与右边集合中至少一个元组满足θ运 算。 例1:检索学习C2课程的学生学号和姓名。 SELECT S#,SNAME FROM S WHERE S# = SOME(SELECT S# FROM SC WHERE C#=‘C2’) 例2:检索不学C2课程的学生姓名与年龄。 SELECT SNAME,AGE FROM S WHERE S#〈〉ALL(SELECT S# FROM SC WHERE C#=‘C2’) 6)集合空否的测试 使用[NOT]EXISTS。见前面例子。 四、数据更新 1(数据插入 语法:1)单元组的插入: INSERT INTO <基本表名> [(<列名序列>)] VALUES(<元组值>) 2)多元组的插入 INSERT INTO <基本表名> [(<列名序列>)] VALUES(<元组值>), (<元组值>),…, (<元组值>) 3)查询结果的插入 INSERT INTO <基本表名> [(<列名序列>)] 4)表的插入 INSERT INTO <基本表名1> [(<列名序列>)] TABLE <基本表名2> 说明:在上述各种插入语句中,如果插入的值在属性个数、顺序与基本表的结构完全一致, 那么基本表后的(<列名序列>)可省略,否则必须详细列出。 2(数据删除 语法:DELETE FROM <基本表名> [WHERE <条件表达式>] 说明:如果省略WHERE子句,表示删除基本表中所有元组。 例:把课程名为MATHS的成绩从基本表SC中删除。 DELETE FROM SC WHERE C# IN(SELECT C# FROM C WHERE CNAME=‘MATHS’) 3(数据修改 语法:UPDATE <基本表名> SET <列名>=<值表达式>[,<列名>=<值表达式>…] | ROW=(<元组>) [WHERE <条件表达式>] 例1:把C5课程的课程名改为DB。 UPDATE C 38 SET CNAME=‘DB’ WHERE C#=‘C5’ 例2:把课程号为C5的元组修改为(C5,DB,T3) UPDATE C SET ROW=(‘C5’,‘DB’,‘T3’) WHERE C#=‘C5’ 五、视图 1(在SQL中,外模式一级数据结构的基本单位是视图。 2(视图的定义:视图是从若干基本表和(或)其他视图构造出来的表。这种构造方法采用SELECT语句实现。在我们创建一个视图时,只是把其视图的定义存放在数据字典中,而不存储视图对应的数据,在用户使用视图时才去求对应的数据。因此,视图被称为“虚表”。 3(视图的创建 语法:CREATE VIEW <视图名>(<列表序列>) AS 4(视图的撤销 语法:DROP VIEW <视图名> 5(对视图的操作 1)视图的查询操作,与基本表一样。 2)视图的更新操作,一般仅限于“行列子集视图”。 行列子集视图:如果视图是从单个基本表中只使用选择、投影操作导出的,并且包含了基本表的主键,那么这样的视图称为“行列子集视图”。 六、嵌入式SQL 1(SQL语言有两种使用方式:一种是在终端交互方式下使用,称为交互式SQL;另一种是在主语言的程序中使用,称为嵌入式SQL。 2(嵌入式SQL的实现,有两种处理方式:一种是扩充主语言的编译程序,使之能处理SQL语句;另一种是采用预处理方式。目前多数系统采用后一种方式。 预处理方式是先用预处理程序对源程序进行扫描,识别出SQL语句,并处理成主语言的函数调用形式;然后再用主语言的编译程序编译成目标程序。 3(嵌入式SQL的使用规定: 1)在程序中要区分SQL语句与主语言语句。 2)允许嵌入的SQL语句引用主语言的程序变量(成为共享变量)。 3)通过游标协调SQL的集合处理方式和主语言的单记录处理方式 七、存储过程 1(存储过程是使用SQL语句和流程控制语句编写的模块,存储过程经编译和优化后存储在数据库服务器端的数据库中,使用时调用即可。 2(使用存储过程的优点: 1)提高运行速度; 2)增强了SQL的功能和灵活性。 3)可以降低网络的通信量; 4)减轻了程序编写的工作量; 5)间接实现安全控制功能。 第五章 复习题 一、单项选择题 1(已知学生选课表SC(S#,C#,SCORE),其中:S#代表学生学号,C#代表课程号,SCORE 39 代表成绩。为了提高查询速度,对该表创建唯一索引,应该创建在哪个(组)属性上,( A ) A) (S#,C#) B)S# C)C# D)SCORE 2(有如下两个关系,其中雇员信息表关系EMP的主键是雇员号,外键是部门号;部门信息 表关系DEPT的主键是部门号。 EMP 雇员号 雇员名 部门号 工资 001 张山 02 2000 010 王宏达 01 1200 056 马林生 02 1000 101 赵敏 04 1500 DEPT 部门号 部门名 地址 01 业务部 1号楼 02 销售部 2号楼 03 服务部 3号楼 04 财务部 4号楼 若执行下面列出的操作,哪个操作不能成功执行,( D ) A) 从EMP中删除行(‘010’,‘王宏达’,‘01’,1200) B) 在EMP中插入行(‘102’,‘赵敏’,‘01’,1500) C) 将EMP中雇员号=‘056’的工资改为1600元 D) 将EMP中雇员号=‘101’的部门号改为‘05’ 3(有如下两个关系,其中雇员信息表关系EMP的主键是雇员号,外键是部门号;部门信息 表关系DEPT的主键是部门号。 EMP 雇员号 雇员名 部门号 工资 001 张山 02 2000 010 王宏达 01 1200 056 马林生 02 1000 101 赵敏 04 1500 DEPT 部门号 部门名 地址 01 业务部 1号楼 02 销售部 2号楼 03 服务部 3号楼 04 财务部 4号楼 若执行下面列出的操作,哪个操作不能成功执行,( C ) A) 从DEPT中删除部门号=‘03’的行 B) 在DEPT中插入行(‘06’,‘计划部’,‘6号楼’) C) 将DEPT中部门号=‘02’的部门号改为‘10’ D)将DEPT中部门号=‘01’的地址改为‘5号楼’ 4(SQL语言集数据定义、数据操纵和数据控制功能于一体,语句INSERT、DELETE、UPDATE 40 实现哪类功能( B ) A) 数据定义 B) 数据操纵 C) 数据控制 5(下面列出的关于“视图(View)”的条目中,哪一条是不正确的( C ) A) 视图是外模式 B) 视图是虚表 C) 使用视图可以加快查询语句的执行速度 D) 使用视图可以简化查询语句的编写 6(设有关系R(A,B,C)和S(C,D)。与SQL语句 select A,B,D from R,S where R.C=S.C等价的关系代数表达式是( B ) A) σ(π(R×S)) R.C=S.CA,B,D B) π(σ (R×S)) A,B,DR.C=S.C C) σ(π(R)×π(S)) R.C=S.CA,BD D) σ(π(π(R)×S)) R.C=S.CDA,B 7(在SQL语言的SELECT语句中,实现投影操作的是哪个子句( A ) A) select B) from C) where D) group by 8(SQL的DROP INDEX语句的作用是( A ) A) 删除索引 B)建立索引 C)修改索引 D)更新索引 9(在所有的关系数据库上的操作,( D )是核心,是其他操作的前提。 A)插入 B)删除 C)修改 D)查询 10(设两个关系C和SC如下,它们的主键分别为C#和(S#,C#)。若要向关系SC执行下列 插入操作,( A )元组可以被插入。 C C# CNAME TEACHER c1 Database Zhang c2 Network Li c3 OS Wu SC S# C# SCORE 993001 C1 88 991021 C3 997345 C2 78 993069 C3 95 A) (‘993001’,‘C2’,null) B) (‘994010’,’C4’,90) C)(‘997345’,’C2’,65) 11(设有关系R(A,B,C),与SQL语句SELECT DISTINCT A FROM R WHERE B=17等价的关系代 数表达式是( C ) A)π(R) B)σ(R) AB=17 C)π(σ(R)) D)σ(π(R)) AB=17B=17A 12(SQL语言集数据定义、数据操纵和数据控制于一体,其中CREATE、DROP、ALTER语句是 实现哪种功能的( A ) A)数据定义 B)数据操纵 C)数据控制 13(SQL语言具有两种使用方式,分别称为交互式SQL和( C ) A) 提示式SQL B)多用户SQL C)嵌入式SQL D)解释式SQL 41 14(在SQL中,基本表的撤销可以用( B ) A) DROP SCHEMA命令 B)DROP TABLE 命令 C)DROP VIEW命令 D)DROP INDEX命令 15(在SQL中,创建基本表用( B ) A) CREATE SCHEMA命令 B)CREATE TABLE命令 C)CREATE INDEX命令 D)CTEATE VIEW 命令 16(下列说法中错误的是( D ) A) 一个基本表可以跨一个或多个存储文件 B) 一个存储文件可存放一个或多个基本表 C) 每个存储文件与外部存储器上一个物理文件对应 D) 每一个基本表与外部存储器上一个物理文件对应 17(实际存储在数据库中的表是( A ) A) 基本表 B)视图 C)基本表和视图 D)以上均不是 18(在下列哪种情况下,视图可被更新( A ) A) 行列子集视图 B) 从多个基本表中使用联接操作导出的 C) 在导出视图的过程中使用了分组操作 D) 在导出视图的过程中使用了聚合操作 19(在SQL中,SELECT语句的“SELECT DISTINCT“表示查询结果中( C ) A) 属性名都不相同 B)去掉了重复的列 C)去掉了重复的行 D)属性值都不相同 20(HAVING子句中应后跟( B ) A) 行条件表达式 B)组条件表达式 C)视图序列 D)列名序列 21(哪种对象实质上是一个虚拟的表,用来存储预先定义好的查询,( B ) A)表 B)视图 C)索引 D)存储过程 22(嵌入式SQL实现时,采用预处理方式是( C ) A) 把SQL语句和主语言语句区分开来 B) 为SQL语句加前缀标识和结束标志 C) 识别出SQL语句,并处理成函数调用形式 D) 把SQL语句编译成二进制码 二、填空题 1(在SQL语言中,删除表的定义应该使用的语句是DROP TABLE。 2(使用SQL语言,建立一个“学生”表student,由学号SN,性别Ssex,年龄Sage组成,其中学号属性为主键。CREATE TABLE student(SN CHAR(4),Ssex CHAR(2),Sage SMALLINT,PRIMARY KEY(SN)) 3(在SQL中,建立唯一索引要用到关键字UNIQUE。 4(在SQL中,用DISTINCT子句消除重复出现的元组。 5(在SQL中,用DELETE命令可以从表中删除行,用DROP TABLE命令可以删除表。 6(在SQL中,用UPDATE命令可以修改表中的数据,用ALTER TABLE命令可以修改表的结构。 7(视图是从一个或几个基本表导出的表,它与基本表不同,是一个虚表。换句话说,数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。 8(SQL的中文全称为结构化查询语言。 42 9(SQL的数据操纵语言分成数据查询和数据更新两类。 10(撤销SQL模式abc,同时把该模式下属的基本表、视图、索引等所有元素全部撤销,完成这一操作所使用的SQL语句为: DROP SCHEMA abc CASCADE 三、设计题 1(设教学数据库中有四个关系: 教师关系T(T#,TNAME,TITLE) 课程关系C(C#,CNAME,T#) 学生关系S(S#,SNAME,AGE,SEX) 选课关系SC(S#,C#,SCORE) 试用SQL的查询语句表示下列查询。 1)检索年龄小于17岁的女学生的学号和姓名。 2)检索男学生所学课程的课程号和成绩。 3)检索男学生所学课程的任课教师的工号和姓名。 4)检索至少选修两门课程的学生学号。 5)检索至少有学号为S2和S4学生选修的课程的课程号。 6)检索WANG同学不学的课程的课程号。 7)检索全部学生都选修的课程的课程号和课程名。 8)检索选修课程包含LIU老师所授全部课程的学生学号。 9)统计有学生选修的课程门数。 10)求选修C4课程的女学生的平均年龄。 11)求LIU老师所授课程的每门课程的平均成绩。 12)统计每门课程的学生选修人数(超过10人的课程才统计)。要求显示课程号和人数, 查询结果按人数降序排列,若人数相同,按课程号升序排列。 13)检索学号比WANG同学大,而年龄比他小的学生姓名。 14)在表SC中检索成绩为空值的学生学号和课程号。 15)检索姓名以L打头的所有学生的姓名和年龄。 16)求年龄大于女同学平均年龄的男学生姓名和年龄。 17)求年龄大于所有女同学年龄的男学生姓名和年龄。 答:1)SELECT S#,SNAME FROM S WHERE AGE〈17 AND SEX=‘女’ 2) SELECT C#,SCORE FROM SC FROM SC WHERE S# IN(SELECT S# FROM S WHERE SEX=‘男’) 3) SELECT T.T#,TNAME FROM S,C,SC,T WHERE S.S#=SC.S# AND SC.C#=C.C# AND T.T#=C.T# AND SEX=’男’ 4)SELECT X.S# FROM SC X,SC Y WHERE X.S#=Y.S# AND X.C#<>Y.C# 5)SELECT C# FROM SC WHERE S#=‘S2’ AND C# IN(SELECT C# FROM SC WHERE S#=‘S4’) 6)SELECT C# FROM C WHERE C# NOT IN(SELECT C# FROM SC WHERE S# IN (SELECT S# FROM S WHERE SNAME=‘WANG’)) 7)SELECT C#,CNAME FROM C WHERE NOT EXISTS(SELECT * 43 FROM S WHERE NOT EXISTS(SELECT * FROM SC WHERE SC.S#=S.S# AND SC.C#=C.C#)) 8)SELECT S# FROM S WHERE NOT EXISTS(SELECT * FROM C WHERE NOT EXISTS(SELECT * FROM SC WHERE SC.S#=S.S# AND SC.C#=C.C#) AND T# IN(SELECT T# FROM T WHERE TNAME=‘LIU’)) 9)SELECT COUNT(*) FROM SC GROUP BY C# 10)SELECT AVG(AGE) FROM S WHERE S# IN(SELECT S# FROM SC WHERE C#=‘C4’)AND SEX=‘女’ 11)SELECT C#,AVG(SCORE) FROM SC WHERE C# IN(SELECT C# FROM C WHERE T# IN(SELECT T# FROM T WHERE TNAME=‘LIU’) GROUP BY C# 12)SELECT C#,COUNT(*) FROM SC GROUP BY C# HAVING COUNT(*)〉10 ORDER BY 2 DESC,C# 13)SELECT SNAME FROM S WHERE S#>(SELECT S# FROM S WHERE SNAME=‘WANG’) AND AGE<(SELECT AGE FROM S WHERE SNAME=‘WANG’) 14)SELECT S#,C# FROM SC WHERE SCORE IS NULL 15)SELECT SNAME,AGE FROM S WHERE SNAME LIKE ‘L%’ 16)SELECT SNAME,AGE FROM S WHERE SEX=‘男’AND AGE>(SELECT AVG(AGE) FROM S WHERE SEX=‘女’) 17)SELECT SNAME,AGE FROM S WHERE SEX=‘男’AND AGE>ALL(SELECT AGE FROM S WHERE SEX=‘女’) 2(试用SQL更新语句表达对上一题的教学数据库关系S、SC、C的更新操作。 1)往关系C中插一个课程元组(‘C8’,‘VC++’,‘BAO’) 2)在SC中删除尚无成绩的选课元组。 3)把选修LIU老师课程的女同学选课元组全部除去。 4)把MATHS课不及格的成绩全改为60分。 5)把低于所有课程总平均成绩的女同学成绩提高5%。 6)在表SC中,当某个成绩低于全部课程的平均成绩时,提高5%。 答:1)INSERT INTO C VALUES(‘C8’,‘VC++’,‘BAO’) 2)DELETE FROM SC WHERE SCORE IS NULL 3)DELETE FROM SC WHERE S# IN(SELECT S# FROM S WHERE SEX=‘女’) AND S# IN(SELECT S# FROM SC WHERE C# IN(SELECT C# FROM C WHERE T# IN(SELECT T# FROM T WHERE TNAME=‘LIU’)) 4)UPDATE SC SET SCORE=60 WHERE C# IN(SELECT C# FROM C WHERE CNAME=‘MATHS’) AND SCORE〈60 5)UPDATE SC SET SCORE=SCORE+SCORE*0.05 WHERE S# IN(SELECT S# FROM S WHERE SEX=‘女’) AND SCORE<(SELECT AVG(SCORE) FROM SC) 6)UPDATE SC SET SCORE=SCORE+SCORE*0.05 WHERE SCORE<(SELECT AVG(SCORE) FROM SC) 44 第六章 数据库管理 要求、目标: 了解数据库的恢复、数据库的安全性,熟悉事务、数据库的并发控制、数据库的完整性。 一、事务 1(DBMS对DB的监控,称为数据库的管理,也称为数据库的保护。它分为四个方面:数据库的恢复、并发控制、完整性控制和安全性控制。 2(事务:是构成单一逻辑工作单元的操作集合,要么完整地执行,要么完全不执行。DBS运行的最小逻辑工作单位是“事务”,所有对数据库的操作,都要以事务作为一个整体单位来执行或撤销。 3(一个事务由应用程序中的一组操作序列组成,在程序中,事务以BEGIN TRANSACTION开始,以COMMIT语句或ROLLBACK语句结束。COMMIT语句表示事务执行成功地结束(提交);ROLLBACK语句表示事务执行不成功地结束(应该“回退)。 4(事务的ACID性质: 1)原子性(Atomicity):一个事务对数据库的所有操作,是一个不可分割的工作单元。这些操作要么全部执行,要么什么也不做。 2)一致性(Consistency):一个事务独立执行的结果,应保持数据库的一致性,即数据不会因事务的执行而遭受破坏。 3)隔离性(Isolation):在多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样。 4)持久性(Durability):一个事务一旦完成全部操作后,它对数据库的所有更新应永久地反映在数据库中,不会丢失。 二、数据库的恢复 1(数据库的可恢复性:系统能把数据库从被破坏、不正确的状态,恢复到最近一个正确的状态,DBMS的这种能力称为可恢复性。 2(为保证可恢复性,平时应做好转储和建立日志。日志库记录事务的开始、结束标志,记录事务对数据库的每一次插入、删除和修改前后的值。 3(常见故障分三类:事务故障、系统故障(硬件故障、软件(DBMS、OS或应用程序)错误、掉电等,不破坏数据库)、介质故障。 事务故障和系统故障的恢复由系统自动进行,而介质故障的恢复需要DBA配合执行。系统故障通常称为软故障,介质故障通常称为硬故障。 三、数据库的并发控制 1(并发操作带来的三个问题:丢失更新、读脏数据(把未提交的随后被撤销的数据称为“脏数据”)、不可重复读。采用“封锁”技术解决这些问题。 2(锁:是一个与数据项相关的变量,对可能应用于该数据项上的操作而言,锁描述了该数据项的状态。通常在数据库中每个数据项都有一个锁。 3(锁的主要类型: 1)排他锁(X锁、写锁):如果事务T对某个数据R(可以是数据项、记录、数据集乃至整个数据库)实现了X锁,那么在T对数据R解除封锁之前,不允许其他事务再对该数据加任何类型的锁,这种锁称为“X锁”。 2)共享锁(S锁、读锁):如果事务T对某数据加上S锁后,仍允许其他事务再对该数据加S锁,但在对该数据的所有S锁都解除之前决不允许任何事务对该数据加X锁。 4(封锁的粒度:封锁对象的大小。封锁粒度与系统的并发度成反比。 5(调度:事务的执行次序。如果多个事务依次执行,称为事务的串行调度;如果利用分时 45 的方法,同时处理多个事务,则称为事务的并发调度。 6(可串行化调度:每个事务中,语句的先后顺序在各种调度中始终保持一致。在这个前提下,如果一个并发调度的执行结果与某一串行调度的执行结果等价,那么,这个并发调度称为“可串行化的调度”,否则是“不可串行化的调度。” 四、数据库的完整性 1(数据库的完整性:是指数据的正确性、有效性和相容性,防止错误的数据进入数据库。 1)正确性:是指数据的合法性。 2)有效性:是指数据是否属于所定义的有效范围。 3)相容性:是指表示同一事实的两个数据应相同,不一致就是不相容。 2、SQL中的完整性约束 1)域约束 例:CREATE DOMAIN COLOR CHAR(6) DEFAULT ‘???’ CONSTRAINT VALID_COLORS CHECK (VALUE IN(‘Red’,‘Yellow’,‘Blue’,‘Green’,‘???’)) 定义完后,该域便可作为一种数据类型使用,如用在CREATE TABLE中。 2)基本表约束 主要有三种形式:候选键定义、外键定义和检查约束定义。这些定义都可在前面加CONSTRAINT <约束名>,也可以省略。 候选键的定义:UNIQUE(<列名序列>)或PRIMARY KEY(<列名序列>) UNIQUE方式:表示值惟一; PRIMARY KEY:值惟一,并且自动设为非空。一个基本表只能指定一个主键。 检查约束的定义: 例:CHECK(AGE>=18 AND AGE<=20) 3)断言:如果完整性约束牵涉面较广,与多个关系有关,或者与聚合操作有关,应使用断言。 3(触发器:是一个能由系统自动执行对数据库修改的语句。有时也称为主动规则(相对于前面的各种被动约束机制)。 五、数据库的安全性 1(数据库的安全性:是指保护数据库,防止不合法的使用,以免数据的泄密、更改或破坏。 2(SQL中的安全性机制: 提供四个:视图、权限、角色和审计 1)视图:使系统具有三个优点:数据安全性(用来对无权用户屏蔽数据)、逻辑数据独立性和操作简便性。视图不占存储空间。 2)权限:授权语句GRANT、回收语句REVOKE 3)角色: 在SQL中,用户是实际的人或是访问数据库的应用程序。而角色是一组具有相同权限的用户,实际上角色是属于目录一级的概念。 用户和角色之间存在多对多联系,即一个用户可以参与多个角色,一个角色也可授予多个用户。 4)审计: 用于安全性目的的数据库日志,称为审计追踪。 第六章 复习题 一、单项选择题 1(在关系数据库系统中,为了简化用户的查询操作,而又不增加数据的存储空间,常用的 46 方法是创建( B ) A) 另一个表 B)视图 C)索引 D)模式 2(为了考虑安全性,每个教师只能存取自己讲授的课程的学生成绩,为此DBA应创建( A ) A)视图 B)索引 C)模式 D)表 3("事务的所有操作在数据库中要么全部正确反映出来,要么全部不反映",这是事务的哪一个特性,( A ) A) 原子性 B) 一致性 C) 隔离性 D) 持久性 4(事务的ACID特性中,C的含义是( A ) A) 一致性(Consistency) B)邻接性(Contiguity) C)连续性(Continuity) D)并发性(Concurrency) 5(如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的操作是( C ) A) 其中有一个是DELETE B)一个是SELECT,另一个是UPDATE C)两个都是SELECT D)两个都是UPDATE 6(下述哪一条是并发控制的主要方法( B ) A) 授权 B)封锁 C)日志 D)索引 7(事务的一致性是指( D ) A) 事务中包括的所有操作要么都做,要么都不做 B) 事务一旦提交,对数据库的改变是永久的 C) 一个事务内部的操作及使用的数据对并发的其他事务是隔离的 D) 事务必须是使数据库从一个一致性状态变到另一个一致性状态 8(事务的隔离性是指( C ) A) 事务中包括的所有操作要么都做,要么都不做 B) 事务一旦提交,对数据库的改变是永久的 C) 一个事务内部的操作及使用的数据对并发的其他事务是隔离的 D) 事务必须是使数据库从一个一致性状态变到另一个一致性状态 9(事务的原子性是指( A ) A) 事务中包括的所有操作要么都做,要么都不做 B) 事务一旦提交,对数据库的改变是永久的 C) 一个事务内部的操作及使用的数据对并发的其他事务是隔离的 D) 事务必须是使数据库从一个一致性状态变到另一个一致性状态 10(SQL的主码子句和外码子句属于DBS的( A ) A) 完整性措施 B)安全性措施 C)恢复措施 D)并发控制措施 11(系统能把数据库从被破坏、不正确的状态,恢复到最近一个正确的状态,DBMS的这种能力称为( C ) A) 完整性控制 B)安全性控制 C)可恢复性 D)并发控制 12(保证数据的正确性、有效性和相容性,防止错误的数据进入数据库。这属于数据库保护中的( A )措施。 A) 完整性控制 B)安全性控制 C)可恢复性 D)并发控制 13(下列何种方法属于SQL中的主动约束机制,( D ) A) 域约束 B)基本表约束 C)断言 D)触发器 47 14(保护数据库,防止不合法的使用,以免数据的泄密、更改或破坏。这属于数据库保护中的( B )措施。 A) 完整性控制 B)安全性控制 C)可恢复性 D)并发控制 二、填空题 1(数据库管理系统中,为了保证事务的正确执行,维护数据库的完整性,要求数据库系统维护以下事务特性:原子性、一致性、隔离性和持久性。 2(有两种基本类型的锁,它们是排他锁和共享锁。 3(DBS运行的最小逻辑工作单位是事务。 4(常见故障分三类:事务故障、系统故障和介质故障。 第七章 SQL Server 2000简介及应用 要求、目标: 了解SQL Server 2000,了解企业管理器的功能与操作,了解T-SQL的使用。 一、概述 1(SQL Server 2000是Microsoft公司推出的适用于大型网络环境的关系型数据库管理系统。它支持客户机/服务器体系结构。 2(客户机/服务器体系结构:将数据库防在服务器上,该服务器数据库中的数据可被多个用户同时存取,而用户存取服务器中的数据是通过客户机或服务器端的应用程序获得的。 3(SQL Server 2000的系统数据库: 1)Master数据库:记录了所有系统信息、登录账号、系统配置设置、系统中所有数据库及其系统信息以及存储介质信息。 2)Model数据库:为用户创建数据库提供的模板数据库。 3)Msdb数据库:主要用于存储任务计划信息、事件处理信息、备份恢复信息以及异常SQL Server 2000的报告等。 4)Tempdb数据库:存放所有临时表和临时的存储程序,并且存放目前使用中的表,它是一个全局的资源,临时表和存储程序可供所有用户使用。 4(SQL Server 2000的主要工具 1)查询分析器:使用这个工具,用户可以交互地设计和测试T-SQL语句、批处理和脚本。 2)服务管理器:可以用来启动、暂停和停止SQL Server的主要服务和指示其当前状态。 3)企业管理器:用户管理SQL Server 2000的主要管理工具和图形界面。在企业管理器中可以完成几乎所有的管理工作,如管理登录账号、数据库用户和权限、创建和管理数据库、创建和管理表、视图、存储过程以及用户自定义数据类型等。 二、企业管理器 1(触发器与存储过程的联系和区别 联系:触发器是一种特殊的存储过程。 区别:1)存储过程利用EXEC语句调用执行,触发器为表上的INSERT、UPDATE、DELETE事件所触发而自动执行。 2)触发器不能传递或接受参数。 2(两个临时表 触发器被执行时,系统会创建一个或两个临时表INSERTED和DELETED,这些表在结构上类似于定义触发器的表,用于保存用户操作更改的行的新值和旧值。 3(一个用户要访问SQL Server数据库中的数据,必须经过三个认证过程: 48 1)身份验证:使用登录账号来标识用户,身份验证只验证用户连接到SQL Server数据库服务器的资格,即验证该用户是否具有连接到数据库服务器的“连接权”。 2)当用户访问数据库时,他必须具有对具体数据库的访问权,即验证用户是否是该数据库的合法用户。 3)当用户操作数据库中的数据或对象时,他必须具有所要进行操作的操作权。 4(SQL Server的两种身份验证模式:Windows身份验证模式和混合验证模式。 三、T-SQL语言 1(T-SQL:Transact-SQL的简称,为扩展SQL。 2(批处理:由一条或多条T-SQL语句构成,前端应用程序会将所有这些语句作为单个代码单元发送给SQL Server。SQL Server将整个批处理作为一个整体加以解析。批处理分隔符为go。 3(SQL脚本文件可包含多个批处理。 第七章 复习题 一、单项选择题 1(SQL Server 2000是( B )公司的软件产品。 A) Sybase B) Microsoft C) Oracle D) IBM 2(SQL Server 2000中,负责启动、暂停和停止SQL Server服务的管理工具为( D )。 A) 企业管理器 B) 查询分析器 C) 事件探查器 D) 服务管理器 3(SQL Server 2000中,用于配置SQL Server系统环境,创建和管理所有SQL Server对象的管理工具为( A )。 A) 企业管理器 B) 查询分析器 C) 事件探查器 D) 服务管理器 4(SQL Server 2000中,允许输入和执行Transact-SQL语句并返回语句的执行结果的管理工具为( B )。 A) 企业管理器 B) 查询分析器 C) 事件探查器 D) 服务管理器 5(SQL Server 2000中,包含用户登录标识、系统配置信息、初始化等系统级信息的系统数据库为( C )。 A) model B) msdb C) master D) tempdb 6(SQL Server 2000中,( A )系统数据库为用户数据库的模板。 A) model B) msdb C) master D) tempdb 7(SQL Server 2000中,存储用户建立的临时表的系统数据库为( D )。 A) model B) msdb C) master D) tempdb 8(SQL Server 2000是( C )类型的数据库管理系统。 A) 层次型 B) 网状型 C) 关系型 二、填空题 1(SQL Server 2000中,可供选择的身份验证模式有两种,分别是 Windows验证模式 和 混合验证模式 。 2(SQL Server 2000安装完成后,包括四个系统数据库,分别为: Master 、 Model 、 Msdb 和 Tempdb 。 第八章 PowerBuilder9.0简介及应用 要求、目标: 49 了解PB9.0的集成开发环境,了解应用程序的开发步骤,了解PB9.0连接数据库的方法。 一、PowerBuilder9.0集成开发环境 1(PowerBuilder9.0是当前最为流行的数据库前端应用开发和多层应用开发工具之一。 2(PB的主要特点 1)采用面向对象的编程方法和事件驱动的工作原理。 2)支持跨平台开发,具有开放的数据库连接系统。 3(PB9.0的开发空间 有三个层次: 1)工作空间 2)目标 3)库文件 二、PB9.0与数据库的连接 1(连接步骤: 1)建立ODBC数据源; 2)建立数据库描述文件; 3)用Connect命令连接数据库。 第八章 复习题 填空题: 1(PB9.0的开发空间有三个层次:工作空间、目标和库文件。 第九章 数据库技术的发展 要求、目标: 了解数据库技术发展的前景,了解面向对象的概念建模和开放数据库互连技术。 一、面向对象的概念建模 1(概念建模经历了“ER图—对象联系图—类图”的发展历程。 2(面向对象的数据类型系统:由基本类型、复合类型和引用类型三部分组成。 3(对象联系图:是面向对象数据模型中数据结构的一种重要图例表示方法,由于使用了对象标识的概念,使结构的嵌套和递归成为可能。是描述面向对象数据模型的基本工具。它不仅完整地揭示了数据之间的联系,也把查询的层次观点表现的一清二楚。 4(统一建模语言(UML):面向对象开发的行业标准语言。 二、开放数据库互连(ODBC) 1(API:即应用程序设计接口,是为开发者提供单一的编程接口,这样同一个应用程序就可以访问不同的数据库服务器。 2(ODBC:Microsoft公司的产品,以C/S结构为设计基础。该技术使得应用程序与DBMS之间在逻辑上可以分离,使应用程序具有数据库武官性。ODBC定义了一个API,每个应用程序利用相同的源代码就可访问不同的数据库系统,存取多个数据库中的数据。 ODBC一个最显著的优点是:用它生成的应用程序与数据库或数据库引擎无关。 第九章 复习题 填空题: 1(面向对象的数据类型系统:由基本类型、复合类型和引用类型三部分组成。 2(概念建模经历了从ER图到对象联系图,再到类图的发展历程。 50 51
本文档为【自考04735数据库系统原理复习资料】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_219945
暂无简介~
格式:doc
大小:168KB
软件:Word
页数:87
分类:生活休闲
上传时间:2017-11-26
浏览量:115