第2章 数据模型.

Slides:



Advertisements
Similar presentations
四、后期物理复习备考建议 不同阶段复习课教学设计(知识建构)的目的 复习课教学 设计的目的 理 解 · 对某知识的全面、抽 象理解 · 抽象知识和具体情景 的转化 综 合 · 多知识点联合解决问 题 基本素质 · 审题、表达、审视答 案等基本能力 复习 ( 一 ) 复习(二) ☆ ☆☆☆ ☆☆  进行科学规划.
Advertisements

2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
林園高中適性入學 高雄區免試入學 及 特色招生介紹 1. 國中學生 國中教育會考 1 ( 每年五月 ) 特色招生 術科考試 五專 免試入學 ( 每年六月 ) 特色招生 甄選入學 高中高職 免試入學 擇一報到 林園高中適性入學  入學管道流程 2.
投資 & 購屋置產 報告 ( 課程 : 個人理財規劃 ) 授課老師 : 許秀鶴 授課老師 : 許秀鶴 報告學生 : 報告學生 : 許文耀 學號 : 許文耀 學號 : 張慧珍 學號 : 張慧珍 學號 : Next 個人簡介.
数据库原理 彭煜玮 计算机学院 珞珈图腾数据库实验室.
壹 展会营销方式 在休闲娱乐产业中的分析. 壹 展会营销方式 在休闲娱乐产业中的分析 对于行业、企业、产品的作用 会展营销 的作用 会展营销 集行业资源要素、灵活多变的活动手段、面对面的展览展示等优点,已经发展成为所有行业开展营销工作的首选手段。 1、市场调研功能 5、注意力经济效应 2、产品创新功能.
An Introduction to Database System
行政执法人员 综合法律知识培训 二OO六年八月.
十二年國民基本教育- 104年中投區適性入學宣導
第2框 文化创新的途径 考点:理解文化创新的重要途径.
数据库系统原理及应用 Database Theory and Application
2011年10月31日是一个令人警醒的日子,世界在10月31日迎来第70亿人口。当日凌晨,成为象征性的全球第70亿名成员之一的婴儿在菲律宾降生。 ?
第一章 数据库系统概论 教学目的与要求: 1、了解数据处理技术的各个阶段的不同特点;
数据库系统概论 An Introduction to Database Systems
MySQL数据库服务介绍 2013 年 6 月.
第2章 数据模型 本章学习要求: 1. 层次数据模型、网状数据模型 了解层次及网状数据模型的基本概念和结构。 2. 关系数据模型
胠箧 主讲: 吴静晖.
十二年國民基本教育 年度中投區免試入學 超額比序與志願選填宣導說明
第2章 数据模型 2.1 实体联系模型 2.2 关系模型 2.3 面向对象的数据模型 习 题 2.
初级会计实务 第八章 产品成本核算 主讲人:杨菠.
第四章 市场与行业分析.
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
中考阅读 复习备考交流 西安铁一中分校 向连吾.
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
国家“十一五”规划教材 数据库原理与应用教程(第3版).
高等院校计算机教材系列 数据库原理与应用(第2版).
中央广播电视大学开放教育 成本会计(补修)期末复习
品管旧、新七大手法.
人教版义务教育课程标准实验教科书 小学数学四年级上册第七单元《数学广角》 合理安排时间 248.
第七章 数据库管理系统.
第1章 数据库基础 1.1 数据库基本概念 数据处理 数据(Data)是对客观事物的某些特征及其相互联系的一种抽象化、符号化表示。 例如:王华出生日期为1970年7月12日,身高1.75m,体重65kg,部门代码A01,职称是副教授,其中王华、1970年7月12日、1.75m、65kg、A01、副教授等都是数据.
Principles and Applications of the Database
致亲爱的同学们 天空的幸福是穿一身蓝 森林的幸福是披一身绿 阳光的幸福是如钻石般耀眼 老师的幸福是因为认识了你们 愿你们努力进取,永不言败.
第四章 时间序列的分析 本章教学目的:①了解从数量方面研究社会经济现象发展变化过程和发展趋势是统计分析的一种重要方法;②掌握时间数列编制的基本要求;③理解和掌握水平速度两方面指标的计算及运用④理解和掌握长期趋势分析和预测的方法。 本章教学重点:现象发展的水平指标和速度指标。 本章教学难点:现象变动的趋势分析。
数据库技术及应用 华中科技大学管理学院 课程网址:
免試入學相關資訊 資料類別 提供單位 公布 日期 資料 性質 各科能力等級加標示(3等級4標示) 與答對題數對照表 心測中心 6/2 全國性
“08高考化学学业水平(必修科目)测试的命题和教学对策研究”
中考语文积累 永宁县教研室 步正军 2015.9.
数据库原理与应用     制作人:王春玲         黄金燕         张惠萍         陈志泊 人民邮电出版社.
第4章 数据库技术及应用 软件开发技术基础 计算机教学实验中心 2006.
小学数学知识讲座 应用题.
倒装句之其他句式.
主板整体维修思路 1、加电保护 现象:触发上电,风扇 转一下就停,同时能听见电源发出‘滋啦’一声异 响,再次触发,不上电。
關聯式資料庫.
學校教職員退休條例修正草案重點報告 報告人:徐創晃.
第 22 课 孙中山的民主追求 1 .近代变法救国主张的失败教训: “师夷之长技以制 夷”“中体西用”、兴办洋务、变法维新等的失败,使孙中山
二.資料庫系統建立與管理 Access 資料庫:windows下的單機資料庫 Access 操作 Mysql資料庫介紹.
單元3:軟體設計 3-1實體關係圖 Ch 08 System models.
AnQing Teachers College Department of Computer & Information
第二章 實體關係模式:基本概念 目的 何謂實體關係模式和實體關係圖(ERD) 實體型態 關係型態 二元關係型態 弱實體型態 遞迴關係型態
第二章 實體關係模式:基本概念 目的 何謂實體關係模式和實體關係圖(ERD) 實體型態 關係型態 二元關係型態 弱實體型態 遞迴關係型態
东南亚各国国旗.
CH03 行銷資訊系統資料庫模組--資料庫概論
ER Model.
資料庫管理系統 緒 論.
1. 求真空中一长为L、总电量为q的均匀带电细直线杆延长线上的电场强度。
102學年度 健康檢查說明會 健康中心 王勤雅.
大綱:整數的加法 整數的減法 蘇奕君 台灣數位學習科技股份有限公司
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
数据库系统原理 J.D.Ullman 国防工业出版社 数据库原理与方法 郑若忠,王鸿武 湖南科技出版社
第四节 数据库设计 数据库设计是指根据用户需求分析、在现有的数据库管理系统的基础上建立数据库结构的过程。具体讲,是指对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之有效地存储数据,满足用户信息要求和处理要求。 数据库设计的依据DFD、DD、DBMS 。 数据库的设计过程是通过E-R图(依据“实体-联系”法实现,Entity.
指 數 記 法 指 數 律 自我評量.
臺北市私立大同高中105年 地震疏散演練 上午9時21分, 實施防災演練, 9月13日0730實施預演.
1.4数据库管理系统 数据库管理系统是数据库系统的核心,是为数据库的建立,维护,使用而建立的系统软件,建立在操作系统基础之上,位于操作系统与用户之间的数据管理软件,负责对数据库进行统一管理与控制.
第 3 章 体的投影  3.1 体的三面投影—三视图  3.2 基本体的三视图  3.3 简单叠加体的三视图  本章小结 结束放映.
畢氏定理(百牛大祭)的故事 張美玲 製作 資料來源:探索數學的故事(凡異出版社).
104 四技二專甄選入學 簡章解析 輔導室 何乙娟.
幂的乘方.
第一章 Visual FoxPro数据库基础
102年人事預算編列說明 邁向頂尖大學辦公室製作.
Presentation transcript:

第2章 数据模型

本章主要内容   本章将着重介绍一下概念模型、层次模型、网状模型、关系模型、面向对象模型等数据库系统的数据模型的基本概念和设计方法,为后面的数据库设计打下基础。 (1)数据描述 概念设计、逻辑设计和物理设计等各阶段中数据描述的术语,概念设计中实体间二元联系的描述(1:1,1:N,M:N)。 (2)数据模型 数据模型的定义,两类数据模型,逻辑模型的形式定义,ER模型,层次模型、网状模型、关系模型和面向对象模型的数据结构以及联系的实现方式。

数据模型 2.1 数据模型概述 2.2 E-R数据模型 2.3 层次数据模型 2.4 网状数据模型 2.5 关系数据模型 2.6 面向对象数据模型 本章小结

2.1 数据模型概述 数据模型(Data Model)是对现实世界数据特征的抽象,是用来描述数据的一组概念和定义。 数据模型的分类: 现实世界中的客观对象抽象为概念模型; 然后把概念模型转换为DBMS支持的数据模型。 其转换过程如右图。 数据模型的分类: 概念数据模型(又称概念模型) 逻辑数据模型(又称数据模型) 现实世界 概念数据模型:信息世界 逻辑数据模型:DBMS支持的数据模型 认识抽象 转换

2.1.1 数据模型的基本组成 (1)数据结构 (2)数据操作 (3)数据的约束条件   数据模型是现实世界中的事物及其间联系的一种抽象表示,是一种形式化描述数据、数据间联系以及有关语义约束规则的方法。它通常由以下三个部分组成: (1)数据结构 它是指对实体类型和实体间联系的表达实现。 它是数据模型最基本的组织部分,规定了数据模型的静态特性。 (2)数据操作 是指对数据库进行的检索和更新两类操作。 (3)数据的约束条件 数据的约束条件是一组完整性规则的集合。   它定义了给定数据模型中数据及其联系应具有的制约和依赖规则。

2.1.2 数据模型的发展 20世纪60年代后期,在文件系统基础上发展起来的层次模型、网状模型和关系模型等传统数据模型; 20世纪70年代后期产生的E-R数据模型 ; 20世纪80年代以来又相继推出面向对象数据模型、基于逻辑的数据模型等新的模型。

2.2 E-R数据模型 2.2.1 基本概念 2.2.2 E-R图 2.2.3 扩充E-R数据模型

2.2.1 基本概念  E-R数据模型(即Entity-Relationship data model,实体-联系数据模型)是P. Chen(Peter Pin-Shan Chen)于1976年提出的一种语义数据模型。E-R数据模型不同于传统数据模型,它不是面向实现,而是面向现实世界。 1)实体(Entity) 实体是客观存在的且可以区别的事物。 2)联系(Relationship) 实体与实体间的关系抽象为联系。 (1)二元联系 只有两个实体参与的联系称为二元联系。     在二元联系中,E-R数据模型又把联系区分为一对一(1:1)、一对多(1:n)、和多对多(m:n)三种 。

