[讨论] 想请问关联式数据库一点小问题

楼主: povertytrap (povertytrap)   2016-03-03 23:06:13
各位前辈 想请问一下
我在看数据库的书时这三点觉得很怪
第一个问题
关联表还具备四个性质:
其中这点关联表中不含重复的"值组"
可是书上的table明明值组都有重复的阿(非主键)
我google网络上一些教学也是有上述那点 阿表里面还是重复阿
例如这网页的表格中
http://faculty.stust.edu.tw/~jehuang/oracle/ch2/2-2.htm
Mgr跟Deptno里面职组都有重复阿
请问是我理解错误吗?
第二个问题
根据参考完成性、外键必须全部空值或非空
今天书上举例插入动作
表1
员工ID(这是主键) 姓名 部门代号(这是外键)
a1 ian 001
a2 ian 002
a3 teddy 003
a4 jahn 001
表2
部门代号(主键) 部门名称
001 业务部
002 资讯部
003 研发部
今天表1插入新员工资料(a5、may) 插入成功
这样不对啊根据参考完成性、外键必须全部空值或非空
这笔资料没给部门代号怎可以插入
第三个问题我不确定是否可以问在这
弱个体看定义是 : 弱个体就是本身没有任何键值属性的个体
但有部分键用来描述弱个体的属性 (我手上的书只有文字描述没话弱个体)
但这段话很怪
没有任何键值属性 却又有部分键用来描述属性?
而根据我google到的图
在E-R Model中,唯一可辨识弱个体的属性称为部份键
(Partial Key),其图示为在该属性名称下方加上虚底线 (实
务上也可用实底线),假如部分键有很多个,那我要对主键+实底线吗?
因为我非本科生,没学过数据库只好自学
恳请各位大大帮解惑
作者: fightforlive (学历无用论是屁)   2016-03-04 00:34:00
问题一. 所谓值组是说一笔资料.不能有两笔以上资料的所有字段都相同.在DB里PK不能重复,FK参考到其他table的PK,不同笔资料可能参考到相同PK,所以可以重复.问题二. 所谓FK刚刚说过是参考到其他table的PK,而PK可以不只一个字段组成一个"复合PK",因此,所谓全空或全非空是指一笔资料的FK字段都是空或非空,不能有一些字段有值,另以些则无.
楼主: povertytrap (povertytrap)   2016-03-04 00:47:00
问题二,对阿那FK那个插入范例没填新资料的FK阿因此新资料的FK部门代号不就null,怎可新增成功
作者: fightforlive (学历无用论是屁)   2016-03-04 00:59:00
问题三,只看懂前面问的内容,后面看不懂@@ 弱个体是依附在其他非弱个体,而部份键是用来辨别在同一个体下的弱个体,但在整个数据库里无法透过 姓名都不重复,因此眷属姓名为部份键,所以可以在某个员工底下透过姓名来识别某个眷属,但是换成另一位员工的眷属姓名就可能和刚刚的员工眷属姓名相同.因此,可以知道无法在整个数据库里透过员工眷属姓名找到是不是 部份键识别该弱个体,只能透过(所依附个体的PK+弱个体部份键)在整个数据库里识别.例如: 眷属依附在员工个体,因此眷属为弱个体.现在假设眷属下的你要找的人,可能找到多个相同姓名.如果员工个体有员工id可以识别不同员工,可以透过员工id+员工眷属姓名就可以唯一找到一个人
作者: shadow0828 (Vugtis Of Shadow)   2016-03-04 09:41:00
后面坦白讲看不懂 应该是跟 Unique 有相关连...除非你insert 的column 不允许null 不然insert的问题?
楼主: povertytrap (povertytrap)   2016-03-04 11:32:00
谢谢f大大,关于问题二插入(a5、may)这笔资料,部门代号没给值,而部门代号属于fk,这怎可插入成功?明明外键要都空或非空阿,这有就有值跟有空阿第三问题是说ER图部分键(弱个体属性)下面绘画虚线如果弱个体有很多属性,那主键属性要化实底线+虚线吗
作者: neo5277 (I am an agent of chaos)   2016-03-04 11:45:00
FK如果他要空 那就可以插入了不是嘛?第三个看起来是不是有点像 订单 跟订单明细 然后订单明细里面有一些东西的确是没有特别关连这样
楼主: povertytrap (povertytrap)   2016-03-04 11:46:00
根据参考完整性限制药都空或都非空阿
作者: neo5277 (I am an agent of chaos)   2016-03-04 11:57:00
问题二我刚刚建完表条件都照抄的确是不行
楼主: povertytrap (povertytrap)   2016-03-04 12:13:00
奇怪书上怎会写可以= =""所以确定这是错误就是了?
作者: neo5277 (I am an agent of chaos)   2016-03-04 13:15:00
恩我照你说的 去拉表 insert 就跳出错误讯息了我都设没有允许NULL
楼主: povertytrap (povertytrap)   2016-03-04 13:25:00
好吧 谢谢N大跟F大我找到实际例子了,联合大学陈士杰老师这份投影片http://goo.gl/Ej7LIg 投影片第29页,依样少FK插入 (‘A233’, ‘陈土木’, ‘0987654’)插入允许怎么都跟他们写得不一样........
作者: neo5277 (I am an agent of chaos)   2016-03-04 15:21:00
他29页的 EX2 跟四我想是他误植了应该颠倒就解了
作者: fightforlive (学历无用论是屁)   2016-03-04 18:33:00
你文章说的例子需要有个前题,就是默认值为NULL,这样不填就可以插入了

Links booklink

Contact Us: admin [ a t ] ucptt.com