数据库系统原理实验报告1 | E-R图设计

 整理自博主本科《数据库系统原理》专业课自己完成的实验报告,以方便各位学习数据库系统概论的小伙伴们参考、学习。

专业课本:

目录

一、实验目的

二、实验内容

1、某个学校有若干个系

2、某工厂生产若干产品

3、某学校的田径运动会中设置了各类比赛

4、自己调查一个需要提供开发数据库应用系统的单位

三、实验结果总结

四、实验结果的运用

自己举一个应用实例,并绘制E-R图。


一、实验目的

1.熟悉数据库模型的概念,熟悉概念模型的表示方法:E-R图。将实体,属性和联系转化为E-R图。

2.根据数据库基本概念、关系模型基本要领、数据库设计概念,再根据需求确定实体、属性和联系。


二、实验内容

用E-R图画出概念模型,要求在图上注明属性及联系的类型。

1、某个学校有若干个系

某学校有若干个,系的属性有系编号和系名;每个系有若干班级教研室,班级的属性有班级号和班级名,教研室的属性有教研室号和教研室名;每个教研室有若干教师,每个班级有若干学生,学生的属性有学号,姓名,性别,出生年月,学历每个教师指导若干学生,每个学生只能被一个教师指导;教师的属性有:教师编号,教师姓名,教师职称。每个学生可以选修多门课程,每门课程可以被多个学生选修,学生选课会有成绩。课程的属性有课程编号,课程名,学分。

2、某工厂生产若干产品

某工厂生产若干产品,每种产品由不同的零件组成,有的零件可以在不同的产品上使用产品的属性有产品号和产品名称,零件的属性有零件号和零件名称;这些零件由不同的原材料制成,不同的零件所使用的原材料可以相同材料的属性有材料号、材料名和类别。这些零件按照所属的不同产品分别放在不同的仓库中,原材料按照类别放在若干仓库中,即一个编号的原材料只能放在一个仓库中,一个仓库可以放多种编号的原材料。仓库的属性有仓库号,仓库名,仓库容量。

补充:答案图(省略了实体的属性)

3、某学校的田径运动会中设置了各类比赛

某学校的田径运动会中设置了各类比赛,每一比赛类别有类别编号、类别名称和主管等属性,每一比赛类别包含很多比赛项目;每一比赛项目有项目编号、项目名称、比赛时间和级别等属性;各个院团队有团编号、团名称、领队等属性,每一代表团有多名运动员组成,运动员有编号,姓名,年龄,性别等属性;每一名运动员可以参加多个比赛项目,每一比赛项目也有多名运动员参加,运动员参加比赛会有成绩。

4、自己调查一个需要提供开发数据库应用系统的单位

自己调查一个需要提供开发数据库应用系统的单位,例如:超市、公司、酒店、社团、影院、机场、银行、饭店、图书馆、教务处、某个大学、小学或者中学、仓库、浴室、健身房、旅游团、书店等,你所能想到或者调查到的,写出他们的需求,找出数据库中将来要存储的数据中对应的实体、属性和联系,要求画出的E-R图中至少包含一个一对多的联系和一个多对多的联系,至少有一个联系上要包含属性。


三、实验结果总结

  1. 我能够正确从材料中提取出实体、实体的属性以及联系的属性。也基本能够画出E-R图的大致框架。
  2. 在判断联系类型这方面没有自己原先想的那么简单。对于简单、阐述十分明确的联系关系,我能够正确地判断出属于哪一类联系,但是对于一些没有那么明确的阐述,我往往就会比较纠结。比如本次实验二中的“不同的零件所使用的原材料可以相同”“零件按照所属的不同产品分别放在不同的仓库中”这样的表述,我就思考了很久。
  3. 在我多次遇到理不清联系类型的情况时,我想出了以下办法来帮助理解:在草稿纸上举例子、画草图。比如对于“不同的零件所使用的原材料可以相同”这个联系,我的思路是,先假设零件有A、B两种,原材料有a、b、c三种,套入对该联系表述的理解即是对于A和B两种不同的零件,它们可以都使用原材料a,这样一来一个原材料对应了不止一个零件,此时零件-原材料就是n←1;结合零件由不同的原材料构成,零件-原材料同时又是1→n。因此二者的联系是多对多的联系。

  4. 另外,在梳理一对多的联系时我遇到了一个小问题:在E-R图上标注多对多联系时,哪边写“1”,哪边写“n”?在重新翻书看例理解后,我明白了。若“一个实体A对应多个实体B,一个实体B对应一个实体A”时,实体A--- 1 ---联系--- n ---实体B,正着看是1→n;反着看把n取作1时,左边只能是1,这也就达到了1←1。通过这样的理解,我相信我不会再在这样的小问题上出错了。
  5. 在画E-R图之前,最好先在题干材料中标注,将实体、属性、联系用不同的记号标出来。读完题干且做好圈点勾画之后再画,要比直接上手更加不容易错,也更快。

四、实验结果的运用

自己举一个应用实例,并绘制E-R图。

医院管理系统:

实体:医生,科室,病人,病房,医疗费用

联系:

      ①一个医生主治多个病人,一个病人可以被多个医生主治(多对多)

      ②一个医生属于一个科室,一个科室里可以有多个医生(一对多)

      ③一个病人在一间病房里面,一间病房里有多个病人(一对多)

      ④一个病人支付一项医疗费用,一项医疗费用由一个病人支付(一对一)

      ⑤医生内部有领导和被领导的关系(实体间的一对多)

属性:

      ①医生:编号,年龄,专业

      ②病人:编号,性别,职业

      ③病房:病房号,规格,地址

            ④医疗费用:挂号费,取药费,手术费,住院费

实验 实验一 熟悉SQL SERVER2000 1.在“程序”菜单中寻找“Microsoft SQL Server”菜单项。 2.如果“Microsoft SQL Server”菜单项下有“服务管理器”,则启动服务管理器,在其界面中启动SQL SERVER服务。 3.在“Microsoft SQL Server”菜单项下打开“企业管理器”。 4.点击工具栏上的 标,注册一个SQL SERVER服务器。 5.在注册向导的“可用服务器”中选择一个服务器添加到“添加的服务器”中,点击下一步。 6.选择“系统管理员分配的SQL Server登录信息”。 7.填写登录名和密码。 8.不改变默认选项,添加到现有组中。 9.完成SQL Server注册。 10.熟悉SQL Server的使用环境,可以完成简单的建库、建表操作,可查看联机帮助。 11.打开“工具”菜单下的“查询分析器”,可以完成SQL语句的执行操作。 实验二 实验要求:用sql语句建立如下的表结构并输入数据: 学生表:student(主键Sno) 学号 Sno 姓名 Sname 性别 Ssex 年龄 Sage 所在系 Sdept 95001 李勇 男 20 CS 95002 刘晨 女 21 IS 95003 王敏 女 18 MA 95004 张力 男 19 IS 课程表:Course(主键Cno) 课程号 Cno 课程名 Cname 先行课 Cpno 学分 Ccredit 1 数据库 5 4 2 数学   2 3 信息系统 1 4 4 操作系统 6 3 5 数据结构 7 4 6 数据处理   2 7 PASCAL语言 6 4 选课表:SC(主键Sno,Cno,外部键Sno,Cno) 学号 Sno 课程表 Cno 成绩 Grade 95001 1 92 95001 2 85 95001 3 88 95002 2 90 95003 3 85 实验三 用SQL语句完成以下的要求(键表及插入数据的SQL语句见下面): create table student( Sno char(5) primary key, Sname char(10), Ssex char(2), Sage int, Sdept char(2)); create table Course( Cno char(1) primary key, Cname char(20), Cpno char(1), Ccredit int); create table SC( Sno char(5), Cno char(1), Grade int, primary key (sno,cno)); insert into student values('95001','李勇','男',20,'CS'); insert into student values('95002','刘晨','女',21,'IS'); insert into student values('95003','王敏','女',18,'MA'); insert into student values('95004','张力','男',19,'IS'); insert into Course values('1','数据库','5',4); insert into Course values('2','数学',NULL,2); insert into Course values('3','信息系统','1',4); insert into Course values('4','操作系统','6',3); insert into Course values('5','数据结构','7',4); insert into Course values('6','数据处理',NULL,2); insert into Course values('7','PASCAL语言','6',4); insert into SC values('95001','1',92); insert into SC values('95001','2',85); insert into SC values('95001','3',88); insert into SC values('95002','2',90); insert into SC values('95003','3',85); 1. 查询信息系(IS)的所有学生信息 SELECT * from student where Sdept = 'IS'; 2. 查询选修了“数学”课的所有学生名单 SELECT * from student,sc,course where
1、 Find the name, loan number and loan amount of all customers; rename the column name loan_number as loan_id. 2、 Find the names of all customers whose street includes the substring “Main”. 3、Find all customers who have a loan, an account, or both: 4、Find all customers who have both a loan and an account. 5、Find all customers who have an account but no loan. 6、Find the average account balance at the Perryridge branch. 7、 Find the number of tuples in the customer relation. 8、 Find the number of depositors in the bank. 9、 Find the number of depositors for each branch. 10、Find the names of all branches where the average account balance is more than $1,200. 11、Find all loan number which appear in the loan relation with null values for amount. 12、Find all customers who have both an account and a loan at the bank. 13、Find all customers who have a loan at the bank but do not have an account at the bank 14、Find all customers who have both an account and a loan at the Perryridge branch 15、Find all branches that have greater assets than some branch located in Brooklyn. 16、Find the names of all branches that have greater assets than all branches located in 1、创建一个School数据库,该数据库的主数据文件逻辑名称为SCHOOL_data,物理文件名为School.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为School_log,物理文件名为School.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为1MB。 2、用SQL语句建立上述表,自定义主键和外键,对于student表建立约束条件:ssex仅能取male或female;sage在18和22之间。并完成下面的查询语句。 1、查询所有选修过“Bibliometrics”课的学生的姓名和成绩; 2、查询考试成绩不及格的学生的个数; 3、查询名字中至少含有一个“z”字符的学生的姓名、学号和性别; 4、查询选修了“Introduction to the Internet”课程的学生的学号及其成绩,查询结果按分数的降序排列; 5、查询“Zuo li”同学选修课程的总学时(time)数 6、查询年龄不大于20岁的学生的平均考试成绩; 7、查询 “computer science”专业学生选修 “Database System”的人数; 8、查询同时选修课程“Database System”和“Introduction to the Internet”的学生姓名; 9、查询选修的课程中含有“Wang gang”同学所有选修课程的学生姓名。 10、查询“Information Technology for Information Management”考试成绩为空的学生姓名及专业名称。 11、查询“computer science”专业学生每个人的选修课总学分。 12、查询个人考试平均成绩高于专业平均成绩的学生姓名 13、查询个人考试平均成绩高于女生平均成绩的男生姓名 14、查询比“computer science”专业所有学生年龄都大的学生姓名。 15、查询考试成绩仅有一科不及格学生姓名
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值