sql語言范文

時間:2023-03-21 09:24:19

導語:如何才能寫好一篇sql語言,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。

sql語言

篇1

[關鍵詞]成績分析 sql語言

[中圖分類號]F224.29 [文獻標識碼]A [文章編號]1009-5349(2014)09-0057-02

SQL(結構化查詢語言)是一種數(shù)據(jù)庫專用語言,無論是Oracle、MS SQL、Access還是其他大型公司的數(shù)據(jù)庫,亦或是建立在大型主機或個人pc機上,都可以通過應用SQL語言來訪問或是更新數(shù)據(jù)庫的內容。由于SQL語言通用型強,在各個公司都具有通用性,所以易于學習和使用,也逐漸被各種數(shù)據(jù)庫廠商應用,成為一種共通的標準查詢語言。

目前各個高校幾乎都購買了各種教務管理系統(tǒng),他們是C/S或B/S模式的,教務管理系統(tǒng)會關系到學生的學籍、成績、選課很多方面的內容,而且每個學校付給開發(fā)商的金額也不同,且開發(fā)商為了簡化模式不會針對某個學校的情況去單獨開發(fā)對單個學校的管理系統(tǒng)或管理軟件,筆者學校購買的教務管理系統(tǒng)就不能實現(xiàn)學分遺留統(tǒng)計、遺留科目統(tǒng)計,更別提畢業(yè)資格審核的完成,只能通過SQL語言去實現(xiàn)這些功能,以下先簡單地介紹一下SQL語句的基本功能。

一、SQL的基本語句

經常使用的SQL語句主要有以下幾種:Select語句、Insert語句、Update語句和Delete語句。

(一)Select語句

1.語法格式

Select[Distinct][Top(數(shù)值)]字段列表From表名[Where條件]

Order By 排序字段名ASC|DESC][Group By 分組字段名][Having 篩選條件表達式]

2.Select語句的應用實例

①選取數(shù)據(jù)表中的全部數(shù)據(jù):Select * From學生信息,這就是相當于將學生信息表中的數(shù)據(jù)全部提出來。

②選取數(shù)據(jù)表中指定字段的數(shù)據(jù):Select學號From學生信息,這就相當于將學生信息從指定的表中提取出來。

③選取前若干條記錄,且要求查詢結果按降序排列:Select Top 10學號From成績表,Order By成績DESC,其中Top 10代表前十個數(shù)據(jù)的意思;Order by代表排序的意思,DESC代表降序的意思,所以整句化表現(xiàn)的就是取成績在前十名的學號。

④根據(jù)特定條件選取數(shù)據(jù)表中的部分數(shù)據(jù):Select * From學生信息,Where班級= '測控031',此處的where代表一個條件的篩選也就是代表班級為測控031的學生信息將全部提出來。

⑤按關鍵字查找記錄:例如查詢所有姓“李”的學生,“%”代表任意字符。Select * From學生信息,Where姓名Like‘李%'。

⑥查詢符合某種條件的記錄總數(shù):Select Count(*)From學生信息,Where性別=‘男',此處count()為計數(shù)函數(shù),本句的意思就是數(shù)男生的數(shù)目。

⑦計算學生的平均成績:Select Avg(成績)from成績表,此處AVG函數(shù)便是求平均值的一個函數(shù)。

⑧組合查詢:例如在“學生信息”表中只有“班級編號”字段,“班級名稱”字段在“班級”表中,如果查詢結果需要“學號、姓名、性別、班級名稱”等字段,則需要從多個表中組合查詢。SELECT dbo.學生信息.學號,dbo.學生信息.姓名,dbo.班級.班級名稱,INNER JOIN dbo.班級 ON dbo.學生信息.班級編號=dbo.班級.班級編號。

(二)Insert語句

1.語法格式

Insert Into數(shù)據(jù)表名稱(字段1,字段2, …),Values(字段值1, 字段值2, …)

2.Insert語句的應用實例

Insert Into學生信息(學號,姓名,性別,班級),Values(‘200703020128',‘唐麗',‘女',‘測控031'),本句的意思就是將新的數(shù)據(jù)信息添加到數(shù)據(jù)庫中的。

(三)Update語句

1.語法格式

Update數(shù)據(jù)表名,Set字段1=字段值1,字段2=字段值2,[Where 條件]

2.Update語句的應用實例

Update學生信息,Set學號=‘200703020128',姓名=‘張文',性別=‘男',班級編號=‘2004030201',Where學號=‘200703020128',本句就是將數(shù)據(jù)庫中學號為‘200703020128'的數(shù)據(jù)進行更新。

(四)Delete語句

1.語法格式

Delete From數(shù)據(jù)表名稱[Where條件]。

2.Delete語句的應用實例

Delete From學生信息,Where學號=‘200703020128’,該句的意義就是刪掉了學號為‘200703020128’的學生信息。

二、SQL語句的應用

本文以提取在校生掛科成績的數(shù)據(jù)庫程序為例來說明SQL語言的應用。

select BDInstitute.InstituteName as‘學院',

SMBasicInfo.StudentNo as‘學號',

SMBasicInfo.StudentName as‘姓名',

GRGrade.LessonInfoName as‘課程名稱',

max(GRGrade.EffectiveGrade) as‘成績',

以上這段程序將數(shù)據(jù)庫表中的字段定義為新的字段以便可以更為直觀的顯示給大家。

from

BDClassInfo,

BDInstitute,

BDProfessionInfo,

以上這段程序便是在哪些表中可以找到這些數(shù)據(jù)。

where

BDClassInfo.BDClassInfoID=SMBasicInfo.BDClassInfoID

and BDClassInfo.BDProfessionInfoID=BDProfessionInfo.BDProfessionInfoID

and LCBeginLesson.TermNo=20131

and GRGrade.ExamProperty=‘正常'

and BDClassInfo.EntranceYear in (‘2012',‘2010',

‘2011',‘2013')

and GRGrade.CourseKind=‘選修'

and SMBasicInfo.StudentStatus=‘在籍在校'

以上就是where語句的各種限制條件比如說學籍狀態(tài)為在籍在校、年級的篩選,等等。

group by

BDClassInfo.EntranceYear,

BDProfessionInfo.ProfessionInfoname,

SMBasicInfo.StudentNo,

SMBasicInfo.StudentName,

GRGrade.LessonInfoName

以上這段程序便是“Group By”的應用,從字面意義上理解就是根據(jù)“By”指定的規(guī)則對數(shù)據(jù)進行分組,所謂的分組就是將一個“數(shù)據(jù)集”根據(jù)分組進行處理。

having max(GRGrade.EffectiveGrade)

order by

BDClassInfo.EntranceYear,

BDClassInfo.ClassInfoName,

GRGrade.ExamTermNo,

GRGrade.CourseKind,GRGrade.CreditHour desc

以上便是對全校學生不及格成績進行提取的一個應用實例以便使大家更為清晰的理解。

三、結論

篇2

一、開發(fā)工具介紹

SQL是英文Structured Query Language的縮寫,意思為結構化查詢語言。SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進行溝通。SQL Server是一個關系數(shù)據(jù)庫管理系統(tǒng),它最初是由Microsoft Sybase和Ashton-Tate三家公司共同開發(fā)的,于1988年推出了第一個OS/2 版本,在Windows NT推出后,Microsoft與Sybase在SQL Server的開發(fā)上就分道揚鑣了,Microsoft將SQL Server移植到Windows NT系統(tǒng)上專注于開發(fā)推廣SQL Server的Windows NT版本;Sybase則較專注于SQL Server在UNIX操作系統(tǒng)上的應用。SQL Server 2000是Microsoft公司推出的SQL Server數(shù)據(jù)庫管理系統(tǒng)的最新版本,該版本繼承了SQL Server 7.0 版本優(yōu)點的同時又比它增加了許多更先進的功能,具有使用方便、可伸縮性好、與相關軟件集成程度高等優(yōu)點,可跨越從運行Microsoft Windows 98的膝上型電腦到運行Microsoft Windows 2000的大型多處理器的服務器等多種平臺使用。

Delphi這個名字源于古希臘的城市名,它集中了第三代語言的優(yōu)點,以Object Pascal為基礎,擴充了面向對象的能力,并且完美地結合了可視化的開發(fā)手段。Delphi自1995年3月一推出就受到了人們的關注,并在當年一舉奪得了多項大獎。Delphi使用了本地編譯器直接生成技術,使程序的執(zhí)行性能遠遠高于其他產品生成的程序,它還是真正的面向對象的編程語言。Pascal語言的嚴謹加上可視化的優(yōu)勢和強大的數(shù)據(jù)庫功能,使得它有充分的資本和微軟的VB相媲美。Delphi實際上是Pascal語言的一種版本,但它與傳統(tǒng)的Pascal語言又有天壤之別。一個Delphi程序首先是應用程序框架,而這一框架正是應用程序的“骨架”。在骨架上即使沒有附著任何東西,仍可以嚴格地按照設計運行。您的工作只是在“骨架”中加入您的程序,缺省的應用程序是一個空白的窗體,您可以運行它,結果得到一個空白的窗口。這個窗口具有Windows窗口的全部性質:可以被放大縮小、移動、最大最小化等,但您卻沒有編寫一行程序。因此,可以說應用程序框架通過提供所有應用程序共有的東西,為用戶應用程序的開發(fā)打下了良好的基礎。Delphi是全新的可視化編程環(huán)境,為我們提供了一種方便、快捷的Windows應用程序開發(fā)工具。它使用了Microsoft Windows圖形用戶界面的許多先進特性和設計思想,采用了彈性可重復利用的完整的面向對象程序語言、當今世界上最快的編輯器、最為領先的數(shù)據(jù)庫技術。對于廣大的程序開發(fā)人員來講,使用Delphi開發(fā)應用軟件,無疑會大大地提高編程效率。

二、方案設計

本文借鑒面向對象程序設計的繼承思想,提出使用SQL Server數(shù)據(jù)庫載入技術實現(xiàn)多種語言的切換。(圖1)

此方案把大量多語言數(shù)據(jù)錄入到數(shù)據(jù)庫中,可縮短可執(zhí)行文件長度,提高系統(tǒng)啟動速度,而且在系統(tǒng)崩潰后,可以使用數(shù)據(jù)庫恢復功能,得到原始數(shù)據(jù),從而實現(xiàn)應用軟件界面多種語言的正常切換。

三、關鍵技術

(一)數(shù)據(jù)庫載入技術。在此方案中,第一,在數(shù)據(jù)庫中創(chuàng)建一個語言種類編碼表,對當前系統(tǒng)支持的語種進行編碼。第二,創(chuàng)建一個應用軟件界面列表,記錄當前系統(tǒng)的界面?zhèn)€數(shù),并為每個界面設置一個編碼。第三,創(chuàng)建一個界面與語種的映射表,記錄每個界面對應的語種。在系統(tǒng)登陸時首先選擇語言,登陸成功后,無論進入哪個窗體界面,都在窗體的Onshow事件里根據(jù)系統(tǒng)當前語種編碼查找每個控件的Caption,更改默認為新選擇語種的Caption值。此方案需要在應用程序中創(chuàng)建一個父類窗體,在父類窗體的Onshow事件里寫入多語種界面支持程序,其他窗體可以通過繼承該父類窗體實現(xiàn)多語種自動載入。當應用程序需要加入新的支持語種時,還需要設計一個專用的界面以提供對可視化界面窗體的語種配置。

