SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
Universidad de El Salvador
Facultad Multidisciplinaria de Occidente




               ENTITY
               FRAMEWORK Y                  1 de enero
               MYSQL                        2012
               CLUSTER

               Docente : Ing. Alexander
               Calderón


Alumnos:

      Canales Mancia Guillermo Ernesto

      Flores Castro Francisco Alexander

      Marroquín Paniagua Kenny Guadalupe

      Rodriguez Umaña, Oscar Gustavo

      Salinas Rodríguez Arturo Ernesto
Entity Framework

Entity Framework es un conjunto de tecnologías de ADO.NET que permiten el desarrollo
de aplicaciones de software orientadas a datos. Los arquitectos y programadores de
aplicaciones orientadas a datos se han enfrentado a la necesidad de lograr dos objetivos
muy diferentes:

    modelar las entidades, las relaciones y la lógica de los problemas empresariales
     que resuelven.
    trabajar con los motores de datos que se usan para almacenar y recuperar los
     datos.

Los datos pueden abarcar varios sistemas de almacenamiento, cada uno con sus propios
protocolos; incluso las aplicaciones que funcionan con un único sistema de
almacenamiento deben equilibrar los requisitos del sistema de almacenamiento con
respecto a los requisitos de escribir un código de aplicación eficaz y fácil de mantener.
Entity Framework permite a los programadores trabajar con datos en forma de objetos y
propiedades específicos del dominio, por ejemplo, con clientes y direcciones, sin tener
que pensar en las tablas de las bases de datos subyacentes y en las columnas en las que
se almacenan estos datos. Con Entity Framework, los desarrolladores de software pueden
trabajar en un nivel más alto de abstracción cuando tratan con datos, y puede crear y
mantener aplicaciones orientadas a datos con menos código que en las aplicaciones
tradicionales. Dado que Entity Framework es un componente de .NET Framework, las
aplicaciones se pueden ejecutar en cualquier equipo en el que esté instalado .NET
Framework a partir de la versión 3.5 SP1. Además permite a los desarrolladores crear
aplicaciones de acceso a datos programando con un modelo de aplicaciones
conceptuales en lugar de programar directamente con un esquema de almacenamiento
relacional. El objetivo es reducir la cantidad de código y el mantenimiento necesarios para
las aplicaciones orientadas a datos. Las aplicaciones de Entity Framework ofrecen las
siguientes ventajas:

      Las aplicaciones pueden funcionar en términos de un modelo conceptual más
       centrado en la aplicación, que incluye tipos con herencia, miembros complejos y
       relaciones.

      Las aplicaciones están libres de dependencias de codificación rígida de un motor
       de datos o de un esquema de almacenamiento.

      Las asignaciones entre el modelo conceptual y el esquema específico de
       almacenamiento pueden cambiar sin tener que cambiar el código de la aplicación.

      Los desarrolladores pueden trabajar con un modelo de objeto de aplicación
       coherente que se puede asignar a diversos esquemas de almacenamiento,
       posiblemente implementados en sistemas de administración de base de datos
       diferentes.

      Se pueden asignar varios modelos conceptuales a un único esquema de
       almacenamiento.

      La compatibilidad con Lenguaje Integrated Query (LINQ) proporciona validación de
       la sintaxis en el momento de la compilación para consultas en un modelo
       conceptual.

Un enfoque de diseño habitual para crear una aplicación o un servicio consiste en dividir
la aplicación o el servicio en tres partes:

    modelo de dominio: define las entidades y relaciones del sistema que se está
     modelando.
    modelo lógico: relacional normaliza las entidades y relaciones en tablas con
     restricciones de claves externas.
    modelo físico: abarca las capacidades de un motor de datos determinado
     especificando los detalles del almacenamiento en forma de particiones e índices.

Los administradores de bases de datos refinan el modelo físico para mejorar el
rendimiento, pero los programadores que escriben el código de la aplicación
principalmente se limitan a trabajar con el modelo lógico escribiendo consultas SQL y
llamando a procedimientos almacenados. Los modelos de dominio se suelen usar como
una herramienta para capturar y comunicar los requisitos de una aplicación, con
frecuencia como diagramas inertes que se ven y se explican en las primeras etapas de un
proyecto, y a continuación se abandonan. Muchos equipos de desarrolladores omiten la
creación de un modelo conceptual y comienzan especificando las tablas, columnas y
claves en una base de datos relacional.

Entity Framework da vida a los modelos conceptuales permitiendo a los programadores
consultar las entidades y relaciones en el modelo de dominio (denominado modelo
conceptual en Entity Framework) al tiempo que se basan para traducir esas operaciones
en los comandos específicos del origen de datos. Esto libera a las aplicaciones de las
dependencias codificadas de forma rígida en un origen de datos determinado. El modelo
conceptual, el modelo de almacenamiento y las asignaciones entre los dos se expresan
en esquemas basados en XML y se definen en archivos que tienen extensiones de
nombre correspondientes:

      El lenguaje de definición de esquemas conceptuales (CSDL) define el modelo
       conceptual. CSDL es la implementación de Entity Framework del Entity Data
       Model. La extensión de archivo es .csdl.

      El lenguaje de definición de esquemas de almacenamiento (SSDL) define el
       modelo de almacenamiento, que también se denomina modelo lógico. La
       extensión de archivo es .ssdl.

      El lenguaje de especificación de asignaciones (MSL) define las asignaciones entre
       los modelos conceptuales y de almacenamiento. La extensión de archivo es .msl.

El modelo de almacenamiento y las asignaciones pueden cambiar según sea necesario
sin requerir cambios en el modelo conceptual, las clases de datos o el código de la
aplicación. Dado que los modelos de almacenamiento son específicos del proveedor,
puede trabajar con un modelo conceptual coherente a través de varios orígenes de datos.

Entity Framework utiliza estos modelos y archivos de asignación para transformar las
operaciones de creación, lectura, actualización y eliminación de las entidades y relaciones
del modelo conceptual en las operaciones equivalentes en el origen de datos. Entity
Framework incluso permite asignar las entidades del modelo conceptual a los
procedimientos almacenados en el origen de datos.

Asignar objetos a datos

