viernes, 15 de marzo de 2019

Introduccion a Base de Datos

¿Qué es una base de datos?

Una base de datos es una colección de datos organizados y relacionados entre sí, y los fragmentos de datos pueden ser seleccionados rápidamente usando un programa de un ordenador. Una DB (Base de datos en inglés Data Base) también puede ser considerado un almacén el cual permite almacenar grandes cantidades de datos para luego ser encontrados y utilizados de manera más sencilla 

Dato vs Información

Dato

Un dato es una representación simbólica, ya sea numérica, alfabética, algorítmica, etc. También puede ser un atributo o característica de una entidad. Los datos describen entidades, sucesos o hechos empíricos.

Información

En general información es un conjunto de organizado de datos ya procesados, los cuales dan como resultado un mensaje que cambia el estado de conocimiento del sujeto o sistema que recibe dicho mensaje


12 reglas de Codd

Edgar Frank Codd nació en Inglaterra en 1923 e inventó el modelo relacional, por lo cual se le considera el padre de las bases de datos relacional.12 reglas fueron establecidas por él para definir que requiere un sistema de administración de base de datos.

Regla 0: Regla de Fundación. El sistema debe ser relacional, por lo tanto debe ser capaz de dirigir y administrar sus bases de datos enteramente por con sus capacidades de relación.
Regla 1: Regla de la Información. Toda información almacenada en una DB debe ser representada unidireccionalmente por valores en posiciones de las columnas dentro de las filas de tablas. Por lo tanto, la información es representada de manera lógica de una manera, con valores en tablas.
Regla 2: Regla del Acceso Garantizado. Todos los datos deben de ser accesibles sin hesitación o ambigüedad. Cada valor escalar individual en la DB debe ser lógicamente direccionable, especificando el nombre de la tabla, la columna que lo contiene y la llave primaria.
Regla 3 Regla del Tratamiento Sistemático de Valores Nulos. El sistema de DB debe permitir campos nulos. Debe tener una forma de representar "la información que falta y de la información inaplicable" que sea sistemática y distinta de los valores regulares.
Regla 4 Catálogo Dinámico en Línea Basado en el Modelo Relacional. El sistema debe soportar un catálogo en linea, el catálogo relacional, el cual da acceso a la estructura de la base de datos y que debe ser accesible a los usuarios autorizados. 
Regla 5 Regla Comprensiva del Sublenguaje de los Datos. El lenguaje debe de soportar por lo menos un lenguaje relacional que: 
  • Tenga una sintaxis lineal.
  • Pueda ser utilizado de manera interactiva.
  • Tenga soporte de operaciones de definición de datos, operaciones de manipulación de datos, control de la seguridad e integridad y operaciones de administración de transacciones.
Regla 6 Regla de Actualización de Vistas. Todas las vistas que pueden ser actualizadas, deben de ser actualizadas por el sistema.
Regla 7 Alto Nivel de Inserción, Actualización y Borrado. El sistema debe permitir la manipulación de alto nivel en los datos, sobre conjunto de tuplas (tupla es una lista ordenada de elementos), lo cual significa que los datos no solo se pueden recuperar de una base de datos relacional a partir de filas múltiples y/o tablas múltiples, sino que también pueden realizarse inserciones, actualizaciones y borrados sobre varias tuplas y/o tablas al mismo tiempo y no solo sobre registros individuales.
Regla 8 Independencia Física de los Datos. Los programas de aplicación y actividades del terminal permanecen inalterados a nivel lógico aunque realicen cambios en los métodos de acceso o en las representaciones de almacenamiento.
Regla 9 Independencia Lógica de los Datos. Los programas de aplicación y actividades del terminal permanecen inalterados a nivel lógico aunque se realicen cambios a las tablas base que preserven la información. La independencia de datos lógica es más difícil con aplicaciones existentes.
Regla 10 Independencia de la Integridad. Las restricciones de integridad se deben especificar por separado de los programas de aplicación y almacenarse en la base de datos. Debe ser posible cambiar cambiar las restricciones sin afectar innecesariamente a las aplicaciones existentes.
Regla 11 Independencia de la Distribución. La distribución de porciones de DB en distintas localizaciones debe ser invisible a los usuarios de la DB. Los usos existentes deben seguir funcionando con éxito.
Regla 12 La Regla de la No Subversión. Si el sistema proporciona una interfaz de bajo nivel de registro, aparte de una interfaz relacional, esa interfaz de bajo nivel no debe permitir su utilización para subvertir el sistema. 

Motor de Base de Datos 

Un motor de DB es el servicio principal para almacenar, procesar y proteger los datos, ya que proporciona acceso controlado y procesamiento de transacciones rápido para cumplir con los requisitos de las aplicaciones consumidoras de datos. 

SGBD Sistema de Gestión de Base de Datos

Un SGBD es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en una base de datos. Los usuarios pueden acceder a la información por medio de herramientas de consulta y de generación de informes.

Bases de Datos Más Utilizadas

Los siguientes gestores de base de datos:

De pago:
  • Oracle
  • SQL Server
De acceso libre:
  • MySQL
  • FireBird

Clasificación de DB según su variabilidad

Base de Datos Estáticas

Son DB únicamente de lectura, utilizadas principalmente para almacenar datos históricos que posteriormente puede estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones, tomar decisiones y realizar análisis de datos para inteligencia empresarial.

Base de Datos Dinámicas

Son DB donde la información almacenada se modifica con el tiempo, permitiendo operaciones, como actualización, borrado, y edición de datos, además de las operaciones fundamentales de consulta. Por ejemplo: DB utilizada en un supermercado.

Modelos de Bases de Datos

Modelo Jerárquico

En este modelo los datos son organizados en una estructura parecida a un árbol. La estructura permite a la información que se repite y usa relaciones Padre/Hijo. Lo cual implica que un Padre puede tener varios Hijos, pero un Hijo puede tener solo un Padre, o cada registro tiene solo un Padre 

Modelo en Red

Es una base de datos conformada por una colección o set de registros, los cuales están conectados entre sí por medio de enlaces en una red. Un registro es una colección o conjunto de campos (atributos), donde cada uno de ellos contiene solamente un único valor almacenado.

Una estructura de base de datos de red, llamada algunas veces estructura de plex, abarca más que la estructura de árbol: un nodo hijo en la estructura red puede tener más de un nodo padre. En otras palabras, la restricción de que en un árbol jerárquico cada hijo puede tener sólo un padre, se hace menos severa.

Modelo Relacional

Este modelo considera la base de datos como una colección de relaciones. De manera simple, una relación representa una tabla que no es más que un conjunto de filas, cada fila es un conjunto de campos y cada campo representa un valor que interpretado describe el mundo real. Cada fila también se puede denominar tupla o registro y a cada columna también se le puede llamar campo o atributo.

Modelo Orientado a Objetos 

En una base de datos orientada a objetos, la información se representa mediante objetos como los presentes en la programación orientada a objetos. Cuando se integra las características de una base de datos con las de un lenguaje de programación orientado a objetos, el resultado es un sistema gestor de base de datos orientada a objetos (ODBMS, object database management system). Un ODBMS hace que los objetos de la base de datos aparezcan como objetos de un lenguaje de programación en uno o más lenguajes de programación a los que dé soporte. Un ODBMS extiende los lenguajes con datos persistentes de forma transparente, control de concurrencia, recuperación de datos, consultas asociativas y otras capacidades.

Modelo Documental

Una base de datos documental está constituida por un conjunto de programas que almacenan, recuperan y gestionan datos de documentos o datos de algún modo estructurados. Este tipo de bases de datos constituyen una de las principales subcategorías dentro de las denominadas bases de datos NoSQL. A diferencia de las bases de datos relacionales, estas bases de datos están diseñadas alrededor de una noción abstracta de "Documento".

¿Qué es una Relación?

La relación representa una asociación establecida entre campos comunes (columnas) en dos tablas. Existen tres tipos de relaciones, que son: uno a uno, una a varios y varios a varios.

Uno a Uno

En una relación uno a uno (Figura 3), cada registro de la Tabla MATERIA sólo puede tener un registro coincidente en la Tabla PROFESOR y viceversa.

En este ejemplo se está representando que cada materia solamente puede ser dada por un profesor.

Uno a Varios

En este modelo ser representa que mas de un PROFESOR puede dictar la misma MATERIA.

En la relación uno a varios un registro de la Tabla MATERIA puede tener muchos registros coincidentes en la Tabla PROFESOR, pero un registro de la Tabla PROFESOR sólo tiene un registro coincidente en la Tabla MATERIA.

Varios a Varios

En una relación varios a varios, un registro de la Tabla A puede tener muchos registros coincidentes en la Tabla B y viceversa. Este tipo de relación sólo es posible si se define una tercera tabla (denominada tabla de unión), cuya clave principal consta de al menos dos campos; y que además, estos campos, correspondan a las claves externas de las Tablas A y B.





Diseño de Base de Datos

Diseño Conceptual

