《MySQL数据库原理与应用项目化教程全套电子课件完整版ppt整本书电子教案最全教学教程.pptx》由会员分享,可在线阅读,更多相关《MySQL数据库原理与应用项目化教程全套电子课件完整版ppt整本书电子教案最全教学教程.pptx(584页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、项目一项目一 认识数据库认识数据库项 目 描 述 项目一目一 认识数据数据库 在学习设计和使用数据库之前,需要理解数据库的基本概念;数据库是有结构的,数据库结构的基础是数据模型,数据库管理系统都是基于某种数据模型的,关系模型是目前使用最广泛的数据模型,要掌握关系模型的数据结构和数据完整性规则;了解操作关系数据库的标准语言SQL语言。学习目标 项目一目一 认识数据数据库知识目标:理解数据库基本概念 (数据、数据库、数据库管理系统、数据库系统等)。理解概念模型相关术语及E-R图的三要素。理解关系模型的数据结构及数据完整性规则。了解关系数据库的标准语言SQL语言。能力目标:能根据给定的数据表,写出关
2、系模式,分析主键、外键及字段取值约束条件。项目一目一 认识数据数据库 任务1.1理解数据库的基本概念 项目一目一 认识数据数据库理解数据库几个基本概念:数据、数据库、数据库管理系统、数据库系统。在理解数据库几个基本概念的基础上,描述数据库、数据库管理系统、数据库系统三者之间的关系,并了解常用的数据库管理系统产品。【任务描述】理解数据库的基本概念1.1 项目一目一 认识数据数据库【相关知识】1.1.31.1.11.1.2 数据库管理系统 数据 数据库1.1.4 数据库系统理解数据库的基本概念1.1 项目一目一 认识数据数据库数据(Data)是数据库中存储的基本对象,是描述事物的符号记录。描述事物
3、的符号可以是数字,也可以是文字、图形、图像、音频、视频等,数据有多种表现形式,它们都可以经过数字化后存入计算机。数据的含义称为数据的语义,数据与其语义是不可分的。例如,描述一位学生的基本信息,在计算机中常常这样来描述:(刘卫平,男,1994-10-16,衡山市东风路78号)即把姓名、性别、出生日期、家庭住址信息组织在一起,构成一个记录。这个记录就是描述一个学生的数据,这样的数据是有结构的。记录是计算机中表示和存储数据的一种格式或一种方法。数据1.1.1 项目一目一 认识数据数据库数据库(Database,简称DB)就是存放数据的仓库。只是这个仓库是存储在计算机存储设备上的,而且是按一定的格式存
4、放的。严格地讲,数据库是长期存储在计算机内的、有组织的、可共享的大量数据的集合。用户可以对数据库中的数据进行增加、删除、修改、查找等操作。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。概括起来,数据库数据具有永久存储、有组织和可共享三个基本特点。数据库1.1.2 项目一目一 认识数据数据库数据库管理系统(Database Management System,简称DBMS)是介于用户与操作系统之间的数据管理软件。DBMS可以创建数据库,并对其提供统一的管理和控制。数据库管理系统的主要功能包括以下几个方面:(1)数据定义功能(2)
5、数据操纵功能(3)数据库的运行管理(4)数据库的建立和维护数据库管理系统1.1.3 项目一目一 认识数据数据库数据库系统(Database System,简称DBS)是在计算机系统中引入数据库后的系统,由硬件、操作系统、数据库、数据库管理系统、数据库应用程序、各类人员等组成,它们之间的关系如图1-1所示。数据库系统1.1.4图1-1 数据库系统的组成 项目一目一 认识数据数据库对数据库提供专职管理和维护的人员,称为数据库管理员(Database Administrator,DBA)。DBA的核心目标是保证数据库管理系统的稳定性、安全性、完整性和高性能。数据库系统有以下几个特点:(1)数据结构化
6、(2)数据共享性高,冗余度低,易扩充(3)数据独立性高(4)数据由DBMS提供统一的管理与控制数据库系统1.1.4 项目一目一 认识数据数据库【任务实施】1.描述数据库、数据库管理系统与数据库系统三者之间的关系。数据库系统包含了数据库和数据库管理系统。数据库是长期存储在计算机内有组织、可共享的相关数据的集合;数据库管理系统是数据库系统的核心组成部分,它是介于用户与操作系统之间的一层数据管理软件,用来创建数据库,并对数据库提供统一的管理与控制,是用户和数据库的接口;数据库系统是引入数据库的计算机系统,一般由硬件、操作系统、数据库、数据库管理系统、数据库应用程序、各类人员等组成。理解数据库的基本概
7、念1.1 项目一目一 认识数据数据库【任务实施】2了解常用的数据库管理系统产品。(1)Oracle(2)SQL Server(3)MySQL(4)DB2(5)Access(6)MongoDB 理解数据库的基本概念1.1由瑞典MySQL AB公司出品(先后被SUN和Oracle公司收购),支持在UNIX、Linux、Mac OS和Windows等平台上使用。具有体积小、速度快、容易使用等特点,并且开放源代码,开发人员可以根据需要进行修改;采用社区版和商业版的双授权政策,兼顾了免费使用和付费服务的场景,软件使用成本低。项目一目一 认识数据数据库任务1.2理解数据模型 项目一目一 认识数据数据库 数
8、据描述:现实世界信息世界(概念模型)机器世界(关系模型)。了解信息世界的常用术语及概念模型常用的表达工具E-R图,目前机器世界主流的数据模型是关系模型,识记并理解关系模型的数据结构及数据完整性规则。【任务描述】理解数据模型1.2 项目一目一 认识数据数据库【相关知识】1.2.21.2.1 关系模型 概念模型理解数据模型1.2 项目一目一 认识数据数据库1.信息世界相关术语(1)实体(Entity):客观存在并且可以相互区别的事物称为实体。例如:学生、课程等都是实体。(2)属性(Attribute):实体所具有的特性称为属性。一个实体可由若干个属性来刻画。例如:学生实体可以由学号、姓名、性别、出
9、生日期、家庭地址等属性组成,属性组合(刘卫平,男,1994-10-16,衡山市东风路78号)即描述了一个学生。(3)码(Key):唯一标识实体的属性或属性的组合称为码。例如:学号是学生实体的码,因为每个学生的学号都不相同。概念模型1.2.1 项目一目一 认识数据数据库(4)实体型(Entity Type):用实体名及其属性名的集合来描述同类实体,称为实体型。例如:学生(学号,姓名,性别,出生日期,家庭地址)就是一个实体型。(5)实体集(Entity Set):同类实体的集合称为实体集。例如:全体学生,所有课程等。(6)联系(Relationship)两个实体间的联系主要有一对一、一对多和多对多
10、三种类型。一对一联系,记作1:1 例如:学生与校园卡一对多联系,记作1:n 例如:班级与学生多对多联系,记作m:n 例如:学生与课程概念模型1.2.1 项目一目一 认识数据数据库2.E-R图概念模型常用的描述工具是E-R(Entity-Relationship)图,又叫实体-联系图。E-R图有三个要素:实体型(一般简称为实体)、联系和属性,通用表示方法如下:(1)用矩形表示实体,实体名写在框内。(2)用菱形表示实体间的联系,联系名写在菱形框内,用无向边分别把菱形框与有关实体连接起来。(3)用椭圆表示实体的属性或实体间联系产生的属性,并用无向边把属性和其所属的实体或联系连接起来。概念模型1.2.
11、1 项目一目一 认识数据数据库图1-2 学生选修课程E-R图例如:如图1-2所示,这是一个描述学生、课程以及学生与课程间联系的E-R图。一个学生可以选修多门课程,一个课程可以被多个学生选修,所以学生与课程之间是多对多的联系,学生选课会产生一个新的属性“成绩”。学号是学生实体的码,课程号是课程实体的码。概念模型1.2.1图1-2 学生选修课程E-R图 项目一目一 认识数据数据库逻辑数据模型简称为数据模型,它直接面向机器世界里数据库的逻辑结构,任何一个DBMS都是基于某种数据模型的。层次模型、网状模型和关系模型是三种最主要的数据模型。层次模型用“树”结构来表示数据之间的关系,网状模型用“图”结构来
12、表示数据之间的关系,关系模型用“二维表”(或称“关系”)来表示数据之间的关系。关系模型的数据结构简单、清晰、易用,是目前最重要、使用最广泛的数据模型。数据模型有三个要素:数据结构、数据操作和数据约束条件。关系模型1.2.2 项目一目一 认识数据数据库1关系数据结构关系模型由一组关系组成,每个关系的数据结构是一张规范化的二维表,把关系看成是行的一个集合。关系模型1.2.2学号学号姓名姓名成成绩语文数学 英语S001张三706580S002李四859077S003王五607582.学号学号姓名姓名语文文数学数学英英语S001张三706580S002李四859077S003王五607582.规范化表
13、1-1 非规范化的二维表表1-2 规范化的二维表 项目一目一 认识数据数据库关系模型中的术语:l关系:一个关系就是一张二维表。l元组(记录):表中的一行叫一个元组或一条记录。l属性(字段):表中的一列叫一个属性或字段,给每个属性取一个名称叫属性名。l域:属性的取值范围。l候选码(候选键):关系中能唯一标识一个元组的属性或属性组合。唯一标识的意思是它的每个值在关系中不会重复,是唯一的。l主码(主键):从关系的候选码中选定一个做主码。关系模型1.2.2 项目一目一 认识数据数据库l全码:在最简单的情况下,候选码只包含一个属性,在最极端的情况下,候选码包含关系的所有属性,称为全码,全码是候选码的特例
14、。l主属性:在关系中,候选码中的属性叫主属性。l非主属性:在关系中,不包含在任何候选码中的属性称为非主属性。l外码(外键):设F是关系R中的一个或一组属性,但不是R的主码,如果F与关系S中的 主码相对应(即F在S中做主码),则称F是关系S的外码。l关系模式:用来描述关系,一般简记为R(U),其中:R为关系名,U为组成该关系的属性的集合。关系模型1.2.2 项目一目一 认识数据数据库2关系数据操作关系数据操作主要包括查询、插入、修改和删除数据,操作对象和结果都是关系(二维表)。3关系数据完整性规则关系数据完整性控制用来确保数据的准确性和一致性,通俗地讲是为了确保表中数据不出现明显不合逻辑的错误。
15、关系数据完整性规则分为以下三部分:(1)实体完整性规则:规定主键取值不能重复,主属性不能为空值。(2)参照完整性规则:规定外键的取值必须等于被参照表的主键的某个值或取空值。(3)用户自定义完整性规则:根据具体语义要求,字段取值满足某种条件或函数要求。关系模型1.2.2 项目一目一 认识数据数据库【任务实施】以下任务基于一个小型“学生成绩管理”数据库的三张数据表:学生基本信息表、课程基本信息表和学生选课成绩表,三个表的内容分别如表1-3、表1-4、表1-5所示。理解数据模型1.2 项目一目一 认识数据数据库【任务实施】理解数据模型1.2 项目一目一 认识数据数据库【任务实施】理解数据模型1.21
16、.分析三张表对应的是学生选修课程E-R图中的哪个部分。根据三张表的数据,三张表与学生选修课程E-R图的对应关系如下:(1)学生基本信息表对应的是“学生”这个实体,表中一条记录对应一个学生;(2)课程基本信息表对应的是“课程”这个实体,表中一条记录对应一门课程;(3)学生选课成绩表对应的是“选修”这个多对多的联系,每个学生选修一门课会产生一条成绩记录。项目一目一 认识数据数据库【任务实施】理解数据模型1.22.分析三张表的主键。主键是表中能唯一识别一条记录的字段或字段的组合,即主键的值在表中不能重复。(1)学生基本信息表的主键:学号。(2)课程基本信息表的主键:课程号。(3)学生选课成绩表的主键
17、是二个字段的组合:(学号,课程号)。3.分析三张表的外键。外键在本表中不是主键,但是对应另外一个表的主键。(1)学生基本信息表的外键:无。(2)课程基本信息表的外键:无。(3)学生选课成绩表的外键:2个,学号和课程号。项目一目一 认识数据数据库【任务实施】理解数据模型1.24.写出三张表对应的关系模式。一个关系就是一张二维表,关系模式用来描述关系,简写为R(U),R为关系名,U为组成该关系的属性的集合。三张表对应的关系模式如下:(1)学生基本信息表(学号,姓名,性别,出生日期,家庭地址)(2)课程基本信息表(课程号,课程名,学分,任课教师)(3)学生选课成绩表(学号,课程号,成绩)项目一目一
18、认识数据数据库【任务实施】理解数据模型1.25.分析三个表字段取值的约束条件。根据关系数据完整性规则,主键取值不能重复,主属性不能取空值;外键取值等于被参照表的主键的某个值或取空值(当外键是主属性时不能取空值);除了主键、外键以外其他字段取值要根据具体的语义来判断。(1)学生基本情况表:学号取值不能重复,也不能取NULL;性别只能取“男”或“女”。(2)课程基本信息表:课程号取值不能重复,也不能取NULL。(3)学生选课成绩表:(学号,课程号)这个组合的取值不能重复,学号、课程号不能取NULL;成绩取值0100。项目一目一 认识数据数据库任务1.3了解SQL语言 项目一目一 认识数据数据库市场
19、上数据库管理系统产品有很多,目前常用的数据库管理系统几乎都是关系型数据库管理系统,SQL语言(Structured Query Language)是由ISO颁布的操作关系数据库的标准语言。了解SQL语言语句的分类及SQL语言的特点。【任务描述】1.3了解SQL语言 项目一目一 认识数据数据库【相关知识】1.3.21.3.1 SQL语言的特点 SQL语句的分类1.3了解SQL语言 项目一目一 认识数据数据库SQL语句可以按功能分为四大类:数据定义、数据操纵、数据查询及数据控制。(1)数据定义(Data Definition Language,DDL)DDL语句包括CREATE、ALTER、DRO
20、P这三种语句,用于定义数据库,定义表、视图、存储过程等数据库对象。CREATE表示创建,ALTER表示修改,DROP表示删除。(2)数据操纵(Data Manipulation Language,DML)DML语句包括INSERT、UPDATE、DELETE这三种语句,分别用于对数据库中的数据进行增、删、改操作。INSERT表示插入,UPDATE表示修改、DELETE表示删除。1.3.1【相关知识】SQL语句的分类 项目一目一 认识数据数据库(3)数据查询(Data Query Language,DQL)DQL语句是SELECT语句,用于查询数据库中的数据。SELECT语句是SQL语言中使用频
21、率最高的一条语句。(4)数据控制(Data Control Language,DCL)DCL语句包括GRANT、REVOKE、COMMIT、ROBACK这四个基本语句,用于控制用户的访问权限。GRANT表示给用户授权,REVOKE表示收回用户权限,COMMIT表示提交事务,ROLLBACK回滚事务。1.3.1SQL语句的分类【相关知识】项目一目一 认识数据数据库(1)综合统一(2)高度非过程化(3)面向集合的操作方式(4)以同一种语法结构提供两种使用方式(5)语言简洁,易学易用1.3.2SQL语言的特点【相关知识】项目一目一 认识数据数据库【任务实施】通过观察下面的几个SQL语句,进一步了解S
22、QL语句的分类,体会SQL语言的特点。1.CREATE DATABASE mydb;说明:CREATE表示创建,是一条DDL语句,功能是创建一个数据库,数据库名称mydb。2.DELETE FROM stumarks;说明:DELETE表示删除,是一条DML语句,功能是删除stumar表中的所有记录。3SELECT stuno,stuname FROM stuinfo WHERE stusex=女;说明:SELECT表示查询,是一条DQL语句,功能是查询stuinfo表中所有女生的学号和姓名。4GRANT SELECT ON stumarks TO wang;说明:GRANT表示授予,是一条D
23、CL语句,功能是将查询stumarks表的权限授予用户wang。了解SQL语言1.3THANKS!项目二项目二 数据库设计数据库设计项 目 描 述 项目二目二 数据数据库设计 数据库是有结构的,需要进行设计,开发一个应用系统,经过需求分析并完成功能设计后,就可以进行数据库设计。本项目将根据一个小型学生成绩管理系统的需求分析结果,设计该系统后台数据库的概念结构,再转换为数据库的逻辑结构,并根据关系规范化理论对其进行评价及优化。学习目标 项目二目二 数据数据库设计知识目标:识记E-R图的设计原则及步骤。识记E-R图转换成关系模型的一般转换规则。理解关系规范化理论。能力目标:能根据某小型应用系统需求
24、设计E-R图(数据库的概念结构)。能把E-R图转换成关系模型(数据库的逻辑结构)。能在函数依赖范畴内判断关系模式满足第几范式,并能通过分解达到3NF。目 录CONTENTS任任务2.1任任务2.2概念结构设计逻辑结构设计E-R图转换成关系模型任任务2.3逻辑结构设计关系模型的优化 项目二目二 数据数据库设计 任务2.1概念结构设计 项目二目二 数据数据库设计 根据一个小型学生成绩管理系统的用户需求,确定实体、实体的属性、实体之间的联系,设计各局部应用的E-R图,然后合并成初步E-R图,消除冗余信息后,得到基本的E-R图,完成该系统后台数据库的概念结构设计。【任务描述】概念结构设计2.1 项目二
25、目二 数据数据库设计【相关知识】概念结构设计2.11.2.22.1.1设计全局E-R图设计局部E-R图 项目二目二 数据数据库设计设计局部E-R图的第一步先要确定各局部应用中的实体、实体的属性、实体的码、实体间的联系及联系的类型(1:1,1:n,m:n)。确定一个事物是否作为属性处理要遵守两条原则:属性不能再具有需要描述的性质,即属性必须是不可分的数据项,不能包含其他属性。属性不能与其他实体具有联系,即E-R图中的联系只发生在实体之间。凡满足以上二条准则的事物,一般作为属性对待。设计局部E-R图2.1.1 项目二目二 数据数据库设计例如,学生是一个实体,有学号、姓名、性别等属性,如果班级只是作
26、为学生这个实体的属性,表示学生所在班级,但如果还需要描述学生的班主任、班级固定教室等与班级相关的信息,则需要考虑把班级作为一个实体来处理,如图2-1所示。设计局部E-R图2.1.1图2-1 班级作为一个实体 项目二目二 数据数据库设计1合并E-R图,生成初步E-R图合并要解决各局部E-R图间的冲突,主要有三种:属性冲突、命名冲突和结构冲突。(1)属性冲突属性冲突主要包含以下两种:值域冲突,即属性值的类型、取值范围或取值集合不同。例如,学生年龄,有些部门用出生日期表示学生的年龄,有些部门用整数表示学生的年龄。取值单位冲突。例如:零件的重量,有的以公斤为单位,有的以千克为单位。设计全局E-R图2.
27、1.2 项目二目二 数据数据库设计(2)命名冲突命名冲突可能发生在实体、联系或属性之间,其中属性的命名冲突最为常见。主要包含以下两种:同名异义,即同一名字的对象在不同的局部E-R图中具有不同的意义。异名同义,即不同名字的对象在不同的局部E-R图中具有相同的意义。设计全局E-R图2.1.2 项目二目二 数据数据库设计(3)结构冲突同一对象在不同局部E-R图中有不同的抽象。同一实体在不同局部E-R图中的属性组成不同,可能是属性个数或属性的排列次序不同。这是很常见的冲突,原因是不同的局部应用关心的是该实体的不同特性。实体间的联系在不同的局部E-R中为不同的类型。设计全局E-R图2.1.2 项目二目二
28、 数据数据库设计2消除不必要的冗余,生成基本E-R图在初步E-R图中可能存在一些冗余的数据和实体间冗余的联系。所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。消除了冗余数据和冗余联系的E-R图称为基本E-R图。设计全局E-R图2.1.2 项目二目二 数据数据库设计【任务实施】根据一个小型学生成绩管理系统的用户需求,设计该系统后台数据库的概念结构。一个小型学生成绩管理系统的需求分析结果如下:系统要能存储、管理并查询以下信息:每位学生的基本信息(学号、姓名、性别、出生日期、家庭地址、平均成绩、所在班级)、各班级的基本信息(班级号、班级名称、班主任、固定教室)、各门课
29、的基本信息(课程号、课程名、学分、任课教师)、教师的基本信息(工号、姓名、性别、职称)、班级开课情况、学生选修课程的成绩、教师担任班主任的情况、教师讲授课程的情况、各种统计数据。概念结构设计2.1 项目二目二 数据数据库设计【任务实施】(1)数据抽象:确定实体、属性及实体间联系4个实体:学生、班级、教师、课程。各实体属性确定如下(带下划线的属性为各实体的码):学生:学号、姓名、性别、出生日期、家庭地址、平均成绩。班级:班级号、班级名称、固定教室。教师:工号、姓名、性别、职称。课程:课程号、课程名、学分。概念结构设计2.1 项目二目二 数据数据库设计【任务实施】各实体间有如下联系:a.一个学生可
30、以选修多门课,一门课可以被多个学生选修,学生选修课程会有成绩。b.一个班级可以开多门课,一门课可以有多个班级开。c.一个班级有多个学生,一个学生只能属于一个班级。d.一个教师可以讲授多门课程,一门课程可以有多个教师。e.一个教师可以担任多个班级的授课任务,一个班级可以有多个老师f.一个教师可以担任一个班的班主任,一个班级只有一个班主任。概念结构设计2.1 项目二目二 数据数据库设计【任务实施】(2)设计局部E-R图根据数据抽象结果,可以得到教师管理班级、学生选修课程、教师授课这几个局部E-R图,分别如图2-2、图2-3、图2-4所示。概念结构设计2.1图2-2 教师管理班级局部E-R图 项目二
31、目二 数据数据库设计【任务实施】概念结构设计2.1图2-3学生选修课程局部E-R图 项目二目二 数据数据库设计【任务实施】概念结构设计2.1图2-4 教师讲授课程局部E-R图 项目二目二 数据数据库设计【任务实施】概念结构设计2.1图2-5 学生成绩管理初步E-R图(3)合并E-R图,生成初步E-R图合并教师管理班级、学生选修课程、教师讲授课程这三个局部E-R图,合并时如果存在属性冲突、命名冲突及结构冲突,都要把它们消除掉,得到初步的E-R图如图2-5所示。项目二目二 数据数据库设计【任务实施】(4)消除不必要的冗余,生成基本E-R图消除初步E-R图(如图2-5所示)中存在的冗余数据和冗余联系
32、如下:消除冗余的联系:“班级”与“课程”之间的联系“开课”,可以由“班级”与“学生”之间的“拥有”联系及“学生”与“课程”间的“选修”联系推导出来,所以“班级”与“课程”之间的“开课”联系属于冗余的联系,可以消除。消除冗余的数据:“学生”这个实体的“平均成绩”属性,可以由“学生”与“课程”间“选修”联系的属性“成绩”统计出来,所以“学生”实体中的“平均成绩”属于冗余数据,可以消除。概念结构设计2.1 项目二目二 数据数据库设计【任务实施】消除冗余联系和冗余数据后,得到学生成绩管理系统基本E-R图,即全局E-R图,如图2-6所示。概念结构设计2.1图2-6 学生成绩管理全局E-R图 项目二目二
33、数据数据库设计任务2.2逻辑结构设计E-R图转换成关系模型 项目二目二 数据数据库设计针对一个具体应用问题,数据库应该由哪几个关系模式构成,每个关系模式该有哪些属性,这是数据库逻辑结构设计的问题。把描述学生成绩管理数据库概念结构的E-R图,转换为关系模型(数据库逻辑结构)。【任务描述】E-R图转换成关系模型2.2 项目二目二 数据数据库设计E-R图转换成关系模型要解决的问题:如何将实体和实体间的联系分别转换为关系模式,并确定这些关系模式的属性及码。1.一个实体转换为一个关系模式,关系的属性就是实体的属性,关系的码就是实体的码。2.实体间联系的转换,根据联系的不同类型一般转换规则如下:1:1联系
34、,一般将该联系与任意一端实体所对应的关系模式合并,即在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。1:N联系,一般将该联系与N端实体所对应的关系模式合并,即在N端所对应的关系模式中增加1端实体的码及联系本身的属性。M:N联系,一般将该联系转换为一个关系模式,关系的属性为两端实体的码加联系本身的属性组成,两端实体的码组成关系的码或关系码的一部分。2.2【相关知识】项目二目二 数据数据库设计【任务实施】把描述学生成绩管理数据库概念结构的E-R图(如下图所示),转换为关系模型。2.2E-R图转换成关系模型 项目二目二 数据数据库设计【任务实施】E-R图转换为关系模型分为二部分内容:1.
35、实体的转换学生成绩管理E-R图中“学生”、“班级”、“教师”和“课程”4个实体对应关系模式如下:学生(学号,姓名,性别,出生日期,家庭地址)班级(班级号,班级名,固定教室)教师(工号,姓名,性别,职称)课程(课程号,课程名,学分)2.2E-R图转换成关系模型 项目二目二 数据数据库设计【任务实施】2.实体间联系的转换(1)“管理”是1:1联系,可选择与“班级”的关系模式合并,加上另一个关系模式“教师”的码:工号。“工号”在“班级”关系模式中作外码。班级(班级号,班级名,固定教室,工号)(2)“拥有”是1:N联系,要与N端(“学生”)对应的关系模式合并,“学生”关系模式加上1端(“班级”)实体的
36、码:班级号。“班级号”在“学生”关系模式中作外码。学生(学号,姓名,性别,出生日期,家庭地址,班级号)2.2E-R图转换成关系模型 项目二目二 数据数据库设计【任务实施】(3)“任课”、“讲授”、“选修”都是M:N联系,要转换成一个新的关系模式,关系的属性由两端实体的码加联系本身的属性组成,两端的码组成新关系的码。任课(工号,班级号)讲授(工号,课程号)选修(学号,课程号,成绩)2.2E-R图转换成关系模型 项目二目二 数据数据库设计【任务实施】转换结果一共得到7个关系模式,具体如下:学生(学号,姓名,性别,出生日期,家庭地址,班级号)班级(班级号,班级名,固定教室,工号)教师(工号,姓名,性
37、别,职称)课程(课程号,课程名,学分)任课(工号,班级号)讲授(工号,课程号)选修(学号,课程号,成绩)2.2E-R图转换成关系模型 项目二目二 数据数据库设计任务2.3逻辑结构设计关系模型的优化 项目二目二 数据数据库设计 数据库逻辑结构设计的结果不是唯一的,不同设计人员可能得到不同的关系模型。E-R图转换为关系模型后,还需要以关系规范化理论为指导,评价各个关系模式达到的范式级别,按照应用需求可以进一步对它们进行优化。根据任务2.2实施得到的学生成绩管理数据库的关系模型,在函数依赖范畴内判断每个关系模式最高满足第几范式,如果没有达到3NF,在关系规范化理论指导下,通过分解进行优化。【任务描述
38、】2.3关系模型的优化 项目二目二 数据数据库设计【相关知识】2.3关系模型的优化2.3.32.3.1范式不好的关系模式存在的问题2.3.2函数依赖2.3.4关系模式分解 项目二目二 数据数据库设计例如,有一个描述教学管理的数据库,该数据库涉及的对象包括学生的学号(sno)、姓名(sname)、性别(ssex)、所在系(sdept)、系主任姓名(mname)、课程号(cno)、课程名(cname)和成绩(score)。假设用一个关系student来存放所有数据,则该关系的关系模式如下:student(sno,sname,ssex,sdept,mname,cno,cname,score)该关系各
39、属性间存在以下联系:一个系有若干个学生,一个学生只属于一个系。一个系只有一系主任;一个学生可以选修多门课程,每门课程可以有若干学生选修;每个学生选修每门课程都有一个成绩。不好的关系模式存在的问题2.3.1 项目二目二 数据数据库设计表2-1是关系模式student的一个实例,经过分析,可以得出这个关系的码是(sno,cno)。不好的关系模式存在的问题2.3.1该关系模式存在以下问题:(1)数据冗余严重(2)修改复杂(3)插入异常(4)删除异常 项目二目二 数据数据库设计定义2.1:设R(U)是属性集U上的关系模式,X、Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在
40、X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XY。根据定义,若XY,则X属性值与Y属性值可以是多对一或一对一的联系,不可以是一对多的联系。例如,学号姓名,即学号值能够决定姓名的值,反过来,姓名学号只有在没有同名的情况下才会成立,如果允许同名,学号就不依赖于姓名了。函数依赖2.3.2 项目二目二 数据数据库设计一些术语和记号:lXY,但YX,则称XY是非平凡的函数依赖。lXY,但YX,则称XY是平凡的函数依赖。平凡的函数依赖必然成立,所以若不特别声明,总是讨论非平凡的函数依赖。l若XY,X称为这个函数依赖的决定因素。l若XY,YX,则记作XY。l若Y不函数依赖于
41、X,则记作X Y。函数依赖2.3.2 项目二目二 数据数据库设计定义2.2 在R(U)中,如果XY,并且对于X的任何一个真子集X,都有X Y,则称Y对X完全函数依赖,记作 若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作 函数依赖2.3.2PPF例如:(sno,cno)sname,(sno,cno)cname,因为学生姓名由学号就可以决定,课程名由课程号就可以决定。(sno,cno)score,因为成绩要由学号和课程号一起决定。项目二目二 数据数据库设计定义2.3 在R(U)中,如果XY(YX),Y X,YZ(ZY),则称Z对X传递函数依赖,记作 。这里加上条件Y X,是因为如果Y
42、X,即XY,则Z直接依赖于X,而不是传递函数依赖。函数依赖2.3.2T例如:关系模式student(sno,sname,ssex,sdept,mname,cno,cname,score)中有:snosdept,sdept sno,sdeptmname,所以 sno mname 项目二目二 数据数据库设计范式是符合某一种级别的关系模式的集合。函数依赖范畴内4个范式的定义:定义2.4 如果关系模式 R中不包含多值属性,即每个属性的数据项都不可再分,则R1NF。根据关系的性质,所有的关系模式必须是1NF,不满足1NF的关系是非规范化的关系(即表中有子表)。定义2.5 如果R1NF,且R中不存在非主属
43、性对候选码的部分函数依赖,则R2NF。定义2.6 如果R1NF,且R中不存在非主属性对候选码的传递函数依赖,则R3NF。定义2.7 如果R1NF,若X Y且 Y X时X必含有候选码,则RBCNF。各范式间的关系:BCNF3NF2NF1NF范 式2.3.3 项目二目二 数据数据库设计关系模式分解的基本步骤如下:1NF 消除非主属性对候选码的部分函数依赖 2NF 消除非主属性对候选码的传递函数依赖 3NF 消除主属性对候选码的部分及传递依赖 BCNF关系模式分解的原则:分解要保持等价,既要保持数据等价,也要保持语义等价。关系模式分解2.3.4一个低一级范式的关系模式通过模式分解可以转换为若干个高一
44、级范式的关系模式的集合,这个过程称为规范化。项目二目二 数据数据库设计例如:关系模式student(sno,sname,ssex,sdept,mname,cno,cname,score)的分解过程如下:消除非主属性sname、ssex、ssdept、mname、cname对码(sno,cno)的部分依赖 SD(sno,sname,ssex,sdept,mname)SC(sno,cno,score)C(cno,cname)很容易判断出:SD2NF,SCBCNF,CBCNF 消除关系模式SD中非主属性mname对码(sno)的传递依赖,SD分解为:S(sno,sname,ssex,sdept)D(
45、sdept,mname)分解后,SBCNF,DBCNF。关系模式分解2.3.4 项目二目二 数据数据库设计关系模式分解的基本思想就是逐步消除属性间数据依赖中不合适的部分,使各个关系模式达到某种程度的“分离”,即“一事一地”的关系模式设计原则,让一个关系模式描述一个实体或实体间的联系。关系模式分解2.3.4例如,有以下三个关系模式:学生(学号,姓名,性别,出生日期,家庭地址)课程(课程号,课程名,学分,任课教师)选修(学号,课程号,成绩)关系模式分解的一个重要结论:关系模式R总可以保持等价地分解为若干个3NF。注意事项:分解结果不是唯一的,并不是规范化程度越高,模式就一定越好。项目二目二 数据数
46、据库设计【任务实施】1根据任务2.2实施得到的“学生成绩管理”数据库的关系模型,在函数依赖范畴内判断每个关系模式最高满足第几范式,如果没有达到3NF,在关系规范化理论指导下,通过分解进行优化。注:“学生成绩管理”数据库的关系模型由以下7个关系模式组成:学生(学号,姓名,性别,出生日期,家庭地址,班级号)班级(班级号,班级名,固定教室,工号)教师(工号,姓名,性别,职称)课程(课程号,课程名,学分)任课(工号,班级号)讲授(工号,课程号)选修(学号,课程号,成绩)2.3关系模型的优化 项目二目二 数据数据库设计【任务实施】分析:判断一个关系模式满足第几范式,需要先分析它的属性间的函数依赖。(1)
47、各个关系模式的函数依赖“学生”:学号(姓名,性别,出生日期,家庭地址,班级号)“班级”:班级号班级名,班级号固定教室,班级号工号,班级名固定教室,班级名工号,固定教室工号“教师”:工号(姓名,性别,职称)“课程”:课程号(课程名,学分)“选修”:(学号,课程号)成绩2.3关系模型的优化 项目二目二 数据数据库设计【任务实施】(2)根据函数依赖判断第几范式“任课”和“讲授”这二个关系模式都是全码,一定是BCNF;“学生”、“教师”、“课程”、“选修”这4个关系模式的决定因素只有码,所以也是BCNF;班级这个关系模式,如果考虑每个班固定教室不同,则每个属性值都不会重复,都是候选码,因些,班级这个关
48、系模式也属于BCNF。在函数依赖范畴内,这7个关系模式都已达到了最高范式,无需再分解。2.3关系模型的优化THANKS!项目三项目三 部署部署MySQL环境环境项 目 描 述 项目二目二 数据数据库设计 创建数据库前先要在电脑上部署好具体的数据库管理系统环境。本项目将完成MySQL数据库管理系统环境的部署,包括MySQL8.0.19软件的下载、安装与配置。部署完成后使用MySQL,包括启动与停止MySQL服务、登录MySQL服务器等操作。学习目标 项目二目二 数据数据库设计知识目标:了解MySQL版本信息及安装方式。能力目标:能以安装包或压缩包方式完成MySQL的安装与配置。能熟练使用MySQ
49、L(启动与停止MySQL服务,登录MySQL服务器等操作)。目 录CONTENTS任任务3.1任任务3.2MySQL的安装与配置使用MySQL 项目二目二 数据数据库设计 任务3.1MySQL的安装与配置 项目二目二 数据数据库设计了解MySQL版本信息,从Oracle官网下载社区版的MySQL8.0.19压缩包和安装包二个安装文件,分别以安装包、压缩包两种方式完成MySQL8.0的安装与配置。【任务描述】MySQL的安装与配置3.1 项目二目二 数据数据库设计【相关知识】312 软件版本号 免费还是付费 操作系统4 安装方式MySQL的安装与配置3.1 项目二目二 数据数据库设计1免费还是付
50、费针对不同的用户群体,MySQL分为两个版本:MySQL Community Server(社区版):该版本完全免费,但是官方不提供技术支持。MySQL Enterprise Server(企业版):该版本能够以很高的性价比为企业提供数据仓库应用,支持ACID事物处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能,但是该版本需要付费使用,官方提供电话技术支持。MySQL的安装与配置3.1【相关知识】项目二目二 数据数据库设计2操作系统MySQL支持的操作系统有Windows、UNIX、Linux、macOS等,因为UNIX和Linux操作系统的版本很多,不同的UNIX和Linux版本有不同的M