Manual Didáctico Alumna: Ana Karen Bueno Pantoja UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Table of Contents FUNDAMENTOS DE BASE DE DATOS ................................................................................ 5 OBJETIVOS DE SISTEMAS DE BASE DE DATOS ............................................................. 5 TIPOS DE BASE DE DATOS ............................................................................................. 6 Los objetivos del modelo de datos son dos: ............................................................ 7 Los conceptos estáticos corresponden a: ................................................................ 7 MODELOS DE BASES DE DATOS .................................................................................... 7 Lenguaje.................................................................................................................... 9 Fases ....................................................................................................................... 10 Interpretación ......................................................................................................... 10 Mecanismos ............................................................................................................ 10 TÉCNICAS DE RECOLECCIÓN DE DATOS.......................................................................... 11 LA ENTREVISTA ........................................................................................................... 11 Preparación de la Entrevista................................................................................... 11 Conducción de la Entrevista ................................................................................... 12 Secuela de la Entrevista .......................................................................................... 12 Determinación del tipo de Entrevista .................................................................... 12 Realización de Entrevista ........................................................................................ 13 CUESTIONARIO ........................................................................................................... 13 Recabación de datos mediante cuestionarios........................................................ 14 Selección de formas para cuestionarios ................................................................. 14 Cuestionario Abierto .............................................................................................. 14 Cuestionario Cerrado.............................................................................................. 14 LA OBSERVACIÓN........................................................................................................ 15 TIPOS DE OBSERVACIÓN ............................................................................................. 15 Preparación para la observación ............................................................................ 15 UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Conducción de la observación ................................................................................ 15 Secuela de la observación ...................................................................................... 16 MODELO ENTIDAD-RELACIÓN ........................................................................................ 16 BASE TEÓRICA Y CONCEPTUAL ................................................................................... 17 Tipo de Entidad, Claves… ........................................................................................ 17 SIMBOLOS ................................................................................................................... 18 Modelo EE-R extendido (Extended / Enhanced) ........................................................ 22 ESPECIALIZACION / GENERALIZACION........................................................................ 23 CREACIÓN DE TABLAS ................................................................................................. 24 CREACIÓN DE RELACIONES ......................................................................................... 25 LA INSTRUCCIÓN DELETE ............................................................................................ 27 LA INSTRUCCIÓN INSERT INTO ................................................................................... 28 LA INSTRUCCIÓN UPDATE .......................................................................................... 29 LA INSTRUCCIÓN SELECT ............................................................................................ 30 MODELO RELACIONAL .................................................................................................... 31 Esquema ................................................................................................................. 31 Tablas ...................................................................................................................... 32 Conversión del modelo E-R a un esquema de base de datos (Conversión a tablas) . 33 Normalización ............................................................................................................. 36 Terminología relacional equivalente ...................................................................... 36 Dependencia ........................................................................................................... 37 Propiedades de la Dependencia funcional ............................................................. 37 Propiedades deducidas........................................................................................... 38 Claves ...................................................................................................................... 38 Formas Normales........................................................................................................ 39 Primera Forma Normal (1FN) ................................................................................. 39 Segunda Forma Normal (2FN) ................................................................................ 40 Tercera Forma Normal (3FN) .................................................................................. 40 Forma normal de Boyce-Codd (FNBC) .................................................................... 41 Cuarta Forma Normal (4FN) ................................................................................... 41 Quinta Forma Normal (5FN) ................................................................................... 41 Reglas de Codd ........................................................................................................... 41 Regla No. 1 - La Regla de la información ................................................................ 41 Regla No. 2 - La regla del acceso garantizado ........................................................ 42 Regla No. 3 - Tratamiento sistemático de los valores nulos .................................. 42 UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Regla No. 4 - La regla de la descripción de la base de datos .................................. 42 Regla No. 5 - La regla del sub-lenguaje Integral ..................................................... 42 Regla No. 6 - La regla de la actualización de vistas ................................................ 42 Regla No. 7 - La regla de insertar y actualizar ........................................................ 43 Regla No. 8 - La regla de independencia física ....................................................... 43 Regla No. 9 - La regla de independencia lógica ...................................................... 43 Regla No. 10 - La regla de la independencia de la integridad ................................ 43 Regla No. 11 - La regla de la distribución ............................................................... 44 Regla No. 12 - Regla de la no-subversión ............................................................... 44 SISTEMA DE GESTIÓN DE BASES DE DATOS ............................................................... 45 DATA DEFINITION LANGUAGE .................................................................................... 46 CREATE .................................................................................................................... 46 CREATE TABLE ......................................................................................................... 46 DROP ....................................................................................................................... 47 ALTER ...................................................................................................................... 47 Clasificación del lenguaje de manipulación de datos ............................................. 48 VISTAS Y CONSULTAS .................................................................................................. 48 BIBLIOGRAFIA ................................................................................................................. 50 UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE FUNDAMENTOS DE BASE DE DATOS U N sistema gestor de bases de datos (SGBD) consiste en una colección de datos inter-relacionados y un conjunto de programas para acceder a dichos datos. La colección de datos, normalmente denominada base de datos, contiene información relevante para una empresa. El objetivo principal de un SGBD es proporcionar una forma de almacenar y recuperar la información de una base de datos de manera que sea tanto práctica como eficiente. Los sistemas de bases de datos se diseñan para gestionar grandes cantidades de información. La gestión de los datos implica tanto la definición de estructuras para almacenar la información como la provisión de mecanismos para la manipulación de la información. Además, los sistemas de bases de datos deben proporcionar la fiabilidad de la información almacenada, a pesar de las caídas del sistema o los intentos de acceso sin autorización. Si los datos van a ser compartidos entre diversos usuarios, el sistema debe evitar posibles resultados anómalos. Dado que la información es tan importante en la mayoría de las organizaciones, los científicos informáticos han desarrollado un amplio conjunto de conceptos y técnicas para la gestión de los datos. En este capítulo se presenta una breve introducción a los principios de los sistemas de bases de datos. OBJETIVOS DE SISTEMAS DE BASE DE DATOS En el proceso de abstracción que conduce a la creación de una base de datos desempeña una función prioritaria el modelo de datos. El modelo de datos, como abstracción del universo de discurso, es el enfoque utilizado para la representación de las entidades y sus características dentro de la base de datos, y puede ser dividido en tres grandes tipos: 1. Modelos lógicos basados en objetos: los dos más extendidos son el modelo entidad-relación y el orientado a objetos. El modelo entidad-relación (E-R) se basa en una percepción del mundo compuesta por objetos, llamados entidades, y relaciones entre ellos. Las entidades se diferencian unas de otras a través de atributos. El orientado a objetos también se basa en objetos, los cuales contienen valores y métodos, entendidos como órdenes que actúan sobre los valores, en niveles de anidamiento. Los objetos se agrupan en clases, relacionándose mediante el envío de mensajes. Algunos autores definen estos modelos como "modelos semánticos". 2. Modelos lógicos basados en registros: el más extendido es el relacional, mientras que los otros dos existentes, jerárquico y de red, se encuentran en retroceso. Estos modelos se usan para especificar la estructura lógica global de la base de datos, estructurada en registros de formato fijo de varios tipos. El modelo relacional representa los datos y sus relaciones mediante tablas bidimensionales, que contienen datos tomados de los dominios correspondientes. El modelo de red está formado por colecciones de registros, relacionados mediante punteros o ligas en grafos arbitrarios. El modelo jerárquico es similar al de red, pero los registros se organizan como colecciones UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE de árboles. Algunos autores definen estos modelos como "modelos de datos clásicos". 3. Modelos físicos de datos: muy poco usados, son el modelo unificador y el de memoria de elementos. Algunos autores definen estos modelos como "modelos de datos primitivos". TIPOS DE BASE DE DATOS Las bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que se esté manejando, la utilidad de las mismas o las necesidades que satisfagan. Según la variabilidad de los datos almacenados o Bases de datos estáticas Son bases de datos de sólo lectura, utilizadas primordialmente para almacenar datos históricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones, tomar decisiones y realizar análisis de datos para inteligencia empresarial. o Bases de datos dinámicas Éstas son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización, borrado y adición de datos, además de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada en un sistema de información de un supermercado, una farmacia, un videoclub o una empresa. Según el contenido o Bases de datos bibliográficas Sólo contienen un subrogante (representante) de la fuente primaria, que permite localizarla. Un registro típico de una base de datos bibliográfica contiene información sobre el autor, fecha de publicación, editorial, título, edición, de una determinada publicación, etc. Puede contener un resumen o extracto de la publicación original, pero nunca el texto completo, porque si no, estaríamos en presencia de una base de datos a texto completo (o de fuentes primarias —ver más abajo). Como su nombre lo indica, el contenido son cifras o números. Por ejemplo, una colección de resultados de análisis de laboratorio, entre otras. o Bases de datos de texto completo Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una colección de revistas científicas. o Directorios Un ejemplo son las guías telefónicas en formato electrónico. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Los objetivos del modelo de datos son dos: 1. Formalización: definir formalmente las estructuras permitidas y las restricciones a fin de representar los datos de un SI. 2. Diseño: el modelo resultante es un elemento básico para el desarrollo de la metodología de diseño de la base de datos. Los diferentes modelos de datos comparten, aunque con diferentes nombres y notaciones, unos elementos comunes, componentes básicos de la representación de la realidad que realizan. Estos componentes se identifican gracias a la clasificación, y pueden identificarse conceptos estáticos y conceptos dinámicos. Los conceptos estáticos corresponden a: 1. Objeto: cualquier entidad con existencia independiente sobre el que almacenan datos. Puede ser simple o compuesto. 2. Relación: asociación entre objetos. 3. Restricción estática: propiedad estática del mundo real que no puede expresarse con los anteriores, ya que sólo se da en la base de datos; suele corresponder a valores u ocurrencias, y puede ser sobre atributos, entidades y relaciones. 4. Objeto compuesto: definidos como nuevos objetos dentro de la base de datos, tomando como punto de partida otros existentes, mediante mecanismos de agregación y asociación. 5. Generalización: se trata de relaciones de subclase entre objetos, es decir, parte de las características de diferentes entidades pueden resultar comunes entre ellas. Por su parte, los conceptos dinámicos responden a: 1. Operación: acción básica sobre objetos o relaciones (crear, modificar, eliminar...). 2. Transacción: conjunto de operaciones que deben ejecutarse en su conjunto obligatoriamente. 3. Restricción dinámica: propiedades del mundo real que restringen la evolución en el tiempo de la base de datos. MODELOS DE BASES DE DATOS Además de la clasificación por la función de las bases de datos, éstas también se pueden clasificar de acuerdo a su modelo de administración de datos. Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemáticos. Algunos modelos con frecuencia utilizados en las bases de datos: o Bases de datos jerárquicas UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE En este modelo los datos se organizan en una forma similar a un árbol (visto al revés), en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas. Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen de información y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento. Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos. o Base de datos de red Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico). Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos; pero, aun así, la dificultad que significa administrar la información en una base de datos de red ha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales. o Bases de datos relacionales Éste es el modelo utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Tras ser postulados sus fundamentos en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados "tuplas". Pese a que ésta es la teoría de las bases de datos relacionales creadas por Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está compuesta por registros (las filas de una tabla), que representarían las tuplas, y campos (las columnas de una tabla). En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la información. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query Language o Lenguaje Estructurado de Consultas, un estándar implementado por los principales motores o sistemas de gestión de bases de datos relacionales. Durante su diseño, una base de datos relacional pasa por un proceso al que se le conoce como normalización de una base de datos. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Durante los años 80 la aparición de dBASE produjo una revolución en los lenguajes de programación y sistemas de administración de datos. Aunque nunca debe olvidarse que dBase no utilizaba SQL como lenguaje base para su gestión. o Bases de datos orientadas a objetos Este modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, trata de almacenar en la base de datos los objetos completos (estado y comportamiento). Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos: Encapsulación - Propiedad que permite ocultar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos. Herencia - Propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases. Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objetos. En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definición de la base de datos. Una operación (llamada función) se especifica en dos partes. La interfaz (o signatura) de una operación incluye el nombre de la operación y los tipos de datos de sus argumentos (o parámetros). La implementación (o método) de la operación se especifica separadamente y puede modificarse sin afectar la interfaz. Los programas de aplicación de los usuarios pueden operar sobre los datos invocando a dichas operaciones a través de sus nombres y argumentos, sea cual sea la forma en la que se han implementado. Esto podría denominarse independencia entre programas y operaciones. SQL: 2003 es el estándar de SQL92 ampliado, soporta los conceptos orientados a objetos y mantiene la compatibilidad con SQL92. Lenguaje Utiliza un subconjunto del lenguaje Prolog llamado Datalog el cual es declarativo y permite al ordenador hacer deducciones para contestar a consultas basándose en los hechos y reglas almacenados. o Ventajas 1. Uso de reglas lógicas para expresar las consultas. 2. Permite responder consultas recursivas. 3. Cuenta con negaciones estratificadas 4. Capacidad de obtener nueva información a través de la ya almacenada en la base de datos mediante inferencia. 5. Uso de algoritmos de optimización de consultas. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE o Desventajas 1. Crear procedimientos eficaces de deducción para evitar caer en bucles infinitos 2. Encontrar criterios que decidan la utilización de una ley como regla de deducción. 3. Replantear las convenciones habituales de la base de datos. Fases o Fase de Interrogación: se encarga de buscar en la base de datos informaciones deducibles implícitas. Las reglas de esta fase se denominan reglas de derivación. o Fase de Modificación: se encarga de añadir a la base de datos nuevas informaciones deducibles. Las reglas de esta fase se denominan reglas de generación. Interpretación Encontramos dos teorías de interpretación de las bases de datos deductivas: o Teoría de Demostración: consideramos las reglas y los hechos como axiomas. Los hechos son axiomas base que se consideran como verdaderos y no contienen variables. Las reglas son axiomas deductivos ya que se utilizan para deducir nuevos hechos. o Teoría de Modelos: una interpretación es llamada modelo cuando para un conjunto específico de reglas, éstas se cumplen siempre para esa interpretación. Consiste en asignar a un predicado todas las combinaciones de valores y argumentos de un dominio de valores constantes dado. A continuación se debe verificar si ese predicado es verdadero o falso. Mecanismos Existen dos mecanismos de inferencia: o Ascendente: donde se parte de los hechos y se obtiene nuevos aplicando reglas de inferencia. o Descendente: donde se parte del predicado (objetivo de la consulta realizada) e intenta encontrar similitudes entre las variables que nos lleven a hechos correctos almacenados en la base de datos. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE TÉCNICAS DE RECOLECCIÓN DE DATOS Los analistas utilizan una variedad de métodos a fin de recopilar los datos sobre una situación existente, como entrevistas, cuestionarios, inspección de registros (revisión en el sitio) y observación. Cada uno tiene ventajas y desventajas. Generalmente, se utilizan dos o tres para complementar el trabajo de cada una y ayudar a asegurar una investigación completa. LA ENTREVISTA Las entrevistas se utilizan para recabar información en forma verbal, a través de preguntas que propone el analista. Quienes responden pueden ser gerentes o empleados, los cuales son usuarios actuales del sistema existente, usuarios potenciales del sistema propuesto o aquellos que proporcionarán datos o serán afectados por la aplicación propuesta. El analista puede entrevistar al personal en forma individual o en grupos algunos analistas prefieren este método a las otras técnicas que se estudiarán más adelante. Sin embargo, las entrevistas no siempre son la mejor fuente de datos de aplicación. Dentro de una organización, la entrevista es la técnica más significativa y productiva de que dispone el analista para recabar datos. En otras palabras, la entrevista es un intercambio de información que se efectúa cara a cara. Es un canal de comunicación entre el analista y la organización; sirve para obtener información acerca de las necesidades y la manera de satisfacerlas, así como concejo y comprensión por parte del usuario para toda idea o método nuevos. Por otra parte, la entrevista ofrece al analista una excelente oportunidad para establecer una corriente de simpatía con el personal usuario, lo cual es fundamental en transcurso del estudio. Preparación de la Entrevista 1. Determinar la posición que ocupa de la organización el futuro entrevistado, sus responsabilidades básicas, actividades, etc. (Investigación). 2. Preparar las preguntas que van a plantearse, y los documentos necesarios (Organización). 3. Fijar un límite de tiempo y preparar la agenda para la entrevista. (psicología). 4. Elegir un lugar donde se puede conducir la entrevista con la mayor comodidad (psicología). 5. Hacer la cita con la debida anticipación (Planeación) UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Conducción de la Entrevista 1. Explicar con toda amplitud el propósito y alcance del estudio (Honestidad). 2. Explicar la función propietaria como analista y la función que se espera conferir al entrevistado. (Imparcialidad). 3. Hacer preguntas específicas para obtener respuestas cuantitativas (Hechos). 4. Evitar las preguntas que exijan opiniones interesadas, subjetividad y actitudes similares (habilidad). 5. Evitar el cuchicheo y las frases carentes de sentido (Claridad). 6. Ser cortés y comedio, absteniéndose de emitir juicios de valores. (Objetividad). 7. Conservar el control de la entrevista, evitando las divagaciones y los comentarios al margen de la cuestión. 8. Escuchar atentamente lo que se dice, guardándose de anticiparse a las respuestas (Comunicación). Secuela de la Entrevista 1. Escribir los resultados (Documentación). 2. Entregar una copia al entrevistado, solicitando su conformación, correcciones o adiciones. (Profesionalismo). 3. Archivar los resultados de la entrevista para referencia y análisis posteriores (Documentación). Determinación del tipo de Entrevista La estructura de la entrevista varía. Si el objetivo de la entrevista radica en adquirir información general, es conveniente elaborar una serie de pregunta sin estructura, con una sesión de preguntas y respuesta libres Las entrevistas estructuradas utilizan pregunta estandarizada. El formato de respuestas para las preguntas pueden ser abierto o cerrado; las preguntas para respuestas abierta permiten a los entrevistados dar cualquier respuesta que parezca apropiado. Pueden contestar por completo con sus propias palabras. Con las preguntas para respuesta cerradas se proporcionan al usuario un conjunto de respuesta que se pueda seleccionar. Todas las personas que respondes se basan en un mismo conjunto de posibles respuestas. Los analistas también deben dividir el tiempo entre desarrollar preguntas para entrevistas y analizar respuesta. La entrevista no estructurada no requiere menos tiempos de preparación, porque no necesita tener por anticipado las palabras precisas de las preguntas. Analizar las respuestas después de la entrevista lleva más tiempo que con la entrevista estructuradas. El mayor costo radica en la preparación, administración y análisis de las entrevistas estructuradas para pregunta cerradas. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Realización de Entrevista La habilidad del entrevistador es vital para el éxito en la búsqueda de hecho por medio de la entrevista. La buena entrevista depende del conocimiento del analista tanto de la preparación del objetivo de una entrevista específica como de las preguntas por realizar a una persona determinada. El tacto, la imparcialidad e incluso la vestimenta apropiada ayudan a asegurar una entrevista exitosa. La falta de estos factores puede reducir cualquier oportunidad de éxito. Por ejemplo, analista que trabaja en la aplicación enfocada a la reducción de errores (captado por la gerencia de alto nivel) probablemente no tendría éxito si llegara a una oficina de gerencia de nivel medio con la presentación equivocada, ejemplo "Estamos aquí para resolver su problema". A través de la entrevista, los analistas deben preguntarse a sí mismo las siguientes preguntas: ¿Qué es lo que me está diciendo la persona? ¿Por qué me lo está diciendo a mí? ¿Qué está olvidando? ¿Qué espera está persona que haga yo? CUESTIONARIO Los cuestionarios proporcionan una alternativa muy útil para la entrevista; si embargo, existen ciertas características que pueden ser apropiada en algunas situaciones e inapropiadas en otra. Al igual que la entrevistas, deben diseñarse cuidadosamente para una máxima efectividad. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Recabación de datos mediante cuestionarios Para los analistas los cuestionarios pueden ser la única forma posible de relacionarse con un gran número de personas para conocer varios aspectos del sistema. Cuando se llevan a cabo largos estudios en varios departamentos, se puede distribuir los cuestionarios a todas las personas apropiadas para recabar hechos en relación al sistema. En mayor parte de los casos, el analista no verá a los que responde; no obstante, también esto es una ventaja porque aplican muchas entrevista ayuda a asegurar que el interpelado cuenta con mayor anonimato y puedan darse respuestas más honesta (y menos respuestas pre hechas o estereotipadas). También las preguntas estandarizadas pueden proporcionar datos más confiables. Selección de formas para cuestionarios El desarrollo y distribución de los cuestionarios; por lo tanto, el tiempo invertido en esto debe utilizarse en una forma inteligente. También es importante el formato y contenido de las preguntas en la recopilación de hechos significativos. Existen dos formas de cuestionarios para recabar datos: cuestionarios abiertos y cerrados, y se aplican dependiendo de si los analistas conocen de antemano todas las posibles respuestas de las preguntas y pueden incluirlas. Con frecuencia se utilizan ambas formas en los estudios de sistemas. Cuestionario Abierto Al igual que las entrevistas, los cuestionarios pueden ser abiertos y se aplican cuando se quieren conocer los sentimientos, opiniones y experiencias generales; también son útiles al explorar el problema básico, por ejemplo, un analista que utiliza cuestionarios para estudiar los métodos de verificación de crédito, es un medio. El formato abierto proporciona una amplia oportunidad para quienes respondan escriba las razones de sus ideas. Algunas personas sin embargo, encuentran más fácil escoger una de un conjunto de respuestas preparadas que pensar por sí mismas. Cuestionario Cerrado El cuestionario cerrado limita las respuestas posibles del interrogado. Por medio de un cuidadoso estilo en la pregunta, el analista puede controlar el marco de referencia. Este formato es el método para obtener información sobre los hechos. También fuerza a los individuos para que tomen una posición y forma su opinión sobre los aspectos importantes. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE LA OBSERVACIÓN Otra técnica útil para el analista en su progreso de investigación, consiste en observar a las personas cuando efectúan su trabajo. Como técnica de investigación, la observación tiene amplia aceptación científica. Los sociólogos, sicólogos e ingenieros industriales utilizan extensamente ésta técnica con el fin de estudiar a las personas en sus actividades de grupo y como miembros de la organización. El propósito de la organización es múltiple: permite al analista determinar que se está haciendo, como se está haciendo, quien lo hace, cuando se lleva a cabo, cuánto tiempo toma, dónde se hace y por qué se hace. "¡Ver es creer! Observar las operaciones la proporciona el analista hechos que no podría obtener de otra forma. TIPOS DE OBSERVACIÓN El analista de sistemas puede observar de tres maneras básicas. Primero, puede observar a una persona o actitud sin que el observado se dé cuenta y su interacción por aparte del propio analista. Quizá esta alternativa tenga poca importancia para el análisis de sistemas, puesto que resulta casi imposible reunir las condiciones necesarias. Segundo, el analista puede observar una operación sin intervenir para nada, pero estando la persona observada enteramente consciente de la observación. Por último, puede observar y a la vez estar en contacto con las personas observas. La interacción puede consistir simplemente en preguntar respecto a una tarea específica, pedir una explicación, etc. Preparación para la observación 1. 2. 3. 4. Determinar y definir aquella que va a observarse. Estimular el tiempo necesario de observación. Obtener la autorización de la gerencia para llevar a cabo la observación. Explicar a las personas que van a ser observadas lo que se va a hacer y las razones para ello. Conducción de la observación 1. Familiarizarse con los componentes físicos del área inmediata de observación. 2. Mientras se observa, medir el tiempo en forma periódica. 3. Anotar lo que se observa lo más específicamente posible, evitando las generalidades y las descripciones vagas. 4. Si se está en contacto con las personas observadas, es necesario abstenerse de hacer comentarios cualitativos o que impliquen un juicio de valores. 5. Observar las reglas de cortesía y seguridad. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Secuela de la observación 1. Documentar y organizar formalmente las notas, impresionistas, etc. 2. Revisar los resultados y conclusiones junto con la persona observada, el supervisar inmediato y posiblemente otro de sistemas. MODELO ENTIDAD-RELACIÓN Es una herramienta para el modelado de datos de un sistema de información. Estos modelos expresan entidades relevantes para un sistema de información así como sus interrelaciones y propiedades. 1. Se elabora el diagrama (o diagramas) entidadrelación. 2. Se completa el modelo con listas de atributos y una descripción de otras restricciones que no se pueden reflejar en el diagrama. Dado lo rudimentario de esta técnica se necesita cierto entrenamiento y experiencia para lograr buenos modelos de datos. El modelado de datos no acaba con el uso de esta técnica. Son necesarias otras técnicas para lograr un modelo directamente implementarle en una base de datos. Brevemente: Transformación de relaciones múltiples en binarias. Normalización de una base de datos de relaciones (algunas relaciones pueden transformarse en atributos y viceversa). Conversión en tablas (en caso de utilizar una base de datos relacional). UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE BASE TEÓRICA Y CONCEPTUAL El modelo de datos entidad-relación está basado en una percepción del mundo real que consta de una colección de objetos básicos, llamados entidades, y de relaciones entre esos objetos. Entidad: Concepto, Objeto o cosa que existe en el mundo. - Físicamente: Ejemplos: Personas, Coche, Cliente… - Lógicamente: Ejemplos: Empleo, Cursos, Compañía… Atributos: Describe las entidades. - Tiene un DOMINIO: conjunto de valores validos (cadenas, No…) - Valor NULL: Ignoramos el valor o atributo no es aplicable. - Tipos: Simples: (Indivisibles) y Compuestos (divisibles en simples). Ejemplo: Dirección = (Calle, Piso, Letra, CP, Cuidad, País). Univaluados: (Ejemplo Edad) y Multivaluados (Ejemplo Color en coches) Almacenados: (Ejemplo Fecha de nacimiento) y Derivados o Calculados (Ejemplo Edad). Complejos: Son Compuestos y Multivaluados. Tipo de Entidad, Claves… Tipo de Entidad: Conjunto de ENTIDADES con iguales atributos (Ejemplo: Cliente). Al conjunto físico de todas esas entidades (todos los clientes) se le llama EXTERSION. Atributos Clave o Llave (Key): Aquellos que tomar valores únicos y distintos para cada Entidad del mismo tipo. Pueden ser Simples o Compuestos por varios atributos simples. Si son compuestos deben ser mínimos (sin atributos superfluos o innecesarios). Sin tener atributos superfluos se llamaran SUPERLLAVE. Ejemplo: atributo DNI será clave en un tipo de entidad persona. Intensión o Esquema: Representación de los tipos de entidades, sus atributos (claves…), Relaciones entre ellos. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE A veces, existen distintas formas de representación: Sin embargo, cuando un atributo sirve para relacionar dos entidades, en el modelo EER es preferible no representarlo como atributo, sino como RELACION. A veces es difícil decidir si un concepto del MiniMundo debe ser una Entidad, una Relación o un Atributo. El Esquema debe ser refinado en sucesivos pasos, como los siguientes (posteriormente se verán más cuestiones a tener en cuenta): - Un concepto puede ponerse como ATRIBUTO y luego descubrirse que una RELACION, porque es una referencia a otra ENTIDAD: - Un ATRIBUTO de varias ENTIDADES, puede convertirse en una ENTIDAD: - Una ENTIDAD con pocos atributos y relacionada SOLO con otra ENTIDAD, puede convertirse en un ATRIBUTO. SIMBOLOS Entidad Relación Entidad débil Relación Identificativa (De una Entidad Débil) UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Atributo Atributo Multivaluado Atributo Compuesto Atributo Derivado Atributo Llave Atributo Llave Parcial Participación Cardinalidad Ejemplo: del libro Elmasri/Navathe, en inglés, usando la notación (Min, Max) e incluyendo roles. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE ¿CÓMO SE PASA DEL ESQUEMA E/R A LAS TABLAS? Para cada entidad del esquema se creara una tabla con tantos campos como atributos tenga la entidad. Ejemplo: Tabla “TRABAJADOR” Las relaciones 1:1 se pueden reflejar incluyendo en una de las dos tablas un campo en el que poder colocar la clave del elemento de las otras tablas con el que se está relacionando. Ese nuevo campo que se incluye en la tabla recibe el nombre de clave ajena. Ejemplo: Tabla “HOMBRE” Tabla “TRABAJADOR” Donde el campo DNI- ESPOSO es la clave ajena de la tabla HOMBRE. Aquí hay que hacer notar que el campo DNI- ESPOSO puede tomar o bien un valor nulo en el caso de aquellas mujeres que no estén casadas, o bien el valor alguno de los DNI de la tabla UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE HOMBRE, en el caso de las mujeres casadas; en este segundo caso, ese DNI (la clave ajena) no se deberá repetir en ningún otro registro de la tabla MUJER. Las relaciones 1: N se representan de forma muy parecida a como se ha explicado para las relaciones 1:1. La diferencia está en que ahora no es indiferente donde se coloque la clave ajena, esta debe estar obligatoriamente en la tabla del “mucho” (n); y además, para este caso si se permitirá que haya valores repetidos en dicho campo. Ejemplo: Tabla “EMPRESA” Tabla “TRABAJADOR” Para representar las relaciones n:n en tablas lo que se hace es crear una nuevas tablas solamente para la relación. Esta nueva tabla tendrá dos claves ajenas y su propia clave estará formada por la unión de las claves ajenas. Ejemplo: Tabla “ALUMNO” UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Tabla “ASIGNATURA” Tabla “MATRICULA” (Esta es la relación) En la tabla MATRICULA es donde se refleja la relación. La clave de dicha tabla está formada por los campos DNI y COD- ASIGNATURA: y cada uno de ellos es clave ajena, el primero de ALUMNOS y el segundo de ASIGNATURA. Hace ver aquí que la tabla MATRICULAS pueden tener más campos además de los que son clave ajena como ocurre en el ejemplo; la tabla añade además un campo NOTA. Modelo EE-R extendido (Extended / Enhanced) SUBCLASE: Grupo de elementos con algo en común, que pertenecen a una ENTIDAD. Ejemplo: Pertenecientes a EMPLEADO, tenemos las subclases INGENIERO, SECRETARIO, SUPERVISOR… SUPERCLASE: Entidad de la que procede una SUBCLASE. RELACION Clase / Subclase (o Superclases/subclases): Es una relación 1:1 en la que ambos elementos son el mismo Se suele representar por ES_UN. Ejemplo: Ingeniero ES_UN Empleado. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE CARACTERISTICAS: - Una Entidad no puede ser solo miembro de una SUBCLASE. Debe ser también miembro de la SUPERCLASE. Una Entidad puede ser miembro de varias SUBCLASES. Ejemplo: Un empleado puede ser Ingeniero y Supervisor. Una Entidad se define por sus atributos y sus relaciones, los cuales son HEREDADOS por sus SUBCLASES. Atributos y relaciones LOCALES o ESPECÍFICAS: Son aquellas que son propias de una SUBCLASE (no de la SUPERCLASE a las que pertenece). ESPECIALIZACION / GENERALIZACION ESPECIALIZACION: Proceso para definir un conjunto de subclases de un tipo de Entidad (llamada SUPERCLASE) - - Pueden definirse varias subclases según distintos criterios. Ejemplo: Empleado Tipo de Trabajo: Ingeniero, Técnico… Tipo de Contrato: Fijo, Por Horas… Deben definirse los atributos y relaciones específicas (si existen). GENERALIZACION: Procesos inverso a la Especialización. Identificar las características comunes a varios tipos de Entidad y generalizar todas ellas en una SUPERCLASE, con los tipos de Entidad originales como SUBCLASES. Ejemplo: UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE CREACIÓN DE TABLAS Agregaremos una Tabla Alumno: Tabla ALUMMNO (DNI, Nombre, Apellido 1, Apellido 2, Teléfono, Calle, Ciudad, Provincia, Nacimiento, Estado Civil) Tabla Asignatura Y la entidad Asignatura definida como: Asignatura (Código, Nombre, Créditos, Dni_prof, Observaciones) Tabla Matricula Y sabiendo que un alumno se puede matricular de muchas asignaturas y que una asignaturas y que una asignatura a su vez puede tener muchos alumnos matriculados, podemos definir entre ambas entidades la relación (N: M) matricula como: MATRICULA (DNI, Codigo_asig, fecha, nota) CP: DNI, Codigo_asig, fecha UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE CREACIÓN DE RELACIONES Seleccionamos la opción Relaciones del menú Herramientas: Agregamos las tablas (Alumno, Asignatura y Matricula) Que son UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Y por último solo falta arrastrar los campos relacionados de la tabla con la relación 1 a la tabla con la relación muchos, es decir crear las relaciones, en las que seleccionaremos siempre: Exigir Integridad Referencial En el caso de Alumno – Matricula (1 Alumno. DNI se puede repetir n veces en Matricula. DNI) arrastramos el Alumno. DNI sobre la Matricula. DNI: Y si repetimos la misma operación entre Asignatura, Código y Matricula. Codigo_asig queda el esquema EE-R en Access según se muestra en la figura siguiente: UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE LA INSTRUCCIÓN DELETE La sentencia DELETE se utiliza para eliminar filas de una tabla. SQL DELETE Sintaxis Nota: Tenga en cuenta la cláusula WHERE de la sintaxis de DELETE. La cláusula WHERE específica del registro o registros que se deben eliminar. Si se omite la cláusula WHERE, todos los registros serán borrados. SQL DELETE Example The “Persons” table: Ahora queremos eliminar a la persona “Tjessem, Jakob” en el “personas” tabla. Nosotros utilizamos la siguiente instrucción: The “Persons” tabla ahora se vera asi: DELETE All Rows Es posible eliminar todas las filas de una tabla sin eliminar la tabla. Esto significa que la estructura de la tabla, los atributos, y los índices estará intacta: UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE LA INSTRUCCIÓN INSERT INTO La instrucción INSERT INTO se utiliza para insertar una nueva fila en una tabla. SQL INSERT INTO Sintaxis Es posible escribir la instrucción INSERT INTO en dos formas. La primera forma no especifica los nombres de las columnas donde los datos se insertaran, solo sus valores: La segunda forma específica tanto los nombres de las columnas y los valores que se insertan: SQL INSERT INTO Example Tenemos la siguiente tabla “The Persons” Ahora queremos insertar una nueva fila en la sección “persons” en la tabla. Nosotros utilizamos la siguiente instrucción: En “Persons” Ahora se verá así la tabla: UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE LA INSTRUCCIÓN UPDATE La instrucción UPDATE se utiliza para actualizar los registros existentes en una tabla. SQL UPDATE Sintaxis Nota: Tenga en cuenta la cláusula WHERE de la sintaxis UPDATE. La cláusula WHERE específica que registro o registros que deben ser actualizados. Si se omite la cláusula WHERE, todos los registros serán actualizados. SQL UPDATE Example “The Persons” table Ahora queremos poner al día la persona “tjessem, Jakob” en la tabla “persons”. Nosotros utilizamos la siguiente instrucción: La tabla “Persons” ahora se vera asi: SQL UPDATE Warning Tenga cuidados al actualizar los registros. Si se hubiera omitido la clausula WHERE en el ejemplo anterior, asi: UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE LA INSTRUCCIÓN SELECT Palabra clave que indica que la sentencia de SQL que queremos ejecutar es de selección. La sentencia SELECT nos permite consultar los datos almacenados en una tabla de la base de datos. El formato de la sentencia Select es: Una instrucción SELECT recupera cero o más filas de una o más tablas de base de datos o base de datos de puntos de vista. En la mayoría de las aplicaciones, SELECT es el más comúnmente usado lenguaje de manipulación de datos (DML) de comandos. Como SQL es una programación declarativa idioma, SELECT consultas especificar un conjunto de resultados, pero no especifica como calcularlo. La base de datos convierte la consulta en un “plan de consulta”. Que puede variar entre las ejecuciones, las versiones de base de datos y software de base de datos. Esta funcionalidad se denomina el “optimizador de consultas”, ya que es responsable de encontrar el plan de ejecución lo mejor posible para la consulta, dentro de los limites aplicables. La sentencia SELECT tiene muchas clausulas opcionales WHERE especifica que las filas a recuperar. GROUP BY filas grupos que comparten una característica de modo que una función de agregado puede ser aplicado a cada grupo. HAVING selecciona entre los grupos definidos por la cláusula GROUP BY ORDER BY se especifica el orden en que para devolver las filas. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE MODELO RELACIONAL El modelo relacional para la gestión de una base de datos es un modelo de datos basado en la lógica de predicados y en la teoría de conjuntos. Es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de «relaciones». Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados «tuplas». Pese a que ésta es la teoría de las bases de datos relacionales creadas por Edgar Frank Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar, esto es, pensando en cada relación como si fuese una tabla que está compuesta por registros (cada fila de la tabla sería un registro o tupla), y columnas (también llamadas campos). En este modelo todos los datos son almacenados en relaciones, y como cada relación es un conjunto de datos, el orden en el que éstos se almacenen no tiene relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar por un usuario no experto. La información puede ser recuperada o almacenada por medio de consultas que ofrecen una amplia flexibilidad y poder para administrar la información. Este modelo considera la base de datos como una colección de relaciones. De manera simple, una relación representa una tabla que no es más que un conjunto de filas, cada fila es un conjunto de campos y cada campo representa un valor que interpretado describe el mundo real. Cada fila también se puede denominar tupla o registro y a cada columna también se le puede llamar campo o atributo. Para manipular la información utilizamos un lenguaje relacional, actualmente se cuenta con dos lenguajes formales el Álgebra relacional y el Cálculo relacional. El Álgebra relacional permite describir la forma de realizar una consulta, en cambio, el Cálculo relacional sólo indica lo que se desea devolver. Esquema Un esquema es la definición de una estructura (generalmente relaciones o tablas de una base de datos), es decir, determina la identidad de la relación y que tipo de información podrá ser almacenada dentro de ella; en otras palabras, el esquema son los metadatos de la relación. Todo esquema constará de: Nombre de la relación (su identificador). Nombre de los atributos (o campos) de la relación y sus dominios; el dominio de un atributo o campo define los valores permitidos para el mismo, es equivalente al tipo de dato por ejemplo character, integer, date, string, etc. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Tablas El modelo relacional proporciona una manera simple de representar los datos: una tabla bidimensional llamada relación. Relación Películas La relación Películas tiene la intención de manejar la información de las instancias en la entidad Películas, cada renglón corresponde a una entidad película y cada columna corresponde a uno de los atributos de la entidad. Sin embargo las relaciones pueden representar más que entidades, como se explicará más adelante. Atributos Los atributos son las columnas de una relación y describen características particulares de ella. Esquemas Es el nombre que se le da a una relación y el conjunto de atributos en ella. Películas (título, año, duración, tipo) En un modelo relación, un diseño consiste de uno o más esquemas, a este conjunto se le conoce como "esquema relacional de base de datos" (relational database schema) o simplemente "esquema de base de datos" (database schema). Tuplas Cada uno de los renglones en una relación conteniendo valores para cada uno de los atributos. (Star Wars, 1977, 124, color) Dominios Se debe considerar que cada atributo (columna) debe ser atómico, es decir, que no sea divisible, no se puede pensar en un atributo como un "registro" o "estructura" de datos. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Representaciones equivalentes de una relación Las relaciones son un conjunto de tuplas, no una lista de tuplas. El orden en que aparecen las tuplas es irrelevante. Así mismo el orden de los atributos tampoco es relevante Otra representación de la relación Películas Conversión del modelo E-R a un esquema de base de datos (Conversión a tablas) El modelo es una representación visual que gráficamente nos da una perspectiva de cómo se encuentran los datos involucrados en un proyecto u organización. Pero el modelo no nos presenta propiamente una instancia de los datos, un ejemplo que muestre con claridad algunas datos de muestra y como se relacionan en realidad. Por eso es conveniente crear un "esquema", el cual consiste de tablas las cuales en sus renglones (tuplas) contienen instancias de los datos. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE El diagrama anterior se convertiría al siguiente esquema: Débil A B1 B2 B3 AB1 dónde: LLP_X es la llave primaria de la entidad X (un subconjunto de atribs_X). UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Ejemplo: Para el ejemplo de la figura tendríamos el esquema: Escuela Departamento Curso Profesor Estudiante Profesor_curso Estudiante_curso UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Normalización El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional. Las bases de datos relacionales se normalizan para: Evitar la redundancia de los datos. Evitar problemas de actualización de los datos en las tablas. Proteger la integridad de los datos. En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla sea considerada como una relación tiene que cumplir con algunas restricciones: Cada tabla debe tener su nombre único. No puede haber dos filas iguales. No se permiten los duplicados. Todos los datos en una columna deben ser del mismo tipo. Terminología relacional equivalente Relación = tabla o archivo Registro = registro, fila , renglón o tupla Atributo = columna o campo Clave = llave o código de identificación Clave Candidata = superclave mínima Clave Primaria = clave candidata elegida Clave Ajena (o foránea) = clave externa o clave foránea Clave Alternativa = clave secundaria Dependencia Multivaluada = dependencia multivalor RDBMS = Del inglés Relational Data Base Manager System que significa, Sistema Gestor de Bases de Datos Relacionales. 1FN = Significa, Primera Forma Normal o 1NF del inglés First Normal Form UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Dependencia Una dependencia funcional es una conexión entre uno o más atributos. Por ejemplo si se conoce el valor de FechaDeNacimiento podemos conocer el valor de Edad. Las dependencias funcionales del sistema se escriben utilizando una flecha, de la siguiente manera: FechaDeNacimiento EdadDe la normalización (lógica) a la implementación (física o real) puede ser sugerible tener éstas dependencias funcionales para lograr la eficiencia en las tablas. Propiedades de la Dependencia funcional Existen 3 axiomas de Armstrong: Dependencia funcional Reflexiva Si "x" está incluido en "x" entonces x x A partir de cualquier atributo o conjunto de atributos siempre puede deducirse él mismo. Si la dirección o el nombre de una persona están incluidos en el DNI, entonces con el DNI podemos determinar la dirección o su nombre. Dependencia funcional Aumentativa entonces DNI nombre DNI,dirección nombre,dirección Si con el DNI se determina el nombre de una persona, entonces con el DNI más la dirección también se determina el nombre y su dirección. Dependencia funcional transitiva Dependencia funcional transitiva. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Sean X, Y, Z tres atributos (o grupos de atributos) de la misma entidad. Si Y depende funcionalmente de X y Z de Y, pero X no depende funcionalmente de Y, se dice entonces que Z depende transitivamente de X. Simbólicamente sería: X Y Z entonces X FechaDeNacimiento Edad Z Edad Conducir FechaDeNacimiento Edad Conducir Entonces tenemos que FechaDeNacimiento determina a Edad y la Edad determina a Conducir, indirectamente podemos saber a través de FechaDeNacimiento a Conducir (En muchos países, una persona necesita ser mayor de cierta edad para poder conducir un automóvil, por eso se utiliza este ejemplo). Propiedades deducidas Unión y entonces Pseudo-transitiva y entonces Descomposición y está incluido en entonces Claves Una clave primaria es aquella columna (o conjunto de columnas) que identifica únicamente a una fila. La clave primaria es un identificador que va a ser siempre único para cada fila. Se acostumbra a poner la clave primaria como la primera columna de la tabla pero es más una conveniencia que una obligación. Muchas veces la clave primaria es numérica auto-incrementada, es decir, generada mediante una secuencia numérica incrementada automáticamente cada vez que se inserta una fila. En una tabla puede que tengamos más de una columna que puede ser clave primaria por sí misma. En ese caso se puede escoger una para ser la clave primaria y las demás claves serán claves candidatas. Una clave ajena (foreign key o clave foránea) es aquella columna que existiendo como dependiente en una tabla, es a su vez clave primaria en otra tabla. Una clave alternativa es aquella clave candidata que no ha sido seleccionada como clave primaria, pero que también puede identificar de forma única a una fila dentro de una tabla. Ejemplo: Si en una tabla clientes definimos el número de documento UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE (id_cliente) como clave primaria, el número de seguro social de ese cliente podría ser una clave alternativa. En este caso no se usó como clave primaria porque es posible que no se conozca ese dato en todos los clientes. Una clave compuesta es una clave que está compuesta por más de una columna. La visualización de todas las posibles claves candidatas en una tabla ayudan a su optimización. Por ejemplo, en una tabla PERSONA podemos identificar como claves su DNI, o el conjunto de su nombre, apellidos, fecha de nacimiento y dirección. Podemos usar cualquiera de las dos opciones o incluso todas a la vez como clave primaria, pero es mejor en la mayoría de sistemas la elección del menor número de columnas como clave primaria. Formas Normales Las formas normales son aplicadas a las tablas de una base de datos. Decir que una base de datos está en la forma normal N es decir que todas sus tablas están en la forma normal N. Diagrama de inclusión de todas las formas normales. En general, las primeras tres formas normales son suficientes para cubrir las necesidades de la mayoría de las bases de datos. El creador de estas 3 primeras formas normales (o reglas) fue Edgar F. Codd.1 Primera Forma Normal (1FN) Una tabla está en Primera Forma Normal si: Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son indivisibles, mínimos. La tabla contiene una llave primaria única. La llave primaria no contiene atributos nulos. No debe existir variación en el número de columnas. Los Campos no llave deben identificarse por la llave (Dependencia Funcional) Debe Existir una independencia del orden tanto de las filas como de las columnas, es decir, si los datos cambian de orden no deben cambiar sus significados Una tabla no puede tener múltiples valores en cada columna. Los datos son atómicos. (Si a cada valor de X le pertenece un valor de Y y viceversa) Esta forma normal elimina los valores repetidos dentro de una BD UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Segunda Forma Normal (2FN) Dependencia Funcional. Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna clave dependen de forma completa de la clave principal. Es decir que no existen dependencias parciales. (Todos los atributos que no son clave principal deben depender únicamente de la clave principal). En otras palabras podríamos decir que la segunda forma normal está basada en el concepto de dependencia completamente funcional. Una dependencia funcional es completamente funcional si al eliminar los atributos A de X significa que la dependencia no es mantenida, esto es que . Una dependencia funcional es una dependencia parcial si hay algunos atributos que pueden ser eliminados de X y la dependencia todavía se mantiene, esto es . Por ejemplo {DNI, ID_PROYECTO} HORAS_TRABAJO (con el DNI de un empleado y el ID de un proyecto sabemos cuántas horas de trabajo por semana trabaja un empleado en dicho proyecto) es completamente dependiente dado que ni DNI HORAS_TRABAJO ni ID_PROYECTO HORAS_TRABAJO mantienen la dependencia. Sin embargo {DNI, ID_PROYECTO} NOMBRE_EMPLEADO es parcialmente dependiente dado que DNI NOMBRE_EMPLEADO mantiene la dependencia. Tercera Forma Normal (3FN) La tabla se encuentra en 3FN si es 2FN y si no existe ninguna dependencia funcional transitiva entre los atributos que no son clave. Un ejemplo de este concepto sería que, una dependencia funcional X->Y en un esquema de relación R es una dependencia transitiva si hay un conjunto de atributos Z que no es un subconjunto de alguna clave de R, donde se mantiene X->Z y Z->Y. Por ejemplo, la dependencia SSN->DMGRSSN es una dependencia transitiva en EMP_DEPT de la siguiente figura. Decimos que la dependencia de DMGRSSN el atributo clave SSN es transitiva vía DNUMBER porque las dependencias SSN→DNUMBER y DNUMBER→DMGRSSN son mantenidas, y DNUMBER no es un subconjunto de la clave de EMP_DEPT. Intuitivamente, podemos ver que la dependencia de DMGRSSN sobre DNUMBER es indeseable en EMP_DEPT dado que DNUMBER no es una clave de EMP_DEPT. Formalmente, un esquema de relación para toda dependencia funcional condiciones: está en 3 Forma Normal Elmasri-Navathe. Si , se cumple al menos una de las siguientes es superllave o clave. es atributo primo de ; esto es, si es miembro de alguna clave en UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE . Además el esquema debe cumplir necesariamente, con las condiciones de segunda forma normal. Forma normal de Boyce-Codd (FNBC) La tabla se encuentra en FNBC si cada determinante, atributo que determina completamente a otro, es clave candidata. Deberá registrarse de forma anillada ante la presencia de un intervalo seguido de una formalización perpetua, es decir las variantes creadas, en una tabla no se llegaran a mostrar, si las ya planificadas, dejan de existir. Formalmente, un esquema de relación dependencia funcional válida en está en FNBC, si y sólo si, para toda , se cumple que Es superllave o clave. De esta forma, todo esquema que cumple FNBC, está además en 3FN; sin embargo, no todo esquema que cumple con 3FN, está en FNBC. Cuarta Forma Normal (4FN) Una tabla se encuentra en 4FN si, y sólo si, para cada una de sus dependencias múltiples no funcionales X->->Y, siendo X una super-clave que, X es o una clave candidata o un conjunto de claves primarias. Quinta Forma Normal (5FN) Una tabla se encuentra en 5FN si: La tabla está en 4FN No existen relaciones de dependencias no triviales que no siguen los criterios de las claves. Una tabla que se encuentra en la 4FN se dice que está en la 5FN si, y sólo si, cada relación de dependencia se encuentra definida por las claves candidatas. Reglas de Codd Codd se percató de que existían bases de datos en el mercado las cuales decían ser relacionales, pero lo único que hacían era guardar la información en las tablas, sin estar estas tablas literalmente normalizadas; entonces éste publicó 12 reglas que un verdadero sistema relacional debería tener, en la práctica algunas de ellas son difíciles de realizar. Un sistema podrá considerarse "más relacional" cuanto más siga estas reglas. Regla No. 1 - La Regla de la información Toda la información en un RDBMS 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 UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE que contienen tal información constituyen el Diccionario de Datos. Esto significa que todo tiene que estar almacenado en las tablas. Toda la información en una base de datos relacional se representa explícitamente en el nivel lógico exactamente de una manera: con valores en tablas. Por tanto los metadatos (diccionario, catálogo) se representan exactamente igual que los datos de usuario. Y puede usarse el mismo lenguaje (ej. SQL) para acceder a los datos y a los metadatos (regla 4) Regla No. 2 - La regla del acceso garantizado Cada ítem 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 Un RDBMS (Sistema Gestor de Bases de Datos Relacionales) debe ser capaz de soportar el uso de valores nulos en el lugar de columnas cuyos valores sean desconocidos. 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 (o similar). 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. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE La mayoría de las 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 sólo 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 para leer, escribir, eliminar y agregar registros (SELECT, UPDATE, DELETE e INSERT en SQL) deben estar disponibles y operables, independientemente del tipo de relaciones y restricciones que haya entre las tablas o no. 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 la 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 inalterados 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 1. Ningún componente de una clave primaria puede tener valores en blanco o nulos (ésta 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 aseguran que haya integridad referencial. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE 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 (como SQL). Algunos productos solamente construyen una interfaz relacional para sus bases de datos No relacionales, lo que hace posible la subversión (violación) de las restricciones de integridad. Esto no debe ser permitido. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE SISTEMA DE GESTIÓN DE BASES DE DATOS Los sistemas de gestión de bases de datos (en inglés database management system, abreviado DBMS) son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. El propósito general de los sistemas de gestión de bases de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante para una organización. Existen distintos objetivos que deben cumplir los SGBD: Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción. Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella. Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea. Por otra parte, la base de datos representa una realidad determinada que tiene determinadas condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El sistema no debería aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan la programación de este tipo de condiciones. Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra segura de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos. Manejo de transacciones. Una transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no se hubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una forma mucho más simple que si no se dispusiera de ellos. Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD demora en proporcionar la información solicitada y en almacenar los cambios realizados. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE DATA DEFINITION LANGUAGE Un lenguaje de definición de datos o lenguaje de descripción de datos (DDL) Es una sintaxis similar a un ordenador lenguaje de programación para la definición de estructuras de datos, especialmente los esquemas de base de datos. La definición de datos concepto del lenguaje y el nombre fue introducido por primera vez en relación con el CODASYL modelo de base de datos, donde se escribió el esquema de la base de datos en una sintaxis de lenguaje de descripción de datos. Más tarde se utiliza para referirse a un subconjunto de lenguaje de consulta estructurado (SQL) para la creación de tablas y restricciones. SQL-92 introdujo un lenguaje de manipulación de esquema y las tablas del esquema de la información a los esquemas de consulta. Estas mesas de información se especifica como SQL/ LOS ESQUEMAS en SQL: 2003. El DDL termino también se utiliza en un sentido genérico para referirse a cualquier lenguaje formal para describir datos o estructuras de información. A diferencia de muchos lenguajes de descripción de datos, SQL Server utiliza una colección de verbos en imperativo, cuyo efecto es modificar el esquema de la base de datos, añadiendo, cambiando o eliminando las definiciones de tablas u otros objetos. Estas declaraciones pueden ser libremente mezcladas con otras instrucciones SQL, por lo que el DDL no es realmente un lenguaje indistinto. CREATE Crear- Para hacer una nueva base de datos, tabla, índice o consulta almacenada. A CREATE declaración en SQL crea un objeto en su interior de un sistema de base de datos relacionales (RDBMS). Los tipos de objetos que se pueden crear depende del RDBMS está siendo utilizado, pero la mayoría de apoyar la creación de tablas, índices, usuarios, sinónimos y bases de datos. Algunos sistemas (como PostgreSQL) permiten CREATE, y otros comandos DDL, en el interior de una transacción y por lo tanto puede ser revertido. CREATE TABLE Tal vez la más común CREATE comandos es la CREATE TABLE orden. El uso típico es: CREATE [TEMPORARY] TABLE [table name] ( [column definitions] ) [table parameters] . Definiciones de columnas: Una lista por comas que consiste en cualquiera de los siguientes UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Definición de columna: [Nombre de columna] [tipo de datos] { NULL | NOT NULL } {} opciones de columna Clave primaria definición: PRIMARY KEY ([lista separada por comas columna]) Limitaciones: { CONSTRAINT } [definición de la restricción] RDBMS funcionalidad específica Por ejemplo el comando para crear una tabla denominada empleados con una muestra de algunas columnas serían los siguientes DROP Drop- para destruir una base de datos existente, tabla, índice o vista. A Drop declaración en SQL elimina un objeto de una base de datos relacional (RDBMS). Los tipos de objetos que pueden colocarse depende de la RDBMS está siendo utilizado, pera la mayoría de apoyar el lanzamiento de las tablas, los usuarios y base de datos. Algunos sistemas (como PostgreSQL) permiten DROP y otros comandos DDL que se produzcan en el interior de una transacción y por lo tanto se deshace. El uso típico es simplemente: DROP objecttype objectname . Por ejemplo, el comando para eliminar una tabla denominada empleados seria la siguiente: El DROP es distinta de la declaración de los DELETE Y TRUNCATE declaraciones, en cuanto a que no retire la propia tabla. Por ejemplo, un DELETE declaración podría eliminar algunos datos (o todo) de una mesa, dejando la propia tabla en la base de datos. ALTER Alter- Para modificar un objeto de base de datos existente. Un ALTER declaración en SQL cambia las propiedades de un objeto dentro de un sistemas de base de datos relacionales (RDBMS). Los tipos de objetos que pueden ser alteradas dependen de que RDBMS esté siendo utilizado. El uso típico es: ALTER objecttype objectname parameters . UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Por ejemplo, el comando para agregar (retire) una columna llamada burbujas de una tabla existente llamada fregadero serían los siguientes: Por último, otro tipo de sentencia DDL en SQL es utilizado para definir integridad referencial relaciones, normalmente implementado como clave principal y clave externa etiquetas en algunas columnas de las tablas. Estas dos afirmaciones pueden ser incluidas dentro de un CREATE TABLE O ALTER TABLE sentencia. Clasificación del lenguaje de manipulación de datos Son DML: Select, Insert, Delete y Update Se clasifican en dos grandes grupos: lenguajes de consulta procedimentales Lenguajes procedimentales. En este tipo de lenguaje el usuario da instrucciones al sistema para que realice una serie de procedimientos u operaciones en la base de datos para calcular un resultado final. lenguajes de consulta no procedimentales En los lenguajes no procedimentales el usuario describe la información deseada sin un procedimiento específico para obtener esa información. VISTAS Y CONSULTAS Una vista de base de datos es un resultado de una consulta SQL de una o varias tablas; también se le puede considerar una tabla virtual. Las vistas tienen la misma estructura que una tabla: filas y columnas. La única diferencia es que sólo se almacena de ellas la definición, no los datos. Los datos que se recuperan mediante una consulta a una vista se presentarán igual que los de una tabla. De hecho, si no se sabe que se está trabajando con una vista, nada hace suponer que es así. Al igual que sucede con una tabla, se pueden insertar, actualizar, borrar y seleccionar datos en una vista. Aunque siempre es posible seleccionar datos de una vista, en algunas condiciones existen restricciones para realizar el resto de las operaciones sobre vistas. Una vista se especifica a través de una expresión de consulta (una sentencia SELECT) que la calcula y que puede realizarse sobre una o más tablas. Sobre un conjunto de tablas relacionales se puede trabajar con un número cualquiera de vistas. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE La mayoría de los SGBD soportan la creación y manipulación de vistas. Puesto que las consultas y las vistas tienen tantas similitudes, resulta sencillo pasar por alto sus diferencias. Esta sección compara brevemente las consultas y las vistas. Almacenamiento Las vistas se almacenan como parte de un diseño de base de datos, pero no sucede lo mismo con las consultas. A medida que diseña una base de datos, puede incluir vistas en el diseño por los motivos siguientes: Algunos subconjuntos de datos resultan de interés para muchos usuarios. Como cada vista se almacena en la base de datos, estas vistas constituyen un subconjunto concreto de datos que puede utilizar cualquier usuario de la base de datos. Las vistas pueden ocultar las tablas base. Para impedir el acceso de todos los usuarios a las tablas de la base de datos, puede obligarles a que utilicen los datos únicamente a través de las vistas. Esta posibilidad puede proteger a los usuarios y a los programas de aplicaciones de determinadas modificaciones de base de datos. Por ejemplo, puede crear una vista llamada "Ventas del mes actual". El primer día de cada mes, puede modificar la definición de vista en consecuencia. Sin este tipo de vista, los usuarios tendrían que volver a escribir cada mes las consultas para seleccionar las filas de ventas del mes adecuado. Actualización de resultados Las restricciones de la actualización de conjuntos de resultados son diferentes para vistas y consultas. Para obtener más información, vea Reglas para actualizar resultados. Orden de resultados (Sólo Microsoft SQL Server) Puede ordenar cualquier resultado de consulta, pero sólo puede ordenar una vista si ésta incluye la cláusula TOP. Para obtener más información sobre la cláusula TOP, consulte la documentación de SQL Server. Para obtener más información sobre el orden de los resultados, vea Ordenar y agrupar los resultados de la consulta. Generación de un plan de consulta Un plan de consulta es una estrategia interna por la cual un servidor de base de datos intenta crear conjuntos de resultados rápidamente. Un servidor de base de datos puede establecer un plan de consulta para una vista en cuanto se guarda la vista. Sin embargo, para una consulta, un servidor de base de datos no puede establecer un plan de consulta hasta que se ejecuta realmente la consulta: es decir, hasta que el usuario solicita de forma explícita el conjunto de resultados. Parametrización Puede crear parámetros para una consulta, pero no para una vista. Para obtener más información sobre las consultas parametrizadas, vea Realizar consultas con parámetros. UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE BIBLIOGRAFIA http://html.rincondelvago.com/modelo-de-datos.html http://es.wikipedia.org/wiki/Base_de_datos http://es.wikipedia.org/wiki/Modelo_entidad-relaci%C3%B3n http://mirrors.sandino.net/pelogo/FundaBD/FundaBD_Silverschatz.pdf http://www.monografias.com/trabajos12/recoldat/recoldat.shtml http://www.cs.us.es/cursos/bd-2002/HTML/modeloER.htm http://es.wikipedia.org/wiki/Modelo_entidad-relaci%C3%B3n http://www.agustinosalicante.es/docs/bachiller/informatica/modeloeer.pdf http://members.fortunecity.com/lossocios1/base/extendido.htm http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r2227.PDF http://en.wikipedia.org/wiki/Select_(SQL) http://es.wikipedia.org/wiki/Modelo_relacional http://www.jorgesanchez.net/bd/bdrelacional.pdf http://ict.udlap.mx/people/carlos/is341/bases03.html http://www.uazuay.edu.ec/analisis/El%20modelo%20relacional.pdf http://en.wikipedia.org/wiki/Data_Definition_Language http://mysql.conclase.net/curso/index.php?cap=002 http://es.wikipedia.org/wiki/Lenguaje_de_Manipulaci%C3%B3n_de_Datos http://es.wikipedia.org/wiki/SQL http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r23108.PDF UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE