数据库
- 数据库——是一种依照特定数据模型组织、存储和管理数据的文件集合。这些文件一般存放在外部存储器中,以便长久保存数据,并可快速访问。
- 数据库与普通数据文件的主要区别:
- 数据库可以支持不同应用对数据共享访问,普通数据文件难以支持。
- 数据库可实现复杂的数据管理,普通数据文件难以实现。
- 数据库可独立应用程序,普通数据文件与应用程序紧耦合。
- 数据库的操作访问与控制管理由数据库管理系统软件实现;普通数据文件的操作访问与控制管理,都必须由应用程序实现。
- 数据库管理系统(Database Management System,简称DBMS)是位于用户与操作系统之间的一层数据管理软件。
- 数据库系统(Database System,简称DBS)是指 在计算机系统中引入数据库后的系统构成。在不引起混淆的情况下常常把数据库系统简称为数据库。数据库系统的构成由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户)构成。
数据模型
- 数据模型是指描述事物对象的数据结构组成、数据语义联系、数据约束的抽象结构及其说明。
- 构成要素:数据结构,数据操作,数据约束
- 数据结构: 用于描述事物对象的静态特征,包括事物对象的数据组成、数据类型、数据性质等。
- 数据操作:用于描述事物对象的动态特征,包括数据的插入、修改、删除和查询等访问操作。
- 数据约束:用于描述数据结构中数据之间的语义联系、数据之间的制约和依存关系,以及数据动态变化的规则等。
- 数据库使用的数据模型:层次数据模型,网状数据模型,关系数据模型,其它数据模型(如对象数据模型、键值对数据模型、列式数据模型、文档数据模型、图形数据模型等)
- 关系数据模型思想:采用“二维表”结构组织、存储和管理数据,并以关联列实现表之间的联系。
- 关系数据模型优点: 数据结构简单、操作灵活;支持关系与集合运算操作;支持广泛使用的SQL数据库操作语言标准;拥有众多的软件厂商产品与用户
- 关系数据模型局限: 只用于结构化数据的组织与存储管理;支持的数据类型较简单;难以支持互联网广泛应用的非结构化数据和复杂数据管理
关系数据库
- 数据内容:在关系数据库中,除了存储和管理应用的用户数据外,还需要存储与管理数据库本身的元数据、索引数据、运行数据等系统数据。
- 对象组织:
- 用户表:存储用户的应用数据
- 系统表:存储数据库系统自身数据
- 视图:通过虚拟表实现数据查询处理
- 索引:通过目录数据结构支持快速的数据查询
- 约束:对关系表及其数据施加规则
- 存储过程:在数据库内部实现特定功能程序的数据处理
- 触发器:在数据库内部实现数据操作事件触发自动执行的过程程序
数据库应用系统
- 类型:业务处理系统,管理信息系统,决策支持系统
- 单机用户结构:在单机用户结构系统中,整个数据库应用系统都装在一台计算机上,由一个用户进行访问操作,数据不能共享,数据冗余度大。
- 集中式结构:
- 特点: 数据库系统的应用程序、DBMS、数据,都部署在同一服务器上运行,多个用户使用自己的计算机终端网络连接服务器,并可实现共享访问数据库。
- 优缺点: 结构简单,易于维护,但是当终端用户增加到一定数量后,服务器及网络将成为数据存取访问的瓶颈,使系统的性能大大地降低。
- 客户/服务器结构:
- 特点:数据库应用系统的数据集中在数据库服务器管理、应用分布客户机处理。客户端应用程序通过网络并发访问数据库服务器中的数据库。
- 优缺点:在客户/服务器结构系统中,客户机程序与数据库服务器分工进行数据处理,提高了系统的负载分担能力,但仍会因大量客户端并发访问数据库服务器,导致系统性能瓶颈。
- 分布式结构:
- 特点:分布式结构的数据库系统既实现数据分布,又实现处理分布。分布式数据库系统的各服务器结点数据库在逻辑上是一个整体,但物理分布在计算机网络的不同服务器结点上运行。每个数据库服务器可通过网络既支持多个本地客户机访问,也支持远程客户机访问。网络中的每一个数据库服务器都可以独立地存取与处理数据,并执行全局应用。
- 优缺点:分布式结构数据库系统适合跨地区的大型机构及企业等组织对数据库应用的需求,其处理性能强,但数据库的分布处理与维护有一定的开销与技术难度。
- 数据库应用系统生命周期:
- 需求分析:系统分析人员与用户交流,利用软件工程方法获取系统数据需求信息,并采用需求模型定义系统数据组成,及其数据字典。
- 系统设计:系统设计人员根据系统功能和性能需求,对系统数据库进行设计,包括系统概念数据模型、系统逻辑数据模型和系统物理数据模型设计。
- 系统实现:按照系统设计方案进行数据库创建与应用编程实现,主要包括DBMS安装部署、数据库创建、数据对象创建、应用编程实现等方面的工作。
- 系统测试:系统测试人员将测试数据上载到数据库中,对数据库对象进行测试操作访问,实现数据库功能和性能测试。
- 系统运行和维护:系统运维人员在信息系统投入运行过程中,对数据库系统进行定期维护和优化,以保证数据库系统正常地、高效地运行。