数据库(一)

数据库

1.为什么要使用数据库

如果要存储数据,我们是可以使用文件来存储数据的,但是使用文件管理数据有很多缺点,比如:
不安全,不利于管理,查询,如果要存储大量的数据,使用文件管理会非常不好管理,这时候,使用数据库管理,我们可以对数据进行分类管理,我的理解是它就像图书馆一样,数据就像书籍 可以分书架又分格子,进行有效管理,同时也方便查询。

数据库分类:

1.关系型数据库
关系型数据库就是使用了关系模型来管理的数据库,关系模型就是二维表格模型。所以简单点说,关系型数据库就是由n个二维表格和表格之间的联系组成的数据组织。

2.非关系型数据库

关系型数据库与非关系型数据库的区别

1.关系型数据库使用SQL管理,非关系型数据库一般不使用
2.关系型数据库结构是表和列的结构,非关系型数据库不一定,灵活性高。
3.关系型数据库支持支持事务操作,非关系型数据库不支持
4.关系型数据库在大量的数据读写方面效率比较低,非关系型数据库效率更高。

二.什么是mysql

mysql是一个开源的关系型数据库管理系统,它使用SQL语言对数据进行管理。

数据库系统与数据库管理系统的关系

数据库系统是由数据库里的数据和数据库管理系统共同组成的。

而数据库管理系统,是指可以用来具体的管理数据库的软件 比如mysql等等


三.关系型数据库的三大范式

什么是三大范式:
三大范式是指在关系模型中,通过一系列的规范化过程,将数据分解为更小更规范的关系表,这样的话,可以提高数据的一致性,和可靠性。

三大范式分别是
1.第一范式(1NF)

第一范式要求每个数据项都是原子性的,不可再分解的,用简单的话说,就是每个属性只能包含一个值,不可以包含多个值或者多个属性。

2.第二范式(2NF)(第二范式是在主要是在有联合主键的情况下遵循)
第二范式要求每个非主属性都完全依赖主键。简单点说,就是一个关系表里不能存在部分依赖关系,如果一个关系表中存在部分依赖关系,就需要将它拆分成多个关系表。每个表都包含一个主键和非主属性。

3.第三范式(3NF)
第三范式要求是基于第二范式的基础上,消除传递依赖。简单点说,就是非主属性不能依赖非主属性,而是应该直接的依赖主键。如果一个关系表存在传递依赖关系,那么这个关系需要将它拆分为多个关系表。


四.三大范式有什么作用?

1.如果数据库中的二维表格模型都遵循三大范式,那么可以使数据库更加的规范化
2.可以减少数据的冗余。
3.提高数据的质量,也可以更好的管理数据,维护数据,查询数据。


五.数据库的事务

使用数据库的事务是数据库一个重要的操作。

事务主要是指在逻辑上的一系列操作,数据库的事务主要就是指将数据库的一系列操作捆绑在一起,捆绑在一起的一系列操作要么全部成功,要么全部失败。
比如,转账就是典型的例子,A向B转账,A转了50,那么按正常成功的情况,A的账号应该少了50块钱,B的账号增加了50块钱。

A账户金额的减少应该与B账号金额的增加捆绑为一个事务。要么一起成功,要么一起失败,不然就会有可能出现,A的账户减少了50块钱,而B的账户却没有增加50块钱这种情况。


事务的特性
1.事务应具有原子性,就是说就是说事务的操作是不可再分解的,一系列操作要么全部成功,要么全部失败。不能在一系列操作的中间失败
2.事务应该具有一致性。简单点说,就是数据库要和在事务开始之前要和在事务结束之后要保持完整性,数据库没有遭到破坏。

3.事务应该具隔离性。数据库允许多个并发事务对数据进行读写或者修改操作,事务的隔离性可以防止多个事务并发执行的时候由于交叉执行而导致的数据不一致。

4.事务具有持久性。就是使用事务之后,对数据的修改都是永久的,即使系统故障也不会丢失。


事务的隔离级别:

读未提交
读已提交
可重复读
可串行化

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

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

相关文章

Show that f(z)=1/z is analytic or not

See https://brainly.in/question/21838444

HVV行动之态势感知平台(一)

知攻善防,遇强则强! 先介绍一下什么是HVV行动: 它是由公安部牵头的,通过组织红队和蓝队进行为期两周到三周的攻防对抗演习,来检测一些企业单位可能存在的网络漏洞和威胁,进而进行修复和加固,提…

0829|C++day7 auto、lambda、C++数据类型转换、C++标准模板库(STL)、list、文件操作

