《数据库原理课程设计》_第1页
《数据库原理课程设计》_第2页
《数据库原理课程设计》_第3页
《数据库原理课程设计》_第4页
《数据库原理课程设计》_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、数据库原理课程设计报告 1、 需求分析 此工资管理数据库针对一些中小型企业而建立的,主要是方便企业的管理,并进行工资的发放管理。数据库实现的五大主要功能:1、数据增加功能 (1)员工基本信息的输入:员工编号、姓名、性别、年龄、部门、职务参加工作时间、政治面貌。 (2)员工工资信息的输入:实发工资、应发工资、职务津贴、奖罚金额。 (3)企业部门信息的输入:部门编号、部门名称、部门主管、部门人数。2、数据删除功能数据的删除只有管理员才有此权限,当员工不在该企业工作,管理员对其信息进行级联删除,即删除员工与该企业相关的信息。当部门被撤销是,管理员可以对其信息进行删除等。 3、数据修改功能 (1)当企

2、业人员的信息发生变化,如职称的改变、工作部门的变动、工资的变化、调离本单位等,管理员应能够修改员工的信息或将其从员工信息表中删除,员工也可以自己修改自己的信息。 (2)当一个部门的名称发生改变时,企业中所有该项部门的名称应一致的改变,即级联修改。 (3)当工资选项有所改变时,工资实体的属性应该相应的变化。 4、数据查询功能 当管理员和员工登录系统时都可以进行数据的查询,管理员可以对系统的一切信息进行查询,但是员工制可以查询自己的信息,以及所在部门的信息。 2、 概念结构设计姓名部门编号部门名称员工编号性别年龄 部门 员工职务部门人数部门主管参加工作时间部门政治面貌(1) 员工实体及属性 (2)

3、部门实体及属性工作月份工作月份员工编号员工编号 出勤 津贴津贴金额加班天数出勤天数奖罚金额 (3)出勤实体及属性 (4)津贴实体及属性实发工资基本工资奖罚金额 工资员工编号津贴金额 (5)工资实体及属性(6) 实体及其联系图3、 逻辑结构设计1.数据字典的建立以及数据库和表的建立(1)员工关系表的数据字典:属性名存储代码类型(长度)备注员工编号EmployeeIDVARCHAR(10)主键,不为空员工姓名EmployeeNameVARCHAR(20)不为空员工年龄EmployeeAgeINT18-60岁之间员工职务EmployeePosVARCHAR(20)不为空员工性别EmployeeSex

4、CHAR(2)男 或 女员工部门EmployeeDeptVARCHAR(20)不为空政治面貌EmployeeStatusVARCHAR(10)党员、团员或群众参加工作时间StartDataINT以yyyymmdd形式建立员工关系表的SQL语句截图(2)员工部门表的数据字典属性名存储代码类型(长度)备注部门编号DepartmentIDVARCHAR(4)主键,不为空部门名称DepartmentNameVARCHAR(20)不为空部门主管DepartmentZhuguanVARCHAR(20)部门人数DepartmentRenshuINT建立员工部门表的SQL语句截图(3)出勤表的数据字典属性名存

5、储代码类型(长度)备注员工编号EmployeeIDVARCHAR(10)主键,不为空工作月份WorkMonthINT以yyyymm形式出勤天数WorkDaysINT31天以内奖罚金额JFMoneyMONEY建立出勤表的SQL语句截图(4)津贴表的数据字典属性名存储代码类型(长度)备注员工编号EmployeeIDVARCHAR(10)主键,不为空工作月份WorkMonthINT以yyyymm形式加班天数StayUpDaysINT31天以内津贴金额JTMoneyMONEY建立津贴表的SQL语句截图(5)工资表的数据字典属性名存储代码类型(长度)备注员工编号EmployeeIDVARCHAR(10)

6、主键,不为空基本工资BaseSalaryMONEY实发工资PracticalSalaryMONEY奖罚金额JFMoneyMONEY正、负分别代表奖、罚津贴金额JTMoneyMONEY总是正数建立工资表的SQL语句截图(6)工资管理数据库建立的SQL语句及建立好的数据库截图2. 视图的建立(1)建立名为EmployeeIDView的视图,限制条件为员工号为:(2) 建立名为PracticalSalaryView的视图,限制条件为员工号为:,实发工资大于1500员3. 对员工信息表、部门信息表、工资表的部分属性建立唯一索引4、 数据库的安全性和完整性1. 创建角色,名称为,2.创建新的用户,用户名

