迅闻网
让更多人看到你

数据库原理(学数据库原理到底有什么用)

  数据库原理

数据处理发展的三个阶段:
人工办理阶段
不保存在计算机没有专门软件只要程序概念没有文件概念数据面向程序
文件体系阶段
以文件方式存储在外部磁盘数据面向使用
三个缺陷:数据冗余、数据不一致、数据联络弱
数据库阶段
为用户供给接口、并发、康复、完整性、安全性、灵活性
数据库体系组成
首要软件:
DBMS
操作体系
高档语言和编译体系
使用开发工具
数据库使用体系
数据库:集成、同享
数据库办理体系(DataBaseManagementSystem,简记DBMS):用户与操作体系之间的一个数据办理软件
常见的大中型数据库办理体系有Oracle、DB2、SQLServer、Sybase等,
小型数据库体系有Foxpro、Access、Mysql等。
功能:
界说:DDL来界说数据库的三级结构、两级映象,界说数据的完整性约束、保密约束等约束。
操纵:DML进行CRUD
保护:康复、并发控制
维护
数据字典
三级形式的两级映象
三级形式
三级形式结构、数据抽象的三个级别
外部级(外形式):接近用户,单个用户
概念级(概念形式、形式、全体视图、大局视图):涉及一切用户数据界说、大局视图,由若干个概念记载类型组成,只涉及行的描绘,不涉及具体的值
内部级(内部形式,存储形式):接近物理数据存储的结构
两级映像
形式/内形式映像
放在内形式中描绘的
外形式/形式映像
放在外形式中描绘的
两级映射保证了数据库中的数据具有较高的物理独立性和逻辑独立性。
数据处理三个阶段
概念数据模型
E-R图(实体、联络方法)
二元联络:一对一、一对多、多对多
三元联络;
一元联络;
逻辑数据模型
层次模型
网状模型
联系模型
面向对象模型

数据库

学数据库原理到底有什么用

