课程编号:C0802000081
数据库系统与安全实验报告
姓
班
名
级
实 验 名 称
开 设 学 期
开 设 时 间
报 告 日 期
评 定 成 绩
Lzt
学
号
指 导 教 师
数据库系统与安全实验
2 0 1 8 - 2 0 1 9 春 季 学 期
第 9 周 — — 第 1 7 周
2019-6-26
评
定
人
评 定 日 期
2019-6-30
东北大学软件学院
实验 关系数据库设计
一、实验目的
1 掌握关系模型的完整性约束
2 熟练使用 SQL 语句
3 掌握 MYSQL 数据库的使用方法
4 掌握使用 ER 图进行关系数据库的设计
二、实验环境
MYSQL 6.3 数据库
三、实验结果总结
(一)数据库设计
1 根据医院信息系统的需求,设计的 ER 图如下图所示。
2 根据上述 ER 图,得到的数据库关系如下所示 [关系的主码使用下划线标识,外码使
用斜体标识]。
(二)SQL 语句
1 写出创建上述关系数据库表的 SQL 语句
以下是预先手写的建表语句:
create table employee
(
eID
char(20),
primary key,
char(20),
ename
smallint
job
salary
char(20),
officenum char(20),
);
create table equipment
(
typeID
description
operationalinstructions
unitnum
/ *1 代表员工,2 代表部门经理,3 代表总经理*/
primary key,
char(20) ,
char(20),
varchar(200),
char(20),
);
create table unit
(
uID
year
inspectiontime
typeID
foreign key (typeID) references equipment (typeID),
);
char(20),
char(4),
char(20),
char(20) ,
primary key,
create table room
(
rID
occupy
type
);
5.
create table patient
(
SSN
pname
paddress
ptel
padmission
pleave
);
primary key,
char(20),
char(2),
char(20),
/*有,无*/
primary key,
char(20),
char(20),
char(20),
char(11),
date,
date,
create table doctor
(
dID
dname
specialty
dtel
dsex
);
create table admission
(
admissionID
SSN
rID
payment
insurance
time
primary key,
char(20),
char(20),
varchar(20),
char(11),
bit(1),
primary key,
not null
not null
char(20),
char(20),
char(20),
char(8),
char(8),
char(4),
foreign key (SSN) references patient (SSN),
foreign key (rID) references room (rID),
);
create table visit
(
visitID
SSN
dID
comments
observation1
observation2
primary key,
not null
not null
char(20),
char(20),
char(20),
varchar(20),
varchar(20),
varchar(20),
foreign key (SSN) references patient (SSN),
foreign key (dID) references room (dID),
);
create table schedule
(
scheduleID
SSN
dID
scheduletime
char(20),
char(20),
char(20),
date,
primary key,
not null
not null
foreign key (SSN) references patient (SSN),
foreign key (dID) references room (dID),
);
create table roomunit
(
rID
uID
char(20),
not null
char(20),
not null
foreign key (rID) references patient (rID),
foreign key (uID) references room (uID),
primary key (rID,uID),
);
create table emp
(
eID1
eID2
char(20),
char(20),
foreign key (eID1) references employee (eID),
foreign key (eID2) references employee (eID),
primary key (eID1,eID2),
);
CREATE ASSERTION emp
/*要求 eID1 的职位比 eID2 的职位高 1*/
CHECK(
(SELECCT job
FROM employee
WHERE emp.eID1=employee.eID )
-
(SELECCT job
FROM employee
WHERE emp.eID2=employee.eID )
=1
)
以下是 mysql 中自动建表的:截图
Admission
Doctor
Emp
Employee
Equipment
Patient
Room
Roomunit
Schedule
Unit