Subido por Net Com

Tipos y Modelos de Bases de Datos

Anuncio
¡Hola ingenieros! ¿Cómo van con esos
proyectos de software?, estoy seguro que ya
están aplicando los conceptos que hemos ido
conociendo en el transcurso de la clase.
En esta ocasión quiero que platiquemos sobre
un tema que prácticamente es obligatorio para
todo ingeniero de software el cual tiene que ver con las bases de datos.
Es importante recordarles que vivimos en una sociedad globalizada y cargada de información
por todas partes: datos por aquí, datos por allá, la suma de todos estos datos llegan a formar
parte de nuestra realidad y nuestros modelos socio-económicos: manejo de precios, datos
estadísticos sobre la población, consumo, tasa de préstamos en bancos, tasa de cambio de
las diversas monedas en el mundo con respecto a nuestro Lempira y en fin, muchas de las
decisiones que se toman en nuestro planeta y en nuestro país son basadas en datos, en
información; pero, ¿de dónde sale todo esto? En la mayoría de casos de una base de datos o
de un conjunto de bases de datos.
Por ejemplo: La Universidad Tecnológica de Honduras suele generar en
sus sistemas una serie de reportes sobre las tendencias de sus alumnos
en relación a las clases que inscriben, sus calificaciones, inasistencias y
lugares de residencia: gracias a esta información es posible poder
determinar los precios, la deserción, si es posible poder abrir otro
Campus en otra ciudad del país, etc. ¿de dónde sale toda esta información? Obviamente de
una base de datos, y sumado a esto la Universidad Nacional Autónoma de Honduras exige a
todas las demás universidades de nuestro país a entregar información de sus bases de datos
para ellos poder generar más información la cual será de utilidad para medir la situación
Material facilitado por Ing. Gerardo Josué Portillo ([email protected])
actual del país en materia de educación superior y por ende para darla a organismos
internacionales para tomar decisiones sobre la ayuda que se da a Honduras, en fin todo viene
de una base de datos y se irá a una base de datos. Realmente hoy si me atrevo a decir que
vivimos en una verdadera sociedad de información: una sociedad digital.
El tema de las bases de datos es obligatorio mis estimados ingenieros, así que en este
documento veremos los tipos que hay y bajo que modelos se diseñan.
En un desarrollo de software no se empieza programando “a lo loco”,
sino más bien se realiza un buen diseño de base de datos que tenga
sentido con lo plasmado en los diagramas de flujo de datos para que así
la codificada del software sea más fácil y ordenada, como experiencia
personal les puedo decir que lo primero que yo hago antes de ponerme
a programar es mi base de datos.
¿Qué es una base de datos?
Como lo aprendieron en su clase de Diseño de base de datos (la cual es requisito de esta
asignatura de ingeniería de software I) entonces recordarán que una base de datos es una
colección de archivos que actúa como una fuente central de datos destinados a compartirse
entre muchos usuarios para una diversidad de aplicaciones1.
Como un ejemplo muy genérico de lo que es una base de datos puedo decir que es una tabla
con filas y columnas, digamos, un listado de personas con sus direcciones y teléfonos. A pesar
de no ser muy compleja y de no tener relaciones está en si es una base de datos de personas
con sus teléfonos.
Una pequeña tabla hecha en Microsoft Excel puede ser
considerado una base de datos siempre y cuando esta cuente
con registros distribuidos a través de columnas y filas de forma
tabular.
Para poder entender mejor una base de datos debemos
conocer una serie de conceptos básicos los cuales listo a
continuación:
1
Concepto extraído del Libro de Análisis y Diseño de Sistemas, Kendal & Kendal
Material facilitado por Ing. Gerardo Josué Portillo ([email protected])
1. Entidades
2. Atributos
3. Registros
4. Relaciones
5. Claves
6. Metadatos
Existen más conceptos, pero estos 6 son fundamentales para que una base de datos sea
definida como tal, en breve explico cada uno de ellos.
Entidades
Son cualquier objeto o evento sobre el cual alguien escoge recopilar datos, Una entidad
puede ser cualquier cosa:
Una Persona (Cliente, Proveedor, etc.)
Un Lugar (Ciudad, País, etc.)
Un Objeto (Producto, Material, etc.)
Un Evento (Factura, Compra, etc.)
Una Unidad de Tiempo (Mes, Año)
Un Usuario del sistema de software
Atributos
Son las características de las entidades. Puede haber muchos atributos para una sola entidad,
por ejemplo en un personaje de un videojuego:
Material facilitado por Ing. Gerardo Josué Portillo ([email protected])
Un Dato es también un Atributo, o sea cada Campo de un Registro es
un Atributo del mismo.
En una base de datos un atributo es lo mismo que un Campo dentro de una tabla o sea una
columna de dicha tabla:
Cada campo de la tabla es un atributo y cada uno de ellos tiene un tipo de dato (numérico, texto,
fecha, etc.) y un tamaño del máximo de información que permitirá almacenar
Registros
Un registro es una colección de datos que tiene algo en común con la entidad descrita, o sea
que es una combinación de atributos dentro de una tabla:
Un registro es una fila dentro de una tabla, cada atributo es una coincidencia de la tabla dentro de un registro.
Cada registro toma como modelo la descripción de una entidad a través de sus atributos,
podemos decir que cada registro es una de las diversas versiones que puede tener una
entidad, por ejemplo: una entidad llamada Persona puede tener diversas versiones, alguno
se llamarán Pedro y tendrán el cabello negro, otros se llamarán Pablo y tendrán el cabello
café y quizá tengamos otros que se llamen nuevamente Pedro pero que tendrán el cabello
Rojo.
Material facilitado por Ing. Gerardo Josué Portillo ([email protected])
Relaciones
Son asociaciones entre las entidades o sea son vínculos entre las diversas entidades, para
comprender mejor esto imagine una entidad llamada Padre y otra entidad llamada Hijo
ambas entidades se relacionan entre sí ya que por cada Padre pueden haber muchos Hijos, y
un Hijo puede tener hasta dos padres (Mamá y Papá). En materia de bases de datos hay tres
tipos de relaciones:
1. Relación Uno a Uno (1:1)
Es cuando una ENTIDAD solo puede relacionarse con otra ENTIDAD a la vez, por ejemplo:
Para cada EMPLEADO hay un PARQUEO
TIENE
Empleado
Parqueo
Una PERSONA está casada con otra PERSONA
ESTA
CASADA
CON
Persona
Persona
Observe en ambos diagramas el simbolito que tiene cada terminación de la línea, en las relaciones uno a uno
se esa en ambos extremos de la línea que une ambas entidades una raya doble vertical en paralelo: ||
2. Relación Uno a Muchos (1:M)
Ocurre cuando una ENTIDAD puede tener relación con muchas otras ENTIDADES en una
sola dirección, por ejemplo:
Cada MEDICO trata muchos PACIENTES
Trata
Médico
Paciente
Material facilitado por Ing. Gerardo Josué Portillo ([email protected])
La entidad EMPLEADO puede tener muchos registros para cada DEPARTAMENTO
Pertenece
A
Empleado
Departamento
Note que el símbolo en las relaciones uno a muchos parte de una raya doble vertical paralela en un
extremo: || y una pata de gallo: → en el otro extremo.
3. Relación Muchos a Muchos (M:N)
En este caso las entidades podrían tener muchas asociaciones en cualquier dirección, o
sea que cada registro se puede relacionar con más registros y a su vez estos registros
pueden relacionarse con otros registros.
Por ejemplo: Cada ASIGNATURA tiene muchos ESTUDIANTES, Así como cada
ESTUDIANTE tiene muchas ASIGNATURAS.
Toma
Clases
Estudiante
Por ejemplo: Cada VENDEDOR atiende muchas CIUDADES, Así como cada CIUDAD
tiene muchos VENDEDORES.
Atiende
Vendedor
Ciudad
Claves
Una clave es uno de los datos en un registro que se usa para identificar al registro o para
asociar un dato de un registro con otra tabla.
A las claves también se les conoce como llaves
Material facilitado por Ing. Gerardo Josué Portillo ([email protected])
Hay varios tipos de claves, las más usadas son:
1. Clave Primaria
Es la que hace que un registro de sea único, una clave primaria solo puede estar
compuesta por un campo, por ejemplo:
Por ejemplo una tabla de Clientes que tiene dos campos: ClienteID y Nombre, el campo ClienteID es
la llave primaria de la tabla por lo tanto no pueden haber dos cliente con el mismo ClienteID
Este tipo de llaves se utilizan para evitar que haya dos registros con el
mismo número o código.
2. Clave Secundaria
Es la que hace único a un registro pero a diferencia de la primera esta puede estar
conformada por varios campos.
Por ejemplo una tabla que tiene tres campos: Categoria, Codigo y Nombre. Los campos
Categoria y Codigo conforman una llave, la llave primaria es el campo Categoria y la llave
secundaria es el campo Codigo la combinación de ambas impedirá que existan dos registros
con el mismo código dentro de la misma categoría, pero pueden haber dos registros con el
mismo código en categorías distintas.
Material facilitado por Ing. Gerardo Josué Portillo ([email protected])
3. Clave Foránea
Es la que permite relacionar dos tablas entre sí y es la base para la creación de bases de
datos relacionales.
En la imagen se muestra una llave foránea entre dos tablas: FacturaCab (encabezado de
factura) y FacturaDet (Detalle de una factura). Para que puedan existir elementos en el
detalle de una factura debe haberse creado el encabezad o de la misma.
Metadatos
Los metadatos son datos que definen a los datos en el archivo o base de datos o sea que
describen el nombre dado y la longitud asignada a cada dato.
Por ejemplo cuando definimos una tabla determinamos los nombres de los campos, su tipo, tu
tamaño y algunas reglas adicionales a estos, esos son los metadatos, esa información que determina
cómo se comporta un campo (o sea un atributo o dato).
Tipos de Bases de Datos
Hay diversas formas de clasificar las bases de datos, aquí las clasificaremos de acuerdo a la
variabilidad de los datos que estas manejan en dos tipos:
1. Bases de datos estáticas
2. Bases de datos dinámicas
A continuación se describe a las mismas:
Material facilitado por Ing. Gerardo Josué Portillo ([email protected])
Bases de datos estáticas
Este tipo de bases de datos se san más que todo para la generación de reportes, hacer
proyecciones, tomar decisiones o guardar datos históricos. Los datos que estas almacenan
son de solo lectura, o sea que no pueden borrarse u alterarse.
Por ejemplo un repositorio de datos (datawarehouse) o un software que almacene los
reportes contables en tablas históricas para evitar que alguien cambie información que va a
quedarse tal y como se presentó: un balance general, un estado de resultados o una factura
del año pasado no debería poder alterarse.
Por ejemplo un estado de situación financiera de una empresa es un tipo de reporte que no va a
cambiar en el futuro ya que esta refleja la situación de la organización en un momento determinado.
Bases de Datos Dinámicas
Son aquellas donde los datos almacenados se modifican a través del tiempo, lo que permite
operaciones como UPDATE (cambiar), DELETE (borrar) e INSERT (agregar), además de las
operaciones fundamentales de consulta (SELECT). El ejemplo más claro es la base de datos
de un software para supermercados, un restaurante, una universidad, etc. Este tipo de base
de datos es el más utilizado en nuestro país.
En el dibujo podemos ver una captura de
pantalla de un software para facturar
productos en restaurantes, en este tipo de
sistemas
la
información
fluye
constantemente con cada operación por lo
que los datos son dinámicos en todo
momento.
Material facilitado por Ing. Gerardo Josué Portillo ([email protected])
Modelos de bases de datos
Las bases de datos también se rigen por modelos o sea por una serie de métodos utilizados
para almacenar y recuperar información en las mismas: o sea modelos matemáticos y
algoritmos que rigen el funcionamiento de una base de datos.
Los modelos más populares son los siguientes:
1. Bases de datos jerárquicas
2. Bases de datos relacionales
3. Bases de datos multidimensionales
4. Bases de datos documentales
Para describir a cada uno de estos modelos voy a utilizar un término llamado nodo el cual
se refiere a un elemento dentro de una estructura:
nodo
nodo
nodo nodo nodo
Bases de Datos Jerárquicas
Son aquellas que almacenan la información como una estructura en árbol pero como si lo
viéramos de cabeza (al revés), en este modelo un nodo padre puede tener varios nodos hijos,
pero un nodo hijo no puede tener varios nodos padres, o sea que este modelo usa única
relaciones del tipo uno a muchos (1:M)
Curso A
Profesor 1
Curso B
Escuela
Observe
como
cada
profesor
tiene
varios
cursos; pero un curso solo
Curso C
Profesor 2
Curso D
pude pertenecerle a un
profesor.
Este modelo es muy utilizado en software que van a manejar un gran volumen de información
y datos compartidos ya que este modelo permite obtener gran rendimiento y estructuras de
datos muy estables en vista de que la relación es lineal y no en telaraña.
Su principal limitante es que le resulta imposible representar datos redundantes ya que este
tipo de datos por lo general necesitan de relaciones que no sean lineales.
Material facilitado por Ing. Gerardo Josué Portillo ([email protected])
Características del modelo jerárquico
Registros duplicados
Desnormalización
Integridad referencial
Ejemplos de motores de bases de datos jerárquicas
Adabas
GT.M
Focus
Bases de Datos Relacionales
Es el modelo más popular en la actualidad, de hecho es mi favorito, como dato histórico les
puedo decir que fue inventado por la empresa IBM.
El modelo relacional dice que no importa la forma y el lugar donde se almacenen los datos
ya que estos pueden unirse a través de llaves foráneas (relaciones) donde pueden existir
relaciones del tipo 1 a 1, 1 a muchos y muchos a muchos, por lo tanto podríamos decir que
la información puede relacionarse en forma de telaraña.
El lenguaje más conocido para implementar el modelo de base de datos
relacional es el Lenguaje Estructurado de Consultas o SQL por sus siglas
en inglés: Structured Query Languaje.
El diagrama de entidad -relación es el que mejor describe al modelo de bases de datos relacional
Material facilitado por Ing. Gerardo Josué Portillo ([email protected])
Características del modelo relacional
Existencia de llaves y relaciones por lo que posee Integridad referencial
Existencia de integridad de dominio
Existencia de triggers, procedimientos almacenados y reglas
Su estructura es entidad-relación
Permite aplicar las cinco formas normales (las cuales aprendió en la clase de
diseño de bases de datos)
Su principal limitante es el rendimiento ya que en la validación de las llaves y las relaciones
suele consumirse tiempo del CPU (procesador) del servidor de base de datos lo que no hace
apto a este modelo para trabajar con información que se almacena a velocidades de
milisegundos.
Ejemplos de motores de bases de datos relacionales
MySQL ó MariaDB!
Microsoft SQL Server
Oracle
DB2
Informix
PostgreSQL
Este modelo es el más usado en el mundo
Material facilitado por Ing. Gerardo Josué Portillo ([email protected])
Bases de Datos Multidimensionales
Son una versión avanzada de las bases de datos relacionales ya que también manejan el
concepto de entidad-relación, la diferencia es que las multidimensionales permiten
estructurar los datos en forma de un cubo lo que permite relacionar la información en varias
direcciones y crear consultas donde cada dato en cada registro de cada tabla pueda
relacionarse con otros datos de otros registros de otras tablas.
Características del modelo de bases de datos multidimensional
Los datos son redundantes
Cada dato puede contener o estar relacionado con más datos
Suelen manejar grandes volúmenes de información
Permite un análisis rápido de los datos
Ejemplos de motores de bases de datos multidimensionales
icCube
Microsoft Analysis Server
Cognos TM1
Material facilitado por Ing. Gerardo Josué Portillo ([email protected])
Bases de datos Documentales
Son también conocidas como bases de datos NoSQL ya que están diseñadas como si fueran
documentos, o sea que cada tabla puede ser un archivo, en este modelo de base de datos
no existe la relación de la información lo que permite crear índices de texto completo lo
que permite realizar búsquedas más rápidas.
Estas bases de datos suelen codificarse en formatos como XML y JSON, además de otros
formatos como por ejemplo un libro de Microsoft Excel o un archivo de texto separado por
comas o CSV.
En resumen una base de datos documental es un archivo plano que
permite realizar búsquedas de información de forma más veloz.
Su principal limitante es que los datos no están relacionados de ninguna forma por lo que la
información no está “amarrada” entre sí.
Ejemplos de motores de bases de datos documentales
SQLite
Apache Cassandra
MongoDB
RocksDB (usada por Facebook)
Una base de datos documental no necesita
de un servidor de base de datos como en los
modelos de entidad-relación.
SQLite es un motor de base de datos que bien preinstalado en los sistemas operativos más
populares para teléfonos celulares como ser: Android e iPhone y es un excelente manejador
de datos que permite trabajar de forma rápida y ordenada, en lo personal es mi motor de
base de datos NoSQL favorito, lo uso para aplicaciones portables donde no quiero que el
usuario final tenga que instalar algo en su computadora o teléfono.
Material facilitado por Ing. Gerardo Josué Portillo ([email protected])
Humor
La razón principal por la que los DBA duran en las empresas:
Es cuestión de percepción…
Material facilitado por Ing. Gerardo Josué Portillo ([email protected])
Descargar