2. Las bases de datos relacionales incorporan sólo estructuras
estáticas de datos, las llamadas tablas. Es suficiente para
modelizar problemas de datos muy grandes, pero no permite
aplicar técnicas de programación orientada a objetos.
Hay una serie de bases de datos llamadas orientadas a
objetos, donde el elemento de trabajo en lugar de la tabla es
el objeto, que incorpora datos y procedimientos. Pero este
enfoque todavía está en estudio y no parece clara su ventaja
sobre el enfoque relacional.
Oracle aprovecha un nuevo enfoque, el objeto-relacional. Es
un punto medio entre los dos anteriores, permite a los
usuarios utilizar la base de datos de forma relacional, pero
incorpora extensiones de las bases de datos orientadas a
objetos.
3. 1978 Primera versión del sistema Oracle para el sistema PDP-
11 de Digital Equipment. Se basaba en las tesis de E. F. Codd
y se convierte en el primer RDBMS comercial.
1980 Se crea Oracle Systems, empresa propietaria del DBMS
Oracle
1981 Versión 3 de Oracle, escrita en C (2,5 millones de
dólares en ventas)
1984 Versión 4, conexión cliente / servidor en sistema
VAX/VMS. 13 millones de Ventas
1986 Versión 5 de Oracle, posibilidad de capacidades
distribuidas. 55 millones en ventas
1988 Versión 6, incluye herramienta CASE, 188 millones de
ventas
1991 Se alcanzan los mil millones de dólares
1993 Versión 7 de Oracle para el sistema Unix. Se convierte
en el mejor gestor de bases de datos enormes.
4. 1994 2000 millones de ventas, versión de Oracle para PC
1997 Versión 8, se lanza hacia Internet y adopta Java. 5000
millones en ventas
1998 Versión de Oracle para Linux
1999 Versión 8i, mayor integración de Java e Internet. 8000
millones en ventas
2000 Más de 10.000 millones en ventas, primera solución de
bases de datos del mercado.
2001 Aparece la versión 9i con grandes mejoras en la
distribución
2003 Aparece la versión 10g, con grandes mejoras en cuanto
al tamaño de almacenamiento y velocidad.
2007 Oracle Database 11g proporciona nuevas
funcionalidades, mediante el uso de plataformas grid.
2013, Oracle Database 12c, la primera base de datos del
mundo diseñada para la nube.
2018, Oracle Database 18c
2019, Oracle Database 19c
5. Los rivales de Oracle fundamentales hoy en día
son:
◦ PostgreSQL (Software libre)
◦ MySQL (Software libre) comprado por Oracle
◦ MariaDB (Software libre) fork de MySQL
◦ Firebird (Software libre)
◦ Ingres de Computer Associates
◦ DB/2 de IBM
◦ SQL Server de Microsoft
◦ Informix (actualmente de IBM)
6. RDBMS: Relational DataBase Management System.
Sistema Gestor de Bases de Datos Relacionales.
El RDBMS Oracle, como cualquier SISTEMA DE
INFORMACIÓN, está formado por 2 elementos:
◦ DATOS
◦ TRATAMIENTOS DE ESOS DATOS Conjunto de
aplicaciones que permiten el manejo de datos
7. El software del sistema de bases de datos Oracle incorpora herramientas
para realizar la mayoría de tareas comunes en una base de datos:
Oracle Universal Installer. gestor de instalaciones, controla cada nueva
instalación de software Oracle a fin de que se integren de la mejor
manera posible.
SQL*plus. Programa cliente que permite conexión con el servidor Oracle
para enviarle secuencias SQL y PL/SQL.
iSQL*plus. Permite conexiones al servidor Oracle con la misma finalidad
que elanterior pero utilizando una navegador de Internet, lo que facilita
el trabajo.
SQL*plus WorkSheet. Permite conexiones al servidor de Oracle,
utilizando un entorno más potente (procede del Oracle Enterprise
Manager)
Oracle Enterprise Manager. Entorno que permite la administración y
configuración completa del servidor Oracle.
8. Oracle Forms. Permite crear aplicaciones visuales sobre bases de
datos de Oracle
Oracle Reports. Asistente para la producción de informes.
Oracle Designer. Herramienta CASE de Oracle, para crear esquemas
en el ordenador y que el software produzca los resultados del
mismo.
Oracle JDeveloper. Crea aplicaciones Java pensadas para desarrollar
formularios sobre datos de Oracle.
Oracle Developer Suite. Integra todos los componentes anteriores.
Oracle AS (Application Server). Servidor de aplicaciones de Oracle.
Permite compilar aplicaciones J2EE
Pro C/C++ Precompilador de C/C++ para Oracle.
9. SQL*Loader. Permite cargar en bases de datos de Oracle
información que procedede un archivo de texto. Necesaria
para utilizar en las bases de datos de Oracle, información que
procede de otro software.
Import/Export. Para importar y exportar datos entre
instancias de Oracle. De un servidor a otro por ejemplo.
también se utiliza como herramienta de copia de seguridad.
Servidor http de Oracle. Basado en el servidor Apache,
permite opciones de documentación y sobre todo la
comunicación directa a través de SQL*Plus con el servidor
Oracle sin tener necesidad de instalar software adicional.
Net Manager. Permite la administración de los servicios de
red a fin de configurar las conexiones hacia instancias de
Oracle.
10. Una base de datos tiene una estructura lógica
(que se manipula mediante comandos)
Y una estructura física (la que realmente se
almacena en disco).
11. Tablespaces. Pertenecen sólo a una base de datos y sirven para
agrupar los datos de la base de datos. Cada tablespace está
formado físicamente por uno o más archivos de datos. Están
divididos en 0 o más segmentos. Se pueden visualizar en línea o
fuera de línea y pueden ser activados en sólo lectura o en lectura /
escritura.
Segmento. Sirven para almacenar las estructuras lógicas de la base
de datos(tablas, índices,...). Un tablespace se compone de uno o
más segmentos. Pero el mismo segmento no puede estar en más de
un tablespace.
Extensiones. División que se hace a cada segmento. El DBA puede
añadir o quitar extensiones a los segmentos a fin de hacer que
ganen o pierdan espacio.
Bloque Oracle o bloque de datos. Es la unidad mínima de datos para
Oracle y se corresponde a una o más unidades de datos mínimas del
sistema operativo en el que nos encontremos.
12. Archivos de datos. Son archivos en disco que sirven
para almacenar los datos físicamente (en una
unidad de disco). Cada archivo de datos pertenece
sólo a un tablespace. Su tamaño se puede
gestionar.
Bloques de sistema. La división mínima de los
datos que hace el sistema operativo.
13.
14. Una BD se divide en unidades lógicas de almacenamiento llamadas
tablespaces.
Cada BD tiene uno ó más tablespaces, de forma que cada uno está
compuesto de uno o más archivos (datafiles). Un tablespace puede
contener varias tablas e índices, no pudiendo éstos extenderse a
otro tablespace.
El tamaño de un tablespace es, por tanto, la suma de los tamaños de
los ficheros que lo forman. Y el tamaño de la BD es la suma de los
tamaños de los tablespaces que la integran.
Un tablespace puede estar ONLINE (accesible) u OFFLINE
(inaccesible); normalmente está online, de forma que los usuarios
pueden acceder a los datos que contiene.
En los tablespaces se almacenan los objetos del esquema de la BD
(tablas, índices…) pudiéndose repartir entre varios ficheros.
15. El tablespace original de Oracle se llama SYSTEM, creándose
automáticamente al crear la BD (CREATE DATABASE), de tal
forma que una BD pequeña podría tener este sólo tablespace.
Debe estar siempre en línea.
No se recomienda usar este tablespace para almacenar datos,
únicamente para uso del sistema. Mejor para nuestras tablas
crear un tablespace adicional.
Este tablespace no puede ser suprimido, tampoco pueden
suprimirse los archivos que lo constituyen. La única forma de
reconstruir el tablespace SYSTEM consiste en volver a crear la
BD.
17. espec_fich: ‘path/fichero’ [SIZE número [K|M] [REUSE]
valor: bytes K | M
INITIAL: tamaño de la 1ª extensión asignada. Tienen:
valor mínimo: 4.096 bytes
valor máximo: 4.095 Mb
por defecto: 10.240 bytes
NEXT: tamaño de la próxima extensión a asignar. Tienen:
valor mínimo: 2.048 bytes
valor máximo: 4.095 Mb
por defecto: 10.240 bytes
MAXEXTENTS: número máximo de extensiones permitidas. Por defecto:
9.999
MINEXTENTS: número de extensiones a reservar cuando se crea el
segmento. Por defecto: 1
PCTINCREASE: porcentaje de incremento que se aplicará para calcular el
tamaño de la siguiente extensión respecto de la anterior. Por defecto:
50%
19. Para renombrar los ficheros del tablespace:
Hay que poner el tablespace OFFLINE, cambiar el
nombre del fichero a nivel del Sistema Operativo,
hacer:
ALTER TABLESPACE nombre_ts
RENAME DATAFILE fichero [,fichero…] TO fich [,fich…] y por
último, volver a poner el tablespace ONLINE.
Para establecer cuotas de espacio:
GRANT RESOURCE [ (valor K | M) ] ON nombre_ts
TO nombre_usuario [,nombre_usuario…] | PUBLIC
20. Para dejar un tablespace ONLINE u OFFLINE:
ALTER TABLESPACE nombre_ts
ONLINE | OFFLINE | [NORMAL | IMMEDIATE]
NORMAL espera a que no haya usuarios usando dicho tablespace
Para borrar un tablespace:
DROP TABLESPACE nombre_ts
[INCLUDING CONTENTS]
Después habrá que usar el comando propio del Sistema Operativo
para borrar físicamente los ficheros asociados al tablespace. La
cláusula INCLUDING CONTENTS, borrará el tablespace aunque
contenga datos.
21. Todos los datos de un TABLESPACE están
organizados en zonas llamadas SEGMENTOS. Un
segmento es un conjunto de bloques reservados
para almacenamiento de datos, formándose a
partir de una extensión inicial y opcionalmente de
extensiones adicionales.
Segmento. Sirven para almacenar las estructuras
lógicas de la base de datos.
Un tablespace se compone de uno o más
segmentos. Pero el mismo segmento no puede
estar en más de un tablespace.
22. Segmentos de DATOS:
◦ 1 de ellos contiene todos los datos de una tabla (si es necesario,
ocupando varias extensiones).
◦ Una tabla siempre ocupa un único segmento de datos.
Segmentos de ÍNDICES:
◦ 1 de ellos contiene todos los datos correspondientes a un índice
de una tabla. Una tabla puede tener de 0 a varios segmentos de
índices.
◦ Se recomienda tener los índices en un tablespace separado de las
tablas, incluso en otro disco físico.
Segmentos de ROLLBACK
◦ Contienen la imagen de los datos antes de ser modificados
(imagen previa).
◦ Se usan para deshacer transacciones, ofrecer lecturas consistentes
y recuperar datos.
23. Segmentos TEMPORALES:
◦ Al procesar sentencias (create index, order by, distinct,
group by, union, join sin índices y algunas subconsultas),
ORACLE requiere a menudo zonas de trabajo temporales en
los pasos intermedios de tratamiento. Estos segmentos son
creados conforme son necesarios y desaparecen cuando
termina la operación que los generó.
Segmentos de BOOTSTRAP
◦ Se crea en el tablespace SYSTEM al crear la BD. Contiene
definiciones de las tablas del diccionario, cargándose al
arrancar la BD.
◦ Es pequeño, menos de 50 bloques.
24. Es el siguiente nivel en la asignación del
espacio lógico de la BD.
Una EXTENSIÓN se compone de un número
específico de bloques de datos contiguos
usados para almacenar una información
concreta. Es decir, son un conjunto de
páginas contiguas, con un tipo de
información específica.
25. Un BLOQUE DE DATOS (datablocks) se
corresponde con un número específico de
bytes de espacio físico de la BD en el disco.
El tamaño del bloque de datos se especifica
para cada BD en el momento de su creación.
Una BD reserva espacio libre en los bloques
de Datos.
Es la menor unidad de E/S que puede utilizar
la BD (independientemente de que el tamaño
del bloque del Sistema Operativo sea menor)
26. Los usuarios son las personas que acceden de una forma o de
otra a la base de datos. Cada usuario tiene una vista
determinada de la base de datos.
Hay varios conceptos sobre los usuarios a tener en cuenta.
Privilegios
◦ Controlan el permiso que posee un usuario de ejecutar una
determinada instrucción SQL.
◦ Un usuario que quiera crear una tabla, deberá tener el privilegio (o
permiso) adecuado para ello.
◦ Además se pueden colocar privilegios en los objetos, es decir, un
usuario propietario de una tabla puede otorgar privilegios a esa
tabla (se trataría de un privilegio a nivel de objeto) para que haya
otros usuarios que la puedan usar.
27. Rol
◦ Son agrupaciones de privilegios que facilitan la tarea de gestionar
a los usuarios. Así cuando una serie de usuarios van a tener los
mismos privilegios, se crea un rol que contenga esos privilegios y
a esos usuarios se les asigna el rol.
◦ Oracle proporciona varios roles ya preparados, por ejemplo el rol
DBA da privilegio absoluto a un usuario.
Esquemas
◦ Los esquemas están asociados a los usuarios. Agrupan los objetos
lógicos que pertenecen al usuario. Es decir es el conjunto de
tablas, vistas, sinónimos, instantáneas, enlaces de base de datos,
procedimientos y funciones, paquetes,...
◦ Cada usuario tiene su propio esquema y, en principio, un usuario
no tiene acceso a los elementos de otro usuario, salvo que sea un
administrador o que otro usuario ceda el privilegio de utilización
de uno o más de sus objetos al resto de usuarios.
28. Un esquema es una colección de objetos. Los objetos son
tablas, vistas, secuencias, procedimientos almacenados,
sinónimos, índices, clusters y database links.
No hay relación entre esquema y tablespace, es decir: los
objetos de un Esquema pueden contener objetos de
diferentes esquemas.
El concepto de esquema de BD está ligado al concepto de
usuario de BD, correspondiéndose unívocamente cada
esquema con una cuenta de usuario, de forma que el usuario
y el esquema asociado tienen el mismo nombre.
29. Scott: soportado en todas las versiones de Oracle (contraseña: tiger)
Human Resources (HR): tiene 6 tablas: employees, departments,
locations, countries, jobs, job_history.
Order Entry (OE) contiene funciones relacionadas con el objeto y
orientadas al mismo. Tiene 7 tablas: customers,
product_descriptions, product_information, order_items, orders,
inventories y warehouses. Tiene enlaces al esquema deHR y al de
PM. También tiene sinónimos definidos en objetos de HR.
Product Media (PM): tiene 2 tablas: online_media y print_media, un
tipo de objeto, adheader_typ y una tabla anidada textdoc_type.
Incluye los tipos de columna interMedia y LOB.
Historial de ventas (SH) tiene la tabla SALES particionada por rango y
5 tablas de dimensiones: times, promotions, channels, products y
consumers. Tiene una tabla adicional: countries
30. Una tabla es la unidad básica de almacenamiento de datos en
una BD.
Cada tabla está definida por su nombre y por un conjunto de
columnas.
Cada columna tiene un nombre y un tipo (char, varchar2,
date, number…) y una longitud, que puede venir determinada
por el tipo (en el tipo date), o una escala y una precisión (en
el tipo number).
Una vez creada la tabla, se pueden insertar filas válidas en
ella y entonces las filas podrán ser consultadas, borradas o
modificadas.
Para asegurar que se cumplan determinadas reglas
establecidas sobre los datos de la tabla se pueden definir
reglas de integridad y triggers.
31. Son tablas virtuales, creadas a partir de
otra(s) tabla(s), de forma dinámica y que se
manipulan como las tablas normales.
Finalidad:
◦ Simplificar el acceso a la BDD, pues muestran al
usuario los datos útiles debidamente
manipulados, escondiendo la complejidad de los
datos (sobre todo con JOINS)
◦ Restringir los derechos de acceso a la BDD,
mostrando sólo los datos permitidos al usuario,
limitando las columnas y/o filas.
32. Una secuencia genera una serie de números únicos,
independientemente de cualquier tabla que la use, según una
progresión aritmética.
Puede ser usada por varias tablas (para llenar alguna de sus
columnas) y ser accedida por varios usuarios.
CACHE integer: permite guardar en memoria un conjunto
preasignado de números de secuencia
ORDER: asigna los números de secuencia en orden de peticiones
DROP SEQUENCE CONTADOR_SEQ;
CREATE SEQUENCE CONTADOR_SEQ
START WITH 10 INCREMENT BY 2
MAXVALUE 10000
MINVALUE 0
CYCLE;
33. Procedimientos (almacenados)
Funciones (almacenados)
Paquetes (packages) (almacenados)
Un PROCEDIMIENTO ó FUNCIÓN es un conjunto de sentencias
SQL y PL/SQL agrupadas como una unidad ejecutable para
realizar una tarea específica. Usando PL/SQL, pueden
almacenarse en la BD.
◦ La diferencia entre procedimiento y función es que la función
devuelve un valor y los procedimientos no.
Los PAQUETES son un modo de encapsular y almacenar
procedimientos y funciones relacionados, así como otras
construcciones, juntos como una unidad.
◦ Proporcionan, tanto al administrador de la Base de Datos como a
los desarrolladores de aplicaciones, grandes beneficios a nivel
organizativo; además de incrementar el rendimiento de la BD.
34. Los SINÓNIMOS son alias para tablas, vistas, secuencias o unidades de
programa. Un sinónimo no es, por tanto, un objeto en sí mismo, sino una
referencia directa a un objeto.
Finalidad:
◦ Ocultar el nombre real y el propietario de un objeto.
◦ Dar acceso público a un objeto.
◦ Hacer transparentes la localización de tablas, vistas o unidades de
programa de una BD remota.
◦ Simplificar las sentencias SQL a los usuarios de la BD.
Un sinónimo puede ser PÚBLICO o PRIVADO.
◦ Un determinado usuario puede crear un sinónimo privado, pero sólo él
podrá usarlo
El administrador de la BD suele crear sinónimos públicos, dando acceso a un
objeto a cualquier usuario de la BD
CREATE PUBLIC SYNONYM TBEMPRESA FOR PEPE.TBEMPRESA;
Así, TBEMPRESA es el nombre de un objeto que se pone a disposición de
todos los usuarios de la BD.
Para eliminar el sinónimo:
DROP SYNONYM TBEMPRESA
35. Son estructuras opcionales asociadas a tablas que
permiten acelerar las consultas (sobre todo los
JOIN).
Formados por una o varias columnas (índices
concatenados).
Se pueden crear con la sentencia “CREATE INDEX”.
36. Un cluster es una agrupación de tablas almacenadas físicamente
juntas ya que tienen columnas comunes y frecuentemente se usan
juntas (en JOINS). Como las filas relacionadas se almacenan
físicamente juntas los tiempos de acceso a disco mejoran.
Las columnas relacionadas de las tablas de un cluster forman la
clave de cluster. Ésta está indexada de forma que las filas del cluster
pueden ser accedidas minimizando la E/S.
Puesto que el índice del cluster se almacena sólo una vez para todas
las tablas del mismo, el cluster almacena las tablas de forma más
eficiente que si se almacenaran por separado.
Los clusters son transparentes a las aplicaciones, es decir, los datos
de una tabla almacenada en un cluster son accedidos vía SQL de
igual modo que si ésta no estuviese en el cluster.
37. Los cambios en la base de datos no son guardados hasta que
tras una serie de instrucciones se decide llevar a cabo esos
cambios. Hasta ese momento todo lo realizado se toma como
provisional. Un fallo en la máquina permitiría invertir los
cambios.
Una transacción son varias operaciones SQL que forman una
unidad de trabajo.
Comienza cuando una persona se conecta y de ahí hasta que
ejecuta la instrucción commit (ejecutar la transacción) o
rollback (anular la transacción). La anulación deja la base de
datos en el estado anterior al comienzo de la transacción.
Tras un commit o un rollback comienza la siguiente
transacción.
En Oracle se admite además el uso de puntos de ruptura
(checkpoints) para almacenar valores intermedios y volver a
cualquier de ellos si interesa. Pero esto ralentiza
excesivamente el sistema.
38. La instancia de la base de datos es uno de los dos elementos
de cualquier base de datos Oracle. Sirve para gestionar los
datos de la base de datos y proporcionar servicio a los
usuarios que acceden a la misma.
Está compuesta de:
Estructuras en memoria.
Procesos en segundo plano (background).
SGA
◦ Es la abreviatura de System Global Area, Área Global de Sistema.
Está situada al inicio de los datos de la instancia y contiene los
datos e información de control de la instancia.
PGA
◦ Zona global de los programas (Program Global Area). En ella se
almacenan los datos correspondientes a un proceso (sólo un
proceso puede utilizar esta área).
39. Para establecer una sesión con la base de datos, el usuario
necesita conectar con la instancia de la base de datos.
Normalmente esto significa arrancar una herramienta cliente
como SQL*Plus o ejecutar una aplicación de desarrollo de
bases de datos (como Oracle Forms); entonces se ejecuta un
proceso de usuario.
Cuando esto ocurre, en el servidor se establece un proceso de
servidor. Este proceso es el encargado de comunicar al
usuario con la instancia Oracle en nombre del proceso de
usuario. Cada vez que el usuario ejecuta instrucciones SQL,
éstas son transmitidas a la instancia Oracle por el proceso
servidor.
De este modo una conexión es un camino entre un proceso
de usuario y un servidor Oracle.
Cada sesión es una conexión de un usuario con el servidor
Oracle. Un usuario puede establecer múltiples sesiones (si se
conecta desde diferentes herramientas y máquinas)
40. En Oracle los procesos pueden ser de estos tipos:
◦ Proceso de usuario. Lanzado por el usuario para pedir
interacción con la base de datos.
◦ Proceso de servidor. Hacen de enlace entre los procesos de
usuarios y el servidor Oracle. Se utilizan como manejadores
de los procesos de usuario. Los comandos de usuario se
envían a estos procesos que se encargan de solicitar
peticiones a la base de datos mediante el interfaz de
programas de Oracle (OPI, Oracle Program Interface).
◦ Procesos en segundo plano (background). Cada instancia
de Oracle arranca una serie de procesos background.
41. Desde el punto de vista de Oracle, una base de datos es una
colección de datos tratados como una única unidad. Una base
de datos Oracle contiene tres tipos de ficheros:
◦ Archivos de datos. Contiene los datos actuales de la base de datos
así como el diccionario de datos.
◦ Archivos rehacer (redo logs). Almacenan datos recuperables en
caso de error grave.
◦ Archivos de control. Necesarios para mantener la integridad de la
base de datos.
Además se utilizan otros archivos de forma auxiliar:
◦ Archivos de parámetros. Que definen algunas características de
una instancia Oracle.
◦ Archivos de contraseñas. Que sirven para autentificar a los
usuarios.
◦ Copias de archivos rehacer. Utilizadas para la recuperación de
datos.
42. Para poder ejecutar SQL sobre la base de datos, hay que
conectar con la instancia Oracle de la base de datos, lo cual
requiere la comunicación entre un proceso cliente y el
servidor
(el proceso cliente puede ser una instancia de SQL*Plus por
ejemplo). Los componentes utilizados por Oracle para
procesar el SQL dependen del código enviado:
Las consultas devuelven filas
Las instrucciones DML (Lenguaje de Manipulación de Datos)
graban cambios. La instrucción commit asegura el proceso de
la transacción.
De manera general los pasos en ese proceso son:
1. El usuario abre la herramienta que permite el envío de peticiones
SQL (por ejemplo SQL*Plus)
2. El usuario introduce su nombre de usuario y contraseña
43. 3. Oracle consulta el diccionario de datos para verificar la existencia del
usuario y para validar su permiso de conexión. Si lo tiene, se produce la
conexión
4. El usuario escribe la instrucción SQL (supongamos que es una instrucción
de modificación)
5. Oracle traduce la instrucción con el analizador de instrucciones
(devolvería un error si la instrucción no es válida)
6. Oracle traduce los nombres usados en la instrucción con la ayuda
deldiccionario de datos.
7. Si es una instrucción de mostrar datos (SELECT), comprueba si otros
usuarios han enviado hace poco esa misma instrucción, eso lo
comprueba en el caché de instrucciones de la SGA. Si la instrucción está
ahí coge los resultados del buffer caché de la base de datos.
8. Si la instrucción conlleva cambios, el servidor bloquea las filas que se
modificarán.
9. La base de datos graba los cambios (si les hubo) y actualiza los archivos
deshacer
10.La base de datos graba los nuevos valores para los datos
11.Oracle libera del bloqueo los registros
12.El usuario recibe un mensaje de éxito
44. El DD es una de las partes más importantes de una BD Oracle.
Se trata de un conjunto de tablas, que se pueden acceder sólo
en lectura, que proporcionan información sobre la BD, por
ejemplo:
◦ Nombres de los usuarios
◦ Privilegios y roles concedidos a cada usuario
◦ Nombres de los objetos (tablas, vistas, índices, clusters,
sinónimos, secuencias…)
◦ Información sobre las condiciones de integridad
◦ Valores por defecto de determinadas columnas
◦ Cantidad de espacio reservado para los objetos de la BD y
la que están usando en un momento dado.
El DD tiene 2 usos fundamentales:
◦ El SGBD accede al DD cada vez que se usa una sentencia DDL.
◦ Cualquier usuario puede usar el DD como una guía de referencia
de sólo lectura para obtener información sobre la BD.
45. El DD está siempre accesible mientras la BD está abierta. Reside en
el tablespace SYSTEM, el cual estará en línea mientras la BD
permanezca abierta.
El DD se puede concebir como una serie de conjuntos de vistas.
Cada conjunto se compone de 3 vistas que contiene similar
información, y que se diferencian entre ellas mediante un prefijo:
USER: vistas del usuario (todo lo que está en el esquema del usuario)
ALL: vistas expandidas del usuario (todo a lo que el usuario tiene acceso)
DBA: vistas del administrador (todo lo que pueden acceder todos los
usuarios)
Las columnas de las vistas de un mismo conjunto son idénticas, con
las siguientes excepciones:
Las vistas con el prefijo USER normalmente no tienen la columna
OWNER (propietario del objeto), pues esta columna está implícita en
el usuario que consulta la vista
Algunas vistas con prefijo DBA tienen columnas adicionales que
proporcionan información útil al administrador.
46. En esta arquitectura el sistema de BD se divide en 2 partes: parte
cliente y parte servidor.
CLIENTE
La parte cliente interacciona con el usuario a través del teclado, la
pantalla y el ratón. No tiene responsabilidades de acceso a los
datos; se concentra en pedir, procesar y presentar los datos
gestionados por la parte servidor. De esta forma la estación cliente
puede optimizarse para su trabajo. Por ejemplo: quizás no necesite
mucha capacidad de disco y quizás pueda aprovechar capacidades
gráficas.
SERVIDOR
La parte servidor ejecuta el software ORACLE y mantiene las
funciones necesarias para el acceso concurrente y compartido a los
datos. Recibe y procesa las sentencias SQL y PL/SQL que le llegan
desde las estaciones cliente. El ordenador que soporta la parte
servidor, puede ser optimizado para cumplir su función; por
ejemplo, puede tener una gran capacidad de disco y procesadores
rápidos.
47. Una BDD, Base de Datos Distribuida, es una red de bases de
datos gestionada por múltiples servidores de BD, que para el
usuario aparecen como una sola BD lógica.
Cada ordenador que gestiona una BD en la BDD se conoce
como un nodo. La BD a la que se conecta el usuario
directamente se llama BDL (Base de datos local). Cualquier
otra BD accedida por el usuario la llamaremos BDR (Base de
datos remota).
Cuando una BDL accede a una BDR, la BDL es un cliente del
servidor remoto (arquitectura cliente-servidor).
Hay: transparencia en la localización, autonomía local y
consistencia de los datos.
SELECT * FROM proveedores@CONTA
48. MySQL es uno de los sistemas de gestión de
bases de datos relacional más extendido en la
actualidad.
Desarrollado originalmente por MySQL AB,
adquirida por Sun MicroSystems en 2008 y
comprada por Oracle Corporation en 2010, la
cual ya era dueña de un motor propio InnoDB
para MySQL.
MySQL es un sistema de gestión de bases de
datos que cuenta con una doble licencia. Por una
parte es de código abierto, pero también cuenta
con una versión comercial gestionada por la
compañía Oracle.
49. MySQL fue inicialmente desarrollado por
MySQL AB (empresa fundada por David
Axmark, Allan Larsson y Michael Widenius) en
1995,
En 1999, se lanzó la versión 3.23.0, la
primera versión en importancia.
Siguieron otras como las versiones 5.0.0, en
2003.
En diciembre de 2009 la versión 5.5.x.
Comprada por Oracle Corporation en 2010
50. MySQL está escrito en C y C++.
Es muy utilizado en aplicaciones web, como
Joomla, Wordpress o Drupal.
Está muy ligado a PHP, ya que es un lenguaje
de programación que permite accede a la
base de datos MySQL en las aplicaciones web
más usadas.
51. MariaDB es una base de datos más reciente,
surgida tras la compra de MySQL por parte de
Oracle.
Michael Widenius, uno de los creadores de
MySQL, con el tiempo desarrolló una copia (fork)
de MySQL llamada MariaDB.
Realizada por los desarrolladores originales de
MySQL, ofrece la misma funcionalidad que el
proyecto original, con algunas mejoras. Muchos
usuarios importantes de MySQL han migrado a
esta nueva alternativa, como Google, Mozilla,
Wikimedia Foundation y XAMPP.
MariaDB ha sustituido a MySQL como instalación
estándar en diversos distribuidores Linux.
52. Según Widenius, el objetivo de MariaDB es:
◦ Mantener reunidos a los creadores de MySQL.
◦ Fomentar la continuidad en el desarrollo de la
comunidad.
◦ Garantizar que siempre haya disponible una versión
de MySQL gratuita.
Nuevos motores de almacenamiento:
◦ Aria: Motor de almacenamiento a prueba de fallos
basado en MyISAM.
◦ XtraDB: El reemplazo del motor InnoDB.
53. MongoDB es una base de datos documental,
lo que significa que almacena datos en forma
de documentos tipo JSON.
JavaScript Object Notation (JSON) es un
formato basado en texto estándar para
representar datos estructurados en la sintaxis
de objetos de JavaScript. Es comúnmente
utilizado para transmitir datos en
aplicaciones web
54. Líder mundial en la creación de webs.
WordPress está desarrollado en el lenguaje
PHP para entornos que ejecuten MySQL y
Apache, bajo licencia GPL y es software libre.
55. Herramienta de software gratuita escrita en
PHP, destinada a manejar la administración
de MySQL a través de la Web.
Admite operaciones en MySQL y MariaDB.
Las operaciones de uso frecuente
(administración de bases de datos, tablas,
columnas, relaciones, índices, usuarios,
permisos, etc.).
Se pueden realizar a través de la interfaz de
usuario, teniendo la capacidad de ejecutar
directamente cualquier declaración SQL.
56. El servidor web es un servicio que permite
servir páginas web, fotos, videos y archivos a
través de un protocolo llamado HTTP.
Almacena los archivos del sitio web.
Cuando un usuario escribe la dirección de un
sitio web y comienza la búsqueda, el sistema
encuentra el servidor donde está alojado el
sitio y el servidor web se encarga de enviar el
contenido a nuestro navegador.
57. Es un proyecto open-source (código abierto)
que nació en 1995.
Ha liderado el mercado de servidores web, es
el más usado, aunque ha perdido bastante
popularidad.
Debido a que Apache no funciona tan bien
especialmente para sitios web estáticos o
sitios web con alto tráfico se tiende
actualmente a utilizar el servidor Nginx.
58. Servidor web, proxy inverso y de correo
electrónico originalmente escrito por Igor
Sysoev.
NGINX fue lanzado oficialmente el 4 octubre
del 2004.
Su reto era solucionar el problema C10k.
C10k es el reto de gestionar diez mil
conexiones al mismo tiempo.
Utilizado como servidor web en los sitios de
mayor tráfico de red.
59. LAMP: Linux-Apache_MySQL_PHP
LAMPPP: Linux -Apache_MySQL/MongoDB_PHP/PERL/Python
LNMP: Windows - Nginx_MariaDB_PHP
LAPP: Linux - Apache_PostgreSQL_PHP
MAMP: MacOS - Apache_MySQL_PHP
MAMPPP: MacOS - Apache_MySQL_PHP_PERL_Python
MAPP: MacOS - Apache_PostgreSQL_PHP
WIMP: Windows - IIS_MySQL_PHP
WNMP: Windows - Nginx_MariaDB_PHP
WAMP: Windows - Apache_MySQL_PHP
WAMPPP: Windows - Apache_MySQL_PHP/PERL/Python
WAPP: Windows - Apache_PostgreSQL_PHP
XAMPP: Linux/MacOS/Windows - Apache_MariaDB_PHP/Perl