type
status
date
slug
summary
tags
category
icon
password
1.1 数据库及其系统概念
1.1.1 数据库
- 数据库的概念:数据库是一种依照特定数据模型组织、存储和管理数据的文件集合。这些文件一般存放在外部存储器中,以便长久保存数据,并可快速访问。
- 数据库与普通数据文件的主要区别:
- 数据库可以支持不同应用对数据共享访问,普通数据文件难以支持。(普通文件不会考虑互斥。。)
- 数据库可实现复杂的数据管理,普通数据文件难以实现。
- 数据库可独立应用程序,普通数据文件与应用程序紧耦合。
- 数据库的操作访问与控制管理由数据库管理系统软件实现;普通数据文件的操作访问与控制管理,都必须由应用程序实现。
1.1.2 数据模型
- 数据模型的概念:数据模型是指描述事物对象的数据结构组成、数据语义联系、数据约束的抽象结构及其说明
- 数据结构:用于描述事物对象的静态特征,包括事物对象的数据组成、数据类型、数据性质等(如java类中定义的类成员)
- 数据操作:用于描述事物对象的动态特征,包括数据的插入、修改、删除和查询等访问操作(如java类中定义的类方法)
- 数据约束:用于描述数据结构中数据之间的语义联系、数据之间的制约和依存关系,以及数据动态变化的规则等
1.1.3 数据库使用的数据模型
- 层次数据模型:层次数据模型思想是采用“树”结构来组织、存储和管理数据,如下图
- 网状数据模型:网状数据模型思想是采用“网状图”结构组织、存储和管理数据。如下图:
- 关系数据模型:关系数据模型思想是采用“二维表”结构组织、存储和管理数据,并以关联列(相当于是外键了)实现表之间的联系。如下图
- 关系数据模型优点:
- 数据结构简单、操作灵活
- 支持关系与集合运算操作
- 支持广泛使用的SQL数据库操作语言标准
- 拥有众多的软件厂商产品与用户
- 关系数据模型局限:
- 只用于结构化数据的组织与存储管理
- 支持的数据类型较简单
- 难以支持互联网广泛应用的非结构化数据和复杂数据管理(相当于是对上面两条的总结)
- 其它数据模型(如对象数据模型、键值对数据模型、列式数据模型、文档数据模型、图形数据模型等)
1.1.4 数据库系统
- 数据库系统概念:数据库系统(Database Systems)是一类基于数据库进行数据管理与信息服务的软件系统
- 数据库系统的组成:数据库系统由用户、数据库应用程序、数据库管理系统和数据库四个部分组成。如下图:
- 数据库用户:数据库用户(Users)是指数据库系统的使用人员
- 数据库应用程序:数据库应用程序是一种在DBMS支持下对数据库中数据进行访问处理的应用程序
- 数据库应用程序基本功能(了解即可)
- 通过窗口输入框采集用户输入数据
- 通过接口连接访问数据库
- 执行用户数据查询
- 通过表单列表输出结果数据
- 数据库管理系统:数据库管理系统(DataBase Manage System,DBMS )是一种专门用来创建数据库、管理数据库、维护数据库,并提供外部对数据库进行访问的系统软件
- 数据库管理系统基本功能(了解即可)
- 创建数据库、数据库表以及其它对象
- 读写、修改、删除数据库表中数据
- 维护数据库结构
- 执行数据访问规则(数据约束)
- 提供数据库并发访问控制和安全控制
- 执行数据库备份和恢复
- 数据库:数据库(Database)是一种依照特定数据模型组织、存储和管理数据的文件集合
1.1.5 关系数据库中的数据内容
在关系数据库中,除了存储和管理应用的用户数据外,还需要存储与管理数据库本身的元数据、索引数据、运行数据等系统数据。
1.1.6 关系数据库的对象组织
- 用户表:存储用户的应用数据
- 系统表:存储数据库系统自身数据
- 视图:通过虚拟表实现数据查询处理(查询的结果返回的就是一个视图,是一张虚表)
- 索引:通过目录数据结构支持快速的数据查询
- 约束:对关系表及其数据施加规则(数据约束)
- 存储过程:在数据库内部实现特定功能程序的数据处理(就理解为一个特定的查询程序执行时进行的数据处理)
- 触发器:在数据库内部实现数据操作事件触发自动执行的过程程序
1.2
1.3 数据库应用系统
1.3.1 数据库应用系统类型
应该是了解即可,看看黑体字就好了
- 业务处理系统:业务处理系统(Transaction Process System, TPS)是运用数据库应用程序对机构业务活动(如订购、销售、支付、出货、核算等)信息进行记录、计算、检索、汇总、统计等数据处理,为机构操作层面提供基本业务服务,提高业务处理效率的信息系统
- 管理信息系统:管理信息系统(Manage Information System,MIS)是一种以机构职能管理为主导,利用计算机软硬件、网络通信、数据库等IT技术,实现机构职能整体信息化管理,以达到规范化管理和提高机构工作效率,并支持机构职能服务的信息系统
- 决策支持系统:决策支持系统(Decision Support System)是以管理科学、运筹学、控制论和行为科学为基础,以计算机技术、数据库技术、人工智能技术为手段,针对特定领域问题解决,为管理者提供辅助决策服务与方案的信息系统
1.3.2 数据库系统应用结构
- 单机用户结构
- 特点:在单机用户结构系统中,整个数据库应用系统都装在一台计算机上,由一个用户进行访问操作,数据不能共享,数据冗余度大
- 集中式结构:被称为集中式是因为应用程序是集中的,数据处理也是集中的
- 特点:数据库系统的应用程序(这也是与CS模式的区别)、DBMS、数据,都部署在同一服务器上运行,多个用户使用自己的计算机终端网络连接服务器,并可实现共享访问数据库。
- 优缺点: 结构简单,易于维护,但是当终端用户增加到一定数量后,服务器及网络将成为数据存取访问的瓶颈,使系统的性能大大地降低。
- 客户/服务器结构:在CS模式中,应用程序是分散的,但是数据处理是集中的
- 特点:数据库应用系统的数据集中在数据库服务器管理、应用分布到客户机上进行处理。客户端应用程序通过网络并发访问数据库服务器中的数据库。
- 优缺点:在客户/服务器结构系统中,客户机程序与数据库服务器分工进行数据处理,提高了系统的负载分担能力,但仍会因大量客户端并发访问数据库服务器,导致系统性能瓶颈
- 分布式结构:在分布式结构中,应用程序是分散的,数据处理也是分散的
- 特点:分布式结构的数据库系统既实现数据分布,又实现处理分布。分布式数据库系统的各服务器结点数据库在逻辑上是一个整体,但物理分布在计算机网络的不同服务器结点上运行。每个数据库服务器可通过网络既支持多个本地客户机访问,也支持远程客户机访问。网络中的每一个数据库服务器都可以独立地存取与处理数据,并执行全局应用。
- 优缺点:分布式结构数据库系统适合跨地区的大型机构及企业等组织对数据库应用的需求,其处理性能强,但数据库的分布处理与维护有一定的开销与技术难度
1.3.3 数据库应用系统生命周期
数据库应用系统也是一个软件系统,那就可以用软工那一套,这里就只要稍微记一下每个生命周期的阶段就好了,内容直接瞎编)
- 需求分析:系统分析人员与用户交流,利用软件工程方法获取系统数据需求信息,并采用需求模型定义系统数据组成,及其数据字典
- 系统设计:系统设计人员根据系统功能和性能需求,对系统数据库进行设计,包括系统概念数据模型、系统逻辑数据模型和系统物理数据模型设计
- 系统实现:按照系统设计方案进行数据库创建与应用编程实现,主要包括DBMS安装部署、数据库创建、数据对象创建、应用编程实现等方面的工作
- 系统测试:系统测试人员将测试数据上载到数据库中,对数据库对象进行测试操作访问,实现数据库功能和性能测试
- 系统运行与维护:系统运维人员在信息系统投入运行过程中,对数据库系统进行定期维护和优化,以保证数据库系统正常地、高效地运行
1.4 典型数据库管理系统
1.4.1 数据库管理系统类型
了解即可
- 按用途分类
- 通用DBMS——支持公共领域数据库应用,如SQL Server
- 专用领域DBMS——支持专用领域数据库应用,如嵌入式领域的SQLite
- 按用户数分类
- 单用户DBMS——仅支持单用户访问,如miniSQL
- 多用户DBMS——可支持多用户并行访问,如MySQL
- 按系统部署分类
- 集中式DBMS——数据库集中部署在单一物理机器中,如Access(CS模式的DBMS也算是集中式的)
- 分布式DBMS——数据库可分布在不同位置物理机器,如Oracle Database
- 按使用场景分类
- 桌面级DBMS——适用于微小型的信息服务应用,如Access、SQLite等
- 企业级DBMS——适用于中大型的企业级应用,如DB2、ORACLE Database、Sybase ASE等
- 按软件版权分类
- 产品DBMS——数据库厂商拥有版权的数据库软件,如SQL Server、Oracle Database等
- 开源DBMS——开源组织提供的数据库软件,如MySQL、PostgreSQL等
1.4.2 桌面DBMS系统与企业级DBMS系统应用比较
下面就是针对上面的按使用场景分类进一步阐述,应该也是只要了解一下就好了
- 桌面数据库DBMS系统:桌面数据库DBMS系统主要应用在小规模数据处理、单用户使用的场景。该类DBMS系统软件功能简单、软件体量小、处理能力弱。通常仅支持单一语言的应用程序开发。
- 企业级数据库DBMS系统:企业级数据库DBMS系统主要运用在大规模数据处理、多用户使用的场景;该类DBMS系统软件功能完善、软件体量大、处理能力强;支持多种不同语言的应用程序开发。
1.4.3 典型数据库管理系统
这更是了解即可
- ACCESS——微软公司推出的桌面数据库管理系统
- SQL SERVER——微软公司推出的商用数据库管理系统
- Oracle Database——甲骨文公司推出的企业级数据库管理系统
- IBM DB2——IBM公司推出的企业级数据库管理系统
- Sybase ASE——Sybase公司推出的企业级数据库管理系统
- MySql——应用广泛的开源关系数据库管理系统
- PostgreSQL——技术领先的开源对象-关系数据库管理系统
- Sybase SQL Anywhere——Sybase推出的移动计算数据库管理系统
- SQLite——开源的轻量级嵌入式数据库管理系统
1.5 PostgreSQL对象-关系数据库系统软件
1.5.1 PostgreSQL数据库系统软件程序组成
PostgreSQL数据库管理系统软件由客户端功能程序和服务器端功能程序组成。它们采用客户/服务器架构方式进行通信。如下图:
1.5.2 PostgreSQL数据库软件客户端程序
了解即可(这里就好像是一些基本的数据库操作啥的)
- clusterdb -- 建立PostgreSQL数据库集群
- createdb -- 创建一个新 PostgreSQL 数据库
- createlang -- 安装一个PostgreSQL过程语言
- createuser -- 创建一个新的PostgreSQL用户帐户
- dropdb -- 删除一个 PostgreSQL 数据库
- droplang -- 删除一个PostgreSQL过程语言
- dropuser -- 删除一个PostgreSQL用户账户
- ecpg -- 嵌入的 SQL C 预处理器
- pg_basebackup -- 做一个PostgreSQL 集群的基础备份
- pg_config -- 检索已安装的PostgreSQL版本信息
- pg_dump -- 将一个PostgreSQL数据库转储到一个脚本文件或者其它归档文件中
- pg_dumpall -- 将一个PostgreSQL数据库集群转储到一个脚本文件中
1.5.3 PostgreSQL数据库软件的服务器程序
了解即可
- initdb – 初始化PostgreSQL数据库
- pg_controldata -- 显示一个PostgreSQL数据库集群的控制信息
- pg_ctl -- 启动、停止或者控制PostgreSQL服务器
- pg_resetxlog -- 重置一个数据库集群的预写日志以及其它控制内容
- postgres -- PostgreSQL 数据库服务器进程
- postmaster -- PostgreSQL 守护进程
1.5.4 PostgreSQL数据库主要对象
- 模式(schema)对象。下面的所有对象都算是一种模式
- 表(table)对象
- 视图(view)对象
- 序列(sequence)对象
- 函数(function)对象
- 触发器(trigger)对象
- 作者:Noah
- 链接:https://imnoah.top/article/DatabaseReview/ChapterOne
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。