数据库设计完整流程图.docx

上传人:b****0 文档编号:25744224 上传时间:2023-06-12 格式:DOCX 页数:63 大小:1.55MB
下载 相关 举报
数据库设计完整流程图.docx_第1页
第1页 / 共63页
数据库设计完整流程图.docx_第2页
第2页 / 共63页
数据库设计完整流程图.docx_第3页
第3页 / 共63页
数据库设计完整流程图.docx_第4页
第4页 / 共63页
数据库设计完整流程图.docx_第5页
第5页 / 共63页
点击查看更多>>
下载资源
资源描述

数据库设计完整流程图.docx

《数据库设计完整流程图.docx》由会员分享,可在线阅读,更多相关《数据库设计完整流程图.docx(63页珍藏版)》请在冰豆网上搜索。

数据库设计完整流程图.docx

数据库设计完整流程图

实验一软件分析

请从网站下载示例程序,分析软件的功能并列出,并从中抽象出实体,画出软件的E-R图并进行数据库逻辑设计,画出数据库逻辑设计表格。

参考如下:

一、功能说明

1)系统登录控制:

要求填写用户名及密码,并进行了3次连续错误后系统退出功能。

2)部门编码设置:

主要是用来设置部门的层级关系。

3)部门信息设置:

部分的基本信息,如地址、电话等。

4)员工信息管理:

管理企业内部员工的信息,还可以设置生日提醒。

5)提醒设置功能:

可以通过设置信息及接收用户及时间,当被设置的用户登录时显示给用户。

6)今日提醒功能:

根据提醒设置,显示相应信息。

7)系统设置:

修改使用软件的单位信息。

8)密码修改功能:

修改用户的密码。

二、E-R图

首先是进行实体的抽象,通过系统登录功能及用户密码修改功能,我们可以抽象出“用户”实体,通过部门编码及部门信息管理功能,可以抽象出“部门”实体,通过员工信息管理可得到“员工”实体,通过提醒功能及今日提醒功能可以抽象出“提醒”实体,最后就是系统基本信息,可以得到“系统”实体。

实体之间关系有E-R图

提醒实体

用户信息实体的E-R图

部门信息实体的E-R图

员工信息实体的E-R图

系统信息实体的E-R图

三、逻辑表格

通过上面的E-R图,我们已经确立了实体,现在我们要进一步把实体及属性更完善,进行数据库的逻辑设计

提醒信息

字段名

字段类型

宽度

可否为空

默认值

说明

Warnid

自动编号

4

主索引

emplyid

整型

4

0

普通索引

当为0时代表发给所有用户

Wtype

整型

4

不同的数值代表不同类型

showdate

日期型

8

显示日期

msg

字符型

200

显示的信息

用户信息

字段名

字段类型

宽度

可否为空

默认值

说明

uname

字符型

20

主索引,用户名

upwd

字符型

20

0

密码

truename

字符型

8

真实姓名

部门信息

字段名

字段类型

宽度

可否为空

默认值

说明

ID

自动

4

主索引,编号

TopID

整型

4

上层编号

DPName

字符

50

单位名称

DPAddr

字符

100

单位地址

DPPhone

字符

30

单位电话

DPPerson

字符

8

单位联系人

员工信息

字段名

字段类型

宽度

可否为空

默认值

说明

ID

自动

4

编号,主索引

uname

字符

8

姓名

usex

字符

2

性别

birthday

日期

8

生日

DPID

整型

4

所属部门

ISMsg

逻辑

1

是否生日提醒

上面的字符可以进行相应的增加或删减,关键在于想实现的功能。

四、任务

仔细分析软件本身,并可以进行相应改进,完成软件分析任务。

把个人设计的软件也进行上述的过程,完成数据库概念设计及逻辑设计。

实验二创建项目及数据库

一、创建项目

1)在硬盘的相应目录下建立自己的项目文件夹,并在文件夹下建立data和doc两个文件夹分别用来存放数据文件及开发文档。

2)打开VFP8.0,建立项目文件,命名为EPUser(可任意,为了后面方便表达)。

二、创建数据库

在项目管理器中新建一个数据库EPData,并保存在Data文件夹中。

三、创建表并设定索引

1)在EPData数据库下创建新表warning。

表设计器如下:

2)在warnid上建立主索引,在emplyid上建立普通索引。

3)依照上边的方法建立其他数据表。

最终如下:

四、建立表之间的关系

1)选中Epdata数据库,单击修改打开数据库设计器

2)把主表的主索引拖至从表的普通索引上建立关系

五、任务

a)完成企业员工管理软件的项目创建及数据库、数据库表的创建,并建立相应关系。

b)完成自主设计的软件的数据库、数据库表的创建工作。

实验三数据可视化操作

