⑴ 如何判断数据表是否符合范式
首先看看定义(第一范式省略,因为关系数据库都符合第一范式):
第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。
第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在"A → B → C"的决定关系,则C传递函数依赖于A。
鲍依斯-科得范式(BCNF):在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合第三范式。
以上内容摘自:
http://log.zhoz.com/read.php?44
这文章写得不错,可以看看,如果还有问题再讨论
⑵ sql怎么判断数据库内容是否一致
declare @n int
declare @name nvarchar(100)
set @n=0
set @name='abcde'
select @n=count(Name) from [表] where Name=@name
---判断@n是否等于0即可,大于0说明有,等于0说明没有
⑶ php中怎样判断输入的数据是否符合规定(date、int )
php中有内置的函数,如is_float等,ctype_alpha等,filter_input等。都可以进行输入验证。不过最好自己构建自己需要的函数进行验证,以确保更高的安全性和可维护性。
⑷ 数据库中怎样查询符合条件的记录是否存在
$sql='select*fromtbnamewhereusername="'.$username.'"';
$result=mysql_query($sql);
$data=mysql_num_rows($result);
if($data){
echo"已存在";
}
⑸ 如何判断SQL语句查询的结果是不是正确的
如何判断SQL语句查询的结果是不是正确的?
方法一:把这个查询的结果放到数据集中
然后用一个if判断返回的数据集记录数是否<=0
如果<=0的话则结果为空。
方法二:直接把SQL语句改成
SELECT
COUNT(*)
FROM
TableName
WHERE
Field=
‘value’,如果返回结果=0的话即为空。
⑹ winform c#.net 怎么判断数据库中存在符合查询要求的数据 sql
select * from 表 where 字段='"+条件+"';
string SqlConn=System.Configuration.ConfigurationSettings.AppSettings["ConnString"];
SqlConnection Conn=new SqlConnection(SqlConn);
Conn.Open();
string mysql="select * from db_hetongguanli_y_g";
SqlCommand cm=new SqlCommand (mysql,Conn);
SqlDataReader dr=cm.ExecuteReader ();
while(dr.Read ())
{
if(!this.IsPostBack)
{
this.DropDownList2.Items.Add(new ListItem(dr["hetongid"].ToString()));
}
}
Conn.Close ();
dr.Close();
⑺ 如何判断数据库设计是否规范
表中应该避免可为空的列
表不应该有重复的值或者列
表中记录应该有一个唯一的标识符
数据库对象要有统一的前缀名
希赛网上有详细说明,你可以去看看
⑻ 数据库如何判断规范化程度
S➡D,D➡M,可以推出S➡M;所以存在传递依赖;
第三范式规定不存在函数依赖,所以不满足第三范式;
属性不可再分,满足第一范式;
第一范式基础上,不存在部分函数依赖,所以满足第二范式,即2NF;
你可能对部分函数依赖不理解,我解释一下:S➡D,意味着D依赖于S,也就是S的内容决定着D的内容;如果{A,B}➡M,同时有B➡M,那就有部分函数依赖了,因为{A,B}中的一个子集是B,B是集合中的一部分;这就是部分函数依赖。
⑼ java导入数据库之前,判断数据是否符合要求。
数据库插入之前先查询,判断是否存在和一致,不存在或不一致就输出信息,相反就直接插入
⑽ 理解什么是数据库规范化
优点是降低冗余,利于保证数据的一致性和完整性;
缺点是过度的规范化,易造成查询和统计时的效率下降,这主要是由于多表连接所造成的问题。
适当的反规范化设计可以提高效率,但最好在那些数据不太发生变化的情况下使用。
通常情况下,可以从两个方面来判断数据库是否设计的比较规范。一是看看是否拥有大量的窄表,二是宽表的数量是否足够的少。若符合这两个条件,则可以说明这个数据库的规范化水平还是比较高的。当然这是两个泛泛而谈的指标。为了达到数据库设计规范化的要求,一般来说,需要符合以下五个要求。 要求一:表中应该避免可为空的列。 虽然表中允许空列,但是,空字段是一种比较特殊的数据类型。数据库在处理的时候,需要进行特殊的处理。如此的话,就会增加数据库处理记录的复杂性。当表中有比较多的空字段时,在同等条件下,数据库处理的性能会降低许多。 所以,虽然在数据库表设计的时候,允许表中具有空字段,但是,我们应该尽量避免。若确实需要的话,我们可以通过一些折中的方式,来处理这些空字段,让其对数据库性能的影响降低到最少。 一是通过设置默认值的形式,来避免空字段的产生。如在一个人事管理系统中,有时候身份证号码字段可能允许为空。因为不是每个人都可以记住自己的身份证号码。而在员工报到的时候,可能身份证没有带在身边。所以,身份证号码字段往往不能及时提供。为此,身份证号码字段可以允许为空,以满足这些特殊情况的需要。但是,在数据库设计的时候,则可以做一些处理。如当用户没有输入内容的时候,则把这个字段的默认值设置为0或者为N/A。以避免空字段的产生。 二是若一张表中,允许为空的列比较多,接近表全部列数的三分之一。而且,这些列在大部分情况下,都是可有可无的。若数据库管理员遇到这种情况,笔者建议另外建立一张副表,以保存这些列。然后通过关键字把主表跟这张副表关联起来。将数据存储在两个独立的表中使得主表的设计更为简单,同时也能够满足存储空值信息的需要。 要求二:表不应该有重复的值或者列。 为了解决这个问题,有多种实现方式。但是,若设计不合理的话在,则会导致重复的值或者列。如我们也可以这么设计,把客户信息、联系人都放入同一张表中。为了解决多个联系人的问题,可以设置第一联系人、第一联系人电话、第二联系人、第二联系人电话等等。若还有第三联系人、第四联系人等等,则往往还需要加入更多的字段。 所以,在数据库设计的时候要尽量避免这种重复的值或者列的产生。笔者建议,若数据库管理员遇到这种情况,可以改变一下策略。如把客户联系人另外设置一张表。然后通过客户ID把供应商信息表跟客户联系人信息表连接起来。也就是说,尽量将重复的值放置到一张独立的表中进行管理。然后通过视图或者其他手段把这些独立的表联系起来。 要求三:表中记录应该有一个唯一的标识符。 在数据库表设计的时候,数据库管理员应该养成一个好习惯,用一个ID号来唯一的标识行记录,而不要通过名字、编号等字段来对纪录进行区分。每个表都应该有一个ID列,任何两个记录都不可以共享同一个ID值。另外,这个ID值最好有数据库来进行自动管理,而不要把这个任务给前台应用程序。否则的话,很容易产生ID值不统一的情况。 要求四:数据库对象要有统一的前缀名。 一个比较复杂的应用系统,其对应的数据库表往往以千计。若让数据库管理员看到对象名就了解这个数据库对象所起的作用,恐怕会比较困难。而且在数据库对象引用的时候,数据库管理员也会为不能迅速找到所需要的数据库对象而头疼。 其次,表、视图、函数等最好也有统一的前缀。如视图可以用V为前缀,而函数则可以利用F为前缀。如此数据库管理员无论是在日常管理还是对象引用的时候,都能够在最短的时间内找到自己所需要的对象。 要求五:尽量只存储单一实体类型的数据。 这里将的实体类型跟数据类型不是一回事,要注意区分。这里讲的实体类型是指所需要描述对象的本身。笔者举一个例子,估计大家就可以明白其中的内容了。如现在有一个图书馆里系统,有图书基本信息、作者信息两个实体对象。若用户要把这两个实体对象信息放在同一张表中也是可以的。如可以把表设计成图书名字、图书作者等等。可是如此设计的话,会给后续的维护带来不少的麻烦。 遇到这种情况时,笔者建议可以把上面这张表分解成三种独立的表,分别为图书基本信息表、作者基本信息表、图书与作者对应表等等。如此设计以后,以上遇到的所有问题就都引刃而解了。 以上五条是在数据库设计时达到规范化水平的基本要求。除了这些另外还有很多细节方面的要求,如数据类型、存储过程等等。而且,数据库规范往往没有技术方面的严格限制,主要依靠数据库管理员日常工作经验的累积。
第一范式每个分量不可再分 第一范式消除了非主属性对键的部分函数依赖, 就是第二范式 第二范式消除了任何属性对键的传递依赖, 就是第三范式~