viernes, 9 de octubre de 2015

2.3 lenguaje de manipulacion de datos


Lenguaje de Manipulación de Datos (Data Manipulation Language, DML) es un lenguaje proporcionado por los sistemas gestores de bases de datos que permite a los usuarios de la misma llevar a cabo las tareas de consulta o modificación de los datos contenidos en las Bases de Datos del Sistema Gestor de Bases de Datos. 
El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales permitiendo gran variedad de operaciones sobre los mismos. Es un lenguaje declarativo de alto nivel o de no procedimiento, que gracias a su fuerte base teórica y su orientación al manejo de conjuntos de registros, y no a registros individuales, permite una alta productividad en codificación. De esta forma una sola sentencia puede equivaler a uno o mas programas que utilizasen un lenguaje de bajo nivel orientado a registro.

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. Otros ejemplos de DML son los usados por bases de datos IMS/DL1, CODASYL u otras.

Elementos del lenguaje de manipulación de datos.
  • select:

La sintaxis básica de select es la siguiente utilizando el estándar de SQL:
 select columna from tabla;
donde se sustituye la palabra columna por el nombre del campo a consultar y la palabra tabla por el nombre de la tabla que contiene el campo mencionado.
  • insert:

La estructura básica para la sentencia insert utilizando el estándar de SQL es la siguiente:
 insert into usuario (nombre, apellidos, edad, carrera) values ("Martín", "Bastida Godínez", "23", "Ingeniería en TI");
Tomando como ejemplo si se tuviera una tabla llamada usuarios con los campos de tipo cadena de caracteres (nombre, apellidos, edad, carrera), donde se inserta los valores que se encuentran en después de la palabra values, los valores se insertan en el orden correspondiente a como se hizo la llamada de los campos, los valores van separados por comas, las comillas dobles indican que se esta insertando datos de tipo cadena de caracteres.
  • Delete:

Para eliminar los registros de una tabla usamos el comando "delete":
delete from usuarios;
La ejecución del comando indicado en la línea anterior borra TODOS los registros de la tabla.
Si queremos eliminar uno o varios registros debemos indicar cuál o cuáles, para ello utilizamos el comando "delete" junto con la clausula "where" con la cual establecemos la condición que deben cumplir los registros a borrar. Por ejemplo, queremos eliminar aquel registro cuyo nombre de usuario es 'Martín':
delete from usuarios where nombre='Martín';
Si solicitamos el borrado de un registro que no existe, es decir, ningún registro cumple con la condición especificada, no se borrarán registros, pues no encontró registros con ese dato.
  • Update:

Para modificar uno o varios datos de uno o varios registros utilizamos "update" (actualizar).
Por ejemplo, en nuestra tabla "usuarios", queremos cambiar los valores de todas las claves, por "RealMadrid":
update usuarios set clave='RealMadrid';
Utilizamos "update" junto al nombre de la tabla y "set" junto con el campo a modificar y su nuevo valor.
El cambio afectará a todos los registros.
Podemos modificar algunos registros, para ello debemos establecer condiciones de selección con "where".
Por ejemplo, queremos cambiar el valor correspondiente a la clave de nuestro usuario llamado 'Martín', queremos como nueva clave 'Boca', necesitamos una condición "where" que afecte solamente a este registro:
update usuarios set clave='Boca'
 where nombre='Martín';
Si no encuentra registros que cumplan con la condición del "where", ningún registro es afectado.
Las condiciones no son obligatorias, pero si omitimos la cláusula "where", la actualización afectará a todos los registros.
También se puede actualizar varios campos en una sola instrucción:
update usuario set nombre='MarceloDuarte', clave='Marce'
 where nombre='Marcelo';
Para ello colocamos "update", el nombre de la tabla, "set" junto al nombre del campo y el nuevo valor y separado por coma, el otro nombre del campo con su nuevo valor.

Clasificación de los DML.
Se clasifican en dos grandes grupos de:
Lenguajes procedimentales. En este tipo de lenguaje el usuario da instrucciones al sistema para que realice una serie de procedimientos u operaciones en la base de datos para calcular un resultado final.
En los lenguajes no procedimentales el usuario describe la información deseada sin un procedimiento específico para obtener esa información.

2.2 lenguaje definido de datos


Es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de definición de las estructuras que almacenarán los datos así como de los procedimientos o funciones que permitan consultarlos.


En la práctica puede consistir en un subconjunto de instrucciones de otro lenguaje informático. Aparte suele poseer dos subconjuntos de instrucciones:
  •   Lenguaje de definición del almacenamiento de los datos (DSDL: Data Storage Definition Language): permite especificar características físicas de la base de datos (volúmenes y archivos donde van a ser almacenados los datos, etc).
  •   Lenguaje de control de datos (DCL: Data Control Language): encargado del control y seguridad de los datos (privilegios y modos de acceso, etc).

  Lenguaje de manipulación de datos (DML: Data Manipulation Language): Lenguaje artificial de cierta complejidad que permite el manejo y procesamiento del contenido de la base de datos. En la práctica puede consistir en un subconjunto de instrucciones de otro lenguaje informático. Las aplicaciones que trabajan sobre la base de datos se programan en un lenguaje de programación (C, Cobol, ...) insertando en el código fuente sentencias del DML. Al utilizar un DML se deben especificar los datos que serán afectados por las sentencias del lenguaje. Un DML puede tener o no procedimientos, según sea necesario especificar ademáns cónmo deben obtenerse esos datos. Los DML con procedimientos tienen sentencias de control de flujo como bucles o condicionales. Los DML sin procedimientos son conocidos también como declarativos.
Lenguaje de definicon de datos(DDL Data Definition Language), es un lenguaje de programación para definir estructuras de datos . El término DDL fue introducido por primera vez en relación con el modelo de base de datos CODASYL, donde el esquema de la base de datos ha sido escrito en un lenguaje de descripción de datos que describe los registros, los campos, y "conjuntos" que conforman el usuario modelo de datos.

Las sentencias SQL se dividen en dos categorías; Lenguaje de definición de datos; data definition language (DDL) yLenguaje de manipulación de datos ;data manipulation language (DML).


Lenguaje de manipulación de datos (DML)

Las sentencias de lenguaje de manipulación de datos (DML) son utilizadas para gestionar datos dentro de los schemas. Algunos ejemplos:
  • SELECT - para obtener datos de una base de datos.
  • INSERT - para insertar datos a una tabla.
  • UPDATE - para modificar datos existentes dentro de una tabla.
  • DELETE - elimina todos los registros de la tabla; no borra los espacios asignados a los registros.

Lenguaje de definición de datos (DDL)

Las sentencias DDL se utilizan para crear y modificar la estructura de las tablas así como otros objetos de la base de datos.
  • CREATE - para crear objetos en la base de datos.
  • ALTER - modifica la estructura de la base de datos.
  • DROP - borra objetos de la base de datos.
  • TRUNCATE - elimina todos los registros de la tabla, incluyendo todos los espacios asignados a los registros.


2.1 Software de SGBD


Un Sistema Gestor de Base de Datos son aquellos conjuntos de programas que permiten el almacenamiento, modificación y extracción de información. Ademas nos proporcionan herramientas especificas de fácil uso para los usuarios en donde les permite acceder a la información, generando informes detallados y aplicaciones confiables.
Para su almacenamiento se cuenta con sistemas de disco propio o un almacenamiento con conexión directa (DAS), puede conectarse a una red de almacenamiento (SAN) o conectarse a un sistema de almacenamiento en red (NAS).
Existen aceleradores hardwer  usados en grandes sistema de proceso de transacciones. Los SGBD se encuentran en el corazón de toda aplicación que maneje datos. Los SGBD se basan en sistemas operativos estándar para efectuar dichas funciones.
Las bases de datos han estado en uso desde los primeros días de las computadoras electrónicas. A diferencia de los sistemas modernos, que se pueden aplicar a datos y necesidades muy diferentes, la mayor parte de los sistemas originales estaban enfocados a bases de datos específicas y pensados para ganar velocidad a costa de perder flexibilidad. Los SGBD originales sólo estaban a disposición de las grandes organizaciones que podían disponer de las complejas computadoras necesarias.

Los principales Software en un SGBD son:
  • Oracle:

Oracle Database es un sistema de gestión de base de datos de tipo objeto-relacional (ORDBMS, por el acrónimo en inglés de Object-Relational Data Base Management System), desarrollado por Oracle Corporation.
Surge en 1977 bajo el nombre de SDL (Software Development Laboratories).

En 1979, SDL cambia su nombre por Relational Software, Inc. (RSI).
Se considera a Oracle Database como uno de los sistemas de bases de datos más completos, destacando: soporte de transacciones, estabilidad, escalabilidad, y soporte multiplataforma.
Su dominio en el mercado de servidores empresariales había sido casi total hasta que recientemente tiene la competencia del Microsoft SQL Server y de la oferta de otros RDBMS con licencia libre como PostgreSQL, MySQL oFirebird.
Las últimas versiones de Oracle han sido certificadas para poder trabajar bajo GNU/Linux.



  • MySQL.

MySQL es un sistema de gestión de bases de datos relacionalmultihilo y multiusuario con más de seis millones de instalaciones.

MySQL AB —surge, desde enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde abril de 2009— desarrolla MySQL como software libre en un esquema de licenciamiento dual.
Existen varias interfaces de programación de aplicaciones que permiten, a aplicaciones escritas en diversos lenguajes de programación, acceder a las bases de datos MySQL, incluyendo CC++C#PascalDelphi (vía dbExpress), EiffelSmalltalkJava (con una implementación nativa del driver de Java).
NySQL es muy utilizado en aplicaciones web, como Joomla, Wordpress, Drupal o phpBB, en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL.
MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. 


  • Postgresql:

PostgreSQL es un Sistema de gestión de bases de datos relacional orientado a objetos y libre, publicado bajo lalicencia PosgreSQL , similar a la BSD o la MIT.
Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado por una empresa y/o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre y/o apoyados por organizaciones comerciales. Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).
Mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus siglas en inglés) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de lo último a lo que se le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases, eliminando la necesidad del uso de bloqueos explícitos.

PostgreSQL provee nativamente soporte para:
  • Números de precisión arbitraria.
  • Texto de largo ilimitado.
  • Figuras geométricas (con una variedad de funciones asociadas).
  • Direcciones IP (IPv4 e IPv6).
  • Bloques de direcciones estilo CIDR.
  • Direcciones MAC.
  • Arrays.
Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que pueden ser por completo indexables gracias a la infraestructura GiST de PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el proyecto PostGIS.


  • visual Fox Pro
Visual FoxPro es un lenguaje de programación procedural, orientado a objetos que posee un Sistema Gestor de Bases de datos o Database Management System (DBMS) y Sistema administrador de bases de datos relacionales, producido por Microsoft.

Visual FoxPro provee a los desarrolladores un conjunto de herramientas para crear aplicaciones de bases de datos para el escritorio, entornos cliente/servidor, tablet PC o para la Web.
Entre sus características se pueden enumerar:
  • Capacidades para el manejo de datos nativos y remotos.
  • Flexibilidad para crear soluciones de bases de datos.
  • Lenguaje de Programación Orientado a objetos.
  • Utilización de Sentencias SQL en forma nativa.
  • Manejo de vistas, cursores y control completo de estructuras relacionales.
  • Su propio gestor de base de datos incorporado. Sin embargo, también puede conectarse con servidores de base de datos, tales como Oracle, Microsoft SQL Server o MySQL.
  • Cuenta con un motor de generación de informes renovado y flexible para soluciones más robustas.
  • Desde la versión 9.0, amplio soporte de XML, tanto como fuente de datos (por ej., servicios Web basados en XML) como por generar reportes en formato XML.
La última versión liberada es la 9.0. Esta cuenta con el SP1 y el (más reciente) SP2 (en inglés) en los que hay algunas nuevas características y especialmente brindan estabilidad al producto.
En la actualidad, a pesar de que Microsoft ha decidido no continuar con Microsoft Visual FoxPro, existe una comunidad de desarrolladores que sigue trabajando en él, PortalFox y Mundo Visual FoxPro son las más importantes entre los desarrolladores de habla hispana.

sábado, 12 de septiembre de 2015

Analisis del objetivos de una base de datos



Una base de datos, nos permite almacena diferente información, obteniendo herramientas útiles para organizarlos y tener una mejor distribución de información.
       
Cuando hablamos de duplicación de información se le puede llamar redundancia de datos,
ya que esta redundancia nos da como resultado un almacenamiento de datos excesivos, su origen radica en la variación de archivos y programas con igual información, pero con diferentes formatos o lenguajes de programación.
 
Se deben desarrollar sistemas, para evitar que haya un dificultad en acceso de datos, para ello es necesario buscar tener información en formas practicas y eficientes, buscando evitar redundancias, en los contenidos.
 
Otro aspecto importante que se debe tomar en cuenta es evitar que se aíslen los datos,  esto es algo que pasa de manera muy común ya que en internet existe información duplicada debido a datos iguales, pero en diferentes formatos, esto tiene como consecuencia, la no recuperación de datos propios, ya que se llega un punto en el no es fácil identificar que datos son los originales.
 
Para evitar este tipo de problemas es necesario agregar en cada información un código propio para tener una integridad acerca de nuestros datos.
 
Es fastidioso el estar capturando datos y que en cualquier momento haya un fallo en el sistema a esto le podemos llamar atomicidad, que no es otra cosa mas que asegurarnos que durante el fallo de cualquier sistema nuestros datos ya capturados no se pierda, durante y después de los fallos.
 
