PowerPoint-presentatie

Download Report

Transcript PowerPoint-presentatie

Database, Document and Content Management
Objecttechnologie in databases
Hoofdstuk 7
1
Vakgroep Telecommunicatie en Informatieverwerking
Overzicht
•
•
•
•
2
Voorbeschouwing
ODMG
SQL3
Logisch databaseontwerp
Vakgroep Telecommunicatie en Informatieverwerking
Overzicht
• Voorbeschouwing
– Ontstaan
– Basisconcepten
– Objectgeoriënteerde databasetechnologie
• ODMG
• SQL3
• Logisch databaseontwerp
3
Vakgroep Telecommunicatie en Informatieverwerking
Voorbeschouwing
operationele
modellen
traditionele
modellen
structurele
modellen
semantische
modellen
verdere
ontwikkelingen
4
•
•
•
•
“inverted list”-model
hiërarchisch model
netwerkmodel
andere operationele modellen
• semi-relationeel model
• relationeel model
• andere structurele modellen
•
•
•
•
RM/T model
object-relationeel model
objectgeoriënteerde modellen
andere semantische modellen
•
•
•
•
deductieve modellen
spatio-temporele modellen
“vage en onzekere” modellen
andere “intelligente” modellen
Vakgroep Telecommunicatie en Informatieverwerking
Voorbeschouwing
• Ontstaan
– Objectgeoriënteerd programmeerparadigma
– Nood aan semantisch rijkere datamodellen
5
Vakgroep Telecommunicatie en Informatieverwerking
Voorbeschouwing
• Basisconcepten
– Objecten, objecttypes, toestand en gedrag
Er wordt in elke objectgeoriënteerde aanpak gewerkt
met objecten die een complexe waarde hebben, die
de toestand van het object wordt genoemd. In een
systeem dat werkt met datatypes worden objecten
opgebouwd via objecttypes, waarin zowel de complexe
datastructuur van de toestand, als de specifieke
operaties die voor het object gedefinieerd zijn (gedrag),
door de softwareontwikkelaars zijn vastgelegd.
6
Vakgroep Telecommunicatie en Informatieverwerking
Voorbeschouwing
– Inkapseling van operatoren
Operatoren worden gekenmerkt door een signatuur
(de externe kenmerken) en een methode (de
implementatie)
Enkel de signatuur van de operatoren wordt zichtbaar
gemaakt voor de gebruikers. Het verborgen houden
van de methode voor de gebruikers wordt inkapseling
genoemd.
7
Vakgroep Telecommunicatie en Informatieverwerking
Voorbeschouwing
– Overerving en typehiërarchieën
Objectoriëntatie schrijft voor dat in nieuwe objecttypes
een deel van de toestand- en gedragspecificaties van
bestaande objecttypes kan worden overgenomen. De
toestand en het gedrag van het nieuwe objecttype
wordt dan bepaald door de combinatie van de overgenomen en de eigen specificaties. Het mechanisme dat
vastlegt hoe en onder welke voorwaarden deze
combinatie gebeurt, wordt het overervingsmechanisme
genoemd.
8
Vakgroep Telecommunicatie en Informatieverwerking
Voorbeschouwing
– Operatoroverlading en -polymorfisme
Bij objectoriëntatie laat het overervingsmechanisme het
typisch toe om overgeërfde operatoren te herdefiniëren
binnen het nieuwe objecttype en daarbij de naam van
de operator te behouden. Dit heet operatoroverlading.
Dezelfde operatornaam verwijst dan naar meerdere
operatoren (en methodes).
9
Vakgroep Telecommunicatie en Informatieverwerking
Voorbeschouwing
• Objectgeoriënteerde databasetechnologie
– Objectpersistentie
• Persistente objecten
• Naamgevingsmechanisme
• Bereikbaarheidsmechanisme
10
Vakgroep Telecommunicatie en Informatieverwerking
Voorbeschouwing
– Objectidentiteit
Elk object wordt geïdentificeerd door een unieke
objectidentificator (OID) die door het dbms wordt aangemaakt en toegekend. Deze identificator kan niet
worden gewijzigd (ook niet door het dbms). Een objectidentificator wordt na verwijdering van het object liefst
niet meer hergebruikt door het dbms.
11
Vakgroep Telecommunicatie en Informatieverwerking
Overzicht
• Voorbeschouwing
• ODMG
– Ontstaan
– Opbouw
– Het objectmodel
– ODL
– OQL
• SQL3
• Logisch databaseontwerp
12
Vakgroep Telecommunicatie en Informatieverwerking
ODMG
• Ontstaan
– Object Database Management Group
– De facto standaard voor objectgeoriënteerde
databases
• Opbouw
– Datadefinitietaal (ODL)
– Datamanipulatietaal (OQL)
– Taalbindingen naar C++, Smalltalk en JAVA
Opmerking:
“Impedance mismatch” is nog niet volledig weggewerkt
13
Vakgroep Telecommunicatie en Informatieverwerking
ODMG
• Het objectmodel
– Objecttypes en objecten
14
specificatie
implementatie
implementatie
implementatie
literaaltype (structuur)
implementatie
bouwsteen
• Constructie van objecttypes
interface (gedrag)
klasse (structuur + gedrag)
Vakgroep Telecommunicatie en Informatieverwerking
ODMG
• Literaaltypes
– Basistypes
» Systeemgedefinieerd
vb. long, short, float, double, boolean, char, string
» Gebruikersgedefinieerd
enumeratietypes met typeconstructor enum
vb. enum kleur {rood, groen, blauw}
– Gestructureerde types
» Systeemgedefinieerd
vb. date, time, timestamp, interval
» Gebruikersgedefinieerd
met typeconstructor struct
vb. struct punt {short x, short y}
15
Vakgroep Telecommunicatie en Informatieverwerking
ODMG
– Collectietypes
met typeconstructor set, bag, list, array
vb. set <punt>
• Interfaces
Bouwstenen voor het modelleren van gedrag.
• Klassen
– Structuur
» Attributen
» Relaties (binaire verwantschappen tussen klassen)
– Gedrag
» Operatoren
16
Vakgroep Telecommunicatie en Informatieverwerking
ODMG
– Overerving
supertype/subtype-verwantschappen
» ‘isa’-overerving
. supertype is interface
. subtupe is interface of klasse
. meervoudige overerving is toegelaten
. subtype “erft” enkel alle operatoren van de supertypes
» ‘extends’-overerving
. supertype is klasse
. subtype is klasse
. meervoudige overerving is niet toegelaten
. subtype “erft” alle attributen, relaties en operatoren van
het supertype
17
Vakgroep Telecommunicatie en Informatieverwerking
ODMG
– Objecten en literalen
» Toestand
» Objectidentificator
» Objectnamen
– Extenties en sleutels
– Integriteitrestricties
worden geïmplementeerd via de operatoren
18
Vakgroep Telecommunicatie en Informatieverwerking
ODMG
• ODL
– Objectdefinitietaal
– Fysiek databaseontwerp gebeurt via de
taalbindingen
– Voorbeeld
Kunstwerk
Schilderij
19
bezit
is_van
is_geschilderd_door
schilderde
Eigenaar
Artiest
Vakgroep Telecommunicatie en Informatieverwerking
ODMG
struct adres {string straat, short nummer, string postcode, string plaats, string land}
class Kunstwerk (extent kunstwerken
key ID)
{attribute
string ID;
attribute
real waarde;
relationship Eigenaar is_van inverse Eigenaar::bezit;
boolean verifieer_waarde() raises(waarde_onbekend);}
class Eigenaar (extent eigenaars
key naam)
{attribute
string naam;
attribute
list<struct locatie {string type, adres locatie}> adressen;
relationship set<Kunstwerk> bezit inverse Kunstwerk::is_van;
void koop(in string ID) raises(niet_beschikbaar);
void verkoop(in string ID) raises(niet_beschikbaar);}
class Schilderij extends Kunstwerk (extent schilderijen
key schilderijnaam, is_geschilderd_door)
{attribute
string schilderijnaam;
attribute
date periode;
relationship Artiest is_geschilderd_door inverse Artiest::schilderde;
boolean verifieer_waarde() raises(waarde_onbekend);}
20
Vakgroep Telecommunicatie en Informatieverwerking
ODMG
class Artiest (extent artiesten
key naam,voornaam,geboren)
{attribute
string naam;
attribute
string voornaam;
attribute
date geboren;
attribute
date gestorven;
relationship list<Schilderij> schilderde inverse Schilderij::is_geschilderd_door;}
Andere voorbeelden van overervingsspecificaties
interface Werknemer {…}
interface Loontrekker {…}
class Persoon {…}
class Patient extends Persoon {…}
class Bediende extends Persoon : Werknemer, Loontrekker {…}
class Manager extends Bediende {…}
21
Vakgroep Telecommunicatie en Informatieverwerking
ODMG
• OQL
– Objectmanipulatie gebeurt via de taalbindingen
– Verwant aan SQL
– Toegangspunten tot de database
–Geef alle schilderijen.
schilderijen
Het resultaattype is set<Schilderij>.
–Geef het schilderij met objectnaam ‘Mooiste_schilderij’.
Mooiste_schilderij
Het resultaattype is Schilderij.
–Geef de naam van de schilder van het ‘Mooiste_schilderij’.
Mooiste_schilderij.is_geschilderd_door.naam
Gebruik van een padspecificatie. Het resultaattype is string
22
Vakgroep Telecommunicatie en Informatieverwerking
ODMG
– Iteratorvariabelen
–Geef de namen van alle schilderijen waarvan de eigenaar ‘KMSK’ is.
select s.schilderijnaam from s in schilderijen
where s.is_van.naam = ‘KMSK’
Het resultaattype is bag<string>.
–Geef alle verschillende namen van schilderijen met eigenaar ‘KMSK’.
select distinct s.schilderijnaam
from s in schilderijen
where s.is_van.naam = ‘KMSK’
Gebruik van ‘distinct’. Het resultaattype is set<string>.
–Geef de namen van alle schilderijen waarvan ‘KMSK’ de eigenaar is,
alfabetisch geordend in stijgende volgorde.
select s.schilderijnaam from s in schilderijen
where s.is_van.naam = ‘KMSK’
order by s.schilderijnaam asc
Gebruik van ‘order by’. Het resultaattype is list<string>.
23
Vakgroep Telecommunicatie en Informatieverwerking
ODMG
–Verifieer de waarde van alle schilderijen waarvan de eigenaar ‘KMSK’ is.
select struct(naam:s.schilderijnaam, waarde:s.waarde,
correct:s.verifieer_waarde())
from s in schilderijen
where s.is_van.naam = ‘KMSK’
Gebruik van ‘struct’ en operatieoproep. Het resultaattype is
bag<struct(naam:string, waarde:real, correct:boolean)>.
24
Vakgroep Telecommunicatie en Informatieverwerking
ODMG
– Aggregatieoperatoren
Geef de gemiddelde waarde van alle schilderijen.
avg(select s.waarde from s in schilderijen)
Het resultaattype is real.
25
Vakgroep Telecommunicatie en Informatieverwerking
ODMG
– Werken met geordende collecties
Geef de naam en prijs van het duurste schilderij.
first(select s.schilderijnaam, s.waarde
from s in schilderijen order by s.waarde desc)
De functie ‘first’ geeft het eerste element van een lijst terug.
Het resultaattype is struct(schilderijnaam:string, waarde:real).
26
Vakgroep Telecommunicatie en Informatieverwerking
ODMG
– Groeperen
Geef per eigenaar met meer dan 5 schilderijen de gemiddelde waarde
van deze schilderijen.
select naam,
gemiddelde:avg(select p.waarde from p in partition)
from s in schilderijen
group by naam:s.is_van.naam having count(partition) > 5
Het resultaattype is set<struct(naam:string, gemiddelde:real)>.
27
Vakgroep Telecommunicatie en Informatieverwerking
Overzicht
• Voorbeschouwing
• ODMG
• SQL3
– Ontstaan
– Gebruikersgedefinieerde datatypes
– Tuple-identiteit
– Inkapseling van operatoren
– Overerving
– Multimedia
• Logisch databaseontwerp
28
Vakgroep Telecommunicatie en Informatieverwerking
SQL3
• Ontstaan
– Relationeel databasemodel
– Objectrelationeel databasemodel
• Gebruikersgedefinieerde datatypes
– Tupletypes
• Typeconstructor ‘row’
CREATE TYPE typenaam AS [ROW](componentspecificaties)
29
Vakgroep Telecommunicatie en Informatieverwerking
SQL3
Voorbeelden
CREATE TYPE adrestype AS (
straat varchar(30),
nummer integer,
plaats varchar(30),
postcode char(10),
land varchar(30) )
CREATE TYPE eigenaartype AS (
naam varchar,
adres adrestype )
30
Vakgroep Telecommunicatie en Informatieverwerking
SQL3
• Aanmaken van tabellen
CREATE TABLE tabelnaam OF typenaam
Voorbeeld
CREATE TABLE Eigenaar OF eigenaartype
(PRIMARY KEY (naam))
31
Vakgroep Telecommunicatie en Informatieverwerking
SQL3
– Rijtypes
• Typeconstructor ‘array’
type ARRAY [aantal_elementen]
Voorbeeld
CREATE TYPE Eigenaartype AS (
naam varchar,
adres adrestype ARRAY[3])
32
Vakgroep Telecommunicatie en Informatieverwerking
SQL3
• Tuple-identiteit
– Tuple-identificator
• Aanmaak:
“DERIVED” vs. “SYSTEM GENERATED”
• Gebruik:
– Uitbreiding van de “CREATE TABLE”-instructie
REF IS identificatornaam {DERIVED|SYSTEM GENERATED}
33
Vakgroep Telecommunicatie en Informatieverwerking
SQL3
Voorbeelden
CREATE TABLE Eigenaar OF Eigenaartype
REF IS eigenaar_id SYSTEM GENERATED
CREATE TABLE Eigenaar OF Eigenaartype
(REF IS eigenaar_id SYSTEM GENERATED,
PRIMARY KEY(naam))
34
Vakgroep Telecommunicatie en Informatieverwerking
SQL3
– Toevoegen van een referentie-attribuut
attribuutnaam REF(naam_tupletype)[SCOPE(tabelnaam)]
Voorbeelden
CREATE TYPE Eigenaartype AS (
naam varchar,
adres adrestype,
eigenaar_id REF(Eigenaartype))
CREATE TABLE Eigenaar OF Eigenaartype
VALUES FOR eigenaar_id ARE SYSTEM GENERATED
35
Vakgroep Telecommunicatie en Informatieverwerking
SQL3
CREATE TYPE Uitleentype AS (
van date,
tot date,
schilderij REF(Schilderijtype) SCOPE(Schilderij),
ontlener REF(Eigenaartype) SCOPE(Eigenaar))
CREATE TABLE Uitleningen OF Uitleentype
(PRIMARY KEY (van, schilderij))
Geef de naam van alle ontleners die een schilderij uit 1800 hebben
ontleend.
SELECT u.ontlener->naam
FROM Uitleningen u
WHERE u.schilderij->periode = 1800
36
Vakgroep Telecommunicatie en Informatieverwerking
SQL3
• Inkapseling van operatoren
– Gebruikersgedefinieerde operatoren
METHOD operatornaam (argumentenlijst) RETURNS type;
– Implementatie
• SQL/PSM-taal
METHOD
CREATE FUNCTION operatornaam (parameterlijst)
RETURNS type FOR naam_tupletype AS
[locale_declaraties]
{functie_corpus}
37
Vakgroep Telecommunicatie en Informatieverwerking
SQL3
• Objectgeoriënteerde programmeertaal
METHOD
CREATE FUNCTION operatornaam (parameterlijst)
RETURNS type FOR naam_tupletype AS
EXTERNAL NAME padnaam_voor_bestand
LANGUAGE naam_taal
38
Vakgroep Telecommunicatie en Informatieverwerking
SQL3
Voorbeeld
CREATE TYPE Uitleningtype AS (
van date,
tot date,
schilderij REF(Schilderijtype) SCOPE(Schilderij),
ontlener REF(Eigenaartype) SCOPE(Eigenaar),
METHOD bepaal_uitleenduur() RETURNS integer;)
METHOD
CREATE FUNCTION bepaal_uitleenduur() RETURNS integer
FOR uitleningtype AS
EXTERNAL NAME ‘/mydb/uitleenduur.class’
LANGUAGE ‘java’
39
Vakgroep Telecommunicatie en Informatieverwerking
SQL3
• Overerving
– Overerving bij tupletypes
CREATE TYPE typenaam UNDER (naam_supertype[,…])
AS [ROW](componentspecificaties)
Voorbeeld
CREATE TYPE HersteldSchilderijtype UNDER
Schilderijtype AS (
Codehersteller varchar,
datum date,
korte_omschrijving varchar,
METHOD bepaal_waarde() RETURNS real;)
40
Vakgroep Telecommunicatie en Informatieverwerking
SQL3
– Overerving bij de aanmaak van relaties
CREATE TABLE naam_subtabel UNDER naam_supertabel
Voorbeeld
CREATE TABLE Europese_Schilderijen UNDER Schilderij;
CREATE TABLE Nederlandse_Schilderijen
UNDER Europese_Schilderijen;
CREATE TABLE Belgische_Schilderijen
UNDER Europese_Schilderijen;
CREATE TABLE Brabantse_Schilderijen
UNDER Nederlandse_Schilderijen;
41
Vakgroep Telecommunicatie en Informatieverwerking
SQL3
• Multimedia
– Multimedia-objecten
• clob
• blob
– DML-operatoren
– XML
42
Vakgroep Telecommunicatie en Informatieverwerking
Overzicht
•
•
•
•
43
Voorbeschouwing
ODMG
SQL3
Logisch databaseontwerp
Vakgroep Telecommunicatie en Informatieverwerking
Logisch databaseontwerp
• Het omzettingsalgoritme voor
objectgeoriënteerde databases
6 stappen:
1) Omzetting van reguliere entiteittypes, specialisaties en
generalisaties
2) Omzetting van zwakke entiteittypes
3) Omzetting van binaire relatietypes
4) Omzetting van n-aire relatietypes waarbij n>2
5) Omzetting van categorieën
6) Toevoeging van operatoren
44
Vakgroep Telecommunicatie en Informatieverwerking
Logisch databaseontwerp
– Stap 1: Omzetting van reguliere entiteittypes,
specialisaties en generalisaties.
Voor elk regulier entiteittype uit het diagram wordt een ODL-klasse
aangemaakt.
 Kies een klassenaam.
 Maak een extentie aan voor de klasse.
 Alle attributen van het entiteittype worden toegevoegd aan de klasse.
 Maak voor de sleutelattributen een sleutel aan in de extentie van de
klasse.
 Bij een klasse die correspondeerd met een subtype in het EERdiagram wordt de naam van de klasse van het corresponderende
supertype toegevoegd in een ‘extends’-clausule.
45
Vakgroep Telecommunicatie en Informatieverwerking
Logisch databaseontwerp
Voorbeeld:
Voornaam
Achternaam
Naam
Geboren
omzetting
Artiest
Gestorven
46
Leeftijd
class Artiest (extent artiesten
key naam, geboren)
{attribute struct naamtype {string voornaam,
string achternaam} naam;
attribute date geboren;
attribute date gestorven;
integer leeftijd() raises(niet_te_berekenen);}
Vakgroep Telecommunicatie en Informatieverwerking
Logisch databaseontwerp
– Stap 2: Omzetting van zwakke entiteittypes.
Optie 2a:
Het zwak entiteittype wordt op dezelfde manier omgezet als een
regulier entiteittype. Het identificerend relatietype wordt omgezet
zoals een binair relatietype (zie stap 3).
Optie 2b:
Als het zwak entiteittype niet participeert in andere relatietypes dan
zijn identificerend relatietype, kan het worden gemodelleerd als een
attribuut van de klasse van zijn identificerend entiteittype. Het
datatype is dan van de vorm:
set < struct {…} > of list < struct {…} >
47
Vakgroep Telecommunicatie en Informatieverwerking
Logisch databaseontwerp
Voorbeeld:
Voornaam
Achternaam
Naam
Geboren
Artiest
omzetting
1
Leeftijd
Gestorven
maakt
Waarde
Periode
SNaam
N
class Artiest (extent artiesten
key naam, geboren)
{attribute struct naamtype {string voornaam,
string achternaam} naam;
attribute date geboren;
attribute date gestorven;
integer leeftijd() raises(niet_te_berekenen);
attribute set<struct schilderij {string snaam,
real waarde,
date periode}> schilderijen;}
Schilderij
48
Vakgroep Telecommunicatie en Informatieverwerking
Logisch databaseontwerp
– Stap 3: Omzetting van binaire relatietypes.
Worden gemodelleerd via relaties of attributen met een klasse als type.
 Voeg een attribuut of relatie toe aan de klasse.
 Bij een kardinaliteitrestrictie ‘meerdere’ moet een collectietype worden
opgenomen in de specificatie.
 Voeg de attributen van het relatietype toe. Dit kan door te werken met
een gestructureerd type. Bij (1:N) en (M:N) relatietypes kan men als
alternatief het relatietype modelleren door een extra klasse in te voeren.
(zie stap 4).
49
Vakgroep Telecommunicatie en Informatieverwerking
Logisch databaseontwerp
Voorbeeld:
Nummer
Titel
Auteur
Boek
N
Datum
omzetting
ontleent
1
Lezer
Naam
50
Adres
class Boek (extent boeken key nummer)
{attribute integer nummer;
attribute string titel;
attribute string auteur;
attribute struct ontlening
{date ontleendatum,
relationship Lezer is_ontleend_door inverse
Lezer::heeft_ontleend} ontleningen;}
class Lezer (extent lezers key naam)
{attribute string naam;
attribute string adres;
relationship set<Boek> heeft_ontleend inverse
Boek::ontleningen.is_ontleend_door;}
Vakgroep Telecommunicatie en Informatieverwerking
Logisch databaseontwerp
– Stap 4: Omzetting van n-aire relatietypes
waarbij n>2.
Voor elk n-air relatietype waarbij n>2 wordt een nieuwe klasse
aangemaakt.
 Kies een klassenaam.
 Maak een extentie aan voor de klasse.
 Voor elk van de betrokken entiteittypes wordt een attribuut
toegevoegd die de klasse van het entiteittype als type heeft.
 Maak voor de sleutelattributen een sleutel aan in de extentie van de
klasse. Deze bestaat uit de samenvoeging van deze attributen, tenzij
er entiteittypes voorkomen waarvoor de kardinaliteitrestrictie 1 is. In
dat geval moet bijkomend worden gecontroleerd of voldaan is aan de
irreducibiliteitvoorwaarde.
 Alle attributen van het relatietype worden toegevoegd aan de klasse.
51
Vakgroep Telecommunicatie en Informatieverwerking
Logisch databaseontwerp
Voorbeeld:
Naam
Periode
Nummer
Schilderij
Plaats
1
1
Bewaking
planning
omzetting
N
Tentoonstelling
Code
52
Naam
class Planningsonderdeel
(extent planningsonderdelen
key wordt_bezet, is_opgenomen_in)
{attribute boolean bewaking;
attribute Schilderij is_voor;
attribute Tentoonstelling is_opgenomen_in;
attribute Plaats wordt_bezet;}
Thema
Vakgroep Telecommunicatie en Informatieverwerking
Logisch databaseontwerp
– Stap 5: Omzetting van categorieën.
Beschouw de klasse die correspondeert met de categorie (deze is
aangemaakt in stap 1).
Modelleer de verwantschap tussen de categorie en elk van haar
supertypes door gepaste relaties toe te voegen aan deze klasse en
de klassen die corresponderen met de supertypes.
Opmerking:
Omdat elke entiteit van de categorie verwant is met juist één entiteit
uit juist één van de supertypes mag geen van deze relaties
gespecificeerd zijn over een collectietype.
53
Vakgroep Telecommunicatie en Informatieverwerking
Logisch databaseontwerp
Voorbeeld:
Naam
Geboren
Belastingnr
Naam
Naam
Voornaam
Plaats
Bedrijf
Persoon
Museum
‘bedrijf’
‘particulier’
‘museum’
U
Plaats
Thema
 Soort
Eigenaar
Soort
omzetting
class Eigenaar (extent eigenaars)
{attribute string soort;
relationship Persoon is_persoon inverse Persoon::is_eigenaar;
relationship Bedrijf is_bedrijf inverse Bedrijf::is_eigenaar;
relationship Museum is_museum inverse Museum::is_eigenaar;}
54
Vakgroep Telecommunicatie en Informatieverwerking
Logisch databaseontwerp
– Stap 6: Toevoeging van operatoren.
• Sleutels
• Operatoren
• Interfaces
55
Vakgroep Telecommunicatie en Informatieverwerking
Logisch databaseontwerp
• Object-relationele mapping
– Omzettingsalgoritme voor relationele databases
– Bijkomende overwegingen
• Samengestelde attributen => tupletypes
• Meerwaardige attributen => rijtypes
• Specialisaties en generalisaties
=> tupletypes + overerving bij tupletypes
• Relatietypes => referentieattributen
• Gedragspecificaties
=> ingekapselde, gebruikersgedefinieerde operatoren
56
Vakgroep Telecommunicatie en Informatieverwerking