数据库原理 彭煜玮 ywpeng@whu.edu.cn http://totemdb.whu.edu.cn/personal/ywpeng/ 计算机学院 珞珈图腾数据库实验室
参 考 书 《数据库系统概念(原书第5版)》.西尔伯沙茨等. 机械工业出版社 《数据库系统概论(第4版)》. 王珊,萨师煊. 高等教育出版社 《数据库系统基础教程》. Jeffery D. Ullman等. 机械工业出版社 《数据库管理系统原理与设计(第3版)》. Raghu Ramakrishnan等. 清华大学出版社 《事务处理:概念与技术》. Jim Gray等. 机械工业出版社
课程网站 http://webclass.whu.edu.cn/database/db_web/index.aspx 武大课程中心:http://kczx.whu.edu.cn,搜索“数据库原理”
课程安排 课堂讲授 + 上机实验(36学时) 上机实验以3-4人为一组自由组合,使用Oracle或者SQL Server等数据库管理系统,选择一个应用进行实现,最终完成实验报告,组长负责制 考核:考试,作业、期中考试、实验报告构成平时成绩
第一章 数据库系统概论 1.1 信息与数据库 1.2 数据模型 1.3 数据库系统结构 本章小结
什么是数据库? 生活中到处都是各种各样的数据(电子数据),如文本、图形、表格等等,为了方便地管理这些电子数据,人们发明了数据库。 数据库就是一个存放和管理电子数据的“仓库”,通过一种软件来操作。
在哪里会用到数据库? 几乎任何一个应用软件系统中都包含了对数据库的使用 电子商务:淘宝、京东、、 信息管理系统:教务管理系统、网络管理、、 电子地图:谷歌地图、、 科学软件:基因数据库、、 其他:网上论坛、微博、QQ、电信运营商、、
那么,从计算机科学的角度来说,到底数据库是什么? 初识数据库 数据库技术是计算机科学技术中发展最快的领域之一 也是计算机应用技术中最重要的技术之一 互联网的发展使得数据库愈发重要! 那么,从计算机科学的角度来说,到底数据库是什么?
1.1 信息与数据库 一、基本概念 现代社会是信息的社会,信息增长速度惊人,信息的载体就是数据。 数据:是描述事物的符号记录,是信息的符号表示 信息:是具有一定含义的,经过加工处理的,对决策有价值的数据 数据是信息的载体或者符号表示,信息是数据的内涵或者语义
什么是数据库? 数据库(DB) 数据库技术是研究数据管理的技术。好坏评判的标准: (1)数据冗余:指同一数据多次存放。 按一定结构组织存储的、集成的、可共享的数据的集合。 数据库技术是研究数据管理的技术。好坏评判的标准: (1)数据冗余:指同一数据多次存放。 问题有:①浪费空间 ②修改麻烦 ③引起不一致 (2)数据共享:体现在: ①多个应用可使用同一数据(文件、记录、数据项) ②多个用户可同时存取同一数据。 ③为开放资源。 (3)数据独立性:指应用程序和数据之间相互独立。 (4)数据统一集中管理。
数据库管理系统 数据库管理系统(DBMS) 管理和维护数据库的系统软件。DBMS需要具备一些基本功能: 用户、应用软件 DBMS OS DB 数据库管理系统(DBMS) 管理和维护数据库的系统软件。DBMS需要具备一些基本功能: 允许用数据定义语言建立新的数据库及其逻辑结构 使用合适的查询语言为用户提供查询更新数据的能力 支持超大数据量数据的长久存储 具有持久性,保证数据库不会因各种故障出现问题 控制多个用户对数据的同时存取 DBMS是一种软件 是OS的使用者,依靠OS管理硬件 是DB的管理者(仓库管理员),对数据的使用要通过DBMS 产品: Oracle、SQL Server、DB2、SYBASE,MySQL、PostgreSQL 达梦、金仓、神通OSCAR、TOTEM(图腾)
数据库系统及数据库技术 数据库系统(DBS) 具有管理数据库功能的计算机系统。 硬件、OS、DBMS、数据、应用软件、人 主机 外存 关系?
管理信息系统 MIS系统:运用系统管理的理论和方法,以计算机技术、数据处理技术、通信技术为手段建立的人机系统
信息与数据库 特 点 背 景 一、数据管理技术的产生和发展 人工阶段(50年代以前) 用户完全负责数据管理工作 数据完全面向特定的应用程序 应用程序1 应用程序2 应用程序n 数据集 1 数据集 2 数据集 n … 一、数据管理技术的产生和发展 人工阶段(50年代以前) 特 点 背 景 用户完全负责数据管理工作 数据的组织、存储结构、存取方法、输入输出等。 数据完全面向特定的应用程序 每个用户使用自己的数据,用完撤走不保存,无共享 数据与程序没有独立性 程序中存取数据的子程序随着存储结构的改变而改变。 计算机主要用于科学计算 数据量小、结构简单,如高阶方程、曲线拟和等。 外存为顺序存取设备 磁带、卡片、纸带,没有磁盘等直接存取设备。 没有操作系统及数据管理软件 用户用机器指令编码,通过纸带机输入程序和数据,程序运行完毕后,由用户取走纸带和运算结果,再让下一用户操作。
文件系统阶段(50年代后期-60年代中期) 背 景 特 点 计算机不但用于科学计算,还用于管理。 外存有了磁盘、磁鼓等直接存取设备。 … 数据集1 数据集2 数据集3 应用程序1 应用程序2 应用程序n 背 景 计算机不但用于科学计算,还用于管理。 外存有了磁盘、磁鼓等直接存取设备。 有了专门管理数据的软件,一般称为文件系统。 特 点 随着数据管理规模的扩大,数据量急剧增加,文件系统显露出一些缺陷: (1)编写应用程序不方便,程序员不得不记住文件的组织形式和包含的内容。 (2)数据冗余大。由于文件之间缺乏联系,造成每个应用程序都有对应的文件,有可能同样的数据在多个文件中重复存储。数据冗余不仅浪费了空间,还导致数据的潜在的不一致性和修改数据较困难。 (3)不一致性。这往往是由数据冗余造成的,在进行更新操作时,稍不谨慎,就可能使同样的数据在不同的文件中不一样。 (4)数据独立性差。如果存储文件的逻辑结构发生了变化或存储结构发生了变化,不得不修改程序,程序和数据之间的独立性仍然较差。 (5)不支持对文件的并发访问。 (6)数据间的联系较弱。这是由于文件之间相互独立,缺乏联系造成的。 (7)难以按不同的用户的需要来表示数据 (8)安全控制功能较差。 数据可以长期保存 共享性差 (一个文件对应一个程序。) 数据与程序有一定的独立性 文件的逻辑结构与存储 结构由系统进行转换 ,数据在存储上的改变不一定反映在程序上。
数据库系统阶段(60年代末期) 背 景 特 点 计算机管理的数据量大,关系复杂, 共享性要求强(多种应用、不同语言共享数据) 数据库 … 应用程序1 应用程序2 应用程序n 数据库 管理系统 DBMS 计算机管理的数据量大,关系复杂, 共享性要求强(多种应用、不同语言共享数据) 外存有了大容量磁盘,光盘 软件价格上升,硬件价格下降。 特 点 数据有整体的结构性,面向全组织,面向现实世界 由DBMS统一存取,维护数据语义及结构 数据共享性好 数据与程序完全相互独立
文件系统与数据库系统比较实例 例:某系统涉及人事、科研、教学、工资四个部门。假定每个部门只有一种登记表。其结构如下: 人事文件 序号 姓名 性别 年龄 职称 单位 工龄 工资 科研文件 序号 姓名 性别 年龄 职称 单位 科研名称 经费 教学文件 序号 姓名 性别 年龄 职称 单位 课程名 学时 工资文件 序号 姓名 单位 工资 工龄补贴 房租 水电
文件系统与数据库系统比较实例 建立该系统的数据结构。 文件系统: 建立与上述结构相同的四个文件。 数据库系统:(分三步进行) 第一步:建立全局数据逻辑结构。 数据的组织、存储与应用程序相分离独立进行,全面综合地考虑数据的组织,从整个系统的效率、性能出发来组织数据。 第二步:建立局部数据逻辑结构。 面向各个具体用户,从满足用户的需求出发,从全局数据逻辑结构导出各自所需的基本结构。
文件系统与数据库系统比较实例 第一层 第二层 第三层 第三步:建立数据物理结构。 面向物理存储、在保证全局数据逻辑结构的前提下,权衡系统的空间利用、效率等,按物理存储的最佳形式来组织文件结构。 第一层 水电 房租 学时 课程名 经费 科研名称 工资 工龄 单位 职称 年龄 性别 姓名 序号 第二层 单位 职称 年龄 性别 姓名 序号 经费 科研名称 学时 课程名 水电 房租 工资 工龄 第三层
文件系统与数据库系统比较概括 文件系统中的文件与数据库系统中文件的本质区别: 文件系统中的文件是面向应用的,一个文件基本对 注意: 文件系统中的文件与数据库系统中文件的本质区别: 文件系统中的文件是面向应用的,一个文件基本对 应一个应用程序,文件之间不存在联系,数据冗余大; 数据库系统中的文件是面向整个应用系统,文件之间 相互联系,减少了数据冗余,实现了数据共享。
1.2 数据模型 数据库是一个有结构的、共享的数据集合,这个结构要使用数据模型来描述现实世界中事物间的联系。 数据模型—是表示数据及其联系的模型。 数据模型分类 概念模型(也称语义模型)(常用E-R模型) 结构数据模型(简称数据模型)(层次模型、网状模型、关系模型) 区别 语义模型强调语义表达能力,建模容易、方便、概念简单、清晰,易于用户理解。它是一种独立于计算机系统的模型。 结构数据模型着重于具体描述数据的数据结构。
1.2 数据模型 能否一步到位,只建立结构数据模型呢? 回答:可以,但更多是采用分二步的设计方法。因为构造数据模型不是件简单的事,它既要模拟现实世界,又要考虑数据结构,存取效率等一系列因素,使问题变得复杂,对此,人们通过一个中间步骤,先用E-R模型反映实体及其联系,再从E-R模型出发结合具体数据模型进行转换。
1.2 数据模型 一、信息的三个世界 事物、特征 实体、属性 记录、项 现实世界即客观世界,产生最原始 的数据。 基本概念:事物、特征。 认识、分析、抽象 描述 规范转换 DBMS支持 的数据模型 机器世界 概念 模型 信息世界 现实 世界 事物、特征 实体、属性 记录、项
1.2 数据模型 信息世界 是现实世界在人们头脑中 反映并用文字或符号记载下来,是 人对现实世界的认识抽象过程,经 选择、命名、分类等抽象工作后 进入信息世界。 信息世界的基本概念 实体:客观存在、可以相互区别的事物称为实体。 实体可以指事物,也可以指事物之间的联系。实体可以是具体的,也可以是抽象的。 属性:实体的某一方面的特征(根据一样场景选取)。分为:简单属性和复合属性 、单值属性和多值属性、存储属性和派生属性 属性域:属性的取值范围;含值的类型 实体型:某一实体属性的集合 实体集:性质相同的同类实体的集合 码(Key) :唯一标识每个实体的属性或属性集
1.2 数据模型 机器世界: 数据化了的信息世界。 机器世界的基本概念: 字段(field)或数据项(data item):标记实体属性的命名单位,是数据库中的最小信息单位。 记录(record):字段值的有序集合。 记录型 :字段名的有序集合。 文件 : 同类记录的集合。对应于实体集。 码(key):能唯一标识文件中每个记录的字段或字段集。
1.2 数据模型 三个世界术语间关系
1.2 数据模型 三个世界的实例 1.3.1 记录 事物 性质 实体 属性 数据项 现实世界 信息世界 机器世界 笑脸脸谱 黑白点阵 颜色是黑色、材料是木材、形状是矩形、尺寸是长3.2米,高1.4米。 黑板 黑色、木质、矩形、3.2m Х 1.4m
1.2 数据模型-概念模型 二、 概念模型(信息模型)及其扩展 概念模型概念: 概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一DBMS支持的特定数据模型。 概念模型特点: 具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。 应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。 表示概念模型的常用方法:实体-联系(E-R)方法
1.2 数据模型-概念模型 实体间的联系: 实体集间(不同实体集)的联系及实体集内部(各属性)的联系。 例: 系 --- 系主任 系 --- 系主任 学生 --- 座位 班级 --- 学生 公司 --- 职员 学生 --- 课程 运动员 --- 项目 实体之间联系的类型: 一对一的联系,记为 1﹕1 一对多的联系,记为 1﹕n 多对多的联系,记为 m﹕n
1.2 数据模型-概念模型 一对一联系:实体集E1中每个实体至多和实体集E2中一个实体有联系,反之亦然记为1﹕1。 座位 乘客 实体集 E1
1.2 数据模型-概念模型 实体集 E1 实体集 E2 E1 E2 车间 工人 一对多联系:实体集E1中的每个实体与实体集E2中任意个实体有联系,而E2中每个实体至多和E1中的一个实体有联系,记为1﹕n。
1.2 数据模型-概念模型 多对多联系:实体集E1中的每个实体与实体集E2中任意个实体有联系,反之亦然,记为m﹕n。 实体集 E1 学生 课程 多对多联系:实体集E1中的每个实体与实体集E2中任意个实体有联系,反之亦然,记为m﹕n。
1.2 数据模型-概念模型 1.3.3 在信息世界中建立的,完全不涉及信息在计算机系统中的表示(独立子计算机系统)的数据模型,称为概念数据模型,简称概念模型。最典型的是“实体联系模型”即E-R模型。 实体联系模型(Entity Relationship Model)。该模型直接从 现实世界中抽象出实体类型及实体间联系,然后用E-R图 表示的数据模型。 E-R模型 n 课 程 成 绩 选 修 m 学号 姓名 学 生 E-R图的四个基本成分: 实体名 矩形框表示实体型 属性名 椭圆形表示属性 联系名 菱形表示联系 连接实体型与联系类型,也可用于表示实体与属性的联系 并注明种类;对构成码的属性,在属性名下画一横线表示。
1.2 数据模型-概念模型 1.3.3 设计E-R图过程 首先确定实体类型:几个实体类型及相应的实体名 确定联系类型:各实体类型之间是否有联系,是何种联系类型及相应 的联系名 连接实体类型和联系类型,组合成E-R图 确定实体类型和联系类型的属性 确定实体类型的码 学号 学 生 姓名 m 选 修 成 绩 n 课 程
1.2 数据模型-概念模型 选修 学生 课程 1.3.3 例:学生选修课程 姓名 学号 系别 课程号 课程名 学分 成绩 用无向边把实体与其属性连接起来 用椭圆表示实体的属性 姓名 学号 系别 课程号 课程名 学分 选修 m n 用矩形表 示实体 学生 课程 实体与联系用线段连接并注明类型 用菱形表示实体间的联系 成绩
1.2 数据模型-概念模型 1.3.3 例:工厂产品、零件、材料和仓库 某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请用E-R图画出此工厂产品,零件,材料,仓库的概念模型。 产品 m 确定实体类型 确定联系,并连接实体型和联系 确定属性 确定主键 组成 n n m 零件 存储 仓库 m 制造 1 存放 n n 材料
1:1, 1:n, m:n联系中允许“0” 没有提到的联系不应该出现 联系名、实体名都不能重名 一个实体不能多次出现 注 意
1.2 数据模型——概念模型扩展 扩充的E-R模型---EE-R模型 实体集可继承 增加了IS-a联系(超-子联系)。 超实体集:矩形表示。 子实体集:两端双线的矩形表示。 超-子联系:直线带小圆圈表示。 学生 研究生 学号 姓名 年龄 研究方向 导师姓名 生源类别 学生与研究生关系的EE-R图表示
1.2 数据模型——概念模型扩展 实体集可嵌套 属性可以是某个实体集。实体集的嵌套关系用有向线段表示。 学院 学院名 学院地址 编号 院长 办公地址 姓名 职称 电话号码 学院与院长关系的EE-R图表示
1.2 数据模型——结构数据模型 三、数据模型 数据模型概念 数据模型是表示实体集之间联系的模型。它建立于概念模型的基础上,是一个适合于计算机表示的数据库层的模型。 数据模型组成的要素:数据结构;数据操作;数据约束条件 (1)数据结构(描述系统的静态特性) ①是所研究的对象类型(Object type)的集合,包括:数据的类型、内容、属性以及数据之间的联系。数据库对象类型的集合包括:与数据类型、内容、性质有关的对象,如关系模型中的域、属性、关系等;与数据间联系有关的对象,如网状模型中的系型,关系模型中的码、外码。
1.2 数据模型——结构数据模型 ②数据组织结构是描述数据模型最重要的方面,通常按数据组织结构的类型来命名数据模型。如网状图结构-网状模型。 ③数据之间联系的表示方式有隐式和显式两种。隐式通过数据自身的关联或位置顺序表示,显式通过附加指针表示。 (2)数据操作(描述系统的动态特性) 是数据库中的各种对象的实例(值)允许执行的操作的集合。主要有检索和更新(插入、删除、修改)两类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则、实现操作的语言。
1.2 数据模型——结构数据模型 (3)数据的约束条件 是一组完整性规则的集合。给出数据及其联系所具有的制约、依赖和存储规则,用于限定数据库的状态和状态变化,保证数据库中的数据的正确、有效、完全和相容。 数据模型的新特征 (1)数据特征 数据可以是多维的、易变、多态的。
1.2 数据模型——结构数据模型 (2)数据结构 数据类型更丰富;数据格式多样化。 (3)数据操作 包含特殊的操作(如:执行、领域搜索、浏览和时态查询等)、数据的互操作性、数据操作的主动性。 数据模型的分类 (1)三种基本数据模型 层次模型、网状模型、关系模型。 (2)面向对象模型 (3)谓词模型 (4)扩充的数据模型
1.2 数据模型——结构数据模型 4.层次模型 (1)层次模型的数据结构 层次模型用树形结构来表示各类实体以及实体间的联系。每个结点表示一个记录类型,结点之间的连线表示记录类型间的联系,这种联系只能是父子联系。每个记录类型可包含若干个字段,这里,记录类型描述的是实体,字段描述实体的属性。 任何一个给定的记录值只有按其路径查看时,才能显出它的全部意义,没有一个子女记录值能够脱离双亲记录值而独立存在。 限制: 只有一个结点没有双亲结点,称之为根结点 根以外的其它结点有且只有一个双亲结点 这就使得层次数据库系统只能处理一对多的实体关系。
1.2 数据模型——结构数据模型 层次数据库的型与值 Y01 计算机 信息1号楼 X01 计算机科学 X02 计算机网络 X03 计算机应用 计算机动画 E0001 吴方庆 教授 E0012 李春云 E0018 郑岗 副教授 E0201 黄海河 E0312 王伊颖 E0418 讲师 S0001 张羽飞 20 S0018 王晓刚 19 S0318 吴迪倩 18 S0319 陈卓 …… 学院 系 学生 教师 院编号 学院名称 办公楼 学院 系编号 系名 系 学号 学生姓名 年龄 学生 职工号 姓名 职称 教师
1.2 数据模型——结构数据模型 (2)层次模型的数据操纵与完整性约束 数据操纵: 查、插、删、改结点值 需满足完整性约束条件(树): 插入:无双亲不能插子女; 删除:删双亲则子女无; 修改:保证一致性。 (3)层次模型的存储结构 邻接法:按树前序序列依次存放记录值 链接法 层次序列链接法 子女-兄弟链接法
1.2 数据模型——结构数据模型 (5) 层次模型的优缺点 优点: · 数据模型比较简单,操作简单。 · 数据模型比较简单,操作简单。 · 对于实体间联系是固定的,且预先定义好的应用系统,性能较高。 · 提供良好的完整性支持。 缺点: · 不适合于表示非层次性的联系。 · 对插入和删除操作的限制比较多。 · 查询子女结点必须通过双亲结点。 · 由于结构严密,层次命令趋于程序化。
1.2 数据模型——结构数据模型 5. 网状模型 网状数据模型是一种比层次模型更具普遍性的结构,它去掉了层次模型的两个限制,允许多个结点没有双亲结点,允许结点有多个双亲结点,此外它还允许两个结点之间有多种联系(称之为复合联系)。
1.2 数据模型——结构数据模型 (1) 数据结构 图结构(更多采用DBTG的系结构) 图表示实体集及实体集间的联系 实体集:节点。 联系:系。 系主 系:两个实体集之间的联系,用基本层次联系1:m表示,包含系型和系值。 系型:主记录型(1),称为系主;属记录型(m),称为成员。 系值:系型的实例。 Ri Rj Rk L1 L2 成员
1.2 数据模型——结构数据模型 (2) 网状模型的操纵与完整性约束 s1 S1 c1 90 S1 c2 92 S3 c1 76 ①一个记录型不能在同一个系型中既是主记录型又是属记录型。 ②一个记录不能出现在同一系型的多个系值中。 ③任何一个系值中至多只有一个主记录。 ④插入一个新记录时,必须遵守插入系籍约束。 ⑤删除一个记录时,必须遵守删除系籍约束。 s1 S1 c1 90 S1 c2 92 S3 c1 76 S2 c1 87 S4 c1 65 C1 (3)存储结构 链接法,主记录 => 属记录…
1.2 数据模型——结构数据模型 (4) 网状模型的优缺点 优点: · 能够更为直接地描述现实世界。 · 具有良好的性能,存取效率较高。 缺点: ·其DDL语言极其复杂。 ·数据独立性较差。由于实体间的联系本质上通过存取路径指示的,因此应用程序在访问数据时要指定存取路径。
1.2 数据模型——结构数据模型 6.关系模型 (1)数据结构 关系名 属性名 例:学生(学号,姓名,年龄) 关系 元组 属性、分量 表 结 构 主码 属性 关系 元组 属性、分量 主码(主Key) 域 元数(度、目) 关系模式:关系结构的描述 R(A1 ,A2,A3,….An) 学号 姓名 年龄 元组 关系名 属性名 例:学生(学号,姓名,年龄)
1.2 数据模型——结构数据模型 (2)操纵与完整性约束 数据操纵:查、插、删、改结点值 关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。 关系模型把存取路径向用户隐蔽起来,用户只要指出“干什么”,不必详细说明“怎么干”,从而大大地提高了数据的独立性,提高了用户生产率。 关系数据库标准操作语言是SQL语言。 需满足关系的完整性约束条件
1.2 数据模型——结构数据模型 (3)存储结构 实体及实体间联系都用表表示。 表以文件形式存储 一个文件一个表或者多个文件一个表。 表 结
1.2 数据模型——结构数据模型 关系数据模型的优缺点 优点: ·关系模型是建立在严格的数学概念的基础上的。 ·无论实体还是实体之间的联系都用关系来表示。对数据的检索结果也是关系(即表),因此概念单一,其数据结构简单、清晰。 ·关系模型的存取路径对用户透明,从而具有更高的数据独立性,更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。 缺点: 由于存取路径对用户透明,查询效率往往不如非关系数据模型。因此为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的负担。
层次模型、网状模型、关系模型比较 数据结构 复杂 简单 联系表示 指针链接 二维表 出现年代 68,69 70 理论基础 无 关系规范化理论 层次、网状模型 关系模型 数据结构 复杂 简单 联系表示 指针链接 二维表 出现年代 68,69 70 理论基础 无 关系规范化理论 查询效率 较高 较低 数据独立性 较差 DML操作方式 过程式 非过程式
面向对象数据模型 面向对象数据模型的出现 OO模型采用面向对象的方法来描述现实世界对象的逻辑组织、联系,同样也将数据和操作封装在一起 数据结构越来越复杂,数据之间的嵌套、递归等 OO语言大行其道,与面向记录的关系模型匹配不上(称为“阻抗失配”问题) OO模型采用面向对象的方法来描述现实世界对象的逻辑组织、联系,同样也将数据和操作封装在一起
面向对象数据模型 所有实体都以对象表示,相同结构的对象构成类,类的子集为子类,该类为超类 形状 圆形 矩形 多边形 三角形 四边形 不等边 等腰
面向对象数据模型 三要素 曾经的OO DBMS 问题 数据结构:对象类层次结构 操作:类定义(属性、操作、继承、约束)、实例化对象,对象的生成、存取、修改、删除 完整性约束:类、对象的唯一约束、父子约束、引用存在性约束等 曾经的OO DBMS 法国的O2等 问题 缺乏理论基础 灵活性不足,受到其继承特征的限制
对象代理模型 对象代理模型是由彭智勇教授提出 在OO模型的基础上引入了“代理对象”的概念来改变对象继承的灵活性,改进了OO模型的模式僵硬的缺点 以此为基础开发了对象代理数据库管理系统TOTEM,http://totemdb.whu.edu.cn
1.3 数据库系统结构 从DBMS角度看(DBS内部的体系结构): 从DB用户角度看(DBS外部的体系结构) 外部级 概念级 内部级 单用户结构 主从结构 客户/服务器结构 分布式结构
1.3 数据库系统结构 1. DBMS角度的三级模式结构 (1)模式概念 模式(schema)是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及到型的描述,不涉及到具体的值。 模式的一个具体值称为模式的一个实例(instance)。 同一个模式可以有很多实例。模式是相对稳定的,而实例是相对变动的。模式反映的是数据的结构及其关系,而实例反映的是数据库某一时刻的状态。 (2)模型与模式的区别 模型是以图形来表示的,给人以直观清晰、一目了然之感。但计算机是无法识别的,必须用一种语言(即DDL,DBMS提供)来描述它。 模式是对模型的描述。 (3)DBMS的三级模式:外模式,模式,子模式。
1.3 数据库系统结构 数 库 据 应用程序 外模式 A 外模式 B 外模式 / 模式 概念模式 模式 / 内模式 外部级数据库 模式 / 内模式 外部级数据库 概念级数据库 内部级数据库 DBMS OS 内模式
1.3 数据库系统结构 模式(也称概念模式) 一个数据库只有一个模式 模式的地位:是数据库系统模式结构的中间层 模式的定义 数据库中全体数据的逻辑结构和特征的描述 所有用户的公共数据视图,综合了所有用户的需求 一个数据库只有一个模式 模式的地位:是数据库系统模式结构的中间层 与数据的物理存储细节和硬件环境无关 与具体的应用程序、开发工具及高级程序设计语言无关 模式的定义 数据的逻辑结构(数据项的名字、类型、取值范围等) 数据之间的联系 数据有关的安全性、完整性要求
1.3 数据库系统结构 外模式(也称子模式或用户模式) 外模式的用途 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示 外模式的用途 保证数据库安全性的一个有力措施。 每个用户只能看见和访问所对应的外模式中的数据
1.3 数据库系统结构 外模式的地位:介于模式与应用之间 模式与外模式的关系:一对多 外模式与应用的关系:一对多 外模式通常是模式的子集 一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求 对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同 外模式与应用的关系:一对多 同一外模式也可以为某一用户的多个应用系统所使用, 但一个应用程序只能使用一个外模式。
1.3 数据库系统结构 是数据物理结构和存储方式的描述 是数据在数据库内部的表示方式 内模式(也称存储模式) 记录的存储方式(顺序存储,按照B树结构存储,按hash方法存储) 索引的组织方式 数据是否压缩存储 数据是否加密 数据存储记录结构的规定 一个数据库只有一个内模式
1.3 数据库系统结构 三级模式间的联系: 模式是内模式的逻辑表示;内模式是模式的物理实现;外模式是模式的逻辑子集。 应用1 模式 DB 应用3 应用m …... 外模式1 外模式2 外模式n 内模式 应用2 用户数据视图 公共数据视图 变换1 内部存储视图 变换2
1.3 数据库系统结构 外模式/模式映象(变换1) 模式/内模式映象(变换2) (1)实现逻辑数据到物理数据的转换 (2)实现数据独立性 数据库的二级映象功能 外模式/模式映象(变换1) 模式/内模式映象(变换2) (1)实现逻辑数据到物理数据的转换 (2)实现数据独立性 外模式/模式映象:实现数据逻辑独立性 模式/内模式映象:实现数据物理独立性
1.3 数据库系统结构 外模式/模式映象内容 外模式/模式映象用途—保证数据的逻辑独立性 定义外模式与模式之间的对应关系 每一个外模式都对应一个外模式/模式映象 映象定义通常包含在各自外模式的描述中 外模式/模式映象用途—保证数据的逻辑独立性 当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变 应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
1.3 数据库系统结构 模式/内模式映象 模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在内部是如何表示的 数据库中模式/内模式映象是唯一的 该映象定义通常包含在模式描述中
1.3 数据库系统结构 模式/内模式映象的用途——保证数据的物理独立性 1.3 数据库系统结构 模式/内模式映象的用途——保证数据的物理独立性 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变 应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。
数据库系统 软、硬件平台 硬件平台:计算机、网络。 软件平台: 操作系统、数据库系统开发工具 、接口软件。 数据库管理系统 数据库 数据库系统的组成: 软、硬件平台 硬件平台:计算机、网络。 软件平台: 操作系统、数据库系统开发工具 、接口软件。 数据库管理系统 数据库 数据库应用软件及界面 人 DBA 系统分析员 应用程序员 用户 DBA的职责: (1)决定数据库中的信息内容和结构。 (2)决定数据库的存储结构和存储策略。 (3)定义数据的安全性要求和完整性约束条件。 (4)监控数据库的使用和运行。 (5)数据库的重组和重构。
数据库系统 用户的职责:具体操作应用系统,通过应用系统的用户界面使用数据库来完成其业务活动。数据库的模式结构对最终用户是透明的。 应用程序员的职责:以外模式为基础编制具体的应用程序,操作数据库,数据库的映象功能保证了他们不必考虑具体的存储细节。 系统分析员的职责:因为要负责应用系统的需求分析与规范说明,需要从总体上了解、设计整个系统,因此他们必须与用户及数据库管理员相结合,确定系统的软硬件配置并参与数据库各级模式的概要设计。
数据库系统的特点 (1)数据集成性好: (2)数据共享 ① 统一的数据模型 ② 面向多个应用 ③ 局部与全局的独立统一 数据共享体现在: ① 多个应用可以使用同一数据、记录、数据项。 ② 在同一时刻多个用户可存取同一数据。 ③ 可以开发新的应用而不用增加新的存储空间。 ④ 可以为社会开放,成为社会的一种信息资源。
数据库系统的特点 (3)数据独立性 数据独立性是指应用程序和数据之间相互独立,不受影响。即数据结构的修改不引起应用程序修改的特性。 ①逻辑独立性:当数据的总体逻辑结构改变时,通过对映象的相应改变可以保持数据的局部逻辑结构不变,应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必修改。 ②物理独立性: 当数据的存储结构(或物理结构)改变时,通过对映象的相应改变可以保持数据的逻辑构可以不变,从而应用程序也不必改变。
数据库系统的特点 (4)数据控制力度 体现在数据是否集中管理,即是否提供安全保护、完整性检查、并发控制及故障恢复等功能。 ①安全保护:数据的安全性是指保护数据,防止不合法使用数据造成数据的泄密和破坏,使每个用户只能按规定,对某些数据以某些方式进行访问和处理。 ②完整性检查:数据的完整性指数据的正确性、有效性和相容性。即将数据控制在有效的范围内,或要求数据之间满足一定的关系。
1.3 数据库系统结构 数据库系统的体系结构 从最终用户角度看,数据库系统分为: (1) 单用户结构 所有应用程序、DBMS、数据都装在一台计算机上,由一个用户独占。 缺点:数据冗余大, 数据不共享。 (1)单用户数据库系统 DB 微机
1.3 数据库系统结构 (2) 主从式结构 一个主机带多个终端的多用户系统。 DB 主机上:应用程序、DBMS、数据库 终端:各用户通过主机的终端并发存取数据库,共享数据资源。 缺点:终端数目增加时, 主机负担过重系, 统性能下降。 (3)客户/服务器结构(Client/Sevver) C/S体系结构的关键在于功能的分布上。从数据库角度看,把原主机负担的非数据库系统的工作交给客户机承担,而数据库服务器则专司DBMS的功能。
1.3 数据库系统结构 功能划分: 客户端:由一些应用程序构成,包括:格式处理、数据输入、报表输出、图形界面、用户界面等。 服务器端:数据库、完成事务处理和数据控制(并发、恢复、安全性、完整性)等方面的功能。 ① 两层C/S结构 由服务器、客户机在局部范围内建立局域网。数据库设置在服务器中,客户机可存放其备份或临时表。 工作模式:应用程序运行在客户机上。当需要对数据库进行操作时,就向数据库服务器发一个请求,数据库服务器收到请求后执行相应的数据库操作,并将结果返回给客户机上的应用程序。
1.3 数据库系统结构 数据库 数据库服务器 应用服务器 Web浏览器 客户机 ② 三层C/S结构(B/S结构)Browser/Server模式 数据库 数据库服务器 应用服务器 原始数据 取数据 Web浏览器 业务请求:查找8G TF卡 数据库查询 记录集合 客户机 HTML格式的结果页面
1.3 数据库系统结构 客户端: Web服务器: 数据库服务器: 负责管理数据库,处理数据更新及完成查询要求,运行存储过程。 负责接收远程或本地的数据查询请求,然后运行服务器脚本,借助中间件把数据通过ODBC发送到数据库服务器上以获取相关数据,再把结果数据传回客户的Browser。 数据库服务器: 负责管理数据库,处理数据更新及完成查询要求,运行存储过程。
1.3 数据库系统结构 (4)分布式系统 (DDBS—Distributed Data Base System) 一个逻辑数据库 (4)分布式系统 (DDBS—Distributed Data Base System) 数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同节点上。 DDBS的特点: ① 分布性 数据库中的数据不是存储在同一场地,而是分布存储在多个场地上。 ② 逻辑整体性 数据在逻辑上是相互联系的,是一个整体,支持全局应用。 全局应用—涉及两个或两个以上场地中数据库的应用。
1.3 数据库系统结构 ③ 自治性 每个场地是独立的DBS,它有自己的数据库,自己的用户,自己的CPU,运行自己的DBMS,执行局部应用,具有高度的自治性。 ④ 协作性 各个场地的DBS又相互协作组成一个整体。 优点:更大范围内的数据共享。 缺点: 数据的分布存放,给数据的处理、管理与维护带来困难。 系统的效率受网络通信的制约。
1.3 数据库系统结构 (5)并行结构 运行在并行机上的数据库系统 优点:并行技术能提高系统效率 确定:价格高、实现技术复杂 高 速 网 络 DB 工作站 (5)并行结构 运行在并行机上的数据库系统 优点:并行技术能提高系统效率 确定:价格高、实现技术复杂
现代数据库系统 NoSQL 数据库系统的发展 对象 数据模型 层次 网状 关系 对象关系 地理数据库 多媒体数据库 通用型 数据特性 生物数据库 XML数据库 数据仓库 流数据库 主动数据库 通用型 DBMS 闪存数据库 实时数据库
小结 本章要点: DB、DBMS、DBS及其关系 数据模型的三要素、三种数据模型的比较 DBS三级模式和两层映像的作用 DBS的组成 本章练习:P.31 7、11题 本章思考题: 1、主要数据模型的区别? 2、 现代DBS的软、硬环境?