Unidad 1: panorama general de la administración de base de datos
Un sistema de bases de datos es básicamente un sistema computarizado para llevar registros.
Es posible considerar a la propia base de datos como una especie de armario electrónico para
archivar; es decir, es un depósito o contenedor de una colección de archivos de datos computarizados.
Los usuarios del sistema pueden realizar una variedad de operaciones sobre dichos archivos.
por ejemplo:
■ Agregar nuevos archivos vacíos a la base de datos;
■ Insertar datos dentro de los archivos existentes;
■ Recuperar datos de los archivos existentes;
■ Modificar datos en archivos existentes;
■ Eliminar datos de los archivos existentes;
■ Eliminar archivos existentes de la base de datos.
Un sistema de base de datos comprende cuatro componentes principales: datos, hardware,
software y usuarios.
Datos
Un sistema de un solo usuario
es aquel en el que sólo un usuario puede tener acceso a la base de datos en un momento dado;
un sistema multiusuario es aquel en el cual múltiples usuarios pueden tener acceso simultáneo
a la base de datos.
■ Por integrada, queremos decir que podemos imaginar a la base de datos como una unificación de
varios archivos que de otro modo serían distintos, con una redundancia entre ellos eliminada al menos
parcialmente.
■ Por compartida, queremos decir que las piezas individuales de datos en la base pueden ser compartidas
entre diferentes usuarios y que cada uno de ellos puede tener acceso a la misma pieza de datos,
probablemente con fines diferentes.
Hardware
Los componentes de hardware del sistema constan de:
■ Los volúmenes de almacenamiento secundario —principalmente discos magnéticos— que
se emplean para contener los datos almacenados, junto con los dispositivos asociados de
E/S (unidades de discos, etc.), los controladores de dispositivos, los canales de E/S, entre
otros; y
■ Los procesadores de hardware y la memoria principal asociada usados para apoyar la ejecución del
software del sistema de base de datos (vea la siguiente subsección).
Software
Entre la base de datos física usuarios del sistema, hay una capa de software conocida de manera indistinta
como el administrador de base de datos o el servidor de base de datos; o más comúnmente como el
sistema de administración de base de datos (DBMS). Todas las solicitudes de acceso a la base de datos
son manejadas por el DBMS (agregar, eliminar, modificar, consultar, etc)
Usuarios
■ Primero, hay programadores de aplicaciones responsables de escribir los programas de aplicación de
base de datos en algún lenguaje de programación.
■ La segunda clase de usuarios son los usuarios finales, quienes interactúan con el sistema desde
estaciones de trabajo o terminales en línea.
■ El tercer tipo de usuario, que no aparece en la figura 1.4, es el administrador de base de datos o DBA.
Datos persistentes
Es una costumbre referirse a los datos de la base de datos como "persistentes". Por persistentes queremos
decir, de manera intuitiva que únicamente va a poder ser removida por alguna solicitud explicita del
gestor de base de datos
Datos y modelos de datos
Un modelo de datos es una definición lógica, independiente y abstracta de los objetos, operadores y
demás que en conjunto constituyen la máquina abstracta con la que interactúan los usuarios. Los objetos
nos permiten modelar la estructura de los datos. Los operadores nos permiten modelar su
comportamiento.
■ La implementación de determinado modelo de datos es una realización física, en una máquina real, de
los componentes de la máquina abstracta que en conjunto constituyen ese modelo.
Resumiendo: El modelo es aquello que los usuarios tienen que conocer; la implementación es lo que los
usuarios no tienen que conocer.
■ En el primer sentido, un modelo de datos es como un lenguaje de programación (aunque en cierto
modo abstracto) cuyos elementos pueden ser usados para resolver una amplia variedad de problemas
específicos, pero que en sí y por sí mismos no tienen una conexión di recta con ninguno de estos
problemas específicos.
■ En el segundo sentido, un modelo de datos es como un programa específico escrito en ese lenguaje. En
otras palabras, un modelo de datos que toma las características que ofrece algún modelo como el primero
y las aplica a cierto problema específico. Puede ser visto como una aplicación específica de algún modelo
con el primer significado.
¿POR QUÉ UNA BASE DE DATOS?
Ventajas
■ Compactación: No hay necesidad de archivos en papel voluminosos.
■ Velocidad: La máquina puede recuperar y actualizar datos más rápidamente que un humano.
En particular, las consultas específicas sin mucha elaboración pueden ser respondidas con rapidez, sin
necesidad de búsquedas manuales o visuales que llevan tiempo.
■ Menos trabajo laborioso; Se puede eliminar gran parte del trabajo de llevar los archivos a mano. Las
tareas mecánicas siempre las realizan mejor las máquinas.
■ Actualidad: En el momento que la necesitemos, tendremos a nuestra disposición información precisa y
actualizada.
Administración de datos y administración de bases de datos
La labor del administrador de datos decidir en primer lugar qué datos deben ser almacenados en la base
de datos y establecer políticas para mantener y manejar esos datos una vez almacenados.
Beneficios del enfoque de base de datos
■ Los datos pueden compartirse
-Es posible reducir la redundancia: dos archivos pueden integrase con el fin de reducir la redundancia
-Es posible (hasta cierto grado) evitar la inconsistencia: dado alguna inconsistencia por redundancia o
por falta de actualización de la entidad, estos se puede controlar siempre y cuando el administrador de
base de datos esté al tanto, garantizando que no será inconsistente a los ojos del usuario aplicando
medidas de actualizaciones automáticas
-Es posible brindar un manejo de transacciones: Una transacción es una unidad de trabajo lógica, que
por lo regular comprende varias operaciones de la base de datos (en particular, varias operaciones de
actualización declaradas de una misma transacción).
-Es posible mantener la integridad
El problema de la integridad es el de asegurar que los datos de la base de datos estén correctos. El control
centralizado de la base de datos puede ayudar a evitar estos problemas (en la medida de lo posible)
permitiendo que el administrador de datos defina y el DBA implemente las restricciones de integridad
(también conocidas como reglas del negocio) que serán verificadas siempre que se realice una operación
de actualización.
-Es posible hacer cumplir la seguridad
Al tener la completa jurisdicción sobre la base de datos, el DBA (por supuesto, bajo la dirección
apropiada del administrador de datos) puede asegurar que el único medio de acceso a la base de datos sea
a través de los canales adecuados y por lo tanto puede definir las reglas o restricciones de seguridad que
serán verificadas siempre que se intente acceder a datos sensibles.
-Es posible equilibrar los requerimientos en conflicto
Al conocer los requerimientos generales de la empresa, el DBA puede estructurar los sistemas de manera
que ofrezcan un servicio general que sea "el mejor para la empresa"
-Es posible hacer cumplir los estándares
Con el control central de la base de datos, el DBA (una vez más, bajo la dirección del administrador de
datos) puede asegurar que todos los estándares aplicables en la representación de los datos sean
observados.
LA INDEPENDENCIA DE LOS DATOS
Decimos que una aplicación como es dependiente de los datos, debido a que es imposible modificar la
representación física (la forma en que los datos están físicamente representados en el almacenamiento) o
la técnica de acceso (la forma en que son accedidos físicamente) sin afectar a la aplicación de manera
drástica.
Sin embargo, en un sistema de base de datos, sería en extremo inconveniente permitir que
las aplicaciones fuesen dependientes de los datos en el sentido descrito; por lo menos por las dos razones
siguientes:
1. Las distintas aplicaciones requerirán visiones diferentes de los mismos datos.
2. El DBA debe tener la libertad de cambiar las representaciones físicas o la técnica de acceso
requerimientos cambiantes, sin tener que modificar las aplicaciones existentes.
De aquí que dar independencia a los datos sea un objetivo principal de los sistemas de base de datos.
Podemos definir la independencia de los datos como la inmunidad de las aplicaciones a cambios en la
representación física y en la técnica de acceso; lo que implica desde luego que las aplicaciones
involucradas no dependan de ninguna representación física o técnica de acceso en particular.
Unidad 2: arquitectura para los sistemas de base de datos
LOS TRES NIVELES DE LA ARQUITECTURA
La arquitectura ANSI/SPARC se divide en tres niveles, conocidos como interno, conceptual y externo,
respectivamente (vea la figura 2.1). Hablando en términos generales:
■ El nivel interno (también conocido como el nivel físico) es el que está más cerca del almacenamiento
físico; es decir, es el que tiene que ver con la forma en que los datos están almacenados físicamente.
■ El nivel externo (también conocido como el nivel lógico de usuario) es el más próximo a los usuarios;
es decir, el que tiene que ver con la forma en que los usuarios individuales ven los datos.
■ El nivel conceptual (también conocido como el nivel lógico de la comunidad, o en ocasiones sólo
como el nivel lógico, sin calificar) es un nivel de indirección entre los otros dos.
■ Tercero, el nivel interno no será relacional, ya que los objetos en ese nivel no serán sólo tablas
relacionales (almacenadas); en vez de ello, serán los mismos tipos de objetos que se encuentran en el
nivel interno de cualquier otro tipo de sistema (registros almacenados, apuntadores, índices, tablas de
dispersión, etcétera). De hecho, el modelo relacional como tal no tiene nada en absoluto que decir
acerca del nivel interno; para repetir lo dicho en el capítulo 1, tiene que ver con la forma en que la base de
datos se presenta ante el usuario.
EL NIVEL EXTERNO
El nivel externo es el nivel del usuario individual, un usuario dado puede ser un programador de
aplicaciones o bien un usuario final con cualquier grado de sofisticación.
(El DBA es un importante caso especial; pero a diferencia de otros usuarios, el DBA también necesitará
interesarse en los niveles conceptual e interno. Vea las dos secciones siguientes.) Cada usuario tiene a su
disposición un lenguaje:
■ Para el programador de aplicaciones, éste será ya sea un lenguaje de programación convencional o bien
un lenguaje de tipo propietario que sea específico al sistema en cuestión.
■ Para el usuario final, el lenguaje será ya sea un lenguaje de consulta o bien algún lenguaje de finalidad
específica, tal vez controlado por formularios o por menús, confeccionado para los requerimientos de ese
usuario y manejado por algún programa de aplicación en línea
EL NIVEL CONCEPTUAL
La vista conceptual es una representación de todo el contenido de la información de la base de datos, de
nuevo (al igual que con la vista externa) en una forma un poco abstracta comparada con la forma en la
que por lo regular se almacenan los datos físicamente. También será muy diferente de la forma en que
cualquier usuario específico ve los datos.
Entonces, la vista conceptual es una vista del contenido total de la base de datos, y el esquema conceptual
es una definición de esa vista.
EL NIVEL INTERNO
El tercer nivel de la arquitectura es el nivel interno. La vista interna es una representación de bajo nivel
de toda la base de datos y consiste en muchas ocurrencias de cada uno de los diversos tipos de registros
internos. "Registro interno" es el término de ANSI/SPARC para la construcción que hemos venido
llamando registro almacenado (y que seguiremos utilizando). Por lo tanto, la vista interna está todavía
distante del nivel físico, ya que no tiene que ver con términos como registros físicos —también
denominados bloques o páginas— ni con ninguna consideración específica de los dispositivos, como el
tamaño de los cilindros o de las pistas.
La vista interna se describe por medio del esquema interno, el cual no sólo define los diversos tipos de
registros almacenados sino que especifica también qué índices existen, cómo están representados los
campos almacenados, en qué secuencia están dichos registros
Lenguaje de definición, modificación y control de datos
En principio, cualquier sublenguaje de datos determinado es en realidad una combinación de por lo
menos dos lenguajes subordinados: un DDL (lenguaje de definición de datos), que permite la definición
o declaración de objetos de base de datos, y un DML (lenguaje de manipulación de datos), que permite
la manipulación o procesamiento de dichos objetos.
El lenguaje de definición de datos (en inglés Data Definition Language, o DDL), es el que se encarga de
la modificación de la estructura de los objetos de la base de datos. Incluye órdenes para modificar, borrar
o definir las tablas en las que se almacenan los datos de la base de datos. Existen cuatro operaciones
básicas: CREATE, ALTER, DROP y TRUNCATE.
Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en inglés) es un lenguaje
proporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las
tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado. El lenguaje
de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una
base de datos relacional.
Un Lenguaje de Control de Datos (DCL por sus siglas en inglés: Data Control Language) es un
lenguaje proporcionado por el Sistema de Gestión de Base de Datos que incluye una serie de comandos
SQL que permiten al administrador controlar el acceso a los datos contenidos en la Base de Datos.
EL ADMINISTRADOR DE BASE DE DATOS
El DA (administrador de datos) es la persona que toma las decisiones de estrategia y política con respecto
a los datos de la empresa
Un administrador de bases de datos (también conocido como DBA) es aquel profesional que administra
las tecnologías de la información y la comunicación, siendo responsable de los aspectos técnicos,
tecnológicos, científicos, inteligencia de negocios y legales de bases de datos.
Proporciona asesoría a los desarrolladores, usuarios y ejecutivos que la requieran. Esta persona o equipo
de personas profesionales son responsables del control y manejo del sistema de base de datos, tiene(n)
experiencia en DBMS, diseño de bases de datos, Sistemas Operativos, comunicación de datos, hardware y
programación.
El Administrador de Bases de Datos es responsable primordialmente de:
1.- Administrar la estructura de la Base de Datos.
2.- Administrar la actividad de los datos.
3.- Administrar el Sistema Manejador de Base de Datos.
4.- Establecer el Diccionario de Datos.
5.- Asegurar la confiabilidad de la Base de Datos.
6.- Confirmar la Seguridad de la Base de Datos.
SISTEMA GESTOR DE BASES DE DATOS (BDMS)
Es sofware que controla la organización, el almacenamiento, la recuperación, la seguridad y la integridad
de los datos en una base de datos. Acepta solicitudes de la aplicación y genera las órdenes al sistema
operativo para que transfiera los datos apropiados
Características:
Ayuda a manejar los datos más eficiente y efectivamente.
Contiene un lenguaje de consulta que permite obtener respuestas rápidas a preguntas
inmediatas.
Crea un ambiente en el que los usuarios finales pueden acceder de manera rápida y un manejo
más eficiente de los datos.
Un sistema gestor de bases de datos tiene la capacidad de manejar numerosos datos.
Cuenta con un sistema de copia de seguridad y recuperación de los datos.
Reduce la inconsistencia de los datos.
El DBMS, dependiendo del número de usuarios determina si este se clasifica como usuario único
o usuario múltiple.
Funciones de un DBMS:
Administración del diccionario de datos: las definiciones de los elementos de datos se guardan
en un diccionario de datos. El DBMS utiliza este diccionario datos para buscar las estructuras y
relaciones del componente de dato requerido.
Administración del almacenamiento de datos: un DBMS crea las estructuras para almacenar los
datos. Los DBMS modernos, permiten el almacenamiento de datos, formularios o definición de
filtración de datos relacionado, reportes, reglas para la validación de datos, estructuras que
permiten la manipulación de imágenes, videos y demás.
Transformación y presentación de datos: un DBMS mantiene la independencia de los datos.
Esto permite que los datos recuperados sean formateados y puedan ser modificados según las
necesidades del usuario.
Administra la seguridad: los DBMS crean sistemas de seguridad que permiten proteger la
información; esto quiere decir que se puede determinar qué usuarios pueden tener acceso a
ciertos datos y qué operaciones puede realizar con dichos datos.
Control de acceso: como sabemos los DBMS pueden generar estructuras que permiten el acceso
de usuarios múltiples, por esta razón utiliza algoritmos lo suficientemente complejos que
permiten el ingreso de esos usuarios a la base de datos sin poner en riesgo su integridad.
Administración de tareas de respaldo y recuperación: un DBMS tienen la capacidad de recuperar
los datos después de cualquier tipo de falla que se pueda presentar. Esta función es la que
permite la preservación de la base de datos.
Administración de la integridad de los datos: un DBMS mantiene la integridad de los datos
mediante las relaciones existentes entre ellos. Estas relaciones se encuentran en el diccionario.
Lenguajes de acceso e interfaces de programación: el DBMS reconoce lenguajes de consulta (no
tiene procedimientos), lenguajes de procedimientos (3GL) que permiten el acceso a los datos; así
mismo facilitan utilerías administrativas que el diseñador puede utilizar para crear, ejecutar,
monitorear o mantener la base de datos.
Interfaces de comunicación de bases de datos: esto se refiere a que un DBMS suministra usos de
comunicación especiales que permite que la base de datos admita las indicaciones del usuario a
través de red de computadoras.
Unidad 3: el nivel interno
Unidad 4: modelo relacional y las reglas de integridad relacional
Modelo relacional: modelo de organización y gestión de bases de datos consistente en el
almacenamiento de datos en tablas compuestas por filas, o tuplas, y columnas o campos.
El modelo relacional es una forma de ver los datos que consta de:
Una representación de los datos mediante tablas llamadas “relaciones” ( Estructura )
Un conjunto de restricciones que permiten la consistencia de los datos ( Integridad )
Un conjunto de operadores que permiten manipular dichos datos ( Lenguaje de Manipulación )
El modelo relacional tiene tres partes principales, que tienen que ver con la estructura de datos, la
integridad de los datos y la manipulación de datos, respectivamente.
Estructura de las Bases de Datos Relacionales
Relación (Tabla). Es el elemento central del modelo relacional. Son los objetos principales sobre los que
debe recogerse información y generalmente denotan personas, lugares, cosas o eventos de interés. Una
relación tiene un nombre, un conjunto de atributos que representan sus propiedades y está formada por un
conjunto de tuplas que incluyen los valores que cada uno de los atributos toma para cada una de las tuplas
de la relación. Una relación se representa mediante una tabla bidimensional (las columnas representan los
atributos y las filas representan las tuplas o registros).
Tupla o registro. Corresponde a una fila de la tabla. Representa cada una de las ocurrencias de la
relación. El número de tuplas se denomina cardinalidad, la cardinalidad varía con el tiempo.
Atributo. Corresponde a una columna de la tabla (equivale a un campo de un registro) y se definen sobre
dominios. El número de atributos se llama grado. El grado no varía con el tiempo, si añadimos un
atributo a una relación, podemos considerar que se trata de otra relación nueva.
Dominio. Es una colección de valores, de los cuales uno o más atributos obtienen sus valores reales.
Clave primaria. Es posible que una relación posea más de una clave candidata, en ese caso, se escoge
una de ellas como clave primaria y el resto se denominan claves alternativas.
Clave candidata es un atributo K (o conjunto de atributos) de una relación R que cumple dos
propiedades:
Unicidad: No existen dos tuplas en R con el mismo valor de K
Minimalidad: Si K es compuesto, no será posible eliminar ningún componente de K sin destruir la
propiedad de unicidad.
Es la estructura más utilizada actualmente. En ella los datos están estructurados en tablas:
- Cada fila es un registro o entidad.
- Cada columna es un campo de ese registro.
A la tabla se le llama relación, y a cada fila tupla; a cada columna de una tupla se le llama atributo, es en
esto en lo que se diferencia del modelo matemático.
Para ser breves. Si pensamos en una relación como una tabla, entonces una tupia corresponde a una fila
de dicha tabla y un atributo a una columna; al número de tupias se le llama cardinalidad y al número de
atributos se le denomina grado; y un dominio es un conjunto de valores, de donde se toman los valores
de atributos específicos de relaciones específicas.
Propiedades de las relaciones
Las relaciones poseen ciertas propiedades, todas ellas consecuencias inmediatas de la definición de
relación dada en la subsección anterior, y todas ellas muy importantes. Primero enunciaremos brevemente
las propiedades y luego las explicaremos en detalle. Las propiedades son como sigue. Dentro de cualquier
relación dada:
■ No existen tupias duplicadas;
Esta propiedad surge del hecho de que el cuerpo de la relación es un conjunto matemático (de tupias); los
conjuntos en matemáticas no incluyen elementos duplicados. ¡decirlo dos veces no lo hace más cierto!
■ Las tupias están en desorden, de arriba hacia abajo;
Esta propiedad también surge del hecho de que el cuerpo de la relación es un conjunto matemático; en
matemáticas, los conjuntos no están ordenados. En efecto, el lenguaje anfitrión requiere que conjuntos sin
orden se conviertan en listas o arreglos (de tupias) ordenados, de modo que las operaciones como "ac-
ceder a la siguiente tupia" puedan tener significado
■ Los atributos están en desorden, de izquierda a derecha;
Esta propiedad surge del hecho de que el encabezado de una relación también es un conjunto (de
atributos). en otras palabras, siempre se hace referencia a los atributos por nombre, nunca por posición
■ Cada tupia contiene exactamente un valor para cada atributo.
Esta propiedad surge inmediatamente de la definición de una tupia: una tupia es un conjunto de n
componentes o pares ordenados de la forma Ai:vi (i= 1,2,..., n). Se dice que una relación que satisface
esta cuarta propiedad está normalizada o, lo que es equivalente, está en la primera forma normal.
Tipos de Relaciones
-Relación base (relación real). Es equivalente al concepto tabla del SQL. Tiene nombre y es autónoma.
-Vista (relación virtual). Es una relación derivada con nombre propio y cuya definición se basa en
relaciones base. No poseen datos almacenados.
-Instantánea (snapshot). Relación derivada con nombre que si posee datos, como resultado de una
consulta que se almacena y refresca periódicamente.
-Resultado de consulta : Es la relación resultante de alguna consulta (query) específica. Puede, o no, tener
nombre, y no tiene existencia persistente en la base de datos.
-Resultado intermedio : Es una relación resultante de alguna expresión relacional anidada, que no tiene
existencia persistente y que generalmente no tiene nombre.
-Relaciones temporales : Es una relación con nombre, similar a una relación base o vista, pero con la
diferencia de que se destruye en forma automática.
Las relaciones base, vista e instantánea se destruyen solamente por acción específica del usuario.
Base de datos relacional
Una base de datos relacional es una colección de elementos de datos organizados en un conjunto de tablas
formalmente descritas desde la que se puede acceder a los datos o volver a montarlos de muchas maneras
diferentes sin tener que reorganizar las tablas de la base.
Propiedades de las Relaciones
▪ Cada relación tiene un nombre distinto.
▪ Los valores de los atributos son atómicos (relaciones normalizadas).
▪ Cada atributo tiene un nombre distinto.
▪ Los atributos no están ordenados.
▪ No hay tuplas duplicadas.
▪ Las tuplas no están ordenadas.
Definición de claves
Clave Candidata = superclave mínima
Clave Primaria = clave candidata elegida
Clave Externa = clave ajena o clave foránea
Clave Alternativa = clave secundaria
Una clave primaria es la columna o colección de columnas que identifican de forma única a una fila
determinada en una tabla.
Una clave ajena (foránea) es un campo o colección de campos de una tabla cuyos valores deben coincidir
con los valores de la clava primaria de una segunda tabla.
Las claves candidatas no elegidas como primaria se denominan claves alternativas.
Una clave candidata es Similar a una clave primaria, una clave candidata es la columna o colección de
columnas en la que todas las columnas de la tabla son funcionalmente dependientes. Es típico hacer
referencia a una clave candidata como clave alterna cuando no se ha elegido como primaria.
Unidad 4: diseño de base de datos
Forma normal
Las formas normales (NF) proporcionan los criterios para determinar el grado de vulnerabilidad de una
tabla a inconsistencias y anomalías lógicas. Cuanta más alta sea la forma normal aplicable a una tabla,
menos vulnerable será a inconsistencias y anomalías.
Objetivos
Evitar redundancia
Simplificar la actualización de datos
Garantizar la integridad referencial
Dependencia funcional
Lo primero consiste en revisar algunas definiciones:
Def. 1: Una dependencia funcional es una relación muchos a uno desde un conjunto de atributos a otro
que tiene una relación.
Dependencias funcionales de las claves
Una clave candidata consiste de un conjunto de atributos K (no vacío) de la relación R que satisface las
siguientes propiedades, independientes del tiempo:
1. Unicidad: en cualquier momento dado, no existen dos tuplas en R con el mismo valor de K.
2. Minimalidad: si K es compuesto, no será posible eliminar ningún componente de K sin destruir la
propiedad de unicidad.
Las dependencias funcionales del sistema se escriben utilizando una flecha
▫ FechaDeNacimiento ----------- > Edad
Aquí a FechaDeNacimiento se le conoce como un determinante. Se puede leer de dos formas
FechaDeNacimiento determina a Edad o Edad es funcionalmente dependiente de FechaDeNacimiento.
Primera forma normal (1FN)
Una tabla está en primera forma normal si:
▫ La tabla contiene una clave primaria.
▫ La tabla no contiene atributos nulos.
▫ Se eliminan los grupos repetitivos.
▫ Una columna no puede tener múltiples valores. Sus atributos contienen valores
atómicos.
▫
Segunda Forma Normal (2FN)
• Dependencia Funcional.
Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna clave dependen
de forma completa de la clave principal.
Las 2FN aplican a las relaciones con claves primarias compuestas por dos o más atributos
Tercera Forma Normal (3FN)
• La tabla se encuentra en 3FN si es 2FN y cada atributo que no forma parte de ninguna clave,
depende directamente y no transitivamente, de la clave primaria.
Forma normal de Boyce-Codd (FNBC)
Se dice que una tabla está en FNBC si y solo si está en 3FN y cada dependencia funcional no trivial tiene
una clave candidata como determinante. En términos menos formales, una tabla está en FNBC si está en
3FN y los únicos determinantes son claves.
Cuarta Forma Normal (4FN)
Una tabla está en 4NF si y solo si esta en Tercera forma normal o en BCNF y no posee dependencias
multivaloradas no triviales. La definición de la 4NF confía en la noción de una dependencia
multivaloradas
Quinta Forma Normal (5FN)
Una tabla se dice que está en 5NF si y sólo si está en 4NF y cada dependencia de unión (join) en ella es
implicada por las claves candida
Desnormalización.
La desnormalización es el proceso de invertir las transformaciones realizadas durante la normalización
por razones de rendimiento. Se trata de un tema que suscita la polémica entre los expertos en bases de
datos. Para algunos el coste es demasiado alto y nunca desnormalizan mientras otros alaban sus ventajas y
acostumbran a desnormalizar.
Conclusiones.
• La Desnormalización nos ayuda a mejorar el rendimiento.
• Menor número de tablas.
• Redundancia de Datos.
• Mejora Velocidad de las consultas.
• Menor Integridad de datos.
Unidad 7: modelo semántico. Modelo entidad/relación
¿Qué es el modelo entidad-relación?
Este modelo es solo y exclusivamente un método del que disponemos para diseñar estos esquemas que
posteriormente debemos de implementar en un gestor de BBDD
Componentes
Entidad
Las entidades representan cosas u objetos (ya sean reales o abstractos), que se diferencian claramente
entre sí.
Entidad Regular : tambien conocida como *entidad fuerte., es aquella que si puede ser identificada
univocamente: En los casos en que se requiera, se puede dar que una entidad fuerte "preste" algunos de
sus atributos a una entidad debil para que, esta ultima, se pueda identificar:
Entidad débil: Es aquella que no puede existir sin participar en la relacion, es decir, aquella que no puede
ser univocamente identificada solamente por sus atributos como Clave:
Estas entidades se representan en un diagrama con un rectángulos, como los siguientes.
Atributos
Los atributos definen o identifican las características de entidad (es el contenido de esta entidad). Cada
entidad contiene distintos atributos, que dan información sobre esta entidad.
Los atributos se representan como círculos que descienden de una entidad, y no es necesario
representarlos todos, sino los más significativos, como a continuación.
Relación
Es un vínculo que nos permite definir una dependencia entre varias entidades, es decir, nos permite exigir
que varias entidades compartan ciertos atributos de forma indispensable.
Las relaciones se muestran en los diagramas como rombos, que se unen a las entidades mediante líneas.
Supertipos y subtipos
Supertipo - Un tipo de entidad que se relaciona con uno o más subtipos.
Subtipo - Un subgrupo de entidades con atributos únicos.
Las entidades estudiante y docente (suptipos) pueden agruparse en el supertipo PERSONA como se
aprecia en el diagrama:
Relaciones ISA o relaciones de herencia
Son relaciones que indican relaciones que permiten distinguir tipos de entidades, es decir tendremos
entidades que son un (is a, en inglés) tipo de entidad respecto a otra entidad más general.
Creando una tabla para el supertipo (con los atributos comunes a todos los subtipos) y una tabla separada
para cada subtipo, con sus propios atributos.
Cualquier entidad dada tiene por lo menos un tipo de entidad, aunque una entidad puede ser de varios
tipos al mismo tiempo. Por ejemplo, si algunos empleados son programadores (y todos los programadores
son empleados), entonces podríamos decir que el tipo de entidad PROGRAMADOR es un subtipo del
tipo de entidad EMPLEADO (o de manera equivalente, que el tipo de entidad EMPLEADO es un
supertipo del tipo de entidad PROGRAMADOR). Todas las propiedades de los empleados se aplican
automáticamente a los programadores, pero no sucede lo contrario (por ejemplo, los programadores
podrían tener una propiedad "aptitud en lenguaje de programación" que no es aplicada a los empleados en
general). En forma similar, los progn madores participan automáticamente en todos los vínculos en los
que participan los empleados, pero lo contrario no es cierto (por ejemplo, los programadores podrían
pertenecer a alguna sociedad de computación profesional, mientras que los empleados en general no).
Decimos que las propiedades y vínculos que se aplican al supertipo son heredados por el subtipo.
Relaciones de cardinalidad
Uno a uno: Una entidad se relaciona únicamente con otra y viceversa.
Uno a varios o varios a uno: determina que un registro de una entidad puede estar relacionado con
varios de otra entidad, pero en esta entidad existir solo una vez.
Varios a varios: determina que una entidad puede relacionarse con otra con ninguno o varios registros y
viceversa.
Ejemplo de transformación de una entidad/relación al modelo relacional
1. Cada entidad se representa como una tabla y sus atributos como columnas de ésta.
2. 2. Cada Entidad débil se representa como una tabla, cuyas columnas serán los atributos
de ésta, añadiendo una columna más para la llave primaria de la Entidad fuerte de la
que depende.
3. El identificador de la entidad se convierte en la clave primaria de la tabla
4. Si alguna de las entidades participa con cardinalidad mínima igual a cero se añade
una tabla intermedia cuyo identificador se forma por las claves primarias de las otras
dos tablas y se le añaden los atributos de la relación cuando los haya
5.
SOCIO (Cod_socio, Nombre, Apellido, Domicilio, Teléfono, Tipo).
Ejemplo de transformación de una entidad con atributos opcionales, compuestos y multivaluados
¿Por qué es necesario transformar el modelo e/r al modelo relacional?
-El modelo E/R es un modelo de datos conceptual de alto nivel.
-Facilita las tareas de diseño conceptual de bases de datos.
-Es necesario traducirlo a un esquema que sea compatible con un SGBD.
-El Modelo Relacional es utilizado por la mayoría de los SGBD existentes en el mercado.