数据库软件叫啥?(你见过最漂亮的代码是什么样的?)
本文由世外云(www.shiwaiyun.com)小编为大家整理,本文主要介绍了数据库软件叫啥的相关知识,希望对你有一定的参考价值和帮助,记得关注和收藏网址哦!
1、数据库软件叫啥?
数据库软件是指安装在服务器上的软件,是数据库实例运行所必需的。该数据库由以下组件组成:1.软件的第一个组件用于描述和调整数据库中数据元素的格式。
2.该软件的第二个组成部分是 "维护和更新数据库的。
3.软件的第三个组成部分是设计数据库的数据输出,例如数据库中操作数据的信息和报告,并分析这些数据。
2、你见过最漂亮的代码是什么样的?
有这么美吗?2-@ .com 1。物理存储结构:定义:真实数据存储单元
构成:
(1)数据文件:存储数据库的数据文件
(2)日志文件:记录数据的修改信息。
(3)控制文件:记录数据库物理结构的二进制文件(包括数据文件和日志文件)。
因此,Oracle实例在启动时必须访问控制文件。
2.逻辑结构
定义:数据库创建后形成的逻辑概念之间的关系。
表(逻辑组件表页):它是存储在Oracl
4、如果自己要建立一个小型数据库?
数据库的设计方法、规格和技巧一、数据库设计流程
数据库技术是信息资源管理最有效的手段。数据库设计是指构造最佳的数据库模式,为给定的应用环境建立数据库及其应用系统,有效地存储数据,满足用户和应用系统的需求。;信息要求和处理要求。
在数据库设计中,需求分析阶段整合各用户的应用需求(现实世界需求),在概念设计阶段形成一个独立于机器特性和DBMS产品的概念模型(信息世界模型),用: {数据项或数据结构}}
数据流描述= {数据流名称,描述,数据流来源,数据流目的地,
作文:(数据结构);平均流量;高峰流量。
数据存储描述= {数据存储名称,描述,编号,传入数据流,传出数据流,
作文:(数据结构);数据量和访问模式。
进程描述= {进程名称;描述;输入: {数据流};输出: {数据流};
处理:(简要描述)
2.概念结构设计阶段
通过对用户需求的综合、概括和抽象,形成一个独立于具体DBMS的概念模型,可以用:
2.1零步——初始化项目
这一阶段的任务是确定建模目标,制定建模计划,组织建模团队,收集源材料,从目的和范围的描述中制定约束和规范。收集素材是这个阶段的重点。通过调查观察结果、业务流程、原部门系统的输入输出,各种报表,收集原始数据,形成基础数据表。
2.2第一步是定义——的实体。
实体集的成员具有一组公共的特征和属性,这些特征和属性可以直接或间接地从源物料——的收集的基本数据表中识别大多数实体。根据源物料名称列表中对象的术语和以 "代码 ",如客户代码、代理商代码、产品代码等。,识别其名词所代表的实体,从而初步找出潜在的实体,形成初步的实体列表。
2.3第二步是界定——的联系人。
ID——定义代码
通过引入交叉实体去除前一阶段产生的不确定关系,从非交叉实体和独立实体中识别候选代码属性,从而唯一标识每个实体的实例,然后从候选代码中确定主码。为了确定主密钥和关系的有效性,通过非空规则和非多值规则来保证,即实体实例的一个属性不能为空,也不能同时有多个值。找出误识别的确定关系,进一步分解实体,最终构建ID——的属性。
从源数据表中提取描述性名词,开发一个属性表,确定属性的所有者。定义非主键属性,检查属性的非空和非多值规则。此外,还要检查完全依赖函数规则和非传递依赖规则,确保一个非主键属性必须依赖于主键,整个主键,且只依赖于主键。这样就得到至少符合关系理论第三范式的改进ID——定义了其他对象和规则。
定义数据类型、长度、精度、非空值、默认值、约束规则等。属性的。定义对象信息,如触发器、存储过程、视图、角色、同义词、序列等。
3.逻辑结构设计阶段
将概念结构转换成DBMS支持的数据模型(如关系模型),并对其进行优化。设计的逻辑结构应该选择最适合描述和表达的。概念数据模型,然后选择最合适的DBMS。
将:n联系人转化为关系模型。与联系人相关联的实体的代码和联系人本身的属性被转换成关系的属性。关系代码是实体代码的组合。
3)一个1:n连接可以转换成独立的关系模式,也可以与N端对应的关系模式合并。如果转换为独立的关系模式,则所有与该关系相连的实体的编码以及该关系本身的属性都转换为该关系的属性,该关系的编码就是N端实体的编码。
4)1 echo 12-@ . com 1联系人可以转换成独立的关系模式,也可以与任一端对应的关系模式合并。
5)三个或更多实体之间的多元连接被转换成关系模型。用多元连接连接的每个实体的代码和连接本身的属性都被转换成关系的属性。关系代码是实体代码的组合。
6)同一实体集内实体之间的连接,即自连接,也可以按照以上三种情况处理:1:1,1:n和m:n。
7)代码相同的关系模式可以合并。
为了进一步提高数据库应用系统的性能,通常以标准化理论为指导,对数据模型的结构进行适当的修改和调整,这就是数据模型的优化。确定数据依赖关系。消除冗余链接。确定每个关系模型属于哪个范式。确定是合并还是拆分它们。一般来说,这种关系被分解成3NF个标准,即:
表中的每个值只能表示一次。
??表中的每一行都应该唯一标识(用唯一的键)。
依赖于其他键的非键信息不应存储在表中。
4.数据库物理设计阶段
为逻辑数据模型选择最适合应用环境的物理结构(包括存储结构和访问方法)。根据数据库管理系统的特点和处理的需要,安排物理存储,设计索引,形成数据库中的模式。
5.数据库实施阶段
利用DBMS提供的数据语言(如SQL)及其宿主语言(如C),根据逻辑设计和物理设计的结果,建立数据库,编译调试应用程序,组织数据入库,进行试运行。数据库的实现主要包括以下任务:用DDL定义数据库结构,组织数据入库,编译调试应用程序,数据库试运行。6.数据库操作和维护阶段。
数据库应用系统经过试运行后可以投入正式运行。在数据中在系统运行过程中,必须不断对其进行评估、调整和修改。包括数据库转储和恢复、数据库安全、完整性控制、数据库性能监控、分析和改进、数据库重组和重建。
建模工具的使用
加快数据库设计的速度,有很多数据库辅助工具(CASE工具),比如Rational公司的RationalRose,CA公司的Erwin和Bpwin,Sybase公司的PowerDesigner,Oracle公司的OracleDesigner。
ERwin主要用于建立数据库的概念模型和物理模型。它可以图形化地描述实体、连接和实体的属性。ERwin支持IDEF1X方法。利用ERwin建模工具自动生成、变更和分析IDEF1X模型,不仅可以得到优秀的业务功能和数据需求模型,还可以实现从IDEF1X模型到数据库物理设计的转换。ERwin工具绘制的模型对应逻辑模型和物理模型。在逻辑模型中,IDEF1X工具箱可以方便地以图形化的建立和绘制实体关系和实体属性。在物理模型中,ERwin可以定义相应的表和列,并可以自动转换为适合各种数据库管理系统的类型。
设计人员可以根据需要选择相应的数据库设计建模工具。比如需求分析完成后,设计人员可以使用Erwin绘制er图,将ER图转换成关系数据模型,生成数据库结构;绘制数据流图,生成应用程序。
二、数据库设计技巧
1.设计数据库之前(需求分析阶段)
1)了解客户。;需求,并询问用户如何查看需求的未来变化。让客户说明自己的需求,随着开发的继续,经常要求客户保证自己的需求还在开发的目的中。
2)了解企业的业务,可以在后期发展阶段节省大量时间。
3)注意输入输出。
在定义数据库表和字段要求(输入)时,您应该第一检查现有的或设计的报告、查询和视图(输出),以决定哪些表和字段是支持这些输出所必需的。
例如,如果客户需要一个按邮政编码进行排序、细分和汇总的报表,您应该确保它包含一个单独的邮政编码字段,而不是将邮政编码添加到地址字段中。
4)创建数据字典和ER图表
图表和数据字典可以让任何了解数据库的人明白如何从数据库中获取数据。ER图表有助于显示表之间的关系,而数据字典解释了每个字段的用途和任何可能的别名。这对于SQL表达式的文档来说是绝对必要的。
5)定义标准的对象命名约定。
数据库中各种对象的命名必须标准化。
2.表和字段的设计(数据库逻辑设计)
表格设计原则1)标准化和规范化
数据标准化有助于消除数据库中的数据冗余。标准化有多种形式,但第三种形式(3NF)通常被认为在性能、可伸缩性和数据完整性方面达到了最佳平衡。简单来说,符合3NF标准的数据库的表设计原则是: "OneFactinOnePlace "意味着一个表只包含自己的基本属性,当不是自己的属性时需要分解。表之间的关系由外键连接。它有以下特点:有一组专门存储相关数据的表,通过键连接。
例如,存储客户及其相关订单的3NF数据库可能有两个表:customer和order。Order表不包含与订单相关联的客户的任何信息,但是表中将存储一个键值,该键值指向Customer表中包含客户信息的行。
其实为了效率,有时候不规范表格是必要的。
2)数据驱动
很多策略的变更和维护,通过数据驱动会比硬编码方便很多,大大增强了系统的灵活性和可扩展性。
例如,如果用户界面想要访问外部数据源(文件、XML文档、其他数据库等)。),建议在用户界面支持表中存储相应的连接和路径信息。此外,如果用户界面执行工作流(发送邮件、打印信头、修改记录状态等)等任务。),那么生成工作流的数据也可以存储在数据库中。角色权限管理也可以通过数据驱动来完成。事实上,如果流程是数据驱动的,您可以将相当大的责任放在用户身上,他们将维护自己的工作流程。
3)考虑各种变化
设计数据库时,要考虑哪些数据字段将来可能会发生变化。比如姓氏就是这种情况(注意是西方姓氏,比如女人随夫 婚后姓氏等。).因此,在构建存储客户信息的系统时,将姓氏字段存储在单独的数据表中,并附加开始日期和结束日期等字段,以便可以跟踪该数据条目的变化。
现场设计原则
4)每个表格中应添加的3个有用字段
??DRecordCreationDate,在VB中默认为Now(),在SQLServer中默认为GETDATE()。
??SRecordCreator,默认为SQLServer下的NOTNULLDEFAULTUSER
??NRecordVersion,记录的版本标记;准确解释记录中出现空数据或缺失数据的原因很有帮助。
5)对地址和使用多个字段
仅仅用一行来描述街道地址是不够的。Address_Line1、Address_Line2和Address_Line3可以提供更大的灵活性。仍然是的,号码和电子邮件地址应该有自己的数据表,有自己的类型和标签类别。
6)使用角色实体定义属于某个类别的列。
当需要定义属于特定类别或者具有特定角色的事物时,可以使用角色实体来创建特定的时态关系,从而实现自文档化。
示例:使用PERSON实体和PERSON_TYPE实体来描述人员。例如,当JohnSmith,Engineer被提升到JohnSmith,Director的职位并最终被提升到JohnSmith,CIO的职位时,您所要做的就是更改两个表PERSON和PERSON_TYPE之间的关系的键值,并添加一个日期/时间字段以了解更改发生的时间。这样,PERSON_TYPE表就包含了所有可能的人员类型,比如助理、工程师、主管、CIO或CEO。另一种选择是改变个人记录以反映新头衔的变化,但是这样就不可能跟踪个人的具体时间 的立场。
7)选择尽可能多的数字和文本类型。
在SQL中使用smallint和tinyint类型时要特别小心。例如,如果您想查看每月的总销售额,而总金额字段类型是smallint,那么您可以 不计算总额是否超过32,767美元。
以及ID类型的文本字段,如客户ID或订单号等。,应该设置得比一般认为的要大。假设客户ID是10位数字长。然后,您应该将数据库表字段的长度设置为12或13个字符。但是,这种额外的空间不需要在未来重建整个数据库,这样就可以增加数据库的规模。
8)添加删除标记字段。
包括a "删除标记字段,以便可以将行标记为删除。不要删除关系数据库中的任何一行;It 最好采用数据清理程序,并小心维护索引的完整性。
3.选择键和索引(数据库的逻辑设计)
密钥选择原则:
1) 4项关键设计原则
??为关联字段创建外键。
??的所有键必须是唯一的。
??避免使用组合键。
??外键总是与唯一的键字段相关联。
2)使用系统生成的主键
在设计数据库时,将系统生成的键作为主键,实际上控制着数据库的索引完整性。这样,数据库和非手工机制有效地控制了对每一行存储数据的访问。使用系统生成的键作为主键还有一个好处:当你拥有一致的键结构时,很容易发现逻辑缺陷。
3)唐 不要使用用户 s键(don 不要让主键可更新)
当决定使用哪个字段作为表的键时,必须注意用户将编辑哪个字段。通常,唐 t选择用户可编辑的字段作为键。。
4)可选键有时可以用作主键。
通过进一步使用可选键作为主键,您可以构建一个强大的索引。
索引原则:
索引是从数据库中获取数据的最有效的方法之一。95%的数据库性能问题可以通过索引技术解决。
1)逻辑主键使用唯一的分组索引,系统键(作为存储过程)使用唯一的未分组索引,任何外键列都使用未分组索引。考虑数据库有多少空间,如何访问表,以及这些访问是否主要用于读写。
2)大多数数据库索引自动创建的主键字段,但不 不要忘记索引外键。它们也是经常使用的键,例如运行查询来显示主表和所有相关表的记录。
3)唐 t索引备忘录/注释字段,以及don t索引大字段(有很多字符)。这样做会使索引占用过多的存储空间。
4)不要索引常用的小表。
唐 不要为小数据表设置任何键,尤其是当它们经常有插入和删除操作时。这些插入和删除操作的索引维护可能比扫描表空间花费更多的时间。
4.数据完整性设计(数据库逻辑设计)
1)完整性实现机制:
实体完整性:主键
参照完整性:
删除父表中的数据:级联删除;删除受限;空值
在父表中插入数据:受限插入;递归插入
更新父表中的数据:级联更新;更新受限;空值
实现DBMS的参照完整性有两种方法:外键实现机制(约束规则)和触发器实现机制。
用户定义的完整性:
NOTNULL检查;引发
2)用约束而不是业务规则来加强数据完整性
利用数据库系统实现数据完整性。这不仅包括通过标准化实现的完整性,还包括数据的功能性。还可以在写数据的时候添加触发器,保证数据的正确性。不依赖业务层保证数据完整性;它可以 t保证表(外键)之间的完整性,所以它可以 不要强加于其他诚信规则。
3)强制性指示完整性
在有害数据进入数据库之前将其消除。激活数据库系统指示的完整性特征。这可以保持数据的整洁,并迫使开发人员花费更多的时间来处理错误情况。
4)使用查找来控制数据完整性。
控制数据完整性的最好方法是限制用户。;选择。只要有可能,就应该为用户提供一个清晰的值列表以供选择。这将减少键入代码时的错误和误解,并提供数据一致性。一些公共数据特别适合搜索:国家代码、状态代码等。
5)采纳观点
为了在数据库和应用程序代码之间提供另一个抽象层,可以为应用程序建立一个特殊的视图,而不需要应用程序直接访问数据表。这也让您在处理数据库更改时有更多的自由。
5.其他设计技能
1)避免使用触发器。触发器的功能通常可以通过其他实现。调试程序时,触发器可能会成为干扰。如果你真的需要使用触发器,你 我们最好专注于记录它们。
2)使用通用英语(或任何其他语言)代替编码
创建下拉菜单、列表和报告时,最好按英文名称排序。如果需要编码,可以在编码旁边附上用户认识的英文。
3)保存常用信息。
拥有一个专用于一般数据库信息的表非常有用。在该表中,存储了数据库的当前版本、最新检查/修复(用于访问)、相关设计文档的名称、客户和其他信息。通过这种,可以实现一种简单的机制来跟踪数据库,当客户抱怨他们的数据库不符合期望的要求并与您联系时,这对于非客户机/服务器环境尤其有用。
4)包括版本机制
版本控制机制被引入到数据库中,以确定正在使用的数据库的版本。随着时间的推移,用户的需求总是会发生变化。最终,可能需要修改数据库结构。将版本信息直接存储在数据库中更方便。
5)准备文件。
记录所有快捷、命名约定、限制和功能。
注释表、列、触发器等的数据库工具。对于开发、支持和跟踪变更非常有用。
在数据库内部或单独记录数据库。这样,一年多以后你再去找第二个版本的时候,出错的几率会大大降低。
6)测试、试验和重复试验
或者在建立修订数据库之后,必须用用户新输入的数据来测试数据字段。最重要的是,让用户测试并与用户一起工作,以确保所选择的数据类型满足业务需求。测试需要在新数据库投入实际服务之前完成。
7)检查设计
在开发过程中检查数据库设计的一种常见技术是通过其支持的应用程序原型来检查数据库。换句话说,对于每个最终表达数据的原型应用程序,请确保检查数据模型并查看如何检索数据。
三。数据库命名规范
1.实体(表)的命名
1)表格以名词或名词短语命名。确定表名是复数形式还是单数形式。此外,为表的别名定义简单的规则(例如,如果表名是一个单词,别名取单词的前4个字母;如果表名是两个单词,取每个单词的前两个字母组成别名,长度为4个字母;如果表名由三个单词组成,从前两个单词中各取一个然后从最后一个单词中取出两个字母,结果仍然是4个字母的别名,其余依次进行)
对于工作表,表名可以以WORK_为前缀,后跟使用该表的应用程序的名称。在命名的过程中,可以根据语义将缩写拼凑起来。请注意,因为ORCLE会将字段名称统一为大写或小写,所以需要给它们加下划线。
示例:
定义salesecho12-@ Q的缩写。Q.comSal销售;
order echo 12-@ . comord:Dtl详情;
然后将销售订单列表命名为:萨尔_ Ord _ Dtl;
2)如果表或字段的名称只有一个单词,建议使用完整的单词,不要使用缩写。
示例:
定义缩写MaterialMa项目;
物品的名称是:材料,不是马。
但是字段项目编码是:Ma _ ID而不是材料ID。
3)在存储值列表的所有表前面加上前缀Z。
目的是在数据库末尾对这些值列表分类进行排序。
4)在所有冗余类(主要是累积表)的名称前面加上前缀x
类冗余是在数据库未标准化时添加的字段或表,目的是提高数据库的效率。
5)通过用下划线连接两个基本类,然后添加前缀R,接着按字母顺序列出两个表名或表名的缩写,来命名关联的类。
关联表用于保存多对多关系。
如果关联的表名超过10个字母,则原始表名必须缩写。如果没有其他原因,建议使用缩写。
例如,如果表对象与自身有多对多关系,则保存多对多关系的表命名为:r _ object
表部门和员工;存在多对多的关系;关联表被命名为R_Dept_Emp。
2.属性(列)的命名
1)使用有意义的列名,表中的列应该采用一套键的设计规则。每个表将有一个自动ID作为主键,逻辑主键将被定义为第一组候选主键。如果是数据库自动生成的代码,则命名为:ID;如果是自定义逻辑代码,则用缩写加 "ID "。如果键是数值型,可以用_NO做后缀;如果是字符型,可以使用后缀_COD:数据类型是一个文本字段,类型后缀TX可以省略。对于一些类型明显的字段,可以省略类型后缀。
3)前缀命名
如果每个表的列名都有一个统一的前缀,那么SQL表达式的编写将会大大简化。它确实有一些缺点,例如破坏了自动表连接工具的功能,该工具将公共列名与一些数据库相链接。
3.命名视图
1)视图以V为前缀,其他命名规则与表相似;
2)命名要尽可能体现每个视图的功能。
4.触发器的命名
Trigger TR是前缀,trigger name是对应的带后缀的表名,Insert trigger with _ I ,用 _ D 并用 _ U ,如:TR_Customer_I,TR_Customer_D,tr _ customer _ u。
5.存储过程名称
存储过程应该以 UP _ ,它不同于系统的存储过程。后面部分主要由动宾式组成,每个成分用下划线分隔。例如,添加代理 的帐户是 代理帐户 。
6.变量名
变量名是小写的。如果是短语,用下划线分隔每个单词,例如@ my _ err _ no。
7.命名中的其他注意事项
1)以上所有名称不得超过30个字符的系统限制。变量名的长度限制为29个字符(不包括标识字符@)。
2)数据对象和变量用英文字符命名,禁止用中文命名。永远不要在对象名的字符之间留空格。
3)小心保留字,确保您的字段名不与保留字、数据库系统或常用访问方法。
5)保持字段名和类型的一致性,在为字段命名和指定数据类型时,一定要保证一致性。如果一个表中的数据类型是整数,那么它在另一个表中不应该变成字符类型。