上机实验3参考答案(E-R图1)
E-R图的实验

题1:某学院的教学管理的对象是:系(系名,办公地址)、教师(教师工号、姓名、年龄、职称)、学生(学号,姓名,生日)、课程(课程号,课程名,学分)。
其中,一个系有多个教师每个教师只属于一个系,每个老师可上多门课,每门课只由一个老师上,每个学生可以在某学期选修多门课,每门课可有多个学生选修。
系表(系名,办公地址)学生表(学号,姓名,生日)教师(教师工号、姓名、年龄、职称,系名)课程(课程号,课程名,学分,教师工号)选课(学号,课程号,选修学期)题2:某旅行社管理系统管理的对象是:景点(景点编号,景点名称,地点,景点描述)、线路(线路编号,线路名称,线路描述)、导游(工号,姓名,等级)、旅游团队(团队编号,人数,开始日期,截止日期),其中,每条线路由多个景点组成,不同线路的景点存在交叉;每条线路有多名导游,但一名导游只负责一条线路;每条线路可同时存在多个旅游团队,每个团队只可旅游一条线路。
景点(景点编号,景点名称,地点,景点描述)线路(线路编号,线路名称,线路描述)导游(工号,姓名,等级)旅游团队(团队编号,人数,开始日期,截止日期)题3:某研究所科研管理系统情况如下:部门:包括部门号、部门名、办公室。
每个部门有多名职工。
职工:包括职工号、姓名、性别、年龄、职称、专业、简历。
简历:包括开始时间、终止时间、工作单位、担任职务。
项目:包括项目编号、项目名称、项目经费、项目来源、负责人。
每名职工可参加多个项目,每个项目可多名职工参加。
要求:☐画出表达此问题的实体关系图。
☐根据设计E-R模型,将其转换成关系模型,并标出主外键。
部门(部门号、部门名、办公室)职工(职工号、姓名、性别、年龄、职称、专业)简历(开始时间、终止时间、工作单位、担任职务,职工号)项目(项目编号、项目名称、项目经费、项目来源、负责人)题4:图中显示一张交通违章处罚通知书,根据这张通知书所提供的信息,设计一个E-R模型,并将这个E-R模型转换成关系数据模型,要求标注主码和外码。
E-R图练习答案

1解:
(1)本题的E-R图如图6.9所示。
(2)对应的关系模型结构如下:
科室(科名,科地址,科电话)
病房(病房号,床位号,科室名)
医生(工作证号,姓名,职称,科室名,年龄)
病人(病历号,姓名,性别,诊治,主管医生,病房号)
2.解:
(1)学生选课局部E-R图如图6.10 所示,教师任课局部E-R图如图6.11所示。
(2)合并的全局E-R图如图6.12所示。
为避免图形复杂,下面给出各实体属性:
单位:单位名、电话
学生:学号、姓名、性别、年龄
教师:教师号、姓名、性别、职称
课程:编号、课程名
(3)该全局E-R图转换为等价的关系模型表示的数据库逻辑结构如下:
图6.10 学生选课局部E-R图
单位(单位名,电话)
教师(教师号,姓名,性别,职称,单位名)课程(课程编号,课程名,单位名)
学生(学号,姓名,性别,年龄,单位名)讲授(教师号,课程编号)
选修(学号,课程编号)
3.解:
汇总后的E-R图如图6.14 所示。
各类实体的属性为:
部门:部门号,部门名,电话,地址
职工:职工号,职工名,职务,年龄,性别设备:设备号,名称,规格,价格
零件:零件号,名称,规格,价格
4.解:
(1)满足上述需求的E-R图如图5.15所示(2)转换为等价的关系模型结构如下;
借书人(借书证号,姓名,单位)
图书(书号,书名,数量,位置,出版社名)
出版社(出版社名,电报,电话,邮编,地址)
借阅
(借
书证
号,书
号,借
书日
期,还
书日
期)。
学校教务管理系统数据库课程设计心得【模版】

