一、什么是数据库
数据库(DB,DataBase)
是存放数据的仓库,是长期储存在计算机内、有组织的、可共享的大量数据的集合。/
数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。
二、为什么要使用数据库?
结构化编辑
数据库系统实现了整体数据的结构化,这是数据库的最主要的特征之一。这里所说的“整体”结构化,是指在数据库中的数据不再仅针对某个应用,而是面向全组织;不仅数据内部是结构化,而且整体式结构化,数据之间有联系。
共享性编辑
因为数据是面向整体的,所以数据可以被多个用户、多个应用程序共享使用,可以大大减少数据冗余,节约存储空间,避免数据之间的不相容性与不一致性。
三、什么是数据库管理系统
数据库管理系统(DBMS,DataBase ManagementSystem)
是位于用户与操作系统之间的一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。
简单来说,用户不可直接通过操作系统访问数据库文件中的数据,需要通过DBMS(调用操作系统的进程管理、内存管理、文件管理、设备管理等服务)进行访问
(其实我们平时说的数据库是指数据库管理系统)
四、数据库有哪些类型
大类可分为两类:
①关系型数据库:关系型数据库中表与表之间有很多复杂的关联关系。适用于轻量或者小型的应用
②非关系型数据库(NoSQL):指分布式的、非关系型的、不保证遵循ACID原则的数据存储系统。适用于数据规模海量需要可扩展性、业务多变的应用场景
1、关系型数据库
形态:可以理解为二维表;
操作方式:通常用SQL对数据库进行操作,对数据的操作可建立在一个或多个表格上,通过对这些表格进行分类、合并、连接或选取等运算来实现数据库的管理。
常见的数据库管理系统:
(几乎所有的数据库管理系统都配备了一个开放式数据库连接(ODBC)驱动程序,令各个数据库之间得以互相集成。)
数据库名称 | 开发团队 | 优点 | 缺点 | 补充说明 |
---|---|---|---|---|
MySQL | - | 开源、轻量、成本低 | 在General Public License的许可下下载即可调整 | |
Oracle | 甲骨文 | 性能高、安全性高 | 对硬件要求高、管理维护和操作复杂、价格贵 | 一般应用于银行、进入、保险等 |
SQL Server | 微软 | 效率高、与Windows操作系统紧密集成 | 开放性弱 | - |
2、键值存储数据库
常见的数据库管理系统:
数据库名称 | 是否开源 | 特点 | 作用 | 优点 | 缺点 |
---|---|---|---|---|---|
Redis | 开源 | 使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API | 通常作为普通关系型数据库的缓存层,用于降低数据库的访问压力,提升系统性能 | 查询效率高 | 需要存储数据之间的关系 |
Mencached | 开源 | value除了php中的资源不能存,其它的数据都能存储(字符串,数值,数组,对象,布尔值 ,null,二进制<图片,视频>) |
.高性能分布式缓存服务器(缓存数据库查询结果,减少数据库访问次数) 缓存读取/写入过程 : 首次访问 : 从RDBMS中取得数据保存到memcached;第二次后 : 从memcached中取得数据显示页面. |
查询效率高 | 动态视图较弱 |
3、列存储数据库
常见的数据库管理系统:
数据库名称 | 是否开源 | 特点 | 作用 |
---|---|---|---|
HBase | 开源 | 使用java语言编写、是建立在 HDFS 之上,提供高可靠性、高性能、列存储、 可伸缩、实时读写 NoSQL 的数据库系统 | 数据存储量大,主要用来存储海量的业务数据和日志数据 |
4、面向文档数据库
常见的数据库管理系统:
数据库名称 | 特点 | 优点 | 缺点 |
---|---|---|---|
MongoDB | 其介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 | 分布式部署,可以随着负载的增大动态扩容,从而满足企业业务增长的需求 | 由于对数据结构要求不太严格,所以缺少统一查询语言、查询性能不好 |
CouchDB | 存储半结构化的数据,比较类似lucene的index结构,特别适合存储文档,因此很适合CMS,电话本,地址本等应用 | 开箱即用安全,复制形式简单 | 动态查询较弱 |
5、图形数据库
常见的数据库管理系统:
数据库名称 | 概述 | 补充说明 | 缺点 |
---|---|---|---|
Neo4j | Neo4j创建的图是用顶点和边构建一个有向图,其查询语言cypher已经成为事实上的标准。支持Python和Java应用程序 | 支持完整的事务,在属性图中,图是由顶点(Vertex),边(Edge)和属性(Property)组成的,顶点和边都可以设置属性,顶点也称作节点,边也称作关系,每个节点和关系都可以由一个或多个属性 | 户手动为新边线设置索引机制,方便性较弱 |
最后,附上相对应的三种数据类型基础入门知识:
结构化数据(行数据,存储在数据库里,可以用二维表结构进行逻辑表达实现的数据,如关系型数据库的数据)
半结构化数据(介于完全结构化数据和完全无结构的数据之间的数据,如HTML,JSON,XML)
非机构化数据(没有固定结构的数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息)
拓展:
数据库
数据库是一个容器,包含了很多数据,当然这些数据可能存在不同的小容器(表)里面。
若用水来形容数据,数据库就是水库。数据源
数据源是连接到数据库的一类路径,它包含了访问数据库的信息(地址、用户名、密码)。
数据源就像是排水管道。数据库连接
数据库连接是根据数据源产生的实际连接上数据库的路径。
数据库连接就像是管道里面的水管,这些水管都按照管道(数据源)的配置访问数据库。当打开了数据连接的时候,就像是打开了水管一样。数据库连接池
每个数据源可能会配置数据库连接池,就像是排水管道的自动化系统。
数据库连接池的作用就是维护数据库连接,减少创建和删除数据库连接的操作,来达到减少数据访问时耗的目的。
https://blog.csdn.net/qq_31729917/article/details/104210499