精华内容
下载资源
问答
  • 2022-03-25 10:50:52

    外模式:

    外模式又叫子模式或用户模式,对应用户级,用户能看到的数据库和视图,跟具体的程序或项目有关,可用DML来操作。

    概念模式:

    概念又叫模式,对应概念级,所有用户的公共视图(全局视图),可用数据定义语言DDL来定义。

    内模式:

    内模式对应物理级,数据在物理介质的存储方式和存储结构

    三层模式作用:同个不同层次划分,可以达到解耦的目的。

    用户根据外模式进行数据操作,定义和建立与概念模式的映射,当修改概念模式的时候,只需改变映射,让外模式保持不变。
    同理,当内模式及存储结构发生改变时,只需改变概念模式与内模式的映射关系,概念模式就能保持不变。

    总结,三级模式可提高数据库的解耦和扩展性。

    参考

    更多相关内容
  • 这么多天里,我已经读完了《大话设计模式》。放寒假了,没有了通过学业考试的重担,阅读技术书籍的时间页多出来了不少。 在今天我刚阅读了《kafka权威指南》的第一章,关于介绍kafka这个消息发布与订阅系统的概念。...

            这么多天里,我已经读完了《大话设计模式》。放寒假了,没有了通过学业考试的重担,阅读技术书籍的时间页多出来了不少。

            在今天我刚阅读了《kafka权威指南》的第一章,关于介绍kafka这个消息发布与订阅系统的概念。在之前的一份实习中,我曾经接触到了kafka,但是我一知半解,也没有深入的了解为什么会有kafka的存在。恰巧前几天我在市图书馆看到一本名为《kafka权威指南》的书,于是就看了一小会。回来的时候意犹未竟,但也没有借回来,于是从网上找了本电子书继续学习。

            好了,现在切入正题,先总结外观模式。

    外观模式

            书中在P108页给出的定义是这样的:外观模式为子系统的一组接口提供了一个一致的界面,此模式定义了一个高层接口,这个接口使得这一个子系统更加容易使用。结构图如下:

            外观类包含了所有的子系统的方法或者属性,进行组合,方便其他人进行调用。外观模式是之前的迪米特法则和依赖倒转原则的很好体现。

            依赖倒转原则是指:高层模块不应该依赖低层模块,高层模块和低层模块都应该依赖于抽象。抽象不应该依赖于细节,而细节应该依赖于抽象。

            迪米特法则也叫最少知识原则,迪米特法则(LoD)的和心思想是如果两个类不用通信,那么这两个类就不应当发生直接的相互作用。但如果其中一个类必须要调用另一个类的某个方法的时候,需用第三者转发这个调用,及尽量可能的将成员函数和成员设置成private类型。

            外观模式可以用来解耦合,对于一个不是太大的项目,他的代码已经有坏掉的味道时(尤其是我以前写的那些项目,啊哈哈哈,有空我想根据设计模式的思想改一下),可以用外观模型进行重构和解耦合。即使用面向对象的方法,将许多功能函数归到一类里去,尤其是变量都是差不多的那些功能函数,建立起包含了成员和成员函数的类。之后,再考虑用工厂模式等方式进行进一步改进。

            或者,遇到一个较复杂的项目,也可以用外观模式进行设计,用来给原来的一楼代码提供比较清晰简单的接口。这样不用改动原来的代码,也能提供新的功能,且能降低耦合度。

    建造者模式

            建造者模式是在创建复杂对象算法应该独立于该对象的组成部分时,且创建复杂对象的步骤独立于装配该对象时。书中举了装配小人玩具的例子,装配小人玩具的步骤都是装脑袋、身体、胳膊和大腿这些步骤,不同的地方是脑袋、身体、胳膊和大腿是不一样长不一样外观这样,但步骤都是一样的,装配方式也是一样的,于是就可以使用建造者模式。换到代码中,我们实际上只要重写人物建造的抽象类的抽象方法即可。

            书中P115页给出的定义如下所示:建造者模式将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。

            建造者模式的好处在于使得建造小人的代码与表示小人结构的代码分离,由于建造者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要定义一个具体的建造者就可以了。

    观察者模式

            观察者模式又叫发布-订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使得他们能够自己更新自己。(书P131)

            观察者模式结构图如下所示:

            为什么GoF会想到观察者模式呢?当许多类组成一个相互协同作用的系统时,程序员必然需要维护各个不同,但相关的类之间的一致性。于是这就形成了一种紧耦合的类间关系,维护这样的代码会很累,这是我们所不期望出现的,于是就有了观察者模式。

            通过设定一个抽象观察者类,进而具体化出各种形形色色的观察者类,用于生成一个个不同的观察者。每一个观察者拥有一个update成员函数(方法),用于更新被观察对象的状态。Subject类则是提供了添加观察者的方法Attach和绑定观察者与被观察者的方法Detach,以及一个Notify方法用于通知所有相关的被观察者。所谓”相关的被观察者是用引用的方法将其写入subject的具体类中里来实现的。所以,当情况有变化时,就可以通过Notify方法通知所有相关的“被观察者”。

    抽象工厂模式

            先给出书上P149页的定义:抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。抽象工厂结构图如下所示:

             抽象工厂模式是对工厂方法模式的进一步改进。当有两种不同的、且类似的子类时使用。就像让一条流水线生产两种或者多种类似的商品一样,如果可以对流水线进行模块化设计,当要生产另一种商品时,能通过切换模块进行迅速转换生产对象。

            如果你不理解这句话,你就想想这个具体的例子,当一个Django项目本来用默认的SQLite写的,然后某个不写代码的又能管事的,要求你改用MySQL或者Oracle、SQL server、Access。诸如此类的事情一旦发生,对于一个没有事先使用抽象工厂模式的项目(或者那时候编码者还不知道这个模式的存在),那一定会被气的抓狂。尤其是从MySQL改成SQL server时,这意味着好多不支持的SQL语句都得修改,还得一句句的找,绝对气死人又累死人(哈哈哈好吧不吐槽了,切入正题)。

            如果项目一开始摸不准会不会中途换数据库,那就用抽象工厂模式就对了!它的思路与从简单工厂模式到工厂方法模式的想法是类似的!就是进一步细分,如图所示,设置一个工厂抽象类,用于具体化出不同的工厂,对于上一自然段的例子来讲,例如MySQL工厂、SQLserver工厂等等。该工厂类可以进而生成创建MySQL对象的“创建用户方法”。于是使用MySQL就创建MySQL对象,使用SQLserver就创建SQLserver对象。

            然后,Client也是抽象类,用于抽象出具体的用户类,例如MySQL用户类。可以用写各个具体的增删改查操作的方法了。由于各个数据库的SQL语句有差异,因此在这里分开来写就可以解决问题了。


    以上就是这么多。最近几天一是有点累,但主要的是忙。是教资复习繁忙,主要是背诵很难搞,又要练物理题,实在是累死了,所以没有太多时间继续写博客。好在这篇博客分了好几天,终于是写完了。

    END

    展开全文
  • 展开全部一、模式(Schema)定义:称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,32313133353236313431303231363533e4b893e5b19e31333365633864是所有用户的公共数据视图。理解:①一个数据库只有一个模式...

    展开全部

    一、模式(Schema)

    定义:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,32313133353236313431303231363533e4b893e5b19e31333365633864是所有用户的公共数据视图。

    理解:

    ① 一个数据库只有一个模式;

    ② 是数据库数据在逻辑级上的视图;

    ③ 数据库模式以某一种数据模型为基础;

    ④ 定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。

    二、外模式(External Schema)

    定义:也称子模式(Subschema)或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

    理解:

    ① 一个数据库可以有多个外模式;

    ② 外模式就是用户视图;

    ③ 外模式是保证数据安全性的一个有力措施。

    三、内模式(Internal Schema)

    定义:也称存储模式(Storage Schema),它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式(例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定)。

    理解:

    ① 一个数据库只有一个内模式;

    ② 一个表可能由多个文件组成,如:数据文件、索引文件。

    它是数据库管理系统(DBMS)对数据库中数据进行有效组织和管理的方法

    其目的有:

    ② 为了减少数据冗余,实现数据共享;

    ② 为了提高存取效率,改善性能。

    展开全文
  • 浅谈数据库三大模式:外模式、概念模式和内模式

    万次阅读 多人点赞 2019-09-17 09:45:56
    对应数据库的升级、外模式包括(子模式 用户模式) 用来描述用户看到或者使用那部分的数据的逻辑结构,用户根据外模式用户数据操作语句或者程序去操作数据库中的数据,外模式的主要特点用来描述组成用户视图各个记录...

    在这里插入图片描述
    人们为数据库设计了一个严谨的体系结构,数据库领域公认的标准结构是三级模式结构,它包括外模式、概念模式、内模式,有效地组织、管理数据,提高了数据库的逻辑独立性和物理独立性。用户级对应外模式,概念级对应概念模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。所谓视图,就是指观察、认识和理解数据的范围、角度和方法,是数据库在用户“眼中"的反映,很显然,不同层次(级别)用户所“看到”的数据库是不相同的。

    外模式
    外模式又称子模式或用户模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(Data Manipulation Language,DML)对这些数据记录进行操作。外模式反映了数据库系统的用户观。

    概念模式
    概念模式又称模式或逻辑模式,对应于概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。它是由数据库管理系统提供的数据模式描述语言(Data Description Language,DDL)来描述、定义的。概念模式反映了数据库系统的整体观。

    内模式
    内模式又称存储模式,对应于物理级。它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言来描述、定义的。内模式反映了数据库系统的存储观。
    在一个数据库系统中,只有唯一的数据库, 因而作为定义 、描述数据库存储结构的内模式和定义、描述数据库逻辑结构的模式,也是唯一的,但建立在数据库系统之上的应用则是非常广泛、多样的,所以对应的外模式不是唯一的,也不可能是唯一的。

    展开全文
  • 设计模式之外观模式

    千次阅读 2020-09-14 20:38:24
    外观模式(Facade Pattern),也叫过程模式。它为子系统中的一组接口提供了一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外模模式通过定义一个一致的接口,用以屏蔽内部子系统...
  • Java常见设计模式总结

    万次阅读 多人点赞 2021-09-18 17:18:54
    项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这是它能被广泛应用的原因。...
  • 该文章适用于之前学习过设计模式,但是基本忘了。使用该文章进行快速回忆。因为是应付面试(不是笔试),所以该文结合了自己的理解,使用大白话来解释各个模型,如有错误或不严谨的地方,欢迎在评论区指正。 若之前...
  • 数据库的三级模式:外模式、模式和内模式

    万次阅读 多人点赞 2014-11-23 14:57:37
    本文我们主要介绍数据库的三级模式:外模式、模式和内模式的一些知识,希望能够对您有所帮助。 AD:2014WOT全球软件技术峰会北京站 课程视频发布 对于数据库的三级模式和两级映射,可能我们并不陌生。三级模式指...
  • 外观模式的应用(Java)

    千次阅读 2020-03-29 14:06:06
    1.定义:外观模式门面模式,提供了一个统一的接口,用来访问子系统中的一群接口,外观模式定义了一个高层接口,让子系统更容易使用 2.使用场景 子系统越来越复杂,添加外观模式提供简单调用接口 构建多层系统...
  • 八:适配器模式 适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能...
  • 设计模式-外观模式(Facade Pattern)

    千次阅读 2020-01-26 12:02:00
    门面模式,提供一个统一的接口,用来访问子系统中的一群接口。 外观模式定义了一个高层接口,让子系统更容易使用,隐藏了子系统的复杂性。 类型 这种类型的设计模式属于结构型模式。 使用场景 子系统越来越复杂...
  • sensor调试之从模式同步)

    千次阅读 2021-07-19 22:17:49
    什么sensor从模式2. sensor从模式的应用场景3. 配置sensor从模式4. sensor从模式调试4.1. 从模式抓图曝光问题4.2. 从模式下海思vo不能抓取实时帧问题 1. 什么sensor从模式 通常情况下,sensor被配置成主模式,...
  • 大致按照模式的应用目标分类,设计模式可以分为创建型模式、结构型模式和行为型模式。 创建型模式,是对对象创建过程的各种问题和解决方案的总结,包括各种工厂模式(Factory、Abstract Factory)、单例模式...
  • 设计模式之结构型模式 结构型模式: 如何将类与类或者对象与对象或者类与对象结合在一起形成更大的结构 因此可以分为: 类结构型模式:由多个类可以组合成一个更大的系统,在类结构型模式中一般只存在继承关系...
  • 23种设计模式——工厂模式

    千次阅读 2021-06-11 20:02:44
    文章目录23种设计模式——工厂模式1、工厂模式概述2、简单工厂模式2.1、简单工厂模式的优缺点2.2、简单工厂模式的结构2.3、简单工厂模式的实现3、工厂方法模式3.1、工厂方法模式的优缺点3.2、工厂方法模式的结构3.3...
  • 通过一个外观类使得整个系统的接口只有一个统一的高层接口,这样就能降低用户的使用成本,就对用户屏蔽了很多实现细节,当然在我们的开发过程中,外观模式也是我们封装API的常用手段   二.外观模式定义 要求一个...
  • 设计模式之单例模式-java

    千次阅读 2021-11-23 17:02:06
    单例模式 什么是单例模式 我们知道单例模式顾名思义就是一个类只有一个实例对象,且不能通过 new 来创建该类的实例对象 ,当外部想要拿到这个类的实例的时候,不能直接获取,需要通过调用该类的方法 getInstance ...
  • 设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人...
  • 【设计模式】--外观模式

    千次阅读 2020-06-14 23:53:17
    影院管理 组建一个家庭影院: DVD播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的功能,其... //使用单例模式, 使用饿汉式 private static DVDPlayer instance = new DVDPlayer(); public
  • 【C#进阶3-4】C#设计模式

    千次阅读 2020-05-19 10:00:41
    文章目录一、目录二、设计原则三、创建型模式3.1、单例模式(Singleton Pattern)3.2、工厂方法模式(Factory Pattern)3.3、抽象工厂模式(Abstract Pattern)3.4、建造者模式(Builder Pattern)3.5、原型模式...
  • 在设计模式中,适配器模式(英语:adapter pattern)有时候称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹...
  • 单例模式2. 单例模式写法2.1 饿汉式2.2 懒汉式2.3 双重加锁机制2.4 静态内部类2.5 枚举 Enum3. 小结总结: 参考文章:【1】http://wuchong.me/blog/2014/08/28/how-to-correctly-write-singleton-pattern/ 【2】...
  • 23 种设计模式详解(全23种)

    万次阅读 多人点赞 2019-06-09 00:21:59
    设计模式的分类 ...行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 A、创建...
  • (十二)外观模式

    千次阅读 2014-02-08 11:30:58
    Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种。Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界 面被称作facade。 二、外观模式的结构 ...
  • 经典设计模式实战演练

    千次阅读 2018-07-03 02:45:11
    为了实现以上目的,前辈们从实践中总结出了一套可套用的武功招式,这就是设计模式。使用设计模式可以让你写出一手令人赏心悦目的代码。 我认为每一个后端开发者都应该学习设计模式,它是代码的精华,是程序发展的...
  • 23种设计模式分别什么名称,如何分类? 分三类: 创建型,行为型,结构型; 创建型包含: 1.单例模式 2.工厂模式 3.建造者模式 4.原型模式 5.工厂方法模式 行为型包含: 1.策略模式 2.模板方法模式 3.观察者模式 4...
  • 什么简正振动模式(即简正模)

    千次阅读 2019-08-02 16:59:14
    简正模式(或称本征振动) 在两端拉紧、绳长为 L 的绳上形成驻波的波长必须满足下列条件: L=nλ/2, λn=2L/n Vn=nu/(2L) , n=1,2,3… 即弦线上形成的驻波波长、频率均不连续。这些频率称为弦振动的本征频率,对应的...
  • TCP 带数据(即紧急模式的发送和接受)

    千次阅读 多人点赞 2018-09-13 17:36:24
    (2)带字节的位置,就是它相对于来自发送端的其余数据的发送位置:带标记。 (3)带字节的实际值。既然TCP是一个不解释应用进程所发送数据的字节流协议,带字节就可以是任何8位值。 对于TCP的紧急...
  • 一、结构型设计模式 上篇,我们呢讲解了创建型设计模式,包括 单例、原型、工厂方法,抽象工厂、构建者模式。 文章地址:https://blog.csdn.net/qq_43692950/article/details/120165779 这篇文章我们来讲解下结构...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 213,737
精华内容 85,494
关键字:

外模式也叫