整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          死磕數據庫系列(三):關系型數據庫設計理論與流程詳解

          SQL DB - 關系型數據庫設計理論重要的術語

          關系模型是一種基于表的數據模型,以下為關系學生信息,該表有很多不足之處,本文研究內容就是如何改進它:

          數據庫函數依賴的規則_數據庫函數依賴圖怎么畫_數據庫函數依賴

          下面是一些重要術語:

          函數依賴

          通過函數依賴關系,來幫助你確定表中的合理主外鍵等;這里只是簡介,有這么個概念就可以了,因為大多數情況你不用那些所謂的推倒關系,你也是可以憑借直覺設計出來的。

          記 A->B 表示 A 函數決定 B,也可以說 B 函數依賴于 A。

          如果 {A1,A2,... ,An} 是關系的一個或多個屬性的集合,該集合函數決定了關系的其它所有屬性并且是最小的,那么該集合就稱為鍵碼。

          對于 A->B,如果能找到 A 的真子集 A',使得 A'-> B,那么 A->B 就是部分函數依賴,否則就是完全函數依賴。

          對于 A->B,B->C,則 A->C 是一個傳遞函數依賴。

          異常

          介紹 不符合范式的關系,會產生很多異常,為了引出范式的內容。

          以下的學生課程關系的函數依賴為 Sno, Cname -> Sname, Sdept, Mname, Grade,鍵碼為 {Sno, Cname}。也就是說,確定學生和課程之后,就能確定其它信息。

          數據庫函數依賴_數據庫函數依賴圖怎么畫_數據庫函數依賴的規則

          不符合范式的關系,會產生很多異常,主要有以下四種異常:

          范式

          范式理論是為了解決以上提到四種異常。

          高級別范式的依賴于低級別的范式,1NF 是最低級別的范式。

          數據庫函數依賴_數據庫函數依賴的規則_數據庫函數依賴圖怎么畫

          1. 第一范式 (1NF)

          屬性不可分。

          2. 第二范式 (2NF)

          每個非主屬性完全函數依賴于鍵碼。

          可以通過分解來滿足。

          分解前

          數據庫函數依賴圖怎么畫_數據庫函數依賴的規則_數據庫函數依賴

          以上學生課程關系中,{Sno, Cname} 為鍵碼,有如下函數依賴:

          Grade 完全函數依賴于鍵碼,它沒有任何冗余數據,每個學生的每門課都有特定的成績。

          Sname, Sdept 和 Mname 都部分依賴于鍵碼,當一個學生選修了多門課時,這些數據就會出現多次,造成大量冗余數據。

          分解后

          數據庫函數依賴的規則_數據庫函數依賴_數據庫函數依賴圖怎么畫

          有以下函數依賴:

          關系-2

          數據庫函數依賴_數據庫函數依賴的規則_數據庫函數依賴圖怎么畫

          有以下函數依賴:

          3. 第三范式 (3NF)

          非主屬性不傳遞函數依賴于鍵碼。

          上面的 關系-1 中存在以下傳遞函數依賴:

          可以進行以下分解:

          關系-11

          數據庫函數依賴_數據庫函數依賴圖怎么畫_數據庫函數依賴的規則

          關系-12

          數據庫函數依賴的規則_數據庫函數依賴圖怎么畫_數據庫函數依賴

          SQL DB - 關系型數據庫設計流程

          在上文知道如何設計表和健后,讓我們再看看整個的數據庫設計的標準流程吧,主要包括需求分析,概念結構設計,邏輯結構設計,物理設計,實施階段和運行和維護階段這6個階段,其中最重要的是邏輯結構設計。

          規范設計的6個階段

          按照規范設計的方法,考慮數據庫及其應用系統開發全過程,將數據庫設計分為以下6個階段

          數據庫函數依賴圖怎么畫_數據庫函數依賴的規則_數據庫函數依賴

          其中最為重要的是概念結構設計和邏輯結構設計,所以后面獨立兩個章節分別具體講:E-R圖和結構設計流程。

          需求分析階段(常用自頂向下)

          進行數據庫設計首先必須準確了解和分析用戶需求(包括數據與處理)。需求分析是整個設計過程的基礎,也是最困難,最耗時的一步。需求分析是否做得充分和準確,決定了在其上構建數據庫大廈的速度與質量。需求分析做的不好,會導致整個數據庫設計返工重做。

          需求分析的任務,是通過詳細調查現實世界要處理的對象,充分了解原系統工作概況,明確用戶的各種需求,然后在此基礎上確定新的系統功能,新系統還得充分考慮今后可能的擴充與改變,不僅僅能夠按當前應用需求來設計。

          調查的重點是,數據與處理。達到信息要求,處理要求,安全性和完整性要求。

          分析方法常用SA( ) 結構化分析方法,SA方法從最上層的系統組織結構入手,采用自頂向下,逐層分解的方式分析系統。

          數據流圖表達了數據和處理過程的關系,在SA方法中,處理過程的處理邏輯常常借助判定表或判定樹來描述。在處理功能逐步分解的同事,系統中的數據也逐級分解,形成若干層次的數據流圖。系統中的數據則借助數據字典(data ,DD)來描述。數據字典是系統中各類數據描述的集合,數據字典通常包括數據項,數據結構,數據流,數據存儲,和處理過程5個階段。

          概念結構設計階段(常用自底向上)

          數據庫函數依賴的規則_數據庫函數依賴圖怎么畫_數據庫函數依賴

          概念結構設計是整個數據庫設計的關鍵,它通過對用戶需求進行綜合,歸納與抽象,形成了一個獨立于具體DBMS的概念模型。

          設計概念結構通常有四類方法:

          邏輯結構設計階段(E-R圖)

          邏輯結構設計是將概念結構轉換為某個DBMS所支持的數據模型,并將進行優化。

          在這階段,E-R圖顯得異常重要。大家要學會各個實體定義的屬性來畫出總體的E-R圖。

          各分E-R圖之間的沖突主要有三類:屬性沖突,命名沖突,和結構沖突。

          E-R圖向關系模型的轉換,要解決的問題是如何將實體性和實體間的聯系轉換為關系模式,如何確定這些關系模式的屬性和碼。

          物理設計階段

          物理設計是為邏輯數據結構模型選取一個最適合應用環境的物理結構(包括存儲結構和存取方法)。

          首先要對運行的事務詳細分析,獲得選擇物理數據庫設計所需要的參數,其次,要充分了解所用的RDBMS的內部特征,特別是系統提供的存取方法和存儲結構。

          常用的存取方法有三類:

          數據庫實施階段

          數據庫實施階段,設計人員運營DBMS提供的數據庫語言(如sql)及其宿主語言,根據邏輯設計和物理設計的結果建立數據庫,編制和調試應用程序,組織數據入庫,并進行試運行。

          數據庫運行和維護階段

          數據庫應用系統經過試運行后,即可投入正式運行,在數據庫系統運行過程中必須不斷地對其進行評價,調整,修改。

          E-R圖

          Entity-,有三個組成部分: 實體、屬性、聯系。

          用來進行關系型數據庫系統的概念設計。

          實體的三種聯系

          包含一對一,一對多,多對多三種。

          下圖的 Course 和 Student 是一對多的關系。

          表示出現多次的關系

          一個實體在聯系出現幾次,就要用幾條線連接。

          下圖表示一個課程的先修關系,先修關系出現兩個 Course 實體,第一個是先修課程,后一個是后修課程,因此需要用兩條線來表示這種關系。

          數據庫函數依賴_數據庫函數依賴圖怎么畫_數據庫函數依賴的規則

          聯系的多向性

          雖然老師可以開設多門課,并且可以教授多名學生,但是對于特定的學生和課程,只有一個老師教授,這就構成了一個三元聯系。

          數據庫函數依賴_數據庫函數依賴的規則_數據庫函數依賴圖怎么畫

          一般只使用二元聯系,可以把多元聯系轉換為二元聯系。

          數據庫函數依賴_數據庫函數依賴圖怎么畫_數據庫函數依賴的規則

          表示子類

          用一個三角形和兩條線來連接類和子類,與子類有關的屬性和聯系都連到子類上,而與父類和子類都有關的連到父類上。

          數據庫函數依賴的規則_數據庫函數依賴圖怎么畫_數據庫函數依賴

          基于E-R圖的數據庫結構設計

          上面6個階段比較抽象的,來看看實際重要的基于E-R圖的數據庫結構設計示例吧

          確定及

          確定業務規則。分析業務規則,確定你要采取哪種。比如,可能有這樣一種規則,一個部門有且只能有一個部門領導。這些規則將被設計到數據庫的結構中。

          下面舉個例子,需求如下:ACME是一個小公司,在5個地方都設有辦事處。當前,有75名員工。公司準備快速擴大規模,劃分了9個部門,每個部門都有其領導。為有助于尋求新的員工,人事部門規劃了68種技能,為將來人事管理作好準備。員工被招進時,每一種技能的專業等級都被確定。

          定義宏觀行為

          一些ACME公司的宏觀行為包括:

          確定及

          我們可以確定要存放信息的主題領域(表)及其關系,并創建一個基于宏觀行為及描述的圖表。我們用方框來代表table,用菱形代表。我們可以確定哪些是一對多,一對一,及多對多。這是一個E-R草圖,以后會細化。

          數據庫函數依賴_數據庫函數依賴圖怎么畫_數據庫函數依賴的規則

          細化宏觀行為

          以下微觀行為基于上面宏觀行為而形成:

          這些微觀行為可用來確定需要哪些table或。

          確定業務規則

          業務規則常用于確定一對多,一對一,及多對多關系。

          相關的業務規則可能有:

          確定所需數據

          要確定所需數據:

          確定支持數據

          你所確定的支持數據將會成為table中的字段名。比如,下列數據將適用于表,表Skill,表Expert In。

          數據庫函數依賴_數據庫函數依賴圖怎么畫_數據庫函數依賴的規則

          數據庫函數依賴的規則_數據庫函數依賴圖怎么畫_數據庫函數依賴

          如果將這些數據畫成圖表,就像:

          數據庫函數依賴的規則_數據庫函數依賴圖怎么畫_數據庫函數依賴

          需要注意:

          標準化數據

          標準化是你用以消除數據冗余及確保數據與正確的table或相關聯的一系列測試。共有5個測試。本節中,我們將討論經常使用的3個。

          標準化格式

          標準化格式是標準化數據的常用測試方式。你的數據通過第一遍測試后,就被認為是達到第一標準化格式;通過第二遍測試,達到第二標準化格式;通過第三遍測試,達到第三標準化格式。

          如何標準格式:

          數據與鍵

          在你開始標準化(測試數據)前,簡單地列出數據,并為每張表確定一個唯一的主鍵。這個鍵可以由一個字段或幾個字段(連鎖鍵)組成。

          主鍵是一張表中唯一區分各行的一組字段。表的主鍵是 ID字段。Works In 中的主鍵包括Office Code及 ID字段。給數據庫中每一給出一個鍵,從其所連接的每一個table中抽取其鍵產生。

          數據庫函數依賴圖怎么畫_數據庫函數依賴的規則_數據庫函數依賴

          數據庫函數依賴的規則_數據庫函數依賴_數據庫函數依賴圖怎么畫

          將數據放在第一遍的標準化格式中

          將數據放在第二遍的標準化格式中

          數據庫函數依賴圖怎么畫_數據庫函數依賴_數據庫函數依賴的規則

          將數據放在第三遍的標準化格式中

          數據庫函數依賴的規則_數據庫函數依賴_數據庫函數依賴圖怎么畫

          考量關系

          當你完成標準化進程后,你的設計已經差不多完成了。你所需要做的,就是考量關系。

          考量帶有數據的關系

          你的一些可能集含有數據。這經常發生在多對多的關系中。

          數據庫函數依賴圖怎么畫_數據庫函數依賴的規則_數據庫函數依賴

          遇到這種情況,將轉化為一個table。的鍵依舊成為table中的鍵。

          考量沒有數據的關系

          要實現沒有數據的關系,你需要定義外部鍵。外部鍵是含有另外一個表中主鍵的一個或多個字段。外部鍵使你能同時連接多表數據。

          有一些基本原則能幫助你決定將這些鍵放在哪里:

          一對多在一對多關系中,“一”中的主鍵放在“多”中。此例中,外部鍵放在表中。

          數據庫函數依賴圖怎么畫_數據庫函數依賴_數據庫函數依賴的規則

          一對一在一對一關系中,外部鍵可以放進任一表中。如果必須要放在某一邊,而不能放在另一邊,應該放在必須的一邊。此例中,外部鍵(Head ID)在表中,因為這是必需的。

          數據庫函數依賴的規則_數據庫函數依賴_數據庫函數依賴圖怎么畫

          多對多在多對多關系中,用兩個外部鍵來創建一個新表。已存的舊表通過這個新表來發生聯系。

          數據庫函數依賴圖怎么畫_數據庫函數依賴的規則_數據庫函數依賴

          檢驗設計

          在你完成設計之前,你需要確保它滿足你的需要。檢查你在一開始時所定義的行為,確認你可以獲取行為所需要的所有數據:

          最終設計

          最終設計看起來就像這樣:

          數據庫函數依賴的規則_數據庫函數依賴_數據庫函數依賴圖怎么畫

          設計數據庫的表屬性

          數據庫設計需要確定有什么表,每張表有什么字段。此節討論如何指定各字段的屬性。

          對于每一字段,你必須決定字段名,數據類型及大小,是否允許NULL值,以及你是否希望數據庫限制字段中所允許的值。

          選擇字段名

          字段名可以是字母、數字或符號的任意組合。然而,如果字段名包括了字母、數字或下劃線、或并不以字母打頭,或者它是個關鍵字(詳見關鍵字表),那么當使用字段名稱時,必須用雙引號括起來。

          為字段選擇數據類型

          NULL與NOT NULL

          如果一個字段值是必填的,你就將此字段定義為NOT NULL。否則,字段值可以為NULL值,即可以有空值。SQL中的默認值是允許空值;你應該顯示地將字段定義為NOT NULL,除非你有好理由將其設為允許空值。

          選擇約束

          盡管字段的數據類型限制了能存在字段中的數據(例如,只能存數字或日期),你或許希望更進一步來約束其允許值。

          你可以通過指定一個“CHECK”約束來限制任意字段的值。你可以使用能在WHERE子句中出現的任何有效條件來約束被允許的值,盡管大多數CHECK約束使用BETWEEN或IN條件。

          選擇主鍵及外部鍵

          主鍵是唯一識別表中每一項記錄的字段。如何你的表已經正確標準化,主鍵應當成為數據庫設計的一部分。外部鍵是包含另一表中主鍵值的一個或一組字段。外部鍵關系在數據庫中建立了一對一及一對多關系。如果你的設計已經正確標準化,外部鍵應當成為數據庫設計的一部分。

          來源:pdai.tech/md/db/sql/sql-db.html

          數據庫函數依賴圖怎么畫_數據庫函數依賴的規則_數據庫函數依賴

          數據庫函數依賴_數據庫函數依賴圖怎么畫_數據庫函數依賴的規則

          ip地址與網絡上的其他系統有沖突怎么辦

          ip地址與網絡上的其他系統有沖突是因為ip發生沖突,導致無法上網,其解決辦法是:1、設置成為由dhcp自動獲取;2、修改本機ip地址。

          ip地址與網絡上的其他系統有沖突怎么辦

          本文操作環境:系統,DELL G3電腦

          ip地址與網絡上的其他系統有沖突怎么辦?

          IP地址與網絡上的其他系統發生沖突的原因是:都是在一個路由器連接下上網的,難免IP會發生沖突。從而導致無法上網。

          解決這個問題,可以按照以下幾個步驟進行。

          沖突ip地址_地址沖突解決辦法_ip地址與網絡上的其他系統有沖突怎么解決

          1、設置成為由DHCP自動獲取

          如果電腦在一個局域網內,并且網卡IP的地址是通過局域網服務器自動分配的,可以單擊“開始”按鈕,選擇“附件”中的“命令提示符”,在命令行狀態下輸入“ /renew”,讓系統釋放當前的IP地址,重新獲得一個新的地址。

          如果電腦在IP地址是固定IP地址,可以另外設置一個。

          b2cc5c8a96dfd327183e62688bddcfd.png

          2、修改本機IP地址

          沖突ip地址_地址沖突解決辦法_ip地址與網絡上的其他系統有沖突怎么解決

          在電腦“常規”選項卡中的“此連接使且下列組件”列表框,選中“協議(TCP/IP)”,單擊“屬性”按鈕。在出現的“協議(TCP/IP)屬性”對話框中選擇“常規”選項卡“常規”選項卡中的“使用下列IP地址”單選按鈕,然后就可以在下面的文本框中填寫需要的IP地址,子網埯碼及默認網關了。

          60b1c8cfcdda631354fa04aef5af166.png

          擴展資料:

          ip地址與網絡上的其他系統有沖突原因:

          1、IP地址相當于是每一個計算機唯一的身份證號碼,處于局域網的環境中,如果你的計算機的IP設置是192.168.2.10,另外一臺計算機的IP也設置成192.168.2.10,那么就會導致IP與其他系統沖突。

          2、病毒問題:局域網ARP病毒攻擊導致的。ARP,即地址解析協議,實現通過IP地址得知其物理地址。ARP協議是TCP/IP協議組的一個協議,用于進行把網絡地址翻譯成物理地址(又稱MAC地址)。ARP病毒并不是某一種病毒的名字,而是對利用ARP協議的漏洞進行傳播的一類病毒的總稱。


          主站蜘蛛池模板: 一区高清大胆人体| 亚洲日韩国产一区二区三区在线| 久久亚洲色一区二区三区| 一区二区三区国产| 中文字幕无码不卡一区二区三区| 一区二区无码免费视频网站 | 2021国产精品一区二区在线 | 国产亚洲无线码一区二区| 国产亚洲综合精品一区二区三区| 亚洲国产av一区二区三区丶| 亚洲av日韩综合一区久热| 亚洲无线码在线一区观看| 春暖花开亚洲性无区一区二区 | 国产美女露脸口爆吞精一区二区| 香蕉久久一区二区不卡无毒影院| 人妻无码一区二区三区四区| 久久久久人妻精品一区| 国产成人一区二区三区在线| 国产一区二区三区在线看片| 亚洲综合在线一区二区三区| 色窝窝无码一区二区三区色欲 | 天天躁日日躁狠狠躁一区| 无码精品视频一区二区三区| 国产在线精品一区二区三区直播| 日韩在线一区高清在线| 人妻精品无码一区二区三区 | 人妻无码一区二区不卡无码av| 国产成人无码精品一区在线观看| 国产乱人伦精品一区二区在线观看 | 成人欧美一区二区三区在线视频| 亚洲日本久久一区二区va| 久久国产午夜一区二区福利| 国产亚洲无线码一区二区| 久久中文字幕一区二区| 亚洲一区二区成人| 日韩一区二区在线视频| 久久精品国内一区二区三区| 国内精品视频一区二区三区| 精品人妻无码一区二区色欲产成人| 97精品国产一区二区三区| 无码丰满熟妇浪潮一区二区AV|