sql考试题,求解答
1、一个有关某医院病房管理子系统的数据库中需要如下信息:描述科室的属性:科室号,科室名,科室地址,科室电话,医生描述病房的属性:病房号,床位号,所属科室名描述医生的属性:...
1、一个有关某医院病房管理子系统的数据库中需要如下信息:
描述科室的属性:科室号,科室名,科室地址,科室电话 ,医生
描述病房的属性:病房号,床位号,所属科室名
描述医生的属性:姓名,职称,年龄,工作证号
描述病人的属性:病历号,姓名,性别,就诊记录,就诊医生
有关语义如下:
一个科室下设多个病房、包括多名医生,每个科室有一名医生担任科室主任,,一位医生可负责多个病人的诊治,一个病人的诊断医生可有多个。
请完成如下设计:
(1)设计该病房管理子系统的E-R图,并标明各实体之间的联系
(2)将该E-R图转换为关系模式,并将各关系模式规范化到3NF
(3)指出各关系模式的候选码。
求详细解答 展开
描述科室的属性:科室号,科室名,科室地址,科室电话 ,医生
描述病房的属性:病房号,床位号,所属科室名
描述医生的属性:姓名,职称,年龄,工作证号
描述病人的属性:病历号,姓名,性别,就诊记录,就诊医生
有关语义如下:
一个科室下设多个病房、包括多名医生,每个科室有一名医生担任科室主任,,一位医生可负责多个病人的诊治,一个病人的诊断医生可有多个。
请完成如下设计:
(1)设计该病房管理子系统的E-R图,并标明各实体之间的联系
(2)将该E-R图转换为关系模式,并将各关系模式规范化到3NF
(3)指出各关系模式的候选码。
求详细解答 展开
1个回答
展开全部
<pre t="code" l="sql">--二.
create database KCGL
on
(
name='KCGL',
filename='E:\班级\姓名+学号\KCGL.mdf',
size=5,
maxsize=25,
filegrowth=20%
)
log on
(
name='KCGL_log',
filename='E:\班级\姓名+学号\KCGL_log.ldf',
size=3,
filegrowth=10%
)
--三.
USE KCGL
GO
create TABLE STUDENT
(
S_NO VARCHAR(20),
S_NAME VARCHAR(20),
S_SEX CHAR(10),
S_AGE INT,
S_ADDRESS VARCHAR(100),
S_DEPT VARCHAR(40)
)
--若要插入所有数据按照下面的模式根据题依次插入
INSERT INTO student VALUES('','王敏','女',21,'武汉','IS')
create TABLE COURSE
(
C_NO VARCHAR(20),
C_NAME VARCHAR(20),
C_CREDIT INT,
C_TYPE VARCHAR(20)
)
--若要插入所有数据按照下面的模式根据题依次插入
INSERT INTO COURSE VALUES('001','VB程序设计',4,'专业课')
create TABLE SC
(
S_NO VARCHAR(20),
SEMESTER VARCHAR(20),
C_NO VARCHAR(20),
GRADE FLOAT
)
--若要插入所有数据按照下面的模式根据题依次插入
INSERT INTO COURSE VALUES('','','001',78.0)
--四.
--1.
--为表STUDENT,COURSE加主键
ALTER TABLE STUDENT ADD CONSTRAINT pk_STUDENT PRIMARY KEY(S_NO);
ALTER TABLE COURSE ADD CONSTRAINT pk_STUDENT PRIMARY KEY(C_NO);
--为表SC加2外键
alter table SC add constraint fk_S_NO foreign key (S_NO) references student (S_NO)
alter table SC add constraint fk_C_NO foreign key (C_NO) references student (C_NO)
--2.
ALTER TABLE STUDENT ADD CONSTRAINT DF_STUDENT_adress DEFAULT '湖北' FOR S_ADDRESS;
--3.
Alter table SC add constraint CK_SC check (SEMESTER = '' OR SEMESTER = '')
--五.
--1.
SELECT S_NAME,A_AGE,S_DEPT FROM student WHERE S_NAME = '孟凡'
--2.
select COUNT(S.S_NO) FROM SC S,student ST WHERE s_sex='女' and GRADE >80
--3.
create view KCGLVL
as
SELECT S.SNO,S.SNAME,Co ,C.Grade FROM stu S,SC C WHERE S.SNO = C.SNO
--4.
create procedure KCGLPRO
@S_NO varchar(20)
as
BEGIN
select COUNT(C_NO) from SC where Sno = @S_NO
END
execute KCGLPRO ''PS:我用的数据库是SQL SERVER 2008,剩下几题自己想想办法,做这么多及格分数已经够了。
create database KCGL
on
(
name='KCGL',
filename='E:\班级\姓名+学号\KCGL.mdf',
size=5,
maxsize=25,
filegrowth=20%
)
log on
(
name='KCGL_log',
filename='E:\班级\姓名+学号\KCGL_log.ldf',
size=3,
filegrowth=10%
)
--三.
USE KCGL
GO
create TABLE STUDENT
(
S_NO VARCHAR(20),
S_NAME VARCHAR(20),
S_SEX CHAR(10),
S_AGE INT,
S_ADDRESS VARCHAR(100),
S_DEPT VARCHAR(40)
)
--若要插入所有数据按照下面的模式根据题依次插入
INSERT INTO student VALUES('','王敏','女',21,'武汉','IS')
create TABLE COURSE
(
C_NO VARCHAR(20),
C_NAME VARCHAR(20),
C_CREDIT INT,
C_TYPE VARCHAR(20)
)
--若要插入所有数据按照下面的模式根据题依次插入
INSERT INTO COURSE VALUES('001','VB程序设计',4,'专业课')
create TABLE SC
(
S_NO VARCHAR(20),
SEMESTER VARCHAR(20),
C_NO VARCHAR(20),
GRADE FLOAT
)
--若要插入所有数据按照下面的模式根据题依次插入
INSERT INTO COURSE VALUES('','','001',78.0)
--四.
--1.
--为表STUDENT,COURSE加主键
ALTER TABLE STUDENT ADD CONSTRAINT pk_STUDENT PRIMARY KEY(S_NO);
ALTER TABLE COURSE ADD CONSTRAINT pk_STUDENT PRIMARY KEY(C_NO);
--为表SC加2外键
alter table SC add constraint fk_S_NO foreign key (S_NO) references student (S_NO)
alter table SC add constraint fk_C_NO foreign key (C_NO) references student (C_NO)
--2.
ALTER TABLE STUDENT ADD CONSTRAINT DF_STUDENT_adress DEFAULT '湖北' FOR S_ADDRESS;
--3.
Alter table SC add constraint CK_SC check (SEMESTER = '' OR SEMESTER = '')
--五.
--1.
SELECT S_NAME,A_AGE,S_DEPT FROM student WHERE S_NAME = '孟凡'
--2.
select COUNT(S.S_NO) FROM SC S,student ST WHERE s_sex='女' and GRADE >80
--3.
create view KCGLVL
as
SELECT S.SNO,S.SNAME,Co ,C.Grade FROM stu S,SC C WHERE S.SNO = C.SNO
--4.
create procedure KCGLPRO
@S_NO varchar(20)
as
BEGIN
select COUNT(C_NO) from SC where Sno = @S_NO
END
execute KCGLPRO ''PS:我用的数据库是SQL SERVER 2008,剩下几题自己想想办法,做这么多及格分数已经够了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询