自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 数据库事务的特性

在分布式系统设计中,系统架构师和开发者需要在一致性、可用性和分区容错性之间进行权衡,选择适合特定需求的配置。隔离性确保一个事务的执行不受其他事务的影响,避免了并发执行可能引发的问题。如果在事务执行期间发生了错误,会回滚(Rollback)到事务开始前的状态,以确保数据库的一致性。一旦事务被提交,它对数据库的改变将是永久性的,并且对系统的崩溃或故障是不受影响的。分布式系统中的节点之间可能会发生通信故障或分区(网络分割),分区容错性要求系统在出现网络分区的情况下仍然能够正常运行。

2024-01-07 03:48:28 398

原创 数据库7种范式

在关系数据库设计中,存在多个范式,通常从第一范式(1NF)到更高阶的范式。

2024-01-07 02:52:51 1024

原创 数据库中的常用键类型总结

在关系数据库中,有几种常见的键类型,其中每一种都具有不同的特性和用途。超键是能够唯一标识关系中元组的属性集合。它可以包含一个或多个属性。超键的目的是描述可以。候选键是,它是最小超键,即没有多余的属性。候选键的选择通常基于唯一性和最小性的原则。一个关系可以有多个候选键。的用于唯一标识关系中元组的特定候选键。主键必须是唯一且非空的,它可以是。外键是一个表中的一个或多个列,。外键用于建立表与表之间的关联关系。,用于唯一标识关系中的元组。这是的一种形式。替代键是中未选为主键的。

2024-01-07 02:35:31 662

原创 数据库的设计

了解关系数据库的基本概念,包括表格、行、列、主键、外键等。在理解第二范式之前,首先要了解第一范式。第一范式要求表格中的每个列都包含原子值,确保每个记录的每个属性都是不可再分的。

2024-01-06 23:39:53 946

原创 如何设计数据库表

在这个简单的示例中,有四个表分别表示顾客、产品、订单和订单详情,并使用主键和外键建立了它们之间的关系。数据库表的设计是一个复杂的任务,需要综合考虑业务需求、数据模型、查询需求等多个方面。根据你的需求,主键可以是单一列或者是多列的组合。首先,明确你要建模的实体是什么,以及它们之间的关系。如果你的数据模型中有不同表之间的关联,考虑使用外键来建立这些关系。如果有属性完全依赖于主键,确保将这些属性包含在主键中,以保持主键的唯一性。使用清晰、一致的命名规范,以便他人能够轻松理解表和列的含义。

2024-01-06 23:36:01 454

原创 数据库查询唯一值的两种方式和遍历原理

数据库遍历通常是通过执行查询语句来实现的,这些查询语句使用SELECT关键字来检索表中的数据。遍历的具体实现取决于查询的条件、排序方式和是否使用了索引等因素。这个查询会检索指定表 (table_name) 中的所有数据行 (表示所有列),并返回结果集供进一步处理或显示。数据库系统根据查询条件和表结构生成一个执行计划。执行计划是一种优化策略,用于确定如何获取和组织数据。根据执行计划,数据库系统开始获取数据。这可能涉及到(遍历整个表的每一行)、使用索引进行快速检索、执行连接操作等。

2024-01-05 23:34:41 637

原创 数据库索引的使用

索引查询是通过数据库中的索引来提高数据检索性能的查询方式。索引是一种数据结构,类似于书籍的目录,它存储了数据表中某一列或多列的值以及指向实际数据行的指针。通过使用索引,数据库系统可以更快速地定位和检索数据,从而提高查询的效率。假设我们有一个简单的表employees在这个查询中,列有一个索引(),数据库系统可以使用这个索引快速定位部门ID为101的员工,而不必扫描整个表。索引可以显著加速检索特定值的查询,尤其是在大型表中。使用索引可以避免对整个表进行全表扫描,而只需扫描索引的部分。

2024-01-05 23:25:45 699

原创 数据库定义和操作语句的重要语法

create table : 用于创建数据库表。...alter table : 用于修改数据库表的结构。drop table : 用于删除数据库表。创建索引:用于加速查询数据库中的数据,使得系统能够快速定位,范围查询和加速排序和连接目标值。-- 查询所有部门为101的员工在这个查询中,如果列上有索引,数据库系统可能会选择使用该索引来加速查询。

2024-01-05 23:20:59 1364

原创 客户端和驱动程序

今天我们来聊聊数据库领域中经常出现的两个术语:客户端和驱动程序。

2024-01-01 23:04:26 1264

原创 数据库和数据库编程

数据库、数据表、表数据操作以及数据库编程相关的知识点1. 数据库的概念:数据库是用于存储和组织数据的系统。 数据库管理系统(DBMS)是管理数据库的软件,提供对数据的访问、查询和维护。 关系型数据库是一种通过表格结构来组织和管理数据的数据库。2. 数据表:数据表是关系型数据库中的基本组织单位,用于存储数据。 每个表由列组成,每列定义了一种数据类型。 表中的每一行包含了特定数据实体的信息。3. 表的创建:使用SQL(结构化查询语言)来创建表。 CREATE TABLE语句用于定义

2024-01-01 20:24:09 565

原创 NoSQL数据库

NoSQL是指一类非关系型数据库,用于处理大量、松散结构或半结构化数据,不遵循传统关系型数据库的数据模型。

2024-01-01 20:15:44 1991

原创 二叉树中的中序遍历、反向遍历和逆序

在这里,如果我们考虑中序遍历的结果 `4, 2, 5, 1, 3`,那么逆序就是将这个序列颠倒过来,变成 `3, 1, 5, 2, 4`,即反向遍历的结果。反向遍历可以用于一些特定场景,比如在广度优先搜索中,反向遍历可以改变遍历的方向。总的来说,中序遍历是一种特定的遍历顺序,反向遍历是遍历方向相反的情况,而逆序则是将一个序列颠倒过来。对于上面的二叉树,中序遍历的结果是 `4, 2, 5, 1, 3`。总体而言,这些术语在二叉树遍历的上下文中表示不同的遍历方式或序列顺序,具体取决于应用的场景。

2023-12-15 07:04:26 532

原创 普通二叉树和右倾斜二叉树--LeetCode 111题《Minimum Depth of Binary Tree》

本文将以解释计算二叉树的最小深度的思路为例,致力于用简洁易懂的语言详细描述普通二叉树和右倾斜二叉树在计算最小深度时的区别。通过跟随作者了解右倾斜二叉树的概念以及其最小深度计算过程,读者也将对左倾斜二叉树有更深入的了解。这将为解决LeetCode 111题《Minimum Depth of Binary Tree》提供有力支持。最终,本文将提供LeetCode 111的解题代码。

2023-12-15 03:22:29 1178

原创 反应式编程(Reactive Programming)

本章将介绍该作品系列最后一种编程范式,也就是第🔟种编程范式--反应式编程(Reactive Programming),以及它的优缺点、案例分析和项目代码。

2023-12-11 08:15:30 1091 1

原创 面向切面编程(Aspect-Oriented Programming, AOP)

本章将介绍第9种编程范式--面向切片编程(Aspect-Oriented Programming, AOP)的优缺点,案例分析和项目代码示例。面向切面编程(Aspect-Oriented Programming, AOP)是一种编程范式,它的主要目标是提高代码的模块性和可维护性,通过在不同模块之间插入横切关注点来实现这一目标。在AOP中,切面是横切关注点的模块化单元。

2023-12-11 04:56:43 463 1

原创 元编程(Metaprogramming)

本章将介绍第8️⃣种编程范式---元编程,以及它的优缺点、案例分析和小项目的代码示例。

2023-12-11 04:11:05 1518 1

原创 并发编程(Concurrent or Parallel Programming)

本章将介绍第7️⃣种编程范式--- 并发编程的优缺点,案例分析和代码,以及一个小项目,来体会一下并发编程在实际项目中的作用。

2023-12-11 01:03:09 419 1

原创 编程范式或语言到底层指令的转化过程

不同的编程范式使用不同的编码方式和抽象,但它们最终都需要经过编译(Compilation)或解释(Interpretation)的过程,将高级语言翻译成计算机能够执行的底层指令。总体来说,无论使用哪种编程语言或范式,都需要一种方式将高级的抽象和语法转换成计算机硬件可以执行的底层指令。这个过程通常包括编译、解释、链接等步骤,最终生成可执行的机器代码。

2023-12-10 21:31:00 366 1

原创 命令式编程(Imperative Programming)

本章介绍第6种编程范式---命令式编程范式,以及它的优缺点、案例分析和代码示例。命令式编程是一种以计算机的硬件结构和机器指令为基础,通过明确指定计算机要执行的一系列命令来描述计算过程的编程范式。

2023-12-10 21:24:05 952 1

原创 编译型语言,解释型语言和脚本语言的代码转化过程

需要注意的是,现实中的情况可能更加复杂,特别是在大型项目中。在一些场景中,解释型语言也可以使用编译器生成中间代码,而编译型语言的编译过程中也可能包含多个阶段。有些脚本语言在解释执行的同时,可能会使用即时编译技术将代码转化成更高效的形式。开发者编写 Python 源代码(.py 文件),其中包含程序的逻辑和功能。预处理后的代码被编译器翻译成相应的目标代码(通常是机器码或中间代码)。脚本语言的代码就是脚本文件,其中包含一系列按顺序执行的命令或操作。最终用户运行脚本文件,解释器逐行执行其中的命令或操作。

2023-12-10 20:27:01 798 1

原创 声明式编程Declarative Programming

接下来要介绍第五种编程范式 -- 声明式编程。分别从它的优缺点、案例分析和适用的编程语言这三个方面来介绍这个歌编程范式。声明式编程是一种编程范式,其核心思想是通过描述问题的性质和约束,而不是通过描述解决问题的步骤来进行编程。这与命令式编程范式形成对比,后者强调如何到达某个目标。以下是声明式编程的优缺点:优点1. 抽象程度高:声明式编程更加抽象,开发者更专注于问题的本质,而不是具体的实现步骤。这有助于提高代码的可读性和可维护性。

