数据库基础知识补充课件

上传人:汽*** 文档编号:569432988 上传时间:2024-07-29 格式:PPT 页数:243 大小:3.88MB
返回 下载 相关 举报
数据库基础知识补充课件_第1页
第1页 / 共243页
数据库基础知识补充课件_第2页
第2页 / 共243页
数据库基础知识补充课件_第3页
第3页 / 共243页
数据库基础知识补充课件_第4页
第4页 / 共243页
数据库基础知识补充课件_第5页
第5页 / 共243页
点击查看更多>>
资源描述

《数据库基础知识补充课件》由会员分享,可在线阅读,更多相关《数据库基础知识补充课件(243页珍藏版)》请在金锄头文库上搜索。

1、 数据库原理与应用 The principle and application of database 主讲:李靖主讲:李靖用户名:用户名:s_lj 密码:空密码:空2教材及参考书教材及参考书(1)(1) 教材教材nMySQL 数据数据库入入门,传智播客,智播客,2013 2024/7/29数据库基础知识(补充)3教材及参考书教材及参考书(2)(2)参考书参考书 n孔祥盛孔祥盛. MySQL 数据库基础与实例教程数据库基础与实例教程.人民邮电出版社人民邮电出版社.2016n武洪萍武洪萍. MySQL 数据库原理及应用数据库原理及应用.人民邮电出版社人民邮电出版社.2015.12n石坤泉石坤泉.

2、 Mysql数据库任务驱动式教程数据库任务驱动式教程.人民邮电出版社,人民邮电出版社,2014n付森、石量付森、石量 MySQL 开发与实践开发与实践. 人民邮电出版社人民邮电出版社.2016 数据库基础知识(补充)4考试成绩考试成绩n平时成绩平时成绩 30% (书面作业、上机练习、综合练习)(书面作业、上机练习、综合练习)n期末考试期末考试 70%最终成绩最终成绩=期末考试期末考试 *70%+平时成绩平时成绩* 30%2024/7/29数据库基础知识(补充)5内容安排内容安排(1) 基础篇基础篇n第一章第一章 数据数据库基基础知知识及及Mysql数据数据库的配置的配置 设计篇设计篇n第二章第

3、二章 数据库和表的基本操作数据库和表的基本操作n第三章第三章 添加、更新与删除数据添加、更新与删除数据n第四章第四章 单表查询单表查询n第五章第五章 多表查询多表查询2024/7/29数据库基础知识(补充)6内容安排内容安排(2) 高级篇高级篇n第六章第六章 事务与存储过程事务与存储过程n第七章第七章 视图视图n第八章第八章 数据库的高级操作数据库的高级操作2024/7/29数据库基础知识(补充)7数据库原理与应用数据库原理与应用The principle and application of database第一章第一章 数据库基础知识数据库基础知识2024/7/29数据库基础知识(补充)8

4、第一章第一章 数据库基础知识数据库基础知识1.1 数据库管理系统数据库管理系统1.2 数据库技术数据库技术1.3 数据库系统模型数据库系统模型1.4 关系数据库关系数据库1.5 设计数据库设计数据库2024/7/29数据库基础知识(补充)9数据库的地位数据库的地位n数据库技术产生于六十年代末,是数据管理的最新技数据库技术产生于六十年代末,是数据管理的最新技术,是计算机科学的重要分支。术,是计算机科学的重要分支。n数据库技术是信息系统的核心和基础,它的出现极大数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透。地促进了计算机应用向各行各业的渗透。n数据库的建设规模、

5、数据库信息量的大小和使用频度数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。已成为衡量一个国家信息化程度的重要标志。2024/7/29数据库基础知识(补充)我们接触到数据库了吗?我们接触到数据库了吗?10图书馆数据库系统的应用图书馆数据库系统的应用n一个查询应用程序界面一个查询应用程序界面2024/7/29数据库基础知识(补充)我们接触到数据库了吗?我们接触到数据库了吗?11n一个查询应用程序结果一个查询应用程序结果2024/7/29数据库基础知识(补充)12我们接触到数据库了吗?我们接触到数据库了吗?n图书馆数据库图书馆数据库2024/7/29数据库基础

6、知识(补充)13我们接触到数据库了吗?我们接触到数据库了吗?2024/7/29数据库基础知识(补充)14我们接触到数据库了吗?我们接触到数据库了吗?2024/7/29数据库基础知识(补充)15第一章第一章 数据库基础知识数据库基础知识1.1 数据库管理系统数据库管理系统 1.1.1 数据、信息与数据处理数据、信息与数据处理 1.1.2 数据处理技术发展数据处理技术发展 2024/7/29数据库基础知识(补充)161.1.1 数据、信息与数据处理数据、信息与数据处理n数据数据n数据库数据库n信息信息n数据处理数据处理2024/7/29数据库基础知识(补充)17 数据数据n数据数据(Data)是数

7、据库中存储的基本对象是数据库中存储的基本对象n数据的定义数据的定义n描述事物的符号记录描述事物的符号记录n数据的种类数据的种类n文本、图形、图像、音频、视频、学生的档案记录、文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等货物的运输情况等n数据的特点数据的特点n数据与其语义是不可分的数据与其语义是不可分的2024/7/29数据库基础知识(补充)18例子例子n数数据据的的含含义称称为数数据据的的语义,数数据据与与其其语义是是不不可可分分的。的。n例如例如 93是一个数据是一个数据语义1:学生某:学生某门课的成的成绩语义2:某人的体重:某人的体重语义3:计算机系算机系2003级学生人

8、数学生人数语义4:请同学同学给出。出。学生档案中的学生记录学生档案中的学生记录 (李明,男,(李明,男,197205,江苏南京市,计算机系,江苏南京市,计算机系,1990) 语义:学生姓名、性别、出生年月、籍贯、所在院系、入学时间语义:学生姓名、性别、出生年月、籍贯、所在院系、入学时间 解释:李明是个大学生,解释:李明是个大学生,1972年年5月出生,江苏南京市人,月出生,江苏南京市人,1990年年 考入计算机系考入计算机系2024/7/29数据库基础知识(补充)19数据库数据库n数据库的定义数据库的定义n数数据据库库(Database,简简称称DB)是是长长期期储储存存在在计计算算机机内、内

9、、有组织有组织的、的、可共享可共享的的大量大量数据的集合。数据的集合。n数据库的基本特征数据库的基本特征n数据按一定的数据模型组织、描述和储存数据按一定的数据模型组织、描述和储存n可为各种用户共享可为各种用户共享n冗余度较小冗余度较小n数据独立性较高数据独立性较高2024/7/29数据库基础知识(补充)20信息、数据处理信息、数据处理l 信息信息( (InformationInformation) ) 数据所包含的内容,使人们能够认识客观事物的各种消息、数据所包含的内容,使人们能够认识客观事物的各种消息、情报、信号。情报、信号。比如:比如:他今年他今年2525岁岁l 数据处理数据处理( (Da

10、ta ProcessingData Processing) ) 对各种形式的数据进行收集、组织、存储、分类、排序、对各种形式的数据进行收集、组织、存储、分类、排序、检索、加工、传播等一系列活动的总和。检索、加工、传播等一系列活动的总和。数据管理数据管理是数据处理是数据处理的核心和基础。的核心和基础。2024/7/29数据库基础知识(补充)基本概念基本概念1:数据、信息、数据处理数据、信息、数据处理D文字、数字、图形、文字、数字、图形、图像、声音等图像、声音等数字、文字数字、文字数据库文件数据库文件PIWordExcelPowerPointFrontPagePhotoshopC,VB.NETAc

11、cess,VFPSQL Server文档(文档(. .docdoc)工作簿(工作簿(. .xlsxls)文稿(文稿(. .ppt)ppt)网页(网页(. .html)html)图片(图片(. .bmp)bmp)数字、文字数字、文字查询结果或报表查询结果或报表DataInformation Processing 数据、信息、数据处理数据、信息、数据处理2024/7/2921数据库基础知识(补充)22第一章第一章 数据库基础知识数据库基础知识1.1 数据库管理系统数据库管理系统 1.1.1 数据、信息与数据处理数据、信息与数据处理 1.1.2 数据处理技术发展数据处理技术发展 2024/7/29数

12、据库基础知识(补充)232024/7/29数据库基础知识(补充)24第一章第一章 数据库基础知识数据库基础知识1.2 数据库技术数据库技术 1.2.1 数据库技术中核心概念数据库技术中核心概念 1.2.2 数据库体系结构数据库体系结构 1.2.3 数据库的二级映像功能与数据独立性数据库的二级映像功能与数据独立性 2024/7/29数据库基础知识(补充)25数据库管理系统数据库管理系统n什什么么是是数数据据库库管管理理系系统(统(DBMS)n位位于于用用户户与与操操作作系系统统之之间间的的一一层层数据管理软件。数据管理软件。n是是基基础础软软件件,是是一一个个大大型型复复杂杂的的软件系软件系统统

13、 2024/7/29数据库基础知识(补充)26DBMS的主要功能的主要功能n数据定义功能数据定义功能提供数据定义语言提供数据定义语言(DDL)定义数据库中的数据对象定义数据库中的数据对象n数据组织、存储和管理数据组织、存储和管理分类组织、存储和管理各种数据分类组织、存储和管理各种数据确定组织数据的文件结构和存取方式确定组织数据的文件结构和存取方式实现数据之间的联系实现数据之间的联系提供多种存取方法提高存取效率提供多种存取方法提高存取效率2024/7/29数据库基础知识(补充)27DBMS的主要功能(续)的主要功能(续)n数据操纵功能数据操纵功能n提供数据操纵语提供数据操纵语言言(DML)n实现

14、对数据库的基本操作实现对数据库的基本操作 (查询、插入、删除和修查询、插入、删除和修改改)n数据库的事务管理和运行管理数据库的事务管理和运行管理n数数据据库库在在建建立立、运运行行和和维维护护时时由由DBMS统统一一管管理理和和控控制制n保保证证数数据据的的安安全全性性、完完整整性性、多多用用户户对对数数据据的的并并发发使用使用n发生故障后的系统恢复发生故障后的系统恢复2024/7/29数据库基础知识(补充)28DBMS的主要功能(续)的主要功能(续)n其它功能其它功能nDBMS与网络中其它软件系统的通信与网络中其它软件系统的通信n两个两个DBMS系统的数据转换系统的数据转换n异构数据库之间的

15、互访和互操作异构数据库之间的互访和互操作n数据库的建立和维护功能数据库的建立和维护功能(实用程序实用程序)n数据库初始数据装载转换数据库初始数据装载转换n数据库转储数据库转储n介质故障恢复介质故障恢复n数据库的重组织数据库的重组织n性能监视分析等性能监视分析等2024/7/29数据库基础知识(补充)29数据库系统数据库系统n什么是数据库系统(什么是数据库系统(Database System,简称,简称DBS) 在计算机系统中引入数据库后的系统在计算机系统中引入数据库后的系统n数据库系统的构成数据库系统的构成n数据库数据库n数据库管理系统(及其开发工具)数据库管理系统(及其开发工具)n应用系统应

16、用系统n数据库管理员数据库管理员 2024/7/29数据库基础知识(补充)30数据库系统数据库系统2024/7/29数据库基础知识(补充)31数据库(广义概念)数据库(广义概念)仓库仓库图书馆图书馆功能功能存储、管理、提供存储、管理、提供数据数据保存、管理、供应保存、管理、供应物资物资存储、管理、借阅存储、管理、借阅图书图书构构成成数据库数据库(DB)DB) (狭义概念:某一组织中狭义概念:某一组织中各种应用需要保存和处理的数据的集合)各种应用需要保存和处理的数据的集合)库房库房图书馆所图书馆所运行环境运行环境 构成:构成:存贮器、输入输出设备、存贮器、输入输出设备、CPUCPU、各类系统软件

17、各类系统软件重点考虑:重点考虑:I/OI/O速度、速度、存储容量存储容量出入库登记、运输部、出入库登记、运输部、安全部等安全部等图书情报部、书籍借还图书情报部、书籍借还登记部、阅览室等登记部、阅览室等数据库管理系统数据库管理系统(DBMS)DBMS)实际存贮的数据和用户的接口,负责处实际存贮的数据和用户的接口,负责处理应用程序存取和管理数据库的各种请理应用程序存取和管理数据库的各种请求。求。管理机构管理机构管理机构管理机构数据库管理员数据库管理员(DBADBA)负责设计、建立、管理和维护数据库、负责设计、建立、管理和维护数据库、协调用户需求、熟悉数据库技术和相关协调用户需求、熟悉数据库技术和相

18、关业务。业务。管理员管理员工作人员工作人员 负责规划、协调、维负责规划、协调、维护、和管理图书馆护、和管理图书馆用户用户 应用程序员和终端用户应用程序员和终端用户服务对象服务对象读者读者2024/7/29数据库基础知识(补充)32第一章第一章 数据库基础知识数据库基础知识1.2 数据库技术数据库技术 1.2.1 数据库技术中核心概念数据库技术中核心概念 1.2.2 数据库体系结构数据库体系结构 1.2.3 数据库的二级映像功能与数据独立性数据库的二级映像功能与数据独立性 2024/7/29数据库基础知识(补充)33三级模式结构三级模式结构n模式(模式(Schema) n外模式(外模式(Exte

19、rnal Schema)n内模式(内模式(Internal Schema) 2024/7/29数据库基础知识(补充)34数据库系统的三级模式结构(续)数据库系统的三级模式结构(续)数据库系统的三级模式结构数据库系统的三级模式结构 2024/7/29数据库基础知识(补充)35外模式外模式n外模式外模式(external schema)也称子模式或用户模式)也称子模式或用户模式n外模式介于模式与应用之间,是特定数据库用户的外模式介于模式与应用之间,是特定数据库用户的数据视图,是与某一具体应用相关的数据局部逻辑数据视图,是与某一具体应用相关的数据局部逻辑结构的描述结构的描述n外模式面向具体的应用程序

20、,定义在模式之上,但外模式面向具体的应用程序,定义在模式之上,但独立于存储模式和存储设备独立于存储模式和存储设备2024/7/29数据库基础知识(补充)36外模式外模式( (续续) )n一个数据库可以有多个外模式,反映不同的用户的一个数据库可以有多个外模式,反映不同的用户的应用需求和看待数据的方式应用需求和看待数据的方式n一个外模式可以被多个应用所使用,但是一个应用一个外模式可以被多个应用所使用,但是一个应用程序只能使用一个外模式程序只能使用一个外模式n外模式与授权配合,限制用户只能访问所对应的外外模式与授权配合,限制用户只能访问所对应的外模式中的数据,可以提供一种保证数据库安全性的模式中的数

21、据,可以提供一种保证数据库安全性的有力措施有力措施2024/7/29数据库基础知识(补充)37模式(模式(Schema) 模式模式(schema)也称逻辑模式,是数据库中全体)也称逻辑模式,是数据库中全体数据的总体逻辑结构描述,是所有用户的公共数据视图数据的总体逻辑结构描述,是所有用户的公共数据视图n模式综合了所有用户的数据需求,因此模式综合了所有用户的数据需求,因此一个数据库一个数据库只有一个模式只有一个模式n模式处于模式处于数据库系统模式结构的中间层数据库系统模式结构的中间层,与数据的与数据的物理存储细节和硬件环境无关,与具体的应用程序、物理存储细节和硬件环境无关,与具体的应用程序、开发工

22、具及高级程序设计语言无关开发工具及高级程序设计语言无关2024/7/29数据库基础知识(补充)38模式(续)模式(续)n模式是数据库的中心与关键,模式是数据库的中心与关键,设计数据库结设计数据库结构时应首先确定数据库的模式构时应首先确定数据库的模式n模式的定义包括模式的定义包括n数据的逻辑结构(数据项的名字、类型、取值范数据的逻辑结构(数据项的名字、类型、取值范围等)围等) n数据之间的联系数据之间的联系n数据有关的安全性和完整性要求数据有关的安全性和完整性要求 2024/7/29数据库基础知识(补充)39内模式内模式n内模式内模式(internal schema)也称)也称存储模式或物理模式

23、存储模式或物理模式,是数据物理结构和存储方式的描述,定义数据在数据库是数据物理结构和存储方式的描述,定义数据在数据库内部的表示方式内部的表示方式2024/7/29数据库基础知识(补充)40内模式(续)内模式(续)n例如学生记录,如果例如学生记录,如果按按堆堆存储,则插入一存储,则插入一条新记录总是放在学条新记录总是放在学生记录存储的生记录存储的最后最后,如右图所示如右图所示2024/7/29数据库基础知识(补充)41内模式(续)内模式(续)n如果按学号升序存储,则插入一条记录就要找到它应如果按学号升序存储,则插入一条记录就要找到它应在的位置插入,如左图所示在的位置插入,如左图所示n如果按照学生

24、年龄聚簇存放,假如新插入的如果按照学生年龄聚簇存放,假如新插入的S3是是16岁,岁,则应插入的位置如右图所示则应插入的位置如右图所示 记录不同的存储方式示意图记录不同的存储方式示意图2024/7/29数据库基础知识(补充)42内模式(续)内模式(续)n一个数据库只有一个内模式一个数据库只有一个内模式n内模式依赖于全局逻辑结构,但它既内模式依赖于全局逻辑结构,但它既独立于数据独立于数据库的用户视图(即外模式),也独立于具体的存库的用户视图(即外模式),也独立于具体的存储设备储设备n内模式到物理存储器的映射可以由操作系统实现,内模式到物理存储器的映射可以由操作系统实现,或由或由DBMS实现实现20

25、24/7/29数据库基础知识(补充)模式小结模式小结n外模式处于用户级,也称为用户视图(外模式处于用户级,也称为用户视图(VIEW),它最),它最接近用户,是单个用户看到并获准使用的那部分数据的接近用户,是单个用户看到并获准使用的那部分数据的逻辑结构;逻辑结构;n概念模式是对数据库所有用户的数据的整体逻辑描述,概念模式是对数据库所有用户的数据的整体逻辑描述,包括逻辑记录类型和记录之间的关系;包括逻辑记录类型和记录之间的关系;n内模式处于物理级,又称为存储模式。内模式处于物理级,又称为存储模式。n一般外模式对应于一般外模式对应于SQL的视图,模式对应于基本表,元的视图,模式对应于基本表,元组称为

26、组称为“行行”,属性称为,属性称为“列列”,内模式对应于存储文,内模式对应于存储文件。件。模式小结模式小结n外模式:外模式:n 一个数据库可以有多个外模式一个数据库可以有多个外模式;n 外模式就是用户视图外模式就是用户视图;n 外模式是保证数据安全性的一个有力措施。外模式是保证数据安全性的一个有力措施。n内模式:内模式:n 一个数据库只有一个内模式一个数据库只有一个内模式;n 一个表可能由多个文件组成,如:数据文件、索引一个表可能由多个文件组成,如:数据文件、索引文件。它是数据库管理系统文件。它是数据库管理系统(DBMS)对数据库中数据进行对数据库中数据进行有效组织和管理的方法。有效组织和管理

27、的方法。模式小结模式小结n模式模式:n 一个数据库只有一个模式一个数据库只有一个模式;n 是数据库数据在逻辑级上的视图是数据库数据在逻辑级上的视图;n 数据库模式以某一种数据模型为基础数据库模式以某一种数据模型为基础;n 定义模式时不仅要定义数据的逻辑结构定义模式时不仅要定义数据的逻辑结构(如数据如数据记录由哪些数据项构成,数据项的名字、类型、取值范记录由哪些数据项构成,数据项的名字、类型、取值范围等围等),而且要定义与数据有关的安全性、完整性要求,而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。定义这些数据之间的联系。46第一章第一章 数据库基础知识数据库基础知识1.2 数

28、据库技术数据库技术 1.2.1 数据库技术中核心概念数据库技术中核心概念 1.2.2 数据库体系结构数据库体系结构 1.2.3 数据库的二级映像功能与数据独立性数据库的二级映像功能与数据独立性 2024/7/29数据库基础知识(补充)471.3.3 数据库的二级映像功能与数据独立性数据库的二级映像功能与数据独立性n1. 外模式外模式-模式映像模式映像n外模式外模式-模式映像模式映像定义外模式与模式之间的对应关系定义外模式与模式之间的对应关系n每一个外模式都有一个对应的外模式每一个外模式都有一个对应的外模式-模式映像,建立外模式映像,建立外模式中的数据对象与模式中的数据对象之间的对应关系模式中的

29、数据对象与模式中的数据对象之间的对应关系n外模式外模式-模式映像可以保证外模式的相对稳定性模式映像可以保证外模式的相对稳定性n模式改变时,数据库管理员可以修改有关的外模式模式改变时,数据库管理员可以修改有关的外模式-模式映像,使外模式保持不变,从而为数据的逻辑独模式映像,使外模式保持不变,从而为数据的逻辑独立性提供了保证立性提供了保证n通常,外模式通常,外模式-模式映像定义包含在每个外模式的定义中模式映像定义包含在每个外模式的定义中2024/7/29数据库基础知识(补充)482024/7/29数据库基础知识(补充)49数据库的二级映像功能与数据独立(续)数据库的二级映像功能与数据独立(续)n2

30、. 模式模式-内模式映像内模式映像n模式模式-内模式映像内模式映像定义数据全局逻辑结构与存储结构定义数据全局逻辑结构与存储结构之间的对应关系之间的对应关系n例如,模式例如,模式-内模式映像要说明逻辑记录和字段内模式映像要说明逻辑记录和字段在内部是如何表示的在内部是如何表示的n模式模式-内模式映像可以保证模式,进而保证外模式的内模式映像可以保证模式,进而保证外模式的相对稳定性相对稳定性n当数据的存储结构(内模式)改变时(例如,选当数据的存储结构(内模式)改变时(例如,选用了另一种存储结构),数据库管理员可以修改用了另一种存储结构),数据库管理员可以修改模式模式-内模式映像,使得模式保持不变,这为

31、数内模式映像,使得模式保持不变,这为数据的物理独立性提供了保证据的物理独立性提供了保证2024/7/29数据库基础知识(补充)50数据库的二级映像功能与数据独立(续)数据库的二级映像功能与数据独立(续)n二级映像保证了数据库外模式的稳定性,从而从底层二级映像保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性保证了应用程序的稳定性n除非应用需求本身发生变化,否则除非应用需求本身发生变化,否则应用程序一般不会应用程序一般不会因数据的逻辑结构和物理结构的改变而修改因数据的逻辑结构和物理结构的改变而修改。n数据的独立性靠三级模式、两级映像实现数据的独立性靠三级模式、两级映像实现n数数据据独独

32、立立性性使使得得数数据据的的定定义义和和描描述述可可以以从从应应用用程程序序中中分分离离出出去去,减减少少了了数数据据逻逻辑辑结结构构和和物物理理结结构构的的变变化化对对程序的影响程序的影响 2024/7/29数据库基础知识(补充)数据库的二级映像功能与数据独立(续)数据库的二级映像功能与数据独立(续)n数据的逻辑独立性数据的逻辑独立性n是指应用程序与数据库的逻辑结构之间的相互独立性是指应用程序与数据库的逻辑结构之间的相互独立性n当数据的逻辑结构改变时,通过修改外模式当数据的逻辑结构改变时,通过修改外模式-模式映像,模式映像,保持外模式不变,从而使得应用程序也可以不变保持外模式不变,从而使得应

33、用程序也可以不变 n数据的物理独立性数据的物理独立性n指指应用程序与存储在磁盘上的数据库中数据之间的相互应用程序与存储在磁盘上的数据库中数据之间的相互独立性独立性n当数据的物理存储结构改变时,通过修改模式当数据的物理存储结构改变时,通过修改模式-内模式内模式映像,保持模式不变,映像,保持模式不变,则外模式不需要改变,从而使得则外模式不需要改变,从而使得建立在外模式上的建立在外模式上的应用程序也可以不变应用程序也可以不变53第一章第一章 数据库基础知识数据库基础知识1.3 数据库系统模型数据库系统模型 1.3.1 两类数据模型两类数据模型 1.3.2 三个世界的划分及其相关概念三个世界的划分及其

34、相关概念 1.3.3 概念模型表示方法概念模型表示方法-E-R图图 1.3.4 数据模型数据模型 2024/7/29数据库基础知识(补充)54两大类数据模型两大类数据模型n数据模型分为两类(分属两个不同的层次)数据模型分为两类(分属两个不同的层次)(1) 概念模型概念模型 也称信息模型,它是按用户的观点来对也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。数据和信息建模,用于数据库设计。 (2) 逻辑模型逻辑模型 主要包括网状模型、层次模型、关系模主要包括网状模型、层次模型、关系模 型、面向对象模型等,按计算机系统的观点对数据型、面向对象模型等,按计算机系统的观点对数据建模,用

35、于建模,用于DBMS实现。实现。(3) 物理模型物理模型 是对数据最底层的抽象,描述数据在系是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。存储方式和存取方法。2024/7/29数据库基础知识(补充)55第一章第一章 数据库基础知识数据库基础知识1.3 数据库系统模型数据库系统模型 1.3.1 两类数据模型两类数据模型 1.3.2 三个世界的划分及其相关概念三个世界的划分及其相关概念 1.3.3 概念模型表示方法概念模型表示方法-E-R图图 1.3.4 数据模型数据模型 2024/7/29数据库基础知

36、识(补充)基本概念基本概念4:概念模型、:概念模型、数据模型数据模型 从事物的特征到计算机中数据的表示,从事物的特征到计算机中数据的表示,数据描述要经历数据描述要经历3 3个不同的领域,如右图:个不同的领域,如右图:l现实世界:客观世界,它是原始数据现实世界:客观世界,它是原始数据( (记录记录) )的来源。的来源。l信息世界:现实世界在人们头脑中的反信息世界:现实世界在人们头脑中的反映。人们用文字、符号、图形、图像、映。人们用文字、符号、图形、图像、声音等方式记载下来现实世界的信息。声音等方式记载下来现实世界的信息。l机器世界:信息世界的信息在机器中机器世界:信息世界的信息在机器中以数据存储

37、。以数据存储。三个世界三个世界2024/7/2956数据库基础知识(补充)57两大类数据模型两大类数据模型 (续续)2024/7/29数据库基础知识(补充)58第一章第一章 数据库基础知识数据库基础知识1.3 数据库系统模型数据库系统模型 1.3.1 两类数据模型两类数据模型 1.3.2 三个世界的划分及其相关概念三个世界的划分及其相关概念 1.3.3 概念模型表示方法概念模型表示方法-E-R图图 1.3.4 数据模型数据模型 2024/7/29数据库基础知识(补充)59概念模型概念模型n概念模型的用途概念模型的用途n概念模型用于信息世界的建模概念模型用于信息世界的建模n是现实世界到机器世界的

38、一个中间层次是现实世界到机器世界的一个中间层次n是数据库设计的有力工具是数据库设计的有力工具n数据库设计人员和用户之间进行交流的语言数据库设计人员和用户之间进行交流的语言n对概念模型的基本要求对概念模型的基本要求n较强的语义表达能力较强的语义表达能力n能够方便、直接地表达应用中的各种语义知识能够方便、直接地表达应用中的各种语义知识n简单、清晰、易于用户理解简单、清晰、易于用户理解2024/7/29数据库基础知识(补充)信息世界中的基本概念信息世界中的基本概念(1) 实体(实体(Entity) 客观存在并可相互区别的事物称为实体。客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的

39、概念。可以是具体的人、事、物或抽象的概念。(2) 属性(属性(Attribute) 实体所具有的某一特性称为属性。实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。一个实体可以由若干个属性来刻画。 (3) 码(码(Key) 唯一标识实体的属性集称为码。唯一标识实体的属性集称为码。(4) 域(域(Domain) 属性的取值范围称为该属性的域。属性的取值范围称为该属性的域。 61信息世界中的基本概念信息世界中的基本概念(续续)(5) 实体型(实体型(Entity Type) 用实体名及其属性名集合来抽象和刻画同类实体称为用实体名及其属性名集合来抽象和刻画同类实体称为实体型实体型(6)

40、实体集(实体集(Entity Set) 同一类型实体的集合称为实体集同一类型实体的集合称为实体集学号学号姓名姓名性别性别出生日期出生日期张三男1978-5-6李四女1980-1-24王五男1979-11-122024/7/29数据库基础知识(补充)62信息世界中的基本概念信息世界中的基本概念(续续)(7) 联系(联系(Relationship) n现现实实世世界界中中事事物物内内部部以以及及事事物物之之间间的的联联系系在在信信息息世界中反映为实体内部的联系和实体之间的联系。世界中反映为实体内部的联系和实体之间的联系。n实实体体内内部部的的联联系系通通常常是是指指组组成成实实体体的的各各属属性性

41、之之间间的联系的联系n实体之间实体之间的联系通常是指不同实体集之间的联系的联系通常是指不同实体集之间的联系2024/7/29数据库基础知识(补充)63两个实体型之间的联系两个实体型之间的联系实体型实体型A联系名联系名实体型实体型B111:1联系联系实体型实体型A联系名联系名1n1:n联系联系实体型实体型A实体型实体型B联系名联系名mnm:n联系联系实体型实体型B用图形来表示两个实体型之间的这三类联系用图形来表示两个实体型之间的这三类联系 2024/7/29数据库基础知识(补充)64两个实体型之间的联系(续)两个实体型之间的联系(续) n一对一联系(一对一联系(1:1) n实例实例一个班级只有一

42、个正班长一个班级只有一个正班长一个班长只在一个班中任职一个班长只在一个班中任职n定义:定义: 如如果果对对于于实实体体集集A中中的的每每一一个个实实体体,实实体体集集B中中至至多多有有一一个个(也也可可以以没没有有)实实体体与与之之联联系系,反反之之亦亦然然,则则称称实实体体集集A与实体集与实体集B具有一对一联系,具有一对一联系,记为记为1:1 班级班级任任 职职班长班长111:1联系联系2024/7/29数据库基础知识(补充)65两个实体型之间的联系两个实体型之间的联系 (续续)n一对多联系(一对多联系(1:n)n实例实例 一个班级中有若干名学生,一个班级中有若干名学生, 每个学生只在一个班

43、级中学习每个学生只在一个班级中学习n定定义义:如如果果对对于于实实体体集集A中中的的每每一一个个实实体体,实体集实体集B中有中有n个实体(个实体(n0)与之联系)与之联系 反反之之,对对于于实实体体集集B中中的的每每一一个个实实体体,实实体体集集A中中至至多多只只有有一一个个实实体体与与之之联联系系,则则称称实实体体集集A与与实实体体集集B有有一一对对多多联联系系,记记为为1:n班级班级组组 成成学生学生1n1:n联系联系2024/7/29数据库基础知识(补充)66两个实体型之间的联系两个实体型之间的联系 (续续)n多对多联系(多对多联系(m:n)n实例:实例: 课程与学生之间的联系:课程与学

44、生之间的联系: 一门课程同时有若干个学生选修一门课程同时有若干个学生选修 一个学生可以同时选修多门课程一个学生可以同时选修多门课程n定定义义:如如果果对对于于实实体体集集A中中的的每每一一个个实实体体,实实体体集集B中中有有n个个实实体体(n0)与与之之联联系系;反反之之,对对于于实实体体集集B中中的的每每一一个个实实体体,实实体体集集A中中也也有有m个个实实体体(m0)与与之之联联系系,则则称称实实体体集集A与与实实体体B具具有有多多对多联系,记为对多联系,记为m:n课程课程选修选修学生学生mnm:n联系联系2024/7/29数据库基础知识(补充)67两个以上实体型之间的联系两个以上实体型之

45、间的联系n两个以上实体型之间一对多联系两个以上实体型之间一对多联系n实例实例 课程、教师与参考书三个实体型课程、教师与参考书三个实体型一门课程可以有若干个教师讲授一门课程可以有若干个教师讲授,使用若干本参考书,使用若干本参考书,每一个教师只讲授一门课程,每一个教师只讲授一门课程,每一本参考书只供一门课程使用每一本参考书只供一门课程使用课程课程讲授讲授教师教师1m两个以上实体型间两个以上实体型间1:n联系联系参考书参考书n2024/7/29数据库基础知识(补充)68两个以上实体型之间的联系两个以上实体型之间的联系(续续)n两个以上实体型间的多对多联系两个以上实体型间的多对多联系n实例 供应商、项

46、目、零件三个实体型供应商、项目、零件三个实体型一一个供应商可以供给多个项目多个供应商可以供给多个项目多种零件种零件;每个项目可以使用多个每个项目可以使用多个供应商供应的零件供应商供应的零件;每种零件可每种零件可由不同供应商供给由不同供应商供给供应商供应商供应供应项目项目mp两个以上实体型间两个以上实体型间m:n联系联系零件零件n2024/7/29数据库基础知识(补充)69单个实体型内的联系单个实体型内的联系n同一实体集内的各实体之间的关系同一实体集内的各实体之间的关系n一对多联系一对多联系n实例实例职工实体型内部具有领导与被领导的联系职工实体型内部具有领导与被领导的联系某一职工(干部)某一职工

47、(干部)“领导领导”若干名职工若干名职工一个职工仅被另外一个职工直接领导一个职工仅被另外一个职工直接领导这是一对多的联系这是一对多的联系职工职工领导领导1n单个实体型内部单个实体型内部1:n联系联系2024/7/29数据库基础知识(补充)70概念模型的一种表示方法概念模型的一种表示方法n实体联系方法实体联系方法(E-R方法方法)n用用E-R图来描述现实世界的概念模型图来描述现实世界的概念模型nE-R方法也称为方法也称为E-R模型模型2024/7/29数据库基础知识(补充)71E-R图图n实体型实体型用用矩形矩形表示,矩形框内写明实体名。表示,矩形框内写明实体名。n属性属性用用椭圆椭圆形表示,并

48、用形表示,并用无向边无向边将其与相应的实体连起来将其与相应的实体连起来n联系联系n用用菱形菱形表示,菱形框内写明表示,菱形框内写明联系名联系名,并用,并用无向边无向边分分别与有关实体连接起来,同时在无向边旁标上别与有关实体连接起来,同时在无向边旁标上联系联系的类型的类型(1:1、1:n或或m:n)学生学生教师教师学生学生学号学号年龄年龄性别性别姓名姓名2024/7/29数据库基础知识(补充)72联系的表示方法联系的表示方法实体型实体型A联系名联系名实体型实体型B111:1联系联系实体型实体型A联系名联系名1n1:n联系联系实体型实体型A实体型实体型B联系名联系名mnm:n联系联系实体型实体型B

49、2024/7/29数据库基础知识(补充)73联系的表示方法示例联系的表示方法示例班级班级任职任职班长班长111:1联系联系课程课程选修选修学生学生mnm:n联系联系班级班级组成组成学生学生1n1:n联系联系2024/7/29数据库基础知识(补充)74联系的属性联系的属性课程课程选修选修学生学生mn成绩成绩联系的属性联系的属性:联系本身也是一种实体型,联系本身也是一种实体型,也可以有属性。如果一个联也可以有属性。如果一个联系具有属性,则这些属性也系具有属性,则这些属性也要用无向边与该联系连接起要用无向边与该联系连接起来来 2024/7/29数据库基础知识(补充)75第一章第一章 数据库基础知识数

50、据库基础知识1.3 数据库系统模型数据库系统模型 1.3.1 两类数据模型两类数据模型 1.3.2 三个世界的划分及其相关概念三个世界的划分及其相关概念 1.3.3 概念模型表示方法概念模型表示方法-E-R图图 1.3.4 数据模型数据模型 2024/7/29数据库基础知识(补充)76最常用的数据模型最常用的数据模型n非关系模型非关系模型n层次模型层次模型(Hierarchical Model)n网状模型网状模型(Network Model)n关系模型关系模型(Relational Model) n面向对象模型面向对象模型(Object Oriented Model)n对象关系模型对象关系模型

51、(Object Relational Model)2024/7/29数据库基础知识(补充)77层次模型层次模型n层次模型是数据库系统中最早出现的数据模型层次模型是数据库系统中最早出现的数据模型 n层次数据库系统的典型代表是层次数据库系统的典型代表是IBM公司的公司的IMS(Information Management System)数据库管理系统)数据库管理系统n层次模型用层次模型用树形结构树形结构来表示各类实体以及实体间的联系来表示各类实体以及实体间的联系 2024/7/29数据库基础知识(补充)78层次数据模型的数据结构层次数据模型的数据结构n层次模型层次模型 满足下面两个条件的基本层次联

52、系的集合为层次模型满足下面两个条件的基本层次联系的集合为层次模型1. 有且只有一个结点没有双亲结点,这个结点称为根结点有且只有一个结点没有双亲结点,这个结点称为根结点2. 根以外的其它结点有且只有一个双亲结点根以外的其它结点有且只有一个双亲结点n层次模型中的几个术语层次模型中的几个术语n根结点,双亲结点,兄弟结点,叶结点根结点,双亲结点,兄弟结点,叶结点2024/7/29数据库基础知识(补充)79层次数据模型的数据结构层次数据模型的数据结构(续续) 1 根结点根结点 2 兄弟结点兄弟结点 3 叶结点叶结点 4 兄弟结点兄弟结点 5 叶结点叶结点 叶结点叶结点一个层次模型的示例一个层次模型的示例

53、2024/7/29数据库基础知识(补充)80层次数据模型的数据结构层次数据模型的数据结构(续续)n层次模型的特点:层次模型的特点:n结点的双亲是唯一的结点的双亲是唯一的n只能直接处理一对多的实体联系只能直接处理一对多的实体联系n每个记录类型可以定义一个排序字段,也称为码字段每个记录类型可以定义一个排序字段,也称为码字段n任何记录值只有按其路径查看时,才能显出它的全部意义任何记录值只有按其路径查看时,才能显出它的全部意义n没有一个子女记录值能够脱离双亲记录值而独立存在没有一个子女记录值能够脱离双亲记录值而独立存在2024/7/29数据库基础知识(补充)81层次数据模型的数据结构层次数据模型的数据

54、结构(续续)教员学生层次数据库模型教员学生层次数据库模型 根结点根结点记录型系的子女结点记录型系的子女结点记录型教员的双亲结记录型教员的双亲结点点叶结点叶结点叶结点叶结点字段字段2024/7/29数据库基础知识(补充)82层次数据模型的数据结构层次数据模型的数据结构(续续)教员学生层次数据库的一个值教员学生层次数据库的一个值 2024/7/29数据库基础知识(补充)83多对多联系在层次模型中的表示多对多联系在层次模型中的表示n多对多联系在层次模型中的表示多对多联系在层次模型中的表示n用层次模型用层次模型间接间接表示多对多联系表示多对多联系n方法方法将多对多联系将多对多联系分解分解成一对多联系成

55、一对多联系n分解方法分解方法n冗余结点法冗余结点法n虚拟结点法虚拟结点法2024/7/29数据库基础知识(补充)84层次模型的数据操纵与完整性约束层次模型的数据操纵与完整性约束 n层次模型的数据操纵层次模型的数据操纵n查询查询n插入插入n删除删除n更新更新n层次模型的完整性约束条件层次模型的完整性约束条件 n无相应的双亲结点值就不能插入子女结点值无相应的双亲结点值就不能插入子女结点值n如果删除双亲结点值,则相应的子女结点值也被同时如果删除双亲结点值,则相应的子女结点值也被同时删除删除n更新操作时,应更新所有相应记录,以保证数据的一更新操作时,应更新所有相应记录,以保证数据的一致性致性 2024

56、/7/29数据库基础知识(补充)85层次数据模型的存储结构层次数据模型的存储结构n邻接法邻接法n按照层次树前序遍历的顺序把所有记录值依次邻接按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序存放,即通过物理空间的位置相邻来实现层次顺序层次数据库及其实例层次数据库及其实例 A2C8C6C4B6C9C2B4C14C7C5C3B1A1邻接法邻接法 按邻接法存放下图中以根记录按邻接法存放下图中以根记录A1为首的层次记录实例集为首的层次记录实例集 2024/7/29数据库基础知识(补充)86层次数据模型的存储结构(续)层次数据模型的存储结构(续)n链接法链接法n用指

57、引来反映数据之间的层次联系用指引来反映数据之间的层次联系n子女兄弟链接法子女兄弟链接法n层次序列链接法层次序列链接法2024/7/29数据库基础知识(补充)87层次数据模型的存储结构(续)层次数据模型的存储结构(续)子女子女-兄弟链接法兄弟链接法每个记录设两类指针,分别指向最左边的子女(每个记录每个记录设两类指针,分别指向最左边的子女(每个记录型对应一个)和最近的兄弟型对应一个)和最近的兄弟2024/7/29数据库基础知识(补充)88层次数据模型的存储结构(续)n层次序列链接法层次序列链接法按树的前序穿越顺序链接各记录值按树的前序穿越顺序链接各记录值2024/7/29数据库基础知识(补充)89

58、层次模型的优缺点层次模型的优缺点n优点优点n层次模型的数据结构比较简单清晰层次模型的数据结构比较简单清晰 n查询效率高,性能优于关系模型,不低于网状模型查询效率高,性能优于关系模型,不低于网状模型n层次数据模型提供了良好的完整性支持层次数据模型提供了良好的完整性支持n缺点缺点n多对多联系表示不自然多对多联系表示不自然n对插入和删除操作的限制多,应用程序的编写比较复杂对插入和删除操作的限制多,应用程序的编写比较复杂 n查询子女结点必须通过双亲结点查询子女结点必须通过双亲结点n由于结构严密,层次命令趋于程序化由于结构严密,层次命令趋于程序化 2024/7/29数据库基础知识(补充)90网状模型网状

59、模型n网状数据库系统采用网状数据库系统采用网状模型网状模型作为数据的组织方式作为数据的组织方式 n典型代表是典型代表是DBTG系统系统:n亦称亦称CODASYL系统系统n70年代由年代由DBTG提出的一个系统方案提出的一个系统方案n奠定了数据库系统的基本概念、方法和技术奠定了数据库系统的基本概念、方法和技术n实际系统实际系统nCullinet Software Inc.公司的公司的 IDMSnUnivac公司的公司的 DMS1100nHoneywell公司的公司的IDS/2nHP公司的公司的IMAGE2024/7/29数据库基础知识(补充)91网状数据模型的数据结构网状数据模型的数据结构n网状

60、模型网状模型满足下面两个条件的基本层次联系的集合:满足下面两个条件的基本层次联系的集合:1. 允许一个以上的结点无双亲;允许一个以上的结点无双亲;2. 一个结点可以有多于一个的双亲一个结点可以有多于一个的双亲。n表示方法表示方法(与层次数据模型相同与层次数据模型相同)实体型实体型:用记录类型描述,:用记录类型描述, 每个结点表示一个记录类型(实体)每个结点表示一个记录类型(实体)属性属性:用字段描述,每个记录类型可包含若干个字段:用字段描述,每个记录类型可包含若干个字段联联系系:用用结结点点之之间间的的连连线线表表示示记记录录类类型型(实实体体)之之间间的的一对多的父子联系一对多的父子联系20

61、24/7/29数据库基础知识(补充)92网状数据模型的数据结构(续)网状数据模型的数据结构(续)n网状模型与层次模型的区别网状模型与层次模型的区别n网状模型允许多个结点没有双亲结点网状模型允许多个结点没有双亲结点n网状模型允许结点有多个双亲结点网状模型允许结点有多个双亲结点n网状模型允许两个结点之间有多种联系(复合联网状模型允许两个结点之间有多种联系(复合联系)系)n网状模型可以更直接地去描述现实世界网状模型可以更直接地去描述现实世界n层次模型实际上是网状模型的一个特例层次模型实际上是网状模型的一个特例2024/7/29数据库基础知识(补充)93网状数据模型的数据结构(续)网状数据模型的数据结

62、构(续)v 网状模型中子女结点与双亲结点的联系可以不唯一网状模型中子女结点与双亲结点的联系可以不唯一要为每个联系命名,并指出与该联系有关的双亲记录和要为每个联系命名,并指出与该联系有关的双亲记录和子女记录子女记录 R1与与R3之之间的联间的联系系L1R2与与R3之间之间的联的联系系L2 2024/7/29数据库基础知识(补充)94网状数据模型的数据结构(续)网状数据模型的数据结构(续)网状模型的例子网状模型的例子 2024/7/29数据库基础知识(补充)95网状数据模型的数据结构(续)网状数据模型的数据结构(续)n多对多联系在网状模型中的表示多对多联系在网状模型中的表示n用网状模型用网状模型间

63、接间接表示多对多联系表示多对多联系n方法:方法:将多对多联系将多对多联系直接直接分解成一对多联系分解成一对多联系n例如例如:一个学生可以选修若干门课程,某一课程可:一个学生可以选修若干门课程,某一课程可以被多个学生选修,学生与课程之间是多对多联系以被多个学生选修,学生与课程之间是多对多联系 引进一个学生选课的联结记录,由引进一个学生选课的联结记录,由3个数据项组成个数据项组成学号、课程号、成绩学号、课程号、成绩 表示某个学生选修某一门课程及其成绩表示某个学生选修某一门课程及其成绩2024/7/29数据库基础知识(补充)96网状数据模型的数据结构(续)网状数据模型的数据结构(续)学生学生/选课选

64、课/课程的网状数据模型课程的网状数据模型 2024/7/29数据库基础知识(补充)97网状数据模型的操纵与完整性约束(续)网状数据模型的操纵与完整性约束(续)n网状数据库系统(如网状数据库系统(如DBTG)对数据操纵加了一些)对数据操纵加了一些 限制,提供了一定的完整性约束。限制,提供了一定的完整性约束。n码码:唯一标识记录的数据项的集合:唯一标识记录的数据项的集合 n一个联系中双亲记录与子女记录之间是一对多联系一个联系中双亲记录与子女记录之间是一对多联系n支持双亲记录和子女记录之间某些约束条件支持双亲记录和子女记录之间某些约束条件 2024/7/29数据库基础知识(补充)98网状数据模型的存

65、储结构网状数据模型的存储结构n关键关键n实现记录之间的联系实现记录之间的联系n常用方法常用方法n单向链接单向链接n双向链接双向链接n环状链接环状链接n向首链接向首链接2024/7/29数据库基础知识(补充)网状数据模型的存储结构(续)网状数据模型的存储结构(续)学生学生/选课选课/课程的网状数据库实例课程的网状数据库实例 学生记录学生记录课程记录课程记录选课记录选课记录100网状数据模型的优缺点网状数据模型的优缺点n优点优点n能能够够更更为为直直接接地地描描述述现现实实世世界界,如如一一个个结结点点可可以有多个双亲以有多个双亲n具有良好的性能,存取效率较高具有良好的性能,存取效率较高n缺点缺点

66、n结构比较复杂,而且随着应用环境的扩大,数据库结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握的结构就变得越来越复杂,不利于最终用户掌握nDDL、DML语言复杂,用户不容易使用语言复杂,用户不容易使用2024/7/29数据库基础知识(补充)101关系模型关系模型n关系数据库系统采用关系模型作为数据的组织方式关系数据库系统采用关系模型作为数据的组织方式 n1970年美国年美国IBM公司公司San Jose研究室的研究员研究室的研究员E.F.Codd首次提出了数据库系统的关系模型首次提出了数据库系统的关系模型 n计算机厂商新推出的数据库管理系统几乎都支持关系计

67、算机厂商新推出的数据库管理系统几乎都支持关系模型模型 2024/7/29数据库基础知识(补充)102关系数据模型的数据结构关系数据模型的数据结构 n在在用用户户观观点点下下,关关系系模模型型中中数数据据的的逻逻辑辑结结构构是是一一张张二二维维表表,它由行和列组成。它由行和列组成。学 号姓 名年 龄性 别系 名年 级王小明19女社会学2005黄大鹏20男商品学2005张文斌18女法律2005学生登记表学生登记表属性属性元组元组2024/7/29数据库基础知识(补充)103关系数据模型的数据结构(续)关系数据模型的数据结构(续)n关系关系(Relation) 一个关系对应通常说的一张表一个关系对应

68、通常说的一张表n元组元组(Tuple) 表中的一行即为一个元组表中的一行即为一个元组n属属性性(Attribute)表表中中的的一一列列即即为为一一个个属属性性,给给每每一个属性起一个名称即属性名一个属性起一个名称即属性名2024/7/29数据库基础知识(补充)104关系数据模型的数据结构(续)关系数据模型的数据结构(续)n主码主码(Key)表中的某个属性组,它可以唯一确定一个元组。表中的某个属性组,它可以唯一确定一个元组。n域域(Domain)属性的取值范围。属性的取值范围。n分量分量元组中的一个属性值。元组中的一个属性值。n关系模式关系模式对关系的描述对关系的描述关系名(属性关系名(属性1

69、,属性,属性2,属性,属性n)学生(学号,姓名,年龄,性别,系,年级)学生(学号,姓名,年龄,性别,系,年级)2024/7/29数据库基础知识(补充)105关系数据模型的数据结构(续)关系数据模型的数据结构(续)n关系必须是关系必须是规范化规范化的,满足一定的规范条件的,满足一定的规范条件最最基基本本的的规规范范条条件件:关关系系的的每每一一个个分分量量必必须须是是一一个个不不可可分分的的数据项数据项, 不允许表中还有表不允许表中还有表 下图中工资和班号是可分的数据项下图中工资和班号是可分的数据项 ,不符合关系模型要求不符合关系模型要求 一个工资表一个工资表(表中有表表中有表)实例实例 202

70、4/7/29数据库基础知识(补充)106关系数据模型的数据结构(续)关系数据模型的数据结构(续)关系术语关系术语一般表格的术语一般表格的术语关系名关系名表名表名关系模式关系模式表头(表格的描述)表头(表格的描述)关系关系(一张)二维表(一张)二维表元组元组记录或行记录或行属性属性列列属性名属性名列名列名属性值属性值列值列值分量分量一条记录中的一个列值一条记录中的一个列值非规范关系非规范关系表中有表(大表中嵌有小表)表中有表(大表中嵌有小表)表表1.2 术语对比术语对比 2024/7/29数据库基础知识(补充)107关系数据模型的优缺点关系数据模型的优缺点n优点优点n建立在严格的建立在严格的数学

71、概念数学概念的基础上的基础上n概念单一概念单一n实实体体和和各各类类联联系系都都用用关关系系来来表表示示n对数据的检索结果也是关系对数据的检索结果也是关系n关系模型的存取路径对用户透明关系模型的存取路径对用户透明n具具有有更更高高的的数数据据独独立立性性,更更好好的安全保密性的安全保密性n简简化化了了程程序序员员的的工工作作和和数数据据库库开发建立的工作开发建立的工作n缺点缺点n存存取取路路径径对对用用户户透透明明导导致致查查询询效效率率往往往往不不如如非非关关系系数数据据模型模型n为为提提高高性性能能,必必须须对对用用户户的的查查询询请请求求进进行行优优化化增增加加了了开开发发DBMS的难度

72、的难度2024/7/29数据库基础知识(补充)108第一章第一章 数据库基础知识数据库基础知识1.4 关系数据库关系数据库 1.4.1 关系数据库中的概念关系数据库中的概念 1.4.2 关系数据库基本运算关系数据库基本运算 1.4.3 关系模型规范化关系模型规范化 2024/7/29数据库基础知识(补充) 关系数据库关系数据库 关系数据库关系数据库是建立在是建立在关系模型关系模型基础上的数据库,是利基础上的数据库,是利用数据库进行数据组织的一种方式,是现代流行的数据用数据库进行数据组织的一种方式,是现代流行的数据库管理系统中应用最为普遍的一种,也是最有效率的数库管理系统中应用最为普遍的一种,也

73、是最有效率的数据组织方式之一。据组织方式之一。 需要熟悉:需要熟悉: 1)1)关系数据库的有关术语关系数据库的有关术语( (P11P11) ) 2) 2)关系数据库基本运算关系数据库基本运算( (P12-P15P12-P15) ) 3) 3)关系模型规范化(关系模型规范化(P15-P17P15-P17)2024/7/29109数据库基础知识(补充)关系数据库的有关术语关系数据库的有关术语关系关系一个关系对应一张二维表。一个关系对应一张二维表。记录记录/ /元组元组表中的一行。表中的一行。字段字段/ /属性属性表中的一列。表中的一列。域域属性的取值范围。属性的取值范围。例如:例如:性别的域是性别

74、的域是( (男,女男,女) )分量分量元组中的某一个属性的属性值。元组中的某一个属性的属性值。关系模式关系模式对关系的描述,一般表示为:关系名对关系的描述,一般表示为:关系名( (属性属性1 1,属性,属性2 2,) )。例如:教师例如:教师( (编号,姓名,性别,职称编号,姓名,性别,职称) )关键字或码关键字或码在关系的属性中,能够用来唯一标识元组的属性在关系的属性中,能够用来唯一标识元组的属性( (或或属性组合属性组合) )。例如:编号例如:编号就是就是关键字关键字。2024/7/29110数据库基础知识(补充)关系数据库的有关术语关系数据库的有关术语( (P11P11) )候选码候选码

75、如果一个关系中,存在着多个属性如果一个关系中,存在着多个属性( (或属性的组合或属性的组合) )都能都能用来唯一标识该关系的元组,这些属性或属性的组合都用来唯一标识该关系的元组,这些属性或属性的组合都称为该关系的候选码。称为该关系的候选码。候选码可以有多个。候选码可以有多个。主码主码若一个关系中存在若干个候选码,则从中指定为关键字若一个关系中存在若干个候选码,则从中指定为关键字的属性的属性( (或属性组合或属性组合) )称为该关系的主码。称为该关系的主码。公共码公共码 两个关系中具有相容或相同的属性或属性组。两个关系中具有相容或相同的属性或属性组。外码外码当关系中的某个属性或属性组合虽不是该关

76、系的码或只当关系中的某个属性或属性组合虽不是该关系的码或只是码的一部分,但却是另一个关系的码时,称该属性或是码的一部分,但却是另一个关系的码时,称该属性或属性组合为这个关系的外码。属性组合为这个关系的外码。2024/7/29111数据库基础知识(补充)侯选关键字侯选关键字(candidate key)-侯选码侯选码n若关系中的某一属性若关系中的某一属性(属性组合属性组合) 能唯一地标识一个元组,能唯一地标识一个元组,则称为侯则称为侯选关键字选关键字(候选码候选码)。主关键字主关键字(primary key)-主主码码n在设计数据库时,我们选择某个侯选关键字作为主关键字。在设计数据库时,我们选择

77、某个侯选关键字作为主关键字。n一张表只有一个主关键字,主关键字可以由一个或多个属性一张表只有一个主关键字,主关键字可以由一个或多个属性组合而成。组合而成。n在表示表结构时,在主关键字下加下划线。如:学生信息表在表示表结构时,在主关键字下加下划线。如:学生信息表(学号学号,姓名,性别,姓名,性别)113数据库基础知识(补充)学生信息表学生信息表( (学号,姓名,专业名,性别,出生时间,总学分学号,姓名,专业名,性别,出生时间,总学分) )课程信息表课程信息表( (课程号,课程名,类别,开课学期,学时,学分课程号,课程名,类别,开课学期,学时,学分) )成绩表成绩表( (学号,课程号,成绩学号,课

78、程号,成绩) )2024/7/29114数据库基础知识(补充)外关键字外关键字(foreign key)外码外码n外键由一个属性或多个属性组成,它不是当前所在表的主外键由一个属性或多个属性组成,它不是当前所在表的主关键字,而是另一张表的主关键字。关键字,而是另一张表的主关键字。出版社信息出版社信息( (出版社编号出版社编号, ,出版社名称出版社名称, ,所在城市所在城市, ,出版社电话出版社电话) )图书明细图书明细( (图书编号图书编号, ,图书名称,作者,图书名称,作者,出版社编号出版社编号,定价定价) )2024/7/29115数据库基础知识(补充)强制关键字强制关键字 每当主关键字较大

79、或难处理时,就人为在表中加入作为每当主关键字较大或难处理时,就人为在表中加入作为主关键字的一列。主关键字的一列。DBMS在每行产生时给强制关键字赋一个在每行产生时给强制关键字赋一个唯一的值。唯一的值。住址表住址表( (国家,省,市,街道国家,省,市,街道, ,门牌号门牌号) )住址表住址表( (住址住址IDID, ,国家,省,市,街道国家,省,市,街道, ,门牌号门牌号) )2024/7/29116数据库基础知识(补充)关系的特点关系的特点 列是同质的(列是同质的(Homogeneous),即每一列都是同一类型即每一列都是同一类型的数据,来自同一个域的数据,来自同一个域 不同的列可出自同一个域

80、不同的列可出自同一个域n其中的每一列称为一个属性其中的每一列称为一个属性n不同的属性要给予不同的属性名不同的属性要给予不同的属性名 列的顺序无所谓,列的次序可以任意交换列的顺序无所谓,列的次序可以任意交换 任意两个元组的候选码不能相同任意两个元组的候选码不能相同 行的顺序无所谓,行的次序可以任意交换行的顺序无所谓,行的次序可以任意交换 分量必须取原子值,分量必须取原子值,这是规范条件中这是规范条件中最基本最基本的一条的一条117数据库基础知识(补充)关系的完整性关系的完整性n实体完整性n参照完整性n用户定义完整性实体完整性规则实体完整性规则n关系的主关键字不能是空值n空值(null)是指“不知

81、道”或“不存在”的值,与数据0和空字符串的意义都不一样n例如:n学生(学号、姓名、性别、出生日期、照片)n课程(课程编号、课程名称、学分、先行课程)n成绩(学号、课程号、成绩)参照完整性参照完整性n若属性若属性K是关系是关系R1的主键,的主键,K同时也是关系同时也是关系R2的外键,的外键,则在则在R2中,中,K的取值只能等于的取值只能等于R1中中K的值或为空值。的值或为空值。即不允许引用不存在的实体。也可理解为即不允许引用不存在的实体。也可理解为R2中的中的K必必须参照须参照R1中的中的K取值。取值。主外键约束主外键约束!参照完整性参照完整性专业专业(专业号专业号、专业名、专业名)学生学生 (

82、学号学号、姓名、性别、年龄、姓名、性别、年龄、专业号专业号)学生学生.专业号专业号必须引用必须引用(参照参照)专业专业.专业号专业号即即:学生学生.专业号要么在专业专业号要么在专业.专业号中出专业号中出现,要么为空值。现,要么为空值。参照完整性参照完整性选修选修(学号学号、课程号课程号、成绩、成绩)课程课程(课程号课程号、课程名、学分、课程名、学分、先行课程先行课程)学生学生 (学号学号、姓名、性别、年龄、专业号、姓名、性别、年龄、专业号)选修.课程号能为空吗?学生学生学生选课学生选课课程课程先行课程先行课程0404用户定义完整性用户定义完整性n用用户户定定义义的的完完整整性性是是针针对对某某

83、一一具具体体关关系系数数据据库库的的约约束束条条件件,反反映映某某一一具具体体应应用用所所涉涉及及的的数数据据必必须须满满足足的的语语义义要要求。求。n关关系系模模型型应应提提供供定定义义和和检检验验这这类类完完整整性性的的机机制制,以以便便用用统统一一的的系系统统的的方方法法处处理理它它们们,而而不不要要由由应应用用程程序序承承担担这这一功能。一功能。用户定义完整性用户定义完整性n课程课程(课程号课程号,课程名,学分,课程名,学分)n“课程名课程名”属性必须取唯一值属性必须取唯一值n非主属性非主属性“课程名课程名”也不能取空值也不能取空值n“学分学分”属性只能取值属性只能取值1,2,3,41

84、27第一章第一章 数据库基础知识数据库基础知识1.4 关系数据库关系数据库 1.4.1 关系数据库中的概念关系数据库中的概念 1.4.2 关系数据库基本运算关系数据库基本运算 1.4.3 关系模型规范化关系模型规范化 2024/7/29数据库基础知识(补充)基本运算基本运算n基本的关系运算基本的关系运算有五种有五种n选择、投影、并、差和笛卡儿积选择、投影、并、差和笛卡儿积n其中并、差和笛卡儿积是传统的集合运算其中并、差和笛卡儿积是传统的集合运算n选择和投影是为了满足数据库查询需要而选择和投影是为了满足数据库查询需要而引进的运算引进的运算n这些运算之所以称为基本的,因为其中任何这些运算之所以称为

85、基本的,因为其中任何运算都不能用其他运算表示运算都不能用其他运算表示1282024/7/29数据库基础知识(补充)基本运算基本运算( (续续) )n1. 选择运算运算n选择是一元运算,它从是一元运算,它从给定的关系中定的关系中选取取满足一定条件的元足一定条件的元组n设R是一个关系,是一个关系,F是一个公式,涉及是一个公式,涉及(1) 运算运算对象,它象,它们是常量或属性名是常量或属性名(2) 算算术比比较运算符运算符 、 、 、 、 和和 (3) 逻辑运算符运算符 、 和和 1292024/7/29数据库基础知识(补充)130基本运算基本运算( (续续) )n选择 F(R)是是R中使得公式中使

86、得公式F为真的元真的元组t的集合的集合n元元组t使得公式使得公式F为真意指当我真意指当我们将将F中所有中所有的属性名用的属性名用t的的对应属性属性值替替换时,公式,公式F为真真n用用F(t)表示元表示元组t使得公式使得公式F为真,真,则 F(R) = t | t R F(t)n注意:注意:选择的的结果形成一个果形成一个新的关系新的关系,它,它与与R具具有相同的属性有相同的属性2024/7/29数据库基础知识(补充)131基本运算基本运算( (续续) )n选择是行运算,它从表中是行运算,它从表中选择满足足给定条件的行定条件的行n图2.5图示了一个示了一个选择操作操作 B=b (R)ABCABCa

87、bCacbbcddAfcBdaDc 选择操作B=”b”(R)数据库基础知识(补充)132基本运算基本运算( (续续) )n2. 投影运算投影运算n投影也是一元运算,它基于投影也是一元运算,它基于这样的想法:的想法:n给定一个关系定一个关系R,去掉其中一些属性,重,去掉其中一些属性,重新排列剩下的属性,形成一个新关系新排列剩下的属性,形成一个新关系n设R是一个是一个n元关系,元关系,A1, , Ak(k n)都)都是是R的属性的属性2024/7/29数据库基础知识(补充)133基本运算基本运算( (续续) )n关系关系R在属性在属性A1, , Ak上的上的投影投影记作作 A1, , Ak(R),

88、它是,它是满足如下条件的足如下条件的k-元元组(a1, , ak)的集合:的集合:n存在存在R中的元中的元组u,对于于1 i k,u在属性在属性Ai上的上的值等于等于ai。设u是是R的元的元组, A1, , Ak表表示示u在属性在属性A1, , Ak上的上的值形成的形成的k元元组,则 A1, , Ak(R) = t | ( u) (u R t=uA1, , Ak) 2024/7/29数据库基础知识(补充)134基本运算基本运算( (续续) )n投影是投影是列运算列运算,它从表中,它从表中删除某些列,但除某些列,但它可能它可能导致致删除运算除运算结果的重复行果的重复行。右。右图显示了一个投影运示

89、了一个投影运算算 A,C(R)的的结果,其中重复行已果,其中重复行已经删除除 ABCACadcababdcfdc A,C(R)adccfd(a) 关系R (b) 投影操作A,C(R)2024/7/29数据库基础知识(补充)数据库基础知识(补充)135基本运算基本运算( (续续) )n3. 并运算并运算n并和差都是并和差都是传统的的集合运算集合运算,只要求参与运算的两,只要求参与运算的两个关系具有相同的元,个关系具有相同的元,对应分量取自相同的域分量取自相同的域n不失一般性,假定参与并和差运算的两个关系具有不失一般性,假定参与并和差运算的两个关系具有相同的属性相同的属性n设R和和S是具有相同属性

90、的关系。关系是具有相同属性的关系。关系R和和S的的并并记作作R S,它是属于,它是属于R,或属于,或属于S,或属于二者,或属于二者的所有元的所有元组的集合的集合n采用集合采用集合论的的记号,有号,有R S = t | t R t S 2024/7/29R S R S基本运算基本运算( (续续) )137基本运算基本运算( (续续) )n4. 差运算差运算n设R和和S是具有相同属性的关系。关系是具有相同属性的关系。关系R和和S的的差差记作作R S,它是属于,它是属于R但不属于但不属于S的所的所有元有元组的集合的集合n采用集合采用集合论的的记号,有号,有R S = t | t R t S2024/

91、7/29数据库基础知识(补充)R S R-S基本运算基本运算( (续续) )139基本运算基本运算( (续续) )n5. (广(广义)笛卡儿)笛卡儿积运算运算n设R和和S分分别为n元和元和m元关系。元关系。R和和S的的(广(广义)笛卡儿笛卡儿积记作作R S,它是一个,它是一个(n+m)-元关系,其元关系,其每个元每个元组的前的前n个分量是关系个分量是关系R的一个元的一个元组,后,后m个分量是关系个分量是关系S的一个元的一个元组2024/7/29数据库基础知识(补充)140基本运算基本运算( (续续) )n注意:注意:R S的前的前n个属性来自个属性来自R,后,后m个属性来自个属性来自S。如果属

92、性。如果属性A同同时出出现在在R和和S中,中,则R S中分中分别用用R.A和和S.A表示表示n设u = (u1, , un),v = (v1, , vm),u和和v的串接的串接记作作uv ,定,定义为uv= (u1, , un, v1, , vm)n于是于是R S = t | ( u) ( v) (u R v S t = uv2024/7/29数据库基础知识(补充)笛卡尔积笛卡尔积 例子例子关系关系 r, s:r s:AB 12AB 11112222CD 1010201010102010EaabbaabbCD 10102010Eaabbrs150第一章第一章 数据库基础知识数据库基础知识1.4

93、 关系数据库关系数据库 1.4.1 关系数据库中的概念关系数据库中的概念 1.4.2 关系数据库基本运算关系数据库基本运算 1.4.3 关系模型规范化关系模型规范化 2024/7/29数据库基础知识(补充)假设有一个假设有一个关系模式关系模式: 学生学生- -选修选修- -课程课程( (学号,姓名,性别,出生日期,入学时间,学号,姓名,性别,出生日期,入学时间,系部代码,课程号,课程名,学时数,学分,成绩系部代码,课程号,课程名,学时数,学分,成绩) )问题的提出问题的提出上述关系模式可能存在以下问题:上述关系模式可能存在以下问题:1)1)数据冗余数据冗余2)2)修改异常修改异常3)3)插入异

94、常插入异常4)4)删除异常删除异常151数据库基础知识(补充) 学生学生- -选修选修- -课程课程( (学号,姓名,性别,出生日期,入学时间,学号,姓名,性别,出生日期,入学时间, 系部代码,课程号,课程名,学时数,学分,成绩系部代码,课程号,课程名,学时数,学分,成绩) )问题1:数据冗余:数据冗余 如果学生选修多门课程时,则每选一门课程就必须如果学生选修多门课程时,则每选一门课程就必须存储、一次学生信息的细节,当一门课程被多个学生选存储、一次学生信息的细节,当一门课程被多个学生选学时,也必须多次存储课程的细节,这样就有很多学时,也必须多次存储课程的细节,这样就有很多数据数据冗余冗余。20

95、24/7/29152数据库基础知识(补充) 学生学生- -选修选修- -课程课程( (学号,姓名,性别,出生日期,入学时间,学号,姓名,性别,出生日期,入学时间, 系部代码,课程号,课程名,学时数,学分,成绩系部代码,课程号,课程名,学时数,学分,成绩) )问题2:插入异常:插入异常 当需要增加一门新课程,而这门课程还没有被学生选当需要增加一门新课程,而这门课程还没有被学生选学时,则该课程不能进入数据库中。因为在关系模式中,学时,则该课程不能进入数据库中。因为在关系模式中,( (学号,课程号学号,课程号) )是主码,此时学号为空,数据库系统会根是主码,此时学号为空,数据库系统会根据实体完整性约

96、束规则拒绝该元组的插入。据实体完整性约束规则拒绝该元组的插入。2024/7/29153数据库基础知识(补充) 学生学生- -选修选修- -课程课程( (学号,姓名,性别,出生日期,入学时间,学号,姓名,性别,出生日期,入学时间, 系部代码,课程号,课程名,学时数,学分,成绩系部代码,课程号,课程名,学时数,学分,成绩) )问题3:修改异常:修改异常 由于数据冗余,当修改某些数据项由于数据冗余,当修改某些数据项( (例如姓名例如姓名) )时,可时,可能有一部分有关元组被修改,而另一部分元组却没有被修能有一部分有关元组被修改,而另一部分元组却没有被修改。改。2024/7/29154数据库基础知识(

97、补充) 学生学生- -选修选修- -课程课程( (学号,姓名,性别,出生日期,入学时间,学号,姓名,性别,出生日期,入学时间, 系部代码,课程号,课程名,学时数,学分,成绩系部代码,课程号,课程名,学时数,学分,成绩) )问题4:删除异常除异常 如果某个学生的选修记录都被删除了,那么,此学生如果某个学生的选修记录都被删除了,那么,此学生的基本信息也一起被删除了,这样我们就无法找到这个学的基本信息也一起被删除了,这样我们就无法找到这个学生的任何信息了。生的任何信息了。2024/7/29155数据库基础知识(补充)(1)(1)概念:概念:关系数据库中的关系必须满足一定的要求,满足关系数据库中的关系

98、必须满足一定的要求,满足 特定要求的模式称为特定要求的模式称为关系范式关系范式。(2)(2)关系模式的规范化:关系模式的规范化:将一个低一级范式的关系模式,通将一个低一级范式的关系模式,通过模式分解转化为若干个高一级范式的关系模式集合的过模式分解转化为若干个高一级范式的关系模式集合的过程。过程。1NF 1NF 2NF 2NF 3NF 3NF BCNF BCNF 4NF 4NF 5 5NFNF关系范式关系范式2024/7/29156数据库基础知识(补充)n第一范式第一范式(1NF)(1)(1)概念:概念:如果关系如果关系R R的所有属性都是不可再分的数据项,则称的所有属性都是不可再分的数据项,则

99、称R R是属于第一范式。是属于第一范式。(2)(2)非规范化关系:非规范化关系:不满足第一范式而不能被关系数据库处理不满足第一范式而不能被关系数据库处理的关系。的关系。(3)(3)第一范式的第一范式的实质实质:表中不能含表:表中不能含表第第一一范范式式是是对对关关系系模模式式的的最最起起码码的的要要求求;不不满满足足第第一一范范式式的的数数据库模式不能称为关系数据库。据库模式不能称为关系数据库。但满足但满足1NF1NF的关系模式,并不一定是一个好的关系模式。的关系模式,并不一定是一个好的关系模式。2024/7/29157数据库基础知识(补充)例如例如有关系:学生有关系:学生1(1(学号,姓名,

100、性别,出生日期,学号,姓名,性别,出生日期,系部代码,入学时间,家庭成员系部代码,入学时间,家庭成员) )n第一范式第一范式(1NF)分析:分析:“学生学生1 1”关系不满足第一范式,因为家庭成员可以再分关系不满足第一范式,因为家庭成员可以再分解为(父亲)、(母亲)等属性。解为(父亲)、(母亲)等属性。关系分解:关系分解:学生学生( (学号,姓名,性别,出生日期,系部代码,入学时间学号,姓名,性别,出生日期,系部代码,入学时间) )家庭家庭( (学号,家庭成员姓名,亲属关系学号,家庭成员姓名,亲属关系) )2024/7/29158数据库基础知识(补充)n第二范式第二范式(2NF)2024/7/

101、29159数据库基础知识(补充)2NF的定义的定义若若R 1NF,且且每每一一个个非非主主属属性性完完全全函函数数依依赖赖于于码码,则则R 2NF,即消除非主属性对码的部分依赖,即消除非主属性对码的部分依赖。即即:第第二二范范式式要要求求数数据据库库表表中中的的每每个个实实例例必必须须可可以以被被唯唯一一区区分分,实实体体的的属属性性完完全全依依赖赖于于主主关关键键字字,即即不不存存在在仅仅依依赖赖主主关关键键字字一一部部分分的的属属性性。如如果果存存在在,那那么么这这个个属属性性和和主主关关键键字字的的一一部部分分应应该该分分离离出出来来,形形成成一一个个新新的的实实体。体。2024/7/2

102、9数据库基础知识(补充)160n第二范式第二范式(2NF)举例:举例: 关系模式关系模式SLC(SNO,DEPT,SLOC,CNO,GRADE)SLOC为学生的住处,并且每个系的学生住在同一个地方。为学生的住处,并且每个系的学生住在同一个地方。试分析:该关系模式中的函数依赖。试分析:该关系模式中的函数依赖。P分析结果,函数依赖包括:分析结果,函数依赖包括:(SNO,CNO) GRADESno Sdept(Sno, Cno) DEPTSno Sloc(Sno, Cno) SlocSdept SlocFPCNOCNOSNOSNOGRADEDEPTDEPTSLOCSLOCn第二范式第二范式(2NF)

103、n第二范式第二范式(2NF)SLC关系模式存在的问题:关系模式存在的问题:CNOCNOSNOSNOGRADEDEPTDEPTSLOCSLOC1 当当一一个个学学生生存存在在,但但还还没没有有选修课程,则?选修课程,则?2 当当一一个个学学生生只只选选修修了了一一门门课课程,如果删除该课程,则?程,如果删除该课程,则?3 当当一一个个学学生生转转系系,本本来来只只修修改改DEPT分量即可,但是?分量即可,但是?nSLC不是一个好的关系模式不是一个好的关系模式n(1) 插入异常插入异常假设假设Sno95102,SdeptIS,SlocN的学生还未的学生还未选课,因课程号是主属性,因此该学生的信息无

104、法插选课,因课程号是主属性,因此该学生的信息无法插入入SLC。n(2) 删除异常删除异常 假定某个学生本来只选修了假定某个学生本来只选修了3号课程这一门课。现在号课程这一门课。现在因身体不适,他连因身体不适,他连3号课程也不选修了。因课程号是号课程也不选修了。因课程号是主属性,此操作将导致该学生信息的整个元组都要删主属性,此操作将导致该学生信息的整个元组都要删除。除。nSLC不是一个好的关系模式不是一个好的关系模式n(3) 数据冗余度大数据冗余度大 如果一个学生选修了如果一个学生选修了10门课程,那么他的门课程,那么他的Sdept和和Sloc值就要重复存储了值就要重复存储了10次。次。n(4)

105、 修改复杂修改复杂 例如学生转系,在修改此学生元组的例如学生转系,在修改此学生元组的Sdept值的同值的同时,还可能需要修改住处(时,还可能需要修改住处(Sloc)。如果这个学生)。如果这个学生选修了选修了K门课,则必须无遗漏地修改门课,则必须无遗漏地修改K个元组中全部个元组中全部Sdept、Sloc信息。信息。SLC关系模式存在的问题:关系模式存在的问题: 原因原因 DEPT和和SLOC部分依赖于码部分依赖于码 解决办法解决办法 用投影分解将关系模式用投影分解将关系模式SLC分解为两个模式分解为两个模式 SC(SNO,CNO,GRADE) SL(SNO,DEPT,SLOC)n第二范式第二范式

106、(2NF)分解后解决了四个问题分解后解决了四个问题n在在SL关系中可以插入尚未选课的学生;关系中可以插入尚未选课的学生;n删除学生选课情况涉及的是删除学生选课情况涉及的是SC关系,如果一个学生所有的选关系,如果一个学生所有的选课记录全部删除了,只是课记录全部删除了,只是SC关系中没有关于该学生的记录了,关系中没有关于该学生的记录了,不会牵涉到不会牵涉到SL关系中关于该学生的记录;关系中关于该学生的记录;n由于选修课程的情况与学生的基本情况是分开存储在两人个由于选修课程的情况与学生的基本情况是分开存储在两人个关系中的,因此不论该学生选多少门课程,他的关系中的,因此不论该学生选多少门课程,他的Sd

107、ept和和Sloc值都只值都只1次,这就大大降低了数据冗余;次,这就大大降低了数据冗余;n某个学生从数学系(某个学生从数学系(MA)转到信息系()转到信息系(IS),只需),只需SL关系关系中该学生元组的中该学生元组的Sdept值和值和Sloc值,由于值,由于Sdept,Sloc并未重并未重复存储,因此减化了修改操作。复存储,因此减化了修改操作。n采用投影分解法将一个采用投影分解法将一个1NF的关系分解为多个的关系分解为多个2NF的的关系,可以在一定程度上减轻原关系,可以在一定程度上减轻原1NF关系中存在的插关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。入异常、删除异常、数据冗

108、余度大、修改复杂等问题。n将一个将一个1NF关系分解为多个关系分解为多个2NF的关系,并不能完全的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。消除关系模式中的各种异常情况和数据冗余。n第二范式第二范式(2NF)nSLC不是一个好的关系模式不是一个好的关系模式n(1) 插入异常插入异常如果一个系刚成立,尚无学生,我们就无法把这个系的信息存入如果一个系刚成立,尚无学生,我们就无法把这个系的信息存入SL。因。因为为Sno为主码。为主码。n(2) 删除异常删除异常 如果学生全都毕业了如果学生全都毕业了,则在删除信息的同时有关则在删除信息的同时有关系系的信息也随之删除了。的信息也随之删除了。

109、(3)数据冗余数据冗余 每个学生都存储了所在系的住处的信息。每个学生都存储了所在系的住处的信息。(4)修改复杂修改复杂 例如学生转系,在修改此学生元组的例如学生转系,在修改此学生元组的Sdept值的同时,还可能需要修值的同时,还可能需要修改住处(改住处(Sloc)。SC(SNO,CNO,GRADE)SL(SNO,DEPT,SLOC)n例:例:2NF关系模式关系模式SL(Sno, Sdept, Sloc)中中n函数依函数依赖:n SnoSdeptn SdeptSlocn SnoSlocnSloc传递函数依函数依赖于于Sno,即,即SL中存在非主属性中存在非主属性对码的的传递函数依函数依赖。n第三

110、范式第三范式(3NF)n函数依赖图:SLSnoSdeptSlocn第三范式第三范式(3NF) 第第三三范范式式要要求求一一个个数数据据库库表表中中不不包包含含已已在在其其他他表表中中已包含的非主关键字信息。已包含的非主关键字信息。在前面例题分解后的模式:在前面例题分解后的模式:SC(SNO,CNO,GRADE) 3NFSL(SNO,DEPT,SLOC)存在传递依赖,不属于)存在传递依赖,不属于3NF 3NF的定义的定义n第三范式第三范式(3NF)n解决方法解决方法 采用投影分解法,把采用投影分解法,把SL分解分解为两个关系模式,以两个关系模式,以消除消除传递函数依函数依赖: SD(Sno, S

111、dept) DL(Sdept, Sloc)SD的的码为Sno, DL的的码为Sdept。n第三范式第三范式(3NF)关系分解的正确性关系分解的正确性由非规范关系分解到由非规范关系分解到3NF3NF的过程:的过程: 非规范关系非规范关系 消去组项及空白消去组项及空白 1NF1NF 消去非主属性对候选码的部分函数依赖消去非主属性对候选码的部分函数依赖 2NF2NF 消去非主属性对候选码的传递函数依赖消去非主属性对候选码的传递函数依赖 3NF3NF范式小结范式小结范式小结范式小结n不能说规范化程度越高的关系模式就越好不能说规范化程度越高的关系模式就越好n在设计数据库模式结构时,必须对现实世界的实际情

112、在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、况和用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式能够反映现实世界的模式n上面的规范化步骤可以在其中任何一步终止上面的规范化步骤可以在其中任何一步终止关系模式分解练习关系模式分解练习关系模式分解练习关系模式分解练习 判断学生关系模式是否满足第一关系范式判断学生关系模式是否满足第一关系范式? ?如果不满足如果不满足的话的话, ,如何分解如何分解? ?第一章第一章 数据库基础知识数据库基础知识1.5 设计数据库设计数据库 1.5.1数据库的数据来源数据库的数据来源 1.5.2 数据库设计的

113、具体步骤数据库设计的具体步骤 1.5.1数据库的数据来源数据库的数据来源n从已有的数据进行数据库设计从已有的数据进行数据库设计n为新系统开发进行数据库设计为新系统开发进行数据库设计n为系统重新设计进行数据库设计为系统重新设计进行数据库设计1.从已有的数据进行数据库设计从已有的数据进行数据库设计电子数据表电子数据表文本文件文本文件数据库设计数据库设计或或操作数据库操作数据库数据抽取数据抽取数据库数据库设计设计2.为新系统的开发进行数据库设计为新系统的开发进行数据库设计表单表单报表用户需求描述用户需求描述用例和其它系统开用例和其它系统开发文档发文档系统需求系统需求数据模型数据模型数据模型数据模型转

114、化转化数据库数据库设计设计3.为系统重新设计进行数据库设计为系统重新设计进行数据库设计数据库数据库1数据库数据库设计设计2或或移植移植数据库数据库1数据库数据库2数据库集成数据库集成数据库数据库设计设计31.5.2 数据库设计的基本步骤数据库设计的基本步骤规范化设计方法六阶段规范化设计方法六阶段需求分析需求分析概念结构设计概念结构设计逻辑结构设计逻辑结构设计物理结构设计物理结构设计数据库实施数据库实施数据库运行和维护数据库运行和维护独立于任何独立于任何DBMS和特定和特定DBMS相关相关【任务分析任务分析】设计人员在理解了数据库的理论基础后,现在开设计人员在理解了数据库的理论基础后,现在开始进

115、行学生信息管理系统数据库设计的第一步,始进行学生信息管理系统数据库设计的第一步,即将学生信息管理中的数据收集起来,那么收集即将学生信息管理中的数据收集起来,那么收集的步骤及方法是什么?的步骤及方法是什么?需求分析需求分析-需求分析的任务及目标需求分析的任务及目标需求分析的任务及目标需求分析的任务及目标需求分析的步骤及方法需求分析的步骤及方法n需求分析的任务就是收集数据,要尽可能多地收集关需求分析的任务就是收集数据,要尽可能多地收集关于数据库要存储的数据以及将来如何使用这些数据的于数据库要存储的数据以及将来如何使用这些数据的信息,确保收集到数据库需要存储的全部信息。信息,确保收集到数据库需要存储

116、的全部信息。n进行需求分析首先是调查清楚用户的实际需求,与用进行需求分析首先是调查清楚用户的实际需求,与用户达成共识,然后分析与表达这些需求。户达成共识,然后分析与表达这些需求。需求分析需求分析-需求分析的任务及目标需求分析的任务及目标(1) 有多少数据,数据的来源在哪里,是否有已存在的数据资源有多少数据,数据的来源在哪里,是否有已存在的数据资源?(2) 必须保存哪些数据,数据是字符、数字或日期?必须保存哪些数据,数据是字符、数字或日期?(3) 谁使用数据,如何使用?谁使用数据,如何使用?(4) 数据是否经常修改,如何修改和什么时候修改?数据是否经常修改,如何修改和什么时候修改?(5) 某个数

117、据是否依赖于另一个数据或被其他数据引用?某个数据是否依赖于另一个数据或被其他数据引用?(6) 某个信息是否要唯一?某个信息是否要唯一?(7) 哪些数据是组织内部的和哪些是外部数据?哪些数据是组织内部的和哪些是外部数据?(8) 哪些业务活动与数据有关,数据如何支持业务活动?哪些业务活动与数据有关,数据如何支持业务活动?(9) 数据访问的频度和增长的幅度如何?数据访问的频度和增长的幅度如何?(10) 谁可以访问数据,如何保护数据。谁可以访问数据,如何保护数据。需求分析需求分析-需求分析的任务及目标需求分析的任务及目标需求分析需求分析-需求分析的方法需求分析的方法n调查用户需求的具体步骤如下。(1)

118、调查组织机构情况。 (2) 调查各部门的业务活动情况。 (3)在熟悉了业务的基础上,协助用户明确对新系统的各种要求。 (4) 确定新系统的边界。n常用的调查方法如下:(1) 跟班作业。 (2) 开调查会。(3) 请专人介绍。(4) 询问。 (5) 问卷调查。(6) 查阅记录。n首先根据各个局部应用设计出分E-R图;n然后综合各分E-R图得到初步E-R图,在综合过程中主要的工作是消除冗余;n最后对初步E-R图消除冗余,得到基本的E-R图。 概概念念模模型型设设计计是是对对实实体体的的抽抽象象过过程程,这这个个过过程程分分下下面面三步完成:三步完成:概念结构设计概念结构设计概念结构设计概念结构设计

119、【例例】 设有如下实体。设有如下实体。学生:学号、系名称、姓名、性别、年龄、选修课程名学生:学号、系名称、姓名、性别、年龄、选修课程名课程:编号、课程名、开课单位、任课教师号课程:编号、课程名、开课单位、任课教师号教师:教师号、姓名、性别、职称、讲授课程编号教师:教师号、姓名、性别、职称、讲授课程编号单位:单位名称、电话、教师号、教师姓名单位:单位名称、电话、教师号、教师姓名上述实体中存在如下联系。上述实体中存在如下联系。(1) 一个学生可选修多门课程,一门课程可为多个学生选修。一个学生可选修多门课程,一门课程可为多个学生选修。(2) 一个教师可讲授多门课程,一门课程可为多个教师讲授。一个教师

120、可讲授多门课程,一门课程可为多个教师讲授。(3) 一个系可有多个教师,一个教师只能属于一个系。一个系可有多个教师,一个教师只能属于一个系。根据上述约定,可以得到学生选课局部根据上述约定,可以得到学生选课局部E-R图和教师授课局图和教师授课局部部E-R图图 概念结构设计概念结构设计学生选课局部E-R图概念结构设计概念结构设计教师授课局部E-R图1.集成局部集成局部E-R图的方法图的方法局部局部E-R图的集成有两种方法。图的集成有两种方法。(1) 多元集成法(一次集成)多元集成法(一次集成)(2) 二元集成法二元集成法 (逐步集成)(逐步集成)2.集成局部集成局部E-R图的步骤图的步骤E-R图集成

121、均分为如下两个步骤。图集成均分为如下两个步骤。(1) 合并,消除各局部合并,消除各局部E-R图之间的冲突,生成初步图之间的冲突,生成初步E-R图。图。(2) 优化,消除不必要的冗余,生成基本优化,消除不必要的冗余,生成基本E-R图。图。全局全局E-RE-R模型设计模型设计 n1.合并分合并分E-R图,生成初步图,生成初步E-R图图 n由于各个局部应用所面向的问题不同,并且通由于各个局部应用所面向的问题不同,并且通常由不同的设计人员进行局部常由不同的设计人员进行局部E-R图设计,因图设计,因此,各局部此,各局部E-R图不可避免地会有许多不一致图不可避免地会有许多不一致的地方,通常把这种现象称为的

122、地方,通常把这种现象称为冲突冲突冲突冲突。nE-R图中的冲突有图中的冲突有3种:种:属性冲突、命名冲突属性冲突、命名冲突和结构冲突。和结构冲突。全局全局E-RE-R模型设计模型设计 局部局部E-RE-R图的合并图的合并n首先,这两个局部首先,这两个局部E-RE-R图中存在着图中存在着命名冲突命名冲突,学生选课,学生选课局部局部E-RE-R图中的实体图中的实体“系系”与教师任课局部与教师任课局部E-RE-R图中的图中的实体实体“单位单位”都是指系,即所谓都是指系,即所谓异名同义异名同义,合并后统,合并后统一改为一改为“系系”,这样属性,这样属性“名称名称”和和“单位名称单位名称”即即可统一为可统

123、一为“系名系名”。n其次,还存在着其次,还存在着结构冲突结构冲突,实体,实体“系系”和实体和实体“课程课程”在两个局部在两个局部E-RE-R图中的属性组成不同,合并后这两个图中的属性组成不同,合并后这两个实体的属性组成为各局部实体的属性组成为各局部E-RE-R图中的同名实体属性的并图中的同名实体属性的并集。解决上述冲突后,合并两个局部集。解决上述冲突后,合并两个局部E-RE-R图,就能生成图,就能生成初步的全局初步的全局E-RE-R图。图。n在初步在初步E-RE-R图中,图中,“课程课程”实体中的属性实体中的属性“教师号教师号”可由可由“讲授讲授”这个教师与课程之间的联系导出,而学生的平这个教

124、师与课程之间的联系导出,而学生的平均成绩可由均成绩可由“选修选修”联系中的属性联系中的属性“成绩成绩”计算出来,计算出来,所以所以“课程课程”实体中的实体中的“教师号教师号”与与“学生学生”实体中的实体中的“平均成绩平均成绩”均属于冗余数据。均属于冗余数据。n另外,另外,“系系”和和“课程课程”之间的联系之间的联系“开课开课”,可以由,可以由“系系”和和“教师教师”之间的之间的“属于属于”联系与联系与“教师教师”和和“课程课程”之间的之间的“讲授讲授”联系推导出来,所以联系推导出来,所以“开课开课”属属于冗余联系。于冗余联系。n这样,初步这样,初步E-RE-R图在消除冗余数据和冗余联系后,便可

125、得图在消除冗余数据和冗余联系后,便可得到基本的到基本的E-RE-R模型,如下图所示。模型,如下图所示。 消除不必要的冗余消除不必要的冗余,生成基本,生成基本E-RE-R图图全局全局E-RE-R模型设计模型设计 逻辑结构设计的任务逻辑结构设计的任务把概念结构设计阶段设计好的基本把概念结构设计阶段设计好的基本E-R图转换为与选用图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。产品所支持的数据模型相符合的逻辑结构。逻辑结构设计的步骤逻辑结构设计的步骤 将概念结构转换为一般的关系、网状和层次模型;将概念结构转换为一般的关系、网状和层次模型; 将转换来的关系、网状和层次模型向特定将转换来的关

126、系、网状和层次模型向特定DBMS支支持下的数据模型转换;持下的数据模型转换; 对数据模型进行优化。对数据模型进行优化。逻辑结构设计逻辑结构设计n(1) 初始关系模式设计。n(2) 关系模式规范化。(之前讲过)n(3) 模式的评价与改进。 数数据据库库逻逻辑辑设设计计的的过过程程是是将将概概念念结结构构转转换换成成特特定定DBMS所支持的数据模型的过程。分以下三步:所支持的数据模型的过程。分以下三步:逻辑结构设计逻辑结构设计逻辑结构设计逻辑结构设计n1. 转换原则转换原则n规则规则2.1 实体类型的转换:将每个实体类型实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性即为关系的转换成一

127、个关系模式,实体的属性即为关系的属性,实体的标识符即为关系模式的码。属性,实体的标识符即为关系模式的码。n规则规则2.2 联系类型的转换:根据不同的联系联系类型的转换:根据不同的联系类型做不同的处理。类型做不同的处理。n规则规则2.2.1 若实体间联系是若实体间联系是1 1,可以在两,可以在两个实体类型转换成的两个关系模式中个实体类型转换成的两个关系模式中任意一任意一个关系模式中加入另一个关系模式的码和联个关系模式中加入另一个关系模式的码和联系类型的属性系类型的属性。 n规则规则2.2.2 若实体间的联系是若实体间的联系是1 n,则在,则在n端实体类型转换成的关系模式中加入端实体类型转换成的关

128、系模式中加入1端实端实体类型的码和联系类型的属性体类型的码和联系类型的属性。逻辑结构设计逻辑结构设计n规则规则2.2.3 若实体间联系是若实体间联系是m n,则将联系,则将联系类型也转换成关系模式,其属性为类型也转换成关系模式,其属性为两端实体两端实体类型的码加上联系类型类型的码加上联系类型的属性,而码为两端的属性,而码为两端实体码的组合。实体码的组合。n规则规则2.2.4 3个或个或3个以上的实体间的一个个以上的实体间的一个多元联系,不管联系类型是何种方法,总是多元联系,不管联系类型是何种方法,总是将多元联系类型转换成一个关系模式,其属将多元联系类型转换成一个关系模式,其属性为与该联系相连的

129、各实体的码及联系本身性为与该联系相连的各实体的码及联系本身的属性,其码为各实体码的组合。的属性,其码为各实体码的组合。n规则规则2.2.5 具有相同码的关系可合并。具有相同码的关系可合并。逻辑结构设计逻辑结构设计转换1:1例子n例:将下图中含有11联系的E-R图根据上述规则转换为关系模式。 转换1:1例子方案一:方案一:“负责负责”与与“职工职工”两关系模两关系模式合并,转换后的关系模式如下。式合并,转换后的关系模式如下。职工职工(职工号职工号,姓名,年龄,产品号,姓名,年龄,产品号)产品产品(产品号产品号,产品名,价格,产品名,价格)方案二:方案二:“负责负责”与与“产品产品”两关系模式两关

130、系模式合并,转换后的关系模式如下。合并,转换后的关系模式如下。职工职工(职工号职工号,姓名,年龄,姓名,年龄)产品产品(产品号产品号,产品名,价格,职工号,产品名,价格,职工号) 将上面两个方案进行比较,方案一中,将上面两个方案进行比较,方案一中,由于并不是每个职工都负责产品,就会由于并不是每个职工都负责产品,就会造成产品号属性的造成产品号属性的NULL值较多,所以值较多,所以方案二比较合理一些。方案二比较合理一些。转换1:n例子n例:将下图中含有1n联系的E-R图根据上述规则转换为关系模式。转换1:n例子 根据规则根据规则2.1和规则和规则2.2.2可转换为如下关系模式可转换为如下关系模式(

131、带下带下划线的属性为码划线的属性为码)。仓库仓库(仓库号仓库号,地点,面积,地点,面积)产品产品(产品号产品号,产品名,价格,产品名,价格,仓库号仓库号,数量,数量)转换1:n例子n例:将下图中含有同实体集1n联系的E-R图根据上述规则转换为关系模式。 转换1:n例子 该例只有一个实体,实体集内部存该例只有一个实体,实体集内部存在着在着1 n的联系,根据规则的联系,根据规则2.1和规则和规则2.2.2可转换为如下关系模式可转换为如下关系模式(带下划线带下划线的属性为码的属性为码)。职工职工(职工号职工号,姓名,年龄,领导工号,姓名,年龄,领导工号) 其中,其中,“领导工号领导工号”就是领导的就

132、是领导的“职工号职工号”,由于同一关系中不能有相同,由于同一关系中不能有相同的属性名,故将领导的的属性名,故将领导的“职工号职工号”改为改为“领导工号领导工号”。转换1:n例子n例:将下图中含有mn联系的E-R图根据规则转换为关系模式。 转换1:n例子 该例包含两个实体,实体间存在着该例包含两个实体,实体间存在着m n的联系,根据规则的联系,根据规则2.1和规则和规则2.2.3可可转换为如下关系模式转换为如下关系模式(带下划线的属性带下划线的属性为码为码)。商店商店(店号店号,店名,店址,店经理,店名,店址,店经理)商品商品(商品号商品号,商品名,单价,产地,商品名,单价,产地)经营经营(店号

133、店号,商品号商品号,月销售量,月销售量)n第一步:完成各部门的分第一步:完成各部门的分E-R图的设计图的设计n(1)学生处学生处:负责学生注册和奖罚管理,主要包括学生信负责学生注册和奖罚管理,主要包括学生信息、班级信息、奖励信息、处罚信息。息、班级信息、奖励信息、处罚信息。n(2)教务处教务处:教务处负责学生的成绩管理,主要包括学生教务处负责学生的成绩管理,主要包括学生信息、班级信息、课程信息等信息、班级信息、课程信息等 假假设设学学籍籍管管理理系系统统由由学学生生处处、教教务务处处两两个个部部门门组组成成,画画出该系统的出该系统的E-R图。图。练习练习-以学籍管理系统以学籍管理系统n第二步:

134、合并各部门的分第二步:合并各部门的分E-R图,并消除冗余的联系图,并消除冗余的联系“班班级级-学生学生”,生成基本,生成基本E-R图图班级班级学生学生奖励奖励处罚处罚课程课程表扬表扬处分处分选修选修隶属隶属日期日期日期日期成绩成绩学期学期练习练习-以学籍管理系统以学籍管理系统以学籍管理系统为例以学籍管理系统为例逻辑结构设计逻辑结构设计n第一步第一步: :每个实体转换为一个关系模式每个实体转换为一个关系模式: :以实体名为关系名,以实体名为关系名,以实体的属性为关系的属性,确定主码以实体的属性为关系的属性,确定主码( (关键字关键字) )属性。属性。学生学生(学号学号,姓名,性别,出生日期,籍贯

135、,注册日期,姓名,性别,出生日期,籍贯,注册日期)班级班级(班级编号班级编号,班级名称,班级名称)奖励奖励(奖励编号奖励编号,奖励名称,奖励级别,奖励名称,奖励级别)处罚处罚(处罚编号处罚编号,处罚名称,处罚级别,处罚名称,处罚级别)课程课程(课程编号课程编号,课程名称),课程名称)以学籍管理系统为例以学籍管理系统为例逻辑结构设计逻辑结构设计(续续)n第二步第二步: :将每个联系转换为关系模式将每个联系转换为关系模式n一对一联系一对一联系n一对多联系一对多联系n多对多联系多对多联系联系转换联系转换1:1联系联系 将一个表的主码作为外码放在另一个表中。一般将外将一个表的主码作为外码放在另一个表中

136、。一般将外码放在存取操作比较频繁的表中。码放在存取操作比较频繁的表中。班级班级(班级编号班级编号,班级名称,班级名称)辅导员辅导员(辅导员编号辅导员编号,辅导员姓名),辅导员姓名)班级班级(班级编号班级编号,班级名称,班级名称,辅导员编号辅导员编号)辅导员辅导员(辅导员编号辅导员编号,辅导员姓名),辅导员姓名)联系转换联系转换1:n联系联系 将联系的属性及将联系的属性及1 1端的主码作为外码放在端的主码作为外码放在n n端关系模式端关系模式中。中。 学生学生(学号学号,姓名,性别,出生日期,籍贯,注册日期,姓名,性别,出生日期,籍贯,注册日期,班级编号班级编号)班级班级(班级编号班级编号,班级

137、名称,班级名称)学生学生(学号学号,姓名,性别,出生日期,籍贯,注册日期,姓名,性别,出生日期,籍贯,注册日期)班级班级(班级编号班级编号,班级名称,班级名称)联系转换联系转换m:n联系联系 将联系转换为一个独立的关系模式,关系模式的主码将联系转换为一个独立的关系模式,关系模式的主码一般由两个一般由两个( (或两个以上或两个以上) )实体的主码复合而成。实体的主码复合而成。 该关系该关系模式中应包括联系的属性。模式中应包括联系的属性。学生学生(学号学号,姓名,性别,出生日期,姓名,性别,出生日期,籍贯,注册日期籍贯,注册日期)班级班级(班级编号班级编号,班级名称,班级名称)奖励奖励(奖励编号奖

138、励编号,奖励名称,奖励级别,奖励名称,奖励级别)处罚处罚(处罚编号处罚编号,处罚名称,处罚级别,处罚名称,处罚级别)课程课程(课程编号课程编号,课程名称),课程名称)学生学生(.),班级班级(.),奖励奖励(.),处罚,处罚(.),课程,课程(.)表扬表扬(学号,奖励编号学号,奖励编号,日期,日期)处分处分 (学号,处罚编号学号,处罚编号,日期,日期)选修选修(学号,课程编号学号,课程编号,学期,成绩,学期,成绩)n数据库的物理设计可分为两步。(1) 确定数据库的物理结构,在关系数据库中主要指存储结构和存取方法。(2) 对物理结构进行评价,评价的重点是时间和空间效率。 物物理理设设计计的的目目

139、的的是是为为了了有有效效地地实实现现逻逻辑辑模模式式,确确定定所所采采取取的的存存储储策策略略。选选定定数数据据库库在在物物理理设设备备上上的的存存储储结结构构和和存存取方法。取方法。 物理结构设计物理结构设计小结数据库设计的步骤需求分析需求分析概念结构设计概念结构设计物理结构设计物理结构设计数据库实施数据库实施数据库运行和维护数据库运行和维护逻辑结构设计逻辑结构设计223 总结总结nDBMS是一种重要的程序设计系统,它由一个相互关联的数据集是一种重要的程序设计系统,它由一个相互关联的数据集合和一组访问这些数据的程序组成。合和一组访问这些数据的程序组成。DBMS的主要功能的主要功能包括数据包括

140、数据定义、数据操纵、事务管理和运行管理、数据存储和查询处理、定义、数据操纵、事务管理和运行管理、数据存储和查询处理、数据库维护等数据库维护等n数据库是持久储存在计算机中、有组织的、可共享的大量数据的数据库是持久储存在计算机中、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和存储,可集合。数据库中的数据按一定的数据模型组织、描述和存储,可以被各种用户共享,具有较小的冗余度、较高的数据独立性,并以被各种用户共享,具有较小的冗余度、较高的数据独立性,并且易于扩展且易于扩展n数据库系统由数据库、数据库系统由数据库、DBMS(及其开发工具)、应用系统和数(及其开发工具)、应用

141、系统和数据库管理员组成据库管理员组成2024/7/29数据库基础知识(补充)224总结总结nE-R模型模型是一种广泛使用的概念模型,用于对现实世界建模。是一种广泛使用的概念模型,用于对现实世界建模。E-R模型把现实世界抽象为实体和实体之间的联系,并用模型把现实世界抽象为实体和实体之间的联系,并用E-R图建模图建模n数据库系统广泛使用外模式、模式和内模式三级模式结构。三级数据库系统广泛使用外模式、模式和内模式三级模式结构。三级模式提供了三个层次的数据抽象,隐藏了实现细节,简化了用户模式提供了三个层次的数据抽象,隐藏了实现细节,简化了用户界面,并通过界面,并通过两级映像实现了数据独立性两级映像实现

142、了数据独立性n数据独立性是指数据与应用程序之间的相互独立性,包括数据的数据独立性是指数据与应用程序之间的相互独立性,包括数据的逻辑独立性和数据的物理独立性逻辑独立性和数据的物理独立性2024/7/29数据库基础知识(补充)作业n设计学生信息管理数据库。n为了收集数据库需要的信息,设计人员与学生管理人员和系统为了收集数据库需要的信息,设计人员与学生管理人员和系统的操作者进行了交谈,从最初的谈论中,记录了如下要点。的操作者进行了交谈,从最初的谈论中,记录了如下要点。n(1) 数据库要存储每位数据库要存储每位学生的基本信息学生的基本信息、各系部的基本信息各系部的基本信息、各各班级班级的基本信息、的基

143、本信息、教师教师基本信息、教师基本信息、教师授课授课基本信息和学生基本信息和学生宿舍宿舍基本信息。基本信息。n(2) 管理人员可以通过数据库管理各系部、各班、各教师、全管理人员可以通过数据库管理各系部、各班、各教师、全院学生的基本信息。院学生的基本信息。n(3) 按工作的要求查询数据,如浏览某系部、某班级、某年级、按工作的要求查询数据,如浏览某系部、某班级、某年级、某专业等学生基本信息。某专业等学生基本信息。1.收集数据1.收集数据n(4) 根据要求实现对各种数据的统计,如学生人数,应届根据要求实现对各种数据的统计,如学生人数,应届毕业生人数,某系、某专业、某班级男女生人数,各系部毕业生人数,

144、某系、某专业、某班级男女生人数,各系部教师人数,退、休学人数等。教师人数,退、休学人数等。n(5) 能实现对学生学习成绩的管理能实现对学生学习成绩的管理(录入、修改、查询、录入、修改、查询、统计、打印统计、打印)。n(6) 能实现对学生住宿信息的管理,如查询某学生的宿舍能实现对学生住宿信息的管理,如查询某学生的宿舍楼号、房间号及床位号等。楼号、房间号及床位号等。n(7) 能实现历届毕业生的信息管理,如查询某毕业生的详能实现历届毕业生的信息管理,如查询某毕业生的详细信息。细信息。n(8) 数据库系统的操作人员可以查询数据,而管理人员可数据库系统的操作人员可以查询数据,而管理人员可以修改数据。以修

145、改数据。n(9) 使用关系数据库模型。使用关系数据库模型。2. 创建E-R模型n1. 进行数据抽象,设计局部进行数据抽象,设计局部E-R模型模型n设计人员在对收集到的大量信息进行分析、整理后,确定设计人员在对收集到的大量信息进行分析、整理后,确定了数据库系统中应该存储如下一些信息:了数据库系统中应该存储如下一些信息:学生基本信息;学生基本信息;系部基本信息;班级基本信息;教师基本信息;课程基本系部基本信息;班级基本信息;教师基本信息;课程基本信息;学生学习成绩信息;学生综合素质成绩信息;毕业信息;学生学习成绩信息;学生综合素质成绩信息;毕业生基本信息;宿舍基本信息;系统用户信息。生基本信息;宿

146、舍基本信息;系统用户信息。n设计人员根据这些信息抽象出系统将要使用的实体:设计人员根据这些信息抽象出系统将要使用的实体:学生、学生、系部、班级、课程、教师、宿舍,系部、班级、课程、教师、宿舍,定义实体之间的联系以定义实体之间的联系以及描述这些实体的属性,最后用及描述这些实体的属性,最后用E-R图表示这些实体和实图表示这些实体和实体之间的联系。体之间的联系。学生实体的属性:学生实体的属性:学号,姓名,性别,出生日期,身份证号,学号,姓名,性别,出生日期,身份证号,家庭住址,联系电话,邮政编码,政治面貌,简历,是否退学,家庭住址,联系电话,邮政编码,政治面貌,简历,是否退学,是否休学。码是学号。是

