jueves, 6 de septiembre de 2012

Tarea III: Resumen (Claves y cuestiones de diseño)


2.3 Clave

Es necesario tener una forma de especificar cómo las entidades dentro de un conjunto de entidades y las relaciones dentro de un conjunto de relaciones son distinguibles. Los valores de los atributos de una entidad deben ser tales que permitan identificar unívocamente a la entidad. Una clave permite identificar un conjunto de atributos suficiente para distinguir las entidades entre sí. Las claves también ayudan a identificar unívocamente a las relaciones y así a distinguir las relaciones entre sí.

 2.3.1 Conjuntos de entidades

 Una superclave es un conjunto de uno o más atributos que, tomados colectivamente, permiten identificar de forma única una entidad en el conjunto de entidades. Por ejemplo, el atributo id-cliente del conjunto de entidades cliente es suficiente para distinguir una entidad cliente de las otras. Así, id-cliente es una superclave. El atributo nombre-cliente de cliente no es una superclave, porque varias personas podrían tener el mismo nombre. Tales superclaves mínimas se llaman claves candidatas.
 Una clave (primaria, candidata y superclave) es una propiedad del conjunto de entidades. Dos entidades individuales en el conjunto no pueden tener el mismo valor en sus atributos clave al mismo tiempo. La designación de una clave representa una restricción en el desarrollo del mundo real que se modela. La clave primaria se debería elegir de manera que sus atributos nunca cambien. Por ejemplo, el campo dirección de una persona no debería formar parte de una clave primaria, porque probablemente cambiará.

2.3.2 Conjuntos de relaciones.

La clave primaria de un conjunto de entidades permite distinguir entre las diferentes entidades del conjunto. Se necesita un mecanismo similar para distinguir entre las diferentes relaciones de un conjunto de relaciones. Sea R un conjunto de relaciones que involucra los conjuntos de entidades E1, E2,…, En. Sea clave-primaria (Ei) el conjunto de atributos que forma la clave primaria para el conjunto de entidades Ei.
La composición de la clave primaria para un conjunto de relaciones depende de la estructura de los atributos asociados al conjunto de relaciones R.
Si el conjunto de relaciones R no tiene atributos asociados, entonces el conjunto de atributos: clave-primaria(E1) clave-primaria(E2) clave-primaria(En) describe una relación individual en el conjunto R.
Si el conjunto de relaciones R tiene atributos a1, a2,…, am asociados a él, entonces el conjunto de atributos clave-primaria(E1) clave-primaria(E2) clave- primaria(En) {a1, a2,…,am} describe una relación individual en el conjunto R. En el caso de que los nombres de atributos de las claves primarias no sean únicos en todos los conjuntos de entidades, los atributos se renombran para distinguirlos; el nombre del conjunto de entidades combinado con el atributo formaría un nombre único. La estructura de la clave primaria para el conjunto de relaciones depende de la correspondencia de cardinalidades asociada al conjunto de relaciones. Para relaciones uno a uno se puede usar cualquier clave primaria. Para las relaciones no binarias, si no hay restricciones de cardinalidad, entonces la superclave es la única clave candidata, y se elige como clave primaria. La elección de la clave primaria es más complicada si aparecen restricciones de cardinalidad.

2.4 Cuestiones de diseño

Los conceptos entre entidades y relaciones pueden definirse de diferentes formas debido a la imprecisión en la percepción de sus conceptos. A continuación se exploran las cuestiones básicas de diseño de un esquema de base de datos E-R.

2.4.1 Uso de entidades o atributos

Tomaremos como ejemplo el conjunto de entidades empleado con sus respectivos atributos nombre-empleado y número-teléfono definiremos la manera mas adecuada de usar ya sea entidades separadas o atributos del mismo conjunto de entidades.
Así podemos deducir que el conjunto de entidades empleado queda con el atributo nombre-empleado, el conjunto de entidades teléfono con los atributos número-teléfono y ubicación (del teléfono) y la relación empleado-teléfono que establece la relación entre empleados y los teléfonos que tienen.
Por la parte de la entidad teléfono  el echo de ser una identidad por si misma con sus atributos propios número-teléfono y ubicación nos permite facilitar el modelado de la información que puede almacenar permitiendo así que a un empleado le podamos asignar uno, varios o ningún teléfono a través del atributo número-teléfono que marcaremos como multivalorado.
Caso contrario para la entidad empleado resulta inconveniente definir a su atributo nombre-empleado como una entidad por si misma puesto que el empleado solo tiene un nombre que lo identifica, así pues es adecuado tener a nombre-empleado simplemente como atributo de la entidad empleado.
 De esto podemos concluir que la constitución de un conjunto de entidades y un atributo dependerán puntualmente de las necesidades en el mundo real para las que se esté modelando y la semántica asociada al atributo en cuestión.
Un error común es usar la clave primaria de un conjunto de entidades como un atributo de otro conjunto de entidades, ya que lo correcto en ves de esto es usar una relación que especifique la interacción entre ambos conjuntos de entidades.
Otro error similar es designar a los atributos de la clave primaria de los conjuntos de entidades relacionados como atributos del conjunto de relaciones debido a que los atributos de la clave primaria van implícitos en la relación.


2.4.2 Uso de conjuntos de entidades o conjuntos relacionales

No siempre es claro cual de estos conjuntos es más conveniente de utilizar. Partiremos del ejemplo de que un préstamo debe modelarse como entidad. Alternativo a esto planteemos la alternativa de modelar préstamo no como entidad sino como una relación entre clientes y sucursales con los atributos descriptivos número-préstamo e importe y cada préstamo será la relación entre un cliente y una sucursal.
La alternativa es satisfactoria si cada préstamo se relaciona solo con un cliente y una sucursal pero resulta problemático si varios clientes comparten un préstamo. Para esto implicaría que para cada cliente debiéramos de aplicarles el mismo valor en los atributos número-préstamo e importe en su relación con la sucursal.
Esto representa 2 problemas principales; el primero que los mismos datos deben ser almacenados varias veces desperdiciando espacio de almacenamiento; y segundo que la actualización de datos nos da el riesgo de que dichos valores se modifiquen siendo que debieran tener el mismo valor.
En este caso entonces resulta conveniente aplicar la teoría de la normalización para evitar los inconvenientes ya planteados de dicha alternativa.
Meramente como una posible guía para determinar la conveniencia de usar conjuntos de entidades o de relaciones es designar un conjunto de relaciones para describir una acción que ocurre entre entidades; este mismo enfoque resulta útil para discernir entre si un atributo es mas conveniente si se usa como relación o no.

2.4.3. Conjuntos de relaciones binarias o n-arias


Las relaciones en las bases de datos son generalmente binarias. Algunas relaciones que parecen no ser binarias podrían ser representadas de una mejor manera realizando varias relaciones binarias. Por ejemplo, uno podría crear una relación ternaria padres, que relaciona un hijo con su padre y su madre. De esta manera, dicha relación podría ser representada por dos relaciones binarias padre y madre, relacionando un hijo con su padre y su madre por separado.

Siempre es posible remplazar un conjunto de relaciones no binarias (n-aria, para n > 2) por un número de diferentes conjuntos de relaciones binarias.
Para simplificar mas lo son las relaciones binarias, considérese el conjunto de relaciones abstracto R, ternario (n = 3), y los conjuntos de entidades A, B, y C. Se sustituye el conjunto de relaciones R por un conjunto de entidades E y se crean tres conjuntos de relaciones:

  •  RA, relacionando E y A
  •  RB, relacionando E y B
  •  RC, relacionando E y C
Si el conjunto de relaciones R tiene atributos, éstos son asignados al conjunto de entidades E; de esta manera se crea un atributo de identificación especial para E.
Para cada relación (ai,bi,ci) del conjunto de relaciones R, se crea una nueva entidad ei en el conjunto de entidades E. Entonces, en cada uno de los tres nuevos conjuntos de relaciones, se inserta un nuevo miembro como sigue:
  •  (ei,ai) en RA
  •  (ei,bi) en RB
  •  (ei,ci) en RC
De manera conceptual se puede restringir el modelo E-R para incluir sólo conjuntos de relaciones binarias pero esta restricción no es muy recomendable.



• Un atributo de identificación puede haber sido creado para el conjunto de entidades para representar el conjunto de relaciones. Este atributo, con los conjuntos de relaciones extra necesarios, incrementa la complejidad del diseño y los requisitos de almacenamiento.
• Un conjunto de relaciones n-arias muestra que varias entidades participan en una relación simple.
• Podría no haber una forma de traducir restricciones en la relación ternaria en restricciones sobre relaciones binarias. Por ejemplo, considérese una restricción que dice que R es varios a uno de A, B a C; es decir, cada par de entidades de A y B se asocia con a lo sumo una entidad C. Esta restricción no se puede expresar usando restricciones de cardinalidad sobre los conjuntos de relaciones RA, RB y RC.


Un conjunto de relaciones se puede dividir en relaciones binarias creando nuevos conjuntos de entidades sin embargo, no sería muy natural.

2.4.4. Ubicación de los atributos de las relaciones


La razón de cardinalidad de una relación puede afectar a los atributos de una relación. Los atributos de los conjuntos de relaciones uno a uno o uno a varios pueden estar asociados con uno de los conjuntos de entidades participantes, en lugar de con el conjunto de relaciones.
Cada entidad participa en una relación con a lo sumo un ejemplar. Los atributos de un conjunto de relaciones uno a varios se pueden colocar sólo en el conjunto de entidades de la parte «varios» de la relación. Para los conjuntos de entidades uno a uno, los atributos de la relación se pueden asociar con cualquiera de las entidades participantes. La decisión de diseño de dónde colocar los atributos descriptivos en tales casos (como un atributo de la relación o de la entidad) podría reflejar las características de la empresa que se modela.
El diseñador puede mantener un atributo para expresar de manera explicita que ocurre un acceso en el punto de interacción entre un conjunto de entidades.
La elección de la colocación de los atributo es más clara para los conjuntos de relaciones varios a varios.
Cuando un atributo se determina mediante la combinación de los conjuntos de entidades participantes, en lugar de por cada entidad por separado, ese atributo debe estar asociado con el conjunto de relaciones varios a varios.        





martes, 4 de septiembre de 2012

Tarea II SGBD







Microsoft SQL Server 2012



SQL Server es un sistema gestor de base de datos (SGBD) producido por Microsoft y se basa en el modelo relacional. Los lenguajes de consulta de SQL Server son T-SQL y ANSI SQL; siendo T-SQL el principal medio de interacción con el servidor permitiendo realizar las operaciones claves en SQL Server, incluyendo la creación y modificación de esquemas de la base de datos, la introducción y edición de los datos en la base de datos, así como la administración del servidor como tal.


SQL Server tiene la capacidad de poner a disposición de muchos usuarios grandes cantidades de datos de manera simultánea.

Actualmente la versión mas reciente de SQL Server es la 2012, esta nueva versión, como es lógico, tiene algunas mejoras respecto a versiones anteriores. SQL Server es una plataforma para soluciones de misión crítica sobre una plataforma de alta disponibilidad y escalable. Sus herramientas de desarrollo ayudan a los desarrolladores a crear aplicaciones innovadoras, y las herramientas de integración de datos y gestión ponen a disposición de los usuarios adecuados información fiable.
Entre las ventajas añadidas a SQL Server 2012 respecto a versiones anteriores podemos encontrar las siguientes:


  • Plataforma de misión crítica mejorada: nuevas mejoras en alta disponibilidad y escalabilidad. 
  • Productividad para los profesionales de Ti y Desarrollo. 
  • Análisis más amplios e intensivos: extiende el alcance de las tecnologías de BI a los usuarios de empresa y facilita la integración y administración de datos en todas sus fases.


Características principales



-Plataforma:


Para la instalación de SQL Server 2012 se requiere contar con cualquiera de las siguientes plataformas: 

  • Windows 7 Windows 
  • Server 2008 R2 
  • Windows Server 2008 Service Pack 2 
  • Windows Vista Service Pack 2 

Además, SQL Server 2012 nos ofrece la opción de un Licenciamiento está optimizado para la computación en la Nube, con la posibilidad de licenciar una única máquina virtual (VM) o un servidor para extender al máximo las posibilidades de virtualización. También ofrecerá flexibilidad para migrar las VMs desde un servidor a otro, hacia proveedores de hosting externos, o a la Nube.

-Requerimientos del sistema para la instalación:


En las ediciones de 32 o 64 bits de SQL Server 2012 se aplica lo siguiente:

  • Se recomienda ejecutar SQL Server 2012 en equipos con el formato de archivo NTFS. SQL Server 2012 se puede instalar en un equipo con el sistema de archivos FAT32, pero no se recomienda porque es menos seguro que el sistema de archivos NTFS.
  • El programa de instalación de SQL Server bloqueará las instalaciones en unidades de disco de solo lectura, asignadas o comprimidas.
  • SQL Server requiere que se instale una actualización para asegurarse de que se puede instalar correctamente el componente de Visual Studio. El programa de instalación de SQL Server comprueba la presencia de esta actualización y, a continuación, le exige que descargue e instale la actualización antes de continuar con la instalación de SQL Server o bien puede instalar todas las actualizaciones de .NET 3.5 SP1 disponibles en Windows Update
  • Si instala SQL Server 2012 en un equipo con el sistema operativo Windows Vista SP2 o Windows Server 2008 SP2, requiere obtener dicha actualización.
  •  Si instala SQL Server 2012 en un equipo con el sistema operativo Windows 7 SP1 o Windows Server 2008 R2 SP1, esta actualización ya está incluida.
  • La instalación de SQL Server 2012 produce un error si se inicia la instalación con Terminal Services Client. No se admite el inicio del programa de instalación de SQL Server con Terminal Services Client.

-Seguridad:


En cuanto a seguridad se ofrece seguridad avanzada a través de SQL Server Audit que cuanta con las siguientes capacidades claves: 
  • Fácil de gestionar los permisos de acceso a datos con cerca de funciones de servidor definidas por el usuario. 
  • Aumentar la manejabilidad y la complejidad disminución de esquema de base de datos a través de esquemas predeterminados para los grupos. 
  • Controlar el acceso de base de datos para las aplicaciones implementadas al tiempo que mejora la manejabilidad a través de la autenticación de base de datos independiente. 
  • Ayude a garantizar la gestión y el cumplimiento de aumento en relación con la auditoría con la resistencia de auditoría, filtrado y definido por el usuario con la auditoría. 
  • Jerarquía integrada en criptografía. Cifrado de datos transparente. 
  • Emplear Administración extensible de claves. 
  • Regístrate módulos de código. 
  • Construido en la cima de las grandes características de SQL Server. 
  • Capacidad para crear certificados de bytes. 
  • Servidor predeterminado Master Key (SMK), Base de Datos Master Key (DMK), llave de copias de seguridad mediante AES256. 
  • El nuevo soporte para SHA2 (256 y 512). El uso de SHA512 para los hashes de contraseñas. 

Respaldos:


SQL Server 2012 incluye un soporte para volúmenes de backup espejados a través de la herramienta Microsoft SQL Server Management Studio, aumentando la disponibilidad de las copias de seguridad de SQL Server. La posibilidad de replicar el backup permite resolver posibles problemas de corrupción del medio físico de copia.

Restauración:


SQL Server 2012 permitirá realizar una operación de recuperación mientras una instancia de SQL Server está activa, para esto también se ocupa le herramienta Microsoft SQL Server Management Studio. La restauración online mejora la disponibilidad de SQL Server, ya que únicamente los datos que se están recuperando quedan como no disponibles. El resto de la base de datos permanece online y disponible.


Esta característica mejora la disponibilidad de las bases de datos de SQL Server con una nueva opción. Los usuarios podrán reconectarse a una base de datos en recuperación después de que realizar un "roll forward" sobre el log de transacciones.




MySQL


MySQL es el servidor de bases de datos relacionales más popular, desarrollado y proporcionado por MySQL AB.


El software de bases de datos MySQL consiste de un sistema cliente/servidor que se compone de un servidor SQL multihilo, varios programas clientes y bibliotecas, herramientas administrativas, y una gran variedad de interfaces de programación (APIs). Se puede obtener también como una biblioteca multihilo que se puede enlazar dentro de otras aplicaciones para obtener un producto más pequeño, más rápido, y más fácil de manejar.







Características de MySQL



Las principales características de este gestor de bases de datos son las siguientes: 
  • Aprovecha la potencia de sistemas multiprocesador, gracias a su implementación multihilo. 
  • Soporta gran cantidad de tipos de datos para las columnas. 
  • Dispone de API's en gran cantidad de lenguajes (C, C++, Java, PHP, etc). 
  • Gran portabilidad entre sistemas. 
  • Soporta hasta 32 índices por tabla. 
  • Gestión de usuarios y passwords, manteniendo un muy buen nivel de seguridad en los datos. 


MySQL 5.5


La versión mas reciente y estable que se presenta hasta la actualidad es MySQL 5.5 



Mejoras en MySQL 5.5:


Mayor disponibilidad: gracias a sus nuevos sistemas de réplica semi-síncrona y Replication Heart Beat se han mejorado notablemente la velocidad de recuperación y la fiabilidad de la base de datos. 
Una usabilidad más sencilla gracias a mejoras en los índices y las particiones de tablas, soporte SIGNAL/RESIGNAL y capacidades de diagnóstico avanzado. 
Rendimiento y escalabilidad mejorados: la base de datos MySQL y el motor de almacenamiento InnoDB han sido mejorados para proporcionar escalabilidad y óptimo rendimiento trabajando con los últimos sistemas operativos y el más novedoso hardware multi-CPU y multi-core. Además InnoDB se convierte en el motor de almacenamiento de serie para MySQL, lo que garantiza las transacciones ACID, la integridad referencial y la recuperación ante problemas. 


Seguridad


En MySQL, se debe considerar varios aspectos referentes a la seguridad del servidor MySQL y aplicaciones relacionadas: 
Los factores generales que afectan a la seguridad. Estos incluyen la elección de una buena contraseña, que no conceda privilegios innecesarios a los usuarios, garantizando la seguridad de aplicaciones mediante la prevención de las inyecciones SQL y corrupción de datos, entre otros. 
Seguridad de la propia instalación. Los archivos de datos, archivos de registro y los archivos de todas las aplicaciones de su instalación debe ser protegido para asegurar que no se pueden leer o escribir por personas no autorizadas. 
Control de acceso y seguridad en el sistema de base de datos en sí, incluyendo a los usuarios y bases de datos otorgados con acceso a las bases de datos, puntos de vista y programas almacenados en uso dentro de la base de datos. 
Red de seguridad de MySQL y el sistema. La seguridad está relacionada con las subvenciones para los usuarios individuales, pero también podría restringir MySQL para que esté disponible sólo localmente en la máquina del servidor MySQL, o para un conjunto limitado de otros hosts. 


Restauración:


MySQL ofrece una variedad de estrategias de copia de seguridad desde el que puede elegir los métodos que mejor se adapte a los requisitos para su instalación.


Tipos de copias de seguridad: 

Copias de seguridad física (Raw) Versus Lógico: Consisten en copias sin procesar de los directorios y archivos que almacenan contenido de bases de datos. Este tipo de copia de seguridad es adecuado para grandes bases de datos importantes que necesitan ser recuperado rápidamente cuando se producen problemas. 

Las copias de seguridad en línea Versus Desconectado: Tienen lugar mientras el servidos MySQL se está ejecutando para que la información de bade de datos se pueda obtener desde el servidor. Copias de seguridad fuera de línea tienen lugar mientras el servidor está detenido. Esta distinción también puede ser descrito como " caliente "frente a" frío "copias de seguridad, un" caliente "copia de seguridad es aquella en la que el servidor sigue funcionando pero están bloqueados contra la modificación de datos, mientras que acceder a los archivos de base de datos externa. 
Las copias de seguridad de instantáneas: Estos proporcionan copias lógicas del sistema de archivos en un punto dado en el tiempo, sin necesidad de una copia física del sistema de archivos. MySQL no proporciona la capacidad de tomar instantáneas del sistema de archivos. Está disponible a través de soluciones de terceros como Veritas, LVM, o ZFS. 
Copias de seguridad completas Versus Incremental: Una copia de seguridad completa incluye todos los datos administrados por un servidor MySQL en un punto dado en el tiempo. Una copia de seguridad incremental consiste en los cambios realizados en los datos durante un período de tiempo determinado (desde un punto en el tiempo a otro). MySQL tiene maneras diferentes para realizar copias de seguridad completas, tales como los descritos anteriormente en esta sección. Copias de seguridad incrementales son posibles gracias a que permite el registro del servidor binario, que utiliza el servidor para registrar los cambios de datos. 



MySQL funciona sobre múltiples plataformas:


  • AIX 
  • BSD 
  • FreeBSD 
  • HP-UX 
  • Kurisu OS 
  • GNU/Linux 
  • Mac OS X 
  • NetBSD 
  • OpenBSD 
  • OS/2 Warp 
  • QNX 
  • SGI IRIX 
  • Solaris 
  • SunOS 
  • SCO OpenServer 
  • SCO UnixWare 
  • Tru64 
  • eBD 
  • Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8 y Windows Server (2000, 2003 y 2008). 
  • OpenVMS 


Oracle 11g



El costo de la licencia oscila entre los 180 y 400 dólares dependiendo del tipo de licencia de usuario La capacidad de BDD es alta ya que soporta hasta 4 peta bytes de información.Cuenta con administración de usuarios así como la administración de roles, además soporta trigers y store procedure, cuenta con conectividad JDBC y ODBC.Es un DBMS seguro ya que cuenta con un proceso de sistema de respaldo y recuperación de información. Soporta Data Warehouse por lo que facilita el acceso a la información y da mayor versatilidad.



Sistemas operativos sobre los cuales se puede instalar el DBMS:



· Microsoft Windows server 2008 (32-bit)


  • · Microsoft Windows server 2008 x64
  • · Linux x86
  • · Linux x86-64
  • · Solaris (SPARC) (64-bit)
  • · AIX (PPC64)
  • · HP-UX Itanium
  • · HP-UX PA-RISC (64-bit) 

Hay dos formas de licenciarse, por usuario y por procesador, es decir, que se puede pagar por el número de usuarios o por el número de procesadores.

Tipos de datos generales que soporta


  • VARCHAR2
  • NVARCHAR2
  • CHAR RAW
  • NUMBER FLOAT
  • INTEGER
  • DATE
  • TIMESTAMP WITH TIMEZONE As TIMESTAMP
  • TIMESTAMP WITH LOCAL TIMEZONE
  • INTERVAL DAY TO SECOND
  • CLOB
  • NCLOB
  • BLOB
  • BFILE
  • LONG
  • LONG RAW




Permite una Rápida Recuperación de Datos a través de Oracle Data Guard


Oracle Data Guard coordina el mantenimiento y la sincronización de su base de datosentre los servidores remotos y locales para una rápida recuperación ante desastres o fallas en el sitio. Oracle Database 11g ofrece varias mejoras importantes en Oracle Data Guard, con inclusión de: 

• La capacidad de realizar consultas en tiempo real en un sistema standby físico para fines informativos y otros propósitos 

• La capacidad de realizar actualizaciones online y rotativas de la base de datos al convertir temporalmente un sistema standby físico a uno standby lógico

• Snapshot standby para respaldar entornos de prueba 

Asimismo, se mejora el desempeño del sistema standby físico y lógico. El sistema standby lógico ahora respalda Extensible Markup Language (XML), los tipos de datos

Character Large Object (CLOB) y la encriptación de datos transparentes. El failoverautomático de inicio rápido ahora es respaldado para el transporte asíncrono. 



Protege los Datos con Administración Automática de Almacenamiento


Con la Administración Automática de Almacenamiento, Oracle Database 11g automáticamente duplica y equilibra los datos a través de los dispositivos de almacenamiento disponibles para proteger los datos y optimizar el desempeño —inclusocuando se agregan o eliminan discos nuevos. Oracle Database 11g ofrece varias mejoras importantes de alta disponibilidad para la Administración Automática de Almacenamiento, con inclusión de las siguientes características: 

  • Soporte de actualizaciones rotativas 
  • Detección y reparación automática de bloques defectuosos 
  • Rápida resincronización de duplicación, lo cual vuelve a sincronizar de maneraefectiva los grupos de almacenamiento que la Administración Automática de Almacenamiento duplica cuando se pierde temporalmente la conectividad de la red de almacenamiento 
  • Las mejoras de desempeño en la Administración Automática de Almacenamiento permiten a las bases de datos muy grandes abrirse más rápido y reducir el consumo dememoria SGA. 
  • También permiten a los DBA aumentar el tamaño de la unidad de asignación de almacenamiento para acelerar la gran cantidad de entradas/salidas (I/Os) secuenciales.