【二】数据库系统

  • 数据库系统的分层抽象
    • DBMS 数据的三个层次
    • 从 数据 到 数据的结构----模式
    • 数据库系统的三级模式(三级视图)
    • 数据库系统的两层映像
    • 数据库系统的两个独立性
    • 数据库系统的标准结构
  • 数据模型
    • 从 模式 到 模式的结构----数据模型
    • 三大经典数据模型
  • 数据库的演变与发展
    • 由文件系统到数据库
      • 文件系统
      • 数据库系统
    • 由层次模型数据库、网状模型数据库到关系数据库
      • 层次模型与网状模型数据库
      • 关系模型数据库
    • 由关系数据库到对象关系数据库、面向对象数据库
      • 关系数据库
      • 对象-关系数据库
    • XML 数据库
    • 由多种多样的数据库到多数据库开放式互连
      • 多种多样的数据库
      • 开放互连多种多样的数据库
    • 由普通数据库到与各种先进技术结合所形成的新型数据库
      • 新型数据库
  • 内容回顾
  • 练习

【重点与难点】

  • 一组概念的区分:三级模式两层映像物理独立性逻辑独立性
  • 一组概念的区分:数据、模式、数据模型
  • 几种数据模型的差异:网状/层次模型、关系模型、OO数据模型

数据库系统的分层抽象

怎么抽象一个数据库系统呢?

  • 假设我们现在有一个数据库,
  • 然后有一个管理这个数据库的数据库管理系统,
  • 然后我们有不同的应用程序,
  • 可以给多个用户使用。

在这里插入图片描述

DBMS 数据的三个层次

DBMS 管理数据可以分为三个层次。

  • External Level = User Level;
    外部/用户 层次:某一 用户 能够看到与处理的数据, 全局数据中的某一部分(不同用户看到某一部分,局部);
  • Conceptual Level = Logic level;
    概念/逻辑 层次:从 全局 角度理解/管理的数据, 含相应的 关联约束
  • Internal Level = Physical level;
    内部/物理 层次存储在介质上的数据,含存储路径、存储方式 、索引方式等;

在这里插入图片描述

从 数据 到 数据的结构----模式

  • 数据(Data)/视图(View)某一种表现形式下 表现出来的 数据库中的数据

展现的数据----视图:

在这里插入图片描述

  • 模式(Schema):对数据库中数据所进行的一种 结构性的描述,是所观察到 数据的结构 信息。

数据的结构----模式:

学生登记表(  学号 char(8), 姓名 char(10),性别 Char(2), 出生年月 datetime, 入学日期 Datetime, 家庭住址 Char(40) 
)

数据库系统的三级模式(三级视图)

从结构角度,称为模式;从数据角度,称为视图。

  • External Schema(外模式) ---- External View(外部视图)
    某一用户能够看到与处理的 局部数据的结构描述
  • Conceptual Schema(概念模式)---- Conceptual View(概念视图)
    从全局角度理解/管理的 全局数据的结构描述,含相应的关联约束。体现在数据之间的内在本质联系
  • Internal Schema(内模式)---- Internal View(内部视图)
    存储在介质上的 数据的结构描述,含存储路径、存储方式 、索引方式等。

如果简单地说“模式”,就是指全局模式;
如果简单地说“视图”,说指外部视图(因为展现给用户);

在这里插入图片描述

数据库系统的两层映像

(1)E-C Mapping:External Schema-Conceptual Schema Mapping
将外模式映射为概念模式,从而支持实现 数据概念视图向外部视图的转换
便于 用户 观察和使用。

(2)C-I Mapping:Conceptual Schema-Internal Schema Mapping
将概念模式映射为内模式,从而支持实现 数据概念视图向内部视图的转换
便于 计算机 进行存储和处理。

在这里插入图片描述

数据库系统的两个独立性

  • 逻辑数据独立性

当概念模式变化时,可以不改变外部模式(只需改变 E-C Mapping),从而无需改变应用程序。

当概念模式发生变化时,外部模式是可以不发生变化的,而 应用程序是根据外部视图来开发的,所以不会影响外部应用程序
例如,如果数据库的字段名称发生了变化,或者数据库的字段类型发生了变化,用户的应用程序不需要做出任何修改就可以继续使用数据库,因为数据库管理系统会负责将旧的字段名称和字段类型映射到新的字段名称和字段类型。
即使全局模式重新组织、重新设计了,也只需要修改 E-C Mapping

  • 物理数据独立性

当内部模式变化时,可以不改变概念模式(只需改变 C-I Mapping) ,从而不改变外部模式。

例如,如果数据库的存储方式发生了变化(例如从磁盘存储转移到云存储),可以不改变概念模式,也不会影响到外部模式,用户的应用程序不需要做出任何修改就可以继续使用数据库。
因为数据库管理系统会负责将数据从旧的存储方式迁移到新的存储方式,而用户的应用程序只需要访问数据库的逻辑结构,并不关心数据的物理存储方式。