147、否休学。码是学号。系部实体的属性:系部实体的属性:系号,系名,系主任,办公室,电话。码是系号,系名,系主任,办公室,电话。码是系号。系号。班级实体的属性:班级实体的属性:班级号,班级名称,专业,班级人数,入学班级号,班级名称,专业,班级人数,入学年份,教室,班主任,班长。码是班级号。年份,教室,班主任,班长。码是班级号。课程实体的属性:课程实体的属性:课程号,课程名,学期。码是课程号课程号,课程名,学期。码是课程号+学期。学期。教师实体的属性:教师实体的属性:教师号,姓名,性别,出生日期,所在系别,教师号,姓名,性别,出生日期,所在系别,职称。码是教师号。职称。码是教师号。宿舍实体的属性:宿舍

148、实体的属性:楼号,房间号,住宿,性别,床位数。码是楼号,房间号,住宿,性别,床位数。码是楼号楼号+房间号。房间号。2. 创建E-R模型n实体与实体之间的联系为:实体与实体之间的联系为:n一个系拥有多个学生,每个学生只能属于一个系;一个系拥有多个学生,每个学生只能属于一个系;n一个班级拥有多个学生,每个学生只能属于一个班级;一个班级拥有多个学生,每个学生只能属于一个班级;n一个系拥有多名教师,一位教师只能属于一个系;一个系拥有多名教师,一位教师只能属于一个系;n一个学生只在一个宿舍里住宿,一个宿舍里可容纳多名学生;一个学生只在一个宿舍里住宿,一个宿舍里可容纳多名学生;n一个学生可学习多门课程,一

