您的当前位置:首页正文

逻辑数据库设计 - 元数据分裂(分区表)

2023-11-09 来源:帮我找美食网

为了表述简单,我特意模拟了一张类似的表:

  CREATE TABLE NEWS(   Id int PK,   Title nvarchar(500) --新闻标题   Content text     --新闻内容     CreateTime DateTime)

随着时间的推移,数据库里的新闻变得越来越多,系统开始跑得越来越慢。随后,技术经理考虑到,舆情监控需要的仅仅是近期的数据,过时的数据,不太重要。于是,新建了一个表,该表以时间命名,字段一样:

  CREATE TABLE NEWS2009(   Id int PK,   Title nvarchar(500) --新闻标题   Content text     --新闻内容     CreateTime DateTime  )

1、不断产生的新表

照我的估计,这个数据库之后还会有

News2010,News2011,News2012.......

添加时需要选择表:

由于数据要被拆分到不同的表中,假如系统不似我的舆情监控系统一样,不断有不同时间的数据录入,那么根据不同的数据,选择不同的数据添加就成了你的责任。

  INSERT INTO NEWS2010 (2010年的数据)

特殊时间点:

如果元旦到了,你还在享受着美满的假期,突然客户打电话来,问系统为什么不监控了,shit,2013.1.1你忘了建新表。导致大量数据漏掉了,你难免比老板痛扁一顿。

2、管理数据完整性

加入某一天,你运行:

SELECT * FROM NEWS2009 WHERE CreateTime NOT BETWEEN ‘2009-01-01‘ AND ‘2009-12-31‘

结果居然有返回,那么你又有麻烦了。为了避免这种情况,你不得不对每一张新闻表添加约束,不在规定时间内的数据,不允许添加规定的表。

3、同步数据

突然,产品经理要求将几条数据的CreateTime由进库时间,改为新闻网站的发布时间。例如有一点时是2010-01-02,但实际发布时间稍早是2009-12-31。

你满怀自信兴冲冲地敲入:

  UPDATE NEWS2010   SET CreateTime = ‘2009-12-31‘  WHERE Id = 12345

运行时,突然一想,这数据变成了一条无效数据,它应该存入NEWS2009这张表中。UPDATE无用了,你必须添加进NEWS2010然后再删除本条数据。

4、确保唯一性

分割出来的数据,其主键要在所有年份的表里都是唯一的,如果你要从NEWS2010表移一条数据到NEWS2009表,那么你得确保主键不会冲突。你不得不自己实现主键策略。

5、跨表查询

假如老板要每年2月14号的数据报表。你不得不拼命地

技术分享
SELECT * FROM NEWS2009UNIONSELECT * FROM NEWS2010UNIONSELECT * FROM NEWS2011...
技术分享

6、同步元数据

假如产品经理突然要求所有新闻添加一个字段,那么你不得不ALTER多张表。

7、管理引用完整性

假如产品经理要求评论也一起抓取回来,NEWS表的NEWSID不行被Comments评论表引用,那么这个外键不得不被关键多张表。

解决方案 - 分区表

基于以上种种分析,明显已经看出,这样的设计不是一个好的设计。

对于这种时间效应比较强,数据比较多的表,我们应该博览群魔,分区表。

关于分区表的实现,之前已经写过http://www.cnblogs.com/kissdodog/p/3156758.html

 

逻辑数据库设计 - 元数据分裂(分区表)

标签:

小编还为您整理了以下内容,可能对您也有帮助:

数据库逻辑结构设计包含哪些内容

逻辑结构设计是将概念结构设计阶段完成的概念模型,转换成能被选定的数据库管理系统(DBMS)支持的数据模型。这里主要将E-R模型转换为关系模型。需要具体说明把原始数据进行分解、合并后重新组织起来的数据库全局逻辑结构,包括所确定的关键字和属性、重新确定的记录结构和文件结构、所建立的各个文件之间的相互关系,形成本数据库的数据库管理员视图。

逻辑结构设计一般分为三步进行:

1.从E-R图向关系模式转化数据库的逻辑设计主要是将概念模型转换成一般的关系模式,也就是将E-R图中的实体、实体的属性和实体之间的联系转化为关系模式。在转化过程中会遇到如下问题:

(1)命名问题。命名问题可以采用原名,也可以另行命名,避免重名。

(2)非原子属性问题。非原子属性问题可将其进行纵向和横行展开。

(3)联系转换问题。联系可用关系表示。

2.数据模型的优化数据库逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该适当修改数据模型的结构,提高查询的速度。

3.关系视图设计关系视图的设计又称为外模式的设计,也叫用户模式设计,是用户可直接访问的数据模式。同一系统中,不同用户可有不同的关系视图。关系视图来自逻辑模式,但在结构和形式上可能不同于逻辑模式,所以它不是逻辑模式的简单子集。

关系视图主要有三个作用:

(1)通过外模式对逻辑模式的屏蔽,为应用程序提供了一定的逻辑性。

(2)更好地适应不同用户对数据的不同需求。

(3)为不同用户划定了访问数据的不同范围,有利于数据的保密。

oracle数据库的逻辑结构包括

Oracle数据库的逻辑结构包括表空间、段、区、块。

1、块(Block)

是用来管理存储空间的最基本的单位,也是最小的逻辑存储单位。

2、区(Extent)

是Oracle存储分配的最小单位,它是由一个或多个数据块组成的。

3、段(Segment)

是一组盘区,它是一个的逻辑存储结构,用于存储具有存储结构对象的全部数据。

4、表空间(Tablespace)

是Oracle最大的逻辑存储结构,与物理上的数据文件相对应,但是一个表空间可以拥有多个数据文件。

ORACLE数据系统简介

ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。

比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。

Oracle数据库最新版本为Oracle Database 20c。Oracle数据库12c 引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。

数据库设计的四个阶段

数据库设计的四个阶段是:
1、系统需求分析阶段:数据库设计的第一步,就是了解与分析用户需求,确定系统边界信息需求、处理需求、安全性和完整性需求,然后编写系统分析报告。
2、概念结构设计阶段:概念结构设计,就是将上一阶段通过需求分析得到的用户需求抽象为概念结构,或称为概念模型(整个过程,其实就是我们前面提到的自底向上的分析)。描述概念模型的有力工具是E-R模型。
3、逻辑结构设计阶段:数据库逻辑设计,则是将上一阶段的概念结构转换成特定DBMS所支持的数据模型的过程。
4、物理结构设计阶段:物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构。

数据库设计的四个阶段

数据库设计的四个阶段是:
1、系统需求分析阶段:数据库设计的第一步,就是了解与分析用户需求,确定系统边界信息需求、处理需求、安全性和完整性需求,然后编写系统分析报告。
2、概念结构设计阶段:概念结构设计,就是将上一阶段通过需求分析得到的用户需求抽象为概念结构,或称为概念模型(整个过程,其实就是我们前面提到的自底向上的分析)。描述概念模型的有力工具是E-R模型。
3、逻辑结构设计阶段:数据库逻辑设计,则是将上一阶段的概念结构转换成特定DBMS所支持的数据模型的过程。
4、物理结构设计阶段:物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构。

具体的数据库设计与实现过程

大致的讲主要是根据用户的需求,然后设计数据库的E-R模型,然后将E-R模型图转换为各种表,并对其进行数据库设计范式(范式因不同书籍有不同)的审核,然后进行数据库的实施,然后运行维护。

一句话来讲就是将用户的需求变成带有各种关系的表,以及其它的数据库结构,然后供编程使用

具体如下:

按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下六个阶段

(1)需求分析。

(2)概念设计。

(3)逻辑设计。

(4)物理设计。

(5)数据库实施。

(6)数据库运行和维护。

5.1.1需求分析阶段

进行数据库设计首先必须准确了解与分析用户需求,包括数据与处理需求。需求分析是整个设计过程的基础,是最困难、最耗时的一步。作为“地基”的需求分析是否做得充分与准确,决定了在其上构建“数据库大厦”的速度与质量。需求分析做得不好,可能会导致整个数据库重新设计,因此,务必引起高度重视。

5.1.2概念模型设计阶段

在概念设计阶段,设计人员仅从用户角度看待数据及其处理要求和约束,产生一个反映用户观点的概念模式,也称为“组织模式”。概念模式能充分反映现实世界中实体间的联系,又是各种基本数据模型的共同基础,易于向关系模型转换。这样做有以下好处:

(1)数据库设计各阶段的任务相对单一化,设计复杂程度得到降低,便于组织管理。

(2)概念模式不受特定DBMS的,也于存储安排,因而比逻辑设计得到的模式更为稳定。

(3)概念模式不含具体的DBMS所附加的技术细节,更容易为用户所理解,因而能准确地反映用户的信息需求。

概念模型设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个于具体DBMS的概念模型。如采用基于E-R模型的数据库设计方法,该阶段即将所设计的对象抽象出E-R模型;如采用用户视图法,则应设计出不同的用户视图。

5.1.3逻辑模型设计阶段

逻辑模型设计阶段的任务是将概念模型设计阶段得到的基本E-R图,转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。如采用基于E-R模型的数据库设计方法,该阶段就是将所设计的E-R模型转换为某个DBMS所支持的数据模型;如采用用户视图法,则应进行表的规范化,列出所有的关键字以及用数据结构图描述表集合中的约束与联系,汇总各用户视图的设计结果,将所有的用户视图合成一个复杂的数据库系统。

5.1.4数据库物理设计阶段

数据库的物理结构主要指数据库的存储记录格式、存储记录安排和存取方法。显然,数据库的物理设计完全依赖于给定的硬件环境和数据库产品。在关系模型系统中,物理设计比较简单一些,因为文件形式是单记录类型文件,仅包含索引机制、空间大小、块的大小等内容。

物理设计可分五步完成,前三步涉及到物理结构设计,后两步涉及到约束和具体的程序设计:

(1)存储记录结构设计:包括记录的组成、数据项的类型、长度,以及逻辑记录到存储记录的映射。

(2)确定数据存放位置:可以把经常同时被访问的数据组合在一起,“记录聚簇(cluster)”技术能满足这个要求。

(3)存取方法的设计:存取路径分为主存取路径及辅存取路径,前者用于主键检索,后者用于辅助键检索。

(4)完整性和安全性考虑:设计者应在完整性、安全性、有效性和效率方面进行分析,作出权衡。

(5)程序设计:在逻辑数据库结构确定后,应用程序设计就应当随之开始。物理数据性的目的是消除由于物理结构的改变而引起对应用程序的修改。当物理性未得到保证时,可能会引发对程序的修改。

数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构,包括存储结构和存取方法。

5.1.5数据库实施阶段

根据逻辑设计和物理设计的结果,在计算机系统上建立起实际数据库结构、装入数据、测试和试运行的过程称为数据库的实施阶段。实施阶段主要有三项工作。

(1)建立实际数据库结构。对描述逻辑设计和物理设计结果的程序即“源模式”,经DBMS编译成目标模式并执行后,便建立了实际的数据库结构。

(2)装入试验数据对应用程序进行调试。试验数据可以是实际数据,也可由手工生成或用随机数发生器生成。应使测试数据尽可能覆盖现实世界的各种情况。

(3)装入实际数据,进入试运行状态。测量系统的性能指标,是否符合设计目标。如果不符,则返回到前面,修改数据库的物理模型设计甚至逻辑模型设计。

5.1.6数据库运行和维护阶段

数据库系统正式运行,标志着数据库设计与应用开发工作的结束和维护阶段的开始。运行维护阶段的主要任务有四项:

(1)维护数据库的安全性与完整性:检查系统安全性是否受到侵犯,及时调整授权和密码,实施系统转储与备份,发生故障后及时恢复。

(2)监测并改善数据库运行性能:对数据库的存储空间状况及响应时间进行分析评价,结合用户反应确定改进措施。

(3)根据用户要求对数据库现有功能进行扩充。

(4)及时改正运行中发现的系统错误。

数据库是农业信息化的重要基础,简述设计数据库的步骤及基本要求有哪些?

步骤及基本要求如下:

1.需求分析阶段(常用自顶向下)

进行数据库设计首先必须准确了解和分析用户需求(包括数据与处理里)。需求分析是整个设计过程的基础,也是最困难,最耗时的一步。需求分析是否做得充分和准确,决定了在其上构建数据库大厦的速度与质量。需求分析做的不好,会导致整个数据库设计返了重做。

需求分析的任务,是通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种需求,然后在此基础上确定新的系统功能,新系统还得充分考虑今后可能的扩充与改变,不仅仅能够按当前应用需求来设计。调查的重点是,数据与处理。

达到信息要求,处理要求,安全性和完整性要求分析方法常用SA(Structured Analysis)结构化分析方法,SA方法从最上层的系统组织结构入手,采用自顶向下,逐层分解的方式分析系统。

2.概念结构设计阶段(常用自底向上)

概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合,归纳与抽象,形成了一个于具体DBMS的概念模型。

3.逻辑结构设计阶段(E-R图)

逻辑结构设计是将概念结构转换为某个DBMS所支持的数据居模型,并将进行优化。

4.物理设计阶段

物理设计是为逻辑数据结构模型选取一个最适合应用环境的物理结构(包括存储结构和存取方

法)。

5.数据库实施阶段

数据库实施阶段,设计人员运营DBMS提供的数据库语言(如sql)及其宿主语言,根据逻辑设计

和物理设计的结果建立数据库,编制和调试应用程序,组织数据入库,并进行试运行。

6.数据库运行和维护阶段

数据库应用系统经过试运行后,即可投入正式运行,在数据库系统运行过程中必须不断地对其进行

评价,调整,修改。

Top