E-R圖與關系模式

1. E-R模型

英文全稱:Entity-relationship model,即實體關系模型

把現實世界的 實體模型通過建模轉換為信息世界的概念模型,這個概念模型就是E-R模型
在這里插入圖片描述

2. 數據庫設計流程

一般設計數據庫分為三個步驟

  1. 把現實世界的實體模型,通過建模轉換成信息世界的E-R模型;
  2. 信息世界的E-R模型,經過模型轉化,得到數據庫世界的數據模型;
  3. 把數據模型進一步規范化,得到最終的數據庫結構模型;

數據庫世界的數據模型按數據的組織形式而分為三種類型

  • 關系模型(在關系數據庫設計中)
  • 層次模型()
  • 網狀模型()

3. 關系模型

3.1 常用概念

  • 關系:可以理解為一張二維表,每個關系都具有一個關系名,也就是通常說的表名(table);
  • 元組:可以理解為二維表中的一行,在數據庫中經常被稱為記錄(record);
  • 屬性:可以理解為二維表中的一列,在數據庫中經常被稱為字段(colum);
  • 域:屬性的取值范圍,也就是數據庫中某一列的取值限制;
  • 關鍵字:一組可以唯一標識元組的屬性,數據庫中常稱為主鍵,由一個或多個列組成(key);
  • 關系模式:指對關系的描述,其格式為:關系名(屬性1,屬性2,……,屬性N),在數據庫中成為表結構;

3.2 E-R圖轉關系模式

對于E-R圖中每個實體,都應轉換為一個關系(table)

該關系應包括對應實體的全部屬性,并應根據關系所表達的語義確定哪個屬性或哪幾個屬性組作為關鍵字,關鍵字用下劃線標識;

3.2.1 一對一關系

比如:一個班級對應一個正班長,就是1:1聯系
在這里插入圖片描述
則可以創建兩個關系(表),一個班級關系(表),一個學生關系(表);
然后我們需要一個聯系(關聯)來連接這兩個關系(表)
有兩種方案:

  1. 聯系不單獨對應一個關系(表):
    不單獨創建一個關系(表)來存儲聯系,通俗講就是在一個表中冗余一個字段存另外一個表的主鍵。
    比如在學生關系(表)中添加一個班級編號屬性,用來存儲班級關系中的班級編號屬性值,
    或者在班級關系(表)中添加一個學號屬性,用來存儲學生關系中的學號屬性值。
  2. 聯系單獨對應一個關系
    單獨創建一個關系(表)來存儲聯系,通俗講就是創建一個中間表用來存儲兩個或多個表的主鍵。
    比如創建一個聯系關系(表)來存儲班級編號屬性和學號屬性,并選擇一個其他關系的主鍵(班級編號學號都行)作為聯系關系的主鍵。

3.2.2 一對多關系

班級關系和學生關系之間的聯系是1:n
在這里插入圖片描述
同樣地也有兩種關系模式:

  1. 聯系不單獨對應一個關系
    在這種1:n的關系模式中,一般都是將1端的主鍵加入n端關系中,即在學生關系(表)中增加一個班級屬性,存儲對應的班級屬性值。

  2. 聯系單獨對應一個關系
    單獨創建一個聯系關系(表)來存儲班級屬性和學號屬性,并選擇n端的主鍵(學號)作為聯系關系的主鍵。

多對多關系

學生關系和課程關系之間的聯系是m:n
在這里插入圖片描述
這種m:n的關系只有一種關系模式:

  • 聯系單獨對應一個關系
    在這里就是單獨創建一個聯系關系(表)來存儲課程號屬性和學號屬性和成績屬性,聯系關系的主鍵是由雙方的主鍵共同組成聯合主鍵。

參考資料:【E-R圖到關系模式的轉換方式,你get到了嗎】 https://www.bilibili.com/video/BV1Ju411e7Dr/?share_source=copy_web&vd_source=e22a75a6781804ee25ce46a2afc235ce

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/163285.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/163285.shtml
英文地址,請注明出處:http://en.pswp.cn/news/163285.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大數據湖及應用平臺建設解決方案:PPT全39頁,附下載

關鍵詞:大數據湖建設,集團大數據湖,大數據湖倉一體,大數據湖建設解決方案 一、大數據湖定義 大數據湖是一個集中式存儲和處理大量數據的平臺,主要包括存儲層、處理層、分析層和應用層四個部分。 1、存儲層&#xff…

2. OpenHarmony源碼下載

OpenHarmony源碼下載(windows, ubuntu) 現在的 OpenHarmony 4.0 源碼已經有了,在 https://gitee.com/openharmony 地址中,描述了源碼獲取的方式。下來先寫下 windows 的獲取方式,再寫 ubuntu 的獲取方式。 獲取源碼前,還需要的準…

Linux之進程替換

創建子進程的目的 創建子進程的第一個目的是讓子進程執行父進程對應的磁盤代碼中的一部分, 第二個目的是讓子進程想辦法加載磁盤上指定的程序,讓子進程執行新的代碼和程序 一是讓子進程執行父進程代碼的一部分, 比如&#xff1a; 1 #include<stdio.h> 2 #include<…

數據分析基礎之《matplotlib(2)—折線圖》

一、折線圖繪制與保存圖片 1、matplotlib.pyplot模塊 matplotlib.pyplot包含了一系列類似于matlab的畫圖函數。它的函數作用于當前圖形&#xff08;figure&#xff09;的當前坐標系&#xff08;axes&#xff09; import matplotlib.pyplot as plt 2、折線圖繪制與顯示 展示城…

【實用】mysql配置 及將線上數據導入本地 問題解決及記錄

[ERR] 1292 - Incorrect datetime value: ‘0000-00-0000:00:00‘ for column ‘BIRTH_DATE‘ at row 1 此問題是mysql當前配置不支持日期為空&#xff0c;或者為‘0000-00-0000:00:00‘得情況 1、直接在數據庫執行 # 修改全局 set global.sql_mode ONLY_FULL_GROUP_BY,STR…

“老人護工-預約上門” 技術支持網址

我們是一家為新加坡華人提供老人護工上門服務的軟件。您可以選擇滿意的護工&#xff0c;然后提交聯系人的信息&#xff0c;我們會在規定的時間安排護工人員上門&#xff0c;然后您線下支付所需的費用 如果您在使用過程中有什么問題&#xff0c;您可以隨時聯系我們。 郵箱地址&…

Docker部署Vue+Springboot項目

一、部署Springboot項目 1.1先將本地的java項目打成jar包。 再右上角進行maven操作。 1.2將jar包上傳到服務器當中。 先再目錄/home 下創建一個文件夾&#xff08;classRoom&#xff09;用于存放后端打鏡像時需要的文件。 如果是服務器的話可以直接將文件拖拽到想要轉移的地方…

升級Cmake(不用卸載原有的版本)

