当前位置: 首页 > news >正文

数据库的设计

理解数据库第二范式2NF的必备知识

  1. 关系数据库基础: 了解关系数据库的基本概念,包括表格、行、列、主键、外键等。

  2. 第一范式(1NF): 在理解第二范式之前,首先要了解第一范式。第一范式要求表格中的每个列都包含原子值,确保每个记录的每个属性都是不可再分的。

3. 依赖关系:

  • 完全依赖 (Full Dependency): 一个属性对于候选键的所有部分都是完全依赖的。例如,考虑学生成绩表,{StudentID, CourseID} 是候选键,而成绩(Grade)完全依赖于整个候选键。

  • 部分依赖 (Partial Dependency): 一个属性只对候选键的一部分属性有依赖。在上述例子中,如果成绩(Grade)只依赖于学生ID(StudentID),而与课程ID(CourseID)无关,就是部分依赖。

4. 复合候选键:

  • 复合候选键 (Composite Candidate Key): 由多个属性组成的候选键。例如,考虑一个订单表,{OrderID, ProductID} 可能是复合候选键。

5. 数据库设计范式:

  • 数据库设计范式 (Normalization): 数据库设计范式是关系数据库设计中的规范,包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)等。目标是通过规范化减少数据冗余,提高数据的一致性和可维护性。

6. 表格拆分:

  • 表格拆分 (Table Decomposition): 通过将一个表格拆分为多个表格,以满足范式的要求。例如,考虑一个包含学生姓名和地址的表格,如果地址依赖于学生ID而不是整个候选键,可能需要将其拆分成两个表格:学生信息表和地址表。

7. 实体-关系模型:

  • 实体-关系模型 (Entity-Relationship Model): 用于描述数据库中实体(如学生、课程)和它们之间关系的模型。关键概念包括实体、属性、关系、主键、外键等。

8. 主键和外键:

  • 主键 (Primary Key): 用于唯一标识每条记录的属性或属性组合。在上述例子中,学生表格的主键可以是学生ID。

  • 外键 (Foreign Key): 用于建立表格之间关系的属性。在上述例子中,图书表中的作者ID是一个外键,引用作者表的主键。

举例:

让我们通过一个简单的例子来说明这些概念。考虑一个订单系统,有一个包含订单信息的表格(Orders):

OrderIDProductIDCustomerIDQuantityTotalAmount
11012013$150
21022022$100
31012031$50
  • 依赖关系:

    • 在这个例子中,{OrderID} 是主键,而 {ProductID, CustomerID} 是候选键。
    • TotalAmount 完全依赖于整个候选键 {OrderID, ProductID, CustomerID}。
  • 复合候选键:

    • {ProductID, CustomerID} 是复合候选键,它们一起可以唯一标识每个订单。
  • 表格拆分:

    • 如果某些属性只与部分候选键有关,可能需要拆分表格。例如,如果 TotalAmount 只依赖于 OrderID,可以将其拆分到一个新的表格。

通过理解这些概念,你将更好地应用第二范式和数据库设计原则来设计规范化的数据库结构。

业务逻辑与数据库

为什么理解业务关系对学习数据库至关重要的几个原因:

  1. 符合业务需求: 数据库是为了满足特定业务需求而建立的。深入理解业务关系能够帮助你设计出更符合实际业务需求的数据库结构。

  2. 规范化: 数据库规范化是一种设计技术,目的是减少数据冗余、提高数据一致性。在规范化过程中,理解业务关系有助于确定适当的范式,并消除不必要的依赖关系。

  3. 关系模型: 实体-关系模型是数据库设计的基础。理解业务关系有助于正确地建模实体和它们之间的关系,选择合适的主键和外键。

  4. 查询性能: 数据库设计直接影响到查询性能。了解业务关系可以帮助你优化表格的结构,以便更有效地执行常见的查询操作。

  5. 数据一致性: 业务关系的清晰理解有助于确保数据库中的数据一致性。通过正确地定义主键和外键,可以有效地维护数据的完整性。

  6. 应用开发: 数据库设计与应用开发密切相关。理解业务关系可以为应用程序提供一个合理的数据结构,使得数据的读取和写入操作更加高效和准确。

实体-关系模型(Entity-Relationship Model,简称ER模型)

它是一种用于描述数据库结构的概念性数据模型。它通过图形化的方式表示实体(Entity)及实体之间的关系(Relationship),是数据库设计的基础。

在ER模型中,有三个主要概念:实体、属性和关系。

  1. 实体(Entity): 表示系统中的一个具体对象、人、事物或概念,对应数据库中的表格。实体具有属性,每个属性描述实体的某个特征。

  2. 属性(Attribute): 表示实体的特征或性质,用于描述实体。例如,学生实体可能有属性如学生ID、姓名、年龄等。

  3. 关系(Relationship): 表示实体之间的联系,可以是一对一、一对多或多对多的关系。关系通常有一个方向,从一个实体指向另一个实体。

ER模型的符号和标记包括:

  • 矩形框(实体框): 用于表示实体,框内写上实体的名称。

  • 椭圆(属性椭圆): 用于表示实体的属性,椭圆内写上属性的名称。

  • 菱形(关系菱形): 用于表示关系,菱形内写上关系的名称。

  • 线条(连接线): 用于连接实体和关系,表示实体和关系之间的关联。

举例说明:

考虑一个简单的学生选课系统:

  • 学生(Student)是一个实体,可能有属性如学生ID、姓名、年龄。
  • 课程(Course)也是一个实体,可能有属性如课程ID、课程名称。
  • 学生和课程之间存在选课关系,这个关系可能包含属性如成绩(Grade)。

在ER模型中,可以用矩形表示学生和课程实体,用椭圆表示学生和课程的属性,用菱形表示选课关系,用线条表示实体和关系之间的关联。

如何理解业务关系

理解业务关系是指深入理解和分析组织或企业的业务流程、相互作用和依赖关系。这包括不同实体(如部门、员工、产品、客户等)之间的关系,以及业务活动之间的依赖性。在数据库设计中,理解业务关系是非常重要的,因为它直接影响到数据库的结构和关联。

以下是理解业务关系的几个关键步骤:

  1. 业务流程分析: 理解业务关系的第一步是分析业务流程。了解不同部门或业务单元之间的工作流程,以及数据是如何在这些流程中流动和交互的。

  2. 实体识别: 确定业务中的关键实体,即组织中的人、物或概念。这可能包括客户、员工、产品、订单等。

  3. 属性识别: 对每个实体识别关键属性,即描述实体特征的数据元素。例如,员工实体的属性可能包括姓名、工号、部门等。

  4. 关系分析: 确定实体之间的关系。关系可以是一对一、一对多或多对多。例如,一个订单可能关联一个客户,而一个客户可以有多个订单。

  5. 依赖关系: 理解实体之间的依赖关系,包括完全依赖和部分依赖。这有助于确定哪些属性是关键的,哪些是派生的。

  6. 数据流动分析: 了解数据是如何在业务流程中流动的,从一个实体到另一个实体。这有助于确定数据的所有者以及数据的使用方式。

  7. 业务规则: 考虑业务中的任何规则和约束。例如,一个销售订单可能需要满足特定的销售政策和价格规则。

  8. 业务目标: 了解业务的长期和短期目标,以及如何通过数据和信息支持这些目标。

通过这些步骤,你可以建立对业务关系的全面理解。这有助于确保数据库设计符合实际业务需求,能够支持业务的日常运作和未来的发展。在数据库设计中,将业务关系映射到数据库结构中的表格、列和关联关系,从而建立起数据库和业务之间的紧密联系。

关联表格对于数据查询语言的帮助

