数据库原理笔记1

依照学校教学安排,第一章为数据库系统概论

本帖仅供个人学习使用

使用软件 pgAdmin4, Power Designer


1.1 数据库及其系统概念

1.1.1 什么是数据库?

  • 在任何信息系统的技术实现中均需要一类用于组织和存储数据的数据容器
  • 支持应用程序对数据的共享操作访问
  • 将信息系统的各类数据如文本数据、图表数据、音视频数据等进行组织存储并提供能对外访问
  • 数据库的定义:一种依照特定数据模型组织、存储和管理数据的文件集合,这些文件一般存放在外部存储器中,以便长久保存数据,并可快速访问
  • 数据库文件组成数据文件日志文件
  • 数据库的本质就是一类数据文件
  • 数据库与普通数据文件的主要区别
    • 数据库可以支持不同应用对数据共享访问,普通数据文件难以支持
    • 数据库可以实现复杂的数据管理,普通数据文件难以实现
    • 数据库可独立于应用程序,普通数据文件与应用程序紧耦合
    • 数据库的操作访问与控制管理由数据库管理系统软件实现,普通数据文件的操作访问与控制管理都必须由应用程序实现

1.1.2 什么是数据模型

  • 数据模型是指描述事物对象的数据结构组成数据语义联系数据约束的抽象结构及其说明,由数据结构、数据操作和数据约束组成
    • 数据结构:用于描述事物对象的静态特征,包括事物对象的数据组成、数据类型、数据性质等
    • 数据操作:用于描述事物对象的动态特征,包括数据的插入、修改、删除和查询等访问操作
    • 数据约束:用于描述数据结构中数据之间的语义联系,数据之间的制约和依存关系,以及数据动态变化的规则等

1.1.3 数据库使用的数据模型

  • 层次数据模型:最早使用的一种数据模型
    • 采用树结构来组织、存储和管理数据,每个结点存储一个数据记录,数据结点之间通过链接指针相互联系,通过结点遍历访问方法实现查询数据
    • 由于树结构受限于上下结点层次访问,缺乏灵活性,故后来使用网状数据模型
  • 网状数据模型
    • 采用网状图结构组织、存储和管理数据,在网状图中,中间结点不但可以上下层次访问,还可以横向关联访问
    • 优点:可灵活地表示数据之间的复杂关系,数据冗余小
    • 缺点:结构复杂,增加了数据查询、数据修改 (需要更改数据结点和关联指针)和数据定位的难度,因此使用关系数据模型
  • 关系数据模型
    • 采用二维表结构组织、存储和管理数据,并以关联列实现表之间的关系
    • 优点:数据结构简单、操作灵活,支持关系与集合运算操作,支持广泛使用的SQL数据库操作语言标准,拥有众多产品与用户
    • 缺点:只用于结构化数据的组织与存储管理,支持的数据类型较简单,难以支持互联网广泛应用的非结构化数据和复杂数据管理
  • 其它数据模型:如对象数据模型、键值对数据模型、列式数据模型、文档数据模型、图形数据模型等

1.1.4 数据库系统

  • 定义:一类基于数据库进行数据管理与信息服务的软件系统
  • 组成:数据库用户、数据库应用程序、数据库管理系统、数据库
    • 数据库用户:由应用程序员 (开发)、系统分析员 (开发)、数据库管理员 (使用DBMS提供的工具维护数据库系统)、最终用户构成
    • 数据库应用程序:是一种在DBMS支持下对数据库中数据进行访问处理的应用程序,基本功能有:
      • 通过输入框采集用户输入数据
      • 通过接口连接访问数据库
      • 执行用户数据查询
      • 通过表单列表输出结果数据
    • 数据库管理系统DBMS:一种专门用于**创建、管理 (包括读写、修改、删除数据等)、维护、提供外部访问数据库支持 (执行数据访问规则)、执行数据库备份和恢复**的系统软件
    • 数据库:一种依照特定数据模型组织、存储和管理数据的文件集合

