资源描述
数据库系统和技术课程设计
设计说明书及课程设计心得体会
课题: 汽车销售管理系统
学院: 土木工程学院
所在院系:交通运输专业
班级: 交运C101
小组组员: 106873冀星月
106888刘玉飞
106897姚叶飞
097082甄兴
小组组长:冀星月
指导老师:王小芳
6月18日
目 录
一、 需求分析……………………1
二、 概要设计……………………2
三、数据库设计…………………3
四、安全性设计…………………5
五、小 结………………………14
六、谢 辞………………………14
七、参考文件……………………14
一、需求分析
需求分析简单地说就是分析用户要求。需求分析是设计该轿车销售系统数据库起点,即该阶段任务是经过具体调查该销售企业,充足了解原系统工作概况,明确用户多种需求,然后在此基础上确定新系统功效。
调查关键是数据和处理,经过调查、搜集和分析,取得用户对数据库以下要求:
信息要求(厂商、用户、用户、职员、出库、入库等信息),
处理要求(对上述信息查询、修改、添加和删除),
安全性和完整性要求(需要用户名和密码才能进入系统,而且对于不一样用户有不一样操作权限)
需求分析结果以下:
汽车销售管理系统
进货管理
销售管理
收益统计
车辆销售
车辆入库
车辆采购
用户信息
进销存统计
基础信息管理
厂商信息
车型信息
仓库管理
库存车辆
仓库明细
二、概要设计
本阶段关键任务是将需求分析得到用户需求抽象为信息结构结构(即概念模型)
设计概念结构通常有四类方法:自顶向下、自底向上、逐步扩张和混合策略。我在这里采取自底向上方法。
概念设计结果以下:
(某企业轿车销售管理系统基础E-R图)
三、数据库设计
1.E-R图向关系模型转换
由概念设计E-R图可得通常关系模型以下
发货单(货单号,细节号,产品号,用户号,数量,日期,金额,折扣)
收款单(用户号,定单号,收据号,收款金额,收款日期)
定单(定单号,细节号,产品号,厂商号,数量,日期,金额)
付款(厂商号,定单号,发票号,支付金额,支付日期)
职员(职员号,姓名,性别,部门,职务,电话)
产品(产品号,产品名,厂商号,单价,库存量)
2.数据模型优化
数据库逻辑设计结果不是唯一.为深入提升数据库应用系统性能,我们还应该依据应用需要合适修改,调整数据模型结构,这就是数据模型优化。
(1) 数据依靠举例
R厂商={厂商号->厂商名,厂商号->地址,厂商号->电话}
R用户={用户ID->用户名,,用户ID->用户类型,用户ID->权限,用户类型->权限}
(2) 对数据依靠进行极小化处理,消除冗余联络举例
上述关系中,发货单中存在冗余联络(具体是细节号、折扣等),所以我们能够增加一个发货细节单和折扣规则单。
(3) 根据数据依靠理论对关系模式逐一进行分析,考察是否存在部分函数依靠,传输函数依靠,多值依靠等,确定各关系分别属于第几范式举例
上述关系中,用户表存在非主属性传输依靠,所以用户表属于2NF。我们能够增加一个用户权限表来消除该表中非主属性传输依靠。
3.数据库设计最终止果以下:
(car表)
(car表)
(car表)
1.在关系模式存取方法选择之前,我们首先要对要运行事务进行具体分析,取得选择物理数据库设计所需要参数。同时,还要知道每个事务在各关系上运行频率和性能要求。
(1) 对于数据库查询事务,我们需要得到以下信息:查询关系、查询条件/连接条件包含属性、查询投影属性
A、查询发货厂商名、产品、发货数量(>100)和日期事务
Ⅰ、查询关系:厂商、发货单表、产品表
Ⅱ、查询条件所包含属性:厂商、发货数量、产品号
III、连接条件所包含属性:厂商、产品号
IV、查询投影属性:厂商名、产品名、发货数量、发货日期
(2) 对于数据更新事务,我们需要得到以下信息:被更新关系、每个关系上更新操作条件包含属性、修改操作要改变属性值
B、对发货事务
Ⅰ、被更新关系:发货表
Ⅱ、每个关系上更新操作条件所包含属性:无
III、需要改属性值:货单号、产品号、发货数量
2. 关系模式存取方法选择(即建立哪些存放路径)
C、对car建立索引
对厂商表上厂商、发货表产品号、产品表产品号等建立索引,因为她们常常在查询条件和连接条件中出现
E、对 D、car确定数据存放位置
为提升系统性能,我们依据应用情况将数据易变部分和稳定部分、常常存取部分和存取频率较低部分分开存放。即我们把表和索引放在不一样磁盘上。
E、对car确定系统配置
使用数据库用户数(我们只要设置比较少用户数);
同时打开数据库对象数(用户同时操作对象不超出3个);
内存分配参数(运行exe文件需要5M内存);
缓冲区分配参数(略);
数据库大小(预留500M数据存放空间)等。
F、对car物理结构评价
数据库物理设计过程中需要对时间效率、空间效率、维护代价和多种用户要求进行权衡,其结果产生多个方案。经过我们细致评价,得出上述系统配置作为car数据库物理结构。
四、安全性设计
数据载入和应用程序调试
(1)因为该系统还未投入使用,我们仅象征性地载入少许数据
(生产商表导入试验数据)
【应用程序调试】
数据库应用程序设计应该和数据库设计同时进行,鉴于VB简单易用,我们选择VB作为应用程序设计语言。所以在组织数据入库同时还要调试应用程序。
(VB下界面) (VB下系统主界面)
进入此页面可进行相关汽车基础信息查询,如汽车型号,进价,厂商等。
需要加入控件:
学生信息管理界面
注:进入此页面能够进行汽车信息添加和删除等需要。
注:进入此页面能够销售车辆
注:进入此页面能够进行进货管理
【数据库试运行】
在原有系统数据有一小部分
已输入数据库后,我们就能够开始对数据库系统进行联合调试,即数据库试运行。
这一阶段要实际运行数据库应用程序,实施对数据库多种操作,测试应用程序功效是否满足设计要求。
添加代码以下:
Private Sub Command1_Click()
On Error GoTo ErrorHandle
If Text1 = "" Then
MsgBox "请输入Car_id!", vbInformation
Else
Dim sql As String
sql = "insert into car values('" & Text1 & "','" & Text2 & "','" & Text3 & "'," & Text4 & "," & Text5 & ")"
MsgBox (sql)
cnn.Execute (sql)
Adodc1.Refresh
Text1 = ""
End If
Exit Sub
ErrorHandle:
MsgBox "车辆信息输入有误,请检验Car_id是否反复!"
End Sub
删除代码以下:
Private Sub Command2_Click()
Adodc1.Recordset.Delete
End Sub
退出代码以下:
Private Sub Command3_Click()
Unload Me
End Sub
(汽车信息查询)
代码:
Private Sub Command4_Click()
Dim temp1
temp1 = 0
Dim sql As String
sql = ""
轿车信息管理:查看轿车信息、轿车入库、轿车出库
这里列举轿车入库图示:
型号:大众CC 品牌:大众
价格:300000
测试结果:汽车信息查询完成
经测试,查看轿车信息、轿车出库正确运行
If Text6.Text = "" Then
MsgBox (" 请输入出货名")
Exit Sub
End If
If Text6.Text <> "" Then
If temp1 = 0 Then
sql = sql + "where "
Else
sql = sql + " and "
End If
sql = sql + "Car_id='" + Text6.Text + "'"
temp1 = temp1 + 1
End If
sql = "select Car_id,Car_name,Factory_name,Car_price,Car_num from car " + sql
MsgBox (sql)
Adodc2.RecordSource = sql
Adodc2.Refresh
End Sub
代码以下:
Private Sub Command5_Click()
Dim temp1
temp1 = 0
轿车信息管理:查看汽车销售情况
这里列举轿车入库图示:
型号:大众CC 品牌:大众
销售:1
测试结果:查看销售情况
经测试,查看汽车销售数量、轿车出库正确运行
Dim sql As String
sql = ""
If Text6.Text = "" Then
MsgBox (" 请输入出货名")
Exit Sub
End If
If Text7.Text = "" Then
MsgBox ("请输入出货量")
Exit Sub
End If
sql = "update car set Car_num=Car_num-" & Text7.Text & " where car_id='" & Text6.Text & "'"
MsgBox (sql)
cnn.Execute (sql)
Adodc2.Refresh
End Sub
代码以下:
Private Sub Command6_Click()
Dim temp1
temp1 = 0
轿车信息管理:查看汽车进货情况
这里列举轿车入库图示:
型号:大众CC 品牌:大众
进货:20
测试结果:查看汽车进货数量
经测试,查看汽车进货情况、得悉库存数量
Dim sql As String
sql = ""
If Text9.Text = "" Then
MsgBox ("请输入进货名")
Exit Sub
End If
If Text11.Text = "" Then
MsgBox ("请输入进货量")
Exit Sub
End If
sql = "update car set Car_num=Car_num+" & Text11.Text & " where car_id='" & Text9.Text & "'"
MsgBox (sql)
cnn.Execute (sql)
Adodc3.Refresh
End Sub
【注】其它功效在数据库试运行阶段均运行正确
【数据库运行和维护】
经数据库试运行结束后,该汽车销售系统数据库开发工作就基础完成,即可投入正式运行。不过因为应用环境在不停改变,数据库运行过程中物理存放也会不停改变,对数据库设计进行评价、调整、修改等维护工作是一个长久任务,也是设计工作继续和提升。
(1) 数据库转储和恢复:
SQL Server数据库备份有两种方法,一个是使用BACKUP DATABASE将数据库文件备份出去,另外一个就是直接拷贝数据库文件mdf和日志文件ldf方法。我们用后者方法,首先要先将该数据库从运行数据服务器中止开,然后复制文件至其它磁盘保留。
数据库恢复时,除了要重载数据库外,还要重新运行日志文件。建立日志文件有两种基础方法,即用第几次备份来标识和完全用时间来标识。
①直接开始服务管理器
②打开企业管理器
直接完成即可
(2)数据库安全性、完整性控制:
该轿车销售管理系统,用户必需使用一个登录账号,才能连接到sql server中,而且用户也分两类:管理员和一般用户,而且这两类登陆用户权限也有不一样。假如登录者不属于这两类中一类,则进不了数据库。这一方法将有利于保护数据库以预防不正当使用所造成数据泄漏、更改或破坏。
这里我们建立用户试图,使得一些用户只能访问部分数据。
举例:查看用户名和用户类型,但无密码显示
(建立用户表和权限表视图)
数据库完整性是指数据正确性、有效性和相容性。关键是完整性约束条件:实体完整性、参考完整性和用户自定义完整性。本轿车销售管理系统就这三类完整性确保了数据库完整性。诸如该系统有:
实体完整性: 每个关系主码全部不许可空
参考完整性:
(3)并发控制
假如没有锁定且多个用户同时访问一个数据库,则当她们事务同时使用相同数据时可能会发生问题。并发问题包含:丢失修改、读脏数据、不可反复读。
默认处理方案:SET TRANSACTION ISOLATION LEVEL
[语法]: SET TRANSACTION ISOLATION LEVEL
{ READ COMMITTED //指定在读取数据时控制共享锁以避免脏读
| READ UNCOMMITTED //实施脏读或0级隔离锁定 | REPEATABLE READ //锁定查询中使用全部数据以预防其它用户更新数据
| SERIALIZABLE //在数据集上放置一个范围锁,以预防其它用户在事务完成之 前更新数据集 } 五、小结
在本课程设计之前,我只接触过vb,也见过vc,不过没有专门去学它,但我是一个好奇心很强人,因为VB做界面比较简单,况且就一周时间要做完数据库设计和前台软件,却是极难。
和其临渊羡鱼,不如退而结网。这次数据库课程设计给我最大印象就是假如自己有了爱好,就动手去做,困难在你勇气和毅力下是抬不了头。从做这个数据库开始不管碰到什么困难,我全部没有一丝放弃念头。出于对知识渴望,出于对新技术好奇,出于对一切未知求知。我完成了这次数据库课程设计,不过这只是我学习路上驿站,我会继续学习它,语言原来就是相通,just do it!程序语言并不关键,毕竟它仅仅是工具,用好一个工具并不是一件值得为外人道事情,关键是了解学习思想。古语说好:学无止境啊!
六、谢辞
很感激老师给了我们这次动手实践机会,让我有了一个学习,增加见识,开拓视野机会。感谢老师对我指导,也感谢同组者对我帮助。我会以这次课程设计作为对自己激励,继续学习。毕竟学习就是一个just do it过程!
七、参考文件
[1]柴欣 武优西《Visual Basic 程序设计基础》 天津:中国铁道出版社,
[2]柴欣 刘更谦《Visual Basic 程序设计试验教程》 天津:中国铁道出版社,
[3]吴斌 赵有珍《SQL Server应用和提升》 北京:科学出版社,
[4]王道荣《Visual Basic 6数据库处理》北京:中国铁道出版社,
[5]付继彬《SQL Server入门和提升》 北京:清华大学出版社,
[6]龚沛曾《Visual Basic简明教程》 北京:高等教育出版社,
[7]陈明《数据库系统及应用SQL Server》北京:清华大学出版社,
展开阅读全文