第1页共21页课程设计设计题目:软件行业人才需求信息检索数据库设计与实现课程名称:信息系统数据库技术(一)学期:2010-2011学年第一学期专业班级:信管0902学号:090310083姓名:徐莉任课老师:蔡妙娴第2页共21页软件行业人才需求信息检索数据库设计与实现一、系统开发目的随着现代社会的发展和电脑的普及,人们可以不外出就可以找到自己想要的东西。当然,在网上求职求人才也不例外。因此建立一个网上人才需求信息检索系统是非常有必要的。通过理论与实践教学,掌握关系型数据库的基本操作,理解关系型数据库的有关概念,具备一定的数据库结构设计的能力,并能综合运用所学知识,进行小型数据库应用系统的开发工作。本次课程设计是基于ACCESS2003数据库进行的软件行业人才需求信息检索数据库系统设计与实现。二、系统概述此系统是软件行业人才需求信息检索数据库应用系统,适用于对软件行业的公司职位和人才的信息查询与检索。用户主要为有意从事软件行业工作的人才、软件公司。实现该系统应完成以下的功能:全面展示各个软件公司所要招聘的职位信息,并能对职位信息进行添加、删除、修改等操作;为用户提供个人求职信息的展示,并能对个人求职信息进行添加、删除、修改等操作。对用户输入的数据,系统进行严格的数据检验,尽可能排除人为错误。实现用户对各软件公司的查询和各招聘职位的检索,同时企业也可以搜索用户的个人求职信息。三、数据模型设计由用户业务需求得出数据E_R模型。1、原始数据第3页共21页图1百伯人才网表1用户个人求职信息表用户个人求职信息表用户ID(系统自动编号)00905姓名徐若翎性别女年龄23学历大学本科所学专业信息管理求职职位技术支持工程师职位薪金要求4500以上联系方式电子邮箱1115306124@sina.com照片其他说明无第4页共21页表2公司信息表软件公司基本信息表企业名称用友软件公司公司性质股份有限公司公司规模大型公司简介用友公司是中国最大的管理软件、ERP软件、集团管理软件、人力资源管理软件、客户关系管理软件及小型企业管理软件提供商。招聘职位软件工程师、产品经理联系地址北京市海淀区北清路68号服务热线4006-777-292公司电子邮箱Contact@ufida.com.cn表3招聘职位与标准信息表----奥鹏远程教育中心有限公司职位ID:003职位名称:测试工程师职位说明:测试工程师事从事编写自动测试脚本程序并担任测试编程初期的领导工作的技术人员。职位性质:全职(全职、兼职、实习)职位类别:技术人员(技术人员、管理人员等)职位任务:编写测试计划和测试用例、搭建和维护测试环境、为业务部门提供相应的支持、确保软件质量指标。招聘人数:6人性别要求:男(有无特别限制。如果有,请特别说明。)年龄要求:20-30岁品质要求:遵纪守法,无不良行为记录。学历要求:大专薪金要求:3500左右第5页共21页工作经验:从事计算机软件测试或编程工作两年以上。2、整体E-R图由原始数据可以得到:公司、用户、个人求职信息、招聘地区、招聘职位、招聘标准这个六个实体,并写出每个实体的属性。在根据业务规则可以确定每个实体之间的关系:公司与招聘地区之间使多对多关系;公司与用户之间是多对多关系;用户和个人求职信息之间是一对多的关系;招聘职位与用户之间是多对多关系;招聘职位与公司是多对多关系;招聘职位与个人求职信息之间是一对多的关系,招聘职位与标准信息之间是一对多的关系。第6页共21页四、数据库设计1.将E-R图转化为关系,如下:(主键,外键)COMPANY(CompanyID,CompanyName,CompanyProfile,CompanyProperties,CompanySize,ServiseHotline,CompanyE-mail,CompanyAddress)CUSTOMER(CustomerID,CustomerName,Sex,Age,Degree,Major,Telephone,CustomerE-mail,SubmitTime)PAPI(JobInformID,CustomerID,PositionID,Salary,Others,SubmitTime)POSITION(PositionID,PositionName,PositionProfile,PositionTask,PositionProperties,PositionCategory,EndTime)RECRUIT_INFORM(StandardID,PositionID,SexRequire,QualityRequire,SkillsRequire,AgeRequire,DegreeRequire,RecruitNum,SalaryRequire,WorkExper,PublishTime)REGION(RegionID,RegionName,AdminCenter)COMPANY_POSITION(CompanyID,PositionID)COMPANY_REGION(CompanyID,RegionID)第7页共21页COMPANY_CUSTOMER(CompanyID,CustomerID)CUSTOMER_POSITION(CustomerID,PositionID)2、最终关系模型分析说明:关系模型是由E-R模型转化得到的,把其中实体之间的多对多关系转变为由一个联系表连接起来的一对多关系,并在实体中标明主键、外键等信息。同时,把中间存在的函数依赖关系规范化(如:公司实体中原本有招聘职位这一项,规范化以后就去掉第8页共21页这一属性,改用联系表联系公司实体和招聘职位),最后得出规范化后的关系模型。五、数据库实现1、SQL语句(1)公司表CREATETABLECOMPANY(CompanyIDText(6)PRIMARYKEY,CompanyNameText(25)NOTNULL,CompanyProfileText(100)NULL,CompanyPropertiesText(50)NULL,CompanySizeText(50)NULL,ServiseHotlineText(25)NOTNULL,CompanyE-mailText(50)NULL,CompanyAddressText(75)NULL);修改公司表结构INSERTINTOCOMPANYVALUES('A03','中兴通讯学院','','国营','中小型','07097374748','','');查询语句SELECT*FROMCOMPANY;(2)用户表CREATETABLECUSTOMER(CustomerIDText(6)PRIMARYKEY,CustomerNameText(15)NOTNULL,SexText6)NULL,AgeText(6)NULL,MajorText(25)NULL,DegreeText(15)NULL,CustomerE-mailText(50)NOTNULL,TelephoneText(25)NULL,SubmitTimeDateTimeNULL);修改用户表结构第9页共21页ALTERTABLECUSTOMERADDSubmitTimeDateTimeNULL;查询语句SELECT*FROMCUSTOMERWHERECustomerID=’01001’;(3)招聘职位表CREATETABLEPOSITION(PositionIDText(6)PRIMARYKEY,PositionNameText(50)NOTNULL,PositionProfileText(100)NULL,PositionTaskText(150)NULL,PositionPropertiesText(15)NULL,PositionCategoryText(25)NULL,EndTimeDateTimeNULL);修改招聘职位表结构ALTERTABLEPOSITIONADDEndTimeDateTimeNULL;查询语句SELECT*FROMPOSITION;(4)招聘地区表CREATETABLEREGION(RegionIDText(6)PRIMARYKEY,RegionNameText(25)NULL,AdminCenterText(25)NULL);修改招聘地区表结构ALTERTABLEREGIONADDAdminCenterText(25)NULL;第10页共21页(5)招聘标准信息表CREATETABLERECRUI_INFORM(StandardIDText(6)NOTNULL,RecruitNumInt(10)NULL,SexRequireText(6)NULL,QualityRequireText(150)NULL,SkillsRequireText(150)NULL,AgeRequireText(6)NULL,DegreeRequireText(15)NULL,SalaryRequireText(20)NULL,WorkExperText(150)NULL,PositionIDText(6)NOTNULL,PublishTimeDateTimeNULL,CONSTRAINTRECRUITINFORM_PKPRIMARY(StandardID),CONSTRAINTREC_POS_FKFOREIGNKEY(PositionID)REFERENCESPOSITION(PositionID)ONUPDATECASCADEONDELETENOACTION);修改招聘标准信息表结构ALTERTABLERECRUI_INFORMADDPublishTimeDateTimeNULL;查询语句SELECT*FROMRECRUI_INFORMWHERERecruitNum6;(6)个人求职信息表CREATETABLEPAPI(JobInformIDText(6)NOTNULL,CustomerIDText(6)NOTNULL,PositionIDText(6)NOTNULL,SalaryText(25)NULL,OthersText(150)NULL,SubmitTimeDateTimeNULL,CONSTRAINTPAPI_PKPRIMARY(JobInformID),CONSTRAINTPAPI_CUS_FKFOREIGNKEY(CustomerID)REFERENCESCUSTOMER(CustomerID)ONUPDATECASCADE,第11页共21页CONSTRAINTPAPI_POS_FKFOREIGNKEY(PositionID)REFERENCESPOSITION(PositionID)ONUPDATECASCADE,ONDELETENOACTION,CONSTRAINTPAPI_CUS_FKFOREIGNKEY(CustomerID)REFERENCESCUSTOMER(CustomerID)ONUPDATECASCADEONDELETENOACTION);修改个人求职信息表结构ALTERTABLEPAPIADDSubmitTimeDateTimeNULL;查询语句SELECT*FROMPAPIWHERECustomerID='01001';(7)公司-用户联系表CREATETABLECOMPANY-CUSTOMER(CustomerIDText(6)NOTNULL,CompanyIDText(6)NOTNULL,CONSTRAINTCOMPANY_CUSTOMER_PKPRIMARYKEY(CustomerID,CompanyID),CONSTRAINTCOMPANY_CUSTOMER_FKFOREIGNKEY(CustomerID)REFERENCESCUSTOMER(CustomerID)ONUPDATECASCADE,ONDELETENOACTION,CONSTRAINTCOMPANY_CUSTOMER_FKFOREIGNKEY(CompanyID)REFEREN