149、门课程可由多名学生学习;一个学生可学习多门课程,一门课程可由多名学生学习;n一位教师可承担多门课程的教授任务,一门课程可由多位教师一位教师可承担多门课程的教授任务,一门课程可由多位教师讲授。讲授。2. 创建E-R模型2. 创建E-R模型n系部实体和班级实体的联系是一对多联系;系部实体和班级实体的联系是一对多联系;n系部实体和教师实体是一对多联系;系部实体和教师实体是一对多联系;n班级实体和学生实体是一对多联系;班级实体和学生实体是一对多联系;n学生实体和课程实体是多对多联系;学生实体和课程实体是多对多联系;n课程实体和教师实体多对多联系;课程实体和教师实体多对多联系;n宿舍实体和学生实体是一对

150、多联系。宿舍实体和学生实体是一对多联系。根据上述抽象,可以得到学生选课、教师授课、学生住宿、学生班级等局部E-R图 2.创建E-R模型-局部E-R模型根据上述抽根据上述抽象,可以得象,可以得到学生选课、到学生选课、教师授课、教师授课、学生住宿、学生住宿、学生班级等学生班级等局部局部E-R图图 2.创建E-R模型-局部E-R模型根据上述抽根据上述抽象,可以得象,可以得到学生选课、到学生选课、教师授课、教师授课、学生住宿、学生住宿、学生班级等学生班级等局部局部E-R图图 2.创建E-R模型-局部E-R模型根据上述抽象,根据上述抽象,可以得到学生可以得到学生选课、教师授选课、教师授课、学生住宿、课、

151、学生住宿、学生班级等局学生班级等局部部E-R图图 2.创建E-R模型-局部E-R模型n合并局部合并局部E-R图,生成初步图,生成初步E-R图图 合并局部合并局部E-R图的关键是图的关键是合理消除各局部合理消除各局部E-R图中的冲突图中的冲突。学生选课局部学生选课局部E-R图和教师授课局部图和教师授课局部E-R图中图中“系系”的命名的命名 存在冲存在冲 突,学生选课突,学生选课E-R图中的图中的“系系”命名为命名为“系别系别”,教师授课局部教师授课局部E-R图中图中“系系”命名为命名为“单位单位”;同时两局部同时两局部E-R图中存在结构冲突,学生选课局部图中存在结构冲突,学生选课局部E-R图中图

152、中“系系”的属性有的属性有“系名,系主任系名,系主任”,教师授课局部,教师授课局部E-R图中图中“系系”的属性有的属性有“单位名称、领导、办公室、联系电话单位名称、领导、办公室、联系电话”。学生选课局部学生选课局部E-R图、学生住宿局部图、学生住宿局部E-R图和学生班级局部图和学生班级局部E-R图中同一个图中同一个“学生学生”实体的属性组成不同,属性的个数实体的属性组成不同,属性的个数和排列次序均不同。和排列次序均不同。2.创建E-R模型-全局E-R图学生信息管理系统的全局E-R图 n第一步,处理第一步,处理E-R图中的实体。图中的实体。E-R图中共有图中共有6个实体,个实体,每个实体转成一个

153、表,每个实体转成一个表,实体的属性转换为表的列,实体实体的属性转换为表的列,实体的码转换为表的主码的码转换为表的主码。得到。得到6个关系模式如下。个关系模式如下。n学生学生(学号学号,姓名,性别,出生日期,身份证号,家庭住,姓名,性别,出生日期,身份证号,家庭住址,联系电话,邮政编码,政治面貌,简历,是否退学,址,联系电话,邮政编码,政治面貌,简历,是否退学,是否休学是否休学)n系系(系号系号,系名,系主任,办公室,电话,系名,系主任,办公室,电话)n班级班级(班级号班级号,班级名称,专业,班级人数,入学年份,班级名称,专业,班级人数,入学年份,教室,班主任,班长教室,班主任,班长)n课程课程

154、(课程号课程号,课程名,课程名,学期学期)n教师教师(教师号教师号,姓名,性别,出生日期,职称,姓名,性别,出生日期,职称)n宿舍宿舍(楼号楼号,房间号房间号,住宿性别,床位数,住宿性别,床位数) 3.设计关系模式 n学生学生(学号学号,姓名,性别,出生日期,身份证号,家庭住址,姓名,性别,出生日期,身份证号,家庭住址,联系电话,邮政编码,政治面貌,简历,是否退学,是否休联系电话,邮政编码,政治面貌,简历,是否退学,是否休学,楼号,房间号,床位号,班级号学,楼号,房间号,床位号,班级号)n系系(系号系号,系名,系主任,办公室,电话,系名,系主任,办公室,电话)n班级班级(班级号班级号,班级名称

155、,专业,班级人数,入学年份,教室,班级名称,专业,班级人数,入学年份,教室,班主任,班长,系号班主任,班长,系号)n课程课程(课程号课程号,课程名,课程名,学期学期)n教师教师(教师号教师号,姓名,性别,出生日期,职称,系号,姓名,性别,出生日期,职称,系号)n宿舍宿舍(楼号楼号,房间号房间号,住宿性别,床位数,住宿性别,床位数)n对于多对多的联系类型,则创建如下关系模式。对于多对多的联系类型,则创建如下关系模式。n选修选修(学号学号,课程号课程号,成绩,成绩)n讲授讲授(教师号教师号,课程号课程号)3.设计关系模式 n在对关系模式进行规范化的过程中,设计人员从第一范式在对关系模式进行规范化的

156、过程中,设计人员从第一范式1NF开始,开始,一步步进行规范。一步步进行规范。n第一步,判断关系模式是否符合第一步,判断关系模式是否符合1NF要求。设计人员分析的每个关要求。设计人员分析的每个关系模式的所有属性,都是最小数据项,因此满足系模式的所有属性,都是最小数据项,因此满足1NF的要求。的要求。n第二步,判断关系模式是否符合第二步,判断关系模式是否符合2NF要求。要求。n下面以下面以教师教师关系模式为例,判断该关系模式是否满足关系模式为例,判断该关系模式是否满足2NF。n该关系模式的函数依赖集该关系模式的函数依赖集F=教师号教师号姓名,教师号姓名,教师号性别,教师性别,教师号号出生日期,教师

157、号出生日期,教师号职称,教师号职称,教师号系号系号n该关系模式的码为教师号,该关系模式的码为教师号,不存在非主属性对码的部分函数依赖不存在非主属性对码的部分函数依赖,因此该关系模式达到因此该关系模式达到2NF。n设计人员查看了第一步之后的所有关系模式,设计人员查看了第一步之后的所有关系模式,每个关系模式中的所每个关系模式中的所有非主属性都是由主码决定的,因此是满足有非主属性都是由主码决定的,因此是满足2NF的的。4.规范化 n第三步,判断关系模式是否符合第三步,判断关系模式是否符合3NF要求。要求。n设计人员查看了第二步之后的所有表,每个表中的所有设计人员查看了第二步之后的所有表,每个表中的所

158、有非主属性都只依赖于码,因此满足非主属性都只依赖于码,因此满足3NF。n经过分析、设计和判断,得到的最终关系模式如下。经过分析、设计和判断,得到的最终关系模式如下。4.规范化 最终关系图学生(学号,姓名,性别,出生日期,身份证号,家庭住址,联系电话,邮政编码,政治面貌,简历,是否退学,是否休学,楼号,房间号,床位号,班级号)系(系号,系名,系主任,办公室,电话)班级(班级号,班级名称,专业,班级人数,入学年份,教室,班主任,班长,系号)课程(课程号,课程名,学期)教师(教师号,姓名,性别,出生日期,职称,系号)宿舍(楼号,房间号,住宿性别,床位数)选修(学号,课程号,成绩)讲授(教师编号,课程号)243 OVER。追求追求2024/7/29数据库基础知识(补充)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号