OBJECT ORIENTED DATABASE

Slides:



Advertisements
Presentazioni simili
Programmazione object oriented in C++
Advertisements

OBJECT ORIENTED DATABASE introduzione. OGGETTO Ha due componenti:  stato: valore di alcune variabili (variabili di istanza)  comportamento: insieme.
Table View. Problemi ricorrenti Una situazione ricorrente è quella in cui il controller potrebbe avere un’altezza superiore a quella dello schermo. In.
Giuditta Cantoni, 4 E S.I.A I DATABASE. Definizione databese In informatica, il termine database, banca dati o base di dati (a volte abbreviato con il.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
CORSO elementare su DATABASE Applicativo utilizzato OpenOffice 3.0.
1 Elementi DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
Fondamenti di Informatica A - Massimo Bertozzi LE RAPPRESENTAZIONI CONCATENATE.
.  I tipi di dati non primitivi sono gli array, le struct e le union.  Gli array sono degli aggregati di variabili dello stesso tipo.  La dichiarazione.
Basi di dati - Fondamenti
Il modello logico Il modello logico.
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
L’ ORGANIZZAZIONE DEI DATI IN AZIENDA
Rileaborato da M. Lenzerini - Basi di dati
ODMG.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
di Basi di Dati: Overview
Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Corso di Basi di Dati Il Linguaggio SQL
Progettazione di una base di dati relazionale
Raccolta ed Analisi dei Requisiti nella Progettazione
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Progettazione di una base di dati relazionale
Basi di Dati: Introduzione
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Integrità referenziale
I PERMESSI IN LINUX.
Interrogazione di una base di dati relazionale
Programmazione a oggetti
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Progettazione di una base di dati relazionale
Organizzazione fisica
Il modello relazionale
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
Informatica per l’Ingegneria
MODELLAZIONE DEI DATI.
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Programmazione ad Oggetti per la Fisica
A.A Architetture di data integration
Progettazione logica: Il modello relazionale
Database
Gli schemi concettuali
Introduzione alle basi di dati
Access.
Basi di dati - Fondamenti
Progettazione concettuale
Partizionamento/accorpamento di concetti
SQL per la modifica di basi di dati
ADO Per gestire i database con tecnologia ASP si utilizzano strumenti ADO (ActiveX Data Objects): un'architettura che fornisce oggetti.
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Join, una difficoltà Impiegato Reparto Rossi A Neri B Bianchi Reparto
OpenLayers Client di mappe “non solo” WMS
Il modello relazionale
Programmazione e Laboratorio di Programmazione
APPUNTI SUL LINGUAGGIO C
Strategie di progetto Si possono utilizzare le strategie tipiche dello sviluppo di un processo di ingegnerizzazione (es. ingegneria del software). Strategie.
Interfacce in Java Superare il meccanismo dell’ereditarietà singola
Selezione e Proiezione
UML Diagramma statico di una classe
Introduzione ai DBMS I Sistemi di Gestione di Basi di Dati sono strumenti software evoluti per la gestione di grandi masse di dati residenti su memoria.
Linguaggio di Modellazione Unificato
Array e Stringhe Linguaggio C.
Array (vettori) In linguaggio C / C++.
Programmazione e Laboratorio di Programmazione
Vincoli di Integrità Non tutte le combinazioni possibili di valori dei domini su cui è definita una relazione sono accettabili. Alcuni attributi possono.
Transcript della presentazione:

OBJECT ORIENTED DATABASE introduzione

OGGETTO Ha due componenti: stato: valore di alcune variabili (variabili di istanza) comportamento: insieme delle operazioni mediante le quali è possibile operare sull’oggetto Un oggetto è quindi simile ad una variabile di un programma (se è intera ha un valore intero e si può operare su di essa con le operazioni su interi +,-,*,/), ma può avere una struttura dati complessa operazioni specifiche definite dal programmatore

ODBMS vs OOPL oggetti persistenti continuano ad esistere (su memoria di massa) anche dopo la terminazione del programma che li ha creati e possono essere condivisi da più programmi non completo incapsulamento degli oggetti le variabili di istanza sono visibili per consentire interrogazioni estemporanee Differenze tra il concetto di oggetto nei linguaggi di programmazione orientati agli oggetti e il concetto di oggetto nei sistemi di basi di dati orientati agli oggetti. Il non completo incapsulamento vuole evitare che si debba definire un’operazione ad hoc per ogni possibile interrogazione in quanto ci possono essere interrogazione che non sono prevedibili al momento in cui si progetta la base di dati. Grazie al non completo incapsulamento (attributi visibili e attributi nascosti) l’utente può specificare liberamente condizioni di selezione per ricuperare particolari oggetti. Tuttavia esistono sistemi che richiedono l’incapsulamento completo (si può accedere alle variabili di istanza solo attraverso le operazioni e le funzioni che definiscono il comportamento dell’oggetto)

ODBMS vs DBMS RELAZIONALI Corrispondenza 1:1 tra oggetti reali e oggetti memorizzati: ad ogni oggetto è assegnato dal sistema un OID (object identifier) immutabile non riutilizzabile non visibile all’utente utilizzato dal sistema per creare e gestire associazioni tra oggetti IMMUTABILE: Nelle BD relazionali l’ identificazione avviene attraverso la chiave che può essere modificata dando luogo ad una tupla diversa dalla precedente anche se rappresenta lo stesso oggetto del mondo reale. Inoltre è possibile avere due chiavi per lo stesso oggetto (ad esempio uno studente può essere identificato sia dal suo numero di matricola che dal suo codice fiscale). Un OID può essere realizzato utilizzando l’indirizzo fisico dell’oggetto. Tale scelta, se da un lato permette un accesso rapido all’oggetto, crea problemi quando si sposta l’oggetto; inoltre contrasta con il requisito di “non riutizzabilità”. La scelta più comune è quello di realizzare un OID mediante un intero lungo e di utilizzare tabelle hash per recuperare l’indirizzo fisico dell’oggetto. Alcuni dei primi sistemi richiedevano che anche il singolo valore fosse rappresentato come un oggetto, ma questo porta ad una eccessiva proliferazione di oid.

ODBMS vs DBMS RELAZIONALI Un oggetto può avere una struttura di complessità arbitraria Ad esempio è possibile definire un oggetto Reparto che “contiene” gli impiegati che lavorano nel reparto (nella definizione di reparto ci sarà un attributo che è un set di impiegati, rappresentati dai loro oid). Nel modello relazionale dovrei modellare questa situazione del mondo reale con due relazioni Reparto e Impiegato le cui tuple sono messe in relazione tramite la chiave di Reparto)

STATO DI UN OGGETTO Lo stato (valore) di un oggetto complesso è costruito a partire da altri oggetti/valori mediante costruttori di tipo (che possono essere annidati in modo arbitrario): Costruttore Stato dell’oggetto atomico un valore nel dominio base supportato dal sistema (intero, reale, ecc.) tupla <a1:i1,…,an:in> (coppie: attributo:oid) insieme {i1,…,in} multi insieme {i1,…,in}, ma ci possono essere ripetizioni lista (i1,…,in), c’è un ordinamento array (i1,…,in), ma c’è un limite al numero di elementi

COMPORTAMENTO DI UN OGGETTO Il comportamento di un oggetto è definito dall’insieme di operazioni (creazione,distruzione,modifica,ricerca e altro) che possono essere applicate all’oggetto. Un’operazione è costituita da: segnatura (o interfaccia) nome e argomenti, visibile all’utente metodo implementazione, non visibile all’utente Nei sistemi orientati ad oggetti solo pochi vincoli di integrità sono predefiniti (es.: chiave). Generalmente i vincoli di integrità sono programmati all’interno dei metodi.

Vantaggi derivanti dall’incapsulamento Possibilità di modificare sia la struttura interna di un oggetto sia l’implementazione della sue operazioni senza dover modificare i programmi che invocano tali operazioni (indipendenza dei dati e delle operazioni)

SPECIFICA DELLA PERSISTENZA Ci sono due meccanismi per rendere persistente un ogetto: denominazione attribuire un nome unico persistente raggiungibilità rendere l’oggetto raggiungibile da oggetti persistenti

TIPO DI UN OGGETTO E’ definito da: struttura (mediante costruttori di tipo si definisce l’insieme degli stati ammissibili per un oggetto) operazioni (mediante la segnatura) E’ identificato da un nome

ESTENSIONI La dichiarazione di una relazione in un DBMS relazionale definisce sia un tipo (schema della relazione) che un contenitore (l’istanza della relazione) di oggetti (tuple) di quel tipo. In un OODBMS occorre dichiarare esplicitamente un oggetto (estensione) il cui tipo è una collezione di oggetti dello stesso tipo.

GERARCHIE DI TIPI Un tipo può essere definito come sottotipo di un altro tipo (supertipo). Il sottotipo eredita struttura e operazioni del supertipo. Inoltre può avere ulteriori variabili di istanza e operazioni. I sistemi orientati ad oggetti consentono la definizione di tipi a partire da tipi già definiti conducendo ad una gerarchia di tipi.

POLIMORFISMO Un’ operazione può avere diverse implementazioni per diversi sottotipi di uno stesso tipo. La scelta dell’implementazione può essere fatta: a tempo di compilazione (binding statico) a tempo di esecuzione (binding dinamico)