Citater fra C.J.Date "An Introduction to Database Systems" kapitel 24:
I mange OO systemer er der tale om et integreret sprog, hvor værtssproget og database sproget er knyttet tæt sammen. [670]
Begrebet impedans mismatch refererer til den niveauforskel, der er mellem et typisk programmeringssprog, som opererer med en record ad gangen, og relationelle sprog som SQL, der opererer med en mængde (tabel) ad gangen. [670]
I mange applikationer er der behov for at vedligeholde flere forskellige versioner af et givet objekt. Dette indebærer typisk:
Det grundlæggende problem er, at komplekse transaktioner kan vare flere timer eller dage, i stedet for få millisekunder som i traditionelle systemer. Som en konsekvens heraf:
Lange transaktioner og indlejrede transaktioner er mulige løsninger på disse problemer. I forbindelse med lange transaktioner anvendes en serie savepoints, som opdeler transaktionen i en sekvens af aktioner, som hver for sig kan fortrydes med rollback. I forbindelse med indlejrede transaktioner organiseres transaktionen som et rekursivt hierarki af aktioner. [672]
Visse applikationer kræver en mere avanceret form for support af skemaændringer. [Dette er typisk tilfældet, hvor der forekommer mange og hyppige skemaændringer.] [673]
Rå performance er et af de højeste mål i alle OO systemer. Flere faktorer er relevante:
Hvordan behandles en række traditionelle aspekter ved databaser i OO sammenhæng?
I OO sammenhæng hentyder begrebet relation til de sammenhænge, som repræsenteres med fremmednøgler i en relationel database. Der skelnes mellem super-subklasse relationer, en-til-mange relationer og mange-til-mange relationer. [675]
Super-subklasse relationen repræsenteres af klassehierarkiet via arvemekanismen. [675]
En-til-mange relationen repræsenteres af containment hierarkiet (et objekt indeholder attributter, hvor andre objektklasser optræder som type), eller med en mekanisme kaldet inverse variabler. [675]
Mange-til-mange relationer repræsenteres via objektdeling (flere objekter indeholder henvisning til det samme objekt) eller med inverse variabler. [676]
I stedet for at anvende containment hierarki kan man definere to uafhængige objektklasser, hvor begge klasser indeholder referencer til den anden klasse. De to sæt referencer bliver herved hinandens inverse. Det er indlysende, at disse referencer skal holdes gensidigt konsistente. [676]
Reference validering. I forbindelse med etablering kontrolleres, at alle referencer er af den korrekte type. Sletninger er muligvis ikke tilladte - i stedet kan man lade systemet foretage garbage collection, når der ikke længere refereres til et givet objekt.
Systemvedligeholdt. Systemet sørger for, at alle referencer automatisk bliver ajourført. [677]
I OO systemer vil integritetsreglerne som oftest skulle implementeres via procedural kode. [677]
I OO systemer kan man ikke definere funktionelle afhængigheder. Det anses af nogle ligefrem for at være en dyd: "Komplekse data kan repræsenteres direkte i det objekt-orienterede system uden noget behov for normalisering". [678]
Princippet om at en funktion eller metode følger en objektklasse fungerer fint sålænge metoden kun opererer på en klasse. Der opstår derimod problemer, hvis operationen skal omfatte flere klasser. Dette er en følge af indkapslingsprincippet, som Date synes er en dårlig ide. [679]
Hvis det i OO systemer skal være muligt at
foretage ad hoc forespørgsler, må man definere klasser,
der indeholder samlinger af de objekter, man ønsker at
lave forespørgsler på, og man må forsyne denne
klasse med et passende sæt operationer, som kan tillade
de generelle forespørgsler, man er interesseret i. [680]
Indlagt 25. april 1997