《个人办公助理》数据库设计报告_第1页
《个人办公助理》数据库设计报告_第2页
《个人办公助理》数据库设计报告_第3页
《个人办公助理》数据库设计报告_第4页
《个人办公助理》数据库设计报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、个人办公助理数据库设计报告长春工程学院计算机工程与技术学院 ORACLE 数据库项目开发实训Page 1 of 13 个人办公助理 数据库设计报告文件标识:citsoft-GRBGZL-DOC-DB当前版本:1.0作 者:文件状态: 草稿 正式发布 正在修改完成日期:2012-12-1长春工程学院计算机工程与技术学院实训项目 x 组个人办公助理数据库设计报告长春工程学院计算机工程与技术学院 ORACLE 数据库项目开发实训Page 2 of 13变更历史变更历史序号序号变更内容变更内容变更页变更页变更类别变更类别变更者变更者1增加/修改/删除23456789101112个人办公助理数据库设计报

2、告长春工程学院计算机工程与技术学院 ORACLE 数据库项目开发实训Page 3 of 13目录目录目录0. 文档介绍文档介绍 .40.1 文档目的.40.2 文档范围.40.3 读者对象.40.4 参考文献.40.5 术语与缩写解释.41. 数据库环境说明数据库环境说明 .52. 数据库的命名规则数据库的命名规则 .53. 逻辑设计逻辑设计 .54. 物理设计物理设计 .54.0 表汇总.54.1 用户表 USERS.64.2 事件信息表 EVENTS.65. 序列设计序列设计 .65.0 序列汇总.75.1 序列 USER_SEQ.75.2 序列 EVENT_SEQ.76. 触发器设计触发

3、器设计 .76.0 触发器汇总.86.1 触发器BI_USERS_USERID.86.2 触发器BI_EVENTS_EVENTID.87. 程序包设计程序包设计 .97.0 程序包汇总.97.1 程序包USERS_PKGS.97.2 程序包EVENTS_PKGS.13个人办公助理数据库设计报告长春工程学院计算机工程与技术学院 ORACLE 数据库项目开发实训Page 4 of 130. 文档介绍文档介绍0.1 文档目的文档目的该文档为本项目的数据库设计,主要是对个人办公助理系统的数据库进行了详细的设计,供程序开发人员使用。0.2 文档范围文档范围该文档为个人办公助理系统的数据库设计文档,其中主

4、要包括数据库中各对象(如表、视图、序列、触发器、程序包等对象)的详细设计及部分 PL/SQL 程序代码,供程序开发人员使用。0.3 读者对象读者对象读者对象是系统开发人员,开发人员以此为依据进行对数据库各对象进行相应操作,开发人员需理解设计对象的功能及使用方法。0.4 参考文献参考文献提示:提示:列出本文档的所有参考文献(可以是非正式出版物) ,格式如下:标识符 作者,文献名称,出版单位(或归属单位) ,日期例如:例如:AAA 作者, 立项建议书 ,机构名称,日期 SPP-PROC-SD SEPG,系统设计规范,机构名称,日期0.5 术语与缩写解释术语与缩写解释缩写、术语缩写、术语解解 释释个

5、人办公助理数据库设计报告长春工程学院计算机工程与技术学院 ORACLE 数据库项目开发实训Page 5 of 131. 数据库环境说明数据库环境说明提示:提示: (1)说明所采用的数据库系统,设计工具,编程工具等(2)详细配置采用的数据库为 Oracle10g,使用 SQLplus 工具编写 sql 语句及 PL/SQL 程序。服务器在运行时需启动 service 服务和监听服务,监听应用程序端对数据库的操作2. 数据库的命名规则数据库的命名规则提示:提示:(1)完整并且清楚的说明本数据库的命名规则。(2)如果本数据库的命名规则与机构的标准不完全一致的话,请作出解释。各对象命名规则遵循驼峰式命

6、名规则,并且见名知意。在命名时各对象需在对象名前加上组号 XXX(学号后三位),如组号 XXX(学号后三位)_对象名。标识符如由两个单词以上构成,则第二个单词开始首字母大写3. 逻辑设计逻辑设计提示:提示:数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图(ERD) 。如果采用面向对象方法(OOAD) ,这里实体相当于类(class) 。4. 物理设计物理设计提示:提示:(1)主要是设计表结构。一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不一定是一一对应的。(2)对表结构进行规范化处理(第三范式

7、) 。该数据库的所有表信息都存储在 grbgzl_tbs 表空间上,数据文件位置为 D:grbgzl grbgzl.dbf ,初始大小为 10M,自动扩展,每次扩展 1M,最大不限,分区管理采用本地自动分配管理,自动进行段空间管理。连接数据库的用户为 test,其默认表空间为 grbgzl_tbs,其角色为CONNECT,RESOURCE,DBA 。个人办公助理数据库设计报告长春工程学院计算机工程与技术学院 ORACLE 数据库项目开发实训Page 6 of 134.0 表汇总表汇总表名功能说明用户表 Users记载用户信息事件信息表 Events记载各用户的事件信息4.1 用户表用户表 Us

