第一章 绪论

1.1  数 据 库 系 统 概 述

1.1.1 数据库的4个基本概念:数据、数据库、数据库管理系统、数据库系统。

数据(data):描述事物的符号记录称为数据。数据的含义称为数据的语义,数据与语义是不可分的。例如,描述一位计算机系的同学的基本情况:小明同学,男,1995年10月生,福建省福州市人,2014年入学。在计算机中常常这样来描述:(小明,男,199510, 福建省福州市,计算机系,2013)即把学生的姓名,性别,出生年月,出生地,所在院系,入学时间等组织在一起,构成一个记录,这离的学生记录就可以描述为学生数据。

数据库(DataBase, DB):存放数据的仓库。是长时间存储在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。即“永久存储、有组织、可共享”。

数据库管理系统(DataBase Management System,DBMS):主要任务:科学地组织和存储数据,高效地获取和维护数据。与操作系统一样是计算机的基础软件。主要功能包括:

  • 数据定义功能(DDL:数据定义语言)
  • 数据组织、存储和管理
  • 数据操纵功能(DML:数据操纵语言)
  • 数据库的事务管理和运行功能
  • 数据库的建立和维护功能
  • 其他功能

数据库系统(DataBase System, DBS):由数据库、数据库管理系统、应用程序和数据库管理员(DBA)组成的存储、管理、处理和维护数据的系统。

 

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

数据库技术是应数据管理任务的需要而产生的。数据管理是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。

数据管理技术经历人工管理、文件系统、数据库系统三个阶段。

表1.1 数据管理三个阶段的比较
 人工管理阶段文件系统阶段

数据库系统阶段

应用背景科学计算科学计算、数据管理大规模数据管理
硬件背景无直接存取储存设备磁盘、磁鼓大容量磁盘、磁盘阵列
软件背景没有操作系统有文件系统由数据库管理系统
处理方式批处理联机实时处理、批处理联机实时处理、分布处理、批处理

数据的管理者用户(程序员)文件系统

数据库管理系统

数据面向的对象某一应用程序某一应用现实世界(一个部门、企业、跨国组织等)
数据的共享程度无共享,冗余度极大共享性差,冗余度大共享性高,冗余度小
数据的独立性不独立,完全依赖于程序独立性差具有高度的物理独立性和一定的逻辑独立
数据的结构化无结构记录内有结构、整体无结构整体结构化,用数据模型描述
数据控制能力应用程序自己控制应用程序自己控制由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力

与人工管理和文件系统相比,数据库系统的特点主要有以下几个方面:

  • 数据结构化
  • 数据的共享性高、冗余度低且易扩充
  • 数据独立性高
  • 数据由数据库管理系统统一管理和控制

数据库是长期存储在计算机内,有组织、大量、共享的数据集合。它可以供各种用户共享具有最小冗余度和较高的数据独立性。数据库管理系统在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。

 

1.2  数 据 模 型

1.2.1 两类数据模型

模型,特别是具体模型对人们来说并不陌生。以上地图、一组建筑设计沙盘、一架精致的模型飞机都是具体的模型。数据模型也是一种模型。数据模型是对现实世界数据特征的抽象。也就是说数据模型是用来描述数据、组织数据和对数据进行操作的。数据模型就是现实世界的模拟。

数据模型应满足三方面要求:一是能比较真实的模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。

数据模型分为两类(两个不同的层次)

概念模型,也称为信息模型

它是按用户的观点来对数据和信息建模,主要用于数据库设计。

逻辑模型和物理模型

逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型和对象关系数据模型、半结构化数据模型等。它是按计算机系统的观点对数据建模,主要用于数据库管理系统(DBMS)的实现。

物理模型是对数据最底层的抽象,描述数据在系统内(磁盘上)的表示方式和存取方法,是面向计算机系统的。

 

1.2.2 概念模型

概念模型的用途

  • 概念模型用于信息世界的建模
  • 是现实世界到机器世界的一个中间层次
  • 是数据库设计的有力工具
  • 数据库设计人员和用户之间进行交流的语言

对概念模型的基本要求

  • 较强的语义表达功能
  • 简单、清晰、易于用户理解
图1.1 工厂物质管理的该你那模型

信息世界中的基本概念

  1. 实体(Entity)             客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念。 「例如图1.1中的供应商、仓库、职工、项目、零件。」
  2. 属性(Attribute)        实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。 「例如图1.1中的零件,就有5种属性,分别为零件号、名称、规格、单价、描述。」
  3. 码(Key)                     唯一标识实体的属性集称为码。 「例如公民的身份证号,学生的学号。」
  4. 实体型(Entity Type)用实体名及其属性名集合来抽象和刻画同类实体称为实体型。
  5. 实体集(Entity Set)   同一类型实体的集合称为实体集
  6. 联系(Relationship) 
  •         现实世界中事物内部以及事物之间的联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。 
  •         实体内部的联系: 是指组成实体的各属性之间的联系
  •         实体之间的联系: 通常是指不同实体集之间的联系
  •         实体之间的联系有一对一(1:1)、一对多(1:n)和多对多(m:n)等多种类型

概念模型的一种表示方法:实体-联系方法(Entity-Relationship Approach)即E-R图,图1.1即为E-R图。

1.2.3 数据模型的组成要素

数据模型是严格定义的一组概念的集合

精确地描述了系统的静态特性、动态特性和完整性约束条件(Integrity Constraints)。 

数据模型通常由数据结构、数据操作和数据的王正行约束条件三部分组成。

1. 数据结构--描述系统的静态特性

  •         刻画数据模型性质的重要方面
  •         数据结构的类型来命名数据模型
  •         层次结构-层次模型、网状结构--网状模型、关系结构—关系模型
  •         描述数据库的组成对象--对象的类型、内容、性质
  •         描述对象之间的联系

2. 数据操作--描述系统的动态特性

  • 数据操作:对数据库中各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则
  • 数据操作的类型:查询、更新(包括插入、删除、修改) 
  • 数据操作语言:定义数据操作的确切含义、符号、优先级别;实现数据操作的语言:查询语言——Query Language,更新语言——Insert、Delete、Update;

3. 完整性约束

  • 一组完整性规则的集合

        完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则。

        用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。

  • 数据模型对完整性约束条件的定义

        反映和规定必须遵守的基本的通用的完整性约束条件。

        提供定义完整性约束条件的机制,以反映具体应用所涉及的数据,必须遵守的特定的语义约束条件。

1.2.4 常用的数据模型

数据库领域中主要的逻辑数据模型有:层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型。其中层次模型和网络模型称为格式化模型。

1.2.5 层次模型

层次模型用树形结构来表示各类实体以及实体间的联系「例如家族关系」

表示方法:

实体型:用记录类型描述,每个结点表示一个记录类型(实体)

属性:用字段描述,每个记录类型可包含若干个字段

联系:用结点之间的连线表示记录类型(实体)之间的一对多的父子联系

层次模型的定义:

满足下面两个条件的基本层次联系的集合为层次模型

1. 有且只有一个结点没有双亲结点,这个结点称为根结点

2. 根以外的其它结点有且只有一个双亲结点

图1.2 一个层次模型的示例​​​​

 

特点:

  • 结点的双亲是唯一的
  • 只能直接处理一对多的实体联系
  • 任何记录值只有按其路径查看
  • 没有一个子女记录值能够脱离双亲记录值而独立存在

层次模型的数据操纵:查询;插入;删除;更新。

层次模型的完整性约束条件

无相应的双亲结点值就不能插入子女结点值

如果删除双亲结点值,则相应的子女结点值也被同时删除

更新操作时,应更新所有相应记录,以保证数据的一致性

优点:

层次模型的数据结构比较简单清晰

查询效率高,性能优于关系模型,不低于网状模型

层次数据模型提供了良好的完整性支持

缺点:

结点之间的多对多联系表示不自然

对插入和删除操作的限制多,应用程序的编写比较复杂

查询子女结点必须通过双亲结点

层次数据库的命令(语言)趋于程序化

 

1.2.6 网状模型

网状数据库系统采用网状结构来表示各类实体以及实体间的联系

表示方法(与层次数据模型相同)

实体型:用记录类型描述,每个结点表示一个记录类型(实体)

属性:用字段描述,每个记录类型可包含若干个字段

联系:用结点之间的连线表示记录类型(实体)之间的一对多的父子联系

网状模型的定义:

  • 满足下面两个条件的基本层次联系的集合:
  • 1. 允许一个以上的结点无双亲;
  • 2. 一个结点可以有多于一个的双亲。

特点:

  • 允许多个结点没有双亲结点
  • 允许一个结点有多个双亲结点
  • 允许两个结点之间有多种联系
  • 要为每个联系命名并指出与该联系有关的双亲记录和子女记录

多对多联系在网状模型中的表示

    网状模型间接表示多对多联系

    方法:

    将多对多联系分解成一对多联系

图1.3 学生/选课/课程的网状数据模型

    例:一个学生可以选修若干门课程,某一课程可以被多个学生选修,学生与课程之间是多对多联系

    引进一个学生选课的联结记录:选课(学号,课程号,成绩 )/* 某个学生选修某一门课程及其成绩 */

导航式的查询语言和增删改操作语言

完整性约束条件不严格

  • 允许插入尚未确定双亲结点值的子女结点值
  • 允许只删除双亲结点值

