实验四 数据库设计
- 格式:doc
- 大小:26.00 KB
- 文档页数:2
实验四数据库设计班级:姓名:学号:任课教师:实验教师:上机时间:【实验目的】1、掌握规范化数据库设计包括步骤及其任务、方法、结果等。
2、掌握数据库设计过程中关键文档的写法。
3、了解数据库辅助设计工具。
【实验性质】验证性实验【实验学时】2H【实验内容】设计题目:学生选课1.需求分析,给出数据字典与数据流图数据分析:(1)选课信息包括:学号,课程号,选课日期,实践成绩,考试成绩。
(2)学生信息包括:学号、姓名、性别、地址(3)课程信息包括:课程号、课程名称,系编号,教师编号,开课学期。
(4)教师信息包括:教师编号、教师姓名、系编号、办公室号。
(5)系信息包括:系编号,系名,教师编号,位置(6)用户信息包括:用户名,用户密码。
数据流图数据流图是描述系统内部处理流程、用于表达软件系统需求模型的一种图形工具,这种表示法中用矩形表示源点和终点,用椭圆表示数据加工,用箭头表示数据流。
本学生管理系统的数据流图如下。
数据字典:数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。
利用SQL Server 2005建立“学生选课”数据库,其基本表清单及表结构描述如下:(1)数据分析,设计E-R模型E-R图表示概念模型(1)学生实体E-R图(2)教师实体E-R图(3)课程实体E-R图(4)选课实体E-R图(5)系实体E-R图(6)用户实体E-R图3.3 合并分E-R图通过分析上述实体间的联系将分E-R图合并为学生管理系统的基本E-R图,每个实体的属性在上面的分E-R图中已经给出,在此不予给出。
(2)E-R模型转换为关系模型由系统E—R图转化而得到的关系模式如下(1)student(sno,sname,ssex,saddress),其中sno为主键。
(2)sc(sno,cno,ctime,sscore,kscore),其中(sno,cno)为主键。
(3)teacher(tno,tname,dno,offno),其中tno为主键。
数据库实验四在学习数据库的过程中,实验是帮助我们深入理解和掌握相关知识的重要环节。
本次数据库实验四主要围绕着数据库的查询、更新以及数据完整性等方面展开。
实验的目的是让我们通过实际操作,更加熟练地运用 SQL 语句来处理数据库中的数据,同时加深对数据库原理和概念的理解。
在实验开始之前,我们首先需要准备好相关的数据库环境。
这包括安装数据库管理系统,如 MySQL 或 SQL Server 等,并创建好实验所需的数据库和数据表。
本次实验中,我们创建了一个名为“students”的数据库表,用于存储学生的基本信息,如学号、姓名、年龄、性别和所在班级等。
同时,还创建了一个名为“courses”的表,用于存储课程的信息,包括课程编号、课程名称和授课教师等。
接下来,就是实验的核心部分——数据查询操作。
通过使用 SQL 的 SELECT 语句,我们可以从数据库中获取所需的数据。
例如,要查询所有年龄大于 20 岁的学生信息,可以使用以下语句:```sqlSELECT FROM students WHERE age > 20;```除了简单的条件查询,我们还学习了如何进行多表连接查询。
比如,要获取同时选修了“数据库原理”和“操作系统”两门课程的学生信息,就需要将“students”表、“courses”表以及选课关系表进行连接查询。
数据更新操作也是实验中的重要内容。
通过使用 UPDATE 语句,我们可以对数据库中的数据进行修改。
但在进行数据更新时,一定要谨慎操作,确保更新的结果符合预期,避免造成数据的错误或丢失。
例如,如果要将某个学生的年龄增加一岁,可以使用以下语句:```sqlUPDATE students SET age = age + 1 WHERE student_id ='_____';```在实验过程中,数据完整性的维护也是至关重要的。
我们通过设置主键、外键以及各种约束条件,来确保数据的准确性和一致性。
数据库实验四实验项目名称:T-SQL程序设计实验学时: 4同组学生姓名:实验地点: b513实验日期: 2012.11.27 2012.12.04实验成绩:批改教师:批改时间:一、实验目的和要求1、掌握T-SQL中运算符和表达式的使用;2、通过对Select的使用,掌握Select语句的结构及其应用;3、掌握T-SQL中几个常用流程控制语句的使用;4、掌握系统内置函数的概念及其应用;5、通过定义和使用用户自定义函数,掌握自定义函数的概念及其应用。
二、实验设备、环境设备:奔腾Ⅳ或奔腾Ⅳ以上计算机;环境:WINDOWS 2000 SERVER或WINDOWS 2003 SERVER、SQL Server2005中文版。
三、实验步骤1、根据题目要求熟悉SQL Server2005的各种管理工具;2、分析题意,重点分析题目要求并给出解决方法;3、按题目要求完成实际操作任务,并将相关文档资料保存在以自己学号命名的文件夹中;4、提交完成的实验结果。
四、实验内容一、SQL查询(*使用SQL Server样例数据库pubs完成)1、简单查询(1)查询所有作者的姓名和作者号信息,并在每个作者的作者号前面显示字符串“身份证号:”表明显示信息是身份证信息;(authors表)(2)改变显示列名。
显示所有作者的姓名信息和作者号信息,要求用“名”和“姓”来区别fname和lname,“作者编号”来区分作者号;(authors表)(3)查询所有书在价格提高10%后的价格和书名信息;(titles 表)(4)查询所有书的书号和税后价格。
(titles表,royalty列表示税率);(5)查询所有作者的姓和“名的第一个字符”以及作者号;(authors表,SUBSTRING函数)(6)查询邮政编码大于9000的作者姓名和电话信息;(authors表)(7)查询出版日期在1/1/1991到12/31/1991之间的书名(书名限制为38个字符)和出版日期;(titles 表,SUBSTRING函数)(8)查询书的类型是mod_cook或trad_cook的书名和它的类型;(titles表)(9)查询店名中包含Book的店的信息;(stores表);(10)查询书名以T开头或者出版号为0877,且价格大于16美元的书的信息;(titles表)(11)查询所有作者的所在城市和州名,要求没有重复信息;(authors表)(12)按照类型的升序和价格的降序显示书的信息;(titles表)2、生成汇总数据(1)计算多少种书已被定价;(titles表)(2)计算每本书的书号及它的售书总量;(sales表)(3)求销售量大于30的书号及销售数量;(sales表)(4)显示在1994年1月1日到1994年10月31日间,每本书的销售总额;(sales表,titles表)3、连接查询(1)求每本杂志上刊登的文章;(titles, publishers表)(2)求某书店销售某书的数量;(titles, stores, sales表)(3)查询所有合著的书及其作者。
实验4:数据库的高级查询操作实验四:数据库的各类数据查询操作一、实验目的掌握SQL程序设计基本规范,熟练运用SQL语言实现数据的各种查询和设计,包括连接查询、嵌套查询、集合查询等。
二、实验内容和要求针对KingbaseES数据库设计单个表针对自身的连接查询,设计多个表的连接查询;设计各种嵌套查询和集合查询。
了解和掌握SQL查询语句各个子句的特点和作用,按照SQL程序设计规范写出具体的SQL查询语句,并调试通过。
三、实验步骤连接查询1. 查询每个学生及其选修课程的情况:select student.*, sc.* from student, sc where student.sno=sc.sno比较: 笛卡尔集: select student.*, sc.* from student, sc自然连接: select student.sno, sname, ssex, sdept, cno, grade from student, sc where student.sno=sc.sno2. 查询每一门课程的间接先行课(只求两层即先行课的先行课):select /doc/3d4429586.html,o, Second.pcno 间接先行课from course First, course Second where First.pcno=/doc/3d4429586.html,o比较:select /doc/3d4429586.html,o, Second.pcno 间接先行课from course First, course Second where First.pcno=/doc/3d4429586.html,o and Second.pcno is not null3. 列出所有学生的基本情况和选课情况, 若没有选课,则只列出基本情况信息:SQL Server 中: select s.sno, sname, ssex,sdept, cno, grade from student s, sc sc where s.sno*=sc.sno4. 查询每个学生的学号, 姓名, 选修的课程名和成绩:select S.sno, sname, cname, grade from student S, course C, sc SC where S.sno=SC.sno and /doc/3d4429586.html,o=/doc/ 3d4429586.html,o5. 查询平均成绩在80分以上的学生姓名Select sname from student,sc where student.sno=sc.sno GROUP BY sc.snoHAVING AVG(sc.grade)>80;高级查询使用带IN谓词的子查询1.查询与’刘晨’在同一个系学习的学生的信息:select * from student where sdept in(select sdept from student where sname='刘晨')比较: select * from student where sdept =(select sdept from student where sname='刘晨') 的异同比较: select * from student where sdept =(select sdept from student where sname='刘晨') and sname<>'刘晨' 比较: select S1.* from student S1, student S2 where S1.sdept=S2.sdept and S2.sname='刘晨'2.查询选修了课程名为’信息系统’的学生的学号和姓名:SQL Server中: select sno, sname from student where sno in (select sno from sc where cno in(select cno from course where cname='信息系统'))3.查询选修了课程’1’和课程’2’的学生的学号:select sno from student where sno in (select sno from sc where cno='1')and sno in (select sno from sc where cno='2') 比较: 查询选修了课程’1’或课程’2’的学生的sno:select sno from sc where cno='1' or cno='2'比较连接查询:select A.sno from sc A, sc B where A.sno=B.sno and /doc/3d4429586.html,o='1' and/doc/3d4429586.html,o='2'使用带比较运算的子查询1.查询比’刘晨’年龄小的所有学生的信息:select * from student where sage<(select sage from student where sname='刘晨')使用带Any, All谓词的子查询2.查询其他系中比信息系(IS)某一学生年龄小的学生姓名和年龄;select sname, sage from student where sage <any< p=""> (select sage from student where sdept='IS')and sdept<>'IS'3.查询其他系中比信息系(IS)学生年龄都小的学生姓名和年龄:select sname, sage from student where sage <all< p="">(select sage from student where sdept='IS')and sdept<>'IS'4.查询与计算机系(CS)系所有学生的年龄均不同的学生学号, 姓名和年龄:select sno,sname,sage from student where sage<>all(select sage from student where sdept='CS')使用带Exists谓词的子查询和相关子查询5.查询与其他所有学生年龄均不同的学生学号, 姓名和年龄:select sno,sname,sage from student A where not exists(select * from student B where A.sage=B.sage andA.sno<>B.sno)6.查询所有选修了1号课程的学生姓名:select sname from student where exists(select * from sc where sno=student.sno and cno='1')7.查询没有选修了1号课程的学生姓名:select sname from student where not exists(select * from sc where sno=student.sno and cno='1')8.查询选修了全部课程的学生姓名:select sname from student where not exists(select * from course where not exists( select * from sc where sno=student.sno and cno=/doc/3d4429586.html,o))12. 查询至少选修了学生95002选修的全部课程的学生的学号:select distinct sno from sc A where not exists(select * from sc B where sno='95002'and not exists(select * from sc C where sno=A.sno and cno=/doc/3d4429586.html,o))13. 求没有人选修的课程号cno和cnamecname:select cno,cname from course C where not exists(select * from sc where /doc/3d4429586.html,o=/doc/ 3d4429586.html,o )14. 查询满足条件的(sno,cno)对, 其中该学号的学生没有选修该课程号cno 的课程select sno,cno from student,course where not exists(select * from sc where cno=/doc/3d4429586.html,o and sno=student.sno)15. 查询每个学生的课程成绩最高的成绩信息(sno,cno,grade):select * from sc A where grade=(select max(grade) from sc where sno=A.sno )集合查询1. 查询数学系和信息系的学生的信息;select * from student where sdept='MA' union select * from student where sdept='IS'2. 查询选修了1号课程或2号课程的学生的学号:select sno from sc where cno='1'Unionselect sno from sc where cno='2'思考:1. 连接查询速度是影响关系数据库性能的关键因素。
实验四:数据库设计实验一、实验题目某企业销售管理信息系统数据库设计二、实验课时课内2课时+课外2课时三、实验目的1.能够正确运用数据库的思想与方法,结合一个模拟课题,复习、巩固、管理信息系统的数据库知识,提高数据库的实践能力。
2.运用数据库的结构设计、查询设计、界面设计等知识。
3.培养分析问题,解决问题的动手能力,提高查询资料和撰写相关文档的能力。
四、实验内容和要求实验内容:设计开发“**企业销售管理信息系统”(如下图所示)教学生如何分析、演示、动手设计。
该管理信息系统的功能是销售数据录入、商品进货数据录入、商品库存数据查询、销售业绩汇总查询和商品上柜数据录入等功能。
步骤一:需求分析产品记录(型号,名称,供应商,单价,单位数量,库存量,订购量),实现库存数据查询,销售业绩汇总查询等功能。
(如图所示)步骤二:数据表的设计数据库是一个与特定的主题或目的相关的数据的集合,在一个数据库中通常包括了多个相关的表。
在 Access 2007 中,数据的具体操作与管理是通过数据库中的数据表现的,在数据表中可以存储数据并管理数据。
实验内容、方法及步骤内容一:打开空数据库,使用“创建”→“表”命令创建一张空表。
具体要求:打开实验一创建的“销售管理”数据库,在该数据库中创建名字为“产品记录”的表,表中所包含的字段及其名称、数据类型及相关说明如表 2-1 所示。
实验方法及步骤:通过“创建”→“表”命令新建一个空表,可直接在新表中定义字段,或在设计视图中打开该表。
1. 打开“销售管理”数据库,然后执行“创建”→“表”的命令。
2. 在打开的字段设置面板中,可以添加新字段,对各个字段的数据类型进行设计,添加说明。
3. 在该创建模式下,第一个字段已经绑定到自动编号字段。
根据要求,可在该字段名上单击鼠标右键,在弹出的快捷菜单中点击“重命名”,更改为“产品 ID”,或直接双击该字段名进行编辑。
如图所示。
4. 编辑完毕,确认保存设计的更改。
《数据库原理与应用》实验报告实验名称:班级:学号:姓名:一、实验目的(1)了解Oracle数据库中的用户管理,模式,权限管理和角色管理。
(2)掌握为用户分配权限的方法。
(3)了解为不同用户分配不同权限的目的及原因。
二、实验过程1.用系统帐户sys登录数据库,分别创建数据库内部用户user_one和user_two,创建时自己为用户分配帐户口令。
语句:create user user_oneidentified by 123456default tablespace userstemporary tablespace tempquota unlimited on users;create user user_twoidentified by 123456default tablespace userstemporary tablespace tempquota unlimited on users;执行结果:2.为了使两位用户登录数据库请为其授予相应的权限。
语句:grant create session to user_one;grant create session to user_two;执行结果:3.授予用户user_one在自己模式下创建表的权限,在任何模式下删除表的权限,授予用户user_two可以在任何模式下创建表的权限,查询任何模式下表中数据的权限和在任何模式下创建视图的权限。
语句:grant create table,drop any table to user_one;grant create any table,create any view,select any table to user_two;执行结果:4.分别用user_one和user_two登录,写出相应的SQL语句验证为其授予的权限。
(如果建立的表中有主键约束,需要预先授予user_one和user_two用户create any index的权限。
计算机工程系实验报告学生信息系别计算机学院专业计算机科学与技术班级17计科2+2 姓名徐浩俊学号2017031601025实验信息课程名称数据库原理与应用实验名称实验4 数据操作实验时间指导教师文琦批改情况成绩评阅教师文琦实验目标:1.掌握各种录入数据至数据库表的方法。
2.掌握修改数据库表中数据的方法。
3.掌握删除数据库表中数据的方法。
4.掌握复制数据库表的方法。
实验结果:利用shiyan4.sql文件中的脚本生成相应的数据库及数据表。
1.根据实验3.1步骤完成从Eecel工作表(非SQL Server数据源数据)导入SQL Server数据库表的方法(注意学生表S结构已存在),回答以下问题。
①请从素材中选择自己班级的Excel表格,若表格不满足数据库中的关系则需要稍加修改,再将表里的数据导入学生表S中。
导入是否会遇到问题?如何解决?无法直接映射,需要修改表格。
只保留一行名称。
②请将最后导入在数据库的数据截图。
③有无更简单的方法?有,直接在编辑表中粘贴数据。
2.将数据库表T的数据交互式录入并截图说明。
(P46)3.请使用SQL语句完成数据库表C的数据录入,将相应的SQL语句及最终存储的数据截图说明。
可否用一条insert into语句一次插入多行数据,如有,请描述相应的SQL语句。
USE jxskGOINSERT INTO C VALUES('C1','程序设计','60')GOUSE jxskGOINSERT INTO C VALUES('C1','课程1','60'),('C1','课程2','80'),('C1','课程3','100')GO4.完成实验3.2后,思考利用SQL语句完成以下问题。
①现将信息系归为计算机系,数据表T中哪些数据需要修改,请使用SQL 语句完成,并将最终修改后的数据截图。
数据库实验4实验报告一、实验目的本次数据库实验 4 的主要目的是深入了解和掌握数据库中的索引、存储过程以及事务处理等关键技术,通过实际操作和实践,提高对数据库管理系统的运用能力,以及解决实际问题的能力。
二、实验环境本次实验使用的数据库管理系统为 MySQL 80,操作系统为Windows 10。
实验在个人电脑上进行,配置为英特尔酷睿 i5 处理器,8GB 内存。
三、实验内容与步骤(一)索引的创建与使用1、首先,创建了一个名为`students` 的表,包含`id`(主键,自增)、`name`(姓名)、`age`(年龄)、`grade`(年级)等字段。
```sqlCREATE TABLE students (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),age INT,grade VARCHAR(20));```2、向表中插入了一些示例数据,用于后续的实验操作。
```sqlINSERT INTO students (name, age, grade)VALUES ('张三', 18, '大一'),('李四', 19, '大二'),('王五', 20, '大三'),('赵六', 21, '大四');```3、为`name` 字段创建了一个普通索引,观察查询性能的变化。
```sqlCREATE INDEX idx_name ON students (name);```4、执行查询语句,对比创建索引前后的查询时间。
```sqlSELECT FROM students WHERE name ='张三';```(二)存储过程的创建与调用1、创建了一个简单的存储过程,用于计算两个数的和。
```sqlDELIMITER //CREATE PROCEDURE add_numbers(IN num1 INT, IN num2 INT, OUT result INT)BEGINSET result = num1 + num2;END//DELIMITER ;```2、调用存储过程,传递参数并获取结果。
实验四数据库设计
实验目的
●掌握数据库设计的基本理论、方法和步骤。
●掌握SQL语言的使用。
实验内容及要求
根据附件中的系统需求,按照数据库设计的基本理论、方法和步骤,完成系教学信息数据库的设计与实施。
具体要求如下:1.写出需求分析报告,各阶段设计方案(主要包括E-R图、关系模式、视图、索引等);
2.按照设计方案,用SQL建立数据库、表、视图、索引;3.按照功能需求,用SQL语言实现各种功能需求。
实验步骤
1.系统需求分析;
2.概念结构设计;
3.逻辑结构设计;
4.存储结构设计;
5.数据库实施
6.实验结果及分析
附件:系统需求
数据库中要存储以下信息:
1.数据库需要存储以下基本信息:系、班级、教师、学生、课程,开课学期等,各个实体型的属性自己确定;
2.数据库中还要保存以下实体之间的联系:每个系有若干教师并有一个系主任;每个系有若干班级,每个班级有若干学生并有一个班长;每学期每个教师可以讲授若干课程,每学期每门课程只能由一个教师讲授;每学期每个学生可以选修若干课程,每门课程可以有若干学生选,每个学生选修的课程有一个成绩。
对数据库要实现以下基本功能要求:
1.各种基本信息的维护(插入、删除、修改、检索);
2.实现教师讲授课程,学生选修课程信息的维护(插入、删除、修改、检索);
3.教师在每门课程考试结束后,要登录该课程的考试成绩。
4.学生可以查询自己的课程成绩。
(注:检索操作可自己设计,但要求多样化)。