De la mano con la atomicidad también podríamos tener en cuenta las anomalías que existen en el acceso de datos, lo mas apropiado seria tener  una búsqueda rápida y sin saturaciones, en los sistemas, para así obtener una captura eficiente.
 
Por ultimo un aspecto de gran relevancia es la seguridad en el control de accesos, ya que la privacidad y originalidad, tienen relación para poder evitar problemas de robo de datos.
 
Estos son los objetivos que debe tener una base de datos eficiente, para poder tener un mal funcionamiento de información y con ellos tener ser auténticos al momento de accesar a nuestros datos.
                                              




sábado, 5 de septiembre de 2015

Línea del tiempo sobre los SGBD libres y propietarios

Areas de utilizacióne los Sistemas Gestores de Base de Datos.

Areas de utilización de los Sistemas Gestores de Base de Datos. 

Su utilización esta basada en un amplio mercado, no sólo para macroempresas, sino un SGBD nos servirá para pequeñas, medianas y grandes empresas, industrias.

Las áreas de utilización son amplias por las grandes ventajas que nos ofrecen los SGBD.

El principal objetivo de la implantación de una base de datos en un sistema de información de una organización, es poner a disposición de un gran número de usuarios un conjunto integrado de datos. El S.G.B.D. debe proteger los datos cuando estos sean manipulados simultáneamente por diferentes usuarios.

Las principales funciones que debe realizar un S.G.B.D. son:

§  La definición de los datos.
§  La manipulación de los datos.
§  Garantizar la seguridad e integridad de los datos.
§  La gestión de las transacciones y el acceso concurrente.
§  La creación de objetos conceptuales
§  La descripción de estructuras físicas
§  La definición de vistas
§  La modificación de la descripción de objetos conceptuales
§  El borrado de objetos conceptuales
§  La modificación y borrado de caminos de acceso
§  La modificación de las vistas

Un SGBD tiene también funciones provistas, pueden agruparse en tres clases:
  • Consulta y actualización de datos
  • Mantenimiento de esquemas
  • Manejo de transacciones
  Consulta y Actualización:

Ésta es la clase más básica de funciones y la única que es visible "desde afuera". Consiste en un conjunto de herramientas que permite a los distintos tipos de usuarios del SGBD extraer, manipular y modifica la información almacenada en la base de datos.

Algunos sistemas proveen una única interfaz, llamada generalmente lenguaje de consulta, para ser usada por todos los tipos de usuario. Por ejemplo, el lenguaje SQL permite ejecutar consultas y actualizaciones en una notación vagamente similar al lenguaje natural. La expresión:
    select matricula, nombre
    from alumnos
    where carrera = "Ingeniería" and edad < 21
produce como resultado una tabla con los números de matrícula y los nombres de todos los alumnos menores de edad de la carrera de Ingeniería.



  Mantenimiento de esquemas:

El esquema de la base de datos es la descripción de la estructura de la información almacenada en ella. Por ejemplo, para un sistema basado en tablas, el esquema puede consistir en una lista de tablas en uso, los campos que contienen, el tipo de datos de cada campo, descripciones en lenguaje natural del propósito de cada tabla y cada campo, y restricciones sobre los valores admisibles en cada campo.

 Así como los usuarios necesitan acceder, agregar y modificar datos, también necesitan acceder, agregar y modificar el esquema de datos. Por ejemplo, un usuario que se acerca por primera vez a una base de datos querrá saber antes que nada qué información contiene ésta, un programador puede escribir programas que definan y creen nuevos tipos de entidades, o eliminen algunos preexistentes; el DBA necesita controlar qué usuarios tienen accesos a qué información, formulando reglas de seguridad que se hacen parte del esquema.

  Manejo de Transacciones:

Una de las áreas principales de aplicación de los sgbd's es lo que se llama procesamiento de transacciones. Una transacción es un programa de aplicación, generalmente de duración breve, que accede y actualiza una parte también generalmente pequeña de la base de datos. Típicos ejemplos son un depósito o extracción de una cuenta bancaria, o una reservación en un vuelo, o una verificación de una tarjeta de crédito.
El manejo de transacciones consiste en controlar múltiples transacciones ejecutando el paralelo sobre una misma base de datos corriendo en un sistema que puede fallar. Los objetivos del gestor de transacciones del sgbd son: evitar que las transacciones interfieran unas con otras al ejecutar en paralelo, y garantizar que la base de datos no sea dañada en forma irreparable por caídas, ya sea del sistema en sí o de alguna de las transacciones. El primero de los objetivos da lugar a lo que se llama control de paralelismo; el segundo, a técnicas de recuperación.