少女祈祷中...

第一章 绪论

一、数据库系统概述

基本概念:

  • 数据:描述事物的符号记录,包括数字、文字、图形、图像、音频、视频、学生的档案记录等
  • 数据的含义称为数据的语义
  • 数据库:长期储存在计算机内、有组织的、可共享的大量数据的集合
  • 数据库管理系统:位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据

数据库管理系统的主要功能:

  • 数据定义功能
  • 数据组织、存储和管理
  • 数据操纵功能
  • 数据库的事务管理和运行管理
  • 数据库的建立和维护功能

数据管理技术的产生和发展:

  • 人工管理阶段:处理方式为批处理,由用户进行数据管理,数据无共享,不独立,完全依赖于程序,且数据由自己控制
  • 文件系统阶段:处理方式为联机实时处理、批处理,由文件系统进行数据管理,数据只面向某一应用,独立性差,且由应用程序控制
  • 数据库系统阶段:练级实时处理、分布处理、批处理,由数据库管理系统进行管理,数据面向现实世界,高度物理独立性和一定逻辑独立性,并且由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力

独立性:数据的物理结构或逻辑结构发生变化后是否会影响到应用程序

数据库系统的特点相比起人工管理和文件系统的特点:

  • 数据结构化:数据库中的数据面向的是整个组织或企业,且数据之间是具有联系的
  • 数据共享性高:可以被多个用户共享使用,减少数据冗余
  • 数据独立性高:物理独立性指应用程序与数据的物理结构相互独立;逻辑独立性指应用程序与数据库的逻辑结构相互独立

二、数据模型

数据模型:对现实世界数据特征的抽象,用以抽象,表示和处理现实世界中的数据和信息,是数据库系统的核心和基础

需要满足的要求:

  • 能比较真实地模拟现实世界
  • 容易为人所理解
  • 便于在计算机上实现

两种(三种)数据模型

概念模型

也称信息模型,按用户的观点对数据和信息建模,用于数据库设计

逻辑模型

按计算机系统的观点对数据建模,主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。

物理模型

是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法。

两步抽象:客观对象->概念模型->DBMS支持的数据模型
(现实世界抽象为信息世界,信息世界转换为机器世界)

数据模型的组成要素

数据模型通常由数据结构、数据操作、数据的完整性约束条件组成

**数据结构:**描述数据库的组成对象,以及对象之间的联系。描述的内容:

  • 与对象的类型、内容、性质有关
  • 与数据之间的联系有关

**数据操作:**查询、更新(插入删除修改),是对系统动态特性的描述

**数据完整性约束条件:**一组完整性规则的集合。

  • 完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则,用于限制数据库状态及其变化以保证数据的正确有效和相容

1、概念模型

现实世界到机器世界的一个中间层次,用于信息世界的建模

基本概念:

  • 实体(Entity):客观存在并可相互区别的事物,具体的人、事、物等
  • 属性(Attribute):实体所具有的某一特征,一个实体可以有若干个属性
  • 码(Key):唯一标识实体的属性集
  • 实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体,例如学生(学号,姓名,性别,出生年月,所在院系)就是一个实体型
  • 实体集(Entity Set):同一类型实体的集合称为实体集,例如全体学生就是一个实体集
  • 联系(Relationship):现实世界中事物内部和之间的联系,在信息世界中反映为实体内部和之间的联系

联系

实体之间的联系有一对一、一对多、多对多联系

实体内部的联系指组成实体的各属性之间的关系

实体-联系方法(Entity-Relationship Approach,E-R模型)

注意:这里方框型的是实体型,也就是一整个同类实体,而不仅仅只有一个。这会在一对一/一对多填数字的时候有影响。

小技巧:对于线上是m,n还是1,我们可以找出对应的关系两边的两个实体型,例如如果是商店和职工的关系,我们可以先把商店作为主体,职工作为客体,可以得到:同一个商店(商店编号、商店名、地址都固定)可以聘用多个不同属性的员工(不同姓名、性别、编号等等的员工),因此在靠近职工处的先上填的是n。而反过来将职工作为主体,商店作为客体,就可以得到一个员工(编号、姓名、性别都固定)最多只能被一个商店聘用,所以靠近商店处的线填的就是1。再举个例子:商店和商品,一个商店可以拥有n种商品,因此靠近商品处的数是n;而一种商品(注意这里是一种,不是一个,因为两个相同的商品,它们的属性也是相同的,因此可以归类为同一种商品)可以出现在多个商店中,因此靠近商店位置的线上填入的也是m

