Sunteți pe pagina 1din 39

Capacitación formadores Generación de

capacidades en el Ecosistema Digital de


Bogotá

Formación especializada TI
Bases de datos
¿Que es una base de datos?

Una base de datos es un conjunto de datos pertenecientes a un mismo contexto y


almacenados sistemáticamente para su posterior uso.
¿Que es una base de datos relacional?
Un base de datos relacional es una recopilación de elementos de datos con relaciones
predefinidas entre ellos. Estos elementos se organizan como un conjunto de tablas con
columnas y filas. Las tablas se utilizan para guardar información sobre los objetos que se
van a representar en la base de datos. Cada columna de una tabla guarda un determinado
tipo de datos y un campo almacena el valor real de un atributo. Las filas de la tabla
representan una recopilación de valores relacionados de un objeto o entidad. Cada fila de
una tabla podría marcarse con un identificador único denominado clave principal, mientras
que filas de varias tablas pueden relacionarse con claves extranjeras. Se puede obtener
acceso a estos datos de muchas formas distintas sin reorganizar las propias tablas de la
base de datos.
Aspectos importantes de las bases de datos
relacionales
● SQL: SQL o lenguaje de consulta estructurada es la interfaz principal
utilizada para comunicarse con bases de datos relacionales.

● Integridad de los datos: La integridad de los datos es la totalidad, precisión y


coherencia general de los datos. Las bases de datos relacionales utilizan un
conjunto de restricciones para aplicar la integridad de los datos en la base de
datos.
● Transacciones: Una transacción de base de datos es una o más sentencias
SQL que se ejecutan como una secuencia de operaciones que forman una
unidad lógica única de trabajo.

● Conformidad con ACID: Todas las transacciones de base de datos deben ser
conformes a ACID (atómicas, coherentes, aisladas y duraderas) para
garantizar la integridad de los datos.
Algunos motores de Bases de Datos relacionales
● MySQL: Es un sistema de administración de bases de datos relacionales de
código abierto (RDBMS) utilizado por un gran número de aplicaciones web.

● PostgreSQL: Es un potente sistema de base de datos relacional orientado a


objetos de código abierto y clase empresarial que hace hincapié en la
extensibilidad y la conformidad con los estándares.
Estructura mínima de almacenamiento
● Tabla: Objeto de almacenamiento perteneciente a una BD. Es una estructura en forma
de cuadrante donde se almacenan registros o filas de datos. Cada tabla tiene un
nombre único en la BD

● Registro: Cada una de las filas de una tabla, está compuesto por campos o atributos.

● Campo: Cada uno de los “cajoncitos” de un registro donde se guardan los datos. Cada
campo tiene un nombre único para la tabla de la cual forma parte, además es de un
tipo (naturaleza) determinado, por tanto no podemos guardar limones en el cajón de
las naranjas, en términos informáticos y a modo de ejemplo, no encontraremos un dato
alfanumérico (letras y números) en un campo diseñado para guardar datos numéricos.
Ejemplo
ID_EMPLEADO NOMBRE APELLIDOS F_NACIMIENTO SEXO CARGO SALARIO
1 Carlos Jiménez 1985-05-03 H Mozo 1500
Clarín
2 Elena Rubio 1978-09-25 M Secretaria 1300
Cuestas
3 José Calvo Sisman 1990-11-12 H Mozo 1400
4 Margarita Rodríguez 1992-05-16 M Secretaria 1325.5
Garcés

En el ejemplo observamos que la tabla tiene un diseño de siete campos y que


almacena cuatro registros. El nombre de cada campo viene dado por la fila de
encabezado. El dato que contiene el campo ID_EMPLEADO identifica cada
registro, pero por ahora no le demos importancia a esto.
Los registros o miembros de una tabla tienen en común sus atributos, no el dato
en sí, que lo más probable es que difiera de un registro a otro, pero sí el hecho de
que todos ellos poseen esos atributos. En el ejemplo los miembros de la tabla
EMPLEADOS tiene en común que todos ellos son personas empleadas en una
empresa, que tienen un nombre y un salario, una fecha de nacimiento, etc... Por
lo tanto las tablas de una BD guardan información de individuos o unidades de
una misma naturaleza con una serie de atributos en común.
Relaciones entre tablas
Para que los datos de las tablas se puedan seleccionar, encontrar y procesar de
forma rápida y eficaz, es necesario que las tablas no se encuentren aisladas
unas de otras. Las tablas tienen que estar relacionadas con otras formando
estructuras relacionales. La relación es una asociación establecida entre
campos comunes (columnas) en dos tablas.
Tipos de relaciones en bases de datos
Tipo de relación Descripción
Unívoca Las dos tablas pueden tener sólo un registro en cada lado de la
relación.
Cada valor de clave primaria se relaciona con sólo un (o ningún) registro
en la tabla relacionada.
La mayoría de relaciones unívocas están impuestas por las reglas
empresariales y no fluyen con naturalidad a partir de los datos. Sin este
tipo de regla, generalmente podrá combinar ambas tablas sin incumplir
ninguna regla de normalización.
Uno a varios La tabla de claves primaria sólo contiene un registro que se relaciona
con ninguno, uno o varios registros en la tabla relacionada.
Varios a varios Cada registro en ambas tablas puede estar relacionado con varios
registros (o con ninguno) en la otra tabla. Estas relaciones requieren
una tercera tabla, denominada tabla de enlace o asociación, porque los
sistemas relacionales no pueden alojar directamente la relación.
Relación de uno a uno
Por cada registro de la tabla principal (tabla que contiene la clave principal) puede existir
un sólo registro en la tabla relacionada (tabla que contiene la clave externa). La tabla
relacionada no puede contener un registro que no esté relacionado con uno de la tabla
principal: no puede existir un registro con FECHA_ALTA, SALARIO, etc., si no hay un
empleado con el que se relacione. Esta relación se utiliza para simplicar y organizar las
tablas con muchos campos.
Relación de uno a varios
Por cada registro de la tabla principal (tabla de la clave principal o lado uno de la relación) pueden
existir muchos (infinitos) registros en la tabla relacionada (tabla de la clave externa o lado infinito de la
relación). La tabla relacionada no puede contener un registro que no esté relacionado con uno de la
tabla principal, pero pueden haber muchos registro que estén relacioandos con el mismo registro de la
tabla principal: varios (infinitos) empleados de la tabla EMPLEADO_LABORAL, pueden estar en el mismo
departamento de la tabla DEPARTAMENTO
Relación de varios a varios
Debes tener claro las llaves primarias y una tabla de unión para que se produzca la relación varios a
varios entre PRODUCTOS y NUM_VENTA. Un registro de la tabla NUM_VENTA puede estar relacionado
con varios registros de la tabla PRODUCTOS y un registro de la tabla PRODUCTOS puede estar
relacionado con varios registros de la tabla NUM_VENTA. Explicación: cuando realizamos una venta le
asignamos un número (N_VENTA) y lo almacenamos en la tabla NUM_VENTA; esa venta puede estar
formada por uno o varios productos identificados con un numero de producto (N_PRODUCTO) de la
tabla PRODUCTOS.
Diagrama entidad relación
es una herramienta para el modelado
de datos que permite representar las
entidades relevantes de un sistema
de información así como sus
interrelaciones y propiedades. Esta
concepción fue diseñada por Peter
Chen.
Normalización de bases de datos
El proceso de normalización de bases de datos consiste en designar y aplicar
una serie de reglas a las relaciones obtenidas tras el modelo entidad-relación.
Las bases de datos relacionales se normalizan para
● Evitar la redundancia de los datos.
● Disminuir problemas de actualización de los datos en las tablas.
● Proteger la integridad de los datos.
Para que las tablas de nuestra BD estén
normalizadas deben cumplir las siguientes reglas
● Cada tabla debe tener su nombre único.
● No puede haber dos filas iguales.
● No se permiten los duplicados.
● Todos los datos en una columna deben ser del mismo tipo
Existen 3 niveles de normalización que deben respetarse para poder decir que
nuestra BDs, se encuentra NORMALIZADA, es decir, que cumple con los
requisitos naturales para funcionar optimamente y no perjudicar el rendimiento
por mala arquitectura.