1、下載需要的(版本)[https://cmake.org/download/] https://cmake.org/download/ 2、解壓、編譯并安裝到制定目錄&#xff0c;修改環境變量 tar -zxvf cmake-3.20.0-rc1.tar.gz cd cmake-3.20.0-rc1 ./bootstrap --prefix/opt/cmake-install make make install 配置環境變量…

基準電壓源的工作原理和作用是什么(高精度電壓源)

基準電壓源是一種能夠提供固定、穩定的直流電壓輸出的電源設備。它廣泛應用于精密儀器、測試設備、通信設備等領域&#xff0c;是實現精確電壓測量和校準的重要工具。本文將為您介紹基準電壓源的工作原理和作用。 一、基準電壓源的工作原理 基準電壓源采用了高精度的電路設計和…

Sam Altman回歸OpenAI,新董事會成員曝光!

11月22日下午&#xff0c;OpenAI在社交平臺宣布&#xff0c;在原則上已達成協議&#xff0c;讓 Sam Altman重返 OpenAI擔任首席執行官&#xff0c;并重組董事會。稍后會公布更詳細的內容。 初始董事會成員包括前Salesforce聯合首席執行官Bret Taylor&#xff08;擔任主席&…

python 使用redis分布式鎖的實例

在分布式系統中&#xff0c;處理并發請求是一個常見的挑戰。一個經典的場景是多個用戶同時嘗試從一個共享資源中進行取款操作。為了確保賬戶余額的一致性&#xff0c;我們需要使用鎖來防止多個線程同時修改賬戶余額。在本文中&#xff0c;我們將使用 Redis 鎖來實現這個目標。 …

鴻蒙開發-ArkTS 語言

鴻蒙開發-ArkTS 語言 1. 初識 ArkTS 語言 ArkTS 是 HarmonyOS 優選主力開發語言。ArkTS 是基于 TS(TypeScript)擴展的一門語言&#xff0c;繼承了 TS 的所以特性&#xff0c;是TS的超集。 主要是擴展了以下幾個方面&#xff1a; 聲明式UI描述和自定義組件&#xff1a; ArkTS允…

淺談Linux bash腳本----getopts獲取腳本POSIX標準傳參

getopts是一個在 Shell 腳本中用于解析命令行選項的內置命令。 它用于處理腳本的參數&#xff0c;使得腳本可以接受不同的選項和參數&#xff0c;并根據用戶提供的輸入采取相應的操作。 getopts 命令基于 POSIX 標準&#xff0c;并且通常與 while 循環結合使用。它的語法如下…

labview 安捷倫 34970A 采集溫度等

本文詳細描述了怎么用安捷倫34970A采集溫度&#xff0c;并列出了labview的下載鏈接&#xff0c;具有一定的參考價值。 1.必要條件&#xff1a; RS-232電纜一根 IO Libraries Suite 軟件 BenchLink Data Logger 軟件 軟件可以在http://www.keysight.com.cn下載 檢查RS-232…

SQLite3 數據庫學習(五):Qt 數據庫高級操作

參考引用 SQLite 權威指南&#xff08;第二版&#xff09;SQLite3 入門 1. Qt 數據庫密碼加密 MD5 加密在線工具 1.1 加密流程 加密后的密碼都是不可逆的 1.2 代碼實現 loginsqlite.h #ifndef LOGINSQLITE_H #define LOGINSQLITE_H#include <QWidget> #include <Q…

通過Whisper模型將YouTube播放列表中的視頻轉換成高質量文字稿的項目

項目簡介 一個通過Whisper模型將YouTube播放列表中的視頻轉換成高質量文字稿的項目。 這個基于 Python 的工具旨在將 YouTube 視頻和播放列表轉錄為文本。它集成了多種技術&#xff0c;例如用于轉錄的 Fast-Whisper、用于自然語言處理的 SpaCy 以及用于 GPU 加速的 CUDA&…

pytest測試框架介紹(1)

又來每天進步一點點啦~~~ 一、Pytest介紹&#xff1a; pytest 是一個非常成熟的全功能的Python測試框架&#xff1b; pytest 簡單、靈活、易上手&#xff1b; 支持參數化 能夠支持簡單的單元測試和復雜的功能測試&#xff0c;可以做接口自動化測試&#xff08;pytestrequests&…

根據商品鏈接獲取拼多多商品詳情數據接口|拼多多商品詳情價格數據接口|拼多多API接口

拼多多&#xff0c;作為中國最大的社交電商之一&#xff0c;為賣家提供了豐富的商品詳情接口。這些接口可以幫助賣家快速獲取商品信息&#xff0c;提高銷售效率。本文將詳細介紹如何使用拼多多商品詳情接口&#xff0c;以及它的優勢和注意事項。 一、拼多多商品詳情接口概述 …

Picasso網絡原生PICA Token通過XCM集成進入Moonriver生態

波卡上的首選多鏈開發平臺Moonbeam宣布Moonriver和Picasso&#xff08;分別為Moonbeam和Composable Finance的Kusama對應平行鏈&#xff09;已達成XCM集成。該集成將Picasso的PICA Token引入Moonriver生態系統使用&#xff0c;并允許用戶在Picasso網絡上使用MOVR。兩條平行鏈都…

大宗商品貿易集團數據治理實踐,夯實數字基座 | 數字化標桿

某大型央企是首批全國供應鏈創新與應用示范企業&#xff0c;在“十四五”規劃期內以聚焦供應鏈管理核心主業作為主要戰略發展方向。供應鏈運營管理以大宗商品貿易為主&#xff0c;其交易往往具有交易量巨大、交易環節復雜、風險交易難識別、風險客商難管控等痛點。 隨著集團數…