domingo, 20 de junio de 2021

Seguridad de la información

 ¿Qué es la seguridad de información?

La seguridad informática es una disciplina que se encarga de proteger la integridad y la privacidad de la información almacenada en un sistema informático. De todas formas, no existe ninguna técnica que permita asegurar la inviolabilidad de un sistema.



Tablas

 ¿Qué son las tablas?

En bases de datos, una tabla es el lugar donde se almacenan datos, que tienen características similares y conforman la estructura de la base de datos. Los datos que pertenecen a un mismo elemento se organizan en columnas o campos. Se llama registro, a cada una de las filas o tuplas, que forman una tabla.



Procedimientos almacenados

 ¿Qué son procedimientos almacenados?

Los procedimientos almacenados y funciones son nuevas funcionalidades de la versión de MySQL 5.0. Un procedimiento almacenado es un conjunto de comandos SQL que pueden almacenarse en el servidor.



Vistas

 ¿Qué son las vistas?

Las vistas en MySQL (VIEWS) son tablas virtuales.

Solo muestran los datos que están almacenados en otras tablas (que sí son reales). Siendo así, crear vistas en MySQL significa mostrar información de una fuente de origen sin necesidad de mostrar ni exponer a la fuente en sí.



Consultas.

¿Qué son las consultas?

 En bases de datos, una consulta es el método para acceder a los datos en las bases de datos. Con las consultas se puede modificar, borrar, mostrar y agregar datos en una base de datos. Para esto se utiliza un lenguaje de consultas. El lenguaje de consultas a base de datos más utilizado es el SQL.



DB

 Una base de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido; una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta.


Hay programas denominados sistemas gestores de bases de datos, abreviado SGBD (del inglés Database Management System o DBMS), que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de estos DBMS, así como su utilización y administración, se estudian dentro del ámbito de la informática.

Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas; También son ampliamente utilizadas en entornos científicos con el objeto de almacenar la información experimental.

Aunque las bases de datos pueden contener muchos tipos de datos, algunos de ellos se encuentran mutuamente protegidos por las leyes de varios países. Por ejemplo en España, los datos personales se encuentran protegidos por la Ley Orgánica de Protección de Datos de Carácter Personal (LOPD), en México por la Ley Federal de Transparencia y Acceso a la Información Pública Gubernamental y en Argentina la Ley de Protección de Datos Personales.1

En Argentina el Código Penal sanciona ciertas conductas relacionadas con una base de datos: acceder ilegítimamente a un banco de datos personales, proporcionar o revelar información registrada en un archivo o en un banco de datos personales cuyo secreto estuviere obligado a guardar por ley o insertar o hacer insertar datos en un archivo de datos personales. Si el autor es funcionario público, sufre además pena de inhabilitación especial.


Las bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que se esté manejando, la utilidad de las mismas o las necesidades que satisfagan.

Según la variabilidad de la base de datos

Bases de datos estáticas

Son bases de datos únicamente de lectura, utilizadas principalmente 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, tomar decisiones y realizar análisis de datos para inteligencia empresarial.

Bases de datos dinámicas

Son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización, borrado y edición de datos, además de las operaciones fundamentales de consulta. Un ejemplo, puede ser la base de datos utilizada en un sistema de información de un supermercado. 2

Según el contenido

Bases de datos bibliográficas

Solo contienen una subrogante (representante) de la fuente primaria, que permite localizarla. Un registro típico de una base de datos bibliográfica contiene información sobre el autor, fecha de publicación, editorial, título, edición, de una determinada publicación, etc. Puede contener un resumen o extracto de la publicación original, pero nunca el texto completo, porque si no, estaríamos en presencia de una base de datos a texto completo (o de fuentes primarias —ver más abajo). Como su nombre lo indica, el contenido son cifras o números. Por ejemplo, una colección de resultados de análisis de laboratorio, ayuda mucho a la redundancia de datos.

Bases de datos de texto completo

Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una colección de revistas científicas.





DBA

Un administrador de base de datos (DBA) es el técnico de información responsable de dirigir o realizar todas las actividades relacionadas con el mantenimiento de un entorno de base de datos exitoso. Un DBA se asegura de que la base de datos de una organización y sus aplicaciones relacionadas funcionen de manera funcional y eficiente.


Importancia de un DBA

Si su organización utiliza un sistema de administración de bases de datos (DBMS) para cargas de trabajo de misión crítica, es importante emplear uno o más administradores de bases de datos para garantizar que las aplicaciones tengan acceso continuo e ininterrumpido a los datos. La mayoría de las organizaciones modernas de todos los tamaños utilizan al menos un DBMS y, por lo tanto, la necesidad de administradores de bases de datos es hoy mayor que nunca.

