BD Conceptos B Sicos - Relacionales

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 58

TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA

CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL


2020

BASES DE DATOS: CONCEPTOS BÁSICOS.

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

¿Qué es un sistema de gestión de bases de datos (DBMS)?

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 .

Hay 4 tipos principales de DBMS. Echemos un vistazo en ellos en detalle .


● Jerárquico : este tipo de DBMS emplea la relación "padre-hijo" de almacenar datos. Este
tipo de DBMS rara vez se utiliza en la actualidad. Su estructura es como un árbol con
nodos que representan registros y ramas que representan campos. El registro de Windows
utilizado en Windows XP es un ejemplo de una base de datos jerárquica. Los ajustes de
configuración se almacenan como estructuras de árbol con nodos .
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

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

Algunos de gestores de Bases de Datos:

Cuya sigla en inglés se traslada a My Structured Query Language


o Lenguaje de Consulta Estructurado. MySQL es un sistema de
gestión de bases de datos relacional (Es un tipo de base de datos
que permite establecer interconexiones y relacionar los datos
que se encuentran almacenados en diferentes tablas) y es un
software de código abierto.
.
Una base de datos Oracle es una colección de datos tratada
como una unidad. El propósito general es almacenar y recuperar
información relacionada. Se considera a Oracle como uno de los
sistemas de bases de datos más completos, destacando el
soporte de transacciones, estabilidad, escalabilidad, y soporte
multiplataforma.

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.

SQL es un lenguaje utilizado por muchos SGBD relacionales.


Hay que aprenderlo si queremos utilizar este tipo de bases de datos desde nuestros programas.

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?

NoSQL es una próxima categoría de sistemas de gestión de bases de datos. Su principal


característica es su no adhesión a los conceptos de bases de datos relacionales. NOSQL significa
"No solo SQL".
El concepto de las bases de datos NoSQL creció con gigantes de Internet como Google, Facebook,
Amazon, etc., que manejan volúmenes gigantescos de datos.
Cuando utiliza la base de datos relacional para volúmenes masivos de datos, el sistema comienza a
ser lento en términos de tiempo de respuesta.
Para superar esto, podríamos, por supuesto, "ampliar" nuestros sistemas al actualizar nuestro
hardware existente.
La alternativa al problema anterior sería distribuir la carga de nuestra base de datos en varios
hosts a medida que aumenta la carga .
Esto se conoce como "ampliación de escala".
Las bases de datos NOSQL son bases de datos no relacionales que se escalan mejor que las bases
de datos relacionales y están diseñadas teniendo en cuenta las aplicaciones web.
No utilizan SQL para consultar los datos y no siguen esquemas estrictos como los modelos
relacionales. Con las características de NoSQL, ACID (Atomicidad, Consistencia, Aislamiento,
Durabilidad) no siempre se garantizan.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

¿Por qué tiene sentido aprender SQL después de 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

CONCEPTOS DE MODELOS LÓGICOS Y CONCEPTUALES.

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.

Diagrama conceptual de una casa

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.

Diagrama lógico de una casa:

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:

CONCEPTOS DE ENTIDADES Y ATRIBUTOS.

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.

Uno a Muchos (1:M):


Esta se da cuando un registro de una entidad A se relaciona con cero o varios registros de una
entidad B, y cada registro de la entidad B se relaciona únicamente con un registro de la entidad A.
Ejemplo: Si se tiene las entidades “Ciudad” y “País” con la relación “Pertenecer” veríamos que a un
país pertenecen muchas ciudades pero cada una de esas ciudades pertenece a un solo país.
Tomando un caso en particular, en Colombia hay muchas ciudades entre ellas Medellín, pero
Medellín solo se encuentra en un solo país, el cual es Colombia

Muchos a Muchos (N:M):


Esta se da cuando un registro de una entidad A se relaciona con cero o varios registros de una
entidad B, y un registro de una entidad B se relaciona con cero o varios registros de la entidad A.
Ejemplo: En el caso de los “Estudiantes” y los “Libros”, existe una relación de muchos a muchos,
dado que un estudiante puede prestar varios libros en el transcurso del año, y a su vez cada libro
es prestado por muchos estudiantes.

MODELO ENTIDAD RELACIÓN.

Un modelo entidad-relación es una herramienta para el modelado de datos que permite


representar las entidades relevantes de una base de datos así como sus interrelaciones y
propiedades. La representación de este se realiza a través de un diagrama con una simbología
definida.
Elementos del modelo entidad relación:

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

Los atributos se representan gráficamente mediante un círculo o elipse, su nombre va en el


interior y van unidos con una línea a su respectiva entidad. El atributo principal se identifica con
una línea que subraya su nombre. Para este ejemplo, la cédula es el atributo principal.

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

Enunciado del problema:

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

Pertenecer (Entre Facultad y Docente).


Dictar (Entre Docente y Asignatura).
Inscribir (Entre Asignatura y Estudiante).

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 ejemplo tomemos las entidades profesor y cubículo.

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

Poniendo en práctica lo aprendido, procederemos a transformar el modelo entidad relación de la


lección 3 a un modelo relacional siguiendo cada una de las reglas anteriores.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

BASES DE DATOS CON MYSQL: DML Y DDL.

Creación de la base de datos

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.

Creación del espacio de la base de datos

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

Donde es el nombre que escogeremos para llamar nuestra base de datos

Creación de las tablas

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.

Dependiendo la naturaleza del campo, debemos definirle un tipo de dato y un tamaño en


<tipo_de_dato(tamaño)>.

Tipos de Datos en MySQL

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

O desde el siguiente enlace:

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

Luego de haber instalado XAMPP abriremos un navegador y en la barra de direcciones


escribiremos localhost, lo cual nos mostrará la siguiente información.

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.

AGREGAR Y MODIFICAR DATOS

Ya tenemos lista nuestra estructura de Base de Datos, sin embargo esta se encuentra sin
información almacenada.

Inserción de datos

Para ingresar información en la Base de Datos utilizamos la siguiente instrucción en MySQL:

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:

Si quisiéramos hacer la siguiente inserción sobre la tabla facultad:

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

En algún momento necesitaremos modificar o actualizar la información o algún dato que


previamente hemos almacenado en la base de datos. Para poder realizar esto, utilizaremos la
siguiente instrucción en MySQL.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

Donde, <nombre_tabla> corresponde al nombre de la tabla en la cual se va a actualizar los 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”.

<campo_x> es un campo cualquiera de la tabla y <valor_x> es un valor cualquiera a evaluar en el


campo definido. Esto quiere decir que la actualización se realizará solo en aquellos registros donde
el campo <campo_x> posea el valor <valor_x>.

Para entender mejor esta instrucción realicemos el siguiente ejemplo.

Supongamos que tenemos la tabla decanos con la siguiente información almacenada.

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:

Eliminación o borrado de registros

En el momento de requerir borrar un registro o conjunto de registros de una tabla específica


utilizaremos la siguiente instrucción:
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

Donde, <nombre_tabla> corresponde al nombre de la tabla en la cual se van a eliminar los


registros.

<campo_x> es un campo cualquiera de la tabla, y <valor_x> es un valor cualquiera a evaluar en el


campo definido. Esto quiere decir que se borraran aquellos registros donde el campo <campo_x>
posea el valor <valor_x>.

Para entender mejor esta instrucción realicemos el siguiente ejemplo.

Supongamos que tenemos la tabla decanos con la siguiente información almacenada.

Si queremos eliminar la fila o registro donde se encuentra Sandra Ruiz utilizaremos la siguiente
instrucción:

Después de ejecutar esta instrucción la tabla anterior quedará de la siguiente manera:


TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

Como vemos, se ha eliminado el registro donde se encontraba Sandra Ruiz.

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.

CONSULTAS SIMPLES A LA BASE DE DATOS

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.

Cada una de las condiciones: <condición_1>, <condición_2>, <condición_n>, tiene la siguiente


estructura.:

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.

<operador> puede ser cualquiera de los operadores de comparación que se muestran a


continuación.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

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:

El resultado de esta consulta sería el siguiente:


TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

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.

El resultado de esta consulta sería el siguiente:

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

El resultado de la consulta sería el siguiente:

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

El resultado sería el siguiente:

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

Agrupaciones y funciones de agregación

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 se encargan de:

Realizar cálculos en múltiples filas


De una sola columna de una tabla
Y devolviendo un solo valor.

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:

COUNT: devuelve el número total de filas seleccionadas por la consulta.


MIN: devuelve el valor mínimo del campo que especifiquemos.
MAX: devuelve el valor máximo del campo que especifiquemos.
SUM: suma los valores del campo que especifiquemos. Sólo se puede utilizar en columnas
numéricas.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

AVG: devuelve el valor promedio del campo que especifiquemos. Sólo se puede utilizar en
columnas numéricas.

Veamos cada una en detalle:

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.

La tabla que se muestra a continuación muestra los datos en la tabla alquilerPeliculas

