doubleyong
管理员
管理员
  • 最后登录2024-04-18
  • 发帖数1167
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:4295回复:0

【转】关系型数据库相关知识

楼主#
更多 发布于:2018-06-06 22:21
数据库管理系统:DBMS
           Database Management System
            数据库也是一段大型的管理程序,实现数据(高效存取)管理;专用于为某一项目或某一方案使用数据集合即为数据库


            层次模型:与应用程序耦合度过高,不利于使用
            网状模型:
            关系模型:关系是指表之间
                行、列:二维关系表,行为数据,列为字段
                事务、范式(降低存储空间的浪费,却增加多张表之间的关系,浪费服务器的读写和计算能力)
            对象-关系模型:


                Sybase, Infomix, Oracle
                PostgreSQL, MySQL, MariaDB, Sqlite

               MySQL, MariaDB


            SQL: Structured Query Lanague
                CREATE
                DROP
                ALTER
                INSERT
                SELECT
                UPDATE
                DELETE


         事务:(多个语句绑成一个操作视为事务,在一个操作完成前第二个操作必须等待)
                A:原子性,多个操作都完成才算结束
                C:一致性,事务的部分操作结果写入数据库中,则库的状态就是不一致,数据库必须一致性状态
                I:隔离性,多个事务必须隔离开不能同时操作
                D:持久性,保证数据一旦修改能长久保存硬盘中


      RDMBS设计范式基础概念

       设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。
       目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。
           (第1范式) 字段不可分割;
            (第2范式) 应该拥有主键;
            (第3范式) 表间不能拥相同的非主键字段;


    约束:constraint
        主键约束:新插入行的(单个字段或者字段集合)不能同已存行的,非空的必须字段赋值;(Not Null);一张表只能有一个惟一键;primary key
        惟一键约束:不能同已有数据;一张表上可以存在多个惟一键;unique key
        外键约束:表之间对应字段间的约束关系;foreign key,该字段的值必须在另外个表上存在且为另外表的主键
        检查性约束:自定义的表达式约束;


    索引:将表中一个或多个字段抽取出来,按特定数据结构重新组织和存放的数据;(方便了读操作,多了写操作)


    关系运算:
        选择和投影
            选择:挑选行;
            投影:挑选字段;
            选择和投影不必同时进行
        连接:当字段的值相等数据,连接表之间


  RDBMS的管理结构:
        C/S
            Client:客户端程序(GUI, CLI)、应用编程接口(API);
                mysql客户端mysql进程, php-mysqlphp连接mysq的组件, python-MySQL
            Server:DBMS (监听在套接字上,接收、处理并响应客户端请求);
                mysqld

           mysql --> mysql protocol --> mysqld
            
            mysql单进程多线程方式,所有客户端都连接mysql单进程下的线程


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


    数据模型的分类:
        关系模型
        实体-关系模型
        基于对象的数据模型
        半结构化数据模型


原文:http://blog.51cto.com/5489884/1706090
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号