主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4...

172

Click here to load reader

description

第 5 章 数据库技术基础. 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介. 知识类型:理论 二级所占分值:约 8 分 课时: 4 学时 参考书目: 《 数据库系统及应用 》 梁树军 张建伟 中国电力出版社. 在人们的周围有各种各样的数据库系统在运行。当人们买飞机票、领发工资、查资料、买卖股票时都需要与数据库打交道。 数据库系统已成为人们提高工作效率和管理水平的重要手段,已成为企业提高竞争力有力武器。 - PowerPoint PPT Presentation

Transcript of 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4...

Page 1: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

主要内容5.1 数据库系统的基本概念 5.2 数据模型5.3 关系数据库5.4 数据库设计5.5 SQL 简介

第 5 章 数据库技术基础

Page 2: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

知识类型:理论 二级所占分值:约 8 分 课时: 4 学时 参考书目:《数据库系统及应用》

梁树军 张建伟

中国电力出版社

Page 3: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

在人们的周围有各种各样的数据库系统在运行。当人们买飞机票、领发工资、查资料、买卖股票时都需要与数据库打交道。

数据库系统已成为人们提高工作效率和管理水平的重要手段,已成为企业提高竞争力有力武器。

那么,什么是数据库系统?它是如何构成如何工作的呢?我们怎样才能成功开发出一个高性能的数据库系统呢?

Page 4: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

走进信息时代 -- 信息大爆炸 20 世纪科技迅速发展。 1946 年第一台电子计算机诞

生,之后,工作、生活、学习各方面发生了巨大的变化。 社会信息量急剧膨胀 ( 企业信息,政府信息 , 科研信息 ) ,信息大爆炸已成为众所皆知的事实。

信息已成为与材料、能源同等重要甚至更加重要的战略性资源。离开了信息人们将无所适从。

人们迫切需要提高效率和管理水平,加强信息处理的效率。

Page 5: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

1. 数据( Data) 与数据处理 (Data Processing) :

5.1 数据库系统的基本概念5.1.1 数据库、数据库管理系统、数据库系统

数据 : 数据的内涵相当广泛。它是指一切用于描述事物的符号记录,包括:数字、文字、图形、图像、声音、动画、视频、表格记录等。

为简便起见,本课程将数据于信息不作区分。 数据库中的数据具有以下特征:

(1) 数据受数据类型和取值范围的约束。 (2) 数据有“型”和“值”之分。 (3) 数据有定性表示和定量表示之分。 (4) 数据具有载体和多种表现形式。

Page 6: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

1. 数据( Data) 与数据处理 (Data Processing) :

5.1 数据库系统的基本概念5.1.1 数据库、数据库管理系统、数据库系统

数据处理 : 是指对数据的收集、组织、整理、加工、存 储和传播等工作。

电子数据处理:用电子计算机进行的数据处理称为电子数据处理( Electronic Data Processing),简称为EDP

(1) 数据管理:(2) 数据加工:(3) 数据传播:

是数据处理的核心和基础 .

Page 7: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

2. 数据库( Database,DB)

5.1 数据库系统的基本概念5.1.1 数据库、数据库管理系统、数据库系统

数据库是长期存储在计算机内、有组织的和可共享的数据集合。

数据库中数据的特点: 数据库中数据的特点是“集成”和“共享”,即数

据库中集中了各种应用的数据,进行统一的构造和存储,而使它们可被不同应用程序所使用。

数据库的建设规模、数据库信息量的大小和使 用频度已成为衡量一个国家信息化程度的重要标志。

Page 8: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

3. 数据库管理系统( DBMS)

5.1 数据库系统的基本概念5.1.1 数据库、数据库管理系统、数据库系统

数据库管理系统 (Database Management System,DBMS)

是专门用于管理数据库的计算机系统软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性、安全性进行控制的功能。它位于应用程序和操作系统中间,是整个数据库系统的核心。常用的 DBMS :

小型的数据库管理软件 : 只具备数据库管理系统的一些简单功能,如 Foxpro 和 Access 等。

严格意义上的 DBMS 系统 : 具备其全部功能 , 包括数据组织、数据操纵、数据维护、控制及保护和数据服务等。如ORACLE、 PowerBuilder、 SQLServer 等

Page 9: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

可以把数据库看成是一个仓库,在仓库里存放着数据。把数据库管理系统看成仓库的保管员,负责数据的搬进、整理和搬出。

5.1 数据库系统的基本概念5.1.1 数据库、数据库管理系统、数据库系统

仓库保管员 数据库管理系统

具体地说,这个保管员要 :检查仓库的数据是否被允许(数据的定义问题),如何摆放最好(数据的结构问题),如何更快找到用户需要的数据并提取出来(数据的操纵问题)数据如何不被坏人提走(数据的安全性问题)如何处理多个人同时来提货(并发控制问题) 当多个人同时来提货时 , 为了提高效率那么就可以一次拿几张单子,顺路把需要的数据都取出来 . 保管员所做的事情正是数据库管理系统需要做的事情。

Page 10: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

为完成数据库管理系统的功能,数据库管理系统提供了相应的数据语言( Data Language)

5.1 数据库系统的基本概念5.1.1 数据库、数据库管理系统、数据库系统

数据定义语言 (DDL): Data Definition Language_DDL,该语言负责数据的模式定义与数据的物理存取构建;数据操纵语言( DML): Data Manipulation Langugge_DML) ,该语言负责数据的操纵,包括查询及增加、删除及增加、删除、修改等操作;数据控制语言( DCL) Data Control Language_DCL),该语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。

Page 11: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.1 数据库系统的基本概念5.1.1 数据库、数据库管理系统、数据库系统

数据库管理系统DBMS

数据库 DB

数据

记录 若干数据的集合

记录的集合

为用户提供一个建立、维护和使用数据库的环境

能被计算机存储和处理的反映客观实体信息的物理符号

Page 12: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

4. 数据库系统( DBS)

5.1 数据库系统的基本概念5.1.1 数据库、数据库管理系统、数据库系统

数据库系统 (Database System, DBS) 是以数据库为核心的完整的运行实体。它由以下五部分组成:

数据库 (DB) 数据库管理系统 (DBMS) 数据库管理员 (Database Administrator,DBA): 对数据库进行规划、设计、维护和监视等工作的人员。 系统硬件平台 : 计算机、网络等硬件配置。 系统软件平台 : 操作系统、 DBS 开发工具 ( 程序设计语言 ) 及接口软件。

Page 13: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

硬件

数据库系统的要素组成

DatabaseDatabase

OSOS

DBMSDBMS

应用开发工具应用开发工具

应用程序应用程序

DBA

用户 用户用户

应用程序员

Page 14: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

数据库系统层次结构图

应用系统

应用开发工具软件

数据库管理系统

操作系统

硬件 /数据库

数据库用户

Page 15: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

数据库系统的构成结构

相互有关联关系的数据的集合

DBDBMS

管理数据库的系统软件

DBA

完成某一功能的应用程序 1

应用程序 2

应用程序 n

DBAP 1

DBAP 2

DBAP n

Computer System

Page 16: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5. 数据库应用系统( DBAS, Database Application System)

5.1 数据库系统的基本概念5.1.1 数据库、数据库管理系统、数据库系统

由数据库系统、应用软件、应用界面组成。应用软件是由数据库系统所提供的数据库管理系统(软件)及数据库系统开发工具所书写而成,而应用界面大多由相关的可视化工具开发而成。

Page 17: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

数 据 库

数据库管理系统

应用程序 1

应用程序 2

应用程序 3

应用程序 n

用户 1

用户 2

用户m

数 据 库 系 统

数据

记录

•••••• ••••••

Page 18: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

1. 数据管理的三个阶段

5.1 数据库系统的基本概念5.1.2 数据库系统的特点

人工管理、文件系统和数据库技术等 3 个阶段 ( 考点)

1) 人工管理阶段: 50 年代中期( 1)数据不保存:没有磁盘,无法保存数据( 2)由应用程序管理数据:没有操作系统( 3)数据不共享:即使两个不同应用涉及到相同的数 据,也必须各自定义,无法互相利用、互相参照。 ( 4)数据不具有独立性:数据无法独立于程序,它是

程序的组成部分

Page 19: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

1. 数据管理的三个阶段

5.1 数据库系统的基本概念5.1.2 数据库系统的特点

人工管理、文件系统和数据库技术等 3 个阶段 ( 考点)

2)文件系统阶段( 50 年代后期~ 60 年代中期)

数据实现共享

数据仍存在相当程度的冗余

Page 20: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

1. 数据管理的三个阶段

5.1 数据库系统的基本概念5.1.2 数据库系统的特点

人工管理、文件系统和数据库技术等 3 个阶段 ( 考点)

3)数据库系统阶段( 60 年代后):

数据共享度高、冗余度小

Page 21: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

人工管理阶段文件系统阶段

应用程序 1

应用程序 2

应用程序 n

数据库系统阶段

数据 1

数据 2

数据 n

文件系统

物理文件 1

物理文件 2

物理文件 n

数据库管理系统

数据库

Page 22: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

2. 数据库系统的特点(考点)

( 1)数据的集成性

5.1 数据库系统的基本概念5.1.2 数据库系统的特点

在 DBS 中按照多个应用的需要 ,采用统一的数据结构方式 , 建立数据间的语义联系,组织全局的统一的数据结构 (即数据模式 ), 从而构成一个内在紧密联系的数据整体。而每个应用的数据则是全局结构的一部分 ,称为局部结构 (即视图 ).

( 2)数据的高共享性与低冗余性

数据的集成性使数据可为多个应用程序共享,数据的共享又极大地减少数据冗余( 数据冗余度小是指重复的数据少),减少不必要的存储空间,避免数据的不一致性。所谓数据的不一致性指的是同一数据出现在不同的数据文件中,被系统的不同应用程序使用而造成不同的值。

Page 23: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

2. 数据库系统的特点(考点)

( 1)数据的集成性

5.1 数据库系统的基本概念5.1.2 数据库系统的特点

( 2)数据的高共享性与低冗余性

( 3)数据独立性:指程序与数据互不依赖。

物理独立性:

逻辑独立性:数据的

物理存储结构

总体逻辑结构

与程序相互独立 ,其改变不需修改应用程。

Page 24: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

2. 数据库系统的特点(考点)

( 1)数据的集成性

5.1 数据库系统的基本概念5.1.2 数据库系统的特点

( 2)数据的高共享性与低冗余性( 3)数据独立性( 4)数据统一管理与控制: 数据完整性检查 :

数据的安全性保护 : 并发控制 : 数据恢复:

( 5)为用户提供了友好的接口

Page 25: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

1. 数据库系统的三级模式

5.1 数据库系统的基本概念5.1.3 数据库系统的三级模式结构和两级映射

概念模式 : 是数据库中全体数据的逻辑结构和特征的描述。一个数据库只有一个概念模式 , 它与具体硬件、软件环境无关。外模式 ( 用户模式 ): 用户所见到的数据模式,即用户数据视图。是数据库局部数据的逻辑结构和特征的描述。一个概念模式可以有若干个外模式。

内模式 ( 物理模式 ): 给出了数据库的物理存储结构与物理存取方法,即数据在数据库内部的表示方式。一个数据库只有一个内模式。

Page 26: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

三级模式图

内模式(物理数据库)

数据库

概念模式(概念数据库)

应用 应用应用

外模式(用户数据库)

外模式(用户数据库)

外模式(用户数据库)

数据模式是数据库系统中数据结构的一种表示形式,它具有不同的层次与结构方式。

Page 27: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

1. 数据库系统的三级模式

5.1 数据库系统的基本概念5.1.3 数据库系统的三级模式结构和两级映射

三级模式总结

外模式: 最外层,反映用户对数据的要求。概念模式:中层,反映设计者的全局数据逻辑要求。内模式: 最低层,反映了数据在计算机物理结构中的实 际存储形式。

三级模式划分意义 :

有利于保持数据库的数据独立性

Page 28: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

2. 数据库系统的两级映射

5.1 数据库系统的基本概念5.1.3 数据库系统的三级模式结构和两级映射

(1) 概念模式到内模式: 定义了数据的全局逻辑结构与数据的物理存储结构间的对

应关系 .

(2)外模式到概念模式: 定义了外模式与概念模式的对应关系。每个外模式是概念

模式的一个基本视图。

Page 29: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

DBS三级模式两层映射结构图

应用 A应用 A 应用 B应用 B 应用 C应用 C 应用 D应用 D

外模式 1外模式 1 外模式 2外模式 2 外模式 3外模式 3

概念模式概念模式

内模式内模式

数据库数据库

外模式 /概念模式映射

概念模式 /内模式映射

Page 30: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

2. 数据库系统的两级映射

5.1 数据库系统的基本概念5.1.3 数据库系统的三级模式结构和两级映射

两级映射一般由 DBMS实现保证了数据库系统中数据的逻辑独立性和物理独立性,使用户能以逻辑方式方便地访问数据库中的数据,而不必关心数据在计算机中的具体表示方式与存储方式。

Page 31: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.1 数据库系统的基本概念补充习题 ( 1)数据库系统的核心是 ______ 。 A. 数据模型 B. 数据库管理系统

C. 软件工具 D. 数据库( 2)下列叙述中正确的是 ______ 。 A. 数据库是一个独立的系统,不需要操作系统的支持

B. 数据库设计是指设计数据库管理系统 C. 数据库技术的根本目标是要解决数据共享的问题 D. 数据库系统中,数据的物理结构必须与逻辑结构一致

( 3)下列模式中,能够给出数据库物理存储结构与物理存取方法的是 ______ 。

A. 内模式 B. 外模式 C. 概念模式 D. 逻辑模式( 4)下述关于数据库系统的叙述中正确的是 ______ 。 A. 数据库系统减少了数据冗余

B. 数据库系统避免了一切冗余 C. 数据库系统中数据的一致性是指数据类型的一致 D. 数据库系统比文件系统能管理更多的数据

Page 32: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.1 数据库系统的基本概念补充习题 ( 5)在数据管理技术的发展过程中,经历了人工管理阶段、 文件系统阶段和数据库系统阶段。其中数据独立性最高 的阶段是 ______ 。 A. 数据库系统 B. 文件系统 C. 人工管理 D. 数据项管理 ( 6)下列有关数据库的描述,正确的是 ______。 A. 数据库是一个 DBF 文件 B. 数据库是一个关系 C. 数据库是一个结构化的数据集合 D. 数据库是一组文件( 7)单个用户使用的数据视图的描述称为 ______。 A. 外模式 B. 概念模 C. 内模式 D. 存储模式

Page 33: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.1 数据库系统的基本概念补充习题 (8) 数据独立性是数据库技术的重要特点之一,所谓数据独立性是指 ___。 (05.4)A. 数据与程序独立存放

B. 不同的数据被存放在不同的文件中 C. 不同的数据只能被对应的应用程序所使 D. 以上三种说法都不对(9) 下述说法中没有体现数据库系统特点是 _____ 。 A. 数据面向应用程序 B. 数据结构化

C. 数据冗余小 D. 数据共享性高(10) 数据库系统的三级模式分别为 ______ 模式、内部级

模式与外部级模式。(11) 数据的物理结构(包括存储结构、存取方式等)的改

变都不影响数据库的逻辑结构,从而不致于引起应用程序的变化,这是指数据的————。

Page 34: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.2 概念模型与数据模型

利用模型对事物进行描述是人们在认识改造世界过程中广泛采用的一种方法,如汽车、飞机模型等。

模型 : 是对客观世界中复杂对象的描述。

例如,在军事上使用沙盘描述战场实况;在建筑上用外貌图、平面图和侧面图描述一个建筑物的外部特征和内部结构。

5.2.1 模型

Page 35: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.2 概念模型与数据模型

模型可更形象直观揭示事物的本质特征,使人们对事物有一个更全面深入的认识,从而帮助人们更好地解决问题。

是否在进行数据库系统设计时也可以利用模型来帮助我们完成工作呢?如果可以,我们利用何种模型呢?

5.2.1 模型

如同在建筑设计和施工的不同阶段需要不同的图纸一样,在实施数据库应用中也需要使用不同的数据模型。

Page 36: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.2.1 模型5.2 概念模型与数据模型5.2 概念模型与数据模型

模型的分类: 概念模型(信息模型) 逻辑模型(数据模型) 物理模型

物理模型是对数据最低层的抽象,它描述数据在磁盘或磁带上的存储方式和存取方法。

从概念模型到逻辑模型的转换是由数据库设计人员完成的,从逻辑模型到物理模型的转换是由 DBMS

完成的,一般人员只需要了解逻辑模型就行了。

Page 37: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.2.1 模型5.2 概念模型与数据模型5.2 概念模型与数据模型

为了能把现实世界的具体事物抽象组织为某一个DBMS支持的数据模型,首先需要对这一管理活动所涉及到的各种资料数据及其关系有一个全面的清晰的认识,并通过采用概念模型来描述。

概念模型是现实世界到机器世界的中间层次。

Page 38: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

客观世界的抽象过程

Page 39: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.2.1 模型5.2 概念模型与数据模型5.2 概念模型与数据模型

模型分两个不同的层次。第一种是概念模型,也称信息模型,是按用户的观点对数据和信息建模。另一种是数据模型。

数据模型应满足三方面的要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。

数据模型是数据库系统的核心和基础。

各种 DBMS软件都是基于某种数据模型。

Page 40: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.2.1 模型5.2 概念模型与数据模型5.2 概念模型与数据模型

任何一种数据模型一般都是严格定义的概念的集合。这些概念必须能准确是描述系统的静态特征、动态特征和完整性约束条件。

数据模型由数据结构、数据操作和完整性约束三个要素组成。

Page 41: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

数据模型三要素:

5.2.1 模型5.2 概念模型与数据模型5.2 概念模型与数据模型

数据结构 数据结构用于描述数据的静态特征。 数据结构是所研究的对象类型的集合,是刻画一个

数据模型最重要的方面。通常可以按数据结构的类型来命名数据模型,可分

为:网状模型、层次模型、关系模型、面向对象模型。

Page 42: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

数据模型三要素:

5.2.1 模型5.2 概念模型与数据模型5.2 概念模型与数据模型

数据操作 数据操作用于描述数据的动态特征。 数据操作是指对数据库中各种对象(型)的实例

(值)允许执行的操作的集合,包括操作及有关的操作规则,主要有检索和更新(包括插入、删除、修改)两大类操作。

数据模型必须准确地定义这些操作的确切含义、操作符号、操作规则(优先级)以及实现操作的语言。

Page 43: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

数据模型三要素:

5.2.1 模型5.2 概念模型与数据模型5.2 概念模型与数据模型

数据的约束条件 数据的约束条件是一组完整性规则的集合。完整

性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。如:年龄小于 38 ,学生不及格课程少于 3门。

Page 44: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

数据(逻辑)模型的分类

1)层次模型:层次模型的结构是树型结构。 树中的每个结点代表一种记录类型,这些结点满足如下规律:有且仅有一个结点无双亲(根结点),其它结点有且仅有一个双亲结点。2)网状模型:以记录型为结点的网络 ,反映现实世界事物间复杂的联系。一个结点可以有多个双亲结点;多个结点可以无双亲结点。

有层次模型、网状模型、关系模型、面向对象模型等。

5.2.1 模型5.2 概念模型与数据模型

Page 45: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

层次模型

网状模型

Page 46: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

关系模型的结构

学号 姓名 性别 年龄 籍贯

9801 张明 男 20 江苏

9802 刘红 女 19 山东

9803 王明 女 20 北京

9839 张立 男 18 陕西

学生人事记录表

关系名

关系 元组

( 行 )

属性( 列 )

主码 男女 域

分量

关系模式:学生(学号、姓名、性别、年龄、籍贯)

属性名

Page 47: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

数据模型比较 (1)

层次模型 网状模型 关系模型

面向对象模型

定义

满足:( 1 )只有一个结点没有双亲结点,称为根结点;( 2 )根以外的其它结点有且只有一个双亲结点

允许有一个以上的结点没有双亲结点;允许结点有多个双亲结点,此外,还允许两个结点之间有多种联系。

一个列不可再分的二维表。

支持类、对象、继承等概念的数据模型。

实例

行政机构、家族关系

广泛存在 学生、课程

学生类

Page 48: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

数据模型比较 (2)层次模型 网状模型 关系模型 面向对象

1. 简单,命令少,易操纵。 2. 实体间联系固定的应用系统,层次模型性能优于关系模型,不次于网状模型。 3.良好完整性支持

1. 能更直接地描述现实世界。 2. 具有良好性能,存取效率高。

1. 建立在严格数学概念基础上。 2. 概念单一数据结构简单清晰。 3. 存取路径透明,数据独立性更高。

存储数据和操作。能定义嵌套结构。很强的模型扩展能力。节省开销。

缺点

表示非层次性不利。插入删除限制较多。查询子女结点须通过双亲结点。命令趋于程序化。

其 DDL 语言极其复杂。数据独立性差。

查询效率不如非关系型,需要对查询优化。

技术尚不成熟,无完全支持的 DBMS产品。

Page 49: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.2.2 E-R 模型与 E-R 图

E-R 模型是一种广泛使用的概念数据模型 ,该模型将现实世界的要求转化成实体、联系、属性等几个基本概念,并可用 E-R

图直观地表示出来。

5.2 概念模型与数据模型

Page 50: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

客观存在并可相互区别的事物。一个学生、一个部门、学生的一次选课。

(1) 实体(Entity)

实体所具有的某一特性 , 一个实体可以由若干个属性值来描述。如学生实体可以由“学号、姓名、性别、出生日期”等属性的属性值 (20061001, 张三,男, 1988-5-6)来描述。

(2)属性 (Attribute)

5.2 概念模型与数据模型

1.E–R 模型中的有关概念

5.2.2 E-R 模型与 E-R 图

Page 51: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.2.2 E-R 模型与 E-R 图

1.E–R 模型中的有关概念

(3)实体型( Entity Type): 用实体名及属性名集合来抽象和描述同类实体。 例如, 学生(学号、姓名、性别、出生年月、系、入学时间)(4)实体集( Entity Set) : 同种实体的集合。 全体学生就是一个实体集。

5.2 概念模型与数据模型

Page 52: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.2.2 E-R 模型与 E-R 图

1.E–R 模型中的有关概念 (5)码 (key) 码是能唯一标识实体的属性。任意两个同类的实体不可能有相同的码 . 如学生学号可作为学生实体的码 ,人的身份证号可作为人实体的码 .

(6)域 (domain) 属性的合理取值范围。 性别属性的域为(男、女) , 成绩属性域为 0 到150

5.2 概念模型与数据模型

Page 53: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.2.2 E-R 模型与 E-R 图

1.E–R 模型中的有关概念 (7)联系 (ralation) :

联系是现实世界中普遍存在的。 在信息世界中,它反映为实体内部和实体之间的联系。 实体内部联系通常是指组成实体的各属性之间的联系,

如出生年份和年龄,总成绩和各科成绩。 两实体型之间的联系可分为三类:

一对一,一对多,多对多

5.2 概念模型与数据模型

Page 54: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.2.2 E-R 模型与 E-R 图

1.E–R 模型中的有关概念 (7)联系:现实世界中事物间的联系。 一对一:简记 1:1

A 中一个实体至多同 B 中的一实体相联系

B 中的一个实体也至多同 A 中的一个实体相联系

一对多: 简记 1:m

A 中一个实体同 B 中多个实体相联系

B 中的一个实体只可同 A 中一个实体相联系 多对多: 简记 m:n

A 中一个实体同 B 中多个实体相联系

B 中的一个实体可同 A 中多个实体相联系

学校 ↓↑校长

班级 ↓↑学生

老师 ↓↑学生

5.2 概念模型与数据模型

Page 55: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.2.2 E-R 模型与 E-R 图

1.E–R 模型中的有关概念

5.2 概念模型与数据模型

(7)联系:现实世界中事物间的联系。 三种联系的关系

一对一联系是一对多联系的特例,一对多联系是多对多联系的特例。

两个以上的实体型之间同样存在一对一、一对多和多对多联系。如教师、课程、参考书。

同一实体集内各实体之间也存在一对一、一对多和多对多联系。如职工实体集中存在领导与被领导关系 1: n 。

Page 56: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.2 数据模型5.2.2 E-R 模型与 E-R 图

2. E–R 模型的图示法 在 E–R 图中,用不同的几何图形表示 E–R 模型中的三个概念与两个联接关系。

三个概念:实体、属性和联系。

Page 57: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.2 数据模型5.2.2 E-R 模型与 E-R 图

2. E–R 模型的图示法

(1)实体集 : 用矩形表示,矩形内写上实体集的名字。(2)属性: 用椭圆形表示属性,其内写上属性名称。(3)联系: 用菱形表示联系,其内写上联系名。(4)实体集 ( 联系 ) 与属性间的联接关系 : 用无向线段表示 .(5)实体集与联系间的联接关系 : 用无向线段表示 , 在线上标注联系类型 (1:1、 1:n、 n:m) 。

实体名 联系名属性名

Page 58: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

1: 1 模型E-R 模型

学生

学号 姓名 年龄

校园卡

拥有

1

1

性别

卡号 学号 部门

Page 59: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

1: n 模型E-R 模型

学生

学号 姓名 年龄

班级

班号 班主任

属于

n

1

性别

班长

Page 60: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

m: n 模型E-R 模型

学生

学号 姓名 年龄

课程

课号 课名

选修

n

m

性别

学分 学时

Page 61: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

两个不同型实体间的联系

Page 62: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

两个以上实体间的多元联系施行社和景点及游客三个实体间存在三元联系

Page 63: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

两个不同型实体间的多种联系

职工与工程间,一个职工可以参加多个工程,一个工程可以有多个职工参加,同时一个工程由一个职工负责,一个职工可以负责多个工程。

Page 64: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

同一实体内部个体间的二元联系

Page 65: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

ER 图的设计方法

大体应遵两条原则 : ①针对每一用户作出该用户信息的局部 ER图 ,确

定该用户的实体、属性、联系。注意 ,能作为属性的就不作为实体 ,利于简化 ER 图。

②综合局部 ER图 ,生成总体 ER 图。在综合过程中 ,同名实体只能出现一次 , 还要去掉不必要的联系 ,以消除冗余。

一个系统的 ER 图不是惟一的 ,强调不同的侧面作出的 E-R 图可能有很大不同。

Page 66: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

ER 图综合实例

1. 在课程管理系统中 ,涉及到班级 ,学生 ,课程 , 教师 ,参考书等实体 , 假设,一个教师只可上一门课程,一门课程可由多个教师讲授,可使用多本参考书,画出该系统的 E-R( 概念 ) 模型。

Page 67: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

课程管理 ER 图

