第一章数据库基础1.1数据库基本概念1.1.1数据处理数据(Data)是对客观事物的某些特征及其相互联系的一种抽象化、符号化表示。例如:李明出生日期为1963年9月17日,身高1.75m,体重65kg,部门代码A01,职称是副教授,其中李明、1963年9月17日、1.75m、65kg、A01、副教授等都是数据.数据处理发展的三个阶段。(1)手工处理阶段:使用简单的手工工具处理效率低,能处理的数量少而且可靠性差。(2)机械处理阶段:使用了比第一阶段先进得多且比较有效的工具处理效率高,且可靠性也有较大的提高。(3)电子处理阶段:使用电子计算机进行数据处理,为数据处理展现了广阔的前景。处理效率高,可靠性高1.1.2数据模型实体:现实世界中客观存在并且相互区别的事物。实体可以是具体的人、事、物,也可以是抽象的概念或事件。实体集:同类型实体的集合。例如,学校全体学生构成一个学校的学生实体集。属性:实体的特性,属性是实体之间相互区别的标志,一个实体可以由若干个属性来刻画。例如,学生实体可以用学号、姓名、性别、出生日期和籍贯等属性来描述。1.实体联系实体之间的对应关系称为联系,它反映了现实世界各个事物之间的相互关系。实体之间的联系有3种类型。一对一联系(1:1):如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。部门负责人领导一对多联系(l:n):如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。部门职员任职多对多联系(m:n):如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。职员参与工作2.数据模型模型:现实世界特征的模拟和抽象数据模型(DataModel):现实世界数据特征的抽象。在数据库中用数据模型来抽象、表示和处理现实世界中的数据和信息。数据模型应满足三方面要求:(1)能比较真实地模拟现实世界;(2)容易为人所理解;(3)便于在计算机上实现。数据模型分为两类,属于两个不同的层次。概念模型(信息模型):按用户的观点来对数据和信息建模,主要用于数据库设计。数据模型:按计算机系统的观点对数据建模,主要用于DBMS的实现。(1)层次模型满足下面两个条件的基本层次联系的集合为层次模型。(1)有且只有一个结点没有双亲结点,这个结点称为根结点;(2)根以外的其他结点有且只有一个双亲结点。在层次模型中,每个结点表示一个实体集,实体集之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的联系。根叶兄弟(2)网状模型把满足以下两个条件的基本层次联系集合称为网状模型:(1)允许一个以上的结点无双亲;(2)一个结点可以有多于一个的双亲。网状模型去掉了层次模型的两个限制,允许多个结点没有双亲结点,允许一个结点有多个双亲结点,此外它还允许两个结点之间有多种联系(称之为复合联系)。多双亲(3)关系模型在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。元组属性关系主码域(Domain):属性的取值范围。分量:元组中的一个属性值。关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,…,属性n)1.1.3数据库系统1.数据库系统组成数据库系统(DataBaseSystem,DBS):将引进数据库技术的计算机系统。数据库系统由以下几部分组成。(1)计算机硬件系统:用来运行操作系统、数据库管理系统、应用程序以及存储数据库的本地计算机系统和网络硬件环境。(2)数据库集合:存储在本地计算机外存设备或网络存储设备上的若干个设计合理、满足应用需要的数据库。(3)数据库管理系统:数据库管理系统是数据库系统的核心,用于协助用户创建、维护和使用数据库的系统软件。(4)相关软件:包括操作系统、编译系统、应用开发工具软件和计算机网络软件等。(5)人员:包括数据库管理员和用户。数据库管理员负责数据库系统的建立、维护和管理。用户可分为专业用户和最终用户。2.数据库系统特点(1)数据结构化:同一数据库中的数据文件是有联系的,且在整体上服从一定的结构形式。(2)数据共享:数据库中的数据不仅可为同一企业或结构之内的各个部门所共享,也可为不同单位、地域甚至不同国家的用户所共享。(3)数据独立:数据库系统力求减少这种依赖,实现数据的独立性。(4)冗余度可控:在数据库系统中实现共享后,不必要的重复将删除,但为了提高查询效率,有时也保留少量重复数据,其冗余度可由设计人员控制。(5)数据统一控制:为保证多个用户能同时正确地使用同一个数据库,数据库系统提供以下数据控制功能:安全性控制:保证只有合法用户才能进行指定权限的操作,防止非法使用所造成的数据泄密和破坏。完整性控制:数据库系统提供必要措施来保证数据的正确性、有效性和相容性。并发控制:保证多个用户的操作不相互干扰。3.数据库管理系统数据库管理系统是位于用户与操作系统之间的一层数据管理软件。它的主要功能包括以下几个方面:(1)数据定义功能:DBMS提供数据定义语言(DataDefinitionLanguage,DDL),用户通过它可以方便地对数据库中的数据对象进行定义。(2)数据操纵功能:DBMS提供数据操纵语言(DataManipulationLanguage,DML),用户可以使用DML操纵数据实现对数据库的基本操作,如查询、插入、删除和修改等。(3)数据库的运行管理功能:数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。(4)数据库的建立和维护功能:包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。1.2关系数据库1.2.1关系数据结构定义关系模型是建立在集合代数的基础上1.域(Domain)定义1-1域是一组具有相同数据类型值的集合。通常用字母D来表示域。例如,自然数、整数、实数、长度小于25的字符串集合、{0,l}、大于等于0且小于等于100的正整数等,都可以是域。2.笛卡尔积(CartesianProduct)定义1-2给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=l,2,…,n}元素(d1,d2,…,dn)叫作一个n元组(n-tuple),值di叫作一个分量若Di为有限集,则D1×D2×…×Dn的基数M(元素个数)为:M=∏mi(i=l,2,…,n)例如,D1={a,b,c},D2={A,B},D3={0,1}则D1×D2×D3元素个数为3×2×2=12,如下:D1×D2×D3={(a,A,0),(a,A,1),(a,B,0),(a,B,1),(b,A,0),(b,A,1),(b,B,0),(b,B,1),(c,A,0),(c,A,1),(c,B,0),(c,B,1)}3.关系(Relation)定义1-3D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,记为:R(D1,D2,…,Dn)R为关系的名称,n是关系的目或度(Degree)。当n=l时,称该关系为单元关系(Unaryrelation)。当n=2时,则称该关系为二元关系(Binaryrelation)。关系中的每个元素都是关系中的元组,通常用字母t表示。关系是笛卡尔积的有限子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。n目关系必有n个属性。1.2.2关系运算关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、比较运算符和逻辑运算符,如表所示。1.集合运算(1)并(Union)关系R与关系S的并记作:R∪S={t|t∈R∨t∈S}其结果仍为n目关系,由属于R或属于S的元组组成。(2)差(Difference)关系R与关系S的差记作:R-S={t|t∈R∧t¬∈S}其结果关系仍为n目关系,由属于R而不属于S的所有元组组成。(3)交(Intersection)关系R与关系S的交记作:R∩S={t|t∈R∧t∈S}其结果关系仍为n目关系,由既属于R又属于S的元组组成。2.专门的关系运算引入如下几个记号:(1)设关系为R(A1,A2,…,An)。t∈R表示t是R的一个元组。t[Ai]则表示元组t中相应于属性Ai的一个分量。(2)若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,A称为属性列或域列。t[A]=(t[Ai1],t[Ai2]…,t[Aik])表示元组t在属性列A上诸分量的集合。(3)R为n目关系,S为m目关系。tr∈R,ts∈S,trts称为元组的连接(Concatenation)。它是一个n+m′列的元组,前n个分量为R中的一个n元组,后m′个分量为S中的m元组去掉与R中重复的列分量后的一个m′元组。(1)选择(Selection)选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的各元组,记作:бF(R)={t|t∈R∧F(t)=“真”}其中:F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。由逻辑运算符¬,∧,∨连接各算术表达式组成。A=a1(2)投影(Projection)关系R上的投影是从R中选择出若干属性列组成新的关系。记作:πA(R)={t[A]|t∈R}其中:A为R中属性列的集合。BC(3)连接(Join)进行连接运算的两个关系必须具有相同的属性列,并且根据相同的属性列的取值是否相等来选择构成结果关系的元组,在结果中把重复的属性列去掉。设R和S具有相同的属性组B,则连接运算可记作:R|╳|S={trts|tr∈R∧ts∈S∧tr[B]=ts[B]}1.2.3关系数据库在关系数据库中,关系模式是型,关系是值。一个关系需要描述以下两方面:(1)必须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系。(2)赋予关系的元组语义。元组语义实质上是一个n目谓词(n是属性集中属性的个数),凡使该n目谓词为真的笛卡尔积中的元素的全体就构成了该关系模式的一个关系。在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。关系数据库的型:其也称为关系数据库模式,是对关系数据库的描述,关系数据库的值:是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。