Please enable JavaScript.
Coggle requires JavaScript to display documents.
Estructuras de las bases de datos., Fernando González Fernández ISC 51 -…
Estructuras de las bases de datos.
Construcción de bases de datos
3.1 Conceptos fundamentales de los sistemas manejadores de bases de
datos
Sistemas manejadores de bases de datos, Sistemas Gestores de bases de datos (SGBD) o DataBase Management System (DBMS)
Es un sistema de software que facilita el proceso de definir, construir, y manipular bases de datos para diversas aplicaciones.
Su objetivo principal es proporcionar un entorno conveniente y eficiente para ser utilizado al extraer y almacenar información de la base de datos.
Características
Control de redundancia
Restricción de los accesos no autorizados
Cumplimiento de las restricciones de integridad de datos
Respaldo y recuperación de datos
Ventajas
Elimina la redundancia e islas de datos permitiendo compartirlos, lo que mejora
la integridad en los mismos.
Mejora en la seguridad, permitiendo solo acceso a los usuarios indicados.
Permite mantener los estándares de los datos
Facilita la accesibilidad a los datos, al servir como intermediario entre los datos y
las aplicaciones o los datos y los usuarios
Permite obtener más informes sobre la misma cantidad de datos
Desventajas
La capacidad de almacenamiento depende del gestor elegido
Para instalar el gestor y compartir datos, se requiere de equipamiento adicional
para ponerlos en red
Son complejos de usar para usuarios inexpertos
Los gestores más potentes son caros
Las prestaciones y la vulnerabilidad de fallos dependen del gestor elegido
SGBD más comerciales
Microsoft Access
MySQL
Maria DB
Microsoft SQL Server
Oracle
3.2 Normalización de la base de datos
Definición
Normalización
Proceso que clasifica relaciones, objetos, formas de relación y demás elementos en grupos, en base a las características que cada uno posee
Proceso de normalización
Consiste en aplicar una serie de reglas a las relaciones
obtenidas tras el paso del modelo E/R (entidad-relación) al modelo relacional.
Objetivo
Evitar problemas de actualización de los datos en las tablas.
Proteger la integridad de los datos
Evitar la redundancia de los datos.
Proceso que nos ayuda a eliminar las anomalías que se pueden presentar en las bases de datos, como es la redundancia de datos
Axiomática de Armstrong
Tipos de dependencias que se dan entre los atributos, por medio de la Axiomática de
Armstrong
Sean los descriptores X, Y, Z y W, los axiomas de Armstrong, es decir las reglas de
derivación de dependencia establecidos
Tipo de dependencia funcional
Reflexividad
Si la dirección o el nombre de una persona están incluidos en el dni, entonces con el dni podemos determinar la dirección o su nombre.
Aumentatividad
Si con el dni se determina el nombre de una persona, entonces con el dni más la dirección también se determina el nombre o su dirección o cualquier otro elemento de la tupla
Transitividad
Entonces tenemos que FechaDeNacimiento determina a Edad y la Edad(>18) determina a Conducir, indirectamente podemos saber a través de FechaDeNacimiento a Conducir
Reglas normales
Primera Forma Normal (1NF)
Eliminan los grupos repetitivos
Los atributos han de ser únicos, en cada uno de los atributos sólo se puede incluir un dato, aunque sea compuesto, pero no se puede incluir una lista de datos.
Organización de los Datos en la 1NF
REGLA
Para eliminar los grupos repetitivos se pone cada uno de ellos en una tabla aparte, esa nueva tabla hereda la clave primaria de la relación en la que se encontraban, se crea una clave foránea para la nueva tabla
Describe la forma tabular en la cual
Todos los atributos están definidos.
Todos los atributos son dependientes de la clave primaria
No existen grupos repetidos en la tabla
Segunda Forma Normal (2NF)
Dependencia completa
Toda relación que tenga como clave sólo un atributo está en 2FN.
Organización de los Datos en la 2NF
REGLA.
se encarga de que todas las columnas que no son llave sean
completamente dependientes de la llave primaria.
Puede exhibir dependencia transitiva
Tercera Forma Normal (3NF)
Forma Normal Boyce Cood (BCNF)
3FN si está en 2FN y si no contiene dependencias transitivas
Organización de los Datos en la 3NF
REGLA
Eliminación de las dependencias transitivas
Existen otras reglas que pueden agregarse dependiendo el grado de normalización que se desee obtener
Si al terminar de aplicar las formas normales, no has logrado la normalización de las tablas puedes volver a aplicarlas en el mismo orden establecido
Existen dos niveles más de normalización que son la cuarta Forma Normal (4NF), y la
Quinta Forma Normal (5NF
Una tabla está 4FN, si está en la 3NF y no tiene conjuntos múltiples de
dependencias de valores múltiples.
Una tabla esta 5FN, si esta en cuarta forma normal y toda dependencia
Una tabla está en FNBC sí y sólo sí las únicas dependencias funcionales
elementales son aquellas en las que la clave primaria determina un atributo.
Es una etapa que se deben agrupar los datos por afinidad, formando las tablas las
cuales se relacionan entre sí mediante campos comunes
3.3 Construcción de la base de datos
Restricciones semánticas del modelo relacional
Clave primaria (PRIMARY KEY)(PK)
Permite declara un atributo o conjunto de atributos como la clave primaria de una relación que identifica unívocamente cada tupla de la relación
Protege la integridad de la entidad al evitar que ingresen valores duplicados. La forma de representarla es subrayando el atributo que funge como PK
Unicidad (UNIQUE)
Permite definir claves de identificación alternativa (los valores de uno o varios atributos no pueden repetirse en diferentes tuplas de la relación.)
La forma de representarla es subrayar de forma discontinúa el atributo
Clave externa o ajena
La forma de representarla es subrayar de forma discontinúa el atributo
Puede tener valores repetidos y cumple la regla de integridad referencial. Una clave ajena siempre apunta a una Clave primaria
Obligatoriedad (NOT NULL)
permite declarar si uno o varios atributos de una elación pueden tomar valores nulos, por defecto son obligatorios.
Los atributos opcionales se representan por un asterisco (*).
Clave ajena (FOREIGN KEY)(FK)
También denominada integridad referencial, es un atributo que no pertenece a esa tabla
su función es la de relacionar con la clave primaria en otra o en la misma tabla.
Borrado/modificación sin acción. (NOT ACTION).
RESTRICT.
Si existen tuplas en la relación hija relacionadas con la tupla de la relación padre sobre la que se realiza la operación, entonces no se permitirá llevar a cabo dicha operación
NOT ACTION.
Es similar a la anterior, pero puede diferirse su comprobación, por lo que solo se impide la operación si al final de la misma el resultado rompe la integridad referencial
Borrado/modificación en cascada (CASCADE).
El borrado o modificación de una tupla en la relación padre ocasiona un borrado o modificación de todas las tuplas relacionadas en la relación hija
Donde la clave ajena coincida con el valor de la
clave primaria de la relación padre.
Borrado/modificación con puesto a nulos (SET NULL)
Nos da la posibilidad de poner el valor de la clave ajena referenciada a NULL
cuando se produce el borrado o modificación de una tupla padre
Borrado/modificación
Con puesta a un valor por defecto (SET DEFAULT) funciona de forma similar al anterior solo que en lugar de poner un valor nulo, pone el valor por defecto establecido
Restricciones de verificación:
si se requiere verificar que el valor que se vaya a ingresar este dentro de un rango de valores establecidos se pone la restricción CHECK
Reglas de integridad
Regla de integridad de entidades
Se aplica a las claves primarias de las relaciones base
ninguno de los atributos que componen la clave primaria puede ser nulo, se utiliza para identificar de modo único las tuplas
Regla de integridad referencial
Se aplica a las claves ajenas
si en una relación hay alguna clave ajena, sus valores deben coincidir con valores de la clave primaria a la que hace referencia, o bien, deben ser completamente nulos.
Propiedades ACID
Transacción
Conjunto de operaciones que se deben realizar en una base de datos de manera conjunta
se deben llevar a cabo todas las operaciones o ninguna de ellas.
Modelo ACID.
Atomicity (Atomicidad).
Define el todo o nada de una transacción
Si una transacción se conforma por dos sentencias (Insert y Delete) la atomicidad se mantiene si la base de datos realiza ambas
Consistency(Consistencia)
Debe mantener la integridad de la información al inicio, durante y al finalizar la transacción
De cuerdo a las reglas establecidas (claves primarias, secundarias, constraint) e involucradas en la transacción.
Isolation (Aislamiento)
Debe poder procesar las transacciones de manera simultanea o concurrente
Este proceso no debe ser visible por otra manteniendo el asilamiento de las transacciones
Debe permitir replicar el estado final si se lleva a cabo de manera paralela o en serie.
Durability (Durabilidad)
Las transacciones grabadas deben hacer que los datos sean permanentes y no perderlos bajo ninguna circunstancia
Relacionado con el motor y el log de transacciones
3.3 Diseño de una base de datos NoSQL
Las bases de datos NoSQL (Not only SQL) son una categoría de Sistemas de Gestión de Bases de Datos que no utilizan SQL como lenguaje de consulta principal
Origen del NoSQL
NoSQL surge de la combinación de dos palabras -No y SQL-, para indicar que las bases de datos que no utilizan el modelo de datos normalizado de las bases de datos relacionales
no siguen el modelo ACID, sino un modelo llamado Base.
Se organizan los datos en tablas, filas y columnas, no utilizan el lenguaje de consultas SQL para acceder a los datos, sino que utilizan lenguajes alternativos adecuados para sus modelos de datos.
Características
Están optimizadas para operaciones de lectura/escrituras escalables en lugar de pura consistencia.
alternativas viables a las bases de datos relacionales para muchas aplicaciones
surgen como una necesidad de bases de datos para escalar la WEB y poder llegar a los usuarios conectados en dispositivos conectados
Diseñadas para manipular grandes volúmenes de datos de manera muy rápida
no requieren esquemas de tablas fijas y no soportan operaciones Join
Mongo DB
Es una base de datos de documentos open-source que permite indexar registros de texto completo que se encuentra estructurado en un Documento.
Diferencias
La diferencia entre los modelos relacionales y los NoSQL, sería la abstracción completa de todos los datos definidos en un solo documento y no en distintas tablas relacionadas.
Las restricciones y la existencia de “ids” de otras tablas como parte de nuestros registros ya no son relevantes pues lo que nos interesa es la información como tal.
Collection es la agrupación de documentos (BSON — binary JSON) que se almacenan en una base de datos, donde las operaciones de lectura, escritura y las consultas son sobre una base de datos
Modelos de valores para base de datos NoSQL
Almacen de documentos (Document Store
•Los datos y los metadatos se almacenan de forma jerárquica en
documentos basados en JSON dentro de la base de datos.
Almacén de valores clave (Key-value Store)
Los datos se representan como una colección de pares clave-valor.
Wide - Column Store
•Los datos relacionados se almacenan como un conjunto de pares de clave-valor anidados dentro de una sola columna.
Almacén de grafos (Graph Store)
Los datos se almacenan en una estructura de grafos como propiedades de nodo, borde y datos.
Datos JSON en SQL Server
JSON es un formato de datos de texto
Intercambiar datos en las aplicaciones web y móviles modernas.
Intercambiar datos en las aplicaciones web y móviles modernas.
Muchos servicios web (Azure Search, Azure Storage y Azure Cosmos DB) cuentan con extremos REST devuelven resultados con formato de texto JSON o bien aceptan datos con este formato.
Es un formato principal para intercambiar datos entre páginas web y servidores web a través de llamadas AJAX.
Funciones JSON de SQL Server
Analizar texto JSON y leer o modificar valores.
permiten combinar conceptos NoSQL y relacionales en una misma tabla de una base de datos.
Transformar matrices de objetos JSON a formato de tabla.
Ejecutar cualquier consulta de Transact-SQL en los objetos JSON convertidos.
Dar formato JSON a los resultados de consultas de Transact-SQL
Función
(Transact-SQL)
ISJSON
Prueba si una cadena contiene un
valor JSON válido.
JSON_VALUE
Extrae un valor escalar de una
cadena JSON.
JSON_QUERY
Extrae un valor escalar de una
cadena JSON.
JSON_MODIFY
Extrae un valor escalar de una
cadena JSON.
OPENJSON
Iterará en la matriz de objetos JSON, leerá el valor en la ruta de acceso especificada para cada columna y convertirá el valor al tipo especificado.
Lenguaje estructurado de
consulta
4.1 El álgebra y el cálculo relacional
4.1.1El álgebra Relaciona
El álgebra relacional define la manera teórica de manipular los contenidos de tabla mediante ocho operadores relacionales
Los operadores del álgebra relacional se
aplican a relaciones dando como resultado nuevas relaciones
Es un conjunto de operaciones simples sobre tablas relacionales, a partir de las cuales se definen operaciones más complejas mediante composición
Es un lenguaje procedural para la manipulación de relaciones.
Las operaciones algebraicas tradicionales de conjuntos: unión, intersección,
diferencia y producto cartesiano.
Las operaciones relacionales especiales: restricción, proyección, combinación y división.
La intersección, combinación y división pueden ser derivadas de otros operadores, las demás son primitivas
4.1.2El cálculo Relacional
No se basa en procedimientos
lenguaje para decir lo que queremos sin expresar como obtenerlo
El cálculo relacional de tuplas la variable se extiende sobre las tuplas de la relación.
Para el cálculo relacional de la variable se extiende sobre los valores de un dominio, el cálculo relacional se deriva de una rama de las matemáticas denominado cálculo de predicados
Es una notación lógica, donde las consultas se expresan formulando algunas restricciones lógicas que las tuplas de la respuesta deban satisfacer
4.1.3 Operaciones en algebra relacional
O – Operador del álgebra relacional (Union, combinación, proyección, etc.)
operación de algebra relacional
r’ = O(r)
r – Relacion(es) a la(s) que se aplica el operador O.
r’ – Relación resultado de la operación.
4.1.4 Representación gráfica de los operadores del álgebra relacional
Restricción o Selección
(σ ) Extrae las tuplas de una relación dada que satisfagan una
condición especifica.
La forma de representarlo es: σ condición (relación)
Proyección
(π ) extrae los atributos especificados de una relación dada eliminando
las tuplas duplicadas.
La forma de representarlo es: π
atributos (relación)
Unión
Construye una relación con todas las tuplas que aparezcan en cualquiera de las dos relaciones especificadas, pero ambas deben tener el mismo número de atributos, estos deben ser del mismo tipo y estar especificados sobre el mismo dominio.
Si nos remitimos a la teoría de conjuntos sería la unión de los conjuntos A y B es el conjunto de todos los elementos de A con todos los elementos de B sin repetir ninguno
1 more item...
Diferencia
(-)Construye una relación con las tuplas de la primera relación que no
aparecen en la segunda.
Es necesario que las dos relaciones tengan los mismos atributos definidas sobre los mismos dominios.
Producto Cartesiano
(X) a partir de dos relaciones especificadas construye una relación concatenando cada tupla de la primera con cada una de las tuplas de la segunda.
La relación resultante está definida sobre la unión de los atributos de las dos
relaciones especificadas
Combinación
(Ɵ): a partir de las relaciones especificadas, construye una relación concatenando cada tupla de la primera con cada una de las tuplas de la segunda, siempre que ambas tuplas satisfagan la condición dada.
Si la condición es la igualdad y en la relación resultante se elimina el atributo común, se denomina combinación natural.
La combinación (Ɵ) es un
producto cartesiano seguido de una restricción
La combinación natural (*) es un
producto cartesiano seguido restricción por igualdad y proyección.
Intersección
construye una relación con aquellas tuplas que parezca en las dos relaciones especificadas
Para usar este operador es necesario que las dos relaciones especificadas tengan los mismos atributos definidos sobre los mismos dominios.
La intersección de puede definir en función de la unión y la diferencia.
División
Construye una relación con los valores de un atributo de la primera relación (dividendo) que concuerda con todos los valores de los atributos de la segunda relación (divisor).
Se pueden definir en función de la proyección, del producto
cartesiano y de la diferencia.
Agrupación
(GROUP BY)Agrega tuplas por valores comunes de ciertos atributos y aplica una función de agregación
frecuencia, suma, media, …) a cada subconjunto.
Fernando González Fernández
ISC 51