建立一个简单的数据库系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《信息系统与数据库技术》技术实践
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.下面给出SQL Server下的网上书店数据库物理设计的关系模型设计、完整性约束设计和索引选择。
2. Customer客户表:存储客户基本信息,如图3。
字段名称字段说明类型定义属性限定索引关系(外键)CustomerCode 客户号Char(8) Primary Key 主索引
Name 客户姓名Varchar (16) Not Null √
Sex 性别Char (2) Not Null
"男"或"女"
Job 职业Char(12) Not Null
Age 年龄Char (10) Not Null
Telephone 联系电话Varchar (40)
3. Book图书表:存储图书基本情况,如图4。
字段名称字段说明类型定义属性限定索引关系(外键)
BookCode 书号Char(8) Primary Key 主索引
BookName 书名Varchar(60) Not Null √
Author 作者Char(20) Not Null
BookSort 图书类别Char(8) √
Price 价格Numeric(4,1) Not Null
Discount 折扣Numeric(2,1) Not Null
Default 1
图4:Book图书表
3.2.3数据库关系图(如图5)
图5
3.2.4数据库应用对象设计
充分利用SQL Server所提供的数据库应用对象支持应用程序的开发,在数据库应用程序中使用存储过程可以简化客户端程序,提供系统运行效率,并且减少网络信息传输量。视图建立在SQL Server服务器端,可以简化客户端程序和提高访问安全性。
视图设计:
1.视图—图书信息汇总及图书信息查询
适用于图书信息查询,其视图的结构如图6。视图的定义语句如下:
Public Class Form3
Public mybind As BindingManagerBase
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.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
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
mybind.Position = 0
DataGrid1.CurrentRowIndex = mybind.Position
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
mybind.Position = mybind.Position - 1
DataGrid1.CurrentRowIndex = mybind.Position
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
mybind.Position = mybind.Position + 1
DataGrid1.CurrentRowIndex = mybind.Position
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
mybind.Position = mybind.Count - 1
DataGrid1.CurrentRowIndex = mybind.Position
End Sub
Private Sub DataGrid1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.Click
mybind.Position = DataGrid1.CurrentRowIndex
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
mybind.AddNew()
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
mybind.RemoveAt(mybind.Position)
End Sub
End Class