MySQL之关系型数据库

数据结构模型:层次模型、网状结构、关系模型

关系模型:
  将数据组织成二维关系:row,column

数据库管理系统:DBMS

关系型数据库管理系统:Relational,RDBMS 

RDBSM:
  MySQL:MySQL,MariaDB,Percona-Server
  PostgreSQL:简称为pgsql --> EnterpriseDB
  Oracle:
  MSSQL:

 事务:多个操作被当做一个整体对待

web服务器只是用来写数据库的,通常只有数据库会有读写,而数据库要支持并发的话,中间就会有读写事务的产生,而且为了保证并发过程中不会出错,因此就引入了锁和事务。

任何一个数据库引擎如果是支持事务的,就必须满足ACID测试。

ACID:
    A:原子性
    C:一致性
    I:隔离性
    D:持久性

SQL:Structure Query Language,结构化查询语言

用户如何与数据库服务器进行交互?

一般来说,每一种关系型数据库会把自己作为一个服务器运行,将自己提供的各种数据管理功能,通过监听的套接字接口上运行的应用层协议来实现,这个应用层协议叫数据存储协议,
它是应用层协议,通常是C/S架构的协议,服务器端需要监听在一个套接字上,能够接收客户端发来的请求,这个请求一定是应用层协议双方能够互相交换的报文,
客户端是请求报文,那么服务器端就应该是响应报文。
对于oracle来说就是oracle协议,对于mariadb或mysql就是mysql协议,对于SQLSERVER就是mssql协议,每一款软件的设计方要自己设计协议的。
数据存储协议:应用层协议,C/S
  S:server,监听于套接字,接受并处理客户端的应用请求
  C:client
    Client端有两种形式:
      程序接口:
        CLI:写sql语句
        GUI:写sql语句,不过是将sql语句封装在函数调用中
      应用编程接口:它是一个库
        ODBC:Open DataBase Connection,开放数据库系统互连,这是一个很底层的接口,无论哪个厂商生产的关系型数据库系统都支持ODBC,可以连mysql,也可以连oracle

基础概念:

设计范式:
  第一范式:字段是原子性的   第二范式:存在可用主键   第三范式:任何表都不应该有依赖于其他表的非主键的字段
约束:constraint,向数据表提供的数据要遵守的限制
约束有几种常见的类型:
  主键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行:必须填入数据,即NOT NULL;
    一个表只能存在一个
  唯一键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行:允许为NULL;
    一个表可以存在多个
  外键:一个表中的某字段可填入数据取决于另一个表的主键已有的数据
  检查性:可以定义一个表达式来约束字段的值,mysql目前不支持
索引:将表中的一个或多个字段中的数据复制一份另存,并且这些数据需要按特定次序排序存储;
关系运算:如何将两张表连接起来,或者一张表中抽取数据子集
关系运算主要有两种:
  选择:挑选出符合条件的行(部分);
  投影:挑选出需要的字段;
  连接:

数据抽象

从不同角度来看,数据展现给我们的形式是不一样的,数据库中我们看到的数据是表,而表存到文件中是数据流。

三种表现形式:

物理层(物理视图):决定数据的存储格式,即RDBMS在磁盘上如何组织文件;
逻辑层:描述DB数据库中存储什么数据,以及数据间存在什么样的关系;
视图层:描述DB中的部分数据

关系模型的分类

基本关系模型
实体-关系模型
基于对象的关系模型
半结构化的关系模型:基于xml格式来解析数据

MariaDB:关系型数据库的一种开源实现。

安装MariaDB(MySQL):

源代码:编译安装
二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用
程序包管理管理的程序包:
    rpm:
        OS Vender
        项目官方
    deb
原文地址:https://www.cnblogs.com/ckh2014/p/14245829.html