domingo, 18 de septiembre de 2016

Bases de Datos

Relacionales: Son aquellas donde se guardan transacciones.

Introducción: 
Es una colección de datos estructurados, organizados, con interrelaciones entre si y almacenados sin redundancia, lo que permite que varios usuarios hagan uso de manera simultanea de los datos.
Se evita la inconsistencia de los datos.
Se crea una independencia de los procesos que hacen uso de estas.

Historia:
Estas bases de datos nacen de la necesidad de almacenar información.
Empieza en 1850-1929 con la máquina perforadora creada por Herman Hollerith quien fue el primer ingeniero estadístico de la historia. Está maquina perforaba tarjetas se tardan 7 años en obtener resultados. En 1950 se crearon las cintas magnéticas para almacenar las cuales solo se podían leer de manera secuencial.
En 1960 las computadoras se vuelven mas accesibles y por lo tanto las empresas las adquieren mas, en este año Charles Bachman incorpora un sistema de bases de datos en red.
En 1970 a partir de los aportes de Edgar F. Codd, Larry Ellison desarrollo la empresa conocida actualmente como Oracle, que crearon bases de datos relacionales.
En 1980 SQL comenzó a ser lo más usado y pedido de la industria de bases de datos, su nivel de programación era bajo y su uso sencillo.
En 1990 las bases datos giraron en torno a la programación orientada a objetos, siendo Microsoft el que salga adelante a partir de dicho momento en el ámbito de bases de datos.

Gráfico 1: Maquina perforadora

Gráfico 2: Cintas Magnéticas
Fuente: https://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Cintas_video.JPG/300px-Cintas_video.JPG

SGA(Sistema Gestor de Archivos): actualmente también se hace uso de este, para almacenar archivos de mediano a largo plazo.
Se considera parte del SO(Sistema Operativo).
Funciones: 
  • La E/S se lleva a cabo por bloques y asimismo asigna los archivos en determinados bloques, gestionando el espacio que tiene cada bloque para su mejor administración.
  • Identifica y ubica el archivo en cuestión.
  • Los archivos compartidos proporcionan un control de acceso.
Tiene ciertas ventajas como el acceso rápido, facilidad de actualización, entre otras, como leer el archivo completamente de manera rápida, con restricciones de integridad y sin flexibilidad, que no brinda el uso sencillo de archivos.
Tipos de archivos: 
-Pila.
-Secuencial indexado.
-Secuencial.
La principal idea de la base de datos es que sea centralizada, integrada o también distribuida.

SGBD(Sistema General de Base de Datos): Permite mantener, crear y controlar el acceso a una base de datos.(Connolly&Begg, 2010).
Características
Los datos deben ser auto descriptivos y que tengan independencia entre ellos, así como también que estén visibles y que se puedan compartir.
El objetivo que se busca es que se desarrollen programas en menor tiempo y que a su vez funcionen de manera optima.
Transacción: realizar varias acciones como si fuera una.
Componentes básicos:
-Usuario.
-SGBD.
-Manejador de Archivos.
-Manejador de Disco.
Objetivo:
Permitir crear bases de datos y esquemas, para preguntar sobre los datos, así como también de almacenar los datos de forma persistente, para controlar el acceso de múltiples usuarios.
Tipos de SGBD:
Multiusuario.
Centralizada.
Usos tradicionales SGBD:
Inventario, Reservas, Bancos, Bibliotecas, etc.
Usos avanzados:
Información geográfica, multimedia(vídeo, sonido, música, fotografía), analítico y bases de datos distribuidas.

