CN100520775C - 将最佳实施集成进数据库设计 - Google Patents

将最佳实施集成进数据库设计 Download PDF

Info

Publication number
CN100520775C
CN100520775C CNB2005100758744A CN200510075874A CN100520775C CN 100520775 C CN100520775 C CN 100520775C CN B2005100758744 A CNB2005100758744 A CN B2005100758744A CN 200510075874 A CN200510075874 A CN 200510075874A CN 100520775 C CN100520775 C CN 100520775C
Authority
CN
China
Prior art keywords
database
practice
best code
proposal
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2005100758744A
Other languages
English (en)
Other versions
CN1716250A (zh
Inventor
C·克莱纳曼
E·P·加登
M·S·拉希姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1716250A publication Critical patent/CN1716250A/zh
Application granted granted Critical
Publication of CN100520775C publication Critical patent/CN100520775C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/213Schema design and management with details for schema evolution support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

将最佳实施准则集成进数据库应用程序的设计,因此不太可能设置出不适当的值。数据库对象的提议值可与最佳实施准则的存档记录比较。如果提议值没有遵循最佳实施准则,则可提供最佳实施推荐,并可提供在操纵数据库对象或设置持久保存前将提议值修改为推荐值的机会。

Description

将最佳实施集成进数据库设计
技术领域
本发明涉及计算,尤其是将最佳实施准则集成进数据库设计。
背景技术
数据库设计涉及对象的创建,包括数据库、表、视图、存储过程、数据类型、触发器、索引等等。这些对象具有必须关联值的属性,彼此或者是孤立的,或者是相关的。通常,在数据库对象的创建中,要执行一或多个验证过程来确保设置值的正确性。一般地,在正确性验证后,由数据库系统执行创建语句,引起对象的创建或者数据库对象设置的持久保存。
尽管值的有效性或正确性是在创建对象之前判定,但值一般不对适合性检查。给定值可能适合于一个数据库设计,但同样的值,尽管正确,不适合于另一数据库设计。给定值是否适合于特定数据库对象一般由应用指定,并可能取决于赋给相关对象的值。另外,给定值是否适合于特定对象可能随时间变化或发展。不合适的值或一组值可能影响数据库应用程序的性能、可用性和安全性,因此适当地设置值是至关重要的。
如果有种方法,能够在创建数据库对象前确保适当地设置数据库对象值从而不太可能设置出不合适的值,那会很有帮助的。
发明内容
最佳实施准则集成于数据库应用程序的设计中,因而不太可能设置不合适的值。数据库对象的提议值可与最佳实施准则的存档记录比较。如果提议值没有遵循最佳实施准则,则可提供最佳实施推荐,并可提供在操纵数据库对象或设置持久保存前将提议值修改为推荐值的机会。也可提供覆盖推荐值的机会。
一种用于将最佳实施集成进数据库设计的系统,包括一最佳实施分析器,它接收一关联于用于数据库对象的对象操纵的提议对象操纵语句,并在执行所述对象操纵之前将所述提议对象操纵语句与用于所述数据库对象的最佳实施规则相比较;以及最佳实施规则数据存储器,其中所述最佳实施分析器选择一个最佳实施规则以根据所接收的提议对象操纵语句为所述数据库对象提供一选择的最佳实施规则,所选择的最佳实施规则包括属性的推荐值,并且在执行所述对象操纵之前,所述最佳实施分析器将所述提议对象操纵语句的提议值和所选择的最佳实施规则的推荐值进行比较,其中所选择的最佳实施规则是存储在最佳实施规则数据存储器中的用于多个数据库对象的多个最佳实施规则之一,其中所选择的最佳实施规则被集成到数据库的设计中去。
根据本发明的另一方面,一种用于将最佳实施集成进数据库设计的方法,包括:接收用于数据库的数据库对象的对象操纵语句,所述对象操纵语句包括所述数据库对象的一个属性的值;通过选择一个最佳实施规则以从最佳实施规则数据存储器中的多个最佳实施规则中为所述数据库对象提供一选择的最佳实施规则,并将对象操纵语句中的属性的值和所选择的最佳实施规则的属性的值进行比较,以在所述数据库设计环境中分析所述对象操纵语句;根据所述比较判定所述值遵循于所述数据库对象的所选择的最佳实施规则;以及响应于判定所述值遵循用于所述数据库对象的最佳实施规则,持久保存所述数据库对象属性的值,并将所选择的最佳实施规则集成到数据库设计中,其中通过修改所述数据库对象的所述值使得其遵循于所述最佳实施规则来将所述最佳实施规则集成到数据库的设计中。
根据本发明的又一方面,一种用于将最佳实施集成进数据库设计的方法,包括:接收用于数据库的数据库对象的对象操纵语句,所述对象操纵语句包括关联于所述数据库对象的值;通过选择一个最佳实施规则以从最佳实施规则数据存储器中的多个最佳实施规则中为所述数据库对象提供一最佳实施规则,并将对象操纵语句中的属性的值和所选择的最佳实施规则的属性的值进行比较,以分析所述对象操纵语句;以及响应于判定所述值未能遵循用于所述数据库的数据库对象的最佳实施规则,在按照所述对象操纵语句操纵所述数据库对象之前提供关联于所述最佳实施规则的信息。
根据本发明的再一方面,一种用于分析数据库对象的提议属性设置以判定所述提议属性设置是否遵循一最佳实施规则的系统,包括:一最佳实施分析器,接收用于数据库的所述数据库对象的所述提议属性设置,并在持久保存所述数据库对象之前提供所述数据库对象的最佳实施属性设置,其中通过修改所述提议属性设置使得其遵循于所选择的最佳实施规则,来将所选择的最佳实施规则集成到数据库中;一最佳实施规则数据存储器,用于存储至少一条最佳实施规则,以在数据库环境内为所述数据库对象设置所述提议属性设置;以及一应用编程接口,用于接收关联于所述提议属性设置的信息,并在所述数据库中持久保存所述提议属性设置。
附图说明
以上概述及以下说明性实施例的详细描述将在结合附图阅读时得到更好地理解。为了说明本发明,附图中示出了本发明的示例结构;然而,本发明不限于所公开的特定方法和工具。在附图中:
图1是一方框图,示出在其中可实现本发明各方面的示例计算环境;
图2是依照本发明的一个实施例将最佳实施集成进数据库设计的方法的流程图;
图3是依照本发明的一个实施例将最佳实施集成进数据库设计的系统的方框图;
图4是依照本发明的一个实施例将最佳实施集成进数据库设计的系统的方框图,它示出系统内的信息流;以及
图5是依照本发明的一个实施例将最佳实施集成进数据库设计的另一方法的流程图。
详细说明
概述
假设规划一可通过因特网订购的新的商品数据库。假设数据库对象包括相关于数据库容量和增长的属性。数据库的“FILEGROWTH(文件增长)”属性可指出当数据库填满并需要更多空间时可以增长多少。“FILEGROWTH”可指出数据库增长是以一固定量(例如每次达到空间限制时,在数据库容量上增加另外的90兆空间)还是特定百分比(例如每次达到空间限制时,在为数据库分配的空间上增加初始或现有数据库容量的另外10%)增量的。
假设商品数据库的容量初始设置为10兆,而增长属性按10%设置到FILEGROWTH。如果在系统可能最忙的这天当中达到了数据库空间限制,顾客或许会感觉到由于自动增长,进程响应慢下来了。因此,按10%设置经常更新的、十兆数据库的增长属性到FILEGROWTH可以认为是非期望的。开始就创建更大的数据库(例如一百兆数据库)并且按20%在半夜安排其增长可能是更好的实施,那个时候可能只有较少的顾客。
按照本发明的一些实施例,交互式最佳实施分析器可在数据库建立时调用。交互式最佳实施分析器可查阅已知关于新数据库的信息和/或基于最佳实施的值的存档记录来确定正在建立的特定数据库的最佳实施准则。响应于接收数据库中对象属性的提议设置(值),返回关于提议值的反馈,因此数据库对象属性的合适值更有可能被选择。
类似地,现有数据库可能随时间变化,因而数据库的初始特征不再有效。按照本发明的一些实施例,为遵循最佳实施准则而分析对现有数据库进行的修改。可提供关于对最佳实施准则的遵循的反馈。
示例计算环境
图1及以下讨论旨在提供本发明在其中可实现的合适计算环境的简要描述。但是应该理解,手持式、便携式和其它各种计算设备都可考虑连同本发明一起使用。尽管以下描述了通用计算机,但这是个示例,且本发明只需要具有网络服务器互通性和交互性的瘦客户机。这样,本发明可在网络化主机服务的环境中实现,其中只牵涉很少或最少的客户机资源,例如其中客户机设备只作为到万维网的浏览器或接口的网络化环境。
尽管不需要,本发明可通过应用编程接口(API)实现,由开发者使用,和/或包括在网络浏览软件内,后者将在由诸如客户工作站、服务器或其它设备的一或多台计算机执行、诸如程序模块的计算机可执行指令的通用环境中描述。通常,程序模块包括执行特定任务或实现特定抽象数据结构的例程、程序、对象、组件、数据结构等。一般地,程序模块的功能可以按期望与各种实施例结合或分布。而且,本领域熟练技术人员将理解,本发明可用其它计算机系统配置实施。其它可能适用于本发明的众所周知的计算系统、环境和/或配置包括,但不限于,个人计算机(PC)、自动化播音机器、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器系统、可编程消费电子产品、网络PC、小型机、主机计算机等等。本发明还可在分布式计算环境中实施,其中任务由通过通信网络或其它数据传输介质连接的远程处理设备完成。在分布式计算环境中,程序模块可位于包括存储器存储设备的本地和远程计算机存储介质中。
图1如此示出了本发明在其中可以实现的合适计算系统环境100的示例,尽管如上所澄清的,计算环境100只是合适计算环境的一个示例,而非旨在建议任何对于本发明的使用或功能范围的限制。计算环境100不应解释为具有相关于任何示例操作环境100中所示的任一组件或其组合的任何依赖性或需求。
参考图1,实现本发明的示例系统包括计算机100形式的通用计算设备。计算机110的组件可包括,但不限于,处理单元120、系统存储器130和将包括系统存储器在内的各种系统组件连接到处理单元120上的系统总线121。系统总线121可以是任意几种类型的总线结构,包括存储器总线或存储器控制器、外围设备总线和使用各种各样总线结构的任意一种的局域总线。作为示例而非限制,这种结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局域总线和外设组件互联(PCI)总线(也称为Mezzanine总线)。
计算机110一般包括各种计算机可读介质。计算机可读介质可以是任意可由计算机110访问的可用介质并包括易失性和非易失性、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括用诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任意存储方法或技术所实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CDROM、数字通用盘(DVD)或其它光盘存储器、磁带盒、磁带、磁盘存储器、或另外磁存贮器或任意其它可用来存储所需信息并能由计算机110访问的其它介质。通信介质一般包含计算机可读指令、数据结构、程序模块或诸如载波或其它传输机制的调制数据信号中的其它数据并包括任意信息传送介质。术语“调制数据信号”意指具有以在信号中编码信息这样的方式设置或修改的一或多个其特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线缆连接的有线介质和诸如声波、RF、红外和其它无线介质的无线介质。上述任意的组合也应该包括在计算机可读介质范围内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)131和随机访问存储器(RAM)132。基本输入/输出系统133(BIOS),包含在诸如启动期间帮助计算机110内元件间传送信息的基本例程,一般存储在ROM131内。RAM132一般包含由处理单元120立即访问和/或现在正在操作的数据和/或程序模块。作为示例而非限制,图1示出操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。作为示例,图1示出读取或写入不可移动、非易失性磁介质的硬盘驱动器141、读取或写入可移动、非易失性磁盘152的磁盘驱动器151和读取或写入可移动、非易失性光盘156,诸如CD ROM或其它光介质的光盘驱动器155。其它可用于示例操作环境的可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字通用盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141一般通过诸如接口140的不可移动存储接口连接到系统总线121上,而磁盘驱动器151和光盘驱动器155一般通过诸如接口150的可移动存储接口连接到系统总线121上。
以上讨论和示于图1的驱动器及其相关计算机存储介质为计算机110提供计算机可读指令、数据结构、程序模块和其它数据的存储。在图1中,例如,硬盘驱动器141示出为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。这里给以操作系统144、应用程序145、其它程序模块146和程序数据147不同的数字表示,最少,它们是不同的拷贝。用户可通过诸如键盘162和通常指鼠标、轨迹球或触摸板的定点设备161输入命令和信息。其它输入设备(未示出)可包括话筒、游戏杆、游戏板、卫星天线、扫描仪等。这些和其它输入设备常常通过连接在系统总线121上的用户输入接口160连接到处理单元120上,但也可由诸如并行端口、游戏端口或通用串行总线(USB)的其它接口和总线结构连接。
监视器191或其它类型的显示设备也可通过诸如视频接口190的接口连接到系统总线121。诸如北桥(Northbridge)等图形接口182也可连接到系统总线121。北桥是与CPU或主机处理单元120通信的芯片组,并承担加速图形端口(AGP)通信的责任。一或多个图形处理单元(CPU)184可与图形接口182通信。在这点上,GPU184通常包括片内存储器存储,诸如寄存器存储,且GPU184与视频存储器186通信。但是,GPU184只是协处理器的一个示例,且因而各种协处理器设备可包括在计算机110中。监视器191或其它类型的显示设备也可通过诸如视频接口190的接口连接到系统总线121,接口可依次与视频存储器186通信。除了监视器191外,计算机还可包括其它外围输出设备,诸如扬声器197和打印机196,它们可通过输出外围接口195连接。
计算机110可使用到诸如远程计算机180的一或多台远程计算机的逻辑连接运行于网络化环境。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它普通网络节点,并一般包括许多或所有上述关于计算机110的元件,尽管图1中只示出了存储器存储设备181。图1所示的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但还可包括其它网络。这样的网络环境在办公室、企业范围计算机网络、内联网和因特网上是很普遍的。
当用于LAN网络环境时,计算机110可通过网络接口或适配器170连接到LAN171。当用于WAN网络化环境时,计算机110一般包括调制解调器172或其它用于在诸如因特网的WAN173上建立通信的装置。调制解调器172,可以是内置的或外置的,可通过用户输入接口160或其它适当的机制连接到总线121。在网络化环境中,所述相关于计算机110的程序模块或其部分可以存储在远程存储器存储设备中。作为示例,而非限制,图1示出远程应用程序185为驻留在存储器设备181上。将要理解,所示网络连接是示例性的,且可使用在计算机之间建立通信连接的其它方法。
本领域普通技术人员能够理解,计算机110或其它终端设备可布署为计算机网络的一部分。在这点上,本发明适合于任何具有任意数量存储器或存储单元或容量的任意计算机系统,且任意数量的应用程序和过程跨任意数量的存储单元或容量发生。本发明可应用于带有布署在网络环境中的服务器计算机和客户端计算机的环境,具有远程或本地存储器。本发明还可应用于独立计算机设备,它具有编程语言功能、解释和执行能力。
最佳实施准则到数据库设计的集成
图2是用于将最佳实施准则集成到数据库设计的示例方法200的流程图。方法200的一或多步骤是可选的。
在步骤202,可接收到提议对象操纵语句或一组语句。在本发明的一些实施例中,对象操纵语句可包括诸如但不限于BACKUP(备份)和RESTORE(恢复)的操作。示例对象操纵语句可包括CREATE(创建)、ALTER(变更)、DROP(丢弃)、SHRINK(缩减)、ATTACH(附加)、DETACH(分离)、BACKUP和RESTORE语句以及其它语句。在本发明的一些实施例中,对象操纵语句提供于数据定义语言(DDL)中,诸如ANSI(美国国家标准协会)SQL DDL,尽管所预期的本发明不限于此。
在本发明的一些实施例中,验证提议对象操纵语句来判定要赋值给数据库对象的提议值是否有效或正确,即,这样的值是否是对象的允许值。可执行一或多层验证。
在步骤204,提议值可与被视为表示对于类型在其上创建、设计、变更或操作的数据库的最佳实施的存档值比较。
在步骤206,可分析语句来判定它是否遵循最佳实施,即是否该值被视为是对象所关联的特定数据库的适当值。在步骤208,如果语句遵循最佳实施,可按照对象操纵语句操纵对象(例如,对象可创建或更改,属性值持续不变等)。在步骤210,如果语句不遵循最佳实施,可返回包括关联于相关最佳实施准则信息的反馈。返回的反馈可包括接收推荐的较完全解释的选项。反馈还可在执行操纵前提供遵循最佳实施准则的值。
在步骤212,可提供修改提议值的机会。如果提议值修改为遵循最佳实施推荐,可在步骤208执行操纵。在步骤214,可提供覆盖最佳实施推荐的机会。如果推荐被覆盖,操纵可在步骤208执行,使用非遵从值。
假设,例如,用户想要创建一存储过程来返回给定订单的销售信息。用户可输入以下内容(步骤202):
Figure C200510075874D00121
在步骤204,可分析该创建过程(Create Procedure),且可判定用以“sp_”开始的名字调用此过程不是最佳实施。在步骤210,可用对话框形式返回反馈,它包括诸如这样的消息:“你用了sp_作为你的存储过程的命名约定。这不是最佳实施。推荐的命名约定为:‘usp_’。要看为什么这不是最佳实施的更多信息请选择X。”即,在这个示例中,以上存储过程的合适名字应该是usp_CustOrdersDetail。因此,最佳实施遵从的存储过程可如下:
Figure C200510075874D00131
在步骤212,可提供修改存储过程的机会。如果修改存储过程以遵循最佳实施推荐,可在步骤208创建对象。
图3是用于将最佳实施准则集成进数据库设计的系统的方框图。系统可用来创建新数据库对象或者更改或修改现有数据库对象。数据库对象可驻留在安装在一或多台计算机上的一或多个数据库中。用于将最佳实施准则集成进数据库设计的系统可驻留在诸如以上相关图1所述计算机110的计算机上,或者可跨通过如相关图1所述的通过网络连接的一或多台计算机分布。
按照本发明一些实施例的用于将最佳实施准则集成成数据库设计的系统可包括以下组件的一或多个:接口312,接收输入310并传输关联于输入310的信息到API(应用编程接口)模块314;API314,接收关联于输入310的信息并将关联于此的信息传输到最佳实施工具316;最佳实施工具316,从API314接收关联于输入310的信息并将关联于最佳实施的信息返回到API314;最佳实施规则数据存贮器322;以及一或多个诸如数据库302的数据库。
诸如数据库302的数据库可包括许多对象,诸如对象304、306等。对象304、306等可被创建、更改、改变、删除和/或在其上操作。这些对象可以关联于属性,诸如尺寸、所有权、安全等等。数据库302可以是关系数据库管理系统(RDMS),诸如微软SQL服务器、微软Access、Oracle、IBM DB2、Informix、Sybase、MySql、InterBase等。
数据存储器322可包括一或多个规则或最佳实施。在本发明的一些实施例中,有关联于数据库302和关联于数据库302内对象304、306等的一系列规则或最佳实施320a、320b、320c等。规则320a、320b、320c等可以是特定实现,即数据存储器322可只包括那些关联于具有可兼容于数据库302特征的数据库的最佳实施准则。可供选择地,规则320a、320b、320c等的数据存储器322可包括许多不同类型的数据库的最佳实施的数据存储器,从中可为针对数据库302的应用程序选择关联于象数据库302这样的数据库的最佳实施准则。
最佳实施工具316(在一些实施例中它可包括最佳实施引擎318)可读取一或多条规则320a、320b、320c等,它们告诉最佳实施引擎318如何按照最佳实施测试数据库302。在本发明的一些实施例中,最佳实施引擎318是可扩展的,即新规则可添加到规则库322中。
规则320a、320b、320c等可以有给定数据库内更大或更小的环境或适合程度。例如,一些规则事实上可应用于所有类型的数据库。其它规则只可应用于那些具有特定设置或特征的数据库。例如,一给定规则可根据数据库的大小、数据库的复杂性或根据数据库的某个特征或某组特征来应用。在本系统的一些实施例中,应用于数据库的该组规则可由要实现或修改的数据库的特征来判定。规则320a、320b、320c等可共同包括数据存储器322,实现为一个文件、文件集合、数据库等。数据存储器322或者一或多条规则320a、320b、320c等可驻留在计算机110和/或从诸如因特网的计算机网络上的远程站点上下载和/或可驻留在计算机网络内的一或多台计算机上。
在本发明的一些实施例中,接口312接收关于对象304、306等的输入310和关联于对象304、306等的属性。接口312可包括表示接口内粒度级别的一或多层。输入310可包括关联于对象304、306等的诸如备份、恢复、创建、更改或删除等对象操纵操作的信息。在一些实施例中,例如,输入310可包括创建或修改存储过程的一个或一组语句或改变数据库FILEGROWTH的ALTER语句,如上所述。输入可以在关联于RDMS的数据定义语言中。一些实施例中的接口312接收输入310并发送关联于输入310的信息到API314。一些实施例中的API314与最佳实施工具316通信并判定输入310是否遵循数据库302的最佳实施。
如果输入遵循最佳实施规则数据库322,在一些实施例中由API314按照输入310更新数据库302,保持创建的对象或设置等,如上所述。如果输入不遵循最佳实施规则数据库322,可通过API314和接口312返回指示,例如,特定设置未遵循最佳实施的消息。在一些实施例中,非遵从设置可被覆盖。在一些实施例中,非遵从设置可改变至预确定值。消息可通过显示屏上的对话框可编程地返回到程序模块,或通过任意合适的方法。
在本发明的一些实施例中,检查关联于对象组的设置组并由设置和对象的组合判定要应用的一或多条最佳实施规则。
图4是用于将最佳实施集成于数据库设计内的系统的方框图,示出组件间的交互。
由箭头450所指出的,输入402可提供到用户界面404。在本发明的一些实施例中,输入402可以是要进行实现或更改或如上所述的其它对象操纵操作的数据库的一或多个对象的一或多个属性的一或多个提议设置。输入402可由用户提供,诸如但不限于数据库管理员,或可通过自动数据库创建工具提供。如箭头452所指出的,用户界面404可与在用户界面404和数据库408之间接口的API406通信,提供API406以从输入402收集的信息和(可选地)关联于输入402的信息。在本发明的一些实施例中,API406可创建对象的工作拷贝。如箭头454所指出的,API406可与最佳实施分析器412的最佳实施引擎410接口,提供关于对象的信息和(可选地)关于数据库408的信息至最佳实施分析器412。如箭头456所指出的,最佳实施分析器412可判定有足够的信息可用于返回最佳实施信息到API406。最佳实施信息可如箭头458所指出的返回接口404。如箭头460所指出的,接口404可在显示器414上显示最佳实施信息,或者返回信息(例如,可编程地至另一模块)。
可供选择地,最佳实施分析器412可判定没有足够的信息可用于返回答案到API406,并可由箭头462所指出的,访问数据库408来判定什么已经为数据库408建立(例如,判定数据库内对象的环境)。如箭头464所指出的,信息可从数据库408返回到最佳实施分析器412。根据从API406和数据库408接收的信息,最佳实施分析器412可分析在数据库408环境内输入402中接收的提议设置并返回最佳实施信息至API406,如箭头466所指出的。此信息可如箭头468所指出的返回给接口404用于在显示器414上显示。
可供选择地,最佳实施分析器412可判定从API及可选地从数据库408接收的信息是否代表最佳实施并可返回此信息到API406(箭头472)。API406可更新数据库408(箭头474),保持所创建的、修改的或操纵的数据库对象。指出数据库已更新(保持的设置)的消息可通过API406和用户界面404返回。在这点上,处理可重复直至会话结束。
最佳实施信息可包括诸如提议设置为什么不组成最佳实施的解释、关于设置应该是什么的推荐、关于最佳实施推荐的进一步信息的位置等的信息。在本发明的一些实施例中,最佳实施推荐可被覆盖。可供选择地,可强制一些最佳实施推荐。
图5是依照本发明一些实施例用于将最佳实施集成进数据库设计的方法的流程图。该方法的一或多个步骤是可选或可省略的。在步骤502可接收输入。如上所述,输入可以是数据库中对象的提议设置。例如,假设用户正建立大型(一兆兆字节)企业级商品数据库的备份策略。在这种情况下,输入可表示数据库A每天太平洋标准时间下午3点全部备份。
在步骤504,输入信息可发送到API。例如,数据库A 3pm PST/一天一次的备份时间/频率可发送至API。API可创建带有3pm PST/一天一次设置的备份对象的拷贝。
在步骤506,关联于输入信息的信息可发送到最佳实施分析器。例如,数据库A 3pm PST/一天一次的备份时间/频率可发送至最佳实施分析器。
在步骤508,可对完备性检查输入信息。如果不需要附加信息,处理可继续至步骤516。如果需要附加信息,处理可继续至步骤512。例如,如果接收的输入不包括关联于数据库大小、数据库特性和数据库可能多久改变的指示等的信息,最佳实施分析器可判定不存在足够的信息来返回最佳实施推荐。在步骤512,可访问数据库来检索所需信息(步骤514)。例如,在步骤512,可访问数据库A来确定附加信息。从数据库A返回的信息(步骤514)可指出数据库A是用于在因特网上购买可访问的高-交易-容量、企业-级、一-兆兆字节商品数据库。
在步骤516,最佳实施分析器可分析输入信息和从数据库检索的信息。例如,最佳实施分析器可分析数据库A的输入信息备份时间/3pm PST的频率/一天一次以及从数据库检索的信息:可在因特网上为购买而访问的高交易、企业级、一兆兆商品数据库。在步骤518,最佳实施分析器可判定步骤502接收的输入是否包括最佳实施(对于静态规则)或可判定在步骤514从数据库检索到的信息环境内在步骤502接收到的输入(对于动态规则)是否包括最佳实施。如果是这样,处理继续至步骤524且数据库中适当对象的属性更新或设置(持久保存)且处理返回至步骤502。如果不是这样,处理可继续在步骤520,且最佳实施信息在步骤520返回到API及在步骤522返回到接口。在这点上,处理可为要接收的附加输入返回至步骤502。可供选择地,最佳实施推荐可覆盖,且数据库设计可用提议设置更新。
将要理解,以上所引用的属性示例(即对于快速增长的数据库的频繁的“autogrow”选项或者在3pm PST创建大型繁忙数据库的全备份),是适于某些数据库而不适于其它的设置示例。这样一条规则的分析可要求数据库如以上关于步骤512和514所述被访问。例如,设置数据库为频繁自动增长不一定是坏的实施。例如,微软的SQL SERVER的频繁自动增长特性可能适合于具有相对小负载的小数据库,但可能数据库越大、负载越大而变得越来越不合适,直到在某一点频繁自动增长不再认为是最佳实施。
同样地,一天一次在3pm PST设置全备份可能完全适合于很少用的家庭数据库,而完全不适合于一天更新数千万次的大型公共数据库。
其它数据库对象属性可实际应用于所有数据库。如上关于步骤512和514所述的访问数据库可能不是必需的。这样一个属性的示例可以是一段称为存储过程的功能代码的命名。用始于“sp_”的名字命名存储过程鉴于访问速度的原因可能被认为是坏实施。
将要理解,当以上实施例在数据库系统的环境内描述时,所预期的本发明并非如此限制。例如,以上所述可应用于任何包括但不限于包括如下的服务器产品:微软SQL Server、微软Access、Oracle、IBM DB2、Informix、Sybase、MySql、InterBase等。同样地,尽管以上是在由面向对象语言实现的对象的环境内描述的,但预期的本发明并非如此限制,任何编程技术或编程技术的组合都可在所讨论的服务器产品的代码和实现中使用。
这里所述的各种技术都可结合硬件或软件,或在合适的地方与两者的结合,实现。这样,本发明的方法和装置或其某些方面或部分,可表现为嵌入在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质中的程序代码(即指令)的形式,其中,当程序代码载入并由诸如计算机的机器执行时,机器成为实施本发明的一种装置。在可编程计算机上程序代码执行的情况下,计算设备通常将包括处理器、可由处理器读取的存储介质(包括易失性和非易失性存储器和/或存储元件)至少一个输入设备以及至少一个输出设备。可利用本发明的特定领域创建和/或实现的程序模型方面的一或多个程序,例如,通过数据处理API等的使用,可较佳地以高级过程或面向对象语言实现,来与计算机系统通信。然而,程序可用汇编或机器语言实现,如果希望的话。在任意情况下,语言可以是编译或解释语言,并可与硬件实现结合。
尽管本发明已连同各附图的实施例描述,要理解可使用其它类似的实施例或者可对所述实施例进行修改和添加,以不偏离本发明而完成本发明同样的功能。因此,本发明不应限制于任意单个实施例,而且应该依照所附权利要求书的广度和范围来解释本发明。

Claims (20)

1.一种用于将最佳实施准则集成进数据库设计的系统,其特征在于,包括:
一最佳实施分析器,它接收一关联于用于数据库对象的对象操纵的提议对象操纵语句,并在执行所述对象操纵之前将所述提议对象操纵语句与用于所述数据库对象的最佳实施规则相比较;以及
最佳实施规则数据存储器,其中所述最佳实施分析器选择一个最佳实施规则以根据所接收的提议对象操纵语句为所述数据库对象提供一选择的最佳实施规则,所选择的最佳实施规则包括属性的推荐值,并且在执行所述对象操纵之前,所述最佳实施分析器将所述提议对象操纵语句的提议值和所选择的最佳实施规则的推荐值进行比较,其中所选择的最佳实施规则是存储在最佳实施规则数据存储器中的用于多个数据库对象的多个最佳实施规则之一,其中所选择的最佳实施规则被集成到数据库的设计中去。
2.如权利要求1所述的系统,其特征在于,响应于判定所述提议对象操纵语句未能遵循用于所述数据库对象的最佳实施规则,所述最佳实施分析器返回用于所述对象操纵的最佳实施推荐。
3.如权利要求1所述的系统,其特征在于,响应于判定所述提议对象操纵语句遵循用于所述数据库对象的最佳实施规则,由应用编程接口执行所述对象操纵。
4.如权利要求1所述的系统,其特征在于,还包括一接口,用于接收所述提议对象操纵语句并传送关联于所述提议对象操纵语句的信息到一应用编程接口模块,所述应用编程接口模块传送关联于所述提议对象操纵语句的信息到所述最佳实施分析器。
5.如权利要求1所述的系统,其特征在于,还包括一应用编程接口,它从所述最佳实施分析器传送最佳实施推荐到用户界面。
6.如权利要求1所述的系统,其特征在于,还包括一应用编程接口,它执行所述对象操纵。
7.如权利要求1所述的系统,其特征在于,所述最佳实施分析器选择用于所述数据库对象的最佳实施规则,并将所述最佳实施规则应用于所述提议对象操纵语句来判定所述对象操纵是否遵循推荐的实施。
8.如权利要求1所述的系统,其特征在于,所述数据库是SQL数据库。
9.如权利要求1所述的系统,其特征在于,所述提议对象操纵语句包括备份操作和恢复操作。
10.如权利要求1所述的系统,其特征在于,所述提议对象操纵语句包括提议属性设置。
11.一种用于将最佳实施集成进数据库设计的方法,其特征在于,包括:
接收用于数据库的数据库对象的对象操纵语句,所述对象操纵语句包括所述数据库对象的一个属性的值;
通过选择一个最佳实施规则以从最佳实施规则数据存储器中的多个最佳实施规则中为所述数据库对象提供一选择的最佳实施规则,并将对象操纵语句中的属性的值和所选择的最佳实施规则的属性的值进行比较,以在所述数据库设计环境中分析所述对象操纵语句;
根据所述比较判定所述值遵循于所述数据库对象的所选择的最佳实施规则;以及
响应于判定所述值遵循用于所述数据库对象的最佳实施规则,持久保存所述数据库对象属性的值,并将所选择的最佳实施规则集成到数据库设计中,其中通过修改所述数据库对象的所述值使得其遵循于所述最佳实施规则来将所述最佳实施规则集成到数据库的设计中。
12.一种用于将最佳实施集成进数据库设计的方法,其特征在于,包括:
接收用于数据库的数据库对象的对象操纵语句,所述对象操纵语句包括关联于所述数据库对象的值;
通过选择一个最佳实施规则以从最佳实施规则数据存储器中的多个最佳实施规则中为所述数据库对象提供一最佳实施规则,并将对象操纵语句中的属性的值和所选择的最佳实施规则的属性的值进行比较,以分析所述对象操纵语句;以及
响应于判定所述值未能遵循用于所述数据库的数据库对象的最佳实施规则,在按照所述对象操纵语句操纵所述数据库对象之前提供关联于所述最佳实施规则的信息。
13.如权利要求12所述的方法,其特征在于,所述数据库是SQL数据库。
14.如权利要求12所述的方法,其特征在于,所述对象操纵语句通过用户界面接收,所述用户界面传送关联于所述对象操纵语句的信息到一应用编程接口。
15.如权利要求12所述的方法,其特征在于,一最佳实施分析器从所述数据库检索关联于所述对象操纵语句的信息。
16.如权利要求12所述的方法,其特征在于,一应用编程接口传送关联于所述对象操纵语句的信息到一最佳实施分析器。
17.如权利要求12所述的方法,其特征在于,一最佳实施分析器从最佳实施数据存储器选择关联于所述数据库对象的所述最佳实施规则,并判定所述值是否遵循所述最佳实施规则。
18.如权利要求12所述的方法,其特征在于,还包括提供修改所述值以遵循所述最佳实施规则的机会。
19.一种用于分析数据库对象的提议属性设置以判定所述提议属性设置是否遵循一最佳实施规则的系统,其特征在于,包括:
一最佳实施分析器,接收用于数据库的所述数据库对象的所述提议属性设置,并在持久保存所述数据库对象之前提供所述数据库对象的最佳实施属性设置,其中通过修改所述提议属性设置使得其遵循于所选择的最佳实施规则,来将所选择的最佳实施规则集成到数据库中;
一最佳实施规则数据存储器,用于存储至少一条最佳实施规则,以在数据库环境内为所述数据库对象设置所述提议属性设置;以及
一应用编程接口,用于接收关联于所述提议属性设置的信息,并在所述数据库中持久保存所述提议属性设置。
20.如权利要求19所述的系统,其特征在于,还包括:
一用户界面,用于接收所述提议属性设置,并发送关联于所述提议属性设置的信息到一应用编程接口。
CNB2005100758744A 2004-06-28 2005-05-27 将最佳实施集成进数据库设计 Expired - Fee Related CN100520775C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/878,583 2004-06-28
US10/878,583 US20050289115A1 (en) 2004-06-28 2004-06-28 Integrating best practices into database design

