Boyce-Codd, vierte und fünfte normale Formen

Boyce-Codd, vierte und fünfte normale Formen

„Dies ist Teil vier der Serien, den fünf normalen Formen. Die normale Form von Boyce-Codd wird mit BCNF abgekürzt. Es ist auch als 3 bekannt.5nf. 3.5 ist 3½. Es kommt nach der dritten normalen Form. Die vierte Normalform ist 4NF abgekürzt und erfolgt nach der normalen Form der Boyce-Codd. Die fünfte Normalform ist 5NF abgekürzt und erfolgt nach der vierten Normalform.

Dieses Tutorial (Artikel) ist der vierte Teil der Tutorial -Serie, die fünf normalen Formen. Dieses Tutorial erklärt BCNF, 4NF und 5NF.

Dieses Tutorial folgt wie folgt einer Handlung: Ein Vater ist gestorben. Er hat etwas Geld für seinen Sohn hinterlassen. Sein Sohn hat beschlossen, das Geld zu verwenden, um einen Convenience -Shop zu eröffnen (starten). Der Convenience -Shop ist bereits ausgestattet und ist seit einiger Zeit in Betrieb. Der Sohn hat einige Mitarbeiter namens Clerks in dieser Tutorial -Serie. Der Sohn ist der Inhaber. Bevor der Laden betriebsbereit wurde, kannten sowohl der Inhaber als auch die Angestellten die normalen Formen nicht.

Sie, der Leser, haben diese fünf Normalform -Tutorial -Serie abgeschlossen und sind auch Datenbankentwickler. Der Sohn des verstorbenen Vater ist dein Freund. Sie haben seinen Laden in den letzten drei Tagen besucht. Am ersten Tag haben Sie sie besucht; Sie haben den Eigentümer und seine Mitarbeiter darin geschult, wie man eine Datenbanktabelle in 1NF einstellt. Am zweiten Tag haben Sie sie darauf trainiert, wie Sie einen Tisch von 1NF auf 2NF bewegen können. Am dritten Tag haben Sie sie darauf trainiert, wie Sie einen Tisch von 2NF auf 3NF bewegen können.

Heute, am vierten Tag, besuchten Sie den Laden, um nur den Inhaber auf BCNF, 4NF und 5NF in seinem Büro auszubilden.”

Boyce-Codd Normale Form

Das BCNF-Problem tritt auf, wenn ein zusammengesetzter Primärschlüssel und ein nicht-primäres Schlüsselattribut (Spalte) vorhanden sind, und der nicht-primäre Schlüssel hängt funktionell vom Teil ab (e.G., eins) der primären Schlüsselattribute, während sich die Tabelle bereits in der dritten normalen Form befindet.

Dies impliziert, dass die Spalte nicht primärer (nicht primärer Schlüssel) und die Primalspalte von Form einer Entität abhängen und als separate Tabelle entfernt werden müssen. Der andere Teil des zusammengesetzten Primärschlüssels bildet eine neue Tabelle mit der Spalte Nicht-Primes, und die Spalte Nicht-Primes ist nicht unbedingt Teil des Primärschlüssels. Der andere Teil des zusammengesetzten Primärschlüssels bleibt ein Primärschlüssel. Die damit verbundenen möglichen Abhängigkeiten aus der übergeordneten Tabelle begleiten die beiden Kindertische angemessen.

Die Trennung von Tabellen für die Boyce-Codd-Normalform ist nicht wirklich die gleiche wie die Trennung von Tabellen in 2NF und 3NF.

Eine Tabelle befindet sich in einer boyce-codd normalen Form, wenn die folgenden Regeln befolgt werden:

  1. Die Tabelle sollte bereits in der dritten normalen Form vorliegen.
  2. Kein Nicht-Prime-Attribut (Spalte) sollte vom Teil des zusammengesetzten Primärschlüssels abhängen.

Dieser zweite Punkt ist, wie zitiert, vereinfacht.

Beispiel

Im vorherigen Teil dieser Serie wurde die Saledetails -Tabelle (mit einiger Modifikation) wie folgt angegeben:

Saledetails (SaleId, Produkt, Nummernold, EinheitenPrice, Rabatt)


Eine entsprechende Tabelle mit Daten ist:

Der Verkaufspreis der Einheit ist vom Typ, Schwimmer oder Nummer. Der Hauptschlüssel in dieser Tabelle ist ein zusammengesetzter Schlüssel, der aus SaleId und Produkt besteht.

Diese Tabelle ist in 3NF. Die Anzahl der verkauften Produkte kann als abhängig von dem Produkt und nicht vom SaleId abhängen. Mit anderen Worten, ein Nicht-Primetaste kann nur vom Teil des zusammengesetzten Primärschlüssels abhängen. Dies sollte nicht passieren; und so können aus diesen drei Spalten die folgenden zwei Tabellen ergeben:

Menge (numberold, Produkt)


Und

Saledetails (saleId, numberold)


Für die Tabelle, die Menge ist der Primärschlüssel numberold. Für die neue Saledetails -Tabelle ist der Hauptschlüssel immer noch SaleId.

Aus der übergeordneten Saledetails -Tabelle ist der einzige Abhängige für Nummalold das Produkt. Aus der SALEDETAILS -Tabelle der Eltern sind die Abhängigen für SaleId Numberold, EinheitenPrice, Rabatt und ohne Produkt. Und so sollten die Tische tatsächlich sein:

Menge (numberold, Produkt)


Und

Saledetails (saleId, numberold, numberold, unitSELLELLYPRICE, Rabatt)


Zu diesem Zeitpunkt macht der Eigentümer den folgenden Kommentar:

„Ich glaube nicht, dass ich jemals die Menge eines bestimmten Produkts wissen möchte, ohne den SaleId kennen zu wollen, der vom Trio abhängt (Kauf des Kunden, Verkaufsmitarbeiter und das Datum der Transaktion).Sie, der Datenbankentwickler, antwortet wie folgt:

„Lassen Sie uns in diesem Fall die Saledetails und OrderDetails -Tabelle bei 3NF zulassen. Immerhin gehen viele kommerzielle Datenbanken nicht über 3NF hinaus, und die Unternehmen sind bequem. Wenn Sie jedoch wissen möchten, dass für eine ähnliche Tabelle die übergeordnete Tabelle in BCNF -Tabellen unterteilt wird.”

Vierte normale Form

1NF, 2NF, 3NF und BCNF sind auf funktionale Abhängigkeiten angewiesen. 4NF stützt sich auf eine besondere Art von funktionaler Abhängigkeit, die eher „störend“ ist, insbesondere wenn nicht gut verstanden. Diese eher störende Abhängigkeit wird als mehrwertige Abhängigkeit bezeichnet.

Die funktionale Abhängigkeit wird einfach als Abhängigkeit bezeichnet. Die Abhängigkeit mit mehreren Menschen wird jedoch nicht einfach als Abhängigkeit bezeichnet, da dies Verwirrung bringen würde. Es wird als mehrwertige Abhängigkeit bezeichnet.

Sie, der Datenbankentwickler, teilt dem Eigentümer Folgendes mit: „Es sollte Sie interessieren, dass jede Zelle einen einzelnen Wert haben muss, um eine Tabelle in 1NF zu haben. Hier tritt hier ein etwas ähnliches Problem auf, aber mit einer Tabelle, die bereits in BCNF nach 3NF ist. Die mehrfache Abhängigkeit ist mit dem zusammengesetzten Primärschlüssel und jede Zelle in der gesamten Tabelle hat bereits einen einzelnen Wert. In der 1NF -Ausgabe müssen die mehreren Werte in einer Zelle keinen Schlüssel betreffen. Mit der 4NF -Ausgabe gibt es mindestens drei Spalten. Wenn es nur drei Spalten gibt, bilden die drei Spalten den primären zusammengesetzten Schlüssel. In diesem Fall kann die erste Zellsäule die zweite Zellsäule bestimmen, die zweite Säule ist jedoch unabhängig von der dritten Spalte. 4NF erlaubt dies nicht.”

Mit anderen Worten, das Problem kann sein, dass die zweite Spalte von der ersten Spalte abhängt und die dritte Spalte immer noch von der ersten Spalte abhängt und in Bezug auf die Abhängigkeit von der zweiten Spalte nichts zu tun hat. 4NF erlaubt dies nicht.

Bevor Sie mit der Erklärung der abhängigen Abhängigkeit fortgesetzt werden, sollte zuerst das Problem der vierten Normalform erfolgen.

Wie das Problem von 4NF mit Convenience Shop auftreten kann

Stellen Sie sich vor. Dies konnte nicht vorgesehen werden, als Sie mit dem Convenience Shop begonnen haben.

Es kommt Ihnen ein. Dies bedeutet, dass Sie wissen müssen, wohin Kunden gehen und ihre Adressen (Straßen). Auch hier war dieses Problem am Anfang nicht vorgesehen.

Und so finden Sie die folgende Tabelle, die Sie bis zu BCNF durcharbeiten werden, bevor sich 4nf selbst zeigen kann:

Lieferung

Für Sie, den Eigentümer, ist Ihr Interesse die Kategorie des Produkts, das zu liefernde Produkt selbst und die Adresse, an die sie geliefert werden soll. Wenn man sich die gesamte Tabelle ansieht, bestimmen der Rest der Zeilenabschnitte vom Zollnamen bis zum rechten Ende die ersten drei Spalten. Mit anderen Worten, die ersten drei Spalten bilden den Primärschlüssel für den Rest der Spalten. Das heißt, die ersten drei Spalten hängen vom Rest der Spalten nach Zeilen ab. Und so müssen die ersten drei Säulenüberschriften mit einzelnen Zeilen unterstrichen werden. Damit befindet sich diese Tabelle jetzt in ihrer ersten normalen Form. Jede Kombination von horizontalen Zellen in den ersten drei Säulen ist einzigartig.

Diese Tabelle befindet sich auch in der zweiten normalen Form, da jede Kombination von horizontalen Zellen in den ersten drei Säulen eindeutig ist und es keine partielle Abhängigkeit gibt (mit wiederholten Gruppen). Es befindet sich jedoch nicht in der dritten normalen Form, da die Zeilenabschnitte (Teile) von Customername bis zum rechten Ende CustomerID beginnen (CustomerID hängt davon ab). Alles, was entfernt werden muss, muss also eine Kopie der CustomerID hinterlassen. CustomerID ist heute sowohl ein ausländischer Schlüssel als auch Teil des Hauptschlüssels. Die Tabelle ist jetzt in 3NF.

Vor Ihnen, der Datenbankentwickler und Trainer, könnte der Eigentümer fortgesetzt werden: „Anstatt mit der Spalte Kategorie, Produktspalte und Adressspalte zu arbeiten, werde ich mit der Spalte Kategorie, Produktspalte und CustomerID -Spalte arbeiten, da der CustomerID, sobald der Customer ID ist Bekannt, die Adresse kann bekannt sein, und das wäre bequemer, insbesondere für den Computer.”

Ihre Antwort: "Das ist gut, Eigentümer. Sie sind auf dem richtigen Weg. Das wird getan.”

Denken Sie daran, dass der Kundentisch bereits existiert. Dies wurde im vorherigen Teil dieser Tutorial -Serie produziert. Die einzige Tabelle, die jetzt produziert wird, ist ein Tisch, der nur die drei Hauptschlüssel hat.

Kategorie Lieferungspermutationen nach Produkt

Leider befinden sich die Spalten dieses zusammengesetzten Primärschlüssels nicht in 2nf untereinander. Es gibt Wiederholungen von Zellwerten nach unten, wobei die teilweise Abhängigkeit innerhalb des zusammengesetzten Schlüssels. Diese Wiederholungen sind nicht so konstruktiv wie sie scheinen.

Beachten Sie, dass Süßigkeiten mit dem Kunden 1 verbunden sind und auch mit dem Kunden 2 verbunden ist. Das Erfrischungsgetränk ist mit dem Kunden 1 verbunden und ist auch mit dem Kunden 2 verknüpft.

Wenn Customer 1 heute nach Süßigkeiten gefragt hat, wird er morgen nach Schokolade fragen (nicht im Tisch gezeigt). Süßwaren sind mit Customer 1 durch Süßigkeiten auf dem Tisch verbunden, kann aber auch mit dem Kunden 1 durch Pralinen in Lieferungen in Verbindung gebracht werden. Wenn Customer 1 heute nach Sprite gefragt hat, wird er morgen nach Coca-Cola bitten. Das Erfrischungsgetränk ist mit Kunden 1 bis Sprite im Tisch verbunden, kann aber auch mit Customer 1 über Coca-Cola in Verbindung gebracht werden. Das gleiche Lieferproblem tritt bei Kunden 2 auf. Diese Art der Wiederholung wird als mehrwertige Abhängigkeit bezeichnet.

