精华内容
下载资源
问答
  • 面向对象和非面向对象这两种技术存在着阻抗不匹配(impedancemismatch),因为对象由数据和行为组成,而一个关系数据库是由表和它们之间的关系组成的。虽然不可能完全消除这阻抗不匹配,你可以遵循适当的模式...
  • 对象数据和行为组成,通常可以继承,而关系数据库包括表、关系和基本的谓词计算函数,这函数用以返回想要的值。 为避免对象和关系之间的阻抗不匹配,一种方法使用一面向对象的数据。然而,系统通常需要将...

    简介

    使用关系数据库的面向对象系统开发人员通常要花费大量的时间来将对象持久化,这是因为在两种技术间存在一个基本的阻抗不匹配。对象由数据和行为组成,通常可以继承,而关系数据库包括表、关系和基本的谓词计算函数,这个函数用以返回想要的值。

    为避免对象和关系之间的阻抗不匹配,一种方法是使用一个面向对象的数据。然而,系统通常需要将对象存入一个关系型数据库,有的因为一个系统需要关系型理论或关系型数据库的成熟性,有的因为公司策略就是使用关系型数据库而非面向对象数据库。无论是什么原因,一个将对象存入关系型数据库的系统需要提供一个减少这个阻抗不匹配的设计。

    本文只描述了将对象映射到关系上的部分模式语言,但是它描述了我们认为在其他地方没有描述充分的模式。全部模式的概要可以参见[Keller 98-2],其中阐述得较好的模式是关于关系型数据库设计和优化的[Brown 96][Keller 97-1,97-2,98-1]Serializer模式[Riehle et al. 1998]描述了如何串行化对象,让它们可以向不同后端存储和获取,例如文本文件、关系数据库和RPC缓冲。

    我们曾使用或研究过若干持久对象系统(GemStone[GemStone 96], TopLink[TopLink 97-1,07-2]ObjectLens[OS 95])。另外,我们用VisaulAge for SmalltalkIllinois Department of Public Health(IDPH)实现了一个简单得持久化框架,这里介绍的模式存在于所有这些系统中。商业系统在这些模式上的使用通常比我们的框架更加彻底,我们曾更想购买一个持久化框架,但是我们的预算无法负担它们。我们这些需要使用持久框架的应用系统很简单,涉及到几十个数据表,每个应用管理一个病人的病历信息,所有应用共享病人统计信息,例如病人姓名、地址和医院、医生的信息,而每个应用各自负责某个领域,例如病人的免疫、血液检查等。虽然一个应用能够管理一个病人的大量信息,在某个时刻,它将只检查一个病人。本文的示例将向您展示在为IDPH开发的应用中,如何协同使用这些模式,解决持久化NameAddress对象的问题。

    这些模式串在一起,手拉手地工作,来解决上面提到的阻抗不匹配问题。一个持久层将开发人员和实现持久化的细节隔离开,并保护开发人员不为变更所困。持久层是构建一个层的特例,保护您远离应用程序和数据库的变更。实现持久层的方式之一是通过一个PersistentObject,另一个方法是通过一个中间人(Broker)[BMRSS 96]

    向数据库读取和写入需要基本的创建、读取、更新和删除操作,虽然每个对象能够有它们自己的访问数据库接口,但是如果您的系统向持久层提供一组共通操作,那么所有的对象都可以使用,这样的系统就会更易使用和维护。不管您采取哪种实现持久层的方式,都需要支持CRUD(创建、读取、更新和删除)操作。

    CRUD操作最终会使用SQL代码访问数据库,有某种SQL代码描述来构建实际的数据库SQL调用是很重要的。

    当从数据库取出值或者将值存回数据库,系统必须进行属性映射来映射数据库字段值和存储在对象属性中的值。阻抗不匹配的一部分就是关系型和对象系统有着不同类型的数据,映射对象和数据库的值需要转换两种技术中值的类型。

    当对象属性发生改变后,将它们存入数据库是很重要的,因此,任何持久对象系统都应该使用某种变更管理器来跟踪哪些对象发生了变化,使得系统能够跟踪到哪些对象已经被改变,以确保根据需要保存。变更管理器同时也有助于减少数据库访问,因为它只为改变过的对象创建事务并保存。

    因为在面向对象系统中每个对象都是唯一的,通过一个OID管理器为每个新对象创建一个唯一标识就很重要。同时,支持事务也是非常重要的,它确保改变一个对象是一个原子操作,可以通过一个事务管理器回滚该操作。任何访问一个RDBMS的系统将通过某种联接管理器提供对目标数据库的联接。通过一个表管理器处理数据库表名、字段名也是非常有益的。

    1中的模式目录概括了本文中讨论的模式,它列出了每个模式的名称,以及它所解决问题的简要描述。

     

    模式名称

    描述

    持久层

    提供一个层,将您的对象映射到关系数据库或其他数据库上

    CRUD

    所有持久对象至少需要的创建、读取、更新和删除操作。

    SQL代码描述

    定义实际的SQL代码,从关系数据库和其他数据库中取得值,被对象所用,反之亦然。它被用来生成执行CRUD操作的SQL代码。

    属性映射方法

    映射数据库值和对象属性值,这个模式也处理复杂对象的映射,根据数据库表的一条数据行产生对象。

    类型转换

    属性映射方法一起使用,在数据库类型和对象类型之间转换,确保数据完整性。

    变更管理器

    为维护数据完整性,跟踪对象值的变化情况,由它决定是否需要写入到数据库中。

    OID管理器

    在插入时为对象产生唯一的对象ID

    事务管理器

    当保存对象时提供事务处理机制。

    联接管理器

    得到并维护数据库联接。

    表管理器

    管理一个对象和数据库表、字段的映射

    1 模式目录


    持久层

    别名:

    关系数据库访问层

     

    动机:

    如果您构建一个大型的面向对象业务系统,而将对象保存到关系型数据库中,您可能要花很多时间去处理如何使对象持久化。如果您不够仔细,开发系统的每个程序员都不得不了解SQL代码以及访问库的代码,从而被数据库所约束。将您的系统从Microsoft Access转到DB2上会有大量的工作,乃至为一个对象添加很多变量。所以您需要将您的领域知识从对象是如何存储的知识中分离开,保护开发人员不会为这些变化所困。

     

    问题:

    如何将对象保存到一个非面向对象的存储机制中?例如关系型数据库,而开发人员不必知道实际的实现方式。

     

    特定约束:

    ?           对熟悉数据库的开发人员来说,写SQL语句很容易;

    ?           设计一个优秀的持久化机制需要花费时间,但是它不直接给用户提供什么功能;

    ?           数据库访问代价不菲,通常需要优化;

    ?           开发人员应该可以不必担心如何在数据库中存取而专注于解决应用系统的业务域问题;

    ?           有一个使用模板方法的共通接口,使代码更易重用;

    ?           使用一个单一的接口将强制所有的类拥有最低程度的共同性;

    ?           在应用系统的生命周期中,持久存储类型有可能会改变;

    ?           在应用系统的生命周期中,业务模型有可能经常会变;

     

    解决方案:

    提供一个持久层,可以从一个数据存储源中生成对象,并可以把数据保存到数据存储源中去。这一层向开发人员隐藏了对象存储的细节,这实际上是构建一个层(Layer)[BMRSS96]的特殊情况,使您自己免于变化之苦。所有持久对象都使用持久层的标准接口,如果数据存储机制改变了,只有持久层需要改变。例如,公司主管在项目开始使用Oracle,到项目中期又转到DB2上。

    系统需要知道如何存储和装载每个对象,有时候一个对象存储在多个媒介上的多个数据库中。一个对象作为另一个更复杂对象的部分,需要跟踪它是哪个对象的一部分,这叫做所有者对象。这个所有者对象的概念使编写复杂查询变的很容易,因此,持久层为每个对象和它的父对象提供唯一标识是很重要的,这个唯一标识符和父标识符在实现Proxy模式时非常有用,可以作为部件对象的占位符。

    总结一下模型名称的使用,持久层提供必要的方法,通过构造SQL代码提供CRUD操作,提供属性映射方法,为对象数据值进行类型转化,访问表管理器,提供对事务管理器的访问,通过联接管理器联接到数据库。同时持久层也有助于提供适当的变更管理,并和OID管理器协作提供唯一的对象标识。

    有很多方法可以实现一个持久层,这儿列举一二。

    1. 使用一个对象层[Keller 98]。每个域对象从一个抽象的PersisentObject类继承,知道如何执行必要的CRUD操作。本文示例使用的就是这种方式,它的主要好处是易于实现。虽然它在每个域类中都要写一些数据库相关的代码,不过这些代码是分开的,易于查找和修改,它可以在必要时进行优化,尽管一个过于优化的系统难以理解。

    2. 使用一个中间人,它可以从数据库读取域对象或将对象写入数据库,中间人必须知道每个域对象的格式,生成SQL语句去读写。这种方式将数据库代码和域对象类分离开来,是一种最具伸缩性的解决方案,不过需要很多基础部件。

    3. 用一组数据对象组成一个域对象,这些数据对象和数据库表具有一对一关系。这样,一旦一个域对象改变了,改变相应的数据对象,并且在域对象保存时,他们也将被保存。例如,一个Patient的值可以映射到NameAddress数据表,Patient对象将拥有映射到NameAddress的数据对象。VisualWorks中,ObjectShareObjectLens就是采用这种方式构造数据库对象。持久层通过这些数据对象管理起来,它很容易实现并易于理解,尽管有些慢,并且开发人员必须要维护数据库表的一一映射关系。

     

    注:主要的决策依据应该看对灵活性、伸缩性和可维护性的要求。

     

    实现举例:

    现在很多关于正确描述构建中间人[BMRSS96]的细节工作已经完成,而且我们拥有更多实现层对象的经验,因此,我们的例子将主要关注于这个模式的实现。其他在实现中间人中描述的模式在我们讨论中也将简短提到。我们所有的示例代码都将描述基于PersistentObject的实现。

    1是一个UML类图,表示一个持久层将域对象映射到关系数据库的实现。请注意在这个例子中,需要被持久化的域对象是PersistentObject的子类,PersistentObject持久层提供接口。PersistentObject表管理器交互,可以为SQL代码提供物理表名,在SQL代码生成时,PersistentObject联接管理器交互以提供必要的数据库联接。如果需要,当需要一个新的唯一标识时,向OID管理器请求。这样,PersistentObject作为一个中间的集线器,为域对象提供需要而它本身没有的任何信息。PersistentObject持久层提供标准的接口,通过和其他模式一起合作,一旦SQL代码准备好了,SQL语句将被数据库部件触发,在IBM VisualAge for Smalltalk中,这些就是AbtDBM*应用系统。

    PersistentObject的属性如下:

    ?           objectIdentifier 对象唯一的标识符,可以是数据库键值。

    ?           isChanged 标志对象是否被修改过,告诉持久层这个对象是否要写入数据库中。

    ?           isPersisted 标志对象是否曾写入到数据库中。

    ?           owningObject 标识父对象,在数据库中作为一个外键使用。注意这个外键在本对象而不是父对象中。

    PersistentObject的公共方法如下:

    ?           save 将对象数据写入到数据库中,它将更新或插入行;

    ?           delete 从数据库中删除一个对象的数据;

    ?           load 从数据库中返回一个类的单一实例及它的数据;

    ?           loadAll 从数据库返回一个类的实例集合,包含所有数据,这对为选择列表返回数据非常有用;

    ?           loadAllLike 从数据库返回一个类的实例集合,包含部分数据;

     

    1 持久类类图

     

    数据库记录可以以三种方式读取:

    ?           读取一行(PersistentObject>>load:)

    ?           读取所有记录(PersistentObject>>loadAll);

    ?           读取所有符合条件的记录(PersistentObject>>loadAllLike

    指定一个特定条件,创建一个对象的新实例并为它装载对应的属性集,这个功能可以通过PersistentObject>>load:PersistentObject>>loadAllLike:方法实现。而当您想产生一个选择列表或是下拉列表时,PersistentObject>>loadAll方法是非常有用的。

    下面的示例代码描述了上面所说的PersistentObject,它们是公共的接口方法,支持事务管理(后文详述)。read:saveAsTransaction方法将在CRUD模式中详述。

     

    Protocol for Public Interface PersistentObject (instance)

    load

           “得到匹配它自己的PersistentObject子类的单一实例”

        | oc |

        oc := self loadAllLike.

        ^oc isEmpty ifTrue: [nil] ifFalse: [oc first]

    loadAllLike

           “得到匹配它自己的PersistentObject子类的实例集合,selectionClause方法为PersistentObjectread方法准备Where子句”

        ^self calss read: ( self selectionClause )

    save

           “保存他自己到数据库中,包含在一个事务当中。”

        self class beginTrasacction.

        self saveAsTransaction.

        self class endTransaction.

    delete

           “从数据库中删除他自己,包含在一个事务当中。”

        self class beginTrasaction.

        self deleteAsTransaction.

        self class endTransaction.

     

    Protocol for Public Interface PersistentObject (class)

    loadAll

           “从数据库返回我的所有实例”

        ^self read: nil.

     

    下面是Name类的示例代码,NameAddress,因此它将有一个部件,需要被存储,这个方法被任何需要被存储而拥有持久化部件的域对象重载。

     

    Protocol for Private Interface Name (instance)

    saveComponentIfDirty

           “验证address对象的存在,并验证proxy模式没有占据这个位置,address所有者对象被设为当前对象,并且address对象的保存也是当前事务中的一部分。”

        (self address isNil or: [self address isKindOf:

                                    PPLAbstractProxy])

           ifTrue: [^nil].

        self address owningObject: self objectIdentitier.

        self address saveAsTransaction

     

    结论:

    ?           把应用开发人员从对象存储细节中隔离开来的另一个好处是易于实现域对象,因此,域模型变更的工作就变少了。总之通过封装对象持久机制的功能,可以有效地对开发人员隐藏对象存储的细节。

    ?           可以改变数据库技术,而不影响您的应用程序代码。

    ?           使改变对象存储到数据库的方式变的很容易,因为我们已将需要改变的地方隔离起来了。

    ?           用户只需要调用同样的接口去持久化对象,开发人员无需检测一条记录是否已经存在于数据库中。

    ?           SQL代码实现起来很简单的事情,用持久层可能使它变的复杂而且有时候难以操作。

    ?           持久层的优化很困难。程序员应实现对不同方式做评测来决定哪一个更适合他的实现。

     

    相关或交互的模式:

    ?           关系数据库访问层是一个很相似的模式,它描述了一个需要持久化的对象交互的层。

    ?           分层架构[Shaw 96]描述了必要的模式,将体系架构分层,以便在开发中隔离变更。

    ?           信息系统的分层架构讨论了开发分层系统的实现细节。

    ?           [BMRSS 96]描述了分层系统架构和设计时,需要考虑的细节。

     

    已知应用:

    ?           GemStone OODBMS使用持久层隐藏一个值是一个持久对象的事实。在实际需要时使用代理为持久层获取值,在这个例子中,存储系统不是关系型数据库。

    ?           Caterpillar/NCSA金融模型框架[Yoder 97]使用持久层,所有的值都通过一个Query对象存储。这个例子中,应用程序在数据库中不存储任意域对象,只是获取事务。然而,持久层仍隐藏了数据库和关系型数据库技术的细节。

    ?           ObjectShare VisualWorks Smalltalk ObjectLens[OS 95]使用持久层映射数据对象和数据库表。

    ?           VisualAge for Smalltalk也使用持久层和它们的AbtDbm*应用。VisualAge提供图形化联接的GUI构建器,形成一个持久机制。

    ?           Illinois Department of Public Health’s TOTSNewBorn Screening项目使用一个和本节例子非常相似的实现方法。

    ?           TopLinkMicroDocSparkyObject Extencer[MicroDoc 98, Sparky 98, OE 98]都提供一个持久层来将对象映射到关系型数据库中。

    ?           PLoP登记系统实现了一个持久层,将Java对象存到PostGress数据库中[JOE PUT THE REF HERE]


    CRUD

     

    别名:

           创建、读取、更新和删除

           基本持久操作

    展开全文
  • 关系数据库

    2018-05-20 20:57:45
    关系数据库是目前各类数据库中最重要、最流行的数据库,它应用数据方法来处理数据库数据,关系数据库系统支持关系模型。关系模型关系数据结构、关系操作集合和关系完整性约束三部分组成。关系模型的数据结构非常...

    关系数据库是目前各类数据库中最重要、最流行的数据库,它应用数据方法来处理数据库数据,关系数据库系统支持关系模型。关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。关系模型的数据结构非常单一,现实世界的实体以及实体间的各种联系均用关系来表示,关系操作采用集合操作,并提供丰富的完整性控制机制。


    关系模型

    关系模型的主要特征是用二维表结构表示实体集。关系模型是又若干个关系模式组成的集合。关系模式相当于记录类型·。每个关系实际上就是一张二维表,用二维表结构表示实体,用来表示实体的关系。二维表也可以用于表示实体之间联系。


    关系模型中的相关术语

    关系:一个关系就是一个二维表,每个关系有一个关系名。在SQl Server中,一个关系可以存储为一个表,并为其定义一个独立的表名。一个数据库可能包括若干个表。

    元组:在二维表中。水平方向的一行称一个元组,对应表中的一条记录。

    属性:二维表中垂直方向的列称为属性,每个属性有一个属性名,也就是实体的属性。在关系数据库中,一列就是一个字段。在SQL Server中,每个字段通过字段名、字段的数据类型以及宽度等进行描述。

    域:属性的取值范围叫作域,即不同的元组队同一个属性的取值所限定的范围。

    关键字:二维表中某一个属性或者某几个属性的组合,它的值可以唯一标识一个元组。关键字又称键,主关键字又称主键。

    外部关键字:如果表中的一个关键字不是本表的主关键字,而是另外一个表的主关键字或者候选关键字。则这个属性就称为外关键字。

    分量:元组中的一个属性值。

    关系模式:对关系的描述。----学生(学号,姓名,性别,年龄,任课老师,前驱课程)、


    主码和外码

    码是一个或多个属性组成

    候选码:关系中的某一个属性组的值能够唯一标识一个元组。则称该属性组为候选码。

    主码:若一个关系中有多个候选码,则选定其中一个为主码。主码,也称“码”或主键或关键字。

    非主属性:不包含在任何候选码中的属性,称非主属性或非码属性

    主属性:包含在任何一个候选码中的属性

    全码:关系模型的整个属性组是这个关系模式的候选码。

    外码:设F是一个关系R的一个或一个组属性,但不是关系R的码。如果F与关系S的主码K。相对应,则称F是关系R的外码,关系R称为参照关系,关系S称为被参照关系或目的关系。


    关系的性质

    1、同一个关系的属性名具有不能重复性

    2、同一个属性的数据具有同质性

    3、关系中的元组位置具有顺序无关性

    4、关系中的列的位置具有顺序无关性

    5、关系具有元组无冗余性

    6、关系中的每个分量都必须是不可分割的数据项,即要求分量的原子性。关系模型是型,关系是值。关系模式是对关系的描述,是静态的,稳定的。关系是关系模式在某一个时刻的状态或内容,是动态的、随时间不断变化的。



    展开全文
  • 关系模型的概念详见百度:关系模型 实际的关系数据库中的关系也称表,一个关系数据库就是由若干个表组成(想象一下sqlserver)。 关系模型指用二维表的形式表示实体和实体间联系的数据模型。 ...

    关系模型的概念详见百度:关系模型

    实际的关系数据库中的关系也称表,一个关系数据库就是由若干个表组成(想象一下sqlserver)。
    关系模型是指用二维表的形式表示实体和实体间联系的数据模型。

    展开全文
  • 关系数据库的概念 以关系模型建立的数据库就是...关系数据库中包含若干个关系,每个关系都关系模式确定,每个关系模式包含若干个属性和属性对应的域,所以,定义关系数据库就是逐一定义关系模式,对每一关系模式...

    关系数据库的概念

    以关系模型建立的数据库就是关系数据库(Relational Data Base,RDB),关系数据库系统的DBMS是关系型数据库管理系统(Relational DataBase Management System,RDBMS)。关系数据库中包含若干个关系,每个关系都由关系模式确定,每个关系模式包含若干个属性和属性对应的域,所以,定义关系数据库就是逐一定义关系模式,对每一关系模式逐一定义属性及其对应的域。

    关系型数据库的优点:

    容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解使用方便:通用的SQL语言使得操作关系型数据库非常方便易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率

    关系型数据库与非关系型数据库的区别

     

    关系型数据库的最大特点就是事务的一致性:传统的关系型数据库读写操作都是事务的,具有ACID的特点,这个特性使得关系型数据库可以用于几乎所有对一致性有要求的系统中,如典型的银行系统。

     但是,在网页应用中,尤其是SNS应用中,一致性却不是显得那么重要,用户A看到的内容和用户B看到同一用户C内容更新不一致是可以容忍的,或者说,两个人看到同一好友的数据更新的时间差那么几秒是可以容忍的,因此,关系型数据库的最大特点在这里已经无用武之地,起码不是那么重要了。

     相反地,关系型数据库为了维护一致性所付出的巨大代价就是其读写性能比较差,而像微博、facebook这类SNS的应用,对并发读写能力要求极高,关系型数据库已经无法应付(在读方面,传统上为了克服关系型数据库缺陷,提高性能,都是增加一级memcache来静态化网页,而在SNS中,变化太快,memchache已经无能为力了),因此,必须用新的一种数据结构存储来代替关系数据库。关系数据库的另一个特点就是其具有固定的表结构,因此,其扩展性极差,而在SNS中,系统的升级,功能的增加,往往意味着数据结构巨大变动,这一点关系型数据库也难以应付,需要新的结构化数据存储。于是,非关系型数据库应运而生,由于不可能用一种数据结构化存储应付所有的新的需求,因此,非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。必须强调的是,数据的持久存储,尤其是海量数据的持久存储,还是需要一种关系数据库。

    转载于:https://www.cnblogs.com/zxm1002/p/4733729.html

    展开全文
  • Oracle 关系数据库

    2016-06-05 22:38:45
    1、数据结构关系数据模型是由若干个关系模式组成的集合,关系模式的实例为关系,每个关系可以看成由行或列交叉组成的二维表格,表中的一行称为一个元组,可以用来标识实体集中的一个实体。 表中的列称为属性,列名即...
  • 关系数据库是表的集合,即关系的集合。表中一行代表的是若干值之间的关联,即表的一行是由有关联的若干值构成。一表是一实体集,一行就是一实体,它由共同表示一实体的有关联的若干属性的值所构成。由于一表是...
  • 关系数据库

    2016-09-26 12:32:14
    关系型模型:把世界看做是由实体和联系组成的。所谓实体就是指在现实世界中客观存在并可相互区别的事物。 实体所具有的某一特性成为属性。实体可以通过若干属性来描述,以关系模型来创建数据库成为噶UN西行...
  • 一个关系数据库由若干个表组成,表与表之间通过在一个表中包含另一个表的主键(公共属性)的方法实现数据之间的联系。 1.关系 关系(Relation)行与列交叉的二维表。表中的一行称为关系的一个元组,表中的一列称为...
  • 关系数据模型:由若干个关系模型组成的集合。 关系模型的实例:称为关系关系:可看成由行与列交叉组成的二维表格,表中的一行称为一个元组(用来标识实体集中的一个实体)。 表中的列:属性,
  • 关系数据库是以二维表格的形式组织数据 基本术语 1.表(Table) 表,也称为关系,是一二维的数据结构,它表名、构成表的各个列(如学号、姓名等)及若干行数据(各个学生的具体信息)组成。每表有一唯一...
  • 关系数据库系统中,数据都按二维表的形式组织起来,即由若干行列组成的表格。在这样的表中,每一列称为一( )?答:字段客服人员的信息管理工作内容不包括答:安排运输计划 派车管理下列选项中不属于事件的答:...
  • 前言 关系模型的数据结构...表,也称为关系二维的数据结构,它表名、构成表的各个列(如学号,姓名,性别,出生日期等)及若干行数据(各个学生的基本信息)组成。每表有一唯一的表名,表中每一行数据
  •  虽然本书针对SQL Server这特定数据库平台来阐述理论和实践的,然而,本书所体现的思想和方法,完全可以运用到其他关系数据库平台上。..  翻译的时间很紧,如果没有家人的支持和理解,很难想象如何完成这项...
  •  虽然本书针对SQL Server这特定数据库平台来阐述理论和实践的,然而,本书所体现的思想和方法,完全可以运用到其他关系数据库平台上。..  翻译的时间很紧,如果没有家人的支持和理解,很难想象如何完成这项...
  • 关系数据库的基本概念

    千次阅读 2009-02-25 13:53:00
     现在的数据库往往由多表(table)和表之间的关联关系组成的数据的集合,表个由若干行、若干列组成的二维的关系结构。 • 计算机文件: 如:ABC.DBF,客户.MDB, Total.DBC,我们称之为数据库
  • 数据库的几概念

    2019-02-14 20:07:10
    用户定义的完整性:应用环境决定,针对具体关系数据库的约束条件 索引 1. 索引的概念   索引一种数据库对象(数据结构),单独的、物理的数据库结构,它某个表中一列或若干列值的集合和相应的指向表...
  • 数据库基础

    2018-10-23 09:15:30
    导读:数据库中常用到增删改查,具体的应用一些小结,以MySQL为例来说明。 数据库基础 数据库的管理计算机的重要应用,数据的管理技术经历了这几...在关系数据库中,由若干个数据表组成,每个数据表都有很多个...
  • 关键词:磁盘读写与...在硬盘出厂时,硬盘生产商完成了低级格式化(物理格式化),作用将空白的盘片(Platter)划分为一个个同圆心、不同半径的磁道(Track),还将磁道划分为若干个扇区(Sector),每个扇区可存储...
  • 在硬盘出厂时,硬盘生产商完成了低级格式化(物理格式化),作用将空白的盘片(Platter)划分为一个个同圆心、不同半径的磁道(Track),还将磁道划分为若干个扇区(Sector),每个扇区可存储128×2的N次方(N=0.1.2.3)...
  • 在硬盘出厂时,硬盘生产商完成了低级格式化(物理格式化),作用将空白的盘片(Platter)划分为一个个同圆心、不同半径的磁道(Track),还将磁道划分为若干个扇区(Sector),每个扇区可存储128×2的N次方(N=0.1.2.3)...
  • 关系数据库的逻辑设计中,针对一具体的问题,应该如何构造一合适于它的关系模式,即应该构造几关系,每关系哪些属性组成? 二、数据模式存在的问题 2.1 例子 我们设计的数据模式可能会出现什么问题?...
  • 一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构。每个数据库至少有一个表空间(称之为system表空间)。每个表空间同一磁盘上的一个或多个文件组成,这些文件叫数据文件(...
  • 数据库设计,E-R图,关系模型范式

    千次阅读 2015-04-21 18:12:52
    数据库设计1.就是设计E-R2....关系模型是由若干个关系模式组成的集合。2.关系模式:关系模式实际上就是记录类型。它包括:模式名,属性名,值域名以及模式的主键。关系模式仅是对数据特性的描述...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 284
精华内容 113
关键字:

关系数据库是由若干个