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语句所作的操作要么都成功执行,完成整个工作单元 ...
随机推荐
- oracle理解和导入导出
搞过sql server的程序员很难理解oracle的表空间.我在这里简单说一下吧, oracle中的表空间就相当于sql server中的实例,用户就相当于sql server中的库. 所以在ora ...
- Java 中 == 和 equals 的区别
有一段时间,== 和 equals 的区别一直困扰着我.因为涉及到Java的内存机制,然而Java的内存机制又是比较抽象的东西,所以对那时候的我来说,实在是很难理解. == 和 equals 最大的区 ...
- js基础-直接量与变量
直接量 123 "abc" console.log("234") true false 变量 var x = 123 变量可先声明后赋值 var定义的都是局部变 ...
- c 语言的复杂声明
简化的声明语法: dcl: optional *'s direct-dcl direct-dcl: name (dcl) direct-dcl() direct-dcl[optional size] ...
- js身份证掩饰成**(class循环处理)
$('.shijian').each(function (i){ value=$(this).attr('data');value1=value.replace(/^(.{3})(?:\d+)(.{4 ...
- 只需两步获取任何微信小程序源码
http://baijiahao.baidu.com/s?id=1601969343738344659&wfr=spider&for=pc
- Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.0.2:resources 在我的myeclipse中新建maven工程总出现这个问题
只需在下图中更改代码 更改后是这样的: <plugin> <groupId>org.apache.maven.plugins</groupId> <artif ...
- js 事件event
var EventUtil = { addHandler: function(element,type,handler){ if(element.addEventListener){ element. ...
- SQL Server 2008中SQL增强之一:Values新用途 001
连接集合 select '1' as id,'wang' as name union select '2' as id,'admin' as name 现在可以这么写了 select id,name ...
- Java 读取Excel 文件内容
在一个项目中,有一个需求,是把excel文件的内容转换为xml格式展示.在学习如何操作的过程中,首先是如何获取excel文件,其中操作的代码如下: 1.首先是导入需要的 jar, 下载地址:https ...