数据库 Database,是按照数据结构来组织,存储和管理数据的仓库
1.是操控和管理,建立和使用数据库的大型软件,保证数据库数据的安全性和完整性
2.可以通过DBMS访问数据库中的数据,进行数据库的维护工作
3.提供数据定义语言DDL和数据操作语言DML,通过DNMS提供的接口来读写数据,实现对数据库里面的数据的追加、删除等操作
4.允许多个用户在不同时不同地去建立,修改和1访问数据库
pass. 文件中的数据,可以通过Excel和wps打开查看,增加和删除数据
关系型
MySQL(是最流行的开源数据库管理系统)、Microsoft SQL Server、Oracle(收费)、DB2
非关系类
MongoDb、redis、Cloudant、HBase
特点 1.数据以表格的形式出现,每个表有自己的名字(同一数据库内唯一),表内被组织为行和列的一一对应关系 2.行为各种数据记录名称 3.每列为记录名称所对应的数据域 4.许多的行和列组成一张表格 5.若干的表格和列组成一张表格(database),每个数据库有自己的名字(唯一) 术语 数据: data 行:表中的数据是按行存储的,所保存的每个记录存储在自己的行内(数据记录) 列:一列(数据),同一列具有相同类型的数据元素 数据表: 表是数据的矩阵,在一个数据库中的表看起来像一个简单的电子表 数据库:表的集合db 主键:唯一标识表中每行的这个列(或这组列)称为主键,用来表示一个特定的行,主键列不允许NULL值 pass: 没有主键,更新或删除表中特定行很困难,因为没有安全的方法保证只涉及相关的行。虽然并不总是都需要主键,但大多数数据库设计人员都应保证他们创建的每个表具有一个主键,以便于以后的数据操纵和管理。 索引:使用索引可快速访问数据表中的数据
1.MySQL是开源免费的,不需要支付额外的费用
2.MySQL支持大型的数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
3.MySQL使用标准的SQL数据语言形式
4.MySQL可以运行于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python,java,Perl. PHP, Eiffel. Ruby和Tcl等
优点 1. 简单易用 MySQL 是一个高性能且相对简单的数据库系统,与一些更大系统的设置和管理相比,其复杂程度较低 2. 价格 对多数个人用户来说是免费的,任何人都可以在官网下载安装使用 3. 小巧 4.1.1的数据库发行版仅仅只有21M,安装完成也仅仅51M 4. 支持查询语言 可以利用SQL (结构化查询语言),SQL是一种所有现代数据库系统都选用的语言 5. 性能 没有用户数的限制,多个客户机可同时使用同一个数据库。MySQL运行速度很快。开发者声称MySQL可能是目前得到的最快的数据库 6. 连接性和安全性 MySQL是完全网络化的,可在任何地方访问,可以和任何地方的任何人共享数据库,可以控制哪些人不能看到您的数据 缺点 为了维护一致性所付出的巨大代价就是其读写性能比较差 固定的表结构 高并发读写需求 海量数据的高效率读写
是用户定义的一个操作序列,要么全部协行,要么全部不执行,不能执行一部分
定义一个转账操作
从id=1的账户给id=2的账户转账100元
第一步:将id=1的A账户余额减去100
第二步:将id=2的B账户余额加上100
这种把多步动作作为一个整体进行操作的功能,被称为数据库事务
由于某些原因,如果第一条成功,第二条失败,就必须全部撤销可以确保该事务范围内的所有操作都可以全部成功或者全部失败
如果事务失败,那么效果就和没有执行这些操作一样,不会对数据库数据有任何改动
事务ACID特性
原子性(Atomic):将所有SQL作为原子工作单元执行,要么全部执行,要么全部不执行
一致性(Consistent):事务完成后,所有数据的状态都是一致的即A账户只要减去了100,B账户则必定加上了100
隔离性(Isolation):隔离性保证同时执行的事务是相互隔离的,它们不能互相影响。一个事务
只能看到另一个事务开始之前或者结束之后的结果,不能看到任何中间状态
持久性(Duration):即事务完成后,对数据库数据的修改被持久化存储。当用户提交事务并完成后,数据最终会被永久安全地保存到磁盘中,而不管是否发生故障或者系统崩溃
原文:https://www.cnblogs.com/Key-python/p/11060742.html