(二)數(shù)據(jù)庫表結構。在上述數(shù)據(jù)庫中,用到語種編碼表、窗體信息表、窗體控件語種配置表、Table字段配置表、Table字段列表、提示信息配置表等,以下是窗體信息表、窗體控件語種配置表的數(shù)據(jù)結構。(表1、2)

(三)多語種配置數(shù)據(jù)錄入。可視化界面支持多語種的一個重要方面是多語種數(shù)據(jù)的錄入。假如全部采用手工錄入,工作量將是非常巨大的。圖2所示的專用多語種配置窗體frm_config,把每個子類窗體多語種界面數(shù)據(jù)錄入數(shù)據(jù)庫,大大減少了錄入工作量。

具體操作步驟:

第一,通過手工記錄每個窗體的信息至表1中;第二,在frm_config中用listbox列出表1中記錄的所有窗體,每選中一個窗體,便自動讀出該窗體所有子控件,這里可以使用窗體自帶方法self.Controls[index]來獲取,Controls[index]數(shù)組包含了該窗體全部子控件。(圖2)

但是,并非所有控件都有Caption,所以需要對每個TCon-trol使用(TControl is Tbutton)或(TControl is Tlabel)等進行判斷和篩選,具體篩選什么控件,可以根據(jù)可視化應用軟件在界面上使用帶有Caption屬性的控件而定。當把帶有Caption的控件篩選出來后,可以用String-Grid組件列出,第一列是原TControl的Caption(默認簡體中文),需要創(chuàng)建新的語種時,根據(jù)默認簡體中文Cap-tion的內容,將映射值錄入到對應的第二列,錄入完畢保存到數(shù)據(jù)庫中。通常需要多語種化的控件如:Tlabel,Tbutton,TDBGrid,TPanel,

Tcheckbox,TRadiobutton,TPopupmenu,Tmainmenu等,這些由可視化應用軟件界面的控件使用情況來確定。

(四)Onshow事件的實現(xiàn)原理。在父類窗體的Onshow事件中寫入的多語種界面支持程序可以在其子類窗體重用,其子類窗體通過繼承該父類窗體便可以自動實現(xiàn)多語種自動載入。OnShow事件實現(xiàn)原理是:根據(jù)當前界面語種編碼和當前窗體名稱讀出當前窗體內控件的多語種配置記錄,根據(jù)每條記錄中控件的類型和名稱,更新控件的Caption為當前語種下的值。

(五)DBGrid控件的多語種化。在可視化應用軟件界面中,DBGrid控件的多語種化是比較煩瑣的,具體實現(xiàn)過程如下:

step1:使用Table字段配置表和Table字段列表記錄需要多語種化的數(shù)據(jù);

step2:定義全局過程;

step3:過程調用。通過在任何含有DBGrid窗體On-show事件內調用這一過程,便可實現(xiàn)DBGrid表格中的多語種化。

上述過程定義如下:

procedure GP_UpDateTitleCaptionOfDBGrid(DataSet:TDataSet;DBGrid:TwwDBGrid;

TableName:String;xLgCodeID:integer);

//DataSet:相關數(shù)據(jù)集名

//DBGrid:要更新的數(shù)據(jù)表格控件

//TableName:相關數(shù)據(jù)庫表

//xLgCodeID:要更新的語種

(六)提示信息的多語種化。在可視化應用軟件中有時需要給用戶提示信息。對此,提示信息全部由“提示信息配置表”給出,定義一個全局動態(tài)數(shù)組,在程序啟動時,從數(shù)據(jù)庫中載入xMsg[x]=′MSG′的即是提示信息,調用提示信息時,只需要知道當前使用的是什么語種和信息序號。對此筆者設計了一個初始化全局變量的函數(shù):procedureFS_LoadGlobalVar(xLgCode

ID:integer);該函數(shù)執(zhí)行后將會初始全局消息隊列(GS_MSG:ar-ray of String)和其他需要從數(shù)據(jù)庫載入的變量初始值。當顯示某個提示信息時,只需要給出他的序號。

例如:ShowMessage(GS_MSG[12]);

//第12號提示信息,各個語種的第12號信息含義一致

篇3

關鍵詞:SQL注入 研究 預防對策

隨著互聯(lián)網的發(fā)展,大量的web網站開始涌現(xiàn),極大地方便了人們的信息獲取需求。與此同時,黑客針對網站的攻擊也屢屢出現(xiàn),造成了或多或少的經濟損失現(xiàn)代社會,而近年來互聯(lián)網技術的發(fā)展迅猛,以因特網為基礎平臺的Web應用系統(tǒng)在計算機的各個領域都有了越來越廣泛的用途。譬如企業(yè)的辦公系統(tǒng)以及電子商務系統(tǒng)等等。這些系統(tǒng)絕大多數(shù)都是采用的HTTP的方式進行數(shù)據(jù)的傳遞,然后將這些數(shù)據(jù)相關組織的數(shù)據(jù)庫當中,這些數(shù)據(jù)對一些不法分子來說具有非常大的吸引力,這就給數(shù)據(jù)的安全性造成了很大的安全隱患,比較典型的就是SQL的注入。

一、SQL注入

從目前的情況來看,現(xiàn)在的Web應用程序在一般情況下采用的都是依靠數(shù)據(jù)庫為用戶進行寫、度數(shù)據(jù)的方法,但是,在另一方面,由于從事程序編程人員的水平參差不齊,絕大多數(shù)編程的工作者沒有在編寫程序的時候對用戶數(shù)據(jù)的合法性進行辨別,這就導致在應用程序的過程中出現(xiàn)了安全隱患。SQL注入,簡單的來說,就是不法分子利用高科技手段改變原來數(shù)據(jù)的查詢語句,并把這個命令提交給服務器,并在這個基礎之上執(zhí)行惡意的SQL命令然后不法分子在依據(jù)數(shù)據(jù)返回的結果中獲取攻擊者想要得到的信息,進行下一步的不法活動。

(一)關于SQL的注入原理

眾所周知,SQL注入的目的就是對數(shù)據(jù)庫進行攻擊,然后在攻擊數(shù)據(jù)庫的基礎之上在攻擊其所在的服務器,而這種攻擊的主要方式就是不法分子將代碼在參數(shù)中進行植入,而這些參數(shù)會被植入SQL命令中加已執(zhí)行。例如將惡意的代碼插入到字符串當中,然后在這個基礎之上將這些字符串保存在數(shù)據(jù)庫當中的數(shù)據(jù)表中,或者將其當作元數(shù)據(jù),當被存儲的字符串植入到動態(tài)的SQL命令當中來的時候,這些惡意的代碼就會被執(zhí)行。雖然數(shù)據(jù)庫的類型是多種多樣的,但是SQL注入攻擊的原理和基本過程確是基本上都一樣的。結合其他學者的相關研究,本文將SQL注入的類別分為用戶登錄類別以及其他類兩種類型。在用戶登錄的類別當中,不法分子可以繞過存在安全隱患的登錄框進行登錄,而在其他類別中,其則需要對攻擊的對象進行更深一步的分析,并對數(shù)據(jù)庫的類型有一定的了解,只有通過這樣的途徑,其才能實現(xiàn)SQL的注入,也只有在這個基礎之上才能毒數(shù)據(jù)庫進行攻擊。

我們都知道,SQL的注入對數(shù)據(jù)庫的危害是非常大的,攻擊者不僅可以利用已經存在的SQL漏洞對服務器進行攻擊,對數(shù)據(jù)庫的敏感信息進行盜竊、竊取,甚至還有的不法分子會對服務器的信息進行肆意的篡改和刪除,技術水平高的不法分子還有可能種植后門程序,這種行為導致的最嚴重的后果就是當不法分子一旦獲取該服務器的最高管理權限,其就可能實現(xiàn)整個操作系統(tǒng)的控制,有的甚至導致系統(tǒng)無法進行日常的運行甚至會導致整個系統(tǒng)的癱瘓。

二、關于SQL注入攻擊的防范措施

(一)參數(shù)化語句

由于數(shù)據(jù)庫所執(zhí)行的多數(shù)都是由SQL查詢創(chuàng)建成的字符串,因此該構造方式極易導致應用系統(tǒng)受到SQL注入攻擊。一般情況下,在編程語言和數(shù)據(jù)庫訪問API時,可采用占位符或綁定變量的方法為SQL查詢提供必要參數(shù),以此替代對用戶輸入進行操作。這種稱為參數(shù)化查詢的方法更加安全可靠,它能夠盡可能地避免應用中常見的SQL注入漏洞,并可在多數(shù)情況下代替現(xiàn)有的動態(tài)查詢,對一般數(shù)據(jù)庫來說其效率更高。參數(shù)化查詢語句能夠為數(shù)據(jù)庫提供預處理語句功能,從而優(yōu)化查詢并進一步提高后續(xù)查詢性能

(二)輸入驗證

輸入驗證是一種功能強大的SQL注入控制手段。所謂輸入驗證,就是通過對應用程序的輸入數(shù)據(jù)進行驗證,從而保證其符合應用程序中已定義標準的過程。此方法既可以將參數(shù)限制成固定的某種類型,也可以通過使用正則表達式或業(yè)務邏輯進行輸入驗證。

(三)編碼輸出

篇4

關鍵詞: Web安全; SQL注入; 漏洞檢測; 攻擊防御

中圖分類號: TP391

文獻標志碼:A

文章編號: 2095-2163(2016)06-0087-03

0引言

最近十年來,互聯(lián)網產業(yè)和技術發(fā)展蓬勃迅速,社會的各個領域都已經與Web應用建立了密切聯(lián)系。使用互聯(lián)網已經成為現(xiàn)代生活方式的不二選擇。在全世界,大致可知應有數(shù)以億計的網絡服務器都在提供互聯(lián)網服務。但與此同時,這些網絡服務器也無時無刻都會遭遇到各類惡意攻擊。

數(shù)據(jù)庫是Web應用系統(tǒng)的基礎組成部分,存儲著大量關鍵敏感信息,因此,侵入和攻擊數(shù)據(jù)庫,竊取數(shù)據(jù)信息是網絡攻擊的主要目的和施手段。根據(jù)相關組織調研數(shù)據(jù)顯示,Web應用十大關鍵風險排名第一位就是注入攻擊。在全世界發(fā)生的Web服務系統(tǒng)攻擊實踐中,大約有60%的行為均可標注為SQL注入攻擊。因此,研究SQL注入攻擊及檢測防御技術對有效控制和降低網絡攻擊事件發(fā)生必將具有重大現(xiàn)實意義及作用。

[BT4]1SQL注入攻擊研究

[BT5]1.1SQL注入攻擊原理

SQL注入攻擊(SQL injection)是利用Web 應用程序的設計漏洞來實現(xiàn)Web應用系統(tǒng)、尤其是數(shù)據(jù)庫的入侵,從而最終達到獲取或破壞數(shù)據(jù)的一種非法策略及手段。通過SQL注入可能會導致如下后果:入侵者惡意進占了數(shù)據(jù)庫服務器、獲取數(shù)據(jù)庫高級操作權限、竊取數(shù)據(jù)庫中存儲的關鍵數(shù)據(jù)信息等。

SQL注入攻擊的發(fā)起者多是利用Web頁面中存在的漏洞,有針對性地構造SQL語句,并蓄意引導數(shù)據(jù)庫服務器執(zhí)行這些SQL語句,通過截取用戶名和密碼等重要信息,從而全面獲取了數(shù)據(jù)庫控制權限。

SQL注入攻擊的可選研究方式主要有:

1)使用注釋符和恒等式;

2)使用union語句進行聯(lián)合查詢;

3)使用insert或update語句對數(shù)據(jù)庫數(shù)據(jù)表內數(shù)據(jù)進行增加或修改;

4)利用一些內置函數(shù)輔助進行攻擊等。

在此,將結合前2種方法給出實現(xiàn)過程詳述與闡析。

1.1.1使用注釋符和恒等式

眾所周知,如果要查詢數(shù)據(jù)庫的user表中所有條目,那么正確的查詢語句為:

SELECT * FROM user WHERE username = 'user' AND password = 'pawd'

利用ASP 實現(xiàn)時,需要連接字符串,而后再加上SQL 命令,最后執(zhí)行查看返回的結果是否為空。那么SQL 語句嵌套在ASP 代碼中的表現(xiàn)形式可描述如下:

var sql = "SELECT * FROM user WHERE username = '" +loginname + "' AND密碼 = '" +loginpwd + "'";(loginname字段與loginpwd字段分別存儲了用戶在網頁上所填入的用戶名和密碼信息。)

但是當用戶在Web頁面文本框內輸入的內容為:loginname=‘ or 1=1 -- ,而loginpwd 的內容任意輸入時,此時在ASP 中的查詢語句則演變成:

SELECT * FROM user WHERE username=‘’or 1=1 --AND password = 'pawd '

顯然,SQL語句中密碼驗證部分被“- -”注釋符當成了注釋語句,同時,由于“1=1”恒等式的存在導致用戶名驗證部分永遠為真。用戶名驗證和密碼驗證均發(fā)生了失效,這樣攻擊者就可以登錄進入Web應用系統(tǒng)了。

1.1.2使用union語句進行聯(lián)合查詢

利用union關鍵字查詢一些數(shù)據(jù)庫用戶信息、數(shù)據(jù)庫版本等信息。還可以用union關鍵字來獲取其他信息。通過頁面錯誤信息提示得到當前數(shù)據(jù)庫名稱、用戶名等關鍵信息。而且,還可通過多次的報錯測試,逐步獲得多種關鍵數(shù)據(jù)信息,從而掌握數(shù)據(jù)庫內部結構、數(shù)據(jù)庫用戶名等信息,為侵入數(shù)據(jù)提供實現(xiàn)基礎。

[BT5]1.2SQL注入攻擊流程

SQL注入攻擊的基礎流程可概述為:首先,檢測Web登錄頁面中是否有SQL注入漏洞,從而構建SQL注入點;其次,利用已經構建的SQL注入點將本該基于頁面獲取的驗證參數(shù)通過SQL語句的語法組合傳遞給數(shù)據(jù)庫;然后,經過多次試探,陸續(xù)可得到數(shù)據(jù)庫類型、數(shù)據(jù)庫結構、數(shù)據(jù)表信息以及數(shù)據(jù)庫賬號等;最后,則根據(jù)已知信息構造并執(zhí)行SQL語句,達到侵入數(shù)據(jù)庫,獲取數(shù)據(jù)或實施數(shù)據(jù)更改等目的。研究設計步驟可展示如下:

[HT5”H][ST5”HZ]步驟1[HT5”SS][ST5”BZ]判斷SQL注入點。通常使用的SQL注入點判斷方法可分述為如下2種:

1)把“’”添加到Web提交請求的尾部,再根據(jù)Web頁面反饋的提示信息來判斷該系統(tǒng)所使用的數(shù)據(jù)庫類型是否存在SQL注入漏洞。

但是,程序設計者可以進一步通過加入判別規(guī)則而將單引號進行過濾,那么將使單引號測試最終失效,從而無法判斷是否存在SQL注入點。

2)將“and 1=1”或“and 1=2”添加到提交請求的末尾,若添加“and 1=1”的提交請求可以正常返回顯示信息、而添加“and 1=2”的提交請求卻返回出錯提示,此時則說明該Web頁面存在注入漏洞;如果上述2個判別式均可返回提示信息,如此該Web頁面即是安全的,也就是不存在SQL注入漏洞。

[HT5”H][ST5”HZ]步驟2[HT5”SS][ST5”BZ]猜測表名和字段名。如果訪問的Web頁面存在注入漏洞,則可以在提交請求語句后加入“and exists (select count(*)from student”,如果頁面執(zhí)行正常,沒有錯誤提示,則說明student表是存在的,否則student表不存在,可以更換名稱繼續(xù)測試,直到猜出表名為止。

如果將Count(*)替換為Count(字段名),則用同樣的方法即可進行字段名的探測。

[HT5”H][ST5”HZ]步驟3[HT5”SS][ST5”BZ]進行注入攻擊。當已經基本了解數(shù)據(jù)庫的內部結構后,黑客即可侵入后臺數(shù)據(jù)庫了。那么,這些黑客所需要的并不是DBA(數(shù)據(jù)庫管理員)賬號,而是DBA權限。當掌控了DBA權限后,據(jù)此將可獲得更高級別的權限,這樣便可以在Web系統(tǒng)中留下后門、植入木馬等。如果使用sa 連接數(shù)據(jù)庫,則能夠調用xp_cmdshell 等存儲過程,此時就可以對應用系統(tǒng)、數(shù)據(jù)庫乃至操作系統(tǒng)進行修改和控制了。

[BT4]2SQL注入攻艏觳餳際

根據(jù)檢測發(fā)生的時間和目的差異,SQL注入攻擊檢測可以分成為入侵前檢測和入侵后檢測。具體來說,利用漏洞掃描工具和構造SQL注入語句檢測即是入侵前檢測的主要手段,而入侵后檢測的方法則是檢查服務器日志文件。通常情況下,入侵者在發(fā)動SQL注入攻擊后,Web服務器和數(shù)據(jù)庫服務器的日志文件都會存有相應的登錄和操作記錄?;诖?,研究探討可知,通過使用如下方法即能改善與增進SQL注入漏洞檢測,分析闡釋如下。

1)利用漏洞掃描工具。常用的漏洞掃描工具有:HDSI、NBSI、Domain、Sqlmap、BSQL Hacker、The Mole、Pangolin(穿山甲)。需要指出的是,這些工具既是網站維護者可以善加利用的一些檢測工具,同時卻也是網絡攻擊者用來攻擊Web服務器的首選工具。

2)通過SQL注入點,執(zhí)行非法SQL語句。將SQL語句的永真式或永假式追加在Web頁面請求后,根據(jù)頁面執(zhí)行后得到反饋信息來判斷是否存在SQL注入點。對已發(fā)現(xiàn)的SQL注入點,通過構造and exits(select……)語句進行數(shù)據(jù)庫結構判斷。

3)日志文件檢查。一般情況下,Web應用系統(tǒng)遭到入侵后都會留下相關操作記錄在日志文件中。通過讀取并分析數(shù)據(jù)庫和Web服務器的日志文件來判斷系統(tǒng)是否發(fā)生了入侵則是一種行之有效的方法。只是,對于經驗老到的黑客來說,在實施入侵后則會進行殘留痕跡的清理。

4)對訪問請求進行檢測。正常的訪問請求不應該包含SQL關鍵字?;谶@一前提,如果在HTTP請求中含有SQL關鍵詞、特殊字符或者SQL語義的句子,即可初步判定為一次攻擊行為。

[JP3]使用頻度通常較高的SQL關鍵字有:select…from、 order by、union、drop table、exp、md5()、case when then、sleep、substring、user()、password()、version()、 substr()、benchmark()、schema()、--等都可以裁斷為SQL注入攻擊行為。 [JP]

[BT4]3SQL注入攻擊防御技術

要做到防御SQL注入攻擊,必須從多個層面設計應對策略:第一,從數(shù)據(jù)庫設計和數(shù)據(jù)庫管理方面;第二,從Web系統(tǒng)開發(fā)設計方面;第三,從Web系統(tǒng)管理維護方面?,F(xiàn)給出綜合論述如下。

[BT5]3.1數(shù)據(jù)庫管理防御措施

使用安全的數(shù)據(jù)庫賬號,嚴格管控數(shù)據(jù)庫賬號權限,謹慎分配sa權限,用于程序連接數(shù)據(jù)庫的用戶使用數(shù)據(jù)庫用戶角色組的成員,同時嚴禁使用服務器角色組成員。

在數(shù)據(jù)庫服務器上刪除多余的擴展存儲過程,尤其是訪問注冊表的存儲過程。

DBA要將數(shù)據(jù)庫服務器上的示例腳本最大限度移除,有效減少冗余腳本數(shù)據(jù)量。

數(shù)據(jù)庫應設置高強度密碼,提升密碼安全性。

[BT5]3.2Web系統(tǒng)設計防御技術

探尋目前安全問題的現(xiàn)象機理可知,Web系統(tǒng)開發(fā)人員應建立全局性的安全意識,在設計過程中充分考慮可能出現(xiàn)的安全漏洞,編寫安全代碼,防患于未然。

在此基礎上,Web程序設計者則應保證后臺研發(fā)程序能夠具備對用戶提交的訪問請求參數(shù)、pose數(shù)據(jù)、查詢關鍵字進行嚴格檢測和限制的功能;異常錯誤界面可以跳轉指定界面,在設計上保證不會將錯誤信息暴露給Web系統(tǒng)使用者;而當涉及到數(shù)據(jù)庫訪問時,應采用加密傳輸,保證絕不使用明文傳遞參數(shù);另外,針對SQL注入攻擊常用方式,應嘗試設立SQL語句的關聯(lián)構建規(guī)則。

[BT5]3.3系統(tǒng)管理維護防御措施

系統(tǒng)管理員應及時更新可為Web系統(tǒng)運行提供基礎支持的關鍵軟件,確保攻擊者無法通過操作系統(tǒng)漏洞進行入侵。此外,應關閉相關對外連接端口,如TCP 1433/UDP 1434。系統(tǒng)管理員還應定期檢查系統(tǒng)中用戶密碼,提升密碼強度,建立密碼定期更換的長效機制。同時,Web系統(tǒng)管員也要定期對Web系統(tǒng)日志引入安全審核,檢查是否存在異常訪問記錄,確保能夠及時發(fā)現(xiàn)系統(tǒng)安全隱患。

[BT4]4結束語

作者在本文中介紹了SQL注入攻擊的原理和方法、如何檢測SQL注入漏洞、怎樣防御SQL注入攻擊方面的內容。通過本文,讀者對SQL注入建立了一個全面清晰的認識,對如何檢測和防御SQL注入攻擊也獲得了基本了解,并掌握了一定的基礎方法及有效防范手段。

當前的時代是一個互聯(lián)網時代。網絡安全問題既是互聯(lián)網安全問題,也是社會安全問題。作為網絡中最為常見的攻擊手段,SQL注入攻擊給互聯(lián)網造成了巨大的破壞,也帶來了難以估量的經濟損失。因而研究實現(xiàn)有效防御SQL注入攻擊,對于提升Web網絡系統(tǒng)的安全性無論從經濟、社會、倫理方面都將具有重要意義。

參考文獻:

楊章瓊,陳效軍,王濤. SQL注入攻擊淺析[J]. 計算機光盤軟件與應用, 2012(16):103-104.

[2] 楊豐嘉. 淺談網站SQL注入攻擊防護[J]. 計算機光盤軟件與應用, 2013(13):144.

[3] 劉秀梅,辛陽,徐勤. SQL注入攻擊及防御方法研究[EB/OL]. [2016-09-21].http:///releasepaper/content/201609-190.

[4] 龐博,高杰. 基于的SQL注入攻擊與防范[J]. 輕工科技,2009,25(9):86-87.

[5] 齊林,王靜云,蔡凌云,等. SQL注入攻擊檢測與防御研究[J]. 河北科技大學學報, 2012,33(6):530-533.

[6] 鄭斌. 黑客攻防入門與進階[M]. 北京:清華大學出版社,2010.[ZK)]

[FL)]

[CDF61]

[HT5”SS][ST5”BZ][WT5”BZ](上接第86頁)

[FL(2K2]

[HT5”SS]

FETCH ABSOLUTE 3 FROM cur_xg--返回第3行并⑵潯湮當前行

UPDATE xsxx SET rxnf=2012--更新當前行的列值

WHERE CURRENT OF cur_xg--當前游標指針所指的當前行數(shù)據(jù)

CLOSE cur_xg

DEALLOCATE cur_xg

這里需要注意的是,游標的第二種應用是一種不規(guī)范的更新數(shù)據(jù)的途徑,很容易造成數(shù)據(jù)的不一致,因此通常狀況下并不選用游標來設計更新數(shù)據(jù)表中的數(shù)據(jù)。

另外,還需提及的就是,本文實例所用的數(shù)據(jù)表均基于xxsf(學校收費數(shù)據(jù)庫)中的2個表,分別是:

xsxx(rxnf,xh,xm,xb,ksh,sfz,zydm,zsid)

zysf(zydm,zymc,lsyx,pycc,xxnx,xfbz,jcfbz)

[BT4]5結束語

SQL Server中的游標在原理上具有C語言指針一樣的語言結構,相應地則設計提供了一種在服務器內部處理結果集的方法。使用游標可以通過遍歷操作逐一地從結果集中實現(xiàn)數(shù)據(jù)讀取,也可以對結果集中某些數(shù)據(jù)重點加設更新或刪除的操作。本文以學校收費數(shù)據(jù)庫為背景并結合具體的實例來闡述游標的使用,游標可以面向結果集中的每一行進行相同或不同的操作,這不僅提升了SQL語句處理復雜查詢的能力,而且還降低了系統(tǒng)開銷和潛在的阻隔情況,在一定程度上解決了許多應用程序不能把整個結果集作為一個單元來處理的問題。

[HS1*2][HT5H]參考文獻:[HT]

[WTBZ][ST6BZ][HT6SS][1] [ZK(#〗

[HJ*2]

趙慧玲,毛應爽,孟憲穎. 基于SQL游標的研究與應用[J]. 科技創(chuàng)新導報,2012(28):31-32.

[2] 劉志成,寧云智,劉釗,編著. SQL Server實例教程[M]. 北京:電子工業(yè)出版社,2013.

[3] 薛麗香,汪東芳. 淺談SQL Server數(shù)據(jù)庫中游標的使用[J]. 福建電腦,2016(6):157-158.

[4] 陳芳勤. SQL Server 2000中游標的應用[J]. 中國科技信息,2008(13):96,99.

篇5

摘 要:這套固定資產管理系統(tǒng)管理范疇相對全面,覆蓋了固定資產所屬部門和類別、固定資產的各項屬性、折舊計算以及維修紀錄等一系列相關項目。詳細介紹了SQL數(shù)據(jù)庫的設計過程,從系統(tǒng)功能的實現(xiàn)出發(fā),對系統(tǒng)進行了功能模塊分類。最后用圖表的形式把數(shù)據(jù)庫表達出來。

關鍵詞:數(shù)據(jù)庫;實體;SQL;

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2007)01―10024-02

1 引言

在成本估算中,固定資產扮演著一個重要的角色,好的成本估算都會考慮固定資產對總成本的各種影響。尤其是初期投入和分期投入大的企業(yè),固定資產的影響對企業(yè)的生存更是舉足輕重。這套固定資產管理系統(tǒng)負責對企業(yè)和家庭的固定資產做一個全方位的資金描述。

數(shù)據(jù)是計算機化的信息,是計算機可以直接處理的最重要的對象[1]。數(shù)據(jù)庫是存放數(shù)據(jù)的最佳場所,數(shù)據(jù)庫是指按特定目的收集的、長期存儲在計算機內的有組織的可共享的數(shù)據(jù)集合。收集到大量數(shù)據(jù)后.需要一個軟件系統(tǒng):數(shù)據(jù)庫管理系統(tǒng)DBMS(Database Management System),對其進行科學的組織與存儲[2]。固定資產管理系統(tǒng)用以監(jiān)控固定資產的整個生命期。建立各個對象的ER(實體關系)模型,將該模型轉換成關系數(shù)據(jù)庫[3]。關系數(shù)據(jù)庫具有嚴格的實體關系,便于擴充業(yè)務,同時便于與管理系統(tǒng)集成[4]。后臺數(shù)據(jù)庫采用SQL Server 2000,它是當前基于C/S開發(fā)模式的主數(shù)據(jù)庫產品之一,具有性能穩(wěn)定,便于操作維護和具有安全可靠性等特點[5]。從獲得固定資產開始(可以是購置或者贈送等多種途徑),經歷固定資產使用、維修保養(yǎng)的全過程,直至固定資產報廢。

2 系統(tǒng)實現(xiàn)的功能

要對固定資產進行有效的管理,就需要管理固定資產的每一個方面。固定資產管理的要求基本上可以歸納為以下幾個方面:

已有固定資產的瀏覽:固定資產的添加、刪除、修改功能:要求對每個固定資產的維修、保養(yǎng)進行詳細記錄,固定資產的折舊計算功能;固定資產的變更功能;固定資產的審核功能;固定資產的統(tǒng)計功能;相關部門、類別管理功能;用戶登陸權限鑒別功能;密碼修改功能;新用戶添加功能。

3 總體設計

3.1 數(shù)據(jù)流分析

分析固定資產生命周期中涉及的所有處理過程.可以得到期間的數(shù)據(jù)流動情況。

獲得一項新的固定資產,將其信息添加進本系統(tǒng);審核,滿足條件則通過審核,可以參與統(tǒng)計和折舊;某項固定資產出現(xiàn)破損或者保養(yǎng)期限到,送指定單位維修或保養(yǎng),將相關信息添加至本管理系統(tǒng);某項固定資產發(fā)生使用權交移,記錄變更信息:

有財會需要,對部分固定資產進行折舊計算.并導出折舊相關數(shù)據(jù):有統(tǒng)計需要,對部分固定資產進行統(tǒng)計,并導出統(tǒng)計數(shù)據(jù);新建部門,為該部分購人固定資產。

固定資產管理數(shù)據(jù)流圖如圖1所示。

數(shù)據(jù)流圖的相關說明:

新固定資產經過添加后可直接進入數(shù)據(jù)庫保存起來,但屬于未審核資產,其相關信息處理可以流向審核步驟外,不可再流向其它處理步驟。當然,在添加新資產的同時對于滿足審核條件的固定資產,可直接參與審核步驟,然后再保存進數(shù)據(jù)庫中:

當已審核的固定資產需要發(fā)生變更時,可經過變更操作,成為未審核資產,可以不再做任何處理而存人數(shù)據(jù)庫,也可以經過審核后再存人數(shù)據(jù)庫:

當某項固定資產折舊期限到期后,從數(shù)據(jù)庫中提出來,進行折舊計算,把折舊后的折舊額、原值和殘值等計算結果保存回數(shù)據(jù)庫。

3.2 系統(tǒng)功能設計

根據(jù)需求分析得出的結果,并綜合上文流程分析,可以總結出系統(tǒng)應該具備的功能:

(1)用戶登陸功能

通過用戶名和密碼對用戶進行驗證.合法用戶給予通過.不合法用戶則拒絕其進入系統(tǒng)。

(2)固定資產管理功能

對已有固定資產進行修改、刪除和審核,也可以添加新的固定資產進來。

(3)固定資產的查詢功能

按全部、部門和資產類型分別進行查詢?yōu)g覽。

(4)部門信息設置功能

可以對已有部門進行更名和刪除,也可以添加新的部門。

(5)固定資產類別設置功能

可以對已有類別進行更名和刪除,也可以添加新的類別。

(6)維修管理功能

可以按全部、已經送修和維修完畢來查詢相關固定資產的維修狀況。還要能夠添加需要維修的固定資產進入維修管理。

(7)折舊功能

所有審核過的固定資產都可以參與折舊計算。所以有必要把未折舊資產和已折舊資產分開顯示。對于未折舊資產使用某種折舊算法進行計算。

(8)分類統(tǒng)計輸出功能

實現(xiàn)按部門資產統(tǒng)計和按資產類型統(tǒng)計,并且兩種統(tǒng)計結果都能夠導出至打印設備。

(9)修改密碼功能

對當前用戶可以在提交正確舊密碼之后輸入新的密碼.并在下一次登陸系統(tǒng)時生效。

(10)退出系統(tǒng)功能

3.3 子模塊功能設計

以上系統(tǒng)功能設計所產生的一系列功能相互之間是離散的.并沒有邏輯聯(lián)系性。在展開進一步設計之前需要對整個系統(tǒng)按照各功能之間隱含的邏輯關系進行劃分子模塊。有三個子模塊:

(1)系統(tǒng)信息設置模塊:

其中包括一些跟固定資產信息沒有直接聯(lián)系的功能,例如部門信息設置功能、同定資產類別設置功能、系統(tǒng)用戶管理功能、密碼修改功能和退出系統(tǒng)功能。

(2)固定資產管理模塊:

這是整個系統(tǒng)的主要模塊,凡是跟固定資產密切相關的功能都被集成進來了。包括同定資產查詢?yōu)g覽功能、固定資產維修管理功能、同定資產變更功能、固定資產審核功能等等。

(3)固定資產統(tǒng)計模塊:

部門資產統(tǒng)計和資產類別統(tǒng)計。

3.4 系統(tǒng)功能結構圖

同定資產管理系統(tǒng)結構圖如圖2所示。

關于系統(tǒng)結構圖的一點說明:

這個結構圖能夠直觀地說明系統(tǒng)的功能模塊劃分情況,并明確指出了各模塊與數(shù)據(jù)庫之間的聯(lián)系,除了統(tǒng)計模塊只向外輸出數(shù)據(jù)外,其它兩個功能模塊和數(shù)據(jù)庫之間均存在數(shù)據(jù)的雙向流動。而且本網還說明了各子模塊相互之間并沒有橫向的聯(lián)系和數(shù)據(jù)交換存在,這樣設計有利于減少模塊之間的耦合度。

3.5 數(shù)據(jù)庫設計

3.5.1 數(shù)據(jù)庫各實體及屬性

以下是各實體及其屬性:

(1)同定資產表(編號、資產編號、資產名稱、資產類型編號、生產廠商、資產型號、使用日期、使用部門編號、使用年限、負責人員、原值、殘值率、狀態(tài)、增加方式、提交日期、有否折舊、有否審核)

(2)資產修理表(編號、資產編號、修理日期、維修單位、維修原因、當前狀態(tài)、維修費用、維修結果、提交日期)

(3)部門表(部門編號、部門名稱)

(4)資產類型表(類型編號、類型名稱)

(5)用戶表(用戶名、密碼、用戶類型)

3.5.2 E-R圖

E-R圖符號如圖3所示。

3.5.3數(shù)據(jù)字典及數(shù)據(jù)庫

可以根據(jù)得到的實體,建立數(shù)據(jù)字典。數(shù)據(jù)字典是必要的.有了數(shù)據(jù)字典,就能建立數(shù)據(jù)庫。

(1)固定資產信息表Asserts

篇6

關鍵詞:維修;數(shù)據(jù);信息;網絡化;維修管理系統(tǒng);SQL Server 2000

中圖分類號:TP311.52文獻標識碼:A文章編號:1007-9599 (2011) 24-0000-01

Maintenance Information Management System R&D Analysis Based on ASP+SQL

Huang Hui

(East China University of Science and Technology,Shanghai200237,China)

Abstract:Starting from the actual requirements of a maintenance information management,detailed system investigation,the use of ASP,SQL Server2000 software building ASP-based information management system.The system adopts B/S mode,use the advanced technology of the SQL database access Web database application system,an online maintenance system of information retrieval,entry,modification,statistics,tables and permission settings,user help,record maintenance and other functions.

Keywords:Maintenance;Data;Information;Network;Maintenance management system;SQL Server 2000

一、引言

近年來,隨著我國信息技術的飛速發(fā)展,計算機應用已逐漸滲透到各個領域。通過使用計算機可以減少大量的人工操作,提高工作效率。很多企業(yè)都在開發(fā)自己的管理系統(tǒng),以便對本單位的基本信息和各項工作進行計算機管理。而利用計算機來管理信息和處理信息,就需要利用數(shù)據(jù)庫管理系統(tǒng)軟件來開發(fā)各個行業(yè)的實用軟件,在企業(yè)管理領域內,計算機的應用已經相當廣泛,各種管理機制與企業(yè)運作流程都與計算機緊密結合在一起,計算機的應用進一步完善了企業(yè)的管理,提高了企業(yè)的現(xiàn)代化管理形象,因此在此基礎上開發(fā)了企業(yè)維修管理系統(tǒng)這個軟件。

二、Windows下的ASP開發(fā)平臺

Microsoft Windows軟件的出現(xiàn),為PC用戶提供了一個直觀的、圖形豐富的工作環(huán)境。圖形用戶界面使應用程序更易于學習和使用,用戶只要簡單地用鼠標按鈕點按“菜單”中的命令就可以執(zhí)行指定的操作,而不必鍵入復雜的命令。屏幕上的多窗口可以使用戶同時運行多個程序,并可以通過對話框輸入所需要的信息或讓用戶選擇。

ASP技術ASP(Active Server Pages動態(tài)網頁)是微軟公司推出的一種用以取代CGI(Common Gateway Interface通用網關接口)的技術。目前,Internet上的許多基于Windows平臺的Web站點已開始應用ASP來替換CGI。簡單地講,ASP是一個位于服務器端的腳本運行環(huán)境,通過這種環(huán)境,用戶可以創(chuàng)建和運行動態(tài)的交互式Web服務器應用程序,如交互式動態(tài)網頁,包括使用HTML表單收集和處理信息,上傳與下載等等。

三、用戶需求分析

要開發(fā)一個網絡化的信息管理系統(tǒng),首先需要進行需求分析和總體設計,分析系統(tǒng)的使用對象和用戶需求,設計系統(tǒng)的體系結構和數(shù)據(jù)庫結構,決定使用的開發(fā)工具和后臺數(shù)據(jù)庫,規(guī)劃項目開發(fā)速度。在實際的項目開發(fā)過程中,這些工作是非常重要的。

開發(fā)此維修信息管理系統(tǒng)軟件,以供企業(yè)相關人員如進行維修信息管理,維修管理系統(tǒng)的用戶是企業(yè)管理人員、企業(yè)負責人、維修人員、錄入員、相關單位的統(tǒng)計人員等等,方便各人員隨時修改、刪除、查詢各種信息。具體體現(xiàn)在各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫結構能充分滿足各種信息的輸出和輸入。收集基本數(shù)據(jù)、數(shù)據(jù)結構及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設計打下基礎。

四、系統(tǒng)體系結構設計

在維修管理系統(tǒng)中,用戶管理模塊的功能比較簡單。在系統(tǒng)初始化時,有三種默認的用戶。系統(tǒng)超級管理員用戶名為Super,一般管理員用戶名位Admin,普通用戶為Users,由程序設計人員手動的添加到數(shù)據(jù)庫中,超級用戶可以創(chuàng)建用戶、修改用戶信息以及刪除用戶;一般管理員只能操作部分相關信息,而普通用戶則只能查看有關信息。

五、系統(tǒng)總體設計

(一)系統(tǒng)總體功能設計。系統(tǒng)主要由基本信息維護、服務信息維修信息錄入、車況登記、數(shù)據(jù)庫管理、權限管理、登錄界面等系統(tǒng)管理等幾大模塊組成。通過該信息平臺,各類人員可以通過網絡進行數(shù)據(jù)讀取、錄入、查詢、修改、刪除、打印等各類管理事務工作,管理層可以及時了解各項事務,根據(jù)相應的工作計劃,定期上傳的各類工作數(shù)據(jù),填寫各類維修數(shù)據(jù),統(tǒng)計各種相關報表,查看數(shù)據(jù)、報表文件、人員工作業(yè)績、進行各地區(qū)間的業(yè)績評比和交流信息等。

(二)系統(tǒng)功能模塊設計。系統(tǒng)的操作界面分為三類:用戶操作界面、一般管理員界面、超級管理員界面。同時超級管理員可以將一般管理員的權限進行相應調整,做到分工明確、操作方便、管理有效的特點。用戶界面只允許用戶進行查詢操作,了解一些工作動態(tài),加大了部門之間、職工之間的聯(lián)系,提高了工作的透明度,有利于提高工作效率。

六、運用ASP技術操作數(shù)據(jù)

(一)建立連接。利用SqlConnection對象的ConnectionString屬性可指定連接參數(shù)。

(二)數(shù)據(jù)信息錄入。利用原有系統(tǒng)的部分有用數(shù)據(jù)進行數(shù)據(jù)庫間轉換,節(jié)約人力和重復錄入數(shù)據(jù)的人員浪費,節(jié)約了有效的資金使用,完成了從老系統(tǒng)到新系統(tǒng)的平穩(wěn)過渡。

(三)更新、刪除、插入操作。系統(tǒng)數(shù)據(jù)的更新和維護是通過管理員登錄相應的管理頁面,通過網頁界面將新數(shù)據(jù)或修改后的保存至數(shù)據(jù)庫中實現(xiàn)的。利用SqlCommand對象設置相應的SQL命令來完成相應的操作。例:執(zhí)行查詢SQL的語句,返回一個數(shù)據(jù)表:

七、系統(tǒng)安全的策略

為了保證系統(tǒng)的安全,本系統(tǒng)采用MD5加密認證,以及用戶提供的與應用程序有關的數(shù)據(jù)。提供良好的用戶編程接口以便于快速開發(fā)安全的有效登錄解決方案。

八、結束語

基于ASP的維修信息管理系統(tǒng)于2010年11月設計完成,之后為3個月的試用期。在試用期間,系統(tǒng)運行穩(wěn)定、安全性好,使相關使用人員能夠從繁瑣的數(shù)據(jù)管理與紙介翻閱中解放出來,提高了效率。同時也為公司管理層查閱個人維修資料和了解各種維修服務信息提供了方便,可以更好、更快進行數(shù)據(jù)上報、資料檢查和匯總材料上繳。該系統(tǒng)基本符合用戶需求并具有良好的可擴展性和模塊性,可以方便地組合各個模塊,也可以增加更多的功能模塊,以滿足各類信息管理的特定需求。

參考文獻:

[1]張巨儉,甘仞初.管理信息系統(tǒng)的發(fā)展方向及實現(xiàn)技術[J].計算機應用研究,2003,1

篇7

一、《數(shù)據(jù)庫應用技術-SQL Server》教學存在的問題

教材偏重理論知識?!稊?shù)據(jù)庫應用技術-SQL Server》是一門注重實踐、注重操作的課程,從當前的教材內容來看,教材中的理論知識部分非常多,而實踐部分的介紹比較少,內容過于膚淺,導致教師在組織教學內容時難以找到更多的實踐知識和內容。關于SQL Server數(shù)據(jù)庫應用技術需要扎實的數(shù)據(jù)庫理論做支撐,然而理論知識過多實踐內容較少會使得學生難以理解和接受。

實驗項目內容單調。根據(jù)歷年來我校畢業(yè)論文的完成情況來看,用到SQL Server來做的數(shù)據(jù)庫基本相同,僅是添加幾張表格,卻不會應用 SQL Server中的存儲過程、觸發(fā)器等資源。根據(jù)我校實驗項目的內容來看,其實原內容基本來自教材,項目操作流于形式,但實際的實驗教學實踐中,學生很少參加實驗練習,學不到真正的操作知識和操作本領,導致了畢業(yè)設計作品過于雷同、單調,絕大多數(shù)的畢業(yè)設計缺少實際的內容。

教學手段單調,缺乏良性互動。當前我校教師均借助多媒體開展教學,這也成為了一種習慣,使得教師們完全依賴多媒體課件,采用這樣的教學手段使得學生們在學習知識的時候顯得非常被動,隨著多媒體課件的迅速翻篇,學生很少有思考的時間,也難以和教師就某些知識點進行互動,學生也很難完整記錄課件中的代碼,導致學生動手能力差,在真正自己做項目時缺乏相應的能力。

課程考核效率低?!稊?shù)據(jù)庫應用技術-SQL Server》課程考核采取平時+實驗+期末的成績考核方式,考核方式表面上合理,然而在實際的操作環(huán)節(jié),實驗成績部分是根據(jù)平時成績來定,使得考核非常模糊,根據(jù)期末考試的內容來看,考試內容分為客觀題和主觀題,主觀題中有問答、程序填空和分析程序部分,沒有寫代碼的題目,這樣的考試內容并不能檢驗出學生一是否,會自己獨立寫代碼。

二、《數(shù)據(jù)庫應用技術-SQL Server》課堂教學改革與實踐對策

1.合理安排教材和教學內容

在有條件的情況下可以重新編排《數(shù)據(jù)庫應用技術-SQL Server》課程教材,結合數(shù)據(jù)庫原理與應用技術,改編教材中偏重理論知識的情況,加強數(shù)據(jù)庫實用技術部分的內容。由于SQL Server 數(shù)據(jù)庫理論知識部分是SQL Server 數(shù)據(jù)庫實用技術的基礎,在教材內容設置方面,需要靈活安排教材內容,對各知識點和各章節(jié)的順序進行適當調整,例如在理論知識講解完以后適當加入技術應用部分的練習,又或者在后期的SQL Server 數(shù)據(jù)庫技術之前回顧相應的數(shù)據(jù)庫原理知識,通過這樣的教學內容的安排促進學生對知識理論的學以致用。

若不能重新改編教材,教師則需要根據(jù)這樣的思路靈活布置教學內容,例如在數(shù)據(jù)庫設計的教學內容中,就是應該先導入關系數(shù)據(jù)庫規(guī)范化理論部分的知識,然后再進行關系模式設計的學習,并讓學生根據(jù)相應的范式要求完成關系模式設計,讓學生溫故知新、理論應用到實際、學以致用。SQL 語言在實際應用中有很大的區(qū)別,這要根據(jù)不同的數(shù)據(jù)庫管理系統(tǒng)選擇Transact-SQL 語言,由此,教學內容應加強Transact-SQL 語言的講解,并加深學生對SQL Server 數(shù)據(jù)庫的環(huán)境配置與應用技術的學習和掌握。

