DISEÑO Y
PROGRAMACIÓN DE
BASES DE DATOS
UNIDAD I -
CONCEPTOS GENERALES
BASE DE DATOS
UNIDAD I – CONCEPTOS GENERALES
Una base de datos es un fichero en el cual se almacena información de cualquier tipo.
En dicho fichero la información se guarda en campos o delimitadores. Normalmente el
número de campos que se pueden tener en una base varía según las necesidades en
cuanto a gestión de datos, de forma que después se pueda explotar la información de
forma ordenada y separada, aunque el resto de la información sigue almacenada y
guardada en la base de datos.
Una base de datos, no es solo el fichero en donde están datos, sino que en dicho archivo
se encuentra la estructura de los datos. Para saber que longitud tiene cada campo, hay
que conocer como se llama el campo y qué longitud en caracteres tiene, así como el
tipo de datos en dicho campo, porque puede contener desde letras a números o incluso
otros datos más complejos, dependiendo de la estructura de la base y del sistema gestor.
SISTEMA DE BASES DE DATOS
UNIDAD I – CONCEPTOS GENERALES
Desde un enfoque muy general, un sistema de bases de datos no es más que un sistema
para archivar en computador información relevante. Dicho de otra manera, se podría
considerar como un archivador electrónico donde su único propósito es mantener
información y lograr que esté disponible cundo se necesite. Al usuario que interactúe con
el sistema tendrá a su disposición diversas operaciones sobre estos archivos, las más
comunes son:
• Agregar nuevos archivos vacíos a la base de datos.
• Insertar, actualizar, borrar datos de archivos existentes.
• Eliminar archivos vacíos o no de la base de datos.
La información que se maneje puede ser cualquier cosa, hay que decir que el individuo u
organización que requiera de este sistema debe almacenar datos que se consideren
importantes
SISTEMA DE BASES DE DATOS
UNIDAD I – CONCEPTOS GENERALES
Dicho de otra forma, un Sistema de Bases de Datos (SBD) es una serie de recursos para
manejar grandes volúmenes de información, sin embargo no todos los sistemas que
manejan información son bases de datos.
Un sistema de bases de datos debe responder a las siguientes características:
• Independencia de los Datos. Es decir, que los datos no dependen del programa y por
tanto cualquier aplicación puede hacer uso de los datos.
• Reducción de la Redundancia. Se llama redundancia a la existencia de duplicación
de los datos. Al reducir ésta al máximo se consigue un mayor aprovechamiento del
espacio y se evita que existan inconsistencias entre los datos. Las inconsistencias se
dan cuando se presentan datos contradictorios.
• Seguridad. Un SBD debe permitir que se tenga control sobre la seguridad de los datos.
COMPONENTES DE UN SISTEMA DE BASES DE
DATOS
UNIDAD I – CONCEPTOS GENERALES
Un Sistema de Bases de Datos (SBD) está formado por:
Datos. Corresponde a la información contenida en la Base de Datos. Esta información
debe estar integrada y compartida, lo cual se considera una ventaja inmensa para
sistemas macro por la gran manipulación de datos.
• Integrada. Significa que la base de datos en tanto como sea posible debe evitar la
redundancia de datos, logrando una unificación entre sus archivos. Por ejemplo, en
cierta base de datos se tiene un archivo CLIENTE, con datos nombre, apellido,
teléfono, dirección y también un archivo ESCRITURA, que representa los bienes que
tiene cada cliente. Suponga que para registrar un bien en el archivo ESCRITURA se
necesita la dirección del cliente, es evidente que no hace falta incluir esta información
porque siempre podrá obtenerse mediante una consulta al archivo CLIENTE.
COMPONENTES DE UN SISTEMA DE BASES DE
DATOS
UNIDAD I – CONCEPTOS GENERALES
• Compartida. Significa que los elementos de la base de datos pueden ser accedidos
por diferentes usuarios al tiempo, para propósitos distintos o no. En el ejemplo
CLIENTE/ESCRITURA anteriormente mencionado los datos del cliente pueden ser usados
por un usuario para gestionar una escritura en cuestión y por otro para sacar un
detallado informe del cliente.
COMPONENTES DE UN SISTEMA DE BASES DE
DATOS
UNIDAD I – CONCEPTOS GENERALES
Programas. Entre toda la arquitectura física del computador o máquina donde se ejecute
el sistema y los usuarios que interactúan con ella, existe un nivel de programas o sistemas
de administración de bases de datos (DBMS, database management system). El DBMS es
el encargado de procesar todas las peticiones de los usuarios y hacer la comunicación a
nivel de equipo. Los DBMS tienen dos funciones principales que son:
• La definición de las estructuras para almacenar los datos.
• La manipulación de los datos.
Básicamente cuando el usuario hace una consulta SQL, el DBMS es el encargado de ir a
la base de datos y traer la información. Aunque este componente de software es el más
importante de todo el sistema no hay que dejar pasar por alto las librerías, utilerías,
herramientas de diseño y desarrollo de aplicaciones.
COMPONENTES DE UN SISTEMA DE BASES DE
DATOS
UNIDAD I – CONCEPTOS GENERALES
Máquinas. Las máquinas representan el hardware en el cual se almacenan y administran
las bases de datos.
También hacen referencia a las unidades de almacenamiento, y nivel de procesamiento
de la maquina en la cual este el sistema de base de datos.
COMPONENTES DE UN SISTEMA DE BASES DE
DATOS
UNIDAD I – CONCEPTOS GENERALES
Usuarios. Representan las personas relacionadas con el Sistema de Bases de Datos. Este
concepto se extiende a tres tipos de usuarios:
• Usuario programador de aplicaciones, es el que hace programas que usan las bases
de datos. Hay una inmensidad de lenguajes de programación ya sea de alto o bajo
nivel, que hacen esto posible como, por ejemplo, Java, Python, PHP, Ruby, VB.NET,
etcétera, que son de alto nivel o FireBase que es una plataforma creada por Google
para fomentar el fácil desarrollo de aplicaciones móviles.
COMPONENTES DE UN SISTEMA DE BASES DE
DATOS
UNIDAD I – CONCEPTOS GENERALES
• Usuario final, es quien consume las aplicaciones y obtiene acceso a la base de datos
mediante una interfaz previamente elaborada por el primer usuario antes
mencionado. El usuario final puede ver, editar, eliminar y actualizar los datos en
algunos casos, mediante una aplicación ya sea móvil, web o de escritorio.
• Usuario administrador de bases de datos (DBA, en inglés database administrator), esta
persona es la encargada de velar que las tecnologías, softwares, arquitectura física,
diseño, seguridad, soporte, etcétera, estén en un perfecto orden y perfectamente bien
definidas para así garantizar una total integridad y disponibilidad de los datos.
COMPONENTES DE UN SISTEMA DE BASES DE
DATOS
UNIDAD I – CONCEPTOS GENERALES
DATOS PERSISTENTES
UNIDAD I – CONCEPTOS GENERALES
Los datos en una base de datos conviene llamarlos persistentes, ésta es, por excelencia
una característica de estos sistemas. Por ejemplo, hágase la idea que una compañía no
guardara la información de sus empleados, clientes u operaciones. Sería un caos tratar
de llevar una administración de esa manera.
ENTIDADES E INTERRELACIONES
UNIDAD I – CONCEPTOS GENERALES
Las entidades o esquemas representan objetos o conceptos del mundo real. Las
entidades están constituidas por un nombre y el conjunto de sus atributos. Siguiendo con
el ejemplo de CLIENTE/ESCRITURA, habría dos entidades por supuesto. Si se quisiera
representar la entidad CLIENTE seria:
CLIENTE (nombre,apellido,telefono,dirección)
Una interrelación es esa conexión que une o relaciona de cierta forma dos entidades, es
decir, en el ejemplo anterior un CLIENTE puede tener uno o más bienes por consiguiente
tienen ESCRITURAS. Más adelante se retomará el tema a profundidad.
TIPOS DE BASES DE DATOS
UNIDAD I – CONCEPTOS GENERALES
Las bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que
se esté manejando, la utilidad de las mismas o las necesidades que satisfagan.
Según la Variabilidad de los Datos.
1) Bases de Datos estáticas. Son bases de datos únicamente de lectura, utilizadas
primordialmente para almacenar datos históricos que posteriormente se pueden utilizar
para:
• Estudiar el comportamiento de un conjunto de datos a través del tiempo.
• Realizar proyecciones.
• Tomar decisiones.
• Realizar análisis de datos para inteligencia empresarial.
TIPOS DE BASES DE DATOS
UNIDAD I – CONCEPTOS GENERALES
2) Bases de Datos dinámicas. Son bases de datos donde la información almacenada se
modifica con el tiempo, permitiendo operaciones como:
• Actualización.
• Borrado y edición de datos.
• Operaciones fundamentales de consulta.
MODELOS DE BASES DE DATOS
UNIDAD I – CONCEPTOS GENERALES
Las Bases de Datos se pueden clasificar de acuerdo a su modelo de administración de
datos. Un modelo de datos es básicamente una "descripción" de algo conocido como
contenedor de datos (algo en donde se guarda la información), así como de los
métodos para almacenar y recuperar información de esos contenedores. Los modelos de
datos no son cosas físicas: son abstracciones que permiten la implementación de un
sistema eficiente de base de datos; por lo general se refieren a algoritmos y conceptos
matemáticos.
MODELOS DE BASES DE DATOS
UNIDAD I – CONCEPTOS GENERALES
Bases de Datos Jerárquicas. En este modelo los datos se organizan en forma de árbol
invertido (algunos dicen raíz), en donde un nodo padre de información puede tener
varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos
se los conoce como hojas. Las bases de datos jerárquicas son especialmente útiles en el
caso de aplicaciones que manejan un gran volumen de información y datos muy
compartidos permitiendo crear estructuras estables y de gran rendimiento. Una de las
principales limitaciones de este modelo es su incapacidad de representar eficientemente
la redundancia de datos.
Base de datos de red. Éste es un modelo ligeramente distinto del jerárquico; su diferencia
fundamental es la modificación del concepto de nodo: se permite que un mismo nodo
tenga varios padres (posibilidad no permitida en el modelo jerárquico).
MODELOS DE BASES DE DATOS
UNIDAD I – CONCEPTOS GENERALES
Base de datos relacionales. Éste es el modelo utilizado en la actualidad para representar
problemas reales y administrar datos dinámicamente. Tras ser postulados sus fundamentos
en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó
en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea
fundamental es el uso de "relaciones". Estas relaciones podrían considerarse en forma
lógica como conjuntos de datos llamados "tuplas". Pese a que ésta es la teoría de las
bases de datos relacionales creadas por Codd, la mayoría de las veces se conceptualiza
de una manera más fácil de imaginar. Esto es pensando en cada relación como si fuese
una tabla que está compuesta por registros (las filas de una tabla), que representarían las
tuplas, y campos (las columnas de una tabla).
MODELOS DE BASES DE DATOS
UNIDAD I – CONCEPTOS GENERALES
Base de datos transaccionales. Son bases de datos cuyo único fin es el envío y recepción
de datos a grandes velocidades, estas bases son muy poco comunes y están dirigidas por
lo general al entorno de análisis de calidad, datos de producción e industrial, es
importante entender que su fin único es recolectar y recuperar los datos a la mayor
velocidad posible, por lo tanto la redundancia y duplicación de información no es un
problema como con las demás bases de datos, por lo general para poderlas aprovechar
al máximo permiten algún tipo de conectividad a bases de datos relacionales.
Base de datos multidimensionales. Son bases de datos ideadas para desarrollar
aplicaciones muy concretas, como creación de Cubos OLAP. Básicamente no se
diferencian demasiado de las bases de datos relacionales (una tabla en una base de
datos relacional podría serlo también en una base de datos multidimensional), la
diferencia está más bien a nivel conceptual; en las bases de datos multidimensionales los
campos o atributos de una tabla pueden ser de dos tipos, o bien representan
dimensiones de la tabla, o bien representan métricas que se desean aprender.
MODELOS DE BASES DE DATOS
UNIDAD I – CONCEPTOS GENERALES
Base de datos orientada a objetos. Este modelo, bastante reciente, y propio de los
modelos informáticos orientados a objetos, trata de almacenar en la base de datos los
objetos completos (estado y comportamiento). Una base de datos orientada a objetos es
una base de datos que incorpora todos los conceptos importantes del paradigma de
objetos:
• Encapsulación - Propiedad que permite ocultar la información al resto de los objetos,
impidiendo así accesos incorrectos o conflictos.
• Herencia - Propiedad a través de la cual los objetos heredan comportamiento dentro
de una jerarquía de clases.
• Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a
distintos tipos de objetos.
SISTEMA DE GESTIÓN DE BASES DE DATOS
UNIDAD I – CONCEPTOS GENERALES
Un sistema gestor de base de datos (SGBD) es un conjunto de programas que permiten el
almacenamiento, modificación y extracción de la información en una base de datos,
además de proporcionar herramientas para añadir, borrar, modificar y analizar los datos.
Los usuarios pueden acceder a la información usando herramientas específicas de
interrogación y de generación de informes, o bien mediante aplicaciones al efecto.
Estos sistemas también proporcionan métodos para mantener la integridad de los datos,
para administrar el acceso de usuarios a los datos y para recuperar la información si el
sistema se corrompe. Permiten presentar la información de la base de datos en variados
formatos. La mayoría incluyen un generador de informes. También pueden incluir un
módulo gráfico que permita presentar la información con gráficos y tablas. Hay muchos
tipos distintos según cómo manejen los datos y muchos tamaños distintos de acuerdo a si
operan en computadoras personales y con poca memoria o grandes sistemas que
funcionan en mainframes con sistemas de almacenamiento especiales.
ARQUITECTURA DE LOS SISTEMAS DE BASES
DE DATOS
UNIDAD I – CONCEPTOS GENERALES
La arquitectura de los paquetes DBMS ha tenido un crecimiento exponencial, al pasar de
sistemas integrados y rígidos a sistemas con diseño totalmente modular y con servicios
cliente/servidor. Básicamente cuando se habla de cliente/servidor se hace notar que la
arquitectura se divide en dos módulos, el cliente que es la estación de trabajo ejecutable
en un computador personal, proporcionando interfaces amigables para el usuario y el
servidor encargado de la manipulación de los datos, el acceso, la búsqueda, etcétera.
NIVELES DE ARQUITECTURA DE LOS SISTEMAS
DE BASES DE DATOS
UNIDAD I – CONCEPTOS GENERALES
La arquitectura ANSI/SPARC o arquitectura de tres esquemas tiene como objetivo separar
lógicamente las aplicaciones de usuario y las bases de datos físicas. Los tres niveles son:
• El nivel interno: Define la estructura más cercana al almacenamiento físico de los
datos.
• El nivel externo: Es el más cercano a los usuarios, incluye una cierta cantidad de
esquemas externos o vistas. Los usuarios pueden ser o no programadores.
• El nivel conceptual: Este nivel se podría considerar como un mediador entre los dos
niveles pasados, se enfoca en la representación de las entidades, los tipos de datos,
las relaciones, operaciones de usuario, etcétera.
NIVELES DE ARQUITECTURA DE LOS SISTEMAS
DE BASES DE DATOS
UNIDAD I – CONCEPTOS GENERALES
UNIDAD II -
MODELAMIENTO DE BASES DE
DATOS
MODELO ENTIDAD-RELACIÓN
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
El modelo entidad-relación es una herramienta para el modelado de datos que permite
representar las entidades relevantes de un sistema de información así como sus
interrelaciones y propiedades.
El modelo entidad relación se compone de unos elementos tales como:
1. Entidad: Las entidades representan cosas u objetos (ya sean reales o abstractos), que
se diferencian claramente entre sí. Su representación gráfica es la siguiente:
CLIENTES
MODELO ENTIDAD-RELACIÓN
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
2. 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. Estos atributos pueden ser de distintos tipos
(numéricos, texto, fecha...). Su representación gráfica es la siguiente:
NUM. SERIE
MODELO ENTIDAD-RELACIÓN
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
2. 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. Su representación gráfica es la siguiente:
REALIZA
1 : N
EJEMPLO
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Se tiene un taller mecánico en donde se manejan coches, empleados y el cargo del
empleado, es importante tener en cuenta que para los autos se requiere el número del
chasis, matricula, Numero de identificación del propietario, marca y modelo. Por otro
lado para los empleados se requiere nombre, Numero de identificación y cargo.
La solución es la siguiente:
1. Se definen las entidades: Coches, Empleados, Cargo del empleado.
2. Se definen los atributos de las entidades: para coches número del chasis, matricula,
Numero de identificación del propietario, marca y modelo; Para empleados nombre,
Numero de identificación y cargo. Y para cargo tipo de cargo.
3. Se establecen relaciones como Arreglan y es en el taller.
4. Se definen relaciones de carnalidad
5. Se procede a realizar el diagrama.
EJEMPLO
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
EJERCICIO #1
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Se requiere una base de datos para una pequeña empresa debe contener información
acerca de clientes, artículos y pedidos. Hasta el momento se registran los siguientes datos
en documentos varios:
1. Para cada cliente: Número de cliente (único), Direcciones de envío (varias por
cliente), Saldo, Límite de crédito (depende del cliente, pero en ningún caso debe
superar los 3.000.000 pts), Descuento.
2. Para cada artículo: Número de artículo (único), Fábricas que lo distribuyen, Existencias
de ese artículo en cada fábrica, Descripción del artículo.
EJERCICIO #1
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
3. Para cada pedido: Cada pedido tiene una cabecera y el cuerpo del pedido. La
cabecera está formada por el número de cliente, dirección de envío y fecha del
pedido. El cuerpo del pedido son varias líneas, en cada línea se especifican el
número del artículo pedido y la cantidad.
Además, se ha determinado que se debe almacenar la información de las fábricas. Sin
embargo, dado el uso de distribuidores, se usará: Número de la fábrica (único) y Teléfono
de contacto. Y se desean ver cuántos artículos (en total) provee la fábrica. También, por
información estratégica, se podría incluir información de fábricas alternativas respecto de
las que ya fabrican artículos para esta empresa. Nota: Una dirección se entenderá como
Nº, Calle, Comuna y Ciudad. Una fecha incluye hora. Se pide hacer el diagrama ER para
la base de datos que represente esta información
SOLUCIÓN A EJERCICIO #1
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
La solución a la situación planteada se resuelve de esta forma:
1. Se definen las entidades: Cliente, pedido, articulo fábrica.
2. Se definen los atributos de las entidades: para Cliente serian Descuento, límite de
crédito, Saldo, #Cliente, Direcciones de Envío. Nótese que de este último atributo se
desprenden otros atributos. Para Pedido se tiene fecha y Dirección de envío. Para
artículo se tiene #articulo y descripción y para fabrica #de fábrica y teléfono.
3. Se establecen relaciones como Es hecho, Se incluye y fabrica.
4. Se definen relaciones de carnalidad
5. Se procede a realizar el diagrama.
SOLUCIÓN A EJERCICIO #1
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
EJERCICIO #2
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Generar el Diagrama Entidad-Relación con las 3 entidades siguientes:
• ALUMNO (Núm_Matrícula, Nombre, FechaNacimiento, Teléfono)
• ASIGNATURA (Código_asignatura, Nombre)
• PROFESOR (Id_P, NIF_P, Nombre, Especialidad, Teléfono)
Teniendo en cuenta:
• Un alumno puede estar matriculado de una o varias asignaturas.
• Además puede estar matriculado en la misma asignatura más de un curso escolar (si
repite).
• Se quiere saber el curso escolar en el que cada alumno está matriculado de cada
asignatura.
• En una asignatura habrá como mínimo 10 y como máximo 25 alumnos.
• Una asignatura es impartida por un único profesor.
• Un profesor podrá impartir varias asignaturas.
EJERCICIO #3
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Generar el diagrama E/R con las cuatro entidades siguientes:
• REGIÓN ( Nombre_Región)
• DEPARTAMENTO (CódigoDepartamento, Nombre_departamento)
• MUNICIPIO (Código_Municipio, Nombre)
• EMPLEADO (Id, Nombre, Apellido, Teléfono, Salario)
Se quiere guardar información del municipio donde ha nacido cada uno de los
empleados teniendo en cuenta que:
• Un empleado ha nacido en un solo municipio.
• Cada municipio pertenece a un único departamento.
• Cada departamento pertenece a una única región del país.
EJERCICIO #4
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Construir el modelo E/R que refleje toda la información necesaria para almacenar la
información relativa a aspectos del campeonato mundial de fútbol considerando los
supuestos semánticos siguientes:
1. Un jugador pertenece a un único equipo y no hay dos jugadores con el mismo
nombre.
2. Un jugador puede actuar en varios puestos distintos, pero en un determinado partido
sólo puede jugar en un puesto.
3. En cada partido intervienen varios colegiados.
4. Un colegiado puede realizar una función en un partido y otra distinta en otro partido.
5. Es obligatorio en todo momento que un jugador pertenezca a un equipo
determinado y no podría cambiar de equipo a lo largo del mundial
EJERCICIO #5
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Se desea mantener una base de datos para una cadena de farmacias distribuida en
diferentes ciudades. Cada farmacia tiene sus empleados propios y un farmacéutico. Por
cada ciudad existe un único farmacéutico; esto es, si en una ciudad hubiera más de una
farmacia, el mismo farmacéutico estaría afectado a todas las farmacias de esa ciudad.
Cada farmacia tiene a su vez su stock de medicamentos. El mismo se mantiene por
medicamento y presentación. Los medicamentos se organizan según la o las
monodrogas que lo componen, su presentación (por ejemplo ampollas de 5 unidades,
jarabe de 100 ml, inyecciones por 10 unidades, pomada 60 gr, etc.), el laboratorio que lo
comercializa, y su acción terapéutica (analgésico, antibiótico, etc.).
Por cada medicamento se mantiene su precio y la cantidad en existencia del mismo. El
sistema deberá permitir consultar la base de datos de diferentes alternativas para
medicamentos compuestos por una monodroga, medicamentos de un laboratorio,
presentaciones de un medicamento, entre otras.
EJERCICIO #6
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Diseñar un esquema E/R que recoja la organización de una base de datos para contener
la información sobre todas las carreteras del país, sabiendo que se deben cumplir las
siguientes especificaciones:
- Las carreteras están divididas en varias categorías (locales, comerciales, regionales,
nacionales, autovías, etc).
- Las carreteras se dividen en tramos. Un tramo siempre pertenece a una única
carretera y no puede cambiar de carretera.
- Un tramo puede pasar por varias comunas, interesando conocer el Km de la carretera
y la comuna donde empieza el tramo y en donde termina.
- Para los tramos que suponen principio o final de carretera, interesa saber si es que la
carretera concluye físicamente o es que confluye en otra carretera. En este caso,
interesa conocer con qué carretera confluye y en qué kilómetro, tramo y comuna.
EJERCICIO #7
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
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 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.
NORMALIZACIÓN
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
La normalización es el proceso mediante el cual se transforman datos complejos a un
conjunto de estructuras de datos más pequeñas, que además de ser más simples y más
estables, son más fáciles de mantener. También se puede entender la normalización
como una serie de reglas que sirven para ayudar a los diseñadores de bases de datos a
desarrollar un esquema que minimice los problemas de lógica. Cada regla está basada
en la que le antecede.
La normalización se adoptó porque el viejo estilo de poner todos los datos en un solo
lugar, como un archivo o una tabla de la base de datos, era ineficiente y conducía a
errores de lógica cuando se trataban de manipular los datos.
NIVELES DE NORMALIZACIÓN
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Existen básicamente tres niveles de normalización: Primera Forma Normal (1NF), Segunda
Forma Normal (2NF) y Tercera Forma Normal (3NF). Cada una de estas formas tiene sus
propias reglas.
Cuando una base de datos se conforma a un nivel, se considera normalizada a esa
forma de normalización. No siempre es una buena idea tener una base de datos
conformada en el nivel más alto de normalización, puede llevar a un nivel de
complejidad que pudiera ser evitado si estuviera en un nivel más bajo de normalización.
PRIMERA FORMA NORMAL
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Una tabla está en 1FN si todos los atributos no clave, dependen funcionalmente de la
clave (es decir, si dada una clave se puede obtener el valor de todos sus atributos), o lo
que es lo mismo, no existen grupos repetitivos para un valor de clave.
Pasos:
a) Se crea a partir de la tabla inicial una nueva tabla con los atributos que dependen
funcionalmente de la clave (Que tendrán la misma clave que la tabla inicial). Esta
tabla ya está en primera forma normal.
b) Se crea una nueva tabla con los atributos restantes, eligiendo de entre estos uno
como clave de la tabla (o más de uno). Los criterios de elección de clave serán los
mismos que se expusieron para los tipos de clave.
c) Se comprueba si esta tabla esta en primera forma normal. Si es así, la tabla inicial ya
está normalizada y finaliza el proceso. Si no, tomamos esta tabla como tabla inicial y
volvemos a realizar el apartado A.
EJEMPLO PRIMERA FORMA NORMAL
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Un dato sin normalizar no cumple con ninguna regla de normalización. En base a los
datos de la siguiente tabla, aplicaremos primera forma normal.
EJEMPLO PRIMERA FORMA NORMAL
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Al examinar estos registros, podemos darnos cuenta que contienen un grupo repetido
para NUM_ITEM, DESC_ITEM, CANT y PRECIO. La 1FN prohíbe los grupos repetidos, por lo
tanto tenemos que convertir a la primera forma normal. Los pasos a seguir son:
• Tenemos que eliminar los grupos repetidos.
• Tenemos que crear una nueva tabla con la PK de la tabla base y el grupo repetido.
Los registros quedan ahora conformados en dos tablas que llamaremos ÓRDENES y
ARTICULOS_ORDENES
EJEMPLO PRIMERA FORMA NORMAL
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
ORDENES
EJEMPLO PRIMERA FORMA NORMAL
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
ARTICULOS_ORDENES
SEGUNDA FORMA NORMAL
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Una tabla esta en segunda forma normal si esta en primera forma normal y además todos
los atributos que no pertenecen a la clave dependen funcionalmente de forma
completa de ella. De esta definición se desprende que de una tabla en primera forma
normal y cuya clave está compuesta por un único atributo está en segunda forma
normal.
Pasos:
a) Se crea a partir de la tabla inicial una nueva tabla con los atributos que dependen
funcionalmente de forma completa de la clave (Que tendrán la misma clave que la
tabla inicial). Esta tabla ya está en segunda forma normal.
b) Se crea una nueva tabla con los atributos restantes, siendo su clave el subconjunto de
atributos de la clave inicial de los que dependen de forma completa.
c) Se comprueba si esta tabla esta en segunda forma normal. Si es así, la tabla inicial ya
está normalizada y finaliza el proceso. Si no, tomamos esta tabla como tabla inicial y
volvemos a realizar el primer paso.
EJEMPLO SEGUNDA FORMA NORMAL
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Continuando con el ejemplo de la forma normal 1, ahora procederemos a aplicar la
segunda forma normal, es decir, tenemos que eliminar cualquier columna no clave que
no dependa de la llave primaria de la tabla. Los pasos a seguir son:
• Determinar cuáles columnas que no son clave no dependen de la llave primaria de la
tabla.
• Eliminar esas columnas de la tabla base.
• Crear una segunda tabla con esas columnas y la(s) columna(s) de la PK de la cual
dependen.
La tabla ÓRDENES está en 2FN. Cualquier valor único de ID_ORDEN determina un sólo
valor para cada columna. Por lo tanto, todas las columnas son dependientes de la llave
primaria ID_ORDEN.
EJEMPLO SEGUNDA FORMA NORMAL
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Por su parte, la tabla ARTICULOS_ORDENES no se encuentra en 2FN ya que las columnas
PRECIO y DESC_ITEM son dependientes de NUM_ITEM, pero no son dependientes de
ID_ORDEN. Lo que haremos a continuación es eliminar estas columnas de la tabla
ARTICULOS_ORDENES y crear una tabla ARTICULOS con dichas columnas y la llave
primaria de la que dependen.
Las Tablas quedan de la siguiente manera:
EJEMPLO SEGUNDA FORMA NORMAL
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
ARTICULOS_ORDENES
EJEMPLO SEGUNDA FORMA NORMAL
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
ARTICULOS
TERCERA FORMA NORMAL
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Una tabla esta en tercera forma normal si esta en segunda forma normal y además no
existen atributos no claves que dependan transitivamente de la clave, es decir, no debe
haber atributos no clave que dependan de otros atributos no primos (que no pertenecen
a la clave).
Pasos:
a) Se crea a partir de la tabla inicial una nueva tabla con los atributos que no poseen
dependencias transitivas. (Que tendrán la misma clave que la tabla inicial). Esta
tabla ya está en segunda forma normal.
b) Se crea una nueva tabla con los atributos restantes, siendo su clave el subconjunto de
atributos de la clave inicial de los que dependen de forma completa.
c) Se crea una nueva tabla con los dos atributos no clave, que intervienen en la
dependencia transitiva, seleccionando entre ambos a aquel que cumpla los
requerimientos de clave. Esta nueva tabla está ya en tercera forma normal.
EJEMPLO TERCERA FORMA NORMAL
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
La tercera forma normal nos dice que tenemos que eliminar cualquier columna no llave
que sea dependiente de otra columna no llave. Los pasos a seguir son:
• Determinar las columnas que son dependientes de otra columna no llave.
• Eliminar esas columnas de la tabla base.
• Crear una segunda tabla con esas columnas y con la columna no llave de la cual son
dependientes.
Al observar las tablas que hemos creado en el ejemplo que hemos tomado como
modelo, nos damos cuenta que tanto la tabla ARTICULOS, como la tabla
ARTICULOS_ORDENES se encuentran en 3FN. Sin embargo la tabla ÓRDENES no lo está, ya
que NOM_CLIENTE y ESTADO son dependientes de ID_CLIENTE, y esta columna no es la
llave primaria.
EJEMPLO TERCERA FORMA NORMAL
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Para normalizar esta tabla, moveremos las columnas no llave y la columna llave de la
cual dependen dentro de una nueva tabla CLIENTES. Las nuevas tablas CLIENTES y
ÓRDENES se muestran a continuación.
ORDENES
EJEMPLO TERCERA FORMA NORMAL
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
CLIENTES
EJERCICIO #1
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Aplicar las reglas de Normalización a los datos de la siguiente tabla:
Id_orden Fecha Id_cliente N_cliente Estado Num_art nom_art cant Precio
2301 23/02/11 101 Martin Caracas 3786 Red 3 35,00
2301 23/02/11 101 Martin Caracas 4011 Raqueta 6 65,00
2301 23/02/11 101 Martin Caracas 9132 Paq-3 8 4,75
2302 25/02/11 107 Herman Coro 5794 Paq-6 4 5,00
2303 27/02/11 110 Pedro Maracay 4011 Raqueta 2 65,00
2303 27/02/11 110 Pedro Maracay 3141 Funda 2 10,00
EJERCICIO #2
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
La empresa COLOMBIAN SYSTEMS lo ha contratado como el “Ingeniero Encargado” para
sistematizar la facturación. En la siguiente FACTURA DE COMPRA VENTA, usted debe
analizar toda la información disponible y aplique el proceso de normalización, hasta
llegar a la Tercera Forma Normal.
Se pide realizar la respectiva justificación detallada de cada uno de los pasos que
conduzcan al resultado final.
Factura(NUM_FAC,FECHA_FAC, NOM_CLIENTE, DIR_CLIENTE, RIF_CLIENTE, CIUDAD_CLIENTE,
TELEF_CLIENTE, CATEGORIA, COD_PROD, DESP_PROD, VAL_UNIT, CANT_PROD)
EJERCICIO #2
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Donde:
NUM_FAC: Número de la factura de compra venta
FECHA_FAC: Fecha de la factura de compra venta
NOM_CLIENTE: Nombre del cliente
DIR_CLIENTE: Dirección del cliente
RIF_CLIENTE: Rif del cliente
CIUDAD_CLIENTE: Ciudad del cliente
TELEF_CLIENTE: Teléfono del cliente
CATEGORIA: Categoría del producto
COD_PROD: Código del producto
DESCRIPCION: Descripción del producto
VAL_UNIT: Valor unitario del producto
CANT_PROD: Cantidad de productos q compra el cliente
La llave primaria es Número de Factura de venta: NUM_FAC
EJERCICIO #3
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
EMPRESA DE ENVIO DE MERCANCIA: a continuación se agrupan todos los atributos que
hacen parte de la base de datos para aplicarle las reglas de normalización. Donde se
incluyen los nombres de los atributos con su significado
* GUIA_NO = Numero de Guia
* GUIA_FECHA= Fecha de la Guia
* GUIA_HORA= Hora de la Guia
* ORGN_RIF = Identificacion de Empresa Origen
* ORGN_NOM = Nombre de Empresa Origen
* ORGN_ACT = Actividad Comercial de Empresa Origen
* ORGN_CIUDAD= Ciudad de Empresa Origen
* ORGN_DIR = Direccion de Empresa Origen
* ORGN_TEL = Telefono de Empresa Origen
* ORGN_CEL = Celular de Empresa Origen
* DEST_ID = Identificacion del destinatario
EJERCICIO #3
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
* DEST_NOM = Nombre del destinatario
* DEST_COD_CIUDAD = Codigo de la ciudad del destinatario
* DEST_CIUDAD= Ciudad del destinatario
* DEST_DIR = Direccion del destinatario
* DEST_TEL = Telefono del destinatario
* DEST_KM = Distancia kilometraje de Ciudad origen a ciudad del destinatario
* CODIGO = Codigo del paquete
* TIPO = Tipo de paquete
* NOMBRE = Nombre del paquete
* DESCRIPCION = Descripción del paquete
* VALR_ FLETE = Valor del flete
EJERCICIO #4
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Video club: En una tienda de video se necesita mantener información de alrededor de
3000 casetas cada uno de los casetes tiene asignado un número por cada `película se
necesita conocer un titulo y categoría por ejemplo: comedia, suspenso, drama, acción,
ciencia ficción, etc. Se mantienen algunas copias de muchas películas. Se le da a cada
película una identificación y se mantiene seguimiento de lo que contiene cada casete.
Un casete puede venir en varios formatos y una película es grabada en un solo casete;
frecuentemente las películas son pedidas de acuerdo a un actor especifico Tom Cruise y
Demi More son los más populares es por esto que se debe mantener información de los
actores que pertenecen a cada película.
No en todas las películas actúan artistas famosos, a los clientes de la tienda le gusta
conocer datos como el nombre real del actor, y su fecha de nacimiento.
EJERCICIO #4
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
En la tienda se mantienen información solo de los actores que aparecen en las películas y
que se tiene a disposición. Solo se alquila videos a aquellos que pertenecen al club de
videos. Para pertenecer al club se debe tener un buen crédito. Por cada miembro del
club se mantiene una ficha con su nombre, teléfono y dirección, cada miembro del club
tiene asignado un número de membresía. Se desea mantener información de todos los
casetes que un cliente alquila, cuando un cliente alquila un casete se debería conocer el
nombre de la película, la fecha en la que se alquila y la fecha de devolución.
Se pide aplicar las reglas de normalización hasta la tercera forma normal, teniendo las
siguientes entidades con sus respectivos atributos:
Alquiler (cod_alquiler, num_membresia, cod_cliente, nom_cliente, dir_cliente,
telef_cliente, cod_cassette, fecha_alquiler, fecha_dev, valor_alquiler, cantidad)
Cassettte (cod_cassette, num_copias, formato, cod_pelicula, titulo, categoría, cod_actor,
nom_actor, fechanac_actor, cod_tipo)
EJERCICIO #4
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Donde:
cod_alquiler = Codigo del alquiler
num_membresia = Numero de membresia
cod_cliente = código del cliente
nom_cliente = nombre del cliente
dir_cliente = dirección del cliente
telef_cliente = teléfono del cliente
cod_cassette = código del cassette
fecha_alquiler = fecha del alquiler del al película
fecha_dev = fecha de devolución de la pelicula
valor_alquiler = valor del alquiler de la película
cantidad = cantidad de película alquilada
EJERCICIO #4
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
num_copias = números de copias de cassette
formato = formato del cassette
titulo = nombre de la película
categoría = categoría de la película
cod_actor = código del actor
nom_actor = nombre del actor
fechanac_actor = fecha de nacimiento del actor
cod_tipo = código del tipo de película.
EJERCICIO #5
UNIDAD II – MODELAMIENTO DE BASES DE DATOS
Se presenta una base de datos de una biblioteca, aplicar las reglas de normalización
simplificando hasta la tercera forma normal.
codLibro Titulo Autor Editorial nombreLector Fechadev
1001 Variable
compleja
Murray Spiegel McGraw Hill Pérez Gómez,
Juan
15/04/2005
1004 Visual Basic 5 E. Petroustsos Anaya Ríos Terán, Ana 17/04/2005
1005 Estadística Murray Spiegel McGraw Hill Roca, René 16/04/2005
1006 Oracle
University
Nancy
Greenberg y
Priya Nathan
Oracle Corp. García Roque,
Luis
20/04/2005
1007 Clipper 5.01 Ramalho McGraw Hill Pérez Gómez,
Juan
18/04/2005
UNIDAD III -
MODELO RELACIONAL
PRINCIPIOS DEL MODELO RELACIONAL
UNIDAD III – MODELO RELACIONAL
El modelo relacional, para el modelado y la gestión de bases de datos, es un modelo de
datos basado en la lógica de predicados y en la teoría de conjuntos.
En este modelo todos los datos son almacenados en relaciones, y como cada relación es
un conjunto de datos, el orden en el que estos se almacenen no tiene relevancia. Por lo
tanto, este modelo considera la base de datos como una colección de relaciones.
De manera simple, una relación representa una tabla que no es más que un conjunto de
filas, cada fila es un conjunto de campos y cada campo representa un valor que
interpretado describe el mundo real. Cada fila también se puede denominar tupla o
registro y a cada columna también se le puede llamar campo o atributo.
OBJETIVOS DEL MODELO RELACIONAL
UNIDAD III – MODELO RELACIONAL
Independencia Física: El almacenamiento de los datos no influye en su manipulación. Si el
almacenamiento físico cambia, los usuarios que acceden a esos datos no tienen que
modificar sus aplicaciones.
Independencia Lógica: Las aplicaciones que utilizan la base de datos no deben ser
modificadas por que se inserten, actualicen y eliminen datos.
Flexibilidad: Cada usuario puede presentar a los datos de la forma en que éste prefiera.
Uniformidad: Las estructuras lógicas de los datos siempre tienen una única forma
conceptual (las tablas), lo que facilita la creación y manipulación de la base de datos
por parte de los usuarios.
Sencillez: Las características anteriores hacen que este Modelo sea fácil de comprender
y de utilizar por parte del usuario final.
CARACTERÍSTICAS DEL MODELO
RELACIONAL
UNIDAD III – MODELO RELACIONAL
• Los datos son atómicos o monovaluados.
• Los datos de cualquier columna son de un solo tipo.
• Cada columna posee un nombre único.
• El orden de las columnas no es de importancia para la tabla.
• Las columnas de una relación se conocen como atributos.
• Cada atributo tiene un dominio.
CARACTERÍSTICAS DEL MODELO
RELACIONAL
UNIDAD III – MODELO RELACIONAL
• No existen 2 filas en la tabla que sean idénticas.
• La información en las bases de datos son representados como datos explícitos.
• Cada relación tiene un nombre específico y diferente al resto de las relaciones.
• Los valores de los atributos son atómicos: en cada tupla, cada atributo (columna)
toma un solo valor. Se dice que las relaciones están normalizadas.
• El orden de los atributos no importa: los atributos no están ordenados.
CARACTERÍSTICAS DEL MODELO
RELACIONAL
UNIDAD III – MODELO RELACIONAL
• Cada tupla es distinta de las demás: no hay tuplas duplicadas
• El orden de las tuplas no importa: las tuplas no están ordenadas.
• Los atributos son atómicos: en cada tupla, cada atributo (columna) toma un solo valor.
Se dice que las relaciones están normalizadas.
REGLAS DE INTEGRIDAD
UNIDAD III – MODELO RELACIONAL
Una base de datos contiene unos datos que, en cada momento, deben reflejar la
realidad o, más concretamente, la situación de una porción del mundo real. En el caso
de las bases de datos relacionales, esto significa que la extensión de las relaciones (es
decir, las tuplas que contienen las relaciones) deben tener valores que reflejen la realidad
correctamente.
Suele ser bastante frecuente que determinadas configuraciones de valores para las
tuplas de las relaciones no tengan sentido, porque no representan ninguna situación
posible del mundo real.
REGLAS DE INTEGRIDAD
UNIDAD III – MODELO RELACIONAL
• Integridad de Dominio: Conjunto de valores válidos de un campo (propiedades del
campo)
• Integridad de Transiciones: Define los estados por lo que un registro puede pasar
válidamente (operación previa)
• Integridad de Entidades: Asegura la integridad de las tablas (claves, identificación)
• Integridad Referencial: Mantienen y protegen vínculos entre tablas (propiedades de las
relaciones)
• Integridad de Bases de Datos: Referencian más de una tabla, gobiernan la DB como
un todo.
• Integridad de Transacciones: Controlan la forma como se manipulan los datos entre
una o varias BD
REGLAS DE INTEGRIDAD
UNIDAD III – MODELO RELACIONAL
REGLAS DE INTEGRIDAD
UNIDAD III – MODELO RELACIONAL
Regla de Integridad de Unicidad de la Llave Primaria
La regla de integridad de unicidad está relacionada con la definición de clave primaria.
Concretamente, establece que toda clave primaria que se elija para una relación no
debe tener valores repetidos.
Edificio Número Superficie
Marina 120 10
Marina 122 15
Marina 230 20
Diagonal 120 10
REGLAS DE INTEGRIDAD
UNIDAD III – MODELO RELACIONAL
En esta relación, dado que la clave primaria está formada por edificio y número, no hay
ningún despacho que repita tanto edificio como número de otro despacho. Sin
embargo, sí se repiten valores de edificio (por ejemplo, Marina); y también se repiten
valores de número (120). A pesar de ello, el edificio y el número no se repiten nunca al
mismo tiempo.
REGLAS DE INTEGRIDAD
UNIDAD III – MODELO RELACIONAL
Regla de Integridad de Entidad de la Llave Primaria
La regla de integridad de entidad de la clave primaria dispone que los atributos de la
clave primaria de una relación no pueden tener valores nulos.
Edificio Número Superficie
Marina 120 10
Marina 122 15
Marina 230 20
Diagonal 120 10
REGLAS DE INTEGRIDAD
UNIDAD III – MODELO RELACIONAL
En esta relación, puesto que la clave primaria está formada por edificio y número, no hay
ningún despacho que tenga un valor nulo para edificio, ni tampoco para número.
Esta regla es necesaria para que los valores de las claves primarias puedan identificar las
tuplas individuales de las relaciones. Si las claves primarias tuviesen valores nulos, es
posible que algunas tuplas no se pudieran distinguir.
REGLAS DE INTEGRIDAD
UNIDAD III – MODELO RELACIONAL
Regla de Integridad Referencial
La regla de integridad referencial está relacionada con el concepto de clave foránea.
Concretamente, determina que todos los valores que toma una clave foránea deben ser
valores nulos o valores que existen en la clave primaria que referencia.
Edificio Número Superficie
Marina 120 10
Marina 122 15
Marina 230 20
Diagonal 120 10
ID Nombre Apellido EdiDesp NumDesp
40.444 Juan García Marina 120
33.567 Marta Roca Marina 120
55.898 Carlos Buendía Diagonal 120
77.232 Elena Pla Marina 122
REGLAS DE INTEGRIDAD
UNIDAD III – MODELO RELACIONAL
Se tiene la relación DESPACHOS y EMPLEADOS donde edificiodesp y númerodesp de la
relación EMPLEADOS forman una clave foránea que referencia la relación DESPACHOS.
Debe ocurrir que los valores no nulos de edificiodesp y númerodesp de la relación
EMPLEADOS estén en la relación DESPACHOS como valores de edificio y número. Por
ejemplo, el empleado <40.444, Juan García, Marina, 120> tiene el valor Marina
para edificiodesp, y el valor 120 para númerodesp, de modo que en la relación
DESPACHOS hay un despacho con valor Marina para edificio y con valor 120
para número.
La necesidad de la regla de integridad relacional proviene del hecho de que las claves
foráneas tienen por objetivo establecer una conexión con la clave primaria que
referencian. Si un valor de una clave foránea no estuviese presente en la clave primaria
correspondiente, representaría una referencia o una conexión incorrecta.
ESQUEMA DEL MODELO RELACIONAL
UNIDAD III – MODELO RELACIONAL
Un esquema contiene la definición de una estructura (generalmente relaciones o tablas
de una base de datos), es decir, determina la identidad de la relación y qué tipo de
información podrá ser almacenada dentro de ella; en otras palabras, el esquema
contiene los metadatos de la relación.
Todo esquema constará de:
• Nombre de la relación (su identificador).
• Nombre de los atributos (o campos) de la relación y sus dominios; el dominio de un
atributo o campo define los valores permitidos para el mismo, equivalente al tipo de
dato por ejemplo character, integer, date, string...
La notación para un esquema es el nombre de la relación seguido de una lista de sus
atributos entre paréntesis.
Productos (codigo,nombre,tipo,precio,peso)
INSTANCIAS DEL MODELO RELACIONAL
UNIDAD III – MODELO RELACIONAL
Una instancia de manera formal es la aplicación de un esquema a un conjunto finito de
datos. En palabras no tan técnicas, se puede definir como el contenido de una tabla en
un momento dado, pero también es válido referirse a una instancia cuando se trabaja o
se muestra únicamente un subconjunto de la información contenida en una relación o
tabla, como por ejemplo:
• Ciertos caracteres y números (una sola columna de una sola fila).
• Algunas o todas las filas con todas o algunas columnas
o Cada fila es una tupla. El número de filas es llamado cardinalidad.
o El número de columnas es llamado aridad o grado.
ATRIBUTOS
UNIDAD III – MODELO RELACIONAL
Un Atributo en el Modelo Relacional representa una propiedad que posee esa Relación y
equivale al atributo del Modelo E-R, y se corresponde con la idea de campo o columna.
En el caso de que sean varios los atributos de una misma tabla, definidos sobre el mismo
dominio, habrá que darles nombres distintos, ya que una tabla no puede tener dos
atributos con el mismo nombre.
TUPLAS
UNIDAD III – MODELO RELACIONAL
Una tupla es una secuencia de valores agrupados, que sirve para agrupar, como si
fueran un único valor, varios valores que, por su naturaleza, deben ir juntos.
El tipo de datos que representa a las tuplas se llama tuple. El tipo tuple es inmutable: una
tupla no puede ser modificada una vez que ha sido creada. En resumen, una tupla es
una fila que contiene todos los datos para un registro individual.
(123,escritorio,Oficina,200000,10000)
GRADO Y CARDINALIDAD
UNIDAD III – MODELO RELACIONAL
Grado. Representa el número de columnas de la relación (número de atributos). La
relación del ejemplo es de grado cinco porque tiene cinco atributos. Esto quiere decir
que cada fila de la tabla es una tupla con cinco valores.
Cardinalidad. Representa el número de tuplas de una relación (número de filas). Ya que
en las relaciones se van insertando y borrando tuplas a menudo, la cardinalidad de las
mismas varía constantemente.
DOMINIO
UNIDAD III – MODELO RELACIONAL
Define que cada componente para cada tupla debe ser atómico, es decir, cada
componente y atributo deben pertenecer a un tipo elemental como enteros o cadenas,
a eso se le denomina dominio. En el ejemplo, el código es de tipo entero y nombre de
tipo cadena.
Es necesario decir que los componentes no pueden ser una estructura de registro. Al
permitir eso un componente podría tener distintos dominios y esto es justo lo que se quiere
evitar.
CLAVES
UNIDAD III – MODELO RELACIONAL
Ya que en una relación no hay tuplas repetidas, éstas se pueden distinguir unas de otras,
es decir, se pueden identificar de modo único. La forma de identificarlas es mediante los
valores de sus atributos.
Clave candidata
Conjunto de atributos que permiten identificar en forma única cada tupla de la relación.
Es decir columnas cuyos valores no se repiten para esa tabla. Los atributos candidatos
para una tabla de individuos (clientes, pacientes, etc.) es el ‘rut’, un número de seguro
social, un ‘id’ de cliente (numérico o de caracter).
Clave externa, ajena o foránea
Atributo cuyos valores coinciden con una clave candidata (normalmente primaria) de
otra tabla.
CLAVES
UNIDAD III – MODELO RELACIONAL
Clave primaria
Clave candidata que se escoge como identificador de las tuplas. Se elige como primaria
la candidata que identifique mejor a cada tupla en el contexto de la base de datos. Por
ejemplo un atributo con el RUT sería clave candidata de una tabla de clientes, aunque si
en esa relación existe un atributo de código de cliente, este sería mejor candidato para
clave principal, porque es mejor identificador para ese contexto.
Clave alternativa
Cualquier clave candidata que no sea primaria y que también puede identificar de
manera única una tupla. Al momento de crear la relación como tabla en la Base de
Datos se debe definir una constraints de tipo UNIQUE.
FUNCIONAMIENTO DEL MODELO
RELACIONAL
UNIDAD III – MODELO RELACIONAL
Hay que tener en cuenta que las propias tablas ya establecen relaciones entre los datos,
de ahí el nombre. En realidad se rige por unas normas sencillas, que son las siguientes:
• Las tablas son el centro del modelo y los datos deben ser representados en ellas.
También se usan tablas cuando se calculan resultados de otras.
• El orden de cada columna viene determinado por el tipo de consulta que se realice.
Por tanto, no es necesario un orden inicial, ya que cada relación la conforma un
conjunto único de datos.
• Las filas son datos o casos, las columnas campos o variables. Por otro lado, cada celda
es un registro que tiene dos dimensiones.
• Es imprescindible disponer de un identificador único (clave primaria) de cada registro.
Este permite establecer relaciones entre dos o más tablas, usándolo como una clave
externa.
EJEMPLO DEL MODELO RELACIONAL
UNIDAD III – MODELO RELACIONAL
TRANSFORMACIÓN DE ENTIDAD-RELACIÓN
A MODELO RELACIONAL
UNIDAD III – MODELO RELACIONAL
El modelo entidad relación es más flexible a la hora de empezar a diseñar la base de
datos y expresa en gran medida el modelo relacional. Tres puntos a tener en cuenta del
modelo entidad relación:
• Las relaciones son tratadas como un concepto aparte, evitando redundancias y
determinándose entidades según sea su cardinalidad.
• Con respecto a los tipos de datos solo admite valores estructurados, pero no conjuntos
o colecciones.
• Las relaciones pueden contener atributos sin ningún problema.
PRINCIPIOS DE DISEÑO Y FORMAS
NORMALES
UNIDAD III – MODELO RELACIONAL
En ocasiones la conversión de diseños de E/R ocasiona problemas con los esquemas
relacionales de bases de datos, sobre todo en la redundancia, es básicamente un
elemento repetido en más de una tupla.
De esta forma, se presentan problemas al diseñar buenos esquemas relacionales:
• Esquemas defectuosos
• Descomposición de relaciones
ESQUEMAS DEFECTUOSOS
UNIDAD III – MODELO RELACIONAL
Básicamente las anomalías hacen referencia a la redundancia, que tanto se repite un
valor en una entidad y si es posible evitar este problema. Las principales anomalías son:
• Redundancia: Si se identifica que un atributo se repite muchas veces convirtiéndose en
una contaste en la entidad en cuestión, se está en presencia de redundancia.
ESQUEMAS DEFECTUOSOS
UNIDAD III – MODELO RELACIONAL
• Anomalías de actualización: Ocurre cuando existen varias tuplas con casi la misma
información y se actualiza un elemento de una tupla dejando a las demás inalteradas.
ESQUEMAS DEFECTUOSOS
UNIDAD III – MODELO RELACIONAL
Anomalías de eliminación: Si uno o más componentes quedan vacíos esto ocasiona
perdida de información en cadena.
Ejemplo, si se elimina ‘Ryan Reynolds’ de la película Deadpool, ésta no tendría más
actores en la base de datos. La última tupla de Deadpool en la relación Peliculas
desaparecería junto con el estudio, duración, año…
DESCOMPOSICIÓN DE RELACIONES
UNIDAD III – MODELO RELACIONAL
Para acabar con anomalías por esquemas defectuosos, se hace uso de descomposición
de relaciones. Consiste en dividir los atributos de una relación de R para crear esquemas
de nuevas relaciones, o dicho de otra manera se realizan proyecciones sobre R.
De manera más formal se dice que una relación R con el esquema de sus atributos
{𝐴1,𝐴2,…,𝐴𝑛}, podemos descomponer R en dos relaciones S y T con los esquemas
{𝐵1,𝐵2,…,𝐵𝑚} y {𝐶1,𝐶2,…,𝐶𝑘}, respectivamente, tales que
{𝐴1,𝐴2,…,𝐴𝑛}= {𝐵1,𝐵2,…,𝐵𝑚}∪ {𝐶1,𝐶2,…,𝐶𝑘}
DESCOMPOSICIÓN DE RELACIONES
UNIDAD III – MODELO RELACIONAL
Para mitigar las anomalías que presenta la Tabla, se hará una descomposición de la
siguiente manera.
• Una relación pelicula1, cuyos atributos son todos menos nombreActor.
• Una relación pelicula2, cuyos atributos son título, año y nombreActor.
DEPENDENCIAS FUNCIONALES
UNIDAD III – MODELO RELACIONAL
Es una clase de restricción en el modelo referencial, y su principal objetivo es disminuir
cualquier redundancia en esquemas de bases de datos. Existen otros tipos de
restricciones como las dependencias multivaluadas y las de existencia e independencia.
"𝑆í 𝑑𝑜𝑠 𝑡𝑢𝑝𝑙𝑎𝑠 𝑑𝑒 𝑅 𝑐𝑜𝑛𝑐𝑢𝑒𝑟𝑑𝑎𝑛 𝑒𝑛 𝑙𝑜𝑠 𝑎𝑡𝑟𝑖𝑏𝑢𝑡𝑜𝑠
{𝐴1,𝐴2,…,𝐴𝑛},
𝑡𝑎𝑚𝑏𝑖é𝑛 𝑙𝑜 ℎ𝑎𝑟á𝑛 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑎𝑡𝑟𝑖𝑏𝑢𝑡𝑜,𝐵" (Ullman, 1999)
Es decir, cuando se repite la superllave varias veces en diferentes tuplas de una relación
quiere decir según la proposición anterior que la totalidad de sus atributos también lo
harán.
EJERCICIO
UNIDAD III – MODELO RELACIONAL
Realice un modelo E/R en el cual un cliente compra muchos productos, y estos pueden
ser comprados por varios clientes. Los datos registrados del cliente son: Id, nombre, fecha
de nacimiento y género. El Id del cliente es único y lo identifica en la base de datos. Los
datos de cada producto son: código (único), nombre, tipo, precio y peso. En cada
compra de un producto específico se registra la cantidad y fecha (i.e., la relación
compra solo tiene dos atributos, cantidad y fecha). En este ejercicio la sección, la
transacción y la factura no se estiman para mantenerlo simple. Cada comprador tiene
varias tarjetas, pero una tarjeta solo pertenece a un solo comprador. La tarjeta tiene un
numero (único) y un cupo, y definitivamente es una entidad. No se tendrá en cuenta
fecha de adquisición, ni de caducidad, tampoco código secreto para mantener el
ejercicio simple.
EJERCICIO
UNIDAD III – MODELO RELACIONAL
Obtener el modelo relacional del siguiente modelo E/R
EJERCICIO
UNIDAD III – MODELO RELACIONAL
La clínica “Pajonal” necesita llevar un control informatizado de su gestión de pacientes y
médicos. De cada paciente se desea guardar el código, nombre, apellido, dirección,
población, municipio, código postal, teléfono y fecha de nacimiento. De cada médico
se desea guardar el código, nombre, apellido, teléfono y especialidad.
Se desea llevar el control de cada uno de los ingresos que el paciente hace en la clínica.
Cada ingreso que realiza el paciente queda registrado en la base de datos. De cada
ingreso se guarda el código de ingreso (que se incrementara automáticamente cada
vez que el paciente realiza un ingreso), el número de habitación y cama en la que el
paciente realiza el ingreso y la fecha de ingreso.
Un médico puede atender varios ingresos, pero el ingreso de un paciente solo puede ser
atendido por un único médico. Un paciente puede realizar varios ingresos en la clínica.
UNIDAD IV -
ALGEBRA RELACIONAL
OPERACIONES DE CONJUNTOS
RELACIONALES
UNIDAD IV – ALGEBRA RELACIONAL
Su principal objetivo es la manipulación del contenido de una instancia de la base de
datos con el fin de obtener contenido de interés. Comenzaremos nuestro análisis de
algebra relacional examinando las dos operaciones unarias.
PROYECCIÓN
La proyección es una de las principales operaciones y es de tipo unario, es decir, solo
actúa sobre una sola relación. Sirve para omitir columnas o atributos que no sean
necesarios en la consulta. Se representa con la siguiente notación.
𝜋(𝑥,𝑦,𝑧…𝑛)( 𝑅 )
Donde:
• 𝜋 : Nos indica que se está refiriendo a una proyección.
• 𝑥,𝑦,𝑧..𝑛: Son todos los atributos que se desean mostrar en la consulta.
• 𝑅 : Es la relación a la cual se le aplica la proyección.
UNIDAD IV – ALGEBRA RELACIONAL
PROYECCIÓN
Supongamos que queremos obtener solo el título, año y nombre de estudio, la
proyección en este caso quedaría así.
𝜋(𝑇𝑖𝑡𝑢𝑙𝑜, 𝐴ñ𝑜, 𝑛𝑜𝑚𝑏𝑟𝑒𝐸𝑠𝑡𝑢𝑑𝑖𝑜)( 𝑃𝑒𝑙𝑖𝑐𝑢𝑙𝑎𝑠 )
Arrojaría como resultado la siguiente tabla
UNIDAD IV – ALGEBRA RELACIONAL
PROYECCIÓN
De la tabla siguiente, queremos obtener el tipo de camisa
UNIDAD IV – ALGEBRA RELACIONAL
PROYECCIÓN
Realizando la proyección
R = CAMISAS[Camisa]
la relación resultante sería
UNIDAD IV – ALGEBRA RELACIONAL
SELECCIÓN
Consiste en recuperar un conjunto de registros de una tabla o relación indicando las
condiciones que deben cumplir dichos registros. En otras palabras, los registros devueltos
por la selección han de satisfacer todas las condiciones que se hallan establecido en la
operación. Normalmente se le conoce como consulta. Es una operación unaria.
Se representa con la siguiente notación:
𝜎(𝑐𝑜𝑛𝑑𝑖𝑐𝑖𝑜𝑛)( 𝑅 )
Donde:
• 𝜎: Nos indica que se está haciendo referencia a una selección.
• 𝑐𝑜𝑛𝑑𝑖𝑐𝑖𝑜𝑛: Es la condición a cumplir para seleccionar los registros.
UNIDAD IV – ALGEBRA RELACIONAL
SELECCIÓN
En la condición o predicado se pueden usar varias operaciones como son:
• Comparación: Los registros son comparados con un valor determinado usando
expresiones
>(𝑚𝑎𝑦𝑜𝑟 𝑞𝑢𝑒),<(𝑚𝑒𝑛𝑜𝑟 𝑞𝑢𝑒),≥(𝑚𝑎𝑦𝑜𝑟 𝑜 𝑖𝑔𝑢𝑎𝑙 𝑞𝑢𝑒),≤(𝑚𝑒𝑛𝑜𝑟 𝑜 𝑖𝑔𝑢𝑎𝑙 𝑞𝑢𝑒),=(𝑖𝑔𝑢𝑎𝑙 𝑎)
• Lógico: Los operadores lógicos sirven más que todo para unir expresiones de
comparación, por ejemplo, si 𝑒𝑑𝑎𝑑> 18 𝐴𝑁𝐷 𝑛𝑜𝑚𝑏𝑟𝑒=𝑝𝑒𝑑𝑟𝑜. Encontramos las siguientes
expresiones ∧(𝐴𝑁𝐷), ∨(𝑂𝑅), ¬(𝑁𝑂𝑇)
• 𝑅 : Es la relación a la cual se le aplica la selección.
UNIDAD IV – ALGEBRA RELACIONAL
SELECCIÓN
Supongamos que queremos obtener solo las películas cuyo nombre de estudio sea Fox, la
selección en este caso quedaría así.
𝜎(𝑛𝑜𝑚𝑏𝑟𝑒𝐸𝑠𝑡𝑢𝑑𝑖𝑜="𝐹𝑜𝑥")( 𝑃𝑒𝑙𝑖𝑐𝑢𝑙𝑎𝑠 )
Arrojaría como resultado la siguiente tabla
UNIDAD IV – ALGEBRA RELACIONAL
SELECCIÓN
De la tabla siguiente, queremos obtener el tipo de camisa cuyo peso sea igual a 210 gr.
UNIDAD IV – ALGEBRA RELACIONAL
SELECCIÓN
Realizando la siguiente selección
R = CAMISAS[peso_gr = 210 ]
la relación resultante sería
UNIDAD IV – ALGEBRA RELACIONAL
PRODUCTO CARTESIANO
El producto cartesiano es una operación de la teoría de conjuntos en la que dos o más
conjuntos se combinan entre sí. En el modelo de base de datos relacional se utiliza el
producto cartesiano para interconectar conjuntos de tuplas en la forma de una tabla. El
resultado de esta operación es otro conjunto de tuplas ordenadas, donde cada tupla
está compuesta por un elemento de cada conjunto inicial.
Por tanto el producto cartesiano entre dos conjuntos da como resultado un nuevo
conjunto con tantos elementos como pares posibles de elementos puedan combinarse.
UNIDAD IV – ALGEBRA RELACIONAL
PRODUCTO CARTESIANO
Una tabla es en realidad un conjunto de registros, y al realizar una consulta como la
siguiente:
SELECT * FROM TABLA1 , TABLA2
el motor SQL realiza el producto cartesiano de ambos conjuntos, combinando todos los
elementos o registros de la TABLA1 con todos los registros de la TABLA2, de manera que
cada fila de resultado es una de las combinaciones posibles. Por tanto el número de filas
resultantes será igual al número de registros de la TABLA1 multiplicado por el número de
registros de la TABLA2.
UNIDAD IV – ALGEBRA RELACIONAL
PRODUCTO CARTESIANO
UNIDAD IV – ALGEBRA RELACIONAL
PRODUCTO CARTESIANO
El producto cartesiano de ambas tablas es:
SELECT * FROM Camisas, Pantalones
UNIDAD IV – ALGEBRA RELACIONAL
PRODUCTO CARTESIANO
Campo Ambiguo:
La ambigüedad se da cuando en una consulta SQL de por ejemplo dos tablas, en ambas
existen uno o más campos con el mismo nombre, y estos campos aparecen en cualquier
cláusula de la consulta. Si no se le indica a cual de las tabla pertenece el campo al que
hacemos mención, devolverá un error.
Para ilustrar lo que es un campo ambiguo en una consulta SQL, planteamos la siguiente
cuestión, ¿qué mudas pueden confeccionarse con este vestuario y que pesa en conjunto
cada muda, es decir, pantalón más camisa?
UNIDAD IV – ALGEBRA RELACIONAL
PRODUCTO CARTESIANO
La solución pasa por sumar el peso de la camisa más el del pantalón, ese dato se guarda
en un campo que se denomina igual en ambas tablas: PESO_GR, por lo que debe
indicarse a que tabla pertenece cada campo PESO_GR que aparezca en la consulta.
Esto se consigue precediendo al campo por el nombre de la tabla, separando la tabla
del campo por un punto:
SELECT CAMISA , PANTALON , CAMISAS.PESO_GR + PANTALONES.PESO_GR as PESO_MUDA
FROM CAMISAS , PANTALONES
UNIDAD IV – ALGEBRA RELACIONAL
PRODUCTO CARTESIANO
El resultado sería:
UNIDAD IV – ALGEBRA RELACIONAL
PRODUCTO CARTESIANO
En general en una consulta SQL con más de una tabla debe indicarse siempre a que
tabla pertenece cada campo, pudiendo no hacerse en el caso de que no exista
ambigüedad, aunque no se recomienda. Las tablas pueden cambiar en un futuro, y
donde no existe ambigüedad hoy, puede no ser así mañana. Por tanto es más prudente
para evitar fuentes de errores futuras construir la anterior consulta así:
SELECT CAMISAS.CAMISA , PANTALONES.PANTALON , CAMISAS.PESO_GR + PANTALONES.PE
SO_GR as PESO_MUDA
FROM CAMISAS , PANTALONES
UNIDAD IV – ALGEBRA RELACIONAL
PRODUCTO CARTESIANO
Alias de Tabla:
Al igual que el SQL permite rebautizar columnas de la cláusula SELECT, también permite
rebautizar tablas de la cláusula FROM. Para ello se emplea de igual modo la palabra
clave AS. Se consigue así que las consultas sean menos laboriosas de construir, menos
tupidas y más simplificadas a la vista del desarrollador. Por ejemplo:
SELECT C.CAMISA , P.PANTALON , C.PESO_GR + P.PESO_GR as PESO_MUDA
FROM CAMISAS as C, PANTALONES as P
UNIDAD IV – ALGEBRA RELACIONAL
PRODUCTO CARTESIANO
Analicemos el siguiente ejercicio:
UNIDAD IV – ALGEBRA RELACIONAL
COMBINACIÓN
La Combinación es una operación que, a partir de dos relaciones, obtiene una nueva
relación formada por todas las tuplas que resultan de concadenar tuplas de la primera
relación con tuplas de la segunda, y que cumplen una condición de combinación
específica.
UNIDAD IV – ALGEBRA RELACIONAL
Edificio Número Superficie
Marina 120 10
Marina 122 15
Marina 230 20
Diagonal 120 10
ID Nombre Apellido EdiDesp NumDesp
40.444 Juan García Marina 120
33.567 Marta Roca Marina 120
55.898 Carlos Buendía Diagonal 120
77.232 Elena Pla Marina 122
COMBINACIÓN
Para conseguir una relación que tenga los datos de cada uno de los empleados de
administración junto con los datos de los despachos donde trabajan, podemos hacer
una combinación de las relaciones EMPLEADOS y DESPACHOS, donde la condición de
combinación EMPLEADOS_ADM y DESPACHOS, indique lo siguiente:
edidesp = edificio y númdesp = número
La condición de combinación hace que el resultado sólo combine los datos de un
empleado con los datos de un despacho si el edidesp y el númdesp del empleado son
iguales que el edificio y el número del despacho, respectivamente. Es decir, la condición
hace que los datos de un empleado se combinen con los datos del despacho donde
trabaja, pero no con datos de otros despachos.
UNIDAD IV – ALGEBRA RELACIONAL
COMBINACIÓN
La combinación del ejemplo anterior se indicaría de la forma siguiente:
EMPLEADOS_ADM[edidesp = edificio, númdesp = número]DESPACHOS
Si se quiere combinar dos relaciones que tienen algún nombre de atributo común, sólo
hace falta redenominar previamente los atributos repetidos de una de las dos.
UNIDAD IV – ALGEBRA RELACIONAL
REUNIÓN NATURAL
En un producto cartesiano R x S donde R y S son dos entidades, cada atributo de R se
parea con todos los atributos de S, entonces, en la Reunión Natural el pareamiento
ocurre si y solo si, los atributos coinciden en las dos entidades. Cuando esto ocurre el
resultado es una tupla denominada tupla reunida y la reunión se denota con 𝑹⋈𝑺.
En otras palabras, dos relaciones son compatibles para la unión si ambas tienen el mismo
esquema de tupla (cabecera), es decir, si tienen el mismo número de atributos, se llaman
igual y se encuentran definidos sobre los mismos dominios.
UNIDAD IV – ALGEBRA RELACIONAL
REUNIÓN NATURAL IZQUIERDA Y DERECHA
La Reunión natural externa izquierda es una reunión natural en la que las tuplas de R que
no tienen valores en común con ninguna tupla de S, también aparecen en el resultado.
La Reunión natural externa derechaa es una reunión natural en la que las tuplas de S que
no tienen valores en común con ninguna tupla de R, también aparecen en el resultado.
UNIDAD IV – ALGEBRA RELACIONAL
REUNIÓN NATURAL COMPLETA
La Reunión natural externa completa es una Reunión natural en la que las tuplas de S que
no tienen valores en común con ninguna tupla de R y las tuplas de R que no tienen
valores en común con ninguna tupla de S , también aparecen en el resultado.
UNIDAD IV – ALGEBRA RELACIONAL
REUNIÓN THETA
A diferencia de la natural, ésta brinda unos criterios al parear tuplas provenientes de dos
relaciones y no una condición especifica. Una condición arbitraria denotada por la letra
C.
La representación de una reunión theta de las relaciones R y S que se funda en la
condición C es
𝑅 ⋈𝐶𝑆
Los pasos para determinar una reunión theta son:
• Se toma el producto de R y S.
• Se seleccionan en el producto solo las tuplas que cumplan con la condición C.
UNIDAD IV – ALGEBRA RELACIONAL
DIFERENCIA
Obtiene una relación que tiene las tuplas que se encuentran en R y no se encuentran en
S. Para poder realizar esta operación, R y S deben ser compatibles para la unión.
UNIDAD IV – ALGEBRA RELACIONAL
INTERSECCIÓN
Obtiene una relación que contiene las tuplas de R que también se encuentran en S. Para
poder realizar esta operación, R y S deben ser compatibles para la unión.
R INTERSECT S obtiene el mismo resultado que R MINUS (R MINUS S)
UNIDAD IV – ALGEBRA RELACIONAL
RENOMBRAMIENTO
Esta operación cambia el nombre de la relación y sus atributos sí así es requerido y es
denota de la siguiente manera
𝜌𝑆(𝐴1,𝐴2…𝐴𝑛) (𝑅)
para renombrar una relación R. La relación resultante tiene las mismas tuplas que R pero
con nombre S. Ahora bien, sí solo se quiere cambiar el nombre de R por S, basta con decir
𝜌𝑆 (𝑅)
UNIDAD IV – ALGEBRA RELACIONAL
CONSULTAS CON COMBINACIÓN DE
OPERACIONES
Se pueden combinar las operaciones como proyección, selección, producto, etc. junto a
operadores como intersección, unión, diferencia, etc. con el fin de lograr consultas más
complejas y que requieran una abstracción más minuciosa de los datos.
Lo más común es construir subexpresiones usando paréntesis.
UNIDAD IV – ALGEBRA RELACIONAL
CONSULTAS CON COMBINACIÓN DE
OPERACIONES
Suponga que se requieren los títulos y años de las películas realizadas por el estudio Fox y
que sean de tipo color. Se resolverá de dos maneras, una usando el operador ∩ y otra
usando en AND lógico dentro de una expresión de selección.
Usando ∩
𝜋𝑇𝑖𝑡𝑢𝑙𝑜,𝐴ñ𝑜(𝜎𝑡𝑖𝑝𝑜𝑃𝑒𝑙𝑖𝑐𝑢𝑙𝑎="𝑐𝑜𝑙𝑜𝑟"(𝑃𝑒𝑙𝑖𝑐𝑢𝑙𝑎𝑠)∩𝜎𝑛𝑜𝑚𝑏𝑟𝑒𝐸𝑠𝑡𝑢𝑑𝑖𝑜="𝐹𝑜𝑥"(𝑃𝑒𝑙𝑖𝑐𝑢𝑙𝑎𝑠))
Usando AND
𝜋𝑇𝑖𝑡𝑢𝑙𝑜,𝐴ñ𝑜(𝜎𝑡𝑖𝑝𝑜𝑃𝑒𝑙𝑖𝑐𝑢𝑙𝑎="color" 𝐴𝑁𝐷 𝑛𝑜𝑚𝑏𝑟𝑒𝐸𝑠𝑡𝑢𝑑𝑖𝑜="𝐹𝑜𝑥"(𝑃𝑒𝑙𝑖𝑐𝑢𝑙𝑎𝑠))
UNIDAD IV – ALGEBRA RELACIONAL
CONSULTAS CON COMBINACIÓN DE
OPERACIONES
El resultado sería
UNIDAD IV – ALGEBRA RELACIONAL
UNIDAD V -
SQL
INTRODUCCIÓN A SQL
El SQL es el lenguaje estándar ANSI/ISO de definición, manipulación y control de bases de
datos relacionales. Es un lenguaje declarativo: sólo hay que indicar qué se quiere hacer.
En cambio, en los lenguajes procedimentales es necesario especificar cómo hay que
hacer cualquier acción sobre la base de datos.
El SQL es un lenguaje muy parecido al lenguaje natural; concretamente, se parece al
inglés, y es muy expresivo. Por estas razones, y como lenguaje estándar, el SQL es un
lenguaje con el que se puede acceder a todos los sistemas relacionales comerciales.
UNIDAD V – SQL
SENTENCIAS DE DEFINICIÓN
Para poder trabajar con bases de datos relacionales, el primer paso es definirlas.
1. Para crear bases de datos, tablas, dominios, aserciones y vistas se utilice la
sentencia CREATE.
2. Para modificar tablas y dominios se utilice la sentencia ALTER.
3. Para borrar bases de datos, tablas, dominios, aserciones y vistas se utilice la
sentencia DROP.
UNIDAD V – SQL
CREACIÓN DE TABLAS
Para crear una tabla, es necesario utilizar la sentencia CREATE TABLE.
El proceso que hay que seguir para crear una tabla es el siguiente:
1) Decidir qué nombre se desea poner a la tabla (nombre_tabla).
2) Definir el nombre de cada uno de los atributos que formarán las columnas de la tabla
(nombre_columna).
3) A cada una de las columnas, asignar un tipo de datos predefinido o bien un dominio
definido por el usuario. También es posible dar definiciones por defecto y restricciones
de columna.
4) Definir las restricciones de tabla.
UNIDAD V – SQL
CREACIÓN DE TABLAS
UNIDAD V – SQL
RESTRICCIONES DE COLUMNAS
En cada una de las columnas de la tabla, una vez se les ha dado un nombre y se ha
definido su dominio, es posible imponer ciertas restricciones que siempre se tendrán que
cumplir. Las restricciones que se pueden dar son:
UNIDAD V – SQL
Restricción Descripción
NOT NULL La columna no puede tener valores nulos.
UNIQUE La columna no puede tener valores repetidos. Es una clave alternativa.
PRIMARY KEY La columna no puede tener valores repetidos ni nulos. Es la clave primaria.
REFERENCES tabla [ (columna) ] La columna es la clave foránea de la columna de la tabla especificada.
CHECK (condiciones) La columna debe cumplir las condiciones especificas.
RESTRICCIONES DE TABLAS
Una vez se ha dado un nombre, se ha definido una tabla y se han impuesto ciertas
restricciones para cada una de las columnas, es posible aplicar restricciones sobre toda
la tabla, que siempre se deberán cumplir. Las restricciones son:
UNIDAD V – SQL
Restricción Descripción
UNIQUE (columna [, columna...])
El conjunto de las columnas especificadas no puede tener valores repetidos. Es una clave
alternativa
PRIMARY KEY (columna [,
columna...])
El conjunto de las columnas espacificadas no puede tener valores nulos ni repetidos. Es
una clave primaria
FOREIGN KEY
(columna [, columna...])
REFERENCES tabla
[(columna2 [, columna2...])]
El conjunto de las columnas especificadas es una clave foránea que referencia la clave
primaria formada por el conjunto de las columnas2 se denominan exactamente igual,
entonces no sería necesario poner columnas2.
CHECK (condiciones) La tabla debe cumplir las condiciones especificadas.
MODIFICACIÓN Y BORRADO DE TABLAS
Para modificar una tabla es preciso utilizar alguna de las siguientes operaciones:
1) Añadir una columna (ADD columna).
2) Modificar las definiciones por defecto de la columna (ALTER columna).
3) Borrar la columna (DROP columna).
4) Añadir alguna nueva restricción de tabla (ADD restricción).
5) Borrar alguna restricción de tabla (DROPCONSTRAINT restricción). Para borrar una
tabla es preciso utilizar la sentencia DROP TABLE:
UNIDAD V – SQL
MODIFICACIÓN Y BORRADO DE TABLAS
Para modificar una tabla es preciso utilizar la sentencia ALTER TABLE.
ALTER TABLE nombre_tabla {acción_modificar_columna|
acción_modif_restricción_tabla};
En este caso, acción_modificar_columna puede ser:
{ADD [COLUMN] columna def_columna |
ALTER [COLUMN] columna {SET def_defecto|DROP DEFAULT}|
DROP [COLUMN ] columna {RESTRICT|CASCADE}}
UNIDAD V – SQL
CREACIÓN Y BORRADO DE VISTAS
Una vista es una alternativa para mostrar datos de varias tablas. Una vista es como una
tabla virtual que almacena una consulta. Los datos accesibles a través de la vista no
están almacenados en la base de datos como un objeto.
Para crear una vista es necesario utilizar la sentencia CREATE VIEW.
CREATE VIEW nombre_vista [(lista_columnas)] AS (consulta)
[WITH CHECK OPTION];
UNIDAD V – SQL
CREACIÓN Y BORRADOR DE BASE DE DATOS
RELACIONAL
Para crear una base de datos, es necesario utilizar la sentencia CREATE DATABASE.
Para borrar una base de datos, es necesario utilizar la sentencia DROPDATABASE.
UNIDAD V – SQL
SENTENCIAS DE MANIPULACIÓN
Una vez creada la base de datos con sus tablas, debe ser posible insertar, modificar y
borrar los valores de las filas de las tablas. Para poder hacer esto, el SQL ofrece las
siguientes sentencias:
1. INSERTpara insertar
2. UPDATE para modificar
3. DELETE para borrar
4. SELECT FROM para consultar
UNIDAD V – SQL
INSERCIÓN DE FILAS EN UNA TABLA
Antes de poder consultar los datos de una base de datos, es preciso introducirlos con la
sentencia INSERT INTO VALUES, que tiene el formato:
INSERT INTO nombre_tabla [(columnas)]
{VALUES ({v1|DEFAULT|NULL}, ..., {vn/DEFAULT/NULL})|};
Los valores v1, v2, ..., vn deben corresponder exactamente con las columnas que se
establecieron con el CREATE TABLE y deben estar en el mismo orden, a menos que las
volvamos a poner a continuación del nombre de la tabla.
UNIDAD V – SQL
MODIFICACIÓN DE FILAS EN UNA TABLA
Para modificar los valores de filas de una tabla, es necesario utilizar la sentencia UPDATE
SET WHERE. A continuación presentamos su formato:
UPDATE nombre_tabla
SET columna = {expresión|DEFAULT|NULL}
[, columna = {expr|DEFAULT|NULL} ...]
WHERE condiciones;
UNIDAD V – SQL
BORRADO DE FILAS EN UNA TABLA
Para borrar valores de algunas filas de una tabla podemos utilizar la sentencia DELETE
FROM WHERE. Su formato es el siguiente:
DELETE FROM nombre_tabla
[WHERE condiciones];
En cambio, si se desea borrar todas las filas de una tabla, entonces sólo seria necesario
poner la sentencia DELETE FROM, sin WHERE.
UNIDAD V – SQL
CONSULTAS SOBRE UNA TABLA
Para hacer consultas sobre una tabla con el SQL es preciso utilizar la sentencia SELECT
FROM, que tiene el siguiente formato:
SELECT nombre_columna_a_seleccionar [[AS] col_renombrada]
[,nombre_columna_a_seleccionar [[AS] col_renombrada]...]
FROM tabla_a_consultar [[AS] tabla_renombrada];
La opción AS nos permite renombrar las columnas que queremos seleccionar o las tablas
que queremos consultar que en este caso, es sólo una. Dicho de otro modo, nos permite
la definición de alias. Fijémonos en que la palabra clave AS es opcional, y es bastante
habitual poner sólo un espacio en blanco en lugar de toda la palabra.
UNIDAD V – SQL
CONSULTAS SOBRE UNA TABLA CON
VALORES REPETIDOS EN COLUMNAS
Al realizar una consulta puede ocurrir que existan valores repetidos para algunas
columnas. Si se desea que la consulta no muestre los valores que se repiten, se hace uso
de la instrucción DISTINCT
SELECT DISTINCT nombre_columna_a_seleccionar
FROM tabla_a_consultar;
UNIDAD V – SQL
CONSULTAS SOBRE UNA TABLA CON DATOS
ORDENADOS
ORDER BY se utiliza para ordenar los resultados de una consulta, según el valor de la columna especificada.
Por defecto, se ordena de forma ascendente (ASC) según los valores de la columna.
Si se quiere ordenar por orden descendente se utiliza la palabra DES.
SELECT DISTINCT nombre_columna_a_seleccionar
FROM tabla_a_consultar;
UNIDAD V – SQL
FUNCIONES DE AGREGACIÓN
SQL ofrece las siguientes funciones de agregación para efectuar varias operaciones
sobre los datos de una base de datos:
UNIDAD V – SQL
FUNCIÓN DESCRIPCIÓN
COUNT Da el número total de filas seleccionadas
SUM Suma los valores de una columna
MIN Da el valor mínimo de una columna
MAX Da el valor máximo de una columna
AVG Calcula el valor medio de una columna
FUNCIÓN COUNT
La función de agregación COUNT normalmente se aplica a todas las columnas de la
tabla o tablas seleccionadas y contará todas las filas de la tabla o las tablas que
cumplan las condiciones. Si se utilizase COUNT(distinct columna), sólo contaría los valores
que no fuesen nulos ni repetidos, y si se utilizase COUNT(columna), sólo contaría los valores
que no fuesen nulos.
SELECT COUNT *
FROM tabla_a_consultar
WHERE condiciones;
UNIDAD V – SQL
FUNCIÓN SUM
La función de agregación SUM permite obtener la suma total de los valores de una
columna de tipo numérico
SELECT SUM nombre_columna_a_seleccionar
FROM tabla_a_consultar
UNIDAD V – SQL
FUNCIÓN MIN
La función de agregación MIN sirve para obtener el valor más pequeño para una
columna determinada.
SELECT MIN nombre_columna_a_seleccionar
FROM tabla_a_consultar
UNIDAD V – SQL
FUNCIÓN MAX
La función de agregación MAX sirve para obtener el mayor valor para una columna
determinada.
SELECT MAX nombre_columna_a_seleccionar
FROM tabla_a_consultar
UNIDAD V – SQL
FUNCIÓN AVG
La función de agregación MAX sirve para obtener el mayor medio para una columna de
tipo numérico.
SELECT AVG nombre_columna_a_seleccionar
FROM tabla_a_consultar
UNIDAD V – SQL
SUBCONSULTAS
Una subconsulta es una consulta incluida dentro de una cláusula WHERE o HAVING de
otra consulta. En ocasiones, para expresar ciertas condiciones es necesario obtener el
valor que se busca como resultado de una consulta.
SELECT nombre_columna_a_seleccionar
FROM tabla_a_consultar
WHERE condiciones
UNIDAD V – SQL
FUNCIÓN HAVING
La función HAVING se utiliza para incluir condiciones con alguna función SQL del tipo
SUM, MAX, … Como la cláusula WHERE no se puede utilizar con funciones SQL del tipo
SUM, MAX, entonces se utiliza en su lugar, HAVING.
SELECT nombre_columna_a_seleccionar, SUM (nombre_columna2_a_seleccionar)
FROM tabla_a_consultar
GROUP BY nombre_columna_a_seleccionar
HAVING SUM (nombre_columna2_a_seleccionar) > condicion
UNIDAD V – SQL
FUNCIÓN GROUP BY
La función GROUP BY se utiliza para juntar filas de resultados que coincidan en el valor de
alguna columna seleccionada.
SELECT nombre_columna_a_seleccionar, SUM (nombre_columna2_a_seleccionar)
FROM tabla_a_consultar
GROUP BY nombre_columna_a_seleccionar
UNIDAD V – SQL
FUNCIÓN FIRST
La función FIRST se utiliza para obtener el valor del primer registro de alguna columna
seleccionada.
SELECT FIRST (nombre_columna_a_seleccionar)
FROM tabla_a_consultar
UNIDAD V – SQL
FUNCIÓN LAST
La función LAST se utiliza para obtener el valor de la último registro de alguna columna
seleccionada.
SELECT LAST (nombre_columna_a_seleccionar)
FROM tabla_a_consultar
UNIDAD V – SQL
FUNCIÓN UCASE
La función UCASE sirve para convertir a mayúsculas el valor de una columna.
SELECT UCASE (nombre_columna_a_seleccionar)
FROM tabla_a_consultar
UNIDAD V – SQL
FUNCIÓN LCASE
La función LCASE sirve para convertir a minúsculas el valor de una columna.
SELECT LCASE (nombre_columna_a_seleccionar)
FROM tabla_a_consultar
UNIDAD V – SQL
FUNCIÓN MID
La función MID se utiliza para extraer caracteres de un campo de texto, donde
‘nombre_columna_a_seleccionar’ es la columna donde se quiere extraer datos de su
valor; ‘inicio’ es la posición desde la que empezar a extraer y ‘longitud’ es el número de
caracteres a extraer. En caso de no especificarlo, cogerá hasta el final del campo de
texto.
SELECT MID (nombre_columna_a_seleccionar, inicio, longitud)
FROM tabla_a_consultar
UNIDAD V – SQL
FUNCIÓN MID
La función LEN sirve para calcular la longitud del valor de un campo de texto.
SELECT LEN nombre_columna_a_seleccionar
FROM tabla_a_consultar
UNIDAD V – SQL
FUNCIÓN ROUND
La función ROUND se utiliza para redondear un campo numérico en un número de
decimales especificado.
SELECT ROUND (nombre_columna_a_seleccionar, decimales)
FROM tabla_a_consultar
UNIDAD V – SQL

Diseño y Programacion de Bases de Datos.pdf

  • 1.
  • 2.
  • 3.
    BASE DE DATOS UNIDADI – CONCEPTOS GENERALES Una base de datos es un fichero en el cual se almacena información de cualquier tipo. En dicho fichero la información se guarda en campos o delimitadores. Normalmente el número de campos que se pueden tener en una base varía según las necesidades en cuanto a gestión de datos, de forma que después se pueda explotar la información de forma ordenada y separada, aunque el resto de la información sigue almacenada y guardada en la base de datos. Una base de datos, no es solo el fichero en donde están datos, sino que en dicho archivo se encuentra la estructura de los datos. Para saber que longitud tiene cada campo, hay que conocer como se llama el campo y qué longitud en caracteres tiene, así como el tipo de datos en dicho campo, porque puede contener desde letras a números o incluso otros datos más complejos, dependiendo de la estructura de la base y del sistema gestor.
  • 4.
    SISTEMA DE BASESDE DATOS UNIDAD I – CONCEPTOS GENERALES Desde un enfoque muy general, un sistema de bases de datos no es más que un sistema para archivar en computador información relevante. Dicho de otra manera, se podría considerar como un archivador electrónico donde su único propósito es mantener información y lograr que esté disponible cundo se necesite. Al usuario que interactúe con el sistema tendrá a su disposición diversas operaciones sobre estos archivos, las más comunes son: • Agregar nuevos archivos vacíos a la base de datos. • Insertar, actualizar, borrar datos de archivos existentes. • Eliminar archivos vacíos o no de la base de datos. La información que se maneje puede ser cualquier cosa, hay que decir que el individuo u organización que requiera de este sistema debe almacenar datos que se consideren importantes
  • 5.
    SISTEMA DE BASESDE DATOS UNIDAD I – CONCEPTOS GENERALES Dicho de otra forma, un Sistema de Bases de Datos (SBD) es una serie de recursos para manejar grandes volúmenes de información, sin embargo no todos los sistemas que manejan información son bases de datos. Un sistema de bases de datos debe responder a las siguientes características: • Independencia de los Datos. Es decir, que los datos no dependen del programa y por tanto cualquier aplicación puede hacer uso de los datos. • Reducción de la Redundancia. Se llama redundancia a la existencia de duplicación de los datos. Al reducir ésta al máximo se consigue un mayor aprovechamiento del espacio y se evita que existan inconsistencias entre los datos. Las inconsistencias se dan cuando se presentan datos contradictorios. • Seguridad. Un SBD debe permitir que se tenga control sobre la seguridad de los datos.
  • 6.
    COMPONENTES DE UNSISTEMA DE BASES DE DATOS UNIDAD I – CONCEPTOS GENERALES Un Sistema de Bases de Datos (SBD) está formado por: Datos. Corresponde a la información contenida en la Base de Datos. Esta información debe estar integrada y compartida, lo cual se considera una ventaja inmensa para sistemas macro por la gran manipulación de datos. • Integrada. Significa que la base de datos en tanto como sea posible debe evitar la redundancia de datos, logrando una unificación entre sus archivos. Por ejemplo, en cierta base de datos se tiene un archivo CLIENTE, con datos nombre, apellido, teléfono, dirección y también un archivo ESCRITURA, que representa los bienes que tiene cada cliente. Suponga que para registrar un bien en el archivo ESCRITURA se necesita la dirección del cliente, es evidente que no hace falta incluir esta información porque siempre podrá obtenerse mediante una consulta al archivo CLIENTE.
  • 7.
    COMPONENTES DE UNSISTEMA DE BASES DE DATOS UNIDAD I – CONCEPTOS GENERALES • Compartida. Significa que los elementos de la base de datos pueden ser accedidos por diferentes usuarios al tiempo, para propósitos distintos o no. En el ejemplo CLIENTE/ESCRITURA anteriormente mencionado los datos del cliente pueden ser usados por un usuario para gestionar una escritura en cuestión y por otro para sacar un detallado informe del cliente.
  • 8.
    COMPONENTES DE UNSISTEMA DE BASES DE DATOS UNIDAD I – CONCEPTOS GENERALES Programas. Entre toda la arquitectura física del computador o máquina donde se ejecute el sistema y los usuarios que interactúan con ella, existe un nivel de programas o sistemas de administración de bases de datos (DBMS, database management system). El DBMS es el encargado de procesar todas las peticiones de los usuarios y hacer la comunicación a nivel de equipo. Los DBMS tienen dos funciones principales que son: • La definición de las estructuras para almacenar los datos. • La manipulación de los datos. Básicamente cuando el usuario hace una consulta SQL, el DBMS es el encargado de ir a la base de datos y traer la información. Aunque este componente de software es el más importante de todo el sistema no hay que dejar pasar por alto las librerías, utilerías, herramientas de diseño y desarrollo de aplicaciones.
  • 9.
    COMPONENTES DE UNSISTEMA DE BASES DE DATOS UNIDAD I – CONCEPTOS GENERALES Máquinas. Las máquinas representan el hardware en el cual se almacenan y administran las bases de datos. También hacen referencia a las unidades de almacenamiento, y nivel de procesamiento de la maquina en la cual este el sistema de base de datos.
  • 10.
    COMPONENTES DE UNSISTEMA DE BASES DE DATOS UNIDAD I – CONCEPTOS GENERALES Usuarios. Representan las personas relacionadas con el Sistema de Bases de Datos. Este concepto se extiende a tres tipos de usuarios: • Usuario programador de aplicaciones, es el que hace programas que usan las bases de datos. Hay una inmensidad de lenguajes de programación ya sea de alto o bajo nivel, que hacen esto posible como, por ejemplo, Java, Python, PHP, Ruby, VB.NET, etcétera, que son de alto nivel o FireBase que es una plataforma creada por Google para fomentar el fácil desarrollo de aplicaciones móviles.
  • 11.
    COMPONENTES DE UNSISTEMA DE BASES DE DATOS UNIDAD I – CONCEPTOS GENERALES • Usuario final, es quien consume las aplicaciones y obtiene acceso a la base de datos mediante una interfaz previamente elaborada por el primer usuario antes mencionado. El usuario final puede ver, editar, eliminar y actualizar los datos en algunos casos, mediante una aplicación ya sea móvil, web o de escritorio. • Usuario administrador de bases de datos (DBA, en inglés database administrator), esta persona es la encargada de velar que las tecnologías, softwares, arquitectura física, diseño, seguridad, soporte, etcétera, estén en un perfecto orden y perfectamente bien definidas para así garantizar una total integridad y disponibilidad de los datos.
  • 12.
    COMPONENTES DE UNSISTEMA DE BASES DE DATOS UNIDAD I – CONCEPTOS GENERALES
  • 13.
    DATOS PERSISTENTES UNIDAD I– CONCEPTOS GENERALES Los datos en una base de datos conviene llamarlos persistentes, ésta es, por excelencia una característica de estos sistemas. Por ejemplo, hágase la idea que una compañía no guardara la información de sus empleados, clientes u operaciones. Sería un caos tratar de llevar una administración de esa manera.
  • 14.
    ENTIDADES E INTERRELACIONES UNIDADI – CONCEPTOS GENERALES Las entidades o esquemas representan objetos o conceptos del mundo real. Las entidades están constituidas por un nombre y el conjunto de sus atributos. Siguiendo con el ejemplo de CLIENTE/ESCRITURA, habría dos entidades por supuesto. Si se quisiera representar la entidad CLIENTE seria: CLIENTE (nombre,apellido,telefono,dirección) Una interrelación es esa conexión que une o relaciona de cierta forma dos entidades, es decir, en el ejemplo anterior un CLIENTE puede tener uno o más bienes por consiguiente tienen ESCRITURAS. Más adelante se retomará el tema a profundidad.
  • 15.
    TIPOS DE BASESDE DATOS UNIDAD I – CONCEPTOS GENERALES Las bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que se esté manejando, la utilidad de las mismas o las necesidades que satisfagan. Según la Variabilidad de los Datos. 1) Bases de Datos estáticas. Son bases de datos únicamente de lectura, utilizadas primordialmente para almacenar datos históricos que posteriormente se pueden utilizar para: • Estudiar el comportamiento de un conjunto de datos a través del tiempo. • Realizar proyecciones. • Tomar decisiones. • Realizar análisis de datos para inteligencia empresarial.
  • 16.
    TIPOS DE BASESDE DATOS UNIDAD I – CONCEPTOS GENERALES 2) Bases de Datos dinámicas. Son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como: • Actualización. • Borrado y edición de datos. • Operaciones fundamentales de consulta.
  • 17.
    MODELOS DE BASESDE DATOS UNIDAD I – CONCEPTOS GENERALES Las Bases de Datos se pueden clasificar de acuerdo a su modelo de administración de datos. Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos y conceptos matemáticos.
  • 18.
    MODELOS DE BASESDE DATOS UNIDAD I – CONCEPTOS GENERALES Bases de Datos Jerárquicas. En este modelo los datos se organizan en forma de árbol invertido (algunos dicen raíz), en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas. Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen de información y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento. Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos. Base de datos de red. Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico).
  • 19.
    MODELOS DE BASESDE DATOS UNIDAD I – CONCEPTOS GENERALES Base de datos relacionales. Éste es el modelo utilizado en la actualidad para representar problemas reales y administrar datos dinámicamente. Tras ser postulados sus fundamentos en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados "tuplas". Pese a que ésta es la teoría de las bases de datos relacionales creadas por Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está compuesta por registros (las filas de una tabla), que representarían las tuplas, y campos (las columnas de una tabla).
  • 20.
    MODELOS DE BASESDE DATOS UNIDAD I – CONCEPTOS GENERALES Base de datos transaccionales. Son bases de datos cuyo único fin es el envío y recepción de datos a grandes velocidades, estas bases son muy poco comunes y están dirigidas por lo general al entorno de análisis de calidad, datos de producción e industrial, es importante entender que su fin único es recolectar y recuperar los datos a la mayor velocidad posible, por lo tanto la redundancia y duplicación de información no es un problema como con las demás bases de datos, por lo general para poderlas aprovechar al máximo permiten algún tipo de conectividad a bases de datos relacionales. Base de datos multidimensionales. Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como creación de Cubos OLAP. Básicamente no se diferencian demasiado de las bases de datos relacionales (una tabla en una base de datos relacional podría serlo también en una base de datos multidimensional), la diferencia está más bien a nivel conceptual; en las bases de datos multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, o bien representan dimensiones de la tabla, o bien representan métricas que se desean aprender.
  • 21.
    MODELOS DE BASESDE DATOS UNIDAD I – CONCEPTOS GENERALES Base de datos orientada a objetos. Este modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, trata de almacenar en la base de datos los objetos completos (estado y comportamiento). Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos: • Encapsulación - Propiedad que permite ocultar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos. • Herencia - Propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases. • Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objetos.
  • 22.
    SISTEMA DE GESTIÓNDE BASES DE DATOS UNIDAD I – CONCEPTOS GENERALES Un sistema gestor de base de datos (SGBD) es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en una base de datos, además de proporcionar herramientas para añadir, borrar, modificar y analizar los datos. Los usuarios pueden acceder a la información usando herramientas específicas de interrogación y de generación de informes, o bien mediante aplicaciones al efecto. Estos sistemas también proporcionan métodos para mantener la integridad de los datos, para administrar el acceso de usuarios a los datos y para recuperar la información si el sistema se corrompe. Permiten presentar la información de la base de datos en variados formatos. La mayoría incluyen un generador de informes. También pueden incluir un módulo gráfico que permita presentar la información con gráficos y tablas. Hay muchos tipos distintos según cómo manejen los datos y muchos tamaños distintos de acuerdo a si operan en computadoras personales y con poca memoria o grandes sistemas que funcionan en mainframes con sistemas de almacenamiento especiales.
  • 23.
    ARQUITECTURA DE LOSSISTEMAS DE BASES DE DATOS UNIDAD I – CONCEPTOS GENERALES La arquitectura de los paquetes DBMS ha tenido un crecimiento exponencial, al pasar de sistemas integrados y rígidos a sistemas con diseño totalmente modular y con servicios cliente/servidor. Básicamente cuando se habla de cliente/servidor se hace notar que la arquitectura se divide en dos módulos, el cliente que es la estación de trabajo ejecutable en un computador personal, proporcionando interfaces amigables para el usuario y el servidor encargado de la manipulación de los datos, el acceso, la búsqueda, etcétera.
  • 24.
    NIVELES DE ARQUITECTURADE LOS SISTEMAS DE BASES DE DATOS UNIDAD I – CONCEPTOS GENERALES La arquitectura ANSI/SPARC o arquitectura de tres esquemas tiene como objetivo separar lógicamente las aplicaciones de usuario y las bases de datos físicas. Los tres niveles son: • El nivel interno: Define la estructura más cercana al almacenamiento físico de los datos. • El nivel externo: Es el más cercano a los usuarios, incluye una cierta cantidad de esquemas externos o vistas. Los usuarios pueden ser o no programadores. • El nivel conceptual: Este nivel se podría considerar como un mediador entre los dos niveles pasados, se enfoca en la representación de las entidades, los tipos de datos, las relaciones, operaciones de usuario, etcétera.
  • 25.
    NIVELES DE ARQUITECTURADE LOS SISTEMAS DE BASES DE DATOS UNIDAD I – CONCEPTOS GENERALES
  • 26.
    UNIDAD II - MODELAMIENTODE BASES DE DATOS
  • 27.
    MODELO ENTIDAD-RELACIÓN UNIDAD II– MODELAMIENTO DE BASES DE DATOS El modelo entidad-relación es una herramienta para el modelado de datos que permite representar las entidades relevantes de un sistema de información así como sus interrelaciones y propiedades. El modelo entidad relación se compone de unos elementos tales como: 1. Entidad: Las entidades representan cosas u objetos (ya sean reales o abstractos), que se diferencian claramente entre sí. Su representación gráfica es la siguiente: CLIENTES
  • 28.
    MODELO ENTIDAD-RELACIÓN UNIDAD II– MODELAMIENTO DE BASES DE DATOS 2. 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. Estos atributos pueden ser de distintos tipos (numéricos, texto, fecha...). Su representación gráfica es la siguiente: NUM. SERIE
  • 29.
    MODELO ENTIDAD-RELACIÓN UNIDAD II– MODELAMIENTO DE BASES DE DATOS 2. 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. Su representación gráfica es la siguiente: REALIZA 1 : N
  • 30.
    EJEMPLO UNIDAD II –MODELAMIENTO DE BASES DE DATOS Se tiene un taller mecánico en donde se manejan coches, empleados y el cargo del empleado, es importante tener en cuenta que para los autos se requiere el número del chasis, matricula, Numero de identificación del propietario, marca y modelo. Por otro lado para los empleados se requiere nombre, Numero de identificación y cargo. La solución es la siguiente: 1. Se definen las entidades: Coches, Empleados, Cargo del empleado. 2. Se definen los atributos de las entidades: para coches número del chasis, matricula, Numero de identificación del propietario, marca y modelo; Para empleados nombre, Numero de identificación y cargo. Y para cargo tipo de cargo. 3. Se establecen relaciones como Arreglan y es en el taller. 4. Se definen relaciones de carnalidad 5. Se procede a realizar el diagrama.
  • 31.
    EJEMPLO UNIDAD II –MODELAMIENTO DE BASES DE DATOS
  • 32.
    EJERCICIO #1 UNIDAD II– MODELAMIENTO DE BASES DE DATOS Se requiere una base de datos para una pequeña empresa debe contener información acerca de clientes, artículos y pedidos. Hasta el momento se registran los siguientes datos en documentos varios: 1. Para cada cliente: Número de cliente (único), Direcciones de envío (varias por cliente), Saldo, Límite de crédito (depende del cliente, pero en ningún caso debe superar los 3.000.000 pts), Descuento. 2. Para cada artículo: Número de artículo (único), Fábricas que lo distribuyen, Existencias de ese artículo en cada fábrica, Descripción del artículo.
  • 33.
    EJERCICIO #1 UNIDAD II– MODELAMIENTO DE BASES DE DATOS 3. Para cada pedido: Cada pedido tiene una cabecera y el cuerpo del pedido. La cabecera está formada por el número de cliente, dirección de envío y fecha del pedido. El cuerpo del pedido son varias líneas, en cada línea se especifican el número del artículo pedido y la cantidad. Además, se ha determinado que se debe almacenar la información de las fábricas. Sin embargo, dado el uso de distribuidores, se usará: Número de la fábrica (único) y Teléfono de contacto. Y se desean ver cuántos artículos (en total) provee la fábrica. También, por información estratégica, se podría incluir información de fábricas alternativas respecto de las que ya fabrican artículos para esta empresa. Nota: Una dirección se entenderá como Nº, Calle, Comuna y Ciudad. Una fecha incluye hora. Se pide hacer el diagrama ER para la base de datos que represente esta información
  • 34.
    SOLUCIÓN A EJERCICIO#1 UNIDAD II – MODELAMIENTO DE BASES DE DATOS La solución a la situación planteada se resuelve de esta forma: 1. Se definen las entidades: Cliente, pedido, articulo fábrica. 2. Se definen los atributos de las entidades: para Cliente serian Descuento, límite de crédito, Saldo, #Cliente, Direcciones de Envío. Nótese que de este último atributo se desprenden otros atributos. Para Pedido se tiene fecha y Dirección de envío. Para artículo se tiene #articulo y descripción y para fabrica #de fábrica y teléfono. 3. Se establecen relaciones como Es hecho, Se incluye y fabrica. 4. Se definen relaciones de carnalidad 5. Se procede a realizar el diagrama.
  • 35.
    SOLUCIÓN A EJERCICIO#1 UNIDAD II – MODELAMIENTO DE BASES DE DATOS
  • 36.
    EJERCICIO #2 UNIDAD II– MODELAMIENTO DE BASES DE DATOS Generar el Diagrama Entidad-Relación con las 3 entidades siguientes: • ALUMNO (Núm_Matrícula, Nombre, FechaNacimiento, Teléfono) • ASIGNATURA (Código_asignatura, Nombre) • PROFESOR (Id_P, NIF_P, Nombre, Especialidad, Teléfono) Teniendo en cuenta: • Un alumno puede estar matriculado de una o varias asignaturas. • Además puede estar matriculado en la misma asignatura más de un curso escolar (si repite). • Se quiere saber el curso escolar en el que cada alumno está matriculado de cada asignatura. • En una asignatura habrá como mínimo 10 y como máximo 25 alumnos. • Una asignatura es impartida por un único profesor. • Un profesor podrá impartir varias asignaturas.
  • 37.
    EJERCICIO #3 UNIDAD II– MODELAMIENTO DE BASES DE DATOS Generar el diagrama E/R con las cuatro entidades siguientes: • REGIÓN ( Nombre_Región) • DEPARTAMENTO (CódigoDepartamento, Nombre_departamento) • MUNICIPIO (Código_Municipio, Nombre) • EMPLEADO (Id, Nombre, Apellido, Teléfono, Salario) Se quiere guardar información del municipio donde ha nacido cada uno de los empleados teniendo en cuenta que: • Un empleado ha nacido en un solo municipio. • Cada municipio pertenece a un único departamento. • Cada departamento pertenece a una única región del país.
  • 38.
    EJERCICIO #4 UNIDAD II– MODELAMIENTO DE BASES DE DATOS Construir el modelo E/R que refleje toda la información necesaria para almacenar la información relativa a aspectos del campeonato mundial de fútbol considerando los supuestos semánticos siguientes: 1. Un jugador pertenece a un único equipo y no hay dos jugadores con el mismo nombre. 2. Un jugador puede actuar en varios puestos distintos, pero en un determinado partido sólo puede jugar en un puesto. 3. En cada partido intervienen varios colegiados. 4. Un colegiado puede realizar una función en un partido y otra distinta en otro partido. 5. Es obligatorio en todo momento que un jugador pertenezca a un equipo determinado y no podría cambiar de equipo a lo largo del mundial
  • 39.
    EJERCICIO #5 UNIDAD II– MODELAMIENTO DE BASES DE DATOS Se desea mantener una base de datos para una cadena de farmacias distribuida en diferentes ciudades. Cada farmacia tiene sus empleados propios y un farmacéutico. Por cada ciudad existe un único farmacéutico; esto es, si en una ciudad hubiera más de una farmacia, el mismo farmacéutico estaría afectado a todas las farmacias de esa ciudad. Cada farmacia tiene a su vez su stock de medicamentos. El mismo se mantiene por medicamento y presentación. Los medicamentos se organizan según la o las monodrogas que lo componen, su presentación (por ejemplo ampollas de 5 unidades, jarabe de 100 ml, inyecciones por 10 unidades, pomada 60 gr, etc.), el laboratorio que lo comercializa, y su acción terapéutica (analgésico, antibiótico, etc.). Por cada medicamento se mantiene su precio y la cantidad en existencia del mismo. El sistema deberá permitir consultar la base de datos de diferentes alternativas para medicamentos compuestos por una monodroga, medicamentos de un laboratorio, presentaciones de un medicamento, entre otras.
  • 40.
    EJERCICIO #6 UNIDAD II– MODELAMIENTO DE BASES DE DATOS Diseñar un esquema E/R que recoja la organización de una base de datos para contener la información sobre todas las carreteras del país, sabiendo que se deben cumplir las siguientes especificaciones: - Las carreteras están divididas en varias categorías (locales, comerciales, regionales, nacionales, autovías, etc). - Las carreteras se dividen en tramos. Un tramo siempre pertenece a una única carretera y no puede cambiar de carretera. - Un tramo puede pasar por varias comunas, interesando conocer el Km de la carretera y la comuna donde empieza el tramo y en donde termina. - Para los tramos que suponen principio o final de carretera, interesa saber si es que la carretera concluye físicamente o es que confluye en otra carretera. En este caso, interesa conocer con qué carretera confluye y en qué kilómetro, tramo y comuna.
  • 41.
    EJERCICIO #7 UNIDAD II– MODELAMIENTO DE BASES DE DATOS 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 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.
  • 42.
    NORMALIZACIÓN UNIDAD II –MODELAMIENTO DE BASES DE DATOS La normalización es el proceso mediante el cual se transforman datos complejos a un conjunto de estructuras de datos más pequeñas, que además de ser más simples y más estables, son más fáciles de mantener. También se puede entender la normalización como una serie de reglas que sirven para ayudar a los diseñadores de bases de datos a desarrollar un esquema que minimice los problemas de lógica. Cada regla está basada en la que le antecede. La normalización se adoptó porque el viejo estilo de poner todos los datos en un solo lugar, como un archivo o una tabla de la base de datos, era ineficiente y conducía a errores de lógica cuando se trataban de manipular los datos.
  • 43.
    NIVELES DE NORMALIZACIÓN UNIDADII – MODELAMIENTO DE BASES DE DATOS Existen básicamente tres niveles de normalización: Primera Forma Normal (1NF), Segunda Forma Normal (2NF) y Tercera Forma Normal (3NF). Cada una de estas formas tiene sus propias reglas. Cuando una base de datos se conforma a un nivel, se considera normalizada a esa forma de normalización. No siempre es una buena idea tener una base de datos conformada en el nivel más alto de normalización, puede llevar a un nivel de complejidad que pudiera ser evitado si estuviera en un nivel más bajo de normalización.
  • 44.
    PRIMERA FORMA NORMAL UNIDADII – MODELAMIENTO DE BASES DE DATOS Una tabla está en 1FN si todos los atributos no clave, dependen funcionalmente de la clave (es decir, si dada una clave se puede obtener el valor de todos sus atributos), o lo que es lo mismo, no existen grupos repetitivos para un valor de clave. Pasos: a) Se crea a partir de la tabla inicial una nueva tabla con los atributos que dependen funcionalmente de la clave (Que tendrán la misma clave que la tabla inicial). Esta tabla ya está en primera forma normal. b) Se crea una nueva tabla con los atributos restantes, eligiendo de entre estos uno como clave de la tabla (o más de uno). Los criterios de elección de clave serán los mismos que se expusieron para los tipos de clave. c) Se comprueba si esta tabla esta en primera forma normal. Si es así, la tabla inicial ya está normalizada y finaliza el proceso. Si no, tomamos esta tabla como tabla inicial y volvemos a realizar el apartado A.
  • 45.
    EJEMPLO PRIMERA FORMANORMAL UNIDAD II – MODELAMIENTO DE BASES DE DATOS Un dato sin normalizar no cumple con ninguna regla de normalización. En base a los datos de la siguiente tabla, aplicaremos primera forma normal.
  • 46.
    EJEMPLO PRIMERA FORMANORMAL UNIDAD II – MODELAMIENTO DE BASES DE DATOS Al examinar estos registros, podemos darnos cuenta que contienen un grupo repetido para NUM_ITEM, DESC_ITEM, CANT y PRECIO. La 1FN prohíbe los grupos repetidos, por lo tanto tenemos que convertir a la primera forma normal. Los pasos a seguir son: • Tenemos que eliminar los grupos repetidos. • Tenemos que crear una nueva tabla con la PK de la tabla base y el grupo repetido. Los registros quedan ahora conformados en dos tablas que llamaremos ÓRDENES y ARTICULOS_ORDENES
  • 47.
    EJEMPLO PRIMERA FORMANORMAL UNIDAD II – MODELAMIENTO DE BASES DE DATOS ORDENES
  • 48.
    EJEMPLO PRIMERA FORMANORMAL UNIDAD II – MODELAMIENTO DE BASES DE DATOS ARTICULOS_ORDENES
  • 49.
    SEGUNDA FORMA NORMAL UNIDADII – MODELAMIENTO DE BASES DE DATOS Una tabla esta en segunda forma normal si esta en primera forma normal y además todos los atributos que no pertenecen a la clave dependen funcionalmente de forma completa de ella. De esta definición se desprende que de una tabla en primera forma normal y cuya clave está compuesta por un único atributo está en segunda forma normal. Pasos: a) Se crea a partir de la tabla inicial una nueva tabla con los atributos que dependen funcionalmente de forma completa de la clave (Que tendrán la misma clave que la tabla inicial). Esta tabla ya está en segunda forma normal. b) Se crea una nueva tabla con los atributos restantes, siendo su clave el subconjunto de atributos de la clave inicial de los que dependen de forma completa. c) Se comprueba si esta tabla esta en segunda forma normal. Si es así, la tabla inicial ya está normalizada y finaliza el proceso. Si no, tomamos esta tabla como tabla inicial y volvemos a realizar el primer paso.
  • 50.
    EJEMPLO SEGUNDA FORMANORMAL UNIDAD II – MODELAMIENTO DE BASES DE DATOS Continuando con el ejemplo de la forma normal 1, ahora procederemos a aplicar la segunda forma normal, es decir, tenemos que eliminar cualquier columna no clave que no dependa de la llave primaria de la tabla. Los pasos a seguir son: • Determinar cuáles columnas que no son clave no dependen de la llave primaria de la tabla. • Eliminar esas columnas de la tabla base. • Crear una segunda tabla con esas columnas y la(s) columna(s) de la PK de la cual dependen. La tabla ÓRDENES está en 2FN. Cualquier valor único de ID_ORDEN determina un sólo valor para cada columna. Por lo tanto, todas las columnas son dependientes de la llave primaria ID_ORDEN.
  • 51.
    EJEMPLO SEGUNDA FORMANORMAL UNIDAD II – MODELAMIENTO DE BASES DE DATOS Por su parte, la tabla ARTICULOS_ORDENES no se encuentra en 2FN ya que las columnas PRECIO y DESC_ITEM son dependientes de NUM_ITEM, pero no son dependientes de ID_ORDEN. Lo que haremos a continuación es eliminar estas columnas de la tabla ARTICULOS_ORDENES y crear una tabla ARTICULOS con dichas columnas y la llave primaria de la que dependen. Las Tablas quedan de la siguiente manera:
  • 52.
    EJEMPLO SEGUNDA FORMANORMAL UNIDAD II – MODELAMIENTO DE BASES DE DATOS ARTICULOS_ORDENES
  • 53.
    EJEMPLO SEGUNDA FORMANORMAL UNIDAD II – MODELAMIENTO DE BASES DE DATOS ARTICULOS
  • 54.
    TERCERA FORMA NORMAL UNIDADII – MODELAMIENTO DE BASES DE DATOS Una tabla esta en tercera forma normal si esta en segunda forma normal y además no existen atributos no claves que dependan transitivamente de la clave, es decir, no debe haber atributos no clave que dependan de otros atributos no primos (que no pertenecen a la clave). Pasos: a) Se crea a partir de la tabla inicial una nueva tabla con los atributos que no poseen dependencias transitivas. (Que tendrán la misma clave que la tabla inicial). Esta tabla ya está en segunda forma normal. b) Se crea una nueva tabla con los atributos restantes, siendo su clave el subconjunto de atributos de la clave inicial de los que dependen de forma completa. c) Se crea una nueva tabla con los dos atributos no clave, que intervienen en la dependencia transitiva, seleccionando entre ambos a aquel que cumpla los requerimientos de clave. Esta nueva tabla está ya en tercera forma normal.
  • 55.
    EJEMPLO TERCERA FORMANORMAL UNIDAD II – MODELAMIENTO DE BASES DE DATOS La tercera forma normal nos dice que tenemos que eliminar cualquier columna no llave que sea dependiente de otra columna no llave. Los pasos a seguir son: • Determinar las columnas que son dependientes de otra columna no llave. • Eliminar esas columnas de la tabla base. • Crear una segunda tabla con esas columnas y con la columna no llave de la cual son dependientes. Al observar las tablas que hemos creado en el ejemplo que hemos tomado como modelo, nos damos cuenta que tanto la tabla ARTICULOS, como la tabla ARTICULOS_ORDENES se encuentran en 3FN. Sin embargo la tabla ÓRDENES no lo está, ya que NOM_CLIENTE y ESTADO son dependientes de ID_CLIENTE, y esta columna no es la llave primaria.
  • 56.
    EJEMPLO TERCERA FORMANORMAL UNIDAD II – MODELAMIENTO DE BASES DE DATOS Para normalizar esta tabla, moveremos las columnas no llave y la columna llave de la cual dependen dentro de una nueva tabla CLIENTES. Las nuevas tablas CLIENTES y ÓRDENES se muestran a continuación. ORDENES
  • 57.
    EJEMPLO TERCERA FORMANORMAL UNIDAD II – MODELAMIENTO DE BASES DE DATOS CLIENTES
  • 58.
    EJERCICIO #1 UNIDAD II– MODELAMIENTO DE BASES DE DATOS Aplicar las reglas de Normalización a los datos de la siguiente tabla: Id_orden Fecha Id_cliente N_cliente Estado Num_art nom_art cant Precio 2301 23/02/11 101 Martin Caracas 3786 Red 3 35,00 2301 23/02/11 101 Martin Caracas 4011 Raqueta 6 65,00 2301 23/02/11 101 Martin Caracas 9132 Paq-3 8 4,75 2302 25/02/11 107 Herman Coro 5794 Paq-6 4 5,00 2303 27/02/11 110 Pedro Maracay 4011 Raqueta 2 65,00 2303 27/02/11 110 Pedro Maracay 3141 Funda 2 10,00
  • 59.
    EJERCICIO #2 UNIDAD II– MODELAMIENTO DE BASES DE DATOS La empresa COLOMBIAN SYSTEMS lo ha contratado como el “Ingeniero Encargado” para sistematizar la facturación. En la siguiente FACTURA DE COMPRA VENTA, usted debe analizar toda la información disponible y aplique el proceso de normalización, hasta llegar a la Tercera Forma Normal. Se pide realizar la respectiva justificación detallada de cada uno de los pasos que conduzcan al resultado final. Factura(NUM_FAC,FECHA_FAC, NOM_CLIENTE, DIR_CLIENTE, RIF_CLIENTE, CIUDAD_CLIENTE, TELEF_CLIENTE, CATEGORIA, COD_PROD, DESP_PROD, VAL_UNIT, CANT_PROD)
  • 60.
    EJERCICIO #2 UNIDAD II– MODELAMIENTO DE BASES DE DATOS Donde: NUM_FAC: Número de la factura de compra venta FECHA_FAC: Fecha de la factura de compra venta NOM_CLIENTE: Nombre del cliente DIR_CLIENTE: Dirección del cliente RIF_CLIENTE: Rif del cliente CIUDAD_CLIENTE: Ciudad del cliente TELEF_CLIENTE: Teléfono del cliente CATEGORIA: Categoría del producto COD_PROD: Código del producto DESCRIPCION: Descripción del producto VAL_UNIT: Valor unitario del producto CANT_PROD: Cantidad de productos q compra el cliente La llave primaria es Número de Factura de venta: NUM_FAC
  • 61.
    EJERCICIO #3 UNIDAD II– MODELAMIENTO DE BASES DE DATOS EMPRESA DE ENVIO DE MERCANCIA: a continuación se agrupan todos los atributos que hacen parte de la base de datos para aplicarle las reglas de normalización. Donde se incluyen los nombres de los atributos con su significado * GUIA_NO = Numero de Guia * GUIA_FECHA= Fecha de la Guia * GUIA_HORA= Hora de la Guia * ORGN_RIF = Identificacion de Empresa Origen * ORGN_NOM = Nombre de Empresa Origen * ORGN_ACT = Actividad Comercial de Empresa Origen * ORGN_CIUDAD= Ciudad de Empresa Origen * ORGN_DIR = Direccion de Empresa Origen * ORGN_TEL = Telefono de Empresa Origen * ORGN_CEL = Celular de Empresa Origen * DEST_ID = Identificacion del destinatario
  • 62.
    EJERCICIO #3 UNIDAD II– MODELAMIENTO DE BASES DE DATOS * DEST_NOM = Nombre del destinatario * DEST_COD_CIUDAD = Codigo de la ciudad del destinatario * DEST_CIUDAD= Ciudad del destinatario * DEST_DIR = Direccion del destinatario * DEST_TEL = Telefono del destinatario * DEST_KM = Distancia kilometraje de Ciudad origen a ciudad del destinatario * CODIGO = Codigo del paquete * TIPO = Tipo de paquete * NOMBRE = Nombre del paquete * DESCRIPCION = Descripción del paquete * VALR_ FLETE = Valor del flete
  • 63.
    EJERCICIO #4 UNIDAD II– MODELAMIENTO DE BASES DE DATOS Video club: En una tienda de video se necesita mantener información de alrededor de 3000 casetas cada uno de los casetes tiene asignado un número por cada `película se necesita conocer un titulo y categoría por ejemplo: comedia, suspenso, drama, acción, ciencia ficción, etc. Se mantienen algunas copias de muchas películas. Se le da a cada película una identificación y se mantiene seguimiento de lo que contiene cada casete. Un casete puede venir en varios formatos y una película es grabada en un solo casete; frecuentemente las películas son pedidas de acuerdo a un actor especifico Tom Cruise y Demi More son los más populares es por esto que se debe mantener información de los actores que pertenecen a cada película. No en todas las películas actúan artistas famosos, a los clientes de la tienda le gusta conocer datos como el nombre real del actor, y su fecha de nacimiento.
  • 64.
    EJERCICIO #4 UNIDAD II– MODELAMIENTO DE BASES DE DATOS En la tienda se mantienen información solo de los actores que aparecen en las películas y que se tiene a disposición. Solo se alquila videos a aquellos que pertenecen al club de videos. Para pertenecer al club se debe tener un buen crédito. Por cada miembro del club se mantiene una ficha con su nombre, teléfono y dirección, cada miembro del club tiene asignado un número de membresía. Se desea mantener información de todos los casetes que un cliente alquila, cuando un cliente alquila un casete se debería conocer el nombre de la película, la fecha en la que se alquila y la fecha de devolución. Se pide aplicar las reglas de normalización hasta la tercera forma normal, teniendo las siguientes entidades con sus respectivos atributos: Alquiler (cod_alquiler, num_membresia, cod_cliente, nom_cliente, dir_cliente, telef_cliente, cod_cassette, fecha_alquiler, fecha_dev, valor_alquiler, cantidad) Cassettte (cod_cassette, num_copias, formato, cod_pelicula, titulo, categoría, cod_actor, nom_actor, fechanac_actor, cod_tipo)
  • 65.
    EJERCICIO #4 UNIDAD II– MODELAMIENTO DE BASES DE DATOS Donde: cod_alquiler = Codigo del alquiler num_membresia = Numero de membresia cod_cliente = código del cliente nom_cliente = nombre del cliente dir_cliente = dirección del cliente telef_cliente = teléfono del cliente cod_cassette = código del cassette fecha_alquiler = fecha del alquiler del al película fecha_dev = fecha de devolución de la pelicula valor_alquiler = valor del alquiler de la película cantidad = cantidad de película alquilada
  • 66.
    EJERCICIO #4 UNIDAD II– MODELAMIENTO DE BASES DE DATOS num_copias = números de copias de cassette formato = formato del cassette titulo = nombre de la película categoría = categoría de la película cod_actor = código del actor nom_actor = nombre del actor fechanac_actor = fecha de nacimiento del actor cod_tipo = código del tipo de película.
  • 67.
    EJERCICIO #5 UNIDAD II– MODELAMIENTO DE BASES DE DATOS Se presenta una base de datos de una biblioteca, aplicar las reglas de normalización simplificando hasta la tercera forma normal. codLibro Titulo Autor Editorial nombreLector Fechadev 1001 Variable compleja Murray Spiegel McGraw Hill Pérez Gómez, Juan 15/04/2005 1004 Visual Basic 5 E. Petroustsos Anaya Ríos Terán, Ana 17/04/2005 1005 Estadística Murray Spiegel McGraw Hill Roca, René 16/04/2005 1006 Oracle University Nancy Greenberg y Priya Nathan Oracle Corp. García Roque, Luis 20/04/2005 1007 Clipper 5.01 Ramalho McGraw Hill Pérez Gómez, Juan 18/04/2005
  • 68.
  • 69.
    PRINCIPIOS DEL MODELORELACIONAL UNIDAD III – MODELO RELACIONAL El modelo relacional, para el modelado y la gestión de bases de datos, es un modelo de datos basado en la lógica de predicados y en la teoría de conjuntos. En este modelo todos los datos son almacenados en relaciones, y como cada relación es un conjunto de datos, el orden en el que estos se almacenen no tiene relevancia. Por lo tanto, este modelo considera la base de datos como una colección de relaciones. De manera simple, una relación representa una tabla que no es más que un conjunto de filas, cada fila es un conjunto de campos y cada campo representa un valor que interpretado describe el mundo real. Cada fila también se puede denominar tupla o registro y a cada columna también se le puede llamar campo o atributo.
  • 70.
    OBJETIVOS DEL MODELORELACIONAL UNIDAD III – MODELO RELACIONAL Independencia Física: El almacenamiento de los datos no influye en su manipulación. Si el almacenamiento físico cambia, los usuarios que acceden a esos datos no tienen que modificar sus aplicaciones. Independencia Lógica: Las aplicaciones que utilizan la base de datos no deben ser modificadas por que se inserten, actualicen y eliminen datos. Flexibilidad: Cada usuario puede presentar a los datos de la forma en que éste prefiera. Uniformidad: Las estructuras lógicas de los datos siempre tienen una única forma conceptual (las tablas), lo que facilita la creación y manipulación de la base de datos por parte de los usuarios. Sencillez: Las características anteriores hacen que este Modelo sea fácil de comprender y de utilizar por parte del usuario final.
  • 71.
    CARACTERÍSTICAS DEL MODELO RELACIONAL UNIDADIII – MODELO RELACIONAL • Los datos son atómicos o monovaluados. • Los datos de cualquier columna son de un solo tipo. • Cada columna posee un nombre único. • El orden de las columnas no es de importancia para la tabla. • Las columnas de una relación se conocen como atributos. • Cada atributo tiene un dominio.
  • 72.
    CARACTERÍSTICAS DEL MODELO RELACIONAL UNIDADIII – MODELO RELACIONAL • No existen 2 filas en la tabla que sean idénticas. • La información en las bases de datos son representados como datos explícitos. • Cada relación tiene un nombre específico y diferente al resto de las relaciones. • Los valores de los atributos son atómicos: en cada tupla, cada atributo (columna) toma un solo valor. Se dice que las relaciones están normalizadas. • El orden de los atributos no importa: los atributos no están ordenados.
  • 73.
    CARACTERÍSTICAS DEL MODELO RELACIONAL UNIDADIII – MODELO RELACIONAL • Cada tupla es distinta de las demás: no hay tuplas duplicadas • El orden de las tuplas no importa: las tuplas no están ordenadas. • Los atributos son atómicos: en cada tupla, cada atributo (columna) toma un solo valor. Se dice que las relaciones están normalizadas.
  • 74.
    REGLAS DE INTEGRIDAD UNIDADIII – MODELO RELACIONAL Una base de datos contiene unos datos que, en cada momento, deben reflejar la realidad o, más concretamente, la situación de una porción del mundo real. En el caso de las bases de datos relacionales, esto significa que la extensión de las relaciones (es decir, las tuplas que contienen las relaciones) deben tener valores que reflejen la realidad correctamente. Suele ser bastante frecuente que determinadas configuraciones de valores para las tuplas de las relaciones no tengan sentido, porque no representan ninguna situación posible del mundo real.
  • 75.
    REGLAS DE INTEGRIDAD UNIDADIII – MODELO RELACIONAL • Integridad de Dominio: Conjunto de valores válidos de un campo (propiedades del campo) • Integridad de Transiciones: Define los estados por lo que un registro puede pasar válidamente (operación previa) • Integridad de Entidades: Asegura la integridad de las tablas (claves, identificación) • Integridad Referencial: Mantienen y protegen vínculos entre tablas (propiedades de las relaciones) • Integridad de Bases de Datos: Referencian más de una tabla, gobiernan la DB como un todo. • Integridad de Transacciones: Controlan la forma como se manipulan los datos entre una o varias BD
  • 76.
    REGLAS DE INTEGRIDAD UNIDADIII – MODELO RELACIONAL
  • 77.
    REGLAS DE INTEGRIDAD UNIDADIII – MODELO RELACIONAL Regla de Integridad de Unicidad de la Llave Primaria La regla de integridad de unicidad está relacionada con la definición de clave primaria. Concretamente, establece que toda clave primaria que se elija para una relación no debe tener valores repetidos. Edificio Número Superficie Marina 120 10 Marina 122 15 Marina 230 20 Diagonal 120 10
  • 78.
    REGLAS DE INTEGRIDAD UNIDADIII – MODELO RELACIONAL En esta relación, dado que la clave primaria está formada por edificio y número, no hay ningún despacho que repita tanto edificio como número de otro despacho. Sin embargo, sí se repiten valores de edificio (por ejemplo, Marina); y también se repiten valores de número (120). A pesar de ello, el edificio y el número no se repiten nunca al mismo tiempo.
  • 79.
    REGLAS DE INTEGRIDAD UNIDADIII – MODELO RELACIONAL Regla de Integridad de Entidad de la Llave Primaria La regla de integridad de entidad de la clave primaria dispone que los atributos de la clave primaria de una relación no pueden tener valores nulos. Edificio Número Superficie Marina 120 10 Marina 122 15 Marina 230 20 Diagonal 120 10
  • 80.
    REGLAS DE INTEGRIDAD UNIDADIII – MODELO RELACIONAL En esta relación, puesto que la clave primaria está formada por edificio y número, no hay ningún despacho que tenga un valor nulo para edificio, ni tampoco para número. Esta regla es necesaria para que los valores de las claves primarias puedan identificar las tuplas individuales de las relaciones. Si las claves primarias tuviesen valores nulos, es posible que algunas tuplas no se pudieran distinguir.
  • 81.
    REGLAS DE INTEGRIDAD UNIDADIII – MODELO RELACIONAL Regla de Integridad Referencial La regla de integridad referencial está relacionada con el concepto de clave foránea. Concretamente, determina que todos los valores que toma una clave foránea deben ser valores nulos o valores que existen en la clave primaria que referencia. Edificio Número Superficie Marina 120 10 Marina 122 15 Marina 230 20 Diagonal 120 10 ID Nombre Apellido EdiDesp NumDesp 40.444 Juan García Marina 120 33.567 Marta Roca Marina 120 55.898 Carlos Buendía Diagonal 120 77.232 Elena Pla Marina 122
  • 82.
    REGLAS DE INTEGRIDAD UNIDADIII – MODELO RELACIONAL Se tiene la relación DESPACHOS y EMPLEADOS donde edificiodesp y númerodesp de la relación EMPLEADOS forman una clave foránea que referencia la relación DESPACHOS. Debe ocurrir que los valores no nulos de edificiodesp y númerodesp de la relación EMPLEADOS estén en la relación DESPACHOS como valores de edificio y número. Por ejemplo, el empleado <40.444, Juan García, Marina, 120> tiene el valor Marina para edificiodesp, y el valor 120 para númerodesp, de modo que en la relación DESPACHOS hay un despacho con valor Marina para edificio y con valor 120 para número. La necesidad de la regla de integridad relacional proviene del hecho de que las claves foráneas tienen por objetivo establecer una conexión con la clave primaria que referencian. Si un valor de una clave foránea no estuviese presente en la clave primaria correspondiente, representaría una referencia o una conexión incorrecta.
  • 83.
    ESQUEMA DEL MODELORELACIONAL UNIDAD III – MODELO RELACIONAL Un esquema contiene la definición de una estructura (generalmente relaciones o tablas de una base de datos), es decir, determina la identidad de la relación y qué tipo de información podrá ser almacenada dentro de ella; en otras palabras, el esquema contiene los metadatos de la relación. Todo esquema constará de: • Nombre de la relación (su identificador). • Nombre de los atributos (o campos) de la relación y sus dominios; el dominio de un atributo o campo define los valores permitidos para el mismo, equivalente al tipo de dato por ejemplo character, integer, date, string... La notación para un esquema es el nombre de la relación seguido de una lista de sus atributos entre paréntesis. Productos (codigo,nombre,tipo,precio,peso)
  • 84.
    INSTANCIAS DEL MODELORELACIONAL UNIDAD III – MODELO RELACIONAL Una instancia de manera formal es la aplicación de un esquema a un conjunto finito de datos. En palabras no tan técnicas, se puede definir como el contenido de una tabla en un momento dado, pero también es válido referirse a una instancia cuando se trabaja o se muestra únicamente un subconjunto de la información contenida en una relación o tabla, como por ejemplo: • Ciertos caracteres y números (una sola columna de una sola fila). • Algunas o todas las filas con todas o algunas columnas o Cada fila es una tupla. El número de filas es llamado cardinalidad. o El número de columnas es llamado aridad o grado.
  • 85.
    ATRIBUTOS UNIDAD III –MODELO RELACIONAL Un Atributo en el Modelo Relacional representa una propiedad que posee esa Relación y equivale al atributo del Modelo E-R, y se corresponde con la idea de campo o columna. En el caso de que sean varios los atributos de una misma tabla, definidos sobre el mismo dominio, habrá que darles nombres distintos, ya que una tabla no puede tener dos atributos con el mismo nombre.
  • 86.
    TUPLAS UNIDAD III –MODELO RELACIONAL Una tupla es una secuencia de valores agrupados, que sirve para agrupar, como si fueran un único valor, varios valores que, por su naturaleza, deben ir juntos. El tipo de datos que representa a las tuplas se llama tuple. El tipo tuple es inmutable: una tupla no puede ser modificada una vez que ha sido creada. En resumen, una tupla es una fila que contiene todos los datos para un registro individual. (123,escritorio,Oficina,200000,10000)
  • 87.
    GRADO Y CARDINALIDAD UNIDADIII – MODELO RELACIONAL Grado. Representa el número de columnas de la relación (número de atributos). La relación del ejemplo es de grado cinco porque tiene cinco atributos. Esto quiere decir que cada fila de la tabla es una tupla con cinco valores. Cardinalidad. Representa el número de tuplas de una relación (número de filas). Ya que en las relaciones se van insertando y borrando tuplas a menudo, la cardinalidad de las mismas varía constantemente.
  • 88.
    DOMINIO UNIDAD III –MODELO RELACIONAL Define que cada componente para cada tupla debe ser atómico, es decir, cada componente y atributo deben pertenecer a un tipo elemental como enteros o cadenas, a eso se le denomina dominio. En el ejemplo, el código es de tipo entero y nombre de tipo cadena. Es necesario decir que los componentes no pueden ser una estructura de registro. Al permitir eso un componente podría tener distintos dominios y esto es justo lo que se quiere evitar.
  • 89.
    CLAVES UNIDAD III –MODELO RELACIONAL Ya que en una relación no hay tuplas repetidas, éstas se pueden distinguir unas de otras, es decir, se pueden identificar de modo único. La forma de identificarlas es mediante los valores de sus atributos. Clave candidata Conjunto de atributos que permiten identificar en forma única cada tupla de la relación. Es decir columnas cuyos valores no se repiten para esa tabla. Los atributos candidatos para una tabla de individuos (clientes, pacientes, etc.) es el ‘rut’, un número de seguro social, un ‘id’ de cliente (numérico o de caracter). Clave externa, ajena o foránea Atributo cuyos valores coinciden con una clave candidata (normalmente primaria) de otra tabla.
  • 90.
    CLAVES UNIDAD III –MODELO RELACIONAL Clave primaria Clave candidata que se escoge como identificador de las tuplas. Se elige como primaria la candidata que identifique mejor a cada tupla en el contexto de la base de datos. Por ejemplo un atributo con el RUT sería clave candidata de una tabla de clientes, aunque si en esa relación existe un atributo de código de cliente, este sería mejor candidato para clave principal, porque es mejor identificador para ese contexto. Clave alternativa Cualquier clave candidata que no sea primaria y que también puede identificar de manera única una tupla. Al momento de crear la relación como tabla en la Base de Datos se debe definir una constraints de tipo UNIQUE.
  • 91.
    FUNCIONAMIENTO DEL MODELO RELACIONAL UNIDADIII – MODELO RELACIONAL Hay que tener en cuenta que las propias tablas ya establecen relaciones entre los datos, de ahí el nombre. En realidad se rige por unas normas sencillas, que son las siguientes: • Las tablas son el centro del modelo y los datos deben ser representados en ellas. También se usan tablas cuando se calculan resultados de otras. • El orden de cada columna viene determinado por el tipo de consulta que se realice. Por tanto, no es necesario un orden inicial, ya que cada relación la conforma un conjunto único de datos. • Las filas son datos o casos, las columnas campos o variables. Por otro lado, cada celda es un registro que tiene dos dimensiones. • Es imprescindible disponer de un identificador único (clave primaria) de cada registro. Este permite establecer relaciones entre dos o más tablas, usándolo como una clave externa.
  • 92.
    EJEMPLO DEL MODELORELACIONAL UNIDAD III – MODELO RELACIONAL
  • 93.
    TRANSFORMACIÓN DE ENTIDAD-RELACIÓN AMODELO RELACIONAL UNIDAD III – MODELO RELACIONAL El modelo entidad relación es más flexible a la hora de empezar a diseñar la base de datos y expresa en gran medida el modelo relacional. Tres puntos a tener en cuenta del modelo entidad relación: • Las relaciones son tratadas como un concepto aparte, evitando redundancias y determinándose entidades según sea su cardinalidad. • Con respecto a los tipos de datos solo admite valores estructurados, pero no conjuntos o colecciones. • Las relaciones pueden contener atributos sin ningún problema.
  • 94.
    PRINCIPIOS DE DISEÑOY FORMAS NORMALES UNIDAD III – MODELO RELACIONAL En ocasiones la conversión de diseños de E/R ocasiona problemas con los esquemas relacionales de bases de datos, sobre todo en la redundancia, es básicamente un elemento repetido en más de una tupla. De esta forma, se presentan problemas al diseñar buenos esquemas relacionales: • Esquemas defectuosos • Descomposición de relaciones
  • 95.
    ESQUEMAS DEFECTUOSOS UNIDAD III– MODELO RELACIONAL Básicamente las anomalías hacen referencia a la redundancia, que tanto se repite un valor en una entidad y si es posible evitar este problema. Las principales anomalías son: • Redundancia: Si se identifica que un atributo se repite muchas veces convirtiéndose en una contaste en la entidad en cuestión, se está en presencia de redundancia.
  • 96.
    ESQUEMAS DEFECTUOSOS UNIDAD III– MODELO RELACIONAL • Anomalías de actualización: Ocurre cuando existen varias tuplas con casi la misma información y se actualiza un elemento de una tupla dejando a las demás inalteradas.
  • 97.
    ESQUEMAS DEFECTUOSOS UNIDAD III– MODELO RELACIONAL Anomalías de eliminación: Si uno o más componentes quedan vacíos esto ocasiona perdida de información en cadena. Ejemplo, si se elimina ‘Ryan Reynolds’ de la película Deadpool, ésta no tendría más actores en la base de datos. La última tupla de Deadpool en la relación Peliculas desaparecería junto con el estudio, duración, año…
  • 98.
    DESCOMPOSICIÓN DE RELACIONES UNIDADIII – MODELO RELACIONAL Para acabar con anomalías por esquemas defectuosos, se hace uso de descomposición de relaciones. Consiste en dividir los atributos de una relación de R para crear esquemas de nuevas relaciones, o dicho de otra manera se realizan proyecciones sobre R. De manera más formal se dice que una relación R con el esquema de sus atributos {𝐴1,𝐴2,…,𝐴𝑛}, podemos descomponer R en dos relaciones S y T con los esquemas {𝐵1,𝐵2,…,𝐵𝑚} y {𝐶1,𝐶2,…,𝐶𝑘}, respectivamente, tales que {𝐴1,𝐴2,…,𝐴𝑛}= {𝐵1,𝐵2,…,𝐵𝑚}∪ {𝐶1,𝐶2,…,𝐶𝑘}
  • 99.
    DESCOMPOSICIÓN DE RELACIONES UNIDADIII – MODELO RELACIONAL Para mitigar las anomalías que presenta la Tabla, se hará una descomposición de la siguiente manera. • Una relación pelicula1, cuyos atributos son todos menos nombreActor. • Una relación pelicula2, cuyos atributos son título, año y nombreActor.
  • 100.
    DEPENDENCIAS FUNCIONALES UNIDAD III– MODELO RELACIONAL Es una clase de restricción en el modelo referencial, y su principal objetivo es disminuir cualquier redundancia en esquemas de bases de datos. Existen otros tipos de restricciones como las dependencias multivaluadas y las de existencia e independencia. "𝑆í 𝑑𝑜𝑠 𝑡𝑢𝑝𝑙𝑎𝑠 𝑑𝑒 𝑅 𝑐𝑜𝑛𝑐𝑢𝑒𝑟𝑑𝑎𝑛 𝑒𝑛 𝑙𝑜𝑠 𝑎𝑡𝑟𝑖𝑏𝑢𝑡𝑜𝑠 {𝐴1,𝐴2,…,𝐴𝑛}, 𝑡𝑎𝑚𝑏𝑖é𝑛 𝑙𝑜 ℎ𝑎𝑟á𝑛 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑎𝑡𝑟𝑖𝑏𝑢𝑡𝑜,𝐵" (Ullman, 1999) Es decir, cuando se repite la superllave varias veces en diferentes tuplas de una relación quiere decir según la proposición anterior que la totalidad de sus atributos también lo harán.
  • 101.
    EJERCICIO UNIDAD III –MODELO RELACIONAL Realice un modelo E/R en el cual un cliente compra muchos productos, y estos pueden ser comprados por varios clientes. Los datos registrados del cliente son: Id, nombre, fecha de nacimiento y género. El Id del cliente es único y lo identifica en la base de datos. Los datos de cada producto son: código (único), nombre, tipo, precio y peso. En cada compra de un producto específico se registra la cantidad y fecha (i.e., la relación compra solo tiene dos atributos, cantidad y fecha). En este ejercicio la sección, la transacción y la factura no se estiman para mantenerlo simple. Cada comprador tiene varias tarjetas, pero una tarjeta solo pertenece a un solo comprador. La tarjeta tiene un numero (único) y un cupo, y definitivamente es una entidad. No se tendrá en cuenta fecha de adquisición, ni de caducidad, tampoco código secreto para mantener el ejercicio simple.
  • 102.
    EJERCICIO UNIDAD III –MODELO RELACIONAL Obtener el modelo relacional del siguiente modelo E/R
  • 103.
    EJERCICIO UNIDAD III –MODELO RELACIONAL La clínica “Pajonal” necesita llevar un control informatizado de su gestión de pacientes y médicos. De cada paciente se desea guardar el código, nombre, apellido, dirección, población, municipio, código postal, teléfono y fecha de nacimiento. De cada médico se desea guardar el código, nombre, apellido, teléfono y especialidad. Se desea llevar el control de cada uno de los ingresos que el paciente hace en la clínica. Cada ingreso que realiza el paciente queda registrado en la base de datos. De cada ingreso se guarda el código de ingreso (que se incrementara automáticamente cada vez que el paciente realiza un ingreso), el número de habitación y cama en la que el paciente realiza el ingreso y la fecha de ingreso. Un médico puede atender varios ingresos, pero el ingreso de un paciente solo puede ser atendido por un único médico. Un paciente puede realizar varios ingresos en la clínica.
  • 104.
  • 105.
    OPERACIONES DE CONJUNTOS RELACIONALES UNIDADIV – ALGEBRA RELACIONAL Su principal objetivo es la manipulación del contenido de una instancia de la base de datos con el fin de obtener contenido de interés. Comenzaremos nuestro análisis de algebra relacional examinando las dos operaciones unarias.
  • 106.
    PROYECCIÓN La proyección esuna de las principales operaciones y es de tipo unario, es decir, solo actúa sobre una sola relación. Sirve para omitir columnas o atributos que no sean necesarios en la consulta. Se representa con la siguiente notación. 𝜋(𝑥,𝑦,𝑧…𝑛)( 𝑅 ) Donde: • 𝜋 : Nos indica que se está refiriendo a una proyección. • 𝑥,𝑦,𝑧..𝑛: Son todos los atributos que se desean mostrar en la consulta. • 𝑅 : Es la relación a la cual se le aplica la proyección. UNIDAD IV – ALGEBRA RELACIONAL
  • 107.
    PROYECCIÓN Supongamos que queremosobtener solo el título, año y nombre de estudio, la proyección en este caso quedaría así. 𝜋(𝑇𝑖𝑡𝑢𝑙𝑜, 𝐴ñ𝑜, 𝑛𝑜𝑚𝑏𝑟𝑒𝐸𝑠𝑡𝑢𝑑𝑖𝑜)( 𝑃𝑒𝑙𝑖𝑐𝑢𝑙𝑎𝑠 ) Arrojaría como resultado la siguiente tabla UNIDAD IV – ALGEBRA RELACIONAL
  • 108.
    PROYECCIÓN De la tablasiguiente, queremos obtener el tipo de camisa UNIDAD IV – ALGEBRA RELACIONAL
  • 109.
    PROYECCIÓN Realizando la proyección R= CAMISAS[Camisa] la relación resultante sería UNIDAD IV – ALGEBRA RELACIONAL
  • 110.
    SELECCIÓN Consiste en recuperarun conjunto de registros de una tabla o relación indicando las condiciones que deben cumplir dichos registros. En otras palabras, los registros devueltos por la selección han de satisfacer todas las condiciones que se hallan establecido en la operación. Normalmente se le conoce como consulta. Es una operación unaria. Se representa con la siguiente notación: 𝜎(𝑐𝑜𝑛𝑑𝑖𝑐𝑖𝑜𝑛)( 𝑅 ) Donde: • 𝜎: Nos indica que se está haciendo referencia a una selección. • 𝑐𝑜𝑛𝑑𝑖𝑐𝑖𝑜𝑛: Es la condición a cumplir para seleccionar los registros. UNIDAD IV – ALGEBRA RELACIONAL
  • 111.
    SELECCIÓN En la condicióno predicado se pueden usar varias operaciones como son: • Comparación: Los registros son comparados con un valor determinado usando expresiones >(𝑚𝑎𝑦𝑜𝑟 𝑞𝑢𝑒),<(𝑚𝑒𝑛𝑜𝑟 𝑞𝑢𝑒),≥(𝑚𝑎𝑦𝑜𝑟 𝑜 𝑖𝑔𝑢𝑎𝑙 𝑞𝑢𝑒),≤(𝑚𝑒𝑛𝑜𝑟 𝑜 𝑖𝑔𝑢𝑎𝑙 𝑞𝑢𝑒),=(𝑖𝑔𝑢𝑎𝑙 𝑎) • Lógico: Los operadores lógicos sirven más que todo para unir expresiones de comparación, por ejemplo, si 𝑒𝑑𝑎𝑑> 18 𝐴𝑁𝐷 𝑛𝑜𝑚𝑏𝑟𝑒=𝑝𝑒𝑑𝑟𝑜. Encontramos las siguientes expresiones ∧(𝐴𝑁𝐷), ∨(𝑂𝑅), ¬(𝑁𝑂𝑇) • 𝑅 : Es la relación a la cual se le aplica la selección. UNIDAD IV – ALGEBRA RELACIONAL
  • 112.
    SELECCIÓN Supongamos que queremosobtener solo las películas cuyo nombre de estudio sea Fox, la selección en este caso quedaría así. 𝜎(𝑛𝑜𝑚𝑏𝑟𝑒𝐸𝑠𝑡𝑢𝑑𝑖𝑜="𝐹𝑜𝑥")( 𝑃𝑒𝑙𝑖𝑐𝑢𝑙𝑎𝑠 ) Arrojaría como resultado la siguiente tabla UNIDAD IV – ALGEBRA RELACIONAL
  • 113.
    SELECCIÓN De la tablasiguiente, queremos obtener el tipo de camisa cuyo peso sea igual a 210 gr. UNIDAD IV – ALGEBRA RELACIONAL
  • 114.
    SELECCIÓN Realizando la siguienteselección R = CAMISAS[peso_gr = 210 ] la relación resultante sería UNIDAD IV – ALGEBRA RELACIONAL
  • 115.
    PRODUCTO CARTESIANO El productocartesiano es una operación de la teoría de conjuntos en la que dos o más conjuntos se combinan entre sí. En el modelo de base de datos relacional se utiliza el producto cartesiano para interconectar conjuntos de tuplas en la forma de una tabla. El resultado de esta operación es otro conjunto de tuplas ordenadas, donde cada tupla está compuesta por un elemento de cada conjunto inicial. Por tanto el producto cartesiano entre dos conjuntos da como resultado un nuevo conjunto con tantos elementos como pares posibles de elementos puedan combinarse. UNIDAD IV – ALGEBRA RELACIONAL
  • 116.
    PRODUCTO CARTESIANO Una tablaes en realidad un conjunto de registros, y al realizar una consulta como la siguiente: SELECT * FROM TABLA1 , TABLA2 el motor SQL realiza el producto cartesiano de ambos conjuntos, combinando todos los elementos o registros de la TABLA1 con todos los registros de la TABLA2, de manera que cada fila de resultado es una de las combinaciones posibles. Por tanto el número de filas resultantes será igual al número de registros de la TABLA1 multiplicado por el número de registros de la TABLA2. UNIDAD IV – ALGEBRA RELACIONAL
  • 117.
    PRODUCTO CARTESIANO UNIDAD IV– ALGEBRA RELACIONAL
  • 118.
    PRODUCTO CARTESIANO El productocartesiano de ambas tablas es: SELECT * FROM Camisas, Pantalones UNIDAD IV – ALGEBRA RELACIONAL
  • 119.
    PRODUCTO CARTESIANO Campo Ambiguo: Laambigüedad se da cuando en una consulta SQL de por ejemplo dos tablas, en ambas existen uno o más campos con el mismo nombre, y estos campos aparecen en cualquier cláusula de la consulta. Si no se le indica a cual de las tabla pertenece el campo al que hacemos mención, devolverá un error. Para ilustrar lo que es un campo ambiguo en una consulta SQL, planteamos la siguiente cuestión, ¿qué mudas pueden confeccionarse con este vestuario y que pesa en conjunto cada muda, es decir, pantalón más camisa? UNIDAD IV – ALGEBRA RELACIONAL
  • 120.
    PRODUCTO CARTESIANO La soluciónpasa por sumar el peso de la camisa más el del pantalón, ese dato se guarda en un campo que se denomina igual en ambas tablas: PESO_GR, por lo que debe indicarse a que tabla pertenece cada campo PESO_GR que aparezca en la consulta. Esto se consigue precediendo al campo por el nombre de la tabla, separando la tabla del campo por un punto: SELECT CAMISA , PANTALON , CAMISAS.PESO_GR + PANTALONES.PESO_GR as PESO_MUDA FROM CAMISAS , PANTALONES UNIDAD IV – ALGEBRA RELACIONAL
  • 121.
    PRODUCTO CARTESIANO El resultadosería: UNIDAD IV – ALGEBRA RELACIONAL
  • 122.
    PRODUCTO CARTESIANO En generalen una consulta SQL con más de una tabla debe indicarse siempre a que tabla pertenece cada campo, pudiendo no hacerse en el caso de que no exista ambigüedad, aunque no se recomienda. Las tablas pueden cambiar en un futuro, y donde no existe ambigüedad hoy, puede no ser así mañana. Por tanto es más prudente para evitar fuentes de errores futuras construir la anterior consulta así: SELECT CAMISAS.CAMISA , PANTALONES.PANTALON , CAMISAS.PESO_GR + PANTALONES.PE SO_GR as PESO_MUDA FROM CAMISAS , PANTALONES UNIDAD IV – ALGEBRA RELACIONAL
  • 123.
    PRODUCTO CARTESIANO Alias deTabla: Al igual que el SQL permite rebautizar columnas de la cláusula SELECT, también permite rebautizar tablas de la cláusula FROM. Para ello se emplea de igual modo la palabra clave AS. Se consigue así que las consultas sean menos laboriosas de construir, menos tupidas y más simplificadas a la vista del desarrollador. Por ejemplo: SELECT C.CAMISA , P.PANTALON , C.PESO_GR + P.PESO_GR as PESO_MUDA FROM CAMISAS as C, PANTALONES as P UNIDAD IV – ALGEBRA RELACIONAL
  • 124.
    PRODUCTO CARTESIANO Analicemos elsiguiente ejercicio: UNIDAD IV – ALGEBRA RELACIONAL
  • 125.
    COMBINACIÓN La Combinación esuna operación que, a partir de dos relaciones, obtiene una nueva relación formada por todas las tuplas que resultan de concadenar tuplas de la primera relación con tuplas de la segunda, y que cumplen una condición de combinación específica. UNIDAD IV – ALGEBRA RELACIONAL Edificio Número Superficie Marina 120 10 Marina 122 15 Marina 230 20 Diagonal 120 10 ID Nombre Apellido EdiDesp NumDesp 40.444 Juan García Marina 120 33.567 Marta Roca Marina 120 55.898 Carlos Buendía Diagonal 120 77.232 Elena Pla Marina 122
  • 126.
    COMBINACIÓN Para conseguir unarelación que tenga los datos de cada uno de los empleados de administración junto con los datos de los despachos donde trabajan, podemos hacer una combinación de las relaciones EMPLEADOS y DESPACHOS, donde la condición de combinación EMPLEADOS_ADM y DESPACHOS, indique lo siguiente: edidesp = edificio y númdesp = número La condición de combinación hace que el resultado sólo combine los datos de un empleado con los datos de un despacho si el edidesp y el númdesp del empleado son iguales que el edificio y el número del despacho, respectivamente. Es decir, la condición hace que los datos de un empleado se combinen con los datos del despacho donde trabaja, pero no con datos de otros despachos. UNIDAD IV – ALGEBRA RELACIONAL
  • 127.
    COMBINACIÓN La combinación delejemplo anterior se indicaría de la forma siguiente: EMPLEADOS_ADM[edidesp = edificio, númdesp = número]DESPACHOS Si se quiere combinar dos relaciones que tienen algún nombre de atributo común, sólo hace falta redenominar previamente los atributos repetidos de una de las dos. UNIDAD IV – ALGEBRA RELACIONAL
  • 128.
    REUNIÓN NATURAL En unproducto cartesiano R x S donde R y S son dos entidades, cada atributo de R se parea con todos los atributos de S, entonces, en la Reunión Natural el pareamiento ocurre si y solo si, los atributos coinciden en las dos entidades. Cuando esto ocurre el resultado es una tupla denominada tupla reunida y la reunión se denota con 𝑹⋈𝑺. En otras palabras, dos relaciones son compatibles para la unión si ambas tienen el mismo esquema de tupla (cabecera), es decir, si tienen el mismo número de atributos, se llaman igual y se encuentran definidos sobre los mismos dominios. UNIDAD IV – ALGEBRA RELACIONAL
  • 129.
    REUNIÓN NATURAL IZQUIERDAY DERECHA La Reunión natural externa izquierda es una reunión natural en la que las tuplas de R que no tienen valores en común con ninguna tupla de S, también aparecen en el resultado. La Reunión natural externa derechaa es una reunión natural en la que las tuplas de S que no tienen valores en común con ninguna tupla de R, también aparecen en el resultado. UNIDAD IV – ALGEBRA RELACIONAL
  • 130.
    REUNIÓN NATURAL COMPLETA LaReunión natural externa completa es una Reunión natural en la que las tuplas de S que no tienen valores en común con ninguna tupla de R y las tuplas de R que no tienen valores en común con ninguna tupla de S , también aparecen en el resultado. UNIDAD IV – ALGEBRA RELACIONAL
  • 131.
    REUNIÓN THETA A diferenciade la natural, ésta brinda unos criterios al parear tuplas provenientes de dos relaciones y no una condición especifica. Una condición arbitraria denotada por la letra C. La representación de una reunión theta de las relaciones R y S que se funda en la condición C es 𝑅 ⋈𝐶𝑆 Los pasos para determinar una reunión theta son: • Se toma el producto de R y S. • Se seleccionan en el producto solo las tuplas que cumplan con la condición C. UNIDAD IV – ALGEBRA RELACIONAL
  • 132.
    DIFERENCIA Obtiene una relaciónque tiene las tuplas que se encuentran en R y no se encuentran en S. Para poder realizar esta operación, R y S deben ser compatibles para la unión. UNIDAD IV – ALGEBRA RELACIONAL
  • 133.
    INTERSECCIÓN Obtiene una relaciónque contiene las tuplas de R que también se encuentran en S. Para poder realizar esta operación, R y S deben ser compatibles para la unión. R INTERSECT S obtiene el mismo resultado que R MINUS (R MINUS S) UNIDAD IV – ALGEBRA RELACIONAL
  • 134.
    RENOMBRAMIENTO Esta operación cambiael nombre de la relación y sus atributos sí así es requerido y es denota de la siguiente manera 𝜌𝑆(𝐴1,𝐴2…𝐴𝑛) (𝑅) para renombrar una relación R. La relación resultante tiene las mismas tuplas que R pero con nombre S. Ahora bien, sí solo se quiere cambiar el nombre de R por S, basta con decir 𝜌𝑆 (𝑅) UNIDAD IV – ALGEBRA RELACIONAL
  • 135.
    CONSULTAS CON COMBINACIÓNDE OPERACIONES Se pueden combinar las operaciones como proyección, selección, producto, etc. junto a operadores como intersección, unión, diferencia, etc. con el fin de lograr consultas más complejas y que requieran una abstracción más minuciosa de los datos. Lo más común es construir subexpresiones usando paréntesis. UNIDAD IV – ALGEBRA RELACIONAL
  • 136.
    CONSULTAS CON COMBINACIÓNDE OPERACIONES Suponga que se requieren los títulos y años de las películas realizadas por el estudio Fox y que sean de tipo color. Se resolverá de dos maneras, una usando el operador ∩ y otra usando en AND lógico dentro de una expresión de selección. Usando ∩ 𝜋𝑇𝑖𝑡𝑢𝑙𝑜,𝐴ñ𝑜(𝜎𝑡𝑖𝑝𝑜𝑃𝑒𝑙𝑖𝑐𝑢𝑙𝑎="𝑐𝑜𝑙𝑜𝑟"(𝑃𝑒𝑙𝑖𝑐𝑢𝑙𝑎𝑠)∩𝜎𝑛𝑜𝑚𝑏𝑟𝑒𝐸𝑠𝑡𝑢𝑑𝑖𝑜="𝐹𝑜𝑥"(𝑃𝑒𝑙𝑖𝑐𝑢𝑙𝑎𝑠)) Usando AND 𝜋𝑇𝑖𝑡𝑢𝑙𝑜,𝐴ñ𝑜(𝜎𝑡𝑖𝑝𝑜𝑃𝑒𝑙𝑖𝑐𝑢𝑙𝑎="color" 𝐴𝑁𝐷 𝑛𝑜𝑚𝑏𝑟𝑒𝐸𝑠𝑡𝑢𝑑𝑖𝑜="𝐹𝑜𝑥"(𝑃𝑒𝑙𝑖𝑐𝑢𝑙𝑎𝑠)) UNIDAD IV – ALGEBRA RELACIONAL
  • 137.
    CONSULTAS CON COMBINACIÓNDE OPERACIONES El resultado sería UNIDAD IV – ALGEBRA RELACIONAL
  • 138.
  • 139.
    INTRODUCCIÓN A SQL ElSQL es el lenguaje estándar ANSI/ISO de definición, manipulación y control de bases de datos relacionales. Es un lenguaje declarativo: sólo hay que indicar qué se quiere hacer. En cambio, en los lenguajes procedimentales es necesario especificar cómo hay que hacer cualquier acción sobre la base de datos. El SQL es un lenguaje muy parecido al lenguaje natural; concretamente, se parece al inglés, y es muy expresivo. Por estas razones, y como lenguaje estándar, el SQL es un lenguaje con el que se puede acceder a todos los sistemas relacionales comerciales. UNIDAD V – SQL
  • 140.
    SENTENCIAS DE DEFINICIÓN Parapoder trabajar con bases de datos relacionales, el primer paso es definirlas. 1. Para crear bases de datos, tablas, dominios, aserciones y vistas se utilice la sentencia CREATE. 2. Para modificar tablas y dominios se utilice la sentencia ALTER. 3. Para borrar bases de datos, tablas, dominios, aserciones y vistas se utilice la sentencia DROP. UNIDAD V – SQL
  • 141.
    CREACIÓN DE TABLAS Paracrear una tabla, es necesario utilizar la sentencia CREATE TABLE. El proceso que hay que seguir para crear una tabla es el siguiente: 1) Decidir qué nombre se desea poner a la tabla (nombre_tabla). 2) Definir el nombre de cada uno de los atributos que formarán las columnas de la tabla (nombre_columna). 3) A cada una de las columnas, asignar un tipo de datos predefinido o bien un dominio definido por el usuario. También es posible dar definiciones por defecto y restricciones de columna. 4) Definir las restricciones de tabla. UNIDAD V – SQL
  • 142.
  • 143.
    RESTRICCIONES DE COLUMNAS Encada una de las columnas de la tabla, una vez se les ha dado un nombre y se ha definido su dominio, es posible imponer ciertas restricciones que siempre se tendrán que cumplir. Las restricciones que se pueden dar son: UNIDAD V – SQL Restricción Descripción NOT NULL La columna no puede tener valores nulos. UNIQUE La columna no puede tener valores repetidos. Es una clave alternativa. PRIMARY KEY La columna no puede tener valores repetidos ni nulos. Es la clave primaria. REFERENCES tabla [ (columna) ] La columna es la clave foránea de la columna de la tabla especificada. CHECK (condiciones) La columna debe cumplir las condiciones especificas.
  • 144.
    RESTRICCIONES DE TABLAS Unavez se ha dado un nombre, se ha definido una tabla y se han impuesto ciertas restricciones para cada una de las columnas, es posible aplicar restricciones sobre toda la tabla, que siempre se deberán cumplir. Las restricciones son: UNIDAD V – SQL Restricción Descripción UNIQUE (columna [, columna...]) El conjunto de las columnas especificadas no puede tener valores repetidos. Es una clave alternativa PRIMARY KEY (columna [, columna...]) El conjunto de las columnas espacificadas no puede tener valores nulos ni repetidos. Es una clave primaria FOREIGN KEY (columna [, columna...]) REFERENCES tabla [(columna2 [, columna2...])] El conjunto de las columnas especificadas es una clave foránea que referencia la clave primaria formada por el conjunto de las columnas2 se denominan exactamente igual, entonces no sería necesario poner columnas2. CHECK (condiciones) La tabla debe cumplir las condiciones especificadas.
  • 145.
    MODIFICACIÓN Y BORRADODE TABLAS Para modificar una tabla es preciso utilizar alguna de las siguientes operaciones: 1) Añadir una columna (ADD columna). 2) Modificar las definiciones por defecto de la columna (ALTER columna). 3) Borrar la columna (DROP columna). 4) Añadir alguna nueva restricción de tabla (ADD restricción). 5) Borrar alguna restricción de tabla (DROPCONSTRAINT restricción). Para borrar una tabla es preciso utilizar la sentencia DROP TABLE: UNIDAD V – SQL
  • 146.
    MODIFICACIÓN Y BORRADODE TABLAS Para modificar una tabla es preciso utilizar la sentencia ALTER TABLE. ALTER TABLE nombre_tabla {acción_modificar_columna| acción_modif_restricción_tabla}; En este caso, acción_modificar_columna puede ser: {ADD [COLUMN] columna def_columna | ALTER [COLUMN] columna {SET def_defecto|DROP DEFAULT}| DROP [COLUMN ] columna {RESTRICT|CASCADE}} UNIDAD V – SQL
  • 147.
    CREACIÓN Y BORRADODE VISTAS Una vista es una alternativa para mostrar datos de varias tablas. Una vista es como una tabla virtual que almacena una consulta. Los datos accesibles a través de la vista no están almacenados en la base de datos como un objeto. Para crear una vista es necesario utilizar la sentencia CREATE VIEW. CREATE VIEW nombre_vista [(lista_columnas)] AS (consulta) [WITH CHECK OPTION]; UNIDAD V – SQL
  • 148.
    CREACIÓN Y BORRADORDE BASE DE DATOS RELACIONAL Para crear una base de datos, es necesario utilizar la sentencia CREATE DATABASE. Para borrar una base de datos, es necesario utilizar la sentencia DROPDATABASE. UNIDAD V – SQL
  • 149.
    SENTENCIAS DE MANIPULACIÓN Unavez creada la base de datos con sus tablas, debe ser posible insertar, modificar y borrar los valores de las filas de las tablas. Para poder hacer esto, el SQL ofrece las siguientes sentencias: 1. INSERTpara insertar 2. UPDATE para modificar 3. DELETE para borrar 4. SELECT FROM para consultar UNIDAD V – SQL
  • 150.
    INSERCIÓN DE FILASEN UNA TABLA Antes de poder consultar los datos de una base de datos, es preciso introducirlos con la sentencia INSERT INTO VALUES, que tiene el formato: INSERT INTO nombre_tabla [(columnas)] {VALUES ({v1|DEFAULT|NULL}, ..., {vn/DEFAULT/NULL})|}; Los valores v1, v2, ..., vn deben corresponder exactamente con las columnas que se establecieron con el CREATE TABLE y deben estar en el mismo orden, a menos que las volvamos a poner a continuación del nombre de la tabla. UNIDAD V – SQL
  • 151.
    MODIFICACIÓN DE FILASEN UNA TABLA Para modificar los valores de filas de una tabla, es necesario utilizar la sentencia UPDATE SET WHERE. A continuación presentamos su formato: UPDATE nombre_tabla SET columna = {expresión|DEFAULT|NULL} [, columna = {expr|DEFAULT|NULL} ...] WHERE condiciones; UNIDAD V – SQL
  • 152.
    BORRADO DE FILASEN UNA TABLA Para borrar valores de algunas filas de una tabla podemos utilizar la sentencia DELETE FROM WHERE. Su formato es el siguiente: DELETE FROM nombre_tabla [WHERE condiciones]; En cambio, si se desea borrar todas las filas de una tabla, entonces sólo seria necesario poner la sentencia DELETE FROM, sin WHERE. UNIDAD V – SQL
  • 153.
    CONSULTAS SOBRE UNATABLA Para hacer consultas sobre una tabla con el SQL es preciso utilizar la sentencia SELECT FROM, que tiene el siguiente formato: SELECT nombre_columna_a_seleccionar [[AS] col_renombrada] [,nombre_columna_a_seleccionar [[AS] col_renombrada]...] FROM tabla_a_consultar [[AS] tabla_renombrada]; La opción AS nos permite renombrar las columnas que queremos seleccionar o las tablas que queremos consultar que en este caso, es sólo una. Dicho de otro modo, nos permite la definición de alias. Fijémonos en que la palabra clave AS es opcional, y es bastante habitual poner sólo un espacio en blanco en lugar de toda la palabra. UNIDAD V – SQL
  • 154.
    CONSULTAS SOBRE UNATABLA CON VALORES REPETIDOS EN COLUMNAS Al realizar una consulta puede ocurrir que existan valores repetidos para algunas columnas. Si se desea que la consulta no muestre los valores que se repiten, se hace uso de la instrucción DISTINCT SELECT DISTINCT nombre_columna_a_seleccionar FROM tabla_a_consultar; UNIDAD V – SQL
  • 155.
    CONSULTAS SOBRE UNATABLA CON DATOS ORDENADOS ORDER BY se utiliza para ordenar los resultados de una consulta, según el valor de la columna especificada. Por defecto, se ordena de forma ascendente (ASC) según los valores de la columna. Si se quiere ordenar por orden descendente se utiliza la palabra DES. SELECT DISTINCT nombre_columna_a_seleccionar FROM tabla_a_consultar; UNIDAD V – SQL
  • 156.
    FUNCIONES DE AGREGACIÓN SQLofrece las siguientes funciones de agregación para efectuar varias operaciones sobre los datos de una base de datos: UNIDAD V – SQL FUNCIÓN DESCRIPCIÓN COUNT Da el número total de filas seleccionadas SUM Suma los valores de una columna MIN Da el valor mínimo de una columna MAX Da el valor máximo de una columna AVG Calcula el valor medio de una columna
  • 157.
    FUNCIÓN COUNT La funciónde agregación COUNT normalmente se aplica a todas las columnas de la tabla o tablas seleccionadas y contará todas las filas de la tabla o las tablas que cumplan las condiciones. Si se utilizase COUNT(distinct columna), sólo contaría los valores que no fuesen nulos ni repetidos, y si se utilizase COUNT(columna), sólo contaría los valores que no fuesen nulos. SELECT COUNT * FROM tabla_a_consultar WHERE condiciones; UNIDAD V – SQL
  • 158.
    FUNCIÓN SUM La funciónde agregación SUM permite obtener la suma total de los valores de una columna de tipo numérico SELECT SUM nombre_columna_a_seleccionar FROM tabla_a_consultar UNIDAD V – SQL
  • 159.
    FUNCIÓN MIN La funciónde agregación MIN sirve para obtener el valor más pequeño para una columna determinada. SELECT MIN nombre_columna_a_seleccionar FROM tabla_a_consultar UNIDAD V – SQL
  • 160.
    FUNCIÓN MAX La funciónde agregación MAX sirve para obtener el mayor valor para una columna determinada. SELECT MAX nombre_columna_a_seleccionar FROM tabla_a_consultar UNIDAD V – SQL
  • 161.
    FUNCIÓN AVG La funciónde agregación MAX sirve para obtener el mayor medio para una columna de tipo numérico. SELECT AVG nombre_columna_a_seleccionar FROM tabla_a_consultar UNIDAD V – SQL
  • 162.
    SUBCONSULTAS Una subconsulta esuna consulta incluida dentro de una cláusula WHERE o HAVING de otra consulta. En ocasiones, para expresar ciertas condiciones es necesario obtener el valor que se busca como resultado de una consulta. SELECT nombre_columna_a_seleccionar FROM tabla_a_consultar WHERE condiciones UNIDAD V – SQL
  • 163.
    FUNCIÓN HAVING La funciónHAVING se utiliza para incluir condiciones con alguna función SQL del tipo SUM, MAX, … Como la cláusula WHERE no se puede utilizar con funciones SQL del tipo SUM, MAX, entonces se utiliza en su lugar, HAVING. SELECT nombre_columna_a_seleccionar, SUM (nombre_columna2_a_seleccionar) FROM tabla_a_consultar GROUP BY nombre_columna_a_seleccionar HAVING SUM (nombre_columna2_a_seleccionar) > condicion UNIDAD V – SQL
  • 164.
    FUNCIÓN GROUP BY Lafunción GROUP BY se utiliza para juntar filas de resultados que coincidan en el valor de alguna columna seleccionada. SELECT nombre_columna_a_seleccionar, SUM (nombre_columna2_a_seleccionar) FROM tabla_a_consultar GROUP BY nombre_columna_a_seleccionar UNIDAD V – SQL
  • 165.
    FUNCIÓN FIRST La funciónFIRST se utiliza para obtener el valor del primer registro de alguna columna seleccionada. SELECT FIRST (nombre_columna_a_seleccionar) FROM tabla_a_consultar UNIDAD V – SQL
  • 166.
    FUNCIÓN LAST La funciónLAST se utiliza para obtener el valor de la último registro de alguna columna seleccionada. SELECT LAST (nombre_columna_a_seleccionar) FROM tabla_a_consultar UNIDAD V – SQL
  • 167.
    FUNCIÓN UCASE La funciónUCASE sirve para convertir a mayúsculas el valor de una columna. SELECT UCASE (nombre_columna_a_seleccionar) FROM tabla_a_consultar UNIDAD V – SQL
  • 168.
    FUNCIÓN LCASE La funciónLCASE sirve para convertir a minúsculas el valor de una columna. SELECT LCASE (nombre_columna_a_seleccionar) FROM tabla_a_consultar UNIDAD V – SQL
  • 169.
    FUNCIÓN MID La funciónMID se utiliza para extraer caracteres de un campo de texto, donde ‘nombre_columna_a_seleccionar’ es la columna donde se quiere extraer datos de su valor; ‘inicio’ es la posición desde la que empezar a extraer y ‘longitud’ es el número de caracteres a extraer. En caso de no especificarlo, cogerá hasta el final del campo de texto. SELECT MID (nombre_columna_a_seleccionar, inicio, longitud) FROM tabla_a_consultar UNIDAD V – SQL
  • 170.
    FUNCIÓN MID La funciónLEN sirve para calcular la longitud del valor de un campo de texto. SELECT LEN nombre_columna_a_seleccionar FROM tabla_a_consultar UNIDAD V – SQL
  • 171.
    FUNCIÓN ROUND La funciónROUND se utiliza para redondear un campo numérico en un número de decimales especificado. SELECT ROUND (nombre_columna_a_seleccionar, decimales) FROM tabla_a_consultar UNIDAD V – SQL