实际的网状数据库系统提供了一定的完整性约束

  • 支持码的概念:唯一标识记录的数据项的集合,取唯一的值;
  • 保证一个联系中双亲记录与子女记录之间是一对多联系;
  • 可以定义双亲记录和子女记录之间某些约束条件。

例:“属籍类别”的概念「如图1.3」

要求双亲记录存在才能插入子女记录,双亲记录删除时也连同删除。

选课记录就应该满足这种约束条件:

学生选课记录值中学号必须是学生记录中存在的某一学生的学号,

课程号必须是课程记录中存在的某一门课程号。

优点:

  • 能够更为直接地描述现实世界,如一个结点可以有多个双亲,结点之间可以有多种联系。
  • 具有良好的性能,存取效率较高。 

缺点:

  • 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;
  • DDL、DML语言复杂,并且要嵌入某一种高级语言中,用户不容易掌握,不容易使用;
  • 记录之间联系是通过存取路径实现的,应用程序必须选择适当的存取路径,因此用户必须了解系统结构的细节,加重了程序员的负担。

 

1.2.7 关系模型

关系模型是最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。

在用户观点下,关系模型中数据的逻辑结构是一张二维表。

关系模型中的一些术语:

表1.2 关系模型的数据结构(学生登记表)
学  号姓  名年  龄性  别系  名年  级
20210301刘备22计算机2021
20210303关羽21土木工程2021
20210305张飞20考古2021
··················
  • 关系(Relation)—— 一个关系对应通常说的一张表,「如表1.2 学生登记表」
  • 元组(Tuple)—— 表中的一行即为一个元组
  • 属性(Attribute)——表中的一列即为一个属性,给每一个属性起一个名称即属性名「如表1.2 共有6列,对应6个属性」
  • 主码(Key)——也称码键。表中的某个属性组,它可以唯一确定一个元组「如表1.2 学号可以唯一确定一个学生,也就成为本关系的码」
  • 域(Domain)——是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。

        例:学生年龄属性的域(15~45岁),性别的域是(男,女),系名的域是一个学校所有系名的集合;

  • 分量——元组中的一个属性值。 
  • 关系模式——对关系的描述

        关系名(属性1,属性2,…,属性n)

        例如表1.2 的关系可描述为    学生(学号,姓名,年龄,性别,系名,年级)

关系必须是规范化的,满足一定的规范条件,最基本的规范条件:关系的每一个分量必须是一个不可分的数据项,不允许表中还有表。图1.15中工资和扣除是可分的数据项 ,不符合关系模型要求

表1.3 术语对比
关系术语一般表格的术语
关系名表名
关系模式表头(表格的描述)
关系(一张)二维表
元组记录或行
属性
属性名列名
属性值列值
分量一条记录中的一个列值
非规范关系表中有表(大表中嵌有小表)

数据操作是集合操作,操作对象和操作结果都是关系

查询;插入;删除;更新。

存取路径对用户隐蔽,用户只要指出“找什么”,不必详细说明“怎么找”。    提高了数据的独立性,提高了用户生产率

关系的完整性约束条件

实体完整性:关系的两个不变性

参照完整性:关系的两个不变性

用户定义的完整性

优点

  • 建立在严格的数学概念的基础上
  • 概念单一,无论尸体还是实体之间的关系都用关系来表示。对数据的检索和更新结果也是关系。所以其数据结构简单、清晰,用户易懂易用。
  • 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。

缺点

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

① 需要了解的

  • 层次数据模型及网状数据模型的基本概念
  • 层次和网状数据库的内容十分精简
  • 这两类系统虽然有它们的缺点,但是执行效率高是他们的显著优点

② 需要牢固掌握的

  • 概念模型的基本概念
  • 数据模型的3个组成要素
  • 关系数据模型的相关概念

③难点

  • 数据模型的概念对于刚刚学习数据库的读者来说会感到比较抽象。

 

1.3  数 据 库 系 统 的 结 构

从数据库应用开发人员角度看,数据库系统采用三级模式结构,这是数据库系统内部的系统结构。从数据库最终用户角度看,数据库系统的结构分为单用户结构、主从式结构、分布式结构、客户-服务器、浏览器-应用服务器/数据库服务器多层结构等。

1.3.1 数据库系统模式的概念

模式(Schema) :是对数据库逻辑结构和特征的描述,仅仅是型的描述,不涉及具体值,模式是相对稳定的。

实例(Instance) :数据库某一时刻的状态是模式的一个具体值,同一个模式可以有很多实例,实例随数据库中的数据的更新而变动,实例是相对变动的。

 

1.3.2 数据库系统的三级模式结构

数据库系统的三级模式结构是值数据库系统是有外模式、模式和内模式三级构成,如图1.4所示。

图1.4 数据库系统的三级模式结构

模式(也称逻辑模式) 

数据库中全体数据的逻辑结构和特征的描述

所有用户的公共数据视图

一般,某个应用的数据库有一个模式

