730 likes | 888 Views
项目一. 部门通讯录. 学习目标. 软件开发项目的基本步骤 背景分析,需求分析,设计,构建,测试,移交和过渡,运行维护 基于 Oracle 数据库 的 Web 方式通讯录开发. 项目背景 3-1.
E N D
项目一 部门通讯录
学习目标 • 软件开发项目的基本步骤 • 背景分析,需求分析,设计,构建,测试,移交和过渡,运行维护 • 基于 Oracle 数据库的 Web 方式通讯录开发
项目背景 3-1 • 我院计算机系有四十几名教职工。教师工作不要求坐班,老师上完课不必呆在办公室里。为了工作中大家能够方便的进行联系,系里每年都统计大家的联系方式,包括手机号码、家庭电话,Email地址等。原来的做法是将上述信息放在一个Word文件里,大家每人复制一份。但是现在大家的联系方式变化很快,特别是手机号码。这样,大家手里的文件很难一起更新。造成的结果是信息混乱。有的老师手机号换了很长时间,在其他人的通讯录里还是旧的号码。
项目背景 3-3 所以,我们现在准备将通讯录信息集中存放在数据库里。老师可以通过互联网查看所有人的信息,并且可以更改联系信息
需求分析 5-1 • 首先要解决的问题 • 项目的任务和目标是什么? • 需要什么功能? • 需要保存什么样的数据? • 需要什么样的运行环境? • 需要什么样的开发工具? • 安全性有什么要求? • 效率有什么要求? • … …
需求分析 5-2 • 本项目的任务和目标 • 提供给计算机系职工一个可通过互联网使用的通讯录 • 通讯录内容必须可以及时更新,能反映本系教职工最新的联系方式 • 本项目产品必备功能 • 查询所选员工信息。 • 修改所选员工信息。 • 删除所选员工信息。 • 增加所选员工信息。
需求分析 5-3 员工 # 编号 * 姓名 o 移动电话 o 办公电话 o 家庭电话 o 电子邮件 • 本项目需要保存的数据 • 如左 实体关系图( ERD )所示 • 本项目运行环境 • 服务端 • 操作系统 Windows2000/XP,Linux,Unix • Oracle 数据库(跨平台,可在不同厂家提供的计算机和不同的操作系统上运行) • 客户端 • IE 浏览器 • Firefox 浏览器
需求分析 5-4 • 本项目开发工具 • Oracle XE 10g • Oracle 数据库的微型版。 • 免费,只支持 4G 数据,1 个 CPU。 • 与Oracle 10g企业版支持相同的基本功能,在OracleXE平台下开发的应用可以直接移植到Oracle企业版的环境中去使用。 • 下载地址:http://www.oracle.com/technology/software/products/database/xe/index.html • Oracle Application Express。 • 基于Oracle的快速开发工具,在OracleXE安装时,同时自动安装 Oracle APEX 2.1 • 可升级到 Oracle APEX 3.0.1 。
需求分析 5-5 • 安全性 • 安全性要求不是非常高。 • 实现简单的口令保护就可以。 • 由于部门人员有限,彼此互相信任,所以只设一统一的用户就可以。即大家共用同一用户名/口令,并规定对部门外人员保密即可。 • 效率 • 由于使用人员有限,同时使用的情况更少,信息量很少,不需要特别考虑
设计 5-1 • 数据库设计
设计 5-2 • 界面设计 • 1.登录
设计 5-3 • 界面设计 • 2.联系人查找/创建
设计 5-4 • 界面设计 • 3.详细信息修改及删除
设计 5-5 • 测试设计 • 怎样知道项目完成了预定功能? • 何时可以结束项目? • 运行应用程序,并按如下测试计划进行测试。
构建 13-1 • 创建数据库对象 • 在 SQL Workshop 中执行: -- 创建表 CREATE TABLE a01_employees( id NUMBER(5,0) PRIMARY KEY, name VARCHAR2(5 CHAR) NOT NULL, m_phone VARCHAR2(20 CHAR), o_phone VARCHAR2(20 CHAR), h_phone VARCHAR2(20 CHAR), email VARCHAR2(60 CHAR) );
构建 13-2 • 创建数据库对象 • 在 SQL Workshop 中执行: -- 创建序列,用于自动产生连续整数,作为 employees 表的主键 CREATE SEQUENCE a01_employees_seq; -- 添加记录,增加员工信息 INSERT INTO a01_employees values(a01_employees_seq.NEXTVAL,'郭靖','13705319999','0531 88888888','0531 77777777','guojing@163.com'); INSERT INTO a01_employees values(a01_employees_seq.NEXTVAL,'黄蓉','13705319898','0531 88888888','0531 77777777','huangrong@163.com'); -- 查看所有员工的所有信息 SELECT * FROM employees; -- 提交 COMMIT;
构建 13-3 • 创建应用程序
构建 13-4 • 创建应用程序
构建 13-5 • 创建应用程序
构建 13-6 • 创建应用程序
构建 13-7 • 创建应用程序
构建 13-8 • 创建应用程序
构建 13-9 • 创建应用程序
构建 13-10 • 创建应用程序
构建 13-11 • 创建应用程序
构建 13-12 • 添加验证 • 标识验证级别: 选择 项级验证 • 标识要验证的项: 选择 EMPLOYEES: 1. P2_NAME (Name) • 选择验证方法: 选择 项不为空 • 错误消息: 填写 name 不能为空,必须填写
构建 13-13 • 添加处理 • 选择要创建的处理类别: PL/SQL • 名称 Get PK • 输入 PL/SQL 页处理: DECLARE v_pk NUMBER;BEGINSELECT A01_EMPLOYEES_SEQ.NEXTVAL next_val INTOFROM dual; :P2_ID := v_pk;END; • 失败消息: 无法获取主键值 • 在按下按钮时: CREATE • 修改处理 • “处理 EMPLOYEES 的行”的序列为 大于 “Get PK”的值,比如 20 • 注意:页面项的序列号决定其显示和处理的顺序
测试.移交.运行维护 • 测试 • 按测试设计内容进行 • 移交 • 制作数据库对象创建脚本 • 导出应用程序 • 在系网站服务器安装OracleXE • 运行数据库对象创建脚本 • 导入应用程序 • 将现有通讯录内容核实,添加到数据库 • 通知所有用户网址、用户名、口令 • 运行维护 • 信息维护 • 程序维护
熟悉 Web 页面 • 运行程序,认识下列页面项 (Item),了解其用法 • 按钮 (Button) • 激发处理或动作 • 文本条 (TextField) • 用户输入少量文本 • 下拉列表(Select List) • 用户输入选择 • 标签 (Tab) • 导航 • 面包屑(BreadCrumb) • 导航
熟悉 EditPage 页面 • Web 页面开发环境 • 页(Page)、区域(Region)和项(Item) • 都有一个序列号(Sequence) ,决定其显示顺序和位置 • 页面显示和处理的顺序 • 按序列号显示区域 • 一个区域内,按序列号显示项 • 前置计算(Computation)和处理(Process) • 页面可用前进行,如为项赋初值 • 后置计算(Computation)和处理(Process) • 页面提交后进行,如根据用户输入查找、修改数据库 • 分支(Branch) • 页面跳转
总结 2-1 • 软件开发项目的基本步骤 • 背景分析,需求分析,设计,构建,测试,移交和过渡,运行维护 • 数据库设计 • ERD 基本概念 • 实体、实例、属性、UID • 数据库基本概念 • 表、行、列、主键 • 序列 • ERD 和数据库关系
总结 2-2 • SQL • 脚本制作与执行; • 简单的SELECT,INSERT,DELETE; • 主键约束; • 非空约束 • PL/SQL • 用序列获取主键; • PL/SQL块结构,变量; • OAE • 报表和表单; • 应用程序导入导出
实体 • 了解实体非常之重要,因为这些实体关系到我们要存储什么样的数据 • 实体是: • 对业务活动很重要的“事物”,我们必须知道关于该“事物”的数据 • 一个您可以列举出一系列相似事物的名称 • 通常为名词例如:对象、事件、人 • 实体具有实例。 • 实例是实体的单一个体。
实体与实例 • 实体可以是: • 有形的,例如人物或商品。 • 无形的,如技术级别。 • 事件,如音乐会。 • 犬是实例还是实体? • 这要视情况而定 • 如果着眼于不同种类的动物,则动物应是实体,而犬、猫、马等是实例。 • 但是如果我们经营饲养犬类的业务呢?我们需要保存许多不同品种的犬(而不是其它动物种类)的数据。 • 对于犬饲养者来说,将犬作为实体似乎更为自然,而梗类犬、狮子犬、拉布拉多猎犬则为实例。
属性 • 什么是属性? • 像实体一样,属性可以表示一些对业务活动很重要的信息。 • 一个属性就是一条特定的信息,它用来: • 描述一个实体 • 量化一个实体 • 限定一个实体 • 为实体分类 • 指定一个实体 • 一个属性只有一个值。 • 属性值可以是数字、字符串、日期、图像、音频等。这些被称为“数据类型”或“格式”。每个属性都有一种数据类型。
属性 • 属性是单值的。 • 对于实体的每个实例, 每个属性只有一个值 (在任何时间点)。 • 易失属性 • 一些属性(如年龄)的值是时常变化的。这些属性称为易失属性。 • 非易失属性 • 另外一些属性(如订单日期)则几乎不变。这些属性称为非易失属性。 • 如果可以选择属性,请使用非易失属性。 • 例如,使用出生日期代替年龄。
属性 • 必需属性 • 一些属性必须具有值。这些属性称为必需属性。 • 例如:在大多数跟踪个人信息的业务活动中,“名字”是必需的。 • 可选属性 • 其它属性可以有值,也可以为空。这些属性是可选属性。 • 例如:除了在移动或无线应用产品中,移动电话号码通常不是必需的。 • 对于员工 • 如果要建模一个电子邮件应用程序,则电子邮件地址可能为必需属性。 • 如果要建模通讯录,则对于顾客电子邮件地址可能为可选属性。
唯一标识符(UID) • 实体的 UID • 是一个属性或多个属性的集合,用于区别同一实体的不同的实例。 • 通过哪个或哪些属性可以将一名学生与其他学生区别开来? • 这就是学生的UID。
实体关系图 • 实体关系图(缩写为ERD)是一种可用来表示数据需求的一致性工具,而与所用的数据库类型,甚至是否使用数据库无关。 • 无论系统最终建立在什么类型的数据库上,一个出色的概念数据模型都会保持不变。这就是我们所说的模型的“实现自由”。 • 即使根本不使用数据库,数据模型也应保持不变,例如数据最终会存储在几张纸上,被放进档案柜里。
ER 绘图惯例 • 实体由软式方框来表示。 • 实体名显示在软式方框中。 • 实体名总是单数,并且用全大写字母表示。
ER 绘图惯例 <返回> • 属性列在实体名的下方。 • 用星号标记必需的属性:“*” • 用圆圈标记可选属性:“°” • 用井号标记唯一标识符:“#”
数据库 2-1 • 什么是数据库? • 存储在计算机系统中的一组集中的、结构化的数据。 • 数据库中的数据通过软件来管理 • 这样专门管理数据库的软件称为数据库管理系统 DBMS • DBMS 可以提供在需要时检索、添加、修改和删除数据的功能。 • DBMS 还可以提供将检索到的数据转换成有用信息的功能。 • 专门负责数据库管理的人称为数据库管理员(DBA) 。
数据库 2-2 <返回> • 数据 • 可以从中得出结论的原始资料。 • 可以据此得出新事实的论据。 • 信息 • 知识、才智、有特定意义或作用的一条特殊数据。 • 信息通常是对数据进行结合、比较与计算的结果。
关系数据库 5-1 • 关系数据库是目前应用最广泛的一种数据库 • 目前,全世界的数据有20% 存储在RDBMS 中。 • Oracle 数据库支持关系数据库技术 • 关系数据库就是由二维表组成的数据库 • 所有数据都存储在表中 • 表中的数据通过外键(关系)关联到一起 • 下边的表包含雇员数据。
关系数据库 5-2 • 列完整性 • 列只能包含与其已定义 的数据格式一致的值。
关系数据库 5-3 • 主键 • 主键(PK) 是唯一地标识表中各行的一个列或一组列。 • 每个表都应有一个主键, 并且主键必须是唯一的。 • 主键的任何部分都不能 为空。
关系数据库 5-4 • 一个表可能会包含多个或一组可以作为其主键的列。其中 每个列都称为“候选”键。
关系数据库 5-5 • 选择一个要用作该表主键的候选键。其它候选键则变成可选键 (或唯一键)。