数据模型与数据库系统结构.ppt
1第2章 数据模型与数据库系统结构主要内容 2.1 数据与数据模型2.2 概念层数据模型 2.3 组织层数据模型 2.4 数据库系统的结构2.5 数据库管理系统2.1 数据和数据模型 现实世界的数据是散乱无章的,散乱的数据不利于人们对其进行有效的管理和处理。因此,必须把现实世界的数据按照一定的格式组织起来,以方便对其进行操作和使用。在用数据库技术管理数据时,数据被按照一定的格式组织起来,比如二维表结构,以使数据能够被更高效地管理和处理。32.1.1 数据与信息 描述事物的符号记录称为数据。将从数据中获得的有意义的内容称为信息 数据是信息存在的一种形式,只有通过解释或处理才能成为有用的信息。数据有一定的格式,这些格式的规定是数据的语法,而数据的含义是数据的语义。4示例 数据:(张三,9912101,男,1981,计算机系,应用软件)解释:张三是9912101班的男生,1981年出生,计算机系应用软件专业。5数据 信息解释数据的静态特征 数据的基本结构 学生的学号、姓名、性别、出生日期;数据间的联系 学生选课中的学号与学生基本信息中的学号;数据取值范围约束 考试成绩在0100分之间。*6动态特征 指对数据可以进行的操作以及操作规则。对数据库数据的操作主要有 查询数据 更改数据:插入、删除和更新 一般将对数据的静态特征和动态特征的描述称为数据模型三要素,即数据的基本结构、数据的约束条件、定义在数据上的操作。72.1.2 数据模型 对于模型,人们并不陌生。建筑模型 飞机模型 计算机中的模型是对事物、对象、过程等客观系统中感兴趣的内容的模拟和抽象表达,是理解系统的思维工具 数据模型(data model)也是一种模型,它是对现实世界数据特征的抽象。8数据模型(续)数据库管理系统是基于某种数据模型对数据进行组织的,因此,了解数据模型的基本概念是学习数据库知识的基础。在数据库领域中,数据模型用于表达现实世界中的对象,即将现实世界中杂乱的信息用一种规范的、形象化的方式表达出来。*9数据模型(续)数据模型即要面向现实世界,又要面向机器世界,因此需满足三个要求:能够真实地模拟现实世界;容易被人们理解;能够方便地在计算机上实现。*10数据模型(续)数据模型实际上是模型化数据和信息的工具。根据模型应用的不同目的,可以将模型分为两大类:概念层数据模型(概念模型),从数据的语义视角来抽取模型,是按用户的观点来对数据和信息进行建模。组织层数据模型(组织模型)。从数据的组织层次来描述数据,即用什么样的逻辑结构来描述数据。*11现实世界 现实世界 人脑的认识抽象 人脑的认识抽象 信息世界 信息世界 概念模型 概念模型 机器世界 机器世界DBMS DBMS支持的数据模型 支持的数据模型转换从现实世界到机器世界的过程2.2 概念层数据模型 基本概念 概念层数据模型是指抽象现实系统中有应用价值的元素及其关联关系。反映现实系统中有应用价值的信息结构,不依赖于数据的组织层数据模型。132.2 概念层数据模型(续)概念层数据模型用于对信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的工具,也是数据库设计人员和业务领域的用户之间进行交流的工具。面向用户、面向现实世界的数据模型,与具体的DBMS无关。常用的概念层数据模型有实体-联系(Entity-Relationship,E-R)模型、语义对象模型。实体-联系模型 实体-联系方法使用的工具称为E-R图,它所描述的现实世界的信息结构称为企业模式(Enterprise Schema),也把这种描述结果称为E-R模型。在E-R模型中主要涉及三方面内容:实体 属性 联系实体-联系模型 实体 属性 联系 实体 具有公共性质的可相互区分的现实世界对象的集合。可以是具体的事物,也可以是抽象的概念或联系 具体的事物:学生、课程、职工 抽象的联系:学生选课实体的表示方式 在E-R图中用矩形框表示实体,把实体名写在框内,比如学生实体可以表示为:学生属性实体所具有的特征或性质。实体所具有的特征或性质。身高年龄性别体重属性的表示方式 用圆角矩形或椭圆形表示,在圆角矩形或椭圆形框内写上属性的名字,并用连线将属性框与它所描述的实体联系起来。学生学号姓名年龄学生学号年龄性别 姓名联系 联系是数据之间的关联集合,是客观存在的应用语义链。实体内部的联系:一个实体内属性之间的联系。职工实体内部的职工号和此职工的部门经理号 实体之间的联系:不同实体之间的联系。课程实体和学生实体之间存在选课联系。联系的表示方式 实体之间的联实体之间的联系用菱形框表示,框系用菱形框表示,框内写上联系名,并用内写上联系名,并用连线与有关的实体相连线与有关的实体相连。连。联系名实体1实体2联系的种类一对一联系(1:1)一对多联系(1:n)多对多联系(m:n)一对一联系(1:1)如果实体A中的每个实例在实体B中至多有一个(也可以没有)实例与之关联,反之亦然,则称实体A与实体B具有一对一联系,记作:1:1。一对一联系的例子部门和正经理(假设一个部门只有一个正经理,一个人只当一个部门的经理)、系和正系主任(假设一个系只有一个正主任,一个人只当一个系的主任)都是一对一联系。管理经理部门11一对多的联系 如果实体A与实体B之间存在联系,并且对于实体A中的一个实例,实体B中有多个实例与之对应;而对实体B中的任意一个实例,在实体A中都只有一个实例与之对应,则称实体A到实体B的联系是一对多的,记为1:n。一对多联系(1:n)有部门和职工两个实体,并且有语义:一个部门可以有多名职工,但是一个职工只在一个部门工作。则部门和职工之间的联系是一对多的,我们把这种联系命名为工作。一对多联系的例子工作部门职工1n 一对多联系(单个实体内的联系)实例:职工实体内部具有领导与被领导的联系 某一职工(干部)“领导”若干名职工 一个职工仅被另外一个职工直接领导 职职工工领导领导11nn单个实体内部1:n 联系多对多的联系 如果实体A与实体B之间存在联系,并且对于实体A中的一个实例,实体B中有多个实例与之对应;而对实体B中的一个实例,在实体A中也有多个实例与之对应,则称实体A到实体B的联系是多对多的,记为m:n。多对多联系(m:n)多对多联系的例子 有学生和课程两个实体,并且有语义:一个学生可以修多门课程,一门课程可以被多个学生修。那么学生和课程之间的联系就是多对多的,我们把这种联系命名为选课。学生课程选课mn1:1 联系 1:n 联系 m:n 联系实体实体AA联系名联系名实体实体BB1111 总结:实体的联系的表示方法实体实体AA联系名联系名实体实体BB11nn实体实体AA联系名联系名实体实体BBmmnn课堂思考与练习 P26/5(2)(4)(6)试给出3个实际情况的E-R图,要求实体型之间具有一对一、一对多、多对多各种不同的联系。以班级为例?班长、班级、学生以选课为例1:1 联系 1:n 联系 m:n 联系班级班级班级班级-班长班长班长班长1111示例班级班级组成组成学生学生11nn课程课程选修选修学生学生mmnn两个以上实体之间的联系 实例:顾客购买商品:每个顾客可以从多个售货员那里购买商品,并且可以购买多种商品;每个售货员可以向多名顾客销售商品,并且可以销售多种商品;每种商品可由多个售货员销售,并且可以销售给多名顾客。mnp顾客 商品售货员销售两个以上实体之间的联系(续)实例 课程、教师与参考书三个实体一门课程可以有若干个教师讲授,使用若干本参考书,每一个教师只讲授一门课程,每一本参考书只供一门课程使用课程讲授教师1m两个以上实体间1:n联系参考书n课堂练习实例用E-R图表示某个工厂物资管理的概念模型。给定:实体 仓库:仓库号、面积、电话号码 零件:零件号、名称、规格、单价、描述 供应商:供应商号、姓名、地址、电话号码、帐号 项目:项目号、预算、开工日期 职工:职工号、姓名、年龄、职称 实体之间的联系:(1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。(2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作。(3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员。(4)一个供应商可以供给多个项目多种零件;每个项目可以使用多个供应商供应的零件;每种零件可由不同供应商供给。分析:实体之间的联系(1)仓库和零件:一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。仓库零件库存库存量m n(2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系 仓库职工工作1 n(3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员。职工领导1 n(4)一个供应商可以供给多个项目多种零件;每个项目可以使用多个供应商供应的零件;每种零件可由不同供应商供给。供应商、项目和零件三者之间具有多对多的联系供应商供应项目mp零件n工作m供应量供应商号姓名地址电话号码账号 仓库号面积电话号码 职工号姓名年龄仓库 职工职称供应供应商库存 领导库存量m1n1n项目 零件项目号 预算 开工日期 零件号 单价 描述规格 名称n nn n p p2.3 组织层数据模型*2.3.1 层次数据模型*2.3.2 网状数据模型 2.3.3 关系数据模型2.3.1 层次数据模型 采用层次模型作为数据的组织方式。典型代表是IBM公司的IMS(Information Management System)数据库管理系统,是IBM公司1968年推出的第一个大型的商用数据库管理系统。层次模型用树形结构表示实体和实体之间的联系。构成层次模型的树由结点和连线组成,结点表示实体,连线表示相连的两个实体间的联系,这种联系是一对多的。通常把表示“一”的实体放在上方,称为父结点;把表示“多”的实体放在下方,称为子结点。层次模型的两点限制(1)有且仅有一个结点无父结点,这个结点即为树的根;(2)其他结点有且仅有一个父结点。层次模型的优缺点 优点 层次模型的数据结构比较简单清晰 查询效率高,性能优于关系模型,不低于网状模型 层次数据模型提供了良好的完整性支持 缺点 多对多联系表示不自然 对插入和删除操作的限制多,应用程序的编写比较复杂 查询子女结点必须通过双亲结点 由于结构严密,层次命令趋于程序化 2.3.2 网状数据模型 用图形结构表示实体和实体之间的联系的数据模型就称为网状数据模型。去掉了层次模型中的两点限制。可以直接表示多对多的联系。同样使用父结点和子结点这样的术语,并且同样一般把父结点放置在子结点的上方。典型代表是CODASYL系统,它是CODASYL组织的标准建议的具体实现。网状数据模型的实际系统 Cullinet Software Inc.公司的 IDMS Univac公司的 DMS1100 Honeywell公司的IDS/2网状数据模型的数据结构 网状模型满足下面两个条件的基本层次联系的集合:1.允许一个以上的结点无双亲;2.一个结点可以有多于一个的双亲。网状数据模型的优缺点 优点 能够更为直接地描述现实世界,如一个结点可以有多个双亲;具有良好的性能,存取效率较高;缺点 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;DDL、DML语言复杂,用户不容易使用。2.3.3 关系数据模型 1970年美国IBM公司San Jose研究室的研究员首次提出了数据库系统的关系模型;把数据看成是二维表中的元素,而这个二维表就是关系;把数据看成是二维表中的元素,而这个二维表就是关系;用关系(表格数据)表示实体和实体之间联系的模型称为 用关系(表格数据)表示实体和实体之间联系的模型称为关系数据模型 关系数据模型关系数据模型的数据结构 在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。学 号 姓 名 年 龄 性 别 系 名 年 级2005004王小明19女 社会学20052005006黄大鹏20男 商品学20052005008张文斌18女 法律2005 学生登记表属性元组 关系必须是规范化的,满足一定的规范条件最基本的规范条件:关系的每一个分量必须是一个不可分的数据项,不允许表中还有表:图中工资和扣除是可分的数据项,不符合关系模型要求 职工号姓名 职 称工 资 扣 除实 发基 本 津 贴 职务 房 租 水 电86051陈 平 讲 师1305 1200 50 160 112 2283 一个工资表(表中有表)实例 关系数据模型的优缺点 优点:建立在严格的数学概念的基础上 概念单一 实体和各类联系都用关系来表示 对数据的检索结果也是关系 关系模型的存取路径对用户透明 具有更高的数据独立性,更好的安全保密性 简化了程序员的工作和数据库开发建立的工作关系数据模型的优缺点(续)缺点:存取路径对用户透明导致查询效率往往不如非 关系数据模型 为提高性能,必须对用户的查询请求进行优化 增加了开发DBMS的难度2.4 数据库系统结构2.4.1 模式的基本概念2.4.2 三级模式结构2.4.3 模式映象与数据独立性2.4.1 模式的基本概念 模式是数据库中全体数据的逻辑结构和特征的描述。它仅仅涉及“型”的描述,不涉及具体的值。关系模式是关系的“型”或元组的结构共性的描述,它对应的是关系表的表头。模式的一个具体值称为模式的一个实例。一个模式可以有多个实例。模式实例数据模型:关系模型2.4.2 三级模式结构外模式2外模式n外模式1概念模式内模式(单个用户视图)(公共用户视图)(存储视图)广义上讲 内模式:最接近物理存储,包括数据存储位置、存储方式等。外模式:最接近用户,是用户所看到的数据视图。模式:介于内模式和外模式之间的中间层,是数据的逻辑组织方式。关系数据库中的模式一定是关系的,在该层可见的实体是关系的表和关系的操作符。外模式也是关系的或接近关系的,它们的内容来自模式。内模式不是关系的,它是数据的物理存储方式。外模式 也称为用户模式、子模式。用户对现实系统中感兴趣整体的局部数据结构的描述。是DB整体数据结构的子集或局部重构。用外模式定义语言表达。是保证数据库安全的一个措施。示例1子集学 号 姓 名 年 龄 性 别 所 在 系0611101李勇21男 计算机系0611102刘晨20男 计算机系0611103王敏20女 计算机系0621101张立20男 信息管理系0621102吴宾19女 信息管理系学 号 姓 名 性 别0611101李勇 男0611102刘晨 男0611103王敏 女0621101张立 男0621102吴宾 女学生模式外模式学 号06111010611102061110306211010621102姓 名李勇刘晨王敏张立吴宾性 别男男女男女示例2重构 学生(学号,姓名,性别,年龄,所在系)课程(课程号,课程名,学分)选课(学号,课程号,成绩)学生(姓名,课程名,成绩)姓名课程名成绩示例3安全性职工表(职工号,姓名,所在部门,基本工资,职务工资,奖励工资)职工信息(职工号,姓名,所在部门,基本工资,职务工资)奖励工资模式 也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据描述。是数据库系统结构的中间层。用模式定义语言表达。例,对关系数据库,定义:表头结构、属性取值范围、。模式实际上是数据库数据在逻辑级上的视图。一个数据库只有一种模式。不涉及存储记录对列、索引、指针或其他存储的访问细节。内模式 也称为存储模式。数据的内部存储结构描述(数据的组织与存储)。2.4.3 模式映象与数据独立性 数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。为了能够在内部实现这三个抽象层次的联系和转换,数据库管理系统在三级模式之间提供了两层映象:外模式/模式映象模式/内模式映象模式间的映象(DBMS基本功能之一)维持DB数据与DB应用程序相互独立,从而使DB应用程序不随DB数据的逻辑或存储结构的变动而变动。数据库系统的三级模式结构 外模式/模式映象 当模式改变时,可用外模式/模式定义语句,调整外模式/模式映象定义,从而保持外模式不变。数据和程序逻辑独立(概念独立)模式/内模式映象 当存储结构改变时,可(由DBA)用内模式定义语句,调整内模式定义,从而保持模式不变。数据和程序物理独立(存储独立)2.5 数据库管理系统 DBMS是处理数据库访问的系统软件。处理过程:用户使用数据库语言发出一个访问请求;DBMS接受请求并分析;DBMS检查用户外模式、相应的外模式概念模式间的映象、概念模式、概念模式内模式间的映象和存储结构定义。数据库管理系统的功能 数据定义 数据操作 优化和执行 数据安全和完整性 数据恢复和并发 数据字典 性能 作业 P26/5(1)(3)(5);某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请用E-R图画出此工厂产品、零件、材料、仓库的概念模型。下课了。追求休息一会儿。