楼上各位:
人家问题好象是问的数据库的种类,即数据库(DB)的类型问题,不是问的数据库管理系统(DBMS)的种类问题。我认为,就目前来讲数据库按其结构来讲,可分为三类:
1、层次型
2、网状型
3、关系型
上面,大家回答的都是处理关系型数据库系统。目前大多数集成开发环境(包括语言)都可以用来处理数据库,可以说不胜枚举。就关系型DBMS来说,我认为:
中小型的代表有Access、FoxBASE
中型的代表有VFP、dBASE、PB
大型的代表有oracle、SQL
1 基本思想之什么是分库分表?
从字面上简单理解,就是把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。
2 基本思想之为什么要分库分表?
数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据 *** 作,增删改查的开销也会越来越大;另外,由于无法进行分布式式部署,而一台服务器的资源(CPU、磁盘、内存、IO等)是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。
3 分库分表的实施策略。
分库分表有垂直切分和水平切分两种。
31 何谓垂直切分,即将表按照功能模块、关系密切程度划分出来,部署到不同的库上。例如,我们会建立定义数据库workDB、商品数据库payDB、用户数据库userDB、日志数据库logDB等,分别用于存储项目数据定义表、商品定义表、用户数据表、日志数据表等。
32 何谓水平切分,当一个表中的数据量过大时,我们可以把该表的数据按照某种规则,例如userID散列,进行划分,然后存储到多个结构相同的表,和不同的库上。例如,我们的userDB中的用户数据表中,每一个表的数据量都很大,就可以把userDB切分为结构相同的多个userDB:part0DB、part1DB等,再将userDB上的用户数据表userTable,切分为很多userTable:userTable0、userTable1等,然后将这些表按照一定的规则存储到多个userDB上。
33 应该使用哪一种方式来实施数据库分库分表,这要看数据库中数据量的瓶颈所在,并综合项目的业务类型进行考虑。
如果数据库是因为表太多而造成海量数据,并且项目的各项业务逻辑划分清晰、低耦合,那么规则简单明了、容易实施的垂直切分必是首选。
而如果数据库中的表并不多,但单表的数据量很大、或数据热度很高,这种情况之下就应该选择水平切分,水平切分比垂直切分要复杂一些,它将原本逻辑上属于一体的数据进行了物理分割,除了在分割时要对分割的粒度做好评估,考虑数据平均和负载平均,后期也将对项目人员及应用程序产生额外的数据管理负担。
在现实项目中,往往是这两种情况兼而有之,这就需要做出权衡,甚至既需要垂直切分,又需要水平切分。我们的游戏项目便综合使用了垂直与水平切分,我们首先对数据库进行垂直切分,然后,再针对一部分表,通常是用户数据表,进行水平切分。
4 分库分表存在的问题。
41 事务问题。
在执行分库分表之后,由于数据存储到了不同的库上,数据库事务管理出现了困难。如果依赖数据库本身的分布式事务管理功能去执行事务,将付出高昂的性能代价;如果由应用程序去协助控制,形成程序逻辑上的事务,又会造成编程方面的负担。
42 跨库跨表的join问题。
在执行了分库分表之后,难以避免会将原本逻辑关联性很强的数据划分到不同的表、不同的库上,这时,表的关联 *** 作将受到限制,我们无法join位于不同分库的表,也无法join分表粒度不同的表,结果原本一次查询能够完成的业务,可能需要多次查询才能完成。
43 额外的数据管理负担和数据运算压力。
额外的数据管理负担,最显而易见的就是数据的定位问题和数据的增删改查的重复执行问题,这些都可以通过应用程序解决,但必然引起额外的逻辑运算,例如,对于一个记录用户成绩的用户数据表userTable,业务要求查出成绩最好的100位,在进行分表之前,只需一个order by语句就可以搞定,但是在进行分表之后,将需要n个order by语句,分别查出每一个分表的前100名用户数据,然后再对这些数据进行合并计算,才能得出结果。
上述整理于互联网
(1)存储记录结构设计综合分析数据存储要求和应用需求,设计存储记录格式
(2)存储空间分配存储空间分配有两个原则:①存取频度高的数据尽量安排在快速、随机设备上,存取频度低的数据则安排在速度较慢的设备上
②相互依赖性强的数据尽量存储在同一台设备上,且尽量安排在邻近的存储空间上
从提高系统性能方面考虑,应将设计好的存储记录作为一个整体合理地分配物理存储区域
尽可能充分利用物理顺序特点,把不同类型的存储记录指派到不同的物理群中
(3)访问方法的设计一个访问方法包括存储结构和检索机构两部分
存储结构限定了访问存储记录时可以使用的访问路径;检索机构定义了每个应用实际使用的访问路径
(4)物理设计的性能评价①查询响应时间从查询开始到有结果显示之间所经历的时间称为查询响应时间
查询响应时间可进一步细分为服务时间、等待时间和延迟时间
在物理设计过程中,要对系统的性能进行评价
性能评价包括时间、空间、效率、开销等各个方面
⊙CPU服务时间和I/O服务时间的长短取决于应用程序设计
⊙CPU队列等待时间和I/O队列等待时间的长短受计算机系统作业的影响
⊙设计者可以有限度地控制分布式数据库系统的通信延迟时间
②存储空间存储空间存放程序和数据
程序包括运行的应用程序、DBMS子程序、OS子程序等
数据包括用户工作区、DBMS工作区、OS工作区、索引缓冲区、数据缓冲区等
存储空间分为主存空间和辅存空间
设计者只能有限度地控制主存空间,例如可指定缓冲区的分配等
但设计者能够有效地控制辅存空间
③开销与效率设计中还要考虑以下各种开销,开销增大,系统效率将下降
⊙事务开销指从事务开始到事务结束所耗用的时间
更新事务要修改索引、重写物理块、进行写校验等 *** 作,增加了额外的开销
更新频度应列为设计的考虑因素
⊙报告生成开销指从数据输入到有结果输出这段时间
报告生成占用CPU及I/O的服务时间较长
设计中要进行筛选,除去不必要的报告生成
⊙对数据库的重组也是一项大的开销
设计中应考虑数据量和处理频度这两个因数,做到避免或尽量减少重组数据库
在物理设计阶段,设计、评价、修改这个过程可能要反复多次,最终得到较为完善的物理数据库结构说明书
建立数据库时,DBA依据物理数据库结构说明书,使用DBMS提供的工具可以进行数据库配置
在数据库运行时,DBA监察数据库的各项性能,根据依据物理数据库结构说明书的准则,及时进行修正和优化 *** 作,保证数据库系统能够保持高效率地运行
6
程序编制及调试在逻辑数据库结构确定以后,应用程序设计的编制就可以和物理设计并行地展开程序模块代码通常先在模拟的环境下通过初步调试,然后再进行联合调试
联合调试的工作主要有以下几点:(1)建立数据库结构根据逻辑设计和物理设计的结果,用DBMS提供的数据语言(DDL)编写出数据库的源模式,经编译得到目标模式,执行目标模式即可建立实际的数据库结构
(2)调试运行数据库结构建立后,装入试验数据,使数据库进入调试运行阶段
运行应用程序,测试(3)装入实际的初始数据在数据库正式投入运行之前,还要做好以下几项工作:(1)制定数据库重新组织的可行方案
(2)制定故障恢复规范(3)制定系统的安全规范7
运行和维护数据库正式投入运行后,运行维护阶段的主要工作是:(1)维护数据库的安全性与完整性
按照制定的安全规范和故障恢复规范,在系统的安全出现问题时,及时调整授权和更改密码
及时发现系统运行时出现的错误,迅速修改,确保系统正常运行
把数据库的备份和转储作为日常的工作,一旦发生故障,立即使用数据库的最新备份予以恢复
(2)监察系统的性能
运用DBMS提供的性能监察与分析工具,不断地监控着系统的运行情况
当数据库的存储空间或响应时间等性能下降时,立即进行分析研究找出原因,并及时采取措施改进
例如,可通修改某些参数、整理碎片、调整存储结构或重新组织数据库等方法,使数据库系统保持高效率地正常运作
(3)扩充系统的功能在维持原有系统功能和性能的基础上,适应环境和需求的变化,采纳用户的合理意见,对原有系统进行扩充,增加新的功能
sql server 2008数据库分离 *** 作跟sql server 2005是一样的,以下具体介绍如何分离sql server 数据库:
1、打开 sql server 控制台(SQL Server Management Studio),然后登录。
2、登录时如果知道sa密码可以使用“SQL Server身份验证”模式登录,如果不知道sa密码可以使用“windows身份验证”模式登录就不需要密码登录。而sql server 2008的用户一般是在安装的时候自定义的用户,但也可以使用“windows身份验证”模式登录。
3、登录到控制到中之后,找到数据库点击展开,然后找到你所需要分离的数据库名称。选中数据库右键-任务-分离即可。
附件说明:分离数据库一般是需要将数据库拷贝到其他机器或者是移动磁盘时和不需要使用该数据库的情况下才做数据库分离。数据库一旦分离之后所对应的软件将无法正常使用和打开数据库。如果需要重新将数据库还原到数据库控制台中,选中数据库-右键-附加,找到你所要附件的数据所在的磁盘路径,选择以“MDF”为后缀的文件即可。
四种
模糊数据库
指能够处理模糊数据的数据库。一般的数据库都是以二直逻辑和精确的数据工具为基础的,不能表示许多模糊不清的
事情。随着模糊数学理论体系的建立,人们可以用数量来描述模糊事件并能进行模糊运算。这样就可以把不完全性、不确定性、模糊性引入数据库系统中,从而形成模糊数据库。模糊数据库研究主要有两方面,首先是如何在数据库中存放模糊数据;其次是定义各种运算建立模糊数据上的函数。模糊数的表示主要有模糊区间数、模糊中心数、模糊集合数和隶属函数等。
统计数据库
管理统计数据的数据库系统。这类数据库包含有大量的数据记录,但其目的是向用户提供各种统计汇总信息,而不是提供单个记录的信息。
网状数据库
处理以记录类型为结点的网状数据模型的数据库。处理方法是将网状结构分解成若干棵二级树结构,称为系。系类型
是二个或二个以上的记录类型之间联系的一种描述。在一个系类型中,有一个记录类型处于主导地位,称为系主记录类
型,其它称为成员记录类型。系主和成员之间的联系是一对多的联系。网状数据库的代表是DBTG系统。1969年美国的
CODASYL组织提出了一份“DBTG报告”,以后,根据DBTG报告实现的系统一般称
为DBTG系统。现有的网状数据库系统大都是采用DBTG方案的。DBTG系统是典型的三级结构体系:子模式、模式、存储模式。相应的数据定义语言分别称为子模式定义语言SSDDL,模式定义语言SDDL,设备介质控制语言DMCL。另外还有数据 *** 纵语言DML。
演绎数据库
是指具有演绎推理能力的数据库。一般地,它用一个数据库管理系统和一个规则管理系统来实现。将推理用的事实数据存放在数据库中,称为外延数据库;用逻辑规则定义要导出的事实,称为内涵数据库。主要研究内容为,如何有效地计
算逻辑规则推理。具体为:递归查询的优化、规则的一致性维护等。
以上就是关于数据库有哪些种类全部的内容,包括:数据库有哪些种类、数据库为什么要分库分表、数据库设计分为哪几个步骤等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)