数据库-理论基础

news2024/11/26 17:33:35

目录

1.什么是数据库?

2.数据库与文件系统的区别?

3.常见的数据库由那些?

4.关系型数据库(MySQL)的特征及组成结构介绍


1.什么是数据库?

数据:描述事物的符号记录,可以是数字,文字,图形,声音,语言等多种形式,他们都可以经过数字化后存入计算机

数据库:存储数据的仓库,是长期存放在计算机内,有组织,可共享的大量 数据集合。数据库中的数据按照一定数据模型组织,描述和存储,具有较小的冗余度,较高的独立性和易扩展性,并为各种用户共享。总结为一下几点

  • 数据结构化
  • 数据的共享性,冗余度低,易扩充
  • 数据独立性高
  • 数据由DBMS统一管理和控制(安全性,完整性,并发控制,故障恢复)解释:DBMS数据库管理系统 (能够操作和管理数据库的大型软件)

2.数据库与文件系统的区别?

文件系统:文件系统是操作系统用于明确存储设备(常见的是磁盘)或分区上的文和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称为文件系统

数据库系统:数据库管理系统(DMS) 是一种操纵和管理数据库的大型软件,用于建立,使用和维护数据库,简称DBMS.他对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。

对比和区别:

1.管理对象不同:文件系统的管理对象是文件,并非直接对数据进行管理,不同的数据结构需要使用不同的文件类进行保存(例如:txt文件和doc 文件不能通过修改文件名称完成转换)而数据库直接对数据进行存储和管理

2.存储方式不同:文件系统使用不同的文件将数据分类(.doc/.mp4/.jpg)保存在外部存储上;数据库系统使用标准统一的数据类型进行数据保存(字母 数字 符号 时间)

3.调试数据的方式不同:文件系统使用不同软件打开不同类型的文件;数据库系统由DBMS统一调用和管理。如下图

 优缺点总结:

  • 由于DBMS 的存在,用户不在需要了解数据存储和其他实现的细节,直接通过DBMS就能获取数据,为数据的使用带来极大的便利
  • 具有以数据为单位的共享性,具有数据的并发访问能力。DBMS保证了在访问时数据的一致性。
  • 低延时访问,典型例子就是线下支付系统的应用,支付规模局的的时候,数据库系统的表现远远优于文件系统
  • 能够较为频繁的对数据进行修改,在需要频繁修改数据的场景下,数据库系统可以依赖DBMS来对数据进行操作且对性能的消耗相比文件系统比较小
  • 对事物的支持。DBMS支持事务,即一系列对数据的操作集合要么都完成,要么不完成。在DBMS上对数据的各种操作都是原子级的 

3.常见的数据库由那些?

关系型数据库

        关系数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。简单的来说关系型数据库由多张能互相联系的二维行列表组成的数据库。

        关系模型 就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。当前主流的关系数据库有Oracle,DB2,Microsoft SQL Server,Microsoft Acess,MySQL,浪潮 K-DB 等

        实体关系模型 简称 E-R 模型,是一套数据库设计的工具,它运用真实世界种事物与关系的观念,来解释税局库中的抽象的数据架构。实体关系模型利用图形的方式(实体-关系图)来表示数据库的概念设计,有助于设计过程中的构思及沟通讨论  

非关系型数据库

        非关系型数据库:又称为NoSQL (Not Only SQL ),意为不仅仅是SQL 是一种轻量,开源,不兼容 SQL 功能的数据库,对NoSQL 最普遍的定义为“非官联型的” 强调Key-Value 存储和文档数据库的优点,而不是单纯的地反对RDBMS (关系型数据库管理系统) 

4.关系型数据库(MySQL)的特征及组成结构介绍

关系型数据库的发展历程

1.层次模型

2.网状模型

关系模型

         关系模型以二维标结构来表示实体与实体之间的联系,关系模型的数据结构是一个“二维表框架” 组成的集合。每一个二维表又可称为关系。在关系模型中,操作的对象和结果都是二维表。

        关系模型是目前最流行的数据库模型。支持关系模型的数据库管理系统称为关系数据库管理系统,Access就是一种关系数据管理系统。图所示为一个简单的关系模型,其中图(a)所示为关系模式,图(b)所示为这两个关系模式型的关系,关系名称分为教师关系和课程关系,每个关系均含3个元组,其主码均为“教师编号”。

 

 在关系模型中基本数据结构是二维表,不想层次或网状那样的连接指针。记录之间的联系是通过不同关系哦中同名属性来体现的。关系模型中的各个关系模式不是应当孤立的,也不是随意拼凑的一堆二维表,它必须满足相应的要求。

关系式数据库的组成结构和名词解释

        数据以表格的形式出现,每行为单独的一条记录,每列为一个单独的字段,许多的记录和字段组成一张表(table) 若干的表单组成库(database)

  • 记录(一条数据) 在数据库当中,表当中的行称为记录
  • 字段 (id name .......)    在数据库当中,表当中的称之为字段。
  • MySQL 数据类型       

        数据类型用于指定特殊字段所包含数据的规则,它决定了数据保存在字段里的方式,包括分配给字段的宽度,以及值是否可以是字母,数字,日期,和时间等。任何数据或数据的组合都对于的数据类型,用于存储字母,数字,日期和时间,图像,二进制数据等。数据类型是数据本身的特征,其特性被设置到表里面的字段。

        MySQL 常见基础数据类型 

                1.字符串类型 (CHAR (0-255 固定长度)VARCHAR(0-255可变长度))

                2.数值类型(INT(整数型)FLOATI(浮点型))

                3.日期和时间类型(DATE(年月日),TIME(时分秒))

  • MySQL 约束类型 

        约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性,唯一性。

1.主键约束 primary key 主键约束相当于唯一约束+飞空约束的组合,主键约束不允许重复,也不预序出现空值。每个表最多只允许一个主键,建立主键约束可以在列表级别创建,也可以在表示级别创建。当创建主键的约束时,系统默认会在所有的列列组合上建立对应的唯一索引。

2.外键约束  foregin key 外键约束时保证一个或两个表之间的参照完整性,外键时构建于一个表的两个字段或是两个表的两个字段之间的参照关系

3.唯一约束 unique 唯一约束是指table 表的列或列表不能重复,保证数据的唯一性。唯一性约束不允许出现重复的值,但是可以为多个null.同一个表可以又多个唯一约束,多个列表组合的约束。在创建唯一约束时,如果不给唯一约束名称,就默认和列名相同。唯一约束不仅可以在一个表内创建,而且可以同时多表创建组合唯一约束。

4.非空约束 not null 与默认值 default :  非空约束用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。Null 类型特征:所有的类型的值都可以时null 包括 int float 等数据类型。 

  • MySQL 索引  

                索引是一个单独的,物理的数据库结构,它是某一个字段或若干字段的集合。表的存储由两部分组成,一部分用来存放数据,另一部分存放索引页面。通常,索引页面相对于数据页面来说小的多。数据检索花费的大部分开销是磁盘读写,没有索引就需要从磁盘上读表的每一个数据页,如果有索引,则只需查找索引页面就可以了。所以建立合理的索引,就能加速数据的检索过程。

  • MySQL 锁  

        数据库是一个多用户的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事物同时存取同一数据地情况。若对并发操作不加控制就可能会读取和存储不正确地数据,破环数据库地一致性。

        加锁是实现数据库并发控制地一个非常重要的技术。当事物在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事物就对该数据对象有了一定的控制,在该事务释锁之前,其他事物不能对此数据对象进行更新操作。 

  • MySQL 的存储引擎

        存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式。存储引擎是基于表的,而不是基于库的。所以存储引擎页可以被称为表类型。Oracle,SqlServer 等数据库只有一种存储引擎。MySQL提供了插件式的存储引擎架构。所以MySQL 存在多种存储引擎。可以根据需要使用相应引擎,或者编写存储引擎。

