关系型数据库常用基础概念知识精简归纳
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笔记,呵呵~)
而且基本都是凭自己的一些记忆和理解即时写的、不一定对和全(但大多是一些需要理解的概念),请各位看管见谅!
数据库设计篇
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笔记,呵呵~)
相关文章推荐
- 记一次ORACLE 8I standby增加数据文件操作
- 第三,四章 数据库和数据表的(增删改查,重命名等)基本操作
- ORACLE 中ROWNUM用法总结! (转)
- PL/SQL编程重点语句输出整理
- Web项目中对配置文件中的密码进行加密(数据库连接密码)
- Oracle 游标使用全解
- Oracle wm_concat 列转行
- 转:Oracle中的rownum不能使用大于>的问题
- mysql密码重置
- 第二章 Mysql 数据类型简介--(整数类型、浮点数类型和定点数类型,日期与时间类型,字符串类型,二进制类型)
- SQL中存储过程和自定义函数的区别(转载)
- mysql数据库之基础SQL语句/语法
- 关于oracle下标的问题
- oracle PL/SQL
- 第一章 Mysql 简介及安装和配置
- oracle数据字典
- VS2015在MFC中使用ADO方法连接Access2013数据库
- SQL SERVER 属性OWNER不可用于数据库xxx。该对象可能没有此属性,也可能是访问权限不足而无法检索。
- sql常用函数instr()和substr()
- Redis实现分布式存储