Base de Datos en Internet - PowerPoint PPT Presentation

1 / 56
About This Presentation
Title:

Base de Datos en Internet

Description:

Consideraciones de Dise o e Implementaci n en la Web. Lenguajes ... HTML, DHTML, CSS, XML, XSL, Languages Scripts, Browsers, Mobiles. Capa de L gica de Negocio: ... – PowerPoint PPT presentation

Number of Views:53
Avg rating:3.0/5.0
Slides: 57
Provided by: yrm
Category:
Tags: base | datos | internet | langues

less

Transcript and Presenter's Notes

Title: Base de Datos en Internet


1
Base de Datos en Internet
2
Agenda
  • Presentación.
  • Base de Datos Actuales.
  • Consideraciones de Diseño e Implementación en la
    Web.
  • Lenguajes y Acceso a Base de Datos.
  • Ejemplos.
  • Recomendaciones

3
Presentación
  • Gabriel Vegas
  • Egresado de la UCV
  • Loquesea.Com Inc. NYC
  • Senior DBA Project Manager
  • Manapro Consultores
  • Líder de Proyectos
  • Consultores Micorp
  • Consultor

4
Base de Datos Actuales
  • Comerciales
  • Microsoft SQL Server 2000
  • Oracle 9i
  • Informix
  • Open Source
  • MySQL versión 4.X
  • PostgreSQL versión 7.4.X

5
Microsoft SQL Server 2000
  • http//www.microsoft.com/sql/
  • Características
  • Se adapta a cualquier tipo de Site.
  • SQL Server XML.
  • Hasta 32 Procesadores, 64 GB de Memoria, Tamaño
    Máximo de Bases de datos casi Ilimitado.
  • De fácil instalación, uso y administración.

6
MySql versión 4.X
  • http//www.mysql.com/
  • Características
  • Para sites Medianos (10 a 100 Millones de
    registros o 100Mb por tabla, aunque soporta
    tablas en TB).
  • Multiplataforma
  • Gratis.
  • Requiere pocos recursos de Hardware.

7
PostgreSQL versión 7.4.X
  • http//www.postgresql.org/
  • Características
  • Es un Object-Relational database management
    systems (ORDBMS)
  • Multiplataforma
  • Gratis.
  • Requiere pocos recursos de Hardware.
  • Posee todas las funcionalidades de los RDBMS
    Comerciales

8
Consideraciones de Diseño e Implementación en la
Web
  • Normalización y Redundancia
  • Diseño de Capas
  • Generación en Disco
  • Búsquedas
  • Bloqueos
  • Índices

9
Consideraciones de Diseño e Implementación en la
Web
  • Estos aspectos están relacionados entre si y
    definen parte del diseño de base de datos y del
    site, para obtener un alto rendimiento y
    performance.

10
Consideraciones de Diseño e Implementación en la
Web
  • Normalización y Redundancia
  • La finalidad de la Normalización es reducir las
    inconsistencias y redundancias de los datos,
    facilitar el mantenimiento y evitar las anomalías
    en las manipulaciones de datos.
  • Realidad En sites donde hay grandes cantidades
    de datos y consultas, a veces duplicar
    información es la solución a un join innecesario,
    complicado o costoso. Pero se necesitan procesos
    para mantener la consistencia de los datos.

11
Consideraciones de Diseño e Implementación en la
Web
  • Diseño de Capas
  • La separación del site en capas lógicas para la
    Interfaz, la lógica del negocio y los datos. (3
    Capas)

12
Consideraciones de Diseño e Implementación en la
Web
  • Diseño de Capas (cont.)
  • Para obtener un buen diseño de una aplicación de
    n-capas es necesario poder colocar los métodos de
    las clases correctas en las capas correctas.
  • Como Resultado se obtiene
  • Aplicaciones versátiles
  • Escalabilidad
  • Buen desempeño.
  • Seguridad y Auditoria

13
Consideraciones de Diseño e Implementación en la
Web
  • Diseño de Capas (cont.)
  • Realidad Es totalmente cierto y 100 funcional.
  • Lo importante es hacer estas capas de manera que
    se puedan fácilmente ser manipuladas y
    modificadas. Hay que apoyarse en la arquitectura
    que tenemos para poder sacar provecho a nuestro
    site.

14
Consideraciones de Diseño e Implementación en la
Web
  • Diseño de Capas (cont.)
  • Algunos Elementos Involucrados
  • Capa de Presentación
  • HTML, DHTML, CSS, XML, XSL, Languages Scripts,
    Browsers, Mobiles.
  • Capa de Lógica de Negocio
  • ActiveX, CORBA, Componentes JAVA, Web Services
  • Capa de Datos
  • RDBMS

15
Consideraciones de Diseño e Implementación en la
Web
  • Diseño de Capas (cont.)
  • Ejemplo Uso de Componentes COM.
  • Aunque suele ser una forma cómoda de programar y
    reutilizar código, no es siempre fácil de
    administrar y mantener sin afectar el
    funcionamiento del site. (Registro de DLLs)

16
Consideraciones de Diseño e Implementación en la
Web
  • Diseño de Capas (cont.)
  • Ejemplo Separación de Código en Lenguajes
    Scripts (ASP, PHP, JSP).
  • Como resultado se obtienen librerías para ser
    usadas mediante Includes, asi se separa
    logicamente la capa de presentación de la capa de
    negocios.

17
Consideraciones de Diseño e Implementación en la
Web
  • Generación en Disco
  • Para sites que están basados en contenido, el
    cual no es alterado o modificado frecuentemente,
    la generación de archivos Estáticos o archivos de
    Datos (Ej. XML) es una tendencia global usada
    para aliviar la carga a la Base de Datos y al
    Servidor Web.
  • Los datos de igual forma son almacenados en la
    Base da datos, pero el acceso a los datos es
    mediante el uso de estos archivos generados.

18
Consideraciones de Diseño e Implementación en la
Web
  • Generación en Disco (cont.)
  • Pregunta Para que voy a guardar algo en Base de
    Datos que nunca mas voy a modificar?. Elimino la
    Base de datos?
  • Respuesta Si mi site necesita hacer búsquedas
    sobre el contenido, lo mejor es hacer la búsqueda
    sobre la Base de Datos. Si no es así, es bueno
    tener la Base de Datos para la edición y respaldo
    de esta data.

19
Consideraciones de Diseño e Implementación en la
Web
  • Generación en Disco (cont.)
  • Sites en que aplica
  • Administradores de Contenido
  • Site de Noticias
  • Blogs o Bitácoras Personales.
  • Site de Estadísticas, Indicadores, etc.
  • Formas en las que aplica
  • Parcial No toda la pagina servida es generada
    como estática.
  • Total Toda la pagina es generada.

20
Consideraciones de Diseño e Implementación en la
Web
  • Búsquedas
  • Las Búsquedas en los sites generalmente se
    realizan sobre campos netamente de texto (Varchar
    o Text), los cuales no deberían ser indexados,
    debido a que los altos costos de indexación para
    inserciones y modificaciones.

21
Consideraciones de Diseño e Implementación en la
Web
  • Búsquedas (cont.)
  • Estas búsquedas en campos texto se hace
    generalmente mediante el uso de comandos LIKE.
  • Ej. Select from Tabla
  • Where Campo_Busqueda Like arte
  • Si el campo Campo_Busqueda estuviera
    indexado, se ejecutaria rapidamente debido a que
    la indexacion en éste caso seria mediante un
    arbol-B. El resultado seria algo como "arte
    moderno", "arte culinario", "arte abstracto",
    etc.

22
Consideraciones de Diseño e Implementación en la
Web
  • Búsquedas (cont.)
  • Sin embargo, si la búsqueda es menos específica,
    las cosas ya no son tan rápidas. Por ejemplo,
    para buscar "todo lo relacionado con arte", lo
    más probable es que tengamos que escribir un
    query como.
  • Ej. Select from Tabla
  • Where Campo_Busqueda Like arte
  • Puesto que el índice es mucho más pequeño que la
    tabla, finalmente esto es mejor que buscar a
    través de toda la tabla, pero definitivamente
    esto no es lo más eficiente.

23
Consideraciones de Diseño e Implementación en la
Web
  • Búsquedas (cont.)
  • Por otra parte, al ejecutar la consulta anterior,
    probablemente se encontrarán cadenas como las
    siguientes "me gusta pegarte", "artefactos
    explosivos" y "deja de quejarte".

24
Consideraciones de Diseño e Implementación en la
Web
  • Búsquedas (cont.)
  • Soluciones
  • SQL Server 2000 (desde la versión 7) desarrolla
    el Microsoft Search, un motor de indexación y de
    búsqueda de texto que realizar consultas de texto
    mas eficaces y sofisticadas sobre columnas que
    almacenan datos basados en caracteres que con el
    operador LIKE y todos sus diferentes caracteres
    de comodín.
  • Esto lo hace mediante un catálogo de texto, que
    reside fuera de la Base de Datos y que almacena
    todos los índices de textos seleccionados.

25
Consideraciones de Diseño e Implementación en la
Web
  • Búsquedas (cont.)
  • Soluciones
  • Sintaxis en SQL Server 2000 para consulta de
    textos
  • CONTAINS
  • FREETEXT
  • CONTAINSTABLE y FREETEXTTABLE

26
Consideraciones de Diseño e Implementación en la
Web
  • Búsquedas (cont.)
  • Soluciones
  • Ejemplo SQL Server 2000 para consulta de
    textos
  • Select from Tabla
  • Where CONTAINS(Campo_Busqueda,arte)
  • Select from Tabla
  • Where CONTAINS(,arte AND cu)

27
Consideraciones de Diseño e Implementación en la
Web
  • Búsquedas (cont.)
  • Soluciones
  • Ejemplo SQL Server 2000 para consulta de
    textos
  • Select from Tabla
  • Where FREETEXT(Campo_Busqueda,todo lo
    relacionado con arte)

