zoukankan      html  css  js  c++  java
  • 数据库(一)之数据库概念

    数据库概念
      数据库就是数据存放的地方,是需要长期存放在计算机内的有组织并且共享的数据集合。数据库中的数据按一定的数据模型组织,描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,可以为不同的用户共享使用。

    常见的数据库模型
       数据库可以使用多种类型的系统模型(模型是指数据库管理系统中数据的存储结构),其中较为常见的有三种:
         层次模型
         网状模型
         关系模型

    关系数据库概念
       关系数据库是由数据表和数据表之间的关联组成。关系数据库的特点在于它将每个具有相同属性的数据独立地存放在一个表中。对任何一个表而言,用户可以新增,删除和修改表中地数据,而不会影响表中地其他数  据。下面是关系数据库地一些基本术语:
       键码(key)关系模型中的一个重要概念,在关系中用来标识行的一列或多列
       主关键字(Primary Key)它是被挑选出来,作为表行的唯一标识的候选关键字,一个表中只有一个主关键字,主关键字又称为主键。
       候选关键字(Candidate Key)它是唯一标识表中的一行而又不含有多余属性的一个属性集。
       公共关键字(Common Key)在关系数据库中,关系之间的联系是通过相容或相同的属性或属性组表示的。如果这个关系中具有相容或相同的属性或属性组,那么这个属性或者属性组就被称为两个关系的公共关键字。
       外关键字(Foreign Key)如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外关键字。由此可见,外关键字表示了两个关系之间的联系,外关键字又称为外键。

    关系数据库完整性规则
       关系模型提供了三类完整性规则:实体完整性规则,参照完整性规则和用户定义的完整性规则。其中,实体完整性规则和参照完整性规则是关系模型必须满足的完整性的约束条件,称为关系完整性规则。
     实体完整性 在指关系的主属性(主键的组成部分)不能是空值。现实世界中的实体是可区分的,即他们具有某种唯一标识。相应地关系模型中以主键作为唯一性标识,主键中地属性即主属性不能取空值(不知道或无意义的值)。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与现实世界的环境相矛盾,因此这个实体一定不是一个完整的实体。
       参照完整性规则 如果关系R1的外键与关系R2中的主键相符,那么外键的每个值必须在关系R2中主键的值找到或者是空值。
       用户定义完整性 是针对某一具体的实际数据库的约束条件。它由应用环境所决定,反映某一具体应用所涉及的数据必须满足的要求。关系模型提供定义和检验这类完整性的机制,一边用统一的系统的方法处理,而不必应用程序承担这一功能。

    范式
     关系模型原理的核心是“规范化”概念,规范化是把数据库组织成在保持存储数据完整性的同时最小化冗余数据的结构的过程。规范化的数据库是符合关系模型规则的数据库,通常把这些规则称为范式。
     范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求即满足不同的范式,目前关系数据库有六种范式:第一范式(1NF),第二范式(2NF),第三范式(3NF),Boyce-Codd范式(BCNF),第四范式(4NF)和第五范式(5NF)。
     第一范式:第一范式是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。第一范式包括下列指导原则:数组的每个属性只能包含一个值,关系中的每个数组必须包含相同数量的值,关系中的每个数组一定不能相同。
     第二范式:如果一个数据表已经满足第一范式,而且该数据表中的任何一个非主键字段的数值都依赖于该数据表的主键字段,那么该数据表满足第二范式,即2NF。
     第三范式:如果一个数据表已经满足第二范式,而且该数据表中的任何两个非主键字段的数据值之间不存在函数信赖关系,那么该数据表满足第三范式。


    E-R模型简介
       E-R数据模型,即实体联系数据模型,是于1976年提出的早期的语义数据模型。该数据模型的最初提出是用于数据库设计,是面向问题的概念性数据模型,它用简单的图形反映了现实世界中存在的事物或数据及它们之间的关系。
       实体:实体是观念世界中描述客观事物的概念,可以是具体的事物,也可以是抽象的事物。
       关系:一对一,一对多,多对多

  • 相关阅读:
    JVM学习-垃圾回收算法
    JVM学习-jvm判断对象已死的方法
    JVM学习-jvm内存区域
    python 多线程
    Python+unittest+requests+excel实现接口自动化测试框架
    linux 运行tensorflow文件缺少_bz2问题及解决
    获取url地址
    微信小程序的小问题(2)
    微信小程序的小问题(1)
    前端知识
  • 原文地址:https://www.cnblogs.com/ZGreMount/p/8551761.html
Copyright © 2011-2022 走看看