Apuntes Diseña y Administra Data Bases 2019 - Alumno
Apuntes Diseña y Administra Data Bases 2019 - Alumno
Apuntes Diseña y Administra Data Bases 2019 - Alumno
2
3.7. Cardinalidades
3.7.1. Correspondencia de cardinalidades:
3.7.2. Su representación es través de la simbología
3.8. Pasos para elaborar un diagrama Entidad - Relación
4. MODELO RELACIONAL
4.1. Características
4.2. Conceptos del modelo relacional
4.3. Claves primarias
4.4. Relaciones e interrelaciones
4.4.1. Inconvenientes
4.4.2. Solución con el modelo relacional
4.5. Transformación del mer al modelo relacional
4.6. Pasos para convertir modelo e/ r al modelo relacional
3
Al término del módulo el estudiante es capaz de manipular una base de datos en MySQL e implementar un sistema bá-
sico de control, logrando almacenar y acceder a información de forma estructurada conociendo que las bases de datos
se usan a través de los llamados sistemas de gestión de bases de datos, o SGBD, de los cuales podemos encontrar al-
gunos ejemplos como son: Oracle o Sybase entre las bases de datos de pago, y PostgreSQL, MySQL o FireBird en-
tre las libres y gratuitas.
Habitualmente los SGBD se dividen en varias partes: un servidor, que se ejecuta en un ordenador determinado, y da
acceso al espacio estructurado como una BD usando una variedad de interfaces diferentes, aparte de otra serie de ser-
vicios, como autentificación y autorización, y un cliente, que permiten al usuario o a los programas acceder a esos da-
tos. El estudiante será capaz de laborar en áreas de empresas desarrolladoras de software multimedia, sector público,
privado o educativo, etc.
Competencia 1 Competencia 2
Instrumentar estructuras relacionales de mediana comple-
Construir una base de datos sencilla, mediante su jidad, mediante el manejo de variables, la generación de
modificación, ordenación y realización de consulta, reportes, pantallas y bases de datos simples, para imple-
para desarrollar aplicaciones elementales. mentar aplicaciones más poderosas y agregar elementos
que faciliten el manejo de la base a otros usuarios
Saberes Saberes
Sentencias simples para consultas Creación de base de datos
Sentencias combinadas para consultas comple- Elementos de MYSQL
jas. Estructuras de control
I. ACTIVIDAD
En binas realiza la lectura de las competencias que se pretende alcanzarás al término del submó-
dulo. Posteriormente responde las preguntas y termina comentando tus respuestas a través de
una discusión guiada por el docente a la vez que atiendes las explicaciones y ejemplos del mismo.
4
II. ACTIVIDAD
Para iniciar con el tema de bases de datos, investiga las siguientes preguntas. Termina comen-
tando tus respuestas a través de una discusión guiada por el docente a la vez que atiendes las
explicaciones y ejemplos del mismo.
5
1. INTRODUCCIÓN A LAS BASES DE DATOS
Todas las empresas requieren almacenar información. Desde siempre lo han hecho. La información puede ser de todo
tipo. Cada elemento informativo (nombre, dirección, sueldo, etc.) es lo que se conoce como dato (en inglés data). Las
soluciones utilizadas por las empresas para almacenar los datos son diversas. Antes se almacenaban en ficheros con
cajones y carpetas y fichas. Tras la aparición de la informática estos datos se almacenan en archivos.
En los inicios de la era informática, cada programa almacenaba y utilizaba sus propios datos de forma un tanto caótica.
La ventaja de este sistema (la única ventaja), es que los procesos eran independientes por lo que la modificación de uno
no afectaba al resto. Pero tiene grandes inconvenientes:
Lógicamente la solución a este problema es hacer que todas las aplicaciones utilicen los mismos datos. Esto provoca
que los datos deban estar mucho más protegidos y controlados. Además los datos forman una estructura física y fun-
cional que es lo que se conoce como BASE DE DATOS.
6
D. Es una herramienta para recopilar y organizar información. Es un conjunto de datos relacionados entre sí y que tie-
nen un significado implícito
E. Una base de datos está compuesta por estructuras lógicas de almacenamiento denominadas TABLAS. Una tabla
es compuesta por columnas “campos” y filas “registros”. Un registro es la ocurrencia del conjunto de campos de una
tabla.
F. De esta forma una base de datos es una serie de datos relacionados que forman una estructura lógica, es decir
una estructura reconocible desde un programa informático. Esa estructura no sólo contiene los datos en sí, sino la
forma en la que se relacionan. Las bases de datos empiezan a aparecer en los años 60 y triunfan en los años seten-
ta y ochenta.
1.2.1. Datos
Es una característica de un objeto o entidad, que adquiere un valor. Por ejemplo, si se piensa en los dato asociados
a un estudiante (la entidad es el estudiante), podemos identificar datos como su nombre, edad, sexo, estado civil,
fecha de nacimiento, y muchos otros más datos, que pueden relacionarse con el estudiante. “Los Datos son hechos
conocidos que pueden registrarse y que tienen un significado implícito”. Ejemplo: Pueden constituir datos los nom-
bres, números telefónicos y direcciones de personas que conocemos.
1.2.2. Tablas
En las bases de datos, se refiere al tipo de modelado de datos, donde se guardan los datos recogidos por un pro-
grama. Su estructura general se asemeja a la
vista general de un programa de Hoja de cálcu-
lo. Se parece a una tabla de Excel. Es el ele-
mento esencial donde se crea el conjunto de
datos. Se compone por:
1.2.3. Registro
Un registro (también llamado fila o tupla) representa un objeto único de datos implícitamente estructurados en
una tabla. En términos simples, una tabla de una base de datos puede imaginarse formada
de filas y columnas o campos. Cada fila de una tabla representa un conjunto de datos relacionados, y todas las filas
de la misma tabla tienen la misma estructura.
Un registro es un conjunto de campos que contienen los datos que pertenecen a una misma repetición de entidad.
Se le asigna automáticamente un número consecutivo (número de registro) que en ocasiones es usado como índice
aunque lo normal y práctico es asignarle a cada registro un campo clave para su búsqueda. Cada registro contiene
todos los campos de la tabla que lo contiene. Los registros en una tabla corresponden a las filas.
1.2.4. Campo
Es otro componente de una tabla que contiene un ele-
mento específico de información. Por ejemplo, nombres,
apellidos, direcciones, ciudades, códigos de productos,
valores de productos, etc. En una tabla los campos co-
rresponden a las columnas. Es la unidad básica de una
base de datos. Los nombres de los campos, no pueden
empezar con espacios en blanco y caracteres especiales.
No pueden llevar puntos, ni signos de exclamación o cor-
chetes. Si pueden tener espacios en blanco en medio. La
descripción de un campo, permite aclarar información re-
ferida a los nombres del campo.
Cada campo tendrá definido un tipo de dato que limitara lo que podrá almacenarse en el (datos numéricos, alfanu-
méricos, fecha, etc.) y, también le definiremos a cada campo una longitud máxima (el "ancho" de la columna, si-
guiendo el ejemplo de una planilla); es decir, la cantidad máxima de caracteres que prevenimos almacenar en ese
campo.
1.2.5. Consultas
Es la acción a través de la cual se puede localizar informa-
ción contenida en una base de datos. Las consultas son im-
portantes porque nos permiten manipular los registros.
1.2.6. Formularios
Es un formato usado para adicionar, modificar o consultar in-
formación bajo criterios personalizados por el usuario.
1.2.7. Informes
Es usado para imprimir los registros almacenados en una
base de datos, utilizando un formato personalizado por el
usuario. Los informes permiten agrupar registros, mostrar to-
tales para los grupos o para el informe completo, etc.
A. Clave primaria. Es una columna o conjunto de columnas que identifica uniequivocamente a una fila. Es decir,
un identificador único para cada fila. No puede ser nula. En muchas ocasiones puede ser un autonumérico.
9
1.3. En donde se usan las bases de datos
Las bases de datos se usan en las pequeñas, medianas y grandes empresas u organizaciones tanto públicas como pri-
vadas y personas que realicen actividades que manejen un considerable volumen de información en sus actividades la-
borales
III. ACTIVIDAD
a) Investigar todos los datos necesarios para elaborar una nómina de más 100 empleados, de
una tienda departamental, para posteriormente elaborar un ejercicio en Excel para simular una
base de datos, así mismo elaborar su comprobante de pago.
b) Investigar todos los datos necesarios para elaborar una lista de calificaciones con 50 alumnos,
(nombre completo, 4 calificaciones, determinar el promedio de 3 parciales)
IV. ACTIVIDAD
En binas realiza la lectura de la 1° unidad, junto con tus compañeros analicen y comenten sus du-
das e inquietudes, elabora una síntesis de 2 hojas como mínimo (abarcando todos los temas).
Termina comentando tus respuestas a través de una discusión guiada por el docente a la vez que
atiendes las explicaciones y ejemplos del mismo.
10
2. CONCEPTOS GENERALES DE BASES DE DATOS
2.1. Objetivos
A. Mantener datos precisos y consistentes.
B. Asegurar que todos los datos requeridos para las aplicaciones actuales y futuras estén disponibles.
C. Permitir que la base de datos evolucione.
Desventajas:
A. Instalación costosa. El control y administración de bases de datos requiere de un software y hardware poderoso.
B. Requiere personal calificado. Debido a la dificultad de manejo de este tipo de sistemas.
C. Implantación larga y difícil. Debido a los puntos anteriores. La adaptación del personal es mucho más complicada
y lleva bastante tiempo.
D. Ausencia de estándares reales. Lo cual significa una excesiva dependencia hacia los sistemas comerciales del
mercado. Aunque hay una buena parte de esta tecnología aceptada como estándar de hecho.
E. Vulnerable a los fallos: El hecho de que todo esté centralizado hace que el sistema sea más vulnerable ante los
fallos que puedan producirse. Es por ello que deben tenerse copias de seguridad.
La dependencia es de 1:M del tipo padre/hijo. Un hijo no puede tener más de un padre, pero un padre varios hijos.
Pero tiene la desventaja de no representar eficientemente la redundancia de datos. A continuación aquí está un
ejemplo de una base de datos de este tipo.
11
B. Bases de datos en red. También en desuso, en una base de datos
en red se utiliza la estructura de grafo/red, como en el caso anterior
los distintos objetos están relacionados entre sí mediante relaciones
del tipo 1:M pero en este caso un objeto puede estar relacionado co-
mo hijo con varios elementos que serán sus padres. En este caso las
relaciones que se crean se denominan SET y el equivalente al padre
se denomina PROPIETARIO (OWNER) y el equivalente al hijo se denomina MIEMBRO (MEMBER).
Está compuesta por una colección de tablas, cada una con campos
en común que los relacionan entre si formando un conjunto de ellos y
no hay relevancia en la manera en que se almacenen, este modelo es el más utilizado en la actualidad para admi-
nistrar bases de datos de una manera dinámica y eficiente, puede ser imaginada e interpretada fácilmente, los datos
pueden ser recuperados y manipulados mediante consultas con lenguaje SQL (Structured Query Language) creado
para este propósito.
D. Bases de datos orientadas a objetos. Es un modelo más reciente, trata de almacenar en la base de datos los ob-
jetos completos (estado y comportamiento). La información que contienen se organiza en atributos y el comporta-
miento en operaciones. Las orientadas a objetos que son las que se utilizan en los lenguajes de programación.
E. Bases de datos distribuidas. Las distribuidas que son bases de datos que se orga-
nizan estratégicamente en distintos puntos de una red para ser accesadas y después
reunir los datos, son muy utilizadas en la actualidad para organizaciones descentrali-
zadas, como dependencias de gobierno, tiendas comerciales entre otros.
12
F. Bases de datos mutidimensionales. En una base de datos multidimensional los datos se almacenan en tablas de
múltiples dimensiones en vez de tablas bidimensionales como las del modelo relacional. Se utilizan para grandes
volúmenes de información. Las multidimensionales que son para análisis de datos y métrica de bases de datos
A. Estructura lógica. Indica la composición y distribución teórica de la base de datos. La estructura lógica sirve para
que las aplicaciones puedan utilizar los elementos de la base de datos sin saber realmente cómo se están almace-
nando. Es una estructura que permite idealizar a la base de datos. Sus elementos son objetos, entidades, nodos, re-
laciones, enlaces,... que realmente no tienen presencia real en la física del sistema. Por ello para acceder a los da-
tos tiene que haber una posibilidad de traducir la estructura lógica en la estructura física.
B. Estructura física. Es la estructura de los datos tan cual se almacenan en las unidades de disco. La corresponden-
cia entre la estructura lógica y la física se almacena en la base de datos (en los metadatos).
13
Por lo tanto, conviene descomponer el proceso del diseño en varias etapas; en cada una se obtiene un resultado inter-
medio que sirve de punto de partida de la etapa siguiente, y en la última
etapa se obtiene el resultado deseado. De este modo no hace falta resol-
ver de golpe toda la problemática que plantea el diseño, sino que en cada
etapa se afronta un solo tipo de problema. Así se divide el problema y, al
mismo tiempo, se simplifica el proceso. Descompondremos el diseño de
bases de datos en cuatro etapas:
B. Fase II: Etapa del diseño conceptual: En esta etapa se obtiene una estructura de la información de la futura BD
independiente de la tecnología que hay que emplear. No se tiene en cuenta todavía qué tipo de base de datos se
utilizará (relacional, orientada a objetos, jerárquica, red, etc.); en consecuencia, tampoco se tiene en cuenta con qué
SGBD ni con qué lenguaje concreto se implementará la base de datos. Así pues, la etapa del diseño conceptual nos
permite concentrarnos únicamente en la problemática de la estructuración de la información, sin tener que preocu-
parnos al mismo tiempo de resolver cuestiones tecnológicas. El resultado de la etapa del diseño conceptual se ex-
presa mediante algún modelo de datos de alto nivel. Uno de los más empleados es el modelo entidad-interrelación
(entity-relationship), que abreviaremos con la sigla ER.
Modelo entidad-relación
Durante la fase conceptual, los diseñadores de bases de datos suelen crear lo que se conoce como el modelo enti-
dad-relación, o diagrama, para ayudarles a visualizar la base de datos. Este diagrama identifica cada entidad, cono-
cida también como relación o tabla en la base de datos, así como las relaciones entre las entidades.
14
C. Fase III: Etapa del diseño lógico: El objetivo del diseño lógico es transformar el esquema genérico y conceptual en
un modelo de datos determinado para un sistema de gestión de bases de datos determinado. El diseño lógico pue-
de realizarse manualmente, o automáticamente en algunos casos, a través del uso de herramientas CASE (ingenie-
ría de software asistida por computadora) desde un diseño conceptual. En esta etapa se parte del resultado del di-
seño conceptual, que se transforma de forma que se adapte a la tecnología que se debe emplear. Más concreta-
mente, es preciso que se ajuste al modelo del SGBD con el que se desea implementar la base de datos. Por ejem-
plo, si se trata de un SGBD relacional, esta etapa obtendrá un conjunto de relaciones con sus atributos, claves pri-
marias y claves foráneas.
esquema relacional
persona (identificación, nombres, apellidos, edad )
cuenta (persona_id*, numero_cuenta)
Representación gráfica.
Más adelante explicaremos cómo se hace el diseño lógico de una base de datos relacional, tomando como punto de
partida un diseño conceptual expresado con el modelo ER; es decir, veremos cómo se puede transformar un mode-
lo ER en un modelo relacional.
D. Fase IV: Etapa del diseño físico. En esta etapa se transforma la estructura obtenida en la etapa del diseño ló-
gico, con el objetivo de conseguir una mayor eficiencia; además, se completa con aspectos de implementación físi-
ca que dependerán del SGBD. Si se trata de una base de datos relacional, la transformación de la estructura puede
consistir en lo siguiente: tener almacenada alguna relación que sea la combinación de varias relaciones que se han
obtenido en la etapa del diseño lógico, a partir una relación en varias, añadir algún atributo calculable a una rela-
ción, etc. En la etapa del diseño físico –con el objetivo de conseguir un buen rendimiento de la base de datos–, se
deben tener en cuenta las características de los procesos que consultan y actualizan a la base de datos, también es
necesario considerar los volúmenes que se espera tener de los diferentes datos que se quieren almacenar. El Dise-
ño Físico de la Base de Datos es la última etapa del proceso de diseño, en el cual, teniendo presentes los requisitos
de los procesos, características del SGBD, del SO y el hardware, se pretenden los siguientes objetivos:
Un Modelo de Datos se utiliza para diseñar la estructura de una Base de Datos mediante una colección de herramientas
conceptuales que permiten describir los datos, las entidades que intervienen, las relaciones entre las diferentes entida-
des u objetos y las restricciones de consistencia.
15
En el caso de los modelos de datos, lo que intentan reproducir
es una información real que deseamos almacenar en un siste-
ma informático. Se denomina esquema a una descripción es-
pecífica en términos de un modelo de datos. El conjunto de da-
tos representados por el esquema forma la base de datos.
Los modelos de datos contienen también un conjunto de operaciones básicas para la realización de consultas (lecturas)
y actualizaciones de datos. Además, los modelos de datos más modernos incluyen mecanismos para especificar accio-
nes compensatorias o adicionales que se deben llevar a cabo ante las acciones habituales que se realizan sobre la base
de datos.
Un modelo de datos proporciona un conjunto de conceptos, reglas y convenciones que nos permiten especificar y mani-
pular los datos que queremos almacenar en la BD. Todo modelo de datos se compone de una parte estática y una parte
dinámica.
Un modelo de datos es una colección de herramientas conceptuales que se emplean para especificar datos, las relacio-
nes entre ellos, la semántica asociada y las restricciones de integridad. Un modelo de datos está orientado a describir
una Base de Datos. Típicamente un modelo de datos permite describir:
A. Las estructuras de datos de la base: El tipo de los datos que hay en la base y la forma en que se relacionan.
B. Las restricciones de integridad: Un conjunto de condiciones que deben cumplir los datos para reflejar correcta-
mente la realidad deseada.
C. Operaciones de manipulación de los datos: típicamente, operaciones de agregado, borrado, modificación y recu-
peración de los datos de la base.
C. Modelo relacional. Éste es el modelo utilizado en la actualidad para modelar problemas reales y administrar
datos dinámicamente. Tras ser postulados sus fundamentos en 1970
por Edgar Frank Codd, de los laboratorios IBM en San José (California),
no tardó en consolidarse como un nuevo paradigma en los modelos de
base de datos. Su idea fundamental es el uso de "relaciones". Estas re-
laciones podrían considerarse en forma lógica como conjuntos de datos
llamados "tuplas". Pese a que ésta es la teoría de las bases de datos
relacionales creadas por Codd, la mayoría de las veces se conceptuali-
za de una manera más fácil de imaginar. Esto es pensando en cada re-
lación como si fuese una tabla que está compuesta por registros (las filas de una tabla), que representarían las
tuplas, y campos (las columnas de una tabla).
17
D. Modelo orientado a objetos. Este modelo define una base de datos como una
colección de objetos, o elementos de software reutilizables, con funciones y mé-
todos relacionados. El modelo de base de datos orientado a objetos es el mejor
modelo conocido de base de datos postrelacional ya que incorpora tablas, pero
no se limita a ellas. A dichos modelos también se les conoce como modelos de
base de datos híbridos. Hay varios tipos de bases de datos orientadas a objetos:
2.9.3. Modelo de datos físico (Sistema manejador de bases de datos (SMBD – SGBD)
Son programas que permiten la creación, modificación y actualización de la base de Datos, la recuperación de datos
y la generación de reportes. Ejemplo: Mysql, PostgreSql, Microsoft SQL Server, Microsoft Access, Oracle, Informix,
Paradox, DB2. Los sistemas manejadores de bases de datos son un tipo de software muy específico, dedicado a
servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan.
V. ACTIVIDAD
En binas realiza la lectura de la 2° unidad, junto con tus compañeros analicen y comenten sus dudas e in-
quietudes y responde siguientes las preguntas.
a) Cuáles son los objetivos de una base de datos d) Que es un modelo de datos
b) Menciona 5 características e) Explica la clasificación de los modelos de datos
c) Describe 3 ventajas y 3 desventajas f) Explica las 4 fases del diseño de una BD
VI. ACTIVIDAD
Posteriormente elabora una síntesis de 2 hojas como mínimo (abarcando todos los temas). Termina co-
mentando tus respuestas a través de una discusión guiada por el docente a la vez que atiendes las expli-
caciones y ejemplos del mismo.
18
3. MODELO ENTIDAD / RELACIÓN
Fue ideado por Peter Chen en los años 1976 y 1977 a través de dos artículos. Se trata de un modelo que sirve para
crear esquemas conceptuales de bases de datos. De hecho es prácticamente un estándar para crear esta tarea. Se le
llama modelo E/R e incluso E/I (Entidad / Interrelación). Sus siglas más populares son las E/R por qué sirven para el in-
glés y el español. Inicialmente (en la propuesta de Chen) sólo se incluían los conceptos de entidad, relación y atributos.
Después se añadieron otras propuestas (atributos compuestos, generalizaciones,...) que forman el llamado modelo en-
tidad relación extendido (se conoce con las siglas ERE). El modelo E-R se basa en una percepción del mundo real, la
cual está formada por OBJETOS BÁSICOS llamados entidades y las relaciones entre estos objetos así como las ca-
racterísticas de estos objetos llamados atributos.
3.2. Entidad
Se trata de cualquier objeto u elemento (real o abstracto) acerca del
cual se pueda almacenar información en la base de datos. Ejemplos de
entidades:
19
Está descrita y se representa por sus características o atributos. Por ejemplo, la entidad Persona las características:
Nombre, Apellido, Género, Estatura, Peso, Fecha de nacimiento, etc.... Una entidad no es un propiedad concreta sino
un objeto que puede poseer múltiples propiedades (atributos).
En el modelo entidad-relación los conjuntos de entidades se representan con un rectángulo dentro del cual se escribe el
nombre de la entidad. Las entidades son el fundamento del modelo entidad relación. Podemos adoptar como definición
de entidad cualquier cosa o parte del mundo que es distinguible del resto.
Por ejemplo, en un sistema bancario, las personas y las cuentas bancarias se podrían interpretar como entidades. Las
entidades pueden representar entes concretos, como una persona o un avión, o abstractas, como por ejemplo un prés-
tamo o una reserva.
A. Las entidades que poseen las mismas propiedades forman conjuntos de entidades.
B. Ejemplos de conjuntos de entidades son los conjuntos: personas, facturas, coches,...
Cuando una entidad participa en una relación puede adquirir un papel fuerte o débil.
A. Fuertes o Regulares. Una entidad fuerte (también conocida como entidad regular) es aquella que sí puede ser
identificada unívocamente. Son las entidades normales que tienen existencia por sí mismas sin depender de otras.
Su representación gráfica es la representación anterior. En los casos en que se requiera, se puede dar que una en-
tidad fuerte "preste" algunos de sus atributos a una entidad débil para que esta última se pueda identificar.
B. Débiles. Una entidad débil es aquella que no puede existir sin participar en la rela-
ción; es decir, aquella que no puede ser unívocamente identificada solamente por sus
atributos. Su existencia depende de otras. Por ejemplo la entidad tarea laboral sólo
podrá tener existencia si existe la entidad trabajo. Las entidades débiles se presentan se representan- mediante
un doble rectángulo; es decir, un rectángulo con doble línea.
Estas pueden ser muchas, y el diseñador solo utiliza o implementa las que considere más relevantes. Los atributos son
las propiedades que describen a cada entidad en un conjunto de entidades. En un conjunto de entidades, cada entidad
tiene valores específicos asignados para cada uno de sus atributos, de esta forma, es posible su identificación unívoca.
Los Atributos son características o propiedades asociadas a la entidad que toman valor en una instancia particular.
Ejemplo: nombre, edad, teléfono.
3.5. Relación
Es la asociación que existe entre dos o más entidades. Describe cierta
dependencia entre entidades o permite la asociación entre entidades.
Se representan mediante un rombo etiquetado en su interior con un ver-
bo. Este rombo se debe unir mediante líneas con las entidades (rectán-
gulos) que relaciona, para así saber cuál es la relación que lleva cada
uno. Por ejemplo, en el caso de que tengamos una entidad personas y
otra entidad trabajos. Ambas se realizan ya que las personas trabajan y
los trabajos son realizados por personas:
Una relación tiene sentido al expresar las entidades que relaciona. En el ejemplo anterior, podemos decir que un hués-
ped (entidad), se aloja (relación) en una habitación (entidad). La cantidad de entidades en una relación determina el
grado de la relación.
21
Relación binaria Relación ternaria
Para que un atributo sea considerado un buen identificador tiene que cumplir:
A. Deben distinguir a cada ejemplar teniendo en cuenta las entidades que utiliza el modelo. No tiene que ser un identi-
ficador absoluto.
B. Todos los ejemplares de una entidad deben tener el mismo identificador.
C. Cuando un atributo es importante aun cuando no tenga una entidad concreta asociada, entonces se trata de una en-
tidad y no de un atributo
3.7. Cardinalidades
Existen 4 tipos de relaciones que pueden establecerse entre entidades, las cuales establecen con cuantas entidades
de tipo B se puede relacionar una entidad de tipo A:
A estos tipos de relaciones, también se les conoce como Cardinalidad. Indican el número de relaciones en las que una
entidad puede aparecer. Se anota en términos de:
22
A. Cardinalidad Mínima. Indica el número mínimo de asociaciones en las que aparecerá cada ejemplar de la entidad
(el valor que se anota es de cero o uno)
B. Cardinalidad Máxima. Indica el número máximo de relaciones en las que puede aparecer cada ejemplar de la enti-
dad (puede ser uno o muchos)
A. Uno a Uno: Una entidad de A se relaciona únicamente con una entidad en B y viceversa (ejemplo relación
vehículo - matrícula: cada vehículo tiene una única matrícula, y cada matrícula está asociada a un único vehícu-
lo).
CONTRIBUYENTE – RFC
AUTOMÓVIL – EMPLEADO
ALUMNO – No. EXPEDIENTE
PERSONA – CURP
PERSONA – HUELLA DIGITAL
B. Uno a varios: Una entidad en A se relaciona con cero o muchas entidades en B. Pero una entidad en B se re-
laciona con una única entidad en A (ejemplo vendedor - ventas).
CLIENTE – CUENTAS EN UN
BANCO
PADRE – HIJOS
CAMIÓN – PASAJEROS
ZOOLÓGICO – ANIMALES
ÁRBOL – HOJAS
23
C. Varios a Uno: Una entidad en A se relaciona exclusivamente con una entidad en B. Pero una entidad en B se
puede relacionar con 0 o muchas entida-
des en A (ejemplo empleado-centro de
trabajo).
EMPLEADOS – EMPRESA
ALUMNOS – ESCUELA
FELIGRESES – PARROQUIA
CLIENTES – BANCO
CIUDADANOS – CIUDAD
D. Varios a Varios: Una entidad en A se puede relacionar con 0 o muchas entidades en B y viceversa (ejemplo
asociaciones- ciudadanos, donde muchos ciudadanos pueden pertenecer a una misma asociación, y cada ciu-
dadano puede pertenecer a muchas
asociaciones distintas).
PROYECTOS – ARQUITECTOS
ESTUDIANTES – MATERIAS
PROFESORES – ESCUELAS
ENFERMOS – SÍNTOMAS
PROVEEDORES – PRODUCTOS
24
3.7.2. Su representación es través de la simbología:
VII. ACTIVIDAD
Elabora una síntesis de 2 hojas como mínimo (abarcando todos los temas). Termina co-
mentando dudas a través de una discusión guiada por el docente a la vez que atiendes
las explicaciones y ejemplos del mismo.
VIII. ACTIVIDAD
Bien, ahora sí, ya estás listo y preparado para realizar tus primeros ejercicios, en este blo-
que, solamente determinaras cuales son las entidades, llaves primarias, relaciones y
las cardinalidades posibles que se puedan dar. Te deseo el mejor de los
!!!!!! ÉXITOS ¡¡¡¡¡¡
Termina comentando tus respuestas a través de una discusión guiada por el docente a la
vez que atiendes las explicaciones y ejemplos del mismo.
25
OJO
TODOS LOS EJERCICIOS SE DEBERÁN REALIZAR A LÁPIZ OBSCURO
A. Horarios de clases
El centro bachillerato tecnológico, necesita sistematizar el proceso de asignación de materias, grupos y salones para el
próximo semestre. Utilizando un gestor de bases de datos:
Por lo que se requiere saber: de las carreras su clave y nombre; para los grupos clave, nombre, turno; del alumno expe-
diente, nombre y clave del grupo; de la asignatura clave, nombre; en la carga académica clave del grupo, clave de la
asignatura, y clava del profesor; del salón; clave, nombre; de los profesores: clave, nombre; y los horarios clave del gru-
po, clave del salón, día, hora inicio y hora fin
Un grupo solo pertenece a una carrera; un grupo tiene un horario, un grupo tiene muchos alumnos. Una carrera puede
tener varios grupos. Los horarios tienen varios grupos. Los alumnos están en un grupo. Los salones tienen varios gru-
pos, así como un grupo puede utilizar varios salones. A los profesores se les asignan varios grupos, y a los grupos se
les asignan varios profesores, también a varios profesores tienen varias asignaturas. Las asignaturas tienen varios pro-
fesores, así como las asignaturas tienen varios grupos.
Entidades: Relaciones:
Una empresa de venta de productos desea sistematizar las compras y suministros de sus productos:
se necesita conocer los datos personales de los clientes (nombre, rfc, dirección, fecha de alta, antigüedad).
de cada producto tiene un nombre, existencias y un código, así como un precio.
de los proveedores se desea conocer el rfc, nombre y dirección.
Un cliente puede comprar varios productos a la empresa, y un mismo producto puede ser comprado por varios
clientes. Los productos son suministrados por diferentes proveedores.
Se debe tener en cuenta que un producto sólo puede ser suministrado por un proveedor, y que un proveedor puede
suministrar diferentes productos.
Se debe tomar en cuenta que también se desea saber la fecha de compra.
Entidades: Relaciones:
C. Empresa de transportes
Los encargados de llevar los paquetes son los camioneros, de los que se quiere guardar el rfc, nombre, teléfono, di-
rección y salario.
26
De los paquetes transportados interesa conocer el código, descripción, destinatario y dirección del destinatario. De
los estados a los que llegan los paquetes interesa guardar el código de estado y el nombre del estado.
De los camiones que llevan los camioneros, interesa conocer la matrícula, modelo y capacidad.
Un camionero distribuye muchos paquetes, y un paquete sólo puede ser distribuido por un camionero.
A un estado pueden llegar varios paquetes. Sin embargo, un paquete sólo puede llegar a un estado.
Un camionero puede conducir diferentes camiones en fechas diferentes. Un camión puede ser conducido por varios
camioneros también en diferentes fechas.
Entidades: Relaciones:
D. Clínica medica
La clínica “SAN PATRICIO” necesita llevar un control informatizado de su gestión de pacientes y médicos.
De cada paciente se desea guardar el código, nombre, apellidos, dirección, población, provincia, código postal, teléfono
y fecha de nacimiento. De cada médico se desea guardar el código, nombre, apellidos, teléfono y especialidad. Se
desea llevar el control de cada uno de los ingresos que el paciente hace en el hospital.
Cada ingreso que realiza el paciente queda registrado en la base de datos. De cada ingreso se guarda el código de in-
greso (que se incrementará automáticamente cada vez que el paciente realice un ingreso), el número de habitación y
cama en la que el paciente realiza el ingreso y la fecha de ingreso.
Un médico puede atender varios ingresos, pero el ingreso de un paciente solo puede ser atendido por un único médico.
Un paciente puede realizar varios ingresos en el hospital”.
Entidades: Relaciones:
27
IX. ACTIVIDAD
Ahora bien, realiza tus primeros esquemas de entidad – relación.
Termina comentando tus respuestas a través de una discusión guiada por el docente a la
vez que atiendes las explicaciones y ejemplos del mismo.
Se desea informatizar la gestión de un centro de enseñanza para llevar el control de los alumnos matriculados y los pro-
fesores que imparten clases en ese centro. De cada profesor y cada alumno se desea recoger el nombre, apellidos, di-
rección, población, curp, fecha de nacimiento, código postal y teléfono.
Los alumnos se matriculan en una o más asignaturas, y de ellas se desea almacenar el código de asignatura, nombre y
número de horas que se imparten a la semana.
Un profesor del centro puede impartir varias asignaturas, pero una asignatura sólo es impartida por un único profesor.
De cada una de las asignaturas se desea almacenar también la nota que saca el alumno y las incidencias que puedan
darse con él. Además, se desea llevar un control de los cursos que se imparten en el centro de enseñanza. De cada
curso se guardará el código y el nombre. En un curso se imparten varias asignaturas, y una asignatura sólo puede ser
impartida en un único curso.
Las asignaturas se imparten en diferentes aulas del centro. De cada aula se quiere almacenar el código, No. de edificio,
en el que se encuentra y número de pupitres de que dispone. Una asignatura se puede dar en diferentes aulas, y en un
aula se pueden impartir varias asignaturas. Se desea llevar un registro de las asignaturas que se imparten en cada aula.
Para ello se anotará el mes, día y hora en el que se imparten cada una de las asignaturas en las distintas aulas.
La dirección del centro también designa a varios profesores como tutores en cada uno de los cursos. Un profesor es tu-
tor tan sólo de un curso. Un curso tiene un único tutor. Se habrá de tener en cuenta que puede que haya profesores que
no sean tutores de ningún curso”.
Entidades: Relaciones:
Una cadena de agencias de viajes desea disponer de los Datos que contemple información relativa al hospedaje y vue-
los de los turistas que la contratan. Los datos a tener en cuenta son:
A. La cadena de agencias está compuesta por un conjunto de sucursales. Cada sucursal viene definida por el código
de sucursal, dirección y teléfono.
B. La cadena tiene contratados una serie de hoteles de forma exclusiva. Cada hotel estará definido por el código de
hotel, nombre, dirección, ciudad, teléfono y número de plazas disponibles.
C. De igual forma, la cadena tiene contratados una serie de vuelos regulares de forma exclusiva. Cada vuelo viene
definido por el número de vuelo, fecha y hora, origen y destino, plazas totales y plazas de clase turista de las que
dispone.
D. La información que se desea almacenar por cada turista es el código de turista, nombre y apellidos, dirección y te-
léfono.
28
Por otra parte, hay que tener en cuenta la siguiente información:
A. A la cadena de agencias le interesa conocer que sucursal ha contratado el turista.
B. A la hora de viajar el turista puede elegir cualquiera de los vuelos que ofrece la cadena, y en que clase (turista o
primera) desea viajar.
C. Un turista únicamente puede contratar una sucursal, pero una sucursal puede tener muchos turista;
D. Un turista solo toma un vuelo, y en vuelo pueden viajar muchos turistas.
E. De igual forma un turista se hospeda en un hotel, pero el en hotel se hospedan muchos turistas
F. De igual manera, el turista se puede hospedar en cualquiera de los hoteles que ofrece la cadena, y elegir el régimen
de hospedaje (media pensión o pensión completa). Siendo significativa la fecha de llegada y de partida.
G.
Entidades: Relaciones:
Se desea diseñar una base de datos para almacenar y gestionar la información empleada por una empresa dedicada a
la venta de automóviles, teniendo en cuenta los siguientes aspectos: La empresa dispone de una serie de coches para
su venta. Se necesita conocer la matrícula, marca y modelo, el color y el precio de venta de cada coche. Los datos que
interesa conocer de cada cliente son el rfc, nombre, dirección, ciudad y número de teléfono: además, los clientes se di-
ferencian por un código interno de la empresa que se incrementa automáticamente cuando un cliente se da de alta en
ella. Un cliente puede comprar tantos coches como desee a la empresa. Un coche determinado solo puede ser compra-
do por un único cliente. El concesionario también se encarga de llevar a cabo las revisiones que se realizan a cada co-
che. Cada revisión tiene asociado un código que se incrementa automáticamente por cada revisión que se haga. De ca-
da revisión se desea saber si se ha hecho cambio de filtro, si se ha hecho cambio de aceite, si se ha hecho cambio de
frenos u otros. Los coches pueden pasar varias revisiones en el concesionario.
Entidades: Relaciones:
Ejercicio 4. Biblioteca
Crear un diseño entidad relación que permita gestionar los datos de una biblioteca de modo que:
“En la biblioteca del centro 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 pertenece sólo a un libro.
Los usuarios de la biblioteca del centro también disponen de ficha en la biblioteca y sacan ejemplares de ella. De cada
usuario se guarda el código, nombre, dirección y teléfono. Los ejemplares 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 in-
teresa guardar la fecha de préstamo y la fecha de devolución”.
Entidades: Relaciones:
29
Ejercicio 5. Academia de clases
Crear un diseño entidad relación que permita controlar el sistema de información de una academia de cursos siguiendo
estas premisas:
A. Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el CURP, direc-
ción, nombre, teléfono y la edad
B. Además de los que trabajan necesitamos saber el RFC, nombre, teléfono y dirección de la empresa en la que traba-
jan
C. Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el programa del
curso, las horas de duración del mismo, el título y cada vez que se imparte se anotará las fechas de inicio y fin del
curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por
curso) que son: curp, nombre, apellidos, dirección y teléfono
D. Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna
puede realizar varios cursos y en cada cual obtendrá una nota.
Entidades: Relaciones:
La liga de fútbol profesional, presidida por Don Ángel María Villar, ha decidido informatizar sus instalaciones creando
una base de datos para guardar la información de los partidos que se juegan en la liga. Se desea guardar en primer lu-
gar los datos de los jugadores. De cada jugador se quiere guardar el nombre, fecha de nacimiento y posición en la que
juega (portero, defensa, centrocampista…). Cada jugador tiene un código de jugador que lo identifica de manera única.
De cada uno de los equipos de la liga es necesario registrar el nombre del equipo, nombre del estadio en el que juega,
el aforo que tiene, el año de fundación del equipo y la ciudad de la que es el equipo.
Cada equipo también tiene un código que lo identifica de manera única. Un jugador solo puede pertenecer a un único
equipo. De cada partido que los equipos de la liga juegan hay que registrar la fecha en la que se juega el partido, los go-
les que ha metido el equipo de casa y los goles que ha metido el equipo de fuera. Cada partido tendrá un código numé-
rico para identificar el partido. También se quiere llevar un recuento de los goles que hay en cada partido. Se quiere al-
macenar el minuto en el que se realizar el gol y la descripción del gol.
Un partido tiene varios goles y un jugador puede meter varios goles en un partido. Por último se quiere almacenar, en la
base de datos, los datos de los presidentes de los equipos de fútbol (curp, nombre, apellidos, fecha de nacimiento,
equipo del que es presidente y año en el que fue elegido presidente). Un equipo de fútbol tan sólo puede tener un presi-
dente, y una persona sólo puede ser presidente de un equipo de la liga.
Entidades: Relaciones:
30
X. ACTIVIDAD
Ahora bien, realiza los siguientes esquemas de entidad – relación.
Termina comentando tus respuestas a través de una discusión guiada por el docente a la
vez que atiendes las explicaciones y ejemplos del mismo.
“Una empresa necesita organizar la siguiente información referente a su organización interna. La empresa está organi-
zada en una serie de departamentos. Cada departamento tiene un código, nombre y presupuesto anual. Cada departa-
mento está ubicado en un centro de trabajo. La información que se desea guardar del centro de trabajo es el código de
centro, nombre, población y dirección del centro. La empresa tiene una serie de empleados. Cada empleado tiene un te-
léfono, fecha de alta en la empresa, rfc y nombre. De cada empleado también interesa saber el número de hijos que tie-
ne y el salario de cada empleado. A esta empresa también le interesa tener guardada información sobre los hijos de los
empleados. Cada hijo de un empleado tendrá un código, nombre y fecha de nacimiento.
Se desea mantener también información sobre las habilidades de los empleados (por ejemplo, mercadotecnia, trato con
el cliente, fresador, operador de telefonía, etc…). Cada habilidad tendrá una descripción y un código”. Sobre este su-
puesto diseñar el modelo E/R y el modelo relacional teniendo en cuenta los siguientes aspectos. Un empleado está
asignado a un único departamento. Un departamento estará compuesto por uno o más empleados.
Cada departamento se ubica en un único centro de trabajo. Estos se componen de uno o más departamentos.
Un empleado puede tener varios hijos.
Un empleado puede tener varias habilidades, y una misma habilidad puede ser poseída por empleados diferentes.
Un centro de trabajo es dirigido por un empleado. Un mismo empleado puede dirigir centros de trabajo distintos.
Entidades: Relaciones:
Imagina que una agencia de seguros de tu municipio te ha solicitado una base de datos mediante la cual llevar un con-
trol de los accidentes y las multas. Tras una serie de entrevistas, has tomado las siguientes notas:” Se desean registrar
todas las personas que tienen un vehículo. Es necesario guardar los datos personales de cada persona (nombre, apelli-
dos, dirección, población, teléfono y CURP). De cada vehículo se desea almacenar la matrícula, la marca y el modelo.
Una persona puede tener varios vehículos, y puede darse el caso de un vehículo pertenezca a varias personas a la vez.
También se desea incorporar la información destinada a gestionar los accidentes del municipio. Cada accidente posee
un número de referencia correlativo según orden de entrada a la base de datos. Se desea conocer la fecha, lugar y hora
en que ha tenido lugar cada accidente.
Se debe tener en cuenta que un accidente puede involucrar a varias personas y varios vehículos. Se desea llevar tam-
bién un registro de las multas que se aplican. Cada multa tendrá asignado un número de referencia correlativo. Además,
deberá registrarse la fecha, hora, lugar de infracción e importe de la misma. Una multa solo se aplicará a un conductor e
involucra a un solo vehículo.”
Entidades: Relaciones:
31
Ejercicio 9. proyectos
De cada uno de los proyectos realizados interesa almacenar el código, descripción, cuantía del proyecto, fecha de inicio
y fecha de fin. Los proyectos son realizados por clientes de los que se desea guardar el código, teléfono, domicilio y ra-
zón social. Un cliente puede realizar varios proyectos, pero un solo proyecto es realizado por un único cliente. En los
proyectos participan colaboradores de los que se dispone la siguiente información: rfc, nombre, domicilio, teléfono, ban-
co y número de cuenta. Un colaborador puede participar en varios proyectos.
Los proyectos son realizados por uno o más colaboradores. Los colaboradores de los proyectos reciben pagos. De los
pagos realizados se quiere guardar el número de pago, concepto, cantidad y fecha de pago. También interesa almace-
nar los diferentes tipos de pagos que puede realizar la empresa. De cada uno de los tipos de pagos se desea guardar el
código y descripción. Un tipo de pago puede pertenecer a varios pagos”.
Entidades: Relaciones:
Se trata de realizar el diseño de la base de datos en el modelo E/R para una cadena de hoteles.
"Cada hotel (del que interesa almacenar su nombre, dirección, teléfono, año de construcción, etc.) se encuentra clasifi-
cado obligatoriamente en una categoría (por ejemplo, tres estrellas) pudiendo bajar o aumentar de categoría.
Cada categoría tiene asociada diversas informaciones, como, por ejemplo, el tipo de IVA que le corresponde y la des-
cripción.
Los hoteles tiene diferentes clases de habitaciones (suites, dobles, individuales, etc.), que se numeran de forma que se
pueda identificar fácilmente la planta en la que se encuentran. Así pues, de cada habitación se desea guardar el código
y el tipo de habitación.
Los particulares pueden realizar reservas de las habitaciones de los hoteles. En la reserva de los particulares figurarán
el nombre, la dirección y el teléfono.
Las agencias de viaje también pueden realizar reservas de las habitaciones. En caso de que la reserva la realiza una
agencia de viajes, se necesitarán los mismos datos que para los particulares, además del nombre de la persona para
quien la agencia de viajes está realizando la reserva.
En los dos casos anteriores también se debe almacenar el precio de la reserva, la fecha de inicio y la fecha de fin de la
reserva".
Entidades: Relaciones:
32
Ejercicio 11. Agencia de viajes
Una agencia de viajes desea informatizar toda la gestión de los viajeros que acuden a la agencia y los viajes que estos
realizan. Tras ponernos en contacto con la agencia, ésta nos proporciona la siguiente información.” La agencia desea
guardar la siguiente información de los viajeros: rfc, nombre, dirección y teléfono. De cada uno de los viajes que maneja
la agencia interesa guardar el código de viaje, número de plazas, fecha en la que se realiza el viaje y otros datos. Un
viajero puede realizar tantos viajes como desee con la agencia. Un viaje determinado sólo puede ser cubierto por un via-
jero. Cada viaje realizado tiene un destino y un lugar de origen. De cada uno de ellos se quiere almacenar el código,
nombre y otros datos que puedan ser de interés. Un viaje tiene un único lugar de destino y un único lugar de origen”.
Entidades: Relaciones:
La Universidad Autónoma del Estado de Morelos, necesita una Base de Datos con información acerca de su organiza-
ción docente, sabiendo que está estructurada en Departamentos, cada uno de los cuales integra una o más Áreas de
Conocimiento. Evidentemente, no puede haber Áreas de Conocimiento que pertenezcan a Departamentos diferentes.
Todo profesor está adscrito a una única Área de Conocimiento, pudiendo suceder que un Área no tenga profesores.
Cada una de las diferentes titulaciones ofertadas por la Universidad consta de una serie de asignaturas, dándose algu-
nos casos de asignaturas comunes a varias titulaciones. La impartición de cada una de ellas es encargada a una de las
Áreas de Conocimiento.
El Departamento establece las asignaturas que debe impartir cada profesor, siendo frecuente que en la impartición de
una asignatura participen dos profesores. No obstante, hay algunos casos extraordinarios en los que intervienen 3 o
más profesores.
Tanto los Departamentos como las áreas, titulaciones, asignaturas y profesores tienen asignados códigos identificativos
específicos, elaborados por el M.E.C.: codDpto, codArea, codTitulo, codAsign, y codProf. No obstante, para evitar el
efecto negativo de los cambios de código por parte del Ministerio y la ausencia de códigos en determinadas asignaturas
nuevas, etc., se opta por utilizar un código numérico interno propio.
De momento, sólo se pretende representar la información esencial. Esto significa que, además de los códigos y los
nombres de los elementos representados, sólo es preciso reflejar las horas de teoría y prácticas de cada asignatura, y
las horas de teoría y prácticas impartidas por cada profesor en cada una de las asignaturas en que participa.
Entidades: Relaciones:
En un banco se tienen varias sucursales. Un cliente puede ir a cualquier sucursal y abrir una cuenta. En realidad, el
cliente puede abrir varias cuentas en la misma o distinta sucursal.
33
Una cuenta puede pertenecer a uno o varios clientes. Sobre una determinada cuenta, se pueden realizar varias transac-
ciones. Cada sucursal viene identificada por un número de sucursal, también interesa conocer la ciudad en la que se
encuentra ubicada y el activo disponible.
Por su parte, cada cuenta tiene asociado un número de cuenta y saldo. Del cliente, interesa almacenar el Rfc, el nom-
bre, la dirección y la ciudad en la que reside. Cada transacción que se realiza sobre una cuenta tiene un número (de
transacción) diferente. Además, se marca la fecha del día, el tipo de operación que se realiza (Ingreso/Extracción) y la
cantidad que se mueve.
Entidades: Relaciones:
Le contratan para hacer una BD que permita apoyar la gestión de un sistema de ventas. La empresa necesita llevar un
control de proveedores, clientes, productos y ventas.
Un proveedor tiene un RUT, nombre, dirección, teléfono y página web. Un cliente también tiene RUT, nombre, dirección,
teléfono, 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 catego-
rí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.
Entidades: Relaciones:
34
4. MODELO RELACIONAL
Es un conjunto de una o más tablas estructuradas en registros (líneas) y campos (columnas), que se vinculan entre sí
por un campo en común, en ambos casos posee las mismas características como por ejemplo el nombre de campo, tipo
y longitud; a este campo generalmente se le denomina ID, identificador o clave. A esta manera de construir bases de
datos se le denomina modelo relacional. Estrictamente hablando el término se refiere a una colección específica de da-
tos pero a menudo se le usa, en forma errónea como sinónimo del software usado para gestionar esa colección de da-
tos. Ese software se conoce como SGBD (sistema gestor de base de datos) relacional o RDBMS (del inglés relational
database management system). Las bases de datos relacionales pasan por un proceso al que se le conoce co-
mo normalización de una base de datos, el cual es entendido como el proceso necesario para que una base de datos
sea utilizada de manera óptima.
4.1. Características
A. Está basado en la teoría de conjuntos.
B. Los datos se almacenan como tablas y los usuarios entienden con mayor facilidad.
C. Todas las entradas de cualquier columna son de un solo tipo. Cada columna posee un nombre único, el orden de
las comunas no es de importancia para la tabla, las columnas de una tabla se conocen como atributos.
D. No existen 2 filas en la tabla que sean idénticas.
35
4.3. Claves primarias
Se denomina Clave principal o primaria al atributo o conjunto mínimo de atributos (uno o más campos) que permiten
identificar en forma única cada instancia de la entidad, es decir, a cada registro de la tabla. Las claves principales se uti-
lizan cuando se necesita hacer referencia a registros específicos de una tabla des- de otra tabla. En un principio se pue-
de identificar más de un atributo que cumpla las condiciones para ser clave, los mismos se denominan Claves candida-
tas.
Si la clave primaria se determina mediante un solo atributo de la entidad, entonces se dice que la misma es una Clave
simple. En caso de estar conformada por más de un atributo, la misma se conoce como Clave compuesta. La Clave fo-
ránea (también llamada externa o secundaria) es un atributo que es clave primaria en otra entidad con la cual se rela-
ciona.
4.4.1. Inconvenientes
A. La cantidad de información redundante sería totalmente inaceptable para una base de datos.
B. Mayor necesidad de almacenamiento masivo.
C. Retardo de todas las operaciones con los datos.
EJEMPLO REGLA 3: Las relaciones N:M se transforman en una nueva tabla que tendrá como clave primaria la
concatenación de los atributos clave de las entidades que relaciona.
36
En este caso la relación “compra” se transforma en una nueva tabla cuya clave primaria estará formada por los atri-
butos curp, que es la clave primaria de cliente, y código, que es la clave primaria de producto. Además tendrá co-
mo campo fecha compra, ya que este atributo forma parte de la relación. El modelo relacional quedaría de la si-
guiente forma:
EJEMPLO REGLA 4(a): Veamos ahora el caso de una relación 1:N. En el siguiente modelo entidad-relación un
empleado pertenece a un único departamento (debe pertenecer a uno obligatoriamente), y un departamento tiene 1
o más empleados. En este caso se propaga el atributo código de departamento a la tabla EMPLEADO.
b) Si la entidad que participa con cardinalidad máxima uno lo hace también cardinalidad mínima cero, entonces se
crea una nueva tabla formada por las claves de cada entidad y los atributos de la relación. La clave primaria de
la nueva tabla será el identificador de la entidad que participa con cardinalidad máxima N.
37
EJEMPLO REGLA 4(b): Imaginemos ahora que pudiera darse el caso de que hubiera empleados que no pertene-
cieran a ningún departamento.
En este caso la entidad que participa con cardinalidad máxima 1, DEPARTAMENTO, también lo hace con cardinali-
dad mínima 0, ya que puede haber empleados que no pertenezcan a ningún departamento. Así pues, se crea una
nueva tabla formada por rfc de EMPLEADO y código de DEPARTAMENTO. En esta nueva tabla rfc de EMPLEADO
será la clave primaria. El modelo relacional quedaría de la siguiente forma:
EJEMPLO REGLA 5(a): En el siguiente modelo entidad-relación un equipo de fútbol tiene a un único presidente y
un presidente preside a un único club de fútbol. En este ejemplo, tal y como dicen las reglas, podemos propagar la
clave de cualquier tabla a la tabla resultante de la otra. Es decir, tenemos dos opciones, o mover la clave de PRE-
SIDENTE a EQUIPO o mover la clave de EQUIPO a PRESIDENTE. El modelo relacional podría quedar de cual-
quiera de las dos formas siguientes:
38
b) Si una de las entidades posee cardinalidad (0,1) y la otra (1,1), conviene propagar la clave de la entidad con
cardinalidad (1,1) a la tabla resultante de la entidad con cardinalidad (0,1). Si ambas entidades poseen cardina-
lidades (1,1) se puede propagar la clave de cualquiera de ellas a la tabla resultante de la otra.
Ejemplos:
39
CLIENTE
Cod_cliente 434 234
PRODUCTO
Nombre Juan Carlos
Cod_prod A65 A89
Cod_cliente 434 234
Nombre clips lapiz
XI. ACTIVIDAD
Elabora una síntesis de 2 hojas como mínimo (abarcando todos los temas). Termina co-
mentando tus dudas a través de una discusión guiada por el docente a la vez que atien-
des las explicaciones y ejemplos del mismo.
XII. ACTIVIDAD
Una vez que ya tienes claro de cómo se realizan los esquemas relaciónales. Ahora, los pro-
blemas de las actividades IX y X, conviértelos al modelo relacional, cada tabla conten-
drá 2 registros.
Termina comentando tus respuestas a través de una discusión guiada por el docente a la
vez que atiendes las explicaciones y ejemplos del mismo.
OJO
VERIFICAR QUE LOS DATOS DE CADA REGISTRO COINCIDAN CON LAS DIFERENTES
TABLAS, DE LA BASE DE DATOS
40
Ejercicio 1. Control de clases
Ejercicio 4. Biblioteca
XIII. ACTIVIDAD
Ahora bien, realiza los siguientes esquemas de entidad – relación.
Termina comentando tus respuestas a través de una discusión guiada por el docente a la
vez que atiendes las explicaciones y ejemplos del mismo.
Ejercicio 9. proyectos
41
Ejercicio 10. Cadena de hoteles
42
5. MANEJO DE BASES DE DATOS
A. Hardware. Máquinas en las que se almacenan las bases de datos. Incorporan unidades de almacenamiento masivo
para este fin.
B. Software. Es el sistema gestor de bases de datos. El encargado de administrar las bases de datos.
C. Datos. Incluyen los datos que se necesitan almacenar y los metadatos que son datos que sirven para describir lo
que se almacena en la base de datos.
D. Usuarios. Personas que manipulan los datos del sistema. Hay tres categorías:
Usuarios finales. Aquellos que utilizan datos de la base de datos para su trabajo cotidiano que no tiene por qué
tener que ver con la informática. Normalmente no utilizan la base de datos directamente, si no que utilizan apli-
caciones creadas para ellos a fin de facilitar la manipulación de los datos. Estos usuarios sólo acceden a ciertos
datos.
Desarrolladores. Analistas y programadores encargados de generar aplicaciones para los usuarios finales.
Administradores. También llamados DBA (Data Base Administrator), se encargan de gestionar las bases de
datos.
Hay que tener en cuenta que las necesidades de los usuarios son muy diferentes en función del tipo de usuario que
sean: a los finales les interesa la facilidad de uso, a los desarrolladores la potencia y flexibilidad de los lenguajes incor-
porados del sistema de bases de datos, a los administradores herramientas de gestión avanzada para la base de datos.
Los SGBD relacionales son una herramienta efectiva que permite a varios usuarios acceder a los datos al mismo tiem-
po. Brindan facilidades eficientes y un grupo de funciones con el objetivo de garantizar la confidencialidad, la calidad, la
seguridad y la integridad de los datos que contienen, así como un acceso fácil y eficiente a los mismos.
5.3. Mysql
Es un sistema de gestión de bases de datos relacional, fue creada por la empresa sueca MySQL AB, la cual tiene el
copyright del código fuente del servidor SQL, así como también de la marca. MySQL es un software de código abierto,
licenciado bajo la GPL de la GNU, aunque MySQL AB distribuye una versión comercial, en lo único que se diferencia de
la versión libre, es en el soporte técnico que se ofrece, y la posibilidad de integrar este gestor en un software propietario,
ya que de otra manera, se vulneraría la licencia GPL.
El lenguaje de programación que utiliza MySQL es Structured Query Language (SQL) que fue desarrollado por IBM en
1981 y desde entonces es utilizado de forma generalizada en las bases de datos relacionales.
5.4. SQL
El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query language) es un lenguaje declara-
tivo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en éstas.
43
5.5. Historia MySQL
MySQL surgió alrededor de la década del 90, Michael Windenis comenzó a usar mSQL para conectar tablas usando sus
propias rutinas de bajo nivel (ISAM). Tras unas primeras pruebas, llegó a la conclusión de que mSQL no era lo bastante
flexible ni rápido para lo que necesitaba, por lo que tuvo que desarrollar nuevas funciones. Esto resulto en una interfaz
SQL a su base de datos, totalmente compatible a mSQL.
El origen del nombre MySQL no se sabe con certeza de donde proviene, por una lado se dice que en sus librerías han
llevado el prefijo “my” durante los diez últimos años, por otra parte, la hija de uno de los desarrolladores se llama My. Así
que no está claramente definido cual de estas dos causas han dado lugar al nombre de este conocido gestor de bases
de datos.
A. Estándar. Incluye el motor estándar y la posibilidad de usar bases de datos InnoDB. Todo el potencial de MySQL,
pero sin soporte completo para utilizar transacciones.
B. Max. Para usuarios que quieran MySQL con herramientas de prueba para realizar opciones avanzadas de base de
datos
C. Pro. Versión comercial del MySQL estándar
D. Classic. Igual que la estándar pero no dispone de soporte para InnoDB
El uso de MySQL (excepto en la versión Pro) está sujeto a licencia GNU public license (llamada GPL). Está licencia
admite el uso de MySQL para crear cualquier tipo de aplicación. Se pueden distribuir copias de los archivos de MySQL,
salvo esas copias se cobren a un tercer usuario. Se prohíbe cobrar por incluir MySQL. Se puede modificar el código
fuente de MySQL, pero si se distribuye la aplicación con el código modificado, habrá que obtener una copia comercial y
consultar sobre el cobro de la licencia. Al distribuir copias, se tiene que poder obtener información sobre las licencias
GNU (más información en http://dev.mysql.com/doc/mysql/en/GPL_license.html
Se puede también obtener una licencia comercial que permitiría cobrar las instalaciones MySQL, incluir la base de datos
en ordenadores y cobrar por ello, y otras situaciones no reflejadas en la licencia GNU.
G. Una instrucción se puede anular antes del punto y coma, colocando el texto “\c”
H. Las cadenas de texto literal puede ir entre símbolos de comilla simple o símbolos de comilla doble. Si se pulsa Intro
antes de cerrar la cadena, el monitor lo índica mostrando ‘> o “> en lugar del habitual --> o mysql>.
45
5.10.1. Comando show databases
El comando show databases permite visualizar las bases de datos actualmente ac-
tivas. Ejemplo: En el ejemplo hay dos bases de datos activas, la principal llamada
mysql y la base test (una base de datos de prueba). Hay bases de datos que no nos
serán mostradas si no tenemos permiso para ello.
Eso hace que test sea la base de datos de trabajo actual. También se puede seleccionar la base de datos para utili-
zar al arrancar el propio monitor. Para ello basta poner el nombre de la base de datos tras el comando mysql
La base de datos recién creada estará representada por una carpeta dentro de la carpeta data de mysql.
A. Numéricos
Tipo Espacio Rango Rango sin signo
TINYINT 1 byte -128 a 127 0 a 255
SMALL INT 2 bytes -32768 a 32767 0 a 65535
MEDIUM INT 3 bytes -8388608 a 8388607 0 a 16777215
INT 4 bytes -2147483648 a 2147483647 0 a 4294967295
BIG INT 8 bytes -9,223 * 1018 a 9,223 *1018 0 a 18,446 * 1036
FLOAT(M,D) 4 bytes varía según los parámetros
DOUBLE(M,D) 8 BYTES varía según los parámetros
DECIMAL(M,D) M+2 bytes varía según los parámetros
46
Los números enteros se pueden colocar sin signo adelantando la palabra UNSIGNED. Los decimales permiten indi-
car el número de la mantisa (M) y el número de decimales (D). A los números enteros se les puede asignar el modi-
ficador AUTO_INCREMENT para que el campo marcado almacene más rápido los valores. Se puede declarar una
anchura de columna de esta forma: INT(8). Si además se define la columna con ZEROFILL, entonces se colocan
ceros a la izquierda hasta llegar a esa anchura.
B. texto
Tipo Espacio Tamaño máximo
CHAR(X) X bytes 255 bytes
VARCHAR(X) X+1 byte 255 bytes
TINYTEXT X+1 byte 255 bytes
TINYBLOB X+1 byte 255 bytes
TEXT X+2 bytes 65535 bytes
BLOB X+2 bytes 65535 bytes
MEDIUMTEXT X+3 bytes 1,6 MB
MEDIUMBLOB X+ 3bytes 1,6 MB
LONGTEXT X+4 bytes 4,2 GB
LONGBLOB X+4 bytes 4,2 GB
Los que más se usan son CHAR y VARCHAR. Ambos almacenan textos pero CHAR los almacena de tamaño fijo y
VARCHAR optimiza tamaño variable. Dicho de otra forma: si definimos un CHAR de tamaño 8, cualquier registro
ocupa 8 bytes. Con VARCHAR si algún registro ocupa 4 caracteres, en disco ocupará 5 bytes independientemente
del tamaño indicado inicialmente. TEXT y BLOB se usan para grandes cantidades de texto variable. La diferencia es
que los tipos BLOB distinguen entre mayúsculas y minúsculas.
C. lógicos
Son los tipos BIT o BOOL que admiten los valores 0 o 1.
D. fechas
Tipo Rango Formato
DATE Del 1 de enero de 1001 al 31/12 del 9999 año-mes-día
DATETIME De las 0 horas del 1/1/1001 a las 0 horas del 31/12/9999 Año-mes-día horas:minutos:segundos
TIMESTAMP De las 0 horas del 1/1/1970 a las 0 horas del 31/12/2037 Año-mes-día horas:minutos:segundos
Permite estos tamaños:
14 (aaaammddhhmmss)
12 (aaaammddhhmm)
8 (aaaammdd)
6 (aammdd)
4 (aamm)
2 (aa)
TIME Una hora en formato HH:MM:SS
YEAR Año desde 1901 a 2037
E. Enum
Permite declarar campos cuyo contenido puede ser una de entre varias opciones. Ejemplo: CREATE TABLE perso-
nas (Sexo ENUM(‘M’, ‘H’),.....
47
F. modificadores
modificador Se aplica a Uso
AUTO_INCREMENT Enteros El valor se va incrementando automáticamente en cada registro
BINARY char y varchar Convierte las cadenas a forma binaria en la que se distingue entre
mayúsculas y minúsculas
DEFAULT Todos menos TEXT y Coloca un valor por defecto el valor se coloca justo detrás de esta
BLOB palabra)
NOT NULL Todos Impide que un campo sea nulo
PRIMARY KEY Todos Hace que el campo se considere clave primaria
UNIQUE Todos Evita la repetición de valores
UNSIGNED Enteros Sólo valen los valores positivos
ZEROFILL Enteros Rellena con ceros a la izquierda hasta llegar al ajuste.
Ejemplo: mysql>create table vehiculos (Modelo VARCHAR(20) NOT NULL DEFAULT “Megane”);
48
El orden de los datos debe corresponder con el de los campos de la tabla. También se puede indicar los campos:
En ese caso la columna del teléfono tomaría el valor null indicando que está vacío.
Para conseguir los datos en este formato, se pueden colocar a mano, o bien se pueden crear a través de software
especial que consiga colocar registros en este formato (programas como Excel, Access u otros muchos poseen he-
rramientas para realizar estas operaciones. Una vez creado el archivo, desde MySQL se podría usar el comando
load data:
Ejemplo:
mysql>load data infile
->“C:\\mysql\data\prueba\texto.txt”
->into table personas;
La ruta es la ruta completa al archivo de texto que posee los datos. La tabla es la tabla a la cual se desean añadir
dichos datos. Para que esta instrucción funcione correctamente, el orden de los campos en la tabla debe ser el
mismo que en el archivo. Salvo que se indique una lista con el orden de los campos según aparecen en el archivo
externo. Esta lista se coloca entre paréntesis, al final de la instrucción load data. Ejemplo:
En numerosas instalaciones podría fallar el uso de load data por que MySQL podría no darnos permiso para su
uso. Esa situación se puede arreglar entrando en el monitor añadiendo la opción --local-infile=1. Lo cual significa
que habilitamos la posibilidad de importar datos. Ejemplo (de llamada al monitor habilitando archivos externos):
A la hora de importar los datos se pueden reemplazar los valores duplicados adelantando la palabra REPLACE a la
palabra INTO. El texto FIELDS TERMINATED BY seguido de un carácter entrecomillado indica qué signo delimita
cada campo, el texto ENCLOSED BY seguido de otro carácter, indica qué signo envuelve a cada campo. Ejemplo:
mysql>load data infile “/ejemplos/datos.txt” into table personas fields terminated by ’,’ enclosed by ‘”’;
49
También se puede utilizar el texto lines terminated by seguido del carácter de fin de línea (normalmente el fin de
línea es “\r\n”, pero habrá que tenerlo en cuenta si fallara la exportación:
mysql>load data infile “/ejemplos/datos.txt” into table personas fields terminated by ’,’ enclosed by ‘”’
Hay que tener en cuenta que el juego de caracteres entre la base de datos y MySQL deben de ser compatibles. El
juego de caracteres de MySQL se modifica entrando en el servidor con la opción --default-character-set=codigos.
Ejemplo:
mysql ----default-character-set=latin1
En el ejemplo se arranca el servidor con la opción de juego de caracteres Latin1 (europeo occidental). No vale la
codificación de Windows, habrá que utilizar la codificación de MSDOS (sobre todo importando de Access a MySQL).
Cambia el campo identif para que ahora sea pepe, tenga 25 caracteres de anchura, no admita nulos y esta-
blezca como valor por defecto, la cadena "pepe".
C. borrar tablas. Se usa la sintaxis: drop table seguida del nombre de la tabla.
alter table ejemplo drop campo1, add campo2, change campo3 campo4 int(8);
De este modo, alter table se convierte en una instrucción muy versátil para modificar la estructura de las bases
de datos.
Las tablas innoDB permiten transacciones, operaciones concurrentes y control estricto de referencias (lo que se co-
noce como integridad referencial) entre otros detalles. Pero requieren más potencia por parte del sistema en el que
se ejecuta MySQL.
5.11.10. Índices
Creación. Para crear índices, se utiliza:
la lista de campos es una lista (separada por comas de los campos que forman la clave). Se puede indicar tras el
nombre del índice, la palabra UNIQUE que indicaría que no se admiten valores duplicados en el índice (por lo que
los campos que forman parte del índice no podrán repetir valores). Desde la versión 3.23 de MySQL es más reco-
mendable la sintaxis:
Ejemplo:
alter table clientes add index (apellidos, nombre);
51
La instrucción anterior crea un índice sobre la lista de campos apellidos y nombre. Se le puede poner nombre al ín-
dice colocando el nombre antes del paréntesis de los campos. Ejemplo:
En la lista de campos, tras cada campo se puede colocar la palabra ASC (orden ascendente, se toma por defecto) o
DESC (orden descendente). Se pueden crear índices únicos si coloca la palabra unique antes de la palabra index.
Los índices únicos prohíben la repetición de valores en los campos que forman el índice:
claves principales.
Si se pone como nombre del índice la palabra primary key, entonces el índice crea la clave principal de la tabla:
create table personas (rfc char(10), nombre varchar(25) not null, apellidos varchar(50) not null,
dirección varchar(50),
primary key (rfc),
key datosCompletos (apellidos,nombre));
En el ejemplo, datosCompletos es el nombre del índice basado en los campos apellidos y nombre.
Claves externas
Sólo funcionan correctamente si las tablas son innoDB. También se pueden crear claves secundarias. Las claves
secundarias se crean para campos de una tabla relacionados con campos que forman índices en otras tablas (nor-
malmente forman claves principales, es decir son los campos que permiten relacionar tablas). La creación de estas
claves se puede hacer desde create table. Sintaxis:
La palabra constraint es opcional y permite indicar un nombre para la clave externa. foreign key indica los campos
de esta tabla relacionados con campos de otra. references indica el nombre de la tabla relacionada y el nombre de
los campos relacionados.
52
Se pueden indicar al final las palabras:
A. On delete cascade. Que hace que al borrar registros en la tabla principal, se borren registros en la relacionada.
B. On update cascade. Que permite que al cambiar los datos de los campos en la tabla principal, se actualicen en
la relacionada.
C. On delete set null. Hace que si se borra un registro de la tabla principal, los valores de los campos relaciona-
dos se coloque a null
D. On update set null. Al cambiar valores principales se dejan a null los relacionados.
E. On update restrict. No permite modificar valores en la tabla principal si hay registros relacionados en otra tabla.
F. On delete restrict. No permite eliminar valores en la tabla principal si hay registros relacionados en otra tabla.
G. On update no action
H. On delete no action
5.12. consultas
El campo especial “*” sirve para representar todos los campos de una tabla. Así la instrucción:
Se puede indicar la lista exacta de campos que queremos que aparezcan en la consulta. Por ejemplo:
condiciones
El apartado where de la instrucción select nos permite poner una condición de modo que sólo aparezcan en la con-
sulta los registros que cumplan la condición. Se pueden utilizar operadores de comparación. Ejemplos:
select nombre, apellido1, apellido2 from personas where (edad>25 AND edad<50);
53
select nombre, apellido1, apellido2 from personas
where (nombre=”Luis” OR nombre=”Pedro”);
La primera consulta obtiene nombre y apellidos de las personas cuya edad esté entre 26 y 49 años. La segunda sa-
ca a todos los luises y pedros. También se pueden usar patrones mediante la cláusula like. Por ejemplo:
Sacaría las personas cuyo primer apellido empiece por “g”. Es decir el símbolo “%” hace de comodín. Otras expre-
siones posibles para like son:
Esto se puede extender de forma más poderosa utilizando regexp en lugar de like.
regexp permite utilizar expresiones regulares. Algunas posibilidades son:
ordenar
La cláusula order by sirve para ordenar en base a una o más columnas. Ejemplo:
Normalmente la ordenación se realiza en ascendente (de la A a la Z o de menor a mayor en el caso de los núme-
ros), pero se puede colocar la palabra clave desc tras el nombre del campo por el que se ordena, para indicar que
ese campo irá en descendente:
54
Esto permite realizar cálculos con las columnas de consulta. El resultado de cada cálculo se coloca en una nueva
columna de la tabla. Para los cálculos se pueden utilizar operadores aritméticos y funciones. Ejemplo:
El resultado sería:
A la columna ( o columnas) de cálculo se le puede poner nombre haciendo uso de as. Ejemplo:
consultas de totales
Se pueden agrupar los resultados según uno o más campos. Eso se realiza mediante el operador group by. Ejem-
plo;
El ejemplo anterior, enseña las provincias presentes en la tabla de localidades. Si no hubiera apartado group by
también saldrían las provincias, pero cada provincia saldría tantas veces como localidades incluya.
La mayor ventaja que ofrecen estas consultas es que se pueden hacer cálculos sobre los grupos:
En este caso aparece una segunda columna que contará los registros de cada grupo (es decir las localidades de
cada provincia). Otros operadores son sum, max y min. Ejemplo:
55
Suma los habitantes de cada localidad por cada provincia (es decir calcula los habitantes de cada provincia).
Se pueden usar también las funciones max (máximo), min (mínimo) o avg (media).
La potente instrucción select admite la posibilidad de ser utilizada para almacenar valores en archivos externos. Pa-
ra ello se utiliza la palabra clave into outfile seguida de la ruta al archivo externo. A esta palabra le siguen los modi-
ficadores de terminación de campos y líneas ya vistos en la instrucción load data. Ejemplo:
select nombre, apellido1, apellido2 into outfile "exportacion.txt" fields terminated by ',' enclosed by '"' lines ter-
minated by '\r\n' from clientes;
5.12.2. Update
Permite modificar campos. Su sintaxis básica es:
Ejemplos:
update artículos set iva=0.12;
update personas set nacionalidad=”estados unidos” where
nacionalidad=”USA”;
update personas set edad=edad+1;
update artículos set precio=precio*1,16, descuento=descuento/2;
5.12.3. Delete
Permite borrar registros de las tablas. Su sintaxis básica es:
Ejemplos:
delete from clientes where deudor=’y’;
5.12.4. Uniones
Se trata de consultas realizadas sobre datos de varias tablas. para ello esas tablas deben estar relacionadas por al
menos un campo. Ejemplo clásico:
A veces el nombre de los campos es ambiguo (porque el mismo nombre se emplea es más de una de las tablas im-
plicadas en la consulta) y entonces se debe indicar la tabla junto al nombre del campo, separados por un punto:
56
select c.nombre, c.apellidos, fecha_alquiler
from cliente as c, alquiler where cliente.rfc=alquiler.rfc;
Eso muestra las fechas de cada alquiler junto con nombre y apellidos del cliente que alquiló. Para ello ambas tablas
deben estar relacionadas por el RFC. Esta misma consulta se puede hacer en el formato SQL ANSI-92 (totalmente
soportado por MySQL) de esta forma:
Es más recomendable esta segunda forma ya que permite realizar asociaciones avanzadas. De hecho es posible
usar estas formas de unión en el apartado join
A. Cross join. Producto cruzado. Combina cada registro de la primera tabla con cada registro de la tabla relacio-
nada.
B. Inner join. Unión normal. Muestra sólo registros de ambas tablas que estén relacionados.
C. Left join. Muestra todos los registros de la primera tabla y sólo los registros relacionados en la segunda.
D. Right join. Muestra todos los registros de la segunda tabla y sólo los registros relacionados en la primera.
XIV. ACTIVIDAD
Elabora una síntesis de 2 hojas como mínimo (abarcando todos los temas). Termina co-
mentando tus dudas a través de una discusión guiada por el docente a la vez que atien-
des las explicaciones y ejemplos del mismo.
XV. ACTIVIDAD
Una vez que ya tienes claro de cómo se captura una base de datos. Ahora, los problemas de la actividad XII,
crea las bases de datos en MySQL.
Termina comentando tus respuestas a través de una discusión guiada por el docente a la vez que atiendes las
explicaciones y ejemplos del mismo.
OJO
EL NOMBRE DE LA BASE DE DATOS ESTA ENTRE PARÉNTESIS
57
Ejercicio 1. Academia de clases (RITMOX )
58