Gráfico 3: Arquitectura base de datos.
Fuente: http://www.yourerpsoftware.com/files/u3/Sistema_ERP3.jpg
Las bases de datos no se deben utilizar en programas muy simples y así también cuando no se tiene un presupuesta para estas.
Utilidades adicionales:
-Importar-exportar datos.
-Copia de respaldo
Ventajas:
Concurrencia, consistencia, control de redundancia, múltiples interfaces, restricciones de accesos y de integridad, almacenamiento persistente de objetos.
Arquitectura General
Toda base de datos tiene 3 niveles:
-Físico o interno.
Hardware.
-Conceptual o lógico.
Diseño conceptual.
Tema principal.
Administradores de datos.
-Vistas o externo(de mayor abstracción).
Vistas sobre la tabla.
Público objetivo.
Requiere solo acceso parcial a los datos.
Tarea de la base de datos:
Mantener la coherencia entre estos esquemas.
Mantener independencia de los datos.
Independencia física de datos: el diseño o modelamiento, jamas debe ser afectada por cambios en en esquema físico.
Independencia lógica: algunos elementos físicos son afectados por el diseño.
Independencia de datos:
Lógica:
-Agregar mas columnas no debe afectar las vistas.
-Modificar columnas afecta a las vistas.
Física:
-Si el SGBD modifica su organización interna de archivos, no pasa nada con el esquema conceptual (sucede cuando hay un cambio de versión, o al migrar a otro SGBD).
Transacciones:
Son la ejecución de varias sentencias como una sola, produciendo un cambio consistente de los datos.
Brindan flexibilidad y control, para asegurar la consistencia de los datos.
Registro y recuperación en caso de fallas:
Cada cambio es almacenado separadamente.
De deshacen los cambios de transacciones que se realizaron a medias.
Control de concurrencia:
Bloquear y desbloquear tablas.
Características (A.C.I,D):
-Atomicidad: se ejecuta todo o nada.
-Consistencia: siempre en las transacciones la base de datos esta consistente.
-Isolation(Aislamiento): Cada transacción debe aparecer como algo separado de otras transacciones.
-Durabilidad: Una vez realizada la transacción, está es durable.
Roles:
Administrador de la base de datos
-Administrador de datos.
Planificación de base de datos, desarrollo de estándares, diseño lógico base de datos.
-Administración de bases de datos:
Acceso y control, diseño e implementación de la base de datos, mantenimiento y respaldo.
Diseñador de base de datos
Abstracción, diseño lógico de la base de datos.
Desarrollador de aplicaciones
Usuarios finales
Claves para el futuro
Personas especializadas en bases de datos, con mayor integración con el SO, Internet, mayor automatización de las funciones, métricas de productividad.

Lenguajes de bases de datos:

Por área.
Vistas, definición de datos, manipulación de datos, etc.
Por nivel (alto y bajo).
Por sus procedimientos o sin procedimientos.Hay diferentes lenguajes para: definir vistas, datos, etc.
Interfaces de usuario.
Formularios, interfaces gráficas, en lenguaje natural, intérprete de comandos.


Modelos de datos
Son una colección de herramientas conceptuales para describir los datos,relaciones, semántica y restricciones de consistencia, que son de tipo :
Modelos Entidad/Relación;
Esta basado en percepción del mundo real que consta de objetos, entidades, y de relaciones entre objetos, se usa para el diseño de bases de datos.
Modelo Relacional:
Se usa grupo de tablas para representar los datos y las relaciones, compuesta por varias columnas, con su nombre cada una de ellas. Se encuentra en un nivel de abstracción menor al modelo E/R.
Modelo orientado a objetos:
Es una extensión del modelo E/R.
Modelo de datos relacional orientado a objetos:
Combina ambos modelos.
Modelos semi-estructurados.
Modelo de Red y Modelo Jerárquico.
Muy ligados al Hardware.

Análisis de requerimientos.
Requisitos funcionales: que debe hacer el sistema, transacciones.
Requisito de datos: que debe almacenar el sistema.
Tolerancia a cambios.
 Definiciones:
Entidad: objeto que existe y es distinguible (instancia). 
Conjunto de entidades(Clase).
Atributos(Propiedades).
Relaciones(Conexiones).
Conjunto de relaciones(Conexiones de conjuntos).

Diagrama entidad-relación

Entidad: rectángulos. 
Atributos: óvalos.
Relaciones: rombos.
Lineas: Enlazan atributos con entidades.

Atributos: 
Atómicos o compuestos.
Valor:
Monovaluados(fecha de nacimiento) o Multivaluados(teléfonos).
Almacenados o derivados:
Edad de la persona.
Posiblemente nulos:
Cuando se puede dejar vacío o en blanco.
Claves:
Permiten localizar una entidad(cédulas).
Relaciones:
Ejemplo: es_jefe_de, participa_en_concurso
Instancia de la relación.
Grado de una relación.
Cardinalidades.
Las relaciones pueden tener atributos cuando la relación es muchos(n) a muchos(n).
Relaciones recursivas: es cuando una relación se relaciona consigo misma.
Requiere un nombre en el vinculo.
Simbologia adicional:
Entidad débil: depende de una entidad, no tiene suficientes atributos para una clave primaria.
Atributo multivalorado o multivaluado: que puede tener varios. Ejemplo: teléfonos.
Atributo derivado: no se almacena en base de datos, pero se puede calcular.
Entidad fuerte: doble rombo, clave primaria.

