1. 程式人生 > >資料庫實體間關係筆記

資料庫實體間關係筆記

總結

判斷實體間關係只需要問自己兩個問題:
1. 實體A包含實體B嗎?
2. 實體B包含實體A嗎?

  • 都回答‘是’–>M:N
  • 都回答‘否’–>1:1
  • 答案不同 –> 1:N

當實在是不能分辨兩個實體間的關係是 一對多 還是 多對多 我們不妨用假設法。

  • 我們先假設實體間是一對多,想想我們的實現業務邏輯
  • 再假設他們之間的關係是多對多,想想我們的實現業務邏輯
  • 相信最終你會選出一個相對簡潔的業務邏輯去實現。

今天設計資料庫標間關係的是偶蒙圈了。在這裡調整一下思路。

一、資料庫實體間關係總共有三種:

實體A 實體B
- 1 1
- 1 N
- M N

1:1 (獨生子家庭)一個兒子只有有一個父親,一個父親只有個一個兒子
1:N 一個宇宙有多個星星,每一個星星都只存在於一個宇宙中
M:N 一個老師有多個學生,一個學生有多個老師

二、描述 1:1 關係我們用兩個表就可以了

每一列表示一個表中包含的欄位

兒子 父親
ID : ID
姓名 : 姓名
年齡 : 年齡
父親 : 兒子

三、描述M:N關係 必須三個表

教師 教師關聯學生 學生
ID ID ID
姓名 學生ID 年齡
身份證 教師ID 身份證

這可以解決資料流向問題:
資料流是
- “宇宙–>星星 ”教師表+關聯表–>找到一個老師的所有學生
- “星星 –> 宇宙”學生表+關聯表–>找到一個學生的所有老師

四、描述 1:N 必須要三個表才可以?——其實不是,兩個表就夠了。

每一列表示一個表中包含的欄位

3.1、對於1:N關係描述

表現方式(三個表)

宇宙 宇宙關聯星星 星星
ID ID ID
年齡 宇宙ID(一直是同一個值) 年齡
直徑 星星ID 直徑
  • 探究
    又覺得 在 “宇宙關聯星星”表中 ‘宇宙ID’一直都是同一個值
    那麼我們用兩個表好像也可以表示 1:N 的實體間關係。
    因為開發者在文件中註明這種 1:N 關係的存在就足夠對錶做出操作了。
    不管 資料流是
    • “宇宙–>星星 ”
    • “星星 –> 宇宙”

不是嗎?

宇宙 : 星星
ID : ID
年齡 : 年齡
直徑 : 直徑

3.2、對於1:N關係解決

事實上,我在1:N關係上出現的問題是沒有真正的區分清楚
我所處理的關係是否為一對多關係。
怎麼用一句話說出來這事這麼簡單。
難的是在業務邏輯中的“區分”。

相關推薦

資料庫實體關係筆記

總結 判斷實體間關係只需要問自己兩個問題: 1. 實體A包含實體B嗎? 2. 實體B包含實體A嗎? 都回答‘是’–>M:N 都回答‘否’–>1:1 答案不同 –> 1:N 當實在是不能分辨兩個實體間的關係是 一對多

資料庫實體有三種對應關係:一對一,一對多,多對多。

一對一關係示例:一個學生對應一個學生檔案材料,或者每個人都有唯一的身份證編號。 一對多關係示例:一個學生只屬於一個班,但是一個學院有多名學生。 多對多關係示例:一個學生可以選擇多門課,一門課也有多名學生。 這三種關係在資料庫中邏輯結構處理分析: 1.一對多關係處理: 我們以學生和班級之間的關係來說

資料庫】關係型資料庫實體關係

【資料庫】關係型資料庫中的關係 關係分類 實際應用 關係分類 在關係型資料庫中,按照x對x的分類,可以分為三種,分別為一對一、一對多、多對多。 實際應用 我使用的是MySQL的視覺化工具Workbench,在建立新的Model EER

如何用Visio畫資料庫實體關係

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

實體關係:1:1,1:N,M:N

*實體之間的關係* 1)1對1關係: 兩個實體表內,存在相同的主鍵欄位。   1.1)設計:          如果記錄的主鍵值等於另一個關係表內記錄的主鍵值,則兩條 記錄對應,1:1對應。 例子: #表一:學生資訊表          #表二:學生詳細資訊表 學生主鍵

資料庫系統實現學習筆記二(資料庫關係建模)--by穆晨

前言         ER建模環節完成後,需求就被描述成了ER圖。之後,便可根據這個ER圖設計相應的關係表了。         但從ER圖到具體關係表的建立還需要經過兩個步驟: 邏輯模型設計:將ER圖對映為邏輯意義上的

12c容器資料庫匯入操作_筆記(Linux/oracle借用shell工具匯入資料檔案操作)

Linux/oracle借用shell工具匯入資料檔案操作 一、使用shell工具,遠端連線到Linux下的oracle資料庫服務上 Xshell 6 (Build 0095) Copyright (c) 2002 NetSarang Computer, Inc. All rights reserved

MySQL JDBC驅動版本與MySQL資料庫版本對應關係

前言:前段時間發現在家使用和公司一樣的mysql jdbc驅動版本發生了異常,原因:家裡mysql資料庫版本與公司不一致導致。查詢了相關資料,發現mysql jdbc驅動版本與mysql資料庫版本有一定的對應關係,用錯了版本就會出現連線不上資料庫的異常。 這裡給出mysql jdbc驅動

關係資料庫與非關係資料庫的區別

當前主流的關係型資料庫有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。 非關係型資料庫有 NoSql、Cloudant。 nosql和關係型資料庫比較? 優點: 1)成本:nosql資料庫簡單易部署,基本都是

六天帶你玩轉mysql資料庫--第四天筆記

回顧: 列屬性:主鍵,自增長,唯一鍵 關係:一對一,一對多,多對多 正規化:規範資料庫的設計,三層正規化 1NF:欄位設計必須符合原子性 2NF:不存在部分依賴(沒有複合主鍵) 3NF:不存在傳遞依賴(實體單獨建表) 逆規範化:效率與磁碟空間的博弈 高階資料操作: 新增資料:主

六天帶你玩轉mysql資料庫-- 第三天筆記(下)

資料的高階操作: 資料操作:增刪改查 新增資料: 基本語法: insert into 表名 [(欄位列表)] values(值列表); 在資料插入的時候,假設主鍵對應的值已經存在,插入一定會失敗。 主鍵衝突: 當主鍵存在衝突的時候(Duplicate ke

六天帶你玩轉mysql資料庫--第三天筆記(中)

索引: 幾乎所有的索引都是建立在欄位之上。 索引:系統根據某種演算法將已有的資料(未來可能新增的資料),單獨建立一個檔案,檔案能夠實現快速的匹配資料, 並且能夠快速的找到對應表中的記錄。索引的意義在於: 1.提升查詢資料的效率 2.約束資料的有效性(唯一性等) 增加索引有前提條件:索引本

六天帶你玩轉mysql資料庫--第三天筆記(上)

回顧: 欄位型別(列型別):數值型,時間日期和字串型別。 數值型:整數和小數型(浮點型和定點型) 時間日期型:datetime,date,time,timestamp,year。 字串型別:定長,變長,文字字串(text和blob),列舉(單選)和集合(多選)。 mysql的 記錄長度:

六天帶你玩轉mysql資料庫--第五天筆記(上)

回顧: 連線查詢:多張表連線到一起,不管記錄數如何,欄位數一定會增加。 分類:內連線,外連線,自然連線和交叉連線。 交叉連線:cross join(笛卡爾積) 內連線:inner join,左右兩張表中有連線條件匹配(不忽略的匹配) 外連線:outer [left/righ

資料庫複習】關係代數

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

資料庫連線池學習筆記(一):原理介紹+常用連線池介紹

什麼是連線池 資料庫連線池負責分配、管理和釋放資料庫連線,它允許應用程式重複使用一個現有的資料庫連線,而不是再重新建立一個。 為什麼要使用連線池  資料庫連線是一種關鍵的有限的昂貴的資源,這一點在多使用者的網頁應用程式中體現得尤為突出。  一個數據庫連線物件均對應

資料庫總結作業關係資料理論六

一.規範化程度判斷 例5 關係模式R(U,F),其中U={A,B,C,D},函式依賴集F={B→D,AB→C},試求R最高屬於第幾正規化。 AB為候選碼 AB->C、D且B->D存在非主屬性對碼的部分依賴,最高位1NF 例6 關係模式R(U,F),其中U={A,B,C,D

C#中集合介面關係筆記

IEnumerable IEnumerable介面是所有集合型別的祖宗介面,其作用相當於Object型別之於其它型別。如果某個型別實現了IEnumerable介面,就意味著它可以被迭代訪問,也就可以稱之為集合型別(可列舉); ICollection ICollection繼承於IEnumerable介面

RDBMS與資料庫之間的關係

什麼是資料庫?  資料庫就是用來存放資料的倉庫,它是一種特殊的檔案。   什麼是關係型資料庫? 關係型資料庫就是指建立在關係模型基礎上的資料庫,通常由多張表組成,這些表之間存在一定的關係。   什麼是RDBMS? RDBMS又稱關係型資料庫管理系統,指建立在關係模型

資料庫知識整理 - 關係資料庫標準語言SQL(二)- 超良心的資料查詢整理!

主要內容 資料查詢 基本語法 單表查詢 1. 選擇表中的若干列 2. 選擇表中的若干元組 3. ORDER BY子句 4. 聚集函式 5. GROUP BY子句 連線查詢 1. 等值與非等值連線查詢 2. 自身連線 3. 外