MMS2实训 数据库技术 主讲:唐一韬 e-mail:kentdba@sina.com
Textbooks Required Recommended You may also want: 萨师煊,王珊著. 数据库系统概念(第四版). 北京:高等教育出版社 Recommended 王珊,陈红. 数据库系统原理教程. 北京:清华大学出版社,1998 You may also want: SQL Server 2000, Delphi/C++/Powerbuilder, etc.
Textbooks Recommended(advanced) -HECTOR GARCIA-MOLINA,JEFFREY D.ULLMAN,JENNIFER WIDOM著.数据库系统全书.岳丽华 杨冬青 龚育昌 唐世渭 徐其钧译.机械工业出版社.2002 -Gim Gray, Andreas Reuter著.事务处理:概念与技术.孟小峰 于戈 译.机械工业出版社.2004
Syllabus 了解,并结合关系型数据库系统深入理解数据库系统的基本概念,原理和方法。 掌握关系数据模型及关系数据语言,能熟练应用SQL语言表达各种数据操作(查询处理)。 掌握E-R模型的概念和方法,关系数据库规范化理论和数据库设计方法,通过上机实习的训练,初步具备进行数据库应用系统开发的能力(数据库应用)。
课程内容 第一章 绪论 第二章 关系数据库 第三章 关系数据库标准语言SQL 第七章 数据库设计 第八章 数据库编程
第一章 绪论 1.1 数据库系统概述 1.1 数据库系统概述 1.2 数据模型 1.3 数据库系统结构 1.4 数据库系统的组成 第一章 绪论 1.1 数据库系统概述 1.1 数据库系统概述 1.2 数据模型 1.3 数据库系统结构 1.4 数据库系统的组成 1.5 数据库技术的研究领域 1.6 小结
1.1 数据库系统概述 1.1.1 数据、数据库、数据库管 理系统、数据库系统 1.1.2 数据管理技术的产生和发展 ━ 数据管理的三个阶段 1.1.3 数据库系统的特点
1.1.1 数据、数据库、DBMS、DBS 数据 对现实世界中客观事物的符号表示 可以是数值数据,也可以是非数值数据,如声音、图像、结构化的记录等 计算机中数据 能输入计算机,并能为其处理的符号序列 数据与其语义不可分 校办公室 汉族 男 (0005794, 601, 周 济, 1, 1946.08.26, 01) (工号, 部门编号,姓名,性别,出生日期,民族)
1.1.1 数据、数据库、DBMS、DBS(续) 数据库的定义 “数据集合” 长期存储在计算机的存储设备上 有组织的,使得冗余度小,数据独立性高,扩展性强 可共享的 数据库的特性 数据按一定的格式组织、描述和存储 永久性存储 可共享
1.1.1 数据、数据库、DBMS、DBS(续) 数据库管理系统(DBMS) 系统软件,数据库系统的一个重要组成部分 科学地组织和存储数据,高效地获取和维护数据 位于用户与操作系统之间 具有下述功能: 数据定义功能 – DDL (如Create) 数据组织,存储和管理 数据操作功能 – DML(如Select,Delete,Insert,Update) 数据库事务管理和运行管理 数据库的建立和维护功能 其他功能(异构数据库的互访和互操作等)
1.1.1 数据、数据库、DBMS、DBS(续) 数据库系统(DBS) 计算机系统引入数据库后的系统 数据库管理系统DBMS(及开发工具)、应用系统、数据库管理员(DBA)、用户
… 1.1.1 数据、数据库、DBMS、DBS(续) 用户 用户 用户 应用系统 应用开发工具 数据库管理员 数据库管理系统 数据库管理员 操作系统 图1-1 数据库系统 数据库
数据库技术是应数据管理任务的需要而产生的 数据管理:数据分类、组织、编码、存储、检索和维护 数据管理技术经历了三个阶段 1.1.2 数据管理技术的产生和发展 数据库技术是应数据管理任务的需要而产生的 数据管理:数据分类、组织、编码、存储、检索和维护 数据管理技术经历了三个阶段 人工管理阶段(50年代中期以前) 文件系统阶段(50年代后期-60年代中期) 数据库系统阶段(60年代后期开始)
1.1.2 数据管理技术的产生和发展(续) ━人工管理阶段 背景 计算机主要用于科学计算 外存为顺序存取设备 没有操作系统,没有数据管理软件 数据量小、结构简单,如高阶方程、曲线拟和等 外存为顺序存取设备 磁带、卡片、纸带,没有磁盘等直接存取设备 没有操作系统,没有数据管理软件 用户用机器指令编码,通过纸带机输入程序和数据,程序运行完毕后,由用户取走纸带和运算结果,再让下一用户上机操作 批处理
1.1.2 数据管理技术的产生和发展(续) ━人工管理阶段 特点 应用程序负责数据管理工作 数据不共享 数据与程序没有独立性 数据的组织、存储结构、存取方法、输入输出等 数据不保存 每个用户使用自己的数据,数据不保存,用完就撤走 数据不共享 数据面向特定的应用 数据与程序没有独立性 程序中存取数据的子程序随着存储结构的改变而改变
1.1.2 数据管理技术的产生和发展(续) ━人工管理阶段 数据1 访问 程序1 数据2 程序2 访问 数据n 访问 程序n
1.1.2 数据管理技术的产生和发展(续) ━文件系统阶段 背景 计算机不但用于科学计算,还用于管理 外存有了磁盘、磁鼓等直接存取设备 直接存取设备(DASD) 无须顺序存取 由地址直接访问所需记录 有了专门管理数据的软件,一般称为文件系统 文件存储空间的管理 目录管理 文件读写管理 文件保护 向用户提供操作接口 联机实时处理
1.1.2 数据管理技术的产生和发展(续) ━文件系统阶段 特点 数据可以长期保存 系统提供一定的数据管理功能 按文件名访问,按记录进行存取,支持对文件的基本操作(增、删、改、查等) 用户程序不必考虑物理细节,只需考虑逻辑问题
1.1.2 数据管理技术的产生和发展(续) ━文件系统阶段 数据1 程序1 存取方式 数据2 程序2 数据n 程序n
1.1.2 数据管理技术的产生和发展(续) ━文件系统阶段 数据与程序的独立性差 文件系统只是解脱了程序员对物理设备存取的负担 文件之间是孤立不存在联系。当应用程序发生变化时,数据的逻辑结构也必须改变;反之亦然。 文件系统的出现并没有从根本上改变数据与程序紧密结合的状况,数据的逻辑结构改变则必须修改应用程序
1.1.2 数据管理技术的产生和发展(续) ━文件系统阶段 数据的共享性差,冗余度大 数据的不一致性 数据面向应用 数据孤立 即使不同应用程序所需要的数据有部分相同时,也必须建立各自的文件,而不能共享相同的数据 数据孤立 数据分散管理,许多文件,许多数据格式 数据的不一致性 由于数据存在很多副本,给数据的修改与维护带来了困难,容易造成数据的不一致性
1.1.2 数据管理技术的产生和发展(续) ━文件系统阶段 劳资科 房产科 学籍科 人事科 学号 姓名 系别 补贴 学号 姓名 性别 系别 住址 学籍科 学号 姓名 系别 学分 学位 人事科 学号 姓名 性别 系别 年龄 学位 出身
1.1.2 数据管理技术的产生和发展(续) ━数据库系统阶段 背景 计算机管理的数据量大,关系复杂,共享性要求强(多种应用、不同语言共享数据) 外存有了大容量磁盘,光盘 软件价格上升,硬件价格下降,编制和维护软件及应用程序成本相对增加,其中维护的成本更高,力求降低 批处理,联机处理和分布处理
1.1.2 数据管理技术的产生和发展(续) ━数据库系统阶段 数据库观点 数据不是依赖于处理过程的附属品,而是现实世界中独立存在的对象 程序2 程序1 程序n 统一存取 数据1 数据2 数据n
1.1.2 数据管理技术的产生和发展(续) ━数据库系统阶段 人事科 劳资科 学籍科 房产科 系别 年龄 补贴 学位 学号 姓名 学分 住址 性别 出身 房产科
1.1.2 数据管理技术的产生和发展(续) ━数据库系统的特点 面向全组织的复杂的数据结构 支持全企业的应用而不是某一个应用 数据反映了客观事物间的本质联系,而不是着眼于面向某个应用,是有结构的数据。这是数据库系统的主要特征之一,与文件系统的根本差别。文件系统只是记录的内部有结构,一个文件的记录之间是个线性序列,记录之间无联系 描述了数据及其数据之间的联系
1.1.2 数据管理技术的产生和发展(续) ━数据库系统的特点 数据的冗余度小,易扩充 数据面向整个系统,而不是面向某一应用,数据集中管理,数据共享,因此冗余度小 节省存储空间,减少存取时间,且可避免数据之间的不一致性 每个应用选用数据库的一个子集,只要重新选取不同子集或者加上一小部分数据,就可以满足新的应用要求,这就是易扩充性
1.1.2 数据管理技术的产生和发展(续) ━数据库系统的特点 具有较高的数据和程序的独立性 把数据库的定义和描述从应用程序中分离出去 数据描述是分级的(全局逻辑、局部逻辑、存储) 数据的存取由系统管理,用户不必考虑存取路径等细节,从而简化了应用程序
1.1.2 数据管理技术的产生和发展(续) ━数据库系统的特点 统一的数据控制功能,数据共享程度高 数据的安全性控制(Security) 保护数据以防止不合法的使用所造成的数据泄露和破坏 措施:用户标识与鉴定,存取控制 数据的完整性控制(Integrity) 数据的正确性、有效性、相容性 措施:完整性约束条件定义和检查 并发控制(Concurrency) 对多用户的并发操作加以控制、协调,防止其互相干扰而得到错误的结果并使数据库完整性遭到破坏 措施:封锁
统一的数据控制功能,数据共享程度高(续) 1.1.2 数据管理技术的产生和发展(续) ━数据库系统的特点 统一的数据控制功能,数据共享程度高(续) 数据库恢复(Recovery) 把数据库从错误状态恢复到某一已知的正确状态(亦称一致性状态或完整性状态) 措施:转储,镜像,日志
第一章 绪论 1.1 数据库系统概述 1.2 数据模型 1.3 数据库系统结构 1.4 数据库系统的组成 1.5 数据库技术的研究领域 第一章 绪论 1.1 数据库系统概述 1.2 数据模型 1.3 数据库系统结构 1.4 数据库系统的组成 1.5 数据库技术的研究领域 1.6 小结 1.2 数据模型
1.2 数据模型 1.2.0 数据模型的概念 1.2.1 数据模型的组成要素 1.2.2 概念数据模型 1.2.3 常用的数据模型 1.2.4 层次模型 1.2.5 网状模型 1.2.6 关系模型
是数据库系统中用于提供信息表示和操作手段的形式构架 1.2.0 数据模型的概念 对现实世界特征的模拟和抽象 能真实地模拟现实世界 易为人所理解 便于计算机实现 现实世界 信息世界 计算机世界 数据模型 是数据库系统中用于提供信息表示和操作手段的形式构架
1.2.0 数据模型的概念(续) 应用 概念模型 数据模型 现实世界 信息世界 计算机世界 概念化 形式化 用户 计算机
1.2.0 数据模型的概念(续) 现实世界 存在于人们头脑之外的客观世界 例 信息世界 现实世界在人脑中的反映 计算机世界 仓库管理中涉及的货物管理,货物、货物的进出以及相应的报表、图表、表格、卡片、单据等 信息世界 现实世界在人脑中的反映 计算机世界 信息在计算机中以数据形式存储
1.2.0 数据模型的概念(续) 概念模型 按用户的观点来对数据和信息建模 用于组织信息世界的概念,表现从现实世界中抽象出来的事物以及它们之间的联系 这类模型强调其语义表达能力,概念简单、清晰,易于用户理解 它是现实世界到信息世界的抽象,是用户与数据库设计人员之间进行交流的语言 如E-R(实体-联系模型)模型
1.2.0 数据模型的概念(续) 数据模型 从计算机实现的观点来对数据建模 是信息世界中的概念和联系在计算机世界中的表示方法 一般有严格的形式化定义,以便于在计算机上实现 如层次模型、网状模型、关系模型等
1.2.1 数据模型的组成要素 数据结构 描述系统的静态特性,即组成数据库的对象类型 数据本身 数据之间的联系 类型、内容、性质。如:关系模型中的域、属性,关系等 数据之间的联系 例如:关系模型中的外码 在数据库系统中一般按数据结构的类型来命名数据模型
1.2.1 数据模型的组成要素(续) 数据操作 数据的约束条件 描述系统的动态特性,即对数据库中对象的实例允许执行的操作的集合,包括操作及操作规则 一般有检索、更新(插入、删除、修改)操作 数据模型要定义操作含义、操作符号、操作规则,以及实现操作的语言 数据的约束条件 数据的约束条件是完整性规则的集合,规定数据库状态及状态变化所应满足的条件,以保证数据的正确、有效
1.2.2 概念模型 信息世界中的几个基本概念 实体(Entity) 属性(Attribute) 码(Key) & 实体标识符 客观存在并可相互区别的人、事物、事件和 概念 属性(Attribute) 实体具有的特性 如:学生实体由学号、姓名、性别、出生日期、系别等属性组成 码(Key) & 实体标识符 唯一标识实体的属性集 如:学生实体中的学号属性 域(Domain) 属性的取值范围 如:性别的域为(男,女)
1.2.2 概念数据模型(续) 信息世界中的几个基本概念(续) 实体型(Entity Type) 实体集(Entity Set) 用实体名及其属性名集合来抽象刻画同类实体 如: 学生(学号,姓名,性别,出生日期,系别) 系(系代码,系名称) 实体集(Entity Set) 同型实体的集合,如全体学生,全部的系 联系(Relationship) 实体(型)内部的联系(组成实体的各属性间) 实体(型)之间的联系(不同的实体集之间) 一对一(1:1),一对多(1:N),多对多(M:N)
1.2.2 概念数据模型(续) 实体型之间的联系 一对一(1:1) 一对多(1:N) 多对多(M:N) 实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然 例:班级 与 班主任 一对多(1:N) 对于实体集A中的每一个实体,实体集B中有N个实体(N>=0)与之联系;对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系 例:班级 与 学生 多对多(M:N) 对于实体集A中的每一个实体,实体集B中有N个实体(N>=0)与之联系;实体集B中的每一个实体,实体集A中也有M个实体(M>=0)与之联系 例: 课程 与 学生
1.2.2 概念数据模型(续) 实体型之间的联系(续) 1:1 1:N M:N
1.2.2 概念数据模型(续) 用图形表示两个实体型之间的联系 实体型A 实体型A 实体型A 联系名 联系名 联系名 1 1 M 1 N N 实体型B 实体型B 实体型B 1:1联系 1:N联系 M:N联系
1.2.2 概念数据模型(续) 供应商 配件 供应 M N 班级 班级 管理 容纳 1 1 1 N 班主任 学生 蓝星电脑 01信管 皇星电脑 协和祥电脑 主板 CPU 硬盘 显示器 01信管 01计应 02信管 01信管 班级 班级 管理 容纳 1 1 1 N 班主任 学生 赵老师 钱老师 孙老师 张同学 杨同学 王同学
概念模型的表示 – E-R方法(实体-联系方法) 1.2.2 概念数据模型(续) 概念模型的表示 – E-R方法(实体-联系方法) P.P.Chen,1976: Entity-Relationship Diagram 实体型、属性和联系(三要素) 直观的图形表示:四个基本成分 矩形框 – 实体型 菱形框 – 联系类型 椭圆形框 – 实体型与联系类型的属性 直线 – 实体型与联系之间用直线相连,线旁标注联系的种类(1:1, 1:N, M:N) 学生 学号 姓名 性别 出生日期 系别
E-R example: Students and Courses 1.2.2 概念数据模型(续) E-R example: Students and Courses 学生 学号 姓名 性别 出生日期 系别 课程 课号 名称 教材 选修 成绩 联系也有属性 M N
设计原则(Design Principles) 1.2.2 概念数据模型(续) 设计原则(Design Principles) 真实性 实体集及其属性应当反映现实 联系及其类型应当反映现实 避免冗余 浪费空间 易导致数据不一致 简单(避免引入过多元素) 选择合适的元素类型: 实体?属性?
1.2.2 概念数据模型(续) 冗余 酒 酒名 类别 厂家 厂址 ?厂家地址在其生产的每种酒中均出现
?厂家地址在两个实体的属性中重复出现 冗余 1.2.2 概念数据模型(续) N 1 酿造 酒 酒厂 酒名 类别 厂家 厂址 名称 地址 建立时间 ?厂家地址在两个实体的属性中重复出现
1.2.2 概念数据模型(续) 酒 酒厂 酿造 1 N 类别 酒名 厂址 名称 Right:
1.2.2 概念数据模型(续) 现在来建立一个描述学校的数据库,该数据库涉及的对象包括学生的学号(Sno)、所在系(Sdept)、系主任姓名(Mname)、课程名(Cname)和成绩(Grade)。假设学校的数据库模式由一个单一的关系模式Student构成,则该关系模式的属性集合为 U={Sno,Sdept,Mname,Cname,Grade} 数据冗余:如果一个学生选修了k门课,则有关他的所在系的信息重复。 更新异常:由于数据冗余,当更新数据库中的数据时,系统要付出很大的代价来维护数据库的完整性。否则会面临数据不一致的危险。比如,某系更换系主任后,系统必须修改与该系学生有关的每一个元组。
1.2.2 概念数据模型(续) S(sno,sdept) SG(sno,cname,grade) DEPT(sdept,mname) 分成三个关系模式: S(sno,sdept) SG(sno,cname,grade) DEPT(sdept,mname)
1.2.3 常用的数据模型 层次模型(Hierarchical Model) 网状模型(Network Model) 关系模型(Relational Model) 数据结构、数据操作和完整性约束条件这三个方面的内容完整地描述了一个数据模型
1.2.4 层次模型 最早的数据模型。IBM: IMS (Information Management System) (1968) 数据结构 用树结构表示实体之间联系 树由节点和连线组成 节点代表实体型(记录类型) 每个记录类型包含若干字段(属性) 连线表示两实体型间的一对多联系 树的特性 每棵树有且仅有一个节点无父节点,称为树的根 树中的其它节点都有且仅有一个父节点 R1 R2 R3 R4 R5 R1:根结点 R3:兄弟结点 R2、R4、R5:叶结点
1.2.4 层次模型(续) 系 教研室 学生 教员 1 : N联系 实体型 地址 系名 系号 教研室名 教研室号 年级 姓名 学号 职称 职工号
1.2.4 层次模型(续) R1101 计算机 D02 数据库 R01 G1 王明 S0012 教授 何璧 E1101 G2 郑直 周密 S0199 网络 R02 人工智能 R03 讲师 刘新 E3721 王恩 E1234 助教 付弈
层次模型的特点 优点:结构简单、易于实现。 缺点: 支持的联系种类太少,只支持二元的一对多联系;只支持实体集间的一种联系,不支持实体集间的多种联系; 数据操纵不方便,子节点的存取只能通过父节点来存取,插入、删除复杂,删除父节点导致其子节点一起删除,丢失信息。
1.2.4 层次模型(续) 层次数据模型的存储结构 1、邻接法:按照层次树前序穿越的顺序把所有记录值依次邻接存放
1.2.4 层次模型(续) 2、链接法:用指针来反映数据之间的层次关系。
1.2.4 层次模型(续)
1.2.5 网状模型 数据结构 操作 (I、D、U、Q) 是一个满足下列条件的有向图 可以有一个以上的节点无父节点 至少有一个节点有多于一个的父节点(排除树结构) 节点代表实体型,有向边(从箭尾到箭头)表示两实体型间的一对多联系 操作 (I、D、U、Q) 科室 医生 病房 病人 实体型 1 : N联系
1.2.5 网状模型(续) 学生 课程 选课 A C1 S1 C2 B S2 A- C S3 年级 姓名 学号 学分 课程名 课程号 成绩
1.2.5 网状模型(续) 约束 优点 缺点 DBTG报告 插入不受限制;删除双亲节点不影响子节点 表达的联系种类丰富 性能良好,存取效率高 结构复杂 语言复杂 DBTG报告 1969年,由美国CODASYC(Conference On Data System Language,数据系统语言研究会)下属的DBTG(Data Base Task Group)组提出,确立了网状数据库系统的概念、方法、技术 IDMS、DMS1100、IDS/2、IMAGE
1.2.6 关系模型 1970年美国IBM公司的研究员E.F.Codd首次提出了数据库系统的关系模型。 他发表了题为“大型共享数据银行数据的关系模型”(A Relation Model of Data for Large Shared Data Banks),在文中解释了关系模型,定义了某些关系代数运算,研究了数据的函数相关性,定义了关系的第三范式,从而开创了数据库的关系方法和数据规范化理论的研究, 他为此获得了1981年的图灵奖。 此后许多人把研究方向转到关系方法上,陆续出现了关系数据库系统。 1977年IBM公司研制的关系数据库的代表System R开始运行,其后又进行了不断的改进和扩充,出现了基于System R的数据库系统SQL/DB。
关系数据库已成为目前应用最广泛的数据库系统,如现在广泛使用的小型数据库系统Foxpro、Acess,大型数据库系统Oracle、Informix、Sybase、SQL Server等都是关系数据库系统。
1.2.6 关系模型 用二维表来表示实体及其联系:行、列 用表格表示实体集,用列表示属性,表结构表示实体的型 用表间的特定冗余信息表示实体间的联系(主键、外键) 行、列无序 列不可再分 没有重复的行 操作 (I、D、U、Q) 部门号 部门名 经理 正经理 副经理
1.2.6 关系模型(续) 关系:对应通常说的表 元组:图中的一行即为一个元组 属性:图中的一列即为一个属性 主码(key):图中的某个属性组,它可以唯一确定一个元组 域(domain):属性的取值范围,如人的年龄一般在1岁~150岁之间。性别的域是(男,女),系别的域是一个学校所有系名的集合。 分量:元组中的一个属性值, 关系模式:对关系的描述,一般表示为: 关系名(属性1,属性2,…,属性n)
1.2.6 关系模型(续) 主码 属性 分量 关系模式 学号 姓名 年龄 性别 系号 S01 张军 21 男 D01 元组 关系 S02 李红 22 女 D01 S03 王伟 19 男 D02 域 (男,女)
1.2.6 关系模型(续) 约束 优点 缺点 实体完整性 参照完整性 用户自定义的完整性 简单,表的概念直观、单一,用户易理解 坚实的理论基础:建立在严格的数学理论基础之上 非过程化的数据请求,数据请求可以不指明路径 数据独立性高,用户只需提出“做什么”,无须说明“怎么做” 集合操作 缺点 查询效率慢
实体-联系模型(E-R) 历史 观点 E-R模型:Entity-Relationship Model 1976年,P.P.S.Chen提出E-R模型,用E-R图来描述概念模型 观点 世界是由一组称作实体的基本对象和这些对象之间的联系构成的
实体-联系模型(E-R) 实体(Entity) 属性(Attribute) 码(Key) 域(Domain) 客观存在并可相互区别的人、事物、事件和 概念 属性(Attribute) 实体具有的特性 一个实体可以由若干个属性来刻画 码(Key) 唯一标识实体的属性集 域(Domain) 属性的取值范围
实体-联系模型(E-R) 实体型(Entity Type) 实体集(Entity Set) 联系(Relationship) 用实体名及其属性名集合来抽象刻画同类实体 实体(值)是实体型的一个特例 实体集(Entity Set) 同型实体的集合,如全体学生,全部的系 联系(Relationship) 实体(型)内部的联系(组成实体的各属性间) 实体(型)之间的联系(不同的实体集之间) 一对一(1:1),一对多(1:N),多对多(M:N)
1:1 省会 Cities Provinces 实体-联系模型(E-R) 省名 简称 湖北省 鄂 湖南省 湘 河南省 豫 山西省 晋 省名 简称 湖北省 鄂 湖南省 湘 河南省 豫 山西省 晋 市名 面积 人口 太原 郑州 襄樊 武汉
1:N 所属 Students Classes 实体-联系模型(E-R) 班名 简称 01信管 02计应 02信管 学号 姓名 性别 班名 简称 01信管 02计应 02信管 学号 姓名 性别 01 赵 02 钱 03 孙 04 李
M:N 选修 Courses Students 实体-联系模型(E-R) 学号 姓名 性别 01 赵 02 钱 03 孙 04 李 学号 姓名 性别 01 赵 02 钱 03 孙 04 李 代号 课程名称 CS180 数据库 CS182 操作系统 CD145 数据结构
实体-联系模型(E-R) 实体型、属性和联系(三要素) 直观的图形表示:四个基本成分 矩形框 – 实体型 菱形框 – 联系类型 椭圆形框 – 实体型与联系类型的属性 直线 – 实体型与联系之间用直线相连,线旁标注联系的种类(1:1, 1:N, M:N)
选修 学生 课程 m n 实体-联系模型(E-R) 例:学生选修课程 姓名 学号 系别 课程名 先修课 学分 成绩 联系集的主码包含两端主码的组合 例:学生选修课程 学生 课程 选修 姓名 学号 系别 课程名 先修课 学分 成绩 用矩形表示实体集,在框内写上实体名 用椭圆表示实体的属性 用无向边把实体与其属性连接起来 用菱形表示实体间的联系 将参与联系的实体用线段连接 m n 联系的 数量
联系集的主码是 n端的主码 年龄 姓名 系名 性别 系主任 系号 学号 系别 学生 录取 n 1
选修 学生 课程 实体-联系模型(E-R) 码在E-R图中的表示 实体集属性中作为主码的一部分的属性用下划线来标明。 姓名 学号 系别 课程名 先修课 学分
第一章 绪论 1.1 数据库系统概述 1.2 数据模型 1.3 数据库系统结构 1.4 数据库系统的组成 1.5 数据库技术的研究领域 第一章 绪论 1.1 数据库系统概述 1.2 数据模型 1.3 数据库系统结构 1.4 数据库系统的组成 1.5 数据库技术的研究领域 1.6 小结 1.3 数据库系统结构
1.3 数据库系统结构 1.3.1 数据库系统模式的概念 1.2.2 数据库系统的三级模式结构 1.2.3 数据库的二级映象功能与数据独立性
1.3.1 数据库模式 回忆:面向对象的程序设计 class person{ person是型(类),TOM是变量,TOM在某时刻的值是实例 public: string name; string address; }; person TOM; person是型(类),TOM是变量,TOM在某时刻的值是实例
1.3.1 数据库模式(续) 型(Type)与值(Value) 模式 型是某一类数据的结构和属性的说明,值是型的一个具体赋值 型:(学号,姓名,性别,系别,家庭住址) 值: (0301, 李明,男,计算机,三阳路) 型是相对稳定的,值是变化的 模式 数据的抽象,数据的描述 数据库中全体数据的逻辑结构和特征的描述,仅涉及到型的描述,不涉及到具体的值
1.3.1 数据库模式(续) 实例与模式 模式的一个具体值称为模式的一个实例(Instance) 同一模式可以有多个实例 模式是相对稳定的,实例是相对变动的。 模式反映的数据的结构及其联系,实例反映的是数据库某一时刻的状态 数据库的体系结构:三级模式和两级映象
1.3.2 数据库系统的三级模式 模式的分级 数据库系统三级模式结构 为了提高数据的物理独立性和逻辑独立性,使数据库的用户观点,即用户看到的数据库,与数据库的物理方面,即实际存储的数据库区分开来,数据库系统的模式是分级的 数据库系统三级模式结构 CODASYL(Conference On Data System Language,美国数据系统语言协商会)提出模式、外模式、内模式三级模式的概念。三级模式之间有两级映象
1.3.2 数据库系统的三级模式(续) 应用A 应用B 应用C 应用D 应用E 外模式1 外模式2 外模式3 外模式/模式映象 模 式 模式/内模式映象 内模式 数据库
1.3.2 数据库系统的三级模式(续) 模式(Schema) 又称逻辑模式,概念模式 是数据库中全体数据的全局逻辑结构和特性的描述 所有用户的公共数据视图 全体性 逻辑性 学生(学号,姓名,性别,生日,系别) 特征性 (名称,类型,长度,约束)
1.3.2 数据库系统的三级模式(续) 外模式(Sub-Schema/External Schema) 又称子模式,用户模式 用户的数据视图 是局部(局部用户)数据的逻辑结构及其特征 模式的子集 一个模式可多个外模式 一个应用程序只能有一个外模式 多个应用程序可共用一个外模式 外模式可不同于模式(名、类型、结构) 子模式可以重叠
S(S#,SNAME,SEX,AGE,ADDRESS,CREDIT,DEGREE) 1.3.3 数据库的二级映象与数据独立性(续) 数据库模式 房产科 学籍科 S(S#,SNAME,ADDRESS) S(S#,SNAME,CREDIT) 视图 视图 S(S#,SNAME,SEX,AGE,ADDRESS,CREDIT,DEGREE) 模式
1.3.2 数据库系统的三级模式(续) 内模式(Storage Schema/Internal Schema) 又称存储模式,物理模式 是数据的物理结构、存取路径及存储方式的说明 存储方式:顺序?B树?HASH方法? 索引?压缩?加密?
1.3.2 数据库系统的三级模式(续) 子模式的作用 支持不同的用户建立适应局部应用特征的结构 简化应用处理 提高安全性 实现数据的逻辑独立性
1.3.2 数据库系统的三级模式(续) 模式的作用 内模式的作用 支持数据的逻辑独立性 支持数据的物理独立性 分隔子模式与内模式 支持用户建立适应需求的物理结构 实现数据的物理独立性
1.3.3 数据库的二级映象与数据独立性 数据独立性 数据的物理独立性 数据的逻辑独立性 当数据的结构发生变化时,通过系统提供的映象(转换)功能,使应用程序不必改变 数据的物理独立性 当数据的存储结构改变时,应用程序不必改变 数据的逻辑独立性 当数据的逻辑结构改变时,应用程序不必改变
1.3.3 数据库的二级映象与数据独立性(续) 数据独立性 数据的逻辑独立性 当内模式、模式发生变化时,通过系统提供的映象(转换)功能,使应用程序不必改变 数据的逻辑独立性 当数据库的概念模式改变时,外模式/模式映象也应相应更改,使外模式尽可能保持不变。从而对概念模式的修改不影响外模式和应用程序
1.3.3 数据库的二级映象与数据独立性(续) XH XM CSRQ XB 赵 85.07.01 男 钱 84.03.07 女 赵 85.07.01 男 钱 84.03.07 女 Select xh as 学号, xm as 姓名, xb as 性别, datediff(year,csrq,getdate()) as 年龄 From student 学号 姓名 性别 年龄 赵 男 18 钱 女 19 NO XM XB CSRQ 赵 男 85.07.01 钱 女 84.03.07 Select No as 学号, xm as 姓名, xb as 性别, datediff(year,csrq,getdate()) as 年龄 From student
1.3.3 数据库的二级映象与数据独立性(续) 数据的物理独立性 当数据库的存储模式改变时,模式/内模式映象也应相应地改变,从而概念模式尽可能保持不变,当然,对外模式和应用程序的影响更小
1.3.3 数据库的二级映象与数据独立性(续) 外模式/模式映象 模式/内模式映象 定义某一个外模式和模式之间的对应关系,映象定义通常包含在各外模式中 当模式改变时,修改外模式/模式映象,使外模式保持不变,从而应用程序可以保持不变,称为数据的逻辑独立性 模式/内模式映象 定义数据逻辑结构与存储结构之间的对应关系 存储结构改变时,修改模式/内模式映象,使模式保持不变,从而应用程序可以保持不变,称为数据的物理独立性
第一章 绪论 1.1 数据库系统概述 1.2 数据模型 1.3 数据库系统结构 1.4 数据库系统的组成 1.5 数据库技术的研究领域 第一章 绪论 1.1 数据库系统概述 1.2 数据模型 1.3 数据库系统结构 1.4 数据库系统的组成 1.5 数据库技术的研究领域 1.6 小结 1.4 数据库系统的组成
1.4 数据库系统的组成 数据库系统的软硬件层次 应用系统 应用开发工具软件 DBMS,编译系统 操作系统 硬件 PB,VB,VC DELPHY Oracle,Db2, Sybase, SQL Server, Informix
1.4 数据库系统的组成(续) 硬件 软件 大内存,放得下OS,DBMS核心,系统缓冲区,用户工作区等 大容量、直接存取的外存设备,较高的通道能力 作数据备份的磁带 软件 OS,支持DBMS DBMS 高级语言编译系统及其与数据库的接口 以DBMS为核心的应用开发工具 为特定应用环境开发的应用系统
1.4 数据库系统的组成(续) 人员 数据库管理员DBA 系统分析员与数据库设计人员 负责数据库的全面管理和控制 决定数据库中的信息内容和结构 决定数据库的存储结构和存取策略 定义数据的安全性要求和完整性约束条件 监控数据库的使用和运行 数据库的改进和重组重构 系统分析员与数据库设计人员 负责应用系统的需求分析和规范定义,确定系统的软硬件配置,参与数据库模式设计
1.4 数据库系统的组成(续) 应用程序员 基于外模式来编写应用程序,并进行调试和安装 最终用户 通过应用系统的用户接口(菜单等)使用数据库
1.4 数据库系统的组成(续) DBA的重要性 DBA职责 重要资源 共享资源 建库方面 维护整个组织的信息资源 多用户共享,需要统一管理、协调、监控 DBA职责 建库方面 确定模式、外模式、存储结构、存取策略 负责数据的整理和装入
1.4 数据库系统的组成(续) 用库方面 改进方面 定义完整性约束条件 规定数据的保密级别、用户权限 监督和控制数据库的运行情况 制定后援和恢复策略,负责故障恢复 改进方面 监督分析系统的性能(空间利用率,处理效率) 数据库重组织,物理上重组织,以提高性能 数据库重构造,设计上较大改动,模式和内模式修改
数据库系统的工作过程 在数据库系统中,当某应用程序或用户需要存取数据库中的数据时,应用程序、DBMS、操作系统、硬件等几个方面必须协同工作,共同完成用户的请求。 例:应用程序或用户从数据库中读取一个数据要经过的步骤: 若应用程序A向DBMS发出从数据库中读数据记录的命令。
数据库系统的工作过程 N Y 向用户返回出错信息 应用A发出从数据库读数据命令 DBMS对命令和权限检查、 判别可执行否?
数据库系统的工作过程 操作系统执行读数据的有关操作 操作系统将数据从数据库的存储区送至系统缓冲区 DBMS 依子模式/模式映象的定义,导出应用程序A所要读取的记录格式 DBMS 将数据记录从系统缓冲区传送到应用程序A的用户工作区 DBMS 向应用程序A返回命令执行情况的状态信息 操作系统执行读数据的有关操作
……. 用户A 用户X DBMS 内模式 模式 子模式A 子模式X … 1 2 3 4 5 6 7 8 9 10 系统缓冲区 操作系统 用户工作区 用户A 应用程序 X 用户X 系统缓冲区 DBMS 操作系统 数据库 内模式 模式 子模式A 子模式X … 1 2 3 4 5 6 7 8 9 10
第一章 绪论 1.1 数据库系统概述 1.2 数据模型 1.3 数据库系统结构 1.4 数据库系统的组成 1.5 数据库技术的研究领域 第一章 绪论 1.1 数据库系统概述 1.2 数据模型 1.3 数据库系统结构 1.4 数据库系统的组成 1.5 数据库技术的研究领域 1.6 小结 1.5 数据库技术的研究领域
1.4 数据库技术的研究领域 数据库管理系统软件的研制 数据库设计 数据库理论
新的数据库管理系统 新的数据模型 新的体系结构 面向对象数据库:数据库技术与面向对象程序设计的结合的产物。 XML数据库 分布式数据库 “turn the Web into database” 新的体系结构 分布式数据库 网络+数据库
新的数据库应用 数据仓库:是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。
新的数据库应用 数据挖掘:建立在各种数据源的基础上,重在发现隐藏在数据深层次的对人们有用的模式(Patterns),一般并不过多考虑执行效率和响应速度。 OLAP:联机分析处理 。建立在多维视图的基础之上,强调执行效率和对用户命令的及时响应,而且其直接数据源一般是数据仓库。
特种数据库 时态数据库 管理被处理事件的历史性信息 管理数据库系统中元事件的时态信息 移动数据库 分布式数据库的扩展 数据库+无线网络 即时性+就地性 手机、汽车、PDA... 主动数据库:数据库技术和人工智能技术相结合的产务。它是相对传统数据库的被动性而言的,能根据应用系统的当前状况,主动适时地作出反应,执行某些操作向用户提供相关信息。
特种数据库 模糊数据库:指能够处理模糊数据的数据库。 实时数据库:是实时系统和数据库技术相结合的产物 处理模糊对象 模糊≠糊涂 模糊专家系统,模拟计算...... 实时数据库:是实时系统和数据库技术相结合的产物 对数据的“定时” 存取和对“短暂有效”数据的存取 工厂生产过程控制、证券交易、雷达跟踪... 空间数据库:指在关系型数据库内部对地理信息进行物理存储。 几何数据 空间查询
第一章 绪论 1.1 数据库系统概述 1.2 数据模型 1.3 数据库系统结构 1.4 数据库系统的组成 1.5 数据库技术的研究领域 第一章 绪论 1.1 数据库系统概述 1.2 数据模型 1.3 数据库系统结构 1.4 数据库系统的组成 1.5 数据库技术的研究领域 1.6 小结 1.6 小结
1.6 小结 数据管理技术的三个阶段及特点 数据模型及其三要素 概念模型:E-R模型 三个主要的数据库模型 关系模型 数据库的三级模式和两级映象 数据独立性 数据库系统的组成 DBA的作用