Unidad I. Introducción
1.1. Definiciones y Conceptos de Base de Datos. Una base de datos es una colección organizada de información. Ésta contiene una colección de registros que puede buscar, ordenar y analizar rápidamente. 1.2. Sistemas de Base de Datos vs. Sistemas de procesamiento de archivos. Una manera de mantener información en un computador es hacerlo mediante un sistema de procesamiento de archivos típico o tradicional, que permitirá tener a los archivos estructurados y organizados, y poder realizar operaciones con ellos. Este sistema de archivos se mantiene mediante un sistema operativo convencional. Antes de la llegada de los sistemas de gestión de bases de datos (SGBD), las organizaciones normalmente han almacenado la información usando estos sistemas, pero mantener la información en estos sistemas de archivos tiene una serie de inconvenientes importantes:
Redundancia e inconsistencia de datos. Existen datos que pueden repetirse en diferentes lugares o archivos, esto provoca que, teniendo esa duplicidad de datos, el almacenamiento y el costo (en recursos del sistema) de acceso sean más altos. Inconsistencia de datos se presentará porque las copias de los mismos datos en diferentes archivos pueden no coincidir, pues si en un archivo se hicieron cambios de los datos, en los otros archivos donde estaban los mismos datos no son modificados estomáticamente.
Dificultad en el acceso a los datos. Cuando se requiere de ciertos datos diferentes de archivos diferentes, la obtención, consulta y modificación de los datos no puede hacerse directamente de forma práctica y eficiente. Tendrían que desarrollarse sistemas de recuperación de datos para realizar esa operación específica, o desarrollar un sistema de recuperación de datos para uso general y ajustarlo de acuerdo a las necesidades.
Aislamiento de datos. Debido a que los datos están dispersos en varios archivos, y los archivos pueden estar en diferentes formatos, es difícil escribir nuevos programas de aplicación para recuperar los datos apropiados.
Problemas de integridad. Los valores de los datos almacenados en la BD deben satisfacer ciertas restricciones de consistencias. Los desarrolladores hacen cumplir estas restricciones en el sistema añadiendo código apropiado en las diversas aplicaciones. Sin embargo, cuando se añaden nuevas restricciones es difícil cambiar los programas para hacer que se cumplan. Esto se complica cuando las restricciones implican diferentes elementos de datos de diferentes archivos.
Problemas de atomicidad. En muchas aplicaciones es crucial asegurar que, cuando ocurra un fallo y sea detectado, se restauren los datos a un estado de consistencia que existía antes del fallo. Es difícil asegurar esta propiedad en un sistema de archivos tradicional.
Anomalías en el acceso concurrente. en estos sistemas un entorno en el que permita a múltiples usuarios actualizar los datos de un mismo archivo simultáneamente puede dar lugar a datos inconsistentes o un estado incorrecto.
Problemas de seguridad. No todos los usuarios de un sistema de bases de datos deberían poder acceder a todos los datos. En estos sistemas es difícil garantizar tales restricciones de seguridad.
Estas dificultades, entre otras, han motivado el desarrollo de los sistemas de bases de datos para
resolver estos problemas.
1.3. Personas que se relacionan con una base de datos y tipos de usuarios de una Base de Datos,
DBA y funciones de una DBA.
Administrador de base de datos (DBA): Define los esquemas de la base de datos; estructuras y
esquemas de los 3 niveles. Más que una persona suele ser un grupo de personas.
*Programador de aplicaciones: Utilizando un lenguaje de alto nivel y llamadas en DML crean
programas para usar la base de datos.
*Usuarios casuales: Son usuarios que tienen conocimientos de los DL, hacen uso de los DML de
modo interactivo (es decir a través del procesador de consultas).
*Usuarios ingenuos: Emplean el SBD sin conocimientos de informática, es decir usan los
programas de aplicación.
*Administrador de Base de Datos: Denominado por sus siglas como: DBA, Database
Administrador. Es la persona encargada y que tiene el control total sobre el sistema de base de
datos, sus funciones principales son:
*Definición de esquema: Es el esquema original de la base de datos se crea escribiendo un
conjunto de definiciones que son traducidas por el compilador de DDL a un conjunto de tablas que
son almacenadas permanentemente en el diccionario de datos.
*Definición de la estructura de almacenamiento del método de acceso: Estructuras de
almacenamiento y de acceso adecuados se crean escribiendo un conjunto de definiciones que son
traducidas por e compilador del lenguaje de almacenamiento y definición de datos.
*Concesión de autorización para el acceso a los datos: Permite al administrador de la base de
datos regular las partes de las bases de datos que van a ser accedidas por varios usuarios.
*Especificación de limitantes de integridad: Es una serie de restricciones que se encuentran
almacenados en una estructura especial del sistema que es consultada por el gestor de base de
datos cada vez que se realice una actualización al sistema.
1.4. Niveles de Abstracción, método general para realizar la abstracción del mundo real.
Uno de los objetivos principales de una base de datos es proporcionar a los usuarios una visión
abstracta de los datos. Es decir, el sistema oculta ciertos detalles relativos a la forma en que se
almacenan y mantienen los datos. Esto se logra definiendo tres niveles de abstracción en los que
puede considerarse la base de datos: físico, conceptual y de visión.
*En el nivel físico se describe cómo se almacenan los datos en cuanto a detalles de estructuras de
datos complejas del nivel más bajo.
*En el nivel conceptual, que es el siguiente nivel más alto de abstracción, se describe cuáles son
los datos reales que están almacenados en la base de datos y qué relaciones existen entre los
datos.
*El nivel de visión es más alto, en el cual se describe solo una parte de la base de datos y se
presentan vistas diferentes de la misma base de datos a los usuarios.
1.5. Instancias y Esquemas.
*Instancia.
Es el estado que presenta una base de datos en un tiempo dado. Veámoslo como una fotografía
que tomamos de la base de datos en un tiempo t, después de que transcurre el tiempo t la base
de datos ya no es la misma.
*Esquema.
Es la descripción lógica de la base de datos, proporciona los nombres de las entidades y sus
atributos especificando las relaciones que existen entre ellos. Es un banco en el que se inscriben
los valores que irán formando cada uno de los atributos. El esquema no cambia los que varían son
los datos y con esto tenemos una nueva instancia.
1.6. Independencias lógica y física de datos.
*Independencia lógica: se puede cambiar la estructura de datos almacenados, sin afectarlos.
Además de cambiarse los programas aplicativos que acceden a las bases de datos sin que esto
altere a la base de datos.
*Independencia física: las aplicaciones permanecen inalteradas sin importar los cambios
efectuados en el almacenamiento o en los métodos de acceso.
1.7. Modelos de Base de Datos.
Existen fundamentalmente tres alternativas disponibles para diseñar las bases de datos:
el modelo jerárquico, el modelo de red y el modelo relacional.
a)._El modelo jerárquico
La forma de esquematizar la información se realiza a través de representaciones jerárquicas o
relaciones de padre/hijo, de manera similar a la estructura de un árbol. Así, el modelo jerárquico
puede representar dos tipos de relaciones entre los datos: relaciones de uno a uno y relaciones de
uno a muchos.
En el primer tipo se dice que existe una relación de uno a uno si el padre de la estructura de
información tiene un solo hijo y viceversa, si el hijo tiene solamente un padre. En el segundo tipo
se dice que la relación es de uno a muchos si el padre tiene más de un hijo, aunque cada hijo tenga
un solo padre.
Inconveniente del modelo jerárquico:
Relación maestro-alumno, donde un maestro tiene varios alumnos, pero un alumno también tiene
varios maestros, uno para cada clase. En este caso, si la información estuviera representada en
forma jerárquica donde el padre es el maestro y el alumno es el hijo, la información del alumno
tendrá que duplicarse para cada uno de los maestros.
Otra dificultad que presenta el modelo jerárquico de representación de datos es respecto a las
bajas. En este caso, si se desea dar de baja a un padre, esto necesariamente implicará dar de baja
a todos y cada uno de los hijos que dependen de este padre.
b)._El modelo de red
El modelo de red evita esta redundancia en la información, a través de la incorporación de un tipo de registro denominado el conector, que en este caso pueden ser las calificaciones que obtuvieron
los alumnos de cada profesor. La dificultad surge al manejar las conexiones o ligas entre los registros y sus correspondientes registros conectores.
c)._El modelo relacional
Se está empleando con más frecuencia en la práctica, debido el rápido entendimiento por parte de los usuarios que no tienen conocimientos profundos sobre Sistemas de Bases de Datos y a las ventajas que ofrece sobre los dos modelos anteriores. En este modelo toda la información se representa a través de arreglos bidimensionales o tablas. Estas operaciones básicas son:
Seleccionar renglones de alguna tabla (SELECT) Seleccionar columnas de alguna tabla (PROJECT) Unir o juntar información de varias tablas (JOIN)
Unidad II. DBMS
2.1. Definición y objetivos de un DBMS El software que controla la organización, almacenamiento, recuperación, seguridad e integridad de los datos en una base de datos. Acepta solicitudes de la aplicación e indica al sistema operativo para transferir los datos apropiados. Los principales proveedores de DBMS son Oracle, IBM, Microsoft y Sybase. Los principales objetivos de un DBMS son los siguientes:
1. Independencia lógica y física de los datos: se refiere a la capacidad de modificar una definición de esquema en un nivel de la arquitectura sin que esta modificación afecte al nivel inmediatamente superior. Para ello un registro externo en un esquema externo no tiene por qué ser igual a su registro correspondiente en el esquema conceptual.6
2. Redundancia mínima: se trata de usar la base de datos como repositorio común de datos para distintas aplicaciones.
3. Acceso concurrente por parte de múltiples usuarios: control de concurrencia mediante técnicas de bloqueo o cerrado de datos accedidos.
4. Distribución espacial de los datos: la independencia lógica y física facilita la posibilidad de sistemas de bases de datos distribuidas. Los datos pueden encontrarse en otra habitación, otro edificio e incluso otro país. El usuario no tiene por qué preocuparse de la localización espacial de los datos a los que accede.
5. Integridad de los datos: se refiere a las medidas de seguridad que impiden que se introduzcan datos erróneos. Esto puede suceder tanto por motivos físicos (defectos de hardware, actualización incompleta debido a causas externas), como de operación (introducción de datos incoherentes).
6. Consultas complejas optimizadas: la optimización de consultas permite la rápida ejecución de las mismas.
7. Seguridad de acceso y auditoría: se refiere al derecho de acceso a los datos contenidos en la base de datos por parte de personas y organismos. El sistema de auditoría mantiene el control de acceso a la base de datos, con el objeto de saber qué o quién realizó una determinada modificación y en qué momento.
8. Respaldo y recuperación: se refiere a la capacidad de un sistema de base de datos de recuperar su estado en un momento previo a la pérdida de datos.
9. Acceso a través de lenguajes de programación estándar: se refiere a la posibilidad ya mencionada de acceder a los datos de una base de datos mediante lenguajes de programación ajenos al sistema de base de datos propiamente dicho.
2.2. Funciones de un DBMS 1.− Definición de Datos: Debe ser capaz de aceptar definiciones de datos (esquema externo, conceptual Interno y todas las correspondencias asociadas. en versión Fuente) y convertirla en una versión de objeto apropiada. Debe incluir componentes de procesadores de lenguajes para cada uno de los diversos lenguajes de definición de datos, además debe tener las definiciones en DBL (Lenguaje Definición de datos) para poder interpretar y resolver las solicitudes.
2.− Manipulación de Datos: Debe atender las solicitudes del usuario tales como eliminación, modificación, extracción etc., es decir, debe incluir un componente procesador de lenguajes de manipulación de datos (DML). En general las solicitudes en DML pueden ser planificadas y no planificadas. 3.− SEGURIDAD E INTEGRIDAD DE LOS DATOS: El DBMS debe supervisar las solicitudes de los usuarios y rechazar los intentos de violar las necesidades de seguridad e integridad de los datos definidos para el DBA. 4.− RECUPERACIÓN Y CONCURRENCIA DE LOS DATOS: El DBMS debe cuidar el cumplimiento de ciertos controles de recuperación y concurrencia. El Administrador de transacciones actúa en caso de que el DBMS no funciones. 5.− DICCIONARIO DE DATOS: El DBMS debiera incluir una función de diccionarios de datos (Meta _datos), se puede decir que es una base de Datos del sistema y no del usuario cuyo contenido pueden considerarse como Datos acerca de los Datos que en el fondo son definiciones de objetos de datos y otros objetos del sistema. 6.− DESEMPEÑO: El DBMS debiera ejecutar todas las funciones anteriores en la forma más eficiente. 7.− ADMINISTRADOR DE COMUNICACIONES DE DATOS: Las solicitudes de un usuario final son dirigidas a la Base de datos donde son transmitidas en forma de mensajes de comunicación o a la inversa las respuestas al usuario son tomados como mensajes del mismo tipo, todas las transmisiones se efectúan bajo el control de otros grupos de programas llamados administrador de comunicación de datos el cual no forma parte del DBMS, sino que es un programa autónomo pero debe trabajar en forma conjunta con el DBMS para poder satisfacer los requerimientos de los usuarios. 2.3. Partes que conforman un DBMS
Data definition language (DDL): Define elementos de los datos en la base de datos
Data manipulation language (DML): Manipula datos para aplicaciones
Data dictionary: Definiciones de todas las variables en la base 2.4. Lenguajes de un DBMS (DDL, DML) En la estructura básica de un Sistema Manejador de Base de Datos se enuncian dos lenguajes que permiten trabajar sobre la base de datos. Estos lenguajes estándar son: *DDL (Data Definition language): Lenguaje de Definición de Datos. Por medio de este el DBMS identifica las descripciones de los elementos de los esquemas y almacena la descripción del esquema en el catálogo del DBMS. Por medio de este el DBMS especifica el esquema conceptual e interno (Base de datos Almacenada).
*SDL (Store Definition language): Lenguaje de definición de almacenamiento. Es utilizado por el DBMS para especificar el esquema interno que corresponde a la Base de Datos Almacenada. *VDL (View Definition language): Lenguaje de Definición de Vistas. Es utilizado por el DBMS para especificar las vistas del usuario y sus correspondencias con el esquema conceptual. En las Bases de Datos Relacionales, el SQL, representa una combinación de los anteriores. *DML (Data Manipulation language): Lenguaje de Manipulación de Datos. Permite la manipulación de las operaciones de Inserción, Eliminación y Modificación. Tipos de DML's: *De alto Nivel o No por procedimientos: SQL. *De bajo Nivel o por procedimientos. 2.5. Introducción al lenguaje de consulta SQL (historia, comandos básicos) La historia de SQL (que se pronuncia deletreando en inglés las letras que lo componen, es decir "ese-cu-ele" y no "siquel" como se oye a menudo) empieza en 1974 con la definición, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigación de IBM, de un lenguaje para la especificación de las características de las bases de datos que adoptaban el modelo relacional. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se implementó en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. Las experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una revisión del lenguaje (SEQUEL/2), que a partir de ese momento cambió de nombre por motivos legales, convirtiéndose en SQL. El prototipo (System R), basado en este lenguaje, se adoptó y utilizó internamente en IBM y lo adoptaron algunos de sus clientes elegidos. Gracias al éxito de este sistema, que no estaba todavía comercializado, también otras compañías empezaron a desarrollar sus productos relacionales basados en SQL. A partir de 1981, IBM comenzó a entregar sus productos relacionales y en 1983 empezó a vender DB2. En el curso de los años ochenta, numerosas compañías (por ejemplo Oracle y Sybase, sólo por citar algunos) comercializaron productos basados en SQL, que se convierte en el estándar industrial de hecho por lo que respecta a las bases de datos relacionales. En 1986, el ANSI adoptó SQL (substancialmente adoptó el dialecto SQL de IBM) como estándar para los lenguajes relacionales y en 1987 se transformó en estándar ISO. Esta versión del estándar va con el nombre de SQL/86. En los años siguientes, éste ha sufrido diversas revisiones que han conducido primero a la versión SQL/89 y, posteriormente, a la actual SQL/92. El hecho de tener un estándar definido por un lenguaje para bases de datos relacionales abre potencialmente el camino a la intercomunicabilidad entre todos los productos que se basan en él. Desde el punto de vista práctico, por desgracia las cosas fueron de otro modo. Efectivamente, en general cada productor adopta e implementa en la propia base de datos sólo el corazón del lenguaje SQL (el así llamado Entry level o al máximo el Intermediate level), extendiéndolo de manera individual según la propia visión que cada cual tenga del mundo de las bases de datos.
Actualmente, está en marcha un proceso de revisión del lenguaje por parte de los comités ANSI e ISO, que debería terminar en la definición de lo que en este momento se conoce como SQL3. Las características principales de esta nueva encarnación de SQL deberían ser su transformación en un lenguaje stand-alone (mientras ahora se usa como lenguaje hospedado en otros lenguajes) y la introducción de nuevos tipos de datos más complejos que permitan, por ejemplo, el tratamiento de datos multimediales. Comandos Existen dos tipos de comandos SQL:
o DLL que permiten crear y definir nuevas bases de datos, campos e índices. o DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de
datos.
Comandos DLL
Comando Descripción
CREATE Utilizado para crear nuevas tablas, campos e índices
DROP Empleado para eliminar tablas e índices
ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos.
Comandos DML
Comando Descripción
SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado
INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación.
UPDATE Utilizado para modificar los valores de los campos y registros especificados
DELETE Utilizado para eliminar registros de una tabla de una base de datos
Cláusulas Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular.
Cláusula Descripción
FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros
WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar
GROUP BY Utilizada para separar los registros seleccionados en grupos específicos
HAVING Utilizada para expresar la condición que debe satisfacer cada grupo
ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico
Operadores Lógicos
Operador Uso
AND Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas.
OR Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta.
NOT Negación lógica. Devuelve el valor contrario de la expresión.
Operadores de Comparación
Operador Uso
< Menor que
> Mayor que
<> Distinto de
<= Menor o igual que
>= Mayor o igual que
= Igual que
BETWEEN Utilizado para especificar un intervalo de valores.
LIKE Utilizado en la comparación de un modelo
In Utilizado para especificar registros de una base de datos
Funciones de Agregado Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para devolver un único valor que se aplica a un grupo de registros.
Funciónn Descripción
AVG Utilizada para calcular el promedio de los valores de un campo determinado
COUNT Utilizada para devolver el número de registros de la selección
SUM Utilizada para devolver la suma de todos los valores de un campo determinado
MAX Utilizada para devolver el valor más alto de un campo especificado
MIN Utilizada para devolver el valor más bajo de un campo especificado
Orden de ejecución de los comandos Dada una sentencia SQL de selección que incluye todas las posibles cláusulas, el orden de ejecución de las mismas es el siguiente:
1. Cláusula FROM 2. Cláusula WHERE 3. Cláusula GROUP BY 4. Cláusula HAVING 5. Cláusula SELECT 6. Cláusula ORDER BY
Unidad III Modelado Relacional
Unidad III. Modelado Relacional 3.1. Modulación de una Base de Datos Los modelos de datos aportan la base conceptual para diseñar aplicaciones que hacen un uso intensivo de datos, así como la base formal para las herramientas y técnicas empleadas en el desarrollo y uso de sistemas de información. Con respecto al diseño de bases de datos, el modelado de datos puede ser descrito así (Brodie 1984:20): "dados los requerimientos de información y proceso de una aplicación de uso intensivo de datos (por ejemplo, un sistema de información), construir una representación de la aplicación que capture las propiedades estáticas y dinámicas requeridas para dar soporte a los procesos deseados (por ejemplo, transacciones y consultas). Además de capturar las necesidades dadas en el momento de la etapa de diseño, la representación debe ser capaz de dar cabida a eventuales futuros requerimientos".
3.1.1. Modelo Entidad-Relación
Cuando se utiliza una base de datos para gestionar información, se está plasmando una parte del mundo real en una serie de tablas, registros y campos ubicados en un ordenador; creándose un modelo parcial de la realidad. Antes de crear físicamente estas tablas en el ordenador se debe realizar un modelo de datos. Se suele cometer el error de ir creando nuevas tablas a medida que se van necesitando, haciendo así el modelo de datos y la construcción física de las tablas simultáneamente. El resultado de esto acaba siendo un sistema de información parcheado, con datos dispersos que terminan por no cumplir adecuadamente los requisitos necesarios. Entidades y Relaciones El modelo de datos más extendido es el denominado ENTIDAD/RELACIÓN (E/R) En el modelo E/R se parte de una situación real a partir de la cual se definen entidades y relaciones entre dichas entidades:
Entidad.- Objeto del mundo real sobre el que queremos almacenar información (Ej: una persona). Las entidades están compuestas de atributos que son los datos que definen el objeto (para la entidad persona serían DNI, nombre, apellidos, dirección,...). De entre los atributos habrá uno o un conjunto de ellos que no se repite; a este atributo o conjunto de atributos se le llama clave de la entidad, (para la entidad persona una clave seria DNI). En toda entidad siempre hay al menos una clave que en el peor de los casos estará formada por todos los atributos de la tabla. Ya que pueden haber varias claves y necesitamos elegir una, lo haremos atendiendo a estas normas:
Que sea única. Que se tenga pleno conocimiento de ella.- ¿Por qué en las empresas se asigna a cada
cliente un número de cliente?. Que sea mínima, ya que será muy utilizada por el gestor de base de datos.
Relación.- Asociación entre entidades, sin existencia propia en el mundo real que estamos modelando, pero necesaria para reflejar las interacciones existentes entre entidades. Las relaciones pueden ser de tres tipos:
Relaciones 1-1.- Las entidades que intervienen en la relación se asocian una a una (Ej: la entidad HOMBRE, la entidad MUJER y entre ellos la relación MATRIMONIO).
Relaciones 1-n.- Una ocurrencia de una entidad está asociada con muchas (n) de otra (Ej: la entidad EMPRESA, la entidad TRABAJADOR y entre ellos la relación TRABAJAR-EN).
Relaciones n-n.-Cada ocurrencia, en cualquiera de las dos entidades de la relación, puede estar asociada con muchas (n) de la otra y viceversa (Ej: la entidad ALUMNO, la entidad EMPRESA y entre ellos la relación MATRÍCULA).
Representación gráfica de Entidades y Relaciones Para asimilar fácilmente un diseño de datos cuando se emplea el modelo E/R se utilizan los siguientes elementos gráficos:
La utilización de estos elementos dará como resultado lo que se denomina el esquema entidad-relación de la base de datos. Los ejemplos que se incluyen en el apartado anterior, gráficamente quedarían como sigue:
3.1.2. Definición de dato, entidad y conjunto de entidades, atributos y sus dominios *Dato: El dato es una representación simbólica (numérica, alfabética, algorítmica, entre otros.), un atributo o característica de una entidad. Los datos describen hechos empíricos, sucesos y entidades. *Conjunto de Entidades: es un contenedor lógico para las instancias de un tipo de entidad y las instancias de cualquier tipo que se deriven de ese tipo de entidad. *Atributos: Los atributos representan las propiedades pertinentes o características de una entidad. En el modelo físico, se representan atributos como columnas de una tabla. Hay dos tipos de atributos, la tabla debajo de describe estos tipos:
Atributo Descripción
identificadores Un atributo que ayuda a identificar a una entidad son los atributos de la llave primaria.
Descriptor Un atributo no-llave. Siguiendo las reglas de normalización, si un atributo no es parte de la llave primaria, entonces su único propósito es describir las características de la entidad.
*Dominio: Un dominio describe un conjunto de posibles valores para cierto atributo. Como un dominio restringe los valores del atributo, puede ser considerado como una restricción. Matemáticamente, atribuir un dominio a un atributo significa "todos los valores de este atributo deben de ser elementos del conjunto especificado".
Distintos tipos de dominios son: enteros, cadenas de texto, fecha,no procedurales etc.
3.1.3. Definición de relación y conjunto de relaciones, relaciones binarias, ternarias (aridad)
*Relación: una relación o vínculo entre dos o más entidades describe alguna interacción entre las mismas. Por ejemplo, una relación entre una entidad "Empleado" y una entidad "Sector" podría ser "trabaja_en", porque el empleado trabaja en un sector determinado. *Conjunto de relaciones: es un grupo de relaciones del mismo tipo. *Relaciones Binarias: Las relaciones binarias se utilizan en muchos ramas de las matemáticas para modelar conceptos como "es mayor que", "es igual a", y "se divide" adentro aritmética, "a "adentro geometría, "está adyacente" a adentro teoría de gráfico, y muchos más. El concepto todo-importante de función se define comoclase especial de relación binaria. Las relaciones binarias son también muy usadas adentro informática, especialmente dentro de modelo emparentado para bases de datos. Una relación binaria es el caso especial n = 2 de n- ary relación, es decir, un sistema de n- tuples donde jth componente de cada uno n- el tuple se toma de jth dominio Xj de la relación. n- la relación ary entre elementos de un solo sistema reputa.
*Ternarias(aridad):Una relación ternaria relaciona tres tipos y es principalmente teórica
. *Aridad: El número de columnas es llamado aridad o grado. 3.1.4. Cardinalidad de mapeo
Es aquella mediante la cual puede especificarse la cantidad de entidades que podrán asociarse mediante una relación. La CARDINALIDAD del mapeo se aplica generalmente sobre dos conjuntos de entidades. Las cardinalidades existente para dos conjuntos de entidades A y B y conjunto de relaciones R
pueden ser:
1. UNA A UNA: Una entidad de A puede asociarse únicamente con una entidad de B. 2. UNA A MUCHAS: Una entidad de a puede asociarse con cualquier cantidad de entidades de
B. 3. MUCHAS A UNA: Cualquier cantidad de entidades de A puede asociarse con una entidad
de B. 4. MUCHAS A MUCHAS: Cualquier cantidad de entidades de a puede asociarse con cualquier
cantidad de entidades en B.
Ejemplo:
UNA A UNA UNA A MUCHAS MUCHAS A UNA MUCHAS A MUCHAS
Alumnos Tesis
Carreras Alumnos
Alumnos Carreras
Alumnos Materias
3.1.5. Dependencia por existencia Nos permiten definir que un conjunto de entidades esta condicionado a la existencia de otro un ejemplo de este condicionamiento se da entre una entidad alumno y la entidad calificación. A esta limitante se le denomina dependencia por existencia. Si una entidad Y requiere de una
entidad X para existir se dice que Y es dependiente por existencia de X; esto implica que si
eliminamos a la entidad X; deberá eliminarse la entidad Y.
Para el caso anterior, se nombrara a X como la entidad dominante, y a Y como entidad subordinada. 3.1.6. Llaves de acceso y tipos
Entendemos como una llave al medio que nos permite identificar en forma unívoca (única e
inequívoca) a una entidad dentro de un conjunto de entidades.
Existen diversas categorías que permiten clasificar los tipos de llaves a utilizara: a) SUPER -LLAVE .- Es un conjunto de atributos mediante los cuales es posible reconocer a una entidad. Este tipo de llaves contiene comúnmente atributos ajenos; es decir; atributos que no son indispensables para llevar a cabo el reconocimiento del registro. b) LLAVE CANDIDATO.- Son aquellas super llaves que no contienen atributos ajenos; es decir, aquellos conjuntos de atributos que no tienen un subconjunto menor que pueda considerarse como super llave. c) LLAVE PRIMARIA.- Es aquella llave que el diseñador de la base de datos selecciona entra las llaves candidatos encontradas.
3.1.7. Diagrama E-R y su simbología
Son esquemas que nos permitan representar conjunto de entidades y sus relaciones mediante la
siguiente simbología.
* Conjunto de entidades o relación con sus atributos
* Conjunto entidades con relaciones * Cada elemento debe etiquetarse con su nombre.
3.2. Reglas de integridad y restricciones de asignación
*Reglas de Integridad: La integridad en una base de datos se refiere a la corrección y exactitud de
la información contenida.
Hay tres reglas de integridad muy importantes que son restricciones que se deben cumplir en todas las bases de datos relacionales y en todos sus estados o instancias (las reglas se deben cumplir todo el tiempo). Estas reglas son la de integridad de entidades, restricciones de dominio y la de integridad referencial.
Reglas de Integridad - Dominio Un Dominio de valores posibles puede estar asociado a cada atributo. Los límites de Dominio son la forma más elemental de restricciones de Integridad. Son fáciles de probar en el sistema siempre que se introduce un nuevo dato en el sistema. Una definición bien adecuada de restricciones de dominio no sólo nos permite probar valores insertados en la base de datos. También nos permite probar consultas para asegurarnos de que las comparaciones que se hacen tienen sentido. Reglas de Integridad - Relación Las reglas de Integridad de relación son restricciones que se deben cumplir en todas las bases de datos relacionales y en todos sus estados o instancias, es decir, se deben cumplir todo el tiempo. Existen básicamente dos reglas de Integridad asociadas con el modelo relacional: la Integridad de Entidad y la Integridad Referencial. Estas dos reglas son generales y tienen relación con las llaves primarias y foráneas. Integridad de Entidad Las restricciones de entidades aseguran la integridad de las entidades que son modeladas por el sistema. En el nivel más simple, la existencia de una clave principal es una restricción de entidad que impone la regla "cada entidad debe estar identificada de forma única". En esta no está permitido que algún componente de la clave primaria acepte valores nulos. Las razones de esta regla son:
Las tuplas en las relaciones base representan entidades en la realidad. Las entidades en la realidad son identificables por definición. Sus contrapartes en la base de datos también deben ser identificables. Los valores de la clave primaria sirven como identificadores en la base de datos. Los valores de clave primaria no pueden ser nulos.
*Restriccion de asignación: Una restricción es una condición que obliga el cumplimiento de ciertas condiciones en la base de datos. Algunas no son determinadas por los usuarios, sino que son inherentemente definidas por el simple hecho de que la base de datos sea relacional. Algunas otras restricciones las puede definir el usuario, por ejemplo, usar un campo con valores enteros entre 1 y 10. Las restricciones proveen un método de implementar reglas en la base de datos. Las restricciones restringen los datos que pueden ser almacenados en las tablas. Usualmente se definen usando expresiones que dan como resultado un valor booleano, indicando si los datos satisfacen la restricción o no.
Las restricciones no son parte formal del modelo relacional, pero son incluidas porque juegan el rol de organizar mejor los datos. Las restricciones son muy discutidas junto con los conceptos relacionales.
Unidad IV. Normalización
Normalización en Base de Datos Relacionales
Consiste en 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.
Evitar problemas de actualización de los datos en las tablas.
Proteger la integridad de los datos.
En el modelo relacional es frecuente llamar tabla a una relación, aunque 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.
Normalizar es ordenar las relaciones que existen entre objetos, elementos de un grupo, datos de
una base de datos en función de unas determinadas características que cada uno de ellos tiene en
común.
La normalización de bases de datos relacional consiste en definir las reglas que determinan las
dependencias entre los datos de una base de datos relacional (BDR). Si definimos esta relación o
dependencia entre los elementos de una determinada base de datos de la manera más sencilla
posible, conseguiremos que la cantidad de espacio necesario para guardar los datos sea el menor
posible y la facilidad para actualizar la relación sea la mayor posible. Es decir, optimizaremos su
funcionamiento.
Dependencias Funcionales
Una dependencia funcional, denotada por X -> Y, entre dos conjuntos de atributos X y Y que son
subconjuntos de R (R ={A1, A2,...,A3}) especifica una restricción sobre las posibles tuplas que
podrían formar un ejemplar de relación r de R. La restricción dice que, para cualesquier dos tuplas
t1 y t2 de r tales que t1[X] = t2[X], debemos tener también t1[Y] = t2[Y]. Esto significa que los
valores componentes de Y de una tupla de r dependen de los valores del componente X, o están
determinados por ellos; o bien, que los valores del componente X de una tupla determinan de
manera única (o funcionalmente) los valores del componente Y. También decimos que hay una
dependencia funcional de X a Y o que Y depende funcionalmente de X.
Sean a y b atributos de una misma tabla o relación T. Se dice que b es funcionalmente dependiente
de a y se denota T.a -> T.b o bien simplemente a -> b si todo posible valor de a tiene asociado un
único valor de b, o lo que es lo mismo, en todas las tuplas de T en las que el atributo a toma el
mismo valor v1, el atributo b toma también un mismo valor v2. Claramente a -> b no implica b ->
a. Pueden repetirse los valores del atributo b para distintos valores de a. Un mismo
atributo puede determinar funcionalmente a varios atributos lo cual se denota a -> (b1, b2, ...).
Puede darse una dependencia funcional mutua: a -> b y b -> a o lo que es lo mismo a <-> b. Nóse
que el concepto de dependencia funcional no depende de la extensión concreta (contenido) que
en un momento determinado tenga la tabla sino de cualquier posible extensión que pudiera tener.
Los atributos a y b pueden ser simples o compuestos (formados por la agregación de varios
atributos). Los atributos funcionalmente dependientes pueden o no formar parte de la clave
primaria de la tabla, de una clave altenativa o de una clave ajena de otra tabla.
El atributo b es funcionalmente dependiente de forma completa de a si a -> b y b no depende
funcionalmente de ningún subconjunto de atributos de a. Si a es un atributo simple y a -> b
entonces la dependencia funcional es con seguridad completa.
Las dependencias funcionales verifican una serie de propiedades denominadas axiomas de
Armstrong:
Reflexividad. A partir de cualquier atributo o conjunto de atributos siempre puede deducirse él
mismo. Dependencia trivial: x -> x.
Aumentatividad. Si x -> y entonces x+z -> y. Así se puede aumentar trivialmente el antecedente de
una dependencia. Ejemplo: si con el dni se determina el nombre de una persona, entonces con el
dni más la dirección también se determina el nombre.
Proyectividad. Si x -> y+z entonces x -> y. Ejemplo: si a partir del dni es posible deducir el nombre
y la dirección de una persona, entonces con el dni es posible determinar el nombre.
Aditividad. Si x -> y y z -> w entonces x+z -> y+w. Ejemplo: si con el dni se determina el nombre y
con la dirección el teléfono de una persona, entonces con el dni y la dirección podrá determinarse
el nombre y el teléfono.
Transitividad o enlace de dependencias funcionales. Si x -> y e y -> z entonces x -> z. Ejemplo: si
con el dni puede determinarse el código de la provincia de residencia de una persona y con éste
código puede determinarse el nombre de la provincia, entonces con el dni puede determinarse el
nombre de la provincia. Éste es el mecanismo básico de funcionamiento del enlace entre tablas a
partir de claves ajenas.
Reglas de normalización
El punto de partida del proceso de normalización es un conjunto de tablas con sus atributos, el
denominado esquema relacional. Se pretende mejorar dicho esquema de datos. Se dice que una
tabla está en una determinada forma normal si satisface un cierto número de restricciones
impuestas por la correspondiente regla de normalización. La aplicación de una de estas reglas a un
esquema relacional produce un nuevo esquema relacional en el que no se ha introducido ningún
nuevo atributo.
Un esquema relacional se compone de una serie de ternas T(A,D) donde T es el nombre de una
tabla, A el conjunto de los atributos de esa tabla y D el conjunto de dependencias funcionales que
existen entre esos atributos.
Si una tabla no satisface una determinada regla de normalización, se procede a descomponerla en
otras dos nuevas que sí las satisfagan. Esto usualmente requiere decidir qué atributos de la tabla
original van a residir en una u otra de las nuevas tablas. La descomposición tiene que conservar
dos propiedades fundamentales:
1.No pérdida de información. Sea T(A,D) que se divide en T1(A1,D1) y T2(A2,D2). A partir de los
atributos comunes en ambos esquemas es posible determinar los atributos de T1 no presentes en
T2 (es decir, el conjunto A1 - A2) o bien los atributos de T2 no presentes en T1 (el conjunto
diferencia A2 - A1). Desde cualquier esquema se consigue recuperar los datos del otro mediante
un mecanismo de clave ajena que permite reconstituir el esquema original de partida. Expresado
mediante dependencias funcionales, la intersección de los conjuntos de atributos A1 y A2
debe determinar funcionalmente la diferencia de los conjuntos de atributos A1 - A2 o bien A2 - A1.
2.No pérdida de dependencias funcionales.
La normalización consiste pues en descomponer los esquemas relacionales (tablas) en otros
equivalentes (puede obtenerse el original a partir de los otros) de manera que se verifiquen unas
determinadas reglas de normalización. Evidentemente las reglas de normalización imponen una
serie de restricciones en lo relativo a la existencia de determinados esquemas
relacionales. Según se avance en el cumplimiento de reglas y restricciones se alcanzará una mayor
forma normal. Existen cinco formas normales hacia las cuales puede conducir el proceso de
normalización de forma incremental más una forma normal independiente de las otras.
Un esquema relacional que satisface todas las restricciones impuestas por la tercera forma normal
se considera de buena calidad aunque es mejor que satisfaga una interesante propiedad. La
verificación de una forma normal implica el cumplimiento de todas las formas normales anteriores.
La primera forma normal es de cumplimiento obligatorio para que exista siquiera un esquema
relacional propiamente formado
FN1. Se pretende garantizar la no existencia de grupos repetitivos. Un grupo repetitivo es un
conjunto de atributos de igual semántica en el problema y dominio, que toman valores distintos
para la misma clave. Cualquier esquema que tenga claves correctas está seguro en FN1.
FN2.Si FN1 y cada atributo de la tabla que no forma parte de la clave depende funcionalmente de
forma completa de la clave primaria. Es decir, depende de toda la clave y no de ningún subconjunto
de ella. Se pretende garantizar una correcta elección de claves y eliminar redundancias. Si la clave
está formada por un único atributo entonces ese esquema estará seguro en segunda forma
normal.
FN3. Si FN2 y cada atributo no primo de la tabla no depende funcionalmente de forma transitiva
de la clave primaria.FNBC (Forma Normal de Boyce-Codd). Se basa en el concepto de determinante
funcional: uno o varios atributos de una tabla de los cuales dependen funcionalmente de forma
completa algún otro atributo de la misma tabla. Una relación está en FNBC si FN1 y cada
determinante funcional es una clave candidata de la tabla. Así se garantiza que se han elegido bien
las claves al no existir dependencias funcionales entre atributos que no son clave. Cada vez que
se verifica una dependencia funcional a -> b entonces a es clave primaria o alterna con seguridad.
Todas las dependencias funcionales cumplen que en su parte izquierda solo aparecen atributos
que son parte de una clave candidata. Esta forma normal es más restrictiva que la tercera y tiene
la interesante propiedad de que su cumplimiento implica la satisfacción de FN3 o sea que FNBC ->
FN3.
Forma norma de boyce-cood(FNCB)
Es una de las formas normales más deseables que se pueden obtener. Es un esquema de relación R esta en FNBC respecto a un conjunto de dependencias funcionales F si , para todas las dependencias funcionales de F+ de la forma α → ß, donde α → R y B→ R, se cumple al menos una de las siguientes condiciones:
α → es una dependencia funcional trivial α es una superclave del esquema R
Un diseño de base de datos esta en FNBC si cada miembro del conjunto de esquemas de relación que constituye el diseño esta en FNBC.
Top Related