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.
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.
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.
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
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
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
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
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
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.
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.
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
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
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
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
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
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
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
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