本文目录一览:
数据库(mysql)关键知识
Mysql是目前互联网使用最广的关系数据库,关系数据库的本质是将问题分解为多个分类然后通过关系来查询。 一个经典的问题是用户借书,三张表,一个用户,一个书,一个借书的关系表。当需要查询某个用户借书情况或者是书被那些人借了,就用关系查询来实现。
关系数据库范式
来自英文Normal form,简称NF。要想设计—个好的关系,必须使关系满足一定的约束条件,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。总共有六种范式:第一范式(1NF)、第二范式(2NF)、 第三范式 (3NF)、巴斯-科德范式(BCNF)、 第四范式 (4NF)和 第五范式 (5NF,又称完美范式)。
1NF是指数据库表的每一列都是不可分割的原子数据项。2NF必须满足1NF,要求数据库表中的每行记录必须可以被唯一地区分。3NF在2NF基础上,任何非主 属性 不依赖于其它非主属性(在2NF基础上消除传递依赖)。BCNF是在3NF基础上,任何非主属性不能对主键子集依赖(在3NF基础上消除对主码子集的依赖), 满足BCNF不再会有任何由于函数依赖导致的异常,但是我们还可能会遇到由于多值依赖导致的异常。4NF的定义很简单:已经是BC范式,并且不包含多值依赖关系。5NF处理的是无损连接问题,这个范式基本没有实际意义,因为无损连接很少出现,而且难以察觉。而域键范式试图定义一个终极范式,该范式考虑所有的依赖和约束类型,但是实用价值也是最小的,只存在理论研究中。
Catalog和Schema
是数据库对象命名空间中的层次,主要用来解决命名冲突的问题。从概念上说,一个数据库系统包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、视图、字段等)。但是Mysql的数据库名就是Schema,不支持Catalog。
Mysql的数据库引擎主要有两种MyISAM和InnoDB,MyISAM支持全文检索,InnoDB支持事务。
SQL中的通配符‘%’代表任意字符出现任意次数。‘_’代表任意字符出现一次。SQL与正则表达式结合查询一般用在WHERE table_name REGEXP '^12.34'。子查询是从里到外执行。
数据库联结(join)涉及到外键,外键是指一个表的列是另一个表的主键,那么它就是外键。笛卡尔积联结(不指定联结条件时)生成的记录条目是单纯的第一个表的行乘以第二个表的列数。用得最多的是等值联结也叫内部联结。
高级联结还有自连接,是指查询中的两张表是同一张表,它通常作为外部语句用来代替从相同表中检索数据时使用的子查询。自然联结使每个列只返回一次。外部联结是指联结包含了那些在相关表中没有关联行的行。例如列出所有产品及其订购数量,包括没有人订购的产品。LEFT OUTER JOIN指选择左边表的所有行。
组合查询是指采用UNION等将两个查询结果取并集。
视图是查看存储在别处的数据的一种工具,它本身并不包含数据,因此表的数据修改了,视图返回的数据也将随之修改,因此如果使用了复杂或嵌套视图会对性能有较大的影响。视图的作用之一是隐藏复杂的SQL通常会涉及到联结查询。
存储过程类似于批处理,包含了一条或多条SQL语句。语法:
CREATE PROCEDURE name()
BEGIN
SQL
END
-------------------------
CALL name()//来调用存储过程
游标有DECLARE定义,游标与存储过程是绑定的,存储过程处理完成,游标就会消失。游标被打开后可以使用FETCH语句访问每一行。
触发器是在某个时间发生时自动执行某条SQL语句。语法:
CREATE TRIGGER name AFTER INSERT ON talbe_name FOR EACH ROW
事务处理可以维护数据库的完整性,保证批量的操作要么完全执行,要么完全不执行。包括事务、回退、提交、保留点几个关键术语。ROLLBACK只能在一个事务处理内使用。他不能回退CREATE和DROP操作。使用COMMIT保证事务提交。复杂的事务处理需要部分提交或回退,因此我们需要使用保留点SAVEPOINT。可以使用ROLLBACK TO savepoint_name。保留点越多越好。保留点在事务执行完成后自动释放。
大数据核心技术有哪些
大数据技术的体系庞大且复杂,基础的技术包含数据的采集、数据预处理、分布式存储、数据库、数据仓库、机器学习、并行计算、可视化等。
1、数据采集与预处理:FlumeNG实时日志收集系统,支持在日志系统中定制各类数据发送方,用于收集数据;Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,提供数据同步服务。
2、数据存储:Hadoop作为一个开源的框架,专为离线和大规模数据分析而设计,HDFS作为其核心的存储引擎,已被广泛用于数据存储。HBase,是一个分布式的、面向列的开源数据库,可以认为是hdfs的封装,本质是数据存储、NoSQL数据库。
3、数据清洗:MapReduce作为Hadoop的查询引擎,用于大规模数据集的并行计算。
4、数据查询分析:Hive的核心工作就是把SQL语句翻译成MR程序,可以将结构化的数据映射为一张数据库表,并提供HQL(HiveSQL)查询功能。Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
5、数据可视化:对接一些BI平台,将分析得到的数据进行可视化,用于指导决策服务。
mysql数据库的优点
mysql数据库的优点如下:
1、速度:运行速度快。
2、价格:MySQL对多数个人来说是免费的。
3、容易使用;与其他大型数据库的设置和管理相比,其复杂程度较低,容易学习。
4、可移植性:能够工作在众多不同的系统平台上,例如:Windows、Linux、Unix、MacOS等。
5、丰富的接口:提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Rudy和TCL等语言的APl。6、支持查询语言:MySQL可以利用标准SQL语法和支持ODBC(开放式数据库连接)的应用程序。
7、安全性和连接性;十分灵活和安全的权限和密码系统,允许主机验证。连接到服务器时,所有的密码均采用加密形式,从而保证了密码安全。并且由于MySQL时网络化的,因此可以在因特网网上的任何地方访问,提高数据共享效率。
mysql的特点是什么?
一、MySQL数据库的特点和优势:
(1)功能强大
MySQL 中提供了多种数据库存储引擎,各引擎各有所长,适用于不同的应用场合,用户可以选择最合适的引擎以得到最高性能,可以处理每天访问量超过数亿的高强度的搜索 Web 站点。MySQL5 支持事务、视图、存储过程、触发器等。
(2)支持跨平台
MySQL 支持至少 20 种以上的开发平台,包括 Linux、Windows、FreeBSD 、IBMAIX、AIX、FreeBSD 等。这使得在任何平台下编写的程序都可以进行移植,而不需要对程序做任何的修改。
(3)运行速度快
高速是 MySQL 的显著特性。在 MySQL 中,使用了极快的 B 树磁盘表(MyISAM)和索引压缩;通过使用优化的单扫描多连接,能够极快地实现连接;SQL 函数使用高度优化的类库实现,运行速度极快。
(4)支持面向对象
PHP 支持混合编程方式。编程方式可分为纯粹面向对象、纯粹面向过程、面句对象与面向过程混合 3 种方式。
(5)安全性高
灵活和安全的权限与密码系统,允许基本主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码的安全。
(6)成本低
MySQL 数据库开放源代码且无版权制约,是一种完全免费的产品,用户可以直接通过网络下载,自主性及使用成本低。体积小,安装方便。历史悠久,用户使用活跃,遇到问题可以寻求帮助,易于维护。
(7)支持各种开发语言
MySQL 为各种流行的程序设计语言提供支持,为它们提供了很多的 API 函数,包括 PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl 语言等。
(8)数据库存储容量大
MySQL 数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由 MySQL 内部限制决定的。InnoDB 存储引擎将 InnoDB 表保存在一个表空间内,该表空间可由数个文件创建,表空间的最大容量为 64TB,可以轻松处理拥有上千万条记录的大型数据库。
(9)支持强大的内置函数
PHP 中提供了大量内置函数,几乎涵盖了 Web 应用开发中的所有功能。它内置了数据库连接、文件上传等功能,MySQL 支持大量的扩展库,如 MySQLi 等,可以为快速开发 Web 应用提供便利。
二、相比其他数据库的特点和优势:
(1) 对事务的提交
MySQL默认是自动提交,不需要在写commit指令或者点击commit按钮。
(2) 分页查询
MySQL是直接在SQL语句中写"select... from ...where...limit m, n",有limit就可以实现分页。PHP里还可以用SEEK定位到结果集的位置。
(3) 事务隔离级别
MySQL是read commited的隔离级别。
一个session读取数据时,其他session不能更改数据,但可以在表最后插入数据。session更新数据时,要加上排它锁,其他session无法访问数据。
(4) 复制简单
MySQL复制服务器配置简单。
(5) 自动增长的数据类型处理
MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。
(6) 单引号的处理
MYSQL里可以用双引号包起字符串。
(7) 日期字段的处理
MYSQL日期字段分DATE和TIME两种。
(8) 空字符的处理
MYSQL的非空字段也有空的内容,NULL或空字符。
《MySQL核心技术手册第2版》pdf下载在线阅读全文,求百度网盘云资源
《MySQL核心技术手册 第2版》(戴尔)电子书网盘下载免费在线阅读
链接:
提取码: bwxs
书名:MySQL核心技术手册 第2版
作者:戴尔
译者:李红军
豆瓣评分:7.0
出版社:机械工业出版社
出版年份:2009-9
页数:554
内容简介:
MySQL包含了许多功能,尤其是在MySQL 5.0和5.1版本中新增了一些主要的功能和特性。MySQL特有的函数或者语句是相当丰富的。这正是《MySQL核心技术手册(第2版)》富有价值的原因。《MySQL核心技术手册(第2版)》令读者可以快速查找到所需要的具体细节,无论是SQL关键字还是mysql命令行选项、具体的API信息或管理实用工具。
作者简介:
Russell Dyer是一位自由作家,主要致力于MySQL数据库软件方面的研究,他是MySQL公司知识库()的编辑。他在如下出版物上发表了很多文章,这些出版物包括DevZone(MySQL的一个出版物)、Linux期刊、ONlamp.com、Perl期刊、Red Hat杂志、Sys Admin杂志、TechRepublic、Unix评论和XML.com。他还是《MySQL核心技术手册》第1版的作者。