程序运行的环境:
具体运行环境为软件方面,操作系统为windows2000/XP,并且系统装有SQL Server2000数据库管理系统。
硬件方面,CPU主频500MHz以上,内存128M或更高。硬盘剩余空间不能少于30M。
四、工程预算及时间安排:
工程预算:由于程序本身并不十分复杂,实现起来软硬件需求都不算高,具体花费在此就不计算了。
一、信息分析:
(1)学校教务管理的数据库,包含以下信息:
学校有若干个系,每个系有若干名教师和学生,每个教师可以担任若干门课程,并参加多个项目,每个学生可以同时选修多门课程,每门课程每学期可能有多名教师教授,课程分为必修、选修、任选三种。
(2)学校的教务管理的信息包括:
学生姓名、学号、班级、性别、班号,籍贯、出生日期、所属系编号、所属系名称、系主任,教师编号,教师姓名,教师职称,教师所授课程、课程编号,课程名,课程学分,项目编号,项目名称,项目负责人,学生选修课程及成绩。学生如果课程及格,可以取得该课程的学分。学生的各类型课程学分和总学分累计到一定程度,学生可以毕业。根据成绩高低,可以计算学分积。及格学生的学分积公式:课程学分积=(该课程成绩-50)/10×该课程学分。
二、使用方式要求:
用户在可视化的环境中使用该系统,通过用户名和口令对用户的访问(及权限)进行限制。此系统平均应该能满足500人同时访问系统中的数据库,最高峰应能达到平均访问量得两倍。查询响应时间不应该对于3秒。
三、可扩充性要求:
系统中的数据库可以随学院规模的变化进行动态的扩充或缩减。功能根据学院不同时期的不同要求做出适当的增删。
IV.SQL查询
一、所有来自北京的男生:
Selectsname
From student
E-R图设计与关系模式转换 实验

实验二E-R图设计与关系模式转换实验目的1、了解数据库设计的基本步骤。
2、掌握实体联系图的设计。
3、掌握将E-R图转换为关系模式的规则。
4、掌握主键的概念。
实验环境PC机一台实验内容1、销售部门子系统在企业中,每个部门有多名职工,但是每个职工只能在一个部门工作。
每个部门都销售多种产品,同一种产品可以在多个部门销售。
在市场上,同一种产品有多家制造商都可生产,而一个制造商生产的产品也是多种,但是同一种产品,不同的制造商给的型号和价格是不一样的。
在制造商内部,对于某产品,有其企业内部使用的内部编号。
每个制造商都有制造商名和地址,其中,制造商名是唯一的。
每位职工都有职工编号,姓名,地址信息。
部门需要登记部门名称,部门经理等信息。
请根据题目描述画ER图,并转换为对应的关系模式指出其中的主键和外键。
职工(职工编号,姓名,地址信息)主键:职工号外键:部门(登记部门名称,部门经理)主键:部门号外键:产品(型号价格)主键:产品内部编号外键:制造商(制造商名和地址)主键:制作商名外键2、某医院病房计算机管理中心某医院需要建设病房的计算机管理中心,对于病房信息有如下描述:每个科室有多间病房和多名医生,但是科室之间不共享病房,即一间病房只能属于某一科室。
一名医生只能属于某科室,不能跨科室任职。
病人到医院就医,只有一名主治医生,一名医生可以负责多名病人的诊治,但是病人可多次就诊于该医院,选择不同科室的医生。
科室具有科室名称、地址、电话等属性,病房需要记录病房号、床位号等信息。
医生具有姓名、职称、年龄、工作证号等属性。
病人有病历号、姓名、性别等属性。
病人就诊时需要记录某次诊断时间,诊断结果和主治医生及入住的病房号,由于就诊记录很多,建议增加一个流水号。
病人住院,需要登记病人入住时间,病房号、床位号等信息。
请根据题目描述画ER图,并转换为对应的关系模式指出其中的主键和外键。
3、企业管理系统企业需要开发一个系统对内部的部门、职工和企业参与的工程项目进行管理,描述如下:企业内部有多个单位,每个单位都有各自的名称和电话。
前面上机实验部分参考答案

