2024022502-数据库绪论

news2024/12/27 2:46:37

数据库绪论

在这里插入图片描述

数据管理的三个阶段

人工管理阶段

文件系统阶段

数据库系统阶段

基本术语

数据(Data)

  • 计算机用来描述事物的记录(文字.图形.图像.声音)
  • 数据的形式本身并不能完全表达其内容,需要经过语义解释。数据与其语义是不可分的

数据库(Database,简称DB)

  • 数据库是长期存储在计算机内有结构的大量的共享的数据集合。

数据库管理系统(DBMS)

  • 数据库管理系统是位于用户与操作系统之间的一层数据管理软件。
  • 数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制。
  • 数据库系统(DBS)
    • 数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。

数据冗余度:

  • 指同一数据重复存储时的重复程度。

数据的安全性(Security)

  • 数据的安全性是指保护数据,防止不合法使用数据造成数据的泄密和破坏,使每个用户只能按规定,对某些数据以某些方式进行访问和处理。

数据的完整性(Integrity)

  • 数据的完整性指数据的正确性、有效性和相容性。即将数据控制在有效的范围内,或要求数据之间满足一定的关系。

并发(Concurrency)控制

  • 当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果并使得数据库的完整性遭到破坏,因此必须对多用户的并发操作加以控制和协调。

数据库恢复(Recovery)

  • 计算机系统的硬件故障、软件故障、操作员的失误以及故意的破坏也会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。DBMS必须具有将数据库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态)的功能。

数据库的三要素

数据(描述事物的符号记录,数据库里面存储的内容)

存储器(外存,一般是硬盘,数据库的载体)

数据库管理系统(DBMS,数据库的管理软件)

数据模型

模型

  • 是现实世界特征的模拟和抽象

数据模型

  • 也是一种模型,它是现实世界数据特征的抽象,表示实体以及实体间的联系
  • 一个用于描述数据、数据间关系、数据语义和数据约束的概念工具的集合

两级模型的抽象

  • 一是概念模型
    • (也称信息模型,用于信息世界的建模),它是按用户的观点来对数据和信息建模,主要用于数据库设计。这类模型强调其语义表达能力,要能够较方便、直接地表达应用中的各种语义知识,这类模型应为概念简单、清晰、易于用户理解,是用户和数据库设计人员之间进行交流的语言。
  • 二是数据模型
    • (如层次、网状、关系模型,用于机器世界),它是按计算机系统的观点对数据建模,主要用于DBMS的实现。这类模型通常需要有严格的形式化定义,而且常常会加上一些限制或规定,以便于机器上的实现。还通常有一组严格定义了语法和语义的语言,人们可以使用它来定义、操纵数据库中的数据。

数据模型的三要素

  • (1) 数据结构
    • 数据结构是所研究的对象类型(Object Type)的集合。这些对象是数据库的组成部分。一般可分为两类:一类是与数据类型、内容、性质有关的对象,如网状模型中的数据项、记录,关系模型中的属性、关系等;一类是与数据之间联系有关的对象,如网状模型中的系型(Set Type)等。
  • (2) 数据操作
    • 数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合。数据库主要有检索和更新(插入、删除、修改)两大类操作。
    • 数据结构是对系统静态特性的描述,数据操作是对系统动态特性的描述。
  • (3) 数据的约束条件
    • 数据的约束条件是完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据状态以及状态的变化,以保证数据的正确、有效、相容。

概念模型

  • 实体(Entity)
    • 客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系,如学生、部门、课程、银行帐户、选课、订货、演出、比赛等。
  • 属性(Attribute)
    • 实体所具有的某一特性称为属性。如学生实体可以由学号、姓名、性别、出生年月、系、入学时间等属性组成
  • 码(关键字,Key)
    • 唯一标识实体的(最小的)属性集称为码。例如学号学生实体的码
  • 域(Domain)
    • 属性的取值范围称为该属性的域。例如学号的域为8位整数,姓名的域为字符串集合,,性别的域为(男,女)。
  • 实体型(Entity Type)
    • 具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻划同类实体,称为实体型。例如:学生(学号,姓名,性别,出生年月,系,入学时间)
  • 实体集(Entity Set)
    • 同型实体的集合称为实体集。例如,全体学生就是一个实体集。
  • 联系(Relationship)
    • 在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。〖组成实体的各属性之间以及不同实体集之间的联系〗

联系的种类

1对1联系

  • 定义:若对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。

1对多联系

  • 定义:若对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:n

多对多联系

  • 定义:若对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n

概念模型的表示方法

E-R图

  • 使用长方形来表示实体型,框内写上实体名
  • 椭圆型表示实体的属性,并用无向边把实体和属性连接起来
  • 用菱形表示实体间的联系,菱形框内写上联系名,用无向边把菱形分别与有关实体相连接,在无向边旁标上联系的类型,若实体之间联系也具有属性,则把属性和菱形也用无向边连接上

基本数据模型

层次模型(Hierarchical Model)

  • 最早使用的一种模型
  • 数据结构是一棵有向树
  • 特点
    • (1) 有且仅有一个结点无双亲,该结点称为根结点。
    • (2) 其他结点有且只有一个双亲

网状模型(Network Model)

  • 数据结构是一个有向图
  • 特点
    • (1)有一个以上的结点没有双亲
    • (2)结点可以有多于一个的双亲
  • 能表示实体之间的多种复杂联系

关系模型(Relational Model)

  • 关系模型是用二维表格结构来表示实体及实体之间的联系的模型
  • 数据结构是一个“二维表框架”组成的集合
  • 关系模型概念简单,清晰,用户易懂易用,有严格的数学基础
  • 大多数数据库系统都是关系型的
  • 主要术语
    • 关系:一个关系对应于我们平常讲的一张表
    • 元组:表中的一行称为一个元组
    • 属性:表中的一列称为属性,每列的名称为属性名
    • 主码:表中的某个属性组,它们的值唯一的标识一个元组
    • 域:属性的取值范围
    • 分量:元组中的一个属性值
    • 关系模式:对关系的描述,用关系名(属性名1,属性名2,…,属性名n)来表示
  • 特点
      1. 概念单一:
      • 实体或实体之间的联系都用关系表示
      • 用户的观点里,数据的逻辑结构就是表
      1. 关系必须是规范化的关系
      • 指在关系模型中,每一个关系模式要满足一定的要求或者称为规范条件
      • 其最基本的要求是每一个分量是一个不可分的数据项,也就是说,不允许表中还有表。
      1. 用户对数据的检索操作不过是从原来的表中得到一张新的表
      • 在用户眼中,无论是原始数据还是结果数据,都是同一种数据结构——二维表。
      • 数据操作是集合操作,即操作对象和操作结果都是若干元组的集合,而不象非关系模型中那样单记录的操作方式。
      • 把存取路径向用户隐藏起来,提高了数据的独立性。

数据库系统的体系结构

三层模式:外模式、模式、内模式

  • 外模式
    • 又称为用户模式,是数据库用户和数据库系统的接口,是数据库用户的数据视图,是数据库用户可以看见和使用的局部数据的逻辑结构和特征的描述
    • 一个数据库通常都有多个外模式。一个应用程序只能使用一个外模式,但同一外模式可为多个应用程序所用
  • 模式
    • 可细分为概念模式和逻辑模式,是所有数据库用户的公共数据视图,是数据库中全部数据的逻辑结构和特征的描述。
    • •一个数据库只有一个模式。模式不但要描述数据的逻辑结构,还要描述数据之间的联系、数据的完整性、安全性要求。 
      
  • 内模式
    • 又称为存储模式,是数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。
    • •一个数据库只有一个内模式。内模式并不涉及物理记录,也不涉及硬件设备。
      

•二层映象功能:外模式/模式映象和模式/内模式映象

  • 三层模式关系
    • 数据库模式是数据库的核心和关键,外模式通常是模式的子集。数据按外模式的描述提供给用户,按内模式的描述存储在硬盘上,而模式介于外、内模式之间,既不涉及外部的访问,也不涉及内部的存储,从而起到隔离作用,有利于保持数据的独立性,内模式依赖于全局逻辑结构,但可以独立于具体的存储设备
  • 映象
    • 是一种对应规则,说明映象双方如何进行转换。
  • 外模式/模式映象
    • 作用:把描述局部逻辑结构的外模式与描述全局逻辑结构的模式联系趣来
    • 当模式改变时,只要对外模式/模式映象做相应的改变,使外模式保持不变,则以外模式为依据的应用程序不受影响,从而保证了数据与程序之间的逻辑独立性,也就是数据的逻辑独立性
  • 模式/内模式映象
    • 作用:把描述全局逻辑结构的模式与描述物理结构的内模式联系起来
    • 当内模式改变时,比如存储设备或存储方式有所改变,只要模式/内模式映象做相应的改变,使模式保持不变,则应用程序就不受影响,从而保证了数据与程序之的物理独立性。
      XMind: ZEN - Trial Version

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

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

相关文章

LeetCode第二题: 两数相加

文章目录 题目描述示例 解题思路 - 迭代法Go语言实现 - 迭代法算法分析 解题思路 - 模拟法Go语言实现 - 模拟法算法分析 解题思路 - 优化模拟法主要方法其他方法的考虑 ‍ 题目描述 给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方…

第三百六十八回

文章目录 1. 概念介绍2. 方法与细节2.1 获取方法2.2 使用细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取当前系统语言"相关的内容,本章回中将介绍如何获取时间戳.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…

alembic

alembic是sqlalchemy的作者开发的。 用来做OMR模型与数据库的迁移与映射。 第一个,alembic的所有命令都是以alembic开头 第二,alembic的迁移文件也是通过版本进行控制的。首先,通过pip install alembic进行安装。以下将解释alembic的用法 方…

Linux内核网络

