資料庫的鍵值定義主鍵 /索引鍵,其真正的意義為何?? |
答題得分者是:pcboy
|
ANDY8C
資深會員 發表:114 回覆:582 積分:299 註冊:2006-10-29 發送簡訊給我 |
請問 資料庫的鍵值定義,其真正的意義為何??
有相依關係或互斥關係要注意嗎??
設的不好,會很明顯的影響查詢效能嗎?? 主鍵 (PRIMARY) ??
索引鍵 (INDEX) ??
唯一鍵 (UNIQUE) ??
全文檢索 ?? 謝謝您 --------------------------------
這一網站,真的不錯!!
------
--------------------------------------- 偶爾才來 KTOP ,交流條碼問題,在 FB [條碼標籤達人] 社團留言,感恩. |
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
PRIMARY KEY 和 foreign key 是相對的 : 學號 姓名 所屬系所
85212007 張振洋 國企系
85212008 王淑芬 國企系
85213009 俞旭昇 資管系 下面這個Relation則是學生的選課資料: 課號 學年期 班別 學號 成績
040001 862 0 85212007 80
040001 862 0 85212009 69
040002 862 0 85212007 80
若某一組屬性可以唯一決定某一筆資料, 則稱這一組屬性為key. 我們可以設定某一個key為primary key. 若某一組屬性要對照到另一個Relation 的primary key, 則稱該組屬性為foreign key. 如學生資料中的primary key 為(學號), 選課資料的primary key為(學號,學年期,課號). 選課資料中的學號必需參考到學生資料中的學號, 因此我們說選課資料有一個foreign key (學號)參考到學生資料這個Relation. http://www.csie.ncnu.edu.tw/~ssyu/course/IBSDB/lecture3.html 索引鍵 (INDEX) ??
INDEX KEY 是用來加快搜尋動作的, 例如 姓名 歲數
---------
趙大 30
趙二 28
趙三 26
王大 29
王二 27
王三 25 如果要搜尋年齡 25 歲的人, 要到第 6 筆才找到
如果 對 "歲數" 這個欄位建立 INDEX, 第一筆就可以找到 歲數
----
25
26
27
28
29
30 唯一鍵 (UNIQUE) ??
就是任兩筆的這個欄位內容不會重複, 例如身分字號欄位 全文檢索 ??
用關鍵字去搜尋該網站上任何網頁上的文字 就是全文檢索
便宜的全文檢索 只能搜尋網頁
更強的 可以搜尋 doc, xls, pdf, ... 文件內容
更更強的 連資料庫內容都可以 搜尋 發表人 - pcboy2 於 2005/05/27 00:32:43
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
ANDY8C
資深會員 發表:114 回覆:582 積分:299 註冊:2006-10-29 發送簡訊給我 |
引言: 索引鍵 (INDEX) ?? INDEX KEY 是用來加快搜尋動作的, 例如 姓名 歲數 --------- 趙大 30 趙二 28 趙三 26 王大 29 王二 27 王三 25 如果要搜尋年齡 25 歲的人, 要到第 6 筆才找到 如果 對 "歲數" 這個欄位建立 INDEX, 第一筆就可以找到 歲數 ---- 25 26 27 28 29 30 唯一鍵 (UNIQUE) ?? 就是任兩筆的這個欄位內容不會重複, 例如身分字號欄位 發表人 - pcboy2 於 2005/05/27 00:32:431. 如果 A TABLE(MASTER) 的欄位有 學號,姓名......等 B TABLE(DETAIL) 的欄位有 學號,修課代號(同一學號,有許多不同的修課代號...),......等 此 A,B 要做成 MASTER-DETAIL 的關係 資料庫的欄位關係如何建立最好???? 假設 A 有設 INDEX 用 學號 欄位 B 也要設定 INDEX 時,是僅用學號就好, 還是 學號 修課代號 也可以呢?? 2. 唯一鍵 (UNIQUE) , 與 PRIMARY 有何不同 ?? 謝謝您 !! -------------------------------- 這一網站,真的不錯!!
------
--------------------------------------- 偶爾才來 KTOP ,交流條碼問題,在 FB [條碼標籤達人] 社團留言,感恩. |
lcjan
初階會員 發表:11 回覆:60 積分:29 註冊:2002-03-13 發送簡訊給我 |
|
pillar62
資深會員 發表:9 回覆:324 積分:271 註冊:2002-04-15 發送簡訊給我 |
你好
插個花
1.
此 A,B 要做成 MASTER-DETAIL 的關係
資料庫的欄位關係如何建立最好????
一般來說,我們會用主檔名細都有的欄位來作關聯,所以應該是用學號!! 假設 A 有設 INDEX 用 學號 欄位
B 也要設定 INDEX 時,是僅用學號就好,
還是 學號 修課代號 也可以呢??
其實,索引要設幾個都可以,這是增加查詢的速度,但是要注意的是,如果索引太多的時候,會造成新增存檔時的速度會變慢,因為在新增資料時,資料庫必須要同時將鍵值傳到索引中,所以可想而知,索引越多,新增時的速度就會越慢!!
這些相關的資料處理方式,建議可以看一下有關於資料正規化的資料!!應該有幫助喔!! Pillar Wang
------
Pillar Wang |
xu_caishen
一般會員 發表:6 回覆:20 積分:5 註冊:2005-04-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |