INTRODUCCION A BD

¿Qué son las bases de datos?

Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar fácilmente. A continuación te presentamos una guía que te explicará el concepto y características de las bases de datos.

Desde el punto de vista informático, la base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos.

Cada base de datos se compone de una o más tablas que guarda un conjunto de datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de la información sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro.


Diferencia entre dato e información.

Lo primero que debemos tener claro es qué es cada término, a continuación lo describiremos de la mejor manera posible. 
  • Un dato no es otra cosa que una representación simbólica de alguna situación o conocimiento, sin ningún sentido semántico, describiendo situaciones y hechos sin transmitir mensaje alguno. Puede ser un número, una letra o un hecho.
  • Mientras que la información, es un conjunto de datos, los cuales son adecuadamente procesados, para que de esta manera, puedan proveer un mensaje que contribuya a la toma de decisión a la hora de resolver un problema, además de incrementar el conocimiento, en los usuarios que tienen acceso a dicha información.
A continuación les vamos a presentar las principales diferencias entre dato e información.
  • Los datos son utilizados por lo general, para comprimir información con la finalidad de facilitar el almacenamiento de datos, y su transmisión a otros dispositivos. Al contrario que la información, la cual tiende a ser muy extensa.
  • La información o mensaje es mucho mayor que los datos, ya que la informaciónse encuentra integrada por un conjunto de datos de diferentes tipos.
  • Otra característica destacable de la información, es que es un mensaje que tiene sentido comunicacional y una función social. Mientras que el dato, no refleja mensaje alguno y por lo general, es difícil de entender por sí solo para cualquier ser humano, careciendo de utilidad si se encuentra aislado o sin otros grupos de datosque creen un mensaje coherente.

Conclusión

Como podemos ver, la principal diferencia se centra en el mensaje que puede transmitir la información, y que un dato por sí solo no puede realizar. Se necesitan muchos datos para crear un mensaje o información.

12 reglas de Codd para bases de datos Relacionadas.

Codd se percató de que existían bases de datos en el mercado las cuales decían ser relacionales, pero lo único que hacían era guardar la información en las tablas, sin estar estas tablas literalmente normalizadas; entonces éste publicó 12 reglas que un verdadero sistema relacional debería tener aunque en la práctica algunas de ellas son difíciles de realizar. Un sistema podrá considerarse “más relacional” cuanto más siga estas reglas.
–          Regla 0: el sistema debe ser relacional, base de datos y administrador de sistema. Ese sistema debe utilizar sus facilidades relacionales (exclusivamente) para manejar la base de datos.
–          Regla 1: la regla de la información, toda la información en la base de datos es representada unidireccionalmente, por valores en posiciones de las columnas dentro de filas de tablas. Toda la información en una base de datos relacional se representa explícitamente en el nivel lógico exactamente de una manera: con valores en tablas.
–          Regla 2: la regla del acceso garantizado, todos los datos deben ser accesibles sin ambigüedad. Esta regla es esencialmente una nueva exposición del requisito fundamental para las llaves primarias. Dice que cada valor escalar individual en la base de datos debe ser lógicamente direccionable especificando el nombre de la tabla, la columna que lo contiene y la llave primaria.
–          Regla 3: tratamiento sistemático de valores nulos, el sistema de gestión de base de datos debe permitir que haya campos nulos. Debe tener una representación de la “información que falta y de la información inaplicable” que es sistemática, distinto de todos los valores regulares.
–          Regla 4: catálogo dinámico en línea basado en el modelo relacional, el sistema debe soportar un catálogo en línea, el catálogo relacional debe ser accesible a los usuarios autorizados. Es decir, los usuarios deben poder tener acceso a la estructura de la base de datos (catálogo).
–          Regla 5: la regla comprensiva del sublenguaje de los datos, el sistema debe soportar por lo menos un lenguaje relacional que:
  • Tenga una sintaxis lineal.
  • Puede ser utilizado de manera interactiva.
  • Soporte operaciones de definición de datos, operaciones de manipulación de datos (actualización así como la recuperación), seguridad e integridad y operaciones de administración de transacciones.
–          Regla 6: regla de actualización, todas las vistas que son teóricamente actualizables deben ser actualizables por el sistema.
–          Regla 7: alto nivel de inserción, actualización, y cancelación, el sistema debe soportar suministrar datos en el mismo tiempo que se inserte, actualiza o esté borrando. Esto significa que los datos se pueden recuperar de una base de datos relacional en los sistemas construidos de datos de filas múltiples y/o de tablas múltiples.
–          Regla 8: independencia física de los datos, los programas de aplicación y actividades del terminal permanecen inalterados a nivel lógico cuandoquiera que se realicen cambios en las representaciones de almacenamiento o métodos de acceso.
–          Regla 9: independencia lógica de los datos, los cambios al nivel lógico (tablas, columnas, filas, etc.) no deben requerir un cambio a una solicitud basada en la estructura. La independencia de datos lógica es más difícil de lograr que la independencia física de datos.
–          Regla 10: independencia de la integridad, las limitaciones de la integridad se deben especificar por separado de los programas de la aplicación y se almacenan en la base de datos. Debe ser posible cambiar esas limitaciones sin afectar innecesariamente las aplicaciones existentes.
–          Regla 11: independencia de la distribución, la distribución de las porciones de la base de datos a las varias localizaciones debe ser invisible a los usuarios de la base de datos. Los usos existentes deben continuar funcionando con éxito:
  • Cuando una versión distribuida del SGBD se introdujo por primera vez
  • cuando se distribuyen los datos existentes se redistribuyen en todo el sistema.
