【二】数据库系统

  • 数据库系统的分层抽象
    • 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.mfbz.cn/a/69146.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

windows使用/服务(13)戴尔电脑怎么设置通电自动开机

戴尔pc机器通电自启动 1、将主机显示器键盘鼠标连接好后&#xff0c;按主机电源键开机 2、在开机过程中按键盘"F12",进入如下界面&#xff0c;选择“BIOS SETUP” 3、选择“Power Management” 4、选择“AC Recovery”&#xff0c;点选“Power On”&#xff0c;点击“…

uniapp 格式化时间刚刚,几分钟前,几小时前,几天前…

效果如图&#xff1a; 根目录下新建utils文件夹&#xff0c;文件夹下新增js文件&#xff0c;文件内容&#xff1a; export const filters {dateTimeSub(data) {if (data undefined) {return;}// 传进来的data必须是日期格式&#xff0c;不能是时间戳//将字符串转换成时间格式…

使用 prometheus client SDK 暴露指标

目录 1. 使用 prometheus client SDK 暴露指标1.1. How Go exposition works1.2. Adding your own metrics1.3. Other Go client features 2. Golang Application monitoring using Prometheus2.1. Metrics and Labels2.2. Metrics Types2.2.1. Counters:2.2.2. Gauges:2.2.3. …

Python测试框架pytest:常用参数、查找子集、参数化、跳过

Pytest是一个基于python的测试框架&#xff0c;用于编写和执行测试代码。pytest主要用于API测试&#xff0c;可以编写代码来测试API、数据库、UI等。 pytest是一个非常成熟的全功能的Python测试框架&#xff0c;主要有以下几个优点&#xff1a; 简单灵活&#xff0c;容易上手。…

前端渲染数据

在前端对接受后端数据处理后返回的接收值的时候&#xff0c;为了解决数据过于庞大&#xff0c;而对数据进行简化处理例如性别&#xff0c;经常会使用1&#xff0c; 0这俩个来代替文字的男&#xff0c;女。以下就是前端渲染的具体实现。 以下是部分代码 <el-table-columnpr…

【MFC】10.MFC六大机制:RTTI(运行时类型识别),动态创建机制,窗口切分,子类化-笔记

运行时类信息&#xff08;RTTI&#xff09; C: ##是拼接 #是替换成字符串 // RTTI.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> #include <afxwin.h>#ifdef _DEBUG #define new DEBUG_NEW #endifCWinApp th…

ubuntu 安装 nvidia 驱动

ubuntu 安装 nvidia 驱动 初环境与设备查询型号查询对应的驱动版本安装驱动验证驱动安装结果 本篇文章将介绍ubuntu 安装 nvidia 驱动 初 希望能写一些简单的教程和案例分享给需要的人 环境与设备 系统&#xff1a;ubuntu 设备&#xff1a;Nvidia GeForce RTX 4090 查询型…

Tcp是怎样进行可靠准确的传输数据包的?

概述 很多时候&#xff0c;我们都在说Tcp协议&#xff0c;Tcp协议解决了什么问题&#xff0c;在实际工作中有什么具体的意义&#xff0c;想到了这些我想你的技术会更有所提升&#xff0c;Tcp协议是程序员编程中的最重要的一块基石&#xff0c;Tcp是怎样进行可靠准确的传输数据…

web-ssrf

目录 ssrf介绍 以pikachu靶场为例 curl 访问外网链接 利用file协议查看本地文件 利用dict协议扫描内网主机开放端口 file_get_content 利用file协议查看本地文件&#xff1a; fsockopen() 防御方式: ssrf介绍 服务器端请求伪造&#xff0c;是一种由攻击者构造形成…

CSP复习每日一题(四)

树的重心 给定一颗树&#xff0c;树中包含 n n n 个结点&#xff08;编号 1 ∼ n 1∼n 1∼n&#xff09;和 n − 1 n−1 n−1条无向边。请你找到树的重心&#xff0c;并输出将重心删除后&#xff0c;剩余各个连通块中点数的最大值。 重心定义&#xff1a; 重心是指树中的一…

