当前位置: 首页 > 编程日记 > 正文

大型数据库设计原则与技巧

大型数据库设计原则与技巧
       一个好的数据库产品不等于就有一个好的应用系统,如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能。一般来讲,在一个MIS系统分析、设计、测试和试运行阶段,因为数据量较小,设计人员和测试人员往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低,这时再来考虑提高系统性能则要花费更多的人力物力,而整个系统也不可避免的形成了一个打补丁工程。笔者依据多年来设计和使用数据库的经验,提出以下一些设计准则,供同仁们参考。

1:命名的规范
      不同的数据库产品对对象的命名有不同的要求,因此数据库中的各种对象的命名、后台程序的代码编写应采用大小写敏感的形式,各种对象命名长度不要超过30个字符,这样便于应用系统适应不同的数据库。


2:游标(Cursor)的慎用
游标提供了对特定集合中逐行扫描的手段,一般使用游标逐行遍历数据,根据取出的数据不同条件进行不同的操作。尤其对多表和大表定义的游标(大的数据集合)循环很容易使程序进入一个漫长的等特甚至死机,笔者在某市《住房公积金管理系统》进行日终帐户滚积数计息处理时,对一个10万个帐户的游标处理导致程序进入了一个无限期的等特(后经测算需48个小时才能完成)(硬件环境:Alpha/4000 128Mram ,Sco Unix
,Sybase 11.0),后根据不同的条件改成用不同的UPDATE语句得以在二十分钟之内完成。
示例如下:
Declare Mycursor cursor for select count_no from COUNT
Open Mycursor
Fetch Mycursor into @vcount_no
While (@@sqlstatus=0)
    Begin
If @vcount_no=’’ 条件1
操作1
   If @vcount_no=’’ 条件2
   操作2
Fetch Mycursor into @vcount_no
End
改为
Update COUNT set 操作1 for 条件1
Update COUNT set 操作2 for 条件2
在有些场合,有时也非得使用游标,此时也可考虑将符合条件的数据行转入临时表中,再对临时表定义游标进行操作,可时性能得到明显提高。笔者在某地市〈电信收费系统〉数据库后台程序设计中,对一个表(3万行中符合条件的30多行数据)进行游标操作(硬件环境:PC服务器,PII266 64Mram ,NT4.0 Ms Sqlserver 6.5)。 示例如下:
Create  #TmpTable   /* 定义临时表 */
(
   字段1
   字段2
)
INSERT  INTO  #tmp  SELECT  *  FROM  TotalTable  WHERE 条件 /* TOTAL中3万行 符合条件只有几十行 */
Declare Mycursor cursor for select * from #tmp
/*对临时表定义游标*/

3:索引(Index)的使用原则
     创建索引一般有以下两个目的:维护被索引列的唯一性和提供快速访问表中数据的策略。大型数据库有两种索引即簇索引和非簇索引,一个没有簇索引的表是按堆结构存储数据,所有的数据均添加在表的尾部,而建立了簇索引的表,其数据在物理上会按照簇索引键的顺序存储,一个表只允许有一个簇索引,因此,根据B树结构,可以理解添加任何一种索引均能提高按索引列查询的速度,但会降低插入、更新、删除操作的性能,尤其是当填充因子(Fill Factor)较大时。所以对索引较多的表进行频繁的插入、更新、删除操作,建表和索引时因设置较小的填充因子,以便在各数据页中留下较多的自由空间,减少页分割及重新组织的工作。

4:数据的一致性和完整性
   为了保证数据库的一致性和完整性,设计人员往往会设计过多的表间关联(Relation),尽可能的降低数据的冗余。表间关联是一种强制性措施,建立后,对父表(Parent Table)和子表(Child Table)的插入、更新、删除操作均要占用系统的开销,另外,最好不要用Identify 属性字段作为主键与子表关联。如果数据冗余低,数据的完整性容易得到保证,但增加了表间连接查询的操作,为了提高系统的响应时间,合理的数据冗余也是必要的。使用规则(Rule)和约束(Check)来防止系统操作人员误输入造成数据的错误是设计人员的另一种常用手段,但是不必要的规则和约束也会占用系统的不必要开销,需要注意的是,约束对数据的有效性验证要比规则快。所有这些,设计人员在设计阶段应根据系统操作的类型、频度加以均衡考虑。

