建立一个简单的数据库系统.docx
《建立一个简单的数据库系统.docx》由会员分享,可在线阅读,更多相关《建立一个简单的数据库系统.docx(9页珍藏版)》请在冰豆网上搜索。
建立一个简单的数据库系统
《信息系统与数据库技术》技术实践
1.系统目标
本系统支持图书订购,图书查询,图书折扣等功能,并具有信息管理,事务处理和决策支持的系统特点。
2.需求分析
2.1业务需求
网上书店主要有2类角色:
客户和店长。
各自业务如下:
客户能图书查询、浏览(包括浏览本书信息和相关图书列表),查看个人客户信息。
店员能维护图书基本信息、包括增、删、改等;图书折扣管理;图书信息汇总。
2.2数据处理需求
系统涉及的数据源有图书数据,客户数据,订书数据等表单。
2.3系统功能结构图(如图1)
图1:
网上书店系统功能结构图
3.数据库设计
3.1数据库概念设计
系统主要有两个实体:
客户和图书,它们通过“订购”活动连接在一起,分析定义各实体的属性,建立实体联系模型的E-R图如图2所示。
图2:
网上书店的E-R
3.2数据库逻辑设计
3.2.1将数据库的概念模式图转化为以下2个模式:
客户(客户编号,姓名,年龄,性别,电话,职业)
图书(图书编号,书名,作者,价格)
3.2.2数据库物理设计
1.下面给出SQLServer下的网上书店数据库物理设计的关系模型设计、完整性约束设计和索引选择。
2.Customer客户表:
存储客户基本信息,如图3。
字段名称
字段说明
类型定义
属性限定
索引
关系(外键)
CustomerCode
客户号
Char(8)
PrimaryKey
主索引
Name
客户姓名
Varchar(16)
NotNull
√
Sex
性别
Char
(2)
NotNull
"男"或"女"
Job
职业
Char(12)
NotNull
Age
年龄
Char(10)
NotNull
Telephone
联系电话
Varchar(40)
图3:
Customer客户表
3.Book图书表:
存储图书基本情况,如图4。
字段名称
字段说明
类型定义
属性限定
索引
关系(外键)
BookCode
书号
Char(8)
PrimaryKey
主索引
BookName
书名
Varchar(60)
NotNull
√
Author
作者
Char(20)
NotNull
BookSort
图书类别
Char(8)
√
Price
价格
Numeric(4,1)
NotNull
Discount
折扣
Numeric(2,1)
NotNullDefault1
图4:
Book图书表
3.2.3数据库关系图(如图5)
图5
3.2.4数据库应用对象设计
充分利用SQLServer所提供的数据库应用对象支持应用程序的开发,在数据库应用程序中使用存储过程可以简化客户端程序,提供系统运行效率,并且减少网络信息传输量。
视图建立在SQLServer服务器端,可以简化客户端程序和提高访问安全性。
视图设计:
1.视图—图书信息汇总及图书信息查询
适用于图书信息查询,其视图的结构如图6。
视图的定义语句如下:
PublicClassForm3
PublicmybindAsBindingManagerBase
PrivateSubForm3_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
Me.BookTableAdapter.Fill(Me.购书管理_DataDataSet.Book)
mybind=BindingContext(DataSet11,"Book")
mybind.Position=0
mybind.Position=mybind.Position-1
mybind.Position=mybind.Position+1
mybind.Position=mybind.Count-1
SqlDataAdapter1.Fill(DataSet11,"Book")
mybind=BindingContext(DataSet11,"Book")
DataGrid1.DataSource=DataSet11.Book
EndSub
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
mybind.Position=0
DataGrid1.CurrentRowIndex=mybind.Position
EndSub
PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click
mybind.Position=mybind.Position-1
DataGrid1.CurrentRowIndex=mybind.Position
EndSub
PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click
mybind.Position=mybind.Position+1
DataGrid1.CurrentRowIndex=mybind.Position
EndSub
PrivateSubButton4_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton4.Click
mybind.Position=mybind.Count-1
DataGrid1.CurrentRowIndex=mybind.Position
EndSub
PrivateSubDataGrid1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesDataGrid1.Click
mybind.Position=DataGrid1.CurrentRowIndex
EndSub
PrivateSubButton6_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton6.Click
mybind.AddNew()
EndSub
PrivateSubButton5_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton5.Click
mybind.RemoveAt(mybind.Position)
EndSub
EndClass
图6
2.视图—客户信息查询
适用于客户信息查询,其视图的结构如图7。
视图的定义语句如下:
PublicClassForm4
PrivateSubForm4_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
Me.CustomerTableAdapter.Fill(Me.购书管理_DataDataSet.Customer)
EndSub
EndClass
图7
3.店员资料查询
适用于店员信息查询,能维护图书基本信息、包括增、删、改等。
其视图的结构如图8。
视图的定义语句如下:
PublicClassForm6
PrivateSubForm6_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
Me.AdmiterTableAdapter.Fill(Me.购书管理_DataDataSet.Admiter)
EndSub
EndClass
图8
4.图书信息游览
适用于浏览(包括浏览本书信息和相关图书列表)。
其视图的结构如图9。
视图的定义语句如下:
PublicClassForm7
PrivateSubForm7_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
Me.AboutBookTableAdapter.Fill(Me.购书管理_DataDataSet.AboutBook)
EndSub
EndClass
图9
5.折扣查询
适用于折扣查询。
其视图的结构如图10。
视图的定义语句如下:
PublicClassForm5
PublicmybindAsBindingManagerBase
PrivateSubForm5_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
Me.CountTableAdapter.Fill(Me.购书管理_DataDataSet.Count)
mybind=BindingContext(DataSet11,"Count")
mybind.Position=0
mybind.Position=mybind.Position-1
mybind.Position=mybind.Position+1
SqlDataAdapter1.Fill(DataSet11,"Count")
mybind=BindingContext(DataSet11,"Count")
DataGrid1.DataSource=DataSet11.Count
EndSub
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
mybind.Position=mybind.Position-1
DataGrid1.CurrentRowIndex=mybind.Position
EndSub
PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click
mybind.Position=mybind.Position+1
DataGrid1.CurrentRowIndex=mybind.Position
EndSub
EndClass
图10
3.2.5数据库维护维护设计
用户访问安全。
用户登录界面(即进行身份验证,用户根据权限使用不同的功能)。
4.系统开发设计
1)子系统设计:
本系统包含2个子系统。
即面向客户的订书系统及面向店员的系统。
2)界面设计要求:
以菜单集成各功能窗口。
各窗口界面整齐美观,恰当地使用各种窗体控件,便于用户使用。
有用户登录界面(即进行身份验证,用户根据权限使用不同的功能)。
3)程序设计注意事项:
1.注意输入有效性检查,即用程序检验用户输入的数据是否符合数据类型或格式需求,如果不合适,提醒其重新输入,从而保证与数据库的正确交互以及保证数据库信息的有效性。
2.全局变量使用:
因为系统中含有多个窗体和模块文件,为了数据处理需要,可以使用一些全局变量,这样可以简化程序,减少代码量,简化提高系统效率,可以将全局变量放在模块文件中。
3.过程和函数的使用:
将一些具有独立功能的程序段编写为过程或函数,这样不仅使程序结构模块化,而且可以通过过程或函数多次调用共享代码。
4.存储过程建立在SQLServer服务器端,在数据库应用程序中使用存储过程可以简化客户端程序,提供系统运行效率,并且减少网络信息传输量。
5.视图建立在SQLServer服务器端,可以简化客户端程序和提高访问安全性。
5.课程设计总结
设计的完成过程,对我来说,也是学习新知识,和使用旧知识的过程。
信息系统数据库技术中学到的数据流程图,数据库技术,SQLServer,以及VisualBasic程序设计基础等等理论知识,都得到了应用。
设计网上书店使我接触了数据库,对它有了切身的实践体会,但是关于它,我仍有许多东西需要在以后的时间里继续学习。
由于这是我第一次独立完成系统开发,其中有很多不足之处,还有些功能模块有待实现,但是我仍感到从中获益匪浅。
WelcomeTo
Download!
!
!
欢迎您的下载,资料仅供参考!