数据库设计法
?
? 01.簡述數據庫完整性及其作用?
解析:數據的準確性,保證數據中數據的準確性。
? 02.基本操作語句(DML DDL DCL)有哪些?語法是?
DML(data manipulation language):自動提交的數據庫操作語言
它們是SELECT、UPDATE、INSERT、DELETE,就象它的名字一樣
DDL(data definition language):自動提交的數據庫定義語言
主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定義或改變表(TABLE)的結構,數據類型,表之間的鏈接和約束等初始化工作上,他們大多在建立表時使用
DCL(Data Control Language):
是數據庫控制功能。是用來設置或更改數據庫用戶或角色權限的語句,包括(grant,deny,revoke等)語句。在默認狀態下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人員才有權力執行DCL
DQL:數據庫查詢語言,關鍵字:select
Insert、update、delete、select
這里以student表為例:
Insert into student(name,age) values(‘張三’,18)
Update student set name=’ 李四’ where id=1
Delete from student where id=2
見到update和delete,必須有where
Select * from student where id=1
? 03.常用的聚合函數有哪些?
Avg():求平均值
Sum():求和
Max();求最大值
Min():求最小值
Count():求總的記錄數,count(1)和count(*)等價,一般認為count(1)效率高。
? 04.表聯接分為哪幾種類型?
內連接,外連接和交叉聯接(數據庫原理)
三、 數據庫
1. 為什么要設計數據庫?
首先,良好的數據庫設計:
01. 可以節省數據的存儲空間
02. 能夠保證數據的完整性
03. 方便進行數據庫應用系統的開發
糟糕的數據庫設計:
01. 數據冗余、存儲空間浪費
02. 內存空間浪費
03. 數據更新和插入的異常
由此,我們得出一個結論,當數據庫比較復雜時,我們需要設計數據庫
2. 軟件項目開發周期中數據庫設計
從上圖我們可以看出,軟件開發中設計數據庫的步驟:
首先,我們要從現實世界的需求構建出一個模型,這種模型通過E——R圖的方式反映,如果確定E——R滿足了客戶的需求,那么我們需要將E-R圖規范化,構建出數據庫模型圖,當然在這個圖表中要反映出各個數據對象之間的關系,最后我們根據數據庫模型圖構建出符合我們需求的數據庫。
???? 需求分析階段:分析客戶的業務和數據處理需求
概要設計階段:設計數據庫的E-R模型圖,確認需求信息的正確和完整
詳細設計階段:應用三大范式審核數據庫結構
代碼編寫階段:物理實現數據庫,編碼實現應用
軟件測試階段:……
安裝部署:……
3. 設計數據庫的步驟
01. 收集信息
與該系統有關的人員進行交流,座談,充分了解用戶需求,理解數據庫需要完成的任務。
02. 標識實體(Entity)
標識數據庫要管理的關鍵對象或者實體,實體一般都是名詞
03. 標識每個實體的屬性
04. 標識實體之間的關系
4.E—R圖
映射基數:
主要分為以下幾類:
一對一:一輛車只能對應一個車位
一對多:一個客房可以入住多個客人
多對一:多個客人可以入住一個客房
多對多:一本書可以被多個人接,一個人也可以借多本書
??????? 或者是一個老師可以教多個班級,一個班級可以被多個老師教
一個關系的屬性名的集合稱為關系模式
Rdbms:
relational database management system 關系型數據庫管理系統
01. 僅有好的RDBMS并不足以避免數據冗余,必須在數據的設計中創建好的表結構
02. Dr? E.F.codd,一個IBM研究員。最初定義了規范化的三個級別,范式是具有最小冗余的表結構
03. 這些范式是:
第一范式(1ST NF—First? Normal?? Form)
第一范式的目標是確保每列的原子性
如果沒列都是不可再分的最小單元(也稱為最小的原子單元),則滿足第一范式(1nf)
第二范式(2nd NF—Second? Normal? Form)
如果一個關系滿足1NF,并且除了主鍵以外的其他列,都依賴于該主鍵,則滿足第二范式(2NF),第二范式要求每個表只描述一件事情。
第三范式(3rd NF—Third? Normal? Form)
如果一個關系滿足2NF,并且除了主鍵以外的其他列都不傳遞依賴于主鍵列,則滿足第三范式(3NF)
今天總算理解清楚了一點,:
第二范式是其他列都要依賴于主鍵列,但是沒有說明是直接依賴還是間接依賴。也就是直接依賴和間接依賴均可以。但是第三范式明確指出只能是直接依賴。
如果出現間接依賴的情況,要單獨獨立出來一張表.
5,規范化和性能的關系
為滿足某種商業目標,數據庫性能比規范化數據庫更重要
? 具體策略和方法:
01. 通過在給定的表中添加額外字段,以大量減少需要從中搜索信息所需的時間
02. 通過在給定的表中插入計算列(比如成績總分),以方便查詢
??????? 在數據規范化同時,要綜合考慮數據庫的性能。
? 05.設計數據庫步驟
第一步:需求分析(收集信息)
第二步:繪制E-R圖 (標示實體 ,找到實體的屬性 , 標注實體間的關系)
第三步:將E-R圖轉換成數據庫模型圖
第四步:將數據庫模型圖轉換成數據表
? 06.如何繪制E-R圖
? 矩形;實體
? 橢圓形:屬性
? 菱形:關系
? 07.如何繪制數據庫模型圖
PowerDesigner :選擇PhysicalModel
如有有人不小心關掉了Platter,對工具欄點擊右鍵,勾選Platter即可。
當我們將數據庫模型圖設計完畢后,可以通過菜單中的database下的
Generate Database來生成對應的sql
? 08.三大范式規范數據庫設計
第一范式:保證每列的原子性,不可再被拆分
第二范式:在滿足第一范式的基礎上,一張表只能描述一件事情
第三范式:在滿足第二范式的基礎上,除了主鍵列之外其他列都要直接依賴于主鍵
要在規范化和性能之間取一個平衡
四、 課程總結
01. 在需求分析階段,設計數據庫的一般步驟是什么?
收集信息
標識實體
標識每個實體的屬性
標識實體之間的關系
02. 在概要設計階段和詳細設計階段,設計數據庫的步驟是什么?
繪制E——R圖
將E—R圖轉化為數據庫模型圖
應用三大范式規范化表設計
03. 為了設計結構良好的數據庫,需要遵守一些專門的規則,稱為數據庫的設計范式,分別是什么?
三大范式的例子:
?????
????????????????
?????? ?挺辛苦的,好好看吧!
轉載于:https://www.cnblogs.com/weiguangyi/p/5103026.html
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
- 上一篇: Unity中Oculus分屏相机和普通相
- 下一篇: Keymob浅析2016网络营销十大趋势