上机实验部分参考答案实验二:1、温度转换Private Sub Command1_Click()f = Val(Text1.Text)c = (f - 32) * 5 / 9Text2.Text = Str(c)End SubPrivate Sub Command2_Click()c = Val(Text2.Text)f = 9 * c / 5 + 32Text1.Text = Str(f)End Sub3、Print方法练习Private Sub Form_Click()For i = 1 To 5Print Tab(i); String(6 - i, "*"); Spc(6); String(i, "*") Next iEnd Sub4、圆周长面积Private Sub Command1_Click()Dim r!, m!, z!Const p = 3.14r = InputBox("请输入半径")m = p * r * r / 4z = 2 * p * rPrint "圆的面积为:", mPrint "圆的周长为:", zEnd Sub5、鸡兔同笼Private Sub Form_Click()Dim m%, n%m = InputBox("请输入总头数")n = InputBox("请输入总脚数")If n Mod 2 = 0 And n >= 2 * m And n <= 4 * m Theny = n / 2 - mx = m - yElseMsgBox "参数错误,请重新输入!"End IfPrint "已知,总头数m为:"; m, "总脚数n为:"; n Print "求得,鸡数x为:"; x, "兔数y 为:"; y End Sub实验三:2、计算电话费Private Sub Command1_Click()Dim st!, hours!, Money!'Dim date1 As Data, date2 As Datadate1 = CDate(Text1.Text)date2 = CDate(Text2.Text)st = DateDiff("s", date1, date2) / 60 '求两时间相差的分钟数Text3.Text = Format(st, "0.00") + " 分钟"If st <= 3 Then '计算通话费Money = 0.5ElseMoney = 0.5 + (st - 3) * 0.15End Ifhours = Val(Mid(Text1, 1, 2))If hours < 7 Or hours > 19 Then '是否在优惠的时间段内Money = Money * 0.5End IfText4.Text = Format(Str(Money), "¥0.00") + " 元"End Sub实验四:1、水仙花数Private Sub Form_Click()Dim i%, a%, b%, c%For a = 1 To 9For b = 0 To 9For c = 0 To 9If a * 100 + b * 10 + c = a * a * a + b * b * b + c * c * c ThenPrint a * 100 + b * 10 + cEnd IfNext cNext bNext aEnd Sub2、猴子吃桃Private Sub Command1_Click()Dim n%, i%x = 1Print "第七天桃子数为:"; x; "只"For i = 6 To 1 Step -1x = (x + 1) * 2Print "第"; i; "天的桃子数为:"; x; "只"Next iEnd Sub3、钢管下料Private Sub Command1_Click()Dim r%, a%, b%r = 321For b = 1 To 321 \ 27For a = 1 To 321 \ 17 - bt = 321 - b * 27 - a * 17If t >= 0 And t < r Thenr = tia = aib = bEnd IfNext aNext bPrint Tab(20); "17m长料下"; ia; "段"Print Tab(20); "27m长料下"; ib; "段"Print Tab(20); "余料="; r; "最少"End Sub实验五:1、字符串统计Private Sub Command1_Click()Dim a(1 To 26) As Integer, c As String * 1le = Len(Text1) '求字符串的长度For I = 1 To lec = UCase(Mid(Text1, I, 1)) '取一个字符,转换成大写If c >= "A" And c <= "Z" Thenj = Asc(c) - 65 + 1 '将A~Z大写字母转换成1~26的下标a(j) = a(j) + 1 '对应数组元素加1End IfNext IFor j = 1 To 26 '输出字母及其出现的次数If a(j) > 0 Then Picture1.Print " "; Chr(j + 64); "="; a(j);Next jEnd Sub2、统计成绩Private Sub Command1_Click()Dim mark(1 To 100) As Integer, aver!, n%, i%aver = 0For i = 1 To 100mark(i) = Int(Rnd * 101)aver = aver + mark(i)Next iaver = aver / 100n = 0For i = 1 To 100If mark(i) > aver Then n = n + 1Next iPrint aver, nEnd Sub实验六:1、点菜Private Sub Form_Load()List1.AddItem "宫爆鸡丁10元"List1.AddItem "鱼香肉丝8元"List1.AddItem "青菜蘑菇6元"List1.AddItem "清蒸鲈鱼20元"List1.AddItem "红烧牛肉15元"End SubPrivate Sub Command1_Click()Dim i As Integer, money As SingleList2.ClearFor i = 0 To List1.ListCount - 1If List1.Selected(i) ThenList2.AddItem List1.List(i)End IfNextEnd Sub2、滚动字幕Private Sub Form_Load()Timer1.Interval = 100HScroll1.Min = 1HScroll1.Max = 10HScroll1.Value = 5HScroll1.SmallChange = 1rgeChange = 2Label1.Top = Int(Rnd * ScaleHeight)Label1.FontSize = Int(1 + Rnd * 30)Label1.Left = Form1.WidthEnd SubPrivate Sub Timer1_Timer()Label1.Move Label1.Left - HScroll1.Value * 100 If Label1.Left < 0 ThenLabel1.Left = Form1.WidthLabel1.Top = Int(Rnd * ScaleHeight)Label1.FontSize = Int(1 + Rnd * 30)End IfEnd Sub。
orderroom(1)

数据库第一次上机实验报告创建库:CREATE DATABASE orderroomONPRIMARY( NAME = 'orderroom_data',FILENAME='D:\data\orderroom_data.mdf',SIZE = 2MB,MAXSIZE=5MB,FILEGROWTH=1MB)LOG ON( NAME = 'orderroom log',FILENAME='D;\data\orderroomlog.ldf',SIZE=1MB,MAXSIZE=5MB,FILEGROWTH=1MB)创建表1:use orderroomcreate table customercustomeridint not null primary key, customernamevarchar(20)not null, age int,sex char(2),cardname char(8) not null, cardid char(20) not null, address varchar(30),tlevarchar(20),note varchar(100))创建表2:use orderroomcreate table orderdetail(roomidint not null , customeridint not null, orderdatedatetime not null,days smallint not null,note varchar(100)primary key(roomid,customerid) )创建表3:use orderroomcreate table roomroomridint not null primary key,gread char(4),price int,state char(4))插入十个记录:insert into customer(customerid,customername,age,sex,cardname,cardid,address,tle,note) values(1,'aa',10,'女','军官证','10001','chengdu','1111',NULL)insert into customer(customerid,customername,age,sex,cardname,cardid,address,tle,note) values(2,'bb',11,'女','xuesheng','10002','meishan','2222',NULL)insert into customer(customerid,customername,age,sex,cardname,cardid,address,tle,note) values(3,'cc',12,'女','军官证','10003','RENSHOU','3333',NULL)insert into customer(customerid,customername,age,sex,cardname,cardid,address,tle,note) values(4,'dd',13,'男','shenfen','10004','ANDA','4444',NULL)insert into customer(customerid,customername,age,sex,cardname,cardid,address,tle,note) values(5,'ee',14,'女','军官证','10005','DAQING','5555',NULL)insert into customer(customerid,customername,age,sex,cardname,cardid,address,tle,note) values(6,'ff',15,'男','xuesheng','10006','HHHH','6666',NULL)insert into customer(customerid,customername,age,sex,cardname,cardid,address,tle,note) values(7,'gg',16,'男','军官证','10007','KJKJLJ','7777',NULL)insert into customer(customerid,customername,age,sex,cardname,cardid,address,tle,note) values(8,'hh',17,'女','xuesheng','10008','JHFG','8888',NULL)insert into customer(customerid,customername,age,sex,cardname,cardid,address,tle,note) values(9,'ii',18,'男','军官证','10009','FSJKD','9999',NULL)insert into customer(customerid,customername,age,sex,cardname,cardid,address,tle,note) values(0,'jj',19,'男','xueshen','10000','JDHF','0001',NULL)insert into room(roomrid,gread,price,state)values001,'aa',100,'chen')insert into room(roomrid,gread,price,state)values(2,'bb',200,'meis')insert into room(roomrid,gread,price,state)values(3,'cc',300,'RENS')insert into room(roomrid,gread,price,state)values(4,'dd',400,'ANDA')insert into room(roomrid,gread,price,state)values(5,'ee',500,'DAQI')insert into room(roomrid,gread,price,state)values(6,'ff',600,'HHHH')insert into room(roomrid,gread,price,state)values(7,'gg',700,'KJKJ')insert into room(roomrid,gread,price,state)values(8,'hh',800,'JHFG')insert into room(roomrid,gread,price,state)values(9,'ii',900,'FSJK')insert into room(roomrid,gread,price,state)values(0,'jj',453,'JDHF')insert into orderdetail(roomid,customerid,orderdate,days,note) values(1,0,5,11,NULL)insert into orderdetail(roomid,customerid,orderdate,days,note) values(2,1,6,2,NULL)insert into orderdetail(roomid,customerid,orderdate,days,note) values(3,2,6,3,NULL)insert into orderdetail(roomid,customerid,orderdate,days,note) values(4,3,4,4,NULL)insert into orderdetail(roomid,customerid,orderdate,days,note) values(5,4,4,5,NULL)insert into orderdetail(roomid,customerid,orderdate,days,note) values(6,5,7,6,NULL)insert into orderdetail(roomid,customerid,orderdate,days,note) values(7,6,4,6,NULL)insert into orderdetail(roomid,customerid,orderdate,days,note) values(8,7,7,8,NULL)insert into orderdetail(roomid,customerid,orderdate,days,note) values(9,8,7,7,NULL)insert into orderdetail(roomid,customerid,orderdate,days,note)values(0,9,1,9,NULL)题目1:select *from customerselect customername from customer2:select top 10 *from customerselect top 10percent *from customer3:select customername,age,cardname,cardidfrom customer join orderdetail on customer1.customerid = orderdetail.customerid where days=2select customername,age,cardname,cardidfrom customerwhere customerid in(select customerid from orderdetailwhere days=2)4.select 调整后的价格=price*0.9 from room:5:select customername as 姓名,tle as 电话,address as 地址from customer select customername姓名,tle电话,address 地址from customerselect 姓名=customername, 电话=tle, 地址=address from customer6.select *from roomwhere price between 200 and 5007.select *from roomwhere price>200 order by price descselect *from roomwhere price>200 order by price asc8.select *from customerwhere customername like'王%'9.select customername,age,cardname,gread,room.roomrid,customer.cardid from orderdetail join room on orderdetail.roomid=room.roomridjoin customer on customer.customerid=orderdetail.customeridwhere days>2select customername,age,cardname,gread,b.roomrid,cardidfrom orderdetail a join room b on a.roomid=b.roomridjoin customer c on c.customerid=a.customeridwhere days >210.select room.roomrid,price,greadfrom orderdetail join room on orderdetail.roomid=room.roomridjoin customer on customer.customerid =orderdetail.customeridwhere address like '%成都%'select roomid,price,gread from orderdetail a join room b on a.roomid=b.roomrid join customer c on c.customerid=a.customeridwhere address like'%成都%'select roomrid,price,gread from roomwhere roomrid in(select roomrid from orderdetailwhere customerid in(select customerid from customerwhere address like'%成都%'))。
E-R图练习答案

E-R图练习答案1、假设一个学生可选多门课程(假设至多25门,至少20门),而一门课程又有多个学生选修(假设每门课程至少5人,至多120人),一个教师至多可讲3门课程,一门课程至多只有一个教师讲授。
试画出其教学管理的实体联系模型ER图。
图教学管理的实体联系模型ER图简化表示:2、设计一个实体-联系模型以存放初二年级期末考试:语文、数学、英语、物理、化学五门课程学生成绩。
试画出实体联系模型ER图。
(1)能够满足要求,但模型不具有可扩展性。
(2)能够满足要求,模型具有可扩展性,但数据存在冗余,易造成数据不一致性。
(3)能够满足要求,但模型不具有可扩展性,和①雷同,操作比①麻烦。
(4)能够满足要求,模型具有可扩展性,数据不存在冗余,数据一致性好。
(为最佳答案)3、学校有若干个系,每个系有若干名教师和学生;每个教师可以担任若干门课程,并参加多项项目;每个学生可以同时选修多门课程。
试设计某学校的教学管理的E-R模型,要求给出每个实体、联系的属性。
解:(1)E-R模型应有5个实体:系、教师、学生、项目、课程。
(2)各实体的属性:系(系号,系名,主任名)教师(教师号,教师名,职称)学生(学号,姓名,年龄,性别)项目(项目号,名称,负责人)课程(课程号,课程名,学分)(3)各实体间的联系:教师担任课程的“任课”联系;教师参加项目的“参加”联系,有一个排名属性;学生选修课程的“选修”联系,有一个成绩属性;教师、学生与系之间的所属关系的“领导”联系。
4、某工厂生产若干产品,每种产品有不同的零件组成,有的零件可用在不同的产品上,这些零件由不同的原材料制成,不同零件所用的材料可以相同。
这些零件按所属的不同产品分别放在仓库中。
试用E-R图画出此工厂产品、零件、材料、仓库的概念模型。
解:(1)有4个实体:产品、零件、材料和仓库。
(2)各实体的属性:产品(产品号,产品名,价格)零件(零件号,零件名,颜色,规格)材料(材料号,材料名,价格)仓库(仓库号,地点,面积)(3)实体间的联系:产品和材料之间的“使用”联系;材料和仓库之间的“存放”联系,有一个存放量属性;零件和材料之间的“消耗”联系,有一个耗用量属性;产品和材料之间的“构成”联系。
e-r设计 (1)

