zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    (转载)敏捷开发一千零一问系列之三十三:每天编码多少行?
    (转载)memcpy的几个实现版本
    (转载)HTTP URL
    (转载)C++lambda表达式
    (转载)程序员面试什么最重要?
    (转载)static全局变量与普通的全局变量有什么区别?
    (转载)【C++】new A和new A()的区别详解
    (转载)php如何判断IP为有效IP地址
    查看修复HDFS中丢失的块
    dfs.replication、dfs.replication.min/max及dfs.safemode.threshold.pct
  • 原文地址:https://www.cnblogs.com/ckh2014/p/14245829.html
Copyright © 2011-2022 走看看