2023-12-10 06:16:09 1054 1

原创 逻辑式编程Logic Programming

接下来介绍第四种编程范式--逻辑式编程。它是一种基于逻辑推理的编程范式,其中程序员描述问题的逻辑关系,而不是指定计算的详细步骤。Prolog是逻辑式编程的典型代表。以下是逻辑式编程的一些优缺点。

2023-12-07 07:29:38 1093

原创 函数式编程范式

接下来,承接之前介绍的面向对象编程范式,我们将讨论第三种编程范式--函数式编程(Functional Programming, FP)范式。它将计算视为数据函数的求值,并避免可变状态和可变数据。下面是函数式编程的一些优缺点以及案例分析。

2023-12-06 19:19:05 929 1

原创 面向对象编程范式

在讨论了过程式编程范式,现在开始介绍第二种广泛使用的编程范式,面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它通过组织代码为对象,以及对象之间的交互,来建模和解决问题。

2023-12-06 00:09:54 802 1

原创 过程式编程范式

在计算机科学和编程领域,范式“paradigm”通常指的是一种编程的方法论或范型,是一组共享的编程概念、风格和约定。编程范式指导着程序员如何组织和编写代码,以解决特定类型的问题。不同的编程语言可以支持或者强制使用不同的编程范式。过程式编程(Procedural Programming): 程序被划分为一系列的过程或函数,通过按照步骤执行这些过程来完成任务。本章讨论了过程式编程范式的优缺点、案例分析,适用语言以及代码例子。

2023-12-05 22:40:42 940 1

原创 熟悉10种常见编程范式

总之,编程范式是不同的编写和组织代码的方式,用以应对不同的情况。2. 面向对象编程(Object-Oriented Programming, OOP): 将数据和操作数据的方法封装在对象中,强调对象的概念,包括封装、继承和多态。包括函数式编程和逻辑式编程。3. 函数式编程(Functional Programming): 把计算机视为数据函数的求值,强调纯函数、不可变性、高阶函数等概念。7. 并发编程(Concurrent Programming): 处理多个同时执行的计算,关注于程序中的并发性和并行性。

2023-11-14 08:06:11 38 2

原创 学习python[:,:]

正如列表一样,[:,:]代表一切从开始到结束的数据。不同是,第一个:代表第一维度,第二个:代表第二个维度。p_opt = np.repeat(10, 3)p_grid = np.tile(p_opt, (49, 1))print(p_grid)print(price_grid)p_grid[:, 2]=price_grid #The third number in the second dimession is replaced by price_gridprint(p_grid)p_o

2021-07-10 04:30:57 1543

原创 NumPy.tile的用法

预备知识numpy.ndarray.ndim:数组的维度.X = np.array([1, 2, 3])=[1 2 3]X.ndim = 1Y = np.zeros((2, 3, 4))=[[[0. 0. 0. 0.][0. 0. 0. 0.][0. 0. 0. 0.]][[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]]]Y.ndim = ...

2021-07-10 04:00:06 112

原创 LeedCode259. Find Median from Data Stream

For example, forarr = [2,3,4], the median is3. For example, forarr = [2,3], the median is(2 + 3) / 2 = 2.5. MedianFinder.h#ifndef MEDIANFINDER_H#define MEDIANFINDER_H#include <iostream>#include <queue>using namespace std;class ...

2021-06-29 20:31:58 67

原创 Leetcode103 Binary Tree Zigzag Level Order Traversal

文章目录前言一、Queue是什么?二、反转功能Collections.reverse()三、代码总结前言层序遍历一颗二叉树,按从左到右,再从右到左的循序交叉遍历二叉树的每一层。解决方法是假设第一层为level=0,那么对于偶数层(level%2==0)就先遍历左节点,在遍历右节点存入列表;多于奇数层再加一个列表反转的操作。最后将列表加入最后要输出的列表中。一、Queue是什么?队列(Queue)是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。 LinkedList类.

2021-04-30 17:41:28 66 1

原创 Tree traversals(树的遍历)和LeetCode99( Recover Binary Search Tree)

@[TOC](Tree traversals(树的遍历讲解:前序,中序和后序)+LeetCode99:修复二进制搜索树BST(Binary Search Tree))树的遍历树(tree)作为一种非线性数据结构,可以以不同的方式对其进行遍历(traverse),如前序(preorder),中序(inorder)和后序(postorder)。数组(Array),链表(Linked List),队列(Queues),和栈(Stack)这些线性数据结构只能使用单一的逻辑结构来遍历他们。这展现Tree这种数

2021-04-21 19:55:45 121

原创 VScode创建第一个C++项目

使用Visual Studio Code创建C++项目cmd创建空文件夹和子文件夹.vscode在工作区的文件夹中会创建的三个文件以及其用途探索IntelliSenseBuild(Compile helloworld.cpp)Debug helloworld.cpp启动调试会话,Start a debugging sessionC/C++ configurations文章来源:https://code.visualstudio.com/docs/cpp/config-mingwcmd创建空文件夹和子文件

2020-11-14 22:44:52 4578 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除