还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
实验1数据库设计实验名称数据库设计实验内容以所在学校选课和课程管理为实际应用背景,设计一个教学管理数据库假设至少包含以下需求学生信息管理;课程信息管理;教师信息管理;学生选修课程及成绩信息管理;教师负责课程和讲授课程信息管理实验目的通过实践,掌握本章介绍的数据库设计方法学会使用来完成数据库设计过程PowerDesigner实验方法根据实验内容明确要完成的系统功能1运行创建概念数据模型转换成逻辑数据模型,建立实体、属性和联系2PowerDesigner对关键字、空值、域完整性等做出必要的描述,根据实际情况确定联系的类型将检查无误的概念数据类型转换成逻辑数据模型,并对生成的逻辑数据模型作必要的修改3选择一个实际的软件根据逻辑数据模型生成物理数据模型,并对生成的物理数据模4DBMS型作必要的修改实验要求使用或其他建模工具完成本实验PowerDesiger建立满足需求的概念数据模型,逻辑数据模型和物理数据模型提交实验报告含完整的设计文档实验过程、源程序、运行结果及简单分析:概念数据模型课程学时名称Characters20学分编号pi Characters10M课程Characters10课程Characters10课程编号pi教师教师编号pi Characters20M建幺Characters20性别Characters10教师编号pi学生姓名pi Characters10M Characters20Characters20Chciracters4Characters10学号学号i班级P性别学select平均成绩from教务信息.学生where姓名=林一)院姓名教务信息.学生平均成绩>=@”(select distinctfrom where平均成绩教务信息.学生院系)select from where=1姓名教务信息.学生平均成绩=(select distinctfrom whereall平均成绩教务信息.学生院系)select from where=1课程名称,学时,课程性质教务信息.课程select fromouta学时((学时)教务信息.课程责任教师(where=select maxfrom where in教师编号教务信息,教师教师编号二责任教师))select from where教务信息.院系(教务信息.学生院系二编号)select*from where not existsselect*from where(工资),()(工资),(工资),(工资)教务信息.教师select sumcount*,avg maxmin from(平均成绩)教务信息.学生select avgfrom工资教务信息.教师(工资)select distinctfrom computecount教务信息,教师教师编号select*from orderby(工资),(工资)教师编号compute avgsum by(工资),(工资)compute avgsum总结通过实验,学会使用的数据查询操作,对左连接、右连接、内连接全连接的掌握,SQL SELECT对简单嵌套查询、条件查询等等各种查询的练习的基本熟悉,同时也对查询命令SQL SELECT的基本框架的熟悉与理解让自己的能力有了更好的提升实验5视图的应用实验名称视图的建立和应用实验内容在实验和实验的基础上定义视图,并在视图上查询以及插入、删除、和更新和23操作实验目的掌握视图定义和应用方法,体会视图和基本表的异同实验方法在实验和实验的基础上用命令定义视图,然后使用命23CREATE VIEWSELECT令完成查询,使用、和命令分另完成插入、更新和删除操作实INSERT UPDATE DELETE lj验要求在实验建立的基本表的基础上,按如下要求设计和建立视图2基于单个表按投影操作定义视图基于单个表按选择操作定义视图基于单个表按选择和投影操作定义视图基于多个表根据连接操作定义视图基于多个表根据嵌套查询定义视图定义含有虚字段的视图分别在定义的视图上设计一些查询(包括基于视图和基本表的连接或嵌套查询)在不同的视图上分别设计一些插入、更新和删除操,分情况讨论那些操作可以成功,那些操作不能完成,并分析原因在实验报告中要给出具体的视图定义要求和操作要求,并针对各情况做出具体的分析和讨论实验过程、源程序、运行结果及简单分析建立视图教师教师编号,姓名,职称教务信息,教师create viewas select from一一基于单个表的按投影操作定义视图教师教师编号,姓名,专业教务信息.教师性别=女,create viewas select fromwhere--基于单个表的按选择和投影操作定义视图教师课程教师编号,姓名,课程编号,课程名称create viewas select教务信息.教师教务信息,课程教师编号=责任教师from join on—基于多个表的连接操作定义视图教师与课程视图CREATE VIEWAS教师编号,工资,性别,课程名称,课程编号,责任教师SELECT教务信息.教师教务信息.课程教师编号二责任教师FROM JOINON—基于多个表的连接查询总结在本实验上,基于对单个表按投影、选择、选择和投影、根据链接、根据嵌套查询操作定义视图的基本熟悉,明白了查询是而对于基本的命令格式也已经掌握,SQL SELECTCREATE VIEW,使用起来还是出现了一些命令未完成逻辑数据课程负责课程名称Characters20课程编号pi Characters10M教师编号fi Characters20学时Characters10选课学分Characters10课程pi,fi2Characters10M姓名课程编号pipi,fi1Characters10M成绩UndefinedIdentifier1pi授课教师编号pi,fi2Characters20M课爬编号pi,fil Characters10MIdentifier1pi学生姓名pi Characters10M学号Characters20班级Characters20性别学院Characters4教师Characters10教师编号pi Characters20M学号pi旌夕Characters20性别Characters10教师编号《pi〉课程char20char10nkv/l1CA-X\fkXV/char20char10char10选课课程编号char10pk,fkl姓名char10pk,fk2成绩character物理数据模型授课教师编号char20pk,fk1课鹿编号char10pk,fk2学生姓名char10pk学号班级char20性别char20学院char4char10教师___________教师编号char20pk—姓名char20+生别char10总结经过对这个实验的制作,信息比较多,做表格有点复杂,涉及的框架知识多,对关键字、空值、域完整性做的描述基本熟练对概念数据模型、物理数据模型、逻辑数据模型的基本掌握开始对数据库的设计有了一定的了解实验2建立表和完整性约束实验名称建立数据库、架构、表和定义完整性约束实验内容参见数据库的命令首先建立数据库,然后参照图和表CREATE DATABASE5-15-8建立表并定义完整性约束,可以在此基础上根据自己学校的实际情况增加表、字段和约束等实验目的熟练掌握表的建立和数据完整性约束的定义方法,实践提供的数据完整性功DBMS能,加深对数据完整性的理解实验方法用命令建立数据库,使用命令建立架构,CREATE DATABASECREATE SCHEMA用命令建立表并定义数据完整性约束,用命令修改表结构CREATE TABLEALTER TABLE实验要求用命令建立数据库自己命名数据库的名称1CREATE DATABASE用命令建立架构自己命名架构名称CREATE SCHEMA在定义的架构下参照图所示的样本数据库和表的具体要求使用命令5-15-8CREATE TABLE建立表并定义完整性约束用命令按如下要求修改表结构ALTER TABLE为学生表增加一个“平均成绩”字段,类型为短整数,默认是空值;为课程表的“学时”字段重新定义约束取值为的倍数,不允许为空值;8将院系表的名称字段的类型修改为varchar30为教师表增加一个工资字段,类型为位整数、位小数的数值型52实验过程、源程序、运行结果及简单分析建立数据库教务信息create databaseonname=juxx_dat,碧filename=C:\Program Files\Microsoft SQLServer\90\Tools\Binn\VSShell\Common7\#娴;size=10mb,maxsize=50mb,filegrowth=5mblog onname=juxx_log,二filename C:\Program Files\Microsoft SQLServer\90\Tools\Binn\VSShell\Common7\lin,size=5mb,maxsize=25mb,filegrowth=5mb建立架构教务信息create schema定义表及完整性约束教务信息.院系create tabic编号smallint primary key,名称char20not null,负责人char10,办公地点char20教务信息,学生create table学号char8primary key,院系教务信息.院系编号,smallint foreign key references姓名char10not null,性别性别二男性别二女,char2check or生源char6,状态状态廿正常状态廿留级状态=休学状态廿退学char4check or or or教务信息,教师create table教师编号char8primary key,院系教务信息.院系编号,smallint foreign key references姓名char10not null,性别性别=男性别=女,char2check or职称职称廿教授,职称廿副教授职称=讲师职称=助教’,char6check ororor专业char10教务信息.课程create table课程编号char8primary key,课程名称char20not null,责任教师教务信息.教师教师编号,char8foreign keyreferences学时int notnull,课程性质课程性质=,公共基础,课程性质=,专业基础,课程性质二,专业char10check oror选修课程性质=任意选修or教务信息.选课create table学号教务信息.学生学号,char8primarykeyforeignkeyreferences课程编号教务信息.课程课程编号,char8foreignkeyreferences成绩成绩>成绩int check=0and v=100default null修改表结构教务信息,学生alter table平均成绩add smallintdefault null教务信息.课程alter table学时%add constraintsb check8=0教务信息.院系alter table名称alter columnvarchar30教务信息,教师alter table工资add numeric7,2总结通过此次的实验,让我对使用命令建立数据库有了更加熟练的认识,对CREATE DATABASE命令建立架构的基本掌握,学会了使用命令建立表CREATE SCHEMACREATE TABLE并定义数据完整性约束,也命令修改表架构学到了更多,懂得了更多ALTER TABLE实验3数据操作及完整性约束体验实验名称数据操作及完整性约束体验实验内容在实验的基础上完成数据的插入操作,然后进行部分修改和删除操作,在这些操2作中体会数据完整性约束的作用实验目的熟练掌握的、和命令,深刻理解数据完整性约束SQL INSERT UPDATEDELETE的作用以及约束时机实验方法在实验的基础上首先用命令插入各个表的记录,然后使用和2INSERT UPDATE命令对部分记录进行修改和删除操作DELETE实验要求()读者自行设计各个表的记录,记录院系表至少条记录、学生表至少条记录、课程11030表至少条记录、教师表至少条记录、选课表至少条记录101050()使用命令完成记录的插入操作,要求分别设计若干违反实体完整性、参照完整2INSERT性和用户完整性约束的插入操作,并分析原因()设计若干删除操作,体会执行删除操作时检查参照完整性规则的效果(要求涉及拒绝删3除、空值删除、和级联删除等不同的处理方式)()设计若干更新操作,体会执行更新操作时检查实体完整性规则、参照完整性规则和定义4完整性规则的效果()在实验报告中要给出具体的记录和设计的操作,并针对各种数据完整性检查给出具体的5分析和讨论实验过程、源程序、运行结果及简单分析插入数据教务信息.院系(理学院,旧二教)insert intovalues Ul1:教务信息.院系,财经学院?三教)insert intovalues027E27教务信息.院系(电气学院?四教)insert intovalues63E37教务信息.院系(土建学院?四教)insert intovalues D4:E47教务信息.院系(医学院?三教)insert intovalues051E5:教务信息.院系(外语学院?三教)insert intovalues667E61教务信息.院系管理学院?三教)insert intovalues E7,教务信息.院系(麓山学院五教)insert intovahies08,,E8教务信息.院系(汽车学院六教)insert intovalues O9教务信息.院系(性化学院:三教)insert intovalues10E10教务信息.学生(「,‘林一?女?南宁?正常?)insert intovalues20120017080教务信息,学生(雷一?女?崇左?正常?)insert intovalues2012002702:90教务信息.学生(莫一?女?河池正常?)insert intovalucs2012003701;80教务信息.学生(曹一?女?北海?正常?)insert intovalues201200470580教务信息.学生(董一?女?百色?正常?)insert intovalues2012005704;80教务信息.学生(封一?女?南宁?正常?)教务insert intovaluns2O12OO6,O7;80insert into信息,教师(林二,女,教授?统计学)教务信息,教师values00101,4000insert into雷二?男?副教授?信计学?)valuesC002:02:3000教务信息.教师(莫二?女?讲师?统计学?)insert intovalues6031034000教务信息.教师(曹二‘,女助教?数应学?)insert intovalues004052000教务信息,课程(数学分析?公共基础)insert intovalues101:0017407教务信息.课程概率论?专业基础)insert intovalues,102;0027407教务信息.课程,数据库?专业选修)insert intovalues103;003724:教务信息.课程(计量经济学?任意选修)insert intovalues10400440;insert into教务信息.选课values(,201200r;101,;80,)insert into教务信息,选课values(,2012002,;102,;70,)教务信息.选课()insert intorinsert into教务信息,选课values(2012004,;104,;60,)insert into教务信息.选课values(,2012006,;103,;80,)设计若干操作违反完整性约束的操作教务信息.院系职教院?三教)insert intovaluesjl E11删除操作教务信息.选课学号=更新操作delete where2012006教务信息.学生学号学号update set=2012002where=2012007总结初次使用软件的灵敏度的欠缺,也基本掌握了的、和命SQL SQLINSERTUPDATEDELETE令,能理解数据完整性约束的作用以及约束时机各个表格的设计也偶尔出现了命令行出错,然后在进行解决实验4数据查询实验名称使用语句的数据查询操作SQL SELECT实验内容在实验和实验的基础上完成规定的查询操作23实验目的熟练掌握的命令SQLSELECT实验方法在实验和实验的基础上使用命令完成实验要求中所规定的各种查23SQL SELECT询实验要求在实验和实验的基础上按要求设计查询,并用命令查询23SQL SELECT一般简单查询
1.不带条件的查询指定字段查询某个表的全部信息使用单个条件的简单查询使用多个条件(关系)的简单查询AND使用多个条件(关系)大简单查询OR使用多个条件(和关系)的查询AND OR使用带运算的查询NOT使用…的查询BETWEEN…AND使用…的查询NOT…BETWEEN…AND使用运算符的字符串的匹配查询LIKE使用的模板匹配查询LIKE使用空值和非空值查询结果要求排序的查询查询结果按多列排序,并分别按升序和降序查询使用显示前若干记录的查询TOP使用显示前若干记录的查询,如果有满足条件的记录一并列入TOP连接查询两个关系的简单查询带其他条件的两个关系的连接查询多个关系的连接查询两个关于的而广义笛卡儿积运算结果根据两个关系的广义笛卡儿积运算结果得出两个关系自然连接结果查询教师-课程信息,结果包含教师姓名、职称、课程名称和课程性质等个字段4查询教师-课程信息、,结果包含教师姓名、职称、课程名称和课程性质等个字段,耍求结果4中列出所有教师信息查询教师■课程信息,查询结果中包含教师姓名、职称、课程名称和课程性质等个字段,要求4结果中能够反应目前没有确定责任教师的课程信息查询教师-课程信息,查询结果中包含教师姓名,职称,课程名称和课程性质的个字段,要求4结果中技既能反应目前不是责任教师的信息,有能反应目前没有确认责任教师的课程信息使用嵌套查询使用运算符查询IN使用运算符查询NOT IN使用关系运算符查询使用或的简单嵌套查询ANY SOME使用的嵌套查询ALL查询院系名称为含“计算机”、职称为教授、所负责课程为必修课的教师姓名、职称、课程名称和课程学时等信息(分别用嵌套查询和连接查询完成,分析各自的效率)设计两个内外层互相关的嵌套查询使用的嵌套查询EXISTS使用的嵌套查询NOT EXISTS汇总和分组查询使用统计数目的查询COUNT使用计算合计的查询SUM一次完成求和、计数、计算平均值大查询查询所有课程的成绩都大于分的学生的平均成绩60查询数据库的成绩大于分的、所有课程平均分最高的学生信息70查询每个学生的平均成绩查询每个学生的所有课程的最高成绩、最低成绩、平均成绩、和所考课程的门数查询至少有门必修课程考试成绩的每个学生的平均成绩10设计个使用和的查询2COMPUTE..BY COMPUTE设计个使用的查询1COMPUTE设计一个使用的查询COMPUT...BY实验过程、源程序、运行结果及简单分析一般简单查询姓名,性别select教务信息.学生from--查询学生的姓名,性别教务信息.选课select*from--查询选课表的信息姓名,院系select教务信息.教师from工资!where3000--
③使用单个条件的简单查询教务信息.教师select*from工资where between2000and3000--
④使用多个条件(关系)的简单查询AND教务信息.教师select*from工资工资where=2000or=3000--
⑤使用多个条件(关系)大简单查询OR教务信息,教师select*from工资工资where between2000and3000or=4000--
⑥使用多个条件(和关系)的查询AND OR教务信息,教师select*from工资工资where not=2000or=3000-
⑦使用带运算的查询NOT教务信息,教师select*from工资wherenotbetween2000and3000-使用的查询NOT…BETWEEN…AND…教务信息.院系办公地点三教%,select^fromwherelike%-使用的查询NOT…BETWEEN…AND…教务信息.院系编号select*fromwhereis notnull-使用空值和非空值查询-结果要求排序的查询⑶教务信息.教师工资select top*from orderby-使用显示前若干记录的查询TOP()教务信息,教师工资select top3with ties*from orderby-使用显示前若干记录的查询,如果有满足条件的记录一并列入TOP()连接查询2姓名,专业,课程名称教务信息.教师教务信息.课程select from join教师编号=责任教师on工资where2000姓名,专业,课程名称,院系名称教务信息.教师教务信息.课程教师编号=select fromjoin on责任教师教务信息,院系教师.院系=院系.编号joinon工资where2000教务信息.教师教务信息.院系select*from crossjoin姓名,职称,课程,课程名称,课程性质select教务信息.教师教务信息.课程fromjoin教师编号二责任教师姓名,职称,课程.课程名称,课程性质on select教务信息.教师教务信息.课程from leftjoin教师编号二责任教师on姓名,职称,课程.课程名称,课程性质select教务信息.教师教务信息.课程from rightjoin教师编号二责任教师on姓名,职称,课程.课程名称,课程性质select教务信息,教师教务信息.课程from fulljoin教师编号=责任教师on嵌套查询院系.编号教务信息.院系编号(select fromwherein院系教务信息.学生平均成绩=)select fromwhere80院系.编号教务信息.院系编号(select fromwhere notin院系教务信息.学生平均成绩=)姓名教务信息.学生平均selectfromwhere80selectfromwhere成绩二(。
个人认证
优秀文档
获得点赞 0