二元联系 一对一(1:1)联系 一对多(1:n)联系 多对多(m:n)联系 若两个实体集中E1、E2中的每一个实体至多和另一个实体集中的一个实体有联系,则称E1和E2是一对一的联系,记为1:1。 例如,学校实体集与校长实体集间的联系是一对一联系。 一对多(1:n)联系 设两个实体集E1、E2,若E1中每一个实体与E2中任意个实体(包括零个)相联系,而E2中每个实体至多和E1中一个实体有联系,则称E1和E2是一对多的联系,记为1:n。  多对多(m:n)联系 设两个实体集E1、E2,若E1中每一个实体都和另一个实体集中任意个实体(包括零个)有联系,则称E1和E2是多对多的联系,记为m:n。 它们三者之间是包含关系。如右图所示。 m:n 1:n 1:1

数据联系的描述 (1:1)联系 (1:n)联系 (m:n)联系 实体集E1 实体集E2 实体集E1 实体集E2 实体集E1 实体集E2 E1 车间 工人 实体集E1 实体集E2 座位 E1 乘客 E2 (m:n)联系 实体集E1 实体集E2 E1 E2 学生 课程

多元联系与自反联系 (2)多元联系 (3)自反联系 在E-R数据模型中,二元联系这种表示方法还可推广到多元联系,即参与联系的实体个数n≥3。例如,三元联系也可区分1:1:1、1:1:p、1:n:p、m:n:p等联系。 (3)自反联系 表示同一个实体集两部分实体之间的联系,是一种特殊的二元联系。这两部分实体之间的联系也可以区分为1:1、1:n和m:n三种。 例如,在“人”这个实体集中存在夫妻之间的1:1联系;教师实体集中为了描述领导与被领导关系,可用1:n联系描述;在课程实体集中存在一门课程与另外一门或几门课程之间的预选课联系。

