59769145-INTEGRIDAD-DE-DATOS (1)
-
Upload
juan-manuel-jucub -
Category
Documents
-
view
25 -
download
0
Transcript of 59769145-INTEGRIDAD-DE-DATOS (1)
5/17/2018 59769145-INTEGRIDAD-DE-DATOS (1) - slidepdf.com
http://slidepdf.com/reader/full/59769145-integridad-de-datos-1 1/11
INTEGRIDAD DE DATOS
Definición:
La Integridad de datos es un término usado mucho en la Ingeniería informáticasobre todo en desarrollo de base de datos y eso puede describirse como conjunto
de seguridades que son utilizadas para asegurar o aseverar que los datos se
mantengan constantes y correctos, ya sea durante cualquier operación (tal como
transferencia, almacenaje o recuperación) dentro de la base de datos, la
preservación de estos datos son para su uso posterior y su utilización en la calidad
de los datos. Tal integridad se asegura a menudo por medio de un número
designado a Código de la integridad del mensaje (MIC) o Código de la
autentificación del mensaje (MAC).
Los SGBD relacional deben encargarse de mantener la integridad de los datos
almacenados en una base de datos con respecto a las reglas predefinidas o
restricciones. La integridad también puede verificarse inmediatamente antes del
momento de introducir los datos a la base de datos (por ejemplo, en un formulario
empleando validación de datos).
Errores Claves de Integridad
1. Un claro ejemplo de error de integridad es el ingreso de un tipo de dato
incorrecto dentro de un campo. Por ejemplo, ingresar un texto cuando se
espera un número entero.
2. También una error en la integridad en una base de datos puede ser la
existencia de un valor numérico (id cliente) en la compra de un producto por
parte de un cliente que no existe en su correspondiente tabla con ese
número. (integridad referencial).
3. También puede suceder que se elimine una fila padre con dos o más filas
hijos que quedarían "huérfanas".
5/17/2018 59769145-INTEGRIDAD-DE-DATOS (1) - slidepdf.com
http://slidepdf.com/reader/full/59769145-integridad-de-datos-1 2/11
4. Los errores se originan si el programa de entrada de datos no está
validado. Ej.: fallas de hardware, actualizaciones incompletas, defectos del
software, inserción de datos no validos, errores humanos.
La integridad se puede comprometer a través:
El alterarse malévolo, tal como un atacante que altera un número de cuenta en
una transacción del banco, o de un documento de la identidad
El alterarse accidental, tal como a transmisión error, o un duro desplome del disco
Integridad de datos en a base de datos emparentada se trata a exactitud, a la
corrección, y a la validez de los datos en una base de datos. Una variedad común
de integridad de datos es integridad de referencia, que implica la prevención de
errores adentro Llave extranjera a Llave primaria relaciones, tales como un
expediente huérfano del niño que está faltando su expediente del padre (a veces
llamado una llave extranjera que cuelga).
Una tècnica que usa el BDMS de una entrada de datos no vàlida es la validación.
Restricciones de integridad
y Datos Requeridos: establece que una columna tenga un valor no NULL.
Se define efectuando la declaración de una columna es NOT NULL cuando
la tabla que contiene las columnas se crea por primera vez, como parte de
la sentencia CREATE TABLE.
y Chequeo de Validez: cuando se crea una tabla cada columna tiene un tipo
de datos y el DBMS asegura que solamente los datos del tipo especificado
sean ingresados en la tabla.
y Integridad de entidad: establece que la clave primaria de una tabla debe
tener un valor único para cada fila de la tabla; si no, la base de datos
perderá su integridad. Se especifica en la sentencia CREATE TABLE. El
DBMS comprueba automáticamente la unicidad del valor de la clave
primaria con cada sentencia INSERT Y UPDATE. Un intento de insertar o
actualizar una fila con un valor de la clave primaria ya existente fallará.
5/17/2018 59769145-INTEGRIDAD-DE-DATOS (1) - slidepdf.com
http://slidepdf.com/reader/full/59769145-integridad-de-datos-1 3/11
y Integridad referencial: asegura la integridad entre las claves ajenas y
primarias (relaciones padre/hijo). Existen cuatro actualizaciones de la base
de datos que pueden corromper la integridad referencial:
y La inserción de una fila hijo se produce cuando no coincide la clave ajena
con la clave primaria del padre.
y La actualización en la clave ajena de la fila hijo, donde se produce una
actualización en la clave ajena de la fila hijo con una sentencia UPDATE y
la misma no coincide con ninguna clave primaria.
y La supresión de una fila padre, con la que, si una fila padre -que tiene uno o
más hijos- se suprime, las filas hijos quedarán huérfanas.
y La actualización de la clave primaria de una fila padre, donde si en una fila
padre, que tiene uno o más hijos se actualiza su clave primaria, las filas
hijos quedarán huérfanas.
CATEGORIAS DE INTEGRIDAD
Dos pasos importantes en el diseño de las tablas son la identificación de valores
válidos para una columna y la determinación de cómo forzar la integridad de los
datos en la columna. La integridad de datos pertenece a una de las siguientescategorías:
Integridad de entidad
La integridad de entidad define una fila como entidad única para una tabla
determinada. La integridad de entidad exige la integridad de las columnas de los
identificadores o la clave principal de una tabla, mediante índices y restricciones
UNIQUE, o restricciones PRIMARY KEY.
Integridad de dominio
5/17/2018 59769145-INTEGRIDAD-DE-DATOS (1) - slidepdf.com
http://slidepdf.com/reader/full/59769145-integridad-de-datos-1 4/11
La integridad de dominio viene dada por la validez de las entradas para una
columna determinada. Puede exigir la integridad de dominio para restringir el tipo
mediante tipos de datos, el formato mediante reglas y restricciones CHECK, o el
intervalo de valores posibles mediante restricciones FOREIGN KEY, restricciones
CHECK, definiciones DEFAULT, definiciones NOT NULL y reglas.
Integridad referencial
La integridad referencial protege las relaciones definidas entre las tablas cuando
se crean o se eliminan filas. En SQL Server la integridad referencial se basa en las
relaciones entre claves externas y claves principales o entre claves externas y
claves exclusivas, mediante restricciones FOREIGN KEY y CHECK.La integridad
referencial garantiza que los valores de clave sean coherentes en las distintas
tablas. Para conseguir esa coherencia, es preciso que no haya referencias a
valores inexistentes y que, si cambia el valor de una clave, todas las referencias a
ella se cambien en consecuencia en toda la base de datos.
Cuando se exige la integridad referencial, SQL Server impide a los usuarios:
y Agregar o cambiar filas en una tabla relacionada si no hay ninguna fila
asociada en la tabla principal.y Cambiar valores en una tabla principal que crea filas huérfanas en una tabla
relacionada.
y Eliminar filas de una tabla principal cuando hay filas relacionadas
coincidentes.
y Por ejemplo, en las tablas Sales.SalesOrderDetail y Production.Product de
la base de datos AdventureWorks, la integridad referencial se basa en la
relación entre la clave externa (ProductID) de la tabla
Sales.SalesOrderDetail y la clave principal (ProductID) de la tabla
Production.Product. Esta relación garantiza que un pedido de ventas no
pueda nunca hacer referencia a un producto que no existe en la tabla
Production.Product.
5/17/2018 59769145-INTEGRIDAD-DE-DATOS (1) - slidepdf.com
http://slidepdf.com/reader/full/59769145-integridad-de-datos-1 5/11
Integridad definida por el usuario
La integridad definida por el usuario permite definir reglas de empresa específicas
que no pertenecen a ninguna otra categoría de integridad. Todas las categorías de
integridad admiten la integridad definida por el usuario. Esto incluye todas las
restricciones de nivel de columna y nivel de tabla en CREATE TABLE,
procedimientos almacenados y desencadenadores.
VALIDACIÓN DE INTEGRIDAD
Validación: es proteger los datos, validar los datos en la entrada de datos.
Existen tipos de validaciones
y Valor de Dato: si se define un valor entero se puede especificar un rango y
no se puede pasar de ese valor.
y Valores Claves / No Nulos: asegura registros ùnicos y cuyos valores no
sean nulos.
INGENIERÍA REVERSA O INVERSA
(Reverse engineering). La ingeniería inversa es el proceso de descubrir los
principios tecnológicos de un dispositivo, objeto o sistema, a través de
razonamiento abductivo de su estructura, función y operación.
La ingeniería inversa se trata de tomar algo (un dispositivo mecánico o electrónico,
un software de computadora, etc.) para analizar su funcionamiento en detalle,
generalmente para intentar crear un dispositivo o programa que haga la misma o
similar tarea sin copiar la original.
Usos de la ingeniería inversa
* La ingeniería inversa suele ser empleada por alguna entidad que se vea en la
necesidad de obtener la información, de lo que sus rivales en competencia
5/17/2018 59769145-INTEGRIDAD-DE-DATOS (1) - slidepdf.com
http://slidepdf.com/reader/full/59769145-integridad-de-datos-1 6/11
producen, en el caso de la informática nos referimos a los software que
desarrollan las grandes empresas y cada una de ellas usa esta ingeniería inversa.
* Muchas veces, la ingeniería inversa es utilizada en el área militar para investigar
(y copiar) las tecnologías de otras naciones, sin obtener planos ni detalles de su
construcción o desarrollo.
* En el software y en el hardware, la ingeniería inversa, muchas veces es
empleada para desarrollar productos que sean compatibles con otros productos,
sin conocer detalles de desarrollo de éstos últimos. En otras palabras, quien
desarrolla los nuevos productos, no puede acceder a los detalles de fabricación de
los productos de los que intenta ser compatibles.
* La ingeniería inversa también es empleada para comprobar la seguridad de un
producto, generar keygens de aplicaciones, reparación de productos, etc.
PARA QUÉ SIRVE LA INGENIERIA INVERSA
y
Sirve para el desarrollo y creación de nuevos productos o modificación de los yaexistentes donde se requiere aprovechar y reutilizar todos los conocimientos ya
aplicados por algún otro desarrollador, además de ser rápida y efectiva para
resolver la necesidad que la empresa tenga, debido a que con la ingeniería
reversa podemos ahorrar costos en investigación y un considerable tiempo de
estudio.
yPara compararse con los mejores del mercado (benchmarking), evitando invertir
recursos en una investigación y desarrollo que en el mejor de los casos va a llevar
a obtener un producto similar al que ya está en el mercado.
yEn los casos de productos donde se ha perdido la información o nunca se ha
tenido en formato digital como el caso de piezas antiguas o rotas que se requieren
para efectos de seguimiento, mantenimiento y servicio postventa.
yModificación de prototipos y verificación de errores de manufactura.
5/17/2018 59769145-INTEGRIDAD-DE-DATOS (1) - slidepdf.com
http://slidepdf.com/reader/full/59769145-integridad-de-datos-1 7/11
yEn todos aquellos casos donde se requieran las definiciones numéricas de todos
los elementos que entran en juego en un planteamiento digital global para fines de
simulación de procesos.
La Ingeniería Inversa sobre las bases de datos, es comúnmente dividido en dos
fases claramente diferenciadas.
a) Extracción de las estructuras de datos, obteniendo como resultado el esquema
lógico. (Fase I)
b) Conceptualización de las estructuras de datos, obteniendo como resultado el
esquema conceptual. (Fase II)
Etapa 1: Extracción automática.
Inicialmente debemos extraer mediante herramientas automáticas todas las
estructuras de la base de datos cómo fueron diseñadas inicialmente por los
desarrolladores. Se trata por tanto de una etapa típica de traducción inmediata del
código para así extraer las estructuras de datos explícitas.
Etapa 2: Extracción acumulativa.
Se trata de una etapa en la que la participación de los usuarios del modelo de
datos con el que trabaja supondrá acumular más información de la obtenida en la
etapa anterior. Como hemos comentado anteriormente es posible que ciertas
reglas no puedan obtenerse directamente en la etapa 1, por lo que aprovechando
el conocimiento adquirido por los usuarios en el trabajo diario se podrá obtener
información muy interesante.
Etapa 3: Unión del Esquema:
Se trata de una etapa ciertamente compleja, y de la que su éxito depende en gran
medida el proceso de reingeniería, pues consiste en unir y reconvertir las
estructuras y restricciones obtenidas en las dos fases anteriores. Así, con la
información obtenida en la etapa 2 se pretende complementar la información
5/17/2018 59769145-INTEGRIDAD-DE-DATOS (1) - slidepdf.com
http://slidepdf.com/reader/full/59769145-integridad-de-datos-1 8/11
obtenida en la etapa 1, ya sea para encontrar estructuras no explícitas o que
fueron perdidas cuando la base de datos fue diseñada. Para ello se localizarán:
a) Campos multivaluados.
b) Tipos registros e identificadores de campos multivaluados.
c) Campos opcionales.
d) Claves.
e) Redundancias.
f) Dominios.
g) Significado de los campos.
Etapa 4: Análisis de Programas.
En esta fase se realiza un estudio del código fuente existente, para comprobar que
las restricciones, forma de procesar los datos, significado, etc. se corresponde con
el estudio realizado en las fases anteriores. Es posible que esta etapa modifique el
resultado obtenido en las etapas anteriores, pero sería deseable que no existieran
cambios, pues de esa forma podríamos asegurarnos que lo hecho en las etapas
anteriores es correcto y vamos por un buen camino.
Fase II.
En esta fase se extrae el esquema conceptual a partir del esquema lógico. En
mucha bibliografía, a esta fase se le denomina Interpretación de las estructuras de
datos, pues se va a realizar una optimización del esquema lógico.
Etapa 1: Conceptualización básica.
Así, un ejemplo de conceptualización básica podría ser si tenemos campos que
tienen la misma estructura y que se refieren a atributos de la entidad iguales, se
transformarán en un atributo multivaluado. Por ejemplo, en la entidad cliente
tenemos el campo Teléfono1, Teléfono2, etc. Otro ejemplo, podría ser cuando
campos con distinta estructura pero que se refieren a subcampos de un campo
5/17/2018 59769145-INTEGRIDAD-DE-DATOS (1) - slidepdf.com
http://slidepdf.com/reader/full/59769145-integridad-de-datos-1 9/11
multivaluado. Por ejemplo, el campo habitación, puede venir determinado por
Planta, Número, Orientación, Número de camas, etc.
Etapa 2: Normalización.
La reforma del esquema conceptual tiene como objeto hacer una comprensión de
dicho modelo. En esta etapa de pretende aportar un significado en la semántica de
las construcciones explícitas. El objetivo es representar la información con una
metodología estándar que sea altamente legible.
MIGRACIÓN DE DATOS DE ORACLE A SQL SERVER
Migración de datos.- Migración de datos nos referimos al traspaso de información
entre bases de datos. Si tenemos una aplicación sobre una base de datos como
por ejemplo Access y posteriormente "crecemos" de manera que nos hace falta un
sistema gestor de bases de datos potente, lo más seguro es que nos decantemos
por Oracle, DB2, Informix, SQLServer o similares.
En este caso, los datos, que estarán en formato "access" deberán pasar a formato
"sqlserver" o formato para "oracle". La migración de los datos consiste en convertir
los datos desde un sistema de base de datos a otro. Esta migración conlleva la
creación de tablas o modificación de las existentes, cambios en algunos tipos de
datos que existen en una base de datos pero no en otras, ejemplo sencillo(
Sqlserver utiliza String y Mysql trabaja con Varchar)
Actualmente la mayoría de SGBD incluye herramientas de ayuda a la migración
más o menos "fiables". Sin embargo se requiere de un alto nivel de seguridad, no
podemos trabajar en modo de producción directamente, es necesario crear una
copia (BACKUP) para poder recién a trabajar, ya que un daño en la base de datos
sería irreparable.
5/17/2018 59769145-INTEGRIDAD-DE-DATOS (1) - slidepdf.com
http://slidepdf.com/reader/full/59769145-integridad-de-datos-1 10/11
ORACLE a SQL-SERVER
Dado que SQL-SERVER es el DBM con más crecimiento en el mercado dado a su
bajo costo en el mercado en comparación con Oracle o con DB2 por ejemplo.
Los clientes optan por adquirir este producto pero la gran mayoría han viniendo
trabajando con Oracle, dado este problema Microsoft ha desarrollado Un
asistente de migración de SQL SERVER (SSMA).
Este sistema varias fases para el proceso de migración
Fase de evaluación
Fase de conversión de esquemas
Fase de migración de datos
Fase de Evaluación
El primer paso en la migración es evaluar la dificultad, tiempo y costo de la
migración. Los factores que contribuyen directamente a esta son la "complejidad"
de las bases de datos y de las aplicaciones que los utilizan. Aunque no existe una
medida formal de la complejidad de base de datos, una base de datos será cada
vez más compleja y costosa para migrar los objetos de lógica del negocio(procedimientos almacenados, funciones, triggers, paquetes, etc). Además de la
complejidad de migración son las diferencias de función del sistema entre las dos
plataformas. Funciones que ofrece en una plataforma no pueden ofrecer por el
otro, o puede haber diferencias semánticas o sintácticas en la ejecución de
funciones comunes.
SSMA Migración Analyzer un análisis profundo para obtener estimaciones del
tiempo y el esfuerzo necesarios para migrar una base de datos. La herramienta
proporciona una estimación de la mano de obra necesaria para migrar la base de
datos manualmente, así como el porcentaje de la base de datos que se pueden
convertir de forma automática.
5/17/2018 59769145-INTEGRIDAD-DE-DATOS (1) - slidepdf.com
http://slidepdf.com/reader/full/59769145-integridad-de-datos-1 11/11
Fase de Conversión de Esquemas.- Es la base para definir la base de datos
destino. Hay ciertos casos en el que Oracle no respeta el SQL-STANDART y
emplea su propia función, para ello se debe convertir a dicha función a otra
aceptable en SQL-server
Un ejemplo muy claro son los tipos de datos, pero también se puede decir de la
creación de funciones, triggers, procedimientos almacenados, etc.
Aquí tenemos un esquema de mapeo de objetos de oracle y sqlserver
v archar2 v archar char char number numeric date datetimelong text nv archar2 nv archar boolean smallint
Fase de Migración de Datos.- Una vez realizada la fase anterior SSMA se
encarga de migrar los datos del esquema de oracle (tablas, índices,restricciones) a un esquema físico de sqlserver.
Lo siguiente es migrar los datos (Registros) de oracle a sqlserver.
SQL Server Migration Assistant permite a los clientes migrar sus aplicaciones apartir de otra base de datos a SQL Server fácilmente y de manera predecible.Microsoft SQL Server automatiza el Asistente de Migración casi todos los aspectosde la migración de bases de datos. Como resultado, el tiempo, costo y riesgosasociados con la migración a SQL Server se reducen considerablemente.