5:事务的陷阱
    事务是在一次性完成的一组操作。虽然这些操作是单个的操作,SQL Server能够保证这组操作要么全部都完成,要么一点都不做。正是大型数据库的这一特性,使得数据的完整性得到了极大的保证。众所周知,SQL Server为每个独立的SQL语句都提供了隐含的事务控制,使得每个DML的数据操作得以完整提交或回滚,但是SQL Server还提供了显式事务控制语句
---- BEGIN TRANSACTION      开始一个事务
---- COMMIT TRANSACTION    提交一个事务
---- ROLLBACK TRANSACTION  回滚一个事务
---- 事务可以嵌套,可以通过全局变量@@trancount检索到连接的事务处理嵌套层次。需要加以特别注意并且极容易使编程员犯错误的是,每个显示或隐含的事物开始都使得该变量加1,每个事务的提交使该变量减1,每个事务的回滚都会使得该变量置0,而只有当该变量为0时的事务提交(最后一个提交语句时),这时才把物理数据写入磁盘。

6:数据库性能调整
         在计算机硬件配置和网络设计确定的情况下,影响到应用系统性能的因素不外乎为数据库性能和客户端程序设计。而大多数数据库设计员采用两步法进行数据库设计:首先进行逻辑设计,而后进行物理设计。数据库逻辑设计去除了所有冗余数据,提高了数据吞吐速度,保证了数据的完整性,清楚地表达数据元素之间的关系。而对于多表之间的关联查询(尤其是大数据表)时,其性能将会降低,同时也提高了客 户端程序的编程难度,因此,物理设计需折衷考虑,根据业务规则,确定对关联表的数据量大小、数据项的访问频度,对此类数据表频繁的关联查询应适当提高数据冗余设计。

7:数据类型的选择
        数据类型的合理选择对于数据库的性能和操作具有很大的影响,有关这方面的书籍也有不少的阐述,这里主要介绍几点经验。Identify字段不要作为表的主键与其它表关联,这将会影响到该表的数据迁移。Text 和Image字段属指针型数据,主要用来存放二进制大型对象(BLOB)。这类数据的操作相比其它数据类型较慢,因此要避开使用。日期型字段的优点是有众多的日期函数支持,因此,在日期的大小比较、加减操作上非常简单。但是在按照日期作为条件的查询操作也要用函数,相比其它数据类型速度上就慢许多,因为用函数作为查询的条件时,服务器无法用先进的性能策略来优化查询而只能进行表扫描遍历每行。
---- 例如:要从DATA_TAB1中(其中有一个名为DATE的日期字段)查询1998年的所有记
录。
---- SELECT * FROM  DATA_TAB1 WHERE  datepart(yy,DATE) = 1998

随着计算机技术越来越广泛地应用于国民经济的各个领域,在计算机硬件不断微型化的同时,应用系统向着复杂化、大型化的方向发展。数据库是整个系统的核心,它的设计直接关系系统执行的效率和系统的稳定性。因此在软件系统开发中,数据库设计应遵循必要的数据库范式理论,以减少冗余、保证数据的完整性与正确性。只有在合适的数据库产品上设计出合理的数据库模型,才能降低整个系统的编程和维护难度,提高系统的实际运行效率。虽然对于小项目或中等规模的项目 开发人员可以很容易地利用范式理论设计出一套符合要求的数据库,但对于一个包含大型数据库的软件项目,就必须有一套完整的设计原则与技巧。
一、成立数据小组
大型数据库数据元素多,在设计上有必要成立专门的数据小组。由于数据库设计者不一定是使用者,对系统设计中的数据元素不可能考虑周全,数据库设计出来后,往往难以找到所需的库表,因此数据小组最好由熟悉业务的项目骨干组成。
数据小组的职能并非是设计数据库,而是通过需求分析,在参考其他相似系统的基础上,提取系统的基本数据元素,担负对数据库的审核。审核内容包括审核新的数据库元素是否完全、能否实现全部业务需求;对旧数据库(如果存在旧系统)的分析及数据转换;数据库设计的审核、控制及必要调整。
二、设计原则
1.规范命名。所有的库名、表名、域名必须遵循统一的命名规则,并进行必要说明,以方便设计、维护、查询。
2.控制字段的引用。在设计时,可以选择适当的数据库设计管理工具,以方便开发人员的分布式设计和数据小组的集中审核管理。采用统一的命名规则,如果设计的字段已经存在,可直接引用;否则,应重新设计。
3.库表重复控制。在设计过程中,如果发现大部分字段都已存在,开发人员应怀疑所设计的库表是否已存在。通过对字段所在库表及相应设计人员的查询,可以确认库表是否确实重复。
4.并发控制。设计中应进行并发控制,即对于同一个库表,在同一时间只有一个人有控制权,其他人只能进行查询。
5.必要的讨论。数据库设计完成后,数据小组应与相关人员进行讨论,通过讨论来熟悉数据库,从而对设计中存在的问题进行控制或从中获取数据库设计的必要信息。
6.数据小组的审核。库表的定版、修改最终都要通过数据小组的审核,以保证符合必要的要求。
7.头文件处理。每次数据修改后,数据小组要对相应的头文件进行修改(可由管理软件自动完成),并通知相关的开发人员,以便进行相应的程序修改。

三、设计技巧
1.分类拆分数据量大的表。对于经常使用的表(如某些参数表或代码对照表),由于其使用频率很高,要尽量减少表中的记录数量。例如,银行的户主账表原来设计成一张表,虽然可以方便程序的设计与维护,但经过分析发现,由于数据量太大,会影响数据的迅速定位。如果将户主账表分别设计为活期户主账、定期户主账及对公户主账等,则可以大大提高查询效率。
2.索引设计。对于大的数据库表,合理的索引能够提高整个数据库的操作效率。在索引设计中,索引字段应挑选重复值较少的字段;在对建有复合索引的字段进行检索时,应注意按照复合索引字段建立的顺序进行。例如,如果对一个5万多条记录的流水表以日期和流水号为序建立复合索引,由于在该表中日期的重复值接近整个表的记录数,用流水号进行查询所用的时间接近3秒;而如果以流水号为索引字段建立索引进行相同的查询,所用时间不到1秒。因此在大型数据库设计中,只有进行合理的索引字段选择,才能有效提高整个数据库的操作效率。
3.数据操作的优化。在大型数据库中,如何提高数据操作效率值得关注。例如,每在数据库流水表中增加一笔业务,就必须从流水控制表中取出流水号,并将其流水号的数值加一。正常情况下,单笔操作的反应速度尚属正常,但当用它进行批量业务处理时,速度会明显减慢。经过分析发现,每次对流水控制表中的流水号数值加一时都要锁定该表,而该表却是整个系统操作的核心,有可能在操作时被其他进程锁定,因而使整个事务操作速度变慢。对这一问题的解决的办法是,根据批量业务的总笔数批量申请流水号,并对流水控制表进行一次更新,即可提高批量业务处理的速度。另一个例子是对插表的优化。对于大批量的业务处理,如果在插入数据库表时用普通的Insert语句,速度会很慢。其原因在于,每次插表都要进行一次I/O操作,花费较长的时间。改进后,可以用Put语句等缓冲区形式等满页后再进行I/O操作,从而提高效率。对大的数据库表进行删除时,一般会直接用Delete语句,这个语句虽然可以进行小表操作,但对大表却会因带来大事务而导致删除速度很慢甚至失败。解决的方法是去掉事务,但更有效的办法是先进行Drop操作再进行重建。
4.数据库参数的调整。数据库参数的调整是一个经验不断积累的过程,应由有经验的系统管理员完成。以Informix数据库为例,记录锁的数目太少会造成锁表的失败;逻辑日志的文件数目太少会造成插入大表失败等,这些问题都应根据实际情况进行必要的调整。
5.必要的工具。在整个数据库的开发与设计过程中,可以先开发一些小的应用工具,如自动生成库表的头文件、插入数据的初始化、数据插入的函数封装、错误跟踪或自动显示等,以此提高数据库的设计与开发效率。
6.避免长事务。对单个大表的删除或插入操作会带来大事务,解决的办法是对参数进行调整,也可以在插入时对文件进行分割。对于一个由一系列小事务顺序操作共同构成的长事务(如银行交易系统的日终交易),可以由一系列操作完成整个事务,但其缺点是有可能因整个事务太大而使不能完成,或者,由于偶然的意外而使事务重做所需的时间太长。较好的解决方法是,把整个事务分解成几个较小的事务,再由应用程序控制整个系统的流程。这样,如果其中某个事务不成功,则只需重做该事务,因而既可节约时间,又可避免长事务。
7.适当超前。计算机技术发展日新月异,数据库的设计必须具有一定前瞻性,不但要满足当前的应用要求,还要考虑未来的业务发展,同时必须有利于扩展或增加应用系统的处理功能。
相对于中小型数据库,大型数据库的设计与开发要复杂得多,因此在设计、开发过程中,除了要遵循数据库范式理论、增加系统的一致性和完整性外,还要在总体上根据具体情况进行分布式设计,紧紧把握集中控制、统一审核的基本原则,保证数据库设计结构紧凑、分布平衡、定位迅速。在数据库操作上,要采用一定的技巧提高整个应用系统的执行效率,并注意适当超前,以适应不断变化的应用及系统发展的要求。
一个好的数据库产品不等于就有一个好的应用系统,如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能。一般来讲,在一个MIS系统分析、设计、测试和试运行阶段,因为数据量较小,设计人员和测试人员往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低……
    数据库设计是建立数据库及其应用系统的核心和基础,它要求对于指定的应用环境,构造出较优的数据库模式,建立起数据库应用系统,并使系统能有效地存储数据,满足用户的各种应用需求。一般按照规范化的设计方法,常将数据库设计分为若干阶段:
系统规划阶段
    主要是确定系统的名称、范围;确定系统开发的目标功能和性能;确定系统所需的资源;估计系统开发的成本;确定系统实施计划及进度;分析估算系统可能达到的效益;确定系统设计的原则和技术路线等。对分布式数据库系统,还应分析用户环境及网络条件,以选择和建立系统的网络结构。
需求分析阶段
      要在用户调查的基础上,通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。通过对组织、部门、企业等进行详细调查,在了解现行系统的概况、确定新系统功能的过程中,收集支持系统目标的基础数据及其处理方法。
 概念设计阶段
      要产生反映企业各组织信息需求的数据库概念结构,即概念模型。概念模型必须具备丰富的语义表达能力、易于交流和理解、易于变动、易于向各种数据模型转换、易于从概念模型导出与DBMS有关的逻辑模型等特点。
逻辑设计阶段
    除了要把E-R图的实体和联系类型,转换成选定的DBMS支持的数据类型,还要设计子模式并对模式进行评价,最后为了使模式适应信息的不同表示,需要优化模式。
物理设计阶段
    主要任务是对数据库中数据在物理设备上的存放结构和存取方法进行设计。数据库物理结构依赖于给定的计算机系统,而且与具体选用的DBMS密切相关。物理设计常常包括某些操作约束,如响应时间与存储要求等。
系统实施阶段
    主要分为建立实际的数据库结构;装入试验数据对应用程序进行测试;装入实际数据建立实际数据库三个步骤。
    另外,在数据库的设计过程中还包括一些其他设计,如数据库的安全性、完整性、一致性和可恢复性等方面的设计,不过,这些设计总是以牺牲效率为代价的,设计人员的任务就是要在效率和尽可能多的功能之间进行合理的权衡。