物理独立性和逻辑独立性可以提高数据库系统的灵活性和可扩展性,使数据库系统更加易于维护和管理。

数据库系统的标准结构

数据库系统的标准结构:三级模式 + 两层映像

如下图所示,

  • 不同的用户有不同的用户视角,他们根据需要看到或处理数据库中不同部分的数据(外模式/外部视图);
  • 所有用户视角的并集就是全局视角能够看到的数据,也就是数据库中所有的数据(概念模式/全局视图);
  • 然后数据库中所有的数据存放在存储介质上(内模式/物理视图)。

当开发应用程序时,不是基于全局视图来开发的,而是基于某一个外部视图来开发

在这里插入图片描述

数据模型

规定模式统一描述方式的模型,包括:数据结构、操作和约束。

模式是对数据本身结构形式的抽象,数据模型是对模式本身结构的抽象。

从 模式 到 模式的结构----数据模型

假如有以下两个模式:模式1 和 模式2。

模式1:

学生登记表( 学号 char(8), 姓名 char(10), 性别 Char(2), 出生年月 datetime, 入学日期 Datetime, 家庭住址 Char(40) 
)

模式2:

学生成绩单( 学号 char(8), 姓名 char(10), 班级 Char(6), 课程 char(40), 学期 Char(4), 成绩 Number 
)  

那么对模式1和模式2可以抽象出其模式的结构:关系模型,即

Table/Relation
Relation Calculation
Constraints about Table

关系模型:所有模式都可为抽象表(Table)的形式[数据结构],而每一个具体的模式都是拥有不同列名的具体的表,对这种表形式的数据有哪些[操作]和[约束]

三大经典数据模型

  • 关系模型:表的形式组织数据

在这里插入图片描述

  • 层次模型:树的形式组织数据

在这里插入图片描述

  • 网状模型:图的形式组织数据

在这里插入图片描述

数据库的演变与发展

由文件系统到数据库

文件系统

  • 文件存储空间的管理、目录管理、文件读写管理、文件保护、向用户提供操作接口;
  • 提供了不同的存取方法(索引文件、链接文件、直接存取文件、倒排文件等), 支持对文件的基本操作(增、删、改、查等), 数据存取基本上以 记录 为单位。

【优点】用户(程序)不必考虑文件存储的物理细节, 解脱了对物理设备存取复杂性处理的负担。

【不足】数据与程序紧密结合,数据的组织及语义紧密依赖于处理该文件的应用程序,数据结构发生改变则必须修改应用程序,文件之间无联系,文件的记录之间无联系,共享性差,冗余度大,不一致性高。

数据库系统

  • 由 DBMS 统一存取、维护数据组织形式及语义,可较强地独立于应用程序(数据的物理独立性和逻辑独立性) ;
  • 把数据及数据结构的定义和描述从应用程序中分离出去,交给 DBMS, 使得多个应用程序可共享数据及数据结构的操作, 数据存取可以 记录 为单位,也可以以 数据项记录集合 为单位;
  • 统一的数据控制功能,数据共享程度高: 系统可自动检查安全性、完整性和并发正确性;
  • 整体数据结构化,文件(Table)之间、记录之间相互有关联,数据的冗余度小,易扩充;
  • 独立于应用程序的高效率查询/统计操作。

由层次模型数据库、网状模型数据库到关系数据库

层次模型与网状模型数据库

  • 数据之间的关联关系由复杂的指针系统来维系,结构描述复杂;
  • 数据检索操作依赖于由指针系统指示的路径;
  • 逐一记录的操作,不能有效支持记录集合的操作;

在这里插入图片描述

关系模型数据库

  • 数据之间的关联关系由 Table 中属性的值来表征,结构描述简单:Table/relation;
  • 数据检索操作不依赖于路径信息或过程信息,支持非过程化的数据操作;
  • 有效支持记录集合的操作;
  • 较为完善的理论基础。

在这里插入图片描述

由关系数据库到对象关系数据库、面向对象数据库

关系数据库

  • 按行按列形式组织数据:关系的第1范式
  • 数据项的不可再分特性
  • 关系运算: 关系代数、元组演算、域演算–>标准SQL
  • 关系数据库设计理论

在这里插入图片描述

对象-关系数据库

  • 可有效支持不满足关系第1范式的数据项
  • 以对象来封装需分解的数据项
    -行对象与列对象;聚集对象与结构对象

在这里插入图片描述

XML 数据库

  • 是数据库的另一种形式, 被称为半结构化数据库;
  • 数据 与 数据的语义 合并在一起进行存储和处理;
  • 面向数据交换而提出, 在互联网世界得到广泛应用。