( 1)实体属性图(画二个,其余略)

班级

学生

出生日期性别姓名学号

所属系班级号

Page 68: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

课程管理 ER 图

( 2)实体及联系图如下

组成

选修课程

班级

学生m n

1

1

n

m n讲授参考书教师

成绩

Page 69: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

ER 图综合实例 2. 在物资管理中 ,一个供应商为多个项目供

应多种零件 ,一种零件只能保存在一个仓库中 ,一个仓库中可保存多种零件 ,一个仓库有多名员工值班 ,由一个员工负责管理 .画出该物资管理系统的 E-R 图。

Page 70: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

物资管理 ER 图(1)实体及属性图略 (2)实体及联系图如下

仓库 职工工作1 n

n 个工人工作在一个仓库

仓库 零件存放m n

1 个仓库可以存放 n 种零件

1 种零件可以存放于 m 个仓库

分步解析:

Page 71: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

物资管理 ER 图

仓库 员工工作1 n

保管

零件

m

n

供应商

供应

m

n

项目

p

领导

n1

1 个供应商可以提供 n 种零件1 种零件可由 n 个供应商提供

1 个供应商可以供应 n 个项目1 个项目可由 p 个供应商提供1 种项目需要 n 种零件1 种零件被用于 p 个项目

1 个工人只能从属 1 个领导

1 个领导可以领导 n 个工人

Page 72: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

ER 图综合实例

3. 学校有若干系 ,每个系有若干班级和教研室 ,每个教研室有若干教员 ,其中有的教授和副教授各带若干研究生。每个班级有若干学生 ,每个学生选修若干课程 ,每门课程可由若干学生选修。用 E-R 图画出该校的概念模型。

作业

Page 73: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

学校 ER 图

系部

学生

教研室

教员

班级

课程

选修

组成

组成

组成

组成

讲授

1

m

1 11 1

mm

m

m

m

m

n

指导

m

n

成绩

Page 74: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

学生管理系统的 E-R 模型

学生基本情况 课程信息学习成绩

政治面貌

学号 姓名 性别 班级

出生日期

成绩

I D课程 课程名称 学时

学分

拥有

1

n

I D政治面貌 政治面貌名称

Page 75: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库

5.3.1 关系数据模型定义: 用关系(表格数据)表示实体和实体之间联系的

模型称为关系模型。关系就是二维表格。

关系数据库是基于关系数据模型的数据库。特点之一是很多数学理论可以表示关系模型的数据操作。

学号 姓名 选修课程 任课教师060123101 张一 软件工程 冯平060123102 王二 计算机原理 王松060123103 李三 软件工程 冯平060123104 陈四 C语言 张文

学生选课登记表

Page 76: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.1 关系数据模型相关术语:元组 ( 记录 ) :表格中每一行称作一个元组,也称为记录。 关系是元组的集合(一个表由若干个记录组成)。分量: 元组中每一个属性值称为元组的一个分量 , 一个元组 是由 n 个元组分量组成。(表中的列而言)n元关系:每一列是一个属性,列名为属性名。如果表格有 n

列 (n个属性 ) ,该关系是 n 元关系。候选键 (码 ) :在众多的属性中 , 可唯一标识元组的属性或属性 集合叫候选键或码 .

域:属性的取值范围

Page 77: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.1 关系数据模型

关系的直观概念概括表 (Table),也称关系 列 (Field),也称字段、分量或者属性 行 (Row),也称元组、记录 码 (Key),也称主键

关系模式:对关系的描述 关系模式表示: 关系名(属性 1 ,属性 2 ,属性 3……)

Page 78: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.1 关系数据模型关系应满足性质:(l) 表格中的每一列都是不可再分的,每行和每列的相

交 点仅包含单个值;(2) 任何列中的值必须是同一类型的,各列被指定一个

相 异的名字;(3) 各行相异,不允许重复;(4) 行、列次序均无关。

Page 79: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

关系性质 1——同质的列

学号 姓名 性别 年龄 曾用名9901 张三 男 20 张狗子9902 李四 女 18 李朋王五 9903 1 19 王麻子9904 赵六 2 1981/2/28 赵薇

Page 80: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

关系性质 2—不同的属性名

学号 姓名 性别 年龄 姓名9901 张三 男 20 张狗子9902 李四 女 18 李朋9903 王五 男 19 王麻子9904 赵六 女 20 赵薇

姓名 2曾用名

Page 81: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

关系性质 3—属性无序

学号 姓名 性别 年龄 曾用名9901 张三 男 20 张狗子9902 李四 女 18 李朋9903 王五 男 19 王麻子9904 赵六 女 20 赵薇

学号 姓名 曾用名 性别 年龄9901 张三 张狗子 男 20

9902 李四 李朋 女 18

9903 王五 王麻子 男 19

9904 赵六 赵薇 女 20

Page 82: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

关系性质 4—元组不重复

学号 姓名 性别 年龄 姓名9901 张三 男 20 张狗子9902 李四 女 18 李朋9903 王五 男 19 王麻子9904 赵六 女 20 赵薇9901 张三 男 20 张狗子

重复的元组

重复的元组 !

Page 83: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

关系性质 5—元组无序

学号 姓名 性别 年龄9901 张三 男 20

9902 李四 女 18

9903 王五 男 19

9904 赵六 女 20

学号 姓名 性别 年龄9904 赵六 女 20

9901 张三 男 20

9903 王五 男 19

9902 李四 女 18

Page 84: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

关系性质 6—分量是原子

父 母 孩子李男

王男

丁女

肖女

李一李二王一

父 母孩子

大 小李男王男

丁女肖女

李一王一

李二

父 母 孩子李男李男王男

丁女丁女肖女

李一李二王一

父 母 大孩 小孩李男王男

丁女肖女

李一王一

李二

非规范化关系

规范化关系

Page 85: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

关系数据库模式例

整个数据库

某关系的结构

某关系的实例

Page 86: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.2 关系代数1. 关系模型基本操作 (四种 ) :插入:在关系中增添一些元组(记录)删除:在关系中删除一些元组(记录)修改:对关系中的某些元组(记录),修改其属性值。查询:在一个关系或多个关系间做查询 , 查询的结果也为关系2.关系运算定义:

以集合代数集合代数运算方法对关系进行数据操作。

Page 87: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.2 关系代数2.关系运算定义:

以集合代数集合代数运算方法对关系进行数据操作。三要素:运算对象、运算符和运算结果分类:传统的集合运算:完全把关系看作元组集合。 有并运算、交运算和差运算。 专门的关系运算:选择、投影、连接和除运算。

Page 88: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.2 关系代数2.关系运算(1)并运算 U : R∪S, R 和S是同类型关系,结果也是关系,其元组由 R元组、S元组组成 (去除重复元组 ) 。

学号 姓名 成绩

1 张云 80

2 李风 70

学号 姓名 成绩

1 张云 80

3 王民 90

学号 姓名 成绩

1 张云 80

2 李风 70

3 王民 90

R S T=RUS

S R∪

Page 89: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.2 关系代数2.关系运算(2)差运算-: R-S, R和 S 的差是由属于 R但不属于S 的元组构成的集合。

学号 姓名 成绩

1 张云 80

2 李风 70

学号 姓名 成绩

1 张云 80

3 王民 90

学号 姓名 成绩

2 李风 70

R S T=R- S

R-S

Page 90: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.2 关系代数2.关系运算(3) 交运算∩ : R ∩S ,所得是由那些既在 R 内又在 S 内的有序元组所组成。

学号 姓名 成绩

1 张云 80

2 李风 70

学号 姓名 成绩

1 张云 80

3 王民 90

学号 姓名 成绩

1 张云 80

R S T=R ∩ S

R ∩ S

Page 91: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.2 关系代数2.关系运算(4)笛卡尔积运算 (×) 对于两个关系的合并操作可以用笛卡尔积表示。设有

n 元关系 R 及 m 元关系 S ,分别有 p 、 q 个元组,关系 R与 S 经笛卡尔积记为 R×S:这是一个 n+m元关系,元组个数是 p×q,由 R 与 S 的有序组组合而成。

即在新关系中: 列数:两个源关系中列之和 行数:两个源关系中行数的乘积

R × S

Page 92: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

笛卡尔积运算举例

关系 R 、 S

R S

R1 R2 R3 S1 S2

adg

beh

Cfi

135

246

T=RS

R1 R2 R3 S1 S2

aaadddggg

bbbeeehhh

cccfffiii

135135135

246246246

Page 93: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

传统集合运算例题

A B C

a1 b2 c2

a2 b2 c1R×S

R — SR ∩ S

R ∪ S

A B C

a1 b1 c1

a1 b2 c2

a2 b2 c1

A B C

a1 b2 c2

a1 b3 c2

a2 b2 c1

R

S

A B C A B C

a1 b1 c1 a1 b2 c2

a1 b1 c1 a1 b3 C2

a1 b1 c1 a2 b2 C1

a1 b2 c2 a1 b2 c2

a1 b2 c2 a1 b3 C2

a1 b2 c2 a2 b2 C1

a2 b2 c1 a1 b2 c2

a2 b2 c1 a1 b3 C2

a2 b2 c1 a2 b2 C1

A B C

a1 b1 c1

A B C

a1 b1 c1

a1 b2 c2

a1 b3 c2

a2 b2 c1

Page 94: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.2 关系代数2.关系运算(5)投影运算 (π) 就是从关系中取出若干属性,组成一个新关系。 记作: πx (R) ={ t [X] | t R ∈ } X为 R 中的属性

例如:对学生选课登记表进行查询,查询出学生姓名与选修课程的对应关系,就可利用投影操作,得到满足要求的结果关系。

Page 95: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

姓名 选修课程张一 软件工程

王二 计算机原理

李三 软件工程

陈四 C语言

学号 姓名 选修课程

任课教师

060123101

张一 软件工程

冯平

060123102

王二 计算机原理

王松

060123103

李三 软件工程

冯平

060123104

陈四 C语言…

张文

举例:对学生选课登记表查询,查询学生和选修课程对应关系

投影运算

Π 姓名,选修课程 ( 学生选课登记表 )

Page 96: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.2 关系代数2.关系运算(6)选择运算 (σ) 在关系中选取满足给定条件的所有元组 :

σF (R) ={t | t R ∈ ∧ F(t)=‘ 真’ } , F 为条件表达式 举例:对学生选课登记表查询,查询所有选修”软件工程”的学生。

Page 97: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

举例:对学生选课登记表查询,查询所有选修”软件工程”的学生。

学号 姓名 选修课程 任课教师0601231

01张一 软件工程 冯平

060123103

李三 软件工程 冯平

学号 姓名 选修课程 任课教师0601231

01张一 软件工程 冯平

060123102

王二 计算机原理 王松

060123103

李三 软件工程 冯平

060123104

陈四 C语言… 张文

选择运算

σ 选修课程=“软件工程” ( 学生选课登记表 )

Page 98: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

学号 姓名 性别 年龄 所在系070211

201张一 男 18 信息对抗

070211202

王二 男 19 信息对抗

070211203

李三 女 17 信息对抗

070211204

陈四 女 18 信息对抗

070211301

王二 男 19 探测制导

070211302

李三 女 17 探测制导

070211303

陈四 女 18 探测制导

举例:对学生表查询,查询年龄等于 18 岁的女生δ 年龄 = 18 ∧ 性别 =“女” ( 学生表 )

学号 姓名 性别 年龄 所在系070211

204陈四 女 18 信息对抗

070211303

陈四 女 18 探测制导

Page 99: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

学号 姓名 性别 年龄 所在系070211

201张一 男 18 信息对抗

070211202

王二 男 19 信息对抗

070211203

李三 女 17 信息对抗

070211204

陈四 女 18 信息对抗

070211301

王二 男 19 探测制导

070211302

李三 女 17 探测制导

070211303

陈四 女 18 探测制导

举例:查询学生表中年龄小于 19 岁的学生的姓名及所在系:П 姓名 , 所在系 (δ 年龄 < 19 (学生表) )

姓名 所在系

张一 信息对抗

李三 信息对抗

陈四 信息对抗

李三 探测制导

陈四 探测制导

Page 100: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.2 关系代数2.关系运算(7)自然连接 : 将两个具有公共属性的关系,按公共属性值相等的条件 连接成一新的关系,并在结果中将重复的值去掉。

R∞S={tr ts | t r R ∈ ∧ ts S ∈ ∧ tr[A] = ts[B]}

Page 101: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

学号 姓名 选修课程 任课教师0601231

01张一 软件工程 冯平

060123102

王二 计算机原理 王松

060123103

李三 软件工程 冯平

060123104

陈四 C语言 张文

学号 成绩

060123101 90

060123102 95

060123103 86

060123104 88

学号 姓名 选修课程 任课教师 成绩06012310

1张一 软件工程 冯平 90

060123102

王二 计算机原理 王松 95

060123103

李三 软件工程 冯平 86

060123104

陈四 C语言 张文 88

上面两个关系都具有公共属性”学号” , 则连接结果如下 :

Page 102: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

A B C

a1 b1 5

a1 b2 6

a2 b3 8

a2 b4 12

B E

b1 3

b2 7

b3 10

b3 2

b5 2

R S

A B C E

a1 b1 5 3

a1 b2 6 7

a2 b3 8 10

a2 b3 8 2

R ∞ S

Page 103: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

练习:用关系代数完成操作

对三个关系模式: 学生(学号 , 姓名 ,性别 ,年龄 ,所在系), 课程(课程号 ,课程名 ,先导课程 ,学分 ), 选修(学号 ,课程号 ,成绩 ),1. 查询张红的年龄。2. 查询李明同学不及格的课程名称。3. 查询选修了“计算机网络”的学生姓名。4. 查询“计算机网络”成绩在90分以上的学生姓名。5. 查询至少选修了2号课程和8号课程的学生姓名。

5. Π 姓名 (δ 课程号 = 2 ∧ 课程号 =8( 选修 )) ∞ 学生 )1.Π 年龄 (δ 姓名 =“ 张红” ( 学生 ))

Page 104: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

成绩管理数据库 例:在一个学生课程关系数据库中,包括学生关

系表,课程关系表,选修关系表 ,数据结构如下: 1.学生(学号 , 姓名 ,性别 ,年龄 ,所在系) 2.课程(课程号 ,课程名 ,先导课程 ,学分 ) 3.选修(学号 ,课程号 ,成绩 )

Page 105: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.3 由 E-R 图导出关系模型定义:根据实体及其联系模型生成数据库中的表,并确定表的列。

规则:每个独立实体转换为一个关系,即二维表,然后根据E-R图中各实体联系方式的不同,用不同的方法实现关系之间的联系。

Page 106: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

举例:一个实体 E-R 模型转换为关系表学生实体 E-R 图

学生关系表

出生日期性别姓名学号 表中的列就是 E-R图中实体所具有的属性

转换

Page 107: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.3 由 E-R 图导出关系模型两个实体的 E-R 图,三种不同联系方式的 E-R 图转换

(1) 一对一联系:两个实体集转换为关系,在两实体对应的任一关系中多设一个属性作为外键(此外键是与之关联的实体的主键)。

Page 108: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.3 由 E-R 图导出关系模型两个实体的 E-R 图,三种不同联系方式的 E-R 图转换 举例:两个实体 : 一对一联系

实体: 系

属性:系编号、系名字、系性质

E-R 图

系编号 系名字 系性质

系主任

年龄 姓名

实体: 系主任

属性:年龄、姓名

Page 109: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.3 由 E-R 图导出关系模型两个实体的 E-R 图,三种不同联系方式的 E-R 图转换 举例:两个实体 : 一对一联系

实体: 系

属性:系编号、系名字、系性质

E-R 图

系编号 系名字 系性质

系主任

年龄 姓名

实体: 系主任

属性:年龄、姓名

拥有1 1

导出系 ( 系编号 , 系名字 , 系性质 )

系主任 ( 系编号 , 年龄 ,姓名 ) 关 系

Page 110: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.3 由 E-R 图导出关系模型两个实体的 E-R 图,三种不同联系方式的 E-R 图转换 举例:两个实体 : 一对一联系

系编号 系名字 系性质

系主任

年龄 姓名

拥有1 1

系 ( 系编号 , 系名字 , 系性质 )

系主任 ( 系编号 , 年龄 ,姓名 )

(1) 一对一联系:两个实体集转换为关系,在两实体对应的任一关系中多设一个属性作为外键(此外键是与之关联的实体的主键)。

Page 111: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.3 由 E-R 图导出关系模型两个实体的 E-R 图,三种不同联系方式的 E-R 图转换 (2) 一对多联系:两个实体集转换为关系,把“一”方实体的主键纳入“多”方实体对应的关系中作为外键,若联系包含属性,则将属性也纳入“多”方实体对应的关系中。

系编号 系名字 系性质

教师

年龄 性别 姓名

拥有1 n

系 ( 系编号 , 系名字 , 系性质 )

教师 ( 系编号 , 年龄 , 性别 ,姓名 )导出

Page 112: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.3 由 E-R 图导出关系模型两个实体的 E-R 图,三种不同联系方式的 E-R 图转换 (3) 多对多联系:两个实体集转换为关系,再为联系单独建立一个关系。该关系中包含联系双方实体的主键。

学生

学号 姓名 班级

课程

编号 名称 学分

选修m n

学生(学号,姓名,班级)课程(编号,名称,学分)选修(学号,编号,成绩)

导出

成绩

新关系包含了两个多对多实体的主键及其联系属性

Page 113: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.4 关系数据库规范化理论

一个数据库应用系统往往涉及到多方面的复杂的数据信息。例如,在学生管理信息系统中 ,要涉及到学生、院系、宿舍、课程、成绩等数据。再例如,在产品销售数据库中设计到产品、类别、仓库、销售单、销售明细单等数据。

如何将所涉及到的数据组织存入到数据库中?是放在一个表中存放还是分放在几个表中存放?每个表应由哪些属性组成?怎样设计才是科学合理的呢?