MYISAM:默认引擎,插入和查询速度较快,支持全文索引,不支持事务,行级锁和外键约束等功能。

INNODB: 支持事物,行级锁和外键约束等功能

MEMORY: 工作在内存中,通过散列字段保存数据,速度快,不能永久保存数据

  • 事务 (Transaction) 是并发控制的基本单位 

        可以把一系列要执行的操作称为事务,而事务管理就是管理这些操操作要么完全执行,要么完全不执行

        经典案例:银行转账工作,从一个账号扣款 并使另一个账号增款,这两个操作要么都执行,要么都不执行。所以,应该把他们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保存数据的一致性。

注意:mysql 中并不是所有的数据引擎都支持事务管理的,只有 innodb 支持事务管理。

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

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

相关文章

SSTI注入利用姿势合集

文章目录 前言SSTI模板注入原理?关于Python的类知识构造链的思路Jinjia2获取配置信息lipsumrequesturl_forget_flashed_messagesg对象 Jinjia2 Bypass.绕过引号绕过_绕过init过滤[ ]被过滤 羊城杯2023[决赛] SSTI2020XCTF 华为专项赛Tornado通用手法tornado.templat…

电脑字体怎么改?4个方法快速更改字体!

“我的电脑字体看起来很不习惯,想给电脑换个字体。电脑字体应该怎么改呢?哪位朋友可以给我支支招呀?” 电脑字体的不同可能会让用户在使用电脑时有不同的体验。有些电脑用户可能想使用比较正式的字体,但有些用户可能会比较喜欢可爱…

算法|Day49 动态规划17

LeetCode 647- 回文子串 题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 题目描述:给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子…

RS485(一):电路与波形

一、RS485电路 ​RS485( Recommended Standard-485)是隶属于OSI模型-物理层的电气特性,规定为 2 线、半双工、平衡传输线的多点异步通信标准,通信采用差分信号传输。 典型485应用电路如下图所示: 其中 、# 分别控制接收和发送…

深度学习-全连接神经网络-训练过程-权值初始化- [北邮鲁鹏]

文章目录 思想避免全零初始化随机权值初始化权值初始化太小:权值初始化太大Xavier初始化目标为什么输入和输出分布会变得不同?Xavier在使用Tanh时的表现好Xavier在使用ReLU时的表现不好 HE初始化(MSRA)权值初始化总结 思想 通过调…

ARMv8架构简介

ARMv8-A架构和处理器 ARMv8-A架构 ARMv8‑A 架构是针对应用程序配置文件的最新一代 ARM 架构。 ARMv8 这个名称用于描述整体架构,现在包括 32 位执行状态和 64 位执行状态。它引入了使用 64 位宽寄存器执行的能力,同时保持与现有 ARMv7 软件的向后兼容性。 ARMv8‑A 架构引…

电脑死机的时候,CPU到底在做什么?

电脑死机,应该每个接触计算机的小伙伴都经历过吧。 尤其是早些年,电脑配置还没现在这么高的时候,多开几个重量级应用程序,死机就能如约而至,就算你把键盘上的CTRLALTDELETE按烂了,任务管理器也出不来&…

GIS前端-地图事件编程

GIS前端-地图事件编程 图层操作事件地图状态事件交互事件弹出框事件导出PDF 在地图上的一切操作均要采用地图事件机制来实现,即通过鼠标、键盘等交互,触发地图相关事件,进而调用相关功能接口函数实现相应的GIS功能。在具体的实现过程中&#…

logstash无法精确到毫秒级解决方案

问题描述 最近遇到这样一个问题:logstash想要动态更新数据库内容,常用的方法是在conf文件里设置。这里我选择用timestamp记录 # 数据追踪 # 追踪的字段 tracking_column > "update_time" tracking_column_type > "timestamp"…

【LeetCode-中等题】 454. 四数相加 II

