jueves, 8 de octubre de 2015

2.3 Lenguaje de manipulación de datos

"LENGUAJE DE MANIPULACIÓN DE DATOS"

Un lenguaje de manipulación de datos (LMD ó DML) 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. Otros ejemplos de DML son los usados por bases de datos IMS/DL1, CODASYL u otras.
  • ·         INSERT

Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional.
Ejemplo 1 (inserto valores alumno pepe en la materia spd2 a la tabla cursada):
INSERT INTO ''cursada'' (''alumno'', ''materia'') VALUES (''pepe'', ''spd2'')
  • ·         UPDATE

Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de registros existentes en una tabla.
Ejemplo 1 (modifico la materia donde  el alumno sea pepe):
UPDATE ''cursada'' SET ''materia''= ''spd3'' WHERE ''alumno''= ''pepe''
  • ·         DELETE

Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla.
Ejemplo 1 (borro todos los valores de las columnas alumno y materia donde la materia sea spd2):

DELETE FROM ''cursada'' WHERE ''materia''= ''spd2''

2.2. Lenguaje de definición de datos

"LENGUAJE DE DEFINICIÓN DE DATOS" 

El DDL ó LDD (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.
La definición de la estructura de la base de datos incluye tanto la creación inicial de los diferentes objetos que formarán la base de datos, como el mantenimiento de esa estructura. Las sentencias del DDL utilizan unos verbos que se repiten para los distintos objetos. Por ejemplo para crear un objeto nuevo el verbo será CREATE y a continuación el tipo de objeto a crear. CREATE DATABASE es la sentencia para crear una base de datos, CREATE TABLE nos permite crear una nueva tabla, CREATE INDEX crear un nuevo índice… Para eliminar un objeto utilizaremos el verbo DROP (DROP TABLE, DROP INDEX…) y para modificar algo de la definición de un objeto ya creado utilizamos el verbo ALTER (ALTER TABLE, ALTER INDEX…).
Los objetos que veremos en este tema son:
  • ·         Bases de datos
  • ·         Tablas
  • ·         Vistas
  • ·         Índices

Como ya hemos comentado, las sentencias DDL están más orientadas al administrador de la base de datos, es el que más las va a utilizar, el programador tiene que conocer cuestiones relativas a la estructura interna de una base de datos, pero no tiene que ser experto en ello por lo que el estudio del tema se centrará en las sentencias y sobre todo en las cláusulas que pensamos pueden ser útiles a un programador y no entraremos en mucho detalle en cuanto a la estructura física de la base de datos y en la administración de la misma.

2.1 "Software de SGBD (Oracle, MySQL, Postgres y SQL Server 2012)"

                   " SOFTWARE  DE LOS SISTEMAS GESTORES DE BASES DE DATOS"

Oracle:
es utilizado con el fin de manejar grandes cantidades de información, ademas de admitir conexiones concurrentes de magnitud de usuarios (entorno multi-usuario) hacia los mismos datos. 

Oracle aporta un SGBD que estará ubicado en el hadware especifico y bajo un sistema operativo determinado.

La elección del entorno de trabajo (hadware S.O. y tipología de la estructura Cliente/servidor) sera una decisión que estará acorde con las necesidades  del propio sistema  de información.   

las principales funciones aportadas por todo el SGBD Oracle son:
  • Soporte y tratamiento de una gran cantidad de datos (Gbytes).
  • Soporte  de una gran cantidad de usuarios accediendo concurrente-mente a los datos.
  • Seguridad de acceso a los datos, restringiendo dicho acceso dependiendo de las necesidades de cada usuario. 

MySQL:
Es un Sistema gestor de bases de datos relacional, multihilo y multiusuario.
Oracle Corporation  desde abril de 2009 desarrollo MySQL como sofware libre en un esquema de licenciamiento dual.
MySQL es usado por muchos sitios web grandes y populares como; Wikipeda, Google (Aunque no para busquedas), Facebook, Twitter, Flickr y Youtube.
Aplicaciones MySQL:
  • ·         MySQL es muy utilizado en aplicaciones Web  como Joomla,Wordpress, Dupal 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. En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones. Sea cual sea el entorno en el que va a utilizar MySQL, es importante monitorizar de antemano el rendimiento para detectar y corregir 





Postgres:
PostgreSQL es un Sistema de gestión de bases de datos relacional orientado a objetos y libre, publicado bajo la licencia 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 apoyada por organizaciones comerciales. Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).

Características:
Alta concurrencia: 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.
Amplia variedad de tipos nativos: 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.