La programación orientada a objetos supone un desafío al interactuar con sistemas de
almacenamiento de datos. Aunque la organización de clases suele reflejar la organización
de las tablas de bases de datos relacionales, el ajuste no es perfecto. Varias tablas
normalizadas suelen corresponder a una sola clase y las relaciones entre las clases se
representan a menudo de forma diferente a las relaciones entre tablas. Por ejemplo, para
representar el cliente de un pedido de ventas, una clase Order podría utilizar una
propiedad que contiene una referencia a una instancia de una clase Customer, mientras
que una fila de la tabla Order en una base de datos contiene una columna de clave
externa con un valor que corresponde a un valor de clave principal en la
tabla Customer (o conjunto de columnas). Una clase Customer podría tener una
propiedad denominada Orders que contuviera una colección de instancias de la
clase Order, mientras que la tabla Customer en una base de datos no tiene ninguna
columna comparable.Entity Framework proporciona a los desarrolladores de software la
flexibilidad para representar las relaciones de esta manera, o para modelar más
estrechamente las relaciones tal como se representan en la base de datos

Las soluciones existentes han intentado cubrir este hueco, que se suele denominar
"desigualdad de impedancia", asignando únicamente clases y propiedades orientadas a
objetos a las tablas y columnas relacionales. En lugar de seguir este enfoque tradicional,
Entity Framework asigna las tablas relacionales, columnas y restricciones FOREIGN KEY
de los modelos lógicos a las entidades y relaciones de los modelos conceptuales. Esto
permite una mayor flexibilidad al definir los objetos y optimizar el modelo lógico. Las
herramientas de Entity Data Model generan clases de datos extensibles según el modelo
conceptual. Se trata de clases parciales que se pueden extender con miembros
adicionales que el programador agrega. De forma predeterminada, las clases que se
generan para un modelo conceptual determinado derivan de las clases base que
proporcionan servicios para materializar las entidades como objetos y para realizar un
seguimiento de los cambios y guardarlos. Los desarrolladores pueden utilizar estas clases
para trabajar con las entidades y relaciones como objetos relacionados mediante
asociaciones. Los desarrolladores también pueden personalizar las clases que se
generan para un modelo conceptual. Para obtener más información,

Obtener acceso a los datos de entidad y cambiarlos

Como algo más que otra solución de asignación objeto-relacional, Entity Framework trata
fundamentalmente de permitir que las aplicaciones obtengan acceso y cambien los datos
que están representados como entidades y relaciones en el modelo conceptual. Entity
Framework usa la información de los archivos del modelo y de asignación para traducir
las consultas de objeto con los tipos de entidad que se representan en el modelo
conceptual en consultas específicas del origen de datos. Los resultados de la consulta se
materializan en objetos que Entity Framework administra. Entity Framework proporciona
las maneras siguientes de consultar un modelo conceptual y devolver objetos:

      LINQ to Entities. Proporciona compatibilidad con Language-Integrated Query
       (LINQ) para consultar los tipos de entidad que se definen en un modelo
       conceptual. Para obtener más información, vea LINQ to Entities.

      Entity SQL . Un dialecto de SQL, independiente del almacenamiento, que trabaja
       directamente con entidades del modelo conceptual y que admite conceptos de
       Entity Data Model. Entity SQL se utiliza tanto con consultas de objeto como con
       consultas que se ejecutan utilizando el proveedor EntityClient. Para obtener más
       información, vea Información.

      Métodos del generador de consultas Estos métodos permiten construir consultas
       de Entity SQL utilizando métodos de consulta del estilo de LINQ. .

El Entity Framework incluye el proveedor de datos de EntityClient. Este proveedor
administra las conexiones, traduce las consultas de entidad en consultas específicas del
origen de datos y devuelve un lector de datos que Entity Framework usa para materializar
los datos de la entidad en los objetos. Cuando no se requiere la materialización de los
objetos, el proveedor de EntityClient también se puede utilizar como un proveedor de
datos ADO.NET estándar habilitando las aplicaciones para ejecutar consultas Entity SQL
y usar el lector de datos de solo lectura devuelto
El diagrama muestra la arquitectura de Entity Framework para el acceso a datos.

Las herramientas de Entity Data Model pueden generar una clase derivada
de ObjectContext que representa el contenedor de entidades definido en el modelo
conceptual. Este contexto del objeto proporciona los medios para realizar el seguimiento
de los cambios y administrar las identidades, la simultaneidad y las relaciones. Esta clase
también expone un método SaveChanges que escribe las inserciones, actualizaciones y
eliminaciones en el origen de datos. Al igual que las consultas, estas modificaciones son
realizadas bien por los comandos que el sistema genera automáticamente o bien por los
procedimientos almacenados que el programador especifica.

Consideraciones generales de seguridad

Las consideraciones de seguridad siguientes se aplican a todas las aplicaciones que
utilizan Entity Framework.

Usar solo proveedores de orígenes de datos de confianza.

Para comunicarse con el origen de datos, un proveedor debe hacer lo siguiente:

      Recibir la cadena de conexión de Entity Framework .
      Traducir el árbol de comandos al lenguaje de consultas nativo del origen de datos.
      Ensamblar y devolver los conjuntos de resultados.

Durante la operación de inicio de sesión, la información que se basa en la contraseña del
usuario se pasa al servidor a través de las bibliotecas de red del origen de datos
subyacente. Un proveedor malintencionado puede robar las credenciales del usuario,
generar consultas malintencionadas o alterar el conjunto de resultados.

Cifrar la conexión para proteger los datos confidenciales.

Entity Framework no administra el cifrado de datos directamente. Si los usuarios tienen
acceso a los datos a través de una red pública, la aplicación debería establecer una
conexión cifrada al origen de datos para aumentar la seguridad. Para obtener más
información, consulte la documentación relacionada con la seguridad correspondiente al
origen de datos. Para un origen de datos de SQL Server, vea Cifrar las conexiones a SQL
Server.

Proteger la cadena de conexión.

La protección del acceso al origen de datos es uno de los objetivos más importantes a la
hora de proteger una aplicación. Una cadena de conexión presenta una vulnerabilidad
potencial si no se protege o si se construye incorrectamente. Al almacenar la información
de conexión en texto sin formato o conservarla en la memoria, se pone en riesgo todo el
sistema. A continuación se enumeran métodos recomendados para proteger las cadenas
de conexión:

      Utilice la autenticación de Windows con un origen de datos de SQL Server.
       Al utilizar la autenticación de Windows para conectarse a un origen de datos de
       SQL Server, la cadena de conexión no contiene información de contraseñas ni del
       inicio de sesión.
      Cifre las secciones del archivo de configuración mediante una configuración
       protegida.

       ASP.NET incluye una característica denominada configuración protegida, que
       permite cifrar la información confidencial en un archivo de configuración. Si bien se
       ha diseñado principalmente para ASP.NET, la configuración protegida también
       puede usarse para cifrar secciones de los archivos de configuración en
       aplicaciones Windows

       Para consultar una descripción detallada de las posibilidades de la nueva
       configuración protegida, vea Encrypting Configuration Information Using Protected
       Configuration.

      Almacene las cadenas de conexión en archivos de configuración protegidos.
       Nunca debería incrustar las cadenas de conexión en el código fuente. Las
       cadenas de conexión también se pueden almacenar en archivos de configuración,
       lo que elimina la necesidad de incrustarlas en el código de la aplicación. De forma
       predeterminada, el Asistente para Entity Data Model almacena las cadenas de
       conexión en el archivo de configuración de la aplicación. Debe proteger este
       archivo para evitar el acceso no autorizado.
      Utilice generadores de cadenas de conexión al crear dinámicamente las
       conexiones.

       Si debe construir las cadenas de conexión en tiempo de ejecución, utilice la
       clase EntityConnectionStringBuilder. Esta clase de generador de cadenas ayuda a
       evitar los ataques de inyección en las cadenas de conexión validando y anulando
       la información de entrada no válida. Para obtener más información, vea Cómo
       generar una cadena de conexión EntityConnection (Entity Framework). Use
       igualmente la clase de generador de cadenas adecuada para construir la cadena
       de conexión a un origen de datos que forme parte de la cadena de conexión de
       Entity Framework