<data> <person id=“o555” > <name> Mary </name> <address> <street>Maple</street> <no> 345 </no> <city> Seattle </city> </address></person> <person> <name> John </name> <address>Thailand</address> <phone>23456</phone></person></data>

在这里插入图片描述

由多种多样的数据库到多数据库开放式互连

多种多样的数据库

  • Oracle
  • Sybase
  • Ingres
  • DB 2
  • MS Access
  • Informix
  • ……

开放互连多种多样的数据库

  • ODBC
  • JDBC

在这里插入图片描述

由普通数据库到与各种先进技术结合所形成的新型数据库

新型数据库

  • OA:DB + Management Information System
  • Database Machine <- DB + Computer Architecture
  • Intelligent Database <- DB + Artificial Intelligence
  • Distributed Database(DDB) <- DB + Computer Network
  • Image Database / Multimedia Database <- DB + Image processing / Multimedia processing
  • Temporal Database <- DB + 时态技术处理
  • Mobile Database <- DB + 移动计算技术
  • Active Database <- DB + 产生式规则/触发器技术
  • Fuzzy Database <- DB + 模糊处理技术
  • Real-Time Database <- DB + 实时处理技术
  • Engineering Database <- DB + CAD/CAPP/CAM技术
  • Geographical Databas和空间数据库(Spacial Database) <- DB + 数字地图、全球定位、空间分析技术
  • Statistical Database <- DB + 统计学
  • Internet Database <- DB + Internet/WWW(网页/HTML文档)
  • Data Warehouse/Data Mining <-DB + OLAP + 统计学
  • NoSQL

内容回顾

在这里插入图片描述

练习

  1. 数据库系统的三级模式是指__________。

A. 用户模式、局部模式和全局模式

B. 外模式、概念模式和逻辑模式

C. 外模式、内模式和存储模式

D. 用户模式、概念模式和存储模式

正确答案:D

  1. 在三级模式两层映像结构中,“模式”是指__________。

A. 外模式

B. 内模式

C. 存储模式

D. 概念模式

正确答案:D

  1. 在三级模式两层映像结构中,“物理模式”是指__________。

A. 外模式

B. 全局模式

C. 用户模式

D. 存储模式

正确答案:D

  1. 在三级模式两层映像结构中,“全局模式”是指__________。

A. 外模式

B. 用户模式

C. 内模式

D. 概念模式

正确答案:D

  1. 在三级模式两层映像结构中,“局部模式”是指__________。

A. 概念模式

B. 内模式

C. 逻辑模式

D. 外模式

正确答案:D

  1. 关于三级模式,下列说法不正确的是___ _______。

A. 概念模式又称为全局模式

B. 概念模式又称为逻辑模式

C. 内模式又称为存储模式

D. 内模式又称为局部模式

正确答案:D

  1. 关于数据独立性,下列说法正确的为___ _______。

A. 外模式到概念模式的映像实现了数据的物理独立性

B. 外模式到内模式的映像实现了数据的物理独立性

C. 概念模式到内模式的映像实现了数据的物理独立性

D. 以上说法均不正确

正确答案:C

  1. 关于数据独立性,下列说法正确的为___ _______。

A. 外模式到概念模式的映像实现了数据的逻辑独立性

B. 外模式到内模式的映像实现了数据的逻辑独立性

C. 概念模式到内模式的映像实现了数据的逻辑独立性

D. 以上说法均不正确

正确答案:A

  1. 数据库系统的数据独立性是指_______________。

A. 不会因为数据的变化而影响应用程序

B. 不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序

C. 不会因为存储策略的变化而影响存储结构

D. 不会因为某些存储结构的变化而影响其他的存储结构

正确答案:B

  1. 下列说法不正确的是_______________。

A. 模式是对数据的抽象,数据的结构性描述称为模式

B. 数据模型是对模式的抽象,模式的结构性描述称为数据模型

C. 一个数据库是由一系列模式及其数据构成的

D. 模式是对数据模型的抽象,数据模型的结构性描述称为模式

正确答案:D

  1. 第一代数据库系统是指_______________。

A. 文件系统

B. 基于XML模型的数据库系统

C. 基于关系模型的数据库系统

D. 基于网状模型或层次模型的数据库系统

正确答案:D

  1. 第二代数据库系统是指_______________。

A. 基于文件的数据库系统;

B. 基于XML模型的数据库系统

C. 基于网状模型或层次模型的数据库系统

D. 基于关系模型的数据库系统

正确答案:D

  1. 数据库系统与文件系统的主要差别在_______________。

A. 数据的组织是否依赖于具体的应用程序

B. 数据存取是否可以记录或记录的集合为单位进行操作

C. 不同文件之间以及不同记录之间是否有联系

D. 包括其他全部选项