Publications (2)

Publication Number Publication Date
CN1716250A CN1716250A (zh) 2006-01-04
CN100520775C true CN100520775C (zh) 2009-07-29

Family

ID=34940234

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100758744A Expired - Fee Related CN100520775C (zh) 2004-06-28 2005-05-27 将最佳实施集成进数据库设计

Country Status (5)

Country Link
US (1) US20050289115A1 (zh)
EP (1) EP1612703A1 (zh)
JP (1) JP2006012148A (zh)
KR (1) KR20060045965A (zh)
CN (1) CN100520775C (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996558B2 (en) 2002-02-26 2006-02-07 International Business Machines Corporation Application portability and extensibility through database schema and query abstraction
US7900133B2 (en) 2003-12-09 2011-03-01 International Business Machines Corporation Annotation structure type determination
US8005803B2 (en) * 2005-07-14 2011-08-23 Microsoft Corporation Best practices analyzer
US7444332B2 (en) 2005-11-10 2008-10-28 International Business Machines Corporation Strict validation of inference rule based on abstraction environment
US7440945B2 (en) * 2005-11-10 2008-10-21 International Business Machines Corporation Dynamic discovery of abstract rule set required inputs
US7917904B2 (en) * 2006-01-06 2011-03-29 Microsoft Corporation Automated analysis tasks of complex computer system
US20090132574A1 (en) * 2007-11-19 2009-05-21 Microsoft Corporation Dynamic best practices integration
KR101026731B1 (ko) * 2010-12-16 2011-04-08 주식회사고려이엔시 준공된 건축물의 지하실 시공방법
EP2610762A1 (en) * 2011-12-29 2013-07-03 Tata Consultancy Services Limited Database version management system
CN104252512A (zh) * 2013-11-05 2014-12-31 深圳市华傲数据技术有限公司 一种数据库数据核算方法和装置
US9836487B2 (en) 2014-07-28 2017-12-05 Cognizant Technology Solutions India Pvt. Ltd. System and method for ensuring code quality compliance for various database management systems
US9600502B1 (en) * 2016-02-08 2017-03-21 International Business Machines Corporation Evaluating a database design and modifications thereto

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4849879A (en) * 1986-09-02 1989-07-18 Digital Equipment Corp Data processor performance advisor
EP1135723A4 (en) * 1998-11-30 2005-02-16 Siebel Systems Inc DEVELOPMENT TOOL, METHOD AND SYSTEM FOR CUSTOMER SERVICE APPLICATIONS
JP4580518B2 (ja) * 1999-08-12 2010-11-17 慶和 白石 データベース設計システム
US7010546B1 (en) * 2000-09-20 2006-03-07 Parasoft Corporation Method and system for testing data sources and database oriented software applications
US6944630B2 (en) * 2000-11-22 2005-09-13 Bmc Software Database management system and method which monitors activity levels and determines appropriate schedule times
US20040098419A1 (en) * 2002-11-18 2004-05-20 International Business Machines Corporation Method and apparatus for a migration assistant
US7603340B2 (en) * 2003-09-04 2009-10-13 Oracle International Corporation Automatic workload repository battery of performance statistics
US7673291B2 (en) * 2003-09-05 2010-03-02 Oracle International Corporation Automatic database diagnostic monitor architecture
US8782020B2 (en) * 2003-11-18 2014-07-15 Oracle International Corporation Method of and system for committing a transaction to database

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
A Generalized Expert System for Database Design. ASUMAN DOGAC et al.IEEE TRANSACTIONS ON SOFTWARE ENGINEERING,Vol.15 No.4. 1989
A Generalized Expert System for Database Design. ASUMAN DOGAC et al.IEEE TRANSACTIONS ON SOFTWARE ENGINEERING,Vol.15 No.4. 1989 *
Semantic integrity constraints inknowledge-baseddatabasedesign systems. Veda C.Storey et al.data & knowledge engineering,No.20. 1996
SQLCM: A Continuous Monitoring Framework forRelationalDatabase Engines. Surajit,Chaudhuri,et,al.20th International Conference on Data Engineering. 2004
SQLCM: A Continuous Monitoring Framework forRelationalDatabase Engines. Surajit,Chaudhuri,et,al.20th International Conference on Data Engineering. 2004 *

Also Published As

Publication number Publication date
US20050289115A1 (en) 2005-12-29
JP2006012148A (ja) 2006-01-12
KR20060045965A (ko) 2006-05-17
CN1716250A (zh) 2006-01-04
EP1612703A1 (en) 2006-01-04

Similar Documents

Publication Publication Date Title
CN100520775C (zh) 将最佳实施集成进数据库设计
US10481875B2 (en) Generation of an application from template
US10733677B2 (en) Method and system for providing domain-specific and dynamic type ahead suggestions for search query terms with a customer self-service system for a tax return preparation system
US11216509B2 (en) Dynamic faceting for personalized search and discovery
CN108292231B (zh) 从数据生成应用的方法和系统
US8539604B2 (en) Method, system and program product for versioning access control settings
AU2021205120A1 (en) Method and system for searching for and navigating to user content and other user experience pages in a financial management system with a customer self-service system for the financial management system
US20110113358A1 (en) Adaptable user interface for business software
CN100476734C (zh) 用于修改信息以从源语言变换为目标语言的方法和系统
US7685033B2 (en) Method and apparatus for automatically mapping account-data to tax-forms
CN105453122A (zh) 上下文移动应用广告
US11080068B2 (en) Adaptive user-interface assembling and rendering
US20200134257A1 (en) Creating and modifying applications from a mobile device
US11436237B2 (en) Ranking datasets based on data attributes
CN110795478A (zh) 一种应用于金融业务的数据仓库更新方法、装置和电子设备
EP3842958A1 (en) Platform for conversation-based insight search in analytics systems
US8595095B2 (en) Framework for integrated storage of banking application data
US20140195462A1 (en) Data management system and tool
CN111913759A (zh) 控制应用程序执行的方法、装置、计算设备和介质
KR20130126012A (ko) 비즈니스 인텔리전스의리포트 제공 방법 및 장치
Esposito Architecting mobile solutions for the enterprise
CN112182350A (zh) 基于内容库的交互方法、装置、服务器及存储介质
US20230259815A1 (en) Machine learning techniques for user group based content distribution
KR102574784B1 (ko) Esg 문서를 자동 완성하는데 적합한 텍스트를 추천하는 방법 및 이를 수행하는 esg 서비스 제공 시스템
CN116862262A (zh) 产品开发方法、装置、设备和介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150424

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150424

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

Effective date of registration: 20150424

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090729

Termination date: 20190527

CF01 Termination of patent right due to non-payment of annual fee