Sie sind auf Seite 1von 67

Base de Datos I

BASES DE DATOS I
INGENIERÍA DE SISTEMAS
Bases de Datos I
sfs

2
© Corporación Universitaria
Remington
Quinta edición
2018

Bases de Datos I
Luisa María Jiménez Ramos, Guiovanny A. Cárdenas Flórez
Facultad de Ciencias Básicas e Ingeniería

Editorial Uniremington
Medellín, Colombia
Derechos Reservados

Primera edición: 2011


Segunda edición: 2012
Tercera edición: 2015
Cuarta edición: 2016
Quinta edición: 2018

Responsables
Jorge Mauricio Sepúlveda Castaño
Decano de la Facultad de Ciencias Básicas e Ingeniería
jsepulveda@uniremington.edu.co

Francisco Javier Álvarez Gómez


Coordinador CUR-Virtual
falvarez@uniremington.edu.co

Edición y Montaje
Vicerrectoría de Educación a Distancia y Virtual
Equipo de diseño gráfico

www.uniremington.edu.co
virtual@uniremington.edu.co

Derechos reservados: El módulo de estudio del curso de BASE DE


DATOS I es propiedad de la Corporación Universitaria Remington; las
imágenes fueron tomadas de diferentes fuentes que se relacionan en
los derechos de autor y las citas en la bibliografía. El contenido del
módulo está protegido por las leyes de derechos de autor que rigen al
país. Este material tiene fines educativos y no puede usarse con
propósitos económicos o comerciales. El autor(es) certificó (de manera
verbal o escrita) No haber incurrido en fraude científico, plagio o vicios
de autoría; en caso contrario eximió de toda responsabilidad a la
Corporación Universitaria Remington y se declaró como el único
responsable.

Esta obra es publicada bajo la licencia Creative Commons.


Reconocimiento-No Comercial-Compartir Igual 2.5 Colombia
Bases de Datos I
sfs

3
TABLA DE CONTENIDO
Pág.

1 UNIDAD 1 INTRODUCCIÓN Y CONCEPTUALIZACIÓN 7

1.1 TEMA 1 DEFINICIÓN, HISTORIA Y CONCEPTOS CLAVES DE LAS BASES DE DATOS. 7


1.1.1 TALLER DE ENTRENAMIENTO 7
1.1.2 HISTORIA 8
1.1.3 TIPO DE BASES DE DATOS 9
1.1.4 MODELOS DE BASES DE DATOS 12
1.1.5 TALLER DE ENTRENAMIENTO 14
1.1.6 SISTEMAS DE GESTIÓN DE BASES DE DATOS (SGBD) 14

1.2 TEMA 2 MOTORES DE BASES DE DATOS 15


1.2.1 ORACLE 16
1.2.2 SQL SERVER 16
1.2.3 POSTGRESQL 17
1.2.4 MYSQL 18
1.2.5 TALLER DE ENTRENAMIENTO 18

1.3 TEMA 3 EL LENGUAJE SQL 19


1.3.1 COMANDOS 19
1.3.2 CLÁUSULAS 20
1.3.3 OPERADORES 20
1.3.4 COMPARACIÓN 20
1.3.5 FUNCIONES 21
1.3.6 LENGUAJE SQL Y EL MOTOR DE BASE DE DATOS MYSQL 21

2 UNIDAD 2 MODELANDO BASES DE DATOS 22

2.1 TEMA 1 MODELO ENTIDAD RELACIÓN 23


2.1.1 ELABORAR UN MODELO ER 25
2.1.2 NORMALIZACIÓN 26

2.2 TEMA 2 ESTRUCTURA DE UNA BASE DE DATOS 30


2.2.1 CREACIÓN DE UNA BASE DE DATOS. 33
2.2.2 CREACIÓN DE TABLAS. 34
2.2.3 RELACIÓN DE TABLAS. 37
2.2.4 EJERCICIO DE APRENDIZAJE 39
2.2.5 TALLER DE ENTRENAMIENTO 39

2.3 TEMA 3 INSTRUCCIONES DE MANIPULACIÓN DE DATOS. 40


2.3.1 TALLER DE ENTRENAMIENTO 44

2.4 TEMA 4 INSTRUCCIONES PARA LA RECUPERACIÓN DATOS. 44

3 UNIDAD 3 GOBERNABILIDAD Y GESTIÓN DE UN MOTOR DE BASE DE DATOS 49


Bases de Datos I
sfs

4 3.1 TEMA 1 FUNCIONES EN CASCADA, RELACIONES Y PROCEDIMIENTO DE ALMACENAMIENTO. 49


3.1.1 EJERCICIO DE APRENDIZAJE: 50
3.1.2 RELACIONES 55
3.1.3 OTRAS FUNCIONES 55
3.1.4 SUBCONSULTAS 57
3.1.5 PROCEDIMIENTOS ALMACENADOS: 58

3.2 TEMA 2 TRIGGERS 62

4 GLOSARIO 65

5 BIBLIOGRAFÍA 67
Bases de Datos I
sfs

5 PROPÓSITO GENERAL

BASES DE
DATOS I

El propósito del curso está orientado a que los estudiantes logren comprender los
conceptos esenciales de Base de Datos, modelo relacional, normalización de una base de
datos con el fin de aplicar gobernabilidad en la información y manipulación de datos.
Bases de Datos I
sfs

6
BASES DE
DATOS I

OBJETIVO GENERAL
Desarrollar las competencias necesarias para la realización de propuestas de
solución de bases de datos bajo la reglamentación de normalizaciones formales,
acatando todos los parámetros en que se basa la construcción de software de
alta calidad.

OBJETIVOS ESPECÍFICOS
 Identificar los conceptos y la terminología implementada en la
construcción de base de datos, haciendo uso de buscadores y meta
buscadores que orienten la aprehensión conceptual de la temática
abordada.

 Implementar soluciones de bases de datos desde una problemática


planteada haciendo uso del modelo, entidad, relación, modelo relacional y
la normalización de las tablas en busca de optimizar recursos.

 Aplicar las sentencias de consulta de bases de datos de manera simple y


compleja para la gobernabilidad de la misma por medio de un sistema
motor de base de datos.

UNIDAD 1 UNIDAD 2 UNIDAD 3

Introducción y Modelando Bases de Gobernabilidad y


Conceptualización Datos Gestión de un motor
de Bases de Datos
Bases de Datos I
sfs

7
1 UNIDAD 1 INTRODUCCIÓN Y CONCEPTUALIZACIÓN
Las bases de datos pertenecen al campo de la ingeniería de software y hoy en día son la base
fundamental para el desarrollo de sistemas de información que dan solución a las necesidades de
las organizaciones a nivel mundial.

Durante esta unidad se presenta la definición, historia y conceptos básicos de las bases de datos,
lo que permitirá entrar en el mundo de la gestión y procesamiento de la información.

1.1 TEMA 1 DEFINICIÓN, HISTORIA Y CONCEPTOS CLAVES DE


LAS BASES DE DATOS.
Las bases de datos son una colección de datos relacionados entre sí que combinados entre si
ofrecen información valiosa para una organización o persona.

Los datos almacenados se encuentran dispuestos en un solo lugar, de tal forma que esto permita
el acceso a los mismos desde múltiples ubicaciones siendo un recurso corporativo compartido
que provee información valiosa para el correcto funcionamiento de los procesos y
procedimientos de una institución.

TIPS
Base de datos: colección de datos relacionados

1.1.1 TALLER DE ENTRENAMIENTO


HISTORIA Y EVOLUCIÓN BASES DE DATOS
El siguiente taller de entrenamiento se propone para validar la aprehensión de los conceptos. Se
debe leer detenidamente la pregunta propuesta y dar respuesta a ella.

1. Después de revisar el video y el enlace propuesto sobre la historia y evolución de las bases de
datos, determine los actores y aportes más importantes realizados en cada década.
Bases de Datos I
sfs

8 1.1.2 HISTORIA
La historia de las bases de datos está determinada por su evaluación en cada década y por los
principales actores de cada momento. Actualmente, las bases de datos están teniendo un
impacto decisivo sobre el creciente uso de las computadoras y el apoyo que estas ofrecen a las
organizaciones como factor de decisión. Las Décadas más importantes son 1950, 1960, 1970,
1980, 1990 y 2000.

TIPS
La llegada del internet fue crucial para la evolución de las bases
de datos

Imagen 1. Historia de la base de datos

Fuente. Elaboración del autor

Las bases de datos surgen a principios de los años 50 con la aparición de las cintas magnéticas y
el sistema de ficheros; posteriormente en los 60 se crean los discos magnéticos que permitían el
acceso a la información de forma selectiva lo que dio paso a las bases de datos jerárquicas y en
red.

Las bases de datos relacionales surgen en los 70 como respuesta a una serie de análisis de IBM el
cual a su vez lanza el primer motor de base de datos llamado DB2 en los 80. En la siguiente década,
aparecen las bases de datos paralelas, las bases de datos orientadas a objetos y las bases de datos
Bases de Datos I
sfs

9 distribuidas, danto paso a una nueva era de almacenamiento de la información y su articulación


con el internet.

Finalmente, en la era moderna del nuevo milenio, las bases de datos multidimensionales y los
cubos de información dieron soporte al software de decisión que hoy en día es el centro de toma
de decisiones gerenciales de las grandes empresas a nivel mundial.

TIPS
IBM: International Business Machines, fundada en 1911; seis de
sus empleados han recibido Premio Nobel por sus
investigaciones en información.

1.1.3 TIPO DE BASES DE DATOS


Las bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que se esté
manejando, la utilidad de las mismas o las necesidades que satisfagan.