模式是数据库系统模式结构的中心

与数据的物理存储细节和硬件环境无关

与具体的应用程序、开发工具及高级程序设计语言无关

定义模式

DDL定义数据的逻辑结构,以某种数据模型为基础数据记录由哪些数据项构成,数据项的名字、类型、取值范围等

定义数据之间的联系

定义与数据有关的安全性、完整性要求

外模式(也称子模式或用户模式)

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

数据库用户的数据视图,是与某一应用有关的数据的逻辑表示

外模式与模式的关系

外模式通常是模式的子集、一个模式可以有多个外模式反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求

对模式中某一数据,在不同的外模式中 结构、类型、长度、保密级别等都可以不同

外模式与应用的关系

一个外模式可以为 多个应用系统所使用,一个应用程序只能使用一个外模式

外模式的用途

每个用户只能看见和访问所对应的外模式中的数据,简化用户视图

保证数据库安全性的一个有力措施

内模式(也称存储模式) 

是数据物理结构和存储方式的描述

是数据在数据库内部的表示方式

        记录的存储方式(例如,顺序存储,堆存储,Cluste按hash方法存储等) 

        索引的组织方式(B+树,Bitmap,Hash) 

        数据是否压缩存储

        数据是否加密

        数据存储记录结构的规定—如定长/变长,记录是否可以跨页存放等

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

 

1.3.3 数据库的二级映像功能与数据独立性

三级模式是对数据的三个抽象级别

数据库管理系统内部提供二级映像

外模式/模式映像

模式/内模式映像

三个抽象层次的联系和转换

对每一个外模式,有一个外模式/模式映像

定义外模式与模式之间的对应关系

映像定义通常包含在各外模式的描述中

保证数据的逻辑独立性

当模式改变时,数据库管理员对外模式/模式映像作相应改变,使外模式保持不变

应用程序是依据数据的外模式编写的,应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性

模式/内模式映象

定义了数据全局逻辑结构与存储结构之间的对应关系。 如,说明某个逻辑记录对应何种存储结构。 

数据库中模式/内模式映象是唯一的。

该映象定义通常包含在模式描述中。

保证数据的物理独立性

当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变。 

模式不变,则应用程序不变。保证了数据与程序的物理独立性,简称数据的物理独立性。

保证了应用程序的稳定性

除非应用需求本身发生变化,否则应用程序一般不需要修改。

从程序为中心——发展为 以数据为中心

具有了数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去 。 

数据的存取由数据库管理系统管理

简化了应用程序的编制

大大减少了应用程序的维护和修改

1.4  数 据 库 系 统 的 组 成

数据库

数据库管理系统(及其开发工具) 

应用程序

数据库管理员

  • 1. 硬件平台及数据库
  • 2. 软件
  • 3. 人员

硬件平台及数据库

数据库系统对硬件资源的要求

足够大的内存

足够的大的磁盘或磁盘阵列等外部设备

较高的通道能力,提高数据传送率

数据库管理系统

支持数据库管理系统运行的操作系统

与数据库接口的高级语言及其编译系统

以数据库管理系统为核心的应用开发工具

为特定应用环境开发的数据库应用系统

 

数据库管理员

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

应用程序员

最终用户

不同的人员涉及不同的数据抽象级别,具有不同的数据视图

1. 数据库管理员的职责(DBA)

  • 1. 参与确定数据库中的信息内容和结构
  • 2.参与数据库的存储结构和存取策略的设计
  • 3.参与确定数据安全性要求和完整性约束条件
  • 4.监控数据库的使用和运行

        周期性转储数据库

        数据文件

        日志文件

        系统故障恢复

        介质故障恢复

        监视审计文件

  • 5. 数据库的改进和重组

        性能监控和调优

        定期对数据库进行重组织,以提高系统的性能

        需求增加和改变时,数据库须需要重构造

2 . 系统分析员、数据库设计人员

  • 系统分析员

        负责应用系统的需求分析和规范说明

        与用户及数据库管理员结合,确定系统的硬软件配置

        参与数据库系统的概要设计

  • 数据库分析员

        参加用户需求调查和系统分析

        确定数据库中的数据

        设计数据库各级模式

3. 应用程序员

设计和编写应用系统的程序模块

进行调试和安装

4. 用户

用户是指最终用户(End User)。他们通过应用系统的用户接口使用数据库。 

1. 偶然用户

不经常访问数据库,但每次访问数据库时往往需要不同的数据库信息

企业或组织机构的高中级管理人员

2. 简单用户

主要工作是查询和更新数据库

银行的职员、机票预定人员、旅馆总台服务员

3. 复杂用户

工程师、科学家、经济学家、科技工作者等

直接使用数据库语言访问数据库,甚至能够基于数据库管理系统的应用程序接口编制自己的应用程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值