数据库系统-关系模式

news2024/11/25 3:58:02

二、DB的抽象与演变

2.1 DB的标准结构

DBMS管理数据的三个层次
● (局部模式)Entrenal Level 外部层次 = User Level 用户层次
○ 用户能够看到雨处理的数据,全局数据中的某一部分
● (全局模式)Conceptual Level 概念层次 = Logic Level 逻辑层次
○ 从全局角度理解、管理的数据、含响应的关联约束
● (存储模式)Internal Level 内部层次 = Physical Level
在这里插入图片描述

数据与模式
模式(Schema) :
对DB中的数据所进行的一种结构化的描述,所观察到的数据的结构信息
视图(View)/数据(Data):
表现形式下的数据

在这里插入图片描述
在这里插入图片描述

两层映像
EC Mapping (External Schema-Conceptual Schema Mapping)
将外模式映射为概念模式,从而支持实现数据概念视图—> 外部视图的转换 ,便于用户观察和使用
在这里插入图片描述

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

两个独立性
逻辑数据独立性:
概念模式变化时,可以不改变外部模式(只修改EC-mapping),从而不需要改应用程序
物理数据的独立性:
内模式变化时,可以不改变概念模式(只修改CI-mapping),从而不改变外部模式

2.2 数据模型

数据模型:规定统一描述方式的模型,(数据结构、操作、约束)
数据模型是对模式本身结构的抽象,模式是数据本身结构形式化的抽象
在这里插入图片描述

三大经典数据模型
关系模式:表
层次模型:树
网状模型:图
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

三、DB发展史

在这里插入图片描述
在这里插入图片描述
1.文件系统,直接利用OS的接口
2.数据库系统(层次 图 )
3.数据库系统(表 )
4.关系数据库—>对象关系数据库、面相对象数据库

关系数据库的约束

  • 行列组织数据,关系的第一范式
  • 数据项不可再分
  • 关系运算:关系代数、元祖演算、域演算---->标准SQL
  • 关系数据库设计理论

对象关系数据库

  • 可以有效支持不满足关系第一范式的数据项
  • 以对象来封装需分解的数据项
  • 行对象&列对象:聚集对象&结构对象
    在这里插入图片描述
    面向对象DB
  • 面相对象技术(O-O) 与 集合/聚集操作技术(SQL)的结合
  • 支持复杂的数据类型,数据封装&抽象数据结构
  • 支持面向对象的一特性:类 、继承、封装、多态

在这里插入图片描述
多数据库的互联
在这里插入图片描述

3.2 新型数据库

OA:DB + Management Infomation System
DB Machine = DB + Computer Architecture
Intelligent DB = DB + Aritificial Intelligence
Distrubuted DB(DDB分布式数据库) = Computer Network + DB 
Image DB、Mulitimedia DB
Temporal DB = DB + 时态技术处理
Mobile DB = DB + 移动计算技术
Active DB = DB + 产生式 、触发技术
Ruzzy DB = DB + 模糊处理技术
Real_Time DB = DB + 实时技术
Engineering DB = DB + CAD/CAPP/CAM
Geographical DB = DB + 数字地图 + 定位系统 + 空间分析
Statiscical DB = DB + 统计学
Internat DB = DB + Internet/(www网页、html)
DW、DM = DB + OLAP + 统计学
NoSQL = 

四、关系模型

关系模型发展

  1. 从表&表的处理方式中抽象出来,是在对传统表以及操作进行数学化严格定义基础上,引入集合理论&逻辑理论提出的
  2. 三大经典数据模型(关系数据模型、网状模型、层次模型)
  3. SQL是建立在关系数据模型之上的

关系模型研究什么?

  • 形象的说,一个关系relation就是一个table
  • 关系模型就是处理table的,三部分构成
    • DB各种数据基本结构形式(Table/Realtion)
    • Table&Table之间所有可能发生的各种操作(关系运算)
    • 描述这些操作所应该遵守的约束条件(完整性约束)

三要素:

  • 基本结构 Relation、Table

  • 基本操作 Relation Operator

    • 并 Union
    • 差 Difference
    • 广义积 Product
    • 选择 selection
    • 投影 projection
    • 交 intersection
    • 连接 join
    • 除 division
  • 实体完整性、参照完整性、用户自定义完整性

域Domain

一组值的集合,这组值拥有相同的数据类型
一个列的取值范围,相当于列的枚举

域中元素的个数为:基数Cardinality

