提交 0b97b38d 编写于 作者: W wizardforcel

2019-08-28 16:57:37

上级 b8e8d794
......@@ -8,12 +8,12 @@
DBMS 中有几种类型的数据模型。我们将在单独的文章中详细介绍它们(下面已经提供了与这些单独教程的链接)。在本指南中,我们将看到模型类型的基本概述。
**基于对象的逻辑模型** - 描述概念和视图级别的数据。
**基于对象的逻辑模型** - 描述概念和视图的数据。
1. [E-R 型号](https://beginnersbook.com/2015/04/e-r-model-in-dbms/)
1. [E-R 模型](https://beginnersbook.com/2015/04/e-r-model-in-dbms/)
2. 面向对象模型
**基于记录的逻辑模型** - 与基于对象的模型类似,它们还描述概念和视图级别的数据。这些模型使用记录,字段和属性指定数据库的逻辑结构。
**基于记录的逻辑模型** - 与基于对象的模型类似,它们也描述概念和视图层的数据。这些模型使用记录,字段和属性指定数据库的逻辑结构。
1. [关系模型](https://beginnersbook.com/2015/04/relational-model-in-dbms/)
2. [分层模型](https://beginnersbook.com/2015/04/hierarchical-model-in-dbms/)
......
......@@ -2,7 +2,7 @@
> 原文: [https://beginnersbook.com/2015/04/e-r-model-in-dbms/](https://beginnersbook.com/2015/04/e-r-model-in-dbms/)
**实体关系模型(ER 模型)**借助于图来描述数据库的结构,其被称为**实体关系图(ER 图)**。 ER 模型是数据库的设计或蓝图,以后可以作为数据库实现。 E-R 模型的主要组成部分是:实体集和关系集。
**实体关系模型(ER 模型)**借助于图来描述数据库的结构,其被称为**实体关系图(ER 图)**。 ER 模型是数据库的设计或蓝图,以后可以实现为数据库。 E-R 模型的主要组成部分是:实体集和关系集。
## 什么是实体关系图(ER 图)?
......@@ -10,15 +10,16 @@ ER 图显示了实体集之间的关系。实体集是一组相似的实体,
## 一个简单的 ER 图:
在下图中,我们有两个实体学生和学院及其关系。学生与学院之间的关系是多对一的,因为大学可以有很多学生,但学生不能同时在多所大学学习。学生实体具有诸如`Stu_Id``Stu_Name``Stu_Addr`等属性。`College`实体具有`Col_ID``COL_NAME`等属性。
在下图中,我们有两个实体`Student``College`及其关系。`Student``College`之间的关系是多对一的,因为大学可以有很多学生,但学生不能同时在多所大学学习。`Student`实体具有诸如`Stu_Id``Stu_Name``Stu_Addr`等属性。`College`实体具有`Col_ID``COL_NAME`等属性。
![E-R Diagram](img/789d8be28f7f1f9adf83c57df7fd3fd2.jpg)
以下是 E-R 图中的几何形状及其含义。我们将在本指南的下一部分(ER 图的组成部分)中详细讨论这些术语,所以现在不要过多担心这些术语,只需经历一次。
以下是 E-R 图中的几何形状及其含义。我们将在本指南的下一部分(ER 图的组成部分)中详细讨论这些术语,所以现在不要过多担心这些术语,只需浏览一次。
**矩形** :表示实体集。
**椭圆**:属性
**菱形**:关系集
**行**:它们将属性链接到实体集和实体集到关系集
**直线**:它们将属性链接到实体集,将实体集链接到关系集
**双椭圆:**多值属性
**虚线椭圆**:派生属性
**双矩形**:弱实体集
......@@ -27,81 +28,95 @@ ER 图显示了实体集之间的关系。实体集是一组相似的实体,
## ER 图的组成部分
![ER Diagram Components](img/660f02e63c807ed7e34a9e5b75f7326b.jpg)
如上图所示,ER 图有三个主要组成部分:
1.实体
2.属性
3.关系
### 1.实体
1. 实体
2. 属性
3. 关系
### 1\. 实体
实体是数据的对象或组件。实体在 ER 图中表示为矩形。
例如:在下面的 ER 图中,我们有两个实体学生和学院,这两个实体有多对一的关系,因为许多学生在一所大学学习。我们稍后会阅读更多关于关系的内容,现在关注实体。
![ER diagram entity example](img/00c5a2ac8e883b1ce137fc20896ee9e8.jpg)
**弱实体:**
无法通过其自身属性唯一标识并依赖于与其他实体的关系的实体称为弱实体。弱实体由双矩形表示。例如,如果不知道该帐户所属的银行,就无法唯一识别银行帐户,因此银行帐户是一个弱实体。
![ER diagram weak entity example](img/0d74b1b5b5058f5eb131ba0228a2ca9e.jpg)
### 2.属性
### 2\. 属性
属性描述实体的属性。 ER 图中的属性表示为椭圆。有四种类型的属性:
1.关键属性
2.复合属性
3.多值属性
4.派生属性
1\. 关键属性
2\. 复合属性
3\. 多值属性
4\. 派生属性
#### 1.关键属性:
#### 1\. 关键属性:
关键属性可以唯一地标识实体集中的实体。例如,学生编号可以唯一地标识来自一组学生的学生。关键属性由椭圆表示,与其他属性相同,但关键属性的**文本加下划线**
关键属性可以唯一地标识实体集中的实体。例如,学生卷号可以唯一地标识来自一组学生的学生。关键属性由椭圆表示,与其他属性相同,但键属性的**文本加下划线**
![ER diagram key attribute](img/e54f658d4592aec19026e52343b6bf39.jpg)
#### 2.复合属性:
#### 2\. 复合属性:
属于其他属性组合的属性称为复合属性。例如,在学生实体中,学生地址是复合属性,因为地址由其他属性组成,例如密码,状态,国家。
![ER diagram composite attribute](img/05546c07372b6fb71eb9c76e20c228e0.jpg)
#### 3.多值属性:
#### 3\. 多值属性:
可以包含多个值的属性称为多值属性。它在 ER 图中用**双椭圆**表示。例如 - 一个人可以拥有多个电话号码,因此电话号码属性是多值的。
#### 4.派生属性:
#### 4\. 派生属性:
派生属性的值是动态的,并且是从另一个属性派生的。它由 ER 图中的**虚线椭圆**表示。例如 - `Person age`是一个派生属性,因为它随时间变化,可以从另一个属性(出生日期)派生。
具有多值和派生属性的 **E-R 图**
![Multivalued and derived attribute](img/ba8fd060c71734ad1f8996486167f268.jpg)
### 3.关系
### 3\. 关系
ER 图中的菱形表示关系,表示实体之间的关系。有四种类型的关系:
1.一对一
2.一对多
3.多对一
4.多对多
#### 1.一对一的关系
1. 一对一
2. 一对多
3. 多对一
4. 多对多
#### 1\. 一对一的关系
当实体的单个实例与另一个实体的单个实例相关联时,它被称为一对一关系。例如,一个人只有一本护照,一本护照只能被一个人获得。
当实体的单个实例与另一个实体的单个实例相关联时,它被称为一对一关系。例如,一个人只有一本护照,一本人就可以获得护照。
![ER diagram one to one relationship example](img/b3adbba2406909f8aaa671a849b359b7.jpg)
#### 2.一对多的关系
#### 2\. 一对多的关系
当一个实体的单个实例与另一个实体的多个实例相关联时,它被称为一对多关系。例如 - 客户可以下许多订单,但许多客户无法下一个订单。
当一个实体的单个实例与另一个实体的多个实例相关联时,它被称为一对多关系。例如 - 客户可以下许多订单,但许多客户无法下订单。
![ER diagram one to many relationship example](img/03ec4c74f97b344eb5be13ad057a0e3f.jpg)
#### 3.多对一的关系
#### 3\. 多对一的关系
当实体的多个实例与另一个实体的单个实例相关联时,它被称为多对一关系。例如,许多学生可以在一所大学学习,但学生不能同时在许多大学学习。
![ER diagram many to one relationship example](img/1e5b51aed63d836eb4123b7f70564ad0.jpg)
#### 4.多对多关系
#### 4\. 多对多关系
当一个实体的多个实例与另一个实体的多个实例相关联时,它被称为多对多关系。例如,可以将学生分配给许多项目,并将项目分配给许多学生。
![ER diagram many to many relationship example](img/d10b2d93bbe0f7deca5d5f8d5b5b4566.jpg)
## 实体集的完全参与
实体集的总参与表示实体集中的每个实体必须在关系集中具有至少一个关系。例如:在下图中,每个学院必须至少有一个相关的学生。
实体集的完全参与表示实体集中的每个实体必须在关系集中具有至少一个关系。例如:在下图中,每个学院必须至少有一个相关的学生。
![Total Participation Diagram](img/43c71e7bce031baa341db2a02e3aab24.jpg)
\ No newline at end of file
......@@ -2,9 +2,9 @@
> 原文: [https://beginnersbook.com/2015/04/view-in-dbms/](https://beginnersbook.com/2015/04/view-in-dbms/)
抽象是数据库系统的主要特征之一。隐藏用户不相关的细节并向用户提供数据的抽象视图,有助于轻松高效地**用户数据库**交互。在前面的教程中,我们讨论了[三级 DBMS 架构](https://beginnersbook.com/2018/11/dbms-three-level-architecture/),该架构的顶层是“视图级别”。视图级别向用户提供“**数据**”视图,并隐藏用户无关的详细信息,如数据关系,数据库模式,[约束](https://beginnersbook.com/2015/04/constraints-in-dbms/),安全性等。
抽象是数据库系统的主要特征之一。隐藏用户不相关的细节并向用户提供数据的抽象视图,有助于用户轻松高效地**与数据库**交互。在前面的教程中,我们讨论了[三层 DBMS 架构](https://beginnersbook.com/2018/11/dbms-three-level-architecture/),该架构的顶层是“视图层次”。视图层次向用户提供“**数据**”视图,并隐藏用户无关的详细信息,如数据关系,数据库模式,[约束](https://beginnersbook.com/2015/04/constraints-in-dbms/),安全性等。
要完全理解数据视图,您必须具备数据抽象和实例的基本知识。架构。请参阅这两个教程以详细了解它们。
要完全理解数据视图,您必须具备数据抽象以及实例和模式的基本知识。请参阅这两个教程以详细了解它们。
1. [数据抽象](https://beginnersbook.com/2015/04/levels-of-abstraction-in-dbms/ "Data Abstraction in DBMS")
2. [实例和架构](https://beginnersbook.com/2015/04/instance-and-schema-in-dbms/ "Instance and schema in DBMS")
\ No newline at end of file
2. [实例和模式](https://beginnersbook.com/2015/04/instance-and-schema-in-dbms/ "Instance and schema in DBMS")
\ No newline at end of file
......@@ -2,19 +2,20 @@
> 原文: [https://beginnersbook.com/2015/04/levels-of-abstraction-in-dbms/](https://beginnersbook.com/2015/04/levels-of-abstraction-in-dbms/)
数据库系统由复杂的数据结构组成。为了简化用户与数据库的交互,开发人员隐藏了用户的内部无关细节。这种从用户隐藏不相关细节的过程称为数据抽象。
数据库系统由复杂的数据结构组成。为了简化用户与数据库的交互,开发人员隐藏了用户无关的内部细节。这种从用户隐藏不相关细节的过程称为数据抽象。
![3 levels of abstraction](img/155d2d3c5c8a5b06ea0425a92cbcc8ed.jpg)
**我们有三个抽象层次**
**物理层**:这是数据抽象的最低层次。它描述了数据实际存储在数据库中的方式。您可以在此级别获取复杂的数据结构详细信息。
**逻辑**:这是 3 级数据抽象架构的中间层。它描述了数据库中存储的数据。
**逻辑**:这是 3 级数据抽象架构的中间层。它描述了数据库中存储的数据。
**视图**:最高级别的数据抽象。此级别描述用户与数据库系统的交互。
**视图**:最高级别的数据抽象。此级别描述用户与数据库系统的交互。
**示例**:假设我们将客户信息存储在客户表中。在**物理级**,这些记录可以描述为内存中的存储块(字节,千兆字节,太字节等)。这些细节通常对程序员来说是隐藏的。
**示例**:假设我们将客户信息存储在客户表中。在**物理层**,这些记录可以描述为内存中的存储块(字节,KB,TB 等)。这些细节通常对程序员来说是隐藏的。
**逻辑**,这些记录可以被描述为字段和属性以及它们的数据类型,它们之间的关系可以在逻辑上实现。程序员通常在这个级别工作,因为他们知道有关数据库系统的这些事情。
**逻辑**,这些记录可以被描述为字段和属性以及它们的数据类型,它们之间的关系可以在逻辑上实现。程序员通常在这个级别工作,因为他们知道有关数据库系统的这些事情。
**视图级**,用户只需在 GUI 的帮助下与系统交互并在屏幕上输入详细信息,他们不知道数据的存储方式和存储的数据;这些细节对他们来说是隐藏的。
\ No newline at end of file
**视图层**,用户只需在 GUI 的帮助下与系统交互并在屏幕上输入详细信息,他们不知道数据的存储方式和存储的数据;这些细节对他们来说是隐藏的。
\ No newline at end of file
......@@ -8,19 +8,20 @@
**模式的定义**:数据库的设计称为模式。架构有三种类型:物理架构,逻辑架构和视图架构。
例如:在下图中,我们有一个模式,显示三个表之间的关系:Course,Student 和 Section。该图仅显示数据库的设计,它不显示这些表中存在的数据。模式只是数据库的结构视图(设计),如下图所示。
例如:在下图中,我们有一个模式,显示三个表之间的关系:`Course``Student``Section`。该图仅显示数据库的设计,它不显示这些表中存在的数据。模式只是数据库的结构视图(设计),如下图所示。
![DBMS Schema](img/920fa9942d2274684421211db6294ca9.jpg)
物理层面的数据库设计称为**物理模式**如何在此级别描述存储在存储块中的数据
物理层面的数据库设计称为**物理模式**在此级别描述数据如何存储在存储块中
逻辑级数据库的设计称为**逻辑模式**,程序员和数据库管理员在这个级别工作,在这个级别数据可以描述为某些类型的数据记录存储在数据结构中,但内部细节如此因为数据结构的实现隐藏在此级别(在物理级别可用)。
逻辑层面数据库的设计称为**逻辑模式**,程序员和数据库管理员在这个级别工作,在这个级别数据可以描述为某些类型的数据记录,存储在数据结构中,但因为数据结构的实现,内部细节在此级别隐藏(在物理级别可用)。
视图级数据库的设计称为**视图模式**。这通常描述了最终用户与数据库系统的交互。
要了解有关这些模式的更多信息,请参阅 [3 级数据抽象架构](https://beginnersbook.com/2015/04/levels-of-abstraction-in-dbms/ "Data Abstraction in DBMS")
要了解有关这些模式的更多信息,请参阅 [3 级数据抽象](https://beginnersbook.com/2015/04/levels-of-abstraction-in-dbms/ "Data Abstraction in DBMS")
## DBMS 实例
**实例的定义**:在特定时刻存储在数据库中的数据称为数据库实例。数据库模式定义属于特定数据库的表中的变量声明;这些变量在某个时刻的值称为该数据库的实例。
**实例的定义**:在特定时刻存储在数据库中的数据称为数据库实例。数据库模式定义属于特定数据库的表中的变量声明这些变量在某个时刻的值称为该数据库的实例。
例如,假设我们在数据库中有一个表学生,今天该表有 100 条记录,所以今天数据库的实例有 100 条记录。假设我们明天将在此表中添加另外 100 条记录,因此明天数据库实例将在表中有 200 条记录。简而言之,在特定时刻,存储在数据库中的数据称为实例,当我们从数据库添加或删除数据时,该实例会随时间而变化。
\ No newline at end of file
例如,假设我们在数据库中有一个表`Student`,今天该表有 100 条记录,所以今天数据库的实例有 100 条记录。假设我们明天将在此表中添加另外 100 条记录,因此明天数据库实例将在表中有 200 条记录。简而言之,在特定时刻,存储在数据库中的数据称为实例,当我们从数据库添加或删除数据时,该实例会随时间而变化。
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册