El DBA es responsable de comprender y administrar el entorno general de la base de datos. Al desarrollar e implementar un plan estratégico a seguir al implementar bases de datos dentro de su organización, los DBA son fundamentales para la eficacia continua de las aplicaciones modernas que dependen de las bases de datos para el almacenamiento y el acceso a los datos.



Funciones y responsabilidades

Un DBA puede asumir, y asume, muchos roles y responsabilidades diferentes dentro del departamento de TI que involucran sistemas y aplicaciones de bases de datos. Al adoptar un nuevo DBMS, el DBA es responsable de diseñar, implementar y mantener el sistema de base de datos. A menudo, esto incluye instalar el DBMS y configurar la infraestructura de TI para permitir que las aplicaciones accedan a las bases de datos.

El DBA también debe establecer políticas y procedimientos relacionados con la gestión, seguridad, mantenimiento y uso del sistema de gestión de la base de datos. El grupo DBA crea materiales de capacitación e instruye a los empleados sobre el uso y acceso adecuados del sistema de administración de bases de datos.

Cuando surgen problemas, el DBA es el punto focal para la resolución, incluida la resolución de problemas, el análisis de la causa raíz, el ajuste fino y la optimización del rendimiento de las tareas y los programas que acceden a la base de datos.

El DBA es responsable de garantizar que las bases de datos y los datos tengan una copia de seguridad adecuada y se puedan recuperar correcta y rápidamente en caso de falla. Además, el DBA garantiza que las bases de datos estén protegidas y seguras. El DBA promulga medidas para mantener la integridad de la base de datos en términos de precisión de los datos y se asegura de que los usuarios no autorizados no puedan acceder a los datos.

El DBA con frecuencia se ve involucrado en otros proyectos como experto en la materia en la base de datos. Debido a que las bases de datos están en el centro de la mayoría de los proyectos de desarrollo de aplicaciones modernas, el DBA participa en la integración de la base de datos y su uso en una variedad de proyectos de TI. Esta exposición a muchas tecnologías y experiencias diferentes puede convertir al DBA en un técnico de TI valioso no solo para problemas relacionados con la base de datos, sino también para otras tecnologías.

Además, los DBA deben ser buenos comunicadores. Necesitan poder conversar y trabajar con programadores de aplicaciones, usuarios finales comerciales, gerentes comerciales y de TI y otros administradores de bases de datos.


Estructura de una Base de datos

 


Estructura de una Base de Datos:
Tablas
consultas
Informes
formularios





Tablas
cada fila de la tabla es un registro con un ID único

llamado clave. Las columnas de la tabla contienen

atributos de los datos, y cada registro

generalmente tiene un valor para cada atributo, lo

que facilita el establecimiento de las relaciones

entre los puntos de datos.




Consultas:

Las consultas son los objetos de una base de datos que

permiten recuperar datos de una tabla, modificarlos e incluso

almacenar el resultado en otra tabla. Existen varios tipos

de consultas: Consultas de selección. Son

las consultas que extraen o nos muestran datos.




Informes:


Un informe es un objeto de base de

datos que resulta útil para presentar la

información de la base de datos con alguno

de los siguientes propósitos: Mostrar o

distribuir un resumen de los datos. Archivar

instantáneas de los datos. Aportar detalles

sobre un registro concreto.




formularios:

Un formulario es un objeto de base

de datos que se puede usar para

escribir, modificar o mostrar

los datos de una tabla o consulta.

Los formularios se pueden usar para

controlar el acceso a los datos, como

qué campos o filas de datos se van a

mostrar.



Tipos de Datos

 Tipos de datos


Tipos de Datos

Para programar, es necesario identificar a qué tipo de datos pertenecen cada una de las variables o constantes, ya sean estos números, letras, palabras, frases, entre otros y cada uno corresponde a un tipo de dato, que requerirá de una manipulación específica para obtener los resultados deseados. Cada lenguaje de programación dispone de un conjunto de tipos de datos que puede manipular; sin embargo los que aquí se presentan corresponden a aquellos que todos los lenguajes de programación disponen, y que se conocen como tipos de datos estándares. La siguiente tabla presenta una descripción de éstos. 

