在資料庫的設計中將
1. 在系統設計中,對資料庫的設計應考慮哪些設計原則
資料庫是整個軟體應用的根基,是軟體設計的起點,它起著決定性的質變作用,因此我們必須對資料庫設計高度重視起來,培養設計良好資料庫的習慣,是一個優秀的軟體設計禪仿巧師所必須具備的基本素質條件!
那麼我們要做到什麼程度才是對的呢?下面就說說資料庫設計的原則:
1、資料庫設計最起碼要佔用整個項目開發的40%以上的時間
資料庫是需求的直觀反應和表現,因此設計時必須要切實符合用戶的需求,要多次與用戶溝通交流來細化需求,將需求中的要求和每一次的變化都要一一體現在資料庫的設計當中。如果需求不明確,就要分析不確定的因素,設計表時就要事先預留出可變通的欄位,正所謂「有備無患」。
2、資料庫設計不僅僅停留於頁面demo的表面
頁面內容所需要的欄位,在資料庫設計中只是一部分,還有系統運轉、模塊交互、中轉數據、表之間的聯系等等所需要的欄位,因此資料庫設計絕對不是簡單的基本數據存儲,還有邏輯數據存儲。
3、資料庫設計完成後,項目80%的設計開發在你腦海中就已經完成了
每個欄位的設計都是大友有他必要賀鍵的意義的,你在設計每一個欄位的同時,就應該已經想清楚程序中如何去運用這些欄位,多張表的聯系在程序中是如何體現的。換句話說,你完成資料庫設計後,程序中所有的實現思路和實現方式在你的腦海中就已經考慮過了。如果達不到這種程度,那當進入編碼階段後,才發現要運用的技術或實現的方式資料庫無法支持,這時再改動資料庫就會很麻煩,會造成一系列不可預測的問題。
4、資料庫設計時就要考慮到效率和優化問題
一開始就要分析哪些表會存儲較多的數據量,對於數據量較大的表的設計往往是粗粒度的,也會冗餘一些必要的欄位,已達到盡量用最少的表、最弱的表關系去存儲海量的數據。並且在設計表時,一般都會對主鍵建立聚集索引,含有大數據量的表更是要建立索引以提供查詢性能。對於含有計算、數據交互、統計這類需求時,還要考慮是否有必要採用存儲過程。
5、添加必要的(冗餘)欄位
像「創建時間」、「修改時間」、「備注」、「操作用戶IP」和一些用於其他需求(如統計)的欄位等,在每張表中必須都要有,不是說只有系統中用到的數據才會存到資料庫中,一些冗餘欄位是為了便於日後維護、分析、拓展而添加的,這點是非常重要的,比如黑客攻擊,篡改了數據,我們便就可以根據修改時間和操作用戶IP來查找定位。
6、設計合理的表關聯
若多張表之間的關系復雜,建議採用第三張映射表來關聯維護兩張表之間的關系,以降低表之間的直接耦合度。若多張表涉及到大數據量的問題,表結構盡量簡單,關聯也要盡可能避免。
7、設計表時不加主外鍵等約束性關聯,系統編碼階段完成後再添加約束性關聯
這樣做的目的是有利於團隊並行開發,減少編碼時所遇到的問題,表之間的關系靠程序來控制。編碼完成後再加關聯並進行測試。不過也有一些公司的做法是乾脆就不加表關聯。
8、選擇合適的主鍵生成策略
2. 在關系資料庫設計中設計關系模式是誰的任務
資料庫管理員的任務。
設計關系模式是資料庫管理員的任務,它的目的是將數改胡型據存儲在一個有效的方式,以便用戶可以容易地訪問和檢索它們,關系模式定義了資料庫中不同表之間的關系,並指定了每核猜個表中包含的欄位,以及欄位之間的關系。
關系資料庫是一種資料庫做卜,它將數據存儲在不同的表中,使用關系來表示數據之間的關系,允許用戶跨多個表查詢數據。
3. 求資料庫題目答案
81. 對於分布式資料庫,可以簡單歸納為 ( A )
A.數據邏輯上分散,物理上統一 B.數據物理上分散,邏輯上統一
C.數據在邏輯上、物理上都是分散的 D.數據在邏輯上、物理上都是統一的
82. 子模式DDL用來描述 ( A )
A. 資料庫的總體邏輯結構B. 資料庫的局部邏輯結構
C. 資料庫的物理存儲結構D. 資料庫的概念結構
83. 在DBS中,DBMS和OS之間的關系是 ( B )
A. 相互調用 B. DBMS調用OS
C. OS調用DBMS D. 並發運行
84.在關系R與關系S進行自然連接時,只把R中原該舍棄的元組保存到新關系中,這種操作稱為 ( C )
A.外連接 B.內連接 C.左外連接 D.右外連接
85.在SQL中使用FOREIGN KEY 時,與之配合的語句是 ( D )
A.EXISTS B.EXCEPT C.TABLE D.REFERENCES
86. 在資料庫設計中,將ER圖轉換成關系數據模型的過程屬於 ( C )
A. 需求分析階段 B. 邏輯設計階段 C. 概念設計階段 D. 物理設計階段
87.定義片段以及全局關系與片段之間映像的模式是 ( D )
A.外模式 B. 概念模式 C.分片模式 D.分配模式
88.在資料庫技術中,未提交的隨後又被撤消的數據稱為( D )
A.錯誤數據 B.冗餘數據 C.過期數據 D.臟數據
89.下述各項中,屬於資料庫系統的特點的是 ( C )
A.存儲量大 B.存取速度快 C.數據獨立性 D.操作方便
91. SQL的全局約束是指基於元組的檢查子句和 (B )
A. 非空值約束 B. 域約束子句
C. 斷言 D. 外鍵子句
92. 分布式資料庫系統中分片模式和分配模式均是 ( C )
A. 全局的 B. 局部的
C. 分布的 D. 集中的
93.在資料庫系統中,視圖可以提供數據的(A)
A.完整性 B.並發性 C.安全性 D.可恢復性
94.在分布式資料庫中,數據的垂直分片是對全局關系的(B)
A.選擇操作 B.投影操作
C.自然聯接操作 D.半聯接操作
95. 在關系資料庫中,表與表之間的聯系是通過( D )實現的。
A.實體完整性規則B.參照完整性規則
C.用戶自定義的完整性規則D.主鍵
96. 以下操作中,不能用DML實現的是 ( B )
A.數據查詢B.定義資料庫的三級結構
C.數據插入D.數據刪除
97. 如果關系R和S進行自然連接時,只把S中原該舍棄的元組保存到新關系中,這種操作稱為 ( D )
A.外連接B.內聯接 C.左連接D.右外連接
98. 在關系中,能唯一標識組的屬性集稱為關系模式的 ( B )
A.候選鍵 B.主鍵 C.外鍵 D.超鍵
99. 能夠消除多值依賴引起的冗餘的範式是 ( C )
A.2NF B.3NF C.4NF D.BCNF
100.在面向對象的模型中,表示實體中的每個屬性時,使用 ( A )
A.兩個變數,一個消息 B.兩個變數,兩個消息
C.一個變數,兩個消息 D.一個變數,一個消息
老長時間不看了 不幹保證全隊…………
4. 在資料庫中如何設計許可權表(給資料庫用戶創建表的許可權)
我做過類似有許可權管理的系統,表分3個:
第一個表是許可權表(tb_pope),都有什麼許可權,以你的系統要求,分3個許可權:管理所芹戚有學生,管理系嫌改陵學生,本學生。
表列名可以是:ID,popeName,裡面有3條記錄。
1,管理所有學生
2,管理系學生
3,本學生
第二個表是用戶表(tb_user):ID,userName,age,等等.
第三殲埋個表就是用戶許可權表(tb_userpope):ID,userID,PopeID
登錄時先檢查是否有該用戶名,然後讀取其許可權值,根據許可權操作資料庫顯示或隱藏操作的部分。
大致就這樣了。
5. 在數據設計中,將E-R 圖轉換成關系數據模型的過程屬於什麼階段
資料庫設計通常分為6個階段1(需求分析:分析用戶的需求,包括數據、功能和性能需求;2概念結構設計:主要採用E-R模型進行設計,包括畫E-R圖;3邏輯結構設計:通過將E-R圖轉換成表,實現從E-R模型到關系模型的轉換;4資料庫物理設計:主要是為所設計的資料庫選擇合適的存儲結構和存取路徑;5資料庫的實施:包括編程、測試和試運行;6資料庫運行與維護:系統的運行與資料庫的日常維護。),主要討論其中的第3個階段,即邏輯設計。通過一個實際的案例說明在邏輯設計中E-R圖向關系模式的轉換。