domingo, 26 de octubre de 2008


Una transacción en MySQL es una secuencia de una o más sentencias SQL que juntas forman una unidad de trabajo.

Imagina queremos borrar uno o varios registros de una tabla, pero nos equivocamos y eliminamos todos los registros de la tabla. ¿Existe alguna forma de que corregir el error y dar marcha atrás para recuperar los registros eliminados?

Estas transaccines funcionan en modo autocommit. Esto quiere decir que se confirma (COMMIT) cada sentencia ejecutada.

Los pasos para iniciar una transacción son los siguientes:

  • Se comienza una transacción con la sentencia START TRANSACTION.

  • Si se realizan modificaciones en la base de datos y queremos volver atrás y cancelar los cambios realizados hasta el momento, utilizaremos la sentencia ROLLBACK. Si queremos confirmar los cambios realizados en la base de datos, utilizaremos la sentencia COMMIT, lo cual implica también que termina la transacción.
  • Si queremos comenzar una nueva transacción, usaremos START TRANSACTION.
ROLLBACK TRAN: Dentro de una transacción anidada esta sentencia deshace todas las transacciones internas hasta la instrucción BEGIN TRANSACTION más externa.
Borra todas las modificaciones de datos realizadas desde el inicio de la transacción o hasta un punto de retorno. También libera los recursos que retiene la transacción.Sin savepoint_name o transaction_name revierte todas las instrucciones hasta el principio de la transacción. Cuando se trata de transacciones anidadas, esta misma instrucción revierte todas las transacciones internas hasta la instrucción BEGIN TRANSACTION más externa. En ambos casos, ROLLBACK TRANSACTION disminuye la función del sistema @@TRANCOUNT a 0. ROLLBACK TRANSACTION con savepoint_name no disminuye @@TRANCOUNT.

Una instrucción ROLLBACK TRANSACTION que especifica un savepoint_name libera todos los bloqueos adquiridos más allá del punto de retorno, a excepción de las extensiones y las conversiones. Estos bloqueos no se liberan y no vuelven a convertirse a su modo de bloqueo previo.

No puede hacer referencia a un argumento savepoint_name en transacciones distribuidas que se inician de forma explícita con BEGIN DISTRIBUTED TRANSACTION o que se extienden desde una transacción local.
Una transacción no se puede revertir después de ejecutar una instrucción COMMIT TRANSACTION.

En una transacción se permiten nombres de puntos de retorno duplicados, pero una instrucción ROLLBACK TRANSACTION que utilice este nombre sólo revierte las transacciones realizadas hasta la instrucción SAVE TRANSACTION más reciente que también utilice este nombre.

COMMIT TRAN: Dentro de una transacción anidada esta sentencia únicamente reduce en 1 el valor de @@TRANCOUNT, pero no "finaliza" ninguna transacción ni "guarda" los cambios. En el caso en el que @@TRANCOUNT=1 (cuando estamos en la última transacción) COMMIT TRAN hace que todas las modificaciones efectuadas sobre los datos desde el inicio de la transacción sean parte permanente de la base de datos, libera los
recursos mantenidos por la conexión y reduce @@TRANCOUNT a 0.
BUENO DE ACUERDO CON LO QUE YO INVESTIGUE,ME PARESIO MAS IMPORTANTE Y LE ENTENDI ESTO ES LOQUE ESTOY PUBLICANDO

martes, 23 de septiembre de 2008

Funciones de Agregado

Lasfunciones de agregado se usan dentro de una cláusula SELECTen grupos de registros para devolver un único valor que se aplica a ungrupo de registros.

Comando Descripción
AVG: Utilizadapara calcular el promedio de los valores de un campo determinado

COUNT:Utilizadapara devolver el número de registros de la selección

SUM:Utilizadapara devolver la suma de todos los valores de un campo determinado

MAX:Utilizadapara devolver el valor más alto de un campo especificado

MIN:Utilizadapara devolver el valor más bajo de un campo especificado
GROUP BY :Combina los registros con valores idénticos, en la lista de campos especificados, en un único registro. Para cada registro se crea un valor sumario si se incluye una función SQL agregada, como por ejemplo Sum o Count, en la instrucción SELECT. Su sintaxis es:
SELECT campos FROM tabla WHERE criterio GROUP BY campos del grupo

