Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Base de datos
2
¿Cómo funcionan? ........................................................................................................................... 26
¿Qué es la tercera forma normal? (Bases de datos) ...................................................................... 27
Formas normales ......................................................................................................................... 27
Primera forma normal (1FN) ....................................................................................................... 28
Segunda forma normal (2FN)...................................................................................................... 28
Tercera forma normal (3FN)........................................................................................................ 28
Ejemplos de tercera forma normal ............................................................................................. 29
Ejemplo 1...................................................................................................................................... 29
Como el estudiante se ubica por el sitio determinado por CODIGO_POSTAL, CALLE y
CIUDAD se relacionan es con este atributo. Debido a este segundo grado de dependencia,
no es necesario almacenar estos atributos en la tabla ESTUDIANTE. .................................... 29
Crear nueva tabla ......................................................................................................................... 30
Ejemplo 2 ................................................................................................................................. 31
¿Qué es MySQL? ............................................................................................................................. 33
Base de datos ............................................................................................................................. 33
Código abierto ............................................................................................................................. 33
Modelo cliente-servidor ............................................................................................................. 33
SQL ............................................................................................................................................... 34
¿Cómo funciona MySQL? .......................................................................................................... 35
¿Por qué MySQL es tan popular? ............................................................................................. 36
Flexible y fácil de usar................................................................................................................ 36
Alto rendimiento ......................................................................................................................... 37
Un estándar de la industria ....................................................................................................... 37
Seguro .......................................................................................................................................... 37
Conceptos básicos de SQL ........................................................................................................... 38
Comando ................................................................................................................................. 40
Descripción .............................................................................................................................. 40
Definición................................................................................................................................. 41
Forma básica: ......................................................................................................................... 41
Ejemplo: ................................................................................................................................... 41
UPDATE.................................................................................................................................... 42
DELETE ..................................................................................................................................... 42
Consultas de selección ......................................................................................................... 44
Básicas ..................................................................................................................................... 44
Ordenar los registros ............................................................................................................. 44
3
Consultas con predicado ...................................................................................................... 44
4
Introducción
El siguiente blog es para dar a conocer la mayoría de las cosas que tengan que ver
con el tema y para enseñar el tipo de bases de datos y lo relacionado con estas.
Bases De Datos
Una base de datos o banco de datos es un conjunto de datos que pertenecen al
mismo contexto 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. En
la actualidad, y debido al desarrollo tecnológico de campos como la informática y
la electrónica, la mayoría de las bases de datos tienen formato electrónico, que ofrece
un amplio rango de soluciones al problema de almacenar datos.
En informática existen los sistemas gestores de bases de datos (SGBD), que permiten
almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las
propiedades de los sistemas gestores de bases de datos se estudian en informática.
Aunque las bases de datos pueden contener muchos tipos de datos, algunos de ellos
se encuentran protegidos por las leyes de varios países. Por ejemplo en España, los
datos personales se encuentran protegidos por la Ley Orgánica de Protección de
Datos de Carácter Personal (LOPD).
5
Tipos De Bases De Datos
•
6
1. Bases de datos bibliográficasAlmacenan las fuentes primarias, como por
ejemplo, todo el contenido de todas las ediciones de una colección de
revistas científicas.
7
Modelos De Bases De Datos
1. Las bases de datos jerárquicas
En una base de datos jerárquica se organizan los datos utilizando estructuras
arborescentes (en árbol).
Un ÁRBOL es una estructura jerárquica en la que los elementos se suelen denominar
NODOS y existen dependencias entre los nodos.
La dependencia es de 1:M del tipo padre/hijo. Un hijo no puede tener más de un
padre, pero un padre varios hijos.
2. Las bases de datos en red
También en desuso, en una base de datos en red se utiliza la estructura de grafo/red,
como en el caso anterior los distintos objetos están relacionados entre sí mediante
relaciones del tipo 1:M pero en este caso un objeto puede estar relacionado como
hijo con varios elementos que serán sus padres. Un este caso las relaciones que se
crean se denominan SET y el equivalente al padre se denomina PROPIETARIO
(OWNER) y el equivalente al hijo se denomina MIEMBRO (MEMBER).
Un ejemplo de sistema en red es el CODASYL. También existen modelos para realizar
el diseño de datos orientado a bases de datos en red.
Los sistemas jerárquico y en red constituyen la primera generación de los SGBD. Pero
estos sistemas presentan algunos inconvenientes:
Es necesario escribir complejos programas de aplicación para responder a cualquier
tipo de consulta de datos, por simple que ésta sea.
La independencia de datos es mínima.
No incluyen controles de integridad.
Por lo que pronto fueron sustituidos por los sistemas relacionales.
3. Las bases de datos relacionales
Esta es la estructura que se ha impuesto para aplicaciones de gestión, consiste en
organizar los datos en forma de tablas, las relaciones entre los objetos se consiguen
incluyendo en la tabla del hijo, la clave del objeto padre. Como son las que
utilizaremos durante todo el módulo hemos reservado un apartado especial para
ellas.
4. Las bases de datos orientadas a objetos
Es un modelo más reciente, trata de almacenar en la base de datos los objetos
completos (estado y comportamiento). La información que contienen se organiza
en atributos y el comportamiento en operaciones.
5. Las bases de datos mutidimensionales
En una base de datos multidimensional los datos se almacenan en tablas de múltiples
dimensiones en vez de tablas bidimensionales como las del modelo relacional. Se
utilizan para grandes volúmenes de información.
8
Partes De Una Base De Datos
En prácticamente cualquier base de datos actual existen cuatro elementos esenciales:
tablas, consultas, informes y formularios. Todos son indispensables y necesarios:
• Las tablas permitirán almacenar los datos.
• Con las consultas podremos acceder a los datos almacenados, ordenarlos y
filtrarlos por diferentes criterios.
• Los informes serán la forma más eficaz de presentar nuestros datos.
• Con los formularios se facilitan las tareas de introducción de datos.
Esta es una definición muy básica de cada uno de los elementos que forman parte de una
base de datos pero suficiente para comenzar a familiarizarnos con estos conceptos.
Una tabla es utilizada para organizar y presentar información. Las tablas se componen
de filas y columnas de celdas que se pueden rellenar con textos y gráficos Las tablas
se componen de dos estructuras:
• Registro: es cada una de las filas en que se divide la tabla. Cada registro
contiene datos de los mismos tipos que los demás registros. Ejemplo: en una
tabla de nombres y direcciones, cada fila contendrá un nombre y una
dirección.
• Campo: es cada una de las columnas que forman la tabla. Contienen datos
de tipo diferente a los de otros campos. En el ejemplo anterior, un campo
contendrá un tipo de datos único, como una dirección, o un número de
teléfono, un nombre, etc.
A los campos se les puede asignar, además, propiedades especiales que afectan a los
registros insertados. El campo puede ser definido como índice oautoincrementable, lo
cual permite que los datos de ese campo cambien solos o sean el principal a la hora
de ordenar los datos contenidos.
Cada tabla creada debe tener un nombre único en la Base de Datos, haciéndola
accesible mediante su nombre o su seudónimo (Alias) (dependiendo del tipo de base
de datos elegida) La estructura de las tablas viene dado por la forma de un archivo
plano, los cuales en un inicio se componían de un modo similar.
Tablas: Son los objetos principales de bases de datos que se utilizan para guardar
datos.
9
Elemento disponible en el lenguaje HTML para la creación de recuadros
rectangulares que pueden o no estar anidados y pueden o no contener
celdas(recuadros más pequeños dentro de una tabla, pero que no se consideran
tablas). Las tablas se utilizan para organizar, posicionar o dar mejor formato a los
textos y gráficos en una página web.
• Almacenar los datos en un archivo de texto para recuperar los más tarde.
• Enviar los datos por correo electrónico directamente al administrador de la web.
10
• Introducir directamente los datos en una página web del sitio.
CONSULTAS: Las consultas son las que verdaderamente hacen el trabajo en una
base de datos. Pueden realizar numerosas funciones diferentes. Su función más
común es recuperar datos específicos de las tablas. Los datos que desea ver suelen
estar distribuidos por varias tablas y, gracias a las consultas, puede verlos en una sola
hoja de datos. Además, puesto que normalmente no desea ver todos los registros a la
vez, las consultas le permiten agregar criterios para "filtrar" los datos hasta obtener
solo los registros que desee. Las consultas a menudo sirven de origen de registros
para formularios e informes.Algunas consultas son "actualizables", lo que significa
que es posible editar los datos de las tablas base mediante la hoja de datos de la
consulta. Si trabaja con una consulta actualizable, recuerde que los cambios se
producen también en las tablas, no solo en la hoja de datos de la consulta.
Hay dos tipos básicos de consultas: las de selección y las de acción. Una consulta de
selección simplemente recupera los datos y hace que estén disponibles para su uso.
Los resultados de la consulta pueden verse en la pantalla, imprimirse o copiarse al
portapapeles. O se pueden utilizar como origen de registros para un formulario o un
informe.
Una consulta de acción, como su nombre indica, realiza una tarea con los datos. Las
consultas de acción pueden servir para crear tablas nuevas, agregar datos a tablas
existentes, actualizar datos o eliminar datos.
INFORMES: Los informes sirven para resumir y presentar los datos de las tablas.
Normalmente, un informe responde a una pregunta específica, como "¿Cuánto dinero
se ha facturado por cliente este año?" o "¿En qué ciudades están nuestros clientes?"
Cada informe se puede diseñar para presentar la información de la mejor manera
posible. Un informe se puede ejecutar en cualquier momento y siempre reflejará los
datos actualizados de la base de datos. Los informes suelen tener un formato que
permita imprimirlos, pero también se pueden consultar en la pantalla, exportar a otro
programa o enviar por correo electrónico.
11
Modelo Entidad relación
El modelo entidad relación es una herramienta que permite representar de manera
simplificada los componentes que participan en un proceso de negocio y el modo en
el que estos se relacionan entre sí.
• Entidades: El modelo contará con una entidad por cada uno de los componentes
del proceso de negocio. Así, en un negocio de venta de suscripciones a revistas,
podemos tener entidades “Cliente”, “Dirección”, “Factura”, “Producto”, o
“Incidencias”, entre otras.
Además, es común que, en el modelo entidad-relación, los conectores que indican que
dos entidades A y B están relacionadas entre sí tengan una apariencia gráfica
diferente dependiendo del tipo de relación que exista entre ellas.
Los tipos de relaciones posibles entre dos entidades en un modelo entidad relación
son:
Gracias al diagrama entidad relación es muy sencillo de forma visual identificar el tipo
de diseño que tiene el modelo de datos en una base de datos (jerárquico, estrella,
grafo…).
13
Elementos del Modelo entidad relación
Ejemplo de un modelo:
14
Nota:
Aprendizajes evaluados:
Parte Teórica.
Ítem 1. Selección múltiple.-
(20 pts. en total)
15
2. ¿Qué es una tupla? (2pts).
I Una Información Ordenada en la Base de Datos
II Información necesaria en una Base de datos
III Conjunto de nombres de atributos relacionados llamados Filas
IV Son las Relaciones de una Entidad a Otra
a. Solo la I y II.
b. La II y la IV.
c. Solo la III.
d. Ninguna de las Anteriores.
5. ¿Para qué sirve la foreign Key en una Base de Dato Relacional? (2pts).
I Para que los datos principales no se repitan en una tabla.
II Una clave externa es un campo que señala la clave primaria de otra tabla
III Es el atributo principal de una Tabla
IV Ninguna de las anteriores.
a. Solo I.
b. Solo I y II.
c. Solo IV.
d. Solo II.
16
6. Como puedo Seleccionar todos los campos en Mysql (2pts).
I Update set campo where campo=campo
II Select Campo1 a CampoN;
III Select * from Table;
IV Drop * from Table
a. Solo I.
b. Solo I y II.
c. Solo IV.
d. Solo III.
7. Cuál es la Instrucción que me sirve para Borrar un Registro de una Tabla (2pts).
I Select
II Drop
III Update
IV Delete
a. Solo I.
b. Solo I y II.
c. Solo IV.
d. Solo III.
10. Cuantas son las formas normales esenciales para normalizar una tabla (2pts).
I 1° Forma Normal
II 2° Forma Normal
III Llegar hasta la Tercera forma normal y lo ideal hasta la quinta
17
IV No es necesario normalizar las tablas
a. Solo I.
b. Solo I y II.
c. Solo IV.
d. Solo III.
Parte Práctica
18
Ítem 3. Ejecución Práctica (30 pts. totales)
Instructivo del Diagnostico
2.1 Modelar esta base de datos en Oracle con todas sus relaciones 11g
2.2 Insertar 5 registros en cada tabla, considerando el orden de las tablas
2.3 Actualice 2 registros a su elección en la tabla Cliente
2.4 Realice una eliminación de un registro a elección en la tabla Atención
Consideraciones varias:
1) REALICE LAS SIGUIENTES CONSULTAS:
A) Listar Rut de Cliente Nombres y Apellidos, Patente Automóvil, modelo, marca y año
B) Listar código de atención, mecánico a cargo (rut, nombre, apellidos), Fecha de Ingreso, diagnostico, modelo de
automóvil, marca, año y Rut del dueño
C) ¿Cuántos son los automóvil que ingresaron en la fecha 10/03/2015 a 10/06/2015 que son de marca Nissan
19
RÚBRICA
Item 1
Preguntas
1 2 3 4 5 6 7 8 9 10
Alternativas
A x x
B
C x x x
D x x x x x
Observaciones
Considerar siempre agregar observaciones al desarrollo de una actividad práctica, para la posterior retroalimentación
del alumno o alumna referente al proceso vivido.
20
Bases de datos relacional ¿Qué es y sus características?
Entre las bases de datos más utilizada actualmente, tenemos la base de datos
relacional. Este tipo de base de datos es una herramienta empleado por todo tipo de
empresas, independientemente de su tamaño o sector de negocio. En esta entrada
vamos a explicar qué es una base de datos relacional, sus principales características y
cómo funciona.
Las bases de datos relacionales son el modelo más utilizado actualmente (postulado
por primera vez en 1970 por Edgar Frank Codd).
21
los datos. Cada registro tiene normalmente un valor para cada atributo, lo que
simplifica la creación de relaciones entre los puntos de datos.
Así mismo, no pueden existir dos tablas con el mismo nombre y la relación entre una
tabla padre y una tabla hija se lleva a cabo a través de claves primarias (son la clave
principal de un registro dentro de una tabla) y claves ajenas (se colocan en la tabla hija
y contienen el mismo valor que la clave primaria del registro padre).
Para poder almacenar, administrar, consultar y recuperar los datos guardado en la base
de datos relacional es necesario emplear un software específico, denominado sistema
de gestión de bases de datos relacionales (RDBMS). Este software proporciona una
interfaz entre los usuarios y/o las aplicaciones y la base de datos, además de contar
con funciones administrativas para gestionar el acceso, almacenamiento y rendimiento.
Ventajas y desventajas
Como la mayoría de los sistemas, la base de datos relacional tiene ventajas y
desventajas que tener en cuenta a la hora implementarla, pero, cómo vamos a ver, en
este caso las ventajas son lo suficientemente importantes como para que sea una de
las bases de datos más empleada, incluso contando con algunas deficiencias.
Ventajas
Quizás la principal ventaja de la base de datos relacional reside en la sencillez del
modelo relacional, que permite manejar grandes cantidades de datos con puntos de
relación entre sí, gestionándolos de forma segura y conforme a unas normas y un
modo uniforme.
22
relacionales garantizan que todas las copias de la base de datos tienen los mismos
datos en todo momento.
Además, las bases de datos relacionales garantizan, como ya hemos mencionado, que
no se produzca la duplicidad de registros. Y favorece la normalización al ser más
comprensible y aplicable.
Así mismo, para evitar conflictos cuando varios usuarios o aplicaciones intentan
acceder a los mismos datos en el mismo momento, pueden bloquear dicho acceso
mientras los datos se están actualizando (como cuando estamos reservando unas
entradas de cine numeradas).
Desventajas
Como decíamos, las bases datos relacional también cuentan con algunas desventajas,
principalmente, son deficientes a la hora de manejar datos gráficos, multimedia, CAD
y sistemas de información geográfica, que necesitan un soporte más dinámico.
23
Tipos
Como ya hemos mencionada más arriba, el software empleado para manejar una base
de datos relacional es un sistema de Gestión de Bases de Datos Relacionales
(RDBMS). Actualmente existen varios tipos de de gestores de BDR, entre ellos, los
más usados son:
Oracle
MySQL
PostgreSQL
DB2
Estructura
La base de datos está dividida en dos secciones: el esquema y los datos. A través del
esquema se define la estructura de la base de datos relacional, que almacena los
siguientes datos:
El nombre de cada tabla (o relación): es el conjunto de tuplas que comparten los
mismos atributos, es decir, un conjunto de filas y columnas.
El nombre de cada columna (atributo o campo): es un elemento etiquetado de una
tupla (como por ejemplo, el número de la seguridad social de un empleado).
El tipo de dato de cada columna.
La tabla a la que pertenece cada columna.
La fila (tupla o registro): es el conjunto de datos que representa un objeto simple.
Esta sería la estructura básica de una tabla de una base de datos relacional:
24
Así, una tabla con los datos de los empleados de una empresa podría verse así:
25
¿Cómo funcionan?
En las bases de datos relacionales, las tablas están relacionadas entre sí y han sido
previamente establecidas (es decir, se debe diseñar previamente su estructura). Como
ya hemos comentado, dentro de cada tabla hay un conjunto de datos o registros
recogidos en columnas y filas. De manera que la relación entre una tabla principal y
otra tabla subordinada se establece por medio las claves primaria o ajenas que se
hayan establecido. Es a través de las claves por las que se hacen las relaciones
Por ejemplo, si en la tabla de empleados el ID es ID_e y nuestra empresa facilita una
tablet a cada empleado, tendremos otra tabla que recogerá los datos de las tablets
con una ID_t. Si incluimos la clave primaria de la tabla de las tablets (ID_t) como clave
ajena en la tabla de los empleados, pondremos en relación ambas tablas, pudiendo
ver qué tablet tiene cada empleado.
Ejemplos de esta
26
¿Qué es la tercera forma normal? (Bases de datos)
La tercera forma normal (bases de datos) es una técnica de diseño de base de datos
relacional, donde las diferentes tablas que la componen no solo cumplen con la
segunda forma normal, sino que todos sus atributos o campos dependen
directamente de la clave principal.
Cuando se diseña una base de datos, el objetivo principal es crear una representación
precisa de los datos, de las relaciones existentes entre ellos y de las restricciones en
los datos que sean pertinentes.
Para lograr este objetivo, se pueden usar algunas técnicas de diseño de base de
datos, entre las cuales se encuentra la normalización.
Esta es un proceso de organización de los datos en una base de datos para evitar
redundancias y posibles anomalías en la inserción, actualización o eliminación de los
datos, generando para ello un diseño simple y estable del modelo conceptual.
Comienza examinando la relación o dependencia funcional entre los atributos. Estos
describen alguna propiedad de los datos o de la relación entre ellos.
Formas normales
La normalización utiliza una serie de pruebas, llamadas formas normales, para ayudar
a identificar la agrupación óptima de estos atributos y finalmente establecer el
conjunto de relaciones adecuadas que respalden los requerimientos de datos de una
empresa
27
Es decir, la técnica de normalización se construye alrededor del concepto de forma
normal, que define un sistema de restricciones. Si una relación cumple con las
restricciones de una forma normal en particular, se dice que la relación está en esa
forma normal.
28
– Si hay atributos que no tienen relación con la clave primaria, hay que eliminarlos y
colocarlos en una tabla separada, relacionando ambas tablas por medio de una clave
externa. Es decir, no debería haber ninguna dependencia transitiva.
En este caso, CALLE y CIUDAD no tienen una relación directa con la clave primaria
ID_ESTUDIANTE, ya que no están directamente relacionados con el estudiante, sino
que dependen totalmente del código postal.
29
Crear nueva tabla
Supongamos que hay múltiples estudiantes ubicados en un mismo código postal, con
la tabla ESTUDIANTE teniendo una inmensa cantidad de registros, y se requiere
cambiar el nombre de la calle o la ciudad, entonces se deberá buscar y actualizar esta
calle o ciudad en toda la tabla ESTUDIANTE.
Por ejemplo, si se requiere cambiar la calle “El Limón” por “El Limón II”, se tendrá que
buscar “El Limón” en toda la tabla ESTUDIANTE y luego actualizarla a “El Limón II”.
Buscar en una tabla enorme y actualizar los registros únicos o múltiples requerirá
mucho tiempo y, por tanto, afectará el rendimiento de la base de datos.
En su lugar, estos detalles se pueden tener en una tabla separada (POSTAL) que esté
relacionada con la tabla ESTUDIANTE usando el atributo CODIGO_POSTAL.
30
Ejemplo 2
Sea la siguiente tabla con el campo Num_Proyecto como clave principal y con valores
repetidos en atributos que no son claves.
El valor de Teléfono se repite cada vez que se repite el nombre de un gerente. Esto es
porque el número de teléfono solo tiene una dependencia de segundo grado con el
número de proyecto. Realmente primero depende del gerente, y este a su vez
depende del número de proyecto, lo cual hace una dependencia transitiva.
Se deben agrupar los atributos que correspondan, creando una nueva tabla para
guardarlos. Los datos se ingresan y se verifica que los valores que se repitan no
formen parte de la clave primaria. Se establece la clave primaria para cada tabla y, si
es necesario, se agregan claves externas.
Para cumplir con la tercera forma normal se crea una nueva tabla (Gerentes) para así
solucionar el problema. Ambas tablas se relacionan a través del campo
Gerente_Proyecto:
31
32
¿Qué es MySQL?
Primero lo primero, tienes que saber cómo pronunciarlo: MY-ES-KYU-EL’
[maɪˌɛsˌkjuːˈɛl]. Una compañía sueca llamada MySQL AB originalmente desarrolló
MySQL en 1994. La compañía de tecnología de los Estados Unidos Sun Microsystems
luego tomó el control por completo cuando compró MySQL AB en el 2008. El gigante
de la tecnología estadounidense Oracle adquirió Sun Microsystems en el 2010, y
MySQL ha sido propiedad de Oracle desde entonces.
Base de datos
Una base de datos es simplemente una colección de datos estructurados. Imagina que
te tomas una selfie: presionas un botón y capturas una imagen de ti mismo. Tu foto es
información y la galería de tu teléfono es la base de datos. Una base de datos es un
lugar en el que los datos son almacenados y organizados. La palabra «relacional»
significa que los datos almacenados en el conjunto de datos son organizados en
forma de tablas. Cada tabla se relaciona de alguna manera. Si el software no es
compatible con el modelo de datos relacionales, simplemente se llama DBMS.
Código abierto
Código abierto significa que eres libre de usarlo y modificarlo. Cualquiera puede
instalar el software. También puedes aprender y personalizar el código fuente para
que se adapte mejor a tus necesidades. Sin embargo, la GPL (licencia pública de GNU)
determina lo que puedes hacer según las condiciones. La versión con licencia
comercial está disponible si necesitas una propiedad más flexible y un soporte
avanzado.
Modelo cliente-servidor
Las computadoras que tienen instalado y ejecutan el software RDBMS se llaman
clientes. Siempre que necesitan acceder a los datos, se conectan al servidor RDBMS.
Esa es la parte «cliente-servidor».
33
MySQL es una de las muchas opciones de software RDBMS. Suele pensarse que
RDBMS y MySQL son lo mismo debido a la popularidad de MySQL. Para nombrar
algunas aplicaciones web grandes como Facebook, Twitter, YouTube, Google y
Yahoo!, todas usan MySQL para el almacenamiento de datos. Aunque inicialmente se
creó para un uso limitado, ahora es compatible con muchas plataformas de
computación importantes como Linux, macOS, Microsoft Windows y Ubuntu.
SQL
MySQL y SQL no son lo mismo. Ten en cuenta que MySQL es una de las marcas más
populares de software RDBMS, que implementa un modelo cliente-servidor. Entonces,
¿cómo se comunican el cliente y el servidor en un entorno RDBMS? Utilizan un
lenguaje específico del dominio: lenguaje de consulta estructurado (SQL, Structured
Query Language). Cuando veas otros nombres que contienen SQL, como PostgreSQL y
el servidor Microsoft SQL, es muy probable que sean marcas que también utilizan la
sintaxis SQL. El software RDBMS a menudo se escribe en otros lenguajes de
programación, pero siempre usa SQL como lenguaje principal para interactuar con la
base de datos. MySQL como tal está escrito en C y C ++. Pasa como con los países
sudamericanos, todos son geográficamente diferentes y tienen historias diferentes,
pero todos hablan principalmente español.
Dejando de lado la historia, SQL le dice al servidor qué hacer con los datos. Es similar
a tu contraseña o código de WordPress. Lo ingresas en el sistema para obtener acceso
al área del panel de control. En este caso, las declaraciones de SQL pueden indicarle
al servidor que realice ciertas operaciones:
34
• Control de acceso a los datos: proporcionar técnicas de seguridad para
proteger los datos, lo que incluye decidir quién puede ver o usar cualquier
información almacenada en la base de datos.
• MySQL crea una base de datos para almacenar y manipular datos, definiendo
la relación de cada tabla.
• MySQL no es el único (R)DBMS que hay en el mercado, pero es uno de los más
populares y solo está por detrás de Oracle Database cuando se califica
utilizando parámetros críticos como la cantidad de menciones en los
resultados de búsqueda, los perfiles profesionales en LinkedIn y la frecuencia
de discusiones técnicas en foros de internet. El hecho de que muchos de los
principales gigantes de la tecnología confíen en él refuerza aún más esta
merecida posición. ¿Por qué? Aquí están las razones:
Alto rendimiento
Un estándar de la industria
Las industrias han estado usando MySQL durante años, lo que significa que hay
abundantes recursos para desarrolladores calificados. Los usuarios de MySQL pueden
esperar un rápido desarrollo del software y trabajadores freelance expertos
dispuestos a trabajar.
Seguro
37
Conceptos básicos de SQL
Fecha Autores
Comando Descripción
38
CREATE Utilizado para crear nuevas tablas, campos e índices
ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de lo
39
# ALTER TABLE 'NOMBRE_TABLA' DROP COLUMN NOMBRE_COLUMNA;
DROP
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista,
índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base
de datos soporte. Se puede combinar con la sentencia ALTER.
Ejemplo:
# DROP TABLE 'NOMBRE_TABLA';
# DROP SCHEMA 'ESQUEMA;'
# DROP DATABASE 'BASEDATOS';
TRUNCATE
Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando
DROP, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido,
especialmente si la tabla es muy grande. La desventaja es que TRUNCATE sólo sirve
cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la
cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje
de Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando
TRUNCATE borra la tabla y la vuelve a crear y no ejecuta ninguna transacción.
Ejemplo:
# TRUNCATE TABLE 'NOMBRE_TABLA';
Prácticas
Práctica 1
Definir mediante comandos SQL el modelo de datos creado para los Parques
Naturales de Costa Rica
Lenguaje de manipulación de datos DML(Data Manipulation Language)
Comando Descripción
SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determ
INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación.
UPDATE Utilizado para modificar los valores de los campos y registros especificados Utilizado p
cambiando la definición de los campos.
40
DELETE Utilizado para eliminar registros de una tabla
Definición
Forma básica:
Ejemplo:
41
UPDATE
Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto
de registros existentes en una tabla.
Ejemplo:
# UPDATE mi_tabla SET campo1 = 'nuevo valor campo1' WHERE campo2 = 'N';
DELETE
Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla.
Forma básica:
# DELETE FROM 'tabla' WHERE 'columna1' = 'valor1'
Ejemplo:
# DELETE FROM My_table WHERE field2 = 'N';
Prácticas
Práctica 1
Extraer de Wikipedia la información necesaria para insertar en el modelo de datos
creado para Parques Nacionales y desarrollar en un script mediante sentencias SQL.
Clausulas
Las cláusulas son condiciones de modificación utilizadas para definir los datos que
desea seleccionar o manipular.
Comando Descripción
FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros
HAVING Utilizada para expresar condición que debe satisfacer cada grupo
ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden espe
Operadores
Operadores Lógicos
42
Operador Uso
AND Es el “y” lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas
Operadores de comparación
Operador Uso
<> Distinto de
BETWEEN Intervalo
LIKE Comparación
In Especificar
Funciones de agregado
Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de
registros para devolver un único valor que se aplica a un grupo de registros.
Comando Descripción
SUM Utilizada para devolver la suma de todos los valores de un campo determinado
43
MIN Utilizada para devolver el valor más bajo de un campo especificado
Consultas
Consultas de selección
Las consultas de selección se utilizan para indicar al motor de datos que devuelva
información de las bases de datos, esta información es devuelta en forma de conjunto
de registros. Este conjunto de registros es modificable.
Básicas
Se puede especificar el orden en que se desean recuperar los registros de las tablas
mediante la clausula ORDER BY:
# SELECT CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY Nombre;
Se pueden ordenar los registros por mas de un campo:
# SELECT CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY CodigoPostal,
Nombre;
Y se puede especificar el orden de los registros: ascendente mediante la claúsula
(ASC -se toma este valor por defecto) ó descendente (DESC):
# SELECT CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY CodigoPostal
DESC , Nombre ASC;
45
A excepción de los dos últimos todos poseen la siguiente sintaxis:
<expresión1> operador <expresión2>
En donde expresión1 y expresión2 son las condiciones a evaluar, el resultado de la
operación varía en función del operador lógico:
# SELECT * FROM Empleados WHERE Edad > 25 AND Edad < 50;
# SELECT * FROM Empleados WHERE (Edad > 25 AND Edad < 50) OR Sueldo = 100;
# SELECT * FROM Empleados WHERE NOT Estado = 'Soltero';
# SELECT * FROM Empleados WHERE (Sueldo > 100 AND Sueldo < 500) OR (Provincia
= 'Madrid' AND Estado = 'Casado');
Operador BETWEEN
Para indicar que deseamos recuperar los registros según el intervalo de valores de un
campo emplearemos el operador Between:
# SELECT * FROM Pedidos WHERE CodPostal Between 28000 And 28999;
(Devuelve los pedidos realizados en la provincia de Madrid)
46
# SELECT Apellidos, Salario FROM Empleados
WHERE Salario > 21000;
# SELECT Id_Producto, Existencias FROM Productos
WHERE Existencias <= Nuevo_Pedido;
Agrupamiento de registros (Agregación)
AVG
Calcula la media aritmética de un conjunto de valores contenidos en un campo
especificado de una consulta:
Avg(expr)
La función Avg no incluye ningún campo Null en el cálculo. Un ejemplo del
funcionamiento de AVG:
# SELECT Avg(Gastos) AS Promedio FROM
Pedidos WHERE Gastos > 100;
MAX, MIN
Devuelven el mínimo o el máximo de un conjunto de valores contenidos en un campo
especifico de una consulta. Su sintaxis es:
Min(expr)
Max(expr)
Un ejemplo de su uso:
# SELECT Min(Gastos) AS ElMin FROM Pedidos
WHERE Pais = 'Costa Rica';
# SELECT Max(Gastos) AS ElMax FROM Pedidos
WHERE Pais = 'Costa Rica';
SUM
Devuelve la suma del conjunto de valores contenido en un campo especifico de una
consulta. Su sintaxis es:
Sum(expr)
Por ejemplo:
# SELECT Sum(PrecioUnidad * Cantidad)
AS Total FROM DetallePedido;
GROUP BY
Combina los registros con valores idénticos, en la lista de campos especificados, en
un único registro:
47
# SELECT campos FROM tabla WHERE criterio
GROUP BY campos del grupo
Todos los campos de la lista de campos de SELECT deben o bien incluirse en la
cláusula GROUP BY o como argumentos de una función SQL agregada:
# SELECT Id_Familia, Sum(Stock)
FROM Productos GROUP BY Id_Familia;
HAVING es similar a WHERE, determina qué registros se seleccionan. Una vez que los
registros se han agrupado utilizando GROUP BY, HAVING determina cuales de ellos se
van a mostrar.
# SELECT Id_Familia Sum(Stock) FROM Productos GROUP BY Id_Familia HAVING
Sum(Stock) > 100 AND NombreProducto Like BOS*;
Manejo de varias tablas
Partiendo de la definición de las siguientes tablas:
Tabla clientes
+------+--------+----------+
| cid | nombre | telefono |
+------+--------+----------+
| 1 | jose | 111 |
| 2 | maria | 222 |
| 3 | manuel | 333 |
| 4 | jesus | 4444 |
+------+--------+----------+
Tabla Acciones
+-----+-----+--------+----------+
| aid | cid | accion | cantidad |
+-----+-----+--------+----------+
| 1 | 2 | REDHAT | 10 |
| 2 | 4 | NOVELL | 20 |
| 3 | 4 | SUN | 30 |
| 4 | 5 | FORD | 100 |
+-----+-----+--------+----------+
Cosultas mediante JOIN
JOIN
48
La sentencia SQL JOIN se utiliza para relacionar varias tablas. Nos permitirá obtener
un listado de los campos que tienen coincidencias en ambas tablas:
# select nombre, telefono, accion, cantidad from clientes join acciones on
clientes.cid=acciones.cid;
resultando:
+--------+----------+--------+----------+
| nombre | telefono | accion | cantidad |
+--------+----------+--------+----------+
| maria | 222 | REDHAT | 10 |
| jesus | 4444 | NOVELL | 20 |
| jesus | 4444 | SUN | 30 |
+--------+----------+--------+----------+
LEFT JOIN
La sentencia LEFT JOIN nos dará el resultado anterior mas los campos de la tabla de
la izquierda del JOIN que no tienen coincidencias en la tabla de la derecha:
# select nombre, telefono, accion, cantidad from clientes left join acciones on
clientes.cid=acciones.cid;
con resultado:
+--------+----------+--------+----------+
| nombre | telefono | accion | cantidad |
+--------+----------+--------+----------+
| jose | 111 | NULL | NULL |
| maria | 222 | REDHAT | 10 |
| manuel | 333 | NULL | NULL |
| jesus | 4444 | NOVELL | 20 |
| jesus | 4444 | SUN | 30 |
+--------+----------+--------+----------+
RIGHT JOIN
Identico funcionamiento que en el caso anterior pero con la tabla que se incluye en la
consulta a la derecha del JOIN:
# select nombre, telefono, accion, cantidad from clientes right join acciones on
clientes.cid=acciones.cid;
49
cuyo resultado será:
+--------+----------+--------+----------+
| nombre | telefono | accion | cantidad |
+--------+----------+--------+----------+
| maria | 222 | REDHAT | 10 |
| jesus | 4444 | NOVELL | 20 |
| jesus | 4444 | SUN | 30 |
| NULL | NULL | FORD | 100 |
+--------+----------+--------+----------+
UNION y UNION ALL
Podemos combinar el resultado de varias sentencias con UNION o UNION ALL. UNION
no nos muestra los resultados duplicados, pero UNION ALL si los muestra:
# select nombre, telefono, accion, cantidad from clientes left join acciones on
clientes.cid=acciones.cid where accion is null union select nombre, telefono, accion,
cantidad from clientes right join acciones on clientes.cid=acciones.cid where nombre
is null;
que mostrará:
+--------+----------+--------+----------+
| nombre | telefono | accion | cantidad |
+--------+----------+--------+----------+
| jose | 111 | NULL | NULL |
| manuel | 333 | NULL | NULL |
| NULL | NULL | FORD | 100 |
+--------+----------+--------+----------+
Vistas
Las vistas (“views”) en SQL son un mecanismo que permite generar un resultado a
partir de una consulta (query) almacenado, y ejecutar nuevas consultas sobre este
resultado como si fuera una tabla normal. Las vistas tienen la misma estructura que
una tabla: filas y columnas. La única diferencia es que sólo se almacena de ellas la
definición, no los datos.
La cláusula CREATE VIEW permite la creación de vistas. La cláusula asigna un nombre
a la vista y permite especificar la consulta que la define. Su sintaxis es:
# CREATE VIEW id_vista [(columna,…)]AS especificación_consulta;
50
Opcionalmente se puede asignar un nombre a cada columna de la vista. Si se
especifica, la lista de nombres de las columnas debe de tener el mismo número de
elementos que elnúmero de columnas producidas por la consulta. Si se omiten, cada
columna de la vista1 adopta el nombre de la columna correspondiente en la consulta.
51
Prueba Nº 2
Alumno(a)
52
CASO 1: INGRESO DE PACIENTES EN CENTRO MÉDICO. El centro médico “El Bienestar” necesita
llevar un control informatizado de su gestión de pacientes y médicos. De cada paciente se desea
guardar el RUN, nombres, apellidos, dirección, provincia, ciudad, teléfonos, correos electrónicos y
fecha de nacimiento.
De cada médico se desea guardar el RUN, código inscripción como colegiado, nombre, apellidos,
teléfono y especialidad.
Se desea llevar el control de cada uno de los ingresos que el paciente hace en el centro médico.
Cada ingreso que realiza el paciente queda registrado en la base de datos. De cada ingreso se guarda
el código de ingreso (que se incrementará automáticamente cada vez que el paciente realice un
ingreso), el número de habitación en la que el paciente realiza el ingreso, número de cama y la fecha
de ingreso.
Un médico puede atender varios ingresos, pero el ingreso de un paciente solo puede ser atendido
por un único médico. Un paciente puede realizar varios ingresos en la clinica”.
• Cada artículo (golosinas, cigarrillos, caramelos, chocolates, etc.) poseen un stock crítico y
un stock real.
• Los proveedores se encuentran codificados.
• Donde dice “teléfonos (s)”, significa que tiene más de uno.
53
Se pide:
54
Taller Final
“Diseño de Base de Datos”
NOMBRE
ALUMNO
55
Ítem 1. Ejecución Práctica (32 pts. totales)
Instrucciones de la prueba:
A continuación se presentan 2 problemáticas que deben ser resultas mediante la generación de
instrucciones SQL, logrando la consistencia e integridad al modelo de base de datos. Se debe
especificar el tipo de dato, largo, restricciones primarias, foráneas, etc. Según corresponda.
Ejercicio 1
El presente modelo describe a los vehículos con sus correspondientes marcas, modelos y tipo
de vehículo.
Anio
fk codigo_marca tipo
fk codigo_modelo codigo_tipo
fk codigo_tipo tipo_descripcion
1.- Insertar 3 registros en cada una de las tablas (1 instrucción sql por cada insert).
2.- Desplegar todos los vehículos considerando patente, número de chasis y año.
3.- Listar las marcas registradas
4.- Obtener nómina de todos los modelo ingresados
5.- Generar lista de registros de la tabla tipo.
6.- Desplegar todos los vehículos existentes, desplegando su patente, marca y modelo.
7.- Cambiar el número de chasis para cada vehículo (1 instrucción sql por cada uno)
8.- Eliminar 1 registro de la tabla modelo seleccionado por usted.
9.- Eliminar 1 registro de la tabla marca seleccionado por usted.
10.- Eliminar 1 registro de la tabla tipo seleccionado por usted.
56
Ejercicio 2
El presente modelo representa a los alumnos del CFT San Agustín que han realizado la toma
de ramos para el semestre.
telefono estado
fecha_nacimiento
11.- Insertar 4 registros en cada una de las tablas (1 instrucción sql por cada insert).
12.- Desplegar todos los alumnos del sistema (todos sus datos)
13.- Listar los ramos vigentes (se asume como vigente “S” y no vigente “N”)
14.- Obtener nómina de todos ramos que cursan los alumnos, desplegando el rut, nombre del
alumno y nombre del ramo que cursa.
15.- Modificar la descripción de un ramo seleccionado por usted.
16.- Modificar la dirección de un alumno seleccionado por usted.
17.- Eliminar los ramos no vigentes. (se asume como vigente “S” y no vigente “N”)
57
Indicadores Destacado Competente Básico Insatisfactorio
58
Instrucciones y Forma Sigue las Sigue las Sigue las Sigue las
de entrega de carpeta instrucciones y instrucciones,
instrucciones y instrucciones
pero no respeta
de evidencia
formato formato solicitado, pero no respeta el formato,
59