Sono davvero confuso con i termini database, utente e schema. Qualcuno può spiegare come sono diversi l'uno dall'altro (se lo sono)?
Se sono uguali, quali sono le somiglianze tra loro? Come li usiamo? E come li creiamo?
Sono davvero confuso con i termini database, utente e schema. Qualcuno può spiegare come sono diversi l'uno dall'altro (se lo sono)?
Se sono uguali, quali sono le somiglianze tra loro? Come li usiamo? E come li creiamo?
Risposte:
In Oracle, utenti e schemi sono essenzialmente la stessa cosa. È possibile considerare che un utente è l'account utilizzato per connettersi a un database e uno schema è l'insieme di oggetti (tabelle, viste, ecc.) Che appartengono a tale account.
Vedi questo post su Stack Overflow: differenza tra un utente e uno schema in Oracle? per maggiori dettagli e collegamenti extra.
Si creano utenti con la create user
dichiarazione. Questo "crea" anche lo schema (inizialmente vuoto): non è possibile creare uno schema in quanto tale, è legato all'utente. Una volta creato l'utente, un amministratore può concedere privilegi all'utente, che gli consentirà di creare tabelle, eseguire select
query insert
e tutto il resto.
Il database è la cosa che contiene tutti gli utenti che hai creato e i loro dati (e un gruppo di utenti di sistema predefiniti, tabelle, viste, ecc. Che fanno funzionare tutto). Dovresti guardare la documentazione di Oracle Database Architecture nella Guida ai concetti (in realtà, l'intera pagina merita una lettura - c'è una sezione sugli utenti e gli schemi più in alto in quella pagina) per avere un'introduzione a cosa sia un database e cosa istanza del database è - due concetti importanti.
È possibile creare un database con l' create database
istruzione, dopo aver installato lo stack software Oracle. Ma l'utilizzo dbca
(assistente per la creazione del database) è più semplice per iniziare.
Secondo il modo in cui viene talvolta utilizzata la terminologia , a USER
e a SCHEMA
sono in qualche modo simili. Ma c'è anche una grande differenza. A USER
può essere chiamato a SCHEMA
se il " USER
" possiede un oggetto, altrimenti rimarrà solo un " USER
". Una volta che USER
possiede almeno un oggetto, in virtù di tutte le definizioni sopra ... USER
ora può essere chiamato a SCHEMA
.
Per iniziare a capire la differenza, penso che dobbiamo iniziare a dire che questa nomenclatura è stata un errore di Oracle.
Suppongo che se hai un ERP chiamato TRITON vuoi che il tuo database sia chiamato TRITON, o se la mia azienda si chiama JENNY EXPORT potrei decidere che il mio database si chiamerà JENNYEXP o qualcosa del genere, non c'è bisogno di nessun utente con lo stesso nome .
In Oracle, è necessario creare un USER prima di creare le tabelle e abbastanza strano questa raccolta di TABELLE si chiama SCHEMA.
Quindi potresti creare gli utenti effettivi e concedere le autorizzazioni appropriate per lavorare con un database come TRITON come in questo esempio, a proposito, se ti connetti tramite SQL DEVELOPER devi NOME A CONNECTION.
So di sembrare un po 'frustrato, ma per me ha più senso la convenzione di denominazione MS SQL SERVER e potrei aggiungere che ho lavorato con Oracle prima di SQL SERVER.
La base di dati è una raccolta di dati, in cui sono effettivamente memorizzati i dati. È un componente di memoria fisica collegato a un computer installato con il software DBMS per manipolare i dati in quel componente di memoria, il computer installato con il software dbms è chiamato Server o Database Server. Sia Server (Computer) sia Database (componente di memoria) sono diversi ma Il più delle volte indicato come Stesso in base alla situazione.
Entrambe le parole, utente e schema, sono intercambiabili, ecco perché la maggior parte delle persone si confonde su queste parole.
L'utente è un account per la connessione al database (Server). possiamo creare un utente utilizzando CREATE USER IDENTIFICATO DA.
In realtà Oracle Database contiene una struttura logica e fisica per elaborare i dati. Lo schema inoltre struttura logica per elaborare i dati nel database (componente di memoria). Viene creato automaticamente da Oracle quando viene creato dall'utente. Contiene tutti gli oggetti creati dall'utente associato a quello schema. Ad esempio, se ho creato un utente con nome, santhosh
Oracle crea uno schema chiamato santhosh
, Oracle memorizza tutti gli oggetti creati dall'utente santhosh
nello santhosh
schema.
Possiamo creare uno schema usando l' CREATE SCHEMA
istruzione, ma Oracle crea automaticamente un utente per quello schema.
È possibile eliminare lo schema utilizzando l' DROP SCHEMA <name> RESTRICT
istruzione, ma non è possibile eliminare gli oggetti contenuti nello schema, quindi per eliminare lo schema, deve essere vuoto. qui la parola di limitazione ti costringe a specificare quello schema senza oggetti.
Se proviamo a eliminare un utente contenente oggetti nel suo schema, dobbiamo specificare la CASCADE
parola perché Oracle non consente di eliminare un utente contenente oggetti.
DROP USER <name> CASCADE
così Oracle elimina gli oggetti nello schema e quindi rilascia automaticamente l'utente, gli oggetti riferiti a questi oggetti dello schema da altri schemi come visualizzazioni e sinonimi privati passano allo stato non valido.
Aggiungerei che le affermazioni sopra si applicano all'implementazione di Oracle, ma altri database tra cui SQL Server e PostgreSQL usano lo schema solo come uno spazio dei nomi, cioè un modo per raggruppare gli oggetti. Ad esempio, lo schema di gestione temporanea potrebbe raggruppare tutti gli oggetti utilizzati nei dati di gestione temporanea, lo schema di contabilità potrebbe raggruppare tutti gli oggetti relativi alla contabilità.
Ti sto dicendo in base a concetti non basati su alcun tipo di sistema di gestione del database che stai utilizzando.
Concettualmente: Database: è solo un mucchio di dati, per lo più dati correlati o non correlati non gestiti .
Schema: lo schema si riferisce alla strutturazione formale dei dati correlati / non correlati non gestiti in modo che possano essere gestiti da un sistema di gestione che comprende la definizione formale fornita dallo schema. Lo schema è sostanzialmente uno schema per fornire una panoramica. Ad esempio hai XSD che definisce lo schema per creare XML. Hai RDBMS che definisce i suoi schemi basati su Regole Codd che sostanzialmente definiscono schemi per creare RDBMS.
Ora, se vuoi saperne di più, consulta questo link .
L'utente utilizza il linguaggio formale specificato dallo schema per accedere al database