当前位置:七道奇文章资讯数据防范MySQL防范
日期:2011-05-02 15:44:00  来源:本站整理

数据库计划范式深化浅出[MySQL防范]

赞助商链接



  本文“数据库计划范式深化浅出[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

关系数据库计划之时是要服从一定的法则的.特别是数据库计划范式 现简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式)和BCNF,还有第四范式和第五范式留到今后再介绍. 在你计划数据库之时,若能符合这几个范式,你就是数据库计划的高手.

第一范式(1NF):在关系情势R中的每一个具体关系r中,假如每个属性值 都是不可再分的最小数据单位,则称R是第一范式的关系.例:如职工号,姓名,电话号码构成一个表(一个人大概有一个办公室电话 和一个家里电话号码) 标准成为1NF有三种办法:

一是反复存储职工号和姓名.这样,关键字只能是电话号码.

二是职工号为关键字,电话号码分为单位电话和住宅电话两个属性

三是职工号为关键字,但强迫每条记录只能有一个电话号码.

以上三个办法,第一种办法最不可取,按实际情形选取后两种情形.

第二范式(2NF):假如关系情势R(U,F)中的全部非主属性都完好依靠于肆意一个候选关键字,则称关系R 是属于第二范式的.

例:选课关系 SCI(SNO,CNO,GRADE,CREDIT)此中SNO为学号, CNO为课程号,GRADEGE 为成就,CREDIT 为学分. 由以上条件,关键字为组合关键字(SNO,CNO)

在利用中利用以上关系情势有以下问题:

a.数据冗余,假定同一门课由40个学生选修,学分就 反复40次.

b.更新非常,若调整了某课程的学分,呼应的元组CREDIT值都要更新,有大概会呈现同一门课学分差别.

c.插入非常,如筹划开新课,由于没人选修,没有学号关键字,只能等有人选修才能把课程和学分存入.

d.删除非常,若学生已经毕业,从当前数据库删除选修记录.某些门课程新生还没有选修,则此门课程及学分记录无法保存.

缘由:非关键字属性CREDIT仅函数依靠于CNO,也就是CREDIT部份依靠组合关键字(SNO,CNO)而不是完好依靠.

办理办法:分成两个关系情势 SC1(SNO,CNO,GRADE),C2(CNO,CREDIT).新关系包含两个关系情势,它们之间通过SC1中的外关键字CNO相接洽,需求时再举行自然联接,恢复了本来的关系

第三范式(3NF):假如关系情势R(U,F)中的全部非主属性对任何候选关键字都不存在传送信任,则称关系R是属于第三范式的.

例:如S1(SNO,SNAME,DNO,DNAME,LOCATION) 各属性辨别代表学号,

姓名,所在系,系名称,系地址.

关键字SNO决意各个属性.由于是单个关键字,没有部份依靠的问题,必定是2NF.但这关系必定有大量的冗余,有关学生所在的几个属性DNO,DNAME,LOCATION将反复存储,插入,删除和改正时也将产生近似以上例的情形.

缘由:关系中存在传送依靠造成的.即SNO -> DNO. 而DNO -> SNO却不存在,DNO -> LOCATION, 因此关键辽 SNO 对 LOCATION 函数决意是通过传送依靠 SNO -> LOCATION 实现的.也就是说,SNO不直接决意非主属性LOCATION.

办理目地:每个关系情势中不能留有传送依靠.

办理办法:分为两个关系 S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)

注意:关系S中不能没有外关键字DNO.不然两个关系之间失去接洽.

BCNF:假如关系情势R(U,F)的全部属性(包含主属性和非主属性)都不传送依靠于R的任何候选关键字,那么称关系R是属于BCNF的.或是关系情势R,假如每个决意因素都包含关键字(而不是被关键字所包含),则RCNF的关系情势.

例:配件管理关系情势 WPE(WNO,PNO,ENO,QNT)辨别表仓库号,配件号,职工号,数目.有以下条件

a.一个仓库有多个职工.

b.一个职工仅在一个仓库工作.

c.每个仓库里一种型号的配件由专人负责,但一个人可以管理几种配件.

d.同一种型号的配件可以分放在几个仓库中.

解析:由以上得 PNO 不能肯定QNT,由组合属性(WNO,PNO)来决意,存在函数依靠(WNO,PNO) -> ENO.由于每个仓库里的一种配件由专人负责,而一个人可以管理几种配件,所以有组合属性(WNO,PNO)才能肯定负责人,有(WNO,PNO)-> ENO.因为 一个职工仅在一个仓库工作,有ENO -> WNO.由于每个仓库里的一种配件由专人负责,而一个职工仅在一个仓库工作,有 (ENO,PNO)-> QNT.

