軟件設計師備考 | 案例專題之數據庫設計 概念與例題

相關概念

關注上圖中的兩個部分:

概念結構設計

設計E-R圖,也即實體-聯系圖。

工作步驟:選擇局部應用、逐一設計分E-R圖、E-R圖合并。進行合并時,它們之間存在的沖突主要有以下3類:

  • 屬性沖突。同一屬性可能會存在于不同的分E-R圖中。
  • 命名沖突。相同意義的屬性,在不同的分E-R圖上有著不同的命名,或是名稱相同的屬性在不同的分E-R圖中代表著不同的意義。
  • 結構沖突。同一實體在不同的分E-R圖中有不同的屬性,同一對象在某一分E-R圖中被抽象為實體而在另一分E-R圖中又被抽象為屬性。

邏輯結構設計

將E-R圖,轉換成關系模式。

工作步驟:確定數據模型、將E-R圖轉換成為指定的數據模型、確定完整性約束和確定用戶視圖。

實體:客觀存在并可相互區分的事物。

  • 實體集:具有相同類型和共享相同屬性的實體的集合。如學生、課程。
  • 弱實體和強實體:弱實體依賴于強實體的存在而存在。

屬性:實體所具有的特性。

  • 屬性分類:簡單屬性和復合屬性;單值屬性和多值屬性;NULL屬性;派生屬性(可以通過其它屬性運算出來)
  • 域:屬性的取值范圍稱為屬性的域。
  • 碼(key):唯一標識實體的屬性集。

聯系:實體內部的聯系和實體之間的聯系。

  • 一對一(M:1)
  • 一對多(1:N)?? ?如部門和員工
  • 多對多(M:N)? ?如學生和所選課程

例題

某社區蔬菜團購網站,為規范商品收發流程,便于查詢客戶訂單情況,需要開發一個信息系統。請根據下述需求描述完成該系統的數據庫設計。

【需求分析結果】
(1)記錄蔬菜供應商的信息,包括供應商編號、地址和一個電話。(2)記錄社區團購點的信息,包括團購點編號、地址和一個電話。(3)記錄客戶信息,包括客戶姓名和一個電話。客戶可以在不同的社區團購點
下訂單,不直接與蔬菜供應商發生聯系。
(4)記錄客戶訂單信息,包括訂單編號、團購點編號、客戶電話、訂單內容和日期。

【概念模型設計】
根據需求階段收集的信息,設計的實體聯系圖(不完整)如圖 2-1 所示

【邏輯結構設計】
根據概念模型設計階段完成的實體聯系圖,得出如下關系模式(不完整)蔬菜供貨商(供貨商編號,地址,電話)
社區團購點(團購點編號,地址,電話)
供貨(供貨商編號,(a))
客戶(姓名,客戶電話)
訂單(訂單編號,團購點編號,訂單內容,日期,(b))、

【問題 1】(6 分)
根據問題描述,補充圖 2-1 的實體聯系圖。
【問題 2】(4 分)
補充邏輯結構設計結果中的(a)、(b)兩處空缺及完整性約束關系。
【問題 3】(5 分)
若社區蔬菜團購網站還兼有代收快遞的業務,請增加新的“快遞”實體,并給出客戶實體和快遞實體之間的“收取聯系。“快遞”關系模式包括快遞編號、客戶電論和日期。客戶電話和日期。聯系,對圖 2-1 進行補充。

解析:

(1)由需求分析(3)客戶與社區團購點為多對多的關系。另外,要對訂單添加兩個屬性“訂單內容”和“日期”。多對多的關系模式,應該有另外兩張主表作為外鍵,即客戶表和社區團購點,“團購點編號”和“客戶電話”應該直接作為關系模式帶進來,而不是訂單自己擁有的屬性。

(2)(a):供貨應該有蔬菜供應商和社區團購點的主鍵作為外鍵。現在已經有了前者的供貨商編號,還需要社區團購點的主鍵,即團購點編號。主鍵:(供貨商編號、團購點編號)(b)客戶電話。

(3)

2. 某汽車維修公司為了便于管理車輛的維修情況,擬開發一套汽車維修管理系統,請根據下述需求描述完成該系統的數據庫設計。

【需求分析結果】
(1)客戶信息包括:客戶名、客戶性質、折扣率、聯系人、客戶號聯系電話。客戶性質有個人或單位。客戶號唯一標識客戶關系中的每一個元組。

(2)車輛信息包括:車牌號、車型、產一個客戶至少顏色和車輛類別。有一輛車,一輛車只屬于一個客戶,

(3)員工信息包括:賢工號、員工名、崗位電話、家庭住址。其中員工號唯一標識員工關系中的每一個元組。崗位有業務員、維修工主管。業務員根據車輛的故障情況填寫維修單。

(4)部門信息包括:部門號、名稱、主管和電話。其中,部門號唯一確定部門關系的每一個元組。每個部門只有一名主管,但每個部門有多名員工,每名員工只屬于一個部門。

(5)維修單信息包括:維修單號、車牌號、維修內容、工時。其中維修單號唯一標識維修單關系中的每一個元組。一個維修工可以接多張維修單,但一張維修單只對應一個維修工。

【概念模型設計】
根據需求階段收集的信息,設計的實體聯系圖(不完整)如圖 2-1 所示:

【邏輯結構設計】
根據概念模型設計階段完成的實體聯系圖,得出如下關系模式(不完整)客戶(客戶號,客戶名,(a),折扣率,聯系人,聯系電話)
車輛(車牌號,(b),車型,顏色,車輛類別)
員工(員工號,員工名,崗位,(c),電話,家庭住址)
部門(部門號,名稱,主管,電話)
維修單(維修單號(d,)維修內容,工時)

【問題 1】(6 分)
根據問題描述,補充3個聯系,完善圖 2-1的實體聯系圖。聯系名可以用聯系 1、聯系2 和聯系3代替,聯系的類型為 1:1、1:n 和 m:n(或 1:1、1:*和*:*)
【問題 2】(4 分)
根據題意,將關系模式中的空(a)、(d)的屬性補充完整,并填入答題紙對應的位置上
【問題 3】(2 分)
分別給出車輛關系和維修單關系的主鍵和外鍵。
【問題 4】(3 分)
如果一張維修單涉及多項維修內容,需要多個維修工來處理,那么這個聯系類型會發生何種變化?你認為應該如何解決這一問題?

解析:

回答1:補充車輛與客戶的聯系,部門與員工的聯系,維修單與維修工的聯系

回答2:(a)為客戶性質;(b)車輛信息的屬性都在邏輯結構模型中,再填一個,代表天的是外鍵。車輛和客戶是多對一的聯系,再多對一的關系中,多有一的主鍵作為外鍵,因此(b)為客戶表中的主鍵,即客戶號。(c):應填外鍵,擁有部門號的主鍵作為外鍵,因此(c)為部門號。(d):車牌號。維修單與維修工有關系,作為“多”,應有維修工的主鍵作為外鍵,維修工為員工的弱實體,因此還應有維修工員工號。維修單與業務員也是多對一的關系,因此也應該擁有業務員的員工號。

回答3:車輛關系的主鍵是車牌號,外鍵為客戶號。維修單關系中的主鍵那為維修單號,外鍵為維修工和業務員的員工工號。

回答4:將維修單和維修工的關系由多對一改為多對多。那么維修單不需要把維修工的主鍵作為外鍵。新的關系模型有自己的主鍵、以及維修單和維修工的編號。

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

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

相關文章

低功耗藍牙模塊輕松實現智能防丟器

低功耗藍牙模塊,作為集成藍牙無線技術功能的PCBA板,主要用于短距離無線通訊,已經成為物聯網無線傳輸發展的中堅力量。隨著藍牙技術不斷更新換代,越來越多的智能可穿戴設備出現在我們的生活中,智能手環,智能…

電商公司需不需要建數字檔案室呢

建立數字檔案室對于電商公司來說是非常有必要的。以下是一些原因: 1. 空間節約:數字檔案室可以將紙質文件轉化為電子文件,節省了大量存儲空間。這對于電商公司來說尤為重要,因為他們通常會有大量的訂單、客戶信息和供應商合同等文…

Java面向對象程序設計-Hash表

以下為翁愷老師在3.4Hash表中的示例代碼&#xff1a; package coins;import java.util.HashMap; import java.util.Scanner;public class Coin {private HashMap<Integer,String> coinnamesnew HashMap<Integer,String>();public Coin(){coinnames.put(1,"pe…

貸款業務——還款方式以及計算公式對比

文章目錄 等額本息等額本金先息后本&#xff08;按月付息&#xff0c;到期還本&#xff09;到期一次還本付息等本等息&#xff08;等額等息&#xff09;等本等息&#xff08;砍頭息&#xff09; 等額本息 等額本息&#xff1a;借款人每月還的金額固定&#xff08;本金利息總額…

力扣538. 把二叉搜索樹轉換為累加樹

Problem: 538. 把二叉搜索樹轉換為累加樹 文章目錄 題目描述思路復雜度Code 題目描述 思路 利用二叉搜索樹中序遍歷的特性&#xff0c;**降序遍歷&#xff08;此處是想表達先遍歷其右子樹再遍歷其左子樹這樣遍歷的過程中每個節點值得大小排序是降序得&#xff09;**其節點&…

寶塔PHP環境安裝配置Xdebug

寶塔PHP環境安裝配置Xdebug 安裝XdebugVSCode安裝插件編輯配置文件編輯配置運行調試斷點快捷鍵其他 安裝Xdebug 在寶塔中&#xff0c;找到PHP&#xff0c;打開管理頁面&#xff0c;選擇xdebug擴展&#xff0c;點擊操作欄中的安裝按鈕&#xff08;這里已經安裝過了&#xff0c;…

砍死怪獸的概率

題目描述&#xff1a;給定3個參數&#xff0c;N&#xff0c;M&#xff0c;K&#xff0c;怪獸有N滴血&#xff0c;等著英雄來砍自己&#xff0c;英雄每一次打擊&#xff0c;都會讓怪獸流失[0,M]的血量&#xff0c;流失的值每次在[0,M]上等概率的獲得一個值&#xff0c;求K次打擊…

kafka單機安裝及性能測試

kafka單機安裝及性能測試 Apache Kafka是一個分布式流處理平臺&#xff0c;最初由LinkedIn開發&#xff0c;并于2011年開源&#xff0c;隨后成為Apache項目。Kafka的核心概念包括發布-訂閱消息系統、持久化日志和流處理平臺。它主要用于構建實時數據管道和流處理應用&#xff0…

電商項目之有趣的支付簽名算法

文章目錄 1 問題背景2 思路3 代碼實現 1 問題背景 在發起支付的時候&#xff0c;一般都需要對發送的請求參數進行加密或者簽名&#xff0c;下文簡稱這個過程為“簽名”。行業內比較普遍的簽發算法有&#xff1a; &#xff08;1&#xff09;按支付渠道給定的字段排序進行拼接&am…

C++|設計模式(〇)|設計模式的六大原則

這里文章只做簡要描述&#xff0c;作為掃盲 在軟件開發過程中&#xff0c;遵循一定的設計原則可以幫助開發者創建更加靈活、可維護和可擴展的系統。設計模式的六大原則是面向對象設計的核心理念&#xff0c;本文將詳細介紹這些原則&#xff0c;并結合實例說明它們的重要性和應用…

Android Studio添加依賴 新版 和 舊版 的添加方式(Gradle添加依賴)(Java)

舊版的&#xff08;在線添加&#xff09; 1找 文件 在項目的build.gradle文件中添加依賴(在下面的節點中添加庫 格式 ’ 組 &#xff1a;名字 &#xff1a; 版本號 ‘ ) dependencies {implementation com.example:library:1.0.0 }implementation 組:名字:版本…

【lambdastreammaven】

lambda 匿名函數 為了簡化java中的匿名內部類 事件監聽 寫一個類 實現 ActionListener 接口 (外部類) | | 內部類 類在其他地方用不到, 索性就把這個類定義在類的內部使用 好處: 1.內部可以使用外部類的成員 …

互聯網十萬個為什么之什么是分布式計算?

分布式計算是一種計算方法&#xff0c;它將計算任務分散到多個物理或邏輯上分開的計算機&#xff08;稱為節點&#xff09;上執行&#xff0c;這些節點通過網絡互連并協作完成共同的目標。每個節點具備獨立的處理能力和存儲資源&#xff0c;在分布式系統中&#xff0c;它們共享…

論文閱讀--CLIPasso

讓計算機把真實圖片抽象成簡筆畫&#xff0c;這個任務很有挑戰性&#xff0c;需要模型捕獲最本質的特征 以往的工作是找了素描的數據集&#xff0c;而且抽象程度不夠高&#xff0c;筆畫是固定好的&#xff0c;素描對象的種類不多&#xff0c;使得最后模型的效果十分受限 之所以…

小米財報:業績遠超預期,汽車推著手機跑!

隨著一季度財報陸續出爐&#xff0c;企業間的分化越來越明顯。 新環境下&#xff0c;很多公司都陷入停滯時&#xff0c;去討論“掉隊”已經沒有多少意義&#xff0c;現在真正值得我們關注的&#xff0c;是那些在逆風情況下&#xff0c;還能“領先”的企業。毫無疑問&#xff0…

ES集群性能優化參考建議

Elasticsearch&#xff08;ES&#xff09;集群性能優化是一個多方面的任務&#xff0c;涉及硬件、配置、查詢優化等多個方面。以下是一些建議&#xff0c;幫助你優化Elasticsearch集群的性能&#xff1a; 1. 硬件優化 內存&#xff1a;確保分配給Elasticsearch的內存足夠大&a…

C++|設計模式(三)|抽象工廠模式

抽象工廠模式仍然屬于創建型模式&#xff0c;我們在【簡單工廠和工廠方法模式】這篇文章中&#xff0c;描述了簡單工廠和工廠方法模式&#xff0c;并在文末&#xff0c;簡單介紹了工廠方法模式的局限性。 本文將通過汽車工廠的例子繼續來闡述使用抽象工廠模式相比較于工廠方法…

Linux修煉之路之馮系結構,操作系統

目錄 一&#xff1a;馮諾依曼體系結構 1.五大組件 2.存儲器存在的意義 3.幾個問題 二&#xff1a;操作系統 接下來的日子會順順利利&#xff0c;萬事勝意&#xff0c;生活明朗-----------林辭憂 一&#xff1a;馮諾依曼體系結構 我們當代的計算機的基本構成都是由馮諾依曼…

Kubernetes 容器編排

應用程序部署演變 主要有三個演變&#xff1a; 傳統部署&#xff1a;互聯網早期&#xff0c;會直接將應用程序部署在物理機上 優點&#xff1a;簡單&#xff0c;不需要其它技術的參與 缺點&#xff1a;不能為應用程序定義資源使用邊界&#xff0c;很難合理地分配計算資源&…

【開源】多語言大型語言模型的革新:百億參數模型超越千億參數性能

大型人工智能模型&#xff0c;尤其是那些擁有千億參數的模型&#xff0c;因其出色的商業應用表現而受到市場的青睞。但是&#xff0c;直接通過API使用這些模型可能會帶來數據泄露的風險&#xff0c;尤其是當模型提供商如OpenAI等可能涉及數據隱私問題時。私有部署雖然是一個解決…