Durante esta fase, plasmaremos nuestras entidades y las relaciones que existirán entre ellas. Cada entidad la identificaremos con un rectángulo y dentro de este colocaremos su nombre. A cada entidad le colocaremos sus respectivos atributos y resaltaremos el atributo principal, aquél atributo que identificará cada registro de manera única. Y por último crearemos las relaciones que existen entre dichas entidades.

Diseño Lógico

En esta fase, debemos pensar en cómo normalizar nuestras tablas para evitar duplicidad de información y para ahorrar espacio de almacenamiento. Para este proceso, las herramientas de modelado te ayudan bastante a ver las relaciones de las tablas.

Diseño Físico

En esta última fase ya debemos revisar a detalle los tipos de datos que utilizaremos, sus dominios (qué valores va a permitir), cuales índices debemos crear para optimizar las consultas, entre otros.

Ventajas y Desventajas de Base de Datos Relacional

Ventajas

  • Provee herramientas que garantizan evitar la duplicidad de registros.
  • Garantiza la integridad referencial, así, al eliminar un registro elimina todos los registros relacionados dependientes.
  • Favorece la normalización por ser más comprensible y aplicable.

Desventajas

  • Presentan deficiencias con datos gráficos, multimedia, CAD y sistemas de información geográfica.
  • No se manipulan de forma manejable los bloques de texto como tipo de dato.
  • Las bases de datos orientadas a objetos (BDOO) se propusieron con el objetivo de satisfacer las necesidades de las aplicaciones anteriores y así, complementar pero no sustituir a las bases de datos relacionales.

Elementos de una Base de Datos Relacional

  • Los datos se organizan en relaciones compuestas por tuplas de atributos. Si convertimos esta definición a tablas tenemos que los datos se organizan en tablas compuestas por filas (registros) y columnas (campos).
  • A cada tabla se le asigna un nombre único.
  • Una tabla tiene 0 o más filas, y cada fila contiene la información de un determinado ‘sujeto’ de la relación.
  • Las filas en un principio están desordenadas.
  • La lista de los atributos dispuestos en un orden específico de izquierda a derecha y que forman la definición de una tabla se denomina esquema de la tabla, mientras que los valores concretos de los datos que están almacenados en la tabla se llaman ocurrencias.



¿Qué es normalizacion de Base de Datos?

La normalización de bases de datos es un proceso que consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional. 

Las bases de datos relacionales se normalizan para:
  • Evitar la redundancia de los datos.
  • Disminuir problemas de actualización de los datos en las tablas.
  • Proteger la integridad de datos.
En el modelo relacional es frecuente llamar tabla a una relación; para que una tabla sea considerada como una relación tiene que cumplir con algunas restricciones:
  • Cada tabla debe tener su nombre único.
  • No puede haber dos filas iguales. No se permiten los duplicados.
  • Todos los datos en una columna deben ser del mismo tipo.

Formas Normales

Las formas normales son aplicadas a las tablas de una base de datos. Decir que una base de datos está en la forma normal N es decir que todas sus tablas están en la forma normal N.

En general, las primeras tres formas normales son suficientes para cubrir las necesidades de la mayoría de las bases de datos.

Primera Forma Normal:

NO repetir campos en las tablas (atributos atómicos).

Segunda Forma Normal:

Se debe aplicar la 1FN. Cada campo de la tabla debe depender de una clave única, si tuviéramos alguna columna que se repite a lo largo de todos los registros, dichos datos deberían atomizarse en una nueva tabla.

Tercera Forma Normal:

Se debe aplicar la 1FN y 2FN. Los campos que NO son clave NO deben tener dependencias.

Cuarta Forma Normal:

Se debe aplicar la FNBC. La 4FN aplica únicamente para relaciones M a M, y nos ayuda a eliminar la redundancia de información generada por dicho tipo de relación.

¿Qué es SQL?

SQL es un lenguaje específico del dominio utilizado en programación, diseñado para administrar, y recuperar información de sistemas de gestión de bases de datos relacionales​. Una de sus principales características es el manejo del álgebra y el cálculo relacional para efectuar consultas con el fin de recuperar, de forma sencilla, información de bases de datos, así como realizar cambios en ellas.

Lenguaje de definición de datos (DDL)

Permite crear y modificar la estructura de una base de datos.

Lenguaje de manipulación de datos DML(Data Manipulation Language)

Permite recuperar, almacenar, modificar, eliminar, insertar y actualizar datos de una base de datos.

Lenguaje de control de datos (DCL)

Permite crear roles, permisos e integridad referencial, así como el control al acceso a la base de datos.

