返回顶部

数据库与信息系统实验

[复制链接]
admin1Lv.9 显示全部楼层 发表于 2022-10-8 13:53:41 |阅读模式 打印 上一主题 下一主题
数据库与信息系统实验.doc (12.88 KB, 下载次数: 0, 售价: 1 威望)
目录
实验一数据库表的创建 (1)
实验二数据库表的查询 (7)
实验三数据库模型设计 (12)
实验四数据库设计 (15)
实验一数据库表的创建
1)启动SQL Server2008, “SQL Server Manange ment Studio”

数据库与信息系统实验-1.jpg


数据库与信息系统实验-2.jpg

2)单击链接(C)
打开“SQL Server Manange ment Studio”窗口,并在左边的目录树结构中选择“数据库”文件夹。
3) 单击右键,选择“新建数据库”命令,打开“新建数据库” 对话框,在“数据库名称”框内输入名称“教学管理系统”,注意数据文件和日志文件的属性设置

数据库与信息系统实验-3.jpg

4) 单击“确定”按钮,完成“教学管理系统”数据库的创建。
5)在左边的目录树中展开“数据库”下刚才创建的“教学管理系统” 文件夹,然后在“表”对象上单击右键,选择“新建表”,右边窗格中显示SQL Server 2008的表设计器。
学生学号char(7)
学生身份证号char(18)
学生姓名char(10)
学生性别char(2)
学生移动电话char(11)
学生来自的城市char(10)
学生主修专业char(20)
学生院系char(20)
学生累计修满的学分int

数据库与信息系统实验-4.jpg

6)设置主键
在表设计器中选择“学生学号”,右击,选择“设置主键”,得到下图,主键设置成功

数据库与信息系统实验-5.jpg

7)展开表右击dbo.Student,选择编辑前200行,输入以下数据

数据库与信息系统实验-6.jpg

再新建查询输入语句
select*from student
得到结果:

数据库与信息系统实验-7.jpg

8)修改表可以按照
展开表右击dbo.Student,选择编辑前200行,改第一行数据
S060101 ******19880526*** 王东民男135***11 杭州计算机信息学院160
改为:
S060101 ******19880526*** 黄星星男135***11 随州电子信息信息学院160

数据库与信息系统实验-8.jpg

由结果知道修改成功
9)删除表:
再新建一个Course表
在左边的资源管理器中右击Course表,选择删除

数据库与信息系统实验-9.jpg

单击确定,Course表删除。
表的删除可以采用SQL语言:
DROP TABLE Course
运行程序后,数据表删除Course
10)表的建立也可采用SQL 语言来建立
采用SQL语言建立学生基本资料表STUDENT、课程基本资料表COURSE、教师基本资料表TEACHER、开课计划表OFFERING、注册选课表ENROLLMENT
SQL语言:
CREATE TABLE student(
学生学号CHAR(7)PRIMARY KEY,学生身份证号CHAR(18),学生姓名CHAR(10),学生性别CHAR(2),
学生移动电话CHAR(11),学生来自的城市CHAR(10),学生主修专业CHAR(20),学生院系CHAR(20),
学生累计修满的学分INT,
)
CREATE TABLE course(
课程编号CHAR(6)PRIMARY KEY,课程名称CHAR(20),所用教材名称CHAR(20),
编著者CHAR(10),出版社CHAR(20),书的出版号CHAR(30),书的定价MONEY)
CREATE TABLE teacher(
教师编号CHAR(6)PRIMARY KEY,教师身份证号CHAR(18),教师姓名CHAR(6),教师性别CHAR(2),
教师移动电话CHAR(11),教师来自的城市CHAR(10),教师所在院系CHAR(20),教师职称级别CHAR(10),
院系负责人CHAR(6)FOREIGN KEY REFERENCES teacher(教师编号))
CREATE TABLE offering(
开课计划编号CHAR(6)PRIMARY KEY,
课程编号CHAR(6)FOREIGN KEY REFERENCES course(课程编号),
教师编号CHAR(6)FOREIGN KEY REFERENCES teacher(教师编号),
开课地点CHAR(10),开课学年CHAR(9),开课学期CHAR(1),开课周数INT,
开课时间CHAR(16),该课学分INT)
CREATE TABLE enrollment(
学生学号CHAR(7)FOREIGN KEY REFERENCES student(学生学号),
开课计划编号CHAR(6)FOREIGN KEY REFERENCES offering(开课计划编号),
考试成绩FLOAT,PRIMARY KEY (学生学号,开课计划编号))
11)再往表里面插入数据
最终得到表的所有内容为:
学生基本资料表STUDENT:

数据库与信息系统实验-10.jpg

课程基本资料表COURSE:

数据库与信息系统实验-11.jpg

教师基本资料表TEACHER:

数据库与信息系统实验-12.jpg

开课计划表OFFERING:

数据库与信息系统实验-13.jpg

注册选课表ENROLLMENT

数据库与信息系统实验-14.jpg

实验二数据库表的查询
一、单表查询:
1)查询表STUDENT中“学生性别”为“女”或者“学生主修专业”为“电子信息”的学生全部信息
SQL 代码:
SELECT*FROM student
WHERE学生性别='女'OR学生主修专业='电子信息'
运行后结果如图:

数据库与信息系统实验-15.jpg

2)查询表COURSE中“书的定价”为“NULL”的“课程名称”和“所用教材”,并按教材名称降序排列
SQL 代码:
SELECT课程名称,所用教材名称,书的定价FROM course
WHERE书的定价IS NULL
ORDER BY课程名称DESC
运行后结果如图:

数据库与信息系统实验-16.jpg

3)查询表TEACHER中教师中姓黄的老师的全部信息
SQL 代码:
SELECT*FROM teacher
WHERE教师姓名LIKE'黄%'
运行后结果如图:

数据库与信息系统实验-17.jpg

4)查询表OFFERING中开课周数为18周且按教师编号分组排列,并按开课学年降序排列SQL 代码:
SELECT*FROM offering
WHERE开课周数= 18
ORDER BY教师编号,开课学年DESC
运行后结果如图:

数据库与信息系统实验-18.jpg

5)查询表ENROLLMENT中“学生学号”为“S060101”学生的考试成绩不低于平均分的考试成绩
SQL 代码:
ELECT*FROM enrollment
WHERE考试成绩>=(SELECT AVG(考试成绩)FROM enrollment WHERE学
生学号='S060101')
AND学生学号='S060101'
运行后结果如图:

数据库与信息系统实验-19.jpg

执行代码
SELECT AVG(考试成绩)FROM enrollment WHERE学生学号='S060101'
结果为:

数据库与信息系统实验-20.jpg

对比enrollment表可知结果正确
二、多表查询:
1)查询“学生学号”为“S060101”学生的学号,学生的姓名,课程名称及对应的课程开课学年,考试成绩,并按学生单个人的信息排列,成绩降序排列
SQL 代码:
SELECT student.学生学号,student.学生姓名,course.课程名称,offering.开课学年,enrollment.考试成绩
FROM student,course,offering,enrollment
WHERE student.学生学号=enrollment.学生学号
AND course.课程编号=offering.课程编号
AND offering.开课计划编号=enrollment.开课计划编号
ORDER BY student.学生学号,enrollment.考试成绩DESC
运行后结果如图:

数据库与信息系统实验-21.jpg

2)用内连接实现多表查询教师姓名,教师所在院系及对应的教授课程,和课程对应开课地点,开课学年,开课学期,开课周数,开课时间,程开课学年,并按老师所在院系降序排列和个人的信息排列,
SQL 代码:
SELECT teacher.教师姓名,teacher.教师所在院系,
course.课程名称,
offering.开课地点,offering.开课学年,offering.开课学期,
offering.开课周数,offering.开课时间
FROM offering
INNER JOIN course
ON offering.课程编号=course.课程编号
INNER JOIN teacher
ON offering.教师编号=teacher.教师编号
ORDER BY教师所在院系DESC,教师姓名
运行后结果如图:

数据库与信息系统实验-22.jpg

3)多表实现查询与“黄星星”有关的所有信息
SQL 代码:
SELECT*
FROM student,course,teacher,offering,enrollment WHERE student.学生姓名='黄星星'
AND student.学生学号=enrollment.学生学号
AND course.课程编号=offering.课程编号
AND offering.开课计划编号=enrollment.开课计划编号AND offering.教师编号=teacher.教师编号
运行后结果如图:

数据库与信息系统实验-23.jpg


数据库与信息系统实验-24.jpg


数据库与信息系统实验-25.jpg


数据库与信息系统实验-26.jpg

三、扩展功能:
实现对设定表的记录的添加、修改等功能。
未修改之前结果如图:
SELECT*FROM student

数据库与信息系统实验-27.jpg

1)记录的添加
添加学号,身份证号,姓名,性别,移动电话,来自城市,主修专业,院系,累计修满学分为
S060100 ******19880526*** 曾小贤男135***11 上海电子信息信息学院160
SQL 代码:
INSERT INTO student VALUES('S060100','******19880526***','曾小贤','男', '135***11','上海','电子信息','信息学院','160')
运行之后结果如图:
SELECT*FROM student

数据库与信息系统实验-28.jpg

2)记录的修改
将上述插入的数据中学生姓名“曾小贤”改为“张益达”
SQL 代码:
UPDATE student
SET学生姓名='张益达'
WHERE学生姓名='曾小贤'
运行之后结果如图:
SELECT*FROM student

数据库与信息系统实验-29.jpg

实验三数据库模型设计
一、教学管理系统的需求分析及主要任务
系统的开发的总体任务是实现教学系统的系统化、规范化、和自动化。需求分析是在系统总体开发任务的基础上完成的,设计数据库系统时应该充分了解用户的各方面的需求,包括目前及将来可能的拓展需求态势。因而数据库结构势必需在充分满足各种信息的输入和输出。因此可归纳出学生信息系统所需完成的主体任务。教学管理系统的主要任务如下:
⑴学生基本资料表,记录学生的一些基本信息,包括学生学号,学生身份证号,学生姓名,学生性别,学生移动电话,学生来自的城市,学生主修专业,学生所在院系,学生累计修满学分。
⑵课程基本资料表,记录课程的一些基本信息,包括课程编号,课程名称,课程所用教材,教材编著者,出版社,书的出版号。
⑶教师基本资料表,记录教师的一些基本信息,包括教师编号,教师身份证号,教师姓名,教师性别,教师移动电话,教师来自的城市,教师所在院系,教师职称级别,院系负责人。
⑷开课计划表,记录所开课程的一些基本信息,包括开课计划编号,课程编号,教师编号,开课地点,开课学年,开课学期,开课周数,开课时间,课的学分。
⑸注册选课表,记录学生所选课的一些基本信息,包括学生学号,开课计划编号,考试成绩)
概念设计就是E-R模型的分析与设计,它是整个数据库设计的关键。下面使用实体联系图(E-R)模型来描述系统的概念结构,设计出满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体的实际信息,通过相互之间的作用形成数据的流动。
本程序根据上面的设计规划出的实体有:学生基本资料、课程基本资料、教师基本资料、开课计划、注册选课实体,它们的E-R图如下图所示。

数据库与信息系统实验-30.jpg


数据库与信息系统实验-31.jpg

⑴学生基本资料表STUDENT(学生学号,学生身份证号,学生姓名,学生性别,学生移动电话,学生来自的城市,学生主修专业,学生所在院系,学生累计修满学分),PRIMARYKEY=学生学号。
⑵课程基本资料表COURSE(课程编号,课程名称,课程所用教材,教材编著者,出版社,书的出版号),PRIMARYKEY=课程编号。
⑶教师基本资料表TEACHER(教师编号,教师身份证号,教师姓名,教师性别,教师移动电话,教师来自的城市,教师所在院系,教师职称级别,院系负责人),PRIMARYKEY=教师编号,FOREIGNKEY= 院系负责人(参考表为TEACHER)
⑷开课计划表OFFERING(开课计划编号,课程编号,教师编号,开课地点,开课学年,开课学期,开课周数,开课时间,课的学分),PRIMARYKEY=开课计划编号,FOREIGNKEY= 课程编号(参考表为COURSE),FOREIGNKEY= 教师编号(参考表为TEACHER)。
⑸注册选课表ENROLLMENT(学生学号,开课计划编号,考试成绩),PRIMARYKEY=(学生学号,开课计划编号),FOREIGNKEY= 学生学号(参考表为STUDENT),FOREIGNKEY= 开课计划编号(参考表为OFFERING)。
实验四数据库设计
一、数据库的物理结构设计
基于实验三的数据库概念结构和数据库的逻辑结构设计的结果,现在就可以实施将其转化为SQL Server 2008 数据库系统所支持的实际数据模型——数据表对象,并形成数据库中各个表格之间的关系。教学管理系统数据库中各个表格的设计结果见表1-表5。

数据库与信息系统实验-32.jpg

表2 课程基本资料表COURSE

数据库与信息系统实验-33.jpg


数据库与信息系统实验-34.jpg


数据库与信息系统实验-35.jpg


数据库与信息系统实验-36.jpg

二、数据库的实现
经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。现在就用SQL Server 2008 数据库系统中实现该逻辑结构。利用数据库系统中的SQL 查询分析器实现,具体语句如下:
(1)学生基本资料表STUDENT
CREA TE TABLE student (
学生学号CHAR(7) PRIMARY KEY, 学生身份证号CHAR(18), 学生姓名CHAR(10), 学生性别CHAR(2),
学生移动电话CHAR(11), 学生来自的城市CHAR(10), 学生主修专业
CHAR(20), 学生院系CHAR(20),
学生累计修满的学分INT,
)
(2)课程基本资料表COURSE
CREA TE TABLE course (
课程编号CHAR(6) PRIMARY KEY, 课程名称CHAR(20), 所用教材名称CHAR(20),
编著者CHAR(10), 出版社CHAR(20), 书的出版号CHAR(30), 书的定价MONEY )
(3)教师基本资料表TEACHER
CREA TE TABLE teacher (
教师编号CHAR(6) PRIMARY KEY, 教师身份证号CHAR(18), 教师姓名CHAR(6), 教师性别CHAR(2),
教师移动电话CHAR(11), 教师来自的城市CHAR(10), 教师所在院系CHAR(20), 教师职称级别CHAR(10),
院系负责人CHAR(6) FOREIGN KEY REFERENCES teacher(教师编号))
(4)开课计划表OFFERING
CREA TE TABLE offering (
开课计划编号CHAR(6) PRIMARY KEY,
课程编号CHAR(6) FOREIGN KEY REFERENCES course(课程编号),
教师编号CHAR(6) FOREIGN KEY REFERENCES teacher(教师编号),
开课地点CHAR(10), 开课学年CHAR(9), 开课学期CHAR(1), 开课周数INT, 开课时间CHAR(16), 该课学分INT)
(5)注册选课表ENROLLMENT
CREA TE TABLE enrollment (
学生学号CHAR(7) FOREIGN KEY REFERENCES student(学生学号),
开课计划编号CHAR(6) FOREIGN KEY REFERENCES offering (开课计划编号), 考试成绩FLOA T, PRIMARY KEY (学生学号,开课计划编号) )
二、教学管理系统数据库的关系图

数据库与信息系统实验-37.jpg




上一篇:信息系统和数据库中英文对照外文翻译文献
下一篇:基于ER图的数据库设计与简单操作管理信息系统
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

雅宝知识库(yabaojy.com)--是一个聚焦知识付费的平台,包括在线教育、文档下载、作业答案、网课答案、考试资料、形考任务答案、行业资料、毕业论文、同时还包括问答平台、资料文库、课件下载等,是一个综合在线学习知识分享交流平台。
  • 企业微信

  • 官方微信

  • 商务合作