–          Regla 12: la regla de la no subversión, si el sistema proporciona una interfaz de bajo nivel de registro, a parte de una interfaz relacional, que esa interfaz de bajo nivel no se pueda utilizar para subvertir el sistema, por ejemplo: sin pasar por seguridad relacional o limitación de integridad. Esto es debido a que existen sistemas anteriormente no relacionales que añadieron una interfaz relacional, pero con la interfaz nativa existe la posibilidad de trabajar no relacionalmente.

Motor de base de datos


El Motor de base de datos es el servicio principal para almacenar, procesar y proteger los datos. El Motor de base de datos proporciona acceso controlado y procesamiento de transacciones rápido para cumplir con los requisitos de las aplicaciones consumidoras de datos más exigentes de su empresa.

Use Motor de base de datos para crear bases de datos relacionales para el procesamiento de transacciones en línea o datos de procesamiento analíticos en línea. Se pueden crear tablas para almacenar datos y objetos de base de datos como índices, vistas y procedimientos almacenados para ver, administrar y proteger los datos. Puede usar SQL Server Management Studio para administrar los objetos de bases de datos y SQL Server Profiler para capturar eventos de servidor.

¿Qué es un SGBD?

Los Sistemas de Gestión de Base de Datos (en inglés DataBase Management System) son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta.

Bases de datos más utilizadas

  • Db2: con Db2 los usuarios disponen de un SGBD relacional propietario de la casa IBM.
     
  • Microsoft SQL Server: la aplicación de Microsoft para gestionar bases de datos relacionales está disponible con una licencia Microsoft de pago.
     
  • MySQL: MySQL es el SGBD de código abierto más utilizado a nivel global. Desde que pasa a las manos de Oracle, MySQL se distribuye con una licencia dual. Sus primeros desarrolladores siguen encargándose del proyecto, ahora bajo el nombre de MariaDB.
     
  • PostgreSQL: con PostgreSQL los usuarios disponen de un SGBD relacional libre y orientado a objetos de cuyo continuo desarrollo se ocupa su comunidad open source.
     
  • Oracle Database: el programa de Oracle se distribuye como software propietario.
     
  • SQLite: por último, SQLite constituye una biblioteca de programas con licencia de dominio público que contiene un gestor de bases de datos relacionales.

Clasificación de las bases de datos según su variabilidad

Bases de datos estáticas

Éstas son bases de datos de sólo lectura, utilizadas primordialmente para almacenar datos históricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones y tomar decisiones.

Bases de datos dinámicas

Éstas son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización, borrado y adición de datos, además de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada en un sistema de información de una tienda de abarrotes, una farmacia, un videoclub.

Modelos de base de datos

Modelo jerárquico

El modelo jerárquico organiza los datos en una estructura de árbol, en la que cada registro tiene un único elemento o raíz. Los registros del mismo nivel se clasifican en un orden específico. Ese orden se usa a manera de orden físico para almacenar la base de datos. El modelo es bueno para describir muchas relaciones del mundo real.

Este modelo fue usado principalmente por los Sistemas de Gestión de Información de IBM en las décadas de 1960 y 1970, pero raramente se los ve en la actualidad debido a ciertas ineficiencias operativas.

Modelo de red

El modelo de red se basa en el modelo jerárquico, permitiendo relaciones de muchos a muchos entre registros vinculados, lo que implica registros principales múltiples. Basado en la teoría matemática de conjuntos, el modelo se construye con conjuntos de registros relacionados. Cada conjunto consiste de un registro propietario o principal y uno o más registros miembros o secundarios. Un registro puede ser miembro o secundario en múltiples conjuntos, permitiendo que este modelo represente relaciones complejas.
Fue muy popular en la década de 1970 después de que fue definido formalmente por la Conference on Data Systems Languages (CODASYL).
modelo de red

Bases de datos documentales 

Permiten la indexación a texto completo, y en líneas generales realizar búsquedas más potentes. Tesauro es un sistema de índices optimizado para este tipo de bases de datos.

Modelo relacional

