数据库设计
引言
编写的目的
需求分析的任务是确定系统必须完成哪些工作,就是对目标系统提出完整、准确、 清晰、具体的要求。 此说明书的编写目的是,让软件开发人员和用户充分了解本产品而设立的,它说明了本产品的各种功能和性能需求,明确各种功能的实现背景,以及适用的范围及背景。提供客户解决问题和达到目标所需要的条件,提供一个度量和遵守的基准。
背景
系统名称: 客户资产管理系统
委托单位: 维多利亚加中实训基地
开发时间: 2012年6月10号 ---- 2012年6月22号
版权信息: 本客户资产管理系统是由烟台大学计算机学院计103-3班第一小组开发
定义
MySQL:MySQL是一个小型关系型数据库管理系统,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
JAVA:JAVA是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大。在JAVA环境下,使用Windows内部的应用程序接口(API)函数,以及动态链接库(MYSQL)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。
可视化编程:JAVA提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。JAVA自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。
面向对象的程序设计:在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而JAVA则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,JAVA自动生成对象的程序代码并封装起来。
结构化程序设计语言:JAVA语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。JAVA是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在设计JAVA程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(.EXE),脱离JAVA环境,直接在Windows环境下运行。
事件驱动编程机制:JAVA通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。例如,命令按钮是一个对象,当用户单击该按钮时,将产生一个“单击“(CLICK)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。在用JAVA设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通用过程来执行指定的操作,这样可以方便编程人员,提高效率。
访问数据库:JAVA具有强大的数据库管理功能,利用数据控件和数据库管理接口,可以直接建立或处理表格里的数据库,并提供了强大的数据存储和检索功能。
系统分析
系统分析的含义和目标
系统分析(systems analysis),是指在管理信息系统开发的生命周期中应用系统思想和系统科学的原理进行分析工作的方法和技术。
系统分析阶段的目标:就是按系统规划所定的某个开发项目范围内明确系统开发的目标和用户的信息需求,提出系统的逻辑方案。
系统分析的任务
系统分析的任务是:尽可能弄清用户对信息的需求,调查原信息系统的资源、输入、处理和输出。完成新系统的逻辑设计,以满足新新公司的业务发展要求。
系统分析的具体工作内容包括:
可行性分析;
详细调查;
系统性分析;
提出新系统的逻辑模型
系统分析的步骤
系统分析阶段的主要活动是:系统的初步调查、可行性研究、系统的详细调查、新系统逻辑方案的提出。
系统的初步调查:系统的初步调查是着重于系统的总体目标、总体功能和发展方向。
可行性的研究:可行性的研究是进一步明确系统的目标、规模与功能,对系统发展背景、必要性和意义进行调查分析并根据需要和可能提出拟定开发系统的初步方案计划。
现行系统详细调查:在可行性研究的基础上进一步对现行系统进行全面、深入的调查和分析,弄清楚现行系统运行状况,发现其薄弱环节,找出要解决的问题实质,确保新系统更有效。
新系统逻辑方案的提出:主要明确用户的信息需求,确定新系统的逻辑功能,提出新系统的逻辑方案。
数据库设计
E--R图模型
概念模型:
逻辑模型:
物理模型:
数据库名称:pro;
数据库中共有两个表格,描述分别如下:
用户表(user),用于存储可以登录本系统的用户信息。
字段
数据类型
是否为主键
可否为空
描述
id
Int(11)
是
NOT NULL
管理员编号
name
varchar(20)
NULL
管理员名称
psd
varchar(100)
NULL
登录密码
ri
Int(11)
NULL
密码回显
账号表(project),用于存储用户的账号信息。
字段
数据类型
是否为主键
是否为空
描述
id
Int(11)
是
NOT NULL
资产编号
name
varchar(20)
NULL
资产名称
Type1
varchar(10)
NULL
资产类型
Totol1
Int(11)
NULL
资产总值
date
date
NULL
登记日期
rname
varchar(10)
NULL
登记人员
dest
varchar(10)
NULL
存放地点
sname
varchar(10)
NULL
保管人员
由powerdesigner生成的SQL语句:
/*==============================================================*/
/* DBMS name: MySQL */
/* Created on: 2012/6/22 9:48:40 */
/*==============================================================*/
drop table if exists charge;
drop table if exists project;
drop table if exists user;
/*==============================================================*/
/* Table: charge */
/*==============================================================*/
create table charge
(
id2 numeric(8,0) not null,
id numeric(8,0) not null,
primary key (id2, id)
);
/*==============================================================*/
/* Table: project */
/*==============================================================*/
create table project
(
id2 numeric(8,0) not null,
name2 longtext,
type longtext,
totol1 int,
date date,
rname longtext,
dest longtext,
sname longtext,
primary key (id2)
);
/*==============================================================*/
/* Table: user */
/*==============================================================*/
create table user
(
id numeric(8,0) not null,
name longtext,
psd numeric(8,0),
ri tinyint,
primary key (id)
);
alter table charge add constraint FK_charge foreign key (id2)
references project (id2) on delete restrict on update restrict;
alter table charge add constraint FK_charge2 foreign key (id)
references user (id) on delete restrict on update restrict;