conceptos con relación a base de datos(Oracle)
1-
BASE DE DATOS
Se le llama base de
datos a los bancos de información que contienen datos relativos a diversas
temáticas y categorizados de distinta manera, pero que comparten entre sí algún
tipo de vínculo o relación que busca ordenarlos y clasificarlos en conjunto.
Una base de
datos o banco de datos es un conjunto de datos pertenecientes a
un mismo contexto y almacenados sistemáticamente para su posterior uso.
2-
SCHEMA | ESQUEMA
Describe la estructura de una base de
datos, en un lenguaje formal soportado por un sistema
de gestión de base de datos (DBMS). En una base de datos
relacional, el esquema define sus tablas, sus campos en cada tabla y las
relaciones entre cada campo y cada tabla.
El esquema es generalmente almacenado en
un diccionario de datos. Aunque generalmente el esquema es definido en un
lenguaje de base de datos, el término se usa a menudo para referirse a una
representación gráfica de la estructura de base de datos.
Tipos:
3-
ROL
En general se emplean para asignar los
privilegios relacionados con los usuarios finales de las aplicaciones de un
sistema o para asignar roles a otro roles.
Los roles de la base de datos tienen la
siguiente funcionalidad:
·
Un rol puede tener privilegios del sistema y privilegios de
objetos del schema.
·
Un rol se puede asignar a otro roles (excepto a sí mismo directa o
indirectamente).
·
A cualquier usuario de la base de datos se le puede asignar
cualquier rol.
·
Un rol asignado a un usuario se puede habilitar o inhabilitar en
cualquier momento.
·
Un rol garantizado indirectamente puede ser explícitamente
habilitado o inhabilitado al usuario. No obstante para habilitar un rol que contiene
otro roles, los roles contenidos se habilitan implícitamente habilitando el rol
que los contiene.
En una base de datos cada rol debe ser
único y ningún nombre de usuario o rol puede ser el mismo.
El dominio de seguridad de un usuario
consiste de los privilegios de todos los objetos creados en su propio schema,
los privilegios asignados explícitamente al usuario, los privilegios y roles
garantizados al usuario que actualmente están habilitados, y los privilegios y
roles garantizados al grupo de usuarios PUBLIC.
Un usuario requiere uno ó más privilegios
del sistema y de objetos del schema para ejecutar sentencias DDL.
No obstante, existen algunas restricciones
relacionada con los roles y los privilegios de los usuarios que son:
·
Todo privilegio del sistema o de objeto que permite a un usuario
realizar una operación DDL se pueden usar si se reciben a través de un rol, con
excepción del privilegio REFERENCES que no puede usarse si se recibe por medio
de un rol.
·
Todo privilegio de sistema o de objeto que permite a un usuario
realizar una operación DML que es requerida para ejecutar una sentencia DDL no
se puede usar para ejecutar la sentencia DDL cuando se recibe por medio de un
rol.
·
ORACLE provee automáticamente los roles CONNECT, RESOURCE, DBA,
EXP_FULL_DATABASE and IMP_FULL_DATABASE para todos los usuarios de la base de
datos.
4-
CATALOGO:
Contiene
una descripción completa de la estructura de la base de datos y sus
restricciones. La información almacenada
en el catalogo se denomina meta-datos. Su principal utilidad es la de conocer
que datos existen sin acceder a ellos.
5-
ESQUEMA
Una
base de datos puede contener uno o varios esquemas, que a su vez contiene
tablas. Además, el esquema contiene otro tipo de objetos con nombre, como ser:
a.
Tipos de datos
b.
Funciones
c.
Operadores
Un
objeto puede ser usado con el mismo nombre en esquemas diferentes. Esquemas en
Bases de Datos.
Hay
varias razones para usar esquemas en Bases de Datos:
a.
Para permitir que muchos usuarios usen una base de datos - sin
interferir unos con otros.
b.
Para organizar los objetos de una Base de Datos en grupos -
lógicos para hacerlos más manejables.
c.
Aplicaciones Third-party pueden ser “instaladas” en esquemas
diferentes y así evitar colisiones con los nombres de los objetos entre
distintas aplicaciones.
d.
Los esquemas son análogos a los directorios a nivel de S.O., con
excepción que no pueden anidarse.
e.
Para crear un esquema se usa la sentencia: CREATE SCHEMA mi_Esquema;
6-
TABLESPACE | ESPACIO DE TABLA
Se crea automáticamente junto con la creación de la base de
datos. Contiene las tablas del diccionario de datos para toda la base. Oracle
recomienda que se cree al menos una tablespace adicional para almacenar datos
de usuario, separada de la información del diccionario de datos. Esto reduce la
disputa entre los objetos del diccionario y los objetos esquema para los mismos
archivos. La tablespace SYSTEM está siempre online cuando se abre la base.
Todos los datos almacenados correspondientes a unidades de programas PL/SQL
(procedimientos, funciones, paquetes y triggers) residen en la tablespace
SYSTEM.
Asignar más espacio a una base de datos
Se puede ampliar una base de
tres formas:
Agregar un archivo a una
tablespace.
ALTER TABLESPACE system ADD DATAFILE 'data2.ora'
Agregar una tablespace nueva.
CREATE TABLESPACE users DATAFILE 'data2.ora'
Incrementar el tamaño de un
archivo de datos.
ALTER DATABASE DATAFILE 'data2.ora' AUTOEXTEND ON NEXT 20M MAXSIZE
1000m;
Se sugieren que cada base de
datos tenga como mínimo 5 tablespaces además de SYSYEM:
·
TEMP (para los datos temporarios que se generan en las consultas)
·
RBS (rollback segments)
·
TOOLS (Para los Forms, Report Writer y
Designer)
·
APPL_DATA (Para los applications data)
·
APPL_INDX (Para los applications index)
Las consideraciones por las que se
sugieren estas divisiones son:
- Minimizar la fragmentación
- Minimizar la competencia por el
disco
- Separar los segmentos
- Almacenar los archivos de datos
Los segmentos más propensos a
la fragmentación son, en orden:
·
TEMP
·
RBSEGS
·
INDICES
·
TABLAS
·
DICCIONARIO de DATOS
La competencia por el disco se puede
minimizar separando los grupos de segmentos que pueden ser accedidos
simultáneamente:
·
Los segmentos del diccionario de datos y los demás segmentos.
·
Los segmentos de rollback de los demás segmentos.
·
Los segmentos de datos de sus correspondientes segmentos de
índices.
Separar las tablas de acuerdo con sus
características (necesidades de backup, requerimientos de acceso, necesidades
de uso, crecimiento) deviene en ventajas en:
·
Recuperación y backup
·
Tamaño
·
Seguridad
·
Limpieza y claridad
Recomendaciones de
Administración de los Archivos de Bases de Datos
·
Mantener al menos dos copias activas de los archivos de control[1] de la base de datos en al menos dos
dispositivos físicos diferentes.
·
Mantener múltiples archivos de redo log y ubicarlos por grupos en
diferentes discos.
·
Separar los tablespaces que puedan competir por recursos en discos
y ubicarlos en diferentes discos físicos.
7- EXTENDS
| EXTIENDE
Una
extensión es un número específico de bloques de datos contiguos, que se emplea
para almacenar un tipo de información específico.
En la
sentencia de definición de las tablas se han de incluir los siguientes
parámetros de almacenamiento:
·
INITIAL: denota el tamaño de la extensión inicial.
·
NEXT: indica el tamaño de las extensiones siguientes.
·
MINEXTENTS: indica el número mínimo de extensiones.
·
MAXEXTENTS: indica el número máximo de extensiones.
·
PCTINCREASE: es un factor de crecimiento de una extensión a la
siguiente.
8-
CREATE | CREAR
Este comando permite crear objetos de
datos, como nuevas bases de datos, tablas, vistas y procedimientos
almacenados.
Ejemplo (crear una tabla)
CREATE TABLE
'CUSTOMERS';
9-
ALTER |
MODIFICAR
Este comando permite modificar la
estructura de una tabla u objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un
campo, agregar/quitar índices a una tabla, modificar untrigger,
etc.
Ejemplo (agregar columna a
una tabla)
ALTER TABLE 'ALUMNOS' ADD EDAD INT UNSIGNED;
10-
DROP | ELIMINAR
Este comando elimina un objeto de la base
de datos. Puede ser una tabla, vista, índice, trigger, función,
procedimiento o cualquier objeto que el motor de la base de datos soporte. Se
puede combinar con la sentencia ALTER.
Ejemplo
DROP TABLE 'ALUMNOS';
11-
TRUNCATE |
BORRAR TABLA
Este comando trunca todo el contenido de
una tabla. La ventaja sobre el comando DROP, es que si se quiere borrar todo el
contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy
grande. La desventaja es que TRUNCATE sólo sirve cuando se quiere eliminar
absolutamente todos los registros, ya que no se permite la cláusula WHERE. Si
bien, en un principio, esta sentencia parecería ser DML (Lenguaje de
Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando
TRUNCATE borra la tabla y la vuelve a crear y no ejecuta ninguna transacción.
Ejemplo
TRUNCATE TABLE 'NOMBRE_TABLA';
12-
RENAME | Renombrar
El RENAME sentencia se utiliza para cambiar el
nombre de una tabla de base de datos.
CAMBIAR EL NOMBRE DE TABLA nombre_viejo A nombre_nuevo
;
13- CONSTRAINTS | LIMITACIONES
Son especificaciones del
DDL de SQL que se aplican a columnas o tuplas de una tabla. Algunos tipos
especiales de constraints son: UNIQUE, NOT NULL, REFERENCES, CHECK; éste último
permite especificar una amplia gama de reglas, como por ejemplo, rangos de
valores y listas de valores, entre otros. Es conveniente que cada constraint
tenga un nombre, pues cuando el constraint es violado el sistema indica su
nombre y se puede saber exactamente qué falló.
14- TRIGGERS | DISPARADORES
Los triggers en SQL:99
son parecidos a los constraints, pero proveen mayor flexibilidad pues el
usuario puede especificar un conjunto de acciones complejas a ejecutarse cuando
el trigger se dispare. Los constraints actúan cuando se viola lo que ellos
indican, pero el usuario no puede especificar acción alguna con esa violación,
sino que el DBMS simplemente envía un mensaje de error e impide que se realice
la operación que produjo la violación.
La descripción de un triggers contiene ocho (8) componentes, a
saber:
·
Nombre, debe ser único en el
esquema donde se define.
·
Tabla sujeto, es el nombre de la tabla
cuyos datos, al ser alterados, van a activar al trigger.
·
Tiempo de la acción, le dice al DBMS cuándo
ejecutar el cuerpo del trigger, lo cual puede ser antes (BEFORE) o después
(AFTER) que ocurra el evento del trigger.
·
Evento, indica cuál es el comando
de actualización sobre la tabla, que va a activar el trigger, este evento puede
ser uno o más de los siguientes: INSERT, DELETE y UPDATE.
·
Lista de atributos, sólo se pueden especificar
si el evento es un UPDATE.
·
Alias, tanto los valores de la
tupla antes y después de la actualización, como las tablas pueden tener nombres
que fungen de sinónimos de los nombres originales.
·
Cuerpo del trigger, comandos de SQL que se
ejecutan cuando el trigger se dispara.
·
Sello de tiempo, indica cuándo fue creado el
trigger.
Los
triggers se definen con un comando de CREATE TRIGGER y para borrarlos se
utiliza el comando DROP TRIGGER. Los triggers o
disparadores son objetos de la base de datos que ejecutan acciones cuando se
producen ciertos eventos (tanto DML
como DDL) (inserciones, modificaciones, borrados, creación de tablas, etc.).
15-
GRANT | CONCEDER
Permite dar permisos
a uno o varios usuarios o roles para realizar tareas determinadas.
Las tareas sobre las
que se pueden conceder permisos son las siguientes:
·
CONNECT
·
SELECT
·
INSERT
·
UPDATE
·
DELETE
·
USAGE
16-
REVOKE |
REVOCAR
Permite eliminar
permisos que previamente se han concedido con GRANT.
Las tareas sobre las
que se pueden denegar permisos son las siguientes:
·
CONNECT
·
SELECT
·
INSERT
·
UPDATE
·
DELETE
·
USAGE
17-
COMMIT | HACER
La sentencia COMMIT termina una unidad de
trabajo y confirma los cambios de la base de datos que ha realizado esa unidad
de trabajo.
18-
ROLLBACK | RETROCEDER
La sentencia ROLLBACK se utiliza para
restituir los cambios que se han hecho en la base de datos dentro de una unidad
de trabajo o punto de salvaguarda.
19-
COMMENT | COMENTARIO
La sentencia COMMENT añade o sustituye
comentarios en las descripciones del catálogo de diversos objetos.
Ejemplos
Ejemplo 1: Añada un comentario
para la tabla EMPLOYEE.
COMMENT ON TABLE EMPLOYEE
IS 'Refleja la reorganización
del primer trimestre'
Ejemplo 2: Añada un comentario
para la vista EMP_VIEW1.
COMMENT ON TABLE EMP_VIEW1
IS 'Vista de la tabla EMPLOYEE
sin la información de salarios'
Ejemplo 3: Añada un comentario
para la columna EDLEVEL de la tabla EMPLOYEE.
COMMENT ON COLUMN EMPLOYEE.EDLEVEL
IS 'curso más alto aprobado en
la escuela'
Ejemplo 4: Añada comentarios para
dos columnas diferentes de la tabla EMPLOYEE.
COMMENT ON EMPLOYEE
(WORKDEPT
IS 'vea los nombres en la tabla
DEPARTMENT',
EDLEVEL
IS 'curso más alto aprobado en
la escuela’)
Ejemplo 5: Pellow desea realizar
un comentario sobre la función CENTRE, que ha creado en su esquema PELLOW,
utilizando la signatura para identificar la función específica que se debe
comentar.
COMMENT ON
FUNCTION CENTRE (
INT,
FLOAT)
IS 'func CENTRE de Frank,
utiliza método Chebychev'
Ejemplo 6: McBride desea realizar
un comentario sobre otra función CENTRE, que ella creó en el esquema PELLOW,
utilizando el nombre específico para identificar la instancia de función que
hay que comentar:
COMMENT ON SPECIFIC
FUNCTION PELLOW.FOCUS92
IS
'La función CENTRE con mayor
éxito de Louise, utiliza la técnica de
foco borroso browniana'
Ejemplo 7: Comente la función
ATOMIC_WEIGHT en el esquema CHEM, donde se sabe que sólo hay una función con
ese nombre:
COMMENT ON
FUNCTION CHEM.ATOMIC_WEIGHT
IS 'toma
números. Atómico, da peso atómico'
Ejemplo 8: Eigler desea realizar
un comentario sobre el procedimiento SEARCH, que ha creado en su esquema
EIGLER, utilizando la signatura para identificar el procedimiento específico
que se debe comentar.
COMMENT ON PROCEDURE SEARCH (
CHAR,INT)
IS 'algoritmo de sustitución y
búsqueda masiva de Frank'
Ejemplo 9: McDonald desea realizar
un comentario sobre otra función SEARCH, que creó en el esquema EIGLER,
utilizando el nombre específico para identificar la instancia de procedimiento
que hay que comentar:
COMMENT ON SPECIFIC PROCEDURE EIGLER.DESTROY
IS
'Algoritmo de destrucción y búsqueda
masiva de Patrick'
Ejemplo 10: Realice un comentario
sobre la función OSMOSIS en el esquema BIOLOGY, donde se sabe que sólo hay un
procedimiento con dicho nombre:
COMMENT
ON PROCEDURE BIOLOGY.OSMOSIS
IS
'Cálculos al modelar ósmosis'
Ejemplo 11: Realice un comentario
sobre una especificación de índice denominada INDEXSPEC.
COMMENT ON INDEX INDEXSPEC
IS
'Una especificación de
índice que indica al optimizador que la tabla referenciada por el apodo NICK1
tiene un índice.
Ejemplo 12: Realice un comentario
sobre el derivador cuyo nombre por omisión es NET8.
COMMENT ON WRAPPER NET8
IS 'El derivador de las fuentes
de datos asociadas al software cliente Net8 de Oracle.'
Ejemplo 13: Cree un comentario sobre el esquema XML HR.EMPLOYEE.
COMMENT ON XSROBJECT HR.EMPLOYEE
IS 'Éste es el esquema XML base
para los datos de empleado.'
Ejemplo 14: Cree un comentario para el contexto fiable APPSERVER.
COMMENT ON TRUSTED
CONTEXT APPSERVER
IS
'WebSphere Server'
20- STARTUP | INICIAR
El comando STARTUP es el comando de
arranque de la base de datos, y tiene la siguiente sintaxis:
STARTUP [PFILE=’ARCHIVO_PARAMS’] [MODO]
El ARCHIVO_PARAMS es un archivo de
parámetros que contiene una serie de valores que se utilizarán para poner en
funcionamiento una instancia de la base de datos. Este archivo se denominaba
initsid.ora en las versiones anteriores a la 9i, en las posteriores se denomina
SPFILE. Jesús Miguel Muñoz Rodríguez Arranque y parada de la Base de datos.
Ficheros de traza. 2 Administración avanzada Oracle Este archivo la
analizaremos de una manera más profunda más adelante.
En caso de que la base de datos ya esté
ejecutándose y queramos pasar a otro estado podemos usar el siguiente comando:
ALTER DATABASE MODO;
El MODO es el modo de arranque que se le
puede indicar para que la base de datos pase a un estado u otro, en función de
las tareas que se quieran realizar. Los distintos modos son NOMOUNT, MOUNT Y OPEN.
21- SHUTDOWN | PARAR
Para parar la BD el
comando base es shutdown como se puede ver en el siguiente ejemplo:
SVRMGR>
shutdown
Database closed.
Database
dismounted.
ORACLE instance shut
down.
Pero
este comando se nos presenta con tres opciones: normal, immediate y abort.
Shutdown normal
Se impide el acceso a la BD,
espera a que todos los usuarios completen todas sus peticiones y se desconecten
del servidor. Purga todos los buffers de datos y cachés de redo log,
actualizando los ficheros de datos y de redo log, se
eliminan los bloqueos de ficheros, se completan las transacciones en marcha, se
actualizan las cabeceras de ficheros, elimina los threads,
libera los bloqueos de la BD por parte de la instancia, y sincroniza los
ficheros de control y de datos. En resumen, la opción normal cierran la BD,
desmonta la BD y para la instancia con cuidado y es la opción recomendada para
parar la BD.
Shutdown immediate
En ciertas ocasiones puede
ser necesario parar la BD de modo inmediato. Si es así, las sentencias en
proceso son terminadas inmediatamente, cualquier transacción no confirmada (uncommitted) es
vuelta atrás (rolled back) y la BD es parada. La única desventaja de
utilizar esta opción es que Oracle no espera a que los usuarios se desconecten.
Sin embargo, la BD será consistente y no se necesitará recuperación en el
siguiente arranque.
Shutdown abort
En situaciones de
emergencia, y cuando todo lo demás falla, se debe realizar una parada de este
tipo. Por ejemplo, cuando un proceso de la instancia muere y la BD no puede pararse
de modo normal o inmediato. Cuando se utiliza la opción abort las
sentencias SQL son terminadas bruscamente, y las transacciones no confirmadas
no son vueltas atrás. Parar la BD con la opción abort requiere
recuperación en la siguiente vez que arranque la BD y esta opción debe ser
utilizada sólo cuando no quede más remedio.
22-
TNSNAMES
El archivo
tnsnames.ora es un archivo de configuración que contiene nombres de servicios
en red mapeados, asignados a descriptores a través de los cuales se nos permite
acceder. Está ubicado en los clientes.
Los parámetros del
archivo son:
HOST: Dirección ip
del servidor con el cual queremos conectar
PORT: Puerto donde
escucha la base de datos
SERVICE_NAME: Nombre
del servicio de base de datos al que queremos conectar
DESCRIPTOR DE
CONEXION: En este caso el descriptor para conectarnos es CNNORASITE
23- NULL VS
VACIO
Un espacio en blanco es el CHAR(32).
NULL equivale al CHAR(0) y define un objeto no asignado, mientras que ('') define un campo que se sabe sin contenido.
En esencia son distintos porque, como en programación C o VB, un objeto igual Nothing o NULL es un objeto sin asignación de memoria. Mientras que un objeto vacío es un objeto que apunta a un área de memoria, declarándola vacía.
El sentido de inexistencia es la determinación de estados de no relación entre valores de campos de tablas, que pueden ser útiles en determinadas consultas. Dentro de la definición de una tabla, sirve, por ejemplo, para definir campos pueden omitirse sin que afecten la consistencia de datos.
NULL equivale al CHAR(0) y define un objeto no asignado, mientras que ('') define un campo que se sabe sin contenido.
En esencia son distintos porque, como en programación C o VB, un objeto igual Nothing o NULL es un objeto sin asignación de memoria. Mientras que un objeto vacío es un objeto que apunta a un área de memoria, declarándola vacía.
El sentido de inexistencia es la determinación de estados de no relación entre valores de campos de tablas, que pueden ser útiles en determinadas consultas. Dentro de la definición de una tabla, sirve, por ejemplo, para definir campos pueden omitirse sin que afecten la consistencia de datos.
24-
IMPORT |
IMPORTAR
El concepto básico detrás de importación
es muy simple. Importación
inserta los objetos de datos extraídos de una base de datos de Oracle por la
utilidad de exportación (y almacenados en un archivo de volcado de exportación)
en otra base de datos Oracle. Archivos
de volcado de exportación sólo pueden ser leídas por Import.
Dichos archivos pueden ser transferidos
a través de FTP o transportados físicamente (en el caso de la cinta) a un sitio
diferente. Los archivos pueden
ser utilizados con la utilidad de importación para transferir datos entre bases
de datos que se encuentran en las máquinas no conectadas a través de una red. Los archivos también se pueden
utilizar como las copias de seguridad, además de los procedimientos de copia de
seguridad normales.
Nota: Los archivos de volcado de exportación sólo pueden ser leídas por la
importación utilidad de Oracle. Si
necesita cargar datos de ASCII de formato fijo o archivos delimitados, véase la
Parte II de este manual.
25-
EXPORT | EXPORTAR
Exportación proporciona una forma sencilla
para que usted pueda transferir objetos de datos entre bases de datos Oracle,
aunque residan en plataformas con diferentes configuraciones de hardware y
software. Exportación extrae las
definiciones de objetos y datos de tablas desde una base de datos Oracle y los
almacena en un archivo de volcado de exportación de formato binario de Oracle
se encuentra normalmente en el disco o cinta.
Dichos archivos pueden ser
transferidos a través de FTP o transportados físicamente (en el caso de la
cinta) a un sitio diferente. Los
archivos pueden ser utilizados con la utilidad de importación para transferir
datos entre bases de datos que se encuentran en las máquinas no conectadas a
través de una red. Los archivos
también se pueden utilizar como las copias de seguridad, además de los
procedimientos de copia de seguridad normales.
Las utilidades de exportación
e importación también pueden facilitar ciertos aspectos de la funcionalidad de
Oracle replicación avanzada, tales como desconectado de instancias.
Comentarios
Publicar un comentario