一、添加记录

a)打开实验二创建的项目,并打开epdata数据库的设计器。

b)双击Depart和employ表之间的关系线,打开关系设定窗口。

c)选择“referentialintegrity”选项,并选择插入规则,选择级连项,实现两表之间的“相对完整性”,确定退出窗体。

d)在项目管理器中选择depart表,并选择“浏览”,打开浏览窗口,在“显示”菜单中选择“追加模式”,在表中添加两条数据,如下图,在这里我们可以看到“聊城大学”这个部门的topid为0而“教育传播技术学院”的topid为“聊城大学”的id,通过这种方式实现部门间的级别管理,这种方式在开发中经常使用。

e)关闭depart表,再打开employ表,使用上述方式添加数据,当我们在Dpid中添加了一个depart表中未出现的ID值时,会出现如下错误,而输入的值为正确的,则会被确认,从这里我们可以看到完整性检查的作用。

f)建立一个与employ结构相同的表employ1,在表中添加一些数据。

g)在打开employ表,选择“表”菜单中的追加记录,如下图,点击来源后面的浏览按钮,找到employ1表,并设置选项,选中除自动编号以外的所有字段,确定后,查看employ表中是否添加了employ1中的数据。

二、修改记录

打开一个添加了数据的表格,然后使用“显示”菜单中的“编辑”实现对数据的修改,不再演示,大家也可以设置表之间的关系,看一下更新规则的作用。

三、删除记录

a)打开一个有数据的表格,点击记录左侧的小矩形,这样记录便被逻辑删除

b)进行物理删除,打开“表”菜单,选择彻底删除,便可以实现“物理删除”

四、任务

在我们建立的表中添加适量数据,以方便后续操作。

实验四使用命令操作数据库

一、数据库及表操作

1)创建数据库:

CreateDataBasestumanage

2)创建表:

Createtableclasses(cidIAutoIncprimarykey,classnamec(20))

CreateTablestudent(stuidc(10)primarykey,stunamec(10),sexc

(2)checksex=’男’orsex=’女’error“此数据只能为男或女”default‘男’,classidI,foreignkeyclassidtagclassidreferencesclasses)

3)修改表结构:

ALTERTABLEclassesaddteacherc(6)

ALTERTABLEclassesalterteacherc(8)

ALTERTABLEclassesrenameteachertomanager

ALTERTABLEclassesdropmanager

4)在当前工作期中打开要使用的表:

USEclasses或selectclasses

5)插入数据:

insertintoclasses(classname)values(‘2004级1班’)

insertintoclasses(classname)values(‘2004级2班’)

insertintoclasses(classname)values(‘2004级3班’)

6)浏览数据:

browse或display或list,会发现使用display时只显示第一条记录,这时需要使用范围语句displayall,大家可以使用条件语句看一下结果。

7)查看当前记录各信息:

?

recno()&&显示当前记录号

?

Bof()&&查看记录指针是否在最前

Eof()&&查看记录指针是否在最后

skip-1&&使记录指针向前滚动一条

?

recno()

?

Bof()

?

Eof()

gototop&&使记录指针移到顶端

?

recno()

?

Bof()

?

Eof()

8)条件定位:

locateforcid=2

?

recno()

9)在学生表中插入数据:

INSERTintostudent(stuid,stuname,sex,classid)values('20040101','zhang','男',1)

INSERTintostudent(stuid,stuname,sex,classid)values('20040102','wang','女',2)

10)修改学生数据:

updatestudentsetclassid=3wherestuid=’20040101’

11)删除学生记录:

DELETEFROMstudentwherestuid='20040101'

LIST

12)恢复被逻辑删除的记录:

RECALLall

13)再执行上面的删除命令后使用Pack命令,把记录从磁盘彻底删除。

14)执行查询:

a)select*fromstudent

b)selectstuid,stunamefromstudent

c)向学生表中多插入几条记录

d)selectdistinctsexfromstudent

e)selectsexas性别fromstudent

f)select*fromstudentwherestuid=’20040101’

g)select*fromstudentwherestuidin(‘20040101’,’20040102’)

h)SELECT*fromstudentwherestunamelike'w%'

i)SELECT*fromstudentwherestunamelike'w_'

j)SELECT*fromstudentwherestunamelike'__a%'

k)selectcount(*)as学生总数fromstudent

l)SELECTA.*,B.classnamefromstudentA,classesBwhereA.classid=B.cid

m)SELECTA.*,B.classnamefromstudentAinnerjoinclassesBonA.classid=B.cid

n)SELECTA.*,B.classnamefromstudentArightouterjoinclassesBonA.classid=B.cid

o)SELECT*fromstudentorderbystuiddesc

p)SELECTtop1*fromstudentorderbystuiddesc

