成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

程序員應知應會之數據庫設計的那些事兒

數據庫 新聞
在做一個項目之前,完全了解項目用戶的業務流程,是對于開發團隊素質的一個重要考驗。

對于很多應用系統來說,數據庫結構是應用運行的基礎,這就好像房子的地基一樣,地基不牢,地動山搖。當應用程序建立之后,再改數據庫表結構,就會導致很多不必要的冗余工作量。

然而很多開發團隊卻非常不重視這個過程,數據庫及接口的設計極其隨意。甚至還有一些大神認為,數據庫和接口的改變是避免不了的事情,做項目就是做完之后試試看,不行再改??梢哉f,從方法論上就存在問題,就好像修路一樣,修好了挖,挖好了修,反反復復,來來回回,開發者和用戶都苦不堪言。

說了這么多,下面我們來正式介紹一下數據庫設計的整個流程。

數據庫設計的基本步驟包括以下幾個方面:

一、需求分析階段

需求分析是整個數據庫設計的基礎和核心,需求分析的結果是否能準確地反映用戶的實際需求,將直接影響到后面各個階段的設計,并影響到設計結果是否合理、實用。這一階段要收集和分析用戶對系統的信息需求和處理需求,以及后續可以存在的擴展功能,從而得到設計系統所必需的信息,建立系統的需求說明文檔。

在很多項目中,存在的最大問題就是開發團隊對于項目,沒有從日常使用者的角度去考慮問題,對項目所涉及的業務流程不熟悉,完全根據用戶的描述來被動設計。而往往不懂技術的用戶描述是不完備的,最終導致完全的項目在用戶試用之后發現很多問題,導致工作量的大幅增加。

因此,在做一個項目之前,完全了解項目用戶的業務流程,是對于開發團隊素質的一個重要考驗。

二、概念設計階段

概念設計是數據庫設計的關鍵所在,這一階段通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型,并且用E-R圖表示出來。

概念模型也稱為信息模型,用于信息世界的建模,實現了由現實世界到信息世界的第一層抽象。

信息世界涉及的主要概念有:

1、實體(Entity):現實世界中存在的可以相互區分的事物或概念,如一個學生

2、實體集(Entity Set):同一類實體的集合,如全體學生

3、屬性(Attribute):實體所具有的特征,如學生姓名、性別

4、碼/鍵(Key):唯一標識實體的屬性集,例如學生的學號

5、聯系(Relationship):實體集之間的對應關系,如一個教師教多個學生、多個學生選多門課

概念模型最常用的表示方法是P.P.S.Chen在1976年提出的實體-聯系(Entity-Relationship)模型,簡稱E-R模型或E-R圖

三、邏輯結構設計階段

這一階段在概念模型的基礎之上,根據轉換規則導出一種DBMS支持的邏輯數據庫模型,比如說目前最常用的關系型數據庫,該模型應滿足數據庫存取、一致性及運行等方面的用戶需求,并且在一定程度上,對些模型進行優化。

例如,一個一對一的E-R模型,可以建立一個單表,比如說班級,對班主任,是一對一的關系,那么只需要一張表。而一個一對多的關系,則需要兩張表,比如說班級對學生,就需要把班級設置為一張表,而將班級號作為學生表里的一個外鍵。多對多的關系,就需要設計三張表,比如說學生和課程,就需要學生、課程、學生選的課程三張表來反映三者之間的關系。

四、物理結構設計階段

為邏輯數據模型選取一個最適合應用環境的物理結構,利用已經確定的邏輯結構的結果以及DBMS提供的方法、技術,以設計出高效可實現的數據庫結構。但一般情況下,在關系型數據庫中,數據的存取對用戶是透明的,所以對物理設計考慮會相對少一點。尤其是現在有了諸如Spring Data Jpa之類的持久層框架之后,開發者的精力可以主要放在實體之間的關系上面。

五、數據庫實施階段

根據邏輯設計和物理設計的結果建立數據庫,編寫與調試應用程序,將數據錄入到數據庫中,同時進行數據庫系統的試運行。

以上就是數據庫設計的幾個重要步驟,在實際操作中,最重要的是正確劃分實體和實體間的對應關系,而這也是優秀開發者與普通開發者最大的區別之一。往往優秀的開發者可以看透一個項目之間存在的實體,和實體間的對應關系,從而方便快捷地確定項目的數據庫基礎。而普通或者低劣的開發人員,則很有可能將實體關系搞得一團糟,最終在實際應用中才發現表設計存在較大的缺陷,最終不得不耗費大量的工作量來解決這個問題。

就好像地心說時代,天文學家用本輪均輪,等大小齒輪咬合模擬的方式來推演太陽、月亮和各行星的軌道。一開始只有地球、太陽、月亮的時候還很好擬合,但是隨著多顆行星的發現,到了哥白尼時代,需要模擬的齒輪已經達到了上百個,導致人們苦不堪言。但是,改成以太陽為中心的話,那么一切就清爽直觀了。

數據庫設計也是如此,如果實體之間的關系沒有理順,那么最終將嚴重影響項目的開發質量。讀者們,你們被實體關系設計得很糟糕的數據庫結構坑過嗎?如果被坑過,歡迎說出你的故事哦。

責任編輯:張燕妮 來源: Android開發中文站
相關推薦

2023-05-06 07:24:22

程序員視頻算法

2022-11-04 07:12:24

JavaScript基準測試

2022-11-07 08:51:24

數據庫開發笛卡爾積

2022-12-02 07:16:29

MySQL函數日期

2013-05-24 09:14:39

國企程序員程序員

2011-05-31 09:22:39

程序員

2011-05-26 10:04:30

程序員

2022-04-18 11:05:36

開源github代碼庫

2011-05-24 13:47:25

程序員

2011-05-31 09:37:53

程序員

2010-07-27 16:21:25

程序員

2011-06-02 09:02:36

程序員

2011-06-02 09:56:21

程序員團隊精神

2021-05-22 10:01:45

PythonPython列表Python程序開發

2011-05-31 10:50:36

程序員

2011-03-22 10:49:53

2022-07-20 00:03:10

Python列表字典推導

2023-05-10 08:41:40

二叉樹遍歷算法

2013-04-22 09:15:20

2019-01-30 14:14:16

LinuxUNIX操作系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99久久精品国产一区二区三区 | 一区二区免费视频 | 自拍视频一区二区三区 | 男人天堂色 | 国产激情一区二区三区 | 免费中文字幕 | 欧洲尺码日本国产精品 | 91视在线国内在线播放酒店 | 亚洲免费视频在线观看 | 中文字幕 视频一区 | 欧美大片在线观看 | 成人深夜福利 | 中文在线www | 国产美女久久 | 狠狠热视频 | 精品久久精品 | 亚洲永久字幕 | 欧美成人一区二区 | 91久久北条麻妃一区二区三区 | 999国产视频 | 欧美一区二区 | 亚洲视频三区 | 久久久久久久久久久91 | 亚洲综合区 | 精品欧美一区二区在线观看欧美熟 | 亚洲综合在线播放 | 久久99精品久久久97夜夜嗨 | 最新一级毛片 | 超黄视频网站 | 中文字幕日韩在线观看 | 亚洲男人网 | 中文字幕视频在线看5 | 欧美日韩在线精品 | 毛片在线免费 | 成av在线 | 国产精品99久久久久久宅男 | 亚洲精品久久久久久国产精华液 | 最新国产精品 | 国产一区二区激情视频 | 亚洲色图在线观看 | 麻豆久久久久久久久久 |