SlideShare una empresa de Scribd logo
1 de 263
Bases de datos
Conceptos Generales
◦ Dato: Es un conjunto de caracteres con algún significado, pueden ser numéricos, alfabéticos, o alfanuméricos, este es la unidad
mínima de información. Estos pueden ser cualitativos o cuantitativos.
◦ Cualitativa: Responde a la pregunta ¿Cuál?. Como color, tipo de letra, lugar de nacimiento.
◦ Cuantitativa: Responde a la pregunta ¿Cuántos?. Tamaño, edad, peso
◦ Información: Es un conjunto ordenado de datos los cuales son manejados según la necesidad del usuario, para que un conjunto de
datos pueda ser procesado eficientemente y pueda dar lugar a información, primero se debe guardar lógicamente en archivos.
◦ Para que la información sirva para el usuario esta debe ser:
◦ Accesible
◦ Clara
◦ Precisa
◦ Propia
◦ Flexible
◦ Verificable
◦ Imparcial
◦ Cuantificable
◦ Archivo: Conjunto de datos interrelacionados, recolectados, que satisfacen las necesidades de información de una comunidad
determinada de usuarios
Información
Archivo
Dato. Edad: 3
Nombre: Pedro
Edad: 3
Municipio:Pachuca
30% mayores de
edad
¿Qué es base de datos?
◦ Es un conjunto de archivos dedicados a guardar información relacionada entre sí, con referencia entre ellos
de manera que se complementen y con la posibilidad de relacionarlos en base a diferentes criterios.
◦ Desde el punto de vista informático, la base de datos es un sistema formado por un conjunto de datos
almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese
conjunto de datos.
Actividad 1.1
◦ Buscar la definición de base de datos de 5 autores diferentes, y crear una definición propia.
Características de la base de datos
◦ Una base de datos brinda una buena administración de datos si cumple con las siguientes
características:
◦ Redundancia: La redundancia se refiere a la existencia de información repetida o duplicada en diferentes
tablas dentro de una base de datos. Para evitar la redundancia es necesario identificar los datos que son
utilizados en común por varias aplicaciones y almacenarlos una sola vez.
◦ Consistencia: Frecuentemente los problemas de consistencia de datos se deben a la redundancia de éstos.
Es muy probable que surjan incongruencias al almacenar la misma información en más de un lugar, ya
que al modificar, eliminar o agregar un dato, en esas condiciones, debe realizarse en cada una de las
instancias del mismo con el riesgo de no realizarlo en su totalidad, generando en este caso datos
inconsistentes.
◦ Integridad: La integridad en una base de datos se refiere, a que los valores que posean los datos
sean validos de acuerdo a las dependencias funcionales de las tablas. Esto es que cuando una base
de datos incluya información utilizada por muchos usuarios, es importante que no puedan
destruirse los datos almacenados ni las relaciones que existen entre los distintos atributos. La
integridad de la base de datos se puede lograr mediante:
◦ El mantenimiento de una redundancia mínima y controlada
◦ El establecimiento de llaves primarias o índices primarios
◦ La validación de las dependencias entre las tablas relacionadas, y la creación de reglas de validación
durante la inserción y edición de datos.
◦ Seguridad: La seguridad implica asegurar que los usuarios están autorizados para llevar a cabo lo
que tratan de hacer. La seguridad de una base de datos se refiere principalmente al control de
acceso, modificación y definición, tanto de los datos como de la estructura de la base de datos por
parte de los diferentes usuarios de la misma.
◦ Actividad 1.2
◦ Generar tres archivos con el numero de columnas que deseen y con 5 registros cada una que ejemplifiquen las
características de la bases de datos que acabamos de mencionar
Nombre edad Tiposangre
faride 30 O-
juan 23 O+
faride 12 A-
Nombre direccion telefono
faride
Nombre edad alergias
faride 15
Aplicaciones de la base de datos
◦ Banca: para la información de los clientes, cuentas, préstamos y transacciones bancarias.
◦ Líneas aéreas: para reservas e información de horarios. Las líneas aéreas fueron de las primeras en
usar las bases de datos de forma distribuida geográficamente.
◦ Universidades: para información de los estudiantes, matrículas en las asignaturas y cursos.
◦ Ventas: para información de clientes, productos y compras.
◦ Comercio en línea: para los datos de ventas ya mencionados y para el seguimiento de los pedidos
Web, generación de listas de recomendaciones y mantenimiento de evaluaciones de productos en
línea.
Actividad 1.3
◦ Menciona 3 ejemplos con los cuales interactuar diariamente y que piensas trabajan con una base de datos para funcionar.
Elementos de la base de
datos
Entidad
◦ Persona, lugar, objeto o evento de interés acerca del cual se recogen o procesan datos. Esta se representa por medio de un
rectángulo, mismo que contiene dentro el nombre de la entidad.
Clientes
Ventas Almacén
Fiesta
◦ Las entidades se dividen en dos tipos, que son:
◦ Regulares o fuertes, que son las entidades normales que tienen existencia por sí mismas sin depender de otras.
◦ Débiles, su existencia depende de otras. Su representación gráfica es con doble recuadro.
Cliente
venta
Pedido
Atributos
◦ Es una característica de una entidad o de una relación en función de lo que nos interesa en nuestra aplicación. Su representación
gráfica es una elipse.
Color
Cliente
Id_cliente Nombre Año_nac
edad
Dirección
◦ Los atributos de clasifican en:
◦ Simples, no están divididos en subpartes
◦ Compuestos, estos están divididos en subpartes
Calle
Colonia
C.P
Estado
Municipio
◦ Monovaluados: solo pueden tener un valor para una entidad particular.
◦ Multivaluados: pueden tener más de un valor para una entidad.
Teléfono
◦ Almacenados o derivados: Son atributos cuyo valor para una entidad puede obtenerse en función de los valores almacenados en
otros atributos. Su representación gráfica es mediante una elipse con línea discontinua.
◦ Identificador: Se trata de uno o más campos cuyos valores son únicos en cada ejemplar de una entidad. Se indican subrayando el
nombre del identificador.
◦ Para que un atributo sea considerado buen identificador tiene que cumplir:
◦ Deben distinguir a cada ejemplar teniendo en cuenta las entidades que utiliza el modelo.
◦ Todos los ejemplares de una entidad deben tener el mismo identificador
◦ Es importante señalar que al conjunto de valores que puede tomar un atributo se le llama dominio del atributo.
◦ Toda entidad debe tener al menos un atributo identificador que permita diferenciar unas entidades particulares de otras.
◦ El atributo identificador puede ser el conjunto de varios atributos, o bien un solo un atributo.
Tabla
◦ Es un conjunto de datos dispuesto en una estructura de filas y columnas.
◦ En una tabla las filas se denominan registros y las columnas campos; la primera fila contiene los nombres de campo.
◦ Cada campo contiene determinado tipo de datos y tiene una longitud expresada en el número de caracteres máximo del campo.
◦ Para crear una tabla es necesario definir su estructura:
◦ El nombre de la tabla
◦ Los tipos de dato de cada campo
◦ Las propiedades o características de cada campo
◦ El campo clave
Relaciones
◦ Describe la interacción entre dos o más entidades. Su representación gráfica es mediante un rombo.
Empleado Cliente
atiende
persona perro
dueña
Actividad 1.4
◦ Del siguiente enunciado identificar entidades, atributos y relaciones.
◦ Se desea generar una base de datos para la gestión de una empresa de transportes que reparte paquetes.
Los encargados de llevar los paquetes son los camioneros, de los que se quiere guardar el rfc, nombre,
teléfono, dirección, salario y municipio en la que vive. De los paquetes transportados interesa conocer el
código de paquete, descripción, destinatario y dirección del destinatario.
◦ Se desea generar una base de datos para una tienda. Los encargados de atender la tienda son los
empleados de los que se requiere guardar su nombre, dirección, teléfono, curp, cada empleado atiende uno
o mas clientes de los que nos interesa saber nombre, teléfono, id_cliente, dirección, cada cliente puede
comprar uno o mas productos del cual nos interesa saber id_producto, nombre, cantidad, costo por
unidad, estos productos son entregados por los empleados.
Componentes de la base
de datos
Datos
◦ La base de datos esta compuesta de datos en si. Las características mas importante de estos dentro de una base de datos es que
deben estar integrados y compartidos.
◦ Integrados: La base de datos puede considerarse como una unificación de varios ficheros de datos, que son tratados como uno solo, y en el que se
ha eliminado totalmente o en parte la redundancia de datos.
◦ Compartida: Los daros pueden compartirse entre varios usuarios. Es posible que varios de estos usuarios accedan al mismo elemento de
información, al mismo tiempo.(Concurrencia).
Equipo (Hardware)
◦ Conjunto de equipos físicos utilizados para almacenar y procesar datos.
◦ Computadoras: Utilizados para procesar los datos de la base de datos. Puede ser desde un ordenador personal o laptop, hasta un mainframe. El
ordenador debe tener la capacidad de conectarse a una red cliente/servidor, garantizando el acceso de varios usuarios a una base de datos. El
servidor puede ser otro ordenador mas potente o bien de las mismas capacidades.
◦ Volúmenes de almacenamiento: Generalmente son unidades de disco que constituyen el mecanismo de almacenamiento principal para la base de
datos.
◦ Otros dispositivos: Pueden ser impresoras, unidades de memoria externa, sistemas de enfriamiento y ventilación.
Programas (software)
◦ Un sistema de base de datos requiere de dos tipos de programas:
◦ El software de propósito general, para la gestión de la base de datos, comúnmente llamado Sistema Gestor de Base de Datos. Este maneja todas las
solicitudes de acceso a la base de datos formuladas por los usuarios y los programas de aplicación.
◦ Software de aplicación: Conocido también como programa final, usa las facilidades del sistema gestor de base de datos para manipular la base de
datos con el fin de llevar a cabo una función especifica en la gestión de la empresa.
Personal
◦ El personal necesario para la creación y gestión de una base de datos se pueden dividir en tres grupos:
◦ Administrador de la base de datos (A.B.D): Son los encargados de diseñar la estructura de la base de datos y los responsables de que el sistema
funcione correctamente. El A.B.D. se encarga de autorizar el acceso a la base de datos, de coordinar y vigilar su utilización y de adquirir los recursos
necesarios de software y hardware. Además el A.B.D es el encargado de:
◦ Definición del esquema: Decidir el contenido de la base de datos, eligiendo cuales son los datos que interesa tener almacenados y organizarlos de la mejor
forma posible, creando el esquema conceptual, que se escribirá mediante un lenguaje de definición de datos.
◦ Definición de las estructuras de almacenamiento y método de acceso: Debe decidir sobre la forma en que se van a almacenar los datos sobre los soportes
físicos en los que se grabará la base de datos y la correspondencia entre esta estructura de almacenamiento y el esquema conceptual.
◦ Modificación del esquema y de la organización física si los requerimientos cambian.
◦ Decidir los controles de autorizaciones para el acceso a los datos: Es el que concede diferentes tipos de autorizaciones al resto de los usuarios de la base de
datos.
◦ Especificar las restricciones de integridad: Debe definir los procedimientos de validación que habrán de ejecutarse cada vez que se actualiza la base de
datos.
◦ Programadores de aplicaciones: Encargado de desarrollar aplicaciones finales para los usuarios, apoyándose en un SGBD para
acceder a la base de datos.
◦ Usuarios finales: Son personas que no tienen porque tener conocimientos informáticos y que pueden manipular los datos con
ayuda de las aplicaciones.
Actividad final 1
◦ Del siguiente enunciando generar un reporte donde mencionen los componentes necesarios para la implementación y gestión de la
base de datos, identifiquen las entidades, los atributos de cada entidad y las relaciones entre entidades.
◦ Una Universidad desea informatizar la información de sus módulos, alumnos y profesores para su mejor gestión, a la cual quieren acceder a través
de una aplicación móvil por internet.
◦ En la base de datos se desea guardar los datos de los profesores del Instituto (id de profesor, nombre, dirección y teléfono). Los profesores
imparten módulos, y cada módulo tiene un código y un nombre. Cada alumno está matriculado en uno o varios módulos. De cada alumno se desea
guardar el número de expediente, nombre, apellidos y fecha de nacimiento.
Modelos de base de datos
◦ Un modelo es una representación de la realidad que contiene las características generales de algo
que se va a realizar.
◦ Un modelo de datos es una colección de herramientas conceptuales para describir los datos, las
relaciones que existen entre ellos, semántica asociada a los datos y restricciones de consistencia.
◦ Los modelos de datos se pueden clasificar dependiendo de los tipos de conceptos que ofrecen
para describir la estructura de la base de datos.
Modelos conceptuales.
◦ En este se construye un esquema conceptual de la información que se usara en la base de datos, al construir este esquema, se
descubre el significado de los datos, se encuentran entidades, atributos y relaciones.
◦ En este modelo se tiene como objetivo comprender:
◦ La perspectiva que el usuario tiene de los datos
◦ La naturaleza de los datos, independientemente de su representación física
◦ El modelo conceptual es completamente independiente de los aspectos de implementación, como pueden ser los programas de
aplicación, los lenguajes de programación, etc.
Modelo lógico
◦ Un modelo de datos lógicos describe los datos con el mayor detalle posible, independientemente de cómo se implementarán
físicamente en la base de datos.
◦ Las características de un modelo de datos lógicos incluyen:
◦ Incluye todas las entidades y relaciones entre ellos.
◦ Todos los atributos para cada entidad están especificados.
◦ La clave principal para cada entidad está especificada.
◦ Se especifican las claves externas (claves que identifican la relación entre diferentes entidades).
◦ Se normalizan los datos.
Modelo físico
◦ El modelo de datos físicos representa cómo se construirá el modelo en la base de datos.
◦ Un modelo de base de datos física muestra todas las estructuras de tabla, incluidos el nombre de columna, el tipo de datos de
columna, las restricciones de columna, la clave principal, la clave externa y las relaciones entre las tablas.
◦ Los pasos básico para el diseño del modelo de datos físicos son los siguientes:
◦ Convertir entidades en tablas.
◦ Convertir relaciones en claves externas.
◦ Convertir atributos en columnas.
Actividad 2.1
◦ Generar un mapa conceptual donde describas los tres tipos de modelos de datos, sus características y principales obejtivos.
Modelos conceptuales
Modelo entidad-relación
◦ El modelo entidad relación (E/R) proporciona una herramienta para representar información del mundo real a nivel conceptual.
◦ Creado en 1976 por Peter Chen, permite describir las entidades involucradas en una base de datos, así como las relaciones y
restricciones de ellas.
◦ Notación grafica.
◦ Tiene semántica clara.
◦ Fácil de entender aún por no especialistas.
◦ Independiente de cualquier SGBD
Conceptos básicos
◦ Entidad: Una entidad es un elemento con existencia independiente de otros elementos. Un conjunto de entidades o tipo entidad es
un conjunto de entidades que comparten las mismas propiedades.
◦ Atributos: Toda entidad tiene propiedades particulares, denominadas atributos y tienen un dominio que es el conjunto de valores
validos para un atributo.
◦ Relación: Si A, B son conjuntos, entonces una relación R es un subconjunto de A × B
◦ Ejemplo: Si A = {1, 2, 3}, B = {a, b, c, d}, R = {(1, a),(1, c),(3, b)}
◦ Cardinalidad: Expresa el número de entidades que pueden asociarse vía un tipo de relación. Para las relaciones binarias la
cardinalidad puede ser:
◦ Uno a uno (←→)
◦ Uno a varios (←−)
◦ Varios a uno (−→)
◦ Varios a varios (--- --- )
◦ Se lee muchos empleados trabajan en un
departamento, y en un departamento trabajan
muchos empleados.
◦ Un departamento es administrado por un
empleado y un empleado administra un
departamento.
emp1
emp2
emp3
emp4
dep1
dep2
dep3
departamento
empleado
◦ Uno a uno
◦ Uno a varios
◦ Varios a uno
◦ Varios a varios
presidente gobierna país
clienta apertura cuenta
propiedades adquiridas persona
alumnos toman materias
(1,1)
1
1
(n,m)
n
1
(1,n)
n
n
Cuenta ahorro=123
Cuenta crédito=345
Cuenta debito=245
1
n
(n,1)
◦ Al modelar una base de datos para un restaurante1, me explican que cada que el cliente genera una orden se genera un pedido de
esa orden y se atiende
Al modelar una base de datos para un restaurante2, me explican que el menú funciona por paquetes y que el cliente pide por numero
de paquete y se le atiende
cliente pedido
ordena
cliente
paquete ordena
◦ También se pueden añadir atributos sobre relaciones, estas son características especificas de la relación. La necesidad de establecer
atributos a las relaciones surgen cuando nos interesa conocer un dato sobre esta relación y este dato no puede ser adjudicado a
ninguna entidad pues provocaría mucha redundancia de datos.
◦ También si la relación de cardinalidad entre entidades es de muchos a muchos, el atributo pasa a la relación.
cliente préstamo
genera
d_cliente
nombre
Fecha_nac telefono
Id_prestamo
Tipo_prestamo
Cantidad_maxima
fecha
Id_prestamo tipo Cantidad_maxima
1 hipotecario 100000
2 mejoravit 50000
3 automovilistico 300000
Id_cliente nombre Año_nac telefono
001 Maria 1987 123
002 Jose 1998 234
003 Luis 1999 456
Id_prestamo Id_cliente
001 001
003 001
001 003
Grado de relaciones
◦ El grado de un tipo de relación es el número de tipos de entidad que participan en él.
◦ Binarias: Incluyen relaciones de dos entidades.
◦ Ternarias
◦ N-ternarias
Productos comprados Personas
Productos comprados Personas
Almacenes
Relaciones recursivas
◦ Cuando una entidad participa mas de una vez en una misma relación se le conoce como relación recursiva, en este caso es necesario
definir papeles dentro de la relación.
empleado
capacita
capacitor
Nuevos
empleado
trabaja sucursal
Restricciones sobre tipos de relación.
◦ Los tipos de relación suelen tener ciertas restricciones que limitan las posibles combinaciones de entidades que pueden participar en
los correspondientes tipos de relación. Estas restricciones se determinan a partir de la realidad, es decir del significado que tienen
los tipos de entidad y tipos de relación en el mundo real, y no depende de los conjuntos de entidades o conjuntos de relación que
en un momento dado se puedan estar considerando o almacenando en la base de datos.
◦ Hay diferentes tipos de restricción:
◦ Cardinalidad
◦ Participación
Restricción de cardinalidad
◦ La cardinalidad de un tipo de relación binaria especifica el número de instancias de relación en los que puede participar una entidad.
◦ La cardinalidad no depende del contenido de los conjuntos de entidades y relaciones en un momento dado, sino del significado en
el mundo real de los tipos de entidad y relación.
Restricción de participación.
◦ La restricción de participación especifica si la existencia de una entidad depende de que esté relacionada con otra entidad a través
del tipo de relación. Hay dos tipos de restricciones:
◦ Parcial
◦ Total
empleado atiende cliente
cliente genera ventas
cliente
Id_cliente Nombre Dirección telefono
1 Juan Conocida 123
2 Pedro Conocida2 234
3 Maria Conocid3 345
ventas
Id_venta Monto_total Numero_productos Id_cliente
001 1200 4 2
002 1300 6 1
Entidad débil
◦ Los tipos de entidad que no tienen atributos clave propios se denominan tipos de entidad débiles.
◦ Las entidades que pertenecen a un tipo de entidad débil se identifican por su relación con entidades específicas de otro tipo de
entidad, en combinación con algunos de los valores de sus atributos. Decimos que este otro tipo de entidad es el tipo de entidad
propietario o tipo de entidad padre, y llamamos al tipo de relación que las une, relación identificador del tipo de entidad débil.
◦ Un tipo de entidad débil siempre tiene una restricción de participación total (dependencia de existencia) con respecto a su relación
identificador, porque una entidad débil no se puede identificar sin una entidad propietaria.
◦ La entidad débil se especifica con un doble rectángulo.
◦ La relación que asocia las entidades débiles con las fuertes se especifica con un doble rombo.
◦ El atributo identificador de estas entidades siempre será una combinación de un atributo propio de la identidad débil
(discriminador) se identifica con una línea discontinua y el atributo único de la identidad propietaria.
Préstamo
Pago prestamo
Pagos
Id_prestamo
tipo cantidad
No_pago fecha
importe
factura
RFC empresa
fecha
telefono
dirección Id_factura
importe
Decripción factura
Tipo de
mueble
Cantidad_m
uebles
Precio_u
nitario
contien
e
Actividad 2.2
◦ Un centro de investigación requiere llevar un control de los proyectos que realizan cada empleado, tomando que en cuenta que un
empleado debe pertenecer a un departamento y solo puede trabajar como máximo en un proyecto.
◦ Del departamento se desea guardar el id_departamento, nombre del departamento, ubicación(pudiendo tener varias ubicaciones).
◦ Del empleado se desea guardar el numero de empleado, nombre del empleado, dirección(compuesta por calle, numero, colonia, C.P,
municipio), teléfono(pudiendo tener varios números), edad.
◦ Proyectos id_proyecto, nombre del proyecto, área de especialidad.
Actividad 2.3
◦ Una empresa de cosméticos quiere una base de datos para controlar sus pedidos. Un socio puede hacer uno o mas pedidos pero un
pedido solo puede hacerlo un socio, en cada pedido esta compuesto por uno o varios artículos, y un articulo puede estar en varios
pedidos. También se desea guardar información de las personas que ingresó de socio.
◦ Del socio se interesa guardar no_socio, nombre, dirección, teléfono, estado_civil.
◦ Del pedido se interesa guardar no_pedido, fecha, cantidad de artículos, importe.
◦ Del articulo se interesa guardar codigo_articulo, nombre, precio unitario, presentación.
◦ Del ingreso socio se desea guardar nombre, dirección.
Actividad 2.4
◦ Un taller desea llevar un control de clientes y los autos que arregla, tomando en cuenta que un cliente puede llevar mas de un auto,
y un auto puede ser reparado varias veces.
◦ Del cliente se desea guardar, numero de cliente, nombre, dirección, teléfono(pudiendo tener varios teléfonos).
◦ De los autos se desea guardar placa, modelo, numero de motor, color.
◦ Dela reparación se desea guardar numero de reparación, problema, observaciones y las refacciones.
Actividad 2.5
◦ Una fábrica de muebles, ha decidido utilizar un sistema de Base de Datos para representar la estructura de los muebles que
distribuye. Realizar el diagrama ER correspondiente teniendo en cuenta que:
◦ Los muebles están representados por un nombre único. También se quiere conocer su precio. Todo mueble está formado por una o más
piezas.
◦ Cada pieza tiene un identificador único y puede formar parte de varios muebles. Interesa apuntar cuántas unidades de cada pieza
componen el mueble.
◦ Todas las unidades de una pieza se encuentran en uno o más estantes del almacén. El estante viene determinado de forma única por dos
valores: pasillo y altura. Además de en qué estantes están las piezas, interesa conocer cuántas unidades de la pieza hay almacenadas en
cada estante.
Actividad 2.6
◦ Una empresa requiere una base de datos para 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
Actividad 2.6.1
◦ Una base de datos para una MercadoBest debe contener información acerca de clientes, artículos y pedidos. A la empresa le
interesa manejar los siguientes datos:
◦ Para cada cliente: Número de cliente (único), Direcciones de envío (varias por cliente), Saldo, Límite de crédito, Descuento.
◦ Para cada artículo: Número de artículo (único), Proveedores que lo distribuyen, Existencias de ese artículo en cada proveedor, Descripción del
artículo.
◦ 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.
◦ Para proveedores se necesita: Número de proveedor (único) y Teléfono de contacto. Y se desean ver cuántos artículos (en total) provee el
proveedor. También, se desea incluir información de proveedores alternativos que han surtido artículos para esta empresa.
◦ Nota: Una dirección se entenderá como Nº, Calle, ciudad y estado. Una fecha incluye día, mes, año.
Modelo Entidad-Relación extendido
Generalización
◦ Es una relación contenida que existe entre el conjunto de nivel más alto (superclase) y uno o más conjuntos de entidades de nivel
más bajo (subclase).
◦ La generalización permite que las entidades de nivel más bajo hereden los atributos de la entidad generalizadora de más alto nivel.
◦ La entidad general se llama superentidad y las otras subentidades. La superentidad normalmente tiene una clave principal distinta de
las subentidades.
◦ Para la representación de este tipo de interrelación, utilizamos un triángulo invertido, con la base paralela al rectángulo que
representa el supertipo (Generalización) y conectado a éste y a los subtipos (Especialización).
Especialización
◦ El proceso por el que se definen las diferentes subclases de una superclase se conoce como especialización. Ocurre cuando
partimos de una entidad que podemos dividir en subentidades para detallar atributos que varían en las mismas.
◦ Comparten clave con la superentidad y los atributos de la superclase se heredan en las subclases.
Ejemplo
◦ La entidad profesor tiene varios atributos como numero de empleado, nombre, teléfono, fecha de nacimiento, carrera, etc. Pero un
profesor tiene la característica de que puede ser contratado por asignatura o tiempo completo. Si es por asignatura, necesitaremos
conocer cuántas horas le asignaron en el mes y el precio por hora para calcular su salario mensual. En cambio tiempo completo, ya
tiene un salario mensual fijo y un tipo.
profesor
No_empl
nombre telefono Fecha_nac
carrera
asignatura
Hrs_asigan
adas
Precio_hor
a
salario
Tiempo_completo
salario
tipo
Ejemplo 2
◦ Se tiene las entidades Cta_Ahorro y Cta_Cheques, ambas tienen los atributos semejantes de No_Cta y Saldo, aunque además de
estos dos atributos, Cta_Ahorro tiene el atributo Tasa_Interes y Cta_Cheques el atributo Saldo_Deudor.
Cuenta
No_cuenta saldo
Cta_ahorro Cta_cheques
Tasa_interes Saldo_deudor
◦ Generalización
◦ Énfasis en las similitudes
◦ Cada instancia del supertipo es también una
instancia de alguno de los subtipos.
◦ Especialización
◦ Énfasis en las diferencias
◦ Alguna instancia del supertipo puede no ser
instancia de ningún subtipo.
Agregación
◦ Es un concepto de abstracción para construir objetos compuestos a partir de sus objetos componentes.
◦ Permite combinar entidades entre las que existe una interrelación y formar una entidad de más alto nivel. Es útil cuando la entidad
de más alto nivel se tiene que interrelacionar con otra entidad.
Hombre Mujer
casado
Agregación: Matrimonio
Acta_matrimonio
generan
Actividad 2.7
◦ Una empresa de comida rápida requiere una base de datos para almacenar información de pedidos por ventanilla y por entrega a
domicilio.
◦ Se quiere registrar la siguiente información:
◦ Los pedidos para consumir en el establecimiento se recogen en ventanilla y los de entrega a domicilio se recogen por teléfono
◦ Todos los pedidos van numerados correlativamente. Por cada uno de ellos se recoge la fecha y hora del pedido
◦ En los pedidos de ventanilla se registra el nº de ventanilla
◦ En los pedidos a domicilio se registra el teléfono, población y dirección
◦ Se cuenta con una serie de repartidores identificados por un número, con el nombre completo, una matrícula de moto y un turno (mañana, tarde,
noche)
◦ A cada pedido a domicilio se le asigna un repartidor
◦ El establecimiento ofrece una serie de productos (hamburguesa simple, doble, alemana, coca-cola pequeña mediana, grande, ensalada...)
identificados por un código y con un nombre y precio
◦ Se ofrecen también menús especiales compuestos por un conjunto de productos. Los menús están numerados, tienen un nombre de menú y un
precio
◦ Un pedido puede constar de varios menús en diferentes cantidades y/o varios productos en diferentes cantidades
Actividad 2.8
◦ Se desea realizar el diseño de la BD en el modelo E/R para una cadena de hoteles. Las especificaciones que marcarán el diseño son:
◦ La cadena hotelera se compone de varios hoteles repartidos por todo el mundo. De cada hotel se desea saber su identificativo, el nombre, la
categoría en estrellas, dirección, teléfono, nombre del director y ciudad en la que está ubicado.
◦ Las diferentes estancias de los hoteles se reparten por sus diferentes plantas (se trata de edificaciones que nunca superan las seis plantas). Las
estancias no sinteresa saber el no. De planta, dimensión, el identificativo de la estancia, capacidad máxima de personas, capacidad mínima de
personas, también estas se diferencian en salones y habitaciones. Se ofrecen tres tipos de habitaciones (individuales, dobles o de tipo suite). Cada
salón tiene sus propias características (aforo, equipamiento,...).
◦ De las habitaciones de tipo individual resulta interesante saber el tipo de decoración que presentan, las dimensiones de la cama y si disponen de
conexión a Internet. Respecto a las habitaciones dobles, el ancho de las camas y si disponen de baño o ducha. En cuanto a las suite, sus
dimensiones y su equipamiento especial (TV, Internet, minibar...).
◦ Las reservas las pueden hacer tanto personas particulares como empresas. Pueden reservar tanto habitaciones como salones, tanto para un día
como para un periodo más largo. Esa información deberá figurar en la BD.
◦ Al finalizar la estancia o el uso el cliente deberá abonar el importe correspondiente. En la factura se desglosará el importe por habitación/salón y
los gastos de teléfono.
◦ Al hacer la reserva de un salón el cliente deberá indicar el uso que se le vaya a dar (exposición, conferencia, congreso, cursillo...).
◦ El cliente, bien particular bien empresa, deberá aportar al menos su DNI o NIF, nombre y apellidos de la persona que hace la reserva, dirección y
teléfono.
◦ El Ministerio de Medio Ambiente y Bienestar de un país desea crear un Sistema de Información Geográfica (en siglas, S.I.G.) de
acceso público a través de Internet. El sistema ofrecerá información referente a ríos, afluentes, sistemas montañosos y montes, así
como delas provincias donde se localizan.
◦ De los ríos se almacenará un código de río, nombre, descripción y longitud total. Además, para cada río se almacenarán las provincias por las que
pasa y la longitud del tramo del río para cada provincia bañada.
◦ De las provincias se almacenará un código administrativo de provincia, el nombre y el número de habitantes, así como la capital de la provincia y la
Comunidad Autónoma la que pertenece
◦ Los ríos pueden ser afluentes de otros ríos. En este caso, para cada afluente se desea conocer de qué río lo es, en qué provincia se une a dicho río y
en qué punto kilométrico lo hace (medido desde el nacimiento del río del cual es afluente).
◦ En cuanto a los sistemas montañosos, se almacenará un código identificativo, el nombre, la orientación (norte, nordeste, etc.) y la longitud, así
como la altura máxima y las provincias que ocupa.
◦ Los sistemas están formados por montes de los que se almacena un código, un nombre, descripción y altura. Hay que tener en cuenta que un
monte sólo pertenecerá a un sistema. De los montes también se quiere almacenar la provincia o provincias en las que se encuentra (ya que hay
casos en los que un monte es compartido por varias provincias). Los montes además pueden tener un origen volcánico o de plegamiento. En el
caso de que su origen sea volcánico, se desea almacenar el tipo de volcán y si es de plegamiento, se almacenará el periodo geológico de dicho
plegamiento.
◦ Algunos ríos y montes son elementos geológicos monitorizados por satélite. De dichos elementos se desea almacenar la fecha en la que se
comienza su monitorización y el satélite que realiza el seguimiento. Un elemento monitorizado sólo puede serlo por un satélite y un satélite podrá
monitorizar varios elementos. De los satélites se desea almacenar su número identificativo, nombre y descripción.
Modelo Lógico.
Modelo relacional
◦ El modelo relacional es la representación lógica del esquema entidad-relación.
◦ Su idea fundamental se basa en el concepto de tablas, que a su vez se componen de registros (las filas de una tabla) y campos (las
columnas de una tabla).
◦ Una tabla es una estructura lógica que sirve para almacenar los datos de un mismo tipo.
◦ Cada entidad, tendrá una estructura (tabla) pensada y diseñada para ese tipo de entidad. Cada elemento almacenado dentro de la
tabla recibe el nombre de registro, tupla o fila.
◦ Una tabla se compone de campos o columnas, que son conjuntos de datos del mismo tipo.
Propiedades de la tabla
◦ Cada tabla debe tener un nombre distinto
◦ Cada atributo de la tabla toma un solo valor en cada fila
◦ Cada atributo tiene un nombre distinto en cada tabla (aunque puede coincidir en tablas distintas)
◦ Cada fila es única (no hay tuplas duplicadas)
◦ El orden de los atributos no importa
◦ El orden de las filas no importa
Valores nulos
◦ El modelo relacional usa un valor especial: Nulo (NULL)
◦ Indica que un atributo está vacío en una determinada fila
◦ No es igual a cero, ni es un texto sin valor. Es simplemente la ausencia de valor
◦ Su gestión es primordial en el modelo relacional.
Reducción a esquemas relacionales.
◦ Tanto el modelo E-R de bases de datos como el relacional son representaciones abstractas y lógicas de empresas del mundo real.
Como los dos modelos usan principios de diseño parecidos, los diseños E-R se pueden convertir en diseños relacionales.
◦ Entidades fuertes.
cliente
Id_cliente Nombre
Dirección
teléfono
Correo
Cliente(id_cliente, nombre, dirección, teléfono, correo)
Id_cliente Nombre Dirección Teléfono correo
233 Pedro Pérez Conocida 7711234567 hh@hh.com
234 Luis Gómez Conocida 2 7713456232 pp@hh.com
◦ Representación de entidades débiles
socio
Id_socio
Nombre
Dirección
teléfono
genera Pedido
Num_pedido
fecha
importe
Socio(id_socio, Nombre, Dirección, Teléfono) Pedido(num_pedido, id_socio, fecha,
importe)
Num_pedido, id_socio=clave primaria
Id_socio=restricción de clave externa(clave foranea)
◦ Representación de conjunto de relaciones.
◦ Para las relaciones binarias varios a varios la unión de los atributos de clave primaria de los
conjuntos de entidades participantes pasa a ser la clave primaria.
◦ Para los conjuntos de relaciones binarias uno a uno la clave primaria de cualquiera de los
conjuntos de entidades puede escogerse como clave primaria de la relación. La elección del
conjunto de entidades de entre los relacionados por el conjunto de relaciones puede realizarse
de manera arbitraria.
◦ Para los conjuntos de relaciones binarias varios a uno o uno a varios la clave primaria del
conjunto de entidades de la parte “varios” de la relación sirve de clave primaria.
◦ También se crean restricciones de clave externa para la relación R de la manera siguiente. Para
cada conjunto de entidades Ei relacionado con el conjunto de relaciones R se crea una
restricción de clave primaria de la relación R, con los atributos de R que eran atributos de clave
primaria de E que hacen referencia a la clave primaria de la relación que representa Ei.
◦ Relación n:m
Cliente genera préstamo
Id_cliente Nombre
Dirección
teléfono
Correo
Id_prestamo
monto
fecha
Cliente(id_cliente, Nombre, Dirección, Correo, Teléfono) préstamo(id_prestamo, monto, fecha)
Cliente_prestamo(id_cliente, id_préstamo)
id_cliente, id_préstamo=llave primaria
id_cliente=restricción de clave externa con cliente (llave
forenea)
Id_préstamo= restricción de clave externa con préstamo (llave
foranea)
tipo
◦ Relación 1:m o m:1
persona pertenecen mascotas
Id_cliente Nombre
Dirección
teléfono
Correo
Id_mas Nombre
tipo
Persona(id_cliente, Nombre, Dirección, Correo, teléfono) Mascotas(id_mascota, Nombre, tipo)
Persona_mascota(id_cliente, id_mas)
Id_mas= llave primaria
Id_cliente= restricción clave externa con Persona(llave foranea)
Id_mas= restricción clave externa con mascotas(llave foranea)
◦ Relación 1:1
persona
RFC Nombre
Dirección
teléfono
Correo
genera Declaración
Id_dec
descripción
tipo
fecha
Persona(RFC, Nombre, Dirección, Correo, teléfono) Declaración(id_dec, descripción, tipo)
Persona_declaración(RFC, id_dec, fecha)
RFC o id_dec podría ser llave primaria
RFC= restricción clave externa con persona
Id_dec= restricción clave externa con declaración
Combinación de esquemas
◦ Considérese un conjunto AB de relaciones varios a uno del conjunto de entidades A al conjunto de entidades B.
◦ Supóngase, además, que la participación de A en la relación es total; es decir todas las entidades a del conjunto de entidades A
deben participar en la relación AB. Entonces se pueden combinar los esquemas A y AB para formar un solo esquema consistente
en la unión de los atributos de los dos esquemas.
◦ Como es una relación de participación social, estamos seguros que en todas las entedidades boletas participa una entidad alumno,
entonces se puede combinar la relación
◦ La combinación de esquemas en relacione de 1:m, m:1, y de 1:1 se pueden hacer siempre y cuando la base de datos acepte valores
nulos.
alumno boletas
tiene
Id_alumno
nombre
dirección
Año_nac
edad
Id_boleta
promedio
fecha
Alumno: id_alumno, nombre, dirección, año_nac, edad boletas: id_boleta, promedio, fecha, id_alumno
Id_alumno= restricción de llave externa con la tabla alumno
bimestre
Atributos compuestos y multivaluados
◦ Compuesto
alumno
Id_alumno
nombre
dirección
Año_nac
edad
colonia
calle
Alumno(id_alumno, nombre, año_nac, edad, dirección_colonia, dirección calle)
◦ Multivaluados
persona
RFC Nombre
Dirección
teléfono
Correo
Persona(RFC, Nombre, Dirección, correo)
Telefono_persona(RFC, teléfono)
VIAJES
PAGA
Generalización
persona
es
empleado cliente
Persona(id_per, nombre, edad, dirección)
Empleado(id_per, sueldo, cargo)
Cliente(id_per, credito)
Id_per, funciona como llave primaria y foreana
Entidad recursiva
empleado
capacita
capacitor
Nuevos
empleado
Empleado(id_empleado, nombre, dirección, teléfono, correo).
Capacita(id_empleado_capacitador, id_empleado_nuevoempleado)
capacita
Id_empleado_capacitador
fk
Id_Empleado_nuevoemplea
do pk fk
Hrs_capacitacion
0001 0789 10hrs
0001 0897 8hrs
0001 1233 12hrs
empleado
Id_empleado nombre Dirección Teléfono correo
0001 Maria Aquí 7711234567 maría@gmail.co
m
0002 Alejandra Alla 7715678909 Alejandra@gamil.
com
0789 Pedro Mas allá 7719873456 pedro@gmail.co
m
0897 Norma Mas para allá 7712342123 norma@gmail.co
m
1233 Jose Aquí 2 7756789873 jose@gamil.com
Agregación
pisos Personal_lim
trabajan
Id_personal
Nombre
Dirección
teléfono
nombre
Cant_camas
realizan tareas
nombre
descripción
Hra_entrada
Hra_salida
Trabajan(nombre, id_personal, hra_salida, hra_entrada)
Tareas(nombre_tarea, descripción)
Realizan(nombre, id_personal, nombre_tarea)
Actividad 2.8
◦ Convertir a modelo relacional
Actividad 2.9
◦ Generar el modelo entidad-relación y e modelo relacional del siguiente problema:
◦ La empresa fabrica de geles “moco de gorila” solicitan nuestros servicios para resolver el almacenamiento de datos de un sistema
de gestión de la producción. La fábrica se compone de una serie de plantas, cada una identificada por un color. De las plantas
conocemos la superficie en metros cuadrados y la lista de procesos que se llevan a cabo dentro de ellas. Dentro de cada planta se
encuentran las máquinas. Cada máquina es de una marca y un modelo, y se identifica por un número; este número es único a lo
largo de todas las plantas. Cada máquina es operada por técnicos, debemos conocer en qué rango de fechas los técnicos estuvieron
asignados a esa máquina, y además en qué turno (mañana, tarde o noche). De los técnicos conocemos su DNI, nombre, apellido y
fecha de nacimiento, aparte de una serie de números telefónicos de contacto. Existen situaciones normales en las que una máquina
sale de servicio y debe ser reparada, lo único que nos interesa conocer aquí es cuál otra máquina está asignada para tomar el trabajo
que ella no puede realizar
Actividad 2.10
◦ Se quiere diseñar una BD que permita registrar las ventas de una empresa. Específicamente, esta empresa necesita llevar un control
de proveedores, clientes, productos y ventas. Un proveedor se modela con clave_prov, nombre, dirección, teléfono y página web.
Un cliente también se modela con clave_cliente, nombre y dirección, pero puede tener varios teléfonos de contacto. De cada
dirección, nos interesa su calle, número, comuna y ciudad. De los productos, sabemos que tienen un identificador único, nombre,
precio actual, stock y nombre del proveedor que los comercializa. Además se organizan en categorías, y cada producto se clasifica
solamente en una de ellas, pero sin embargo una categoría clasifica varios productos. De ellas nos interesa saber su id, nombre y
descripción. Sabemos que un producto es comercializado por varios proveedores, pero que un proveedor provee un solo producto.
Por razones de contabilidad, se debe registrar la información de cada venta , las cuales tienen un número de factura (que es único),
fecha, cliente, descuento y monto final. A su vez, sabemos que una venta se compone de varios productos, y por eso nos interesa el
precio al momento de la venta del producto, la cantidad vendida y el monto total por él. Tenga en cuenta que un producto puede
estar en varias ventas, pero que podemos tener un producto que no haya sido vendido. Adicionalmente, sabemos que cada cliente
puede genrar varias ventas, y en una venta solamente participa un cliente.
Presentación en tablas.
Persona(RFC, Nombre, Dirección, correo)
Telefono_persona(RFC, teléfono)
Actividad 2.11
◦ Generar el modelo entidad-relacional, el modelo relacional en tablas.
◦ Debemos diseñar un sistema para registrar las farmacias en diferentes ciudades de nuestro país. Sabemos que cada farmacia tiene
un nombre (único en todo el sistema) y un domicilio. Cada farmacia se ubica en una sola ciudad, pero en una ciudad hay varias
farmacias. De cada ciudad, sabemos el nombre, la provincia en la que se encuentra, la cantidad de habitantes y la superficie. Cada
ciudad se identifica con el nombre y la provincia.
◦ Conocemos también que cada farmacia puede tener un propietario, y que cada propietario tiene solamente una farmacia. Tenga en
cuenta que puede haber farmacias sin propietario. De los propietarios, conocemos el DNI (único), su nombre y su domicilio,
compuesto por calle, número, código postal y ciudad. Cada farmacia, a su vez, vende varios medicamentos y un medicamento se
vende en varias farmacias. De cada medicamento conocemos su id único, su nombre comercial y las drogas de las cuales se
compone. Cada farmacia vende un medicamento a un precio determinado, que no necesariamente es el mismo en diferentes
farmacias. Como último requerimiento, un medicamento puede complementar a otros medicamentos, pero sabemos que cada
medicamento puede ser complementado por un solo medicamento.
Diccionario de datos
◦ Herramienta fundamental para el buen diseño de la base de datos.
◦ Es un repositorio, manual o automatizado, que brinda información sobre los datos(metadatos) que se encuentran almacenados en
la base de datos.
Objetivos
◦ Permitir la administración de la documentación de los datos, y a los usuarios entender lo que son los datos y qué significan las
definiciones y descripciones.
◦ Ayudar a controlar los recursos de datos, ya que con un diccionario de datos la información sobre ellos permanece en un solo lugar.
◦ Dar precisión sobre los datos que se manejan en un sistema, evitando así malas interpretaciones o ambigüedades.
Construcción del diccionario de datos
1. Hay que definir los datos. Es decir su estructura y composición
Notación del diccionario de datos
◦ Para iniciar una definición de dato se introduce el símbolo “=”; este se lee como “está definido por”, o “está compuesto de”.
◦ Para definir un dato completamente, la definición debe incluir:
◦ El significado del dato en el contexto de la aplicación. Esto se documenta en forma de comentario.
◦ La composición del dato, si es que está compuesto de otros elementos.
◦ Los valores que el dato puede tomar, hasta llegar a un dato elemental que ya no puede ser descompuesto.
◦ Nombre del dato: Para distinguir un dato de otro, los analista les asigna nombre significativos que se utilizan para
tener una referencia de cada elemento.
◦ Composición el dato: especifica como se estructura un dato.
◦ Sinónimo o alias: Con frecuencia el mismo dato puede conocerse con diferentes nombres, dependiendo de quien lo
utilice. El uso de los alias deben evitar confusión. Un diccionario de dato significativo incluirá todos los alias
posibles para un dato.
◦ Iteración Se usa para indicar ocurrencias repetidas de un componente en un elemento compuesto. En muchas
situaciones reales es preferible especificar límites inferior y superior de iteración para evitar problemas.
◦ Datos opcionales Un dato opcional es aquel que puede o no estar presente como componente de un dato
compuesto.
◦ Selección: Indica que un elemento consiste de exactamente una opción de un conjunto de alternativas.
◦ Nombre= 1{carácter legal}50 iteración con limites, solo se permitirá de 1 a 50 carácter legal para nombre.
2. Descripción de la entidad. En la descripción de la entidad consiste en un conjunto de detalles que describen:
◦ Nombre de la entidad y una descripción breve de ella.
◦ Detalles importantes de los atributos que la componen, como:
◦ Nombre del atributo.
◦ Descripción.
◦ Tipo de dato.
◦ Longitud.
◦ Soporte de nulos.
◦ Clave primaria de la entidad.
◦ Claves externas y con que otras entidades hace relación.
Nombre de Archivo: Clientes
Descripción: archivo principal, que contiene información de los clientes
Campo Tipo Tamaño Descripción Nulo
Id_cliente Numérico 4 Clave del cliente no
cNombre Carácter 50 Nombre del clientes no
Cvcuenta Numerico 4 Clave de la cuenta No
Dirección Carácter 100 Dirección del cliente si
Relaciones Campos clave
Cvcuenta con cuenta Id_cliente
Ejercicio final 2.12
◦ Diseñar un modelo E/R, relacional y diccionario de datos, con las siguientes características:
◦ En la biblioteca saber se manejan fichas de autores y libros. En la ficha de cada autor se tiene el código de autor y el nombre. De cada libro se guarda el código, título, ISBN,
editorial y número de página. Un autor puede escribir varios libros, y un libro puede ser escrito por varios autores. Un libro está formado por ejemplares. Cada ejemplar tiene
un código y una localización. Un libro tiene muchos ejemplares y un ejemplar debe pertenecer sólo a un libro.
◦ Los usuarios de la biblioteca tienen una credencial de socio. De cada usuario se guarda el código, nombre, dirección y teléfono.
◦ Los libros son prestados a los usuarios. Un usuario puede tomar prestados varios ejemplares, y un ejemplar puede ser prestado a varios usuarios. De cada préstamos interesa
guardar la fecha de préstamo y la fecha de devolución”.
.
NNKJNJKNJKNKNKJKJN
KJNIJOILKLOIJOIJLK
autor
Cod_autor
nombre
libro
Cod_libro
TITULO
ISBN
EDITORI
AL
NUM_PAGI
NAS
ESCRIBI
R
Sistema gestor de base de
datos (SGBD)
◦ Definimos un Sistema Gestor de Bases de Datos o SGBD, también llamado DBMS (Data Base Management System) como una
colección de datos relacionados entre sí, estructurados y organizados, y un conjunto de programas que acceden y gestionan esos
datos.
◦ El objetivo primordial de un gestor es proporcionar eficiencia y seguridad a la hora de extraer o almacenar información en las BD.
Los sistemas gestores de BBDD están diseñados para gestionar grandes bloques de información, que implica tanto la definición de
estructuras para el almacenamiento como de mecanismos para la gestión de la información.
◦ El SGBD es una aplicación que permite a los usuarios definir, crear y mantener la BD y proporciona un acceso controlado a la
misma. Debe prestar los siguientes servicios:
◦ Creación y definición de la BD: especificación de la estructura, el tipo de los datos, las restricciones y relaciones entre ellos mediante lenguajes de
definición de datos. Toda esta información se almacena en el diccionario de datos, el SGBD proporcionará mecanismos para la gestión del
diccionario de datos.
◦ Manipulación de los datos: realizando consultas, inserciones y actualizaciones de los mismos utilizando lenguajes de manipulación de datos.
◦ Acceso controlado a los datos de la BD: mediante mecanismos de seguridad de acceso a los usuarios.
◦ Mantener la integridad y consistencia de los datos: utilizando mecanismos para evitar que los datos sean perjudicados por cambios no
autorizados.
◦ Acceso compartido a la BD: controlando la interacción entre usuarios concurrentes.
◦ Mecanismos de respaldo y recuperación: para restablecer la información en caso de fallos en el sistema.
Arquitectura del SGBD
◦ La arquitectura del SGBD es de tres niveles para los SGBD cuyo objetivo principal era el de separar los programas de aplicación de
la BD física. En esta arquitectura el esquema de una BD se define en tres niveles de abstracción distintos:
◦ Nivel interno o físico: el más cercano al almacenamiento físico, es decir, tal y como están almacenados en el ordenador. Describe la estructura física
de la BD mediante un esquema interno. Este esquema se especifica con un modelo físico y describe los detalles de cómo se almacenan físicamente
los datos: los archivos que contienen la información, su organización, los métodos de acceso a los registros, los tipos de registros, la longitud, los
campos que los componen, etcétera.
◦ Nivel externo o de visión: es el más cercano a los usuarios, es decir, es donde se describen varios esquemas externos o vistas de usuarios. Cada
esquema describe la parte de la BD que interesa a un grupo de usuarios en este nivel se representa la visión individual de un usuario o de un grupo
de usuarios.
◦ Nivel conceptual: describe la estructura de toda la BD para un grupo de usuarios mediante un esquema conceptual. Este esquema describe las
entidades, atributos, relaciones, operaciones de los usuarios y restricciones, ocultando los detalles de las estructuras físicas de almacenamiento.
Representa la información contenida en la BD.
◦ Esta arquitectura describe los datos a tres niveles de abstracción. En realidad los únicos datos que existen están a nivel
físico almacenados en discos u otros dispositivos. Los SGBD basados en esta arquitectura permiten que cada grupo de
usuarios haga referencia a su propio esquema externo.
◦ El SGBD debe de transformar cualquier petición de usuario (esquema externo) a una petición expresada en términos de
esquema conceptual, para finalmente ser una petición expresada en el esquema interno que se procesará sobre la BD
almacenada. El proceso de transformar peticiones y resultados de un nivel a otro se denomina correspondencia o
transformación, el SGBD es capaz de interpretar una solicitud de datos y realiza los siguientes pasos:
◦ El usuario solicita unos datos y crea una consulta.
◦ El SGBD verifica y acepta el esquema externo para ese usuario.
◦ Transforma la solicitud al esquema conceptual.
◦ Verifica y acepta el esquema conceptual.
◦ Transforma la solicitud al esquema físico o interno.
◦ Selecciona la o las tablas implicadas en la consulta y ejecuta la consulta.
◦ Transforma del esquema interno al conceptual, y del conceptual al externo.
◦ Finalmente, el usuario ve los datos solicitados.
◦ Para una BD específica sólo hay un esquema interno y uno conceptual, pero puede haber varios esquemas externos
definidos para uno o para varios usuarios.
◦ Con el uso de la arquitectura a 3 niveles, surgen dos tipo de independencia de datos:
◦ Independencia lógica: la capacidad de modificar el esquema conceptual sin tener que alterar los esquemas
externos ni los programas de aplicación. Se podrá modificar el esquema conceptual para ampliar la BD o
para reducirla, por ejemplo, si se elimina una entidad, los esquemas externos que no se refieran a ella no se
verán afectados.
◦ Independencia física: la capacidad de modificar el esquema interno sin tener que alterar ni el esquema
conceptual, ni los externos. Por ejemplo, se pueden reorganizar los archivos físicos con el fin de mejorar el
rendimiento de las operaciones de consulta o de actualización, o se pueden añadir nuevos archivos de
datos porque los que había se han llenado.
◦ La independencia de los datos se consigue porque al modificarse el esquema en algún nivel, el
esquema del nivel inmediato superior permanece sin cambios.
Componentes de los
SGBD
Lenguajes de los SGBD
◦ Todos los SGBD ofrecen lenguajes e interfaces apropiadas para cada tipo de usuario: administradores, diseñadores, programadores
de aplicaciones y usuarios finales.
◦ Los lenguajes van a permitir al administrador de la BD especificar los datos que componen la BD, su estructura, las relaciones que
existen entre ellos, las reglas de integridad, los controles de acceso, las características de tipo físico y las vistas externas de los
usuarios.
◦ Los lenguajes se clasifican en:
◦ Lenguaje de definición de datos (LDD o DDL): se utiliza para especificar el esquema de la BD, las vistas de los usuarios y las estructuras de
almacenamiento. Es el que define el esquema conceptual y el esquema interno. Lo utilizan los diseñadores y los administradores de la BD.
◦ Lenguaje de manipulación de datos (LMD o DML): se utilizan para leer y actualizar los datos de la BD. Es el utilizado por los usuarios para realizar
consultas, inserciones, eliminaciones y modificaciones. Los hay procedurales, en los que el usuario será normalmente un programador y especifica
las operaciones de acceso a los datos llamando a los procedimientos necesarios. Estos lenguajes acceden a un registro y lo procesan.
Diccionarios de datos
◦ El diccionario de datos es el lugar donde se deposita información acerca de todos los datos que forman la BD. Es una guía en la
que se describe la BD y los objetos que la forman.
◦ El diccionario contiene las características lógicas de los sitios donde se almacenan los datos del sistema, identifica los procesos
donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información.
◦ En una BD relacional, el diccionario de datos proporciona información acerca de:
◦ La estructura lógica y física de la BD.
◦ Las definiciones de todos los objetos de la BD: tablas, vistas, índices, disparadores, procedimientos, funciones, etcétera. • El espacio asignado y
utilizado por los objetos.
◦ Los valores por defecto de las columnas de las tablas.
◦ Información acerca de las restricciones de integridad.
◦ Los privilegios y roles otorgados a los usuarios.
◦ Auditoría de información, como los accesos a los objetos.
◦ Un diccionario de datos debe cumplir las siguientes características:
◦ Debe soportar las descripciones de los modelos conceptual, lógico, interno y externo de la BD.
◦ Debe estar integrado dentro del SGBD.
◦ Debe apoyar la transferencia eficiente de información al SGDB. La conexión entre los modelos interno y externo debe ser realizada en tiempo de
ejecución.
◦ Debe comenzar con la reorganización de versiones de producción de la BD. Además debe reflejar los cambios en la descripción de la BD.
Cualquier cambio a la descripción de programas ha de ser reflejado automáticamente en la librería de descripción de programas con la ayuda del
diccionario de datos.
◦ Debe estar almacenado en un medio de almacenamiento con acceso directo para la fácil recuperación de información.
Seguridad e integridad de datos
◦ Un SGBD proporciona los siguientes mecanismos para garantizar la seguridad e integridad de los datos:
◦ Debe garantizar la protección de los datos contra accesos no autorizados, tanto intencionados como accidentales. Debe controlar que sólo los
usuarios autorizados accedan a la BD.
◦ Los SGBD ofrecen mecanismos para implantar restricciones de integridad en la BD. Estas restricciones van a proteger la BD contra daños
accidentales. Los valores de los datos que se almacenan deben satisfacer ciertos tipos de restricciones de consistencia y reglas de integridad, que
especificará el administrador de la BD. El SGBD puede determinar si se produce una violación de la restricción. •
◦ Proporciona herramientas y mecanismos para la planificación y realización de copias de seguridad y restauración.
◦ Debe ser capaz de recuperar la BD llevándola a un estado consistente en caso de ocurrir algún suceso que la dañe.
◦ Debe asegurar el acceso concurrente y ofrecer mecanismos para conservar la consistencia de los datos en el caso de que varios usuarios actualicen
la BD de forma concurrente.
Administrador de SGBD
◦ En los sistemas de gestión de BBDD actuales existen diferentes categorías de usuarios. Estas categorías se caracterizan porque cada
una de ellas tiene una serie de privilegios o permisos sobre los objetos que forman la BD.
◦ Los usuarios de la categoría DBA (Database Administrator), cuya función es precisamente administrar la base y que tienen, el nivel más alto de
privilegios.
◦ Los usuarios de la categoría RESOURCE, que pueden crear sus propios objetos y tienen acceso a los objetos para los que se les ha concedido
permiso.
◦ Los usuarios del tipo CONNECT, que solamente pueden utilizar aquellos objetos para los que se les ha concedido permiso de acceso.
◦ El DBA tiene una gran responsabilidad ya que posee el máximo nivel de privilegios. Será el encargado de crear los usuarios que se
conectarán a la BD. En la administración de una BD siempre hay que procurar que haya el menor número de administradores, a ser
posible una sola persona.
◦ El objetivo principal de un DBA es garantizar que la BD cumple los fines previstos por la organización, lo que incluye una serie de tareas
como:
◦ Instalar SGBD en el sistema informático.
◦ Crear las BBDD que se vayan a gestionar.
◦ Crear y mantener el esquema de la BD.
◦ Crear y mantener las cuentas de usuario de la BD.
◦ Arrancar y parar SGBD, y cargar las BBDD con las que se ha de trabajar.
◦ Colaborar con el administrador del S.O. en las tareas de ubicación, dimensionado y control de los archivos y espacios de disco ocupados por el SGBD.
◦ Colaborar en las tareas de formación de usuarios.
◦ Establecer estándares de uso, políticas de acceso y protocolos de trabajo diario para los usuarios de la BD.
◦ Suministrar la información necesaria sobre la BD a los equipos de análisis y programación de aplicaciones.
◦ Efectuar tareas de explotación como:
◦ Vigilar el trabajo diario colaborando en la información y resolución de las dudas de los usuarios de la BD.
◦ Controlar en tiempo real los accesos, tasas de uso, cargas en los servidores, anomalías, etcétera.
◦ Llegado el caso, reorganizar la BD.
◦ Efectuar las copias de seguridad periódicas de la BD.
◦ Restaurar la BD después de un incidente material a partir de las copias de seguridad.
◦ Estudiar las auditorías del sistema para detectar anomalías, intentos de violación de la seguridad, etcétera.
◦ Ajustar y optimizar la BD mediante el ajuste de sus parámetros, y con ayuda de las herramientas de monitorización y de las estadísticas del sistema. En su gestión diaria,
el DBA suele utilizar una serie de herramientas de administración de la BD. Con el paso del tiempo, estas herramientas han adquirido sofisticadas prestaciones y facilitan
en gran medida la realización de trabajos que, hasta no hace demasiado, requerían de arduos esfuerzos por parte de los administradores.
Tipos de datos de un
SGBD
Datos tipo texto
Datos tipo numerico
Tipo de dato fecha
Sistemas gestores de base de
datos relacionales mas
populares
MySql
◦ Es el sistema gestor de bases de datos relacional por excelencia.
◦ Es un SGBD multihilo y multiusuario utilizado en la gran parte de las páginas web actuales. Además es el más usado en
aplicaciones creadas como software libre.
◦ Se ofrece bajo la GNU GPL aunque también es posible adquirir una licencia para empresas que quieran incorporarlo en productos
privativos (Desde la compra por parte de Oracle se está orientando a este ámbito empresarial).
◦ Las principales ventajas de este Sistema Gestor de Bases de datos son:
◦ Facilidad de uso y gran rendimiento
◦ Facilidad para instalar y configurar
◦ Soporte multiplataforma
◦ Soporte SSL
◦ La principal desventaja es la escalabilidad, es decir, no trabaja de manera eficiente con bases de datos muy grandes que superan un
determinado tamaño.
MariaDB
◦ Este SGBD es una derivación de MySQL que cuenta con la mayoría de características de este e incluye varias extensiones.
◦ Nace a partir de la adquisición de MySQL por parte de Oracle para seguir la filosofía Open Source y tiene la ventaja de que es
totalmente compatible con MySQL.
◦ Entre las principales características se encuentran:
◦ Aumento de motores de almacenamiento
◦ Gran escalabilidad
◦ Seguridad y rapidez en transacciones
◦ Extensiones y nuevas características relacionadas con su aplicación para Bases de datos NoSQL.
◦ No tiene desventajas muy aparentes salvo algunas pequeñas incompatibilidades en la migración de MariaDB y MySQL o pequeños
atrasos en la liberación de versiones estables.
SQLite
◦ Más que un Sistema Gestor de bases de datos como tal, SQLite es una biblioteca escrita en C que implementa un SGBD y que
permite transacciones sin necesidad de un servidor ni configuraciones.
◦ Es una biblioteca utilizada en multitud de aplicaciones actuales ya que es open source y las consultas son muy eficientes.
◦ Las principales características de SQLite son:
◦ El tamaño, al tratarse de una biblioteca, es mucho menor que cualquier SGBD
◦ Reúne los cuatro criterios ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad) logrando gran estabilidad
◦ Gran portabilidad y rendimiento
◦ La gran desventaja de SQLite es la escalabilidad ya que no soporta bases de datos que sean muy grandes.
PostgreSQL
◦ Este sistema gestor de base de datos relacional está orientado a objetos y es libre, publicado bajo la licencia BSD.
◦ Sus principales características son:
◦ Control de Concurrencias multiversión (MVCC)
◦ Flexibilidad en cuanto a lenguajes de programación
◦ Multiplataforma
◦ Dispone de una herramienta muy fácil e intuitiva para la administración de las bases de datos.
◦ Robustez, Eficiencia y Estabilidad.
◦ La principal desventaja es la lentitud para la administración de bases de datos pequeñas ya que está optimizado para gestionar
grandes volúmenes de datos.
Microsoft SQL Server
◦ Es un sistema gestor de bases de datos relacionales basado en el lenguaje Transact-SQL, capaz de poner a disposición de muchos
usuarios grandes cantidades de datos de manera simultánea.
◦ Es un sistema propietario de Microsoft. Sus principales características son:
◦ Soporte exclusivo por parte de Microsoft.
◦ Escalabilidad, estabilidad y seguridad.
◦ Posibilidad de cancelar consultas.
◦ Potente entorno gráfico de administración que permite utilizar comandos DDL y DML.
◦ Aunque es nativo para Windows puede utilizarse desde hace ya un tiempo en otras plataformas como Linux o Docker.
◦ Su principal desventaja es el precio. Cuenta con un plan gratuito (Express) pero lo normal es la elección de alguno de los planes de
pago disponibles (Standard, Developer, Enterprise o SQL Azure, la versión de SQL Server en la nube).
Oracle
◦ Tradicionamente, Oracle ha sido el SGBD por excelencia para el mundo empresarial, considerado siempre como el más completo y
robusto, destacando por:
◦ Soporte de transacciones.
◦ Estabilidad.
◦ Escalabilidad.
◦ Multiplataforma.
◦ La principal desventaja, al igual que SQL Server, es el coste del software ya que, aunque cuenta con una versión gratuita (Express
Edition o XE), sus principales opciones son de pago.
Actividad 3.1
◦ Hacer una tabla comparativa de los diferentes SGBD descritos anteriormente, tomando en cuenta características, ventajas,
desventajas, publico al que esta orientado, si es software libre o bajo licencia, versiones.
Características para elegir el SGBD
◦ Sistema operativo de apoyo : se refiere a los sistemas operativos soportados.
◦ Tipo de organización: se debe tener en cuenta la filosofía de la empresa ya que muchas son conservadoras y optan por entornos
mainframe tradicionales.
◦ Los puntos de referencia: se refiere al rendimiento estando ya en producción del entorno.
◦ Disponibilidad de herramientas de apoyo de software: herramientas de apoyo que necesita el DBMS.
◦ Técnicos: si existe el suficiente soporte para el DBMS.
◦ Costo de Propiedad: si los costos son accesibles para la empresa.
◦ Fecha de lanzamiento: frecuencia con la que el proveedor lanza las nuevas versiones.
◦ Clientes de referencia: se recomienda tener referencias imparciales, ósea independientes del proveedor.
Actividad 3.2
◦ Investigar exponer cuales son los criterios a tomar en cuenta en la elección de un sistema gestor de base de datos, de acuerdo a las
determinaciones de la organización.
Normalización de base de
datos
◦ La normalización de bases de datos es un proceso que consiste en designar y aplicar una serie de reglas a las relaciones obtenidas
tras el paso del modelo entidad-relación al modelo relacional. Con objeto de minimizar la redundancia de datos, facilitando su
gestión posterior.
◦ A esas reglas se les llama formas normales.
Objetivo
◦ Las bases de datos relacionales se normalizan para:
◦ Minimizar la redundancia de los datos.
◦ Disminuir problemas de actualización de los datos en las tablas.
◦ Proteger la integridad de datos.
Dependencias
◦ Sean X e Y subconjuntos de atributos de una relación. Diremos que Y tiene una dependencia funcional de X, o que X determina a
Y, si cada valor de X tiene asociado siempre un único valor de Y.
◦ El hecho de que X determine a Y no quiere decir que conociendo X se pueda conocer Y, sino que en la relación indicada, cada vez
que el atributo X tome un determinado valor, el atributo Y en la misma tupla siempre tendrá el mismo valor.
◦ Ejemplo: el número de cliente y su nombre, podemos afirmar que el nombre tiene una dependencia funcional del número de
cliente. Es decir, cada vez que en una tupla aparezca determinado valor de número de cliente, es seguro que el nombre de cliente
será siempre el mismo.
La dependencia funcional se representa como X -> Y.
◦ El proceso de normalización se basa en las dependencias que hay entre atributos que forman las relaciones. Hay diferentes tipos de
dependencias:
◦ Dependencia funcional completa: En una dependencia funcional X -> Y, cuando X es un conjunto de atributos, decimos que la
dependencia funcional es completa , si sólo depende de X, y no de ningún subconjunto de X.
Ejemplo DNI, nombre-> apellidos_cliente
ejemplo DNI => apellidos_cliente
◦ Dependecnia funcional transitiva: Se produce cuando tenemos tres conjuntos de atributos X, Y y Z. Y depende funcionalmente de X (X->Y), Z
depende funcionalmente de Y (Y->Z). Además X no depende funcionalmente de Y. Entonces ocurre que X produce una dependencia funcional
transitiva sobre Z. Esto se denota como: (X-->Z)
Por ejemplo si X es el atributo Número de Clase de un instituto, e Y es el atributo Código Tutor . Entonces X->Y (el tutor depende funcionalmente
del número de clase). Si Z representa el Código del departamento , entonces Y->Z (el código del departamento depende funcionalmente del código
tutor, cada tutor sólo puede estar en un departamento). Como no ocurre que Y->X (el código de la clase no depende funcionalmente del código tutor,
un código tutor se puede corresponder con varios códigos de clase). Entonces X-->Z (el código del departamento depende transitivamente del
código de la clase).
Formas Normales
◦ Conjunto de restricciones sobre tablas que evitan problemas de redundancia y anomalías de modificación, inserción y borrado de
datos.
Primera forma normal (1FN)
◦ Una relación se encuentra en primera forma normal (1FN), si y solo si cada uno de sus atributos tienen un único valor para un
registro determinado (Atributos atómicos) y no se repite ningún grupo de registros.
No cumple
Segunda forma normal (2FN)
◦ La relación se encuentra en segunda forma normal (2FN) si y solo si cumple con la 1FN y todos sus atributos no clave dependen
en forma completa de la clave.
Clave primaria: Codigo_Empleado y
Codigo_Dpto.
Si cumple con la primera forma normal
Tercera forma normal
◦ Una relación se encuentra en tercera forma normal(3FN), si y solo si cumple con la 2FN y los campos no clave no dependan de
otro que no sea la clave (dependencia transitiva).
Legajo -> Apellido_Nombre
Legajo -> Curso
Legajo -> Aula
Curso ->Aula
Num_proyecto =>Gerente_Proy
Gerente_proyecto=>teléfono
Proyectos
Num_Proyecto Titulo_Poyecto
Gerente
Gerente_proyec
to
télefono
Proyectos_gerente
Num_Proyecto Gerente_proyecto
Actividad 3.3
◦ Normalizar el siguiente ejercicio
pedido
Id_pedido Fecha Id_cliente Nombre_cliente Estado Codigo_art Nombre_Art cantidad descripción
1005 24/05/2
020
288 Juan Hidalgo 2345 Crema 2 En tubo
1005 01/05/2
020
288 Juan Hidalgo 7654 Loción 3 En frasco
1005 22/05/2
020
288 Juan Hidalgo 6543 jabon 34 En barra
1006 14/09/1
9
677 Maria CDMX 9876 Labial 7 En barra
1007 12/03/2
0
566 Pedro Saltillo 2345 Crema 5 En tubo
1007 12/03/2
0
566 Pedro Saltillo 9876 Labial 3 En barra
Actividad 3.4
◦ Generar un modelo relacional normalizado a partir de los siguientes datos
◦ 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
◦ 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 flet
Lenguaje MySQL
◦ La forma en que se crea y se manipula la información es por medio del lenguaje SQL (Structured Query Lenguage) (lenguaje
estructurado de preguntas) diseñado por IBM
◦ Es uno de los sistemas de gestión de bases de datos más populares, lanzado originalmente en 1995.
◦ MySQL es un sistema gestor de bases de datos que se puede encuadrar dentro de la categoría de los programas open-source, esto
significa que su código esta disponible para el usuario, fueran gratuitos o no.
◦ MySQL está mantenido por una empresa, MySQL AB, con sede en Suecia.
◦ Fue desarrollada inicialmente por MySQL AB, luego adquirida por Sun Microsystems y luego posteriormente por Oracle
Coporation en 2010.
◦ MySQL es un sistema de base de datos disponible gratuitamente. Sin embargo, hay varias ediciones de pago también disponibles
con las que puede utilizar la funcionalidad avanzada.
◦ MySQL puede ejecutarse en múltiples plataformas como Linux, Windows, Unix y un esquema de información para definir y
administrar sus metadatos. Puede instalarlo en su sistema local o incluso en el servidor.
Características de MySQL
◦ Facilidad de gestión: Es bastante fácil de descargar y utilizar el software.
◦ Alto rendimiento: Le proporciona utilidades de carga rápida con diferente caché de memoria.
◦ Escalable: Con MySQL, puede escalar en cualquier momento. Es realmente fácil crear almacenes de datos que incluyen una enorme
cantidad de datos.
◦ Compatibilidad: MySQL es compatible con todas las plataformas modernas como Windows, Linux, Unix.
◦ Rendimiento: MySQL le ofrece resultados de alto rendimiento sin perder la funcionalidad esencial.
◦ Seguridad completa de los datos: Sólo los usuarios autorizados pueden acceder a la base de datos. Completa seguridad de los datos.
◦ Bajo Costo: Es gratis de usar en algunas versiones.
MySQL Workbech
Versión gratuita
Seleccionar SO
Click aquí¡¡
Instalación c/internet
Instalación s/internet
Acceso a mysql desde cmd
Iniciando consultas
◦ Versión de mysql:
◦ SELECT VERSION();
◦ Fecha:
◦ SELECT CURRENT_DATE;
◦ A la hora de ejecutar la consulta no hace diferencia entre mayúsculas, minúsculas o combinación de estas.
◦ Se pueden realizar consultas directamente de operaciones.
◦ Select NOW()
◦ Todas las consultas terminan con un ; (punto y coma)
Creación de base de datos
◦ Mostrar base de datos: la palabra reservada SHOW muestra las base de datos creadas dentro de mysql.
◦ Para elegir una base de datos se utiliza la palabra reservada USE:
◦ Crear base de datos: una base de datos se crea utilizando la palabra reservada CREATE
◦ Nota: para poder utilizar una base de datos tenemos que utilizar USE nombrebasededatos, si no, no estamos utilizando esa base de
datos creada
◦ Character set y collate sirve para configurar el tipo de texto que aceptara la base de datos, utf8 acepta acentos y ñ y utf8_general_ci
acepta sinónimos entre palabras con y sin acentos.
◦ Eliminar una base de datos: para eliminar una base de datos se utiliza la palabra reservada Drop database nombredelabasededatos.
◦ Mostrar tablas dentro de una base de datos: para mostrar las tablas dentro de una base de datos se utiliza la palabra reservada
SHOW tables;
◦ Crear tablas: para crear tablas se utiliza se utiliza la siguiente sintaxis
CREATE TABLE nombretabla( nombrecolumna1 tipodato(extensión), nombrecolumna2 tipodato(extensión), nombrecolumna3 tipodato())
◦ Describir una table: al crear una tabla siempre es necesario verificar, recordar o concer como se compone eso se hace a través de la
palabra reservada DESCRIBE nombretabla;
◦ Ejemplo
AUTO_INCREMENT: Comando para asiganar un
numero autoincrementable cada que se ingrese un
registro a esa tabla.
PRIMARY KEY: comando establecido para especificar
que columna o columnas son llave primaria de esa
tabla.
NOT NULL: Define que columnas no pueden
contener valores nulos.
◦ Para eliminar tablas se utiliza la palabra reservada Drop, DROP TABLE nombre de la tabla;
Insertar datos en una tabla
◦ Para insertar datos en una tabla se utiliza la siguiente instrucción:
◦ INSERT INTO nombretabla (columnas) VALUES (valores);
Error
◦ Seleccionar los datos contenidos en la tabla: para mostrar los datos de una tabla se utiliza la siguiente sentencia:
◦ Select * from nombre_de_la_tabla;
◦ Otra forma de insertar datos es por medio de un archivo de texto, que contenga las instrucciones SQL, este archivo de texto no
puede traer instrucciones de formato como Word o adobe, podría ser un archivo de Notepad o bloc de notas.
Archivo guardado en la carpeta bin como
Documentos.sql
◦ Otra forma de insertar datos es insertando varios a la vez a través de la misma sentencia.
◦ INSERT INTO pedido values (0, 123, 124), (0, 134, 135), (0, 145, 146);
CONSTRAINTS
◦ El constraint se entiende por restricción y sirve para limitar el tipo de dato que puede ingresarse en una tabla. Dichas restricciones
pueden especificarse cuando la tabla se crea por primera vez a través de la instrucción CREATE TABLE, o luego de crear la tabla a
través de la instrucción ALTER TABLE.
◦ Los tipos comunes de restricciones incluyen las siguientes:
◦ NOT NULL
◦ UNIQUE
◦ CHECK
◦ Clave primaria
◦ Clave externa
Not null
UNIQUE
◦ La restricción unique especifica que la columna que sea Unique no puede tener valores repetido aunque no sea llave primaria
CHECK
◦ La restricción CHECK asegura que todos los valores en una columna cumplan ciertas condiciones.
Primary key
◦ La restricción primary key define un atributo para diferenciar una tupla de otra.
Foreing key (primer acercamiento)
◦ La restricción de llave forenea permite establecer una relación entre tablas, y ayuda con la integridad de base de datos, pues al
insertar un dato que contiene una columan de llave forenea, se asugura que ese datos existe
Actualización de datos
◦ MySQL permite modificar los datos insertados en las tablas. Para modificar los datos se utiliza la siguiente sentencia:
◦ UPDATE [LOW_PRIORITY] tabla SET columna=valor [,columna2=valor2...] [WHERE condición] [LIMIT n]
◦ SET: es un conjunto de columa=valor y este par me va a decir que columnas modificar y con que valor. Si se requiere modificar varias columnas
estas se separan con una ,.
◦ WHERE: La clausula where nos va a especificar en base que se hace el cambio. Esta clausula es opcional pero si no se pone va a cambiar los
valores de toda la tabla y no solo de algunos.
◦ LOW_PRIORITY indica que no se ejecuta la actualización hasta que ningún cliente esté leyendo la tabla.
◦ LIMIT n establece en n el número máximo de filas que se pueden actualizar.
Borrar registros
◦ MySQL nos permite borrar registros de las tablas cuando sea necesario. La sentencia para eliminar datos es:
◦ DELETE [LOW_PRORITY] FROM tabla [WHERE condicion] [LIMIT n]
◦ LOW_PRIORITY indica que no se ejecuta la actualización hasta que ningún cliente esté leyendo la tabla.
◦ WHERE: La clausula where nos sirve para especificar que registros se deben de eliminar, y se eliminaran los que cumplan con esta condición. La
clausula where es opcional, solo que si no se pone eliminaran todos los registros de la tabla.
Cargar datos desde excel
◦ Ya con el archivo de Excel que contiene los datos, guardar el archivo como .csv
◦ Pasar la variable local infale a true, la variable local infale permite cargar archivos de manera local dentronde la base de datos,
normalmente tiene esta variable en false, asi que hay que pasarla a true.
◦ Para consultar el valor de la variable local_infale se utiliza el comando: show global variables like 'local_infile’;
◦ Para modificar el valor de la variable se utiliza el siguiente comando: set global local_infile=true;
Pasar datos workbench
Selecciona el archivo
Usar una table existente y seleccionar cual o crear una
nueva.
Elegir las
columnas
Desde cmd
Para cambiar el local infile
Limpiar tablas
◦ En MySQL se puede vaciar una tabla(limpiar, recetear) con TRUNCATE TABLE nombretabla;
◦ No hay manera de recuperar los registros.
Importando un archivo sql
◦ Generar el archivo extensión sql y guardarlo en la carpeta bin
Actividad 4.1
◦ Pasar a sql el ejercicio 2.10, insertar 10 maquinas, 5 plantas y 20 técnicos.
Actividad 4.2
◦ Pasar el ejercicio 2.12 insertar 5 farmacias, 3 propietarios, 10 medicamentos, 5 medicamentos complementados por toro droga, 3
ciudades
Consultas de la base de
datos
Select
◦ Para consultar una base de datos se utiliza la sentencia SELECY con al siguiente sintaxis:
◦ SELECT [DISTINCT | ALL | otras_opciones] lista_selección
[INTO OUTFILE 'nombre_archivo' opciones_exportación]
FROM tabla_origen [, tabla_origen...]
[WHERE condición] [LIMIT m,n];
[GROUP BY expresión_de_agrupación]
[HAVING condición_de_búsqueda]
[ORDER BY expresión_order_by [ASC | DESC]]
◦ SELECCIONA registros con ciertas columnas de la lista_selección, pudiendo exportarlo a un archivo(resultado de la consulta)
FROM (de la tabla) tabla_origen o mas tablas WHERE(donde cumpla) condición con un limite de n regitros, GROUP BY
agrupados por expresión, HAVING tieniendo en cuenta que condición, ORDER BY y ordenala por
Select
◦ La cláusula SELECT especifica las columnas que va a devolver la consulta.
◦ La opción ALL indica que pueden aparecer registros duplicados (valor por omisión) y DISTINCT indica lo contrario.
◦ Los valores NULL se consideran iguales para la sentencia DISTINCT.
◦ El SELECT puede funcionar con diferentes expresiones:
◦ Nombre(s) de columna: SELECT nombre, edad FROM ejemplo
◦ Constante: SELECT TO_DAYS(NOW())-TO_DAYS(nacimiento) )/365) AS edad FROM ejemplo
◦ Función SELECT COUNT(*) FROM ejemplo
◦ Combinación de las tres anteriores
◦ Extraer todas las tuplas de la tabla pedido Seleccionar solo el pedio y el monto de la tabla pedido
◦ Consultas especificas con la clausula WHERE
◦ Consultas con función:
◦ Consultas con constantes
Actividad 4.3
◦ Generar estas cosultas de la base de datos farmacias:
◦ Seleccionar todas las ciudades de la base de datos farmacia. select * from ciudades;. Select nombre_ciudad from ciudades;
◦ Contar el número de farmacias registradas y guardar el dato como num_farmacia. Select count(*) as num_farmacia from farmacias;
◦ Obtener el nombre de los propietarios con DNI mayor a 5 select nombre from propietarios where DNI>5;
◦ Mostrarme el nombre de todas las farmacias registradas. Select nombre_farmacia from farmacias;
FORM
◦ La palabra reservada FROM especifica las tablas de donde se van a obtener los datos.
◦ Es obligatoria ara poder realizar la consulta.
◦ La sintaxis es:
◦ FROM nombre_tabla, nombre_tabla2, nombre_tabla3
◦ Puede contener clausulas de unión como JOIN, CROSS JOIN, INNER JOIN, STRAIGHT_JOIN y LEFT JOIN
◦ Las tablas Tambien pueden tener un sobre nombre con la palabra reservada AS:
◦ FROM tablas AS ejemplo
Clausula WHERE
◦ En la clausula WHERE estableces el filtro de las consultas.
◦ También a través de esta tabla puedes unir tablas con ayudas de las llaves foraneas y generar consultas
Actividad 4.6
◦ En la base de datos de farmacia, decir que drogas tiene un medicamento en especifico.
◦ Mostrar en que ciudades se encuentran todas las farmacias.
◦ Mostrar la lista de medicamentos que se venden en una farmacia en especifico.
◦ Mostrar el precio de un medicamento especifico en una farmacia especifica
◦ Mostrar la el nombre de la farmacia de juan.
Clausula ORDER BY
◦ La clausula ORDER BY sirve para ordenar la información bajo un criterio.
◦ La sintaxis es la siguiente:
◦ ORDER BY expresión_de_orden [ASC | DESC]
◦ Expresión_de_orden: columna o columnas que se utilizaran como criterio para ordenar.
◦ [ASC | DES]=Ascendente o descendente.
antes despues
Ordena de manera ascendente por default, ordena
primero por costo y en costos repetidos ordena por
monto.
Ordenara de manera descendente por costo y en los costos repetidos de
manera ascendente por monto.
Clausula GROUP BY
◦ Especifica las agrupaciones que se van a realizar en las filas de salida.
◦ La expresión GROUP BY debe de coincidir exactamente con la expresión de la lista de selección.
◦ La sintaxis es :
◦ [GROUP BY expresión_de_agrupamiento]
◦ Expresión de agrupamiento: Especifica la expresión en la que se realiza el agrupamiento o columna de agrupamiento
◦ No se puede utilizar un alias de columna en la lista de selección para especificar una columna de agrupamiento.
La función count nos sirve para contar los elementos del
agrupamiento.
HAVING
◦ HAVING es una clausula select que se ejecuta después del where, en otras palabras reduce los resultados de la consulta devuelta
por el primer SELECT.
◦ Por lo general se utiliza después de la sentencia GROUP BY y antes que ORDER BY.
◦ HAVING y WHERE no son excluyentes, simplemente HAVING funciona después de la selección de WHERE.
◦ Es mejor utilizar los criterios de selección en WHERE, ya que es mas eficiente.
LIMIT
◦ La clausula nos permite delimitar la cantidad de resultados que retorna una consulta.
◦ La sintaxis es la siguiente:
◦ [LIMIT n] o [LIMIT m,n]
◦ Donde m es a partir del registro que accederemos y n es el número de registros a extraer.
Actividad 4.7
◦ Contar el numero de drogas por medicamento.
◦ Mostrar el nombre y la ciudad donde se encuentran las farmacias ordenando de manera des cedente por ciudad.
◦ Mencionar el nombre de las ciudades que tiene mas de dos farmacias.
◦ Mencionar el nombre de los medicamentos de una farmacia, limitado a 10 medicamentos y ordenados de manera ascendente por
nombre del medicamento
Operadores de
comparación
IN
◦ Efectúa una selección entre un conjunto de posibles resultados.
◦ También existe su contrario NOT IN.
Actividad 4.8
◦ Selecciona el nombre de las farmacias que se encuentren en el centro del país.
◦ Menciona el nombre de medicamentos que dentro de sus drogas se encuentren 3 elegidas por ustedes.
Operadores condicionales
BETWEEN y AND
◦ Es un operador de comparación que nos va a permitir seleccionar registros dentro de un rango.
LIKE
◦ Esta operador es ocupado dentro de las cadenas buscando patrones, como por ejemplo:
carácter significado
% Busca por cero, uno o mas caracteres
_ Representa un solo caracter
Actividad 4.9
◦ Selecciona el nombre de las farmacias que de las cuales sus dueños tengan nombre que este entre a-j.
◦ Menciona las drogas que componen los medicamentos que inicien con “f” y terminen con “er”
Funciones de agregado
IS NULL
◦ IS NULL es un comparador que nos va a servir para seleccionar valores nulos o para seleccionar valores no nulos, ya que esto
también forma parte de la base de datos.
AVG( ), MAX( ), MIN( ), COUNT( )
◦ Las funciones de agregado AVG( ), MAX( ), MIN( ), obtienen un calculo sobre un conjunto de valores y devuelve un solo valor,
excepto COUNT.
◦ Las funciones de agregado ignoran los valores nulos.
◦ La mayoría de las veces las funciones de agregado son utilizadas en conjunto con la clausula GROUP BY.
◦ Las funciones de agregado solo se puede utilizar con un select.
◦ AVG(expresión):Devuelve la media de un grupo definido de valores, como por ejemplo un promedio.
◦ COUNT(expresión): Número de elementos que cumplen cierta expresión.
◦ MAX(expresión): Extrae el número máximo de un conjunto de valores.
◦ MIN(expresión): Extrae el número mínimo de un conjunto de valores.
El count(*) cuenta valores nulos y con valor count(columna) solo cuenta los que tiene valor
SUM(), AVG()
◦ SUM(exprensión): suma la columna según un criterio.
◦ ROUND(columna, decimales): redondea al número de decimales una columna.
◦ AVG(expresión): obtiene el promedio de una columna según el criterio.
◦ MID(columna, inicio[,longitu]): Extrae un conjunto de “n” caracteres a partir del valor de “inicio” de la columna seleccionada.
◦ LENGTH(columna): Regresa la longitud de la cadena almacenada en la columna.
◦ UCASE(expresión): Regresa el valor en mayúsculas.
◦ LCASE(expresión): Regresa el valor en minúsculas.
◦ CONCAT(cadena1, cadena2...): Concatena las cadenas.
◦ CONCAT_WS(separador, cadena1, cadena2...): Concatena las cadenas y añade el separador entre ellas.
productos proveedores
sabritas
jalapeños
Frijoles ref
chipotles
cocacola
refrescos
jugos
Agua emb
La costeña
papas
cacahuates
La sierra
BaseDatosConceptos

