Buscar en este blog

lunes, 2 de agosto de 2021

1.1 ADMINISTRADOR DE BASE DE DATOS


Una persona como administrador de base de datos, puede ser responsable de mantener, gestionar y administrar objetos de bases de datos, bases de datos e instancias de DB2, por ejemplo espacios de tabla, tablas y vistas. Por ejemplo, puede ser que para llevar a cabo su estrategia de copia de seguridad y recuperación necesite crear copias de seguridad periódicas de sus bases de datos. Un ejemplo más: puede ser que, con el tiempo, los datos de sus tablas se hayan fragmentado, con lo que aumenta el tamaño de las tablas y los índices, debido a que los registros están distribuidos en cada vez más páginas de datos. Para recuperar el espacio desaprovechado y mejorar el acceso a los datos, probablemente necesitará reorganizar las tablas y los índices.

 

Puede que para gestionar y mantener sus sistemas de bases de datos necesite ejecutar mandatos de administración de bases de datos, que incluyen:

  •          Mandatos de DB2
  • ·         Mandatos de sistema
  • ·         Programas de utilidad
  • ·         sentencias SQL


1.2 Análisis de los mejores de base de datos

El sistema manejador de bases de datos es la porción más importante del software de un sistema de base de datos. Un DBMS es una colección de numerosas rutinas de software interrelacionadas, cada una de las cuales es responsable de alguna tarea específica.


MySQL
Es la base de datos de código abierto más popular del mercado. Gracias a su rendimiento probado, a su fiabilidad y a su facilidad de uso, MySQL se ha convertido en la base de datos líder elegida para las aplicaciones basadas en web y utilizada por empresas web de perfil alto.
Gestor de simple instalación que actúa del lado del cliente (servidor) y de código abierto con licencia comercial disponible. Actualmente, pertenece a Oracle Corporation. Gestiona bases de datos relacionales y es multiusuario. Destaca por requerir de poca memoria y procesador para funcionar, dando lugar además a una mayor velocidad en sus operaciones.


 






PostgreSQL

Es un sistema de gestión de bases de datos relacional orientado a objetos, ya que incluye características de la orientación a objetos, como puede ser la herencia, tipos de datos, funciones, restricciones, disparadores, reglas e integridad transaccional, liberado bajo la licencia BSD. 

Su desarrollo  no es manejado por una empresa o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre o apoyada por organizaciones comerciales. 


SQLite

Es una biblioteca escrita en leguaje C que implementa un Sistema de gestión de bases de datos transaccionales SQL auto-contenido, sin servidor y sin configuración. No necesita un proceso separado funcionando como servidor ya que lee y escribe directamente sobre archivos que se encuentran en el disco duro. El formato de la base de datos es multiplataforma e indistintamente se puede utilizar el mismo archivo en sistemas de 32 y 64 bits.


FireBird

Es un sistema de administración de base de datos relacional que trabaja con el lenguaje SQL para manipular datos. Dispone de la mayoría de las instrucciones DDL y DML estándar de SQL. Firebird es muy versátil, puede ejecutarse como servicio o aplicación. Es compatible con Windows y Linux. Entre otras funciones, da soporte completo para procedimientos almacenados, transacciones compatibles con las características ACID y métodos de acceso múltiple (nativo, Python, .NET, etc).




Este SGBD surge a raíz de la compra de Sun Microsystems compañía que había comprado previamente MySQL AB por parte de Oracle. MariaDB es una bifurcación directa de MySQL que asegura la existencia de una versión de este producto con licencia GPL. Widenius decidió crear esta variante porque estaba convencido de que el único interés de Oracle en MySQL era reducir la competencia que MySQL suponía para el mayor proveedor de bases de datos relacionales del mundo, que es Oracle.


MongoDB
Es un sistema de base de datos NoSQL orientado a documentos de código abierto.
En lugar de guardar los datos en tablas, tal y como se hace en las bases de datos relacionales, MongoDB guarda estructuras de datos BSON (una especificación similar a JSON) con un esquema dinámico, haciendo que la integración de los datos en ciertas aplicaciones sea más fácil y rápida.
MongoDB es una base de datos adecuado para su uso en producción y con múltiples funcionalidades. Esta base de datos se utiliza mucho en la industria, contando con implantaciones en empresas como MTV Network,Craiglist, BCI o Foursquare.


Oracle

Es uno de los sistemas de gestión de base de datos relacional más fiable y usado. Pertenece a Oracle Corporation y se desarrolló en 1977. Está construido alrededor de un marco en el que se puede acceder directamente a los objetos a partir del lenguaje de consulta SQL. Oracle es una arquitectura escalable y muy utilizada por las empresas. Tiene su propio componente de red para que pueda haber comunicación a través de las redes. Se ejecuta en casi todas las plataformas (Windows, Unix, Linux, MAC OS…). La principal y peculiar característica de Oracle es que, su arquitectura, se divide entre la lógica y la física. 


Microsoft SQL Server
Es un sistema de manejo de bases de datos del modelo relacional, desarrollado por la empresa Microsoft. El lenguaje de desarrollo utilizado (por línea de comandos o mediante la interfaz gráfica de Management Studio) es Transact-SQL (TSQL), una implementación del estándar ANSI del lenguaje SQL, utilizado para manipular y recuperar datos (DML), crear tablas y definir relaciones entre ellas (DDL). Integra un conjunto de programas que añaden características, como pueden ser el tratamiento de errores y excepciones, procesamiento de datos, extracción de datos directos de Web, uso de distintos lenguajes de programación, etc… y más características que hacen de SQL Server un gestor muy completo. Además, destaca por su carácter administrativo  tanto en sus funciones y seguridad como en la flexibilidad de las bases de datos.



DB2

Es una marca comercial, propiedad de IBM, bajo la cual se comercializa el sistema de gestión de base de datos. Utiliza XML como motor, además el modelo que emplea es el jerárquico en lugar del modelo relacional que utilizan otros gestores.

Permite el manejo de objetos grandes (hasta 2 GB), definición de datos y funciones por parte del usuario, el chequeo de integridad referencial, SQL recursivo, soporte multimedia: texto, imágenes, video, audio; queries paralelos, commit de dos fases, backup/recuperación on−line y offline.



 

Microsoft Access

Es un sistema de gestión de bases de datos Relacional creado por Microsoft (DBMS) para uso personal de pequeñas organizaciones. Se ha ofrecido siempre como un componente de la suite Microsoft Office aunque no se incluye en el paquete “básico”. Una posibilidad adicional es la de crear ficheros con bases de datos que pueden ser consultados por otros programas. Entre las principales funcionalidades reseñables podemos indicar que: Ofrece un entorno de programación a través de VBA y puede realizar llamadas a la API de Windows.


1.3 Consideraciones para elegir un SGBD

1. Que sea fácil de usar

La primera cosa a tener en cuenta al elegir un sistema de gestión de los elementos de una base de datos para tu organización es la facilidad de uso. Asegúrate de que el sistema sea fácil de usar para todos los miembros del personal que van a necesitar utilizarlo. Por ejemplo, en algunas empresas tendrán que utilizarlo programadores, resto del personal de IT y la gente de marketing. Si estos grupos de personas van a tener que acceder al SGBD deberías comprobar que se trata de un SGBD conveniente y fácil de utilizar según sus habilidades.

 

2. Seguridad de los Datos

La seguridad de datos es un aspecto integral en la implementación de una base de datos. Toda la información, tanto personal como de negocios, debe tener carácter confidencial y debe estar almacenada de forma segura, protegida de robo o pérdida. Por lo tanto, ten en cuenta tanto los riesgos físicos como puede ser un robo, como los riesgos derivados de errores humanos, como el facilitar la piratería o la corrupción de datos no intencional, antes de elegir un sistema de gestión de base de datos si quieres mantener tus datos seguros y protegidos.

 

3. Funcionalidad

Asegúrate de que todos los módulos que están disponibles en el SGBD cumplen los requisitos de tu negocio. Al menos debería de tener los siguientes módulos o funcionalidades:

 

Gestión del ROI

Planificador de campañas

Consultas y análisis de resultados

Estrategia de predicción

Automatización de datos

Capacidad de modelado y segmentación de datos

Filtrar y extraer datos

 

 

4. Capacidad de integración

Puede que en un futuro quieras integrar tu sistema de gestión de base de datos con otros sistemas que estéis utilizando. Asegúrate de que tu sistema tiene la capacidad de integrarse con ellos, por ejemplo, con un sistema de CRM, o de e-mail marketing.

 

5. Soporte y Desarrollo

Piensa en el servicio de soporte que la compañía de software ofrece para su sistema de gestión de base de datos. ¿Se trata de un servicio que está disponible durante las horas en las que es probable que necesites ayuda? Proporcionan apoyo a través de correo electrónico, teléfono u otros medios?

Asegúrate de que existe un plan de desarrollo para el software seleccionado de modo que puedas estar seguro que a medida que aparecen nuevas tecnologías éste crecerá con ellas. Confirma que vas a recibir las actualizaciones mientras utilizas el software.

 

6. Escalabilidad

Asegúrate de que el SGBD seleccionado tiene capacidad para crecer con tus datos y tu empresa. Recuerda que seguiréis añadiendo datos todo el tiempo, por lo que a pesar de que tu requisito actual puede no ser enorme, esto puede cambiar muy rápidamente. Piensa que puedas gestionar millones de registros de datos para estar seguro.

 

7. Coste e Idoneidad

El coste es un factor importante pero debes asegurarte que tu decisión está basada sobre todo en que el SGBD que seleccionas sea el adecuado para tu empresa. Si escoges uno barato pensando solo en el precio podrías cometer un error todavía mayor ya que podrías verte obligado a invertir pronto en uno nuevo asumiendo otra vez los costes del software y su implementación. Tampoco elijas el más caro si no vas a utilizar la mayor parte de su funcionalidad.

 


 

Los tres factores más influyentes a la hora de elegir un servidor de bases de datos son el tipo de datos y aplicaciones utilizadas así como el rendimiento requerido, según reza el último estudio realizado por los expertos de ComputerWorld USA. Según dicho estudio, los fabricantes de servidores de este tipo están esforzándose por adaptar su oferta tanto a la gama alta como a la gama baja del mercado, al tiempo que están mejorando las prestaciones de su oferta de gama media. Por un lado, compañías como AT&T GIS, Informix, IBM, Oracle o Sybase están revisando sus productos para conseguir más rendimiento en el hardware que utiliza multiproceso simétrico (SMP) o proceso masivamente paralelo (MPP), principalmente para soportar aplicaciones de almacenes de datos y OLTP. Y, paralelamente, otros fabricantes (Computer Associates, Oracle, Sybase, ...) se han ido también al otro extremo al trabajar con la oferta de gama baja que competirá con sistemas de gestión de bases de datos basados en ordenadores personales similares a dBASE y Paradox de Borland. En la gama media ha habido menos actividad; los fabricantes prometen principalmente funcionalidades para replicación de datos y soporte de nuevos tipos de datos en sus productos tradicionales en puestos departamentales.

 

El soporte para nuevos tipos de datos permite que los servidores SGBD puedan almacenar imágenes complejas, texto, mapas, audio y vídeo junto con números o caracteres simples. Los servidores SGBD que utilizan la potencia de arquitecturas multiproceso permiten desarrollar aplicaciones que proporcionan un mejor rendimiento, soportan más usuarios y desarrollan su trabajo con bases de datos grandes.

 

Pero todo esto implica tener que estar más atento al sistema operativo y al hardware.

 

Distintos servidores SGBD

 

I. Entornos corporativos: Más de 100 usuarios; más de 20 GB por servidor (SMP o MPP)

 

II. Entornos departamentales: 20-100 usuarios; De 1 a 20 GB por servidor (SMP).

 

III. Grupos de trabajo: hasta 20 usuarios; 1 GB por CPU.

 

IV. Entornos personales: 1 usuario; a partir de 500 MB (PC o laptop)


1.4 Nuevas tecnologías y aplicaciones de los sistemas de bases de datos


MERCADO LIBRE // INTERNET

El mercado libre es el sistema en el que el precio de los bienes o servicios es acordado por el consentimiento de los vendedores y/o empresarios, mediante las leyes de la oferta y la demanda, siendo luego bajados a los consumidores.

Plaza vip es un ejemplo podría reactivar las compras de los clientes, las empresas virtuales pueden utilizar programas automáticos de correo que envían, recordatorios de compras de navidad, o promociones fuera de temporada, así como descuentos. La base de datos puede ayudar a la empresa a realizar ofertas atractivas y oportunas.

REDES DE LA COMUNICACIÓN

Google genera ventas por medio de la publicidad de sus productos u ofertas. Los anuncios contienen por norma general un sistema de respuesta, como una tarjeta de respuesta de negocios o un número gratuito, se confecciona la base de datos a partir de esas respuestas, en el caso de servicios comerciales hacen uso de Google.

INSTITUCIONES DE GOBIERNO

Institución de gobierno cuyo fin es elaborar políticas de generación y mejora del empleo, contribuir al desarrollo de pequeñas empresas, así como promover las normas laborales en la región Arequipa.

INTERFAZ DE PROGRAMACIÓN DE APLICACIONES (API)

Es un conjunto de rutinas, protocolos y herramientas para construir aplicaciones de interfaz. Una buena API hace más fácil el trabajo de desarrollo de un programa, ya que debe proveer todos los bloques para construirlo. El programador lo único que hace es poner todos los bloques juntos.

API está diseñado especialmente para los programadores, ya que garantiza que todos los programas que utilizan API, tendrán interfaces similares. Asimismo, esto le facilita al usuario aprender la lógica de nuevos programas.

INTERFAZ DE PROGRAMACIÓN DE APLICACIONES DEL SERVIDOR INTERNET (ISAPI)

Es la interfaz propuesta por Microsoft como una alternativa más rápida que el CGI, y ya está incluida en el Servidor Microsoft Internet Information (IIS). Así como los escritos CGI, los programas escritos usando ISAPI habilitan un usuario remoto para ejecutar un programa, busca información dentro de una base de datos, o intercambia información con otro software localizado en el servidor.

Los programas escritos usando la interfaz ISAPI son compilados como bibliotecas de enlace dinámico (DLL - Dynamic Link Library), ya que son cargados por el servidor Web cuando éste se inicia. Dichos programas se vuelven residentes en memoria, por lo que se ejecutan mucho más rápido que las aplicaciones CGI, debido a que requieren menos tiempo de uso de CPU al no iniciar procesos separados.

JAVA, JDBC Y JAVASCRIPT 

Java ofrece un ambiente de programación muy sencillo, robusto, dinámico, de propósito general, orientado a objetos y múltiples plataformas, creado por Sun MicroSystems.

Es tanto un compilador como un lenguaje intérprete. El código fuente de Java es convertido en instrucciones binarias simples, y compilado con un formato universal.

El Compilador realiza todas las actividades de un procesador real en un ambiente virtual más seguro. Es decir, ejecuta instrucciones, crea y manipula información, carga y hace referencia a bloques de código nuevos.

INSTRUMENTOS TECNOLÓGICOS

Datawarehouse: Es simplemente el término para “almacenaje de volúmenes de información”. Consiste prácticamente en la utilización de sistemas de almacenamiento en medios electrónicos o magnéticos bajo un ambiente de seguridad de la información recopilada.

Fullfilment: Básicamente son estrategias de fidelización, mediante comunicación constante y retroalimentación buscando la mayor comodidad de comunicación al cliente y buscando mejorar niveles de venta.

Bases de datos en la nube

Uno de los principales cambios radica en la forma en la que compramos el software de base de datos. En el pasado, comprábamos nuestras propias máquinas y firmábamos acuerdos de licencia para ejecutar el software en ellas. Ahora las empresas de nube están ofreciendo servicios que almacenan blobs de datos en algún lugar que no podemos ni ver ni tocar. Lo único que nos dicen es que los datos van a estar ahí para cuando los queramos.


Las ventajas son evidentes. No hay necesidad de mantener el servidor que la sostiene ni de preocuparse por la concesión de licencias, la configuración o instalación de parches. Otro se ocupa de todo ese quebradero de cabeza. La solución es más barata también -especialmente si no tiene una tonelada de datos que almacenar. Los servicios generalmente cobran por byte.


Cuadro Sinóptico de las funciones de un DBA


lunes, 26 de julio de 2021

2.1 Estructura de memoria y procesos de la instancia

Estructura de memoria:

Es un grupo de estructuras de la memoria compartida que contiene datos e información de control de una instancia de una BD. Si varios usuarios se conectan de forma concurrente a la misma instancia, entonces los datos se comparten en el SGA, por lo que también se llama shared global area.

Estructura de Datos del SGA:

  1.         Caché de los Buffers
  2.          Buffer del registro de Redo
  3.         El Pool compartido
  4.          Large Pool
  5.          Java Pool
  6.          Streams Pool
  7.        Caché de diccionario

Caché de los Buffers (Database Buffer Cache)

Contiene copias de los bloques de datos de lectura de las páginas. Todos los procesos de los usuarios conectados concurrentemente a la instancia comparten el acceso a ella.  

Buffer del registro del Rehacer (Redo Log Buffer)

Contiene información sobre cambios hechos a la base de datos, la cual se almacena en las ‘entradas redo’. Estas entradas contienen la información necesaria para reconstruir, o rehacer cambios hechos en la base de datos mediante las operaciones INSERT, UPDATE, DELETE, CREATE, ALTER o DROP y se usan para la recuperación de la base de datos, si fuera necesario.


El Pool Compartido

Es la parte del SGA que contiene la cache de biblioteca, la cache de diccionario, los buffers para los mensajes de ejecución paralela y las estructuras de control.

Large Pool

El administrador de la base de datos puede configurar un área de memoria opcional llamado large pool que proporciona grandes cantidades de memoria

Java Pool

