freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)庫設(shè)計規(guī)范化的五個要求-wenkub

2023-04-22 23:10:29 本頁面
 

【正文】 。如在銷售訂單的行中,用戶可以通過調(diào)整行號的大小來對訂單行進行排序。否則的話,很容易產(chǎn)生ID值不統(tǒng)一的情況?! ∫笕罕碇杏涗洃?yīng)該有一個唯一的標(biāo)識符。如把客戶聯(lián)系人另外設(shè)置一張表。在編號不改而名字改變了的情況下,采購訂單上顯示的就是更改后的名字。明顯,這么做是不合理的。若還有第三聯(lián)系人、第四聯(lián)系人等等,則往往還需要加入更多的字段。  為了解決這個問題,有多種實現(xiàn)方式。有時候,企業(yè)可能只知道客戶一個采購員的姓名?! ∪绗F(xiàn)在有一個進銷存管理系統(tǒng),這個系統(tǒng)中有一張產(chǎn)品基本信息表中。若數(shù)據(jù)庫管理員遇到這種情況,筆者建議另外建立一張副表,以保存這些列。如當(dāng)用戶沒有輸入內(nèi)容的時候,則把這個字段的默認值設(shè)置為0或者為N/A。而在員工報到的時候,可能身份證沒有帶在身邊。若確實需要的話,我們可以通過一些折中的方式,來處理這些空字段,讓其對數(shù)據(jù)庫性能的影響降低到最少。數(shù)據(jù)庫在處理的時候,需要進行特殊的處理。當(dāng)然這是兩個泛泛而談的指標(biāo)。數(shù)據(jù)庫設(shè)計規(guī)范化的五個要求通常情況下,可以從兩個方面來判斷數(shù)據(jù)庫是否設(shè)計的比較規(guī)范。為了達到數(shù)據(jù)庫設(shè)計規(guī)范化的要求,一般來說,需要符合以下五個要求。如此的話,就會增加數(shù)據(jù)庫處理記錄的復(fù)雜性?! ∫皇峭ㄟ^設(shè)置默認值的形式,來避免空字段的產(chǎn)生。所以,身份證號碼字段往往不能及時提供。以避免空字段的產(chǎn)生。然后通過關(guān)鍵字把主表跟這張副表關(guān)聯(lián)起來。這個產(chǎn)品開發(fā)有時候可以是一個人完成,而有時候又需要多個人合作才能夠完成。但是在必要的情況下,企業(yè)需要對客戶的采購代表、倉庫人員、財務(wù)人員共同進行管理。但是,若設(shè)計不合理的話在,則會導(dǎo)致重復(fù)的值或者列。  可是這么設(shè)計的話,會產(chǎn)生一系列的問題。也有人說,可以直接修改采購員的名字呀。這不利于時候的追蹤。然后通過客戶ID把供應(yīng)商信息表跟客戶聯(lián)系人信息表連接起來?! ≡跀?shù)據(jù)庫表設(shè)計的時候,數(shù)據(jù)庫管理員應(yīng)該養(yǎng)成一個好習(xí)慣,用一個ID號來唯一的標(biāo)識行記錄,而不要通過名字、編號等字段來對紀錄進行區(qū)分?! ×硗?,在數(shù)據(jù)庫設(shè)計的時候,最好還能夠加入行號。通常情況下,ID列是以1為單位遞進的。此時,用戶在不能夠更改ID列的情況下,可以更改行號來實現(xiàn)。這個內(nèi)容在教科書上是沒有的。若讓數(shù)據(jù)庫管理員看到對象名就了解這個數(shù)據(jù)庫對象所起的作用,恐怕會比較困難。筆者最常用的是根據(jù)前臺應(yīng)用程序的模塊來定義后臺數(shù)據(jù)庫對象前綴名。但是,需要注意的是,這個命名規(guī)范應(yīng)該在數(shù)據(jù)庫管理員與前臺應(yīng)用程序開發(fā)者之間達成共識,并且嚴格按照這個命名規(guī)范來定義對象名。  要求五:盡量只存儲單一實體類型的數(shù)據(jù)。如現(xiàn)在有一個圖書館里系統(tǒng),有圖書基本信息、作者信息兩個實體對象?! ∪绠?dāng)后續(xù)有圖書出版時,則需要為每次出版的圖書增加作者信息,這無疑會增加額外的存儲空間,也會增加記錄的長度?! ∮龅竭@種情況時,筆者建議可以把上面這張表分解成三種獨立的表,分別為圖書基本信息表、作者基本信息表、圖書與作者對應(yīng)表等等。而且,數(shù)據(jù)庫規(guī)范往往沒有技術(shù)方面的嚴格限制,主要依靠數(shù)據(jù)庫管理員日常工作經(jīng)驗的累積。系統(tǒng)不管設(shè)計是好是壞,照樣運行。規(guī)范化理論認為,一個關(guān)系數(shù)據(jù)庫中所有的關(guān)系,都應(yīng)滿足一定的規(guī)范(約束條件)。下面我們只介紹1NF,2NF,3NF范式?!   ±喝绻笠粋€學(xué)生一行,一個學(xué)生可選多門課,則下面的“學(xué)生”表就不滿足1NF: student(s-no,s-name,class-no)    其中:s-no為學(xué)號,s-name為學(xué)生姓名,class-no為課程號。如果滿足1NF的表的主碼只有一列,則它自動滿足2NF?!   υ摫硪?guī)范化也是把它分解成兩個表:“選課”表和“課程”表,則它們就都滿足2NF了。因為非主碼列teacher-name依賴于另一非主碼列teacher-no,所以它不符合3NF。一個完全規(guī)范化的設(shè)計并不總能生成最優(yōu)的性能,因此通常是先按照3NF設(shè)計,如果有性能問題,再通過反規(guī)范來解決。所以,關(guān)系有時故意保留成非規(guī)范化的,或者規(guī)范化以后又反規(guī)范了,這樣做通常是為了改進性能。加快查詢速度,但會降低修改速度?!   ?  增加冗余列    增加冗余列是指在多個表中具有相同的列,它常用來在查詢時避免連接操作。它的作用是在查詢時減少連接操作,避免使用集函數(shù)。例如,用戶經(jīng)常需要同時查看課程號,課程名稱,任課教師號,任課教師姓名,則可把表class(class-no,class-name,teacher-no)和表 teacher(teacher-no,teacher-name)合并成一個表 class(class-no,class-name,teacher-no,teacher-name)。   水平分割通常在下面的情況下使用:A 表很大,分割后可以降低在查詢時需要讀的數(shù)據(jù)和索引的頁數(shù),同時也降低了索引的層數(shù),提高查詢速度。activea-authors表中的內(nèi)容是正生效的法規(guī),是經(jīng)常使用的,而inactive-law表則使已經(jīng)作廢的法規(guī),不常被查詢。如果一個表中某些列常用,而另外一些列不常用,則可以采用垂直分割,另外垂直分割可以使得數(shù)據(jù)行變小,一個數(shù)據(jù)頁就能存放更多的數(shù)據(jù),在查詢時就會減少I/O次數(shù)。數(shù)據(jù)的完整性也可由應(yīng)用邏輯來實現(xiàn),這就要求必須在同一事務(wù)中對所有涉及的表進行增、刪、改操作。一般來說,是解決這類問題的最好的辦法。因此在做反規(guī)范時,一定要權(quán)
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1