"Colección o depósito de datos integrados, almacenados en soporte secundario (no volatil) y con redundancia controlada. Los datos, que han de ser compartidos por diferentes usuarios y aplicaciones, deben mantenerse independientes de ellos, y su definición (estructura de la base de datos) única y almacenada junto con los datos, se ha de apoyar en un modelo de datos, el cual ha de permitir captar las interrelaciones y restricciones existentes en el mundo real. Los procedimientos de actualización y recuperación, comunes y bien determinados, facilitarán la seguridad del conjunto de los datos". Que es un Sistema de Gestión de Base de Datos (SGBD)? Conjunto de programas que permiten la implantación, acceso y mantenimiento de la base de datos. El SGBD, junto con la base de datos y con los usuarios, constituyen el Sistema de Base de Datos. Que es un Modelo de datos? Conjunto de conceptos que permiten describir, a distintos niveles de abstracción, la estructura de una base de datos, a la cual denominamos esquema. Que es un Sistema de Información? Colección de personas, procedimientos y equipos diseñados, construidos, operados y mantenidos para recoger, registrar, procesar, almacenar y recuperar esa información. Qué es un Esquema de una Base de Datos? Es la Estructura de la Base de Datos. Que es la Ocurrencia del esquema? Conjunto de datos que se encuentran almacenados en el esquema en un momento determinado. El esquema no varía mientras no varíe el mundo real que éste describe, mientras que una ocurrencia del esquema es distinta en el transcurso del tiempo. Cuales son algunas de las ventajas que ofrece utilizar un Sistema de Bases? Independencia entre datos y tratamientos. El cambio en los programas no influye en la disponibilidad de los datos, así como la modificación de éstos no afecta a la reprogramación de las aplicaciones que los usan.
Coherencia de resultados: Debido a que los datos son
almacenados una sola vez, se evitan los problemas que puede ocasionar la redundancia. Más adelante veremos cómo se permite una cierta duplicidad de datos, con el fin de conseguir una mayor eficiencia, controlada por el sistema y que no afecta a la redundancia lógica.
Mejor disponibilidad de datos para los usuarios:
Los datos son compartidos por un conjunto de usuarios, que accede a ellos de forma concurrente, siempre que esten autorizados a ello. Mayor valor informativo: El conjunto de los datos almacenados en la BD ofrece un mayor valor informativo, que la suma de ellos independientemente.
Mayor eficiencia en la recogida, validadación e
introducción de los datos en el sistema: Al no existir redundancia, los datos se recogen y validan una sola vez, aumentando así la eficiencia.
Reducción del espacio de almacenamiento: La
desaparición (o disminución) de redundancias, unido a las técnicas de compactación, implica una menor ocupación de almacenamiento secundario. Cuales son algunos inconvenientes o desventajas de una base de datos? Instalación costosa: La implantación de un sistema de base de datos puede implicar un coste elevado, tanto en el equipo físico (adquisición de nuevas instalaciones, o ampliaciones de las existentes) como en el lógico (sistemas operativos, programas, compiladores, etc.), así como el coste de adquisición o mantenimiento del SGBD.
Implantación larga y difícil: Debido a las causas mencionadas
anteriormente, la implantación de un sistema de base de datos puede convertirse en una tarea larga y complicada. Falta de rentabilidad a corto plazo: Los amplios costes que conlleva la implantación, implica una rentabilidad no a corto, sino a medio, o incluso largo plazo. Escasa estandarización: Esto supone una dificultad añadida a los usuarios de la base de datos. Desfase entre teoría y práctica: Los constantes avances teóricos en al ámbito de las bases de datos, que muchas veces no se ven traducidos en la práctica, hacen llevarse a engaño a muchos usuarios, creyendo que constituyen ya una realidad, cuando no han sido todavía plasmados. Cual es la ARQUITECTURA de una Base de Datos? Basada en tres niveles de abstracción: Nivel Externo: Es el nivel más cercano a los usuarios, y en el se definen los datos tal y como los va a ver este. En este nivel, también deberán definirse las restricciones de uso, como por ejemplo el derecho a insertar o borrar determinados datos, o poder acceder a ellos. Nivel Conceptual: Proporciona una descripción global del esquema independiente de la estructura física de la base de datos, es decir, cúales son los datos, como están organizados, las relaciones entre ellos y las restricciones de integridad y confidencialidad. El modelo conceptual, que es único, establece el modelo teórico sobre el que están asentados los modelos externos. Nivel Interno: Nivel más bajo en la abstracción. Describe la estructura almacenamiento físico de los datos, las estrategias de acceso a los datos, etc. Así mismo especifica todos los aspectos relacionados con el hardware, como por ejemplo dispositivos de memoria a usar (tamaño de páginas, número de éstas, tamaño de los buffers, etc.), técnicas de compresión de datos, criptografiado, etc. El modelo interno, que es único, corresponde a la implementación del modelo conceptual. Cuales son las fases de diseño de una BD? FASES DEL DISEÑO El diseño de una base de datos suele descomponerse en tres grandes fases diseño conceptual diseño lógico Diseño físico
El diseño conceptual parte de la especificación de requerimientos, y
produce como resultado el esquema conceptual (estructura de la BD).
El diseño lógico parte del esquema conceptual y genera el esquema
lógico. Un esquema lógico es la descripción de la estructura de la base de datos que puede procesarse por un SGBD.
El diseño físico toma como punto de partida el esquema lógico y como
resultado produce el esquema físico. Un esquema físico es una descripción de la implementación de la base de datos en memoria secundaria; describe las estructuras de almacenamiento y los métodos de acceso para acceder a los datos de una manera eficiente. Por ello, el diseño físico se genera para un SGBD y un entorno físico determinado.
Cuales son las etapas del diseño conceptual? La fase de diseño conceptual, puede subdividirse a su vez en dos etapas:
Etapa de análisis de requisitos:
En esta etapa se debe responder a la pregunta "¿Qúe representar?".
El objetivo es elaborar un esquema descriptivo de la realidad, en el que
se provean detalles de los datos a representar. Dicho esquema se obtiene mediante el estudio u observación del mundo real (estudio de las reglas de la empresa, entrevista a los usuarios, etc.). Aunque existen muchas respuestas sobre el modo de recoger dicha información, la más utilizada es el lenguaje natural que, aunque carece del formalismo que pueden infligir otros métodos, permite una mejor y más fácil comprensión de la información por parte del usuario, y le permite especificar los requisitos sin la intervención de formalismos. Este primer esquema percibido bruto (como lo llaman Benci y Rolland), se ira refinando sucesivamente, hasta llegar al esquema conceptual. Etapa de conceptualización:
En esta etapa se debe responder a la pregunta "¿Cómo
representar?".
En ella se transforma el esquema obtenido en la primera,
mediante refinaciones sucesivas. Se deberá obtener el esquema conceptual mediante una representación normalizada, que se apoye en un modelo de datos que cumpla determinadas propiedades (según Piattini y De Miguel): coherencia, plenitud, no redundancia, simplicidad, fidelidad, etc. El modelo que se estudiará es el Modelo Entidad/Relación (en adelante referido como ME/R o modelo E/R), que es el más utilizado hoy en día. Que es el modelo entidad relación o modelo E-R? Se basa en la representación de la información por medio de estructuras tipo tabla, y que almacenan información para una determinada entidad. Cada una de estas relaciones representa en sus columnas los valores significativos, es decir, de los que interesa conocer su valor, para cada entidad. Dichas columnas se denominan atributos, y para cada uno de ellos existirá un valor (cabe la posibilidad de que existan atributos en los que no aparezca ningún valor). Cada fila representa la información para cada ocurrencia de una determinada entidad. La información se descompondrá, como ya se ha dicho, en dar valores para cada uno de los atributos de la entidad. A dichas filas también se las denomina tuplas o registros. Cada atributo o conjunto de atributos que identifica unívocamente a cada tupla de la relación se denomina clave. Las claves se representan subrayando el/los atributo/s que forman parte de ella. Ejemplo Que es una entidad? 1- Entidades: Una entidad es "una persona, lugar, cosa, concepto o suceso, real o abstracto, de interés para la empresa" (ANSI 1977). En el modelo E/R, se representa por un rectángulo, con el nombre de dicha entidad escrito en la parte superior. Por ejemplo, lo siguiente representa la entidad automóvil: Que es un atributo? Un atributo es cualquier característica que describe a una entidad. Los atributos de una entidad se colocan dentro del rectángulo que representa dicha entidad, justo debajo del nombre de ésta. Por ejemplo, se puede decir que un automovil tiene las siguientes características: nº de mátricula, marca, modelo y color, lo cual se muestra en la siguiente figura. Que es una clave? La clave de una entidad es un atributo o conjunto de atributos de dicha entidad, que son capaces de identificar unívocamente una ocurrencia de una entidad. Esto implica que los valores de los atributos clave no se pueden repetir para dos ocurrencias de la misma entidad.
En nuestro ejemplo, seremos capaces de identificar de que
automóvil estamos hablando, con sólo conocer el valor del atributo matrícula, ya que no existe una misma matrícula para dos automóviles distintos. Los atributos marca, modelo o color no indentifican unívocamente una ocurrencia de la entidad, ya que pueden existir dos automóviles distintos de la misma marca, modelo o color. En el modelo E/R, un atributo clave se representa subrayando dicho atributo. Que es una relación? Una relación representa, como su propio nombre indica, una correspondencia entre dos entidades. Si tenemos dos entidades automóvil y persona, podemos tener una relación entre ellas. Dicha relación se puede establecer en ambos sentidos:
- una persona posee un automóvil, y
- un automóvil pertenece a una persona. Que es la Cardinalidad de una relación? La cardinalidad de una relación representa el número de ocurrencias que se pueden dar de una relación.
Puede ser de tres tipos:
Cardinalidad 1-1: cada ocurrencia de una entidad se relaciona con una ocurrencia de otra entidad. Ej: una persona posee un automóvil. Se representa de la siguiente forma: Cardinalidad 1-N: tambien llamada uno a muchos. Cada ocurrencia de una entidad puede relacionarse con varias ocurrencias de otra entidad. Ej: una persona posee varios automóviles. Se representa de la siguiente forma: Cardinalidad N-M: tambien llamada muchos a muchos. Cada ocurrencia de una entidad puede relacionarse con varias ocurrencias de otra entidad y viceversa. Ej: una persona posee varios automóviles y un automóvil puede pertenecer a varias personas. Se representa. Ejercicio El problema que nos planteamos es el siguiente. Supóngase que se desea informatizar una tienda de discos. Para ello se desean tener almacenados los nombres de todos los discos disponibles, además de sus cantantes y canciones. Así mismo se desean almacenar los clientes que han comprado en dicha tienda. Pues bien, empezaremos identificando las entidades, entendiendo por entidad un grupo de características que tienen entidad propia. Como primera entidad, podemos establecer los discos que se venden, ya que se desea conocer información de ellos, como puede ser un código que lo identifique dentro de la estantería. Por otro lado se desea almacenar todos los artistas que intervienen en los discos de nuestra tienda, y para cada uno de ellos se desea conocer su nombre y apellidos, por lo tanto ya tenemos identificada una segunda entidad. Además, se desea conocer todas las canciones que están disponibles en los discos, identificada cada una de ellas por un código de canción, y que además tendrán sus propias letras. Pues ya tenemos la tercera entidad. La cuarta estará formada por los clientes, de los cuales se desea almacenar su nombre, apellidos, dirección y teléfono, y que podrán estar identificados internamente por un código de cliente. Una vez establecidas las entidades, sólo nos queda relacionarlas. Podemos observar las siguientes relaciones:
Entre disco y canción: en un disco pueden aparecer
varias canciones, y cada canción puede estar en varios discos (N-M). Entre cantante y canción: un cantante puede componer varias canciones, y una canción puede estar compuesta por varios cantantes (N-M). Entre cliente y disco: un cliente puede comprar varios discos, pero un disco sólo puede ser comprado por un cliente 1-N. Cotidiano Vamos a plantearnos otros problema. Supongamos que se desea tener almacenados todos los datos de los profesores de una empresa dedicada a impartir cursos, asi como una breve descripción de éstos, y los alumnos a los cuales se les ha impartido. Empezamos identificando entidades. De un profesor se desea conocer su nombre y apellidos, dirección y despacho, por lo tanto establece una entidad. Otra entidad podría ser el alumno, del cual se desea conocer su nombre, apellidos, dirección y teléfono. Ni que decir tiene que el curso describe otra entidad, de la cual se desea conocer su descripción. Sin embargo, podemos recurrir a un procedimiento muy usual, denominado tipificación de estados, muy usado en el diseño conceptual, y que consiste en tener una entidad que tipifique los posibles estados que puede tomar un atributo. La principal ventaja de este procedimiento radica en que muchas veces supone un ahorro de espacio de almacenamiento (por ejemplo al identificar nombres de ciudades largas con un solo número) además de una estandarización de los datos almacenados (el estado sólo se almacena una vez). Por ejemplo podemos tipificar las ciudades, para lo cual creamos una nueva entidad ciudad, donde se almacenará un código y la descripción de la ciudad. Cuando almacenemos la ciudad de un alumno, sólo deberemos especificar el código de la ciudad.