Lenguaje de control Transaccional (TCL)


Permite administrar diferentes transacciones que ocurren dentro de una base de datos.

ACID

En bases de datos se denomina ACID a las características de los parámetros que permiten clasificar las transacciones de los sistemas de gestión de bases de datos. Cuando se dice que es ACID compliant se indica -en diversos grados- que éste permite realizar transacciones.

En concreto ACID es un acrónimo de Atomicity, Consistency, Isolation and Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en español.

Cloud Computing

La computación en la nube (del inglés cloud computing),1​ conocida también como servicios en la nube, informática en la nube, nube de cómputo, nube de conceptos o simplemente "la nube", es un paradigma que permite ofrecer servicios de computación a través de una red, que usualmente es Internet.

BIG Data

Big Data es un término que describe el gran volumen de datos, tanto estructurados como no estructurados, que inundan los negocios cada día. Pero no es la cantidad de datos lo que es importante. Lo que importa con el Big Data es lo que las organizaciones hacen con los datos. Big Data se puede analizar para obtener ideas que conduzcan a mejores decisiones y movimientos de negocios estratégicos.













lunes, 11 de marzo de 2019

ACTIVIDAD 6

Agrupar y Utilizar Botones de Opción en GUI de Java


Si se quieren botones de selección única, los conocidos como botones radio, que tienen la particularidad de que solamente puede haber uno seleccionado, hay que crearse un grupo de botones, añadiendo botones a ese grupo uno a uno. Pero, Swing permite que cualquier AbstractButton pueda ser añadido a un ButtonGroup.

 

La figura muestra los grupos de botones con la apariencia correspondiente a Swing.

Cargar Datos a un Componente JTable Utilizando DefaultTableModel


A la hora de asignar un dato a una componente tipo JTable, se realiza de la siguiente manera:

DefaultTableModel lista = new DefaultTableModel();

lista.addElement("Se puede asignar un String y un Int");

ArrayList

La clase ArrayList en Java, es una clase que permite almacenar datos en memoria de forma similar a los Arrays, con la ventaja de que el numero de elementos que almacena, lo hace de forma dinámica, es decir, que no es necesario declarar su tamaño como pasa con los Arrays.

¿Cómo se utiliza?








viernes, 1 de marzo de 2019

AWT vs SWING

¿Qué es Java AWT?

La Abstract Window Toolkit (AWT, en español Kit de Herramientas de Ventana Abstracta) es un kit de herramientas de gráficos, interfaz de usuario, y sistema de ventanas independiente de la plataforma original de Java. AWT es ahora parte de las Java Foundation Classes (JFC) - la API estándar para suministrar una interfaz gráfica de usuario (GUI) para un programa Java.

¿Qué es Java Swing?

Swing es una biblioteca gráfica para Java. Incluye widgets para interfaz gráfica de usuario tales como cajas de texto, botones, listas desplegables y tablas.


Ventajas y Desventajas de Swing

Ventajas: 


  • La portabilidad, debido a que los componentes de swing están hechos solo con java, estos funcionan  en casi cualquier otra plataforma.
  • Comportamiento, permite un rango de comportamiento más amplio ya que no están limitados a los sistemas en los que se ejecutan.
  • Características, soporta el uso de icono y tool-tips.
  • Soporte, Sun hace gran esfuerzo para hacer Swing más robusto.
  • Apariencia, los componentes de swing automáticamente pueden tomar la apariencia de cualquier plataforma.

Desventajas:

  • Portabilidad de Applets, la mayoría de los navegadores no incluyen las clases de Swing ANSI que se debe de instalar un plugin de java; para que funcionen los applets con swing.
  • Desempeño, los componentes de Swing son generalmente más lentos y con más problemas que AWT.

Ventajas y Desventajas de AWT

Ventajas:

  • Velocidad, el usar el sistema nativo como base hace que el desempeño de lo componente sea más rápido.
  • Portabilidad de applets, casi todo los navegadores soportan las clases AWT así  que applets construidos con AWT puede ejecutarse sin necesidad de plugin de Java.
  • Apariencia, los componentes AWT se parecen más al sistema en el que se están ejecutando.

Desventajas:

  • Portabilidad, el uso del sistema en el que se ejecutan los componentes. AWT crea algunas limitaciones. Algunos componentes pueden no funcionar en todas las plataformas.
  • Los grandes creadores de componentes se han inclinado por el desarrollo de componentes Swing y no AWT, esto hace que el conjunto de componentes AWT se aún más pequeño.
  • Características, los componentes AWT no soportan características como íconos y tool-tips.

Principales componentes AWT