第1章数据库系统概述36.ppt
1,数据库技术与应用,大连海事大学计算机学院,2,第1章 数据库系统概论,认识数据库数据库技术是研究数据库的存储、设计和使用的技术,是计算机领域的一个重要分支。数据库在当今信息管理和信息处理中的作用越来越明显。,3,认识数据库使用过数据库吗?,选课系统、网上购物,电子政务,论坛,4,认识数据库基于网络的数据库应用系统结构?,IE,IIS/Tomcat,Access,5,认识数据库 还有哪些数据库?,SQL Server,ORACLE,DB2,MySQL,6,认识数据库数据库的表示?,一般用圆柱来表示,7,ORACLE公司美国总部,认识数据库,8,数据仓库(Data Warehouse)是数据库领域的专业术语。是数据库技术的一个分支。而数据库则为Database,认识数据库数据库是保存数据的仓库,即数据仓库吗?,9,1.1 数据库及相关概念,数据(Data)数据库(DataBase,简称DB)数据库管理系统(DBMS)数据库系统(DBS),10,一、数据,数据(Data)是数据库中存储的基本对象数据的定义描述事物的符号记录数据的种类文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等数据的特点数据与其语义是不可分的,11,数据举例,数据的含义称为数据的语义,数据与其语义是不可分的。例如 93是一个数据语义1:学生某门课的成绩语义2:某人的体重语义3:计算机系2003级学生人数语义4:请同学给出。,12,数据举例,学生档案中的学生记录(李明,男,197205,江苏南京市,计算机系,1990)语义:学生姓名、性别、出生年月、籍贯、所在院系、入学时间解释:李明是个大学生,1972年5月出生,江苏南京市人,1990年考入计算机系,13,二、数据库,数据库的定义数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库的基本特征数据按一定的数据模型组织、描述和储存可为各种用户共享冗余度较小数据独立性较高易扩展,14,三、数据库管理系统,什么是DBMS位于用户与操作系统之间的一层数据管理软件。是基础软件,是一个大型复杂的软件系统 DBMS的用途科学地组织和存储数据、高效地获取和维护数据,15,硬件平台,基础软件平台,软件基础构架平台,应用软件平台,软件产品,协同软件办公软件,数据库系统操作系统,中间件 应用服务器,数据库在计算机系统中的位置,16,DBMS的主要功能,数据定义功能 提供数据定义语言(DDL)定义数据库中的数据对象数据组织、存储和管理 分类组织、存储和管理各种数据 确定组织数据的文件结构和存取方式 实现数据之间的联系 提供多种存取方法提高存取效率,17,DBMS的主要功能,数据操纵功能 提供数据操纵语言(DML)实现对数据库的基本操作(查询、插入、删除和修改)数据库的事务管理和运行管理 数据库在建立、运行和维护时由DBMS统一管理和控制保证数据的安全性、完整性、多用户对数据的并发使用发生故障后的系统恢复,18,DBMS的主要功能,数据库的建立和维护功能(实用程序)数据库初始数据装载转换 数据库转储 介质故障恢复 数据库的重组织 性能监视分析等其它功能 DBMS与网络中其它软件系统的通信 两个DBMS系统的数据转换 异构数据库之间的互访和互操作,19,四、数据库系统,什么是数据库系统(Database System,简称DBS)在计算机系统中引入数据库后的系统构成数据库系统的构成数据库数据库管理系统(及其开发工具)应用系统数据库管理员,20,数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。,21,数据库,应用系统,应用开发工具,操作系统,数据库管理系统,数据库管理员,用户,用户,用户,数据库系统,22,数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。,23,1.2数据管理技术的发展,数据管理是指对数据的组织、分类、编码、存储、检索和维护。随着计算机硬件和软件的发展,数据管理经历了人工管理、文件系统和数据库系统三个发展阶段。1 人工管理阶段(50年代中期以前)1).数据不保存2).应用程序管理数据3).数据不共享4).数据不具有独立性,24,2 文件系统阶段(50年代后期至60年代中期)1).数据以文件形式可长期保存下来2).文件系统可对数据的存取进行管理3).数据共享性差,冗余度大4).程序与数据间有一定独立性,25,3 数据库系统阶段(60年代末开始)为解决多用户、多个应用程序共享数据的需求,出现了统一管理数据的专门软件系统,即数据库管理系统。1).数据结构化 按照某种数据模型,将全组织的各种数据组织到一个结构化的数据库中,整个组织的数据不是一盘散沙,可表示出数据之间的有机关联。2).数据共享性高、冗余少 数据不再面向某个应用程序而是面向整个系统,当前所有用户可同时存取库中的数据。减少了不必要的数据冗余,节约存储空间,同时也避免了数据之间的不相容性与不一致性。,26,3).数据独立性高数据的独立性是指逻辑独立性和物理独立性。数据的逻辑独立性是指当数据的总体逻辑结构改变时,数据的局部逻辑结构不变,由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必须修改,从而保证了数据与程序间的逻辑独立性。数据的物理独立性是指当数据的存储结构改变时,数据的逻辑结构不变,从而应用程序也不必改变。,27,4).有统一的数据控制功能数据库为多个用户和应用程序所共享,对数据的存取往往是并发的,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据,为确保数据库数据的正确有效和数据库系统的有效运行,数据库管理系统提供下述四方面的数据控制功能。(1)数据的安全性(security)控制(2)数据的完整性(integrity)控制(3)并发(concurrency)控制(4)数据恢复(recovery),28,1.3 数据模型,在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是对现实世界的模拟。识别出事物的本质属性,忽略不关心方面。,29,两大类数据模型,数据模型分为两类(分属两个不同的层次)(1)概念模型 也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。(2)逻辑模型和物理模型 逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。,30,两大类数据模型(续),现实世界中客观对象的抽象过程,31,1.3.1 数据模型的要素,任何一种数据模型都是严格定义的概念的集合。这些概念必须能够精确地描述系统的静态特性、动态特性和完整性约束条件。因此数据模型通常都是由数据结构、数据操作和完整性约束三个要素组成。数据模型通常都是由数据结构数据操作完整性约束三个要素组成。,32,1)数据结构,什么是数据结构描述数据库的组成对象,以及对象之间的联系描述的内容与数据类型、内容、性质有关的对象与数据之间联系有关的对象数据结构是对系统静态特性的描述,33,2)数据操作,数据操作对数据库中各种对象(型)的实例(值)允许执行的 操作及有关的操作规则数据操作的类型查询更新(包括插入、删除、修改)数据模型对操作的定义操作的确切含义操作符号操作规则(如优先级)实现操作的语言,34,3)数据的完整性约束条件,数据的完整性约束条件一组完整性规则的集合。完整性规则:给定的数据模型中数据及其联系所具有的制约和储存规则用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。,35,1.3.2 概念模型,概念模型的用途概念模型用于信息世界的建模是现实世界到计算机世界的一个中间层次是数据库设计的有力工具数据库设计人员和用户之间进行交流的语言对概念模型的基本要求较强的语义表达能力能够方便、直接地表达应用中的各种语义知识简单、清晰、易于用户理解,36,一、信息世界中的基本概念,(1)实体(Entity)客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念。(2)属性(Attribute)实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。(3)码(Key)唯一标识实体的属性集称为码。,37,信息世界中的基本概念(续),(4)域(Domain)属性的取值范围称为该属性的域。(5)实体型(Entity Type)用实体名及其属性名集合来抽象和刻画同类实体称为实体型(6)实体集(Entity Set)同一类型实体的集合称为实体集,38,信息世界中的基本概念(续),(7)联系(Relationship)现实世界中事物内部以及事物之间的联系在信息世界 中反映为实体内部的联系和实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系实体之间的联系通常是指不同实体集之间的联系,39,二、概念模型的表示方法,实体联系方法(E-R方法)用E-R图来描述现实世界的概念模型E-R方法也称为E-R模型E-R方法或E-R模型P.P.S.Chen于1976年提出的实体-联系方法(Entity-Relationship Approach)E-R图提供了表示实体型、属性和联系的方法:,40,E-R图,实体型用矩形表示,矩形框内写明实体名。属性用椭圆形表示,并用无向边将其与相应的实体连接起来,学生,教师,41,E-R图(续),联系联系本身:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n),42,两个实体型之间的联系,用图形来表示两个实体型之间的这三类联系,43,两个实体型之间的联系(续),一对一联系(1:1)实例一个班级只有一个正班长一个班长只在一个班中任职定义:如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1,44,两个实体型之间的联系(续),一对多联系(1:n)实例一个班级中有若干名学生,每个学生只在一个班级中学习定义:如果对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n,45,两个实体型之间的联系(续),多对多联系(m:n)实例课程与学生之间的联系:一门课程同时有若干个学生选修一个学生可以同时选修多门课程定义:如果对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m0)与之联系,则称实体集A与实体B具有多对多联系,记为m:n,46,三、两个以上实体型之间的联系,两个以上实体型之间一对多联系若实体集E1,E2,.,En存在联系,对于实体集Ej(j=1,2,.,i-1,i+1,.,n)中的给定实体,最多只和Ei中的一个实体相联系,则我们说Ei与E1,E2,.,Ei-1,Ei+1,.,En之间的联系是一对多的,47,两个以上实体型之间的联系(续),实例 课程、教师与参考书三个实体型一门课程可以有若干个教师讲授,使用若干本参考书,每一个教师只讲授一门课程,每一本参考书只供一门课程使用,48,两个以上实体型之间的联系(续),多个实体型间的一对一联系两个以上实体型间的多对多联系实例 供应商、项目、零件三个实体型一个供应商可以供给多个项目多种零件每个项目可以使用多个供应商供应的零件每种零件可由不同供应商供给,49,四、单个实体型内的联系,一对多联系实例 职工实体型内部具有领导与被领导的联系某一职工(干部)“领导”若干名职工一个职工仅被另外一个职工直接领导这是一对多的联系一对一联系 请举例,50,五 联系的属性,联系的属性:联系本身也 可以有属性(也可以看做是一种实体型)。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来,51,教务领域学校课程管理 E-R图,六 实例,52,53,教务领域实体及其联系图,54,学生,课程,实体的表示,七、扩展,55,实体的表示,56,PowerDesigner设计工具,57,PowerDesigner联系的表示,58,设定联系,59,PowerDesigner设计的出版公司的ER图,60,ERWin,其它的概念数据模型设计工具,VISIO,UML,61,练习 一个实例,用E-R图表示某个工厂物资管理的概念模型实体仓库:仓库号、面积、电话号码零件:零件号、名称、规格、单价、描述供应商:供应商号、姓名、地址、电话号码、帐号项目:项目号、预算、开工日期职工:职工号、姓名、年龄、职称,62,一个实例,实体之间的联系如下:(1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。(2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系(3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员。(4)供应商、项目和零件三者之间具有多对多的联系,63,一个实例,64,1.3.3 数据模型,数据模型(逻辑模型),按计算机系统的观点对数据建模,用于DBMS实现。最常用的数据模型有以下四种:非关系模型层次模型(Hierarchical Model)网状模型(Network Model)关系模型(Relational Model)面向对象模型(Object Oriented Model)对象关系模型(Object Relational Model),65,一.层次模型,层次模型是数据库系统中最早提出的数据模型。1968年由IBM公司推出的第一个大型商用数据库管理系统IMS(Information Management System)是层次数据库系统的典型代表。层次模型用树形结构来表示各类实体以及实体间的联系,66,层次数据模型的数据结构,层次模型 满足下面两个条件的基本层次联系的集合为层次模型1.有且只有一个结点没有双亲结点,这个结点称为根结点2.根以外的其它结点有且只有一个双亲结点层次模型中的几个术语根结点,双亲结点,兄弟结点,叶结点,67,层次数据模型的数据结构(续),图 一个层次模型的示例,68,层次数据模型的数据结构(续),层次模型的特点:结点的双亲是唯一的只能直接处理一对多的实体联系每个记录类型可以定义一个排序字段,也称为码字段任何记录值只有按其路径查看时,才能显出它的全部意义没有一个子女记录值能够脱离双亲记录值而独立存在,69,层次数据模型的数据结构(续),图 教员学生层次数据库模型,根结点,记录型系的子女结点记录型教员的双亲结点,叶结点,叶结点,字段,70,层次数据模型的数据结构(续),图 教员学生层次数据库的一个值,71,层次模型的优缺点,优点层次模型的数据结构比较简单清晰 查询效率高,性能优于关系模型,不低于网状模型层次数据模型提供了良好的完整性支持缺点多对多联系表示不自然对插入和删除操作的限制多,应用程序的编写比较复杂 查询子女结点必须通过双亲结点由于结构严密,层次命令趋于程序化,72,二 网状模型,网状数据库系统采用网状模型作为数据的组织方式 典型代表是DBTG系统:亦称CODASYL系统70年代由DBTG提出的一个系统方案奠定了数据库系统的基本概念、方法和技术实际系统Cullinet Software Inc.公司的 IDMSUnivac公司的 DMS1100Honeywell公司的IDS/2HP公司的IMAGE,73,网状数据模型的数据结构,网状模型满足下面两个条件的基本层次联系的集合:1.允许一个以上的结点无双亲;2.一个结点可以有多于一个的双亲。,74,网状数据模型的数据结构(续),网状模型与层次模型的区别网状模型允许多个结点没有双亲结点网状模型允许结点有多个双亲结点网状模型允许两个结点之间有多种联系(复合联系)网状模型可以更直接地去描述现实世界层次模型实际上是网状模型的一个特例,75,网状数据模型的数据结构(续),网状模型中子女结点与双亲结点的联系可以不唯一要为每个联系命名,并指出与该联系有关的双亲记录和子女记录,R1与R3之间的联系L1,R2与R3之间的联系L2,76,网状数据模型的数据结构(续),网状模型的例子,77,网状数据模型的数据结构(续),图 学生/选课/课程的网状数据模型,78,网状数据模型的优缺点,优点能够更为直接地描述现实世界,如一个结点可以有多个双亲具有良好的性能,存取效率较高缺点结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握DDL、DML语言复杂,用户不容易使用,79,三 关系模型,关系数据库系统采用关系模型作为数据的组织方式 1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型 计算机厂商新推出的数据库管理系统几乎都支持关系模型,80,一、关系数据模型的数据结构,在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。,学生登记表,属性,元组,81,关系数据模型的数据结构(续),关系(Relation)一个关系对应通常说的一张表元组(Tuple)表中的一行即为一个元组属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名,82,关系数据模型的数据结构(续),主码(Key)表中的某个属性组,它可以唯一确定一个元组。域(Domain)属性的取值范围。分量元组中的一个属性值。关系模式对关系的描述关系名(属性1,属性2,属性n)学生(学号,姓名,年龄,性别,系,年级),83,关系数据模型的数据结构(续),例1学生、系、系与学生之间的一对多联系:学生(学号,姓名,年龄,性别,系号,年级)系(系号,系名,办公地点)例2系、系主任、系与系主任间的一对一联系,84,关系数据模型的数据结构(续),例3学生、课程、学生与课程之间的多对多联系:学生(学号,姓名,年龄,性别,系号,年级)课程(课程号,课程名,学分)选修(学号,课程号,成绩),85,关系数据模型的数据结构(续),关系必须是规范化的,满足一定的规范条件最基本的规范条件:关系的每一个分量必须是一个不可分的数据项,不允许表中还有表 图1.27中工资和扣除是可分的数据项,不符合关系模型要求,图 一个工资表(表中有表)实例,86,关系数据模型的数据结构(续),表1.2 术语对比,87,术语对应,88,关系数据模型的操纵与完整性约束,数据操作是集合操作,操作对象和操作结果都是关系查询插入删除更新数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”,89,关系数据模型的操纵与完整性约束(续),关系的完整性约束条件 实体完整性参照完整性用户定义的完整性,90,关系数据模型的存储结构,实体及实体间的联系都用表来表示表以文件形式存储有的DBMS一个表对应一个操作系统文件有的DBMS自己设计文件结构,91,关系数据模型的优缺点,优点建立在严格的数学概念的基础上概念单一实体和各类联系都用关系来表示对数据的检索结果也是关系关系模型的存取路径对用户透明具有更高的数据独立性,更好的安全保密性简化了程序员的工作和数据库开发建立的工作,92,关系数据模型的优缺点(续),缺点存取路径对用户透明导致查询效率往往不如非 关系数据模型为提高性能,必须对用户的查询请求进行优化 增加了开发DBMS的难度,93,进行数据库设计,设计出表结构,参见P83,例,商品信息表products,94,商品信息表(products)的内容,在SQL Server 中创建表,95,SQL Server的数据类型,96,SQL Server 企业管理器,在SQL Server 中建立数据库,97,98,99,100,在SQL Server 中建立表,101,102,103,1.4 数据库系统的三级模式结构,模式(Schema)外模式(External Schema)内模式(Internal Schema),104,1.4.1数据库系统的三级模式结构,图 数据库系统的三级模式结构,105,一、模式(Schema),模式(也称逻辑模式)数据库中全体数据的逻辑结构和特征的描述所有用户的公共数据视图,综合了所有用户的需求一个数据库只有一个模式模式的地位:是数据库系统模式结构的中间层与数据的物理存储细节和硬件环境无关与具体的应用程序、开发工具及高级程序设计语言无关,106,模式(续),模式的定义数据的逻辑结构(数据项的名字、类型、取值范围等)数据之间的联系数据有关的安全性、完整性要求,107,二、外模式(External Schema),外模式(也称子模式或用户模式)数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述数据库用户的数据视图,是与某一应用有关的数据的逻辑表示,108,外模式(续),外模式的地位:介于模式与应用之间模式与外模式的关系:一对多外模式通常是模式的子集一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同外模式与应用的关系:一对多同一外模式也可以为某一用户的多个应用系统所使用但一个应用程序只能使用一个外模式,109,外模式(续),外模式的用途保证数据库安全性的一个有力措施每个用户只能看见和访问所对应的外模式中的数据,110,三、内模式(Internal Schema),内模式(也称存储模式)是数据物理结构和存储方式的描述是数据在数据库内部的表示方式记录的存储方式(顺序存储,按照B树结构存储,按hash方法存储)索引的组织方式数据是否压缩存储数据是否加密数据存储记录结构的规定一个数据库只有一个内模式,111,内模式(续),例如学生记录,如果按堆存储,则插入一条新记录总是放在学生记录存储的最后,如右图所示,112,内模式(续),如果按学号升序存储,则插入一条记录就要找到它应在的位置插入,如图1.29(b)所示如果按照学生年龄聚簇存放,假如新插入的S3是16岁,则应插入的位置如图1.29(c)所示,图1.29 记录不同的存储方式示意图,113,1.4.2 数据库的二级映像功能与数据独立性,三级模式是对数据的三个抽象级别二级映象在DBMS内部实现这三个抽象层次的联系和转换外模式模式映像模式内模式映像,114,一、外模式模式映象,模式:描述的是数据的全局逻辑结构外模式:描述的是数据的局部逻辑结构 同一个模式可以有任意多个外模式 每一个外模式,数据库系统都有一个外模式模式映象,定义外模式与模式之间的对应关系映象定义通常包含在各自外模式的描述中,115,外模式模式映象(续),保证数据的逻辑独立性当模式改变时,数据库管理员修改有关的外模式模式映象,使外模式保持不变应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。,116,二、模式内模式映象,模式内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在内部是如何表示的数据库中模式内模式映象是唯一的该映象定义通常包含在模式描述中,117,模式内模式映象(续),保证数据的物理独立性当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式内模式映象,使模式保持不变应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。,118,模式内模式映象(续),数据库模式即全局逻辑结构是数据库的中心与关键 独立于数据库的其他层次 设计数据库模式结构时应首先确定数据库的逻辑模式,119,模式内模式映象(续),数据库的内模式依赖于它的全局逻辑结构独立于数据库的用户视图,即外模式独立于具体的存储设备 将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率,120,模式内模式映象(续),数据库的外模式面向具体的应用程序定义在逻辑模式之上独立于存储模式和存储设备当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就得做相应改动 设计外模式时应充分考虑到应用的扩充性,121,模式内模式映象(续),特定的应用程序在外模式描述的数据结构上编制的依赖于特定的外模式与数据库的模式和存储结构独立不同的应用程序有时可以共用同一个外模式数据库的二级映像保证了数据库外模式的稳定性从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改,122,模式内模式映象(续),数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去 数据的存取由DBMS管理用户不必考虑存取路径等细节简化了应用程序的编制大大减少了应用程序的维护和修改,123,1.5 数据库系统的组成,数据库数据库管理系统(及其开发工具)应用系统数据库管理员硬件平台及数据库 软件 人员,124,一、硬件平台及数据库,数据库系统对硬件资源的要求(1)足够大的内存操作系统DBMS的核心模块数据缓冲区应用程序,125,硬件平台及数据库(续),(2)足够大的外存 磁盘或磁盘阵列数据库 光盘、磁带数据备份(3)较高的通道能力,提高数据传送率,126,二、软件,DBMS支持DBMS运行的操作系统与数据库接口的高级语言及其编译系统以DBMS为核心的应用开发工具为特定应用环境开发的数据库应用系统,127,三、人 员,数据库管理员系统分析员和数据库设计人员应用程序员用户,128,人 员(续),图1.30 各种人员的数据视图,不同的人员涉及不同的数据抽象级别,具有不同的数据视图,如下图所示,129,1.数据库管理员(DBA),具体职责:1.决定数据库中的信息内容和结构2.决定数据库的存储结构和存取策略3.定义数据的安全性要求和完整性约束条件,130,数据库管理员(续),4.监控数据库的使用和运行周期性转储数据库数据文件日志文件系统故障恢复介质故障恢复监视审计文件,131,数据库管理员(续),5.数据库的改进和重组性能监控和调优定期对数据库进行重组织,以提高系统的性能 需求增加和改变时,数据库须需要重构造,132,2.系统分析员和数据库设计人员,系统分析员 负责应用系统的需求分析和规范说明与用户及DBA协商,确定系统的硬软件配置参与数据库系统的概要设计,133,系统分析员和数据库设计人员(续),数据库设计人员参加用户需求调查和系统分析确定数据库中的数据设计数据库各级模式,134,3.应用程序员,设计和编写应用系统的程序模块进行调试和安装,135,4.用户,用户是指最终用户(End User)。最终用户通过应用系统的用户接口使用数据库。1.偶然用户不经常访问数据库,但每次访问数据库时往往需要不同的数据库信息 企业或组织机构的高中级管理人员,136,用户(续),2.简单用户主要工作是查询和更新数据库 银行的职员、机票预定人员、旅馆总台服务员3.复杂用户工程师、科学家、经济学家、科技工作者等直接使用数据库语言访问数据库,甚至能够基于数据库管理系统的API编制自己的应用程序,137,1.3.4.3 关系模型1.关系模型的发展2.关系数据模型的数据结构 关系模型的数据结构是一个“二维表框架”组成的集合,每个二维表又可称为关系,所以关系模型是“关系框架”的集合。,(1)关系(Relation)(2)元组(Tuple)(3)属性(Attribute)(4)关键字(Key)(5)域(Domain)(6)分量(7)关系模式 对关系的描述,一般表示为:关系名(属性1,属性2,属性n),如:学生(学号,姓名,性别,年龄,系别)。,138,关系数据库系统,139,术语对应,140,2.关系数据模型的数据操纵与完整性约束数据操纵主要包括查询、插入、删除和修改数据,这些操作必须满足关系的完整性约束条件,即实体完整性、参照完整性和用户定义的完整性。有关完整性的具体含义将在下一章介绍。在非关系模型中,操作对象是单个记录,而关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合;3.关系数据模型的存储结构 表以文件形式存储,在关系模型中,实体是用关系来表示的实体间的联系也是用关系来表示的,141,3、关系模型的优缺点关系模型的优点主要有:(1)与非关系模型不同,它有较强的数学理论根据。(2)数据结构简单、清晰,用户易懂易用,不仅用关系描述实体,而且用关系描述实体间的联系。(3)关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库建立和开发的工作。关系模型的缺点主要有:由于存取路径对用户透明,查询效率往往不如非关系模型,因此,为了提高性能,必须对用户的查询表示进行优化,增加了开发数据库管理系统的负担。,142,1.4 数据库系统的结构可以从多种不同的角度考查数据库系统的结构。从数据库管理系统的角度看,数据库系统通常采用三级模式结构,这是数据库系统内部的体系结构;从数据库最终用户的角度看,数据库系统的结构分为集中式结构、分布式结构,客户/服务器结构和并行结构,这是数据库系统外部的体系结构。1.4.1 数据库系统的三级模式结构模式(Schema)是数据库中全体数据的逻辑结构和特征的描述。通常DBMS把数据库从逻辑上分为三级,即外模式、模式和内模式,它们分别反映了看待数据库的三个角度。,143,数据库系统的三级模式结构,144,1.模式模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,又称概念模式或概念视图。视图可理解为一组记录的值,用户或程序员看到和使用的数据库的内容。模式处于三级结构的中间层,它是整个数据库实际存储的抽象表示,也是对现实世界的一个抽象,是现实世界某应用环境(企业或单位)的所有信息内容集合的表示,也是所有个别用户视图综合起来的结果,所以又称用户共同视图。它表示了数据库的整体数据。由多个“概念记录”组成,包含数据库的所有信息,也称“概念数据库”、“DBA视图”。DBMS 提供模式描述语言(模式 DDL)来定义模式。,145,2.外模式又称子模式或用户模式或外视图,是三级结构的最外层,个别用户只对整个数据库的一部分感兴趣,所以外视图是个别用户看到和使用的数据库内容,因此也常把外视图称为用户数据库。它由多种外记录值构成,这些记录值是概念视图的某一部分的抽象表示。即个别用户看到和使用的数据库内容,也称“用户DB”。由多个“外记录值”组成,是概念视图的某一部分的抽象表示。从逻辑关系上看,外模式包含于概念模式。DBMS 提供子模式描述语言(子模式 DDL)来定义子模式。,146,3.内模式又称存储模式或内视图,是三级结构中的最内层,也是靠近物理存储的一层,即与实际存储数据方式有关的一层,由多个存储记录组成,但并非物理层,不必关心具体的存储位置。DBMS 提供内模式描述语言(内模式 DDL)来定义内模式。在数据库系统中,外模式可有多个,而概念模式、内模式只能各有一个。内模式是整个数据库实际存储的表示,而概念模式是整个数据库实际存储的抽象表示,外模式是概念模式的某一部分的抽象表示。,147,148,4.三级结构的优点(1)保证数据的独立性。将模式和内模式分开,保证了数据的物理独立性;将外模式和模式分开,保证了数据的逻辑独立性。(2)简化了用户接口。按照外模式编写应用程序或敲入命令,而不需了解数据库内部的存储结构,方便用户使用系统。(3)有利于数据共享。在不同的外模式下可有多个用户共享系统中数据,减少了数据冗余。(4)利于数据的安全保密。在外模式下根据要求进行操作,不能对限定的数据操作,保证了其他数据的安全。,149,1.4.2 数据库系统的二级映象数据库系统的三级模式是对数据的三个抽象级别,它使用户能逻辑地抽象地处理数据,而不必关心数据在计算机内部的存储方式,把数据的具体组织交给 DBMS 管理。为了能够在内部实现这三个抽象层次的联系和转换,DBMS 在三级模式之间提供了二级映象功能。,150,1.模式/内模式映象数据库中的模式和内模式都只有一个,所以模式/内模式映象是唯一的。它确定了数据的全局逻辑结构与存储结构之间的对应关系。2.外模式/模式映象数据库中的同一模式可以有任意多个外模式,对于每一个外模式,都存在一个外模式/模式映象。它确定了数据的局部逻辑结构与全局逻辑结构之间的对应关系。,