IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 数据库知识总结-面试篇 -> 正文阅读

[大数据]数据库知识总结-面试篇

一、 关系数据库语言的种类

关系数据库的语言分为三类,它们是:
(1)数据定义语言,也就是DDL(Data Defining Language)例如CREATE,DROP,ALTER;

(2)数据操纵语言DML(Data Manufacturing Language),例如SELECT,INSERT,UPDATE,DELETE;

(3)以及数据控制语言DCL(Data Control language),例如GRANT,RMOVE,COMMIT,ROLLBACK。

而SQL是集DDL、DML、DCL为一体的标准关系数据库语言。其中DDL数据定义语言用于定义和管理SQL数据库中的所有对象的语言;DML数据操纵语言,SQL中处理数据等操作统称为数据操纵语言。

另外一种说法有四种:加了:数据查询语言DQL-data query language(SELECT)

二、 SQL和T-SQL的联系与区别

参考链接一
SQL(Structrued Query Language):结构化查询语言。
T-SQL(Transact-SQL):T-SQL是SQL语言的一种版本(准确来说是SQL语设计语言的增强版),且只能在SQL SERVER上使用。它是ANSI SQL的加强版语言、提供了标准的SQL命令。另外,T-SQL还对SQL做了许多补允,提供了数据库脚本语言,即类似C、Basic和Pascal的基本功能,如变量说明、流控制语言、功能函数等。

总结:
T-SQL:为SQL的扩展语言,提供标准SQL的DDL和DML功能外,还加入了程序语言中的if,while 等语法,同时可以使用函数等数据库对象。

三、数据库的种类

早期较为时兴的数据库种类有三种,分别是层次式数据库、网络式数据库和关系型数据库。
而在如今的互联网中,最常见的数据库种类主要有2种,即关系型数据库和非关系型数据库
一篇很好的博客

3.1 关系型数据库

1概念:
简单来说,关系模式就是二维表格模型。关系型数据库也选用由列和行构成的二维表来管理数据,简单易懂。
主要代表:SQL Server,Oracle, Mysql, PostgreSQL。

2优点
(1).容易理解,二维表的结构非常贴近现实世界,二维表格,容易理解。

(2)使用方便,通用的sql语句使得操作关系型数据库非常方便。

(3)易于维护,数据库的ACID属性,大大降低了数据冗余和数据不一致的概率。

3.瓶颈

(1 )海量数据的读写效率。
对于网站的并发量高,往往达到每秒上万次的请求,对于传统关系型数据库来说,硬盘I/o是一个很大的挑战。

(2) 高扩展性和可用性。
在基于web的结构中,数据库是最难以横向拓展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库没有办法像web Server那样简单的通过添加更多的硬件和服务节点来拓展性能和负载能力。

SQL, Mysql, SQL Server, Oracle 之间的区别与联系

SQL:结构化查询语言,本质是编程语言。Mysql, SQL Server, Oracle
Mysql则是关系型数据库。

(1)Oracle:商用关系型数据库。由于其诞生早、结构严谨、高可用、高性能等特点,使其在传统数据库应用中大杀四方,金融、通信、能源、运输、零售、制造等各个行业的大型公司基本都是用了Oracle,早些年的时候,世界500强几乎100%都是Oracle的用户。

(2)SQL Server:商用关系型数据库。MS SQL Serve(mssql)是一整套数据解决方案,主要面向中小企业。Sybase则专注于Linux/Unix方向的数据库开发。MS SQL Server主要面向中小企业。其最大的优势就是在于集成了MS公司的各类产品及资源,提供了强大的可视化界面、高度集成的管理开发工具。

(3)Mysql:开源数据库,简便易用。mysql是单纯的数据库存储。09年,Oracle收购了Sun和MySQL。
参考链接
三者数据库的详细比较

2.2非关系型数据库

NoSQL非关系型数据库,主要指那些非关系型的、分布式的,且一般不保证ACID的数据存储系统,主要代表MongoDB,Redis、CouchDB。

 NoSQL提出了另一种理念,以键值来存储,且结构不稳定,每一个元组都可以有不一样的字段,这种就不会局限于固定的结构,可以减少一些时间和空间的开销。使用这种方式,为了获取用户的不同信息,不需要像关系型数据库中,需要进行多表查询。仅仅需要根据key来取出对应的value值即可。

数据库应用范畴

事实上,数据库的应用不仅仅局限于数据存储,而是致力于提供一套完整的数据存储、管理以及应用方案。其一个典型的应用场景如:ERP。
ERP即企业资源计划:是针对物资资源管理(物流)、人力资源管理(人流)、财务资源管理(财流)、信息资源管理(信息流)集成一体化的企业管理软件;更是一种管理思想。
SAP是德国的一家软件公司,也可以称其旗下的ERP产品为SAP
什么是ERP
ERP和SAP的区别

PS(transaction per second)是单位时间内处理事务的数量,QPS(query per
second)是单位时间内请求的数量。TPS代表一个事务的处理,可以包含了多次请求。很多公司用QPS作为接口吞吐量的指标,也有很多公司使用TPS作为标准,两者都能表现出系统的吞吐量的大小,TPS的一次事务代表一次用户操作到服务器返回结果,QPS的一次请求代表一个接口的一次请求到服务器返回结果。当一次用户操作只包含一个请求接口时,TPS和QPS没有区别。当用户的一次操作包含了多个服务请求时,这个时候TPS作为这次用户操作的性能指标就更具有代表性了。
QPS和TPS的区别与联系

四、什么是事务

事务(Transaction)是并发控制的基本单位,只有关系型数据库中有事务的概念,非关系型数据库中没有。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。
数据库中的事务

事务具有四个特性:ACID

原子性(Atomic):事务中包含的操作看做一个逻辑单元,这个逻辑单元要么全做,要么全不做。

一致性(consistency):数据库从一个一致性状态变为另一个一致性状态。(针对的是数据存储的数据除以一致性状态)

隔离性(isolation):隔离性是指可能有许多事务同时处理相同的数据,因此,每个事务都应该与其他事务隔离开来,防止数据被破坏。

持久性(durability):持续性是指一旦事务完成,无论发生什么系统错误,它的结果都不应该受到影响,这样就能从任何系统崩溃中恢复过来。

五、什么是存储过程?有哪些优缺点?

存储过程是一些预编译的SQL语句。
更加直白的理解:存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。

  • 存储过程是一个预编译的代码块,执行效率比较高
    -一个存储过程替代大量T_SQL语句 ,可以降低网络通信量,提高通信速率
    -可以一定程度上确保数据安全

六、什么是索引?有什么作用以及优缺点?

索引是对数据库表中一或多个列的值进行排序的结构,是帮助MySQL高效获取数据的数据结构。

MySQL数据库几个基本的索引类型:普通索引、唯一索引、主键索引、全文索引

索引加快数据库的检索速度
索引降低了插入、删除、修改等维护任务的速度
唯一索引可以确保每一行数据的唯一性
通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能
索引需要占物理和数据空间

数据库中索引类型
数据库中的索引
参考链接二
MySQL中的索引类型
按数据结构分类可分为:B+tree索引、Hash索引、Full-text索引。
按物理存储分类可分为:聚集索引、非聚集索引(辅助索引)。
按字段特性分类可分为:主键索引、普通索引、前缀索引。
按字段个数分类可分为:单列索引、联合索引(复合索引、组合索引)。

七、数据库的范式

第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。

第二范式(2NF):满足第一范式的前提,数据库的所有非主属性都完全依赖于任何一个候选码(不存在部分函数依赖)。

第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。如果关系模式满足第三范式,那么它的所有非主属性既不传递函数依赖于码,也不部分函数依赖于码。

BC范式
在关系模式R中,若每一个决定属性组都包含候选码,则R满足BC范式。
BC范式比第三范式更进了一步,通常认为BC范式是修正的第三范式,有时也称为扩充的第三范式。

多值依赖

第四范式

八、视图

什么是视图?以及视图的使用场景有哪些?

视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。

  • 只暴露部分字段给访问者,所以就建一个虚表,就是视图。
  • 查询的数据来源于不同的表,而查询者希望以统一的方式查询,这样也可以建立一个视图,把多个表查询结果联合起来,查询者只需要直接从视图中获取数据,不必考虑数据来源于不同表所带来的差异。

九、数据库中的锁

锁存在的意义-应对mysql并发情况下引起的事务的安全问题

脏读:一个事务读取另一个事务未提交的问题

不可重复读: 在同一事务中,两次读取同一数据,得到内容不同

幻读:同一事务中,用同样的操作读取两次,得到的记录数不相同

MVCC是指多版本并发控制。MVCC是在并发访问数据库时,通过对数据进行多版本控制,避免因写锁而导致读操作的堵塞,从而很好的优化并发堵塞问题。

解决脏读 修改时加排他锁(写锁),直到事务提交后才释放,读取时加共享锁(读锁),其他事务只能读取,不能再有更新操作 。防止脏读。

解决不可重复读
innodb引擎采用了mvcc(多版本并发控制)来解决不可重复读问题。mvcc是利用在每条数据后面加了隐藏的两列(创建版本号和删除版本号)当执行查询的时, 当前查询版本号>= 创建版本号 并且 >删除版本号 , MVCC可以在大多数情况下代替行级锁,使用MVCC,能降低其系统开销。

解决幻读
Mysql官方给出的幻读解释是:只要在一个事务中,第二次select多出了row就算幻读。
分2种,快照读和当前读
(1)快照读(mvcc) 普通的 select 就是快照读。将历史数据存一份快照,所以其他事务增加与删除数据,对于当前事务来说是不可见的。事务每次取数据的时候都会取创建版本<当前事务的数据,以及删除版本号码>当前版本的数据。
(2)当前读 执行数据库的增删改操作的时, 就是当前读
采用next-key锁的方式解决问题
next-key 锁包含两部分: 记录锁(行锁)+ 间隙锁 就是在索引和索引之间上面加锁。

按锁粒度分类

行级锁,表级锁,页级锁

(1)行级锁
行级锁是mysql中锁定粒度最细的一种锁。表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突,其加锁粒度最小,但加锁的开销也最大。行级锁分为共享锁和排他锁

特点:开销大,加锁慢,会出现死锁。发生锁冲突的概率最低,并发度也最高。

(2)表级锁
表级锁是mysql中锁定粒度最大的一种锁,表示对当前操作的整张表加锁,它实现简单,资源消耗较少,被大部分mysql引擎支持。最常使用的MyISAM与InnoDB都支持表级锁定。表级锁定分为表共享读锁(共享锁)与表独占写锁(排他锁)

特点:开销小,加锁快,不会出现死锁。发生锁冲突的概率最高,并发度也最低。

(页级锁)
页级锁是 MySQL 中锁定粒度介于行级锁和表级锁中间的一种锁。表级锁速度快,但冲突多,行级冲突少,但速度慢。因此,采取了折衷的页级锁,一次锁定相邻的一组记录。BDB 支持页级锁。

特点:
开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-09 16:21:04  更:2021-10-09 16:21:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:38:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码