[討論] 想請問關聯式資料庫一點小問題

作者: 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