数据库复习资料整理终版Word文档下载推荐.docx
《数据库复习资料整理终版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库复习资料整理终版Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
3)数据不共享
4)数据不具有独立性
2.文件系统阶段:
20世纪50年代后期到60年代中期,其特点是:
1)数据可以长期保存
2)由专门的软件系统(文件系统)管理数据
但文件系统仍然存在以下不足:
数据共享性差、冗余度大、数据独立性差
3.数据库系统阶段:
20世纪60年代至今。
其特点是:
1)数据结构化
2)数据的共享性高,冗余度低,易扩充
3)数据的独立性高
4)数据由DBMS同一管理和控制二、数据模型:
(一)两类数据模型:
第一类是概念模型(对客观事物建模,用于数据库设计),第二类是逻辑模型(层次、网状、关系。
。
)和物理模型(磁盘存取方式)。
(二)数据模型的三大组成要素:
1.数据结构(对象与对象之间的联系)
2.数据操作(数据库中对各种对象操作的集合)
3.数据完整性约束条件(实体完整性,参照完整性,用户自定义完整性)
(三)三大类(逻辑)数据模型:
层次模型、网状模型、关系模型是常用的三大逻辑数据模型。
三、概念模型的表示方法:
E-R图。
(一)相关概念:
1.实体:
客观存在并可相互区别的事物。
在E-R图中,实体用码(码的定义见下)来区分。
2.属性:
实体所具有的某一特性。
3.码(Key):
唯一标识实体的属性集。
4.域(Domain):
一组具有相同数据类型的值的集合。
如性别的域为(男,女)。
5.实体型(EntityType):
用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
如学生(学号,姓名,性别,出生年月,所在院系)就是一个实体型。
6.实体集(EntitySet):
同一类型实体的集合。
如全体学生就是一个实体集。
7.联系(Relationship):
在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
联系包括1:
1联系、1:
n联系(一对多)、m:
n联系(多对多)。
(二)E-R图的表示方法:
四、数据库系统结构:
(一)数据库系统的三级模式:
1.模式(Schema):
数据库中全体数据的逻辑结构和特征的描述。
2.三级模式:
外模式、模式、内模式。
(二)数据库系统的二级映像:
1.外模式/模式映像(逻辑独立性)
2.模式/内模式映像(物理独立性)
3.二级映像的意义:
使得数据的定义和描述可以从应用程序中分离出去,简化应用程序编制,减少应用程序的维护和修改
第二章.关系数据库
一、基本概念:
1.笛卡尔积(基数为各元素之积p39)、关系R(D1,D2…Dn,关系是笛卡尔积的有限子集)、属性、候选码(某一属性能唯一识别一个元组,而其子集不能)、主码(候选码中选一个)、外码(不是R的候选码,但是与另外一个关系S的候选码相对应,称它为R的外码)、主属性(候选码主属性)、非主属性(不含在任何候选码中)、全码(关系模式中所有属性)
2.关系的三种类型:
1)基本表:
实际存在的表,它是实际存储数据的逻辑表示。
如用SQL语句“CREATE
TABLE”创建的就是基本表。
2)查询表:
查询结果对应的表。
如SQL语句中“SELECT”执行结果就是一个查询表。
3)视图表:
由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
如SQL语句中“CREATEVIEW”创建的就是视图表。
3.关系的性质
1)列是同质的,即每一列中的分量来自同一个域(即数据类型相同);
2)不同的列可出自同一个域,但必须为它们附加一个不同的属性名来区分;
3)列的顺序无所谓;
4)任意两个元组的候选码不能相同;
5)行的顺序无所谓;
6)分量必须取原子值;
(这是关系模型规范化条件中最基本的一条)
注:
在许多实际关系数据库产品中,基本表并不一定完全具有这6条性质。
12.关系模式
二、关系模型:
1.数据结构:
关系模型的数据结构很简单,就是关系。
2.数据操作(关系操作):
1)基本关系操作:
查询(Query):
选择(select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、差(Except)、交(Intersection)、笛卡尔积等(新关系的属性个数=n+m。
元组的个数=n*m)。
其中,选择、投影、差、并、笛卡尔积是五种基本操作,其他操作可由基本操作导出。
更新:
插入(Insert)、删除(Delete)、修改(Update)。
2)关系数据语言:
关系代数:
用对关系的运算来表达查询要求。
关系演算:
用谓词表达查询要求。
SQL:
介于关系代数和关系演算之间的结构化查询语言,集数据查询、数据操纵、数据控制、数据定义功能于一体,是关系数据库的标准语言。
详见第三章
“关系数据库标准语言SQL”。
3.完整性约束:
关系模型中有三类完整性约束,即实体完整性、参照完整性、用户定义的完整性。
其中,前两个是关系模型必须满足的完整性约束条件,被称作关系的两个不变性。
1)实体完整性(主键不为空)
2)参照完整性(若属性(组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定不同),则对于R中的每个元组在F上的取值必须为空或基本关系S中某个元组中的主码)
3)用户定义的完整性(满足语意要求)
三、关系代数(P49)
第三章、关系数据库标准语言SQL
一、SQL语言的特点:
(一)综合统一
(二)高度非过程化
(三)面向集合的操作方式
(四)以同一种语法结构提供多种使用方式
(五)语言简洁,易学易懂
二、数据定义、数据查询、数据更新
1.定义表
CREATETABLE<
表名>
(
<
列名1>
<
类型>
[<
列级约束>
]
列名2>
]……………,
[<
表级完整性约束条件>
]
);
例建立“学生选课表”SC,它由学号Sno、课程号Cno,成绩Grade组成,其中(Sno,Cno)为主码。
CREATETABLESC(
SnoCHAR(9),
CnoCHAR(3),
GradeintCHECK(Grade>
=0andGrade<
=100),
Primarykey(Sno,Cno),
);
2.查询语句
SELECT[<
DISTINCT>
]<
目标列表>
FROM<
表名>
WHERE<
条件>
;
[GROUPBY<
列名>
...]
[HAVING<
条件表达式>
]
[ORDERBY<
[ASC|DESC]…];
常用查询:
(1)单表查询
(2)连接查询(3)嵌套查询(4)集合查询
(1)单表查询一般形式
SELECT<
例1:
查询所有年龄在20岁以下的学生姓名及其年龄。
SELECTSname,Sage
FROMStudent
WHERESage<
20;
例2:
查询选修了课程的学生学号。
SELECTDISTINCTSnoFROMSC;
例3:
查询年龄在20岁以下的姓王的学生姓名及其年龄。
WHERESage<
20ANDSnameLIKE„王%‟;
(2)连接查询一般形式
ROM<
表名1>
<
表名2>
……
连接条件>
AND<
查询条件>
外链接查询一般形式
JOIN<
ON<
WHERE<
例1:
查询选修2号课程且成绩在90分以上的所有学生的学号、姓名
SELECTStudent.Sno,student.Sname
FROMStudent,SC
WHEREStudent.Sno=SC.SnoAND/*连接条件*/
SC.Cno=„2‟AND/*其他限定条件*/
SC.Grade>
90;
/*其他限定条件*/
(3)嵌套查询一般形式
SELECT-FROM-WHERE<
比较符/谓词>
SELECT-FROM-WHERE<
嵌套查询分类
不相关子查询子查询的查询条件不依赖于父查询
相关子查询子查询的查询条件依赖于父查询
不相关子查询常用IN嵌套
查询所有选修了1号课程的学生姓名。
SELECTSname/*外层查询/父查询*/
WHERESnoIN
(SELECTSno/*内层查询/子查询*/
FROMSC
WHERECno='
1'
相关子查询,常用EXISTS嵌套查询所有选修了1号课程的学生姓名。
SELECTSname
WHEREEXISTS
(SELECT*
FROMSC/*相关子查询*/
WHERESC.Sno=Student.SnoANDCno=„1‟);
3.聚集函数COUNT()SUM()AVG()MAX()MIN()※聚集函数经常在select目标列中或在Group子句的Having条件中使用;
※聚集函数不能作为Where子句中的条件表达式
例:
查询每个系学生的平均成绩。
SELECTSdept,AVG(Grade)
FROMStudent,SC
WHEREstudent.Sno=SC.Sno
GROUPBYS.Sdept;
4.数据更新(插入数据)
INSERTINTO<
[(<
列1>
[,<
列2>
…)]
VALUES(<
常量1>
[,<
常量2>
]…);
INSERT
INTOSC(Sno,Cno,Grade)
VA