Mysql数据库基本认识

数据库基础:

 什么是数据库:储存电子文件仓库,对文件数据进行存储并增删,截取,更新,删除等,操作。简称 :增,删,改,查

隐性功能:数据库建模:     使用数据库来表达业务和业务的关系,数据建模成功与否决定了业务的成败

                                      业务逻辑:实体业务逻辑之间的实质性关系

关键点:    事物,事物的特性,     事物的回滚

(1)事务定义:作为一个单元的一组有序数据库的操作。如果所有操作成功,则事物执行成功,如果一个失败,则事物执行失败,回滚操作

                 或者说:绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。要将有组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性。

     (2)    事务的特性:

1.原子性:   事物包含的使用操作要么全部成功,要么全部失败,回滚;成功必须完全应用到数据库,失败则不能对数据库产生                      影响

2.一致性;  事务执行前和执行后必须处于一致性状态,

3.隔离性:  多个用户并发(不一定同时执行)访问时,数据库为每一个用户开启事物彼此之间不被其他的干扰,多个并发之间                       相互隔离

4:持久性:一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便在数据库系统遇到故障的情况下也不会                        丢失事物的操作。

(3)事务回滚 : 

                    作为同步的几份数据文件如果不在同一个事物,如果不能都被修改,那么修改过的文件会自动还原成修改前的原样称之为回滚

(4)数据库提供的四种隔离级别:

如果不考虑隔离性,会导致  脏读

隔离性:当多个线程开启事物时,为了保证各线程获取数据的准确性,而进行的隔离操作

会产生的问题

                     (1)脏读      在一个事物助理的过程中读取另一个没有提交的数位当中的数据,然后使用的数据

                       (2)不可重复读取:在同一个事物内,多次读取时,一个没执行完就再读一次,而且两次的 事物可能不同,而且数据可能在一次中修改,而导致的数据不同,或者其他问题

注意:             一,不可重复读和脏读的区别,脏读是某一个事务读取另一个事务未提交的脏数据; 不可重复读则是读取前一事务提

幻读:           

注:(一)幻读和不可重复读都读取另一条已经提交的事务,所不同的是不可重复读查询的都是同一数据项,而幻读针对的是一批数据整体。

     (二)以上问题都是数据库的隔离性不好

隔离性的四个等级

Read uncommitted(读未提交):最低级别,任何情况都会发生。

Read Committed(读已提交):可避免脏读的发生。

Repeatable read(可重复读):可避免脏读、不可重复读的发生。

Serializable(串行化):避免脏读、不可重复读,幻读的发生。

 

四种隔离级别最高:Seralizable级别,最低的是Read uncommitted级别; 级别越高,执行效率就越低;

Mysql的默认隔离级别是:可重复读:Repeatable read;

oracle数据库中,只支持seralizable(串行化)级别和Read committed();默认的是Read committed级别;

 数据库分类:

关系型数据库的三大范式

关系型数据库:是建立在关系模型的基础上的数据库,借助集合,代数等数学概念和方法来处理数据

Oracle , db2 ,sqlerver , access , MySQL ,sqlite  (Python自带的数据库)

第一范式(1NF):要求数据库表的每一列都是不可分割的原子数据项。

第二范式(2NF):在1NF的基础上,非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)

第三范式(3NF):在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)

非关系型数据库: 非关系型数据库,又被称为NoSQL(Not Only SQL ),意为不仅仅是SQL,具备Key-Value 存储和文档数据库的优点。有Redis   ,mongodb

{“name”:"丹",“img”:[“1.jpg”,“1.jpg”,“1.jpg”]}

2.  MySQL数据库引擎分类

MySQL引擎:数据库的引擎是用于处理和保护数据的核心服务。利用数据库引擎可以控制访问权限并快速处理事物,利用数据库引擎创建连接事物处理。

(1)ISAM                   

 定义明确且历经时间考验的数据表格管理方法

2)MYISAM

MYISAM是MYSQL的ISAM扩展格式和缺省的数据库引擎。

(3)HEAP

HEAP允许只驻留在内存里的临时表格。

(4)INNODB和BERKLEYDB

INNODB和BERKLEYDB(BDB)数据库引擎都是造就MYSQL灵活性的技术的直接产品,这项技术就是MYSQL++ API。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值