560 likes | 824 Views
数据库原理. 授课教师:王哲. 第一章:绪论. 学习目标: 熟悉数据库及相关概念 熟悉数据模型 了解数据库系统结构. 复习上节课内容. 1 、课程介绍 2 、认识数据库 数据库的应用范围 什么是数据库 常见的数据库管理系统 数据库的操作方式 数据库技术的产生和发展. 第二部分:深入了解数据库. 数据库是长期储存在计算机内、 有组织的 、可共享的大量相关数据的集合。 数据库中的数据是按一定的 数据模型 组织、描述和存储。 现有的数据库系统均是基于某种数据模型的。. 主要内容. 模型 数据模型 基础知识 概念模型 层次模型 网状模型
E N D
数据库原理 授课教师:王哲
第一章:绪论 学习目标: 熟悉数据库及相关概念 熟悉数据模型 了解数据库系统结构
复习上节课内容 • 1、课程介绍 • 2、认识数据库 • 数据库的应用范围 • 什么是数据库 • 常见的数据库管理系统 • 数据库的操作方式 • 数据库技术的产生和发展
第二部分:深入了解数据库 • 数据库是长期储存在计算机内、有组织的、可共享的大量相关数据的集合。 • 数据库中的数据是按一定的数据模型组织、描述和存储。 • 现有的数据库系统均是基于某种数据模型的。
主要内容 • 模型 • 数据模型 • 基础知识 • 概念模型 • 层次模型 • 网状模型 • 关系模型
一、模型 • 一张地图,一个汽车模型,一个精致的航模飞机以及一组建筑设计沙盘都是具体的模型。所以,对于模型,一眼望去,就会使人联想到真实生活中的事物。 • 模型是对现实世界的模拟和抽象。 • 数据模型是现实世界中数据特征的抽象。
二、数据模型 • 数据模型应满足三方面要求 • 能比较真实地模拟现实世界 • 容易为人所理解 • 便于在计算机上实现 • 数据模型组成要素 • 数据结构 • 数据操作 • 完整性约束条件
数据模型 • 数据模型的定义: 数据库中的数据是按一定的方式存储在一起的,其组织结构又称为数据模型,它决定了数据库中数据之间联系的表达方式。 • 数据模型的分类: 一种是独立于计算机系统,是现实世界的抽象,也是用户和数据库设计人员交流的工具,即“概念数据模型”; 另一种则是直接涉及到计算机系统和数据管理系统的数据模型,称为“基本数据模型”(逻辑模型和物理模型).
现实世界 认识 抽象 概念模型 信息世界 DBMS支持的数据模型 机器世界 现实世界中客观对象的抽象过程
1、概念数据模型 • 完全不涉及信息在计算机系统的表示。 • 目前描述概念模型最常用的方法是实体-联系(Entity-Relationship)方法,即E-R方法,使用的工具称为E-R图。 • E-R图所描述的现实世界的信息结构称为实体-联系模型( E-R模型)。
数据 数据 数据 数据 数据 数据 数据 数据 数据 数据 数据 数据 数据 2、基本数据模型 • 直接面向数据库的逻辑结构,例如层次、网状、关系等模型。 • 有严格的形式化定义,以便于在计算机系统中实现。 • 有严格定义的语法和语义的数据库语言,人们可以用这些语言来定义操纵数据库中的数据。 层次模型 网状模型 关系模型
基本数据模型 • 非关系模型 • 层次模型(Hierarchical Model) • 网状模型(Network Model) • 关系模型(Relational Model) • 面向对象模型(Object Oriented Model) • 对象关系模型(Object Relational Model)
数据管理技术进入数据库阶段的标志是60年代末的三件大事:数据管理技术进入数据库阶段的标志是60年代末的三件大事: • 1968年美国IBM公司推出层次模型的IMS系统; • 1969年美国CODASYL组织发布了DBTG报告,总结了当时各式各样的数据库,提出网状模型; • 1970年美国IBM公司的E.F.Codd连续发表论文,提出关系模型,奠定了关系数据库的理论基础。
1.1 概念模型的表示方法 • 实体-联系方法(E-R方法) • 用E-R图来描述现实世界的概念模型 • E-R方法也称为E-R模型
联系 属性 实体 1)E-R图 • 包括了实体、属性和联系3种基本图素。 • 实体用矩形框表示,属性用椭圆形框表示,联系用菱形框表示,实体与属性与联系之间用无向直线连接。
2)三个基本图素介绍 • 实体通常是客观存在并且可以互相区分的事物。可以是实际的事务,如一名学生、一本书等;也可以是抽象的事件,如一场比赛、一个创意等。 • 属性是描述对象的某个特性。如:关于学生的学号、姓名、性别、出生日期、籍贯等属性来描述;关于竞赛实体可用竞赛名、时间、地点、竞赛者、举办方等属性来描述。 • 联系是实体间的相互关系。他反映了客观事物间相互依存的状态。
3)实体间的联系 • 实体集之间存在各种关系,通常把这些关系称为“联系”。 • 例如一个班只能有一个正班长,反之一个正班长也只能在一个班级中任职,因此是“一对一”的关系。 • 例如一个班级中有若干名学生,每个学生只在一个班级中学习,因此是“一对多”的关系。 • 例如“学生”与“图书”有“借阅”关系,由于一个学生可借多本书,而一本书可被多个学生借阅,所以,学生和图书的“借阅”关系是“多对多”的关系。
实体型A 实体型A 实体型A m 1 1 联系名 联系名 联系名 n n 1 实体型B 实体型B 实体型B m:n联系 1:1联系 1:n联系 两个实体型之间的联系 用图形来表示两个实体型之间的这三类联系
(1)一对一的联系(1∶1) • A中的一个实体至多与B中的一个实体相联系,B中的一个实体也至多与A中的一个实体相联系。如厂长管理工厂、班级和正班长、学校和校长等关系。
性别 年龄 姓名 入厂时间 厂长 1 管理 1 工厂 地址 厂名 厂龄
人数 班级号 班级名称 班主任 班级 1 包括 N 学生 学号 性别 姓名 (2)一对多的联系(1∶N) • A中的一个实体至多与B中的多个实体相联系,B中的一个实体也至多与A中的一个实体相联系。如例如:“班级”与“学生”这两个实体集之间的联系是一对多的联系。
性别 姓名 学号 专业 学生 M 选修 N 课程 课程号 学分 课程名 (3)多对多的联系(M∶N) • A中的一个实体至多与B中的多个实体相联系,B中的一个实体也可以与A中的多个实体相联系。如例如: “学生” 与“课程”或者“学生” 与“图书”。
课程 供应商 1 m 讲授 供应 m n n p 教师 参考书 项目 零件 两个以上实体型间1:n联系 两个以上实体型间m:n联系 两个以上的实体型之间的联系 两个以上的实体型内的各实体之间也可以存在一对一, 一对多,多对多的联系 。
职工 实体型1 1 m n n 领导 联系名 单个实体型内部1:n联系 单个实体型内的m:n联系 单个实体型内的联系 同一个实体型内的各实体之间也可以存在一对一, 一对多,多对多的联系 。
4)E-R图实例 • 例题1:已知学生实体具有学号、姓名、性别、班级号与年龄属性,班级实体具有班级号、班级名、人数、教室与所属学院属性,试画出它们的E-R图,并建立其间的联系。1、建立两个实体与属性的联系2、建立实体间的联系
班级号 学号 班级名 姓名 学生 属于 班级 人数 N 1 性别 教室 年龄 学院 班级号
例题2:用E-R图表示某个工厂物资管理的概念模型例题2:用E-R图表示某个工厂物资管理的概念模型 • 实体 • 仓库: 仓库号、面积、电话号码 • 零件 :零件号、名称、规格、单价、描述 • 供应商:供应商号、姓名、地址、电话号码、帐号 • 项目:项目号、预算、开工日期 • 职工:职工号、姓名、年龄、职称
实体之间的联系如下: (1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。 (2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系 (3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员。 (4)供应商、项目和零件三者之间具有多对多的联系
2、层次模型 • 层次模型是数据库系统中最早出现的数据模型。 • 1968年,美国IBM公司推出的IMS(Information Management System)系统是最典型的层次数据结构,20世纪70年代在商业上得到了广泛应用。 • 层次模型用树形结构来表示各类实体以及实体间的联系。
1)层次模型的数据结构 • 满足下面两个条件的基本层次联系的集合为层次模型 1. 有且只有一个结点没有双亲结点,这个结点称为根结点(根唯一) 2. 根以外的其它结点有且只有一个双亲结点(双亲唯一) • 这就使得层次数据库系统只能处理一对多的实体关系。 • 层次模型中的几个术语 • 根结点,双亲结点,兄弟结点,叶结点
1 R 根结点 2 3 R 兄弟结点 R 叶结点 4 5 R 兄弟结点 R 叶结点 叶结点 根结点:没有双亲结点 兄弟结点:同一双亲的子女结点 叶结点:没有子女结点 图1.16 一个层次模型的示例
层次模型的特点: • 结点的双亲是唯一的 • 只能直接处理一对多的实体联系 • 任何记录值只有按其路径查看时,才能显出它的全部意义 • 没有一个子女记录值能够脱离双亲记录值而独立存在
教员学生层次数据库模型 图1.17 教员学生层次数据库模型 根结点 系的子女结点 教员的双亲结点 叶结点
教员学生层次数据库模型 图1.18 教员学生层次数据库的一个值
2)层次模型的相关约束 • 层次模型的数据操纵 • 查询,插入,删除,更新 • 层次模型的完整性约束条件 • 无相应的双亲结点值就不能插入子女结点值 • 如果删除双亲结点值,则相应的子女结点值也被同时删除 • 更新操作时,应更新所有相应记录,以保证数据的一致性
3)层次模型的优缺点 • 优点:结构简单,易于实现;查询效率高。 • 缺点: 不能表示两个以上实体型之间的复杂联系和实体型之间的多对多的联系;数据操纵不方便。子结点的存取只能通过父结点来进行。插入、删除复杂,父结点的删除导致子结点的删除,丢失必要的信息。
3、网状模型(network model) • 网状模型与层次模型的最大区别在于两个结点之间的联系可以不唯一,因此要为每个联系命名。 • 网状数据模型的典型代表是DBTG系统,由美国数据系统研究会CODASYL下属的一个数据库任务组DBTG提出(Data Base Task Group),对网状数据库的开发和发展起了重大影响。
网状模型与层次模型的区别: • 网状模型可以更直接地去描述现实世界 • 层次模型实际上是网状模型的一个特例 • 网状模型允许多个结点没有双亲结点 • 网状模型允许结点有多个双亲结点 • 网状模型允许两个结点之间有多种联系(复合联系)
网状数据模型特点: • 多根:允许一个以上的结点无双亲 • 多父:一个结点可以有多于一个的双亲 • 多联系:允许两个结点间有多种联系(复合联系)
1)网状模型的相关约束 • 网状数据模型的操纵主要包括查询、插入、删除和更新数据。 • 插入操作允许插入尚未确定双亲结点值的子女结点值。 • 删除操作允许只删除双亲结点值。 • 更新操作时只需更新指定记录即可。 • 查询操作可以有多种方法,可根据具体情况选用。
2)网状数据模型的优缺点 • 优点 • 更直接地描述现实世界,如一个结点可以有多个双亲 • 具有良好的性能,存取效率较高 • 缺点 • 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握 • DDL、DML语言复杂,用户不容易使用
4、关系模型 • 1970年美国IBM公司研究员E.F.Codd提出关系模型。 • 关系模型是最重要的数据模型,其应用最为广泛,Access、Visual Foxpro、SQL Server、Oracle、Sybase等都属于关系模型数据库系统。 • 基于关系模型的数据库称为关系数据库。 • 在用户看来,一个关系模型的逻辑结构是一张二维表,它由行和列组成。
属性 元组 学号 姓名 年龄 性别 系号 S01 张军 21 男 D01 S02 李红 22 女 D01 S03 王伟 19 男 D02
1)关系数据模型的相关概念 • 元组(Tuple) 表中的一行即为一个元组,也称为一条记录。 • 属性(Attribute) 表中的一列即为一个属性,给每一个属性起一个名称即属性名(字段名)。 • 关系(Relation) 一个关系对应通常说的一张表,元组的集合可称为关系。 • 码(键)(Key) 表中的某个属性组,它可以唯一确定元组。 • 主码(Primary Key) 关系模式中用户正在使用的码称为主码。
外码(Foreign Key): 如果模式R中的某属性是其他模式的主码,那么该属性集为模式R的外码。 • 域(Domain):属性的取值范围 • 分量:元组中的一个属性值 • 关系模式:对关系的描述 关系名(属性1,属性2,…,属性n) 如:学生(学号,姓名,年龄,性别,系,年级) 课程(课程号,课程名,学分)
2)关系模型的相关内容 • 在关系模型中,实体以及实体间的联系都是用关系(二维表)来表示。即用表格结构表达实体集。 • 用外码表达实体间的联系。 • 关系模型是由若干个关系模式组成的集合。 • 关系模型是型,关系是值。 • 关系的每一个分量必须是一个不可分的数据项,即不允许表中还有表。 • 关系中不允许出现相同的元组。