Oracle_高级功能(1) 数据库设计
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) 数据库设计的更多相关文章
- Oracle_高级功能(4) 数据库存储结构
数据库存储结构分为:物理存储结构和逻辑存储结构.物理结构和逻辑结构分开,对物理数据的存储不会影响对逻辑结构的访问.1.物理存储结构 数据库文件 os block2.逻辑存储结构 tablespace ...
- Gemini.Workflow 双子工作流高级教程:数据库设计及各表作用说明
整体数据库设计,可见这一篇:Gemini.Workflow 双子工作流高级教程:数据库-设计文档 这里对各数据表进行介绍: 工作流里的设计表并不多,核心只有以下8个: 下面按照流程的顺序来介绍一下表的 ...
- Gemini.Workflow 双子工作流高级教程:数据库-设计文档
数据库设计文档 数据库名:Workflow_New 序号 表名 说明 1 WF_Activity wf_Activity 2 WF_ActivityInstance wf_ActivityInstan ...
- Oracle_高级功能(9) 性能优化
1.oracle优化器 优化目标分为4种: choose (选择性) rule (基于规则) first rows(第一行) all rows(所有行) Description:描述sql的执行计划 ...
- Oracle_高级功能(7) 数据字典视图和动态性能视图
oracle数据字典 1.概念数据字典是oracle数据库用来存储数据库结构信息的地方.数据字典是用来描述数据库数据的组织方式的,由表和视图组成.数据字典基表是在任何 Oracle 数据库中创建的第一 ...
- Oracle_高级功能(6) 分区
oracle分区表1.分区表: 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区. 表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上 ...
- Oracle_高级功能(5) 用户、角色、权限
一.用户(模式)1.定义用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作模式(schema):是某个用户所拥有的对象的集合.具有创建对象权限并创建了对象的用户称为拥有某 ...
- Oracle_高级功能(10) 备份恢复
备份与恢复Oracle数据库有三种标准的备份方法,分别是导出/导入(EXP/IMP).热备份和冷备份.导出/导入是一种逻辑备份,冷备份和热备份是物理备份.一.导出/导入(Export/Import)利 ...
- Oracle_高级功能(8) 事务和锁
Oracle数据库事务1. 事务定义在数据库中事务是工作的逻辑单元,一个事务是由一个或多个完成一组的相关行为的SQL语句组成,通过事务机制确保这一组SQL语句所作的操作要么都成功执行,完成整个工作单元 ...
随机推荐
- Python之路 - 网络编程初识
Python之路 - 网络编程初识 前言
- Chatbot中的填槽(Slot Filling)(转)
以下内容是学习了@我偏笑发布在公众号hanniman文章后,加上自己观点重新输出配图的文章 原文链接:http://t.cn/RE0FkgD 跳槽,吐槽,匹诺曹都听过,这个填槽,emmmm,黑人问号脸 ...
- 移植ok6410 LCD驱动
1.本次移植过程选择 linux-2.6.28 lcd驱动为参考移植到 linux-2.6.34 ok6410 开发板上. 2.移植过程 主要以给内核增加驱动的思想,在/driver/video/ 下 ...
- go io包
https://studygolang.com/articles/9424 https://blog.csdn.net/trochiluses/article/details/44338407
- react学习入门
先在在学习react,react是faceBook推出的框架,因为虚拟DOM使页面性能提高很大,特别react Native非常适合移动端,现做一个学习总结: 1.react 获取DOM的两种方式是R ...
- aspectj ----- 简介
一.为什么写这个系列的博客 Aspectj一个易用的.功能强大的aop编程语言.其官网地址是:http://www.eclipse.org/aspectj/,目前最新版本为:1.7.0 RC1.但 ...
- Errors running builder 'Faceted Project Validation Builder' on project
右键eclipse中的工程,选择properties,选择build,去掉出问题的validation校验项,重启eclipse即可.
- 八、AbstractFactory 抽象工厂模式
设计原理: 代码清单: 抽象 Factory : public abstract class Factory { public static Factory getFactory(String cla ...
- Android 数据库框架总结(转)
转自 http://blog.csdn.net/da_caoyuan/article/details/61414626 一:OrmLite 简述: 优点: 1.轻量级:2.使用简单,易上手:3.封装完 ...
- js中获取一个对象里面的方法和属性的javascript
<script type="text/javascript"> var obj = { attribute:1, method:function() { alert(& ...