① 数据库中常用的英语单词有哪些
下列是一些数据库中经常碰到的英文单词:
Access method(访问方法):此步骤包括从文件中存储和检索记录。
Alias(别名):某属性的另一个名字。在SQL中,可以用别名替换表名。
Alternate keys(备用键,ER/关系模型):在实体/表中没有被选为主健的候选键。
Anomalies(异常)参见更新异常(update anomalies)
Application design(应用程序设计):数据库应用程序生命周期的一个阶段,包括设计用户界面以及使用和处理数据库的应用程序。
Attribute(属性)(关系模型):属性是关系中命名的列。
Attribute(属性)(ER模型):实体或关系中的一个性质。
Attribute inheritance(属性继承):子类成员可以拥有其特有的属性,并且继承那些与超类有关的属性的过程。
Base table(基本表):一个命名的表,其记录物理的存储在数据库中。
Binary relationship(二元关系):一个ER术语,用于描述两个实体间的关系。例如,panch Has Staff。
Bottom-up approach(自底向上方法):用于数据库设计,一种设计方法学,他从标识每个设计组建开始,然后将这些组件聚合成一个大的单元。在数据库设计中,可以从表示属性开始底层设计,然后
将这些属性组合在一起构成代表实体和关系的表。
Business rules(业务规则):由用户或数据库的管理者指定的附加规则。
Candidate key(候选键,ER关系模型):仅包含唯一标识实体所必须得最小数量的属性/列的超键。
Cardinality(基数):描述每个参与实体的可能的关系数目。
Centralized approach(集中化方法,用于数据库设计):将每个用户试图的需求合并成新数据库应用程序的一个需求集合
Chasm trap(深坑陷阱):假设实体间存在一根,但某些实体间不存在通路。
Client(客户端):向一个或多个服务器请求服务的软件应用程序。
Clustering field(群集字段):记录总的任何用于群集(集合)航记录的非键字段,这些行在这个字段上有相同的值。
Clustering index(群集索引):在文件的群集字段上定义的索引。一个文件最多有一个主索引或一个群集索引。
Column(列):参加属性(attribute)。
Complex relationship(复杂关系):度数大于2的关系。
Composite attribute(复合属性):由多个简单组件组成的属性。
Composite key(复合键):包含多个列的主健。
Concurrency control(并发控制):在多用户环境下同时执行多个十五并保证数据完整性的一个DBMS服务。
Constraint(约束):数据库不允许包含错误数据的一致性规则。
Data conversion and loading(数据转换和加载):数据库应用生命周期重的一个阶段,包括转换现有数据到新数据库中以及酱下耨应用程序转换到新的数据库上运行。
Data dictionary(数据字典):参见系统目录(system catalog)。
Data independence(数据独立性):使用数据的应用程序的数据描述部分。这意味着,如果将新的数据结构添加到数据库中,或者数据库中现有的结构被修改了,那么使用此数据库的就会受到影响,除
非应用程序不直接依赖于被修改的部分。
Data model(数据模型):描述数据、数据间关系以及数据的约束的概念的一个集成的集合。
Data rendancy(数据冗余):参见冗余数据(rendant data)。
Data security(数据安全):包括对数据库对象(如表和视图)的访问和使用以及用户可以在这些对象上实施的操作。
Database(数据库):是逻辑上相关的数据(以及这些数据的描述)的一个共享的集合,用于解决公司对信息的需求。
Database design(数据库设计):数据库应用生命周期中的一个阶段,包括创建一个支持公司的操作和目标的数据库的设计。
Database integrity(数据库完整性):指存储数据的正确定和一致性。完整性通常用约束来表达。
Database Management System,DBMS(数据库管理系统):一个能够让用户定义、创建和维护数据库并控制对数据库的访问的软件系统。
Database planning(数据库规划):能尽可能有效的实现数据库应用的各阶段的管理活动。
Database server(数据库服务器):同服务器。
DBMS engine(DBMS引擎):同服务器。
DBMS selection(DBMS选择):数据库应用生命周期中的一个阶段,包括选择一个合适的DBMS来支持数据库应用。
Degree of a relationship(关系的度):一个关系中参与的实体的个数。
Denormalization(反规范化):形式上,这个术语指的是对基本表结构的修改,这样新的表比原始的表的规范化程度要低。但也可以用此属于更宽泛地形容将两个表和并成一个新表的情形,而这个新表
与原来的表具有相同的范式,但比原表包含更多的空值。
Derived attribute(派生属性):表示其值可以从一个相关属性和属性集的值派生得到的属性,这个属性在实体中不是必须的。
Design methodology(设计方法学):一种结构化的方法,它使用过程、工具和文档来支持和简化设计过程。
Disjoint constraint(无连接约束):描述子类的成员间的关系,并指明超类某个成员是否有可能成为一个或多个子类的成员。
Domain(域):一个或多个属性的取值范围。
Entity(实体):具有相同性质的对象的集合,它是由用户或公司标识并可独立存在的。
Entity integrity(实体完整性):在一个基本表中,主健列的值不能为空。
Entity occurrence(实体出现):实体中的一个唯一可标识的对象。
Entity-Relationship model(实体关系模型):公司的实体、属性和关系的详细逻辑表示。
Fact-finding(事实发现):使用诸如面谈和提问等技术收集关于系统的事实、需求和性能的形式化过程。
Fan trap(扇形陷阱):但从第三个实体扇出的两个实体有1:*关系时出现扇形陷阱,但这两个实体在他们之间应该有直接关系以提供必要的信息
Field(字段):同元组(Tuple)。
File(文件):存储在副主存储器中的相关记录的一个命名集合。
File-based system(基于文件的系统):一个文件集合,用来管理(创建、插入、删除、更新和检索)一个或多个文件中的数据,并产生基于这些文件中的数据的应用(通常是报表)。
File organization(文件组织):当文件存储在磁盘上时,对文件中的记录的安排方式。
First normal form(1NF,第一范式):表中的每个列的交叉处以及记录包含切进包含一个值的表。
Foreign key(外健):一个表中的一个列或者多个列的集合,这些列匹配某些其他(也可能是同一个)表中的候选键。
4GL, Fourth-Generation Language(第四代语言):一种非过程化语言,比如SQL,他只需要用户定义必须完成什么操作,4GL负责将所进行的操作翻译成如何实现这些操作。
Full functional dependency(完全函数依赖):一个列在功能上依赖于复合主健,但不依赖于主健的任何一个子集的条件。
Functional dependency(函数依赖):描述表中列之间的关系。
Generalization(泛化):通过标识实体间的公共特征使实体间差别最小化的过程。
Generalization hierarchy(泛化层次结构):同类型层次(type hierarchy)。
Global data model(全局数据模型):代表整个公司(和被模型化的公司的一部分)的数据模型。
Implementation(实现):数据库应用生命周期中的一个阶段,包括数据库和应用程序设计的物理实现。
Index(索引):一种允许DBMS将特定的记录更快的放置到文件中,从而加快对用户查询的响应的数据结构。
Infomation system(信息系统):能够在整个公司范围内收集、管理、控制和分发数据/信息的资源。
Inheritance(继承):参见属性继承(attribute inheritance)。
Integrity constaints(完整性约束):防止出现数据库中的数据不一致的约束。
IS-A hierarchy(IS-A层次结构):同类型层次结构(type hierarchy)。
Local logical data model(局部逻辑数据模型):代表特定用户视图或用户视图的组合的数据模型。
Logical database design(逻辑数据库设计):基于特定的数据模型构建公司的数据的模型的过程,但不依赖于特定的DBMS以及其他的物理条件。
Meta-data(元数据):关于数据的数据,参见系统目录(system catalog)。
Mision objective(使命目标):标识数据库必须支持的特定任务。
Mission statement(使命语句):定义数据库应用程序的主要目标。
Multiplicity(多样性):定义与某个相关实体的一次出现有关的实体的出现数目。
Multi-valued attribute(多值属性):为一个实体的出现保存多个值的属性。
Nonkey attribute/column(非键属性/列):不是键的一部分的属性/列。
Normal forms(范式):规范化过程的一个阶段。前三个范式分别为第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。
Normalization(规范化):一种产生带有需要的特性的技术,这种特性能支持用户和公司的需求。
差不多就是这些了。
② 什么是反范式
反范式是通过增加冗余数据或数据分组来提高数据库读性能的过程。在某些情况下, 反范式有助于掩盖关系型数据库软件的低效。关系型的范式数据库即使做过优化, 也常常会带来沉重的访问负载。
数据库的范式设计会存储不同但相关的信息在不同的逻辑表, 如果这些表的存储在物理上也是分离的,那么从几个表中完成数据库的查询可能就会很慢 (比如JOIN操作)。如果JOIN操作的表很多,那么可能会慢得离谱。 有两个办法可以解决这个问题。首选的方法是使逻辑上的设计遵循范式, 但允许数据库管理系统(DBMS)在磁盘上存储额外的冗余信息来加快查询响应。 在这种情况下,DBMS还要保证冗余副本与原始数据的一致性。 这种方法通常在SQL中以索引视图(微软的SQL Server)或物化视图(Oracle)实现。 视图将信息表示为方便查询的格式,索引确保视图上的查询进行了优化。
更常见的做法是对数据做反范式设计。这种方法同样能提高查询响应速度, 但此时不再是DBMS而是数据库设计者去保证数据的一致性。 数据库设计者们通过在数据库中创建规则来保证数据的一致性,这些规则叫约束。 这样一来,数据库设计的逻辑复杂度就增加了,同时额外约束的复杂度也增加了, 这使该方法变得危险。此外,“约束”在加快读操作(SELECT)的同时,减慢了写操作 (INSERT, UPDATE和DELETE)。这意味着一个反范式设计的数据库, 可能比它的范式版本有着更差的写性能。
反范式数据模型与没有范式化的数据模型不同。 只有在范式化已经达到一定的满意水平并且所需的约束和规则都已经建立起来, 才进行反范式化。例如,所有的关系都属于第三范式, 连接的关系和多值依赖得到了妥善处理。
③ 数据库的逆规范化
数据完整性就是说存储在数据库中的所有数据值均正确的状态。只要是所有数据均处在正确的状态就说这个数据库中的数据是完整的。而规范化其中之一要求就是要减少数据库中数据的冗余来增进数据的一致性。逆规范化,增加数据冗余很好理解,举一个例子,比如员工姓名,但就姓名来说在不同的表中所表示的含义可能会不一样。如果多个表中存在相同的列,比蚂乎如员工滑余姓名,此时员工信物滚姓名的信息就存在冗余了,而这时对此信息的修改就要多增加注意了。如果更改一处的姓名,其它多处的信息也要修改,否则信息就会处于不一致状态,这样数据的完整性就收到了影响。
④ 数据库设计中什么时候要进行适当的反规范化
1�反规范的好处
是否规范化的程度越高越好?这要根据需要来决定,因为“分离”越深,产生的关系越多,关系过多,连接操作越频繁,而连接操作是最费时间的,特别对以查询为主的数据库应用来说,频繁的连接会影响查询速度。所以,关系有时故意保留成非规范化的,或者规范化以后又反规范了,这样做通常是为了改进性能。
例如帐户系统中的“帐户”表B-TB01,它的列busi-balance(企业帐户的总余额)就违反规范,其中的值可以通过下面的查询获得:
select busi-code,sum(acc-balance)
from B-TB06
group by busi-code
如果B-TB01中没有该列,若想获得busi-name(企业名称)和企业毁态帐户的总余额,则需要做连接操作:
select busi-name,sum(acc-balance)
from B-TB01,B-TB06
where B-TB01.busi-code=B-TB06.busi-code
group by busi-code
如果经常做这种查询,则就有必要在B-TB01中加入列busi-balance,相应的代价则是必须在表B-TB06上创建增、删、改的触发器来维护B-TB01表上busi-balance列的值。类似的情况在决策支持系统中经常发生。
反规范的好处是降低连接操作的需求、降低外码和索引的数目,还可能减少表的数目,相应带来的问题是可能出现数据的完整性问题。加快查询速度,但会降低修改速度。因此决定做反规范时,一定要权衡利弊,仔细分析应用的数据存取需求和实际的性能特点,好的索引和其它方法经常能够解决性能问题,而不必采用反规范这种方法。
2�常用的反规范技术
在进行反规范操作之前,要充分考虑数据的存取需求、常用表的大小、一些特殊的计算(例如合计)、数据的物理存储位置等。常用的反规范技术有增加冗余列、增加派生列、重新组表和分割表。
(1)增加冗余列是指在多个表中具有相同的列,它常用来在查询时避免连接操作。例如前面例子中,如果经常检索一门课的任课教师姓名,则需要做class和teacher表的连接查询:
select class-name,teacher-name
from class,teacher
where class.teacher-no=teacher.teacher-no
这样的话就可以在class表中增加一列teacher-name就不需要连接操作了。
增加冗余列可以在查询时避免连接操作,但它需要更多的磁盘空间,同时增加表维护的工作量。
(2)增加派生列指增加的列来自其它表中的数据,由它们早猜计算生成。它的作用是在查询时减少连接操作,避免使用集函数。例如前面所讲的账户系统中的表B-TB01的列busi-balance就是派生列。派生列也具有与冗余列同样的缺点。
(3)重新组表指如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个表来减少连接而提高性能。例如,用户经常需要同时查看课程号,课程名称,任课教师号,任课教师姓名,则可把表class(class-no,class-name,teacher-no)和表teacher(teacher-no,teacher-name)合并成一个表class(class-no,class-name,teacher-no,teacher-name)。这样可提高性能,但需要更多的磁盘空间,同时也损失了数据在概念上的独立性。
(4)有时对表做分割可以提高性能。表分割有两种方式:
1水平分割:根据一列或多列数据的值把数据行放到两个独立的表中。
水平分割通常在下面的情况下使用。
·表很大,分割后可以降低在查询时需要读的数据和索引的页数,同时也降低了索引的层数,纤睁源提高查询速度。
·表中的数据本来就有独立性,例如表中分别记录各个地区的数据或不同时期的数据,特别是有些数据常用,而另外一些数据不常用。
·需要把数据存放到多个介质上。
例如法规表law就可以分成两个表active-law和inactive-law。activea-authors表中的内容是正生效的法规,是经常使用的,而inactive-law表则使已经作废的法规,不常被查询。
水平分割会给应用增加复杂度,它通常在查询时需要多个表名,查询所有数据需要union操作。在许多数据库应用中,这种复杂性会超过它带来的优点,因为只要索引关键字不大,则在索引用于查询时,表中增加两到三倍数据量,查询时也就增加读一个索引层的磁盘次数。
2垂直分割:把主码和一些列放到一个表,然后把主码和另外的列放到另一个表中。
如果一个表中某些列常用,而另外一些列不常用,则可以采用垂直分割,另外垂直分割可以使得数据行变小,一个数据页就能存放更多的数据,在查询时就会减少I/O次数。其缺点是需要管理冗余列,查询所有数据需要join操作。
3�反规范技术需要维护数据的完整性
无论使用何种反规范技术,都需要一定的管理来维护数据的完整性,常用的方法是批处理维护、应用逻辑和触发器。
批处理维护是指对复制列或派生列的修改积累一定的时间后,运行一批处理作业或存储过程对复制或派生列进行修改,这只能在对实时性要求不高的情况下使用。
数据的完整性也可由应用逻辑来实现,这就要求必须在同一事务中对所有涉及的表进行增、删、改操作。用应用逻辑来实现数据的完整性风险较大,因为同一逻辑必须在所有的应用中使用和维护,容易遗漏,特别是在需求变化时,不易于维护。
另一种方式就是使用触发器,对数据的任何修改立即触发对复制列或派生列的相应修改。触发器是实时的,而且相应的处理逻辑只在一个地方出现,易于维护。一般来说,是解决这类问题的最好的办法。
⑤ 为什么数据仓库可以适当使用反规范化的策略
(嗯...这学期刚学数据仓库与数据挖掘...)
之所以说是反规范化策略,是因为数据仓库和传统的数据库在设计上是有所不同的,违反了所谓的“规燃空范化”。
1、数据仓库允许有综合的导出数据,即允许数据冗余,以便进行数据的分析、有利于决策。而传统的数据烂芹是努力在避免数据冗余,使用范式原理在增强规范性,一般都要达到三范式。
2、数据仓库中的数据是多粒度的,比如说使用了时间粒度。因为数据仓库中的保留了历史数据,它不是实时更新的,所以这些数据都要含时间标记。而这在传统数据库中是不需饥段毕要的。
⑥ 理解什么是数据库规范化
规范化理论是将一个不合理的关系模式如何转化为合理的关系模式理论,规范化理论是围绕范式而建立的。规范化理论认为,一个关系型数据库中所有的关系,都应满足一定的规范。规范化理论把关系应满足的规范要求分为几级,满足凳和镇者最低要求的一级叫做第一范式(1NF),在第一范式的基础上提出了第二范式(2NF),在第二枣旅盯范式的基础上又提出了第三范式(3NF),以后又提出了BCNF范式,4NF,5NF。范式的等级越高,应满足的约束条件也越严格。规范的每一级别都依赖于它的前一级别,例如若一个关系模式满足2NF,则一定满足1NF。
对以上最简单的理解就是:数据库里面的数据存在多种异常、冗余或其他有矛盾的地方,而规范化就是消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。为了消除这些问题于是就有了以上几个范式。
⑦ 理解什么是数据库规范化
数据库规范化说白了就是通过一系列的规则空岁,范式来达到数据库的合理使用
注意只是合理,比方说减少冗余,方便读取、写入等操作,比方说最简单的一个字段不能填写多项数据,比方说姓名与身份证号不能同一时间写在一个字段内等。
但是只是达到一种方便,合理,并不是绝对说一定要规范化
比方说,有一些数据经常使用到,就会反规范化,特意增加冗余,避免跨表查询,比方说一些汽车的进货单,颜色是经常需要看到的数据,如果是规范化,进货单只有汽车名字与型号,如果要获取汽车颜色就要跨表查询汽车更详细的配置,然后再返回给客户端,如果这种操作一天之内亏哪要重复无数次,比方说是汽车销售网站,一天几万甚至是几百万访问量,每次都跨表查询,效率就很低,就为了查询一个颜色却要跨表斗空睁查询,而且颜色字段占用不了太多容量,因此会考虑反规范化,增加冗余,直接在进货单后面增加颜色字段,以提升访问效率
⑧ 1.数据库逻辑设计阶段的主要工作是什么
e(实体)-r(关系)图、属于概念设计阶段。需求分析用到的是数据流(程)图,得到的数据字典。逻辑设计得到关系模式。
⑨ 理解什么是数据库规范化
优点是降低冗余,利于保证数据的一致性和完整性;缺点是过度的规范化,易造成查询和统计时的效率下降,这主要是由于多表连接所造成的问题。适当的反规范化设计可以提高效率,但最好在那些数据不太发生变化的情况下使用。通常情况下,可以从两个方面来判断数据库是否设计的比较规范。一是看看是否拥有大量的窄表,二是宽表的数量是否足够的少。若符合这两个条件,则可以说明这个数据库的规范化水平还是比较高的。当然这是两个泛泛而谈的指标。为了达到数据库设计规范化的要求,一般来说,需要符合以下五个要求。要求一:表中应该避免可为空的列。虽然表中允许空列,但是,空字段是一种比较特殊的数据类型。数据库在处理的时候,需要进行特殊的处理。如此的话,就会增加数据库处理记录的复杂性。当表中有比较多的空字段时,在同等条件下,数据库处理的性能会降低许多。所以,虽然在数据库表设计的时候,允许表中具有空字段,但是,我们应该尽量避免。若确实需要的话,我们可以通过一些折中的方式,来处理这些空字段,让其对数据库性能的影响降低到最少。一是通过设置默认值的形式,来避免空字段的产生。如在一个人事管理系统中,有时候身份证号码字段可能允许为空。因为不是每个人都可以记住自己的身份证号码。而在员工报到的时候,可能身份证没有带在身边。所以,身份证号码字段往往不能及时提供。为此,身份证号码字段可以允许为空,以满足这些特殊情况的需要。但是,在数据库设计的时候,则可以做一些处理。如当用户没有输入内容的时候,则把这个字段的默认值设置为0或者为N/A。以避免空字段的产生。二是若一张表中,允许为空的列比较多,接近表全部列数的三分之一。而且,这些列在大部分情况下,都是可有可无的。若数据库管理员遇到这种情况,笔者建议另外建立一张副表,以保存这些列。然后通过关键字把主表跟这张副表关联起来。将数据存储在两个独立的表中使得主表的设计更为简单,同时也能够满足存储空值信息的需要。要求二:表不应该有重复的值或者列。为了解决这个问题,有多种实现方式。但是,若设计不合理的话在,则会导致重复的值或者列。如我们也可以这么设计,把客户信息、联系人都放入同一张表中。为了解决多个联系人的问题,可以设置第一联系人、第一联系人电话、第二联系人、第二联系人电话等等。若还有第三联系人、第四联系人等等,则往往还需要加入的字段。所以,在数据库设计的时候要尽量避免这种重复的值或者列的产生。笔者建议,若数据库管理员遇到这种情况,可以改变一下策略。如把客户联系人另外设置一张表。然后通过客户ID把供应商信息表跟客户联系人信息表连接起来。也就是说,尽量将重复的值放置到一张独立的表中进行管理。然后通过视图或者其他手段把这些独立的表联系起来。要求三:表中记录应该有一个唯一的标识符。在数据库表设计的时候,数据库管理员应该养成一个好习惯,用一个ID号来唯一的标识行记录,而不要通过名字、编号等字段来对纪录进行区分。每个表都应该有一个ID列,任何两个记录都不可以共享同一个ID值。另外,这个ID值最好有数据库来进行自动管理,而不要把这个任务给前台应用程序。否则的话,很容易产生ID值不统一的情况。要求四:数据库对象要有统一的前缀名。一个比较复杂的应用系统,其对应的数据库表往往以千计。若让数据库管理员看到对象名就了解这个数据库对象所起的作用,恐怕会比较困难。而且在数据库对象引用的时候,数据库管理员也会为不能迅速找到所需要的数据库对象而头疼。其次,表、视图、函数等最好也有统一的前缀。如视图可以用V为前缀,而函数则可以利用F为前缀。如此数据库管理员无论是在日常管理还是对象引用的时候,都能够在最短的时间内找到自己所需要的对象。要求五:尽量只存储单一实体类型的数据。这里将的实体类型跟数据类型不是一回事,要注意区分。这里讲的实体类型是指所需要描述对象的本身。笔者举一个例子,估计大家就可以明白其中的内容了。如现在有一个图书馆里系统,有图书基本信息、作者信息两个实体对象。若用户要把这两个实体对象信息放在同一张表中也是可以的。如可以把表设计成图书名字、图书作者等等。可是如此设计的话,会给后续的维护带来不少的麻烦。遇到这种情况时,笔者建议可以把上面这张表分解成三种独立的表,分别为图书基本信息表、作者基本信息表、图书与作者对应表等等。如此设计以后,以上遇到的所有问题就都引刃而解了。以上五条是在数据库设计时达到规范化水平的基本要求。除了这些另外还有很多细节方面的要求,如数据类型、存储过程等等。而且,数据库规范往往没有技术方面的严格限制,主要依靠数据库管理员日常工作经验的累积。第一范式每个分量不可再分第一范式消除了非主属性对键的部分函数依赖,就是第二范式第二范式消除了任何属性对键的传递依赖,就是第三范式~
⑩ 请简要说明数据库逻辑设计所包含的工作
设计数据库来的逻辑结构源,与具体的DBMS无关,主要反映业务逻辑。数据库逻辑设计是整个设计的前半段,包括所需的实体和关系,实体规范化等工作。
数据库逻辑设计决定了数据库及其应用的整体性能,调优位置。如果数据库逻辑设计不好,则所有调优方法对于提高数据库性能的效果都是有限的。为了使数据库设计的方法走向完备,数据库的规范化理论必须遵守。规范化理论为数据库逻辑设计提供了理论指导和工具,在减少了数据冗余的同时节约了存储空间,同时加快了增、删、改的速度。
另外,在规范的数据库逻辑设计时,还应考虑适当地破坏规范规则,即反规范化设计,来降低索引、表的数目,降低连接操作的数目,从而加快查询速度。常用的反规范技术有增加冗余列、增加派生列、重新组表等。
总之,在进行数据库逻辑设计时,
一定要结合应用环境和现实世界的具体情况合理地选择数据库模式。