GROUP BY :es opcional. Los valores de resumen se omiten si no existe una función SQL agregada en la instrucción SELECT. Los valores Null en los campos GROUP BY se agrupan y no se omiten. No obstante, los valores Null no se evalúan en ninguna de las funciones SQL agregadas.
Se utiliza la cláusula WHERE para excluir aquellas filas que no desea agrupar, y la cláusula
HAVING para filtrar los registros una vez agrupados.
A menos que contenga un dato Memo u Objeto OLE , un campo de la lista de campos GROUP BY puede referirse a cualquier campo de las tablas que aparecen en la cláusula FROM, incluso si el campo no esta incluido en la instrucción SELECT, siempre y cuando la instrucción SELECT incluya al menos una función SQL agregada.
Todos los campos de la lista de campos de SELECT deben o bien incluirse en la cláusula GROUP BY o como argumentos de una función SQL agregada.
SELECT Id_Familia, Sum(Stock) FROM Productos GROUP BY Id_Familia;
Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier registro agrupado por la cláusula GROUP BY que satisfaga las condiciones de la cláusula HAVING.
HAVING es similar a WHERE, determina qué registros se seleccionan. Una vez que los registros se han agrupado utilizando GROUP BY, HAVING determina cuales de ellos se van a mostrar.
SELECT Id_Familia Sum(Stock) FROM Productos GROUP BY Id_Familia HAVING Sum(Stock) > 100 AND NombreProducto Like BOS*;

AVG :Calcula la media aritmética de un conjunto de valores contenidos en un campo especificado de una consulta. Su sintaxis es la siguiente
Avg(expr)
En donde expr representa el campo que contiene los datos numéricos para los que se desea calcular la media o una expresión que realiza un cálculo utilizando los datos de dicho campo. La media calculada por Avg es la media aritmética (la suma de los valores dividido por el número de valores). La función Avg no incluye ningún campo Null en el cálculo.
SELECT Avg(Gastos) AS Promedio FROM Pedidos WHERE Gastos > 100;
Count :Calcula el número de registros devueltos por una consulta. Su sintaxis es la siguiente
Count(expr)
En donde expr contiene el nombre del campo que desea contar. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL). Puede contar cualquier tipo de datos incluso texto.
Aunque expr puede realizar un cálculo sobre un campo, Count simplemente cuenta el número de registros sin tener en cuenta qué valores se almacenan en los registros. La función Count no cuenta los registros que tienen campos null a menos que expr sea el carácter comodín asterisco (*). Si utiliza un asterisco, Count calcula el número total de registros, incluyendo aquellos que contienen campos null. Count(*) es considerablemente más rápida que Count(Campo). No se debe poner el asterisco entre dobles comillas ('*').

SELECT Count(*) AS Total FROM Pedidos;
Si expr identifica a múltiples campos, la función Count cuenta un registro sólo si al menos uno de los campos no es Null. Si todos los campos especificados son Null, no se cuenta el registro. Hay que separar los nombres de los campos con ampersand (&).
SELECT Count(FechaEnvío & Transporte) AS Total FROM Pedidos;

Max, Min: Devuelven el mínimo o el máximo de un conjunto de valores contenidos en un campo especifico de una consulta. Su sintaxis es:
Min(expr) Max(expr)
En donde expr es el campo sobre el que se desea realizar el cálculo. Expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL).
SELECT Min(Gastos) AS ElMin FROM Pedidos WHERE Pais = 'España'; SELECT Max(Gastos) AS ElMax FROM Pedidos WHERE Pais = 'España';

StDev, StDevP :
Devuelve estimaciones de la desviación estándar para la población (el total de los registros de la tabla) o una muestra de la población representada (muestra aleatoria) . Su sintaxis es:
StDev(expr) StDevP(expr)
En donde expr representa el nombre del campo que contiene los datos que desean evaluarse o una expresión que realiza un cálculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL)
StDevP evalúa una población, y StDev evalúa una muestra de la población. Si la consulta contiene menos de dos registros (o ningún registro para StDevP), estas funciones devuelven un valor Null (el cual indica que la desviación estándar no puede calcularse).
SELECT StDev(Gastos) AS Desviacion FROM Pedidos WHERE Pais = 'España'; SELECT StDevP(Gastos) AS Desviacion FROM Pedidos WHERE Pais= 'España';

Sum :Devuelve la suma del conjunto de valores contenido en un campo especifico de una consulta. Su sintaxis es:
Sum(expr)
En donde expr respresenta el nombre del campo que contiene los datos que desean sumarse o una expresión que realiza un cálculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL).
SELECT Sum(PrecioUnidad * Cantidad) AS Total FROM DetallePedido;

Var, VarP :Devuelve una estimación de la varianza de una población (sobre el total de los registros) o una muestra de la población (muestra aleatoria de registros) sobre los valores de un campo. Su sintaxis es: Var(expr) VarP(expr)
VarP evalúa una población, y Var evalúa una muestra de la población. Expr el nombre del campo que contiene los datos que desean evaluarse o una expresión que realiza un cálculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL)
Si la consulta contiene menos de dos registros, Var y VarP devuelven Null (esto indica que la varianza no puede calcularse). Puede utilizar Var y VarP en una expresión de consulta o en una Instrucción SQL.
ELECT Var(Gastos) AS Varianza FROM Pedidos WHERE Pais = 'España'; SELECT VarP(Gastos) AS Varianza FROM Pedidos WHERE Pais = 'España';
Count :Calcula el número de registros devueltos por una consulta. Su sintaxis es la siguiente:Count(expr)
En donde expr contiene el nombre del campo que desea contar. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL). Puede contar cualquier tipo de datos incluso texto.

Aunque expr puede realizar un cálculo sobre un campo, Count simplemente cuenta el número de registros sin tener en cuenta qué valores se almacenan en los registros. La función Count no cuenta los registros que tienen campos null a menos que expr sea el carácter comodín asterisco (*). Si utiliza un asterisco, Count calcula el número total de registros, incluyendo aquellos que contienen campos null. Count(*) es considerablemente más rápida que Count(Campo). No se debe poner el asterisco entre dobles comillas ('*').
SELECT Count(*) AS Total FROM Pedidos

Si expr identifica a múltiples campos, la función Count cuenta un registro sólo si al menos uno de los campos no es Null. Si todos los campos especificados son Null, no se cuenta el registro. Hay que separar los nombres de los campos con ampersand (&).

SELECT Count(FechaEnvío & Transporte) AS Total FROM Pedidos
Podemos hacer que el gestor cuente los datos diferentes de un determinado campo
SELECT Count(DISTINCT Localidad) AS Total FROM Pedidos

Max, Min :Devuelven el mínimo o el máximo de un conjunto de valores contenidos en un campo especifico de una consulta. Su sintaxis es: Min(expr) Max(expr)
En donde expr es el campo sobre el que se desea realizar el cálculo. Expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL).

SELECT Min(Gastos) AS ElMin FROM Pedidos WHERE Pais = 'España'
SELECT Max(Gastos) AS ElMax FROM Pedidos WHERE Pais = 'España'

StDev, StDevP :Devuelve estimaciones de la desviación estándar para la población (el total de los registros de la tabla) o una muestra de la población representada (muestra aleatoria). Su sintaxis es: StDev(expr)StDevP(expr)

En donde expr representa el nombre del campo que contiene los datos que desean evaluarse o una expresión que realiza un cálculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL).

StDevP evalúa una población, y StDev evalúa una muestra de la población. Si la consulta contiene menos de dos registros (o ningún registro para StDevP), estas funciones devuelven un valor Null (el cual indica que la desviación estándar no puede calcularse).

SELECT StDev(Gastos) AS Desviación FROM Pedidos WHERE País = 'España'
SELECT StDevP(Gastos) AS Desviación FROM Pedidos WHERE País = 'España'
ALL :es otra construcción poco usual , como las consultas ALL pueden ser usadas con diferentes y simples métodos, veamos un ejemplo de consulta:
SELECT ID_COMPRADOR, PRODUCTO FROM ANTIGÜEDADES WHERE PRECIO = ALL (SELECT PRECIO FROM ANTIGÜEDADES);
Esto devolverá el precio de producto más alto (o más de un producto si hay un empate), y su comprador. La subconsulta devuelve una lista de todos los precios de la tabla Antigüedades, y la consulta de salida va fila por fila de la tabla Antigüedades y si el precio es mayor o igual a todos (o ALL) precios en la lista, es listado, dando el precio del producto más caro. La razón de "=" es que el mayor precio en la lista puede ser igual al de la lista, ya que este producto está en la lista de precios.
TOP (Transact-SQL)

Especifica que sólo se devolverá el primer conjunto de filas del resultado de la consulta. El conjunto de filas puede ser un número o un porcentaje de las filas. La expresión TOP se puede utilizar en instrucciones SELECT, INSERT, UPDATE y DELETE.
Convenciones de sintaxis de Transact-SQL
Sintaxis

[
TOP (expression) [PERCENT]
[ WITH TIES ]
]
Argumentos

expression

Es la expresión numérica que especifica el número de filas que se devolverán. El valor expression se convierte implícitamente a un valor float si se especificó PERCENT; de lo contrario, se convierte a bigint.

En instrucciones INSERT, UPDATE y DELETE, se requieren paréntesis que delimiten el valor expression en TOP. Por compatibilidad con versiones anteriores se admite TOP expression sin paréntesis en instrucciones SELECT, pero no se recomienda usar esto.
Si la consulta contiene una cláusula ORDER BY, se devolverán las primeras filas de expression o el porcentaje de filas de expression ordenadas por la cláusula ORDER BY. Cuando la consulta no tiene una cláusula ORDER BY, el orden de las filas es arbitrario.

PERCENT
Indica que la consulta devuelve sólo el primer porcentaje de filas de expression del conjunto de resultados.
WITH TIES
Especifica que las filas adicionales se devolverán del conjunto de resultados base con el mismo valor en las columnas ORDER BY que el que aparece en la última de las filas de TOP n (PERCENT). TOP...WITH TIES sólo se puede especificar en instrucciones SELECT y siempre que haya una cláusula ORDER BY especificada.
DISTINCT:Esto es fácil de realizar en SQL. Todo lo que necesitamos hacer es agregar DISTINCT luego de SELECT. La sintaxis es la siguiente:
SELECT DISTINCT "nombre_columna"FROM "nombre_tabla"
Por ejemplo, para seleccionar todos los negocios distintos en la Tabla Store_Information,
Tabla Store_Information
store_name
Sales
Date
Los Angeles
1500 €
05-Jan-1999
San Diego
250 €
07-Jan-1999
Los Angeles
300 €
08-Jan-1999
Boston
700 €
08-Jan-1999
Ingresamos,
SELECT DISTINCT store_name FROM Store_Information
Resultado:
store_name
Los Angeles
San Diego
Boston

ALL:Devuelve todos los campos de la tabla
TOP:Devuelve un determinado número de registros de la tabla
DISTINCT:Omite los registros cuyos campos seleccionados coincidan totalmente
DISTINCTROW:Omite los registros duplicados basandose en la totalidad del registro y no sólo en los campos seleccionados.

ALL Si no se incluye ninguno de los predicados se asume ALL. El Motor de base de datos selecciona todos los registros que cumplen las condiciones de la instrucción SQL. No se conveniente abusar de este predicado ya que obligamos al motor de la base de datos a analizar la estructura de la tabla para averiguar los campos que contiene, es mucho más rápido indicar el listado de campos deseados. SELECT ALL FROM Empleados; SELECT * FROM Empleados;
TOP:Devuelve un cierto número de registros que entran entre al principio o al final de un rango especificado por una cláusula ORDER BY. Supongamos que queremos recuperar los nombres de los 25 primeros estudiantes del curso 1994: SELECT TOP 25 Nombre, Apellido FROM Estudiantes ORDER BY Nota DESC; Si no se incluye la cláusula ORDER BY, la consulta devolverá un conjunto arbitrario de 25 registros de la tabla Estudiantes .El predicado TOP no elige entre valores iguales. En el ejemplo anterior, si la nota media número 25 y la 26 son iguales, la consulta devolverá 26 registros. Se puede utilizar la palabra reservada PERCENT para devolver un cierto porcentaje de registros que caen al principio o al final de un rango especificado por la cláusula ORDER BY. Supongamos que en lugar de los 25 primeros estudiantes deseamos el 10 por ciento del curso: SELECT TOP 10 PERCENT Nombre, Apellido FROM Estudiantes ORDER BY Nota DESC; El valor que va a continuación de TOP debe ser un Integer sin signo.TOP no afecta a la posible actualización de la consulta. DISTINCT Omite los registros que contienen datos duplicados en los campos seleccionados. Para que los valores de cada campo listado en la instrucción SELECT se incluyan en la consulta deben ser únicos. Por ejemplo, varios empleados listados en la tabla Empleados pueden tener el mismo apellido. Si dos registros contienen López en el campo Apellido, la siguiente instrucción SQL devuelve un único registro: SELECT DISTINCT Apellido FROM Empleados; Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos indicados en la cláusula SELECT posean un contenido diferente. El resultado de una consulta que utiliza DISTINCT no es actualizable y no refleja los cambios subsiguientes realizados por otros usuarios. DISTINCTROW Devuelve los registros diferentes de una tabla; a diferencia del predicado anterior que sólo se fijaba en el contenido de los campos seleccionados, éste lo hace en el contenido del registro completo independientemente de los campo indicados en la cláusula SELECT. SELECT DISTINCTROW Apellido FROM Empleados; Si la tabla empleados contiene dos registros: Antonio López y Marta López el ejemplo del predicado DISTINCT devuleve un único registro con el valor López en el campo Apellido ya que busca no duplicados en dicho campo. Este último ejemplo devuelve dos registros con el valor López en el apellido ya que se buscan no duplicados en el registro completo.
REFERENCIAS:

sábado, 26 de julio de 2008

DATA ARQUITECT

QUE ES DATA ARQUITECT

Un arquitecto de datos es una persona designada para ser responsable del diseño, estructura, organización y mantenimiento de datos para una empresa o proyecto. Así como un arquitecto diseña cuidadosamente los planes para un edificio, un arquitecto de datos de mapas a cabo con cuidado la estructura y organización de los datos pertinentes para una empresa o proyecto. Un arquitecto de datos puede trabajar para una sola empresa y se centran exclusivamente en los datos internos o de trabajo para un grupo de bases de datos múltiples y ayudar a las empresas con sus datos.
Un arquitecto de datos se llena una serie de funciones y mantiene una serie de responsabilidades Los datos arquitecto se encarga de evaluar la utilización de los datos y los datos relacionados directamente con los objetivos y las prácticas de una empresa de una manera que ofrece resultados claros. Los datos arquitecto debe asegurar la exactitud y la accesibilidad de todos los datos importantes, y él o ella es responsable de conocer qué datos es importante y por qué. El arquitecto de datos a menudo actúa como un intermediario, deducir las necesidades de datos de un grupo particular y explicar la importancia y el uso de los datos más relevantes para ellos.
Hay una serie de herramientas que un arquitecto utiliza los datos a lo largo de su carrera. Más allá de las bases de datos de base, un arquitecto de datos a menudo crea un procedimiento denominado registro de metadatos. Esto es, en cierto sentido, una base de datos que cataloga lo que se dispone de datos en oposición a la catalogación de los datos reales Un registro de metadatos pueden organizar los datos en una forma mucho más masiva que una base de datos, porque no es necesario para contener la información en sí, sino sólo para referencia.
Casi todos los datos arquitectos están familiarizados con los datos orientada a lenguajes tales como SQL.. En un intento por simplificar un sistema bastante complicado, SQL es un lenguaje consultar datos sobre la base de recuperar los datos almacenados de acuerdo a las relaciones matemáticas. En lugar de almacenar los números, las bases de datos SQL representan todos los tipos de información en términos matemáticos y utilizar herramientas matemáticas para ordenar la información. Otros datos orientada a idiomas, tales como XML, es probable que sean herramientas de regular los datos de un arquitecto. Los datos arquitecto es una nueva profesión posible gracias a la cada vez más masiva capacidad de recogida de datos por computadora, y es probable que continúe a ganar popularidad a medida que más y exige más información a gran escala organización.

Ventajas de PLC:
· Movilida
.Flexibilidad
·Fácil de instalar para configuraciones en interiores
·Estabilidad
·Complementa a las soluciones de cable e inalámbricas
Desventajas de PLC:
· La instalación y el alto rendimiento dependen de la arquitectura de la red eléctrica
Falta de estándares y pautas
· Problemas de interoperabilidad con distintos tipos de equipamiento.
.El precio actual, ya que el mercado tiene aún que desarrollarse.



iMac (Pantalla plana): Usa la última versión del software del iPod
Last Modified on: March 28, 2002
Article: 88315

El presente documento describe un problema detectado entre versiones anteriores del software del iPod y equipos iMac (pantalla plana) y ofrece su solución.
Es posible que el iPod no aparezca en el escritorio.
Es posible que aparezcan mensajes de alerta durante los procesos de copia de información desde y hacia el iPod.
Es posible que el iPod o el equipo no respondan.
Productos afectados
iMac (pantalla plana)
Software iPod 1.0.2 y anteriores
SoluciónLa versión 1.0.4 del software del iPod (y las posteriores) incluyen mejoras para los iMac (pantalla plana). Si dispones de una versión anterior a 1.0.4, actualiza a la última versión disponible.
Comprueba que tu iPod se mantiene al día descargando la Actualización de software
Para más información acerca de la versión del software instalada en un iPod, consulta el artículo 60984:

La última versión del software de Oracle

Oracle Corp. Anuncia hoy sus planes para el lanzamiento de una nueva versión de su software básico por primera vez en cuatro años. Pero clientes como Mark Showers ya han decidido mantenerse al margen.

11 Jul 2007 THE WALL STREET JOURNAL
O
Oracle lanza una actualización de su sistema de gestión de bases de datos, llamado "version 11g", el cual permite que las compañías recuperen y entiendan su información digital. Pero Showers, director general de información del gigante agrícola Monsanto Co., dice que es probable que su compañía tarde al menos dos o tres años en comenzar a migrar a la versión 11g desde el programa anterior, 10g, el doble de lo que le llevó antes a Monsanto a hacer el cambio.

REFERENCIAS

