数据库原理与应用.docx
《数据库原理与应用.docx》由会员分享,可在线阅读,更多相关《数据库原理与应用.docx(20页珍藏版)》请在冰豆网上搜索。
数据库原理与应用
第6章数据库技术及应用基础
6.1基本概念
(一)教学目的:
初步掌握数据库系统的一些基本概念,构建简单数据库,以及对数据库进行一些基本的操作;掌握SQL语句;
(二)教学内容:
数据库系统相关概念,数据库的发展和模型,常用的数据库软件平台,数据库的一基本操作;基本SQL语句;
基本要求:
数据库相关概念,构建简单数据库,对数据库进行基本操作;
(三)教学建议:
采用理论和实践相结合的方式,以及对比的教学手段;
(1)课堂讲解演示;
(2)上机进行实践操作,尤其是构建数据库和SQL语句的操作;
一、数据、信息和数据处理
1.数据(Data):
在一般意义上被认为是对客观事物特征所进行的一种抽象化、符号化的表示,本身并没有实际意义。
数据可以有不同的形式,包括数字、文字、图形、图象、视频、声音等都是数据。
可以说,凡是能被计算机处理的对象都可以称为数据。
2。
信息(Information):
通常意义上被认为是有一定含义的、经过加工处理的、有价值的数据。
数据经过处理仍然是数据,只有经过解释后才有意义,才成为信息。
3.数据处理:
是将数据转换成信息的过程,它包括对原始数据的收集、分类、存储、排序、检索、加工和传输等一系列活动。
其目的是从大量的原始数据中抽取和推导出有价值的信息。
为了更好地提高信息的价值,必须用数据库技术来管理信息。
二、数据库、数据库管理系统和数据库系统
数据库(DB,DataBase):
是存放数据的仓库。
但所存放的数据并不是杂乱无章的,而是长期存储在某种存储介质上的有组织的、可共享的相关数据的集合。
数据库中的数据具有较高的数据共享性、独立性、完整性及较低的数据冗余度。
1.据库管理系统(DBMS,DataBaseManagementSystem)
数据库管理系统是用来对数据库进行集中统一的管理,是帮助用户创建、维护和使用数据库的系统软件,从这个意义上说,DBMS是用户与数据库之间的接口。
2.BMS的功能
a)数据定义:
DBMS提供数据定义语言(datadefinitionlanguage,DDL),用户利用DDL可以方便地对数据库中的数据对象进行定义。
b)数据操纵:
DBMS提供数据操纵语言(datamanipulationlanguage,DML),用户通过DML实现对数据的检索、插入、修改、删除和统计等数据存取及处理功能。
c)数据库的运行管理:
包括数据的完整性、安全性及并发控制的管理。
d)数据库的建立与维护:
包括数据的输入、转换,数据库的转储、恢复、重组及性能检测和分析等。
3。
数据库系统(DBS,DataBaseSystem)
a)数据库系统指在计算机系统中引进数据库技术后的整个系统,
b)数据库系统由数据库、数据库管理系统、应用开发工具(如:
Delphi,VisualBasic,VisualC++等)、应用系统(用户或专业软件开发人员编写的应用程序)、数据库管理员和用户构成。
C)数据库关注的是数据,数据库管理系统强调的是系统软件,是整个数据库系统的核心,而数据库系统侧重的是数据库的整个运行系统。
三、数据管理技术的发展
v数据处理是计算机的主要应用领域,其面临着如何管理大量复杂的数据,即计算机数据管理成了数据处理的中心问题,数据管理技术是伴随着计算机软、硬件技术与数据管理手段的发展而发展,它的发展经历了以下三个阶段:
Ø人工管理阶段(20世纪40年代中—50年代中)
Ø文件系统阶段(20世纪50年代末--60年代中)
Ø数据库系统阶段(20世纪60年代末--现在)
1.人工管理阶段
a.时期
⏹20世纪40年代中--20世纪50年代中
b.产生的背景
⏹应用需求科学计算
⏹硬件水平无直接存取存储设备
⏹软件水平没有操作系统
⏹处理方式批处理
2.文件系统管理阶段
a.时期
⏹20世纪50年代末--20世纪60年代中
b.产生的背景
a)应用需求科学计算、管理
b)硬件水平磁盘、磁鼓
c)软件水平有文件系统
d)处理方式联机实时处理、批处理
应用程序与数据的对应关系(文件系统):
文件系统管理阶段特点
数据的管理者:
文件系统,数据可长期保存
数据面向的对象:
某一应用程序
数据的共享程度:
共享性差、冗余度大
数据的结构化:
记录内有结构,整体无结构
数据的独立性:
独立性差,数据的逻辑结构改变必须修改应用程序
数据控制能力:
应用程序自己控制
3.数据库管理阶段
a.时期
⏹20世纪60年代末以来
c.产生的背景
a)应用背景大规模管理
b)硬件背景大容量磁盘
c)软件背景有数据库管理系统
d)处理方式联机实时处理,分布处理,批处理
应用程序与数据的对应关系(数据库系统):
数据库系统特点
⏹数据的管理者:
DBMS
⏹数据面向的对象:
现实世界
⏹数据的共享程度:
共享性高
⏹数据的独立性:
高度的物理独立性和一定的
逻辑独立性
⏹数据的结构化:
整体结构化
⏹数据控制能力:
由DBMS统一管理和控制
6.2数据模型
一、数据模型的基本概念
v数据模型就是现实世界的模拟,是对客观事物及其联系的抽象描述。
在数据库系统中针对不同的使用对象和不同的应用目的,可采用不同层次的数据模型。
数据模型大致分为两个不同层次:
Ø概念模型:
也称信息模型,是按用户的观点对数据和信息进行建模,是现实世界到信息世界的第一层抽象;
Ø基本数据模型:
是按计算机系统的观点对数据进行建模,是概念模型的数据化。
数据从现实世界到计算机里的具体表示一般要经历现实世界、信息世界和机器世界三个阶段。
这三个世界的关系如下图所示
二、概念模型及其表示
v在进行数据库设计时,必须首先给出概念模型,它不涉及DBMS,它只描述实体的存在及联系。
v概念模型的用途
Ø概念模型用于信息世界的建模
Ø是现实世界到机器世界的一个中间层次
Ø是数据库设计的有力工具
Ø数据库设计人员和用户之间进行交流的语言
v对概念模型的基本要求
Ø较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识;
Ø简单、清晰、易于用户理解。
v概念模型的最常用方法是P.P.Chen于1976年提出的实体—联系方法(E-R图法,Entity-RelationshipApproach)。
vE-R图法提供了表示实体集、属性和联系的方法,在E-R图中:
Ø实体:
用矩形框表示,框内标明实体名。
Ø属性:
用椭圆框表示,框内标明属性名。
Ø联系:
用菱形框表示,框内标明联系名。
Ø实体与其属性之间以无向边连接,菱形框及相关实体之间也用无向边连接,并在无向边旁标明联系的类型。
vE-R图中三种基本图素内涵如下:
Ø实体(Entity):
通常是现实世界中客观存在的可以相互区分的事物,例如一个学生、一台计算机等;也可以是抽象的概念,例如一场比赛、一门课程等。
实体集是具有相同属性的实体集合。
例如学校所有学生具有相同的属性,因此,学生的集合可以定义为一个实体集。
Ø属性(Attribute):
是描述对象的某个特性,如:
学生实体可用学号、姓名、性别、出生日期等属性来描述;课程实体可用课程号、课程名、学分等属性来描述。
Ø联系(Relationship):
是实体间的相互关系。
它反映了客观事物间相互依存的状态。
v联系(Relationship)
现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系
v两个不同实体集之间的联系有三种类型:
Ø一对一联系(1:
1):
如果对于实体集A中的每个实体,实体集B中至多有一个实体(也可以没有)与之联系,反之亦然,则称实体集A与实体集B具有一对一的联系,记为1:
1。
Ø一对多联系(1:
n):
如果对于实体集A中的每个实体,实体集B中有多个实体与之联系,反之,对于实体集B中的每个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多的联系,记为1:
n。
Ø多对多联系(m:
n):
如果对于实体集A中的每个实体,实体集B中有多个实体与之联系,反之,对于实体集B中的每个实体,实体集A中也有多个实体与之联系,则称实体集A与实体集B具有多对多的联系,记为m:
n。
E-R模型的表示方法:
v运用E-R方法可以方便地进行概念模型设计。
v概念模型设计是对实体的抽象过程:
Ø第一步:
根据各个局部应用设计出分E-R图。
Ø第二步:
综合各分E-R图得到初步E-R图,在综合过程中主要的工作是消除冲突。
Ø第三步:
对初步E-R图消除冗余,得到基本E-R图。
v以教学管理系统为例
经需求分析后,可确定如下实体:
⏹学生:
学号、姓名、性别、出生日期、地址、…
⏹课程:
课程号、课程名称、学时、学分、…
⏹班级:
班级号、班级名称、入学时间、…
⏹专业:
专业号、专业名称、专业类型、…
⏹教师:
教师号、姓名、性别、出生日期、职称、…
⏹系:
系名称、系地址、电话、…
以上各实体间的联系如下:
一个学生可选修多门课,一门课可为多个学生选修;
⏹一个学生只属于一个班,一个班有多名学生;
⏹一个班只属于一个专业,一个专业拥有多个班;
⏹一个教师可讲授多门课,一门课可由多名教师讲授;
⏹一个系有多名教师,一个教师只属于一个系。
析可分为三个局部E-R图,分别是:
学生学籍、学生选课、教师任课
第一步局部E-R模型设计
学生学籍局部E-R图如下:
学生选课局部E-R图如下:
教师任课局部E-R图如下:
第二步合并成初步E-R模型
合并后的初步E-R图如下:
三、常见的三种数据模型
v在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。
通俗地讲数据模型就是现实世界的模拟。
v数据模型应满足三方面要求:
Ø能比较真实地模拟现实世界;
Ø容易为人所理解;
Ø便于在计算机上实现;
v数据模型的三要素:
数据结构、数据操作和完整性规则(结束)。
v目前成熟地应用在数据库系统中的数据模型有:
层次模型、网状模型和关系模型。
1.层次模型
1)用树型结构来表示实体之间联系的模型叫层次模型。
层次模型必须满足下面两个条件:
Ø有且只有一个结点没有双亲结点,这个结点称为根结点
Ø根以外的其它结点有且只有一个双亲结点
2)次模型中的几个术语:
根结点,双亲结点,兄弟结点,叶结点
3)层次模型样例
2.网状模型
满足下面两个条件的基本层次联系的集合为网状模型。
A.允许一个以上的结点无双亲;
B.一个结点可以有多于一个的双亲。
网状模型样例:
3.关系模型
1)关系模型的基本概念
Ø关系模型是目前使用最广的数据模型。
Ø关系数据库系统采用关系模型作为数据的组织方式,现在流行的数据库管理系统几乎都支持关系模型,如SQLServer、Oracle、Access、FoxPro等。
Ø关系模型具有特别强的数据表示能力,可表示一对一、一对多和多对多的联系。
Ø在关系模型中,用一个二维表格来描述实体及其之间的联系。
2)系模型中的常用术语:
Ø关系(Relation):
对应通常所说的二维表。
Ø元组(Tuple):
表中的一行称为一个元组。
Ø属性(Attribute):
表中的一列称为一个属性,列名称为属性名,列值称为属性值。
Ø关键字(Key):
能够唯一确定一个元组的属性集合称为关键字。
Ø主键(PrimaryKey):
表中可能有多个关键字,在应用中被选用的关键字称为主键。
Ø域(Domain):
属性的取值范围称为域。
Ø外键(ForeignKey):
若属性集合S存在于关系R1中,但不是关系R1的主键;它同时也存在于关系R2中,而且是关系R2的主键,则S是关系R1相对于R2的外键。
3)关系模型中的常用术语:
Ø关系模式(RelationMode):
对关系的描述,一般表示为
关系名(属性名1,属性名2,……,属性名n)
例如,学生关系模式可描述为:
学生(学号,姓名,性别,出生日期,专业)
Ø主属性:
组成主键的属性
Ø非主属性:
一个关系模式中不是主属性的属性
4)关系模型的特点:
对于一个符合关系模型的二维表格,通常将其中的每一列称为一个字段(Field);而将其中的每一行称为一个记录(Record)。
一张二维表格若能构成一个关系模型,必须满足一定的条件,即关系必须规范化,一个规范化的关系必须具备以下几个特点:
i.每一列不可再分,即不能表中有表;
ii.关系的每一列上,属性值应取自同一值域;
iii.在同一个关系中不能有相同的属性名;
iv.在同一个关系中不能有完全相同的元组;
v.在一个关系中行、列的顺序无关紧要。
5)关系模型的基本运算:
Ø在一个关系中访问数据时,必然要进行一定的关系运算,关系模型主要支持的三种基本关系运算为:
选择、投影和连接,它们操作的对象和结果都是关系。
a.选择运算
✓从一个关系或二维表格中找出满足给定条件的记录行的操作称为选择。
✓选择运算是对单个关系施加的运算,是从水平方向(即行的方向)上进行的选择,其结果构成一个新的关系,这个关系是原关系上的一个子集,其关系模式不变。
例:
从学生表中筛选出“计算机”专业的记录,可用SQL语句表示为:
SELECT*FROM学生WHERE专业=‘计算机’
b投影运算
✓从一个关系或二维表格中找出若干个属性列组成新的关系的操作称为投影。
✓投影运算也是对单个关系施加的运算,是从垂直方向(即列的方向)上进行的运算,投影运算的结果也形成新的关系,其关系模式所包含的字段(属性)个数往往比原关系少,或者字段(属性)排列的顺序将有所不同,它是原关系的一个子集。
例:
从学生表中筛选出所需的列(学号、姓名、专业),可用SQL语句表示为:
SELECT学号,姓名,专业FROM学生
c.连接运算
✓将两个关系表中的记录按一定的条件横向结合,组成一个新的关系表的操作称为连接。
✓最常见的连接运算是自然连接,它是利用两个关系中所共有的一个字段,将该字段值相等的记录内容连接起来,自动剔除掉重复的字段作为新关系中的一条记录。
✓连接运算是对两个或两个以上的表施行的运算,如果需要连接的是两个以上的表,则应当进行两两关系连接,而连接过程是通过连接条件来控制的。
例:
从表中筛选出“课程号”为C01的列(姓名、课程号、成绩),可用SQL语句表示为:
SELECT姓名,课程号,成绩
FROM学生,成绩
WHERE学生.学号=成绩.学号AND课程号=‘C01’
6.3数据库技术的发展历程和发展方向
一、数据库技术的发展历程
v数据库技术的发展,已经成为信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心。
数据库技术最初产生于20世纪60年代中期,根据数据模型的发展,可以划分为以下三个阶段:
Ø第一代的网状、层次数据库系统
Ø第二代的关系数据库系统
Ø第三代的以面向对象模型为主要特征的数据库系统
二、数据库技术的发展方向
v计算机硬件的发展和数据库技术的广泛使用,推动着数据库技术与系统的发展。
尤其是互联网的出现,极大地改变了数据库的应用环境,向数据库领域提出了前所未有的技术挑战。
v这些因素的变化推动着数据库技术的进步,衍生出一批新的数据库技术,如Web数据库技术、并行数据库技术、数据仓库(DataWarehouse,DW)与联机分析处理(LineAnalyticalProcessing,OLAP)技术、数据挖掘(DataMining,DM)与商务智能技术、内容管理技术、海量数据管理技术等。
v这些数据库技术将促使数据库向智能化集成化方向发展
6.4常用数据库开发平台
一、认识数据库开发平台
Ø使用数据库开发平台的目的就是建立数据库,将数据库的设计方案付与实施。
按数据库的观点这些软件可划分为如下的两大类。
Ø数据库服务器
这一类数据库软件常见的有SQLServer、Oracle、Sybase、MySQL等,它们都是大型的数据库开发平台,重点在于后端数据库的管理,它们的数据库都是隐身于后的“服务器”。
其主要功能有:
强大的数据库引擎、高度的数据安全、备份及还原、不同数据库之间的数据转换等。
Ø桌面型数据库软件
目前,最流行的桌面型数据库软件有Access和VisualFoxPro等,它们都是小型的数据库开发平台,其特点是易学易用,适合建立小型数据库。
其主要特色有:
强大的窗体及报表制作能力、强化数据库的工具和易学易用的操作界面等。
二、AccessXP
v作为MicrosoftOffice组件之一的MicrosoftAccess是在Windows环境下最具代表性的桌面型数据库开发平台。
v使用MicrosoftAccess无需编写任何代码,只需通过直观的可视化操作就可以轻松地创建数据库和数据表,并进行有效的管理。
vAccessXP是一种关系型数据库管理系统。
(一)数据库的组成
在AccessXP中,一个数据库包含的对象有表、查询、窗体、报表、宏、模块和页。
✓表:
是数据库中最基本的对象,没有表也就没有其他对象。
✓查询:
就是从一个或多个表(或查询)中选择一部分数据,将它们集中起来,形成一个全局性的集合,供用户查看。
✓窗体:
是用户与数据库交互的界面,是数据库维护的一种最灵活的方式。
✓报表:
Access中的报表与现实生活的报表是一样的,是一种按指定的样式格式化的数据形式。
✓宏:
宏是若干个操作的组合,可用来简化一些经常性的操作。
✓模块:
在模块中,用户可以用VBA语言编写函数过程或子程序。
✓页:
是Access2003中新增加的对象。
用户通过创建页(Web),把数据库中的数据向Internet或Intranet上发布。
(二)数据库的建立
设计一个数据库的关键就集中体现在建立基础表上。
Ø字段数据类型
✓文本型(Text)
✓备注型(Memo)
✓数字型(Number)
✓日期/时间型(Date/Time)
✓货币型(Currency)
✓自动编号型(AutoNumber)
✓是/否型(Yes/No)
✓OLE对象(OLEObject)
Ø字段属性
确定数据类型之后,还应设定字段属性才能更准确地确定数据的存储。
✓字段大小
✓格式
✓小数位数
✓标题
✓默认值
✓有效性规则
✓有效性文本
✓索引
Ø表的建立
建立表有三种方法。
除了使用设计器创建表之外,还能使用向导创建表和通过输入数据创建表。
(三)据库的管理与维护
数据库的管理与维护主要就是表的管理与维护。
Ø向表中输入、修改、删除数据
Ø表结构的修改
Ø数据的导出和导入
Ø表的复制、删除、恢复和更名
三、SQLServer2000
vSQLServer2000是美国微软公司在大型关系数据库领域的旗舰产品,它使用传统的Transact-SQL语言,基于客户机/服务器,将所有的工作分解为客户机任务和服务器任务,由两者分别完成。
v它的可靠性和易用性使其成为一个杰出的数据库平台,可用于大型联机事务处理、数据仓库及电子商务等。
vSQLServer2000提供了功能强大而又使用便捷的三个管理工具:
服务器管理器、企业管理器和查询管理器。
v服务管理器
SQLServer服务管理器的主要作用是用来启动数据库服务器的实时服务、暂停和停止正在运行的服务,或在暂停服务后继续服务。
v企业管理器
企业管理器是SQLServer中最重要和最常用的管理工具,它可以完成大多数的数据库管理工作,如用户、登录、权限的管理;创建和管理数据库;创建和管理表、视图、存储过程、触发器、索引、规则等SQLServer的数据库对象和用户自定义数据类型及导入与导出数据等。
v查询分析器
SQLServer2000提供的查询管理器既可使用户交互式地输入和执行各种Transact-SQL语句,方便地编写查询程序;又可迅速地查看这些语句的执行结果,来完成对数据库中数据的分析和处理。
这是一个非常实用的管理工具。
6.5关系数据库标准语言SQL简介
一、SQL概述
vSQL是英文StructuredQueryLanguage的缩写,意思为结构化查询语言。
vSQL语言是一种介于关系代数与关系演算之间的语言,其功能包括数据定义、数据查询、数据操纵和数据控制等4个方面,是一个通用的功能极强的关系数据库标准语言。
vSQL语言已经被确定为关系数据库系统的国际标准,被绝大多数商品化的关系数据库系统采用。
如Oracle、DB2、SQLServer、Sybase等。
1.SQL语言的组成
Ø数据定义(DDL,DataDefinitionLanguage)
Ø数据操纵DML
(DataManipulationLanguage)
Ø数据控制(DCL,Datacontrollanguage)
2.SQL语言的特点
Ø非过程化语言
Ø面向集合的操作方式
Ø两种使用方式:
可以作为独立语言和嵌入某种高级语言中使用
ØSQL是一种语言标准
Ø语言简洁、功能强大:
SQL语言功能极强,完成核心功能只用了9个动词,包括如下四类:
Ø数据查询:
SELECT
Ø数据定义:
CREATE、DROP、ALTER
Ø数据操纵:
INSERT、UPDATE、DELETE
Ø数据控制:
GRANT、REVOKE
二、SQL数据查询语句
1.定义基本表的SQL语句
CREATETABLE<表名>
(<列名><数据类型>[<列级完整性约束条件>]
[,<列名><数据类型>[<列级完整性约束条件>]]…
[,<表级完整性约束条件>]);
⏹<表名>:
所要定义的基本表的名字
⏹<列名>:
组成该表的各个属性(列)
⏹<列级完整性约束条件>:
涉及相应属性列的完整性约束条件
⏹<表级完整性约束条件>:
涉及一个或多个属性列的完整性约束条件
[例1]建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。
其中学号不能为空,值是唯一的,并且姓名取值也唯一。
CREATETABLEStudent
(SnoCHAR(5)PrimaryKey,
SnameCHAR(20)UNIQUE,
SsexCHAR
(1),
SageINT,
SdeptCHAR(15));
2.常用完整性约束
a)主码约束:
PRIMARYKEY
b)唯一性约束:
UNIQUE
c)非空值约束:
NOTNULL
d)参照完整性约束
3.改基本表的SQL语句
ALTERTABLE<表名>
[ADD<新列名><数据类型>[完整性约束]]
[DROP<完整性约束名>]
[MODIFY<列名><数据类型>];
⏹<表名>:
要修改的基本表
⏹ADD子句:
增加新列和新的完整性约束条件