数据库是数据管理的最新技术,是计算机科学的重要分支。越来越多新的应用领域采用数据库存储和处理他们的信息资源。因此,每一个IT从业人员,都必须把数据库这门基本功练扎实。
数据库相关的基本概念包括:数据、数据库、数据库管理系统以及数据库系统。
1.1 数据
学生的姓名、性别、年龄、出生年月、籍贯、系别、入学时间,那么可以这样来描述这些学生的基本信息:(张三,男,30,1988,江苏省苏州市,计算机系,2008)
因此这里的学生记录就是数据。数据的形式还不能完全表达其内容,需要经过解释。所以数据和对数据的解释是不可分的。
1.2 什么是数据库
数据库(Database,DB),是按照数据结构来组织、存储和管理数据的仓库,是指长期存储在计算机内的、有组织、可共享的数据集合。只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。
简单总结:
数据库(DataBase) 是按照数据结构来组织、存储和管理数据的仓库
数据库是一个数据的集合。其本质是一个文件系统,以文件的方式,将数据保存在电脑上
1.3 为什么要使用数据库
数据存储方式的比较
数据存储方式 | 优点 | 缺点 |
内存 | 速度快 | 容量有限,不能够永久保存,数据是临时状态的 |
文件(如Excel) | 数据是可以永久保存的 | 大量数据使用程序IO流操作文件, 不方便; 同一时间多人操作某一个文件也可能出现问题 |
数据库 |
|
|
1.4 数据库与数据库管理系统
两者的区别:
数据库(DB):指的是按照一定结构组织的数据集合,由存储数据的文件组成。
数据库管理系统(DBMS):是一款管理软件。 用于对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过 DBMS 访问数据库中的数据,数据库管理员也通过 DBMS 进行数据库的维护工作。DBMS 允许多 个应用程序或多个用户使用不同的方法,在同一时刻或不同时刻去建立、修改和询问数据库。
1.5 数据库分类
常见的有:MySQL、Oracle、SQL Server、DB2等。它使用SQL来做管理数据库。
对比 | 关系型数据库管理软件 Relational Database Management System | 非关系型数据库管理软件 |
概念 | 关系型数据库管理软件管理的数据库是以表的方式存储数据 关系型数据库是创建在关系模型基础上的数据库 | 非关系型数据库管理软件管理的数据库是用文档或者字符串等其它非表的方式来存储数据 非关系型数据库也被称为 NoSQL 数据库,NoSQL 并不是某个具体数据库,它泛指所有非关 系型数据库。 |
常见的数据库 | 常见的关系型数据库:MS SQL Server,IBM DB2,Oracle,MySQL 和 Microsoft Access 关系型数据库使用SQL语句来做管理数据库 | MongoDB、Redis、Hbase、CouchDB等 |
1.6 数据库排行
MySQL 是最流行的关系型数据库软件之一,由于其体积小、速度快、开源免费、简单易用、维 护成本低等,在集群架构中易于扩展、高可用,因此深受开发者和企业的欢迎。
Oracle和MySQL是世界市场占比最高的两种数据库
Oracle:有钱的大企业采用,互联网企业之外使用第一。
MySQL:互联网高速发展,互联网企业使用第一。
IOE: IBM小型机 ,Oracle数据库,EMC易安信存储,去IOE关于去IOE的简介
什么是去IOE:去IBM、去Oracle、去EMC2
去IOE的意义:成本+安全角度
成本:版权、服务器维护、扶持中国企业
What | Why |
IOE代指:去IBM、去Oracle、去EMC2 Who:阿里巴巴 When:2009年启动,2017年 时间节点: 2009.11 王坚博士决策启动阿里“去IOE”工程 • 2010.07 完成商品库“去I” • 2011.07 完成商品库“去OE” • 2011.09 完成交易库”去IOE” • 2011.11 OceanBase第一次支持双十一,服务淘宝收藏夹 • 2012.12 完成大淘宝“去IOE” • 2013.06 支付宝官微宣布:【再见!亲爱的小机】 • 2017.11 OceanBase承担支付宝交易100%、支付100%、账务100% 流量,“去O”大功告成!并第一次走出阿里,应用到南京银行 互联网核心系统 • 2019.10 OceanBase发布Oracle兼容版本2.2 | 从安全性+成本角度
2013年棱镜门事件之后,我国政府意识到数据安全的重要性,开始全面加强政府数据安全。“信息安全”和“自主可控”被提升到了国家战略的高度,政府必须将数据安全牢牢掌握在国内企业手中,防止数据丢失造成的一系列严重后果 国外互联网巨头公司占据众多关键领域,导致他国情报部门通过这些设备、软件、网络获取信息,给中国的信息安全带来巨大威胁。
基于“IOE”在业内的垄断地位,整套系统维护费用非常昂贵,在应用云计算的过程中,“IOE”系统并不适合云服务横向扩展,也就是多个数据库系统同时运行,随着中国云计算的兴起与快速发展,中心化的巨头需要构建大量云计算基础设施,部署成本及维护成本非常高。
系统的快速切换,涉及到到成百上千的数据库节点,IOE的系统无法满足快速灵活的切换 集中式部署(IOE架构)难以适应互联网大规模应用对扩展性的要求,所以所谓去IOE,其实质是分布式架构开源系统替代了集中式架构 商用系统。 |
工信部去IOE的触发因素为国内厂商中兴、华为在开拓美国市场时遭不公平待遇,美国以威胁信息安全为由将其挡在门外,这被国内市场视为赤裸裸的歧视及其对本土市场的保护。
1.7 数据库的基本概念
表
字段
表中每一列称为一个字段,字段有自己的属性,如字段类型、字段大小等。
其中,字段类型是字段最重要的属性,它决定了字段能够存储哪种数据。
索引
他是一种优化措施,便于快速查询
一般来说:当查询结果是返回表中 5% 以内的数据时,应该走索引;当查询结果返回的是超过表中 5% 的数据时,应该走全表扫描。
视图
视图是从多个表里查询,虚拟的表
视图是从一张或多张表中导出的表(也称虚拟表),是用户查看数据表中数据的一种方式。
1.8 关系型数据库主要对象
Excel | 创建一个Excel 文档 | 创建一个sheet | 在sheet中进行数据操作 |
MySQL数据库 | 创建一个数据库 | 创建一个数据表 | 在表中记录数据 |
1.9 SQL语言的分类
SQL语句 | 解释说明 |
DQL | DataQueryLanguage,数据查询语言,用于检索数据库的数据, 数据查询语言(DQL:Data Query Language)其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。 关键字 SELECT 是 DQL(也是所有 SQL)用得最多的动词。 SELECT FROM WHERE ORDER BY HAVING |
DML | 数据操作语言(DML:Data Manipulation Language)其语句包括动词 INSERT,UPDATE 和 DELETE。它们分别用于添加,修改和删除表中的行
INSERT:添加数据 UPDATE:更新数据 DELETE:删除数据 |
DDL | 数据定义语言(DDL:Data Definition Language)定义数据库对象语言,其语句包括动词 CREATE 和 DROP 等。
CREATE:创建数据库对象 ALTER:修改数据库对象 DROP:删除数据库对象 数据定义语言DDL(create、alter、drop)针对数据库对象,比如数据库database、表table、索引index、视图view、存储过程procedure、触发器trigger; |
DCL | 数据控制语言(DCL:Data Control Language)它的语句通过 GRANT 或 REVOKE 获得许可,确定用户对数据库对象的访问,用于定义数据库用户的权限
GRANT:授予用户某种权限 REVOKE:回收授予的某种权限 |
TCL | 事务控制语言(TCL :Transaction Control Language)它的语句能确保被 DML 语句影响的表的所有行及时得以更新。
COMMIT:提交事务 ROLLBACK:回滚事务 SAVEPOINT:设置回滚点 |