本 章 导 航 数据模型 E-R数据模型 关系数据模型 其他数据模型.

Slides:



Advertisements
Similar presentations
7.2 数据模型 大学计算机基础. 7.2 数据模型 主要内容 数据模型简介 常用数据模型 常见数据库系统及开发工具.
Advertisements

第六章 数据库技术基础 本章要点  数据库系统概述 数据库系统概述  关系数据库 关系数据库  数据库设计 数据库设计.
Chapter 3: SQL.
数据库系统概论 An Introduction to Database Systems
2012年9月等级考试辅导 数据库设计基础.
Access数据库基础与应用(第2版).
计算机科学引论 数据库系统.
An Introduction to Database System
数据库系统概论 第一章 绪论 An Introduction to Database Systems
Database Theory and Application Database Theory and Application
An Introduction to Database Systems
数据库系统概论 An Introduction to Database Systems
数据库系统原理 数据库原理及应用 主讲:陈作聪 琼州学院电子信息工程学院
学习目标: 熟悉数据库及相关概念 熟悉数据模型 了解数据库系统结构
Renmin University of China
An Introduction to Database Systems
Visual FoxPro程序设计与应用.
数据库原理 Database Principles
第七章 数据库基础 7.1 数据库系统概述 7.2 数据库的建立和维护.
第1讲 数据库系统概述 在人们的周围有各种各样的数据库系统在运行。当人们买飞机票、领发工资、查资料、买卖股票时都需要与数据库打交道。
第1章 数据库系统导论 1.1 数据库与信息系统 1.2 数据模型与信息模型 1.3 数据库系统.
程序设计 Visual FoxPro 任课教师:王永红 湖南城市学院信息与计算机科学系 普通高等教育“十一五”国家级规划教材
数据库原理与应用 (Visual FoxPro 9.0版)
Access数据库基础 系列教学课件 安丘市职业中专 雷云龙.
 数据库原理与应用教程 第2章 数据库系统结构  南昌大学科学技术学院      讲课老师:俞俊甫 2010年8月 数据库原理与应用教程.
主讲教师:甘小红 江西财经大学信息管理学院
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
数据库原理与应用 计算机与信息工程学院 1/.
江西财经大学《数据库应用》精品课程组 2015年 钟敏娟 Comments are welcome!
第1章 数据库技术概论.
【开篇案例】 中国科技大学的在校生共有15500多人,其中:博士生1900多人,硕士生6200多人,本科生7400多人。学校的教学管理工作相当复杂和繁重,仅本科生开设的课程、教室安排事宜,每学期就多达950多个课堂。(即:全校每个学院,每个系,每个专业方向,不同的年级,在本学期开设的全部课程,安排在哪个教室,哪个节次?)
数据库技术与应用 -SQL Server.
第1章 数据库基础知识 1.1 数据处理技术的发展 1.2 数据抽象与模型 1.3 关系模型.
高级数据库技术 金培权
数据库系统教程 第2章 数据模型与数据库结构 开场白: 2017年3月21日11时33分2017年3月21日11时33分 1.
数据库原理与应用 01 – 绪论 郑捷.
Database Principles & Applications
第5章 数据库基础 5.1 数据库系统概述 5.2 数据模型 5.3 关系模型 5.4 关系数据库 5.5 常见的关系数据库管理系统简介.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
《Visual FoxPro程序设计基础》
《数据库原理及应用》课程介绍 信息工程学院 孙俊国
作业4讲评.
管理信息结构SMI.
走进编程 程序的顺序结构(二).
辅导课程六.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
网络数据库原理及应用 主讲:刁仁宏.
数据库设计是信息系统的核心组成部分 从现实世界到数据世界的转换的过程
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
工业机器人技术基础及应用 主讲人:顾老师
1.1 数据库基本概念 1.2 数据模型 1.3 关系数据库 1.4 Access2010简介
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
An Introduction to Database System An Introduction to Database System
C语言程序设计 主讲教师:陆幼利.
数 据 库 应 用 江西财经大学《数据库应用》 精品课程组 2016年 江西财经大学信息管理学院 《数据库应用》课程组.
信息管理与数据库 主讲:杨梅 电话:
VB与Access数据库的连接.
第4章(1) 空间数据库 —数据库理论基础 北京建筑工程学院 王文宇.
项目二:HTML语言基础.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
1.把下面的关系模式转化为E-R图 1)系(系号,系名,电话) 2)教师(工号,姓名,性别,年龄,系号)
第六章 数据模型转化为 关系数据库.
Visual Basic程序设计 第13章 访问数据库
第一章 绪论 1.1 引言 1.2 逻辑结构和存储结构 1.3 算法.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
学习数据结构的意义 (C语言版) 《数据结构》在线开放课程 主讲人:李刚
Presentation transcript:

第三章 数据模型

本 章 导 航 数据模型 E-R数据模型 关系数据模型 其他数据模型

学 习 目 标 实体与实体之间的联系方式 三种数据模型及其比较 关系数据模型与模式 从E-R模型到关系数据模型的转换方法

3.1 数据模型概述 一、数据模型概念 建立数据模型:设计数据库系统时,一般先用图或表的形式抽象地反映数据彼此之间的关系。 常用的数据模型一般可分为两类: 语义数据模型:既概念模型,如实体_联系模型(E-R模型),面向对象模型等;是现实世界到信息世界的第一层抽象。 经典数据模型:如层次模型,网状模型,关系模型。用于机器世界,可在机器上实现。

全系统的数据库结构通常包括:数据结构、数据操作和完整性约束三部分内容。 1.数据模型应表现数据结构 数据结构:描述的是数据库数据的组成、特性及其相互间联系。 所有的数据模型都要能反映数据的情况及数据之间联系的情况。

2.数据模型要定义数据操作的内容 数据操作:指对数据库中各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。主要有检索和维护(包括录入、删除、修改)等两大类操作。

3.数据模型应描述数据的约束条件 数据的约束条件:指数据完整性规则的集合,它是给定数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及其变化,以保证数据的完整性。

3.2 E-R数据模型 3.2.1 数据之间的联系 1、一对一联系(1:1) 3.2.1 数据之间的联系 1、一对一联系(1:1) 若对于实体集A中每一个实体,实体集B中至多只有 一个实体与之联系,反之对于实体集B中每一个实体, 实体集A中也至多只有一个实体与之联系。则称实体集A 与实体集B之间具有一对一联系,记为1:1。

班级 班长 王晓明 张珊 章程 李松 李霞 101班 102班 103班 104班 105班 班级 班长 1:1

2、一对多联系(1:N) 若对于实体集A中的每一个实体,实体集B中有n个 实体(n≥0)与之联系。而对于实体集B中的每一个 实体,实体集A中至多只有一个实体与之联系,则称 实体集A与实体集B有一对多的联系,记为1:N。

班级 学生 李霞 李敏 张珊 赵小敏 郑明明 章程 张超 张志超 101班 102班 103班 104班 105班 班级 学生 1:n

3、多对多联系(M:N) 若对于实体集A中的每一个实体,实体集B中有n 个实体(n≥0)与之联系,反过来对于实体B中的每 一个实体,实体集A中有m个实体(m≥0)与之联系, 则称实体集A与实体集B之间有多对多联系,记为M:N。

学生 课程 李霞 李敏 张珊 赵小敏 郑明明 章程 张超 张志超 计算机应用基础 数据库原理 C语言程序设计 数据结构 计算机网络 软件工程 操作系统 编译原理 学生 课程 m:n

3.2.2 实体-联系模型(Entity-Relationship Model) E-R模型是P.PS.Chen于1976年提出的一种 概念模型,用E-R图来描述一个系统中的数据及 其之间关系。

实体集:用长方形表示,在长方形框内写上实体名。 实体间联系:用菱形表示,菱形框内写上联系名。用无向边把菱形和有关实体相连接,在无向边旁标上联系的类型,如1或M或N。 实体或联系的属性:用椭圆形表示,椭圆内写上属性名,用无向边将它与一个相应实体相连。

【例】用E-R图来表示工厂仓库管理系统的概念模型。信息如下: 仓库:仓库号、仓库名、仓库容量。 零件:零件号、零件名、规格型号。 职工:职工号、职工名、工种。 其中,每个仓库有若干职工,每个职工只能在一个仓库工作;每个仓库可存放若干种零件,每种零件可存放在不同的仓库中。 作E-R图的步骤: 确定实体和实体的属性; 确定实体之间的联系及联系的类型; 给实体和联系加上属性

仓库名 仓库容量 仓库号 仓库 1 m 存放 工作 n n 职工 零件 职工号 工种 零件号 规格型号 职工名 零件名

