数据库原理笔记:第一章

本文详细介绍了数据库系统的基本概念,包括数据、数据库、数据库管理系统和数据库系统的特征。数据管理技术经历了从人工管理到文件系统再到数据库系统的演变,数据库系统的特点包括数据结构化、高共享性、低冗余和数据独立性。数据模型是数据库系统的核心,分为概念模型、逻辑模型和物理模型,其中关系模型是最常见的逻辑模型。数据库系统采用三级模式结构,通过二级映像实现数据独立性,确保应用程序的稳定性和数据的隔离。
摘要由CSDN通过智能技术生成

数据库原理笔记:第一章

用于日常学习的积累和方便期末考试复习,如有不足请多多指教。
学习书目:《数据库系统概论》(第五版)高等教育出版社

一、数据库系统概述

(一)数据库的4个基本概念

1.数据(data)

  • 数据:描述事物的符号记录。
  • 数据是数据库中存储的基本对象
  • 数据的含义称为数据的语义,数据与其语义是不可分的

2.数据库(DataBase,DB)

(1)数据库的定义

数据库是长期储存在计算机内有组织的、可共享大量数据的集合。
注意:数据库是特指储存在计算机存储设备上的仓库。

(2)建立数据库的目的

收集并抽取出一个应用所需要的大量数据,将其保存,以供进一步加工处理,抽取有用信息,转换为有价值的知识

(3)数据库的基本特征
  • 数据按一定的数据模型组织、描述和储存
  • 具有较小冗余度
  • 数据独立性较高
  • 易扩展
  • 可为各种用户共享

3.数据库管理系统(DataBase Management System,DBMS)

(1)数据库管理系统的定义
  • 数据库管理系统是位于用户与操作系统之间的一层数据管理软件。
  • 是计算机的基础软件,也是一个大型复杂的软件系统
    数据库在计算机系统中的地位
(2)数据库管理系统的用途
  • 科学地组织和存储数据、高效地获取和维护数据。
(3)数据库管理系统的主要功能
1)数据定义功能
  • 提供数据定义语言(Data Definition Language, DDL)
  • 定义数据库中的数据对象
2)数据组织、存储和管理
  • 分类组织、存储和管理各种数据
  • 确定组织数据的文件结构和存取方式
  • 实现数据之间的联系
  • 提供多种存取方法来提高存取效率
3)数据操纵功能
  • 提供数据操纵语言(Data Manipulation Language,DML)
  • 实现对数据库的基本操作 (查询、插入、删除修改等)
4)数据库的事务管理和运行管理
  • 数据库在建立、运行和维护时由数据库管理系统统一管理和控制
  • 保证数据的安全性、完整性、多用户对数据的并发使用
  • 发生故障后的系统恢复
5)数据库的建立和维护功能
  • 数据库初始数据的输入、转换功能
  • 数据库转储、恢复功能
  • 数据库的重组织
  • 性能监视、分析功能
    ……
6)其他功能
  • 数据库管理系统与网络中其它软件系统的通信
  • 数据库管理系统系统之间的数据转换
  • 异构数据库之间的互访和互操作

4.数据库系统(DataBase System,DBS)

简称为数据库(在一般不引起混淆的情况下)

(1)数据库系统的定义

数据库系统是指在计算机系统中引入数据库后的系统构成
在不引起混淆的情况下常常把数据库系统简称为数据库。)

(2)数据库系统的构成
  • 数据库——提供数据的存储功能
  • 数据库管理系统(及其应用开发工具)——提供数据的组织、存取、管理和维护等基础功能
  • 应用程序——根据应用需求使用数据库
  • 数据库管理员(和用户) ——负责全面管理数据库系统
    数据库系统

(二)数据管理技术的产生和发展

1.数据管理

  • 对数据进行分类、组织、编码、存储、检索和维护
  • 数据处理的中心问题

数据处理:对各种数据进行收集、存储、加工和传播的一系列活动的总和

