Baidu_Soai 2010-04-20 17:57
浏览 580
已采纳

请问数据库第一范式的问题,其他两个范式我都理解,这里第一范式说的同一列不能有多个值是什么意思啊?

能举个不符合第一范式的例子吗,不管是不是关系型数据库什么的

所谓第一范是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。

  • 写回答

1条回答 默认 最新

  • liyujie521130 2010-04-21 17:14
    关注

    1NF是关系模型最基本的要求,不满足第一范式的数据库模式不能称为关系数据库:
    如下例:我们定义一个职工表,字段有:员工编号(主键),员工姓名,电话(一个员工的电话可能有手机,家庭电话,办公室电话)。当我们要记录一个员工编号为10001,姓名为张三,他的电话分别是:手机135********;家庭电话021-15030***; 办公室电话:021-6666****的员工信息时,就无法做到:它明显违反了第一范式的定义:每一列都是不可分割的基本数据项,同一列中不能有多个值。——电话这一列有多个值,是可以再分割成:手机,家庭电话,办公室电话三个元子属性的。所以上面的未达到1NF,也就不是关系模式了。
    我们为了达到1NF可以做以下修改:
    (一):以电话为主健:
    那我们在存数据时一个员工的信息就会有三条如:10001 张三 135********;10001 张三 021-15030***; 10001 张三 021-6666****; (不建议)
    (二):以员工编号为主健,把电话拆成:手机,家庭电话,办公室电话三个栏位
    那我们在存数据时一个员工的信息就会只有一条如:10001 张三 135******* 021-15030*** 021-6666****; (建议)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办