由于本課程的目的在于培養(yǎng)學生的 SQL Server 數(shù)據(jù)庫設計和開發(fā)能力,若只是根據(jù)傳統(tǒng)的教學內容實施教學,必定會導致學生對技術知識方面的欠缺,使得前臺開發(fā)語言連接到數(shù)據(jù)庫這部分技術知識不能銜接,最終不利于學生在軟件開發(fā)能力方面的培養(yǎng)。由此,必須要通過整合程序設計類課程的教學內容,加強常用軟件開發(fā)工具所對于的SQL Server 數(shù)據(jù)庫技術。例如在案例教學中,需要對JAVA 程序、網站建設、.net 開發(fā)技術等設計編程部分加強相應的技術講解,同時加強綜合設計性實驗的相關訓練,在數(shù)據(jù)庫應用系統(tǒng)的設計與實現(xiàn)中提升實操能力。

2.創(chuàng)新教學方法

由于采用多媒體的教學手段的單一使得學生不能學到連貫的知識和技術,并且沒有考慮到學生的主體地位,缺乏課堂互動與反饋,導致低效的教學效率。由此,以教師為主導的課堂教學要充分發(fā)揮教師的教學創(chuàng)新,采取項目教學法加強SQL Server各個知識點的講解應用,最大限度地調動學生學習的積極性與主動性,讓學生獨立解決問題。

項目教學法。在整個教學過程中,用實際項目貫穿課程,讓學生學會項目需求分析,以此完成后期的概念、邏輯、物理等結構的設計,從而開展數(shù)據(jù)庫的實施、運行和維護,加強學生對項目運作過程的熟練程度,提升學生對相關操作的掌握。

任務驅動法。目前在很多課程中都采用任務驅動法促進學生的自主學習。在本課程中,教師圍繞一個具體的數(shù)據(jù)庫系統(tǒng)布置的相應的具體任務,讓學生做好課前預習和思考,在上課時教師進行啟發(fā)式提問,并在課后又再一次布置任務讓學生加強練習和預習。在課堂前、課堂中以及課堂后的每一個任務都有一定的銜接性和關聯(lián),而學生也在任務驅動下的帶著目的去相互協(xié)作和互動,提升其對學習的興趣、主動性和成就感。

互動教學法。該教學法貫穿在本課程的所有課堂教學中,要通過教師和學生之間平等互動交流得以實現(xiàn),構建以學生為主體的課程教學,讓學生主動掌握知識、主動學習。在網絡時代,各種課程平臺相繼建立,例如云班課、微信平臺、微博平臺、班級QQ等,這些都是學生課下互動的學習平臺,此時教師應主動加入學生的課后互動中,及時為學生答疑解惑,同時獲得學習反饋,便于做好課程教學的調整。此外教師也可以通過這些平臺上傳學?資料和軟件項目制作案例,讓學生的學習更加便利,幫助學生掌握知識。

3.加強實踐教學,完善考核體系

本課程的實驗課時為48課時,旨在通過實驗訓練學生的操作能力和知識運用能力。本教學環(huán)節(jié)在于考察學生對SQL Server 數(shù)據(jù)庫理論知識和相應的技術應用的情況,會在上課期間為學生布置一個大作業(yè),根據(jù)學生作業(yè)完成情況、實驗表現(xiàn)、實驗報告、動手能力來給出成績,完成本環(huán)節(jié)的考核。這樣的綜合考核方式能夠較為全面地考核學生,促進其學習的信心和熱情。整個實驗環(huán)節(jié)需要注意以下工作:

每一個實驗項目都要做好精心設計,安排學生預習相關理論和操作內容,但實驗過程中為學生做好相關的操作示范,全程認真指導,及時對學生的操作給予反饋,激勵其學習。在整個操作過程中應強調協(xié)作、互動,對數(shù)據(jù)庫表結構設計的合理性、缺陷、改進方案、注意事項進行探討,提升學生的互助、溝通、分析和解決問題的能力。實驗過程中所布置的大作業(yè)由2~3人一組協(xié)作完成,限定2周時間,題目范圍是數(shù)據(jù)庫管理系統(tǒng)的開發(fā)設計。這樣的一個訓練作業(yè)起到了整合程序設計類課程知識技能的作用,根據(jù)作業(yè)中學生所學開發(fā)設計工具的應用訓練,促進學生的綜合能力。

篇8

關鍵詞:Java語言 數(shù)據(jù)庫操作 方法

中圖分類號:TP311.13 文獻標識碼:A 文章編號:1007-9416(2013)10-0042-02

在任何計算機語言中數(shù)據(jù)庫都占據(jù)很重要的位置,可以說如果沒有數(shù)據(jù)庫就沒有計算機語言的應用,對于Java語言中也是如此。當前主流應用的數(shù)據(jù)庫服務器主要有,微軟(MicroSoft)開發(fā)的SQL Server數(shù)據(jù)庫、甲骨文(ORACLE)公司的MySQL數(shù)據(jù)庫和Oracle數(shù)據(jù)庫等,使用Java編程語言連接SQL Server數(shù)據(jù)庫時,需要比較繁雜的系統(tǒng)環(huán)境配置,所以,在使用Java語言編寫應用程序時,在數(shù)據(jù)庫服務器的選擇方面,多使用MySQL數(shù)據(jù)庫或Oracle數(shù)據(jù)庫。其中,中小型項目的開發(fā)一般多選用MySQL數(shù)據(jù)庫,在大型項目在開發(fā)中,大多選用Oracle數(shù)據(jù)庫。

在Java語言中,要對數(shù)據(jù)庫進行顯示、增加、修改、刪除等操作,主要采用JDBC(Java DataBase Connection)技術。這種技術為開發(fā)人員提供了一個標準的API接口,程序員通過調用純Java API來編寫調用數(shù)據(jù)庫在應用程序。除此之外,還可以通過編寫程序調用JDBC的API,比較容易的實現(xiàn)對不同數(shù)據(jù)庫的訪問。

在計算機語言的學習過程中,對于大多數(shù)人來說數(shù)據(jù)庫的連接和操作是一個難點,筆者在多年的Java語言實踐中積累的連接和操作數(shù)據(jù)庫的方法和技巧與大家一起分享。

1 Java連接MySQL數(shù)據(jù)庫的方法

使用Java語言訪問多種不同數(shù)據(jù)庫的時候,可以通過編寫JDBC API調用來實現(xiàn),在連接不同數(shù)據(jù)庫在時候,安裝相應的驅動程序即可。例如:要連接MySQL數(shù)據(jù)庫,就需要安裝MySQL數(shù)據(jù)庫的驅動程序“mysql-connector-java.jar”,這些驅動程序大多椒開源的,一般可以到官網或互聯(lián)網上下載。下載后的驅動程序存放的位置有要求,如果你沒有使用開放的開發(fā)環(huán)境,那么要將驅動程序存放在JDK安裝目錄下的lib文件夾中;如果你使用了Eclipse或其它的開發(fā)環(huán)境,那么要在這些環(huán)境中配置JDK的位置將驅動程序導入到里面。

安裝完成數(shù)據(jù)庫在驅動程序之后,就可以編寫程序來實現(xiàn)對數(shù)據(jù)庫的連接。

(1)Class.forName(“com.mysql.jdbc.Driver”);

//此步驟為驅動程序的加載,另外驅動程序的名字還可以為org.gjt.mm.mysql.Driver。

(2)Connection con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/數(shù)據(jù)庫名字”,“用戶名”,“密碼”);

//創(chuàng)建與數(shù)據(jù)庫的連接

通過以上兩步驟后即可以完成與數(shù)據(jù)庫的連接,上面代碼1中forName()方法會拋出ClassNotFoundException,代碼2中getConnection()方法會拋出SQLException異常,所以在程序中要進行異常的捕獲與處理。

2 數(shù)據(jù)庫連接的技巧

2.1 數(shù)據(jù)庫連接代碼的復用

在一個項目開發(fā)過程中,需要經常的對數(shù)據(jù)庫進行操作,那么我們不能在一個項目中多次寫相同的代碼,這樣不利于代碼的更新與維護,所以我們可以將連接數(shù)據(jù)庫的代碼單獨的寫在一個Java文件的構造方法中,這樣在需要進行數(shù)據(jù)庫連接時生成該類的對象即可調用到數(shù)據(jù)庫連接的代碼。

2.2 數(shù)據(jù)庫連接對象的關閉

在應用程序運行在過程中,當客戶端發(fā)起查詢或更新請求時,應用程序就會通過JDBC API新建一個連接,與數(shù)據(jù)庫進行通信。如果,應用程序有多個客戶端需要頻繁對數(shù)據(jù)進行操作,那么,就需要建立相應多個在數(shù)據(jù)庫連接。所以,編寫應用程序在時候在每一個客戶端使用數(shù)據(jù)庫完成之后,一定要釋放連接資源,包括Connection對象、Statement對象和ResultSet對象,否則會因資源耗盡而使應用程序崩潰。因此,程序員在編寫應用程序時,在處理數(shù)據(jù)庫操作方面必須謹慎,保證每次的數(shù)據(jù)操作之后及時釋放數(shù)據(jù)庫連接資源,提高應用程序在穩(wěn)定性和健壯性。

一個數(shù)據(jù)庫通信連接一般可以支持多達幾百個的Statement對象。通常,在應用程序中,每個程序在調用都需要構造一個物理連接,而且每個Statement對象需要單獨占用一個物理連接。由于建立物理連接的在過程需要通過網絡反復溝通,比較浪費時間,所以在連接數(shù)據(jù)庫時,盡最大可能避免或者減少單個Statement對象獨占物理連接在情況。這樣的設置對于一般的網站來說還可以,如果一些訪問量比較大的網站,當連接數(shù)超過這個值的時候數(shù)據(jù)庫服務器就會報錯,出現(xiàn)網站癱瘓等現(xiàn)象。所以對數(shù)據(jù)庫操作完成后,要調用相關對象的close()方法,將所創(chuàng)建的數(shù)據(jù)庫連接相關對象關閉,通常采取“先創(chuàng)建的對象后關閉”的原則。

在使用java編寫應用程序時,通常將將數(shù)據(jù)庫的連接、關閉與異常處理同時寫在一個單獨的類文件的相關代碼。在類的構造方法中編寫數(shù)據(jù)庫連接、數(shù)據(jù)庫關閉對象的方法,此外也可以將其它數(shù)據(jù)庫的操作方法寫在此方法中,例如數(shù)據(jù)庫的查詢、修改、插入和刪除等。當需要進行數(shù)據(jù)庫操作時,生成這個類的對象,就可以進行數(shù)據(jù)庫的連接、關閉以及其它相關操作,提高代碼在利用率。

