Translate

jueves, 28 de agosto de 2014

Actividad 4: Glosario de términos y cuadro comparativo



Glosario de términos

Bases de datos relacionales:Los sistemas relacionales ofrecen muchos tipos de procesos de datos, como: simplicidad y generalidad, facilidad de uso para el usuario final, períodos cortos de aprendizaje y las consultas de información se especifican de forma sencilla. Las bases de datos relacionales están constituidas por una o más tablas que contienen la información ordenada de una forma organizada.
Las tablas son un medio de representar la información de una forma más compacta y es posible acceder a la información contenida en dos o más tablas. Cumplen las siguientes leyes básicas:

Bases de datos distribuidas: Una Base de Datos Distribuida (BDD) es una colección de datos distribuidos en diferentes nodos de una red de computadoras. Cada sitio de la red es autónomo, puede ejecutar aplicaciones locales y al menos una aplicación global, lo cual requiere el acceso a datos, ubicados en varios sitios, usando un subsistema de comunicación. Los Sistemas de Bases de Datos Distribuidas representan más naturalmente la estructura geográficamente descentralizada de una organización, aumentan la disponibilidad de los datos, reducen el tráfico de comunicación y es justificable, además, por el abaratamiento de los costos en el equipamiento y la infraestructura de comunicaciones de las redes de computadoras.
Metadatos: Los metadatos son simplemente datos sobre datos, es decir, información estructurada que describe a otra información y que nos permite encontrarla, gestionarla, controlarla, entenderla y preservarla en el tiempo. Los metadatos en el contexto de la Web, son datos que se pueden guardar, intercambiar y procesar por medio del ordenador y que están estructurados de tal forma que permiten ayudar a la identificación, descripción clasificación y localización del contenido de un documento o recurso web y que, por tanto, también sirven para su recuperación.

Lenguaje de Definición de Datos o DDL: El DDL (Data Definition Language, o Data Description Language según autores), es la parte del SQL dedicada a la definición de la base de datos, consta de sentencias para definir la estructura de la base de datos, permite definir gran parte del nivel interno de la base de datos. Por este motivo estas sentencias serán utilizadas normalmente por el administrador de la base de datos.


Lenguaje de Manipulación de Datos o DML: Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en inglés) es un  lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios  llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el  modelo de datos adecuado. El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional.

Lenguaje de consulta de datos o DQL: Es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en estas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar información de interés de una base de datos, así como también hacer cambios sobre ella. Nos sirve para recuperar datos de las tablas que están en una Base de Datos. El lenguaje de consulta de datos (DQL por sus siglas en inglés) es la parte de SQL que se encarga de consultar los datos en una base de datos. Está compuesto por la cláusula SELECT.
SELECT: Es el comando más utilizado. Al utilizarlo, se pueden obtener los datos completos de la tabla, uno o varios registros en específico o, incluso, sólo alguno de los campos de algún registro en particular.

Lenguaje de transacciones (DTL): Una transacción en un Sistema de Gestión de Bases de Datos (SGBD), es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica.
Un SGBD se dice transaccional, si es capaz de mantener la integridad de los datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio. Cuando por alguna causa el sistema debe cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si la orden de la transacción nunca se hubiese realizado. Una transacción debe contar con ACID (un acrónimo inglés) que quiere decir: Atomicidad, Consistencia, Durabilidad y Aislamiento. Entonces para que un Sistema de Gestión de Bases de Datos sea considerado Transaccional, debe cumplir con estos criterios (ACID)

Lenguaje de control de datos o DCL:
El lenguaje de control de datos (DCL por sus siglas en inglés) es la parte de SQL que se encarga de controlar la seguridad y los permisos de la base de datos. Las directivas de DCL de SQL son más parte de cada uno de los SGBD y tienen una gran cantidad de variaciones. Sus principales características para la protección de los datos son:
  • ·         Manipulación de los mismos sin autorización
  • ·         Prevención de errores
  • ·         Prevención de daños

Maneja básicamente tres niveles de seguridad para los usuarios de una base de datos:
  • ·         DB Administrator
  • ·         Dueño (owner)
  • ·         Público (Public)

Cuadro comparativo de los siguiente SGBD Mysql, Oracle, Postgress, SQL Server:




MYSQL
ORACLE
POSTGRESS
SQL SERVER
Es un sistema de administración de bases de datos para bases de datos relacionales.
Sistema de base de datos relacional, se considera como el más completo.
Es un sistema de base de datos relacional orientada a objetos que está publicado bajo una licencia BSD.
Es un conjunto de objetos eficientemente almacenados. Los objetos donde se almacena la información se denominan tablas, y éstas a su vez están compuestas de filas y columnas
Fue escrito en C y C++ y destaca por su gran adaptación a diferentes entornos de desarrollo, permitiendo su interactuación con los lenguajes de programación más utilizados en distintos sistemas operativos.
El software del servidor puede ejecutarse en multitud de sistemas operativos.
Es un proyecto de código libre debido a estas características sus mejoras han sido un poco más rápidas en comparación con otros sistemas de BD
Los procesos se ejecutan dentro del sistema operativo y entienden únicamente de conexiones y de sentencias SQL.
Actualmente, el soporte para disparadores es básico, por lo tanto hay ciertas limitaciones en lo que puede hacerse con ellos.
Oracle es la base de datos con más orientación hacía internet.
Es un sistema de base de datos relacional orientada a objetos que está publicado bajo una licencia BSD.
El atractivo principal: lo barato del sistema, y la tendencia de los directivos a aceptar preferentemente productos de Microsoft.
MySQL es Open Source: Significa que es posible para cualquiera usar y modificar el software.
Otro problema es la necesidad de ajustes. Un error frecuente consiste en pensar que basta instalar el Oracle en un servidor y enchufar directamente las aplicaciones clientes
Soporta replicación de bases de datos asíncrona, realizando primero las transacciones en un “servidor maestro” para que se puedan actualizar en los “servidores esclavos” dando alta disponibilidad al sistema.
La principal desventaja de Microsoft SQL SERVER es la enorme cantidad de memoria RAM que utiliza para la instalación y utilización del software.
El servidor de bases de datos relacionales MySQL es muy rápido, fiable y fácil de usar
Es una potente herramienta cliente/servidor para la gestión de Bases de Datos.
Es un proyecto de código libre debido a estas características sus mejoras han sido un poco más rápidas en comparación con otros sistemas de BD.
Los procesos se ejecutan dentro del sistema operativo y entienden únicamente de conexiones y de sentencias SQL
MySQL posee un buen control de acceso de usuarios y seguridad en los datos.
El coste de la formación, y sólo últimamente han comenzado a aparecer buenos libros sobre asuntos técnicos distintos de la simple instalación y administración.
Posee un buen sistema de seguridad mediante la gestión de usuarios, grupos de usuarios, permisos y contraseñas. También gran capacidad de almacenamiento
SQL Server incluye herramientas para la administración de los recursos que el ordenador• nos proporciona y los gestiona para un mejor rendimiento de la base de datos.
Cuando MySQL maneja la integridad referencial, con tablas “NO’’ transaccionales de tipo MyISAM, aunque admite la declaración de claves ajenas o foráneas en la creación tablas, internamente no las trata de forma diferente al resto de campos
Oracle soporta todas las funciones que se esperan de un servidor serio: un lenguaje de diseño de bases de datos muy completo (PL/SQL) que permite implementar diseños activos, con triggers y procedimientos almacenados, con una integridad referencial declarativa bastante potente.
Es un magnífico gestor de bases de datos, capaz de competir con muchos gestores comerciales, aunque el primer encuentro con este es duro, ya que la sintaxis de algunos de sus comandos o sentencias no es nada intuitiva, sin embargo existe una amplia documentación en su sitio web o en la ayuda de PostgreSQL (aplicación psql y documentación de PostgreSQL).
En el centro de SQL Server está el motor de SQL Server, el cual procesa los comandos de la base de datos. SQL Server es la interfaz de acceso OLE DB y ADO. Aunque se trata de una interfaz universal, SQL Server es una de las primeras bases de datos en soportarla. Mejor utilización de la CPU. Menor necesidad de limpieza de las memorias intermedias durante el procesamiento de las transacciones.

lunes, 25 de agosto de 2014

Tema 3 : Estructura general del sistema gestor de bases de datos

Tema 3 : Estructura general del sistema gestor de bases de datos

Un SGBD se divide en módulos que se encargan de tareas específicas. Normalmente el S.O. proporciona una serie de funciones básicas que son utilizadas por el SGBD, para realizar otras tareas más complejas. Los componentes más importantes del SGBD son:
Gestor de ficheros (File Manager o File System).


Encargado de asignar espacio en disco y mantener la estructura de los ficheros donde se almacenarán los datos. Además es el responsable de localizar el bloque de información que se requiere solicitándoselo al Gestor de discos del S.O. y proporcionándoselo al Gestor de Datos. Puede implementarse simplemente como un interfaz al Gestor de Ficheros del Sistema Operativo o el SGBD puede tener uno propio.
Gestor de datos (Data Manager).

Es el principal componente del SGBD. Entre sus funciones podemos citar:
  • Acceso a los datos interactuando con el gestor de ficheros propio o del S.O.
  • Asegura que se cumplen los requisitos para mantener la integridad y consistencia de los datos, además de controlar la seguridad.
  • Sincroniza las operaciones de los usuarios que están accediendo concurrentemente a la BD.
  • Interviene también en operaciones de respaldos y recuperaciones.

Procesador de consultas (Query Processor).

Interpreta las consultas (queries) de los usuarios online y los convierte en una serie de operaciones que serán enviadas al Gestor de Datos para su ejecución. Entre sus funciones están el optimizar estas operaciones haciendo uso de la información del diccionario de datos y encontrar una estrategia eficiente para su ejecución (plan de ejecución).

Compilador de LDD (DDL, Data Definition Languaje).

Convierte las sentencias de definición de esquemas en tablas y la información sobre las mismas se almacena en el DDL.

Precompilador de LMD (DML, Data Manipulation Languaje).


Convierte las sentencias en LMD dentro de un programa de aplicación a llamadas a procedimientos en el lenguaje huésped. El precompilador debe interactuar con el procesador de consultas para generar el código apropiado.

Aunque no forma parte del SGBD es interesante nombrar al software que permite la comunicación entre los usuarios online de un sistema y el SGBD, ya que el SGBD interactúa estrechamente con él. Este software, llamado sistema de telecomunicaciones o programa de control de comunicaciones hace de intermediario trasmitiendo los mensajes desde el usuario al SBD y las respuestas. Ejemplos de estos programas son CICS, IDMS-DC, TALKMASTER, etc.

Además, se requieren una serie de estructuras de datos para que los módulos del SGBD puedan realizar correctamente sus funciones:
Ficheros de datos, donde se guardan los datos de la BD.

Diccionario de datos o catálogo del sistema, donde se guarda la información relativa a la estructura de la BD. Es una base de datos que sirve para documentar los datos. Se usa constantemente, por lo que su diseño e implementación deben ser adecuados para obtener el mejor rendimiento posible. Además de la información mencionada suele contener información de audit y estadísticas que ayudan a optimizar el acceso a los datos., que permiten el acceso rápido a elementos de información con determinados valores.


En la figura se muestran los pasos (simplificados) para acceder a los datos. El interfaz de usuario está representando al procesador de consultas (usuarios online complejos), al programa de aplicación compilado o a sentencias del LDD compiladas (ADB).  

En la Figura 1.3.- se puede observar un esquema general de la arquitectura de una base de datos, en la cual se detallan los principales componentes de ella además de las relaciones entre ellos y la base de datos lógica. Recordemos el significado de estos elementos:
  • Una Vista Externa es una visión particular de un usuario o un grupo de usuarios de la Base de Datos. El Esquema Externo representa una forma de definición o formalización de esta vista externa.
  • La Vista Conceptual pretende ser la representación total y abstracta de los datos que componen la Base; la formalización de esta se logra mediante el Esquema Conceptual.
  • La Vista Interna es de un nivel muy bajo y corresponde al almacenamiento físico de los datos de la Base, sobre un Esquema Interno que es la formalización de esto, es decir, tipos de registros almacenados, índices, etc.
  • Las correspondencias se pueden definir como una asociaciónde distintas representaciones para un mismo dato.
  • El Administrador de Bases de Datos (DBA) corresponde a la persona o grupo de personas encargada del control general del sistema.


Un DSL es un de datos, es una combinación de dos lenguajes: un lenguaje de definición de datos (DDL) y un lenguaje de manipulación de Datos (DML). Este lenguaje representa un nexo entre el Sistema de Base de Datos y algún lenguaje anfitrión (p.e. COBOL, FORTRAN, C, etc.); e.d., el DSL provee herramientas a los lenguajes tradicionales para que se integren al Sistema de Base de Datos. Puede haber distintos tipos de DSL para un mismo sistema.

DBMS es la sigla en inglés de Sistema Gestor de Bases de Datos, que corresponde al Software que maneja todos los accesos a la Base de Datos, es decir, cada solicitud de acceso de un usuario al SGBD es interpretada e inspeccionadas las correspondencias, generando, a continuación, una respuesta coherente a las necesidades de la pregunta.

La interfaz con el Usuario es el límite de acceso que tiene un Usuario común a la Base, todo lo que está bajo este límite es transparente (desconocido) para él   Los SGBD son paquetes de software muy complejos y sofisticados que deben proporcionar los servicios comentados en la sección anterior. No se puede generalizar sobre los elementos que componen un SGBD ya que varían mucho unos de otros. Sin embargo, es muy útil conocer sus componentes y cómo se relacionan cuando se trata de comprender lo que es un sistema de bases de datos.

Un SGBD tiene varios módulos, cada uno de los cuales realiza una función específica. El sistema operativo proporciona servicios básicos al SGBD, que es construido sobre él.


El procesador de consultas es el componente principal de un SGBD. Transforma las consultas en un conjunto de instrucciones de bajo nivel que se dirigen al gestor de la base de datos.


  • El gestor de la base de datos es el interface con los programas de aplicación y las consultas de los usuarios. El gestor de la base de datos acepta consultas y examina los esquemas externo y conceptual para determinar qué registros se requieren para satisfacer la petición. Entonces el gestor de la base de datos realiza una llamada al gestor de ficheros para ejecutar la petición.

  • El gestor de ficheros maneja los ficheros en disco en donde se almacena la base de datos. Este gestor establece y mantiene la lista de estructuras e índices definidos en el esquema interno. Si se utilizan ficheros dispersos, llama a la función de dispersión para generar la dirección de los registros. Pero el gestor de ficheros no realiza directamente la entrada y salida de datos. Lo que hace es pasar la petición a los métodos de acceso del sistema operativo que se encargan de leer o escribir los datos en el buffer del sistema.

  • El preprocesador del LMD convierte las sentencias del LMD embebidas en los programas de aplicación, en llamadas a funciones estándar escritas en el lenguaje anfitrión. El preprocesador del LMD debe trabajar con el procesador de consultas para generar el código apropiado.

  • El compilador del LDD convierte las sentencias del LDD en un conjunto de tablas que contienen metadatos. Estas tablas se almacenan en el diccionario de datos.

  • El gestor del diccionario controla los accesos al diccionario de datos y se encarga de mantenerlo. La mayoría de los componentes del SGBD acceden al diccionario de datos.


Los principales componentes del gestor de la base de datos son los siguientes:


  • Control de autorización. Este módulo comprueba que el usuario tiene los permisos necesarios para llevar a cabo la operación que solicita.

  • Procesador de comandos. Una vez que el sistema ha comprobado los permisos del usuario, se pasa el control al procesador de comandos.

  • Control de la integridad. Cuando una operación cambia los datos de la base de datos, este módulo debe comprobar que la operación a realizar satisface todas las restricciones de integridad necesarias.

  • Optimizador de consultas. Este módulo determina la estrategia óptima para la ejecución de las consultas.

  • Gestor de transacciones. Este módulo realiza el procesamiento de las transacciones.

  • Planificador (scheduler). Este módulo es el responsable de asegurar que las operaciones que se realizan concurrentemente sobre la base de datos tienen lugar sin conflictos.

  • Gestor de recuperación. Este módulo garantiza que la base de datos permanece en un estado consistente en caso de que se produzca algún fallo.

  • Gestor de buffers. Este módulo es el responsable de transferir los datos entre memoria principal y los dispositivos de almacenamiento secundario. A este módulo también se le denomina gestor de datos.