當前位置:首頁 » 編程語言 » 設計一個sql系統
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

設計一個sql系統

發布時間: 2023-02-13 22:19:48

Ⅰ SQL Server 資料庫設計

SQL Server 系統資料庫在安裝軟體時自動創建,用於協助系統共同完成對資料庫的操作;也是資料庫運行的基礎;

1,master資料庫

是SQL Server 2012的核心資料庫,如果損壞則資料庫軟體無法運行,主要包含如下主要信息:

1)所有用戶登陸名和用戶ID所屬角色

2)資料庫存儲路徑

3)伺服器中資料庫的名稱和相關信息

4)系統配置設置, SQL Server 初始化信息

2,model資料庫

在創建資料庫時,總是以一套預定義的標准為模板進行創建的。以model資料庫為模板來創建其他資料庫。且model資料庫是tempdb資料庫的基礎。

3,tempdb資料庫

它是一個臨時資料庫,用來存儲用戶建立的臨時表和臨時存儲過程,存儲用戶定義的全局變數值。它存在於SQL Server會話期間,會話結束,則關閉tempdb資料庫,且資料庫丟失。

4,msdb資料庫

用於代理計劃警報和作業

SQL Server 資料庫存儲文件

資料庫文件是由數據文件和事務日誌文件組成。

1,資料庫文件指資料庫中用來存儲資料庫數據和資料庫對象的文件,一個資料庫只能由一個主資料庫文件,擴展名為 .mdf

2, 次資料庫文件包含除主資料庫文件外的所有數據文件,一個資料庫可以沒有次資料庫文件,也可以由多個,擴展名為 .ndf

3, 日誌文件由一系列日誌記錄組成,它記錄了存儲資料庫的更新情況等事務日誌信息,用戶對資料庫進行的插入,刪除,更新都會記錄在日誌文件中。資料庫發生損壞時可根據日誌文件分析出錯原因,或者數據丟失時,使用事務日誌恢復資料庫。每個資料庫至少要有一個日誌文件。

SQL Server 資料庫創建,使用T-SQL語言創建:

使用T-SQL語言刪除資料庫:

SQL Server 資料庫遷移:

方法1:「分離/附加」資料庫,即把資料庫文件(.MDF)和對應的日誌文件(.LDF)拷貝到其它磁碟上作備份,然後把這兩個文件再拷貝到任何需要這個資料庫的系統之中。

分離資料庫就是將某個資料庫從SQL Server資料庫列表中刪除,使其不再被SQL Server管理和使用,但該資料庫的文件(.MDF)和對應的日誌文件(.LDF)完好無損。分離成功後,就可以把該資料庫文件(.MDF)和對應的日誌文件(.LDF)拷貝到其它磁碟中作為備份保存。

分離之前,設置資料庫為單個用戶,並記住該資料庫所在路徑。

「任務」—「分離」

然後分離資料庫頁面選中「更新統計信息」復選框。若「消息」列中沒有顯示存在活動連接,則「狀態」列顯示為「就緒」;否則顯示「未就緒」,此時必須勾選「刪除連接」列的復選框。分離後資源管理器中資料庫消失

將需要附加的資料庫文件和日誌文件拷貝到某個已經創建好的文件夾中。

右擊資料庫對象,並在快捷菜單中選擇「附加」命令,打開「附加資料庫」窗口。

添加—選擇需要附件的資料庫的.MDF文件。「附件為」資料庫名稱可修改。

Ⅱ 如何用SQL建立一個學生信息管理系統資料庫

