1、课 程 设 计设计题目: 软件行业人才需求信息检索数据库设计与实现 课程名称: 信息系统数据库技术(一) 学 期: 2010-2011学年第一学期 专业班级: 信管0902 学号: 090310083 姓名: 徐莉 任课老师: 蔡妙娴 软件行业人才需求信息检索数据库设计与实现一、 系统开发目的随着现代社会的发展和电脑的普及,人们可以不外出就可以找到自己想要的东西。当然,在网上求职求人才也不例外。因此建立一个网上人才需求信息检索系统是非常有必要的。通过理论与实践教学,掌握关系型数据库的基本操作,理解关系型数据库的有关概念,具备一定的数据库结构设计的能力,并能综合运用所学知识,进行小型数据库应用系
2、统的开发工作。本次课程设计是基于ACCESS 2003数据库进行的软件行业人才需求信息检索数据库系统设计与实现。二、 系统概述此系统是软件行业人才需求信息检索数据库应用系统,适用于对软件行业的公司职位和人才的信息查询与检索。用户主要为有意从事软件行业工作的人才、软件公司。实现该系统应完成以下的功能:l 全面展示各个软件公司所要招聘的职位信息,并能对职位信息进行添加、删除、修改等操作;l 为用户提供个人求职信息的展示,并能对个人求职信息进行添加、删除、修改等操作。l 对用户输入的数据,系统进行严格的数据检验,尽可能排除人为错误。l 实现用户对各软件公司的查询和各招聘职位的检索,同时企业也可以搜索
3、用户的个人求职信息。三、 数据模型设计由用户业务需求得出数据E_R模型。1、原始数据图1 百伯人才网表1 用户个人求职信息表用户个人求职信息表用户ID(系统自动编号)00905姓名徐若翎性别女年龄23学历大学本科所学专业信息管理求职职位技术支持工程师职位薪金要求4500以上联系方式电子邮箱1115306124照片其他说明无表2 公司信息表软件公司基本信息表企业名称用友软件公司公司性质股份有限公司公司规模大型公司简介用友公司是中国最大的管理软件、ERP软件、集团管理软件、人力资源管理软件、客户关系管理软件及小型企业管理软件提供商。 招聘职位软件工程师、产品经理联系地址北京市海淀区北清路68号服务
4、热线4006-777-292公司电子邮箱Contact表3 招聘职位与标准信息表-奥鹏远程教育中心有限公司职位ID: 003 职位名称: 测试工程师 职位说明: 测试工程师事从事编写自动测试脚本程序并担任测试编程初期的领导工作的技术人员。职位性质:全职(全职、兼职、实习)职位类别:技术人员(技术人员、管理人员等)职位任务: 编写测试计划和测试用例、搭建和维护测试环境、为业务部门提供相应的支持、确保软件质量指标。 招聘人数:6人 性别要求:男(有无特别限制。如果有,请特别说明。)年龄要求: 20-30岁 品质要求:遵纪守法,无不良行为记录。学历要求:大专 薪金要求: 3500左右 工作经验:从事
5、计算机软件测试或编程工作两年以上。2、整体E-R图由原始数据可以得到:公司、用户、个人求职信息、招聘地区、招聘职位、招聘标准这个六个实体,并写出每个实体的属性。在根据业务规则可以确定每个实体之间的关系:公司与招聘地区之间使多对多关系;公司与用户之间是多对多关系;用户和个人求职信息之间是一对多的关系;招聘职位与用户之间是多对多关系;招聘职位与公司是多对多关系;招聘职位与个人求职信息之间是一对多的关系,招聘职位与标准信息之间是一对多的关系。四、 数据库设计1.将E-R图转化为关系,如下:(主键,外键)COMPANY(CompanyID,CompanyName,CompanyProfile,Comp
6、anyProperties,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,PositionProper
7、ties,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)COMPANY_CU
8、STOMER(CompanyID,CustomerID)CUSTOMER_POSITION(CustomerID,PositionID)2、最终关系模型分析说明:关系模型是由E-R模型转化得到的,把其中实体之间的多对多关系转变为由一个联系表连接起来的一对多关系,并在实体中标明主键、外键等信息。同时,把中间存在的函数依赖关系规范化(如:公司实体中原本有招聘职位这一项,规范化以后就去掉这一属性,改用联系表联系公司实体和招聘职位),最后得出规范化后的关系模型。五、数据库实现1、SQL语句(1)公司表CREATE TABLE COMPANY(CompanyID Text(6) PRIMARY KEY,
9、CompanyName Text(25) NOT NULL,CompanyProfile Text(100) NULL,CompanyProperties Text(50) NULL,CompanySize Text(50) NULL,ServiseHotline Text(25) NOT NULL,CompanyE-mail Text(50) NULL,CompanyAddress Text(75) NULL);修改公司表结构INSERT INTO COMPANYVALUES (A03, 中兴通讯学院, , 国营, 中小型, 07097374748, , );查询语句SELECT *FROM
10、 COMPANY;(2)用户表CREATE TABLE CUSTOMER(CustomerID Text(6) PRIMARY KEY,CustomerName Text(15) NOT NULL,Sex Text6) NULL,Age Text(6) NULL,Major Text(25) NULL,Degree Text(15) NULL,CustomerE-mail Text(50) NOT NULL,Telephone Text(25) NULL,SubmitTime DateTime NULL);修改用户表结构ALTER TABLE CUSTOMER ADD SubmitTime D
11、ateTime NULL;查询语句SELECT *FROM CUSTOMERWHERE CustomerID=01001;(3)招聘职位表CREATE TABLE POSITION(PositionID Text(6) PRIMARY KEY,PositionName Text(50) NOT NULL,PositionProfile Text(100) NULL,PositionTask Text(150) NULL,PositionProperties Text(15) NULL,PositionCategory Text(25) NULL,EndTime DateTime NULL);修
12、改招聘职位表结构ALTER TABLE POSITION ADD EndTime DateTime NULL;查询语句SELECT *FROM POSITION;(4)招聘地区表CREATE TABLE REGION(RegionID Text(6) PRIMARY KEY,RegionName Text(25) NULL,Admin Center Text(25) NULL);修改招聘地区表结构ALTER TABLE REGION ADD AdminCenter Text(25) NULL;(5)招聘标准信息表CREATE TABLE RECRUI_INFORM(StandardID Tex
13、t(6) NOT NULL,RecruitNum Int(10) NULL,SexRequire Text(6) NULL,QualityRequire Text(150) NULL,SkillsRequire Text(150) NULL,AgeRequire Text(6) NULL,DegreeRequire Text(15) NULL,SalaryRequire Text(20) NULL,WorkExper Text(150) NULL,PositionID Text(6) NOT NULL,PublishTime DateTime NULL,CONSTRAINT RECRUITIN
14、FORM_PK PRIMARY(StandardID),CONSTRAINT REC_POS_FK FOREIGN KEY(PositionID) REFERENCES POSITION(PositionID)ON UPDATE CASCADEON DELETE NO ACTION);修改招聘标准信息表结构ALTER TABLE RECRUI_INFORM ADD PublishTime DateTime NULL;查询语句SELECT *FROM RECRUI_INFORMWHERE RecruitNum6;(6)个人求职信息表CREATE TABLE PAPI(JobInformID Te
15、xt(6) NOT NULL,CustomerID Text(6) NOT NULL,PositionID Text(6) NOT NULL, Salary Text(25) NULL, Others Text(150) NULL,SubmitTime DateTime NULL,CONSTRAINT PAPI_PK PRIMARY(JobInformID),CONSTRAINT PAPI_CUS_FK FOREIGN KEY(CustomerID) REFERENCES CUSTOMER(CustomerID)ON UPDATE CASCADE,CONSTRAINT PAPI_POS_FK
16、FOREIGN KEY(PositionID) REFERENCES POSITION(PositionID)ON UPDATE CASCADE,ON DELETE NO ACTION, CONSTRAINT PAPI_CUS_FK FOREIGN KEY(CustomerID) REFERENCES CUSTOMER(CustomerID)ON UPDATE CASCADEON DELETE NO ACTION);修改个人求职信息表结构ALTER TABLE PAPI ADD SubmitTime DateTime NULL;查询语句SELECT *FROM PAPIWHERE Custom
17、erID=01001;(7)公司-用户联系表CREATE TABLE COMPANY-CUSTOMER(CustomerID Text(6) NOT NULL,CompanyID Text(6) NOT NULL, CONSTRAINT COMPANY_CUSTOMER_PK PRIMARYKEY(CustomerID,CompanyID),CONSTRAINT COMPANY_CUSTOMER_FK FOREIGN KEY(CustomerID) REFERENCES CUSTOMER(CustomerID)ON UPDATE CASCADE,ON DELETE NO ACTION,CONS
18、TRAINT COMPANY_CUSTOMER_FK FOREIGN KEY(CompanyID) REFERENCES COMPANY(CompanyID)ON UPDATE CASCADEON DELETE NO ACTION);(8)公司-职位联系表CREATE TABLE COMPANY-POSITION(PositionID Text(6) NOT NULL,CompanyID Text(6) NOT NULL, CONSTRAINT COMPANY_POSITION_PK PRIMARYKEY(PositionID,CompanyID),CONSTRAINT COMPANY_POS
19、ITION_FK FOREIGN KEY(PositionID) REFERENCES POSITION(PositionID)ON UPDATE CASCADE,ON DELETE NO ACTION,CONSTRAINT COMPANY_POSITION_FK FOREIGN KEY(CompanyID) REFERENCES COMPANY(CompanyID)ON UPDATE CASCADEON DELETE NO ACTION);(9)公司-招聘地区联系表CREATE TABLE COMPANY-REGION(RegionID Text(6) NOT NULL,CompanyID
20、Text(6) NOT NULL, CONSTRAINT COMPANY_REGION_PK PRIMARYKEY(RegionID,CompanyID),CONSTRAINT COMPANY_REGION_FK FOREIGN KEY(RegionID) REFERENCES REGION(RegionID)ON UPDATE CASCADE,ON DELETE NO ACTION,CONSTRAINT COMPANY_REGION_FK FOREIGN KEY(CompanyID) REFERENCES COMPANY(CompanyID)ON UPDATE CASCADEON DELET
21、E NO ACTION);(10)用户-职位联系表CREATE TABLE CUTOMER_POSITION(CustomerID Text(6) NOT NULL,PositionID Text(6) NOT NULL, CONSTRAINT CUTOMER_POSITION _PK PRIMARYKEY(CustomerID,PositionID),CONSTRAINT CUTOMER_POSITION_FK FOREIGN KEY(CustomerID) REFERENCES CUSTOMER(CustomerID)ON UPDATE CASCADE,ON DELETE NO ACTIO
22、N,CONSTRAINT CUTOMER_POSITION_FK FOREIGN KEY(PositionID) REFERENCES POSITION(PositionID)ON UPDATE CASCADEON DELETE NO ACTION);2、数据字典表1 (COMPANY)公司表COMPANY(公司)是否主键字段名字段描述数据类型长度可空索引缺省值备注是COMPANYID公司注册IDTEXT(6)6有(无重复)COMPANYNAME公司名称TEXT(25)25 COMPANYPROFILE公司简介TEXT(150)150是COMPANYPROPERTIES公司性质TEXT(50)
23、50是COMPANYSIZE公司规模TEXT(50)50是SERVISEHOTLINE服务热线TEXT(25)25COMPANYE-MAIL公司电子邮箱TEXT(50)50是COMPANYADDRESS公司地址TEXT(75)75是表2 CUSTOMER(用户表)CUSTOMER(用户)是否主键字段名字段描述数据类型长度可空索引缺省值备注是CUSTOMERID用户注册IDTEXT(6)6有(无重复)CUSTOMERNAME姓名TEXT(15)15SEX性别TEXT(6)6是AGE年龄TEXT(6)6是DEGREE学历TEXT(15)15是MAJOR所学专业TEXT(25)25是TELEPHON
24、E电话TEXT(25)25是CUSTOMERE-MAIL用户电子邮箱TEXT(50)50SUBMITTIME提交时间DATETIME是 表3 PAPI(个人求职信息表)PAPI(个人求职信息)是否主键字段名字段描述数据类型长度可空索引缺省值备注是JOBINFORMID求职信息IDTEXT(6)6有(有重复)CUSTOMID用户注册IDTEXT(6)6有(有重复)外键POSITIONID申请职位IDTEXT(6)6是有(有重复)外键SALARY薪金TEXT(25)25是OTHERS其他说明TEXT(150)150是SUBMITTIME提交时间DATETIME是表4 POSITION(招聘职位表)
25、POSITION(招聘职位)是否主键字段名字段描述数据类型长度可空索引缺省值备注是POSITIONID职位IDTEXT(6)6有(无重复)POSITIONNAME职位名称TEXT(50)50POSITIONPROFILE职位说明TEXT(15)15是POSITIONTASK职位任务TEXT(150)150是POSITIONPROPERTIES职位性质TEXT(100)100是POSITIONCATEGORY职位类别TEXT(25)25是ENDTIME截止时间DATETIME是表5 RECRUITINFORM(招聘标准信息表)RECRUITINFORM(招聘标准信息)是否主键字段名字段描述数据类
26、型长度可空索引缺省值备注是STANDARDID标准信息IDTEXT(6)6有(有重复)POSITIONID职位IDTEXT(6)6有(有重复)外键SEXREQUIRE性别要求TEXT(6)6是QUALITYREQUIRE品质要求TEXT(150)150是SKILLSREQUIRE技能要求TEXT(150)150是AGEREQUIRE年龄要求TEXT(6)6是DEGREEREQUIRE学历要求TEXT(6)6是RECRUITNUM招聘人数INTEGER是SALARYREQUIRE薪金要求TEXT(25)25是WORKEXPER工作经验TEXT(150)150是PUBLISHTIME发布时间DAT
27、ETIME是表6 REGION(招聘地区表)REGION(招聘地区)是否主键字段名字段描述数据类型长度可空索引缺省值备注是REGIONID地区IDCHAR(6)6有(无重复)REGIONNAME地区名称CHAR(25)25是AdminCenter行政中心TEXT(25)25是表7 COMPANY_POSITION表COMPANY-POSITION(公司-职位)是否主键字段名字段描述数据类型长度可空索引缺省值备注是COMPANYID公司IDTEXT(6)6有(有重复)外键是POSITIONID职位IDTEXY(6)6有(有重复)外键表8 COMPANY_REGION表COMPANY-REGION
28、(公司-招聘地区)是否主键字段名字段描述数据类型长度可空索引缺省值备注是COMPANYID公司注册IDTEXT(6)6有(有重复)外键是REGIONID地区IDCHAR(6)6有(有重复)外键表9 COMPANY_CUSTOMER表COMPANY-CUSTOMER(公司-用户)是否主键字段名字段描述数据类型长度可空索引缺省值备注是COMPANYID公司注册IDTEXT(6)6有(有重复)外键是CUSTOMERID用户注册IDTEXT(6)6有(有重复)外键表10 CUSTOMER_POSITION表CUSTMER-POSITION(用户-职位)是否主键字段名字段描述数据类型长度可空索引缺省值备
29、注是CUSTOMERID用户注册IDTEXT(6)6有(有重复)外键是POSITIONID职位IDTEXY(6)6有(有重复)外键3、表间关系六、调试运行说明1、调试运行问题一在COMPANY表中输入一个记录时,忘记输入CompanyID,这时就会提示一个警告框,如下图:解决方法:因为CompanyID是主键,不能为空,所以在输入记录是必须填写数据,在此处添加一个数据值就可以了。2、调试运行问题二在准备保存数据表的时候,如果数据表中有错误或者输入数据不完全就会提示警告,如下图:解决方法:检查数据表里是否存在必填字段但是漏填的现象,并把必填字段填上。3、调试运行问题三在输入日期时间类型的数据时,
30、如果写成2011年一月一日或者20110101时,会出现以下的警告提示:解决方法:把日期时间型的数据输入为标准格式:2011-1-1,问题就会解决。七、总结通过本次数据库设计让我懂得了更多的数据库知识与技能。在进行E-R模型建立前,把数据库书认认真真的看了一遍,并且在网上查了大量的资料,最后才确定了系统的六个实体。然后在PowerDesign上画出E-R模型,并通过转化生成了关系模型图。然后再根据E-R模型图在Acess数据库中创建表,并进行规范化。最后是编写SQL语句,完成课程设计文档。在整个过程中,不可能是一帆风顺的。刚开始是不知道怎么用PD软件画E-R图,摸索了一个上午后,才大概了解到怎
31、么操作;后来是在建立数据库中的表的时候,没有规范化,在建立表间关系的时候才发现有很多错误,又重新做了一遍;最后是在编写SQL语句时,不知道怎么编写公司-用户表的语句,通过与老师网上交流最终把语句写出来了。尽管遇到了困难,但是学到了很多东西,数据库SQL语言、E-R模型、关系模型、数据字典、Acess数据库等等,这些知识对一个小型系统的设计与开发有着重要的意义。成绩评定表题目:软件行业人才需求信息检索系统数据库设计与实现学号姓名:090310083 徐莉优秀良好中等及格不及格报告文档1完全按照课程设计文档规范要求。2内容充实、设计合理。1完全按照课程设计文档规范要求。2内容较充实、设计较合理。1
32、基本按照课程设计文档规范要求。2内容较充实、设计较合理。1基本按照课程设计文档规范要求。2内容欠充实、设计欠合理。1没有按照课程设计文档规范要求。2内容不充实、设计不合理。E_R模型设计1业务分析很全面。2E_R模型设计合理。3E_R模型描述很清晰。1业务分析较全面。2E_R模型设计合理。3E_R模型描述清晰。1业务分析较全面。2E_R模型设计较合理。3E_R模型描述较清晰。1业务分析不够全面。2E_R模型设计较合理。3E_R模型描述较清晰。1业务分析不够全面。2E_R模型设计不合理。3E_R模型描述不清晰。数据库设计1表结构设计合理2表间关系正确3.符合4NF4.约束合理1表结构设计较合理。
33、2表间关系正确3.符合4NF4.约束较合理1表结构设计合理性一般。2表间关系正确3.基本符合4NF4.约束较合理1表结构设计欠合理。2表间关系基本正确3.基本符合4NF4.约束较合理1表结构设计不合理。2表间关系不正确3.不符合4NF4.约束不合理数据库实现1数据库正确实现2验证数据丰富。1数据库正确实现2验证数据较丰富。1数据库基本正确实现2验证数据较丰富。1数据库基本正确实现2验证数据较少。1数据库未正确实现2验证数据少。平时作业1作业无缺交、迟交。2作业完成度好1作业无缺交、迟交。2作业完成度较好1作业无缺交。2作业完成度较好1作业无缺交。2作业完成度一般1作业有缺交或迟交。2作业完成度
34、较差综合成绩评定: 评阅老师(签章):年 月 日 3、通过活动,使学生养成博览群书的好习惯。B比率分析法和比较分析法不能测算出各因素的影响程度。C采用约当产量比例法,分配原材料费用与分配加工费用所用的完工率都是一致的。C采用直接分配法分配辅助生产费用时,应考虑各辅助生产车间之间相互提供产品或劳务的情况。错 C产品的实际生产成本包括废品损失和停工损失。C成本报表是对外报告的会计报表。C成本分析的首要程序是发现问题、分析原因。C成本会计的对象是指成本核算。C成本计算的辅助方法一般应与基本方法结合使用而不单独使用。C成本计算方法中的最基本的方法是分步法。XD当车间生产多种产品时,“废品损失”、“停工
35、损失”的借方余额,月末均直接记入该产品的产品成本 中。D定额法是为了简化成本计算而采用的一种成本计算方法。F“废品损失”账户月末没有余额。F废品损失是指在生产过程中发现和入库后发现的不可修复废品的生产成本和可修复废品的修复费用。F分步法的一个重要特点是各步骤之间要进行成本结转。()G各月末在产品数量变化不大的产品,可不计算月末在产品成本。错G工资费用就是成本项目。()G归集在基本生产车间的制造费用最后均应分配计入产品成本中。对J计算计时工资费用,应以考勤记录中的工作时间记录为依据。()J简化的分批法就是不计算在产品成本的分批法。()J简化分批法是不分批计算在产品成本的方法。对 J加班加点工资既可能是直接计人费用,又可能是间接计人费用。J接生产工艺过程的特点,工业企业的生产可分为大量生产、成批生产和单件生产三种,XK可修复废品是指技术上可以修复使用的废品。错K可修复废品是指经过修理可以使用,而不管修复费用在经济上是否合算的废品。P品种法只适用于大量大