Siendo el modelo más común, el modelo relacional ordena los datos en tablas, también conocidas como relaciones, cada una de las cuales se compone de columnas y filas. Cada columna enumera un atributo de la entidad en cuestión, por ejemplo, precio, código postal o fecha de nacimiento. En conjunto, a los atributos en una relación se los llama dominio. Se elige un atributo particular o combinación de atributos como clave primaria, a la cual se puede hacer referencia en otras tablas, en donde se la denomina clave externa.
Cada fila, también denominada tupla, incluye datos sobre una instancia específica de la entidad en cuestión, por ejemplo, un empleado específico.
El modelo también representa los tipos de relaciones entre esas tablas, incluidas las relaciones uno a uno, uno a muchos y muchos a muchos. Este es un ejemplo:
modelo relacional
Dentro de la base de datos, las tablas se pueden normalizar, es decir, hacer que cumplan las reglas de normalización que hacen a la base de datos flexible, adaptable y escalable. Al estar normalizada, cada porción de los datos es atómica, es decir, está dividida en partes útiles lo más pequeñas posibles.
Las bases relacionales generalmente se escriben en Lenguaje de Consulta Estructurado (SQL, por sus siglas en inglés). El modelo fue introducido por E. F. Codd en 1970.

Modelo de base de datos orientado a objetos

Este modelo define una base de datos como una colección de objetos, o elementos de software reutilizables, con funciones y métodos relacionados. Hay varios tipos de bases de datos orientadas a objetos:
Una base de datos multimedia incorpora elementos multimedia, tales como imágenes, que no se podrían almacenar en una base de datos relacional.
Una base de datos de hipertexto permite que cualquier objeto se conecte a cualquier otro objeto. Es útil para organizar lotes de datos disímiles, pero no es ideal para análisis numérico.
El modelo de base de datos orientado a objetos es el mejor modelo conocido de base de datos posrelacional ya que incorpora tablas, pero no se limita a ellas. A dichos modelos también se los conoce como modelos de base de datos híbridos.
modelo relacional de objetos

Que es una relación y que tipos de relaciones existen

Relaciones uno a uno

Si hay una única instancia de la Entidad A para cada instancia de la Entidad B, se dice que tienen una relación de uno a uno (a menudo se escribe 1:1). Puedes indicar este tipo de relación en un diagrama ER mediante una línea con un guión en cada extremo:
relación uno a uno
A menos que tengas un buen motivo para no hacerlo, una relación 1:1 generalmente indica que la mejor opción sería combinar los datos de las dos tablas en una sola tabla.
Sin embargo, quizás desees crear tablas con una relación de uno a uno en una serie particular de circunstancias. Si tienes un campo con datos opcionales, como "descripción", que está en blanco para muchos registros, puedes mover todas las descripciones a su propia tabla, eliminando espacio vacío y mejorando el rendimiento de la base de datos.
Para garantizar que los datos coincidan correctamente, luego tendrías que incluir al menos una columna idéntica en cada tabla, lo más probable es que sea la clave primaria.

Relaciones uno a muchos

Estas relaciones suceden cuando un registro de una tabla está asociado a múltiples entradas en otra tabla. Por ejemplo, un solo cliente puede haber solicitado múltiples pedidos o una persona haberse llevado muchos libros de la biblioteca a la vez. Las relaciones uno a muchos (1:M) se indican con lo que se denomina "notación patas de gallo" como en el siguiente ejemplo:
relación uno a muchos
Para implementar una relación uno a muchos (1:M) mientras preparas una base de datos, simplemente agrega la clave primaria de "un" lado de la relación como un atributo en la otra tabla. Cuando una clave primaria se detalla en otra tabla de esta manera, se denomina "clave extranjera". La tabla en el lado "1" de la relación es considerada una tabla principal respecto de la tabla secundaria que se encuentra del otro lado.

Relaciones muchos a muchos

Cuando múltiples entidades de una tabla se pueden asociar a múltiples entidades de otra tabla, se dice que tienen una relación de muchos a muchos (M:N). Esto puede suceder en el caso de estudiantes y clases, ya que un estudiante puede inscribirse en muchas clases, y una clase puede tener numerosos estudiantes.
En un diagrama ER, estas relaciones se representan con estas líneas:
relación muchos a muchos
Lamentablemente, no es posible implementar directamente este tipo de relación en una base de datos. En cambio, debes dividirlo en dos relaciones uno a muchos.
Para ello, debes crear una nueva entidad entre esas dos tablas. Si la relación M:N existe entre ventas y productos, quizás llames a esa nueva entidad "productos_vendidos", ya que mostraría los contenidos de cada venta. Tanto las tablas de ventas como de productos tendrían una relación 1:M con "productos_vendidos". Esta clase de entidad intermedia se llama "tabla de enlaces", "entidad asociativa" o "tabla de unión" en diversos modelos.
Cada registro de la tabla de enlaces se correspondería con dos de las entidades de las tablas contiguas (también puede incluir información adicional). Por ejemplo, una tabla de enlaces entre estudiantes y clases podría verse así:
tabla de enlaces