文章目录 题目方法一:哈希表 题目 方法一:哈希表 哈希表记录前两个数组的和以及出现次数,然后记录后面两个数组的和,成功将四数之和转换为两数之和 因为本题特殊在和是为0 的 所以后面的两个数组之和取反 如果能在map的key中存在…

关于rsync用不了之后

1.尝试找出rsync使用错误原因: 我遇见一个问题:rsync:read errors mapping:communication error on send (70),我查了一下这个问题很大可能是网络链接导致的,然后我用nslookup指令查看了/train2…

python-爬虫-爬取中华人民共和国农业农村部网站公开的农产品批发价格中的蔬菜价格周数据

中华人民共和国农业农村部 http://www.moa.gov.cn/ 点击数据 → 点击周度数据 → 跳转网页 http://zdscxx.moa.gov.cn:8080/nyb/pc/frequency.jsp 分析 抓包,发现getFrequencyData里面有我们想要的数据 查看请求的提交参数 使用postman接口测试工具测试验证ge…

华为云征文|华为云云耀云服务器L实例使用教学

目录 国内免费云服务器(体验) 认识国内免费云服务器 如何开通国内免费云服务器 云耀云服务器 HECS HECS适用于哪些场景? 网站搭建 电商建设 开发测试环境 云端学习环境 为什么选择华为云耀云服务器 HECS 国内免费云服务器&#xff…

MES管理系统和ERP系统在生产制造管理中的应用

MES生产管理系统通过过程管理、质量管理、设备管理、产品跟踪和溯源、性能分析和物料管理等方面来管理生产制造,旨在建立规范的生产管理信息平台,提高企业核心竞争力。ERP系统则通过制定生产计划、细分物料需求计划、车间订单下达和生产回报等步骤进行生…

推荐9个好玩的AI作图网站

1、Mental AI Mental AI是一款国产的AI作图网站,它访问方便,使用简单,是更适合国内设计师使用的AI作图网站推荐。在Mental AI中,设计师既可以使用文字描述的方式来生成图片,也可以使用叠加模型的方式来生成图片&#x…

点击劫持概念及解决办法

1.点击劫持的概念 点击劫持 (Clickjacking) 技术又称为界面伪装攻击 (UI redress attack ),是一种视觉上的欺骗手段。攻击者使用一个或多个透明的 iframe 覆盖在一个正常的网页上,然后诱使用户在该网页上进行操作,当用户在不知情的情况下点击…

靶场上新:Openfire身份认证绕过

本文由掌控安全学院-江月投稿 封神台新上线漏洞复现靶场:Openfire身份认证绕过。 漏洞详情: Openfire是采用Java编程语言开发的实时协作服务器,Openfire的管理控制台是一个基于Web的应用程序,被发现可以使用路径遍历的方式绕过…

GIS前端编程 地图常用操作

GIS前端编程 地图常用操作 地图背景设置地图定位地图级数控制获取显示参数 地图操作是WebGIS应用的基本功能,如缩放、移动等操作。在实际WebGIS应用中,地图操作方式多种多样。下面主要介绍以下几种地图操作:地图背景设置、地图定位、地图级数…

WebDAV之π-Disk派盘 + BubbleUPnP

BubbleUPnP是一款功能强大的Android播放器,支持UPnP/DLNA多屏互动。它可以将手机内容投屏到电视大屏上,与家人和朋友一起共享。此外,BubbleUPnP还提供了丰富的音乐和影视资源,您可以在线搜索并播放喜欢的内容。 以下是BubbleUPnP的一些主要特点: 1. 支持Chromecast和转码…

2023 致远OA-任意用户密码重置漏洞

一、致远OA 致远OA是一款企业级办公自动化软件,它提供了一系列的办公自动化解决方案,包括文档管理、流程管理、协同办公、知识管理、人力资源管理等功能。致远OA可以帮助企业实现信息化管理,提高工作效率和管理水平,同时也可以提高…