SELECT COUNT(`movie_id`) FROM` alquilerPeliculas` WHERE `movie_id` = 2;

Resultado

Palabra clave DISTINTC

La palabra clave DISTINCT que nos permite omitir los duplicados


de nuestros resultados. Esto se logra agrupando valores similares
juntos.

Para apreciar el concepto de Distinct, vamos a ejecutar una


consulta simple.
SELECT `movie_id` FROM` alquilerPeliculas`;

Resultado
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

Ahora ejecutemos la misma consulta con la palabra clave distinct

SELECT DISTINCT `movie_id` FROM` alquilerPeliculas`;

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.

La siguiente consulta nos ayuda a lograr eso


SELECT MIN(`año_liberado`) FROM` peliculas`;

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.

El siguiente ejemplo devuelve el último año de la película publicado.

SELECT MAX(`year_released`) FROM` peliculas`;

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 siguiente tabla muestra los datos en la tabla de pagos

La consulta que se muestra a continuación obtiene todos los pagos realizados y los resume para
devolver un único resultado.

SELECT SUM(`cantidadpagada`) FROM `pagos`;

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:

SELECT AVG(`cantidadpagada`) FROM `pagos`;

Resultado

Veamos más ejemplos:

select sum(cantidad) from libros;

select sum(cantidad) from libros


where editorial ='Planeta';

select max(precio) from libros;

select min(precio) from libros


where autor like '%Rowling%';

select avg(precio) from libros


where titulo like '%PHP%';

select avg(precio) from libros

SELECT COUNT(*) AS TotalFilas ,


SELECT SUM(salario) AS sumaSalarios,
SELECT MAX(edad) AS MayorEdad
from datos
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

EJEMPLO CON BASE DE DATOS MYSQL

Contamos con el siguiente esquema de base de datos.

Customers: Almacena los datos de los clientes.


Products: Almacena una lista de modelos de autos a escala.
ProductLines: Almacena una lista de las lìneas de productos y su descripción.
Orders: Almacena las órdenes de los clientes.
OrderDetails: Almacena las òrdenes de venta de cada item.
Payments: Almacena los pagos hechos por los clientes.
Employees: Almacena toda la información de los empleados de la empresa.
Offices: Almacena los datos de venta de las oficinas.

Tenemos el siguiente diagrama:

¿Cómo interpretar este modelo?


¿En qué orden se deben crear las tablas?

Retomemos la sentencia SELECT de MYSQL


TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

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.

Veamos el siguiente ejemplo:

SELECT * FROM `employees`

Sintaxis de la declaración/sentencia SELECT:


TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

La declaraciòn SELECT consta de varias cláusulas, como se explica en la siguiente lista:

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.

Cláusula GROUP BY:


La cláusula GROUP BY agrupa un conjunto de filas en un conjunto de filas de resumen por valores
de columnas o expresiones. La cláusula GROUP BY devuelve una fila para cada grupo. En otras
palabras, reduce el número de filas en el conjunto de resultados.

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.

La cláusula GROUP BY es una cláusula opcional de la declaración SELECT. Lo siguiente ilustra la


sintaxis de la cláusula GROUP BY:
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

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:

Ahora la misma consulta pero con la función COUNT


TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

Mostrar, de la tabla offices, las sedes que hay en cada país.

De la tabla Customer, mostrar nombre y apellido de quienes sean de Madrid

De la tabla Customer, mostrar ContactFirstname y el país de quienes sean españoles, franceses o


japonenes.
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

Mostrar la cantidad de clientes que hay en cada país.


TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

De la tabla Payments, muestre los pagos totales hechos por cada cliente.

De la tabla Products, muestre el precio promedio de los productos


TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

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:

%: El signo de porcentaje representa cero, uno o varios caracteres


_ - El subrayado representa un solo carácter

El signo de porcentaje y el guión bajo también se pueden usar en combinaciones

Sintaxis de LIKE

SELECT column1, column2, ...


FROM table_name
WHERE columnN LIKE pattern;

Ejemplos que muestran diferentes operadores LIKE con los comodines '%' y '_':

Vamos a considerar la tabla Clientes


TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

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

SELECT * FROM Customers


WHERE CustomerName LIKE '%a';

La siguiente declaración SQL selecciona a todos los clientes con un CustomerName que tienen "o"
en cualquier posición:

SELECT * FROM Customers


WHERE CustomerName LIKE '%or%';

La siguiente declaración SQL selecciona a todos los clientes con un CustomerName que tienen "r"
en la segunda posición:

SELECT * FROM Customers


WHERE CustomerName LIKE '_r%';

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:

SELECT * FROM Customers


WHERE CustomerName LIKE 'a_%_%';

La siguiente declaración SQL selecciona a todos los clientes con un ContactName que comienza
con "a" y termina con "o":

SELECT * FROM Customers


WHERE ContactName LIKE 'a%o';

La siguiente declaración SQL selecciona a todos los clientes con un nombre de cliente que NO
comienza con "a":

SELECT * FROM Customers


WHERE CustomerName NOT LIKE 'a%';
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

Ejercicios

Seleccione todos los registros donde el valor de la columna City comience con la letra "a".

Tabla: employees

Muestre los empleados que inicien sus nombres con la letra J

El operador IN

El operador IN le permite especificar múltiples valores en una cláusula WHERE.

El operador IN es una abreviatura de múltiples condiciones OR.

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

Tomenos como ejemplo la tabla Clientes

La siguiente declaración SQL selecciona todos los clientes que se encuentran en "Alemania",
"Francia" y "Reino Unido":

SELECT * FROM Customers


WHERE Country IN ('Germany', 'France', 'UK');

La siguiente declaración SQL selecciona a todos los clientes que NO están ubicados en "Alemania",
"Francia" o "Reino Unido":

SELECT * FROM Customers


WHERE Country NOT IN ('Germany', 'France', 'UK');

La siguiente declaración SQL selecciona a todos los clientes que son de los mismos países que los
proveedores:

SELECT * FROM Customers


WHERE Country IN (SELECT Country FROM Suppliers);

Ejercicios

Utilice el operador IN para seleccionar todos los registros donde el campo Country corresponda a
"Noruega" o "Francia".

Mostrar los clientes de Las Vegas, Nantes Nueva York


Muestre los empleados, pero menos los que no sean de las oficinas 1, 2 o 6
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

El Operador BETWEEN

El operador BETWEEN selecciona valores dentro de un rango dado. Los valores pueden ser
números, texto o fechas.

El operador BETWEEN es inclusivo: se incluyen los valores de inicio y finalización.

Sintaxis

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

Veamos la tabla Productos

La siguiente declaración SQL selecciona todos los productos con un precio ENTRE 10 y 20:

SELECT * FROM Productos


WHERE Price BETWEEN 10 AND 20;

También se puede usar NOT BETWEEN

Para mostrar los productos fuera del rango del ejemplo anterior

SELECT * FROM Products


WHERE Price NOT BETWEEN 10 AND 20;

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:

SELECT * FROM Products


WHERE (Price BETWEEN 10 AND 20)
AND CategoryID NOT IN (1,2,3);
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

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

SELECT CustomerID AS ID, CustomerName AS Customer


FROM Customers;

Ejemplo de Alias en tablas

SELECT o.OrderID, o.OrderDate, c.CustomerName


FROM Customers AS c, Orders AS o
WHERE c.CustomerName="Around the Horn" AND c.CustomerID=o.CustomerID;

SELECT e.codEmpleado, e.nomEmpleado,d.cod_depto


FROM empleados AS e, departamentos AS d
WHERE e.cod_depto = d.cod_depto

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)

Tenemos las tablas orderdetails y products, relacionadas por productCode.


Mostrar la cantidad ordenada por cada producto
TÉCNICA EN PROGRAMACIÓN DE SOFTWARE – MEDIA TÉCNICA
CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL
2020

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.

CREATE VIEW view_name AS


SELECT column1, column2, ...
FROM table_name
WHERE condition;

Ejemplo:
CREATE VIEW Brazil_Customers AS
SELECT CustomerName, ContactName
FROM Customers
WHERE Country = "Brazil";

Podemos consultar la vista anterior de la siguiente manera:


SELECT * FROM Brazil_Customers;

Crear una vista con la siguiente consulta:

Mostrar los nombres de los empleados y el nombre de la oficina asignada, ordenada por el
nombre de la oficina

SELECT e.`firstName`,o.city from employees as e, offices as o


WHERE e.officeCode=o.officeCode
order by o.city

Ahora, a partir de la vista creada, mostrar la cantidad de empleados que hay en cada ciudad.

Identificar los componentes.

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.

3. Agrega atributos: Los atributos muestran características específicas de una entidad,


detallando qué información es importante para el modelo.

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.

Es increíblemente importante organizar el diagrama ER de una forma lógica para aumentar la


comprensión. El propósito principal de los diagramas de entidad-relación es modelar una base de
datos compleja, por lo que es esencial aprender cómo crear diagramas ER simples y lógicos.

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy