第一章习题答案 DDCB DADD
2、某医院病房计算机管理中需要如下信息: 一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。
完成:设计该计算机管理系统的E-R图
4.假设某公司的业务规则如下:
习题一:三、2答案科室11有n有n病房1医生1有n治疗病人n(1)公司下设几个部门,如技术部、财务部、市场部等; 习题一:三、4答案(2)每个部门承担多个工程项目,每个工程项目属E-R模型公司于一个部门; 1部门号设置(3)每个部门有多名职工,每一名职工只能属于一n部门名个部门; 部门11(4)一个部门可能参与多个工程项目,且每个工程有参与nn项目有多名职工参与施工。根据职工在工程项目中完m工程项目n参与职工性别成的情况发放酬金;
工程号工程名酬金职工号姓名(5)工程项目有工程号、工程名两个属性;部门有部门号、部门名称两个属性;职工有职工号、姓名、性别属性。
请根据上述规则设计E-R模型。
第3章 设计题 答案
1.学校有若干个系,每个系有若干班级和教研室,每个教研室有若干教师,每名教师只教一门课,每门课可由多个教师教;每个班有若干学生,每个学生选修若干课程,每门课程可由若干学生选修。请用E-R图画出该学校的概念模型,注明联系类型,再将E-R模型转换为关系模型。
假定:主码____ 或 # n
外码 或 _____ 1 学院(院名,地址,成立日期,教师人数,学生人数) 系(系名,系址,系主任,院名) 7个实体各自为一个关系班级(班号,专业名,入学年份,学生数,班级导师,系名) 模式,6个1:N的联系没有学生(学号,姓名,性别,出生日期,联系电话,籍贯,班号) 成为一个独立的关系模教研室(教研室名称,教师人数,电话,办公室编号,系名) 式,全部合并到多方实体 教师(教工号,姓名,性别,出生日期,联系电话,教研室名称,课号) 课程(课号,课名,学时,学分,开课学期,必修课否) 选修(学号,课号,成绩) 1个M:N的联系必须成为一个独立的关系模
2.工厂生产的每种产品由不同的零件组成,有的零件可用于不同的产品。这些零件由不同的原材料制成,不同的零件所用的材料可以相同。一个仓库存放多种产品,一种产品存放在一个仓库中。零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中(不跨仓库存放)。请用E-R图画出此关于产品,零件,材料,仓库的概念模型,注明联系类型,再将E-R模型转换为关系模型。
4个实体各自为一个关系模式,2个产品(产品名,型号,重量,仓库号,数量c)
1:N的联系没有成为一个独立的关零件(零件名,规格) 系模式,而是合并到多方实体,合材料(材料编号,名称,仓库号,数量a)
并时包括联系得属性 仓库(仓库号,地点,面积,保管员)
产品-零件(产品名,零件名,组装日期b)
零件-材料(材料编号,零件名,生产日期a) 零件-仓库(零件名,仓库号,数量b)
3个M:N的联系必须成为一个独立的关系模
3、一个图书馆理系统中有如下 信息: 图书:书号、书名、数量、位置 借书人:借书证号、姓名、单位
出版社:出版社名、邮编、地址、电话、E-mail
其中约定:任何人可以借多种书,任何一种书可以被多个人借,借书和还书时,要登记相应的借书日期和还书日期;一个出版社可以出版多种书籍,同一本书仅为一个出版社所出版,出版社名具有惟一性。
根据以上情况,完成如下设计: (1)设计系统的E-R图;
(2)将E-R图转换为关系模式,并指出函数依赖;
(3)指出转换后的每个关系模式的关系键(主键,外键)。 解答: (1)
邮编 地址 社名 书号 书名 数量 位置
出版社 图书 出版N 1
N
借书日期 还书日期 借阅E_mail 电话
M
借书人
姓名 单位 借书证号
图书关系模式:图书(书号,书名,数量,位置,出版社名) 借书人关系模式:借书人(借书证号,姓名,单位)
出版社关系模式:出版社(出版社名,邮编,地址,电话,E-mail) 借阅关系模式:借阅(借书证号,书号,借书日期,还书日期) 关系主键:(借书证号,书号) 外键1:借书证号 外键2:书号
第五章 二 设计题 答案 --3.
CREATE DATABASE zygl ON
(NAME = 'zygl_Data',
FILENAME ='E:\\sql\\zygl_Data.MDF' ,
SIZE = 1, MAXSIZE = 30, FILEGROWTH = 10% )
LOG ON
(NAME = 'zygl_Log',
FILENAME ='E:\\ sql\\zygl_Log.LDF' , SIZE = 3, FILEGROWTH = 1 ) GO --4
ATLER DATABASE ZYGL MODIFY FILE
( NAME =ZYGL_DATA, FILEGROWTH =5 ) --5
ATLER DATABASE ZYGL ADD FILE
(NAME =ZYGLBAK ,
FILENAME ='E:\\ sql\\zygl_Data1 .NDF' ,
SIZE = 1, MAXSIZE = 50, FILEGROWTH = 10% )
--6
DROP DATABASE ZYGL
第六章 二 设计题 答案 --1.
create database scd go
Use scd Go
CREATE TABLE department (系号 char(3) PRIMARY KEY, 系名 char(20) not null unique ) Go
CREATE TABLE class
(班号 char(3) PRIMARY KEY, 专业名 char(20),
系名 char(20) references department(系名) , 入学年份 int ) Go
CREATE TABLE student (学号 char(7) PRIMARY KEY, 姓名 char(8) NOT NULL,
年龄 int constraint ck_nl CHECK(年龄 >=15 and 年龄<=40)
constraint df_nl DEFAULT 18, --指定约束名ck_nl 和df_nl,以便以后好删除 班号 char(3) references class(班号) )
Insert into department values ('001', '数学'); Insert into department values ('002', '计算机'); Insert into department values ('003', '化学')
Insert into class values ( '101','软件','计算机',2005); Insert into class values ( '102','微电子','计算机',2006);
Insert into class values ('111','无机化学','化学',2004); Insert into class values ('112','高分子化学','化学',2006 )
Insert into student values('2008101','张山',18,'101'); Insert into student values('2008102','李斯',16,'102'); Insert into student values( '2008103','王玲',17,'111') Insert into student values( '2008104','李飞',19,'112') --2. --1)
Insert into department values(‘006’,’物理系‘) Insert into department values(‘008’,’经济系‘) --2)
Delete class where 入学年份<2004 --3)
Update student set 班号='111' where 姓名='张山'
--4)
Update student set 年龄=年龄+1 --3. --1)
--要删除年龄列,应先删除该列上的约束,再删除 Alter table student drop constraint ck_nl, df_nl --删除年龄列
Alter table student drop column 年龄
Alter table student add 出生日期 datetime --2)
Alter table class
Add 班长学号 char(7) references student(学号)
--上机题答案
--创建数据库ZYCL create database ZYGL go
--使用数据库ZYGL use zygl go
--创建数据表 --1.部门表
create table 部门表 (
部门号 char(2) primary key, 部门名 char(10) not null unique, 电话 char(4)