From 8ce8ba39605b8261144b2fc2e5926db5bd6c78fc Mon Sep 17 00:00:00 2001 From: Zhang Peng Date: Fri, 15 Jun 2018 14:58:23 +0800 Subject: [PATCH] =?UTF-8?q?:bento:=20=E6=B7=BB=E5=8A=A0=E3=80=81=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/database/数据库ACID.png | Bin 0 -> 17408 bytes images/database/数据库事务.png | Bin 0 -> 16384 bytes ...数据库并发一致性-不可重复读.png | Bin 0 -> 15360 bytes .../数据库并发一致性-丢失修改.png | Bin 0 -> 13312 bytes .../数据库并发一致性-幻读.png | Bin 0 -> 13312 bytes .../数据库并发一致性-脏数据.png | Bin 0 -> 14336 bytes images/database/数据库范式.png | Bin 0 -> 32768 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/database/数据库ACID.png create mode 100644 images/database/数据库事务.png create mode 100644 images/database/数据库并发一致性-不可重复读.png create mode 100644 images/database/数据库并发一致性-丢失修改.png create mode 100644 images/database/数据库并发一致性-幻读.png create mode 100644 images/database/数据库并发一致性-脏数据.png create mode 100644 images/database/数据库范式.png diff --git a/images/database/数据库ACID.png b/images/database/数据库ACID.png new file mode 100644 index 0000000000000000000000000000000000000000..8f400a656dccc7ed85b50a1eb014cb254e916a07 GIT binary patch literal 17408 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 LyP^Lt%>Vxd@lDU1 literal 0 HcmV?d00001 diff --git a/images/database/数据库事务.png b/images/database/数据库事务.png new file mode 100644 index 0000000000000000000000000000000000000000..6f56bc5e871f7dd4763c6f502a8f73083591ced8 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/images/database/数据库并发一致性-不可重复读.png b/images/database/数据库并发一致性-不可重复读.png new file mode 100644 index 0000000000000000000000000000000000000000..514ab0549055c0a51c2cee5109d72f0cf34548b6 GIT binary patch literal 15360 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 C{V^Z_ literal 0 HcmV?d00001 diff --git a/images/database/数据库并发一致性-幻读.png b/images/database/数据库并发一致性-幻读.png new file mode 100644 index 0000000000000000000000000000000000000000..748980c42e969b67d0018a26f9d5134ac47c8e6b GIT binary patch literal 13312 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 literal 0 HcmV?d00001 diff --git a/images/database/数据库并发一致性-脏数据.png b/images/database/数据库并发一致性-脏数据.png new file mode 100644 index 0000000000000000000000000000000000000000..e338c1bb550386061b8b9688332b41b25d3262b8 GIT binary patch literal 14336 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 Y@Hrgh_|a2G@P~f*@vn3Wf8+W8KbhIHRsaA1 literal 0 HcmV?d00001 diff --git a/images/database/数据库范式.png b/images/database/数据库范式.png new file mode 100644 index 0000000000000000000000000000000000000000..84b2898b3989e345cf1c01b38068c475ba9f8e8b GIT binary patch literal 32768 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