当前位置:Gxlcms > 数据库问题 > +++++++php组件、SQL组件

+++++++php组件、SQL组件

时间:2021-07-01 10:21:17 帮助过:17人阅读

驱动

MYSQL分支:mysql, mariadb, percona-server, pgsql(enterpriseDB)

  • NoSQL: mongodb, hbase, redis

  • NewSQL: 分布式模式管理存储引擎

  • 协议:关系模型、RDMBS、SQL协议、数据存储协议

    1. 关系模型:表(row: 2NF, column:1NF )

      实现: DBMS(Mysql, MariaDB)

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

      关系模型的分类:

       基本-关系模型
      
       实体-关系模型
      
       基于对象-关系模型
      
       半结构化-关系模型
           支持xml解析数据
    2. RDBMS: 满足关系型数据库的设计范式

      实现:SQL存储(MYSQL分支、Oracle、MSSQL)

       MYSQL分支:mysql官方, mariadb开源, percona-server著名, pgsql皮(enterpriseDB)
       Oracle: 传统公司:在智能手机普级的时候,在高级的收音机又有什么用呢?
       MS_SQL:微软

      设计范式:

       "1NF": 原子性 Atomicity,
           例如:一个字段包含班级和专业,不被允许
      
       "2NF":行内有有限个字段惟一标识此行, 
      
       "3NF":2个表有相同的字段时,1张表字段必须是主键
            例如:
                表1: 专业:非主键
                表2: 专业:主键

      满足范式:

        "拆表":将一个大的数据集拆分为小表,表必须满足范式
        "联合":join, 基于index,算法
        "数据集":一个库、方案、集合内

      表:先定义column, 后row

        可以没有row, 必须有column

      结构:

       SQL引擎: 
       执行[scan]、分析[parsing]、求解[解决方案]、优化[选择路径|修改路径结果不变]
       "事务:
       多个操作都完成或都不完成(Atomicity原子性, Consistency一致性, Isolating隔离性, Durability持久性)
       恢复:
       将事务日志中的数据同步至数据区
       锁:
       写(自己rw,其它人:-)读(自己:r,其它人:r)
       空间管理、缓冲、文件存取接口
    3. SQL协议:Structure Query Language结构化查询语言

      实现: SQL引擎或SQL解释器 SQL引擎(SQL协议): 命令运行、函数、变量

    4. 数据存储协议:

      C/S架构,mysql协议, mariadb协议, oracle协议, mssql协议(sql server)

      实现

       Client:
           程序:CLI(mysql), GUI(phpMyadmin)
           API:  SQL接口, php-mysql, ODBC(底层库)
               **API:写程序面向的对象:硬件规格、汇编、syscall、libcall
       Server: 
           监听socket,接收、处理、响应用户的请求

    三、MySQL/MariaDB基本知识

    开源RDBMS的实现

    MariaDB

    MariaDB的来源

    作者研发SQL接口:成立AB(瑞典公司),MySQL

    MySQL-->Google,facebook改进-->SUN收购-->Oracle收购SUN-->

    MySQL读音:‘My‘ ‘SQL‘

    作者不乐意:另起一摊:MariaDB Maria:女儿的名字

    Oracle收购SUN的原因

    Oracle不能提供硬件到软件到系统一体化的解决方案,而IBM(BIG BLUE)可以,为了比肩IBM,就收购了SUN

    约束:插入的数据要遵守的限制

    约束类型:

    • 主键约束:插入数据,惟一标识本行。Not NULL,惟一

    • 惟一键: 插入数据,惟一标识本行。NULL,不惟一

    • 外键约束:此表插入内容,取决于另一个表的主键

    • 检查性约束:字段定义表达式,插入数据必须满足表达式

    索引:抽取数据子集,排序

    稠密、稀疏:1对1 or 1对多

    简单、组合: 索引字段是1个或多个

    聚簇、非聚簇:索引字段与数据是否在一起

    关系运算:抽取数据集

    选择、选择row,WHERE

    投影、选择column, SELECT

    连接、join

    数据抽象:按视角

    视图层:view,只能看到数据库的部分内容:提升用户体验

    逻辑层:元数据, 依赖关系

    物理层:据存储格式:表和文件的对应关系

    MySQL安装:

    源码 rpm

    程序官方/项目官方:源码和二进制程序

    OS Vendor系统安装光盘: rpm 稳定 

    感激

    • 瑞哥QQ,博客

    • QQ: 2580259468

    • 博客

    技术分享

    关于作者

    • 邮件:lccnx@foxmail.cn

    • QQ: 2192383945


    本文出自 “Reading” 博客,请务必保留此出处http://sonlich.blog.51cto.com/12825953/1969965

    +++++++php组件、SQL组件

    标签:struggle strive endeavo

    人气教程排行