1.1.5 关系数据库中的数据内容

  • 在关系数据库中,除了存储和管理应用的用户数据 (存放于用户表)外,还需要存与管理数据库本身的元数据、索引数据、运行数据 (存放于系统表)等系统数据

1.1.6 关系数据库的对象组织

  • 用户表:存储用户的应用数据
  • 系统表:存储数据库系统自身数据
  • 视图:通过虚拟表实现数据查询处理
  • 索引:通过目录数据结构支持快速数据查询
  • 约束:对关系表及其数据施加规则
  • 存储过程:在数据库内部实现特定功能程序的数据处理
  • 触发器:在数据库内部实现数据操作事件触发自动执行的过程程序

1.2 数据库技术发展

1.2.1数据管理技术发展阶段

  • 人工管理阶段
    • 应用需求:科学计算
    • 硬件背景:简单的计算机,纸带打孔I/O
    • 软件背景:没有操作系统
    • 数据管理:人工在代码中控制处理
    • 管理特点:
      • 程序员组织与管理数据
      • 应用程序依赖数据集
      • 应用之间无数据共享、数据冗余度大
      • 数据集无结构
  • 文件系统管理阶段
    • 应用需求:科学计算、信息管理
    • 硬件背景:磁鼓、磁带、磁盘等外部存储设备的出现
    • 软件背景:操作系统、文件系统等系统软件的出现
    • 数据管理:文件方式组织和存储数据,应用程序可通过文件系统提供的文件存取方法接口访问数据文件
    • 管理特点:
      • 由文件组织与存储数据
      • 数据文件的数据记录具有简单的字段结构,但文件整体无结构
      • 应用程序依赖于数据文件,需自己维护数据文件
      • 数据独立性差,难以实现应用程序之间的数据共享访问
  • 数据库系统管理阶段
    • 应用需求:大规模信息管理
    • 硬件背景:大容量磁盘、磁盘阵列的出现,支持大容量数据管理
    • 软件背景:数据库管理系统出现
    • 数据管理:数据库管理系统组织、存储和访问数据
    • 管理特点:
      • 数据集结构化,易于查询和统计处理
      • 不同应用程序可以实现数据共享访问
      • 数据独立性高,应用可扩展
      • 数据由DBMS统一管理和操作访问

        1.2.2数据库技术发展经历时代

  • 第一代数据库技术:20世纪60年代末出现的层次模型数据库技术和网状模型数据库技术
  • 第二代数据库技术:20世纪70年代出现的关系模型数据库技术
  • 第三代数据库技术:20世纪90年代出现的面向对象数据库技术和对象-关系数据模型数据库技术
  • 第四代数据库技术:本世纪初期出现的半结构化数据库技术,以及当今面向互联网应用的非结构化数据库技术、大规模分布式数据库技术

    1.2.3数据库技术领域的三个维度:应用处理技术、工程技术、数据模型技术

    1.2.4数据库技术发展趋势

  • 数据库规模朝两级发展,大型数据库系统越来越大,小型数据库系统越来越小
  • 从数据库行数据访问模式,到列数据访问模式
  • 从结构化数据库,到半结构化XML数据库、非结构化数据库
  • 从操作型数据库系统,到数据仓库、商业智能数据分析、大数据处理
  • 从通用数据库,到实时数据库、多媒体数据库、空间数据库、分布式数据库、并行数据库等专业领域数据库

1.3 数据库应用系统

1.3.1数据库应用系统类型

  • 业务处理系统TPS:运用数据库应用程序对机构业务活动信息进行记录、计算、检索、汇总、统计等数据处理,为机构操作层面提供基本业务服务,提高业务处理效率的信息系统。
  • 管理信息系统MIS:一种以机构职能管理为主导,利用计算机软硬件、网络通信、数据库等IT技术,实现机构职能整体信息化管理,以达到规范化管理和提高机构工作效率,并支持机构职能服务的信息系统
  • 决策支持系统DSS:以管理科学、运筹学、控制论和行为科学为基础,以计算机技术、数据库技术、人工智能技术为手段,针对特定领域问题解决,为管理者提供辅助决策服务与方案的信息系统

    1.3.2数据库系统应用结构

  • 单机用户结构:整个数据库应用系统都装在一台计算机上,由一个用户进行访问操作,数据不能共享,数据冗余度大
  • 集中式结构:数据库系统的应用程序、DBMS、数据都部署在同一服务器上运行,多个用户使用自己的计算机终端网络连接服务器,并可实现共享访问数据库,结构简单,易于维护,但当终端用户增加到一定数量后,服务器及网络将成为数据存取访问的瓶颈,使系统的性能大大降低
  • 客户/服务器结构:数据库应用程序的数据集中在数据库服务器管理、应用分布客户机处理。客户端应用程序通过网络并发访问数据库服务器中的数据库,客户机程序与数据库服务器分工进行数据处理,提高系统负载分担能力,但仍会因大量客户端并发访问数据库服务器,导致系统性能瓶颈
  • 分布式结构:分布式结构下的各服务器结点数据库在逻辑上是一个整体,但物理分布在计算机网络的不同服务器结点上运行,每个数据库服务器可通过网络既支持多个本地客户机访问,也支持远程客户机访问。既实现数据分布,又实现处理分布,并执行全局应用,适合跨地区的大型机构及企业等组织对数据库应用的要求,处理性能强,但数据库的分布处理与维护有一定的开销和技术难度

    1.3.3数据库应用系统生命周期

  • 需求分析:系统分析人员与用户交流,利用软件工程方法获取系统数据需求信息,并采用需求模型定义系统数据组成及其数据字典
  • 系统设计:系统设计人员根据系统功能和性能需求,对系统数据库进行设计,包括系统概念数据模型、系统逻辑数据模型和系统物理数据模型设计
  • 系统实现:按照系统设计方案进行数据库创建与应用编程实现,主要包括DBMS安装部署、数据库创建、数据对象创建、应用编程实现等方面的工作
  • 系统测试:系统测试人员将测试数据上载到数据库中,对数据库对象进行测试操作访问,实现数据库功能和性能测试
  • 系统运行与维护:系统运维人员在信息系统投入运行过程中,对数据库系统进行定期维护和优化,以保证数据库系统正常地、高效地运行

1.4 典型数据库管理系统

1.4.1 数据库管理系统类型

  • 按用途分类
    • 通用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等

1.5 PostgreSQL对象-关系数据库系统软件、

1.5.1–1.5.3 略

1.5.4 PostgreSQL数据库软件的服务器程序的部分常用命令

  • initdb:初始化PostgreSQL数据库
  • pg_controldata:显示一个PostgreSQL数据库集群的控制信息
  • pg_ctl:启动、停止或者控制PostgreSQL服务器
  • pg_resetxlog:重置一个数据库集群的预写日志以及其它控制内容
  • postgres:PostgreSQL数据库服务器进程
  • postmaster:PostgreSQL守护进程

    1.5.5 PostgreSQL数据库的常用管理工具

  • psql命令行管理工具:psql是一个PostgreSQL内置的客户端工具,该工具使用户通过执行命令以交互式方式实现PostgreSQL数据库管理
  • pgAdmin图形界面管理工具

    1.5.6 PostgreSQL数据库主要对象

  • 模式对象:一种构成数据库下级逻辑结构的数据库对象,用于按用户或按应用分类组织其它数据库对象
  • 表对象:一种用户组织存储数据的数据库对象,主要有三种类型:关系表、继承表、外部表
  • 视图对象:一种基于虚拟表操作数据的数据库对象
  • 序列对象:一种为代理键列提供自动增量序列值的数据库对象,提供自动增量序列值的数据库对象
  • 函数对象:一种使用内置编程语言编写数据库访问操作功能程序的数据库对象,PostgreSQL没有单独的存储对象,而是通过函数来实现存储过程功能
  • 触发器对象:一种事件触发、自动执行的数据库访问操作功能程序的数据库对象
Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2022 Daniel Qi
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信