Beruflich Dokumente
Kultur Dokumente
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
Responsables
Jorge Mauricio Sepúlveda Castaño
Decano de la Facultad de Ciencias Básicas e Ingeniería
jsepulveda@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
3
TABLA DE CONTENIDO
Pág.
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.
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.
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. 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
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
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.
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.
10
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
11 Tomar decisiones y
Realizar análisis de datos para inteligencia empresarial.
Según el contenido existen bases de datos geográficas, deductivas, documentales, entre otras.
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.
MODELO CARACTERÍSTICAS
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).
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
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.
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.
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.
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.
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.
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.
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.
Fuente. www.mysql.com
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.
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
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:
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
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:
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.
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:
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.
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".
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
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.
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:
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
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.
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
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
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.
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.
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).
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 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
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.
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.
Es decir, insertar en la tabla alumnos cuyos campos son ID_ALUMNO, NOMBRE, APELLIDOS,
F_NACIMIENTO los valores así:
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 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:
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.
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
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.
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.
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:
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:
También podemos combinarla con "where". Por ejemplo, queremos saber cuántos libros
tenemos de la 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":
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.
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
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.
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.
En este caso se procederá a ordenar la tabla visitantes tomando como referencia la columna
nombre.
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
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;
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:
49
3 UNIDAD 3 GOBERNABILIDAD Y GESTIÓN DE UN
MOTOR DE BASE DE DATOS
TIPS
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.
Tabla programa:
codigo_programa, int (10), not null, primary key
nombre_programa, varchar (50)
Tabla: estudiante:
codigo_estudiante, int (10) not null, auto increment, primary key
nombre_estudiante, varchar(50)
codigo_programa, varchar (50)
Y creando la relación:
Bases de Datos I
sfs
51
52
53
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
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).
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
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.
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.
Las subconsultas no son utilizadas únicamente para visualizar información también son
utilizadas para actualizar, borrar e insertar.
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
DELIMITER $$
NO SQL
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.
60
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.
62
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 //
-> 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:
Este comando nos arroja información de cada trigger que compone la base de datos de una forma
poco ordenada.
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
64
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.
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
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