天天看點

2011寒假-資料庫學習筆記

适用于:

1,數值小且簡單

2,數值不經常變化

3,希望能夠使用簡單的文本編輯器來更改數值

4,希望儲存以前數值的簡單曆史清單,

5,希望使用工具快速比較兩個檔案

例如:INI檔案(initialization)

1.2關系資料庫

l 需要在不同的表之間執行複雜的查詢和連接配接.

l 需要執行資料有效性驗證,如在其他表中檢驗相關行的存在.

l 需要為特定的資料有效性驗證,如在其他表中檢驗相關行的存在.

l 希望能夠靈活地建構在開始設計項目是本沒計劃的新查詢.

l 資料可以很自然地裝配進簡單的表格形式.

l 需要在圖表中可視化顯示資料.

l 終端使用者習慣使用電子資料表.

l 終端使用者希望能夠獨自對資料進行實驗.

1.4 分級資料庫

l 資料是自然分級的.

l 需要執行利用分級結構的操作

l 資料是自然分級

l 可用XML工具提供需要的特性.

l 希望獲得模式檔案能夠提供的各種有效性驗證.

l 希望能夠在支援XML的産品中導入和導出資料.

l 資料本身就是一種網絡形式

l 需要對資料執行網絡運算,如查找最短路徑或計算網絡流

l 不需要對資料執行複雜的查詢.

l 程式設計環境和體系結構支援使用對象.

l 不需要對資料執行複雜的查詢

1.面向文檔的資料庫

2.演繹資料庫

3.次元資料庫

4.時态資料庫

l 平面檔案适合存儲簡單的值或完整的文檔,盡管它們不具備并發性和友善更新的特性.

l INI檔案适合存儲便于查找的簡單值,盡管它們不具備并發性和友善更新的特性.

l Windows系統系統資料庫适合存儲便于查找的簡單值并且能夠處理系統設定和使用者特定的設定.

l 關系資料庫是最常用的資料庫類型,它們支援複雜的資料庫關系,完善的資料驗證.完整性限制,級聯更新和删除,特定查詢,以及其他許多有用的特性.

l 電子資料表适合繪制圖表并且便于以及熟悉它們的使用者使用.

l 分級資料庫适合存儲和操縱分級資料,如組織結構圖和族譜圖.

l XML檔案适合存儲分級資料,盡管它們不具備并發性和友善更新的特性.

l 網絡資料庫适合存儲像街道或電話網絡這樣的網絡資料.

l 對象資料庫适合将程式設計對象內建到資料庫中.

l 對象關系資料庫和對象關系映射系統結合了對象資料庫和關系資料庫的優良特性.關系資料庫之上的對象關系映射層可以在程式設計人員和資料庫開發人員之間提供有益的隔離.

l 面向文檔的資料庫适用于文檔管理系統

l 演繹資料庫能夠基于資料庫中存儲的規則和資料執行邏輯推演

l 次元資料庫以超立方體的方式考慮資料并且可以友善地基于次元選擇來研究資料

l 時态資料庫将時間和資料內建在一起,以便能夠記錄和操作随時間變化的資訊.

作業:

1.分級

2.XML

3.INI

4.關系(電子資料表)

5.次元(電子資料表)

6.電子資料表

7.網絡(XML)

8.關系

9.對象

10.關系

11.關系

12.關系

13.關系

14.文檔

15.平面檔案

l 複合鍵或組合鍵: 包括不止一個字段的鍵.

l 超鍵: 沒有兩行具有完全相同值的一組列.

l 候選鍵: 最小的超鍵

l 唯一鍵: 資料庫用于限定性唯一性的超鍵.

l 主鍵: 資料庫用來快速定位記錄的唯一鍵.

l 替代鍵: 不是主鍵的候選鍵

l 次鍵: 用來查找記錄但不能保證唯一性的鍵.

l 外鍵: 用做一種限制而不是用來查找表的記錄

l 檢查限制

字段級檢查限制驗證單個列

表級别限制能夠檢查一個記錄的多個字段以檢視資料是否有效

l 選擇(Selection)

l 投射(Projection)

l 聯合(Union)

l 相交(Intersection)

l 內插補點(Difference)

l 笛卡爾積(Cartesian Product)

l 連接配接(Join)

l 相除(Divide)

小結:

l 正式的關系資料庫術語,如關系.屬性和元組

l 非正式的術語,如表,行,記錄,列和字段

l 多種不同的鍵,包括超鍵.候選鍵,和主鍵

l 可以對列或表施加的各種不同的限制

l 為關系資料庫定義的操作

練習:

1.工資大于0和提成等于0 或者沒有工資和提成大于0

應該這樣說銷售員必須要有薪水或業績的提成,但是不能同時擁有薪水和業務提成

2

屬性

字段

關系

行 表

聯系 檔案

外鍵

記錄 聯系

元組

表 行

檔案 記錄

視圖

查詢結果

虛拟表

3.是,因為在一列中沒有2個相同的值

4.不是,因為在一列中有2個相同的值

5.State,Abbr,Title

6.什麼是域? 就是數值的範圍

7.Room/FirstName/LastName

8.Room/firstName, Room?lastName

9.Room,First,LastName必須要有值, 房間編号是偶數,Room Is Even

10.Phone,cellPhone 至少要有一個值

l 拿出一個問題清單

l 與客戶會面

l 了解重要的人物

l 向客戶請教

l 設身處地為使用者考慮

l 調研現行業務

l 集體讨論

l 考慮未來

l 搞清客戶的思維過程

l 了解客戶真正需要什麼

l 區分優先次序

l 證明了解的情況

l 撰寫需求文檔

l 編制用例

l 确定可行性

l 系統應該實作什麼功能

l 建構此系統的原因是什麼?你希望它完成哪些任務?

l 系統應該呈現什麼樣的外觀?請大緻繪出使用者界面.

l 系統的不同部分分别需要多少響應時間(5s<)

l 需要什麼樣的報表

l 最終使用者是否需要定義新的報表?

l 有那些參賽選手?

l 進階使用者和管理者是否需要定義新的報表?

l 設法确定哪些客戶扮演何種角色

l 請教客戶以擷取資訊

l 查找有關使用者角色和職責

l 直接觀察客戶工作并研究他們的現行業務

l 集體談論并将結果歸類成優先級1,2,和3,項目

l 驗證你對客戶需求的了解

l 編寫含有可驗證傳遞成果和用例的需求文檔

1.

客戶角色

說明

轉變立場的人

最初反對項目的使用者通過參與項目開發過程轉而支援項目

客戶負責人

充分了解客戶的需求,并有權作出有效的決定

客戶代表

回答您對項目的有關提問

唱反調的人

提供現實性檢查并防止團隊迷失

執行負責人

推動項目的最進階的客戶,願意與超級惡棍鬥争

一般的壞家夥

從讓人讨厭的反對者到惡意的破壞者/超級惡棍

臨時從業人員

不會長期從事項目的某些人,可能對項目有幫助或對項目并不那麼關注

助手/資訊提供者

通常會使項目平穩運轉的人,不引人關注卻很有用

利益相關者

對項目感興趣的任何人

本課學習要點

l 建立使用者界面模型

l 建立語義對象模型

l 建立實體關系模型

l 将這些類型的模型轉換成關系模型

語言類的名稱采用全部大寫來書寫

語義對象屬性采用駝峰命名

1.3.2基數

常見基數

0 為可選參數,1為允許一個值,N為任意值

l 1.1

l 1.N

l 0.1

l 0.N

實體:矩形,名詞

屬性:橢圓

關系:菱形,動詞

注意:每個關系隐式定義了一個反向關系,人駕駛車,反向:車被人駕駛

<a href="http://blog.51cto.com/attachment/201202/215134854.jpg" target="_blank"></a>

l 環:(圈或橢圓)表示0

l 線條:一條短線(虛線或豎線)表示1

l 魚尾紋:圓錐形帳篷表示很多

<a href="http://blog.51cto.com/attachment/201202/214948758.png" target="_blank"></a>

1.4.3 繼承

<a href="http://blog.51cto.com/attachment/201202/214954547.png" target="_blank"></a>

理論

資料庫

檔案

SOM

ER

實體集合

記錄

對象

實體

l 建構使用者界面模型來了解資料庫需要存儲的資料類型

l 建構語義對象模型來研究解決問題時将會打交道的對象

l 建構實體關系圖來研究問題中涉及的實體并檢視它們的互動方式

l 将語義對象模型和實體關系圖轉換成關系模型

本課簡要:

l 業務規則如此重要的原因

l 識别業務規則的方法

l 修改關系模型也隔離業務規則的方法

l 規劃化概念

l 不同類型或級别的規範化解決那些問題

l 規範化資料庫的方法

l 如何知道何種級别的規範化最适合你的資料庫.

從弱到強的排序

l 第一範式(First Normal Form, 1NF)

l 第二範式(Second Normal Form, 2NF)

l 第三範式(Thrid Normal Form, 3NF)

l Boyce-Codd 範式(Boyce-CoddNormal Form, BCNF)

l 第四範式(Fourth Normal From, 4NF)

l 第五範式(Fifth Normal Form, 5NF)

l 域/鍵範式(Domain/Key Normal Form, DKNF)

本課簡要

l 在實際使用中使用資料庫更有效可以采取的步驟

l 在使用者界面中使驗證更容易的方法

l 便于管理不可搜尋的資料的方法

1.存儲有關特定類型的對象資訊

2.表示兩個或多個對象之間的連結

3.查找表

一.不要在表名稱,字段名稱内或資料庫對象中的其他某個地方使用專用字元

二.如果不同表中的兩個字段包含相同的資料,則賦予這兩個字段相同的名稱

三.強制的命名規則是試用有意義的名稱

l 提前規劃并記錄所有事項

l 将域轉換為表以幫助使用者界面程式設計人員,并簡化域資訊的維護

l 重視表并使每個表都執行一個單獨的任務

l 使用一些備援的,非規範化的表來改善性能

l 在對象之間提供不同類型的關聯

l 存儲資料層次結構和網絡

l 處理與時間相關的資料

l 記錄使用者操作

本文轉自 liam2199 部落格,原文連結:  http://blog.51cto.com/youxilua/773059 如需轉載請自行聯系原作者