資料庫實體間關係筆記
總結
判斷實體間關係只需要問自己兩個問題:
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. 外