【例】假设某公司在多个地区设有销售部经销本公司的各种产品,每种产品可由多个销售部销售;每个销售部聘用多名职工,且每名职工只属于一个销售部。销售部有部门名称、地区和电话等属性,产品有产品编码、品名和单价等属性,职工有职工号、姓名和性别等属性,每个销售部销售产品有数量属性。根据上述语义画出E-R图。

要注意的几个问题: 1、某些联系也具有属性。 2、 对于三个实体m:n:p的联系的老师、学生、课程间联系,可如图2.3所示描述。

3、E-R图可以表现一个实体内部-部分成员和另一部分成员间的联系,称为自回路。

4、E-R图可以表现二个实体集间多类联系。 例如: 一个单位中职工和工作的关系,一个职工可承担多项工作,一个工作一般有多人承担,这种工作关系是多对多的关系。 另一方面,有一些职工对一些工作是主要责任人,一个职工可对多项工作负责,但一项工作只有一个责任人,它们之间这种负责关系为1对多联系,可用图2.5描述。

3.3 关系数据模型 3.3.1 关系数据模型基本概念 用二维表格数据(即集合论中的关系)来表示实体和实体间联系的模型叫关系数据模型。 3.3.1 关系数据模型基本概念 用二维表格数据(即集合论中的关系)来表示实体和实体间联系的模型叫关系数据模型。 Oracle、DB2、Informix、Sybase、SQL Server、Access、Visual FoxPro全都是关系数据库管理系统。

关系模型中的术语: 关系:用二维表表示,二维表由多列和多行组成。 属性:每列为一个属性,每列的标识称为属性名, 在关系数据库中称为数据项或字段。 元组:表中每一行称为一个,描述一个具体实体, 在关系数据库中称为记录。元组的集合构成表。

关系数据模型:由多个关系表构成。 每个关系表示法(关系模式): 关系名(属性1,属性2,……属性n) 例如:学生(学号,姓名,性别,出生年月,专 业,班级,政治面貌,家庭住址,履历)。

主码(关键字):在一个关系中能唯一标识一个元组的属性或属性组。 域:属性的取值范围。一个域对应关系数据库中的表中的一个数据项的值的集合。域可以是整数、实数、字符串、日期、逻辑真假等。 分量:元组中一个属性值,对应关系数据库中一条具体记录的一个数据项的具体值。

关系模式:图书(借书证号,单位,姓名,性别,职称,地址) 字段 (数据项) 图书 域:{‘男’,’女’} 图书 借书证号 单位 姓名 性别 职称 地址 111 信息系 王维利 女 教授 1号楼424 112 财会系 李 立 男 副教授 2号楼316 113 经济系 张 三 讲师 3号楼105 114 周华发 1号楼316 115 赵正义 工程师 1号楼224 116 李 明 1号楼318 117 计算机系 李小峰 助教 1号楼214 118 许鹏飞 助工 1号楼216 119 刘大龙 120 国际贸易 李 雪 4号楼506 121 李 爽 4号楼510 122 王 纯 4号楼512 123 沈小霞 2号楼202 124 朱 海 2号楼210 125 马英明 2号楼212 借书证号 单位 姓名 性别 职称 地址 111 信息系 王维利 女 教授 1号楼424 112 财会系 李 立 男 副教授 2号楼316 113 经济系 张 三 讲师 3号楼105 114 周华发 1号楼316 115 赵正义 工程师 1号楼224 116 李 明 1号楼318 117 计算机系 李小峰 助教 1号楼214 118 许鹏飞 助工 1号楼216 119 刘大龙 120 国际贸易 李 雪 4号楼506 121 李 爽 4号楼510 122 王 纯 4号楼512 123 沈小霞 2号楼202 124 朱 海 2号楼210 125 马英明 2号楼212 元组 关系模式:图书(借书证号,单位,姓名,性别,职称,地址) 分量

几点说明: 1、关系是元组的集合,元组在关系中的顺序不影响关系。 2、同一关系任意元组不允许全同。对于每一表,一般要选定或设计主码,用以区分不同元组。 3、关系的每一属性都是不可再细分的基本数据类型,这种特性称为原子性。 4、在一个表中属性排列顺序可以交换,不影响关系。 5、允许属性值为空值(null value),表示该属性值未知,空值不同于0,也不同于空格。

3.3.2 从E-R数据模型到关系数据模型 由E-R模型转化出关系模型,方法为: 每一个实体型(矩形):用一个关系表示,实体的属性就是关系的属性,实体的码就是关系的主码。 学生 学号 姓名 性别 出生日期 学生 (学号,姓名,性别,出生日期)

1.合并到R端关系模式中 2.合并到S端关系模式中 一对一的联系:通常情况下将该联系与任意一端实体对应的关系模式合并。在合并端的关系模式中加入对应端的主码和联系自身的属性。 如果两个实体的主码相同,可将原两实体合并为一个关系表示,关系属性由二个实体属性集合而成,如有的属性名相同,则应加以区分。 R r1 r2 r3 1.合并到R端关系模式中 R(r1,r2,r3) R(r1,r2,r3,s1,p) 1 S(s1,s2,s3) R-S p 2.合并到S端关系模式中 S s1 s3 1 R(r1,r2,r3) S(s1,s2,s3,r1,p) s2

R(r1,r2,r3) S(s1,s2,s3) S(s1,s2,s3,p) 一对多的联系:在原多方实体对应的关系中,添加一方实体的主码,多方实体主码是多方对应关系的主码。 R r1 r2 r3 R(r1,r2,r3) 1 S(s1,s2,s3) S(s1,s2,s3,p) R-S p s2 S s1 s3 n

R(r1,r2,r3) S(s1,s2,s3) R-S(r1,s1,p) 多对多的联系:转换为新关系,联系名为关系名,联系的属性加上相关两实体主码构成关系的属性集,相关两实体主码的集合是联系关系的主码。 R r1 r2 r3 R(r1,r2,r3) S(s1,s2,s3) m R-S(r1,s1,p) R-S p s2 S s1 s3 n

销售部(部门名称,地区,电话) 职工(职工号,姓名,性别,部门名称) 职工(职工号,姓名,性别) 产品(产品编码,品名,单价) 销售(部门名称,产品编码,数量)

M: N: P的联系:仿照多对多联系处理,联系转化为关系, 原三个相关实体的主码及联系自身的属性构成联系关系的属性。 自回路:区分一对多和多对多。对于多对多情况,先复制原 实体中主码及涉及的主要属性,改名后存另一个表,再仿照一 对多联系和多对多联系处理,联系转化为关系,原实体中主码 加上更名后原实体中主码作为联系的属性。

3.4 其他数据模型 3.4.1 网状数据模型 广义的网状模型十分简单,它以矩形代表实体集,实体间用箭头线表示联系,箭头线为两头带箭头的连线,箭头分单箭头与双箭头,单箭头代表一,双箭头代表多。

1971年美国数据系统语言会议(Conference of Data System Language)组织的下属机构数据库任务组织(DBTG)提出了DBTG网状数据模型,它包括两种基本构件,记录类型和系类型,前者描述实体,后者描述实体间联系。 记录类型:是具有相同结构的一组记录的框架,相当于一个二维表的表头结构,它允许组项和向量。 在依之而设计的DBTG网状数据库中每一记录对应一个实体,实体按实体集分区域存放。

DBTG网状数据模型构成规则可大体归纳为: 1、一个记录类型可以参与多个系的组成,可以是多个系的系主记录型,也可为多个系的成员记录型。 2、任意两个记录类型间可以定义多个系类型。 3、系主记录型与成员记录型之间只能是一对多联系 4、在任何系中,一个成员记录值最多只能对应于一个系主记录值,即它不能属于同一系类型的不同系值。 5、允许一个系只有成员记录型而无系主记录型,这样的系称为奇异系,视“系统”为其系主,只有一个系值。 6、不允许一个记录型既是系主记录型又是成员记录型,这样的结构称为自回路。

层次数据模型 层次数据模型用“树”结构表示实体集之间的关系。 它以实体集(用矩形框表示)为结点,父结点与子结点间数据联系均为一对多联系。有且仅有一个结点无父结点称为根结点,

3.4.2 层次数据模型 层次数据模型用“树”结构表示实体集之间的关系。 3.4.2 层次数据模型 层次数据模型用“树”结构表示实体集之间的关系。 它以实体集(用矩形框表示)为结点,父结点与子结点间数据联系均为一对多联系。有且仅有一个结点无父结点称为根结点。

习题 1、为某个出版单位设计一个E-R图。假设在一个出版社要出版很多图书,每本图书只能由一个出版社出版。每本图书可以有多名作者,每个作者也可能参与多本书的编写工作。根据你所了解的出版社工作情况为每个实体设计属性并分析实体间的联系。 2、在上题的基础上建立对应的关系数据模型,并分析在转换过程中要注意哪些问题。