HOW TO CLUSTER MYSQL

El término Clúster en Bases de Datos significa procesamiento paralelo, es decir como
clientes nos conectamos a un servidor qué física y lógicamente está distribuido en varias
PC’s , aprovechando el performance de todas en conjunto como una sola máquina, esto
es posible ya que el procesamiento se distribuye teniendo la administración, las bases de
datos y el servicio en nodos diferentes.

Hay que distinguir ciertos conceptos, en muchos contextos, el término "nodo" se usa para
indicar una máquina, pero cuando se discute MySQL Clúster significa un proceso. Puede
haber cualquier número de nodos en una máquina, para los que se usa el término
máquina clúster.

MySQL Clúster es una tecnología que permite clustering de bases de datos en memoria
en un entorno de no compartición. La arquitectura de no compartición permite que el
sistema funcione con hardware barato, y sin ningún requerimiento especial de hardware o
software. Tampoco tienen ningún punto único de fallo porque cada componente tiene su
propia memoria y disco.

Hay tres tipos de nodos clúster, y en una configuración MySQL Clúster mínima, al menos
habrá tres nodos, uno de cada tipo:

      El nodo de administración (MGM) : El rol de este tipo de nodo es administrar los
       otros nodos dentro del MySQL Clúster, tal como proporcionar datos de
       configuración, iniciar y parar nodos, ejecutar copias de seguridad, y así. Como
       este tipo de nodo administra la configuración de otros nodos, un nodo de este tipo
       debe arrancarse primero, antes de cualquier otro nodo. Un nodo MGM se arranca
       con el comando ndb_mgmd.
      El nodo de datos: Este es el tipo de nodo que almacena los datos del clúster. Hay
       tantos nodos de datos como réplicas, multiplicado por el número de fragmentos.
       Por ejemplo, con dos réplicas, cada uno teniendo dos fragmentos, necesita cuatro
       nodos de datos. No es necesario tener más de una réplica. Un nodo de datos se
       arranca con el comando ndbd.
   El nodo SQL: Este es el nodo que accede a los datos del clúster. En el caso de
       MySQL Clúster, un nodo cliente es un servidor MySQL tradicional que usa el motor
       NDB Clúster . Un nodo SQL típicamente se arranca con el comando mysqld --
       ndbcluster o símplemente usando mysqld con ndbcluster añadido a my.cnf.

La configuración de un clúster implica configurar cada nodo individual en el clúster e
inicializar los enlaces de comunicación individual entre los nodos. MySQL Clúster está
diseñado con la intención que los nodos de almacenamiento son homogéneos en
términos de procesador, espacio de memoria, y ancho de banda. Además, para
proporcionar un punto único de configuración, todos los datos de configuración del clúster
entero se guardan en un único fichero de configuración.

El servidor de administración (nodo MGM) administra el fichero de configuración del
clúster y el log. Cada nodo en el clúster recibe los datos de configuración del servidor de
administración, y necesita una forma de determinar dónde reside el servidor de
administración. Cuando ocurren eventos interesantes en los nodos de datos, los nodos
transfieren información acerca de estos eventos al servidor de administración, que guarda
la información en el log del clúster.

Además, puede haber cualquier número de procesos clientes del clúster o aplicaciones.
Hay de dos tipos:

      Clientes MySQL estándar: No son diferentes para MySQL Clúster que para
       cualquier MySQL (no clúster). En otras palabras, MySQL Clúster puede ser
       accedido para aplicaciones MySQL existentes escritas en PHP, Perl, C, C++,
       Java, Python, Ruby, y así.

      Clientes de administración: Estos clientes conectan al servidor de administración
       y proporcionan comandos para arrancar y parar nodos, arrancar y parar traceo de
       mensajes (sólo en versiones de depuración), mostrar versiones y estatus de
       nodos, arrancar y parar copias de seguridad, y así.

Hardware, software y redes

Una de las ventajas de MySQL Clúster es que puede ejecutarse en hardware normal sin
ningún requerimiento especial a parte de grandes cantidades de RAM, debido al hecho
que todos los datos se almacenan en memoria Naturalmente, CPUs múltiples y más
rápidas mejoran el rendimiento. Los requerimientos de memoria para procesos clúster son
relativamente pequeños.

Los requerimientos de software para Clúster son modestos. Los sistemas operativos de
las máquinas no requieren ningún modulo no usual, servicios, aplicaciones o
configuración extraña para soportar MySQL Clúster. Para Mac OS X o Solaris, la
instalación estándar es suficiente. Para Linux, una instalación estándar debe ser todo lo
necesario.
Para una comunicación entre nodos, el clúster soporta red TCP/IP en cualquier topología
estándar, y como mínimo se espera una red 100 Mbps Ethernet, más un switch, hub, o
router para proporcionar conectividad de red al clúster entero. Recomendamos que
MySQL Clúster se ejecute en su subred que no está compartida con máquinas no-clúster
por las siguientes razones:

      Seguridad: La comunicación entre nodos del clúster no están cifradas. La única
       forma de proteger transmisiones dentro de un MySQL Clúster es ejecutar su
       clúster en una red protegida. Si trata de usar MySQL Clúster para aplicaciones
       Web, el clúster debe residir detrás de un firewall y no en su DMZ (DMZ) o en otro
       lugar.

      Eficiencia: Inicializar un MySQL Clúster en una red privada o protegida permite
       que el clúster haga uso exclusivo del ancho de banda entre máquinas del clúster.
       Usar un switch esperado para su MySQL Clúster no sólo ayuda a protegerse de
       accesos no autorizados a los datos del clúster, también asegura que los nodos del
       clúster están protegidos de interferencias causadas por transmisiones entre otras
       máquinas en la red. Para mayor confianza puede usar switches duales y tarjetas
       duales para eliminar la red como punto único de fallo; varios dispositivos soportan
       fallos para estos enlaces de comunicación.

Arquitectura de un Clúster.
INSTALACION Y CONFIGURACION DE CLUSTER




                       192.168.1.5               192.168.1.9




                        192.168.1.6              192.168.1.4


Todos los ordenadores tienen instalado sistema operativo Linux



Instalación de Nodo de Administración: (MGM NODE):


   1-   Descargar archivo mysql-cluster-gpl-7.2.6-linux2.6-i686.tar
   2-   Descomprimir archivo
   3-   Ubicarse en el directorio del archivo recién descompreso
   4-   Copiar los binarios en la carpeta /usr/local/bin de la siguiente manera:
        cp bin/ndb_mgm* /usr/local/bin

   5- Ubicarse en el directorio /usr/local/bin
   6- Dar permisos de ejecución a los binarios recién copiados:

        chmod +x ndb_mgm*

   7- Crear en /var/lib/mysql_cluster un archivo llamado config.ini, el cual tiene que lucir
      de la siguiente manera:
Instalación de Nodos de datos:


     1-Agregar un usuario y un grupo llamado mysql al sistema operativo:

       #groupadd mysql
       #useradd -g mysql mysql


     2-Descargar y descomprimir archivo archivo mysql-cluster-gpl-7.2.6-linux2.6-
        i686.tar:

     #tar -C /usr/local -xzvf mysql-cluster-gpl-7.2.6-linux2.6-i686.tar

     3-Renombrar directorio recién descompreso a mysql para evitar sentencias muy
        largas
        #mv /usr/local/ mysql-cluster-gpl-7.2.6-linux2.6-i686 /usr/local/mysql
4-Situarse en directorio recién descompreso:
      #cd /usr/local/mysql

   5-Instalar bases de datos del sistema (propias de mysql):
       #scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql

   6-Aplicar permisos al usuario mysql para la ejecución:
    #cd /usr/local/mysql
     # chown -R root .
     # chown -R mysql data
     # chgrp -R mysql .

   7-Crear en el directorio /etc un archivo llamado my.cnf, este archivo es el
      encargado de dictar la dirección




   Instalación de nodo Mysql


1- Descargar y descomprimir archivo mysql-cluster-gpl-7.2.6-linux2.6-i686.tar

   #tar -C /usr/local -xzvf mysql-cluster-gpl-7.2.6-linux2.6-i686.tar

2- Renombrar directorio
    # mv /usr/local/mysql-cluster-gpl-7.0.15-linux-i686-glibc23.tar.gz /usr/local/mysql

3- Agregar usuario y grupo mysql

     # groupadd mysql
# useradd -g mysql mysql

   4- Moverse al directorio recién descompreso y darle permisos al usuario mysql

         # cd /usr/local/mysql
         # chown -R root .
         # chown -R mysql data
         # chgrp -R mysql

   5- Crear entrada en registro de servicios de Linux para mysql y darle permisos de
      ejecución
      # cp support-files/mysql.server /etc/init.d/mysql
      # chmod +x /etc/init.d/mysql


ARRANCADO DE CLUSTER

El proceso de arranque de un clúster consta de los siguientes pasos:


   1- Iniciar nodo de Administración




   2- Iniciar nodos de datos:




   3- Iniciar nodo Mysql
4- Verificar si en el nodo de administración aparecen conectados los nodos de datos
     y mysql
     Iniciando conexiones con nodos de datos




Nodos de datos conectados
Nodo Mysql Conectado

Contenu connexe

Tendances

Base De Datos OO y Deductivas
Base De Datos OO y DeductivasBase De Datos OO y Deductivas
Base De Datos OO y Deductivas
Darwin Gualotuña
 
Modelos de bases_de_datos
Modelos de bases_de_datosModelos de bases_de_datos
Modelos de bases_de_datos
22carlos
 
Base de datos relacional
Base de datos relacionalBase de datos relacional
Base de datos relacional
doc-92
 
Base de datos relacional
Base de datos relacionalBase de datos relacional
Base de datos relacional
chabbeine
 
Ejemplo arquitectura 3 capas con access
Ejemplo arquitectura 3 capas con accessEjemplo arquitectura 3 capas con access
Ejemplo arquitectura 3 capas con access
univ of pamplona
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)
josecuartas
 
Sio2009 Eq10 L10 Exp Gold Bernstein & Ruh Cap8 Information Integration Archit...
Sio2009 Eq10 L10 Exp Gold Bernstein & Ruh Cap8 Information Integration Archit...Sio2009 Eq10 L10 Exp Gold Bernstein & Ruh Cap8 Information Integration Archit...
Sio2009 Eq10 L10 Exp Gold Bernstein & Ruh Cap8 Information Integration Archit...
Juan José Ogarrio
 
Auditoria Administrativa 1
Auditoria Administrativa 1Auditoria Administrativa 1
Auditoria Administrativa 1
darusb
 
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspExplicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Boris Salleg
 
Base de datos-objeto-relacional
Base de datos-objeto-relacionalBase de datos-objeto-relacional
Base de datos-objeto-relacional
Eduar Alfons Leon
 

Tendances (20)

Modelos de datos
Modelos de datosModelos de datos
Modelos de datos
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
modelo de datos
modelo de datos modelo de datos
modelo de datos
 
Base De Datos OO y Deductivas
Base De Datos OO y DeductivasBase De Datos OO y Deductivas
Base De Datos OO y Deductivas
 
Motor de persistencia nhibernate
Motor de persistencia nhibernateMotor de persistencia nhibernate
Motor de persistencia nhibernate
 
Bases De Datos "Conceptos Basicos"
Bases De Datos "Conceptos Basicos"Bases De Datos "Conceptos Basicos"
Bases De Datos "Conceptos Basicos"
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Modelos de bases_de_datos
Modelos de bases_de_datosModelos de bases_de_datos
Modelos de bases_de_datos
 
Sistemas de base de datos
Sistemas de base de datosSistemas de base de datos
Sistemas de base de datos
 
Base de datos relacional
Base de datos relacionalBase de datos relacional
Base de datos relacional
 
Base de datos relacional
Base de datos relacionalBase de datos relacional
Base de datos relacional
 
Base de datos_SQL
Base de datos_SQLBase de datos_SQL
Base de datos_SQL
 
Ejemplo arquitectura 3 capas con access
Ejemplo arquitectura 3 capas con accessEjemplo arquitectura 3 capas con access
Ejemplo arquitectura 3 capas con access
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)
 
