北京邮电大学毕业设计
输入设计的原则有如下几点:
(1)输入量应保持在能满足处理要求的最低限度。设计中可采用设置字段初值,下拉式数据窗口等方式尽量减少用户键盘输入量。输入量越少,错误率就越少,数据准备时间也减少。
(2)输入的准备及输入过程应尽量容易进行,从而减少错误的发生。
(3)应尽量早对输入数据进行检查(尽量接近原数据发生点),以便使错误及时得到更正。 (4)输入数据尽早地用其处理所需的形式被记录,以避免数据由一种介质转移到另一种介质时需要转录而可能发生的错误。
9
北京邮电大学毕业设计
3 系统分析与设计
3.1 数据库的分析与设计
计算机信息系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、加工、统计和传播等操作。数据库已经成为现在信息系统等计算机系统的基础与核心部分。数据库设计的好坏直接影响到整个系统的质量和效率。
数据库的设计一般经过规划。需求分析、概念设计、逻辑设计、物理设计5个步骤。 3.1.1 数据库的概念结构设计
概念设计是指在数据分析的基础上自底向上的建立整个系统的数据库概念结构,从用户的角度进行视图设计,然后将视图集成,最后对集成的结构分析优化得到最后结果。
数据库的概念结构设计采用实体—联系(E-R)模型设计方法。E-R模型法的组成元素有:实体、属性、联系,E-R模型用E-R图表示,是提示用户工作环境中所涉及的事物,属性则是对实体特性的描述。
概念设计的目标是产生反映企业组织信息要求的数据库概念结构,即概念模式。概念模式是独立于数据库逻辑结构,独立于支持数据库的DBMS,不依赖于计算机系统的,
根据以上对数据库的需求分析,并结合系统概念模型的特点及建立方法,建立E-R模型图。实体、属性和实体间关系的模型如下所示。
实体 属性
(1)系统整体E-R图如图3-1所示。
实体间关系
图3-1 系统整体E-R图
(2)用户实体图如图3-2所示。
10
北京邮电大学毕业设计
系系系系系系系系系系
图3-2 用户实体图
(3)动漫类别实体图,如图3-3所示。
系系ID系系系系系系系系系系
图3-3 动漫类别实体图
(4)订单信息实体图,如图3-4所示。
系系ID系系ID系系系系系系系系系系系系系系系系系系系系系系系系
图3-4 订单信息实体图
(5)管理员实体图如图3-5所示。
系系系系系系ID系系系系系系系系系
图3-5 管理员实体图
11
北京邮电大学毕业设计
3.1.2 数据库的逻辑结构设计
我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。即转化为按计算机观点处理的逻辑关系模型,E-R模型向关系数据库模型转换应遵循下列原则:
(1)每一个实体要转换成一个关系
(2)所有的主键必须定义非空(NOT NULL)
(3)对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。 根据E-R模型,团购网系统建立了以下逻辑数据结构,下面是各数据表的详细说明。 (1)会员信息表主要是记录了注册会员的基本信息。表结构如表3.1所示。 列名 id loginname loginpw name 数据类型 int varchar varchar varchar 长度 4 50 50 50 允许空 否 否 否 否 是否主键 是 否 否 否 说明 编号 账号 密码 姓名 表3.1 会员信息表(t_user)
(2)动漫分类信息表主要是记录了动漫类别的基本信息,表结构如表3.2所示。 列名 id name 数据类型 int varchar 长度 4 50 允许空 否 否 是否主键 是 否 说明 类别编号 类别名称 表3.2 类别信息表(t_catelog)
(3)动漫信息表主要是记录了管理员发布的动漫相关信息,表结构如图3.3所示。 列名 id catelog_id name fujian zhujiao shijian 数据类型 Int Int varchar varchar varchar Int 长度 4 50 50 50 50 50 允许空 否 否 否 否 否 否 是否主键 是 否 否 否 否 否 说明 动漫ID 分类ID 动漫名称 附件信息 动漫主角 发布时间 表3.3 动漫信息表(t_dongman)
(4)管理员信息表主要记录的管理员的账号信息,包括用户名和密码,表结构如表3.4所示。 列名 userId userName userPw 数据类型 int varchar varchar 长度 4 50 50 允许空 否 否 否 是否主键 是 否 否 说明 编号 用户名 密码 表3.4 管理员信息表(t_admin)
12
北京邮电大学毕业设计
3.1.3 数据库的连接原理
采用JDBC连接数据库的方式,只需在工程中导入对应数据库的jar包,就可以方便的对数据库进行连接,在程序中,用Class.forName()方法来加载驱动程序,在用DriverManager的getConnection()方法就可以创建一个数据库连接。程序采用的是DAO模式来操作数据库,DAO(Data Access Object,数据访问对象),是Java编程中的一种经典模式,已被广泛应用,也是J2EE架构中持久层框架的基础知识,基于分层次式的软件架构来实现对数据库的访问操作。DAO模式的主要思想就是从抽象数据源获取与操纵数据的方法。抽象数据的含义就是编写应用程序的程序员不必关心数据库的物理位置,已经是何种数据库,只需使用封装数据库中表示记录的数据对象即可。其思想如图3-6所示。
图3-6 DAO模式类图
图中BussinessObject是业务对象,是使用DAO模式的客户端;DataTransferObject数据传输对象,在应用程序不同层次之间传输对象,在一个分布式应用程序中,通常可以提高整理的性能;DataObjectAcces数据输入/输出对象封装了对数据源的一些基本操作;DataSource指的是数据源。可以从图中看出,DAO模式分离了业务逻辑和数据罗即将,是的编写的软件具有良好的层次式体系结构。本系统为了方便数据库的操作,主要使用DBContent的对象来接一个数据库(建立一个类DBContent),代码如下: public DBContent(){
String CLASSFORNAME=\
//连接数据库的驱动
String url=\ String user=\连接数据库的用户名 String password=\连接数据库的密码 try{
Class.forName(CLASSFORNAME);
con= DriverManager.getConnection(url,user,password);//加载数据库的驱动
stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); }
catch(Exception ex){ ex.printStackTrace(); }
13