UNIVERSIDAD POLITECNICA AMAZONICA
INGENIERÍA DE SISTEMAS Y TELEMÁTICAS
Docente : Marco Aurelio Porro Chulli
Asignatura :Lenguaje de Programación III.
Ciclo : VII "A"
Integrantes : Vicente Wualdir Alberca Rojas
Yenny Isabel Cuello Morón
GESTOR DE BASE DE DATOS
1.
Contenido
Ø Definición
Se trata de un conjunto de programas no visibles al usuario
final que se encargan de la privacidad, la integridad, la seguridad de los
datos y la interacción con el sistema operativo. Proporciona una interfaz entre
los datos, los programas que los manejan y los usuarios finales.
Cualquier operación que el usuario hace contra la base de datos está controlada por el gestor.
El gestor almacena una descripción de datos en lo que llamamos diccionario de datos, así como los usuarios permitidos y los permisos.
Tiene que haber un usuario administrador encargado de centralizar todas estas tareas.
Cualquier operación que el usuario hace contra la base de datos está controlada por el gestor.
El gestor almacena una descripción de datos en lo que llamamos diccionario de datos, así como los usuarios permitidos y los permisos.
Tiene que haber un usuario administrador encargado de centralizar todas estas tareas.
Los Sistemas Gestores de Bases de Datos (SGBD, por
sus siglas en inglés), también conocidos como sistemas manejadores de bases de
datos o DBMS (DataBase Management System), son un conjunto de programas que manejan todo acceso a la base de datos, con
el objetivo de servir de interfaz entre
ésta, el usuario y las aplicaciones utilizadas.
Gracias a este sistema de software específico el usuario puede gestionar
la base de datos(almacenar, modificar y acceder a la información
contenida en ésta) mediante el uso de distintas herramientas para su análisis,
con las que puede realizar consultas y generar informes.
Además de gestionar los datos y mantener su
consistencia, su utilización supone numerosas ventajas a la hora de construir y
definir la base de datos a diferentes niveles de abstracción para distintas
aplicaciones, pues facilita los procesos y también su mantenimiento.
Un SGBD debe permitir:
• Definir una base de datos: especificar tipos, estructuras y restricciones de datos.
• Construir la base de datos: guardar los datos en algún medio controlado por el mismo SGBD
• Manipular la base de datos: realizar consultas, actualizarla, generar informes.
Las características de
un Sistema Gestor de Base de Datos SGBD son:
• Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción.
• Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella.
• Redundancia mínima. Un buen diseño de una base de datos logrará evitar la aparición de información repetida o redundante. De entrada, lo ideal es lograr una redundancia nula; no obstante, en algunos casos la complejidad de los cálculos hace necesaria la aparición de redundancias.
• Consistencia. En aquellos casos en los que no se ha logrado esta redundancia nula, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea.
• Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra asegurada frente a usuarios malintencionados, que intenten leer información privilegiada; frente a ataques que deseen manipular o destruir la información; o simplemente ante las torpezas de algún usuario autorizado pero despistado. Normalmente, los SGBD disponen de un complejo sistema de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos.
• Integridad. Se trata de adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Es decir, se trata de proteger los datos ante fallos de hardware, datos introducidos por usuarios descuidados, o cualquier otra circunstancia capaz de corromper la información almacenada.
• Respaldo y recuperación. Los SGBD deben proporcionar una forma eficiente de realizar copias de respaldo de la información almacenada en ellos, y de restaurar a partir de estas copias los datos que se hayan podido perder.
• Control de la concurrencia. En la mayoría de entornos (excepto quizás el doméstico), lo más habitual es que sean muchas las personas que acceden a una base de datos, bien para recuperar información, bien para almacenarla. Y es también frecuente que dichos accesos se realicen de forma simultánea. Así pues, un SGBD debe controlar este acceso concurrente a la información, que podría derivar en inconsistencias.
Ø Componentes
Lenguajes SGBD
· Lenguaje de definición de datos- DDL: te permite llevar a cabo las tareas de
definición de las estructuras que almacenarán los datos, así como los métodos o
funciones que permitan consultarlos.
· Lenguaje de manipulación de datos-DML: te permite consultar o manipular los datos,
organizados por el modelo adecuado. El más popular es el SQL. Se clasifican en:
· Procedurales: se le da instrucciones al sistema para que elabore
unos procedimientos en la base de datos para calcular un resultado final.
· No Procedurales: se detalla la información sin un método específico
para obtener información.
· Lenguajes de cuarta generación: son lenguajes de programación diseñados con
el objetivo de desarrollar aplicaciones orientadas a las bases de datos.
· Lenguaje de control de datos: este
tipo de lenguaje incluye una serie de comandos SQL que permiten al
administrador controlar al acceso a los datos que tengan una base de datos.
Diccionario de datos
El diccionario de datos es el lugar donde se guarda
toda la información de todos los datos que forman la base de datos. Dentro de
él se encuentra la lista de todos los elementos que forman parte del flujo de
datos de todo el sistema.
En su contenido está las descripciones de todos los
demás objetos (archivos, programas) que existen en el sistema, almacena el
conjunto numeroso de esquemas y especifica cada archivo y su ubicación, también
incluye información acerca de qué programas utilizan qué datos, y a que
usuarios les interesa un informe u otro.
Está integrado dentro de la misma base de datos,
puede tolerar descripciones de los modelos conceptual, lógico, interno y
externo. Está guardado en un medio con acceso directo por si llegásemos a
perder información poder recuperarla con facilidad.
Seguridad
e Integridad
Los datos están protegidos por si personas que no
tienen acceso intentasen acceder, por caídas durante el procesamiento de
transacciones, anomalías por acceder varias personas al mismo tiempo, anomalías
producidas por distribuir los datos entre varios ordenadores.
El administrador
de la base de datos
Dentro de los sistemas de gestión de bases de datos
hay varias categorías de usuarios según el derecho o autorización que
tengan sobre los objetos que componen la base de datos:
· Usuarios de la categoría DBA: su función es administrar la base por lo tanto
tienen acceso total.
· Usuarios de la categoría RESOURCE: pueden crear sus propios objetos y pueden
hacer consultas.
· Usuario de la categoría CONNECT: solo pueden realizar consultas.
Tareas del
administrador de la BD
·
Instalar
el SGBD en el sistema informático.
·
Crear las
bases de datos que se vayan a tramitar.
·
Crear y
mantener el esquema de la BD.
·
Crear y
mantener las cuentas de usuario de la BD.
·
Arrancar
y parar el SGBD, y cargar las bases de datos necesarias para trabajar.
· Cooperar con
el administrador del sistema operativo, a la hora de ubicar, dimensionar y
controlar los archivos y espacios de disco ocupados por el SGBD.
·
Ayudar en
las tareas de formación de usuarios.
· Realizar
estándares de uso, políticas de acceso y reglas de trabajo para los usuarios de
la BD.
·
Proporcionar la
información que necesitan sobre la BD a los equipos de análisis y programación
de aplicaciones.
·
Además,
realizan tareas de explotación como:
·
Vigilar
el trabajo diario ayudando en la información y aclarando las dudas de los
usuarios de la BD.
·
Controlar
en tiempo real los accesos, tasas de uso, cargas en los servidores…
·
Si es
necesario, reorganizar la BD.
· Realizar
las copias de seguridad periódicas de la BD. Restaurar la BD si ocurriese algo
a partir de las copias de seguridad.
· Analizar
las auditorías del sistema por si hay alguna anomalía, intento de violación de
la seguridad.
·
Ajustar y
optimizar la BD mediante el ajuste de sus parámetros, y con ayuda de las
herramientas de monitorización y de las estadísticas del sistema.
§ Una vez definido las bases y
conceptos básicos de los sistemas gestores de bases de datos nos quedan por
definir y reconocer los modelos de datos más utilizados. Algunos se verán con
un poco más de detalles, pero la mayoría de ellos se dejarán para su estudio
aparte.
Ø Lenguajes de Modelación
Modelo jerárquico
En un
modelo jerárquico, los datos están organizados en una estructura arbórea
(dibujada como árbol invertido o raíz), lo que implica que cada registro sólo
tiene un padre. Las estructuras jerárquicas fueron usadas extensamente en los
primeros sistemas de gestión de datos de unidad central, como el Sistema IMS
por IBM, y ahora se usan para describir la estructura
de documentos XML. Esta estructura permite relaciones 1: N entre los datos, y
es muy eficiente para describir muchas relaciones del mundo real: tablas de
contenido, ordenamiento de párrafos y cualquier tipo de información anidada.
Sin
embargo, la estructura jerárquica es ineficiente para ciertas operaciones de
base de datos cuando el camino completo no se incluye en cada registro. Una
limitación del modelo jerárquico es su incapacidad para representar de manera
eficiente la redundancia en datos.
En la
relación Padre-hijo: El hijo sólo puede tener un padre, pero un padre puede
tener múltiples hijos. Los padres e hijos están unidos por enlaces. Todo nodo
tendrá una lista de enlaces a sus hijos.
Modelo de red
El
modelo de red expande la estructura jerárquica, permitiendo relaciones N:N en
una estructura tipo árbol que permite múltiples padres. Antes de la llegada del
modelo relacional, el modelo en red era el más popular para las bases de datos.
Este modelo de red (definido por la especificación CODASYL) organiza datos que
usan en dos construcciones básicas, registros y conjuntos. Los registros
contienen campos que puede estar organizados jerárquicamente, como en el
lenguaje COBOL. Los conjuntos definen relaciones N:N
entre registros: varios propietarios, varios miembros. Un registro puede ser un
propietario de varios conjuntos, y miembro en cualquier número de conjuntos.
El
modelo en red es una generalización del modelo jerárquico, en tanto está
construido sobre el concepto de múltiples ramas (estructuras de nivel inferior)
emanando de uno o varios nodos (estructuras de nivel alto), mientras el modelo
se diferencia del modelo jerárquico en que las ramas pueden estar unidas a
múltiples nodos. El modelo de red es capaz de representar la redundancia en
datos de una manera más eficiente que en el modelo jerárquico.
Las
operaciones del modelo de red se realizan por de navegación: un programa
mantiene la posición actual, y navega entre registros siguiendo las relaciones
entre ellos. Los registros también pueden ser localizados por valores claves.
Aunque
no es una característica esencial del modelo, las bases de datos en red
implementan sus relaciones mediante punteros directos al disco. Esto da una
velocidad de recuperación excelente, pero penaliza las operaciones de carga y
reorganización.
Entre
los SGBD más populares que tienen
arquitectura en red se encuentran Total e IDMS. IDMS logró una importante base
de usuarios; en 1980 adoptó el modelo relacional y SQL, manteniendo además sus
herramientas y lenguajes originales.
La
mayoría de bases de datos
orientadas a objetos (introducidas en 1990) usan el concepto
de navegación para proporcionar acceso rápido entre objetos en una red.
Objectivity/DB, por ejemplo, implementa 1:1, 1: N, N:1 y N:N entre distintas
bases de datos. Muchas bases de datos orientadas a objetos también soportan
SQL, combinando así la potencia de ambos modelos.
Modelo Relacional
El
modelo fue introducido por E.F. Codd en 1970 con el objetivo de
querer hacer los SGBD más independientes de las aplicaciones. Es un modelo
matemático definido en términos de lógica de predicados y teoría de conjuntos, y se
han implementado con él SGBD para mainframe, ordenadores medios y
microordenadores.
Los
productos referidos como base de datos relacional de
hecho implementan un modelo que es sólo una aproximación al modelo matemático
definido por Codd. Existen tres términos usados con profusión en el modelo
relacional de bases de datos: relaciones, atributos y dominios.
Una relación equivale a una tabla con filas y columnas. Las columnas de una
relación se llaman con rigor atributos, y el dominio es el conjunto de valores
que cada atributo puede tomar.
La estructura
básica de datos del modelo relacional es la relación (tabla), donde la
información acerca de una determinada entidad (p. ej. "empleado") se
almacena en tuplas (filas), cada una con un conjunto de atributos (columnas).
Las columnas de cada tabla enumeran los distintos atributos de la entidad (el
nombre del "empleado", dirección y número de teléfono, p. ej.), de
modo que cada tupla de la relación "empleado" representa un empleado
específico guardando los datos de ese empleado concreto.
Todas
las relaciones (es decir, tablas) en una base de datos relacional han de seguir
unas mínimas reglas:
1. El
orden de los atributos es irrelevante
2. No
puede haber tuplas repetidas
3. Cada
atributo sólo puede tener un valor.
Una
base de datos puede contener varias tablas, cada una similar al modelo plano.
Una de las fortalezas del modelo relacional es que un valor de atributo
coincidente en dos registros (filas) –en la misma o diferente tabla– implica
una relación entre esos dos registros.
Modelo orientado a objetos
Base de datos orientada
a objetos
En la
década de 1990, el paradigma de la orientación a objetos se aplicó a las bases
de datos creando un nuevo modelo llamado base de datos orientada a objetos.
Esto tuvo el fin de reducir la impedancia objeto-relacional, la sobrecarga de
convertir la información de su representación en la base de datos –como filas
en tablas– a su representación en el programa –típicamente como objeto–.
Incluso más, los tipos de datos usados en una aplicación pueden definirse
directamente en la base de datos, preservando así la base de datos la misma
integridad de datos. Las bases de datos orientadas a objetos también introducen
las ideas clave de la programación orientada a objetos –encapsulación y
polimorfismo– en el mundo de las bases de datos.
Se han
propuesto distintos modos de almacenar objetos en una base de datos. Algunos se
han aproximado desde la perspectiva de la programación, haciendo los objetos
manipulados por el programa persistentes. Esto típicamente requiere la adición
de algún tipo de lenguaje de interrogación, ya que lo lenguajes tradicionales
no tienen la posibilidad de encontrar objetos basados en su contenido. Otros se
han aproximado al problema desde la perspectiva de la base de datos, definiendo
un modelo orientado a objetos para la base de datos, y definiendo un lenguaje
de programación de dicha base de datos que permite tanto capacidades de
programación como de interrogación.
Las
bases de datos orientadas a objetos sufren falta de estandarización; aunque han
sido definidos estándares por en Object Database Management Group nunca han
sido implementados con generalidad suficiente como para permitir la interoperabilidad
entre productos. Sin embargo, las bases de datos orientadas a objetos han sido
empleadas eficazmente en distintas aplicaciones: generalmente en nichos
especializados como ingeniería o biología molecular, pero no de forma general
con soporte comercial. Sin embargo, algunas de las ideas que ha aportado han
sido recogidas por los fabricantes de bases de datos relacionales y se han
aplicado en extensiones al lenguaje SQL.
Ø Sistema Gestor de base de Datos
MySQL
MySQL es un sistema gestor de bases de
datos relacionales rápido, sólido y flexible. Es idóneo para la creación de
bases de datos con acceso desde páginas web dinámicas, así como para la
creación de cualquier otra solución que implique el almacenamiento de datos,
posibilitando realizar múltiples y rápidas consultas. Está desarrollado en C y
C++, facilitando su integración en otras aplicaciones desarrolladas también en
esos lenguajes.
Es un sistema cliente/servidor, por lo
que permite trabajar como servidor multiusuario y de subprocesamiento múltiple,
o sea, cada vez que se crea una conexión con el servidor, el programa servidor
establece un proceso para manejar la solicitud del cliente, controlando así el
acceso simultáneo de un gran número de usuarios a los datos y asegurando el
acceso a usuarios autorizados solamente. Es uno de los sistemas gestores de
bases de datos más utilizado en la actualidad, utilizado por grandes
corporaciones como Yahoo! Finance, Google, Motorola, entre otras.
Microsoft SQL Server
SQL Server es un sistema gestor de base
de datos relacionales producido por Microsoft. Es un sistema cliente/servidor
que funciona como una extensión natural del sistema operativo Windows. Entre
otras características proporciona integridad de datos, optimización de
consultas, control de concurrencia y backup y recuperación.
Es relativamente fácil de administrar a
través de la utilización de un entorno gráfico para casi todas las tareas de
sistema y administración de bases de datos. Utiliza servicios del sistema
operativo Windows para ofrecer nuevas capacidades o ampliar la base de datos,
tales como enviar y recibir mensajes y gestionar la seguridad de la conexión.
Es fácil de usar y proporciona funciones de almacenamiento de datos que sólo
estaban disponibles en Oracle y otros sistemas gestores de bases de datos más
caros.
PostgreSQL
PostgreSQL es un Sistema Gestor de
Bases de Datos Relacionales Orientadas a Objetos, derivado de Postgres,
desarrollado en la Universidad de California, en el Departamento de Ciencias de
la Computación de Berkeley. Es un gestor de bases de datos de código abierto,
brinda un control de concurrencia multi-versión (MVCC por sus siglas en inglés)
que permite trabajar con grandes volúmenes de datos; soporta gran parte de la
sintaxis SQL y cuenta con un extenso grupo de enlaces con lenguajes de
programación.
Posee características significativas
del motor de datos, entre las que se pueden incluir las subconsultas, los
valores por defecto, las restricciones a valores en los campos (constraints) y
los disparadores (triggers). Ofrece funcionalidades en línea con el estándar
SQL92, incluyendo claves primarias, identificadores entrecomillados, conversión
de tipos y entrada de enteros binarios y hexadecimales.
El código fuente se encuentra
disponible para todos sin costo alguno. Está disponible para 34 plataformas con
la última versión estable.Es totalmente compatible con ACID (acrónimo de
Atomicity, Consistency, Isolation and Durability; en español: Atomicidad,
Consistencia, Aislamiento y Durabilidad).
Posee una integridad referencial e
interfaces nativas para lenguajes como ODBC, JDBC, C, C++, PHP, PERL, TCL,
ECPG; PYTHON y RUBY. Funciona en todos los sistemas operativos Linux, UNIX
(AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), y Windows.
Debido a la liberación de la licencia, PostgreSQL se puede usar, modificar y distribuir de forma gratuita para cualquier fin, ya sea privado, comercial o académico.
Debido a la liberación de la licencia, PostgreSQL se puede usar, modificar y distribuir de forma gratuita para cualquier fin, ya sea privado, comercial o académico.
2. Resumen
Los principales objetivos de un sistema gestor de bases de datos son:
Independencia lógica y física de los datos: se refiere a la capacidad de modificar una definición de esquema en un nivel de la arquitectura sin que esta modificación afecte al nivel inmediatamente superior.
Redundancia mínima: se trata de usar la base de datos como repositorio común de datos para distintas aplicaciones.
Acceso concurrente por parte de múltiples usuarios: control de concurrencia mediante técnicas de bloqueo o cerrado de datos accedidos.
Una base de datos típica conlleva la existencia de tres tipos de usuario con relación a su diseño, desarrollo y uso:
El administrador de bases de datos (DBA: Database Administrator): diseña y mantiene la DB.
El desarrollador de aplicaciones (programador): implementa las transacciones e interfaces.
Componentes
Ø Modelo jerárquico
Ø Modelo de red
Ø Modelo
Relacional
Ø
Modelo orientado a objetos
3. Summary
The main objectives of a database management system are:
Logical and physical independence of data: refers to the ability to
modify a schema definition at one level of the architecture without this
modification affecting the next higher level.
Minimal redundancy: it is a question of using the database as a common
data repository for different applications.
Concurrent access by multiple users: concurrency control by means of
locking techniques or closed access data.
A typical database entails the existence of three types of users in
relation to their design, development and use:
The database administrator (DBA: Database Administrator): designs and
maintains the DB.
The application developer (programmer): implements the transactions and
interfaces.
Components
Ø Hierarchical model
Ø Network model
Ø Relational Model
Ø
Object-oriented model
4. Recomendaciones
Ø Por muy bien que realices el planteamiento inicial
de la base de datos, con el paso del tiempo, seguramente tengas tablas en
desuso. ¡Eliminalas! Tener tablas en desuso es muy parecido a guardar cosas que no usas en un
cajón.
Ø Optimiza los índices. Tener una buena relación de índices entre
tablas es básico para las búsquedas relacionales funcionen correctamente.
Agrega índices a las tablas y, sobre ellas, utiliza las sentencias de consulta
(SELECT, WHERE…).
Ø También resulta recomendable acostumbrarse a
verificar periódicamente el registro de consultas (o “queries”) lentas
para identificar aquellas que deben ser optimizadas.
Ø No mantengas consultas abiertas en tu código
y realiza las querys justas. Así,evitamos saturar la memoria de la máquina.
Ø En general, no almacenes imágenes en la base de
datos. Sólo referencias a la
ruta en la que se encuentran y metadatos para identificarlas.
Ø No uses nombres complejos en las claves y campos de
las tablas. ¡Simplifica! Por ejemplo, en
la tabla Clientes, es mejor utilizar nombre en vez de nombre_cliente.
5. Conclusiones
Pese a la aparición de los métodos de bases de datos
distribuidas ya hace años, parece que el salto de lo centralizado a lo
distribuido a escala comercial está por venir. Todavía no se ha extendido
suficientemente el esquema distribuido, pero se espera que próximamente se
produzca el avance definitivo. Considero los dos componentes básicos de los
sistemas de bases de datos distribuidos y pienso en la situación actual de la
informática.
SQL significó un gran avance para este fin, almacenar y
clasificar información, además de que, gracias a su aparición, hoy en día
existe una gran variedad de SGBD basados en el lenguaje SQL, como MySQL,
PostgreSQL, Oracle, entre otros. Desde su estandarización, casi todos los
programas que trabajan con bases de datos, utilizan este lenguaje, con
diferentes variaciones y funciones, según el tipo de software y su objetivo.
6. Apreciación del Equipo
Ø En la BD, siempre es necesario el SGBD para que ayuden a administrar
las BD y a almacenar, manipular y recuperar datos en las computadoras.
Ø El SGBD ayuda a facilitar la comunicación entre el usuario
y la base de datos. Esto se logra porque el SGBD proporciona al usuario, los
medios necesarios para poder obtener información, introducir nuevos datos y
actualizar los ya existentes.
Ø Permiten el almacenamiento, modificación y
extracción de la información en una base de datos, además de
proporcionar herramientas para añadir, borrar, modificar y analizar los datos.
7. Glosario de Términos
Transacciones: Una transacción es
una interacción con una estructura de datos compleja, compuesta por varios
procesos que se han de aplicar uno después del otro.
Redundancia de datos: la redundancia hace
referencia al almacenamiento de los mismos datos varias veces en diferentes lugares
Inconsistencia de datos: La inconsistencia consiste en que no
todas las copias redundantes contienen la misma información.
Estructura arbórea: estructura
(dibujada
como árbol invertido o raíz).
Restaurar Sistema: es una herramienta implementada en Windows que permite
devolver al ordenador a un estado anterior. Recopila los archivos para quitarse
y el estado que estaba el sistema y luego se ve un cargador que va devolviendo
al equipo su estado anterior.
Concurrencia de procesos: Dos o más procesos decimos que son concurrentes, paralelos, o que se
ejecutan concurrentemente, cuando son procesados al mismo tiempo, es decir, que
para ejecutar uno de ellos, no hace falta que se haya ejecutado otro.
Lenguaje COBOL: Lenguaje de programación universal que
pudiera ser usado en cualquier ordenador, y que estuviera orientado
principalmente a los negocios.
Mainframe: Un Mainframe es
un ordenador de grandes dimensiones pensado principalmente para el tratamiento
de grandísimos volúmenes de datos.
Backup: Se refiere a la copia y archivo de datos de la computadora de
modo que se puede utilizar para restaurar la información original después de
una eventual pérdida de datos.
8. Linkografías
Aqui les dejo el Link de las Diapositivas del tema