数据库系统原理及应用3第一节:数据库系统概述一、数据库的基本概念1、数据(data)数据是描述事物的符号记录。2、数据库(database,简称DB)数据库是指长期存储在计算机内,有组织的、大量的、可共享的数据集合。3、数据库管理系统(DatabaseManagementSystem,简称DBMS)是用来帮助用户在计算机上建立、使用和管理数据库的软件系统。4第一节:数据库系统概述其主要功能:数据定义功能(DDL)数据操纵功能(DML):DML=DataManipulationLanguage,数据操纵语言,命令使用户能够查询数据库以及操作已有数据库中的数据的计算机语言。具体是指是SELECT查询、UPDATE更新、INSERT插入、DELETE删除。其他管理:向数据库系统提供一组管理和控制程序,保障数据库的安全、通信与其它管理事务。4、数据库系统(Databasesystem,简称DBS)数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及开发工具)、应用系统、数据库管理员(DBA)和用户构成。5第一节:数据库系统概述二、数据管理技术的产生和发展1、人工管理阶段(20世纪50年代中期以前)数据不保存数据需由应用程序自己管理数据不共享数据不具有独立性应用程序1-------------------数据集1应用程序2-------------------数据集2……应用程序n-------------------数据集n6第一节:数据库系统概述2、文件系统阶段(20世纪50年代后期-60年代中期)数据可以长期保存由文件系统管理数据数据共享性差,冗余度大数据独立性低应用程序1----------------------文件1应用程序2----------------------文件2……应用程序n----------------------文件n存取方法7第一节:数据库系统概述3、数据库系统阶段(20世纪60年代后期)数据结构化数据的共享性高,冗余度低,易扩充数据独立性高数据由DBMS统一管理和控制安全性、完整性、并发控制、数据库恢复应用程序1应用程序2…应用程序nDB数据库管理系统8第二节:数据模型一、数据模型1、概念数据模型是现实世界数据特征的抽象,通俗地讲就是现实世界的模拟。2、分类(应用目的)概念数据模型:按用户的观点对数据和信息建模。逻辑数据模型:按计算机的观点对数据建模。现实世界概念模型数据模型认识抽象转换9第二节:数据模型二、数据模型的组成要素1、数据结构:是所研究的对象类型的集合。一类是与数据类型、内容、性质有关的对象。另一类是与数据之间联系有关的对象。2、数据操作:是指对数据库中各种对象的实例允许执行的操作的集合,包括操作及有关的规则。3、数据的约束条件:完整性规则的集合。三、概念模型1、信息世界中的基本概念(1)实体:客观存在并可相互区别的事物。(2)属性:实体所具有的某一特性。(3)码:唯一标识实体的属性集。10第二节:数据模型(4)域:属性的取值范围。(5)实体型:用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。(6)实体集:同型实体的集合。(7)联系:实体内部及实体间的联系。两个实体型之间的联系可以分为:一对一联系(1:1):如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然。一对多联系(1:n):如果对于实体集A中的每一个实体,实体集B中有n(n≥0)个实体与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系。多对多联系(m:n)如果对于实体集A中的每一个实体,实体集B中有n(n≥0)个实体与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m(m≥0)个实体与之联系。11第二节:数据模型2、概念模型的表示方法(E-R图)表示方法:实体型:用矩形表示属性:用椭圆形表示联系:用菱形表示例:学生(学号,姓名,性别,出生日期)班级(班号,所在专业)课程(课程号,名称,专业)教师(职工号,姓名,性别,职称)12第二节:数据模型这些实体之间的联系如下:一门课程可以有若干个教师讲授,而每一个教师只讲授一门课程。一门课程可以同时有若干个学生选修,一个学生也可以同时选修多门课程。一个班级中有若干名学生,而每个学生只在一个班级中学习。13第二节:数据模型职工号教师班级课程学生讲授选修学号课程号组成班号成绩学生数n11nmn授课时间14练习某图书馆有多种图书,其中每一种图书仅由一家出版社出版,而每一个出版社可以出版多种图书。该馆规定:每位读者可以借阅多种图书,每种图书也可以被多人借阅。请根据以上描述,构造出该图书馆的E-R图。15答案借书人出版社图书出版借阅m1mn16第二节:数据模型四、luoji数据模型非关系模型(层次、网状)、关系模型、面向对象模型非关系模型:实体:记录属性:数据项(字段)联系:记录之间的联系非关系模型中数据结构的单位是基本层次联系。基本层次联系:两个记录以及它们之间的一对多(包括一对一)的联系。RiRjLijRi:双亲节点Rj:子女节点Lij:一对多(包括一对一)联系名17第二节:数据模型1、层次数据模型(IMS)(1)层次数据模型的数据结构层次模型的两个条件:有且只有一个结点没有双亲结点(根结点)。根以外的其他节点有且只有一个双亲结点。R1R5R4R3R2叶节点兄弟节点根节点18第二节:数据模型多对多联系在层次模型中的表示:冗余节点法、虚拟节点法冗余节点法:浪费存储空间,有潜在的不一致性。虚拟节点法:改变节点的存储位置可能引起虚拟节点中指针的修改。学生课程选修学生课程课程学生学生课程V.CV.S冗余节点法虚拟节点法mn19第二节:数据模型(2)层次数据模型的数据操纵与完整性约束数据操纵:查询、插入、删除和修改插入:没有双亲节点,不能插入子女节点删除:删除双亲节点,相应子女节点也被删除。修改:应修改所有相应的记录,保证数据一致性。(3)层次模型的优缺点优点:a.数据模型简单,比较容易使用。b.提供了良好的完整性支持。20第二节:数据模型c.对于实体间联系是固定的,且预先定义好的应用系统,性能优于关系模型,不次于网状模型。缺点:a.对于非层次联系表示方法笨拙。b.对插入和删除的限制比较多。c.查询子女节点必须通过双亲节点。d.由于结构严密,层次命令趋于程序化。21第二节:数据模型2、网状数据模型(DBTG)(1)网状模型的数据结构允许一个以上的结点无双亲。一个节点可以有多于一个的双亲。允许两个节点之间有多种联系。学生宿舍学生系教师教研室学生课程人树种植砍伐22第二节:数据模型(2)网状数据模型的操纵与完整性约束数据操纵:查询、插入、删除和更新插入:允许插入尚未确定双亲节点值的子女节点。删除:允许只删除双亲节点值。(3)网状数据模型的优缺点优点a.更直接描述现实世界b.具有良好的性能,存取效率效高。缺点a.DLL语言极其复杂。b.数据独立性较差。23第二节:数据模型3、关系数据模型(1)关系数据模型的数据结构实体以及实体之间的联系都是用关系来表示的。关系:二维表(规范化的)元组:行属性:列(属性名唯一)主码:唯一确定一个元组的属性组。域:属性的取值范围。分量:元组中的一个属性值。关系模式:对关系的描述。关系名(属性名1,属性名2,…)24第二节:数据模型学号姓名性别001王一男002李二男课程号课程名学分0001数据库20002C++2学号课程号成绩001000180001000274002000195002000288学生课程选修学生课程选修mn25第二节:数据模型(2)关系数据模型的操纵与完整性约束操纵:select、insert、delete、update实体完整性:主码唯一且不为空。参照完整性自定义完整性(3)关系数据模型的优缺点优点a.数据结构简单、清晰,用户易懂易用。b.存取路径对用户透明,具有更高的数据独立性。缺点查询效率不如非关系数据模型。26第二节:数据模型4、面向对象数据模型与关系数据模型相比较:(1)数据结构关系数据模型:关系、元组面向对象数据模型:类、实例(2)数据操纵关系数据模型:关系的运算面向对象数据模型:方法和消息(3)完整性约束关系数据模型:完整性约束方法面向对象数据模型:完整性约束消息27第三节:数据库系统结构一、数据库系统的模式结构1、数据库系统模式的概念是数据库中全体数据的逻辑结构和特征的描述。2、数据库系统的三级模式结构模式:也称逻辑模式,是数据库数据在逻辑级上的视图。外模式:也称子模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。内模式:也称存储模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。28第三节:数据库系统结构2、数据库的二级映象功能与数据独立性外模式/模式映象保证了数据库系统的逻辑独立性。模式/内模式映象保证了数据库系统的物理独立性。29第三节:数据库系统结构二、数据库系统的体系结构1、单用户数据库系统整个数据库系统(应用程序、DBMS、数据)都装在一台机器上,由一个用户独占,不能共享使用。2、主从式结构的数据库系统一个主机带多个终端的多用户结构。3、分布式结构的数据库系统数据库系统中的数据在逻辑上是一个整体,但分布在计算机网络的不同节点上。4、客户/服务器结构的数据库系统集中的服务器结构和分布的服务器结构。30练习1、数据管理技术经历了()、()和()阶段。2、数据模型构成的三个要素为()、()和()。3、按照数据结构的类型命名来分,数据模型分为()、()、()和()。4、概念模型的表示方式,最为常用的是P.P.S.Chen于1976年提出的()。5、数据库系统的三级模式结构包括()、()和(),在这三个级别之间提供了两层映像()和()。6、数据库系统中的数据独立性包括()和()。31作业某医院病房计算机管理中需要如下实体:科室:科室名,电话,科室主任名病房:病房号,床位号,所属科室名医生:姓名,职称,工作证号,所属科室名病人:病历号,姓名,性别,诊断,主管医生,病房号其中,一个科室可以有多个病房、多个医生,一个病房只能属于一个科室,一个医生只能属于一个科室,但可以负责多个病人的诊治,一个病人的主管医生只能有一个。试根据要求,用E-R图画出该系统的概念模型。32第2章关系数据库[主要内容]本章主要介绍关系模型的基本概念。即关系模型的数据结构、关系操作和关系的完整性。33第1节:关系模型概述一、关系数据结构二、关系操作1、操作特点:采用集合操作方式,即操作的对象和结果都是集合。这种操作方式被称为一次一集合的方式2、关系操作:选择、投影、连接、除、并、交、差等查询操作和增、删、改操作。3、关系数据语言关系代数关系演算(元组关系演算、域关系演算)SQL三、完整性约束实体完整性、参照完整性和用户自定义完整性。34第2节:关系数据结构一、域和笛卡尔积1、域:是一组具有相同数据类型的值的集合。2、笛卡尔积:给定一组域D1,D2…Dn(可以完全不同,也可以部分或全部相同),D1,D2…Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2…dn)|di∈Di,i=1,2,…,n}其中每一个元素(d1,d2…dn)叫做一个n元组,简称为元组。di叫做一个分量。若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数为:m=niim135第2节:关系数据结构例如:D1(导师集合)=王导、孙导D2(研究生集合)=张三、李四则笛卡尔积为:D1×D2导师研究生王导张三王导李四孙导张三孙导李四36第2节:关系数据结构二、关系:1、基本概念是有意义的笛卡尔积的子集。用R(D1,D2,…,Dn)表示。R是关系的名字,n是关系的目或度。(单元关系,二元关系)。2、关系的码超码:若某一个关系R中某属性(组)能唯一将R中的各个元组区分开,则称该属性(组)为R的一个超码。侯选