MySQL入门指南

发表时间: 2020-06-14 18:30

1 数据库原理

1.1 数据的时代

涉及的数据量大 数据不随程序的结束而消失 数据被多个应用程序共享 大数据

数据的分类:

  • 结构化的数据:即有固定格式和有限长度的数据。例如填的表格就是结构化的数据,国籍:中华人民共和国,民族:汉,性别:男,这都叫结构化数据
  • 非结构化的数据:非结构化的数据越来越多,就是不定长、无固定格式的数据,例如网页,有时候非常长,有时候几句话就没了;例如语音,视频都是非结构化的数据
  • 半结构化数据:比如:XML或者HTML的格式的数据

1.2 数据库的发展史

萌芽阶段:文件系统 使用磁盘文件来存储数据 初级阶段:第一代数据库 出现了网状模型、层次模型的数据库 中级阶段:第二代数据库 关系型数据库和结构化查询语言 高级阶段:新一代数据库 “关系-对象”型数据库

文件管理系统的缺点

编写应用程序不方便 数据冗余不可避免 应用程序依赖性 不支持对文件的并发访问 数据间联系弱 难以按用户视图表示数据 无安全控制功能

1.3 DBMS 数据库管理系统

数据库是数据的汇集,它以一定的组织形式存于存储介质上 DBMS是管理数据库的系统软件,它实现数据库系统的各种功能。是数据库系统的核心 DBA:负责数据库的规划、设计、协调、维护和管理等工作 应用程序指以数据库为基础的应用程序

1.4 数据库管理系统的优点

相互关联的数据的集合 较少的数据冗余 程序与数据相互独立 保证数据的安全、可靠 最大限度地保证数据的正确性 数据可以并发使用并能同时保证一致性

1.5 数据库管理系统的基本功能

数据定义 数据处理 数据安全 数据备份

1.6 数据库系统的架构

单机架构 大型主机/终端架构 主从式架构(C/S) 分布式架构

1.7 各种数据库管理系统

1.7.1 网状数据库

最早出现的是网状DBMS,1964年通用电气公司的Charles Bachman成功地开发出世界上第一个网状IDS,也是第一个数据库管理系统,IDS 具有数据模式和日志的特征,只能在GE主机运行

1.7.2 层次数据库

以树型结构表示实体及其之间联系,关系只支持一对多

代表数据库:IBM IMS

1.7.3 RDBMS 关系型数据库
1.7.3.1 关系统型数据库相关概念
  • 关系 :关系就是二维表,其中:表中的行、列次序并不重要
  • 行row:表中的每一行,又称为一条记录record
  • 列column:表中的每一列,称为属性,字段,域field
  • 主键PK Primary key:用于惟一确定一个记录的字段,一张表只有一个主键
  • 域domain:属性的取值范围,如,性别只能是‘男’和‘女’两个值,人类的年龄只能0-150
1.7.3.2 常用关系数据库

MySQL: MySQL, MariaDB, Percona Server ​ PostgreSQL: 简称为pgsql,EnterpriseDB ​ Oracle ​ MSSQL ​ DB2

1.7.3.3 数据库排名

https://db-engines.com/en/ranking

1.8 关系型数据库理论

1.8.1 实体-联系模型E-R

实体Entity:客观存在并可以相互区分的客观事物或抽象事件称为实体 • 在E-R图中用矩形框表示实体,把实体名写在框内 属性:实体所具有的特征或性质 联系:联系是数据之间的关联集合,是客观存在的应用语义链 • 实体内部的联系:指组成实体的各属性之间的联系。如职工实体中,职工号和部门经理号之间有一种关联关系 • 实体之间的联系:指不同实体之间联系。例:学生选课实体和学生基本信息实体之间 • 实体之间的联系用菱形框表示

1.8.2 联系类型
  • 一对一联系(1:1)
  • 一对多联系(1:n):外键
  • 多对多联系(m:n):增加第三张表
1.8.3 数据的操作

数据提取:在数据集合中提取感兴趣的内容。SELECT 数据更新:变更数据库中的数据。INSERT、DELETE、UPDATE

1.8.4 数据库规划流程
  1. 收集数据,得到字段收集必要且完整的数据项转换成数据表的字段
  2. 把字段分类,归入表,建立表的关联关联:表和表间的关系分割数据表并建立关联的优点节省空间减少输入错误方便数据修改
  3. 规范化数据库
1.8.5 数据库的正规化分析

数据库规范化,又称数据库或资料库的正规化、标准化,是数据库设计中的一系列原理和技术,以减少数据库中数据冗余,增进数据的一致性。关系模型的发明者埃德加·科德最早提出这一概念,并于1970年代初定义了第一范式、第二范式和第三范式的概念 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,不同的规范要求被称为不同范式,各种范式呈递次规范,越高的范式数据库冗余越小 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般数据库只需满足第三范式(3NF)即可

1.8.5.1 第一范式:1NF

无重复的列,每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性,确保每一列的原子性。除去同类型的字段,就是无重复的列 说明:第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库

1.8.5.2 第二范式:2NF

属性完全依赖于主键,第二范式必须先满足第一范式,要求表中的每个行必须可以被唯一地区分,通常为表加上每行的唯一标识PK,非PK的字段需要与整个PK有直接相关性

1.8.5.3 第三范式:3NF

属性不依赖于其它非主属性,满足第三范式必须先满足第二范式。第三范式要求一个数据表中不包含已在其它表中已包含的非主关键字信息,非PK的字段间不能有从属关系

1.8.6 SQL 结构化查询语言简介

SQL:结构化查询语言,Structure Query Language SQL解释器: 数据存储协议:应用层协议,C/S S:server, 监听于套接字,接收并处理客户端的应用请求 C:Client 客户端程序接口 CLI GUI 应用编程接口 ODBC:Open Database Connectivity JDBC:Java Data Base Connectivity

1.8.7 SQL 基本概念

约束:constraint,表中的数据要遵守的限制 主键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;必须提供数据,即NOT NULL,一个表只能有一个 惟一键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;允许为NULL,一个表可以存在多个 外键:一个表中的某字段可填入的数据取决于另一个表的主键或唯一键已有的数据 检查:字段值在一定范围内 索引:将表中的一个或多个字段中的数据复制一份另存,并且按特定次序排序存储

1.8.8 关系运算
  • 选择:挑选出符合条件的行
  • 投影:挑选出需要的字段
  • 连接:表间字段的关联
1.8.9 数据抽象

物理层:数据存储格式,即RDBMS在磁盘上如何组织文件 逻辑层:DBA角度,描述存储什么数据,以及数据间存在什么样的关系 视图层:用户角度,描述DB中的部分数据

1.8.10 关系模型的分类

关系模型 基于对象的关系模型 半结构化的关系模型:XML数据