实体(Entity)和模型(Model)
学习了三层架构之后,就是七层登录。在了解概念和逻辑的过程中,发现有的人说到了实体(Entity),还有的人说的是模型(Model)。我不明白这两者是什么区别,于是,有了这篇博客。
实体(Entity)
维基百科描述到:
实体(Entity)是有可区别性且独立存在的某种事物,但它不需要是物质上的存在。尤其是抽象和法律拟制也通常被视为实体。
可见,实体就是软件系统中的研究对象。
比如:学生信息管理系统中,学生这一概念就是一个实体,它是我们软件系统的主要研究对象。
模型(Model)
维基百科描述到:
在软件工程中,数据模型是定义数据如何输入与输出的一种模型。其主要作用是为信息系统提供数据的定义和格式。数据模型是数据库系统的核心和基础,现有的数据库系统(关系数据库)都是基于某种数据模型建立起来的。
百度百科描述到:
Model是计算机程序设计中有两个概念:一个是三层架构中的实体类,另一个是MVC架构中的模型。
1、在“三层架构”中,为了面向对象编程,将各层传递的数据封装成实体类,便于数据传递和提高可读性。
2、在MVC(模型Model-视图View-控制器Controller)模式中,Model代表模型,是业务流程/状态的处理以及业务规则的制定,接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。
可见,数据模型这个概念更多出现在数据库系统中。它是为了把研究对象进行抽象,目的是要与数据库系统中的数据模型进行关系映射。
从实体概念可以得知,实体正是数据库系统的研究对象。所以,建模过程即为:为实体进行抽象和定义,用一个数据模型对实体进行描述,此数据模型则为数据库系统提供数据支持。
在计算机系统中,在不同的业务层,它们有着不同的体现。
关于命名
Entity, Model, DataModel在开发过程中经常看到这三个命名,其实他们都是同一个概念,即数据模型的定义,是对实体抽象描述的产物。
JAVA程序设计中数据访问层的数据模型一般以Bean结尾,表示它是一个JavaBean,而.NET中更多的是使用Model作为后缀,也有人以Entity作为后缀,这也就解释了为什么任何一个项目中都免不了看到这三个单词。
数据访问层的数据模型对数据访问权限没有要求,甚至可以说,必须对外开放访问,所以常见的数据成员的数据访问修饰符都是Public;
业务逻辑层更多是以实体本身命名,比如:Student,Blog等,它要求具有较强的封装性,不但封装变化,更要封装操作,所以对于Client而言,某些数据是无法访问的。
总结
实体是设计时存在的概念,不应该出现在计算机系统的具体定义中,而数据模型是计算机系统中的操作对象的抽象,它们本为一个概念—系统研究对象的抽象,只是所处环境不同导致有所差异。
(小编还在继续了解和学习中,如果您有更好的见解欢迎评论或私信哟(^U^)ノ~YO)
实体(Entity)和模型(Model)相关推荐
- 用深度学习做命名实体识别(五)-模型使用
通过本文,你将了解如何基于训练好的模型,来编写一个rest风格的命名实体提取接口,传入一个句子,接口会提取出句子中的人名.地址.组织.公司.产品.时间信息并返回. 核心模块entity_extract ...
- 文件错误关于hibernate中报Duplicate class/entity mapping org.model.User错的问题
废话就不多说了,开始... 我昨天犯了一很傻得错误,在现想起来都感到很笑好.天今就把她2写下来,一来可以当个笑话供大家乐娱,二来可以当作一次验经吧!! 我昨天做了下结业而计设,在用hibernate存 ...
- 基于Bert的实体关系抽取模型
关注微信公众号:NLP分享汇.[喜欢的扫波关注,每天都在更新自己之前的积累] 文章链接:https://mp.weixin.qq.com/s/OebxnvwjQiVbBZZFL2Un3A 前言 信息抽 ...
- python3.9 执行python3.6生成的随机森林模型model.pkl报错,警告版本不一致
python3.9 执行python3.6生成的随机森林模型model.pkl报错 UserWarning: Trying to unpickle estimator RandomForestClas ...
- 【教程】利用libsvm-mat建立分类模型model参数解密【by faruto】
原文地址:http://www.matlabsky.com/thread-12649-1-1.html 建议大家看这篇帖子之前先看一下以下几篇帖子: 如何使用libsvm进行分类[by faruto] ...
- OpenGL 加载模型Model
OpenGL 模型Model 模型Model简介 导入3D模型到OpenGL 从Assimp到网格 索引 材质 重大优化 和箱子模型告别 模型Model简介 现在是时候接触Assimp并创建实际的加载 ...
- php中orm模型,模型model
## 模型model 在看模型之前,我们先看一段yaf作者鸟哥在他自己博客里的一段文字吧: > 还有不少同学问, 为什么Yaf没有ORM, 这里有俩方面的考虑: 首先, Yaf并不是万能的, 它 ...
- php.ini开启命名空间,Zend Framework教程之模型Model基本规则和使用方法
本文实例讲述了Zend Framework教程之模型Model基本规则和使用方法.分享给大家供大家参考,具体如下: 这里讲讲Zend中的model.其实Zend中的Model处理是相当简单的. 这主要 ...
- php 框架源码分析,Laravel框架源码解析之模型Model原理与用法解析
本文实例讲述了Laravel框架源码解析之模型Model原理与用法.分享给大家供大家参考,具体如下: 前言 提前预祝猿人们国庆快乐,吃好.喝好.玩好,我会在电视上看着你们. 根据单一责任开发原则来讲, ...
- Django 模型Model层2
多表操作 创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对 ...
最新文章
- 95行代码实现最大熵模型训练
- SecureCRT中文绿色免安装版修改字体颜色
- 配置密码分布式集群环境hadoop、hbase、zookeeper搭建(全)
- python处理excel大数据-Python实现大数据收集至excel的思路详解
- python中常用的模块二
- 【OS学习笔记】十九 保护模式六:保户模式下操作系统内核如何加载用户程序并运行
- oracle rdbms 占内存_027、Oracle数据库
- python nums函数获取结果记录集有多少行记录_python3 数据挖掘之pandas学习记录(一)-----NumPy...
- 商汤研究院-SpringAutoML团队招聘啦~
- 随想录(编写简单资源管理代码)
- java web流量阀值_Javaweb应用使用限流处理大量的并发请求详解
- java进阶学习 --java网络编程一(转)
- MacbookAir2011用U盘重装10.13.6High Sierra系统
- 蓝桥杯科学素养题(2020年12月-2021年12月)
- 浅谈机器视觉的相机,镜头选型和打光
- adb常用命令|修改build.porp文件
- php mysql插入的数据有引号,PHP引号转义中解决POST,GET,Mysql数据自动转义问题
- UGUI事件传递流程解析
- 结束语-放弃完美主义,执行力就是限时限量认真完成
- 哈工大计算机系统大作业——hello P2P
热门文章
- JavaScript Array forEach
- PAT-BASIC-1003-我要通过!
- FileUpload上传图片提示 “GDI+中发生一般性错误”
- SharePoint【Site Definition 系列】-- 04. 相对快捷地创建List Definition的Schema.xml文件
- 小程序入门学习18--springboot环境配置02
- 网站被攻击拿下—只因为程序员一个文件上传功能没写好
- function在mysql里总是出错_如何在MySQL函数中引发错误
- 自动出报表,零代码做驾驶舱,我找到了Excel的顶级替代
- 帆软报表决策系统重置用户密码插件
- 贵大计算机考研情侣,贵大计算机研究生怎么样?