3)属性 实体或联系所具有的特征称为属性。 实体是由特征来表征和区分的,通常一个实体可以由多个属性来描述。例如,学生具有姓名、学号等属性。 一个实体可以有若干个属性,但在数据库设计中通常只选择部分数据管理需要的属性。 属性往往是不可再细分的原子属性,如姓名、性别等。 属性有型和值的区别。 例如,学生实体中的学号、姓名等属性名是属性型,而“021231142”、“李定”等具体数据称为属性值。 每个属性值都有一定的变化范围,通常称属性取值的变化范围为属性值的域。 例如,性别属性域是{男、女},年龄属性域是1~200。 能唯一标识实体集中某一实体的属性或属性组称为实体集的标识关键字或称关键字。

2.2.2 E-R图 E-R图是E-R数据模型的图形表示法,是一种直观表示现实世界的有力工具,目前E-R图已用于数据库的概念设计。 1)E-R图的表示方法 联系 属性 实体集名 上述提到的几种联系的E-R简图如下: 课程 预选 m n 校长 负责 学校 1 二元联系E-R简图  系部 聘任 教师 1 n 教师 教学 学生 m n 人 夫妻 1 自反联系E-R简图 教师 领导 1 n

2)E-R图的构成规则 (1)画出实体集及它们之间的联系 如果实体集A中实体之间有联系A-A,则实体间联系如下图: n A A-A m n  如果实体集A和实体集B之间有联系A-B,则实体间联系如下图: A A-B B 1 A A-B B 1 n A A-B B m n  如果三个实体集A、B、C之间有联系A-B-C,则实体间联系如下图: A A-B-C C 1 B A A-B-C C 1 p B A A-B-C C n p B 1 A A-B-C C n p B m

(2)画出实体集及联系的属性 用无向边把属性框连向与其相关的实体集或联系。 例如学校和教师实体集间存在聘任联系,联系有“聘任日期”属性,则一个描述学校和教师实体集及其联系的E-R图如下图所示。 学校 聘任 学校代码 学校名称 地址 聘任日期 教师 教师代码 教师姓名 性别 职称 1 n

2.2.3 扩充E-R数据模型 1)依赖联系和弱实体集 在现实世界中,某些实体集间还存在一种特殊的联系――依赖联系。 例如,在人事管理数据库中存放的职工实体集及其家庭成员实体集,前者以后者的存在为前提,家庭成员实体集依赖于职工实体集。这种依赖另一个实体集的存在而存在的实体集称为弱实体集,它们与其他实体集间的联系称为依赖联系,如右图所示。 职工 成员 家庭情况 1 n

2)子类和超类 为了进一步描述一个实体集中某些实体的不同特征,从该实体集中取出一部分实体构成一个(或多个)新的实体集,称这个新实体集是原实体集的子类,而原实体集是新实体集的超类。   例如,一个系部的职工实体集,为区分他们不同的工作特点,可分为教师、教辅人员及管理人员三个子类实体集。其EER数据模型实例如下图所示。 职工 职工代码 职工姓名 性别 教师 学校团体 行政级别 年龄 教辅人员 管理人员

3)聚集 在EER数据模型中,将联系视为参与联系的实体集组合而成新实体集,其属性为参与联系的实体的属性和联系的属性的并。这种新实体集称为聚集。这样联系也能以聚集的形式参与联系。 下图是应用聚集的例子。 科研项目 单位编码 教师代码 系名 教师 合同号 聘任日期 姓名 系部 聘任 承担 聚集

4)范畴 在描述现实世界时,有时要用到不同类型的实体组成的实体集,引入了范畴这一抽象概念。设E1、E2、…En是n个不同类型的实体集,则范畴T可定义为: 其中:E1、E2、…En称为T的超实体集。 例如,“银行账户”这个实体集的成员可能是单位,也可能是个人。 单位名 姓名 法人代表 个人 身份证号 单位 ∪ 地点 地址 ψ 银行 账号 开户 账户 m n

几个E-R事例 部门E-R

医院病房 管理E-R

图1 学生选课的局部E-R图 图2 教师任课的局部E-R图 系 系

教师 属于 讲授 1 m n 图3 合并的全局E-R图 系 学生 课程 开课 选修 拥有 1 m n

2.3 层次数据模型 2.3.1 基本概念和结构 2.3.2 数据操作 2.3.3 数据约束 2.3.4 层次数据模型的优缺点

2.3.1 基本概念和结构 层次模型是按照层次结构的形式组织数据库数据的数据模型,即用树型结构表示实体集与实体集之间的联系。 2.3.1 基本概念和结构 层次模型是按照层次结构的形式组织数据库数据的数据模型,即用树型结构表示实体集与实体集之间的联系。 其中用结点表示实体集,结点之间联系的基本方式是1:n。 1)记录和字段 记录是用来描述某个事物或事物间关系的命名的数据单位,也是存储的数据单位。 它包含若干字段。每个字段也是命名的,字段只能是简单的数据类型,例如整数、实数、字符串等。 例如:图(a)是一个名为系的记录。 图(b)是其一个实例。 系 系名 系号 系主任名 地点 图(a) 记录的型        图(b) 记录的一个实例 计算机系 9 李远 科技大楼

2)双亲子女关系(简称PCR) 这是层次数据模型中最基本的数据关系。它代表了两个记录型之间一对多关系(1:n)。 例如,一个系有多个班,就构成了如图(a)所示的双亲子女关系(即PCR型),在“1”方的记录型称为双亲记录,在“n”方的记录型称为子女记录。图(b)是其一个实例。 计算机系 计科0201班 计科0202班 计教0201班 系 班 1 n (a)PCR型 (b) 一个PCR实例

3)层次数据模式 利用PCR可以构成层次数据模式。 右图是一个层次数据模式的例子。 下图是层次数据模式的一个实例。 系 班 教研室 学生 教师 层次数据模式是一棵树,其数据结构特点为: 在每棵树仅有根结点无双亲。 除根结点外的任何结点有且有一个双亲结点,但可以有任意个子女结点。 树中无子女的结点称为叶结点。 计算机系 计科0201班 计科0202班 张三 李四 … 王五 李定 计教0201班 赵山 周英 硬件教研室 孙立 钱敏 软件教研室 胡恒 丁伟

4)层次序列和层次路径 (1)层次序列 (2)层次路径 由于存储器是线性的,层次数据模型采用树的先序遍历的次序(即从上向下、自左到右)作为存储次序。这样所生成的序列称为层次序列。上例中的层次数据模式的实例的层次序列如下图所示。 计算机系 计 科 0201 班 张三 … 李四 0202 王五 教 周英 硬件教研室 孙立 钱敏 软件教研室 胡恒 丁伟 计算机系 计科0201班 计科0202班 张三 李四 … 王五 李定 计教0201班 赵山 周英 硬件教研室 孙立 钱敏 软件教研室 胡恒 丁伟 (2)层次路径 层次路径是用来指明从层次数据模式的根结点到目标结点的一条查询路径,通常用从根结点到目标结点路径上每个记录值的排序关键字表示。

2.3.2 数据操作 1)数据查询 下面介绍3个查询操作命令。 (1)GU(Get Unique) 计算机系 计科0201班 计科0202班 张三 李四 … 王五 李定 计教0201班 赵山 周英 硬件教研室 孙立 钱敏 软件教研室 胡恒 丁伟 1)数据查询 在层次数据模型中,若要查找一个记录,须从根结点开始,按给定条件沿一个层次路径查找所需要的记录。 下面介绍3个查询操作命令。 (1)GU(Get Unique)  格式:GU<查询条件>  该命令执行的结果是查找出满足条件的第一个条件。  例如,GU 系(系名=’计算机系’),班(班名=’计科0202’),学生; (2)GNP(Get Next within Parent)  在当前记录的双亲下,按层次序列查找下一个满足条件的记录。  例如,查找计科0202班所有学生的记录的查询操作命令如下: GU 系(系名=’计算机系’),班(班名=’计科0202’),学生;/*找到记录王五*/ While not fail do GNP 学生;/*找到当前记录王五的双亲计科0202班的所有学生记录*/

从当前记录位置开始,按照层次序列,不受同一双亲的限制,查找当前记录的下一个满足条件的记录。 计算机系 计科0201班 计科0202班 张三 李四 … 王五 李定 计教0201班 赵山 周英 硬件教研室 孙立 钱敏 软件教研室 胡恒 丁伟 (3)GN(Get Next) 从当前记录位置开始,按照层次序列,不受同一双亲的限制,查找当前记录的下一个满足条件的记录。 例如,查找计科0202班和计教0201班的所有学生记录的查询操作命令如下: GU 系(系名=’计算机系’),班(班名=’计科0202’),学生; While not fail do GNP 学生;/*找到计科0202班的所有学生记录*/ GN 学生;  /*找到计教0201班的第一个学生记录,即学生赵山*/ While not fail do GNP 学生;/*找到计教0201班的所有学生记录*/ 可以看出,GNP和GN命令通常跟在GU命令后面使用,先由GU命令定位到层次模型中的某个记录,再用GNP和GN命令查询所需记录。

2)更新操作 (1)数据插入(INSERT) (2)数据删除(DELETE) (3)数据修改(REPLACE)  插入操作可先将插入数据写入系统I/O区,然后指定一个由根记录开始的插入层次路径,完成数据的插入操作。 (2)数据删除(DELETE)  删除操作是先用查询命令将待删除的记录定位为当前记录,再DELETE命令完成删除任务。当删除一个记录时,则其所从属的所有子女记录都被删除。 (3)数据修改(REPLACE)  先用查询语句将要修改的记录定位为当前记录,并将该记录读到I/O区,在I/O区对数据进行修改,然后用REPLACE命令可将修改后的记录值写回到数据库中。

2.3.3 数据约束 层次数据模型的数据约束主要是由层次结构的约束造成的。 (1)除了根结点外,任何其他结点不能离开其双亲结点而孤立存在。 这条约束表明了在插入一个子女记录时,必须与一个约束双亲记录相联系,否则不能插入;在删除一个记录时,其子女记录也将自动被删除。这一约束为数据操作造成了不便。 (2)层次数据模型所体现的记录之间的联系只限于二元1:n或1:1的联系,这一约束了用层次模型描述现实世界的能力。 对于现实世界中存在的二元m:n联系和多元m:n:p等复杂联系,就不能用层次模型直接进行表达了。通常采用下列的分解法或虚拟记录法来解决这一问题。

分解法 例如,学生记录型和课程记录型是一个m:n联系,将无法用层次模型直接表达学生与课程之间的多对多联系。 可以采用分解的方法,把一个二元m:n联系分解成两个二元1:n联系。 学生 课程 张三 网络安全 李四 数据库 王五 (a) m:n联系的型与实例 学生 课程 张三 网络安全 李四 数据库 王五 (b) 按学生进行分解的型与实例 (c) 按课程进行分解的型与实例 课程 学生 李四 网络安全 张三 王五 数据库

虚拟记录法 由上可以看出,这种分解法会导致大量的存储数据冗余。为了减少分解所带来的数据冗余,可以采用虚拟记录法(IMS系统所采用的方法)。 虚拟记录法是在数据库中,如果有一个记录x要在多处被引用,则只存储一份这样的记录,其他需要引用的地方用其指针代替。这种用指针代替的记录称为虚拟记录,记为V.x。右图表示学生和课程间的m:n联系。 学生 (课程)v 课程 (学生)v (3)由于层次结构中的全部记录都是以有序树的形式组织起来,当对某些层次结构进行修改时,不允许改变原数据库中记录类型之间的双亲子女联系,这使得数据库的适应能力受到限制。 (4)虚拟记录的指针必须指向一个实际存在的记录。有虚拟记录指向的记录不得删除。 (5)虚拟记录不能为根记录。

2.3.4 层次数据模型的优缺点 层次数据模型的优点主要有: 层次数据模型的缺点主要有: 层次模型结构简单、层次分明,便于在计算机内实现。 2.3.4 层次数据模型的优缺点 层次数据模型的优点主要有: 层次模型结构简单、层次分明,便于在计算机内实现。 在层次结构中,从根结点到树中任一结点均存在一条唯一的层次路径,这为有效地进行数据操纵提供了条件。 在层次结构中除根结点外所有结点有且只有一个双亲结点,故实体集之间的联系可用双亲结点唯一地表示,因此层次模型DBMS对层次结构的数据有较高的处理效率。 层次数据模型提供了良好的完整性支持。 层次数据模型的缺点主要有: 层次数据模型缺乏直接表达现实世界中非层次型结构的复杂联系,如多对多联系。 对插入或删除操作有较多的限制。 查询子女结点必须通过双亲结点。 计算机系 计科0201班 计科0202班 张三 李四 … 王五 李定 计教0201班 赵山 周英 硬件教研室 孙立 钱敏 软件教研室 胡恒 丁伟

2.4 网状数据模型 2.4.1 基本概念和结构 2.4.2 数据操作 2.4.3 数据约束 2.4.4 网状数据模型的优缺点

2.4.1 基本概念和结构 为了克服层次模型结构描述非层次型事物的局限,20世纪60年代末美国CODASYL委员会提出了网状数据模型。 2.4.1 基本概念和结构 为了克服层次模型结构描述非层次型事物的局限,20世纪60年代末美国CODASYL委员会提出了网状数据模型。 1)记录与数据项(Data Items)   与层次数据模型类似,在网状数据模型中,也是以记录为数据的存储单位。记录包含若干数据项,数据项相当于字段。 但与层次数据模型中的字段不同,网状数据模型中的数据项不一定是简单的数据类型,也可以是多值的和复合的数据。 2)系(Set) 在网状数据模型中,数据间的联系用系表示。 简单的网状结构 班级 学生 1 社团 n S1 S2 系代表了两记录之间的1:n联系,系用一条弧表示,箭头指向“n”方。“1”方的记录称首记录,“n”方的记录称属记录。右图是简单网状结构的例子。

3)系型 (1)单属系型 (2)多属系型 由主记录型和单一的属记录组成。 例如班级记录型和学生记录型组成的班级-学生系是单属系型。 计科0201班 张三 李四 王杰 (2)多属系型 该系型中包含三个以上记录型,其中一个为首记录型,其余为属记录型。 例如,在学校中有教师和职工,他们有不同的记录结构可形成两个记录类型。当建立一个学校――教职工系型时,可将教师记录型和职工记录型作为学校的两个属记录型。如右图。 多属系型 教师 学校 职工 (3)奇异系型 这是一种只有属记录型而无首记录型的一种特殊系型。 一个单位的所有部门可以组成一个无首记录型的奇异系型。 部门

4)联系记录 但对于二元m:n联系、和多元m:n:p联系也不能直接用系来表示,而是采用联系记录这个辅助数据结构,来将实体集间的m:n联系转换成两个1:n联系。   例如学生记录与课程记录之间的m:n联系可通过引入联系记录――学生选课记录,将其转换为两个1:n联系。如下图所示。 张三 李四 C语言 网络安全 选课1 选课2 选课3 选课4 SL 数据库 CL 学生 课程 m n m:n联系    型        值 学生 课程 1 m 学生选课 SL n CL

由于网状数据模型中规定,一个记录型不能在一个系中既作为系的首记录又作为系的属记录,即系不能直接用来表示一个记录型的自身联系。我们通常可采用增加联系记录的方法来解决。 例如,职工间的领导关系可以表示成一个环,如图(a)所示,增加一个联系记录型――领导记录,该记录存放领导职务等信息,从而形成两个系类型S1、S2,如图(b)所示。 (a) (b) 环结构的表示 职工 1:n 领导 1:1 S1 S2

2.4.2 数据操作 1)查询操作 查询操作主要是通过查询语句FIND和取数语句GET配合使用实现的。 计科0201班 张三 李四 王杰 1)查询操作 查询操作主要是通过查询语句FIND和取数语句GET配合使用实现的。 FIND语句主要是查找定位数据库中满足条件的记录为当前记录。 GET语句主要是将当前记录取出来供应用程序使用。 (1)利用关键字查询 根据记录中的一个或多个数据项来查询某个记录。其格式如下: FIND 记录名 RECORD VIA 系名 SET USING 数据项 (2)导航式查询 根据系值环形链上的指针,沿着环形链一个记录值接一个记录值地进行查询,直至找到欲查询的记录。其格式如下: FIND FIRST/LAST/NEXT/PRIOR/N 记录名 RECORD WITHIN 系名 (3)利用当前值查询 利用当前值查询可以快速地查出刚访问过的某个记录。其格式为: FIND CURRENT OF 记录名 RECORD 或 FIND CURRENT OF 系名 SET

2)更新操作 网状数据模型的更新操作分为对记录的更新和对系的更新两类。 (1)对记录的更新 (2)对系的更新 插入操作(STORE):存储一个记录到数据库中,并按插入系籍的约束,加入有关的系值中。 修改操作(MODIFY):修改指定记录中的数据项。 删除操作(ERASE):从数据库中删除指定记录。 (2)对系的更新 CONNECT(加入):把属记录加入到相应的系值中。 RECONNECT(转接):把属记录从原系值转移到另一个指定的系值中。 DISCONNECT(撤离):把属记录从其所在的系值中撤离,但该记录仍保留在数据库中。

2.4.3 数据约束 (1)一个记录值不能出现在同一个系型的多个系值中。 (2)一个记录型不能同时为同一个系的首记录和属记录。 (3)任一个系值有且仅有一个首记录值,但可以有任意个属记录值。 (4)每个系型有且仅有一个首记录型,但可以有多个属记录型,且属记录型必须至少有一个。 张三 李四 C语言 网络安全 数据库 张三 李四 C语言 网络安全 选课1 选课2 选课3 选课4 SL 数据库 CL (a) (b) 职工 1:n 领导 1:1 S1 S2

2.4.4 网状数据模型的优缺点 网状数据模型的优点主要有: 网状数据模型的缺点主要有: 能够更为直接地描述现实世界。 具有存取效率高等良好性能。 网状数据模型的缺点主要有: 数据结构比较复杂,不便于终端用户掌握。 其数据定义语言(DDL)、数据操作语言(DML)较为复杂,用户掌握使用较为困难。 数据独立性较差。

2.5 关系数据模型 2.5.1 基本概念 2.5.2 关系数据模型的数据结构 2.5.3 数据操作 2.5.4 数据约束 2.5.5 关系数据模型的优缺点

2.5.1 基本概念 1)属性和域 2)关系和元组 3)键 在现实世界中,要描述一个事物,常常取其若干特征来表示。这些特征称为属性。 2.5.1 基本概念 1)属性和域   在现实世界中,要描述一个事物,常常取其若干特征来表示。这些特征称为属性。   例如,大学生可用姓名、学号、性别、系别等属性来描述。   每个属性对应一个值的集合,作为其可以取值的范围,称为属性的域。   例如姓名的域是所有合法姓名的集合;性别的域是{男,女}等。 2)关系和元组 一个对象可以用一个或多个关系来表示。关系就是定义在它的所有属性域上的多元关系。设为R,它有属性A1、A2、…、An,其对应的域分别为D1、D2、…、Dn,则关系R可表示为: R=(A1/D1,A2/D2,…,An/Dn) 或R=(A1,A2,…,An) 元组是关系中各个属性的一个取值的集合。 3)键 关系中的某一属性或属性组的值唯一地决定其他所有属性的值,也就是唯一决定一个元组,而其任何真子集无此性质,则称这个属性或属性组为该关系的候选键,简称键。

2.5.2 关系数据模型的数据结构 1)关系数据模型的描述功能 (1)用二维表格表示实体集及其属性 设实体集R有属性A1、A2、…、An,实体集的型可用一个二维表的框架表示。见表(a)。表中每一元组表示实体集的值,见表(b) A1 A2 A3 … An a11 am1 a12 am2 a13 am3 a1n amn A1 A2 A3 … An   (a)关系R的型      (b)关系R的值 学号 姓名 年龄 性别 系部号 S1 程宏 19 男 9 S2 王盟 20 女 S3 刘莎莎 18 10 学生情况表

(2)用二维表描述实体集间的联系 关系模型不仅可用二维表表示实体集,而且可用二维表描述实体集间的联系。 例如,在图书管理中经常用“借书人统计表”和“图书登记表”如下表所示。 姓名 借书证号 单位 张三 10001 计算机系 刘一 10002 自动化系 …   总编号 分类号 书名 作者 200001 TP101 数据库导论 C.J.DATE 400002 TP102 自动化理论 周明德 …   由于借书人与图书之间是m:n联系,在前面用层次模型或网状模型将是一项复杂的事情。在这里用二维表――“借书登记表”来表示借书人和图书两个实体集之间的联系则十分简便,如下表所示。 借书证号 总编号 借阅日期 10001 200001 2003.9.1 400002 10002 2003.10.9   …

2)关系的性质 关系是一个简单的二维表,其主要性质为: 关系是一个二维表,表中的每一行对应一个元组,表中的每一列有一个属性名且对应一个域。 学号 姓名 年龄 性别 系部号 S1 程宏 19 男 9 S2 王盟 20 女 S4 李刚 10 关系是一个简单的二维表,其主要性质为: 关系是一个二维表,表中的每一行对应一个元组,表中的每一列有一个属性名且对应一个域。 列是同质的,即每一列的值来自同一域。 关系中的每一个属性是不可再分解,即所有域都应是原子数据的集合。 关系中任意两个元组不能完全相同。 关系中行的排列顺序、列的排列顺序是无关紧要的。 每个关系都有关键字的属性集唯一标识各个元组。

3)关系模式 关系模式是关系中信息内容结构的描述。 它包括关系名、属性名、每个属性列的取值集合、数据完整性约束条件以及各属性间固有的数据依赖关系等。可以表示为: R(U,D,DOM,I,∑) 其中:R为关系名;U为组成关系的全部属性的集合;D是U中属性取值的值域;DOM是属性列到域的映射,即DOM:U→D;I是一组完整性约束条件;∑是属性集间的一组数据依赖。 通常,可用R(U)来简化地表示关系模式。 例如,描述大学生的关系模式表示为: STUDENT(学号,姓名,性别,年龄,所在系,籍贯,入学年份)

2.5.3 数据操作 1)关系代数 (1)传统的集合运算 (2)专门的关系运算 2)关系演算 关系代数是由一组以关系作为运算对象的特定的关系运算所组成,用户通过这组运算对一个或多个关系进行“组合”与“分割”,从而得到所需要的新关系。 关系代数又分为传统的集合运算和专门的关系运算。 (1)传统的集合运算 主要包括并运算、差运算、交运算和笛卡儿乘积运算等。 (2)专门的关系运算 包括选择运算、投影运算、连接运算、自然连接运算、半连接运算、自然半连接运算和除运算等。 其中:{σ,Π,∪,-, ×}五种运算为关系代数的基本运算,组成了一个完备的操作集,任何其他关系代数操作都可以用这五种操作来表示。 2)关系演算 除了用关系代数表示关系操作外,还可以用谓词演算来表达关系的操作,称为关系演算。关系演算又可分为元组关系演算和域关系演算。