8、ers表名Users列名列说明数据类型(精度范围)空/非空约束条件UserId用户的惟一编号Varchar2(20)非空主键LoginName用户登录名称Varchar2(20)非空惟一Password用户登录密码Varchar2(20)非空Name用户姓名Varchar2(20)Description关于用户的描述Varchar2(2000)补充说明用户的惟一编号构成为:Usr0000+序列值4.2 事件信息表事件信息表 Events表名Events列名列说明数据类型(精度范围)空/非空约束条件EventId事件的惟一编号Varchar2(20)非空主键EventName事件的标题Varch

9、ar2(100)非空EventContent事件的内容梗概Varchar2(2000)EventDesc事件描述Varchar2(2000)EventExer事件执行者Varchar2(20)非空外键PlanBeginTime计划开始时间datePlanFinishTime计划结束时间dateFinalFinishTime最晚结束时间dateActBeginTime实际开始时间dateActFinishTime实际结束时间dateIsFinished事件是否完成Char(1)默认为NIsExpired事件是否过期Char(1)默认为NIsDeleted事件是否删除Char(1)默认为N补充说明

10、序列的惟一编号构成为:Evt0000+序列值个人办公助理数据库设计报告长春工程学院计算机工程与技术学院 ORACLE 数据库项目开发实训Page 7 of 135. 序列设计序列设计提示:提示:主要是设计在该项目中所应用的序列5.0 序列汇总序列汇总序列名功能说明序列 User_seq用户序列序列 Event_seq事件序列5.1 序列序列 User_seq提示:提示:对序列说明其功能、应用的表、及序列的代码功能:功能:该序列用于产生用户的惟一编号,将该序列与触发器结合使用,可为每个新注册的用户产生惟一的编号。应用于表:应用于表:该序列将应用于表 Users序列代码:序列代码:CREATE S

11、EQUENCE User_SeqSTART WITH 1INCREMENT BY 1CACHE 20.5.2 序列序列 Event_seq提示:提示:对序列说明其功能、应用的表、及序列的代码功能:功能:该序列用于产生事件的惟一编号,将该序列与触发器结合使用,可为每个新添加的事件产生惟一的编号。应用于表:应用于表:该序列将应用于表 Events序列代码:序列代码:CREATE SEQUENCE Event_SeqSTART WITH 1INCREMENT BY 1CACHE 20个人办公助理数据库设计报告长春工程学院计算机工程与技术学院 ORACLE 数据库项目开发实训Page 8 of 136

12、. 触发器设计触发器设计提示:提示:主要是设计在该项目中所应用的触发器6.0 触发器汇总触发器汇总触发器名功能说明触发器 bi_users_userId实现 Users 表产生惟一编号的功能触发器 bi_events_eventId实现 Events 表产生惟一编号的功能6.1 触发器触发器 bi_users_userId提示:提示:对触发器说明其功能、及触发器的代码功能:实现 Users 表产生惟一编号的功能触发器代码:CREATE OR REPLACE TRIGGER bi_users_userIdBEFORE insert ON usersFOR EACH ROWDECLARE new_

13、id number;BEGIN SELECT User_seq.nextval INTO new_id FROM DUAL; :new.userid:=usr|lpad(new_id,4,0);END;6.2 触发器触发器 bi_events_eventId提示:提示:对触发器说明其功能、及触发器的代码功能:实现 Events 表产生惟一编号的功能触发器代码:CREATE OR REPLACE TRIGGER bi_events_eventIdBEFORE insert ON eventsFOR EACH ROWDECLARE个人办公助理数据库设计报告长春工程学院计算机工程与技术学院 ORAC