Tipos de Datos
Tipos de datos Bytes Valor mínimo Valor máximo
TINYINT 1 -128 127
SMALLINT 2 -32768 32,767
MEDIUMINT 3 -8388608 8,388,607
INT o INTEGER 4 -2,147,483,648 2,147,483,647
BIGINT 8 -9223372036854775808 9223372036854775807
Veamos un ejemplo para comprender mejor qué tipo de dato nos conviene elegir para
cada campo.
Si necesitamos definir un campo para almacenar la "edad" de nuestros usuarios, sería
suficiente con asignar a ese campo un tipo de dato TINYINT, que permite almacenar
como máximo el valor de 127 (es decir, por mas que tenga tres dígitos, no nos dejará
almacenar un 999, ni siquiera un 128, solo un número hasta el número 127 inclusive).
Como la edad posible de las personas queda incluida en ese rango, es suficiente
un TINYINT.
Ahora bien, si queremos definir el tipo de dato para el campo id (identificador) de la
tabla de productos de un gran mercado que vende varios miles de artículos diferentes,
ya no séra suficiente con un TINYINT, y deberemos conocer con mayor precisión la
cantidad de artículos distintos que comercializa (en la actualidad y la cantidad prevista
en un futuro próximo, para que nuestro sistema de almacenamiento no quede obsoleto
rápidamente).

Modelo Entidad Relacion

                                                Modelo entidad-relación



Un modelo entidad-relación es una herramienta para el modelo de datos, la cual facilita la representación de entidades de una base de datos.​ Fue definido por Peter Chen en 1976. 

Las bases de datos son un gran pilar de la programación actual, ya que nos permiten almacenar y usar de forma rápida y eficiente cantidades ingentes de datos con cierta facilidad. En la actualidad se usa de forma mayoritaria las bases de datos relacionales (dominadas por distintos gestores a través del lenguaje SQL, en gran medida).

Pero ahora vamos a dar un pequeño repaso a lo más esencial del modelo entidad-relación, que es y ha sido durante años la mejor forma de representar la estructura de estas bases de datos relacionales (o de representar sus esquemas).

¿Qué es el modelo entidad-relación?

Como ya he comentado este modelo es solo y exclusivamente un método del que disponemos para diseñar estos esquemas que posteriormente debemos de implementar en un gestor de BBDD (bases de datos). Este modelo se representa a través de diagramas y está formado por varios elementos.

Este modelo habitualmente, además de disponer de un diagrama que ayuda a entender los datos y como se relacionan entre ellos, debe de ser completado con un pequeño resumen con la lista de los atributos y las relaciones de cada elemento.

Elementos del modelo entidad-relación

Entidad

Las entidades representan cosas u objetos (ya sean reales o abstractos), que se diferencian claramente entre sí.

Para poder seguir un ejemplo durante el artículo añadiré ejemplos sobre un taller mecánico, donde se podría crear las siguientes entidades:

  • Coches (objeto físico): contiene la información de cada taller.
  • Empleado (objeto físico): información de los trabajadores.
  • Cargo del empleado (cosa abstracta): información de la función del empleado.

Estas entidades se representan en un diagrama con un rectángulos, como los siguientes.

Entidades

Atributos

Los atributos definen o identifican las características de entidad (es el contenido de esta entidad). Cada entidad contiene distintos atributos, que dan información sobre esta entidad. Estos atributos pueden ser de distintos tipos (numéricos, texto, fecha...).

Siguiendo el ejemplo de antes podemos analizar los atributos de nuestra entidad "Coches", que nos darán información sobre los coches de nuestro supuesto taller.

Unos posibles atributos serían los siguientes: número de chasismatrículaDNI del propietariomarcamodelo y muchos otros que complementen la información de cada coche.

Los atributos se representan como círculos que descienden de una entidad, y no es necesario representarlos todos, sino los más significativos, como a continuación.

sábado, 19 de junio de 2021

Normalización

 Normalización

¿Que es la Normalización? De un diseño de bases de datos que se aplica a las bases de datos relacionales para evitar las redundancias. Sin embargo es el proceso de elaborar, aplicar y mejorar las normas que se emplean en distintas actividades científicas, industriales o económicas, con el fin de ordenarlas y mejorarlas.


Fases de la normalización:

Primera forma normal (1FN)

Una tabla en una base de datos relacional está en la primera forma normal cuando se cumplen estas condiciones:

  • Todos los datos son atómicos.
  • Todas las columnas contienen el mismo tipo de datos.


Segunda forma normal (2FN)

Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna clave dependen de forma completa de la clave principal. Es decir que no existen dependencias parciales. (Todos los atributos que no son clave principal deben depender únicamente de la clave principal).

Tercera forma normal (3FN)

La tabla se encuentra en 3FN si es 2FN y si no existe ninguna dependencia funcional transitiva entre los atributos que no son clave.