解决之法是用 RDB 设计理论:规范化理论

Page 114: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

例如:产品报价数据库

Page 115: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.4 关系数据库规范化理论

   建立一个关系数据库系统,首先要考虑怎样建立数据模式,即应该构造几个关系模式,每个关系模式中需要包含哪些属性等,这是数据库设计的问题。关系规范化主要讨论的就是建立关系模式的指导原则,所以有人把关系数据库规范化理论称为设计关系数据库的规范化理论。

Page 116: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.4 关系数据库规范化理论 1.关系模型的完整性规则定义:是对关系的某种约束条件,通过三类完整性约束条件描述。 (1)实体完整性:关系中的主关键字不能为空。如学生关系中的“学号”属性值不能为空。( 一个关系对应现实世界的一个实体集,关系中每个元组对应一个实体。实体都具有唯一性标识。)

Page 117: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

实体完整性示例

学号 课程号 成绩9901

9901

9902

9903

C1

C2

C2

C3

90

80

70

80

学号 姓名 年龄 性别 所在系9901

9902

9903

9904

张三李四王五赵六

20

18

19

20

男女女男

计算机计算机计算机计算机

主关键字不能为空

Page 118: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.4 关系数据库规范化理论 1.关系模型的完整性规则

(2)参照完整性:关系中外关键字的取值,只能是空值或外键对应关系的主键值。外键: A 是关系 R 中一属性 , 同时又是关系 S 主键 ,A为 R外键 例:学生 ( 学号,姓名,年龄,性别,专业号 ) 专业 ( 专业号,专业名称 )“学号”是关系“学生”中的主关键字,输入时值不能为空。 “专业号”是关系“专业”的主键,是关系“学生”种的外键:空值:表示尚未给该学生分配专业非空值:必须是目标关系-“专业”关系中某个元组的“专业号”值

(1)实体完整性:

Page 119: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

参照完整性例

学号 姓名 所在系9901

9902

9903

9904

张三李四王五赵六

计算机计算机计算机计算机

课程号 课程名 学时数C01

C02

C03

C04

高等数学数据结构操作系统

数据库

100

70

80

60

学号 课程号 成绩9901

9901

9902

9904

9904

C01

C02

C04

C04

C03

90

80

90

85

70

学生关系 课程关系 学习成绩关系外键 外键主键 主键

Page 120: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

职工号 部门编号 姓名 …

9801

9802

9803

9804

9805

01

01

02

03

张三李四王五赵六钱七

部门编号 部门名称 …

01

02

03

04

经理办公室人事部公关部技术部

职工表(R2)

部门表(R1)

主键外键

参照完整性例

外键的取值,只能是空值或外键对应关系的主键值。

Page 121: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.4 关系数据库规范化理论 1.关系模型的完整性规则

(2)参照完整性:(1)实体完整性:

(3)用户定义完整性:

通常定义除主关键字与外关键字之外的其他属性取值的约束。 前两种是任何关系数据库系统应满足的数据约束条件。用户定义完整性是用户定义具体数据库时,由具体应用环境来决定应满足的约束条件。

例: 性别(男,女) 成绩( 0~ 100)或 (0-150) 课程学分 (1~ 3)

Page 122: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

用户定义的完整性

Page 123: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.4 关系数据库规范化理论 2.函数依赖 数据依赖在关系模式中广泛存在,影响巨大。

恰当的数据依赖是必要的。但不必要的数据依赖会对关系模式产生不好的影响。

进行数据库设计时要深入分析数据间的依赖。 数据依赖:限定组成关系的各元组必须满足的完整性约束条件。如属性的取值范围;或者属性值间的相互关联(即数据依赖)。

Page 124: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.4 关系数据库规范化理论 2.函数依赖 关系模式中的数据依赖有多种,比较重要的是函数依赖、

多值依赖、连接依赖。函数依赖:关系模式中属性间的普遍存在函数依赖。 例:学生 ( 学号,姓名,性别,年龄,所在系 )

该关系模式中存在以下函数依赖: 学号— >姓名 , 学号— > 性别 , 学号— > 所在系。多值依赖 : 一门课由多个老师上,使用同一套参考书。连接依赖 : 关系与关系间往往存在联系。

Page 125: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

学校关系模式的函数依赖

学号 系主任名 成绩

所在系 系主任名

如学校数据库模式:一个系有若干学生,一个学生只属于一个系;一个系只有一个系主任;一个学生可以选修多门课程,每门课程有若干同学选修;每个学生所学的每门课程都有成绩。

假设学校数据库模式仅由一个表构成。 学生(学号 , 所在系 , 系主任名 , 课程名 , 成绩) 关系中存在的数据依赖为:

Page 126: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

函数依赖对关系模式的影响 关系模式: 学生(学号 , 所在系 , 系主任名 , 课程名 , 成绩)

存在一些问题 :

(1). 数据冗余太大 : 所在系 , 系主任名 , 课程名重复保存。 (2). 更新异常。 (3). 插入异常。 (4). 删除异常。 为什么会出现这些问题呢? 因为存在不合适的数据依赖!

Page 127: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.4 关系数据库规范化理论 2.函数依赖函数依赖 : 一个关系模式中,如果某个属性组 X 的值确定,则其他属性的值唯一确定,称此属性组函数决定其他的属性。或称其他属性函数依赖于此属性组。

记为 X->Y

Page 128: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.4 关系数据库规范化理论 函数依赖的分类:

(1)平凡的函数依赖:若 X->Y,并且 Y 是 X 的子集。非平凡的函数依赖:若 X->Y,并且 Y 不是 X 的子集。

例如:成绩表(学号,课号,成绩) (学号,课号)→学号;平凡的函数依赖 (学号,课号)→成绩;非平凡的函数依赖

说明:( 1)对任一关系模式,平凡函数依赖必然成立。( 2)这里只讨论非平凡函数依赖。( 3)非平凡函数依赖易产生问题。

Page 129: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

说明:( 1 )部分函数依赖易产生问题( 2 )完全函数依赖中, X 为决定属性, Y 为非决定属 性

5.3 关系数据库5.3.4 关系数据库规范化理论 函数依赖的分类:

(2) 完全函数依赖:若 X->Y, X的任意子集 X’,都没有X’->Y部分函数依赖:若 X->Y,并且存在 X 的子集 X',有X'->Y

例如:完全函数依赖:课程号→ 教师 部分函数依赖: ( 学号,课程号)→ 教师

(3) 若有 X->Y,但没有 Y->X,且有 Y->Z,则 X->Z成立,则称为 Z 传递函数依赖于 X 。

例如:(学号,课号) → 课号→ 成绩

Page 130: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.4 关系数据库规范化理论 3.关系模型的范式:目的是构造好的数据库 关系数据库中的关系要满足一定的要求,满足不同程度的要求为不同的范式。 规范化的理论是 E.F.Codd首先提出的。他认为,一个关系数据库中的关系,都应满足一定的规范,才能构造出好的数据模式, Codd把应满足的规范分成几级,每一级称为一个范式 (Normal Form)。例如满足最低要求,叫第一范式(1NF);在 1NF基础上又满足一些要求的叫第二范式 (2NF);第二范式中,有些关系能满足更多的要求,就属于第三范式(3NF)。后来 Codd和 Boyce又共同提出了一个新范式:BC范式 (BCNF)。以后又有人提出第四范式 (4NF)和第五范式 (5NF)。范式的等级越高,应满足的条件也越严。

Page 131: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.4 关系数据库规范化理论 3.关系模型的范式:

各种范式之间的关系

5NF

4NF

BCNF

3NF

2NF

1NF

范式的等级越高,应满足的条件也越严

Page 132: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.4 关系数据库规范化理论 3.关系模型的范式:(1)第一范式:关系 R 中的每个属性 ( 列 ) 都是不可再分的,或每个属性的域都只包含单纯值,而不是一些值的集合,则称关系 R 满足第一范式。记为 R 1NF∈ 。

学号 课程

1011 {C++ 程序设计,软件工程 }

1012 {Access数据库,专业英语 }

例 : 下面的关系不符合第一范式:因为属性的域值可以拆分

Page 133: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.4 关系数据库规范化理论 3.关系模型的范式:(1)第一范式:

学号 课程

1011 {C++ 程序设计,软件工程 }

1012 {Access数据库,专业英语 }

1.更新困难: 如果 1011同学想把选修课程改为 {Access数据

库,专业英语 } ,则系统在处理上面临二义性: ( 1 )修改 1011记录的课程属性值 ( 2 )把学号属性值扩充为 {1011, 1012}2.插入困难:无法在此关系中加入“成绩”属性

Page 134: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.4 关系数据库规范化理论 3.关系模型的范式:(1)第一范式:第一范式的判断方法: 检查关系表中每个属性值是否都是不可再分解的最小数据单位。将非第一范式规范为第一范式的方法: 依次检查每个属性的取值,如果是组合情况,即不是最小单位,就进行属性值的最小化拆分。

学号 课程 1011

{C++ 程序设计,软件工程 }

