西南交大数据库原理复习资料_第1页
西南交大数据库原理复习资料_第2页
西南交大数据库原理复习资料_第3页
西南交大数据库原理复习资料_第4页
西南交大数据库原理复习资料_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上数据库原理部分第一章 数据库系统概述1.数据:是记录下来的可以鉴别的符号。描述事物的符号记录称为数据。2.数据库:是长期储存在计算机内、有组织的、可共享的大量数据的集合。优点:(1)数据按一定的数据模型组织、描述和储存(数据结构化) (2)具有较小冗余度(3)较高数据独立性。(4)易扩展性(5)可为各种用户共享。3.数据库系统:是指在计算机系统中引入数据库后的系统。组成:一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。4.DBMS:数据库管理系统是位于用户与操作系统之间的一层数据管理软件。其基本功能:(1)数据的定义功能 (2)数据组织、存储

2、和管理(3)数据操纵功能(4)数据库的事务管理和运行管理(5)数据库的建立和维护功能(6)其他功能:包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据的重组织功能和性能监视、分析功能。5.数据模型:是一种模型,是对现实世界数据特征的抽象。 组成要素:数据结构,数据操作,数据的完整性约束条件分为(1)概念模型(2)逻辑模型和物理模型常用逻辑数据模型有:层次模型,关系模型,网络模型6.概念模型:也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。7.实体:客观存在并可相互区别的事物称为实体。码:唯一标识实体的属性集称为码主码:若一个关系中有多个候选码,则选定其中一个

3、为主码。(若关系中的某一属性组能唯一地标识一个元组,则称该属性组为候选码)8.实体型之间的联系分类:(1)一对一联系(1:1)(2)一对多联系(1:n)(3)多对多联系(m:n)9.构建ER模型(综合运用)实体型矩形,属性椭圆,联系菱形10.关系模型:资料(数据)以“关系”的形式表示,也就是以二维表的形式表示,其数据模型就是所谓的关系模型。在关系模型中,无论是从客观事物中抽象出的实体,还是实体之间的联系,都用单一的结构类型一一关系来表示。11.关系数据库系统:就是以关系模型为基础的数据库系统。第二章 关系数据库12.关系模型的组成:见1413.关系模型是关系数据库系统的基础模型。14.关系模型

4、由关系数据结构、关系操作和完整性约束三部分组成。 15.关系的类型:基本关系(又称基本表或基表),查询表和视图表。基本关系的性质: 列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。 不同的列可以出自同一域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。 列的顺序无所谓,即列的次序可以任意交换。 任意两个元组的候选码不能完全相同。 行的顺序无所谓,即行的次序可以任意交换。 分量必须取原子性,即每一列值都必须是不可分的数据项。16.关系的完整性规则是对关系的某种约束条件。17实体完整性、参照完整性是关系模型必须满足的完整性约束条件,被称为是关系的两个不变性,应该由关系系统自动

5、支持。用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。18. 三个完整性约束的含义(1)实体完整性:若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。(2)参照完整性:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码K相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:1或者取空值(F的每个属性值均为空值)2或者等于S中某个元组的主码值。(3)用户定义的完整性:用户定义的完整性就是针对某一具体关系数据库的约束条件。第三章 关系数据库标准语言SQL19.SQL的概念:即结构化查询语言,是关系数据库的标准语言,SQL

6、是一个通用的、功能极强的关系数据库语言。特点: 综合统一 高度非过程化 面向集合点的操作方式 以同一种语法结构提供多种使用方式 语言简洁,易学易懂20.索引的作用:加快查询速度21.数据定义语言(综合运用)1) 定义基本表 CREATE TABLE CREATE TABLE <表名>(<列名><数据类型> 列级完整性约束条件 ,<列名> <数据类型> 列级完整性约束条件 ,<表级完整性约束条件>);建表时可定义完整性约束条件,当用户操作表中数据时系统自动检查该操作是否违背这些完整性约束条件。如果完整性约束条件涉及多个属性列

7、,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。定义表的各个属性时需要指明其数据类型及长度。2) 修改基本表 ALTER TABLEALTER TABLE <表名> ADD <新列名><数据类型>完整性约束 DROP<完整性约束名> ALTER COLUMN<列名> <数据类型>ADD子句用于增加新列和新的完整性约束条件,DROP子句用于删除指定的完整性约束条件,ALTER COLUMN子句用于修改原有的列定义,包括列名和数据类型。3) 删除基本表 DROP TABLEDROP TABLE<表名>

8、RESTRICT/CASCADE 若选RESTRICT则表的删除是有限制条件,缺省为RESTRICT若选 CASCADE则该表的删除没有限制条件。4) 建立索引 CREATE INDEX用户可以根据应用环境的需要,在基本表上建立一个或多个索引,以提供多种存取路径,加快查找速度。系统在存取数据时会自动选择合适的索引作为存取路径,用户不必也不能选择索引。CREATE UNIQUE CLUSTER INDEX <索引名> ON <表名> (<列名><次序> ,<列名><次序>.); 索引可以建在表的一列或多列上。可在每个<

9、列名>后面指定索引值的排列次序。ASC表示升序,DESC表示降序,缺省值为ASC。UNIQUE表明此索引的每一个索引值只对应唯一的数据记录。CLUSTER表示建聚簇索引。所谓聚簇索引是指索引项的顺序与表中记录的物理顺序一致的索引组织。用户可以在最常查询的列上建立聚簇索引以提高查询效率。显然在一个基本表上最多只能建立一个聚簇索引。建立聚族索引后,更新索引列数据时,往往导致表中记录的物理顺序的变更,代价较大,因此对于经常更新的列不宜建立聚簇索引。5) 删除索引 DROP INDEX<索引名>22.数据查询语言(综合运用)1) SELECTSELECT ALL|DISTINCT&l

10、t;目标列表达式>,<目标列表达式> FROM <表名或视图名>,<表名或视图名> . WHERE <条件表达式> GROUP BY <列名1>HAVING <条件表达式> ORDER BY <列名2> ASC|DESC;SELECT语句的含义:根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表。如果有GROUP子句,则将结果按<列名1>的值进行分组,该属性列值相等的元组为一个组。通常会在每组

11、中作用聚集函数。如果GROUP子句带HAVING短语,则只有满足指定条件的组才予输出。如果有ORDER BY子句,则结果表还要按<列名2>的值的升序或降序排序。A 单表查询 (1) 查询指定列 例1 查询全体学生的学号与姓名 SELECT Sno,Sname FROM Student; (2) 查询全部列 例3 查询全体学生的详细记录 SELECT * FROM Student;(3) 消除取值重复的行 指定DISTINCT可掉重复行:SELECT DISTINCT Sno FROM SC;(4) 查询满足条件的元组 查询满足指定条件的元组可以通过WHERE子句实现。WHERE子句

12、常用的查询条件如表 谓词LIKE可用来进行字符串的匹配。其语法格式如下: NOT LIKE '<匹配串>' ESCAPE '<换码字符>' 其含义是查找指定的属性列值与<匹配串>相匹配的元组。<匹配串>可以是一个完整的字符串,也可以含有通配符%和_。 %(百分号) 代表任意长度(长度可以为0)的字符串。 _(下横线) 代表任意单个字符。 例14 查所有姓刘的学生的姓名、学号和性别 SELECT Sname, Sno, SsexFROM Student WHERE Sname LIKE 刘%; 如果用户要查询的匹配字

13、符串本身就含有 % 或 _ ,这时就要使用 ESCAPE <换码字符> 短语对通配符进行转义了。 (5) 对查询结果排序 ORDER BY (ASC、DESC)例23 查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列 SELECT Sno, Grade FROM SC WHERE Cno=3' ORDER BY Grade DESC; (6) 使用集函数 COUNT(DISTINCT|ALL *) 统计元组个数 COUNT(DISTINCT|ALL <列名>) 统计一列中值的个数 SUM(DISTINCT|ALL <列名>) 计算一列

14、值的总和 AVG(DISTINCT|ALL <列名>) 计算一列值的平均值 MAX(DISTINCT|ALL <列名>) 求一列值中的最大值 MIN(DISTINCT|ALL <列名>) 求一列值中的最小值 例28 查询学习1号课程的学生最高分数 SELECT MAX(Grade)FROM SC WHERE Cno='1' (7) 对查询结果分组 GROUP BY子句可以将查询结果表的各行按一列或多列,将值相等的作为一组。 例29 查询各个课程号与相应的选课人数 SELECT Cno, COUNT(Sno) FROM SC GROUP BY

15、Cno; 该SELECT语句对SC表按Cno的取值进行分组,所有具有相同Cno值的元组为一组,然后对每一组作用集函数COUNT以求得该组的学生人数。如果分组后还要求按一定的条件对这些组进行筛选条,最终只输出满足指定的组,则可以使用HAVING短语指定筛选条件。例31 查询选修了3门以上课程的学生学号。 SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*)3; 这里先用GROPU BY子句按Sno进行分组,再用集函数COUNT对每一组计数。HAVING短语指定选择组的条件,只有满足条件的组才会被选出来。 WHERE子句与HAVING短语的区别在于作用对象

16、不同。WHERE子句作用于基本表或视图,从中选择满足条件的元组。HAVING短语作用于组,从中选择满足条件的组。2) 连接查询 若一个查询同时涉及两个以上的表,则称之为连接查询。连接查询主要包括等值连接、非等值连接查询、自身连接查询(自身连接)、外连接查询(外连接)和复合条件连接查询(复合条件连接)。(1) 等值与非等值连接查询 用来连接两个表的条件称为连接条件,其一般格式为:<表名1>.<列名1> <比较运算符> <表名2>.<列名2> 其中比较运算符主要有:=、>、<、>=、<=、!=<=、!= 此外

17、连接谓词词还可以使用下面形式: <表名1>.<列名1> BETWEEN <表名2>.<列名2> AND <表名2>.<列名3> 当连接运算符为=时,称为等值连接。使用其它运算符称为非等值连接。 连接谓词中的列名称为连接字段。连接条件中的各连接字段类型必须是可比的。自然连接:在等值连接中把目标列重复的属性列去掉。 例32 查询每个学生及其选修课程的情况 SELECT Student.*, SC.* FROM Student, SC WHERE Student.Sno=SC.Sno; 自身查询P102外连接P102(2)嵌套查

18、询三、嵌套查询在SQL语言中,一个SELECT FROM WHERE语句称为个查询块。将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语条件中的查询称为嵌套查询。例如:带有IN谓词的子查询在嵌套查询中,子查询的结果往往是个集合,所以谓词则是嵌套查询中最经常使用的谓词。SELECT Sname FROM StudentWHERE Sno IN (SELECT Sno FROM SC WHERE Cno2);本例中,下层查询块SELECT Sno FROM SC WHERE Cno2;是嵌套在上层查询块where条件中的。SQL语言允许多层嵌套查询,即一个子查询中还可以嵌套其他子查询

19、。需要特别指出的是,子查询的SELECT语句中不能使用ORDER BY于句,ORDER BY子句只能对最终查询结果排序。嵌套查询一般的求解方法是由里向外处理。即每个子查询在上一级查询处理之前求解,子查询的结果用于建立其父查询的查找条件。嵌套查询使我们可以用多个简单查询构成复杂的查询,从而增强SQL的查询能力。以层层嵌套的方式来构造程序正是SQL结构化的意义所在。 不相关子查询:子查询的查询条件不依赖于父查询。 相关子查询:子查询的条件依赖于父查询。 集合查询:UNION,INTERSECT,EXCEPT例题P104-11023.数据更新(综合运用)1) 插入语句 INSERTSQL的数据插入语

20、句Insert通常有两种形式。一种是插入一个元组,另一种是插入子查询结果。后者可以一次插入多个元组。插入单个元组的IN5ERT语句的格式为:INSERTINTO 表名(<属性列1> ,<属性列2>,)VALUES (<常量1>,<常量2>,);其功能是将新元组插入指定表中。其中新记录列1的值为常量l,列2的值为常量2,。Into子句中没有出现的属性列,新记录在这些列上将取空值。但必须注意的是,在表定义时说明了NOT NULL的属性列不能取空值。如果INTO子句没有指明任何列名,则新插入的记录必须在每个属性列上均有值。 插入子查询结果:子查询不仅可

