基於瞳孔檢測演算法---資料庫設計心得
一、 專案介紹
我們的專案是基於OpenCV的瞳孔識別和個性化推薦系統。
人的瞳孔可以體現很多的資訊,它往往能體現一個人的喜怒哀樂,或者反應外界的環境,並且每個人的瞳孔資訊中的一部分是獨一無二的,基於這些想法有許許多多的基於瞳孔的科技被開發了。
如今隨著人們生活水平的提高,人們對於購物的多樣性與針對性有了些許要求,隨之而來的就是各種基於不同方式的推薦功能。
將瞳孔的資訊與推薦系統進行結合,基於使用者的瞳孔比例變化對使用者進行網際網路內容個性化的推薦。
二、 設計過程(準備工作+需求分析+ +資料庫設計)
1. 準備工作
工具
Powerdesigner,版本為V16.5,powerdesigner用於軟體建模,可以從需求直到物理模型,支援UML2.0語法,可用於UML圖繪製。最大特色是能夠使設計到實現無縫銜接,如:概念模型->邏輯模型->物理模型,概念模型->OOM,而且能夠生成多種DBMS的指令碼或程式碼指令碼,很方便我們進行實現設計好的資料庫。
需求分析
資料庫的設計離不開需求分析,一個成功的資料庫最基本的特點就是能完美的契合我們專案的所有功能,滿足專案的要求。所以,我們小組根據需求文件,對每一個需求進行拆分,每一項功能對應資料庫的一個模組,然後思考如何進行表與表之間的邏輯關聯,進行了資料庫的設計。
2. 完整性約束
資料完整性用於保證資料庫中資料的正確性、一致性和可靠性。一共包括四個型別,實體完整性(Entity Integrity),域完整性(Domain Integrity),參照完整性(Referential Integrity),使用者定義完整性(User-defined Integrity)。它是應防止資料庫中存在不符合語義規定的資料和防止因錯誤資訊的輸入輸出造成無效操作或錯誤資訊而提出的。所以我們在進行資料庫設計的時候非常注重完整性約束以及是否滿足三正規化。
3. 資料庫設計
表的建立
在powerdesigner建立CDM,然後建立實體(Entity),也就是我們的所說的表,設定表格名字,然後是屬性的設定,包括欄位名,欄位code,資料型別,是否可以為空,設定主鍵等等。其中很重要的一點,我們必須明確表的每一個屬性的資料型別。
表的關係
在設計完資料庫表,我們應該著手思考表與表之間的關聯,那麼就是E-R圖的繪製了。關係包括一對一、一對多以及多對多。例如使用者與使用者許可權之間的關係就是一對一;班級與學生的關係就是一對多;老師與學生的關係是多對多。以及我們需要注意關係的箭頭,誰是一誰又是多,這一步至關重要,會影響物理模型的生成。通過這次設計,我們小組成員收穫良多。
物理模型生成
Powerdesigner提供了兩種方式,一是通過CDM直接生成物理模型,也可以自己進行設計,這裡我們是利用CDM直接生成物理模型
三、 實驗心得/總結
對於我們小組來說這是第一次使用powerdesigner這種型別的工具進行資料庫設計,我們的第一個收穫學會了powerdesigner的使用。從一點不懂到現在可以流暢的設計一個系統的資料庫,我們在整個過程中對具體的設計步驟、思路、方法、技巧都有了進一步的瞭解。
軟體工程的專案離不開需求文件。軟體工程導論課程的第一張講的內容便是教我們如何去進行需求分析。分析得出的需求貫穿專案的每一個步驟,包括資料庫設計,我們設計的資料庫無不圍繞著使用者的需求,其實我們最終的目的便是滿足或者超額滿足使用者的需求。通過資料庫的設計,更加深了我們對需求的理解。
好的資料庫設計能夠有效地節約資源、保證資料完整性、提高執行效率降低執行時間、良好的拓展性等等。在設計上,我瞭解了第一、第二、第三正規化,能夠有效避免了資料的冗餘。
這次資料庫設計對我們來說是一次挑戰,更是機遇,不僅讓我們學會了如何進行團隊合作,齊心協力共同解決問題;也加深了我們對資料庫系統設計相關知識以及MySQL相關功能的理解。比如在建立基本的表、檢視、索引、儲存過程、觸發器等,都比以前更加熟悉了,並在解決各種問題的過程中學到了很多新的知識。
以上就是我們團隊在資料庫設計過程中的心得和體會,希望能提供一點借鑑意義。
Helloworld小組
李星沛 徐穎 李翰林 肖雲傑