案例分析公司管理數據庫系統的規劃.ppt_第1頁
案例分析公司管理數據庫系統的規劃.ppt_第2頁
案例分析公司管理數據庫系統的規劃.ppt_第3頁
案例分析公司管理數據庫系統的規劃.ppt_第4頁
案例分析公司管理數據庫系統的規劃.ppt_第5頁
已閱讀5頁,還剩83頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1 項目一公司管理數據庫系統的規劃 2 工作任務 根據某公司的工作流程 設計一個滿足該公司管理的數據庫系統 具體要求如下 公司數據庫管理系統主要完成客戶和產品之間進行產品訂購的功能 此系統可以實現讓公司增加 刪除和修改所提供的產品 還可以讓客戶增加 刪除和修改所需要的產品 公司交易員 雇員 可以利用客戶提出的訂貨信息和產品信息提出交易建議 另外 該系統能夠分類統計已訂購的產品信息 3 數據 描述事物的符號稱為數據 描述事物的符號可以是數字 也可以是文字 圖形 圖像 聲音 語言等 數據有多種表現形式 他們都可以經過數字化后存入計算機 4 數據庫 數據庫是指長期存儲在計算機內的 有組織的 可共享的數據集合 數據庫中的數據按一定的數據模型組織 描述和存儲 具有較小的冗余度 較高的數據獨立性和易擴展性 并可為各種用戶共享 5 數據庫管理系統 數據庫管理系統是位于用戶與操作系統之間的一層數據管理軟件 它的主要功能包括以下幾個方面 數據定義功能數據操縱功能數據庫的運行管理數據庫的建立和維護功能 6 Oracle數據庫管理系統工作界面 7 SQLServer數據庫管理系統工作界面 8 Access數據庫管理系統工作界面 9 VisualFoxPro數據庫管理系統工作界面 10 數據庫技術的四條線索 三個系統 歷史發展 層次網狀系統 當前主流 關系系統 未來發展 面向對象系統 數據庫發展史上的兩條主線 數據模型的演變 層次 網狀 關系 面向對象數據語言的演變 基本SQL 嵌入SQL 動態SQL 遞歸SQL ORDB的SQL兩個端點 用戶 使用 系統 實現 數據庫設計演變的過程ER圖 對象聯系圖 UML類圖 11 DBMS主流產品現狀 代表性產品 Oracle公司的Oracle IBM公司的DB2以及微軟的SQLServer等關系數據庫技術仍然是主流2000年RDBMS的市場份額占整個數據庫市場的80 這個比例比1999年增長了15 產品形成系列化如DB2通用數據庫產品包括了從高端的企業級并行數據庫服務器 到移動端產品DB2Everywhere的一整套系列 從支持平臺看 不再是大型機上的專有產品 支持目前主流的各種平臺 包括Linux和WindowsNT 此外 它還有各種中間件產品 如DB2Connect DB2Datajointer DB2Replication等 構成了一個龐大的數據庫家族 12 DBMS主流產品現狀 支持各種互聯網應用例如 Oracle公司從8版起全面支持互聯網應用 是互聯網數據庫的代表 微軟公司更是將SQLServer作為其整個 NET計劃中的一個重要的成分 海量數據處理互聯網提供大量以XML格式數據為特征的半結構化數據 支持這種類型的數據的存儲 共享 管理 檢索等也是各數據庫廠商的發展方向 13 DBMS主流產品現狀 向智能化集成化方向擴展數據豐富知識貧乏的現實直接導致了聯機分析處理 OLAP 數據倉庫 DataWarehousing 和數據挖掘 DataMining 等技術的出現企業應用越來越復雜 會涉及到應用服務器 Web服務器 其它數據庫 舊系統中的應用以及第三方軟件等 數據庫產品與這些軟件是否具有良好集成性往往關系到整個系統的性能 Oracle公司的Oracle9i產品包括了OLAP 數據挖掘 ETL工具等一套完整的BI 商業智能 支持平臺 IBM公司也把BI套件作為其數據庫的一個重點來發展 微軟認為商務智能將是其下一代主要的利潤點 14 DBMS模塊 15 數據模型 數據庫系統模型是指數據庫中數據的存儲結構 較為常見的有層次模型 網絡模型 關系模型3種 選擇使用這3種模型的數據庫被分別稱為層次型數據庫 網絡型數據庫和關系型數據庫 16 1 層次型數據庫 層次型數據庫使用結構模型作為自己的存儲結構 這是一種樹型結構 它由結點和連線組成 其中節點表示實體 連線表示實體之間的關系 層次模型的特點 1 有且僅有一個結點無雙親 該結點稱為根結點 2 其他結點有且只有一個雙親 3 上一層和下一層記錄類型間聯系是1 N 學校的層次模型 18 2 網絡型數據庫 網絡型數據庫使用網絡模型作為自己的存儲結構 在這種存儲結構中 數據記錄將組成網絡中的節點 而記錄和記錄之間的關聯組成節點之間的連線 從而構成了一個復雜的網狀結構 1 有一個以上的結點沒有雙親 2 結點可以有多于一個的雙親 19 3 關系型數據庫 關系型數據庫使用的存儲結構是多個二維表格 表中的一行稱為一條記錄或元組 用來描述一個對象的信息 表中的一列稱為一個字段或屬性 用來描述對象的一個屬性 數據表與數據表之間存在相應的關聯 這些關聯將被用來查詢相關的數據 20 數據庫設計的基本步驟 按照規范化設計方法將數據庫設計分為以下6個階段需求分析概念結構設計邏輯結構設計數據庫物理設計數據庫實施數據庫運行和維護 21 22 數據庫設計思想原則 用戶參與發展眼光 系統不僅要滿足用戶目前的需求 也應滿足近期要求 還要對于遠期需求有相應的處理方案 23 需求分析的任務 詳細調查用戶要處理的對象充分了解原系統的工作概況明確用戶的各種要求然后在此基礎上確定新系統的功能信息要求處理要求完整性要求 24 需求分析方法 為了明確用戶的實際要求 需要 跟班作業 開調查會 請專人介紹 詢問 設計調查表要用戶填寫 查閱記錄等 25 收集基礎數據和一組數據流圖建設好數據字典 數據項數據結構數據流數據存儲處理過程將收集到的數據分析后 提交給用戶 征得用戶認可 26 一 公司管理數據庫系統的需求分析 在這個階段中 將對需要存儲的數據進行收集和整理 并組織建立完整的數據集 可以使用多種方法進行數據的收集 例如相關人員調查 歷史數據查閱 觀摩實際的運作流程以及轉換各種實用表單等 27 數據流圖 28 數據字典 數據流 29 學生成績管理系統 30 二 公司管理數據庫系統的概念模型設計 在需求分析的基礎上 用E R模型表示數據及其相互間的聯系 產生反映用戶信息需求的數據模型 概念設計的目的是準確地描述應用領域的信息模式 支持用戶的各種應用 概念設計的成果是繪制出公司管理數據庫系統的E R圖 31 概念模型 概念模型最常用方法是實體 聯系 Entity Relationship 方法 即E R方法 它源于1976年 E R圖所描述的現實世界的信息結構稱為實體 聯系模型 E R模型 E R圖中包括實體 屬性和聯系3種基本圖素 32 1 概念模型的主要概念 實體 客觀存在并相互區別的事物及其事物之間的聯系 例如 一個學生 一門課程 學生的一次選課等都是實體 屬性 實體所具有的某一特性 例如 學生的學號 姓名 性別 出生年份 系 入學時間等 聯系 實體與實體之間以及實體與組成它的各屬性間的關系 分為 一對一聯系一對多聯系多對多聯系 33 一對一聯系 one to one 定義如果兩個實體集A B中的任意一個實體至多與另一個實體集中的一個實體對應聯系 則稱A B為一對一聯系 記為 1 1 聯系 34 一對多聯系 one to many 定義設有兩個實體集 和 如果 中每個實體與 中任意個實體 包括零個 有聯系 而 中的每個實體至多與 中的一個實體有聯系 則稱該聯系為 從 到 的1對多聯系 記為 1 聯系 35 多對多聯系 many to many 定義如果兩個實體集 中的每個實體都與另一個實體集中的任意個實體 包括零個實體 有聯系 則稱這兩個實體集是多對多聯系 記為 聯系 36 2 概念模型的表示方法 實體型 用矩形表示 矩形框內寫明實體名 屬性 用橢圓形表示 并用無向邊將其與相應的實體連接起來 聯系 用菱形表示 菱形框內寫明聯系名 并用無向邊分別與有關實體連接起來 同時在無向邊旁標上聯系的類型 1 1 1 n或m n 37 E R模型 E R模型是現實世界的純粹表示 有三個基本成份 實體 聯系和屬性 它是一個概念性模型 描述的是現實中的信息聯系 而不涉及數據如何在數據庫系統中的存放 38 公司管理數據庫系統的E R模型 39 三 公司管理數據庫系統的邏輯設計 數據庫邏輯設計的任務是把數據庫概念設計階段產生的數據庫概念模式 E R圖 轉換為數據庫邏輯模式 進行數據庫邏輯設計 首先將概念設計中所得的E R圖轉換成等價的關系模式 然后 再進行邏輯模式的規范化和性能優化 使形成的數據庫系統數據表 滿足用戶的完整性和安全性要求 40 1 E R圖轉換為系統的數據表 利用E R圖到關系模式轉換的有關知識 將圖1 2所示的公司管理數據庫系統的E R圖轉換為系統的數據表 41 2 將邏輯模式規范化和性能優化 由E R圖轉換的數據庫邏輯模型還只是邏輯模式的雛形 要成為邏輯模式 還需要進行以下幾個方面的處理 對數據庫的性能 存儲空間等優化 數據庫邏輯模型的規范化 42 A 對數據庫的性能 存儲空間等優化 依據 提高數據庫性能的措施有 減少聯接運算和減少關系的大小和數據量等 節省存儲空間的措施有 減少每個屬性所占的空間 采用假屬性減少重復數據所占存儲空間 43 產品信息表 product 44 產品信息表 product 45 類別信息表 category 46 拆分產品信息表 product 后的邏輯模式 47 B 數據庫邏輯模型的規范化 數據庫的范式理論關系數據庫范式理論是在數據庫設計過程中將要依據的準則 數據庫結構必須要滿足這些準則 才能確保數據的準確性和可靠性 這些準則被稱為規范化形式 即范式 在數據庫設計過程中 對數據庫進行檢查和修改并使它符合范式的過程叫做規范化 48 數據庫的范式理論 范式按照規范化的級別分為5種 第一范式 1NF 第二范式 2NF 第三范式 3NF 第四范式 4NF 和第五范式 5NF 在實際的數據庫設計過程中 通常需要用到的是前三類范式 第一范式數據的原子性第二范式主鍵的絕對相關性第三范式依賴的傳遞性 49 1 第一范式 1NF 第一范式要求每一個數據項都不能拆分成兩個或兩個以上的數據項 例 在下面的表所示的teacher表中 學歷學位 是由學歷和學位組成的 因此 這個teacher表不滿足第一范式 可以將 學歷學位 字段拆分為兩個字段 如表所示 從而使該數據表滿足第一范式 50 teacher表 51 非規范化的關系score0 52 滿足1NF的關系score1 53 2 第二范式 2NF 主鍵的絕對相關性 如果一個數據表已經滿足第一范式 而且該數據表中的任何一個非主鍵字段的數值都依賴于該數據表的主鍵字段 那么該數據表滿足第二范式 即2NF 54 不滿足第二范式的P order表 例 在P order表中 數據表的主鍵是訂單ID 其中 產品名 字段完全依賴于 產品ID 字段 而不是取決于訂單ID 因此 P order表不滿足第二范式 但該數據表中的其他字段都完全依賴于該表的主鍵字段 訂單ID 因此 可以將該數據表中的 產品名 字段去掉 以滿足第二范式 不滿足第二范式的P order 55 滿足第二范式的P order表 56 3 第三范式 3NF 依賴的傳遞性 如果一個數據表已經滿足第二范式 而且該數據表中的任何兩個非主鍵字段的數值之間不存在函數依賴關系 那么該數據表滿足第三范式 即3NF 57 例 如果在employee表中 獎金 字段的數值是 薪水 字段數值的20 因此 這兩個字段之間存在著函數依賴關系 所以employee表不滿足第三范式 可以將 獎金 字段從該表中去掉 以滿足第三范式 58 規范化后的公司管理數據庫邏輯模式 59 C 確定數據表和表中的字段 Customer表 用來存儲有關客戶的信息 60 P order表 用來存儲有關訂單的信息 61 Employee表 用來存儲有關雇員的信息 62 Product表 用來存儲有關產品的信息 63 Category表 用來存儲有關產品類別的信息 64 D 建立約束 以保證數據的完整性和一致性 65 數據完整性 數據的完整性是指存儲在數據庫中的數據的正確性和可靠性 它是衡量數據庫中數據質量好壞的一種標準 數據完整性要確保數據庫中數據一致 準確 同時符合企業規則 因此 滿足數據完整性要求的數據應具有以下特點 數據類型準確無誤數據的值滿足范圍設置同一表格數據之間不存在沖突多個表格數據之間不存在沖突 66 實體完整性 EntityIntegrity 功能 實體完整性的目的是確保數據庫中所有實體的惟一性 也就是不應使用完全相同的數據記錄 方法 設定主鍵 PrimaryKey 惟一鍵 UniqueKey 惟一索引 UniqueIndex 和標識列 IdentityColumn 等 其中最常用的是使用主鍵 67 區域完整性 DomainIntegrity 功能 要求數據表中的數據位于某一個特定的允許范圍內 方法 使用默認值 Default 核查 Check 外鍵 ForeignKey 數據類型 DataType 和規則 Rule 等多種方法來實現區域完整性 例 如果限制 性別 字段的數據值可以是 男 或 女 那么 輸入的其他數值將被SQLServer2000拒絕 68 參照完整性 ReferentialIntegrity 作用 用來維護相關數據表之間數據一致性的手段 通過實現參照完整性 可以避免因一個數據表的記錄改變而造成另一個數據表內的數據變成無效的值 方法 外鍵 ForeignKey 核查 Check 觸發器 Trigger 和存儲過程 StoredProcedure 例 在employee表和P order表中 如果要刪除employee表中的一條記錄 而同時在P order表中存在需要參考該記錄的記錄集 那么該刪除操作將會失敗 這樣就避免了P order表中的數據失去關聯 69 用戶定義完整性 功能 這種數據完整性由用戶根據實際應用中的需要自行定義 方法 規則 Rule 觸發器 Trigger 存儲過程 StoredProcedure 和數據表創建時可以使用的所有約束 Constraint 例 在employee表和P order表中 如果某雇員負責的訂單數超過5個 那么該雇員的 薪水 應大于5000 70 主鍵和外鍵 數據表之間的關聯實際上是通過鍵 Key 來實現的 所謂的 鍵 是指數據表中的一個字段 鍵分主鍵 PrimaryKey 和外鍵 ForeignKey 兩種 它們都在數據表聯接的過程中起著重大的作用 71 主鍵 主鍵是數據表中具有惟一性的字段 設置為主鍵的字段的值不能重復 作用 執行查詢 以提高查詢的速度 數據庫管理系統并不會強制要求在每一個數據表中必須設置主鍵 但這里推薦大家這樣做 因為主鍵在數據表聯接和提高查詢性能方面會起到很大的作用 72 外鍵 一個數據表將使用該數據表中的外鍵連接到其它的數據表 而這個外鍵字段在其它的數據表中將作為主鍵字段出現 73 約束 使用約束是實現數據完整性最主要的方法 使用約束的主要目的是限制輸入到表中的數值的范圍 從應用范圍來講 約束可分為兩種 字段級約束和數據表級約束 字段級約束 字段級約束是數據表中字段定義的一部分 它只能應用于數據表中的一個字段 數據表級約束 數據表級約束獨立于數據表的字段定義之外 它可以應用于數據表中的多個字段 74 1 主鍵 PRIMARYKEY 約束 主鍵約束使用數據表中的一列數據或多列數據來惟一地標識一行數據 也就是說 在數據表中不能存在主鍵相同的兩行數據 而且 位于主鍵約束下的數據應使用確定的數據 不能輸入NULL來代替確定的數值 在管理數據表時 應確保每一個數據表都擁有自己惟一的主鍵 從而實現數據的實體完整性 75 2 外鍵 FOREIGNKEY 約束 外鍵約束主要用來實現數據的區域完整性和引用完整性 如果確定了數據表中某一個字段將作為該數據表與其他數據表關聯時使用的外鍵 那么 該字段的取值范圍將決定于關聯數據表中該字段的取值 76 3 惟一 UNIQUE 約束 惟一約束主要用來確保非主鍵字段中數據的惟一性 惟一約束同主鍵約束主要區別在于 在同一個數據表中 惟一約束可以用來同時約束一個或多個非主鍵字段中數據的惟一性 而主鍵約束只允許約束一個字段數據的惟一性或多個字段組合在一起的惟一性 在使用惟一約束的字段中允許出現NULL值 而在使用主鍵約束時 字段中不允許出現NULL值 77 4 核查 CHECK 約束 核查約束通過檢查輸入數據表字段的數值來維護數據的完整性 以確保只有符合條件的數據才能夠進入數據表 它通常是通過檢查一個邏輯表達式的結果是否為真來判斷數據是否符合條件的 78 1 建立主鍵約束 以惟一標識數據表的各條記錄 用主鍵來標識記錄 在本公司管理數據庫中 雇員ID是employee表的主鍵 客戶ID是customer表的主鍵 產品ID是product表的主鍵 類別ID是category表的主鍵 訂單ID是P order表的主鍵 79 2 建立數據表之間的關聯 并根據建立的關聯 實現表之間的參照完整性 80 81 82 3 對表中一些字段建立檢查約束 如性別字段值應為 男 或 女 添加約束 check 性別in 男 女 定貨日期應在系統日期之前 添加約束 check 訂貨日期 date 83 四 公司管理數據庫系統的物理設計 1 選擇存儲結構 設計物理存儲結構的目的是確定如何在磁盤上存儲關系 索引等數據庫文件 使得空間利用率最大而數據操作的開銷最小 由于物理存儲結構的設計包含的方面非常廣泛 而且不同的數據庫管理系統對磁盤空間管理的策略差別很大 所以 在此

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論