数据库系统原理课堂笔记

课程基本信息

教师:林友芳

教材:

image.png

课程安排

image.png

 

分数构成

平时分 考勤、作业 50
期末考试 客观题(考察概念) 25
主观题 25
image.png

 

慕课

https://www.icourse163.org/learn/NJTU-1450818183?tid=1464964445#/learn/content

 

作业详细信息

要求学生掌握四层以上架构数据库系统全栈编程技术。培养学生复杂系统设计与编程实现能力,树立技术自信,有效串接多科知识。

image.png

 

第一章 数据库系统概述

 

本章主要教学内容

image.png

 

第一节 数据库的四个基本概念

  1. 数据(Data)
  2. 数据库(Database, DB)
  3. 数据库系统(Database System, DBS)
  4. 数据库管理系统(Database Management System, DBMS)

这四个概念之间关系的语义网络:

image.png

 

数据

数是符号,据是凭据。

数据,是记录下来当成凭据的符号。

这个理解挺有意思。

image.png

 

数据库

数据库与水库类比:

  • 水库:有需求,有水源,有设施,有空间,实现水流控制,有组织,有管理,可共享,有服务,服务于不同的目的
  • 数据库:有需求,有数据源,有设施,有空间,实现数据控制,有组织,有管理,可共享,有服务,服务于不同的目的

image.png

数据库的定义

A database is an organized collection of data. Formally, a “database” refers to a set of related data and the way it is organized.

数据库是长期存放在计算机内、有组织的、可共享的数据集合。 数据库中的数据按一定的数据模型组织、描述和存储,且具有较小的冗余度、较高的数据独立性和易扩展性,并可为多个用户共享。

 

数据库管理系统

数据库管理系统的定义

A database-management system (DBMS) is a computer software application that interacts with end-users, other applications, and the database itself to capture, provide access to and analyze data.

数据库管理系统是用于建立、使用和维护数据库的软件。

  • “建立”:如何定义、组织和存储数据
  • “使用”:查询、插入、删除和修改数据
  • “维护”:保证数据的安全性、完整性

 

数据库管理系统的位置与功能

image.png

 

数据库系统

数据库系统的定义

采用了数据库技术的计 算机系统,包括DB、 DBMS、开发工具、 应用系统、硬件、软件、 用户和DBA(数据库管理员)。

image.png

 

数据处理与数据管理

【数据处理】: 是对各种形式的数据进行收集、储存、加工、 管理和传播的一系列活动的总和。

【数据管理】: 是指数据的分类、组织、编码、存储、维护、 检索等操作,是数据处理的核心。

数据的管理经历了多个阶段。

 

第二节 数据管理技术的发展阶段

image.png

 


先聊聊磁带。磁带是顺序存取数据的。也就是说,即使我们知道数据在哪里,也要先按顺序,倒带到那个位置,再存取数据(比如说播放录音)。

直接存取则是知道了地址,就可以取出该地址的内容了。

虽然磁带是顺序存储的,速度慢且体积大,但磁带依然又它的地位。因为磁带的存储寿命较长,而且维护成本低廉——不用插电,只要找个地方放磁带就行。

参考资料


https://zh.wikipedia.org/wiki/%E7%A3%81%E5%B8%A6

 

人工管理阶段

image.png

特点

  1. 数据不长期保存

  2. 应用程序管理数据

    没有专有的软件对数据进行管理, (应用程序要规定数据的逻辑结构和物理结构,包括存储结构,存取方法,输入方式)。

  3. 数据不具有独立性

    数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改。

  4. 数据不共享

    数据面向程序,即一组数据对应一个程序,当多个应用涉及相同 数据时,程序之间有大量的冗余数据。


【自己的补充】

数据独立性,指应用程序和数据结构之间相互独立,一方改变,另一方不需要如何改变。

正是三级模式间的两层映像保证了数据库系统中的数据具有较高的数据独立性。

数据独立性包括数据逻辑独立性和数据物理独立性。

但我们追求的不是绝对独立,而是相对独立。


 

文件系统阶段

image.png

 


【自己的补充】

  • 批处理(Batch),也称为批处理脚本

    顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOSWindows系统中。

    批处理文件的扩展名为bat 。目前比较常见的批处理包含两类:DOS批处理和PS批处理。

    PS批处理是基于微软的强大的PowerShell的,用来批量处理一些任务的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。

    更复杂的情况,需要使用if、for、goto等命令控制程式的运行过程,如同CBasic等高级语言一样。如果需要实现更复杂的应用,利用外部程式是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。

    批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前系统下可运行的程序都可以放在批处理文件中运行。

  • 并行处理(Parallel Processing)是计算机系统中能同时执行两个或多个处理的一种计算方法。

    并行处理可同时工作于同一程序的不同方面。并行处理的主要目的是节省大型和复杂问题的解决时间。为使用并行处理,首先需要对程序进行并行化处理,也就是说将工作各部分分配到不同处理进程(线程)中。

    并行处理由于存在相互关联的问题,因此不能自动实现。另外,并行也不能保证加速。从理论上讲,在 n 个并行处理的执行速度可能会是在单一处理机上执行的速度的 n 倍。

  • 分布式处理(distributed processing)和并行处理(Parallel processing)是为了提高并行处理速度采用的两种不同的体系架构。

    并行处理是利用多个功能部件或多个处理机同时工作来提高系统性能或可靠性的计算机系统,这种系统至少包含指令级或指令级以上的并行。

    分布式处理则是将不同地点的,或具有不同功能的,或拥有不同数据的多台计算机通过通信网络连接起来,在控制系统的统一管理控制下,协调地完成大规模信息处理任务的计算机系统

  • 并行处理与分布式处理的区别

    并行处理与串行处理相对。也就是说,在有多个任务时,串行处理是一个接一个地处理,而并行处理是同时做这多个任务。并行处理包括多线程。

    而分布式处理与单个计算机处理相对。它强调的是多台计算机。

    所以说,分布式处理和并行处理是在两个不同的维度。用多台计算机,然后同时处理,那就是并行处理和分布式处理都有。

  • 联机实时处理

    请求的接受和处理都是实时的,一旦处理完成后就要实时将处理结果传给用户。所以,联机实时处理对处理速度有较高要求。

  • 脱机处理

    早期

    • 早期用手工操作方式使用计算机时,操作和输入输出都是联机的,由中央处理机直接控制完成,作业时间很长(见联机处理)。

    脱机处理技术的出现

    • 随着计算机速度不断提高,中央处理机在输入输出操作时要等待慢速的联机输入输出设备,不能充分发挥应有的效率。为此,在批处理引入了脱机输入输出:在主机之外另设一台小型微型机,该机只与外部设备打交道,把要处理的信息成批地输入到高速的辅助存储器(磁带或磁盘)中,再把辅助存储器与主机连接起来。主机仅从高速的辅助存储器中调入信息进行处理,作业完成后,处理结果和有关信息以文件形式存于辅助存储器中,然后再把它们转移到微型机去输出。

    微型机的特点

    • 工作完全独立于主机进行,使主机能摆脱慢速的输入输出工作的牵制。如果输入输出任务繁重,则可配置若干台微型机,一些专门从事脱机输入,另一些专门从事脱机输出。

参考资料


https://blog.csdn.net/Vinsuan1993/article/details/72959235

 

特点(要理解)

  1. 数据可长期保存

    在外存的磁盘中

  2. 由文件系统管理数据

    实现按文件名访问,按记录存取。

  3. 数据共享性差,冗余度大

    一个文件基本上对应一个应用程序,不同的应用程序具有相同的数据时,造成数据的冗余,以及由于重复存储,各自管理造成数据 的不一致性。

  4. 数据独立性差

    一旦数据的逻辑结构改变,必须修改应用程序,修改文件结构的 定义。因此数据与程序之间仍缺乏独立性。

第一节课到此结束

 

数据库系统阶段

数据管理技术进入数据库阶段的标志,是1960年代 末发生的三件大事:

  • 1968年,美国IBM公司推出层次模型的IMS系统
  • 1969年,美国数据系统语言协会(CODASYL)的数据库任 务组(DBTG)发表关于网状模型的DBTG报告(1971年通 过)
  • 1970年,美国IBM公司的E.F. Codd提出关系模型,奠定 了关系数据库的理论基础。
image.png

特点

  1. 数据结构化

    数据模型不仅描述数据本身的特点,还描述数据 之间的联系。整体数据结构化。不仅数据是结构化的, 存取数据的方式也灵活。

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

    数据是面向整个系统,不是面向应用的,所以多应 用多用户可共享数据,减少冗余,避免数据的不一致 性。容易增加新的应用,易于扩充。

  3. 数据独立性高—包括物理独立性和逻辑独立性。

    指数据在磁盘上的物理存储改变和逻辑结构改变,应用程序可能可以不用变。 数据独立性由DBMS的二级映象功能保证。数据与程序独立,把数据的定义从程序中分离,简化程序的编制、维护和修改工作。

  4. 数据由DBMS统一管理和控制

    DBMS提供四个方面的数据控制功能: 数据的恢复、并发控制数据完整性和数据安全性。

    这个统一管理,可以理解为:

    ​ 数据不能走后门,都要先通过DBMS,再通过操作系统,到达数据库。不能绕过其中的某一步。

    image.png

可以和文件系统阶段的特点对比一下

 

三级模式,两层映像

image.png

三级模式两层映射的好处是:

  1. 物理数据独立性

    当用户的局部逻辑结构改变,只需要改变其和数据库的映射关系,数据库里数据的地址不用变动。用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。

  2. 逻辑数据独立性

    同样的,当数据库的物理结构改变,用户的局部逻辑结构也不需要变动。即修改了数据库的逻辑模式,也不必重写应用程序。

 

数据库系统与传统文件系统的根本区别

  1. 在文件系统中,记录内部有了某些结构,但记录之间没有联系。数据库系统实现整体数据结构化

    “整体结构化”是指:

    数据库中的数据不再仅仅针对某个应用,而是面向全组织(企业);

    不仅数据内部是结构化的,而且整体是结构化的, 数据之间是具有联系的。

  2. 数据存取对象层级类型不同

    在文件系统中, 数据的最小存取单位是一般是记录, 粒度不能细到数据项

    数据库系统中可以存取数据库中某一个数据项, 一组数据 项, 一个记录, 一组记录。

 

高级数据库技术阶段

image.png

 


【自己的补充】

BigTable

Bigtable分布式数据存储系统是Google为其内部海量的结构化数据开发的云存储技术,是Google的第三项云计算关键技术,是所有云时代分布式存储系统的开发蓝本,已经在超过60个Google的产品和项目上得到了应用。

Bigtable的设计是为了能可靠地处理PB级的海量数据,使其能够部署在千台机器上。Bigtable具有高可靠性、高性能、可伸缩等特性,借鉴了并行数据库内存数据库的一些特性,但Bigtable提供了一个完全不同接口。Bigtable不支持完整的关系数据模型,而是为用户提供了简单的数据模型,使客户可以动态控制数据的分布和格式。


 

第三节 数据模型

什么是模型

image.png

 

数据模型的定义

数据模型也是一种模型,是现实世界数据特征的抽象

A data model an abstract model that organizes elements of data and standardizes how they relate to one another and to properties of the real world entities.


抽象:抽,提取;抽象的过程中,会撇去不重要的东西,得到共性的东西。可以层层抽象。

从英文来看,摘要abstract,抽象abstract。(当然,这只是抽象的其中一个意思)


从用途的角度进行定义:

数据模型是用于描述现实世界,指导数据的设计 、存储,并作为数据设计结果的检验标准的模型。

 

数据模型相关概念

  • 数据模型应满足三个要求:

    • 真实地模拟现实世界
    • 容易理解
    • 便于计算机上实现
  • 数据模型相关概念

    • 数据模型的层次

      • 概念、逻辑、物理;高层、中间层、低层

      • OLTP层、数据集成层、ODS或近线层、数据仓库层或离线层

    • 数据模型的描述工具

    • 数据模型的通用性

    • 行业数据模型、企业级数据模型

    • 主题数据模型、Featuring、Model Embeeding, 自动建模、

 

数据模型三个组成部分

  1. 数据结构: 是所研究对象类型的集合,即对实体类型和实体间联系的表达和实现,是系统静态特征的描述。
  2. 数据操作: 是指对数据库中各对象允许执行的操作的集合,包括检索和更新两类,是系统动态特征的描述。(操作 是否归入数据模型有争议)
  3. 数据完整性约束: 给出数据及其联系应具有的制约和依存规则,保证数据的正确、有效、相容。有实体完整性、 参照完整性和用户定义的完整性

 

数据模型设计

image.png

 

数据模型相关的三个世界或领域

image.png

 

 

image.png

第二节课到此结束

 

概念模型

  • 概念模型的功能
    • 在信息世界里对现实世界进行建模
    • 表达现实世界中的概念
    • 表达概念之间的关系
    • 表达业务领域的语义知识
  • 对概念模型的要求
    • 具有很强的表达能力–能力强
    • 易于理解—容易懂
    • 简单—容易画

概念模型的定义及特点

正确直观地反映客观事物及其联系,对所研究的信息世界,按用户观点对数据和信息建模型,称之为概念模型。(用于数据库设计)

特点:

  1. 是独立于计算机系统的模型,完全不涉及信息在系统中的表示
  2. 用于建立信息世界的数据模型,是现实世界的第一层抽象(是 现实到机器的中间层)
  3. 强调语义表达功能,概念简单、清晰,易于用户理解,是用户 和DB设计人员之间交流的语言,是DB设计人员进行数据库设计的工具

1、信息世界的术语

  • 实体—entity
    • 可以相互区别的客观事物和概念的抽象,如人,学生,教师,…
  • 属性—attribute
    • 对实体某一特征的描述,如学号,姓名,年龄,…
  • 域—domain,属性定义域
    • 属性取值范围,如年龄:[0, 200]
  • 实体的码、实体标识符—entity key or identifier
    • 能唯一标识每个实体的属性集,如:学号
  • 实体型—entity type or entity schema,实体模式,实体类型
    • 用实体名及其属性名的集合来抽象和刻画同类实体,称为实体型。
    • 学生(学号,姓名)
  • 实体集—entity set
    • 性质相同的同类实体的集合
  • 联系—relationship,关系
    • 分成两类:实体内部的联系、实体之间的联系
  • 实体内部的联系
    • 实体各属性之间的联系
  • 实体之间的联系
    • 通常指不同实体集之间的联系

 

2、机器世界的术语

  • 记录—record
    • 字段的有序集合(实体)
  • 文件—file
    • 同一类记录或不同类记录集合(实体集)
  • 关键码,主键,主码—key
    • 能唯一标识文件中每条记录的字段或字段集(实体标识符)
  • 字段—field
    • 标记实体属性的命名单位,亦称数据项(属性)

image.png

 

  

3、实体集间的联系

1 : 1 (一对一联系) 如观众与座位,病人与病床

1 : n (一对多联系) 如城市与街道,班级与学生

m : n (多对多联系) 如学生与课程,商店与顾客

image.png

  

4、常用的概念模型——实体联系模型

Entity relationship model,简称ER模型,是 由美籍华人陈平山于1976 年提出的。ER图提供了表示实体、 属性和联系的方法。

ER模型三要素(三个基本语义)

A. 实体 (Entity):表示客观事物。

B. 属性 (Attributes) : 表示客观事物的特征(属性)

C. 联系 (Relationships) : 客观事物之间的联系

ER图表示方法
image.png

ER图示例:

业务场景(business scenario):假设一个学生可选多门 课程,而一门课程又有多个学生选修,一个教师可讲多门 课程,一门课程至多只有一个教师讲授。

image.png

  


拓展ER模型(Enhanced Entity Relationship Model)

Enhanced ER Diagram Tutorial | Lucidchart


  

第三节课讲到PPT第80页,还没写完

mooc上的错题也要记录呀!!

  

  

致谢

感谢林友芳老师和助教们的辛勤付出。

感谢DXQ、CWB、LJY、LYS、GYC解答我的问题。

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2023 glisses
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信