🍖初识数据库管理软件

引入

咱们一般称 Mysql 、Oracle、SQLite之类的为数据库, 其实本质上它们是一个个数据库管理软件python

一.数据库管理软件的由来

在学习Mysql以前, 咱们的数据想要永久保存,通常都是保存在硬盘中, 硬盘的单位就是文件, 毫无疑问, 一个文件仅仅只能存在于一台机器上, 可是一个程序的全部组件不可能都在一台机器上, 若是都在一台机器上, 那么就会产生许多问题, 下面将介绍会产生的问题以及数据库管理软件的解决方案mysql

1.程序全部组件都运行在一台机器上的问题

  • 问题 : 运行程序机器的宕机表明着整个软件的崩溃, 而且程序执行的效率依赖于承载它的硬件, 一台机器的性能是有限的, 受限于目前的硬件水平, 一台机器的性能垂直进行扩展是有极限的
  • 解决 : 咱们能够经过水平扩展来加强咱们系统的总体性能,这就须要咱们将程序的各个组件分布于多台机器去执行

2.数据安全性问题

  • 问题 : 咱们经过将组件放置不一样机器解决了上一个问题, 但需知各组件仍然是一个总体, 全部组件的数据仍是要共享的, 但每台机器上的组件都只能操做本机的文件, 这就致使了数据必然不一致
  • 解决 : 将数据与应用程序分离, 将文件专门放在一台机器上, 而后将多台机器经过网络去访问这台机器上的文件(用socket实现), 即共享这台机器上的文件,共享则意味着竞争, 会发生数据不安全, 须要加锁处理

3.实现并发

  • 基于问题 2 的解决咱们就须要写出一个socket服务端来存放和管理数据库文件, 而后再写一个socket客户端来访问服务端存放的数据
  • 功能实现 : 远程链接(支持并发)、打开文件、读写文件(而且加锁)、关闭文件

4.数据库管理软件诞生

  • 针对上面产生的问题以及解决方案, 咱们在编写任何程序以前, 都须要事先写好基于网络操做一台主机上文件的程序 (socket服务端与客户端程序)程序员

  • 因而有人将此类程序写成一个专门的处理软件,这就是mysql等数据库管理软件的由来redis

  • mysql解决的不只仅是数据共享的问题, 还有查询效率, 安全性等一系列问题, 总之, 把程序员从数据管理中解脱出来, 专一于本身的程序逻辑的编写sql

二.数据库简述

1.什么是数据

数据(Data), 就是描述事物的符号, 它能够是数字, 也能够是文字、图片、图像、声音、语言等, 数据由多种表现形式,它们均可以通过数字化后存入计算机, 在计算机中描述一个事物, 就须要抽取这一事物的典型特征, 组成一条记录, 就至关于文件里的一行内容mongodb

派大星,man,22,1999,美国,IT,17届,斯坦福   # 一条记录
章鱼哥,man,35,1986,美国,餐饮,10届,斯坦福 # 一条记录

单纯的记录没有什么意义, 必须给予说明, 因而咱们就能够按逗号做为分隔,依次定义各个字段的意思,至关于定义表的标题数据库

name,sex,age,birth,addr,industry,entrance_time,school  # 字段
派大星,man,22,1999,美国,IT,17届,斯坦福      # 一条记录
章鱼哥,man,35,1986,美国,餐饮,10届,斯坦福    # 一条记录

添加字段以后咱们就能知道每条记录每一个逗号分隔开的都是表明什么意思安全

2.什么是数据库

数据库(DataBase)简称DB, 它是存放数据的仓库, 只不过这个仓库是在计算机存储设备上, 并且数据是按必定的格式存放的, 过去人们将数据存放在文件柜里, 如今数据量庞大, 已经再也不适用, 数据库是长期存放在计算机内、有组织、可共享的数据便可, 数据库中的数据按必定的数据模型组织、描述和储存, 具备较小的冗余度、较高的数据独立性和易扩展性, 并可为各类用户共享服务器

3.什么是数据库管理软件

数据库管理软件(DataBase Management System)简称DBMS网络

  • 在了解了DataDB的概念后, 如何科学地组织和存储数据, 如何高效获取和维护数据成了关键, 这就用到了一个系统软件---->数据库管理系统, 如MySQL、Oracle、SQLite、Access、MS SQL Server

  • mysql主要用于大型门户, 例如搜狗、新浪等, 它主要的优点就是开放源代码, 由于开放源代码这个数据库是免费的, 他如今是甲骨文公司的产品

  • oracle主要用于银行、铁路、飞机场等, 该数据库功能强大, 软件费用高, 也是甲骨文公司的产品

  • sql server是微软公司的产品, 主要应用于大中型企业, 如联想、方正等

三.数据库的核心概念以及关系

1.数据 : 事物的状态, 能够将其概括总结出字段信息

2.记录 : 多个字段的信息组成的一条记录, 即文件中的一行内容

3.表 : 一个文件

4.数据库 : 文件夹

5.数据库管理软件 : 即套接字程序, 例 : mysqld <---> mysql

6.数据库服务器 : 运行mysqld(服务端)的一台计算机

四.数据库管理软件分类

由上面的介绍咱们已经知道, 数据库管理软件的本质就是一个C/S套接字程序, 一个服务端套接字, 一个客户端套接字, 而数据库管理软件不只仅只有一种, 他们也有两种分类

1.关系型数据库管理软件

  • 简单理解 : 须要有表结构
  • : sqllite,db2,oracle,access,sql server,MySQL (sql语句通用)

2.非关系型数据库管理软件

  • 简单理解 : 经过key--value的形式存储的, 没有表结构
  • : mongodb,redis,memcache
相关文章
相关标签/搜索