Diseño de base de datos

Diseño Conceptual

Durante esta fase, plasmaremos nuestras entidades y las relaciones que existirán entre ellas. Yo por lo general lo hago a mano, me parece mucho más sencillo. Cada entidad la identificaremos con un rectángulo y dentro de este colocaremos su nombre. A cada entidad le colocaremos sus respectivos atributos y resaltaremos el atributo principal, aquél atributo que identificará cada registro de manera única. Y por último crearemos las relaciones que existen entre dichas entidades. Siendo muy sinceros, esta fase no la hacemos a conciencia (me incluyo), pero lo pueden combinar con la siguiente fase muy fácilmente. Aquí no te preocupas por el motor de bases de datos aún.
ER


Diseño Lógico

Aquí podemos tabular nuestro diseño conceptual. Este proceso es más utilizado que el anterior (no debería ser así), ya que cuando ya llevas bastante trabajando en bases de datos, el proceso tabular es más rápido de realizar y vemos resultados más rápidamente. En esta fase, debemos pensar en cómo normalizar nuestras tablas para evitar duplicidad de información y para ahorrar espacio de almacenamiento. Esto último (ahorrar espacio) ya no es tan importante como hace algunos años, incluso hoy en día hablamos de inteligencia de negocios, minería de datos, entre otros términos que nos exigen eliminar la normalización, pero de eso hablaremos en otros post. Para este proceso, las herramientas de modelado te ayudan bastante a ver las relaciones de las tablas. En teoría, aquí tampoco te preocupas por el motor, ya que el modelo tabular es igual en todos los motores de bases de datos relacionales.
Tabular

Diseño físico

En esta última fase ya debemos revisar a detalle los tipos de datos que utilizaremos, sus dominios (qué valores va a permitir), cuales índices debemos crear para optimizar las consultas, entre otros. Aquí ya escribimos nuestro SQL para plasmar todo nuestro diseño en el motor de bases de datos elegido.
sql

Ventajas y desventajas de las bases de datos relacionales




Ventajas:


  1. Tienes tu información altamente organizada de acuerdo a tu modelo (diseño).
  2. El lenguaje SQL es muy fácil de utilizar.
  3. Puedes administrar fácilmente tu información con el modelo CRUD.
  4. Tu información se queda guardada y es fácil hacer respaldos.
  5. Dependiendo del manejador que uses, el desempeño sigue siendo bueno a gran escala.
  6. Puedes crear vistas con cálculos y procesamiento de información dentro de la base de datos para crear reportes fácilmente.
  7. Potencian web apps o apps móviles con manejo de información de usuarios, contenido y transacciones.

Desventajas:

  1. Si las necesidades cambian, puede ser complicado modificar el modelo.
  2. Si el modelo no es bueno, la aplicación que use la base de datos podrá ser inconsistente, lo que puede llevar a errores.
  3. Igualmente si el modelo no es bueno, puede no respetarse la atomicidad y existir información duplicada, lo que también lleva a errores.
  4. Hacer un buen modelo requiere mucho tiempo a comparación de una base de datos noSQL.
  5. En general no es flexible, pues usa formas ya definidas, como tipos de información.
  6. Tiene tipos de datos limitados. En una base de datos noSQL no existen limitaciones, puedes almacenar información estructurada y no estructurada.

Elementos de una base de datos relacional

- TABLAS:
Son estructuras encargadas de alojar la informacion de la base de datos.

- CAMPOS:
Son cada una de las columnas de una tabla, cada campo almacena un dato en concreto.

- REGISTROS:
Cada una de las filas de la tabla que agrupa toda la informacion de un mismo elemento.
- DATO:
Un dato es una representación simbólica (numérica, alfabética, algorítmica, espacial, etc.) de un atributo o variable cuantitativa o cualitativa. Los datos describen hechos empíricos, sucesos y entidades. Es un valor o referente que recibe el computador por diferentes medios, los datos representan la información que el programador manipula en la construcción de una solución o en el desarrollo de un algoritmo.

Normalización de la base de datos

Qué es la Normalización de una base de datos

El proceso de normalización de una base de datos relacional consiste en aplicar una serie de reglas para evitar a futuro realizar queries, o consultas innecesariamente complejas. En otras palabras están enfocadas en eliminar redundancias e inconsistencias de dependencia en el diseño de las tablas.
Las bases de datos se normalizan para:
  • Evitar la redundancia de datos
  • Proteger la integridad de los datos
  • Evitar problemas de actualización de los datos en las tablas
Para poder decir que nuestra base de datos está normalizada deben respetarse 3 niveles de normalización.

Sin Normalizar:

ALUMNOS
alumnoestudio_nivelestudio_nombremateria_1materia_2
JuanitoMaestríaMedios VirtualesMySQLPHP
PepitoLicenciaturaDiseño DigitalMySQLPHP

