- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
T4_建立和管理表
第四课 建立和管理表 学习目标 数据范式 从数据库表中除去冗余数据的过程称为规范化。如果使用得当,规范化是得到高效的数据表逻辑结构最好和最容易的方法。规范化数据时,应执行以下操作: 将数据库的结构精简为最简单的形式 从表中删除冗余列 标识所有依赖于其它数据的数据 规范化过程有几个阶段。它们被称为: 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) 第四范式(4NF) 第五范式(5NF) 对于所有的实际应用,3NF已经足够。 高效范式的任务 删除表中重复的列达到1NF。 删除表中不完全依赖于主键的数据为2NF。 删除不属于该表的数据(即完全依赖于其它列或外键的数据项),以使数据符合3NF。 向表中放回一定数量的冗余数据,通过避免使用跨表联接来提高性能。 数据库设计异常 从概念的角度出发,将所有的信息放在一个关系中很方便,因为这样查询数据库可能会比较容易。但是这些关系具有下列不必要的特性:见备注。 1NF 第一范示(1NF) 满足关系性质的表称为满足第一范式。此时,关系不能有多值或复合属性。这是1NF所必需的。 当且仅当一个关系的所有基础域包含原子值时,则称该关系满足1NF。 第一范式仅处理关系的基本结构,不解决冗余信息或异常信息。 2NF 第二范式(2NF) 第二范式用于解决已满足1NF的关系所标识的问题。第二范示的目标是确保关系中的所有信息只是关于一个实体的信息。 如果一个关系满足1NF,并且所有非主键属性完全依赖于该关系的任一主键,则该关系满足2NF。 例子解说见备注: 3NF 第三范式(3NF) 虽然使关系满足2NF可以删除许多可能出现的异常,但不能完全删除所有的异常,还需要进一步的规范化。 定义3NF:如果关系R 满足2NF,并且R 的任一非主键属性都不传递依赖于R 的其它任何非主键属性,则称为R 满足第三范示。 传递依赖:假设属性 A、B、C 是 R 的三个属性,如果A ? B,且B ? C,我们可得出这就是A ?C.发生了传递依赖。 表的结构 用户表和数据字典是Oracle数据库中的两种类型的表 用户表由用户创建 数据字典由Oracle服务器创建和维护 数据字典包括有关数据库的信息 表、列和行 列称为字段 行又称为记录 每个字段具有 字段名、字段长度、约束、默认值 属性 命名表时需要遵循的规则 创建新表 创建表属于DDL语言 CREATE TABLE EMPLOYEE ( empid char(4) not null, empname varchar2(15) not null, empaddress varchar2(20), zip char(10), empphone char(15) ); 创建临时表 Oracle可以建立临时表 临时表用来保存一个会话(SESSION)的数据或者一个事务中需要的数据 当会话退出或者用户提交和回滚事务的时候,临时表的数据自动清空,但是临时表的结构以及元数据还存储在用户的数据字典中 会话特有的临时表和事务特有的临时表 事务特有的临时表 只在事务生命周期中存在 Create global temporary table classes ( class_id number(5), class_name varchar2(8), class_memo varchar2(200) ) on commit delete rows; 事务特有的临时表 Insert into classes values(1,’1’,’1’); Select * from classes; Commit; Select * from classes; 会话特有的临时表 用户退出,自动清除临时表中数据 Create global temporary table student ( stu_id number(5), class_id number(5), stu_name varchar2(8), stu_meno varchar2(200) ) on commit preserve rows; 会话特有的临时表 insert into student values(1,1,1,1); Select * from student; Commit; Select * from student; --更换一个用户后 Select * from student; 特性和性能 临时表只在当前连接内有效 临时表不建立索引,所以如果数据量比较大或进行多次查询时,不推荐使用 在Oracle中,全局临时表并不会删除,实际上你只需要建立一次,以后直接应用就行了,这与sqlserver和Sybase不一样。
文档评论(0)