1. 程式人生 > >【轉】資料庫的設計(E-R圖,資料庫模型圖,三大正規化)

【轉】資料庫的設計(E-R圖,資料庫模型圖,三大正規化)

一.資料庫設計的概念

資料庫設計是將資料庫中的資料實體及這些資料實體之間的關係,進行規劃和結構化的過程.

二.資料庫設計的重要性

如果一個數據庫沒有進行一個良好的設計,那麼這個資料庫完成之後他的缺點是:

1.效率會很低

2更新和檢索資料時會出現很多問題,

反之,一個數據庫被盡心策劃了一番,具有良好的設計,那他的優點是:

1.效率會很高.

2.便於進一步擴充套件.

3.使得應用程式的開發變得更容易.

三.設計資料庫的步驟

1.需求分析階段:分析客戶的業務和資料處理需求.

2.概要設計階段:他主要就是繪製資料庫的E-R圖.

3.詳細設計階段:應用資料庫的三大正規化進行稽核資料庫的結構.

總結:在進行資料庫的系統分析時,都以下列4點位參考的基本步驟.

01.收集資訊.

02.標識實體.

03.標識每個實體需要儲存的詳細資訊.

04.標識實體之間的關係.

四.學會繪製E-R圖

繪製E-R圖首先要了解什麼是實體,什麼是屬性,什麼是聯絡.

1.首先實體是指現實世界中具有區分其他事物的特徵或屬性與其他實體有聯絡的實體,針對於資料庫中的表而言實體是指表中一行一行特定資料,但我們在開發中,也常常把整個表稱為一個實體.

2.屬性可以理解為實體的特徵,針對於資料庫中的表而言實體是指表中的列.

3.聯絡是兩個或多個實體之間的關聯關係.

4.實體關係圖:

例:酒店管理系統E-R圖:

五.對映基數

1.一對一:X中的一個實體最對與Y中的一個實體關聯,並且Y中的一個實體最多與X中的一個實體關聯.

Eg:一個人只有一張身份證.

2.一對多:X中的一個實體可以與Y中的任意數量的實體關聯;Y中的一個實體最多與X中的一個實體關聯.

Eg:一個班級有多名學生.

3.多對一:X中的一個實體最多與Y中的一個實體關聯;Y中的一個實體可以與X中的任意數量的實體關聯.

Eg:客人與客房之間的關係,一個客人只能住一間客房.

4.多對多:X中的一個實體可以與Y中的任意數量的實體關聯,反之亦然.

Eg:學生和課程之間的關係,一個學生可以有多門課程,一門課程可以對應多名學生.

六.繪製資料庫模型圖

以酒店管理系統為例:

七.資料庫規範化

如果資料庫沒有進行相應的規範設計,雖然在查詢資料庫可能會比較容易,但有時會造成一些問題,主要的問題如下:

1.資訊重複(會造成儲存空間的浪費及一些其他問題).

2.更新異常(冗餘資訊不僅浪費空間,還會增加更新的難度).

3.插入異常

4.刪除異常(在某些情況下,當刪除一行時,可能會丟失有用的資訊).

八.三大正規化

1.第一正規化:

目標是確保每列的原子性.如果每列都是不可再分的最小資料單元,則滿足第一正規化.

2.第二正規化:

第二正規化在第一正規化的基礎上更進一層,其目標是確保表中的每列都和主鍵相關,也就是說在一個數據庫表中,一個表中只能儲存一種資料,不可以把多種資料儲存在同一張資料庫表中.如果一個關係滿足第一正規化,並且除了主鍵以外的其他列都依賴與該主鍵.則滿足第二正規化.

3.第三正規化:

第三正規化在第二正規化的基礎上更進一層,第三正規化的目標是確保每列都和主鍵列直接相關,而不是間接相關.如果一個關係滿足第二正規化,並且除了主鍵以外的其他列都這能依賴於主鍵列,列和列之間不存在相互依賴關係,則滿足第三正規化.

九.規範性和效能的關係

為了滿足三大正規化,我們的資料操作效能會受到相應的影響,所以,在實際的資料庫設計中,既要考慮三大正規化,避免資料的冗餘和各種資料操作異常;有要考慮到資料訪問效能,有時,為了減少表間連線,提高資料庫的訪問效能,允許適當的資料冗餘列,這可能是最合適的資料庫設計方案.

相關推薦

SQL server 練習4資料庫設計E-R

CREATE DATABASE [sauims] CONTAINMENT = NONE ON PRIMARY ( NAME = N'sauims', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL

資料庫設計E-R資料庫模型三大正規化

一.資料庫設計的概念 資料庫設計是將資料庫中的資料實體及這些資料實體之間的關係,進行規劃和結構化的過程. 二.資料庫設計的重要性 如果一個數據庫沒有進行一個良好的設計,那麼這個資料庫完成之後他的缺點是: 1.效率會很低 2更新和檢索資料時會出現很多問題, 反之,一個數據庫被盡心策劃了一番,具有良好的設計,那他

資料庫系統概念第7章 資料庫設計E-R模型 知識總結

《資料庫系統概念》第7章知識點總結 資料庫設計和E-R模型 本章我們將學習將資料庫表示為一個關係資料庫設計和一個與之關聯的約束集合 實體:指示所有可明確識別的個體。各種各樣的實體以多種方式互相關聯,而所有這些方式都需要在資料庫設計中反映出來 設計一個數據庫模式的時候,

論文閱讀Chenyi Chen——ACCV2016R-CNN for Small Object Detection

數據 大小 table 使用 con 改進 包括 end 修改 Chenyi Chen——【ACCV2016】R-CNN for Small Object Detection 目錄 作者和相關鏈接 方法概括 創新點和貢獻 方法細節 實驗結果 總結與收獲點 參考文獻

資料庫系統概念機械工業出版社第七版複習——第六章:資料庫設計E-R模型

E-R模型 實體-聯絡模型:Entity-Relationship Model E-R圖要點 實體(Entity) 客觀存在並可相互區分的事物叫實體(唯一標識)。 實體集(Entity Set) 是具有相同型別及共享相同性質(屬性)的實體集合。如全體學生。組成實體集的各實

SVM入門線性分類器的求解——問題的轉化直觀角度

content cli 樣本 image ges 五個 是你 角度 spa SVM入門(六)線性分類器的求解——問題的轉化,直觀角度 讓我再一次比較完整的重復一下我們要解決的問題:我們有屬於兩個類別的樣本點(並不限定這些點在二維空間中)若幹,如圖, 圓形的樣本點定為正樣

JMeter學習參數化

一個 ngx adr conf 英文逗號 .net 註意 itl ron JMeter也有像LR中的參數化,本篇就來介紹下JMeter的參數化如何去實現。 參數化:錄制腳本中有登錄操作,需要輸入用戶名和密碼,假如系統不允許相同的用戶名和密碼同時登錄,或者想更好的模擬多個

JMeter學習元件的作用域與執行順序

ces ner 處理器 規則 fig 子節點 控制器 conf 節點 1.元件的作用域 JMeter中共有8類可被執行的元件(測試計劃與線程組不屬於元件),這些元件中,取樣器是典型的不與其它元件發生交互作用的元件,邏輯控制器只對其子節點的取樣器有效,而其它元件(config

JMeter學習錄制腳本

使用 get 運行 喜歡 錄制完成 帶來 免費 sdn title ---------------------------------------------------------------------------------------------------- 環境

JMeter學習二十九使用Jmeter創建ActiveMQ JMS POINT TO POINT請求環境搭建、請求創建、插件安裝、監聽服務器資源等

分布式 jndi 根目錄 point 啟動 lib .cn 轉載 p2p 最近要做公司消息中間件的性能測試,第一個想到的工具就是Jmeter了,網上簡單搜了一下,基本上都是WEB測試的居多,只好自己研究官方文檔了。 其中涉及Jmeter基本的術語或者概念,請自行參考官方文檔

JMeter學習二十七Jmeter常見問題

pre 麻煩 continue 而不是 行為 let 方式 prop 右上角 收集工作中JMeter遇到的各種問題 1. JMeter的工作原理是什麽?   向服務器提交請求;從服務器取回請求返回的結果。 2. JMeter的作用?   JMeter可以用於測試

JMeter學習十六JMeter函數學習

blog 自動 當前 3.2 add 函數的調用 瀏覽器 con 保存 JMeter函數是一些能夠轉化在測試樹中取樣器或者其他配置元件的域的特殊值。一個函數的調用就像這樣:${_functionName(var1,var2,var3)},-functionName匹配函數名

JMeter學習十八JMeter測試Java

sets interval permsize int 文件 不同 時間 結果 argument 實例: 服務為:將輸入的兩個參數通過IO存入文件; 1、打開MyEclipse,編寫Java代碼 服務: package test; import java.io.F

JMeter學習二十八內存溢出解決方法

不能 -xms 百度 解決 code apache 超過 軟件測試 內存 使用jmeter進行壓力測試時遇到一段時間後報內存溢出outfmenmory錯誤,導致jmeter卡死了,先嘗試在jmeter.bat中增加了JVM_ARGS="-Xmx2048m -Xms2048m

JMeter學習二十五HTTP屬性管理器HTTP Cookie Manager、HTTP Request Defaults

agen 讀取 expired fault 範圍 運行時 ear 定制 只有一個 Test Plan的配置元件中有一些和HTTP屬性相關的元件:HTTP Cache Manager、HTTP Authorization Manager、HTTP Cookie Manager

VBA 入門

文件的 方法 記錄 glob 數字 數據 list 目錄 處理 VBA語言的基礎認識 由 vietdung90 創建,最後一次修改 2016-10-18 【轉自W3CSCHOOL】 第一節:標識符 一、定義 標識符是一種標識變量、常量、過程、函數、類等語言構

姿態角Euler角:yaw pitch roll

data- 引用 c2c ec2 方法 ef6 F12 ram fcc 姿態角和自由度相關聯; 姿態角在控制,機械領域廣泛使用; 這裏,簡單了解一下: 什麽是姿態角(Euler角)? yaw,pitch,roll的識別? 工具/原料 閱

取模mod與取余rem的區別——Matlab學習筆記

學習筆記 ear inf ace 方向 由於 返回 rem pos 昨天在學習Matlab的數學函數時,教程中提到取模(mod)與取余(rem)是不同的,今天在網上具體查了一下: 通常取模運算也叫取余運算,它們返回結果都是余數.rem和mod唯一的區別在於:

Storm入門原理介紹

問題導讀:1.hadoop有master與slave,Storm與之對應的節點是什麼? 2.Storm控制節點上面執行一個後臺程式被稱之為什麼? 3.Supervisor的作用是什麼? 4.Topology與Worker之間的關係是什麼? 5.Nimbus和Supervisor之間的所有協調工作有m

USB命令請求和USB描述符

轉載自:http://hi.baidu.com/deep_pro/blog/item/0ca086af97ca15f1faed5016.html 一、USB命令   在USB規範裡,對命令一詞提供的單詞為“Request”,但這裡為了更好的理解主機與裝置之間的主從關係,將它定義成“命令”。