学习数据库,第一步便是先打好根底,数据库原理是计算机科班的一门必修课,非科班的我选择的是自学,我当时是经过看老杜讲的MySQL根底,配合大学教材《数据库体系概论》来自学的。
书本教材这种东西,必定仍是偏理论的一点,相比来说,看在线教程学习mysql更简单了解。
数据库是干嘛的?
数据库的功用便是用来安排数据,安排许多许多的数据。
这些数据通常都是存储在外存(磁盘)数据库提供的中心功用,也便是针对数据的增修改查~
学习数据库咱们首要了解的内容首要包含几个方面:
1、数据库模型有哪些:包含层次模型、网状模型和联系模型,咱们所用的联系型数据库便是根据联系模型完结的。
2、联系数据库的根底和sql:了解联系数据库的基本概念,了解sql的基本运用方法,至少CRUD和一些常见用法要搞懂。
3、数据库的安全性和完整性,这两部分内容其实理论的东西比较单调,实践上对应到实践场景中,安全性便是要保护数据的安全,包含权限操控和数据备份,而完整性则是经过一些约好和标准来约束数据库的存储内容,比方咱们能够用主键、唯一键、非空等要求来约束字段的取值。
4、联系数据理论。这部分内容很有意思,也比较杂乱,讲到了数据库的范式理论,从一范式到四范式,各有各的用法和要求,某互联网公司“第四范式”便是用这个概念来命名的。
5、业务和锁,最后一部分内容,便是数据库的两个重要组成部分,业务和锁,业务能够确保一组数据库操作的ACID特性,十分适用于需求数据一致性的场景,而数据库的锁不但是完结业务的根底,还能够灵敏地适用于不同的数据库运用场景,咱们还能够经过sql句子来完结加锁和释放,关于并发场景特别管用。
MySQL的完结原理
学习完了数据库根底之后,接下来就该正式学习MySQL了,毕竟许多时分咱们的数据库运用便是MySQL。
其实MySQL里的许多知识点和咱们上面说到的数据库根底大同小异,而回到MySQL的完结层,咱们就得来看看MySQL的存储引擎了。
MySQL的存储引擎分为innodb和myisam,信任大家关于这两个引擎区别的面试题看了也不少,比方innodb支撑业务,支撑行级锁,而myisam不支撑。
由于现在innodb基本上是干流,所以咱们评论MySQL的时分基本上便是在评论innodb。
关于MySQL的完结原理,我认为大概有这么一些内容需求咱们去学习。
首要,咱们了解MySQL里有哪些数据类型,一般的用法怎样,然后,尝试用MySQL去跑一些sql句子,建库建表,加索引加主键,总之,这些实践能帮助你更好地学习上述内容。
想要更好地了解MySQL的原理,咱们就必须要了解MySQL的整体架构,一般来说,MySQL从上到下能够分为这么几层
客户端
也便是咱们经常用的可视化东西,比方NavicatforMySQL
服务端
便是咱们装置的MySQL程序,其实翻开它它便是一个MySQL的服务端进程
sql履行层
sql履行层首要负责解析履行sql,里面包含了许多杂乱的组成部分,比方解释器,分析器,优化器等等,履行层会生成一个sql的履行方案,这个方案也经常是咱们分析sql性能的一个重要参阅内容
存储引擎层
存储引擎层是innodb了,比方数据要如安排和寄存,索引要怎样树立和办理等等,加锁怎样加,业务怎样完结,都是这一层要考虑的内容。
文件体系层
存储引擎的下一层便是文件体系了,数据库的数据怎样和文件体系进行交互,便是这一层要做的作业了。
索引
不得不说,索引肯定是数据库中最经常调查,考点也最多的内容了。
比方给你一条sql,那么它能否命中索引,能命中哪些索引,假如想要命中某个索引,你应该怎样修改,这种问题面试时是不是经常看到,变来变去这么多题型,其实面试官便是想调查你关于索引的了解。
还有便是,索引的数据结构,相同是十分热门的考点之一,索引其实是根据B+树来完结的,不知道b+树是啥,请回去看数据结构。
简单来说,它是一种多路查找树,致力于更短的时间来完结数据检索,由于它的高度比二叉树要低,而比起一般的b树,它的非叶节点只起索引作用,而叶子节点是顺序串联的,所以十分适合做查找树。
假如你了解了这一点,那么面临此类面试题就能够愈加沉着一些,面试官其实便是想知道你对b+树的了解到了什么样的程度罢了。
业务和锁
除了索引之外,数据库中最杂乱的内容或许便是业务和锁了。
就拿业务的ACID特性来说,你需求了解每个大写字母背面的完结原理,比方原子性是怎样完结的,一致性是怎样确保的,背面的原理是什么。
咱们平时常用的业务或许便是spring里的业务模板,在业务里履行的同库数据库操作,要么都成功,要么都失败,这便是原子性。
两个业务之间互不影响,这便是阻隔性,当然了,这里又涉及到了业务阻隔等级。
业务阻隔等级包含读未提交,读已提交,可重复读和序列化,每个业务阻隔等级都适用于某种数据库读写场景,许多时分,咱们都需求搞懂阻隔等级背面的原理,才能更好地运用它。
MySQL里默认运用可重复读的阻隔等级,这个等级基本上能够确保咱们的业务依照预期履行,在MySQL中,这个业务阻隔等级乃至能够处理幻读的问题。
在MySQL的业务背面,其实有一个隐藏的boss,那便是数据库的锁,许多业务的阻隔等级都是经过锁来完结的,比方可重复读只要加行锁就能够完结了,而幻读则需求加上间隙锁next-keylock来完结。
行级锁和表级锁是MySQL中的两种锁,表级锁望文生义,会直接锁表,一次只有一个业务能够拜访,而行级锁其实锁的也并非是一行,在MySQL中,这个锁加在索引上,而这个索引对应的数据往往不止一行,所以这个行级锁只是理论意义上的”行级锁”
说了这么多,要了解MySQL的业务和锁,仍是要多看看相关的书本和文章,了解其内部的完结原理,知其然也要知其所以然。
MySQL学习教程
这个mysql学习教程是最适合新手学习入门,动力节点的杜教师所讲,杜教师讲课风格雷厉风行,干脆利索。
特点:
适合肯定零根底的学者;
采用按部就班的方式教学,所以不存在听不懂,学不会;
看完之后完全能够担当日常开发作业;
总的来说,视频是站在肯定零根底的角度来教,首要内容包含:DQL、DML、DDL、DCL、TCL等SQL句子的学习,特别对DQL句子进行了具体的解说,包含单表查询、多表联查、内衔接、外衔接等。别的还教学了数据库业务的处理,数据库索引的完结原理,视图的运用等内容。
经过本mysql教程的学习能够让一个小白从不会数据库到能够在编程中娴熟运用数据库。

未经允许不得转载:迅闻网 » 数据库原理(学数据库原理到底有什么用)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

迅闻网-让更多人看到你

登录/注册返回首页