1、数据库及其系统概念
什么是数据库
- 概念
- 数据库是一种依照特定数据模型组织、存储和管理数据的文件集合。
- 这些文件一般存放在外部存储器中,以便长久保存数据,并可快速访问。
- 与普通数据文件的主要区别
- 数据库可以支持不同应用对数据共享访问,普通数据文件难以支持。
- 数据库可实现复杂的数据管理,普通数据文件难以实现。
- 数据库可独立应用程序,普通数据文件与应用程序紧耦合。
- 数据库的操作访问与控制管理由数据库管理系统软件实现;普通数据文件的操作访问与控制管理,都必须由应用程序实现。
什么是数据模型
-
概念
- 数据模型是指描述事物对象的数据结构组成、数据语义联系、数据约束的抽象结构及其说明。
-
组成部分
- 数据结构: 用于描述事物对象的静态特征,包括事物对象的数据组成、数据类型、数据性质等。
- 数据操作:用于描述事物对象的动态特征,包括数据的插入、修改、删除和查询等访问操作。
- 数据约束:用于描述数据结构中数据之间的语义联系、数据之间的制约和依存关系,以及数据动态变化的规则等。
典型数据模型
- 层次数据模型
- 采用“树”结构来组织、存储和管理数据。
- 缺点:缺乏灵活性。
- 网状数据模型
- 采用“网状图”结构组织、存储和管理数据。
- 优点:实现灵活的数据访问,冗余小。
- 缺点:结构复杂,增加了查询和定位的困难。
- 关系数据模型
- 采用“二维表”结构组织、存储和管理数据,并以关联列实现表之间的联系。
- 优点
- 数据结构简单、操作灵活
- 支持关系与集合运算操作
- 支持广泛使用的SQL数据库操作语言标准
- 拥有众多的软件厂商产品与用户
- 局限
- 只用于结构化数据的组织与存储管理
- 支持的数据类型较简单
- 难以支持互联网广泛应用的非结构化数据和复杂数据管理
- 其它数据模型(如对象数据模型、键值对数据模型、列式数据模型、文档数据模型、图形数据模型等)
数据库系统
-
概念
- 是一类基于数据库进行数据管理与信息服务的软件系统。
-
组成
- 由用户、数据库应用程序、数据库管理系统和数据库四个部分组成。
-
数据库用户
-
指数据库系统的使用人员。
-
-
数据库应用程序
- 是一种在
DBMS
支持下对数据库中数据进行访问处理的应用程序。 - 基本功能
- 通过窗口输入框采集用户输入数据
- 通过接口连接访问数据库
- 执行用户数据查询
- 通过表单列表输出结果数据
- 是一种在
-
数据库管理系统(
DBMS
)-
是一种专门用来创建数据库、管理数据库、维护数据库,并提供外部对数据库进行访问的系统软件。
-
基本功能
- 创建数据库、数据库表以及其它对象
- 读写、修改、删除数据库表中数据
- 维护数据库结构
- 执行数据访问规则
- 提供数据库并发访问控制和安全控制
- 执行数据库备份和恢复
-
-
数据库
- 是一种依照特定数据模型组织、存储和管理数据的文件集合。
关系数据库中的数据内容
- 在关系数据库中,除了存储和管理应用的用户数据外,还需要存储与管理数据库本身的元数据、索引数据、运行数据等系统数据。
关系数据库的对象组织
- 用户表
- 存储用户的应用数据
- 系统表
- 存储数据库系统自身数据
- 视图
- 通过虚拟表实现数据查询处理
- 索引
- 通过目录数据结构支持快速的数据查询
- 约束
- 对关系表及其数据施加规则
- 存储过程
- 在数据库内部实现特定功能程序的数据处理
- 触发器
- 在数据库内部实现数据操作事件触发自动执行的过程程序
2、数据库技术发展
数据库管理发展阶段
-
人工管理阶段
- 应用需求: 科学计算
- 硬件背景: 纸带打孔输入/输出
- 软件背景: 没有操作系统
- 数据管理: 人工管理
- 特点
- 程序员组织与管理数据
- 应用程序依赖数据集
- 应用之间无数据共享、数据冗余度大
- 数据集无结构
-
文件系统管理阶段
- 应用需求: 科学计算、信息管理
- 硬件背景: 磁鼓、磁带、磁盘
- 软件背景: 操作系统、文件系统
- 数据管理: 文件方式组织数据
- 特点
- 由文件组织与存储数据
- 数据文件的数据记录具有简单的字段结构,但文件整体无结构
- 应用程序依赖于数据文件,需自己维护数据文件
- 数据独立性差,难以实现应用程序之间的数据共享访问
-
数据库系统管理阶段
- 应用背景: 大规模信息管理
- 硬件背景: 大容量磁盘、磁盘阵列
- 软件背景: 数据库管理系统(
DBMS
) - 数据管理: 数据库管理系统组织、存储及访问数据
- 特点
- 数据集结构化,易于查询与统计处理
- 不同应用程序可以实现数据共享访问
- 数据独立性高,应用可扩展
- 数据由DBMS统一管理和操作访问
数据库技术发展经历时代
- 第一代数据库技术
- 20世纪60年代末出现的层次模型数据库技术和网状模型数据库技术。
- 第二代数据库技术
- 20世纪70年代出现的关系模型数据库技术。
- 第三代数据库技术
- 20世纪90年代出现的面向对象数据库技术和对象-关系数据模型数据库
技术。
- 20世纪90年代出现的面向对象数据库技术和对象-关系数据模型数据库
- 第四代数据库技术
- 本世纪初期出现的半结构化数据库技术,以及当今面向互联网应用的非结构化数据库技术、大规模分布式数据库技术。
数据库技术领域
数据库技术发展趋势
- 数据库规模朝两级发展,大型数据库系统越来越大,小型数据库系统越来越小。
- 从数据库行数据访问模式,到列数据访问模式。
- 从结构化数据库,到半结构化
XML
数据库、非结构化数据库。 - 从操作型数据库系统,到数据仓库、商业智能数据分析、大数据处理。
- 从通用数据库,到实时数据库、多媒体数据库、空间数据库、分布式数据库、并行数据库等专业领域数据库。
3、数据库应用系统
数据库应用系统类型
- 业务处理系统
- 业务处理系统(
Transaction Process System
,TPS
)是运用数据库应用程序对机构业务活动(如订购、销售、支付、出货、核算等)信息进行记录、计算、检索、汇总、统计等数据处理,为机构操作层面提供基本业务服务,提高业务处理效率的信息系统。 - 例子
- 商业终端销售系统
- 航空机票订票系统
- 酒店系统
- 业务处理系统(
- 管理信息系统
- 管理信息系统(
Manage Information System
,MIS
)是一种以机构职能管理为主导,利用计算机软硬件、网络通信、数据库等IT
技术,实现机构职能整体信息化管理,以达到规范化管理和提高机构工作效率,并支持机构职能服务的信息系统。 - 例子
- 人力资源管理信息系统
- 办公管理信息系统
CRM
管理信息系统ERP
管理信息系统
- 管理信息系统(
- 决策支持系统
- 决策支持系统(
Decision Support System
)是以管理科学、运筹学、控制论和行为科学为基础,以计算机技术、数据库技术、人工智能技术为手段,针对特定领域问题解决,为管理者提供辅助决策服务与方案的信息系统。 - 例子
- 电信营销大数据决策支持系统
- 证券分析与辅助决策信息系统
- 法定传染病疫情预测系统
- 基于大数据的地震救灾决策支持系统
- 决策支持系统(
数据库系统应用结构
- 单机用户结构
-
特点
- 在单机用户结构系统中,整个数据库应用系统都装在一台计算机上,由一个用户进行访问操作,数据不能共享,数据冗余度大。
- 集中式结构
-
特点
- 数据库系统的应用程序、
DBMS
、数据,都部署在同一服务器上运行,多个用户使用自己的计算机终端网络连接服务器,并可实现共享访问数据库。
- 数据库系统的应用程序、
-
优缺点
- 结构简单,易于维护,但是当终端用户增加到一定数量后,服务器及网络将成为数据存取访问的瓶颈,使系统的性能大大地降低。
- 客户/服务器结构
- 特点
- 数据库应用系统的数据集中在数据库服务器管理、应用分布客户机处理。
- 客户端应用程序通过网络并发访问数据库服务器中的数据库。
- 优缺点
- 在客户/服务器结构系统中,客户机程序与数据库服务器分工进行数据处理,提高了系统的负载分担能力,但仍会因大量客户端并发访问数据库服务器,导致系统性能瓶颈。
- 特点
- 分布式结构
-
特点
- 分布式结构的数据库系统既实现数据分布,又实现处理分布。
- 分布式数据库系统的各服务器结点数据库在逻辑上是一个整体,但物理分布在计算机网络的不同服务器结点上运行。
- 每个数据库服务器可通过网络既支持多个本地客户机访问,也支持远程客户机访问。
- 网络中的每一个数据库服务器都可以独立地存取与处理数据,并执行全局应用。
-
优缺点
- 分布式结构数据库系统适合跨地区的大型机构及企业等组织对数据库应用的需求,其处理性能强,但数据库的分布处理与维护有一定的开销与技术难度。
数据库应用系统生命周期
- 需求分析
- 系统分析人员与用户交流,利用软件工程方法获取系统数据需求信息,并采用需求模型定义系统数据组成,及其数据字典。
- 系统设计
- 系统设计人员根据系统功能和性能需求,对系统数据库进行设计,包括系统概念数据模型、系统逻辑数据模型和系统物理数据模型设计。
- 系统实现
- 按照系统设计方案进行数据库创建与应用编程实现,主要包括
DBMS
安装部署、数据库创建、数据对象创建、应用编程实现等方面的工作。
- 按照系统设计方案进行数据库创建与应用编程实现,主要包括
- 系统测试
- 系统测试人员将测试数据上载到数据库中,对数据库对象进行测试操作访问,实现数据库功能和性能测试。
- 系统运行与维护
,及其数据字典。 - 系统设计
- 系统设计人员根据系统功能和性能需求,对系统数据库进行设计,包括系统概念数据模型、系统逻辑数据模型和系统物理数据模型设计。
- 系统实现
- 按照系统设计方案进行数据库创建与应用编程实现,主要包括
DBMS
安装部署、数据库创建、数据对象创建、应用编程实现等方面的工作。
- 按照系统设计方案进行数据库创建与应用编程实现,主要包括
- 系统测试
- 系统测试人员将测试数据上载到数据库中,对数据库对象进行测试操作访问,实现数据库功能和性能测试。
- 系统运行与维护
- 系统运维人员在信息系统投入运行过程中,对数据库系统进行定期维护和优化,以保证数据库系统正常地、高效地运行。
4、典型数据库管理系统
数据库管理系统类型
- 用途分类
- 通用
DBMS
——支持公共领域数据库应用,如SQL Server
- 专用领域
DBMS
——支持专用领域数据库应用,如嵌入式领域的SQLite
- 通用
- 用户数分类
- 单用户
DBMS
——仅支持单用户访问,如miniSQL
- 多用户DBMS——可支持多用户并行访问,如
MySQL
- 单用户
- 系统部署分类
- 集中式
DBMS
——数据库集中部署在单一物理机器中,如Access
- 分布式
DBMS
——数据库可分布在不同位置物理机器,如Oracle Database
- 集中式
- 使用场景分类
- 桌面级
DBMS
——适用于微小型的信息服务应用,如Access
、SQLite
等 - 企业级
DBMS
——适用于中大型的企业级应用,如DB2
、ORACLE Database
、Sybase ASE
等
- 桌面级
- 软件版权分类
- 产品
DBMS
——数据库厂商拥有版权的数据库软件,如SQL Server
、Oracle Database
等 - 开源
DBMS
——开源组织提供的数据库软件,如MySQL
、PostgreSQL
等
- 产品
桌面DBMS系统与企业级DBMS系统应用比较
-
桌面
DBMS
系统- 主要应用在小规模数据处理、单用户使用的场景。
- 该类
DBMS
系统软件功能简单、软件体量小、处理能力弱。 - 通常仅支持单一语言的应用程序开发。
-
企业
DBMS
系统- 主要运用在大规模数据处理、多用户使用的场景。
- 该类
DBMS
系统软件功能完善、软件体量大、处理能力强。 - 支持多种不同语言的应用程序开发。