一个好的数据库产品不等于就有一个好的应用系统,如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能。一般来讲,在一个MIS系统分析、设计、测试和试运行阶段,因为数据量较小,设计人员和测试人员往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低
       数据库设计是建立数据库及其应用系统的核心和基础,它要求对于指定的应用环境,构造出较优的数据库模式,建立起数据库应用系统,并使系统能有效地存储数据,满足用户的各种应用需求。一般按照规范化的设计方法,常将数据库设计分为若干阶段:
系统规划阶段
    主要是确定系统的名称、范围;确定系统开发的目标功能和性能;确定系统所需的资源;估计系统开发的成本;确定系统实施计划及进度;分析估算系统可能达到的效益;确定系统设计的原则和技术路线等。对分布式数据库系统,还应分析用户环境及网络条件,以选择和建立系统的网络结构。
 需求分析阶段
    要在用户调查的基础上,通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。通过对组织、部门、企业等进行详细调查,在了解现行系统的概况、确定新系统功能的过程中,收集支持系统目标的基础数据及其处理方法。
 概念设计阶段
    要产生反映企业各组织信息需求的数据库概念结构,即概念模型。概念模型必须具备丰富的语义表达能力、易于交流和理解、易于变动、易于向各种数据模型转换、易于从概念模型导出与DBMS有关的逻辑模型等特点。
 逻辑设计阶段
    除了要把E-R图的实体和联系类型,转换成选定的DBMS支持的数据类型,还要设计子模式并对模式进行评价,最后为了使模式适应信息的不同表示,需要优化模式。
    物理设计阶段
    主要任务是对数据库中数据在物理设备上的存放结构和存取方法进行设计。数据库物理结构依赖于给定的计算机系统,而且与具体选用的DBMS密切相关。物理设计常常包括某些操作约束,如响应时间与存储要求等。
    系统实施阶段
    主要分为建立实际的数据库结构;装入试验数据对应用程序进行测试;装入实际数据建立实际数据库三个步骤。
    另外,在数据库的设计过程中还包括一些其他设计,如数据库的安全性、完整性、一致性和可恢复性等方面的设计,不过,这些设计总是以牺牲效率为代价的,设计人员的任务就是要在效率和尽可能多的功能之间进行合理的权衡。

 

转载于:https://www.cnblogs.com/PatrickLee/archive/2012/07/24/2606383.html

相关文章:

Datawhale组队学习周报(第005周)

本周(03月15日~03月21日),第 23 期组队学习正在如火如荼的进行中。本期组队学习,一共有 4 门开源课程,共组建了 5 个学习群,参与的学习者有 740 人。另外,第 24 期组队学习也蓄势待发准备与大家…

安装hue依赖包

yum -y install rsync gcc gcc-c openldap-devel openssl-devel python-ldap python-devel python-setuptools python-simplejson sqlite-devel libxml2-devel libxslt-devel cyrus-sasl-devel gmp-devel 另外还需要安装mysql mysql-devel 本文转自 yntmdr 51CTO博客&a…

Python培训入门基础知识学什么?

Python培训基础知识主要是针对一些零基础的同学安排的,虽说Python是相对比较简单的一门编程语言,但是没有基础的同学还是要进行系统的学习,那么Python培训入门基础知识学什么呢?来看看下面小编的详细介绍。 Python培训入门基础知识学什么?P…

Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断后的处理

介绍Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断后的处。 Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断或关机后,重新开机,运行数据库及数据库监听,再运行应用服务后,登录会出现如下提示,需…

cmd命令 安装本地服务器

安装本地服务器 0下载nodejs并安装 1安装npm :npm install -g anywhere 2打开服务器 :anywhere 8080 3停用服务器 ctrlc 查找路径 cd c:/program/www/ 本文转自Ansue 51CTO博客,原文链接http://blog.51cto.com/ansue/1732335:&…

你与ACM MM的距离只差一场算法比赛

你与ACM MM的距离只差一场算法比赛 伴随5G时代来临,视频广告迎来爆发式增长,在广告创意/投放/策略等广告系统的关键环节中,对视频广告内容的深度理解越发显得重要且迫切。 因此,2021腾讯广告算法大赛今年的赛题聚焦在了视频广告…

