Oracle数据库开发授课教师::孙风栋PHONE:13840947297办公电话:84832272办公室:C117(A3-117)EMAIL:sunfengdong@neusoft.edu.cn本次课程内容课程概述三级项目概述PL/SQL程序设计课程概况课程重要性课程体系结构成绩评定教学资源左起EdOates、BruceScott、BobMiner、LarryElliOracle“四剑客”2009年数据库产品市场占有率课程重要性职业发展专业培养目标课程体系课程体系结构项目分析与设计数据库对象的创建SQL语句PL/SQL基础PL/SQL程序设计PL/SQL高级应用项目开发成绩评定平时成绩、期末成绩的比例:50:50期末闭卷考试(50)平时:课堂实验3次(3*8=24分)三级项目文档(6)三级项目答辩(10)平时表现(10)扣分:旷课(4)迟到(2)违规笔记本使用(3)教学资源课件、软件192.168.102.16\计算机系课件\oracleOracle官方文档三级项目概述项目介绍项目运行演示项目涉及技术拆解项目开发过程介绍前台jsp技术后台数据库技术(系统安装配置、数据库分析与设计、实施、运行与维护)项目考核三级项目概述——项目介绍员工管理部门管理职位管理员工职位调动管理企业所在区域管理企业所在国家管理企业所在位置管理管理员员工管理部门管理职位管理员工职位调动管理企业所在区域管理企业所在国家管理企业所在位置管理添加员工修改员工删除员工查询员工统计员工添加部门修改部门删除部门查询部门统计部门添加职位修改职位删除职位查询职位统计职位添加区域修改区域删除区域查询区域添加国家修改国家删除国家查询国家添加位置修改位置删除位置查询位置添加调动修改调动删除调动查询调度统计调动三级项目概述——项目演示人力资源管理系统开发与设计演示三级项目概述——项目技术拆解前台后台:功能模块:员工管理、部门管理、职位管理、职位调动管理、地区管理、国家管理、位置管理界面:数据库对象:表、视图、索引、序列、存储过程、函数、触发器等三级项目概述——概念结构设计JOB_HISTORYstart_dateend_datejob_iddepartment_idJOBSjob_idjob_titlemin_salarymax_salarydepartment_idDEPARTMENTSdepartment_iddepartment_nameEMPLOYEESemployee_idfirst_namelast_nameemailphone_numberhire_datesalarycommission_pctmanager_idLOCATIONSlocation_idstreet_addresspostal_codecitystate_provinceCOUNTRIEScountry_idcountry_nameREGIONSregion_idregion_nameMANAGERSmanager_idmanager_namepasswordSAL_GRADESgrademin_salarymax_salary三级项目概述——逻辑结构设计REGIONS字段名数据类型长度约束说明region_idNUMBERPRIMARYKEY区域编号region_nameVARCHAR225NOTNULL区域名称COUNTRIES字段名数据类型长度约束说明country_idCHAR2PRIMARKEY国家编号country_nameVARCHAR240NOTNULL国家名称region_idNUMBERFOREIGNKEY所属区域编号LOCATIONS字段名数据类型长度约束说明location_idNUMBER4PRIMARYKEY位置编号street_addressVARCHAR240街道postal_codeVARCHAR212邮政编码cityVARCHAR230NOTNULL城市名称state_provinceVARCHAR225州或省名称country_idCHAR2FOREIGNKEY所属国家编号DEPARTMENTS字段名数据类型长度约束说明department_idNUMBER4PRIMARYKEY部门编号department_nameVARCHAR230NOTNULL部门名称manager_idNUMBER6部门管理者编号location_idNUMBER4FOREIGNKEY部门所属位置编号JOBS字段名数据类型长度约束说明job_idVARCHAR210PRIMARYKEY职位编号job_titleVARCHAR235NOTNULL职位名称min_salaryNUMBER6职位最低工资max_salaryNUMBER6职位最高工资EMPLOYEES字段名数据类型长度约束说明employee_idNUMBER6PRIMARYKEYfirst_nameVARCHAR220last_nameVARCHAR225NOTNULLemailVARCHAR225NOTNULLUNIQUEphone_numberVARCHAR220hire_dateDATENOTNULLjob_idVARCHAR210NOTNULLFOREIGNKEYsalaryNUMBER8,2大于0commission_pctNUMBER2,2manager_idNUMBER6FOREIGNKEYdepartment_idNUMBER4FOREIGNKEYJOB_HISTORY字段名数据类型长度约束说明employee_idNUMBER6PRIMARYKEYstart_dateDATEPRIMARYKEYend_dateDATENOTNULLend_datestart_datejob_idVARCHAR210NOTNULLdepartment_idNUMBER4FOREIGNKEY字段名数据类型长度约束说明gradeNUMBER2PRIMARYKEY工资等级min_salaryNUMBER6NOTNULL等级最低工资max_salaryNUMBER6NOTNULL等级最高工资SAL_GRADESMANAGERS字段名数据类型长度约束说明manager_idNUMBER2PRIMARYKEY管理员编号manager_nameCHAR20管理员名passwordVARCHAR220NOTNULL密码序列的设计创建一个名为“EMPLOYEES_SEQ”的序列,用于产生员工编号,起始值为100,步长为1,不缓存,不循环。创建一个名为“DEPARTMENTS_SEQ”的序列,用于产生部门编号,起始值为10,步长为10,最大值为9990,不缓存,不循环。创建一个名为“LOCATIONS_SEQ”的序列,用于产生位置编号,起始值为1000,步长为100,最大值为9990,不缓存,不循环。索引的设计在employees表的department_id列上创建名为“EMP_DEPARTMENT_INDX”的平衡树索引。在employees表的job_id列上创建名为“EMP_JOB_INDX”的平衡树索引。在employees表的manager_id列上创建名为“EMP_MANAGER_INDX”的平衡树索引。在employees表的last_name,first_name列上创建名为“EMP_NAME_INDX”的复合索引。在departments表的location_id列上创建名为“DEPT_LOCATION_INDX”的平衡树索引。在job_history表的job_id列上创建名为“JHIST_JOB_INDX”的平衡树索引。在job_history表的employee_id列上创建名为“JHIST_EMP_INDX”的平衡树索引。在job_history表的department_id列上创建名为“JHIST_DEPT_INDX”的平衡树索引。在locations表的city列上创建名为“LOC_CITY_INDX”的平衡树索引。在locations表的state_province列上创建名为“LOC_STATE_PROVINCE_INDX”的平衡树索引。在locations表的country_id列上创建名为“LOC_COUNTRY_INDX”的平衡树索引。视图的设计用于员工信息综合查询的视图名为“EMP_DETAILS_VIEW”,包括员工编号、员工名、工资、奖金、职位编号、职位名称、部门编号、部门名称、部门所在地信息、国家信息、区域信息等。创建一个名为“DEPT_STAT_VIEW”的视图,包含部门号、部门人数、部门平均工资、部门最高工资、部门最低工资以及部门工资总和。存储过程、函数、包、触发器的设计创建名为“PROC_SHOW_EMP”的存储过程,以部门编号为参数,查询并返回该部门平均工资,以及该部门中比该部门平均工资高的员工信息。创建名为“PROC_RETURN_DEPTINFO”的存储过程,以部门编号为参数返回该部门的人数和平均工资。创建名为“PROC_SECURE_DML”的存储过程,检查当前用户操作时间是否为工作时间,即非周六、周日,时间为08:00-18:00。创建名为“FUNC_EMP_SALARY”的函数,以员工编号为参数,返回员工的工资。创建名为“FUNC_DEPT_MAXSAL”的函数,以部门编号为参数,返回部门最高工资。创建名为“FUNC_EMP_DEPT_AVGSAL”的函数,以员工编号为参数,返回该员工所在部门的平均工资。创建名为“PKG_EMP_PAGE”的包,利用集合实现员工的分页显示功能。创建名为“PKG_EMP_CURSOR_PAGE”的包,利用游标变量实现员工分页显示功能创建名为“TRG_SECURE_EMP”的触发器,保证非工作时间禁止对EMPLOYEES表进行DML操作。创建名为“TRG_EMP_STAT”的触发器,当对EMPLOYEES执行插入或删除操作时,统计操作后员工人数;当执行更新员工工资操作时,统计更新后员工的平均工资。为EMPLOYEES表创建触发器“TRG_UPDATE_JOB_HISTORY”,当员工职位变动或部门变动时,相关信息写入job_history表。为EMPLOYEES表创建触发器“TRG_DML_EMP_SALARY”,保证插入新员工或修改员工工资时,员工的最新工资在其工作职位所允许的工资范围之内。提交开发文档(模板)分组演示系统并答辩三级项目概述——项目考核考核内容10分9分8分7分6分员工管理功能完善功能完善主要功能实现实现部分功能实现部分功能部门管理功能完善功能完善主要功能实现实现部分功能实现部分功能职位管理功能完善功能完善主要功能实现实现部分功能实现部分功能其他管理功能完善功能完善主要功能实现实现部分功能实现部分功能前台实现功能完善功能完善主要功能实现实现部分功能实现部分功能问题回答回答非常清楚回答基本清回答基本清楚回答基本清楚回答不清楚图书管理系统图书管理系统可以实现图书类别管理、图书信息管理、读者管理、图书借阅管理、借阅等级管理、借阅证管理、罚款管理等。管理员图书借阅管理读者管理借阅等级管理图书类别管理借阅证管理图书信息管理罚款管理usesusesusesusesusesusesusesBookCatagoryidnamedemoBookISBNnamepublishauthorpublishDatepricestorageDatestockNumberinNumberBookRoomidnameaddressphoneBookAdministratoridnamephoneReaderidnamesexphonephotoBorrowLevelidquantitydaysfi