21、以嵌套在SELECT语句中,用以构造父查询的条件,也可以嵌套在INSERT语句中,用以生成要插入的批量数据。2) 修改语句 UPDATE修改操作语句的一般格式为: UPDATE <表名>, SET <列名><表达式>,<列名><表达式> WHERE<条件>功能是修改指定表中满足WHERE子句条件的元组。其中SET子句给出表达式的值用于取代相应的属性列值。如果省略WHERE子句,则表示要修改表中的所有元组。1、修改某一个元组的值 例4 将学生95001的年龄改为22岁。UPDATE Student SET Sage=22 W

22、HERE Sno=95001;2、修改多个元组的值 例5 将所有学生的年龄增加1岁 UPDATE Student SET Sage=Sage+1;3、带子查询的修改语句子查询也可以嵌套在UPDATE语句中,用以构造修改的条件。3) 删除数据 DELETE删除语句的一般格式为 DELETE FROM <表名> WHERE<条件>DELETE语句的功能是从指定表中删除满足WHERE子句条件的所有元组,如果省略WHERE子句,表示删除表中全部元组,但表的定义仍在字典。也就是说,DELETE语句删除的是表中的数据,而不是关于表的定义。1、删除某一个元组的值例7 删除学号为950

23、19的学生记录 DELETE FROM Student WHERE Sno=95019;2、删除多个元组的值例8 删除所有的学生选课记录。 DELETE FROM SC;这条DELETE语句将SC成为空表,它删除了SC的所有元组.3、带子查询的删除语句子查询同样也可以嵌套在DELETE语句中,用以构造执行删除操作的条件。24.视图(视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制。)1) 视图定义:视图是从一个或几个基本表(或视图)导出的表,它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。2) 视图作用: 视图能够

24、简化用户的操作 试图使用户能以多种角度看待同一数据 视图对重构数据库提供了一定程度的逻辑独立性 视图能够对机密数据提供安全保护 适当的利用视图可以更清晰的表达查询视图一经定义,就可以和基本表一样被查询、被删除,我们也可以在一个视图之上再定义新的视图,但对视图的更新(增加、删除、修改)操作则有一定的限制。CREATE VIEW <视图名>(<列名>,<列名>,)AS <子查询>,WITH CHECK OPTION;25.数据控制1) SQL中数据控制功能2) 授权语句 GRANT第六章 关系数据库设计理论26.数据依赖:一个关系内部属性与属性之间的

25、一种约束关系。27.函数依赖与属性之间的关系:设有一个关系R,存在两个属性A和B。则有下列的规则: (1)若A和B之间是 1:1的关系,则有AB和BA,即A和B相互依赖(2)若A和B之间是m:1的关系,则有函数依赖AB。(3)若A和B之间是m:m的关系,则有不存在函数依赖。28.关系的规范化:1. 为何要进行关系模式规范化?原因:为了将具有不合适 性质的关系转换为更合适的的形式。2)数据库一般的设计原则是:A.数据的冗余度尽量低。B.不出现插入、删除等操作异常;C.能尽量如实反映现实世界的实际情况,而且又易懂。3)范式:关系数据库中的关系应满足一定的要求。我们把满足不同要求的关系称为范式。又按

26、照要求条件的宽严的不同逐级分为第一范式、第二范式、第三范式等,并用1NF、2NF、3NF表示。4) 1NF: 在一个关系的记录中,每一个属性都是不可再分的数据项。2NF:关系满足1NF,同时,关系的每一个非主属性都完全函数依赖于主关键字。3NF:关系满足2NF,同时,关系的每一个非主属性都不传递依赖于主关键字。5)关系的规范化:就是将一个低一级的范式,转化为一组高一级范式的过程。这种转化过程就是关系的规范化。29.关系的规范化方法(综合运用):对不满足规范化要求的关系模式进行分解,用一组等价的关系子模式来代替原有的关系模式,消除数据依赖中不合理的部分。这一过程必须是在保证无损连接性、保持函数依赖的前提下进行,即确保不破坏原有的数据和数据间的联系。第七章 数据库设计36:数据库设计的步骤(各阶段的任务、结果) (1) 需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求和数据流图描述的处理需求。 (2) 概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。 (3) 逻辑结构设计阶段 将概念结构转换为某个DBMS所支持的数据模型,例如关系模型,并对其进行优化。(4)物理设计阶段 为逻辑数据模型选取一个最适合应用环境的物理结构,包括存储结构和存

温馨提示

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

评论

0/150

提交评论