Más contenido relacionado

La actualidad más candente

Normalización de bases de datos
Normalización de bases de datosNormalización de bases de datos
Normalización de bases de datoshugofreestyle
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...José Antonio Sandoval Acosta
 
Dependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de DatosDependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de DatosEsteban Andres Diaz Mina
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacionalSuarezJhon
 
Database System Concepts and Architecture
Database System Concepts and ArchitectureDatabase System Concepts and Architecture
Database System Concepts and Architecturesontumax
 
Integrity Constraints
Integrity ConstraintsIntegrity Constraints
Integrity ConstraintsMegha yadav
 
bases de datos distribuidas
bases de datos distribuidasbases de datos distribuidas
bases de datos distribuidasBofo Cid
 
Clase I Estructura de Datos
Clase I Estructura de Datos Clase I Estructura de Datos
Clase I Estructura de Datos guestc906c2
 
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetos
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetosED Unidad 1: Introducción a las estructuras de datos (TDA) con objetos
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetosFranklin Parrales Bravo
 
Normalizacion en base de datos
Normalizacion en base de datosNormalizacion en base de datos
Normalizacion en base de datosEstebanPoma2
 
3. Relational Models in DBMS
3. Relational Models in DBMS3. Relational Models in DBMS
3. Relational Models in DBMSkoolkampus
 
