问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

三级数据库如何备考

发布网友 发布时间:2022-05-02 22:07

我来回答

3个回答

懂视网 时间:2022-05-03 02:28

事务(Transaction)是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元。事务是DBMS中最基础的单位,事务不可分割。

事务具有4个基本特征,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Duration),简称ACID。

ACID

1. 原子性(Atomicity)

原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。

2. 一致性(Consistency)

一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。

拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。

3. 隔离性(Isolation)

隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。

即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。

多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。

这指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。

不同的隔离级别:

Read Uncommitted(读取未提交[添加中文释义]内容):最低的隔离级别,什么都不需要做,一个事务可以读到另一个事务未提交的结果。所有的并发事务问题都会发生。

Read Committed(读取提交内容):只有在事务提交后,其更新结果才会被其他事务看见。可以解决脏读问题。

Repeated Read(可重复读):在一个事务中,对于同一份数据的读取结果总是相同的,无论是否有其他事务对这份数据进行操作,以及这个事务是否提交。可以解决脏读、不可重复读。

Serialization(可串行化):事务串行化执行,隔离级别最高,牺牲了系统的并发性。可以解决并发事务的所有问题。

4. 持久性(Durability)

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

例如我们在使用JDBC操作数据库时,在提交事务方法后,提示用户事务操作完成,当我们程序执行完成直到看到提示后,就可以认定事务以及正确提交,即使这时候数据库出现了问题,也必须要将我们的事务完全执行完成,否则就会造成我们看到提示事务处理完毕,但是数据库因为故障而没有执行事务的重大错误。

 

 

数据库的三大范式

第一范式:当关系模式R的所有属性都不能再分解为更基本的数据单位时,称R是满足第一范式,即属性不可分

第二范式:如果关系模式R满足第一范式,并且R得所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第二范式

第三范式:设R是一个满足第一范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第三范式,即非主属性不传递依赖于键码

 

B+树

B+树的特征:

1.有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。

2.所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。

3.所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。

B+树的优势:

1.中间节点不存指针,所以单一节点存储更多的元素,所以整个树的高度比较小,使得查询的IO次数更少。

2.所有查询都要查找到叶子节点,查询性能稳定。

3.所有叶子节点形成有序链表,便于范围查询。

 

 

唯一索引和主键索引的比较

唯一索引
唯一索引不允许两行具有相同的索引值。
如果现有数据中存在重复的键值,则大多数数据库都不允许将新创建的唯一索引与表一起保存。当新数据将使表中的键值重复时,数据库也拒绝接受此数据。例如,如果在 employee 表中的职员姓氏(lname) 列上创建了唯一索引,则所有职员不能同姓。

主键索引
主键索引是唯一索引的特殊类型。
数据库表通常有一列或列组合,其值用来唯一标识表中的每一行。该列称为表的主键。
在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在查询中使用主键索引时,它还允许快速访问数据。

它们的一些比较:
(1)对于主键/unique constraint , oracle/sql server/mysql等都会自动建立唯一索引;
(2)主键不一定只包含一个字段,所以如果你在主键的其中一个字段建唯一索引还是必要的;
(3)主键可作外键,唯一索引不可;
(4)主键不可为空,唯一索引可;
(5)主键也可是多个字段的组合;
(6)主键与唯一索引不同的是:
a.有not null属性;
b.每个表只能有一个。

 

主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等。

 

 

MySQL 数据加密方式

1、第一种加密方式,password()函数,使用MySQLSHA1(安全Hash算法)进行加密 mysql一般的加密方式是password(‘root‘)将root在数据库客户端以40位字符串显示出来。这个40位字符串是来自于mysql的密码库。如果要改用户名密码的话update t_user set password=password(‘root‘) where username=‘Jim‘,将用户名为Jim的密码修改为root。 两次用password()函数给root字符串加密,得出来的结果一样,说明密码产生自mysql的密码库

 

 

脏读:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。脏读就是读到了一个未提交的中间数据。

不可重复读:是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。(主要修改) 两次读取中间被修改了

幻读:是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。(针对insert)

Mysql主要包含四种隔离状态:

事务隔离级别

脏读

不可重复读

幻读

读未提交(read-uncommitted)

不可重复读(read-committed)

可重复读(repeatable-read)

串行化(serializable)

 

首先,需要明白一点,隔离程度越强,事务的执行效率越低。

ANSI/ISO SQL 定义了 4 种标准隔离级别:

① Serializable(串行化):花费最高代价但最可靠的事务隔离级别。

“写”会加“写锁”,“读”会加“读锁”。当出现读写锁冲突的时候,后访问的事务必须等前一个事务执行完成,才能继续执行。

事务 100% 隔离,可避免脏读、不可重复读、幻读的发生。

② Repeatable read(可重复读,默认级别):多次读取同一范围的数据会返回第一次查询的快照,即使其他事务对该数据做了更新修改。事务在执行期间看到的数据前后必须是一致的。

但如果这个事务在读取某个范围内的记录时,其他事务又在该范围内插入了新的记录,当之前的事务再次读取该范围的记录时,会产生幻行,这就是幻读。

可避免脏读、不可重复读的发生。但是可能会出现幻读。

