Diferencia entre base de datos vs usuario vs esquema

78

Estoy realmente confundido con los términos base de datos, usuario y esquema. ¿Alguien puede explicar cómo son diferentes entre sí (si lo son)?

Si son iguales, ¿cuáles son las similitudes entre ellos? ¿Cómo los usamos? ¿Y cómo los creamos?

Ravi
fuente
Espero que esto dé la idea básica: answers.com/Q/Difference_between_user_and_schema_oracle
Sandun Madola

Respuestas:

78

En Oracle, los usuarios y los esquemas son esencialmente lo mismo. Puede considerar que un usuario es la cuenta que usa para conectarse a una base de datos, y un esquema es el conjunto de objetos (tablas, vistas, etc.) que pertenecen a esa cuenta.

Vea esta publicación sobre Desbordamiento de pila: ¿ diferencia entre un usuario y un esquema en Oracle? para más detalles y enlaces extra.

Crea usuarios con la create userdeclaración. Esto también "crea" el esquema (inicialmente vacío): no puede crear un esquema como tal, está vinculado al usuario. Una vez que se crea el usuario, un administrador puede otorgar privilegios al usuario, lo que le permitirá crear tablas, ejecutar selectconsultas inserty todo lo demás.

La base de datos es lo que contiene todos los usuarios que ha creado y sus datos (y un grupo de usuarios, tablas, vistas, etc.definidos del sistema que hacen que todo funcione). Debería consultar la documentación de Oracle Database Architecture en la Guía de conceptos (en realidad, vale la pena leer toda la página; hay una sección sobre usuarios y esquemas más arriba en esa página) para obtener una introducción a qué es una base de datos y qué instancia de base de datos es - dos conceptos importantes.

Puede crear una base de datos con la create databasedeclaración, una vez que haya instalado la pila de software de Oracle. Pero usar dbca(asistente de creación de bases de datos) es más fácil de comenzar.

Estera
fuente
2

Según la forma en que a veces se usa la terminología , a USERy a SCHEMAson algo similares. Pero también hay una gran diferencia. A USERpuede llamarse a SCHEMAsi el " USER" posee algún objeto, de lo contrario solo seguirá siendo un " USER". Una vez que USERposee al menos un objeto, en virtud de todas sus definiciones anteriores ... USERahora se puede llamar a SCHEMA.

JOHNNIE
fuente
Creo que lo que estás señalando aquí es que el término "ESQUEMA" es multifacético. Es un espacio de nombres para objetos de base de datos por un lado. Además, en Oracle (¿y otros?) Pero no en PostgreSQL, es un espacio de nombres de objetos de base de datos que contiene exactamente los objetos creados por el usuario que comparte el nombre del esquema. Desde otra perspectiva, son las relaciones y la estructura de los objetos en una base de datos, a menudo ignorando tanto la propiedad como el espacio de nombres.
Andrew Wolfe
2

Para comenzar a entender la diferencia, creo que debemos comenzar a decir que esta nomenclatura fue un error de Oracle.

Supongo que si tiene un ERP llamado TRITON, quiere que su base de datos se llame TRITON, o si mi compañía se llama JENNY EXPORT, podría decidir que mi base de datos se llame JENNYEXP o algo así, no es necesario ningún usuario con el mismo nombre .

En Oracle, debe crear un USUARIO antes de crear las tablas y, por extraño que parezca, esta colección de TABLAS se llama SCHEMA.

Luego, puede crear los usuarios reales y otorgar los permisos adecuados para trabajar con una base de datos como TRITON según este ejemplo, por cierto, si se conecta a través del DESARROLLADOR SQL, debe NOMBRAR UNA CONEXIÓN.

Sé que sueno un poco frustrado, pero tiene más sentido para mí la convención de nomenclatura de MS SQL SERVER y podría agregar que trabajé con Oracle antes que SQL SERVER.

Glauco Guerrero
fuente
1

Base de datos

La base de datos es una colección de datos, donde realmente se almacenan los datos. Es un componente de memoria física conectado a una computadora instalada con el software DBMS para manipular los datos en ese componente de memoria, la computadora instalada con el software dbms se llama servidor o servidor de base de datos. Tanto el servidor (computadora) como la base de datos (componente de memoria) son diferentes pero La mayoría de las veces se conoce como Igual según la situación.

USUARIO y ESQUEMA

Las dos palabras, usuario y esquema, son intercambiables, por eso la mayoría de las personas se confunden con estas palabras.

Usuario

El usuario es una cuenta para conectar la base de datos (Servidor). podemos crear usuarios usando CREAR USUARIO IDENTIFICADO POR.

Esquema

En realidad, Oracle Database contiene una estructura lógica y física para procesar los datos. El esquema también estructura lógica para procesar los datos en la base de datos (componente de memoria). Oracle lo crea automáticamente cuando lo crea el usuario. Contiene todos los objetos creados por el usuario asociado a ese esquema. Por ejemplo, si creé un usuario con nombre, santhoshentonces santhoshOracle crea un esquema llamado , Oracle almacena todos los objetos creados por el usuario santhoshen el santhoshesquema.

Podemos crear un esquema utilizando la CREATE SCHEMAinstrucción, pero Oracle crea automáticamente un usuario para ese esquema.

Podemos descartar el esquema mediante el uso de la DROP SCHEMA <name> RESTRICTinstrucción, pero no puede eliminar objetos contenidos en el esquema, por lo tanto, para descartar el esquema, debe estar vacío. aquí la palabra restringir le obliga a especificar ese esquema sin objetos.

Si intentamos eliminar un usuario que contenga objetos en su esquema, debemos especificar la CASCADEpalabra porque Oracle no le permite eliminar un usuario que contenga objetos.

DROP USER <name> CASCADE

entonces Oracle elimina los objetos en el esquema y luego deja caer al usuario automáticamente. Los objetos referidos a estos objetos de esquema de otras vistas de esquema y sinónimos privados pasan a un estado no válido.

SanthoshReddy
fuente
-2

Agregaría que las declaraciones anteriores se aplican a la implementación de Oracle, pero otras bases de datos, incluido SQL Server y PostgreSQL, usan el esquema solo como un espacio de nombres, es decir, una forma de agrupar objetos. Por ejemplo, el esquema de ensayo podría agrupar todos los objetos utilizados en los datos de ensayo, el esquema de contabilidad podría agrupar todos los objetos relacionados con la contabilidad.

usuario3869678
fuente
No estoy seguro de a qué se refiere cuando dice "declaraciones anteriores", pero el esquema en SQL y en Oracle es una agrupación de permisos. En otras palabras, no es solo una forma de agrupar objetos similares, sino una forma de agrupar objetos que facilitará la administración de permisos, ya que puede otorgar permisos a un esquema y, por lo tanto, evitar tener que otorgar permisos a cada objeto dentro del esquema.
Thronk
-4

Usuario! = Esquema, Usuario y Esquema no son iguales pero se usan indistintamente

user24990
fuente
2
Agregue detalles sobre cómo son diferentes.
Erik
-4

Le digo de acuerdo con conceptos que no se basan en ningún tipo de sistema de administración de bases de datos que esté utilizando.

Conceptualmente: Base de datos: es solo una pila de datos, en su mayoría datos relacionados o no relacionados no administrados .

Esquema: el esquema se refiere a la estructuración formal de los datos relacionados / no relacionados no administrados para que pueda ser administrado por algún sistema de gestión que comprenda la definición formal proporcionada por el esquema. Esquema es básicamente un esquema para proporcionar una visión general. Por ejemplo, tiene XSD que define el esquema para crear XML. Tiene RDBMS que define sus propios esquemas basados ​​en Reglas Codd que básicamente definen esquemas para crear RDBMS.

Ahora, si quieres saber más sobre esto, consulta este enlace .

El usuario usa el lenguaje formal especificado por el esquema para acceder a la Base de Datos

Ajay Bhojak
fuente