Sio2009 Eq10 L10 Exp Gold Bernstein & Ruh Cap8 Information Integration Archit...
Sio2009 Eq10 L10 Exp Gold Bernstein & Ruh Cap8 Information Integration Archit...Sio2009 Eq10 L10 Exp Gold Bernstein & Ruh Cap8 Information Integration Archit...
Sio2009 Eq10 L10 Exp Gold Bernstein & Ruh Cap8 Information Integration Archit...
 
Modelos de datos
Modelos de datosModelos de datos
Modelos de datos
 
Auditoria Administrativa 1
Auditoria Administrativa 1Auditoria Administrativa 1
Auditoria Administrativa 1
 
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspExplicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
 
Base de datos-objeto-relacional
Base de datos-objeto-relacionalBase de datos-objeto-relacional
Base de datos-objeto-relacional
 
Introduccion a los Modelos De Datos
Introduccion a los Modelos De DatosIntroduccion a los Modelos De Datos
Introduccion a los Modelos De Datos
 

Similaire à Entity Framework y Cluster en Mysql

Base de datos objeto
Base de datos objetoBase de datos objeto
Base de datos objeto
Raul Quispe P
 
Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3
Francisco Godoy
 
Universidad tecnológica de tehuacá modelos
Universidad tecnológica de tehuacá modelosUniversidad tecnológica de tehuacá modelos
Universidad tecnológica de tehuacá modelos
Victor Dolores Marcos
 
Sistema de gestión de base de datos ii parte
Sistema de gestión de base de datos  ii parteSistema de gestión de base de datos  ii parte
Sistema de gestión de base de datos ii parte
slopted
 

Similaire à Entity Framework y Cluster en Mysql (20)

Entity framework
Entity frameworkEntity framework
Entity framework
 
Introducción a los modelos de datos
Introducción a los modelos de datosIntroducción a los modelos de datos
Introducción a los modelos de datos
 
Base de datos objeto
Base de datos objetoBase de datos objeto
Base de datos objeto
 
Modelado de datos
Modelado de datosModelado de datos
Modelado de datos
 
Modelo de datos orientado a objetos J
Modelo de datos orientado a objetos  JModelo de datos orientado a objetos  J
Modelo de datos orientado a objetos J
 
Lumisaca hector 6_s_ti_1.pdf
Lumisaca hector 6_s_ti_1.pdfLumisaca hector 6_s_ti_1.pdf
Lumisaca hector 6_s_ti_1.pdf
 
Trabajo bdoo
Trabajo bdooTrabajo bdoo
Trabajo bdoo
 
Para Flor :P
Para Flor :PPara Flor :P
Para Flor :P
 
Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3
 
Base de datos
Base  de datosBase  de datos
Base de datos
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a Objetos
 
PD1_7moA_TS3_JavierLogroño.pptx
PD1_7moA_TS3_JavierLogroño.pptxPD1_7moA_TS3_JavierLogroño.pptx
PD1_7moA_TS3_JavierLogroño.pptx
 
Universidad tecnológica de tehuacá modelos
Universidad tecnológica de tehuacá modelosUniversidad tecnológica de tehuacá modelos
Universidad tecnológica de tehuacá modelos
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
Sistema de gestión de base de datos ii parte
Sistema de gestión de base de datos  ii parteSistema de gestión de base de datos  ii parte
Sistema de gestión de base de datos ii parte
 
Proveedores nativos
Proveedores nativosProveedores nativos
Proveedores nativos
 
Unidad 3 paradigmas de la ingeniería del software
Unidad 3 paradigmas de la ingeniería del softwareUnidad 3 paradigmas de la ingeniería del software
Unidad 3 paradigmas de la ingeniería del software
 
Abd - funciones de dba y tipos de bd
Abd -  funciones de dba y tipos de bdAbd -  funciones de dba y tipos de bd
Abd - funciones de dba y tipos de bd
 

Dernier

Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
NancyLoaa
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
JonathanCovena1
 

Dernier (20)

Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 

