您的位置:首页 > 数据库

关系型数据库常用基础概念知识精简归纳

2015-10-30 22:42 501 查看
声明:我的文章都是只挑主要的写,次要细节太多,归纳就没意义了,同时归纳主要是给自己看的,

而且基本都是凭自己的一些记忆和理解即时写的、不一定对和全(但大多是一些需要理解的概念),请各位看管见谅!

数据库设计篇

1.范式

  A.1范式,原子性,即列不可分

  B.2范式,完全依赖,即有个主键唯一区分

  C.3范式,不能传递依赖,即表中不能还有其他表的非主键(已有他主键)信息

  (可理解为表不可再分,3+范式没必要多说,一般都用不上,何况现在很多还反、去范式了,甚至非关系型的)

2.模型

  A.概念模型,即ER图等

  B.逻辑模型,即建逻辑表

  C.物理模型,即生成物理表

事务

1.四大特性,

  A.原子,要么。。要么。。

  B.隔离,不受影响

  C.一致,前后一致

  D.永久,保存

2.隔离,读的问题

  A.脏读,读未提交

  B.不可重复读,读以提交(update)---好像是MsSql默认

  C.幻影(虚读、可从重复读),读条数(delete|insert)---好像是Mysql默认

  D.串行,这个不用多说了。。

3.锁,写的问题(丢失更新),并发控制

  A.悲观锁(数据库表层):读锁(共享锁) 给表添加后不能修改---容易出死锁;写锁(排它锁) 给表添加后不能添加其他锁

  B.乐观锁(非数据库):如时间戳等

4.事务传递,即嵌套调用,也就是还要不要能不能开启新事务

5.使用方式,编码式(即数据库、代码);声明式(即aop特性、注解)

6.分布式,这个差点忘了,就是事务范围和2pc(这个就是都ok了再行动,一个不行就撤)

连接池,这个也提下吧,其实就是之前说设计模式里面的享元模式的实用,其实很多与池相关的,

如EJB的无状态sessionBean的池也是享元模式。不过一般都是别人写好了,直接用就是

索引,其实就是个字典原理。主要分聚集,就是物理的;非聚集就是逻辑的;联合索引,就是多个一起的;

还有索引实用优化等,涉及B+树等等(树结构的优势啊)挺复杂的,我之前有写一篇(没写好的),不过不算基础范围,所以是加密的哦。。呵呵

还有什么sql的写法,左右连接等等就算了,也不能算什么难的东四(不在优化层面的话)。

至于什么安全性相关的、数据库恢复等DBA相关操作,而像nosql&全文检索&大数据就更不在此范围了,主要是没啥心情写。

还有数据库的主从复制,读写分离,数据切分,集群等都不在此基础概念上说,以后有机会再另起mysql架构优化篇再说。

里面还是有些说的,像读写分离就用主从复制方式实现等。不过mysql优化也好像就这几个实施方案,数据结构设计(存储引擎、表、列等)和sql优化了,

当然还有一些日志文件、缓存以及事务处理方案,所以细化层面还是得看书,像锁机制其实即N复杂的。。。嗯,Mysql就算了~

要说也是基本把《MySql性能调优与架构设计》一书整体脉络加上自己的理解,而且也没有多少小公司能真到那个层次。。。

PS,

写这个主要是今天早上一面试(又被忽悠一次)。电话里说只要你能力可以,去到后说我们现在只要个简单开发的(真怀疑是否简历写得有问题?)

15K已经是经理级别什么的。去!水平烂的还(难道我的样子和声音看上去不够老吗?难道广州小企业就不需好点的技术?!)。。唉~

有看笔试题(水平烂得~),有一半是sql的题,忽然觉得还有个数据库的没有涵盖归纳到基础里。。。

哦!好像还有个网路的算基础没写。写文章就像面试一样,挺耗精神的!以后再写写吧。。

最后不上以sql优化总结图:(红色是我手动在pdf笔记,呵呵~)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: