作为一个跨越而来的IT男,相比于正科出生的程序猿总是缺少一些底蕴;就我而言对数据库概念只是增删改查,基础知识一知半解,也不懂oracle的魅力;也在面试中处处碰壁,此文章纯为读《orcale从入门到精通》一书的笔记和一些自己的胡思乱想。
数据库的三大模型:
一、层次结构模型:类似一个倒置的结构树,一个父表有多个子表,但是每个子表只对应着一个父表;感觉这种结构很像java三大特性中的继承特性,每个类只能对应着一个父类,每个父类可以有多个子类,所有的父类都继承Object类,如果将继承的结构用图显示出来,不就是一个倒置的树吗?
二、网状结构模型:网状结构是对层次结构局限性的改进不在局限一个子表只对应一个父表,父表也可以没有子表,就像一张蜘蛛的网;这种结构对设计者要求比较高;
三、关系结构模型:是目前用运的最多的结构模型,是一种二维表,有行和列组成的;一行称为一个元组,一列称为一个字段或者是一个属性;这个对于大家来说应该都很熟悉。
数据库的三级模式和二级映射
三级模式:外模式、模式、内模式;二级映射则是外模式/模式映像和模式/内模式映像。
外模式是用户级别的(开发者对表的操作),对应用户级,外模式是模式的一个子集;模式则对应的是数据库管理员级别(概念级),是所有用户公共数据的视图;而内模式则对应的是数据底层的存储(物理级),是数据库中所有数据的内部表示和底层的描述。
二级映射分别是:外模式/模式映射使数据具有较高的逻辑独立性;模式/内模式映射使数据有较高的物理独立性。
数据库的范式
范式是设计数据库的准则;范式分别有第一范式、第二范式、和第三范式。
第一范式:就是数据库表中的字段都是单一属性的,不可再分的;
第二范式:官方给出的是,要求在数据表中不存在非关键字段对任一候选关键字段的部分函数依赖;比如:一张表中存在组合主键B和C,那么其余的字段就不能存在组合重复,就是其他字段不能跟组合主键中的任一主键存在关系。
第三范式:是在第二范式的基础上对数据库设计进行规范,第三范式要求数据表中不存在非关键字段对任一候选关键字段的传递函数依赖。
绘制E-R图
E-R图中设计的基本要素有实体、联系以及属性。
绘制一个选课系统的E-R图:
1、课程实体
课程实体主要包含课程编号、课程名称、主讲老师、开课时间、课程描述,实体属性;
2、课程类型实体主要包含课程类型的编号和课程类型
3、学生实体:学号、姓名、班级、性别、专业
选课结果实体主要包含:选课编号、所选课程、学生姓名、选课时间;
在绘制E-R图是首先要理解下选课系统的流程。首先由学生选择要学习的课程,然后生成一个课程结果单,最后由学生确认所选的课程;
![](https://img-blog.csdnimg.cn/20191214172847241.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMjk4ODE0,size_16,color_FFFFFF,t_70)