第一篇:中職數(shù)據(jù)庫(kù)練習(xí)題
A.USE D:ZGZGDA.DBF COPY TO D:ZGZGDA3 B.USE D:ZGZGDA.DBF COPY STRUTURE TO D:ZGZGDA3 C.USE D:ZGZGDA.DBF COPY STRUCTURE TO D:ZGZGDA3 D.USE D:ZGZGDA3.DBF COPY STRUCTURE TO D:ZGZGDA 18.下列命令中,創(chuàng)建數(shù)據(jù)庫(kù)文件ST.DBC的命令是()A.CREATE B.CREATE ST C.OPEN DATABASE ST D.CREATE DATABASE ST 19.打開數(shù)據(jù)庫(kù)XH.DBC的正確命令是()A.OPEN DATABASE XH B.USE XH C.USE DATABASE XH D.OPEN XH 20.下列方法中不能關(guān)閉數(shù)據(jù)庫(kù)的是()A.在項(xiàng)目管理器中選擇某個(gè)數(shù)據(jù)庫(kù),再單擊”關(guān)閉”按鈕B.關(guān)閉數(shù)據(jù)庫(kù)設(shè)計(jì)器 C.執(zhí)行CLOSE DATABASE命令 D.執(zhí)行CLOSE ALL 命令 21.下列方法中不能創(chuàng)建數(shù)據(jù)庫(kù)表的是()A.在項(xiàng)目管理器中選擇”數(shù)據(jù)庫(kù)”選項(xiàng)下的”表”選項(xiàng),再單擊”新建”按鈕新建表
B.先打開一個(gè)數(shù)據(jù)庫(kù),再單擊”常用”工具欄上的”新建”按鈕創(chuàng)建表 C.先打開一個(gè)數(shù)據(jù)庫(kù),再使用CREATE命令創(chuàng)建表 D.數(shù)據(jù)庫(kù)已經(jīng)預(yù)先打開,直接利用CREATE命令創(chuàng)建表 22.下列方法中不能把自由表添加到數(shù)據(jù)庫(kù)中的是()A.在項(xiàng)目管理器中選擇某個(gè)”數(shù)據(jù)庫(kù)”選項(xiàng)下”表”的選項(xiàng),再單擊”添加”按鈕
B.先打開數(shù)據(jù)庫(kù)設(shè)計(jì)器,再選擇”數(shù)據(jù)庫(kù)”—“添加表”命令 C.使用”ADD TABLE<自由表名>”格式的命令 D.使用”ADD DATABASE<自由表名>”格式的命令 23.下列方法中不能把數(shù)據(jù)庫(kù)表移出數(shù)據(jù)庫(kù)的是()A.在項(xiàng)目管理器中選擇某個(gè)數(shù)據(jù)庫(kù)表,再單擊”移去”按鈕.B.先打開數(shù)據(jù)庫(kù)設(shè)計(jì)器選擇某個(gè)數(shù)據(jù)庫(kù)表,再選擇”數(shù)據(jù)庫(kù)”—“移去”命令 C.使用”REMOVE TABLE<數(shù)據(jù)庫(kù)表名>”格式的命令 D.使用”REMOVE DATABASE<數(shù)據(jù)庫(kù)表名>”格式的命令 24.下列命令中,將數(shù)據(jù)庫(kù)表移出數(shù)據(jù)庫(kù)的命令是()
A.CLOSE DATABASE B.REMOVE TABLE C.FREE TABLE D.RELEASE TABLE 25.下列關(guān)于表的敘述中,正確的是()
A.在數(shù)據(jù)庫(kù)和自由表中,都能給字段定義有效性規(guī)則和默認(rèn)值 B.設(shè)置字段的有效性規(guī)則可以檢驗(yàn)兩個(gè)字段的數(shù)據(jù)是否滿足條件 C.設(shè)置字段的有效性規(guī)則可以檢驗(yàn)輸入數(shù)據(jù)的正確性 D.設(shè)置字段的默認(rèn)值可以指定編輯數(shù)據(jù)時(shí)字段的默認(rèn)值
26.要把當(dāng)前表的記錄指針移到
B.一個(gè)工作區(qū)中可以同時(shí)打開多個(gè)表
C.一個(gè)工作區(qū)中可以打開多個(gè)表,但任一時(shí)刻只能打開一個(gè)表 D.使用OPEN命令可以在指定工作區(qū)中打開表 32.下列命令中,錯(cuò)誤的是()A.USE XSDA IN 0 B.USE XSDA2 IN 5 C.USE IN 5 D.USE IN 0 33.執(zhí)行下面的一組命令后,選擇ZGDA.DBF所在工作區(qū)的錯(cuò)誤命令是()CLOSE ALL USE GZ0501 IN 0 USE ZGDA IN 0 A.SELECT ZGDA B.SELECT 0 C.SELECT 2 D.SELECT B 34.要使用分屏顯示的方式顯示當(dāng)前表的結(jié)構(gòu),可以使用的命令是()A.LIST STRUCTURE B.DISPLAY STRUCTURE C.LIST STRUCTURE IN 1 D.DISPLAY STRUCTURE IN 1 35.修改表結(jié)構(gòu)的命令是()A.MODIFY STRUCTURE B.CREATE STRUCTURE C.LIST STRUCTURE D.DISPLAY STRUCTURE 36.為S.DBF添加字段有效性規(guī)則:職工號(hào)開頭的3個(gè)字符是110.正確的SQL命令是()A.CHANGE TABLE 教師 ALTER 職工號(hào) SET CHECKLEFT(職工號(hào),3)=”110” B.ALTER TABLE 教師 ALTER 職工號(hào) SET CHECKLEFT(職工號(hào),3)=”110” C.ALTER TABLE 教師 ALTER 職工號(hào) CHECK LEFT(職工號(hào),3)=”110” D..CHANGE TABLE 教師 ALTER 職工號(hào)
SET CHECK OCCURE(職工號(hào),3)=”110”
37.分屏顯示數(shù)據(jù)的命令是()A.LIST B.LIST STRUCTURE C.DISPLAY D.DISPLAY STRUCTURE 38.顯示表結(jié)構(gòu)的命令是()A.MODIFY STRUCTURE B.LIST C.DISPLAY STRUCTURE D.DISPLAY 39.打開瀏覽窗口瀏覽編輯數(shù)據(jù),錯(cuò)誤的操作是()A.在項(xiàng)目管理器中,先選擇一個(gè)表,再單擊”瀏覽”按鈕 B.在項(xiàng)目管理器中,先選擇一個(gè)表,再單擊”預(yù)覽”按鈕 C.先打開一個(gè)表,再選擇”顯示”—“瀏覽”命令
D.先在數(shù)據(jù)庫(kù)設(shè)計(jì)器中選擇一個(gè)表,再選擇”數(shù)據(jù)庫(kù)”—“瀏覽”命令 40.下列命令中,沒有顯示數(shù)據(jù)功能的是()A.LIST B.DISPLAY C.BROWSE D.REPLACE 41.下列命令中,沒有編輯數(shù)據(jù)功能的是()A.EDIT B.LIST C.CHANGE D.BROWSE
42.將當(dāng)前表中趙國(guó)強(qiáng)的基本工資增加200元的命令是()A.CHANGE ALL 基本工資 WITH 基本工資 +200 B.REPLACE ALL 基本工資 WITH 基本工資 +200
C.CHANGE 基本工資 WITH 基本工資 +200 WHERE 姓名=”趙國(guó)強(qiáng)” D.REPLACE 基本工資 WITH 基本工資 +200 WHERE 姓名=”趙國(guó)強(qiáng)” 43.以下方法中不能追加記錄的是()
A.選擇”顯示”—“追回方式”命令 B.選擇”表”—“追加新記錄”命令 C.選擇”表”—“追回記錄”命令 D.選擇”文件”—“導(dǎo)出”命令 44.下面關(guān)于追回記錄的敘述中,錯(cuò)誤的是()A.APPEND命令可以在指定表的末尾追加記錄
B.APPEND BLANK 命令可以在當(dāng)前表的末尾追加一條空記錄 C.APPEND 命令可以在當(dāng)前表的末尾追加記錄
D.APPEND FROM 命令可以把其他表文件中的數(shù)據(jù)追加到當(dāng)前表文件中 45.在當(dāng)前表的末尾追回一條空記錄的命令是()
A.APPEND B.BROW BLANK C.APPEND BLANK D.APPEND FROM BLANK 46.邏輯刪除記錄可以使用的方法是()
A.選擇”表”—“徹底刪除”命令B.選擇”表”—“刪除記錄”命令 C.選擇”編輯”—“剪切”命令 D.選擇”編輯”—“清除”命令 47.下列關(guān)于索引的敘述中,錯(cuò)誤的是()
A.索引改變記錄的邏輯順序 B.索引改變記錄的物理順序 C.一個(gè)表可以建立多個(gè)索引 D.一個(gè)表可以建立多個(gè)惟一索引 48.在指定字段或表達(dá)式中允許出現(xiàn)重復(fù)字段的索引是()A.候選索引和主索引 B.普通索引和惟一索引 C.候選索引和惟一索引D.普通索引和候選索引
49.VFP的參照完整性規(guī)則不包括()
A.更新規(guī)則 B.刪除規(guī)則 C.查詢規(guī)則 D.插入規(guī)則 50.可以設(shè)置參照完整性的兩個(gè)表是()
A.同一個(gè)數(shù)據(jù)庫(kù)中的兩個(gè)表 B.不同數(shù)據(jù)庫(kù)中的兩個(gè)表 C.兩個(gè)自由表D.一個(gè)數(shù)據(jù)庫(kù)表和一個(gè)自由表 51.數(shù)據(jù)庫(kù)系統(tǒng)的核心是()
A.?dāng)?shù)據(jù)庫(kù) B.操作系統(tǒng) C.數(shù)據(jù)庫(kù)管理系統(tǒng) D.數(shù)據(jù)文件
52.設(shè)有部門和職員兩個(gè)實(shí)體,每個(gè)職員只能屬于一個(gè)部門,且一個(gè)部門可以有多名職員,則部門與職員實(shí)體之間的聯(lián)系類型是()A.一對(duì)一的 B.一對(duì)多的.C.多對(duì)一的 D.多對(duì)多的.53.用樹形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的數(shù)據(jù)模型稱為()A.關(guān)系模型 B.網(wǎng)狀模型 C.層次模型 D.以上3個(gè)都是 54.用二維表結(jié)構(gòu)表示實(shí)體及其之間聯(lián)系的數(shù)據(jù)模型稱為()A.表格模型 B.層次模型 C.網(wǎng)狀模型 D.關(guān)系模型 55.關(guān)系的3種基本運(yùn)算中不包括的是()A.聯(lián)接 B.排序 C.選擇 D.投影 56.關(guān)系運(yùn)算中的投影運(yùn)算是()
A.從關(guān)系中找出滿足給定條件的元組的操作 B.從關(guān)系中選擇若干個(gè)屬性組成新的關(guān)系的操作 C.從關(guān)系中選擇滿足給定條件的屬性的操作 D.A和B都對(duì)
57.從關(guān)系模式中指定若干個(gè)屬性組成新的關(guān)系的運(yùn)算稱為()A.聯(lián)接 B.投影 C.選擇 D.排序 58.VFP是()
A.層次數(shù)據(jù)庫(kù)管理系統(tǒng) B.網(wǎng)狀數(shù)據(jù)庫(kù)管理系統(tǒng) C.關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)D.表格數(shù)據(jù)庫(kù)管理關(guān)系 59.VFP支持的數(shù)據(jù)模型是()
A.層次數(shù)據(jù)模型 B.關(guān)系數(shù)據(jù)模型 C.網(wǎng)狀數(shù)據(jù)模型 D.樹狀數(shù)據(jù)模型 60.VFP關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)能夠?qū)崿F(xiàn)的3種基本關(guān)系運(yùn)算是()
A.索引.排序.查詢 B.錄入.編輯.替換 C.選擇.投影.聯(lián)接 D.顯示.統(tǒng)計(jì).復(fù)制
二、填空題(每空1分,共20分)
1.在VFP中,字段類型指定該字段,字段寬度指定該字段
小數(shù)位數(shù)指定。
2.VFP的一個(gè)表最多允有 個(gè)字段,字段名只能包含英文字母、、或。
3.字符型字段的最大寬度為 個(gè)字節(jié),數(shù)值型字段的最大寬度為 位,日期型字段的寬度為 個(gè)字節(jié),邏輯型字段的寬度為 個(gè)字節(jié),備注型字段的寬度為 個(gè)字節(jié),通用型字段的寬度為 個(gè)字節(jié)。4.在VFP中最多可以打開 個(gè)表。
5.索引的4種類型的是、、、6.選擇 菜單中的 命令,可以打開“工作區(qū)屬性”對(duì)話框指定當(dāng)前索引。
三.寫出以下操作的命令(每小題2分,共10分)
1、復(fù)制ZG.DBF表的結(jié)構(gòu),新建DA_3.DBF.2.在D:ZG文件夾中創(chuàng)建一個(gè)文件名為ZG.DBF的表 3.把記錄指針移到記錄號(hào)為5的記錄上。
4.選擇當(dāng)前沒有使用的工作區(qū)號(hào)最小的工作區(qū)為當(dāng)前工作區(qū)。5.關(guān)閉當(dāng)前工作區(qū)中打開的表。四.操作題(共10分)
1.按編號(hào)字段為DA_1.DBF和DA_2.DBF表建立一對(duì)一的關(guān)系。(用語(yǔ)句命令來(lái)完成)
第二篇:數(shù)據(jù)庫(kù)練習(xí)題.
'選擇題(40分)
1. VFP中下列表達(dá)式中寫法錯(cuò)誤的是
A)″總分″+[90]
B)″AB″==″AB″
C)″總分″+ 90
D)″x″<>″y″
2.數(shù)據(jù)庫(kù)文件工資.DBF共有10條記錄,當(dāng)前記錄號(hào)為3, 用SUM命令計(jì)算工資總和,如果不給出范圍短句,那么命令
A)計(jì)算后5條記錄工資值之和
B)計(jì)算后6條記錄工資值之和
C)只計(jì)算當(dāng)前記錄工資值
D)計(jì)算全部記錄工資值之和
3.要為當(dāng)前表所有職工增加100元工資應(yīng)該使用命令
A)CHANGE工資WITH工資+100
B)REPLACE工資WITH工資+100
C)CHANGE ALL工資WITH工資+100
D)REPLACE ALL工資WITH工資+100
4.文件CGE.MNX是一個(gè)
A)表單文件
B)菜單文件
C)項(xiàng)目文件
D)報(bào)表文件
5.Visual FoxPro關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)能實(shí)現(xiàn)的3種基本關(guān)系運(yùn)算是
A)索引、排序、查找
B)建庫(kù)、錄入、排序
C)選擇、投影、聯(lián)接
D)顯示、統(tǒng)計(jì)、復(fù)制
6.使用數(shù)據(jù)庫(kù)技術(shù)進(jìn)行人事檔案管理,是屬于計(jì)算機(jī)的A)科學(xué)計(jì)算應(yīng)用
B)過(guò)程控制應(yīng)用
C)數(shù)據(jù)處理應(yīng)用
D)輔助工程應(yīng)用
7.邏輯型字段的寬度固定為
A)8
B)1
C)4
D)10
8.當(dāng)前表中有20條記錄,當(dāng)前記錄號(hào)是5,Display next 3命令將
A)顯示當(dāng)前記錄
B)顯示第三條記錄
C)顯示第6到第8條記錄
D)顯示第5到第7條記錄
9.備注型字段的寬度固定為
A)8
B)1
C)4
D)10
10.執(zhí)行 ?STR(109.87,7,3)后,屏幕顯示的是
A)109.87
B)″109.87″
C)109.870
D)″109.870″
11.在Visual FoxPro中,打開表命令是
A)OPEN TABLE<表名>
B)USE <表名>
C)USE TABLE<表名>
D)OPEN<表名>
12.假定系統(tǒng)日期是1998年12月20日,有如下命令:MJ=MOD(YEAR(DATE()),100)執(zhí)行該命令后,MJ的值是
A)1998
B)98
C)981220
D)1220
13.在以下四組函數(shù)運(yùn)算中,結(jié)果相同的是
A)LEFT(″Visual FoxPro″,4)與SUBSTR(″Visual FoxPro″,1,4)
B)YEAR(DATE())與SUBSTR(DTOC(DATE()),7,2)
C)lEN(″that″)與 lEN(″that ″)
D)假定A=″that ″,B=″is a menu″,A-B與A+B
14.在VFP中,執(zhí)行STORE DTOC(DATE()+10)TO B后,變量B的類型為
A)日期型
B)數(shù)據(jù)型
C)備注型
D)字符型
15.如果要?jiǎng)?chuàng)建一個(gè)3級(jí)數(shù)據(jù)分組報(bào)表,第1個(gè)分組表達(dá)式是“部門”,第2個(gè)分組表達(dá)式
是“性別”,第3個(gè)分組表達(dá)式是“基本工資”,則當(dāng)前索引的索引關(guān)鍵字表達(dá)式應(yīng)該是
A)部門+性別+基本工資
B)部門+性別+STR(基本工資)
C)性別+部門+STR(基本工資)
D)STR(基本工資)+性別+部門
16.數(shù)據(jù)表文件CJ.DBF已經(jīng)打開,共有10條記錄,按關(guān)鍵字XM排序,執(zhí)行命令SORT ON XM TO CJ后,屏幕將顯示
A)10條記錄排序完成B)CJ.DBF已存在,覆蓋它嗎(Y/N)
C)文件在使用
D)出錯(cuò)信息
17.物理刪除記錄可用兩條命令分兩步來(lái)完成,這兩個(gè)命令分別為
A)PACK和ZAP
B)PACK和RECALL
C)DELETE和PACK
D)DELETE和RECALL
18.在VFP的幾種循環(huán)語(yǔ)句中,當(dāng)循環(huán)次數(shù)為常數(shù)時(shí),應(yīng)選用的語(yǔ)句是
A)DO WHILE
B)SCAN
C)LOOP
D)FOR
19.關(guān)于數(shù)據(jù)庫(kù)表和自由表,下列說(shuō)法正確的是
A)數(shù)據(jù)庫(kù)表可以轉(zhuǎn)換為自由表,反之不能
B)自由表可以轉(zhuǎn)換為數(shù)據(jù)庫(kù)表,反之不能
C)兩者可以相互轉(zhuǎn)換
D)兩者不能相互轉(zhuǎn)換
20.視圖設(shè)計(jì)器中比查詢?cè)O(shè)計(jì)器多出的選項(xiàng)卡是
A)字段
B)排序依據(jù)
C)聯(lián)接
D)更新條件
按照要求完成如下命令,并將操作結(jié)果寫到對(duì)應(yīng)該題的空白處(30分)
請(qǐng)針對(duì)已知的zgda.dbf和zggz.dbf進(jìn)行操作,zgda.dbf 和zggz.dbf存放在d:data目錄下, 其中:
(實(shí)發(fā)工資=基本工資+獎(jiǎng)金+補(bǔ)貼+書報(bào)費(fèi)--公積金--水電費(fèi))
1. 對(duì)zgda.dbf按照職工姓名降序排序,排在第30位的職工姓名
sele 姓名 from zgda order by 姓名 desc張明
2. 統(tǒng)計(jì)銷售部工作的職工人數(shù)
sele count(*)from zgda where 部門=“銷售部”8
3. 統(tǒng)計(jì)技術(shù)部職工的公積金金額總計(jì) sele sum(公積金)from zggz,zgda wherezggz.職工號(hào)=zgda.職工號(hào)and 部門=“技術(shù)部”301.80
編寫一程序,求出S=1+2^2+3^3+?..+10^10。(17分)10405071317.00
s=0
for i = 1 to 10
s=s+i^i
endfor
?s
在d:data文件夾下有zgda.dbf和zggz.dbf表,請(qǐng)編寫并運(yùn)行符合下列要求的程序,并將該程序保存在d:data文件夾下:
設(shè)計(jì)一個(gè)名為form_TJ的表單,表單中有兩個(gè)命令按鈕、一個(gè)文本框,兩個(gè)命令按鈕的標(biāo)題分別為“統(tǒng)計(jì)”和“關(guān)閉”。
程序運(yùn)行時(shí),單擊“統(tǒng)計(jì)”按鈕完成下列操作:
根據(jù)zggz.dbf表計(jì)算所有職工的公積金的總和,并將結(jié)果顯示在文本框中;
單擊“關(guān)閉”按鈕,程序終止運(yùn)行。(13分)
1.新建表單
2.在表單上建立控件:兩個(gè)命令按鈕,一個(gè)文本框 3.兩個(gè)命令按鈕的標(biāo)題分別為“統(tǒng)計(jì)”和“關(guān)閉”。
4添加數(shù)據(jù)環(huán)境zggz.dbf
5雙擊“統(tǒng)計(jì)”,按鈕,輸入命令
sum 公積金 to a
thisform.text1.value=a
6雙擊關(guān)閉,輸入命令
thisform.release
7.保存
第三篇:數(shù)據(jù)庫(kù)安全性練習(xí)題和答案
數(shù)據(jù)庫(kù)安全性習(xí)題
一、選擇題
1.以下()不屬于實(shí)現(xiàn)數(shù)據(jù)庫(kù)系統(tǒng)安全性的主要技術(shù)和方法。
A.存取控制技術(shù) B.視圖技術(shù)
C.審計(jì)技術(shù) D.出入機(jī)房登記和加鎖
2. SQL中的視圖提高了數(shù)據(jù)庫(kù)系統(tǒng)的()。
A.完整性 B.并發(fā)控制
C.隔離性 D.安全性
3. SQL語(yǔ)言的GRANT和REVOKE語(yǔ)句主要是用來(lái)維護(hù)數(shù)據(jù)庫(kù)的()。
A.完整性 B.可靠性
C.安全性 D.一致性
4.在數(shù)據(jù)庫(kù)的安全性控制中,授權(quán)的數(shù)據(jù)對(duì)象的(),授權(quán)子系統(tǒng)就越靈活。
A.范圍越小 B.約束越細(xì)致
C.范圍越大 D.約束范圍大
三、簡(jiǎn)答題
1.什么是數(shù)據(jù)庫(kù)的安全性?
答: 數(shù)據(jù)庫(kù)的安全性是指保護(hù)數(shù)據(jù)庫(kù)以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。
2.數(shù)據(jù)庫(kù)安全性和計(jì)算機(jī)系統(tǒng)的安全性有什么關(guān)系?
答: 安全性問題不是數(shù)據(jù)庫(kù)系統(tǒng)所獨(dú)有的,所有計(jì)算機(jī)系統(tǒng)都有這個(gè)問題。只是在數(shù)據(jù)庫(kù)系統(tǒng)中大量數(shù)據(jù)集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出。
系統(tǒng)安全保護(hù)措施是否有效是數(shù)據(jù)庫(kù)系統(tǒng)的主要指標(biāo)之一。
數(shù)據(jù)庫(kù)的安全性和計(jì)算機(jī)系統(tǒng)的安全性,包括操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)的安全性是緊密聯(lián)系、相互支持的,3.試述實(shí)現(xiàn)數(shù)據(jù)庫(kù)安全性控制的常用方法和技術(shù)。
答: 實(shí)現(xiàn)數(shù)據(jù)庫(kù)安全性控制的常用方法和技術(shù)有:
1)用(戶標(biāo)識(shí)和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標(biāo)識(shí)自己的名字或身份。每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)進(jìn)行核對(duì),通過(guò)鑒定后才提供系統(tǒng)的使用權(quán)。
2)存取控制:通過(guò)用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問數(shù)據(jù)庫(kù),所有未被授權(quán)的人員無(wú)法存取數(shù)據(jù)。例如C2級(jí)中的自主存取控制(DAC),B1級(jí)中的強(qiáng)制存取控制(MAC);
3)視圖機(jī)制:為不同的用戶定義視圖,通過(guò)視圖機(jī)制把要保密的數(shù)據(jù)對(duì)無(wú)權(quán)存取的用戶隱藏起來(lái),從而自動(dòng)地對(duì)數(shù)據(jù)提供一定程度的安全保護(hù)。
4)審計(jì):建立審計(jì)日志,把用戶對(duì)數(shù)據(jù)庫(kù)的所有操作自動(dòng)記錄下來(lái)放入審計(jì)日志中,DBA可以利用審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫(kù)現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。
5)數(shù)據(jù)加密:對(duì)存儲(chǔ)和傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,從而使得不知道解密算法的人無(wú)法獲知數(shù)據(jù)的內(nèi)容。
4.什么是數(shù)據(jù)庫(kù)中的自主存取控制方法和強(qiáng)制存取控制方法?
答: 自主存取控制方法:定義各個(gè)用戶對(duì)不同數(shù)據(jù)對(duì)象的存取權(quán)限。當(dāng)用戶對(duì)數(shù)據(jù)庫(kù)訪問時(shí)首先檢查用戶的存取權(quán)限。防止不合法用戶對(duì)數(shù)據(jù)庫(kù)的存取。
強(qiáng)制存取控制方法:每一個(gè)數(shù)據(jù)對(duì)象被(強(qiáng)制地)標(biāo)以一定的密級(jí),每一個(gè)用戶也被(強(qiáng)制地)授予某一個(gè)級(jí)別的許可證。系統(tǒng)規(guī)定只有具有某一許可證級(jí)別的用戶才能存取某一個(gè)密級(jí)的數(shù)據(jù)對(duì)象。
*解析:自主存取控制中自主的含義是:用戶可以將自己擁有的存取權(quán)限“自主”地授予別人。即用戶具有一定的“自主”權(quán)。
5.SQL語(yǔ)言中提供了哪些數(shù)據(jù)控制(自主存取控制)的語(yǔ)句?請(qǐng)?jiān)嚺e幾例說(shuō)明它們的使用方法。
答:
SQL中 的自主存取控制是通過(guò)GRANT 語(yǔ)句和 REVOKE 語(yǔ)句來(lái)實(shí)現(xiàn)的。如:
GRANT SELECT,INSERT ON Student TO 王平WITH GRANT OPTION;
就將Student表的SELECT和INSERT權(quán)限授予了用戶王平,后面的“WITH GRANT OPTION”子句表示用戶王平同
時(shí)也獲得了“授權(quán)”的權(quán)限,即可以把得到的權(quán)限繼續(xù)授予其他用戶。
REVOKE INSERT ON Student FROM 王平CASCADE;
就將Student表 的INSERT權(quán)限從用戶王平處收回,選項(xiàng) CASCADE 表示,如果用戶王平將 Student 的 INSERT 權(quán)限又轉(zhuǎn)授給了其他用戶,那么這些權(quán)限也將從其他用戶處收回。
6.今有兩個(gè)關(guān)系模式:
職工(職工號(hào),姓名,年齡,職務(wù),工資,部門號(hào))
部門(部門號(hào),名稱,經(jīng)理名,地址,電話號(hào))
請(qǐng)用SQL的GRANT和REVOKE語(yǔ)句(加上視圖機(jī)制)完成以下授權(quán)定義或存取控制功能:
(a)用戶王明對(duì)兩個(gè)表有SELECT權(quán)力;
GRANT SELECT ON 職工,部門
TO 王明;
(b)用戶李勇對(duì)兩個(gè)表有INSERT和DELETE權(quán)力;
GRANT INSERT,DELETE ON 職工,部門 TO 李勇;
(c)*每個(gè)職工只對(duì)自己的記錄有SELECT權(quán)力;
GRANT SELECT ON 職工 WHEN USER()= NAME TO ALL;
這里假定系統(tǒng)的GRANT語(yǔ)句支持WHEN子句和USER()的使用。用戶將自己的名字作為ID。注意,不同的系統(tǒng)這些擴(kuò)展語(yǔ)句可能是不同的。讀者應(yīng)該了解你使用的DBMS產(chǎn)品的擴(kuò)展語(yǔ)句。
(d)用戶劉星對(duì)職工表有SELECT權(quán)力,對(duì)工資字段具有更新權(quán)力;
GRANT SELECT,UPDATE(工資)ON 職工
TO 劉星;
(e)用戶張新具有修改這兩個(gè)表的結(jié)構(gòu)的權(quán)力;
GRANT ALTER TABLE ON 職工,部門
TO 張新;
(f)用戶周平具有對(duì)兩個(gè)表所有權(quán)力(讀,插,改,刪數(shù)據(jù)),并具有給其他用戶授權(quán)的權(quán)力;
GRANT ALL PRIVILIGES ON 職工,部門 TO 周平WITH GRANT OPTION;
(g)用戶楊蘭具有從每個(gè)部門職工中SELECT最高工資,最低工資,平均工資的權(quán)力,他不能查看每個(gè)人的工資。
答:
首先建立一個(gè)視圖。然后對(duì)這個(gè)視圖定義楊蘭的存取權(quán)限。
CREATE VIEW 部門工資 AS
SELECT 部門.名稱,MAX(工資),MIN(工資),AVG(工資)
FROM 職工,部門
WHERE 職工.部門號(hào) = 部門.部門號(hào)
GROUP BY 職工.部門號(hào);
GRANT SELECT ON 部門工資 TO 楊蘭;
7.把習(xí)題8中(a)~(g)的每一種情況,撤銷各用戶所授予的權(quán)力。
答:
(a)
REVOKE SELECT ON 職工,部門
FROM 王明;
(b)
REVOKE INSERT,DELETE ON 職工,部門
FROM 李勇;
(c)
REOVKE SELECT ON 職工
WHEN USER()= NAME
FROM ALL;
這里假定用戶將自己的名字作為ID,且系統(tǒng)的REOVKE語(yǔ)句支持WHEN子句,系統(tǒng)也支持USER()的使用。
(d)
REVOKE SELECT,UPDATE ON 職工
FROM 劉星;
(e)
REVOKE ALTER TABLE ON 職工,部門
FROM 張新;
(f)
REVOKE ALL PRIVILIGES ON 職工,部門
FROM 周平;
(g)
REVOKE SELECT ON 部門工資
FROM 楊蘭;
DROP VIEW 部門工資;
8.為什么強(qiáng)制存取控制提供了更高級(jí)別的數(shù)據(jù)庫(kù)安全性?
答:
強(qiáng)制存取控制(MAC)是對(duì)數(shù)據(jù)本身進(jìn)行密級(jí)標(biāo)記,無(wú)論數(shù)據(jù)如何復(fù)制,標(biāo)記與數(shù)據(jù)是一個(gè)不可分的整體,只有符合密級(jí)標(biāo)記要求的用戶才可以操縱數(shù)據(jù),從而提供了更高級(jí)別的安全性。
9.理解并解釋MAC機(jī)制中主體、客體、敏感度標(biāo)記的含義。
答:
主體是系統(tǒng)中的活動(dòng)實(shí)體,既包括DBMS所管理的實(shí)際用戶,也包括代表用戶的各進(jìn)程。
客體是系統(tǒng)中的被動(dòng)實(shí)體,是受主體操縱的,包括文件、基表、索引、視圖等。
對(duì)于主體和客體,DBMS為它們每個(gè)實(shí)例(值)指派一個(gè)敏感度標(biāo)記(Label)。敏感度標(biāo)記被分成若干級(jí)別,例如絕密(Top Secret)、機(jī)密(Secret)、可信(Confidential)、公開(Public)等。主體的敏感度標(biāo)記稱為許可證級(jí)別(Clearance Level),客體的敏感度標(biāo)記稱為密級(jí)(Classification Level)。
10.什么是數(shù)據(jù)庫(kù)的審計(jì)功能,為什么要提供審計(jì)功能?
答:
審計(jì)功能是指DBMS的審計(jì)模塊在用戶對(duì)數(shù)據(jù)庫(kù)執(zhí)行操作的同時(shí)把所有操作自動(dòng)記錄到系統(tǒng)的審計(jì)日志中。
因?yàn)槿魏蜗到y(tǒng)的安全保護(hù)措施都不是完美無(wú)缺的,蓄意盜竊破壞數(shù)據(jù)的人總可能存在。利用數(shù)據(jù)庫(kù)的審計(jì)功能,DBA可以根據(jù)審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫(kù)現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。
11.統(tǒng)計(jì)數(shù)據(jù)庫(kù)中存在何種特殊的安全性問題?
答:
統(tǒng)計(jì)數(shù)據(jù)庫(kù)允許用戶查詢聚集類型的信息,如合計(jì)、平均值、最大值、最小值等,不允許查詢單個(gè)記錄信息。但是,人們可以從合法的查詢中推導(dǎo)出不合法的信息,即可能存在隱蔽的信息通道,這是統(tǒng)計(jì)數(shù)據(jù)庫(kù)要研究和解決的特殊的安全性問題。
第四篇:數(shù)據(jù)庫(kù)sql課后練習(xí)題及答案解析
先創(chuàng)建下面三個(gè)表:
(book表)
(borrow表)
(reader表)
1)找出姓李的讀者姓名(NAME)和所在單位(COMPANY)。
2)列出圖書庫(kù)中所有藏書的書名(BOOK_NAME)及出版單位(OUTPUT)。3)查找“高等教育出版社”的所有圖書名稱(BOOK_NAME)及單價(jià)(PRICE),結(jié)果按單價(jià)降序排序。
4)查找價(jià)格介于10元和20元之間的圖書種類(SORT),結(jié)果按出版單位(OUTPUT)和單價(jià)(PRICE)升序排序。
5)查找書名以”計(jì)算機(jī)”開頭的所有圖書和作者(WRITER)。
6)檢索同時(shí)借閱了總編號(hào)(BOOK_ID)為112266和449901兩本書的借書證號(hào)(READER_ID)。
##7)* 查找所有借了書的讀者的姓名(NAME)及所在單位(COMPANY)。8)* 找出李某所借所有圖書的書名及借書日期(BORROW_DATE)。
9)* 無(wú)重復(fù)地查詢2006年10月以后借書的讀者借書證號(hào)(READER_ID)、姓名和單位。
##10)* 找出借閱了
11)找出與”趙正義”在同一天借書的讀者姓名、所在單位及借書日期。12)查詢2006年7月以后沒有借書的讀者借書證號(hào)、姓名及單位。#13)求”科學(xué)出版社”圖書的最高單價(jià)、最低單價(jià)、平均單價(jià)。##14)* 求”信息系”當(dāng)前借閱圖書的讀者人次數(shù)。
#15)求出各個(gè)出版社圖書的最高價(jià)格、最低價(jià)格和總冊(cè)數(shù)。#16)分別找出各單位當(dāng)前借閱圖書的讀者人數(shù)及所在單位。
17)* 找出當(dāng)前至少借閱了2本圖書(大于等于2本)的讀者姓名及其所在單位。18)分別找出借書人次數(shù)多于1人次的單位及人次數(shù)。
19)找出藏書中各個(gè)出版單位的名稱、每個(gè)出版社的書籍的總冊(cè)數(shù)(每種可能有多冊(cè))、書的價(jià)值總額。
20)查詢經(jīng)濟(jì)系是否還清所有圖書。如果已經(jīng)還清,顯示該系所有讀者的姓名、所在單位和職稱。
附錄:建表語(yǔ)句
創(chuàng)建圖書管理庫(kù)的圖書、讀者和借閱三個(gè)基本表的表結(jié)構(gòu): 創(chuàng)建BOOK:(圖書表)
CREATE TABLE BOOK(BOOK_ID int, SORT VARCHAR(10), BOOK_NAME VARCHAR(50), WRITER VARCHAR(10), OUTPUT VARCHAR(50), PRICE int);
創(chuàng)建READER:(讀者表)
CREATE TABLE READER(READER_ID int, COMPANY VARCHAR(10), NAME VARCHAR(10), SEX VARCHAR(2), GRADE VARCHAR(10), ADDR VARCHAR(50));
創(chuàng)建BORROW:(借閱表)
CREATE TABLE BORROW(READER_ID int, BOOK_ID int, BORROW_DATE datetime)
插入數(shù)據(jù): BOOK表: insert into BOOK values(445501,'TP3/12','數(shù)據(jù)庫(kù)導(dǎo)論','王強(qiáng)','科學(xué)出版社',17.90);insert into BOOK values(445502,'TP3/12','數(shù)據(jù)庫(kù)導(dǎo)論','王強(qiáng)','科學(xué)出版社',17.90);insert into BOOK values(445503,'TP3/12','數(shù)據(jù)庫(kù)導(dǎo)論','王強(qiáng)','科學(xué)出版社',17.90);insert into BOOK values(332211,'TP5/10','計(jì)算機(jī)基礎(chǔ)','李偉','高等教育出版社',18.00);insert into BOOK values(112266,'TP3/12','FoxBASE','張三','電子工業(yè)出版社',23.60);insert into BOOK values(665544,'TS7/21','高等數(shù)學(xué)','劉明','高等教育出版社',20.00);insert into BOOK values(114455,'TR9/12','線性代數(shù)','孫業(yè)','北京大學(xué)出版社',20.80);insert into BOOK values(113388,'TR7/90','大學(xué)英語(yǔ)','胡玲','清華大學(xué)出版社',12.50);insert into BOOK values(446601,'TP4/13','數(shù)據(jù)庫(kù)基礎(chǔ)','馬凌云','人民郵電出版社',22.50);insert into BOOK values(446602,'TP4/13','數(shù)據(jù)庫(kù)基礎(chǔ)','馬凌云','人民郵電出版社',22.50);insert into BOOK values(446603,'TP4/13','數(shù)據(jù)庫(kù)基礎(chǔ)','馬凌云','人民郵電出版社',22.50);insert into BOOK values(449901,'TP4/14','FoxPro大全','周虹','科學(xué)出版社',32.70);insert into BOOK values(449902,'TP4/14','FoxPro大全','周虹','科學(xué)出版社',32.70);insert into BOOK values(118801,'TP4/15','計(jì)算機(jī)網(wǎng)絡(luò)','黃力鈞','高等教育出版社',21.80);insert into BOOK values(118802,'TP4/15','計(jì)算機(jī)網(wǎng)絡(luò)','黃力鈞','高等教育出版社',21.80);
READER表: insert into reader values(111,'信息系','王維利','女','教授','1號(hào)樓424');insert into reader values(112,'財(cái)會(huì)系','李 立','男','副教授','2號(hào)樓316');insert into reader values(113,'經(jīng)濟(jì)系','張 三','男','講師','3號(hào)樓105');insert into reader values(114,'信息系','周華發(fā)','男','講師','1號(hào)樓316');insert into reader values(115,'信息系','趙正義','男','工程師','1號(hào)樓224');insert into reader values(116,'信息系','李 明','男','副教授','1號(hào)樓318');insert into reader values(117,'計(jì)算機(jī)系','李小峰','男','助教','1號(hào)樓214');insert into reader values(118,'計(jì)算機(jī)系','許鵬飛','男','助工','1號(hào)樓216');insert into reader values(119,'計(jì)算機(jī)系','劉大龍','男','教授','1號(hào)樓318');insert into reader values(120,'國(guó)際貿(mào)易','李 雪','男','副教授','4號(hào)樓506');insert into reader values(121,'國(guó)際貿(mào)易','李 爽','女','講師','4號(hào)樓510');insert into reader values(122,'國(guó)際貿(mào)易','王 純','女','講師','4號(hào)樓512');insert into reader values(123,'財(cái)會(huì)系','沈小霞','女','助教','2號(hào)樓202');insert into reader values(124,'財(cái)會(huì)系','朱 海','男','講師','2號(hào)樓210');insert into reader values(125,'財(cái)會(huì)系','馬英明','男','副教授','2號(hào)樓212');
BORROW表: insert into borrow values(112,445501,'3-19-2006');insert into borrow values(125,332211,'2-12-2006');insert into borrow values(111,445503,'8-21-2006');insert into borrow values(112,112266,'3-14-2006');insert into borrow values(114,665544,'10-21-2006');insert into borrow values(120,114455,'11-2-2006');insert into borrow values(120,118801,'10-18-2006');insert into borrow values(119,446603,'11-12-2006');insert into borrow values(112,449901,'10-23-2006');insert into borrow values(115,449902,'8-21-2006');insert into borrow values(118,118801,'9-10-2006');
現(xiàn)有關(guān)系數(shù)據(jù)庫(kù)如下:
數(shù)據(jù)庫(kù)名:圖書借閱管理系統(tǒng)
讀者表(讀者編號(hào) char(6),姓名,性別,年齡,單位,身份證號(hào),職稱)圖書表(圖書編號(hào)char(6),圖書名稱,出版社,作者)借閱表(讀者編號(hào),圖書編號(hào),借閱時(shí)間)用SQL語(yǔ)言實(shí)現(xiàn)下列功能的sql語(yǔ)句代碼。(1)創(chuàng)建數(shù)據(jù)表book;
book表(圖書編號(hào) char(6),圖書名稱,出版社,作者)要求使用:主鍵(圖書編號(hào))、非空(圖書名稱),非空(作者)(2)創(chuàng)建數(shù)據(jù)表reader表;
學(xué)生信息表(reader編號(hào) char(8),姓名,性別,年齡,工作單位,身份證號(hào),職稱)要求使用:主鍵(reader編號(hào))、默認(rèn)(職稱)、非空(工作單位,姓名)、唯一(身份證號(hào))、檢查(性別),檢查(年齡)(3)創(chuàng)建借書表borrow;
borrow(ID,讀者編號(hào),圖書編號(hào),借書日期)要求使用:外鍵(學(xué)號(hào),課號(hào))(4)將下列課程信息添加到book表的代碼
圖書編號(hào) 名稱
100101 數(shù)據(jù)庫(kù)原理 100102 數(shù)據(jù)結(jié)構(gòu)
修改 課號(hào)為100102的圖書名稱:數(shù)據(jù)結(jié)構(gòu)與算法 刪除 課號(hào)為100101的圖書信息(5)創(chuàng)建視圖讀者借書信息的代碼;
讀者借書信息視圖(讀者編號(hào),姓名,圖書編號(hào),圖書名稱,借書日期)(6)從讀者表book中查詢姓李的女讀者的情況:姓名、性別、工作單位。(7)查詢統(tǒng)計(jì)出借書量超過(guò)5本的單位平均年齡
(8)創(chuàng)建帶參數(shù)的存儲(chǔ)過(guò)程[借某圖書的讀者高低均年齡]、執(zhí)行該過(guò)程的代碼
存儲(chǔ)過(guò)程功能:查詢借閱某圖書的的讀者最高年齡、最低年齡、平均年齡;
執(zhí)行該過(guò)程,查詢所有借閱’數(shù)據(jù)庫(kù)基礎(chǔ)’這本書的讀者的最高年齡、最低年齡、平均年齡;
1)找出姓李的讀者姓名(NAME)和所在單位(COMPANY)。
SELECT NAME,COMPANY FROM READER WHERE NAME LIKE '李%'
2)列出圖書庫(kù)中所有藏書的書名(BOOK_NAME)及出版單位(OUTPUT)。
SELECT BOOK_NAME, OUTPUT FROM BOOK
3)查找“高等教育出版社”的所有圖書名稱(BOOK_NAME)及單價(jià)(PRICE),結(jié)果按單價(jià)降序排序。
SELECT BOOK_NAME,PRICE FROM BOOK WHERE OUTPUT='高等教育出版社' ORDER BY PRICE DESC 4)查找價(jià)格介于10元和20元之間的圖書種類(SORT),結(jié)果按出版單位(OUTPUT)和單價(jià)(PRICE)升序排序。
SELECT SORT,OUTPUT,PRICE FROM BOOK WHERE PRICE BETWEEN 10 AND 20 ORDER BY OUTPUT ,PRICE
5)查找書名以”計(jì)算機(jī)”開頭的所有圖書和作者(WRITER)。
SELECT BOOK_NAME,WRITER FROM BOOK WHERE BOOK_NAME LIKE '計(jì)算機(jī)%' 6)檢索同時(shí)借閱了總編號(hào)(BOOK_ID)為112266和449901兩本書的借書證號(hào)(READER_ID)。
SELECT A.READER_ID FROM BORROW A,BORROW B WHERE A.BOOK_ID='112266' AND B.BOOK_ID='449901' AND A.READER_ID=B.READER_ID
##7)* 查找所有借了書的讀者的姓名(NAME)及所在單位(COMPANY)。
SELECT DISTINCT NAME,COMPANY FROM READER,BORROW WHERE BORROW.READER_ID=READER.READER_ID
8)* 找出李某所借所有圖書的書名及借書日期(BORROW_DATE)。
SELECT BOOK.BOOK_NAME,BORROW.BORROW_DATE FROM BOOK,BORROW,READER WHERE BOOK.BOOK_ID=BORROW.BOOK_ID AND
READER.READER_ID=BORROW.READER_ID AND READER.NAME LIKE '李%'
9)* 無(wú)重復(fù)地查詢2006年10月以后借書的讀者借書證號(hào)(READER_ID)、姓名和單位。
SELECT READER_ID,NAME,COMPANY FROM READER WHERE READER_ID IN(SELECT READER_ID FROM BORROW WHERE BORROW_DATE >='2006-10-1')
##10)* 找出借閱了
SELECT DISTINCT READER_ID FROM BORROW,BOOK WHERE BORROW.BOOK_ID=BOOK.BOOK_ID AND BOOK.BOOK_NAME LIKE 'FoxPro大全'
11)找出與”趙正義”在同一天借書的讀者姓名、所在單位及借書日期。
SELECT NAME,COMPANY,BORROW_DATE FROM READER,BORROW WHERE BORROW.READER_ID=READER.READER_ID AND BORROW_DATE IN(SELECT BORROW_DATE FROM BORROW,READER WHERE BORROW.READER_ID=READER.READER_ID AND NAME='趙正義')
12)查詢2006年7月以后沒有借書的讀者借書證號(hào)、姓名及單位。
SELECT READER_ID,NAME,COMPANY FROM READER WHERE READER_ID NOT IN(SELECT READER_ID FROM BORROW WHERE BORROW_DATE>='2006-7-1')
#13)求”科學(xué)出版社”圖書的最高單價(jià)、最低單價(jià)、平均單價(jià)。
SELECT MAX(PRICE)最高單價(jià),MIN(PRICE)最低單價(jià),AVG(PRICE)平均單價(jià) FROM BOOK WHERE OUTPUT='科學(xué)出版社'
##14)* 求”信息系”當(dāng)前借閱圖書的讀者人次數(shù)。
SELECT COUNT(DISTINCT READER_ID)當(dāng)前借閱圖書的讀者人次數(shù)FROM BORROW WHERE READER_ID IN(SELECT READER_ID FROM READER WHERE COMPANY IN('信息系'))
#15)求出各個(gè)出版社圖書的最高價(jià)格、最低價(jià)格和總冊(cè)數(shù)。
SELECT MAX(PRICE)最高價(jià)格,MIN(PRICE)最低價(jià)格,COUNT(PRICE)總冊(cè)數(shù)FROM BOOK GROUP BY OUTPUT
#16)分別找出各單位當(dāng)前借閱圖書的讀者人數(shù)及所在單位。
SELECT COUNT(COMPANY)讀者人數(shù),COMPANY FROM BORROW,READER WHERE BORROW.READER_ID=READER.READER_ID GROUP BY COMPANY
17)* 找出當(dāng)前至少借閱了2本圖書(大于等于2本)的讀者姓名及其所在單位。
SELECT NAME 讀者姓名,COMPANY 單位FROM READER WHERE READER_ID IN(SELECT READER_ID FROM BORROW GROUP BY READER_ID HAVING COUNT(*)>=2)
18)分別找出借書人次數(shù)多于1人次的單位及人次數(shù)。
SELECT COMPANY,COUNT(*)人次數(shù) FROM READER,BORROW WHERE BORROW.READER_ID=READER.READER_ID GROUP BY COMPANY HAVING COUNT(*)>1
19)找出藏書中各個(gè)出版單位的名稱、每個(gè)出版社的書籍的總冊(cè)數(shù)(每種可能有多冊(cè))、書的價(jià)值總額。
SELECT OUTPUT,COUNT(*)書籍的總冊(cè)數(shù),SUM(PRICE)書的價(jià)值總額 FROM BOOK GROUP BY OUTPUT
20)查詢經(jīng)濟(jì)系是否還清所有圖書。如果已經(jīng)還清,顯示該系所有讀者的姓名、所在單位和職稱。
SELECT NAME,COMPANY FROM READER WHERE NOT EXISTS(SELECT* FROM READER,BORROW WHERE READER.READER_ID=BORROW.READER_ID AND COMPANY='經(jīng)濟(jì)系')
第五篇:中職課堂“VFP數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)”教學(xué)反思
中職課堂“VFP數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)”
教學(xué)反思
漠河縣職業(yè)技術(shù)學(xué)校 塵威威
中職課堂“VFP數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)”教學(xué)反思
漠河縣職業(yè)技術(shù)學(xué)校 塵威威
在中職計(jì)算機(jī)應(yīng)用專業(yè)教學(xué)中,數(shù)據(jù)庫(kù)應(yīng)用教學(xué)是其中的重點(diǎn)和難點(diǎn)。在強(qiáng)調(diào)?以技能為核心,以就業(yè)為導(dǎo)向?的中職學(xué)校中,如何使文化基礎(chǔ)知識(shí)較為薄弱的學(xué)生對(duì)枯燥的VFP數(shù)據(jù)庫(kù)產(chǎn)生學(xué)習(xí)興趣,并能學(xué)以致用,是每位計(jì)算機(jī)專業(yè)教師努力追求的目標(biāo)和任務(wù)。
結(jié)合我多年的教學(xué)經(jīng)驗(yàn),針對(duì)VFP課程的特點(diǎn),在教法上,我以?案例教學(xué)法?、?‘課機(jī)’結(jié)合式教學(xué)法?、?任務(wù)驅(qū)動(dòng)教學(xué)法?為主開展課堂教學(xué),教學(xué)效果比較明顯。但在?程序設(shè)計(jì)?這一章節(jié)的教學(xué)中,還是存在著兩大誤區(qū):一是學(xué)生基礎(chǔ)較差,加之不愛動(dòng)腦、動(dòng)手,導(dǎo)致時(shí)間花得多,效果不理想;二是只重視程序設(shè)計(jì)的結(jié)果,忽視了其算法的多樣化,從而束縛了學(xué)生的思維創(chuàng)新。針對(duì)存在的兩大誤區(qū)和不理想的教學(xué)效果,引起了我深深的反思,如何突破這兩大誤區(qū)成了我的首要教學(xué)任務(wù)。于是,我認(rèn)與同事研討,查找相關(guān)資料,將多種教法結(jié)合起來(lái),通過(guò)實(shí)踐,逐步形成了一種?精講多練、小組互動(dòng)、分層實(shí)施、機(jī)試為主?教學(xué)模式,從而達(dá)到了預(yù)期的教學(xué)效果。
現(xiàn)以do while …… end do循環(huán)控制命令的使用為例,將其教學(xué)片段簡(jiǎn)介如下:
一、教學(xué)實(shí)例
探索循環(huán)結(jié)構(gòu)的程序設(shè)計(jì)方法:
1.示例:用投影儀展示求1+2+3+4+…+100程序清單,讓學(xué)生對(duì) 照程序清單上機(jī)調(diào)試并思考。
附程序清單:clear sum=0 i=1 do while i<=100 sum=sum+i i=i+1 end do ??1+2+3+…+100=?,sum 師:同學(xué)們,你們能找出程序清單中有哪些變量?并說(shuō)明它的作用嗎?
學(xué)生思考,隨后指名回答。教師板書:sum i
sum的作用是用于存儲(chǔ)所求的和(中間結(jié)果及最終結(jié)果),i的作用是用來(lái)存儲(chǔ)循環(huán)的值(即加數(shù)),同時(shí)控制循環(huán)執(zhí)行的次數(shù)。
師:程序中的變量名可用其它的字母代替嗎?你能找出在循環(huán)體(命令序列)中用于控制循環(huán)趨于結(jié)束的命令嗎?
學(xué)生回答,教師板書:i=i+1 師:好,請(qǐng)同學(xué)們獨(dú)立思考此程序的循環(huán)次數(shù)? 全班回答:100次。
師:如何通過(guò)上機(jī)操作驗(yàn)證其執(zhí)行過(guò)程呢?(學(xué)生開展討論并上機(jī)操作驗(yàn)證)生1:只須將輸出命令放到循環(huán)體中即可,即在?i=i+1?命令之后、?end do?之前插入??sum ,i?命令。(學(xué)生操作驗(yàn)證)
生2:因?yàn)楫?dāng)前屏顯示不下,我們看到的僅僅是最后的幾次執(zhí)行過(guò)程,對(duì)于以前的執(zhí)行過(guò)程還是看不到,可將該題分段實(shí)施,即先求1+2+3+…+20的和。
師:很好。(鼓掌、同學(xué)們?cè)俨僮黩?yàn)證)
2.任務(wù):四人一個(gè)小組開始活動(dòng),討論以下任務(wù)的設(shè)計(jì),并上機(jī)操作,教師參與到學(xué)生的活動(dòng)中。
任務(wù)一:求2+4+6+8+…+100的和 任務(wù)二:求1×2×3×4×5 不一會(huì),各小組互動(dòng)結(jié)束,請(qǐng)兩個(gè)組進(jìn)行了回答如下: 小組甲:任務(wù)一與例題之間的區(qū)別是循環(huán)變量的初值為2,每循環(huán)一次循環(huán)變量增2即i=i+2。
小組乙:任務(wù)二在例題的基礎(chǔ)上將?sum=0?改為?sum=1?,循環(huán)變量的終值為5即條件改為i<=5,然后是循環(huán)體中的?sum=sum+i?改為?sum=sum*i?。
3.討論:同學(xué)們,在剛才所做的程序中,你能找出其規(guī)律嗎? 全班交流:
生1:循環(huán)變量從所賦的初值到終值按照一定的差進(jìn)行變化,如求1+2+3+4+…時(shí),其差為?1?進(jìn)行的,求1+3+5+7+…時(shí)其差為?2?。
生2:(補(bǔ)充)循環(huán)變量在程序每執(zhí)行一次時(shí),就按照其連續(xù)相鄰的兩個(gè)值之間的差進(jìn)行遞增變化。生3:用來(lái)存儲(chǔ)結(jié)果的變量sum,也有一定的特點(diǎn),如在求和時(shí)可以賦?0?,在求積時(shí)只能賦?1?。
……
師:你們說(shuō)得很好,尤其是循環(huán)變量的特點(diǎn),它是我們進(jìn)行循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的關(guān)鍵,也是一個(gè)難點(diǎn),其理解的程度直接影響到我們程序設(shè)計(jì)成敗。但注意的是有時(shí)也可能發(fā)生遞減變化喲。
4.拓展:做一做,求1+2+3+…+n;1×2×3×4×…×n;n從鍵盤輸入。
做完后并思考:與上述程序設(shè)計(jì)題有何區(qū)別?有何意義 過(guò)了一會(huì)兒,大多數(shù)學(xué)生做完了,但還有部分學(xué)生沒有做完,就安排做完了的學(xué)生去指導(dǎo)未完成學(xué)生,幫助其操作,力爭(zhēng)所有的學(xué)生有所獲,有所得。
二、教學(xué)反思
VFP就是一個(gè)讓普通用戶方便利用可視化的設(shè)計(jì)工具和向?qū)Э焖龠M(jìn)行數(shù)據(jù)處理和程序設(shè)計(jì)的很好的軟件。其可深可淺,可難可易,綜合性很強(qiáng)。對(duì)VFP程序設(shè)計(jì)的教學(xué),不再是重結(jié)果,輕過(guò)程,而是很好地駕馭教材內(nèi)容,創(chuàng)造性地使用教材,巧妙組織,精心安排,靈活設(shè)計(jì),給學(xué)生以耳目一新的感覺,教學(xué)效果非常明顯,主要體現(xiàn)了以下幾個(gè)方面:
1.程序設(shè)計(jì)關(guān)注的應(yīng)該是程序設(shè)計(jì)的思維過(guò)程
本章節(jié)的教學(xué),我跳出了認(rèn)知技能的框框,不把程序設(shè)計(jì)的方法、操作技能的形成作為唯一的目標(biāo),而更關(guān)注學(xué)生的學(xué)習(xí)過(guò)程,讓學(xué)生 在自身實(shí)踐探索的過(guò)程中實(shí)現(xiàn)發(fā)展性領(lǐng)域目標(biāo)。如教學(xué)時(shí)圍繞do while命令的使用為重點(diǎn)展開探索,通過(guò)相應(yīng)的活動(dòng)與任務(wù)提供自主學(xué)習(xí)的機(jī)會(huì),給學(xué)生充分思考的空間和時(shí)間,允許并鼓勵(lì)他們有不同思維方法,尊重他們的想法,哪怕是不合理的,甚至是錯(cuò)誤的,讓他們?cè)谙嗷ソ涣?、碰撞、討論中,進(jìn)一步明確程序設(shè)計(jì)的基本方法。通過(guò)互助探究后,他們?cè)诓煌膶用嫔系玫教岣?,并掌握了解決相應(yīng)的實(shí)際問題的能力。在此基礎(chǔ)上,教師組織學(xué)生對(duì)知識(shí)進(jìn)一步拓展:如求?1+2+3+…+n?,達(dá)到程序設(shè)計(jì)的基本要求,那就是通用性、實(shí)用性。這樣的教學(xué),學(xué)生獲得的不僅僅是程序設(shè)計(jì)的基本方法,更重要的是分析、處理問題的思維創(chuàng)新能力。
2.提倡思維方式、程序算法的多樣化,促進(jìn)學(xué)生個(gè)性發(fā)展。學(xué)語(yǔ)言一般都是從基礎(chǔ)知識(shí)、概念和一些理論知識(shí)入手的,但中職學(xué)生的文化課底子薄,理解能力本來(lái)就差,如果一開始就講理論只能讓學(xué)生不知所措或?qū)@門課提不起興趣?,F(xiàn)在學(xué)校一般開設(shè)的數(shù)據(jù)庫(kù)課程都是VFP6.0版本的,它的可視化功能很強(qiáng),我們?cè)谑谡n時(shí),應(yīng)充分利用這一特點(diǎn),讓學(xué)生先從外觀上對(duì)這門課有個(gè)初步的認(rèn)識(shí)和了解,理論知識(shí)可以在操作中邊講邊學(xué)的過(guò)程中穿插進(jìn)去,改變一般教材的課程設(shè)臵。這樣學(xué)生是在操作使用中去掌握理論,會(huì)比較形象直觀一些;而后為了使用所建數(shù)據(jù)庫(kù)中的數(shù)據(jù)表,讓學(xué)生學(xué)習(xí)查詢、視圖、報(bào)表、菜單,學(xué)習(xí)完這些內(nèi)容以后,再讓學(xué)后接觸SQL語(yǔ)言、程序設(shè)計(jì)基礎(chǔ)、表單。最后是綜合應(yīng)用程序的開發(fā),由易到難,由淺入深,可以循序漸進(jìn)地將理論與實(shí)踐結(jié)合起來(lái),達(dá)到教學(xué)目的和要求。思維方式、程序算法的多樣化,是指尊重學(xué)生的獨(dú)立思考,鼓勵(lì)學(xué)生探索不同的方法,而不是讓學(xué)生一定要去掌握多種操作方法。通過(guò)分層實(shí)施,學(xué)生分別達(dá)到了應(yīng)會(huì)、熟練等不同程度。在學(xué)生進(jìn)行程序設(shè)計(jì)時(shí),學(xué)生中出現(xiàn)了多種形式不同的程序清單。有的是變量的初值不同,有的是在循環(huán)體中命令的先后位臵略有變化,有的是把輸出放在了循環(huán)體之中等等。在學(xué)生獨(dú)立思考解決的基礎(chǔ)上,再讓學(xué)生發(fā)表自己的見解、觀點(diǎn),傾聽同伴的解法,進(jìn)行小組內(nèi)交流、爭(zhēng)論,從而達(dá)成一種共識(shí)。教師鼓勵(lì)學(xué)生用已有的經(jīng)驗(yàn)大膽思維,鼓勵(lì)學(xué)生動(dòng)手上機(jī)操作,尋求解決問題的有效途徑,營(yíng)造寬松活躍的課堂氣氛。算法的多樣化使學(xué)生變得聰明自信,在主動(dòng)探索與合作交流中得到收獲,并促進(jìn)學(xué)生的個(gè)性發(fā)展。
3.營(yíng)造民主的氛圍,激發(fā)學(xué)生的創(chuàng)新思維
在程序設(shè)計(jì)過(guò)程中,不同的方法對(duì)同一個(gè)人也許有快慢之說(shuō),而對(duì)不同的人卻不存在優(yōu)劣之分。在整個(gè)探索的過(guò)程中,我只是通過(guò)投影展示了一個(gè)例題,然后組織學(xué)生不斷地發(fā)表自己的想法,通過(guò)引導(dǎo),鼓勵(lì)他們敢于爭(zhēng)論,完成對(duì)知識(shí)的構(gòu)建,同時(shí)也要注意呵護(hù)每一位學(xué)生的學(xué)習(xí)激情,激發(fā)其創(chuàng)造力。
學(xué)生爭(zhēng)論不休的時(shí)刻,也正是他們?cè)诜e極地參與整個(gè)學(xué)習(xí)活動(dòng),這正是組織教學(xué)的精華所在,同時(shí)也挖掘了學(xué)生潛在的創(chuàng)造力,從而也帶動(dòng)了全班學(xué)生的積極參與,在?do while命令?使用的探索過(guò)程中,如驗(yàn)證體會(huì)循環(huán)的執(zhí)行過(guò)程時(shí),一學(xué)生提出只要驗(yàn)證?1+2+3+…+20?之和,又如求"1×2×3×4×5"時(shí),一學(xué)生說(shuō)它的sum初值不 能為?0?,只能為?1?時(shí),全班學(xué)生都給了他熱烈的掌聲。我想他這種的見解總是在經(jīng)過(guò)認(rèn)真分析思考后得出來(lái)的。
4.教學(xué)方法多樣化,激發(fā)了學(xué)生學(xué)習(xí)的興趣
數(shù)據(jù)庫(kù)應(yīng)用VFP是一門操作性很強(qiáng)的專業(yè)課程。為了讓學(xué)生學(xué)習(xí)有興趣,在舉例時(shí)應(yīng)舉與學(xué)生有關(guān)的、學(xué)生經(jīng)常用到的內(nèi)容,比如建立數(shù)據(jù)庫(kù),可以以學(xué)籍管理中的學(xué)籍表、成績(jī)表為例,這些表學(xué)生經(jīng)常都在填寫使用,學(xué)生以自己的同學(xué)作為記錄去創(chuàng)建表、使用表,這樣一是提高了他們的學(xué)習(xí)興趣;二是在建表的過(guò)程中自動(dòng)完成了對(duì)數(shù)據(jù)的收集、整理、錄入編輯工作,這樣在講數(shù)據(jù)處理時(shí)學(xué)生就不會(huì)難理解了。一個(gè)數(shù)據(jù)庫(kù)包含的數(shù)據(jù)表應(yīng)至少是3張以上,這是為后面的建立表之間聯(lián)系和多工作區(qū)做準(zhǔn)備,學(xué)籍管理中可以再添加一個(gè)圖書借閱表。
在VFP中使用的文件類型比較多,比如學(xué)籍管理庫(kù),一旦建立就會(huì)同時(shí)自動(dòng)生成同名的3個(gè)文件:學(xué)籍管理.DBC、學(xué)籍管理.DCT、學(xué)籍管理.DXT,在應(yīng)用中只要3個(gè)文件少了一個(gè),就會(huì)影響數(shù)據(jù)庫(kù)使用的質(zhì)量。對(duì)其他文件也是一樣的,在操作中,學(xué)生們經(jīng)常會(huì)丟失一些文件的備注文件致使原文件無(wú)法使用。所以一定要求學(xué)生及時(shí)對(duì)原數(shù)據(jù)文件做好備份。對(duì)學(xué)生自己的相關(guān)信息進(jìn)行操作,學(xué)生學(xué)習(xí)興趣濃厚,在學(xué)習(xí)過(guò)程中出現(xiàn)了你追我趕的局面,學(xué)習(xí)氛圍非常好。講授的例子始終圍繞?學(xué)籍管理?這個(gè)具體實(shí)例來(lái)講解,前后具有連貫性,便于知識(shí)的鞏固和理解。
?課機(jī)?結(jié)合式教學(xué)法,在課堂中教師通過(guò)大屏幕液晶投影儀或 網(wǎng)絡(luò)教室講解知識(shí),然后學(xué)生在下面操作學(xué)習(xí),學(xué)生很容易跟著教師的步驟進(jìn)行學(xué)習(xí),掌握教師教給的內(nèi)容,而且印象也較為深刻。如上述的示例部分。?任務(wù)驅(qū)動(dòng)?教學(xué)法可合理組織學(xué)生自主學(xué)習(xí),激發(fā)他們的興趣,讓他們盡快地活動(dòng)起來(lái),并通過(guò)自己的自學(xué)和同學(xué)的幫助來(lái)解決問題,在愉快的教學(xué)過(guò)程中掌握知識(shí),如上述互動(dòng)中的任務(wù)
一、任務(wù)二等。
5.實(shí)踐探索,進(jìn)一步提高了學(xué)生的創(chuàng)造力
真理源于實(shí)踐,實(shí)踐出真知。在程序設(shè)計(jì)的教學(xué)中,通過(guò)邊講、邊練,先從理論上分析討論,找準(zhǔn)理論依據(jù),后通過(guò)上機(jī)操作驗(yàn)證其正確性,最后再討論分析、交流程序設(shè)計(jì)的最佳方法,不僅訓(xùn)練了學(xué)生的操作技能,同時(shí)也培養(yǎng)學(xué)生的創(chuàng)造能力。
總之在程序設(shè)計(jì)中,鼓勵(lì)積極思維、分層要求、反復(fù)操作驗(yàn)證、達(dá)到程序算法多樣化是尊重學(xué)生的表現(xiàn),體現(xiàn)了以學(xué)生為主體的教學(xué)原則,符合現(xiàn)代認(rèn)知建構(gòu)主義思想,是釋放學(xué)生自信心和創(chuàng)新思維、培養(yǎng)創(chuàng)造能力的有效途徑。
三、需進(jìn)一步探索的問題
在程序設(shè)計(jì)教學(xué)時(shí)提倡?精講多練、小組互動(dòng)、分層實(shí)施、機(jī)試為主?的教學(xué)模式,保障了學(xué)生在不同的層面得到發(fā)展,得到提高,同時(shí)也培養(yǎng)了學(xué)生的創(chuàng)新思維,體現(xiàn)理論與技能的雙豐收。但在對(duì)那些基礎(chǔ)較差、不愛動(dòng)腦、動(dòng)手的學(xué)生幫扶上,在分層互動(dòng)、層次把握上,對(duì)教師的組織能力、對(duì)教材的分析駕馭能力提出了新的要求,要能真正把握住哪些是全班學(xué)生掌握的,哪些是部分(即提高)學(xué)生掌 握的,達(dá)到所有的學(xué)生在各自的水平上能?吃飽?。這些問題還需要我們?cè)谙乱浑A段的教學(xué)中進(jìn)一步的探索。