2、逻辑模型

如何在机器世界中表达低层数据结构和高层数据结构?

常用数据模型:

格式化模型:

  • 层次模型
  • 网状模型

关系模型

对象模型:

  • 面向对象数据模型
  • 对象关系数据模型

关系模型的数据结构

用户观点下的数据结构是一张二维表

  • 关系:一个关系对应通常说的一张表
  • 元组:表中的一行即为一个元组
  • 主码:码键,表中的某个属性组,可以唯一确定一个元组
  • 域:一组具有相同数据类型的值的集合,属性的取值范围来自某个域
  • 分量:元组中的一个属性值
  • 关系模式:对关系的描述,例如:学生(学号,姓名,年龄,性别,系名,年级)

关系必须是规范化的,满足一定的规范条件(最基本:每个分量必须是不可分割的数据项)

关系模型的操作

存取路径对用户隐蔽,用户只要指出干什么,不必详细说明怎么干

关系的完整性约束条件

  • 实体完整性
  • 参照完整性
  • 用户定义的完整性

关系模型的优缺点

优点:

  • 建立在严格的数学概念的基础上
  • 概念单一
  • 关系模型的存取路径对用户透明

缺点:

  • 存取路径对用户透明,查询效率往往不如格式化数据模型
  • 为提高性能,必须对用户的查询请求进行优化,增加了开发DBMS的难度

三、数据库系统的结构

数据库系统通常采用三级模式结构,是数据库系统内部的系统结构

从最终用户看的结构:

  • 单用户结构
  • 主从式结构
  • 分布式结构
  • 客户-服务器
  • 浏览器-应用服务器/数据库服务器多层结构等

模式和实例

**模式:**数据库逻辑结构和特征的描述,不涉及具体值,反映的是数据的结构及其联系,相对稳定

包括数据的逻辑结构、数据之间的联系、数据有关的完整性、
安全性要求

一个数据库只有一个模式

模式与具体的应用程序、物理存储细节无关

**实例:**反映数据库某一时刻的状态,是一个具体值,同一模式可以有很多个实例

三级模式结构:

外模式

子模式/用户模式

数据库用户使用的局部数据的逻辑结构和特征的描述

地位:介于模式和应用之间。

模式与外模式:一对多

外模式与应用:一对多

外模式的用途:保证数据库安全性,每个用户只能看见和访问外模式中的数据

内模式

数据物理结构和存储方式的描述,数据在数据库内部的表示方式

一个数据库只有一个内模式

二级映像

二级映像实现这三个抽象层次的联系和转换

外模式/模式映像

模式/内模式映像

同一个模式可以有任意多个外模式,每个外模式数据库都有一个外模式/模式映像

可以保证数据的独立性(模式改变时,仅需改变外模式/模式映像)

模式/内模式映像定义了数据全局逻辑结构与存储结构之间的对应关系,这种映像在数据库中是唯一的

保证数据的物理独立性(当数据库的存储结构改变了,只需要修改模式/内模式映像)

四、数据库系统的组成

软硬件平台

硬件:

  • 足够大的内存
  • 足够的大的磁盘或磁盘阵列等设备
  • 较高的通道能力,提高数据传送率

软件:

  • 数据库管理系统
  • 支持数据库管理系统运行的操作系统
  • 与数据库接口的高级语言及其编译系统
  • 以数据库管理系统为核心的应用开发工具
  • 为特定应用环境开发的数据库应用系统

人员

  • 数据库管理员
  • 系统分析员和数据库设计人员
  • 应用程序员
  • 最终用户

数据库管理员

决定数据库内容结构,安全性要求和完整性约束条件,监控数据库的使用和运行,改进和重组

系统分析员/数据库设计人员

系统分析员:负责需求分析/规范说明,与管理员结合确定硬软件配置;
数据库设计人员:参加用户需求调查和系统分析,确定数据库中的数据,各级模式

应用程序员

编写应用程序的程序模块,进行调试和安装

最终用户

通过应用系统的用户接口使用数据库