数据库介绍
一:数据库演变史
1.什么是数据库?
1、顾名思义,数据库(DB,database)是按照数据结构来组织、存储和管理数据的“仓库”。
2、数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点的、与应用程序彼此独立的数据集合。
3、数据库可以通过统一的一些指令对数据进行增、删、改、查(Create,Retrive,Updata,Delete)等操作。
4,看作是冰箱,可以存取物品的地方
2.数据库的作用
1.实现数据共享:
数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
2.减少数据的冗余度:
同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。
3.保持数据的独立性:
数据的独立性包括逻辑独立性(数据库中数据库的逻辑结构和应用程序相互独立)和物理独立性(数据物理结构的变化不影响数据的逻辑结构)。
4.数据实现集中控制:
文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
5.数据一致性和可维护性:
以确保数据的安全性和可靠性:主要包括:安全性控制、完整性控制、并发控制,使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用。
6.故障恢复:
由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统的误操作造成的数据错误等。
二:数据库的演变方向
1.文件操作阶段(保存数据(读写方式))
jason|123|read
缺点:
每个人数据格式都不相同 程序之间无法兼容
2.软件开发目录规范(保存数据分类不同(文件夹))
db 数据存储文件
缺点:
虽然存储目录相同了,但是每个人数据格式都不相同 程序之间无法兼容
3.存储位置和格式(解决程序之间无法兼容)
使用数据库的目的就是为了解决数据不兼容的问题,基于网络使数据在某一个地方以相同的格式统一保存,实现数据共享(完成数据之间的格式与存储位置统一)
- 实列
4.只保存本地自己数据,彼此不共享(单机模式)
单机游戏: 不需要连接网络就可以玩,在本机储存数据,你的通关记录,账号密码,都存储在本机
优点:不需要链接网络
缺点:限制于在一台计算机玩,如果你计算机坏掉了,在换一台,那这些记录都没有。你注册的账号换一台电脑登录也是没有记录的,还是初始化状态。(其实单机好像不需要注册账号)
5.数据存储全部统一在相同的地方完成(联机模式)
联机游戏:不在本地保存数据。所有人基于网络把自己的数据存储到相同的位置,数据存储的格式都相同,访问的格式也相同,所以不管在那台计算机上,登录账号密码就可以访问到我们存储在数据库的信息,这样就实现了兼容问题。
6.集群的概念
如果数据库机房内,服务器着火了,地震了,海啸了。那这样是不是所有用户的数据都会流失,所以我们用到了集群。 多台计算机从事相同的工作内容
- 集群的作用:
集群一般由两个或两个以上的服务器组建而成,每个服务器被称为一个集群节点,集群节点之间可以相互通信。通信方式有两种,一种是基于RS232线的心跳监控,另一种是一块单独的网卡 来跑心跳。因而,集群具有节点服务状态监控功能,同时还必须具有服务实体扩展功能,可以灵活地增加和剔除某个服务实体。
集群中,同样的服务可以由多个服务实体提供。因此,当一个节点出现故障时,集群的另一个节点,可以自动接管故障节点的资源,从而保证服务持久、不间断地运行。因而集群具有故障
自动转移功能。
一个集群系统必须拥有共享的数据存储,因为集群对外提供的服务是一致的,任何一个集群节点运行一个应用时,应用的数据集中存储在节点共享空间内,而每个节点的操作系统上仅运行应用的服务,同时存储应用程序文件。
三:数据库基本概念
1.什么是数据(Data)?
事物的状态
2.什么是记录?
一组数据结构成一条记录,相当于文件中的一行内容,如1,tanke,male,18
3.什么是表?
文件
4.什么是库?
文件夹
5.什么是数据库管理系统(DataBase Management System 简称DBMS)
管理数据的套接字软件,CS架构
6.什么是数据库服务器?
运行有DBMS服务器的计算机,该计算机对内存和硬件要求都很高
四;软件开发架构
1.c/s架构
客户端 服务端
2.b/s架构
浏览器 服务端
本质:bs架构本质也是cs架构
五:数据库的分类(两大类)
1.关系型数据库(简称RDBMS)
具有固定的表结构 并且表与表之间可以通过外键建立关系
MySQL、MariaDB、Oracle、PostgreSQL、sqlserver、sqlite、db2
- 简介
sql server
微软公司的产品,主要应用于大中型企业,如联想、方正等。
oracle
主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。
也是甲骨文公司的产品。
MySQL
主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码
因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。
MariaDB
SUN被甲骨文收购后,MySQL 的原创人员有拉出另外一个分支,
命名MariaDB 。该数据库被维基百科,Facebook 甚至 Google
等技术巨头使用。 MariaDB 是一种可为 MySQL 提供插件替换功能的
数据库服务器。开发人员的首要关注点是安全性,在每个版本发布时,
开发人员还会合并所有 MySQL 的安全修补程序,
并在需要时对其进行增强。
注意: sql语句通用
2.非关系型数据库
没有固定的表结构 数据存储采用K:V键值对的形式
redis、mongoDB、memcache
- 简介
mongodb(可用来作为后端数据库管理软件)
redis(多用来作为缓存)
memcache(多用来作为缓存)
3.关系型数据库与非关系型数据库语句
我们通常将操作关系型数据库的语句称为:SQL语句
我们通常将操作非关系型数据库的语句称为:NoSQL语句
有时候甚至使用NoSQL指代非关系型数据库
- 可以理解为:
关系型数据库需要有表结构
非关系型数据库是key-value存储的,没有表结构
4.数据库可以指代的
1.程序
2.数据库管理软件
3.存放数据的某个'文件夹'
六:SQL语句的由来
1.什么是SQL语句?
就是操作数据库软件的命令
2.为什么要有SQL语句?
是因为数据库能够支持的语言非常的多 为了避免识别问题
发明了SQL语句 规定只要想使用数据库就统一使用SQL语句操作
七:数据库的本质
数据库本质其实就是一款cs架构的软件
所以我们所有人其实都可以写一款数据库软件
在市面上确实有很多数据库软件