第二章 MySQL数据库基础

来源:互联网 发布:mysql explode 编辑:程序博客网 时间:2024/06/04 23:32

1.数据库系统包括3个主要部分:

(1)数据库:用于存储数据的存储空间(2)数据库管理系统:用于管理数据库的软件(3)数据库应用程序:为了提高数据库系统的处理能力所使用的管理数据库的软件补充。

2.MySQL与Oracle

(1)MySQL是一个快速、多线程、多用户、健壮的SQL数据库服务器,与其他数据库管理系统相比,MySQL优势:    是一个关系数据库管理系统;    是开源的;    MySQL服务器是一个快速、可靠和易于使用的数据库服务器;    MySQL服务器工作在客户/服务器或嵌入系统中;    有大量的MySQL软件可以使用。(2)Oracle(甲骨文)优势:    兼容性:采用标准SQL    可移植性:可运行于很宽范围的硬件与操作系统平台上。    可连接性:与多种通信网络相连,支持多种协议    搞生产率:    开放性:

3.关系型数据模型的结构

1.模型是对现实世界的抽象,在数据库技术中,用模型的概念描述数据库的结构与语义,对现实世界进行抽象。数据模型的种类很多,可分为两种类型:    一种是独立于计算机系统的数据模型,完全不涉及信息在计算机中的表示,只是用来描述某个特定组织所关心的信息结构,这种模型成为“概念数据模型”。典型代表是“实体——关系模型”。    另一种是直接面向数据库的逻辑结构,直接与数据库管理系统有关,称为“逻辑数据模型”,包括层次模型、网状模型、关系模型、和面向对象模型。目前理论成熟、使用普及的模型就是**关系模型**。2.关系数据库是以关系模型为基础的数据库,是一种根据表、元组、字段之间的关系进行组织和访问数据的数据库,它通过若干个表来存取数据,并且通过关系将这些表联系在一起。3.在实际数据库系统中支持的数据模型主要有3种:层次模型、网状模型和关系模型。关系模型占主导地位。关系模型有3个主要组成部分:数据结构、数据操作和完整性规则。关系模型建立在严格的数学概念的基础上,它用二维表来描述实体与实体间的联系。4.关系模型中的术语:    关系:对应通常所说的一张表。    元组:表中的一行即为一个元组,可用来标识实体集中的一个实体,表中任意两行(元组)不能相同。    属性:表中的一列即为一个属性。    主键:表中的某个属性组,它可以唯一确定一个元组。    域:列的取值范围称为域,同列具有相同的域,不同的列也可以有相同的域。    分量:元组中的一个属性值。    关系模式:对关系的描述。可表示为:关系名(属性1,属性2,。。。)。5.关系是一种规范化的二维表格,具有如下性质:(1)属性值具有原子性,不可分解;(2)没有重复的元组;(3)理论上没有行序,但是使用时可以有行序。关键码(简称键)是关系模型的一个重要概念,是用来标识行(元组)的一个或几个列(属性)。如果键是唯一的属性,则称为唯一键;反之由多个属性组成,则成为复合键。键的主要类型:    超键:在一个关系中,能唯一标识元组的属性或属性集称为关系的超键。    侯选键:如果一个属性集能唯一标识元组,且又不含有多余的属性,则这个属性集称为关系的候选键。    主键:若一个关系中有多个候选键,则选择其中一个键为主键。    外键:如果一个关系R中包含另一个关系S的主键所对应的属性组F,则称为属性组F为关系R的外键,并称关系S为参照关系,关系R是依赖关系。为了表示关联,可以将一个关系的主键作为属性放入另外一个关系中,第二个关系中的那些属性就称为外键。

4.关系数据库模型的操作与完整性

1.操作语言的语句分为查询语句和更新语句两大类。关系数据操作语言建立在关系代数上,具有一下特点:
(1)以关系为单位进行数据操作,操作的结果也是关系;
(2)非过程性强。很多操作只需指出做什么,不需要引导怎么去做;
(3)以关系代数为基础,借助于传统的集合运算和专门的关系运算,使关系数据语言具有很强的数据操作能力。
2.数据操作语言中对数据进行查询和更新等操作的语句:

  • SELECT 语句:按指定的条件在一个数据库中查询的结果,返回的结果被看作记录的集合。
  • SELECT…INTO语句:用于创建一个查询表。
  • INSERT INTO语句:用于向一个表添加一个或多个记录。
  • UPDATE语句:用于创建一个更新查询,根据指定的条件更改指定表中的字段值。该语句不生成结果集,而且当使用更新查询更新记录之后,不能取消这次操作。
  • INNER JOIN操作:用于组合两个表中的记录,只要在公共字段之中有相符的值。可以在任何FROM子句中使用INNER JOIN运算,这是最普通的连接类型。只要在这两个表的公共字段之中有相符的值,内部连接将组合两个表中的记录。
  • LEFT JOIN操作:用于在任何FROM子句中组合来源表的记录。使用LEFT JOIN运算来创建一个左边外部连接。左边外部连接将包含从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没用相符值的记录。
  • RIGHT JOIN操作:用于在任何FROM子句中组合来源表的记录。使用RIGHT JOIN运算创建一个右边外部连接。右边外部连接将包含从第二个(右边)表开始的两个表中的全部记录,即使在第一个(左边)表中并没用匹配值的记录。
  • PARAMETERS声明:用于声明在参数查询中的每一个参数的名称及数据类型。该声明是可选的,但是当使用时,须置于任何其他语句之前,包括SELECT语句。
  • UNION操作:用于创建一个联合查询,它组合了两个或更多的独立查询或表的结果。所有在一个联合运算中的查询,都须请求相同数目的字段,但是字段不必大小相同或数据类型相同。
    3.codd提出了RDBMS的12项准则:
  • 信息准则:
  • 保证访问准则:
  • 空值的系统化处理:
  • 基于关系模型的联机目录:
  • 统一的数据子语言准则:
  • 视图更新准则:
  • 高阶的插入、更新和删除:
  • 数据的物理独立性:
  • 数据的逻辑独立性:
  • 数据完整的独立性:
  • 分布独立性:
  • 无破坏准则:
    4.数据库管理系统是对数据进行管理的大型系统软件,它是数据库系统的核心组成部分,用户在数据库系统中的一切操作,包括数据定义、查询、更新及各种控制,都是通过DBMS进行的。
    关系模型的完整性规则是对数据的约束。关系模型提供了3类完整性规则:其中实体完整性规划和参照完整性规划是关系模型必须满足的完整性的约束条件,称为关系完整性规划。
  • 实体完整性规划:指关系的主属性(主键的组成部分)不能是NULL。NULL就是指不知道或是不能使用的值,它与数值0和空字符串的意义都不一样。
  • 参照完整性规划:如果关系的外键R1与关系R2中的主键相符,那么外键的每个值必须在关系R2中主键的值找到或者是空值。
  • 用户定义的完整性规划:是针对某一具体的实际数据库的约束条件。

5.关系型数据模型中的数据依赖与范式

关系数据库由相互联系的一组关系所组成,每个关系包括关系模式和关系值两个方面。关系模式是对关系的抽象定义,给出关系的具体结构;关系的值是关系的具体内容,反映关系在某一时刻的状态。关系模型原理的核心内容就是规范化概念,规范化是把数据库组织成在保持存储数据完整性的同时最小化冗余数据的结构的过程。规范化的数据库必须符合关系模型的范式规则。范式可以防止在使用数据库时出现不一致的数据,并防止数据丢失。关系模式的范式有第一范式、第二范式、第三范式和BCNF范式等多种。在这些定义中,高级范式根据定义属于所有低级的范式。
  1. 第一范式
    第一范式是第二范式和第三范式的基础,是最基本的范式。包括下列指导原则:
    数据组的每个属性只可以包含一个值。
    关系中的每个数组必须包含相同数量的值。
    关系中的每个数组一定不能相同。
    如果关系模式R中的所有属性值都是不可再分解的原子值,那么称次关系R是第一范式(1NF)的关系模式,否则称为非规范化的关系。
  2. 第二范式
    第二范式(2NF)规定关系必须在第一范式中,并且关系中的所有属性依赖与整个候选键。候选键是一个或多个唯一标识每个数据组的属性集合。

  3. 第三范式
    同2NF一样依赖于关系的候选键。且关系必须在2NF中,非键属性相互之间必须无关,并且必须依赖于键。

6.常见的关系型数据库管理系统

1.Oracle
采用标准的结构化查询语言(Structured Query Language, SQL),支持多种数据类型,提供面向对象存储的数据支持,具有第四代语言开发工具,支持UNIX、Windows、OS/2、Novell等多种平台。除此之外,还具有很好的并行处理能力。Oracle产品主要由Oracle服务器产品、Oracle开发工具、Oracle应用软件组成,主要满足对银行、金融、保险等企业、事业开发大型数据库的需求。
2.SQL Server
目前,已成为应用最广泛的数据库产品之一。由于使用SQL Server不但要掌握SQL Server的操作,还要能掌握Windows NT/2000 Server的运行机制,以及SQL语言,所以对非专业人员的学习和使用有一定的难度。
3.Sybase
大型关系型数据库管理系统,支持多平台,支持标准SQL语言,使用客户机/服务器模式,采用开放体系机构,能实现网络环境下各节点上服务器的数据库互访操作。
4.DB2
是基于SQL的关系型数据库产品。适用于各种硬件与软件平台,各种平台上的DB2有共同的应用程序接口,运行在一种平台上的程序可以很容易地移植到其他平台上。以金融应用最为突出。
5.Access
是在Windows操作系统下工作的关系型数据库管理系统,采用了Windows程序设计理念,被集成到office中,具有office系列软件的一般特点。与其他相比,简单易学,试用于中小型企业数据管理的需求。当然,在数据定义、数据安全可靠、数据有效控制等方面,它比前几种数据库产品逊色不少。

7.MySQL数据库系统的体系结构

MySQL是由SQL接口、解析器、优化器、缓存、存储引擎组成的,如下:
这里写图片描述
(1)支持接口:是指不同语言中于SQL的交互;
(2)管理服务和工具:系统管理和控制工具;
(3)连接池:管理缓冲用户连接、线程处理等需要缓存的需求;
(4)SQL接口:接受用户的SQL命令,并且返回用户需要查询的结果;
(5)解析器:SQL命令传递到解析器的时候会被解析器验证和解析,解析器是由Lex和YACC实现的,是一个很长的脚本,其主要功能如下:
将SQL语句分解成数据结构,并将这个结构传递到后续步骤,以后SQL语句的传递和处理就是基于这个结构的。
如果在分解构成中遇到错误,那么就说明这个SQL语句是不合理的。
(6)查询优化器:SQL语句在查询之前会使用查询优化器对查询进行优化。它使用“选取——投影——连接”策略进行查询。
(7)缓存和缓存池:查询缓存。如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。这个缓存机制是由一系列小缓存组成的。
(8)存储引擎:存储引擎是MySQL中具体的与文件打交道的子系统。也是MySQL最具有特色的一个地方。从MySQL 5.5之后,InnoDB就是MySQL的默认事物引擎。

0 0
原创粉丝点击