Newsgroup: it.comp.software.database
Titolo: Database vs istanza

Ciao,
conosco un po' del mondo di mysql e ora vorrei imparare ad usare oracle come database (11g), però ho un po' di confusione.
Da quello che ho capito con Oracle non posso avere più di un database per un'istanza. Quindi se la mia istanza si chiama XE posso creare solo un db.
Con mysql ho il mio demone mysqld (in linux) che può "tenere" più database.
Potete chiarirmi un po' questo concetto di istanza e come mai non posso avere più di un db in oracle?
Grazie

 Potete chiarirmi un po' questo concetto di istanza e come mai non posso avere più di un db in oracle?
 
Semplificando: in Oracle una istanza equivale grossomodo ad un "motore" con le sue risorse (memoria, dischi, e quan't altro).
 
Non so (bene) quale sia il concetto di "database" di MySQL, e credo che in Oracle si possa fare il parallelo con il concetto di "schema".
 
Uscendo dal paragone, in O. puoi definire piu' "schemi" (collezioni di oggetti -tabelle, indici e altro- ) sotto un cappello comune e che condividono (oppure no, ma e' una estremizzazione) politiche comuni di gestione delle risorse (politiche di gestione dello spazio e del tempo.
 
Scusa se sono stato (volutamente) generico, ma senza questiti piu' specifici credo sia impossibile chiarire senza essere fumosi.
 

Il giorno martedì 20 novembre 2012 08:28:01 UTC+1, 
or4n...@hotmail.it
 ha scritto:

Con Mysql in pratica faccio:
mysql -u amministratore -p
(inserisco la password dell'utente di mysql chiamato amministratore che se ha i permessi posso creare i db così:
CREATE DATABASE mydb01;
CREATE DATABASE mydb02;
etc...

 avere più di un db in oracle?
 
Il problema della tua confusione e` dovuta dal fatto che MySQL chiama 
"database" quello che tutti gli altri RDBMS chiamano "schema". In sostanza, 
una istanza MySQL e` una istanza di database al pari di una istanza Oracle, 
in cui dentro ci sono n schemi che sono associati a x utenti (in Oracle 
l'associazione schema/utente e` 1:1, per cui non puoi creare un nuovo schema 
se non crei un nuovo utente)
 
Enrico

 "database" quello che tutti gli altri RDBMS chiamano "schema".
 
Non ne sono tanto sicuro. Il paragone piu' appropriato, secondo me,
e' tra istanza e quello che (alcuni) altri chiamano "sito", ovvero
luogo dove si "manipolano" uno o piu' database. Per quanto ne so io,
lo "schema" e' la struttura del database (tabelle, viste, indici e
quant'altro).
 
Anche perche' ho dei seri dubbi che in Oracle "crate database" metta
in piedi un'istanza... Ma, per quanto riguarda Oracle, confesso di
essere parecchio ignorante.
 
C:\>iao Angelo

Bene...Adesso sono ancora più confuso.
 
Un esempio pratico con MySQL e l'uso del software per Wordpress.
Ogni blog ha il suo database che si crea con 
CREATE DATABASE wordp01;
Se si desidera si crea un utente con i veri permessi e poi si fa un flush dei privilegi.
Nell'attivazione del blog, vengono create le varie tabelle: nessuna view o quant'altro viene fatto se non SELECT, INSERT e UPDATE e rispettive remove.
Mysql tiene poi un information_schema che contiene le informazioni sugli utenti e permessi e altre cose.
Ho sentito dire che la principale differenza di mysql è il supporto alle transizioni. Tutto qua.
Qualcuno ha un'idea più chiara?

 Qualcuno ha un'idea pi� chiara?
 
se devi usare oracle non fare paragoni con mysql e studiati oracle e 
basta sono troppo diversi.Magari parti dalla versione express:
 
http://www.blaysworld.it/2009/guida-oracle-express-introduzione
 
 
-- 
http://www.evilripper.net
 
http://www.flickr.com/photos/evilripper/
 


Ciao,
 
le differenze tra Mysql e Oracle sono tantissime, di certo il 
supporto alle transazioni è solo uno dei diversi aspetti.
Vedila cosi: entrambi sono RDBMS, quindi quello che devono fare è rendere 
disponibili le funzionalità proprie di questo genere di prodotto.
Lo fanno in modi diversi e con filosofie diverse.
 
Oracle differenzia sostanzialmente il database dall'istanza:
 
http://docs.oracle.com/cd/E11882_01/server.112/e25789/img/cncpt233.gif
 
 
L'istanza è un insieme di processi e strutture di memoria che servono per
gestire il (sottostante) database che a sua volta è un insieme di file.
Come puoi vedere dalla figura che ti ho linkato l'insieme istanza+database
è abbastanza complesso. Questa è la principale ragione per cui all'inizio 
lo studio di Oracle è lento. Spesso si tende a saltarlo perchè si 
vorrebbe subito utilizzarlo, ma è un errore perchè poi le lacune emergono
al primo problema.
 
Il consiglio che mi sento di darti è di cominciare a studiare il manuale
con i concetti fondamentali:
 
http://docs.oracle.com/cd/E11882_01/server.112/e25789/toc.htm
 
 
non devi necessariamente saperto tutto a memoria, ma almeno una lettura
completa almeno una volta dagliela, giusto per avere un paronama completo
di tutto il sistema. Poi ci sono tutti gli altri manuali che 
approfondiscono ogni singolo aspetto e volendo un'infinità di libri.
 
Mi rendo conto che non ho risposto ai tuoi dubbi ma la domanda è troppo 
generica. Se ti serve approfondire qualche aspetto particolare chiedi,
vedrai che le risposte ti arrivano.
 
ciao
M.
 
 
 
 
 
 
 

 essere parecchio ignorante.
 
In effetti e` vero, in Oracle l'istanza ed il database sono due entita` 
distinte, in quanto l'installazione del database crea l'istanza mentre il 
comando CREATE DATABASE crea il database. Il punto fuorviante e` che una 
istanza permette l'apertura di un solo database (mentre un database puo` 
essere aperto da piu` istanze), al cui interno ho piu` schemi/utenti su cui 
andro` a creare le mie strutture (tabelle, viste, procedure...)
 
Enrico


Scusate ancora,
quello che ho capito leggendo vari wiki è che:
In Oracle si ha un solo DB che può contenere degli schema (detti anche user) i quali contengono le tabelle. Mentre i database di MySQL corrispondono agli schema di Oracle e come tali, i DB contengono le tabelle.
Ho capito bene ora?

 Ho capito bene ora?
 
Concettualmente direi di si
 
Enrico