(1)public class DBConnection {

(2)private String dbDriver="org.gjt.mm.mysql.Driver";

(3)private String url="jdbc:mysql://localhost:3306/shop";

(4)public Connection connection = null;

(5)public DBConnection() {

(6)try {

(7)Class.forName(dbDriver).newInstance(); // 加載數(shù)據(jù)庫驅動

(8)connection = DriverManager.getConnection(url, "root", "123");

(9)} catch (Exception ex) {

(10)System.out.println("數(shù)據(jù)庫驅動程序加載失?。?+ex.toString());}

(11)}

(12)public void clo(){

(13)try{

(14)if(connection!=null)

(15)connection.close();

(16)}catch(Exception e){

(17)System.out.print(e.getMessage());}

(18)}

(19)}

2.3 數(shù)據(jù)庫連接池的使用

使用JDBC訪問網絡數(shù)據(jù)庫雖然簡單易用,但是這種方法對于Web開發(fā)來說,存在很多問題。比如文中前面提到的每一次Web請求都要建立一次數(shù)據(jù)庫連接,即浪費時間又占用內存。而且對于大型的電子商務網站,同時幾百人乃至幾千人在訪問量,在進行數(shù)據(jù)庫連接操作時,要耗費大量在系統(tǒng)資源,影響網站的訪問速度。在標準JDBC API接口中,并沒有提供資源的管理方法,資源管理必須由應用程序自己負責管理。雖然在JDBC規(guī)范中,強調了資源的關閉、回收及合理運用,但最穩(wěn)妥的方式,還是為應用程序提供有效的管理手段。

對數(shù)據(jù)庫連接資源的管理是很重要的問題。我們可以使用“數(shù)據(jù)庫連接緩沖池”來解決資源的頻繁分配與釋放所造成的問題。將數(shù)據(jù)庫連接預先放在緩沖池中,當需要建立數(shù)據(jù)庫連接時,就從“緩沖池”中取出,使用后再放回去。我們可以通過設定連接池中的最大連接數(shù)來防止太多的連接數(shù)量。

3 結語

上面講述了Java連接MySQL數(shù)據(jù)庫的方法和一些操作技巧,實際在進行數(shù)據(jù)庫操作時還有很多可以優(yōu)化的部分,除了優(yōu)化代碼部分以外,還可以優(yōu)化數(shù)據(jù)庫,包括數(shù)據(jù)結構的調整、SQL語句的調整和服務器內存分配的調整等等。另外在Java Web開發(fā)中也可以利用Hibernate框架來操作數(shù)據(jù)庫,它是一個開放源代碼的對象關系映射框架,它對JDBC進行了輕量級的對象封裝,使Java程序員可以隨心所欲地使用對象編程思維來操縱數(shù)據(jù)庫。已經得到了廣大企業(yè)和Java Web開發(fā)人員的認可。

參考文獻

[1]黃丹.基于JDBC的數(shù)據(jù)庫訪問技術[J].軟件導刊,2010(03).

[2]聶凱,曹慢慢.Mysql數(shù)據(jù)庫的訪問方法淺析[J].科技資訊,2010(09).

[3]張作宸.JDBC原理及操縱數(shù)據(jù)庫方法[J].科技信息,2009(02).

篇9

關鍵詞:SqlServer;數(shù)據(jù)庫;維護計劃;備份

中圖分類號:TP309.3文獻標識碼:A 文章編號:1009-3044(2009)33-9617-03

The Research and Application of Sqlserver Automatic Secondary Backup

WU Yan, ZHANG Dong

(Fujian Polytechnic of Information Technology, Fuzhou 350003, China)

Abstract: Database is the heart of foreground application, every record has the staff's wisdom and hard work., they are all valuable asset. Back-up the database is the really essential method of preventing damage to hardware and software, human operational errors and so on that destroys the database. This paper describes the concrete steps that after the script for data backup based on Sql Server2000 database maintenance plan.

Key words: SQL Server; database; maintenance plan; backup

Sql Server數(shù)據(jù)庫是目前廣泛使用的數(shù)據(jù)庫。備份和保護數(shù)據(jù)是數(shù)據(jù)庫維護的首要任務,SqlServer本身具有比較強大的備份功能,但出現(xiàn)災難的原因往往是由于硬盤的損壞,所以有必要在異地(異機)多保留一份備份數(shù)據(jù),以備不測。這就要求我們除sqlserver自帶功能外,還要探索其他的方法實現(xiàn)SqlServer數(shù)據(jù)庫自動的異地備份。

1 備份目標

我們具體研究實現(xiàn)目標包括:每天對數(shù)據(jù)庫進行兩個不同時刻的完全備份、保留最近1周的備份數(shù)據(jù)、備份數(shù)據(jù)實現(xiàn)異地(異機)存放。

每天對數(shù)據(jù)庫進行兩個不同時刻的完全備份;保留最近1周的備份數(shù)據(jù);備份數(shù)據(jù)實現(xiàn)異地(異機)存放;對于目標的前兩條,我是利用SQL Server 2000本身自帶“數(shù)據(jù)庫維護計劃”來實現(xiàn)的;而最后一條我是通過手工編寫腳本來實現(xiàn)的。

具體如下:“數(shù)據(jù)庫維護計劃”是SQL Server 2000能夠實現(xiàn)自動備份調度,以及自動刪除舊的數(shù)據(jù)備份,完全能夠滿足我我們備份要求。

2 實現(xiàn)步驟

2.1打開SQL Server“企業(yè)管理器”窗體

用鼠標單擊任務欄上的“開始”按鈕中的“程序(P)”菜單下的“Microsoft SQL Server”子菜單中的“企業(yè)管理器”菜單項,即可打開SQL Server 2000的“企業(yè)管理器”窗體。

2.2找到“數(shù)據(jù)庫維護計劃”功能

在“企業(yè)管理器”窗體中左側的樹型選項卡中,用鼠標單擊“+”圖標擴展開“控制臺根目錄”下的“Microsoft SQL Servers”,可以看到其下有一個“SQL Server組”;接著繼續(xù)擴展開“SQL Server組”,此時可以看到其下出現(xiàn)了服務器的名稱;再繼續(xù)擴展開此服務器,可以看到其下列出了諸如“數(shù)據(jù)庫”、“數(shù)據(jù)轉換服務”等項目;最后單擊“管理”項目,可以看到其下存在一個“數(shù)據(jù)庫維護計劃”(如圖1)。

2.3創(chuàng)建“數(shù)據(jù)庫維護計劃”

鼠標右擊“數(shù)據(jù)庫維護計劃”項目,選擇“新建維護計劃(P)”功能,將打開“數(shù)據(jù)庫維護計劃向導”窗體,依照此向導能夠創(chuàng)建一個新的“數(shù)據(jù)庫維護計劃”。

步驟1:單擊 “下一步(N)”按鈕,打開“選擇數(shù)據(jù)庫”窗體(如圖2)。在此窗體中選定文獻系統(tǒng)數(shù)據(jù)庫“tsgdb”。

步驟2:單擊圖2中的“下一步(N)”按鈕,打開“更新數(shù)據(jù)優(yōu)化信息”窗體(如圖3)。

在此窗體中可以對數(shù)據(jù)庫中的數(shù)據(jù)和索引重新進行組織,以及能夠設定在滿足一定條件的情況下,維護計劃自動刪除數(shù)據(jù)庫中的未使用的空間,以便提高性能。

本人沒有使用其中的功能。

步驟3:單擊圖3中的“下一步(N)”按鈕,打開“檢查數(shù)據(jù)庫完整性”窗體,如圖4所示。

在此窗體中可以設定維護計劃在備份數(shù)據(jù)庫前自動檢查數(shù)據(jù)庫的完整性,以便檢測由于硬件或軟件錯誤而導致數(shù)據(jù)的不一致。選中“檢查數(shù)據(jù)庫完整性[H]”復選框,因為有可能會修正一些錯誤,使備份的數(shù)據(jù)更有效。

步驟4:在“檢查數(shù)據(jù)庫完整性”窗體中的“下一步(N)”按鈕,打開“指定數(shù)據(jù)庫備份計劃”窗體。因為圖書館開館時間為8:00――12:00和14:00――21:00,所以我在“調度”中設為每天12:30開始備份和21:30開始備份,這樣做,即提高了數(shù)據(jù)庫備份的效率,又不會影響到文獻系統(tǒng)的正常使用。

對數(shù)據(jù)庫進行備份,則必須選定“作為維護計劃的一部分來備份數(shù)據(jù)庫[A]”復選框,指定存儲備份文件的位置:磁盤。設定“調度”后單擊“下一步(N)”按鈕則顯示“指定備份磁盤目錄”窗體(如圖6)。

在圖6中,指定存儲備份文件的目錄備份文件擴展名,因為我要保存最近1周的備份,所以設置備份計劃自動地刪除早于1周的備份文件。設定后,單擊“下一步(N)”按鈕則顯示“指定事務日志備份計劃”窗體。

步驟5:指定“事務日志備份計劃”的過程與步驟4的過程完全相同,只是在設定“調度”上稍有差別(因為我的要求是數(shù)據(jù)庫每天備份一次,事務日志每1小時備份一次)。

步驟6:對事務日志的備份計劃全部設定后,單擊“下一步(N)”按鈕則顯示“要生成的報表”窗體。在此窗體中可以指定用于存放整個備份計劃執(zhí)行過程中的日志的目錄。

步驟7:完成步驟6后,單擊“下一步(N)”按鈕則顯示“維護計劃歷史紀錄”窗體。

在此窗體中可以指定如何存儲此維護計劃的歷史紀錄(是存放在“本地服務器”上,還是在“遠程服務器”上),而且通過指定表中的行數(shù)可以限定歷史紀錄的存儲大小。

步驟8:完成步驟7后,單擊“下一步(N)”按鈕則顯示“正在完成數(shù)據(jù)庫維護計劃向導”窗體(如圖7)。

在此窗體中自定義一個“計劃名”為“tsgdb備份”。

步驟9:完成步驟8后,單擊“完成”按鈕,則顯示“維護計劃已創(chuàng)建成功?!钡奶崾究?再單擊 “確定”按鈕即成功地設定了文獻系統(tǒng)數(shù)據(jù)庫維護計劃。

2.4 啟動SQL Server 2000以便執(zhí)行“作業(yè)”

完成第三步后,還需啟動SQL Server 2000 Agent(),以便執(zhí)行“數(shù)據(jù)庫維護計劃”作業(yè)。

與展開SQL Server 2000“數(shù)據(jù)庫維護計劃”的步驟一樣,在“管理”項目中,可以發(fā)現(xiàn)存在一個“SQL Server ”。

2.5 檢查結果

經過上述步驟后,文獻系統(tǒng)數(shù)據(jù)庫的備份計劃就建立起來了??梢酝ㄟ^“資源管理器”來檢查備份目錄下是否存在相應地備份文件。

通過以上操作,已經實現(xiàn)了在服務器上保留最近一周的備份數(shù)據(jù)了,為了防止服務器本身硬件故障等情況對備份數(shù)據(jù)造成破壞,我又通過編寫腳本實現(xiàn)了備份數(shù)據(jù)的異地(機)存放。具體如下:

3 編寫腳本

新建文件名為cptsgdb.txt的文本文件,在其中編輯以下內容(如圖8):

net use \\172.16.0.8\DB_bk PASSWD_for_tsg /user:tsg

REM start copy

cd C:\WINDOWS\system32

xcopy.exe \\172.16.0.8\tsg\DB_back\*.* g:\ /e/h/y/d

說明:

172.16.0.8是數(shù)據(jù)庫服務器,DB_bk為服務器上存放備份數(shù)據(jù)的目錄,一定要先將其共享。

? net use \\172.16.0.8\DB_bkPASSWD_for_tsg /user:tsg

以用戶tsg訪問DB_bk目錄,PASSWD_for_tsg是用戶tsg的密碼。

? REM start copy 此為注釋行

? cd C:\WINDOWS\system32 切換當前目錄到system32

? xcopy.exe \\172.16.0.8\tsg\DB_back\*.* g:\ /e/h/y/d

將服務器上的備份數(shù)據(jù)拷貝到本地g盤中。參數(shù)含義:

/e復制目錄和子目錄,包括空的。

/h也復制隱藏和系統(tǒng)文件。

/y禁止提示以確認改寫一個。

/d只復制那些源時間 比目標時間新的文件。

編輯完成后保存文件,將文件后綴改為.bat,這樣就生成了一個批處理文件,我們使用windows自帶的“任務計劃”來調度它,實現(xiàn)數(shù)據(jù)在兩臺計算機之間的自動定時copy。

4 結論

這樣對數(shù)據(jù)庫的異地備份的實現(xiàn),這樣我們就能有效防止軟硬件損壞、人為操作錯誤等對數(shù)據(jù)庫造成破壞,來保障數(shù)據(jù)內容。

參考文獻:

[1] 薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2004:247-248.

[2] 張家愛.基于日志的數(shù)據(jù)恢復及其在SQLSERVER中的實現(xiàn)[J].農業(yè)網絡信息,2009(1).

[3] 趙松濤.SQL SERVER2000系統(tǒng)管理與應用開發(fā)[M].北京:人民郵電出版社,2006:18-20.

篇10

關鍵詞:組態(tài)王;SQL;各向異性;系統(tǒng)研發(fā) 

DOI:10.16640/j.cnki.37-1222/t.2016.02.089 

1 前言 

土工合成材料與土體界面的相互作用屬不同介質之間的問題,是當今巖土工程的熱點問題之一。筋-土界面上的摩擦阻力系數(shù)則是加筋土結構設計和分析的重要參數(shù),性能參數(shù)的精準測量對實際土體加筋工程具有重要指導意義[1-2]。我院自主研發(fā)一套充分考慮土工合成材料力學性能各項異性的新型直剪設備,避免了現(xiàn)行規(guī)范中試驗測試值與土工合成材料實際受力特性嚴重不符的問題,有效地解決了土工合成材料工程應用中存在的安全隱患。同時,搭建一套基于組態(tài)王與SQL數(shù)據(jù)庫的直剪試驗操作系統(tǒng),實現(xiàn)了系統(tǒng)工作狀態(tài)實時監(jiān)控、特征數(shù)據(jù)實時顯示,數(shù)據(jù)及參數(shù)曲線輸出、存儲、查詢等功能,并對試驗數(shù)據(jù)進行處理,獲得了國家規(guī)范要求的土工合成材料剪切性能參數(shù)系列評價指標,計算結果準確可靠。 

2 土工合成材料各向異性直剪儀介紹 

直剪設備主要包括機械、氣動以及電氣控制三大系統(tǒng),如圖1所示。機械部分主要包括機架、頂尖、回轉驅動、氣缸支撐架、上下剪切盒、直線導軌副等;氣動部分主要由氣缸、空壓機、閥體等組成;電氣控制系統(tǒng)主要由伺服電動缸、可編程控制器、傳感器、觸摸屏等組成。 

本設備采用整體式機架,結構緊湊,系統(tǒng)剛度大、強度高,極好地降低了導軌變形率,為直剪性能參數(shù)的精準測量建立結構基礎。上剪切盒外部形狀采用正八邊形以便于頂尖定位、加強系統(tǒng)可靠性及可加工性,同時相較于四邊形、六邊形等形狀有效減小下剪切盒內徑,進而減小回轉驅動尺寸,降低整機尺寸及重量。高性能回轉驅動實現(xiàn)下剪切盒0~360°任意角度精確旋轉,實現(xiàn)土工格柵各向異性性能參數(shù)直接測量,完美解決了現(xiàn)行規(guī)范試驗測試值與土工合成材料實際受力特性嚴重不符的問題,同時回轉驅動具備自鎖功能以保證直剪試驗中剪切面不發(fā)生旋轉,保證直剪試驗準確。 

采用氣動加壓結合數(shù)據(jù)實時采集模塊,對壓力進行實時調節(jié),保壓時間高達2h且氣壓變化率≤0.1%,實驗過程壓力穩(wěn)定確保試驗采集數(shù)據(jù)準確可靠。采用高精度伺服電動機與壓力傳感器聯(lián)合控制的方法,使剪切速度、剪切位移、剪切力得到精確控制,設備性能參數(shù)如表1所示。 

3 直剪試驗操作系統(tǒng) 

(1)系統(tǒng)功能介紹。直剪試驗操作系統(tǒng)用來指導操作人員安全高效、智能規(guī)范的開展土工合成材料剪切性能檢測,實現(xiàn)系統(tǒng)工作狀態(tài)實時監(jiān)控、特征數(shù)據(jù)實時顯示及剪切性能數(shù)據(jù)及曲線輸出、查詢等功能。本系統(tǒng)共分為系統(tǒng)菜單、操作功能按鈕、法向應力與實驗時間顯示、狀態(tài)指示燈以及用戶登錄/退出等5個功能區(qū),如圖2區(qū)域1~5所示。 

系統(tǒng)菜單分為系統(tǒng)說明、參數(shù)設置、實時數(shù)據(jù)、數(shù)據(jù)輸出、系統(tǒng)調試以及報警信息5個功能模塊。法向壓力及實驗時間反應實驗過程實時法向應力以及實驗剩余時間。狀態(tài)指示燈區(qū)域包括5個狀態(tài)指示燈,系統(tǒng)狀態(tài)正常色為綠色,異常時為紅色;運行狀態(tài)運行過程為綠色,試驗停止為灰色;報警狀態(tài)未出現(xiàn)報警為綠色,出現(xiàn)伺服異常、行程超出范圍、電機超載、壓力氣路連接異常等狀況時為紅色;法向應力正常為綠色,應力波動范圍超出理論法向應力的2%時指示燈為紅色。限位狀態(tài)反應剪切位移是否超出行程范圍,正常為綠色,超限則為紅色。 

(2)系統(tǒng)操作流程及SQL實現(xiàn)。打開/退出組態(tài)王,進行SQL連接/連接,功能實現(xiàn)命令語言為:SQLConnect(IDDevice,"dsn=;uid=;pwd="),SQLDisconnect(\\本站點\IDDevice) 

上述命令語言實現(xiàn)了組態(tài)王與SQL數(shù)據(jù)源的連接/斷開,將此命令寫入組態(tài)王應用程序命令語言的啟動/結束中,以實現(xiàn)系統(tǒng)開始運行時就可以連接/斷開到數(shù)據(jù)庫[3]。 

進入【系統(tǒng)調試】界面,調試各功能按鈕與數(shù)據(jù)顯示框,檢查系統(tǒng)是否正常;進入【參數(shù)設置】界面,輸入實驗參數(shù)和運動參數(shù);點擊【加壓】按鈕,并根據(jù)界面中間法向應力顯示框進行調整直至試驗理論值;點擊【預壓】,彈出預壓界面,并進行系統(tǒng)預壓5 min以保證后續(xù)實驗過程壓力穩(wěn)定。 

預壓結束,點擊【電機使能】按鈕,若參數(shù)輸入不合理則彈出提示窗口,輸入合理則電機上電,功能實現(xiàn)命令語言如下:SQLCreateTable( \\本站點\IDDevice,\\本站點\實驗時間與日期, "直剪儀實時數(shù)據(jù)") 

上述命令語言實現(xiàn)了按照設定表格模板的格式在數(shù)據(jù)庫中以實驗日期與時間新建數(shù)據(jù)表格,將此命令寫入【電機使能】按鈕的按下時,以實現(xiàn)數(shù)據(jù)庫表格的創(chuàng)建。 

點擊【開始】,進入【實時數(shù)據(jù)】界面開始實驗,每10s將數(shù)據(jù)存一次,命令語言如下:

SQLInsert(\\本站點\IDDevice,\\本站點\實驗時間與日期, "直剪儀實時數(shù)據(jù)") 

組態(tài)王將記錄體相關聯(lián)的變量當前值插入到SQL數(shù)據(jù)庫表格中,從而生成一條新的記錄,達到將組態(tài)王中的數(shù)據(jù)寫到外部數(shù)據(jù)庫的目的。 

實驗時間為0或者點擊【停止】按鈕,進入數(shù)據(jù)是否保存對話框,若刪除當前試驗數(shù)據(jù)則命令語言如下: 

SQLSelect( \\本站點\IDDevice, "實驗時間匯總", "報表名", "", "" ); 

SQLDelete(\\本站點\IDDevice, "實驗時間匯總",whereexpr); 

點擊【卸壓】按鈕;點擊【歸零】按鈕,并彈出系統(tǒng)回零等待界面,當回零動作完成后,該窗口自動關閉;點擊【電機去使能】按鈕,關閉電機;若繼續(xù)進行實驗,點擊【加壓】按鈕并按照步驟3-11開展實驗,若結束實驗則點擊【結束】按鈕。 

進入數(shù)據(jù)輸出開展后期數(shù)據(jù)處理。數(shù)據(jù)輸出分為【數(shù)據(jù)報表】和【曲線輸出】兩個功能,先從“實驗時間選擇”下拉列表框中選擇相應試驗數(shù)據(jù)日期,之后根據(jù)需要選擇報表/曲線預覽、打印、刪除等功能。 下拉列表框日期顯示SQL實現(xiàn)語言如下: 

SQLSelect( \\本站點\IDDevice, "實驗時間匯總", "記錄報表名", "", "" ); 

SQLNext( \\本站點\IDDevice); 

當需要將數(shù)據(jù)庫中的數(shù)據(jù)調入組態(tài)王來顯示,將此命令寫入相應功能按鈕按下時,并添加查詢下一條記錄的命令,實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的逐條查詢。 

4 試驗實例數(shù)據(jù)處理 

本文從“實驗時間選擇”下拉列表框中選擇“2015年5月26日11時23分”數(shù)據(jù)為處理實例,依次實現(xiàn)數(shù)據(jù)的報表預覽、曲線顯示,數(shù)據(jù)處理結果如圖3所示,并處理計算剪切位移與剪切力關系,如圖4所示。 

圖3(b)所示曲線可依據(jù)需要選擇坐標軸,僅選擇一項則默認時間為橫軸,若選擇兩項則第一選擇項為橫軸,第二選擇項為縱軸。點擊【選取】按鈕后,曲線顯示控件的橫/縱軸量程將依據(jù)實驗數(shù)據(jù)進行合理調整。圖4所示曲線給出了剪切位移與剪切力關系圖,并能根據(jù)需要通過“實驗時間選擇”添加多條曲線實現(xiàn)數(shù)據(jù)對比,實現(xiàn)曲線保存、打印和清空操作。 

5 結論 

本文研制的新型直剪設備結構簡單、對環(huán)境友好,安全性能高,基于組態(tài)王與SQL數(shù)據(jù)庫研發(fā)的試驗操作系統(tǒng),可實現(xiàn)工作狀態(tài)實時監(jiān)控、特征數(shù)據(jù)實時顯示,性能參數(shù)后期處理等功能,操作簡單、計算準確可靠,具有很好的應用價值。 

參考文獻: 

[1]周楊,李曉瑩.土工合成材料直剪與拉拔聯(lián)合試驗儀的研制[J].路基工程,2006,12(06):82-83.   本文由wWw.DyLw.NeT提供,第一論 文 網專業(yè)教育教學論文和以及服務,歡迎光臨dYlw.nET

[2]鄧子健,沈躍.瀝青路面層間抗剪強度試驗分析[J].山西交通科技, 2006,181(04):11-14.