找一下候选关键字,因为(WNO,PNO) -> QNT,(WNO,PNO)-> ENO ,因此 (WNO,PNO)可以决意整个元组,是一个候选关键字.按照ENO->WNO,(ENO,PNO)->QNT,故(ENO,PNO)也能决意整个元组,为另一个候选关键字.属性ENO,WNO,PNO 均为主属性,只有一个非主属性QNT.它对任何一个候选关键字都是完好函数依靠的,并且是直接依靠,所以该关系情势是3NF.

解析一下主属性.因为ENO->WNO,主属性ENO是WNO的决意因素,但是它本身不是关键字,只是组合关键字的一部份.这就造成主属性WNO对别的一个候选关键字(ENO,PNO)的部 分依靠,因为(ENO,PNO)-> ENO但反过来不成立,而P->WNO,故(ENO,PNO)-> WNO 也是传送依靠.

固然没有非主属性对候选关键辽的传送依靠,但存在主属性对候选关键字的传送依靠,一样也会带来麻烦.如一个新职工分配到仓库工作,但暂时处于练习阶段,没有独立负责对某些配件的管理任务.由于贫乏关键字的一部份PNO而无法插入到该关系中去.又如某个人改成不管配件了去负责安全,则在删除配件的同时该职工也会被删除.

办理办法:分成管理EP(ENO,PNO,QNT),关键字是(ENO,PNO)工作EW(ENO,WNO)其关键字是ENO

缺陷:分化后函数依靠的保持性较差.如此例中,由于分化,函数依靠(WNO,PNO)-> ENO 丧失了, 因而对本来的语义有所破坏.没有表现出每个仓库里一种部件由专人负责.有大概呈现 一部件由两个人或两个以上的人来同时管理.因此,分化之后的关系情势降低了部份完好性约束.

一个关系分化成多个关系,要使得分化有意义,最少的要求是分化后不丧失本来的信息.这些信息不但包含数据本身,并且包含由函数依靠所表示的数据之间的彼此制约.举行分化的目标是到达更高一级的标准化程度,但是分化的同时必须考虑两个问题:无损联接性和保持函数依靠.有时常常不大概做到既有没有损联接性,又完好保持函数依靠.需求按照需求举行衡量.

1NF直到BCNF的四种范式之间有以下关系:

BCNF包含了3NF包含2NF包含1NF

小结:

目地:标准化目的是使构造更公道,消除存储非常,使数据冗余尽大概小,便于插入、删除和更新

原则:顺从概念单一化 "一事一地"原则,即一个关系情势描写一个实体或实体间的一种接洽.标准的实质就是概念的单一化.

办法:将关系情势投影分化成两个或两个以上的关系情势.

要求:分化后的关系情势调集该当与原关系情势"等价",即经过自然联接可以恢答复关系而不丧失信息,并保持属性间公道的接洽.

注意:一个关系情势结这分化可以得到差别关系情势调集,也就是说分化办法不是唯一的.最小冗余的要求必须以分化后的数据库可以表达本来数据库全部信息为前提来实现.其根本目标是节俭存储空间,避免数据不一致性,提高对关系的操作效率,同时满意利用需求.实际上,并不一定要斥责部情势都到达BCNF不可.有时成心保存部份冗余大概更便利数据查询.特别关于那些更新频度不高,查询频度极高的数据库系统更是如此.

在关系数据库中,除了函数依靠之外还有多值依靠,联接依靠的问题,从而提出了第四范式,第五范式等更高一级的标准化要求.在此,今后再谈.

各位朋友,你看过后有何感触,其实,任何一本数据库底子理论的书城市讲这些东西,考虑到很多网友是半途出家,来做数据库.特找一本书大抄特抄一把,各位有什么问题,也别问我了,自已去找一本关系数据库理论的书去看吧,说不定,对各位大有帮忙.说是说以上是底子理论的东西,请大家想想,你在做数据库计划的时刻有没有考虑过遵过以上几个范式呢,有没有在数据库计划做得不好之时,想一想,比较以上所讲,毕竟是违反了第几个范式呢?

我见过的数据库计划,很少有人做到很符合以上几个范式的,普通说来,第一范式大家都可以服从,完好服从第二第三范式的人很少了,服从的人一定就是计划数据库的高手了,BCNF的范式呈现机会较少,并且会破坏完好性,你可以在做计划之时不考虑它,当然在Oracle中可通过触发器办理其缺陷.今后我们共同做计划之时,也但愿大家服从以上几个范式.

    以上是“数据库计划范式深化浅出[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 数据库计划范式深化浅出
  • 网络数据库计划入门(六)SQL Server数据库及其基本操作
  • 网络数据库计划入门(七)ODBC与ADO对象1
  • <b>网络数据库计划入门(七)ODBC与ADO对象2</b>
  • 数据库计划指南(三)
  • 数据库计划指南(四)
  • 网络数据库计划入门(一)SQL语言简介
  • 网络数据库计划入门(二)SQL语言及其长处
  • 网络数据库计划入门(四)中小型关系型数据库简介
  • 网络数据库计划入门(五)Access数据库及其基本操作
  • 数据库计划指南(一)
  • 数据库计划指南(二)
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .