概述
学习不要只停留在一个角色上
数据模型
概念模型,逻辑模型,物理模型
概念模型
现实世界的模型,E-R图
逻辑模型
关系模型,层次模型,网状模型,对象模型
根据逻辑模型才有了相应的数据库管理系统(三级模式组织和管理数据)
关系模型:关系模式,二维表的结构
物理模型
数据在存储器上的存储形式,OS
数据模型分别对应数据库设计的三个阶段
数据模型和数据结构的关系
数据结构:现实世界信息的抽象提取;抽象信息之间的关系;存储器存放和查找这种关系的形式。后者也可以成为算法。由此我们可以知道应用程序都要应用数据结构,初数据少,开发此处花费少,后数据多且复杂,开发此处花费多且重复(一个系统就得重新开发一次)性高,为此开发数据库管理系统,来个一劳永逸。
数据模型:模型,现实版的抽象完整版,具有结构,操作和约束,即数据模式包括数据结构(老大),数据操作和数据约束。
三级模式和两级映射(适用于所有数据库管理系统)
外模式(视图),模式(逻辑表),内模式(存储结构)
数据库应用程序依赖于外模式,外模式依赖于模式,模式依赖于内模式
两级映射:模式发生改变时,通过修改外模式—模式的映射,就可以使外模式和应用程序不用改变;内模式发生改变时,通过修改模式—内模式的映射,使模式保持不变,从而使应用程序也可以保持不变
键
元组:表中的一行记录就是元组
候选键:能惟一标识元组,并且不含多余属性的属性(组合属性)
主键:从若干个候选键中指定一个作为主键
超键:除可以包含一个候选键外,还可以包含其它属性
主属性:候选键中的属性为主属性
非主属性:不包含在候选键中的属性为非主属性
超键、候选键和主键
惟一标识一个元组;
超键中可能有无关的属性,而主键和候选键中属性都是必要的属性;
主键是候选键中的一个,只不过它被数据库设计者选中而称为主键而已,事实主键也是候选键
例1
学生(学号,姓名,性别,课程号)
超键:学号,课程号,姓名;学号,课程号,性别
主键:学号,课程号
候选键:学号,课程号
主属性:学号,课程号 候选键中的所有属性
非主属性:姓名,性别
函数和范式
平凡函数:属性A包含属性B
非平凡函数:属性A和属性B没有包含的关系
第一范式满足非平凡函数,
部分函数依赖:主键由多个属性组成,多个属性中的部分属性可以唯一确定其它非主属性
完全函数依赖:不存在主键中部分属性推出其它非主属性
第二范式满足完全函数依赖
传递函数:x—>y,y!—>x,且y—>z
第三范式满足非传递函数
关系性数据库设计是否合理的依据是是否满足范式
满足第三范式一定也满足第二范式,满足第二范式一定满足第三范式
E-R图(局部E-R图和集成E-R图)
实体,属性,联系(可含属性)
关系模式
表结构的描述,即:表字段的描述
例:课程(课程号,课程名称),如果题中有要求就写出主键和外键,如:主键为课程号
E-R图和关系模式的转换
实体
直接转化为关系模式
联系
1对1或1对n:可以有自己的关系模式,也可以合并在一个实体的关系模式中
m对n:必须有自己的关系模式
无损链接分解(三范式,函数关系)
将一个不合理的关系模式分解为多个合理的关系模式,且信息没有损失
关系运算符
集合运算符:∪并,—差,∩交,X笛卡尔积
R和S
并:t属于R,或,t属于S;
差:t属于R,且,非t属于S;
交:t属于R,且,t属于S;
笛卡尔积:t为t1和t2组成,t1属于R,t2属于S
专门的关系运算符:6选取,∏投影,∞连接,*自然连接,÷除
选取:单表的行集进行选择
投影:单表的字段进行选择
连接:多表行集的连接
自然连接:多表等值的行集连接,且去掉重复的列
除:A÷B
算术比较运算符:大于,大于等于,小于,小于等于,等于,不等于
逻辑运算符:∧与,∨或,7非
SQL语句
非过程化语言,用户不需要用户指出怎么做,只需要用户指出做什么
例:显示文件的数据
过程化语言:定义变量,指定文件,打开文件,将数据读到变量中,关闭文件,输出数据
非过程化语言:一条语句就可以了,不需要告诉电脑如何做
填写SQL语句的问题
属性是否完成;
属性完成了,剩下的就是约束
题型和思路
题型
E-R图;实体之间的联系类型;E-R图转关系模式;联系的属性;关系模式的主键和外键;SQL语句
思路
答案在题的描述中。依据题的描述做题,写出来不用管其是否完整(不完整也不要添加题描述之外的属性和实体)
1、确定实体;2、确定属性;3、确定联系和联系的属性。
总结
上面有些具体内容没有写,有兴趣的读者可以看看我之前关于数据库方面的博客。
本篇博客主要写的是学习的结果,学习的过程没有写,但想要说的是学习的过程不是很顺利,如果坚持了,你就可以打通!