2.数据管理技术的发展动力

  • 应用需求的推动
  • 计算机硬件的发展
  • 计算机软件的发展

3.数据管理技术的三个发展阶段

  • 人工管理阶段(20世纪40年代中-- 50年代中之前)
  • 文件系统阶段(20世纪50年代末–60年代中)
  • 数据库系统阶段(20世纪60年代末–现在)
    数据管理技术的三个发展阶段
(1)人工管理阶段应用程序与数据之间的对应关系:一一对应

人工管理阶段应用程序与数据之间的对应关系:一一对应

(2)文件系统阶段应用程序与数据之间的对应关系

文件系统阶段应用程序与数据之间的对应关系

(3)数据库系统阶段应用程序与数据之间的对应关系

数据库系统阶段应用程序与数据之间的对应关系

(三)数据库系统的特点

1.数据结构化

数据的整体结构化是数据库的主要特征之一

  • 不再仅仅针对某一个应用,而是面向全组织
  • 不仅数据内部结构化,整体是结构化的,数据之间具有联系
  • 数据记录可以变长
  • 数据的最小存取单位是数据项
  • 数据的用数据模型描述,无需应用程序定义

2.数据的共享性高,冗余度低且易扩充

  • 数据面向整个系统,可以被多个用户、多个应用共享使用。
(1)数据共享的好处
  • 减少数据冗余,节约存储空间
  • 避免数据之间的不相容性与不一致性

数据的不一致性:同一数据不同副本的值不一样

  • 使得数据库系统弹性大,易于扩充

3.数据独立性高

(1)物理独立性

指用户的应用程序与数据库中数据的物理存储是相互独立的。当数据的物理存储改变了,应用程序不用改变。

(2)逻辑独立性

指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,应用程序不用改变。

4.数据由数据管理系统统一管理和控制
(1)数据的安全性(Security)保护

使每个用户只能按指定方式使用和处理指定数据,保护数据以防止不合法的使用造成的数据的泄密和破坏

(2)数据的完整性(Integrity)检查

保证数据的正确性、有效性和相容性。完整性检查将数据控制在有效的范围内,或保证数据之间满足一定的关系。

(3)并发(Concurrency)控制

对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。

(4)数据库恢复(Recovery)

将数据库从错误状态恢复到某一已知的正确状态(完整状态/一致状态)。

(四)数据库概念小结

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

二、数据模型

  • 数据模型是对现实世界数据特征的抽象
  • 数据模型是数据库系统的核心和基础

数据模型应满足三方面要求

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

(一)两类数据模型

1.概念模型(也称信息模型)

  • 是按用户的观点来对数据和信息建模,用于数据库设计。
(1)概念模型的用途
  • 概念模型用于信息世界的建模
  • 是现实世界到机器世界的一个中间层次
  • 是数据库设计的有力工具
  • 数据库设计人员和用户之间进行交流的语言
(2)对概念模型的基本要求

较强的语义表达能力
简单、清晰、易于用户理解

(3)信息世界中的基本概念
实体(Entity)
  • 客观存在并可相互区别的事物称为实体。
  • 实体可以是具体的人、事、物或抽象的概念。
属性(Attribute)
  • 实体所具有的某一特性称为属性。
  • 一个实体可以由若干个属性来刻画。
码(Key)
  • 唯一标识实体的属性集称为码。
实体型(Entity Type)
  • 用实体名及其属性名集合来抽象和刻画同类实体称为实体型
实体集(Entity Set)
  • 同一类型实体的集合称为实体集
联系(Relationship)
  • 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
  • 实体内部的联系通常是指组成实体的各属性之间的联系
  • 实体之间的联系通常是指不同实体集之间的联系
  • 实体之间的联系有一对一、一对多和多对多等多种类型
    在这里插入图片描述
(4)概念模型的一种表示方法——实体-联系方法(Entity-Relationship Approach)
  • 用E-R图来描述现实世界的概念模型
  • E-R方法也称为E-R模型
(5)E-R图
实体型

用矩形表示,矩形框内写明实体名。

属性

用椭圆形表示,并用无向边将其与相应的实体连接起来

联系

用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)
(联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来)
联系
例图:
学生实体及其属性:
学生实体及其属性
联系的属性:
联系的属性

2.逻辑模型和物理模型

  • 逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。
    按计算机系统的观点对数据建模,主要用于DBMS实现。
  • 物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
(1)层次模型

层次模型用树形结构来表示各类实体以及实体间的联系

1)层次模型的数据结构

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

  1. 有且只有一个结点没有双亲结点,这个结点称为根结点
  2. 根以外的其它结点有且只有一个双亲结点
2)层次模型中的几个术语
  • 根结点( 有且只有一个结点没有双亲结点)
  • 双亲结点
  • 兄弟结点(同一双亲的子女结点)
  • 叶结点(没有子女结点)
    一个层次模型的示例
2)层次模型的特点
  • 结点的双亲是唯一的
  • 只能直接处理一对多的实体联系
  • 每个记录类型可以定义一个排序字段,也称为码字段
  • 任何记录值只有按其路径查看时,才能显出它的全部意义
  • 没有一个子女记录值能够脱离双亲记录值而独立存在
3)层次模型的数据操纵

查询、插入、删除、更新

4)层次模型的完整性约束条件
  • 如果没有相应的双亲结点值就不能插入它的子女结点值
  • 如果删除双亲结点值,则相应的子女结点值也被同时删除
  • 更新操作时,应更新所有相应记录,以保证数据的一致性
5)层次模型的优点
  • 层次模型的数据结构比较简单清晰
  • 查询效率高,性能优于关系模型,不低于网状模型
  • 层次数据模型提供了良好的完整性支持
6)层次模型的缺点
  • 结点之间的多对多联系表示不自然
  • 对插入和删除操作的限制多,应用程序的编写比较复杂
  • 查询子女结点必须通过双亲结点
  • 层次命令趋于程序化
(2)网状模型
1)网状模型的数据结构

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

  1. 允许一个以上的结点无双亲。
  2. 一个结点可以有多于一个的双亲。
2)网状模型与层次模型的区别
  • 网状模型允许多个结点没有双亲结点
  • 网状模型允许结点有多个双亲结点
  • 网状模型允许两个结点之间有多种联系(复合联系)
  • 网状模型可以更直接地描述现实世界
  • 层次模型实际上是网状模型的一个特例
3)多对多联系在网状模型中的表示方法
  • 将多对多联系直接分解成一对多联系(即可以用网状模型间接表示多对多联系)
4)网状模型的操纵

查询、插入、删除、更新

5)网状模型的完整性约束

1.完整性约束条件不严格

  • 允许插入尚未确定双亲结点值的子女结点值
  • 允许只删除双亲结点值
    2.网状数据库系统(如DBTG)对数据操纵加了一些限制,提供了一定的完整性约束.
  • 支持记录码的概念。(码:唯一标识记录的数据项的集合)
  • 一个联系中双亲记录与子女记录之间是一对多联系
  • 支持双亲记录和子女记录之间某些约束条件
6)网状模型的优点
  • 能够更为直接地描述现实世界,如一个结点可以有多个双亲
  • 具有良好的性能,存取效率较高
7)网状模型的缺点
  • 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
  • DDL、DML语言复杂,用户不容易使用
  • 记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节
(3)关系模型
  • 关系数据库系统采用关系模型作为数据的组织方式。
1)关系模型的数据结构

在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
关系模型的数据结构

关系(Relation)
  • 一个关系对应通常说的一张二维表
元组(Tuple)
  • 表中的一行即为一个元组
属性(Attribute)
  • 表中的一列即为一个属性,给每一个属性起一个名称即属性名
