DBMS(DataBase Management System)  数据库管理系统

RDBMS(Relational DataBase Management System)  关系型数据库管理系统



    数据的组织结构:

        层次型

        网状型

        关系型(二维关系表)  注:一张表可能在系统中以多个文件存在。


    关系:关系代数运算

        投影:只输出指定属性

        选择:只输出符合条件的行

        自然连接

        笛卡尔集

        交集

        并集

        差集

        全集

        补集


    在mysql定义中,定义了一些维护数据库完整的规则,即表的约束:


  •         主键约束(PRIMARY KEY):某字段能唯一标识此字段所属的实体,不为空

                    单字段主键  字段名 数据类型 PRIMARY KEY

                    多字段主键  PRIMARY KEY(字段1,字段2...)

  •         外键约束 (FOREIGN KEY):引用完整性约束


  •         非空约束 (NOT NULL):字段的值不能为NULL

                    字段名 数据类型 NOT NULL

  •         唯一性约束 (UNIQUE):字段的值不能重复出现

                    字段名 数据类型 UNIQUE

  •         检查性约束:mysql对其支持有限



mysql为单进程,

       多线程(防止权限交叉):

            守护进程

            应用线程

       数据库一般为系统性能的瓶颈,之所以这么说,是因为一个线程的创建(基于大数据的查询),有可能会消耗大量内存,因此生产环境一般使用64bit系统,并且尽量避免单点并发,同时做数据库的缓存和线程复用。       


MYSQL插件式存储引擎(是基于表的)

5.5.8       MyISAM(适用于查询比较多,修改比较少的,即数据仓库,无事务,表锁)

             .frm:表结构定义文件

             .MYD:表数据

            .MYI:索引

5.5.8以后:     InnoDB(适用于在线事务处理系统,支持行锁)

            .frm:表结构定义文件

            .ibd:表空间(数据和索引)

wKiom1cMu0_D7t-fAAATW1xDXso621.pngwKiom1cMvbrjz6sKAAIcwR-w5XY113.png

    用户发起连接请求,连接管理器接受并转发给线程管理器,线程管理器生成一个线程,接着由用户模块来验证相应的访问权限,权限正确,建立连接。命令分发模块,执行命令,若缓存中有相应结果则返回,并记录日志,否则,通过解析器解析命令,交给底层相关模块。


mysql(client)mysqld(server)位于同一台主机

    unix/linux:使用socket通信

    windows:通过共享内存(memory)或者管道(pipe)通信

  

不在同一台主机

    基于TCP/IP协议通信


mysql客户端工具:

    mysql

    mysqldump    备份

    mysqladmin

    mysqlcheck

    

   options

    -u

    -h

    -p

    --protocol

    --port