(http://www.apple.com/es/swupdates/


http://apuntes.rincondelvago.com/data-architect.html

http://www.laflecha.net/canales/empresas/noticias/la-ultima-version-del-software-de-oracle-no-entusiasma-a-las-companias

domingo, 15 de junio de 2008

ENTIDAD RELACION



Este tema se trata de cómo realizar diagramas de entidad relación extendida. Se pretende que con este tema nosotros los alumnos aprenderemos a realizar diagramas con dichos problemas que senos presentan dia con dia ya que por medio de ellos logramos saber como esta conformado una entidad que son id-nombre, cliente, tienda o empresa, ect.
Bueno yo hice esta investigación espero que me sirva y les sirva para comparar mi investigación con la de ustedes.

Diagramas Entidad Relación ER

Los diagramas o modelos entidad-relación (a veces denominado por su siglas, E-R “Entity relationship”) son una herramienta para el modelado de datos de un sistema de información. Estos modelos expresan entidades relevantes para un sistema de información, sus inter-relaciones y propiedades.
El modelado entidad-relación es una técnica para el modelado de datos utilizando diagramas entidad relación. No es la única técnica pero sí la más utilizada. Brevemente consiste en los siguientes pasos:

1. Se parte de una descripción textual del problema o sistema de información a automatizar (los requisitos).
2. Se hace una lista de los sustantivos y verbos que aparecen.

3. Los sustantivos son posibles entidades o atributos.

4. Los verbos son posibles relaciones.
5. Analizando las frases se determina la cardinalidad de las relaciones y otros detalles.
6. Se elabora el diagrama (o diagramas) entidad-relación.

7. Se completa el modelo con listas de atributos y una descripción de otras restricciones que no se pueden reflejar en el diagrama.









Dado lo rudimentario de esta técnica se necesita cierto entrenamiento y experiencia para lograr buenos modelos de datos.
El modelado de datos no acaba con el uso de esta técnica. Son necesarias otras técnicas para lograr un modelo directamente implementable en una base de datos. Brevemente:
Transformación de relaciones múltiples en binarias.
Normalización de una base de datos de relaciones (algunas relaciones pueden transformarse en atributos y viceversa).
Conversión en tablas (en caso de utilizar una base de datos relacional).
Formalmente, los diagramas E-R son un lenguaje gráfico para describir conceptos. Informalmente, son simples dibujos o gráficos que describen la información que trata un sistema de información y el software que lo automatiza. Los elementos de dicho lenguaje se describen a continuación, por orden de importancia.
ENTIDADES

Una entidad es cualquier “objeto” discreto sobre el que se tiene información. Se representa mediante un rectángulo o “caja” etiquetada en su interior mediante un nombre. Ejemplos de entidades habituales en los sistemas de información son: factura, persona, empleado, etc.
Cada ejemplar de una entidad se denomina instancia.Por ejemplo,”carlos ch y doris ar” pueden ser dos instancias distintas de la entidad “persona”. Las instancias no se representan en el diagrama. No obstante, se pueden documentar aparte porque son útiles para inicializar la base de datos resultante. Por ejemplo, los departamentos existentes de una empresa pueden ser relevantes como datos iniciales de la entidad “departamento”.
RELACIONES

Una relación describe cierta interdependencia (de cualquier tipo) entre entidades. Se representa mediante un rombo etiquetado en su interior mediante un verbo. Además, dicho rombo debe unirse mediante líneas con las entidades que relaciona (es decir, los rectángulos). Una relación no tiene sentido sin las entidades que relaciona. Por ejemplo: una persona (entidad) trabaja (relación) para un departamento.


Transformación del modelo entidad-relación al modelo relacional
Para transformar un modelo entidad-relación a modelo relacional seguiremos las siguientes reglas:
Toda entidad del modelo entidad-relación se transforma en una tabla.
Cualquier atributo de una entidad se transforma en un campo dentro la tabla, manteniendo las claves primarias.
Las relaciones N:M se transforman en una nueva tabla que tendrá como clave primaria la concatenación de los atributos clave de las entidades que relaciona.
En las relaciones 1: N se pueden tener dos casos:
Si la entidad que participa con cardinalidad máxima uno lo hace también con cardinalidad mínima uno, entonces se propaga el atributo de la entidad que tiene cardinalidad máxima 1 a la que tiene cardinalidad máxima N, desapareciendo el nombre de la relación. Si existen atributos en la relación éstos también se propagarán.

Si la entidad que participa con cardinalidad máxima uno lo hace también cardinalidad mínima cero, entonces se crea una nueva tabla formada por las claves de cada entidad y los atributos de la relación. La clave primaria de la nueva tabla será el identificador de la entidad que participa con cardinalidad máxima N.
En el caso de las relaciones 1:1 también pueden darse dos casos:
Si las entidades poseen cardinalidades (0,1), la relación se convierte en una tabla.

Si una de las entidades posee cardinalidad (0,1) y la otra (1,1), conviene propagar la clave de la entidad con cardinalidad (1,1) a la tabla resultante de la entidad con cardinalidad (0,1). Si ambas entidades poseen cardinalidades (1,1) se puede propagar la clave de cualquiera de ellas a la tabla resultante de la otra.
En el caso de las relaciones N-arias se aplica la misma regla que para las relaciones N:M
En el caso de las relaciones reflexivas supondremos que se trata de una relación binaria con la particularidad que las dos entidades son iguales y aplicaremos las reglas vistas en los puntos anteriores.
Veamos algunos ejemplos.
Relaciones N: M
Supongamos el siguiente modelo entidad-relación.





En este caso la relación “compra” se transforma en una nueva tabla cuya clave primaria estará formada por los atributos dni, que es la clave primaria de cliente, y código, que es la clave primaria de producto. Además tendrá como campo fecha compra, ya que este atributo forma parte de la relación.
El modelo relacional quedaría de la siguiente forma (en negrita las claves primarias):
CLIENTE (dni,nombre,apellidos)
PRODUCTO(código,descripción)
COMPRAS(dni_cliente,código_producto,fecha_compra)
Relaciones 1: N
Veamos ahora el caso de una relación 1:N. En el siguiente modelo entidad-relación un empleado pertenece a un único departamento (debe pertenecer a uno obligatoriamente), y un departamento tiene 1 o más empleados.



En este caso se propaga el atributo código de departamento a la tabla EMPLEADO. El modelo relacional quedaría de la siguiente manera:
EMPLEADO(dni,nombre,salario,código_departamento)
DEPARTAMENTO(código,nombre,localización)
Imaginemos ahora que pudiera darse el caso de que hubiera empleados que no pertenecieran a ningún departamento.





En este caso la entidad que participa con cardinalidad máxima 1, DEPARTAMENTO, también lo hace con cardinalidad mínima 0, ya que puede haber empleados que no pertenezcan a ningún departamento. Así pues, se crea una nueva tabla formada por dni de EMPLEADO y código de DEPARTAMENTO. En esta nueva tabla dni de EMPLEADO será la clave primaria. El modelo relacional quedaría de la siguiente forma:
EMPLEADO(dni,nombre,salario)
DEPARTAMENTO(código,nombre,localización)
PERTENECE(dni_empleado,código_departamento)


Relaciones 1:1
Veamos ahora el caso de una relación 1:1 a través del siguiente ejemplo. En el siguiente modelo entidad-relación un equipo de fútbol tiene a un único presidente y un presidente preside a un único club de fútbol.





En este ejemplo, tal y como dicen las reglas, podemos propagar la clave de cualquier tabla a la tabla resultante de la otra. Es decir, tenemos dos opciones, o mover la clave de PRESIDENTE a EQUIPO o mover la clave de EQUIPO a PRESIDENTE. El modelo relacional podría quedar de cualquiera de las dos formas siguientes:
EQUIPO(código,nombre,año_fundación)
PRESIDENTE(dni,nombre,código_equipo)
EQUIPO(código,nombre,año_fundación,dni_presidente)
PRESIDENTE(dni,nombre)
Relaciones reflexivas
Veamos ahora como quedaría en el modelo relacional la siguiente relación reflexiva. En el siguiente modelo entidad-relación un ALUMNO es delegado de varios ALUMNOS y un ALUMNO tiene obligatoriamente un delegado y sólo a uno.








Como podemos observar en las reglas de transformación, en este caso la relación reflexiva se trata como si fuera una relación binaria con la particularidad de que las dos entidades son iguales. Al tratarse de una relación 1:N se propagará la clave de la entidad ALUMNO a la entidad ALUMNO, quedando el modelo relacional de la siguiente forma:
ALUMNO(num_expediente,nombre,num_expediente_delegado)

miércoles, 28 de mayo de 2008

Ventajas de las Bases de Datos:

Ventajas de las Bases de Datos:

Los Datos
Independencia de estos respecto de los tratamientos y viceversa.
Mejor disponibilidad de los mismos.
Mayor eficiencia en la recogida, codificación y entrada.
Los Resultados
Mayor coherencia.
Mayor valor informativo.
Mejor y más normalizada documentación de la informa
Los Usuarios :
Acceso más rápido y sencillo de los usuarios finales.
Más facilidades para compartir los datos por el conjunto de los usuarios.
Mayor flexibilidad para atender a demandas cambiantes.

Independencia de los datos respecto a los tratamientos y viceversa: Un cambio en los tratamientos no imponga un nuevo diseño lógico y/o físico de la base de datos.
Coherencia de los resultados: En todos los tratamientos se utilizan los mismos datos, por lo que los resultados de estos son coherentes y comparables.
Mejor disponibilidad de los datos para el conjunto de los usuarios: Éstos se comparten entre las aplicaciones, existiendo una mayor disponibilidad y transferencia.
Mayor valor informativo: El valor informativo del conjunto de datos es superior a la suma del valor informativo de los elementos individuales.
Mejor y más normalizada documentación: La mayoría de los SGBD incluyen una descripción de los datos dentro del sistema.
Mayor eficiencia en la captura, validación e ingreso de datos al sistema: Por no existir redundancia.
Reducción del espacio de almacenamiento: Disminución de redundancias y las técnicas de compactación hacen que disminuya el espacio en disco.

La implantación
Costosa en equipos (lógico y físico).
Ausencia de estándares.
Larga y difícil puesta en marcha.
Rentabilidad a mediano plazo.

Los usuarios
Personal especializado.
Desfase entre teoría y práctica.
Desventajas de las Bases de Datos:

o Instalación costosa: Equipos: Nuevas instalaciones o ampliaciones, sistemas operativos, compiladores, SGBD comerciales, computadores más poderosos, etc.
o Personal especializado: Se requiere de conocimientos específicos.
o Desfase entre teoría y práctica: Muchos asumen a ciertas funcionalidades como un hecho cuando en realidad son estudios teóricos.

lunes, 19 de mayo de 2008

HOLA YO SOY IVONNE

HOLA COMO ESTAN .LOS INVITO AMI BLOGSPOT.