金色的骷髅 发表于 2015-2-4 00:16:18

PHP网页设计数据库设计范式

PHP的理解是新手最难迈过的一道门槛,不过你应该感到幸运的是PHP已经最大极限的为了新手而努力了,如果你学过其他的语言,也许会觉得PHP的确相当的简单,但是如果你之前什么都没学过,那么阿弥陀佛,硬着头皮琢磨吧。设计|数据|数据库|数据库设计   关系数据库设计之时是要恪守必定的划定规矩的。特别是数据库设计范式 现复杂引见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中可经由过程触发器处理其弱点。今后咱们配合做设计之时,也但愿人人恪守以上几个范式。

用C语言重新编写,包括可以访问数据库。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。

小魔女 发表于 2015-2-4 10:26:25

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

莫相离 发表于 2015-2-9 22:06:55

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

若相依 发表于 2015-2-23 10:45:27

有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。

小女巫 发表于 2015-3-3 18:27:28

其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎

若天明 发表于 2015-3-10 10:29:27

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

仓酷云 发表于 2015-3-11 03:43:47

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

谁可相欹 发表于 2015-3-17 00:47:59

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

蒙在股里 发表于 2015-3-23 09:50:08

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

深爱那片海 发表于 2015-3-25 07:55:02

当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,

冷月葬花魂 发表于 2015-3-27 05:45:59

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

乐观 发表于 2015-4-5 05:44:15

有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。

山那边是海 发表于 2015-4-5 05:44:25

实践是检验自己会不会的真理。

变相怪杰 发表于 2015-4-16 17:12:15

有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。

愤怒的大鸟 发表于 2015-4-30 23:54:01

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。

不帅 发表于 2015-5-6 04:10:22

有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。

活着的死人 发表于 2015-5-6 05:09:09

本文当是我的笔记啦,遇到的问题随时填充

海妖 发表于 2015-5-12 06:16:29

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

因胸联盟 发表于 2015-6-22 02:14:28

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

第二个灵魂 发表于 2015-7-7 04:00:17

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
页: [1]
查看完整版本: PHP网页设计数据库设计范式