2018-07-24数据库基本认识

数据量的不断发展,增多,记录数据的方式也要有革新。
现在的人工智能,是让机器去学习大量的数据。
随着数据的量增大,就需要一种方式去存储和查找数据。
计算机中用数字化的存储方式,保存和查找都非常方便。
数据库:为了存储大量数据,和快速查找。
并且做成分布式(不仅存在一个硬盘中)


主要知识点

自学部分:要求印象中有这个东西,将来可以去查找

数据库特点:优化读写,能够在大量的数据中找到所需
MySQL是关系型数据库,基本设计模型为E-R关系模型。
90%工作量都在查询
大多数在乌班图中做。
人类对“0”的认知是非常不容易的

数据库简单介绍

  • 数据库系统解决的问题:持久化存储,优化读写,保证数据的有效性
  • 当前使用的数据库,主要分为两类
    1 文档型,如sqlite,就是一个文件,通过对文件的复制完成数据库的复制——手机、平板电脑等
    2 服务型,如mysql、postgre,数据存储在一个物理文件中,但是需要使用终端以tcp/ip协议连接,进行数据库的读写操作——可以执行命令

E-R模型

当前物理的数据库都是按照E-R模型进行设计的
E表示entry,实体
R表示relationship,关系
一个实体转换为数据库中的一个表
关系描述两个实体之间的对应规则,包括

  • 一对一
  • 一对多
  • 多对多

关系转换为数据库表中的一个列 *在关系型数据库中一行就是一个对象

关系同样也是一种数据,也需要被存储

数据关系类型

数据库设计的规范:(范式)
经过研究和对使用中问题的总结,对于设计数据库提出了一些规范,这些规范被称为范式

  • 第一范式(1NF):列不可拆分
  • 第二范式(2NF):唯一标识
  • 第三范式(3NF):引用主键
    说明:后一个范式,都是在前一个范式的基础上建立的

第一范式:列不可拆分,姓和名是两个信息,要考虑分开放还是一起放;是否可拆分基于当前想要实现的需求,够用就行。
第二范式:唯一标识,可以通过一个属性,唯一地找到这个数据。
第三范式:引用主键,引用关系的时候只能引用主键。

数据库完整性

*意思就是说要保证数据的正确

  • 一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中
  • 在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束

字段类型

在mysql中包含的数据类型很多,这里主要列出来常用的几种
数字:int,decimal
字符串:char,varchar(有限),text(大文本,不确定有多少字符)
日期:datetime
布尔:bit

*decimal(5,2)一共包含5位数,小数包含两位。
*text比如添加某商品的信息,不确定有多少, 所以要用text
*char 和 varchar的区别,var变量可变的意思
*char(8)如果不够右侧补空格,varchar(8)如果不够报错或就变成了那几位的数据类型
比如:存“abcd”,char(8)是“abcd ”,varchar(8)就是“abcd”

*只要用到了字符,就要考虑编码问题,gb2312国标国内通用,utf-8国际通用标准(推荐使用)
*bit(8)存八个位,两种状态如车辆的进出,可以用bit的0和1来表示;多种状态也行,但是设计上比较复杂,000,001,010,011,100,101,110,可以控制多种状态。

约束

  • 主键primary key
  • 非空not null
  • 惟一unique
  • 默认default
  • 外键foreign key
    主键,决定了一种物理上的方式,唯一标识
    非空,not null
    唯一约束,这个值是不能重复的,重复则报错
    设置默认值,如男女
    外键约束

*一个实体对应一个“表”,一个属性对应一个“字段”
*一旦创建了表,最好不要删除或者新增栏位(改变表的结构工作量太大)
*如果删除一个字段,连同id一起删除,新增字段就新增了一个id

逻辑删除

  • 对于重要数据,并不希望物理删除,一旦删除,数据无法找回
  • 一般对于重要数据,会设置一个isDelete的列,类型为bit,表示逻辑删除
  • 大于大量增长的非重要数据,可以进行物理删除
    *数据的重要性,要根据实际开发决定
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,012评论 2 89
  • 前面讲了SQL优化以及索引的使用、设计优化了,那么接下来就到表的设计与优化啦!!!真实地去设计优化单表结构以及讲述...
    JackFrost_fuzhu阅读 3,920评论 2 28
  • 文/Bruce.Liu1 1.建模简介 范式:英文名称是 Normal Form,它是英国人 E.F.Codd(埃...
    BruceLiu1阅读 5,656评论 0 9
  • 有个动听的词语叫做“折叠”,我折叠着我的爱,我的爱也折叠着我,我把我折叠着的爱在你的面前一点一点打开,然后...
    似鱼0208阅读 394评论 0 0
  • 体验: 约定 无论什么事情 如果想得到我们想要的结果 那一定要大家互生此事情的约定 依照约定执行 转换: 带领团队...
    美玉格格阅读 229评论 0 1