链式二叉树统计结点个数的方法和bug

方法一&#xff1a; 分治&#xff1a;分而治之 int BTreeSize1(BTNode* root) {if (root NULL) return 0;else return BTreeSize(root->left)BTreeSize(root->right)1; } 方法二&#xff1a; 遍历计数&#xff1a;设置一个计数器&#xff0c;对二叉树正常访问&#…

dubbo之高可用

负载均衡 概述 负载均衡是指在集群中&#xff0c;将多个数据请求分散到不同的单元上执行&#xff0c;主要是为了提高系统的容错能力和对数据的处理能力。 Dubbo 负载均衡机制是决定一次服务调用使用哪个提供者的服务。 策略 在Dubbo中提供了7中负载均衡策略&#xff0c;默…

冒泡排序 简单选择排序 插入排序 快速排序

bubblesort 两个for循环&#xff0c;从最右端开始一个一个逐渐有序 #include <stdio.h> #include <string.h> #include <stdlib.h>void bubble(int *arr, int len); int main(int argc, char *argv[]) {int arr[] {1, 2, 3, 4, 5, 6, 7};int len sizeof(…

想要延长Macbook寿命?这六个保养技巧你必须get!

Mac作为我们工作生活的伙伴&#xff0c;重要性不需要多说。但在使用的过程中&#xff0c;我们总会因不当操作导致Mac出现各种问题。 要想它长久的陪伴&#xff0c;平时的维护与保养自然不能少&#xff0c;Mac的保养很重要的两点就是硬件保养和电脑系统保养&#xff0c;硬件保养…

【一】初步认识数据库

数据库概览数据库 缘起表(Table)的理解用表来定义数据库数据库系统的理解概念层次的理解实例层次的理解 数据库管理系统的理解从用户角度看从系统实现角度看典型的数据库管理系统 数据库语言数据库定义、操纵、控制语言数据库语言 VS 高级语言 内容回顾练习 数据库概览 走马观…

gitblit-使用

1.登入GitBlit服务器 默认用户和密码: admin/admin 2.创建一个新的版本库 点击图中的“版本库”&#xff0c;然后点击图中“创建版本库” 填写名称和描述&#xff0c;注意名称最后一定要加 .git选择限制查看、克隆和推送勾选“加入README”和“加入.gitignore文件”在图中的1处…

2023一带一路东盟工商领袖峰会在曼谷成功举行,发明家周初材被授予中泰友好交流大使

今年是共建“一带一路”倡议提出十周年。十年来&#xff0c;共建“一带一路”倡议从理念到行动&#xff0c;从愿景到现实&#xff0c;开展更大范围、更高水平、更深层次的区域合作&#xff0c;致力于维护全球自由贸易体系和开放型世界经济&#xff0c;推动文明交流互鉴&#xf…

openeuler服务器 ls 和ll 命令报错 command not found...

在openeuler服务器执行 ls 和ll 命令报错 command not found... 大概是系统环境变量导致的问题。 我在安装redis是否没有安装成功后就出现了这样的情况。编辑profile文件没有写正确&#xff0c;导致在命令行下ls 和 ll 等命令不能够识别。 重新设置一下环境变量。 export PAT…

【项目学习1】如何将java对象转化为XML字符串

如何将java对象转化为XML字符串 将java对象转化为XML字符串&#xff0c;可以使用Java的XML操作库JAXB&#xff0c;具体操作步骤如下&#xff1a; 主要分为以下几步&#xff1a; 1、创建JAXBContext对象&#xff0c;用于映射Java类和XML。 JAXBContext jaxbContext JAXBConte…

Oracle 开发篇+Java通过共享模式访问Oracle数据库

标签&#xff1a;共享服务器进程、shared server process释义&#xff1a;shared server process是Oracle的一种数据库连接技术&#xff0c;类似的还有专用模式和DRCP ★ 数据库配置 alter system set shared_server_sessions1 scopespfile; alter system set max_shared_serv…