版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库概述1数据库概述2数据库设计3MySQL数据库4数据库基本操作5MySQL数据表6数据表的数据完整性7数据查询8索引和视图9MySQL编程基础10存储过程与触发器11事务与锁12备份与恢复13用户和权限管理14成绩管理系统数据库设计15图形化客户端工具Navicat操作数据库16云数据库17PHP操作MySQL数据库(附录A)18使用Java操作MySQL数据库(附录B)19Python访问MySQL数据库(附录C)全套可编辑PPT课件
学习目标了解数据库的基本概念掌握数据库、数据库系统和数据库管理系统的关系理解数据管理技术发展的三个阶段理解数据模型的概念,掌握关系数据模型的相关概念掌握关系运算的操作章节内容1.1数据库的基本概念 1.2数据管理技术的发展阶段1.3数据库的体系结构1.4数据模型
1.5关系运算1.6NoSQL数据库简介1.1数据库的基本概念
1.1.1信息与数据库1.1.2数据库管理系统1.1.3数据库系统
1.1.1信息与数据库1.数据数据(Data)是描述事物的符号记录,是数据库中存储的基本对象。可以是文本、图表、图形、图像、声音、语言、视频等。2.信息信息是现实世界事物的存在方式或运动状态的反映。或认为,信息是一种已经被加工为特定形式的数据。信息的主要特征是:信息的传递需要物质载体,信息的获取和传递要消费能量;信息可以感知;信息可以存储、压缩、加工、传递、共享、扩散、再生和增值;而数据是信息的载体和具体表现形式,信息不随数据形式的变化而变化。1.1.1信息与数据库3.数据库数据库(Database,DB)是长期存储在计算机内、有组织、可共享的大量数据的集合。数据库中的数据需要创建数据模型来描述,如网络、层次、关系模型。在数据库中的数据具有冗余度小、独立性高和易扩展性的特点。1.1.2数据库管理系统数据库管理系统(DatabaseManagementSystem,DBMS)位于用户和操作系统之间,是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。像Oracle、SQLServer和DB2都是常用的数据库管理系统软件。一般说来,数据库管理系统的功能主要包括以下几个方面。数据定义功能数据操纵功能数据库的运行管理功能数据库的建立和维护功能1.1.3数据库系统 数据库系统数据库系统(DataBaseSystem,简称DBS)是指引入数据库后的计算机应用系统,数据库系统通常包括硬件和软件,由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。数据库、数据库管理系统、数据库系统的关系:1.2数据管理技术的发展阶段1.2.1人工管理阶段1.2.2文件系统阶段1.2.3数据库系统阶段1.2.4新兴数据管理阶段1.2.5分布式数据库系统1.2.6数据库集群1.2.7面向对象数据库系统1.2.8数据仓库1.2.9数据挖掘1.2.10云计算与大数据1数据和应用程序一一对应,应用程序中的数据无法被其他程序利用。3数据的独立性很差,数据的类型、结构发生变化,则程序必须相应改变,因而数据的结构性差。2程序与程序之间存在大量重复数据,存在着数据冗余。数据2程序1程序2程序N数据1数据N1.2.1人工管理阶段数据1数据N程序1程序2程序N数据2文件系统1.2.2文件系统阶段通过文件系统来管理数据,而且数据可长期保存在设备上。数据依然是面向某一特定的应用程序;数据的共享程度比较低、数据冗余度大;整体上看,数据没有结构,但记录内有结构;数据的独立性仍然较差,数据的逻辑结构改变必须修改应用程序;应用程序自己控制数据。学生部门教务部门人事部门文件系统教师数据文件学生数据文件课程数据文件人事管理应用程序学生管理应用程序教务管理应用程序应用程序和数据文件的关系1.2.2文件系统阶段1.2.3数据库系统阶段数据结构化数据结构化是数据库的主要特征之一,是数据库系统与文件系统的本质区别。数据的共享性程度高,冗余度小,容易扩充等数据库阶段的数据不再是面向某个应用程序,而是面向整个系统,因此可以被多个用户、多个应用以多种不同的语言共享使用。数据独立性高数据独立性是数据库系统的一个最重要的特点之一,它使数据能独立于应用程序。应用程序不随数据存储结构的变化而变化,简化了应用程序的编制和程序员的工作负担。外存储器数据库1.2.3数据库系统阶段数据库系统阶段将数据集中存储在一台计算机上,进行统一组织和管理。1.2.4新兴数据库阶段随着云计算、人工智能、物联网等技术的发展,传统的关系型数据库已不再满足多样社会对于数据处理的需求,新型数据库应运而生。由于不同行业对处理数据的需求不同,致使新型数据库趋向多样化的发展:多个计算机节点共同完成任务的需求促进了分布式数据库系统与数据库集群的发展;面向对象数据库系统则适用于地理信息系统、多媒体等领域的数据处理;互联网的发展,医疗金融等行业的海量数据处理则对云计算与大数据产生需求等。1.2.5分布式数据库系统分布式数据库的定义分布式数据库是一组结构化的数据集合,它们在逻辑上属于同一系统,而在物理上分布在计算机网络的不同结点上。分布式数据库的特点
数据独立性集中与自治相结合的控制结构适当增加数据冗余度全局的一致性、客串性和可恢复性1.2.5分布式数据库系统分布式数据库系统的体系结构分片模式:是指每一个全局关系可以分为若干不相交的部分。每一部分称为一个片段。分片模式定义片段及全局关系到片段的映像,一个全局关系可以对应多个片段,而一个片段只来自一个全局关系。1.2.5分布式数据库系统分布式数据库系统的体系结构分布模式:可以定义片段的存放结点。分布模式的映像确定了分布式数据库是冗余的还是非冗余的。若映像是一对多的,即一个片段可分配到多个结点上存放,则是冗余的分布式数据库;若映像是一对一的,则是非冗余的分布式数据库。1.2.6数据库集群数据库集群概念是指将多个数据库实例(节点)组合在一起形成一个整体系统。数据库集群的目标是提高数据库系统的性能、可用性和可扩展性。数据库集群特点高可用性负载均衡数据复制和同步扩展性1.2.6数据库集群数据库集群与分布式数据库系统的区别分布式系统是由多个独立的计算机节点组成,这些节点通过网络连接,并共同协作完成一个大型任务。每个节点都可以独立运行,并具有自己的处理能力和数据存储。集群则是由一组计算机节点组成,这些节点通常通过高速网络连接,并作为一个整体来提供高性能计算或高可用性服务。在集群中,各个节点通常共同完成一个小型任务,且节点间存在主从关系。1.2.7面向对象数据库系统面向对象数据库系统概念面向对象数据库系统(ObjectOrientedDataBaseSystem,OODBS)是数据库技术与面向对象程序设计方法相结合的产物。面向对象数据库系统支持面向对象数据模型(OOD模型),即面向对象数据库系统是一个持久的、可共享的对象库的存储和管理者;而一个对象库是由一个OOD模型所定义的对象的集合体。面向对象数据库语言主要包括对象定义语言和对象操纵语言,对象操纵语言中的一个重要子集是对象查询语言。面向对象数据库一般应具备下列功能:类的定义与操纵:操作/方法的定义:对象的操纵:1.2.8数据仓库数据仓库概念是一个面向主题的、集成的、稳定的、随时间变化的数据集合,它用于支持经营管理中的决策制定过程。数据仓库特点:面向主题
(2)
集成(3)
稳定且不可更新
(4)随时间不断变化数据仓库结构数据装载器
(2)仓库管理器(3)查询处理器
(4)数据仓库的数据库管理系统(5)元数据1.2.9数据挖掘数据挖掘概念从大量数据中提取隐含的、人们事先不知道地但又可能有用的信息和知识地过程。数据挖掘技术:
预测预测分为分类和值预测两种。预测类似于人员学习的过程——仔细观察某种现象后得出对该现象特征的描述或模型。(2)关联分析数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律性,就称为关联。(3)
聚类数据库中的记录可被划分为一系列有意义的子集,即聚类。(4)
偏差检测数据库中的数据常有一些异常记录,从数据库中检测这些偏差很有意义。1.2.10云计算与大数据云计算概念是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备。其核心思想是将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池,使用户能够按需获取计算力、存储空间和信息服务。云计算特点:
虚拟化技术(2)动态可扩展(3)按需部署
(4)灵活性高(5)可靠性高
(6)性价比高(7)可扩展性
1.2.10云计算与大数据大数据概念什么是“大数据"呢?如果从字面意思来看,大数据指的是巨量数据。那么可能人会问,多大量级的数据才叫大数据?不同的机构或学者有不同的理解,难以有一个非常定量的定义,只能说,大数据的计量单位已经越过TB级别发展到PB、EB、ZB、YB基至BB级别。大数据特点:
大量
(2)多样(3)高速
(4)价值1.3数据库的体系结构
1.3数据库的体系结构
通常DBMS将数据库的体系结构分为三级模式:外模式、模式和内模式。数据库的三层模式外模式用户模式或者子模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示模式逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。内模式内模式又称为存储模式或者物理模式。一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。1.3数据库的体系结构
三级模式结构之间差别往往很大,为了实现这3个抽象级别的联系和转换,DBMS在三级模式结构之间提供了两级映像:外模式/模式映像,模式/内模式映像。如图1-2所示。数据库内模式模式外模式外模式外模式应用2应用1应用3外模式/模式映像模式/内模式映像图1-2数据库的三级模式1.3数据库的体系结构
数据库管理系统的两级映射外模式/模式逻辑独立性模式/内模式物理独立性1.4数据模型
1.4.1概念模型与E-R方法 1.4.2数据模型的分类1.4.3关系数据模型1.4.4关系的完整性规则1.4数据模型 模型是现实世界特征的模拟和抽象。数据模型(DataModel)也是一种模型,它是现实世界数据特征的抽象。人们把客观存在的事物以数据的形式存储到计算机中,经历了对现实生活中事物特征的认识、概念化到计算机数据库里的具体表示的逐级抽象过程。此过程分为3个阶段,即现实世界阶段、信息世界阶段和机器世界阶段,如图1-3所示。31现实世界信息世界如E-R图机器世界如层次模型、关系模型、网状模型抽象转换图1-3数据处理的三个阶段1.4数据模型 概念模型中最常用的是实体联系模型(E-R模型),概念模型的目的是根据需求分析得到概念模型(即E-R图),E-R图是数据库人员之间交流的工具,与具体的DBMS无关。建立概念模型后,需要将概念模型转换成某种具体数据库系统支持的模型,在机器世界使用的模型叫做数据模型。将信息世界转换成机器世界是将E-R图转换为某一种数据模型,数据模型与DBMS相关。321.4.1概念模型与E-R方法概念模型,用于信息世界的建模,是现实世界与信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。1.信息世界中的基本概念(1)实体(Entity)(2)属性(Attitude)(3)域(Domain)(4)码(Key)也称关键字。用于区别实体中不同个体的一个属性或几个属性的组合,称为该实体集的“码”。当有多个属性可作为码而选定其中一个时,则称它为该实体的“主码”。若在实体诸属性中,某属性虽非该实体主码,却是另一实体的主码,则称此属性为“外部码”或简称为“外码”。(5)实体型(EntityType)(6)实体集(EntitySet)1.4.1概念模型与E-R方法(7)联系(Relationship)实体集之间的联系主要有以下几种联系。①一对一联系(1:1)如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。②一对多联系如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。③多对多联系(m:n)如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系,记为m:n。实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。1.4.1概念模型与E-R方法2.实体——联系方法(E-R方法)概念模型中最常用的方法是实体-联系方法,简称E-R方法。该方法直接从现实世界中抽象出实体和实体间的联系,然后用E-R图来表示数据模型。在E-R图中实体用矩形框表示,并在矩形框内写明实体名;联系用菱形表示,并用边将其与有关的实体连接起来,并在边上标上联系的类型;属性用椭圆表示,并用无向边将其与相应的实体连接起来。对于有些联系,其自身也会有某些属性,同实体与属性的连接类似,将联系与其属性连接起来。如图1-4所示。图1-4E-R图表示法1.4.1概念模型与E-R方法【例1-1】用E-R图来表示学生选课与教师授课,假设一个学生可以选修多门课程,而一门课程又可以有多个学生来选修,一门课可以由多位教师讲授,一位教师也可以讲授多门课程。学生选课涉及的实体有:学生:属性有学号、姓名、性别、年龄、所在系。课程:课程号、课程名、先行课号,学分。教师:教师号,姓名,年龄,职称。学生与课程之间是多对多的关系,学生选修课程会有成绩。1.4.1概念模型与E-R方法1.4.1概念模型与E-R方法图1-6为实体及其联系图,在图1-6中将相应的实体属性加上就形成一个完整的实体联系图。1.4.2数据模型的分类一般来说,数据模型是严格定义的概念的集合。这些概念精确描述了系统的静态特性、动态特性和完整性约束条件。数据模型的三个要素包括:数据结构、数据操作和完整性约束。数据结构:是从静态特性描述数据,是研究对象类型的集合。数据操作:指可以对数据库中各种对象进行的什么操作,是操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。约束条件:约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。数据库管理系统常用的数据模型包括层次模型、网状模型和关系模型。1.4.2数据模型的分类层次数据模型1.整个模型中有且仅有一个节点没有父节点,其余的节点必须有且仅有一个父节点,但是所有的节点都可以不存在子节点;2.所有的子节点不能脱离父节点而单独存在,也就是说如果要删除父节点,那么父节点下面的所有子节点都要同时删除,但是可以单独删除一些叶子节点;3.每个记录类型有且仅有一条从父节点通向自身的路径;1.4.2数据模型的分类网状模型在整个模型中允许存在两个或多个没有根节点的节点,同时也允许一个节点存在一个或者多个的父节点,成为一种网状的有向图。节点之间的对应关系不再是1:n,而是一种m:n的关系,从而克服了层次数据模型的缺点。1.4.2数据模型的分类关系模型关系数据模型使用关系(二维表)来表示实体和实体之间联系。。关系型数据模型对应的数据库自然就是关系型数据库了,支持关系数据模型的数据库管理系统称为关系型数据库管理系统,这是目前应用最多的数据库。在关系数据模型中,无论是是实体、还是实体之间的联系都是被映射成统一的关系:一张二维表,在关系模型中,操作的对象和结果都是一张二维表。1.4.3关系数据模型表1-1学生表学号姓名性别年龄2018202011李平男192018202012王梅女202018202013董东男182018202014王芳女19关系数据模型是由关系数据结构、关系操作的集合和关系完整性约束三部分组成。从用户观点来看,关系模型中逻辑数据结构是一张简单的二维表,它由行和列组成。例如表1-1这张二维表就是一个关系。1.4.3关系数据模型(1)关系一个关系就是一张二维表,每个关系都有一个关系名,例如学生表就是学生关系。(2)元组二维表中的行称为元组,每一行是一个元组,对应一条记录。(3)属性二维表的列称为属性,又称为字段。(4)关系模式对关系的描述,关系模式一般表示为关系名(属性1,属性2,…,属性n),例如,学生关系模式表示为:学生(学号,姓名,性别,年龄)。(5)域表示属性的取值范围,例如,性别属性的域是{男,女}。(6)关键字或码在关系的属性中,能够用来唯一标识元组的属性(或属性组合)称为关键字或码。1.4.3关系数据模型(7)候选关键字或候选码候选码可以用来唯一地标识不同的元组的属性或者属性组合。(8)主码(主键)是从候选码中选择一个用来作为主码。如果一张表只有一个候选码,则该候选码就是主码。(9)分量表示元组中的一个属性值,例如王芳就是学生王芳的分量。(10)外码(外部关键字)又称为外键,是指某个属性不是A表的主码,但是是B表的主码,则在A表中这个属性就称为外键。(11)主属性和非主属性在一个关系中,包含在任何候选关键字中的各个属性称为主属性;不包含在任一候选码中的属性称为非主属性。例如,学生表中的学号是主属性,而姓名、性别和年龄是非主属性。1.4.3关系数据模型在关系数据库中,关系具有以下性质:所有的属性都是原子的元组的顺序无关紧要,即元组的次序可以任意交换。属性的顺序是非排序的,即它的次序可以任意交换。同一属性名下的诸属性值(同列)是同类型数据,且来自同一个域。关系中没有重复元组,任意元组在关系中都是唯一的。属性必须具有不同的属性名,不同的属性可来自同一个域。1.4.4关系的完整性规则实体完整性元组在主码上不能相同或者不能为空值(NULL)参照完整性外码的取值要么为空,要么取主码表中的取值,而不能取其他的值。用户自定义完整性针对某一具体数据的约束条件,由具体应用环境决定。1.5关系运算
1.5.1传统的集合运算 1.5.2专门的关系运算 1.5.1传统的集合运算传统的集合运算是二目运算(又称二元运算)。以下运算用到的两个关系R和S均为n元关系,且相应的属性取自同一个域。1.并(Union)关系R和S的并为属于R或属于S的所有元组组成的集合,删去重复的元组,其结果仍为n元关系。记为 R∪S={t|t∈R∨t∈S}。关系R和S进行“并”运算的结果如表1-4所示。
关系R关系SRUS1.5.1传统的集合运算2.交(Intersection)关系R和S的交为:由既属于R又属于S的元组组成,其结果仍为n元关系。记为R∩S={t|t
R∧t
S},R∩S=R–(R-S)。关系R和S进行“交”运算的结果如表1-5所示。R∩S
关系R关系S1.5.1传统的集合运算3.差(Difference)关系R和S的差为:由属于R而不属于S的所有元组组成,其结果仍为n元关系。记为 R-S={t|t
R∧t
S}。关系R和S进行“差”运算的结果如表1-6所示。R-S
关系R关系S1.5.1传统的集合运算4.笛卡尔乘积(CartesianProduct)设关系R和S分别是n元和m元关系,若R有k1个元组,S有k2个元组,则关系R和S的笛卡尔积有k1×k2个元组。记为
关系R关系S1.5.1传统的集合运算R×S1.5.2专门的关系运算1.选择(Selection)选择又称为限制,它是在关系中满足给定条件的元组的子集。记作:σF(R)={t|t
R∧F(t)='真'}其中F表示选择条件,它是一个逻辑表达式,取逻辑“真”或“假”。选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。这是从行的角度进行的运算。关系R【例1-3】对关系R进行以下查询的关系运算。(1)查询男生的信息。
σ性别=′男′(R)(2)查询年龄大于20的学生的信息。σ年龄>20(R)(3)查询年龄大于20的男学生的信息。σ性别=′男′∧年龄>20(R)1.5.2专门的关系运算2.投影(Projection)关系R上的投影是从R中选择出若干属性列组成新的关系。记作:πA(R)={t[A]|t
R},其中A为R中的属性列。投影操作是从列的角度进行的运算,也就是选择关系的部分列而得到的新的关系,投影又叫做垂直筛选。投影操作之后不仅去掉了原关系中的某些字段,而且还可能取消某些元组(去掉重复的行)。1.5.2专门的关系运算【例1-4】对关系R进行以下查询的关系运算。(1)查询关系R的年龄字段。关系代数为:π年龄(R),得到的结果如表1-12所示。(2)查询关系R的姓名和年龄字段。关系代数为:π姓名,年龄(R),得到的结果如表1-13所示。关系R表1-12π年龄(R)表1-13π姓名,年龄(R)1.5.2专门的关系运算3.连接(Join)连接分为内连接和外连接,内连接是只将满足连接条件的记录保存在结果中,而外连接除了将满足条件的元组保存在结果中,还把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTERJOIN)。外连接分为左外连接、右外连接和完全外连接。如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFTOUTERJOIN或LEFTJOIN)。如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHTOUTERJOIN或RIGHTJOIN)。如果把左边关系和右边关系中不满足连接条件的元组也放在结果中,就叫完全外连接(FULLJOIN)。1.5.2专门的关系运算从两个关系的笛卡尔积中选取属性间满足一定条件的元组。相比较的属性是可比的属性。连接运算中最为重要也最为常用的连接是:条件连接、等值连接和自然连接。条件连接:当要满足某个给定条件时,称为条件连接。等值连接:给定条件为相等的连接。自然连接:若关系R和S具有相同的属性组B,则连接条件是两个关系R和S中所对应的同名属性组B中的所有属性的值必须对应相等。内连接也称为θ连接。连接运算的含义是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。1.5.2专门的关系运算当连接符号θ为=时的连接运算叫做等值连接。等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组而得到的关系。自然连接是一种特殊的等值连接,等值连接中包含相同的字段,这样的关系看起来很不自然,为了让连接后的关系更加自然,两个连接关系中进行比较的字段必须是相同的属性或者属性组合,在结果中把重复的列去掉。1.5.2专门的关系运算【例1-5】有两个关系R和S,如表1-14、1-15所示。分别计算关系R与S的θ连接(C<D)、等值连接和自然连接运算。表1-14R关系表1-15S关系1.5.2专门的关系运算
R.年龄<S.年龄
R.年龄=S.年龄1.5.2专门的关系运算
1.6NoSQL数据库简介NoSQL概念NoSQL数据库泛指非关系型的数据库,指其在设计上和传统的关系数据库不同,常用的数据模型有Cassandra、Hbase、BigTable、Redis、MongoDB、CouchDB、Neo4j等。NoSQL种类健值(Key-Value)模型列存储模型文档型模型图(Graph)模型1.6NoSQL数据库简介NoSQL特点(1) 读写速度快、数据容量大。具有对数据的高并发读写和海量数据的存储。(2) 易于扩展。可以在系统运行的时候,动态增加或者删除节点,不需要停机维护。(3) 支持一致性策略。即遵循BASE原则。(4) 灵活的数据模型。不需要事先定义数据模式和预定义表结构。数据中的每条记录都可能有不同的属性和格式,当插入数据时,并不需要预先定义它们的模式。(5) 高可用性。NoSQL数据库将记录分散在多个节点上,对各个数据分区进行备份(通常是3份),以应对节点失败。
ThankYou!
数据库设计学习目标
掌握关系数据库的规范化理论。
掌握数据库设计的基本步骤。
掌握如何将概念模型转换成关系模式。
了解数据库设计的基本原则。章节内容2.1关系数据库的规范化2.2数据库设计步骤2.1关系数据库的规范化
2.1.1关系数据库规范化理论2.1.2第一范式(1NF) 2.1.3第二范式(2NF) 2.1.4
第三范式(3NF)和BCNF
2.1.1关系数据库规范化理论关系数据库的规范化理论最早可追溯至1970年,当时E.F.Codd提出了关系模型,规范化问题也随之被引入。规范化理论的核心在于通过分析关系模式的属性间的依赖关系,将关系模式逐步分解为不同的范式,以优化数据库结构。这些范式包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、Boyce-Codd范式(BCNF)和第四范式(4NF)2.1.1关系数据库规范化理论规范化理论的提出和发展,为关系数据库的设计提供了一套科学的指导方法。通过逐步分解关系模式,消除不合适的函数依赖和多值依赖,规范化理论能够优化数据库结构,减少数据冗余,避免更新异常关系模型基于严格的数学理论基础,这使得它成为研究和设计数据库的理想对象,并提高查询效率。2.1.1关系数据库规范化理论好的数据库设计是高效、可扩展且易于维护的关键。那么,什么是好的数据库呢?在设计数据库关系模式时,是否可以将所有信息都放在一张表中呢?答案是否定的。虽然单表设计可能在某些情况下简化查询操作,但它往往会导致一系列严重问题,从而降低数据库的整体性能和可维护性。因此,构建合适的数据库模式是数据库设计的核心问题。如果数据库没有经过规范设计,可能会引发以下主要问题:冗余:将所有信息存储在一张表中会导致大量数据冗余,不仅浪费存储空间,还可能引发数据一致性问题。例如,重复的信息在更新时需要多次修改,增加了出错的风险。更新异常:冗余信息不仅浪费存储空间,还会增加更新操作的复杂性和难度。当需要更新某条信息时,可能需要在多个地方进行修改,这不仅低效,还容易导致数据不一致。插入异常:在某些情况下,由于表结构设计不合理,某些必要的信息可能无法插入数据库,或者插入操作会违反数据完整性约束。删除异常:在某些情况下,删除一行数据可能会导致有用信息的丢失。例如,删除某个实体的记录可能会意外删除与其他实体相关的重要信息。2.1.1关系数据库规范化理论假设需要设计一个数据库来存储学生学习情况的数据。如果将数据库里的所有信息都放在一张表里,也就是只设计一个关系模式SCG(学号,姓名,年龄,所在系,课程号,课程名,学分,成绩),这个关系模式存放学生学习情况的数据是否会存在问题?明显存在,该数据库设计的关系模式存在的问题如下。冗余度大:每选一门课,学生信息和有关课程信息都要重复一次。插入异常:插入一门课,若没有学生选修,则不能把该课程插入表中。删除异常:如删除S11号学生,当有一门课只有他选时,会造成课程的丢失。更新复杂:更新一名学生的信息时,要同时更新很多条记录。更新选修课时也存在同样的情况。2.1.1关系数据库规范化理论上述数据库设计出现异常的原因是数据存在依赖约束,其解决方法就是将数据库设计规范化,即分解,使其每个相对独立,依赖关系比较单纯,如分解为第三范式。例如,采用分解的方法,将上述SCG关系模式分解成以下三个模式(也就是将一张表分为三张表):S(学号,姓名,年龄,所在系)C(课程号,课程名,学分)SC(学号,课程号,成绩)2.1.1关系数据库规范化理论函数依赖(FunctionalDependency,FD)是指一个或一组属性可以(唯一)决定其他属性的值。函数依赖通过数学语言描述如下。设有关系模式R(U),其中U={A1,A2,…,An}是关系的属性全集,X、Y是U的属性子集,设t和u是关系R的任意两个元组,如果t和u在X的投影是t[X]=u[X]则推出t[Y]=u[Y],即t[X]=u[X]=>t[Y]=u[Y],称X函数决定Y或Y函数依赖于X,记为X→Y。在上述的关系模式S(学号,姓名,年龄,所在系)中,存在以下的函数依赖:学号→年龄学号→姓名学号→所在系2.1.1关系数据库规范化理论完全函数依赖和部分函数依赖:设X、Y是关系R的不同属性集,若X→Y(Y函数依赖于X),且不存在X’⊂X,使X’→Y,则称Y完全函数依赖于X;(即不存在真子集仍然是函数依赖关系的函数依赖是完全函数依赖)。否则则称Y部分函数依赖于X。例如,在上例关系S中,姓名是完全函数依赖于学号。在属性Y与X之间,除了完全函数依赖和部分函数依赖关系等直接函数依赖,还存在间接函数依赖关系。如果在关系S中增加系的电话号码办公电话字段,从而有学号→系名,系名→办公电话,于是学号→办公电话。在这个函数依赖中,办公电话并不直接依赖于学号,是通过中间属性系名间接依赖于学号。这就是传递函数依赖。2.1.1关系数据库规范化理论一个包含了关键字的属性集合也能够函数决定(但不是完全函数决定,而是部分决定)属性全集,我们把这种包含了关键字的属性集合称为超关键字(SuperKey)。规范化理论是将一个不合理的关系模式如何转化为合理的关系模式的理论,规范化理论是围绕范式而建立的。规范化理论认为,一个关系型数据库中所有的关系,都应满足一定的规范。规范化理论把关系应满足的规范要求分为几级,满足最低要求的一级叫做第一范式(1NF),在第一范式的基础上提出了第二范式(2NF),在第二范式的基础上又提出了第三范式(3NF),以后又提出了BCNF范式,4NF,5NF。范式的等级越高,应满足的约束条件也越严格。规范的每一级别都依赖于它的前一级别,例如若一个关系模式满足2NF,则一定满足1NF。2.1.2第一范式(1NF) 范式(NormalForms)表示构造数据库必须遵循一定的规则,以满足特定规则的模式称为范式第一范式(1NF):如果一个关系模式R的每个属性的域都只包含单纯值,而不是一些值的集合或元组,则称关系R是第一范式,记为R∈1NF。如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式(每个元组中的每个属性只含有一个单纯值,即要求属性是原子的,原子属性是每个字段不可再分割成多个属性)。2.1.3第二范式(2NF)
2.1.3第二范式(2NF) 【例2-2】学生(学号,课程号,成绩,学分)就不满足第二范式,将其改为满足2NF的关系模式。这个关系的关键字是学号和课程号的组合,主属性是学号和课程号,非主属性是成绩和学分。因为非主属性学分是由课程号决定的,与学号无关,也就是说非主属性学分部分依赖于码,所以这个关系存在部分依赖,也就不满足第二范式。但是这个关系满足1NF(因为每个属性都是原子属性,不能再细分)。将学生(学号,课程号,成绩,学分)分为:成绩表(学号,课程号,成绩)课程表(课程号,学分)上述两个表都满足第二范式。推论:如果关系模式R∈1NF,且它的每一个候选码都是一个属性,则R∈2NF。符合第二范式的关系模式仍可能存在数据冗余、更新异常等问题。2.1.4
第三范式(3NF)和BCNF2.1.4
第三范式(3NF)和BCNF注意:有时将关系分解为BCNF可能会导致某些函数依赖无法保持(即不能通过自然连接和函数依赖推导出原关系中的所有函数依赖)。在这种情况下,设计者可能需要在BCNF和保持所有函数依赖之间做出权衡。注意:当R∈3NF时,R未必属于BCNF。因为3NF比BCNF放宽了一个限制,它允许决定因素不包含码。2.1.4
第三范式(3NF)和BCNF
【例2-7】关系模式S(学号,姓名,年龄,系名,办公电话)是否满足第三范式。由于关系模式S中存在函数依赖:学号→系名,系名→办公电话,所以存在办公电话字段对关键字学号字段的传递函数依赖,因此,关系S不满足第三范式。可以分解为下面两个关系模式:S(学号,姓名,年龄,系名)D(系名,办公电话)上述两个关系就满足第三范式了,每个非主属性既不部分依赖,也不传递依赖于候选关键字。2.1.4
第三范式(3NF)和BCNF
对于关系规范化可从下面几个方面进行理解。(1)规范化的目的是解决插入、修改异常及数据冗余度高。(2)规范化的方法是从模式中各属性间的依赖关系(函数依赖及多值依赖)入手,尽量做到每个模式表示客观世界中的一个“事物”。(3)规范化的实现可采用模式分解的方法。在实际设计数据库模式中,需要综合多种正反因素,统一权衡利弊得失,最后设计出一个较为适合实际的模式来。2.2数据库设计步骤
2.2.1数据库设计概述2.2.2需求分析2.2.3概念结构设计 2.2.4逻辑结构设计 2.2.5数据库物理设计2.2.6数据库实施运行和维护2.2.7数据库设计案例2.2数据库设计步骤数据库设计是软件开发的重要内容。数据库设计的各个阶段包括:
(l)需求分析
(2)概念结构设计
(3)逻辑结构设计
(4)数据库物理设计
(5)数据库实施(6)数据库运行和维护2.2.1数据库设计概述数据库设计既是一项涉及多学科的综合性技术又是一项庞大的工程项目。数据库结构设计的不同阶段形成数据库的各级模式,在概念设计阶段形成独立于机器特点,独立于各个DBMS产品的概念模式,通常概念设计阶段是得到实体联系图;在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式,然后在基本表的基础上再建立必要的视图,形成数据的外模式;在物理设计阶段,根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。2.2.2需求分析需求分析简单地说就是分析用户的需求,它是设计数据库的起点,需求分析结果是否准确反映用户的实际要求将直接影响到后面各阶段的设计,并影响到设计结果是否合理和实用。需求说明书是需求分析阶段的成果,也是以后设计的依据。数据库设计的第一阶段是需求分析,需求分析阶段的目标是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原有系统(包括手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。系统分析师对系统的需求分析往往决定软件项目是否成功。2.2.3概念结构设计数据库的概念结构设计是整个数据库设计的关键,它先将在需求分析阶段得到的应用需求抽象成概念结构,并以此作为各种数据模型的共同基础,从而能更好地、更准确地用某一种数据库管理系统实现这些需求。采用E-R图的方式是抽象和描述现实世界的有力工具。它表示概念模型独立于具体数据库管理系统所支持的数据模型,是各种数据模型的共同基础,因此比数据模型更抽象、更接近现实世界。2.2.4逻辑结构设计数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。将E-R图向关系数据模型的转换要解决的是如何将实体型和实体间的联系转换为关系模式,并且如何确定这些关系模式的属性和码。将E-R图向关系数据模型的转换要解决的是如何将实体型和实体间的联系转换为关系模式,并且如何确定这些关系模式的属性和码。
一个实体自动转化为一个关系模式。对于实体间的联系,其具体转换方法如下。(1)一个1
:
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,与联系相连的各实体的码及联系本身的属性均应转换为关系的属性,则每个实体的码都可以作为这个关系的候选码。如果和某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。(2)一个1
:
n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并,但不能合并到1端。如果转换为一个独立的关系模式,与联系相连的各实体码及联系本身的属性均应转换为关系的属性,则关系码为n端实体的码。(3)一个m
:
n联系转换为一个关系模式,与联系相连的各实体码及联系本身的属性均应转换为关系的属性,各实体码成为关系码或关系码的一部分。(4)三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体码及联系本身的属性均应转换为关系的属性,各实体码可组成关系码或关系码的一部分。(5)具有相同码的关系模式可合并。2.2.5数据库物理设计物理结构依赖于给定的DBMS和硬件系统,因此开发设计人员必须充分了解所用RDBMS的内部特征、存储结构、存取方法。数据库的物理设计通常分为两步:第一步,确定数据库的物理结构;第二步,评价实施的空间效率和时间效率。确定数据库的物理结构内容如下:(1)确定数据的存储结构;(2)设计数据的存取路径;(3)确定数据的存放位置;(4)确定系统配置。2.2.6数据库实施运行和维护数据库物理设计后进入实施运行和维护阶段。数据库实施阶段包括数据的载入与应用程序的编码和调试。根据逻辑和物理设计的结果,在计算机上建立起实际的数据库结构,并装入数据进行试运行和评价的过程,称为数据库的实施(或实现)。数据库实施阶段包括数据的载入与应用程序的编码和调试。数据库的维护工作主要包括:1.数据库的转储和恢复。2.数据库的安全性、完整性控制。3.数据库性能的监督、分析和改造。4、数据库的重组织与重构造。2.2.7数据库设计案例下面通过设计一个教务管理系统来讲解数据库的设计流程,主要包括需求分析、概念模型设计、逻辑模型设计和物理设计。1.需求分析教务管理系统主要有学生选课管理、成绩管理、教学计划的制定等功能。经过对实际教学业务的调查、数据的收集和信息流程分析处理,明确了该系统的主要功能,分别为:制定学校各专业各年级的教学计划以及课程的设置;学生根据学校对所学专业的培养计划以及自己的兴趣,选择自己本学期所要学习的课程;学校的教务部门对新入学的学生进行学籍注册,对毕业生办理学籍档案的归档工作,任课教师在期末时登记学生的考试成绩;学校教务部门根据教学计划进行课程安排等。2.2.7数据库设计案例2.概念模型设计要建立系统的E-R模型的描述,需进一步从数据流图和数据字典中提取系统所有的实体及其属性。这种提出实体的指导原则如下:属性必须是不可分的数据项,即属性中不能包含其它的属性或实体。E-R图中的关联必须是实体之间的关联,属性不能和其它实体之间有关联。根据前面的需求描述,可以抽象得到实体主要有5个:学生、教师、课程、院系(部门)、班级。2.2.7数据库设计案例(1)学生实体属性有:学号、姓名、性别、出生日期、政治面貌、民族、籍贯、专业名称、年级、年龄和简历。学生实体的E-R图如图2-1所示。2.2.7数据库设计案例(2)课程实体属性有:课程编号、课程名称、课程学时、课程学分。课程实体的E-R图如图2-2所示。2.2.7数据库设计案例(3)教师实体属性有:教师编号、教师姓名、性别、职称、出生年月、电话、电子邮件。教师实体的E-R图如图2-3所示。2.2.7数据库设计案例(4)院系(部门)实体属性有:部门编号、部门名称、负责人、联系电话。院系实体的E-R图如图2-4所示。2.2.7数据库设计案例(5)班级实体属性有:班级编号、班级名称、班级人数。班级实体的E-R图如图2-5所示。2.2.7数据库设计案例实体间存在如下联系:(1)学生实体和课程实体存在选修的联系,一个学生可以选修多门课程,而每门课也可以被多个学生选修,所以它们之间是多对多的联系(n:m)。(2)教师实体和课程实体存在讲授的联系,一名教师可以讲授多门课程,而每门课也可以被多个教师讲授,所以它们之间是多对多的联系(n:m)。(3)学生实体和班级实体存在归属的联系,一个学生只能属于一个班级,而每个班级可以包含多个学生,所以班级和学生之间是一对多的联系(1:n)。(4)班级实体和系之间存在归属的联系,一个班级只能属于一个系,而每个系可以包含多个班级,所以班级和系之间是一对多的联系(1:n)。(5)教师实体和院系实体之间存在归属的联系,一个教师只能属于一个系,而每个系可以拥有多名教师,所以教师和系之间是一对多的联系(1:n),但是教师中会有一位充当该系的主任(正),可见教师和系之间也存在一种一对一的领导关系(1:1)。2.2.7数据库设计案例2.2.7数据库设计案例3.逻辑模型设计逻辑设计就是把E-R图转换成关系模式,并对其进行优化。根据前面的转换规则,一个实体可以转换成一个关系模式,而不同种类的联系转换方法有多种,因此,设计的关系数据库模式如下:(1)学生(学号,姓名,性别,出生日期,政治面貌,民族,籍贯,学院专业名称,年级,年龄,简历,班级编号)。(2)教师(教师编号,教师姓名,性别,职称,出生年月,联系电话,电子邮件,所属院系)。(3)课程(课程编号,课程名称,学分,课时,教师编号)。(4)部门(部门编号,部门名称,负责人,联系电话)。(5)班级(班级编号,班级名称,班级人数,部门编号)。学生实体与课程之间是多对多的联系,可以使用如下关系模式来表示:(6)选课(课程编号,学号,成绩)。2.2.7数据库设计案例4.物理设计根据逻辑设计得到的关系模式,选取合适的字段名及数据类型,得到各个关系模式对应的表结构。各表结构如下:(1)部门代码表bmdmb结构如表2-2所示。字段名数据类型非空主键注释bmhvarchar(10)NO主键部门编号bmmcvarchar(50)NO
部门名称managervarchar(20)YES
负责人telvarchar(12)YES
联系电话2.2.7数据库设计案例字段名数据类型非空主键注释bjbhvarchar(10)NO主键班级编号bmhvarchar(10)NO外键部门编号bjzwmcchar(50)YES
班级名称bjrsintYES
班级人数字段名数据类型非空主键注释kcdmchar(10)NO主键课程编号kcmcvarchar(50)NO
课程名称xftinyintNO
学分xssmallint(11)NO
学时jshchar(10)YES外键教师编号2.2.7数据库设计案例字段名数据类型非空主键注释jshchar(10)NO主键教师编号jsxmvarchar(50)NO
教师姓名bmhvarchar(10)YES外键部门编号jsxbchar(1)YES
性别jszcvarchar(20)YES
职称csnydateYES
出生年月telvarchar(12)YES
联系电话emailvarchar(20)YES
电子邮件学生基本信息表xsjbxxb结构字段名数据类型非空主键默认值注释xhvarchar(20)NO主键NULL学号xmvarchar(50)YES
NULL姓名xbchar(2)YES
NULL性别csrqdateYES
NULL出生日期bjbhvarchar(20)YES外键NULL班级编号zzmmvarchar(12)YES
NULL政治面貌mzvarchar(15)YES
NULL民族jgvarchar(20)YES
NULL籍贯xyvarchar(10)YES外键NULL学院zymcvarchar(30)YES
NULL专业名称njchar(8)YES
NULL年级agetinyintYES
Null年龄jlvarchar(50)YES
NULL简历学生选课表xsxkb结构字段名数据类型非空主键注释xhvarchar(20)NO主键学号kcdmchar(10)NO主键课程编号cjint(11)YES
成绩
ThankYou!
MySQL数据库学习目标了解MySQL的发展历程及特性掌握MySQL的安装与配置学会启动与关闭MySQL服务掌握连接MySQL服务器方法了解MySQL的相关命令的使用3.1MySQL数据库概述
3.1.1MySQL的发展历史
3.1.2MySQL8.4LTS版本的新特性3.1.1MySQL的发展历史
1979年,Unireg1996年,MySQL1.0,MySQL3.11.11999年,MySQLAB公司成立2000年4月,MyISAM2001年,InnoDB,MySQL4.02002年,MySQL4.12003年12月,MySQL5.02008年,MySQL5.12009年04月Oracle收购Sun公司,2010年04月发布MySQL5.52013年2月,mysql5.6。2015年,mysql5.72018年,MySQL8.0。2024年,两个发布流:创新版本和长期支持,8.4LTS和MySQL93.1.2MySQL8.4LTS的新特性InnoDB引擎改进查询优化器和索引技术JSON特性增强窗口函数优化分布式事务支持身份认证插件变化稳定性和服务支持期限……3.2MySQL的安装与配置
3.2.1MySQL的安装与配置
3.2.2配置path变量3.2.1MySQL的安装MySQL安装软件可以直接从MySQL官网下载,下载网址为:/downloads/mysql/。可以查看下载MySQL的最新版本3.2.1MySQL的安装如果要选择MySQL的其它版本,可以输入网址:/archives/community/3.2.1MySQL的安装下载完成后,在Windows11上安装过程如下:(1)双击“mysql-8.4.2-winx64.msi”安装文件,出现如图3-3所示的“SetupWizard”安装向导界面。单击“Next”按钮。出现如如图3-4所示的协议许可界面。勾选“IacceptthetermsintheLicenseAgreement”前的方框,单击“Next”按钮。3.2.1MySQL的安装(2)选择安装类型界面,有3种安装类型可供选择。Typical:典型安装。Custom:自定义安装。Complete:完全安装。3.2.1MySQL的安装(3)“ReadytoinstallMySQLServer8.4”准备安装界面。单击“Install”按钮进行软件安装。(4)“CompletedtheMySQLServerSetupWizard”完成安装向导界面,这里的“RunMySQLConfigurator”运行MySQL配置选项是默认勾选的。如果不想继续MySQL的配置设置,可以后续通过“开始”菜单重新配置该MySQLServer实例。这里我们选择勾选此选项,然后单击“Finish”按钮。3.2.1MySQL的安装(5)出现“WelcometotheMySQLServerConfigurator”欢迎进入MySQLServer配置界面,单击“Next”按钮。3.2.1MySQL的安装(6)出现“DataDirectory”设置数据目录界面,这里将数据目录设置到D盘的相应位置,所以将盘符“C”改为“D”,用户可以根据自己的需要设置数据的存放目录,或者选择默认设置,然后单击“Next”按钮。3.2.1MySQL的安装(7)进入“TypeandNetworking”类型和网络界面,选择默认设置后,单击“Next”按钮。
(8)进入“AccountsandRoles”账号和角色界面,为Root账号输入密码,此处输入密码为“root”和重复密码“root”,用户可以根据自己的需要为root账号设置密码,注意两次输入的密码要一致,然后单击“Next”按钮。3.2.1MySQL的安装((9)进入如图所示的“WindowsService”Windows服务界面,服务器名称默认为“MySQL84”,选择默认设置后,单击“Next”按钮。
(10)进入如图所示的“ServerFilePermission”服务器文件权限界面,这里选择第1项“仅授予运行Windows服务的用户(如果适用)和管理员组完全访问权限,其他用户和组将无权访问”,然后单击“Next”按钮。3.2.1MySQL的安装(11)进入如图所示的“SampleDatabases”示例数据库界面,这里提供了两个数据库实例Sakila数据库和World数据库,用户可以根据需要选择一个、两个数据库或者不选。这里我们不选择示例数据库,然后单击“Next”按钮。(12)进入如图所示的“ApplyConfiguration”应用配置界面,单击“Execute”按钮。3.2.1MySQL的安装等待配置完成后,单击“Next”按钮。(13)在如图所示的“ConfigurationComplete”配置完成界面上,单击“Finish”按钮完成配置。3.2.2配置path变量
为了操作方便,首先对系统环境变量path进行修改,将MySQL应用程序的bin目录添加到path中。步骤如下:(1)右击“此电脑”图标,在快捷菜单中选择“属性”菜单项,在打开的“系统>系统信息”窗口中,单击“高级系统设置”选项,弹出“系统属性”对话框,如图所示。3.2.2配置path变量(2)在“系统属性”对话框中,选择“高级”选项卡,单击“环境变量”按钮,弹出“环境变量”对话框,如图所示。3.2.2配置path变量(3)在“环境变量”对话框中,选中“系统变量”的“path”选项,单击“编辑”按钮,将弹出“编辑环境变量”对话框,如图所示。(4)在“编辑环境变量”对话框中,单击“新建”按钮,将MySQL服务器的bin目录位置(C:\ProgramFiles\MySQL\MySQLServer8.4\bin)添加到变量值文本框中,并单击“确定”按钮。3.2.2配置path变量(5)在“环境变量”对话框中,“用户变量”的“path”设置同“系统变量”的“path”设置操作完全相同,选中“系统变量”的“path”选项,单击“编辑”按钮,弹出“编辑环境变量”对话框,在“编辑环境变量”对话框中,单击“新建”按钮,将MySQL服务器的bin目录位置(C:\ProgramFiles\MySQL\MySQLServer8.4\bin)添加到变量值文本框中,并单击“确定”按钮即可。3.3MySQL的使用
3.3.1启动和关闭MySQL服务3.3.2登录MySQL数据库服务器3.3.3MySQL的配置管理3.3.4MySQL的相关命令
3.3.1启动和关闭MySQL服务
(1)通过命令行启动和关闭MySQL服务(演示效果)(2)通过Windows服务管理器启动和关闭MySQL服务(演示效果)3.3.2登录MySQL数据库服务器(1)使用MySQL命令行客户端登录输入“quit”或“exit”或“\q”命令就可以退出MySQL登录。(演示效果)3.3.2登录MySQL数据库服务器(2)在DOS命令提示符窗口中输入账号进行登录基本命令格式如下:mysql-h主机名-u用户名-p密码(演示效果)3.3.2登录MySQL数据库服务器(3)使用图形化客户端Workbench登录(演示效果)3.3.3MySQL的配置管理1.配置文件管理2.基本用户管理1.配置文件管理在Windows中,MySQL的配置文件通常命名为my.ini,包含了控制MySQL服务器行为的多个参数和设置。位置可能因安装方式而异,例如本机安装时选择了数据目录,配置文件my.ini文件则存放于“D:\ProgramData\MySQL\MySQLServer8.4”目录中。配置文件中常用配置项分为三部分,分别是[client]部分、[mysql]部分和[mysqld]部分。[client]部分:包含客户端工具的默认设置,如默认连接的MySQL服务器端口号。#设置MySQL服务器的监听端口号为3306。port=3306[mysql]部分:包含mysql命令行客户端的特定设置,这些设置仅在该客户端启动时生效。#设置MySQL客户端使用的默认字符集为utf8mb4。default-character-set=utf8mb4[mysqld]部分:包含控制mysqld(MySQL服务器)行为的设置,如端口号(port)、数据目录(datadir)、默认字符集(character-set-server)等。#MySQL服务器侦听的端口号。port=3306#安装目录的路径。basedir="C:/ProgramFiles/MySQL/MySQLServer8.4"#数据库根目录的路径。datadir=D:/ProgramData/MySQL/MySQLServer8.4/Data#在创建新数据库或表时,若未定义字符集时将使用的默认字符集。character-set-server=utfmb4#创建新表时将使用的默认存储引擎。default-storage-engine=INNODB注意:在配置文件中my.ini中修改的配置项,保存重启MySQL服务后,将永久生效。2.基本用户管理用户管理涉及用户的创建和删除,权限的分配及密码策略等。下面将通过MySQL命令行工具介绍一些基本的用户管理操作,更加详细的内容见本书第13章。(1)登录到MySQL服务器以管理员身份运行cmd,输入mysql-uroot-p并输入密码,登录MySQL服务器。mysql-uroot-p输入root用户的密码后,进入MySQL命令行客户端界面。(2)创建新用户创建一个新用户,并为其分配密码:CREATEUSER'user1'@'localhost'IDENTIFIEDBY'123456';(3)为新用户分配权限为新用户分配对特定数据库的权限。例如,给用户user1对testdb数据库的所有权限:GRANTALLPRIVILEGESONtestdb.*TO'user1'@'localhost';(4)刷新权限更改权限后,需要刷新权限表以使更改生效:FLUSHPRIVILEGES;显示用户权限你可以使用以下命令来查看用户的权限:SHOWGRANTSFOR'user1'@'localhost';删除用户如果你不再需要某个用户,可以将其删除:DROPUSER'user1'@'localhost';注意:在修改配置文件或用户权限之前,建议备份相关数据和配置。重启MySQL服务时,请确保没有正在进行的数据库操作,以避免数据丢失或损坏。3.3.4MySQL的相关命令在命令行输入help或\h或?命令,来查看MySQL客户端帮助信息。命令简写说明?(\?)显示帮助信息clear(\c)清除当前输入语句connect(\r)连接到服务器,可选参数数据库和主机delimiter(\d)设置语句分隔符ego(\G)发送命令到MySQL服务器,并显示结果exit(\q)退出MySQLgo(\g)发送命令到MySQL服务器help(\h)显示帮助信息notee(\t)不写输出文件print(\p)打印当前命令prompt(\R)改变mysql提示信息quit(\q)退出MySQLrehash(\#)重建完成散列source(\.)执行SQL脚本文件status(\s)获取MySQL的状态信息tee(\T)设置输出文件,并将信息添加所有给定的输出文件use(\u)切换数据库charset(\C)切换字符集warnings(\W)每一个语句之后显示警告nowarning(\w)每一个语句之后不显示警告3.3.4MySQL的相关命令下面实例演示结果。【例3-1】查看MySQL支持字符集。在MySQL命令行客户端输入SHOWCHARACTERSET命令可以查看MySQL支持的字符集及对应的校对规则。mysql>showcharacterset;3.3.4MySQL的相关命令【例3-2】设置MySQL字符集。输入命令:mysql>showvariableslike'char%';MySQL的SET命令可以修改变量的值。输入命令:mysql>setcharacter_set_server=utf8;mysql>setcharacter_set_client=utf8;mysql>setcharacter_set_database=utf8;mysql>setcharacter_set_co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建设工程消防责任制度
- 管理员工作岗位责任制度
- 民政保密工作责任制度
- 物流公司总经理责任制度
- 流调卫生清理责任制度
- 医院监护责任制度范本
- 托幼卫生岗位责任制度
- 小区消防主体责任制度
- 金融公司目标责任制度
- 出租车驾驶员责任制度规定
- 无神论宣讲少先队活动
- 四年级下册科学全册知识点归纳
- JGJT397-2016 公墓和骨灰寄存建筑设计规范
- 整厂物品设备回收合同
- 《无人机操控技术》课程标准
- 大一美术学解刨透视知识点
- 盘扣式脚手架专项施工方案
- 北斗手持机操作教案
- 侧面碰撞保护-动态性能要求(FMVSS 214)
- 互联网+大赛路演PPT制作
- 2023年安徽省检察机关招聘聘用制书记员623人笔试备考题库及答案解析
评论
0/150
提交评论