Como podemos ver en la tabla anterior, tenemos los registros de ambos estudiantes con ambas materias asignadas, pero esto es poco funcional, imaginemos que cada estudiante tuviera más materias en su horario, eso significaría, agregarle más columnas a cada alumno, lo que no es muy óptimo.

Primera Forma Normal:

NO repetir campos en las tablas (atributos atómicos).
ALUMNOS
alumno_idalumno_nombreestudio_nivelestudio_nombremateria
1JuanitoMaestríaMedios VirtualesMySQL
1JuanitoMaestríaMedios VirtualesPHP
2PepitoLicenciaturaDiseño DigitalMySQL
2PepitoLicenciaturaDiseño DigitalPHP

Al aplicar la primer forma normal hemos generado un identificado para cada alumno y un registro por materia asignada, hemos duplicado información, sin embargo hemos conservado la integridad de las columnas de la información lo que es más óptimo que el modelo anterior, sin embargo podemos mejorarlo con la segunda forma normal.

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.
ALUMNOS
alumno_idalumno_nombreestudio_nivelestudio_nombre
1JuanitoMaestríaMedios Virtuales
2PepitoLicenciaturaDiseño Digital

MATERIAS
materia_idalumno_idmateria_nombre
11MySQL
21PHP
32MySQL
42PHP

Al aplicar la segunda forma normal, hemos evitado la duplicación de registros y hemos separado la información de los alumnos de la relación que guardan con las materias generando una segunda tabla, sin embargo dicha tabla puede mejorarse con la tercer forma normal o su versión mejorada la forma de Boyce-Codd.

Tercera Forma Normal:

Se debe aplicar la 1FN y 2FN. Los campos que NO son clave NO deben tener dependencias.

Forma Normal Boyce-Codd (FNBC):

Se debe aplicar la 1FN, 2FN y 3FN. Es una versión mejorada de la 3FN. Los campos que NO son clave NO deben tener dependencias. Los campos que NO dependan de la clave se deben eliminar.
ALUMNOS
alumno_idalumno_nombreestudio_id
1Juanito1
2Pepito2

ESTUDIOS
estudio_idestudio_nivelestudio_nombre
1MaestríaMedios Virtuales
2LicenciaturaDiseño Digital

MATERIAS
materia_idalumno_idmateria_nombre
11MySQL
21PHP
32MySQL
42PHP

Con la ayuda de la tercer forma y la Boyce-Codd hemos sacado la información de los planes de estudio de la información principal de los alumnos, lo que asegura una mejor integridad de los datos, permitiendo que el número de estudios crezcan y que los estudiante puedan matricularse a más de un estudio sin tener que desordenar el modelo de datos.

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.
ALUMNOS
alumno_idalumno_nombreestudio_id
1Juanito1
2Pepito2

ESTUDIOS
estudio_idestudio_nivelestudio_nombre
1MaestríaMedios Virtuales
2LicenciaturaDiseño Digital

MATERIAS
materia_idmateria_nombre
1MySQL
2PHP

MATERIAS X ALUMNO
mxa_idalumno_idmateria_id
111
212
321
422

Con la cuarta forma hemos logrado separar la relación que guardan los alumnos con sus respectivas materias asignadas, separándolas en un catálogo independiente de materias, y guardando la relación entre alumnos y materias en otra tabla pivote que sólo guarde la relación entre ambas entidades con un registro único.

Quinta Forma Normal:

Se debe aplicar la 1FN, 2FN, 3FN y 4FN. Existe otro nivel de normalización que se aplica con poca frecuencia y en la mayoría de los casos no es necesario, para obtener la mejor funcionalidad de nuestra estructura de datos. Su principio sugiere:
  • La tabla original debe ser reconstruida desde las tablas resultantes en las cuales ha sido partida.
  • Los beneficios de aplicar la 5FN asegura que no se haya creado ninguna columna extraña en las tablas y que su estructura sea del tamaño justo que tiene que ser.
  • Es una buena práctica aplicar la 5FN, cuando tenemos una extensa y compleja estructura de datos, en modelos pequeños no se recomienda usar.
En síntesis la quinta forma, nos dice que en modelos muy grandes donde tenemos muchas relaciones y entidades, nos sugiere que una vez que hayamos terminado la normalización de nuestro modelo, lo revisemos una vez más en busca de posibles errores de lógica en la normalización, para efectos de nuestro ejemplo que es un modelo sencillo no aplicaremos la quinta forma normal.

¿Qué es SQL?

SQL (Structured Query Language) es un lenguaje de programación estándar e interactivo para la obtención de información desde una base de datos y para actualizarla. Aunque SQL es a la vez un ANSI y una norma ISO, muchos productos de bases de datos soportan SQL con extensiones propietarias al lenguaje estándar. Las consultas toman la forma de un lenguaje de comandos que permite seleccionar, insertar, actualizar, averiguar la ubicación de los datos, y más. También hay una interfaz de programación.

Las bases de datos son la clave de que tengamos actualmente tantas aplicaciones rubustas que puedan (en parte) abastecer nuestras necesidades, por ejemplo el caso de Facebook o Google, ¿te imaginas un mundo sin bases de datos? No existirian las grandes empresas tech ni mucho menos Platzi, es por ello que las DB son muy importantes ya que en ella guardamos datos. Los datos por sí solos no son nada hasta que se contextualizan. Para realizar operaciones en una base de datos relacional es importante conocer los siguientes conceptos:

DDL (Data Definition Language):

Permite crear y modificar la estructura de una base de datos. CREATE: Utilizado para crear nuevas tablas, campos e índices. ALTER: Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos. DROP: Empleado para eliminar tablas e índices. TRUNCATE: Empleado para eliminar todos los registros de una tabla. COMMENT: Utilizado para agregar comentarios al diccionario de datos. RENAME: Tal como su nombre lo indica es utilizado para renombrar objetos. 

DML (Data Manipulation Language):

Permite recuperar, almacenar, modificar, eliminar, insertar y actualizar datos de una base de datos. SELECT: Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado. INSERT: Utilizado para cargar de datos en la base de datos en una única operación. UPDATE: Utilizado para modificar los valores de los campos y registros especificados DELETE: Utilizado para eliminar registros de una tabla de una base de datos. 

DCL (Data Control Language):

Permite crear roles, permisos e integridad referencial, así como el control al acceso a la base de datos. GRANT: Usado para otorgar privilegios de acceso de usuario a la base de datos. REVOKE: Utilizado para retirar privilegios de acceso otorgados con el comando GRANT. 

TCL (Transactional Control Language):

Permite administrar diferentes transacciones que ocurren dentro de una base de datos. 
COMMIT: Empleado para guardar el trabajo hecho. 
ROLLBACK: Utilizado para deshacer la modificación que hice desde el último COMMIT. 

¿Qué es la integridad referencial?

La integridad referencial es un sistema compuesto por reglas que permiten la garantía de las relaciones entre las filas de la tabla relacionadas para que sean válidas y que estas relaciones no se eliminen ni se modifiquen por error.



¿Qué es ACID?


Para empezar a definir ACID en el ámbito de las bases de datos, es necesario comprender el concepto de transacción. En las bases de datos, se denomina transacción a una única operación lógica ("de negocio"). Por ejemplo, es una sola transacción la acción de transferir fondos de una cuenta bancaria a otra, aún cuando involucra varios cambios en distintas tablas.
En 1970, Jim Gray definió las propiedades que necesitaba tener una transacción confiable, y desarrolló tecnologías para automatizarlas. Más tarde, en 1983, Andreas Reuter y Theo Härder crearon el término "ACID" para describir estas 4 propiedades.

ACID, letra por letra


Atomicidad
La Atomicidad requiere que cada transacción sea "todo o nada": si una parte de la transacción falla, todas las operaciones de la transacción fallan, y por lo tanto la base de datos no sufre cambios. Un sistema atómico tiene que garantizar la atomicidad en cualquier operación y situación, incluyendo fallas de alimentación eléctrica, errores y caidas del sistema.
Consistencia
La propiedad de Consistencia se asegura que cualquier transacción llevará a la base de datos de un estado válido a otro estado válido. Cualquier dato que se escriba en la base de datos tiene que ser válido de acuerdo a todas las reglas definidas, incluyendo (pero no limitado a) los constraints, los cascades, los triggers, y cualquier combinación de estos.
aIslamiento
El aislamiento ("Isolation" en inglés) se asegura que la ejecución concurrente de las transacciones resulte en un estado del sistema que se obtendría si estas transacciones fueran ejecutadas una atrás de otra. Cada transacción debe ejecutarse en aislamiento total; por ejemplo, si T1 y T2 se ejecutan concurrentemente, luego cada una debe mantenerse independiente de la otra.
Durabilidad
La durabilidad significa que una vez que se confirmó una transacción (commit), quedará persistida, incluso ante eventos como pérdida de alimentación eléctrica, errores y caidas del sistema. Por ejemplo, en las bases de datos relacionales, una vez que se ejecuta un grupo de sentencias SQL, los resultados tienen que almacenarse inmediatamente (incluso si la base de datos se cae inmediatamente luego).

ANSI/ISO SQL define los siguientes tipos de aislamiento:

Serializable
Este es el nivel más alto de aislamiento. En una base de datos con control concurrente basado en bloqueos, la serialización requiere que los bloqueos de lectura y escritura (que se adquieren en datos seleccionados) sean liberados al finalizar la transacción. También se pueden adquierir bloqueos de rango cuando se realiza un query SELECT con una cláusula WHERE, especialmente cuando se quieren evitar lecturas fantasma. En una base de datos con control concurrente no basado en bloqueos, no se necesitan los bloqueos; sin embargo, si el sistema detecta una colisión de escritura entre muchas transacciones concurrentes, sólo se permite el commit de una de estas transacciones.
Lecturas repetibles (repeatable reads)
En este nivel de aislamiento, un sistema de control de concurrencia basado en bloqueos mantiene los bloqueos de escritura y lectura (que se adquieren en datos seleccionados) hasta el final de la transacción. Sin embargo, no se gestionan los bloqueos de rango, por lo tanto podrían ocurrir lecturas fantasma.
Lecturas sobre commits (read commited)
En este nivel de aislamiento, un sistema de control de concurrencia basado en bloqueos mantiene los bloqueos de escritura (que se adquieren en datos seleccionados) hasta el final de la transacción, pero los bloqueos de lectura se liberan ni bien se realiza la operación de SELECT (y por lo tanto pueden ocurrir lecturas no-repetibles). Igual que el nivel anterior, no se permiten bloqueos de rango.
Lecturas sin commits (read uncommited)
Este es el nivel más bajo de aislamiento. En este nivel se permiten las lecturas sucias, por lo cual una transacción podría ver cambios de otra transacción que todavía tuvieron un commit.

¿Qué es el cloud computing?

El nuevo concepto de negocio en Internet también conocido como "computación en la nube"
El cloud computing es un término general que se refiere a la prestación de servicios alojados a través de Internet. Se trata de una tecnología avanzada que hace que todos los archivos, programas e información estén almacenados en Internet, como en una “nube”, siendo completamente irrelevante las capacidades de almacenaje de los ordenadores instalados por el cliente y prescindiendo así de los discos duros.

Ventajas del cloud computing

El cloud server (o servidor cloud) tiene diversas ventajas muy atractivas tanto para las empresas como para los usuarios individuales. Ya que no se necesita invertir en grandes infraestructuras ni en licencias, los pagos suelen ser mediante cuotas mensuales por uso sin coste adicional. Esto permite pagar solo por los recursos y cargas de trabajo que se utilizan. También cuenta con una gran accesibilidad. Dado que las aplicaciones SaaS se entregan a través de Internet, los usuarios pueden acceder a ellas desde cualquier dispositivo y lugar con conexión a Internet, pudiendo acceder a todos los archivos que se desee dónde y cómo se quiera.

Otros beneficios del cloud computing incluyen:

– Precios bajos y flexibles.
– Alta seguridad y privacidad.
– Posibilidad de trabajar sin necesitar una extensa capacidad de almacenaje.
– Agilidad y rapidez en el trabajo.
– Acceso ilimitado a toda la información que se desee.
– Inversión un producto innovador y revolucionario.

Servicios del cloud computing

IAAS O INFRAESTRUCTURA COMO SERVICIO

La infraestructura como servicio (IaaS) se trata del acceso a un uso de hardware que se encuentra en la nube. Ofrece al cliente un espacio de almacenaje de capacidad prácticamente ilimitada e infinita que únicamente se verá restringida dependiendo de la capacidad económica del propio servicio.

PAAS O PLATAFORMA COMO SERVICIO

La plataforma como servicio proporciona al usuario las herramientas necesarias para realizar desarrollos informáticos, pudiendo así crear aplicaciones y piezas de software sin necesitar estas herramientas en el ordenador. Entre sus ventajas se encuentra el ahorro de adquirir licencias para el desarrollo de herramientas y además no hay necesidad de preocuparse por el mantenimiento de éstas, ya que el propio servicio se hace cargo de su optimización.

SAAS O SOFTWARE COMO SERVICIO

El software como servicio es una modalidad fundamental en el cloud computing. Se trata de un modelo de distribución de software en el que un tercero proveedor aloja las aplicaciones y los pone a disposición de los clientes a través de Internet.

Modelos de cloud computing

Existen diversos modelos dependiendo de la privacidad que se desee.
– Nube pública: Se accede a los servicios de forma compartida. Que sean públicas no significa necesariamente que sean inseguras.
– Nube privada: Se trata de una nube de uso exclusivo y privado.
– Nube híbrida: Este modelo posee ambas características anteriores, pudiendo hacer combinaciones como que parte del servicio sea privado y otra compartida.

¿Qué es big data?

Big data es un término que describe el gran volumen de datos – estructurados y no estructurados – que inundan una empresa todos los días. Pero no es la cantidad de datos lo importante. Lo que importa es lo que las organizaciones hacen con los datos. El big data puede ser analizado para obtener insights que conlleven a mejores decisiones y acciones de negocios estratégicas.

Historia del big data y consideraciones actuales

Aunque el término “big data” es relativamente nuevo, la acción de recopilar y almacenar grandes cantidades de información para su posterior análisis se viene realizando desde hace muchos años. El concepto cobró impulso a principios de la década del 2000 cuando el analista de la industria Doug Laney articuló la definición ahora muy popular del big data como las tres Vs:
Volumen. Las organizaciones recopilan datos de diversas fuentes, incluyendo transacciones comerciales, medios sociales e información de sensores o que se transmite de una máquina a otra. En el pasado, almacenarlos habría sido un problema – pero nuevas tecnologías (como Hadoop) han aligerado la tarea.
Velocidad. Los datos se transmiten a una velocidad sin precedentes y se deben distribuir de manera oportuna. Etiquetas FID, sensores y la medición inteligente crean la necesidad de distribuir torrentes de datos casi en tiempo real.
Variedad. Los datos vienen en toda clase de formatos – desde datos numéricos estructurados en bases de datos tradicionales hasta documentos de texto no estructurados, correo electrónico, video, audio, datos de teletipo bursátil y transacciones financieras.
En SAS, consideramos otras dos dimensiones cuando se trata del big data:
Variedad. Además de las velocidades y variedades de datos cada vez mayores, los flujos de datos pueden ser muy inconsistentes con picos periódicos. ¿Es alguna tendencia en medios sociales? Las cargas de datos máximas diarias, de temporada y desencadenadas por eventos pueden ser difíciles de controlar. Y más aún con datos no estructurados.
Complejidad. Los datos de la actualidad provienen de múltiples fuentes, lo que hace difícil vincular, empatar, depurar y transformar datos entre diferentes sistemas. Sin embargo, es necesario conectar y correlacionar relaciones, jerarquías y múltiples vínculos de datos o sus datos se pueden salir de control en un segundo.



¿Por qué es importante el big data?

La importancia del big data no gira en torno a cuántos datos tiene usted, sino qué hace con ellos. Puede tomar datos de cualquier fuente y analizarlos para hallar respuestas que hagan posibles 1) reducciones de costos, 2) reducciones de tiempo, 3) desarrollo de nuevos productos y soluciones optimizadas, y 4) toma de decisiones inteligente. Cuando se combina el big data con analítica poderosa, se pueden realizar tareas relacionadas con negocios, tales como:

  • Determinar las causas de origen de fallos, problemas y defectos casi en tiempo real.
  • Generar cupones en el punto de venta basados en los hábitos de compra del cliente.
  • Recalcular portafolios de riesgo completos en minutos.
  • Detectar conducta fraudulenta antes de que afecte a su organización.

    ¿DE DÓNDE VIENEN LOS DATOS?

    La información disponible a nivel mundial han crecido de manera exponencial en los últimos tiempos. Pero… ¿de dónde vienen esos datos? Hay múltiples fuentes. Destacaremos las siguientes:

    · Producidos por personas. Mandar un email, escribir un comentario en Facebook, contestar a una encuesta telefónica, meter información en una hoja de cálculo, responder a un WhatsApp, coger los datos de contacto de un cliente, hacer clic en un enlace de Internet… Infinidad de acciones que realizamos en el día a día suponen una fuente de datos inmensa.

    · Entre máquinas. Sí, entre máquinas también se comparten datos directamente, en lo que se conoce igualmente como M2M, que viene del inglés «machine to machine». Así, los termómetros, parquímetros y sistemas de riego automático de las ciudades, los GPS de vehículos y teléfonos móviles, las máquinas expendedoras de bebidas y alimentos en un hospital, o los contadores de electricidad de las viviendas, por poner unos pocos ejemplos, se comunican a través de dispositivos con otros aparatos, a los que transmiten los datos que van recogiendo. Las redes de comunicación para llevar a cabo estas acciones son muy variadas. Entre las más conocidas están el Wifi, el ADSL, la fibra óptica y el Bluetooth.

    · Biométricas. Los datos que tienen como origen artefactos como sensores de huellas dactilares, escáneres de retina, lectores de ADN, sensores de reconocimiento facial o reconocimiento de voz. Su uso es muy extendido en materia de seguridad en todas sus variantes (privada, corporativa, militar, policíaca, de servicios de inteligencia, etcétera).

    · Marketing web. Nuestros movimientos en la Red están sujetos a todo tipo de mediciones que tienen como objeto estudios de marketing y análisis de comportamiento. Por ejemplo, cuando se realizan mapas de calor basados en el rastreo del movimiento del cursor por parte de los usuarios de una web, en la detección de la posición de la página, o en el seguimiento de desplazamiento vertical a lo largo de esta. Con esos datos se llega a conclusiones tales como qué partes de una página atraen más al usuario, dónde hace clic o en qué zona de esta pasa más tiempo.
    · Transacciones de datos. El traspaso de dinero de una cuenta bancaria a otra, la reserva de un billete de avión o añadir un artículo a un carrito de compra virtual de un portal de comercio electrónico, serían algunos ejemplos.

No hay comentarios.:

Publicar un comentario

JavaScript

JavaScript