Entity Framework y Cluster en Mysql

  • 1. Universidad de El Salvador Facultad Multidisciplinaria de Occidente ENTITY FRAMEWORK Y 1 de enero MYSQL 2012 CLUSTER Docente : Ing. Alexander Calderón Alumnos:  Canales Mancia Guillermo Ernesto  Flores Castro Francisco Alexander  Marroquín Paniagua Kenny Guadalupe  Rodriguez Umaña, Oscar Gustavo  Salinas Rodríguez Arturo Ernesto
  • 2. Entity Framework Entity Framework es un conjunto de tecnologías de ADO.NET que permiten el desarrollo de aplicaciones de software orientadas a datos. Los arquitectos y programadores de aplicaciones orientadas a datos se han enfrentado a la necesidad de lograr dos objetivos muy diferentes:  modelar las entidades, las relaciones y la lógica de los problemas empresariales que resuelven.  trabajar con los motores de datos que se usan para almacenar y recuperar los datos. Los datos pueden abarcar varios sistemas de almacenamiento, cada uno con sus propios protocolos; incluso las aplicaciones que funcionan con un único sistema de almacenamiento deben equilibrar los requisitos del sistema de almacenamiento con respecto a los requisitos de escribir un código de aplicación eficaz y fácil de mantener. Entity Framework permite a los programadores trabajar con datos en forma de objetos y propiedades específicos del dominio, por ejemplo, con clientes y direcciones, sin tener que pensar en las tablas de las bases de datos subyacentes y en las columnas en las que se almacenan estos datos. Con Entity Framework, los desarrolladores de software pueden trabajar en un nivel más alto de abstracción cuando tratan con datos, y puede crear y mantener aplicaciones orientadas a datos con menos código que en las aplicaciones tradicionales. Dado que Entity Framework es un componente de .NET Framework, las aplicaciones se pueden ejecutar en cualquier equipo en el que esté instalado .NET Framework a partir de la versión 3.5 SP1. Además permite a los desarrolladores crear aplicaciones de acceso a datos programando con un modelo de aplicaciones conceptuales en lugar de programar directamente con un esquema de almacenamiento relacional. El objetivo es reducir la cantidad de código y el mantenimiento necesarios para
  • 3. las aplicaciones orientadas a datos. Las aplicaciones de Entity Framework ofrecen las siguientes ventajas:  Las aplicaciones pueden funcionar en términos de un modelo conceptual más centrado en la aplicación, que incluye tipos con herencia, miembros complejos y relaciones.  Las aplicaciones están libres de dependencias de codificación rígida de un motor de datos o de un esquema de almacenamiento.  Las asignaciones entre el modelo conceptual y el esquema específico de almacenamiento pueden cambiar sin tener que cambiar el código de la aplicación.  Los desarrolladores pueden trabajar con un modelo de objeto de aplicación coherente que se puede asignar a diversos esquemas de almacenamiento, posiblemente implementados en sistemas de administración de base de datos diferentes.  Se pueden asignar varios modelos conceptuales a un único esquema de almacenamiento.  La compatibilidad con Lenguaje Integrated Query (LINQ) proporciona validación de la sintaxis en el momento de la compilación para consultas en un modelo conceptual. Un enfoque de diseño habitual para crear una aplicación o un servicio consiste en dividir la aplicación o el servicio en tres partes:  modelo de dominio: define las entidades y relaciones del sistema que se está modelando.  modelo lógico: relacional normaliza las entidades y relaciones en tablas con restricciones de claves externas.  modelo físico: abarca las capacidades de un motor de datos determinado especificando los detalles del almacenamiento en forma de particiones e índices. Los administradores de bases de datos refinan el modelo físico para mejorar el rendimiento, pero los programadores que escriben el código de la aplicación principalmente se limitan a trabajar con el modelo lógico escribiendo consultas SQL y llamando a procedimientos almacenados. Los modelos de dominio se suelen usar como una herramienta para capturar y comunicar los requisitos de una aplicación, con frecuencia como diagramas inertes que se ven y se explican en las primeras etapas de un proyecto, y a continuación se abandonan. Muchos equipos de desarrolladores omiten la creación de un modelo conceptual y comienzan especificando las tablas, columnas y claves en una base de datos relacional. Entity Framework da vida a los modelos conceptuales permitiendo a los programadores consultar las entidades y relaciones en el modelo de dominio (denominado modelo conceptual en Entity Framework) al tiempo que se basan para traducir esas operaciones en los comandos específicos del origen de datos. Esto libera a las aplicaciones de las
  • 4. dependencias codificadas de forma rígida en un origen de datos determinado. El modelo conceptual, el modelo de almacenamiento y las asignaciones entre los dos se expresan en esquemas basados en XML y se definen en archivos que tienen extensiones de nombre correspondientes:  El lenguaje de definición de esquemas conceptuales (CSDL) define el modelo conceptual. CSDL es la implementación de Entity Framework del Entity Data Model. La extensión de archivo es .csdl.  El lenguaje de definición de esquemas de almacenamiento (SSDL) define el modelo de almacenamiento, que también se denomina modelo lógico. La extensión de archivo es .ssdl.  El lenguaje de especificación de asignaciones (MSL) define las asignaciones entre los modelos conceptuales y de almacenamiento. La extensión de archivo es .msl. El modelo de almacenamiento y las asignaciones pueden cambiar según sea necesario sin requerir cambios en el modelo conceptual, las clases de datos o el código de la aplicación. Dado que los modelos de almacenamiento son específicos del proveedor, puede trabajar con un modelo conceptual coherente a través de varios orígenes de datos. Entity Framework utiliza estos modelos y archivos de asignación para transformar las operaciones de creación, lectura, actualización y eliminación de las entidades y relaciones del modelo conceptual en las operaciones equivalentes en el origen de datos. Entity Framework incluso permite asignar las entidades del modelo conceptual a los procedimientos almacenados en el origen de datos. Asignar objetos a datos La programación orientada a objetos supone un desafío al interactuar con sistemas de almacenamiento de datos. Aunque la organización de clases suele reflejar la organización de las tablas de bases de datos relacionales, el ajuste no es perfecto. Varias tablas normalizadas suelen corresponder a una sola clase y las relaciones entre las clases se representan a menudo de forma diferente a las relaciones entre tablas. Por ejemplo, para representar el cliente de un pedido de ventas, una clase Order podría utilizar una propiedad que contiene una referencia a una instancia de una clase Customer, mientras que una fila de la tabla Order en una base de datos contiene una columna de clave externa con un valor que corresponde a un valor de clave principal en la tabla Customer (o conjunto de columnas). Una clase Customer podría tener una propiedad denominada Orders que contuviera una colección de instancias de la clase Order, mientras que la tabla Customer en una base de datos no tiene ninguna columna comparable.Entity Framework proporciona a los desarrolladores de software la flexibilidad para representar las relaciones de esta manera, o para modelar más estrechamente las relaciones tal como se representan en la base de datos Las soluciones existentes han intentado cubrir este hueco, que se suele denominar "desigualdad de impedancia", asignando únicamente clases y propiedades orientadas a
  • 5. objetos a las tablas y columnas relacionales. En lugar de seguir este enfoque tradicional, Entity Framework asigna las tablas relacionales, columnas y restricciones FOREIGN KEY de los modelos lógicos a las entidades y relaciones de los modelos conceptuales. Esto permite una mayor flexibilidad al definir los objetos y optimizar el modelo lógico. Las herramientas de Entity Data Model generan clases de datos extensibles según el modelo conceptual. Se trata de clases parciales que se pueden extender con miembros adicionales que el programador agrega. De forma predeterminada, las clases que se generan para un modelo conceptual determinado derivan de las clases base que proporcionan servicios para materializar las entidades como objetos y para realizar un seguimiento de los cambios y guardarlos. Los desarrolladores pueden utilizar estas clases para trabajar con las entidades y relaciones como objetos relacionados mediante asociaciones. Los desarrolladores también pueden personalizar las clases que se generan para un modelo conceptual. Para obtener más información, Obtener acceso a los datos de entidad y cambiarlos Como algo más que otra solución de asignación objeto-relacional, Entity Framework trata fundamentalmente de permitir que las aplicaciones obtengan acceso y cambien los datos que están representados como entidades y relaciones en el modelo conceptual. Entity Framework usa la información de los archivos del modelo y de asignación para traducir las consultas de objeto con los tipos de entidad que se representan en el modelo conceptual en consultas específicas del origen de datos. Los resultados de la consulta se materializan en objetos que Entity Framework administra. Entity Framework proporciona las maneras siguientes de consultar un modelo conceptual y devolver objetos:  LINQ to Entities. Proporciona compatibilidad con Language-Integrated Query (LINQ) para consultar los tipos de entidad que se definen en un modelo conceptual. Para obtener más información, vea LINQ to Entities.  Entity SQL . Un dialecto de SQL, independiente del almacenamiento, que trabaja directamente con entidades del modelo conceptual y que admite conceptos de Entity Data Model. Entity SQL se utiliza tanto con consultas de objeto como con consultas que se ejecutan utilizando el proveedor EntityClient. Para obtener más información, vea Información.  Métodos del generador de consultas Estos métodos permiten construir consultas de Entity SQL utilizando métodos de consulta del estilo de LINQ. . El Entity Framework incluye el proveedor de datos de EntityClient. Este proveedor administra las conexiones, traduce las consultas de entidad en consultas específicas del origen de datos y devuelve un lector de datos que Entity Framework usa para materializar los datos de la entidad en los objetos. Cuando no se requiere la materialización de los objetos, el proveedor de EntityClient también se puede utilizar como un proveedor de datos ADO.NET estándar habilitando las aplicaciones para ejecutar consultas Entity SQL y usar el lector de datos de solo lectura devuelto
  • 6. El diagrama muestra la arquitectura de Entity Framework para el acceso a datos. Las herramientas de Entity Data Model pueden generar una clase derivada de ObjectContext que representa el contenedor de entidades definido en el modelo conceptual. Este contexto del objeto proporciona los medios para realizar el seguimiento de los cambios y administrar las identidades, la simultaneidad y las relaciones. Esta clase también expone un método SaveChanges que escribe las inserciones, actualizaciones y eliminaciones en el origen de datos. Al igual que las consultas, estas modificaciones son realizadas bien por los comandos que el sistema genera automáticamente o bien por los procedimientos almacenados que el programador especifica. Consideraciones generales de seguridad Las consideraciones de seguridad siguientes se aplican a todas las aplicaciones que utilizan Entity Framework. Usar solo proveedores de orígenes de datos de confianza. Para comunicarse con el origen de datos, un proveedor debe hacer lo siguiente:  Recibir la cadena de conexión de Entity Framework .  Traducir el árbol de comandos al lenguaje de consultas nativo del origen de datos.  Ensamblar y devolver los conjuntos de resultados. Durante la operación de inicio de sesión, la información que se basa en la contraseña del usuario se pasa al servidor a través de las bibliotecas de red del origen de datos subyacente. Un proveedor malintencionado puede robar las credenciales del usuario, generar consultas malintencionadas o alterar el conjunto de resultados. Cifrar la conexión para proteger los datos confidenciales. Entity Framework no administra el cifrado de datos directamente. Si los usuarios tienen acceso a los datos a través de una red pública, la aplicación debería establecer una
  • 7. conexión cifrada al origen de datos para aumentar la seguridad. Para obtener más información, consulte la documentación relacionada con la seguridad correspondiente al origen de datos. Para un origen de datos de SQL Server, vea Cifrar las conexiones a SQL Server. Proteger la cadena de conexión. La protección del acceso al origen de datos es uno de los objetivos más importantes a la hora de proteger una aplicación. Una cadena de conexión presenta una vulnerabilidad potencial si no se protege o si se construye incorrectamente. Al almacenar la información de conexión en texto sin formato o conservarla en la memoria, se pone en riesgo todo el sistema. A continuación se enumeran métodos recomendados para proteger las cadenas de conexión:  Utilice la autenticación de Windows con un origen de datos de SQL Server. Al utilizar la autenticación de Windows para conectarse a un origen de datos de SQL Server, la cadena de conexión no contiene información de contraseñas ni del inicio de sesión.  Cifre las secciones del archivo de configuración mediante una configuración protegida. ASP.NET incluye una característica denominada configuración protegida, que permite cifrar la información confidencial en un archivo de configuración. Si bien se ha diseñado principalmente para ASP.NET, la configuración protegida también puede usarse para cifrar secciones de los archivos de configuración en aplicaciones Windows Para consultar una descripción detallada de las posibilidades de la nueva configuración protegida, vea Encrypting Configuration Information Using Protected Configuration.  Almacene las cadenas de conexión en archivos de configuración protegidos. Nunca debería incrustar las cadenas de conexión en el código fuente. Las cadenas de conexión también se pueden almacenar en archivos de configuración, lo que elimina la necesidad de incrustarlas en el código de la aplicación. De forma predeterminada, el Asistente para Entity Data Model almacena las cadenas de conexión en el archivo de configuración de la aplicación. Debe proteger este archivo para evitar el acceso no autorizado.  Utilice generadores de cadenas de conexión al crear dinámicamente las conexiones. Si debe construir las cadenas de conexión en tiempo de ejecución, utilice la clase EntityConnectionStringBuilder. Esta clase de generador de cadenas ayuda a evitar los ataques de inyección en las cadenas de conexión validando y anulando la información de entrada no válida. Para obtener más información, vea Cómo generar una cadena de conexión EntityConnection (Entity Framework). Use igualmente la clase de generador de cadenas adecuada para construir la cadena de conexión a un origen de datos que forme parte de la cadena de conexión de Entity Framework
  • 8. HOW TO CLUSTER MYSQL El término Clúster en Bases de Datos significa procesamiento paralelo, es decir como clientes nos conectamos a un servidor qué física y lógicamente está distribuido en varias PC’s , aprovechando el performance de todas en conjunto como una sola máquina, esto es posible ya que el procesamiento se distribuye teniendo la administración, las bases de datos y el servicio en nodos diferentes. Hay que distinguir ciertos conceptos, en muchos contextos, el término "nodo" se usa para indicar una máquina, pero cuando se discute MySQL Clúster significa un proceso. Puede haber cualquier número de nodos en una máquina, para los que se usa el término máquina clúster. MySQL Clúster es una tecnología que permite clustering de bases de datos en memoria en un entorno de no compartición. La arquitectura de no compartición permite que el sistema funcione con hardware barato, y sin ningún requerimiento especial de hardware o software. Tampoco tienen ningún punto único de fallo porque cada componente tiene su propia memoria y disco. Hay tres tipos de nodos clúster, y en una configuración MySQL Clúster mínima, al menos habrá tres nodos, uno de cada tipo:  El nodo de administración (MGM) : El rol de este tipo de nodo es administrar los otros nodos dentro del MySQL Clúster, tal como proporcionar datos de configuración, iniciar y parar nodos, ejecutar copias de seguridad, y así. Como este tipo de nodo administra la configuración de otros nodos, un nodo de este tipo debe arrancarse primero, antes de cualquier otro nodo. Un nodo MGM se arranca con el comando ndb_mgmd.  El nodo de datos: Este es el tipo de nodo que almacena los datos del clúster. Hay tantos nodos de datos como réplicas, multiplicado por el número de fragmentos. Por ejemplo, con dos réplicas, cada uno teniendo dos fragmentos, necesita cuatro nodos de datos. No es necesario tener más de una réplica. Un nodo de datos se arranca con el comando ndbd.
  • 9. El nodo SQL: Este es el nodo que accede a los datos del clúster. En el caso de MySQL Clúster, un nodo cliente es un servidor MySQL tradicional que usa el motor NDB Clúster . Un nodo SQL típicamente se arranca con el comando mysqld -- ndbcluster o símplemente usando mysqld con ndbcluster añadido a my.cnf. La configuración de un clúster implica configurar cada nodo individual en el clúster e inicializar los enlaces de comunicación individual entre los nodos. MySQL Clúster está diseñado con la intención que los nodos de almacenamiento son homogéneos en términos de procesador, espacio de memoria, y ancho de banda. Además, para proporcionar un punto único de configuración, todos los datos de configuración del clúster entero se guardan en un único fichero de configuración. El servidor de administración (nodo MGM) administra el fichero de configuración del clúster y el log. Cada nodo en el clúster recibe los datos de configuración del servidor de administración, y necesita una forma de determinar dónde reside el servidor de administración. Cuando ocurren eventos interesantes en los nodos de datos, los nodos transfieren información acerca de estos eventos al servidor de administración, que guarda la información en el log del clúster. Además, puede haber cualquier número de procesos clientes del clúster o aplicaciones. Hay de dos tipos:  Clientes MySQL estándar: No son diferentes para MySQL Clúster que para cualquier MySQL (no clúster). En otras palabras, MySQL Clúster puede ser accedido para aplicaciones MySQL existentes escritas en PHP, Perl, C, C++, Java, Python, Ruby, y así.  Clientes de administración: Estos clientes conectan al servidor de administración y proporcionan comandos para arrancar y parar nodos, arrancar y parar traceo de mensajes (sólo en versiones de depuración), mostrar versiones y estatus de nodos, arrancar y parar copias de seguridad, y así. Hardware, software y redes Una de las ventajas de MySQL Clúster es que puede ejecutarse en hardware normal sin ningún requerimiento especial a parte de grandes cantidades de RAM, debido al hecho que todos los datos se almacenan en memoria Naturalmente, CPUs múltiples y más rápidas mejoran el rendimiento. Los requerimientos de memoria para procesos clúster son relativamente pequeños. Los requerimientos de software para Clúster son modestos. Los sistemas operativos de las máquinas no requieren ningún modulo no usual, servicios, aplicaciones o configuración extraña para soportar MySQL Clúster. Para Mac OS X o Solaris, la instalación estándar es suficiente. Para Linux, una instalación estándar debe ser todo lo necesario.
  • 10. Para una comunicación entre nodos, el clúster soporta red TCP/IP en cualquier topología estándar, y como mínimo se espera una red 100 Mbps Ethernet, más un switch, hub, o router para proporcionar conectividad de red al clúster entero. Recomendamos que MySQL Clúster se ejecute en su subred que no está compartida con máquinas no-clúster por las siguientes razones:  Seguridad: La comunicación entre nodos del clúster no están cifradas. La única forma de proteger transmisiones dentro de un MySQL Clúster es ejecutar su clúster en una red protegida. Si trata de usar MySQL Clúster para aplicaciones Web, el clúster debe residir detrás de un firewall y no en su DMZ (DMZ) o en otro lugar.  Eficiencia: Inicializar un MySQL Clúster en una red privada o protegida permite que el clúster haga uso exclusivo del ancho de banda entre máquinas del clúster. Usar un switch esperado para su MySQL Clúster no sólo ayuda a protegerse de accesos no autorizados a los datos del clúster, también asegura que los nodos del clúster están protegidos de interferencias causadas por transmisiones entre otras máquinas en la red. Para mayor confianza puede usar switches duales y tarjetas duales para eliminar la red como punto único de fallo; varios dispositivos soportan fallos para estos enlaces de comunicación. Arquitectura de un Clúster.
  • 11. INSTALACION Y CONFIGURACION DE CLUSTER 192.168.1.5 192.168.1.9 192.168.1.6 192.168.1.4 Todos los ordenadores tienen instalado sistema operativo Linux Instalación de Nodo de Administración: (MGM NODE): 1- Descargar archivo mysql-cluster-gpl-7.2.6-linux2.6-i686.tar 2- Descomprimir archivo 3- Ubicarse en el directorio del archivo recién descompreso 4- Copiar los binarios en la carpeta /usr/local/bin de la siguiente manera: cp bin/ndb_mgm* /usr/local/bin 5- Ubicarse en el directorio /usr/local/bin 6- Dar permisos de ejecución a los binarios recién copiados: chmod +x ndb_mgm* 7- Crear en /var/lib/mysql_cluster un archivo llamado config.ini, el cual tiene que lucir de la siguiente manera:
  • 12. Instalación de Nodos de datos: 1-Agregar un usuario y un grupo llamado mysql al sistema operativo: #groupadd mysql #useradd -g mysql mysql 2-Descargar y descomprimir archivo archivo mysql-cluster-gpl-7.2.6-linux2.6- i686.tar: #tar -C /usr/local -xzvf mysql-cluster-gpl-7.2.6-linux2.6-i686.tar 3-Renombrar directorio recién descompreso a mysql para evitar sentencias muy largas #mv /usr/local/ mysql-cluster-gpl-7.2.6-linux2.6-i686 /usr/local/mysql
  • 13. 4-Situarse en directorio recién descompreso: #cd /usr/local/mysql 5-Instalar bases de datos del sistema (propias de mysql): #scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql 6-Aplicar permisos al usuario mysql para la ejecución: #cd /usr/local/mysql # chown -R root . # chown -R mysql data # chgrp -R mysql . 7-Crear en el directorio /etc un archivo llamado my.cnf, este archivo es el encargado de dictar la dirección Instalación de nodo Mysql 1- Descargar y descomprimir archivo mysql-cluster-gpl-7.2.6-linux2.6-i686.tar #tar -C /usr/local -xzvf mysql-cluster-gpl-7.2.6-linux2.6-i686.tar 2- Renombrar directorio # mv /usr/local/mysql-cluster-gpl-7.0.15-linux-i686-glibc23.tar.gz /usr/local/mysql 3- Agregar usuario y grupo mysql # groupadd mysql
  • 14. # useradd -g mysql mysql 4- Moverse al directorio recién descompreso y darle permisos al usuario mysql # cd /usr/local/mysql # chown -R root . # chown -R mysql data # chgrp -R mysql 5- Crear entrada en registro de servicios de Linux para mysql y darle permisos de ejecución # cp support-files/mysql.server /etc/init.d/mysql # chmod +x /etc/init.d/mysql ARRANCADO DE CLUSTER El proceso de arranque de un clúster consta de los siguientes pasos: 1- Iniciar nodo de Administración 2- Iniciar nodos de datos: 3- Iniciar nodo Mysql
  • 15. 4- Verificar si en el nodo de administración aparecen conectados los nodos de datos y mysql Iniciando conexiones con nodos de datos Nodos de datos conectados