作者jimmycool (北七)
看板Army-Sir
標題Re: [問題]計概91-27、95-12和96-16
時間Sat Jan 26 22:10:44 2013
※ 引述《steven225 (留戀)》之銘言:
: 91-27
: 假定要設計一個「學生選課資料庫」。經過分析後,得到實體關係圖(
: Entity-Relationship Diagram)如下,如果將此實體關係圖轉換成資料庫的表格
: (Relation),且資料庫表格必須正規化(Normalization)
: 到 3NF(Third Normal Form),請問會得到幾個資料庫表格?
: Ans:3個
: 圖請見這裡
: http://meo22.wwlc.nthu.edu.tw/military/attach/test/91computer.html
: 上面這題不知道從何下手...
我database沒有學很好,所以這題不保證我答的是對的:~
三個表格分別是(有畫線的代表是primary key, 正確是要畫底線,不過我不會畫XD):
表格A -- 記錄所有學生
____
學生 姓名
表格B -- 記錄所有課程
________
課程代號 名稱
表格C -- 記錄學生修了哪些課,得了幾分
____ ________
學生 課程代號 分數
3NF應該就是說(by wikipedia)
http://zh.wikipedia.org/wiki/%E7%AC%AC%E4%B8%89%E6%AD%A3%E8%A6%8F%E5%8C%96
1. 每個欄位都只能放一個值(1NF)
(e.g. 一個學生沒有很多名字)
2. 不是primary key的欄位都跟primary key有關(2NF)
(e.g. 課程名稱跟課程有關, 跟學生無關)
3. 不是primary key的欄位都"只"和primary key有關(3NF)
(e.g. 分數跟課程名稱無關,所以他們不該放在同一個table)
上面那三個table顯然符合3NF,然後你應該找不到只用兩個table表示那張圖
又符合3NF的方法
: 95-12
: 一程式在電腦中執行共需140秒,其中乘法指令共花掉112秒,請問要將乘法指令速度提升
: 多少倍可使程式執行時間成為原來的四分之一?
: 書上解法:
: 140*3/4=105
: 112/(112-105)=16
: Ans:16倍
: 上面這題看不懂解法......
上面是這個意思:
如果你要讓程式執行時間變成原本的四分之一,那你必須讓實行的時間減少
140*3/4=105秒
因為你只想動乘法的部分,所以花在乘法的時間必須減少105秒,
也就是你只能花112-105=7秒在乘法上面
如果你只花了7秒做乘法, 就加速了112/7=16倍
延伸閱讀: amdahl's law
http://goo.gl/aYfk4
: 96-16
: 假設一CPU執行一個指令循環分成5個步驟,每個步驟分別需要10ns、
: 5ns、10ns、10ns、5ns時間,若使用管線(Pipelining)技術執行100個指令,
: 則共需多少奈秒(ns)?
: 書上解法:
: 100*10+(10+5+10+10+5)=1040
: Ans:1040ns
: 我有去爬之前版上PIPELINE的教學文,但是看不太懂,
: 而上面這題的解法我也不太懂...
: 希望有計概強者可以幫幫非本科的學生@@,感謝!
我覺得書上解法錯了耶XD,詳見下
如果要用pipeline做,每一個步驟就是要花最長的步驟的那個時間,
所以每個步驟要花10ns,假設五個步驟分別叫A,B,C,D,E,
pipeline會把指令像下面這樣排
時間-------->
指令編號
1 A B C D E
2 A B C D E
3 A B C D E
...
所以在指令no.1花了五個步驟(50ns)跑完以後,接下來99個指令都只需要10ns,
答案就是50 + 10*99 = 1040
書上那樣算不但忽略了pipeline必須要讓每個步驟時間相同,指令no.1的
時間也多算了最後10ns,感覺怪怪的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.170.35
※ 編輯: jimmycool 來自: 118.169.170.35 (01/26 22:18)
1F:推 steven225:感謝您! 01/26 22:33
2F:噓 ilovewwe:第二題數學小學程度好嗎!!! 01/27 00:04
3F:推 benblue:人家幫忙解題 樓上是在噓三小 01/27 00:21
4F:→ steven225:我怎麼不知道我小學時學過安德定理。 01/27 00:26
5F:推 zx255024:感恩 又多學到一題 01/27 00:32
6F:推 ericcc:所以你在說我幼稚園程度囉? 01/27 04:09
7F:推 Editu:二樓這麼厲害 不幫忙是在噓三小 01/27 14:24
8F:推 costansin:二樓小學念哪間?數學程度真的很好!!! 01/27 14:34
9F:推 xhosaroy:二樓不幫忙解題就不要說那些有的沒的 無聊 01/27 15:03
10F:推 siriusu:第三題你得比較有道理 書上的真的怪怪的 01/27 16:15
11F:→ birdman41:二樓自我感覺良好 01/27 18:40
12F:→ wengmo:第三題 最後一個指令的最後一個步驟並不需要10ns 只需要5ns 01/27 23:07
13F:→ wengmo:因為它不需要考慮有下一個指令 只需要他自己需要的時間才對 01/27 23:09
14F:推 hardyuse:樓上 不是看最後步驟 是看最久的步驟 01/27 23:10
15F:→ hardyuse:第99個指令跑完時 第100個指令還在D的一半=>要等10ns 01/27 23:12
16F:→ hardyuse:...等等 原PO似乎有自己改題目 我仔細看一下 01/27 23:13
17F:→ wengmo:但我說的是第100個指令的E 他不需要等待上一個及考慮下一個 01/27 23:14
18F:→ hardyuse:這題我覺得答案有錯 應是1030ns 01/27 23:34
19F:→ hardyuse:原PO把兩格5ns的步驟改成10ns 所以答案變成1030+10=1040 01/27 23:34
20F:推 hardyuse:知道我哪裡錯了 clock cycle以最長為準(10ns) 總共需執 01/27 23:46
21F:→ hardyuse:行104個cycle 所以需要104*10 = 1040ns 01/27 23:47
22F:推 ilovewwe:樓上真厲害! 01/28 00:19