文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

数据库相关概念

2024-04-02 19:55

关注

数据库事务:是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。

 1).事务相关属性:

事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的;

3:隔离性

由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为隔离性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。当事务可序列化时将获得最高的隔离级别。在此级别上,从一组可并行执行的事务获得的结果与通过连续运行每个事务所获得的结果相同。由于高度隔离会限制可并行执行的事务数,所以一些应用程序降低隔离级别以换取更大的吞吐量;

4.持久性

事务完成之后,它对于系统的影响是永久性的。该修改即使出现致命的系统故障也将一直保持;

2).事务的三种模型:

  1. 1.隐式事务是指每一条数据操作语句都自动地成为一个事务,事务的开始是隐式的,事务的结束有明确的标记;

  2. 2.显式事务是指有显式的开始和结束标记的事务,每个事务都有显式的开始和结束标记;

  3. 3.自动事务是系统自动默认的,开始和结束不用标记;

3).使用事务的语句:

  1. 开始事物:BEGIN  TRANSACTION

  2. 提交事物:COMMIT  TRANSACTION

  3. 回滚事务:ROLLBACK  TRANSACTION


  4. 索引:索引是对数据库表中一个或多个列的值进行排序的数据结构,是用于提高在数据库表中访问数据的速度的数据库对象。索引就比如书的目录,如果没有索引,要想在数据库中查找某一特定的值就需要遍历整个数据库表,但是有了索引之后就可以在索引当中查找,有助于更快地获取信息;

  5. 索引可分为聚集索引和非聚集索引。

聚集索引:是按照数据存放的物理位置为顺序的;而非聚集索引中,表数据存储顺序与索引顺序无关;一张表上只能创建一个聚集索引,因为真实数据的物理顺序只可能是一种;如果一张表没有聚集索引,那么它被称为“堆集”,这样的表中的数据行没有特定的顺序,所有的新行将被添加到表的末尾位置。

  1.     一条索引记录中包含的基本信息有:键值(定义索引时指定的所有字段的值)+逻辑指针(指向数据页或另一索引页);

  2. 根据数据库的功能,可以在数据库设计器中创建三种索引:

  3. 唯一索引 :是不允许其中任何两行具有相同索引值的索引

  4. 当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在employee表中职员的姓(lname)上创建了唯一索引,则任何两个员工都不能同姓;

  5. 主键索引:该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问

  6. 主键:数据库表经常有一列或多列组合,其值唯一标识表中的每一行

  7. 聚集索引

  8. 在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引;如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。

  9.     虽然说建立索引的目的是加快对表中记录的查找或排序,但是为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。数据库索引就是为了提高表的搜索效率而对某些字段中的值建立的目录 ;其各有优缺点:

  10. 优点:创建索引可以大大提高系统的性能;

  11. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性;

  12. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因;

  13. 可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义;

  14. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间;

  15. 第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

  16. 缺点:增加索引也有许多不利的方面;

  17. 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加;

  18. 索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大;

  19. 当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

  20. 存储引擎:

  21.         MySQL中的数据用各种不同的技术存储在文件(或者内存)中,这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力,通过选择不同的技术,能够获得额外的速度或者功能,从而改善应用的整体功能。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型);

  22.  MySQL默认配置了许多不同的存储引擎,可以预先设置或者在MySQL服务器中启用。可以选择适用于服务器、数据库和表格的存储引擎,以便在选择如何存储你的信息、如何检索这些信息以及需要数据结合什么性能和功能的时候能提供最大的灵活性。

  23.  触发器:是一种特殊类型的存储过程,它在指定的表中的数据进行变化的时候自动生效;触发器是一个特殊的事务单元,可以引用其他表中的列执行特殊的业务规则或数据逻辑关系。一旦定义,任何用户对表的INSERT、UPDATE 或 DELETE均由服务器自动激活相应的触发器。触发器可以查询其它表。将触发器和触发它的语句作为可在触发器内回滚的单个事务对待。如果检测到严重错误(例如,磁盘空间不足),则整个事务即自动回滚,即撤销。

  24. 触发器类型分为两种(按照所触发动作的间隔尺寸):

  25. 行级触发器(FOR EACH ROW):触发动作根据某个表的行数执行相应次

  26. 语句级触发器(FOR EACH STATEMENT):无论该表有多少行,触发动作只发生一次

  27. 在建立触发器时,还必须指定触发操作:insert、update、delete操作,至少指定一种,也可指定多种;

  28. 创建触发器:

    create trigger<触发器名>{ before|after} <触发事件> ON <表名>

  29. for each{row|statement}

  30. [when <触发条件>]

  31. <触发动作体>

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