Otras características:
  • ·         Claves ajenas también denominadas Llaves ajenas o Claves Foráneas (foreign keys).
  • ·         Disparadores (triggers): Un disparador o trigger se define como una acción específica que se realiza de acuerdo a un evento, cuando éste ocurra dentro de la base de datos. En PostgreSQL esto significa la ejecución de un procedimiento almacenado basado en una determinada acción sobre una tabla específica. Ahora todos los disparadores se definen por seis características:
  • ·         El nombre del disparador o trigger
  • ·         El momento en que el disparador debe arrancar
  • ·         El evento del disparador deberá activarse sobre...
  • ·         La tabla donde el disparador se activará
  • ·         La frecuencia de la ejecución
  • ·         La función que podría ser llamada
  • ·         La función no es correcta

Entonces combinando estas seis características, PostgreSQL le permitirá crear una amplia funcionalidad a través de su sistema de activación de disparadores (triggers).
  • ·         Vistas.
  • ·         Integridad transaccional.
  • ·         Herencia de tablas.
  • ·         Tipos de datos y operaciones geométricas.

Soporte para transacciones distribuidas. Permite a PostgreSQL integrarse en un sistema distribuido formado por varios recursos (p.ej, una base de datos PostgreSQL, otra Oracle, una cola de mensajes IBM MQ JMS y un ERP SAP) gestionado por un servidor de aplicaciones donde el éxito ("commit") de la transacción global es el resultado del éxito de las transacciones locales

SQL Server 2012:
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).
Dentro de los competidores más destacados de SQL Server están: Oracle, MariaDB, MySQL, PostgreSQL. SQL Server solo está disponible para sistemas operativos Windows de Microsoft.
Puede ser configurado para utilizar varias instancias en el mismo servidor físico, la primera instalación lleva generalmente el nombre del servidor, y las siguientes - nombres específicos (con un guión invertido entre el nombre del servidor y el nombre de la instalación).
Características:
  • ·         Soporte de transacciones.
  • ·         Soporta procedimientos almacenados.
  • ·         Incluye también un entorno gráfico de administración, que permite el uso de comandos DDL y DML gráficamente.
  • ·         Permite trabajar en modo cliente-servidor, donde la información y datos se alojan en el servidor y los terminales o clientes de la red sólo acceden a la información.
  • ·         Además permite administrar información de otros servidores de datos.

Este sistema incluye una versión reducida, llamada MSDE con el mismo motor de base de datos pero orientado a proyectos más pequeños, que en sus versiones 2005 y 2008 pasa a ser el SQL Express Edition, que se distribuye en forma gratuita.
Es común desarrollar proyectos completos empleando Microsoft SQL Server y Microsoft Access a través de los llamados ADP (Access Data Project). De esta forma se completa la base de datos (Microsoft SQL Server), con el entorno de desarrollo (VBA Access), a través de la implementación de aplicaciones de dos capas mediante el uso de formularios Windows.
En el manejo de SQL mediante líneas de comando se utiliza el SQLCMD, osql, o PowerShell.
Para el desarrollo de aplicaciones más complejas (tres o más capas), Microsoft SQL Server incluye interfaces de acceso para varias plataformas de desarrollo, entre ellas .NET, pero el servidor sólo está disponible para Sistemas Operativos.
El tipo NUMERIC fue mejorado para ser usado como identificador de columna a partir de la versión 2008 R2.

sábado, 12 de septiembre de 2015

OBJETIVOS DE UNA BASE DE DATOS (diapositivas)

OBJETIVOS DE UNA BASE DE DATOS

Ø  Redundancia e inconsistencia de datos: Por el tiempo en que se lleva a cabo un programa los archivos son encontrados en diversos formatos, la información se puede duplicar. Esto conduce a que el almacenamiento de la información, las copias de los archivos no pueden coincidir.

Ø  Las dificultades en el acceso a los datos muchas veces son porque los archivos no permiten la obtención de datos de forma eficiente. Para esto  es debido desarrollar un sistema de recuperación de datos.

Ø  Evitar el aislamiento de los datos: esto suele pasar cuando los archivos se encuentran en diversos formatos, se busca aplicar  nuevos programas para la recuperación de los datos que se desean.

Ø  Problemas de integridad: este punto va de acuerdo con la inconsistencia de los datos ya que los valores de los datos que se almacenan deben llevar ciertas ligaduras de inconsistencias. El problema se vuelve complicado cuando las ligaduras de diferentes tipos y de diferentes  archivos.

Ø  Evitar el problema de atomicidad: como es común los errores o fallos pueden ocurrir desde un programa hasta un aparato. En algunas aplicaciones cuando un fallo ocurre y es detectado, después del suceso los datos que se tienen son restaurados al estado de consistencia en el que este se encontraba hasta antes de que el fallo ocurriera.  

Ø  Evitar anomalías en el acceso concurrentes: a lo largo de las mejoras de los sistemas se ha ido desarrollando que en base a estas mejoras los usuarios puedan actualizar sus datos de forma simultánea en el sistema. en el lugar de estas actualizaciones se puede dar lugar a que ocurran datos de forma inconsistente.

Ø  Problemas de seguridad: para que un sistema de base de datos sea confiable debe mantener un grado de seguridad, estos e refiere a que por mayor o menor importancia tengan los datos de una empresa se debe considerar el acceso a esta información, es decir que información estará al alcance de los usuarios y que información estará resguardada.


sábado, 5 de septiembre de 2015

Linea de tiempo "Sistemas Gestores de Bases de Datos"

LINEA DE TIEMPO
"Sistemas Gestores de Bases de Datos"

Área de Usabilidad de los SGBD (sistemas gestores de bases de datos)

Por lo regular los sistemas gestores de bases de datos (SGBD) son empleados en la gestión empresarial ó en instituciones públicas.

Tipos Gestores de Bases de Datos Propietarios y Libres


§  Sistemas de gestión de bases de datos (SGBD), cuyo propósito es general y se basan, con frecuencia, en el modelo relacional. Su finalidad principal es la gestión de datos comerciales, administrativos y, en general, cualquier tipo de datos. Son propiamente sistemas de recuperación de datos.
§  Sistemas de gestión documental (SGD), que se soportan comúnmente en un modelo textual. Están diseñados para gestionar datos textuales, no se estructuran necesariamente bien y, en general, incorporan controles terminológicos. Estos son sistemas para la recuperación de información. 

"SISTEMAS GESTORES DE BASES DE DATOS LIBRES"
(Los sistemas  gestores libres son aquellos que podemos descargar sin tener que pagar )

§  Firebird
§  BDB
§  MySQL
§  PostgreSQL
§  Sqlite
§  Ejemplos de gestores de base de datos propietarios
§  dBase
§  FileMaker
§  Fox Pro
§  IBM DB2 Universal Database (DB2 UDB)
§  IBM Informix
§  MAGIC
§  Microsoft SQL Server
§  Open Access
§  Oracle
§  Paradox
§  PervasiveSQL
§  Progress (DBMS)
§  Sybase ASE
§  Sybase ASA
§  Sybase IQ
§  WindowBase


                          "SISTEMAS GESTORES DE BASES DE DATOS PROPIETARIOS"
(por estos sistemas gestores se tiene que pagar una cantidad establecida)

§  Microsoft Access
§  Microsoft SQL Server
§  Open Access
§  Oracle
§  Paradox
§  Adbantase
§  Dbase
§  Foxpro
§  IBMDB2
§  IBM Informics
§  InterBase
§  Sibase (Todas las versiones)


CARACTERÍSTICAS DE LOS SISTEMAS GESTORES DE BASE DE DATOS

Existen  sistemas de gestores de bases de datos  con interfaz grafica de usuario por ejemplo:
§  Microsoft Access
§  Informics
§  SQL server
§  MySQL.
§  Paradox

§  Sybase


Sistemas Gestores de Bases de Datos

Un sistema gestor de base de datos(SGBD) se define como el conjunto de programas que administran y gestionan la información contenida en una base de datos. Ayuda a realizar las siguientes acciones:

  • Ø  Definición de los datos
  • Ø  Mantenimiento de la integridad de los datos dentro de la base de datos
  • Ø  Control de la seguridad y privacidad de los datos
  • Ø  Manipulación de los datos


Un sistema gestor de base de datos está compuesto de:

ü  El gestor de la base de datos
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.

ü  Diccionario de datos
Es una base de datos donde se guardan todas las propiedades de la base de datos, descripción de la estructura, relaciones entre los datos, etc.
El diccionario debe contener:
La descripción externa, conceptual e interna de la base de datos
Las restricciones sobre los datos
El acceso a los datos
Las descripciones de las cuentas de usuario
Los permisos de los usuarios
Los esquemas externos de cada programa

ü  El administrador de la base de datos
Es una persona o grupo de personas responsables del control del sistema gestor de base de datos.
Las principales tareas de un administrador son:
La definición del esquema lógico y físico de la base de datos
La definición de las vistas de usuario
La asignación y edición de permisos para los usuarios
Mantenimiento y seguimiento de la seguridad en la base de datos
Mantenimiento general del sistema gestor de base de datos

                 ü  Los lenguajes
Un sistema gestor de base de datos debe proporcionar una serie de lenguajes para la definición y manipulación de la base de datos. Estos lenguajes son los siguientes:
Lenguaje de definición de datos (DDL). Para definir los esquemas de la base de datos
Lenguaje de manipulación de datos (DML). Para manipular los datos de la base de datos
Lenguaje de control de datos (DCL). Para la administración de usuarios y seguridad en la base de datos.