一.数据库系统概述
1.数据库的4个基本概念
数据(Data)
数据库(DB)
数据库管理系统(DBMS)
数据库系统(DBS)
(1)数据(Data)
数据(Data)是数据库中存储的基本对象
- 数据的定义:描述事务的符号记录
- 数据的种类:数字、文字、图形、图像、音频、视频、学生的档案记录等。
- 数据的含义:又称为数据的语义,数据与语义是不可分的。
如:93是一个数据
语义1:学生某门课的成绩
语义2:某人的体重
语义3:计算机系2013级学生人数等 - 记录:数据是有结构的,记录是计算机存储数据的一种格式或一种方法。
日常生活中人们可以直接用自然语言来描述事物,而在计算机中常常用记录+语义来描述。
(2)数据库(DB)
①数据库是长期存储在计算机内,有组织的,可共享的大量数据集合。
②可以供各种用户共享,具有最小冗余度和较高的数据独立性
- 为什么要建立数据库
收集并抽取初一个应用所需要的大量数据,将其保存。进行进一步的加工处理,抽取有用信息,转换为有价值的知识 - 数据库的基本特征
①数据按一定的数据模型组织,描述和存储
②可为各种用户共享,冗余度较小,易扩展
③数据独立性较高
(3)数据库管理系统(DBMS)
数据库管理系统是指位于用户应用和操作系统之间的一层数据管理软件,本质是一个大型复杂的软件系统
-
数据库管理系统的用途:科学的组织和存储数据,高效的获取和维护数据
-
数据库管理系统的主要功能
①数据定义功能- 提供数据定义语言(DDL)
- 定义数据库中的数据对象
②数据组织,存储和管理
- 分类组织,存储和管理各种数据
- 确定数据在存储级别上的结构和存取方式
- 实现数据之间的联系
- 提供多种存储方法提高效率
③数据操纵功能
- 提供数据操纵语言(DML)
- 实现对数据库的基本操作(查询,插入,删除和修改)
④数据库的事务管理和运行管理
- 数据的安全性,完整性,多用户对数据的并发使用
- 发生故障后的系统恢复数据库
数据库管理系统统一管理和控制,保证事务正确运行
⑤数据库的建立和维护功能
提供实用的程序/工具,完成数据库数据的批量装在,数据库转储,介质故障恢复,数据库的重组织和性能监视等
⑥其他功能- 数据库管理系统与网络中其他软件系统的通信
- 数据库管理系统之间的数据转换
- 异构数据库之间的互访和互操作
(4)数据库系统(DBS)
数据库系统是指在计算机系统中引入数据库后的系统构成,在不引起混淆的情况下,我们常常把数据库系统简称未数据库。
数据库系统的构成:
- 数据库
- 数据库管理系统(及其应用开发工具)
- 应用程序
- 数据库管理员(DBA)
2.数据管理技术的产生和发展
数据管理是指对数据进行分类,组织,编码,存储,检索和维护,并处理数据处理和数据分析的中心问题
- 数据管理技术的发展过程
人工管理阶段(20世纪50年代中之前)
文件系统阶段(20世纪50年代末–60年代中)
数据库系统阶段(20世纪60年代末–现在)
3.数据库系统的特点
数据结构化
数据的共享性高,冗余度低且易扩展
数据独立性高
数据由数据库管理系统统一管理和控制
(1)数据结构化
数据的整体结构化是数据库的主要特征之一
- 不再仅仅针对某一个应用,而是面向整个企业或组织
- 不仅数据内部结构化,整体结构化,数据之间还具有联系
- 数据记录可以变长
- 数据的最小存取单位是数据项
数据用数据模型描述,无需应用程序定义
(2)数据的共享性高,冗余度低且易扩展
- 数据面向整个系统,可以被多个用户,多个应用共享使用。
- 数据共享的好处:
①减少了数据冗余,节约存储空间
②避免数据之间的不相容性与不一致性
③使系统易于扩充
(3)数据独立性高
- 物理独立性
指用户的应用程序与数据库中数据的物理存储是相互独立的。当数据的物理存储改变了,应用程序不用改变。 - 逻辑独立性
指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,应用程序不用改变
数据独立性由数据库管理系统的二级印像功能来保证
(4)数据由数据库管理系统统一管理和控制
- 数据的安全性保护
保护数据以防止不合法的使用造成的数据泄密和破坏 - 数据的完整性检查
保证数据的正确性,有效性和相容性 - 并发控制
对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果 - 数据库恢复
将数据库从错误的状态恢复到某一已知的正确状态
二.数据模型
数据模型是对现实世界数据特征的抽象,它应该满足三方面的要求:
- 能比较真实的模拟现实世界
- 容易被人所理解
- 便于在计算机上实现
数据模型是数据库系统的核心和基础
1.两类数据模型
数据模型可以分为两类(两个不同的层次)
(1)概念模型(也称信息模型)
按照用户的观点来对数据和信息建模,用于数据库设计
(2)逻辑模型和物理模型
- 逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等
按计算机系统的观点对数据建模,用于DBMS实现 - 物理模型是对数据最底层的抽象
描述数据在系统内(磁盘上)的表示方法和存取方法
总体流程是:现实世界->概念模型->逻辑模型
2.概念模型
(1)概念模型的用途
- 概念模型用于信息世界的建模
- 是现实世界到机器世界的一个中间层次
- 是数据库设计的有力工具
- 数据库设计人员和用户之间进行交流的语言
(2)对概念模型的基本要求
- 较强的语义表达能力
- 简单、清晰、易于用户理解
(3)信息世界中的基本概念
①实体
客观存在并课相互区别的事务称为实体,可以是具体的人、事、物或抽象的概念。
②属性
实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。
③键/码(key)
实体唯一标识的属性集
④实体型
用实体名及其属性名集合来抽象和刻画的同类实体称为实体型
⑤实体集
统一类型实体的集合
⑥联系
现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部以及实体之间的联系
- 实体内部的联系:是指组成实体的各属性之间的联系
- 实体之间的联系:通常是指不同实体集之间的联系
实体之间的联系有**一对一(1:1),一对多(1:n)和多对多(n:m)**等多种类型
(4)概念模型的一种表示方法:E-R图
E-R图提供了表示实体型、属性和联系的方法
实体型:用矩形表示,矩形框内写明实体名
属性:用椭圆形表示,用无向边将其与相应的实体连接起来
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁表上联系的类型(1:1、1:n、n:m)
ps:如果一个联系具有属性,那么这些属性也应该用无向边与该联系连接起来
画E-R图的顺序:
(1)画出实体型直接间的联系
(2)在实体型和联系上添加属性
3.数据模型的组成要素
数据模型是严格定义的一组概念的集合,精确的描述了系统的静态特性、动态特性和完整性约束条件
数据模型由三部分组成:
①数据结构-描述系统的静态特性
②数据操作-描述系统的动态特性
③完整性约束
(1)数据结构
数据结构是刻画数据模型性质的重要方面,一般以数据结构的类型来命名数据模型
层次结构-层次模型、网状结构-网状模型、关系结构-关系模型
数据结构用来描述数据库的组成对象和对象之间的联系
(2)数据操作
数据操作是对数据库中允许对各种对象实例执行的操作的集合,包括了操作及有关的操作规则
- 数据操作的类型
①查询
②更新(包括插入、删除、修改) - 数据操作语言
定义数据操作的确切含义、符号、优先级别
实现数据操作的语言
①查询-Query Language
②更新-DML
(3)数据的完整性约束条件
完整性约束条件是一组完整性规则的集合
- 完整性规则:指给定的数据模型中的数据及其联系所具有的约束和依存规则
- 用于限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。
数据模型反映和规定了必须遵守的基本的通用的完整性约束条件。提供了定义完整性约束条件的机制,以反映具体应用所涉及的数据所必须遵守的特定语义约束条件。
4.常用的数据模型
- 格式化模型
- 层次模型
- 网状模型
- 关系模型–现在用的最多
- 对象模型
- 面向对象数据模型
- 对象关系数据模型
- 半结构化数据模型
- 非结构化数据模型、图模型等
格式化模型中数据结构的基本单位:基本层次联系
(1)层次模型
层次模型用树形结构来表示各类实体以及实体之间的联系
- 表示方法
实体型:用记录类型描述,每个节点表示一个记录类型(实体)
属性:用字段描述,每个记录类型可以包含多个字段
联系:用节点之间的连线表示记录类型(实体)之间的一对多的父子联系 - 层次模型的定义
满足下面两个条件的基本层次联系的集合称为层次模型
①有且只有一个节点没有双亲,这个节点称为根节点
②除根以外的其他节点有且只有一个双亲节点
①层次模型的数据结构
②层次模型的数据操作与完整性约束
层次模型的数据操纵:
- 查询
- 插入
- 删除
- 更新
层次模型的完整性约束条件
- 无相应的双亲节点值就不能插入子女节点值
- 如果删除双亲节点值,则对应的子女节点值也被同时删除
- 更新操作时,应更新所有相应的记录,以保证数据的一致性
③层次模型的优缺点
优点
- 层次模型的数据结构比较简单清晰
- 查询效率高,性能优于关系模型,不低于网状模型
- 层次数据模型提供了良好的完整性支持
缺点
- 节点之间的多对多联系表示不自然
- 对插入和删除操作的限制多,应用程序的编写比较复杂
- 查询子女节点必须通过双亲节点
- 层次数据库的命令趋于程序化
(2)网状模型
网状数据库系统采用网状结构来表示各类实体以及实体间的联系
- 表示方法(与层次结构模型相同)
实体型:用记录类型描述,每个节点表示一个记录类型(实体)
属性:用字段描述,每个记录类型可以包含多个字段
联系:用节点之间的连线表示记录类型(实体)之间的一对多的父子联系 - 网状模型的定义
满足下面两个条件的基本层次联系的集合称为网状模型
①允许一个以上的节点无双亲
②一个节点可以有多余一个的双亲
①网状模型的数据结构
②网状模型的数据操纵与完整性约束
网状模型的数据操纵:
- 导航式的查询语言和增删改操作语言
网状模型的完整性约束:
- 允许插入尚未确定双亲节点值的子女节点
- 允许只删除双亲节点
完整性约束条件不严格,但在世纪的网状数据库系统中还是提供了一定的完整性约束:
- 支持键/码的概念
- 保证一个联系中双亲记录与子女记录之间是一对多联系
- 可以定义双亲记录和子女记录之间某些约束条件
例如:“属籍类别”:要求双亲记录存在才能插入子女记录,删除双亲记录的同时子女记录会连同删除
③网状模型的优缺点
优点
- 能够更为直接的描述现实世界,如:一个节点可以有多个双亲
- 具有良好的性能,存取效率较高
缺点
- 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
- DDL、DML语言复杂,用户不容易使用
- 记录之间联系是通过存取路径实现的,应用程序必须选择存取路径,加重了程序员的负担
(3)关系模型(现在用的最多的)
关系数据库系统采用关系模型作为数据的组织方式
①关系模型的数据结构
在用户的观点下,关系模型中数据的逻辑结构是一张二维表
关系模型数据结构中的术语
- 关系:一个关系对应通常说的一张表
- 元组:表中的一行即为一个元组(一条记录)
- 属性:表中的一列即为一个属性
- 主键(主码/键码):表中的某个属性组合,它可以唯一确定一个元组
- 域:是一组具有相同数据类型的值的集合
属性的取值范围来自某个域,例如:性别的域是(男,女) - 分量:元组中的一个属性值
- 关系模式:对关系的描述
关系名(属性1,属性2,…,属性n)
例如:学生(学号,姓名,,,年级)
关系模型中,每一个分量必须是一个不可分的数据项,不允许表中还有表(非规范关系),如:
②关系模型的操纵与完整性约束
关系模型的操纵:
关系模型的数据操作是集合操作,操作对象和操作结果都是关系
- 查询
- 插入
- 删除
- 更新
存储路径对用户隐蔽,用户只要指出“找什么”,不用说明“怎么找”,提高了数据的独立性,提高了用户生产率
关系模型的完整性约束条件:
- 实体完整性
- 参照完整性
- 用户定义完整性
③关系模型的优缺点
优点
- 建立在严格的数学概念的基础上
- 概念单一
Ⅰ.实体和各类联系都用关系来表示
Ⅱ.对数据的检索结果也是关系
都是二维表不会有其他结构 - 关系模型的存取路径对用户透明,用户不用关心数据存放位置
Ⅰ.具有更高的数据独立性,更好的安全保密性
Ⅱ.简化了程序员的工作和数据库开发建立的工作
缺点 - 存取路径对用户透明,查询效率往往不如格式化数据模型
- 为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度
三.数据库系统的结构
从开发人员的角度看:数据库系统采用三级模式结构
1.数据库系统模式的概念
(1)模式
- 是对数据库的逻辑结构和特征的抽象描述
- 是对型的描述,不涉及具体值
- 模式是相对稳定的
(2)实例
- 数据库某一时刻的状态–模式的一个具体值
- 同一个模式可以有很多实例
- 实例随着数据库中的数据的更新而变动
2.数据库系统的三级模式结构
包括了:外模式,模式和内模式
外模式/模式的映射,内模式/模式的映射
(1)外模式
①外模式(也称子模式/用户模式)
- 是数据库用户使用的局部数据的逻辑结构和特征的描述
- 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
- 外模式的作用就是将数据库中的数据根据用户的需求返回给用户(查询)
②注意
- 外模式通常是模式的子集、一个模式可以有多个外模式,可以查询不同的数据嘛
反映了不同用户的应用需求、看待数据的方式、对数据保密的要求 - 同一外模式可以为某一用户的多个应用所用,但一个应用程序只能使用一个外模式
- 外模式是保证数据库安全性的一个有力措施,每个用户又只能看见和访问对应的外模式中的数据,看不到数据库中的其他数据
(2)模式
①模式(也称逻辑模式)
- 是数据库中全体数据的逻辑结构和特征的描述
- 是所有用户的公共数据视图
一般一个应用的数据库只有一个模式。
②模式是数据库系统模式结构的中心
- 与数据的物理存储细节和硬件环境无关
- 与具体的应用程序、开发工具及高级程序设计语言无关
③模式的作用
- 用DDL语言定义数据的逻辑结构,以某种数据模型为基础。
数据记录由哪些数据项构成,数据项的名字、类型、取值范围等 - 定义数据之间的联系
- 定义与数据有关的安全性、完整性要求
(3)内模式
内模式也称存储模式,一个数据库只有一个内模式。它是数据在硬件上的存储方式。
(4)映像
映像:模式之间的转换我们称为映像
数据库中存在:外模式/模式的映射,内模式/模式的映射
两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
四.数据库系统的组成
数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统和数据库管理员构成。
1.硬件平台及数据库
①要有足够大的内存运行程序
②要有足够大的磁盘存放数据
③要求系统有较高的通道能力
2.软件
①DBMS,DBMS是为数据库的建立、使用和维护所使用的系统软件
②支持DBMS的操作系统
③具有与数据库接口匹配的高级语言和编译系统
④有以DBMS为核心的应用开发工具
⑤为特定应用环境开发的数据库应用系统
3.人员
主要包括:数据库管理员、系统分析员、数据库设计人员、应用程序员和最终用户
(1)数据库管理员DBA
①决定数据库中的信息内容和结构,数据库中要存放哪些信息,DBA要参与决策;
②决定数据库的存储结构和存取策略;
③定义数据的安全性要求和完整性约束条件;
④监控数据库的使用和运行
⑤数据库的改进和重组重构
(2)系统分析员和数据库设计人员
①系统分析员,负责应用系统的需求分析和规范说明,要和用户及DBA相结合,确定系统软硬件配置。
②数据库设计人员,负责数据库中数据的确定、数据库各级模式的设计。
(3)应用程序员
开发应用程序
(4)用户
最终用户