关联表格对数据查询语句有很多帮助,它提供了一种在不同表格之间建立关系的机制,使得查询可以更灵活、精确地获取相关联的数据。以下是关联表格对查询语句的帮助:

  1. 数据整合: 关联表格允许你从不同的表格中提取数据,以便在查询结果中整合这些数据。这对于从多个数据源中检索相关信息非常有用。

  2. 查询数据的连接: 关联表格允许你使用 JOIN 操作将符合特定条件的行连接在一起。例如,你可以通过在两个表格之间的共同列上进行连接,获取相关联的数据。

    SELECT * FROM 订单表格 JOIN 订单项表格 ON 订单表格.OrderID = 订单项表格.OrderID;

  3. 条件过滤: 通过关联表格,你可以在查询中使用条件过滤,以便只选择满足特定条件的行。这使得你可以更精确地控制查询结果。

    SELECT * FROM 顾客表格 JOIN 订单表格 ON 顾客表格.CustomerID = 订单表格.CustomerID WHERE 顾客表格.Country = '中国';
  4. 聚合操作: 关联表格使得你能够对关联的数据执行聚合操作,例如计算总和、平均值等。

    SELECT 顾客表格.CustomerID, COUNT(*) AS 订单数量 FROM 顾客表格 JOIN 订单表格 ON 顾客表格.CustomerID = 订单表格.CustomerID GROUP BY 顾客表格.CustomerID;
  5. 子查询: 关联表格允许你在查询中使用子查询,从而更灵活地检索相关数据。

    SELECT * FROM 产品表格 WHERE 产品ID IN (SELECT 产品ID FROM 订单项表格 WHERE Quantity > 10);
  6. 多表格的复杂查询: 关联表格允许你进行多表格的复杂查询,以满足复杂的业务需求。

总的来说,关联表格提供了一种强大的手段,使得在数据库中的不同表格之间建立有意义的连接,从而使查询能够更全面、更具深度地获取数据。这对于复杂的数据库应用和数据分析非常关键。

数据库的范式关系

范式关系通常不直接影响数据库操作语言(Database Query Language)的语法,而是更多地影响数据库设计的规范性和结构。数据库操作语言主要包括数据查询语言(如 SQL)、数据定义语言(DDL)、数据控制语言(DCL)等。

数据库范式关系的影响主要体现在数据库设计和规范化方面,而不是在执行查询或更新数据时的具体语法。以下是一些范式关系可能影响的方面:

  1. 表格设计: 范式关系影响如何设计表格,包括如何定义主键、外键,以及如何确保表格的规范性。表格的规范性和范式关系直接相关。

  2. 数据冗余: 范式关系旨在减少数据冗余,确保数据的一致性和完整性。因此,在设计表格时,会尽量避免将相同的信息存储在多个地方,以减少冗余。

  3. 范式级别: 数据库设计中的规范化过程(将表格设计为符合范式的形式)可能会影响数据库的性能和存储效率。不同的范式级别追求不同的规范化程度,选择适当的范式级别涉及到权衡规范性和性能。

  4. 外键约束: 范式关系通常会涉及外键的使用,用于建立表格之间的关联关系。数据库操作语言中的外键约束用于确保外键的引用完整性,从而遵循范式关系。

  5. 查询性能: 范式关系的影响也可能体现在查询性能上。过度的规范化可能导致需要执行更多的 JOIN 操作,影响查询性能。在设计数据库时,需要综合考虑规范性和性能。

总体而言,数据库操作语言本身并不受范式关系的直接影响,但数据库设计中的规范化过程和规范性的考虑可能会在数据库操作的实际执行中产生影响。

数据库范式的好处