Un ejemplo de este concepto sería que, una dependencia funcional X->Y en un esquema de relación R es una dependencia transitiva si hay un conjunto de atributos Z que no es un subconjunto de alguna clave de R, donde se mantiene X->Z y Z->Y.


Forma normal de Boyce-Codd (FNBC)

La llamada forma normal de Boyce-Codd es una versión más fuerte que la tercera. Si en esta se afirma que: • Ningún atributo no-clave puede depender de forma transitiva de una clave candidata. En la presente forma normal se ha de cumplir que: • Ningún atributo puede depender de forma transitiva de una clave candidata, a no ser que se trate de una dependencia trivial. La forma normal de Boyce-Codd solo es relevante para las tablas con varias claves candidatas compuestas, en las que las claves se superponen, es decir, para aquellos casos en los que un atributo es común a dos claves candidatas (dos claves candidatas comparten un atributo).


Cuarta forma normal (4FN)


Para que una tabla esté en la cuarta forma normal, ha de estar en la de Boyce-Codd y
cumplir, además, con esta condición:

No hay dependencias multivaluadas a no ser que sean triviales.
La dependencia multivaluada (multivalued dependency) o multivalor tiene lugar siempre
que dos atributos sin relación entre sí, dependan del mismo atributo. 


Quinta forma normal (5FN)

Una tabla está en la 5FN cuando satisface las condiciones de la cuarta y cumple,
además, esta condición:

La tabla no puede fragmentarse más sin que se pierda información.

La tabla de aquí abajo presenta qué cualificación aporta cada trabajador a cada
proyecto de software –de este modo, puede deducirse de forma indirecta qué nivel de
conocimiento requiere cada proyecto.


objetivos:

  • Simplificación: se trata de reducir el número de modelos y de normas dependiendode cada , para quedarse únicamente con los más necesarios.
  • Unificación: se trata de permitir los intercambios y las comparaciones a nivelinternacional.
  • Especificación: se persigue evitar errores de identificación, creando un lenguajeclaro y preciso.







Recursos de una Base de Datos

 Recursos de una Base de Datos

Los productos de base de datos que utiliza IBM® Integration Bus también registran información que podría resultar útil si tiene algún problema con el acceso a los mismos.

Consulte la documentación del producto de base de datos para obtener información detallada sobre las anotaciones y otras opciones de determinación de problemas.


Una Base de Datos es una herramienta que funciona como “almacén”, es decir, guarda grandes cantidades de información de forma organizada para poder encontrarla y utilizarla de manera fácil y ordenada. Por ejemplo, una agenda con nombres, direcciones y números telefónicos es una base de datos.

Los objetos estructurados se agrupan en clases.  No es necesaria una transformación del modelo de objetos hecho en un lenguaje de programación distinto pues las clases serán las mismas que en el modelo de bases de datos. Se requiere mucha abstracción para convertir objetos del mundo real a tablas en el modelo. Cabe resaltar que muchas organizaciones desean utilizar esta tecnología orientada a objetos.


Administración de objetos

Retomando el tema del interés de las empresas por utilizar esta tecnología, cabe resaltar que muchas de ellas utilizan un modelo de base de datos relacional y el proceso para migrarla a una base de datos orientada a objetos es la siguiente:

  • Crear una interface orientada a objetos encima de la base de datos relacional. No existe interrupción del sistema para la migración de datos y no existe perdida semántica de la información.
  •  Los datos deben ser migrados de acuerdo con el motor de base de datos (por ejemplo Oracle 7 a 8), y las características orientadas a objetos solo pueden ser explotadas con la modificación o extensión del esquema.
  • La migración de la base de datos en donde un nuevo esquema bajo el OODBMS es creado y los datos son migrados de la base de datos relacional a la orientada a objetos.

En las bases de datos orientadas a objetos existen ciertos paradigmas:

  • Encapsulación: Propiedad que permite hacer privada u oculta alguna información al resto de los objetos, impidiendo algunos conflictos posteriores.
  • Herencia: Propiedad a través de la cual los objetos heredan comportamientos de otra tabla padre.
  • Polimorfismo: Propiedad de una operación mediante la cual, ésta puede ser aplicada a distintos tipos de objetos.


Administración de recursos

  • Los datos son los principales recursos con los que cuenta una base de datos. El almacenamiento de los mismos es la tendencia más importante en la administración de la información en las organizaciones, pero al ser amplia la cantidad de datos que podemos encontrar en el entorno se presentan problemas, los cuales merecen atención:
  • La cantidad de datos que se maneja puede ser enorme, ya que las organizaciones cuentan con datos ya almacenados, estos deben permanecer a pesar de los constantes nuevos ingresos de datos al sistema.
  • Existen datos dispersados en muchas organizaciones, en diferentes métodos y dispositivos de recopilación.
  • Solo una parte de todos los datos que se recolectan dan la utilidad que espera obtener de ellos.
  • Para lograr eficiencia en la toma de decisiones, es necesario recurrir a datos externos ya que los conseguidos no dan la información que se necesita.
  • Los datos en bruto, son en muchas ocasiones de difícil acceso, ya que están almacenados en diferentes sistemas de cómputo, bases de datos, formatos, lenguajes humanos y de computador.
  • Las leyes relativas a los datos obtenidos, pueden diferir de un lugar a otro para su aplicación, así los datos conseguidos no pueden tener aplicabilidad global.
  • Se pueden presentar problemas de seguridad, calidad e integridad con la recopilación y el análisis de datos.
  • Existen problemas con la administración de datos por el gigante número de estos disponibles.



SQL

 SQL

SQL por sus siglas en inglés significa Lenguaje de Consulta Estructurada (Structured Query Language), es un lenguaje de programación diseñado para actualizar, obtener, y calcular información en bases de datos relacionales.

SQL es un lenguaje de dominio específico utilizado en programación diseñado para administrar, y recuperar información de sistemas de gestión de bases de datos relacionales. Sin embargo, SQL se utiliza para comunicarse con una base de datos. ... Algunos sistemas de gestión de bases de datos relacionales comunes que utilizan SQL son: Oracle, MySQL, Microsoft SQL Server, Access, Ingres, etc.


Los orígenes del SQL están ligados a los de las bases de datos relacionales y es importante porque permite realizar consultas en la base de datos y así poder obtener alguna información que deseemos. Por lo tanto, SQL es el principal medio para el acceso a la información de las bases de datos en cualquier proyecto. Con este lenguaje hacemos las tareas más comunes, denominadas CRUD (Crear, Leer, Actualizar y Eliminar, por sus siglas en inglés).


Existen 7 razones para aprender SQL y son:

  1. SQL está en todas partes SQL es para las empresas lo que la fuerza es para los Jedi: está en todas partes, fluye entre nosotros y nos rodea.
  2. SQL es fácil de aprender (al menos lo fundamental), y si lo comparas con los beneficios que aporta dominarlo, invertir en aprender bien SQL es extremadamente rentable.
  3. Es un conocimiento portable: no te ata a ningún fabricante Una de las grandes ventajas de SQL frente a otros lenguajes es que es de uso transversal.
  4. SQL nació a finales del año 70 en los laboratorios de IBM (nada menos) y se empezó a explotar comercialmente por Oracle (otros dones Nadie ¿verdad?) en 1979, pero sus orígenes teóricos se remontan al modelo relacional propuesto por E. F. Codd en 1970. 
  5. SQL nunca cambia Si como desarrollador te estresan los cambios, SQL es al desarrollo lo que el oro a la inversión financiera. Esto es, un valor seguro. Cada fabricante lo implementa de manera distinta, pero se suelen mantener muy cerca del estándar, y el núcleo duro de SQL apenas cambia.
  6. Está (muy) bien valorado por las empresas Si ya los buenos desarrolladores están demandados, un experto en SQL es de lo más valorado y apreciado en el mundillo tecnológico. 
  7. La información es poder Ya se ha mencionado en el punto anterior, pero esto se merece su propio punto y además queremos recalcártelo por si no te había quedado claro. La información es poder. 


SQL se divide en tres partes

  • DDL (Lenguaje de definición de datos)
  • DML (Lenguaje de manipulación de datos)
  • DCL (Lenguaje de control de datos)



SENTENCIA:

DDL (definición de datos)

CREATE TABLE

DROP TABLE

ALTER TABLE

CREATE VIEW

DROP VIEW

CREATE INDEX

 DROP INDEX

CREATE SYNOYM

DROP SYNONYM

DML (manipulación de datos)

SELECT

INSERT

DELETE

UPDATE

DCL (control de acceso)

GRANT

REVOKE

Control de transacciones

COMMIT

ROLLBACK



Diccionarios de Datos

 Diccionarios de Datos


El diccionario de datos es un listado organizado de todos los datos pertinentes al sistema, con definiciones precisas y rigurosas para que tanto el usuario como el analista tengan un entendimiento común de todas las entradas, salidas, componentes de los almacenes y cálculos intermedios. Contiene las características lógicas de los sitios donde se almacenan los datos del sistema, incluyendo nombre, descripción, alias, contenido y organización. También identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información; se desarrolla durante el análisis de flujo de datos y auxilia a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño.


ELEMENTO DATO
Son los bloques básicos para todos los demás datos del sistema, por si mismos no le dan un significado suficiente al usuario. Se agrupan para formar una estructura de datos.

Descripción: Cada entrada en el diccionario consiste de un conjunto de detalles que describen los datos utilizados o producidos por el sistema. Cada artículo se identifica por un nombre de dato, descripción, sinónimo y longitud de campo y tiene valores específicos que se permiten para éste en el sistema estudiado.



Cada uno está identificado con:

  • Un nombre
  • Descripción
  • Alias
  • Valores de los datos

ESTRUCTURA DE DATOS:

Es un grupo de datos que están relacionados con otros y que en conjunto describen un componente del sistema.

Descripción: Se construyen sobre cuatro relaciones de componentes. Se pueden utilizar las siguientes combinaciones ya sea individualmente o en conjunción con alguna otra.
Relación secuencial: define los componentes que siempre se incluyen en una estructura de datos.
Relación de selección: (uno u otro), define las alternativas para datos o estructuras de datos incluidos en una estructura de datos.
Relación de iteración: (repetitiva), define la repetición de un componente.
Relación opcional: los datos pueden o no estar incluidos, o sea, una o ninguna iteración.

jueves, 17 de junio de 2021

Clave Primaria y Foránea

 Clave Primaria y Foránea

LLAVE PRIMARIA.

Una llave primaria es un campo único , que no se puede repetir y sirve para identificar los registros de una tabla como distintos, además sirve para hacer relaciones ( uno a uno, uno a muchos, muchos a muchos entre tablas), sin las llaves primaria las bases de dato relacionales no tendrían sentido y siempre existiría información repetida.

Para que una tabla califique como tabla relacional debe tener una llave primaria, Una tabla sólo puede haber una llave primaria por tabla.


La llave primaria para cada tabla es almacenada en un índice. El índice se utiliza para asegurarse que cada registro (fila) es único.

La selección de una clave primaria es muy importante en el diseño de una base de datos, ya que es un elemento clave de los datos que facilita la unión de tablas y el concepto total de una base de datos relacional.


LLAVE FORÁNEA.

Es uno o mas campos de un tabla que hacen referencia al campo o campos de llave principal de otra tabla, una llave foránea indica como esta relacionadas las tablas. Los datos en los campos de ambas deben coincidir, aunque los nombres de los campos no sean los mismos.

Una clave foránea es simplemente un campo en una tabla que se corresponde con la clave primaria de otra tabla.
Las claves foráneas tienen que ver precisamente con la integridad referencial, lo que significa que si una clave foránea contiene un valor, ese valor se refiere a un registro existente en la tabla relacionada.
 
Una tabla puede tener relaciones con varias tablas a través de distintas claves foráneas, e incluso referenciarse a si misma (clave foránea recursiva).


DIFERENCIAS ENTRE LLAVE PRIMARIA Y LLAVE FORANEA

La clave primaria identifica un registro único de una tabla.
La clave foránea relaciona los datos de un registro de una tabla con los de otra, o con un registro distinto de la misma tabla.




martes, 8 de junio de 2021

Arreglos de disco

Un arreglo redundante de discos independientes (RAID por sus siglas en inglés) es típicamente implementado para la protección de la información o incremento del desempeño al acceso de los discos duros. Existen varios tipos de arreglos y los más usados en la industria son: 0, 1, 5 y el 0+1 ó 10, siendo este último el de mayor desempeño, protección y costo.

Actualmente prevalece el uso de este tipo de configuraciones para la protección de la información, pero la industria del almacenamiento y las aplicaciones están evolucionando. Hoy en día el fabricante de software o la industria del hardware nos entregan soluciones que nos permiten despreocuparnos en cierto grado en la definición del tipo de arreglo a utilizar o para qué archivos en específico los necesitamos. Obviamente estas soluciones son las de mayor costo y mejor desempeño.

Desafortunadamente, sólo aquellas empresas con enormes presupuestos para IT pueden adquirir soluciones de este tipo. En este artículo se explicará cómo los arreglos de disco nos ayudan no sólo a proteger la información, sino también a incrementar el desempeño de nuestras aplicaciones. Primero daremos una breve explicación de qué son los arreglos de discos y los tipos más populares para implementar. Después daremos una recomendación para la configuración de arreglos en la base de datos más comunes que podemos encontrar en el mercado.

