bestvike study 2--自学数据库(1)

  1. 数据模型:MongoDB是一个面向文档的数据库,它使用JSON(或BSON,一种二进制JSON)格式的文档来存储数据。文档可以在内部包含其他文档,这使得MongoDB非常适合树状或层次化的数据结构。
  2. 模式自由:MongoDB不需要预定义模式,这使得它可以很容易地适应数据结构的变化。
  3. 灵活性:由于其文档结构,MongoDB非常适合存储半结构化和非结构化数据,并且可以存储大量的不同类型的数据。
  4. 查询语言:MongoDB拥有强大的查询语言,支持复杂的查询操作,包括聚合框架和索引功能
  5. 使用场景:MongoDB通常用于需要灵活数据模型的应用,如内容管理系统、社交网络和实时分析系统
    **例子1:**社交媒体平台 一个社交媒体平台需要存储用户信息、帖子、评论和好友关系。MongoDB可以用来存储这些信息,因为它们都是以文档的形式存在的。用户文档可能包含用户名、个人资料图片、帖子集合和其他好友信息。这种灵活的文档结构使得MongoDB能够轻松地适应社交媒体应用中不断变化的数据需求
    **例子2:**电子商务网站 一个电子商务网站需要存储商品信息、用户订单和库存数据。MongoDB可以用来存储商品的详细信息,包括描述、价格、图片和类别。用户订单可以作为另一个文档存储,包含订单详情、客户信息和支付状态。这种灵活的数据模型使得MongoDB能够很好地适应商品和订单数据的动态变化
Redis
  1. 数据模型:Redis是一个键值存储系统,数据以键值对的形式存储。它支持多种数据结构,如字符串、列表、集合、散列表和有序集合。
  2. 性能:Redis是一个内存数据库,它提供了高速的读写操作,适合作为缓存使用。
  3. 持久性:Redis可以配置为在断电时持久化数据,尽管它主要被用作内存中的数据存储。
  4. 使用场景:Redis通常用于需要高速缓存和即时访问数据的场景,如即时消息、计数器、排行榜和会话存储。
    **例子1:**实时消息系统 一个实时消息系统需要快速地发送和接收消息。Redis可以用来存储用户的消息历史和在线状态。用户的每个消息都可以作为一个字符串键值对存储在Redis中,而用户的在线状态可以存储在Redis的集合中。Redis的高性能和内存存储特性使得它非常适合这种需要快速访问的场景。
    **例子2:**在线游戏 一个在线游戏需要跟踪玩家的得分、排行榜和游戏状态。Redis可以用来存储玩家的得分和排行榜信息,以及游戏状态,如玩家的位置、生命值和装备。由于Redis支持多种数据结构,它可以轻松地支持游戏中的各种数据需求,并提供快速的读写操作。
HBase
  1. 数据模型:HBase是基于列的存储系统,它是Apache Hadoop生态系统的一部分。它使用相同的 schema-less 模型 as Apache HBase,并且可以与Hadoop的文件存储系统HDFS无缝集成。
  2. 可扩展性:HBase是为大规模数据集设计的,可以轻松地水平扩展以处理更多的数据和流量。
  3. 分布式特性:HBase是一个分布式系统,可以在多个服务器上扩展。它支持自动的分区(region)和副本管理。
  4. 使用场景:HBase适用于需要高吞吐量和实时随机访问的大数据应用,如日志聚合、用户行为分析、实时推荐和大型索引构建。
    **例子1:**移动应用分析 一个移动应用需要分析用户的行为,如点击率、使用时间和偏好。HBase可以用来存储用户的行为数据,每个用户的行为记录作为一个列族存储在HBase中。通过列族,可以快速地查询和分析用户的行为模式,提供实时的用户体验优化。
    **例子2:**大型索引构建 一个搜索引擎需要构建和维护一个大规模的索引,以支持快速的搜索查询。HBase可以用来存储索引数据,每个文档作为一个行存储在HBase中,文档的内容和元数据作为列存储。HBase的高吞吐量和分布式特性使得它非常适合这种需要处理大量数据和快速访问的场景。

总结来说,MongoDB适合需要灵活数据模型的应用,Redis适合需要高性能缓存和即时访问的应用,而HBase适合需要高吞吐量和分布式存储的大数据应用。每种数据库都根据其特性和设计目的有各自的优势和适用场景。

一. 安装配置Oracle(包含卸载

https://zhuanlan.zhihu.com/p/623939015
在这里插入图片描述
Liuzhengwei1234

二. 创建使用数据库Qracle

设置用户唯一的sid
在这里插入图片描述
Liuzhengwei1234
在这里插入图片描述
在这里插入图片描述
Navicat连接Oracle数据库
【navicat】navicat数据连接存放位置: C:\Users\(用户名)\Documents(文档)\Navicat\MySQL\Servers

用navicat连接oracle的时候报错ORA-12541:TNS:no listener

这个没用试了之后不行解决方法
其中修改文件地址是:D:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN
在这里插入图片描述
完美解决方法结合上面的一起吧
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、认识数据库

0、全局认识Oracle

一个Oracle server是由Oracle实例(instance)和数据库两部分组成的。
   实例 = 内存结构 + 一组后台进程。
   一个Oracle数据库是一个数据单位的集合,目的是为了存储和读取信息。可以分为逻辑结构和物理结构。

在这里插入图片描述
一个表空间只能同时属于一个database。
一个表空间可能包含一个或多个段,但段不能跨越表空间。
换个方式理解:数据库就是一个相片底片,实例就是相纸,一个底片可以冲多个相纸,但一张相纸最多冲一个底片。?
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Oracle网络配置

在这里插入图片描述

1、SQL 定义

在这里插入图片描述
在这里插入图片描述

2、SQL 命令类型

在这里插入图片描述

3、基本数据类型

     数据类型用于指定特定所包含数据的规则,决定了数据保存在列里的方式,包括分配给列的宽度,以及值是否可以是字母、数字、日期和时间等。

a、字符串类型

在这里插入图片描述

b、数字类型

在这里插入图片描述

c、日期类型

在这里插入图片描述

d、二进制及大文本数据

在这里插入图片描述

e、NULL 数据类型

在这里插入图片描述
在这里插入图片描述

4、数据库对象

在这里插入图片描述

5、数据完整性约束

在这里插入图片描述
在这里插入图片描述
其中对于外键约束:
外键约束(Foreign Key Constraint)是关系数据库中的一种约束,用于确保表之间的引用完整性。外键约束通过在表中的一列(或列的组合)引用另一个表的主键或唯一键,来建立两个表之间的关联。
假设我们有两个表:orders(订单表)和customers(客户表)。在orders表中,我们有一个列叫做customer_id,这个列用来存储customers表中每个订单对应的客户ID。在这里,customer_id列在orders表中是外键,它引用了customers表的主键id
外键约束的关键特性如下:

  1. 引用完整性:外键约束确保在使用外键的表(称为子表或从表)中的所有外键值都必须在参照表(称为父表或主表)中存在。这意味着,如果你想在orders表中插入一个订单,你必须确保customer_id对应的customers表中有一个有效的客户ID。
  2. 匹配类型:外键约束可以有三种匹配类型:
    • 匹配全列:子表中的所有外键列必须与父表中的所有主键列匹配。
    • 匹配部分列:子表中的外键列只需与父表中的主键列中的一个或几个列匹配。
    • 匹配任意列:子表中的外键列只需与父表中的主键列中的任意列匹配。
  3. 更新规则:外键约束还定义了当父表中的主键值发生变化时,子表中外键的行为。有三种可能的更新规则:
    • 级联更新:如果父表中的主键值发生变化,子表中的外键值也会相应地自动更新。
    • 设置为NULL:如果父表中的主键值发生变化,子表中的外键值将被设置为NULL(前提是外键列允许NULL值)。
    • 限制:如果父表中的主键值发生变化,子表中的外键值将保持不变,这可能导致引用完整性冲突。
  4. 删除规则:外键约束还定义了当父表中的记录被删除时,子表中的相关记录的行为。有三种可能的删除规则:
    • 级联删除:如果父表中的记录被删除,那么子表中所有相关的记录也将被自动删除。
    • 设置为NULL:如果父表中的记录被删除,子表中相关的外键值将被设置为NULL(前提是外键列允许NULL值)。
    • 限制:如果父表中的记录被删除,子表中相关的记录将保持不变,这可能导致孤儿记录或引用完整性冲突。
      外键约束是数据库设计中非常重要的概念,它有助于维护数据的一致性和完整性。在实际应用中,合理地使用外键约束可以避免数据冗余和数据不一致的问题。
CREATE TABLE info(
   id NUMBER(4) PRIMARY KEY,
	 name VARCHAR2(20) not null,
	 age NUMBER(3) constraint ck_age CHECK(age BETWEEN 0 AND 200),
	 sex VARCHAR2(4),
	 email VARCHAR2(30) constraint uk_email UNIQUE,
	 empass VARCHAR2(30) DEFAULT('66666')
)

6、规格化过程(范式)

在这里插入图片描述

a、第一规格形式

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

a、第一规格形式

[外链图片转存中…(img-gAHzhgUS-4701982273370)]
[外链图片转存中…(img-D3M2w6eD-4701982273370)]
[外链图片转存中…(img-xosMJ53D-4701982273371)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

  • 16
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值