當前位置:首頁 » 操作系統 » 資料庫原理與應用考試題

資料庫原理與應用考試題

發布時間: 2024-02-09 01:14:31

資料庫原理及應用基礎的常見類型題

1.B 2.C 3.B 4.C 5.D 6.C 7.C 8.D 9.C 10.A
11.A 12.A 13.A - 不知道14。乙evogue2006 - 10 - 24 11點47分01秒15?16.A 17.B 18.A 19.D 20.C

試述事務的概念和事務的四個特性。
A:
事務是一個用戶定義的資料庫操作序列,這些操作要麼全部做或不做的整體,是一個不可分割的工作單元。
事務有四個特點:原子性(原子性),一致性(一致性),隔離(隔離)和持久性(Durability)。這四個特點也被稱為ACID屬性。
原子性:事務資料庫的邏輯工作單元,該交易包括所有的操作,無論是做還是不做。
一致性:事務執行的結果必須更改資料庫從一個一致狀態轉換到另一個一致的狀態。
隔離:一個事務的執行不能被其他事務的干擾。一個事務內的操作和使用其他並發事務的數據分離出來,並發執行的個別交易不能互相干擾。
持續性:持續性的,也被稱為永久(持久性),指的到交易提交其數據存儲在資料庫中的變化應該是永久性的。接下來的操作或故障不應該有任何影響其執行結果。
2。為什麼事務非正常時間的推移,會影響資料庫中數據的正確性,舉了一個例子。
A:
事務的執行結果必須更改資料庫從一個一致狀態轉換到另一個一致狀態。如果出現故障的資料庫系統的操作,一些尚未完成的交易被迫中斷,這些未完成的交易的一部分已被寫入到物理資料庫對資料庫所做的更改,然後在資料庫中不正確的狀態,或者是不一致的狀態。
如一個工廠的庫存管理系統,它是必要的量Q的某些部分從倉庫1倉庫2個存儲。
你可以定義一個事務T,T包括兩個操作; Q1 = Q1-Q,Q2 = Q2 + Q. T改變的終??止,只有當第一個操作,資料庫是不一致Q庫存沒有理由。

3。資料庫中為什麼要有恢復子系統?它的功能是什麼?
A:
是不可避免的,因為計算機系統的硬體故障,軟體錯誤,操作錯誤和惡意破壞所造成的這些故障從正在運行的事務中發生非正常中斷,影響資料庫中的數據正確性,而破壞了資料庫中,因此,在資料庫中的數據的全部或部分損失,因此必須有一個恢復子系統。功能
恢復子系統:資料庫從錯誤狀態恢復到一個已知的良好狀態(也被稱為一致的狀態或完整狀態)。

4。在資料庫中可能出現的故障運行幾類?什麼故障影響正常執行的交易嗎?什麼故障破壞資料庫中的數據?
A:資料庫系統的各種可能發生的故障大致可分為如下幾類:
(1)內部交易失敗;
(2)系統故障; />(3)介質故障;
(4)計算機病毒。的
交易失敗,系統故障和介質故障影響事務的正常執行;介質故障和計算機病毒破壞的數據
庫。

5。根據回收技術?
A:
數據轉儲和登錄日誌文件是資料庫恢復的基本技術。
當一個故障在系統運行過程中,轉儲資料庫的日誌文件,你可以將資料庫恢復到一致狀態,在發生故障之前的備份副本。

6。資料庫的轉儲的意義是什麼?各種數據轉儲方法的比較。
答案:
數據轉儲是基本的技術,在恢復的資料庫。所謂的轉儲資料庫DBA定期復制到磁帶或其他磁碟保存。可以重新載入資料庫破壞的資料庫的備份副本恢復時的狀態轉儲。
靜態轉儲:轉儲系統操作運行的事務。靜態轉儲,但必須等待用戶交易結束之前運行。同樣,新的事務必須等待執行轉儲結束。顯然,這將減少資料庫的可用性。
動態轉儲:轉儲期間允許資料庫訪問或。動態的轉儲可以克服靜態轉儲的缺點,它並不需要等待正在運行的用戶交易的結束,也不會影響新事務的操作。然而,備份的數據副本結束時的轉儲和不能保證正確和有效的。 ,因為轉儲運行在交易過程中可能會一些數據,備份的數據副本是不符合版本的資料庫。
為此,我們必須活動期間注冊使用mp transaction資料庫,以創建一個日誌文件(日誌文件)。在這樣的日誌文件的備份副本可以得到正確的資料庫狀態的時刻。
轉儲海量轉儲和增量轉儲可以分為兩種方式。
大規模傾倒每一個轉儲所有資料庫。增量轉儲每次更新只轉儲上次轉儲數據。從恢復的角度來看,大量的轉儲的備份副本恢復一般更容易。如果該資料庫,事務處理,是非常頻繁,增量轉儲方式更實用,更有效。

7。日誌文件?為什麼要建立一個日誌文件?
答案:
(1)日誌文件是用來記錄交易文件對資料庫的更新操作。
(2)建立的日誌文件的目的:交易故障恢復系統故障恢復;協助媒體恢復的備份副本。

登記日誌文件為什麼要寫入日誌文件後,寫入到資料庫?
A:
的數據寫入到資料庫中,兩種不同的操作,這個後的日誌記錄被寫入到日誌文件中。這兩個操作之間可能發生了故障,即這兩個寫操作只完成了。
先寫一個資料庫,而不是變化的運行記錄中,小數點後不能被恢復這一。如果你寫的日誌,但沒有資料庫,恢復執行UNDO操作,不影響資料庫的正確性。所以一定要確保你寫的日誌文件,日誌記錄寫入到日誌文件中,然後寫入到資料庫的變化。

9,測試是針對不同的故障恢復策略和方法。 (也就是說,如何進行交易系統故障恢復故障恢復介質恢復?)
A:
交易故障恢復:
事務故??障的恢復是自動完成的DBMS ,是對用戶透明。
DBMS執行恢復步驟:
(1)反向掃描文件日誌(即從最後一次掃描日誌文件),則該事務更新操作。
(2)事務的更新操作執行逆操作。關於日誌記錄更新前值嗎?寫入到資料庫中。
(3)反向掃描日誌文件,做同樣的。
(4)?下去,直到你讀的開始標記本次交易,交易失敗恢復完整。
A:
系統故障恢復:
系統出現故障可能會導致資料庫處於不一致的狀態:
首先,沒有完成的交易資料庫的更新可能已被寫入到資料庫中;
已提交的交易資料庫的更新可能還留在緩沖區中,並沒有寫入到資料庫。
恢復操作(UNDO)的未竟事業出現故障,重做(REDO)已完成的交易。
恢復步驟:
(1)正向掃描日誌文件,以確定該交易已提交在故障發生前隊列中(REDO隊列的)和未完成的事務隊列(UNDO隊列)。
(2)UNDO處理隊列中的個別交易的。
UNDO處理方法是反向掃描日誌文件,更新操作執行相反的操作,每一個UNDO事務迫在眉睫的「價值」(前映像)記錄寫入到資料庫中,然後再更新。
(3)治療重做重做隊列事務。
REDO處理方法:正向掃描日誌文件,每個REDO事務重新執行操作的日誌文件登記。即將推出的日誌記錄寫入到資料庫中的更新值「(後映像)。
解析度:
步驟(1)如何確定的REDO隊列和UNDO隊列,請考慮一下吧。 BR />的演算法如下:
1)創建兩個事務隊列:
·UNDO-LIST:需要執行undo操作的事務集;
·REDO-LIST:需要執行重做操作事務集;
事務隊列最初是空的。
)從日誌文件頭,正向掃描日誌文件
是否有新的開始(遇到BEGIN TRANSACTION)交易鈦,鈦暫時放入UNDO-LIST隊列;
·如果提交的事務(遇到結束事務)TJ TJ從隊列undo-list中的REDO-LIST隊列;

直到最後的日誌文件A:
介質故障恢復:
介質故障是最嚴重的故障。
恢復方法是重裝資料庫,然後重做已完成交易的過程是:
(1 )DBA裝入最新的資料庫備份(從故障時間最近的轉儲副本),將資料庫恢復到一致的狀態轉儲。
(2)DBA的日誌文件的副本載入轉儲結束時間
(3)DBA啟動系統恢復命令來完成還原的DBMS的功能,重做已完成的交易。

解析
1)我們假設靜態轉儲的步驟(1)安裝資料庫的備份副本。
2)如果您使用的是靜態和動態轉儲步驟(1)將資料庫的備份副本是不夠的,需要同時載入的副本日誌文件的轉儲開始治療後的時間,以獲得正確的資料庫的備份副本。
3)(2)步演算法來重做已完成的交易:
正向掃描日誌文件,以找出識別在故障發生之前提交的交易中,計入的重量隊列
B。再次向前掃描日誌文件,重做重做隊列中的所有交易。即將推出的日誌記錄寫入到資料庫中的更新值。
>
10。檢查點恢復技術的優勢是什麼?
A:
測井技術進行資料庫恢復,恢復子系統必須搜索日誌,以確定哪些事務需要重做,哪些事務需要。一般來說,你需要檢查所有的記錄。這樣做有兩個問題:
首先,搜索整個日誌將花費大量的時間。
REDO處理的事務實際上寫的更新操作資料庫恢復子系統又執行這些操作,浪費了大量的時間。
檢查點技術,以解決這些問題。

11。師叔檢查點的恢復步驟。

①從啟動文件的最後一個檢查點記錄在日誌文件中的地址找到最後一個檢查點記錄在日誌文件中找到的地址。
②檢查站的檢查點記錄的建立時間列表中的所有運行的事務ACTIVE-LIST。
創建兩個事務隊列:
·UNDO-LIST:需要執行undo操作的事務集;
·REDO-LIST:集交易需要執行恢復操作;
ACTIVE-LIST暫時到UNDO-LIST隊列,REDO隊列暫時空。
③從檢查點開始正向掃描日誌文件
任何新的起點事務鈦undo-list中的Ti暫時放置在隊列中;
·如果提交事務TJ,TJ移動從UNDO-LIST隊列,REDO-LIST隊列,直到最後的日誌文件;
>④UNDO操作執行undo-list中的每一筆交易REDO-LIST中的每個事務執行REDO操作。

12。資料庫鏡像?使用?
答案:
資料庫鏡像是根據對DBA的要求,自動復制到另一個磁碟上的關鍵數據在整個資料庫或部分。每當主資料庫更新時,DBMS自動復制更新後的數據,在過去,DBMS自動保證鏡像的一致性
使用資料庫鏡像的數據和主數據。:
一個用於資料庫恢復。當介質故障的鏡像磁碟繼續提供使用的資料庫管理系統自動鏡像磁碟數據恢復的資料庫,並且不需要關閉系統並重新安裝該資料庫的副本。
二是要提高無故障,當用戶的數據加排他鎖來其他用戶可以讀取的數據的資料庫的可用性。鏡像資料庫,無需等待用戶釋放該鎖。

Ⅱ 求《資料庫原理與應用》第二版課後習題答案!!!

第6章

一、選擇題

1.C2.A3.A4.C5.A6.C7.C8.B9.A10.C11.B12.B13.C14.D15.B

二、填空題

1.文件管理階段資料庫系統管理階段

2.相互區別實體集

3.域

4.關系

5.數據結構數據操縱數據完整性約束

6.外模式模式內模式

7.模式

8.內模式

9.外模式

第7章

一、選擇題

1.A2.C3.B4.B5.D6.A7.D8.C9.D10.B

二、填空題

1.矩形 橢圓 菱形 數字

2.第一

3.命名屬性結構

4.參照

5.學號

第8章

一、選擇題

1.D2.C3.A4.B5.D

二、填空題

1.數據定義數據操縱數據控制

2.非過程化集合

3.結構化查詢語句StructuredQueryLanguage

4.不能

5.select@變數名或select@@變數名

第9章

一、選擇題

1.A2.A3.B4.C5.D6.D7.B8.A

二、填空題

1.一多多

2.alterdatabase

3.dbccshrinkfile

4.將資料庫userdb縮小到原來的30%

5.dropdatabase

第10章

選擇題

1.C2.D3.D4.B5.C

二、填空題

1.可以重名

2.99999.999

3.無

4.altertable

5.primarykey unique foreignkey check default

6.聚集索引非聚集索引

第11章

一、選擇題

1.B2.C3.A4.A5.C6.B

二、填空題

1.distinct

2.desc

3.匹配多個字元匹配單個字元

4.orderby

5.groupby

第13章

選擇題

1.A2.D3.A4.C5.C

二、填空題

1.子模式基本表視圖

2.alterview dropview

第14章

選擇題

1.A2.D

二、填空題

1.正確性相容性

2.createrule

3.sp_bindrule

4.droprule

第15章

選擇題

1.A2.C3.D4.A

二、填空題

1.alterprocere

2.@參數名

3.exec[ute]<過程名>

4.insert update delete

5.deleted

6.inserted

7.deleted

http://..com/question/440479153.html?oldq=1#answer-1298076427