数据库范式化是一种设计数据库表格结构的方法,通过将数据组织成更小的、更规范化的表格,以达到减少冗余、提高数据一致性和减少数据异常的目的。数据库范式化的好处和存在的必要性包括:

  1. 数据一致性: 范式化减少了数据的冗余,确保数据在数据库中只有一份拷贝。这有助于避免不同地方存储的相同信息不一致的问题,提高了数据的一致性。

  2. 减少数据冗余: 范式化通过将数据分解成更小的表格,避免了在数据库中存储相同信息的多个拷贝。这降低了数据冗余,节省了存储空间,减少了更新时的复杂性。

  3. 数据规范性: 范式化促使数据库表格符合特定的范式要求,提高了数据的规范性。每个表格都有一个清晰的结构,字段的含义更加明确。

  4. 减少数据异常: 数据库范式化有助于减少数据异常的发生。例如,通过将相关信息分散到不同的表格中,避免了在某个表格中更新信息时,其他表格中的信息发生不一致。

  5. 更容易维护和更新: 数据库范式化使得数据库结构更模块化,更容易理解和维护。当需要更新或修改数据时,范式化的结构通常使得操作更直观、更安全。

  6. 支持规范化的数据库设计原则: 范式化是数据库设计中的一个基本原则,它符合数据库设计的规范性和规则性。通过遵循范式原则,设计的数据库更容易满足标准化和规范化的要求。

  7. 提高查询性能: 范式化有助于提高查询性能,特别是在处理大量数据时。范式化结构通常可以通过 JOIN 操作将表格连接在一起,实现更高效的查询。

总的来说,数据库范式的好处在于提高数据质量、减少冗余、提高数据一致性和规范性,降低了数据库的维护成本,并有助于保持数据库的结构清晰和有效性。然而,在某些情况下,范式化也可能导致查询性能下降,因此在设计数据库时需要权衡规范性和性能。

主键和外键

主键和外键都可以包含单列或多列。

在数据库设计中,主键(Primary Key)和外键(Foreign Key)是两个不同的概念,它们分别用于确保数据表的唯一性和建立表之间的关联。

  1. 主键(Primary Key)
    • 主键是用来唯一标识数据表中的每一行记录的字段或字段组合。
    • 在创建数据表时,你只能指定一个主键(单列或多列的组合)。
    • 主键的值在表中必须是唯一的,而且不能为NULL。
    • 主键的目的是确保每一行数据都能被唯一地标识,从而避免数据冗余和确保数据的一致性。

示例:

CREATE TABLE Orders ( OrderID INT PRIMARY KEY, CustomerID INT, OrderDate DATE );

上述例子中,OrderID 被指定为主键,确保每个订单具有唯一标识。

  1. 外键(Foreign Key)
    • 外键是用来建立表与表之间关联的字段或字段组合。
    • 在创建数据表时,你可以在一个表中定义外键,该外键引用另一个表的主键。
    • 外键用于建立表之间的关联关系,确保引用表中的数据在被关联表中存在。
    • 外键可以允许NULL值,表示某些行没有关联行。

示例:

CREATE TABLE OrderDetails ( OrderID INT, ProductID INT, Quantity INT, PRIMARY KEY (OrderID, ProductID), -- 复合主键 FOREIGN KEY (OrderID) REFERENCES Orders(OrderID) );

上述例子中,OrderDetails 表中的 (OrderID, ProductID) 被指定为复合主键,同时 OrderID 被定义为外键,引用了 Orders 表中的主键。这样,OrderDetails 表中的每个订单项都与对应的订单关联起来。

将多列设计为数据库主键的影响

将两列(或更多列)设置为复合主键会对数据库表的行为和性能产生一些影响,这些影响需要在设计阶段仔细考虑。以下是一些可能的影响和相关注意事项:

  1. 唯一性和标识: 复合主键确保了指定的列组合的唯一性。每个数据行都必须具有唯一的 {OrderID, ProductID} 组合。这对于确保数据完整性和避免重复数据是非常有用的。

  2. 查询性能: 复合主键在执行查询时可能会受到一些性能影响,特别是在包含多个列的查询条件或连接条件的情况下。数据库系统需要在多个列上执行索引操作,这可能导致性能下降。

  3. 索引需求: 使用复合主键通常需要在这些列上创建复合索引,以便数据库可以快速查找数据。需要确保索引的正确使用和维护,以提高查询性能。

  4. 外键关系: 如果复合主键的其中一部分被用作外键,确保在相关的表之间正确建立了外键关系。这有助于维护数据一致性。

  5. 表连接: 在进行表连接时,可能需要使用复合主键的所有列进行连接操作。这可能使连接条件更为复杂。

  6. 空间占用: 复合主键可能会占用更多的存储空间,因为每个索引和数据行都需要存储额外的信息。

  7. 数据模型的复杂性: 使用复合主键可能会增加数据模型的复杂性,特别是在处理复杂查询和更新操作时。

在实际设计中,你需要根据具体情况权衡这些因素。在某些情况下,使用复合主键是非常合适的,而在其他情况下,可能更好地选择一个单一的主键并使用其他手段来确保数据的唯一性。在进行数据库设计时,了解业务需求和数据访问模式将有助于做出更明智的决策。

复合组件的应用场景

复合主键通常在需要多个列的组合来唯一标识数据行的情况下使用。以下是一些可能需要使用复合主键的例子:

  1. 订单项(OrderItems):
    • 主键:{OrderID, ProductID}
    • 说明:在订单项中,一个订单中的不同产品可能在多个订单项中存在,因此需要使用订单ID和产品ID的组合来唯一标识每个订单项。
CREATE TABLE OrderItems ( OrderID INT, ProductID INT, Quantity INT, PRIMARY KEY (OrderID, ProductID), -- 其他列... );
  1. 学生选课表(StudentCourses):
    • 主键:{StudentID, CourseID}
    • 说明:学生可以注册多门课程,因此需要使用学生ID和课程ID的组合来唯一标识每个学生选择的课程。
CREATE TABLE StudentCourses ( StudentID INT, CourseID INT, Grade VARCHAR(2), PRIMARY KEY (StudentID, CourseID), -- 其他列... );
  1. 多对多关系的连接表:
    • 主键:{Entity1ID, Entity2ID}
    • 说明:在多对多关系中,连接表通常需要使用两个实体的ID组合作为主键,以确保关系的唯一性。
CREATE TABLE Entity1Entity2 ( Entity1ID INT, Entity2ID INT, RelationshipData VARCHAR(255), PRIMARY KEY (Entity1ID, Entity2ID), -- 其他列... );
  1. 联合用户角色表(UserRoles):
    • 主键:{UserID, RoleID}
    • 说明:在一个系统中,一个用户可以具有多个角色,因此使用用户ID和角色ID的组合作为主键,确保每个用户和角色的关系是唯一的。
CREATE TABLE UserRoles ( UserID INT, RoleID INT, PRIMARY KEY (UserID, RoleID), -- 其他列... );
  1. 复杂权限控制表(Permissions):
    • 主键:{ResourceID, UserID, RoleID}
    • 说明:在一个需要复杂权限控制的系统中,可能需要使用资源ID、用户ID和角色ID的组合作为主键,以确保对资源的权限设置是唯一的。
CREATE TABLE Permissions ( ResourceID INT, UserID INT, RoleID INT, PermissionType VARCHAR(50), PRIMARY KEY (ResourceID, UserID, RoleID), -- 其他列... );

这些例子展示了在实际应用中可能需要使用复合主键的情况。复合主键通常在需要考虑多个列的组合来确保唯一性时非常有用。但请注意,在一些情况下,使用单一主键或者添加额外的唯一性约束也可能是合适的,具体取决于业务需求和数据模型。

相关文章:

数据库的设计

理解数据库第二范式2NF的必备知识 关系数据库基础: 了解关系数据库的基本概念,包括表格、行、列、主键、外键等。 第一范式(1NF): 在理解第二范式之前,首先要了解第一范式。第一范式要求表格中的每个列都包…...

数据比较时String未转成BigDecimal的坑

如果价格的字段是String,要转换成BigDecimal等数字再比较,用String比较会出现奇怪的错误。 这句话看起来很多余,但是实际写代码的时候确是很容易忽略。 比如价格这个字段封装在对象里,而你只是a.getPrice().compareTo(b.getPrice…...

MySQL第三战:CRUD,函数1以及unionunion all

目录 前言 一.CRUD 1.查询 概念: 语法 含义 2.新增 概念: 语法 含义: 3.修改 语法 含义 4.删除 语法 含义 二.函数 1.字符函数 2.数字函数 3.日期函数 4.聚合函数 三.union&union all 概念 语法 专业词解释 使用…...

业务项目中Echarts图表组件的封装实践方案

背景:如果我们的项目是一个可视化类/营销看板类/大屏展示类业务项目,不可避免的会使用到各种图表展示。那在一个项目中如何封装一个图表组件既能够快速复用、UI统一,又可以灵活扩充Echarts的各种复杂配置项配置就变得极为重要。 封装目标 符…...

鸿蒙开发之拖拽事件

一、拖拽涉及的方法 Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)//拖拽开始.onDragStart((event: DragEvent) > {console.log(drag event onDragStartevent.getX())})//拖拽进入组件范围,需要监听onDrop配合.onDragEnter((event: DragEvent) …...

C#使用纯OpenCvSharp部署yolov8-pose姿态识别

【源码地址】 github地址:https://github.com/ultralytics/ultralytics 【算法介绍】 Yolov8-Pose算法是一种基于深度神经网络的目标检测算法,用于对人体姿势进行准确检测。该算法在Yolov8的基础上引入了姿势估计模块,通过联合检测和姿势…...

[AutoSar]基础部分 RTE 04 数据类型的定义及使用

目录 关键词平台说明一、数据类型分类二、Adt三、Idt四、Base 数据类型五、units六、compu methods七、data constraint 关键词 嵌入式、C语言、autosar、Rte 平台说明 项目ValueOSautosar OSautosar厂商vector芯片厂商TI编程语言C,C编译器HighTec (GCC) 一、数据…...

c#调试程序一次启动两个工程(多个工程)

概述 c# - Visual Studio : debug multiple projects at the same time? 以在解决方案中设置多个启动项目(右键单击解决方案,转到设置启动项目,选择多个启动项目),并为包含在解决方案(无、开始、不调试就开始)。如果您将多个项目设置为开始…...

轻松搭建企业知识库:10款必备工具推荐

随着企业知识的不断积累和团队规模的扩大,如何高效地管理和利用这些知识成为了一个重要的问题。企业知识库作为一种有效的知识管理工具,可以帮助企业将分散的知识整合在一起,方便团队成员快速查找、学习和共享。接下来就分享10款很不错的企业…...

第三天学习记录

第二天 C++随便提一提重点学习编译原理选学离散数学形式语言与自动机理论数据结构C++ 随便提一提 C++面向对象编程。与强调算法的过程性编程(试图使问题满足语言的过程性方法)不同。面向对象编程强调的是数据,它试图让语言来满足问题的要求。其理念是设计与问题本质特征相对…...

内核线程创建-kthread_create

文章参考Linux内核线程kernel thread详解 - 知乎 大概意思就是早期创建内核线程,是交由内核处理,由内核自己完成(感觉好像也不太对呢),创建一个内核线程比较麻烦,会导致内核阻塞。因此就诞生了工作队列以及…...

uniappVue3版本中组件生命周期和页面生命周期的详细介绍

一、什么是生命周期? 生命周期有多重叫法,有叫生命周期函数的,也有叫生命周期钩子的,还有钩子函数的,其实都是代表,在 Vue 实例创建、更新和销毁的不同阶段触发的一组钩子函数,这些生命周期函数…...

任务驱动式编程

main /** 模板代码*/#include "gd32f4xx.h" #include "systick.h" #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include "main.h" #include "USART0.h" #include &quo…...

python数据可视化之折线图案例讲解

学习完python基础知识点&#xff0c;终于来到了新的模块——数据可视化。 我理解的数据可视化是对大量的数据进行分析以更直观的形式展现出来。 今天我们用python数据可视化来实现一个2023年三大购物平台销售额比重的折线图。 准备工作&#xff1a;我们需要下载用于生成图表的第…...

QT工具栏开始,退出

QT工具栏开始&#xff0c;退出 //初始化场景QMenuBar *bar menuBar();setMenuBar(bar);QMenu *startbar bar->addMenu("开始");QAction * quitAction startbar->addAction("退出");connect(quitAction , &QAction::triggered,[](){this->c…...

@Async正确使用姿势

