Documentos de Académico
Documentos de Profesional
Documentos de Cultura
BASE DE DATOS
Es un conjunto integrado de estructuras a través
de las que se almacena una colección lógica y
coherente de:
• Datos que tienen un significado para los
usuarios (datos de usuario).
• Datos que describen como se relacionan
esos datos de usuario y como deben ser
administrados (Metadatos).
Características de una Base de Datos
Atributo compuesto
Atributo de un solo valor
Atributo multivaluado
Atributo almacenado
Atributo derivado
Atributos Opcionales
Clave o restricción de unicidad: Para que un
atributo sea considerado un identificador
adecuado tiene que cumplir con los siguientes
requisitos:
• Deben distinguir a cada entidad o relación. Es
decir no puede haber dos entidades con el
mismo valor en el identificador.
• Todas las entidades deben tener el mismo
identificador.
• Un identificador puede ser una clave
compuesta.
Entidades fuertes y Débiles
La cardinalidad entre una entidad fuerte y una
débil será siempre de 1:N.
Relaciones Recursivas.
Las relaciones recursivas son aquellas que se
dan entre entidades del mismo tipo (o del
mismo conjunto de entidades).
Restricciones sobre el conjunto de relaciones:
• Cardinalidad mínima. Indica el mínimo de
asociaciones en las que aparecerá cada entidad.
Cuando la cardinalidad mínima sea de más de 1, se
usará el número 1.
• Cardinalidad máxima. Indica el número máximo de
relaciones en las que puede aparecer cada entidad.
Puede ser uno, un valor numérico mayor de uno o
muchos, representado generalmente por la letra N.
Atributos de conjunto de relación
Grados de relación
binaria
ternaria
n-arias
Ejemplo
Le contratan para hacer una BD que permita apoyar la gestión de un
sistema de ventas. La empresa necesita llevar un control de
proveedores, clientes, productos y ventas. Un proveedor tiene un
Registro Único Tributario (RUT), nombre, dirección, teléfono y página
web. Un cliente también tiene RUT, nombre, dirección, pero puede
tener varios teléfonos de contacto. La dirección se entiende por
calle, número, comuna y ciudad. Un producto tiene un id único,
nombre, precio actual, stock y nombre del proveedor. Además se
organizan en categorías, y cada producto va sólo en una categoría.
Una categoría tiene id, nombre y descripción. Por razones de
contabilidad, se debe registrar la información de cada venta con un
id, fecha, cliente, descuento y monto final. Además se debe guardar
el precio al momento de la venta, la cantidad vendida y el monto
total por el producto.
Ejercicio
Se desea diseñar una base de datos para almacenar y gestionar la información
empleada por una empresa de automóviles, teniendo en cuenta que a una
empresa de coches llegan clientes para comprar automóviles. De cada coche
interesa saber la matricula, modelo, marca y color. Un cliente puede comprar
varios coches en la empresa. Cuando un cliente compra un coche, se le hace
una ficha con la siguiente información: dui, nombre, apellidos, dirección y
teléfono .Los coches que se venden pueden ser nuevos o usados (de segunda
mano). De los coches nuevos interesa saber el número de unidades que hay.
De los coches viejos interesa el número de kilómetros que lleva recorridos. La
empresa también dispone de un taller en el que los mecánicos reparan los
coches que llevan los clientes. Un mecánico repara varios coches a lo largo del
día, y un coche puede ser reparado por varios mecanicos. Los mecánicos
tienen un dui, nombre, apellidos, fecha de contratación y salario. Se desea
guardar también la fecha en la que se repara cada vehículo y el número de
horas que se ha tardado en arreglar cada automóvil
Solución
Ejemplo
Crear un modelo conceptual a través del Modelo
ER para el diseño de una base de datos a partir de
dos hojas electrónicas. Una empresa de venta de
música lleva sus controles de existencias por cada
tienda de ventas a través de una hoja de cálculo,
además la hoja le sirve a los vendedores para
consultar los discos por nombre, artista y género,
y en caso de que sea necesario, los dependientes
pueden consultar el precio de venta del disco.
Ejercicio
Una empresa desea diseñar una base de datos para almacenar en ella toda
la información generada en cada uno de los proyectos que ésta realiza.
De cada uno de los proyectos realizados interesa almacenar el código,
descripción, cuantía del proyecto, fecha de inicio y fecha de fin. Los
proyectos son realizados por clientes de los que se desea guardar el código,
teléfono, domicilio y razón social.
Un cliente puede realizar varios proyectos, pero un solo proyecto es
realizado por un único cliente. En los proyectos participan colaboradores de
los que se dispone la siguiente información: nit, dui, nombre domicilio,
teléfono, banco y número de cuenta. Un colaborador puede participar en
varios proyectos. Los proyectos son realizados por uno o más
colaboradores. Un colaborador de proyecto puede recibir varios pagos. De
los pagos realizados se requiere guardar el número de pago, concepto,
cantidad y fecha de pago. También interesa almacenar los diferentes tipos
de pago que puede realizar la empresa. De cada uno de los tipos de pagos
se desea guardar el código y descripción. Un tipo de pago puede pertenecer
a varios pagos.
Modelo Lógico
Es el resultado del proceso de diseño lógico. Este
resultado es un esquema de base de datos
adaptado a las características específicas del
SGBD en el que se implementará el modelo
conceptual.
Los modelos lógicos proporcionan precisamente
una visión de la lógica de implementación del
modelo de datos
Relación
En el MR las bases de datos son concebidas como un
conjunto de relaciones. Esto hace que el concepto de
relación sea el más importante en este modelo.
Y su notación relacional es
CLIENTE(clienteid, nombrecliente, direccion,
telefono)
Esquema de bases de datos
Es un conjunto S de los esquemas de relación
que pertenecen a la misma base de datos. S es
el nombre del esquema de base de datos
completa.
S = (R1, R2, ..., Rn)
Donde R1, R2, ..., Rn son los nombres de los
esquemas de relación individual dentro de la
base de datos S.
Restricciones
Las restricciones son condiciones que debe cumplir una
relación para que su estado sea válido.
• Restricción de Llave primaria
• Restricción de Integridad de entidad
• Restricciones de integridad referencial o llave foránea.
• Restricciones semánticas de Integridad
Estas restricciones pueden expresarse a través de:
– Restricciones de conjunto de valores (CHECK)
– Restricciones de unicidad (UNIQUE). Las restricciones de unicidad
están implícitas en las restricciones de integridad de la entidad. Sin
embargo, puede ser aplicada a otros atributos que no forman parte
de la llave primaria.
– Restricciones de obligatoriedad o no nulidad (NOT NULL). De igual
manera, las restricciones de no nulidad pueden ser aplicadas
cualquier otro atributo que no sean llave primaria.
Estado de una base de datos
El estado de una base de datos relacionales una unión
de todos los estados individuales de cada relación,
por lo tango cada vez que el estado de una relación es
modificada, se modifica el estado de la base de datos.
Las operaciones que permiten modificar del estado de
una relación, y por lo tanto de una base de datos son:
• Insertar una nueva tupla en una relación.
• Eliminar una tupla de una relación existente.
• Modificar un atributo de una tupla existente.
Posibles violaciones por cada operación
INSERTAR (INSERT). Puede violar una de las
restricciones siguientes:
1. Restricción de Dominio. Si uno de los valores de los
atributos proporcionados para la nueva tupla no es del
dominio atributo especificado.
2. Restricción de llave primaria. Si el valor de la llave primaria
en la nueva tupla ya existe en otra tupla en la relación.
3. Restricción de integridad referencial. Si un valor de llave
foránea en la nueva tupla es referenciada a un valor de clave
principal que no existe en la relación a la que se hace
referencia.
4. Restricción de integridad de entidad. Si el valor de llave
primaria es nula en la nueva tupla.
ELIMINAR(DELETE). Sólo puede violar la integridad
referencial:
Si el valor de llave primaria de la tupla que se va a
eliminar es referenciada desde otras tuplas en la base
de datos. Puede ser subsanada por varias acciones:
1. La opción RESTRICT: rechazar la supresión
2. La opción CASCADE: propagar el nuevo valor de llave
primaria en las claves externas de la referencia a las tuplas
3. Las opciones SET NULL: conjunto las llaves foráneas de la
referencia a las tuplas en NULL
Cada una de las opciones anteriores se debe especificar
durante el diseño de base de datos para cada
restricción de llave foránea.
LAS 12 REGLAS DE CODD
1. Información. Toda la información de la base de datos (metadatos) debe
estar representada explícitamente en el esquema lógico. Es decir, todos los
datos deben estar en las relaciones.
2. Acceso garantizado. Todo dato es accesible sin ambigüedad a partir del
valor de su llave y el nombre del atributo que contiene el dato.
3. Tratamiento sistemático de valores nulos. El SGBD el tratamiento
adecuado de los valores nulos. Los valores nulos deben interpretarse como la
ausencia del valor de un determinado atributo o que la información es
inaplicable.
4. Catálogo en línea basada en el modelo relacional. La forma en que se
debe acceder a los metadatos es la misma con la que se accede a los datos.
5. Sub lenguaje de datos completo. Un SGBD debe soportar al menos un
lenguaje relacional que:
1. Tenga una sintaxis lineal.
2. Puede ser utilizado de manera interactiva.
3. Soporte de operaciones de definición de datos, operaciones de manipulación de
datos, seguridad e integridad, y operaciones de de administración de transacciones.
6. Actualización. Todas las vistas que son teóricamente actualizables
deben ser actualizables por el sistema.
7. Inserciones, actualizaciones y eliminaciones de alto nivel. Debe
permitirse que cualquiera de estas operaciones se realice sobre
múltiples tuplas o relaciones.
8. Independencia física. La forma de acceder a los datos no varía
porque el esquema físico de la base de datos cambie.
9. Independencia lógica. Los cambios en las relaciones no deberá
implicar (obligatoriamente) un cambio en los programas.
10. Independencia de integridad. Las reglas de integridad deben
almacenarse en las bases de datos (en el diccionario de datos) y no
en los programas de aplicación.
11. Independencia de distribución. El sublenguaje de datos debe
permitir que sus instrucciones funcionen igualmente en una base de
datos centralizada que en una distribuida.
12. No subversión. Ninguno de los lenguajes o interfaces del SGBD
debe permitir que se violen las reglas relacionales anteriores.
Representación grafica
FACULTAD(CODIGO_FACULTAD, NOMBRE)
CARRERA(CODIGO_CARRERA, NOMBRE,
UNIDADES_VALORATIVAS, CODIGO_FACULTAD)
Conversión de MER a MR
Entidades fuertes
Las entidades fuertes del MER son
transformadas al MR siguiendo las siguientes
reglas:
– Las entidades son convertidas a tablas.
– La clave principal o identificador pasa a ser llave
primaria.
– Las claves candidatas se consideran llaves
candidatas.
Relación de Grado Superior
Relación de Grado Superior
Entidades Débiles
Normalización
En todos los casos, los problemas de diseño
pueden provenir de omisiones en el proceso de
análisis, errores de diseño o rediseño, o
simplemente porque hay algunos aspectos
estructurales en los datos que no han podido ser
detectados. El objetivo de la normalización es
eliminar estos problemas de diseño, que pueden
resumirse en:
1. Redundancia. Ocurre cuando hay datos que se
repetirán (o se repiten) innecesariamente en varias
tablas de la base de datos. Un dato (un atributo de
una tupla) de una tabla debe ser almacenado
únicamente en la tabla que sea necesaria. Esto
asegura que cualquier modificación que sea
necesaria a ese dato sea realizada una sola vez.
2. Ambigüedad. Cada tabla debe representar un
único objeto o relación del mundo real. Cuando no
está claro a qué objeto se refiere una tupla de una
tabla o puede hacer referencia a más de una tupla
de otra tabla, se dice que la tabla es ambigua.
3. Pérdida de restricciones de identidad.
Normalmente ocurre cuando no se han identificado
dependencias funcionales entre las tablas. Todos los
atributos que no puedan ser identificados por sí solos
deben depender únicamente de la llave primaria de la
tabla.
4. Anomalías en operaciones de modificación de
datos. Cada tabla deberá impedir anomalías en la
inserción, actualización o eliminación de datos. Esto
asegura la integridad y consistencia de los datos.
Formas Normales
Son etapas de la normalización que debe
cumplir un esquema de base de datos relacional
para que se considere como un diseño
adecuado.
1. Primera forma Normal (1FN)
2. Segunda Forma Normal (2FN)
3. Tercera Forma Normal (3FN)
4. FORMA NORMAL DE BOYCE-CODD (BCFN)
Primera forma normal (1FN)
Es la forma normal inherente al esquema
relacional. Una tabla se encuentra en 1FN si
impide que un atributo de una tupla pueda
tomar más de un valor.
Una tabla de datos como la que se muestra a
continuación, deberá ser transformada a una
tabla en la que cada celda contenga un único
valor.
Llevarlo a primera forma normal
SEGUNDA FORMA NORMAL (2FN)
Ocurre cuando una tabla esta en 1FN y además cada
atributo que no es llave tiene una dependencia
funcional completa respecto de cualquiera de las
llaves.
Dependencia funcional
Se dice que un conjunto de atributos Y depende de
otro conjunto de atributos X si para cada valor de X
hay un único valor posible para Y. Para denotar estas
características, Codd utilizó la lógica de predicados:
X→Y
El conjunto X del que depende funcionalmente
el conjunto Y se llama determinante. Al conjunto
Y se le llama implicado. Por lo tanto, la expresión
X → Y se puede leer: “X implica Y”.
Por ejemplo, los nombres y apellidos de un
empleado serán funcionalmente dependientes
del número de seguro social, puesto que el
nombre y apellidos de empleado no puede ser
obtenidos a partir de ningún otro atributo.
NUMERO_ISSS → (NOMBRE, APELLIDOS)
Dependencia funcional completa
Dependencia funcional completa
Un conjunto de atributos Y tiene una dependencia
funcional completa sobre otro conjunto de atributos X,
si Y tiene dependencia funcional de X y además no se
puede obtener un conjunto de atributos más pequeño
en X que consiga una dependencia funcional de Y.
La dependencia funcional completa se denota:
X⟹Y
Dependencia funcional elemental
Se produce cuando X e Y forman una dependencia
funcional completa y además Y es un único atributo.
Para que una tabla cumpla con la 2FN, toda llave
primaria debe ser determinante del resto de los
atributos en la tabla.
Si hay atributos que dependen únicamente de
una parte de la llave, entonces esa parte de la
llave y esos atributos, formarán una nueva tabla.
Retomando el ejercicio.
Resulta que se dividirá de la siguiente forma.
TERCERA FORMA NORMAL (3FN)
Ocurre cuando una tabla está en 2FN y además, no existen
dependencias funcionales transitivas en ningunos de los
atributos de la tabla.
Dependencia funcional transitiva
Se produce cuando en tres conjuntos de atributos X, Y y Z, Y
depende funcionalmente de X (X→Y), Z depende
funcionalmente de Y (Y→Z), y además X no depende
funcionalmente de Z (Y ↛ X). Entonces ocurre que X produce
una dependencia funcional transitiva sobre Z.
Esto se denota (X— → Z)
En otras palabras, la dependencia transitiva se da cuando existe
algún atributo que no es llave que es determinante de otro
atributo que no es llave.
Ejemplo Empresas socias de una compañia
cliente_farmacias_med Ս cliente_farmacias_sal
La implementación de esa operación en un
SGBD se realiza a través de la sentencia SELECT y
el operador UNION.
a
< i> <operador de comparación> <valor constante>
O bien,
a
< i> <operador de comparación> < a>
j
Donde:
<ai> y <aj> son nombres de alguno de los atributos de R
<operador de comparación> es normalmente uno de los
operadores {=, <, ≤, >, ≥, =}
<valor constante> es un valor constante del dominio del
atributo
Las condiciones pueden conectarse arbitrariamente
mediante los operadores lógicos AND, OR y NOT
para formar condiciones compuestas.
La selección es un operador unario, es decir; se
aplica a una sola relación. Además, la relación
resultante tendrá los mismos atributos de R.
σ cod_cliente = 001 OR cod_cliente = 003
(cliente_farmacias_med)
SELECT cod_cliente
FROM cliente_farmacias_med
WHERE nombre_cliente = 'TIENDA
LUPE
Haciendo una proyección
Determinar por medio de división
X1 ⟵ πC(R)
X2 ⟵ πC((S x X1) – R)
X ⟵ X1 – X2
Donde X1 sería una proyección del conjunto de
atributos C conformado por el id_venta,
cod_sucursal y monto_venta de la relación
venta.
Para calcular X2 tenemos que hacer un producto
carteciano de S con X1
ℱSUM
Permite realizar una suma de un atributo.
ℱSUM atributo (R)
SELECT SUM(monto_venta), cod_sucursal
FROM venta GROUP BY cod_sucursal
ℱAVG
Permite obtener el promedio de un atributo en
una relación.
ℱAVG atributo (R)
SELECT AVG(monto_venta), cod_sucursal
FROM venta GROUP BY cod_sucursal
Medición de la Productividad