Beachten Sie, dass in der obigen Tabelle die Produktspalte keine Wiederholung hat (zumindest vorerst).

Um dieses Problem zu lösen, ist es am besten, diese Wiederholungen der Spaltenwerte des Primärschlüssels in der ersten normalen Form zuerst zu setzen, um Folgendes zu führen:

Vollständige Kategorie Lieferungspermutationen nach Produkt

Permutation bedeutet, die Reihenfolge einer Vereinbarung zu ändern. In dieser Situation bedeutet es, alle verschiedenen möglichen Produktordnungen in der Produktsäule zu geben. Jetzt gibt es in dieser Tabelle mehr Wiederholungen (mehr Redundanz) als in den oben genannten. Die gute Nachricht ist, dass diese drei Kolumnen jetzt in der ersten normalen Form in Ordnung sind. 2NF und 3NF müssen für diese drei Säulen vorgesehen sein.

Erinnern Sie sich daran, dass die Lieferung zu Beginn zu Beginn des Starts des Ladens nicht vorgesehen war (in Betrieb genommen wurde). Wenn es vorgesehen wäre, wäre die allererste Transaktionstabelle im ersten Teil dieser Tutorial -Serie so gewesen:

Beachten Sie, dass die Mehrwerte in jeder Zelle in dieser Produktsäule mehr Faktoren berücksichtigt haben als das, was in der ersten Transaktionstabelle im ersten Teil der Serie passiert ist. Wenn Sie diese Tabelle in die erste normale Form bringen, würde dies zu einer einfachen Verweise auf den Leser mit einigen Änderungen in der Produktspalte führen, die hier nachgedruckt wird:

Die beiden Tabellen mit First-Normal-Form sind gleich, da die Permutation in der Produktsäule relativ zur CustomerID-Spalte ist. Vergessen Sie nicht, dass jede CustomerID hier eine Zeile in der Kundentabelle identifiziert.

Die Definition der Abhängigkeit mit mehreren Hochschulen bedeutet, dass bei drei Spalten, x, y und z und für eine bestimmte Wertezeile x, y und z, eine mehrwertige Abhängigkeit x ->> y bedeutet, dass, wenn wir x auswählen tatsächlich in der Tabelle auftreten (nennen Sie diese Wahl xC) und kompilieren Sie eine Liste aller xCYZ -Kombinationen, die in der Tabelle auftreten können, wie oben, werden wir feststellen, dass xC ist mit den gleichen y -Einträgen verbunden, unabhängig von z. Im Wesentlichen liefert das Vorhandensein von Z keine nützlichen Informationen, um die möglichen Werte von Y einzuschränken.

In der obigen Tabelle xC, Zum Beispiel ist Süßwaren und ein entsprechender Y -Wert sind Süßigkeiten. Die Kombination von Süßwaren und Süßigkeiten hat nichts mit der Customerid -Spalte zu tun, wobei der Wert möglicherweise 1 oder 2 in den Reihen. Wenn X als Erfrischungsgetränk angenommen wird, wäre ein entsprechender Y -Wert Sprite. Die Kombination aus Erfrischungsgetränk und Sprite hat nichts mit den Kundensäulen zu tun, wobei der Wert möglicherweise 1 oder 2 in den Reihen.

Aus einer zweiten Normalform und funktionalen Abhängigkeitssicht der Ansicht hängt die Kategoriespalte von der Produktspalte ab und hängt auch von der CustomerID -Spalte ab, hängt jedoch nicht von beiden Spalten ab, wenn sie kombiniert werden. Die Werte in der Produktspalte wiederholen und bestimmen die Werte in der Kategoriespalte; und die Werte in der CustomerID -Spalte Wiederholung und Bestimmung der Werte in der Kategoriespalte; Diese beiden Spalten bestimmen jedoch nicht die Werte in der Kategoriespalte.

Daher muss die Tabelle in zwei Teile aufgeteilt werden, wobei die Kategorien- und Produktspalten in die eine Richtung gehen und die Kategorie- und CustomerID -Spalten in die andere Richtung gehen: wie folgt:

Kategorie-Produkttabelle

Kategorie - Kundentabelle

Diese beiden Kindertische sind jetzt in 1NF, 2NF, 3NF, BCNF und vor allem 4nf. Die Kategorieprodukttabelle hat zusammengesetzte Primärschlüssel. Die Tabelle Kategorie-Kunden hat auch zusammengesetzte Primärschlüssel. Jede der Spaltenschlüssel ist entweder bereits ein Primärschlüssel in einer anderen Tabelle in der Datenbank oder in einer anderen Tabelle in derselben Datenbank ein Fremdschlüssel.

Diese beiden Tabellen, die die übergeordnete Tabelle ersetzen, sind nicht die einzigen Tabellen in der gesamten Datenbank. Tatsächlich beziehen sie sich mit anderen Tabellen in der Datenbank zusammen. Es gibt also noch einige Haushaltsarbeit im Datenbankdesign -Projekt, die in Bezug auf die gesamte Datenbank und diese beiden neuen Tabellen durchgeführt werden müssen.

Denken Sie an die Tabelle der Kategorieprodukte, denken Sie daran, dass in 4NF bereits eine Produkttabelle und eine Kategorie-Tabelle in 4NF in der Datenbank vorhanden sind. Damit sich eine Tabelle in normaler Form befindet, sollte sie keine der Regeln dieser normalen Form verletzen. Die Produkttabelle oder die Produkttabelle hat als Primärschlüssel und Kategorie oder Kategorie als Fremdschlüssel produktiv.

Die hier erzeugte Kategorieprodukttabelle, die hier in 4NF erstellt wurde, sollte also aufgegeben werden, da die folgenden zwei Tabellen, die in 4nF sind, alle seine Informationen (und mehr) enthalten:

Kategorien (Kategorie, KategoryName, Beschreibung)
Produkte (ProductID, CategoryId, Lieferierer, Produktname, Unitprice, QuantityInstock, Reorderlevel)


Andererseits kann die Kategorie-Kunden-Tabelle in 4NF nicht aufgegeben werden, da sie mit einigen neuen Beziehungen zur Lieferung einhergeht. Tatsächlich sollte die Tabelle besser aufgerufen werden, CategoryDelivery. Als ProductDelivery nennen es für Datenbankprogrammierer irreführend, würde aber für die Kunden, die Analphabetis in der Datenbank sind, nicht irreführend sein. Nennen Sie es CategoryDelivery. In Tabellennotationsform ist es:

CategoryDelivery (Kategorie, CustomerID)


Denken Sie daran, dass sich jede Customerid auf eine Reihe in der Kundentisch bezieht. Der zusammengesetzte Primärschlüssel lautet: Kategorie, CustomerID. Da es bereits eine Kategorientabelle mit CategoryID gibt, sollte diese Tabelle tatsächlich sein:

CategoryDelivery (CategoryId, CustomerID, Kategorie)


wobei CategoryID von Kategorie (Name) und umgekehrt abhängt.

Das Problem der Lieferung bringt also einen zusätzlichen Tisch in 4NF ein. Der Rest der Tabellen in der Datenbank befindet sich bereits in 4NF, da sie nicht gegen die nachstehend angegebenen 4NF -Regeln verstoßen.

Das Lieferproblem wurde nicht vorgesehen, bevor die Normalisierung in ihren verschiedenen Klassen zu Beginn begann. Wenn es wie oben angegeben vorgesehen wäre, wäre die Kategorieverieferung eingetroffen; in oder vor der dritten Normalformphase ohne Erwähnung von 4NF.

Vierte Regeln der Normalform Form

Eine Tabelle befindet sich in 4NF, wenn sie nicht gegen die folgenden Regeln verstößt:

  1. Es ist bereits in boyce-codd normaler Form.
  2. Die Tabelle hat keine mehrwertige Abhängigkeit.

Dies bedeutet.

Fünfte normale Form

5NF -Situationen treten selten auf, aber wenn sie auftreten, muss die fünfte Normalform berücksichtigt werden. Die fünfte Normalform ist auch als Projection -Join -Normalform bekannt. Mit der fünften Normalform gibt es mindestens drei Säulen. Wenn es nur drei interessierende Spalten gibt, gibt es einen zusammengesetzten Primärschlüssel, der aus den drei Spalten besteht.

Stellen Sie sich vor, Sie als Eigentümer haben bis zu zwei Supermarktgeschäfte in derselben Stadt und werden von denselben Lieferanten geliefert. Rufen Sie diese Geschäfte an, Shop1 und Shop2. Die Lieferanten sehen diese beiden verschiedenen Geschäfte als zwei verschiedene Kunden. Hier hat der Kunde eine andere Bedeutung. Es bedeutet einkaufen und nicht die Person. Die Bedeutung des Produkts bleibt gleich.

Es gibt also eine Tabelle mit den Primärschlüssel: Lieferant, Produkt und Kunde. Das ist:

Tabelle (Lieferant, Produkt, Kunde)


Das 5NF -Problem erscheint, wenn ein bestimmter Lieferant ein bestimmtes Produkt an mehr als einen Kunden liefern kann (die beiden Geschäfte). Außerdem kann ein bestimmter Kunde ein bestimmtes Produkt von mehr als einem Lieferanten erhalten. Und ein bestimmter Kunde kann von verschiedenen Lieferanten verschiedene Produkte erhalten. Das heißt, einer der drei Partner kann den beiden anderen Partnern das Gleiche tun.

Das heißt, ein Lieferant kann mehr als einem Kunden entsprechen. Ein Kunde kann mehr als einem Produkt entsprechen. Und ein Produkt kann mehr als einem Lieferanten entsprechen. Dies bedeutet, dass sich die folgenden drei binären Tabellen ergeben können:

Lieferantenkundenstisch
Kundenprodukttabelle
Produktversorgtertabelle


Wenn eine übergeordnete Tabelle ohne Verlust oder Hinzufügung von Informationen in drei kleinere Tabellen unterteilt werden kann und wenn die Tabellen zurückgegeben werden, gibt es immer noch keinen Verlust oder keine Hinzufügung von Informationen, dann sollte die übergeordnete Tabelle unterteilt werden. Die kleineren Tabellen sind in 5NF. In diesem Fall wurde die Abhängigkeit von Join beseitigt. Informationsverlust bedeutet, Zeilenbeziehungen zu verlieren, und das Hinzufügen von Informationen bedeutet, neue Zeilenbeziehungen hinzuzufügen.

Wenn diese zusammenbricht und wieder zusammenfassende Informationen zu Verlust oder Hinzufügung von Informationen führen würden, sollte die Tabelle nicht abgebaut werden. In diesem Fall befindet sich die übergeordnete Tabelle bereits in der fünften Normalform.

Zu diesem Zeitpunkt sagen Sie, der Datenbankentwickler und Trainer: „Inhaber, ich lasse die Daten in die Tabellen (übergeordnete Tabelle und drei kleine Tabellen) als Übung für Sie. Ich werde das morgen überprüfen.”

Fünfte Regeln der Normalform

Eine Tabelle ist in 5NF, wenn sie nicht gegen die folgenden Regeln verstößt:

  1. Es befindet sich bereits in der vierten Normalform.
  2. Die Tabelle hat keine Join -Abhängigkeit.

Dies bedeutet.

Abschluss

Eine Tabelle befindet sich in einer boyce-codd normalen Form, wenn die folgenden Regeln befolgt werden:

  1. Die Tabelle sollte bereits in der dritten normalen Form vorliegen.
  2. Kein Nicht-Prime-Attribut (Spalte) sollte vom Teil des zusammengesetzten Primärschlüssels abhängen.

Eine Tabelle befindet sich in 4NF, wenn sie nicht gegen die folgenden Regeln verstößt:

  1. Es ist bereits in boyce-codd normaler Form.
  2. Die Tabelle hat keine mehrwertige Abhängigkeit.

Eine Tabelle ist in 5NF, wenn sie nicht gegen die folgenden Regeln verstößt:

  1. Es befindet sich bereits in der vierten Normalform.
  2. Die Tabelle hat keine Join -Abhängigkeit.

Der Eigentümer sagt jetzt: „Dies erfordert eine große Feier für uns beide.”

Sie, der Datenbankentwickler, antwortet: „Warum warten wir nicht bis morgen, wenn ich alle Tabellen zusammenfügen und die Produkttabelle verbessern werde?”

Der Eigentümer reagiert mit dem Lächeln: „Was würde ich ohne dich machen?”

Sie, der Datenbankentwickler, fügen Sie hinzu, lächeln Sie: „Wir sehen uns morgen in Ihrem Büro.Und gehen.