1012

{Access数据库,专业英语 }

学号 课程1011 C++ 程序设计1011 软件工程1012 Access 数据库1012 专业英语

转换为符合第一范式

Page 135: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.3 关系数据库5.3.4 关系数据库规范化理论 3.关系模型的范式:(2) 第二范式:若 R∈1NF,并且每个非主属性都完全函数依赖于关键字 , 则称为是第二范式的模式 , 记为 R∈2NF。

例: R1(姓名,学号,年龄,课程编号,课程名 ) ,学号是候选关键字。请分析该关系数据库是否满足第二范式。

姓名 学号 年龄 课程编号 课程名陈军 001 15 C101 数据管理技术陈军 001 15 C102 多媒体技术应用陈军 001 15 C105 人工智能初步

… … … … …

Page 136: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

分析:上表每个属性都是单纯值,满足第一范式非主属性“姓名” 、“年龄”函数依赖于“学号”。(学号确定,则姓名、年龄唯一确定)非主属性 “课程编号”、“课程名”函数不依赖于“学号” (一个学号多门课程编号、课程名)因为存在非关键字属性不依赖于候选关键字的情况,所以 R1

不满足第二范式。

姓名 学号 年龄 课程编号 课程名陈军 001 15 C101 数据管理技术陈军 001 15 C102 多媒体技术应用陈军 001 15 C105 人工智能初步

… … … … …

Page 137: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

第二范式的判断方法 ( 了解) 找出一个关系(表)中的主键 单个属性作为主键的情况比较简单,因为主键的作用就是

能唯一标识表中的每一行,关系中的非主属性都能完全函数依赖于主键,这样的关系是第二范式。

对组合属性作为主键的那些关系,通常要判断每一个非主键属性是否能完全函数依赖于主键,即完全由主键所决定。若每一个非关键字属性能被主键所决定,则是第二范式,否则,就不是。

Page 138: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

不符合第二范式的实例及缺点

学生选课关系表:主键为: (学号,课号)

学号 姓名 系 系负责人 课号 成绩

1011 张红 计算机 刘超 2013 87

1011 张红 计算机 刘超 2011 90

1012 李丽 电子 王干 2012 80

插入异常: 无法插入还未选课的,由于该学生无课号属性,其相应的

码值一部分为空,故该学生的固有信息无法插入;删除异常: 某学生只选了一门课,若现在要放弃这门课,由于课号是

主键 的一部分,整个记录必须删除,该学生的其他信息也删除了;修改复杂:若张红从计算机系转入动画系,必须修改系负责人, 该生选修了多门课,要修改多条记录

Page 139: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

将不符合第二范式的变为符合第二范式实例

学号 课号 成绩1011 2013 87

1011 2011 90

1012 2012 80

学号 姓名 系 系负责人1011 张红 计算机 刘超1012 李丽 电子 王干

学号 姓名 系 系负责人 课号 成绩1011 张茗 计算机 刘超 2013 87

1011 张茗 计算机 刘超 2011 90

1012 李丽 电子 王干 2012 80

将非第二范式规范为第二范式的方法1 )将能完全依赖主键的属性从关系中提取出来,同主键一起组成一个

关系 如: SC(学号,课号,成绩)2 )将剩余的属性同能完全依赖的主键的一部分组成一个关系 SD(学号,姓名,系,系负责人)

Page 140: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

补充习题讲解1. 用树形结构来表示实体之间联系的模型称为 ______。 A. 关系模型 B. 层次模型

C. 网状模型 D. 数据模型2. 下列说法中 , 不属于数据模型所描述的内容的是 _____. A. 数据结构 B. 数据操作

C. 数据查询 D. 数据约束3. 下面列出的数据模型中 _____ 是概念数据模型 . A. 关系模型 B. 网状模型 C. 层次模型 D. 实体 -联系模型4. 关系表中的每一横行称为一个 ______。 A. 元组 B. 字段 C. 属性 D. 码5. 关系数据库管理系统能实现的专门关系运算包括 ______。

A. 排序、索引、统计 B. 选择、投影、连接 C. 关联、更新、排序 D. 显示、打印、制表

6. 索引属于 ______。 A. 模式 B. 内模式 C. 外模式 D. 概念模式

BCDABB

Page 141: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

7. 在关系数据库中,用来表示实体之间联系的是 ______ 。 A. 树结构 B. 网结构 C. 线性表 D. 二维表8. 将 E-R 图转换到关系模式时,实体与联系都可以表示成 ____ 。 A. 属性 B. 关系 C. 键 D. 域9. 设属性 A 是关系 R 的主属性,则属性 A 不能取空值( NULL) ,这是 A. 实体完整性约束 B. 参照完整性约束

C. 用户定义完整性约束 D. 域完整性约束10. 下列关系运算中 ,____ 不要求关系 R和 S 具有相同的属性个数 . A. R ∩ S B. R S C. R ∪ - S D. R × S11. 在数据库技术中 ,独立于计算机系统的模型是 ____ A. E-R 模型 B. 层次模型 C. 关系模型 D. 网状模型12. 按条件 f 对关系 R 进行选择,其关系代数表达式为 ______ 。 A. R|X|R B. R|X|R C. бf(R) D. πf(R) iθj

DBADAC

Page 142: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

13. 在数据库的三级结构中,外模式有—— A. 1 个 B. 2 个 C. 3 个 D. 任意多个14. 下列关于“联系”的描述,正确的是 ____. A. 联系不是实体,也没有属性 B. 联系是实体, 但没有属性 C. 联系不是实体,但有属性 D. 联系是实体,也有属性15. 对关系 S 和关系 R 进行集合运算,结果中既包含 S 中元组也

包含 R 中元组,这种集合运算称为—— A. 并运算 B. 交运算 C. 差运算 D. 积运算

DCA

Page 143: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

1. 如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体“工人”与实体“设备”之间存在 ______联系。

2. 关系数据库管理系统能实现的专门关系运算包括选择、连接和______ 。

3. 关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、 ______ 和自定义完整性。

4. 数据模型按不同的应用层次分为三种类型,它们是 ______ 数据模型、逻辑数据模型和物理数据模型。

5. 数据库系统中实现各种数据管理功能的核心软件称为 ______ 。

6. 关系模型的数据操纵即是建立在关系上的数据操纵,一般有______ 、增加、删除和修改四种操作。

1. 一对多或 #1: N或 1:n 、 2. 投影 3. 参照完整性 4. 概念5. 数据库管理系统或 DBMS 6. 查询

Page 144: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

7. 数据库管理系统常见的数据模型有层次模型、网状模型和______三种。

8. 设关系 R 是 4 元关系 ,有 5 个元组 ,关系 S 是一个 5 元关系 ,有 6 个元组 ,关系 T是 R 与 S 的笛卡尔积 ,即T=R×S,则关系 T是 ____元关系 ,包括 ____ 个元组 .

9. 在关系数据库管理系统中,表是数据库的三级模式结构中的 ____ 模式,而用户创建的视图在数据库的三级模式结构

中属于 ____ 模式 .10. 数据库的物理结构在计算机存储空间中的存放形式称为

数据库的 ____.

7. 关系模型 8. 9、 30 9. 概念、外 10. 内模式

Page 145: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计

成功的数据库设计是应用系统开发的基础。 数据库设计是一项非常复杂的工作,必须严

格按照工程化步骤实施。 数据库设计还需要丰富的经验。 数据库设计要求形成规范完整的文档资料。

Page 146: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计 目的:设计出能满足用户需求的性能良好的数据库。

基本任务:根据用户对象的信息需求、处理需求和数据库支持环境 ( 硬件、操作系统与 DBMS),设计出数据模式。 信息需求:主要是指用户需要从数据库中获

得信息的内容与性质,确定用户对象的数据及其结构,它反映了数据库的静态要求。处理需求:表示用户对象的行为和动作,即用户要完成什么处理功能,它反映了数据库的动态要求。

数据库设计中的两种方法:

面向数据的方法:以信息需求为主,兼顾处理需求

面向过程的方法:以处理需求为主,兼顾信息需求

Page 147: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计 数据库设计过程

需求分析 → 概念设计 → 逻辑设计

物理设计 实施与运行维护→ →

(调研分析) ( E-R 模型)

(转换成某种 DBMS 支持的逻辑数据模型, 如关系型)

(在存储设备上选定存储结构和方法,一般由 DBMS完成)

Page 148: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计 1. 需求分析

需求分析的任务 (1).通过详细调查现实世界要处理的对象(企业、组织、部门等),充分了解原系统的工作情况,明确用户各种需求,然后在此基础上确定新系统的功能。

(2). 重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性要求、与完整性要求。

Page 149: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计 1. 需求分析

需求分析的步骤

调查与初步分析用户需求需要四步 : (1).调查组织机构总体情况 (2).熟悉业务活动 (3).明确用户需求 (4).确定系统边界。

Page 150: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

需求分析流程图

调查组织机 构总体情况

熟悉业务活动

明确用户需求

需求分析

用户 数据库设计人员

DFD

概念设计

DD