Tema3 modelo relacional
Tema3   modelo relacionalTema3   modelo relacional
Tema3 modelo relacionalAlvaro Loustau
 
Fundamentos de BD - Unidad 4 diseño de bd relacional
Fundamentos de BD - Unidad 4 diseño de bd relacionalFundamentos de BD - Unidad 4 diseño de bd relacional
Fundamentos de BD - Unidad 4 diseño de bd relacionalJosé Antonio Sandoval Acosta
 
Introduction to database
Introduction to databaseIntroduction to database
Introduction to databasePradnya Saval
 

La actualidad más candente (20)

Oodbms ch 20
Oodbms ch 20Oodbms ch 20
Oodbms ch 20
 
Normalización de bases de datos
Normalización de bases de datosNormalización de bases de datos
Normalización de bases de datos
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
 
Dependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de DatosDependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de Datos
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Database System Concepts and Architecture
Database System Concepts and ArchitectureDatabase System Concepts and Architecture
Database System Concepts and Architecture
 
Integrity Constraints
Integrity ConstraintsIntegrity Constraints
Integrity Constraints
 
Patron de diseño composite
Patron de diseño compositePatron de diseño composite
Patron de diseño composite
 
bases de datos distribuidas
bases de datos distribuidasbases de datos distribuidas
bases de datos distribuidas
 
