1、2 技术基础_2.3 数据通信与计算机网络1第第4章章 数据库技术基础数据库技术基础引引 言言 数据库技术从数据库技术从20世纪世纪60年代中期产生到今天年代中期产生到今天仅仅仅仅40多年的历史,但却是计算机科学技术中发多年的历史,但却是计算机科学技术中发展最快的领域之一,也是应用最广的技术之一。展最快的领域之一,也是应用最广的技术之一。2 技术基础_2.3 数据通信与计算机网络2第第4章章 数据库技术基础数据库技术基础学习目的学习目的 通过本章的学习,了解数据库的基本概念,掌握数据库设计的基本方法和技巧;掌握数据组织的方法、文件系统的结构,熟悉数据模型、关系模式、数据库规范化等要领,重要掌握
2、ER模型。本章学时:4学时2 技术基础_2.3 数据通信与计算机网络3教学内容:4.1 数据处理的发展阶段数据处理的发展阶段 4.2 数据库技术数据库技术 4.3 数据库设计数据库设计 4.4关系模式的规范化关系模式的规范化第第4章章 数据库技术基础数据库技术基础2 技术基础_2.3 数据通信与计算机网络44.1数据处理的发展阶段数据处理的发展阶段 数据处理的发展:1、简单应用(20世纪50年代以前)。2、文件系统(50年代后期到60年代中期)。3、数据库系统(60年代后期开始)。2 技术基础_2.3 数据通信与计算机网络5 4.1.2 数据库系统的特点1数据结构化数据结构化2数据共享性高数据
3、共享性高3数据独立性好数据独立性好4数据冗余度低数据冗余度低5统一的数据管理和控制:统一的数据管理和控制:2 技术基础_2.3 数据通信与计算机网络64.2 数据库技术数据库技术 早在早在20世纪世纪60年代,数据库技术作为现代信息系统基础的一门软年代,数据库技术作为现代信息系统基础的一门软件学科便应运而生了。件学科便应运而生了。现在,数据库技术已成为计算机领域中最重要的技术之一,它是现在,数据库技术已成为计算机领域中最重要的技术之一,它是软件学科中一个独立的分支。软件学科中一个独立的分支。1970年初,年初,IBM公司的高级研究员公司的高级研究员E.F.Codd发表论文发表论文提出了关系模型
4、,奠定了关系数据库的理论基础。提出了关系模型,奠定了关系数据库的理论基础。2 技术基础_2.3 数据通信与计算机网络74.2.1数据库系统的概念 在系统地介绍数据库的基本概念之前,这里首先介绍一些数据库中最常用的术语和基本概念。1数据数据 数据是数据库中存储的基本对象。什么是数据呢?数据是记录客观事物的性质、状态以及相互关系的可以识别的物理符号。2数据库数据库 数据库,顾名思义,就是存放数据的仓库。严格地说,数据库是以一定的组织方式存储在一起的相关数据的集合。2 技术基础_2.3 数据通信与计算机网络84.2.1 数据库系统的概念3数据库管理系统数据库管理系统 数据库管理系统用于协助用户创建、
5、维护和使用数据库的系统软件。常见的数据库管理系统有:Oracle、SQLServer、DB2、FoxPro等。4数据库系统数据库系统 数据库系统是引进了数据库技术的计算机系统。完整的数据库系统由硬件、数据库、数据库管理系统、操作系统、应用程序、数据库管理员、用户等部分组成。2 技术基础_2.3 数据通信与计算机网络9 4.2.2 数据库系统的数据模型 1数据模型的概念数据模型的概念 模型是现实世界特征的模拟和抽象。数据模型也是一种模型,它是现实世界数据特征的抽象。简单地说,数据模型就是现实世界的模拟。人们常常将现实世界抽象为信息世界,然后再将信息世界转换为机器世界,这一过程可以用下图所示的过程
6、来描述。2 技术基础_2.3 数据通信与计算机网络10 4.2.2 数据库系统的数据模型数据的抽象与转换过程数据的抽象与转换过程2 技术基础_2.3 数据通信与计算机网络11 4.2.2 数据库系统的数据模型客观世界(现实世界)信息世界 数据世界(机器)组织(事物及其联系)实体及其联系 数据库事物类(总体)实体集 文件事物(对象,个体)实体 记录特性(性质)属性 数据项 三个不同世界术语对照表2 技术基础_2.3 数据通信与计算机网络122数据模型的类型数据模型的类型 数据模型主要包括层次模型、关系模型、网状模型和面向对象模型等。DB的分类是依据数据模型进行的。层次模型:用树型结构表示。A1A
7、2AA11A12A13A21A224.2.2数据库系统的数据模型2 技术基础_2.3 数据通信与计算机网络13 网状模型:用有向图结构表示。W1W3W2T1T2T3T4T5S2S24.3 数据库设计2 技术基础_2.3 数据通信与计算机网络14 关系模型:用二维表结构表示。结算编码合同号数量金额J0012J0012HT1008HT10082 0002 00050 00050 000J0043J0043HT1109HT110960060013 00013 000J0033J0033GT1123GT11232 3002 3006 0006 0004.3 数据库设计2 技术基础_2.3 数据通信与计
8、算机网络15 面向对象模型面向对象模型:用对象和类来表示实体类型和实体间:用对象和类来表示实体类型和实体间联系的数据模型联系的数据模型。数据模型的要素:数据模型一般由下列三要素组成:数据模型的要素:数据模型一般由下列三要素组成:一组对象及其结构、一组操作和一组(关于对象与操一组对象及其结构、一组操作和一组(关于对象与操作的)约束。作的)约束。姓名性别年龄姓名性别年龄系别专业姓名性别年龄班级特长类 学生类 中学生类 大学生4.3 数据库设计2 技术基础_2.3 数据通信与计算机网络164.3 数据库设计1数据库设计的概念数据库设计的概念 数据库设计是指对于一个给定的应用环境,构造最优的数据库模式
9、,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求的过程。其中,应用环境包括数据库管理系统、操作系统和硬件环境等。2 技术基础_2.3 数据通信与计算机网络174.3 数据库设计 2.数据库设计的步骤 数据库设计方法中比较著名的是新奥尔良(New Orleans)法。它将数据库设计分为四个阶段:需求分析、概念结构设计、逻辑结构设计和物理结构设计。需求分析 概念结构设计 逻辑结构设计 物理结构设计2 技术基础_2.3 数据通信与计算机网络183、概念结构设计 前面已谈到,描述概念模型的主要工具是E-R模型。利用E-R模型实现概念结构设计的方法叫做E-R方法。4.3 数据库设
10、计2 技术基础_2.3 数据通信与计算机网络19 实体实体(entity):(entity):是指明客观存在并相互区别的事物。是指明客观存在并相互区别的事物。实体集实体集(entity set):(entity set):具有相同性质的同类实体的集合。具有相同性质的同类实体的集合。例如所有教师、所有选课等。例如所有教师、所有选课等。属性属性(attribute)(attribute):实体具有许多特性,每一个特性称实体具有许多特性,每一个特性称为属性。每个属性有一个联欢会范围,即值域。例如学为属性。每个属性有一个联欢会范围,即值域。例如学生的实体可由学号、姓名、性别、年龄、系别等属性组生的实体
11、可由学号、姓名、性别、年龄、系别等属性组成。性别的取值范围是成。性别的取值范围是“男男”或或“女女”。主键主键(key)(key):惟一标识实体的属性集称为主键。例如学惟一标识实体的属性集称为主键。例如学生实体的学号可作为学生实体的主键。生实体的学号可作为学生实体的主键。4.3 数据库设计2 技术基础_2.3 数据通信与计算机网络20 实体间的联系:现实世界中,事物是相互联系的。这种联系必然在信息世界中体现出来,即实体是相互关联的。两个不同实体集的实体间的联系,它有以下三种情形:一对一联系,记为1:1。例如工厂与厂长之间,科研任务与课题组长之间都是1:1联系。一对多联系,记为1:N。例如一个学
12、校有若干学生,而每个学生都在一个学校学习,学校与学生之间是一对多的联系。多对多联系,记为M:N。例如课程与学生之间,一个学生可选多门课程,而每一门课程可有多个学生选修,课程与学生之间是多对多的联系。4.3 数据库设计2 技术基础_2.3 数据通信与计算机网络214.3 数据库设计(2)ER模型的表示方法:矩形:表示实体,框中填写实体名椭圆:表示属性,框中填写属性名菱形:表示联系,框中填写联系名无向边:连接以上三种图形2 技术基础_2.3 数据通信与计算机网络224.3 数据库设计例例1:学生与课程构成学习关系:学生与课程构成学习关系nm课程号课程名学分学生学习课程成绩姓名年龄性别学号2 技术基
13、础_2.3 数据通信与计算机网络234.3 数据库设计例例2 三个实体型之间多对多联系三个实体型之间多对多联系供应商项目零件供应2 技术基础_2.3 数据通信与计算机网络244.3 数据库设计4、逻辑结构设计 逻辑结构设计的任务,就是把概念结构设计阶段建立的E-R模型,转换成选定的数据库管理系统所支持的数据模型。由于我们现在使用的数据库管理系统大多采用关系数据模型,所以逻辑结构设计的任务也就是将E-R模型转换为关系模型。关系模型是目前最常用的一种数据模型。2 技术基础_2.3 数据通信与计算机网络254.3 数据库设计(1).关系模型的基本概念关系模型的基本概念现以学生表为例,介绍关系模型中的
14、一些术语。学号姓名性别出生日期年龄政治面貌籍贯200201周小云女09/10/8220党员山东200202赵大伟男08/16/8220团员河北200203刘丽丽女09/20/8022团员山东200204李 强男10/14/8220群众河北200205陈 光男09/15/7923党员山东200206王 佳男08/09/8121团员北京2 技术基础_2.3 数据通信与计算机网络264.3 数据库设计 关系一个关系对应一张二维表,二维表名就是关系名,表4-2就是一个关系。元组表中的一行即为一个元组。如表4-2中的(200201,周小云,女,09/10/82,20,党员,山东)就是一个元组。属性表中的
15、一列即为一个属性,给每一个属性起一个名字即属性名。如表4-2有六列,对应六个属性,属性名分别为学号、姓名、性别、出生日期、年龄、政治面貌和籍贯。2 技术基础_2.3 数据通信与计算机网络274.3 数据库设计 码能够唯一标识一个元组的属性或属性集。如表4-2中的学号,可以惟一确定一个学生,也就成为本关系的码。主属性与非主属性包含在任一码中的属性称主属性,否则称为非主属性。关系模式对关系的描述称为关系模式,一般表示为:关系名(属性1,属性2,属性n)。如学生表(学号,姓名,性别,出生日期,年龄,政治面貌,籍贯)。2 技术基础_2.3 数据通信与计算机网络284.3 数据库设计(2)E-R模型转换
16、为关系模型的方法模型转换为关系模型的方法 E-R模型向关系模型的转换就是解决如何将实体和实体间的联系转换为关系,并确定这些关系的关系名、属性和码。这种转换一般按下面的原则进行:一个实体转换为一个关系 实体名就是关系名,实体的属性就是关系的属性,实体的码就是关系的码。一个联系转换为一个关系 联系名作为对应的关系名;联系本身的属性、联系所连接的实体的码都转换为关系的属性;关系的码根据联系的类型有所不同:2 技术基础_2.3 数据通信与计算机网络294.3 数据库设计 1:1联系两端实体的码都可以作为关系的码;1:n联系将n端的码作为关系的码;m:n联系将两端实体的码的组合作为关系的码。2 技术基础
17、_2.3 数据通信与计算机网络304.3 数据库设计例4-5 将图4-12中的三个E-R模型分别转换为关系模型2 技术基础_2.3 数据通信与计算机网络314.3 数据库设计对于图对于图A,转换的结果为:,转换的结果为:厂长(厂长号、姓名、年龄)(下划线表示关系的码)工厂(厂号、厂名、地点)对于图对于图B,转换的结果为:,转换的结果为:仓库(仓库号、地点、面积)产品(货号、品名、价格)对于图对于图C,转换的结果为:,转换的结果为:学生(学号、姓名、性别、助学金)课程(课程号、课程名、学时数)学习(学号、课程号、成绩)2 技术基础_2.3 数据通信与计算机网络32 关系数据库是以二维表作为数据模
18、型的数据库系统。(1)、关系模型组成 关系模型由三部分组成:数据结构(即关系)、关系操作、关系的完整性。信息在机器世界中是以数据形式存储的,其数据描述需要用到以下术语:字段(field)、记录(record)、文件(file)、主键(key):4.3 数据库设计5、关系数据库、关系数据库2 技术基础_2.3 数据通信与计算机网络33数据描述需要用到的术语:字段(field):标记实体属性的命名单位称为字段(数据项)。它是可以命名的最小信息单位。例如学生、姓名、性别、年龄、系别等字段。记录(record):字段的有序集合称为记录(相当于前面提到的数据元素)。一般用一个记录描述一个实体。例如一个学
19、生记录,由有序的字段集组成:(2003、秦阳、男、25、管理系)。文件(file):同一类记录的汇集称为文件。文件是描述实体集的。例如所有学生记录组成了一个学生文件。主键(key):能惟一标识文件中每个记录的字段集,称为文件的主键。例如学号可以作为学生记录的主键。4.3 数据库设计2 技术基础_2.3 数据通信与计算机网络34 关系模型的三类完整性关系模型的三类完整性:实体完整性实体完整性:若属性若属性A是基本关系是基本关系R的主关键字中的属性(即主的主关键字中的属性(即主属性),则属性属性),则属性A不能取空值。不能取空值。参照完整性参照完整性:若基本关系若基本关系R中含有另一个基本关系中含
20、有另一个基本关系S的主关键字的主关键字Ks所对应的属性组所对应的属性组F(F称为称为R的外部关键字),则在的外部关键字),则在关系关系R中的每个中的每个 元组中的元组中的F上的值必须满足:上的值必须满足:a.或取空或取空值;值;b.或等于或等于S中某中某 个元组的主关键字的值。个元组的主关键字的值。用户定义的完整性用户定义的完整性:用户自己对数据完整性的要求。用户自己对数据完整性的要求。4.3 数据库设计2 技术基础_2.3 数据通信与计算机网络35(2)SQL SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL是关系数据库管理系统的标
21、准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。SQL功能可以分成以下几组:DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据。SELECT:用于检索数据;INSERT:用于增加数据到数据库;UPDATE:用于从数据库中修改现存的数据 DELETE:用于从数据库中删除数据。4.3 数据库设计2 技术基础_2.3 数据通信与计算机网络36 DDL(Data Definition Language,数据定义语言):用于定义数据的结构,比如 创建、修改或者删除数据库;CREATE TABLE DROP
22、 TABLE CREATE INDEX DROP INDEX DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。ALTER PASSWORD4.3 数据库设计2 技术基础_2.3 数据通信与计算机网络37(3)常见数据库管理系统软件 ACCESS SQL SERVER ORACLE ACCESS开发基础4.3 数据库设计2 技术基础_2.3 数据通信与计算机网络38 范式(Normal From),即关系模式的规范化模式的简 称。E.F.Codd 于1971年提出规范化理论,到目前已达到第五范式4.4 关系模式的规范化2 技术基础_2.3 数据通信与
23、计算机网络39 第一范式(1NF)元组中每一个分量都必须是不可分割的数据项。这只是关系的最低要求,是最基本的规范化。满足这个要求的关系称为第一范式,简记为1NF。4.4 关系模式的规范化2 技术基础_2.3 数据通信与计算机网络404.4 关系模式的规范化学号学号姓名姓名出生年月出生年月宿舍宿舍电话电话选课情况选课情况成绩成绩079094001079094001张三张三1988-8-91988-8-9A1305A1305231533623153360957401409574014管理信息系统管理信息系统B B3 38585079094001079094001张三张三1988-8-91988-8
24、-9A1305A1305231533623153360957470109574701SQLSQL数据库数据库2 27777079094001079094001张三张三1988-8-91988-8-9A1305A1305231533623153360957490709574907数据库应用开发数据库应用开发4 48383079094006079094006李四李四1989-1-81989-1-8B1309B1309231667823166780957490709574907数据库应用开发数据库应用开发4 49191079094007079094007李四李四1989-7-11989-7-1C25
25、06C2506241232124123210957470109574701SQLSQL数据库数据库2 27777079094009079094009赵六赵六1989-1-81989-1-8A1305A1305231533623153360957401409574014管理信息系统管理信息系统B B3 38585079094009079094009赵六赵六1989-1-81989-1-8A1305A1305231533623153360957470109574701SQLSQL数据库数据库2 29191079094009079094009赵六赵六1989-1-81989-1-8A1305A130
26、5231533623153360957490709574907数据库应用开发数据库应用开发4 45656下表不符合第一范式不是关系2 技术基础_2.3 数据通信与计算机网络414.4 关系模式的规范化由非1NF规范化为1NF 学号学号姓名姓名出生年月出生年月宿舍宿舍电话电话课程号课程号课程名课程名学分学分成绩成绩07909400079094001 1张三张三1988-8-91988-8-9A1305A1305231533623153360957401409574014管理信息系统管理信息系统B B3 3858507909400079094001 1张三张三1988-8-91988-8-9A13
27、05A1305231533623153360957470109574701SQLSQL数据库数据库2 2777707909400079094001 1张三张三1988-8-91988-8-9A1305A1305231533623153360957490709574907数据库应用开发数据库应用开发4 4838307909400079094006 6李四李四1989-1-81989-1-8B1309B1309231667823166780957490709574907数据库应用开发数据库应用开发4 4919107909400079094007 7李四李四1989-7-11989-7-1C2506
28、C2506241232124123210957470109574701SQLSQL数据库数据库2 2777707909400079094009 9赵六赵六1989-1-81989-1-8A1305A1305231533623153360957401409574014管理信息系统管理信息系统B B3 3858507909400079094009 9赵六赵六1989-1-81989-1-8A1305A1305231533623153360957470109574701SQLSQL数据库数据库2 2919107909400079094009 9赵六赵六1989-1-81989-1-8A1305A13
29、05231533623153360957490709574907数据库应用开发数据库应用开发4 45656学生成绩表学生成绩表2 技术基础_2.3 数据通信与计算机网络42 第二范式(2NF)不仅满足第一范式,而且所有非主属性完全函数依赖于码。不满足2NF的关系会引发下列问题:数据冗余、插入异常、删除异常。消除部分依赖关系的办法是将非消除部分依赖关系的办法是将非NF的的关系关系分解分解为几个为几个NF关系集:关系集:4.4 关系模式的规范化2 技术基础_2.3 数据通信与计算机网络434.4 关系模式的规范化学号学号姓名姓名出生年月出生年月宿舍宿舍电话电话079094001079094001张
30、三张三1988-08-091988-08-09A1305A130523153362315336079094006079094006李四李四1989-01-081989-01-08B1309B130923166782316678079094007079094007李四李四1989-07-011989-07-01C2506C250624123212412321079094009079094009赵六赵六1989-01-081989-01-08A1305A130523153362315336学号学号课程号课程号成绩成绩07909400107909400109574014095740148585079
31、09400107909400109574701095747017777079094001079094001095749070957490783830790940060790940060957490709574907919107909400707909400709574701095747017777079094009079094009095740140957401485850790940090790940090957470109574701919107909400907909400909574907095749075656课程号课程号课程名课程名学分学分0957401409574014管理信息系
32、统管理信息系统B B3 30957470109574701SQLSQL数据库数据库2 20957490709574907数据库应用开发数据库应用开发4 4非规范为非规范为课程课程学生学生成绩成绩2 技术基础_2.3 数据通信与计算机网络44第三范式(第三范式(3NF3NF)不仅满足第二范式,而且它不仅满足第二范式,而且它的任可一个非主属性都的任可一个非主属性都不传递函数依赖于码。不满足不满足NF的关系同样存在着的关系同样存在着冗余和更新异常冗余和更新异常问题。问题。消除传递消除传递 依赖关系的办法是将非依赖关系的办法是将非NF的关系的关系分分解解为几个为几个3NF关系集:关系集:4.4 关系模
33、式的规范化2 技术基础_2.3 数据通信与计算机网络454.4 关系模式的规范化学号学号姓名姓名出生年月出生年月宿舍宿舍079094001079094001张三张三1988-08-091988-08-09A1305A1305079094006079094006李四李四1989-02-031989-02-03B1309B1309079094007079094007李四李四1989-07-011989-07-01C2506C2506079094009079094009赵六赵六1989-01-081989-01-08A1305A1305学生学生非规范为非规范为宿舍宿舍电话电话A1305A130523
34、153362315336B1309B130923166782316678C2506C250624123212412321A1305A130523153362315336宿舍宿舍2 技术基础_2.3 数据通信与计算机网络464.4 关系模式的规范化仅符合的关系:仅符合的关系:学生成绩学生成绩(学号、姓名、出生年月、宿(学号、姓名、出生年月、宿 舍、舍、电话、课程号、课程名、学分、成绩)电话、课程号、课程名、学分、成绩)转换为个符合的关系:转换为个符合的关系:学生学生(学号、姓名、出生年月、宿舍)(学号、姓名、出生年月、宿舍)宿舍宿舍(宿舍、电话)(宿舍、电话)课程课程(课程号、课程名、学分)(课
35、程号、课程名、学分)成绩成绩(学号、课程号、成绩)(学号、课程号、成绩)2 技术基础_2.3 数据通信与计算机网络474.4 关系模式的规范化小结小结3NF数据冗余较少数据冗余较少,基本消除了插入异基本消除了插入异常、删除异常及修改复杂等问题,已常、删除异常及修改复杂等问题,已经是比较规范的关系。经是比较规范的关系。本门课程最高规范至本门课程最高规范至3NF,实际开发时实际开发时,需参照需参照范式理论并结合用户需求范式理论并结合用户需求来设来设计合情合理的数据库计合情合理的数据库2 技术基础_2.3 数据通信与计算机网络48本章总结本章总结 本章讨论数据库的基本概念和技术基础,包括三个方面的内容:文件组织、数据库技术和数据库设计。数据库系统是引进了数据库技术的计算机系统,其主要组成部分是数据库和数据库管理系统。数据库是以一定的组织方式存储在一起的相关数据的集合,简单地说,就是数据的仓库。数据库管理系统是用于创建、维护和使用数据库的软件。数据库系统具有数据结构化、数据共享性高、数据独立性好、数据冗余度低、数据由数据库管理系统统一管理和控制等特点。数据模型是数据库的核心和基础,它包括概念模型、关系模型、网状模型和层次模型。数据库管理系统在体系结构上采用三级模式结构并提供两级映射功能,从而保证了数据的独立性。2 技术基础_2.3 数据通信与计算机网络49验证