Estas 3 reglas de Normalización se les conoce como las 3 FORMAS NORMALES.


Primera Forma Normal
Una tabla está en Primera Forma Normal si:
● Todos los atributos son atómicos. Un atributo es atómico si los elementos
del dominio son simples e indivisibles.
● La tabla contiene una clave primaria única.
● La clave primaria no contiene atributos nulos.
● No debe existir variación en el número de columnas.
● Los Campos no clave deben identificarse por la clave (Dependencia
Funcional)
● Debe Existir una independencia del orden tanto de las filas como de las
columnas, es decir, si los datos cambian de orden no deben cambiar sus
significados
estudio_nomb
alumno estudio_nivel materia_1 materia_2
re
Medios
Juanito Maestría MySQL PHP
Virtuales
Pepito Licenciatura Diseño Digital MySQL PHP

alumno_id alumno_nombre estudio_nivel estudio_nombre materia


1 Juanito Maestría Medios Virtuales MySQL
1 Juanito Maestría Medios Virtuales PHP
2 Pepito Licenciatura Diseño Digital MySQL
2 Pepito Licenciatura Diseño Digital PHP
Segunda Forma Normal
Se debe aplicar la 1FN. Cada campo de la tabla debe depender de una clave
única, si tuviéramos alguna columna que se repite a lo largo de todos los
registros, dichos datos deberían atomizarse en una nueva tabla.

alumno_id alumno_nombre estudio_nivel estudio_nombre


1 Juanito Maestría Medios Virtuales
2 Pepito Licenciatura Diseño Digital

materia_id alumno_id materia_nombre

1 1 MySQL

2 1 PHP
3 2 MySQL

4 2 PHP
Tercera Forma Normal
Se debe aplicar la 1FN y 2FN. Los campos que NO son clave NO deben tener
dependencias.
alumno_id alumno_nombre estudio_id
1 Juanito 1
2 Pepito 2

estudio_id estudio_nivel estudio_nombre


1 Maestría Medios Virtuales
2 Licenciatura Diseño Digital
materia_id alumno_id materia_nombre
1 1 MySQL
2 1 PHP
3 2 MySQL
4 2 PHP
Cuarta Forma Normal
Se debe aplicar la FNBC. La 4FN aplica únicamente para relaciones M a M, y nos
ayuda a eliminar la redundancia de información generada por dicho tipo de
relación.

alumno_id alumno_nombre estudio_id


1 Juanito 1
2 Pepito 2

estudio_id estudio_nivel estudio_nombre


1 Maestría Medios Virtuales
2 Licenciatura Diseño Digital
materia_id materia_nombre
1 MySQL
2 PHP

mxa_id alumno_id materia_id