Se usa en la memoria del servidor para almacenar todo el código y datos del JVM en las sesiones.

Streams Pool

En una única base de datos, se puede especificar que los flujos de memoria se asignen desde un pool en el SGA llamado Streams pool.

Cache de diccionario (Dictionary Cache)

El diccionario de datos es una colección de tablas y vistas de la base de datos que contienen información sobre la base de datos (sus estructuras y sus usuarios).


2.2 Estructura física de la base de datos

 

En una base de datos almacenamos información relevante para nuestro negocio u organización y desde el punto de vista físico, la base de datos está conformada por dos tipos de archivos:

Archivos de datos: contiene los datos de la base de datos internamente, está compuesto por páginas enumeradas secuencialmente que representa la unidad mínima de almacenamiento. Cada página tiene un tamaño de 8kb de información. Existen diferentes tipos de páginas, a tener en cuenta:

Páginas de datos: es el tipo principal de páginas y son las que almacenan los registros de datos. Páginas de espacio libre (PFS Page Free Space): almacenan información sobre la ubicación y el tamaño del espacio libre.

Paginas GAM and SGAM: utilizadas para ubicar extensiones.

Páginas de Mapa de Ubicaciones de índices (IAM – IndexAllocationMap): contiene información sobre el almacenamiento de páginas de una tabla o índice en particular. Páginas Índices: Utilizada para almacenar registros de índices.


Archivo de Registro de Transacciones: El propósito principal del registro de transacciones es la recuperación de datos a un momento en el tiempo o complementar una restauración de copia de respaldo completa (full backup). El registro de transacciones no contiene páginas, sino entradas con todos los cambios realizados en la base de datos, como son las modificaciones de datos, modificaciones de la base de datos y eventos de copia de seguridad y restauración. El acceso a datos es secuencial, ya que el registro de transacciones se actualiza en el mismo orden cronológico en el que se hacen las modificaciones.

Este archivo no puede ser leído por herramientas de usuario de SQL auqnue existen herramientas de terceros que leen este archivo para recuperar los cambios efectuados. Dependiendo de la versión el registro de transacciones se utiliza para otros propósitos como por ejemplo bases de datos espejo (mirror) y transporte remoto de transacciones (log shipping).

Para muchos de los administradores de bases de datos, la imagen anterior representa la parte lógica y la parte física, donde:

Data File:

Los datafiles son los archivos físicos en los que se almacenan los objetos que forman parte de un tablespace. Un datafile pertenece solamente a un tablespace y a una instancia de base de datos. Un tablespace puede estar formado por uno o varios datafiles. Cuando se crea un datafile, se debe indicar su nombre, su ubicación o directorio, el tamaño que va a tener y el tablespace al que va a pertenecer. Además, al crearlos, ocupan ya ese espacio aunque se encuentran totalmente vacíos, es decir, Oracle reserva el espacio para poder ir llenándolo poco a poco con posterioridad. Por supuesto, si no hay sitio suficiente para crear un archivo físico del tamaño indicado, se producirá un error y no se creará dicho archivo.

Cuando se van creando objetos en un tablespace, éstos físicamente se van almacenando en los datafiles asignados a dicho tablespace, es decir, cuando creamos una tabla y vamos insertando datos en ella, estos datos realmente se reparten por los archivos físicos o datafiles que forman parte del tablespace. No se puede controlar en qué archivo físico se almacenan los datos de un tablespace. Si un tablespace está formado por 2 datafiles y tenemos una tabla en ese tablespace, a medida que vamos insertando filas éstas se almacenarán en cualquiera de los dos datafiles indistintamente, es decir, unas pueden estar en un datafile y otras en otro.

El espacio total disponible en un tablespace es lógicamente la suma de los tamaños que ocupan los archivos físicos o datafiles que lo forman. Como hemos indicado estos datafiles, al crearlos, están totalmente vacíos, simplemente es un espacio reservado y formateado por Oracle para su uso. A medida que se van creando objetos en ellos como tablas, índices, etc. y se van insertando registros en estas tablas, los datafiles se van llenando o, lo que es lo mismo, el tablespace se va llenando.

Tienen las siguientes características:

Ø   Un archivo sólo puede estar asociado con una base de datos.

Ø   Los archivos de datos tienen atributos que permiten reservar automáticamente para ellos extensiones cuando se acaba el espacio.

Ø   Uno o más archivos de datos forman una unidad lógica de almacenamiento llamada tablespace.

Os Block: Conocidos como Disk Block, estos mapean a los data blocks. A la hora de crear una nueva base de datos se debe indicar cuántos bloques de sistema operativo formarán un bloque de datos.