没有合适的资源?快使用搜索试试~ 我知道了~
学习sql数据库的基本语法与使用方法
资源详情
资源评论
资源推荐
第 1 章 数据库基础
1.1 数据库系统概述
或许你还没有意识到,我们身边的很多事情正随着数据库技术的发展而变化。
当你在超市购物时,收款员通过扫描条形码快捷地为你打印出购物清单及款项;在 ATM
机上,你可以修改自己的密码、查询帐户余额或取款;在机票代销点,你可以预定国内乃至
国际上任何一个航班的机票;在图书网站,你可以查找所需要的图书信息,并可以完成购书
的全部交易过程。
所有这些生活中的便利,都离不开数据库技术的支持。因为在上述各系统用到的数据库
中,分别存储着超市货物信息、银行帐户信息、航班机票信息、图书销售信息等,正是这些
存储在数据库中的数据支撑着各应用系统的运转。
在信息化社会中,可为我们所利用的数据呈爆炸性增长,诸如“信息处理”、“信息高速
公路”等词汇已是司空见惯。如今,任何一个企业的成功之道都离不开它能够准确、及时地
获取信息和处理信息,“ 信息”对于一个单位及个人的重要价值已为大家所认可。而要存储、
管理和如此大量的信息,不使用数据库几乎是不可能的。
数据库是数据的集合,这些数据描述一个或多个相关部门的活动。就拿我们所在的学校
来说,随着校园信息化的进展,数据库已构成学校的数据中心,并支撑着学校各项工作的正
常运转。当你从步入大学校园的那一刻起,就会不时地与各种信息系统打交道:通过注册系
统注册,通过选课系统选课,通过图书馆系统查询和借阅图书;甚至于在食堂里,你所使用
的饭卡也离不开数据库的支持。在学校的数据库系统中,存储着大量的学生信息、教师信息、
课程信息、财务信息、设备信息等。正是这些宝贵的信息资源,成为学校各种业务子系统运
转的基础,成为全校师生从事各种活动的依据。
1.1.1 数据库的由来与发展
随着我们在工作、学习、生活中所涉及到的数据与日俱增,人们单凭自己的能力来存储、
管理和使用数据已显得力不从心,而计算机正逐渐成为我们处理数据的得力工具。用计算机
存储、管理和加工数据,其规模及速度都是过去人工或机械方式无法比拟的。随着数据量的
不断增加,计算机管理数据的软件技术也在不断改进和完善。
20 世纪 50 年代中期至 60 年代中期,由于计算机大容量存贮设备(如磁盘,磁鼓等)
的出现,计算机不再仅限于科学计算,而在数据处理方面逐渐显示出巨大潜力。操作系统的
出现,为数据的存储与管理提供了有力的支持。在操作系统环境中,各种信息都是以文件为
单位存储在外存,且由操作系统统一管理。操作系统为用户使用文件提供了友好的界面,并
实现了文件的目录管理和对文件的权限管理。
但是,操作系统对于文件的管理还是基础性的。在文件内部,操作系统没有对数据进行
有效的组织,不提供访问文件内部项的专用工具。操作系统也不负责维护文件之间的信息关
联,因而文件结构不能很好地反映现实世界中事物之间的联系。由于数据的组织仍然是面向
程序,所以文件中存在大量的数据冗余。
20 世纪 60 年代,随着计算机在数据管理领域中的大量应用,人们对数据管理技术提出
了更高的要求。人们希望面向企业或部门、以数据为中心组织数据,以便能够减少数据的冗
余,并提供更高的数据共享能力。总之,人们期盼管理数据的专用软件出现,而数据库技术
正是在这种应用需求的背景下发展起来的。
1963 年,美国 Honeywell 公司的 IDS(Integrated Data Store)系统投入运行,揭开
了数据库技术的序幕;1968 年,美国 IBM 公司推出层次模型的 IMS 数据库系统;1969 年,
美国数据系统语言协会组织的数据库任务组总结了当时各式各样的数据库,并提出了数据库
的网状数据模型;1970 年,IBM 公司的 E.F.Code 发表论文,提出了关系模型,奠定了关系
数据库的理论基础,并标志着数据库技术走向成熟。
那么,什么是数据库呢?形象地说,数据库就是数据的仓库,可以长期地保存大量数据。
数据库管理系统(DataBase Management System-DBMS)是协助用户管理和使用数据的软
件,对每个数据库都是必须的。
从文件系统发展到数据库系统,在信息管理领域中具有里程碑的意义。在文件系统阶
段,人们在信息处理中关注的问题是系统功能的设计,因此程序设计占主导地位;而在数据
库方式下,数据开始占据了中心位置,数据结构设计成为信息系统首先关心的问题,而应用
程序则以既定的数据结构为基础进行设计。
数据库技术是数据管理的专用技术;数据库技术所研究的问题是如何科学地组织和存储
数据,如何高效地获取和处理数据;数据库系统是计算机信息系统的基础和主要组成部分。
当前,数据库技术正朝着小型化和大型化两个方向发展。
在数据库发展初期,DBMS 是一个只能运行在大型计算机上的庞大而昂贵的软件系统。
因为数据库需要存储 GB 数量级的数据,需要大型机也是必然的。但是,今天的 PC 机功能已
经可以和过去的大型机相媲美。在 PC 机中不但可以存储 GB 数量级的数据,而且运行 DBMS
也不成问题。所以,基于关系模型的数据库系统已经作为一种通用的工具,如同 word 字处
理软件那样出现在各种 PC 机上。Access、FoxPro、Paradox 等就是微机数据库的代表。
但另一方面,大型数据库系统的应用规模在很多企业却越来越大。随着信息量的急剧
膨胀,GB 数量级的数据对很多单位已远远不够。企业的数据库中往往需要存储 TB(1000GB)
数量级的数据,而且不再限于存储简单的数据,而是需要存储诸如声音、图像等多媒体数据。
例如,一个存储卫星图片的数据库就需要几千 TB 的空间。此外,很多企业的数据库系统需
要同时接纳成千上万个用户。存储空间和用户数量的激增对计算机提出了更高的要求。如何
存储和处理如此巨大的数据,如何支持众多的在线用户,这就需要先进的数据库相关技术的
支持,例如新一代的存储技术、以及并行处理技术等。
大型数据库产品的代表有 Oracle、IBM DB2、Microsoft SQL Server 等。
1.1.2 数据库系统特点与功能
概括来讲,数据库有如下一些特点:
① 面向企业或部门,以数据为中心组织数据,形成综合性的数据库,为各应用所共享;
而不同的应用程序根据各自的处理需求,从数据库中获取需要的数据。基于以数据为中心的
设计思想,数据库中的数据冗余小,易修改,易扩充。减少数据的重复存贮,不但节省了空
间,也便于维护数据的一致性。
② 数据库中的数据是可以而且需要长期保存的。这不仅是因为数据库应用需要反复地
使用这些数据。而且长期积累的历史数据还是企业宝贵的资源,其中蕴藏着很多有价值的信
息。但这并不意味着数据库中的数据不可以修改,如果一些数据不再有用,可以通过有关操
作从数据库中删除。
③ 数据库都采用特定的数据模型(即数据库的逻辑结构)来组织和存储数据,并提供
了基于这种数据模型的一组数据库操作。例如关系数据库所采用的数据模型就是关系表(二
维表)。数据库的数据模型有一个非常重要的特点,即不但可以存储数据本身,而且还可以
存储数据之间的联系。例如在学校的数据库中不但存储了学生信息、课程信息、教师信息等,
而且还存储了学生与课程的联系信息(学生选课信息)、教师与课程的联系信息(教师开课
信息)等。
④ 数据库中的数据具有较高的独立性。当数据的物理结构(涉及数据的物理存储)和
逻辑结构改变时,有可能不影响或较少影响应用程序。
⑤ 作为数据管理的专用软件,数据库系统具有良好的用户接口,并为开发者提供了专
用的开发工具与环境。特别是数据库系统所支持的 SQL 语言(本章将重点介绍),为用户开
发、管理和使用数据库提供了极大方便。
⑥ 数据库系统对数据库中的数据进行统一管理和控制,提供了数据的安全性、完整性、
以及并发控制。一般大型数据库都是多用户系统。如何保证多个用户同时访问数据库时互不
干扰、如何防止由于用户的误操作而导致数据库中数据受到破坏、如何防止对数据库的非法
访问等,对于这些问题数据库系统都有相应的措施和解决办法。
图 1-1 描绘了数据库系统的基本构成和主要操作内容。
DBMS
数据库定义
数据查询
数据修改
数据库
数据
元数据
数据库控制
图 1-1 数据库系统
从图 1-1 中可以看出,数据库系统的一切操作都是通过数据库管理系统 DBMS 进行的。
下面简要介绍 DBMS 的功能:
① 数据库定义功能
DBMS 通常都提供数据定义语言(Data Definition Language,简称 DDL 语言)。数据库
设计与开发人员通过 DDL 语言来建立数据库表、视图、索引及其他数据库对象。其中一些
对象的定义(如数据库表)描述了数据库的逻辑结构和物理结构。
例如,我们利用 DDL 语句建立一个“学生表”,其中描述了表的结构(有哪些列,每
一列是什么数据类型)。学生表里存储的是学生数据,如图 1-2 所示。
学号
姓名
性别
生日
所在系
s06001
张小红
女
1989-3-12
d01
s06006
何志歌
男
1988-3-22
d02
s06008
李群生
男
1990-3-3
d03
…
…
…
…
…
结构
数据
图 1-2 数据库的结构定义与数据存储
数据库中的数据都是按一定的逻辑结构组织起来的,因为只有这样,DBMS 才能对这
些数据进行有效地管理,而用户也才有可能对数据库中的指定数据进行操作。
② 数据库存取功能
DBMS 提供了数据操纵语言(Data Manipulation Language,简称 DML 语言)。用户使用
DML 语言可以实现对数据库中数据的基本操作,如查询、插入、修改和删除等。DBMS 接
受用户发来的 DML 语句,解释并执行这些语句,实现用户对数据库操作的请求。
③ 数据库管理功能
DBMS 还提供了很多对数据库的管理和控制机制。系统管理员和用户利用这些功能可
以对数据库进行权限设置、设置数据库的运行参数,以及实现数据库的日常维护等。
图 1-1 中还显示,数据库中不仅包括一般用户数据(如学生信息、课程信息等),还包
括“元数据”。所谓元数据就是描述数据库中数据结构的数据,是数据库中各种对象(如用
户、表、视图等)的定义信息。例如我们在数据库中建立一个学生表,这个表的结构就是由
元数据来描述的。这些元数据也存储在数据库中,且由 DBMS 负责创建和维护。在大型数
据库中,这些元数据是被存储在一个称为“数据字典”的地方。元数据属于数据库的系统信
息,用户并不关心也不直接使用这些元数据。但元数据对 DBMS却是至关重要的,因为 DBMS
正是依据这些元数据来解读并完成用户发出的各种数据库操作。
以上介绍了 DBMS 的主要功能。数据库系统软件除 DBMS 外,还需要一个软件支撑环
境,其中包括底层的操作系统、面向开发人员的数据库开发工具及实用程序等。一般数据库
系统都是在操作系统的支持下工作的。
最后,我们介绍一下与数据库系统有关的人员:
① 数据库管理员(DBA-DataBase Administrator)
DBA 专职负责数据库系统的运行,例如数据库用户的创建与权限管理、数据的后备与
恢复、系统性能的优化等。DBA 还应负责为用户解决应用中出现的系统问题,参与数据库
的设计工作。为了保证数据库能够高效正常地运行,大型数据库系统都设专人负责数据库系
统的管理与维护。
② 数据库应用系统的设计与开发人员
系统设计与开发人员负责数据库的设计和应用系统的开发,并负责数据库应用程序的维
护与技术支持。
③ 最终用户
最终用户是指数据库应用系统的使用者,他们通过应用程序的用户界面使用数据库,完
成日常业务处理。
1.2 数据模型
在设计数据库之前,首先要对单位的业务需求进行分析,理清现实世界中哪些数据需要
保存在数据库中,这其中也包括数据之间的联系信息。
例如,我们要开发一个教务管理系统,该系统需要对院系信息、教师信息、学生信息、
课程信息等进行管理,并实现如下功能:
对系、系主任、教师、学生、课程的基本信息进行维护(增、删、改);
实现学生选课;
信息查询,其中包括基本信息查询,相关信息查询(如指定系的学生信息、指定学
生的选课信息等)、以及各种统计信息(如系学生数、学生已获学分等)。
通过以上初步分析,我们确定数据库应该保存的数据如图 1-3 所示。
教务管理数据库
数据:
系,系主任,学生,课程
数据之间的联系:
系主任-系 : 领导
系-学生 : 包含
学生-课程: 选课
信息查询
信息维护
数据统计
选课
图 1-3 教务系统数据及功能描述
如何准确描述这些数据呢?在系统分析与数据库设计过程中,首要任务是建立“数据模
型”。数据模型就是为现实世界中的数据建模,就是对现实世界中的数据进行抽象和定义。
为了使建模工作的目标与分工更加明确,我们将数据模型分为两个层次:
第一层次的数据模型是按照用户的观点为现实世界中的数据建模,我们称之为“概念
模型”;第二层次是按照数据库的观点为数据建模,我们称之为数据库中的数据模型。每种
数据库都支持特定的数据模型。当前应用最为广泛的关系数据库就是因采用关系模型而得
名,由此也可以看出数据模型在数据库系统中的核心地位。
1.2.1 概念数据模型
建立概念模型的目的,是将用户所陈述的日常业务中的数据及相互之间的联系准确、详
细地记录下来,以便为后面的数据库设计打下基础。概念模型只是用来描述某个特定组织所
关心的信息结构,而不涉及在数据库中的表示。
目前常用的概念模型就是“实体-联系模型(Entity-Relationship)”,简称 ER 模型。
ER 模型是从现实世界中抽象出一些实体集及相互之间的联系,并用 ER 图来表示。
在 ER 模型中采用以下概念和名词术语:
① 实体
客观存在并可相互区分的事物叫实体。实体可以是具体的人或物,如一名教师、一辆汽
车等;也可以是某个事件或概念等抽象事物,如一次会议、一门课程、一张订单、一项规定
等。
② 实体集
通过对各种实体进行分类,抽象出实体集并为其命名。例如,我们针对在校的所有学
生,抽象出“学生”这个实体集。但我们也可以根据分类的需要,抽象出“本科生”和“研
究生”两个实体集。之所以抽象出两个实体型,是因为本科生和研究生某些属性不同,例如
研究生有导师、而本科生没有,而这种属性上的差异恰恰又是教务管理中需要区分的。
分类的标准是根据需要而定,但不变的是:一个实体集是对具有共性的一类实体的抽
象。也就是说,属于一个类型的各个实体都用同一组属性来描述。
③ 属性
属性是指实体集或联系所具有的性质。例如,“学生”实体集可以用学号、姓名、性别、
出生年月日等一组属性来描述;又如,“课程”实体集的属性有课程号、课程名、学分等。
一个实体集到底具有哪些属性,要根据应用的需求而定。属性的设置将会决定数据库的逻辑
结构以及数据库中存储的内容。
对于一个实体集,用它的一组属性值便可以描述一个实体。例如,“050001,张小红,
女,1988-11-27”就代表了现实世界中的一个学生实体。
注意:对于每个属性都需要确定其数据类型(如数值型、字符型等),并由此限定了该
属性的取值和操作。
除了实体集外,联系也可以具有某些属性,后面会有这方面的介绍。
④ 主码
主码是实体集中唯一标识一个实体的属性或属性组。对于每一个实体集,都应该指定
一个主码。
例如在学生实体集中,可以指定学号为主码,因为给定一个学号可以唯一标识一个学
生。而姓名就不能作为主码,因为学生有重名。
⑤ 联系
现实世界中的事物之间是有联系的,这种联系必然要反映到概念模型中。
例如,学生选课就是学生和课程之间的一种联系。在教务管理中,教务人员经常要查
看选课情况,如某门课有哪些同学选修、或某学生选修了哪些课程等。这种查询实际上就要
用到学生与课程之间的联系信息。
剩余56页未读,继续阅读
狂奔的蜗牛sunyan
- 粉丝: 33
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0