验证自己设计的数据库表是否合理的3大范式

1)三大范式 概念: 在设计数据库时,需要遵循的一些规范就叫做范式。
	(1)1NF: 每一项都是不可分割的原子数据项
		学号        姓名         系名         系主任          课程名称       分数
		10010        张无忌       经济系        张三丰          高等数学      95
		10010        张无忌       经济系        张三丰          大学英语      95
		10010        张无忌       经济系        张三丰          计算机基础    95
		10011        令狐冲       法律系        任我行          法理学        95
		10011        令狐冲       法律系        任我行          大学英语      95	
		10011        令狐冲       法律系        任我行          法律社会学    95
						
		问题:
			1.存在非常严重的数据冗余(重复): 姓名、系名、系主任
			2.数据添加存在问题,添加新开设的系和系主任时.数据不合法
			3.删除数据也存在问题,张无忌同学毕业了,删除数据会将系的数据一起删除
		
	(2)2NF: 在1NF的基础上,非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的 ‘部分函数依赖’)
		几个概念: 
			1.函数依赖  A-->B, 如果通过A的属性(属性组)的值,可以确定唯一B属性的值,则称B依赖于A。 如: 根据学号找到人
				
			2.完全函数依赖: 
				属性组: 如: (通过学号 + 课程名称) --> 分数, 则称(通过学号,课程名称)是属性组.
				
				如果A是一个属性组,则B属性组的确定需要依赖于A属性组中的所有的属性值
				
			3.部分函数依赖:
				如果A是一个属性组,则B属性组的确定需要依赖于A属性组中的某一个的属性值即可
				例如: (学号, 课程名称) -->姓名   其实通过学号就能确定姓名
				
			4.传递函数依赖:
				A-->B   B --》C
				如果通过A属性(属性组)的值,可以确定唯一B属性的值, 在通过B属性(属性组),又可以确定唯一C属性的值
				
				如:学号--》系名--》系主任
				
			5.码: 如果在一张表中,一个属性或属性组,被其它所有属性所完全依赖,则称这个属性(属性值)为该表的码
					例如: (学号,课程名称)
					
					主属性: 码属性组中的所有属性
					非主属性:出去码属性组的属性
					
	
		-----选课表-----
		学号            课程名称       分数
		10010           高等数学        95
		10010           大学英语        95
		10010           计算机基础      95
		10011           法理学          95
		10011           大学英语        95	
		10011           法律社会学      95
		
		
		-----学生表-----
		学号          姓名         系名         系主任          
		10010        张无忌       经济系        张三丰                   
		10011        令狐冲       法律系        任我行          
         
		 
		依然存在2个问题:
		2.数据添加存在问题,添加新开设的系和系主任时.数据不合法。 如:新开了计算机系 系主任时殷天正。
		3.删除数据也存在问题,张无忌同学毕业了,删除数据会将系的数据一起删除
			
	(3)3NF: 在 2NF的基础上,任何非主属性不依赖于其它非主属性(2NF基础上消除传递依赖项)
		学号--》系名--》系主任, 因此系主任传递依赖于学号, 3NF要消除这个
		
		-----选课表-----
		学号            课程名称       分数
		10010           高等数学        95
		10010           大学英语        95
		10010           计算机基础      95
		10011           法理学          95
		10011           大学英语        95	
		10011           法律社会学      95
		
		
		-----学生表-----
		学号          姓名         系名                
		10010        张无忌       经济系                           
		10011        令狐冲       法律系         
		
	    -----系表-----
	     系名         系主任          
	    经济系        张三丰                   
		法律系        任我行  
	
		因此: 3NF中, 3个问题被解决
	
	(4)巴斯-科德范式
	
	(5)4NF
	
	(6)5NF
	
	

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章