【发布时间】:2021-04-01 00:30:03
【问题描述】:
我知道数据模型基本上是两种类型 ER-Model 和关系模型和数据库模式也是物理和逻辑两种类型。
但是基于它们在 DBMS 中的操作,我无法理解它们之间有什么区别?
【问题讨论】:
标签: database
我知道数据模型基本上是两种类型 ER-Model 和关系模型和数据库模式也是物理和逻辑两种类型。
但是基于它们在 DBMS 中的操作,我无法理解它们之间有什么区别?
【问题讨论】:
标签: database
模式是数据库的蓝图,它指定将出现哪些字段以及它们的类型。例如,employee 表将有一个由 10 位数字组成的字符串表示的 employee_ID 列和一个由 45 个字符组成的字符串表示的employee_Name 列。
数据模型是一种高级设计,它决定了模式中可以存在的内容。它为数据库用户提供了一个概念框架,在该框架中我们指定了数据库用户的数据库需求以及满足这些需求的数据库结构。
例如,数据模型可以是关系模型,其中数据将组织在表中,而该模型的架构将是一组属性及其对应的域。
参考:Understanding the schema 和数据库系统概念(H Korth 和 A Silberschatz)
【讨论】:
据我了解,数据库模式是一个物理实体,它准确描述了数据存储方式的结构,并且它本身由 DBMS 存储以供参考。另一方面,数据模型是数据库的抽象表示。
【讨论】:
数据库模式是一种包含属性列表和指令的模式,用于告诉数据库引擎如何组织数据,而 数据模型是用于描述数据、数据关系和一致性约束的概念工具的集合。
【讨论】:
我的想法...架构决定或描述您将在文档中拥有的字段...而模型是架构的编译,并确保任何移入或移出的数据都必须符合该架构
【讨论】:
据我所知,数据模型是一种高级设计,它定义了表的类型、这些表中的字段以及不同表之间的关系。数据库模式描述类型(int、string 等)和字段长度等约束应小于 20 个字符。 Database Schema指的是Data模型,详细的指定了每个表和字段。
【讨论】:
一个模式可以有多个与之相关的模型,每个模型可以有多个与之相关的实例。
例如。
animalSchema{name:String, type:String}
mongoose.model('carnivores', animalSchema)
简单来说,carnivores 是一个基于 animalSchema 的模型。
mongoose.model('herbivores', animalSchema).
简单的意思是食草动物也是基于animalSchema的模型。
const lion = new carnivores();
const tiger = new carnivores();
这两个都是模式animalSchema的食肉动物模型的实例
const deer = new herbivores();
const cow = new herbivores();
这两个都是模式animalSchema的食草动物模型的实例
【讨论】:
数据库架构:- 数据库架构定义数据库。这意味着它指定了那里有哪些表以及它们如何相互关联。它定义了对 DBMS 软件用于理解数据库有用的所有内容。此模式存储在元数据存储库中的单独文件中
数据库数据模型:- DBMS系统在处理数据时会使用什么样的模型。这不存储在单独的文件中。数据模型就是数据库。例如:- Mysql DBMS 使用关系数据模型。
【讨论】:
在我看来,首先准备数据库模型,然后是数据库模式。数据模型特别是在实体关系方面给出了数据库模型的整体逻辑视图,而数据库模型更集中于实体及其属性。
【讨论】: