• Keine Ergebnisse gefunden

Objektrelationale Datenbanken (am Beispiel Oracle)

N/A
N/A
Protected

Academic year: 2022

Aktie "Objektrelationale Datenbanken (am Beispiel Oracle)"

Copied!
48
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)
(2)

Objektorientierte Konzepte Objekt

Objekt

Einheit von Struktur und Verhalten

Struktur: Attribute / Verhalten: Methoden

Zustand eines Objekts: Attributwerte

Methoden: Lesen und Ändern des Zustands

Kommunikation mit anderen Objekten über Methoden

persistent vs. transient

Identität unabhängig von Zustand

Gehört zu einem Objekttyp

(3)

Objekttyp

Einführendes Beispiel

– Ist ein benutzerdefinierter

zusammengesetzter Datentyp

– Kapselt eine Datenstruktur zusammen mit den benötigten Methoden zur Manipulation

Attribut Attribut

Methode Methode

order_no order_no cust_info cust_info line_items line_items

amount amount

CheckStatusCheckStatus CancelCancel

ShipShip

Bestellung

(4)

Objektorientierte Konzepte Methoden

Methode

Funktion, die auf einem Objekt aufgerufen wird

Implementiert beliebigen Code

Bestandteile:

Signatur (Deklaration): Name und Parameter

Rumpf: Implementierung der Funktionalität

Konstruktur & Destruktor

Besondere Methoden zum Erzeugen und Vernichten von Objekten

Arten vom Methoden

lesende

ändern

statische (Klassenmethoden)

(5)

Struktur eines Objekttyps

Methodenrümpfe Methodenrümpfe

Public Interface

Private

Implementation

Attributdeklarationen Attributdeklarationen Methodenspezifikationen Methodenspezifikationen Spezifikation

Spezifikation

Rumpf Rumpf

(6)

Objektorientierte Konzepte Kapselung

 Kapselung

Zustand nur über öffentliche (public) Methoden abfragbar

Nicht öffentliche Methoden und Attribute nur objektintern zugänglich

 Strikte Kapselung

Zugang nur über get- und set-Methoden (für ein bestimmtes Attribut)

automatische Generierung der Zugriffsmethoden

(7)

Objektorientierte Konzepte Objektidentität

OID

Identifizierendes künstliches Merkmal eines Objekts

Systemdefinierter Identifikator (Surrogat) – vor Anwender verborgen

Ohne Semantik! (anders als Primärschlüssel)

Unveränderlich während Lebenszeit des Objekts

Referenztypen und Methoden zur Arbeit mit OIDs durch System angeboten

Typen von Gleichheit

identisch (OIDs gleich)

flach-gleich (alle Attribute gleich)

Tiefgleich (Gleichheit gilt auch für alle referenzierten Objekte)

Kopieren: flach vs. tief

(8)

Objektorientierte Konzepte Klasse

Definition

Menge von Objekten mit gleichen Attributen (Merkmalen) und Methoden (Verhalten)

Zwei Sichtweisen

Intension: Beschreibung von Attributen und Methoden = Typ einer Klasse (bzw. Objekttyp)

Extension: Menge der aktuell existierenden Objekte (Instanzen) dieser Klasse

Programmiersprachen:

Z.B. Java / C++: Klassenbegriff rein intensional

In Datenbanken: Extensionen persistent gespeichert

(9)

Objektorientierte Konzepte Spezialisierung

 Ziel: möglichst redundanzfreie Speicherung von Eigenschaften

 Klassen in Sub-/Superklassenbeziehungen (ISA-Beziehung)

 Intensional: Subklasse erbt Attribute und Methoden der Superklasse (Typvererbung)

 Extensional: Untermengenbeziehung zwischen

Extensionen von Sub- und Superklasse

(10)

Objektorientierte Konzepte Spezialisierung (Forts.)

Substituierbarkeit: Objekt überall dort einsetzbar wo auch Superklasse erlaubt ist

Mehrfachspezialisierung:

mehrere Superklassen

Erfordert Konfliktauflösung beim Erben gleichnamiger Attribute oder Methoden

Polymorphismus (Überladen) / spätes Binden (late binding)

Bei Aufruf einer Methode wird die Implementierung

ausgewählt in Abhängigkeit vom aufgerufenen Objekttyp

(11)

Objektorientierung in Datenbanken

Objektorientierte Datenbanksysteme

1985 – 1995

SQL-ähnliche Anfragesprache (OQL; Object Query Language)

Vertreter: O2, POET, ObjectStore, Versant, Objectivity, Ontos, Gemstone

Relationale DBMS behielten Überlegenheit

Anfrageoptimierung

Transaktionsverwaltung

Zugriffskontrolle

SQL:1999: Standard mit vielen objektorientierten Erweiterungen

Objektrelationale Mapping-Tools

Brückenschlag zwischen OO Programmiersprachen und RDBMS

Vertreter: EJB, JDO, OJB, Hibernate

(12)

Objektrelationale Konzepte im SQL-Standard

Typkonstruktoren

geschachtelte Anwendung: beliebig komplexe Datentypen

Benutzerdefinierte Datentypen

Distinct-Typen: Kopien eines Basisdatentyps unter eigenem Namen

Strukturierte Typen: Attribute und Methoden, Subtyp-Beziehung möglich

Benutzerdefinierte Casts (Typumwandlungen)

Benutzerdefinierte Ordnungen

Typisierte Tabellen

Basieren auf strukturiertem Typ

Tabellenhierarchien (Subtabelle steht in Untermengenbeziehung zur Supertabelle)

Typisierte Sichten

Basieren auf strukturiertem Typ (liefern typisierte Tabelle)

Sichtenhierarchien

(13)

Objektrelationale Konzepte in Oracle (Überblick)

 Definition von Objekttypen (CREATE TYPE)

 Objekttypen und Referenzen (REF)

 Methoden

 Collections (VARRAY & Nested Table)

 Typvererbung (UNDER)

 Polymorphismus (Overriding, Overloading)

 Funktionen und Prädikate für Objekte (REF,

DEREF, TREAT, IS OF)

(14)

Spezifikation eines Objekttyps

CREATE TYPE type_name AS OBJECT [(attribute1 datatype,

attribute2 datatype, . . .]

[MEMBER procedure1 | function1 spec, procedure2 | function2 spec, . . .)]

CREATE TYPE type_name AS OBJECT [(attribute1 datatype,

attribute2 datatype, . . .]

[MEMBER procedure1 | function1 spec, procedure2 | function2 spec, . . .)]

Syntax

Syntax

(15)

Rumpf eines Objekttyps

Syntax Syntax

CREATE TYPE BODY type_name AS

[MEMBER procedure1 | function1 body, procedure2 | function2 body, . . .]

CREATE TYPE BODY type_name AS

[MEMBER procedure1 | function1 body, procedure2 | function2 body, . . .]

(16)

Spezifikation eines Objekttyps (Beispiel)

CREATE OR REPLACE TYPE katalogeintrag AS OBJECT(

bestellnr NUMBER,

preis VARCHAR2(10), verlag VARCHAR2(30),

CONSTRUCTOR FUNCTION katalogeintrag (vbestellnr IN NUMBER, vpreis IN VARCHAR2)

MEMBER PROCEDURE neuerpreis (neupreis varchar2), MEMBER FUNCTION print RETURN VARCHAR2

) NOT FINAL;

(17)

Rumpf eines Objekttyps

Konstruktormethode (Beispiel)

CREATE OR REPLACE TYPE BODY katalogeintrag AS

-- Definition des benutzerdefinierten Konstruktors CONSTRUCTOR FUNCTION katalogeintrag

(vbestellnr IN NUMBER, vpreis IN VARCHAR2) RETURN SELF AS RESULT IS