2.5.4 数据约束 1)域完整性约束 域完整性约束限定了属性值的取值范围,并由语义决定一个属性值是否允许为空值NULL。 学号 姓名 年龄 性别 系部号 S1 程宏 19 男 9 S2 王盟 20 女 S4 李刚 11 学生情况表 系部号 系名 系主任 地点 9 计算机系 李远 科技大楼 10 电子系 张立 电子大楼 院系情况 2)实体完整性约束 每个关系应有一个主键,每个元组的主键的值应是唯一的。主键的值不能为NULL,否则无法区分和识别元组。 3)参照完整性约束 参照完整性约束是不同关系间的约束,当存在关系间的引用时,要求不能引用不存在的元组。

2.5.5 关系数据模型的优缺点 1)关系数据模型的优点 2)关系数据模型的缺点 : 关系模型有坚实的理论基础。 在关系模型中,二维表不仅能表示实体集,而且能方便地表示实体集间的联系。 关系数据模型中数据的表示方法统一、简单,便于计算机实现,使用用户使用。 数据独立性高。 2)关系数据模型的缺点 : 关系数据模型的主要缺点是查询效率常常不如非关系数据模型。 关系数据模型等传统数据模型还存在不能以自然的方式表示实体集间的联系、语义信息不足、数据类型过少等弱点。 因此自20世纪80年代后期以来,陆续出现了以面向对象数据模型为代表的新的数据模型。

2.6 面向对象数据模型 2.6.1 对象和对象标识符 2.6.2 属性和方法 2.6.3 封装和消息传递 2.6.4 类和实例 面向对象数据模型(Object-Oriented Data Model,简称OO数据模型)是面向对象程序设计方法与数据库技术相结合的产物,用以支持非传统应用领域对数据模型提出的新需求。 2.6.1 对象和对象标识符 2.6.2 属性和方法 2.6.3 封装和消息传递 2.6.4 类和实例 2.6.5 类层次结构和继承 2.6.6 持久性和版本 2.6.7 多态、重载、重定义与动态联编 2.6.8 与关系数据模型的比较

2.6.1 对象和对象标识符 1)对象 在面向对象数据模型中,所有现实世界中的实体都模拟为对象,小至一个整数、字符串,大至一个公司、一部电影,都可以看成对象。 2)对象标识符 在OO数据模型中,每个对象都有一个系统内唯一不变的标识符,称为对象标识符(OID)。 OID一般是由系统产生,用户不得修改。OID是区别对象的唯一标志,与对象的属性值无关。 如果两对象的属性值和方法一样,但OID不同,则仍认为是两个“相等”而不同的对象。 如果一个对象的属性值修改了,只要其标识符不变,则仍认为是同一对象。 因此,OID可看成是对象的替身,以构造更复杂的对象。

2.6.2 属性和方法 1)属性 2)方法 除了属性外,对象还包含若干方法,用以描述对象的行为特性。 2.6.2 属性和方法 学生 学号 班级 专业 … 选课 1)属性 每个对象包含若干属性,用以描述对象的状态、组成和特性。 属性也是对象,它又可能包含其他对象作为其属性。这种递归引用对象的过程可以继续下去,从而组成各种复杂的对象。右图是一个事例: CPU 主板 计算机 A 2)方法 除了属性外,对象还包含若干方法,用以描述对象的行为特性。 方法又称为操作,它可以改变对象的状态,对对象进行各种数据库操作。方法的定义与表示包含两个部分: 一是方法的接口,说明方法的名称、参数和结果的类型; 二是方法的实现部分,是用程序编写的一个过程,以实现方法的功能。 一个对象一般是由一组属性、一组方法,再冠以一个OID组成。

2.6.3 封装和消息传递 1)封装 在OO数据模型中,系统把一个对象的属性和方法封装成一个整体。 对象的封装性体现在以下几个方面: 对象具有清晰的边界; 对象具有统一的外部接口; 对象的内部实现是不公开的。 对象标识符 属性1 … 属性n 方法1 方法m 消息(调用) 消息(结果) 2)消息传递 对象是封装的,对象与外界、对象之间的通信一般只能借助于消息。消息传送给对象,调用对象的相应方法,进行相应的操作,再以消息形式返回操作的结果。这种通信机制称为消息传递。 对象i 属性1 … 属性n 方法1 方法m 对象j 消息(调用) 消息(结果) 消息一般由操作者、接收者、操作参数三个部分组成。对象、消息之间的关系如右图所示。

2.6.4 类和实例 1)类 2)实例 3)元类 类是具有共同属性和方法的对象的集合,这些属性和方法可以在类中统一说明。 学生 研究生 本科生 1)类 类是具有共同属性和方法的对象的集合,这些属性和方法可以在类中统一说明。 同类对象在数据结构和操作性质方面具有共性。 例如大学生、研究生是一些有共同性质有对象,可能抽象为一个学生类。 2)实例 类中每个对象称为该类的一个实例。 同一个类中对象的属性名虽然是相同的,但这些属性的取值会因各个实例而异。 S1 程宏 19 计算机 学生 学号 姓名 年龄 籍贯 … 3)元类 在一些OO数据模型中,把类也看做对象,因此由类可以组成新的类。这种由类组成的类称为元类,元类的实例是类。 籍贯 省 市 …

2.6.5 类层次结构和继承 1)类层次结构 在类层次结构中,一个类的下层可以是多个子类;一个类的上层也可以有多个超类。下图是一个类学校层次结构的例子。 学校人员 类层次结构 学校人员 学生 教职工 子类与超类 学生 研究生 本科生 教职工 教师 职员 工人 教师 研究生 在职研究生 在职研究生 教授 讲师 助教

2)继承 在类继承时,可能发生属性名和方法名的同名冲突: (1)各超类之间的冲突 (2)子类与超类之间的冲突 学校人员 姓名 … 在职研究生 学号 班级 研究专业 职称 专业 在职单位 研究生 学号 班级 专业 … 教职工 职称 在职研究生 在职单位 … 在类继承时,可能发生属性名和方法名的同名冲突: (1)各超类之间的冲突 (2)子类与超类之间的冲突

