下载此文档

最新规范化-数据库设计原则.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
标准化-数据库设计原那么
标准化-数据库设计原那么
关系数据库设计的核心问题是关系模型的设计。本文将结合具体的实例,介绍数据库设计标准化的流程。
摘要
关系型数据库是当前广泛应用的数据库类型,关系数据库设计是对数据进行组织化的主属性都已经定义
事实上在当前所有的关系数据库管理系统〔DBMS〕中,都已经在建表的时候强制满足第一范式。因此,这张SAMPLE表已经是一张满足第一范式要求的表。考察表1-1,我们首先要找出主键。可以看到,属性对<Project Number, Employee Number>是主键,其他所有的属性都依赖于该主键。
从一范式转化到二范式
根据第二范式的定义,转化为二范式就是消除局部依赖。
考察表1-1,我们可以发现,非主属性<Project Name>局部依赖于主键中的<Project Number>; 非主属性<Employee Name>,<Salary Category>和<Salary package>都局部依赖于主键中的<Employee Number>;
表1-1的形式,存在着以下潜在问题:
1. 数据冗余:每一个字段都有值重复;
2. 更新异常:比方<Project Name>字段的值,比方对值"TPMS"了修改,那么就要一次更新该字段的多个值;
3. 插入异常:如果新建了一个Project,名字为TPT, 但是还没有Employee参加,那么<Employee Number>将会空缺,而该字段是主键的一局部,因此将无法插入记录;
Insert into SAMPLE(PRJNUM, PRJNAME, EMYNUM, EMYNAME, SALCATEGORY, SALPACKAGE) values(100003, 'TPT', NULL, NULL, NULL, NULL)
4. 删除异常:如果一个员工 200003, Kevin 离职了,要将该员工的记录从表中删除,而此时相关的Salary信息 C 也将丧失, 因为再没有别的行纪录下 Salary C的信息。
Delete from sample where EMYNUM = 200003
Select distinct SALCATEGORY, SALPACKAGE from SAMPLE
因此,我们需要将存在局部依赖关系的主属性和非主属性从满足第一范式的表中别离出来,形成一张新的表,而新表和旧表之间是一对多的关系。由此,我们得到:
CREATE TABLE "PROJECT" (
"PRJNUM" INTEGER NOT NULL,
"PRJNAME" VARCHAR(200))
IN "USERSPACE1";
ALTER TABLE "PROJECT"
ADD PRIMARY KEY
("PRJNUM");
Insert into PROJECT(PRJNUM, PRJNAME) values(100001, 'TPMS'), (100002, 'TCT');
表1-2
表 1-3
CREATE TABLE "EMPLOYEE" (
"EMYNUM" INTEGER NOT NULL,
"EMYNAME" VARCH

最新规范化-数据库设计原则 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人吴老师
  • 文件大小2.12 MB
  • 时间2022-05-20
最近更新