Ⅲ 資料庫原理及應用試題

1.B 2.C 3.B 4.C 5.D 6.C 7.C 8.D 9.C 10.A
11.A 12.A 13.A --不太確定 14.B 15.C 16.A 17.B 18.A 19.D 20.C

1.試述事務的概念及事務的四個特性。
答:
事務是用戶定義的一個資料庫操作序列,這些操作要麼全做要麼全不做,是一個不可分割的工作單位。
事務具有四個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續性(Durability)。這個四個特性也簡稱為ACID特性。
原子性:事務是資料庫的邏輯工作單位,事務中包括的諸操作要麼都做,要麼都不做。
一致性:事務執行的結果必須是使資料庫從一個一致性狀態變到另一個一致性狀態。
隔離性:一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對其他並發事務是隔離的,並發執行的各個事務之間不能互相干擾。
持續性:持續性也稱永久性(Permanence),指一個事務一旦提交,它對資料庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其執行結果有任何影響。

2.為什麼事務非正常結束時會影響資料庫數據的正確性,請列舉一例說明之。
答:
事務執行的結果必須是使資料庫從一個一致性狀態變到另一個一致性狀態。如果資料庫系統運行中發生故障,有些事務尚未完成就被迫中斷,這些未完成事務對資料庫所做的修改有一部分已寫入物理資料庫,這時資料庫就處於一種不正確的狀態,或者說是不一致的狀態。
例如某工廠的庫存管理系統中,要把數量為Q的某種零件從倉庫1移到倉庫2存放。
則可以定義一個事務T,T包括兩個操作;Q1=Q1-Q,Q2=Q2+Q。如果T非正常終止時只做了第一個操作,則資料庫就處於不一致性狀態,庫存量無緣無故少了Q。

3.資料庫中為什麼要有恢復子系統?它的功能是什麼?
答:
因為計算機系統中硬體的故障、軟體的錯誤、操作員的失誤以及惡意的破壞是不可避免的,這些故障輕則造成運行事務非正常中斷,影響資料庫中數據的正確性,重則破壞資料庫,使資料庫中全部或部分數據丟失,因此必須要有恢復子系統。
恢復子系統的功能是:把資料庫從錯誤狀態恢復到某一已知的正確狀態(亦稱為一致狀態或完整狀態)。

4.資料庫運行中可能產生的故障有哪幾類?哪些故障影響事務的正常執行?哪些故障破壞資料庫數據?
答:資料庫系統中可能發生各種各樣的故障,大致可以分以下幾類:
(1)事務內部的故障;
(2)系統故障;
(3)介質故障;
(4)計算機病毒。
事務故障、系統故障和介質故障影響事務的正常執行;介質故障和計算機病毒破壞數據
庫數據。

5.據庫恢復的基本技術有哪些?
答:
數據轉儲和登錄日誌文件是資料庫恢復的基本技術。
當系統運行過程中發生故障,利用轉儲的資料庫後備副本和日誌文件就可以將資料庫恢復到故障前的某個一致性狀態。

6. 資料庫轉儲的意義是什麼? 試比較各種數據轉儲方法。
答:
數據轉儲是資料庫恢復中採用的基本技術。所謂轉儲即DBA定期地將資料庫復制到磁帶或另一個磁碟上保存起來的過程。當資料庫遭到破壞後可以將後備副本重新裝入,將資料庫恢復到轉儲時的狀態。
靜態轉儲:在系統中無運行事務時進行的轉儲操作。靜態轉儲簡單,但必須等待正運行的用戶事務結束才能進行。同樣,新的事務必須等待轉儲結束才能執行。顯然,這會降低資料庫的可用性。
動態轉儲:指轉儲期間允許對資料庫進行存取或修改。動態轉儲可克服靜態轉儲的缺點,它不用等待正在運行的用戶事務結束,也不會影響新事務的運行。但是,轉儲結束時後援副本上的數據並不能保證正確有效。因為轉儲期間運行的事務可能修改了某些數據,使得後援副本上的數據不是資料庫的一致版本。
為此,必須把轉儲期間各事務對資料庫的修改活動登記下來,建立日誌文件(log file)。這樣,後援副本加上日誌文件就能得到資料庫某一時刻的正確狀態。
轉儲還可以分為海量轉儲和增量轉儲兩種方式。
海量轉儲是指每次轉儲全部資料庫。增量轉儲則指每次只轉儲上一次轉儲後更新過的數據。從恢復角度看,使用海量轉儲得到的後備副本進行恢復一般說來更簡單些。但如果資料庫很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效。

7. 什麼是日誌文件?為什麼要設立日誌文件?
答:
(1)日誌文件是用來記錄事務對資料庫的更新操作的文件。
(2)設立日誌文件的目的是: 進行事務故障恢復;進行系統故障恢復;協助後備副本進行介質故障恢復。

8. 登記日誌文件時為什麼必須先寫日誌文件,後寫資料庫?
答:
把對數據的修改寫到資料庫中和把表示這個修改的日誌記錄寫到日誌文件中是兩個不同的操作。有可能在這兩個操作之間發生故障,即這兩個寫操作只完成了一個。
如果先寫了資料庫修改,而在運行記錄中沒有登記這個修改,則以後就無法恢復這個修改了。如果先寫日誌,但沒有修改資料庫,在恢復時只不過是多執行一次UNDO操作,並不會影響資料庫的正確性。所以一定要先寫日誌文件,即首先把日誌記錄寫到日誌文件中,然後寫資料庫的修改。

9. 針對不同的故障,試給出恢復的策略和方法。(即如何進行事務故障的恢復?系統故障的恢復?介質故障恢復?)
答:
事務故障的恢復:
事務故障的恢復是由DBMS自動完成的,對用戶是透明的。
DBMS執行恢復步驟是:
(1)反向掃描文件日誌(即從最後向前掃描日誌文件),查找該事務的更新操作。
(2)對該事務的更新操作執行逆操作。即將日誌記錄中「更新前的值」寫入資料庫。
(3)繼續反向掃描日誌文件,做同樣處理。
(4)如此處理下去,直至讀到此事務的開始標記,該事務故障的恢復就完成了。
答:
系統故障的恢復:
系統故障可能會造成資料庫處於不一致狀態:
一是未完成事務對資料庫的更新可能已寫入資料庫;
二是已提交事務對資料庫的更新可能還留在緩沖區,沒來得及寫入資料庫。
因此恢復操作就是要撤銷(UNDO)故障發生時未完成的事務,重做(REDO)已完成的事務。
系統的恢復步驟是:
(1)正向掃描日誌文件,找出在故障發生前已經提交的事務隊列(REDO隊列)和未完成的事務隊列(UNDO隊列)。
(2)對撤銷隊列中的各個事務進行UNDO處理。
進行UNDO處理的方法是,反向掃描日誌文件,對每個UNDO事務的更新操作執行逆操作,即將日誌記錄中「更新前的值」(Before Image)寫入資料庫。
(3)對重做隊列中的各個事務進行REDO處理。
進行REDO處理的方法是:正向掃描日誌文件,對每個REDO事務重新執行日誌文件登記的操作。即將日誌記錄中「更新後的值」(After Image)寫入資料庫。
*解析:
在第(1)步中如何找出REDO隊列和UNDO隊列?請大家思考一下。
下面給出一個演算法:
1) 建立兩個事務隊列:
· UNDO-LIST: 需要執行undo操作的事務集合;
· REDO-LIST: 需要執行redo操作的事務集合;
兩個事務隊列初始均為空。
2) 從日誌文件頭開始,正向掃描日誌文件
· 如有新開始(遇到Begin Transaction)的事務Ti,把Ti暫時放入UNDO-LIST隊列;
· 如有提交的事務(遇到End Transaction)Tj,把Tj從UNDO-LIST隊列移到REDO-LIST隊列;
直到日誌文件結束
答:
介質故障的恢復:
介質故障是最嚴重的一種故障。
恢復方法是重裝資料庫,然後重做已完成的事務。具體過程是:
(1)DBA裝入最新的資料庫後備副本(離故障發生時刻最近的轉儲副本),使資料庫恢復到轉儲時的一致性狀態。
(2)DBA裝入轉儲結束時刻的日誌文件副本
(3)DBA啟動系統恢復命令,由DBMS完成恢復功能,即重做已完成的事務。

*解析
1)我們假定採用的是靜態轉儲,因此第(1)步裝入資料庫後備副本便可以了。
2)如果採用的是靜動態轉儲,第(1)步裝入資料庫後備副本還不夠,還需同時裝入轉儲開始時刻的日誌文件副本,經過處理後才能得到正確的資料庫後備副本。
3)第(2)步重做已完成的事務的演算法是:
a. 正向掃描日誌文件,找出故障發生前已提交的事務的標識,將其記入重做隊列
b. 再一次正向掃描日誌文件,對重做隊列中的所有事務進行重做處理。即將日誌記錄中「更新後的值」寫入資料庫。

10. 具有檢查點的恢復技術有什麼優點?
答:
利用日誌技術進行資料庫恢復時,恢復子系統必須搜索日誌,確定哪些事務需要REDO,哪些事務需要UNDO。一般來說,需要檢查所有日誌記錄。這樣做有兩個問題:
一是搜索整個日誌將耗費大量的時間。
二是很多需要REDO處理的事務實際上已經將它們的更新操作結果寫到資料庫中了,恢復子系統又重新執行了這些操作,浪費了大量時間。
檢查點技術就是為了解決這些問題。

11. 試述使用檢查點方法進行恢復的步驟。
答:
① 從重新開始文件中找到最後一個檢查點記錄在日誌文件中的地址,由該地址在日誌文件中找到最後一個檢查點記錄。
② 由該檢查點記錄得到檢查點建立時刻所有正在執行的事務清單ACTIVE-LIST。
這里建立兩個事務隊列:
· UNDO-LIST: 需要執行undo操作的事務集合;
· REDO-LIST: 需要執行redo操作的事務集合;
把ACTIVE-LIST暫時放入UNDO-LIST隊列,REDO隊列暫為空。
③ 從檢查點開始正向掃描日誌文件
· 如有新開始的事務Ti,把Ti暫時放入UNDO-LIST隊列;
· 如有提交的事務Tj,把Tj從UNDO-LIST隊列移到REDO-LIST隊列,直到日誌文件結束;
④ 對UNDO-LIST中的每個事務執行UNDO操作, 對REDO-LIST中的每個事務執行REDO操作。

12. 什麼是資料庫鏡像?它有什麼用途?
答:
資料庫鏡像即根據DBA的要求,自動把整個資料庫或者其中的部分關鍵數據復制到另一個磁碟上。每當主資料庫更新時,DBMS自動把更新後的數據復制過去,即DBMS自動保證鏡像數據與主數據的一致性。
資料庫鏡像的用途有:
一是用於資料庫恢復。當出現介質故障時,可由鏡像磁碟繼續提供使用,同時DBMS自動利用鏡像磁碟數據進行資料庫的恢復,不需要關閉系統和重裝資料庫副本。
二是提高資料庫的可用性。在沒有出現故障時,當一個用戶對某個數據加排它鎖進行修改時,其他用戶可以讀鏡像資料庫上的數據,而不必等待該用戶釋放鎖。

Ⅳ VF的題目 資料庫原理與應用 求高手幫忙做做 謝謝了

一、 填空
1、在VFP中通過選擇菜單來執行VFP命令與在 __命令窗口____輸入逐條命令,得到結果是一樣的。
2、若ABC=」遠程網路教育」,則 ? SUBSTR(ABC,LEN(ABC)/6+7,4)的結果是__教育_______。
3、設Y=1,則執行命令 ? Y>Y+1的結果是____.f.______。
4、學生檔案表中有性別 ( C , 2 ),和民族( C , 8 ), 要求找出所有民族是回族的男同學記錄的查找條件是_____性別='男' and 民族='回族'_____。
5、打開一個數據表文件後文件,如果當前記錄指針是在第10個記錄上,則用函數RECNO()函數測試,其結果一定是_____10_____。
6、在數據表中, 圖片中數據應存儲在____General_______欄位中。
7、如果查詢是基於多個表的, 這幾個表之間必須建立__外鍵________關系。
8、執行下列命令後,表DB1的當前記錄為__6_____,表DB2的當前記錄為 ______1___。
SELECT 1
USE DB1
SELECT 2
USE DB2
SELECT 1
SKIP 5

二、 簡答題
1、 什麼是關系資料庫 ? 其特點有哪些 ?
關系資料庫,是建立在關系資料庫模型基礎上的資料庫,藉助於集合代數等概念和方法來處理資料庫中的數據。
其特徵有:
1)實現數據共享2)減少數據的冗餘度3)數據的獨立性4)數據實現集中控制數據一致性和可維護性,以確保數據的安全性和可靠性
2、 在VFP中 , 查詢和視圖有何區別 ?
查詢生成的結果,只可看,不可改。
視圖生成的結果,可看,可改,直接影像資料庫內表的內容。

