一个\"收纳箱\"带你走进数据库的世界
一、前言
1.1时势造英雄——数据时代,未来已来
? 如今,我们已然“从IT时代迈入DT时代”,马云也说过:未来的资源不是石油,不是天然气,而是“数据”。这是因为,在信息技术迭代如此之快的时代,会产生各种各样的大量数据、信息,那么伴随而来的问题就是:我们应该如何实现安全、有效地存储、检索以及管理数据?
? 数据时代,对数据的有效存储、高效访问、方便共享和安全控制已经成为目前亟待解决的问题。
1.2问题引出——如何解决上述问题呢?
? 我们使用生活中的一个例子来引出该问题的解决方法。
? 一般来说,家家户户都会有非常多的杂物,其可能种类诸多,数量也多,那么我们可以想到使用一个或多个库房,或者说是储物室,哪怕是收纳箱来存放这些物品。由此,我们可以联想到,对于越来越多,愈加复杂的数据,也可以为它们建立自己的存储空间,并且使之管理高效方便,而这样的存储空间我们将之可以定义为“数据库”。
? 数据库就是用来存放各种各样、繁多冗杂的“数据”的。下面我们具体介绍一下数据库的基本概念以及数据的定义,数据库的结构与种类。
二、数据库的基本概念
2.1数据库的概念
? 数据库,从简单来讲,可以认为是表的集合。而表是由不同的记录组织在一起形成的,而记录则是以“行”为单位的数据结构,一条记录则对应一个“行记录”,我们也可以称之为实体;而表中的每一列就是这个表中的某个属性,或者称之为一个数据项,也叫字段。
2.2数据库的结构
? 上面说到,数据库其实就是表的集合,而表就是记录的组合,记录由字段和实体组成。
(表:将不同的记录组织在一起,就形成了“表”,是用来存储数据的)
2.3数据的定义
? 数据:是描述事物的符号记录,包括数字,文字、图形、图像、声音、档案记录等;以“行记录”的形式按统一的格式进行存储。
? 其实我们可以将数据简单地理解为“有必要价值或特殊意义的信息”。
三、数据库的特点
? 我们可以继续结合上面收纳箱的例子引出数据库的特点。收纳箱,主要就是用来整理收纳物品的,我们可以将一个比较大的收纳箱分为多个区间,其中一个存放文具用品,其中一个存放生活用品等等,这样可以在一定程度上使我们在需要时快速获取,方便使用。
? 那么结合到数据库上,这个大收纳箱就是数据库,各个不同的区间就是各种不一样的表,而其中的物品就是表里面各种各样的数据。
? 而这样的结构和存储方式也可以提现出数据库的特点:
- 结构化存储大量的数据信息,方便进行有效的检索与访问;
- 有效保持数据信息的一致性、完整性,降低数据冗余;
- 满足应用的共享与安全要求(收纳箱可以上锁,只有拥有钥匙的可以使用)
四、数据库的类型
4.1数据库的发展历程
数据库的发展历史算是比较久的了,有兴趣可以了解一下。
数据库的发展是由经典数据模型(网状——层次——关系)发展而来的。
一般会按照下面的方式区分:
4.2数据库按存储类型分为:关系型数据库、非关系型数据库
- 关系型数据库:存储的是数值、字符、字符串、布尔值等;
- 非关系型数据库:存储的是图片,视频,语音等;
4.3主流数据库清单
? 关系型数据库:mysql(oracle公司),sql server(微软公司) access(微软) oracle(Oracle公司) db2(IBM公司) sybase(sybase)——(支持亿级别并发量,春晚活动) 其典型特点在于是:一种 "实体—关系"("E-R")的模型
? 非关系型数据库(NoSQL):MongoDB Redis(内存数据库/缓存数据库)以{K-V key-value 变量—值}存储memcache(内存数据库/缓存数据库) HBase(K-V —— 键值对)
4.2.2非关系数据库的优点:
- 满足数据库高并发读写;
- 对海量数据高效存储与访问;
- 高扩展高可用性
4.3浅谈Redis和memcache的异同(大家作为简单了解即可)
相同点:存储高热数据库(反复使用频率高)
- 不同点:Redis可以做持久化保存,可以存储对象(存储Java中对象的信息),而memcache缓存的内容在内存中数据容易丢失
补充点:
redis数据库的日志文件主要就是用于数据恢复的
- Oracle数据库的日志:重做日志组(轮循写入并且有同步备份数据库服务器)
五、关系数据库
? 关系数据库系统是基于关系模型的数据库系统,是关系模型应用到数据库领域的实例化。
5.1什么是关系模型?
? 关系模型建立在关系代数的理论基础上,也就是什么所说的"实体—关系"(E-R)图来直接表示,其包含了实体、关系和属性三个要素。
? 实体:也就是实例,对应于现实世界中可以区别于其他对象的“事件”或“事物”;
? 属性:实体所具有的某种特性,一个实体可以有多个属性;
? 联系:多个相同类型及共享相同性质的实体组成的集合之间的对应关系。
可能不是特别好理解,咱们还是来简单举个例子:
实体——银行客户或者银行账户;
属性——银行客户中的姓名、住址、联系方式等;
联系——银行客户和银行账户之间存在着“储蓄”的关系。
5.2主键和外键
数据表中的每行记录都必须是唯一的,而不允许出现完全相同的记录,通过定义主键(主关键字,Primary Key)可以保证记录的唯一性。
键,即关键字,它是关系模型中一个非常重要的元素。
5.2.1主键
主键唯一标识表中的行数据,一个主键对应一行数据。主键由一个或多个字段组成,其值具有唯一性,且不允许取null值。一个表只能有一个主键。
5.2.2外键
外键,就是以表里唯一一个和其他表有关联的字段,起到约束作用。外键一般在定义字段的时候创建。
一张表中的外键一定是另外一张表中的主键,主键不可以重复、外键可以重复;
补充:候选键:除了主键和外键以外的键
六、总结
? 本文主要是通过生活中简单的一个收纳箱的例子来了解数据库的概念、分类、结构、作用以及特性等方面的知识。