数据库技术及应用基础.ppt
数据库技术及应用基础 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望6.1 基本概念基本概念v本节要点本节要点6.1.1 数据、信息和数据处理 6.1.2 数据库、数据库管理系统和数据库系统 6.1.3 数据管理技术的发展 v重点难点重点难点数据、信息和数据处理三者的定义和关系数据、数据库管理系统、数据库系统的定义以及三者的区别第第3 3章章3.13.1节节6.1.1 数据、信息和数据处理数据、信息和数据处理 v数据(数据(Data)在一般意义上被认为是对客观事物特征所进行的一种抽象化、符号化的表示。v信息(信息(Information)有一定含义的、经过加工处理的、有价值的数据。v数据、信息和数据处理的关系数据、信息和数据处理的关系数据经过数据处理就转换成了信息。第第6 6章章6.16.1节节6.1.16.1.16.1.2 数据库、数据库管理系统和数据库、数据库管理系统和数据库系统数据库系统 v1.数据库(数据库(DB,Database)数据库是长期存储在某种存储介质上的有组织的、可共享的相关数据的集合,数据具有较高的数据共享性、独立性、完整性及较低的数据冗余度。v2.数据库管理系统(数据库管理系统(DBMS)数据定义数据操纵数据库的运行管理数据库的建立与维护 第第6 6章章6.16.1节节6.1.26.1.26.1.2 数据库、数据库管理系统数据库、数据库管理系统和数据库系统和数据库系统v3.数据库系统数据库系统数据库系统指在计算机系统中引进数据库技术后的整个系统。图6-1 数据库系统第第6 6章章6.16.1节节6.1.26.1.26.1.3 数据管理技术的发展数据管理技术的发展 v数据管理技术发展经历的三个阶段:数据管理技术发展经历的三个阶段:1.人工管理阶段第第6 6章章6.16.1节节6.1.36.1.3图6-2 人工管理阶段的数据处理6.1.3 数据管理技术的发展数据管理技术的发展2.文件系统管理阶段3.数据库系统管理阶段 第第6 6章章6.16.1节节6.1.36.1.36.2 数据模型数据模型v本节主要内容本节主要内容6.2.1 数据模型的基本概念6.2.2 概念模型及其表示6.2.3 常见的三种数据模型v重点难点重点难点数据模型和概念模型的概念和表示方法画E-R图实体集之间的三种类型的联系三种基本的数据模型关系模型中的相关术语定义和基本运算第第6 6章章6.26.2节节6.2.1 数据模型的基本概念数据模型的基本概念v概念模型概念模型也称信息模型,是按用户的观点对数据和信息进行建模,是现实世界到信息世界的第一层抽象;v基本数据模型基本数据模型是按计算机系统的观点对数据进行建模,是概念模型的数据化。第第6 6章章6.26.2节节6.2.16.2.16.2.2 概念模型及其表示概念模型及其表示v概念模型概念模型是用户观点对现实世界的抽象,它不涉及DBMS,它只描述实体的存在及联系。vE-R图中三种基本图素图中三种基本图素(1)实体(Entity)通常是现实世界中客观存在的可以相互区分的对象、事物与过程;(2)属性(Attribute)是描述对象的某个特性;(3)联系(Relationship)是实体间的相互关系。第第6 6章章6.26.2节节6.2.26.2.26.2.2 概念模型及其表示概念模型及其表示v两个不同实体集之间三种类型的联系两个不同实体集之间三种类型的联系一对一联系(11):如果对于实体集A中的每个实体,实体集B中至多有一个实体(也可以没有)与之联系,反之亦然,则称实体集A与实体集B具有一对一的联系,记为11。一对多联系(1n):如果对于实体集A中的每个实体,实体集B中有多个实体与之联系,反之,对于实体集B中的每个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多的联系,记为1n。多对多联系(mn):如果对于实体集A中的每个实体,实体集B中有多个实体与之联系,反之,对于实体集B中的每个实体,实体集A中也有多个实体与之联系,则称实体集A与实体集B具有多对多的联系,记为mn。第第6 6章章6.26.2节节6.2.26.2.26.2.3 常见的三种数据模型常见的三种数据模型v基本数据模型基本数据模型1.层次模型2.网状模型3.关系模型(1)关系模型的基本概念(2)关系模型的特点(3)关系模型的基本运算第第6 6章章6.26.2节节6.2.36.2.36.3 数据库技术的发展历程和发展方向数据库技术的发展历程和发展方向v本节主要内容本节主要内容6.3.1 数据库技术的发展历程6.3.2 数据库技术的发展方向v重点难点重点难点数据库技术的发展方向第第6 6章章6.36.3节节6.3.1 数据库技术的发展历程数据库技术的发展历程v数据库技术发展的三个阶段数据库技术发展的三个阶段第一代的网状、层次数据库系统 第二代的关系数据库系统 第三代的以面向对象模型为主要特征的数据库系统 第第6 6章章6.36.3节节6.3.16.3.16.3.2 数据库技术的发展方向数据库技术的发展方向v数据库技术发展方向数据库技术发展方向计算机硬件的发展和数据库技术的广泛使用,推动着数据库技术与系统的发展。尤其是互联网的出现,极大地改变了数据库的应用环境,向数据库领域提出了前所未有的技术挑战。这些因素的变化推动着数据库技术的进步,衍生出一批新的数据库技术,如Web数据库技术、并行数据库技术、数据仓库(Data Warehouse,DW)与联机分析处理(Line Analytical Processing,OLAP)技术、数据挖掘(Data Mining,DM)与商务智能技术、内容管理技术、海量数据管理技术等。这些数据库技术将促使数据库向智能化集成化方向发展。第第6 6章章6.36.3节节6.3.26.3.26.4 常用数据库开发平台常用数据库开发平台v本节主要内容本节主要内容6.4.1 认识数据库开发平台6.4.2 Access XP 6.4.3 SQL Server 2000v重点难点重点难点Access和SQL Server 2000的实际应用操作第第6 6章章6.46.4节节6.4.1 认识数据库开发平台认识数据库开发平台v数据库分类数据库分类数据库服务器常见的有SQL Server、Oracle、Sybase、MySQL等。主要功能有:强大的数据库引擎、高度的数据安全、备份及还原、不同数据库之间的数据转换等。桌面型数据库软件最流行的桌面型数据库软件有Access和Visual FoxPro等。主要特色有:强大的窗体及报表制作能力、强化数据库的工具和易学易用的操作界面等。第第6 6章章6.46.4节节6.4.16.4.16.4.2 Access XP v(1)Access XP 的启动的启动单击“开始”“程序”,选择“Microsoft Access”选项启动Access XP。图6-15 Access XP的主界面 第第6 6章章6.46.4节节6.4.26.4.26.4.2 Access XPvAccess XP 的使用的使用创建数据库对数据库进行查询,修改,删除等工作图6-19 “SQL查询”窗口 第第6 6章章6.46.4节节6.4.26.4.26.4.3 SQL Server 2000v1.服务器管理服务器管理SQL Server服务管理器的主要作用是用来启动数据库服务器的实时服务、暂停和停止正在运行的服务,或在暂停服务后继续服务 图6-20 SQL Server 服务管理器窗口 第第6 6章章6.46.4节节6.4.36.4.36.4.3 SQL Server 2000v2.企业管理器企业管理器企业管理器是SQL Server中最重要和最常用的管理工具,它可以完成大多数的数据库管理工作。图6-21 企业管理器窗口 第第6 6章章6.46.4节节6.4.36.4.36.4.3 SQL Server 2000v3.查询分析器查询分析器SQL Server 2000提供的查询管理器既可使用户交互式地输入和执行各种Transact SQL语句,方便地编写查询程序;又可迅速地查看这些语句的执行结果,来完成对数据库中数据的分析和处理。启动查询分析器的两种方法从“开始”“程序”“Microsoft SQL Server”菜单中选择“查询分析器”选项;直接从企业管理器中单击“工具”“SQL 查询分析器”。第第6 6章章6.46.4节节6.4.36.4.36.5 关系数据库标准语言关系数据库标准语言SQL简介简介v本节主要内容本节主要内容6.5.1 SQL概述6.5.2 SQL数据查询语句v重点难点重点难点SQL查询语句第第6 6章章6.56.5节节6.5.1 SQL概述概述vSQL语言的定义语言的定义SQL语言的全名是结构化查询语言(Structured Query Language),SQL同时集成了数据定义语言(DDL)和数据操纵语言(DML)的功能,它可以完成数据库活动中的全部工作。vSQL语言的特点语言的特点非过程化语言 面向集合的操作方式 两种使用方式 SQL是一种语言标准 语言简洁、功能强大 第第6 6章章6.56.5节节6.5.16.5.16.5.2 SQL数据查询语句数据查询语句v数据库查询常用格式数据库查询常用格式常用格式:SELECT ALL|DISTINCT 列名表 FROM 表名,表名 WHERE 条件表达式GROUP BY 列名1HAVING 条件表达式ORDER BY列名2 ASC|DESC.说明:SELECT子句指明要选取的列,完成投影运算。FROM子句指明要从哪个表中查询数据。WHERE子句指明要选择满足什么条件的记录。GROUP子句将结果按“列名1”的值进行分组,若带有HAVING短语,则只有满足指定条件的组才予以输出。ORDER子句将结果表按“列名2”的值升序(降序)排序,选项ASC为升序,DESC为降序,默认为升序。第第6 6章章6.56.5节节6.5.26.5.26.5.2 SQL数据查询语句数据查询语句v1.简单查询简单查询(1)查询全部列【例6.4】查询全体学生的详细情况。SELECT*FROM student;(2)查询部分列【例6.5】查询全体学生的姓名和学号。SELECT Sname,Sno FROM student;(3)查询计算列的值【例6.6】查询学生的姓名和年龄 SELECT Sname,year(date()year(BirthDate)FROM student;第第6 6章章6.56.5节节6.5.26.5.26.5.2 SQL数据查询语句数据查询语句(4)为返回结果定制别名【例6.7】将上例添上“年龄”别名SELECT Sname,year(date()year(BirthDate)AS 年龄FROM student;(5)查询指定列的唯一值【例6.8】从该数据库中查询出所有专业的名称 SELECT DISTINCT spec FROM student;注:与DISTINCT功能相对应的是ALL关键字,ALL关键字允许重复数据集合的出现。默认情况下,SELECT语句总是用ALL关键字进行查询的。第第6 6章章6.56.5节节6.5.26.5.26.5.2 SQL数据查询语句数据查询语句v2.条件查询条件查询(1)使用比较运算符【例6.9】查询公共管理专业所有学生的学号和姓名。SELECT Sno,Sname from student where Spec=公共管理;(2)使用多重条件查询【例6.10】查询所有“计算机”专业的女生姓名。SELECT Sname FROM student WHERE Spec=计算机 AND Sex=no;【例6.11】查询所有“计算机”或“公共管理”专业的学生姓名。SELECT Sname FROM student WHERE Spec=计算机 OR Spec=公共管理;第第6 6章章6.56.5节节6.5.26.5.26.5.2 SQL数据查询语句数据查询语句(3)使用)使用LIKE的查询的查询格式:列名 NOT LIKE 字符串常量其中,列名的数据类型必须是字符串类型,字符串常量除了可包含普通字符外,还可包括以下两个通配符:*:表示任意多个字符或汉字。?:表示任意一个字符或汉字。【例6.12】查询所有姓“林”的学生信息。SELECT*FROM student WHERE Sname LIKE 林*;第第6 6章章6.56.5节节6.5.26.5.26.5.2 SQL数据查询语句数据查询语句(4)使用)使用BETWEEN(或(或NOT BETWEEN)的查询)的查询格式:列名 NOT BETWEEN 值1 AND 值2【例6.14】查询出生日期在19801983年之间的学生信息。SELECT*FROM student WHERE birthdate BETWEEN#1980-1-1#AND#1982-12-31#注:日期前后须加上“#”符号;使用BETWEEN有包括边界值,该条件还可以表达为:birthdate=#1980-1-1#AND birthdate=#1982-12-31#或 year(birthdate)BETWEEN 1980 AND 1982第第6 6章章6.56.5节节6.5.16.5.16.5.2 SQL数据查询语句数据查询语句(5)使用谓词)使用谓词IN(或(或NOT IN)的查询)的查询格式:列名 NOT IN(值1,值2,.,值n)【例6.15】查询计算机专业和公共管理专业的学生信息。SELECT*FROM student WHERE Spec IN(计算机,公共管理);注:IN谓词实际上是多个OR运算符的缩写,可以改用OR来连接多个条件。第第6 6章章6.56.5节节6.5.26.5.26.5.2 SQL数据查询语句数据查询语句(6)涉及空值的查询)涉及空值的查询格式:列名 IS NOT NULL【例6.16】查询“成绩”字段值为空的学生的学号。SELECT DISTINCT Sno FROM score WHERE Grade IS NULL;注:可能有的学生没参加两门课程以上的考试,所以用DISTINCT去掉重复行;条件不能写成:“列名=NULL”;在Access中,null就是空,空与非空的条件是Is null或Is not null,此二者可使用在任意类型的字段。空值作为未知的值来考虑,应区别于“空字符串”和数值0。第第6 6章章6.56.5节节6.5.26.5.26.5.2 SQL数据查询语句数据查询语句(7)使用统计函数)使用统计函数【例6.17】统计课程号为“C1”的平均成绩(列标题为“平均成绩”)。SELECT AVG(Grade)AS 平均成绩 FROM score WHERE Cno=C1;【例6.18】统计Student表中的男生数 SELECT COUNT(*)FROM student WHERE Sex=yes第第6 6章章6.56.5节节6.5.26.5.26.5.2 SQL数据查询语句数据查询语句v常用的统计函数常用的统计函数函数功能SUM(字段名)求指定字段值的总和AVG(字段名)求指定字段值的平均MIN(字段名)求指定字段值的最小值MAX(字段名)求指定字段值的最大值COUNT(字段名)或COUNT(*)统计记录个数第第6 6章章6.56.5节节6.5.26.5.26.5.2 SQL数据查询语句数据查询语句v3自然连接查询自然连接查询若查询涉及两个以上的表且目标列中去掉相同的字段名,则称为自然连接查询。【例6.19】查询选修了课程号为“C1”的学生学号、姓名和成绩。SELECT Student.Sno,Sname,Grade FROM Student,Score WHERE Student.Sno=Score.Sno AND Cno=C1;注:如果字段名在各个表中是唯一的,可以把字段名前的表名去掉,否则就必须加上表名作为前缀,以免引起混淆。第第6 6章章6.56.5节节6.5.26.5.26.5.2 SQL数据查询语句数据查询语句v4分组查询分组查询【例6.20】统计Student表中各专业(计算机专业除外)的男生数。SELECT Spec,count(*)FROM student WHERE Sex=yes GROUP BY Spec HAVING Spec 计算机注:对于分组查询而言,WHERE子句指定参加分组的条件,而HAVING子句指定的是分组后作为查询结果输出的条件。SELECT子句中的列名表项,要么是统计函数,要么必须出现在GROUP BY子句中,否则会出现语法错误。第第6 6章章6.56.5节节6.5.26.5.26.5.2 SQL数据查询语句数据查询语句v5排序排序【例6.21】将上例查询结果按专业降序排列。SELECT Spec,count(*)FROM student WHERE Sex=yes GROUP BY Spec ORDER BY Spec DESCv6更新查询更新查询UPDATE语句的一般格式为:UPDATESET =,列名2=表达式2WHERE【例6.22】将student表所有记录专业名称“公共管理”改为“工商管理”。UPDATE student SET Spec=工商管理 WHERE Spec=公共管理第第6 6章章6.56.5节节6.5.26.5.26.6 数据库技术应用实例数据库技术应用实例v本节主要内容本节主要内容6.6.1 学生成绩管理数据库的设计6.6.2 学生成绩管理数据库的实施v重点难点重点难点对整个数据库的设计和实践操作第第6 6章章6.66.6节节6.6.1 学生成绩管理数据库的设计学生成绩管理数据库的设计v1.概念结构的设计概念结构的设计通过对学生成绩管理数据库的需求分析,设计出总体E-R图模型。v2.逻辑结构的设计逻辑结构的设计将E-R模型转换为关系模型 将E-R模型转换为关系模型遵循的规则E-R图中的每个实体都应转换为一个关系,实体的属性直接作为该关系的属性,实体的主键直接作为该关系的主键。E-R图中的每个联系都应转换为一个关系,联系的属性(若有的话)直接作为该关系的属性,与该联系相连的两个实体的主键作为该关系的属性。第第6 6章章6.66.6节节6.6.16.6.16.6.2 学生成绩管理数据库的实施学生成绩管理数据库的实施v1.使用使用Access XP 创建学生成绩管理数据库创建学生成绩管理数据库创建一个名为“学生成绩管理”数据库的步骤如下:(1)在本地硬盘的E盘中创建一个新文件夹,名为“学生成绩管理”。(2)启动Access XP,在E盘的“学生成绩管理”文件夹下创建名为“学生成绩管理”的空数据库。第第6 6章章6.66.6节节6.6.26.6.26.6.2 学生成绩管理数据库的实施学生成绩管理数据库的实施v2.创建三个数据表并录入数据创建三个数据表并录入数据在“学生成绩管理”数据库中创建三个数据表,分别名为“student”、“course”和“score”。三个数据表的表结构分别如表6-1、表6-2和表6-3所示。图6-27 表设计窗口第第6 6章章6.66.6节节6.6.26.6.26.6.2 学生成绩管理数据库的实施学生成绩管理数据库的实施v3.创建表间关联创建表间关联对上述三个数据表之间创建表间关联的步骤如下:(1)单击数据库工具栏上的关系按钮,系统出现“显示表”对话框,如图6-29所示。图6-29 “关系”窗口中的显示表第第6 6章章6.66.6节节6.6.26.6.26.6.2 学生成绩管理数据库的实施学生成绩管理数据库的实施(2)在“显示表”对话框中,依次选中“student”、“score”和“course”表,并单击“添加”按钮,将这三个数据表加入到关系窗口中,如图6-30所示。图6-30 添加表之后的“关系”对话框第第6 6章章6.66.6节节6.6.26.6.26.6.2 学生成绩管理数据库的实施学生成绩管理数据库的实施(3)设置三个表间关系,方法如下:用鼠标选中“student”表中的“Sno”字段,将其拖到“score”表中的“Sno”字段上,并释放鼠标左键,系统弹出“编辑关系”对话框,如图6-31所示。在该对话框中依次选中“实施参照完整性”复选框、“及联更新相关字段”复选框和“及联删除相关记录”复选框,并单击“创建”按钮,就在“student”表和“score”表之间创建了一个“一对多”的关系。用同样方法可创建“course”表和“score”表之间关于“Cno”字段的“一对多”的关系。创建后的关系窗口如图6-32所示。保存该关系窗口。v4.使用使用SQL语言查询数据库内容语言查询数据库内容关于使用SQL查询数据库内容可参阅6.5.2节 第第6 6章章6.66.6节节6.6.26.6.2作业作业v课本课本P299 2.试述数据库、数据库管理系统、数据库系统在概念上有何不同?5.试述如何用E-R图描述院系学生成绩管理数据库?8.解释下列术语:关系、元组、属性、域、关键字、主键、外键。