28
Consideraciones de Diseño e Implementación en la
Web
  • Búsquedas (cont.)
  • Soluciones
  • Ejemplo SQL Server 2000 para consulta de
    textos
  • Select Tabla.Id, Tabla.Nombre, KeyTabla.Valor
  • from Tabla INNER JOIN
  • CONTAINSTABLE (TablaIndex, Campo_Busqueda,
    arte") AS KEY_TABLAON Tabla.id
    KEY_TABLA.KEYWHERE KEY_TABLA.RANK gt 10ORDER
    BY KEY_TABLA.KEY DESC

29
Consideraciones de Diseño e Implementación en la
Web
  • Búsquedas (cont.)
  • Soluciones
  • MySql implementa el tipo FULLTEXT, se usan en
    tablas del tipo MyISAM, y pueden contener uno o
    más campos del tipo CHAR, VARCHAR y TEXT. Está
    diseñado para facilitar y optimizar la búsqueda
    de palabras clave en tablas que tienen grandes
    cantidades de información en campos de texto.

30
Consideraciones de Diseño e Implementación en la
Web
  • Búsquedas (cont.)
  • Soluciones
  • Creación de FULLTEXT en MySql
  • CREATE TABLE nombreTabla(
  • campo1 TIPO,
  • campo2 TIPO,
  • FULLTEXT nombreIndice (campo1 campo2,...)
  • )

31
Consideraciones de Diseño e Implementación en la
Web
  • Búsquedas (cont.)
  • Soluciones
  • Sintaxis en MySQL para consulta de textos
  • MATCH y AGAINST
  • SELECT id, titulo, contenido
  • FROM articulos
  • WHERE MATCH(titulo,contenido) AGAINST('Java')
  • se buscarán todos los artículos que hablen acerca
    de Java

32
Consideraciones de Diseño e Implementación en la
Web
  • Búsquedas (cont.)
  • Soluciones
  • Relevancia en MySQL para consulta de textos
  • Para cada fila de la tabla, la función MATCH()
    regresa un valor de relevancia, esto es una
    medida entre la cadena que se busca y el texto en
    las columnas que se nombran en MATCH().
  • SELECT id, titulo,
  • MATCH(titulo,contenido) AGAINST('Java') AS
    relevancia
  • FROM articulos
  • WHERE MATCH(titulo,contenido) AGAINST('Java')

33
Consideraciones de Diseño e Implementación en la
Web
  • Búsquedas (cont.)
  • Soluciones
  • Relevancia en MySQL para consulta de textos
  • La relevancia es calculada basada en el número de
    palabras en una fila, el número de palabras
    únicas en esa fila, el número total de palabras
    en la colección, y el número de documentos
    (filas) que contienen una palabra en particular

34
Consideraciones de Diseño e Implementación en la
Web
  • Búsquedas (cont.)
  • Soluciones
  • Modificador IN BOOLEAN MODE en MySQL
  • Con esto, se tiene un mayor control acerca del
    tipo de búsquedas que se quieren hacer, por
    ejemplo, se pueden buscar palabras, combinaciones
    de palabras, porciones de palabras, etc.
  • SELECT id, titulo, contenido FROM articulos
  • WHERE MATCH(titulo,contenido)
  • AGAINST('Java -Visual' IN BOOLEAN MODE)
  • Esta consulta regresa todas las filas que tiene
    la palabra Java, pero que no contienen la palabra
    Visual.

35
Consideraciones de Diseño e Implementación en la
Web
  • Bloqueos
  • Al realizar Inserciones, actualizaciones y
    eliminaciones, los RDBMS realizan bloqueos a
    nivel de tablas, registros o de columnas, para
    así poder garantizar integridad y consistencia en
    accesos concurrentes.
  • Cuando se realiza una consulta sobre una o mas
    tablas, pueden o no realizar bloqueos sobre estas
    tablas, todo depende de el nivel de concurrencia
    sobre la tabla.

36
Consideraciones de Diseño e Implementación en la
Web
  • Bloqueos (cont.)
  • En una tabla, no suelen hacerse bloqueos en
    comandos tipo SELECT, pero en altos niveles de
    concurrencia, puede pasar que se bloqueen tablas
    y la hora de hacer actualizaciones de la tabla,
    existan bloqueos para índices, haciendo difícil y
    lenta la actualización.

37
Consideraciones de Diseño e Implementación en la
Web
  • Bloqueos (cont.)
  • Se debe identificar que tablas son las mas
    concurridas y tratar de forzar a que los comandos
    SELECT no afecten el desenvolvimiento de site.
  • En SQL Server 2000 existen cláusulas como
  • Select
  • From TABLA (NOLOCK)
  • WHERE .
  • esto le indica explícitamente al query que no
    realice bloqueos para esta búsqueda.

38
Consideraciones de Diseño e Implementación en la
Web
  • Bloqueos (cont.)
  • Otro de los factores que afectan el desempeño y
    es el uso de . Instruciones como
  • Select
  • From TABLA
  • WHERE .
  • hacen que querys del que solo se necesitan un
    pequeño grupo de columnas generen overhead al
    traer campos no necesarios.

39
Consideraciones de Diseño e Implementación en la
Web
  • Índices
  • Es la mejor y la forma mas común de mejorar el
    performance de una Base de Datos. Ayuda a obtener
    registros de manera mas rápida a que si no la
    tuviera.
  • Pero los índices presentan un overhead, por lo
    que hay que manejarlos de manera consiente.
  • La representación mas común de estos índices es
    basado en un Árbol-B

40
Consideraciones de Diseño e Implementación en la
Web
  • Índices (cont.)
  • SQL Server 2000 recopila información estadística
    sobre los índices y los datos de columna
    almacenados en la base de datos. El optimizador
    de consultas de SQL Server utiliza estas
    estadísticas para seleccionar el plan más eficaz
    de ejecución de las consultas INSERT, SELECT,
    DELETE o UPDATE.

41
Consideraciones de Diseño e Implementación en la
Web
  • Índices (cont.)
  • Postgres no posee de procesos de mantenimiento de
    índices. Por lo general este mantenimiento debe
    venir de la carga diaria de la Base de Datos.
  • Existen comandos como
  • EXPLAIN  muestra el plan de ejecución de un
    query
  • ANALYZE  recolecta información estadística del
    contenido de las tablas. Estas estadísticas son
    almacenadas para ayudar al planificador de Querys
    a determinar el mejor plan de ejecución.

42
Consideraciones de Diseño e Implementación en la
Web
  • Índices (cont.)
  • Estas utilidades dada por los sistemas se basan
    en muestreos en el caso de tablas grades.
  • Es ideal usar este tipo de herramientas
    periódicamente para entonar Base da Datos,
    detectar problemas y optimizar querys.

43
Lenguajes y Acceso a Base de Datos
  • Leguajes Script
  • Entre los lenguajes script mas comunes están
    ASP, PHP, JSP.
  • Estos Lenguajes cuentan con herramientas para el
    acceso a Base da Datos ya sea de manera nativa o
    por uso de otros componenetes.
  • ADO, RDO, ODBC y OLE-DB son los medios mas
    comunes en ASP para realizar el acceso a datos.

44
Lenguajes y Acceso a Base de Datos
  • Leguajes Script (cont.)
  • PHP posee librerías propias incorporadas a su
    core para acceder casi todas las Base de Datos.
  • Java Database Connectivity (JDBC) provee la
    manera estándar para la comunicación con RDBMS.

45
Lenguajes y Acceso a Base de Datos
  • Otros Leguajes
  • Usando Lenguajes como VB, .NET, Java en la capa
    de Lógica de Negocios mediante COM, Web Services
    o Componentes Java.
  • Estos lenguajes también se basan en librerías y
    objetos propios como ADO, OLE-DB, JDBC y ODBC
    para la conexión de con la Base de Datos.

46
Ejemplos
  • TerraServer (http//terraserver.microsoft.com)
  • Es una Base de Datos de 3.3 TB de imágenes
    aéreas y de topografía de alta resolución.
  • El ambiente esta conformado por 4 nodos basados
    en Windows 2000 Data Center Edition. Usa solo 3
    nodos y cada nodo soporta una Base de Datos SQL
    Server 2000 de 2.0 TB que contiene las imágenes y
    meta-data.

47
Ejemplos (TerraServer)
48
Ejemplos (TerraServer)
49
Ejemplos (TerraServer)
50
Ejemplos (TerraServer)
51
Ejemplos
  • Amazon.Com (http//www.amazon.com)
  • Amazon funciona usando una herramienta llamada
    ObjectStore (http//www.objectstore.net).
  • Es una Base de Datos de Objetos el cual se
    mantiene en un Cache Distribuido.

52
Ejemplos
  • Amazon.Com (cont.)
  • Su Arquitectura propaga cada cambio de pagina
    desde sus servidores principales a los servidores
    web de manera inmediata, en promedio, los
    archivos de data son actualizados cada 1 o 2
    minutos.

53
Recomendaciones
  • De Diseño
  • Realizar un Diseño Normalizado, pero flexible a
    cambios.
  • Definir la plataforma y la arquitectura a usar,
    así como las capas y los elementos que la
    componen.
  • Identificar que Entidades del diseño pueden ser
    candidatos a ser almacenados en disco.

54
Recomendaciones
  • Técnicas
  • Al momento de crear físicamente una Base de
    Datos, definir los índices a usar basado en las
    consultas mas frecuentes.
  • Si el RDBMS seleccionado soporta Stored
    Procedures, pues adelante.
  • Al hacer una consulta, evitar el overhead, traer
    solamente aquellos campos necesarios o que no
    sean costosos.
  • Ej. Evitar SELECT FROM Tabla

55
Recomendaciones
  • Técnicas (cont.)
  • Usar cláusulas en caso de ser necesario, para
    evitar Bloqueos de tablas en comandos SELECT
  • Usar SQL y funciones estándar que permitan
    portabilidad entre manejadores (deseado).
  • Hacer conexiones a Base de Datos utilizando la
    mejor herramienta a la mano.

56
Recomendaciones
  • Administrativas
  • Backups
  • Estudiar el performance de la Base de Datos
    (conexiones simultaneas, requests por segundo,
    etc.)
  • Revisar el uso de Índices, y realizar tareas de
    reindexación de tablas periódicamente.
  • Definir los campos necesarios para la búsquedas
    FULLTEXT.
Write a Comment
User Comments (0)
About PowerShow.com