数据库 —— 数据管理与数据库

Posted 向上吧小鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库 —— 数据管理与数据库相关的知识,希望对你有一定的参考价值。

数据库 —— 数据管理与数据库

《数据库原理及其应用教程》第二章笔记电子档

目录


  • 数据库 —— 数据管理与数据库

    • 目录

    • 1. 数据库的常用术语

    • 2. 计算机数据管理技术和发展

    • 3. 数据模型

    • 4 实体——联系(E-R)模型

    • 5. 结构数据模型的分类

    • 6. 数据库系统的模式结构

    • 7. 数据库的二级映像功能和数据独立性

    • 8. DBMS的功能

    • 9. 数据库系统的组成



1. 数据库的常用术语

1.1. 数据、数据处理与数据管理

  • 传统/侠义的数据:能够进行加减乘除运算以及各种统计计算的数值。
  • 广义的数据:是描述客观事物特征或性质的符号。
  • 数据项:数据的基本单元,是最小的单位。(每个数据项都有 数据项名取值范围)
  • 记录型:即数据结构,对数据对象特征的抽象描述。
    • 记录名:数据对象名称
    • 字段:各个特征的名称
    • 记录:即数据,对特定对象的描述
  • 数据处理:对数据进行各种数学计算和统计加工的过程。
  • 数据管理:对数据进行收集、整理、组织、编码、存储、检索和传输等一系列操作的总称,是数据处理的前提和中心问题。

1.2. 信息与数据的关系

信息 = 数据 + 数据处理

  • 数据只是描述客观事物或性质的抽象符号,只是载荷信息的乌利符号,即我们接收信息的载体。
  • 信息是数据通过处理后,能够提取出有价值的数据,信息是从数据中提取的有价值的结果。

数据独立性:指数据与用户的应用程序相互独立。

  • 物理独立性:数据和应用程序在磁盘上存储的位置是相互独立的。
  • 逻辑独立性:数据和用户程序有一方逻辑发生改变时,并不会使另一方的逻辑改变。

1.3.数据库系统

  • 数据库(DB):是长期存储于计算机内,有组织的,可共享的数据集合,是数据的"仓库"。
  • 数据库管理系统(DBMS):是负责对数据库统一管理和控制(包括建库、操纵和控制数据等)的 软件,是数据库系统的核心。
  • 数据库系统(DBS):是数据库、数据库管理系统、操作系统、用户管理等集合,构成包括硬件、软件、数据库集合、管理员等。

我们常常简称数据库系统为数据库。

2. 计算机数据管理技术和发展

2.1 计算机数据库管理技术三个发展阶段

  1. 人工管理阶段(20世纪50年代中期以前)
  2. 文件系统阶段(20世纪50年代后期 - 60年代中期)
  3. 数据库系统阶段(60年代后期 - 至今)

2.2 人工管理阶段

  • 数据不保存,一般只用于计算,所以不会有存储。
  • 人工管理数据,即数据逻辑、物理结构包括地址、IO方式等都要程序员编码进去。
  • 数据不会共享,数据一般为程序服务,即数据和程序不相互独立。

2.3 文件系统阶段

  • 实现了数据长期保存。
  • 文件的多样化和结构化发展。
  • 文件系统管理数据,数据逻辑、物理结构等不再需要人工编码。

缺点:冗余度大,且数据独立性仍然较差,数据间的联系弱。

2.4 数据库系统阶段

  • 实现了数据的整体结构化。
  • 数据独立性高。
  • 共享性高、冗余度低、易扩大。
  • 具有完整的控制功能,如下:
    • 数据的安全性保护
    • 数据的完整性
    • 并发控制
    • 数据库恢复

2.5 数据库的技术发展

主要是数据模型的发展阶段。

  1. 第一代:1964年-1970年。层次数据模型和网状数据模型发展。
  2. 第二代:1970年至今。关系数据模型的发展。概念单一化。实用性强,以关系代数为基础,独立性强。
  3. 第三代:以面向对象数据模型为主要特征,但尚未成熟。

2.6 数据库的主要研究领域

  1. 数据库管理系统软件研发
  2. 数据库系统应用设计与研发
  3. 数据库理论

其实我们想要学的数据库基本上都在应用领域,而非研究领域。

3. 数据模型

3.1 什么是数据模型

  • 模型是现实世界某些特征的模拟和抽象。
  • 数据模型是一种抽象模型,数据库用于抽象表示和处理客观食物的数据特征与信息。

3.2 数据模型的构成三要素

  1. 数据结构:对所研究的对象类的抽象描述。
  2. 数据操作:主要有检索和更新两大类操作。
  3. 完整性约束:用以限定数据状态和变化,以保证数据的正确性、有效性和一致性。

3.3 数据模型的分类

1 抽象过程中的分类

  • 现实世界:客观存在的具体事物和各种概念的总和,是数据和信息的源泉。
  • 信息世界:对事物有一个认识抽象和加工整理的过程。
  • 机器世界:  计算机内的数据表现形态。

三个方面的性能要求:

  • 比较真实地模拟或抽象表示现实世界
  • 容易为人所理解
  • 便于计算机上实现
  1. 不同的抽象层次分类
  • 概念数据模型:对现实世界中各种事物及其联系特征的数据抽象。即将现实世界转换为信息世界。
  • 数据结构模型:即逻辑数据模型,主要是面向用户也要面向系统,一般由概念数据模型得到。
  • 物理数据模型:描述数据在存储介质上组织结构的数据模型。

4 实体——联系(E-R)模型

E-R模型:具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面应该简单、清晰且易于理解。

4.1 E-R模型的相关概念

实体(Entity):客观存在并可相互区别的事物。属性(attribute):实体所具有的若干特征。实体型(Entity type):具有相同属性的一类实体具有相同的特征和性质。实体集(Entity Set):若干同型实体的集合。关键字(key):唯一标识实体集中的每个实体的属性集合。域(domain):属性的取值范围。联系(relationship):事物内部以及事物之间的联系。

4.2 E-R图要点

  • 实体:用 矩形表示
  • 联系:用 菱形表示
  • 属性:用 椭圆表示

实际应用时,也分有集成分离两种构图方法。

5. 结构数据模型的分类

5.1 层次模型

定义:

  • 有且只有一个结点没有双亲,且称之为 根结点
  • 除根结点外其它结点有且只有一个父结点与之相连。

优点:

  • 结构简单,数据库操纵简单且方便。
  • 性能优于关系模型,不低于网状模型。
  • 该模型提供了良好的完整性支持。
  • 在一对多的层次关系描述中自然、直观、容易理解。

缺点:

  • 只能表示一对多的关系,多对多的关系需要笨拙复杂的辅助手段实现。
  • 层次顺序越复杂,数据的查询和更新操作复杂程度也会随之增长。

5.2 网状模型

定义:

  • 层次模型的基础上允许一个以上的结点无双亲
  • 一个结点可以有多个双亲

网状模型除比层次模型更为直接描述客观事物外,随着应用的范围扩大,其从结构到操作的复杂程度也让用户很难以上手。

5.3 关系模型

将客观事物的特征用二维表描述。每一个特征对应一个属性,每一个实例对应一行元组,且元组中某个属性的值即一个分量。

关系模式:对应一个二维表的表头,即各个属性名组合成的集合。当一个二维表没有任何实例时,即为关系模式。

如:人(姓名, 年龄, 身高, 体重)就是一个关系模式,即表结构。人(小明, 20, 180m, 130g)就是一个实例,在关系表中表示为一个元组,而姓名所对应的小明即该元组的一个分量。

候选键:某些属性的集合,用以唯一确定一个元组。关系模式中通常会选择一个属性作为主键,用以唯一标识一个元组。

5.4 关系模型的操作

关系数据模型的操作包括了查询更新两大类,且操作的对象往往是集合操作,或者也可以说是操作的对象和结果都用关系表示。

更新操作实例:

INSERT INTO TB_SELECT_TST
(
 [UNAME],
 [UPHONE],
 [UGENDER],
 [UAGE]
)
VALUES
'小鱼'10011'男'18 ), 
'大鱼'1001012'男'33 ), 
'鲨鱼'1001011'男'21 ), 
'带鱼'10010'男'22 ), 
'鲫鱼'10000'男'20 ), 
'鲤鱼'1000011'男'28 ), 
'鲸鱼'1008622'男'118 ),
'烤鱼'1008610'男'48 ),  
'鱿鱼'1008611'男'18 )
GO

操作结果信息:

关系表中有9行更新

查询操作实例:

SELECT * FROM TB_SELECT_TST
GO

操作结果:

6. 数据库系统的模式结构

关系模式其实就是属性集合,在关系表中作为表结构或表头,即模式是对全体数据的特征及其联系的结构化描述。模式的具体值称为实例,在关系表中作为元组。

6.1 数据库的三级模式

三级模式是指DBMS将数据库中的数据抽象成外模式(逻辑)模式内模式,是对数据库中进行有效组织和管理的方法。抽象的目的有三,一是减少数据冗余,实现数据共享,二是提高存取效率,改善性能,三是提高数据的逻辑和物理的独立性。

模式:即逻辑模式,还有结构模式、概念模式两个别称,但常简称为模式,其是对数据库中全体数据的整体逻辑结构和特征的描述,它与结构数据模型对应。它是由数据库管理系统提供的数据模式描述语言(Data Description Language,DDL)来描述、定义的,体现、反映了 数据库系统的整体观。(有一说法DDL是数据模式定义语言[Data Definition Language,DDL],但在模式抽象中,我们更注重于抽象描述,所以个人倾向于将DDL理解为数据模式描述语言,但本质上说的都是一样的。)

外模式:别称用户模式,也有称为子模式,它是概念模式子集。外模式包含了用户能够看见和使用的部分数据,即用户可以通过外模式的数据模式描述语言和操纵语言进行数据记录。本质上外模式对应的是数据库的视图概念,因为视图没有自己特定的概念模式和内模式与之对应。

内模式:内模式也称为存储模式或物理模式,是数据库物理结构和存储方式的描述,也是数据在数据库内部的表示方式,对应的是物理数据模型。

可以注意的是一个数据库中,模式和内模式只能有一个。当对某一个客观事物进行抽象描述时,我们可以根据不同需求而设计出不同的结构,一旦结构确定后,一般不会再有另外一种结构与之共存,而其对应的内模式也会因概念结构的设计而有特定的存储方式。而当用户对数据进行处理时,可以根据不同的业务或需求而同时设计不同的描述方式。

如对学生和学生成绩抽象时,可以分别设计为(学号,姓名,年级, 专业, 班级)和(学号, 科目, 分数),这样结构、物理模式便唯一确定。有一个A老师需要查询某些数据时,可以这样设计外模式:(学号, 姓名, 科目,分数)进行关联查询,而有一个班主任B需要查看自己班级的学生成绩时,就可以这样设计外模式:(学号, 姓名, 班级, 科目,分数)。因此可以看出,当用户针对不同需求进行相关操作时,其外模式的描述方式也可以有所不同。

7. 数据库的二级映像功能和数据独立性

本质上外模式是针对用户而设计的,而内模式是针对计算机设计的,而用户和计算机交互时,会有一个中间层充当中转的作用,即概念模式。针对于概念模式,便产生了两层映像,即外模式/概念模式映像概念模式/内模式映像。这样设计的好处是,用户不需要了解计算机的存储结构和方式,而设计数据库系统时也不需要根据业务而特定定制,也是两层映像保证了数据库系统中的数据具有较高的逻辑独立性和物理独立性。

7.1 外模式/概念模式映像

该映像用于在定义外模式和概念模式之间的对应关系,且于外模式中定义。当概念模式发生改变时,用户只需要对该层映像进行相应的变动,便不需要改动外模式的抽象描述,从而也不需要修改依赖该外模式的应用程序。外模式/概念模式映像保证了数据和程序之间的逻辑独立性,简称为数据的逻辑独立性。

7.2 概念模式/内模式映像

由于概念模式和内模式都是唯一的,这样也能够确定概念模式和内模式影响也是唯一的。和外模式/概念模式映像相对应,当改变了物理存储的表示方式和抽象描述时,DBA也只需要对该层映像进行相应的改变,也能够使得概念模式保持不变,对应的外模式和应用程序也不会受到任何影响。这样,概念模式/内模式映像保证了数据和程序之间的物理独立性,简称为数据的物理独立性。

7.3 数据独立性和稳定性

需要注意的是,应用程序依赖于外模式,因此当业务改变时,如果外模式没能满足接下来的需求,也是需要将外模式进行相应的变动的,所以设计外模式时一定要考虑到扩充性,以满足未来潜在的需求。二级映像保证了数据库外模式的稳定性,从而保证应用程序在业务运转中的稳定性,一般除非是整体业务发生变化,否则应用程序不需要做太大的改动便能满足业务范围内的需求。

8. DBMS的功能

  • 数据库的定义功能:DBMS提供数据定义语言(DDL),用户通过它可以方便地对数据库中的数据对象进行定义。
  • 数据操纵功能:DBMS提供DML实现对数据库中数据的一些基本操作,如增删改查等。
  • 数据库控制语言功能:包括了数据库运行期间的并发控制、存取控制(如安全性检查、完整性约束条件的检查、数据库内部索引和数据字典的自动维护、缓冲区大小的设置等)。
  • 数据库的建立和维护功能:包括了初始数据的装入、数据库的转储或后备功能、数据库恢复功能、数据库的重组织功能以及性能分析等功能。

9. 数据库系统的组成

硬件软件相关人员。数据库是存取东西的,硬件要求肯定是存储容量大,且通道传输效率高。而软件肯定要包含着数据库管理系统和操作系统的,而且要支持用户开发的各种应用程序以满足各种需求。这些可以一句带过的,略。



以上是关于数据库 —— 数据管理与数据库的主要内容,如果未能解决你的问题,请参考以下文章

Rails:旧数据与新数据不匹配时如何更新片段缓存

python 用于数据探索的Python代码片段(例如,在数据科学项目中)

将代码片段插入数据库并在 textarea 中以相同方式显示

如何将数据从一个片段传输到另一个片段android

超级有用的9个PHP代码片段

从片段中获取输入数据