Questa è probabilmente una domanda n00blike (o peggio). Ma ho sempre visto uno schema come una definizione di tabella in un database. Questo è sbagliato o non del tutto corretto. Non ricordo molto dai miei corsi di database.
Questa è probabilmente una domanda n00blike (o peggio). Ma ho sempre visto uno schema come una definizione di tabella in un database. Questo è sbagliato o non del tutto corretto. Non ricordo molto dai miei corsi di database.
Risposte:
schema : database : tabella :: pianta : casa : stanza
Uno schema di relazione è la definizione logica di una tabella: definisce il nome della tabella e il nome e il tipo di ciascuna colonna. È come un piano o un progetto. Uno schema di database è la raccolta di schemi di relazione per un intero database.
Una tabella è una struttura con un gruppo di righe (dette "tuple"), ognuna delle quali ha gli attributi definiti dallo schema. Le tabelle potrebbero anche contenere degli indici per facilitare la ricerca di valori su determinate colonne.
Un database è, formalmente, qualsiasi raccolta di dati. In questo contesto, il database sarebbe una raccolta di tabelle. Un DBMS (Database Management System) è il software (come MySQL, SQL Server, Oracle, ecc.) Che gestisce ed esegue un database.
In breve, uno schema è la definizione per l'intero database, quindi include tabelle, viste, procedure memorizzate, indici, chiavi primarie ed esterne, ecc.
Questo particolare post ha dimostrato di riguardare solo Oracle e la definizione di schema cambia nel contesto di un altro DB.
Probabilmente è una cosa un po 'google up ma i termini FYI sembrano variare nelle loro definizioni, che è la cosa più fastidiosa :)
In Oracle un database è un database. Nella tua testa pensa a questo come ai file di dati e ai registri di ripetizione e alla presenza fisica effettiva sul disco del database stesso (cioè non l'istanza)
Uno schema è effettivamente un utente. Più specificamente è un insieme di tabelle / processi / indici ecc. Di proprietà di un utente. Un altro utente ha uno schema diverso (tabelle che possiede), tuttavia l'utente può anche vedere gli schemi su cui ha selezionato i privilegi. Quindi un database può essere costituito da centinaia di schemi e ogni schema centinaia di tabelle. È possibile avere tabelle con lo stesso nome in schemi diversi, che si trovano nello stesso database.
Una tabella è una tabella, un insieme di righe e colonne contenenti dati ed è contenuta negli schemi.
Le definizioni possono essere diverse in SQL Server, ad esempio. Non ne sono consapevole.
Lo schema si comporta come un oggetto genitore visto nel mondo OOP. quindi non è un database stesso. può essere questo link è utile.
Ma, in MySQL, i due sono equivalenti. La parola chiave DATABASE o DATABASES può essere sostituita con SCHEMA o SCHEMAS ovunque appaia. Esempi:
I termini SCHEMA e DATABASE dipendono dal DBMS.
Una tabella è un insieme di elementi di dati (valori) organizzati mediante un modello di colonne verticali (identificate dal loro nome) e righe orizzontali. Un database contiene una o più (di solito) tabelle . E memorizzi i tuoi dati in queste tabelle. Le tabelle possono essere correlate tra loro ( Vedi qui ).
Altro sugli schemi:
In SQL 2005 uno schema è un modo per raggruppare oggetti. È un contenitore in cui puoi inserire oggetti. Le persone possono possedere questo oggetto. È possibile concedere diritti sullo schema.
Nel 2000 uno schema era equivalente a un utente. Ora si è liberato ed è abbastanza utile. È possibile inserire tutti i processi utente in un determinato schema e i processi di amministrazione in un altro. Concedi EXECUTE all'utente / ruolo appropriato e hai finito di concedere EXECUTE su procedure specifiche. Bello.
La notazione punto sarebbe così:
Server.Database.Schema.Object
o
myserver01.Adventureworks.Accounting.Beans
A Schema
è una raccolta di oggetti di database che include anche strutture logiche. Ha il nome dell'utente che lo possiede. A database
può avere un numero qualsiasi di schemi. Una tabella di un database può apparire in due diversi schemi con lo stesso nome. Un utente può visualizzare qualsiasi schema per il quale è stato assegnato il privilegio di selezione.
Contrariamente ad alcune delle risposte di cui sopra, ecco la mia comprensione basata sull'esperienza con ciascuna di esse:
database/schema :: table
database :: (schema/namespace ::) table
database/schema/user :: (tablespace ::) table
Per favore, correggimi sul fatto che tablespace sia facoltativo o meno con Oracle, è da molto tempo che mi ricordo di averli usati.
Un database contiene uno o più schemi denominati, che a loro volta contengono tabelle. Gli schemi contengono anche altri tipi di oggetti denominati, inclusi tipi di dati, funzioni e operatori. Lo stesso nome oggetto può essere utilizzato in diversi schemi senza conflitti; ad esempio, sia schema1 che myschema possono contenere tabelle denominate mytable. A differenza dei database, gli schemi non sono rigidamente separati: un utente può accedere agli oggetti in uno qualsiasi degli schemi nel database a cui è connesso, se ha i privilegi per farlo.
Esistono diversi motivi per cui si potrebbe voler usare gli schemi:
Consentire a molti utenti di utilizzare un database senza interferire tra loro.
Organizzare gli oggetti del database in gruppi logici per renderli più gestibili.
Le applicazioni di terze parti possono essere inserite in schemi separati in modo che non si scontrino con i nomi di altri oggetti.
Gli schemi sono analoghi alle directory a livello di sistema operativo, tranne per il fatto che gli schemi non possono essere nidificati.
La documentazione ufficiale può essere consultata https://www.postgresql.org/docs/9.1/ddl-schemas.html
Gli schemi contengono database.
I database fanno parte di uno schema.
Quindi, schemi> database.
Gli schemi contengono viste, stored procedure (s), database (s), trigger (s) ecc.
Uno schema non è un piano per l'intero database. È un piano / contenitore per un sottoinsieme di oggetti (es. Tabelle) all'interno di un database.
Questo significa che puoi avere più oggetti (es. Tabelle) all'interno di un database che non rientrano necessariamente nella stessa categoria funzionale. Quindi puoi raggrupparli in vari schemi e dare loro diverse autorizzazioni di accesso dell'utente.
Detto questo, non sono sicuro che tu possa avere una tabella sotto più schemi. L'interfaccia utente di Management Studio fornisce un menu a discesa per assegnare uno schema a una tabella e quindi rendere possibile la scelta di un solo schema. Immagino che se lo fai con TSQL, potrebbe creare 2 (o più) oggetti diversi con ID oggetto diversi.
Uno schema di database è un modo per raggruppare logicamente oggetti come tabelle, viste, procedure memorizzate ecc. Pensa a uno schema come un contenitore di oggetti. E le tabelle sono raccolte di righe e colonne. la combinazione di tutte le tabelle crea un db.