数据库(一)

数据库

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.事务具有持久性。就是使用事务之后,对数据的修改都是永久的,即使系统故障也不会丢失。

事务的隔离级别:

读未提交

读已提交

可重复读

可串行化

相关推荐
island131421 小时前
【Redis#10】渐进式遍历 | 数据库管理 | redis_cli | RES
数据库·redis·bootstrap
心想事成的幸运大王21 小时前
Redis的过期策略
数据库·redis·缓存
倔强的石头_21 小时前
CentOS 上安装KingbaseES(ISO包)详细教程
数据库
2401_897930061 天前
使用Docker轻松部署Neo4j图数据库
数据库·docker·neo4j
诗句藏于尽头1 天前
Django模型与数据库表映射的两种方式
数据库·python·django
寻星探路1 天前
数据库造神计划第六天---增删改查(CRUD)(2)
java·大数据·数据库
盖世英雄酱581361 天前
Read timed out问题 排查
java·数据库·后端
云动雨颤1 天前
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
数据库·spring boot·tomcat
RestCloud1 天前
Kafka实时数据管道:ETL在流式处理中的应用
数据库·kafka·api