Curso: SQL Server y Oracle Database. BLOQUE 1. Arquitectura, Instalación y configuración de SQL Server. (Parte 1) Introducción Bienvenid@ al primer módulo didáctico del curso, durante este capítulo inicial examinaremos de cerca cuales son las características que debe cumplir una base de datos moderna, realizaremos un breve repaso a los conceptos que confluyen en el modelo relacional, y conoceremos que es y que mínimos debe cumplir un sistema gestor de base de datos relacional (R-SGBD) y cuáles son los rasgos más característicos de su arquitectura. A continuación te pedimos que realices una evaluación previa para conocer tus conocimientos al empezar el curso.
Objetivos de aprendizaje Objetivos conceptuales a. Aprender que es y para qué sirve una base de datos, su formalización teórica y características.
b. Familiarizarse con los estándares que subyacen bajo una base de datos relacional.
c. Ser capaz de enumerar y diferenciar los diferentes servicios que ofrece un sistema gestor de Base de datos.
Objetivos procedimentales a. Desarrollar las capacidades de buscar información, elaborar documentos estructurados y razonar acerca de conceptos y sobre su interrelación.
b. Potenciar las habilidades para el trabajo en grupo y la colaboración en la consecución de objetivos.
Índice de contenido del módulo 1. Diseño y programación 1.1. Qué son y por qué necesitamos unabase de datos 1.2. El modelo relacional 1.3. La arquitectura ANSI-SPARC 1.4. Sistemas gestores de base de datos
1. Diseño y programación 1.1. Qué son y porque necesito unabase de datos Todos utilizamos algún tipo de base de datos a diario. Nuestro historial escolar, nuestras enfermedades o dolencias, nuestros documentos, archivos, y correos electrónicos. Todo forma parte cada día de los enormes volúmenes de datos e información que son gestionados en los miles de centros de datos (datacenters) censados distribuidos por todo el globo, en ellos, grandes clusters de servidores de base de datos garantizan que esa información sea almacenada, clasificada y el pueda ser fácilmente accesible en cualquier momento por cualquier usuario. Los Datos por sí solos son únicamente una representación simbólica de las observaciones o de las anotaciones que hacemos sobre un determinado suceso del mundo físico. Cuando esos datos se presentan aislados, o no tienen correlación alguna (ni llevan un orden específico), suelen ser llamados datos en bruto o datos aislados. Por el contrario cuando analizamos esos datos para obtener conclusiones que nos permiten generar un valor añadido, estos datos se transforman en bloques o unidades de información, consistentes en conjuntos de datos debidamente procesados y contextualizados. Una base de datos (BD) no es más que una colección de dichos conjuntos que permanecen conectados y estructurados de acuerdo con un modelo capaz de recoger el máximo contenido semántico. Dada la relevancia que tienen en el mundo real las interrelaciones entre los datos, es imprescindible que la base de datos sea capaz de almacenar estas interrelaciones. En el mundo real existen, además, restricciones semánticas, que en los sistemas actuales, tienden a almacenarse junto con los datos, al igual que ocurre con las interrelaciones. --------------------------------------------------------------------
Recurso de aprendizaje Como recurso adicional te recomendamos visitar el enlace donde podrás realizar una visita virtual a un centro de procesamiento de datos (Datacenter ó CPD) en formato StreetView. http://www.google.com/about/datacenters/inside/streetview ------------------------------------------------------------------
Una base de datos se describe y se manipula apoyándose en un modelo de datos. La redundancia de los datos debe ser controlada, de forma que no existan duplicidades perjudiciales ni innecesarias, y que las redundancias físicas, convenientes muchas veces a fin de responder a objetivos de
eficiencia, sean tratadas por el mismo sistema, de modo que no puedan producirse inconsistencias.
1.2. El modelo Relacional. A finales de los años 60, Edgar Frank Codd sugiere sus famosas reglas para la implementación de bases de datos relacionales en el artículo “Un modelo relacional de datos para grandes bancos de datos compartidos” para su empresa (IBM), dando origen al modelo relacional. Ya entonces, Codd se dio cuenta que existían bases de datos en el mercado las cuales decían ser relacionales, pero que lo único que hacían era guardar la información en las tablas, sin estas tablas estar literalmente normalizadas; entonces publicó doce reglas que según él, un verdadero sistema relacional debería tener. En la práctica algunas de ellas son difíciles de realizar, aunque, en la práctica, un sistema puede considerarse "más relacional" cuantas más de las reglas de Codd consiga cumplir. Enumeremos las 12 reglas de Codd, tal como las formuló: Regla No. 1 - La Regla de la información "Toda la información en una base de datos relacional está explícitamente representada de una sola manera por valores en una tabla". Cualquier cosa que no exista en una tabla no existe del todo. Toda la información, incluyendo nombres de tablas, nombres de vistas, nombres de columnas, y los datos de las columnas deben estar almacenados en tablas dentro de las bases de datos. Las tablas que contienen tal información constituyen el Diccionario de Datos. --------------------------------------------------------------------
Definicion… Base de Datos Relacional. “Una colección o depósito de datos integrados con redundancia controlada. Los datos, que han de ser compartidos por diferentes usuarios y aplicaciones, deben mantenerse independientes de ellos, y su definición (estructura de la base de datos) única y almacenada junto con los datos, se ha de apoyar en un modelo de datos, el cual ha de permitir captar las interrelaciones y restricciones existentes en el mundo real”. De Miguel y Piattini (1999). --------------------------------------------------------------------
Regla No. 2 - La regla del acceso garantizado "Cada fila de datos debe ser lógicamente accesible al ejecutar una búsqueda que combine el nombre de la tabla, su clave primaria, y el nombre de la columna". Esto significa que dado un nombre de tabla, dado el valor de la clave primaria, y dado el nombre de la columna requerida, deberá encontrarse uno y solamente un valor. Por esta razón la definición de claves primarias para todas las tablas es prácticamente obligatoria.
Regla No. 3 - Tratamiento sistemático de los valores nulos "La información inaplicable o faltante puede ser representada a través de valores nulos". Una base de datos relacional debe ser capaz de soportar el uso de valores nulos en el lugar de columnas cuyos valores sean desconocidos o inaplicables. Regla No. 4 - La regla de la descripción de la base de datos "La descripción de la base de datos es almacenada de la misma manera que los datos ordinarios, esto es, en tablas y columnas, y debe ser accesible a los usuarios autorizados". La información de tablas, vistas, permisos de acceso de usuarios autorizados, etc…, debe ser almacenada exactamente de la misma manera: En tablas. Estas tablas deben ser accesibles igual que todas las tablas, a través de sentencias de SQL. Regla No. 5 - La regla del sub-lenguaje Integral "Debe haber al menos un lenguaje que sea integral para soportar la definición de datos, manipulación de datos, definición de vistas, restricciones de integridad, y control de autorizaciones y transacciones". Esto significa que debe haber por lo menos un lenguaje con una sintaxis bien definida que pueda ser usado para administrar completamente la base de datos. Regla No. 6 - La regla de la actualización de vistas "Todas las vistas que son teóricamente actualizables, deben ser actualizables por el sistema mismo". La mayoría de las Sistemas gestores de base de datos (SGBD o RDBMS) permiten actualizar vistas simples, pero deshabilitan los intentos de actualizar vistas complejas. Regla No. 7 - La regla de insertar y actualizar "La capacidad de manejar una base de datos con operandos simples aplica no solo para la recuperación o consulta de datos, sino también para la inserción, actualización y borrado de datos". Esto significa que las cláusulas SELECT, UPDATE, DELETE e INSERT deben estar disponibles y operables sobre los registros, independientemente del tipo de relaciones y restricciones que haya entre las tablas. Regla No. 8 - La regla de independencia física "El acceso de usuarios a la base de datos a través de terminales o programas de aplicación, debe permanecer consistente lógicamente cuando quiera que haya cambios en los datos almacenados, o sean cambiados los métodos de acceso a los datos". El comportamiento de los programas de aplicación y de la actividad de usuarios vía terminales debería ser predecible basados en la definición lógica de lo que es una base de datos, y éste comportamiento debería permanecer inalterado, independientemente de los cambios en la definición física de ésta. Regla No. 9 - La regla de independencia lógica "Los programas de aplicación y las actividades de acceso por terminal deben permanecer lógicamente inalteradas cuando quiera que se hagan cambios (según los permisos asignados) en las tablas de la base de datos". La independencia lógica de los datos especifica que los programas de aplicación y las actividades de terminal deben ser independientes de la
estructura lógica, por lo tanto los cambios en la estructura lógica no deben alterar o modificar estos programas de aplicación. Regla No. 10 - La regla de la independencia de la integridad "Todas las restricciones de integridad deben ser definibles en los datos, y almacenables en el catálogo, no en el programa de aplicación". Las reglas de integridad son: 1. Ningún componente de una clave primaria puede tener valores en blanco o nulos. (Esta es la norma básica de integridad). 2. Para cada valor de clave foránea deberá existir un valor de clave primaria concordante. La combinación de estas reglas asegura que haya integridad referencial. Regla No. 11 - La regla de la distribución "El sistema debe poseer un lenguaje de datos que pueda soportar que la base de datos esté distribuida físicamente en distintos lugares sin que esto afecte o altere a los programas de aplicación". El soporte para bases de datos distribuidas significa que una colección arbitraria de relaciones, bases de datos corriendo en una mezcla de distintas máquinas y distintos sistemas operativos y que está conectada por una variedad de redes, pueda funcionar como si estuviera disponible como en una única base de datos en una sola máquina. Regla No. 12 - Regla de la no-subversión "Si el sistema tiene lenguajes de bajo nivel, estos lenguajes de ninguna manera pueden ser usados para violar la integridad de las reglas y restricciones expresadas en un lenguaje de alto nivel”. En los siguientes capítulos, desglosaremos cada una de estas reglas y los conceptos que se derivan de ellas.
1.3. La arquitectura ANSI - SPARC. Unos años más tarde, a finales de los 70, se hizo evidente que había tres características importantes que debían ser inherentes a los sistemas de bases de datos: * La separación del nivel lógico (al que accede el usuario de la base de datos a través del lenguaje de consultas), de los detalles de la implementación física. * El manejo de múltiples vistas por parte de los usuarios. Lo cual tiene importantes implicaciones al abstraer la forma en que presentamos la información a un usuario y la forma en que esta se encuentra almacenada. * El uso de un catálogo o diccionario para almacenar el esquema de la base de datos. Es decir, la creación de un modelo centralizado para los metadatos.
En 1975 fue aprobado por el Instituto Nacional estadounidense de Estándares (ANSI, por sus siglas en Inglés:American National Standards Institute) y por el Comité de Requisitos y Planificación de Estándares (SPARC, por sus siglas en inglés: Standards Planning and Requirements Committee) un esquema o arquitectura de capas de tres niveles: un nivel interno o físico, un nivel conceptual y un nivel externo o lógico. Cada una de estas 3 capas determinaba un nuevo nivel de abstracción (también llamadas capas de trasparencia)que permitía el acceso a más alto nivel. Hoy día este modelo está en los fundamentos de todas las bases de datos relacionales. El Nivel Físico se encarga de engranar con el software más interno de cada máquina (Sistema Operativo y Sistema de Gestión de ficheros). El Esquema Interno especifica qué y cómo son almacenados los datos. Describe la estructura de la BD en forma de Modelo Conceptual de almacenamiento. El Nivel Conceptual materializa el lugar donde definir el resultado del diseño de la BD. El Esquema Conceptual debe captar y almacenar el modelo que describe a la organización o empresa y que es necesaria para su funcionamiento (capacidad semántica) sirve de punto de control para futuros desarrollos de la BD aísla la representación de la información de los requerimientos de la máquina y de las exigencias de cada usuario en particular. El Nivel Lógico o externo de descripción, contiene las vistas externas de la BD que están asociadas cada una a un Esquema Externo y permite ver a cada tipo de usuario de la BD sólo aquella parte del esquema que es de su interés. La arquitectura de tres niveles es útil para explicar el concepto de independencia de datos que podemos definir como la capacidad para modificar
el esquema en un nivel del sistema sin tener que modificar el esquema del nivel inmediato superior. Se pueden definir dos tipos de independencia de datos: La independencia lógica es la capacidad de modificar el esquema conceptual sin tener que alterar los esquemas externos ni los programas de aplicación. Se puede modificar el esquema conceptual para ampliar la base de datos o para reducirla. Si, por ejemplo, se reduce la base de datos eliminando una entidad, los esquemas externos que no se refieran a ella no deberán verse afectados. La independencia física es la capacidad de modificar el esquema interno sin tener que alterar el esquema conceptual (o los externos). Por ejemplo, puede ser necesario reorganizar ciertos ficheros físicos con el fin de mejorar el rendimiento de las operaciones de consulta o de actualización de datos. Dado que la independencia física se refiere sólo a la separación entre las aplicaciones y las estructuras físicas de almacenamiento, es más fácil de conseguir que la independencia lógica.
1.4. Sistemas gestores de base de datos (SGBD) La labor fundamental de una BD es persistir la información de estado de un sistema mediante estructuras relacionadas de datos almacenados de forma plana, atómica, univoca y no recurrente. Para conseguir este objetivo, las bases de datos modernas se apoyan en el modelo relacional expuesto por Codd y en una separación efectiva de capas. Con ello se consigue:
- Mantener el estado del sistema asegurando la coherencia y la unicidad -
de los datos. Proveer un mecanismo rápido y sobre todo eficaz para extraer información conectada. Asegurar la seguridad en el acceso y la modificación de los datos.
--------------------------------------------------------------------
Sabías que… Más información de la que serías capaz de imaginar La mayor base de datos del mundo es la del World Climatic Data Center donde se almacenan los datos climáticos recopilados por el hombre en los últimos 150 años consistentes en 320 millones de artículos y 1.2 petabytes de imágenes (1000 terabytes o dicho de otra forma 10 15 bytes) en formato digital, y donde, cada día se incorporan 224 gigabytes de datos (cifras de 2012). Más información enwww.ncdc.noaa.gov --------------------------------------------------------------------
En el presente curso, aprenderemos a usar y administrar dos de los mayores y más extendidos Sistemas Gestores de Base de Datos (SGBD o RDBMS en inglés), Microsoft SQL Server y Oracle.Un SGBD es la conjunción de un motor de base de datos relacional y un conjunto de programas que permite a los usuarios crear y mantener la BD. Por tanto, el SGBD es un sistema de software de propósito general que facilita el proceso de definir; construir y manipular BBDD para diversas aplicaciones. En 1985 el DAFTG (del inglés Database Architecture Frame-work Task Group) del ANSI-X3-SPARC presentó el estudio final Modelo de Referencia para la estandarización de los SGBD. El Modelo de Referencia MR no es por sí mismo un estándar sino un marco conceptual cuyo objetivo principal es simplificar el trabajo de estandarización de los distintos componentes y sus relaciones de un SGBD.Los objetivos del Modelo de Referencia se pueden resumir en: * Servir de herramienta para el desarrollo y coordinación de estándar en el área de SGBD. * Describir las interacciones entre el SGBD y otros componentes lógicos del Sistema de Información, tales como el Sistema de Diccionario de Datos. * Facilitar la formación del personal dando un marco común para la descripción de los SGBD. * Permitir la clasificación de los productos comerciales. * Ayudar a los usuarios a analizar, cambiar e introducir SGBD en su organización. Los beneficios que puede traer la estandarización de los SGBD también son múltiples: * Portabilidad de las aplicaciones * Mejora de la productividad y disminución de gastos de formación * Simplificación de los procesos de evaluación y selección de los SGBD * Reducción de costes En 1978, los laboratorios de IBM proporcional al modelo de base de datos relacional la pieza que faltaba, definiendo un lenguaje de consultas potente e intuitivo basado en experimental System R, (un lenguaje desarrollado en 1977 también por IBM) al que llamaron lenguaje SEQUEL (Structured English Query Language). Sin embargo, fue Oracle quien lo introdujo por primera vez en 1979 en un programa comercial. El SEQUEL terminaría siendo el predecesor de SQL, siendo este una versión evolucionada del primero. El SQL pasa a ser el lenguaje por excelencia de los
diversos sistemas de gestión de bases de datos relacionales surgidos en los años siguientes y es por fin estandarizado en 1986 por el ANSI, dando lugar a la primera versión estándar de este lenguaje, ANSI-SQL, llamado también SQL-86 o SQL1. Al año siguiente este estándar es también adoptado por la ISO y revisado con cierta periodicidad desde entonces.
Resumen Una base de datos es un conjunto de datos estructurados y relacionados entre sí (piezas de información). Por datos se entienden hechos conocidos que pueden registrarse y que tienen un significado implícito. Una Base de datos se construye en base a un modelo. Dicho modelo impone reglas que se traducen en relaciones impidiendo que el almacenamiento de información incorrecta. Una base de datos relacional almacena de los datos de forma que no existe información redundante o superflua, y permite la recuperación y el acceso a dicha información de forma coherente y ordenada. Toda base de datos debe permitir el acceso, modificación y recuperación de datos a través de un lenguaje de consulta para que los usuarios puedan buscar, obtener y actualizar los datos cuando sea necesario. Un SGBD es un conjunto de programas que permite a los usuarios crear y mantener una BD ofreciendo servicios para su explotación y mantenimiento. Por tanto, el SGBD es un sistema de software de propósito general que facilita el proceso de definir; construir y manipular BBDD para diversas aplicaciones. Para definir una BD hay que especificar los tipos de datos, las estructuras y las restricciones de los datos que se almacenarán en ella. Construir una BD es el proceso de definir el esquema relacional y guardarlo en algún medio de almacenamiento controlado por el SGBD. Una vez creada podremos obtener datos específicos, actualizar la BD para reflejar cambios en el esquema y generar informes a partir de los datos utilizando el los lenguajes de consulta y manipulación de datos. En las últimas décadas son muchos los sistemas gestores de base de datos que han aparecido en el mercado. Entre ellos, cabe destacar dos: Oracle Database y Microsoft SQL Server.
Autoevaluación 1 - Cual de las siguientes son ventajas de la estandarización en los sistemas gestores de base de datos?
a) Fácil portabilidad b) Mensajes de error en varios idiomas
c) Reducción de costes 2- La abstracción en capas ANSI-SPARC permite..
a) Realizar una efectiva separación de capas b) Ocultar al usuario los detalles internos y de implementación c) Que el programador maneje los accesos de IO a bajo nivel 3- Que es ANSI SQL? a) Un conjunto de recomendaciones sobre buenas prácticas de programación. b) Un conjunto de recomendacionesque define el lenguaje de consultas que utilizamos para acceder al esquema relacional. c) Una herramienta para realizar copias de respaldo de los datos.
Ejercicio El ejercicio que te proponemos consiste en buscar en Internet más información acerca de las reglas de normalización de bases de datos relacionales propuestas por Codd en 1967. Busca ejemplos, referencias y casos de uso.Selecciona una de ellas y realizar un pequeño resumen donde expliques la problemática que resuelve y porqué crees que es importante. Más tarde ponte de acuerdo con un compañero para intercambiar las explicaciones y no olvidescompartir estos enlaces con tus compañeros de curso. A. Buscar en la red Ve a la Wikipedia (es.wikipedia.org). En el cuadro de búsqueda introduce Edgar Frank Codd y podrás ver la biografía de este brillante ingeniero inglés.
Refinemos la búsqueda, prueba ahora a introducir “las 12 reglas de Codd”. B. Elaborar documento En un documento de procesador de texto, haz un listado enumerando las 12 reglas de Codd. Ahora céntrate en una, la que te parezca más sencilla y trata de descubrir porque es importante. También puedes incluir enlaces, recortes o ejemplos y no olvides incluir comentarios al lado de cada enlace, o imágenes que aclaren en concepto para que puedan entenderlo tus compañeros. C. Enviar y compartir Envía este documento a tu tutor para que lo publique en la plataforma del curso y tus compañeros del curso puedan ver tu trabajo. D. Hacer uso de los documentos compartidos Indaga en los documentos publicados por tus compañeros. El conjunto de los documentos que habéis os servirán en los próximos módulos para tomar mejores decisiones de diseño.
Referencias [1] Database Concepts (sextaedicion), David M. Kroenke, ed. Course Technologies, 2012. [2] Beginning Database Design: From Novice to Professional, Clare Churcher, ed. Apress, 2006.
[3] A Relational Model of Data for Large Shared Data Banks Communications of the ACM, Vol. 13, No. 6, 1970, pp. 377-387