¿Qué son los Arreglos de Discos RAID?

RAID proviene del acrónimo del inglés “Redundant Array of Independent Disks”, que significa matriz redundante de discos independientes. RAID es un método de combinación de varios discos duros para formar una unidad lógica única en la que se almacenan los datos de forma redundante. Ofrece mayor tolerancia a fallos y más altos niveles de rendimiento que un sólo disco duro o un grupo de discos duros independientes.

RAID 0. Este arreglo es conocido como distribuido (striping), porque utiliza un sistema que utiliza a los discos como uno solo, teniendo un conjunto de cabezas independientes para su uso. La información es dividida en bloques de datos que se distribuyen en todos los discos del arreglo.

 







RAID1. Este tipo de arreglo se conoce como Espejeo (Mirroring), porque su conjunto de discos los utiliza como espejos. Ofrece el nivel de protección más alto, pues uno tiene copia idéntica de la información de cada disco.

RAID5. Este tipo de arreglo se denomina también como distribuido con paridad. Este tipo de arreglos distribuye la información en todo el conjunto de discos. A diferencia del RAIDø, RAID5 elabora un bit de paridad con el cual es posible reconstruir la información del arreglo en caso de la pérdida de alguno de los discos.

Raid10 (0+1). Este tipo de arreglo es una mezcla del arreglo distribuido y espejeo. La información se distribuye en un conjunto de discos como un RAIDø y, a su vez, este conjunto de discos es espejeado a otro conjunto de discos como un RAID1. RAID10 provee el nivel de protección y desempeño más alto para escritura y lectura que cualquier otro arreglo, debido a que contiene los beneficios de los arreglos distribuidos y espejo. Su único problema es el costo de implementación, al tener que usar siempre el doble discos.


Plan director de seguridad

La información es un activo importante para las empresas, es fundamental para el negocio: facturas, informes, bases de datos de clientes, pedidos, etc. Podemos decir que las empresas basan su actividad en sistemas de información con soporte tecnológico (ordenadores, tabletas, página web). Por eso proteger los sistemas de información es proteger el negocio. Para garantizar la seguridad de la información del negocio se necesita llevar a cabo una gestión planificada de actuaciones en materia de Ciberseguridad, tal y como se realiza en cualquier otro proceso productivo de la organización.

¿Qué es el plan director?

Un Plan director de Seguridad consiste en la definición y priorización de un conjunto de proyectos en materia de seguridad de la información con el objetivo de reducir los riesgos a los que está expuesta la organización hasta unos niveles aceptables, a partir de un análisis de la situación inicial.

Es fundamental para la realización de un buen Plan director de Seguridad, en adelante PDS, que se alinee con los objetivos estratégicos de la empresa, incluya una definición del alcance e incorpore las obligaciones y buenas prácticas de seguridad que deberán cumplir los trabajadores de la organización así como terceros que colaboren con ésta.

Los proyectos que componen el Plan director de Seguridad varían en función de diversos factores relacionados como:

·         El tamaño de la organización

·         El nivel de madurez en tecnología

·         El sector al que pertenece la empresa

·         El contexto legal que regula las actividades de esta

·         La naturaleza de la información que manejamos

·         El alcance del proyecto

·         Otros aspectos organizativos

Estos factores determinarán la magnitud y complejidad del Plan director de Seguridad resultante, siempre debemos tener presente que un Plan director de Seguridad, se basa en la mejora continua. Por tanto cuando hayamos finalizado debemos comenzar de nuevo el ciclo.



Transacción Y Concurrencia

El control de transacciones concurrentes en una base de datos brinda un eficiente desempeño del Sistema de Base de Datos, puesto que permite controlar la ejecución de transacciones que operan en paralelo, accesando a información compartida y, por lo tanto, interfiriendo potencialmente unas con otras. El hecho de reservar un asiento en un avión mediante un sistema basado en aplicaciones web, cuando decenas de personas en el mundo pueden reservarlo también, nos da una idea de lo importante y crucial que es el control de concurrencia en un sistema de base de datos a mediana o gran escala.

Otro ejemplo en el que podemos observar la incidencia del control de concurrencia en el siguiente: en una Base de Datos bancaria podría ocurrir que se paguen dos cheques en forma simultánea sobre una cuenta que no tiene saldo suficiente para cubrirlos en su totalidad, esto es posible evitarlo si se tiene un control de concurrencia.

Transacciones

Los sistemas que tratan el problema de control de concurrencia permiten que sus usuarios asuman que cada una de sus aplicaciones se ejecutan atómicamente, como si no existieran otras aplicaciones ejecutándose concurrentemente. Esta abstracción de una ejecución atómica y confiable de una aplicación se conoce como una transacción.

Un algoritmo de control de concurrencia asegura que las transacciones se ejecuten atómicamente controlando la intercalación de transacciones concurrentes, para dar la ilusión de que las transacciones se ejecutan serialmente, una después de la otra, sin ninguna intercalación. Las ejecuciones intercaladas cuyos efectos son los mismos que las ejecuciones seriales son denominadas serializables y son correctos ya que soportan la ilusión de la atomicidad de las transacciones.

El concepto principal es el de transacción. Informalmente, una transacción es la ejecución de ciertas instrucciones que accesan a una base de datos compartida. El objetivo del control de concurrencia y recuperación es asegurar que dichas transacciones se ejecuten atómicamente, es decir: Cada transacción accede a información compartida sin interferir con otras transacciones, y si una transacción termina normalmente, todos sus efectos son permanentes, en caso contrario no tiene afecto alguno.


Propiedades fundamentales de una transacción

Atomicidad: Se refiere al hecho de que una transacción se trata como una unidad de operación.

Consistencia: La consistencia de una transacción es simplemente su correctitud. En otras palabras, una transacción es un programa correcto que lleva a la base de datos de un estado consistente a otro con la misma característica.

Aislamiento: Una transacción en ejecución no puede revelar sus resultados a otras transacciones concurrentes antes de finalizar.

Permanencia: Es la propiedad de las transacciones que asegura que una vez que una transacción finaliza exitosamente, sus resultados son permanentes y no pueden ser borrados de la base de datos por alguna falla posterior.

En esencia: Lo que se persigue con el procesamiento de transacciones es, por una parte obtener una transparencia adecuada de las acciones concurrentes a una base de datos y por otra, manejar adecuadamente las fallas que se puedan presentar en una base de datos.


Archivo Log

En informática, se usa el término registro, log o historial de log para referirse a la grabación secuencial en un archivo o en una base de datos de todos los acontecimientos (eventos o acciones) que afectan a un proceso particular (aplicación, actividad de una red informática, etc.). De esta forma constituye una evidencia del comportamiento del sistema.

Por derivación, el proceso de generación del log se le suele llamar guardar, registrar o loguear (un neologismo del inglés logging) y al proceso o sistema que realiza la grabación en el log se le suele llamar logger o registrador.

Generalmente los acontecimientos vienen anotados con:

·         El momento exacto o data (fecha, hora, minuto, segundo) en el que ocurrió lo que permite analizar paso a paso la actividad.

·         Una o más categorizaciones del acontecimiento registrado. Es frecuente usar categorías distintas para distinguir la importancia del acontecimiento estableciendo distintos niveles de registro los cuales suelen ser: depuración, información, advertencia y error.

Aplicaciones

Tener un registro de todos los acontecimientos que han ido sucediendo es muy útil. Ejemplos de uso:

·        Análisis forense.

·        Detección de intrusos.

·   Depuración de errores. Por ejemplo, el análisis, normalmente estadístico, de los registros permite hacer hipótesis sobre los errores de un sistema.

·  Monitorización. Por ejemplo, averiguar los últimos archivos abiertos, últimos archivos modificados, los últimos comandos ejecutados o las últimas páginas web consultadas.

·     Cumplir legalidad. Por ejemplo, un proveedor de servicios de Internet debe tener por ley un log de las conexiones de sus clientes.

·         Auditoría

Logs seguros

Los logs pueden contener información confidencial que no debe ser revelada por privacidad o incluso porque su revelación hace vulnerable la seguridad del sistema. En estos casos es necesaria proteger la confidencialidad de la información. Para solucionar estos problemas se usan en los logs técnicas de cifrado. El valor de los logs como evidencia disminuye si no podemos demostrar que no han sido modificados por entidades no autorizadas. En general es necesario proteger la integridad de la información.

Las investigaciones en el campo de los logs seguros han sido principalmente enfocadas en el campo de la integridad ya que el cifrado es en sí mismo un problema aparte. Sin embargo ha habido investigaciones específicas sobre cifrado en logs pero para proveerlo en un entorno complejo centrado en aportar integridad. Supongamos que tenemos un único logger o registrador que es inicialmente confiable pero que puede ser corrompido en algún momento. Sería bueno garantizar que después de que el registrador ha sido corrompido no pueda manipular los registros creados antes de la corrupción.

Seguridad de la información

 ¿Qué es la seguridad de información? La  seguridad informática  es una disciplina  que  se encarga de proteger la integridad y la privacida...