正确答案:D

  1. 关系数据库系统对层次/网状数据库系统的重大改进是_______________。

A. 消除了由用户建立指针的弊端

B. 将逐一记录的操作改进为支持记录集合的操作

C. 数据检索操作不依赖于路径信息或过程信息,即非过程化的操作

D. 包括其他全部选项

正确答案:D

  1. 面向对象数据库系统对关系数据库系统的重大改进是_______________。

A. 允许复杂的数据类型存在

B. 突破了关系模型第一范式的限制

C. 既支持记录集合的操作,又支持面向对象的操作

D. 包括其他全部选项

正确答案:D

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/72569.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进行 200 瓦太阳能 (PV) 模块设计以测量太阳能光伏阵列的电压、电流和功率、综合负荷频率和电压控制系统的方法研究(Simulink实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

如何在HTML中使用React

突发奇想 查了查真的可以,官方文档: 在网站中添加 React – React 开始 引入js <!-- 开发环境使用 --><script src"https://unpkg.com/react18/umd/react.development.js"></script><script src"https://unpkg.com/react-dom18/umd/reac…

Django框架 靓号管理(增删改查)

Django框架 靓号管理&#xff08;增删改查&#xff09; 新建一个项目 backend 使用pycharm创建app startapp app项目目录 C:\code\backend ├── app | ├── admin.py | ├── apps.py | ├── migrations | ├── models.py | ├── tests.py | ├── views.…

Springboot整合Mybatis调用Oracle存储过程

1、配置说明 Oracel11g+springboot2.7.14+mybatis3.5.13 目标:springboot整合mybatis访问oracle中的存储过程,存储过程返回游标信息。 mybatis调用oracle中的存储过程方式 2、工程结构 3、具体实现 3.1、在Oracle中创建测试数据库表 具体数据可自行添加 create table s…

Redis - 数据类型映射底层结构

简介 从数据类型上体现就是&#xff0c;同一个数据类型&#xff0c;在不同的情况下会使用不同的编码类型&#xff0c;底层所使用的的数据结构也不相同。 字符串对象 字符串对象的编码可以是 int、raw 和 embstr 三者之一。 embstr 编码是专门用于保存简短字符串的一种优化编…

springboot 整合swagger 入门 使用

1.前提 一定要看好版本。 Springboot ✚ Swagger各版本整理_swagger版本_qq_33334411的博客-CSDN博客 我的版本: <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</ver…

强训第35天

选择 A 经过一个1->2 经过两个2->4 开始慢增长 4->5 5->6....9->10 到达4KB时变成慢增长&#xff0c;最多增长到10 D 网络号是180.80.76 但题目让向主机所在子网发广播 180 .80 .(01001101 | 111111 11)79 .255 标红的两位属于主机号所以答案为D A C 分片的组…

【MT32F006】MT32F006之串口

本文最后修改时间&#xff1a;2023年03月30日 一、本节简介 本文介绍如何使用MT32F006的串口。 二、实验平台 库版本&#xff1a;V1.0.0 编译软件&#xff1a;MDK5.37 硬件平台&#xff1a;MT32F006开发板&#xff08;主芯片MT32F006&#xff09; 仿真器&#xff1a;JLINK…

机器视觉应用开发什么最重要?

&#xff08;QQ群有答疑&#xff09;零基础小白快速上手海康VisionMaster开发系列课程 高级语言在机器视觉就是工具&#xff0c;机器视觉软件&#xff0c;在机器视觉中也是工具&#xff0c;在机器视觉应用开发中&#xff0c;图像处理是最重要的&#xff0c;一切看图像&#xff…

【CTF-web】bugku-成绩查询(sql注入)

题目链接&#xff1a;https://ctf.bugku.com/challenges/detail/id/84.html 判断注入点 查看网页源码可知输入数据通过POST发送到index.php并显示出查询结果&#xff0c;可能需要sql注入。 如上图所示&#xff0c;当id为1时返回名字为“龙龙龙”的成绩单。 再测试&#xff0c…

python运算符

算术运算符 以下假设变量&#xff1a; a10&#xff0c;b20&#xff1a; 加 - 两个对象相加a b 输出结果 30-减 - 得到负数或是一个数减去另一个数a - b 输出结果 -10*乘 - 两个数相乘或是返回一个被重复若干次的字符串a * b 输出结果 200/除 - x除以y b / a 输出结果 2.0&am…

(学习笔记-进程管理)怎么避免死锁?

死锁的概念 在多线程编程中&#xff0c;我们为了防止多线程竞争共享资源而导致数据错乱&#xff0c;都会在操作共享资源之前加上互斥锁&#xff0c;只有成功获得到锁的线程&#xff0c;才能操作共享资源&#xff0c;获取不到锁的线程就只能等待&#xff0c;直到锁被释放。 那…