数据库系统概论第四版知识点整理.docx
《数据库系统概论第四版知识点整理.docx》由会员分享,可在线阅读,更多相关《数据库系统概论第四版知识点整理.docx(40页珍藏版)》请在冰豆网上搜索。
![数据库系统概论第四版知识点整理.docx](https://file1.bdocx.com/fileroot1/2023-2/6/db931b34-661a-45f5-8225-7d2e85aa1912/db931b34-661a-45f5-8225-7d2e85aa19121.gif)
数据库系统概论第四版知识点整理
第一章:
绪论
一、数据库系统相关概念
一、数据:
描述事物的符号记录,包括数据的表现形式和数据解释两个部份。
如数字、音频、图形、文本、图像、语言、视频等多种表现形式。
通过数字化处置后存入运算机。
数据是信息的符号表示或载体。
信息是数据的内涵是对数据的语义解释。
二、数据库(DB):
长期存储在运算机内、有组织、可共享的大量数据的集合。
数据库中的数据依照必然的数据模型组织、描述和存储,具有娇小的冗余度、交稿的数据独立性和易扩展性,并可为各类用户共享。
3、数据库管理系统(DBMS):
位于用户和操作系统间的数据管理系统的一层数据管理软件。
用途:
科学地组织和存储数据,高效地获取和保护数据。
包括数据概念功能,数据组织、存储和管理,数据库的事物管理和运行管理,数据库的成立和保护功能,其他功能。
4、数据库系统(DBS):
在运算机系统中引入数据库后的系统,一般由数据库。
数据库管理系统(及其开发工具)、应用系统、数据库管理员组成。
目的:
存储信息并支持用户检索和更新所需的信息。
二、数据模型概念,作用及其3要素
模型:
对现实世界中某个对象特征的模拟和抽象。
数据模型:
是数据库顶用来对现实世界数据特征的抽象的工具,是数据库顶用于提供信息表示和操作手腕的形式架构。
三要素:
(1)数据结构:
是所研究的对象类型的集合,是对系统静态特性的描述。
(2)数据操作:
对数据库中各类对象(型)的实例(值)所允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。
(3)数据的约束条件:
是完整性规则的集合。
完整性规则是给订的数据库模型中数据及其联系所具有的制约和依存规则,用一限定符合数据模型的数据库状态及其转变,以保证数据库的正确、有效、相容。
3、概念模型的作用?
概念模型实际上是显示世界到机械世界的一个中间层次。
概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流所试用的语言。
4、概念模型中ER图的设计
E-R图(实体—联系方式)提供了表示实体型、属性和联系的方式:
实体型:
用矩形表示,矩形框内写明实体名。
属性:
用椭圆形表示,并用无向边将其与相应的实体型连接起来。
五、数据库系统三级模式结构和二级映像功能,这种结构的长处?
三级模式结构:
(1)模式:
(逻辑模式)数据库中全部数据的逻辑结构和特征的描述,是所有效户的公共数据视图。
一个数据库只有一个模式。
模式的地位:
是数据库系统模式结构的中间层,与数据的物理存储细节和硬件环境无关,与具体的应用程序、开发工具及高级程序设计语言无关。
模式概念的内容:
数据的逻辑结构(数据项的名字、类型、取值范围等),数据之间的联系,数据有关的安全性、完整性要求
(2)外模式:
(子模式/用户模式)数据库用户(包括应用程序员和最终用户)能够看见和利用的局部数据库和逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的系统的逻辑表示。
一个数据库能够有多个外模式。
外模式的地位:
介于模式与应用之间
模式与外模式的关系:
一对多。
外模式一般是模式的子集。
一个数据库能够有多个外模式。
反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求。
对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都能够不同。
外模式与应用的关系:
一对多。
同一外模式也能够为某一用户的多个应用系统所利用
但一个应用程序只能利用一个外模式
(3)内模式:
存储模式或内视图)是数据物理结构和存储方式的描述,是数据在数据库内部实际存储的表示方式:
记录的存储方式(顺序,B树,hash方式存储),索引的组织方式,数据是不是紧缩存储,数据是不是加密。
数据存储记录结构的规定,一个数据库只有一个内模式
三级模式的长处:
(1)保证数据的独立性(内模式与模式分开物理独立;外模式与模式分开逻辑独立)
(2)简化用户窗口(3)有利于数据共享(4)利于数据的安全保密
(5)数据存储由DBMS管理(用户不用考虑存取路径等细节)
二级映像功能:
(1)外模式/模式映像(应用可扩充性)
概念外模式(局部逻辑结构)与模式(全局逻辑结构)之间的对应关系,映象概念通常包括在各自外模式的描述中,每一个外模式,数据库系统都有一个外模式/模式映象。
用途:
保证数据的逻辑独立性
当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式维持不变
应用程序是依据数据的外模式编写的,从而应用程序没必要修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
(2)模式/内模式映像(空间利用率,存取效率)
模式/内模式映像是唯一的,它概念了数据全局逻辑结构与存储结构之间的对应关。
数据库中模式/内模式映象是唯一的。
该映象概念通常包括在模式描述中。
用途:
保证数据的物理独立性
当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式维持不变。
应用程序不受影响。
保证了数据与程序的物理独立性,简称数据的物理独立性。
长处:
(1)保证了数据库外模式的稳固性。
(2)从底层保证了应用程序的稳固性,除非应用需求本身发生转变,不然应用程序一般不需要修改。
(3)数据与程序之间的独立性,使得数据的概念和描述能够从应用程序中分离出去。
六、什么叫数据与程序的物理独立性?
什么叫数据与程序的逻辑独立性?
为何数据库系统具有数据与程序的独立性?
一、数据与程序的逻辑独立性:
当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式维持不变。
从而应用程序没必要修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
二、数据与程序的物理独立性:
当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式维持不变。
应用程序不受影响。
保证了数据与程序的物理独立性,简称数据的物理独立性。
数据库管理系统在三级模式之间错提供的二层影响保证了数据系统中的数据具有较高的逻辑独立性和物理独立性。
第二章:
关系数据库
一、关系模型的3个组成部份及各部份所包括的主要内容。
一、关系数据结构:
描述现实世界的实体和实体间的各类联系。
只包括单一的数据结构—关系。
二、关系操作
查询操作:
选择、投影、连接、除、并、差、交、笛卡尔积等。
插入、删除、修改操作。
3、关系的完整性约束
实体完整性和参照完整性:
关系模型必需知足的完整性约束条件称为关系的两个不变性,应该由关系系统自动支持。
用户概念的完整性:
应用领域需要遵循的约束条件,表现了具体领域中的语义约束。
二、关系数据结构的形式化概念(各术语)
域:
一组具有想通数据类型的值的集合。
(用D表示)域中所包括的值的个数称为域的基数(用m表示)。
例:
整数、实数等。
笛卡尔积:
域上面的一个集合运算。
给定一组域D1,D2…Dn(能够是相同的域)D1,D2…Dn的笛卡尔积为:
D1×D2×…×Dn={(d1,d2…dn)|diÎDi,i=1,2,…,n}所有域的所有取值(n元有序组)的一个组合。
有序组的取值不能完全重复。
元组(Tuple):
笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)(张清玫,运算机专业,李勇)、(张清玫,运算机专业,刘晨)等都是元组。
分量(Component):
笛卡尔积元素(d1,d2,…,dn)中的每一个值di叫作一个分量。
张清玫、运算机专业、李勇、刘晨等都是分量。
基数(Cardinalnumber):
若Di(i=1,2,…,n)为有限集,Di中的集合元素个数称为Di的基数,用mi(i=1,2,…,n)表示,则D1×D2×…×Dn的基数M(即元素的个数)为为所有域的基数的累乘之积。
例:
A={a,b}B={1,2,0}
A与B的笛卡尔积={,,,,,}
B与A的笛卡尔积={<0,a>,<0,b>,<1,a>,<1,b>,<2,a>,<2,b>}
期中<0,a>等都是元祖,a、b、0、一、2都是分量,基数M=2*3=6,一共有六个元组。
关系:
是笛卡尔积的有限子集,无穷关系在数据库系统中是无心义的。
D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的n元关系,表示为R(D1,D2,…,Dn)
R:
关系名n:
关系的目或度(Degree)
(1)元组:
关系中的每一个元素是关系中的元组,通常常利用t表示。
(2)单元关系与二元关系:
当n=1时,称该关系为单元关系(Unaryrelation)或一元关系;当n=2时,称该关系为二元关系(Binaryrelation)
(3)关系的表示:
关系也是二维表,表的每行对应一个元组,表的每列对应一个域。
(4)属性:
由于笛卡尔积不知足互换律,即(d1,d2,…,dn)≠(d2,d1,…,dn)
但关系知足互换律,即(d1,d2,…,di,dj,…,dn)=(d1,d2,…,dj,di,…,dn)(i,j=1,2,…,n)
解决方式:
为关系的每一个列附加一个属性名以取消关系元组的有序性;关系中不同列能够对应相同的域;为了加以区分,必需对每列起一个名字,称为属性(Attribute);n目关系必有n个属性。
(5)码:
候选码:
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。
主属性:
候选码的诸属性称为主属性,不包括在任何侯选码中的属性称为非主属性或非码属性。
超码:
关系中能唯一标识元组的属性集,超码的任意超级仍是超码
候选码:
任意真子集都不能成为超码的“最小”超码,即在候选码中,若要再删除属性,就不是超码了。
3、外码,主码,候选码的概念
候选码:
若关系中的某一属性组的职能唯一地标识一个元组,则称该属性组为候选码。
主码:
若一个关系有多个候选码,则选按期中一个为主码。
外部码:
设F是大体关系R的一个或一组属性。
但不是关系R的码,若是F与大体关系S的主码K想对应,则称F是大体关系R的外部码,简称外码。
4、关系的3类完整性约束概念
实体完整性:
若属性(指一个或一组属性)A是大体关系R的主属性,A不能取空值。
参照完整性:
若属性(或属性组)F是大体关系R的外码,它是大体关系S的主码K相对应(大体关系R和S不必然是不同的关系),则对于R中每一个元组在F上的值必需为:
或取空值(F的每一个属性值均为空值);或等于S中某个元组的主码值。
用户概念的完整性:
针对某一具体关系数据库的约束条件。
反映某一具体应用所设计的数据必需知足的语义要求。
五、关系操作的特点,关系代数中的各类运算
关系操作的特点是集合操作方式,即操作的对象和结果是集合。
关系代数:
一、并(R∪S)仍为n目关系,由属于R或属于S的元组组成。
R∪S={t|tÎR∨tÎS}
二、差(R–S)仍为n目关系,由属于R而不属于S的所有元组组成。
R-S={t|tÎR∧tÏS}
3、交(R∩S)仍为n目关系,由既属于R又属于S的元组组成。
R∩S={t|tÎR∧tÎS}R∩S=R–(R-S)
4、笛卡尔积R:
n目关系,k1个元组;S:
m目关系,k2个元组;R×S。
5、R,t∈R,t[Ai]
设关系模式为R(A1,A2,…,An),它的一个关系设为R,t∈R表示t是R的一个元组,t[Ai]则表示元组t中相应于属性Ai的一个分量。
六、A,t[A],A
若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部份,则A称为属性列或属性组;t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元组t在属性列A上诸分量的集合;A则表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的属性组。
7、trts
R为n目关系,S为m目关系。
tr∈R,ts∈S,trts称为元组的连接。
trts是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。
八、象集Zx
给定一个关系R(X,Z),X和Z为属性组。
当t[X]=x时,x在R中的象集(ImagesSet)为:
Zx={t[Z]|tÎR,t[X]=x}。
它表示R中属性组X上的分量值为x的诸元组在Z上分量的集合
九、选择:
选择又称为限制(Restriction)σ:
对元组依照条件进行挑选。
在关系R当选择知足给定条件的诸元组σF(R)={t|t∈R∧F(t)='真'}。
10、投影:
投影运算符π的含义:
从R当选择出若干属性列组成新的关系πA(R)={t[A]|tÎR}A:
R中的属性列
投影操作主如果从列的角度进行运算。
但投影以后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)。
1一、连接:
连接也称为θ连接
:
两张表中的元组有条件的串接。
从两个关系的笛卡尔积当选取属性间知足必然条件的元组R
S={|trÎR∧tsÎS∧tr[A]θts[B]}
A和B:
别离为R和S上度数相等且可比的属性组θ:
比较运算符
连接运算从R和S的广义笛卡尔积R×S当选取(R关系)在A属性组上的值与(S关系)在B属性组上值知足比较关系θ的元组。
等值连接:
θ为“=”的连接运算称为等值连接。
从关系R与S的广义笛卡尔积当选取A、B属性值相等的那些元组,即等值连接为:
R
S={trts|tr∈R∧ts∈S∧tr[A]=ts[B]}
自然连接是一种特殊的等值连接:
两个关系中进行比较的分量必需是相同的属性组,在结果中把重复的属性列去掉。
自然连接的含义:
R和S具有相同的属性组B。
R
S={trts|trÎR∧tsÎS∧tr[B]=ts[B]}
外连接:
若是把舍弃的元组也保留在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接。
左外连接:
若是只把左侧关系R中要舍弃的元组保留就叫做左外连接(LEFTOUTERJOIN或LEFTJOIN)。
右外连接:
若是只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHTOUTERJOIN或RIGHTJOIN)。
1二、除÷:
给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组;R中的Y与S中的Y能够有不同的属性名,但必需出自相同的域集;R与S的除运算取得一个新的关系P(X),P是R中知足下列条件的元组在X属性列上的投影:
(若)元组在X上分量值x的象集Yx包括S在Y上投影的集合,记作:
R÷S={tr[X]|trÎR∧πY(S)ÍYx}Yx:
x在R中的象集,x=tr[X]
第三章:
关系数据库标准语言SQL
一、SQL语言的特点
一、综合统一。
二、高度非进程化。
3、面向集合的操作方式。
4、以同一种语法结构提供多种利用方式
五、语言简练、易学易用。
二、SQL语言的数据查询,数据概念,数据操纵功能,这些别离有哪些SQL语句?
一、数据概念:
概念数据库中的大体对象、模式(架构)概念、表概念、视图和索引。
注意:
SQL(Oracle除外)一般不提供修改视图概念和索引概念的操作,需要先删除再重建
(1)模式:
概念模式:
CREATESCHEMA<模式名>AUTHORIZATION<用户名>[<表概念子句>|<视图概念子句>|<授权概念子句>]
例:
CREATESCHEMATESTAUTHORIZATIONZHANG
CREATETABLETAB1(COL1SMALLINT,COL2INT,COL3CHAR(20),COL4NUMERIC(10,3),COL5DECIMAL(5,2));
为用户ZHANG创建了一个模式TEST,并在其中概念了一个表TAB1。
删除模式:
DROPSCHEMA<模式名>
CASCADE(级联):
删除模式的同时把该模式中所有的数据库对象全数删除
RESTRICT(限制);没有任何下属的对象时才能执行。
(2)表:
概念大体表:
CREATETABLE<表名>
(<列名><数据类型>[<列级完整性约束条件>]
[,<列名><数据类型>[<列级完整性约束条件>]]…
[,<表级完整性约束条件>]);
列级完整性约束--涉及到该表的一个属性
▪NOTNULL:
非空值约束
▪UNIQUE:
唯一性(单值约束)约束
▪PRIMARYKEY:
主码约束
▪DEFAULT<默许值>:
默许(缺省)约束
▪Check<(逻辑表达式)>:
核查约束,概念校验条件
▪NOTNULL:
非空值约束
▪UNIQUE:
唯一性(单值约束)约束
▪PRIMARYKEY:
主码约束
▪DEFAULT<默许值>:
默许(缺省)约束
▪Check<(逻辑表达式)>:
核查约束,概念校验条件
表级完整性约束--涉及到该表的一个或多个属性。
▪UNIQUE(属性列列表):
限定各列取值唯一
▪PRIMARYKEY(属性列列表):
指定主码
▪FOREIGNKEY(属性列列表)REFERENCES<表名>[(属性列列表)]
▪Check(<逻辑表达式>):
检查约束
▪PRIMARYKEY与UNIQUE的区别?
例:
成立“学生”表Student,学号是主码,姓名取值唯一
CREATETABLEStudent
(SnoCHAR(9)PRIMARYKEY,/*主码*/
SnameCHAR(20)UNIQUE,/*Sname取唯一值*/
SsexCHAR
(2),SageSMALLINT,SdeptCHAR(20));
数据类型
修改大体表:
ALTERTABLE<表名>
[ADD<新列名><数据类型>[完整性约束]]
[DROP<列名>|<完整性约束名>]
[ALTERCOLUMN<列名><数据类型>];
例:
向Student表增加“入学时刻”列,其数据类型为日期型
ALTERTABLEStudentADDS_entranceDATE;
不论大体表中原来是不是已有数据,新增加的列一概为空值
将年龄的数据类型由字符型(假设原来的数据类型是字符型)改成整数
ALTERTABLEStudentALTERCOLUMNSageINT;
注:
修改原有的列概念有可能会破坏已有数据
增加课程名称必需取唯一值的约束条件。
ALTERTABLECourseADDUNIQUE(Cname);
直接删除属性列:
(新标准)例:
ALTERTABLEStudentDropSage;
删除大体表:
DROPTABLE<表名>[RESTRICT|CASCADE];
RESTRICT:
(受限)欲删除的大体表不能被其他表的约束所引用,若是存在依赖该表的对象(触发器,视图等),则此表不能被删除。
CASCADE:
(级联)在删除大体表的同时,相关的依赖对象一路删除。
例:
删除Student表DROPTABLEStudentCASCADE;
大体表概念被删除,数据被删除;表上成立的索引、视图、触发器等一般也将被删除。
(3)索引:
成立索引的目的:
加速查询速度。
DBA或表的属主(即成立表的人)(显式);DBMS一般会自动成立以下约束列上的索引(隐式)PRIMARYKEYUNIQUE成立索引。
CREATE[UNIQUE][CLUSTER]INDEX<索引名>
ON<表名>(<列名>[<顺序>][,<列名>[<顺序>]]…);
用<顺序>指定索引值的排列顺序,升序:
ASC,降序:
DESC。
默许:
ASC。
UNIQUE表明此索引的每一个索引值只对应唯一的数据记录
CLUSTER表示要成立的索引是聚簇索引。
索引项顺序与表中记录的物理顺序一致。
聚簇索引CLUSTER
例:
CREATECLUSTERINDEXStusnameONStudent(Sname);
在Student表的Sname(姓名)列上成立一个聚簇索引,而且Student表中的记录将依照Sname值的升序寄存。
一个大体表上最多只能成立一个聚簇索引;在最常常查询的列上成立聚簇索引以提高查询效率;常常更新的列不宜成立聚簇索引。
唯一值索引UNIQUE
例:
为学生-课程数据库中的Student,Course,SC三个表建立索引
CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);
对于已含重复值的属性列不能建UNIQUE索引。
对某个列成立UNIQUE索引后,插入新记录时DBMS会自动检查新记录在该列上是不是取了重复值。
这相当于增加了一个UNIQUE约束。
删除索引:
DROPINDEX<索引名>;
删除索引时,系统会从数据字典中删去有关该索引的描述。
例:
删除Student表的Stusname索引:
DROPINDEXStusname
二、数据查询:
大体魄式
SelectA1,A2,…,An
FromR1,R2,..,Rm
WhereF
(1)单表查询
●选择表中的若干列(投影)
查询指定列(相当于πA(R),A=A1,A2,…,An)
例;查询全部学生的学号与姓名
SELECTSno,Sname
FROMStudent;
选出所有属性列:
在SELECT关键字后面列出所有列名按用户指定顺序显示。
将<目标列表达式>指定为*按关系模式中的属性顺序显示。
例:
查询全部学生的详细记录
SELECTSno,Sname,Ssex,Sdept,Sage
FROMStudent;
或SELECT*
FROMStudent;
:
SELECT子句的<目标列表达式>能够为:
算术表达式:
例:
查全部学生的姓名及其诞生年份
SELECTSname,2011-Sage/*假定昔时的年份为2011年*/
FROMStudent;
输出结果:
Sname2011-Sage
李勇1991
刘晨1992
字符串常量、函数
例:
查询全部学生的姓名、诞生年份和所有系,要求用小写字母
表示所有系名
SELECTSname,‘YearofBirth:
',2004-Sage,ISLOWER(Sdept)
FROMStudent;
输出结果:
Sname'YearofBirth:
'2004-SageISLOWER(Sdept)
李勇YearofBirth:
1984cs
刘晨YearofBirth:
1985is
列别名
SELECTSnameasNAME,'YearofBirth:
'asBIRTH,
2011-SageasBIRTHDAY,LOWER(Sdept)asDEPARTMENT
FROMStudent;
输出结果:
NAMEBIRTHBIRTHDAYDEPARTMENT
------------------------------------------------------
李勇YearofBirth:
1991cs