⑴ 資料庫sql 的課程設計怎麼做,要借哪些書看,求大神指教
IT行業,資料庫確實是一門相當重要的課程。但是在大學裡面,對待資料庫原理及應用這么課程以及其課程設計的重視程度就相差很大了,各個學校要求也不一樣。如果是要學好,那確實要下工夫;如果只是完成課程設計,交差了事,其實相當簡單。
既然是課程設計,也算是個小小的項目,既然是項目,也就離不開需求分析、資料庫設計、部署實現等環節。當然,這個小小的項目只需要前面的部分:需求和資料庫設計,資料庫設計是重點。
需求分析就不用多說,和所有其他項目一樣,無非就是用戶需求,功能需求,系統需求等,找任何一本關於需求分析的書都是可以,除了那些個空話之外,更多的是要根據設計需要進行分析。
資料庫設計就比較復雜一點,首先得把資料庫原理搞清楚,比如:符合什麼樣的範式,怎麼畫ER圖,如何理解用例圖。在設計資料庫之前,有一系列的分析要做:面向對象分析,用例分析,類和對象分析等等。分析到位是資料庫設計成功的重要保障。分析完成之後才是設計,比如:邏輯結構設計,關系模式設計,存取方法設計,存儲結構設計,數據完整性設計,參考完整性設計,Check約束,Default約束,觸發器設計,視圖設計,存儲過程設計,許可權設計等。這些都完成了,最後一步才是寫SQL代碼實現這些設計,創建資料庫及相關的數據表,關聯,視圖,觸發器,存儲過程等一些列的看得見的資料庫參數。
上面說的比較理論,也比較籠統。我想我可以用一個簡單例子告訴你我要表達的意思。例子很簡單,其中很多地方都不是太好,不過或許可以給你一個直觀的思路。
資料庫應用課程設計報告書
網上超市管理系統
成 績:
學 號:
姓 名:
指導教師:
20 年 月 日
目錄
任務書......................................... (3)
1. 需求調查、分析................................. (4)
1.1.企業介紹.................................... (4)
1.2.需求調查及分析.............................. (5)
2. 面向對象分析和設計............................. (7)
2.1. 用例分析 (7)
2.2.類和對象設計 (12)
3. 邏輯結構設計.................................. (15)
3.1. 類和對象向關系模式轉換............................................ (15)
3.2. 關系模式優化 (16)
4. 資料庫物理結構設計............................ (16)
4.1. 存取方法設計 (16)
4.2. 存儲結構設計 (17)
5. 資料庫完整性設計.............................. (17)
5.1. 主鍵及唯一性索引 (17)
5.2. 參照完整性設計 (18)
5.3. Check約束 (18)
5.4. Default約束 (18)
5.5. 觸發器設計 (19)
6. 資料庫視圖設計................................ (19)
7. 資料庫存儲過程設計............................ (20)
8. 許可權設計...................................... (20)
9. 總結.......................................... (21)
⑵ SQL server 2005資料庫有什麼優點和缺點
SQL Server 2005的十大最新特性
在商界,每樣東西都在競爭中爭取「更好、更快、更便宜」——SQL Server 2005也提供了很多個新特性來節省精力、時間和金錢。從編程到管理能力,這個版本的SQL Server都優於其他版本的產品,並且它還對SQL Server 2000中已經存在的特性進行了加強。這里我按照它的重要程度列出前十個最重要的新特性。
1、加強的T-SQL (事務處理SQL )
T-SQL 天生就是基於集合的關系型資料庫管理系統編程語言,可以提供高性能的數據訪問。現在,它與許多新的特性相結合,包括通過同時使用TRY和CTACH來進行錯誤處理,可以在語句中返回一個結果集的通用表表達式(CTEs),以及通過PIVOT 和UNPIVOT命令將列轉化為行和將列轉化為行的能力。
2、CLR(Common Language Runtime,通用語言運行時)
SQL Server 2005中的第二個主要的增強特性就是整合了符合.NET規范的語言 ,例如C#, ASP.NET 或者是可以構建對象(存儲過程,觸發器,函數等)的 VB.NET。這一點讓你可以在資料庫管理系統中執行.NET代碼以充分利用.NET功能。它有望在SQL Server 2000環境中取代擴展的存儲過程,同時還擴展了傳統關系型引擎功能。
3、服務代理(Service Broker)
服務代理處理的是以鬆散方式進行聯系的發送者和接收者之間的消息。一個消息被發送、處理和回答,完成整個事務。這大大擴展了數據驅動應用程序的性能,以符合工作流或者客戶業務需求。
4、數據加密
SQL Server 2000沒有用來在表自身加密數據的有文檔記載的或者公共支持的函數。企業需要依賴第三方產品來滿足這個需求。SQL Server 2005自身帶有支持對用戶自定義資料庫中存儲的數據進行加密的功能。
5、SMTP郵件
在SQL Server 2000中直接發送郵件是可能的,但是很復雜。在SQL Server 2005中,微軟通過合並SMTP郵件提高了自身的郵件性能。SQL Server從此跟Outlook說「bye-bye」!
6、HTTP終端
你可以很輕松地通過一個簡單的T-SQL 語句使一個對象可以在網際網路上被訪問,從而創建一個HTTP終端。這允許從網際網路上呼叫一個簡單的對象來獲取需要的數據。
7、多活動結果集(Multiple Active Result Sets ,簡稱MARS)
多活動結果集允許從單個的客戶端到資料庫保持一條持久的連接,以便在每個連接上擁有超過一個的活動請求。這是一個主要的性能改善,它允許開發人員讓用戶在使用SQL Server工作的時候擁有新的能力。例如,它允許多個查詢,或者一個查詢的同時輸入數據。底線就是一個客戶端連接可以同時擁有多個活動的進程。
8、專用管理員連接
如果所有的內容都出錯了,那麼只能關閉SQL Server服務或者按下電源鍵。專用管理員連接結束了這種狀況。這個功能允許資料庫管理員對SQL Server發起單個診斷連接,即使是伺服器正在出現問題。
9、SQL Server綜合服務(SSIS)
SSIS已經作為主要的ETL(抽取、傳輸和載入)工作替代了DTS(數據傳輸服務),並且隨著SQL Server免費發布。這個工具,從SQL Server 2000開始被完全重新編寫,現在已經擁有了很大程度的靈活性,來滿足復雜的數據移動需求。
10、資料庫鏡像
我並沒有指望這個功能會在11月份的RTM 中隨著SQL Server 2005一起發布,但是我認為這個特性具有很大的潛力。資料庫鏡像是本地高可用性能力的擴展。所有,仍然在對更多的細節進行調整……那麼現在,祝福吧。
還有兩項技術不能在SQL Server 2005的前十列表中遺漏的是它的分析服務和報告服務。雖然SQL Server 2005沒有介紹其中的任何一項,但是將它們整合進了SQL Server綜合服務之中,以求微軟的核心商務智能套件的完美。這些技術對於商務智能的成功至關重要。學習新的特性,以及企業如何在實際項目中實現它。
⑶ sql做個簡單的學籍管理系統
主界面在C++ builder里做,
兩種語言的鑲套,你是指的C++中使用sql語句吧,
這個只要加入資料庫控制項,建立ODBC連接,然後使用庫函數就可以使用sql語句了
具體的教程網上一大把,自己查詢一下吧
⑷ 求SQL資料庫設計倉庫管理系統。
倉庫管理系統
目錄
第一章 系統概述 1
1.1緒論 2
1.1.1系統開發的目的與意義 3
1.1.2系統開發背景
1.1.3系統任務概述
1.1.4系統實現的方法與目標
第二章 可行性研究與需求分析 4
2.1可行性研究 5
2.1.1技術可行性 6
2.1.2經濟可行性
2.1.3操作可行性
2.1.4社會因素可行性
2.1.5可行性研究結論
2.2需求分析
2.2.1系統的目的
2.2.2系統功能及用戶需求分析
2.2.3系統流程圖
2.2.4數據描述
第三章 項目設計的基本原理和採用的主要方法與技術
3.1項目設計的基本原理
3.2項目設計採用的主要方法與技術
3.2.1項目設計採用的主要方法
3.2.2項目設計採用的主要技術
第四章 總體設計
4.1總體設計原理
4.2系統功能模塊設計
4.3系統流程圖
4.4軟硬體環境:
4. 5運行設計
第五章 詳細設計
5.1資料庫的概念設計
5.1.1數據抽象
5. 1.2系統概念數據模型(CDM):
5. 1.3系統物理數據模型(PDM):
5.2程序描述
5. 2.1身份驗證系統
5. 2.2借出系統
5.3程序流程圖:
第六章 系統的實現與調試
6.1貨物倉庫資料庫的建立
6.2貨物倉庫資料庫的建立
6.2.1登錄界面
6.2.2主界面
6.2.3點擊菜單中的「供應商信息」,出現如下界面
6.2.4點擊菜單中的「購貨商信息」,出現如下界面
6.2.5點擊菜單中的「貨物信息」,出現如下界面:
6.2.6點擊「庫存操作」中的「入庫」,出現如下界面:
6.2.7點擊「庫存操作」中的「出庫」,出現如下界面:
6.2.8點擊「庫存操作」中的「庫存」,出現庫存信息的界面
第七章個人遇到的困難與獲得的主要成果
第八章測試與運行記錄
8.1測試目的
8.2測試目標
8.3測試計劃
8.3.1測試方案
8.3.2測試項目
8.3.3測試准備
8.4測試與運行記錄
8.4.1用戶登錄操作
8.4.2供貨商信息查詢操作
8.4.3指定供貨商信息查詢操作
8.4.4添加供貨商信息操作
8.4.5購貨商信息查詢操作
8.4.6指定購貨商信息查詢操作
8.4.7添加購貨商信息操作
8.4.8商品信息查詢操作
8.4.9指定商品信息查詢操作
8.4.10商品信息添加操作
8.4.11查詢入庫信息操作
8.4.12查詢指定商品入庫信息操作
8.4.13入庫信息添加
8.4.14查詢出庫信息操作
8.4.15查詢指定商品出庫信息操作
8.4.16出庫信息添加
8.4.17庫存信息查詢操作
8.5評價
參考文獻
附錄
這是目錄,有問題請發站內信我
⑸ sql資料庫設計
一、資料庫設計過程
資料庫技術是信息資源管理最有效的手段。資料庫設計是指對於一個給定的應用環境,構造最優的資料庫模式,建立資料庫及其應用系統,有效存儲數據,滿足用戶信息要求和處理要求。
資料庫設計中需求分析階段綜合各個用戶的應用需求(現實世界的需求),在概念設計階段形成獨立於機器特點、獨立於各個DBMS產品的概念模式(信息世界模型),用E-R圖來描述。在邏輯設計階段將E-R圖轉換成具體的資料庫產品支持的數據模型如關系模型,形成資料庫邏輯模式。然後根據用戶處理的要求,安全性的考慮,在基本表的基礎上再建立必要的視圖(VIEW)形成數據的外模式。在物理設計階段根據DBMS特點和處理的需要,進行物理存儲安排,設計索引,形成資料庫內模式。
1. 需求分析階段
需求收集和分析,結果得到數據字典描述的數據需求(和數據流圖描述的處理需求)。
需求分析的重點是調查、收集與分析用戶在數據管理中的信息要求、處理要求、安全性與完整性要求。
需求分析的方法:調查組織機構情況、調查各部門的業務活動情況、協助用戶明確對新系統的各種要求、確定新系統的邊界。
常用的調查方法有: 跟班作業、開調查會、請專人介紹、詢問、設計調查表請用戶填寫、查閱記錄。
分析和表達用戶需求的方法主要包括自頂向下和自底向上兩類方法。自頂向下的結構化分析方法(Structured Analysis,簡稱SA方法)從最上層的系統組織機構入手,採用逐層分解的方式分析系統,並把每一層用數據流圖和數據字典描述。
數據流圖表達了數據和處理過程的關系。系統中的數據則藉助數據字典(Data Dictionary,簡稱DD)來描述。
數據字典是各類數據描述的集合,它是關於資料庫中數據的描述,即元數據,而不是數據本身。數據字典通常包括數據項、數據結構、數據流、數據存儲和處理過程五個部分(至少應該包含每個欄位的數據類型和在每個表內的主外鍵)。
數據項描述={數據項名,數據項含義說明,別名,數據類型,長度,
取值范圍,取值含義,與其他數據項的邏輯關系}
數據結構描述={數據結構名,含義說明,組成:{數據項或數據結構}}
數據流描述={數據流名,說明,數據流來源,數據流去向,
組成:{數據結構},平均流量,高峰期流量}
數據存儲描述={數據存儲名,說明,編號,流入的數據流,流出的數據流,
組成:{數據結構},數據量,存取方式}
處理過程描述={處理過程名,說明,輸入:{數據流},輸出:{數據流},
處理:{簡要說明}}
2. 概念結構設計階段
通過對用戶需求進行綜合、歸納與抽象,形成一個獨立於具體DBMS的概念模型,可以用E-R圖表示。
概念模型用於信息世界的建模。概念模型不依賴於某一個DBMS支持的數據模型。概念模型可以轉換為計算機上某一DBMS支持的特定數據模型。
概念模型特點:
(1) 具有較強的語義表達能力,能夠方便、直接地表達應用中的各種語義知識。
(2) 應該簡單、清晰、易於用戶理解,是用戶與資料庫設計人員之間進行交流的語言。
概念模型設計的一種常用方法為IDEF1X方法,它就是把實體-聯系方法應用到語義數據模型中的一種語義模型化技術,用於建立系統信息模型。
使用IDEF1X方法創建E-R模型的步驟如下所示:
2.1 第零步——初始化工程
這個階段的任務是從目的描述和范圍描述開始,確定建模目標,開發建模計劃,組織建模隊伍,收集源材料,制定約束和規范。收集源材料是這階段的重點。通過調查和觀察結果,業務流程,原有系統的輸入輸出,各種報表,收集原始數據,形成了基本數據資料表。
2.2 第一步——定義實體
實體集成員都有一個共同的特徵和屬性集,可以從收集的源材料——基本數據資料表中直接或間接標識出大部分實體。根據源材料名字表中表示物的術語以及具有「代碼」結尾的術語,如客戶代碼、代理商代碼、產品代碼等將其名詞部分代表的實體標識出來,從而初步找出潛在的實體,形成初步實體表。
2.3 第二步——定義聯系
IDEF1X模型中只允許二元聯系,n元聯系必須定義為n個二元聯系。根據實際的業務需求和規則,使用實體聯系矩陣來標識實體間的二元關系,然後根據實際情況確定出連接關系的勢、關系名和說明,確定關系類型,是標識關系、非標識關系(強制的或可選的)還是非確定關系、分類關系。如果子實體的每個實例都需要通過和父實體的關系來標識,則為標識關系,否則為非標識關系。非標識關系中,如果每個子實體的實例都與而且只與一個父實體關聯,則為強制的,否則為非強制的。如果父實體與子實體代表的是同一現實對象,那麼它們為分類關系。
2.4 第三步——定義碼
通過引入交叉實體除去上一階段產生的非確定關系,然後從非交叉實體和獨立實體開始標識侯選碼屬性,以便唯一識別每個實體的實例,再從侯選碼中確定主碼。為了確定主碼和關系的有效性,通過非空規則和非多值規則來保證,即一個實體實例的一個屬性不能是空值,也不能在同一個時刻有一個以上的值。找出誤認的確定關系,將實體進一步分解,最後構造出IDEF1X模型的鍵基視圖(KB圖)。
2.5 第四步——定義屬性
從源數據表中抽取說明性的名詞開發出屬性表,確定屬性的所有者。定義非主碼屬性,檢查屬性的非空及非多值規則。此外,還要檢查完全依賴函數規則和非傳遞依賴規則,保證一個非主碼屬性必須依賴於主碼、整個主碼、僅僅是主碼。以此得到了至少符合關系理論第三範式的改進的IDEF1X模型的全屬性視圖。
2.6 第五步——定義其他對象和規則
定義屬性的數據類型、長度、精度、非空、預設值、約束規則等。定義觸發器、存儲過程、視圖、角色、同義詞、序列等對象信息。
3. 邏輯結構設計階段
將概念結構轉換為某個DBMS所支持的數據模型(例如關系模型),並對其進行優化。設計邏輯結構應該選擇最適於描述與表達相應概念結構的數據模型,然後選擇最合適的DBMS。
將E-R圖轉換為關系模型實際上就是要將實體、實體的屬性和實體之間的聯系轉化為關系模式,這種轉換一般遵循如下原則:
1)一個實體型轉換為一個關系模式。實體的屬性就是關系的屬性。實體的碼就是關系的碼。
2)一個m:n聯系轉換為一個關系模式。與該聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性。而關系的碼為各實體碼的組合。
3)一個1:n聯系可以轉換為一個獨立的關系模式,也可以與n端對應的關系模式合並。如果轉換為一個獨立的關系模式,則與該聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,而關系的碼為n端實體的碼。
4)一個1:1聯系可以轉換為一個獨立的關系模式,也可以與任意一端對應的關系模式合並。
5)三個或三個以上實體間的一個多元聯系轉換為一個關系模式。與該多元聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性。而關系的碼為各實體碼的組合。
6)同一實體集的實體間的聯系,即自聯系,也可按上述1:1、1:n和m:n三種情況分別處理。
7)具有相同碼的關系模式可合並。
為了進一步提高資料庫應用系統的性能,通常以規范化理論為指導,還應該適當地修改、調整數據模型的結構,這就是數據模型的優化。確定數據依賴。消除冗餘的聯系。確定各關系模式分別屬於第幾範式。確定是否要對它們進行合並或分解。一般來說將關系分解為3NF的標准,即:
表內的每一個值都只能被表達一次。
•?表內的每一行都應該被唯一的標識(有唯一鍵)。
表內不應該存儲依賴於其他鍵的非鍵信息。
4. 資料庫物理設計階段
為邏輯數據模型選取一個最適合應用環境的物理結構(包括存儲結構和存取方法)。根據DBMS特點和處理的需要,進行物理存儲安排,設計索引,形成資料庫內模式。
5. 資料庫實施階段
運用DBMS提供的數據語言(例如SQL)及其宿主語言(例如C),根據邏輯設計和物理設計的結果建立資料庫,編制與調試應用程序,組織數據入庫,並進行試運行。 資料庫實施主要包括以下工作:用DDL定義資料庫結構、組織數據入庫 、編制與調試應用程序、資料庫試運行
6. 資料庫運行和維護階段
資料庫應用系統經過試運行後即可投入正式運行。在資料庫系統運行過程中必須不斷地對其進行評價、調整與修改。包括:資料庫的轉儲和恢復、資料庫的安全性、完整性控制、資料庫性能的監督、分析和改進、資料庫的重組織和重構造。
建模工具的使用
為加快資料庫設計速度,目前有很多資料庫輔助工具(CASE工具),如Rational公司的Rational Rose,CA公司的Erwin和Bpwin,Sybase公司的PowerDesigner以及Oracle公司的Oracle Designer等。
ERwin主要用來建立資料庫的概念模型和物理模型。它能用圖形化的方式,描述出實體、聯系及實體的屬性。ERwin支持IDEF1X方法。通過使用ERwin建模工具自動生成、更改和分析IDEF1X模型,不僅能得到優秀的業務功能和數據需求模型,而且可以實現從IDEF1X模型到資料庫物理設計的轉變。ERwin工具繪制的模型對應於邏輯模型和物理模型兩種。在邏輯模型中,IDEF1X工具箱可以方便地用圖形化的方式構建和繪制實體聯系及實體的屬性。在物理模型中,ERwin可以定義對應的表、列,並可針對各種資料庫管理系統自動轉換為適當的類型。
設計人員可根據需要選用相應的資料庫設計建模工具。例如需求分析完成之後,設計人員可以使用Erwin畫ER圖,將ER圖轉換為關系數據模型,生成資料庫結構;畫數據流圖,生成應用程序。
二、資料庫設計技巧
1. 設計資料庫之前(需求分析階段)
1) 理解客戶需求,詢問用戶如何看待未來需求變化。讓客戶解釋其需求,而且隨著開發的繼續,還要經常詢問客戶保證其需求仍然在開發的目的之中。
2) 了解企業業務可以在以後的開發階段節約大量的時間。
3) 重視輸入輸出。
在定義資料庫表和欄位需求(輸入)時,首先應檢查現有的或者已經設計出的報表、查詢和視圖(輸出)以決定為了支持這些輸出哪些是必要的表和欄位。
舉例:假如客戶需要一個報表按照郵政編碼排序、分段和求和,你要保證其中包括了單獨的郵政編碼欄位而不要把郵政編碼糅進地址欄位里。
4) 創建數據字典和ER 圖表
ER 圖表和數據字典可以讓任何了解資料庫的人都明確如何從資料庫中獲得數據。ER圖對表明表之間關系很有用,而數據字典則說明了每個欄位的用途以及任何可能存在的別名。對SQL 表達式的文檔化來說這是完全必要的。
5) 定義標準的對象命名規范
資料庫各種對象的命名必須規范。
2. 表和欄位的設計(資料庫邏輯設計)
表設計原則
1) 標准化和規范化
數據的標准化有助於消除資料庫中的數據冗餘。標准化有好幾種形式,但Third Normal Form(3NF)通常被認為在性能、擴展性和數據完整性方面達到了最好平衡。簡單來說,遵守3NF 標準的資料庫的表設計原則是:「One Fact in One Place」即某個表只包括其本身基本的屬性,當不是它們本身所具有的屬性時需進行分解。表之間的關系通過外鍵相連接。它具有以下特點:有一組表專門存放通過鍵連接起來的關聯數據。
舉例:某個存放客戶及其有關定單的3NF 資料庫就可能有兩個表:Customer 和Order。Order 表不包含定單關聯客戶的任何信息,但表內會存放一個鍵值,該鍵指向Customer 表裡包含該客戶信息的那一行。
事實上,為了效率的緣故,對表不進行標准化有時也是必要的。
2) 數據驅動
採用數據驅動而非硬編碼的方式,許多策略變更和維護都會方便得多,大大增強系統的靈活性和擴展性。
舉例,假如用戶界面要訪問外部數據源(文件、XML 文檔、其他資料庫等),不妨把相應的連接和路徑信息存儲在用戶界面支持表裡。還有,如果用戶界面執行工作流之類的任務(發送郵件、列印信箋、修改記錄狀態等),那麼產生工作流的數據也可以存放在資料庫里。角色許可權管理也可以通過數據驅動來完成。事實上,如果過程是數據驅動的,你就可以把相當大的責任推給用戶,由用戶來維護自己的工作流過程。
3) 考慮各種變化
在設計資料庫的時候考慮到哪些數據欄位將來可能會發生變更。
舉例,姓氏就是如此(注意是西方人的姓氏,比如女性結婚後從夫姓等)。所以,在建立系統存儲客戶信息時,在單獨的一個數據表裡存儲姓氏欄位,而且還附加起始日和終止日等欄位,這樣就可以跟蹤這一數據條目的變化。
欄位設計原則
4) 每個表中都應該添加的3 個有用的欄位
•?dRecordCreationDate,在VB 下默認是Now(),而在SQL Server 下默認為GETDATE()
•?sRecordCreator,在SQL Server 下默認為NOT NULL DEFAULT USER
•?nRecordVersion,記錄的版本標記;有助於准確說明記錄中出現null 數據或者丟失數據的原因
5) 對地址和電話採用多個欄位
描述街道地址就短短一行記錄是不夠的。Address_Line1、Address_Line2 和Address_Line3 可以提供更大的靈活性。還有,電話號碼和郵件地址最好擁有自己的數據表,其間具有自身的類型和標記類別。
6) 使用角色實體定義屬於某類別的列
在需要對屬於特定類別或者具有特定角色的事物做定義時,可以用角色實體來創建特定的時間關聯關系,從而可以實現自我文檔化。
舉例:用PERSON 實體和PERSON_TYPE 實體來描述人員。比方說,當John Smith, Engineer 提升為John Smith, Director 乃至最後爬到John Smith, cio 的高位,而所有你要做的不過是改變兩個表PERSON 和PERSON_TYPE 之間關系的鍵值,同時增加一個日期/時間欄位來知道變化是何時發生的。這樣,你的PERSON_TYPE 表就包含了所有PERSON 的可能類型,比如Associate、Engineer、Director、CIO 或者CEO 等。還有個替代辦法就是改變PERSON 記錄來反映新頭銜的變化,不過這樣一來在時間上無法跟蹤個人所處位置的具體時間。
7) 選擇數字類型和文本類型盡量充足
在SQL 中使用smallint 和tinyint 類型要特別小心。比如,假如想看看月銷售總額,總額欄位類型是smallint,那麼,如果總額超過了$32,767 就不能進行計算操作了。
而ID 類型的文本欄位,比如客戶ID 或定單號等等都應該設置得比一般想像更大。假設客戶ID 為10 位數長。那你應該把資料庫表欄位的長度設為12 或者13 個字元長。但這額外占據的空間卻無需將來重構整個資料庫就可以實現資料庫規模的增長了。
8) 增加刪除標記欄位
在表中包含一個「刪除標記」欄位,這樣就可以把行標記為刪除。在關系資料庫里不要單獨刪除某一行;最好採用清除數據程序而且要仔細維護索引整體性。
3. 選擇鍵和索引(資料庫邏輯設計)
鍵選擇原則:
1) 鍵設計4 原則
•?為關聯欄位創建外鍵。
•?所有的鍵都必須唯一。
•?避免使用復合鍵。
•?外鍵總是關聯唯一的鍵欄位。
2) 使用系統生成的主鍵
設計資料庫的時候採用系統生成的鍵作為主鍵,那麼實際控制了資料庫的索引完整性。這樣,資料庫和非人工機制就有效地控制了對存儲數據中每一行的訪問。採用系統生成鍵作為主鍵還有一個優點:當擁有一致的鍵結構時,找到邏輯缺陷很容易。
3) 不要用用戶的鍵(不讓主鍵具有可更新性)
在確定採用什麼欄位作為表的鍵的時候,可一定要小心用戶將要編輯的欄位。通常的情況下不要選擇用戶可編輯的欄位作為鍵。
4) 可選鍵有時可做主鍵
把可選鍵進一步用做主鍵,可以擁有建立強大索引的能力。
索引使用原則:
索引是從資料庫中獲取數據的最高效方式之一。95%的資料庫性能問題都可以採用索引技術得到解決。
1) 邏輯主鍵使用唯一的成組索引,對系統鍵(作為存儲過程)採用唯一的非成組索引,對任何外鍵列採用非成組索引。考慮資料庫的空間有多大,表如何進行訪問,還有這些訪問是否主要用作讀寫。
2) 大多數資料庫都索引自動創建的主鍵欄位,但是可別忘了索引外鍵,它們也是經常使用的鍵,比如運行查詢顯示主表和所有關聯表的某條記錄就用得上。
3) 不要索引memo/note 欄位,不要索引大型欄位(有很多字元),這樣作會讓索引佔用太多的存儲空間。
4) 不要索引常用的小型表
不要為小型數據表設置任何鍵,假如它們經常有插入和刪除操作就更別這樣作了。對這些插入和刪除操作的索引維護可能比掃描表空間消耗更多的時間。
4. 數據完整性設計(資料庫邏輯設計)
1) 完整性實現機制:
實體完整性:主鍵
參照完整性:
父表中刪除數據:級聯刪除;受限刪除;置空值
父表中插入數據:受限插入;遞歸插入
父表中更新數據:級聯更新;受限更新;置空值
DBMS對參照完整性可以有兩種方法實現:外鍵實現機制(約束規則)和觸發器實現機制
用戶定義完整性:
NOT NULL;CHECK;觸發器
2) 用約束而非商務規則強制數據完整性
採用資料庫系統實現數據的完整性。這不但包括通過標准化實現的完整性而且還包括數據的功能性。在寫數據的時候還可以增加觸發器來保證數據的正確性。不要依賴於商務層保證數據完整性;它不能保證表之間(外鍵)的完整性所以不能強加於其他完整性規則之上。
3) 強制指示完整性
在有害數據進入資料庫之前將其剔除。激活資料庫系統的指示完整性特性。這樣可以保持數據的清潔而能迫使開發人員投入更多的時間處理錯誤條件。
4) 使用查找控制數據完整性
控制數據完整性的最佳方式就是限制用戶的選擇。只要有可能都應該提供給用戶一個清晰的價值列表供其選擇。這樣將減少鍵入代碼的錯誤和誤解同時提供數據的一致性。某些公共數據特別適合查找:國家代碼、狀態代碼等。
5) 採用視圖
為了在資料庫和應用程序代碼之間提供另一層抽象,可以為應用程序建立專門的視圖而不必非要應用程序直接訪問數據表。這樣做還等於在處理資料庫變更時給你提供了更多的自由。
5. 其他設計技巧
1) 避免使用觸發器
觸發器的功能通常可以用其他方式實現。在調試程序時觸發器可能成為干擾。假如你確實需要採用觸發器,你最好集中對它文檔化。
2) 使用常用英語(或者其他任何語言)而不要使用編碼
在創建下拉菜單、列表、報表時最好按照英語名排序。假如需要編碼,可以在編碼旁附上用戶知道的英語。
3) 保存常用信息
讓一個表專門存放一般資料庫信息非常有用。在這個表裡存放資料庫當前版本、最近檢查/修復(對Access)、關聯設計文檔的名稱、客戶等信息。這樣可以實現一種簡單機制跟蹤資料庫,當客戶抱怨他們的資料庫沒有達到希望的要求而與你聯系時,這樣做對非客戶機/伺服器環境特別有用。
4) 包含版本機制
在資料庫中引入版本控制機制來確定使用中的資料庫的版本。時間一長,用戶的需求總是會改變的。最終可能會要求修改資料庫結構。把版本信息直接存放到資料庫中更為方便。
5) 編制文檔
對所有的快捷方式、命名規范、限制和函數都要編制文檔。
採用給表、列、觸發器等加註釋的資料庫工具。對開發、支持和跟蹤修改非常有用。
對資料庫文檔化,或者在資料庫自身的內部或者單獨建立文檔。這樣,當過了一年多時間後再回過頭來做第2 個版本,犯錯的機會將大大減少。
6) 測試、測試、反復測試
建立或者修訂資料庫之後,必須用用戶新輸入的數據測試數據欄位。最重要的是,讓用戶進行測試並且同用戶一道保證選擇的數據類型滿足商業要求。測試需要在把新資料庫投入實際服務之前完成。
7) 檢查設計
在開發期間檢查資料庫設計的常用技術是通過其所支持的應用程序原型檢查資料庫。換句話說,針對每一種最終表達數據的原型應用,保證你檢查了數據模型並且查看如何取出數據。
三、資料庫命名規范
1. 實體(表)的命名
1) 表以名詞或名詞短語命名,確定表名是採用復數還是單數形式,此外給表的別名定義簡單規則(比方說,如果表名是一個單詞,別名就取單詞的前4 個字母;如果表名是兩個單詞,就各取兩個單詞的前兩個字母組成4 個字母長的別名;如果表的名字由3 個單片語成,從頭兩個單詞中各取一個然後從最後一個單詞中再取出兩個字母,結果還是組成4 字母長的別名,其餘依次類推)
對工作用表來說,表名可以加上前綴WORK_ 後面附上採用該表的應用程序的名字。在命名過程當中,根據語義拼湊縮寫即可。注意,由於ORCLE會將欄位名稱統一成大寫或者小寫中的一種,所以要求加上下劃線。
舉例:
定義的縮寫 Sales: Sal 銷售;
Order: Ord 訂單;
Detail: Dtl 明細;
則銷售訂單明細表命名為:Sal_Ord_Dtl;
2) 如果表或者是欄位的名稱僅有一個單詞,那麼建議不使用縮寫,而是用完整的單詞。
舉例:
定義的縮寫 Material Ma 物品;
物品表名為:Material, 而不是 Ma.
但是欄位物品編碼則是:Ma_ID;而不是Material_ID
3) 所有的存儲值列表的表前面加上前綴Z
目的是將這些值列表類排序在資料庫最後。
4) 所有的冗餘類的命名(主要是累計表)前面加上前綴X
冗餘類是為了提高資料庫效率,非規范化資料庫的時候加入的欄位或者表
5) 關聯類通過用下劃線連接兩個基本類之後,再加前綴R的方式命名,後面按照字母順序羅列兩個表名或者表名的縮寫。
關聯表用於保存多對多關系。
如果被關聯的表名大於10個字母,必須將原來的表名的進行縮寫。如果沒有其他原因,建議都使用縮寫。
舉例:表Object與自身存在多對多的關系,則保存多對多關系的表命名為:R_Object;
表 Depart和Employee;存在多對多的關系;則關聯表命名為R_Dept_Emp
2. 屬性(列)的命名
1) 採用有意義的列名,表內的列要針對鍵採用一整套設計規則。每一個表都將有一個自動ID作為主健,邏輯上的主健作為第一組候選主健來定義,如果是資料庫自動生成的編碼,統一命名為:ID;如果是自定義的邏輯上的編碼則用縮寫加「ID」的方法命名。如果鍵是數字類型,你可以用_NO 作為後綴;如果是字元類型則可以採用_CODE 後綴。對列名應該採用標準的前綴和後綴。
舉例:銷售訂單的編號欄位命名:Sal_Ord_ID;如果還存在一個資料庫生成的自動編號,則命名為:ID。
2) 所有的屬性加上有關類型的後綴,注意,如果還需要其它的後綴,都放在類型後綴之前。
注: 數據類型是文本的欄位,類型後綴TX可以不寫。有些類型比較明顯的欄位,可以不寫類型後綴。
3) 採用前綴命名
給每個表的列名都採用統一的前綴,那麼在編寫SQL表達式的時候會得到大大的簡化。這樣做也確實有缺點,比如破壞了自動表連接工具的作用,後者把公共列名同某些資料庫聯系起來。
3. 視圖的命名
1) 視圖以V作為前綴,其他命名規則和表的命名類似;
2) 命名應盡量體現各視圖的功能。
4. 觸發器的命名
觸發器以TR作為前綴,觸發器名為相應的表名加上後綴,Insert觸發器加'_I',Delete觸發器加'_D',Update觸發器加'_U',如:TR_Customer_I,TR_Customer_D,TR_Customer_U。
5. 存儲過程名
存儲過程應以'UP_'開頭,和系統的存儲過程區分,後續部分主要以動賓形式構成,並用下劃線分割各個組成部分。如增加代理商的帳戶的存儲過程為'UP_Ins_Agent_Account'。
6. 變數名
變數名採用小寫,若屬於片語形式,用下劃線分隔每個單詞,如@my_err_no。
7. 命名中其他注意事項
1) 以上命名都不得超過30個字元的系統限制。變數名的長度限制為29(不包括標識字元@)。
2) 數據對象、變數的命名都採用英文字元,禁止使用中文命名。絕對不要在對象名的字元之間留空格。
3) 小心保留詞,要保證你的欄位名沒有和保留詞、資料庫系統或者常用訪問方法沖突
5) 保持欄位名和類型的一致性,在命名欄位並為其指定數據類型的時候一定要保證一致性。假如數據類型在一個表裡是整數,那在另一個表裡可就別變成字元型了。
⑹ sql個人記賬管理系統 個人記賬管理系統資料庫的設計與實現 描述:設計一個個人記帳系統。實現下列功能: 1
create database 個人記賬
create table 人員
(姓名 char(20) primary key,
地位 char(20),
年齡 smallint,
職業 char(20),
性別 char(2))
create table 項目
(項目編號 char(4) primary key,
項目名稱 char(20) unique,
項目類型 char(10));
create table 支出
(姓名 char(20),
項目編號 char(20),
金額 float(2),
次數 int,
時間 smalldatetime,
primary key(姓名,項目編號));
create table 收入
(姓名 char(20),
項目編號 char(20),
金額 float(2),
次數 int,
時間 smalldatetime,
primary key(姓名,項目編號));
select *
from 人員
select *
from 項目
select *
from 支出
select *
from 收入
select 姓名,項目名稱,金額
from 項目,收入
where (姓名='施曉明' )and (項目名稱='工資' or 項目名稱='提成')
create unique index Fna on 人員("姓名" asc);
create unique index Pid on 項目("項目編號" desc);
insert into 人員
values ('費翔','哥哥',26,'會計','男')
insert into 支出(姓名,項目編號,金額)
values ('費翔','006','410')
update 人員
set 年齡=84
where 姓名='施文祥'
delete
from 支出
where 姓名='費翔' --刪除數據
create view Sub_N
as select 姓名,地位,職業
from 人員
where 姓名='施展'
create view N_Avg(姓名,Avg)
as select 姓名,Avg(金額)
from 收入
group by 姓名
create procere InsertRecord
(@姓名 char(20),
@地位 char(20),
@年齡 smallint,
@職業 char(20),
@性別 char(2))
as
insert into 人員 values(@姓名,@地位,@年齡,@職業,@性別)
create procere QueryProgram
(@項目編號 char(4),
@項目名稱 char(20) output,
@項目類型 char(10) output)
as
select @項目編號=項目編號,@項目名稱=項目名稱,@項目類型=項目名稱
from 項目
where 項目編號=@項目編號
create trigger ChangeDisplay
on 人員
for insert
as
select * from 人員
--創建一個觸發器,當向人員表中插入一條記錄時,自動顯示人員表中的記錄
exec InsertRecord @姓名='施圓圓',@地位='妹妹',@年齡=16,@職業='學生',@性別='女'
⑺ sql語言實驗報告
1>
select
*
from
教師表
where
系別
='cs';
2>
select
姓名,2011-年齡
as
出生日期
from
學生表
3>
select
*
from
學生表
where
年齡<=20
and
系別='cs';
4>
select
*
from
學生表
where
年齡
not
between
18
and
20;
5>
select
姓名,年齡
from
教師表
where
系別
in('cs','is');
6>
select
*
from
教師表
where
姓名
like
'%敏';
7>
select
*
from
選課表
where
先修課
is
null;
8>
select
count(*)
from
教師表
9>
select
avg(成績),max(成績),min(成績)
from
選課表
where
課程號=5;
10>
select
count(*)
from
選課表
group
by
課程號
⑻ SQL設計圖書管理系統
目 錄
圖書管理信息系統的設計和實現
端應用程序的開發兩個方面。對於前者要求建立起數據一致性和完整性強、數據安全性好的資料庫。而對於後者則要求應用程序功能完備,易使用等特點。
本圖書管理信息系統是利用計算機管理信息處理的迅速、准確、可靠且具有強大存儲能力的突出特點,全面提高圖書館的管理水平和工作效率,並以及時、完整的業務經營資料,為圖書館的及時轉換提供一定的支持。本圖書管理系統涵蓋了六個主要的子系統:圖書資料管理、讀者資料管理、借書操作、還書操作、修改密碼和查詢處理,並通過信息的收集、整理、存儲、傳遞將它們有機地結合起來,提高了工作的准確率和效率。
本論文從系統分析、需求分析、概要分析、詳細分析到系統實施、系統運行、系統維護等幾個方面詳細闡述了圖書管理系統的開發過程,記錄了開發過程中的分析依據和設計思路及相關圖表,闡明了主要的設計內容和實施、運行情況,為本系統的使用、升級提供了完備的資料。
本系統開發時間將近四個月,初步完成了圖書管理信息系統的初級版本,系統基本上實現了原定的基本功能,並將在以後進行陸續的改進和完善。
關鍵詞:Delphi;SQL Server 2000;資料庫;圖書管理信息系統
Design And Implementation of The Books Management Information System
Abstract:The books management information system is the typical information management system (MIS), It mainly develops including two respects ,one is setting-up and maintenance of backstage supporter's database . Another is developing the front application program. As to the former demand set up data consistency , integrality strong and data security kind database.require to the latter the function of the application program is complete , Easy to use and so on the characteristic.
This books management information system is using the computer management information processing rapid, accurate, is reliable also has the formidable memory property the prominent characteristic, comprehensively enhances the library the management level and the working efficiency, and take the prompt integrity account executive material, provides the certain support for newer books and reference materials in time of the library. The books management information system has covered six subsystems: The books and reference materials management, the reader material management, taking advantage of the book operation, modify password and also the book operation, inquiry processing, and through the information collection, the reorganization, the memory, the transmission organically unifies them, enhanced the work rate of accuracy and the efficiency.
This thesis from the system analysis, the demand analysis, the outline analysis, the multianalysis to the system implementation, the system movement, the system maintenance and so on several aspects in detail elaborated the books management information system performance history, recorded in the performance history analysis to rest on and to design the mentality and the correlation graph, had expounded the main design content and the implementation, the movement situation, for this system use, the promotion have provided the complete material.
This system is nearly four months construction period, finished the elementary edition of the books administrative system tentatively, the system has basically realized the original basic function, and will carry on improvement and completion successively afterwards.
Keyword: Delphi ; SQL; database; books management information system
前 言
隨著我國經濟的高速發展,人們的物質需求已趨向飽和,而精神上的需求卻日益提高。學習的繁重、工作的壓力、競爭的刺激使人們感到知識的睏乏,渴望進一步的充電。同時當今時代是飛速發展的信息時代。在各行各業中離不開信息處理,正是因此計算機被廣泛應用於信息管理系統的環境。計算機的最大好處在於利用它能夠進行信息管理。管理信息系統是先進的科學技術和現代管理相結合的產物,建立以計算機為主要手段的管理信息系統,已成為現代企業、政府部門等各類組織提高自身素質、實現組織的戰略目標。使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其安全性尤其對於復雜的信息管理,計算機能夠充分發揮它的優越性。計算機進行信息管理與信息管理系統的開發密切相關,系統的開發是系統管理的前提。
為滿足圖書館業務發展的需要,提高競爭能力,我決定利用計算機來提高圖書館管理水平和工作效率。根據圖書館的日常需要,確定系統要實現六個基本功能:圖書資料管理、讀者資料管理、借書操作、還書操作、修改密碼和查詢處理。同時該系統具有強大的查詢功能和可靠性。
目標是努力達到:讀者滿意。圖書館內藏書豐富,品種齊全,但隨著信息處理量的快速增大,工作越來越繁多、要求全面、先進、高效。純辦公軟體無論從准確度還是及時性上都已無法滿足業務的需要。因此,開發一個界面友好,易於操作的圖書館軟體進行自動化處理變得十分重要,本系統開發目的和意義就是為了管理好圖書館信息,使圖書管理工作規范化、系統化、程序化,避免圖書管理的隨意性,提高信息處理的速度和准確性,能夠及時、准確、有效的查詢和修改圖書情況。此圖書管理信息系統以「以人為本」為服務宗旨,提高對讀者的服務質量。
1 Delphi和SQL簡介
1.1 資料庫的介紹
資料庫技術是計算機科學技術中的重要領域,也是應用最廣的技術之一,而且已經成為電子信息系統的重要核心技術。眾所周知,計算機應用從科學計算進入數據處理是一個劃時代的轉折。數據處理是指對各種形式的數據進行收集、存儲、加工和傳播的一系列活動的總和。其目的是從大量的,原始的數據中抽取,推導出對人們有價值的信息經作為行動和決策的依據,是為了藉助計算機科學地保存和管理復雜的,大量的數據以便人們能方便而充分地利用這些寶貴的信息資源。資料庫技術所研究的問題就是如何科學地組織和存儲數據,如何高效地獲取和處理數據。資料庫系統就是當代計算機系統的重要組成部分。
數據處理的中心問題是數據管理,數據管理隨著計算機硬體和軟體的發展而不斷發展,經歷了三個階段:人工管理階段,文件系統階段和資料庫系統階段。資料庫系統具有以下特點:(1)數據結構化。(2)數據的共享性高、冗餘度低、易擴展。(3)數據獨立性高。(4)數據由DBMS統一管理和控制。包括數據的安全性保護,數據的完整性檢查,並發控制以及資料庫備份和恢復[2]。我做的圖書管理系統中主要是用了Delphi和SQL 。
1.2 Delphi的簡介
計算機軟體的開發分為兩個不同的分支,其中一個分支是使用傳統的程序設計語言開發數值控制、數值運算等軟體,圍繞它們的重點是演算法,數據結構以及面向對象技術,這里基本採用Pascal,Basic和C等到高級程序設計語言。另一個分支則是通用的資料庫管理軟體領域即資料庫應用程序的開發。這兩個分支的發展都有極為迅速,但是二者並沒出現混合滲透的跡象。如果使用資料庫語言進行傳統的編程,雖然也能完成相應的功能,但是其編程過程可能極為復雜。反之,如果使用傳統的編程語言進行資料庫編程,通過調用專用的資料庫應用程序介面函數據和過程,可能也會做出比較完善的資料庫管理程序,但做起來大多是極其困難的。而Delphi結合了兩個分支的優點,它結合了傳統的編程語言Object Pascal和資料庫語言的強大功能,既可以用於傳統的演算法編程,又可以用於資料庫編程。特別是Delphi具有強大的資料庫開發功能,利用Delphi的資料庫開發工具,根本不需要編寫任何Object Pascal代碼便可以創建一個一般的資料庫應用。
Delphi是面向對象的開發工具,它是目前開發客戶/伺服器資料庫應用程序的強有力的工具。Delphi目前有兩個版本:標准版本和客戶/伺服器版本。標准版本包含一個Borland Database Engine的局部拷貝,它允許用戶創建能訪問Dbase,Paradox 和 Local Inter Base伺服器的資料庫應用,它還支持具有ODBC(Open Database Connecticity)介面的資料庫。客戶/伺服器版本包括Borland SQL Link,它能直接訪問Oracle,SyBase 和Microsoft SQL Server,Informix等多種資料庫伺服器。
Delphi可以訪問多種資料庫管理系統的資料庫,憑借窗體和報表,BDE(Borland Database Engine)可以訪問Paradox,dbase,本地Inter Base伺服器的資料庫,也可以訪問遠程資料庫伺服器的
2 系統分析
2.1 系統調查
系統調查的主要內容有:系統的基本情況、系統中信息處理的狀況、系統的資源情況及系統的各類人員對信息系統的態度。同時我了解到圖書館的使用人員有(1)系統管理員:維護整個系統的正常運行、及時更新系統,給每個新用戶建立讀者信息,給每個注銷用戶刪除相應的讀者信息。(2)圖書管理員:負責給同學辦理借書、還書、修改圖書基本信息和圖書流通狀態。(3)讀者:包括學生用戶、老師用戶和外界人士。
圖書館的組織機構設置如圖1所示。
圖1圖書館的組織結構
系統中信息處理狀況:
通過對原有系統數據流程的分析,可以發現這種模式存在著一些不合理之處,完全可以改進,使工作效率提高,減少信息迂迴。
圖書館現行系統存在的問題:第一,日常管理工作缺乏規范性,隨意性很大,對人的經驗水平有很大的依賴性,因此具體操作往往因人而異;第二,資料多次手工處理,如逾期通知等,出錯率高,完全可以用資料庫檢索自動生成。第三,數據重復率高,有些地方人員多次使用相同數據,有些信息完全可以歸類,第四,缺乏統計工作。
所以完全可以通過建立一套完整的圖書管理信息系統,來對信息進行查詢、修改、統計、檢索等日常管理工作,盡量減少的人員介入和數據冗餘,以簡練實用為基礎,實現信息管理計算機化提高工作效率和信息化水平。
2.2 可行性分析
可行性分析對系統的開發至關重要,可以大幅減少不必要的損失,保證系統開發的順利進行。因此要對系統進行技術可行性、經濟可行性、操作可行性三方面的系統可行性分析:
2.2.1 技術可行性
近幾年來計算機技術發展異常迅猛,高速度大容量的電腦已成為許多學校里日常工作必不可少的設備,隨著辦公自動化的軟體不斷涌現,微機的普及為該系統的開發奠定了堅實的基礎。
2.2.2 經濟可行性
一方面,系統的開發不需要額外增加設備購置費、軟體開發費、管理和維護費用。另一方面,系統的開發可以較好地解決圖書館因日常事務繁雜而造成的處理效率低,出錯率偏高的局面,並可以及時了解各項日常事務的進展情況,為及時調整庫存資料提供可靠的數據支持,從而明確工作目標,同時還可以減少人工勞動、提高工作效率、增加書本流通量。
2.2.3 操作可行性
計算機以強大的信息處理能力作為人類腦力勞動的有利助手登上歷史舞台後,已滲透到社會生活的各個領域,使現代社會組織、特別是企業,學校的信息處理能力適應現代化管理的要求,且系統逐步從單項事務信息處理系統迅速向綜合服務(決策支持系統)的管理信息系統發展。本系統使用界面良好,易於操作。圖書館擁有一批較高素質的員工,只需了解相關知識,就可熟練操作本系統了。
通過以上分析,圖書館管理信息系統的開發在經濟上、技術上、操作上都是可行的。
2.3 系統的總目標
圖書館管理信息系統的總目標是按照管理信息系統的管理和開發方法,採用先進的信息技術和手段,支持並規范圖書和讀者資料的管理、借書、還書、修改密碼、查詢書本或學生等操作的全過程,並加強上述過程中各種信息資源的管理和應用,提高各部門管理工作的現代化水平,實現各部門信息的准確、及時處理和溝通及共享,為圖書館對庫存資料的決策提供有利的支持和反饋信息,以實現圖書館的總體目標。
2.4 具體目標
(1)每年開學,新生報到的時候,圖書館系統管理員要給每一位新生的信息建立個人檔案,辦理圖書借閱證。學生的個人檔案包括學生的學號、姓名、性別、班級、年級、所屬專業、電話號碼。
(2)學生畢業的時候,圖書館系統管理員要及時對每位學生的信息進行刪除。
(3)每次新進圖書的時候,圖書管理員要對每本圖書的信息進行管理和錄入,以方便讀者的借閱。圖書的基本信息有:圖書索引號、圖書名、作者、出版社、出版日期和圖書的使用狀態。
(4)當圖書被讀者借閱的時候,圖書管理員要改變圖書的使用狀態,不再允許借閱,但是允許預約,而且每本書只允許被一個讀者借閱,也只能被一個讀者預約。
(5)當學生借閱的圖書延期的時候,圖書管理員要及時通知學生歸還圖書,並對其進行相應的處罰。學生可以在圖書未超期的情況下辦理續借。
(6)學生可以在圖書管理系統中查詢自己的借閱情況。
(7)當圖書被損壞或圖書出館時,圖書管理員要及時修改相應的圖書信息。
(8)系統還應該提供強大的數據統計,查詢等功能。
(9)系統應充許外界人士通過規定的步驟注冊成為新用戶,並享有一定的權利。
(10)系統應該有很好的可擴展性。
3 需求分析
需求分析階段的根本任務是要明確圖書館在決策和日常事務處理上的信息需求,以便提出整個系統的總體方案。在需求分析中,主要採用流程圖和數據字典來描述。
3.1 事務流程圖
通過對圖書館的多次調查,大致了解了圖書館的日常的管理事務流程。每日處理的工作如圖2所示。
圖2圖書館的事務圖
(1) 圖書資料的管理
圖書管理員將采購的圖書入庫分類處理,同時建立相關的圖書資料信息,如果該書已有,則修改現有書本數等於原有書本數加新增書本數。如有圖書損壞及罰款處理,也修改圖書資料信息。如果圖書出館,則刪除相關的圖書資料信息。
(2) 讀者資料管理
每年新生入校的時候,系統管理員要為每一個學生辦理相應的圖書借閱許可證,學生填寫登記表包括學生學號、姓名、性別、年級、班級、專業名稱、電話號碼等基本信息。核對無誤後交由系統管理員辦理學生借閱證,如果讀者更改任何個人信息,則應由學生寫出書面申請,由系統管理員在相應的讀者基本信息中進行修改。如果學生要離開學校,則審核該讀者是否有逾期書籍和損壞,如無,則辦理撤消業務,同時在讀者資料庫中刪除該讀者。最後給讀者合格注銷通知。對於教師用戶也是一樣的處理過程。
(3) 借書操作
讀者把借閱證及想要借的圖書交給圖書管理員,圖書管理員進行審核,如該讀者是否有過期未還的圖書,是否借閱圖書已超過五本或未交清罰款,有上述情況之一則通知該讀者借閱不成功。否則借閱成功,圖書交給讀者。同時圖書管理員修改圖書、讀者及圖書流通信息表。如讀者逾期則可電話聯系。如讀者發現該圖書已借出,則只可在圖書資料庫中進行預約。一本書同一時間只能被一個讀者預約。如讀者續借,則延長讀者應還書日期。讀者只可在該書本尚未超期的情況下才可以進行續借,否則續借不成功。
(4) 還書操作
讀者把借閱證及要還圖書交給圖書管理員,由他進行審核,如該圖書有逾期或破損,則通知該讀者按比例罰款。否則圖書交圖書管理員放回書庫。並修改圖書、讀者借書信息表。讀者遺失書本則給予原價五倍賠償。
(5) 查詢處理
讀者可以到圖書館內的電腦上查詢自己的借書信息表,查詢圖書是否逾期,是否可以進行續借,也可以查找自己要借的圖書是否在館,以及近期圖書館的動態和公告。圖書管理員可在圖書到期前一天列印逾期清單,電話聯系讀者,以方便讀者及時還書,加快書本流通。
(6) 修改密碼
為了方便管理,圖書館系統管理員會給每一個新注冊的用戶一個初始密碼,讀者用初始密碼首次登錄系統後,應及時修改自己的密碼,以保護自己的權利。或在使用的過程中通過修改密碼來防
D1 庫存清單
圖7 歸還圖書的DFD
3.3 數據字典
int 4 f 所在專業代碼
varchar 20 專業名稱
表3圖書基本信息表
欄位名 欄位類型 長度 NULL 欄位意義
bookid varchar 10 f 圖書索引號
bookname varchar 30 f 圖書名稱
Autor char 10 f 作者名字
department Int 4 所在書庫代碼
description char 20 描述
Lend char 1 f 是否借出
appoint char 1 f 是否預約
表4學生基本信息
userid varchar 10 f 用戶編號
username varchar 10 f 用戶名
sdepartment char 30 部門或專業
password varchar 20 f 密碼
Right_1 bit 1 f 查詢權
Ringht_2 bit 1 f 管理權
表6庫存信息表
欄位名 欄位類型 長度 NULL 欄位意義
department int 4 f 書庫代碼
description varchar 20 書庫名稱
3.4 數據項的頁碼設計
(1)對讀者編號,為了便於查找採用層次碼。
如:02(年級,即入學年份) 09(學院代碼) 1(專業代碼) 279
[注]: 學院代碼如:商學院---01 信息學院---02 土木學院---03
外語學院---04 藝術學院---05 計算機科學與工程學院---09
計算機科學與工程學院的專業代碼如:計算機科學與技術專業---1
網路專業---2
(2)圖書編號,為了便於得到有關信息採用層次碼。
如:TP(類別) 3111(編號) 01(內部編號)
[注]: 內部編號:同時采購了五本相同的圖書,在類別和編號相同的時候,用01,02,03,04,05分別代表這五本相同的圖書。
編號: 計算機應用基礎---3111 計算機網路---3112
計算機組成原理---3113 資料庫---3114
類別: 計算機類--- TP 文學類--- I 藝術類---V
數理化---O 英語類---H
4 概要設計
4.1 總體設計
系統功能結構如圖8所示。
圖8系統功能結構示意圖
4.2 局部 E_R圖
學生基本信息,圖書基本信息,用戶信息和讀者借書情況表的局部E-R圖如圖9至圖12所示。
圖10書本基本信息表
圖12 讀者借書信息表
4.3 總體E-R圖
本圖書管理信息系統的總體E-R圖如圖13所示。
圖13 總體E-R圖
部分聯系的屬性如下:
1.借閱{借閱編號、圖書索引號、借閱證號、借書日期、還書日期}
2.預訂{預訂編號、圖書索引號、借閱證號、預訂日期}
3.采購{采購編號、圖書索引號、采購價格、采購數量}
4.報廢{圖書索引號,報廢時間,報廢原因}
4.4 E_R圖向關系模型的轉化
E_R圖向關系模型的轉化要解決的問題是如何將實體和實體之間的聯系轉化為關系模式,如何
圖15 修改圖書記錄
圖16 修改學生記錄
圖17 查詢/借閱/預約圖書
圖18 查詢/歸還已借閱圖書
5.2 建立索引和嵌套查詢
索引是資料庫中一常用而重要的資料庫對象集。索引改進了資料庫的性能和可訪問性,可以用來排序和快速訪問數據。大大改善了資料庫的性能。下面以本人的圖書管理信息系統中的book表為被借出時不能被預約。
(8) 修改圖書的基本信息
這是圖書管理員的權力,包括添加,刪除和修改圖書信息。當有新添加進來的圖書時,圖書管理員要查看圖書館里是不是已存有這樣的圖書,發現已有庫存時,要修改圖書的數目,否則就加入新的圖書信息。當有舊書或損壞了的圖書要退出的時候,要及時減少相應圖書的數目或是刪除相應的圖書信息。學生借出書或歸還圖書時,要及時地修改圖書流通信息表。
(9) 修改學生用戶的基本信息
系統管理員在這里添加,刪除和修改學生和教師的基本信息。當有新生入校時,根據學生填寫的基本信息表為每個新生注冊一個用戶名,在校期間如果學生基本信息有變化可以交系統管理員審核後修改相應的信息,畢業或注銷用戶時,管理員要及時刪除相應的記錄。教師的處理情況相同。
(10)初始化系統
當遇到不可恢復的重大意外損傷時系統管理員可以用它來重新恢復圖書館的基本信息,保證圖書管理系統正常工作。除了用戶信息表恢復初始值外,其它的數據信息都會被清零。
(11) 公告欄
系統管理員向所有登錄用戶和外界人士及時發布圖書館最新消息的地方,包括注意事項等。
(12) 意見箱
所有登錄用戶可以在這里向系統管理員和圖書管理員提出對圖書管理的寶貴意見,方便管理員及時採取相應措施修改管理方案,方便用戶以後的使用,提高整個系統的性能。
本系統主要提供圖書管理,學生用戶管理和系統管理。以下列出了圖書管理信息系統主模塊,系統總體結構、圖書/讀者功能模塊和圖書流通功能模塊的示意圖如圖19至圖21所示。
圖19系統總體結構
圖20圖書/讀者功能模塊
圖21圖書流通功能模塊
5.5 界面設計及功能實現
5.5.1 登錄界面設計及功能的實現
圖22 登錄界面
⑼ sql是什麼
SQL是英文Structured Query Language的縮寫形式,它的意思是表示結構化查詢語言。SQL語言的主要功能就是同各種資料庫建立聯系。此外,SQL是被當成為關系型資料庫管理系統的標准語言。其是由Microsoft開發和推廣的關系資料庫管理系統。
(9)sql系統背景及需求擴展閱讀:
SQL Server的特點如下:
1、具有真正的客戶機和伺服器體系結構。
2、圖形化用戶界面,使系統管理和資料庫管理更加直觀。
3、豐富的編程介面工具,為用戶進行程序設計提供了更大的選擇餘地。
4、其完全集成,利用了NT的許多功能,如發送和接受消息等。
⑽ sql教材管理系統的需求分析
erp資源管理這本書上有相應的內容,你完全可以按照書本上的例子,修改一下就可以!這個不是很難!
你是畢業設計吧?