BEGIN

SELF.bestellnr:=vbestellnr;

SELF.preis:=vpreis;

SELF.verlag:=‘Spektrum Akademischer Verlag‘;

RETURN;

END;

(18)

Rumpf eines Objekttyps

Definition der Methoden (Forts.)

-- Definition der Memberprozedur neuerPreis

MEMBER PROCECURE neuerPreis (neupreis VARCHAR2) IS BEGIN

SELF.preis:=neupreis;

END;

-- Definition der Memberfunktion print

MEMBER FUNCTION print (neupreis VARCHAR2) IS BEGIN

RETURN ‘Bestellnummer: ‘|| bestellnr || ‘; Preis: ‘

|| preis || ‘; Verlag‘ || verlag ; END;

-- Ende Typdefinition END;

(19)

Definition eines Subtyps

-- Definition eines Subtyps Buch von Katalogeintrag CREATE OR REPLACE TYPE buch UNDER katalogeintrtag (

isbn VARCHAR2(13), titel VARCHAR2(300), autor VARCHAR2(30),

OVERRIDING MEMBER FUNCTZION print RETURN VARCHAR2 );

weitere Details zur Typvererbung später im Skript

(20)

Aufruf von Objektmethoden

SET SERVEROUTPUT ON;

DECLARE

k1 katalogeintrag;

k2 katalogeintrag;

BEGIN

-- Aufruf des Standardkonstruktors

k1:=katalogeintrag(135782,’48,95 €.‘,‘Hanser-Verlag‘);

-- Ausgabe von k1 mittels Memberfunktion PRINT dbms_output.put_line(k1.print);

-- Aufruf des benutzerdef. Konstruktors von katalogeintrag k2:=katalogeintrag(879564,’31,70 €‘);

-- Ausgabe von k2 mittels Memberfunktion print dbms_output.put_line(k2.print);

-- Test der Memberprozedur neuerpreis k1.neuerpreis(’47,25 €‘);

dbms_output.put_line(k1.bestellnr || ‘ ‘ || k1.preis);

(21)

Verwendung von Objekten Objekttabellen

CREATE TABLE katalog OF katalogeintrag (

CONSTRAINT katalog_pk PRIMARY KEY(bestellnr) );

-- Einfügen eines DS mittels benutzerdef. Konstruktor von -- Katalogeintrag

INSERT INTO katalog values (katalogeintrag(879564,’31,70 €‘));

-- Einfügen eines DS mittels Standardkonstruktor von buch

INSERT INTO katalog values (buch(453721, ’52,90 €‘, ‘Spektrum Akademischer Verlag ‘, ‘3-8274-065-1‘, ‘Lehrbuch der

Softwaretechnik‘, ‘Helmut Balzert‘));

-- Ausgabe der DS des Supertyps SELECT * from katalog;

-- Ausgabe in Objektform

(22)

Objekttypen und Referenzen

REF (Reference)

logischer „Pointer" zu einem Row-Objekt (Datensatz)

Eingebauter (built-in) Datentyp a row object

Genutzt für Assoziationen zwischen Objekten (zusammen mit REF-Collections) – keine Foreign Keys nötig!

Erlaubt einfache Navigation durch Objekte (Punkt-Notation zum Verfolgen der Pointer) – keine Joins nötig!

Prüfen oder Ändern des referenzierten Objekts möglich

Lesen einer Kopie eines referenzierten Objekts

Ändern des REF-Wertes (Verweis auf anderes Objekt oder Null-Setzen)

„dangling reference“ feststellbar (SCOPE-Klausel kontrolliert

nicht referentielle Integrität)

(23)

REF (Referenztypkonstruktor) Beispiele

CREATE TYPE person AS OBJECT ( name VARCHAR2(30),

manager REF person );

Zugriff auf ein Objekt X des Typs PERSON

x.manager.name;

Zugriff auf eine Referenz

DECLARE OrderRef REF TO purchase_order;

SELECT REF(po) INTO OrderRef

FROM purchase_order_table po

(24)

Scoped REF

Bei Definition eines REF-Typs Beschränkung der referenzierten Tabelle möglich (scoped REF)

Vorteile:

Effizienterer Zugriff

Weniger Speicherverbrauch

Beispiel:

CREATE TABLE people ( id NUMBER(4), name_obj name_objtyp,

address_ref REF address_objtyp SCOPE is address_objtab, phones_ntab phone_ntabtyp)

(25)

Methoden

 Member-Methoden zum Zugriff auf Objektinstanzen

 SELF: Objektinstanz der aufgerufenen

Methode („SELF“ kann weggelassen werden)

 Methoden zum Vergleich von Objekten

Basisdatentypen: Ordnung vordefiniert

Benutzerdefinierte Typen: Basis zum Vergleichen und Ordnen von Objekten muss definiert werden

2 spezielle Typen von Methoden: MAP und ORDER

(26)

MAP Methode Beispiel

Abbildung (mapping) von Objekt-Instanzen auf

Basisdatentypen, Ordnen durch Aufruf MAP-Methode

obj_1 > obj_2  obj1_map() > obj2.map()

CREATE TYPE Rectangle_typ AS OBJECT(

len NUMBER,

wid NUMBER,

MAP MEMBER FUNCTION area RETURN NUMBER, ...

);

CREATE TYPE BODY Rectangle_typ AS

MAP MEMBER FUNCTION area RETURN NUMBER IS BEGIN

RETURN len * wid;

(27)

Varray

Geordnete Menge von Datenelementen des gleichen Datentyps mit variabler Anzahl (v)

Index eines Elements = Positions-Nr. im Array

Beispiel:

CREATE TYPE prices AS VARRAY(10) OF NUMBER(12,2)

Verwendung eines Varray:

Spaltentyp einer Tabelle (damit keine 1NF mehr)

Attribut eines Objekttyps

Typ einer PL/SQL Variablen, Parameter oder Rückgabewert

(28)

Nested Table

Ungeordnete Menge von Datenelementen des gleichen Typs

Hat nur eine Spalte (Basistyp oder benutzerdefiniert)

Kann auch als Multi-Column-Table betrachtet werden, wenn Elementtyp OBJECT TYPE ist.

Beispiel

-- Definition des Tabellentyps artikel_table_type für NT CREATE TYPE artikel_table_type AS TABLE OF katalogeintrag;

-- Definition einer Tabelle Publikationen mit NT-Spalte CREATE TABLE publikationen (

jahrgang NUMBER PRIMARY KEY,

katalogartikel artikel_table_type )

(29)

Multilevel-Collection-Types

Schachtelung von Collection Types in mehreren Ebenen

Beliebig komplexe Typen möglich

Mehrfach geschachtelte Collection Types:

Nested Table of Nested Table Type

Nested Table of Varray Type

Varray of Nested Table Type

Varray of Varray Type

Nested Table oder Varray of a User-Defined Type mit Attribut

vom Typ Nested Table oder Varray Type

(30)

Storage-Tables für Nested Tables

Storage-Table (STORE-Klausel)

zum Speichern der Zeilen einer Nested Table

Bei Mehrfachschachtelung auf jeder Ebene

Bezugnahme auf innere Tabelle möglich (z.B. artikel_tab) weil Attribut vorhanden (anderenfalls: COLUMN VALUE-Klausel)

Weitere physikalische Attribute (Speicherungsoptionen) möglich

(31)

Einfügen von Datensätzen bei Nested-Table-Objekten

-- Einfügen von DS in die Tabelle mit Werten für die NT- Spalte

INSERT INTO publikationen VALUES (2006, artikel_table_type (buch(453721,’52,90 €‘, ‘Spektrum Akademischer Verlag ‘, ‘3- 8274-065-1‘, ‘Lehrbuch der Softwaretechnik‘, ‘Helmut

Balzert‘)));

