日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库计划中的14个才略

發(fā)布時間:2024/4/15 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库计划中的14个才略 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本源:站長資訊??




1. 原始票據(jù)與實(shí)體之間的關(guān)系
  可所以一對一、一對多、多對多的關(guān)系。在淺顯情形下,它們是一對一的關(guān)系:即一張原始票據(jù)對應(yīng)且只對應(yīng)一個實(shí)體。在非凡情形下,它們可以是一對多或多對一的關(guān)系,即一張原始單證對應(yīng)多個實(shí)體,或多張原始單證對應(yīng)一個實(shí)體。這里的實(shí)體可以相識為底子表。清楚明明這種對應(yīng)關(guān)系后,對我們計劃錄入界面年夜有好處。

  〖例1〗:一份員工經(jīng)歷資料,在人力資本信息零碎中,就對應(yīng)三個底子表:員工底子情形表、社會關(guān)系表、使命簡歷表。這便是“一張原始單證對應(yīng)多個實(shí)體”的規(guī)范例子。


   2. 主鍵與外鍵
  淺顯而言,一個實(shí)體不能既無主鍵又無外鍵。在E—R 圖中, 處于葉子部位的實(shí)體, 可以定義主鍵,也可以不定義主鍵(由于它無子孫), 但必需要有外鍵(由于它有父親)。
  主鍵與外鍵的計劃,在全局?jǐn)?shù)據(jù)庫的計劃中,占據(jù)首要職位地方。當(dāng)全局?jǐn)?shù)據(jù)庫的計劃完成當(dāng)前,有個美國數(shù)據(jù)庫計劃專家說:“鍵,到處都是鍵,除了鍵之外,什么也沒有”,這便是他的數(shù)據(jù)庫計劃經(jīng)歷之談,也反映了他對信息零碎中間(數(shù)據(jù)模型)的高度籠統(tǒng)頭腦。由于:主鍵是實(shí)體的高度籠統(tǒng),主鍵與外鍵的配對,表示實(shí)體之間的跟尾。


   3. 底子表的性質(zhì)
  底子表與中間表、暫時表不同,由于它具有如下四個特征:
   (1) 原子性。底子表中的字段是不可再分化的。
   (2) 原始性。底子表中的記載是原始數(shù)據(jù)(底子數(shù)據(jù))的記載。
   (3) 歸結(jié)性。由底子表與代碼表中的數(shù)據(jù),可以派生出一切的輸入數(shù)據(jù)。
   (4) 堅決性。底子表的結(jié)構(gòu)是絕對堅決的,表中的記載是要暫時生涯的。
相識底子表的性質(zhì)后,在計劃數(shù)據(jù)庫時,就能將底子表與中間表、暫時表區(qū)分隔隔離松散來。


   4. 范式尺度
  底子表及其字段之間的關(guān)系, 應(yīng)只管饜足第三范式。然則,饜足第三范式的數(shù)據(jù)庫計劃,每每不是最好的計劃。為了進(jìn)步數(shù)據(jù)庫的運(yùn)轉(zhuǎn)功用,每每需求低沉范式尺度:適當(dāng)添加冗余,抵達(dá)以空間換功夫的目的。

  〖例2〗:有一張寄存商品的底子表,如表1所示。“金額”這個字段的存在,標(biāo)明該表的計劃不饜足第三范式,由于“金額”可以由“單價”乘以“數(shù)量”失蹤失蹤,說明');“金額”是冗余字段。然則,添加“金額”這個冗余字段,可已往進(jìn)盤問統(tǒng)計的速度,這就是以空間換功夫的作法。
  在Rose 2002中,規(guī)定列有兩品種型:數(shù)據(jù)列和對照爭論列。“金額”如許的列被稱為“對照爭論列”,而“單價”和“數(shù)量”如許的列被稱為“數(shù)據(jù)列”。
  表1 商品表的表結(jié)構(gòu)
  商品稱號 商品型號 單價 數(shù)量 金額
  電視機(jī) 29吋 2,500 40 100,000
  
   5. 偉年夜地相識三個范式
  偉年夜地相識三個范式,關(guān)于數(shù)據(jù)庫計劃年夜有好處。在數(shù)據(jù)庫計劃中,為了更好地利用三個范式,就必需偉年夜地相識三個范式(偉年夜地相識是夠用的相識,并不是最科學(xué)最正確的相識):
  第一范式:1NF是對屬性的原子性約束,要求屬性具有原子性,不可再分化;
  第二范式:2NF是對記載的專注性約束,要求記載有專注標(biāo)識,即實(shí)體的專注性;
  第三范式:3NF是對字段冗余性的約束,即任何字段不能由其他字段派生出來,它要求字段沒有冗余.
  沒有冗余的數(shù)據(jù)庫計劃可以做到。然則,沒有冗余的數(shù)據(jù)庫未必是最好的數(shù)據(jù)庫,偶爾為了進(jìn)步運(yùn)轉(zhuǎn)功用,就必需低沉范式尺度,適當(dāng)生涯冗余數(shù)據(jù)。詳盡做法是:在見地數(shù)據(jù)模型計劃時苦守第三范式,低沉范式尺度的使命放到物理數(shù)據(jù)模型計劃時思索。低沉范式便是添加字段,應(yīng)允冗余。


   6. 要長于辨認(rèn)與正確處理賞罰多對多的關(guān)系
  若兩個實(shí)體之間存在多對多的關(guān)系,則應(yīng)消弭這種關(guān)系。消弭的方法是,在兩者之間添加第三個實(shí)體。如許,原本一個多對多的關(guān)系,今朝變?yōu)閮蓚€一對多的關(guān)系。要將原本兩個實(shí)體的屬性公道地分派到三個實(shí)體中去。這里的第三個實(shí)體,素質(zhì)上是一個較龐年夜的關(guān)系,它對應(yīng)一張底子表。淺顯來講,數(shù)據(jù)庫計劃東西不能辨認(rèn)多對多的關(guān)系,但能處理賞罰多對多的關(guān)系。

  〖例3〗:在“圖書館信息零碎”中,“圖書”是一個實(shí)體,“讀者”也是一個實(shí)體。這兩個實(shí)體之間的關(guān)系,是一個規(guī)范的多對多關(guān)系:一本圖書在不同功夫可以被多個讀者借閱,一個讀者又可以借多本圖書。為此,要在二者之間添加第三個實(shí)體,該實(shí)體取名為“借還書”,它的屬性為:借還功夫、借還標(biāo)志(0表示借書,1表示還書),其余,它還應(yīng)該有兩個外鍵(“圖書”的主鍵,“讀者”的主鍵),使它能與“圖書”和“讀者”跟尾。


   7. 主鍵PK的取值方法
   PK是供次序員運(yùn)用的表間跟尾東西,可所以一無物理意義的數(shù)字串, 由次序主動加1來完成。也可所以有物理意義的字段名或字段名的組合。不過前者比后者好。當(dāng)PK是字段名的組合時,倡議字段的個數(shù)不要太多,多了不光索引占用空間年夜,并且速度也慢。


   8. 正確理解數(shù)據(jù)冗余
  主鍵與外鍵在多表中的屢次出現(xiàn), 不屬于數(shù)據(jù)冗余,這個見地必需清楚,現(xiàn)實(shí)上有良多人還不清楚。非鍵字段的屢次出現(xiàn), 才是數(shù)據(jù)冗余!并且是一種低級冗余,即屢次性的冗余。低級冗余不是字段的屢次出現(xiàn),而是字段的派生出現(xiàn)。

  〖例4〗:商品中的“單價、數(shù)量、金額”三個字段,“金額”便是由“單價”乘以“數(shù)量”派生出來的,它便是冗余,并且是一種低級冗余。冗余的目的是為了進(jìn)步處理賞罰速度。只需低級冗余才會添加數(shù)據(jù)的紛比方律性,由于統(tǒng)一數(shù)據(jù),可以從不同功夫、地址、腳色上多次錄入。是以,我們倡議低級冗余(派素性冗余),支持低級冗余(屢次性冗余)。


   9. E--R圖沒有尺度謎底
  信息零碎的E--R圖沒有尺度謎底,由于它的計劃與畫法不是專注的,只需它籠蓋了零碎需求的業(yè)務(wù)范圍和成果內(nèi)容,便是可行的。反之要點(diǎn)竄E--R圖。雖然它沒有專注的尺度謎底,并不料味著可以隨意計劃。好的E—R圖的尺度是:結(jié)構(gòu)清楚、關(guān)聯(lián)簡便、實(shí)體個數(shù)適中、屬性分派公道、沒有低級冗余。


   10. 視圖手藝在數(shù)據(jù)庫計劃中很有用
  與底子表、代碼表、中間表不同,視圖是一種虛表,它依賴數(shù)據(jù)源的實(shí)表而存在。視圖是供次序員運(yùn)用數(shù)據(jù)庫的一個窗口,是基表數(shù)據(jù)綜合的一種方式, 是數(shù)據(jù)處理賞罰的一種方法,是用戶數(shù)據(jù)失蹤密的一種才干。為了終止龐年夜處理賞罰、進(jìn)步運(yùn)算速度和節(jié)約存儲空間, 視圖的定義深度淺顯不得超出三層。 若三層視圖仍不敷用, 則應(yīng)在視圖上定義暫時表, 在暫時表上再定義視圖。如許屢次交迭定義, 視圖的深度就不受限定了。

  關(guān)于某些與國度政治、經(jīng)濟(jì)、手藝、軍事和寧靜所長有關(guān)的信息零碎,視圖的感染愈加首要。這些零碎的底子表完成物理計劃之后,當(dāng)即在底子表上直立第一層視圖,這層視圖的個數(shù)和結(jié)構(gòu),與底子表的個數(shù)和結(jié)構(gòu)是完全雷同。并且規(guī)定,一切的次序員,一概只準(zhǔn)在視圖上操縱。只需數(shù)據(jù)庫辦理員,帶著多個職員配合駕馭的“寧靜鑰匙”,才干間接在底子表上操縱。請讀者想想:這是為什么?


   11. 中間表、報表和暫時表
  中間表是寄存統(tǒng)計數(shù)據(jù)的表,它是為數(shù)據(jù)堆棧、輸入報表或盤問結(jié)果而計劃的,偶爾它沒有主鍵與外鍵(數(shù)據(jù)堆棧除外)。暫時表是次序員個人計劃的,寄存暫時記載,為個人所用。基表和中間表由DBA維護(hù),暫時表由次序員本人用次序主動維護(hù)。


   12. 完整性約束表今朝三個方面
  域的完整性:用Check來完成約束,在數(shù)據(jù)庫計劃東西中,對字段的取值范圍終止定義時,有一個Check按鈕,通過它定義字段的值城。參照完整性:用PK、FK、表級觸發(fā)器來完成。用戶定義完整性:它是一些業(yè)務(wù)紀(jì)律,用存儲進(jìn)程和觸發(fā)器來完成。


   13. 防范數(shù)據(jù)庫計劃打補(bǔ)丁的方法是“三少準(zhǔn)繩”
   (1) 一個數(shù)據(jù)庫中表的個數(shù)越少越好。只需表的個數(shù)少了,才干說明');零碎的E--R圖少而精,去失蹤了屢次的多余的實(shí)體,組成了對客不雅全國的高度籠統(tǒng),終止了零碎的數(shù)據(jù)集成,防范了打補(bǔ)丁式的計劃;
   (2) 一個表中組合主鍵的字段個數(shù)越少越好。由于主鍵的感染,一是建主鍵索引,二是做為子表的外鍵,所以組合主鍵的字段個數(shù)少了,不光節(jié)約了運(yùn)轉(zhuǎn)功夫,并且節(jié)約了索引存儲空間;
   (3) 一個表中的字段個數(shù)越少越好。只需字段的個數(shù)少了,才干說明');在零碎中不存在數(shù)據(jù)屢次,且很少罕有據(jù)冗余,更首要的是煽動讀者學(xué)會“列變行”,如許就防范了將子表中的字段拉入到主表中去,在主表中留下良多空余的字段。所謂“列變行”,便是將主表中的一部分外容拉出去,其余單獨(dú)建一個子表。這個方法很樸實(shí),有的人便是不習(xí)氣、不采用、不執(zhí)行。
  數(shù)據(jù)庫計劃的適用準(zhǔn)繩是:在數(shù)據(jù)冗余和處理賞罰速度之間找到相宜的均衡點(diǎn)。“三少”是一個個人見地,綜合不雅念,不能伶仃某一個準(zhǔn)繩。該準(zhǔn)繩是絕對的,不是絕對的。“三多”準(zhǔn)繩一定是錯誤的。試想:若籠蓋零碎異樣的成果,一百個實(shí)體(共一千個屬性) 的E--R圖,一定比二百個實(shí)體(共二千個屬性) 的E--R圖,要好得多。
  倡議“三少”準(zhǔn)繩,是叫讀者學(xué)會利用數(shù)據(jù)庫計劃手藝終止零碎的數(shù)據(jù)集成。數(shù)據(jù)集成的步調(diào)是將文件零碎集成為利用數(shù)據(jù)庫,將利用數(shù)據(jù)庫集成為主題數(shù)據(jù)庫,將主題數(shù)據(jù)庫集成為全局綜合數(shù)據(jù)庫。集成的水平越高,數(shù)據(jù)共享性就越強(qiáng),信息孤島現(xiàn)象就越少,整個企業(yè)信息零碎的全局E—R圖中實(shí)體的個數(shù)、主鍵的個數(shù)、屬性的個數(shù)就會越少。
  倡議“三少”準(zhǔn)繩的目的,是防范讀者利用打補(bǔ)丁手藝,賡續(xù)地對數(shù)據(jù)庫終止增編削,使企業(yè)數(shù)據(jù)庫變成了隨意計劃數(shù)據(jù)庫表的“渣滓堆”,或數(shù)據(jù)庫表的“年夜雜院”,末了形成數(shù)據(jù)庫中的底子表、代碼表、中間表、暫時表紊亂無章,不計其數(shù),招致企奇不雅單位的信息零碎無法維護(hù)而癱瘓。
   “三多”準(zhǔn)繩任何人都可以做到,該準(zhǔn)繩是“打補(bǔ)丁方法”計劃數(shù)據(jù)庫的正理學(xué)說。“三少”準(zhǔn)繩是少而精的準(zhǔn)繩,它要求有較高的數(shù)據(jù)庫計劃才略與藝術(shù),不是任何人都能做到的,由于該準(zhǔn)繩是根絕用“打補(bǔ)丁方法”計劃數(shù)據(jù)庫的實(shí)際根據(jù)。


   14. 進(jìn)步數(shù)據(jù)庫運(yùn)轉(zhuǎn)功用的方法
  在給定的零碎硬件和瑣金飾件前提下,進(jìn)步數(shù)據(jù)庫零碎的運(yùn)轉(zhuǎn)功用的方法是:
   (1) 在數(shù)據(jù)庫物理計劃時,低沉范式,添加冗余, 常用觸發(fā)器, 多用存儲進(jìn)程。
   (2) 當(dāng)對照爭論非常龐年夜、并且記載條數(shù)非常龐年夜時(比方一千萬條),龐年夜對照爭論要先在數(shù)據(jù)庫皮相,以文件零碎方式用C 言語對照爭論處理賞罰完成之后,末了才入庫追加到表中去。這是電信計費(fèi)零碎計劃的經(jīng)歷。
   (3) 發(fā)現(xiàn)某個表的記載太多,比方超出一千萬條,則要對該表終止水平聯(lián)絡(luò)。水平聯(lián)絡(luò)的做法是,以該表主鍵PK的某個值為界線,將該表的記載水平聯(lián)絡(luò)為兩個表。若發(fā)現(xiàn)某個表的字段太多,比方超出八十個,則垂直聯(lián)絡(luò)該表,將原本的一個表分化為兩個表。
   (4) 對數(shù)據(jù)庫辦理零碎DBMS終止零碎優(yōu)化,即優(yōu)化各種零碎參數(shù),如緩沖區(qū)個數(shù)。
   (5) 在運(yùn)用面向數(shù)據(jù)的SQL言語進(jìn)行程序計劃時,只管授與優(yōu)化算法。
  總之,要進(jìn)步數(shù)據(jù)庫的運(yùn)轉(zhuǎn)功用,必需從數(shù)據(jù)庫零碎級優(yōu)化、數(shù)據(jù)庫計劃級優(yōu)化、次序完成級優(yōu)化,這三個條理上同時下功夫。

  上述十四個才略,是良多人在年夜批的數(shù)據(jù)庫剖析與計劃實(shí)際中,逐步總結(jié)出來的。關(guān)于這些經(jīng)歷的運(yùn)用,讀者不能生幫硬套,去世記硬背,而要消化相識,踏扎實(shí)實(shí),迅速駕馭。并逐步做到:在利用中展開,在展開中利用。







版權(quán)聲明: 原創(chuàng)作品,應(yīng)允轉(zhuǎn)載,轉(zhuǎn)載時請務(wù)必以超鏈接方式標(biāo)明文章 原始來因 、作者信息和本聲明。不然將追究司法責(zé)任。

轉(zhuǎn)載于:https://www.cnblogs.com/zgqjymx/archive/2011/03/07/1975712.html

總結(jié)

以上是生活随笔為你收集整理的数据库计划中的14个才略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。