q)Selectcount(*)asstucount,classidfromstudentgroupbyclassid

r)Select*fromstudentintocursortest

15)删除表:

droptablestudent

droptableclasses

16)删除数据库:

CLOSEALL

DELETEDATABASEstumanage

二、任务

使用上面的命令在员工管理数据库表的添加一些记录

实验五表单设计

一、表单分析

根据实验一中的项目功能分析,我们需要创建以下几个表单。

1)部分信息管理表单:

实现对部分信息的添加、修改、删除等管理

2)员工信息管理表单:

实现对员工信息的添加、修改、删除等管理

3)管理员管理表单:

实现对管理员的添加、删除等管理

4)当前用户密码修改表单:

修改当前用户的密码和真实姓名

5)信息提示表单:

当启动软件时显示提示信息

6)提示信息设置表单:

设置提示信息

7)登录表单

8)系统设置表单

9)关于表单

二、使用向导创建表单

1)打开员工管理项目,这里需要注意的是,VFP软件有可能对中文目录支持不太好,如果出现类似问题,请把项目放在一个英文目录中。

2)在项目管理器中选择文档(documents),选择表单,并新建。

3)选择使用向导,这里有两项,一项是表单向导,另一个是一对多表单向导,可以看出我们也可以使用向导产生基于两个表的表单。

4)选择使用到的表字段,这里实现管理员管理的表单,所以选择Manager表中的所有字段。

5)选择表单样式,使用默认即可。

6)选择排序字段,这里也可以不选择。

7)最后一步,设置表单标题并设置保存,在项目文件夹下建立forms文件夹,并把表单保存在内。

8)最终效果如下:

9)在我们的创建的数据库中,部门表与员工表之间存在一对多关系,使用向导自己建立一个一对多的表单。

三、使用表单设计器修改表单

使用向导生成的表单有时不能满足我们的需要,这时,我们需要使用表单设计器来完善表单的设计。

下面我们来修改一下上面的表单。

1)选择我们刚才创建的表单,进行修改

2)下面是表单设计器,同时会打开表单控件面板和属性面板

3)选择表格控件,并在表单中单击,把控件添加到表单中。

4)使用表格生成器来使表格与数据表之间绑定。

5)选择显示的字段。

6)设置显示样式

7)修改表格字段显示的标题。

8)点击OK完成修改,关闭设计器并保存修改,使用项目管理器运行表单查看最终效果。

9)对于由向导生成的控件,可以通过属性面板进行修改,如改变标题显示(caption)。

10)通过上述方式,多加测试,掌握表单设计的基本方法。

四、完成其他表单

1)部门信息管理:

这里要用到一个Activex控件,方法是,打开“工具”菜单,选项中选择控件面板,找到如下图的控件:

后从控件面板中选择如下:

就可以看到我们选择的组件,拖放到表单中就可以了。

2)员工信息管理

3)登录表单

4)管理员管理表单

5)用户密码修改表单

6)提示信息管理表单

7)提示信息添加表单,这里用了一个时间控件,如TreeView控件一样,自行添加进来即可。

8)提示信息显示表单

实验六编写代码

本实验分三次完成,主要实现程序的所有代码,了解程序开发过程及代码开发技巧。

一、创建系统主程序

主程序是所编写程序的入口,主要设置运行环境、定义变量、常量,然后调用其他表单,本程序文件保存为main.prg。

CLEAR

CLEARALL

*把系统菜单隐藏掉

SETSYSMENUoff

*程序运行时不允许使用ESC键退出

SETESCAPEOFF

*关闭命令显示

SETTALKOFF

*覆盖时不要确认

SETSAFETYOFF

*设置时间格式,使用四位显示年代

SETCENTURYon

SETDATEYMD

*定义一个公共变量,保存当前用户信息

PUBLICcuruser

*调用登录表单

DOFORMforms\login

*进入事务处理,当执行cleanevents时结束

READevents

*当结束循环时执行退出

quit

二、编写登录表单的代码

打开实验五中已经制作的Login表单,修改控件相应属性。

控件

属性

组合框

Name

uname

Rowsource

manager.uname

Rowsourcetype

6-fields

Style

2-dropdownlist

文本框

Name

Upwd

Passwordchar

*

表单

Autocenter

True

Borderstyle

2-固定对话框

Closble

F

Caption

用户登录

controlbox

F

MaxButton

F

MinButton

F

Name

Frmlogin

Showwindow

作为顶层表单

Windowtyp

模式

选中表单,从属性面板中找到init事件,添加如下代码:

*定义一个公共变量来保存登录次数

PUBLIClogincount

logincount=0

双击登录按钮,打开按钮的click事件:

IFALLTRIM(thisform.uname.Value)==""then

MESSAGEBOX("没有选择用户名!

")

ELSE

LOCATEFORuname=ALLTRIM(thisform.uname.value)

IFALLTRIM(thisform.upwd.Value)=ALLTRIM(upwd)then

curuser=thisform.uname.value

thisform.Release

DOFORMforms\main

return

ELSE

logincount=logincount+1

IFlogincount<3then

thisform.upwd.Value=""

thisform.upwd.SetFocus

MESSAGEBOX("您的密码输入错误,请重新输入!

",16,"错误")

ELSE

MESSAGEBOX("对不起,错误次数已达3次,不能进入系统!

",16,"报歉")

thisform.Release

CLEAREVENTS

CLOSEALL

quit

endif

endif

ENDIF

为退出添加click事件:

thisform.Release

CLEAREVENTS

quit

三、编写主表单程序代码

主表单主要是起到调用其他表单的作用,在这里我们添加一个菜单和一个工具栏,从而了解如何创建表单与工具栏,以及如何在程序中使用它们。

创建主表单,保存为main,设置属性如下:

控件

属性

表单

Autocenter

True

Caption

企业员工管理系统

Height

600

Width

600

MDIform

T

Name

Frmmain

Showwindow

作为顶层表单

Windowtyp

模式

创建菜单,在项目管理器中选择“其他”选项卡,选中菜单,新建:

选择Menu,先制作如图的菜单

然后选择菜单“显示->常规选项”

选中“顶层表单”,设计表单时要注意的问题是,需要生成,而且每一次改动后都需要生成,否则使用的菜单是未生成前的菜单。

“菜单->生成菜单”:

好了,下面我们把菜单加入到主表单中去。

打开主表单,添加“init”事件:

DOmenu\main.mprWITHthis

*这里的菜单地址,请根据自己的保存位置确定。

这里保存到menu文件件下了。

可以运行主表单看一下效果了。

下面制作工具栏,选择“类”选项卡,新建类:

从ToolBar类继承制作自己的工具栏,添加按钮,图片资源可以从FTP得到。

设置Showwindow属性值为“在顶层表单中”。

因为工具栏是与表单一级的对象,所以表单中不能容纳工具栏,所以需要建立一个表单集来放置表单与工具栏,打开主表单,使用“表单”菜单中的“新建表单集”建立表单集对象,这时我们使用代码的方式把工具栏加入到主表单中去,设置表单集的init事件。

PUBLICisCreateToolbar

isCreateToolbar=0

再在Activate事件中添加如下代码:

IFisCreateToolbar=0

isCreateToolbar=1

*加载类

SETCLASSLIBTOlib\myclass

*使用类创建对象

this.AddObject("tool1","mytoolbar")

this.tool1.show

*把工具栏停放在表单的上部

this.tool1.dock(0)

endif

这时运行主表单,效果如下:

四、编写管理员管理代码

控件

属性

表格

Name

gmanager

Enabled

False

Recordsource

Manager

表单

BufferMode

1

Caption

操作员管理

Name

frmmanager

Showwindow

在顶层表单中

打开表单的数据环境,选择manager表。

设置其属性。

buffermodeOveride:

2,Exlusive:

True

添加按钮的click事件:

thisform.gManager.Enabled=.T.

APPENDBLANK

GObottom

thisform.gManager.coLUMN1.text1.SetFocus

thisform.Refresh

修改按钮的click事件:

thisform.gManager.Enabled=.t.

保存按钮的click事件:

YN=MESSAGEBOX("确定保存",4+32,"企业员工管理系统")

IFYN=6then

IFTABLEUPDATE(.f.)=.f.then

MESSAGEBOX("保存出错")

ELSE

thisform.Refresh

ENDIF

ENDIF

thisform.gmanager.Enabled=.f.

取消按钮的click事件:

IFMESSAGEBOX("确认取消",4+32,"企业员工管理系统")==6then

TABLEREVERT(.f.)

ENDIF

thisform.gmanager.Enabled=.f.

thisform.Refresh

删除按钮的click事件:

IFMESSAGEBOX("确定删除",32+4,"企业员工管理系统")==6then

SELECTmanager

DELETE

thisform.gmanager.RecordSource=null

PACK

thisform.gmanager.RecordSource="manager"

IFEOF()

SKIP-1

ELSE

IFBOF()

SKIP

ENDIF

ENDIF

thisform.Refresh

endif

五、提示信息添加代码

控件

属性

Dateandtimerpicker

Name

msgdate

文本域

name

msgcontent

保存按钮click事件:

SETDATEYMD

SETCENTURYon

mdate=TTOD(thisform.msgdate._value)

mcontent=ALLTRIM(thisform.msgcontent.Value)

IFEMPTY(mdate).and.EMP

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1