資料庫基本概念(四)

来源:https://www.cnblogs.com/xhbJava/archive/2019/07/09/11117487.html
-Advertisement-
Play Games

二、資料庫設計 資料庫設計是將數據對象轉換為數據表等資料庫對象的過程,是資料庫應用系統開發過程中首要的和基本的內容。 按照規範的設計方法,考慮資料庫及其應用系統開發全過程,將關係資料庫的設計分為六個階段:需求分析、概念結構設計、邏輯結構設計、物理結構設計、資料庫實施和數控運行和維護。其中需求分析的任 ...


二、資料庫設計

  資料庫設計是將數據對象轉換為數據表等資料庫對象的過程,是資料庫應用系統開發過程中首要的和基本的內容。

  按照規範的設計方法,考慮資料庫及其應用系統開發全過程,將關係資料庫的設計分為六個階段:需求分析、概念結構設計、邏輯結構設計、物理結構設計、資料庫實施和數控運行和維護。其中需求分析的任務是通過詳細調查現實世界要處理的對象,明確用戶的各種需求,然後在此基礎上確定系統的功能。資料庫實施、運行與維護的任務是在資料庫的結構設計完成後由資料庫管理員在DBMS上實現設計的結果。在這具體介紹資料庫設計中的概念結構設計、邏輯結構設計和物理結構設計。

1.概念結構設計

  通常,把每一類數據對象的個體稱為“實體”,而每一類對象個體的集合稱為“實體集”,例如,在學生成績管理系統中主要涉及“學生”和“課程”兩個實體集。其他非主要的實體可以很多,如班級、班長、任課教師、輔導員等實體。把每個實體集涉及的信息項稱為屬性。就“學生”實體集而言,它的屬性有:學號、姓名、性別、出生時間、專業、總學分和備註。“課程”實體集屬性有:課程號、課程名、開課學期、學時和學分。

  實體集“學生”和實體集“課程”之間存在“選課”的關係,通常把這類關係稱為“聯繫”。通常將實體集及實體集之間的聯繫的圖稱為E-R模型。

  E-R模型表示方法為:

  • 實體集用矩形框表示,矩形框內標註實體名;
  • 實體集的屬性用橢圓框表示,框內標註屬性名,並用無向邊與其實體集相連;
  • 實體集間的聯繫用菱形框表示,聯繫以適當的含義命名,名字寫在菱形框中,用無向邊將參加聯繫的實體矩形框分別與菱形框相連,併在連線上標明聯繫的類型,即1-1、1-n或m-n;
  • 如果一個聯繫有屬性,則這些屬性也要用無向邊與該聯繫連接起來。

  因此,E-R模型也稱為E-R圖。通常,關係資料庫的設計者用E-R圖來對信息世界建模。從分析用戶項目涉及的數據對象及數據對象之間的聯繫出發,到獲取E-R圖的這一過程稱為概念結構設計。

  (1)一對一的聯繫(1 : 1)

  A中的一個實體至多與B中的一個實體相聯繫,B中的一個實體也至多與A中的一個實體相聯繫。例如,“班級”與“正班長”這兩個實體集之間的聯繫是一對一的聯繫,因為一個班只有一個正班長,反過來,一個正班長只屬於一個班。“班級”與“正班長”兩個實體集的E-R模型如圖1.2所示。

  

 

圖1.2

(2)一對多的聯繫(1 : n)

  A中的一個實體可以與B中的多個實體相聯繫,而B中的一個實體至多與A中的一個實體相聯繫。例如,“班級”與“學生”這兩個實體集之間的聯繫是一對多的聯繫,因為一個班可有若幹學生,反過來,一個學生只能屬於一個班。“班級”與“學生”兩個實體集的E-R模型如圖1.3所示。

 

圖1.3

(3)多對多的聯繫(m : n)

  A中的一個實體可以與B中的多個實體相聯繫,而B中的一個實體也可與A中的多個實體相聯繫。例如,“學生”與“課程”這兩個實體集之間的聯繫是多對多的聯繫,因為,一個學生可選多門課程,反過來,一門課程可被多個學生選修,每個學生選修了一門課以後都有一個成績。“學生”與“課程”兩個實體集的E-R模型如圖1.4所示。

圖1.4

2.邏輯結構設計

  用E-R圖描述管理系統中實體集與實體集之間的聯繫,目的是以E-R圖為工具設計關係模式,即確定應用系統所使用的數據應包含的表和表的結構。通常這一設計過程被稱為邏輯結構設計。

(1)(1 : 1)聯繫的E-R圖到關係模式的轉換

  1)聯繫單獨對應一個關係模式,則由聯繫屬性、參與聯繫的各實體集的主碼屬性構成關係模式,其主碼可選參與聯繫的實體集的任一方的主碼。
   例如,考慮圖1.2描述的“班級(bjb)”與“班長(bzb)”實體集通過屬於(syb)聯繫E-R模型,可設計如下關係模式(下畫線表示該欄位為主碼):
     bjb(班級編號,院系,專業,人數)
   bzb(學號,姓名)
   syb(學號,班級編號)
  2)聯繫不單獨對應一個關係模式,聯繫的屬性及一方的主碼加入另一方實體集對應的關係模式中。
  例如,考慮圖1.2描述的“班級(bjb)”與“班長(bzb)”實體集通過屬於(syb)聯繫E-R模型,可設計如下關係模式:
  bjb(班級編號,院系,專業,人數)
  bzb(學號,姓名,班級編號)
    或者:
  bjb(班級編號,院系,專業,人數,學號)
  bzb(學號,姓名)

(2)(1 : n)聯繫的E-R圖到關係模式的轉換

  1)聯繫單獨對應一個關係模式,則由聯繫的屬性、參與聯繫的各實體集的主碼屬性構成關係模式,n端的主碼作為該關係模式的主碼。
  例如,考慮圖1.3描述的“班級(bjb)”與“學生(xsb)”實體集E-R模型,可設計如下關係模式:
  bjb(班級編號,院系,專業,人數)
  xsb(學號,姓名,性別,出生時間,專業,總學分,備註)
  syb(學號,班級編號)
  2)聯繫不單獨對應一個關係模式,則將聯繫的屬性及1端的主碼加入n端實體集對應的關係模式中,主碼仍為n端的主碼。
  例如,圖1.3描述的“班級(bjb)”與“學生(xsb)”實體集E-R模型可設計如下關係模式:
  bjb(班級編號,院系,專業,人數)
  xsb(學號,姓名,性別,出生時間,專業,總學分,備註,班級編號)

(3)(m : n)聯繫的E-R圖到關係模式的轉換

  對於(m∶n)的聯繫,單獨對應一個關係模式,該關係模式包括聯繫的屬性、參與聯繫的各實體集的主碼屬性,該關係模式的主碼由各實體集的主碼屬性共同組成。
  例如,圖1.4描述的“學生(xsb)”與“課程(kcb)”實體集之間的聯繫可設計如下關係模式:
  xsb(學號,姓名,性別,出生時間,專業,總學分,備註)
  kcb(課程號,課程名稱,開課學期,學時,學分)
  cjb(學號,課程號,成績)
  關係模式cjb的主碼是由“學號”和“課程號”兩個屬性組合起來構成的一個主碼,一個關係模式只能有一個主碼。

3.物理結構設計

  資料庫在物理設備上的存儲結構與存取方法稱為資料庫的物理結構,它依賴於給定的電腦系統。為一個給定的邏輯數據模型選取一個最合適應用環境的物理結構的過程就稱為資料庫的物理結構設計。

  資料庫的物理結構設計通常分為以下兩步:

  (1)確定資料庫的物理結構,在關係資料庫中主要指的是存取方法和存儲結構;

  (2)對物理結構進行評價,評價的重點是時間和空間效率。

  因而,物理數據模型(Physical Data Model)是面向電腦物理表示的模型,描述了數據在儲存介質上的組織結構,它不但與具體的DBMS有關,而且還與操作系統和硬體有關。每一種邏輯數據模型在實現時都有其對應的物理數據模型。DBMS為了保證其獨立性與可移植性,大部分物理數據模型的實現工作由系統自動完成,而設計者只設計索引、聚集等特殊結構。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 軟體相容性的定義及操作系統對比: 向上(下)相容指的是按某檔機器編製的軟體,不加修改就能運行於比它高(低)檔的機器上。 向前(後)相容指的是按某個時期投入市場的該型號機器上編製的軟體,不加修改就能運行於比它前(後)投入市場的機器上。 目前市面上流行的操作系統有:windows、linux、mac、a ...
  • Question:最近在搞linux下的一個客戶端項目,需要接收鍵盤事件,但是又不能有界面,這種情況怎麼處理呢? 1、首先需要在main方法中註冊,使用installEventFilter方法把這個類的指針傳進去 2、在Test類中重寫eventFilter方法,這樣就可以進行監聽了 3、在even ...
  • 1、臨時IP配置 # ifconfig eth0 192.168.110.118 netmask 255.255.255.0 gateway 192.168.110.2 up # ifconfig eth0 192.168.110.118/24 up # ifconfig eth0:1 192.16 ...
  • 1. Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host' ...
  • 《SQL Server溫故系列》之分組查詢 GROUP BY。GROUP BY 是一種能將查詢結果劃分為多個行組的查詢語句的子句,其目的通常是為了在每個組上執行一個或多個聚合運算,所以 GROUP BY 通常會與聚合函數一塊兒出現在查詢語句中。本文主要講述了 SQL Server 中 GROUP B... ...
  • 一.認識資料庫 1.什麼是資料庫? 資料庫就是存儲數據的倉庫 存儲數據的方式1 存儲數據的方式2 電腦的性能進行擴展 訪問不同電腦上的文件數據 2.常見資料庫 關係型資料庫 資料庫可以為數據與數據之間建立關聯關係,人是一條數據,他可能關聯著一個工作崗位數據。雙方可以通過自身找到對方。 非關係型 ...
  • 連接資料庫等基礎操作請自行解決哈,本篇是重點記錄如何改密碼。 一、查詢用戶密碼: 查詢用戶密碼命令: host:允許用戶登錄的ip‘位置'%表示可以遠程; user:當前資料庫的用戶名; authentication_string:用戶密碼(後面有提到此欄位); 二、 設置(或修改)用戶密碼: 預設 ...
  • 本帖參考網站<https://blog.csdn.net/lx318/article/details/82686925>的安裝步驟,並對8.0.16版本的部分安裝問題進行修正 在MySQL 8.0.16版本中安裝可能會出現部分錯誤提示已經不使用“UTF8B3”而是使用了“UTF8B4” #///// ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...