程序設計神器 之 實體

圖片

文 | 太陽雪
python

來源:Python 技術「ID: pythonall」數據庫

圖片

程序處理的是概念

程序是什麼?app

簡單說,程序是處理數據的計算機代碼ide

幾乎全部的程序均可以分爲三部分工具

輸入--> 處理 --> 輸出學習

程序能夠理解成一個加工處理數據的過程,或者工具spa

那麼被加工的數據又是什麼呢?設計

數據有多種形式,如文本、圖像、音頻、視頻等等3d

不管數據形式如何,都表明的是某種信息code

大部分信息,能夠通過數字化處理,變爲計算機裏的數據

那麼信息又是什麼呢?

信息就是對某個事物、事情、現象的一種描述

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

概念是咱們思考、認識、交流的重要的元素

若是理解了信息是由一些概念組成的,那麼就能理解:

程序處理的其實是 概念

再進一步,就能理解:

計算機是人類大腦的延伸

咱們思考、認識、交流都是基於某些概念的,並且教育的主要就是關於抽象概念的

概念就是實體

概念表示某種具體或者抽象的事物

任何一個事物,都具備某種特性或者屬性

好比一我的,具備性別、年齡、膚色、國籍等一系列屬性

再好比一個課程,具備名稱、級別、課時、授課老師等一系列屬性

再好比一張圖片,具備大小、尺寸、名稱、存放位置等一系列屬性

看到了嗎,對這些概念的進一步分析,獲取到其中的各類屬性,就能獲得這個概念在程序裏的表示形式

一個概念在程序裏的表現形式就是實體

實體,就就是創建現實世界和計算機世界之間的聯繫的

現實世界裏,各個東西都是概念,計算機世界裏各類東西都是實體

概念和實體之間是能夠相互表示的

前面咱們知道了,程序處理的就是概念,那麼將概念表示爲實體,就能夠編寫爲程序了

實體之間的關係

概念之間是有聯繫的,一樣,實體之間也是有聯繫的

相對概念之間的聯繫,實體之間的聯繫更爲簡單

只有一對一一對多,和多對多的聯繫

是否是感受有點熟悉了,這不就是數據庫表之間的聯繫嗎?

沒錯,數據庫表其實是用來存放概念的,好比存放人員信息,課程信息,圖片信息

即它實際上存放的就是實體

平常大多數程序,並不須要和數據庫打交道

但並不意味着不和實體大交道

數據庫只是存放實體的一種形式,而且實現了實體之間的一對一一對多的關係

一對一,意味着,兩個實體之間是一一對應的,好比每一個人只有一個身份證(正常狀況下),

一對多,意味着,兩種實體之間具備包含的關係,好比一個家庭,由多個我的組成,或者一個學生能夠同時選擇多們課程

這種關聯關係,在程序中會被處理成順序處理,和循環處理

實體的表示

程序設計,須要像建築圖紙同樣表示出來

對於實體,應該如何表示呢

經過參考各類資料,特別是學習了 《系統分析與設計方法》,並結合工做實踐,我總結了一套表示實體的方法

在不一樣的設計階段,須要用到不一樣的表示方式

通常分爲 概要實體詳細實體

區別在於,概要實體不用關注實體的熟悉,而詳細實體,須要關注實體的屬性

今天咱們只討論概要實體

概要實體用一個方框表示:

圖片

實體

方框裏面寫實體的名稱

實體之間的關係,用連接它們的線條表示

圖片實體關係

線條兩端,須要特別注意,靠近外面的表示一或者多

是一個小短線, 是三分叉

靠近裏面的小圈,表示 0 便可以不存在,小短線表示 1 即表示必須存在

例如第一條線左端,讀做:有且有一個,右端讀做:有且有一個或者多個

第二條線左端,讀做:沒有或僅有一個,右端讀做:沒有或者能夠有多個

第三第四咋讀,你能夠試試吧,歡迎留言討論

下面咱們看一個實際的例子

圖片

實體關係

這幅圖,描繪了一個學校系統的基本結構,經過圖示,咱們就能輕鬆的讀取它所傳遞的信息

好比學校必須有一個或者多個班級,班級必須屬於一個學校,

一個班級裏能夠沒有學生或者有多個學生

一個學生能夠不選或者選擇多個課程

一個課程可能沒有學生選擇或者有多個學生選擇

……

若是進一步展開,這些關係裏實際上包含着業務規則,好比一個班級沒有任何學生的狀態多是在開學前,還沒學生報名的時間點

以及 不能存在一個沒有班級的學校 等等

而不一樣的業務場景下,規則是不同的,全部實體圖,體現當前的業務場景,並不存在適應全部場景的實體圖

這就是實體關係圖,經過它不只能夠方便地記業務信息,並且還能夠方便地交流

總結

今天咱們梳理了程序設計中的實體部分,從程序處理的是什麼開始,一直引導到程序處理的是概念這個觀點,概念不只是咱們認識世界的工具,也是咱們作程序設計的基礎,抓住了實體,就像抓住了程序的綱。

比心!

下次,會討論一下程序設計的另外一個神器:數據流

相關文章
相關標籤/搜索