Async注解可以使被修饰的方法成为异步方法&#xff0c;简单且方便&#xff0c;这篇文章将教你如何正确的使用它 先谈谈大多数人对Aysnc的认识&#xff1a; 如果直接使用Async&#xff0c;未指定线程池 并且 容器内也没有beanName为taskExecutor的bean&#xff0c;则会使…...

试除法判定质数算法总结

知识概览 质数的定义 在大于1的整数中&#xff0c;如果只包含1和本身这两个约数&#xff0c;就被称为质数&#xff0c;或者叫素数。 质数的判定——试除法 暴力算法 时间复杂度 改进算法 时间复杂度 暴力算法&#xff1a;时间复杂度O(n) 算法模版 bool is_pr…...

vuetify 回到顶部

参考链接 // 回到id#app-content-container 的dom节点顶部 onScroll() {const ele document.querySelector(#app-content-container)// this.$vuetify.goTo(0, duration)this.$vuetify.goTo(#app-content-container, { container: ele })},...

Socket与TCP的关系

前言 相信大家对于TCP已经非常熟悉了&#xff0c;学习过计算机网络的同学对于它的连接和断开流程应该已经烂熟于心了吧。 那么Socket是什么&#xff1f; Socket是应用层与TCP/IP协议簇通信的中间软件抽象层&#xff0c;它是一组接口。在设计模式中&#xff0c;Socket其实就是…...

RKE安装k8s及部署高可用rancher之证书私有证书但是内置的ssl不放到外置的LB中 4层负载均衡

先决条件# Kubernetes 集群 参考RKE安装k8s及部署高可用rancher之证书在外面的LB&#xff08;nginx中&#xff09;-CSDN博客CLI 工具Ingress Controller&#xff08;仅适用于托管 Kubernetes&#xff09; 创建集群k8s [rootnginx locale]# cat rancher-cluster.yml nodes:- …...

使用爬虫爬取热门电影

文章目录 网站存储视频的原理M3U8文件解读网站分析代码实现 网站存储视频的原理 首先我们来了解一下网站存储视频的原理。 一般情况下&#xff0c;一个网页里想要显示出一个视频资源&#xff0c;必须有一个<video>标签&#xff0c; <video src"xxx.mp4"&…...

【unity小技巧】实现没有动画的FPS武器摇摆和摆动效果

文章目录 前言开始完结 前言 添加程序摇摆和摆动是为任何FPS游戏添加一些细节的非常简单的方法。但是并不是所以的模型动画都会配有武器摆动动画效果&#xff0c;在本文中&#xff0c;将实现如何使用一些简单的代码实现武器摇摆和摆动效果&#xff0c;这比设置动画来尝试实现类…...

C语言基础知识(6):UDP网络编程

UDP 是不具有可靠性的数据报协议。细微的处理它会交给上层的应用去完成。在 UDP 的情况下&#xff0c;虽然可以确保发送消息的大小&#xff0c;却不能保证消息一定会到达。因此&#xff0c;应用有时会根据自己的需要进行重发处理。 1.UDP协议的主要特点&#xff1a; &#xf…...

12月笔记

#pragma once 防止多次引用头文件&#xff0c;保证同一个&#xff08;物理意义上&#xff09;文件被多次包含&#xff0c;内容相同的两个文件同样会被包含。 头文件.h与无.h的文件&#xff1a; iostream是C的头文件&#xff0c;iostream.h是C的头文件&#xff0c;即标准的C头文…...

三、C语言中的分支与循环—for循环 (6)

本章分支结构的学习内容如下&#xff1a; 三、C语言中的分支与循环—if语句 (1) 三、C语言中的分支与循环—关系操作符 (2) 三、C语言中的分支与循环—条件操作符 与逻辑操作符(3) 三、C语言中的分支与循环—switch语句&#xff08;4&#xff09;分支结构 完 本章循环结构的…...

tolist()读取Excel列数据,(Excel列数据去重后,重新保存到新的Excel里)

从Excel列数据去重后&#xff0c;重新保存到新的Excel里 import pandas as pd# 读取Excel文件 file r"D:\\pythonXangmu\\quchong\\quchong.xlsx" # 使用原始字符串以避免转义字符 df pd.read_excel(file, sheet_namenameSheet)# 删除重复值 df2 df.drop_duplica…...

ChatGPT大升级,文档图像识别领域迎来技术革新

​写在前面ChatGPT迎来重大升级冲击与机遇并存​大模型时代的思考与探索■ 像素级OCR统一模型- UPOCR■ OCR大一统模型- SPTS v3■ 文档识别分析LLM应用 写在最后问卷抽奖 ​写在前面 2023 年 12 月 31 日第十九届中国图象图形学学会青年科学家会议在广州召开&#xff0c;该会…...

2023年全国职业院校技能大赛软件测试—测试报告模板参考文档

ERP(资源协同)管理平台测试报告 目录 ERP(资源协同)管理平台测试报告 1. 概述...

【BCC动态跟踪PostgreSQL】

BPF Compiler Collection (BCC)是基于eBPF的Linux内核分析、跟踪、网络监控工具。其源码存放于GitCode - 开发者的代码家园 想要监控PostgreSQL数据库的相关SQL需要在编译PostgreSQL的时候开启dtrace。下文主要介绍几个和PostgreSQL相关的工具,其他工具可根据需求自行了解。 …...

汽车架构解析:python cantools库快速解析arxml

文章目录 前言一、安装cantools二、官方说明文档三、cantools方法1、解析message的属性2、解析pdu中的signals3、根据message查找signals4、报文组成bytes 四、总结 前言 曾经有拿cantools来解析过dbc&#xff0c;用得比较浅&#xff0c;不知道可以用来解析arxml。最近有个需求…...

显示wordpress用户/什么是百度搜索推广

isShutDown&#xff1a;当调用shutdown()或shutdownNow()方法后返回为true。 isTerminated&#xff1a;当调用shutdown()方法后&#xff0c;并且所有提交的任务完成后返回为true; isTerminated&#xff1a;当调用shutdownNow()方法后&#xff0c;成功停止后返回为true; 如果线…...

wordpress第三方/百度seo关键词外包

adi sharc 汇编库 在cces安装目录下有针对dsp进行优化的dsp code&#xff08;asm 汇编优化&#xff09;&#xff0c;在\SHARC\lib\src\libdsp_src目录 下&#xff0c;包括 1.数据位的扩展、压缩 2.基础运算函数 3.自相关 4.biquad 5.bit 翻转 6.复数的绝对值 7.复数加法 8.笛卡…...

做网站推广需要什么专业/永久免费制作网页

ASM镜像和磁盘组冗余2017-10-31 Oracle 宅必备上节讲了磁盘发现的内容&#xff0c;这节内容详细讲解写ASM镜像和故障组1. ASM MirroringASM可以为ASM 文件提供镜像服务&#xff0c;做法为将不同的文件区拷贝放在故障组中&#xff0c;这样可以保证文件副本不会存放在同个故障组中…...

WordPress多站点恢复/百度广告推广电话

DAY 03循环结构&#xff1a;代表语句&#xff1a;while、do while、forwhile格式&#xff1a;初始化表达式&#xff1b;while (条件表达式)&#xff5b;循环体&#xff08;执行语句&#xff09;&#xff1b;&#xff5d;1、while格式&#xff1a;while格式&#xff1a;初始化表…...

旅游网站建设公司/广告公司招聘

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 by-sa 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a;https://blog.csdn.net/qq_26442553/article/details/79318165 数据仓库&#xff1a;数据仓库全面接收源系统数据&#xff…...

云栖建站/搜狗关键词排名此会zjkwlgs

供稿 | Rheos Team 徐朝晖编辑 | 顾欣怡本文2238字&#xff0c;预计阅读时间7分钟更多干货请关注“eBay技术荟”公众号导读Apache Flink作为低延迟、高吞吐的大数据计算引擎&#xff0c;在实时数据处理领域有着优越的地位。本文将从集群生命周期管理、Job生命周期管理、Job快照…...