1、三范式
规范化关系模式称为范式。
第一范式:在一个关系模型R中,如果R的每一个属性的值域中的值都是不可再分的最小数据单位,
则称R为第一范式(1NF)。
第二范式:如果一个关系模型R属于1NF,并且R的每一个非主属性都完全依赖于它的每一个候选键,
则称R为第二范式(2NF)。
第三范式:如果一个关系模型R属于2NF,并且R的任何一个非主属性都不传递依赖于
它的任何一个候选键,则称R为第三范式(3NF)。

举例:
关系模型:{职员、部门}
1NF:{职员编号、职员名、职位、工资、入职日期、部门名、办公地点}
2NF:{职员编号、职员名、职位、工资、入职日期、部门名}、{部门编号、部门名、部门办公地点}
3NF:{职员编号、职员名、职位、工资、入职日期、部门编号}、{部门编号、部门名、部门办公地点}
关系模型:学生、课程、成绩
1NF:{学号、学生名、课程号、课程名、成绩}
2NF:{学号、学生名}、{课程号、课程名}、{学生名、课程名、成绩}
3NF:{学号、学生名}、{课程号、课程名}、{学号、课程号、成绩}

白话3NF:
1NF:每个列要分到不能再分(最细一层)。
2NF:非主键列必须完全依赖于主键列(把不能完全依赖的列剔除,组成新的表)。
3NF:每个表除外键列以外,不能再有其它表的任何列。

2.实体关系模型
实体(Entity):现实中存在的抽象的事物。
属性(Attribute):实体的特征。
关系(Relationship):实体间(包括:实体和属性间)的相互作用,
分为:1对1,1对多,多对多三种。

举例:
1对1:一个职员/学生只能有一个名字。
1对多:一个职员只能属于一个部门,一个部门可以有多个职员。
多对多:一个学生可以学多门课程,一门课程可以有多个学员来学;
可以将一个多对多转化成2个1对多。

对应到数据库:
实体--》表
属性--》列
1对1关系--》主键
1对多关系--》外键
多对多关系--》关系表+2外键

3.Powerdesigner实操

4.练习
关系模型:{专业、班级、学生、课程、教师}
专业(专业代码、专业名)
班级(专业代码、班级号、班级)
学生(学号、姓名、性别、出生日期)
成绩(学号、课程号、成绩)
课程(课程号、课程名、学时)
讲授(课程号、教师编号)
教师(教师编号、姓名、职称、电话)
设置(专业代码、课程号)
MAJOR

5.作业
浦发银行数据库需求分析

Oracle_高级功能(1) 数据库设计的更多相关文章

  1. Oracle_高级功能(4) 数据库存储结构

    数据库存储结构分为:物理存储结构和逻辑存储结构.物理结构和逻辑结构分开,对物理数据的存储不会影响对逻辑结构的访问.1.物理存储结构 数据库文件 os block2.逻辑存储结构 tablespace ...

  2. Gemini.Workflow 双子工作流高级教程:数据库设计及各表作用说明

    整体数据库设计,可见这一篇:Gemini.Workflow 双子工作流高级教程:数据库-设计文档 这里对各数据表进行介绍: 工作流里的设计表并不多,核心只有以下8个: 下面按照流程的顺序来介绍一下表的 ...

  3. Gemini.Workflow 双子工作流高级教程:数据库-设计文档

    数据库设计文档 数据库名:Workflow_New 序号 表名 说明 1 WF_Activity wf_Activity 2 WF_ActivityInstance wf_ActivityInstan ...

  4. Oracle_高级功能(9) 性能优化

    1.oracle优化器 优化目标分为4种: choose (选择性) rule (基于规则) first rows(第一行) all rows(所有行) Description:描述sql的执行计划 ...

  5. Oracle_高级功能(7) 数据字典视图和动态性能视图

    oracle数据字典 1.概念数据字典是oracle数据库用来存储数据库结构信息的地方.数据字典是用来描述数据库数据的组织方式的,由表和视图组成.数据字典基表是在任何 Oracle 数据库中创建的第一 ...

  6. Oracle_高级功能(6) 分区

    oracle分区表1.分区表: 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区. 表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上 ...

  7. Oracle_高级功能(5) 用户、角色、权限

    一.用户(模式)1.定义用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作模式(schema):是某个用户所拥有的对象的集合.具有创建对象权限并创建了对象的用户称为拥有某 ...

  8. Oracle_高级功能(10) 备份恢复

    备份与恢复Oracle数据库有三种标准的备份方法,分别是导出/导入(EXP/IMP).热备份和冷备份.导出/导入是一种逻辑备份,冷备份和热备份是物理备份.一.导出/导入(Export/Import)利 ...

  9. Oracle_高级功能(8) 事务和锁

    Oracle数据库事务1. 事务定义在数据库中事务是工作的逻辑单元,一个事务是由一个或多个完成一组的相关行为的SQL语句组成,通过事务机制确保这一组SQL语句所作的操作要么都成功执行,完成整个工作单元 ...

随机推荐

  1. Python之路 - 网络编程初识

    Python之路 - 网络编程初识 前言

  2. Chatbot中的填槽(Slot Filling)(转)

    以下内容是学习了@我偏笑发布在公众号hanniman文章后,加上自己观点重新输出配图的文章 原文链接:http://t.cn/RE0FkgD 跳槽,吐槽,匹诺曹都听过,这个填槽,emmmm,黑人问号脸 ...

  3. 移植ok6410 LCD驱动

    1.本次移植过程选择 linux-2.6.28 lcd驱动为参考移植到 linux-2.6.34 ok6410 开发板上. 2.移植过程 主要以给内核增加驱动的思想,在/driver/video/ 下 ...

  4. go io包

    https://studygolang.com/articles/9424 https://blog.csdn.net/trochiluses/article/details/44338407

  5. react学习入门

    先在在学习react,react是faceBook推出的框架,因为虚拟DOM使页面性能提高很大,特别react Native非常适合移动端,现做一个学习总结: 1.react 获取DOM的两种方式是R ...

  6. aspectj ----- 简介

    一.为什么写这个系列的博客   Aspectj一个易用的.功能强大的aop编程语言.其官网地址是:http://www.eclipse.org/aspectj/,目前最新版本为:1.7.0 RC1.但 ...

  7. Errors running builder 'Faceted Project Validation Builder' on project

    右键eclipse中的工程,选择properties,选择build,去掉出问题的validation校验项,重启eclipse即可.

  8. 八、AbstractFactory 抽象工厂模式

    设计原理: 代码清单: 抽象 Factory : public abstract class Factory { public static Factory getFactory(String cla ...

  9. Android 数据库框架总结(转)

    转自 http://blog.csdn.net/da_caoyuan/article/details/61414626 一:OrmLite 简述: 优点: 1.轻量级:2.使用简单,易上手:3.封装完 ...

  10. js中获取一个对象里面的方法和属性的javascript

    <script type="text/javascript"> var obj = { attribute:1, method:function() { alert(& ...