7、为wurongchao安全性与完整性方面的要求:针对不同的用户设计使用权限,角色等,根据需要设计触发器,用截图的方式给出安全性和完整性的设计情况。3. 触发器的设计 创建触发器,员工表中删除一条信息,其他表相应员工信息删除五、查询效果演示1.数据的插入(1)向员工信息表中插入(2)向部门信息表中插入(3)向出勤表中插入(4)向津贴表中插入(5)向工资表中插入2数据的查询(1)统计所有部门员工总数(2)查询销售部门所有成员的名字,所在的部门以及相应的部门主管的名字(3)查询员工实发工资小于元的员工姓名、及所在的部门(4)查询出勤天数大于天性别为女的员工姓名、员工编号、所在部门及奖罚金额3. 数据

8、的修改(1)将员工编号为所在的部门改为销售部(2)将所有员工的基本工资上调元4. 数据的删除(1)删除员工编号为的员工信息由图可知,当要被删除的属性被其他表的参照时不能直接对其进行删除,否则删除不成功,应先删除参照该表的所对应的的属性值(2) 删除部门编号为的员工信息6、 课程设计心得 此次课程设计确实学学到了很多东西,尤其是距离考试已经过去一个多月了,所学的东西好多都已经忘了,刚开始做的时候感觉蛮吃力的,总感觉下代码模模糊糊的,貌似正确但实际运行起来却又有很多错误,就连当初感觉最简单的查询都感到很陌生,后来就通过不断地翻书查资料,慢慢把熟悉的功能代码记忆起来,同时我们又遇上了上课期间没有遇到

9、的问题,每每解决一个问题,就有一种小小的成就感,使信心一步一步地增加,虽然这次做的课程设计用到的知识并不多,复杂度也不高,但是我想这是我们必须经历的一小步,将每一小步慢慢积累将会在我们的学习之路上跨越一大步,这就是成功的关键。 7、 实验SQL代码USE MASTER;GOIF EXISTS(SELECT * FROM SYSDATABASES WHERE name=GZGL)-查询数据库DROP DATABASE GZGL;GO CREATE DATABASE GZGL;-创建数据库GOIF EXISTS(SELECT * FROM SYSOBJECTS WHERE name=Departm

10、ent)-查询表是否存在DROP TABLE Department;GO CREATE TABLE Department-建立部门表(DepartmentId VARCHAR(4) PRIMARY KEY,-部门编号DepartmentName VARCHAR(20) UNIQUE NOT NULL,-部门名称DepartmentZhuguan VARCHAR(20) ,-部门主管DepartmentRenshu INT-部门人数);GOIF EXISTS(SELECT * FROM SYSOBJECTS WHERE name=Employee)DROP TABLE Employee;GO C