首先在SQL中利用企業管理器或向導建立一個資料庫,命名為學生管理系統,啟動SQL
Sever服務,運行企業管理器,單擊要創建資料庫的伺服器左邊的加號圖標,展開樹形目錄,在「資料庫」節點上右擊滑鼠,在彈出的快捷菜單中選則「新建資料庫」命令,然後按照提示一步步建立資料庫,不再詳細敘述。假設學生管理系統下有三個表,分別為學生表、課程表、修課表,表的結構分別如下:學生表(student)
(學號(sno)
普通編碼定長字元類型,長度7,主碼,姓名(sname)
普通編碼定長字元類型,長度8,非空,性別(ssex)
統一編碼定長字元類型,長度1,年齡(sage)
微整型,所在系(sdept)
統一編碼可變長字元類型,長度20)課程表(course)
(課程號(cno)
普通編碼定長字元類型,長度6,主碼,課程名(cname)
統一編碼定長字元類型,長度10,非空,學分(credit)
小整型,學期(semester)
小整型)修課表(sc)(學號(sno)
普通編碼定長字元類型,長度7,主碼,外碼課程號(cno)
普通編碼定長字元類型,長度6,主碼,外碼成績(grade)
小整型,修課類別(type)普通編碼定長字元類型,長度4)則創建表的語句分別為:create
table
Student(Sno
char(7)
primary
key,Sname
char(8)
not
null,Ssex
nchar(1),Sage
tinyint,Sdept
nvarchar(20))create
table
Course(Cno
char(6)
primary
key,Cname
nchar(10)
not
null,Credit
smallint,Semester
smallint)create
table
SC(Sno
char(7),Cno
char(6),Grade
smallint,Type
char(4),primary
key(Sno,Cno),Foreign
key(Sno)
References
Student
(Sno),Foreign
key(Cno)
References
Course
(Cno))各表的結構大體如此,如有變化可自行修改。
以上資料庫和表就基本建立好了,然後就可以通過數據導入或SQL語句等向資料庫中添加學生的各項具體數據了。
SQL語言,是結構化查詢語言(Structured
Query
Language)的簡稱。SQL語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。

Ⅲ SQL小型資料庫系統設計