2.6.6 持久性和版本 1)持久性 2)版本 持久性是指对象的生成期超过所属程序的执行期。 即当一个程序在执行过程中产生了一个持久性的对象,则在程序执行结束后,此对象依然存在。 持久性程序设计为面向对象数据库、计算机辅助软件工程(CASE)等提供支持。 2)版本 由于每个对象都包含一组属性并具有相应的属性值,当为属性指定一组新值时,就建立了一个新的版本。 因此,同一对象可产生多个不同的版本。 对象的版本概念为CAD/CAM、工程数据库、OODB、多媒体数据库、CASE技术提供重要支持。

2.6.7 多态、重载、重定义与动态联编 1)多态(一名多义) 2)重载(一名多用) 3)重定义 4)动态联编 类的方法有相同的接口表示,但允许有不同的多种内部实现,这种情况称为方法的多态。 2)重载(一名多用) 在类继承结构中子类继承超类的方法,这种继承往往有多态性,即子类仅继承超类的接口表示,但它用自己的实现手段,这种情况称为方法重载。 3)重定义 子类属性、方法可以替换成与超类不一致的能力称为重定义功能。便于提高属性、方法的灵活性。 4)动态联编 方法的多态性和方法重载在计算机中采用动态联编的方法来实现,即在应用程序执行到一定阶段后才与方法联编。

2.6.8 与关系数据模型的比较 在关系数据模型中基本数据结构是表,这相当于OO数据模型中的类;而关系中的数据元组相当于OO数据模型中的实例。 在关系数据模型中,对数据库的操作都归结为对关系的运算,而在OO数据模型中,对类层次结构的操作分为两部分: 一是封装在类内的操作即方法;二是类间相互沟通的操作即消息。 在关系数据模型中有域、实体和参照完整性约束,完整性约束条件可以用逻辑公式表示,称为完整性约束方法。在OO数据模型中这些用于约束的公式可以用方法或消息表示,称为完整性约束消息。

本章小结 数据模型是对现实世界进行抽象的工具,用于描述现实世界的数据、数据联系、数据语义和数据约束等的方面的内容。E-R模型是最常用的概念模型,关系模型是当前的主流模型,面向对象(OODB)是今后发展的方向。  下面以前面的学生成绩管理为例,来对本章的E-R模型、层次数据模型、网状数据模型、关系数据模型、面向对象数据模型进行总结。

E-R模型 m:n联系 学生实体 课程实体 E-R图 学号 姓名 性别 年龄 所在系 学生 课程 m n 学生 课程 选修 m n 成绩 课程号 课程名 所在系 学分 学生实体 学号 姓名 年龄 性别 所在系 S1 程宏 19 男 计算机 S9 王敏 20 女 课程实体 课程号 课程名 学分 C1 计算机基础 3 C2 C语言

图1 学生选课的局部E-R图 图2 教师任课的局部E-R图 系 E-R合并

E-R合并 教师 属于 讲授 1 m n 图3 合并的全局E-R图 系 学生 课程 开课 选修 拥有 1 m n

教师管理 局部E-R图

学生管理 局部E-R图 导师 班级 学生 组成 管理 班主任 档案材料 宿舍 住宿 归档 指导 系 有 参加 学会 具有 社会关系 1 N M 具有 社会关系

课程管理 局部E-R图 1 教室 M 教科书 教师 担任 课程 系 开设 N 学生 选修 MN 上课 P

三个局部ER图合并成一个ER图 社会关系 系 项目 院长 学院 教师 职称 工作量 档案材料 学会 宿舍 教科书 课程 教室 班级 学生 1 N P M 社会关系 具有 系 聘用 承接 项目 参加 设置 院长 学院 主管 教师 评定 职称 分配 工作量 档案材料 归档 学会 宿舍 住宿 教科书 担任 指导 课程 选修 教室 上课 有 班级 学生 组成 开设 管理

层次数据模型 (分解法) 按课程进行分解 按学生进行分解 m:n联系 S1 程宏 19 男 计算机 C1 计算机基础 3 S9 王敏 20 女 C2 C语言 按课程进行分解 课程 学生 m:n联系 学生 课程 m n S1 程宏 19 男 计算机 C1 计算机基础 3 C2 C语言 S9 王敏 20 女 按学生进行分解 学生 课程

层次数据模型 (虚拟记录法) 虚拟记录法 m:n联系 学生 (课程)v 课程 (学生)v 学生 课程 m n S1 程宏 19 男 计算机 PS1 PS2 S1 程宏 19 男 计算机 S9 王敏 20 女 计算机 PC1 PC2 C1 计算机基础 计算机 3 C2 C语言 

网状数据模型 m:n联系 值 型 S1 程宏 19 男 计算机 S9 王敏 20 女 学生 课程 m n 学生 课程 C1 计算机基础 SL 值 m:n联系 学生 课程 m n 选课1 选课2 选课3 CL 学生 课程 型 C1 计算机基础 计算机 3 C2 C语言 1 m 学生选课 SL n CL

关系数据模型 学生情况表 成绩表 课程情况表 学号 姓名 年龄 性别 所在系 S1 程宏 19 男 计算机 S9 王敏 20 女 选修 m n 成绩 学号 姓名 性别 年龄 所在系 课程号 课程名 学分 学生 课程 学号 课程号 成绩 S1 C1 88 C2 76 S9 83 78 成绩表 课程情况表 课程号 课程名 所在系 学分 C1 计算机基础 计算机 3 C2 C语言

面向对象数据模型 学生类 学号 姓名 年龄 性别 所在系 … 课程类 课程号 课程名 学分 选课类 成绩 *

面向对象数据模型的概念 对象:由一组变量、消息和方法组成 类:本质相同的对象的抽象 继承性:类的子类继承父类的所有性质 1.一个对象 对象:由一组变量、消息和方法组成 类:本质相同的对象的抽象 继承性:类的子类继承父类的所有性质 对象标识:OID,唯一标识对象 对象包含:一个对象由几个对象组成,则该对象包含它的成员对象 person customer employee officer teller secretary 3. 类继承层次图 2.对象、对象和实体间的对应关系以及对象和外界的联系 对象 属性1 属性2 方法 消息 实体 飞机 引擎 机身 5. 对象之间的包含层次 尾翼 机翼 person faculty faculty_student student 4. 多重继承性层次