14、LE 数据库项目开发实训Page 9 of 13 new_id number;BEGIN SELECT Event_seq.nextval INTO new_id FROM DUAL; :new.eventid:=evt|lpad(new_id,4,0);END;7. 程序包设计程序包设计提示:提示:主要是设计在该项目中所应用的程序包的功能及实现代码7.0 程序包汇总程序包汇总程序包名功能说明程序包 users_pkgs用户信息处理包程序包 events_pkgs事件信息处理包7.1 程序包程序包 users_pkgs提示:提示:对程序包说明其功能、包规范及包体的代码功能功能:用于实现获取用户

15、信息、增加或修改用户信息,在该包中有三个公有存储过程:saveUsers():用于存储用户信息getUsers():用于查询用户信息,该存储过程为重载,可根据用户编号进行查询用户信息或根据用户登录名及密码查询用户信息updateUsers():用于修改用户信息,只有 UserId 不能修改程序包规范程序包规范:CREATE OR REPLACE PACKAGE users_pkgs IS-定义一个动态游标,用于存储查找到的记录信息 TYPE curUser IS REF cursor;-定义一些常量,用不同数值表示不同含义 Success constant integer:=1; UserEx

16、ist constant integer:=-1; UserNotExist constant integer:=-2; UserNotExistOrPasswordError constant integer:=-3; UnKonwError constant integer:=-8;-定义存储过程,用于存储用户信息个人办公助理数据库设计报告长春工程学院计算机工程与技术学院 ORACLE 数据库项目开发实训Page 10 of 13Procedure saveUsers (var_userId out Varchar2, var_loginName in varchar2, var_pass

17、word in varchar2, var_name in varchar2, var_description in varchar2, result out number );-定义存储过程,用于根据 userId 查找用户信息 Procedure getUsers (var_userId in Varchar2, var_user out curUser, result out number );-定义存储过程,用于根据登录名和密码查找用户信息 Procedure getUsers (var_loginName in Varchar2, var_password in varchar2,

18、var_user out curUser, result out number );-定义存储过程,用于根据 userId 修改用户的其他信息 Procedure updateUsers (var_userId in Varchar2, var_oldPassword in varchar2, var_newPassword in varchar2, var_newName in varchar2, var_newDescription in varchar2, result out number ); end users_pkgs;/程序包包体代码程序包包体代码:CREATE OR REPL

19、ACE PACKAGE BODY users_pkgs IS-定义存储过程,用于存储用户信息 Procedure saveUsers (var_userId out Varchar2, var_loginName in varchar2, var_password in varchar2,个人办公助理数据库设计报告长春工程学院计算机工程与技术学院 ORACLE 数据库项目开发实训Page 11 of 13 var_name in varchar2, var_description in varchar2, result out number ) AS isExist integer:=0; u

20、serHasExist exception; BEGIN select count(*) into isExist from users where lower(loginName)= lower(var_loginName); if isExist0 then raise userHasExist; else insert into users(loginName,password,name,description) values(var_loginName,var_password,var_name,var_description); select userId into var_user

21、id from users where lower(loginName)= lower(var_loginName); commit; result:=Success; end if; EXCEPTION WHEN userHasExist THEN var_usrId:=null; result:=UserExist ; WHEN others THEN result:=UnKonwError ; END saveUsers;-定义存储过程,用于根据 userId 查找用户信息 Procedure getUsers (var_userId in Varchar2, var_user out

22、curUser, result out number ) AS notExist exception; BEGIN IF NOT EXISTS (SELECT * FROM users WHERE lower(userId)=lower(var_userId) THEN OPEN var_user FOR select * from dual; RAISE notExist; ELSE OPEN var_user FOR select * from users WHERE lower(userId)=lower(var_userId);个人办公助理数据库设计报告长春工程学院计算机工程与技术学院

23、 ORACLE 数据库项目开发实训Page 12 of 13 result:=success; END IF; EXCEPTION WHEN notExist THEN result:=UserNotExist ; WHEN others THEN result:=UnKonwError ; END getUsers;-定义存储过程,用于根据登录名和密码查找用户信息 Procedure getUsers (var_loginName in Varchar2, var_password in varchar2, var_user out curUser, result out number )

24、AS notExistorPasswordError exception; BEGINIF NOT EXISTS (SELECT * FROM users WHERE lower(loginName)=lower(var_loginName) AND lower(password)=lower(var_password) THEN OPEN var_user FOR select * from dual; RAISE notExist; ELSE OPEN var_user FOR select * from users WHERE lower(loginName)=lower(var_loginName) AND lower(password)=lower(var_password); result:=success; END IF; EXCEPTION WHEN notExistorPasswordError THEN result:=UserNotExistorPasswordError ; WHEN others THEN result:=UnKonwError

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论