Las bases de datos se clasifican de acuerdo a su generación, es decir desde su creación; no


obstante, actualmente las más utilizadas son las distribuidas y multidimensionales ya que podría
decirse que son la evolución y contienen a su vez las demás generaciones.

Existen diversos tipos de base de datos y su ordenamiento depende de cada usuario; por lo tanto,
podemos encontrar diversas opiniones en la red sobre cómo deben o no organizarse. El objetivo
de este curso no es diferir o acordar estos tipos de base de datos sino conocer lo más posible para
tener una apreciación global de cómo funcionan y porque serán la base para el desarrollo de la
ingeniería de sistemas.

Imagen 2. Generaciones de las bases de datos


Bases de Datos I
sfs

10

Fuente. Elaboración del autor

Según la variabilidad de los datos se puede decir que existen dos tipos de base de datos, las bases
de datos estáticas y las dinámicas

Tabla 1. Bases de datos según la variabilidad de los datos

Son bases de datos únicamente de lectura, utilizadas primordialmente


para almacenar datos históricos que posteriormente se pueden utilizar
para:
Bases de datos
estadísticos  Estudiar el comportamiento de un conjunto de datos a través del
tiempo,
 Realizar proyecciones,
Bases de Datos I
sfs

11  Tomar decisiones y
 Realizar análisis de datos para inteligencia empresarial.

Son bases de datos donde la información almacenada se modifica con el


tiempo, permitiendo operaciones como:
Bases de datos  Actualización
dinámicas  Borrado
 Consulta
Fuente. Elaboración del autor

Según el contenido existen bases de datos geográficas, deductivas, documentales, entre otras.

Tabla 2. Bases de datos según el contenido

Son bases de datos que permiten realizar un proceso de indexación de


texto para agilizar los procesos de búsqueda; esto permite realizar
solicitudes complejas con gran rapidez en documentos de gran longitud.
Bases de datos
 Consulta bibliográfica
geográficos
 Google académico
 Bases de datos digitales de educación

Son bases de datos que permiten realizar un proceso de indexación de


texto para agilizar los procesos de búsqueda; esto permite realizar
solicitudes complejas con gran rapidez en documentos de gran longitud.
Bases de datos
 Consulta bibliográfica
deductivos
 Google académico

 Bases de datos digitales de educación

Son bases de datos que permiten realizar un proceso de indexación de


texto para agilizar los procesos de búsqueda; esto permite realizar
solicitudes complejas con gran rapidez en documentos de gran longitud.
Bases de datos
 Consulta bibliográfica
documentales
 Google académico

 Bases de datos digitales de educación


Fuente. Elaboración del autor
Bases de Datos I
sfs

12 Los tipos de base de datos más utilizados a través del tiempo se basan en modelos, por tal razón
su nombre clasificatorio: jerárquicas, en red, relacionales y orientadas a objetos, juntas forman
lo que llamamos la nueva generación de base de datos (cuarta generación) que son las
multidimensionales que permiten por medio de cubos de información acceder a datos
estadísticos para la toma de decisiones, lo que hoy llamamos Inteligencia de Negocios.

 Video: Tipo de bases de datos


 ”Ver Video”: https://www.youtube.com/watch?v=ShxPfRPRKZ8

1.1.4 MODELOS DE BASES DE DATOS


Además de la clasificación por la función de las bases de datos, éstas también se pueden catalogar
de acuerdo a su modelo de administración de datos. Un modelo de datos es básicamente una
"descripción" del contenedor de datos (lugar donde se almacena la información) y de los métodos
para almacenar o recuperar los datos que se encuentran en ese contenedor. Los modelos de
datos no son cosas físicas, son abstracciones que permiten la implementación de un sistema
eficiente de base de datos; por lo general, hacen referencia a algoritmos y conceptos
matemáticos.

MODELO CARACTERÍSTICAS

En este modelo los datos se organizan en forma de árbol invertido


(algunos dicen raíz), en donde un nodo padre de información puede
tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los
nodos que no tienen hijos se los conoce como hojas. Las bases de datos
Jerárquico jerárquicas son especialmente útiles en el caso de aplicaciones que
manejan un gran volumen de información y datos muy compartidos
permitiendo crear estructuras estables y de gran rendimiento. Una de las
principales limitaciones de este modelo es su incapacidad de representar
eficientemente la redundancia de datos.

Éste es un modelo ligeramente distinto al jerárquico; su diferencia


fundamental es la modificación del concepto de nodo: se permite que
En red un mismo nodo tenga varios padres (posibilidad no permitida en el
modelo jerárquico).
Bases de Datos I
sfs

13
Éste es el modelo utilizado en la actualidad para representar problemas
reales y administrar datos dinámicamente. Tras ser postulados sus
fundamentos en 1970 por Edgar Frank Codd, de los laboratorios IBM en
San José (California), no tardó en consolidarse como un nuevo paradigma
en los modelos de base de datos. Su idea fundamental es el uso de
"relaciones". Estas relaciones podrían considerarse en forma lógica
Relacionales como conjuntos de datos llamados "tuplas". Pese a que ésta es la teoría
de las bases de datos relacionales creadas por Codd, la mayoría de las
veces se conceptualiza de una manera más fácil de imaginar. Esto es
pensando en cada relación como si fuese una tabla que está compuesta
por registros (las filas de una tabla), que representarían las tuplas, y
campos (las columnas de una tabla).

Este modelo, bastante reciente, y propio de los modelos informáticos


orientados a objetos, trata de almacenar en la base de datos
los objetos completos (estado y comportamiento). Una base de datos
orientada a objetos es una base de datos que incorpora todos los
conceptos importantes del paradigma de objetos:

Orientado a objetos  Encapsulación - Propiedad que permite ocultar la información al


resto de los objetos, impidiendo así accesos incorrectos o conflictos.
 Herencia - Propiedad a través de la cual los objetos heredan
comportamiento dentro de una jerarquía de clases.

Polimorfismo - Propiedad de una operación mediante la cual puede ser


aplicada a distintos tipos de objetos.

Son bases de datos ideadas para desarrollar aplicaciones muy concretas,


como creación de Cubos OLAP. Básicamente no se diferencian
demasiado de las bases de datos relacionales (una tabla en una base de
datos relacional podría serlo también en una base de datos
multidimensional), la diferencia está más bien a nivel conceptual; en las
Multidimensionales bases de datos multidimensionales los campos o atributos de una tabla
pueden ser de dos tipos, o bien representan dimensiones de la tabla, o
bien representan métricas que se desean aprender. En algunos casos
estas bases de datos utilizan la orientación a objetos para la toma de
decisiones.
Bases de Datos I
sfs

14 1.1.5 TALLER DE ENTRENAMIENTO


TIPOS DE BASES DE DATOS
El siguiente taller de entrenamiento se propone para validar la aprehensión de los conceptos. Se
debe leer detenidamente las preguntas propuestas y dar respuesta a ellas.

1. Establezca la diferencia entre bases de dato dinámica y base de dato estática.


2. Enuncie la importantica que tienen los tres tipos de bases de datos vistas anteriormente.

1.1.6 SISTEMAS DE GESTIÓN DE BASES DE DATOS (SGBD)


Un sistema gestor de base de datos (SGBD) es un conjunto de programas que permiten el
almacenamiento, modificación y extracción de la información; además, proporciona
herramientas para añadir, eliminar, actualizar y dar análisis a los datos. además de proporcionar
herramientas para añadir, borrar, modificar y analizar los datos.

 Video: Sistemas de Gestión de Base de Datos (SGBD)


 ”Ver Video”: https://www.youtube.com/watch?v=L4WB2Tt55hs

Los SGBD, también permiten mantener la integridad de los datos, administrar el acceso de
usuarios a los datos y métodos de recuperación de información en caso de errores, presentar la
información de la base de datos en variados formatos y la mayoría incluyen un generador de
informes. En algunas ocasiones estos SGBD, cuentan con interfaces que permiten la elaboración
de tablas y gráficos estadísticos.

En el proceso de construcción de una base de datos se recopilan los datos en algún medio de
almacenamiento permitiendo hacer las transacciones básicas con ellos tales como:

 Funciones de consulta.
 Funciones de actualización.
 Funciones de Eliminación entre otros.

Los sistemas de gestión de bases se clasifican según ciertos aspectos, como el modelo, los
usuarios, el acceso y el ámbito de la aplicación; de igual manera cada una de estas divisiones tiene
unas subdivisiones específicas y propios de cada una de ellas.
Bases de Datos I
sfs

15 Imagen 3. Mediación de un sistema de gestión de base de datos

Fuente. Elaboración del autor

TIPS
Un SGBD le proporciona al usuario un entorno gráfico para dar
acceso a la información de una o múltiples bases de datos.

1.2 TEMA 2 MOTORES DE BASES DE DATOS


Para el manejo y gestión de base de datos existen varios motores que se usan dependiendo el
tamaño y tipo, además de la integridad que se exige, pues hay algunas bases de datos que
requieren mayor seguridad que otras todo esto depende para que están siendo usadas.

El Motor de base de datos es el servicio principal para almacenar, procesar y proteger los datos. El
Motor de base de datos proporciona acceso controlado y procesamiento de transacciones a través
del SGBD para lograr manipular adecuadamente la información.
Bases de Datos I
sfs

16 El motor de base de datos se usa para crear bases de datos relacionales, para el procesamiento de
transacciones o datos de procesamiento analíticos en línea. Se pueden crear tablas para almacenar
información y objetos como índices, vistas y procedimientos almacenados para ver, administrar y
proteger los datos.

Generalmente los SGBD incluyen un motor que permite el acceso a la base de datos mediante una
interfaz gráfica.

 Video: Los mejores motores de bases de datos


 “Ver Video”: https://www.youtube.com/watch?v=UV3-7kh2odw

1.2.1 ORACLE
ORACLE® es un sistema de gestión de base de datos creado por la compañía ORACLE Corporation,
este sistema incluye un motor que mediante una interfaz gráfica permite el acceso a la
información contenida por las bases de datos. Este software es muy utilizado en grandes
compañías que manejan información a gran escala ya que es un sistema muy robusto y seguro
para la manipulación de los datos.

Imagen 4. Logo SGBD ORACLE

Fuente. www.oracle.com

Oracle es considerado uno de los sistemas más completos del mercado, sin embargo, igualmente
es uno de los más costosos. Este sistema se destaca por dar un soporte transaccional, estabilidad,
escalabilidad, multiplataforma y se le permite interactuar con sistemas operativos como Linux y
Microsoft.

1.2.2 SQL SERVER


SQL server es un sistema gestor de base de datos creado por la compañía Microsoft; este sistema
cliente servidor, permite soportar transacciones, gestionar procedimientos almacenados.
Bases de Datos I
sfs

17 Inicialmente disponible para Windows Server, hoy en día es utilizado también en servidores Linux.
Este sistema es robusto y permite realizar manejo de una gran cantidad de información.

Imagen 5. Logo SGBD SQL Server

Fuente. www.microsoft.com

1.2.3 POSTGRESQL
PostgreSQL es un sistema de gestión de base de datos de código libre, es decir no es elaborado
por una organización, sino, por un grupo de personas denominadas comunidad cuyo único interés
es aportar al desarrollo de las tecnologías.

Este sistema permite el acceso múltiple a las tablas, es decir realizar consultas y modificar datos
al mismo tiempo sin problema, también facilita la utilización de grandes extensiones de texto y
su característica más destacada es que permite crear nuevos tipos de datos.

Imagen 6. Logo SGBD PostgreSQL

Fuente. www.postgresql.org
Bases de Datos I
sfs

18 1.2.4 MYSQL
MYSQL es un sistema de código abierto para el manejo de bases de datos, aunque a diferencia de
otros, este maneja una licencia dual; es decir, una licencia gratuita que tiene todas las
funcionalidades y una privada cuyo dueño es la compañía ORACLE, la cual además de contar con
las funcionalidades cuenta con un soporte técnico permanente además de herramientas de
monitoreo. Este es el sistema más utilizado en el mundo por su versatilidad y compatibilidad
sobre todo para aplicaciones de tipo web ya que se integra perfectamente con lenguajes como
PHP y HTML5.

Imagen 7. Logo SGBD MYSQL

Fuente. www.mysql.com

1.2.5 TALLER DE ENTRENAMIENTO


MOTORES DE BASES DE DATOS
El siguiente taller de entrenamiento se propone para validar la aprehensión de los conceptos. Se
debe leer detenidamente las preguntas propuestas y dar respuesta a ellas.

Realice un paralelo entre los dos motores de Mysql más utilizados (MyISAM e InnODB) y ubique
sus ventajas y desventajas.
Bases de Datos I
sfs

19
1.3 TEMA 3 EL LENGUAJE SQL
Tal y como sucede con los lenguajes de programación, las bases de datos también cuentan con
un lenguaje que permite la comunicación entre el usuario (programador) y el SGBD, este lenguaje
se denomina SQL (Structured Query Languaje), que traduce lenguaje estructurado de consulta.

SQL a su vez cuenta con unas funcionalidades o sub lenguajes que permiten la realización de
operaciones en la base de datos:

• Manipulación de datos: Las sentencias utilizadas para realizar estas acciones son SELECT
(seleccionar), INSERT (insertar), UPDATE (Actualizar) y DELETE (borrar).

• Definición de datos: Las sentencias utilizadas son DROP (eliminar objetos) y CREATE (crear
objetos).

• Control de los datos: Para controlar los datos se usan los comandos GRANT(garantizar) y
REVOKE (revocar); esto permite gestionar el acceso a la información de la base de datos.

• Control de las transacciones: con el objetivo de realizar la ejecución de varios comandos en


simultaneo, se utilizan los comandos COMMIT (comprometer) y ROLLBACK (reversar) cuando se
requiere deshacer la ejecución realizada.

Cada uno de estos sub lenguajes, cuentan con palabras reservadas que permiten disparar la
función a la que están asociadas. Estas palabras no se pueden modificar y tienen en algunos casos
sintaxis opcionales que permiten realizar transacciones dentro de las bases de datos.

1.3.1 COMANDOS
En SQL, existen comandos que permiten crear y definir bases de datos, tablas y campos; así
mismo, otros permiten generar consultas para extraer datos, ordenarlos, filtrarlos y manipularlos
en general.
Dentro de los comandos de creación, están:
 CREATE: crea tablas nuevas y campos
 DROP: elimina tablas e índices
 ALTER: modifica tablas, agregando campos o cambiando su naturaleza

Los comandos de consultas son:


 SELECT: consulta registros de la base de datos
 INTER: carga datos a las tablas
Bases de Datos I
sfs

20  UPDATE: modifica o actualizar los datos


 DELETE: elimina registros de una base de datos

1.3.2 CLÁUSULAS
Las cláusulas son condiciones que se utilizan en conjunto con los comandos para poder explicitar
las características de la transacción que se va a realizar en la base de datos.
Estas cláusulas son:

 FROM: permite especificar la tabla en la cual se van a tratar los registros


 WHERE: especifica las condiciones que deben reunir los registros
 GROUP BY: separa los registros en grupos
 HAVING: expresa la condición que debe cumplir cada grupo
 ORDER BY: ordena los registros seleccionados de acuerdo con una condición

1.3.3 OPERADORES
Los operadores son aquellos que permiten realizar comparaciones o condiciones para ser aún
más específicos en la transacción.

Algunos son:
 AND: es el “y” del español, toma dos condiciones y devuelve un valor verdadero si ambas se
cumplen
 OR: es el “o” del español, toma dos condiciones y devuelve un valor verdadero si alguna de las
dos se cumple
 NOT: es el “no” del español, devuelve un valor contrario a la expresión

1.3.4 COMPARACIÓN
Los operadores de comparación son los mismos que se utilizan en matemáticas, adicionando uno
u otro extra que permite realizar aún más procesos comparativos.

Estos son:
 < menor que
 > mayor que
 = igual que
 <> diferente de
Bases de Datos I
sfs

21  =< menor o igual


 >= mayor o igual
 BETWEEN: entre dos valores
 LIKE: como o parecido a
 IN: dentro de

1.3.5 FUNCIONES
Las funciones de agregado se usan con la cláusula SELECT con el objetivo de retornar un valor de
acuerdo con un grupo de registros:

 AVG: promedio de valores


 COUNT: cuenta el número de registros
 SUM: suma todos los valores
 MAX: devuelve el valor más alto
 MIN: devuelve el valor más bajo

1.3.6 LENGUAJE SQL Y EL MOTOR DE BASE DE DATOS MYSQL


Durante este curso, se seleccionará uno de los motores de base de datos vistos anteriormente y
en él se desarrollarán las diferentes actividades de manejo de base de datos mediante la
utilización del lenguaje SQL; si bien es cierto existen motores y manejadores de base de datos de
muy alta complejidad, el más utilizado en el mundo es Mysql debido a que utiliza una interfaz
muy sencilla y práctica; quizás su característica más importante es que es de código libre, lo que
permite su instalación sin ningún tipo de licencia que haya que comprar.

Para realizar las actividades propuestas durante el desarrollo del curso, se sugiere realizar la
instalación del paquete “XAMPP” el cual instala un grupo de sistemas, para utilizar el lenguaje
PHP, MYSQ, TOMCAT y otros que permitirán profundizar los conocimientos en base de datos.

 Video: Introduction to XAMPP


 “Ver Video”: https://www.youtube.com/watch?v=h6DEDm7C37A&feature=youtu.be
Base de Datos I

22
2 UNIDAD 2 MODELANDO BASES DE DATOS
Las bases de datos se pueden diseñar utilizando como base el modelo entidad – relación. Esta
representación gráfica de la base de datos y sus tablas, permite definir entidades, atributos y
relaciones que más adelante se plasman en el motor del manejador de base de datos para poder
hacer el llenado de información y posteriormente manipular transaccionalmente la misma.

CONCEPTOS BÁSICOS:

1. Modelos de Bases de Datos: Una "descripción" de algo conocido como contenedor de


datos (algo en donde se guarda la información), así como de los métodos para almacenar y
recuperar información de esos contenedores.

2. Modelo Entidad – Relación (ER): Una herramienta para el modelado de datos que permite
representar las entidades relevantes de un sistema de información, así como sus interrelaciones
y propiedades.

3. Normalización: Proceso mediante el cual se transforman datos complejos a un conjunto de


estructuras de datos más pequeñas, que además de ser más simples y más estables, son más
fáciles de mantener.
Bases de Datos I
sfs

23
2.1 TEMA 1 MODELO ENTIDAD RELACIÓN
El diagrama o modelo entidad-relación (ER) es una representación gráfica que representa las
entidades relevantes de un sistema. Los diagramas son utilizados generalmente para modelar
bases de datos, sistemas de información empresarial, gestión de procesos de negocio,
investigaciones, entre otros.

Los diagramas ER, utilizan símbolos como rectángulos, diamantes, óvalos y líneas que representan
la conexión entre entidades.

TIPS
S
El modelo ER fue propuesto por Peter Chen del Instituto
Tecnológico de Massachusetts (MIT) en los 70 al publicar un
documento llamado "Modelo entidad-relación: hacia una visión
unificada de los datos".

El modelo entidad relación ER se compone de entidades, relaciones y atributos que permiten


organizar la lógica de la base de datos.

 Entidades: Las entidades representan personas, objetos, conceptos o eventos diferenciados


entre sí; esos pueden representarse como si fuesen sustantivos (cliente, estudiante, auto,
producto) y generalmente se representan con un rectángulo.

ENTIDAD

 Atributos: los atributos definen o identifican las propiedades o características de la entidad. Una
muestra de los atributos de la entidad “estudiante” sería la identificación, edad, nombre, dirección, entre
otras. Las entidades se representan gráficamente con un óvalo.
Bases de Datos I
sfs

24

ATRIBUTO

 Relación: permiten mostrar los vínculos o interacciones de unas y otras entidades


representando una acción. Un estudiante se “inscribe” en un curso, donde la acción representa
la relación. Las relaciones se representan con un diamante.

RELACIÓN

CARDINALIDAD

La Cardinalidad define el tipo de relación que tienen dos atributos (uno a uno, uno a muchos o
muchos a muchos). Un ejemplo de uno a uno es un estudiante tiene un código; uno a muchos
sería un curso tiene muchos estudiantes; muchos a muchos, muchos estudiantes tienen muchos
profesores y muchos profesores tiene muchos estudiantes.

La Cardinalidad se representa de diversas maneras cada una tan válida como la otra. Estas
representaciones están dadas por diversos autores que en su mayoría reemplazan la relación por
la cardinalidad únicamente, pero sin perder la esencia del ejercicio.

 Barker’s
Bases de Datos I
sfs

25
 Chen

 Bachman

Existen otras formas de representar la cardinalidad, pero son poco utilizadas, esto depende de la
selección del autor del diagrama ER.

2.1.1 ELABORAR UN MODELO ER


Partiendo de un caso práctico, se deben tener en cuenta una serie de recomendaciones para
realizar un modelo o diagrama ER.

CASO
“Se tiene un taller mecánico en donde se manejan carros y empleados; es
importante tener en cuenta que para los autos se requiere el número del chasis,
matrícula, número de identificación del propietario, marca y modelo. Por otro
lado, para los empleados se requiere nombre, número de identificación y cargo.
Un carro puede ser reparado por muchos empleados según sea el daño
presentado.”
Bases de Datos I
sfs

26 Análisis:
Una vez leído el caso detenidamente se debe tener en cuenta los siguientes aspectos:

 Las posibles entidades (Carros y empleados).


 Selección de los atributos. Carros (número de chasis, matrícula, número de identificación del
propietario, marca y modelo) Empleados (nombre, número de identificación y cargo).
 Análisis las relaciones. Un carro es reparado por empleados.
 Definición de cardinalidad. Uno a muchos

Diseño:
Para lograr el diseño del modelo ER, se debe definir la cardinalidad a utilizar, que para el caso de
este curso se ha seleccionado la de Barker’s.

2.1.2 NORMALIZACIÓN
La normalización utiliza una serie de reglas que sirven para ayudar a los diseñadores de bases de
datos a desarrollar un esquema que minimice los problemas de lógica. Cada regla está basada en
la que le antecede. La normalización se adoptó porque el viejo estilo de poner todos los datos en
un solo lugar, como un archivo o una tabla de la base de datos, era ineficiente y conducía a errores
de lógica cuando se trataban de manipular los datos.

La normalización también hace las cosas fáciles de entender. Los seres humanos tenemos la
tendencia de simplificar las cosas al máximo. Lo hacemos con casi todo, desde los animales hasta
con los automóviles. Vemos una imagen de gran tamaño y la hacemos más simple agrupando
cosas similares juntas. Las guías que la normalización provee crean el marco de referencia para
simplificar una estructura de datos compleja.
Bases de Datos I
sfs

27 La normalización de base de datos también permite optimizar el consumo de espacio. Una base
de datos normalizada ocupa menos espacio en disco que una no normalizada. Hay menos
repetición de datos, lo que tiene como consecuencia un mucho menor uso de espacio en disco.

El proceso de normalización tiene un nombre y una serie de reglas para cada fase, las cuales
generalmente se dividen en tres niveles:

 Primera Forma Normal (1NF): Establece que las columnas o grupos repetidos deben
eliminarse, por ejemplo, una base de datos que tenga dos columnas iguales.

Cuando exista una tercera especialidad se tendría que agregar otro campo a la base de datos y
modificar el código fuente del sistema de información lo que generará muchos inconvenientes;
igualmente los campos deben ser “atómicos”, es decir, no debe permitir una división en su
contenido como por ejemplo la fila nombre; este contiene los apellidos, por lo tanto, se puede
dividir. Para este caso, se debe crear un campo nombre y otro apellido. De acuerdo con lo
anterior, la primera forma normal, elimina la especialidad2, dejando una sola y divide el campo
nombre en dos.
Bases de Datos I
sfs

28  Segunda Forma Normal (2NF): La segunda forma normal 2NF, se asegura que todas las
columnas que no son llaves, dependan completamente de la llave primaria (PK), en este caso la
columna cédula sería la llave principal o primaria (PK)

Al definir la cédula como llave principal, no se podría aceptar dos médicos con la misma cédula
con diferente especialidad; en este caso lo que se hace es crear una tabla que contenga la
especialidad y que se relacione directamente con la tabla médico.

De esta manera, cada especialidad tendrá un nombre y código único el cual estaría relacionado
dentro de la tabla médico como una llave foránea (FK).

 Tercera Forma Normal (3NF): Es aquella que evita los campos calculados como el caso de la
edad, la cual depende de la fecha de nacimiento ya que a partir de este campo se puede calcular
la edad.
Bases de Datos I
sfs

29

En este caso, la edad es un campo que depende de la fecha de nacimiento, por lo tanto, debe ser
eliminado. No se puede caer en el error de eliminar la fecha de nacimiento porque cuando se
consulte la información el próximo año esta ha cambiado, pero no se cuenta con ningún valor
para poder calcularlo como si es el caso de tener la fecha de nacimiento.

Cada una de estas formas tiene sus propias reglas. Cuando una base de datos se conforma a un
nivel, se considera normalizada a esa forma de normalización.

No siempre es una buena idea tener una base de datos conformada en el nivel más alto de
normalización, puede llevar a un nivel de complejidad que pudiera ser evitado si estuviera en un
nivel más bajo de normalización.

TIPS
La normalización permite optimizar el espacio que ocupa la base
de datos y permitir la realización de consultas más ágiles y sin
redundancia de datos.
Bases de Datos I
sfs

30
2.2 TEMA 2 ESTRUCTURA DE UNA BASE DE DATOS
La estructura de base de datos se genera dentro del sistema gestor de base de datos SGBD. Como
se mencionó en la anterior unidad, para este curso se utilizará el sistema MySQL el cual es
gratuito. Para instalar el Mysql, se requiere poseer un servidor donde se almacene la información,
pero para este caso se realizará un servidor simulado por medio de la aplicación también gratuita
Xampp (https://www.apachefriends.org)

La instalación del Xampp es muy sencilla, simplemente se siguen las instrucciones y se inicia el
sistema, teniendo en cuenta que es necesario activar los servicios primero para poder acceder a
la interfaz de gestión de base de datos.

Se proceden a iniciar los servicios que en este caso corresponden al servidor (apache) y al MySQL.
Bases de Datos I
sfs

31

Una vez se inician los servicios se ingresa a la interfaz por medio del enlace administrar
Bases de Datos I
sfs

32

Ahora ya es posible acceder a la interfaz de phpMyAdmin.


Bases de Datos I
sfs

33 2.2.1 CREACIÓN DE UNA BASE DE DATOS.


Para crear la base de datos en PHPMyAdmin es necesario hacer clic en la opción “nueva” ubicada
en la columna principal de la izquierda.

Seguidamente el sistema solicitará el nombre de la nueva base de datos.

Una vez digitado el nombre, se da clic en crear y la nueva base de datos aparecerá en la columna
izquierda del sistema junto con las demás existentes.
Bases de Datos I
sfs

34

TIPS
Otra forma de crear una base de datos es por cuadro de comandos
o consola, para lo cual se debe utilizar código.

2.2.2 CREACIÓN DE TABLAS.


Para crear una tabla dentro de la base de datos es necesario seleccionar la misma en la columna
de la izquierda e inmediatamente después aparecerá la opción de crear tabla.

Por ejemplo, se va a proceder a crear una tabla llamada “usuarios” que va a tener 4 columnas de
la siguiente manera:
Bases de Datos I
sfs

35

E0l siguiente paso será añadir las columnas a la tabla, en el ejemplo, se crea un campo llamado
“id_usuario” el cual será de tipo entero, de longitud 11 y autoincrementable; seguidamente, se
crean tres campos llamados nombre, apellido y email los cuales serán de tipo varchar y con
longitud de 50 cada uno.

TIPS
Se puede ver la sentencia SQL haciendo clic en el botón
“previsualizar SQL” ubicado al lado del botón guardar en la
esquina inferior derecha.
Bases de Datos I
sfs

36 la interfaz de PHPMyAdmin, permite realizar el proceso anterior por el espacio de consulta


utilizando las palabras reservadas para crear la tabla.

La sentencia SQL sería:

CREATE TABLE `nueva_base_de_datos`.`usuarios` ( `id_usuario` I


NT(11) NOT NULL
AUTO_INCREMENT, `nombre` VARCHAR(50) NOT NULL, `apellido` VARC
HAR(50) NOT
NULL, `email` VARCHAR(50) NOT NULL, PRIMARY KEY (`id_usuario`)
) ENGINE =InnoDB;

Si se escribe la sentencia anterior sobre la consola del PHPMyAdmin, se crea igualmente la tabla
tal y como se evidencia en la siguiente imagen:

Es muy importante definir la llave primaria (PRIMARY KEY) para iniciar el proceso de
normalización y evitar la redundancia de datos.

TIPS
Existen dos formas de crear las tablas, usando la interfaz gráfica y
por consola dentro del mismo PhpMyAdmin.
Bases de Datos I
sfs

37  Video: Crear una base de datos en mysql con phpmyadmin


 ”Ver Video”: https://www.youtube.com/watch?v=prKM0E_GSrQ

2.2.3 RELACIÓN DE TABLAS.


Llave primaria (PRIMARY KEY)
Es una columna o un conjunto de columnas que identifican unívocamente a cada fila. Debe ser
única, no nula y obligatoria. Se sugiere definir una clave primaria por tabla. Cuando se crea una
clave primaria, automáticamente se crea un índice que facilita el acceso a la tabla.

Para la creación de una llave primaria por código se utiliza la siguiente sentencia: "ALTER TABLE
`nombre_tabla` ADD PRIMARY KEY(`Codigo`);"

Es importante recordar que al crear la tabla también se puede asignar la llave principal bien sea
por código o por la interfaz gráfica.

Llave foránea (FOREIGN KEY)


Está formada por una o varias columnas que están asociadas a una clave primaria de otra o de la
misma tabla. Se pueden definir tantas llaves foráneas como se precise y pueden estar o no en la
misma tabla que la llave primaria. El valor de la columna o columnas que son llaves foráneas debe
ser: NULL o igual a un valor de la clave referenciada (regla de integridad referencial).

La sintaxis de creación de una llave foránea es: “FOREIGN KEY(codigo_fk) REFERENCES


nombre_tabla (nombre_campo);”
Bases de Datos I
sfs

38
TIPS
Diferencias entre llave primaria y foránea:
Primaria: generalmente existe una por tabla, debe ser única,
indexada y no admite valores nulos.
Foránea: Hace referencia a una llave primaria pueden existir una
o muchas por tabla y debe ser indexada.

Único (UNIQUE): Es una propiedad del campo de una tabla que evita datos duplicados, es decir
solo acepta valores únicos e irrepetibles como por ejemplo el número de cédula; esto evita que
se ingresen dos números iguales.

Índice (INDEX): Es una estructura de datos que mejora la velocidad de las operaciones, por medio
de identificador único de cada fila de una tabla, permitiendo un rápido acceso a los registros de
una tabla en una base de datos. Al aumentar drásticamente la velocidad de acceso, se suelen
usar, sobre aquellos campos sobre los cuales se hacen frecuentes búsquedas.

El índice tiene un funcionamiento similar al índice de un libro, guardando parejas de elementos:


el elemento que se desea indexar y su posición en la base de datos.

 Video: Asignación de claves foráneas en MySQL


 ”Ver Video”: https://www.youtube.com/watch?v=vDavXgtPNA4

 Video: Relación de Tablas en MySQL


 ”Ver Video”: https://www.youtube.com/watch?v=nw03AitInzg

 Video: Relacionar dos tablas en MySQL


 ”Ver Video”: https://www.youtube.com/watch?v=-pCF737jyLY

Atributos adicionales de un campo perteneciente a una tabla.

NULL: Si se agrega este atributo, el campo aceptará valores nulos o vacíos


Bases de Datos I
sfs

39 NOT NULL: una vez seleccionado este atributo, no se permitirán valores nulos o vacíos, en cuyo
caso genera error cuando se intente dejar este campo en blanco.
AUTO_INCREMENT (AI): genera un numero consecutivo automáticamente cuando se insertan
valores en los demás campos de la tabla. Se usa para las llaves primarias (PK).

2.2.4 EJERCICIO DE APRENDIZAJE


Adicionar Un campo al final de tabla.
Para adicionar un campo al final de la tabla se utiliza la siguiente instrucción:

2.2.5 TALLER DE ENTRENAMIENTO


CREACIÓN DE TABLAS Y ESTRUCTURAS

El siguiente taller de entrenamiento se propone para validar la aprehensión de los conceptos. Se


debe leer detenidamente la situación propuesta y dar respuesta a ella.

1. Crear una base de datos denominada empresa.


a. Crear una tabla llamada trabajadores con los campos código (int), nombre(char),
dirección(varchar), edad(date).
b. Crear una tabla llamada cargo con los campos nombre(char)
c. Crear una tabla llamada nomina con los campos s_basico(int), deduciones (varchar),
s_neto(int).

Realizar:
1. Agregar a la tabla cargo un campo del código del cargo.
2. Renombrar la tabla trabajadores por empleado.
3. Adicione a la tabla empleado el campo número de hijos antes del campo edad.
4. Eliminar la tabla nómina.
Bases de Datos I
sfs

40
2.3 TEMA 3 INSTRUCCIONES DE MANIPULACIÓN DE DATOS.
Las instrucciones de manipulación de datos permiten lleva a cabio las tareas de gestión de la
base de datos, es decir, eliminar datos, insertar, actualizar, importar información entre otras.
Para esto se hace necesario el uso de operadores lógicos, relacionales, aritméticos y especiales.
En Mysql los más utilizados son:

Operaciones Relacionales:
= Igual Is null / is not null (Si un valor es un nulo o no
).
<> Distinto

> Mayor que Between: “entre” si agregamos not antes de


Between, el valor ser invierte.
< Menor que

>= Mayor que o Igual que In: Permite averiguar si el valor de un campo
dado, está incluido en la lista de valores
<= Menor que o Igual que especificado.
Fuente: Propia

Operadores Lógicos:
and Significa y
or Significa y/o
xor Significa o
not Significa no (invierte el resultado)
() Paréntesis
Fuente: Propia

Los operadores lógicos se utilizan para combinar condiciones.

Operadores Aritméticos:
Select: nos permite consultar los datos almacenados en una tabla de la base de datos.
Bases de Datos I
sfs

41 Where: Especifica una condición que debe cumplirse para que los datos sean devueltos por la
consulta. Admiten los operadores lógicos AND y OR.

+ Suma o adiciona

- Resta o disminuye

* Multiplica

/ Divide
Fuente: Propia

Operadores especiales:
También es considerado un comando y se puede combinar
Like con % para mayor precisión.

Es considerado un comando permite búsqueda de datos


In dispersos.

between Se utiliza para buscar datos entre rangos.


Se utiliza para agrupar las búsquedas hechas con algunos de
having los anteriores como between.

Fuente: Propia

 Instrucción insert: La instrucción INSERT permite crear o insertar nuevos registros en una
tabla, veamos su sintaxis con un ejemplo práctico, la inserción de un registro en la tabla
ALUMNOS.

Un ejemplo es: Insert into ALUMNOS (ID_ALUMNO, NOMBRE, APELLIDOS, F_NACIMIENTO)


values (1 , 'Pablo' , 'Hernandaz Mata' , '1995-03-14')

Es decir, insertar en la tabla alumnos cuyos campos son ID_ALUMNO, NOMBRE, APELLIDOS,
F_NACIMIENTO los valores así:

1, 'Pablo’, 'Hernandaz Mata’, '1995-03-14.

 Instrucción Select: La instrucción SELECT se utiliza para obtener los registros de una tabla.
Bases de Datos I
sfs

42 Su estructura es: SELECT * FROM categoría; esto significa que muestre lo que se encuentra en la
tabla categoría.

 Instrucción Update: La instrucción UPDATE permite actualizar registros de una tabla.


Debemos por lo tanto indicar que registros se quiere actualizar mediante la cláusula WHERE, y
que campos mediante la cláusula SET, además se deberá indicar que nuevo dato va a guardar
cada campo.
Así por ejemplo supongamos que para el curso que carecía de profesor finalmente ya se ha
decidido quien lo va a impartir, la sintaxis que permite actualizar el profesor que va a impartir un
curso sería la siguiente:

Update CURSOS set ID_PROFE = 2 where ID_CURSO = 5

 Instrucción delete: La instrucción DELETE permite eliminar registros de una tabla, su sintaxis
es simple, puesto que solo debemos indicar que registros deseamos eliminar mediante la cláusula
WHERE. La siguiente consulta elimina todos los registros de la tabla mascotas que están de baja:

Delete from MACOTAS where ESTADO = 'B'

 Instrucción truncate: Quita todas las filas de una tabla sin registrar las eliminaciones
individuales de filas. TRUNCATE TABLE es similar a la instrucción DELETE sin una cláusula WHERE;
no obstante, TRUNCATE TABLE es más rápida y utiliza menos recursos de registros de
transacciones y de sistema.

TRUNCATE TABLE
[ { database_name .[ schema_name ] . | schema_name . } ]
table_name
[;]

 Instrucción Limit: La cláusula LIMIT puede ser usada para acotar el número de filas devueltas
por la sentencia SELECT. Toma uno o dos argumentos numéricos, que deben ser números enteros
constantes no negativos.

Veamos un ejemplo de muestra para la sentencia SELECT LIMIT.


Bases de Datos I
sfs

43

Fuente: http://deletesql.com/viewtopic.php?f=5&t=24

Aquí el primer argumento del ejemplo especifica el ajuste de la primera fila a devolver, y el
segundo especifica el máximo número de filas a devolver. Por tanto, devuelve las filas de la 3 a la
7 de la tabla student.

Backups y recuperación de información: Para realizar esta acción se utiliza el comando dump.
Un ejemplo de esto es el siguiente: retomando el ejemplo de la base de datos banco.
C:/wamp/bin/mysql/mysql5.1.30/bin>mysqldump –uroot –routines banco> k:/banco.sql

En los siguientes link encuentra ejemplos y videos de este tema para mayor claridad.
Enlace: http://deletesql.com/viewtopic.php?f=5&t=24
https://www.hscripts.com/es/tutoriales/mysql/selecto-limite.php

 Video: Como hacer un Backup o copia de seguridad en MySql


 ”Ver Video”: https://www.youtube.com/watch?v=lGOP2P8DoRw

 Video: Restaurar base de datos mysql


 ”Ver Video”: https://www.youtube.com/watch?v=_wW8r-y4tXM
Bases de Datos I
sfs

44 2.3.1 TALLER DE ENTRENAMIENTO


MANIPULACIÓN DE DATOS

El siguiente taller de entrenamiento se propone para validar la aprehensión de los conceptos. Se


debe leer detenidamente la pregunta propuestas y dar respuesta a ellas.

1. Construya una instrucción de inserción en la tabla CURSOS para guardar un nuevo curso de
pintura y asígnele una clave que no entre en conflicto con la existentes, posteriormente
construya la instrucción para eliminar de la tabla el registro que acaba de crear.

2.4 TEMA 4 INSTRUCCIONES PARA LA RECUPERACIÓN DATOS.


En esta unidad se desarrollarán instrucciones para llevar a cabo diferentes recuperaciones de
datos, es decir, consultas simples y complejas.

Función (Count, max, min, sum, avg, ect)

Count: Es utilizada para realizar operaciones de conteo. Veamos un ejemplo con una tabla
denominad libros y esta contiene mucha información y se hace necesario saber la cantidad
existente.

La sintaxis seria asi: Select count (*) from libros;

Esta función también se puede usar con la cláusula WHERE así:

Select count (*) from libros where editorial=planeta;

Max y Min: Para averiguar el valor máximo o mínimo de un campo usamos las funciones "max
()" y "min ()" respectivamente. Ejemplo, queremos saber cuál es el mayor precio de todos los
libros:

Select max(precio) from libros;

Queremos saber cuál es el valor mínimo de los libros de "Rowling":

Select min(precio) from libros where autor like `% Rowling%`;


Bases de Datos I
sfs

45 Sum: Retorna la suma de los valores que contiene el campo especificado. Por ejemplo,
queremos saber la cantidad de libros que tenemos disponibles para la venta:

Select sum(cantidad) from libros;

También podemos combinarla con "where". Por ejemplo, queremos saber cuántos libros
tenemos de la editorial "Planeta":

select sum(cantidad) from libros where editorial ='Planeta';

Avg: La función avg() retorna el valor promedio de los valores del campo especificado. Por
ejemplo, queremos saber el promedio del precio de los libros referentes a "PHP":

select avg(precio) from libros where titulo like `%PHP%;


Estas funciones se denominan "funciones de agrupamiento" porque operan sobre conjuntos de
registros, no con datos individuales.

Las consultas en las bases de datos son la razón de ser de esta herramienta, dado que es la
forma para la toma de decisiones de las personas que las usan, es por esto que para realízalas se
debe tener en cuentas las siguientes instrucciones:

Instrucción Between: Between es una instrucción usada en consulta, con el fin de buscar entre
rangos. Esta puede reemplazar en algunos aspecto el utilizar el mayor que (>=) y menor que (<=),
esta instrucción se combina con where para llevar a cabo la consulta.

mysql> select * from producto where cod_producto between 350 and 600;

Esta consulta arrojará como resultado los registros de los productos que su código, esté entre 350
y 600.
In, esta instrucción sirve para llevar a cabo búsquedas con mucha más precisión, también se
combina con la cláusula where.
In permite especificar valores y criterios dentro de la cláusula where, es utilizado básicamente
para buscar registros que cumplan con más de un criterio, el operador in puede ser negado, para
llevar a cabo la búsqueda de valores que por el contrario no cumplan con las especificaciones o
criterios dados, para negar se utiliza not in.

mysql> select * from producto where cod_producto in (500,800);

En el ejemplo anterior, si se cambia el in por not in, el sistema mostrará en pantalla todos los
productos excepto los que los que su código es 500 y 800.
Bases de Datos I
sfs

46 mysql> select * from producto where cod_producto in (500,800);

Instrucción Distinct: tiene como función mostrar los registros que no están repetidos, filtrando
el contenido de la tabla para sí mostrar únicamente los valores distintos. La instrucción distinct,
debe ir combinada con el comando select.
Ejemplo:

Primero se ingresarán 3 nuevos registros, con nombres que ya existan en la tabla como: nevera,
lavadora, teclado.

mysql> insert into product (cod_producto, nombre) values (210, ‘nevera’);


mysql> insert into product (cod_producto, nombre) values (310, ‘lavadora’);
mysql> insert into product (cod_producto, nombre) values (410, ‘teclado’);

La Instrucción distinct, se usa de la siguiente forma:


mysql> select distinct nombre from product;

Alias para las columnas y las tablas


Los alias con muy convenientes especialmente para dar un nombre efímero a una columna que
se forma después de hacer una consulta o incluso para una tabla.
Para usarlo en una tabla se usa la siguiente instrucción:

mysql> select * from producto as mi_alias;

Recordemos que el alias no le quita ni le cambia el nombre permanente a la tabla, esto es


temporal.

Para usar el alias en una columna o una consulta, se hace de la siguiente forma:
mysql> select nombre ’mi_alias’ from producto;

En este ejemplo se está dando un nombre efímero o alias a la columna nombre de la tabla
producto, esta acción a su vez es una operación de consulta.

mysql> select nombre ‘mialias’ from producto where cod_producto between 200 and 600;
Group by: El comando group by este nos permite agrupar registros de que tienen ciertas
características y aunque se parece a un where con condiciones, este es muy diferente, group by
debe combinarse con el comando select.
Bases de Datos I
sfs

47 Como ejemplo se hará el ejercicio de saber la cantidad de visitantes que tenemos de cada ciudad,
esto se podría hacer utilizando la cláusula where pero se tendría que hacer una consulta por cada
ciudad, si se utiliza el group by entonces todo ese proceso puede hacerse con una sola consulta.

mysql> select ciudad, count(*) from visitantes group by ciudad;


Order By: La cláusula order by se combina con el comando select, para poder llevar a cabo el
ordenamiento de una consulta, ya sea ascendente o descendente haciendo referencia a una
columna especifica.

En este caso se procederá a ordenar la tabla visitantes tomando como referencia la columna
nombre.

mysql> select * from visitantes order by nombre;


Si se desea ordenar en forma ascendente se escribe la sigla asc, después de la columna que se
está tomando como referencia.

mysql> select * from visitantes order by nombre asc;


Por el contrario, si se desea ordenar de forma descendente, se debe digitar la sigla desc, después
de la columna que se está tomando como referencia.

mysql> select * from visitantes order by nombre desc;


Una tabla puede ordenarse por varias de sus columnas, es decir que una se ordene de forma
ascendente y la otra de forma descendente.

mysql> select * from visitante order by ciudad asc, nombre desc;


En este caso si encuentra varias personas que visitaron la misma ciudad, se ubicarán de forma
descendente, y por el contrario las ciudades se ubicarán de forma ascendente.

Having: La cláusula Having permite seleccionar un grupo de registros individuales al igual que la
cláusula where, esta función es complementaria a la función group by la instrucción having,
siempre se ubica al final de la sentencia. Su característica principal están que permite que se haga
comparación con funciones sum, min max, count y avg

Ejemplo:
Si se tiene una agrupación como la anterior, por ciudades

mysql> select ciudad, count(*) from visitantes group by ciudad;

Y queremos que muestre solo las que tienen más de 3 personas; esto no puede hacerse con una
comparación tradicional, en este caso se debe hacer uso de la cláusula having de la siguiente
forma:
Bases de Datos I
sfs

48 mysql> select ciudad, count (*) from visitantes group by ciudad having count (*)>=4;

En caso contrario si se buscan las ciudades tienen menos de 3 visitantes:


mysql> select ciudad, count (*) from visitantes group by ciudad having count (*) <3;

Vistas: Las vistas son registros de consultas que se hacen con determinado propósito. Las vistas
comparten el mismo espacio que las tablas, por esta razón no debe haber tablas con el mismo
nombre que las vistas y viceversa. Para crear una vista se utiliza el comando create; para el
ejemplo tendremos en cuenta la tabla visitante.

mysql> create view vista1 as select ciudad, count (*) from visitantes group by ciudad having
count (*) between 2 and 3;

vista1 es el nombre de la vista y de select en adelante esta la consulta. Para invocar la vista, solo
es necesario digitar:

mysql> select * from vista1;


Para llevar a cabo la modificación de las vistas creadas es necesario utilizar la sentencia alter
view, pero además de modificar las Vistas, estas también pueden ser eliminadas
Este proceso se hace de la forma más sencilla:

mysql> drop view vista1;


Si se desea saber cuál fue la forma como está creada la vista estructuralmente, se hace una
consulta de la siguiente manera:

mysql> show create view vista1;


Base de Datos I

49
3 UNIDAD 3 GOBERNABILIDAD Y GESTIÓN DE UN
MOTOR DE BASE DE DATOS

3.1 TEMA 1 FUNCIONES EN CASCADA, RELACIONES Y


PROCEDIMIENTO DE ALMACENAMIENTO.
Las funciones en cascada, permiten llevar a cabo tareas de actualización de varias tablas que
dependen de otra, para ello en el momento de crear las tablas, es necesario especificar de forma
puntual, que su función está definida en cascada, para que de tal forma se puedan actualizar los
datos o eliminarlos.

TIPS

Las principales funciones que se trabajan en cascada son Eliminar y


Actualizar
Bases de Datos I
sfs

50 Las funciones en cascada requieren trabajar con el motor InnoDB, el cual proporciona mayor
integridad en los datos.

Para trabajar las funciones en cascada, algo llamado integridad referencial y también deben ser
utilizadas las claves foráneas que permiten la relación en los datos.

3.1.1 EJERCICIO DE APRENDIZAJE:


Crear una base de datos que se llame inscripción; así mismo, se construirán dos tablas
denominadas programa y estudiante, que contienen la siguiente información:

Tabla programa:
 codigo_programa, int (10), not null, primary key
 nombre_programa, varchar (50)

CREATE TABLE `inscripcion`.`programa` ( `cod_programa` INT(10) NO


T NULL ,`nombre_programa` VARCHAR(50) NOT NULL , PRIMARY KEY (`co
d_programa`)) ENGINE= InnoDB;

Tabla: estudiante:
 codigo_estudiante, int (10) not null, auto increment, primary key
 nombre_estudiante, varchar(50)
 codigo_programa, varchar (50)

CREATE TABLE `inscripcion`.`estudiante` ( `codigo_estudiante` INT


(10) NOT NULLAUTO_INCREMENT, `nombre_estudiante` VARCHAR(50) NOT
NULL , `codigo_programa` INT(10) NOTNULL , PRIMARY KEY (`codigo_e
studiante`)) ENGINE = InnoDB;

Es importante tener en cuenta, que el campo código_programa corresponde a la llave foránea de


la tabla programa, por lo tanto, se debe crear la relación, agregándole índice al campo de la
siguiente manera:

ALTER TABLE `estudiante` ADD INDEX(`codigo_programa`);

Y creando la relación:
Bases de Datos I
sfs

51

Y como resultado se tiene:

Se procede a ingresar la información, diligenciando primero la tabla programa ya que la tabla


estudiante depende de la información de ella para poder funcionar.

Se utiliza la siguiente sentencia SQL o se diligencia por la interfaz gráfica:

INSERT INTO `programa` (`codigo_programa`, `nombre_programa`) VAL


UES ('1','veterinaria')

Imagen 8. Insertar información por la interfaz gráfica de MySQL

Quedando la tabla de la siguiente forma:


Bases de Datos I
sfs

52

Imagen 9. Tabla programa

En cuanto a la tabla estudiante, se diligencia utilizando la siguiente sentencia o por medio de la


interfaz gráfica:

INSERT INTO `estudiante` (`codigo_estudiante`, `nombre_estudiante


`,`codigo_programa`) VALUES (NULL, 'liseth', '2')

Imagen 10. Insertar información en la tabla estudiante por la interfaz de MySQL

Si vemos la sentencia o la interfaz gráfica, el número 2 corresponde al programa de sistemas.

La tabla quedaría de la siguiente forma:


Bases de Datos I
sfs

53

Imagen 11. Tabla programa

Función Actualizar (Update)


Como su nombre lo dice la tarea de esta función es actualizar los registros en cascada a partir de
los resultados ingresados en la tabla padre en este caso es la tabla programa.

UPDATE `programa` SET `codigo_programa`= 10 WHERE codigo_programa


=3

En esta instrucción se está cambiando el código del programa de medicina (3) en la tabla padre
(programa), por el valor (10).
Bases de Datos I
sfs

54

Imagen 12. Resultado función update

Función Eliminar (Delete)


La función delete en cascada le permite al usuario llevar a cabo tareas de borrado de registros en
las que dependen de otras, este procedimiento se realiza, eliminando la información principal y
por consecuencia generar el proceso de borrado en las tablas dependientes.
Retomando el ejercicio anterior, se eliminará el programa de turismo (4) en cascada, por
consiguiente, se eliminarán los datos de los estudiantes que correspondan a ese programa.

DELETE FROM `programa` WHERE `programa`.`codigo_programa` = 4

Imagen 13. Estudiantes eliminados en cascada al borrar el programa de turismo (4)


Bases de Datos I
sfs

55 3.1.2 RELACIONES
Las relaciones son enlaces entre dos tablas, las cuales dependen la una de la otra para
proporcionar información. Para identificar estas relaciones se utiliza la llave foránea (foreing Key).

Existen tres tipos de relaciones:

 Uno a uno: en este tipo de relaciones, se enlaza un único registro de una tabla con otra; sin
embargo, estas relaciones no garantizan la integridad y generan redundancia de datos, por lo que
se recomienda fusionar las tablas en una.
 Uno a muchos: un registro de una tabla se enlaza con muchos registros de otra tabla; en estos
casos se identifica con una llave foránea (foreing key) que se encuentra siempre en la tabla cuyas
relaciones es muchos.
 Muchos a muchos: un registro de una tabla principal se relaciona con muchos de otra y
viceversa. En este caso se debe crear una tabla intermedia que posee las dos llaves foráneas
(foreing key) de las dos tablas relacionadas.

TIPS

Para la relación entre tablas, es aconsejable nombrar de la misma forma


los campos que se van a relacionar.

3.1.3 OTRAS FUNCIONES


left join: Un left join se usa para hacer coincidir registros en una tabla (izquierda) con otra
(derecha).

En el caso en que un valor de la primera tabla, no encuentre coincidencia alguna en la segunda


tabla (derecha), el sistema genera una fila adicional con todos los campos listos a null

Tomando el ejemplo de la base de datos creada anteriormente se realiza la siguiente sentencia


SQL:

select * from estudiante left join programa on programa.codigo_pr


ograma=estudiante.codigo_programa
Bases de Datos I
sfs

56 Entonces el sistema arrojará el siguiente resultado:

La cláusula where también puede combinarse con el left join ello depende de la necesidad del
usuario.

inner Join: El Inner join, igual que los demás join, sirven para hacer relaciones en tablas a la hora
de hacer consultas.

Con el inner join, todos los registros que no coinciden en las tablas que se van relacionar, son
descartados, por esta razón el sistema simple mente arroja los que registros que coinciden,
entregando una consulta más exacta.

Usando el ejemplo anterior:

select * from estudiante INNER join programa on programa.codigo_p


rograma=estudiante.codigo_programa where programa.nombre_programa
='medicina'

El resultado sería:

Como puede verse, para poder realizar esta consulta, fue necesario utilizar el inner join, ya que
este permite relacionar las tablas que se necesitaban para llevar a cabo la consulta y, además de
eso, entrega la información de forma más precisa que el left join.
Bases de Datos I
sfs

57
TIPS
Tanto el inner join, left join y otros join, tienen como función permitir la
consulta mediante tablas relacionadas, pero todos arrojan resultados
dependiendo de la necesidad del usuario y las combinaciones utilizadas.

Otros join:

Right Join: El comando right join tiene una función similar a la de left join con la única novedad
que la búsqueda de coincidencias o de registros similares, la hace de forma contraria(inversa), en
este caso busca valores coincidencia de valores desde la tabla de la derecha a la tabla de la
izquierda.

Natural Join: El natural join es utilizado para cuando los campos que cumplen la función de
enlazar las tablas, tienen el mismo nombre.

3.1.4 SUBCONSULTAS
Las subconsultas en general consisten en hacer una consulta dentro de otra consulta para mostrar
en pantalla una cantidad de información que no puede hacerse en una sola consulta. La sub
consulta como tal no tiene sintaxis, esta puede tener los select que se deseen o se necesiten, en
el lugar donde sean necesarios.

Un ejemplo de sintaxis de una subconsulta sería:

SELECT * FROM tabla where tabla = (select * from tabla2)

Las subconsultas no son utilizadas únicamente para visualizar información también son
utilizadas para actualizar, borrar e insertar.

update detallefactura set valor=(select valorunitario +


(valorunitario * 0.23) from producto where
detallefactura.codigo=producto.codigo);
Bases de Datos I
sfs

58 3.1.5 PROCEDIMIENTOS ALMACENADOS:


Los procedimientos almacenados son subprogramas, que permiten hacer ciertas labores
especificadas por el usuario o programador, en estos pueden ir sentencias que consten de un
select, update, delete, insert, esto como ha sido nombrado anteriormente depende de la
necesidad del usuario, de igual forma pueden ir subconsultas, las cuales constan de uno o varios
select anidados.

Los procedimientos almacenados tienen muchas ventajas algunas de estas son:

 Evita estar repitiendo instrucciones, gracias a que estas quedan grabadas, por lo que el usuario
simplemente tiene que invocar al procedimiento almacenado, librándose a sí de estar escribiendo
una consulta o instrucción muy larga.
 El procedimiento almacenado brinda mucha seguridad gracias a que evitará que el usuario se
equivoque en la constante escritura de instrucciones, las cuales podrían arrojarle un resultado
erróneo.
Bases de Datos I
sfs

59  Son muy eficientes para usuarios con poco conocimiento de SQL.


 Permite una gran facilidad de manejo, pues simplemente hay que invocar el procedimiento
almacenado.

Ejemplo de creación de un procedimiento almacenado por SQL y por la interfaz gráfica.

Para crear un procedimiento almacenado se usa la siguiente sentencia:

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `prueba`()

NO SQL

select * from estudiante$$

DELIMITER;

Donde prueba es el nombre del procedimiento y “select * from estudiante” es la labor que debe
hacer ese procedimiento.

Es así que cuando se llame al procedimiento prueba, traerá automáticamente el contenido total
de la tabla estudiante.

Para crearlo por interfaz gráfica:

Se selecciona la base de datos y se va a la pestaña rutinas, se hace clic en agregar rutina y se


diligencian los datos:
Bases de Datos I
sfs

60

Posteriormente, aparece el procedimiento

Ahora ya es posible llamar al procedimiento cuando estemos realizando una consulta en SQL.
Bases de Datos I
sfs

61

El procedimiento es llamado utilizando la sentencia “call prueba” de esta forma se activa y trae
los parámetros que se establecieron que son el seleccionar todo de la tabla estudiante.

Estos procedimientos son muy útiles cuando se requiere realizar tareas repetitivas como por
ejemplo sacar el promedio, esto permite que con solo llamar a el procedimiento y enviarle los
datos traerá de regreso el promedio de los mismos.

 Video: Mysql: procedures o procedimientos almacenados


 “Ver video”: https://www.youtube.com/watch?v=1mXLGeCV3do

mysql> show procedure status;


Esta sentencia se utiliza cuando se desea saber que procedimientos almacenados hay en la base
de datos.
Bases de Datos I
sfs

62

3.2 TEMA 2 TRIGGERS


Son procesos o sub programas automáticos, esto quiere decir que ese proceso va ligado a una
tabla o una acción, estos se crean de forma parecida a los procedimientos almacenados.

Su propósito es actualizar, eliminar o insertar datos, que permitan actualizar varios registros de
forma automática, por ello son llamados también disparadores.

Particularidad:
A diferencia de los procedimientos almacenados y los demás procesos vistos anteriormente, el
trigger no permite el select, ya que el trigger es un proceso automático, por esta razón solo admite
o tiene el propósito de insertar, actualizar y eliminar. El trigger no recibe parámetros

El trigger es utilizado para actualizar cierta información de otras tablas, como gracias a la acción
de insertar información en alguna tabla principal o también en el momento de actualizar algún
tipo de información en una tabla o un registro en particular, el trigger se aplica actualizando todos
los registros que dependen de esta nueva información ingresada. Los triggers se construyen de la
siguiente forma:

mysql> delimiter //

mysql> create trigger actualizar after insert on detallefactura

-> for each row

-> begin

-> update producto set existencia = (select sum(cantidad) from detallefactura where
detallefactura. codigo=producto. codigo);
Bases de Datos I
sfs

63 -> end

-> //

mysql> delimiter ;

Para visualizar todos los triggers que han sido utilizados en la base de datos que esta activada,
además de una información detallada de cada trigger, se digita la siguiente instrucción:

mysql> select * from information_schema.triggers;

Este comando nos arroja información de cada trigger que compone la base de datos de una forma
poco ordenada.

mysql> select * from information_schema.triggers\G;

Si adicionamos el símbolo backslash y la letra “G” mayúscula a la instrucción anterior, se podrá


observar la información de cada trigger en la base de datos con mucho detalle y de forma más
ordenada.

Para llevar a cabo el uso del trigger se aplica la siguiente instrucción:

mysql> insert into values('1010','10','3');

Para eliminar un trigger, es necesario utilizar la siguiente instrucción:

mysql> drop trigger actualizar;

En los siguientes links encontrara mayor explicación del tema y ejemplos:

Enlace: http://www.postgresql.org.es/node/244

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=522

http://www.fpress.com/revista/num0206/art.htm

 Video: Como hacer un Trigger en Mysql


 “Ver Video”: https://www.youtube.com/watch?v=oluBLPvesSg
Bases de Datos I

64

Base de datos: colección de datos relacionados

La llegada del internet fue crucial para la evolución de las bases de datos.

IBM: International Business Machines, fundada en 1911; seis de sus empleados han recibido
Premio Nobel por sus investigaciones en información.

Un SGBD le proporciona al usuario un entorno gráfico para dar acceso a la información de una o
múltiples bases de datos.

El modelo ER fue propuesto por Peter Chen del instituto Tecnológico de Massachusetts (MIT) en
los 70 al publicar un documento llamado "Modelo entidad-relación: hacia una visión unificada de
los datos".

La normalización permite optimizar el espacio que ocupa la base de datos y permitir la realización
de consultas más ágiles y sin redundancia de datos.

Otra forma de crear una base de datos es por cuadro de comandos o consola, para lo cual se debe
utilizar código.

Se puede ver la sentencia SQL haciendo clic en el botón “previsualizar SQL” ubicado al lado del
botón guardar en la esquina inferior derecha.

Existen dos formas de crear las tablas, usando la interfaz gráfica y por consola dentro del mismo
PhpMyAdmin.

Diferencias entre llave primaria y foránea:


Primaria: generalmente existe una por tabla, debe ser única, indexada y no admite valores nulos.
Foránea: Hace referencia a una llave primaria pueden existir una o muchas por tabla y debe ser
indexada.

Las principales funciones que se trabajan en cascada son Eliminar y Actualizar.

Para la relación entre tablas, es aconsejable nombrar de la misma forma los campos que se van a
relacionar.

Tanto el inner join, left join y otros join, tienen como función permitir la consulta mediante tablas
relacionadas, pero todos arrojan resultados dependiendo de la necesidad del usuario y las
combinaciones utilizadas.
Bases de Datos I

65
4 GLOSARIO
 Base de datos: es un conjunto de datos pertenecientes a un mismo contexto y almacenados
sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una
base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados
para su consulta.
(Tomado de: Wikipedia - http://es.wikipedia.org/wiki/Base_de_datos)

 Mysql: es un sistema de gestión de bases de datos relacional, multihilo y multiusuario con más
de seis millones de instalaciones. Se ofrece bajo la GNU GPL para cualquier uso compatible con
esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos
deben comprar a la empresa una licencia específica que les permita este uso.
(Tomado de: Wikipedia - http://es.wikipedia.org/wiki/MySQL)

 Modelos de Bases de Datos: una "descripción" de algo conocido como contenedor de datos
(algo en donde se guarda la información), así como de los métodos para almacenar y recuperar
información de esos contenedores.
Tomado de: Wikipedia - http://es.wikipedia.org/wiki/Basesdedatos

 Modelo Entidad - Relación: una herramienta para el modelado de datos que permite
representar las entidades relevantes de un sistema de información así como sus interrelaciones
y propiedades.
Tomado de: Wikipedia - http://es.wikipedia.org/wiki/Basesdedatos

 Normalización: proceso mediante el cual se transforman datos complejos a un conjunto de


estructuras de datos más pequeñas, que además de ser más simples y más estables, son más
fáciles de mantener.
Tomado de: Wikipedia - http://es.wikipedia.org/wiki/Basesdedatos

 Procedimiento Almacenado: es un programa (o procedimiento) el cual es almacenado


físicamente en una base de datos.
(Tomado de: Wikipedia - http://es.wikipedia.org/wiki/Procedimiento_almacenado)

 POO: (Programación Orientada a Objetos) es un paradigma de programación que usa objetos


y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias
técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento.
Tomado de: Wikipedia
http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos)
Bases de Datos I
sfs

66  Sql: El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query
language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite
especificar diversos tipos de operaciones en éstas. Una de sus características es el manejo del
álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una
forma sencilla- información de interés de una base de datos, así como también hacer cambios
sobre ella.
(Tomado de: Wikipedia - http://es.wikipedia.org/wiki/SQL)

 Trigger: procedimiento que se ejecuta cuando se cumple una condición establecida al realizar
una operación.
(Tomado de: Wikipedia - http://es.wikipedia.org/wiki/Trigger_%28base_de_datos%29)
Bases de Datos I

67
5 BIBLIOGRAFÍA
• Date, C. J., & Darwen, H. (1987). A Guide http://users.dcc.uchile.cl/~psalinas/uml/mo
to the SQL Standard (Vol. 3). New York: delo.html
Addison-Wesley.
• MySQL Hispano. (2003). Normalización de
• de Datos, B. Grupo Editorial. Iván López bases de datos. Enero 20 de 2016, de Mysql-
Montalbán, Mª Jesús Castellano Pérez, John hispano.org Sitio web:
Ospino Rivas. http://www.eet2mdp.edu.ar/alumnos/MAT
ERIAL/MATERIAL/info/infonorma.pdf
• e-ducativa.catedu. (2010). Clasificación
de los SGBD. Febrero 5 de 2016, de e- • Ma, Zongmin. (2007). Intelligent
ducativa.catedu Sitio web: http://e- Databases: Technologies and Applications.
ducativa.catedu.es/44700165/aula/archivos London: Zongmin Ma, editor.
/repositorio/1000/1080/html/31_clasificaci
n_de_los_sgbd.html • Ramez Elmasri, Shumkant Navathe.
(20010). Desarrollo de Bases de Datos.
• Microsoft. (2010). Conceptos sobre el México: Pearson.
motor de base de datos. 5 de febrero de
2016, de Microsoft Sitio web: • Nelson Jovanny Isaza Morales. (2003).
https://technet.microsoft.com/es- Modulo para la asignatura Bases de datos I.
es/library/ms187079(v=sql.105).aspx Medellín: Corporación Universitaria
Remington.
• Genbeta. (2008). Fundamento de las
bases de datos: Modelo entidad-relación. 2  Manual Básico del Lenguaje SQL. (2017).
de febrero de 2016, de Genbeta Sitio web: 1st ed. Bogotá: ESCUELA COLOMBIANA
http://www.vayatele.com/?utm_source=ge DE INGENIERÍA JULIO GARAVITO, p.13.
nbetadev&utm_medium=network&utm_ca
mpaign=favicons

• Claudio Gutiérrez, Gonzalo Navarro.


(2011). Modelo Entidad/Relación y
conversión a Modelo Relacional. 10 de enero
de 2016, de Universidad de Chile Sitio web:
http://users.dcc.uchile.cl/~mnmonsal/BD/g
uias/g-modeloER.pdf

• Universidad de Chile. (2010). Modelo de


Clases. Febrero de 1 de 2016, de Universidad
de Chile Sitio web:

Das könnte Ihnen auch gefallen