Triangulo para la derivación o subclases.
La especialización
No se debe especializar demasiado debido a que no puede haber atributos nulos, mientras menos entidades es mejor, también la complejidad aumenta.

Generalización: proceso para encontrar la superclase.
Mediante la búsqueda de atributos, relaciones en común para siempre generalizar.
Tipo Unión:
Se supone que siempre hay una superclase.
La subclase unión no tiene atributos propios.
Tampoco hereda todos los atributos de las superclases, solo los de una de ellas a la vez.
Principios de diseño:
Correctitud: representar adecuadamente el modelo.
Evitar redundancia.
Buscar simplicidad: entidades que sean estrictamente necesarias.
Cuando aparece un ciclo hay redundancia.

Gráfico 4: Ejemplo de tipo unión.
Fuente:http://image.slidesharecdn.com/bases-de-datos-parte-410-modelo-er-continuacin1590/95/bases-de-datos-parte-410-modelo-er-continuacin-21-728.jpg?cb=1191462135
Entidades Eliminables:
Solo tienen relaciones 1-1 con otra entidad.
No pensar en las tablas, ya que es para conceptualizar.
Leer y re-leer el diagrama, para pensar en posibles consultas, para extensiones y tomar decisiones.

Modelo Relacional
Transformación de entidades, de E-R a relacional.
La idea principal es el uso de relaciones. Estas relaciones podrían considerarse como conjunto de datos llamados tuplas. Este fue realizado por Edgar Frank Codd, en IBM.
Cada relación se la visualiza como una tabla de datos.
Tuplas: fila o registro completo de algo, todos los datos de algo, es un elemento del conjunto.
Dominio: Restricciones(Tipo de dato).

Gráfico 5: Ejemplo de modelo relacional.
Fuente:https://proyectopentahodw.files.wordpress.com/2010/04/diagrama-modelo-e-r.jpeg

Resultado de imagen para pelicula modelo relacional
Película(título, año, duración).
Atributos: Ai
Relación: R(A1,A2,A3,...,An)
Domino: dom(Ai)
Tupla:  t= <Mar Adentro, 2004, 125>  Película
Relación es un conjunto, por lo tanto no esta ordenado.
Subconjunto de tupla: t[año,duración]=<2004,125>
Restricciones de Dominio:
t[A]= <x>  x   dom(A)
En algunos casos:
NULL  dom(A)
La relación acepta valores nulos.

Claves candidatas y primarias:
Candidatas: el atributo o atributos que puede ser la clave primaria.
Primaria: el identificador de cada elemento que puede ser simple o compuesto por atributos, para identificar un registro, inamovible.
La elección de esta es arbitraria, que tenga pocos atributos, una que identifique de manera única a cada tupla.
Restricciones de claves únicas:
t1,t2  Relación, t1[K]  t2[K]
Null[K]  K
Una clave puede ser un atributo, varios atributos(clave compuesta).
Clave foranea: Clave que no pertenece a ese campo, pero por relaciones se delimita como se relaciona con otras.


Integridad referencial: hacer referencia a las tablas previamente realizada.
Mantener Integridad Referencial:
Al iniciar:
  1. Insertar clave foránea en otra tabla.
  2. Rechazar la inserción.
Al eliminar:
  1. Eliminar tuplas que apuntan a esta tupla(Cascada)
  2. Actualizar valores en tuplas que apuntan a esta tupla.


Referencias:
Midepa. (4 de Enero de 2011). Historia de las Bases de Datos. Obtenido de Blog Historia de la Informática el 18 de Septiembre de 2016, de : http://histinf.blogs.upv.es/2011/01/04/historia-de-las-bases-de-datos/
Oracle. (2016). Data Types. MySQL, Recuperado de: http://dev.mysql.com/doc/refman/5.7/en/data-types.html
Oracle. (2016). Data Types. Oracle Help Center. Recuperado de: https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF0021