您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 数据库及SQL语句的实践
-1-一、实验目的和内容1.复习创建数据库的基本方法;2.复习常用SQL语句语法;3.掌握视图、表关联等数据库技术。二、实验原理及基本技术路线图(方框原理图)关系数据库规范化理论规范化是关系数据库逻辑设计的另一种方法,它和ER模型的出发点不一样,但是一个基于规范化的关系设计和一个由ER模型转换成的关系设计几乎得到相同的结果。两种方法具有互补性。规范化方法中,从一个将被建模的现实世界的情形出发,分析数据项之间的相互影响,通过无损分解使数据库的逻辑设计趋于合理,把低一级的关系模式分解为若干个高一级的关系模式。关系实质上是—张二维表。表的每一行叫做一个元组,每一列称为—个属性。因此,一个元组就是该关系所涉及的属性集的笛卡尔积的一个元素。关系是元组的集合,也就是笛卡尔积的一个子集。关系模式就是这个元组集合的结构上的描述。现实世界的许多已知事实限定了关系模式的所有可能的关系必须满足—定的完整性约束条件。这些约束或者通过对属性取值范围的限定,例如职工年龄小于65岁(65岁以后必须退休),或者通过属性值间的相互关连(主要体现于值的相等与否)反映出来。后者称为数据依赖,它是数据库模式设计的关键。关系模式应当刻划这些完整性约束条件。关系模型要求关系必须是规范化的,即要求数据库表中不允许含有多值属性和含有内部结构,关系的每一个分量必须是一个不可分的的数据项,不允许表中还有表。遵守这样规则的表称为第一范式。这是关系数据库设计过程中的一个最基本的约束关系模式的设计问题。存在大量数据冗余的数据库模式不是良好的数据库模式。因为大量的数据冗余不仅造成存储空间的浪费,存取效率的低下,而且使得数据信息的更新变得繁琐复杂,另外还隐藏着破坏数据一致性完整性的危险。良好的数据库模式不存在数据冗余、插入异常、删除异常和更新异常等问题。重新分配数据项到不同的表中,能够消除这些问题,这恰是规范化过程将实现的任务。更新异常(UpdateAnomaly):如果更改表所对应的某个实体实例或者关系实例的单个属性时,需要将多行更新,那么就说这个表存在更新异常。数据冗余引起更新异常。删除异常(DeleteAnomaly):如果删除表的某一行来反应某个实体实例或者关系实例消失时,会导致丢失另一个不同实体实例或者关系实例的信息,而这是我们不希望丢失的,那么就说这个表存在删除异常。插入异常(InsertAnomaly):如果某个实体或者实例信息随着另一个实体或实例信息的存在而存在,在缺少另一个实体或实例信息时,无法表示这个实体或者实例信息,而这是我们不希望看到的,那么就说这个表存在插入异常。三、所用仪器、材料(设备名称、型号、规格等)操作系统:Windows7数据库软件:SQLServer2008四、实验方法、步骤1.创建数据库MIS;2.创建表Course、Score、Student;3.将Excel中的数据导入数据库的表中;4.创建视图v_stdScore;-2-5.练习基本的SQL语句语法;6.从数据表中检索出每门课程成绩最高的两名学生的信息。五、实验过程原始记录(数据、图表、计算等)1.创建数据库MIS2.创建表Course、Score、Student3.将Excel表中的数据导入数据库中courseidvarchar(50),scoredecimal(10,0))gocreatetableStudent(stdidvarchar(50),stdnamevarchar(50),sexvarchar(4),birthdatetime,subjectvarchar(50),deptvarchar(50))gocreatetableCourse(courseidvarchar(50),coursenamevarchar(50),hoursint,creditsint)gocreatetableScore(stdidvarchar(50),-3-在SQLServer2008对象资源管理器中右键单击刚刚创建的数据库MIS,在弹出的菜单中选择“任务导入数据”,在弹出的“SQLServer导入和导出向导”中点击下一步,设置“数据源”为MicrosoftExcel,“Excel文件路径”根据具体存放路径来设置,其余选项默认即可,然后点击“下一步”接着,再“选择目标”项中,设置SQLServer连接验证的方式及要导入数据的数据库(MIS),点击“下一步”,在“指定表复制或查询”中选择“复制一个或多个表或视图的数据”点击“下一步”后,选择表和视图,这里将目标设为MIS数据库下的Course表,因为这前选择的Excel文件中存放的是Course表中的数据。再点击“下一步”后忽略所有“数据类型映射”的警告,继续。然后到完成界面,点击“完成”即可-4-其余两张表的数据以同样的方式导入数据库中。4.创建视图v_stdScore5.练习基本的SQL语句语法createviewv_stdScoreasselectA.*,B.courseid,B.coursename,C.scorefromStudentA,CourseB,ScoreCwhereA.stdid=C.stdidandB.courseid=C.courseid-5-6.从数据表中检索出每门课程成绩最高的两名学生的信息。执行结果如下图:select*fromv_stdScoreAwherestdidin(selecttop2stdidfromv_stdScoreBwhereB.courseid=A.courseidorderbyB.scoredesc)orderbyA.courseid,A.scoredesc-6-六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必须用计算纸)1.通过本次实验,我们复习了数据库SQL语句的一些基本知识,学会了简单的从Excel导入数据的方法。2.多表关联的查询在数据库使用中非常常见,本次实验通过简单的例子对多表关联的查询进行了复习和巩固,这是构造更复杂查询语句的前提和基础,而且更重要是要分析其中原理和方法。
本文标题:数据库及SQL语句的实践
链接地址:https://www.777doc.com/doc-2428292 .html