笛卡尔积:域 * 域
表达了所有可能的所有元祖

关系Relation

一组域 的 笛卡尔积的 子集,有意义的组合
在这里插入图片描述

在这里插入图片描述
关系中的概念:

  • 候选码 候选键
    关系中的一个属性组,能够唯一标识元祖 一行
  • 主码 主键PK
    候选码可以有多个,需要指定一个
  • 主属性 非主属性
    包含在任何一个候选码中的属性:主属性
    其他属性:非主属性
  • 全码All key
    所有的属性构成这个关系的候选码
  • 外码 外键 FK
    属性组是其他关系的候选码

4.2 关系模式的完整性

实体完整性

关系的主码中的属性值不能为空值

参照完整性

可以为空值
在这里插入图片描述

五、关系代数

5.1 关系代数

在这里插入图片描述

并相容性
在这里插入图片描述

5.2 关系代数 基本操作

5.2.1 并union

在这里插入图片描述
不区分大小写,去重

5.2.2 差different

在这里插入图片描述

5.2.3 广义笛卡尔积 (Cartesian Product)

在这里插入图片描述
在这里插入图片描述

5.2.4 选择select

对行的选择
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.2.4 投影Project

对列的选择
在这里插入图片描述

5.3 关系代数 扩展操作

5.3.1 交 Intersection

在这里插入图片描述

5.3.2 连接 join

在这里插入图片描述

5.3.3 等值连接

join的一种特例
在这里插入图片描述

5.3.4 自然连接

join的一种特例,去除重复的col
在这里插入图片描述

5.4 关系代数 复杂扩展操作

5.4.1 除Division

在这里插入图片描述
在这里插入图片描述

5.4.2 外连接

自然连接的时候,会出现 后面表找不到key 丢失的问题
在这里插入图片描述
在这里插入图片描述

六、关系模型之关系演算

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】编译器gcc g++和调试器gdb的使用

文章目录1.编译器gcc/g1.1C语言程序的翻译过程1.预处理2.编译3.汇编4. 链接1.2 链接方式与函数库1.动态链接与静态链接2.动态库与静态库1.3 gcc与g的使用2.调试器gdb2.1debug和release2.2gdb的安装2.3gdb的使用2.4gdb的常用指令3.总结1.编译器gcc/g 1.1C语言程序的翻译过程 1…

一个ELF文件分析和逆向的过程

CrackMe1、2分析和逆向的过程 1. CrackMe1、2相关信息 CrackMe1 1、CrackMe1是一个ELF可执行文件,可在Android中独立执行 2、通过adb(Android SDK中默认带有adb工具)将CrackMe1 push到远程Android设备中,建议放在/data/local/tmp目录下 3、打开adb shel…

关于MSVCR100.dll、MSVCR100d.dll、Msvcp100.dll、abort()R6010等故障模块排查及解决方法

一、常见故障介绍  最近在开发相机项目(项目细节由于公司保密就不介绍了),程序运行5个来月以来首次出现msvcr100.dll故障等问题,于是乎开始了分析之路,按照度娘上的一顿操作,期间也是出现了各种不一样的问…

Lombok常见用法总结

目录一、下载和安装二、常见注释(一)Data(二)Getter和Setter(三)NonNull和NotNull(不常用)(四)ToString(不常用)(五&#…

一款丧心病狂的API测试工具:Apifox!

你好,我是测试开发工程师——凡哥。欢迎和我交流测试领域相关问题(测试入门、技术、python交流都可以) 我们平时在做接口测试的时候,对于一些常用的接口测试工具的使用应该都非常熟悉了: 接口文档:Swagge…

Databend 开源周报 第 83 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.com 。Whats New探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。Support for WebHDFSHDFS 是大数…

ArrayList集合底层原理

ArrayList集合底层原理ArrayList集合底层原理1.介绍2.底层实现3.构造方法3.1集合的属性4.扩容机制5.其他方法6.总结ArrayList集合底层原理 1.介绍 ​ ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在 内的所有元素。 每个 Array…

静态库和动态库的打包与使用

静态库和动态库 静态库和动态库的打包 生成可执行程序时链接使用 运行可执行程序时加载使用 提前声明,笔者示例的文件有mian.c/child.c/child.h。OK,我们先了解一下,库文件是什么?它其实就是打包了一堆实现常用功能的代码文件. ⭐…

Python之re库用法细讲

文章目录前言一、使用 re 模块的前期准备工作二、使用 re 模块匹配字符串1. 使用 match() 方法进行匹配2. 使用 search() 方法进行匹配3. 使用 findall() 方法进行匹配三、使用 re 模块替换字符串四、使用 re 模块分割字符串总结前言 在之前的博客中我们学习了【正则表达式】的…

C++ typedef用法详解

typedef的4种常见用法:给已定义的变量类型起个别名定义函数指针类型定义数组指针类型为复杂的声明定义一个新的简单的别名总结一句话:“加不加typedef,类型是一样的",这句话可以这样理解:没加typedef之前如果是个…

云原生架构设计原则及典型技术

云原生是面向云应用设计的一种思想理念,充分发挥云效能的最佳实践路径,帮助企业构建弹性可靠、松耦合、易管理可观测的应用系统,提升交付效率,降低运维复杂度。代表技术包括不可变基础设施、服务网格、声明式 API 及 Serverless 等…

Apk加固后多渠道打包

之前一直使用360加固宝进行apk的加固打包,可以一键加固并打多渠道打包。但是,现在360加固宝收费了,在进行加固,多渠道打包,就得一步一步自己操作了,会很繁琐。所以,本文使用 360加固美团Wallet …

c++11 标准模板(STL)(std::unordered_map)(五)

定义于头文件 <unordered_map> template< class Key, class T, class Hash std::hash<Key>, class KeyEqual std::equal_to<Key>, class Allocator std::allocator< std::pair<const Key, T> > > class unordered…

Java开发 - 单点登录初体验(Spring Security + JWT)

目录​​​​​​​ 前言 为什么要登录 登录的种类 Cookie-Session Cookie-Session-local storage JWT令牌 几种登陆总结 用户身份认证与授权 创建工程 添加依赖 启动项目 Bcrypt算法的工具 创建VO模型类 创建接口文件 创建XML文件 补充配置 添加依赖 添加配…

凭一部手机,7天赚20万?会剪辑的人有多吃香!

影视剪辑容易遇到哪些问题&#xff1a; 1、视频格式格式不对&#xff0c;剪辑软件不支持&#xff1b; 2、视频封面不会做&#xff1b; 3、PR导出视频时&#xff0c;没办法做其他事&#xff0c;效率不高&#xff1b; 4、自己配音不好听&#xff0c;配音软件又不好找&#xff1b;…

第14章 局部波动率模型

这学期会时不时更新一下伊曼纽尔德曼&#xff08;Emanuel Derman&#xff09; 教授与迈克尔B.米勒&#xff08;Michael B. Miller&#xff09;的《The Volatility Smile》这本书&#xff0c;本意是协助导师课程需要&#xff0c;发在这里有意的朋友们可以学习一下&#xff0c;思…

影响redis性能的一些潜在因素

影响 Redis 性能的 5 大方面的潜在因素&#xff0c;分别是&#xff1a; Redis 内部的阻塞式操作&#xff1b; CPU 核和 NUMA 架构的影响&#xff1b; Redis 关键系统配置&#xff1b; Redis 内存碎片&#xff1b; Redis 缓冲区。 先学习了解下 Redis 内部的阻塞式操作以及应对的…

【数据架构系列-03】数据仓库、大数据平台、数据中台... 我不太认同《DataFun数据智能知识地图》中的定义

关注DataFunTalk有2年多了&#xff0c;DataFun确实像创始人王大川讲的那样&#xff0c;践行选择、努力和利他原则&#xff0c;专注于大数据、人工智能技术应用的分享与交流&#xff0c;秉承着开源开放的精神&#xff0c;免费的共享了很多有营养的行业实践专业知识&#xff0c;对…

1.win10环境搭建Elasticsearch7.2.0环境

环境介绍jdk1.8安装Elasticsearch7.2.0下载安装包直接解压进入到bin目录&#xff0c;双击elasticsearch.bates启动成功访问http://localhost:9200/jdk版本1.8,很有可能因为jdk版本的问题es启动失败支持连接https://www.elastic.co/cn/support/matrix#matrix_jvm安装Kibana7.2.0…

云计算介绍,让你更了解云计算

同学们好&#xff01; 第一次接触IT行业吗&#xff1f;没关系&#xff0c;看完这篇文章肯定会让你不再陌生。给自己几分钟时间&#xff0c;认真看完哦&#xff01; 1、不知道什么是云计算&#xff1f; 网络计算云计算 官方定义是&#xff1a;通过网络提供可伸缩的分布式计算…