1 1 1
2 1 2
3 2 1
4 2 2
Modelo relacional
En el modelo relacional las dos capas de diseño conceptual y lógico, se parecen
mucho. Generalmente se implementan mediante diagramas de
Entidad/Relación (modelo conceptual) y tablas y relaciones entre éstas (modelo
lógico). Este es el modelo utilizado por los sistemas gestores de datos más
habituales (SQL Server, Oracle, MySQL...).
SQL
SQL (por sus siglas en inglés Structured Query Language; en español lenguaje de
consulta estructurada) es un lenguaje específico del dominio que da acceso a un
sistema de gestión de bases de datos relacionales que permite especificar
diversos tipos de operaciones en ellos. Una de sus características es el manejo
del álgebra y el cálculo relacional que permiten efectuar consultas con el fin de
recuperar, de forma sencilla, información de bases de datos, así como hacer
cambios en ellas.
Características generales de SQL
● Lenguaje de definición de datos: El LDD de SQL proporciona comandos para la definición de
esquemas de relación, borrado de relaciones y modificaciones de los esquemas de relación.
● Lenguaje interactivo de manipulación de datos: El LMD de SQL incluye lenguajes de consultas
basado tanto en álgebra relacional como en cálculo relacional de tuplas.
● Integridad: El LDD de SQL incluye comandos para especificar las restricciones de integridad que
deben cumplir los datos almacenados en la base de datos.
● Definición de vistas: El LDD incluye comandos para definir las vistas.
● Control de transacciones: SQL tiene comandos para especificar el comienzo y el final de una
transacción.
● SQL incorporado y dinámico: Esto quiere decir que se pueden incorporar instrucciones de SQL en
lenguajes de programación como: C++, C, Java, PHP, Cobol, Pascal y Fortran.
● Autorización: El LDD incluye comandos para especificar los derechos de acceso a las relaciones y a
las vistas.
Tipos de datos
Algunos de los tipos de datos básicos de SQL son:

● Varchar: Recibe cadena de palabras compuestas de letras, números y


caracteres especiales.
● Date: una fecha de calendario que contiene el año (de cuatro cifras), el mes y
el día.
● Time: La hora del día en horas minutos segundos (el valor predeterminado es
0).
● Datetime: la combinación de Date y Time.
Lenguaje de definición de datos (DDL)
El lenguaje de definición de datos (en inglés Data Definition Language, o DDL), es
el que se encarga de la modificación de la estructura de los objetos de la base de
datos. Incluye órdenes para modificar, borrar o definir las tablas en las que se
almacenan los datos de la base de datos. Existen cuatro operaciones básicas:
CREATE, ALTER, DROP y TRUNCATE
Lenguaje de manipulación de datos DML(Data
Manipulation Language)
Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en
inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos
que permite a los usuarios llevar a cabo las tareas de consulta o manipulación
de los datos, organizados por el modelo de datos adecuado.
El lenguaje de manipulación de datos más popular hoy día es SQL, usado para
recuperar y manipular datos en una base de datos relacional.
SELECT | SELECCIONAR
La sentencia SELECT nos permite consultar los datos almacenados en una tabla
de la base de datos.
SELECT [ALL | DISTINCT ]
<nombre_campo> [{,<nombre_campo>}]
FROM <nombre_tabla>|<nombre_vista>
[{,<nombre_tabla>|<nombre_vista>}]
[WHERE <condición> [{ AND|OR <condición>}]]
[GROUP BY <nombre_campo> [{,<nombre_campo >}]]
[HAVING <condición>[{ AND|OR <condición>}]]
[ORDER BY <nombre_campo>|<indice_campo> [ASC | DESC]
[{,<nombre_campo>|<indice_campo> [ASC | DESC ]}]]
INSERT | INSERTAR
Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una)
tabla en una base de datos relacional.

INSERT INTO 'tablatura' ('columnaA',['columnaB,... ']) VALUES


('valor1', ['valor2,...’])
O también se puede utilizar como:
INSERT INTO tablatura VALUES ('valor1','valor2')
UPDATE
Una sentencia UPDATE de SQL es utilizada para modificar los valores de un
conjunto de registros existentes en una tabla.

UPDATE My_table SET field1 = 'updated value asd' WHERE field2 = 'N';
DELETE
Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla.

DELETE FROM tabla WHERE columna1 = 'valor1';


Instalación de Postgresql
Ejercicio
Crear el diagrama relacional de su proyecto. Se sugiere usar
https://lucidchart.com

S-ar putea să vă placă și