nosql基础题,nosql数据库入门与实践章节题答案
java面试中redis,mongodb类的,会问哪些问题,怎么回答
1、可能会问nosql和关系型数据库的区别:
成都创新互联公司是一家专注于成都网站设计、成都做网站与策划设计,曹妃甸网站建设哪家好?成都创新互联公司做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:曹妃甸等地区。曹妃甸做网站价格咨询:18980820575
优点:
1)成本:nosql数据库简单易部署,基本都是开源软件,不需要像使用Oracle那样花费大量成本购买使用,相比关系型数据库价格便宜
2)查询速度:nosql数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及nosql数据库
3)存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型
4)扩展性:关系型数据库有类似join这样的多表查询机制的限制导致扩展很艰难
缺点:
1)维护的工具和资料有限,因为nosql是属于新的技术,不能和关系型数据库10几年的技术同日而语。
2)不提供对sql的支持,如果不支持sql这样的工业标准,将产生一定用户的学习和使用成本
3)不提供关系型数据库对事物的处理
2、介绍下redis和mongodb:
自行google。
3、应用场景:
redis:
a.主要是做热点数据缓存。
b.数据过期处理。
c.消息队列等功能。
d.计数,例如投票等。
mongodb:
mongodb的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座桥梁,集两者的优势于一身。mongo适用于以下场景:
a.网站数据:mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
b.缓存:由于性能很高,mongo也适合作为信息基础设施的缓存层。在系统重启之后,由mongo搭建的持久化缓存可以避免下层的数据源过载。
c.大尺寸、低价值的数据:使用传统的关系数据库存储一些数据时可能会比较贵,在此之前,很多程序员往往会选择传统的文件进行存储。
d.高伸缩性的场景:mongo非常适合由数十或者数百台服务器组成的数据库。
e.用于对象及JSON数据的存储:mongo的BSON数据格式非常适合文档格式化的存储及查询。
4、支持的数据类型:
内容比较多,自行将网上的信息整理一下。
用sql语句创建一个教师表教师可以带多个班但不能带多门课
热门频道
首页
博客
研修院
VIP
APP
问答
下载
社区
推荐频道
活动
招聘
专题
打开CSDN APP
Copyright © 1999-2020, CSDN.NET, All Rights Reserved
sql
打开APP
SQL数据库创建学生、教师、选课表 原创
2020-12-17 12:05:09
7点赞
Chowhound_i
码龄2年
关注
SQL数据库创建学生、教师、选课表
创建学生表
create table student (
sno char(14) primary key,
sname char (10) not null,
ssex char(2),
sage tinyint,
sdept varchar(20),
spassword tinyint,
)
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
创建教师表
create table teacher (
tno char(14) primary key,
tname char (10) not null,
tsex char(2),
tage tinyint,
sdept varchar(20),
spassword tinyint,
)
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
创建选课表
create table course (
cno char(10),
sno char(14) not null,
tno char(14) not null,
cyear tinyint,
cterm tinyint,
grade tinyint,
primary key(sno,tno),
foreign key(sno) references student(sno),
foreign key(tno) references teacher(tno),
)
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
文章知识点与官方知识档案匹配
MySQL入门技能树使用数据库创建和删除表
28046 人正在系统学习中
点击阅读全文
打开CSDN,阅读体验更佳
3.SQL--创建教师表和向表内插入数据_weixin_33712881的博客
3.SQL--创建教师表和向表内插入数据 --创建教师表,并向表内插入数据 create table Teacher(Tid varchar(10),Tname nvarchar(10)) --向表内插入数据 insertinto Teacher values('01' , '韩寒') insert into Teacher values('02...
sql语句(学生表、课程表、分数表、教师表)_煜帆帆的博客
student(学生表)、teacher(教师表)、course(课程表)、sc(分数表) 2、创建表 //学生表 create table student( sno varchar2(10) primary key, sname varchar2(20), sage number(2), ssex varchar2(5) ); 1 2 3 4 5 6...
热门推荐 创建一个数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)
创建一个数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表… 表(一)Student (学生表) 属性名 数据类型 可否为空 含 义 Sno varchar (20) 否 学号 Sname varchar (20) 否 学生姓名 Ssex varchar ...
继续访问
mysql创建教师表_day34 mysql 认识数据库,创建学生,教师,学院表
数据库 - 数据的仓库(集散地) - database - 实现数据持久化和数据管理持久化 - 将数据从内存转移到能够长久保存数据的存储介质的过程数据库的分类:关系型数据库(SQL)和非关系型数据库(NoSQL)文件系统 / 层次数据库 / 网状数据库关系型数据库1970s - E.F.Codd - IBM研究员 - System R理论基础:关系代数和集合论具体表象:用二维表来保存数据 - 学生...
继续访问
使用SQL语句创建及使用SQLServer数据库_MyAnqi的博客
1使用SQL语句在数据库中Student表插入对应表格前2行元组。 insert into Student(sno,sn,sex,bor,clano,age)values(108,'曾华','男','1992-09-01','09033',22); insert into Student(sno,sn,sex,bor,clano,age)values(105,...
...名学生的SQL语句。_白一晓的博客_查询教师表中的总人数
在Mysql面试的写SQL语句环节中,有人曾碰到了这样一道这样的一道SQL语句题。目前有两张数据表,一张学生,一张老师表。里面都有Name和Code两个字段。求出张三的老师一共有多少名学生。 这样,我们还是先建两张普通的数据表。
最新发布 mysql 创建学生表、课程表、学生选课表
学生-课程数据库中包含以下三个表关系的主码加粗表示,各个表中的数据实例:StudentCourseSCSno为Student表的主键,Cno为Course表的主键,SC表中外键Sno,Cno分别是Student表和Course表的主键
继续访问
数据库实验报告一
KingBase数据库下SQL语句的基本使用
继续访问
数据库sql语句练习_Young_991的博客
一、设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题...
...和MySQL示例查询_库特社区的博客_sql创建教师信息表
了解如何在其中创建表是一个重要且基本的概念。SQL 在本教程中,我将使用 PostgreSQL 和 MySQL 的代码示例向您介绍语句的语法。SQLCREATE TABLE 基本语法CREATE TABLE 以下是该语句的基本语法:CREATE TABLE ...
【SQL】基本SQL数据表(学生、老师、课程、成绩)
create table student--创建student数据表 ( s_no char(10) not null, --学号 s_name nchar(10), --姓名 s_sex char(2), --性别 borndate smalldatetime,--出生日期 ClassName nvarchar(50), --班级名称 Telephone varchar(11), --电话号码 EnrollDate smal.
继续访问
数据库题:学生表,选课表,课程表写SQL(多表)
设教学数据库中有三个基本表: 学生表 S(SNO,SNAME,AGE,SEX),其属性表示学生的学号、姓名、年龄和性别;选课表 SC(SNO,CNO,GRADE),其属性表示学生的学号、所学课程的课程号和成绩;课程表 C(CNO,CNAME,TEACHER),其属性表示课程号、课程名称和任课教师姓名。 下面的题目都是针对上述三个基本表操作的(原题S#、C#这样子写法在查询的时候会报错,这里就用S...
继续访问
2021-09-06
#创建db_test数据库 create DATABASE db_test CHARACTER set utf8; use db_test; #在test数据库中创建teacher表 create table teacher( number int PRIMARY key auto_increment, tname VARCHAR(30), sex VARCHAR(4), depno int, salary float, address VARCHAR(...
继续访问
太原理工大学软件学院数据库实验四(2021.4.26)
太原理工大学软件学院数据库实验四(2021.4.26) -- (1)创建Student 表 CREATE TABLE Student ( Sno CHAR(8) PRIMARY KEY, Sname CHAR(8) NOT NULL, Ssex CHAR(2) CHECK( Ssex in ('男','女')), Sage SMALLINT, Sdept CHAR(20), Sclass CHAR(4) NOT NULL, Stotal smallint DEFAULT 0 ); -- (2)创建Cours
继续访问
SQL语言编程实战系列(一)——教学管理数据库的创建和简单操作
SQL语言编程实战系列(一)——教学管理数据库的创建和简单操作,基于《数据库原理与设计——基于SQL Server2012》王世民等编著P204-综合题5.3.1编写的解答。
继续访问
SQL建表语句(建立学生_课程数据库)
SQL建表语句(建立学生_课程数据库) (1)建立学生_课程数据库 (2)包含学生表Student 包含Sno(学号),Sname(姓名),Ssex(性别),Sage(年龄),Sdapt(所在系)属性列 学号为主码(主键) (3)创建课程表Course 包含Cno(课程号),Cname(课程名),Cpno(先行课课程号),Credit(学分)属性列 课程号为主码(主键) (4)学生_课程表SC 包含Sno(学号),Cno(课程号),Grade(成绩)属性列 学号,课程号为主码(主键) Creat
继续访问
Oracle完整的试题
[code="java"]create table student( sno varchar2(10) primary key, sname varchar2(20), sage number(2), ssex varchar2(5) ); create table teacher( tno varchar2(10) primary key, tname varchar2(20) ...
继续访问
用mysql创建学生成绩表_用SQL创建学生成绩数据库
创建数据库school,这个数据库中包含四个表:分别是学生表、教师表、课程表和成绩表。语法:create database school;(创建数据库school)show databases;(查看是否已经创建好)drop database school;(删除数据库school,这里不必删除)2.设计创建学生表、教师表、课程表和成绩表。语法:use school;create table st...
继续访问
数据库面试----学生、老师、课程、选课表常用sql示例
数据库面试----学生、老师、课程、选课表常用sql示例 请先看看六大范式详解 1——建表 (1)学生表 student DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `sid` int(11) DEFAULT NULL, `sname` varchar(20) DEFAULT NULL, `sage` int(11) DEFAULT NULL, `ssex` varchar(20) DEFAULT NULL ) ENGIN
继续访问
创建学院表 学生表 教师表 课程表 选课记录表
为什么要使用数据库 解决数据持久化问题 高效的管理数据(增删改查) 数据库的分类: 关系型数据库 理论基础:关系代数 具体表象:二维表 行:记录 列:字段 编程语言:SQL(结构化查询语言) DDL - 数据定义语言 — create / drop / alter DML - 数据操作语言 — insert / delete / update DQL - 数据查询语言 — select DCL - 数据控制语言 — grant / revoke ...
继续访问
将数据插入教师表.sql
sql 插入多条语句
合肥工业大学—SQL Server数据库实验三:SQL语句创建和删除基本表
SQL语句创建和删除基本表1. 编写6个基本表2. 修改基本表结构,完整性约束条件3. 用Drop table 语句删除基本表 1. 编写6个基本表 设有简单教学管理的6个关系模式如下: 系(系编号,系名称、系主任、联系电话、地址) 专业(专业编号、专业名称、所属系) 教师(教师编号、姓名、所在系、电话、电子信箱) 学生(学号、姓名、性别、出生日期、所学专业) 课程(课程号、课程名、学分、先修课) 学生选课(学号、课程号、成绩) 要求:在数据库EDUC中,创建对应的6个基本表,基本表的名称和属性名称由
继续访问
学习好sql
科目表 Course数据表介绍 --1.学生表 Student(SId,Sname,Sage,Ssex) --SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表 Course(CId,Cname,TId) --CId 课程编号,Cname 课程名称,TId 教师编号 --3.教师表 Teacher(TId,Tname) --TId 教师编号,Tna...
继续访问
CSDN学霸课表——NoSQL是什么
《NoSQL是什么》 NoSQL(NoSQL = Not Only SQL),意即反SQL运动,是一项全新的数据库革命性运动。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。 ►阅读全文 Redis集群架构讲师:李兴华 Redis是现在使用最为广泛的NoSQL数据库技术,其自身不仅拥有着良好的操作性能,也被广
继续访问
MySQL的teaching表建立_MySQL-一- 创建数据表
问题一:如何验证MySQL数据库安装成功?问题二:如何用客户端navicat连接到MySQL数据库?练习:创建学校数据库的表2.创建数据库2.1 创建学生表student2.2创建成绩表score2.3创建课程表course2.4创建教师表 teacher注:这里教师姓名可以为null3.练习插入数据3.1 向学生表里添加数据3.2向成绩表中添加数据3.3向课程表中添加数据3.4向教师表中添加数据...
继续访问
学生选课在MYSQL创建表_设要建立“学生选课”数据库,库中包括学生、课程和选课 3 个表,其表结构为: 学生(学号,姓名,性别,年龄,所在系) 课程(课程号,课程名,先行课) 选课(学号,课程号,成...
【单选题】湿空气的下列参数:I.干球温度、II.湿球温度、III.露点温度,它们之间的大小关系是【填空题】在缺省情况下,所创建的索引是_________索引。【其它】使用 T-SQL 命令,完成下面的操作。 1 .创建学生成绩视图(学号,姓名,课程编号,课程名称,成绩) 。 2 .创建信息系学生视图(学号,姓名,性别,系名,出生日期,民族,总学分,备注)。 3 .创建优秀学生视图(学号,姓名,平均...
继续访问
用sql语句创建一个教师表
sql
写评论
评论
35
7
踩
分享
前往CSDN APP阅读全文
阅读体验更佳
CSDN
成就一亿技术人
前往
Chrome浏览器
继续
打开CSDN APP阅读体验更佳
NoSQL-HDFS-基本概念
Hadoop
文件系统:文件系统是用来存储和管理文件,并且提供文件的查询、增加、删除等操作。
直观上的体验:在shell窗口输入 ls 命令,就可以看到当前目录下的文件夹、文件。
文件存储在哪里?硬盘
一台只有250G硬盘的电脑,如果需要存储500G的文件可以怎么办?先将电脑硬盘扩容至少250G,再将文件分割成多块,放到多块硬盘上储存。
通过 hdfs dfs -ls 命令可以查看分布式文件系统中的文件,就像本地的ls命令一样。
HDFS在客户端上提供了查询、新增和删除的指令,可以实现将分布在多台机器上的文件系统进行统一的管理。
在分布式文件系统中,一个大文件会被切分成块,分别存储到几台机器上。结合上文中提到的那个存储500G大文件的那个例子,这500G的文件会按照一定的大小被切分成若干块,然后分别存储在若干台机器上,然后提供统一的操作接口。
看到这里,不少人可能会觉得,分布式文件系统不过如此,很简单嘛。事实真的是这样的么?
潜在问题
假如我有一个1000台机器组成的分布式系统,一台机器每天出现故障的概率是0.1%,那么整个系统每天出现故障的概率是多大呢?答案是(1-0.1%)^1000=63%,因此需要提供一个容错机制来保证发生差错时文件依然可以读出,这里暂时先不展开介绍。
如果要存储PB级或者EB级的数据,成千上万台机器组成的集群是很常见的,所以说分布式系统比单机系统要复杂得多呀。
这是一张HDFS的架构简图:
client通过nameNode了解数据在哪些DataNode上,从而发起查询。此外,不仅是查询文件,写入文件的时候也是先去请教NameNode,看看应该往哪个DateNode中去写。
为了某一份数据只写入到一个Datanode中,而这个Datanode因为某些原因出错无法读取的问题,需要通过冗余备份的方式来进行容错处理。因此,HDFS在写入一个数据块的时候,不会仅仅写入一个DataNode,而是会写入到多个DataNode中,这样,如果其中一个DataNode坏了,还可以从其余的DataNode中拿到数据,保证了数据不丢失。
实际上,每个数据块在HDFS上都会保存多份,保存在不同的DataNode上。这种是牺牲一定存储空间换取可靠性的做法。
接下来我们来看一下完整的文件写入的流程:
大文件要写入HDFS,client端根据配置将大文件分成固定大小的块,然后再上传到HDFS。
读取文件的流程:
1、client询问NameNode,我要读取某个路径下的文件,麻烦告诉我这个文件都在哪些DataNode上?
2、NameNode回复client,这个路径下的文件被切成了3块,分别在DataNode1、DataNode3和DataNode4上
3、client去找DataNode1、DataNode3和DataNode4,拿到3个文件块,通过stream读取并且整合起来
文件写入的流程:
1、client先将文件分块,然后询问NameNode,我要写入一个文件到某个路径下,文件有3块,应该怎么写?
2、NameNode回复client,可以分别写到DataNode1、DataNode2、DataNode3、DataNode4上,记住,每个块重复写3份,总共是9份
3、client找到DataNode1、DataNode2、DataNode3、DataNode4,把数据写到他们上面
出于容错的考虑,每个数据块有3个备份,但是3个备份快都直接由client端直接写入势必会带来client端过重的写入压力,这个点是否有更好的解决方案呢?回忆一下mysql主备之间是通过binlog文件进行同步的,HDFS当然也可以借鉴这个思想,数据其实只需要写入到一个datanode上,然后由datanode之间相互进行备份同步,减少了client端的写入压力,那么至于是一个datanode写入成功即成功,还是需要所有的参与备份的datanode返回写入成功才算成功,是可靠性配置的策略,当然这个设置会影响到数据写入的吞吐率,我们可以看到可靠性和效率永远是“鱼和熊掌不可兼得”的。
潜在问题
NameNode确实会回放editlog,但是不是每次都从头回放,它会先加载一个fsimage,这个文件是之前某一个时刻整个NameNode的文件元数据的内存快照,然后再在这个基础上回放editlog,完成后,会清空editlog,再把当前文件元数据的内存状态写入fsimage,方便下一次加载。
这样,全量回放就变成了增量回放,但是如果NameNode长时间未重启过,editlog依然会比较大,恢复的时间依然比较长,这个问题怎么解呢?
SecondNameNode是一个NameNode内的定时任务线程,它会定期地将editlog写入fsimage,然后情况原来的editlog,从而保证editlog的文件大小维持在一定大小。
NameNode挂了, SecondNameNode并不能替代NameNode,所以如果集群中只有一个NameNode,它挂了,整个系统就挂了。hadoop2.x之前,整个集群只能有一个NameNode,是有可能发生单点故障的,所以hadoop1.x有本身的不稳定性。但是hadoop2.x之后,我们可以在集群中配置多个NameNode,就不会有这个问题了,但是配置多个NameNode,需要注意的地方就更多了,系统就更加复杂了。
俗话说“一山不容二虎”,两个NameNode只能有一个是活跃状态active,另一个是备份状态standby,我们看一下两个NameNode的架构图。
两个NameNode通过JournalNode实现同步editlog,保持状态一致可以相互替换。
因为active的NameNode挂了之后,standby的NameNode要马上接替它,所以它们的数据要时刻保持一致,在写入数据的时候,两个NameNode内存中都要记录数据的元信息,并保持一致。这个JournalNode就是用来在两个NameNode中同步数据的,并且standby NameNode实现了SecondNameNode的功能。
进行数据同步操作的过程如下:
active NameNode有操作之后,它的editlog会被记录到JournalNode中,standby NameNode会从JournalNode中读取到变化并进行同步,同时standby NameNode会监听记录的变化。这样做的话就是实时同步了,并且standby NameNode就实现了SecondNameNode的功能。
优点:
缺点:
哪个属于Nosql数据库
NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
常见的Nosql数据库有:
一、Redis数据库
Redis(RemoteDictionaryServer),即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
二、MongoDB数据库
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。
Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
扩展资料:
对于NoSQL并没有一个明确的范围和定义,但是他们都普遍存在下面一些共同特征:
一、易扩展
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间,在架构的层面上带来了可扩展的能力。
二、大数据量,高性能
NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用Query Cache。NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说性能就要高很多。
三、灵活的数据模型
NoSQL无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是——个噩梦。这点在大数据量的Web2.0时代尤其明显。
四、高可用
NoSQL在不太影响性能的情况,就可以方便地实现高可用的架构。比如Cassandra、HBase模型,通过复制模型也能实现高可用。
参考资料来源:百度百科-NoSQL
当前名称:nosql基础题,nosql数据库入门与实践章节题答案
当前URL:http://myzitong.com/article/hddpph.html