1、#*数据库系统概论教案及讲义授课老师:XXX#*第一章 绪 论教学目标:1、结合具体的例子讲述数据库的设计步骤,通过此例子让同学们对本教材各章节所要学习的内容有一个初步的整体了解;2、对照文件系统的数据管理过程,讲述数据库管理系统的数据管理过程,让同学们对数据库管理系统的功能、组成、工作过程有个初步了解,并对数据库的数据模型(主要是关系模型)有比较深入的理解。3、课外布置学生完成一个小的数据库设计课程设计题目,要求学生分组寻找题目并完成设计过程。教学重点:1、举简单例子说明数据库设计过程。2、数据库技术的产生发展过程的文件系统阶段与数据库系统阶段。3、概念模型、数据模型及三要素、数据库系统结构
2、教学难点:数据库系统的三级模式结构;数据库的二级映象功能与数据独立性。教学过程:本章分 3 次讲述,每次 2 课时,主要讲述以下内容介绍如下:1、举简单例子说明需求分析及表达、概念结构设计、逻辑结构设计过程。第六章的不少内容前到此处讲述(实际教学过程中本章的学时数增加 2 学时左右) 。对照文件系统的数据管理过程,讲述数据库管理系统的数据管理过程,及相关概念。2、讲述数据、数据库、数据库管理系统、数据库系统的基本概念;数据库模型(主要是关系模型) ;数据库系统结构。1.1 引言1.1.1 数据、数据库、数据库管理系统、数据库系统1、数据(data)* 高级语言的数据,如 PASCAL 语言中各
3、种类型数据 (常量、变量):integer,real,char,record,file, (着重文件类型数据说明)* 定义:1)数据是描述事物的符号记录,2)数据与其语义是不可分的,需要经过语义#*解释。2、数据库(database ,简称 DB)*定义:数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并为各种用户共享。 (P1)*目前流行数据库的数据模型:关系模型,数据结构为表。*数据库的存储:若干表一个库,一张表一个库(文件系统为一个文件一个库)*对数据库的操作:在数据库管理系统的支持下,
4、可进行数据查询(select) 、数据定义(create drop alter)、数据操纵(insert update delete)、数据控制 (grant revoke)3) 从定义上数据库与文件比较:对照数据库说明:长期存储在计算机内、有组织的(组织简单) 、可共享(共享性差)的数据集合。冗余度大,数据独立性低。3、数据库管理系统(database management system ,简称 DBMS) (P7)*定义(功能解释):DBMS 在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。*对
5、照文件系统:提供的操作简单,主要包括:建立文件、删除文件、读元素、写元素、打开文件、关闭文件等。*用户与文件系统及数据库的接口:文件系统:系统调用数据库管理系统:SQL(数据查询、数据定义、数据操纵、数据控制) 。4、数据库系统:*是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其应用开发工具) 、应用系统、数据库管理员和用户构成。5、本课程的主要研究内容、意义及学习方法*主要内容 关系数据库及 SQL、关系数据库设计(设计理论、具体设计) 、数据保护。*意义:非常实用*学习方法:大量的上机实践是学好本课程的先决条件。1.1.2 数据管理的技术的发展(*数据库技术产生
6、:是应数据管理管理任务的需要而产生的。 )*数据管理:是指如何对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题。*随着计算机硬件和软件的发展,数据管理技术经历了三个发展阶段:人工管理、文件系统、数据库管理系统。1、人工管理阶段的特点:(背景:硬件,没有直接存取的存储设备;软件,没有操作系统及管理数据的软件;数据处理方式为批处理)1)数据不保存2)数据需要由应用程序自己管理,没有相应的软件负责数据的管理工作。应用程序中不仅要规定数据的逻辑结构,而且要设计物理结构(包括存储结构、存取方法、输入方式等) 。 (PASCAL 语言文件处理:应用程序中只考虑逻辑结构)3)数据不共享:数
7、据面向应用,一组数据只能对应一个程序。因此程序与程序之间有大量的冗余数据。#*4)数据不具有独立性:数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改。2、文件系统阶段的特点:(背景:硬件,已有直接存取的存储设备;软件,操作系统中已经有了专门的数据管理软件,一般成为文件系统;数据处理方式,不仅有了批处理而且能够联机实时处理)1)数据可以长期保存。2)由专门的软件即文件系统进行数据管理。应用程序按名存取数据,大大节省了程序的编写与维护工作量。3)数据共享性差。一个文件基本上对应于一个应用程序。不同应用程序具有部分相同数据时也必许建立各自的文件,不能共享相同的数据,数据冗余度大。相同数
8、据重复存储、各自管理,给数据的修改与维护带来了困难,容易造成数据的不一致性。4)数据的独立性低。数据与程序间缺乏独立性:一旦数据的逻辑结构改变,必须修改应用程序修改文件结构定义。而应用程序的改变(应用程序改用不同的高级语言)也将引起文件数据结构的改变。3、数据库系统阶段产生背景:以文件系统作为数据管理手段已经不能满足应用的需要(多用户、多应用共享数据) ,于是出现了数据库技术及统一管理数据的专门软件数据库管理系统。特点:1)数据结构化,存取方式灵活数据库系统实现了整体数据的结构化:在描述数据时不仅要描述数据本身,还要描述数据之间的联系。文件系统尽管其记录内部有某种结构,但记录之间没有联系。2)
9、数据共享性好,冗余度低数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统。这样既可以大大减少数据冗余,节约存储空间,又能避免数据之间不相容与不一致性。3)数据独立性高数据库系统提供了两方面的映象功能,从而使数据既具有物理独立性又具有逻辑独立性。数据与程序间的逻辑独立性:数据的总体逻辑结构与某类应用所涉及的局部逻辑结构之间的映象或转换功能,保证了当数据的总体逻辑结构改变时,通过对映象的相应改变可以保持数据的局部逻辑结构不变,由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必修改。数据与程序间的物理独立性:数据的存储结构与逻辑结构之间的映象或转换功能,保证了当数据的
10、存储结构(或物理结构)改变时,通过对映象的相应修改可以保持数据的逻辑结构不变,从而应用程序也不必修改。4)数据由 DBMS 统一管理和控制*统一管理有结构的数据,使数据可以有灵活的使用方式。数据库系统弹性大,易于扩充。*有以下几方面的控制功能:1)数据的安全性:指保护数据,防止不合法使用数据造成数据的泄密和破坏,使每个用户只能按规定对某些数据以某种方式进行访问和处理。2)数据的完整性:指数据的正确性、有效性和相容性。即将数据控制在有效的范围内,或要求数据间满足一定的关系。#*3)并发控制:当多个用户的并发进程同时存取、修改数据时,可能会相互干扰而得到错误的结构,并使数据的完整性遭到破坏,因此对
11、多用户并发操作加以控制和协调。4)数据库恢复:硬件、软件、操作员失误、故意破坏等造成的故障,DBMS必须将数据库从错误状态恢复到某一已知的正确状态。12 数据模型121 数据模型的作用、组成要素、概念1、数据模型的作用:通俗地说是计算机世界对现实世界信息处理的模拟。具体为抽象、表示和处理现实世界的数据和信息。2、数据模型的组成要素:数据结构、数据操作、数据的约束条件。1)数据结构:*现实世界的信息抽象、表示为计算机世界的数据结构。*数据结构:为所研究对象类型的集合。一类对象与数据类型、内容、性质有关,另一类对象与数据间的联系有关。*例 现实世界的“学生选修课程处理”涉及的信息,抽象、表示为计算
12、机世界的数据结构*涉及的对象有与数据本身有关对象:学生、课程与数据间联系有关对象:选课*数据结构(关系数据模型为表,数据及其联系都用表表示)学生(学号、姓名、性别、系别、年龄、籍贯) (加属性类型说明)课程(课程号、课程名、学分) (加属性类型说明)选课(学号、课程号、成绩) (加属性类型说明)*数据结构在数据模型中的地位:数据模型中的数据结构是刻画一个数据模型性质的最重要方面,人们通常按数据结构类型来命名数据模型。数据库中的数据结构有三种:关系结构、层次结构、网状结构。关系模型的重要性。2)数据操作*现实世界的信息对应计算机世界的数据结构,现实世界信息的处理对应计算机世界的数据操作。主要有检
13、索和更新(包括插入、删除、修改)两大操作。*数据操作:是指对数据库中各种对象(型)的实例(值)允许执行的操作集合,包括操作及有关操作规则。*关系模型数据库操作语言为 SQL,主要功能:数据查询(SELECT ) ,数据定义(CREATE,DROP ,ALTER) ,数据操纵(INSERT,UPDATE,DELETE) ,数据控制(GRANT,REVOTE) 。3)数据的约束条件*是一组完整性规则的集合,用以限定符合数据模型的数据库状态,以保证数据的正确、有效和相容。*关系模型完整性约束:实体完整性、参照完整性、用户自定义完整性。3、文件管理系统支持一种简单(或简陋)的数据模型(通过文件系统支持
14、的简单数据模型来理解数据库系统支持的数据模型,仅仅为了说#*明问题,通常不称文件系统支持数据模型)*文件数据结构及对文件这种数据结构所进行操作集合是文件管理系统所支持的一种简单数据模型。*将现实世界的信息抽象为文件,对信息的处理通过文件操作实现。*例 学生选课程文件结构(学号、姓名、性别、系别、年龄、籍贯,课程号、课程名、学分,成绩)*文件系统不提供完整性约束功能,由应用程序实现。数据结构及对数据的操作与数据库中的数据模型相比显得落后。4、数据模型的概念任何一种数据模型都是严格定义的概念的集合。这些概念必须能够精确地描述系统的静态特性、动态特性和完整性约束条件。5、任何一种数据库管理系统(DB
15、MS)都基于某种数据模型(或支持某种数据模型)122 现实世界的信息抽象表示为计算机世界某个数据模型数据结构的桥梁- 概念模型1、 现实世界的信息转换到机器世界信息的处理过程:1) 现时世界到信息世界(概念模型):*常用 ER 图来描述现实世界的概念模型2) 信息世界转换为机器世界(概念模型到数据模型的数据结构)2、 信息世界的基本概念(结合关系模型考虑)例子:1)学生:学号、姓名、性别、系别、年龄、籍贯学号 姓名 性别 系别 年龄 籍贯970501 王五 男 机械 19 北京970606 李六 男 化工 18 天津971060 张三 男 信电 20 浙江2)病人:病历号、病人姓名、年龄、性别
16、病历号 病人姓名 年龄 性别100001 李勇 60 男100010 刘醇 50 男111001 许春 30 男1)实体:客观存在并可相互区别的事物。可以是具体的人、事、物,也可以是抽象的概念或联系(如学生的一次选课) 。2)属性:实体所具有的某一特性。一个实体由若干个属性来刻画。3)码:唯一标识实体的属性集。4)域:属性的取值范围称为该属性的域。5)实体型:用实体名及其属性名集合来抽象和刻划同类实体。学生:学号、姓名、性别、系别、年龄、籍贯病人:病历号、病人姓名、年龄、性别6)实体集:同型实体的集合7)联系:实体内部(实体的各属性间)的联系和实体之间的联系。*两实体型间的联系可以分三类:*一
17、对一联系(1:1) ,班级与班长:一个班级只有一个班长,一个班长只在一个班级任职。#*一对多联系(1:n) ,班级与学生:一个班级有若干名学生,每个学生只在一个班级中学习。* 多对多联系(m:n)学生与课程:一个学生选修了多门课程,一门课程为多个学生选修*同一实体集内的各实体之间也可以存在三类联系如学生实体集内部:学生的领导被领导关系3、 概念模型的表示方法(最常用 ER 法)*ER 图提供了表示实体型、属性和联系的方法实体及其属性图实体及其联系图概念模型:实体、属性、联系合一图(涉及实体及属性较多时,为清晰起见两图分开)1 m nm n1n*同一实体型的联系1 n*总体实体及其联系图m n1
18、 1 nm n课程教师 参考书讲授课程 学生选课班级学生组成成绩学生人员学生领导课程讲授学生选课班级组成成绩 学生人员领导#*E 一 R 图123 关系数据模型1、关系数据模型的数据结构*关系模式的数据结构是一张二维表,它由行和列组成。*一些概念:关系:表元组:表行属性:表列主码:某个属性组,它可以唯一确定一个元组。域:属性的取值范围分量:元组的一个属性值关系模式:对关系的描述,一般表示为:关系名(属性 1、属性 2、属性 n)*关系模型中实体与实体间的联系都是用表(关系)来表示的 (与概念模型的实体型及联系对应)学生()课程()学生选课()*关系模型要求关系必须是规范化的,即关系模式必须满足
19、一定的规范条件。最基本一条为每个分量必须是不可分的数据项2、关系数据模型的操纵与完整性约束3、关系数据模型的存储结构*一个表对应一个 DBF 文件(DBASE ,Foxpro 等)*多个表放在一个 DB 文件中(SYBASE SQL Anywhere,SQL Server 等)1.3 数据库系统结构1、关系数据库系统的模式结构外模式模式存储模式模式:也称逻辑模式,是数据库中全体逻辑结构和特征的描述,是所有用户的公共数据视图。外模式:也称子模式或用户模式,他是数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特征的描述内模式:内模式也称存储模式,它是数据物理结构和存储结构的描
20、述,是数据在数据库内部的表示方式。教师 参考书SQL存储文件 1视图 1 视图 2基表 1 基表 2 基表 3 基表 4存储文件 2#*数据库系统的模式结构:数据库系统是由外模式、模式、内模式三级构成第二章 关系数据库教学目标:介绍关系模型的基本概念,即关系模型的数据结构、关系操作和关系完整性。结合第三章的数据定义介绍数据结构与数据完整性。关系操作主要介绍关系代数。教学重点:1、数据结构:笛卡儿积、关系、关系模式、关系数据库。2、关系完整性:实体、参照、用户自定义。3、关系操作:关系代数,重点是投影、选择、连接、除法操作。教学难点:关系数据库的型和值;关系代数的除法运算。教学过程:本章分 3
21、次讲述,每次 2 学时,每次主要讲述以下内容介绍如下:第一次:介绍数据结构(笛卡儿积、关系、关系模式、关系数据库) 。关系完整性(实体、参照、用户自定义) (实际教学过程中将第三章的表定义及对数据库的插入操作部分提前到这里,相当于第三章有 2 学时多调整到了这里) 。第二次:介绍举例关系操作的语义(关系代数,重点是投影、选择、连接、除法操作) ,并介绍相应的 SQL 语句表达式(实际教学过程相当于将第三章的相关内容调整到了此处介绍) 。关系操作举例,关系数据库管理系统(重点讲述各类系统支持模型的程度) 。21 关系数据库概述1、关系数据库系统:支持关系模型的数据库系统。2、关系模型的组成:关系
22、数据结构、关系操作集合、完整性约束条件三部分。3、关系数据结构表,特点:简单的数据结构表达丰富的语义,描述现实世界的实体以及实体间的联系(例)4、关系操作*采用集合操作:操作对象与操作结果为集合,*常用的操作#*查询:选择、投影、连接、除、并、交、差等;更新:增、删、改*查询的表达能力是关系操作中的最主要部分*关系模型中关系操作能力的早期抽象表示(即抽象查询语言,领会语言的含义):1)关系代数语言:用代数方式表示,即用关系的运算来表达查询要求的方式。2)关系演算语言:用逻辑方式表示,即用谓词来表达查询要求的方式。元组关系演算:谓词变元的基本对象是元组变量。域关系演算:谓词变元的基本对象为域变量
23、。3) 关系代数、关系演算(元组关系演算、域关系演算)三种语言在表达能力上是等价的。*早期抽象查询语言(关系代数、关系演算语言)的作用作为评估实际系统中查询语言能力的标准。与具体 DBMS 实现的实际语言不完全一样(提供许多附加功能,如集函数、关系赋值、算术运算等)*关系数据库的标准语言(SQLstructured query language 结构化查询语言)是集数据查询、DDL 数据定义、 DML 数据操纵、DCL 数据控制于一体的语言。 具有关系代数与关系演算双重特点的语言。5、完整性约束*允许定义三类完整性:实体完整性、参照完整性、用户自定义完整性。*关系系统自动支持的完整性:实体完整
24、性、参照完整性。22 关系数据结构(关系、关系模式、关系数据库)1、关系例 1:有表结构(关系模式):学生(学号、性别)如果,学号为子界类型 D1=1.100, 性别为枚举类型 D2=(男,女) ,学生表的最大取值(最大表 ):100*2=200 个元组例 2:有表结构:学生(学号、姓名、性别、系别、年龄、籍贯)每个列的类型:integer,char(8),bolean,char(8),integer,char(10)最大表元组数:实际应用中的具体表:最大表的有意义的子集1)域:是一组具有相同数据类型值的集合。表中的每列都与一域(表的数据类型)相关连2)笛卡儿积(本质上为最大元组表)*定义:给定一组域 D1,D2,.,Dn,这些域可以完全不同,也可以部分或全部相同。D1,D2,.,Dn 的笛卡儿积为:D1D2. Dn=(d1,d2,dn )di Di,i=1,2,n其中每一个元素(d1,d2,dn)叫作一个 n 元组,或简称为元组。元素中的每一个值 di 叫作一个分量。*若 Di(i=1,2,n )为有限集,其基数为 mi(i=1,2,n),则D1D2. Dn 的基数为 m1*m2*mn3)关系*定义:D1D2. Dn 的子集叫作在域 D1,D2 ,. ,Dn 上的关系,用R(D1,D2,.,Dn)表示。R 表示关系的名字,n 是关系的目或度