数据库背景知识
• 数据+库:将信息(数据)按照计算机可识别的方式规则存放在磁盘库中,并提供一系列可供读写的方式。
• 相比较于磁盘文件,数据库最大的特点是提供了非常灵活的接口、方式可以获取完整数据或者特定部分数据的方式(SQL);并提供了一套完整管理数据的方法(存储结构,备份恢复等)
为什么要存储数据?
• 数据要被随时随地反复使用,不是一次性消耗品。
• 数据要被记录,防止遗忘。
常见的数据库类型
关系型数据库类型
• 目前市场上占主要份额的数据库类型,以二维表格(行和列,类似excel)来存
储数据,表格与表格之间的数据关系用字段引用来表示
• Oracle, SQL Server, MySQL, DB2等
非关系型数据库类型
出现时间较短,抛弃关系型死板的数据存储方式,提供了更加灵活的方式
面向高性能并发读写的key-value数据库:
key-value数据库的主要特点即使具有极高的并发读写性能,Redis,Tokyo Cabinet,Flare就是
这类的代表
面向海量数据访问的文档型数据库:
这类数据库的特点是,可以在海量的数据中快速的查询数据,典型代表为MongoDB以及
CouchDB
面向可扩展性的分布式数据库:
这类数据库想解决的问题就是传统数据库存在可扩展性上的缺陷,典型代表为Cassandra
通用数据库对象中英文介绍
• 数据data
• 指对客观事件进行记录并可以鉴别的符号,在计算机系统中存储为可以被识别的信息
• 数据库database
• 存放具体数据的最大的逻辑对象,通常按需求将同一项目所属的数据统一放在一个数据库中,也可以创建多个数据库
• 数据库管理系统dbms(database management system)
• 是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS,目前分为关系型和非关系型数据库管理系统两种
• 关系型数据库管理系统rdbms(relational dbms)
• 是以关系模型为基础建立的数据库管理软件,典型代表为Oracle, MySQL, SQL Server等
• 实例instance
• 数据库管理软件安装之后在服务器上启动起来就称为启动了一个实例,通常一个服务器上只启动一个数据库实例,但也有启动多个实例的,一个实例可以包含多个数据库
• 数据库对象database object
• 数据库中创建的用来存储,操作数据的对象,比如表,字段,索引,存储过程等通用数据库对象中英文介绍
• 表table
• 数据库对象中的一种,用来存储相同属性的数据,类似Excel表格的sheet
• 字段field,列column,属性attribute
• 表中数据的组成部分,类似Excel表格中的列
• 类型type
• 每个字段属性之一,代表该字段下的所有数据以什么形式呈现,比如整数、字符串等类型
• 键值key
• 数据表的一个属性,可以指定主键,外键
• 索引index
• 在数据库管理系统中通常为加速数据读取速度而创建的一种数据结构
• 视图view
• 为(字面上)简化部分数据的获取方法而创建的定义
• 存储过程sp(stored procedure)
• 在数据库内部创建的具有一系列数据处理逻辑的方法
• 触发器trigger
• 当数据库表发生修改操作时自动触发某些数据处理的方法通用数据库对象中英文介绍
• 数据库服务器database server
• 特指运行数据库实例的物理服务器或者虚拟服务器
• 主键primary key
• 数据表中定义的用来唯一确定表中各行数据的一个或几个字段
• 外键forerign key
• 当数据表中的某一个或几个字段的值来源于某个父表时,则可以创建两个表之间的数据映射关系
• 唯一unique
• Primary key和unique index都可以作为约束表中这一列或几列的数据不重复
• 性能performance
• 调优tuning通用数据库对象中英文介绍
• 备份backup
• 将数据库中的所有数据和对象或者指定的数据和对象导出成文件形式存储
• 恢复restore
• 利用之前的备份文件将数据库中的指定对象和库还原到备份文件中的状态
• 用户user
• 指为访问数据库中的数据而创建的权限
• 授权grant
• 授予某个数据库用户某个权限的动作
• 回收revoke
• 将某个数据库用户的某个权限回收的动作
• 权限privilege通用数据库对象中英文介绍
• 查询select
• 数据库中浏览数据所提供的方法
• 修改update
• 数据库中修改数据所提供的方法
• 删除delete
• 数据库中删除原有数据所提供的方法
• 添加insert
• 数据库中新增数据所提供的方法
• SQL语句SQL statement
• 对数据库中数据进行操作、管理的一套语法
• 数据库架构database architecture
• 指数据库设计工作中对数据库一个或多个实例的部署,之间的数据协同,高可