chapter-2数据库基本知识

news2024/11/16 7:46:38

以下课程来源于MOOC学习—原课程请见:数据库原理与应用
考研复习

前言:

抽象与模型

1.对数据不同抽象层次中的对象采用不同的模型进行描述

人的姓名、性别—>概念模型---->DBMS支持的数据模型---->物理模型

2.概念模型:按用户观点对信息建模

​ 可以采用实体联系模型E-R图描述

3.数据模型:

  • 逻辑数据模型:提供表示和组织数据的方法
  • 物理数据模型:对最底层数据的抽象;描述数据在系统内部的表示方式和存储方法

image-20210115153543659

概念模型

  1. 实体

显示世界客观存在并能相互区分的事物,经过加工,抽象成为信息世界的实体;

信息世界基本单位;可以具体也可以抽象;需要命名

  1. 属性:现实世界的事物所具有的特征反映在其对应实体上;一个实体可以有若干属性
  2. 实体型:属性名 的集合来抽象,刻画同类实体【学生(学号,姓名)】
  3. 实体集:同一类型实体的集合,有相同的属性集

概念模型是现实世界的第一层抽象,数据库技术中常用的概念模型是( 实体-联系模型 )

image-20210115154002565

ER图的关键词

  • 属性
  • 关键字:唯一标识实体的最小属性集
  • 联系:形式【实体集内和集间】元数【一元1-1 二元1-n 多元m-n 】

image-20210115154223723

补充:IS-A联系

实体A和实体B存在IS-A联系,实体B 通过IS-A联系 继承A中所有属性和与A相关的联系,同时拥有自己特有的属性

image-20210115154443021

补充:弱实体:某个实体的存在依赖于其他实体(常规或者强实体),被称为弱实体

比如家庭成员 依赖于 学生;家庭成员是弱实体(用双线矩形框和双菱形表示)

数据模型

严格定义一组概念的集合—精确描述系统的静态特性,动态特性和完整性约束条件

组成要素:数据结构+数据操作+完整性约束

数据结构:描述数据库模式【描述对象类型的集合】

数据操作:必须定义操作的符号,确切含义,操作规则和实现的语言

完整性约束:保证数据的正确,有效,相容,必须满足的基本通用的原则

数据库模型 的演变

演变过程是数据库技术发展的一条主线

层次模型

基于树的结构,按照有序树的结构来组织,只能表示1:N的联系

网状模型

采用网状结构描述M:N;编程复杂;代表DBTG系统

关系模型【广泛】

1970年提出, ACM图灵奖,建立在集合论中“关系”概念的基础之上;操作都是集合的操作

数据结构单一—关系可以表示实体也可以用描述实体之间的联系

只要用单一的关系结构就可以表示实体和实体间的联系

半结构化数据模型

image-20210115230832280

image-20210115230920781

面向对象模型

基本概念是对象和类

现实世界的任意实体都是对象

  • 一个对象可以包含多个属性
  • 对象可以包含若干方法
  • 对象是封装的
  • 对象之间通信通过消息传递实现

共享同一属性的集合 和方法集合的所有对象 组合在一起构成一个对象类(类),一个对象是某一个类的实例

  • 类可以有嵌套结构,直接、间接从祖先继承所有的属性和方法

过:对象关系模型

关系、关系模式、关系模型的区别

  1. 关系:一个关系对应通常说的一张表

  2. 关系模式:关系的描述

  3. 关系模型:关系模型由关系数据结构,关系操作集合,关系完整性约束三部分组成.

  4. 关系和关系模式的区别

    • 关系模式是型,关系是值,关系模式是对关系的描述

    • 关系是关系模式在某一个时刻的状态或者内容,关系模式是静态的,稳定的,

    • 关系是动态的,随时间不断变化的,因为关系操作在不断地更新着数据库中的数据

    • 类似于面向对象程序设计中”类“与”对象“的区别。”关系“是”关系模式“的一个实例,

    可以把**”关系”理解为一张带数据的表,而“关系模式”是这张数据表的表结构。**

  5. 关系模型和关系的区别

    • 关系模型包含关系,关系是关系模型的数据结构,在关系模型中,
    • 现实世界的实体以及实体间的各级联系均用单一的结构类型,即关系来表示

网上搜索文章,补充上述:三者之间的区别

mySQL 为什么叫“关系”模型

关系的定义

关系数据库采用的数据模型是关系模型——反过来说可能更合适,

​ 即数据库采用了关系模型,因此才被称为关系数据库。

