mysql
关系 :关系就是二维表,其中:表中的行、列次序并不重要
行row:表中的每一行,又称为一条记录
列column:表中的每一列,称为属性,字段
主键Primary key:用于惟一确定一个记录的字段
域domain:属性的取值范围,如,性别只能是‘男’和‘女’两个值
关系数据库
RDBMS:
MySQL: MySQL, MariaDB, Percona Server
PostgreSQL: 简称为pgsql,EnterpriseDB
Oracle
MSSQL
DB2
数据的操作:
数据提取:在数据集合中提取感兴趣的内容。SELECT
数据更新:变更数据库中的数据。INSERT、DELETE、UPDATE
联系的类型
一对一联系(1:1)
一对多联系(1:n)
多对多联系(m:n)简易数据规划流程
第一阶段:收集数据,得到字段
• 收集必要且完整的数据项
• 转换成数据表的字段
第二阶段:把字段分类,归入表,建立表的关联
• 关联:表和表间的关系
• 分割数据表并建立关联的优点
• 节省空间
• 减少输入错误
• 方便数据修改
第三阶段:
• 规范化数据库数据库的正规化分析
数据库规范化,又称数据库或资料库的正规化、标准化,是数据库设计中的一
系列原理和技术,以减少数据库中数据冗余,增进数据的一致性。关系模型的
发明者埃德加·科德最早提出这一概念,并于1970年代初定义了第一范式、第二
范式和第三范式的概念
RDMBS设计范式基础概念
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,不同
的规范要求被称为不同范式,各种范式呈递次规范,越高的范式数据库冗余越小
目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式
(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称
完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上
进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般
数据库只需满足第三范式(3NF)即可范式
1NF:无重复的列,每一列都是不可分割的基本数据项,同一列中不能有多个
值,即实体中的某个属性不能有多个值或者不能有重复的属性,确保每一列的
原子性。除去同类型的字段,就是无重复的列
说明:第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)
的数据库就不是关系数据库
2NF:属性完全依赖于主键,第二范式必须先满足第一范式,要求表中的每个
行必须可以被唯一地区分。通常为表加上一个列,以存储各个实例的唯一标识
PK,非PK的字段需要与整个PK有直接相关性
3NF:属性不依赖于其它非主属性,满足第三范式必须先满足第二范式。第三
范式要求一个数据库表中不包含已在其它表中已包含的非主关键字信息,非PK
的字段间不能有从属关系SQL概念
SQL: Structure Query Language
结构化查询语言
SQL解释器:
数据存储协议:应用层协议,C/S
S:server, 监听于套接字,接收并处理客户端的应用请求
C:Client
客户端程序接口
CLI
GUI
应用编程接口
ODBC:Open Database Connectivity
JDBC:Java Data Base Connectivity
基本概念
约束:constraint,表中的数据要遵守的限制 (主键 外键)
主键
一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;
必须提供数据,即NOT NULL,基本概念
不会出现完全一样的数据
不能为空
复合主键 (城市和姓名)
惟一键:员工 手机号
一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;
允许为NULL,(可以为空)一个表可以存在多个
员工
手机号
外键
一个表中的某字段可填入的数据取决于另一个表的主键或唯一键已有
的数据
检查
字段值在一定范围内基本概念
索引
将表中的一个或多个字段中的数据复制一份另存,并且按特定次序排序
存储
关系运算
选择:挑选出符合条件的行
投影:挑选出需要的字段
连接:表间字段的关联数据模型
数据抽象:
物理层 数据存储格式,即RDBMS在磁盘上如何组织文件
逻辑层 DBA角度描述存储什么数据,以及数据间存在什么样的关系
视图层 用户角度,描述DB中的部分数据
关系模型的分类
关系模型
基于对象的关系模型 (java,phthony)
半结构化的关系模型:XML数据(tomcat)
MYSQL的特性
插件式存储引擎:也称为“表类型”,存储管理器有多种实现版本,功能和特
性可能均略有差别;用户可根据需要灵活选择,Mysql5.5.5开始innoDB引擎是
MYSQL默认引擎
MyISAM ==> Aria
InnoDB ==> XtraDB
单进程,多线程
诸多扩展和新特性
提供了较多测试组件
开源安装**MYSQL**
Mariadb安装方式:
1、源代码:编译安装
2、二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用 (类似绿色版省略前期编译)
3、程序包管理器管理的程序包
CentOS 安装光盘
项目官方:https://downloads.mariadb.org/mariadb/repositories/
国内镜像:https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/
https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/
RPM包安装MySQL
数据库存放路径
端口号3306
单线程多进程
客户端工具
连接服务端
交互式
/s
root(服务器主机)@localhost(客户端主机)设置不同权限
同一主机服务端和客户端 套接字文件连接
不走基于网络的TCP UDP套接字端口号解封装 没有必要
相互读写 两个进程相互通信
数据库
实例 instance 一个版本多个软件(多个mysql 测试环境使用 模拟多个物理服务器) 两个软件无法使用同一端口
错开多端口 多实例
一个实例管理多个数据库(文件夹)
数据库存放多个表(对应多个文件)(文件类型数量和存储引擎有关)
系统数据库 系统自带 存放数据库源数据
show databases 查看数据库 默认4个
服务器端命令 要求加分号**
默认数据库(相对于文件夹) table 表格相当于文件
info内存中 动态数据 相当于/proc 不是真实的
mysql 自身专业信息 元数据 meta data
performance 性能
test测试用
use 进入哪个数据库
查看表格 show tables;(分号)
cd uer.frm
desc user 查看所有字段