-- Einfügen eines DS in die Tabelle ohne NT-Daten INSERT INTO publikationen VALUES (2007,

artikel_table_type ());

(32)

Einfügen von Datensätzen bei Nested-Table-Objekten (Forts.)

-- Hinzufügen von Datensätzen zur Nested Table INSERT INTO TABLE (SELECT p.katalogartikel

FROM publikationen p WHERE p.jahrgang=2007)

VALUES (buch(163241, ’84,80 €‘, ‘Spektrum Akademischer Verlag ‘,

‘3-8274-0285-9‘, ‘Lehrbuch der Objektmodellierung‘,‘Heide Balzert‘));

INSERT INTO TABLE (SELECT p.katalogartikel FROM publikationen p

WHERE p.jahrgang=2007)

VALUES (buch(870021, ’49,60 €‘, ‘Spektrum Akademischer Verlag ‘,

‘3-8274-1449-0‘, ‘Objektorientierte Programmiersprachen‘,‘Klaus Zeppenfeld‘));

(33)

Entschachteln von Collection Queries (Beispiel)

SELECT e.empname, e.projects FROM employees e;

EMPNAME PROJECTS --- ---

'Bob' PROJECTS_LIST_NT(14, 23, 144) 'Daphne' PROJECTS_LIST_NT(14, 35)

Beispiel: Zugriff auf Projekte (Nested Table) eines Angestellten

Entschachteln von Collections bei Queries (Unnest):

Umwandeln in Zeilen (Rows)

TABLE Expression – erlaubt die Verwendung einer Collection in FROM-Klausel

Entspricht einem Join zwischen Nested Table und der Zeile, die diese enthält

(34)

Anfragen auf Collections

SELECT e.empname, p.*

FROM employees e, TABLE(e.projects) p;

EMPNAME PROJECTS --- --- 'Bob' 14

'Bob' 23 'Bob' 144 'Daphne' 14 'Daphne' 35

Beispiel: Zugriff auf Projekte (Nested Table) eines Angestellten

(35)

Anfragen auf Collections (Forts.)

SELECT *

FROM employee e, TABLE(e.projects);

PROJECTS --- 14

23 144 14

Beispiel: Zugriff auf Projekte (Nested Table) eines Angestellten (Variante ohne Angestelltennamen)

(36)

DML-Befehle auf Collections (Weitere Beispiele)

INSERT INTO TABLE(SELECT e.projects FROM employees e WHERE e.eno = 100) VALUES (1, 'Project Neptune');

UPDATE TABLE(SELECT e.projects FROM employees e

WHERE e.eno = 100) p

SET VALUE(p) = project_typ(1, 'Project Pluto') WHERE p.pno = 1;

DELETE FROM TABLE(SELECT e.projects FROM employee e

WHERE e.eno = 100) p

(37)

Typvererbung (Type Inheritcance)

Spezialisierung eines Subtyps:

Hinzufügen neuer Attribute (keine Veränderung geerbter Attribute)

Hinzufügen neuer Methoden, die im Supertyp nicht vorhanden sind

Ändern der Implementierung einer geerbten Methode

Beispiel

Object Type: Shape

Methode: calculate_area() 2 Subtypen:

Rectangle_Shape Circular_Shape

unterschiedl. Implementierungen

(38)

FINAL vs. NOT FINAL Typen und Methoden

CREATE TYPE Person_typ AS OBJECT ( ssn NUMBER,

name VARCHAR2(30),

address VARCHAR2(100)) NOT FINAL;

ALTER TYPE Person_typ FINAL;