③ Read committed (读已提交):保证一个事物提交后才能被另外一个事务读取。另外一个事务不能读取该事物未提交的数据。

可避免脏读的发生,但是可能会造成不可重复读。

大多数数据库的默认级别就是 Read committed,比如 Sql Server , Oracle。

④ Read uncommitted (读未提交):最低的事务隔离级别,一个事务还没提交时,它做的变更就能被别的事务看到。

任何情况都无法保证。

 

 

 请你回答一下mongodb和redis的区别

内存管理机制上:Redis 数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的 LRU 算法删除数据。MongoDB 数据存在内存,由 linux系统 mmap 实现,当内存不够时,只将热点数据放入内存,其他数据存在磁盘。

支持的数据结构上:Redis 支持的数据结构丰富,包括hash、set、list等。

MongoDB 数据结构比较单一,但是支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富

 

Redis是单线程的,但是为什么这么高效呢?

虽然Redis文件事件处理器以单线程方式运行,但是通过使用I/O多路复用程序来监听多个套接字,文件事件处理器既实现了高性能的网络通信模型,又可以很好地与Redis服务器中其他同样以单线程运行的模块进行对接,这保持了Redis内部单线程设计的简单性。

 

 

Redis的数据类型有哪些,底层怎么实现?

1)字符串:整数值、embstr编码的简单动态字符串、简单动态字符串(SDS)

2)列表:压缩列表、双端链表

3)哈希:压缩列表、字典

4)集合:整数集合、字典

5)有序集合:压缩列表、跳跃表和字典

备战----数据库

标签:mongodb   其他   性能   mysq   索引   标识   mongod   特征   文件   

热心网友 时间:2022-05-02 23:36

《全国计算机等级考试*教程数据库技术》(高等教育出版社)。
*数据库也是分机试和笔试。笔试主要是数据结构,网络基础,操作系统基础知识和简单数据库的介绍,以理解记忆为主,几乎没有计算题的,花一段时间应该不会有问题,但是千万要注重教材,有不少原话哦。
机试是要求编写一个c语言子程序,只有一题,错了就是零分。机试有不少题库可以参考,每年基本也没有变化,随便找一本就行,这里就不做推荐了.
最后,祝你取得好成绩!

热心网友 时间:2022-05-03 00:54

前者不会
提高C语言 下LINUX 源代码看 听说很有用
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦幻西游怎样查看自己怎么加的属性点阿? 我好长时间没玩了 .. 怎么... 梦幻西游怎么查看我各项加了多少点 卤肉料的配方 卤肉上色最好的配方前十 三国中曹操有几个儿子 曹植的意思是什么 曹操有多少个儿子?其中姓名叫什么? 简谱中1=c2/4是什么意思?别说几节几拍我不知道节和拍是什么意思 简谱四分之二什么意思 ...是鸡膏吗 放在老汤里行吗 怎么才能容于水 谢谢 怎么使用? 很多产品标签上有TM两个字~~这是啥意思??谢谢了,大神帮忙啊 TM在产品标签,是什么意思 商品上印有TM字样是什么意思? 吉利远景X3自动挡上坡不得了是什么原因? 倒挡、平路都可以就是上坡不得了。 吉利远景x3有360全景影像吗 吉利远景X3质量怎么样?开起来感觉怎么样?懂得朋友回答下吧 远景X3有前后防撞梁吗 开车时候总是时有时无的金属碰撞声音,停车的时候就很明显听到。新车三千公里。吉利的远景X3自动挡。 吉利远景X3磨合期需要上高速路磨合吗上了高速最佳车 吉利远景X3怎么样啊有开过的朋友吗 远景x3pro车头轻轻碰了防盗门没事吧 吉利远景x3pro手动高配几个气囊 我的新车是吉利远景X3第一次上高速就追尾发动机刚大修好能直接上高速吗? 吉利远景X3撞这样修一下得多少钱? 1你怎么理解“人类是一个命运共同体”? 人类命运共同体是什么 人类命运共同体的基本特征? 人类命运共同体的特征是什么 旧笔记本电脑除了硬盘可以做移动硬盘还有什么值得利用 旧笔记本电脑的妙用 养狗运气不好如何转运 养狗会引响财运吗? 请问家里养狗会不会影响人的运气 人家不想养的狗我带回家回家养会对运气有影响吗? 风水家里养狗好吗 最近这段时间家里老是来狗 风水上有什么不好吗? 如何看家里风水是否能养狗 养狗能带来财运吗 家里来了只狗狗(风水) 养狗真的会破财运吗? 狗不是招财的吗? 家里养狗对风水好吗 从风水看女人养狗好吗 养了个土狗家里有一直运气不好? 养了狗狗运气越来越差 家里面养两只狗狗会不吉利或者不好吗? 对于没有学过access的人,在一个月备战中哪个书最有帮助?教程、题库、教材哪个比较好呢? 主营凉拌菜、鸡爪店创意名字大全集 求店名 特色是鸡爪子 主卖烤串鸡爪烤鱼生蚝起什么店名? 姓谷想开个鸡爪店,起个店名 鸡爪专卖店有哪些名字,全国性的,爪紧吃?