1第二章数据库模型序:联系是普遍存在的,任何人都不能否定,必须恰当的处理好人类将现实事物通过计算机进行处理的过程是第一节模型与抽象一、基本概念1.模型:现实世界特征的模拟和实现。2.模型的分类根据模型的应用目的不同分为:概念模型(信息模型)、数据模型概念模型:按用户的观点来对数据信息建模,主要用于数据库设计。数据模型:在数据库中用来抽象、表示和处理现实世界的数据和信息。即现实世界的模拟。主要包括网状模型、层次模型、关系模型、面向对象,按计算机系统的观点对数据进行建模。主要用于DBMS的实现,是数据库系统的核心和基础二、抽象过程1.抽象例:思考如何介绍自己?根据自己的特点分类介绍数学上遇到的三角形、正方形、是不是一种抽象?是2.抽象过程客观对象抽象为数据模型的过程:先将现实世界抽象为信息世界,然后将信息世界转换为机器世界现实世界的客观对象抽象为某种不依赖于具体计算机系统的信息结构(概念级模型),然后将概念模型转换为计算机上某个DBMS支持的数据模型。如图:三、概念模型1.基本概念实体(entity):客观存在并可以相互区别的事物。可以是具体的人、事、物,也可是抽现实世界抽象信息世界(概念模型)抽象计算机世界(数据模型)2象的概念或联系。属性(Attribute):实体所具有的某一特性,一个实体可以由多个特性。例:学生实体有学号、姓名、性别、出生年份、系、入学时间等属性组成。码(key):唯一标示实体的属性集成为码,如学号是学生实体的码,姓名不是。域(domain):属性的取值范围为该属性的域,如性别属性的域为(男,女)实体型(entitytype):具有相同属性的实体必然具有相同的特征和性质,用实体名和属性名集合来抽象和刻画同类实体,称为实体型,如:学生(学号、姓名、性别、出生年份、系、入学时间)实体集:同型实体的集合。如:全体学生联系(relationship):现实世界的联系在信息世界中反映为实体(型)内部的和实体(型)之间的联系。实体内部的联系常指组成实体的各属性之间的联系。实体间的联系指不同实体集之间的联系。分三类:一对一联系(1:1)如果实体集A中的每一个实体,实体集B中至多有一个实体与之相对应,反之亦然,称实体集A和B有一对一联系。如:学校里一个班级只有一个班长,一个班长只在一个班级任职,则班级和班长之间具有一对一联系一对多联系(1:n)如果实体集A中的每一个实体,实体集B中有n个实体(n=0)与之相对应,实体集B中的每一个实体,实体集A中至多有1个实体与之相对应,称实体集A和B有一对多联系。如:学校里一个班级有若干个学生,每个学生只在一个班级学习,则班级和学生之间具有一对多联系多对多联系(M:N)如果实体集A中的每一个实体,实体集B中有n个实体(n=0)与之相对应,实体集B中的每一个实体,实体集A中有m个实体(m=0)与之相对应,称实体集A和B有多对多联系。例:一个班级有多个老师,一个老师带多个班级的课,教师和班级之间多个实体间也存在联系,同一实体集内的各实体之间也可以在各种联系如:三个实体供应商、项目、零件三实体间;职工实体集内领导被领导的联系。3表示的方法都是使用E-R图2.概念模型的表示方法(E-R图)——掌握(1)E-R图中描述方法实体型:用矩形□表示,矩形框内写明实体名属性:用椭圆形○表示,并用无向边将其与相应的实体连接起联系本身:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来E-R图步骤:画出各实体、联系,添加各自属性;用无向边将实体、联系连接;标注联系类型将该图中比较复杂的一种拿出来逐步讲解其实现过程,然后要学生当堂练习,画出一个具体的例子,并给出正确答案。四、数据模型数据模型要满足三方面要求:1)能比较真实的模拟现实世界;2)容易为人所理解;3)便于计算机上实现1.数据模型的组成数据模型是严格定义的一组概念的集合,他们精确的描述了系统的静态特性、动态特性和完整性约束条件。由数据结构、数据操作和完整性约束三部分组成(1)数据结构:是研究的对象类型的集合对象主要包括两类:*与数据类型、内容、性质有关的对象,如网状模型中的数据项、记录;*与数据之间联系有关的对象,如网状模型中的系型。数据结构是数据模型性质的最重要的方面,数据库中按数据结构名来命名数据模型,它4是对系统静态特性的描述(2)数据操作:对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。对系统动态特性的描述。包括:检索和更新(插入、删除、修改)两大类(3)数据的约束条件:是一组完整性规则的集合。完整性规则定义:是给定的数据模型中数据及其联系所具有的制约和依存的规则,用以限定符合数据模型的数据库状态极状态的变化,用以保证数据的正确、有效、相容。2、常用的数据模型层次模型、网状模型、关系模型、面向对象模型(面向对象技术方法中)(1)非关系模型:包括层次模型和网状模型,实体用记录表示,属性对应记录的数据项,实体间联系转换成记录之间的两两关系。基本层次联系:是非关系模型中数据结构的单位,指两个记录以及他们之间的一对多(包括一对一)的联系(2)层次模型(树形结构)数据库中定义的基本层次的联系的集合必须满足下面两个条件:有且只有一个节点没有双亲结点,该结点为根结点;根以外的其它结点有且只有一个双亲节点。层次数据模型的存储实现方法(两种)A)邻接法B)链接法5层次模型的优缺点优点:本身比较简单;对于实体间联系是固定的,性能优于关系模型,不低于网状模型;提供了良好的完整性支持。缺点:现实世界联系非层次性的,只能通过引入冗余数据或创建非自然的数据组织来解决;对插入和删除操作的限制比较多;查询子女结点必须通过双亲节点;由于结构严密,层次命令趋于程序化。(3)网状模型网状模型的基本次联系集合满足条件:A)允许一个以上的结点无双亲;B)一个结点可以有多于一个的双亲网状模型优点能直接描述现实世界;有良好的性能,存取效率高缺点结构复杂,随环境的扩大,数据库结构会越来越复杂,不利于最终用户掌握;其DDL,DML语言复杂用户不容易使用第二节关系数据模型序:先看一个“图书借阅管理系统“,让学生有个整体的认识,从而调动学生学习数据库知识的积极性。让学生明确学习的目的和方向。课前要把两个系统调试好,并在数据表中填入相应的数据,以便于课堂使用一、关系数据模型的构成1.关系数据模型的数据结构在关系模型中:现实世界的实体以及实体间的各种联系均用关系来表示。6用户看来:关系模型中数据的逻辑结构是一张二维表,由行和列组成。例:关系:一个关系常对应一个表元组:表中的一行就为一个元组属性:表中的一列就为一个属性,给每个属性起的名字就为属性名,如上表有5个属性。域:属性值的范围。分量:元组的一个属性值。关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,…,属性N)关系满足条件:关系的每一个分量是一个不可分的数据项,既不允许表中还有表例:课本图1.28练习:打开图书管理系统中的表让学生分析上面的各项概念具体内容2.关系模型的操作和完整性约束1)操作主要包括:查询(Query)、插入(Insert)、删除(Delete)、和修改(Update)数据演示“图书管理系统“中的各项操作。查询(Query)主要包括:选择(select)、投影(Projiect)、连接(Join)、除(Divide)、并(Intesection)、差(Difference)关系操作的特点:操作的对象和结果都是集合2)关系语言可分三类:关系代数语言、关系演算语言(元组、域)、具有双重特点的语言如SQL。关系数据语言共同特点:语言具有完备的表达能力,是非过程或的集合操作语言,功能强,能嵌入高级语言中。3)关系的三类完整性约束(见第三部分内容)实体完整性、参照完整性、用户定义的完整性4)存储结构实体间的联系用表来表示,数据库的物理组织中,表以文件形式存储,对应一个系统文件3.关系数据模型的优缺点优点:建立在严格数学概念基础上的;概念单一、数据结构简单、清晰,用户易懂易用;7存取路径对用户透明,具有更高的数据独立性、更好的安全保密性,简化了程序员的工作和数据库开发建立的工作。缺点:由于存取路径对用户透明,查询效率往往不如非关系数据模型,为提高性能,必须对查询请求进行优化,增加了数据库管理系统的开发难度。二、关系数据结构及形式化定义1.关系的基本概念1)域:一组具有相同数据类型的值的集合。如{2,3},同数学中的域2)笛卡尔积(CartesianProduct):给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:D1xD2x…xDn={(d1,d2,…,dn)|diεDi,i=1,2,…n}其中每一个元素(d1,d2,…,dn)叫做一个n元组或简称元组,元素中的每一个值di叫做一个分量。若Di(I=1,2,…,n)为有限集,基数为mi(I=1,2,…,n),则D1Xd2x…xDn的基数为M=n21mmm如:三个域D1=导师集合SUPERVISOR=张庆、刘易D2=专业集合SPECIALITY=计算机,信息D3=研究生集合POSTGRADUATE=李勇,刘晨,王敏则D1xD2xD3为SUPERVISORSPECIALITYPOSTGRADUATE张庆计算机李勇张庆计算机刘晨张庆计算机王敏张庆信息李勇张庆信息刘晨张庆信息王敏刘易计算机李勇刘易计算机刘晨刘易计算机王敏刘易信息李勇刘易信息刘晨刘易信息王敏基数为:2*2*3=123)关系a)概念:D1xD2x…xDn的子集叫作在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)这里R表示关系的名字,n是关系的目或度。关系中的每个元素是关系中的元组,通常用t表示8当n=1时,称该关系为单元关系。当n=2时,称该关系为二元关系。关系是笛卡尔积有限子集,关系也是一个二维表,表的每行都为一个元组,每列对应一个域。由于列的域可以相同,为区分各列,必须对每列起一个名字,称为属性。n目关系有n个属性。候选码:关系中的某一个属性组的值能唯一的标识一个元组,称该属性组为候选码。若一个关系有多个候选码,则选定其中一个为主码。主码的诸属性为主属性。不包含在任何候选码中的属性为非码属性。最简单情况下,候选码只包含一个属性;极端情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码。由于一个研究生只师从于一个导师,学习某一个专业,所以笛卡尔积中的许多元组是无意义的。可以包含三个元组(若假设学生姓名唯一,可作为该关系的主码)张庆信息李勇张庆信息刘晨刘易信息王敏b)关系三种类型:基本关系(又称基本表或基表):实际存在的表,实实际存储数据的逻辑表示查询表:查询结果对应的表。视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。(临时表)c)关系模型数据结构的限定和扩充关系可是一个无限集合,笛卡尔积不满足交换率,即(d1,d2,…,dn)(d2,d1,…,dn),当关系作为关系数据模型的数据结构时,需给与如下限定和扩充:无限关系在数据库系统中是无意义的,因此限定关系数据模型中的关系必须是有限集合;通过关系的每一列附加一个属性名的方法取消关系的有序性即:(d1,d2,…,di,dj,…,dn)(d1,d2,…,dj,di,…,dn)d)关系的六条性质:(以前面已经制作的具体的数据表为例,如学生信息表等进行讲解)列是同质的,即每一列中的分量是同一类型的数据,来自同一个域;不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名;列的顺序不影响关系,即列的次序可以任意的交换;任意两个元组不能完全相同;行的顺序无所谓,即行的次序可以任意交换;分量必须取原子值,即每一个分量都必须是不可分的数据项。关系模型要求关系必须是规范化的,关系模型模型必须满足一定的规范条件,最基本的一条就是关系的每一个分量必须是