· 1. Desarrolle en un blog los siguientes puntos:
Concepto de base de datos.
Podemos definir como base de datos, a la agrupación
de información coherente y estructurada, es decir, si almacenamos nombres,
apellidos, número telefónico, dirección, ciudad, etc. En una hoja de papel,
esto lo podríamos llamar base de datos, sin embargo, encontrar allí el número
de teléfono de alguien no sería muy fácil, pues no hemos tenido la precaución
ni las herramientas para hacerlo de una manera ágil, como, por ejemplo,
escribirlos en orden alfabético, lo cual, sería casi imposible por el medio que
estamos empleando, una hoja de papel, tendríamos que dejar espacios para cada
letra del abecedario y ubicar allí los datos de nuestros amigos. Ahora bien, imaginémonos
que tenemos muchos amigos cuyo apellido inicia por cualquier letra, escojamos
la G y seguramente, el espacio que destinamos no sería suficiente y el que
dejamos para la Z seria demasiado. Bueno, afortunadamente, se crearon las
agendas telefónicas, un block de hojas marcadas con el abecedario y con muchas
hojas para cada letra.
El
directorio telefónico, que, por cierto, ya poco vemos, ese libro de muchísimas hojas
que almacenaba los números telefónicos de toda una ciudad es una base de datos,
pero ¿quién carga un directorio en su bolsillo?
Hoy en día, gracias a la evolución de la tecnología y al diseño de
sistemas de información es posible, iniciando desde una hoja de cálculo (ej. Excel)
, motores de bases de datos (MySql, PostGreSQL, MS Access, MS Sql, Oracle, ACE,
DB2, etc) hasta nuestros celulares, incluso aquellos que mal llamamos “flechas”,
son todos ellos una base de datos con información coherente y estructurada, los
cuales permiten almacenar, buscar, editar, eliminar la información de contacto
de nuestros amigos, conocidos y empresas. Y a este concepto, el más utilizado hoy en día
en el desarrollo de software y diseño de bases de datos, el modelo relacional.
Bueno,
esto fue solo con algo tan sencillo como almacenar números telefónicos, sumemos
estos pequeños problemas de el ejemplo anterior a los problemas de las empresas
en los años 60, la información era almacenada en cintas magnéticas, por tanto
su lectura (información) era secuencial, los procesos eran por lotes (batch),
archivos maestros de información por programa, etc. Y ya se requería consultas
simultaneas de la misma información, actualizaciones
en línea, ahorrar espacio, es decir, no duplicar la información, relacionar la información;
Un buen ejemplo de esto es un sistema de facturación, donde tienes 3 entidades
importantes involucradas y relacionadas, los clientes, los productos y la
factura como resultado de una transacciones. Pues bien, la relación de cliente
factura, para saber a quién debemos entregar, que entregar y a quien cobrar, los
productos, relacionados con la factura, cuales, sus cantidades, sus precios
unitarios y totales, etc.
“Camps,
R., Casillas, L., Costal, D., Gibert, M., Martín, C., y Pérez, O. (2005) Software
libre” definen en su libro que una base de datos es “una base de datos es un
conjunto estructurado de datos que representa entidades y sus interrelaciones.
La representación será única e integrada, a pesar de que debe permitir
utilizaciones varias y simultáneas.”
·
Características generales de una base de datos.
Como ya he mencionado en el párrafo anterior,
las bases de datos deben cumplir ciertas características para que puedan ser
llamadas bases de datos, y a diferencia de archivos normales los cuales manejan
un solo tipo de datos, las bases de datos manejan o contienen datos de diferentes
tipos, es decir, mientras en un archivo de texto, todos los datos almacenados
en el son tratados como texto, en una BD pueden existir datos de tipo texto, numérico
(integer, long, etc), booleano, memo, etc.
Una
base de datos en si misma nos permite realizar consultas no predefinidas, es
decir, que al escribir una serie de sentencias (comandos) podemos seleccionar información
que cumpla unos criterios de selección por cualquiera de sus campos sin
importar el tipo de dato que este contenga. Estos criterios de selección pueden
ser tan complejos como sean necesarios, es decir, podemos buscar la información
por edad, color de ojos, estatura, número de hijos, etc. Pero eso si, debe
existir un campo en la base de datos que contenga dicha información, no podremos
buscar por salario, si dicha información no es almacenada en la estructura de
la base de datos. Para hacer estas consultas, de forma fácil y entendible, se
desarrollaron lenguajes para interpretar lo que deseamos, esto dentro de un estándar,
el lenguaje SQL (del ingles Structured Query Language) nos permite en un sistema de gestión de bases
de datos relacionales especificar diferentes operaciones.
Encontramos
también en una base de datos flexibilidad, para que cuando un sistema de información
requiera cambios, estos se puedan realizar sin restricciones críticas para el
mismo, por ejemplo, si definimos un campo para guardar un nombre de 15
caracteres y después requerimos ampliarlo a 50 caracteres, esto será posible
sin afectar el SI porque es en la base de datos donde definimos el tamaño del
campo, no en el SI. Y ahí aparece una característica mas, y es la
independencia, es muy importante que exista la mayor independencia entre los
datos y los procesos, precisamente, para facilitar en parte la evolución o
mejoras del SI.
Otra
característica que determina a una base de datos es la redundancia, en una base
de datos podemos eliminar la redundancia gracias a otra característica la relación,
es decir, podemos agrupar información (normalmente los llamamos tablas) con un
identificador único, como ejemplo los datos personales, donde tenemos el número
de identificación, el nombre, los apellidos, la edad, dirección, ciudad, etc. Y
en otro grupo de información, tenemos las clases a las que asisten estas personas.
Cuando un profesor desea acceder a la información de sus alumnos, esta información
no se encuentra duplicada en las tablas con la información del curso, en ella
solo encuentra los números de identificación, pero gracias a la eliminación de
la redundancia y a la relación, puede generar ese listado con los datos
asociados al número de identificación. No siempre es posible eliminar la redundancia
de información, por ejemplo, los atributos que utilizamos para relacionar la información
(llaves) deberá conservarse en las tablas que deseamos relacionar, y en
ocasiones, es más fácil y menos costoso, duplicar la información en varias
tablas.
Estas
características traen con si una problemática y es la integridad, al estar los
datos distribuidos en diferentes tablas y relacionados por campos con información
única (llaves) se hace necesario que la BD tenga integridad de la información,
como mencione en el ejemplo anterior, esto es, que el número de identificación almacenado
en la tabla de clases, debe tener un correspondiente y único número en la tabla
que almacena los datos personales. Para ello se crean reglas de integridad en
los modelos de bases de datos. Estas reglas las define el diseñador de la BD, y
el motor (o Sistema de Gestión de la Base de Datos – SGBD) entiende y hará
cumplir, incluso, el mismo sistema tiene reglas predefinidas que siempre cumplirá.
En síntesis, existen reglas del motor,
del diseñador y del propio usuario.
Pues
bien, se hace necesario entonces, que sea posible recuperarnos de una falla de
integridad y es allí donde el sistema incorpora métodos de reconstrucción, mantenimiento
y recuperación de la integridad de la información. Para ello se hace necesario
incorporar procesos como el backup periódico de las transacciones, los datos
entre otros.
Es
importante, también, la concurrencia, esta es una de las características, si no
es la más importante, una de las mas requeridas. Gracias a esta característica, muchos usuarios
o procesos puedan acceder a la información al mismo tiempo; cuando el acceso es
de solo lectura, es decir, no serán actualizados los datos, el problema radica
en el desempeño de la aplicación, es decir, que tan rápido responderá la BD a
las consultas con los recursos existentes. Pero cuando mas de un usuario
actualiza información en el mismo registro, esto puede causar interferencia, es
decir, fallas o perdida de integridad, para ello los motores tienen
procedimientos basados en transacciones para evitar esto. Una transacción según
la definición de Camps, Casillas, Costal, Gibert, Martín y Pérez es “un
conjunto de operaciones simples que se ejecutan como una unidad. Los SGBD deben
conseguir que el conjunto de operaciones de una transacción nunca se ejecute
parcialmente. O se ejecutan todas, o no se ejecuta ninguna”, para lo cual el
SGBD incorpora comandos como COMMIT, ROLLBACK.
·
Identifique, describa y explique en qué
consiste el modelo entidad-relación de una base de datos.
El modelo entidad-relacion de una base de datos
es la interrelación que existe entre las entidades de la BD y sus atributos
llave. Las relaciones entre entidades pueden ser uno a uno o uno a
muchos; en ocasiones es necesario crear relaciones mucho a muchos, las cuales, normalmente no son recomendadas
y debemos tratar de evitarlas, para ello se crea una entidad intermedia como en
la imagen siguiente, la relación profesores-cursos seria mucho a muchos, creamos
la tabla intermedia ProfesoresCursos, la cual tiene una relación profesor-ProfesoresCursos
uno a muchos y ProfesoresCursos-Cursos Muchos a uno.
FUENTE: Recuperado de http://www.ite.educacion.es/formacion/materiales/93/cd/m2_3/Relaciones14_PEQUE.JPG
Los campos llave idprofesor y idcurso son los campos utilizados para realizar la relación con la entidad intermedia, la cual tiene una llave profesor y curso.
·
¿En qué consiste la normalización de una base
de datos?
La normalización de bases de datos es un
proceso donde se designan y aplican reglas de nominadas "forma
normal" a las relaciones obtenidas al crear el modelo entidad-relación. Esto
se hace para evitar la redundancia de datos.
Con
ello se evita cambiar datos que existen en más de una entidad, ya que al
actualizarse se deberían cambiar en todas las entidades donde exista. Un cambio
en la dirección de un cliente es mucho más fácil de implementar si los datos
sólo se almacenan en la tabla Clientes y no en algún otro lugar de la base de
datos, Además del espacio que consumiría en el disco. Entre los procesos que se
realizan están los cálculos de accesos a disco, las rutas de acceso a la información,
etc.
Si se cumple la primera regla, se dice que la
base de datos está en la "primera forma normal". Si se cumplen las
tres primeras reglas, la base de datos se considera que está en la
"tercera forma normal". Aunque son posibles otros niveles de
normalización, la tercera forma normal se considera el máximo nivel necesario
para la mayor parte de las aplicaciones.
Primera forma
normal
•Eliminar los
grupos repetidos de las entidades individuales.
•Crear una entidad
independiente para cada conjunto de datos relacionados.
•Identificar
cada conjunto de datos relacionados con una llave principal.
Segunda forma
normal
•Crear
entidades independientes para conjuntos de valores que se apliquen a varios registros.
•Relacionar
estas tablas con una llave externa.
Tercera forma
normal
•Eliminar los
campos que no dependan de la llave.
FUENTE: Gómez, E., Martínez, P., Moreda, P., Suárez, A.,
Montoyo, A., y Saquete, E. (2003). Bases de datos 1
·
¿Qué es una base de datos orientada a objetos?
Una base de datos orientada a objetos es
aquella que 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 autónomo
de gestion de la base de datos orientada a objetos (ODBMS, object database
management system), el cual tiene embebido todo lo necesario para gestionar los
datos, su validación, acceso, eliminación, etc.
Este
tipo de bases de datos es muy utilizado en los sistemas CAD y CASE.
·
Identifique y explique las operaciones que se
pueden realizar sobre una base de datos.
En
las bases de datos se pueden ejecutar varias operaciones, entre ellas:
Referentes
al almacenamiento
•CREATE
DATABASE para crear una nueva base de datos vacía.
•DROP
DATABASE para eliminar completamente una base de datos existente.
•CREATE
TABLE para crear una nueva tabla, donde la información se almacena realmente.
•ALTER
TABLE para modificar una tabla ya existente.
•DROP
TABLE para eliminar por completo una tabla existente.
Referente
a los datos
•SELECT
para leer (o seleccionar) datos.
•INSERT
para añadir (o insertar) nuevos datos.
•UPDATE
para cambiar (o actualizar) datos existentes.
•DELETE
para eliminar (o borrar) datos existentes.
•REPLACE
para añadir o cambiar (o reemplazar) datos nuevos o ya existentes.
•TRUNCATE
para vaciar (o borrar) todos los datos de la tabla.
·
¿En qué consiste una base de datos distribuida?
Una base de datos distribuida (BDD) es un conjunto de
múltiples bases de datos lógicamente relacionadas, distribuidas en diferentes
espacios lógicos y geográficos. los sistemas de bases de datos distribuidas, no
necesariamente homogéneos. Este proceso de consolidación de la información no
implica la centralización de los datos, por el contrario, se mantiene
localizada en diversos lugares permitiendo el acceso a la BD como si estuviera
localizada en un solo lugar, permite tener accesos rápidos a la información.
Los
principios fundamentales de un sistema de datos distribuido son:
1.
Autonomía local.
2.
No dependencia de un sitio central.
3.
Operación continúa.
4.
Independencia con respecto a la localización.
5.
Independencia con respecto a la fragmentación.
6.
Independencia de réplica.
7.
Procesamiento distribuido de consultas.
8.
Manejo distribuido de transacciones.
9.
Independencia con respecto al equipo.
10.
Independencia con respecto al sistema operativo.
11.
Independencia con respecto a la red.
12.
Independencia con respecto al SGBD.
·
¿Qué aspectos de seguridad se deben tener en
cuenta en una base de datos?
Cuando nos referimos a seguridad en una base de
datos, podemos decir que nos referimos a varios aspectos, inicialmente a la
confidencialidad de la información y con ello a la integridad y disponibilidad
de la misma. Estos tres aspectos se logran con autorizaciones o derechos de
acceso, a nivel global (toda la BD), por entidad (tabla) o por atributo (un
campo), con el cifrado de información en los atributos (campos) críticos, esto
requiere que se identifique el usuario que accede a la información, que posea
una contraseña asociada a dicho usuario, o mecanismos de 2FA (Doble factor de autenticación),
además de procesos de backup, de mantenimiento a la base de datos, en algunas compañías,
donde la información es muy sensible, se aísla la base de datos con firewalls
para que solo se acceda al puerto de consulta del motor, implementan monitores
de actividad sobre el motor, etc.
2. Realice una tabla sobre los diferentes motores de bases de datos y sus
características generales, amplíe su información en el objeto de aprendizaje sobre
los gestores de bases de datos
https://www.dropbox.com/s/ycc1jblcs9jm2cw/Cuadro%20comparativo.pdf?dl=0
REFERENCIAS
Camps, R., Casillas, L., Costal, D., Gibert, M., Martín,
C., y Pérez, O. (2005). Software libre. Recuperado de http://goo.gl/qrViKv,
Gómez, E., Martínez, P., Moreda, P., Suárez, A., Montoyo,
A., y Saquete, E. (2003). Bases de datos 1. Recuperado de http://goo.gl/6LA1mU
Márquez, M. (2002). Tema 2. Bases de Datos Orientadas a
Objetos. Diseño de sistemas de bases de datos. Recuperado de http://goo.gl/oQYPhz
Definición de SQL
recuperado de https://es.wikipedia.org/wiki/SQL
Normalización
recuperado de https://support.microsoft.com/es-co/help/283878/description-of-the-database-normalization-basics
y https://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos