第一章 数据库系统基础.docx
《第一章 数据库系统基础.docx》由会员分享,可在线阅读,更多相关《第一章 数据库系统基础.docx(32页珍藏版)》请在冰豆网上搜索。
第一章数据库系统基础
院系:
经济管理系
教研室:
信管
教师:
《数据库原理及应用》课程教案
课程名称
数据库原理及应用
课程学分
3
课程属性
必修课(∨)专业选修课()校定公共选修课()
课程总学时
48学时
其中:
讲课:
32学时
实验:
16学时
先修课程
信息技术基础
授课专业、班级
经管系工商、信管、经济学、会计、工程造价各专业
主要教材
教材名称
出版社
作者
出版时间
VisualFoxPro程序设计教程(第二版)
北京邮电大学出版社
刘卫国
2006
教材名称
出版社
作者
出版时间
数据库系统概论(第三版)
高等教育出版社
王珊,萨师煊
2006
教学目的
及要求
教学目标:
本章主要介绍数据库原理部分,通过课程学习,要求学生能够达到以下目标:
1.掌握数据库系统基本概念
2.了解数据库系统的产生与发展状况
3.掌握关系数据模型的概念等
4.熟练掌握关系数据模型和关系数据库的设计方法。
重点难点:
本章主要讲述数据库原理部分,其中关系数据库作为目前数据库的主流,它的相关概念和关系运算以及关系数据库的设计是本章的重点和难点部分。
解决方法:
对关系数据库的概念和关系运算以及关系数据库的设计部分,讲解要以具体实例为主,通过具体的二维表来介绍相关概念和它的具体运算过程。
使学生有直观的感受,从而掌握住关系的概念和运算,为以后的学习打下基础。
教学方法和手段:
先演示实例一,让学生在课程开始建立总体感性认识。
教学方法:
任务驱动和启发式结合。
手段:
多媒体教学、实例演示、板书
讲授学时:
6学时
注:
表中()选项请打“∨”
第一章数据库系统概述
[教学目的与要求]
通过课程学习,要求学生了解数据库系统的产生与发展状况,掌握数据库系统基本概念,了解数据模型,
5.熟练掌握关系数据模型和关系数据库的设计方法。
[教学内容]
数据库系统产生和发展状况,计算机数据管理管理方法的四个阶段;数据库和数据库系统的基本概念;数据库管理系统和应用系统;三种数据模型层次模型、网状模型和关系模型的概念,关系模型中的相关概念;关系数据库的设计方法。
[教学重点与难点]
关系数据库的概念和关系运算;关系数据库的设计方法。
现在数据库已是每一项业务的基础。
数据库被应用于维护商业内部记录,在万维网上为顾客和客户显示数据,以及支持很多其它商业处理。
数据库同样出现在很多科学研究的核心中,天文学家、地理学家以及其他很多科学家搜集的数据也是用数据库表示的。
数据库也用在企业、行政部门。
因此,数据库技术已成为当今计算机信息系统的核心技术,是计算机技术和应用发展的基础。
经过40多年的发展,它已形成了较为完整的理论体系和实用技术。
本章主要介绍数据库技术的发展和数据库系统涉及的最基本、最重要的概念,包括数据管理技术的发展、数据模型、关系数据库、数据库设计。
1.1数据管理技术的发展
随着计算机硬件和软件的发展,计算机数据管理方法至今大致经历了四个阶段:
人工管理阶段、文件系统阶段、数据库系统阶段和高级数据库阶段。
1.1.1人工管理阶段
在人工管理阶段(20世纪50年代中期以前),计算机主要用于科学计算,其他工作还没有展开。
外部存储器只有磁带、卡片和纸带等,还没有磁盘等字节存取存储设备。
软件只有汇编语言,没有操作系统和管理数据的软件,尚无数据管理方面的软件。
数据处理的方式基本上是批处理。
这个阶段数据管理的特点如下:
数据不保存
因为该阶段计算机主要应用于科学计算,对于数据保存的需求尚不迫切,只是在计算某一课题时将数据输入,完成后得到结果,因此无需保存数据。
系统没有专用的软件对数据进行管理
数据需要由应用程序自己管理,没有相应的软件系统负责数据的管理工作。
数据不共享
数据是面向程序的,一组数据只能对应一个程序。
多个应用程序涉及某些相同的数据时,也必须各自定义,因此程序之间有大量的冗余数据。
数据不具有独立性
程序依赖于数据,如果数据的类型、格式、或输入输出方式等逻辑结构或物理结构发生变化,必须对应用程序做出相应的修改。
在人工管理阶段,程序与数据之间的关系可用图1-1表示。
1.1.2文件系统阶段
从20世纪50年代后期到60年代中期,计算机不仅用于科学计算,还大量应用于信息管理。
大量的数据存储、检索和维护成为紧迫的需求。
在硬件方面,有了磁盘、磁鼓等直接存储设备;在软件方面,出现了高级语言和操作系统,且操作系统中有了专门管理数据的软件,一般称之为文件系统;在处理方式方面,不仅有批处理,也有联机实时处理。
用文件系统管理数据的特点如下:
数据以文件形式可长期保存下来
由于计算机大量用于数据处理,数据需要长期保存在辅存上,以便用户可随时对文件进行查询、修改和增删等处理。
文件系统可对数据的存取进行管理
有专门的软件即文件系统进行数据管理,文件系统把数据组织成相互独立的数据文件,利用“按名访问,按记录存取”的管理技术,对文件进行修改、插入和删除的操作。
因此,程序员只与文件名打交道,不必明确数据的物理存储,大大减轻了程序员的负担。
文件组织多样化
有顺序文件、链接文件、索引文件等,因而对文件的记录可顺序访问,也可随机访问,更便于存储和查找数据。
但文件之间相互独立、缺乏联系。
数据之间的联系要通过程序去构造。
程序与数据之间有一定独立性
由专门的软件即文件系统进行数据管理,程序和数据之间由软件提供的存取方法进行转换,数据存储发生变化不一定影响程序的运行,既可大大节省维护的工作量,又可减轻程序员的负担。
与人工管理阶段相比,文件系统阶段对数据的管理有了很大的进步,但一些根本性问题仍没有彻底解决,主要表现在以下三方面:
数据冗余度大
数据独立性差
数据一致性差
由于相同数据的重复存储、各自管理,在进行更新操作时,容易造成数据的不一致性。
在文件系统阶段,程序与数据之间的关系可用图1-2表示。
1.1.3数据库系统阶段
20世纪60年代后期,计算机硬件、软件有了进一步的发展。
计算机应用于管理的规模更加庞大,数据量急剧增加;硬件方面出现了大容量磁盘,使计算机联机存取大量数据成为可能;硬件价格下降,而软件价格上升,使开发和维护系统软件的成本增加。
文件系统的数据管理方法已无法适应开发应用系统的需要。
为解决多用户、多个应用程序共享数据的需求,出现了统一管理数据的专门软件系统,即数据库管理系统。
用数据库系统来管理数据比文件系统具有明显的优点,从文件系统到数据库系统,标志着数据管理技术的飞跃。
数据库系统管理数据的特点如下:
数据结构化
数据结构化是数据库与文件系统的根本区别。
有了数据库管理系统后,数据库中的任何数据都不属于任何应用。
数据是公共的,结构是全面的。
它是在对整个组织的各种应用(包括将来可能的应用)进行全局考虑后建立起来的总的数据结构。
它是按照某种数据模型,将全组织的各种数据组织到一个结构化的数据库中,整个组织的数据不是一盘散沙,可表示出数据之间的有机关联。
【例1.2】要建立学生成绩管理系统,系统包含学生(学号、姓名、性别、系别、年龄)、课程(课程号、课程名)、成绩(学号、课程号、成绩)等数据,分别对应三个文件。
若采用文件处理方式,因为文件系统只表示记录内部的联系,而不涉及不同文件记录之间的联系,要想查找某个学生的学号、姓名、所选课程的名称和成绩,必须编写一段不很简单的程序来实现。
而采用数据库方式,数据库系统不仅描述数据本身,还描述数据之间的联系,上述查询可以非常容易地联机查到。
数据共享性高、冗余少,易扩充
数据库系统从全局角度看待和描述数据,数据不再面向某个应用程序而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。
这样便减少了不必要的数据冗余,节约存储空间,同时也避免了数据之间的不相容性与不一致性。
由于数据面向整个系统,是有结构的数据,不仅可被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充,可以适应各种用户的要求。
数据独立性高
数据的独立性是指数据的逻辑独立性和数据的物理独立性。
数据的逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,即当数据的总体逻辑结构改变时,数据的局部逻辑结构不变,由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必须修改,从而保证了数据与程序间的逻辑独立性。
例如,在原有的记录类型之间增加新的联系,或在某些记录类型中增加新的数据项,均可确保数据的逻辑独立性。
数据的物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的,即当数据的存储结构改变时,数据的逻辑结构不变,从而应用程序也不必改变。
例如,改变存储设备和增加新的存储设备,或改变数据的存储组织方式,均可确保数据的物理独立性。
有统一的数据控制功能
数据库为多个用户和应用程序所共享,对数据的存取往往是并发的,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据,为确保数据库数据的正确有效和数据库系统的有效运行,数据库管理系统提供下述四方面的数据控制功能。
数据的安全性(security)控制
数据的安全性是指保护数据以防止不合法使用数据造成数据的泄露和破坏,保证数据的安全和机密。
使每个用户只能按规定,对某些数据以某些方式进行使用和处理。
例如,系统提供口令检查或其他手段来验证用户身份,防止非法用户使用系统;也可以对数据的存取权限进行限制,只有通过检查后才能执行相应的操作。
数据的完整性(integrity)控制
数据的完整性是指系统通过设置一些完整性规则以确保数据的正确性、有效性和相容性。
完整性控制将数据控制在有效的范围内,或保证数据之间满足一定的关系。
有效性是指数据是否在其定义的有效范围,如月份只能用1-12之间的正整数表示;
正确性是指数据的合法性,如年龄属于数值型数据,只能含0,1,…9,不能含字母或特殊符号;
相容性是指表示同一事实的两个数据应相同,否则就不相容,如一个人不能有两个性别。
并发(concurrency)控制
多用户同时存取或修改数据库时,可能会发生相互干扰而提供给用户不正确的数据,并使数据库的完整性受到破坏,因此必须对多用户的并发操作加以控制和协调。
数据恢复(recovery)
计算机系统出现各种故障是很正常的,数据库中的数据被破坏、被丢失也是可能的。
当数据库被破坏或数据不可靠时,系统有能力将数据库从错误状态恢复到最近某一时刻的正确状态。
数据库系统阶段,程序与数据之间的关系可用图1-3表示。
从文件系统管理发展到数据库系统管理是信息处理领域的一个重大变化。
在文件系统阶段,人们关注的是系统功能的设计,因此程序设计处于主导地位,数据服从于程序设计;
而在数据库系统阶段,数据的结构设计成为信息系统首先关心的问题。
数据库技术经历了以上三个阶段的发展,已有了比较成熟的数据库技术,但随着计算机软硬件的发展,数据库技术仍需不断向前发展。
1.1.4高级数据库阶段
20世纪70年代,层次、网状、关系等三大数据库系统奠定了数据库技术的概念、原理和方法。
从20世纪80年代以来,数据库技术在商业领域的巨大成功刺激了其他领域对数据库技术需求的迅速增长。
这些新的领域为数据库应用开辟了新的天地,另一方面在应用中提出的一些新的数据管理的需求也直接推动了数据库技术的研究和发展,尤其是面向对数据库系统。
另外,数据库技术不断与其它计算机分支结合,向高一级的数据库技术发展。
新型的数据库技术有
1)分布式数据库系统
2)面向对象数据库系统
3)多媒体数据库系统
4)数据仓库
1.2数据库的基本概念
在介绍数据库的基本概念之前,先介绍一些数据库最常用的术语和基本概念。
1.2.1数据(Data)
数字、文字、声音、图形、图像等。
用数据描述的现实世界中的对象可以是实在的事物,如描述一个学生的情况可用学号、姓名、性别、年龄、系别、入学时间等,则可以这样描述:
(0801002、张明、男、22、经济管理系、2008)
这里的学生记录就是数据。
对于这条记录,了解其含义的将得到如下信息:
赵文是个大学生,男,今年22岁,2003年考入计算机系;而不了解含义的人则无法理解其含义。
可见,数据的形式本身还不能完全表达其内容,需要经过语义解释。
因此数据和关于数据的解释是不可分的,数据的解释是对数据含义的说明,数据的含义成为数据的语义,数据与其语义是不可分的。
1.2.2数据库(DataBase,简称DB)
数据库是长期存储在计算机内有组织的共享的数据的集合。
数据库中的数据按一定的数据模型组织、描述和储存。
它可以供用户共享,具有尽可能小的冗余度和较高的数据独立性,使得数据存储最优,数据最容易操作,并且具有完善的自我保护能力和数据恢复能力。
数据库特点如下:
集成性
把某特定应用环境中的各种应用相关的数据及其数据之间的联系全部地集中地并按照一定的结构形式进行存储,或者说,把数据库看成为若干个单个性质不同的数据文件的联合和统一的数据整体。
共享性
数据库中的一块块数据可为多个不同的用户所共享,即多个不同的用户,使用多种不同的语言,为了不同的应用目的,而同时存取数据库,甚至同时存取同一块数据,即多用户系统。
1.2.3数据库管理系统(DataBaseManagementSystem,简称DBMS)
数据库管理系统是位于用户与操作系统之间的一层数据管理软件,它是数据库系统的核心组成部分,用户在数据库系统中的一切操作,包括数据定义、查询、更新及各种控制,都是通过DBMS进行的。
DBMS就是实现把用户意义下的抽象的逻辑数据处理转换成计算机中的具体的物理数据的处理软件,这给用户带来很大的方便。
它的主要功能有以下几个方面:
数据定义
DBMS提供数据定义语言DDL(DataDefineLanguage),用户通过它可以方面地对数据库中的数据对象进行定义。
例如,为保证数据库安全而定义的用户口令和存取权限,为保证正确语义而定义完整性规则。
数据操纵
DBMS提供数据操纵语言DML(DataManipulationLanguage)实现对数据库的基本操作,包括检索、插入、修改、删除等。
SQL语言就是DML的一种。
数据库运行管理
数据库在建立、运行和维护时由数据库管理系统统一管理、统一控制。
DBMS通过对数据的安全性控制、数据的完整性控制、多用户环境下的并发控制以及数据库的恢复,来确保数据正确有效和数据库系统的正常运行。
数据库的建立和维护功能
它包括数据库的初始数据的装入,转换功能,数据库的转储、恢复、重组织,系统性能监视、分析等功能。
这些功能通常是由一些实用程序完成的。
数据通信
DBMS提供与其他软件系统进行通信的功能。
实现用户程序与DBMS之间的通信,通常与操作系统协调完成。
1.2.4数据库系统(DataBaseSystem,简称DBS)
数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成(见图1-5)。
图1-5数据库系统
1.2.5用户(User)
用户是指使用数据库的人,即对数据库的存储、维护和检索等操作。
用户大致可分为终端用户、应用程序员和数据库管理员。
1.最终用户(EndUser)
主要是使用数据库的各级管理人员、工程技术人员、科研人员,一般为非计算机专业人员。
2.数据库应用系统开发人员(ApplicationProgrammer)
负责为终端用户设计和编制应用程序,以便终端用户对数据库进行存取操作。
3.数据库管理员(DadaBaseAdministrator,简称DBA)
DBA是数据库所属单位的代表。
一个单位决定开发一个数据库系统时,首先就应确定DBA的人选。
DBA不仅应当熟悉系统软件,还应熟悉本单位的业务工作。
DBA应自始至终参加整个数据库系统地研制开发工作,开发成功后,DBA将全面负责数据库系统的“管理、维护和正常使用的”。
其职责如下:
参与数据库设计的全过程,决定数据库的结构和内容;
定义数据的安全性和完整性,负责分配用户对数据库的使用权限和口令管理;
监督控制数据库的使用和运行,改进和重新构造数据库系统。
当数据库受到破坏时,应负责恢复数据库;当数据库的结构需要改变时,完成对数据结构的修改。
因此,DBA不仅要有较高的技术专长和较深的资历,并应具有了解和阐明管理要求的能力。
特别对于大型数据库系统,DBA极为重要。
对于常见的微机数据库系统,通常只有一个用户,常常不设DBA,DBA的职责由应用程序员或终端用户代替。
1.2.6数据库系统的组成
图1-6数据库系统组成示意图
1.3数据模型
数据模型(DataModel)是专门用来抽象、表示和处理现实世界中的数据和信息的工具。
计算机系统是不能直接处理现实世界的,现实世界只有数据化后,才能由计算机系统来处理这些代表现实世界的数据。
为了把现实世界的具体事物及事物之间的联系转换成计算机能够处理的数据,必须用某种数据模型来抽象和描述这些数据。
数据模型是数据库系统的核心。
通俗地讲,数据模型是现实世界的模拟。
数据模型应满足三方面要求:
一是能比较真实地模拟现实世界;二是容易理解;三是易在计算机上实现。
在数据库系统中针对不同的使用对象和应用目的,采用不同的数据模型。
根据模型应用的不同,可将模型分为两类。
第一类模型是概念模型,也称信息模型,它是一种独立于计算机系统的数据模型,完全不涉及信息在计算机中的表示,只是用来描述某个特定组织所关心的信息结构。
概念模型是按用户的观点对数据和信息建模,强调其语义表达能力,概念应该简单、清晰、易于用户理解,它是对现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具。
这一类模型中最著名的是“实体联系模型”。
第二类模型是数据模型,主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模,是直接面向数据库的逻辑结构,是对现实世界的第二层抽象。
这类模型直接与DNMS有关,称为“逻辑数据模型”,一般又称为“结构数据模型”。
这类模型有严格的形式化定义,以便于在计算机系统中实现。
它通常有一组严格定义的无二义性语法和语义的数据库语言,人们可以用这种语言来定义、操纵数据库中的数据。
数据模型是数据库系统的核心和基础。
各种机器上实现的DBMS软件都是基于某种数据模型的。
1.3.1概念模型
由图1-6可以看出,概念模型实质上是现实世界到机器世界的一个中间层次。
1.概念模型中的基本概念
概念模型涉及的概念主要有
实体(entity)
实体是一个数据对象,指应用中可以区别的客观存在的事物。
实体既可以是实际存在的对象,也可以是某种概念。
如一个工人、一个学生、一个学校、一个操作流程等都是实体。
属性(attribute)
实体所具有的某一特性成为属性。
一个实体可以由若干个属性来描述。
如职工实体由职工号、姓名、性别、年龄、职称、部门等属性组成,则(1010,陈平,男,34,工程师,02)这组属性值就构成了一个具体的职工实体。
实体集(entityset)
所有属性名完全相同的同类实体的集合,称为实体集。
如全体职工就是一个实体集,为了区分实体集,每个实体集都有一个名称,即实体名。
职工实体指的是名为职工的实体集,而(1010,陈平,男,34,工程师,02)是该实体集中的一个实体,同一实体集中没有完全相同的两实体。
码(Key)
能惟一标识实体的属性或属性集,称为码,有时也称为实体标识符,或简称为键。
如职工实体中的职工号属性。
域(Domain)
属性的取值范围称为该属性的域(值域),如“职工性别”的属性域为[男,女]。
实体型(EntityType)
实体集的名及其所有属性名的集合,称为实体型。
如职工(职工号、姓名、性别、年龄、职称、部门)就是职工实体集的实体型。
实体型抽象地刻画了所有同集实体,在不引起混淆的情况下,实体型往往简称为实体。
2.概念模型中实体的联系(Relationship)
在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。
两个实体集之间的联系可归纳为以下三类:
一对一联系(1:
1)
如果对于实体集E1中的每个实体,实体集E2至多有一个(也可没有)实体与之联系,反之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“1:
1”(见图1-7所示)。
图1-7两个实体集之间的联系(1:
1)
一对多联系(1:
n)
如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体间有联系,而E2中每个实体至多和E1中一个实体有联系,那么称E1对E2的联系是“一对多联系”,记为“1:
n”(见图1-8所示)。
实体集E1实体集E2
图1-8两个实体集之间的联系(1:
n)
多对多联系(m:
n)
如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么称E1和E2的联系是“多对多联系”,记为“m:
n”(见图1-9所示)。
实体集E1实体集E2
图1-9两个实体集之间的联系(m:
n)
3.概念模型的表示方法
概念模型是对信息世界建模,因此概念模型应能方便、准确地描述信息世界中的常用概念。
概念模型的表示方法很多,其中广泛被采用的是实体联系模型(Entity—RelationshipModel)。
它是由PeterChen于1976年在题为“实体联系模型:
将来的数据视图”论文中提出的,简称为E-R模型。
E-R模型的要素
E-R模型的主要的元素是:
实体集、属性、联系集,其表示方法如下:
实体用方框表示,方框内注明实体的命名。
实体名常用大写字母开头的有具体意义的英文名词表示。
然而,为了便于用户与软件开发人员的交流,在需求分析阶段建议用中文表示,在设计阶段在根据需要转成英文形式。
下面的联系名和属性名也采用这种方式。
属性用椭圆形框表示,框内写上属性名,并用无向连线与其实体集相连,加下画线的属性为标识符。
联系用菱形框表示,并用线段将其与相关的实体连接起来,并在连线上标明联系的类型,即1:
1、1:
n、m:
n。
联系也会有属性,用于描述联系的特征,如酬金等。
因此,E-R模型也称为E-R图。
E-R图(E-Rdiagram)是用来描述实体集、属性和联系的图形。
图中每种元素都用结点表示。
用实线来连接实体集与它的属性以及联系与它的实体集。
【例1.4】图1-10是一个E-R图,表示一个简单的电影数据库。
实体集是电影、影星和制片公司。
电影实体集有三个属性:
电影名、电影制作日期、片长。
另外两个实体集影星和制片公司正好有两个相同的属性:
名称和地址。
图中还有两个联系:
•签约是电影及其影星的联系。
因此这也是影星及其参演电影的联系。
•拥有是电影及其所属电影公司的联系。
图1-10电影数据库的实体联系图
建立E-R图
建立E-R图的步骤:
确定实体和实体的属性;
确定实体和实体之间的联系及联系的类型;
给实体和联系加上属性。
1.3.2数据模型
1.数据模型的组成要素
数据库模型是数据库系统的核心和基础,任何DBMS都支持一种数据模型。
数据模型是严格定义的一组概念的集