Sei sulla pagina 1di 58

DIRECCIÓN GENERAL DE EDUCACIÓN TECNOLÓGICA INDUSTRIAL

CENTRO DE ESTUDIOS TECNOLÓGICOS INDUSTRIAL


Y DE SERVICIOS No. 43, XOCHITEPEC MOR.
OBJETIVO GENERAL
COMPETENCIAS A DESARROLLAR

1. INTRODUCCIÓN A LAS BASES DE DATOS


1.1. Definición de bases de datos
1.2. Elementos de una base de datos
1.2.1. Datos
1.2.2. Información
1.2.3. Tablas
1.2.4. Registro
1.2.5. Campo
1.2.6. Consultas
1.2.7. Formularios
1.2.8. Informes
1.2.9. Tipos de llaves o claves
1.3. En donde se usan las bases de datos

2. CONCEPTOS GENERALES DE BASES DE DATOS


2.1. Objetivos
2.2. Ventajas y desventajas
2.3. Tipos de bases de datos según la organización lógica de los datos
2.4. Clasificación de las Bases de Datos
2.4.1. Bases de datos estáticas
2.4.2. Bases de datos dinámicas
2.5. Estructura de una base de datos
2.6. El diseño de bases de datos
2.7. Fases del diseño de bases de datos
2.8. Modelado de datos
2.9. Clasificación de los Modelos de datos
2.9.1. Modelo de datos conceptuales
2.9.2. Modelo de datos lógico
2.9.3. Modelo de datos físico (Sistema manejador de bases de datos (SMBD – SGBD)
2.10. Sistema manejador de bases de datos (SMBD – SGBD)

3. MODELO ENTIDAD / RELACIÓN


3.1. Simbología – diagrama del modelo Entidad - Relación
3.2. Entidad
3.3. Conjunto de entidades
3.4. Atributos
3.5. Relación
3.6. Identificador (llave o clave primaria)

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

5. MANEJO DE BASES DE DATOS


5.1. Sistema de bases de datos
5.2. Sistema gestor de bases de datos
5.3. Mysql
5.4. Sql
5.5. Historia de mysql
5.6. Características principales
5.7. Ventajas de desventajas
5.8. Mysql y el código abierto
5.9. Entradas de comando en el monitor
5.10. Creando bases de datos
5.10.1. Comando show databases
5.10.2. Utilizar una base de datos
5.10.3. Crear una base de datos
5.10.4. Borrar bases de datos
5.11. Manejo de tablas
5.11.1. Mostrar Tablas
5.11.2. Tipos de datos
5.11.3. Crear tablas
5.11.4. Estructura de las tablas
5.11.5. Introducir datos en una tabla
5.11.6. Indicar opciones en los campos en la creación
5.11.7. Establecimiento de la clave durante la creación
5.11.8. Operaciones con tablas
5.11.9. Tablas innodb
5.11.10. Índices
5.12. Consultas
5.12.1. Obtener registros. Select
5.12.2. Update
5.12.3. Delete
5.12.4. Uniones

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

Atributos de la Competencia Atributos de la Competencia


 Realizar consultas de complejidad mediante los
campos.  Explorar una base de datos existente para visualizar
 Manejo del lenguaje MySQL para el desarrollo su contenido y sus elementos principales.
bases de datos

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.

1. ¿Qué competencias voy a desarrollar?


2. ¿Para qué me van a servir?
3. ¿En qué momento las puedo aplicar?

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.

1. ¿Qué es una base de datos? 4. Qué es el modelo entidad – relación


2. ¿Qué es un gestor de bases de datos? 5. ¿Qué es el modelo relacional?
3. ¿Qué son modelos de datos? 6. Investiga y explica otros modelos que se em-
plean para el diseño de bases de datos.

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:

A. Costos de almacenamiento elevados


B. Datos redundantes (se repiten continuamente)
C. Probabilidad alta de inconsistencia en los datos
D. Difícil modificación en los datos y facilidad de problemas de inconsistencia al realizar esas modificaciones (ya que
es difícil que esa modificación afecte a todos los datos).

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.

Como ejemplo la agenda de un celular:

A. ¿Por qué almacenas los contactos en tu teléfono celular?


B. ¿Qué ventajas tiene esta acción?
C. ¿Qué datos guardas de cada uno de tus contactos?
D. ¿Te parece importante almacenar esos datos?
E. ¿Cuándo buscas un contacto, lo encuentras rápidamente?
F. ¿Te parece importante encontrarlo rápidamente?

1.1. Definición de bases de datos


El término fue acuñado en 1963. Una Base de Datos, no es más que un conjunto de información (un conjunto de datos)
relacionada que se encuentra agrupada o estructurada.

A. Informáticamente una Base de Datos es un sistema formado por un


conjunto de datos almacenados en memorias masivas que permiten
acceso directo a ellos y un conjunto de programas que manipulan
ese conjunto de datos.

B. Una base de datos se define como un conjunto de datos que se en-


cuentran organizados y relacionados entre sí, con el fin de satisfa-
cer tratamientos de información implicados en las actividades de una
empresa.

C. Es una colección de datos organizados de forma que un programa


pueda seleccionar rápidamente los fragmentos de datos que necesi-
te. Es una recopilación de información relativa a un asunto o propó-
sito particular.

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. Elementos de una base de datos

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.

Propiedades de los datos


A. Están Estructurados independientemente de las aplicaciones y del soporte de almacenamiento que los contie-
ne.
B. Presentan la menor redundancia posible.
C. Son compartidos por varios usuarios y/o aplicaciones.
D. Están bajo un control centralizado.

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:

Características de las Tablas


A. Una tabla está formada por Filas y Colum-
nas.
B. Las Filas son equivalentes a los Registros
de un archivo clásico (contienen los valores
de los objetos o entidades descritas).
7
C. Las Columnas son equivalentes a los Campos
(que representan los atributos de los objetos o
entidades descritas). El conjunto de valores que
puede tomar un campo se llama dominio.

Los datos almacenados en una tabla se refieren a


un tema determinado dentro de la base de datos,
por ejemplo, datos personales de los empleados,
horas extras trabajadas por cada empleado, las dis-
tintas dependencias de la empresa, las ciudades
donde opera la compañía , datos de los proveedo-
res de un almacén, datos de clientes. El éxito de un
buen diseño de base de datos está determinado por
lo consistentes y lógicas que sean las tablas que
implementemos.

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.

A. Alfanumérico: contiene cifras numéricas y caracte-


res alfabéticos.
B. Numérico: existen de varios tipos principalmente como enteros y reales.
C. Autoincrementable: son campos numéricos enteros que incrementan en una unidad su valor para cada regis-
tro incorporado. Su utilidad resulta más que evidente: servir de identificador registro.
D. Booleano: admite dos valores, «verdadero» o «falso».
E. Fechas: almacenan fechas facilitando posteriormente su explotación. Almacenar fechas de esta forma posibilita
ordenar los registros por fechas o calcular los días entre una fecha y otra.
F. Memo: son campos alfanuméricos de longitud ilimitada. Presentan el inconveniente de no poder ser indexados.
8
La estructura de una tabla se define por la cantidad de campos en que fraccionemos la información que guarda. Los
posibles campos (podemos imaginarlos como "columnas" de una planilla de cálculo) para una tabla de –por ejem-
plo- "productos", podrían ser el código de productos, el nombre del producto, su descripción, la categoría a la que
pertenecen, el precio, etc.

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.

1.2.8. Tipos de claves o llaves


En el diseño de bases de datos relacionales, se llama clave principal a un campo o a una combinación de campos
que identifican de forma única a cada fila o registro de una tabla.

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.

B. Clave candidata. Es cada conjunto de


columnas de una tabla que pueden ser
escogidas para ser clave primaria.

C. Clave alternativa. Son aquellas claves


candidatas que no son escogidas co-
mo clave primaria.

D. Clave foránea o ajena. Es una colum-


na o conjunto de columnas que existen
de forma dependiente en una tabla y
son, a su vez, clave primaria en otra.
Representan las relaciones entre da-
tos.

E. Clave compuesta. Es una clave formada por más de una columna.

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

A. Banca: información de clientes, cuentas, transacciones, préstamos, etc.


B. Líneas aéreas: información de clientes, horarios, vuelos, destinos, etc.
C. Universidades: información de estudiantes, carreras, horarios, materias, etc.
D. Transacciones de tarjeta de crédito: para comprar con tarjetas de crédito y la generación de los extractos mensua-
les.
E. Telecomunicaciones: para guardar registros de llamadas realizadas, generar facturas mensuales, mantener el saldo
de las tarjetas, telefónicas de prepago y almacenar información sobre las redes.

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.

2.2. Ventajas y desventajas de una base de datos

Ventajas de las bases de datos:


A. Control centralizado de los datos.
B. Independencia de los datos y los programas y procesos. Esto permite modificar los datos sin modificar el código
de las aplicaciones.
C. Menor redundancia. No hace falta tanta repetición de datos. Aunque, sólo los buenos diseños de datos tienen poca
redundancia.
D. Consistencia de datos.
E. Integridad de los datos. Mayor dificultad de perder los datos o de realizar incoherencias con ellos.
F. Mayor seguridad en los datos. Al limitar el acceso a ciertos usuarios.
G. Datos más documentados. Gracias a los metadatos que permiten describir la información de la base de datos.
H. Acceso a los datos más eficiente. La organización de los datos produce un resultado más óptimo en rendimiento.
I. Menor espacio de almacenamiento. Gracias a una mejor estructuración de los datos.
A. Acceso concurrente por parte de múltiples usuarios.
J. Respaldo y recuperación.

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.

2.3. Tipos de bases de datos según la organización lógica de los datos


Existen también varios tipos o modelos de bases de datos que a continuación se describen, estas, como se mencionó
anteriormente están compuestas por campos y registros, cada campo es de diferentes longitudes y tipos, existen tres ti-
pos que son los más comunes:

A. Las bases de datos jerárquicas. En una base de datos jerárquica se orga-


nizan los datos utilizando estructuras arborescentes (en árbol). Un ÁRBOL
es una estructura jerárquica en la que los elementos se suelen denominar
NODOS y existen dependencias entre los nodos, en donde hay un nodo pa-
dre o raíz que puede tener varios nodos hijo u hojas.

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

Un ejemplo de sistema en red es el CODASYL. También existen mo-


delos para realizar el diseño de datos orientado a bases de datos en
red. En red podríamos representar lo mismo que la estructura anterior
y además lo siguiente:

Los datos son representados por colecciones de datos, la relación de


los datos se establece por medio de ligas, su organización es abstrac-
tamente gráfica, permite el cada campo nodo tenga varios padres, este tipo es muy poco utilizado. Los sistemas je-
rárquico y en red constituyen la primera generación de los SGBD. Pero estos sistemas presentan algunos inconve-
nientes:
 Es necesario escribir complejos programas de aplicación para responder a cualquier tipo de consulta de datos,
por simple que ésta sea.
 La independencia de datos es mínima.
 No incluyen controles de integridad.
 Por lo que pronto fueron sustituidos por los sistemas relacionales.

C. Bases de datos relacionales. Esta es la estructura que se ha im-


puesto para aplicaciones de gestión, consiste en organizar los datos
en forma de tablas, las relaciones entre los objetos se consiguen in-
cluyendo en la tabla del hijo, la clave del objeto padre.

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

2.4. Clasificación de las Bases de Datos

2.4.1. Bases de datos estáticas


Son bases de datos de sólo lectura, utilizadas primordialmente para almacenar datos histó-
ricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto
de datos a través del tiempo, realizar proyecciones, tomar decisiones y realizar análisis de
datos para inteligencia empresarial.

2.4.2. Bases de datos dinamicas


Éstas son bases de datos donde la información almacenada se modifica con el tiempo,
permitiendo operaciones como actualización, borrado y adición de datos, además de las
operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos
utilizada en un sistema de información de un supermercado, una farmacia, un videoclub o
una empresa.

2.5. Estructura de una base de datos


Las bases de datos están compuestas (como ya se han comentado), de datos y de metadatos. Los metadatos son da-
tos (valga la redundancia) que sirven para especificar la estructura de la base de datos; por ejemplo qué tipo de datos
se almacenan (si son texto o números o fechas), qué nombre se le da a cada dato (nombre, apellidos,...), cómo están
agrupados, cómo se relacionan,.... De este modo se producen dos visiones de la base 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).

2.6. El diseño de bases de datos


Es el proceso por el que se determina la organización de una base de datos, incluidos su estructura, contenido y las
aplicaciones que se han de desarrollar. El diseño de una base de datos se realiza a dos niveles. El primero es el
nivel conceptual, en la cual se contempla una estructura abstracta y no implementable directamente con un SGBD
(Sistema de gestión de Bases de Datos). El segundo es el nivel físico, en el cual la base de datos es ya implementa-
ble.

2.7. Fases del diseño de bases de datos


El diseño de una base de datos no es un proceso sencillo. Habitualmente, la complejidad de la información y la cantidad
de requisitos de los sistemas de información hacen que sea complicado. Por este motivo, cuando se diseñan bases de
datos es interesante aplicar la vieja estrategia de dividir para vencer.

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:

A. Fase I: Análisis de requerimientos. El objetivo de esta etapa es


identificar y documentar los datos requeridos por la organización para
satisfacer necesidades de información presentes y futuras. La entrada
principal son los requerimientos que se obtienen a través de entrevis-
tas a los usuarios. Estos requerimientos pueden ser de:
 Información: corresponden a las vistas de usuarios, es decir, a
los diferentes documentos, formularios, reportes, pantallas, etc.
que contienen los datos que el usuario utiliza en su trabajo.
 Procesamiento u Operacionales: corresponden a característi-
cas del tipo frecuencia de emisión de reportes, tiempos de res-
puestas requeridos, proyecciones de crecimiento de los datos,
necesidades de respaldos y recuperación, autorizaciones de ac-
ceso, etc.
 La salida de esta etapa es la formalización de los requerimientos expresada idealmente en un diccionario de da-
tos.
 Identificación del ámbito de la Base de Datos. Consiste en delimitar el área a la cual irá enfocada la base de
datos. Primero se debe identificar las necesidades del cliente y entender los objetivos globales del sistema a
construir, para luego definir las metas necesarias para alcanzar los objetivos.
 Establecimiento de los estándares de recolección de datos. Cuantas más personas participen de la etapa
de formulación y análisis de los requisitos, más necesario es la formulación de estándares para la base de da-
tos. Estos estándares pueden consistir en formularios, encuestas, matrices de información, etc.
 Identificación de las vistas de usuario. Para cada tipo de usuario se obtendrán distintas pantallas, reportes,
formularios, etc.
 Establecer requerimientos de procesamiento.
 Construcción de un diccionario de datos. El diccionario de datos contiene el detalle de cada uno de los datos
del sistema, como el nombre, tipo, longitud y valores permitidos. Parte desde los datos globales (por ejemplo,
cliente o producto) y luego los desglosa hasta el máximo nivel de detalle.

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.

DISEÑO LÓGICO (Dependiente del DBMS) Transformar el modelo concep-


tual en definiciones de tablas, vistas, etc.

 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:

 Disminuir los tiempos de respuesta.


 Minimizar espacio de almacenamiento.
 Evitar las reorganizaciones.
 Proporcionar la máxima seguridad.
 Optimizar el consumo de recursos.

2.8. Modelado de datos


Los modelos se utilizan en todo tipo de ciencias. Su finalidad es la de simbolizar una parte del mundo real de forma que
sea más fácilmente manipulable. En definitiva es un esquema mental (conceptual) en el que se intentan reproducir las
características de una realidad específica.

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.

Una de las características fundamentales de los sistemas de


bases de datos es que proporcionan cierto nivel de abstracción
de datos, al ocultar las características sobre el almacenamiento
físico que la mayoría de usuarios no necesita conocer.

Los modelos de datos son el instrumento principal para ofrecer


dicha abstracción a través de su jerarquía de niveles. Un mode-
lo de datos es un conjunto de conceptos que sirven para describir la estructura de una base de datos, es decir, los da-
tos, las relaciones entre los datos y las restricciones que deben cumplirse sobre los 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.

2.9. Clasificación de los Modelos de datos

2.9.1. Modelo de datos conceptuales


Se usan fundamentalmente durante la etapa de Análisis de un
problema dado y están orientados a representar los elementos
que intervienen en ese problema y sus relaciones. El ejemplo
más típico es el Modelo Entidad-Relación. Para conseguir es-
tos esquemas se utilizan modelos de datos. El paso entre cada
esquema se sigue con unas directrices concretas. Estas direc-
trices permiten adaptar un esquema hacia otro.

Los modelos conceptuales utilizan conceptos como entidades,


atributos y relaciones. Una entidad representa un objeto o con-
cepto del mundo real como, por ejemplo, un cliente de una empresa o una de sus facturas.
16
Un atributo representa alguna propiedad de interés de una entidad como, por ejemplo, el nombre o el domicilio del
cliente. Una relación describe una interacción entre dos o más entidades, por ejemplo, la relación que hay entre un
cliente y las facturas que se le han realizado. Las tareas a realizar en el diseño conceptual son los siguientes:

A. Identificar las entidades.


B. Identificar las relaciones.
C. Identificar los atributos y asociarlos a entidades y relaciones.
D. Determinar los dominios de os atributos
E. Determinar los identificadores
F. Determinar las jerarquías de generalización (si las hay).
G. Dibujar el diagrama entidad-relación.
H. Revisar el esquema conceptual local con el usuario.

2.9.2. Modelo de datos lógico


Son orientados a las operaciones más que a la descripción de una realidad. Usualmente están implementados en
algún Manejador de Base de Datos. Los más comunes son:

A. Modelo jerárquico. En este modelo los datos se organizan en una forma


similar a un árbol (visto al revés), en donde un nodo padre de información
puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a
los nodos que no tienen hijos se los conoce como hojas. Las bases de datos
jerárquicas son especialmente útiles en el caso de aplicaciones que mane-
jan un gran volumen de información y datos muy compartidos permitiendo
crear estructuras estables y de gran rendimiento.

B. Modelo de red. Éste es un modelo ligeramente distinto del jerárquico; su di-


ferencia fundamental es la modificación del concepto de nodo: se permite
que un mismo nodo tenga varios padres (posibilidad no permitida en el mo-
delo jerárquico). Fue una gran mejora con respecto al modelo jerárquico, ya
que ofrecía una solución eficiente al problema de redundancia de datos; pe-
ro, aun así, la dificultad que significa administrar la información en una base
de datos de red ha significado que sea un modelo utilizado en su mayoría
por programadores más que por usuarios.

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:

 Base de datos multimedia incorpora elementos multimedia, tales como


imágenes, que no se podrían almacenar en una base de datos relacional.
 Base de datos de hipertexto permite que cualquier objeto se conecte a
cualquier otro objeto. Es útil para organizar lotes de datos disímiles, pero no
es ideal para análisis numérico.

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.1. Simbología – diagrama del modelo Entidad - Relación


Descripción Símbolo

Rectángulo: Representa conjunto de entidades Entidad

Elipse: representa los Atributos Atributo

Rombos Representa los conjuntos de Relaciones Relación

Líneas: conectan los Atributos a los conjuntos de Entidades y


Conexión
los conjuntos de Relaciones

Simbología del modelo Entidad - Relación Extendida


Conjunto de Conjunto de Conjunto de Clave primaria Atributo
Entidades Entidades Débiles Relaciones

Atributo Derivada Atributo discriminador de un Especialización y


Atributo Multivariado
conjunto de entidades débiles Generalización

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:

Representa una “cosa, objeto o elemento" real o abstracto del mundo


real con existencia independiente, es decir, se diferencia uno de otro
objeto o cosa, incluso siendo del mismo tipo, o una misma entidad.
Ejemplo: Una persona. (Se diferencia de cualquier otra persona, inclu-
so siendo gemelos). Una entidad puede ser un objeto con existencia fí-
sica como: una persona, un animal, una casa, etc. (entidad concreta); o un objeto con existencia conceptual como: un
puesto de trabajo, una asignatura de clases, un nombre, etc. (entidad abstracta).

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

3.3. Conjunto de entidades


En la actualidad se suele llamar entidad a lo que anteriormente se ha definido como
conjunto de entidades. De este modo hablaríamos de la entidad PERSONAS. Mien-
tras que cada persona en concreto sería una ocurrencia o un ejemplar de la entidad
persona.

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.

3.4. Atributos (campos)


Una entidad se caracteriza y distingue de otra por los atributos, en ocasiones lla-
madas propiedades, que representan las características de una entidad.

Describen propiedades de las entidades y las relaciones. En este modelo se repre-


sentan con un círculo, dentro del cual se coloca el nombre del atributo. Ejemplo:
Los atributos son las características que definen o identifican a una entidad.

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.

(1, Sofía, 38 años, 2154567)


(2, Josefa, 19 años, 5237812)
(3, Carlos, 20 años, 2912045)
20
Existen diferentes tipos de atributos:

B. Opcionales: C. Múltiple: Pue-


A. Compuesto Pueden tener va- den tomar va-
lor nulo rios valores

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:

Si tenemos dos entidades, "CLIENTE" y "HABITACIÓN", podemos en-


tender la relación entre ambas al tomar un caso concreto (ocurrencia) de cada una de ellas. Entonces, podríamos tener
la ocurrencia "Habitación 502", de la entidad "HABITACIÓN" y la ocurrencia "Henry Johnson Mcfly Bogard", de la enti-
dad "CLIENTE", entre las que es posible relacionar que la habitación 502 se encuentra ocupada por el huésped de
nombre Henry.

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.

Conjunto de relaciones. Consiste en una colección, o conjunto de rela-


ciones de la misma naturaleza. Dados los conjuntos de entida-
des "Habitación" y "Huésped", todas las relaciones de la forma habitación-
huésped, permiten obtener la información de los huéspedes y sus respec-
tivas habitaciones.

La representación gráfica de las entidades se realiza con un rombo al que


se le unen líneas que se dirigen a las entidades, las relaciones tienen
nombre (se suele usar un verbo). En el ejemplo anterior podría usarse como nombre de relación, trabajar.

21
Relación binaria Relación ternaria

Relación doble Relación reflexiva

3.6. Identificador (llave o clave primaria)


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

La distinción de una entidad entre otra se debe a sus atributos, lo


cual la hace única. Una llave primaria es aquel atributo el cual
consideramos clave para la identificación de los demás atributos
que describen a la entidad.

La clave o llave primaria es un campo, o grupo de campos que


identifica en forma única un registro. Ningún otro registro puede te-
ner la misma llave primaria. La llave primaria se utiliza para distin-
guir un registro con el fin de que se pueda tener acceso a ellos, or-
ganizarlos y manipularlos. En el caso de un registro de un emplea-
do, él número de este representa un ejemplo de una llave primaria.

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. Uno a uno (1:1)


B. Uno a muchos (1:N)
C. Muchos a uno (N:1)
D. Muchos a muchos (N:N)

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)

3.7.1. Correspondencia de cardinalidades:


Dado un conjunto de relaciones en el que participan dos o más conjuntos de entidades, la correspondencia de car-
dinalidad indica el número de entidades con las que puede estar relacionada una entidad dada. Dado un conjunto
de relaciones binarias y los conjuntos de entidades A y B, la correspondencia de cardinalidades puede ser:

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:

3.8. Pasos para elaborar un diagrama Entidad - Relación


A. Se parte de una descripción textual del problema o sistema de información a automatizar (los requisitos).
B. Se hace una lista de los sustantivos (posibles entidades o atributos) y verbos (posibles relaciones).
C. Se identifican las claves de entidad (identificadores)
D. Analizando las frases se determina la cardinalidad (tipo de relación) y otros detalles.
E. Identificar las llaves o claves primarias.
F. Identificar entidades fuertes y débiles
G. Se elabora el diagrama entidad-relación.

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:

B. Venta de productos a varios clientes

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

Una empresa de paquetería desea sistematizar la gestión de reparto en toda la república:

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

Ejercicio 1. Control de clases

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:

Ejercicio 2. Agencia de viajes

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:

Ejercicio 3. Concesionaria de automóviles

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:

Ejercicio 6. Liga de futbol

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.

Ejercicio 7. Organización de una empresa

“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:

Ejercicio 8. Control de accidentes

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:

Ejercicio 10. Cadena de hoteles

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:

Ejercicio 12. UAEM

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:

Ejercicio 13. Banca Santander

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:

Ejercicio 14. Sistema de ventas, Mueblería “El Refugio”

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.

4.2. Conceptos del modelo relacional


A. RELACIÓN: Puede ser vista como una tabla. Se define por R.
B. TUPLAS: Son los elementos, filas o registros de una relación en una tabla (cada ejemplar que la tabla representa),
se definen por d.
C. ATRIBUTOS: Son los nombres de las columnas o campos de la relación de una tabla. El conjunto (ordenado) de
todos los atributos de una relación R es el esquema de R. Nos podemos referir a los atributos de una relación me-
diante su nombre o por la posición (número de columna) que el atributo ocupa en el esquema de la relación.
D. DOMINIO: Es la colección o conjunto de valores posibles representables para un determinado atributo. Es decir, las
restricciones de los valores de cada campo, nombre menor de 50 caracteres, RFC de formato 11111111-A, etc. Se
define por D.
E. GRADO O ARIDAD DE LA RELACIÓN: Número de atributos o columnas de la relación de una tabla.
F. CARDINALIDAD DE LA RELACIÓN: Es el número de tuplas o registros de la relación de una tabla.

Término relacional formal Equivalente informal


Relación Tabla
Tupla Fila o registro
Cardinalidad Número de filas o registros
Atributo Columna o campo
Grado Número de columnas o campos
Clave primaria Identificador único
Dominio Fondos de valores legales

Una relación consta de 2 partes:


Cabecera ID PROFESOR CURSO AÑO DEPARTAMENTO
1 Isabel Bases de Datos 1991 Informática
2 Marcos Física 1994 Ciencias
Cuerpo 3 Verónica Modelado 1995 Informática
4 Clara Matemáticas 1994 Ciencias
5 Martha Lingüística 1990 Lexicografía

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. Relaciones e interrelaciones


Sería conveniente que la base de datos a la que pertenece esta relación contuviese también información sobre los datos
personales de los profesores, descripción de los cursos ofrecidos y descripción de los distintos departamentos. Si qui-
siéramos incluir toda esta información en una tabla, esta debería contener, al menos, los siguientes atribu-
tos (columnas):

PROFESOR_COD PROFESOR_NOMBRE PROFESOR_DIRECCIÓN


PROFESOR_TELÉFONO PROFESOR_DEPTO DEPTO_COD
DEPTO_NOMBRE DEPTO_DESC CURSO_COD
CURSO_NOMBRE CURSO_DESC CURSO_NIVEL
CURSO_AÑO

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.

4.4.2. Solución con el modelo relacional


El modelo relacional ofrece una buena solución a este problema, que nos permite reducir la redundancia de datos al
mínimo y agilizar las operaciones de consulta y actualización. Lo que deberíamos hacer es separar la información
que se refiere a las tres entidades que tenemos (profesores, cursos y departamentos) en tres relaciones indepen-
dientes, y después relacionarlas entre sí.

4.5. Reglas para Transformación del MER al Modelo Relacional


Para transformar un modelo entidad-relación a modelo relacional seguiremos las siguientes reglas:

1. Toda entidad del modelo entidad-relación se transforma en una tabla.


2. Cualquier atributo de una entidad se transforma en un campo dentro la tabla, manteniendo las claves prima-
rias.
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.

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:

CLIENTE(curp, nombre, apellidos)


PRODUCTO(código, descripción)
COMPRA(curp_cliente, código_producto, fecha_compra)

4. En las relaciones 1:N – (1:1), se pueden tener dos casos:


a) Si la entidad que participa con cardinalidad máxima uno lo hace también con cardinalidad mínima uno, entonces
se propaga el atributo de la entidad que tiene cardinalidad máxima 1 a la que tiene cardinalidad máxima N, des-
apareciendo el nombre de la relación. Si existen atributos en la relación éstos también se propagarán.

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.

El modelo relacional quedaría de la siguiente manera:


EMPLEADO(rfc, nombre, salario, código_departamento)
DEPARTAMENTO(código, nombre, ubicación)

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:

EMPLEADO(rfc, nombre, salario)


DEPARTAMENTO(código, nombre, ubicacion)
PERTENECE(rfc_empleado, código_departamento)

5. En el caso de las relaciones 1:1 también pueden darse dos casos:


a) Si las entidades poseen cardinalidades (0,1), la relación se convierte en una tabla.

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:

EQUIPO(código, nombre, año_fundación)


PRESIDENTE(curp, nombre, código_equipo)
EQUIPO(código, nombre, año_fundación, rfc_presidente)
PRESIDENTE(curp, nombre)

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.

4.6. Pasos para convertir modelo e/ r al modelo relacional


A. Por cada entidad, definir una tabla cuyo nombre es el mismo que el nombre de la entidad y cuyas columnas co-
rresponden a los atributos de la entidad.
B. La clave principal de cada tabla correspondiente clave principal de la entidad proveniente.
C. Por cada relación uno a muchos, agregar a la tabla del lado muchos una clave foránea, correspondiente a la clave
principal de la entidad uno.
D. Por cada relación uno a uno en la cual las claves principales de las entidades relacionadas son diferentes, agregar
a la tabla correspondiente a una de las entidades una clave foránea asociada con la clave principal de la otra enti-
dad; estableciendo la propiedad Indexado: Si (Sin Duplicados)
E. Por cada relación muchos a muchos definir una tabla adicional (tabla de enlace, tabla de unión o tabla puente),
cuyos atributos corresponden a las claves primarias de cada entidad involucrada en esa asociación o relación.
Agregar también los atributos de la relación, si existen. La clave principal de la nueva tabla es la suma de las dos
claves primarias.

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 2. Agencia de viajes

Ejercicio 3. Concesionaria de automóviles

Ejercicio 4. Biblioteca

Ejercicio 5. Academia de clases

Ejercicio 6. Liga de futbol

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 7. Organización de una empresa

Ejercicio 8. Control de accidentes

Ejercicio 9. proyectos

41
Ejercicio 10. Cadena de hoteles

Ejercicio 11. Agencia de viajes

Ejercicio 12. UAEM

Ejercicio 13. Banca Santander

Ejercicio 14. Sistema de ventas, Mueblería “El Refugio”

42
5. MANEJO DE BASES DE DATOS

5.1. Sistema de bases de datos


Un sistema de bases de datos sirve para integrar los datos. Lo componen los siguientes elementos:

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.

5.2. Sistema gestor de bases de datos


Un Sistema Gestor de Base de Datos (SGBD, en inglés DBMS: DataBase Management System) es un sistema de soft-
ware que permite la definición de bases de datos; así como la elección de las estructuras de datos necesarios para el
almacenamiento y búsqueda de los datos, ya sea de forma interactiva o a través de un lenguaje de programación. Un
SGBD relacional es un modelo de datos que facilita a los usuarios describir los datos que serán almacenados en la base
de datos junto con un grupo de operaciones para manejar los 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.

5.6. Características principales


Inicialmente, MySQL carecía de algunos elementos esenciales en las bases de datos relacionales, tales como integridad
referencial y transacciones. A pesar de esto, atrajo a los desarrolladores de páginas web con contenido dinámico, debi-
do a su simplicidad, de tal manera que los elementos faltantes fueron complementados por la vía de las aplicaciones
que la utilizan. Poco a poco estos elementos faltantes, están siendo incorporados tanto por desarrolladores internos,
como por desarrolladores de software libre. En las últimas versiones se pueden destacar las siguientes características
principales:

A. El principal objetivo de MySQL es velocidad y robustez.


B. Soporta gran cantidad de tipos de datos para las columnas.
C. Gran portabilidad entre sistemas, puede trabajar en distintas plataformas y sistemas operativos.
D. Cada base de datos cuenta con 3 archivos: Uno de estructura, uno de datos y uno de índice y soporta hasta 32 ín-
dices por tabla.
E. Aprovecha la potencia de sistemas multiproceso, gracias a su implementación multihilo.
F. Flexible sistema de contraseñas (passwords) y gestión de usuarios, con un muy buen nivel de seguridad en los da-
tos.
G. El servidor soporta mensajes de error en distintas lenguas

5.7. Ventajas y desventajas


A. Ventajas
 Velocidad al realizar las operaciones, lo que le hace uno de los gestores con mejor rendimiento.
 Bajo costo en requerimientos para la elaboración de bases de datos, ya que debido a su bajo consumo puede
ser ejecutado en una máquina con escasos recursos sin ningún problema.
 Facilidad de configuración e instalación.
 Soporta gran variedad de Sistemas Operativos
 Baja probabilidad de corromper datos, incluso si los errores no se producen en el propio gestor, sino en el sis-
tema en el que está.
 Conectividad y seguridad
B. Desventajas
 Un gran porcentaje de las utilidades de MySQL no están documentadas.
 No es intuitivo, como otros programas (ACCESS).

5.8. Mysql y el código abierto


MySQL es un sistema gestor de bases de datos. Pero la virtud fundamental y la clave de su éxito es que se trata de un
sistema de libre distribución y de código abierto. Lo primero significa que se puede descargar libremente de Internet
(por ejemplo de la dirección (www.mysql.com); lo segundo (código abierto) significa que cualquier programador puede
remodelar el código de la aplicación para mejorarlo.
44
Esa es también la base del funcionamiento del sistema Linux, por eso MySQL se distribuye fundamentalmente para Li-
nux, aunque también hay versiones para Windows. Existen cuatro versiones de MySQL:

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.

5.9. Entradas de comando en el monitor


MySQL utiliza el lenguaje SQL de bases de datos para trabajar. Esas serán las sentencias que normalmente se utilizan
en el monitor. Sobre los comandos hay que tener en cuenta que:

A. Da lo mismo escribir en mayúsculas o en minúsculas


B. Todos los comandos terminan con el símbolo “;”
C. El comando termina su ejecución si en la línea de comandos observamos el texto mysql>
D. Se pueden realizar operaciones aritméticas (3*6)
E. En la misma línea se pueden colocar dos comandos (por ejemplo: SELECT 3*6; SELECT SIN(PI());) siempre y
cuando los puntos y comas se coloquen de forma adecuada
F. Una instrucción puede abarcar más de 1 línea (para informar que no ha terminado la instrucción, el monitor coloca
el símbolo “->”, en lugar del normal “mysql>”). Ejemplo:

mysql> SELECT * FROM clientes


-->WHERE apellido="Jiménez";

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

5.10. Creando bases de datos


MySQL almacena las bases de datos en la carpeta data que está en la carpeta raíz de la instalación del programa. Ca-
da base de datos crea una carpeta en la que aparecen los archivos necesarios para el correcto funcionamiento de la
aplicación.

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.

5.10.2. Utilizar una base de datos


El comando use nos permite utilizar una base de datos. Es (junto a quit) el único
comando que no requiere punto y coma.

mysql> use test

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

5.10.3. Crear una base de datos


Se realiza de esta forma:

mysql>create database prueba;


Query OK, 1 row affected (0.00 sec)

La base de datos recién creada estará representada por una carpeta dentro de la carpeta data de mysql.

5.10.4. Borrar bases de datos


Se trata del comando drop database al cual le sigue el nombre de la base de datos.

mysql>drop database prueba;


Query OK, 0 rows affected (0.00 sec)

5.11. Manejo de tablas

5.11.1. Mostrar tablas


El comando show tables; muestra las tablas de la base de datos actual. Ejemplo: Se puede
utilizar la sintaxis show tables from bd, donde bd es el nombre de una base de datos que
no tiene por qué estar en uso.

5.11.2. Tipos de datos

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”);

5.11.3. Crear tablas


Esta es ya una operación muy importante. Es el comando create table el que la realiza. Este comando funciona con
esta sintaxis:

create table nombreTabla (nombrecampo1 tipodatos(tamaño), nombrecampo2 tipodatos(tamaño),....);

Ejemplo: mysql> create table personas (nombre varchar(30),

->apellido1 varchar(30), apellido2 varchar(30),


->teléfono varchar(9));
Query OK, 0 rows affected (0.01 sec)

5.11.4. Estructura de las tablas


El comando describe seguido del nombre de una tabla, nos permite ver la estructura completa de una tabla. Ejem-
plo:

5.11.5. Introducir datos en una tabla

Hay dos métodos.

El comando Insert. Permite añadir datos manualmente a una tabla. Ejemplo:

mysql> insert into personas values('Pedro',

->'Hernández','Crespo','979898989'); Query OK, 1 row affected (0.00 sec)

48
El orden de los datos debe corresponder con el de los campos de la tabla. También se puede indicar los campos:

mysql> insert into personas (nombre,apellido1,apellido2)


-> values ('Pedro','Hernández',"crespo");

En ese caso la columna del teléfono tomaría el valor null indicando que está vacío.

Insertar datos en una tabla desde un archivo externo.


Otra manera más poderosa es utilizar un archivo externo en el que se colocan los datos de la tabla. En ese archivo,
cada registro se separa con un carácter concreto (que suelen ser los caracteres \r \n, resultado de la tecla intro). A
su vez en el mismo registro, cada campo se separa con otro carácter (coma por ejemplo) y los valores de los cam-
pos podrían ir delimitados con otros caracteres (como las comillas).

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:

load data local infile "ruta" into table tabla;

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:

mysql>load data infile


->“C:\\mysql\data\prueba\texto.txt”
->into table personas
->(nombre, rfc, apellido1, apellido2);

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):

mysql -u administrador -p -h localhost --local-infile=1

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 ‘”’

lines terminated by “\r\n”;

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

5.11.6. Indicar opciones en los campos en la creación


Durante la creación de campos se pueden indicar opciones (las opciones se enumeran más abajo) sobre los cam-
pos. Estas opciones se colocan tras el tipo de datos del campo. Ejemplo (not null y unique):

mysql> create table personas (nombre varchar(30) not null,


->apellido1 varchar(30), apellido2 varchar(30),
->teléfono varchar(9) unique);

5.11.7. Establecimiento de la clave durante la creación


Se puede añadir la palabra primary key tras el tipo de datos del campo que se desea sea la clave de la tabla. Si la
clave es más de un campo se realiza colocando la palabra primary key como nombre de campo, seguida de los
campos que forman la clave entre paréntesis. Ejemplo:

mysql> create table pieza (codigo1 varchar(5),


->codigo2 int(2), peso int,
->descripcion text,
->primary key (codigo1, codigo2);

5.11.8. Operaciones con tablas


A. modificar tablas.
Es el comando alter table el encargado. Con el atributo change modifica un campo. Con el atributo rename
cambia de nombre una tabla

mysql>alter table personas change nombre nombre varchar(20);

En el ejemplo el nombre pasa a tener tamaño 20.

mysql>alter table personas change nombre identif


-->varchar(20);

El campo nombre pasa a llamarse identif.:

mysql>alter table personas change identif nombre


50
-->varchar(25) not null default "pepe";

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

B. Cambio de nombre de la tabla: mysql>alter table personas rename clientes;

C. borrar tablas. Se usa la sintaxis: drop table seguida del nombre de la tabla.

D. borrar columnas. La sintaxis es: alter table tabla drop columnaABorrar;

E. añadir columnas. Se usa: alter table tabla add nuevaColumna Tipo...;

F. varias operaciones a la vez.


Se pueden realizar varias operaciones a la vez mediante la instrucción alter table si se separan con comas:

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.

5.11.9. Tablas innodb


MySQL proporciona un motor de gestión de base de datos llamado innoDB que permite una mayor potencia sobre
el control y gestión de tablas. Las tablas normales, son creadas con el motor myISAM, para hacer que sean in-
noDB, basta con colocar el texto type=innoDB tras la lista de campos de la tabla en la creación.
También se puede convertir una tabla al tipo innoDB si se ejecuta la orden:

alter table tabla type=innoDB;

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:

create index nombreÍndice ON tabla (lista_campos);

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:

alter table tabla add index (lista_campos)

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:

alter table clientes add index nombreCompleto(apellidos, nombre);

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:

alter table clientes add unique index nombreCompleto(apellidos, nombre);

claves principales.
Si se pone como nombre del índice la palabra primary key, entonces el índice crea la clave principal de la tabla:

alter table clientes add primary key (campos);

Si se desea eliminar el índice:

drop index (índice) ON tabla;

También (recomendada desde la versión 3.23):

alter table tabla drop index (índice);


alter table tabla drop primary key;

En la creación de una tabla se pueden crear también los índices. Ejemplo:

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:

create table tabla (lista y propiedades de campo e índices,


constraint nombreDeClave
foreign key (camposQueFormaClave)
references tabla (camposClaveDeLatabla));

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

5.12.1. Obtener registros. Select


La instrucción select es la fundamental del lenguaje SQL y por tanto de MySQL. Esta instrucción permite realizar
consultas sobre la base de datos. El formato básico de la instrucción es:

select ListaDecampos from tablas where condición;

seleccionar todos los datos

El campo especial “*” sirve para representar todos los campos de una tabla. Así la instrucción:

select * from personas;

muestra todos los campos de la tabla personas.

seleccionar campos concretos

Se puede indicar la lista exacta de campos que queremos que aparezcan en la consulta. Por ejemplo:

select nombre, apellido1, apellido2 from personas;

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;
select nombre, apellido1, apellido2 from personas
where edad>25;

También se puede realizar consultas con el operador OR o AND:

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:

select * from personas where apellido1 like “g%”;

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:

expresión like significado


“g%” Que empiece por g
“%g” Que termine por g
“%g%” Que tenga una g
“” Que tenga cinco caracteres

Esto se puede extender de forma más poderosa utilizando regexp en lugar de like.
regexp permite utilizar expresiones regulares. Algunas posibilidades son:

expresión regular significado


“.” Cualquier carácter, pero sólo uno
“[xyz]” El carácter x, el y o el z
“[x-z] Igual que el anterior
“[0-9]” Cualquier número
“x*” Una o más equis
“.*” Cualquier número de caracteres
“^b” Que empiece por b
“b$” Que termine por b
“[69].*” Que empiece por 6 o por 9
“^[69]” Que empiece por 6 o por 9
“^.....$” Que tenga exactamente cinco caracteres
“^.{5}$” Que tenga exactamente cinco caracteres

ordenar

La cláusula order by sirve para ordenar en base a una o más columnas. Ejemplo:

select * from personas order by apellido1, apellido2, nombre;

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:

select * from personas order by edad desc;

consultas de campos calculados

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:

select precio, precio * 0.16 from articulos;

El resultado sería:

A la columna ( o columnas) de cálculo se le puede poner nombre haciendo uso de as. Ejemplo:

select precio, precio * 0.16 as iva from articulos;

Se pueden usar expresiones que usen funciones internas. Ejemplo:

select concat(nombre,” “,apellidos) from personas;

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;

select provincia from localidades group by provincia;

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:

select provincia, count(*) from localidades group by provincia;

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:

select provincia, sum(habitantes) from localidades group by provincia;

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

uso de consultas para almacenar valores a archivos externos

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:

update tabla set columna1=valor1, columna2=valor2,... where


condición;

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:

delete from tabla where condición;

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:

select nombre, apellidos, fecha_alquiler from cliente, alquiler where cliente.rfc=alquiler.rfc;

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:

select cliente.nombre, cliente.apellidos, fecha_alquiler


from cliente, alquiler where cliente.rfc=alquiler.rfc;

Se puede poner un alias a las tablas con la palabra as:

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:

select nombre, apellidos, fecha_alquiler from clientes join alquiler on clientes.rfc=alquiler.rfc;

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 )

Ejercicio 2. Agencia de viajes (PRICETRAVEL)

Ejercicio 3. Concesionaria de automóviles (CONCESIONARIA)

Ejercicio 4. Biblioteca (BIBLIOTECA)

Ejercicio 5. Academia de clases (MAHOI)

Ejercicio 6. Liga de futbol (LIGA)

Ejercicio 7. Organización de una empresa (EMPRESA)

Ejercicio 8. Control de accidentes (ACCIDENTES)

Ejercicio 9. proyectos (PROYECTOS)

Ejercicio 10. Cadena de hoteles (HOTELES)

Ejercicio 11. Agencia de viajes (BOJORQUEZ)

Ejercicio 12. Universidad (UAEM)

Ejercicio 13. Banca (SANTANDER)

Ejercicio 14. Sistema de ventas (VENTAS)

58

Potrebbero piacerti anche