文章目录 前言网络协议栈图解功能 发送Linux内核网络数据包图解流程 接收Linux内核网络数据包图解流程 最后 前言 你好,我是醉墨居士,因为Linux内核涉及的内容极多,我们初学者如果一上来就开始深挖细节,很有可能会在Linux内核代码…

如何使用Axure RP制作web页面并实现无公网ip远程访问——“cpolar内网穿透”

文章目录 前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4.2 启动website隧道4.3 获取公网URL地址4.4. 公网远程访问内网web站点4.5 配置固定二级子域名公网访问内网web站点4.5.1创建一条固定…

NFTScan | 02.19~02.25 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期:2024.02.19~ 2024.02.25 NFT Hot News 01/ LINE NEXT 与 ReadON 建立战略合作伙伴关系,将为 DOSI 用户提供创新数字产品 2 月 19 日,日本社交巨头 LINE 旗下 NFT …

lv20 QT入门与基础控件 1

1 QT简介 QT是挪威Trolltech开发的多平台C图形用户界面应用程序框架 典型应用 2 工程搭建 2.1 新建ui工程 不要写中文路径 2.1 不勾选UI(主讲) 3 QT信号与槽机制 语法:Connect(A, SIGNLA(aaa()), B, SLOT(bbb()))…

react+canvas实现刮刮乐效果

话不多说,直接看代码吧 import { useEffect } from react; import styles from ./index.less;export default function Canvas() {function init() {let gj document.querySelector(.gj);let jp document.querySelector(#jp) as HTMLElement;let canvas documen…

HQYJ 2024-2-26 作业

1.整理链表的代码 link.stack.h文件 #ifndef __LINK_STACK_H__ #define __LINK_STACK_H__ #include<stdio.h> #include<stdlib.h> typedef int datatype; typedef struct link_stack {datatype data;struct link_stack *next;}link_stack,*link_p; typedef struc…

NASA Earthdata wget批量下载

1 wegt下载 GNU Wget 1.21.4 for Windows (eternallybored.org) 2 创建your .urs_cookies and .dodsrc文件 只需要创建.urs_cookies文件 其实&#xff0c;通过txt可以直接创建 这个文件你想放到哪里&#xff0c;就放到哪里 Create .urs_cookies file: On Mac/Linux: cd ~ o…

[计算机网络]--IP协议

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、IP协议…

YOLOv9中“CBLinear”的结构!

ADown结构出炉啦&#xff0c;收藏起来写论文用&#xff01; 1.代码&#xff1a; 代码路径&#xff1a;yolov9-main->models->common.py&#xff0c;代码如下&#xff1a; class CBLinear(nn.Module):def __init__(self, c1, c2s, k1, s1, pNone, g1): # ch_in, ch_outs…

微信小程序本地开发

微信小程序本地开发时不需要在小程序后台配置服务器域名直接在小程序项目中填写后端在本机的IP地址和端口号 如图&#xff08;第一步&#xff09; 填写地址后发现报错&#xff0c;url不是合法域名&#xff0c;则在详情设置不校验合法域名 如图&#xff08;第二歩&#xff09;…

提升Vue3应用效率的秘诀:深入比较ref与reactive!

ref 和 reactive 是 Vue3 中实现响应式数据的核心 API。ref 用于包装基本数据类型&#xff0c;而 reactive 用于处理对象和数组。尽管 reactive 似乎更适合处理对象&#xff0c;但 Vue3 官方文档更推荐使用 ref。 我的想法&#xff0c;ref就是比reactive好用&#xff0c;官方也…

猫头虎分享已解决Bug || AttributeError: ‘Sequential‘ object has no attribute ‘session‘

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

matlab采用不同数值方法求解微分方程

1、内容简介 略 60-可以交流、咨询、答疑 欧拉方法、改进欧拉、RK4、米尔斯坦方法求解微分方程 2、内容说明 略 lc; close all; clear all; % 参数赋值 global a global b global h a 1; b 2; Ni 1000; % 总步数 h 0.001; % 步长Xt1(1:Ni) 0; Xt2(…

外包干了3个月,技术倒退1年。。。

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

【数据结构与算法】常用算法 前缀和

&#x1f389;&#x1f389;欢迎光临&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;特别推荐给大家我的最新专栏《数据结构与算法&#xff1a;初学者入门指南》&#x1f4d8;&am…

C++:STL(标准模板库)

STL&#xff1a;主要是一些“容器”的集合&#xff1b;“容器”有&#xff1a;vector(数组)、list(双向链表)、deque(双向队列)、set(集合)、map(图&#xff1a;内部结构红黑树) STL也是算法和其他一些组件的集合&#xff0c;是泛型编程的一个经典范例。 STL的目的是标准化组…

RabbitMQ开启MQTT协议支持

1&#xff09;RabbitMQ启用MQTT插件 rootmq:/# rabbitmq-plugins enable rabbitmq_mqtt Enabling plugins on node rabbitmq: rabbitmq_mqtt The following plugins have been configured:rabbitmq_managementrabbitmq_management_agentrabbitmq_mqttrabbitmq_web_dispatch Ap…