11、REATE TABLE Employee-建立员工信息表(EmployeeId VARCHAR(10) PRIMARY KEY ,-员工编号EmployeeName VARCHAR(20) NOT NULL ,-员工姓名CONSTRAINT CK_EmployeeNameLength CHECK (LEN(EmployeeName)=2),EmployeeSex VARCHAR(4) DEFAULT(男) NOT NULL,-员工性别CONSTRAINT CK_SexRange CHECK (EmployeeSex IN(男,女),EmployeeAge INT CHECK (Employee

12、Age BETWEEN 18 AND 60),-员工年龄EmployeePos VARCHAR(20),-员工职务EmployeeDept VARCHAR(20) ,-员工部门EmployeeStatus VARCHAR(10),-员工政治面貌StartData INT -参加工作时间);GOIF EXISTS(SELECT * FROM SYSOBJECTS WHERE name=Chuqin)DROP TABLE Chuqin;GO CREATE TABLE Chuqin-建立出勤表(EmployeeID VARCHAR(10) ,-员工编号WorkMonth INT CHECk (Wor

13、kMonth BETWEEN 0 AND 31),-工作月份Workdays INT,-出勤天数JFMoney MONEY,-奖罚金额CONSTRAINT ChuqinPK PRIMARY KEY (EmployeeID,WorkMonth),CONSTRAINT ChuqinFK FOREIGN KEY(EmployeeID) REFERENCES Employee(EmployeeID);GOIF EXISTS(SELECT * FROM SYSOBJECTS WHERE name=Allowance)DROP TABLE Allowance;GO CREATE TABLE Allowan

14、ce-建立津贴表(EmployeeID VARCHAR(10) ,-员工编号WorkMonth INT CHECk (WorkMonth BETWEEN 0 AND 31),-工作月份StayUpDays INT,-加班天数JTMoney MONEY,-津贴金额CONSTRAINT AllowancePK PRIMARY KEY (EmployeeID,WorkMonth),CONSTRAINT AllowanceFK FOREIGN KEY(EmployeeID) REFERENCES Employee(EmployeeID);GOIF EXISTS(SELECT * FROM SYSOBJ

15、ECTS WHERE name=Salary)DROP TABLE Salary;GO CREATE TABLE Salary-建立工资表(EmployeeID VARCHAR(10) PRIMARY KEY ,-员工编号BaseSalary MONEY ,-基本工资PracticalSalary MONEY,-实发工资JFMoney MONEY,-奖罚金额JTMoney MONEY,-津贴金额CONSTRAINT SalaryFK FOREIGN KEY(EmployeeID) REFERENCES Employee(EmployeeID);GO-建立员工信息的视图CREATE VIEW E

16、mployeeIDViewASSELECT *FROM EmployeeWHERE EmployeeID=;-建立工资信息的视图CREATE VIEW PracticalSalaryViewASSELECT *FROM SalaryWHERE EmployeeID= AND PracticalSalary1500;-对员工信息表的员工编号建立唯一索引,并按升序排列CREATE UNIQUE INDEX EmployeeIDIndex ON Employee(EmployeeID ASC);-对部门信息表的部门编号建立唯一索引,并按升序排列CREATE UNIQUE INDEX Departme

17、ntIDIndex ON Department(DepartmentID ASC);-对工资表的员工编号和实发工资建立唯一索引,并按员工编号升序排列,实发工资降序排列CREATE UNIQUE INDEX GZIndex ON Salary( EmployeeID ASC,PracticalSalary DESC);-向员工表插入数据,插入数据顺序如下-编号、姓名、性别、年龄、职务、部门、政治面貌、参加工作时间INSERT INTO Employee VALUES(,李勇,男,20,一般员工,市场部,党员,);INSERT INTO Employee VALUES(,刘晨,女,19,一般员工,

18、销售部,团员,);INSERT INTO Employee VALUES(,王敏,女,18,一般员工,公关部,党员,);INSERT INTO Employee VALUES(,张立,男,19,一般员工,宣传部,党员,);GO-向部门表插入数据,插入数据顺序如下-编号、名称、主管、人数INSERT INTO Department VALUES(0001,市场部,钟灵,15);INSERT INTO Department VALUES(0002,销售部,杨毅,20);INSERT INTO Department VALUES(0003,公关部,周倩,8);INSERT INTO Departme

19、nt VALUES(0004,宣传部,陈文茂,10);GO-向出勤表插入数据,插入数据顺序如下-员工编号、工作月份、出勤天数、奖罚金额INSERT INTO Chuqin VALUES(,7,30,100);INSERT INTO Chuqin VALUES(,7,25,-150);INSERT INTO Chuqin VALUES(,7,20,-500);INSERT INTO Chuqin VALUES(,7,27,-50);GO-向津贴表插入数据,插入数据顺序如下-员工编号、工作月份、加班天数、津贴金额INSERT INTO Allowance VALUES(,7,2,100);INSE

20、RT INTO Allowance VALUES(,7,0,0);INSERT INTO Allowance VALUES(,7,0,0);INSERT INTO Allowance VALUES(,7,0,0);GO-向工资表插入数据,插入数据顺序如下-员工编号、基本工资、实发工资、奖罚金额、津贴金额INSERT INTO Salary VALUES(,1500,1700,100,100);INSERT INTO Salary VALUES(,1500,1350,-150,0);INSERT INTO Salary VALUES(,1500,1000,-500,0);INSERT INTO Salary VALUES(,1500,1450,-50,0);GO-创建触发器,员工表中删除一条信息,其他表相应员工信息删除CREATE TRIGGER NumberOne ON EmployeeFOR DELETEASDELETE FROM Chuqin WHERE EmployeeID IN (SELECT EmployeeID FROM DELETED )DELETE FROM Allowance WHERE EmployeeID IN (SELECT EmployeeID FROM DELETED )DELETE FROM Salary WHERE EmployeeI

温馨提示

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

最新文档

评论

0/150

提交评论