Agosto 26, 2015
K
Propuesto en 1970 por Edgar Frank Codd (IBM).
Desencadenó el diseño de numerosos sistemas de gestión de bases de datos (SGBD o DBMS).
Su popularidad y éxito comercial se basó en el reconocimiento de los beneficios y sencillez en el manejo de datos del mundo corporativo.
Surge SEQUEL y SQL como lenguaje de consulta para bases de datos relacionales el cual se basa en el manejo del álgebra y cálculo relacional.
Actualmente es el modelo más utilizado en aplicaciones comerciales de procesamiento de datos.
Codd identifica dos principios:
- Independencia de los datos tanto física como lógica
- Consistencia de los datos
Un modelo de datos.
Los medios para expresar las operaciones en un lenguaje.
Basado en la lógica de predicados (o lógica de primer orden) y teoría de conjuntos
Presenta datos almacenados en tablas (relaciones) representadas por un número variable de registros o filas (tuplas) y un número fijo de columnas (atributos), donde cada fila establece una relación entre un conjunto de valores y cada columna tiene un nombre único.
Cardinalidad es el número de tuplas de la tabla (m) y es variable.
Grado es el número de atributos de la tabla (n) y es invariable.
Relación: Sea una relación y los conjuntos , un conjunto de dominios cualesquiera. Se define una relación sobre los conjuntos como un subconjunto del producto cartesiano de la lista de dominios
El orden de las tuplas en una relación no es relevante ya que ordenadas o no, la relación es la misma ya que contiene el mismo conjunto de tuplas.
Una tupla de una relación con atributos se denota como donde
los dominios de todos los atributos deben ser atómicos = indivisibles.
Define un conjunto de operaciones sobre relaciones.
Utilizan relaciones para generar una nueva relación.
Es de tipo procedimental, describe paso a paso cómo obtener una respuesta sobre una base de datos.
El resultado de una operación de álgebra relacional es una nueva relación
Lo anterior nos permite hacer composiciones para formar expresiones de álgebra relacional (tales como una proyección de una selección previa).
Es un lenguaje de consulta declarativo
Está basado en la lógica de predicados o de primer orden.
Donde: es una variable de tupla y es una fórmula/ condición/ predicado
La expresión de consulta representa el conjunto de tuplas que cumplen cierta condición.
Una variable tupla es libre cuando no está cuantificada por ó , en cuyo caso es una variable tupla ligada.
Las fórmulas o condiciones pueden se construyen como fórmulas atómicas:
donde es una variable tupla y es una relación (no se permite el uso del operador )
donde y son variables tuplas, es un atributo de , es un atributo de y es un operador de comparación como <, ≤, =, ≠, >, ≥
donde es una variable tupla, es un atributo de , es un operador de comparación como <, ≤, =, ≠, >, ≥ y es una constante
Un átomo es una fórmula
Si es una fórmula entonces y también son fórmulas.
Dominio: Conjunto de valores permitidos para cada atributo. (Enteros, Caracteres, Fechas, etc)
Relaciones: Subconjuntos del producto cartesiano de la lista de dominios.
Claves: Permiten identificar un conjunto de atributos suficiente para distinguir las entidades entre sí.
Uno a uno: Una entidad en A se asocia con a lo sumo una entidad en B, y una entidad en B se asocia con a lo sumo una entidad en A
Uno a varios: Una entidad en A se asocia con cualquier número de entidades en B (ninguna o varias). Una entidad en B, sin embargo, se puede asociar con a lo sumo una entidad en A
Varios a varios: Una entidad en A se asocia con cualquier número de entidades (ninguna o varias) en B, y una entidad en B se asocia con cualquier número de entidades (ninguna o varias) en A
Los lenguajes de consulta se usan para especificar las solicitudes de información a la base de datos como:
Recuperación de información
Inserción de información
Borrado de datos
Modificación de información
Procedimentales. Requieren que el usuario especifique qué datos se necesitan y cómo obtener esos datos.
Es un lenguaje no procedimental que usa una combinación de álgebra relacional y construcciones de cálculo relacional.
En sus inicios era llamado como SEQUEL (Structured English Query Language), que se usó experimentalmente en System R (1977 desarrollado por IBM).
SQL fue el primer lenguaje comercial basado en el modelo relacional de Codd.
1986 Fue estandarizado por el ANSI (SQL-86), 1987 Adoptado por ISO
Última versión es SQL:2011
SQL ha influenciado varios lenguajes como CQL, LINQ, Cypher
SELECT
INSERT
UPDATE
SELECT: Se usa para listar los atributos deseados del resultado de una consulta.
FROM: Lista las relaciones que deben ser analizadas en la evaluación de la expresión.
WHERE: Es un predicado que engloba a los atributos de las relaciones que aparecen en la cláusula FROM.
Ejemplo:
select A1, A2 ,…, An
from r1, r2 ,…, rm
where P
INSERT: Agrega uno o más registros a una tabla
Ejemplo:
INSERT INTO table_name
VALUES (value1,value2,value3,...);
UPDATE: Cambia los datos de uno o más registros en una tabla.
Ejemplo:
UPDATE table_name
SET column1 = value1,column2 = value2,...
WHERE some_column = some_value;
JOIN: Combina datos de una o más tablas
INNER JOIN: Produce un conjunto de resultados que es limitado a los elementos donde hay coincidencias en ambas tablas.
LEFT JOIN: Los elementos de la primera tabla o tabla de la izquierda son preservadas. los elementos de la segunda tabla o tabla de la derecha, únicamente se muestran si ellos tienen coincidencias con la primera tabla.
RIGHT JOIN: Los elementos de la segunda tabla o tabla de las derecha son preservados. Los elementos de la primera tabla o tabla de la izquierda, únicamente se muestran si ellos tienen coincidencias con la segunda tabla.
SELECT A1, A2, A3
FROM T1 [INNER, LEFT, RIGHT, FULL] JOIN T2 ON T1.ID = T2.ID
SELECT A1, A2, A3
FROM T1 [CROSS] JOIN T2
Software que controla la organización, almacenamiento, recuperación, seguridad e integridad de los datos en una base de datos.
Un SGBD está diseñado para permitir la definición, creación, consulta, actualización y administración de bases de datos.
El sitio db-engines.com muestra un rank de alrededor de 100 gestores de base de datos de 280 que tiene registrado el sitio.
Entre los primeros 5 lugares de SGBD relacionales (RDMS) por popularidad están:
Oracle
MySQL
Microsoft SQL server
PostgreSQL
DB2
Existe un mínimo necesario de propiedades para proveer una base de datos como parte de una aplicación y su funcionamiento sea viable.
ACID (por sus siglas en inglés, Atomicity, Consistency, Isolation and Durability):
Atomicidad: todos ocurre o nada, esto ayuda por ejemplo en cortes de energía, fallas de hardware, o eventos catastróficos.
Consistencia: cualquier estado de la base de datos será internamente consistente con las reglas que limitan los datos.
Aislamiento: modificar diferentes partes de las base de datos al mismo tiempo sin afectar otra.
Durabilidad: las acciones persisten una vez que las transacciones son completadas
Declaración de claves: Evita duplicidad de elementos con la misma clave.
Forma de relación: Uno a uno, varios a varios, uno a varios.
Restricción de dominios: Unicamente fecha, cadena o número
Generación de un conjunto de esquemas relacionales que nos permita almacenar la información sin redundancias innecesarias, pero que también nos permite recuperar y actualizar fácilmente la información.
4 formas: Primera, Segunda, Tercera forma normales y la forma normal Boyce-Codd
0. El sistema debe ser relacional
Regla de la Información
Regla del Acceso garantizado
Tratamiento sistemático
Catálogo en línea basado en el modelo relacional
Sub-lenguaje de datos completo
Actualización de vistas
Inserciones, modificaciones y eliminaciones de alto nivel
Independencia física
Independencia lógica
Independencia de integridad
Independencia de la distribución
K
Hay diversas maneras de organizar la información en una base de datos:
Entonces, las BDR no sólo nos permiten llevar el control de la Operación, sino también pueden ayudar a tomar decisiones de negocio si las consultas están bien diseñadas.
Facilidad de Construcción: generalidad sin dejar de ser simples, ya que la representación en tablas permite presentar la información de forma compacta.
Facilidad de Uso: el tener la información organizada y ordenada en tablas con columnas y filas es intuitiva para el usuario permite acceder fácilmente a información por medio de consultas y reportes. Las BD orientadas a objetos generalmente no tienen (o tienen nula) posibilidad de hacer consultas y generar reportes.
Flexibilidad en las consultas: es posible realizar consultas diversas y personalizadas gracias a que la información se puede extraer y manipular de las tablas usando operaciones hasta obtener la consulta deseada (no se necesita navegar por la base)
Precisión en las consultas: el uso de álgebra y cálculo relacional como lenguaje para hacer las consultas permite que no haya ambigüedad. En otro tipo de bases de datos como la de red sí es posible tener ambigüedad. La precisión en las consultas incrementa el alcance de la mismas.
Independencia: la estructura normalizada usada en una BDR permite tener más fácilmente independencia de los datos que en Bases de Datos tipo red, por ejemplo.
Seguridad: es fácil añadir permisos de acceso a variables de interés únicamente añadiendo una nueva relación con los controles de autorización deseados.
Aceptación comercial y madurez del producto: usadas en múltiples industrias y negocios (nóminas, banca).
Rendimiento: Si la consulta deseada usa muchas tablas o el tamaño de las mismas es grande la query puede tardar un tiempo considerable en correr.
Costo: Para la construcción de la base y su mantenimiento se requiere software especializado y/o programador para construir la base y posteriormente un administrador de la misma.
Límites de tamaño: Algunas BDR tienen límites en el tamaño del campo que deben ser especificados cuando se diseña la misma.
No escalable: Las BDR organizan la información por características comunes, los datos generalmente son simples. Imágenes complejas y productos multimedia son complejos y no son fácilmente procesables por una BDR, se procesan con una BD orientada a objetos.
Aislamiento: las BDR se convierten en “grandes islas de información” y pueden no compartirse fácilmente con otras. En la práctica la comunicación entre BDR suele ser costosa y tardada.
K
Las bases de datos relacionales y los cubos funcionan bien juntas. Por ejemplo, la BDR puede servir como la bodega de datos, usando cubos como una capa adicional para tener reportes de alto desempeño.
Puede generar jerarquias recursivas.
Su escalamiento esta reducido y el manejo de grandes cantidades de datos no es factible en este esquema.
Facilita toma de decisiones
Transformar información bruta en útil
Posibles problemas de compatibilidad de datos
Dificultad en su mantenimiento
No es la mejor herramienta para toma de decisiones en tiempo real
K
Un minero es aquel software que nos provee de herramientas necesarias para realizar minería de datos
Mineros:
Es un lenguaje y ambiente de programación para computación estadística
Permite realizar Modelado Lineal y no Lineal
Contiene paquetes para clustering, Aprendizaje de Máquina, Text Mining, entre otros.
K
Contraseña: 1t4mds
Ipython Notebook