​ 那么,这里所说的“关系”指的是什么呢?深入思考的话会发现,其实这个词很抽象,不太容易理解,而且很容易与我们日常生活中用的“人际关系”“关系紧张”等词中的“关系”混淆。既然如此,从一开始就不使用“关系”这样的抽象词语,叫它“表”模型不是也行吗?所谓关系,说到底不还是二维表吗?像这样不无道理的疑问,从关系模型诞生之日起已经被提出过很多次了。“总说关系、关系的到底是什么意思?”

关系和表的区别:

  1. 关系中不允许存在重复的元组(tuple),而表中可以存在。即,关系是通常说的不允许存在重复元素的集合,而表是多重集合

  2. 关系中的元组没有从上往下的顺序,而表中的行有从上往下的顺序

  3. 关系中的属性没有从左往右的顺序,而表中的列有从左往右的顺序

  4. 关系中所有的属性的值都是不可分割的,而表中列的值是可以分割的。换句话说,关系中的属性满足第一范式,而表中的列不满足第一范式

仅从列的这几条就能看出,关系和表之间的区别还是很大。与关系相比,表的定义不太严谨,不明确。在前文中我们用了很多次“元组”和“属性”这样的词,大家有没有觉得“元组≈行”“属性≈列”呢?

img

​ 实际工作中把“列”称为“属性”,把“行数”称为“势”也并没有特别的好处。

​ 关系模型是以数学中的集合论为基础的,因此沿用了集合论的一些术语,我们了解了这一点就可以了。不过,阅读一些偏理论的比较严谨的书时,可能会发现作者习惯使用“属性”代替“列”,使用“元组”代替“行”,所以知道它们的对应关系还是有好处的。

关系的定义可以用下面这样一个公式来给出。R ⊆ (D1×D2×D3 ··· ×Dn)

(关系用符号 R 表示,属性用符号 Ai 表示,属性的定义域用符号 Di 表示)

这个公式读作“关系 R 是定义域 D1, D2, …, Dn 的笛卡儿积的子集”。

,使用“元组”代替“行”,所以知道它们的对应关系还是有好处的。

关系的定义可以用下面这样一个公式来给出。R ⊆ (D1×D2×D3 ··· ×Dn)

(关系用符号 R 表示,属性用符号 Ai 表示,属性的定义域用符号 Di 表示)

这个公式读作“关系 R 是定义域 D1, D2, …, Dn 的笛卡儿积的子集”。

其实笛卡儿积是指“使用各个属性的定义域生成的组合数最多的集合”。

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

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

相关文章

PHP通过函数来了解字符串格式化的案例和代码

目录 前言 一、字符串空格的删除 1.tri()函数 2.ltrim()函数 3.rtrim()函数 二、字符串大小写转换 1.strtolower()函数 2.strtoupper()函数 三、格式化数字 前言 1.以下介绍PHP的相关知识; 2.本弹窗界面可以根据简单的要求实现一使用功能。同时可以实现自定义…

Kubernetes 部署 StarRocks 集群

文章目录StarRocks简介系统架构图安装部署StarRocks手动部署通过 Docker部署使用 StarGo 部署管理通过 StarRocks Manager部署管理通过 Kubernetes部署工作原理逻辑图部署 StarRocks Operator部署 StarRocks 集群访问 StarRocks 集群集群内访问 StarRocks 集群集群外访问 StarR…

了解高可用

图片来自网络 高可用定义 “高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。 设计系统的可用性,最重要的是满足用户的需求。系统的失败只有当其导致服务…

不完美解决谷歌Chrome在设置background cover和fixed属性后,滚动屏幕出现背景图片的拉伸

业务场景: 让元素有背景图. 背景图不随着页面滚动而移动,相对于浏览器窗口固定. 根据屏幕尺寸,背景图自动覆盖式填充,不能有接缝和重复. 元素要有圆角. 通过js入参动态设置背景图. 不便截图,相信各位上面可以看明白了. 复现: css是这样的 .main {width: 90%;background-…

Chat GPT5的主要介绍

Chat GPT-5是一种基于人工智能技术的对话系统,用于进行自然语言处理和对话,以提供更好的服务。 它是由OpenAI公司开发的,是GPT系列的最新版本。 GPT代表着"生成式预训练",因此Chat GPT-5基于神经网络,通过预…

STM32F103RCT6 103RE 103R8 103RB 103C8 103CB 103VE 103VC

这些型号均属于意法半导体(STMicroelectronics)的STM32F103系列微控制器,其特点如下: STM32F103RCT6:512 KB Flash、64 KB RAM,LQFP64封装;STM32F103RE:512 KB Flash、64 KB RAM&am…

webgl-矩阵、旋转、平移、缩放 glMatrix组件

引入新组建glMatrix glMatrix.js /*! fileoverview gl-matrix - High performance matrix and vector operations author Brandon Jones author Colin MacKenzie IV version 3.4.3 Copyright (c) 2015-2021, Brandon Jones, Colin MacKenzie IV. Permission is hereby granted…

JAVA开发运维(关于渗透测试与漏洞修复)

对于C端的网站,H5,小程序或者app都需要进行渗透测试。 渗透测试是模拟真实黑客的攻击手段,对目标网站或主机进行全面的安全评估。 与黑客攻击不同,渗透测试的目的是尽可能多地发现安全漏洞,而真正的黑客只需要找到一种…

TCP与UDP的区别

一、TCP协议 TCP协议全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,具有下面这些特征 1)面向连接 是指发送数据之前必须在两端建立连接。建立连接的方法是“三次握手”,这样能建立可靠的连接。建立连接&#xff0…

浏览器DOM(上)——节点

文档对象模型是用来描述文档,这里的文档,是特指 HTML 文档。同时它又是一个“对象模型”,这意味着它使用的是对象这样的概念来描述 HTML 文档,DOM 也是使用树形的对象模型来描述一个 HTML 文档。 DOM API 大致会包含 4 个部分。 …

【MySQL数据库原理】MySQL 数据库环境变量设置问题完整解决与数据库删除测试

目录 1、环境变量与终端问题2、数据库删除测试1、环境变量与终端问题 在上一篇文章中提到mysql专用终端会失效的问题,通常使用一段时间之后,点击会出现闪退的情况,主要原因是没有配置好环境变量。 因此,要解决上述问题就需要配置环境变量,这样就可以在Windows终端失效m…

域名解析设置方法

域名解析设置都是实时生效的,一般只需几秒即可同步到各地 DNS 上,但各地 DNS 均有缓存机制,解析的最终生效取决于各运营商刷新时间! 一、A记录 ①.主机名必须填写; 常用主机名有:www//*,效果参见上图说明&…

【linux】基于环形队列的生产者消费者模型(信号量)

文章目录一、引入二、信号量2.1 信号量的概念2.2 信号量的PV操作2.3 信号量接口2.3.1 信号量初始化sem_init2.3.2 信号量销毁sem_destroy2.3.3 信号量等待sem_wait(P)2.3.4 信号量发布sem_post(V)三、基于环形队列的生产者消费者模型3.1 引入环形队列3.2 环形队列的访问3.3 代码…

java单例模式的线程安全 JAVA多线程编程中的双重检查锁定(DCL单例(Double Check Lock))

java单例模式的线程安全 JAVA多线程编程中的双重检查锁定(DCL单例(Double Check Lock))一、饿汉模式单例(本身及时线程安全的)二、懒汉模式单例1.懒汉模式第一版,用INSTANCE null判断是否初始化…

2023 年男生还推荐报计算机专业吗?

计算机专业确实是一个非常热门的专业,就业前景也很广阔。 但是,近些年随着各个大学对计算机专业及其相关专业疯狂扩招,而且每年的毕业人口都在增多,行业是根本容纳不下的,就业竞争力度也急剧上升。因此,选…

图解PMP项目管理马斯洛需求层次理论在公司管理中的应用!

马斯洛的需求层次结构是心理学中的激励理论,包括人类需求的五级模型,通常被描绘成金字塔内的等级。 从层次结构的底部向上,需求分别为:生理(食物和衣服),安全(工作保障)…

小白开发微信小程序52--测试小程序

经过前面的50,51两个重要的步骤之后,小程序的前端代码和后端代码终于部署在外网了,回顾这个过程,细节很多,环节很杂,而且麻烦,有这些过程:1)申请域名2)域名备…

Vue本地存储及用法

1.本地存储是什么? 以文件的方式存储在本地,通过把数据存在浏览器中,用户不必每次都向服务器请求 获取同一个信息。在你离线时,使用本地存储的数据而不是向远端服务器上请求 数据就显得非常有用,甚至在先用户也可以从中…

Java语法理论和面经杂疑篇《五.集合框架》

目录 1. 集合框架概述 1.1 数组的特点与弊端 1.2 Java集合框架体系 2. Collection接口及方法 2.1 添加 2.2 判断 2.3 删除 2.4 其它 3. Iterator(迭代器)接口 3.1 Iterator接口 3.2 迭代器的执行原理 3.3 foreach循环 4. Collection子接口1:List 4.1 Li…

【数据分析之道-NumPy(三)】numpy切片与索引

文章目录 专栏导读1、前言2、NumPy数组切片2.1一维数组切片2.2多维数组切片3、NumPy数组索引3.1一维数组索引3.2多维数组索引4、NumPy数组高级索引4.1整数数组索引4.2布尔数组索引4.3数组索引总结专栏导读 ✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域…