CREATE TYPE T AS OBJECT (..., MEMBER PROCEDURE Print(),

FINAL MEMBER FUNCTION foo(x NUMBER)...

NOT FINAL: erlaube Subtypen

Änderung der FINAL-Eigenschaft über ALTER TYPE

FINAL / NOT FINAL auch auf Methoden anwendbar

(39)

Definition von Typhierarchien

CREATE TYPE Student_typ UNDER Person_typ ( deptid NUMBER,

major VARCHAR2(30)) NOT FINAL;

CREATE TYPE Employee_typ UNDER Person_typ ( empid NUMBER,

mgr VARCHAR2(30));

CREATE TYPE PartTimeStudent_typ UNDER Student_typ ( numhours NUMBER);

Subtypen mittels CREATE TYPE und UNDER-Klausel

Beispiele:

(40)

NOT INSTANTIABLE Typen und Methoden

CREATE TYPE Address_typ AS OBJECT(...) NOT INSTANTIABLE NOT FINAL;

CREATE TYPE USAddress_typ UNDER Address_typ(...);

CREATE TYPE IntlAddress_typ UNDER Address_typ(...);

CREATE TYPE T AS OBJECT ( x NUMBER,

NOT INSTANTIABLE MEMBER FUNCTION func1() RETURN NUMBER ) NOT INSTANTIABLE NOT FINAL;

NOT INSTANTIABLE: Keine Instanzen dieses Typs möglich (auch keine Konstruktor-Methode)

Auch anwendbar auf Methoden ohne Implementierung (Platzhalter)

→ zugehöriger Typ darf dann auch noch instanziierbar sein

Beispiele:

(41)

Überladen von Methoden (Overloading)

CREATE TYPE MyType_typ AS OBJECT (...,

MEMBER PROCEDURE foo(x NUMBER), ...) NOT FINAL;

CREATE TYPE MySubType_typ UNDER MyType_typ (..., MEMBER PROCEDURE foo(x DATE),

STATIC FUNCTION bar(...)...

Wenn Vielzahl von Varianten der Ausführung einer Methode

Mehrere Methoden mit gleichem Namen in einem Typ  Unterscheidung anhand der Signatur

Signatur: Methodenname, Anzahl, Typen und Reihenfolge der Parameter

Beispiel: unterschiedliche

draw()-Methoden (z.B. Hinzufügen eines Text-

Labels erfordert zusätzlichen Parameter)

(42)

Überschreiben von Methoden (Overriding)

CREATE TYPE MyType_typ AS OBJECT (..., MEMBER PROCEDURE Print(),

FINAL MEMBER FUNCTION foo(x NUMBER)...

) NOT FINAL;

CREATE TYPE MySubType_typ UNDER MyType_typ (...,

Redefinition einer geerbten Methode im Subtyp, um dessen Spezifik zu berücksichtigen

Beispiel: Methode calculate_area() (spezielle Formel bei kreisförmigen Formen gegenüber Rechtecken)

Überschreibende Methode wird ausgeführt bei Zugriff auf Instanz des Subtyps

Beim Overriding bleibt Signatur erhalten (anders als bei Overloading!)

(43)

Substituierbarkeit (Substitutability)

Typen sind substituierbar

Supertyp substituierbar durch einen seiner Subtypen

Subtyp-Instanz ist zugleich auch Instanz des Supertyps

Beispiele:

Lesen von Personen (liefert auch Instanzen der Subtypen Student, Employee)

Einschränkungen beim Arbeiten in Typhierarchien (z.B. „nur Personen, die keine Studenten sind..“

Substituierbarkeit anwendbar bei:

Attributen

Spalten

Zeilen (Rows) bei Object Tables oder Views

REF zu einem Objekttyp

Collection-Typen

Substituierbarkeit kann ausgeschaltet werden

(44)

Beispiel:

Beschränkung der Substituierbarkeit

Beschränkung der Subtypen, die in Spalte/Attribut erlaubt sind, möglich mittels IS OF type - Constraint

Beispiel:

Erzeuge eine Tabelle vom Typ Book_Type, wobei die Autoren der Bücher ausschließlich Studenten sein dürfen

CREATE TABLE Student_books OF Book_typ

COLUMN author IS OF (ONLY Student_typ);

(45)

Funktionen und Prädikate für den Umgang mit Objekten

VALUE:

In: Tabellen-Alias für Object Table oder Object View

Out: Objektinstanzen, die in Object Table oder View als Rows enthalten sind

Beispiele:

SELECT VALUE(p) FROM person_table p WHERE p.name = "John Smith";

SELECT VALUE(p) FROM ONLY(Person_v) p;

UPDATE TABLE (SELECT e.projects FROM employees e

WHERE e.eno = 100) p

SET VALUE(p) = project_typ(1, 'Project Pluto') WHERE p.pno = 1;

(46)

Funktionen und Prädikate für den Umgang mit Objekten (2)

REF:

In: Tabellen-Alias für Object Table oder Object View Out: Referenz zu einer Instanz

Beispiel:

SELECT REF(p)

FROM Person_v p

WHERE p.id = 0001 ;

DEREF:

liefert die Objekt-Instanz, auf die eine REF verweist

Beispiel:

SELECT DEREF(REF(p)) FROM Person_v p;

(47)

Funktionen und Prädikate für den Umgang mit Objekten (3)

TREAT:

zur Typanpassung (meist: Subtyp statt Supertyp)

z.B. Behandlung einer Person als Student

Zwei Anwendungen

Bei Zuweisungen an Variablen spezialisierter Typen (Supertyp-Wert → Subtyp)

Zugriff auf Attribute oder Methoden eines Subtyps des des deklarierten Typs von Zeile oder Spalte

Beispiel:

SELECT name, TREAT(VALUE(p) AS Student_typ).major major FROM persons p;

NAME MAJOR ---- --- Bob null

(48)

IS OF type:

Prädikat zum Test, ob Objekt-Instanz zum jeweiligen Subtyp gehört

Beispiele:

SELECT VALUE(p) FROM persons p

WHERE VALUE(p) IS OF (Student_typ);

VALUE(p) ---

Student_typ('Joe', 3456, 12, 10000)

PartTimeStudent_typ('Tim', 5678, 13, 1000, 20)

SELECT b.title title, b.author author FROM books b WHERE b.author IS OF (ONLY Student_typ);

TITLE AUTHOR

--- ---

Funktionen und Prädikate für den

Umgang mit Objekten (4)

Referenzen

ÄHNLICHE DOKUMENTE

Ž Bei der Reflexion von Licht am optisch dichteren Medium erfährt das elektrische Feld eine Phasenverschiebung von B , was einem Gangunterschied zwischen ein- fallender

Tractatus iuris publici de exemtionibus territorium Germaniae, Ulm 1752 Dissertatio iuris publici de interpretatione legum imperii fundamentalium, imprimis monetalium,

Das Heimtückische an der Falle ist, dass die Angst auf der einen Seite eine Angst vor der Zukunft ist: »Gut, ich kann Lungenkrebs bekommen, aber ich kann auch Glück haben.« Doch in

Eine grosse Feldschlacht von Schweitzern zu Fuß, mit der Feder aufs allerfleissigste ausgeschraffirt, verwunderlich, voll Kunst und Arbeit, in FO].1511 Eine grosse Zeichnung mit

Dem edlen Leser, auch allen dieser Studien Erfahrnen und Lehrbegierigen alle schwere und verborgene Stuck, so viel der gnädige Gott Mir zu erfahren und wissen gegeben, aufrecht

• Ein Row Type kann von einem oder mehreren Row Types abgeleitet werden. • Dabei erbt ein Typ alle Attribute

Dabei kann ein Vergleich der Gesundheitssysteme von Deutschland, Schweden und den Niederlanden dazu beitragen, neue Lösungen für die anstehenden Probleme in Deutschland zu

Die Mutter Siebenschein aber geriet aus allen Zuständen in alle Zustände, nämlich in immer anders geartete, wozu es nicht einmal solcher Zeitverhältnisse bedurft