1审计署数据库基础制作人:何玉洁北京信息工程学院计算机系2第1章关系数据库基础1.1数据管理的发展1.2数据库系统的组成1.3数据和数据模型1.4数据库系统的结构1.5关系数据库理论基础1.6数据库应用结构34数据密集型应用的三个特点涉及的数据量大数据不随程序的结束而消失数据被多个应用程序共享5数据管理的发展文件管理系统数据库管理6应用程序1文件1应用程序2文件2……应用程序n文件n文件系统7文件系统学生基本情况学生管理其它的数据学生基本情况有关学生选课数据学生选课子系统学生管理子系统8文件管理系统的缺点编写应用程序不方便数据冗余不可避免应用程序依赖性不支持对文件的并发访问数据间联系弱难以按用户视图表示数据无安全控制功能9…应用程序1应用程序2应用程序nDBMS数据库10有关学生管理的其它数据学生基本情况有关选课的其它数据学生选课子系统学生管理子系统数据库管理系统(DBMS)数据库系统11数据库管理系统的优点相互关联的数据的集合较少的数据冗余程序与数据相互独立保证数据的安全、可靠最大限度地保证数据的正确性数据可以并发使用并能同时保证一致性12相互关联的数据的集合数据库中的数据不是孤立的,数据与数据之间是相互关联的。也就是说,在数据库中不仅要能够表示数据本身,还要能够表示数据与数据之间的联系。13较少的数据冗余数据库中的数据被统一管理,合理组织,任何对数据的操作都由数据库管理系统DBMS完成。DBMS14数据具有较高的独立性数据独立性是指数据的组织和存储方法与应用程序互不依赖、彼此独立的特性。15保证数据的安全、可靠数据库技术要能够保证数据库中的数据是安全、可靠的。有效地防止数据库中的数据被非法使用或非法修改数据遭到破坏时能立刻将数据完全恢复16最大限度地保证数据的正确性保证数据正确的特性在数据库中称之为数据完整性。17数据可以并发使用并能同时保证数据的一致性在多个用户同时使用数据库时,能够保证不产生冲突和矛盾,保证数据的一致性和正确性。18500元500+300=800500-168=33219数据库是相互关联的数据的集合,并且它应该具有如下性质:用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有安全控制机制,能够保证数据的安全、可靠,允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性和完整性。20数据库系统数据库管理系统21数据库系统的简单结构应用程序1应用程序2……应用程序n数据库管理系统(DBMS)数据库管理员(DBA)数据库基础22数据库是数据的汇集,它以一定的组织形式存于存储介质上。DBMS是管理数据库的系统软件,它实现数据库系统的各种功能。是数据库系统的核心。DBA:负责数据库的规划、设计、协调、维护和管理等工作。应用程序指以数据库为基础的应用程序。23简单说DBMS就是管理数据库的系统软件,它应该具有如下功能:•数据定义功能•数据操作功能•数据查询功能•数据控制功能•数据通讯功能24251.3数据和数据模型数据数据模型的基本概念数据模型三要素概念层次数据模型组织层次数据模型261.数据数据是人们从实际当中抽取感兴趣的事物特征或属性数据有一定的格式,例如,性别是一个汉字的字符。格式的规定是数据的语法,而数据的含义是数据的语义数据是信息存在的一种形式,只有通过解释或处理才能成为有用的信息。通过解释、推论、归纳、分析和综合等方法,从数据所获得的有意义的内容称为信息。27数据的三种范畴282.数据模型的基本概念模型是现实世界感兴趣的内容的抽象特征的模拟和抽象。(是理解系统的思维工具)数据模型是用来抽象、表示和处理现实世界中的数据和信息的。(如:数据库、文件)数据模型应满足三个条件:能比较真实地模拟现实世界;容易被人们理解;便于在计算机上实现。29数据模型分类不同的数据模型实际上是提供给我们模型化数据和信息的不同工具。第一类是概念层数据模型:从数据的语义视角来抽取模型,此模型是按用户的观点来对数据和信息进行建模。主要用在数据库的设计阶段。第二类是组织层数据模型:从数据的组织层次来描述数据,主要包括层次模型、网状模型、关系模型以及对象-关系模型。此模型是从计算机系统的观点对数据进行建模,主要用于DBMS的实现。30数据模型是数据库系统的核心和基础。DBMS都基于某种数据模型。为了把现实世界中的具体事物抽象、组织为某一具体DBMS支持的数据模型,通常首先将现实世界抽象为信息世界(概念层模型),然后再将信息世界转换为机器世界(组织层模型)。概念层模型与DBMS无关,组织层模型与DBMS有关31现实世界客观事物的抽象过程现实世界信息世界:概念模型机器世界:具体DBMS支持的数据模型转换人的认识抽象32数据的描述包括两个方面数据的静态特性:包括数据的基本结构、数据间的联系和数据中的约束。数据的动态特征:指定义在数据上的操作。比如对学生的基本信息可以查询、修改和增加新记录等。33数据模型三要素数据结构数据的操作数据的约束条件34•包括两类,一类是与数据类型、内容、性质有关的对象,比如关系模型中的域、属性和关系等;另一类是与数据之间联系有关的对象,它从数据组织层表达数据的结构。•是对系统静态特性的描述。35•数据提取:在数据集合中提取感兴趣的内容。(SELECT)。•数据更新:变更数据库中的数据值。(INSERT、DELETE、UPDATE)36•是一组完整性规则的集合。•完整性规则是数据及其联系所具有的制约和依存规则,用以保证数据的正确、有效和相容,使数据系统值和现实系统状态一致。比如:学生选课表中的学号与学生基本信息表中的学号之间的制约关系,人的年龄必须在0到200之间取值约束等。373.概念层次数据模型概念层次模型实际上是现实世界到机器世界的一个中间层次。概念层次模型:抽象现实系统中有应用价值的元素及其关联,反映现实系统中有应用价值的信息结构,不依赖于数据的组织结构。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象。是数据库设计人员和用户之间进行交流的工具。是面向用户、面向现实世界的数据模型,是与DBMS无关。常用的概念模型:实体-联系模型、语义对象模型38实体-联系模型实体属性联系39客观存在并可以相互区分的客观事物。可以触及的客观对象学生、课程、职工……等是实体40实体的表示方式•在E-R图中用矩形框表示实体,把实体名写在框内,比如学生实体可以表示为:学生41身高年龄性别体重……实体所具有的特征或性质42联系联系是数据之间的关联集合,是客观存在的应用语义链。实体内部的联系:指组成实体的各属性之间的联系。如职工实体中,职工号和部门经理号之间有一种关联关系,即部门经理号的取值受职工号取值的约束(部门经理也是职工,也有职工号),实体之间的联系:指不同实体之间联系。例学生选课实体和学生基本信息实体之间,学生选课实体中的学号和学生基本信息实体中的学号之间的联系。常见的是实体之间的联系。43联系的表示方式实体之间的联系用菱形框表示,框内写上联系名,并用连线与有关的实体相连。联系名实体1实体244联系的类型一对一联系(1:1)一对多联系(1:n)多对多联系(m:n)45一对一联系(实体内部的联系)如果实体A中的每个实例在实体B中至多有一个(也可以没有)实例与之关联,反之亦然,则称实体A与实体B具有一对一联系,记作:1:1。46一对一联系的例子部门和正经理(假设一个部门只有一个正经理)、系和正系主任(假设一个系只有一个正主任)都是一对一联系。工作部门经理1147一对多的联系如果实体A与实体B之间存在联系,并且对于实体A中的一个实例,实体B中有多个实例与之对应;而对实体B中的任意一个实例,在实体A中都只有一个实例与之对应,则称实体A到实体B的联系是一对多的,记为1:n。48有班和学生两个实体,并且有语义:一个班可以有多名学生,但一个学生只在一个班学习。那么班和学生之间的联系是一对多的,我们把这种联系命名为学习。一对多联系的例子学习班学生1n49多对多的联系如果实体A与实体B之间存在联系,并且对于实体A中的一个实例,实体B中有多个实例与之对应;而对实体B中的一个实例,在实体A中也有多个实例与之对应,则称实体A到实体B的联系是多对多的,记为m:n。50多对多联系的例子有学生和课程两个实体,并且有语义:一个学生可以修多门课程,一门课程可以被多个学生修。那么学生和课程之间的联系就是多对多的,我们把这种联系命名为选课。学生课程选课mn51多个实体之间的联系有顾客、商品、销售员三个实体,并且有语义:每个顾客可以从多个销售员购买商品,可购买多种商品;每个销售员可向多个客户销售商品,可销售多种产品;每种商品可由多个销售员销售,可由多个客户购买购买。顾客商品销售员购买mnp524.组织层次数据模型从数据的组织方式的角度来描述信息最常用的数据模型有四种:层次模型网状模型关系模型面向对象模型53(1)关系模型的数据结构把数据看成是二维表中的元素,而这个二维表就是关系用关系(表格数据)表示实体和实体之间联系的模型称为关系数据模型示例:学生基本信息表54关系模型中的基本术语关系:关系就是二维表。并满足如下性质:关系表中的每一列都是不可再分的基本属性;表中的行、列次序并不重要。元组:表中的每一行称作是一个元组,它相当于一个记录值。属性:表中的每一列是一个属性值集,列可以命名,称为属性名。55关系模型中的基本术语(续)主码(Primarykey):用于惟一地确定一行数据的一个属性或最小属性组。域:属性的取值范围。如,性别只能是‘男’和‘女’两个值。关系模式:关系模式是关系的“型”或元组的结构共性的描述。关系模式实际上对应关系表的表头。56关系模式的表示R(A1,A2,…An)关系名称各属性名称57关系模式关系的“型”或元组的结构共性表头(关系模式)元组属性1属性2…属性n58(2)关系模型的数据操作主要包括:查询、插入、删除和修改数据。数据操作是基于集合的操作,操作对象和操作结果都是集合(或关系)。只需要指出“需要什么”,而不必详细说明“怎样干”。59(3)关系模型的数据完整性约束数据完整性是指数据库中存储的数据是有意义的或正确的。主要包括三大类:实体完整性参照完整性(引用完整性)用户定义的完整性(域完整性,语义完整性)60实体完整性实体完整性指的是关系表中的所有的表都必须有主码,而且表中不允许存在如下的记录:无主码值的记录主码值相同的记录61参照完整性不允许引用“主表内不存在的数据”。外码:取作本表属性之一的外表主码(主码值先在其主表中生成,后在其他表中引用)62外码引用例1学生课程修课(SNO,SNAME,…)(CNO,CNAME,…)(SNO,CNO,Grade,…)63外码引用例2n1职工部门(ENO,DNO,ENAME)(DNO,DNAME)64用户定义的完整性按应用语义,属性数据有:类型与长度限制:方便计算机操作取值范围限制:防止属性值与应用语义矛盾65语义许可取值范围约束例:成绩取[0..100],{优、良、中、及格、不及格}日期入学日期毕业日期661.4数据库系统的结构数据库系统模式的概念数据库系统的三级模式结构数据库的二级模式映象功能与数据独立性671.数据库系统模式的概念模式是数据库中全体数据的逻辑结构和特征的描述仅仅涉及型的描述,不涉及具体的值。模式的一个具体值称为模式的一个实例。模式是相对稳定的,实例是相对变动的。数据模式描述某一类事物的结构、属性、类型和约束,实质上是用数据模型对一类事物的模拟,而实例是反映某类事物的某一时刻的当前状态。682.数据库系统的三级模式结构69模式(逻辑模式)也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据描述。是数据库系统结构的中间层用模式定义语言表达。例,对关系数据库,定义:表头结