考试自用~
目录
第1章 数据库系统概论
数据是有“型”和“值”之分。数据的型是指数据的结构,数据的值是指数据的具体取值。
信息与数据的关系可以归纳为:数据是信息的载体,信息是数据的内涵。即数据是信息的符号表示,而信息通过数据描述,又是数据语义的解释。
数据处理: 定义:又称为信息处理,是指对各种形式的数据进行收集、存储、传播和加工直至产生新信息输出的全过程。 目的: 一是借助计算机科学地保存和管理大量复杂的数据 二是从大量已知的表示某些信息的原始数据出发,抽取、导出对人们有价值的、新的信息。
数据管理是数据处理的中心问题
定义:数据库(DataBase,DB)是按照一定结构组织并长期存储在计算机内的、可共享的大量数据的集合。 概括起来说,数据库具有永久存储、有组织和可共享三个基本特点。
(1)数据库中的数据是按照一定的结构——数据模型来进行组织的。
(2)数据库的存储介质可大量地、长期地存储及高效地使用。
(3)数据库中的数据能为众多用户所共享
(4)数据库具有较少的冗余、较高的数据独立性。
(5)数据库由用户数据库和系统数据库组成
数据库管理系统(Database Management System,DBMS) :
定义:位于用户和操作系统之间的一层数据管理软件,是数据库和用户之间的一个接口。 安装在操作系统之上,在数据库建立、运行和维护时对数据库进行统一的管理控制和提供数据服务。
DBMS是数据库系统的一个重要组成部分
常用的DBMS:MySQL、Oracle、SQL Server、MongoDB等
数据库管理系统DBMS的功能
1.数据定义功能 提供数据定义语言(Data Define Language, DDL)对数据库对象进行定义
2.数据操纵功能 提供数据操纵语言(Data Manipulation Language,DML)实现数据库的基本操作:检索、更新(包括插入、修改、删除)等。
3.数据库运行管理功能 是DBMS运行的核心部分。实现数据的安全性控制、数据的完整性控制、并发控制和数据库的恢复。
4. 数据库的建立和维护功能 对数据库各种数据的组织、存储、输入、转换等
DBMS提供的数据控制功能
(1) 数据的安全性(Security)保护 保护数据,以防止不合法的使用造成的数据的泄密和破坏。
(2) 数据的完整性(Integrity)检查 保证数据的正确性、有效性和相容性。
(3) 并发(Concurrency)控制 对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果
(4) 数据库恢复(Recovery) 将数据库从错误状态恢复到某一已知的正确状态
数据库系统(DataBase System,DBS):
定义:指计算机引入数据库后的系统
组成:一般由硬件系统、软件系统、数据库和人员组成
信息系统的5个基本功能是输入、存储、处理、输出和控制。
数据库系统的特点
数据结构化
数据的共享性高,冗余度低且易扩充
数据独立性高:
物理独立性:指用户的应用程序与数据库中的数据是相互独立的。
逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的
数据由DBMS统一管理和控制
从数据库管理系统角度来看,数据库系统内部的体系结构通常采用三级模式结构,即由外模式、模式和内模式组成。
对“型”的描述——模式
模式:数据库中全体数据的逻辑结构和特征的描述,仅涉及“型”的描述,是所有用户的公用数据库结构,不涉及具体值
模式的一个具体值称为一个实例
模式(也称为概念模式)描述的内容: 所有实体、实体的属性和实体间的联系。 数据的约束。 数据的语义信息。 安全性和完整性信息 特性: (1)一个数据库只有一个模式。 (2)模式与具体应用程序无关,它只是装配数据的一个框架。 (3)模式用语言描述和定义,需定义数据的逻辑结构、数据有关的安全性等。
定义:外模式(也称子模式或用户模式)是数据库用户所见和使用的局部数据的逻辑结构和特征的描述,是用户所用的数据库结构。 外模式是模式的子集,它主要描述用户视图的各记录的组成、相互联系、数据项的特征等。
外模式的特性: (1) 一个数据库可以有多个外模式;每个用户至少使用一个外模式。 (2)同一个用户可使用不同的外模式,而每个外模式可为多个不同的用户所用。 (3)模式是对全体用户数据及其关系的综合与抽象, 外模式是根据不同用户所需对模式的抽取。
定义:内模式(也称存储模式)是数据物理结构和存储方法的描述。它是整个数据库的最低层结构的表示。 内模式定义的是存储记录的类型,存储域的表示,存储记录的物理顺序、索引和存取路径等数据的存储组织。
内模式的特性: (1)一个数据库只有一个内模式。内模式对用户透明。 (2)一个数据库由多种文件组成,如用户数据文件、索引文件及系统文件等。 (3)内模式设计直接影响数据库的性能。
映像是一种对应规则,它指出了映像双方是如何进行转换的。 二级映像保证数据能够具有逻辑独立性与物理独立性
数据独立性:是指数据与程序间的互不依赖性。一般分为逻辑独立性与物理独立性。 逻辑独立性:是指数据库逻辑结构的改变不影响应用程序。即数据库总体逻辑结构的改变,不需要相应修改应用程序。 物理独立性:指数据库物理结构的改变不影响逻辑结构及应用程序。即数据的存储结构的改变,不影响数据库的逻辑结构,从而不会引起应用程序的变化
外模式/模式映像: 外模式/模式映像是指由模式生成子模式的规则。它定义了各个外模式和模式之间的对应关系。
保证数据的外模式不变, 保证数据与程序间的逻辑独立性
模式/内模式映像: 模式/内模式映像是说明模式在物理设备中的存储结构。它定义了模式和内模式之间的对应关系。
确定全局逻辑结构与存储之间的 关系, 确保了数据的物理独立性
特性: 模式/内模式映像是唯一的。 外模式/模式映像不唯一。
数据库系统的三级模式结构与两层映像的优点:
(1)保证数据的独立性。
(2)方便用户使用,简化用户接口。
(3)保证数据库安全性的一个有力措施。
(4)有利于数据的共享性。
(5)有利于从宏观上通俗地理解数据库系统的内部结构。
从最终用户角度来看,数据库系统外部的体系结构分为: 单用户式 主从式 客户/服务器式 分布式和并行结构
数据在逻辑上是整体 在物理上分布在不同计算机 各节点分布存储的数据相对独立,但对用户 透明 是分布式网络技术与数据库相结合的结果
1. 在数据管理技术发展的三个阶段中,数据共享最好的是(数据库系统阶段 )。
2. 以下关于数据库系统的叙述中,正确的是( :数据库中的数据可被多个用户共享;)。
A. 数据库中的数据可被多个用户共享
B. 数据库中的数据没有冗余
C. 数据独立性的含义是数据之间没有关系
D. 数据安全性是指保证数据不丢失
3.下列关于数据库的叙述中,错误的是(数据库中只保存数据; )。
A. 数据库中只保存数据
B. 数据库中的数据具有较高的数据独立性
C. 数据库按照一定的数据模型组织数据
D. 数据库是大量有组织、可共享数据的集合
4. DBS的中文含义是( 数据库系统;)。
数据库管理系统是( 在操作系统支持下的系统软件)5. 数据库、数据库管理系统和数据库系统三者之间的关系是(B:数据库系统包括数据库和数据库管理系统; )。
6. 下列关于数据库系统特点的叙述中,错误的是( A:非结构化数据存储; )。
A. 非结构化数据存储
B. 数据共享性好
C. 数据独立性高
D. 数据由数据库管理系统统一管理控制
7.下列关于数据的叙述中,错误的是(A:数据的种类分为文字、图形和图像三类; )。
A. 数据的种类分为文字、图形和图像三类
B. 数字只是最简单的一种数据
C. 数据是描述事物的符号记录
D. 数据是数据库中存储的基本对象
8. 下列不属于数据库管理系统主要功能的是( )A:数据计算功能;
9. 下列关于数据库的叙述中,不准确的是(数据库中存储的对象是数据表 )。
A. 数据库中存储的对象是数据表
B. 数据库是存储数据的仓库
C. 数据库是长期存储在计算机内的、有组织的数据集合
D. 数据库中存储的对象可为用户共享
10. 以下关于数据库管理系统的叙述中,正确的( )。
A. 数据库管理系统具有数据定义功能
B. 数据库管理系统都基于关系模型
C. 数据库管理系统与数据库系统是同一个概念的不同表达
D. 数据库管理系统是操作系统的一部分
正确答案: A:数据库管理系统具有数据定义功能;
11.以下选项中不属于数据库系统组成部分的是(数据仓库; )。
A. 数据仓库
B. 数据库管理系统
C. 数据库管理员
D. 数据库
12.以下关于数据库的特点中,描述正确的是( 数据独立性较高)。
A. 数据独立性较高
B. 数据不可共享,故数据安全性较高
C. 数据无冗余
D. 数据无具体的组织结构
13. 与文件系统阶段相比,关系数据库技术的数据管理方式具有许多特点,但不包括( A:支持面向对象的数据模型 )。
A. 支持面向对象的数据模型
B. 具有较高的数据和程序独立性
C. 数据结构化
D. 数据冗余小,实现了数据共享
14. 数据独立性是指( )。
正确答案: A:物理独立性和逻辑独立性;
15. 下列关于数据的描述中,错误的是( )。
A. 数据是描述事物的符号记录
B. 数据和它的语义是不可分的
C. 数据指的就是数字
D. 数据是数据库中存储的基本对象
正确答案: C:数据指的就是数字;
16. 在数据库中,控制数据满足一定的约束条件,这属于( 完整性;)
17. 数据库中存储的是(数据及数据之间的联系; )
18. 在数据库系统的三级模式结构中,面向某个或某几个用户的数据视图是( 外模式;)
19. 数据库管理系统是( )B:在操作系统支持下的系统软件;
第2章 信息与数据模型
数据模型
数据模型是对现实世界中数据特征以及数据之间联系的抽象
数据模型用来描述数据组成、数据关系、数据约束的抽象结构及对数据进行的操作
数据模型是实现数据抽象的主要工具
数据库中的数据是结构化的 数据模型就是描述数据及数据之间联系的结构形式 数据库系统的核心是数据模型。
通常采用逐步抽象的方法,在不同层次采用不同的数据模型。 一般可分为概念层、逻辑层、物理层。
概念层
定义:数据抽象级别的最高层,其目的是按用户的观点来对现实世界建模。 概念层的数据模型称为概念数据模型,简称概念模型。 由数据库设计人员完成,不依赖于DBMS,但容易向DBMS所支持的逻辑模型转换。 常用的概念模型有实体--联系模型(Entity-Relationship Model,简称E-R模型)。
逻辑层
定义:是数据抽象的中间层,描述数据库数据整体的逻辑结构。 由数据库设计人员完成,是基于计算机系统的观点对数据进行建模和表示 逻辑层的数据抽象称为逻辑数据模型。 数据库是按DBMS规定的逻辑模型组织和建立的 常见的数据模型有:层次模型、网状模型、关系模型和面向对象模型。
物理层
定义:物理层是数据抽象的最底层,用来描述数据物理存储结构和存储方法。 这一层的数据抽象称为物理数据模型 由DBMS完成,而且与操作系统、计算机硬件密切相关。 物理数据结构一般都向用户屏蔽,用户不必了解其细节。
数据模型由数据结构、数据操作和完整性约束三部分组成。
数据结构
定义:描述数据库的组成对象,以及对象之间的联系
数据结构是对系统静态特性的描述
常用的数据结构:层次结构(层次模型)、网状结构(网状模型) 、关系结构(关系模型)
在关系模型中,用字段、记录、关系(二维表)来描述数据对象
数据操作
定义:对数据库中各种对象的实例允许执行的操作及有关的操作规则。
类型:检索和更新(包括插入、删除、修改)。
对操作的定义:这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。 数据操作是对系统动态特性的描述。
完整性约束条件
完整性规则主要描述数据结构中的数据之间的语义联系、数据之间的制约和依存关系,以及数据动态变化规则。 数据模型提供定义完整性约束的机制,保证数据的正确、相容、有效
概念模型
是数据库设计人员进行数据库设计的有力工具。 是数据库设计人员和用户之间进行交流的语言。应该具有较强的语义表达能力,还应该简单、清晰、易于用户理解。
实体(Entity)
客观存在并可相互区别的事物称为实体。
可以是具体的人、事、物或抽象的概念。
每个实体由实体名唯一标记。
在关系模型中,每个实体对应于数据库中的一张数据库表。
(2) 属性(Attribute)
实体所具有的某一特性称为属性。
一个实体可以由若干个属性来刻画。
用于表示实体的某种特征或者表示实体间关系的特征
E-R图中实体的属性对应于数据库表的字段。
在E-R图中,属性是一个不可再分的最小单元。
如果属性能够再分,则将该属性作为另一个单独的实体。
(3) 码(Key):唯一标识实体的属性集称为码,也称为键。
(4) 域(Domain):属性的取值范围称为该属性的域。
(5)实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体称为实体型。 (6) 实体集(Entity Set):同一类型实体的集合称为实体集。
(7) 联系(Relationship)
现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。
实体内部的联系通常是指组成实体的各属性之间的联系。
实体之间的联系通常是指不同实体集之间的联系。
分为实体间联系和实体内联系
分为一对一(1:1)、一对多(1:n)、多对多(m:n)联系。
ER模型设计原则: 属性应该存在于且只存在于某一个地方(实体或者关系)。——避免数据冗余。 实体是一个单独的个体,不能是另一个实体的属性。——避免“表中套表”。 同一个实体在同一个E-R图内仅出现一次。——不能出现重复表
逻辑模型
最常用的逻辑数据模型及其数据结构:
数据模型 | 对应的数据结构 |
层次模型 | 树结构 |
网状模型 | 图结构 |
关系模型 | 二维表(关系) |
面向对象模型 | 引用类型 |
根本区别在于数据之间联系的表示方式不同,即数据记录之间的联系方式不同。
层次数据模型是数据库系统中最早出现的数据模型,它用树形结构表示各类实体以及实体间的联系。
网状模型是一个图结构,它是由字段(属性)、记录类型(实体型)和系(set)等对象组成的网状结构的模型。 是一个不加任何条件的有向图。
关系就是一张二维表,它由行和列组成。 关系模型将数据模型组织成表格的形式,这种表格在数学上称为关系。表中存放数据。 在关系模型中实体以及实体之间的联系都用关系也就是二维表来表示。 是最重要也是应用最广泛的一种基本模型。
主要优缺点:
有坚实的理论基础;
结构简单、易用;
数据独立性及安全性;
查询效率较低。
E-R图转换为关系模型转换的实质: 将实体、实体的属性和实体之间的联系转换为关系模式。
实体的转换原则:
一个实体转换为一个关系
实体的名称即是关系模型的名称
实体的属性就是关系模型的属性
实体的码就是关系模型的码
联系的转换原则
方法一: 1:1、1:n、n:m联系都适用 一个联系转换为一个关系模式 与联系相连接的各实体的键以及联系的属性均转换为该关系的属性
方法二:1:1联系可以不转换为一个关系,只要在一个实体中加入另一个实体的键作为属性
方法二:1:n联系可以不转换为一个关系,只要将1端实体的主键加入到n端实体作为属性
没有方法二,m:n联系必须转换为一个关系模式
关系模型
在关系模型中,实体以及实体间的联系都是用关系来表示的
在给定的领域中,所有实体和联系所对应的关系的集合构成一个关系数据库 关系模式是对关系的描述
关系模式对应的数据值称为关系数据库的实例
1. 关系中基本术语
元组(Tuple):元组也称记录,关系表中的每行对应一个元组,组成元组的元素称为分量。
属性(Attribute)
属性具有型和值两层含义:型指字段名和属性值域;
值是指属性具体的取值。
在同一个关系中的字段名(列名)不能相同。
一个属性的所有值必须来自同一个域。
候选码(Candidate key)
若关系中的某一属性或属性组的值能唯一地标识一个元组,则称该属性或属性组为候选码
主码(Primary key)
若一个关系中有多个候选码,则选定其中一个为主码(主键)。
当包含两个或更多个的键称为复合码(键)
主码选择的注意事项:
(1)建议取值简单的关键字为主码。
(2) 为便于表的维护,不建议使用复合主键。
(3)代理键:人为添加一个没有实际意义的字段作为表的主键, 在找不到合适的候选键或者候选键中有多个属性时使用。
代理键:
取值:建议由DBMS或者应用程序自动生成,避免人工录入时人为操作产生的错误。
是DBMS分配的唯一标识符。
每次创建行时由DBMS分配代理键的唯一值,通常是较短的数字。
该值对于用户没有实际意义。
经常使用
全码 (All-key)
关系模式的所有属性是这个关系模式的候选码,称为全码。 主属性、非主属性 在关系中,候选码中的属性称为主属性 不包含在任何候选码中的属性称为非主属性。
2. 数据库中关系的类型
基本表(基本关系或者基表):实际存在的表,它是实际存储数据的逻辑表示。
查询表:查询结果表或查询中生成的临时表。
视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
3.关系的性质
(1)关系中的元组存储了某个实体或实体某个部分的数据。
(2)关系中元组的位置具有顺序无关性,即元组的顺序可以任意交换。
(3)同一属性的数据具有同质性,即每一列中的分量是同一类型的数据,它们来自同一个域。
(4)同一关系的字段名具有不可重复性,即同一关系中不同属性的数据可出自同一个域,但不同的属性要给予不同的字段名。
(5)关系具有元组无冗余性,即关系中的任意两个元组不能完全相同。
(6)关系中列的位置具有顺序无关性,即列的次序可以任意交换、重新组织。
(7)关系中每个分量必须取原子值,即每个分量都不可再分。
关系模式是对关系的描述,包括
元组集合的结构
属性构成
属性来自的域
属性与域之间的映象关系
元组语义以及完整性约束条件
属性间的数据依赖关系集合
关系模式表示为 R(U,D,DOM,F)
R--关系名
U--属性名集合
D--属性所来自的域 (类型)
DOM--属性向域的映像集合(长度)
F--属性间数据的依赖关系集合
用下划线表示关系的主码(主键) 简记为:R(U)或R(A1,A2,…,An )
在关系数据库中,实体以及实体间的联系都是用关系来表示的 在给定的领域中,所有实体和联系所对应的关系的集合构成一个关系数据库 关系模式是对关系的描述 关系模式对应的数据值称为关系数据库的实例
关系操作的三大功能:
(1)数据查询:数据检索、统计、排序、分组以及用户对信息的需求等功能。
(2)数据维护:数据添加、删除、修改等数据自身更新的功能。
(3)数据控制:为了保证数据的安全性和完整性而采用的数据存取控制及并发控制等功能。
关系模型的完整性规则是对关系的某种约束条件。
关系模型允许定义3类完整性约束:
实体完整性:
参照完整性:必须满足,称为两个不变性。 由关系系统自动支持。
用户自定义的完整性:应用领域需要遵循的约束条件,体现了具体领域中的语义约束
对关系数据库中数据的插入、删除和修改操作都必须满足完整性约束条件
实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。 关系的主码不能取空值,若主码由多个属性组成,则所有这些属性都不可以取空值。
参照完整性:
如果关系R的一个或一组属性F不是R的主键,而是另一关系S的主键,则F称为R的外键(Foreign Key),称R为参照关系,S为被参照关系 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值(外键的值)必须为以下值之一。 (1)取空值。 (2)等于S中某个元组的主码值。 主键与外键的列名不一定相同,唯一的要求是它们的值的域(取值范围)必须相同。
重点:画ER图和写出关系模式
学校中有若干系,每个系有若干班级和教研室。每个教研室有若干教师,每个教师各带若干个学生进行毕业设计。毕业设计题目与学生一对一,每个班有若干学生,每个学生选修若干课程,每门课程可由若干学生选修。要求:各实体属性自行设定,画出E-R图,写出关系模式
图书借阅系统描述如下:
读者信息:读者编号,姓名,班级,性别,年级,电话
图书信息:书名,索书号,ISBN号,作者,出版社
联系:每个读者可以借多种书,每种书能被多个人借,并且要保存借书的时间
某医院数据库的部分关系模式为;
科室(科室号,科室名,负责人,电话),病患(病历号,姓名,住址,联系电话)和职工(职工号,职工姓名,科室号,住址,联系电话)。
假设每个科室有一位负责人和一部电话,每个科室有若干名职工,一名职工只属于一个科,一个医生可以为多个病患看病;一个病患可以由多个医生多次诊治,
科室与职工的所属联系类型为( 一对多 ),病患与医生的就诊联系类型为(多对多 ) ,对于就诊联系最合理的设计是( C. 就诊(病历号,职工号,就诊时间,就诊情况) ),就诊关系的主键是( A. 病历号,职工号 )
(4) 就诊关系的主键是( )
A. 病历号,职工号
B.病历号,职工号,就诊时间
C.病历号,职工姓名
D. 病历号,职工姓名,就诊时间
正确答案: A
某学校学生、教师和课程实体对应的关系模式如下:
学生(学号,姓名,性别,年龄,家庭住址,电话);课程(课程号,课程名);
教师(职工号,姓名,年龄,家庭往址,电话)
如果一个学生可以选修多门课程,一门课程可以有多个学生选修:一个教师只能讲授1门课程,但一门课程可以由多个教师讲授。
(1)由于学生和课程之间是一个(多对多)的联系, 所以在将学生-课程的联系其转换为关系模式时( 必须增加一个新的选课关系模式,该模式的主键应该为课程号和学号)
又由于教师和课程之间是一个(多对一)的联系,所以(4所以在将教师-课程的联系其转换为关系模式时( 不需要增加一个新的关系模式,只需要将课程号插入教师关系模式))
1. 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( ).
A. 一对一
B. 一对多
C. 多对多
D. 多对一
我的答案: C:多对多;
2. 实体型与实体集之间的关系是( )
A. 型与值
B. 整体与部分
C. 两者含义相同
D. 两者无关
我的答案: B:整体与部分;
3. 下列选项中,属于1:n联系的两个实体集是( )。
A. 所在部门与职工
B. 图书与作者
C. 运动项目与参赛运动员
D. 人与身份证
我的答案: A:所在部门与职工;
4. 一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )
A. 一对一
B. 一对多
C. 多对一
D. 多对多
我的答案: B:一对多;
5. 设有借书信息表,结构为:借书信息(借书证号,借书人,住址,联系电话,图书号,书名,借书日期)设每个借书人一本书只能借一次,则该表的主键是( )。
A. 借书证号,图书号
B. 借书证号
C. 借书证号,借书人
D. 借书证号,图书号,借书日期
我的答案: A:借书证号,图书号;
6. 设有E-R图,含有A.B两个实体, A,B之间联系的类型是m: n,则将该E-R图转换为关系模式时,关系模式的数量是( )。
A. 3
B. 2
C. 1
D. 4
我的答案: A:3;
7. 将E-R图转换为关系模式时,实体和联系都可以表示为( )。
A. 属性
B. 键
C. 关系
D. 域
我的答案: C:关系;
8. 关于E-R图,以下描述中正确的是( )。
A. 实体可以包含多个属性,但联系不能包含自己的属性
B. 联系仅存在于两个实体之间,即只有二元联系
C. 两个实体之间的联系可分为1:1,1:n,m:n三种
D. 通常使用E-R图建立数据库的物理模型
我的答案: C:两个实体之间的联系可分为1:1,1:n,m:n三种;
9. 一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是( )。
A. 1:1联系
B. 1:m联系
C. m:1联系
D. m:n联系
我的答案: D:m:n联系;
10.关系模型中,域的含义是( )。
A. 属性的取值范围
B. 元组
C. 属性
D. 属性值
我的答案: B:元组;
11. 公司中有多个部门和多名职员。每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员之间的联系是( )
A. 1:1联系
B. m:1联系
C. 1:m联系
D. m:n联系
我的答案: C:1:m联系;
12.在关系数据库中,用来表示实体间联系的是( ).
A. 属性
B. 二维表
C. 网状结构
D. 树状结构
我的答案: B:二维表;
13.下列选项中不属于实体的是( )
A. 姓名
B. 课程
C. 图书
D. 学生
我的答案: A:姓名;
第3章 关系代数与关系数据库理论
关系代数以及运算
关系代数是一种抽象的查询语言。 关系代数用对关系的运算来表达查询的。
关系操作采用集合方式,操作的对象和结果都是集合
关系代数的运算对象是关系,运算结果亦为关系
(1)域(Domain)
域是一组具有相同数据类型值的集合,用Di表示某个域。 在关系模型中,使用域来表示实体属性的取值范围。 例如:整数 、实数、介于某个取值范围的整数、字符串集合{‘男’,‘女’} 域中所包含的值的个数称为域的基数(用m表示)
(2)笛卡尔积(Cartesian Product)
给定一组域D1,D2,…,Dn,这些域中可以有相同的, D1,D2,…,Dn的笛卡尔积D1×D2×……×Dn为 :
D1×D2×……×Dn = { (d1,d2,…,dn) | di∈Di, i=1,2,…,n}
笛卡尔积也是一个集合 笛卡尔积中,每一个元素(d1,d2,…,dn)叫做一个n元组,简称元组。 元组中的每一个值di叫做一个分量 元组中的分量有顺序,(李力,男)≠(男,李力) 笛卡尔积D1×D2×…×Dn的基数M(即元素的个数)为所有域的基数的累乘之积, 即M=
(3)关系(Relation)
关系为多个域的笛卡尔积的有限子集,是一张二维表。
D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为:R(D1,D2,…,Dn)
R:关系名
n:关系的目或度(Degree)
当n=1时,称该关系为单目关系(Unary relation);
当n=2时,称该关系为二目关系(Binary relation)。
概论
传统的集合运算是二目运算,包括并、交、差、广义笛卡尔积4种运算。 除计算笛卡尔积外,其他的集合运算要求参加运算的关系必须是相容的。
设给定两个关系R、S,若满足:
(1)具有相同的度n
(2)R中第i个属性和S中第i个属性必须来自同一个域。
则说关系R、S是相容的。
专门的关系运算
1、选择(Selection)
选择运算符的含义
在关系R中选择满足给定条件 F 的所有元组
σ表示选择运算
下标F表示选择条件,是一个逻辑表达式,取逻辑值“真”或“假”
选择运算是从行的角度进行的运算:
2、投影(Projection)
投影运算符的含义
从R中选择出若干属性列组成新的关系
πA(R) = { t[A] | t∈R }
A:R中的属性列名,多个列名之间用逗号隔开
投影操作主要是从列的角度进行运算 投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(消除结果中的重复行)
3. 连接(Join)
从两个关系的笛卡尔积中选择满足连接条件的元组
X为R中的属性集,Y为S中的属性集。X与Y属性个数相同且有共同的域
X Y为连接条件, 为算术比较运算符 (是上面那个圈杠
自然连接
自然连接是对两个关系进行相同属性列的等值连接,并且在结果中把重复的属性列去掉 一种特殊的等值连接,同时从行和列的角度进行运算
就是不用写连接条件了
补充:多个关系自然连接 按照关系出现的先后顺序,依次进行连接
注意
外连接:
如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTER JOIN)
左外连接:
如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN)
右外连接:
如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)。
4.除法(Division)
分量:关系R,tr∈R表示tr是R的一个元组,Ai表示R中的属性集,
tr [Ai]则表示元组tr中相应于属性集Ai的一个分量。
像集:关系R(X,Z),X和Z为属性集,tr [X]表示元组tr在X属性上的分量,记为x,x在R中的像集为Zx ={ tr [Z] | tr∈R, tr [X]=x }
即,表示属性集X上的分量值为x的各元组在Z上分量。
设有关系R(X,Y)和S(Y,Z),其中x=tr[X] 表示R中元组tr在X属性上的各分量, Yx表示x各分量在R中的像集。 Πy(S) 表示S在Y上的投影。
则:
除法运算同时从行和列的角度进行运算,适合于包含“全部”之类的短语的查询。
除法总结:
R÷S ,R(X,Y) S(Y,Z) 在R中找X属性集的分量x
1.X属性集中的属性不在S中
2.找分量x在R中的像集
3.判断像集是否包含了S在Y属性集上的所有分量
4.如果成立,则x为R÷S的结果
关系规范化
举例:
1)数据冗余太大 系名和系主任数据重复量太大。
2)插入异常 一个新系没有招生时,或系里有学生但没有选修课程,则系名和系主任名无法插入到数据库中。
3)删除异常 当某系的学生全部毕业而又没有招新生时,删除学生信息的同时,系及系主任名的信息随之删除。
4)更新异常 若某系换系主任,数据库中该系的学生记录应全部修改。
现象:数据冗余、插入异常、删除异常、更新异常
原因:属性间存在的数据依赖关系
解决:关系的规范化 :对于存在问题的关系模式,可以通过模式分解的方法使之规范化
按照一定的规范设计关系模式,将结构复杂的关系分解成结构简单的关系,从而把不好的关系数据库模式转变为好的关系数据库模式,这就是关系的规范化
一个好的关系模式应该具备以下四个条件:
(1)尽可能少的数据冗余;
(2)没有插入异常;
(3)没有删除异常;
(4)没有更新异常。
一个好的关系模式并不是所以情况下都最优
函数依赖
数据依赖: 关系模式中各属性之间相互依赖、相互制约的联系称为数据依赖 是现实世界属性间相互联系的抽象 是数据内在的性质。
分类: 函数依赖(Functional Dependency,FD)
多值依赖(MultiValued Dependency,MVD)
连接依赖(Join Dependency,JD)
设有关系模式R (A1,A2,…,An)或简记为R (U),X,Y是U的子集,r是R的任一具体关系,
如果对 r 的任意两个元组t1,t2,由t1[X]=t2[X]导致 t1[Y]= t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y。X→Y为模式R的一个函数依赖。
即,X和Y是R中的属性(集),
对于X的每一个具体值,都有Y唯一的具体值与之对应
函数依赖是对关系R的一切可能的当前值 r 定义的,不是针对某个特定关系。
函数依赖类型
平凡函数依赖和非平凡函数依赖
(1)X→Y,但 Y ⊈ X,则称 X→Y 是非平凡的函数依赖。
(2)X→Y,但 Y ⊆ X,则称 X→Y 是平凡的函数依赖。
(3)若 X→Y,Y→X,则称 X 双箭头 Y
(4)若 Y 不函数依赖于 X,则记作 X→Y。
完全函数依赖和部分函数依赖
传递函数依赖和直接函数依赖
FD公理
设 F 是在关系模式 R(U) 上成立的函数依赖集合,X,Y是属性集U的子集,X→Y是一个函数依赖。
1.函数依赖的逻辑蕴涵
如果从 F 中能够推导出 X→Y,即如果每个满足F的关系 r 也满足X→Y,则称 X→Y 为 F 的逻辑蕴涵(或F逻辑蕴涵X→Y),记为 F => X→Y
设关系模式R(U),F是R上成立的只涉及U中属性的函数依赖集,X,Y,Z,W为U的子集,r是R的一个实例
(1)自反律:如果Y X ,则X→Y在R上成立
(2)增广律 :若X→Y在R上成立,且ZU,则XZ→YZ在R上也成立
(3)传递律 :若X→Y和Y→Z在R上成立,则X→Z在R上也成立
推论:
(1)合并律 若X→Y和X→Z在R上成立,则X→YZ在R上成立
(2)伪传递律 若X→Y和YW→Z在R上成立,则XW→Z在R上成立
(3)分解律 若X→Y和ZY在R上成立,则X→Z在R上成立
(4)复合律 若X→Y和W→Z在R上成立,则XW→YZ在R上也成立
函数依赖集F的闭包
已知F,如何判断函数依赖X→Y是否成立?
充分必要条件:X→Y在 F+ 将求F+转换为求属性集X的闭包X+
2. 函数依赖集F的闭包 被F逻辑蕴涵的函数依赖的全体构成的集合,称为函数依赖集F的闭包(Closure),记为F +
3. 属性集 X的闭包
设有设有关系模式R(U),F是R的函数依赖集,用函数依赖推理规则可从F推出的函数依赖X→A中所有A的集合,称为属性集X关于F的闭包,记作 X+ X→Y能用函数依赖推理规则推出的充分必要条件是Y X+
算求属性集X相对于函数依赖集F的闭包X+
初始化:设result=X
do {
if F 中有某个函数依赖Y→Z满足Y result
then result=result ∪ Z
} while (result有所改变);
最小函数依赖集
如果Fmin是F的一个最小函数依赖集,那么Fmin应满足下列四个条件: (1)Fmin+ =F +; (2)每个函数依赖的右边都是单属性; (3)Fmin中没有冗余的函数依赖,即减少任何一个函数依赖都将与原来的F不等价; (4)每个函数依赖的左边没有冗余的属性,减少任何一个函数依赖左部的属性后,都将与原来的F不等价。
应去掉F中无关的函数依赖、平凡的函数依赖、函数依赖中的无关属性,以求与F等价的最小依赖集Fmin
无关属性:设F是属性集U上的函数依赖集, X→Y是F中的函数依赖
(1) A∈X,若F逻辑蕴涵 (F-{X→Y })∪{(X-A) →Y }, 则称属性A是X→Y左部的无关属性,即已知X →Y,但(X-A)→Y成立,A为无关属性。
(2) A∈Y,若(F-{X→Y })∪{X→(Y-A) } 逻辑蕴涵F,则称属性A是X→Y右部的无关属性。
(3)如果X→Y的左右两边的属性都是无关属性,则函数依赖X→Y称为无关函数依赖。
算法3.3 求函数依赖集F的最小函数依赖集Fmin
(1)对F中的任一函数依赖X→Y,如果Y=Y1,Y2,…,Yk(k≥2)多于一个属性,就用分解律,分解为X→Y1,X→Y2,…,X→Yk,得到一个与F等价的函数依赖集G,G中每个函数依赖的右边均为单属性。
(2) G中左部非单属性的依赖中去掉左部无关的属性。 如,XY→A,如果X+包含A,则Y为无关属性
(3)在G中消除冗余的函数依赖,得到的结果即为Fmin 。 如,去掉X→Y,在剩下的依赖中求X+,若包含Y,则X→Y为冗余 注:Fmin 不唯一
候选键的求解理论和算法
关键码的定义
设F是在关系模式R(U)上成立的函数依赖集合,X,Y是属性全集U的子集
如果X→U 在R上成立,但对X的任一真子集X ′ 都有X′ →U不成立(即X → U),那么称X是R上的一个候选键。
方法1:快速求解候选键的一个充分条件
对于给定的关系模式R(A1…,An)和函数依赖集F,可将其属性分为以下四类:
L类属性:只出现在函数依赖集左侧的属性
R类属性:只出现在函数依赖集右侧的属性
N类属性:在函数依赖集没有出现的属性
LR类属性:函数依赖集左侧和右侧都出现的属性
判断属性X是否在R的候选键中 :R类属性不在候选键中, L类和N类属性必在候选键中, 若L类和N类属性集X的闭包X +包含全部属性,则X为唯一候选键
关系模式范式
关系按其规范化程度从低到高可分为 5 级范式(Normal Form),分别称为 1NF、2NF、3NF(BCNF)、4NF、5NF。
规范化程度较高者必是较低者的子集,即 5NF⊆4NF⊆BCNF⊆3NF⊆2NF⊆1NF
规范化: 一个低一级范式的关系模式,通过模式分解可以转换成若干高一级范式的关系模式的集合。
1NF的定义
如果关系模式R所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式,简称1NF,记作R∈1NF。
第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。
第一范式可能具有大量的数据冗余,具有插入异常、删除异常和更新异常等弊端。
需要向更高一级的范式进行转换。
2NF
如果关系模式 R(U,F)∈1NF,且 R 中的每个非主属性完全函数依赖于 R 的某个候选码,则 R 满足第二范式(Second Normal Form),记作 R∈ 2NF。
从1NF关系中消除非主属性对主关系键的部分函数依赖,则可得到2NF
如果R的关系键为单属性,或R的全体属性均为主属性,则R∈2NF
2NF存在的问题 数据冗余 插入异常 删除异常 更新异常
原因:SL关系存在非主属性对主属性的传递依赖
3NF
如果关系模式 R(U,F)∈2NF,且每个非主属性都不传递函数依赖于任何候选码,则 R 满足第三范式(Third Normal Form),记作 R∈3NF。
3NF规范化 算法
把一个关系模式R分解为3NF,使它具有保持函数依赖性。
(1) 求Fmin, 如果Fmin中函数依赖X→A,且XA=R,无需分解。
(2)如果R中某些属性与Fmin中所有依赖的左部和右部都无关,则将它们单独构成一个模式。
(3)对于Fmin中的每一个函数依赖X→A,都单独构成一个关系子模式XA。若Fmin中有X→A1,X→A2,…,X→An,合并为关系模式XA1A2…An
3NF解决了2NF中存在的四个问题: 但是,3NF只限制了非主属性对键的部分依赖,而没有限制主属性对键的依赖
BC范式:消除主属性对键的部分依赖
BCNF
如果关系模式R∈1NF,且所有的函数依赖X→Y(Y X),决定因素 X 都包含了R的一个候选键,则称R属于BC范式,记作R∈BCNF。 BC范式:消除任何属性对主键的部分依赖和传递依赖 BCNF具有如下性质 : (1)如果R∈BCNF,则R也是3NF 。 (2)如果R∈3NF,则R不一定是BCNF 。
关系模式的规范化
一个低一级范式的关系模式,通过模式分解转化为若干个高一级范式的关系模式的集合 规范化的基本思想是逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的“分离”。 即采用“一事一地”的模式设计原则
让一个关系描述一个概念、一个实体或者实体间的一种联系。 若多于一个概念就把它“分离”出去。
关系模式规范化的步骤
要保证分解后的关系模式与原关系模式等价
等价的三种标准: 1.分解要具有无损连接性; 2.分解要具有函数依赖保持性; 3.分解既要具有无损连接性,又要具有函数依赖保持性。
无损连接和函数依赖保持使两个相互独立的标准,互无关系
按照规范化理论提供的分解方法,可以使分解既是无损连接又保持函数依赖
分解一定能达到3NF,但不一定达到BCNF
重点:关系运算题目
已知三个关系R、S、T,如下图所示。
请写出结果: (1)R∩S (2)R∪S (3)R-S (4)求笛卡尔积 R×T
设关系R,S,求R÷S
重点:关系代数表达式写法
在关系S中查询年龄超过18岁的男学生和超过16岁的女学生
在关系T中查询工资高于1000的男教师的姓名、编号和职称,写出关系代数表达式
查询信管班级中所有学生的姓名
查询选修了课程号为C1或C2的学生的学号和姓名
查询“钱尔”同学选修的课程的课程号,课程名和成绩
1. 专门的关系运算不包括下列中的(D )。
A. 连接运算
B. 选择运算
C. 投影运算
D. 交运算
2. 下列描述正确的是( )。
A. 一个数据库只能包含一个数据表
B. 一个数据库可以包含多个数据表
C. C.一个数据库只能包含两个数据表
D. D.一个数据表可以包含多个数据库
我的答案: B:一个数据库可以包含多个数据表;
3. 在关系模型中,实现“关系中不允许出现相同的元组”的约束是通过(主键; ):
4. 有两个基本关系(表):学生(学号,姓名,系号),系(系号,系名,系主任),学生表的主码为学号,系表的主码为系号,因而系号是学生表的( 外码(外关键字);)。
5. 对关系数据库的描述中,下列说法不正确的是(C )。
A. 每一列的分量是同一种类型的数据来自同一个域
B. 不同列的数据可以出自同一个域
C. 行的顺序可以任意交换,但列的顺序不能任意交换
D. 关系中的任意两个元组不能完全相同
6. 若D1={a1,a2,a3}, D2={b1,b2,b3} ,则 D1×D2集合中共有元组( 9;)个
7. 在关系数据库中,投影操作是指从关系中( 抽出特定的字段;)。
8. 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名员,则实体部门和职员间的联系是( 1:m联系;)。
9. 在满足实体完整性约束的条件下( 一个关系中应该有一个或者多个候选键;)
10. 设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为(学号,课号 )
11. 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是( B)。
A. 并
B. 交
C. 投影
D. 笛卡儿积
12. 下列叙述中正确的是( )。
A. 为了建立一个关系,首先要构造数据的逻辑关系
B. 表示关系的二维表中各元组的每一个分量还可以分成若干数据项
C. 一个关系的属性名表称为关系模式
D. 一个关系可以包括多个二维表
我的答案: C:一个关系的属性名表称为关系模式;
二. 简答题(共1题,40分)
13. (简答题, 40分)
3.27 设学生选课数据库的关系模式为:
S(Sno, Sname, Sage, Ssex),
SC(Sno,Cno, Grade),
C(Cno, Cname, teacher),
其中: S为学生关系, Sno表示学号, Sname表示学生姓名, Sage表示年龄, Ssex表示性别;
SC为选课关系, Cno表示课程号, grade表示成绩;
C为课程关系Cname表示课程名, teacher表示任课教师,
试用关系代数表达式表示下列查询。
1)查询年龄小于20岁的女学生的学号和姓名。
2)查询“张晓东”老师所讲授课程的课程号和课程名。
3)查询所有成绩不及格的学生的学号和课程号
写在作业本上拍照上传
我的答案:
重点:依赖集闭包候选码范式等
设属性集U为ABCDEI,函数依赖集F为{ A-->D, AB-->I, BI-->E, CD-->I, E-->C },求 (AE)的闭包
设属性集U为ABCD,函数依赖集F为{ A->C, C->A, B->AC, D->AC },求B相对于F的闭包B+。
设属性集U为ABCD,函数依赖集F为{ A->C, C->A, B->AC, D->AC },求Fmin
此题答案不唯一
设有关系模式R(A,B,C,D,E,P),其函数依赖集F={A→D, E→D, D→B, BC→D, DC→A},求R的所有候选键
关系模式R(A,B,C,D,E),函数依赖F={A->D,E->D,D->B,BC->D,CD->A}.求R的候选键
关系模式R(A,B,C,D,E,F),函数依赖集为F={AB -->E, AC-->F, AD-->B, B-->C, C-->D},求关系的候选键
1.属性分类
L类:A
R类:E,F
LR类:B,C,D
2.求L类属性集的闭包
A+不包含任何属性
3.取一个LR类的属性X,求(AX)+
(AB) +为 ABCDEF
(AC) +为 ABCDEF
(AD) +为 ABCDEF
AB,AC,AD为三个候选键
3.取两个LR类的属性XY,求(AXY)+
LR类属性为B,C,D,已经全部在候选键中,无法继续取,算法结束。
AB,AC,AD为三个候选键
设有关系模式R(A,B,C,D),函数依赖F={A->C, C->A, B->AC, D->AC, BD->A}
(1)确定关系R属于第几范式?(2)如果不是3NF请分解为3NF并保持函数依赖
1. 在最小函数依赖集F中,下面叙述不正确的是( B)。
A. F中的每个函数依赖的右部都是单属性
B. F中的每个函数依赖的左部都是单属性
C. F中没有冗余的函数依赖
D. F中的每个函数依赖的左部没有冗余的属性
2. 设有关系模式R(X,Y,Z,W)与它的函数依赖集F={XY→Z,W→X },则属性集(ZW)的闭包为( )XZW;
3. 下列关于函数依赖的描述中,哪一条是不正确的(C )。
A. 由X→Y,Y→Z,可以得到X→YZ
B. 由X→Y,Z Y,可以得到X→Z
C. 由X→YZ,可以得到X→Y,Y→Z
D. 由X→Y,WY→Z,可以得到XW→Z
4. 在关系模式R中,函数依赖X→Y的语义是( B)。
A. 在R的某一关系中,若两个元组的X值相等,则Y值也相等
B. 在R的每一关系中,若两个元组的X值相等,则Y值也相等
C. 在R的某一关系中,Y值应与X值相等
D. 在R的每一关系中,Y值应与X值相等
第4章 数据库设计方法
略
第5章 MYSQL的安装与使用
MySQL是一款单进程多线程、支持多用户、基于客户机/服务器( Client/Server,C/S)的关系数据库管理系统
MySQL的优势:
1.成本低:开放源代码,社区版本可以免费使用。
2.性能良:执行速度快,功能强大。
3.值得信赖。
4.操作简单:安装方便快捷,有多个图形客户端管理工具(MySQL Workbench/Navicat、MySQLFront, SQLyog等客户端)和一些集成开发环境。
5.兼容性好:安装于多种操作系统,跨平台性好,不存在32位和64位机的兼容,无法安装的问题。
MySQL的系统特性:
1.使用C和C++语言编写,并使用了多种编译器进行测试,保证了源代码的可移植性。
2.支持多线程,可充分利用CPU资源。
3.优化的SQL查询算法,能有效地提高查询速度。
4.提供TCP/IP,ODBC和JDBC等多种数据库连接途径。
5.支持LINUX,MAC OS,WINDOWS等多种操作系统平台。
6.既能够作为一个单独的应用程序应用在C/S网络环境中,也能够作为一个库嵌入到其他的软件中。
7.支持大型的数据库,可以处理拥有上千万条记录的大型数据库,数据类型丰富。
8.支持多种存储引擎。
元数据:关于数据的数据,也称为“数据字典”“数据目录”。
数据目录描述表的定义、视图的定义、数据的存取路径、访问权限、统计数据等。
数据目录由系统定义并使用,用户不能修改。
如果把数据目录删掉,数据库中的所有数据虽然还存在,但无法访问。
SQL语言的构成
1.数据定义类SQL(DDL--DATE DEFINITION LANGUAGE)
CREATE-创建数据库及其对象(表,索引,视图,存储过程,函数和触发器)
DROP-改变现有数据库的结构
ALTER-从数据库中删除对象
TRUNCATE-删除表中的所有记录,包括为记录分配的所有空格
COMMENT-为数据字典添加注释
RENAME-重命名对象
2.数据操作类SQL(DML-DATA MANIPULATION LANGUAGE)
INSERT- 将数据插入表中
DELETE-更新表中的现有数据
UPDATE-删除数据库表中的所有记录
SELECT-从数据库中检索数据
3.数据控制类SQL(DCL-DATA CONTROL LANGUAGE)
GRANT-允许用户访问数据库的权限
DENY-在安全系统中创建一项,以拒绝给当前数据库内的安全帐户授予权限并防止安全帐户通过其组或角色成员资格继承权限
REVOKE-撤消使用命令给出的用户访问权限
4.事务控制类SQL(TCL-TRANSACTION CONTROL LANGUAGE)
SET TRANSACTIION-指定事务的特征
ROLLBACK-在发生任何错误的情况下回滚事务
COMMIT-提交事务
SAVEPOINT - 回滚在组内创建点的事务
5.程序化SQL
关键字:DECLARE,EXPLAN,OPEN,FETCH,CLOSE,PREPARE,EXECUTE,DESCRIBEGRANT
相关mysql安装
1.MySQL服务器
一个安装有MySQL服务的主机系统,运行MySQL服务。
同一台MySQL服务器同时运行多个MySQL服务实例时,使用端口号区分这些MySQL服务实例。
2.端口号
服务器上运行的网络程序一般都是通过端口号来识别的,一台主机上端口号可以有65536个之多。 MySQL默认端口号3306
数据库管理员root 牢记安装时输入的密码123456
bin目录 用于放置一些可执行文件,如mysql.exe、mysqld.exe、mysqlshow.exe等。
data目录 用于放置一些日志文件以及数据库。
include目录 用于放置一些头文件,如:mysql.h、mysql_ername.h等。
lib目录 用于放置一系列库文件。
docs目录 存储文档 share目录 用于存放字符集、错误消息等信息。
my.ini 是MySQL数据库中使用的配置文件。
客户端工具Navicate
MySQL图形化管理工具——Navicat
1.创建连接,输入root密码
2.新建数据库 字符集选择“UTF-8”,排序规则选择“utf8_general_ci”
3.新建表 选择一个数据库,在“表”节点,新建表
4.新建查询 ,输入sql语句,运行
MySQL语句的规范
1.关键字与函数名称全部大写
2.数据库名称、表名称、字段名称等全部小写
3.SQL语句必须以分隔符结尾(分号“;”和“\g”)
4.SQL语句支持折行操作,只要不把单词、标记或引号字符串分割为两部分,可以在下一行继续写
5.数据库名称、表名称、字段名称等尽量不要使用MySQL的保留字,如果需要使用的时候需要使用反引号(``)将名称括起来。
第6章 MySQL存储引擎与数据库操作管理
数据库的存储引擎决定了数据表的存储和操作方式。 MySQL数据库提供了多种存储引擎
InnoDB存储引擎
事务型数据库的首选引擎,是事务安全的(遵循ACID原则),支持行锁定和外键
mysql 5.5以上版本的默认存储引擎
高效率,可用于高性能的大型数据库
MyISAM存储引擎
是Web、数据仓库等应用的常用引擎
MySQL5.5以下版本的默认存储引擎
具有较高的查询、插入速度,适用于查询操作频繁的应用 不是事务安全的
支持大文件,存储碎片更少
MEMORY存储引擎
表中的数据都存放在内存中,如果数据库重启或发生崩溃,表中的数据都将消失。
非常适合用于存储临时数据的临时表
(1)InnoDB
适用场景是需要事务支持、行级锁定对高并发有很好的适应能力,适用于数据更新较为频繁的场景。
(2)MyISAM
适用场景是不需要事务支持、并发相对较低、数据修改相对较少、以读为主、数据一致性要求不是非常高。
(3)MEMORY
适用场景是需要很快的读写速度、对数据的安全性要求较低。 MEMORY存储引擎对表的大小有要求,不能是太大的表。
MySQL字符集
字符集:一套文字符号及其编码、比较规则的集合。
第一个计算机字符集是ASCII码字符集
MySQL的默认字符集是latin1,单字符编码,而汉字是双字节编码,可能导致中文字符乱码。 MySQL服务器可以支持多种字符集,在同一台服务器、同一个数据库甚至同一个表的不同字段都可以使用不相同或相同的字符集。
MySQL字符集包括字符集和校对规则两个概念。
字符集用来定义MySQL存储字符串的方式。
校对规则定义比较字符串的方式。
MySQL支持30多种字符集的70多种校对规则。每个字符集至少对应一个校对规则。
选择MySQL字符集的考虑因素:
1.GBK每个汉字占用2个字节,而UTF-8汉字编码需要3个字节 满足应用支持语言的要求,如果应用要处理的语言种类多,建议选择Unicode字符集,就目前对MySQL来说,选择utf-8。
2.如果数据库只需要支持中文,数据量很大,性能要求也很高,那就应该选择双字GBK。
3. 更改字符集不会对之前原有的数据产生影响,有可能出现乱码
4.还需要考虑前台程序设计语言和客户机的字符集
MySQL的字符集和校对规则有4个级别的默认设置: 服务器级字符集和校对规则 数据库级字符集和校对规则 表级字符集和校对规则 字段级字符集和校对规则 字符集和校对规则可以在创建时指定,也可以创建后进行修改,但原有数据不会受到影响
查询当前服务器或数据库的字符集: SHOW VARIABLES LIKE ‘character_set_server’| ‘character_set_database’
查询当前服务器或数据库的校对规则: SHOW VARIABLES LIKE ‘collation_server’| ‘collation _database’