使用Foxpro在網(wǎng)絡(luò)環(huán)境下開發(fā)數(shù)據(jù)庫管理軟件經(jīng)驗(yàn)點(diǎn)滴
發(fā)表時間:2024-06-21 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]摘 要 本 文 將 筆 者 利 用 FoxPro 在 網(wǎng) 絡(luò) 環(huán) 境 下 開 發(fā) 數(shù) 據(jù) 庫 管 理 軟 件 時 , 對 于 實(shí) 現(xiàn) 數(shù) 據(jù) 共 享 與 獨(dú) 占 、 提 高 系 統(tǒng) 安 全 性 和 性 能 的 一 些 經(jīng) 驗(yàn) 進(jìn) 行 了 總 結(jié) 。 關(guān) 鍵 詞 FoxPro 數(shù) 據(jù) 庫 管 理 軟...
摘 要 本 文 將 筆 者 利 用 FoxPro 在 網(wǎng) 絡(luò) 環(huán) 境 下 開 發(fā) 數(shù) 據(jù) 庫 管 理 軟 件 時 , 對 于 實(shí) 現(xiàn) 數(shù) 據(jù) 共 享 與 獨(dú) 占 、 提 高 系 統(tǒng) 安 全 性 和 性 能 的 一 些 經(jīng) 驗(yàn) 進(jìn) 行 了 總 結(jié) 。 關(guān) 鍵 詞 FoxPro 數(shù) 據(jù) 庫 管 理 軟 件 隨 著 計 算 機(jī) 技 術(shù) 的 發(fā) 展 , 特 別 是 網(wǎng) 絡(luò) 技 術(shù) 和 數(shù) 據(jù) 庫 技 術(shù) 的 日 漸 成 熟 , 信 息 管 理 系 統(tǒng) 已 成 為 實(shí) 現(xiàn) 科 研 、 生 產(chǎn) 、 經(jīng) 營 管 理 活 動 高 效 運(yùn) 行 的 關(guān) 鍵 環(huán) 節(jié) 。 雖 然 有 ORACLE 、 SYBASE 等 優(yōu) 秀 的 數(shù) 據(jù) 庫 管 理 系 統(tǒng) 可 作 為 開 發(fā) 平 臺 , 但 對 于 在 小 型 網(wǎng) 絡(luò) 環(huán) 境 下 , 開 發(fā) 規(guī) 模 不 大 的 數(shù) 據(jù) 庫 管 理 軟 件 而 言 , 從 其 性 能 價 格 比 考 慮 , FoxPro 不 失 為 一 個 合 適 的 選 擇 。 現(xiàn) 將 筆 者 利 用 FoxPro 在 網(wǎng) 絡(luò) 環(huán) 境 下 開 發(fā) 數(shù) 據(jù) 庫 管 理 軟 件 的 一 些 經(jīng) 驗(yàn) 總 結(jié) 如 下 ,供 大 家 參 考 。
1 、 多 用 戶 環(huán) 境 下 文 件 的 共 享 和 獨(dú) 占 的 實(shí) 現(xiàn)
( 1 ) 、當(dāng) 你 要 訪 問 的 文 件 或 記 錄 不 想 再 讓 其 他 用 戶 訪 問 時 ( 一 般 是 對 數(shù) 據(jù) 庫 的 更 新 操 作 ) , 可 在 真 正 訪 問 前 地 對 其 進(jìn) 行 “ 加 鎖 ” , 訪 問 結(jié) 束 后 再 立 即 “ 解 鎖 ” ; 或 者 以 獨(dú) 占 方 式 打 開 該 數(shù) 據(jù) 庫 文 件 進(jìn) 行 訪 問 。 筆 者 在 此 以 數(shù) 據(jù) 追 加 入 庫 為 例 , 簡 述 采 用 按 鈕 形 式 實(shí) 現(xiàn) “ 加 鎖 ”- “ 解 鎖 ” 的 方 法 。 此 方 法 的 優(yōu) 點(diǎn) 在 于 : 當(dāng) 加 鎖 失 敗 后 , 程 序 可 自 動 返 回 數(shù) 據(jù) 編 輯 屏 幕 ( 不 需 要 編 程 干 預(yù) ) , 這 樣 用 戶 可 根 據(jù) 需 要, 再 適 時 地 單 擊 “ 追 加 ” 按 鈕 繼 續(xù) 其 工 作 。 “ 追 加 入 庫 ” 按 鈕 的代 碼 片 段 如 下 : ... set exclusive off use(locfile("z:\message\scxx\hytz","dbF","Where is hytz.dbf?")); AGAIN ALIAS hytz; ORDER 0 set reprocess to 0 ok=flock() && 加 鎖 if ok && 成 功 鎖 住 append from hytzi wait " 數(shù) 據(jù) 追 加 成 功 ! 按 任 意 鍵 繼 續(xù) !" window
unlock && 解 鎖 else && 加 鎖
失 敗 wait " 文 件 已 被 其 他 用 戶 使 用 , 請 稍 候 再 試 ! " window endif use set exclusive on ... 其 中 : hytz.dbf -- 服 務(wù) 器 上 的 目 標(biāo) 數(shù) 據(jù) 庫 表 hytzi.dbf -- 臨 時 數(shù) 據(jù) 庫 表
( 2 ) 、 當(dāng) 你 要 訪 問 的 文 件 或 記 錄 允 許 其 他 用 戶 訪 問 時 ( 一般 為 數(shù) 據(jù) 庫 的 檢 索 操 作 ) , 以 共 享 方 式 打 開 該 數(shù) 據(jù) 庫 文 件 即 可 。
以 檢 索 hytz.dbf 數(shù) 據(jù) 為 例 。 打 開 hytz 的 數(shù) 據(jù) 查 詢 屏 幕 , 在 SCREEN 的 Layout 項(xiàng) 中 , 點(diǎn) 取 Code 按 鈕 , 在 Screen Setup Code 中 加 入 如 下 代 碼 段
: ... SELECT 0 USE (LOCFILE("hytz","DBF","Where is hytz?")); AGAIN ALIAS hytz ; shared; && 共 享 方 式 打 開 ORDER 0 ... 建 議 將 系 統(tǒng) 的 數(shù) 據(jù) 檢 索 與 數(shù) 據(jù) 更 新 分 為 兩 個 子 系 統(tǒng) 進(jìn) 行 設(shè) 計 和 編 碼 , 這 樣 便 于 在 程 序 中 對 EXCLUSIVE 的 值 進(jìn) 行 設(shè) 置 ( 使 用 SET EXCLUSIVE 命 令 和 USE { EXCLUSIVE SHARE } 命 令 ) 。 為 了 減 少 對 數(shù) 據(jù) 庫 訪 問 的 “ 碰 撞 ” , 可 定 時 ( 如 晚 上 ) 對 數(shù) 據(jù) 庫 進(jìn) 行 更 新 操 作 ( 這 可 由 系 統(tǒng) 管 理 員 來 完 成 ) 。
2 、 減 少 網(wǎng) 絡(luò) 數(shù) 據(jù) 傳 輸 量 、 提 高 數(shù) 據(jù) 共 享 效 率
( 1 ) 、 將FOXPRO 軟 件 、 應(yīng) 用 程 序 、 部 分 不 需 共 享 的 數(shù) 據(jù) 存 放 在 網(wǎng) 絡(luò) 工 作 站 本 地 硬 盤 上 , 只 將 需 要 共 享 的 數(shù) 據(jù) 庫 存 放 在 網(wǎng) 絡(luò) 服 務(wù) 器 上 的 共 享 目 錄 下 。
( 2 ) 、 對 于 在 網(wǎng) 上 使 用 的 數(shù) 據(jù) 庫 管 理 系 統(tǒng) , 為 了 減 少 獨(dú) 占 數(shù) 據(jù) 庫 的 時 間 , 建 議 采 用 在 本 地 單 機(jī) 上 建 立 與 其 結(jié) 構(gòu) 完 全 相 同 的 臨 時 庫 的 方 法 。 數(shù) 據(jù) 編 輯 在 臨 時 庫 中 進(jìn) 行 , 待 數(shù) 據(jù) 編 輯 完 畢 并校 核 無 誤 時 , 再 追 加 到 服 務(wù) 器 的 目 標(biāo) 庫 中 ; 數(shù) 據(jù) 查 詢 時 , 首 先 將
滿 足 條 件 的 數(shù) 據(jù) 從 服 務(wù) 器 中 提 取 到 臨 時 庫 中 , 然 后 對 其 結(jié) 果 進(jìn) 所 需 操 作 。
3 、 安 全 性 措 施 在 數(shù) 據(jù) 庫 系 統(tǒng) 中 , 由 于 數(shù) 據(jù) 大 量 集 中 存 放 , 為 多 用 戶 直 接 共 享 , 從 而 使 得 安 全 性 問 題 更 為 突 出 。
( 1 ) 、為 了 保 護(hù) 數(shù) 據(jù) 庫 以 防 止 不 合 法 的 使 用 , 對 于 那 些 已 獲 得 上 機(jī) 權(quán) 的用 戶 , 還 要 進(jìn) 一 步 根 據(jù) 其 對 數(shù) 據(jù) 庫 所 需 進(jìn) 行 的 操 作 進(jìn) 行 權(quán) 限 分 類, 以 保 證 其 只 能 按 其 權(quán) 限 對 相 應(yīng) 的 數(shù) 據(jù) 進(jìn) 行 訪 問 , 而 不 能 越 權(quán) 。
( 2 ) 、 將 共 享 數(shù) 據(jù) 存 放 在 服 務(wù) 器 的 共 享 目 錄 下 , 同 時 將 查 詢 軟 件 ( 該 查 詢 系 統(tǒng) 只 有 具 有 查 詢 權(quán) 限 的 用 戶 方 可 進(jìn) 入 ) 作 為 一 獨(dú) 立 系 統(tǒng) 安 裝 于 各 工 作 站 上 , 而 將 數(shù) 據(jù) 編 輯 軟 件 ( 該 數(shù) 據(jù) 編 輯 系 統(tǒng) 只 有 具 有 數(shù) 據(jù) 編 輯 權(quán) 限 的 用 戶 方 可 進(jìn) 入 ) 安 裝 于 數(shù) 據(jù) 源 點(diǎn) 處 的 工 作 站 上 。 用 戶 的 權(quán) 限 由 網(wǎng) 絡(luò) 操 作 系 統(tǒng) 和 系 統(tǒng) 管 理 員 控 制 。
4 、 充 分 利 用 Rushmore 技 術(shù) 提 高 網(wǎng) 絡(luò) 環(huán) 境 下 數(shù) 據(jù) 庫 操 作 速 度 Rushmore Technology 是 高 效 率 存 取 數(shù) 據(jù) 的 索 引 式 數(shù) 據(jù) 存 取 技 術(shù) 。 在 編 制 數(shù) 據(jù) 庫 檢 索 程 序 時 , 應(yīng) 用 該 技 術(shù) 可 高 效 地 訪 問 許 多 記 錄 的 組 合 , 使 復(fù) 雜 的 數(shù) 據(jù) 庫 操 作 速 度 提 高 成 百 上 千 倍 。 能 使 用 Rushmore 的 命 令 如 下 :
------------------------------------------------------ AVERAGE COPY TO ARRAY
EXPORT LOCATE SORT BROWSE COUNT INDEX RECALL SUM CALCULATE
DELETE JOIN REPLACE TOTAL CHANGE DISPLAY LABEL REPORT COPY TO
EDIT LIST SCAN ------------------------------------------------------ 但 編 程 人 員 必 須 牢 記 使 用 該 技 術(shù) 的 條 件 :
( 1 ) 、 使 用 上 表 的 命 令 必 須 包 含 有 一 個 FOR 參 數(shù) , 且 FOR 參 數(shù) 中 的 條 件 運(yùn) 算 式 必 須 是 一 個 最 優(yōu) 化 運(yùn) 算 式 。 而 且 , 要 給 可 加 搜 索 范 圍 的 命 令 AVERAGE 、 SUM 、 LOACTE 、 SORT 等 加 上 ALL 或 NEXT 等 。 另 外 , 命 令 中 不 能 有 WHEN 參 數(shù) 。
( 2) 、 只 能 處 理 單 一 數(shù) 據(jù) 庫 , 要 想 使 用 Rushmore 技 術(shù) 同 時 處 理 多 個 數(shù) 據(jù) 庫 , 必 須 使 用 SQL 的 select 命 令 , 因 為 該 命 令 將 Rushmore 技 術(shù) 作 為 優(yōu) 化 查 詢 的 基 礎(chǔ) 技 術(shù) , 當(dāng) SQL 發(fā) 覺 需 要 索 引 時 , 即 自 動 創(chuàng) 建 臨 時 索引 文 件 。
( 3 ) 、 在 上 表 的 命 令 中 若 指 定 了 NOOPTIMIZE 參 數(shù) 將 不 使
用 Rushmore 技 術(shù) 。
( 4 ) 、 在 FOXPRO 標(biāo) 準(zhǔn) 版 中 , 當(dāng) 數(shù) 據(jù) 庫 記 錄 總 數(shù) 過 50 萬 個 時 , Rushmore 無 效 。
5 、 數(shù) 據(jù) 庫 的 數(shù) 據(jù) 冗 余 為 了 提 高 應(yīng) 用 程 序 執(zhí) 行 的 效 率 , 在 存 儲 空 間 允 許 的 條 件 下 , 經(jīng) 慎 重 考 慮 后 ,可 以 有 選 擇 地 保 留 一 些 數(shù) 據(jù) 冗 余 , 也 可 在 數(shù) 據(jù) 庫 中 保 留 那 些 使 用頻 率 特 別 高 、 計 算 費(fèi) 時 的 結(jié) 果 。
6 、 其 它
( 1 ) 、 為 盡 量 避 免 編 程的 重 復(fù) 工 作 , 減 少 硬 盤 空 間 的 占 用 量 , 在 系 統(tǒng) 設(shè) 計 過 程 中 要 進(jìn) 行 綜 合 分 析 , 提 取 相 似 點(diǎn) , 編 制 通 用 的 程 序 , 便 于 程 序 重 用 。
( 2 ) 、 對 界 面 的 要 求 為 了 提 高 整 個 網(wǎng) 絡(luò) 環(huán) 境 下 系 統(tǒng) 的 人 機(jī) 交 互 性 和 可 操 作 性 , 用 戶 界 面 應(yīng) 具 有 可 靠 性 、 簡 單 性 和 立 即 反 饋 特 性 。 . 可 靠 性 : 指 界 面 要 具 有 一 定 的 容 錯 能 力 , 能 及 時 正 確 地 給 出 運(yùn) 行 狀 態(tài) 指 示 和 出 錯 信 息 , 并 引 導(dǎo) 用 戶 改 正 錯 誤 ; . 簡 單 性 : 盡 量 減 少 用 戶 負(fù) 擔(dān) , 即 操 作 方 式 簡 單 , 容 易 記 憶 , 輸 入 / 輸 出 容 易 理 解 ; 立 即 反 饋 : 對 用 戶 的 應(yīng) 用 請 求 都 應(yīng) 在 用 戶 心 理 許 可 的 時 間 范 圍 內(nèi) 給 出 響 應(yīng) , 即 使 不 能 得 到 結(jié) 果 , 也 應(yīng) 給 出 某 種 信 息 以 緩 和 用 戶 等 待 心 理 。 筆 者 采 用 以 上 方 法 , 已 成 功 完 成 了 多 個 網(wǎng) 絡(luò) 環(huán) 境 下 綜 合 信 息 管 理 系 統(tǒng) 的 開 發(fā) , 收 到 了 很 好 的 效 果 。