确定系 统边界

Page 151: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计 1. 需求分析调查的方法

(1)跟班作业 (2) 开调查会 (3)请专人介绍 (4)询问 (4) 设计调查表请用户填写 (5) 查阅历史记录。

分析的方法 自顶向下分析自底向上分析

Page 152: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计 1. 需求分析

需要形成的规范化文档:数据流图、数据字典

数据流图:用来描述业务的流程。

数据字典:用来描述系统中的数据。

复杂处理过程的处理逻辑常用判断表和判断树来描述。

Page 153: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

数据流图一般画法

数据流:用标有名字的箭头表示有流向的数据。 数据处理:用标有名字的圆圈表示对数据进行加工或变换。 数据文件:以类似书本的符号表示数据暂存的处所对数据文件

进行的处理,可以用指向或离开的箭头表示。 数据来源及终点:用命名的方框表示,表明数据的来源或数据去向。

数据来源

数据存储

处理 数据输出数据流 数据流

Page 154: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

教务管理数据流图

接受否

考试安排

考试安排 成绩通知单 如未通过重修补考单

教室时间安排 教材

介绍

介绍

出试卷 评成绩

选教材 评平时成绩

课程安排表

同意否

填选课单

准考证选课单 P2上课

教师

学生

P3考试

学生名单

选课名单

教师档案

课程目录

课堂检查

考试表

试卷

平时成绩

P1选课

成绩单

补考名单教室安排

教材目录

课时安排

Page 155: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

进销存管理高层数据流程图

P1进货

P3销售

P2入库

进货单

验收审核

销售单

P4出库

客户订货 付款审核

出库单

入库单

采购员

供方

销售员仓管员

客户缺货

进货帐 库存台帐 销售帐

库存台帐

Page 156: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计 2. 概念设计 概念结构设计是将需求分析得到的用户需求抽象成信

息结构 ( 概念结构 ) 。 概念结构独立于逻辑结构和支持数据库的 DBMS 。它

是现实世界和机器世界的中介,是现实世界的真实模型,易于理解,便于同不熟悉计算机的用户进行交流,这是整个数据设计的关键所在。

概念结构设计一般使用 ER 图完成。

Page 157: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计 2. 概念设计 目的:在需求分析的基础上,确定系统中所包含的

实体,分析每个实体所具有的属性,以及实体之间的关系。

Page 158: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计 2. 概念设计 概念结构方法设计分四类。最常用的方法是自底向上

方法,即自顶向下进行需求分析,再自底向上设计概念结构。 自底向上:先定义各局部应用的概念结构,再集成为全局概念结构。

自顶向下:先定义全局概念结构,再细化。 逐步扩充:先定义最重要的核心概念结构,再逐步扩充

形成全局概念结构。 混合策略:自顶向下和自底向上相结合,自顶向下设计全局概念结构框架。再自底向上设计各局部应用的概念结构。

Page 159: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

概念结构设计

5.4 数据库设计 2. 概念设计

概念结构设计的步骤

抽 象 数据 , 设计 局 部视图 逻辑结

构设计

DFD 分 ER图

总 ER图

需求分析

集成视图

Page 160: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计 2. 概念设计

数据库概念设计 (E–R 模型与视图集成法 ) 的过程 首先选择局部应用 ;

再进行局部视图设计即 E-R 图设计 ;

最后对局部视图进行集成得到概念视图。 ①选择局部应用: 根据系统的具体情况 , 在多层的的数据流图中选择一个适当层次的数据流图 ,让这组图中每一部分对应一个局部应用 , 以这一层次的数据流图为出发点 ,设计分 E-R 图

Page 161: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

教务管理的概念模型

1成绩

nn

m

选修

使用

m

1

p

m

1

课程 课时

教师学生

教材

指导

教室

q

讲授

Page 162: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计 2. 概念设计

数据库概念设计 (E–R 模型与视图集成法 ) 的过程

②局部视图设计次序 (补充 ) : 局部视图设计一般有 3 种设计次序: 自顶向下、由底向上和由内向外自顶向下:先从抽象级别高且普遍性强的对象开始逐

步细化、具体化与特殊化。由底向上:先从具体的对象开始,逐步抽象、普遍化 与一般化,最后形成一个完整的视图设计。由内向外:先从最基本与最明显的对象着手,逐步扩 充至非基本、不明显的其它对象。

Page 163: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计 2. 概念设计

数据库概念设计 (E–R 模型与视图集成法 ) 的过程

③视图集成:视图集成的实质是将所有的局部视图统一并合并成一个完整的数据模式,在进行视图集成时,最重要的工作便是解决局部设计中的冲突。

命名冲突:同名异义和同义异名两种。概念冲突:同一个概念在一处为实体,而在另 一处是属性或联系。域冲突: 相同的属性在不同视图中有不同的域

约束冲突:不同的视图可能有不同的约束

Page 164: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计 3.逻辑设计和物理设计逻辑设计: 主要工作是将 E–R 图转换成指定 RDBMS (关系数据库管理系统)中的关系模式。物理设计: 设计数据库物理结构,包括选择存储结构、确定存取方法、确定数据的存放位置并选择合理的存取路径,以提高数据库访问速度及有效利用存储空间,一般由数据库系统自动完成。

Page 165: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

逻辑结构设计

逻辑结构设计三步图

转 化 为一 般 数据模型

转 化 为特 定DBMS支 持 的数 据 模型

优 化 模型

基 本 ER图 转换

规则特 定DBMS 特点与限制

优化方法

逻辑模型

物理设计

概念结构设计

Page 166: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

数据库物理设计

数据库物理设计步骤

确 定DB 的物 理 结构

评 价DB 的物 理 结构

物理模型

逻辑模型

数 据库 实施

逻辑结构设计

Page 167: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

数据库实施

数据库实施步骤图

建 立数 据库 结构

组 织数 据入库

编 制调 应用 程序

数 据 库运 行 与维护

物理模型

数据库系统

数 据 库物 理 设计

数据库试运行

Page 168: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计 4.数据库维护和管理

1 )数据库调整:数据库运行一段时间后往往产生一些不适应的情况,需调整,由 DBA(数据库管理员)完成。

调整包括下面内容: 调整关系模式与视图使之更能适应用户的需求; 调整索引与集簇使数据库性能与效率更佳; 调整分区、数据库缓冲区大小以及并发度使数据库

物理性能更好。

Page 169: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计 4.数据库维护和管理

2 )数据库重组:运行一定时间后,不断的修改、删除与插入造成数据库系统性能逐步下降(盘上有废块、集簇性下降,存储空间的零散化等,从而造成存取效率下降),需要对数据库进行重新整理,此种工作叫数据库重组。

Page 170: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

5.4 数据库设计 4.数据库维护和管理3 )数据库安全性控制与完整性控制: DBA应采取措施保证数据不受非法盗用与破坏,保证数据的正确性。4 )数据库的故障恢复: 一旦数据库中的数据遭受破坏,需要及时进行恢复。5 )数据库监控: DBA需随时观察数据库的动态变化,并在发生错误、故障或产生不适应情况时随时采取措施。如数据库死锁、对数据库的误操作等;同时还需监视数据库的性能变化,在必要时对数据库进行调整。

Page 171: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

1. 数据库设计包括两个方面的设计内容,它们是 ______ 。 A. 概念设计和逻辑设计 B. 模式设计和内模式设计

C. 内模式设计和物理设计 D. 结构特性设计和行为特性设计2. 视图设计一般有 3 种设计次序,下列不属于视图设计的是 ___。

A. 自顶向下 B. 由外向内 C. 由内向外 D. 自底向上3. 在数据库设计中,将 E-R 图转换成关系模型的过程属于——

A. 需求分析阶段 B. 逻辑设计阶段 C. 概念设计阶段 D. 物理设计阶段

4. 在关系数据库设计中,设计视图是——阶段的工作。 A. 需求分析 B. 物理设计 C. 逻辑设计 D. 概念设计5.全局 E-R 模型的设计,需要消除命名冲突、概念冲突、域冲突和———。 A. 约束冲突 B. 联系冲突 C. 类型冲突 D. 实体冲突6. 数据库设计中,在概念设计阶段可以用 E-R 方法,其设计出的图称为

A. 实用概念图 B. 实体联系图 C. 实体表示图 D. 实体示意图

ABBDAB

Page 172: 主要内容 5.1 数据库系统的基本概念 5.2 数据模型 5.3 关系数据库 5.4 数据库设计 5.5 SQL 简介

1. 数据库设计分为以下 6 个设计阶段:需求分析阶段、 ______ 、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

2. 数据库保护分为:安全性控制 、 ______ 、并发性控制和数据的恢复。

3. 数据库在经过一定时间运行后,其性能逐步下降,这时需要对数据库进行 ______

4. 当将局部 E-R 图集成为全局 E-R 图时,如果同一个对象在一个局部 E-R 图中作为实体,而在另一个局部 E-R 图中作为属性,这种现象称为————冲突。

1. 概念设计阶段或数据库概念设计阶段2. 完整性控制3. 重组4. 概念