资源描述
项目名称
一、功能模块分解
参见教材第334-335页
二、数据库设计
1、设计表
(1)宿舍楼基本信息表(drom_table)
列名
数据类型
长度
约束
说明
drom_id
Varchar2
6
PRIMARY KEY
宿舍楼编号
drom_sex
Varchar2
2
CHECK
男女宿舍
drom_mobile
Varchar2
15
NOT NULL
宿管处电话
drom_administ
Varchar2
10
NOT NULL
宿舍管理人员
wor_id
Varchar2
15
FOREIGN KEY(wor_id)
工作人员编号
(2)工人基本信息表(worker)
列名
数据类型
长度
约束
说明
wor_id
Varchar2
15
PRIMARY KEY
工作人员编号
wor_name
Varchar2
10
NOT NULL
工作人员姓名
wor_type
Varchar2
10
NOY NULL
工作类型
salary
NUMBER
10.2
NOTNULL
工资
wor_sex
Varchar2
2
CHECK
性别
wor_mobile
Varchar2
15
NOT NULL
联系方式
wor_date
date
NOT NULL
雇佣日期
(3)学生基本信息表(student)
列名
数据类型
长度
约束
说明
stu_id
Varchar2
20
PRIMARY KEY
学号
stu_name
Varchar2
10
NOT NULL
学生姓名
stu_sex
Varchar2
2
CHECK
学生性别
stu_from
Varchar2
20
NOT NULL
学生生源地
stu_date
date
NOT NULL
学生出生日期
stu_hiredate
date
NOT NULL
学生入学时间
stu_college
Varchar2
20
NOT NULL
学生所在学院
stu_major
Varchar2
20
NOT NULL
学生所学专业
stu_class
Varchar2
20
NOT NULL
学生班级
stu_instructor
Varchar2
20
NOT NULL
学生辅导员
stu_contact
Varchar2
15
NOT NULL
辅导员联系方式
drom_id
Varchar2
6
FOREIGN KEY(drom_id)
学生所在宿舍楼
room_id
Varchar2
6
FOREIGN KEY(room_id)
学生所在宿舍
(4)宿舍信息表(room)
列名
数据类型
长度
约束
说明
room_id
Varchar2
6
PRIMARY KEY
宿舍编号
drom_id
Varchar2
6
FOREIGN KEY(drom_id)
宿舍楼编号
room_sum
Varchar2
6
NOT NULL
入住人数
room_full
Varchar2
2
CHECK
是否住满
romm_clear
Varchar2
2
CHECK
离校清理
(5)宿舍物品信息表(items)
列名
数据类型
长度
约束
说明
items_id
Varchar2
6
PRIMARY KEY
物品编号
items_name
Varchar2
20
NOT NULL
物品名称
items_repairs
Varchar2
2
CHECK
报修情况(是,否)
(6)宿舍物品损坏信息报修表(repairs)
列名
数据类型
长度
约束
说明
repairs_id
Varchar2
6
PRIMARY KEY
报修编号
repairs_plan
Varchar2
10
NOT NULL
报修进度
repairs_solve
Varchar2
2
CHECK
是否解决
2、创建表
表名
对象定义SQL语句
说明
drom_table
create tabledrom_table(
drom_id Varchar2(6) not null,
drom_sex Varchar2(2) not null,
drom_mobile Varchar2(15) not null,
drom_administ Varchar2(10) not null,
wor_id Varchar2(15)not null,
primary key(drom_id),
constraint p_fk foreign key (wor_id) references worker(wor_id)
);
用于存储宿舍楼基本信息,便于查删改;
worker
create table worker(
wor_id Varchar2(15) not null,
wor_name Varchar2(10) not null,
wor_type Varchar2(10) not null,
salary number(10,2) not null,
wor_sex Varchar2(2) not null,
wor_mobile Varchar2(15) not null,
wor_date date not null,
primary key(wor_id)
);
用于存储宿舍工作人员基本信息,便于宿舍管理,与信息的查删改;
student
create table student(
stu_id Varchar2(20)not null,
stu_name Varchar2(10)not null,
stu_sex Varchar2(2)not null,
stu_from Varchar2(20)not null,
stu_date date
stu_hiredate date
stu_college Varchar2(20)not null,
stu_major Varchar2(20)not null,
stu_class Varchar2(20)not null,
stu_instructor Varchar2(20)not null,
stu_contact Varchar2(15)not null,
drom_id Varchar2(6)not null,
room_id Varchar2(6)not null,
primary key(stu_id)
constraint p_fk foreign key (drom_id) references drom_table(drom_id)
constraint p_fk foreign key (room_id) references room(room_id)
);
用于存储学生的基本信息,便于宿舍管理,与信息的查删改;
room
create table room(
room_id Varchar2(6)not null,
drom_id Varchar2(6)not null,
room_sum Varchar2(6)not null,
room_full Varchar2(2)not null,
romm_clear Varchar2(2)not null,
primary key(room_id)
constraint p_fk foreign key (drom_id) references drom_table(drom_id)
);
用于存储宿舍基本信息,便于宿舍管理,与信息的查删改;
items
create table items(
items_id Varchar2(6),
items_name Varchar2(20),
items_repairs Varchar2(2),
primary key(items_id)
);
用于存储宿舍物品基本信息,便于宿舍管理,与信息的查删改;
repairs
create table repairs(
repairs_id Varchar2(6),
repairs_plan Varchar2(10),
repairs_solve Varchar2(2),
primary key(repairs_id)
);
用于存储宿舍物品损坏报修的基本信息,便于宿舍管理,与信息的查删改;
3、操作表中的数据
操作类型
数据操作SQL语句
说明
插入数据
insert into drom_table values(1,’男',03760000001,’小李’,101001);
insert into drom_table values(2,’女’,03760000002,'小红’,101002);
insert into worker values(101002,’小红',’宿管',1000,’女’,13103764444,to_date(20110101000000,’YYYYMMDDHH24MISS’));
insert into worker values(101001,’小李’,'宿管’,1000,'男',13103765555,to_date(20110101000000,'YYYYMMDDHH24MISS'));
insert into worker values(101003,’王郭斌','保洁’,1200,’男’,1310376666,to_date(20120101000000,'YYYYMMDDHH24MISS'));
insert into student values(141401101,’杨贝',’女’,'河南’,to_date(19970101000000,’YYYYMMDDHH24MISS'),to_date(20140901000000,’YYYYMMDDHH24MISS’),’信息工程学院','计算机应用技术’,’一班’,'张莉',’15936421111',’2','101’);
insert into student values(141401102,’程明恒’,’男',’河南',to_date(19950101000000,’YYYYMMDDHH24MISS'),to_date(20140901000000,’YYYYMMDDHH24MISS'),’信息工程学院’,’计算机应用技术’,’一班’,’张莉’,’15936421111’,'1’,'101’);
insert into room values(101,1,4,’否’,’否');
insert into room values(101,2,4,’否’,'否’);
insert into items values(1,’风扇’,’否’);
insert into items values(2,'电灯’,’否’);
insert into repairs values (1,'已上报’,'是’);
修改数据
update worker set salary=1500 where wor_id=101001;
删除数据
delete from worker;
truncate table worker;
查询数据
select *from worker;
4、设计视图
视图名
对象定义SQL语句
说明
sex_stu
create view sex_stu as select stu_id,stu_name,stu_sex from student where stu_sex=’女’ with check option;
创建一个带检查约束的视图.显示性别为女的学生信息
drom_select
create view drom_select as select * from drom_table where drom_id=1 with read only;
创建一个只读视图.显示宿舍楼编号为1的全部信息。
删除视图
drop view + 视图名
5、设计索引
索引名
对象定义SQL语句
说明
wor_id
create index wor_id on worker(wor_id);
工人信息表列为员工编号的位图索引
wor_name
create unique index wor_name on worker(wor_name);
工人信息表列为员工名称的唯一索引
wor_salary
query rewrite create index wor_salary on worker(round(salary));
工人信息表列为工资的函数索引
data_wor
create index data_wor on worker(wor_date);
工人信息表列为雇佣日期的B树索引
6、设计同义词
同义词名
对象定义SQL语句
说明
worker_syn
create public synonym worker_syn for worker;
工人信息表公有同义词
student_syn
create public synonym student_syn for student;
学生信息表公有同义词
drom_syn
create private synonym drom_syn for drom_table;
宿舍楼信息表私有同义词
room_syn
create private synonym room_syn for room;
宿舍信息表私有同义词
7、设计序列
序列名
对象定义SQL语句
说明
worker_seq
create sequence worker_seq increment by1
start with 1
maxvalue 100
nominvalue
nocycle
nocache
工人信息表中wor_id的唯一序列字段
student_seq
create sequence student_seq increment by1
start with 1
maxvalue 100
nominvalue
nocycle
nocache
学生信息表中stu_id的唯一序列字段
room_seq
create sequence room_seq increment by1
start with 1
maxvalue 100
nominvalue
nocycle
nocache
宿舍信息表中room025_id的唯一序列字段
8、设计存储过程
存储过程名
对象定义SQL语句
说明
pro_count_type
create or replace procedure pro_count_type(
type varchar2)
as
n_count number;
begin
select count(*) into n_count from worker where wor_type=type;
dbms_output.put_line(‘工作类型为’||type||’的员工人数为:'||n_count);
exception
when no_data_fount then
dbms_output。put_line(‘工作类型不存在’);
end;
根据输入的工作类型统计该类型的员工人数
9、设计函数
函数名
对象定义SQL语句
说明
getsal
create or replace function getsal(sno number)
return number
is
vsal number;
begin
select salary into vsal from worker where wor_id=sno;
return vsal;
exception
when too_many_rows then
dbms_output。put_line(‘too many rows’);
when others then
dbms_output.put_line(‘error’);
end;
创建一个函数,以员工编号查询对应员工工资
10、设计程序包
程序包名
对象定义SQL语句
说明
11、设计触发器
触发器名
对象定义SQL语句
说明
12、设计数据库用户
用户名
定义用户SQL语句
权限分配SQL语句
说明
13、备份与恢复
操作类型
对应操作的SQL语句
说明
备份
恢复
三、体会:
设计者:
上交时间:
展开阅读全文