过往的青春,诉写白纸般的纯真。
一什么是数据库
数据库是按照数据结构来组织存储和管理数据的仓库是一个长期存储在计算机内的有组织的可共享的统一管理的大量数据的集合
数据库的存储空间很大可以存放百万条千万条上亿条数据但是数据库并不是随意地将数据进行存放是有一定的规则的否则查询的效率会很低当今世界是一个充满着数据的互联网世界充斥着大量的数据即这个互联网世界就是数据世界数据的来源有很多比如出行记录消费记录浏览的网页发送的消息等等除了文本类型的数据图像音乐声音都是数据
数据库的概念实际包括两层意思
1数据库是一个实体它是能够合理保管数据的仓库用户在该仓库中存放要管理的事务数据数据和库两个概念结合成为数据库
2数据库是数据管理的新方法和技术它能更合适的组织数据更方便的维护数据更严密的控制数据和更有效的利用数据
数据库作为最重要的基础软件是确保计算机系统稳定运行的基石
二数据库有哪些类型
数据库有两种类型分别是关系型数据库与非关系型数据库
1关系数据库
关系型数据库存储的格式可以直观地反映实体间的关系关系型数据库和常见的表格比较相似关系型数据库中表与表之间是有很多复杂的关联关系的常见的关系型数据库有MysqlSqlServer等在轻量或者小型的应用中使用不同的关系型数据库对系统的性能影响不大但是在构建大型应用时则需要根据应用的业务需求和性能需求选择合适的关系型数据库
关系型数据库对于结构化数据的处理更合适如学生成绩地址等这样的数据一般情况下需要使用结构化的查询例如join这样的情况下关系型数据库就会比NoSQL数据库性能更优而且精确度更高由于结构化数据的规模不算太大数据规模的增长通常也是可预期的所以针对结构化数据使用关系型数据库更好关系型数据库十分注意数据操作的事务性一致性如果对这方面的要求关系型数据库无疑可以很好的满足
2非关系型数据库(NoSQL)
随着近些年技术方向的不断拓展大量的NoSql数据库如MongoDBRedisMemcache出于简化数据库结构避免冗余影响性能的表连接摒弃复杂分布式的目的被设计
NoSQL数据库指的是分布式的非关系型的不保证遵循ACID原则的数据存储系统NoSQL数据库技术与CAP理论一致性哈希算法有密切关系所谓CAP理论简单来说就是一个分布式系统不可能满足可用性一致性与分区容错性这三个要求一次性满足两种要求是该系统的上限而一致性哈希算法则指的是NoSQL数据库在应用过程中为满足工作需求而在通常情况下产生的一种数据算法该算法能有效解决工作方面的诸多问题但也存在弊端即工作完成质量会随着节点的变化而产生波动当节点过多时相关工作结果就无法那么准确这一问题使整个系统的工作效率受到影响导致整个数据库系统的数据乱码与出错率大大提高甚至会出现数据节点的内容迁移产生错误的代码信息但尽管如此NoSQL数据库技术还是具有非常明显的应用优势如数据库结构相对简单在大数据量下的读写性能好能满足随时存储自定义数据格式需求非常适用于大数据处理工作
NoSQL数据库适合追求速度和可扩展性业务多变的应用场景对于非结构化数据的处理更合适如文章评论这些数据如全文搜索机器学习通常只用于模糊处理并不需要像结构化数据一样进行精确查询而且这类数据的数据规模往往是海量的数据规模的增长往往也是不可能预期的而NoSQL数据库的扩展能力几乎也是无限的所以NoSQL数据库可以很好的满足这一类数据的存储NoSQL数据库利用key-value可以大量的获取大量的非结构化数据并且数据的获取效率很高但用它查询结构化数据效果就比较差
目前NoSQL数据库仍然没有一个统一的标准它现在有四种大的分类
(1)键值对存储(key-value)代表软件Redis它的优点能够进行数据的快速查询而缺点是需要存储数据之间的关系
(2)列存储代表软件Hbase它的优点是对数据能快速查询数据存储的扩展性强而缺点是数据库的功能有局限性
(3)文档数据库存储代表软件MongoDB它的优点是对数据结构要求不特别的严格而缺点是查询性的性能不好同时缺少一种统一查询语言
(4)图形数据库存储代表软件InfoGrid它的优点可以方便的利用图结构相关算法进行计算而缺点是要想得到结果必须进行整个图的计算而且遇到不适合的数据模型时图形数据库很难使用