程序设计神器 之 实体

简介: 程序是什么?简单说,程序是处理数据的计算机代码几乎所有的程序都可以分为三部分

程序处理的是概念

程序是什么?

简单说,程序是处理数据的计算机代码

几乎所有的程序都可以分为三部分

输入--> 处理 --> 输出

程序可以理解成一个加工处理数据的过程,或者工具

那么被加工的数据又是什么呢?

数据有多种形式,如文本、图像、音频、视频等等

无论数据形式如何,都代表的是某种信息

大部分信息,可以经过数字化处理,变为计算机里的数据

那么信息又是什么呢?

信息就是对某个事物、事情、现象的一种描述

既然是描述,就意味着,其中包含了一些概念

概念是我们思考、认识、交流的重要的元素

如果理解了信息是由一些概念组成的,那么就能理解:

程序处理的实际上是 概念

再进一步,就能理解:

计算机是人类大脑的延伸

我们思考、认识、交流都是基于某些概念的,而且教育的主要就是关于抽象概念的


概念就是实体

概念表示某种具体或者抽象的事物

任何一个事物,都具有某种特性或者属性

比如一个人,具有性别、年龄、肤色、国籍等一系列属性

再比如一个课程,具有名称、级别、课时、授课老师等一系列属性

再比如一张图片,具有大小、尺寸、名称、存放位置等一系列属性

看到了吗,对这些概念的进一步分析,获取到其中的各种属性,就能得到这个概念在程序里的表示形式

一个概念在程序里的表现形式就是实体

实体,就就是建立现实世界和计算机世界之间的联系的

现实世界里,各个东西都是概念,计算机世界里各种东西都是实体

概念和实体之间是可以相互表示的

前面我们知道了,程序处理的就是概念,那么将概念表示为实体,就可以编写为程序了


实体之间的关系

概念之间是有联系的,同样,实体之间也是有联系的

相对概念之间的联系,实体之间的联系更为简单

只有一对一一对多,和多对多的联系

是不是感觉有点熟悉了,这不就是数据库表之间的联系吗?

没错,数据库表实际上是用来存放概念的,比如存放人员信息,课程信息,图片信息

即它实际上存放的就是实体

日常大多数程序,并不需要和数据库打交道

但并不意味着不和实体大交道

数据库只是存放实体的一种形式,并且实现了实体之间的一对一一对多的关系

一对一,意味着,两个实体之间是一一对应的,比如每个人只有一个身份证(正常情况下),

一对多,意味着,两种实体之间具有包含的关系,比如一个家庭,由多个个人组成,或者一个学生可以同时选择多们课程

这种关联关系,在程序中会被处理成顺序处理,和循环处理


实体的表示

程序设计,需要像建筑图纸一样表示出来

对于实体,应该如何表示呢

通过参考各种资料,特别是学习了 《系统分析与设计方法》,并结合工作实践,我总结了一套表示实体的方法

在不同的设计阶段,需要用到不同的表示方式

一般分为 概要实体详细实体

区别在于,概要实体不用关注实体的熟悉,而详细实体,需要关注实体的属性

今天我们只讨论概要实体

概要实体用一个方框表示:

33.jpg


实体

方框里面写实体的名称

实体之间的关系,用链接它们的线条表示


34.jpg

实体关系

线条两端,需要特别注意,靠近外面的表示一或者多

是一个小短线, 是三分叉

靠近里面的小圈,表示 0 即可以不存在,小短线表示 1 即表示必须存在

例如第一条线左端,读作:有且有一个,右端读作:有且有一个或者多个

第二条线左端,读作:没有或仅有一个,右端读作:没有或者可以有多个

第三第四咋读,你可以试试吧,欢迎留言讨论

下面我们看一个实际的例子

35.jpg

实体关系

这幅图,描绘了一个学校系统的基本结构,通过图示,我们就能轻松的读取它所传递的信息

比如学校必须有一个或者多个班级,班级必须属于一个学校,

一个班级里可以没有学生或者有多个学生

一个学生可以不选或者选择多个课程

一个课程可能没有学生选择或者有多个学生选择

……

如果进一步展开,这些关系里实际上包含着业务规则,比如一个班级没有任何学生的状态可能是在开学前,还没学生报名的时间点

以及 不能存在一个没有班级的学校 等等

而不同的业务场景下,规则是不一样的,所有实体图,体现当前的业务场景,并不存在适应所有场景的实体图

这就是实体关系图,通过它不仅可以方便地记业务信息,而且还可以方便地交流


总结

今天我们梳理了程序设计中的实体部分,从程序处理的是什么开始,一直引导到程序处理的是概念这个观点,概念不仅是我们认识世界的工具,也是我们做程序设计的基础,抓住了实体,就像抓住了程序的纲。

目录
相关文章
|
传感器 机器学习/深度学习 弹性计算
Agent与大模型的区别
本文详细对比了人工智能领域的两个重要概念——Agent和大模型。大模型如GPT-3、BERT等,擅长自然语言处理任务,如文本生成、翻译等;Agent则是自主的软件实体,能够在特定环境中感知、决策并执行任务,如管理日程、控制智能家居等。文章介绍了它们的定义、功能、技术架构及应用场景,并总结了两者的核心差异和未来发展方向。
6795 26
|
JavaScript IDE 开发工具
vue3【2024版】开发环境搭建(含官网和nvm下载切换最新版node,修改node下载源,创建项目,启动项目,安装vscode插件Vue - Official)
vue3【2024版】开发环境搭建(含官网和nvm下载切换最新版node,修改node下载源,创建项目,启动项目,安装vscode插件Vue - Official)
1390 3
|
监控 数据可视化 安全
软件生命周期是什么?包括哪些阶段?各阶段的目标和任务是什么?
在数字化时代,软件如同空气般无处不在,其生命周期涵盖从需求分析到退役的多个阶段,如同生物的成长过程。本文详细介绍了软件生命周期各阶段的目标与任务,并探讨了瀑布模型、迭代模型和敏捷模型等常见生命周期模型。未来,随着技术和业务的不断演变,软件生命周期管理将面临更多挑战与机遇,需不断学习先进方法和技术,以满足用户需求。
6308 0
|
设计模式 缓存 Devops
微服务架构最强讲解,那叫一个通俗易懂!
微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的
32198 3
微服务架构最强讲解,那叫一个通俗易懂!
|
5天前
|
存储 人工智能 安全
AI 越智能,数据越危险?
阿里云提供AI全栈安全能力,为客户构建全链路数据保护体系,让企业敢用、能用、放心用
|
8天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
7天前
|
数据采集 人工智能 自然语言处理
3分钟采集134篇AI文章!深度解析如何通过云无影AgentBay实现25倍并发 + LlamaIndex智能推荐
结合阿里云无影 AgentBay 云端并发采集与 LlamaIndex 智能分析,3分钟高效抓取134篇 AI Agent 文章,实现 AI 推荐、智能问答与知识沉淀,打造从数据获取到价值提炼的完整闭环。
448 93