chapter-2数据库基本知识

news/2024/11/14 19:59:46/

以下课程来源于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.ppmy.cn/news/39811.html

相关文章

0116 实用指令

1.运行级别 0:关机 1:单用户(找回丢失密码) 2:多用户状态没有网络服务 3:多用户状态有网络服务 4:系统未使用保留给用户 5:图形界面 6:系统重启 常用运行级别是3…

ffmpeg动态改变码率

在调用avcodec_open2()打开编码器后,设置初始码率。例如: AVCodecContext *codec_ctx = ...; // 编码器上下文 codec_ctx->bit_rate = initial_bit_rate;在编码过程中,如果需要更改码率,请修改编码器上下文的bit_rate字段: codec_ctx->bit_rate = new_bit_rate;要…

【SpringMVC】3—RESTFul风格

⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记链接👉https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以,麻烦各位看官顺手点个star~😊 如果文章对你有所帮助,可以点赞👍…

[计算机图形学]重心坐标应用纹理(前瞻预习/复习回顾)

一、重心坐标,插值 上篇的最后我们提到了,当顶点在纹理上的对应uv坐标成功找到之后,三角形三个顶点中间的值需要用三角形的重心坐标插值计算得到,那么这个运算是怎么进行的,本篇我们将介绍。插值的运算不仅仅在纹理中…

Redis第八讲 Redis之Hash底层数据结构实现

Hash底层数据结构 Hash 数据结构底层实现为一个字典( dict )哈希表,也是RedisBb用来存储K-V的数据结构,Redis内存数据库,最底层是一个redisDb;字典中的每一项,使用dictEntry ,代表KV键值;类似于HashMap中的键值对Entry。dict是一种用于维护key和value映射关系的数据结构,…

【微信小程序-原生开发】系列教程目录(已完结)

01-注册登录账号,获取 AppID、下载安装开发工具、创建项目、上传体验 https://sunshinehu.blog.csdn.net/article/details/128663679 02-添加全局页面配置、页面、底部导航 https://sunshinehu.blog.csdn.net/article/details/128705866 03-自定义底部导航&#x…

Point-NeRF总结记录

渲染可以理解为三维模型或场景转换成二维图像的过程,广泛应用于电影、虚拟现实、建筑和产品设计等领域。在计算机图形学中,渲染通常指的是使用计算机程序对三维场景进行可视化的过程。假如游戏中的场景有一个3d模型、一个摄像机和光源,渲染要…

chatGPT写文章提问词-chatGPT生成论文要多久

让ChatGPT写评论文章 好的,下面是一篇由 ChatGPT 撰写的评论文章: 题目:《流浪地球》:中国科幻电影的里程碑 《流浪地球》是一部改变了中国电影市场的重要电影,它迎来了一个新时代的中国科幻电影。这部电影吸引了众…