主码(Key)
  • 也称码键。表中的某个属性组,它可以唯一确定一个元组
域(Domain)
  • 是一组具有相同数据类型的值的集合。属性的取值范围来自某个域
分量
  • 元组中的一个属性值
关系模式
  • 对关系的描述:
    关系名(属性1,属性2,…,属性n)
    学生(学号,姓名,年龄,性别,系名,年级)

注意: 关系必须是规范化的,满足一定的规范条件最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表 。

术语对比

在这里插入图片描述

2)关系模型的操纵与完整性约束
  • 数据操作是集合操作操作对象操作结果都是关系
  • 存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”
关系的完整性约束条件
  • 实体完整性
  • 参照完整性
  • 用户定义的完整性
3)关系模型的优点
  • 建立在严格的数学概念的基础上
  • 概念单一
    ·实体和各类联系都用关系来表示
    ·对数据的检索结果也是关系
  • 关系模型的存取路径对用户透明
    ·具有更高的数据独立性,更好的安全保密性
    ·简化了程序员的工作和数据库开发建立的工作
4)关系模型的缺点
  • 存取路径对用户透明,查询效率往往不如格式化数据模型
  • 为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度
(4)面向对象数据模型
(5)对象关系数据模型
(6)半结构化数据模型

3.客观对象的抽象过程

(1)现实世界中的客观对象抽象为概念模型——将现实世界抽象为信息世界(数据库设计人员完成)
(2)把概念模型转换为某一数据库管理系统支持的数据模型——将信息世界转换为机器世界
(概念模型→逻辑模型:数据库设计人员完成,数据库设计工具协助完成;
逻辑模型→物理模型:由DBMS完成)
客观对象的抽象过程

(二)数据模型的组成要素

  • 数据模型是严格定义的一组概念的集合。
  • 数据结构由三部分组成:

1.数据结构(对系统静态特性的描述)

  • 数据结构描述数据库的组成对象以及对象之间的联系。
  • 数据结构是所描述对象类型的集合。
(1)刻画数据模型性质的重要方面
  • 数据结构的类型来命名数据模型(关系结构→关系模型)
(2)描述的内容
  • 与对象的类型、内容、性质有关
  • 与数据之间联系有关的对象

2.数据操作(对系统动态特性的描述)

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

3.数据的完整性约束条件

  • 数据的完整性约束条件是一组完整性规则的集合
(1)完整性规则
  • 给定的数据模型中数据及其联系所具有的制约和依存规则
  • 用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容
(2)数据模型对完整性约束条件的定义
  • 反映和规定必须遵守的基本的通用的完整性约束条件。
  • 提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件

三、数据库系统的结构

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

(一)数据库系统模式的概念

1.“型” 和“值” 的概念

  • 型(Type)
    对某一类数据的结构和属性的说明
    记录型:(学号,姓名,性别)
  • 值(Value)
    是型的一个具体赋值
    值:(20221234,小明,男)

2.模式(Schema)

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

3.实例(Instance)

  • 模式的一个具体
  • 反映数据库某一时刻的状态
  • 同一个模式可以有很多实例
  • 实例随数据库中的数据的更新而变动

(二)数据库系统的三级模式结构

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

1.模式(Schema)(也称逻辑模式)

  • 数据库中全体数据的逻辑结构和特征的描述
  • 所有用户的公共数据视图
  • 一个数据库只有一个模式
1)模式的地位:是数据库系统模式结构的中间层

与数据的物理存储细节和硬件环境无关
与具体的应用程序、开发工具及高级程序设计语言无关

2)定义模式
  • 定义数据的逻辑结构(数据项的名字、类型、取值范围等)
  • 定义数据之间的联系
  • 定义数据有关的安全性、完整性要求

2.外模式(External Schema)(也称子模式或用户模式)

  • 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
  • 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
1)外模式的地位:介于模式与应用之间
  • 模式与外模式的关系:一对多
    · 外模式通常是模式的子集
    · 一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求
    · 对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同
  • 外模式与应用的关系:一对多
    · 同外模式也可以为某一用户的多个应用系统所使用
    · 但一个应用程序只能使用一个外模式
2)外模式的用途
  • 保证数据库安全性的一个有力措施
  • 每个用户只能看见和访问所对应的外模式中的数据,简化永华视图

3.内模式(Internal Schema)(也称存储模式)

  • 是数据物理结构和存储方式的描述
  • 一个数据库只有一个内模式
  • 是数据在数据库内部的表示方式:
    · 记录的存储方式(例如,顺序存储,按照B树结构存储,按hash方法存储等)
    · 索引的组织方式
    · 数据是否压缩存储
    · 数据是否加密
    · 数据存储记录结构的规定

(三)数据库的二级映像功能与数据独立性

  • 三级模式是对数据的三个抽象级别
  • 二级映象(外模式/模式映像、模式/内模式映像)在数据库管理系统内部实现这三个抽象层次的联系和转换

1.外模式/模式映像

1.模式:描述的是数据的全局逻辑结构
2.外模式:描述的是数据的局部逻辑结构
3.同一个模式可以有任意多个外模式
4.每一个外模式,数据库系统都有一个外模式/模式映象,定义5.外模式与模式之间的对应关系
6.映象定义通常包含在各自外模式的描述中

1)外模式/模式映像能保证数据的逻辑独立性
  • 当模式改变时,数据库管理员对外模式/模式映象作相应改变,使外模式保持不变
  • 应用程序是依据数据的外模式编写的,应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性

2.模式/内模式映像

1.模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。
2.数据库中模式/内模式映象是唯一的:数据库中只有一个模式,也只有一个内模式
3.该映象定义通常包含在模式描述中

1)模式/内模式映像能保证数据的物理独立性
  • 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变。
  • 应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性

3.数据库的二级映像作用

  • 保证了数据库外模式的稳定性
  • 从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改
  • 数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去
  • 数据的存取由数据库管理系统管理:简化了应用程序的编制,大大减少了应用程序的维护和修改

四、数据库系统的组成

数据库系统一般又数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理人员构成。

(一)硬件平台及数据库

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

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

(二)软件

1.数据库系统的软件主要包括:

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

(三)人员

1.开发、管理和使用数据库数据库系统的人员主要包括:

在这里插入图片描述

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

1)数据库管理员(DBA)
  • 决定数据库中的信息内容和结构
  • 决定数据库的存储结构和存取策略
  • 定义数据的安全性要求和完整性约束条件
  • 监控数据库的使用和运行
    · 周期性转储数据库(数据文件、日志文件)
    · 系统故障恢复
    · 介质故障恢复
    · 监视审计文件
  • 数据库的改进和重组
    · 性能监控和调优
    · 定期对数据库进行重组织,以提高系统的性能
    · 需求增加和改变时,数据库须需要重构造
2)系统分析员和数据库设计人员
  1. 系统分析员
  • 负责应用系统的需求分析和规范说明
  • 与用户及数据库管理员结合,确定系统的硬软件配置
  • 参与数据库系统的概要设计
  1. 数据库设计人员
  • 参加用户需求调查和系统分析
  • 确定数据库中的数据
  • 设计数据库各级模式
3)应用程序员
  • 设计和编写应用系统的程序模块
  • 进行调试和安装
4)最终用户

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

  1. 偶然用户
  • 不经常访问数据库,但每次访问数据库时往往需要不同的数据库信息
    (企业或组织机构的高中级管理人员)
  1. 简单用户
  • 主要工作是查询和更新数据库
    (银行的职员、机票预定人员、旅馆总台服务员)
  1. 复杂用户
  • 直接使用数据库语言访问数据库,甚至能够基于数据库管理系统的应用程序接口编制自己的应用程序
    (工程师、科学家、经济学家、科技工作者等)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fqlll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值