--------------創建資料庫--------------------------
create database bankDB
on primary
(
name = 'bankDB',
filename = 'e:\bank\bankDB.mdf',
size = 3MB,
maxsize = 100MB,
filegrowth = 15%
)
log on
(
name = 'bankDB_log',
filename = 'e:\bank\bankDB_log.ldf',
size = 2MB,
filegrowth = 1MB
)
go
--------------------創建數據表---------------------
use bankDB
gocreate table userInfo
(
customerID int identity(1,1) not null,
customerName varchar(10) not null,
PID char(18) not null,
telphone char(13) not null,
adress varchar(100)
)alter table userInfo
add constraint PK_customerID primary key(customerID)
alter table userInfo
add constraint CK_PID check(PID like '[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' or
PID like '[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]X' or
PID like '[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
alter table userInfo
add constraint CK_telphone check(telphone like '13[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' or telphone like '[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
alter table userInfo
add constraint DF_telphone default('地址不詳') for adress
alter table userInfo
add constraint UQ_PID unique(PID)create table cardInfo
(
cardID char(19) not null,
curType varchar(5) not null,
savingType varchar(6) not null,
openDate datetime not null,
openMoney money not null,
balance money not null,
pass char(6) not null,
IsReportLoss char(2) not null,
customerID int not null
)alter table cardInfo
add constraint FK_customerID foreign key(customerID) references userInfo(customerID)
alter table cardInfo
add constraint PK_cardID primary key(cardID)
alter table cardInfo
add constraint DF_openDate default(getdate()) for openDate
alter table cardInfo
add constraint DF_pass default('888888') for pass
alter table cardInfo
add constraint DF_curType default('RMB') for curType
alter table cardInfo
add constraint CK_openMoney check(openMoney > 1)
alter table cardInfo
add constraint CK_balance check(balance > 1)
alter table cardInfo
add constraint CK_pass check(pass like '[0-9][0-9][0-9][0-9][0-9][0-9]')
alter table cardInfo
add constraint DF_cardID default('1010 3576 ' + convert(varchar(4),convert(int,rand()*10000)) + ' ' +convert(varchar(4),convert(int,rand()*10000))) for cardID
alter table cardInfo
add constraint DF_IsReportLoss default('否') for IsReportLoss
alter table cardInfo
add constraint CK_IsReportLoss check(IsReportLoss like '是' or IsReportLoss like '否')
alter table cardInfo
add constraint CK_savingType check(savingType like '定期' or savingType like '活期' or savingType like '定活期')create table transInfo
(
transDate datetime not null,
cardID char(19) not null,
transType char(4) not null,
transMoney money not null,
remark varchar(100)
)alter table transInfo
add constraint DF_transDate default(getdate()) for transDate
alter table transInfo
add constraint FK_cardID foreign key(cardID) references cardInfo(cardID)
alter table transInfo
add constraint CK_stransType check(transType like '存入' or transType like '支取')
alter table transInfo
add constraint CK_transMoney check(transMoney > 0)go
--------------------創建開戶用戶卡信息視圖---------
create view v_cus
as
select customerName, cardID,curType,savingType,telphone,adress
from cardInfo inner join userInfo on cardInfo.customerID = userInfo.customerID
where datediff(wk,openDate,getdate()) = 0-----------------------修改密碼--------------------
create proc changePWD
@cardID char(19),
@newpwd char(6),
@oldpwd char(6) = '888888'
as
declare @temppwd int
if((select count(*) from cardInfo where cardID = @cardID) = 0)
begin
print '您輸入的卡號不存在!'
return
end
select @temppwd = pass from cardInfo where cardID = @cardID
if(@temppwd = @oldpwd)
begin
update cardInfo set pass = @newpwd where cardID = @cardID
if(@@error = 0)
print '密碼修改成功!'
else
print '密碼修改失敗!'
end
else
print '您輸入的原始密碼不對,不能修改密碼!'----------------------銀行卡掛失-------------------
create proc ReportLoss
@cardID char(19),
@PID char(18)
as
if((select count(*) from cardInfo where cardID = @cardID) = 0)
begin
print '您輸入的卡號不存在!'
return
end
if((select IsReportLoss from cardInfo where cardID = @cardID) = '是')
begin
print '該卡已掛失!'
return
end
if((select PID from userInfo where customerID = (select customerID from cardInfo where cardID = @cardID)) = @PID)
begin
update cardInfo set IsReportLoss = '是' where cardID = @cardID
if(@@error = 0)
print '掛失成功!'
else
print '掛失失敗!'
end
else
begin
print '您輸入的身份證錯誤!不能掛失!'
return
end----------------------取消銀行卡掛失-------------------
create proc CancelReportLoss
@cardID char(19),
@PID char(18)
as
if((select count(*) from cardInfo where cardID = @cardID) = 0)
begin
print '您輸入的卡號不存在!'
return
end
if((select IsReportLoss from cardInfo where cardID = @cardID) = '否')
begin
print '該卡沒有掛失!不能進行此項操作!'
return
end
if((select PID from userInfo where customerID = (select customerID from cardInfo where cardID = @cardID)) = @PID)
begin
update cardInfo set IsReportLoss = '否' where cardID = @cardID
if(@@error = 0)
print '取消掛失成功!'
else
print '取消掛失失敗!'
end
else
begin
print '您輸入的身份證錯誤!不能取消掛失!'
return
end----------------------統計銀行的資金流通余額和盈利結算--------------------create proc StatMoney
as
select ((select sum(transMoney) as 資金流通余額 from transInfo where transType like '存入') - (select sum(transMoney) as 資金流通余額 from transInfo where transType like '支取'))
as 資金流通余額 select ((select sum(transMoney) as 資金流通余額 from transInfo where transType like '存入')*0.008
- (select sum(transMoney) as 資金流通余額 from transInfo where transType like '支取')*0.003)
as 盈利結算 ---------------------查詢本周開戶的卡號,顯示該卡的信息-------------------
create proc SearchNewCus
as
print '本周開戶卡號信息'
select * from v_cus -----------------------查詢本月交易金額最高的卡號-------------------------
create proc SearchHigh
as
select top 1 cardID, sum(transMoney) as 交易金額 from transInfo
group by cardID------------------------------查詢掛失帳號的客戶信息----------------------
create proc SearchLossCus
as
print '掛失帳號客戶信息'
select * from userInfo where customerID = (select customerID from cardInfo where IsReportLoss = '是')--------------------------催款提醒業務------------------------------------
create proc Awoke
as
select telphone, balance, customerName, cardID
from cardInfo inner join userInfo on cardInfo.customerID = userInfo.customerID
where balance < 200-------------------------銀行開戶-----------------------------------------
create proc OpenUser
@curType varchar(5),
@savingType varchar(6),
@openMoney money,
@PID char(18),
@telphone char(13),
@customerName varchar(10)
as
begin tran OpenU
declare @tag int
declare @tempID varchar(10)
set @tag = 0 insert into userInfo (customerName,PID,telphone) values (@customerName, @PID, @telphone)
set @tag = @tag + @@error
if(@tag = 0)
set @tempID = (select customerID from userInfo where PID = @PID)
insert into cardInfo (curType, savingType, openMoney, balance, customerID) values (@curType, @savingType, @openMoney, @openMoney, @tempID)
set @tag = @tag + @@error
if(@tag = 0)
begin
print '開戶成功!'
commit tran
end
else
begin
print '開戶失敗!'
rollback tran
end-----------------------------客戶存款-------------------------------------
create proc SaveMoney
@cardID char(19),
@transMoney money,
@transType char(4) = '存入'
as
if((select IsReportLoss from cardInfo where cardID = @cardID) = '是')
begin
print '該卡已掛失!無法對其進行操作!'
return
end
begin tran Saving
declare @tag int
set @tag = 0 insert into transInfo (cardID, transType, transMoney) values (@cardID, @transType, @transMoney)
set @tag = @tag + @@error
update cardInfo set balance = balance + @transMoney where cardID = @cardID
set @tag = @tag + @@error
if(@tag = 0)
begin
print '存款成功!'
commit tran
end
else
begin
print '存款失敗!'
rollback tran
end ------------------------------客戶取款------------------------------------
create proc DrawMoney
@cardID char(19),
@transMoney money,
@transType char(4) = '支取'
as
if((select IsReportLoss from cardInfo where cardID = @cardID) = '是')
begin
print '該卡已掛失!無法對其進行操作!'
return
end
begin tran Drawing
declare @tag int
set @tag = 0 insert into transInfo (cardID, transType, transMoney) values (@cardID, @transType, @transMoney)
set @tag = @tag + @@error
update cardInfo set balance = balance - @transMoney where cardID = @cardID
set @tag = @tag + @@error
if(@tag = 0)
begin
print '取款成功!'
commit tran
end
else
begin
print '取款失敗!'
rollback tran
end----------------------------轉帳------------------------------------------
create proc Transfer
@cardID_out char(19),
@cardID_in char(19),
@tranMoney money
as
if((select count(*) from cardInfo where cardID = @cardID_out or cardID = @cardID_in) <> 2)
begin
print '請確認兩張卡是否都存在!'
return
end
if((select IsReportLoss from cardInfo where cardID = @cardID_out) = '是')
begin
print @cardID_out + '該卡已掛失!無法對其進行操作!'
return
end
if((select IsReportLoss from cardInfo where cardID = @cardID_in) = '是')
begin
print @cardID_in + '該卡已掛失!無法對其進行操作!'
return
end
begin tran TransMoney
declare @tag int
set @tag = 0 update cardInfo set balance = balance - @tranMoney where cardID = @cardID_out
set @tag = @tag + @@error
update cardInfo set balance = balance + @tranMoney where cardID = @cardID_in
set @tag = @tag + @@error
if(@tag = 0)
begin
print '轉帳成功!'
commit tran
end
else
begin
print '轉帳失敗!'
rollback tran
end

Ⅳ SQL倉儲管理系統的【設計思路】

可以有這幾個功能模塊:登錄、入庫、出庫、查詢統計、系統維護。
1、登錄:用戶名、密碼,獲取用戶的許可權。
2、入庫:登記入庫情況(品名、數量、單價、日期、審核人...)、列印入庫單
3、出庫:登記出庫情況(品名、數量、單價、日期、審核人...)、列印出庫單
4、查詢統計:品名、數量、日期、審核人,列印輸出報表
5、系統維護:用戶管理、物品代碼管理等等。

Ⅳ 如何用SQL建立一個學生信息管理系統資料庫

首先在SQL中利用企業管理器或向導建立一個資料庫,命名為學生管理系統,啟動SQL
Sever服務,運行企業管理器,單擊要創建資料庫的伺服器左邊的加號圖標,展開樹形目錄,在「資料庫」節點上右擊滑鼠,在彈出的快捷菜單中選則「新建資料庫」命令,然後按照提示一步步建立資料庫,不再詳細敘述。假設學生管理系統下有三個表,分別為學生表、課程表、修課表,表的結構分別如下:學生表(student)
(學號(sno)
普通編碼定長字元類型,長度7,主碼,姓名(sname)
普通編碼定長字元類型,長度8,非空,性別(ssex)
統一編碼定長字元類型,長度1,年齡(sage)
微整型,所在系(sdept)
統一編碼可變長字元類型,長度20)課程表(course)
(課程號(cno)
普通編碼定長字元類型,長度6,主碼,課程名(cname)
統一編碼定長字元類型,長度10,非空,學分(credit)
小整型,學期(semester)
小整型)修課表(sc)(學號(sno)
普通編碼定長字元類型,長度7,主碼,外碼課程號(cno)
普通編碼定長字元類型,長度6,主碼,外碼成績(grade)
小整型,修課類別(type)普通編碼定長字元類型,長度4)則創建表的語句分別為:create
table
Student(Sno
char(7)
primary
key,Sname
char(8)
not
null,Ssex
nchar(1),Sage
tinyint,Sdept
nvarchar(20))create
table
Course(Cno
char(6)
primary
key,Cname
nchar(10)
not
null,Credit
smallint,Semester
smallint)create
table
SC(Sno
char(7),Cno
char(6),Grade
smallint,Type
char(4),primary
key(Sno,Cno),Foreign
key(Sno)
References
Student
(Sno),Foreign
key(Cno)
References
Course
(Cno))各表的結構大體如此,如有變化可自行修改。
以上資料庫和表就基本建立好了,然後就可以通過數據導入或SQL語句等向資料庫中添加學生的各項具體數據了。
SQL語言,是結構化查詢語言(Structured
Query
Language)的簡稱。SQL語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。

Ⅵ 用SQL設計圖書館信息系統

CREATE TABLE books (
book_id int,
book_name varchar(60),
publisher varchar(60),
author varchar(60),
in_time datatime);

CREATE TABLE reader (
p_id int,
p_name varchar(60),
p_no varchar(60),
p_sex char(1),
is_return char(1),
p_money number(10,2));

CREATE TABLE b_infor (
b_id int,
book_id int,
p_id int,
b_time datetime,
n_time datetime,
is_returned char(1));

CREATE TABLE r_infor (
r_id int,
book_id int,
r_time datetime,
m_date int,
r_money number(10,2));

1,select * from reader where p_name ='姓名';
2,select p_name from reader where is_return=1;
3,select sum(r_money) from r_infor a,b_infor b
where a.book_id=b.book_id and b.p_id='讀者號';
4,select distinct b.book_name from b_infor a,books b where a.book_id=b.book_id;

Ⅶ 某公司需要做一個SQL人事管理系統,請做一份資料庫的設計

這個系統最終實現的主要功能如下:
員工基本信息部分:主要完成對員工基本信息的添加、修改、刪除、查詢等管理。
員工檔案信息部分:主要完成對員工檔案信息的添加、修改、刪除、查詢等管理。
員工部門信息部分:主要完成對對員工所屬部門的添加、修改、刪除、查詢等管理。
員工工資信息部分:主要完成對員工工資信息的添加、修改、刪除、查詢等管理。
員工保險信息部分:主要完成對員工保障信息的添加、修改、刪除、查詢等管理。
員工合同信息部分:主要完成員工與企業簽訂合同的一系列信息的添加、修改、刪除、查詢管理。

員工配偶信息(工號,配偶姓名, 出生年月,工作單位,電話)的工號參照員工基本信息的工號。
員工學歷信息(工號,員工姓名,學歷,畢業學校,專業,畢業時間,外語情況)的工號參照員工基本信息的工號。
企業工作崗位信息(工號,學歷,部門,職位)的工號參照員工基本信息的工號,部門參照企業部門信息的部門

員工基本信息與員工配偶信息建立關於工號的父子關系。
員工基本信息與員工學歷信息建立關於工號的父子關系。
員工基本信息與企業工作崗位信息建立關於工號的父子關系
。 企業工作崗位信息與員工基本信息建立關於工號的父子關系。
企業工作崗位信息與企業部門信息建立關於部門的父子關系。

採納吧

Ⅷ 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寫一個倉庫管理系統

首先配置SQLSERVER2005:

打開」Microsoft SQL Server Management Studio「 直接用Windows 用戶連接進入,再在「安全性」中的「登錄名」內的「新建登錄名」,你就對應的添好「確定」就可以了。

再在你對應的「資料庫」里「安全性」用戶,把你建的用戶添加進去。

關鍵地方,查看「伺服器 屬性」在 「安全性」選上 「SQL Server 和 Windows 身份驗證模式」點 「確定」系統會提示你重新啟動SQL Server 你「停止」重啟一下就配好了。

接著看C#連接SQL Server2005的代碼語句:

strcon = strcon + @"Data Source=" + strcons[0];
strcon = strcon + "," + strcons[2] + ";";
strcon = strcon + "Network Library=" + strcons[1] + ";";
strcon = strcon + "Initial Catalog=" + strcons[3] + ";";
strcon = strcon + "User ID=" + strcons[4] + ";";
strcon = strcon + "Password=" + strcons[5] + ";";
strcon = strcon + "Persist Security Info=True";

strcons[0] 伺服器名稱,一般添機器的IP
strcons[1]協議DBMSSOCN(為tcp/ip協議)
strcons[2]]埠號,一般為1433
strcons[3] 資料庫名
strcons[4] 用戶名
strcons[5]密碼

埠號也要配置一下:

在控制面板里的服務和應用程序中的SQL Server配置管理中的SQL Server 2005網路配置內的SQL

Server2005的協議TCP/IP默認為已禁用,在它的屬性設置它的埠號為1433 「確定」 啟動。