Clase I Estructura de Datos
Clase I Estructura de Datos Clase I Estructura de Datos
Clase I Estructura de Datos
 
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetos
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetosED Unidad 1: Introducción a las estructuras de datos (TDA) con objetos
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetos
 
Normalizacion en base de datos
Normalizacion en base de datosNormalizacion en base de datos
Normalizacion en base de datos
 
DB1 Unidad 4: SQL
DB1 Unidad 4: SQLDB1 Unidad 4: SQL
DB1 Unidad 4: SQL
 
Tipos de memoria usadas para sistemas informáticos
Tipos de memoria usadas para sistemas informáticosTipos de memoria usadas para sistemas informáticos
Tipos de memoria usadas para sistemas informáticos
 
3. Relational Models in DBMS
3. Relational Models in DBMS3. Relational Models in DBMS
3. Relational Models in DBMS
 
Codds rule
Codds ruleCodds rule
Codds rule
 
Tema3 modelo relacional
Tema3   modelo relacionalTema3   modelo relacional
Tema3 modelo relacional
 
Bases de datos en red
Bases de datos en redBases de datos en red
Bases de datos en red
 
Fundamentos de BD - Unidad 4 diseño de bd relacional
Fundamentos de BD - Unidad 4 diseño de bd relacionalFundamentos de BD - Unidad 4 diseño de bd relacional
Fundamentos de BD - Unidad 4 diseño de bd relacional
 
Introduction to database
Introduction to databaseIntroduction to database
Introduction to database
 

Similar a BaseDatosConceptos

Similar a BaseDatosConceptos (20)

Presentacion bd
Presentacion bdPresentacion bd
Presentacion bd
 
Guia base de datos
Guia base de datosGuia base de datos
Guia base de datos
 
Base de datos conceptos
Base de datos conceptosBase de datos conceptos
Base de datos conceptos
 
Bases De Datos
Bases De DatosBases De Datos
Bases De Datos
 
Bases De Datos
Bases De DatosBases De Datos
Bases De Datos
 
Trabajo de base de datos
Trabajo de base de datosTrabajo de base de datos
Trabajo de base de datos
 
Kathya base de datos
Kathya base de datosKathya base de datos
Kathya base de datos
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 
Kathya base de datos
Kathya base de datosKathya base de datos
Kathya base de datos
 
Kathya base de datos
Kathya base de datosKathya base de datos
Kathya base de datos
 
Kathya base de datos
Kathya base de datosKathya base de datos
Kathya base de datos
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOS
 
Sistemas de Almacenamiento
Sistemas de AlmacenamientoSistemas de Almacenamiento
Sistemas de Almacenamiento
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Presentacion base de datos
Presentacion base de datosPresentacion base de datos
Presentacion base de datos
 
Procesamiento de datos.
Procesamiento de datos. Procesamiento de datos.
Procesamiento de datos.
 
Conceptos basicos
Conceptos basicosConceptos basicos
Conceptos basicos
 
Glosario base de datos
Glosario base de datosGlosario base de datos
Glosario base de datos
 
01 introduccion (1)my sql
01 introduccion (1)my sql01 introduccion (1)my sql
01 introduccion (1)my sql
 

Último

clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestajeffsalazarpuente
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamientoRobertoAlejandroCast6
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...SuannNeyraChongShing
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIAMayraOchoa35
 

Último (20)

VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuesta
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
 

