數據庫課程大作業——數據分析與數據管理系統實踐

數據分析與數據管理系統實踐

一、數據介紹

公司員工信息 ,Excel文件

提供 44 名員工 姓名、所在部門工作職務車的編號

公司員工的信用卡刷記錄(兩週) ,Excel 文件

約 1400 行信用卡刷記錄,內容包括:員工姓名、地點稱金額時間

二、大作業要求

1、根據自己所學數據庫操作和管理知識,創建一個數據庫,把兩個Excel表導入這個數據庫,並對應建立兩個表;對兩個表創建主鍵、外鍵、索引,還可以自己增加一些列,或者做一些視圖;

2、綜合運用自己所學的查詢語句和SQL開發技巧對數據進行統計分析,並要求回答如下問題;

問題一:員工的消費有一些什麼有趣的模式和規律,請寫出你分析的SQL語句,並截取分析結果,說明你是如何找到的這些模式和規律的;(不少於5個模式)

問題二:員工的消費有什麼異常現象,你是如何找到這個異常的,請寫出你得到分析的SQL語句,並截取分析結果。(不少於3個異常)

3、學習一門開發工具,開發一個小型數據庫管理系統

系統基本功能1:增加、刪除和修改這兩個表的記錄

系統基本功能2:提供輸入框接受用戶手動輸入SQL查詢語句,能輸出用戶任意輸入的SQL查詢語句的查詢結果。

系統基本功能3:能夠按人、按消費地點、按天這三種組合,設計並輸出幾個統計報表。

 

三、實驗過程及結果

1、創建“大數據作業”數據庫後,右鍵點擊該數據庫,選擇【任務】—>【導入數據】,如右圖所示:


2、選擇導入的數據源,下一步,選擇導入的數據庫目標,如下圖所示:

3、在指定表複製或查詢中應該可以選擇【編寫查詢已指定要傳輸的數據】對數據進行清洗,嘗試着寫SQL語句過濾到髒數據,但沒有成功,所以就選擇直接先全將數據導入到數據庫,再對數據進行過濾。

4、通過對數據的查詢,我們可以發現creditcard表中存在一些類似“Katerina抯 Caf?28”的奇字符,下面在數據庫裏對錶中數據進行清洗。

5、新建查詢對數據清洗,並將新的數據建立一張新表。

將employee表中FirstName和LastName合併,創建newemployee表

select FirstName+' '+LastName as name,CurrentEmploymentType,CurrentEmploymentTitle

into newemployee

from employee

將creditcard表中FirstName和LastName合併,創建newcreditcard表

select FirstName+' '+LastName as name,timestamp,location,price

into newcreditcard

from creditcard

通過對兩張表的name查詢,可以發現newemployee表共44名員工,newcreditcard表去掉爲NULL共55人

select distinct name

from newemployee



select distinct name

from newcreditcard

在這裏我們對存在newemployee表中的44名員工進行對他們的消費記錄的查詢,可以發現creditcard表中錯誤不會影響,當然也可以嘗試清洗一下數據

select *

into newcreditcard1

from newcreditcard

where name in (

select name

from newemployee

)

清洗數據:

select *

into newcreditcard

from credtcard

where location not like '%[0-9]%'and FirstName is not NULL and LastName is not NULL


6、設置表中數據的數據類型、主鍵,newemployee表中FirstName、LastName沒有重複項,可以設置爲主鍵,而newcreditcard1表中有重複項,如果要設置主鍵,就必須FirstName、LastName、timestamp、location都設置爲主鍵。

7、分析數據:

(1)模式和規律

① 查詢每個人兩週內的消費總金額和職業,可以發現卡車司機職業的消費金額比其他人都高,Valeria Morlun消費最多。


② 查詢所有消費地點的消費人次,可以發現Hippokampos、Guy's Gyros、Brew've Been Served普遍比其他地方消費次數高,比較受歡迎。


③ 查詢每個人到某個地點的消費次數,可以發現大部分人兩週內基本每天都去某個地方消費一次。

④ 查詢每天所有人的消費次數總和,可以發現6號至10號五天和13號至17號五天,消費次數比11、12號和18、19號要多,可以猜想工作日出門次數比周末次數多,消費次數多。

⑤ 查詢每天某一時間段內的消費次數,將一天分24小時爲【00:00:00-03:00:00】、【03:00:00-06:00:00】、【06:00:00-09:00:00】、【09:00:00-12:00:00】、【12:00:00-15:00:00】、【15:00:00-18:00:00】、【18:00:00-21:00:00】、【21:00:00-24:00:00】八個時間段,發現【00:00:00-03:00:00】、【03:00:00-06:00:00】、【15:00:00-18:00:00】這幾個時間段消費次數較少,大多數消費集中在其他時間段:早餐、午餐、下午茶、晚餐。

【06:00:00-09:00:00】


【09:00:00-12:00:00】


【12:00:00-15:00:00】


【15:00:00-18:00:00】

【18:00:00-21:00:00】


【21:00:00-24:00:00】


【00:00:00-03:00:00】


【03:00:00-06:00:00】

(2)異常現象

① Adan Morlun和Claudio Nant兩人消費次數都比較少且平均消費金額比較大,最大單筆消費也比較多。

select FirstName,LastName,COUNT(*)as '消費次數',SUM(price)as '總金額',AVG(price)as '平均消費金額',MAX(price)as '單筆最大消費'

from newcredtcard

group by FirstName,LastName 

order by AVG(price)desc

② 13號的凌晨【00:00:00-03:00:00】和12、13號【03:00:00-06:00:00】有消費記錄

③ Maximum Iron and Steel、Abila Scrapyard這幾個地點,消費次數少,且金額大,平均金額也很大。

select location,COUNT(*)as '消費次數',SUM(price)as '總金額',AVG(price)as '平均消費金額',MAX(price)as '單筆最大消費'

from newcreditcard

group by location

order by AVG(price)desc

8、數據庫開發

開發工具:Delphi 2010

開發環境:Windows XP(在虛擬機上完成的,SQL Server Management Studio也在XP裏,因爲我的主機Win10安裝不成功)

開始選擇Delphi 7 ,但感覺界面不太友好,就又重新選了Delphi 2010安裝,安裝網上有教程,破解也有,但沒有破解出來,且只有14天的試用期。DevExpress VCL 13.1.4是後面網上找教程安裝的插件,主要是一些控件的使用會用到,根據網上教程以及《Delphi程序開發範例寶典》進行數據庫開發,具體實驗截圖見下:

主界面:

主體框架結構:

Ucreadtcard.pas:對creditcard表(這裏命名錯了)的增刪改操作的主程序;

UDMmain.pas:數據庫連接模塊,後面會看到;

Uemployee.pas:對employee表的增刪改操作的主程序;

Ugroup.pas:對creditcard表分組查詢操作(按人、地點、天)的主程序;

Umain.pas:主窗口程序;

USQL.pas:SQL查詢的主程序


主窗口:設置了SQL查詢、employee表、creditcard表、統計,四個按鈕,通過dxBarManager進行管理,點擊觸發通過ActionList管理,dxSkinController界面皮膚管理控件。


按鈕觸發事件代碼如下:

Employee表的窗口界面,一張表控件和數據庫導航控件,導航控件可以對數據庫進行增刪改操作,creditcard表一樣。


ADOConnection連接數據庫,ADOQuery查詢數據庫,DataSource查詢後的數據源

SQL查詢界面,Memo接收SQL語句,查詢按鈕觸發事件進行查詢,表輸出結果。


設計代碼如下:

分組查詢,設置查詢條件,按人、地點、時間進行查詢。


給ComboBox設置選項,即查詢列下的所有數據對象,代碼如下圖:


按鈕觸發,進行查詢,代碼如下:

實驗測試結果如下:

啓動主界面;

點擊SQL查詢按鈕,輸入SQL語句,點擊查詢。


點擊employee表,進行對該表的增刪改,增是“+”,刪是“-”,改直接在表中改,然後點擊“√”

增加數據的效果,SQL Sever數據庫中增加了這麼一行,如下圖:


刪除數據的效果,選中某行數據,點擊“-”按鈕,刪除數據。

改,直接在表中改就行,然後點擊“√”按鈕。

點擊統計按鈕,進行分組查詢,從下拉框中選出查詢的對象,點擊查詢就可以進行條件查詢。

 

四、總結

通過本次數據庫大作業實驗,進一步鞏固了我對數據庫的基本操作,同時鍛鍊了對數據的分析能力,以及初步認識和學習數據庫開發,掌握了一些數據庫開發的基本操作。對於語言,無論是SQL語言、數據庫開發語言,還是C、Java,都有其固定的結構,和類似的語法,函數調用、參數傳遞,可能一看就知道它在做什麼,還有網上視頻教程資源很多,對於語言、開發的學習有很大幫助,希望在今後學習中能提升更多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章