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