初识数据库管理系统
Mysql数据简单入门
[TOC]
数据库管理系统 DBMS
什么是数据库?
数据库管理系统(英语:Database Management System,简称DBMS) 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、
截取、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能予多个用户共享具有尽可能小的冗余度与应用程序彼此独立的数据集合.
- #### 数据库优点?
```python
数据库系统是用来管理数据的,建立的数理逻辑和集合操作基础上的。
具有高效、可靠、完整、自同步等特性,是业务系统进行数据控制的最佳选择。
数据库系统一般提供高效的数据控制和数据检索功能,采用SQL语言来进行数据操作。
数据库的优势?
1.程序稳定性 :这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务。 2.数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象 3.并发 :数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作,
不需要我们自己写socket.
4.效率 :使用数据库对数据进行增删改查的效率要高出我们自己处理文件很多.
- #### 数据库运行示意图
```python
#C/S架构的 操作数据文件的一个管理软件
# 1.帮助我们解决并发问题
# 2.能够帮助我们用更简单更快速的方式完成数据的增删改查
# 3.能够给我们提供一些容错、高可用的机制
# 4.权限的认证
专业名词:
- DBMS 数据库管理系统 (英语:Database Management System)
- 数据 -- data
- 文件夹 -- 数据库database 简称db
- 数据库管理员 -- DBA
关系型数据库
最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织
优点:
- 易于维护:都是使用表结构,格式一致;
- 使用方便:SQL语言通用,可用于复杂查询;
- 复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
- 读写性能比较差,尤其是海量数据的高效率读写;
- 固定的表结构,灵活度稍欠;
- 高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
非关系型数据库
非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。
优点:
- 格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,
应用场景广泛,而关系型数据库则只支持基础类型。 - 速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
- 高扩展性;
- 成本低:nosql数据库部署简单,基本都是开源软件。
- 格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,
缺点:
- 不提供sql支持,学习和使用成本较高;
- 无事务处理;
- 数据结构相对复杂,复杂查询方面稍欠。
目前主流的关系数据库
付费的商用数据库:
Oracle,典型的高富帅;(收费,比较严谨,安全性高)(国企,事业单位,银行,金融行业)
SQL Server,微软自家产品,Windows定制专款;
DB2,IBM的产品,听起来挺高端;
Sybase,曾经跟微软是好基友,后来关系破裂,现在家境惨淡。
这些数据库都是不开源而且付费的,最大的好处是花了钱出了问题可以找厂家解决,不过在Web的世界里,
常常需要部署成千上万的数据库服务器,当然不能把大把大把的银子扔给厂家,所以,无论是Google、Facebook,
还是国内的BAT,无一例外都选择了免费的开源数据库:MySQL
- 大家都在用,一般错不了;(开源的)(小公司,互联网公司)(和Oracle是一家公司,甲骨文)
PostgreSQL
- 学术气息有点重,其实挺不错,但知名度没有MySQL高;
sqlite
- 嵌入式数据库,适合桌面和移动应用。
作为开发工程师,选择哪个免费数据库呢?当然是MySQL。因为MySQL普及率最高,出了错,
可以很容易找到解决方法。而且,围绕MySQL有一大堆监控和运维的工具,安装和使用很方便。
非关系型数据库
redis
- 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
mongodb
- 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。