一、思维导图 二、【试编程】将实例化类对象写入容器后,写入.txt文本中,再重新定义一个类容器,将.txt中的内容读取出来,输出到终端 封装一个学生的类,定义一个学生这样类的vector容器, 里面存放学生对象(至…

什么是RESTful API,Spring MVC如何支持RESTful架构

文章目录 🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:Java框架 ✨文章内容:Spring MVC支持RESTful架构 🤝希望作者的文章能对你有所帮助&#xf…

ubuntu18.04.6的安装教程

目录 一、下载并安装virtualbox virtualbox7.0.8版本的安装 二、Ubuntu的下载与安装 ubuntu18.04.6操作系统 下载 安装 一、下载并安装virtualbox VirtualBox是功能强大的x86和AMD64/Intel64虚拟化企业和家庭使用的产品。VirtualBox不仅是面向企业客户的功能极其丰富的高…

python+selenium实现修改日期控件的值

因为一些input标签,具有readonly属性,我们去要去掉readonly属性,才能实现对input标签的输入;一开始的时候我在网上查了很对资料,最终实现了,不多说了,直接上代码: #开始日期# js d…

ShardingSphere——弹性伸缩原理

摘要 支持自定义分片算法,减少数据伸缩及迁移时的业务影响,提供一站式的通用弹性伸缩解决方案,是 Apache ShardingSphere 弹性伸缩的主要设计目标。对于使用单数据库运行的系统来说,如何安全简单地将数据迁移至水平分片的数据库上…

线上批量查询物流导出到表格的操作指南

现在的生活中,我们经常需要查询包裹物流信息。如果一次性需要查询多个快递单号的物流信息,手动一个一个查询会非常麻烦。今天,我将向大家分享一个简单实用的方法,可以批量查询物流并导出到表格,方便随时查看。 首先&am…

Linux 查看当前目录大小

分析&回答 1. 查看当前目录下所有目录及子目录大小 du -h - . “.”代表当前目录下。也可以换成一个明确的路径 复制代码 2.查看当前文件目录各个文件夹大小 du -h --max-depth1 复制代码 查看指定目录 du -h --max-depth1 /path 复制代码 -h表示用K、M、G的人性化形…

【100天精通python】Day50:python web编程_Django框架使用

目录 1 安装Django Web框架 2 创建一个Django 项目 3 数据模型 3.1 在应用程序的 models.py 文件中定义数据模 3.2 创建模型的迁移文件并应用 3.2.1 查询模型对象: 3.2.2 创建新模型对象: 3.2.3 更新模型对象: 3.2.4 删除模型对象&a…

盘点狼人杀中的强神与弱神 并评价操作体验

最初 强神是大家对猎人的称呼,但随着板子的增加 强神渐渐变成了强神神牌的统称。 狼人杀发展至今板子已经非常多了,而每个板子都会有不同的角色。 相同的是 大部分都会希望拿到一张强力神牌,这样能大大提高我们玩家的游戏体验,但其…

【WebSocketIndexedDB】node+WebSocketIndexedDB开发简易聊天室

序幕介绍: WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 讲人话就是说:WebSocket 使得客户端和服务器之间的数据交换变得更加简单,在 WebSocket API 中,浏览器和服务器只需要完成一次握手&#x…

正中优配:沪指震荡涨0.23%,保险、酿酒等板块走强,半导体板块下挫

1日早盘,沪指、深成指盘中强势震动上扬,创业板指回落翻绿,科创50指数跌超1%;两市半日成交缺乏5000亿元。 到午间收盘,沪指涨0.23%报3127.19点,深成指涨0.25%,创业板指跌0.23%,科创5…

汇编攻城记-Cortex-M3指令集

类型 指令 全称 功能 内存访问 LDR Load register 加载字到寄存器 LDRB 加载字节到寄存器 LDRH 加载半字到寄存器 LDRSH 加载半字到寄存器,再带符号扩展到32位 LDRD 从连续的地址空间加载双字(64位整数)到…

数字人创作+SadTalker+GTX1080

https://github.com/OpenTalker/SadTalker 开源项目 SadTalker模型是一个使用图片与音频文件自动合成人物说话动画的开源模型,我们自己给模型一张图片以及一段音频文件,模型会根据音频文件把传递的图片进行人脸的相应动作,比如张嘴&#xf…

关于layui+php,三级联动-编辑回显的问题。

注 忍不住吐槽一波。都什么年代了。现在都前后端分离,但是公司老项目非得用tplayui。。 代码如下 layui.use([form], function () {var form layui.form;//php代码渲染页面的时候,将一级分类id和二级分类id带过来,存到页面input框中&#x…

Java面试之用两个栈实现队列

文章目录 题目一、什么是队列和栈?1.1队列1.2栈 二、具体实现2.1 思路分析2.2代码实现 题目 用两个栈实现一个队列,实现在队列尾部插入节点和在队列头部删除节点的功能。 一、什么是队列和栈? 1.1队列 队列是一种特殊的线性表,…

js数组分组,javascript实现数组的按属性分组

在JavaScript中,有多种方法可以对数组按属性进行分组。以下是至少6种常见的方法: 6种方法的使用场景和优缺点的简要描述: 使用reduce()方法: 使用场景:适用于需要对数组进行聚合操作的情况,可以自定义聚合…

Linux 命令大全(下)

Linux 命令大全(上) 本文目录 6. 网络通讯 常用命令6.1 ssh 命令 – 安全的远程连接服务器6.1.1 含义6.1.2 语法格式6.1.3 常用参数6.1.4 参考示例 6.2 netstat 命令 – 显示网络状态6.2.1 含义6.2.2 语法格式6.2.3 常用参数6.2.4 参考示例 6.3 dhclient…

Postgresql的一个bug_涉及归档和pg_wal

故障描述: 服务器ocmpgdbprod1,是流复制主节点,它的从节点是ocmpgdbprod2,两个节点的Postgresql数据库版本都是PostgreSQL 11.6,主节点ocmpgdbprod1配置了pg_wal归档,从节点ocmpgdbprod2没有配置pg_wal归档…