Python培训班适合哪些人报名学习

学习Python技术有两种方法,一个是自学,一个是报Python培训班进行系统学习,自学肯定是对一些有Python基础的同学比较合适的,那么Python培训班适合哪些人报名学习呢?来看看下面的详细介绍。 Python培训班适合哪些人报名学习? 1.适…

网络硬件一篇通

现在局域网大多采用以太网的拓扑结构,物理上由服务器、工作站、集线器、交换机、路由器、网卡、 RJ45水晶头、网线等组成。很多朋友想了解一些局域网的硬件组成及相关硬件的安装设置,下面就谈谈这方面的话题。一、网络硬件概述1、服务器和工作站大多数时…

DevExpress.XtraReports打印

使用DevExpress.XtraReports打印报表时,分别采用两种打印方式。以下面的打印样式为列作简要说明: 第一种:表头表尾保持不变,表中数据根据实际打印条数更改。如现在我要打印的学生为三个,则得到如下的报表: …

【直播】鱼佬:心跳信号分类赛高分突破

心跳信号分类赛高分突破 目前 Datawhale第23期组队学习正在如火如荼的进行中。为了大家更好的学习,零基础入门数据挖掘(心跳信号分类) 的课程设计者王贺,将为大家带来一场直播分享——心跳信号分类赛高分突破。 直播信息 主讲人…

21个UI设计必会的设计技巧

想要成为一名合格的UI设计师,必须要有扎实的基础,和丰富的设计经验,本期小编为大家介绍的UI设计培训教程是21个UI设计必会的设计技巧,可帮助大家提升自己。 UI设计培训技术分享:一个好的UI设计是由无数个小决定组成的&…

SQL Server 2014新特性——基数评估(白皮书阅读笔记)

基数评估 目录 基数评估 说明 基数评估准确的重要性 模型假设 启用新的基数评估 验证基数评估的版本 在迁移到新的基数评估前要测试 校验基数评估 偏差问题 需要手动处理的变化 避免因为新的CE造成性能下降 SQL Server 2014中的修改 增加多个谓词的相关性的假设 修改超出统计信…

【直播】张晋:心跳信号分类模型融合

心跳信号分类模型融合 目前 Datawhale第23期组队学习 正在如火如荼的进行中。为了大家更好的学习,零基础入门数据挖掘(心跳信号分类) 的课程设计者张晋,将为大家带来一场直播分享——心跳信号分类模型融合。 直播信息 主讲人&am…

无密码SSH配置

由于Hadoop和以后用到的Git分布式版本控制都用到了SSH,故这里把无密码登录的SSH的配置过程记录下: 1. 首先切换到想要使用ssh的用户下,不一定是root用户 2. ssh-keygen –t rsa –P ‘’ (这个用来产生id_rsa.pub和id_rsa&#xf…

学Java技术,这些问题要避免

参加java培训学习java技术不是一朝一夕就能学会的事情,在学习的过程中还要注意学习方式,有一些错误是要避免的,下面我们就为大家详细的介绍一下学java技术要避免哪些问题? Java培训分享:学Java技术,这些问题要避免 1.…

Activity悬浮并可拖动(访悬浮歌词)

强烈推荐: 最无私的Android资料(书籍代码)分享-不要积分(求置顶)http://www.eoeandroid.com/thread-80891-1-1.html 大量项目源码分享http://www.eoeandroid.com/thread-162339-1-1.html 基于Android系统的影音播放器开…

实现单向访问控制

[Router]acl 3000 match-order auto //配置acl 3000[Router-acl3000]rule 1 deny icmp source 192.168.10.30 0.0.0.0 destination 192.168.10.20 0.0.0.0 icmp-type echo // 禁止主机PC2 ping主机PC1。[Router-acl3000]rule 2 deny tcp source 192.168.10.30 0.0.0.0 destin…

【直播】鱼佬:数据挖掘师之路(河北高校数据挖掘邀请赛)

数据挖掘师之路 目前 河北高校数据挖掘邀请赛 正在如火如荼的进行中。为了大家更好的参赛,王茂霖分享了 从0梳理1场数据挖掘赛事!,完整梳理了从环境准备、数据读取、数据分析、特征工程到数据建模的整个过程。03月28日晚,王贺也为…

Python培训班线上线下哪种靠谱

Python近几年在人工智能领域的快速发展,引起了很多人的注意,各种Python培训机构也越来越多,很多零基础的同学都想通过报培训班学习,目前互联网的发达,Python培训分为线上和线下,那么Python培训班线上线下哪…

3-openstack之keystone上

3.1 keystone 安装linux-node1上面 3.2 配置源 12http://mirrors.aliyun.com/centos/7.2.1511/cloud/x86_64/openstack-newton/centos-release-openstack-newton-1-1.el7.noarch.rpm yumlocalinstall -y centos-release-openstack-newton-1-1.el7.noarch.rpm安装:…

全面认识一下.NET 4.0的缓存功能

很多关于.NET 4.0新特性的介绍,缓存功能的增强肯定是不会被忽略的一个重要亮点。在很多文档中都会介绍到在.NET 4.0中,缓存功能的增强主要是在扩展性方面做了改进,改变了原来只能利用内存进行缓存的局限,允许用户在不改变代码的情…

【直播】王茂霖:二手车交易价格预测 Baseline 提高(河北高校数据挖掘邀请赛)

二手车交易价格预测 Baseline 提高 目前 河北高校数据挖掘邀请赛 正在如火如荼的进行中。为了大家更好的参赛,王茂霖分享了 从0梳理1场数据挖掘赛事!,完整梳理了从环境准备、数据读取、数据分析、特征工程到数据建模的整个过程。04月01日晚&a…

java培训要学习多久?

java技术要学习的内容有很多,那么究竟java培训要学习多久?这是很多同学都比较关注的一个问题,首先我们来详细的了解一下java培训的学习路线都有哪些,具体要花多少时间学习吧。  ​ java培训要学习多久? 1.Java语言介绍 从基础语法、面向对…

数据库范式温习

简介 关系数据库中的关系必须满足一定的要求,即满足不同的范式。 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、…

使用 git 管理 portage tree

安装 git.备份原来的 portage tree.克隆 funtoo.cd /usr && rm -rf portage && git clone git://github.com/funtoo/portage.git 仓库中有gentoo.org, funtoo.org, master三个分支. 分支 gentoo.org 就是 gentoo 的官方 portage tree, 只不过是由 Daniel Robb…

02 Scratch等级考试(二级)模拟题

青少年编程竞赛交流群已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档&…

怎样找到适合自己的UI设计培训班

UI设计这个行业近几年有越来越多的人都比较关注,市面上的UI设计培训机构也越来越多,很多零基础同学都在寻找适合自己的UI设计培训机构,那么怎样找到适合自己的UI设计培训班呢?来 怎样找到适合自己的UI设计培训班? 一、看课程内容 UI设计行业…

Global.asax详解

在网上找了N多相关的东西总说的不够细,现在终于找到了.可以了解web.cofig和Global.asax之间的关系以及执行的顺序. 在Global.asax.cs文件中 protected void Application_BeginRequest(Object sender, EventArgs e){ Application["StartTime"] System.DateTime.Now…

Openfire服务器的安装部署

Openfire是一个强大的即时消息(IM)和聊天服务器,它实现了XMPP协议,可以使用它轻易的构建高效率的即时通信服务器. 其安装和部署都十分简单,并利用Web进行管理。单台服务器可支持上万并发用户,由于是采用开放的XMPP协议…

【直播】耿远昊:Pandas入门讲解(安泰第四届数据科学训练营)

Pandas入门讲解 直播信息 主讲人:耿远昊,Datawhale成员,joyful-pandas作者。 直播时间:2021年04月07日 20:00~21:00 直播内容: 时间序列中的必知必会:深入理解时间对象掌握滑动窗口熟悉重采样操作 直播…