以销售子系统的分E-R图为例。
销售子系统的分E-R图
存储实体 根据上节所画的数据流图,有如下几个数据存储:应收帐 款、订单(订单记录本)、产品(产品描述)、待完成订 单、发票主清单、发票记录本。对这几个存储对象进行分 析,明确以下几点:
销售分E-R图
分析E-R图进行细化
根据以上4个实体,进行分析
订单实体:一张订单由订单号、若干头信息和订单细
节组成。订单细节又有序号、零件号、数量等描述。 这样订单细节具有需要描述的性质,因此不能作为属 性对待,而应上升为一个实体(也就是一条细节对应 一条记录),一张订单可以订若干产品,因此订单与 订单细节直接是1:n联系。 原订单与产品之间的联系,实际上是订单细节与产品 的联系。订单处理时,从产品中获得当前价格等信息。 在需求分析过程中,发现工厂对大宗订货有优惠,每 种产品都规定了不同订货数量的折扣。因为每种产品 根据订货数量的不同,折扣不同,因此折扣规则应单 独作为一个实体,而不应放到产品描述实体中。
数据流图图元
数据流:用带箭头的直线表示,表示数据的流动方向。数据流由
一组确定的数据组成。例如“发票”为一个数据流,它由品名、 规格、单位、单价、数量等数据组成。数据流用带有名字的具有 箭头的线段表示,名字称为数据流名,表示流经的数据,箭头表 示流向。数据流可以从加工流向加工,也可以从加工流进、流出 文件,还可以从源点流向加工或从加工流向终点。
数据流图图元
加工处理 :一般用椭圆表示,但Visio中用圆角矩形表
示,可能是考虑椭圆中可以容纳的字比较少的原因。 数据流图中的矩形一般表示一个功能模块或一个过程, 对应一个或一组动作。