BD Conceptos B Sicos - Relacionales
BD Conceptos B Sicos - Relacionales
BD Conceptos B Sicos - Relacionales
Definiciones:
Dato:
Un dato es la unidad mínima de información. Es atómico y posee un significado por sí solo. Los
datos pueden ser números, letras o símbolos que describen objetos, condiciones o situaciones.
Ejemplos: casa, carro, uno, azul, alto, alegre, etc.
Información:
Es un conjunto de datos organizados con una secuencia lógica y posee un significado para la
persona o sistema que recibe dicha información.
Sistema de Información:
Como todo, contribuyen a cumplir un determinado objetivo., este está compuesto por una serie
de elementos, cada uno con una función definida y que trabajan coordinadamente para
administrar información.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
BASE DE DATOS.
Una base de datos es similar a un almacén o bodega donde se almacena grandes cantidades de
información la cual deseamos recuperar posteriormente. Por ejemplo, imaginemos que tenemos
una empresa que vende algún tipo de producto y deseamos tener almacenados los datos
personales y los números de teléfono de todos nuestros clientes, que posiblemente sean millones
de personas; para ello necesitaríamos algún medio o sistema. Aunque en su forma más simple
podríamos considerar la información guardada en un archivo ya sea de texto, una hoja de cálculo.
Una base de datos está compuesta por tablas, las cuales almacenan información relevante, como
se muestra en la siguiente imagen..
El sistema de gestión de bases de datos (DBMS) es una colección de programas que permite a sus
usuarios acceder a la base de datos, manipular datos, generar informes o representar datos.
También ayuda a controlar el acceso a la base de datos.
Los sistemas de gestión de bases de datos no son un concepto nuevo y, como tal, se
implementaron por primera vez en los años sesenta.
Tipos de DBMS.
El siguiente diagrama muestra la evolución de las categorías de DBMS .
● Red de DBMS : este tipo de DBMS admite muchas y muchas relaciones. Esto generalmente
resulta en estructuras de base de datos complejas. RDM Server es un ejemplo de un
sistema de administración de base de datos que implementa el modelo de red.
● DBMS relacional : este tipo de DBMS define las relaciones de base de datos en forma de
tablas, también conocidas como relaciones. A diferencia de la red DBMS, RDBMS no
admite muchas o muchas relaciones. Por lo general, los DBMS relacionales tienen tipos de
datos predefinidos que pueden admitir. Este es el tipo de DBMS más popular en el
mercado. Los ejemplos de sistemas de administración de bases de datos relacionales
incluyen bases de datos MySQL, Oracle y Microsoft SQL Server.
● Relación de objetos orientada a DBMS : este tipo admite el almacenamiento de nuevos
tipos de datos. Los datos a almacenar están en forma de objetos. Los objetos que se
almacenarán en la base de datos tienen atributos (es decir, género, edad) y métodos que
definen qué hacer con los datos. PostgreSQL es un ejemplo de un DBMS relacional
orientado a objetos.
Es un Sistema de gestión de
bases de datos relacional orientado a objetos.
PostgreSQL es un proyecto de código abierto, libre y/o
apoyada por organizaciones comerciales.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
¿QUÉ ES SQL?
Aparte de los lenguajes de programación (como Java o Python), que nos permiten crear
programas, los propios SGBD requieren utilizar una sintaxis o “lenguaje propio” a la hora de
realizar consultas y modificaciones en tablas y registros.
El lenguaje de consulta estructurado (SQL) pronunciado como "SQL" o, a veces, como "See-Quel "
es en realidad el lenguaje estándar para tratar con bases de datos relacionales.
La programación de SQL se puede utilizar eficazmente para insertar, buscar, actualizar y eliminar
registros de bases de datos.
Eso no significa que SQL no pueda hacer cosas más allá de eso.
De hecho, puede hacer muchas cosas, entre otras, la optimización y el mantenimiento de bases de
datos.
Las bases de datos relacionales como MySQL Database, Oracle, MS SQL Server, Sybase, etc. utilizan
SQL. ¿Cómo usar sintaxis sql?
Las sintaxis de SQL utilizadas en estas bases de datos son casi similares, excepto por el hecho de
que algunas utilizan pocas sintaxis diferentes e incluso sintaxis de propiedad de SQL.
Ejemplo SQL
¿QUÉ ES NOSQL?
Con las ventajas de las bases de datos NOSQL descritas anteriormente que se pueden ampliar
mejor que los modelos relacionales, es posible que piense por qué uno todavía querría aprender
sobre la base de datos SQL.
Bueno, las bases de datos NOSQL son una especie de sistemas altamente especializados y tienen
su uso y limitaciones especiales. NOSQL se adapta más a quienes manejan grandes volúmenes de
datos. La gran mayoría, utilizan bases de datos relacionales y herramientas asociadas.
Las bases de datos relacionales tienen las siguientes ventajas sobre las bases de datos NOSQL:
● Las bases de datos SQL (relacionales) tienen un modelo de gestión y almacenamiento de
datos maduro. Esto es crucial para los usuarios empresariales .
● Las bases de datos SQL admiten la noción de vistas que permiten a los usuarios ver solo los
datos que están autorizados a ver. Los datos que no están autorizados a ver se mantienen
ocultos.
● Las bases de datos SQL son compatibles con el procedimiento almacenado sql que permite
a los desarrolladores de bases de datos implementar parte de la lógica de negocios en la
base de datos.
● Las bases de datos SQL tienen mejores modelos de seguridad en comparación con las
bases de datos NoSQL.
El mundo no se ha desviado del uso de bases de datos relacionales. Existe una creciente demanda
de profesionales que pueden manejar bases de datos relacionales. Por lo tanto, el aprendizaje de
bases de datos y SQL todavía tiene mérito.
Resumen
● DBMS significa Sistema de Gestión de Base de Datos.
● Tenemos cuatro tipos principales de DBMS: jerárquico, de red, relacional, orientado a
objetos.
● El DBMS más utilizado es el modelo relacional que guarda los datos en formatos de
tabla. Utiliza SQL como lenguaje de consulta estándar.
● El lenguaje SQL se usa para consultar una base de datos
● El enfoque de base de datos tiene muchas ventajas cuando se trata de almacenar
datos en comparación con los sistemas tradicionales basados en archivos planos.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
Un modelo es una representación simbólica de un objeto (Un objeto es una unidad dentro de un
programa de computadora que consta de un estado y de un comportamiento, que a su vez
constan respectivamente de datos almacenados), sistema, idea o cualquier cosa del mundo real.
Nos ayuda a abstraer o a entender más fácilmente la realidad. Un requerimiento básico para
cualquier modelo, es que debe describir al sistema con suficiente detalle para hacer predicciones
válidas sobre el comportamiento de este.
Como cualquier sistema, las bases de datos se pueden diseñar utilizando modelos, en este caso se
utilizarán herramientas para crear modelos conceptuales y lógicos.
MODELO CONCEPTUAL.
El modelo conceptual explica de manera general un sistema. Ayuda a tener una visión simplificada
sin entrar en especificaciones. Este modelo puede ser fácilmente entendible por cualquier persona
ya que tan solo muestra una aproximación inicial de lo que se está modelando.
En el contexto de las bases de datos este debe ser el primer paso en su modelado (Es el proceso
que permite describir el tipo y las relaciones entre los datos. Este se enfoca en las relaciones entre
conjuntos de datos y cómo influyen entre sí). Este modelo no depende de un sistema de gestión
de base de datos en particular.
Para dar un ejemplo de un modelo conceptual imaginémonos que queremos describir la casa en la
que vivimos, para ello podríamos tener un diagrama como el siguiente:
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
MODELO LÓGICO.
El modelo lógico representa un sistema de manera más formal y técnica que el modelo
conceptual. Describe el sistema de manera más específica y se acerca mucho más a la realidad.
Este modelo puede ser menos entendible para una persona común, pero si por el experto en el
área.
En bases de datos el modelo lógico explica con detalle la estructura. y otras especificaciones. Este
modelo puede depender del sistema. de gestión de base de datos que se escoja para
administrarla.
Siguiendo con el ejemplo anterior, si se quisiera describir la casa en la que vivimos de manera más
específica o técnica, podríamos utilizar un diagrama como el siguiente:
Para empezar a modelar nuestra base de datos primero tenemos que obtener los requerimientos,
estos determinan la información que se desea administrar desde el sistema de gestión de bases de
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
datos. Para obtener estos requerimientos existen diferentes técnicas como son las entrevistas,
lluvia de ideas, cuestionarios, reuniones grupales, etc.
Cuando ya tenemos claros los requerimientos, se procede a identificar dentro de estas, entidades
y relaciones.
Entidad
Una entidad es una cosa u objeto (Un objeto es una unidad dentro de un programa de
computadora que consta de un estado y de un comportamiento, que a su vez constan
respectivamente de datos almacenados). del mundo real, también puede ser un concepto
abstracto y es distinguible de todos los demás objetos. Una entidad tiene un conjunto de
propiedades o atributos que la caracterizan.
Ejemplos: Personas, Animales, Casas, Autos, etc.
Cada uno de los ejemplos anteriores corresponde a una entidad dado que son objetos del mundo
real claramente distinguibles, y como veremos adelante, a cada uno de estos se le pueden extraer
propiedades o atributos.
Otro ejemplo de una entidad no tan evidente podría ser “Inscripción”.
Atributos:
Los atributos son las características o propiedades de una entidad. Cada uno de los elementos de
la entidad poseen los mismos atributos y a cada atributo se le asigna un valor único por cada
elemento. Tomando la entidad “Persona” como ejemplo, identificamos algunas propiedades en
ella como son: identificación, nombres, apellidos, fecha de nacimiento, sexo, etc.
Un elemento en particular de la entidad persona podría ser: Sandra Toro identificada con el
documento 123456, nacida el 15 de agosto de 1984 de sexo femenino.
Así mismo otro elemento de persona podría ser: Juan Pérez identificado con él documento
987654, nacido el 12 de Febrero de 1981 de sexo masculino.
Atributo principal.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
Cuando hemos identificado todos los atributos que hacen parte de la entidad, debemos identificar
cuál de estos corresponde al atributo principal, teniendo en cuenta que este es el atributo o
conjunto de atributos que hacen único a cada instancia o elemento de una entidad.
Para el caso de personas es fácil reconocer la “identificación” como el atributo principal, ya que no
se encontrarán allí 2 personas diferentes que posean el mismo número de identificación. Esta
característica no sucede con el resto de atributos. Si tomamos como ejemplo el nombre, veremos
que no cumple la regla ya que existen varias personas que se puedan llamar igual, y así mismo
para los apellidos. Del mismo modo diferentes personas podrían haber nacido en la misma fecha y
ser del mismo sexo.
RELACIONES Y CARDINALIDAD.
El siguiente paso el modelado (Es el proceso que permite describir el tipo y las relaciones entre los
datos). luego de haber identificado las entidades y atributos, es identificar las relaciones y
multiplicidades.
Relación.
Una relación es una asociación entre diferentes entidades. Es un vínculo que nos permite definir
una dependencia, es decir, nos permite exigir que varias entidades compartan ciertos atributos de
forma indispensable.
Si tomamos como ejemplo la entidad “Estudiante” y la entidad “Libros” dentro del contexto de un
colegio, podríamos ver que entre estas existe una relación, la cual llamaremos “Prestar”, dado que
el estudiante presta libros y análogamente estos libros son prestados por estudiantes.
Reflexiva:
Esta se da cuando una entidad se relaciona consigo misma. Tomando como ejemplo la entidad
persona, esta podría ser reflexiva a través de la relación “Trabajar”, dado que una persona puede
trabajar para otra persona.
Binaria:
Esta se presenta cuando existe una relación únicamente entre 2 entidades. Como ejemplo
consideremos las entidades “Persona” y “Auto” las cuales se pueden relacionar a través de la
relación “Poseer”.
N-Aria:
En este caso en una misma relación intervienen más de 2 entidades. Como ejemplo tomemos las
entidades “Periodista”, “Articulo” y “Periódico” las cuales se pueden relacionar a través de la
relación “Escribir”.
Cardinalidad
Llamada también multiplicidad. Indica la cantidad de elementos o instancias de una entidad A que
se relacionan con una instancia de una Entidad B y viceversa. Esta puede ser de 3 tipos:
Uno a Uno (1:1):
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
Esta se da cuando un registro. o elemento de una entidad A se relaciona únicamente con un solo
registro de una entidad B y viceversa.
Ejemplo: Tomando la entidad “Profesor” y la entidad “Cubículo”, con la relación “Asignar”,
tenemos que, a un profesor se le asigna solo un cubículo y un cubículo se le asigna a un solo
profesor.
Entidades
Estas se representan gráficamente mediante un rectángulo y su nombre va en el interior.
Atributos:
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
Relaciones.
Las relaciones se representan gráficamente mediante un rombo, su nombre va en el interior y une
una o más entidades.
Cardinalidad.
Finalmente, para que nuestro modelo entidad relación esté completo, nos falta representar las
cardinalidades en cada relación. Aunque existen diferentes formas de hacerlo, utilizaremos la
sintaxis (Reglas establecidas para representar o describir algo.
Para entender mejor este concepto, tener en cuenta que cada relación se debe leer en ambos
sentidos, y así determinar la cardinalidad en cada extremo. También tener en cuenta que siempre
se toma un registro de una entidad y se observa con cuantos registros se puede relacionar como
máximo en la otra entidad y viceversa.
Si leemos el ejemplo de país y ciudad de izquierda a derecha, decimos que a un país pertenecen
muchas ciudades. De allí surge la “M” al lado de la entidad Ciudad. Si lo leemos de derecha a
izquierda, decimos que una ciudad específica pertenece a un único país. De allí surge el “1” al lado
de la entidad País
Para ver un ejemplo completo de este modelo, consideremos diseñar un diagrama entidad
relación para el siguiente ejercicio.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
En una universidad las facultades son dirigidas por un decano y a su vez, un decano dirige una
facultad.
Cada facultad cuenta con una serie de docentes, pero cada docente solo puede pertenecer a una
facultad.
Cada docente dicta varias asignaturas, así mismo una misma asignatura la pueden dictar docentes
diferentes.
Los estudiantes inscriben las asignaturas que le corresponde cada semestre.
De las facultades (Sección de una universidad que comprende los estudios de una rama de la
enseñanza, organiza la docencia y expide los títulos) interesa saber cuál es su nombre, ubicación y
número de bloque.
De los decanos se requiere la cedula, nombres, apellidos y celular.
De los docentes se debe registrar la cedula, nombres, apellidos y título.
Cada asignatura tiene un código, nombre y número de créditos (Es un valor numérico que se le da
a cada asignatura dependiendo de la importancia y nivel de esfuerzo que esta representa para un
estudiante.).
De los estudiantes se debe registrar identificación, nombres, apellidos y dirección de residencia
Teniendo esta información lo primero que debemos hacer es sacar un listado de las entidades y
relaciones que allí identifiquemos.
Entidades:
Facultad, Decano, Docente, Asignatura y Estudiante.
Relaciones:
Dirigir (Entre Facultad y Decano).
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
MODELO RELACIONAL.
El siguiente paso en el modelado de la base de datos, es la creación del modelo relacional. Este
representa la base de datos por medio de tablas en las cuales se almacenará la información. El
diagrama del modelo relacional se crea a partir del diagrama entidad relación siguiendo una serie
de reglas.
Reglas para pasar del modelo entidad relación al relacional.
1. Todas las entidades del modelo entidad relación se convierten en tablas en el modelo relacional,
y sus atributos en campos de la tabla. Como ejemplo tomaremos la entidad persona con sus
atributos y los representaremos así:
2. El atributo principal de cada entidad en el modelo entidad relación lo llamaremos llave primaria
(Es un campo o una combinación de campos que identifica de forma única a cada fila de una
tabla.) en el modelo relacional y por facilidad lo representaremos con las letras PK (Primary Key),
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
las cuales irán a continuación del nombre del campo. Para el caso de personas el atributo principal
es la cédula, por lo tanto su representación dentro de la tabla será así:
3. Donde exista una relación Uno a Uno (1:1) entre 2 entidades, se debe crear una llave que
llamaremos foránea, en una de las 2 tablas asociadas.
Una llave foránea es una referencia a una llave en otra tabla y determina una relación existente
entre 2 tablas. Una llave foránea en una tabla se asocia con una llave primaria en la otra tabla.
Para agregar una llave foránea simplemente se agrega un campo más con las mismas
características que el campo que es llave primaria.
Como se ve en el diagrama, la llave primaria de profesor (Cédula), se agregó como llave foránea en
cubículo y se unieron estos 2 campos mediante una línea. Aunque la multiplicidad era
originalmente de uno a uno (1:1) en el diagrama entidad relación, veremos que siempre donde
coloquemos una llave foránea la relación puede llegar a ser a muchos (M) registros.
4. Donde exista una relación de uno a muchos (1:M) en el modelo entidad relación, crearemos las
tablas correspondientes en el modelo relacional, y donde se encontraba la multiplicidad muchos
(M) se creará obligatoriamente la llave foránea de la misma forma como se hizo en el caso
anterior.
Tomemos como ejemplo las entidades Persona (Profesor) y Mascota. En este caso asumiremos
que un profesor puede tener varias mascotas, pero cada mascota pertenece a una sola persona.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
5. Donde exista una relación de muchos a muchos en el modelo entidad relación, la relación se
convierte en una tabla nueva que une las 2 entidades que se estaban relacionando originalmente.
La nueva tabla tendrá su propia llave primaria y tendrá 2 llaves foráneas, las cuales corresponden a
las llaves primarias de las otras dos tablas. Adicionalmente tendrá los campos adicionales que sean
requeridos. El nombre para la nueva tabla puede ser el mismo de la relación u otro que sea más
adecuado.
Para la cardinalidad se mantiene la misma regla aplicada en los casos anteriores. Se colocará un 1
donde se encuentran las llaves primarias, y una M donde se encuentra las llaves foráneas,
transformándose así en dos relaciones de uno a muchos (1:M).
Tomando como ejemplo las entidades estudiante y libro, y aplicando esta regla, se transformarían
en el modelo relacional de la siguiente forma:
La nueva tabla que fue creada a partir de la relación “prestar”, se le puso el nombre préstamo, se
le creó una llave primaria llamada “Id_Préstamo”, se le agregó las dos llaves foráneas a partir de
las llaves primarias de estudiantes (Nro_Id) y libros (Isbn) y se le agregó un nuevo campo llamado
“Fecha_préstamo”.
Luego de crear nuestro diagrama relacional el cual surge del modelo entidad relación, estamos
listos para empezar a crear en definitiva la base de datos. En este caso utilizaremos el sistema de
gestión de base de datos MySQL.
Para crear la base de datos vamos a utilizar una serie de instrucciones en un lenguaje de
programación llamado SQL.
SQL, por sus siglas en inglés (Structured Query Language) o “Lenguaje de consulta estructurado”,
es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar
diversos tipos de operaciones en ellas.
Lo primero que vamos a aprender es a crear, es nuestro espacio de base de datos, que es donde
luego se construirán las tablas y se almacenará la información. Para esto utilizaremos la siguiente
instrucción.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
Luego de creado el espacio de base de datos, procederemos a crear cada una de las tablas
identificadas en el modelo relacional, para ello utilizaremos la siguiente instrucción.
Todas las expresiones encerradas entre < > son las que debemos entrar a reemplazar.
En <nombre_tabla> colocaremos el nombre de la tabla que estemos creando como por ejemplo:
Personas, Libros, Estudiantes, etc.
En cada <nombre_columna_x> colocaremos los nombres de los campos de la tabla que se está
creando.
Entre los muchos tipos de datos que maneja MySQL, vamos a ver los que se utilizan con más
frecuencia.
● Int: Cuando un campo va a contener valores numéricos enteros, podemos definirlo con
este tipo de dato. El rango de valores que puede contener se encuentra entre
-2147483648 y 2147483647.
● Varchar: Si el campo va a contener texto o que es lo mismo, caracteres alfanuméricos., se
puede establecer con este tipo de dato.
● Enum: Si los valores que el campo va a contener están claramente definidos y no son
demasiados, se puede establecer con este tipo de dato. Para entender mejor esto, como
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
ejemplo tomemos el campo “Genero”. Sabemos que los únicos valores que va a almacenar
serán “Masculino” y “Femenino”, y se definiría así: enum('Femenino', 'Masculino').
● Date: Para los campos que requieran almacenar una fecha se le puede establecer este tipo
de dato de la siguiente manera: date('1995-01-25').
Llaves primarias: Para indicar que un campo es llave primaria, la manera más simple de hacerlo, es
colocar luego de la definición de este, la sentencia (Es una porción de código de algún lenguaje de
programación.) “Primary Key”.
Llaves foráneas: Para establecer los campos que son llaves foráneas dentro de la tabla, se coloca la
siguiente instrucción después de declarar todos los campos.
Donde <campo_foraneo> corresponde al nombre de uno de los campos que es llave foránea
dentro de nuestra tabla; <tabla_relacionada> corresponde al nombre de la tabla con la cual se está
asociando o relacionando nuestra tabla y <campo_relacionado> corresponde al campo con el cual
se está uniendo la llave foránea de nuestra tabla y el campo que es llave primaria en la tabla
relacionada.
Esta instrucción se debe repetir por cada campo foráneo que tenga la tabla y los separamos por
comas (,).
Con lo explicado podemos empezar a crear nuestra base de datos, para ello utilizaremos el
ejemplo que hemos venido trabajando. Vamos a escribir el código SQL para generar las tablas
decanos, facultad, docentes, curso y asignaturas.
Para ejecutar estas instrucciones utilizaremos el programa XAMPP el cual podremos descargar
desde la página oficial:
https://www.apachefriends.org/es/index.html
http://sourceforge.net/projects/xampp/files/XAMPP%20Windows/5.5.30/xampp-win32-5.5.30-3-
VC11.zip/download
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
Instalación
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
En ella seleccionaremos la opción SQL que es la sección donde escribiremos todo nuestro código.
Allí escribiremos nuestra primera instrucción en SQL con la cual crearemos el espacio de base de
datos el cual llamaremos, “Universidad”.
Para ejecutar esta instrucción daremos click en el botón continuar. Después de esto veremos que
se aparece nuestra base de datos recién creada en el lado izquierdo de la pantalla:
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
Para empezar a crear las tablas daremos click en “Universidad” y luego en la pestaña SQL y
procederemos a escribir las siguientes instrucciones:
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
Tener en cuenta que el orden en que se crean las tablas es importante. No se puede crear una
tabla que tenga una llave foránea apuntando a una tabla que aún no existe. Por esta razón “Curso”
se creó después de “Asignaturas”, ya que “Curso” contiene la llave foránea “codigo_asg” que
apunta a “Asignaturas”. Si “Curso” se hubiera creado antes, “Asignaturas” no existiría y se
generaría un error en el sistema donde se esté realizando esta creación.
Luego de ejecutar estas instrucciones se nos mostrará las tablas creadas en la parte izquierda de la
pantalla.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
De ahora en adelante todas las instrucciones que veremos se ejecutarán en la misma pestaña
“SQL” siguiendo el mismo procedimiento.
Ya tenemos lista nuestra estructura de Base de Datos, sin embargo esta se encuentra sin
información almacenada.
Inserción de datos
Donde, <nombre_tabla> corresponde al nombre de la tabla donde se van a ingresar los datos.
<campo_1>, <campo_2>, … , <campo_n>, Corresponden a cada uno de los campos de la tabla en
los cuales se va a ingresar valores. '<valor_1>', '< valor_2>', … ,'> valor_n>', Corresponden a los
valores que se ingresarán en cada uno de los campos anteriores. Para ver un ejemplo, la inserción
de un registro en la tabla decanos, seria de la siguiente forma.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
Después de ejecutar por primera vez esta instrucción, la tabla decanos se verá de la siguiente
forma:
Esta inserción nos generaría un error, dado que en el campo “cedula_dec”, la cual es una llave
foránea asociada con el campo “cedula” de la tabla decanos, estamos tratando de enviar la cédula
1088976543, y hasta el momento en la tabla decanos no existe ningún registro con esa cedula.
Esta acción estaría violando la integridad referencial que mantiene el sistema de gestión de base
de datos.
Vemos entonces en este caso que la tabla facultad depende de la tabla decanos por tener una
llave foránea que se asocia con esta. De este modo una inserción válida en “Facultad”, será aquella
donde en el campo “cedula_dec” se ingrese una cédula que ya exista en “Decanos”. Esto aplica
para todos los casos de tablas que dependan de otras.
Actualización de datos
<campo_1>, <campo_2>, … , <campo_n>, Corresponde a cada uno de los campos en los cuales se
hará la modificación de su valor.
<valor_1>, < valor _2>, … , < valor_n>, Corresponde a cada uno de los valores que se actualizarán
en cada uno de los campos.
En este momento la tabla puede tener una gran cantidad de registros o filas. Para determinar a
cuáles registros se les debe hacer la modificación, se evalúa la condición que sigue a continuación
de la palabra “WHERE”.
Si quisiéramos cambiarle el nombre al decano Juan Pérez por Julián Parra, utilizaríamos la
siguiente instrucción:
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
Si quisiéramos cambiar el nombre a todas las personas de apellido Vélez por Andrés, utilizaríamos
la siguiente instrucción:
Después de ejecutar las dos instrucciones anteriores, la tabla quedaría de la siguiente manera:
Si queremos eliminar la fila o registro donde se encuentra Sandra Ruiz utilizaremos la siguiente
instrucción:
Nota
Tener cuidado cuando se realiza actualizaciones de datos o borrado de registros, ya que estas
acciones pueden generar problemas de integridad referencial, ya que se puede realizar una
modificación o eliminación incoherente en una llave de la cual depende un campo en otra tabla.
Hasta este momento ya hemos construido la estructura de la Base de datos y la hemos llenado con
información. A continuación aprenderemos cómo extraer o realizar consultas de información
sobre esta.
La sintaxis para realizar una consulta simple sobre la base de datos es la siguiente:
Donde <campo_1>, <campo_2>, … , <campo_n> corresponde a cada uno de los campos de las
diferentes tablas que se quieren mostrar en el resultado de la consulta.
<tabla_1>, <tabla_1>, … ,<tabla_n> corresponde a cada una de las tablas de donde se desea
extraer la información.
Donde <campo_x> y <campo_y> son campos de cualquiera de las tablas, y <valor_x> es un valor
cualquiera a evaluar en el campo definido.
Entre dos condiciones va uno de los operadores lógicos AND ó OR. El operador AND indica que el
par de condiciones que se están evaluando se deben cumplir para el resultado de la consulta,
mientras que el operador OR solo requiere que uno de las 2 condiciones se cumpla.
Tomando como ejemplo la tabla de decanos original, realizaremos una consulta que nos muestre
todos los decanos de apellido “Vélez”. Para esto realizaremos la siguiente consulta en MySQL:
Si quisiéramos consultar todos los decanos de nombre “Diana” y los decanos de nombre “Mario”
crearíamos una consulta con dos condiciones separadas del operador OR de la siguiente manera.
Algunos hubieran pensado usar el operador lógico AND, sin embargo su uso en este caso estaría
mal. Recordemos que este operador exige que ambas condiciones se cumplan, y si analizamos
bien, no hay posibilidad que se cumpla que al mismo tiempo una persona se llame Mario y Diana
por lo cual no hubiéramos obtenido ningún resultado.
El operador OR funciona perfectamente en este caso, dado que si miramos el primer resultado de
la consulta vemos que cumple una de las dos condiciones. Este decano se llama Mario o se llama
Diana, y efectivamente su nombre es “Mario”. Para el segundo resultado sucede lo mismo.
Ahora realizaremos una consulta que traiga información de 2 tablas que se estén relacionando,
para esto supongamos que la tabla facultad contiene la siguiente información.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
La consulta que realizaremos nos mostrará todos los registros de la tabla “Decanos” con los
campos cedula, nombres y apellidos. Y de la tabla “facultad” los campos nombre_facultad y
ubicación, de esta manera sabremos qué facultad dirige cada uno de los decanos.
Dado que estamos extrayendo información de 2 tablas que se están relacionando a través de las
llaves “cedula” y “cedula_dec”, es obligatorio adicionar a la consulta una condición donde se
iguale estos dos campos como lo haremos a continuación:
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
Ahora vamos a consultar la misma información anterior pero solo para los decanos de apellido
“Veléz”. Para esto construiremos la siguiente consulta:
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
En ambos casos fue necesario colocar la condición cedula=cedula_dec, y después de esta, las
demás condiciones que fueran necesarias.
NORMALIZACIÓN
De manera autónoma, cada aprendiz debe consultar lo relacionado con normalización. Uno de los
enlaces donde puede encontrar información precisa es:
https://www.guru99.com/database-normalization.html
Las funciones de agregación en SQL nos permiten efectuar operaciones sobre un conjunto de
resultados, pero devolviendo un único valor agregado para todos ellos. Es decir, nos permiten
obtener medias, máximos, etc... sobre un conjunto de valores.
Las funciones agregadas nos permiten producir fácilmente datos resumidos de nuestra base de
datos.
Las funciones de agregación básicas que soportan todos los gestores de datos son las siguientes:
AVG: devuelve el valor promedio del campo que especifiquemos. Sólo se puede utilizar en
columnas numéricas.
Función COUNT:
La función COUNT devuelve el número total de valores en el campo especificado. Funciona tanto
en tipos de datos numéricos como no numéricos. Todas las funciones agregadas por defecto
excluyen valores nulos antes de trabajar en los datos.
COUNT (*) es una implementación especial de la función COUNT que devuelve el recuento de
todas las filas en una tabla especificada. COUNT (*) también considera nulos y duplicados.
Resultado
Resultado
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
Resultado
Función MIN
La función MIN devuelve el valor más pequeño en el campo de tabla especificado .
Como ejemplo, supongamos que queremos saber el año en el que se lanzó la película más antigua
de nuestra biblioteca, podemos usar la función MIN de MySQL para obtener la información
deseada.
Resultado
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
Función MAX
Tal como su nombre lo sugiere, la función MAX es lo opuesto a la función MIN. Se devuelve el
valor más grande desde el campo de la tabla especificada .
Supongamos que queremos obtener el año en que se lanzó la última película en nuestra base de
datos. Podemos usar fácilmente la función MAX para lograr eso.
Resultado
Función SUM
Supongamos que queremos un informe que dé la cantidad total de pagos realizados hasta el
momento. Podemos usar la función SUM de MySQL que devuelve la suma de todos los valores en
la columna especificada. SUM funciona solo en campos numéricos . Los valores nulos se excluyen
del resultado devuelto.
La consulta que se muestra a continuación obtiene todos los pagos realizados y los resume para
devolver un único resultado.
Resultado
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
Función AVG
La función de MySQL AVG devuelve el promedio de los valores en una columna especificada . Al
igual que la función SUM, funciona solo en tipos de datos numéricos .
Supongamos que queremos encontrar el monto promedio pagado. Podemos usar la siguiente
consulta:
Resultado
La declaraciòn SELECT permite obtener los datos de tablas . Una tabla consta de filas y columna
como una hoja de cálculo. A menudo, desea ver las filas de un subconjunto, un subconjunto de
columnas o una combinación de dos. El resultado de la declaración SELECT se denomina conjunto
de resultados que es una lista de filas, cada una de las cuales consta del mismo número de
columnas.
SELECT seguido de una lista de columnas separadas por comas o un asterisco (*) para indicar que
desea devolver todas las columnas.
FROM especifica la tabla o vista donde desea consultar los datos.
JOIN obtiene datos relacionados de otras tablas basadas en condiciones de unión específicas.
La cláusula WHERE filtra la fila en el conjunto de resultados.
La cláusula GROUP BY agrupa un conjunto de filas en grupos y aplica funciones agregadas a cada
grupo.
La cláusula HAVING filtra el grupo en función de los grupos definidos por la cláusula GROUP BY.
La cláusula ORDER BY especifica una lista de columnas para clasificar.
LIMIT restringe el número de filas devueltas.
Las cláusulas SELECT y FROM se requieren en la declaración. Otras partes son opcionales.
Ahora escriba las correspondientes sentencias para dar respuesta a las siguientes consultas:
● Mostrar nombre y apellido de los empleados cuyo jobTitle sea Sales Rep
● Ahora, la anterior consulta la mostraremos ordena en orden descendente por el nombre
del empleado.
A menudo se utiliza la cláusula GROUP BY con funciones agregadas , tales como SUM, AVG, MAX,
MIN, y COUNT. La función agregada que aparece en la cláusula SELECT proporciona la información
sobre cada grupo.
Ejemplo.
Veamos la estructura de la tabla orders:
Supongamos que deseamos agrupar los valores del estado del pedido en subgrupos. Con la
cláusula GROUP BY, la consulta y resultados serían los siguientes:
De la tabla Payments, muestre los pagos totales hechos por cada cliente.
El operador LIKE
El operador LIKE se utiliza en una cláusula WHERE para buscar un patrón específico en una
columna.
Hay dos comodines que se usan a menudo junto con el operador LIKE:
Sintaxis de LIKE
Ejemplos que muestran diferentes operadores LIKE con los comodines '%' y '_':
La siguiente declaración SQL selecciona a todos los clientes con un CustomerName que comienza
con "a":
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';
La siguiente declaración SQL selecciona a todos los clientes con un CustomerName que termina
con "a":
La siguiente declaración SQL selecciona a todos los clientes con un CustomerName que tienen "o"
en cualquier posición:
La siguiente declaración SQL selecciona a todos los clientes con un CustomerName que tienen "r"
en la segunda posición:
La siguiente declaración SQL selecciona a todos los clientes con un nombre de cliente que
comienza con "a" y tiene una longitud de al menos 3 caracteres:
La siguiente declaración SQL selecciona a todos los clientes con un ContactName que comienza
con "a" y termina con "o":
La siguiente declaración SQL selecciona a todos los clientes con un nombre de cliente que NO
comienza con "a":
Ejercicios
Seleccione todos los registros donde el valor de la columna City comience con la letra "a".
Tabla: employees
El operador IN
Sintaxis:
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);
SELECT column_name(s)
FROM table_name
WHERE column_name IN (SELECT STATEMENT);
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
La siguiente declaración SQL selecciona todos los clientes que se encuentran en "Alemania",
"Francia" y "Reino Unido":
La siguiente declaración SQL selecciona a todos los clientes que NO están ubicados en "Alemania",
"Francia" o "Reino Unido":
La siguiente declaración SQL selecciona a todos los clientes que son de los mismos países que los
proveedores:
Ejercicios
Utilice el operador IN para seleccionar todos los registros donde el campo Country corresponda a
"Noruega" o "Francia".
El Operador BETWEEN
El operador BETWEEN selecciona valores dentro de un rango dado. Los valores pueden ser
números, texto o fechas.
Sintaxis
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
La siguiente declaración SQL selecciona todos los productos con un precio ENTRE 10 y 20:
Para mostrar los productos fuera del rango del ejemplo anterior
BETWEEN con IN
La siguiente declaración SQL selecciona todos los productos con un precio ENTRE 10 y 20. Además;
No muestre productos con una CategoryID de 1,2 o 3:
Mostrar las órdenes que se hicieron entre el mes de marzo y junio del año 2005
ALIAS
Además de usar alisas (AS) para las columnas, podemos hacerlos para las tablas.
Ejemplo
Tenemos las tablas customers y payments. Estas están relacionadas por la columna
curstomerNumber.
Mostrar el número del cliente (customerNumber), el nombre del cliente (curstomerName) y la
suma que ha pagado (amount)
VISTAS
En SQL, una vista es una tabla virtual basada en el conjunto de resultados de una instrucción SQL.
Una vista contiene filas y columnas, al igual que una tabla real. Los campos en una vista son
campos de una o más tablas reales en la base de datos.
Puede agregar funciones SQL, WHERE y JOIN a una vista y presentar los datos como si los datos
procedieran de una sola tabla.
Ejemplo:
CREATE VIEW Brazil_Customers AS
SELECT CustomerName, ContactName
FROM Customers
WHERE Country = "Brazil";
Mostrar los nombres de los empleados y el nombre de la oficina asignada, ordenada por el
nombre de la oficina
Ahora, a partir de la vista creada, mostrar la cantidad de empleados que hay en cada ciudad.
Los diagramas de entidad-relación son increíblemente útiles y tú mismo puedes crear uno
fácilmente siguiendo estos pasos simples.
1. Determina las entidades: Las entidades generalmente son sustantivos como auto, banco,
estudiante o producto.
En un diagrama ER, las entidades son las partes más importantes. Para continuar, crearemos un
diagrama ER conceptual de un sistema simple en el cual un estudiante se registra para un curso
que es impartido por un profesor. Echa un vistazo a este increíble tutorial para estudiar las Figuras
de diagramas ER. En este ejemplo, las tres entidades son “Estudiante”, “Curso” y “Profesor”.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020
2. Identifica las relaciones: Las relaciones resaltan cómo las entidades interactúan entre sí.
Las relaciones generalmente son verbos como “compra”, “contiene” o “hace”. En nuestro ejemplo,
las relaciones “Se registra para” y “Enseña” explican de forma efectiva las interacciones entre las
tres entidades.
En un diagrama ER, los atributos son necesarios para modelar qué características se incluirán con
cada entidad. Los atributos como “Número ID”, “Nombre” y “SKU” son atributos comunes.
4. Completa el diagrama.