3、 在程序設計中經常使用哪些輸入 / 輸出命令 ? 試比較其異同點 。
input 輸入命令和 print 輸出命令或?輸出命令
他們一個主要負責數據的採集,另一個負責結果的顯示或列印
4、寫出編製程序文件和運行程序文件的命令。
modi comm aa.prg 編製程序命令
do aa.prg
三、選擇題
1、下面關於資料庫系統的敘述中 , 正確的是(d )。
(A)資料庫系統只是比文件系統管理的數據更多
(B)資料庫系統中的數據的一致性是指數據類型一致
(C)資料庫系統避免了數據冗餘
(D)資料庫系統減少了數據冗餘

2、下面有關關系資料庫主要特點的敘述中,錯誤的是(c ) 。
(A)關系中每個屬性必須是不可分割的數據單元。
(B)關系中每一列元素必須是類型相同的數據。
(C)同一個關系中不能有相同的欄位,也不能有相同的記錄。
(D)關系的行、列次序不能任意交換,否則會影響其信息內容。

3、若M=」 95.5」 , 則執行命令 ? 30+&M的結果是 ( b )。
(A)3095.5 (B)125.50 (C)30+&M (D)30

4、已知工資=560 , 職稱=」副教授」 , 性別=」男」 , 結果為假的邏輯表達式是(b )。
(A)工資 > 500 .AND. 職稱=」副教授」 .AND. 性別=」男」
(B)性別=」女」 .OR..NOT. 職稱=」助教」
(C)工資 > 550 .AND. 職稱=」副教授」 .OR. 職稱=」講師」
(D)工資 =550 .AND. (職稱=」教授」 .OR. 性別=」男」)

5、某」職工」表中有職稱(C)和工資(N)兩個欄位,計算所有職稱為高工或工程師的工資總額,並將結果賦給內存變數ZGZ,應使用命令(a )。
(A)SUM 工資 TO ZGZ FOR職稱=」 工程師」 .OR. 職稱=」 高工」
(B)SUM 工資 TO ZGZ FOR職稱=」 工程師」 .OR. 」 高工」
(C)SUM 工資 TO ZGZ FOR職稱=」 工程師」 .AND. 職稱=」 高工」
(D)SUM 工資 TO ZGZ FOR職稱=」 工程師」 .AND. 」 高工」

6、下列數據中屬於字元型數據是( b) 。
A、06/08/04 B、[06/08/04] C、{^06/08/04} D、(06/08/04)

7、表單文件的擴展名為(scx )。
A、FOM B、SCX C、FRM D、VCX

8、在VFP中,邏輯型、日期型和備注型欄位的長度分別是(c ) 。
A、1, 8, 128 B、1, 8, 10 C、1, 8, 4 D、1, 10, 4

一、 填空
1、在VFP中通過選擇菜單來執行VFP命令與在 __命令窗口____輸入逐條命令,得到結果是一樣的。
2、若ABC=」遠程網路教育」,則 ? SUBSTR(ABC,LEN(ABC)/6+7,4)的結果是__教育_______。
3、設Y=1,則執行命令 ? Y>Y+1的結果是____.f.______。
4、學生檔案表中有性別 ( C , 2 ),和民族( C , 8 ), 要求找出所有民族是回族的男同學記錄的查找條件是_____性別='男' and 民族='回族'_____。
5、打開一個數據表文件後文件,如果當前記錄指針是在第10個記錄上,則用函數RECNO()函數測試,其結果一定是_____10_____。
6、在數據表中, 圖片中數據應存儲在____General_______欄位中。
7、如果查詢是基於多個表的, 這幾個表之間必須建立__外鍵________關系。
8、執行下列命令後,表DB1的當前記錄為__6_____,表DB2的當前記錄為 ______1___。
SELECT 1
USE DB1
SELECT 2
USE DB2
SELECT 1
SKIP 5

二、 簡答題
1、 什麼是關系資料庫 ? 其特點有哪些 ?
關系資料庫,是建立在關系資料庫模型基礎上的資料庫,藉助於集合代數等概念和方法來處理資料庫中的數據。
其特徵有:
1)實現數據共享2)減少數據的冗餘度3)數據的獨立性4)數據實現集中控制數據一致性和可維護性,以確保數據的安全性和可靠性
2、 在VFP中 , 查詢和視圖有何區別 ?
查詢生成的結果,只可看,不可改。
視圖生成的結果,可看,可改,直接影像資料庫內表的內容。

3、 在程序設計中經常使用哪些輸入 / 輸出命令 ? 試比較其異同點 。
input 輸入命令和 print 輸出命令或?輸出命令
他們一個主要負責數據的採集,另一個負責結果的顯示或列印
4、寫出編製程序文件和運行程序文件的命令。
modi comm aa.prg 編製程序命令
do aa.prg
三、選擇題
1、下面關於資料庫系統的敘述中 , 正確的是(d )。
(A)資料庫系統只是比文件系統管理的數據更多
(B)資料庫系統中的數據的一致性是指數據類型一致
(C)資料庫系統避免了數據冗餘
(D)資料庫系統減少了數據冗餘

2、下面有關關系資料庫主要特點的敘述中,錯誤的是(c ) 。
(A)關系中每個屬性必須是不可分割的數據單元。
(B)關系中每一列元素必須是類型相同的數據。
(C)同一個關系中不能有相同的欄位,也不能有相同的記錄。
(D)關系的行、列次序不能任意交換,否則會影響其信息內容。

3、若M=」 95.5」 , 則執行命令 ? 30+&M的結果是 ( b )。
(A)3095.5 (B)125.50 (C)30+&M (D)30

4、已知工資=560 , 職稱=」副教授」 , 性別=」男」 , 結果為假的邏輯表達式是(b )。
(A)工資 > 500 .AND. 職稱=」副教授」 .AND. 性別=」男」
(B)性別=」女」 .OR..NOT. 職稱=」助教」
(C)工資 > 550 .AND. 職稱=」副教授」 .OR. 職稱=」講師」
(D)工資 =550 .AND. (職稱=」教授」 .OR. 性別=」男」)

5、某」職工」表中有職稱(C)和工資(N)兩個欄位,計算所有職稱為高工或工程師的工資總額,並將結果賦給內存變數ZGZ,應使用命令(a )。
(A)SUM 工資 TO ZGZ FOR職稱=」 工程師」 .OR. 職稱=」 高工」
(B)SUM 工資 TO ZGZ FOR職稱=」 工程師」 .OR. 」 高工」
(C)SUM 工資 TO ZGZ FOR職稱=」 工程師」 .AND. 職稱=」 高工」
(D)SUM 工資 TO ZGZ FOR職稱=」 工程師」 .AND. 」 高工」

6、下列數據中屬於字元型數據是( b) 。
A、06/08/04 B、[06/08/04] C、{^06/08/04} D、(06/08/04)

7、表單文件的擴展名為(scx )。
A、FOM B、SCX C、FRM D、VCX

8、在VFP中,邏輯型、日期型和備注型欄位的長度分別是(c ) 。
A、1, 8, 128 B、1, 8, 10 C、1, 8, 4 D、1, 10, 4

Ⅳ 求資料庫應用題

資料庫語言的目標

要說清這個目標,先要理解資料庫是做什麼的。

資料庫這個軟體,名字中有個「庫」字,會讓人覺得它主要是為了存儲的。其實不然,資料庫實現的重要功能有兩條:計算、事務!也就是我們常說的 OLAP 和 OLTP,資料庫的存儲都是為這兩件事服務的,單純的存儲並不是資料庫的目標。

我們知道,SQL 是目前資料庫的主流語言。那麼,用 SQL 做這兩件事是不是很方便呢?

事務類功能主要解決數據在寫入和讀出時要保持的一致性,實現這件事的難度並不小,但對於應用程序的介面卻非常簡單,用於操縱資料庫讀寫的代碼也很簡單。如果假定目前關系資料庫的邏輯存儲模式是合理的(也就是用數據表和記錄來存儲數據,其合理性與否是另一個復雜問題,不在這里展開了),那麼 SQL 在描述事務類功能時沒什麼大問題,因為並不需要描述多復雜的動作,復雜性都在資料庫內部解決了。

但計算類功能卻不一樣了。

這里說的計算是個更廣泛的概念,並不只是簡單的加加減減,查找、關聯都可以看成是某種計算。

什麼樣的計算體系才算好呢?

還是兩條:寫著簡單、跑得快。

寫著簡單,很好理解,就是讓程序員很快能寫出來代碼來,這樣單位時間內可以完成更多的工作;跑得快就更容易理解,我們當然希望更短時間內獲得計算結果。

其實 SQL 中的 Q 就是查詢的意思,發明它的初衷主要是為了做查詢(也就是計算),這才是 SQL 的主要目標。然而,SQL 在描述計算任務時,卻很難說是很勝任的。

SQL為什麼不行

先看寫著簡單的問題。

SQL 寫出來很象英語,有些查詢可以當英語來讀和寫(網上多得很,就不舉例了),這應當算是滿足寫著簡單這一條了吧。

且慢!我們在教科書上看到的 SQL 經常只有兩三行,這些 SQL 確實算是寫著簡單的,但如果我們嘗試一些稍復雜化的問題呢?

這是一個其實還不算很復雜的例子:計算一支股票最長連續上漲了多少天?用 SQL 寫出來是這樣的:


  • selectmax(consecutive_day)from(selectcount(*) (consecutive_dayfrom(selectsum(rise_mark) over(orderbytrade_date) days_no_gainfrom(selecttrade_date,case when closing_price>lag(closing_price) over(order by trade_date)then 0 else 1 END rise_markfrom stock_price ) )group by days\_no\_gain)

  • 這個語句的工作原理就不解釋了,反正有點繞,同學們可以自己嘗試一下。

    這是潤乾公司的招聘考題,通過率不足 20%;因為太難,後來被改成另一種方式:把 SQL 語句寫出來讓應聘者解釋它在算什麼,通過率依然不高。

    這說明什麼?說明情況稍有復雜,SQL 就變得即難懂又難寫!

    再看跑得快的問題,還是一個經常拿出來的簡單例子:1 億條數據中取前 10 名。這個任務用 SQL 寫出來並不復雜:

  • SELECTTOP 10x FROMT ORDERBYx DESC

  • 但是,這個語句對應的執行邏輯是先對所有數據進行大排序,然後再取出前 10 個,後面的不要了。大家知道,排序是一個很慢的動作,會多次遍歷數據,如果數據量大到內存裝不下,那還需要外存做緩存,性能還會進一步急劇下降。如果嚴格按這句 SQL 體現的邏輯去執行,這個運算無論如何是跑不快的。然而,很多程序員都知道這個運算並不需要大排序,也用不著外存緩存,一次遍歷用一點點內存就可以完成,也就是存在更高性能的演算法。可惜的是,用 SQL 卻寫不出這樣的演算法,只能寄希望於資料庫的優化器足夠聰明,能把這句 SQL 轉換成高性能演算法執行,但情況復雜時資料庫的優化器也未必靠譜。

    看樣子,SQL 在這兩方面做得都不夠好。這兩個並不復雜的問題都是這樣,現實中數千行的 SQL 代碼中,這種難寫且跑不快的情況比比皆是。

    為什麼 SQL 不行呢?

    要回答這個問題,我們要分析一下用程序代碼實現計算到底是在干什麼。

    本質上講,編寫程序的過程,就是把解決問題的思路翻譯成計算機可執行的精確化形式語言的過程。舉例來說,就象小學生解應用題,分析問題想出解法之後,還要列出四則運算表達式。用程序計算也是一樣,不僅要想出解決問題的方法,還要把解法翻譯成計算機能理解執行的動作才算完成。

    用於描述計算方法的形式語言,其核心在於所採用的代數體系。所謂代數體系,簡單說就是一些數據類型和其上的運算規則,比如小學學到的算術,就是整數和加減乘除運算。有了這套東西,我們就能把想做的運算用這個代數體系約定的符號寫出來,也就是代碼,然後計算機就可以執行了。

    如果這個代數體系設計時考慮不周到,提供的數據類型和運算不方便,那就會導致描述演算法非常困難。這時候會發生一個怪現象:翻譯解法到代碼的難度遠遠超過解決問題本身。

    舉個例子,我們從小學慣用阿拉伯數字做日常計算,做加減乘除都很方便,所有人都天經地義認為數值運算就該是這樣的。其實未必!估計很多人都知道還有一種叫做羅馬數字的東西,你知道用羅馬數字該怎麼做加減乘除嗎?古羅馬人又是如何上街買菜的?

    代碼難寫很大程度是代數的問題。

    再看跑不快的原因。

    軟體沒辦法改變硬體的性能,CPU 和硬碟該多快就是多快。不過,我們可以設計出低復雜度的演算法,也就是計算量更小的演算法,這樣計算機執行的動作變少,自然也就會快了。但是,光想出演算法還不夠,還要把這個演算法用某種形式語言寫得出來才行,否則計算機不會執行。而且,寫起來還要比較簡單,都要寫很長很麻煩,也沒有人會去用。所以呢,對於程序來講,跑得快和寫著簡單其實是同一個問題,背後還是這個形式語言採用的代數的問題。如果這個代數不好,就會導致高性能演算法很難實現甚至實現不了,也就沒辦法跑得快了。就象上面說的,用 SQL 寫不出我們期望的小內存單次遍歷演算法,能不能跑得快就只能寄希望於優化器。

    我們再做個類比:

    上過小學的同學大概都知道高斯計算 1+2+3+…+100 的小故事。普通人就是一步步地硬加 100 次,高斯小朋友很聰明,發現 1+100=101、2+99=101、…、50+51=101,結果是 50 乘 101,很快算完回家午飯了。

    聽過這個故事,我們都會感慨高斯很聰明,能想到這么巧妙的辦法,即簡單又迅速。這沒有錯,但是,大家容易忽略一點:在高斯的時代,人類的算術體系(也是一個代數)中已經有了乘法!象前面所說,我們從小學習四則運算,會覺得乘法是理所當然的,然而並不是!乘法是後於加法被發明出來的。如果高斯的年代還沒有乘法,即使有聰明的高斯,也沒辦法快速解決這個問題。

    目前主流資料庫是關系資料庫,之所以這么叫,是因為它的數學基礎被稱為關系代數,SQL 也就是關系代數理論上發展出來的形式語言。

    現在我們能回答,為什麼 SQL 在期望的兩個方面做得不夠好?問題出在關系代數上,關系代數就像一個只有加法還沒發明乘法的算術體系,很多事做不好是必然的。

    關系代數已經發明五十年了,五十年前的應用需求以及硬體環境,和今天比的差異是很巨大了,繼續延用五十年前的理論來解決今天的問題,聽著就感覺太陳舊了?然而現實就是這樣,由於存量用戶太多,而且也還沒有成熟的新技術出現,基於關系代數的 SQL,今天仍然是最重要的資料庫語言。雖然這幾十年來也有一些改進完善,但根子並沒有變,面對當代的復雜需求和硬體環境,SQL 不勝任也是情理之中的事。

    而且,不幸的是,這個問題是理論上的,在工程上無論如何優化也無濟於事,只能有限改善,不能根除。不過,絕大部分的資料庫開發者並不會想到這一層,或者說為了照顧存量用戶的兼容性,也沒打算想到這一層。於是,主流資料庫界一直在這個圈圈裡打轉轉。

    SPL為什麼能行

    那麼該怎樣讓計算寫著更簡單、跑得更快呢?

    發明新的代數!有「乘法」的代數。在其基礎上再設計新的語言。

    這就是 SPL 的由來。它的理論基礎不再是關系代數,稱為離散數據集。基於這個新代數設計的形式語言,起名為SPL(Structured Process Language)。

    SPL 針對 SQL 的不足(更確切地說法是,離散數據集針對關系代數的各種缺陷)進行了革新。SPL 重新定義了並擴展許多結構化數據中的運算,增加了離散性、強化了有序計算、實現了徹底的集合化、支持對象引用、提倡分步運算。

    限於篇幅,這里不能介紹 SPL(離散數據集)的全貌。我們在這里列舉 SPL(離散數據集)針對 SQL(關系代數)的部分差異化改進:

    游離記錄

    離散數據集中的記錄是一種基本數據類型,它可以不依賴於數據表而獨立存在。數據表是記錄構成的集合,而構成某個數據表的記錄還可以用於構成其它數據表。比如過濾運算就是用原數據表中滿足條件的記錄構成新數據表,這樣,無論空間佔用還是運算性能都更有優勢。

    關系代數沒有可運算的數據類型來表示記錄,單記錄實際上是只有一行的數據表,不同數據表中的記錄也不能共享。比如,過濾運算時會復制出新記錄來構成新數據表,空間和時間成本都變大。

    特別地,因為有游離記錄,離散數據集允許記錄的欄位取值是某個記錄,這樣可以更方便地實現外鍵連接。

    有序性

    關系代數是基於無序集合設計的,集合成員沒有序號的概念,也沒有提供定位計算以及相鄰引用的機制。SQL 實踐時在工程上做了一些局部完善,使得現代 SQL 能方便地進行一部分有序運算。

    離散數據集中的集合是有序的,集合成員都有序號的概念,可以用序號訪問成員,並定義了定位運算以返回成員在集合中的序號。離散數據集提供了符號以在集合運算中實現相鄰引用,並支持針對集合中某個序號位置進行計算。

    有序運算很常見,卻一直是 SQL 的困難問題,即使在有了窗口函數後仍然很繁瑣。SPL 則大大改善了這個局面,前面那個股票上漲的例子就能說明問題。

    離散性與集合化

    關系代數中定義了豐富的集合運算,即能將集合作為整體參加運算,比如聚合、分組等。這是 SQL 比 Java 等高級語言更為方便的地方。

    但關系代數的離散性非常差,沒有游離記錄。而 Java 等高級語言在這方面則沒有問題。

    離散數據集則相當於將離散性和集合化結合起來了,既有集合數據類型及相關的運算,也有集合成員游離在集合之外單獨運算或再組成其它集合。可以說 SPL 集中了 SQL 和 Java 兩者的優勢。

    有序運算是典型的離散性與集合化的結合場景。次序的概念只有在集合中才有意義,單個成員無所謂次序,這里體現了集合化;而有序計算又需要針對某個成員及其相鄰成員進行計算,需要離散性。

    在離散性的支持下才能獲得更徹底的集合化,才能解決諸如有序計算類型的問題。

    離散數據集是即有離散性又有集合化的代數體系,關系代數只有集合化。

    分組理解

    分組運算的本意是將一個大集合按某種規則拆成若干個子集合,關系代數中沒有數據類型能夠表示集合的集合,於是強迫在分組後做聚合運算。

    離散數據集中允許集合的集合,可以表示合理的分組運算結果,分組和分組後的聚合被拆分成相互獨立的兩步運算,這樣可以針對分組子集再進行更復雜的運算。

    關系代數中只有一種等值分組,即按分組鍵值劃分集合,等值分組是個完全劃分。

    離散數據集認為任何拆分大集合的方法都是分組運算,除了常規的等值分組外,還提供了與有序性結合的有序分組,以及可能得到不完全劃分結果的對位分組。

    聚合理解

    關系代數中沒有顯式的集合數據類型,聚合計算的結果都是單值,分組後的聚合運算也是這樣,只有 SUM、COUNT、MAX、MIN 等幾種。特別地,關系代數無法把 TOPN 運算看成是聚合,針對全集的 TOPN 只能在輸出結果集時排序後取前 N 條,而針對分組子集則很難做到 TOPN,需要轉變思路拼出序號才能完成。

    離散數據集提倡普遍集合,聚合運算的結果不一定是單值,仍然可能是個集合。在離散數據集中,TOPN 運算和 SUM、COUNT 這些是地位等同的,即可以針對全集也可以針對分組子集。

    SPL 把 TOPN 理解成聚合運算後,在工程實現時還可以避免全量數據的排序,從而獲得高性能。而 SQL 的 TOPN 總是伴隨 ORDER BY 動作,理論上需要大排序才能實現,需要寄希望於資料庫在工程實現時做優化。

    有序支持的高性能

    離散數據集特別強調有序集合,利用有序的特徵可以實施很多高性能演算法。這是基於無序集合的關系代數無能為力的,只能寄希望於工程上的優化。

    下面是部分利用有序特徵後可以實施的低復雜度運算:

    1) 數據表對主鍵有序,相當於天然有一個索引。對鍵欄位的過濾經常可以快速定位,以減少外存遍歷量。隨機按鍵值取數時也可以用二分法定位,在同時針對多個鍵值取數時還能重復利用索引信息。

    2) 通常的分組運算是用 HASH 演算法實現的,如果我們確定地知道數據對分組鍵值有序,則可以只做相鄰對比,避免計算 HASH 值,也不會有 HASH 沖突的問題,而且非常容易並行。

    3) 數據表對鍵有序,兩個大表之間對位連接可以執行更高性能的歸並演算法,只要對數據遍歷一次,不必緩存,對內存佔用很小;而傳統的 HASH 值分堆方法不僅比較復雜度高,需要較大內存並做外部緩存,還可能因 HASH 函數不當而造成二次 HASH 再緩存。

    4) 大表作為外鍵表的連接。事實表小時,可以利用外鍵表有序,快速從中取出關聯鍵值對應的數據實現連接,不需要做 HASH 分堆動作。事實表也很大時,可以將外鍵表用分位點分成多個邏輯段,再將事實表按邏輯段進行分堆,這樣只需要對一個表做分堆,而且分堆過程中不會出現 HASH 分堆時的可能出現的二次分堆,計算復雜度能大幅下降。

    其中 3 和 4 利用了離散數據集對連接運算的改造,如果仍然延用關系代數的定義(可能產生多對多),則很難實現這種低復雜的演算法。

    除了理論上的差異, SPL 還有許多工程層面的優勢,比如更易於編寫並行代碼、大內存預關聯提高外鍵連接性能等、特有的列存機制以支持隨意分段並行等。

    再把前面的問題用 SPL 重寫一遍有個直接感受。

    一支股票最長連續上漲多少天:

  • stock_price.sort(trade_date).group@o(closing_price

  • 計算思路和前面的 SQL 相同,但因為引入了有序性後,表達起來容易多了,不再繞了。

    1 億條數據中取前 10 名:

  • T.groups(;top(-10,x))

  • SPL 有更豐富的集合數據類型,容易描述單次遍歷上實施簡單聚合的高效演算法,不涉及大排序動作。

    這里還有更多 SPL 代碼以體現其思路及大數據演算法:

    重磅!開源SPL交流群成立了

    簡單好用的SPL開源啦!

    為了給感興趣的小夥伴們提供一個相互交流的平台,

    特地開通了交流群(群完全免費,不廣告不賣課)

    需要進群的朋友,可長按掃描下方二維碼

Ⅵ 資料庫原理問答題

1、DBS由哪幾個部分組成?

答:DBS由四部分組成:資料庫、硬體、軟體、資料庫管理員。

2.資料庫的並發操作會帶來哪些問題?

答:資料庫的並發操作會帶來三類問題:丟失更新問題;不一致分析問題和「臟數據」的讀出。

3.簡述採用E-R圖方法的資料庫概念設計的過程。

答:E-R模型的圖示法:(1)實體集表示法; (2)屬性表法; (3)聯系表示法。

層次模型的基本結構是樹形結構,具有以下特點:

(1)每棵樹有且僅有一個無雙親結點,稱為根;

(2)樹中除根外所有結點有且僅有一個雙親。

從圖論上看,網狀模型是一個不加任何條件限制的無向圖。

關系模型採用二維表來表示,簡稱表,由表框架及表的元組組成。一個二維表就是一個關系。

在二維表中凡能唯一標識元組的最小屬性稱為鍵或碼。從所有侯選健中選取一個作為用戶使用的鍵稱主鍵。表A中的某屬性是某表B的鍵,則稱該屬性集為A的外鍵或外碼。

關系中的數據約束:

(1)實體完整性約束:約束關系的主鍵中屬性值不能為空值;

(2)參照完全性約束:是關系之間的基本約束;

(3)用戶定義的完整性約束:它反映了具體應用中數據的語義要求。

4.簡述客戶/伺服器式DBS的一般結構。此時資料庫應用的功能如何劃分?

答:DBS :資料庫系統(Database System),DBS是實現有組織地、動態地存儲大量關聯數據,方便多用戶訪問的計算機軟體、硬體和數據資源組成的系統,即採用了資料庫技術的計算機系統。

Ⅶ 跪求!緊急!資料庫原理及應用的試題

一:
(1)select 書名,定價 from 圖書 where 定價 = (select max(定價) from 圖書)
(2)查詢存儲有書名為資料庫系統基礎的圖書管的管名.
二:
(1)select S#,SNAME from S where AGE>22
(2)select CNAME,TEACHER from C where c# in ( select c# from SC where S# = 10001)
(3)select SNAME from S where sex='女' and s# in (select S# from SC where C# in (select C# fron C where teacher = '王老師'))
不能實現的話,留言

熱點內容
sql數據結構 發布:2024-11-28 16:32:13 瀏覽:713
scratch編程自學 發布:2024-11-28 16:09:15 瀏覽:825
蘇州cnc編程學徒招聘 發布:2024-11-28 16:07:44 瀏覽:610
linux中怎麼搭建http伺服器配置 發布:2024-11-28 16:04:17 瀏覽:291
緩存expires 發布:2024-11-28 16:02:27 瀏覽:383
圖像的jpeg壓縮matlab 發布:2024-11-28 16:02:05 瀏覽:940
androidcompilewith 發布:2024-11-28 16:00:19 瀏覽:435
訪問跳轉 發布:2024-11-28 15:54:44 瀏覽:698
演算法對算 發布:2024-11-28 15:41:38 瀏覽:4
稱重系統界面如何找配置項 發布:2024-11-28 15:28:29 瀏覽:570