BaseDatosConceptos

  • 2. Conceptos Generales ◦ Dato: Es un conjunto de caracteres con algún significado, pueden ser numéricos, alfabéticos, o alfanuméricos, este es la unidad mínima de información. Estos pueden ser cualitativos o cuantitativos. ◦ Cualitativa: Responde a la pregunta ¿Cuál?. Como color, tipo de letra, lugar de nacimiento. ◦ Cuantitativa: Responde a la pregunta ¿Cuántos?. Tamaño, edad, peso ◦ Información: Es un conjunto ordenado de datos los cuales son manejados según la necesidad del usuario, para que un conjunto de datos pueda ser procesado eficientemente y pueda dar lugar a información, primero se debe guardar lógicamente en archivos. ◦ Para que la información sirva para el usuario esta debe ser: ◦ Accesible ◦ Clara ◦ Precisa ◦ Propia ◦ Flexible ◦ Verificable ◦ Imparcial ◦ Cuantificable
  • 3. ◦ Archivo: Conjunto de datos interrelacionados, recolectados, que satisfacen las necesidades de información de una comunidad determinada de usuarios
  • 4. Información Archivo Dato. Edad: 3 Nombre: Pedro Edad: 3 Municipio:Pachuca 30% mayores de edad
  • 5. ¿Qué es base de datos?
  • 6. ◦ Es un conjunto de archivos dedicados a guardar información relacionada entre sí, con referencia entre ellos de manera que se complementen y con la posibilidad de relacionarlos en base a diferentes criterios. ◦ Desde el punto de vista informático, la base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos.
  • 7. Actividad 1.1 ◦ Buscar la definición de base de datos de 5 autores diferentes, y crear una definición propia.
  • 8. Características de la base de datos ◦ Una base de datos brinda una buena administración de datos si cumple con las siguientes características: ◦ Redundancia: La redundancia se refiere a la existencia de información repetida o duplicada en diferentes tablas dentro de una base de datos. Para evitar la redundancia es necesario identificar los datos que son utilizados en común por varias aplicaciones y almacenarlos una sola vez. ◦ Consistencia: Frecuentemente los problemas de consistencia de datos se deben a la redundancia de éstos. Es muy probable que surjan incongruencias al almacenar la misma información en más de un lugar, ya que al modificar, eliminar o agregar un dato, en esas condiciones, debe realizarse en cada una de las instancias del mismo con el riesgo de no realizarlo en su totalidad, generando en este caso datos inconsistentes.
  • 9. ◦ Integridad: La integridad en una base de datos se refiere, a que los valores que posean los datos sean validos de acuerdo a las dependencias funcionales de las tablas. Esto es que cuando una base de datos incluya información utilizada por muchos usuarios, es importante que no puedan destruirse los datos almacenados ni las relaciones que existen entre los distintos atributos. La integridad de la base de datos se puede lograr mediante: ◦ El mantenimiento de una redundancia mínima y controlada ◦ El establecimiento de llaves primarias o índices primarios ◦ La validación de las dependencias entre las tablas relacionadas, y la creación de reglas de validación durante la inserción y edición de datos. ◦ Seguridad: La seguridad implica asegurar que los usuarios están autorizados para llevar a cabo lo que tratan de hacer. La seguridad de una base de datos se refiere principalmente al control de acceso, modificación y definición, tanto de los datos como de la estructura de la base de datos por parte de los diferentes usuarios de la misma.
  • 10. ◦ Actividad 1.2 ◦ Generar tres archivos con el numero de columnas que deseen y con 5 registros cada una que ejemplifiquen las características de la bases de datos que acabamos de mencionar Nombre edad Tiposangre faride 30 O- juan 23 O+ faride 12 A- Nombre direccion telefono faride Nombre edad alergias faride 15
  • 11. Aplicaciones de la base de datos ◦ Banca: para la información de los clientes, cuentas, préstamos y transacciones bancarias. ◦ Líneas aéreas: para reservas e información de horarios. Las líneas aéreas fueron de las primeras en usar las bases de datos de forma distribuida geográficamente. ◦ Universidades: para información de los estudiantes, matrículas en las asignaturas y cursos. ◦ Ventas: para información de clientes, productos y compras. ◦ Comercio en línea: para los datos de ventas ya mencionados y para el seguimiento de los pedidos Web, generación de listas de recomendaciones y mantenimiento de evaluaciones de productos en línea.
  • 12. Actividad 1.3 ◦ Menciona 3 ejemplos con los cuales interactuar diariamente y que piensas trabajan con una base de datos para funcionar.
  • 13. Elementos de la base de datos
  • 14. Entidad ◦ Persona, lugar, objeto o evento de interés acerca del cual se recogen o procesan datos. Esta se representa por medio de un rectángulo, mismo que contiene dentro el nombre de la entidad. Clientes Ventas Almacén Fiesta
  • 15. ◦ Las entidades se dividen en dos tipos, que son: ◦ Regulares o fuertes, que son las entidades normales que tienen existencia por sí mismas sin depender de otras. ◦ Débiles, su existencia depende de otras. Su representación gráfica es con doble recuadro. Cliente venta Pedido
  • 16. Atributos ◦ Es una característica de una entidad o de una relación en función de lo que nos interesa en nuestra aplicación. Su representación gráfica es una elipse. Color
  • 18. ◦ Los atributos de clasifican en: ◦ Simples, no están divididos en subpartes ◦ Compuestos, estos están divididos en subpartes Calle Colonia C.P Estado Municipio
  • 19. ◦ Monovaluados: solo pueden tener un valor para una entidad particular. ◦ Multivaluados: pueden tener más de un valor para una entidad. Teléfono
  • 20. ◦ Almacenados o derivados: Son atributos cuyo valor para una entidad puede obtenerse en función de los valores almacenados en otros atributos. Su representación gráfica es mediante una elipse con línea discontinua.
  • 21. ◦ Identificador: Se trata de uno o más campos cuyos valores son únicos en cada ejemplar de una entidad. Se indican subrayando el nombre del identificador. ◦ Para que un atributo sea considerado buen identificador tiene que cumplir: ◦ Deben distinguir a cada ejemplar teniendo en cuenta las entidades que utiliza el modelo. ◦ Todos los ejemplares de una entidad deben tener el mismo identificador ◦ Es importante señalar que al conjunto de valores que puede tomar un atributo se le llama dominio del atributo. ◦ Toda entidad debe tener al menos un atributo identificador que permita diferenciar unas entidades particulares de otras. ◦ El atributo identificador puede ser el conjunto de varios atributos, o bien un solo un atributo.
  • 22. Tabla ◦ Es un conjunto de datos dispuesto en una estructura de filas y columnas. ◦ En una tabla las filas se denominan registros y las columnas campos; la primera fila contiene los nombres de campo. ◦ Cada campo contiene determinado tipo de datos y tiene una longitud expresada en el número de caracteres máximo del campo. ◦ Para crear una tabla es necesario definir su estructura: ◦ El nombre de la tabla ◦ Los tipos de dato de cada campo ◦ Las propiedades o características de cada campo ◦ El campo clave
  • 23.
  • 24. Relaciones ◦ Describe la interacción entre dos o más entidades. Su representación gráfica es mediante un rombo. Empleado Cliente atiende persona perro dueña
  • 25. Actividad 1.4 ◦ Del siguiente enunciado identificar entidades, atributos y relaciones. ◦ Se desea generar una base de datos para la gestión de una empresa de transportes que reparte paquetes. Los encargados de llevar los paquetes son los camioneros, de los que se quiere guardar el rfc, nombre, teléfono, dirección, salario y municipio en la que vive. De los paquetes transportados interesa conocer el código de paquete, descripción, destinatario y dirección del destinatario. ◦ Se desea generar una base de datos para una tienda. Los encargados de atender la tienda son los empleados de los que se requiere guardar su nombre, dirección, teléfono, curp, cada empleado atiende uno o mas clientes de los que nos interesa saber nombre, teléfono, id_cliente, dirección, cada cliente puede comprar uno o mas productos del cual nos interesa saber id_producto, nombre, cantidad, costo por unidad, estos productos son entregados por los empleados.
  • 26. Componentes de la base de datos
  • 27. Datos ◦ La base de datos esta compuesta de datos en si. Las características mas importante de estos dentro de una base de datos es que deben estar integrados y compartidos. ◦ Integrados: La base de datos puede considerarse como una unificación de varios ficheros de datos, que son tratados como uno solo, y en el que se ha eliminado totalmente o en parte la redundancia de datos. ◦ Compartida: Los daros pueden compartirse entre varios usuarios. Es posible que varios de estos usuarios accedan al mismo elemento de información, al mismo tiempo.(Concurrencia).
  • 28. Equipo (Hardware) ◦ Conjunto de equipos físicos utilizados para almacenar y procesar datos. ◦ Computadoras: Utilizados para procesar los datos de la base de datos. Puede ser desde un ordenador personal o laptop, hasta un mainframe. El ordenador debe tener la capacidad de conectarse a una red cliente/servidor, garantizando el acceso de varios usuarios a una base de datos. El servidor puede ser otro ordenador mas potente o bien de las mismas capacidades. ◦ Volúmenes de almacenamiento: Generalmente son unidades de disco que constituyen el mecanismo de almacenamiento principal para la base de datos. ◦ Otros dispositivos: Pueden ser impresoras, unidades de memoria externa, sistemas de enfriamiento y ventilación.
  • 29. Programas (software) ◦ Un sistema de base de datos requiere de dos tipos de programas: ◦ El software de propósito general, para la gestión de la base de datos, comúnmente llamado Sistema Gestor de Base de Datos. Este maneja todas las solicitudes de acceso a la base de datos formuladas por los usuarios y los programas de aplicación. ◦ Software de aplicación: Conocido también como programa final, usa las facilidades del sistema gestor de base de datos para manipular la base de datos con el fin de llevar a cabo una función especifica en la gestión de la empresa.
  • 30. Personal ◦ El personal necesario para la creación y gestión de una base de datos se pueden dividir en tres grupos: ◦ Administrador de la base de datos (A.B.D): Son los encargados de diseñar la estructura de la base de datos y los responsables de que el sistema funcione correctamente. El A.B.D. se encarga de autorizar el acceso a la base de datos, de coordinar y vigilar su utilización y de adquirir los recursos necesarios de software y hardware. Además el A.B.D es el encargado de: ◦ Definición del esquema: Decidir el contenido de la base de datos, eligiendo cuales son los datos que interesa tener almacenados y organizarlos de la mejor forma posible, creando el esquema conceptual, que se escribirá mediante un lenguaje de definición de datos. ◦ Definición de las estructuras de almacenamiento y método de acceso: Debe decidir sobre la forma en que se van a almacenar los datos sobre los soportes físicos en los que se grabará la base de datos y la correspondencia entre esta estructura de almacenamiento y el esquema conceptual. ◦ Modificación del esquema y de la organización física si los requerimientos cambian. ◦ Decidir los controles de autorizaciones para el acceso a los datos: Es el que concede diferentes tipos de autorizaciones al resto de los usuarios de la base de datos. ◦ Especificar las restricciones de integridad: Debe definir los procedimientos de validación que habrán de ejecutarse cada vez que se actualiza la base de datos.
  • 31. ◦ Programadores de aplicaciones: Encargado de desarrollar aplicaciones finales para los usuarios, apoyándose en un SGBD para acceder a la base de datos. ◦ Usuarios finales: Son personas que no tienen porque tener conocimientos informáticos y que pueden manipular los datos con ayuda de las aplicaciones.
  • 32. Actividad final 1 ◦ Del siguiente enunciando generar un reporte donde mencionen los componentes necesarios para la implementación y gestión de la base de datos, identifiquen las entidades, los atributos de cada entidad y las relaciones entre entidades. ◦ Una Universidad desea informatizar la información de sus módulos, alumnos y profesores para su mejor gestión, a la cual quieren acceder a través de una aplicación móvil por internet. ◦ En la base de datos se desea guardar los datos de los profesores del Instituto (id de profesor, nombre, dirección y teléfono). Los profesores imparten módulos, y cada módulo tiene un código y un nombre. Cada alumno está matriculado en uno o varios módulos. De cada alumno se desea guardar el número de expediente, nombre, apellidos y fecha de nacimiento.
  • 33. Modelos de base de datos
  • 34. ◦ Un modelo es una representación de la realidad que contiene las características generales de algo que se va a realizar. ◦ Un modelo de datos es una colección de herramientas conceptuales para describir los datos, las relaciones que existen entre ellos, semántica asociada a los datos y restricciones de consistencia. ◦ Los modelos de datos se pueden clasificar dependiendo de los tipos de conceptos que ofrecen para describir la estructura de la base de datos.
  • 35. Modelos conceptuales. ◦ En este se construye un esquema conceptual de la información que se usara en la base de datos, al construir este esquema, se descubre el significado de los datos, se encuentran entidades, atributos y relaciones. ◦ En este modelo se tiene como objetivo comprender: ◦ La perspectiva que el usuario tiene de los datos ◦ La naturaleza de los datos, independientemente de su representación física ◦ El modelo conceptual es completamente independiente de los aspectos de implementación, como pueden ser los programas de aplicación, los lenguajes de programación, etc.
  • 36. Modelo lógico ◦ Un modelo de datos lógicos describe los datos con el mayor detalle posible, independientemente de cómo se implementarán físicamente en la base de datos. ◦ Las características de un modelo de datos lógicos incluyen: ◦ Incluye todas las entidades y relaciones entre ellos. ◦ Todos los atributos para cada entidad están especificados. ◦ La clave principal para cada entidad está especificada. ◦ Se especifican las claves externas (claves que identifican la relación entre diferentes entidades). ◦ Se normalizan los datos.
  • 37. Modelo físico ◦ El modelo de datos físicos representa cómo se construirá el modelo en la base de datos. ◦ Un modelo de base de datos física muestra todas las estructuras de tabla, incluidos el nombre de columna, el tipo de datos de columna, las restricciones de columna, la clave principal, la clave externa y las relaciones entre las tablas. ◦ Los pasos básico para el diseño del modelo de datos físicos son los siguientes: ◦ Convertir entidades en tablas. ◦ Convertir relaciones en claves externas. ◦ Convertir atributos en columnas.
  • 38. Actividad 2.1 ◦ Generar un mapa conceptual donde describas los tres tipos de modelos de datos, sus características y principales obejtivos.
  • 40. Modelo entidad-relación ◦ El modelo entidad relación (E/R) proporciona una herramienta para representar información del mundo real a nivel conceptual. ◦ Creado en 1976 por Peter Chen, permite describir las entidades involucradas en una base de datos, así como las relaciones y restricciones de ellas. ◦ Notación grafica. ◦ Tiene semántica clara. ◦ Fácil de entender aún por no especialistas. ◦ Independiente de cualquier SGBD
  • 41. Conceptos básicos ◦ Entidad: Una entidad es un elemento con existencia independiente de otros elementos. Un conjunto de entidades o tipo entidad es un conjunto de entidades que comparten las mismas propiedades. ◦ Atributos: Toda entidad tiene propiedades particulares, denominadas atributos y tienen un dominio que es el conjunto de valores validos para un atributo. ◦ Relación: Si A, B son conjuntos, entonces una relación R es un subconjunto de A × B ◦ Ejemplo: Si A = {1, 2, 3}, B = {a, b, c, d}, R = {(1, a),(1, c),(3, b)} ◦ Cardinalidad: Expresa el número de entidades que pueden asociarse vía un tipo de relación. Para las relaciones binarias la cardinalidad puede ser: ◦ Uno a uno (←→) ◦ Uno a varios (←−) ◦ Varios a uno (−→) ◦ Varios a varios (--- --- )
  • 42. ◦ Se lee muchos empleados trabajan en un departamento, y en un departamento trabajan muchos empleados. ◦ Un departamento es administrado por un empleado y un empleado administra un departamento. emp1 emp2 emp3 emp4 dep1 dep2 dep3 departamento empleado
  • 43. ◦ Uno a uno ◦ Uno a varios ◦ Varios a uno ◦ Varios a varios presidente gobierna país clienta apertura cuenta propiedades adquiridas persona alumnos toman materias (1,1) 1 1 (n,m) n 1 (1,n) n n Cuenta ahorro=123 Cuenta crédito=345 Cuenta debito=245 1 n (n,1)
  • 44. ◦ Al modelar una base de datos para un restaurante1, me explican que cada que el cliente genera una orden se genera un pedido de esa orden y se atiende Al modelar una base de datos para un restaurante2, me explican que el menú funciona por paquetes y que el cliente pide por numero de paquete y se le atiende cliente pedido ordena cliente paquete ordena
  • 45. ◦ También se pueden añadir atributos sobre relaciones, estas son características especificas de la relación. La necesidad de establecer atributos a las relaciones surgen cuando nos interesa conocer un dato sobre esta relación y este dato no puede ser adjudicado a ninguna entidad pues provocaría mucha redundancia de datos. ◦ También si la relación de cardinalidad entre entidades es de muchos a muchos, el atributo pasa a la relación. cliente préstamo genera d_cliente nombre Fecha_nac telefono Id_prestamo Tipo_prestamo Cantidad_maxima fecha
  • 46. Id_prestamo tipo Cantidad_maxima 1 hipotecario 100000 2 mejoravit 50000 3 automovilistico 300000 Id_cliente nombre Año_nac telefono 001 Maria 1987 123 002 Jose 1998 234 003 Luis 1999 456 Id_prestamo Id_cliente 001 001 003 001 001 003
  • 47. Grado de relaciones ◦ El grado de un tipo de relación es el número de tipos de entidad que participan en él. ◦ Binarias: Incluyen relaciones de dos entidades. ◦ Ternarias ◦ N-ternarias Productos comprados Personas Productos comprados Personas Almacenes
  • 48. Relaciones recursivas ◦ Cuando una entidad participa mas de una vez en una misma relación se le conoce como relación recursiva, en este caso es necesario definir papeles dentro de la relación. empleado capacita capacitor Nuevos empleado trabaja sucursal
  • 49. Restricciones sobre tipos de relación. ◦ Los tipos de relación suelen tener ciertas restricciones que limitan las posibles combinaciones de entidades que pueden participar en los correspondientes tipos de relación. Estas restricciones se determinan a partir de la realidad, es decir del significado que tienen los tipos de entidad y tipos de relación en el mundo real, y no depende de los conjuntos de entidades o conjuntos de relación que en un momento dado se puedan estar considerando o almacenando en la base de datos. ◦ Hay diferentes tipos de restricción: ◦ Cardinalidad ◦ Participación
  • 50. Restricción de cardinalidad ◦ La cardinalidad de un tipo de relación binaria especifica el número de instancias de relación en los que puede participar una entidad. ◦ La cardinalidad no depende del contenido de los conjuntos de entidades y relaciones en un momento dado, sino del significado en el mundo real de los tipos de entidad y relación.
  • 51. Restricción de participación. ◦ La restricción de participación especifica si la existencia de una entidad depende de que esté relacionada con otra entidad a través del tipo de relación. Hay dos tipos de restricciones: ◦ Parcial ◦ Total empleado atiende cliente cliente genera ventas cliente Id_cliente Nombre Dirección telefono 1 Juan Conocida 123 2 Pedro Conocida2 234 3 Maria Conocid3 345 ventas Id_venta Monto_total Numero_productos Id_cliente 001 1200 4 2 002 1300 6 1
  • 52. Entidad débil ◦ Los tipos de entidad que no tienen atributos clave propios se denominan tipos de entidad débiles. ◦ Las entidades que pertenecen a un tipo de entidad débil se identifican por su relación con entidades específicas de otro tipo de entidad, en combinación con algunos de los valores de sus atributos. Decimos que este otro tipo de entidad es el tipo de entidad propietario o tipo de entidad padre, y llamamos al tipo de relación que las une, relación identificador del tipo de entidad débil. ◦ Un tipo de entidad débil siempre tiene una restricción de participación total (dependencia de existencia) con respecto a su relación identificador, porque una entidad débil no se puede identificar sin una entidad propietaria. ◦ La entidad débil se especifica con un doble rectángulo. ◦ La relación que asocia las entidades débiles con las fuertes se especifica con un doble rombo. ◦ El atributo identificador de estas entidades siempre será una combinación de un atributo propio de la identidad débil (discriminador) se identifica con una línea discontinua y el atributo único de la identidad propietaria.
  • 53. Préstamo Pago prestamo Pagos Id_prestamo tipo cantidad No_pago fecha importe factura RFC empresa fecha telefono dirección Id_factura importe Decripción factura Tipo de mueble Cantidad_m uebles Precio_u nitario contien e
  • 54. Actividad 2.2 ◦ Un centro de investigación requiere llevar un control de los proyectos que realizan cada empleado, tomando que en cuenta que un empleado debe pertenecer a un departamento y solo puede trabajar como máximo en un proyecto. ◦ Del departamento se desea guardar el id_departamento, nombre del departamento, ubicación(pudiendo tener varias ubicaciones). ◦ Del empleado se desea guardar el numero de empleado, nombre del empleado, dirección(compuesta por calle, numero, colonia, C.P, municipio), teléfono(pudiendo tener varios números), edad. ◦ Proyectos id_proyecto, nombre del proyecto, área de especialidad.
  • 55. Actividad 2.3 ◦ Una empresa de cosméticos quiere una base de datos para controlar sus pedidos. Un socio puede hacer uno o mas pedidos pero un pedido solo puede hacerlo un socio, en cada pedido esta compuesto por uno o varios artículos, y un articulo puede estar en varios pedidos. También se desea guardar información de las personas que ingresó de socio. ◦ Del socio se interesa guardar no_socio, nombre, dirección, teléfono, estado_civil. ◦ Del pedido se interesa guardar no_pedido, fecha, cantidad de artículos, importe. ◦ Del articulo se interesa guardar codigo_articulo, nombre, precio unitario, presentación. ◦ Del ingreso socio se desea guardar nombre, dirección.
  • 56. Actividad 2.4 ◦ Un taller desea llevar un control de clientes y los autos que arregla, tomando en cuenta que un cliente puede llevar mas de un auto, y un auto puede ser reparado varias veces. ◦ Del cliente se desea guardar, numero de cliente, nombre, dirección, teléfono(pudiendo tener varios teléfonos). ◦ De los autos se desea guardar placa, modelo, numero de motor, color. ◦ Dela reparación se desea guardar numero de reparación, problema, observaciones y las refacciones.
  • 57. Actividad 2.5 ◦ Una fábrica de muebles, ha decidido utilizar un sistema de Base de Datos para representar la estructura de los muebles que distribuye. Realizar el diagrama ER correspondiente teniendo en cuenta que: ◦ Los muebles están representados por un nombre único. También se quiere conocer su precio. Todo mueble está formado por una o más piezas. ◦ Cada pieza tiene un identificador único y puede formar parte de varios muebles. Interesa apuntar cuántas unidades de cada pieza componen el mueble. ◦ Todas las unidades de una pieza se encuentran en uno o más estantes del almacén. El estante viene determinado de forma única por dos valores: pasillo y altura. Además de en qué estantes están las piezas, interesa conocer cuántas unidades de la pieza hay almacenadas en cada estante.
  • 58. Actividad 2.6 ◦ Una empresa requiere una base de datos para 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
  • 59. Actividad 2.6.1 ◦ Una base de datos para una MercadoBest debe contener información acerca de clientes, artículos y pedidos. A la empresa le interesa manejar los siguientes datos: ◦ Para cada cliente: Número de cliente (único), Direcciones de envío (varias por cliente), Saldo, Límite de crédito, Descuento. ◦ Para cada artículo: Número de artículo (único), Proveedores que lo distribuyen, Existencias de ese artículo en cada proveedor, Descripción del artículo. ◦ 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. ◦ Para proveedores se necesita: Número de proveedor (único) y Teléfono de contacto. Y se desean ver cuántos artículos (en total) provee el proveedor. También, se desea incluir información de proveedores alternativos que han surtido artículos para esta empresa. ◦ Nota: Una dirección se entenderá como Nº, Calle, ciudad y estado. Una fecha incluye día, mes, año.
  • 61. Generalización ◦ Es una relación contenida que existe entre el conjunto de nivel más alto (superclase) y uno o más conjuntos de entidades de nivel más bajo (subclase). ◦ La generalización permite que las entidades de nivel más bajo hereden los atributos de la entidad generalizadora de más alto nivel. ◦ La entidad general se llama superentidad y las otras subentidades. La superentidad normalmente tiene una clave principal distinta de las subentidades. ◦ Para la representación de este tipo de interrelación, utilizamos un triángulo invertido, con la base paralela al rectángulo que representa el supertipo (Generalización) y conectado a éste y a los subtipos (Especialización).
  • 62. Especialización ◦ El proceso por el que se definen las diferentes subclases de una superclase se conoce como especialización. Ocurre cuando partimos de una entidad que podemos dividir en subentidades para detallar atributos que varían en las mismas. ◦ Comparten clave con la superentidad y los atributos de la superclase se heredan en las subclases.
  • 63. Ejemplo ◦ La entidad profesor tiene varios atributos como numero de empleado, nombre, teléfono, fecha de nacimiento, carrera, etc. Pero un profesor tiene la característica de que puede ser contratado por asignatura o tiempo completo. Si es por asignatura, necesitaremos conocer cuántas horas le asignaron en el mes y el precio por hora para calcular su salario mensual. En cambio tiempo completo, ya tiene un salario mensual fijo y un tipo. profesor No_empl nombre telefono Fecha_nac carrera asignatura Hrs_asigan adas Precio_hor a salario Tiempo_completo salario tipo
  • 64. Ejemplo 2 ◦ Se tiene las entidades Cta_Ahorro y Cta_Cheques, ambas tienen los atributos semejantes de No_Cta y Saldo, aunque además de estos dos atributos, Cta_Ahorro tiene el atributo Tasa_Interes y Cta_Cheques el atributo Saldo_Deudor. Cuenta No_cuenta saldo Cta_ahorro Cta_cheques Tasa_interes Saldo_deudor
  • 65. ◦ Generalización ◦ Énfasis en las similitudes ◦ Cada instancia del supertipo es también una instancia de alguno de los subtipos. ◦ Especialización ◦ Énfasis en las diferencias ◦ Alguna instancia del supertipo puede no ser instancia de ningún subtipo.
  • 66. Agregación ◦ Es un concepto de abstracción para construir objetos compuestos a partir de sus objetos componentes. ◦ Permite combinar entidades entre las que existe una interrelación y formar una entidad de más alto nivel. Es útil cuando la entidad de más alto nivel se tiene que interrelacionar con otra entidad. Hombre Mujer casado Agregación: Matrimonio Acta_matrimonio generan
  • 67. Actividad 2.7 ◦ Una empresa de comida rápida requiere una base de datos para almacenar información de pedidos por ventanilla y por entrega a domicilio. ◦ Se quiere registrar la siguiente información: ◦ Los pedidos para consumir en el establecimiento se recogen en ventanilla y los de entrega a domicilio se recogen por teléfono ◦ Todos los pedidos van numerados correlativamente. Por cada uno de ellos se recoge la fecha y hora del pedido ◦ En los pedidos de ventanilla se registra el nº de ventanilla ◦ En los pedidos a domicilio se registra el teléfono, población y dirección ◦ Se cuenta con una serie de repartidores identificados por un número, con el nombre completo, una matrícula de moto y un turno (mañana, tarde, noche) ◦ A cada pedido a domicilio se le asigna un repartidor ◦ El establecimiento ofrece una serie de productos (hamburguesa simple, doble, alemana, coca-cola pequeña mediana, grande, ensalada...) identificados por un código y con un nombre y precio ◦ Se ofrecen también menús especiales compuestos por un conjunto de productos. Los menús están numerados, tienen un nombre de menú y un precio ◦ Un pedido puede constar de varios menús en diferentes cantidades y/o varios productos en diferentes cantidades
  • 68. Actividad 2.8 ◦ Se desea realizar el diseño de la BD en el modelo E/R para una cadena de hoteles. Las especificaciones que marcarán el diseño son: ◦ La cadena hotelera se compone de varios hoteles repartidos por todo el mundo. De cada hotel se desea saber su identificativo, el nombre, la categoría en estrellas, dirección, teléfono, nombre del director y ciudad en la que está ubicado. ◦ Las diferentes estancias de los hoteles se reparten por sus diferentes plantas (se trata de edificaciones que nunca superan las seis plantas). Las estancias no sinteresa saber el no. De planta, dimensión, el identificativo de la estancia, capacidad máxima de personas, capacidad mínima de personas, también estas se diferencian en salones y habitaciones. Se ofrecen tres tipos de habitaciones (individuales, dobles o de tipo suite). Cada salón tiene sus propias características (aforo, equipamiento,...). ◦ De las habitaciones de tipo individual resulta interesante saber el tipo de decoración que presentan, las dimensiones de la cama y si disponen de conexión a Internet. Respecto a las habitaciones dobles, el ancho de las camas y si disponen de baño o ducha. En cuanto a las suite, sus dimensiones y su equipamiento especial (TV, Internet, minibar...). ◦ Las reservas las pueden hacer tanto personas particulares como empresas. Pueden reservar tanto habitaciones como salones, tanto para un día como para un periodo más largo. Esa información deberá figurar en la BD. ◦ Al finalizar la estancia o el uso el cliente deberá abonar el importe correspondiente. En la factura se desglosará el importe por habitación/salón y los gastos de teléfono. ◦ Al hacer la reserva de un salón el cliente deberá indicar el uso que se le vaya a dar (exposición, conferencia, congreso, cursillo...). ◦ El cliente, bien particular bien empresa, deberá aportar al menos su DNI o NIF, nombre y apellidos de la persona que hace la reserva, dirección y teléfono.
  • 69. ◦ El Ministerio de Medio Ambiente y Bienestar de un país desea crear un Sistema de Información Geográfica (en siglas, S.I.G.) de acceso público a través de Internet. El sistema ofrecerá información referente a ríos, afluentes, sistemas montañosos y montes, así como delas provincias donde se localizan. ◦ De los ríos se almacenará un código de río, nombre, descripción y longitud total. Además, para cada río se almacenarán las provincias por las que pasa y la longitud del tramo del río para cada provincia bañada. ◦ De las provincias se almacenará un código administrativo de provincia, el nombre y el número de habitantes, así como la capital de la provincia y la Comunidad Autónoma la que pertenece ◦ Los ríos pueden ser afluentes de otros ríos. En este caso, para cada afluente se desea conocer de qué río lo es, en qué provincia se une a dicho río y en qué punto kilométrico lo hace (medido desde el nacimiento del río del cual es afluente). ◦ En cuanto a los sistemas montañosos, se almacenará un código identificativo, el nombre, la orientación (norte, nordeste, etc.) y la longitud, así como la altura máxima y las provincias que ocupa. ◦ Los sistemas están formados por montes de los que se almacena un código, un nombre, descripción y altura. Hay que tener en cuenta que un monte sólo pertenecerá a un sistema. De los montes también se quiere almacenar la provincia o provincias en las que se encuentra (ya que hay casos en los que un monte es compartido por varias provincias). Los montes además pueden tener un origen volcánico o de plegamiento. En el caso de que su origen sea volcánico, se desea almacenar el tipo de volcán y si es de plegamiento, se almacenará el periodo geológico de dicho plegamiento. ◦ Algunos ríos y montes son elementos geológicos monitorizados por satélite. De dichos elementos se desea almacenar la fecha en la que se comienza su monitorización y el satélite que realiza el seguimiento. Un elemento monitorizado sólo puede serlo por un satélite y un satélite podrá monitorizar varios elementos. De los satélites se desea almacenar su número identificativo, nombre y descripción.
  • 71. Modelo relacional ◦ El modelo relacional es la representación lógica del esquema entidad-relación. ◦ Su idea fundamental se basa en el concepto de tablas, que a su vez se componen de registros (las filas de una tabla) y campos (las columnas de una tabla). ◦ Una tabla es una estructura lógica que sirve para almacenar los datos de un mismo tipo. ◦ Cada entidad, tendrá una estructura (tabla) pensada y diseñada para ese tipo de entidad. Cada elemento almacenado dentro de la tabla recibe el nombre de registro, tupla o fila. ◦ Una tabla se compone de campos o columnas, que son conjuntos de datos del mismo tipo.
  • 72.
  • 73. Propiedades de la tabla ◦ Cada tabla debe tener un nombre distinto ◦ Cada atributo de la tabla toma un solo valor en cada fila ◦ Cada atributo tiene un nombre distinto en cada tabla (aunque puede coincidir en tablas distintas) ◦ Cada fila es única (no hay tuplas duplicadas) ◦ El orden de los atributos no importa ◦ El orden de las filas no importa
  • 74. Valores nulos ◦ El modelo relacional usa un valor especial: Nulo (NULL) ◦ Indica que un atributo está vacío en una determinada fila ◦ No es igual a cero, ni es un texto sin valor. Es simplemente la ausencia de valor ◦ Su gestión es primordial en el modelo relacional.
  • 75. Reducción a esquemas relacionales. ◦ Tanto el modelo E-R de bases de datos como el relacional son representaciones abstractas y lógicas de empresas del mundo real. Como los dos modelos usan principios de diseño parecidos, los diseños E-R se pueden convertir en diseños relacionales. ◦ Entidades fuertes. cliente Id_cliente Nombre Dirección teléfono Correo Cliente(id_cliente, nombre, dirección, teléfono, correo) Id_cliente Nombre Dirección Teléfono correo 233 Pedro Pérez Conocida 7711234567 hh@hh.com 234 Luis Gómez Conocida 2 7713456232 pp@hh.com
  • 76. ◦ Representación de entidades débiles socio Id_socio Nombre Dirección teléfono genera Pedido Num_pedido fecha importe Socio(id_socio, Nombre, Dirección, Teléfono) Pedido(num_pedido, id_socio, fecha, importe) Num_pedido, id_socio=clave primaria Id_socio=restricción de clave externa(clave foranea)
  • 77. ◦ Representación de conjunto de relaciones. ◦ Para las relaciones binarias varios a varios la unión de los atributos de clave primaria de los conjuntos de entidades participantes pasa a ser la clave primaria. ◦ Para los conjuntos de relaciones binarias uno a uno la clave primaria de cualquiera de los conjuntos de entidades puede escogerse como clave primaria de la relación. La elección del conjunto de entidades de entre los relacionados por el conjunto de relaciones puede realizarse de manera arbitraria. ◦ Para los conjuntos de relaciones binarias varios a uno o uno a varios la clave primaria del conjunto de entidades de la parte “varios” de la relación sirve de clave primaria. ◦ También se crean restricciones de clave externa para la relación R de la manera siguiente. Para cada conjunto de entidades Ei relacionado con el conjunto de relaciones R se crea una restricción de clave primaria de la relación R, con los atributos de R que eran atributos de clave primaria de E que hacen referencia a la clave primaria de la relación que representa Ei.
  • 78. ◦ Relación n:m Cliente genera préstamo Id_cliente Nombre Dirección teléfono Correo Id_prestamo monto fecha Cliente(id_cliente, Nombre, Dirección, Correo, Teléfono) préstamo(id_prestamo, monto, fecha) Cliente_prestamo(id_cliente, id_préstamo) id_cliente, id_préstamo=llave primaria id_cliente=restricción de clave externa con cliente (llave forenea) Id_préstamo= restricción de clave externa con préstamo (llave foranea) tipo
  • 79. ◦ Relación 1:m o m:1 persona pertenecen mascotas Id_cliente Nombre Dirección teléfono Correo Id_mas Nombre tipo Persona(id_cliente, Nombre, Dirección, Correo, teléfono) Mascotas(id_mascota, Nombre, tipo) Persona_mascota(id_cliente, id_mas) Id_mas= llave primaria Id_cliente= restricción clave externa con Persona(llave foranea) Id_mas= restricción clave externa con mascotas(llave foranea)
  • 80. ◦ Relación 1:1 persona RFC Nombre Dirección teléfono Correo genera Declaración Id_dec descripción tipo fecha Persona(RFC, Nombre, Dirección, Correo, teléfono) Declaración(id_dec, descripción, tipo) Persona_declaración(RFC, id_dec, fecha) RFC o id_dec podría ser llave primaria RFC= restricción clave externa con persona Id_dec= restricción clave externa con declaración
  • 81. Combinación de esquemas ◦ Considérese un conjunto AB de relaciones varios a uno del conjunto de entidades A al conjunto de entidades B. ◦ Supóngase, además, que la participación de A en la relación es total; es decir todas las entidades a del conjunto de entidades A deben participar en la relación AB. Entonces se pueden combinar los esquemas A y AB para formar un solo esquema consistente en la unión de los atributos de los dos esquemas.
  • 82. ◦ Como es una relación de participación social, estamos seguros que en todas las entedidades boletas participa una entidad alumno, entonces se puede combinar la relación ◦ La combinación de esquemas en relacione de 1:m, m:1, y de 1:1 se pueden hacer siempre y cuando la base de datos acepte valores nulos. alumno boletas tiene Id_alumno nombre dirección Año_nac edad Id_boleta promedio fecha Alumno: id_alumno, nombre, dirección, año_nac, edad boletas: id_boleta, promedio, fecha, id_alumno Id_alumno= restricción de llave externa con la tabla alumno bimestre
  • 83. Atributos compuestos y multivaluados ◦ Compuesto alumno Id_alumno nombre dirección Año_nac edad colonia calle Alumno(id_alumno, nombre, año_nac, edad, dirección_colonia, dirección calle)
  • 84. ◦ Multivaluados persona RFC Nombre Dirección teléfono Correo Persona(RFC, Nombre, Dirección, correo) Telefono_persona(RFC, teléfono) VIAJES PAGA
  • 85. Generalización persona es empleado cliente Persona(id_per, nombre, edad, dirección) Empleado(id_per, sueldo, cargo) Cliente(id_per, credito) Id_per, funciona como llave primaria y foreana
  • 86. Entidad recursiva empleado capacita capacitor Nuevos empleado Empleado(id_empleado, nombre, dirección, teléfono, correo). Capacita(id_empleado_capacitador, id_empleado_nuevoempleado) capacita Id_empleado_capacitador fk Id_Empleado_nuevoemplea do pk fk Hrs_capacitacion 0001 0789 10hrs 0001 0897 8hrs 0001 1233 12hrs empleado Id_empleado nombre Dirección Teléfono correo 0001 Maria Aquí 7711234567 maría@gmail.co m 0002 Alejandra Alla 7715678909 Alejandra@gamil. com 0789 Pedro Mas allá 7719873456 pedro@gmail.co m 0897 Norma Mas para allá 7712342123 norma@gmail.co m 1233 Jose Aquí 2 7756789873 jose@gamil.com
  • 87. Agregación pisos Personal_lim trabajan Id_personal Nombre Dirección teléfono nombre Cant_camas realizan tareas nombre descripción Hra_entrada Hra_salida Trabajan(nombre, id_personal, hra_salida, hra_entrada) Tareas(nombre_tarea, descripción) Realizan(nombre, id_personal, nombre_tarea)
  • 88. Actividad 2.8 ◦ Convertir a modelo relacional
  • 89. Actividad 2.9 ◦ Generar el modelo entidad-relación y e modelo relacional del siguiente problema: ◦ La empresa fabrica de geles “moco de gorila” solicitan nuestros servicios para resolver el almacenamiento de datos de un sistema de gestión de la producción. La fábrica se compone de una serie de plantas, cada una identificada por un color. De las plantas conocemos la superficie en metros cuadrados y la lista de procesos que se llevan a cabo dentro de ellas. Dentro de cada planta se encuentran las máquinas. Cada máquina es de una marca y un modelo, y se identifica por un número; este número es único a lo largo de todas las plantas. Cada máquina es operada por técnicos, debemos conocer en qué rango de fechas los técnicos estuvieron asignados a esa máquina, y además en qué turno (mañana, tarde o noche). De los técnicos conocemos su DNI, nombre, apellido y fecha de nacimiento, aparte de una serie de números telefónicos de contacto. Existen situaciones normales en las que una máquina sale de servicio y debe ser reparada, lo único que nos interesa conocer aquí es cuál otra máquina está asignada para tomar el trabajo que ella no puede realizar
  • 90. Actividad 2.10 ◦ Se quiere diseñar una BD que permita registrar las ventas de una empresa. Específicamente, esta empresa necesita llevar un control de proveedores, clientes, productos y ventas. Un proveedor se modela con clave_prov, nombre, dirección, teléfono y página web. Un cliente también se modela con clave_cliente, nombre y dirección, pero puede tener varios teléfonos de contacto. De cada dirección, nos interesa su calle, número, comuna y ciudad. De los productos, sabemos que tienen un identificador único, nombre, precio actual, stock y nombre del proveedor que los comercializa. Además se organizan en categorías, y cada producto se clasifica solamente en una de ellas, pero sin embargo una categoría clasifica varios productos. De ellas nos interesa saber su id, nombre y descripción. Sabemos que un producto es comercializado por varios proveedores, pero que un proveedor provee un solo producto. Por razones de contabilidad, se debe registrar la información de cada venta , las cuales tienen un número de factura (que es único), fecha, cliente, descuento y monto final. A su vez, sabemos que una venta se compone de varios productos, y por eso nos interesa el precio al momento de la venta del producto, la cantidad vendida y el monto total por él. Tenga en cuenta que un producto puede estar en varias ventas, pero que podemos tener un producto que no haya sido vendido. Adicionalmente, sabemos que cada cliente puede genrar varias ventas, y en una venta solamente participa un cliente.
  • 91. Presentación en tablas. Persona(RFC, Nombre, Dirección, correo) Telefono_persona(RFC, teléfono)
  • 92. Actividad 2.11 ◦ Generar el modelo entidad-relacional, el modelo relacional en tablas. ◦ Debemos diseñar un sistema para registrar las farmacias en diferentes ciudades de nuestro país. Sabemos que cada farmacia tiene un nombre (único en todo el sistema) y un domicilio. Cada farmacia se ubica en una sola ciudad, pero en una ciudad hay varias farmacias. De cada ciudad, sabemos el nombre, la provincia en la que se encuentra, la cantidad de habitantes y la superficie. Cada ciudad se identifica con el nombre y la provincia. ◦ Conocemos también que cada farmacia puede tener un propietario, y que cada propietario tiene solamente una farmacia. Tenga en cuenta que puede haber farmacias sin propietario. De los propietarios, conocemos el DNI (único), su nombre y su domicilio, compuesto por calle, número, código postal y ciudad. Cada farmacia, a su vez, vende varios medicamentos y un medicamento se vende en varias farmacias. De cada medicamento conocemos su id único, su nombre comercial y las drogas de las cuales se compone. Cada farmacia vende un medicamento a un precio determinado, que no necesariamente es el mismo en diferentes farmacias. Como último requerimiento, un medicamento puede complementar a otros medicamentos, pero sabemos que cada medicamento puede ser complementado por un solo medicamento.
  • 94. ◦ Herramienta fundamental para el buen diseño de la base de datos. ◦ Es un repositorio, manual o automatizado, que brinda información sobre los datos(metadatos) que se encuentran almacenados en la base de datos.
  • 95. Objetivos ◦ Permitir la administración de la documentación de los datos, y a los usuarios entender lo que son los datos y qué significan las definiciones y descripciones. ◦ Ayudar a controlar los recursos de datos, ya que con un diccionario de datos la información sobre ellos permanece en un solo lugar. ◦ Dar precisión sobre los datos que se manejan en un sistema, evitando así malas interpretaciones o ambigüedades.
  • 96. Construcción del diccionario de datos 1. Hay que definir los datos. Es decir su estructura y composición Notación del diccionario de datos ◦ Para iniciar una definición de dato se introduce el símbolo “=”; este se lee como “está definido por”, o “está compuesto de”. ◦ Para definir un dato completamente, la definición debe incluir: ◦ El significado del dato en el contexto de la aplicación. Esto se documenta en forma de comentario. ◦ La composición del dato, si es que está compuesto de otros elementos. ◦ Los valores que el dato puede tomar, hasta llegar a un dato elemental que ya no puede ser descompuesto.
  • 97. ◦ Nombre del dato: Para distinguir un dato de otro, los analista les asigna nombre significativos que se utilizan para tener una referencia de cada elemento. ◦ Composición el dato: especifica como se estructura un dato. ◦ Sinónimo o alias: Con frecuencia el mismo dato puede conocerse con diferentes nombres, dependiendo de quien lo utilice. El uso de los alias deben evitar confusión. Un diccionario de dato significativo incluirá todos los alias posibles para un dato. ◦ Iteración Se usa para indicar ocurrencias repetidas de un componente en un elemento compuesto. En muchas situaciones reales es preferible especificar límites inferior y superior de iteración para evitar problemas. ◦ Datos opcionales Un dato opcional es aquel que puede o no estar presente como componente de un dato compuesto. ◦ Selección: Indica que un elemento consiste de exactamente una opción de un conjunto de alternativas.
  • 98.
  • 99. ◦ Nombre= 1{carácter legal}50 iteración con limites, solo se permitirá de 1 a 50 carácter legal para nombre.
  • 100. 2. Descripción de la entidad. En la descripción de la entidad consiste en un conjunto de detalles que describen: ◦ Nombre de la entidad y una descripción breve de ella. ◦ Detalles importantes de los atributos que la componen, como: ◦ Nombre del atributo. ◦ Descripción. ◦ Tipo de dato. ◦ Longitud. ◦ Soporte de nulos. ◦ Clave primaria de la entidad. ◦ Claves externas y con que otras entidades hace relación.
  • 101. Nombre de Archivo: Clientes Descripción: archivo principal, que contiene información de los clientes Campo Tipo Tamaño Descripción Nulo Id_cliente Numérico 4 Clave del cliente no cNombre Carácter 50 Nombre del clientes no Cvcuenta Numerico 4 Clave de la cuenta No Dirección Carácter 100 Dirección del cliente si Relaciones Campos clave Cvcuenta con cuenta Id_cliente
  • 102. Ejercicio final 2.12 ◦ Diseñar un modelo E/R, relacional y diccionario de datos, con las siguientes características: ◦ En la biblioteca saber se manejan fichas de autores y libros. En la ficha de cada autor se tiene el código de autor y el nombre. De cada libro se guarda el código, título, ISBN, editorial y número de página. Un autor puede escribir varios libros, y un libro puede ser escrito por varios autores. Un libro está formado por ejemplares. Cada ejemplar tiene un código y una localización. Un libro tiene muchos ejemplares y un ejemplar debe pertenecer sólo a un libro. ◦ Los usuarios de la biblioteca tienen una credencial de socio. De cada usuario se guarda el código, nombre, dirección y teléfono. ◦ Los libros son prestados a los usuarios. Un usuario puede tomar prestados varios ejemplares, y un ejemplar puede ser prestado a varios usuarios. De cada préstamos interesa guardar la fecha de préstamo y la fecha de devolución”. .
  • 104. Sistema gestor de base de datos (SGBD)
  • 105. ◦ Definimos un Sistema Gestor de Bases de Datos o SGBD, también llamado DBMS (Data Base Management System) como una colección de datos relacionados entre sí, estructurados y organizados, y un conjunto de programas que acceden y gestionan esos datos. ◦ El objetivo primordial de un gestor es proporcionar eficiencia y seguridad a la hora de extraer o almacenar información en las BD. Los sistemas gestores de BBDD están diseñados para gestionar grandes bloques de información, que implica tanto la definición de estructuras para el almacenamiento como de mecanismos para la gestión de la información. ◦ El SGBD es una aplicación que permite a los usuarios definir, crear y mantener la BD y proporciona un acceso controlado a la misma. Debe prestar los siguientes servicios: ◦ Creación y definición de la BD: especificación de la estructura, el tipo de los datos, las restricciones y relaciones entre ellos mediante lenguajes de definición de datos. Toda esta información se almacena en el diccionario de datos, el SGBD proporcionará mecanismos para la gestión del diccionario de datos. ◦ Manipulación de los datos: realizando consultas, inserciones y actualizaciones de los mismos utilizando lenguajes de manipulación de datos. ◦ Acceso controlado a los datos de la BD: mediante mecanismos de seguridad de acceso a los usuarios. ◦ Mantener la integridad y consistencia de los datos: utilizando mecanismos para evitar que los datos sean perjudicados por cambios no autorizados. ◦ Acceso compartido a la BD: controlando la interacción entre usuarios concurrentes. ◦ Mecanismos de respaldo y recuperación: para restablecer la información en caso de fallos en el sistema.
  • 106. Arquitectura del SGBD ◦ La arquitectura del SGBD es de tres niveles para los SGBD cuyo objetivo principal era el de separar los programas de aplicación de la BD física. En esta arquitectura el esquema de una BD se define en tres niveles de abstracción distintos: ◦ Nivel interno o físico: el más cercano al almacenamiento físico, es decir, tal y como están almacenados en el ordenador. Describe la estructura física de la BD mediante un esquema interno. Este esquema se especifica con un modelo físico y describe los detalles de cómo se almacenan físicamente los datos: los archivos que contienen la información, su organización, los métodos de acceso a los registros, los tipos de registros, la longitud, los campos que los componen, etcétera. ◦ Nivel externo o de visión: es el más cercano a los usuarios, es decir, es donde se describen varios esquemas externos o vistas de usuarios. Cada esquema describe la parte de la BD que interesa a un grupo de usuarios en este nivel se representa la visión individual de un usuario o de un grupo de usuarios. ◦ Nivel conceptual: describe la estructura de toda la BD para un grupo de usuarios mediante un esquema conceptual. Este esquema describe las entidades, atributos, relaciones, operaciones de los usuarios y restricciones, ocultando los detalles de las estructuras físicas de almacenamiento. Representa la información contenida en la BD.
  • 107.
  • 108. ◦ Esta arquitectura describe los datos a tres niveles de abstracción. En realidad los únicos datos que existen están a nivel físico almacenados en discos u otros dispositivos. Los SGBD basados en esta arquitectura permiten que cada grupo de usuarios haga referencia a su propio esquema externo. ◦ El SGBD debe de transformar cualquier petición de usuario (esquema externo) a una petición expresada en términos de esquema conceptual, para finalmente ser una petición expresada en el esquema interno que se procesará sobre la BD almacenada. El proceso de transformar peticiones y resultados de un nivel a otro se denomina correspondencia o transformación, el SGBD es capaz de interpretar una solicitud de datos y realiza los siguientes pasos: ◦ El usuario solicita unos datos y crea una consulta. ◦ El SGBD verifica y acepta el esquema externo para ese usuario. ◦ Transforma la solicitud al esquema conceptual. ◦ Verifica y acepta el esquema conceptual. ◦ Transforma la solicitud al esquema físico o interno. ◦ Selecciona la o las tablas implicadas en la consulta y ejecuta la consulta. ◦ Transforma del esquema interno al conceptual, y del conceptual al externo. ◦ Finalmente, el usuario ve los datos solicitados. ◦ Para una BD específica sólo hay un esquema interno y uno conceptual, pero puede haber varios esquemas externos definidos para uno o para varios usuarios.
  • 109. ◦ Con el uso de la arquitectura a 3 niveles, surgen dos tipo de independencia de datos: ◦ Independencia lógica: la capacidad de modificar el esquema conceptual sin tener que alterar los esquemas externos ni los programas de aplicación. Se podrá modificar el esquema conceptual para ampliar la BD o para reducirla, por ejemplo, si se elimina una entidad, los esquemas externos que no se refieran a ella no se verán afectados. ◦ Independencia física: la capacidad de modificar el esquema interno sin tener que alterar ni el esquema conceptual, ni los externos. Por ejemplo, se pueden reorganizar los archivos físicos con el fin de mejorar el rendimiento de las operaciones de consulta o de actualización, o se pueden añadir nuevos archivos de datos porque los que había se han llenado. ◦ La independencia de los datos se consigue porque al modificarse el esquema en algún nivel, el esquema del nivel inmediato superior permanece sin cambios.
  • 111. Lenguajes de los SGBD ◦ Todos los SGBD ofrecen lenguajes e interfaces apropiadas para cada tipo de usuario: administradores, diseñadores, programadores de aplicaciones y usuarios finales. ◦ Los lenguajes van a permitir al administrador de la BD especificar los datos que componen la BD, su estructura, las relaciones que existen entre ellos, las reglas de integridad, los controles de acceso, las características de tipo físico y las vistas externas de los usuarios. ◦ Los lenguajes se clasifican en: ◦ Lenguaje de definición de datos (LDD o DDL): se utiliza para especificar el esquema de la BD, las vistas de los usuarios y las estructuras de almacenamiento. Es el que define el esquema conceptual y el esquema interno. Lo utilizan los diseñadores y los administradores de la BD. ◦ Lenguaje de manipulación de datos (LMD o DML): se utilizan para leer y actualizar los datos de la BD. Es el utilizado por los usuarios para realizar consultas, inserciones, eliminaciones y modificaciones. Los hay procedurales, en los que el usuario será normalmente un programador y especifica las operaciones de acceso a los datos llamando a los procedimientos necesarios. Estos lenguajes acceden a un registro y lo procesan.
  • 112. Diccionarios de datos ◦ El diccionario de datos es el lugar donde se deposita información acerca de todos los datos que forman la BD. Es una guía en la que se describe la BD y los objetos que la forman. ◦ El diccionario contiene las características lógicas de los sitios donde se almacenan los datos del sistema, identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información. ◦ En una BD relacional, el diccionario de datos proporciona información acerca de: ◦ La estructura lógica y física de la BD. ◦ Las definiciones de todos los objetos de la BD: tablas, vistas, índices, disparadores, procedimientos, funciones, etcétera. • El espacio asignado y utilizado por los objetos. ◦ Los valores por defecto de las columnas de las tablas. ◦ Información acerca de las restricciones de integridad. ◦ Los privilegios y roles otorgados a los usuarios. ◦ Auditoría de información, como los accesos a los objetos.
  • 113. ◦ Un diccionario de datos debe cumplir las siguientes características: ◦ Debe soportar las descripciones de los modelos conceptual, lógico, interno y externo de la BD. ◦ Debe estar integrado dentro del SGBD. ◦ Debe apoyar la transferencia eficiente de información al SGDB. La conexión entre los modelos interno y externo debe ser realizada en tiempo de ejecución. ◦ Debe comenzar con la reorganización de versiones de producción de la BD. Además debe reflejar los cambios en la descripción de la BD. Cualquier cambio a la descripción de programas ha de ser reflejado automáticamente en la librería de descripción de programas con la ayuda del diccionario de datos. ◦ Debe estar almacenado en un medio de almacenamiento con acceso directo para la fácil recuperación de información.
  • 114. Seguridad e integridad de datos ◦ Un SGBD proporciona los siguientes mecanismos para garantizar la seguridad e integridad de los datos: ◦ Debe garantizar la protección de los datos contra accesos no autorizados, tanto intencionados como accidentales. Debe controlar que sólo los usuarios autorizados accedan a la BD. ◦ Los SGBD ofrecen mecanismos para implantar restricciones de integridad en la BD. Estas restricciones van a proteger la BD contra daños accidentales. Los valores de los datos que se almacenan deben satisfacer ciertos tipos de restricciones de consistencia y reglas de integridad, que especificará el administrador de la BD. El SGBD puede determinar si se produce una violación de la restricción. • ◦ Proporciona herramientas y mecanismos para la planificación y realización de copias de seguridad y restauración. ◦ Debe ser capaz de recuperar la BD llevándola a un estado consistente en caso de ocurrir algún suceso que la dañe. ◦ Debe asegurar el acceso concurrente y ofrecer mecanismos para conservar la consistencia de los datos en el caso de que varios usuarios actualicen la BD de forma concurrente.
  • 115. Administrador de SGBD ◦ En los sistemas de gestión de BBDD actuales existen diferentes categorías de usuarios. Estas categorías se caracterizan porque cada una de ellas tiene una serie de privilegios o permisos sobre los objetos que forman la BD. ◦ Los usuarios de la categoría DBA (Database Administrator), cuya función es precisamente administrar la base y que tienen, el nivel más alto de privilegios. ◦ Los usuarios de la categoría RESOURCE, que pueden crear sus propios objetos y tienen acceso a los objetos para los que se les ha concedido permiso. ◦ Los usuarios del tipo CONNECT, que solamente pueden utilizar aquellos objetos para los que se les ha concedido permiso de acceso. ◦ El DBA tiene una gran responsabilidad ya que posee el máximo nivel de privilegios. Será el encargado de crear los usuarios que se conectarán a la BD. En la administración de una BD siempre hay que procurar que haya el menor número de administradores, a ser posible una sola persona.
  • 116. ◦ El objetivo principal de un DBA es garantizar que la BD cumple los fines previstos por la organización, lo que incluye una serie de tareas como: ◦ Instalar SGBD en el sistema informático. ◦ Crear las BBDD que se vayan a gestionar. ◦ Crear y mantener el esquema de la BD. ◦ Crear y mantener las cuentas de usuario de la BD. ◦ Arrancar y parar SGBD, y cargar las BBDD con las que se ha de trabajar. ◦ Colaborar con el administrador del S.O. en las tareas de ubicación, dimensionado y control de los archivos y espacios de disco ocupados por el SGBD. ◦ Colaborar en las tareas de formación de usuarios. ◦ Establecer estándares de uso, políticas de acceso y protocolos de trabajo diario para los usuarios de la BD. ◦ Suministrar la información necesaria sobre la BD a los equipos de análisis y programación de aplicaciones. ◦ Efectuar tareas de explotación como: ◦ Vigilar el trabajo diario colaborando en la información y resolución de las dudas de los usuarios de la BD. ◦ Controlar en tiempo real los accesos, tasas de uso, cargas en los servidores, anomalías, etcétera. ◦ Llegado el caso, reorganizar la BD. ◦ Efectuar las copias de seguridad periódicas de la BD. ◦ Restaurar la BD después de un incidente material a partir de las copias de seguridad. ◦ Estudiar las auditorías del sistema para detectar anomalías, intentos de violación de la seguridad, etcétera. ◦ Ajustar y optimizar la BD mediante el ajuste de sus parámetros, y con ayuda de las herramientas de monitorización y de las estadísticas del sistema. En su gestión diaria, el DBA suele utilizar una serie de herramientas de administración de la BD. Con el paso del tiempo, estas herramientas han adquirido sofisticadas prestaciones y facilitan en gran medida la realización de trabajos que, hasta no hace demasiado, requerían de arduos esfuerzos por parte de los administradores.
  • 117. Tipos de datos de un SGBD
  • 120. Tipo de dato fecha
  • 121. Sistemas gestores de base de datos relacionales mas populares
  • 122. MySql ◦ Es el sistema gestor de bases de datos relacional por excelencia. ◦ Es un SGBD multihilo y multiusuario utilizado en la gran parte de las páginas web actuales. Además es el más usado en aplicaciones creadas como software libre. ◦ Se ofrece bajo la GNU GPL aunque también es posible adquirir una licencia para empresas que quieran incorporarlo en productos privativos (Desde la compra por parte de Oracle se está orientando a este ámbito empresarial). ◦ Las principales ventajas de este Sistema Gestor de Bases de datos son: ◦ Facilidad de uso y gran rendimiento ◦ Facilidad para instalar y configurar ◦ Soporte multiplataforma ◦ Soporte SSL ◦ La principal desventaja es la escalabilidad, es decir, no trabaja de manera eficiente con bases de datos muy grandes que superan un determinado tamaño.
  • 123. MariaDB ◦ Este SGBD es una derivación de MySQL que cuenta con la mayoría de características de este e incluye varias extensiones. ◦ Nace a partir de la adquisición de MySQL por parte de Oracle para seguir la filosofía Open Source y tiene la ventaja de que es totalmente compatible con MySQL. ◦ Entre las principales características se encuentran: ◦ Aumento de motores de almacenamiento ◦ Gran escalabilidad ◦ Seguridad y rapidez en transacciones ◦ Extensiones y nuevas características relacionadas con su aplicación para Bases de datos NoSQL. ◦ No tiene desventajas muy aparentes salvo algunas pequeñas incompatibilidades en la migración de MariaDB y MySQL o pequeños atrasos en la liberación de versiones estables.
  • 124. SQLite ◦ Más que un Sistema Gestor de bases de datos como tal, SQLite es una biblioteca escrita en C que implementa un SGBD y que permite transacciones sin necesidad de un servidor ni configuraciones. ◦ Es una biblioteca utilizada en multitud de aplicaciones actuales ya que es open source y las consultas son muy eficientes. ◦ Las principales características de SQLite son: ◦ El tamaño, al tratarse de una biblioteca, es mucho menor que cualquier SGBD ◦ Reúne los cuatro criterios ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad) logrando gran estabilidad ◦ Gran portabilidad y rendimiento ◦ La gran desventaja de SQLite es la escalabilidad ya que no soporta bases de datos que sean muy grandes.
  • 125. PostgreSQL ◦ Este sistema gestor de base de datos relacional está orientado a objetos y es libre, publicado bajo la licencia BSD. ◦ Sus principales características son: ◦ Control de Concurrencias multiversión (MVCC) ◦ Flexibilidad en cuanto a lenguajes de programación ◦ Multiplataforma ◦ Dispone de una herramienta muy fácil e intuitiva para la administración de las bases de datos. ◦ Robustez, Eficiencia y Estabilidad. ◦ La principal desventaja es la lentitud para la administración de bases de datos pequeñas ya que está optimizado para gestionar grandes volúmenes de datos.
  • 126. Microsoft SQL Server ◦ Es un sistema gestor de bases de datos relacionales basado en el lenguaje Transact-SQL, capaz de poner a disposición de muchos usuarios grandes cantidades de datos de manera simultánea. ◦ Es un sistema propietario de Microsoft. Sus principales características son: ◦ Soporte exclusivo por parte de Microsoft. ◦ Escalabilidad, estabilidad y seguridad. ◦ Posibilidad de cancelar consultas. ◦ Potente entorno gráfico de administración que permite utilizar comandos DDL y DML. ◦ Aunque es nativo para Windows puede utilizarse desde hace ya un tiempo en otras plataformas como Linux o Docker. ◦ Su principal desventaja es el precio. Cuenta con un plan gratuito (Express) pero lo normal es la elección de alguno de los planes de pago disponibles (Standard, Developer, Enterprise o SQL Azure, la versión de SQL Server en la nube).
  • 127. Oracle ◦ Tradicionamente, Oracle ha sido el SGBD por excelencia para el mundo empresarial, considerado siempre como el más completo y robusto, destacando por: ◦ Soporte de transacciones. ◦ Estabilidad. ◦ Escalabilidad. ◦ Multiplataforma. ◦ La principal desventaja, al igual que SQL Server, es el coste del software ya que, aunque cuenta con una versión gratuita (Express Edition o XE), sus principales opciones son de pago.
  • 128. Actividad 3.1 ◦ Hacer una tabla comparativa de los diferentes SGBD descritos anteriormente, tomando en cuenta características, ventajas, desventajas, publico al que esta orientado, si es software libre o bajo licencia, versiones.
  • 129. Características para elegir el SGBD ◦ Sistema operativo de apoyo : se refiere a los sistemas operativos soportados. ◦ Tipo de organización: se debe tener en cuenta la filosofía de la empresa ya que muchas son conservadoras y optan por entornos mainframe tradicionales. ◦ Los puntos de referencia: se refiere al rendimiento estando ya en producción del entorno. ◦ Disponibilidad de herramientas de apoyo de software: herramientas de apoyo que necesita el DBMS. ◦ Técnicos: si existe el suficiente soporte para el DBMS. ◦ Costo de Propiedad: si los costos son accesibles para la empresa. ◦ Fecha de lanzamiento: frecuencia con la que el proveedor lanza las nuevas versiones. ◦ Clientes de referencia: se recomienda tener referencias imparciales, ósea independientes del proveedor.
  • 130. Actividad 3.2 ◦ Investigar exponer cuales son los criterios a tomar en cuenta en la elección de un sistema gestor de base de datos, de acuerdo a las determinaciones de la organización.
  • 132. ◦ La normalización de bases de datos es un proceso que consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional. Con objeto de minimizar la redundancia de datos, facilitando su gestión posterior. ◦ A esas reglas se les llama formas normales.
  • 133. Objetivo ◦ Las bases de datos relacionales se normalizan para: ◦ Minimizar la redundancia de los datos. ◦ Disminuir problemas de actualización de los datos en las tablas. ◦ Proteger la integridad de datos.
  • 134. Dependencias ◦ Sean X e Y subconjuntos de atributos de una relación. Diremos que Y tiene una dependencia funcional de X, o que X determina a Y, si cada valor de X tiene asociado siempre un único valor de Y. ◦ El hecho de que X determine a Y no quiere decir que conociendo X se pueda conocer Y, sino que en la relación indicada, cada vez que el atributo X tome un determinado valor, el atributo Y en la misma tupla siempre tendrá el mismo valor. ◦ Ejemplo: el número de cliente y su nombre, podemos afirmar que el nombre tiene una dependencia funcional del número de cliente. Es decir, cada vez que en una tupla aparezca determinado valor de número de cliente, es seguro que el nombre de cliente será siempre el mismo. La dependencia funcional se representa como X -> Y.
  • 135. ◦ El proceso de normalización se basa en las dependencias que hay entre atributos que forman las relaciones. Hay diferentes tipos de dependencias: ◦ Dependencia funcional completa: En una dependencia funcional X -> Y, cuando X es un conjunto de atributos, decimos que la dependencia funcional es completa , si sólo depende de X, y no de ningún subconjunto de X. Ejemplo DNI, nombre-> apellidos_cliente ejemplo DNI => apellidos_cliente ◦ Dependecnia funcional transitiva: Se produce cuando tenemos tres conjuntos de atributos X, Y y Z. Y depende funcionalmente de X (X->Y), Z depende funcionalmente de Y (Y->Z). Además X no depende funcionalmente de Y. Entonces ocurre que X produce una dependencia funcional transitiva sobre Z. Esto se denota como: (X-->Z) Por ejemplo si X es el atributo Número de Clase de un instituto, e Y es el atributo Código Tutor . Entonces X->Y (el tutor depende funcionalmente del número de clase). Si Z representa el Código del departamento , entonces Y->Z (el código del departamento depende funcionalmente del código tutor, cada tutor sólo puede estar en un departamento). Como no ocurre que Y->X (el código de la clase no depende funcionalmente del código tutor, un código tutor se puede corresponder con varios códigos de clase). Entonces X-->Z (el código del departamento depende transitivamente del código de la clase).
  • 136. Formas Normales ◦ Conjunto de restricciones sobre tablas que evitan problemas de redundancia y anomalías de modificación, inserción y borrado de datos.
  • 137. Primera forma normal (1FN) ◦ Una relación se encuentra en primera forma normal (1FN), si y solo si cada uno de sus atributos tienen un único valor para un registro determinado (Atributos atómicos) y no se repite ningún grupo de registros. No cumple
  • 138. Segunda forma normal (2FN) ◦ La relación se encuentra en segunda forma normal (2FN) si y solo si cumple con la 1FN y todos sus atributos no clave dependen en forma completa de la clave. Clave primaria: Codigo_Empleado y Codigo_Dpto. Si cumple con la primera forma normal
  • 139.
  • 140. Tercera forma normal ◦ Una relación se encuentra en tercera forma normal(3FN), si y solo si cumple con la 2FN y los campos no clave no dependan de otro que no sea la clave (dependencia transitiva). Legajo -> Apellido_Nombre Legajo -> Curso Legajo -> Aula Curso ->Aula
  • 142. Actividad 3.3 ◦ Normalizar el siguiente ejercicio pedido Id_pedido Fecha Id_cliente Nombre_cliente Estado Codigo_art Nombre_Art cantidad descripción 1005 24/05/2 020 288 Juan Hidalgo 2345 Crema 2 En tubo 1005 01/05/2 020 288 Juan Hidalgo 7654 Loción 3 En frasco 1005 22/05/2 020 288 Juan Hidalgo 6543 jabon 34 En barra 1006 14/09/1 9 677 Maria CDMX 9876 Labial 7 En barra 1007 12/03/2 0 566 Pedro Saltillo 2345 Crema 5 En tubo 1007 12/03/2 0 566 Pedro Saltillo 9876 Labial 3 En barra
  • 143. Actividad 3.4 ◦ Generar un modelo relacional normalizado a partir de los siguientes datos ◦ 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 ◦ 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 flet
  • 145. ◦ La forma en que se crea y se manipula la información es por medio del lenguaje SQL (Structured Query Lenguage) (lenguaje estructurado de preguntas) diseñado por IBM
  • 146. ◦ Es uno de los sistemas de gestión de bases de datos más populares, lanzado originalmente en 1995. ◦ MySQL es un sistema gestor de bases de datos que se puede encuadrar dentro de la categoría de los programas open-source, esto significa que su código esta disponible para el usuario, fueran gratuitos o no. ◦ MySQL está mantenido por una empresa, MySQL AB, con sede en Suecia. ◦ Fue desarrollada inicialmente por MySQL AB, luego adquirida por Sun Microsystems y luego posteriormente por Oracle Coporation en 2010. ◦ MySQL es un sistema de base de datos disponible gratuitamente. Sin embargo, hay varias ediciones de pago también disponibles con las que puede utilizar la funcionalidad avanzada. ◦ MySQL puede ejecutarse en múltiples plataformas como Linux, Windows, Unix y un esquema de información para definir y administrar sus metadatos. Puede instalarlo en su sistema local o incluso en el servidor.
  • 147. Características de MySQL ◦ Facilidad de gestión: Es bastante fácil de descargar y utilizar el software. ◦ Alto rendimiento: Le proporciona utilidades de carga rápida con diferente caché de memoria. ◦ Escalable: Con MySQL, puede escalar en cualquier momento. Es realmente fácil crear almacenes de datos que incluyen una enorme cantidad de datos. ◦ Compatibilidad: MySQL es compatible con todas las plataformas modernas como Windows, Linux, Unix. ◦ Rendimiento: MySQL le ofrece resultados de alto rendimiento sin perder la funcionalidad esencial. ◦ Seguridad completa de los datos: Sólo los usuarios autorizados pueden acceder a la base de datos. Completa seguridad de los datos. ◦ Bajo Costo: Es gratis de usar en algunas versiones.
  • 150.
  • 153.
  • 154.
  • 155.
  • 156.
  • 157.
  • 158.
  • 159.
  • 160.
  • 161.
  • 162.
  • 163.
  • 164.
  • 165.
  • 166.
  • 167.
  • 168. Acceso a mysql desde cmd
  • 169. Iniciando consultas ◦ Versión de mysql: ◦ SELECT VERSION(); ◦ Fecha: ◦ SELECT CURRENT_DATE; ◦ A la hora de ejecutar la consulta no hace diferencia entre mayúsculas, minúsculas o combinación de estas. ◦ Se pueden realizar consultas directamente de operaciones. ◦ Select NOW()
  • 170. ◦ Todas las consultas terminan con un ; (punto y coma)
  • 171. Creación de base de datos
  • 172. ◦ Mostrar base de datos: la palabra reservada SHOW muestra las base de datos creadas dentro de mysql. ◦ Para elegir una base de datos se utiliza la palabra reservada USE:
  • 173. ◦ Crear base de datos: una base de datos se crea utilizando la palabra reservada CREATE ◦ Nota: para poder utilizar una base de datos tenemos que utilizar USE nombrebasededatos, si no, no estamos utilizando esa base de datos creada
  • 174. ◦ Character set y collate sirve para configurar el tipo de texto que aceptara la base de datos, utf8 acepta acentos y ñ y utf8_general_ci acepta sinónimos entre palabras con y sin acentos.
  • 175. ◦ Eliminar una base de datos: para eliminar una base de datos se utiliza la palabra reservada Drop database nombredelabasededatos.
  • 176. ◦ Mostrar tablas dentro de una base de datos: para mostrar las tablas dentro de una base de datos se utiliza la palabra reservada SHOW tables;
  • 177. ◦ Crear tablas: para crear tablas se utiliza se utiliza la siguiente sintaxis CREATE TABLE nombretabla( nombrecolumna1 tipodato(extensión), nombrecolumna2 tipodato(extensión), nombrecolumna3 tipodato()) ◦ Describir una table: al crear una tabla siempre es necesario verificar, recordar o concer como se compone eso se hace a través de la palabra reservada DESCRIBE nombretabla;
  • 178. ◦ Ejemplo AUTO_INCREMENT: Comando para asiganar un numero autoincrementable cada que se ingrese un registro a esa tabla. PRIMARY KEY: comando establecido para especificar que columna o columnas son llave primaria de esa tabla. NOT NULL: Define que columnas no pueden contener valores nulos.
  • 179. ◦ Para eliminar tablas se utiliza la palabra reservada Drop, DROP TABLE nombre de la tabla;
  • 180. Insertar datos en una tabla ◦ Para insertar datos en una tabla se utiliza la siguiente instrucción: ◦ INSERT INTO nombretabla (columnas) VALUES (valores);
  • 181. Error
  • 182.
  • 183. ◦ Seleccionar los datos contenidos en la tabla: para mostrar los datos de una tabla se utiliza la siguiente sentencia: ◦ Select * from nombre_de_la_tabla;
  • 184. ◦ Otra forma de insertar datos es por medio de un archivo de texto, que contenga las instrucciones SQL, este archivo de texto no puede traer instrucciones de formato como Word o adobe, podría ser un archivo de Notepad o bloc de notas. Archivo guardado en la carpeta bin como Documentos.sql
  • 185. ◦ Otra forma de insertar datos es insertando varios a la vez a través de la misma sentencia. ◦ INSERT INTO pedido values (0, 123, 124), (0, 134, 135), (0, 145, 146);
  • 186. CONSTRAINTS ◦ El constraint se entiende por restricción y sirve para limitar el tipo de dato que puede ingresarse en una tabla. Dichas restricciones pueden especificarse cuando la tabla se crea por primera vez a través de la instrucción CREATE TABLE, o luego de crear la tabla a través de la instrucción ALTER TABLE. ◦ Los tipos comunes de restricciones incluyen las siguientes: ◦ NOT NULL ◦ UNIQUE ◦ CHECK ◦ Clave primaria ◦ Clave externa
  • 188. UNIQUE ◦ La restricción unique especifica que la columna que sea Unique no puede tener valores repetido aunque no sea llave primaria
  • 189. CHECK ◦ La restricción CHECK asegura que todos los valores en una columna cumplan ciertas condiciones.
  • 190. Primary key ◦ La restricción primary key define un atributo para diferenciar una tupla de otra.
  • 191. Foreing key (primer acercamiento) ◦ La restricción de llave forenea permite establecer una relación entre tablas, y ayuda con la integridad de base de datos, pues al insertar un dato que contiene una columan de llave forenea, se asugura que ese datos existe
  • 192. Actualización de datos ◦ MySQL permite modificar los datos insertados en las tablas. Para modificar los datos se utiliza la siguiente sentencia: ◦ UPDATE [LOW_PRIORITY] tabla SET columna=valor [,columna2=valor2...] [WHERE condición] [LIMIT n] ◦ SET: es un conjunto de columa=valor y este par me va a decir que columnas modificar y con que valor. Si se requiere modificar varias columnas estas se separan con una ,. ◦ WHERE: La clausula where nos va a especificar en base que se hace el cambio. Esta clausula es opcional pero si no se pone va a cambiar los valores de toda la tabla y no solo de algunos. ◦ LOW_PRIORITY indica que no se ejecuta la actualización hasta que ningún cliente esté leyendo la tabla. ◦ LIMIT n establece en n el número máximo de filas que se pueden actualizar.
  • 193.
  • 194. Borrar registros ◦ MySQL nos permite borrar registros de las tablas cuando sea necesario. La sentencia para eliminar datos es: ◦ DELETE [LOW_PRORITY] FROM tabla [WHERE condicion] [LIMIT n] ◦ LOW_PRIORITY indica que no se ejecuta la actualización hasta que ningún cliente esté leyendo la tabla. ◦ WHERE: La clausula where nos sirve para especificar que registros se deben de eliminar, y se eliminaran los que cumplan con esta condición. La clausula where es opcional, solo que si no se pone eliminaran todos los registros de la tabla.
  • 195.
  • 196. Cargar datos desde excel ◦ Ya con el archivo de Excel que contiene los datos, guardar el archivo como .csv
  • 197. ◦ Pasar la variable local infale a true, la variable local infale permite cargar archivos de manera local dentronde la base de datos, normalmente tiene esta variable en false, asi que hay que pasarla a true. ◦ Para consultar el valor de la variable local_infale se utiliza el comando: show global variables like 'local_infile’; ◦ Para modificar el valor de la variable se utiliza el siguiente comando: set global local_infile=true;
  • 199. Usar una table existente y seleccionar cual o crear una nueva.
  • 201.
  • 202.
  • 203. Desde cmd Para cambiar el local infile
  • 204. Limpiar tablas ◦ En MySQL se puede vaciar una tabla(limpiar, recetear) con TRUNCATE TABLE nombretabla; ◦ No hay manera de recuperar los registros.
  • 205.
  • 206. Importando un archivo sql ◦ Generar el archivo extensión sql y guardarlo en la carpeta bin
  • 207. Actividad 4.1 ◦ Pasar a sql el ejercicio 2.10, insertar 10 maquinas, 5 plantas y 20 técnicos.
  • 208. Actividad 4.2 ◦ Pasar el ejercicio 2.12 insertar 5 farmacias, 3 propietarios, 10 medicamentos, 5 medicamentos complementados por toro droga, 3 ciudades
  • 209. Consultas de la base de datos
  • 210. Select ◦ Para consultar una base de datos se utiliza la sentencia SELECY con al siguiente sintaxis: ◦ SELECT [DISTINCT | ALL | otras_opciones] lista_selección [INTO OUTFILE 'nombre_archivo' opciones_exportación] FROM tabla_origen [, tabla_origen...] [WHERE condición] [LIMIT m,n]; [GROUP BY expresión_de_agrupación] [HAVING condición_de_búsqueda] [ORDER BY expresión_order_by [ASC | DESC]] ◦ SELECCIONA registros con ciertas columnas de la lista_selección, pudiendo exportarlo a un archivo(resultado de la consulta) FROM (de la tabla) tabla_origen o mas tablas WHERE(donde cumpla) condición con un limite de n regitros, GROUP BY agrupados por expresión, HAVING tieniendo en cuenta que condición, ORDER BY y ordenala por
  • 211. Select ◦ La cláusula SELECT especifica las columnas que va a devolver la consulta. ◦ La opción ALL indica que pueden aparecer registros duplicados (valor por omisión) y DISTINCT indica lo contrario. ◦ Los valores NULL se consideran iguales para la sentencia DISTINCT. ◦ El SELECT puede funcionar con diferentes expresiones: ◦ Nombre(s) de columna: SELECT nombre, edad FROM ejemplo ◦ Constante: SELECT TO_DAYS(NOW())-TO_DAYS(nacimiento) )/365) AS edad FROM ejemplo ◦ Función SELECT COUNT(*) FROM ejemplo ◦ Combinación de las tres anteriores
  • 212. ◦ Extraer todas las tuplas de la tabla pedido Seleccionar solo el pedio y el monto de la tabla pedido
  • 213. ◦ Consultas especificas con la clausula WHERE ◦ Consultas con función:
  • 214. ◦ Consultas con constantes
  • 215. Actividad 4.3 ◦ Generar estas cosultas de la base de datos farmacias: ◦ Seleccionar todas las ciudades de la base de datos farmacia. select * from ciudades;. Select nombre_ciudad from ciudades; ◦ Contar el número de farmacias registradas y guardar el dato como num_farmacia. Select count(*) as num_farmacia from farmacias; ◦ Obtener el nombre de los propietarios con DNI mayor a 5 select nombre from propietarios where DNI>5; ◦ Mostrarme el nombre de todas las farmacias registradas. Select nombre_farmacia from farmacias;
  • 216. FORM ◦ La palabra reservada FROM especifica las tablas de donde se van a obtener los datos. ◦ Es obligatoria ara poder realizar la consulta. ◦ La sintaxis es: ◦ FROM nombre_tabla, nombre_tabla2, nombre_tabla3 ◦ Puede contener clausulas de unión como JOIN, CROSS JOIN, INNER JOIN, STRAIGHT_JOIN y LEFT JOIN ◦ Las tablas Tambien pueden tener un sobre nombre con la palabra reservada AS: ◦ FROM tablas AS ejemplo
  • 217.
  • 218.
  • 219. Clausula WHERE ◦ En la clausula WHERE estableces el filtro de las consultas. ◦ También a través de esta tabla puedes unir tablas con ayudas de las llaves foraneas y generar consultas
  • 220.
  • 221. Actividad 4.6 ◦ En la base de datos de farmacia, decir que drogas tiene un medicamento en especifico. ◦ Mostrar en que ciudades se encuentran todas las farmacias. ◦ Mostrar la lista de medicamentos que se venden en una farmacia en especifico. ◦ Mostrar el precio de un medicamento especifico en una farmacia especifica ◦ Mostrar la el nombre de la farmacia de juan.
  • 222. Clausula ORDER BY ◦ La clausula ORDER BY sirve para ordenar la información bajo un criterio. ◦ La sintaxis es la siguiente: ◦ ORDER BY expresión_de_orden [ASC | DESC] ◦ Expresión_de_orden: columna o columnas que se utilizaran como criterio para ordenar. ◦ [ASC | DES]=Ascendente o descendente.
  • 223. antes despues Ordena de manera ascendente por default, ordena primero por costo y en costos repetidos ordena por monto.
  • 224. Ordenara de manera descendente por costo y en los costos repetidos de manera ascendente por monto.
  • 225.
  • 226.
  • 227.
  • 228. Clausula GROUP BY ◦ Especifica las agrupaciones que se van a realizar en las filas de salida. ◦ La expresión GROUP BY debe de coincidir exactamente con la expresión de la lista de selección. ◦ La sintaxis es : ◦ [GROUP BY expresión_de_agrupamiento] ◦ Expresión de agrupamiento: Especifica la expresión en la que se realiza el agrupamiento o columna de agrupamiento ◦ No se puede utilizar un alias de columna en la lista de selección para especificar una columna de agrupamiento.
  • 229. La función count nos sirve para contar los elementos del agrupamiento.
  • 230. HAVING ◦ HAVING es una clausula select que se ejecuta después del where, en otras palabras reduce los resultados de la consulta devuelta por el primer SELECT. ◦ Por lo general se utiliza después de la sentencia GROUP BY y antes que ORDER BY. ◦ HAVING y WHERE no son excluyentes, simplemente HAVING funciona después de la selección de WHERE. ◦ Es mejor utilizar los criterios de selección en WHERE, ya que es mas eficiente.
  • 231.
  • 232. LIMIT ◦ La clausula nos permite delimitar la cantidad de resultados que retorna una consulta. ◦ La sintaxis es la siguiente: ◦ [LIMIT n] o [LIMIT m,n] ◦ Donde m es a partir del registro que accederemos y n es el número de registros a extraer.
  • 233.
  • 234.
  • 235. Actividad 4.7 ◦ Contar el numero de drogas por medicamento. ◦ Mostrar el nombre y la ciudad donde se encuentran las farmacias ordenando de manera des cedente por ciudad. ◦ Mencionar el nombre de las ciudades que tiene mas de dos farmacias. ◦ Mencionar el nombre de los medicamentos de una farmacia, limitado a 10 medicamentos y ordenados de manera ascendente por nombre del medicamento
  • 237. IN ◦ Efectúa una selección entre un conjunto de posibles resultados. ◦ También existe su contrario NOT IN.
  • 238.
  • 239.
  • 240. Actividad 4.8 ◦ Selecciona el nombre de las farmacias que se encuentren en el centro del país. ◦ Menciona el nombre de medicamentos que dentro de sus drogas se encuentren 3 elegidas por ustedes.
  • 242. BETWEEN y AND ◦ Es un operador de comparación que nos va a permitir seleccionar registros dentro de un rango.
  • 243.
  • 244.
  • 245. LIKE ◦ Esta operador es ocupado dentro de las cadenas buscando patrones, como por ejemplo: carácter significado % Busca por cero, uno o mas caracteres _ Representa un solo caracter
  • 246.
  • 247.
  • 248. Actividad 4.9 ◦ Selecciona el nombre de las farmacias que de las cuales sus dueños tengan nombre que este entre a-j. ◦ Menciona las drogas que componen los medicamentos que inicien con “f” y terminen con “er”
  • 250. IS NULL ◦ IS NULL es un comparador que nos va a servir para seleccionar valores nulos o para seleccionar valores no nulos, ya que esto también forma parte de la base de datos.
  • 251.
  • 252. AVG( ), MAX( ), MIN( ), COUNT( ) ◦ Las funciones de agregado AVG( ), MAX( ), MIN( ), obtienen un calculo sobre un conjunto de valores y devuelve un solo valor, excepto COUNT. ◦ Las funciones de agregado ignoran los valores nulos. ◦ La mayoría de las veces las funciones de agregado son utilizadas en conjunto con la clausula GROUP BY. ◦ Las funciones de agregado solo se puede utilizar con un select.
  • 253. ◦ AVG(expresión):Devuelve la media de un grupo definido de valores, como por ejemplo un promedio. ◦ COUNT(expresión): Número de elementos que cumplen cierta expresión. ◦ MAX(expresión): Extrae el número máximo de un conjunto de valores. ◦ MIN(expresión): Extrae el número mínimo de un conjunto de valores.
  • 254.
  • 255.
  • 256. El count(*) cuenta valores nulos y con valor count(columna) solo cuenta los que tiene valor
  • 257. SUM(), AVG() ◦ SUM(exprensión): suma la columna según un criterio. ◦ ROUND(columna, decimales): redondea al número de decimales una columna. ◦ AVG(expresión): obtiene el promedio de una columna según el criterio.
  • 258.
  • 259. ◦ MID(columna, inicio[,longitu]): Extrae un conjunto de “n” caracteres a partir del valor de “inicio” de la columna seleccionada. ◦ LENGTH(columna): Regresa la longitud de la cadena almacenada en la columna. ◦ UCASE(expresión): Regresa el valor en mayúsculas. ◦ LCASE(expresión): Regresa el valor en minúsculas. ◦ CONCAT(cadena1, cadena2...): Concatena las cadenas. ◦ CONCAT_WS(separador, cadena1, cadena2...): Concatena las cadenas y añade el separador entre ellas.
  • 260.
  • 261.