Agregar a favoritos Invitar a un amigo Regístrese | Iniciar sesión
· · · · ·
Ayuda
Português
Monografías Nuevas Publicar Blogs Foros
Busqueda avanzada
Monografias.com > Computacion > General · · · ·
Descargar
Imprimir Comentar Ver trabajos relacionados
1Base de datos Enviado por janhil_hyde Anuncios Google Windows 7 Soporte Técnico 5 Representantes Técnicos en línea. Pregunte y obtenga su respuesta ya! JustAnswer.es/Windows-7 Reseller Hosting Comienza tu empresa de Hosting con nuestros planes Reseller desde 1GB www.hostinguniversal.net "Master Recursos Humanos" "Doble Titulación Europea" Becas Ahora. On line o Presencial www.eude.es
Indice 1. Base de datos 2. DBMS 3. Multitarea 4. Multiusuario 5. Multiproceso 1. Base de datos Definir el término base de datos r Definición de Bases de Datos.- Un conjunto de información almacenada en memoria auxiliar que permite acceso directo y un conjunto de programas que manipulan esos datos Base de Datos es un conjunto exhaustivo no redundante de datos estructurados organizados independientemente de su utilización y su implementación en máquina accesibles en tiempo real y compatibles con usuarios concurrentes con necesidad de información diferente y no predicable en tiempo. Explicar Sus Orígenes Y Antecedentes Surgen desde mediados de los años sesenta la historia de las bases de datos, en 1970 Codd propuso el modelo relacional, este modelo es el que ha marcado la línea de investigación por muchos años, ahora se encuentran los modelos orientados a objetos. Describir las ventajas del uso de la base de datos en la organización Ventajas de las bases de datos.1 Independencia de datos y tratamiento. r Cambio en datos no implica cambio en programas y viceversa (Menor coste de mantenimiento). 2 Coherencia de resultados. r Reduce redundancia : r Acciones logicamente unicas. r Se evita inconsistencia. 3 Mejora en la disponibilidad de datos · No hay dueño de datos (No igual a ser publicos). · Ni aplicaciones ni usuarios. · Guardamos descripción (Idea de catalogos). 4 Cumplimiento de ciertas normas. r Restricciones de seguridad. r Accesos (Usuarios a datos). r Operaciones (Operaciones sobre datos). 5 Otras ventajas: · Más efiente gestión de almacenamiento.
Efecto sinergico. Describir La Artuitectura De Una Base De Datos Distintos Niveles de un SBD Los SBD pueden ser estudiados desde 3 niveles distintos: 1.- Nivel Físico. Es el nivel real de los datos almacenados. Es decir como se almacenan los datos, ya sea en registros, o como sea. Este nivel es usado por muy pocas personas que deben estar cualificadas para ello. Este nivel lleva asociada una representación de los datos, que es lo que denominamos Esquema Físico. 2.- Nivel Conceptual. Es el correspondiente a una visión de la base de datos desde el punto de visto del mundo real. Es decir tratamos con la entidad u objeto representado, sin importarnos como está representado o almacenado. Este nivel lleva asociado el Esquema Conceptual. 3.- Nivel Visión. Son partes del esquema conceptual. El nivel conceptual presenta toda la base de datos, mientras que los usuarios por lo general sólo tienen acceso a pequeñas parcelas de ésta. El nivel visión es el encargado de dividir estas parcelas. Un ejemplo sería el caso del empleado que no tiene porqué tener acceso al sueldo de sus compañeros o de sus superiores. El esquema asociado a éste nivel es el Esquema de Visión. Los 3 niveles vistos, componen lo que conocemos como arquitectura de base de datos a 3 niveles. A menudo el nivel físico no es facilitado por muchos DBMS, esto es, no permiten al usuario elegir como se almacenan sus datos y vienen con una forma estándar de almacenamiento y manipulación de los datos. La arquitectura a 3 niveles se puede representar como sigue: Subesquema de Visión, Subesquema de Visión, Subesquema de Visión, ... Esquema Conceptual Esquema Físico Citar Las Diferentes Estructuras De Bases De Datos Modelos de Datos Para representar el mundo real a través de esquemas conceptuales se han creado una serie de modelos: Mundo Real Esq’s Conceptuales Modelización Existen multitud de estos modelos que se conocen como Modelos de Datos, algunos de estos modelos son: · Modelo Relacional de Datos · Modelo de Red · Modelo Jerárquico 1.- Modelo Relacional de Datos. Representa al mundo real mediante tablas relacionadas entre sí por columnas comunes. Ex.: Num_empleadoNombreSección33Pepe2534Juan25Num_secciónNombre25Textil26Pintura2.- Modelo de Red. Representamos al mundo real como registros lógicos que representan a una entidad y que se relacionan entre sí por medio de flechas. Ex.: 33 Pepe 25 Textil 34 Juan
3.- Modelo Jerárquico. Tiene forma de árbol invertido. Un padre puede tener varios hijos pero cada hijo sólo puede tener un padre. Ex.: Empresa 25 Textil 26 Pintura 27 Construcción 33 Pepe 34 Juan 36 Perico Al llegar a este punto adoptaremos una convención con respecto a las restricciones que se pueden dar en un modelo, en cuanto a la capacidad de relacionarse que pueda tener cada entidad de ese modelo con el resto de entidades. Como se ha dicho el modelo jerárquico sólo admite relaciones 1 : 1 ó 1 : N. En caso de que tuviésemos la necesidad de otro tipo de asociaciones y queramos usar el esquema jerárquico, recurriríamos a una duplicación de la información en el esquema, pero sólo a nivel esquemático. Ex.: Tenemos dos entidades (cliente y cuenta), queremos que un cliente pueda poseer varias cuentas, y que una cuenta pueda tener como titulares a varios clientes. Usando el modelo jerárquico tendríamos que recurrir a una duplicación de los datos en el esquema. Cliente Cuenta Cuenta Cliente Como ya se ha dicho esta duplicación sólo ocurriría a nivel esquemático, pero a nivel físico existiría un único registro por cliente, y por cuenta que relacionaríamos mediante varios punteros con todo lo necesario. En el modelo de red no existen restricciones, si queremos representar que un cliente puede tener varias cuentas, cada una de las cuáles sólo puede tener un titular, y cada cuenta ésta en una sola sucursal, que por supuesto puede ser compartida por varias cuentas, éste sería el esquema: Cliente Cuenta Sucursal Con el modelo relacional podríamos tener ambas entidades definidas de la siguiente forma: Cliente = (Nº Cliente: Acceso Principal; Nombre, Dirección, Nº Cuenta: Acceso Ajeno) Cuenta = (Nº Cuenta: Acceso Principal; Saldo) Se podría hablar de otro modelo que está un nivel más arriba y que se denomina Modelo EntidadRelación (E/R). Este modelo sólo realiza el diseño, no realiza la implementación, por lo tanto una vez hecho el diseño se puede llevar al modelo relacional, de red o jerárquico. Define dos entidades y una forma de relación entre ellas. Ex.: Nombre Dcción Num_Cli Num_cuenta Saldo CLIENTE Cliente - CUENTA Cuenta Entidad Relación Entidad Clasificar Las Bases De Datos Por Su Uso Y Aplicación TIPOS DE MODELOS DE DATOS Existen fundamentalmente tres alternativas disponibles para diseñar las bases de datos: el modelo jerárquico, el modelo de red y el modelo relacional. MODELO JERARQUICO. Puede representar dos tipos de relaciones entre los datos: relaciones de uno a uno y relaciones de uno a muchos. MODELO DE RED. Este modelo permite la representación de muchos a muchos, de tal forma que cualquier registro dentro de la base de datos puede tener varias ocurrencias superiores a él. El modelo de red evita redundancia en la información, a través de la incorporación de un tipo de registro denominado el conector. MODELO RELACIONAL. Este modelo se está empleando con más frecuencia en la práctica, debido a
la ventajas que ofrece sobre los dos modelos anteriores, entre ellas, el rápido entendimiento por parte de ususarios que no tienen conocimientos profundos sobre Sistemas de Bases de Datos. BASES DE DATOS DISTRIBUIDAS. Las bases de datos distribuidas se están utilizando cada vez más en la misma medida en que se usan las arquitecturas de cliente-servidor y groupware. Los principales problemas que se generan por el uso de la tecnología de bases de datos distribuidas son en lo referente a duplicidad de datos y a su integridad al momento de realizar actualizaciones a los mismos. Además, el control de la información puede constituir una desventaja, debido a que se encuentra diseminada en diferentes localidades geográficas. TENDENCIAS FUTURAS. En el futuro la mayoría de las organizaciones cambiarán la forma convencional de manejo de la información a la arquitectura de base de datos a las ventajas derivadas de su uso. El uso de las bases de datos distribuidas se incrementará de manera considerable en la medida en que la tecnología de comunicación de datos brinde más facilidades para ello. El uso de bases de datos facilitará y soportará en gran medida a los Sistemas de Información para la Toma de Decisiones. 2. DBMS Definir Que Es Un "DBMS" El DBMS : es un conjunto de programas que se encargan de manejar la creación y todos los accesos a las bases de datos, esta compuesto por: DDL: Lenguaje de Definición de Datos DML:Lenguaje de Manipulación de Datos SQL: Lenguaje de Consulta. Ejemplificar Distintos "Dbms" Relacionales Existentes En El Mercado Actual Si se trata de una base de datos relacional (veremos a continuación qué significa esto), es probable que el lenguaje usado para recuperar las informaciones que se nos muestran sea SQL (Structured Query Language). los DBMS mas comunes son Oracle, SqlServer, Informix, Sysbase, Describir Las Caracteristicas De Al Menos 3 DBMS Bases de datos jerárquicos: los datos se organizan en grupos unidos entre ellos por relaciones de "posesión", en las que un conjunto de datos puede tener otros conjuntos de datos, pero un conjunto puede pertenecer sólo a otro conjunto. La estructura resultante es un árbol de conjuntos de datos. Bases de datos reticulares: el modelo reticular es muy parecido al jerárquico, y de hecho nace como una extensión de este último. También en este modelo conjuntos de datos están unidos por relaciones de posesión, pero cada conjunto de datos puede pertenecer a uno o más conjuntos. Bases de datos relacionales: las bases de datos que pertenecen a esta categoría se basan en el modelo relaciones, cuya estructura principal es la relación, es decir una tabla bidimensional compuesta por líneas y columnas. Cada línea, que en terminología relacional se llama tupla, representa una entidad que nosotros queremos memorizar en la base de datos. las características de cada entidad están definidas por las columnas de las relaciones, que se llaman atributos. Entidades con características comunes, es decir descritas por el mismo conjunto de atributos, formarán parte de la misma relación. Base de datos por objetos (object-oriented): el esquema de una base de datos por objetos está representado por un conjunto de clases que definen las características y el comportamiento de los objetos que poblarán la base de datos. La diferencia principal respecto a los modelos examinados hasta ahora es la no positividad de los datos. En efecto, con una base de datos tradicional (entendiendo con este término cualquier base de datos no por objetos), las operaciones que se tienen que efectuar en los datos se les piden a las aplicaciones que los usan. Con una base de datos object-oriented, al contrario, los objetos memorizados en la base de datos contienen tanto los datos como las operaciones posibles con tales datos. En cierto sentido, se podrá pensar en los objetos como en datos a los que se les ha puesto una inyección de inteligencia que les permite saber cómo comportarse, sin tener que apoyarse
en aplicaciones externas. Explicar la diferencia entre un dbms y una base de datos La base de datos es una colección de archivos interrelacionados almacenados en conjunto sin redundancia y la dbms es un conjunto de númerosas rutinas de software interrelacionadas cada una de ellas es responsable de una determinada tarea. Mencionar la importancia de una apropiada elección de dbms Se tiene que elegir el que tenga la mejor interfaz a las necesidades de la empresa y sobre todo que este apto para la base de datos que vayamos a utilizar. Citar los componentes de un sistema de base de datos Recursos que componen un sbd Un sbd estará formado por: · · · ·
Personas Máquinas Programas Datos
Describir las funciones de cada componente de un sistema de base de datos 1. Los datos. Es lo que se conoce como base de datos propiamente dicha. Para manejar estos datos utilizamos una serie de programas. 2.- Los Programas. Son los encargados de manejar los datos, son conocidos como DBMS (Data Base Management System) o también SGBD (Sistema Gestor de Base de Datos). Los DBMS tienen dos funciones principales que son: - La definición de las estructuras para almacenar los datos. - La manipulación de los datos. 1.- Describir los sistemas de procesamiento de archivos La información necesita ser guardada y manipulada para que sea útil y este es uno de los objetivos principales que han tenido la computadoras dentro de la empresa. A principios de su incorporación al ámbito empresarial, las computadoras trabajaban con lo que se conoce como "Sistema de procesamiento de Archivos" en los que se guardaban los datos para ser procesados por programas escritos especialmente para cada clase de archivos; esto degeneraba en un sistema monolítico y de difícil mantenimiento. Sistema de Procesamiento de Archivos: Tiene una serie de inconvenientes que son reducidos en los SGBD: Dificultad de Acceso a ciertos datos o información: Si no existen programas para acceder o calcular cierta información, no puede accederse a ella. Ej.: Calcular totales, o registros con cierta condición... Aislamiento de Datos: Los datos pueden estar en varios archivos con distintos formatos, que complican la creación de programas nuevos. Falta de Integridad: Es complicado mantener ciertas condiciones en la información. Ej.: Que el saldo sea superior a cierta cantidad, que un empleado no esté adscrito a un número de Departamento que no exista... Problemas de Atomicidad en las operaciones: A veces es esencial que para la consistencia de la BD se efectúen varias operaciones como si fueran una única operación, evitando que se produzcan fallos en medio de dicha operación. Ej.: En una transferencia bancaria hay que dar de quitar dinero de una cuenta y añadirlo a la otra. Problemas en el Acceso Concurrente: Si varios usuarios acceden a la vez a un dato pueden producirse errores. Ej.: Si se saca dinero de una misma cuenta desde dos sitios distintos. Problemas de Seguridad: Dificultad para controlar que ciertos usuarios no accedan a ciertos datos 2.- Explicar su evolución histórica Viendo la necesidad de mejorar este estándar se desarrollaron los "Sistemas gestores de Base de Datos Relacionales"(SGBDR) cuyas características hacen al sistema mucho mas eficiente que los sistemas de manejos de archivos. Algunas de las características son que existe solo una copia de los datos para que todos los programas trabajen con ella, esto es lo que se denomina obtención de redundancia mínima y de esta manera se podrá eliminar la inconsistencia de los datos. La capacidad de interactuar en un ambiente cliente/servidor donde los clientes o usuarios (ya sea de una intranet o desde Internet) pudiendo trabajar con un un conjunto único de datos alojados en un servidor y donde varios clientes podrían estar trabajando al mismo tiempo.
Estas son solo algunas de las características que tiene el modelo de base de datos relacional y en Linux exiten diversos motores de base de datos que permiten trabajar ya sea con base de datos existentes o creando nuevas con todas las capacidades de trabajo en red de este sistema operativo. Numerosas empresas se han volcado al desarrollo de SGBDR's como Oracle e Informix pero la mas conocida por su carácter gratuito para el uso personal y la inclusión en numerosas distribuciones es el PostgreSQL. En un principio adoptado para el sistema UNIX, fue portado a Linux y modificado para utilizar el lenguaje de consultas SQL, donde se llamo Posgres95. Mejorado en el 96 tomo su nuevo PostgeSQL y adopto las nuevas carácter del SQL - 92. Actualmente posee ciertas limitaciones técnicas como el no permitir consultas paralelas, es decir que no pueden dos usuarios consultar una misma tabla al mismo tiempo, lo que impide su adopción en un ambiente de trabajo de grandes dimensiones. Pero el uso del lenguaje de consulta SQL lo hace especial para ambientes de trabajo que cuente con múltiples plataformas y también así para su utilización para ser consultado directamente desde internet a trabes de una pagina Web. PostgreSQL requiere de cierto conocimiento del lenguaje SQL por lo que es recomendable el estudio de bibliografía que trate este tema antes de trabajar en el diseño de una base de datos con el. No estaría bien terminar sin nombrar otros sistemas de base de datos como el Sybase SQL Anywhere Studio de la empresa Sybase cuya versión beta se encuentra disponible en el web site de la compañía www.sybase.com/products/anywhere/linuxbeta. Otro conocido en el campo de las bases de datos es Oracle y el portar Oracle 8 a Linux fue un gran avancé que da solides a este sistema operativo para su adopción en las grandes y medianas empresas. 3.- Describir los sistemas de procesamiento en línea y por lotes Un sistema de procesamiento por lotes (batch) ejecuta trabajos (jobs) En un sistema de procesamiento por lotes, organizar la memoria en particiones fijas es simple y efectivo: cada trabajo se carga en la memoria cuando le toque su turno, y se queda en memoria hasta que termine. Si hay suficientes particiones para mantener a la CPU siempre ocupada, no habría razones para usar nada diferente. Procesamiento en linea: A diferencia del procesamiento por lotes o batch, el procesamiento en línea implica que los programas se ejecuten de tal forma que los datos se actualicen de inmediato en los archivos de la computadora. A este tipo de procesamiento se le conoce también como tiempo real. Las aplicaciones de tiempo real son indispensables en aquellos casos en que los datos contenidos en los archivos se modifican varias veces en el transcurso de un día y se consultan en forma casi inmediata con las modificaciones que se efectuaron. Un ejemplo de lo anterior es un sistema de reservaciones en alguna línea aérea. 4.- Explicar los lenguajes de 3era y 4ª generación Los lenguajes de tercera generación (3GL; third-generation languages) son los lenguajes propiamente como los conocemos (poseen instrucciones, funciones, sintaxis, semántica); ya trascienden el uso de los términos nemotécnicos. Una instrucción puede indicar 1 o más tareas para el computador. Pueden dividirse como sigue: Orientados a problemas A procedimientos A objetos 4GL (Generadores de aplicaciones que no dependen de una metodología). · Son de alto nivel y amigables; los programadores profesionales que utilizan 4GL sostienen que experimentan incrementos en la productividad de 200 a 1,000% en comparación con los lenguajes orientados al procedimiento de la tercera generación (COBOL, FORTRAN, BASIC y demás ). Hay dos tipos de 4GL:
Orientados a la produccion Al usuario 5.- Ejemplificar las aplicaciones de los 3GL y los 4GL · Lenguajes orientados al procedimiento.- Los lenguajes orientados al procedimiento requieren que los programadores resuelvan problemas de programación utilizando la lógica de programación tradicional; esto es, los programadores codifican o escriben las instrucciones en la secuencia en que deben ejecutar para solucionar el problema. Se dividen en: · Lenguajes empresariales. Los 3GL orientados a las empresas se diseñan para ser instrumentos efectivos para desarrollar sistemas de información empresarial. La fuerza de la 3GL empresariales consiste en su capacidad de almacenar, recuperar y manejar datos alfanuméricos. · COBOL, el primer lenguaje de programación empresarial, se introdujo en 1959. Este lenguaje sigue siendo el mas popular. La intención original del os 0creadores del COBOL (Common Bussines Oriented Language; lenguajes común orientado a la empresa) era hacer que sus instrucciones se aproximan al inglés. · Lenguaje científicos. Estos lenguajes del tipo de una formula algebraica están diseñado en particular para satisfacer las necesidades de procedimientos repetitivo, la expresión y la solución de ecuaciones matemáticas y demás operaciones pertinentes. · FORTRAN. (Formula Translator), el primer lenguaje orientado a procedimientos, se desarrollo en 1955. Fue y sigue siendo el lenguaje científico más popula. · APL. (A Programming Language un lenguaje de programación), introducido en 1968, es un lenguaje de programación interactivo que es común entre los ingenieros, matemáticos y científicos. Un tablero especial con símbolos "taquigráficos" ayuda a la rapidez del proceso de cifrado. · Lenguajes de la cuarta generación orientados a la producción. Los lenguajes de la cuarta generación orientados a la producción están diseñados sobre todo para profesionales en la computación, quienes usan 4GL como el Ideal de ADR, el Natural 2 de Software AG y el Mantis de Cincom. · Otros lenguajes orientados al procedimiento. El análisis anterior de los lenguajes al procedimiento no pretende ser exhaustivo. Entre estos se incluyen los siguientes: · LISP ( List Processing [procesamiento de listas], 1959). Un lenguaje de procesamiento de listas eficiente para el manejo de datos no numéricos, tales como símbolos y texto (se utiliza en el desarrollo de la inteligencia artificial y los compiladores). · LOGO (1967). Hace uso de una "tortuga" para enseñar a los niños geometría, matemáticas y programación. · FORTH (1971). Se utiliza para aplicaciones de control de dispositivos, juegos de video y robótica. · Prolog (Programming in Logic [programación en lógica], 1972. Es capaz de manejar relaciones entre hechos ( se utiliza en el desarrollo de sistemas expertos). · Modula-2 (1981). Permite combinar módulos independientes en un programa. Lenguajes de la cuarta generación orientados al usuario. Los usuarios escriben programas para consultar (extraer información ) de una base de datos y para crear sistemas de información personales o departamentales. Los lenguajes de la cuarta generación orientados al usuario incluyen el RAMIS II de Mathematica Products Group y el FOCUS de Information Builders. 6.- Explicar la diferencia entre procesamiento de archivos y procesamiento de Base de Datos
La diferencia principal entre un sistemas de procesamiento de archivos y un DBMS radica en la manera de almacenar, recuperar y actualizar los datos; lo anterior se debe a que con los sistemas de procesamiento de archivos, como su nombre lo indica, los datos se guardan en diversos archivos y muchas veces dichos archivos son de diferente formato, ocasionando problemas como la redundancia que trae consigo almacenamiento y dificulta el acceso a los datos. Dicha redundancia también implica inconsistencias en lo que se tiene almacenado . 7.- Describir las ventajas de procesamiento de base de datos 1.- Independencia de datos y tratamiento. Cambio en datos no implica cambio en programas y viceversa (Menor coste de mantenimiento). 2.- Coherencia de resultados. Reduce redundancia : Acciones logicamente unicas. Se evita inconsistencia. 3.- Mejora en la disponibilidad de datos No hay dueño de datos (No igual a ser publicos). Ni aplicaciones ni usuarios. Guardamos descripción (Idea de catalogos). 4.- Cumplimiento de ciertas normas. Restricciones de seguridad. Accesos (Usuarios a datos). Operaciones (Operaciones sobre datos). 5.- Otras ventajas : Más efiente gestión de almacenamiento. Efecto sinergico 8.- Describir los 4GL’s para manejo de base de datos · · · · · · · ·
Debe tener integrado un manejador de base de datos Debe contar con un reporteador basado en objetos Debe haber independencia total entre los datos y las aplicaciones Debe contar con un diccionario o repositorio de datos Debe proporcionar apoyo para un esquema de seguridad por usuarios Debe contar con un lenguaje de rastreo basado en ejemplos (Query By Example) Debe hacer hincapié en el modelo de datos y no en la programación del código Debe poseer herramientas para la fácil documentación de análisis, diseño, y modelo de datos.
Ejemplos: Informix, Progress, Sisinf. Desventajas: Requieren conocimientos especializados y su operación requiere personal calificado (lo cual es caro). Su precio como producto también es caro. 9.- Citar las diferentes estructuras de base de datos Objeto binario grande Estructuras de base de datos en las que estan almacenados los documentos reales, como un disco duro de gran capacidad al que puede tener acceso el Agente de oficina postal (POA). En un mismo objeto binario grande se almacenan el documento, sus versiones y los objetos relacionados. Los objetos binarios grandes estan comprimidos y encriptados. Las Base de Datos son clasificadas como sigue: 1. PLEX STRUCTURE: La base de datos tiene al menos un encadenamiento muchos a muchos ("MANY-TO-MANY link").
2. TREE OR NETWORK: La base de datos no tiene ningún encadenamiento muchos a muchos ("ONE-TO-MANY link"). En este caso, los encadenamientos de uno a muchos ("ONE-TO-MANY links") están dirigidos para que las flechas sencillas apunten hacia arriba y las dobles hacia abajo. Como resultado de esto, el diagrama esta orientado y se pueden definir varios niveles. Cada encadenamiento ("link") se une del nivel superior ("the parent") al sub nivel ("the child"). 2.1 TREE STRUCTURE: Por definición, en la estructura de árbol ("tree structure"), cada hijo ("child") tiene un solo padre ("parent"). 2.2 NETWORK STRUCTURE: Por definición, en la estructura de red ("network structure"), cada hijo ("child") puede tener varios padres ("parents"). 10.- Clasificar a las base de datos por su uso y aplicación 1. Bases de datos referenciales: son aquellas que ofrecen registros que su vez son representaciones de documentos primarios. Dentro de éstas distinguen, as su vez, entre: 1.1. bibliográficas: aquellas cuyo contenido son registros de tipo bibliográfico. 1.2. directorios: aquellas cuyo contenido está referido a la descripción de otros recursos de información, como por ejemplo un directorio de bases de datos. 2. Bases de datos fuente: serían aquellas bases de datos que ofrecen el documento completo, no una representación del mismo. También distinguen entre: 2.1. numéricas: contienen información de tipo numérico, como un censo o indicadores cuantitativos. 2.2. textuales: ofrecen el texto completo de un documento. 2.3. mixtas: combinan ambos tipos de información, como por ejemplo informes económicos de empresas, datos geoeconómicos, etc. 11.- Describir las base de datos orientadas a objetos · La Orientación a Objetos puede describirse como el conjunto de disciplinas (ingeniería) que desarrollan y modelizan software que facilita la construcción de sistemas complejos a partir de componentes, llamados objetos. · En la programación orientada a objetos todo se organiza en torno a los objetos. · Un objeto tiene un nombre y posee datos y procedimientos. En cierto sentido, un objeto es un programa virtual. Dado ciertos datos de entrada, el objeto aplica los procedimientos sobre dichos datos y genera una salida. 12.- Identificar cual sería el futuro de las base de datos Dentro del panorama futuro de las bases de datos múltiples hay un aspecto importante que considerar, el inusitado éxito del World Wide Web (WWW o, de forma abreviada, "el web") como medio de publicación de documentos y como medio de intercambio de información. El WWW proporciona uno de los medios más heterogéneos y retadores en el campo de la interoperabilidad. Recientemente han surgido tecnologías y estándares enfocados a hacer del web una infraestructura escalable y manejable. Una de dichas tecnologías es XML [4] (eXtensible Markup Language), sobre la cual la comunidad científica tiene muchas expectativas. Una de ellas es que XML convierta a Internet en un sistema de bases de datos, haciendo posible especificar consultas en el estilo de los manejadores de bases de datos tradicionales lo cual da muchos mejores resultados que las actuales máquinas de búsqueda. Sin embargo, XML en sí no posee mucha de la funcionalidad de sistemas de bases de datos múltiples como las indicadas en Donají. El reto es integrar esa funcionalidad en XML y aprovechar al máximo la información estratégica que podamos encontrar en el web. 3. Multitarea La ejecución de más de un programa a la vez en una computadora. Los sistemas operativos multitarea
(Windows, OS/2, Unix y otros) permiten que múltiples operaciones se ejecuten simultáneamente. Sus mayores beneficios se obtienen cuando se realizan tareas largas y complejas (como consultar una base de datos). La cantidad de programas que pueden ejecutarse depende de la memoria disponible, de la velocidad de la CPU y de la eficiencia del sistema operativo. 4. Multiusuario Un SO multiusuario permite a mas de un solo usuario accesar una computadora. Claro que, para llevarse esto a cabo, el SO también debe ser capaz de efectuar multitareas. Unix es el Sistema Operativo Multiusuario más utilizado. Debido a que Unix fue originalmente diseñado para correr en una minicomputadora, era multiusuario y multitarea desde su concepción. Actualmente se producen versiones de Unix para PC tales como The Santa Cruz Corporation Microport, Esix, IBM,y Sunsoft. Apple también produce una versión de Unix para la Machintosh llamada: A/UX.Unix , Unix proporciona tres maneras de permitir a múltiples personas utilizar la misma PC al mismo tiempo. 1.Mediante Módems 2.Mediante conexión de terminales a través de puertos seriales 3.Mediante Redes 5. Multiproceso Las computadoras que tienen mas de un CPU son llamadas multiproceso. Un sistema operativo multiproceso coordina las operaciones de la computadoras multiprocesadoras. Ya que cada CPU en una computadora de multiproceso puede estar ejecutando una instrucción, el otro procesador queda liberado para procesar otras instrucciones simultáneamente. Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las computadoras que tienen capacidad de multiproceso ofrecen una gran ventaja. Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como: Multiproceso asimétrico: Una CPU principal retiene el control global de la computadora, así como el de los otros procesadores. Esto fue un primer paso hacia el multiproceso pero no fue la dirección ideal a seguir ya que la CPU principal podía convertirse en un cuello de botella. Multiproceso simétrico: En un sistema multiproceso simétrico, no existe una CPU controladora única. La barrera a vencer al implementar el multiproceso simétrico es que los SO tienen que ser rediseñados o diseñados desde el principio para trabajar en u n ambiente multiproceso. Las extensiones de Unix, que soportan multiproceso asimétrico ya están disponibles y las extensiones simétricas se están haciendo disponibles. Windows NT de Microsoft soporta multiproceso simétrico. Lenguajes que tienen estas características C, SQL, El UNIX y sus clones permiten múltiples tareas y múltiples usuarios. Su sistema de archivos proporciona un método sencillo de organizar archivos y permite la protección de archivos. Sin embargo, las instrucciones del UNIX no son intuitivas. Otros sistemas operativos multiusuario y multitarea son OS/2, desarrollado inicialmente por Microsoft Corporation e International Business Machines (IBM) y Windows, desarrollado por Microsoft. El sistema operativo multitarea de las computadoras Apple se denomina Macintosh OS. 6. Bibliografía http://www.ur.mx/ur/faciya/carreras/cursos/sis/mod-dat1/graph.HTM www.yudy.8m.com/Sistemasmanejador.htm berzal.freeservers.com/freeware/dbms/spanish.html http://www.lafacu.com/apuntes/informatica/base_datos/default.htm#Introducción http://www.dbinternet.com.ar/metodo.htm http://www.uas.mx/cursoswebct/Progsist/material.htm http://www.programacionfacil.com/basic/cuatro4.htm
http://www.yudy.8m.com/Sistemasmanejador.htm http://elizabethpeguero.8m.com/Eliza.htm http://arraquis.dif.um.es/~rafa/bd1.htm Stallings,William SISTEMAS OPERATIVOS. Prentice Hall, 2da edición Piattini Mario, Adoración de Miguel, Marcos Esperanza. DISEÑO DE BASES DE DATOS RELACIONALES. Ed. Alfaomega
Autor: Janhil Aurora Trejo Martinez Edad: 18 años Universidad Autoónoma de Nuevo León; Facultad de Contaduría Pública y Administración.
1.1Comentarios El comentario ha sido publicado. Para dejar un comentario, regístrese gratis o si ya está registrado, inicie sesión. Los comentarios están sujetos a los Términos y Condiciones
1.2Trabajos relacionados · Actividades en la planeación de sistemas de información. · Hallazgos de los hechos. Herramientas para documentar procesos y decisiones. Árboles de decisión. Tablas de decisión. Es...
· Computadores Cuánticos · A lo largo del último medio siglo, las computadoras han ido duplicando su velocidad cada dos años, al tiempo que el tama...
· Comunicación de datos · Aplicaciones de las comunicaciones de datos en los negocios. Intercambio electrónico de datos (EDI). Hardware para el so... Ver mas trabajos de General Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.
Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.
El Centro de Tesis, Documentos, Publicaciones y Recursos Educativos más amplio de la Red. Términos y Condiciones | Haga publicidad en Monografías.com | Contáctenos | Blog Institucional © Monografias.com S.A.
cerrar
2Iniciar sesión Ingrese el e-mail y contraseña con el que está registrado en Monografias.com
Regístrese gratis ¿Olvidó su contraseña? Ayuda
Cerrar (x)
2.1¿Qué son las bases de datos? Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar fácilmente. A continuación te presentamos una guía que te explicará el concepto y características de las bases de datos. El término de bases de datos fue escuchado por primera vez en 1963, en un simposio celebrado en California, USA. Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. Desde el punto de vista informático, la base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos. Cada base de datos se compone de una o más tablas que guarda un conjunto de datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de la información sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro.
2.1.1Definición de base de datos Se define una base de datos como una serie de datos organizados y relacionados entre sí, los cuales son recolectados y explotados por los sistemas de información de una empresa o negocio en particular.
2.1.2Características Entre las principales características de los sistemas de base de datos podemos mencionar: · · · ·
Independencia lógica y física de los datos. Redundancia mínima. Acceso concurrente por parte de múltiples usuarios. Integridad de los datos.
· · · ·
Consultas complejas optimizadas. Seguridad de acceso y auditoría. Respaldo y recuperación. Acceso a través de lenguajes de programación estándar.
2.1.3Sistema de Gestión de Base de Datos (SGBD) Los Sistemas de Gestión de Base de Datos (en inglés DataBase Management System) 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. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta.
2.1.4Ventajas de las bases de datos 2.1.5Control sobre la redundancia de datos: Los sistemas de ficheros almacenan varias copias de los mismos datos en ficheros distintos. Esto hace que se desperdicie espacio de almacenamiento, además de provocar la falta de consistencia de datos. En los sistemas de bases de datos todos estos ficheros están integrados, por lo que no se almacenan varias copias de los mismos datos. Sin embargo, en una base de datos no se puede eliminar la redundancia completamente, ya que en ocasiones es necesaria para modelar las relaciones entre los datos.
2.1.6Consistencia de datos: Eliminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias. Si un dato está almacenado una sola vez, cualquier actualización se debe realizar sólo una vez, y está disponible para todos los usuarios inmediatamente. Si un dato está duplicado y el sistema conoce esta redundancia, el propio sistema puede encargarse de garantizar que todas las copias se mantienen consistentes.
2.1.7Compartición de datos: En los sistemas de ficheros, los ficheros pertenecen a las personas o a los departamentos que los utilizan. Pero en los sistemas de bases de datos, la base de datos pertenece a la empresa y puede ser compartida por todos los usuarios que estén autorizados.
2.1.8Mantenimiento de estándares: Gracias a la integración es más fácil respetar los estándares necesarios, tanto los establecidos a nivel de la empresa como los nacionales e internacionales. Estos estándares pueden establecerse sobre el formato de los datos para facilitar su intercambio, pueden ser estándares de documentación, procedimientos de actualización y también reglas de acceso.
2.1.9Mejora en la integridad de datos: La integridad de la base de datos se refiere a la validez y la consistencia de los datos almacenados. Normalmente, la integridad se expresa mediante restricciones o reglas que no se pueden violar. Estas
restricciones se pueden aplicar tanto a los datos, como a sus relaciones, y es el SGBD quien se debe encargar de mantenerlas.
2.1.10Mejora en la seguridad: La seguridad de la base de datos es la protección de la base de datos frente a usuarios no autorizados. Sin unas buenas medidas de seguridad, la integración de datos en los sistemas de bases de datos hace que éstos sean más vulnerables que en los sistemas de ficheros.
2.1.11Mejora en la accesibilidad a los datos: Muchos SGBD proporcionan lenguajes de consultas o generadores de informes que permiten al usuario hacer cualquier tipo de consulta sobre los datos, sin que sea necesario que un programador escriba una aplicación que realice tal tarea.
2.1.12Mejora en la productividad: El SGBD proporciona muchas de las funciones estándar que el programador necesita escribir en un sistema de ficheros. A nivel básico, el SGBD proporciona todas las rutinas de manejo de ficheros típicas de los programas de aplicación. El hecho de disponer de estas funciones permite al programador centrarse mejor en la función específica requerida por los usuarios, sin tener que preocuparse de los detalles de implementación de bajo nivel.
2.1.13Mejora en el mantenimiento: En los sistemas de ficheros, las descripciones de los datos se encuentran inmersas en los programas de aplicación que los manejan. Esto hace que los programas sean dependientes de los datos, de modo que un cambio en su estructura, o un cambio en el modo en que se almacena en disco, requiere cambios importantes en los programas cuyos datos se ven afectados. Sin embargo, los SGBD separan las descripciones de los datos de las aplicaciones. Esto es lo que se conoce como independencia de datos, gracias a la cual se simplifica el mantenimiento de las aplicaciones que acceden a la base de datos.
2.1.14Aumento de la concurrencia: En algunos sistemas de ficheros, si hay varios usuarios que pueden acceder simultáneamente a un mismo fichero, es posible que el acceso interfiera entre ellos de modo que se pierda información o se pierda la integridad. La mayoría de los SGBD gestionan el acceso concurrente a la base de datos y garantizan que no ocurran problemas de este tipo.
2.1.15Mejora en los servicios de copias de seguridad: Muchos sistemas de ficheros dejan que sea el usuario quien proporcione las medidas necesarias para proteger los datos ante fallos en el sistema o en las aplicaciones. Los usuarios tienen que hacer copias de seguridad cada día, y si se produce algún fallo, utilizar estas copias para restaurarlos.
En este caso, todo el trabajo realizado sobre los datos desde que se hizo la última copia de seguridad se pierde y se tiene que volver a realizar. Sin embargo, los SGBD actuales funcionan de modo que se minimiza la cantidad de trabajo perdido cuando se produce un fallo.
2.1.16Desventajas de las bases de datos 2.1.17Complejidad: Los SGBD son conjuntos de programas que pueden llegar a ser complejos con una gran funcionalidad. Es preciso comprender muy bien esta funcionalidad para poder realizar un buen uso de ellos.
2.1.18Coste del equipamiento adicional: Tanto el SGBD, como la propia base de datos, pueden hacer que sea necesario adquirir más espacio de almacenamiento. Además, para alcanzar las prestaciones deseadas, es posible que sea necesario adquirir una máquina más grande o una máquina que se dedique solamente al SGBD. Todo esto hará que la implantación de un sistema de bases de datos sea más cara.
2.1.19Vulnerable a los fallos: El hecho de que todo esté centralizado en el SGBD hace que el sistema sea más vulnerable ante los fallos que puedan producirse. Es por ello que deben tenerse copias de seguridad (Backup).
2.1.20Tipos de Campos Cada Sistema de Base de Datos posee tipos de campos que pueden ser similares o diferentes. Entre los más comunes podemos nombrar: · Numérico: entre los diferentes tipos de campos numéricos podemos encontrar enteros “sin decimales” y reales “decimales”. · Booleanos: poseen dos estados: Verdadero “Si” y Falso “No”. · Memos: son campos alfanuméricos de longitud ilimitada. Presentan el inconveniente de no poder ser indexados. · Fechas: almacenan fechas facilitando posteriormente su explotación. Almacenar fechas de esta forma posibilita ordenar los registros por fechas o calcular los días entre una fecha y otra. · Alfanuméricos: contienen cifras y letras. Presentan una longitud limitada (255 caracteres). · Autoincrementables: son campos numéricos enteros que incrementan en una unidad su valor para cada registro incorporado. Su utilidad resulta: Servir de identificador ya que resultan exclusivos de un registro.
2.1.21Tipos de Base de Datos Entre los diferentes tipos de base de datos, podemos encontrar los siguientes: · MySql: es una base de datos con licencia GPL basada en un servidor. Se caracteriza por su rapidez. No es recomendable usar para grandes volúmenes de datos. · PostgreSql y Oracle: Son sistemas de base de datos poderosos. Administra muy bien grandes cantidades de datos, y suelen ser utilizadas en intranets y sistemas de gran calibre. · Access: Es una base de datos desarrollada por Microsoft. Esta base de datos, debe ser creada
bajo el programa access, el cual crea un archivo .mdb con la estructura ya explicada. · Microsoft SQL Server: es una base de datos más potente que access desarrollada por Microsoft. Se utiliza para manejar grandes volúmenes de informaciones.
2.1.22Modelo entidad-relación Los diagramas o modelos entidad-relación (denominado por su siglas, ERD “Diagram Entity relationship”) son una herramienta para el modelado de datos de un sistema de información. Estos modelos expresan entidades relevantes para un sistema de información, sus inter-relaciones y propiedades.
2.1.23Cardinalidad de las Relaciones El diseño de relaciones entre las tablas de una base de datos puede ser la siguiente: · Relaciones de uno a uno: una instancia de la entidad A se relaciona con una y solamente una de la entidad B. · Relaciones de uno a muchos: cada instancia de la entidad A se relaciona con varias instancias de la entidad B. · Relaciones de muchos a muchos: cualquier instancia de la entidad A se relaciona con cualquier instancia de la entidad B.
2.1.24Estructura de una Base de Datos Una base de datos, a fin de ordenar la información de manera lógica, posee un orden que debe ser cumplido para acceder a la información de manera coherente. Cada base de datos contiene una o más tablas, que cumplen la función de contener los campos. En el siguiente ejemplo mostramos una tabla “comentarios” que contiene 4 campos. Los datos quedarían organizados como mostramos en siguiente ejemplo: Por consiguiente una base de datos posee el siguiente orden jerárquico: · · · ·
Tablas Campos Registros Lenguaje SQL
El lenguaje SQL es el más universal en los sistemas de base de datos. Este lenguaje nos permite realizar consultas a nuestras bases de datos para mostrar, insertar, actualizar y borrar datos. A continuación veremos un ejemplo de ellos: · Mostrar: para mostrar los registros se utiliza la instrucción Select. Select * From comentarios. · Insertar: los registros pueden ser introducidos a partir de sentencias que emplean la instrucción Insert. Insert Into comentarios (titulo, texto, fecha) Values ('saludos', 'como esta', '22-102007')
· Borrar: Para borrar un registro se utiliza la instrucción Delete. En este caso debemos especificar cual o cuales son los registros que queremos borrar. Es por ello necesario establecer una selección que se llevara a cabo mediante la cláusula Where. Delete From comentarios Where id='1'. · Actualizar: para actualizar los registros se utiliza la instrucción Update. Como para el caso de Delete, necesitamos especificar por medio de Where cuáles son los registros en los que queremos hacer efectivas nuestras modificaciones. Además, tendremos que especificar cuáles son los nuevos valores de los campos que deseamos actualizar. Update comentarios Set titulo='Mi Primer Comentario' Where id='1'. No te pierdas la sección de Foros del Web dedicada especialmente al tema de las bases de datos.
2.2¿Qué son las bases de datos? Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar fácilmente. A continuación te presentamos una guía que te explicará el concepto y características de las bases de datos. El término de bases de datos fue escuchado por primera vez en 1963, en un simposio celebrado en California, USA. Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. Desde el punto de vista informático, la base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos. Cada base de datos se compone de una o más tablas que guarda un conjunto de datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de la información sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro.
2.2.1Definición de base de datos Se define una base de datos como una serie de datos organizados y relacionados entre sí, los cuales son recolectados y explotados por los sistemas de información de una empresa o negocio en particular.
2.2.2Características Entre las principales características de los sistemas de base de datos podemos mencionar: · · · · · · · ·
Independencia lógica y física de los datos. Redundancia mínima. Acceso concurrente por parte de múltiples usuarios. Integridad de los datos. Consultas complejas optimizadas. Seguridad de acceso y auditoría. Respaldo y recuperación. Acceso a través de lenguajes de programación estándar.
2.2.3Sistema de Gestión de Base de Datos (SGBD) Los Sistemas de Gestión de Base de Datos (en inglés DataBase Management System) 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. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta.
2.2.4Ventajas de las bases de datos 2.2.5Control sobre la redundancia de datos: Los sistemas de ficheros almacenan varias copias de los mismos datos en ficheros distintos. Esto hace que se desperdicie espacio de almacenamiento, además de provocar la falta de consistencia de datos. En los sistemas de bases de datos todos estos ficheros están integrados, por lo que no se almacenan varias copias de los mismos datos. Sin embargo, en una base de datos no se puede eliminar la redundancia completamente, ya que en ocasiones es necesaria para modelar las relaciones entre los datos.
2.2.6Consistencia de datos: Eliminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias. Si un dato está almacenado una sola vez, cualquier actualización se debe realizar sólo una vez, y está disponible para todos los usuarios inmediatamente. Si un dato está duplicado y el sistema conoce esta redundancia, el propio sistema puede encargarse de garantizar que todas las copias se mantienen consistentes.
2.2.7Compartición de datos: En los sistemas de ficheros, los ficheros pertenecen a las personas o a los departamentos que los utilizan. Pero en los sistemas de bases de datos, la base de datos pertenece a la empresa y puede ser compartida por todos los usuarios que estén autorizados.
2.2.8Mantenimiento de estándares: Gracias a la integración es más fácil respetar los estándares necesarios, tanto los establecidos a nivel de la empresa como los nacionales e internacionales. Estos estándares pueden establecerse sobre el formato de los datos para facilitar su intercambio, pueden ser estándares de documentación, procedimientos de actualización y también reglas de acceso.
2.2.9Mejora en la integridad de datos: La integridad de la base de datos se refiere a la validez y la consistencia de los datos almacenados. Normalmente, la integridad se expresa mediante restricciones o reglas que no se pueden violar. Estas restricciones se pueden aplicar tanto a los datos, como a sus relaciones, y es el SGBD quien se debe encargar de mantenerlas.
2.2.10Mejora en la seguridad: La seguridad de la base de datos es la protección de la base de datos frente a usuarios no autorizados. Sin unas buenas medidas de seguridad, la integración de datos en los sistemas de bases de datos hace que éstos sean más vulnerables que en los sistemas de ficheros.
2.2.11Mejora en la accesibilidad a los datos: Muchos SGBD proporcionan lenguajes de consultas o generadores de informes que permiten al usuario hacer cualquier tipo de consulta sobre los datos, sin que sea necesario que un programador escriba una aplicación que realice tal tarea.
2.2.12Mejora en la productividad: El SGBD proporciona muchas de las funciones estándar que el programador necesita escribir en un sistema de ficheros. A nivel básico, el SGBD proporciona todas las rutinas de manejo de ficheros típicas de los programas de aplicación. El hecho de disponer de estas funciones permite al programador centrarse mejor en la función específica requerida por los usuarios, sin tener que preocuparse de los detalles de implementación de bajo nivel.
2.2.13Mejora en el mantenimiento: En los sistemas de ficheros, las descripciones de los datos se encuentran inmersas en los programas de aplicación que los manejan. Esto hace que los programas sean dependientes de los datos, de modo que un cambio en su estructura, o un cambio en el modo en que se almacena en disco, requiere cambios importantes en los programas cuyos datos se ven afectados. Sin embargo, los SGBD separan las descripciones de los datos de las aplicaciones. Esto es lo que se conoce como independencia de datos, gracias a la cual se simplifica el mantenimiento de las aplicaciones que acceden a la base de datos.
2.2.14Aumento de la concurrencia: En algunos sistemas de ficheros, si hay varios usuarios que pueden acceder simultáneamente a un mismo fichero, es posible que el acceso interfiera entre ellos de modo que se pierda información o se pierda la integridad. La mayoría de los SGBD gestionan el acceso concurrente a la base de datos y garantizan que no ocurran problemas de este tipo.
2.2.15Mejora en los servicios de copias de seguridad: Muchos sistemas de ficheros dejan que sea el usuario quien proporcione las medidas necesarias para proteger los datos ante fallos en el sistema o en las aplicaciones. Los usuarios tienen que hacer copias de seguridad cada día, y si se produce algún fallo, utilizar estas copias para restaurarlos. En este caso, todo el trabajo realizado sobre los datos desde que se hizo la última copia de seguridad se pierde y se tiene que volver a realizar. Sin embargo, los SGBD actuales funcionan de modo que se minimiza la cantidad de trabajo perdido cuando se produce un fallo.
2.2.16Desventajas de las bases de datos 2.2.17Complejidad: Los SGBD son conjuntos de programas que pueden llegar a ser complejos con una gran funcionalidad. Es preciso comprender muy bien esta funcionalidad para poder realizar un buen uso de ellos.
2.2.18Coste del equipamiento adicional: Tanto el SGBD, como la propia base de datos, pueden hacer que sea necesario adquirir más espacio de almacenamiento. Además, para alcanzar las prestaciones deseadas, es posible que sea necesario adquirir una máquina más grande o una máquina que se dedique solamente al SGBD. Todo esto hará que la implantación de un sistema de bases de datos sea más cara.
2.2.19Vulnerable a los fallos: El hecho de que todo esté centralizado en el SGBD hace que el sistema sea más vulnerable ante los fallos que puedan producirse. Es por ello que deben tenerse copias de seguridad (Backup).
2.2.20Tipos de Campos Cada Sistema de Base de Datos posee tipos de campos que pueden ser similares o diferentes. Entre los más comunes podemos nombrar: · Numérico: entre los diferentes tipos de campos numéricos podemos encontrar enteros “sin decimales” y reales “decimales”. · Booleanos: poseen dos estados: Verdadero “Si” y Falso “No”. · Memos: son campos alfanuméricos de longitud ilimitada. Presentan el inconveniente de no poder ser indexados. · Fechas: almacenan fechas facilitando posteriormente su explotación. Almacenar fechas de esta forma posibilita ordenar los registros por fechas o calcular los días entre una fecha y otra. · Alfanuméricos: contienen cifras y letras. Presentan una longitud limitada (255 caracteres). · Autoincrementables: son campos numéricos enteros que incrementan en una unidad su valor para cada registro incorporado. Su utilidad resulta: Servir de identificador ya que resultan exclusivos de un registro.
2.2.21Tipos de Base de Datos Entre los diferentes tipos de base de datos, podemos encontrar los siguientes: · MySql: es una base de datos con licencia GPL basada en un servidor. Se caracteriza por su rapidez. No es recomendable usar para grandes volúmenes de datos. · PostgreSql y Oracle: Son sistemas de base de datos poderosos. Administra muy bien grandes cantidades de datos, y suelen ser utilizadas en intranets y sistemas de gran calibre. · Access: Es una base de datos desarrollada por Microsoft. Esta base de datos, debe ser creada bajo el programa access, el cual crea un archivo .mdb con la estructura ya explicada. · Microsoft SQL Server: es una base de datos más potente que access desarrollada por Microsoft. Se utiliza para manejar grandes volúmenes de informaciones.
2.2.22Modelo entidad-relación Los diagramas o modelos entidad-relación (denominado por su siglas, ERD “Diagram Entity relationship”) son una herramienta para el modelado de datos de un sistema de información. Estos modelos expresan entidades relevantes para un sistema de información, sus inter-relaciones y propiedades.
2.2.23Cardinalidad de las Relaciones El diseño de relaciones entre las tablas de una base de datos puede ser la siguiente: · Relaciones de uno a uno: una instancia de la entidad A se relaciona con una y solamente una de la entidad B. · Relaciones de uno a muchos: cada instancia de la entidad A se relaciona con varias instancias de la entidad B. · Relaciones de muchos a muchos: cualquier instancia de la entidad A se relaciona con cualquier instancia de la entidad B.
2.2.24Estructura de una Base de Datos Una base de datos, a fin de ordenar la información de manera lógica, posee un orden que debe ser cumplido para acceder a la información de manera coherente. Cada base de datos contiene una o más tablas, que cumplen la función de contener los campos. En el siguiente ejemplo mostramos una tabla “comentarios” que contiene 4 campos.
Los datos quedarían organizados como mostramos en siguiente ejemplo:
Por consiguiente una base de datos posee el siguiente orden jerárquico: · · · ·
Tablas Campos Registros Lenguaje SQL
El lenguaje SQL es el más universal en los sistemas de base de datos. Este lenguaje nos permite realizar consultas a nuestras bases de datos para mostrar, insertar, actualizar y borrar datos. A continuación veremos un ejemplo de ellos: · Mostrar: para mostrar los registros se utiliza la instrucción Select. Select * From comentarios. · Insertar: los registros pueden ser introducidos a partir de sentencias que emplean la instrucción Insert. Insert Into comentarios (titulo, texto, fecha) Values ('saludos', 'como esta', '22-102007') · Borrar: Para borrar un registro se utiliza la instrucción Delete. En este caso debemos especificar cual o cuales son los registros que queremos borrar. Es por ello necesario establecer una selección que se llevara a cabo mediante la cláusula Where. Delete From comentarios Where id='1'. · Actualizar: para actualizar los registros se utiliza la instrucción Update. Como para el caso de Delete, necesitamos especificar por medio de Where cuáles son los registros en los que queremos hacer efectivas nuestras modificaciones. Además, tendremos que especificar cuáles son los nuevos valores de los campos que deseamos actualizar. Update comentarios Set titulo='Mi Primer Comentario' Where id='1'. No te pierdas la sección de Foros del Web dedicada especialmente al tema de las bases de datos. Principios sobre Bases de Datos Relacionales Autor: Jorge Sánchez (www.jorgesanchez.net) año 2004 e-mail: mailto:info@jorgesanchez.net Este trabajo está protegido bajo una licencia de Creative Commons del tipo Attribution-NonCommercial-ShareAlike. Para ver una copia de esta licencia visite: http://creativecommons.org/licenses/by-nc-sa/2.0/ o envÃe una carta a: Creative Commons, 559 Nathan Abbott Way, Stanford, California
94305, USA. <1> <2> Los contenidos de este documento están protegidos bajo una licencia de Creative Commons del tipo Attribution-Noncomercial-Share Alike. Con esta licencia: Eres libre de: â?¢ Copiar, distribuir y mostrar este trabajo â?¢ Realizar modificaciones de este trabajo Bajo las siguientes condiciones: Attribution (Reconocimiento). Debe figurar siempre el autor original de este trabajo Noncommercial (No comercial). No puedes utilizar este trabajo con propósitos comerciales. Share Alike (Compartir igual). Si modificas, alteras o construyes nuevos trabajos a partir de este, debes distribuir tu trabajo con una licencia idéntica a ésta â?¢ Si estas limitaciones son incompatible con tu objetivo, puedes contactar con el autor para solicitar el permiso correspondiente â?¢ No obstante tu derecho a un uso justo y legÃtimo de la obra, asà como derechos no se ven de manera alguna afectados por lo anteriormente expuesto. Esta nota no es la licencia completa de la obra, sino una traducción del resumen en formato
comprensible del texto legal. La licencia original completa (jurÃdicamente válida y pendiente de su traducción oficial al español) está disponible en http://creativecommons.org/licenses/by-nc-sa/2.0/legalcode <3> Ãndice Ãndice.............................................................................................. 5 modelos lógicos de datos............................................................... 7 esquema canónico .............................................................................. 7 tipos de base de datos ......................................................................... 7 modelo relacional ........................................................................ 11 introducción...................................................................................... 11 tablas ............................................................................................... 12 dominios........................................................................................... 13 claves ............................................................................................... 13 nulos ................................................................................................ 13 restricciones ...................................................................................... 14 las 12 reglas de Codd ....................................................................... 14 paso del esquema ER al modelo relacional................................. 17 transformaciones de entidades fuertes ................................................. 17 transformación de relaciones.............................................................. 17 entidades débiles............................................................................... 19 generalizaciones y especificaciones..................................................... 20 normalización del esquema relacional ....................................... 23 problemas del esquema relacional...................................................... 23
formas normales................................................................................ 23 apéndice: términos técnicos......................................................... 31 <5> modelos lógicos de datos esquema canónico Mundo real Esquema Conceptual Esquema canónico Esquema interno BD FÃsical Modelo Lógico Tiene en cuenta el tipo de DBMS a utilizar Ilustración 1, Posición de esquema canónico dentro de los esquema de creación de una base de datos El esquema canónico o lógico global, es un esquema que presenta de forma conceptual la estructura de una base de datos. Es un esquema que depende del tipo de DBMS que
vayamos a utilizar. Se crea a partir del modelo conceptual (véase el documento Diseño Conceptual de Bases de Datos en www.jorgesanchez.net/bd). Y servirÃa para cualquier base de datos comercial del tipo elegido en el esquema (hay esquemas relacionales, en red, jerárquicos,...) tipos de base de datos jerárquicas En ellas se organiza la información se organiza con un jerarquÃa en la que la relación entre las entidades de este modelo siempre es del tipo padre / hijo. De esta forma hay una serie de nodos que contendrán atributos y que se relacionarán con nodos hijos de forma que puede haber más de un hijo para el mismo padre (pero un hijo sólo tiene un padre). Las entidades de este modelo se llaman segmentos y los atributos campos. La forma visual de este modelo es de árbol invertido, en la parte superior están los padres y en la inferior los hijos. <7> Diseño conceptual de bases de datos modelos lógicos de datos Departamento Documentos Personal Tareas Ilustración 2, Ejemplo de esquema jerárquico en red Se trata de un modelo que se utilizó durante mucho tiempo. Organiza la información en
registros y enlaces. Los registros representan las entidades del modelo entidad / relación. En los registros se almacenan los datos utilizando atributos. Los enlaces permiten relacionar los registros de la base de datos. El modelo en red más aceptado es el llamado codasyl, que durante mucho tiempo se ha convertido en un estándar. Las bases de datos en red son parecidas a las jerárquicas sólo que en ellas puede haber más de un padre. En este modelo se pueden representar perfectamente relaciones varios a varios. Pero su dificultad de manejo y complejidad hace que se estén abandonando completamente. relacionales Los datos se muestran en forma de tablas y relaciones. Este es el modelo que se comenta en el presente documento. De hecho es el claramente más popular. orientadas a objetos Desde la aparición de la programación orientada a objetos (POO u OOP) se empezó a pensar en bases de datos adaptadas a estos lenguajes. En estos lenguajes los datos y los procedimientos se almacenan juntos. Esta es la idea de las bases de datos orientadas a objetos. A través de esta idea se intenta que estas bases de datos consiguen arreglar las limitaciones de las relacionales. Por ejemplo el problema de la herencia, tipos definidos por el usuario, disparadores almacenables en la base de datos, soporte multimedia... Se supone que son las bases de datos de tercera generación (la primera fue las bases de datos en red y la segunda las relacionales), lo que significa que el futuro parece estar a favor de estas bases de datos. Pero siguen sin reemplazar a las relacionales (aunque cada vez hay más).
Su modelo conceptual se suele diseñar en UML y el lógico en ODMG 3.0 objeto relacionales Tratan de ser un hÃbrido entre el modelo relacional y el orientado a objetos. El problema de las bases de datos orientadas a objetos es que requieren reinvertir de nuevo para convertir las bases de datos. En las bases de datos objeto relacionales se intenta conseguir una compatibilidad relacional dando la posibilidad de integrar mejoras de la orientación a objetos. <8> Copyright-Copyleft: © Jorge Sánchez 2004 Estas bases de datos se basan en el estándar SQL 99 que dictó las normas para estas bases de datos. En ese estándar se añade a las bases relacionales la posibilidad de almacenar procedimientos de usuario, triggers, tipos definidos por el usuario, consultas recursivas, bases de datos OLAP, tipos LOB,... Las últimas versiones de la mayorÃa de las grandes bases de datos relacionales (Oracle, SQL Server, Informix, ...) son objeto relacionales. <9> modelo relacional introducción Edgar Frank Codd a finales definió las bases del modelo relacional a finales de los 60. Trabajaba para IBM empresa que tardó un poco en implementar sus bases. Pocos años después el modelo se empezó a implementar cada vez más, hasta ser el modelo de bases de datos más popular. En las bases de Codd se definÃan los objetivos de este modelo: Independencia fÃsica. La forma de almacenar los datos, no debe influir en su
manipulación lógica Independencia lógica. Las aplicaciones que utilizan la base de datos no deben ser modificadas por que se modifiquen elementos de la base de datos. Flexibilidad. La base de datos ofrece fácilmente distintas vistas en función de los usuarios y aplicaciones. Uniformidad. Las estructuras lógicas siempre tienen una única forma conceptual (las tablas) Sencillez. En 1978, IBM desarrolla el lenguaje QBE. Que aproximaba la idea relacional a sus ficheros VSAM. En 1979 Oracle se convierte en el primer producto comercial DBMS relacional (RDBMS). En 1980 aparece Ingres que utilizaba el lenguaje Quel que implementaba el cálculo relacional. evolución del modelo relacional Año 1970 1971-72 1973-78 1978 1979 1980 1981 1982 1986 1987
1990 1992 1998 Hecho Codd publica las bases del modelo relacional Primeros desarrollos teóricos Primeros prototipos Aparece el lenguaje QBE Aparece Oracle Aparece Ingres Aparece SQL Aparece DB2 ANSI normaliza el SQL (SQL/ANSI) SQL de ISO Versión dos del modelo relacional (RM/V2) SQL 92 SQL 3 <11> Diseño conceptual de bases de datos modelo relacional tablas Las bases de datos relacionales se basan en el uso de tablas (también se las llama relaciones). Las tablas se representan gráficamente como una estructura rectangular formada por filas y columnas. Cada columna almacena información sobre una propiedad
determinada de la tabla (se le llama también atributo), nombre, dni, apellidos, edad,.... Cada fila posee una ocurrencia o ejemplar de la instancia o relación representada por la tabla (a las filas se las llama también tuplas). NOMBRE atributo 1 valor 1,1 valor 2,1 ..... valor m,1 atributo 2 valor 1,2 valor 2,2 ..... valor m,2 atributo 3 valor 1,3 valor 2,3 ...... valor m,3 .... .... .... .... ....
atributo n valor 1,n valor 2,n ..... valor m,n tupla 1 tupla 2 .... tupla m Ilustración 3, Representación de una tabla en el modelo relacional terminologÃa relacional Tupla. Cada fila de la tabla (cada ejemplar que la tabla representa) Atributo. Cada columna de la tabla Grado. Número de atributos de la tabla Cardinalidad. Número de tuplas de una tabla Dominio. Conjunto válido de valores representables por un atributo. tipos de tablas Persistentes. Sólo pueden ser borradas por los usuarios: Base. Independientes, se crean indicando su estructura y sus ejemplares. Vistas. Son tablas que sólo almacenan una definición de consulta, resultado de la cual se produce una tabla cuyos datos proceden de las bases o de otras vistas e instantáneas. Si los datos de las tablas base cambian, los de la vista que utiliza esos datos también cambia. Instantáneas. Son vistas (creadas de la misma forma) que sà que almacenan
los datos que muestra, además de la consulta que dio lugar a esa vista. Sólo modifican su resultado (actualizan los datos) siendo refrescadas por el sistema cada cierto tiempo. Temporales. Son tablas que se eliminan automáticamente por el sistema. Pueden ser de cualquiera de los tipos anterior <12> Copyright-Copyleft: © Jorge Sánchez 2004 dominios Los dominios suponen una gran mejora en este modelo ya que permiten especificar los posibles valores válidos para un atributo. Cada dominio incorpora su nombre y una definición del mismo. Ejemplos de dominio: Dirección: 50 caracteres Nacionalidad: Español, Francés, Italiano,... Los dominios pueden ser también compuestos a partir de otros (año, mes y dÃa = fecha) claves clave candidata Conjunto de atributos de una tabla que identifican unÃvocamente cada tupla de la tabla. clave primaria Clave candidata que se escoge como identificador de las tuplas. clave alternativa Cualquier clave candidata que no sea primaria clave externa o secundaria Atributo de una tabla relacionado con una clave de otra tabla. nulos
Los valores nulos indican contenidos de atributos que no tienen ningún valor. En claves secundarias indican que el registro actual no está relacionado con ninguno. En otros atributos indica que no se puede rellenar ese valor por la razón que sea. Las bases de datos relacionales admiten utilizar ese valor en todo tipo de operaciones. Eso significa definir un tercer valor en la lógica. Además de el valor verdadero o falso, existe el valor para los nulos. La razón de este tercer valor ambiguo es que comparar dos atributos con valor nulo, no puede resultar ni verdadero, ni falso. De hecho necesitamos definir la lógica con este valor: verdadero Y (AND) nulo da como resultado, nulo falso Y (AND) nulo da como resultado, falso verdadero O (OR) nulo da como resultado, verdadero falso O nulo da como resultado nulo la negación de nulo, da como resultado nulo <13> Diseño conceptual de bases de datos modelo relacional restricciones Se trata de unas condiciones de obligado cumplimiento por los datos de la base de datos. Las hay de varios tipos. inherentes Son aquellas que no son determinadas por los usuarios, sino que son definidas por el hecho de que la base de datos sea relacional. Por ejemplo: No puede haber dos tuplas iguales El orden de las tuplas no importa
El orden de los atributos no importa Cada atributo sólo puede tomar un valor en el dominio en el que está inscrito semánticas El modelo relacional permite a los usuario incorporar restricciones personales a los datos. Las principales son: Clave primaria. Hace que los atributos marcados como clave primaria no puedan repetir valores. Unicidad. Impide que los valores de los atributos marcados de esa forma, puedan repetirse. Obligatoriedad. ProhÃbe que el atributo marcado de esta forma no tenga ningún valor Integridad referencial. ProhÃbe colocar valores en una clave externa que no estén reflejados en la tabla donde ese atributo es clave primaria. Regla de validación. Condición que debe de cumplir un dato concreto para que sea actualizado. las 12 reglas de Codd Preocupado por los productos que decÃan ser sistemas gestores de bases de datos relacionales (RDBMS) sin serlo, Codd publica las 12 reglas que debe cumplir todo DBMS para ser considerado relacional. Estas reglas en la práctica las cumplen pocos sistemas relacionales. Las reglas son: 1> Información. Toda la información de la base de datos debe estar representada explÃcitamente en el esquema lógico. Es decir, todos los datos están en las tablas.
2> Acceso garantizado. Todo dato es accesible sabiendo el valor de su clave y el nombre de la columna o atributo que contiene el dato. 3> Tratamiento sistemático de los valores nulos. El DBMS debe permitir el tratamiento adecuado de estos valores <14> Copyright-Copyleft: © Jorge Sánchez 2004 4> Catálogo en lÃnea basado en el modelo relacional. Los metadatos deben de ser accesibles usando un esquema relacional. 5> Sublenguaje de datos completo. Al menos debe de existir un lenguaje que permita el manejo completo de la base de datos. Este lenguaje, por lo tanto, debe permitir realizar cualquier operación. 6> Actualización de vistas. El DBMS debe encargarse de que las vistas muestren la última información 7> Inserciones, modificaciones y eliminaciones de dato nivel. Cualquier operación de modificación debe actuar sobre conjuntos de filas, nunca deben actuar registro a registro. 8> Independencia fÃsica. Los datos deben de ser accesibles desde la lógica de la base de datos aún cuando se modifique el almacenamiento. 9> Independencia lógica. Los programas no deben verse afectados por cambios en las tablas 10> Independencia de integridad. Las reglas de integridad deben almacenarse en la base de datos (en el diccionario de datos), no en los programas de aplicación. 11> Independencia de la distribución. El sublenguaje de datos debe permitir
que sus instrucciones funciones igualmente en una base de datos distribuida que en una que no lo es. 12> No subversión. Si el DBMS posee un lenguaje que permite el recorrido registro a registro, éste no puede utilizarse para incumplir las reglas relacionales. <15> paso del esquema ER al modelo relacional transformaciones de entidades fuertes En principio las entidades fuertes del modelo Entidad Relación son transformados al modelo relacional siguiendo estas instrucciones: Entidades. Las entidades pasan a ser tablas Atributos. Los atributos pasan a ser columnas. Identificadores principales. Pasan a ser claves primarias Identificadores candidatos. Pasan a ser claves candidatas. Esto hace que la transformación sea de esta forma: Identificador Atributo1 Nombre Atributo2 Nombre(Identificador, Atributo 1, Atributo 2, Atributo 3) Atributo2 Ilustración 4,Transformación de una entidad fuerte al esquema relacional transformación de relaciones La idea inicial es transformar a cada relación en una tabla en el modelo relacional. Pero
hay que distinguir según el tipo de relación. relaciones varios a varios En las relaciones varios a varios, la relación se transforma en una tabla cuyos atributos son: los atributos de la relación y las claves de las entidades relacionadas (que pasarán a ser claves externas). La clave de la tabla la forman todas las claves externas: Atributo1 Nombre Identificador1 Atributo1 Nombre(Identificador1,Identificador2,Atributo1,Atributo2) Ilustración 5, Transformación de una relación varios a varios <17> Identificador2 Diseño conceptual de bases de datos paso del esquema ER modelo relacional relaciones de orden n Las relaciones ternarias, cuaternarias y n-arias que unen más de dos relaciones se transforman en una tabla que contiene los atributos de la relación más los identificadores de las entidades relacionadas. La clave la forman todas las claves externas: Identificador1 Atributo1 Identificador3 Nombre Identificador2
Atributo1 Identificador4 Nombre(Identificador1,Identificador2,,Identificador3,Identificador4,Atributo1,Atributo2) Ilustración 6, Transformación en el modelo relacional de una entidad n-aria relaciones uno a varios y uno a uno Las relaciones binarios de tipo uno a varios no requieren ser transformadas en una tabla en el modelo relacional. En su lugar la tabla del lado varios (tabla relacionada) incluye como clave externa1 el identificador de la entidad del lado uno (tabla principal): Atributo2 Atributo3 Atributo1 Entidad1 Nombre Entidad2 Identificador1 Identificador2 Entidad2(Identificador2,Atributo3) Entidad1(Identificador1,Atributo1,Identificador2,Atributo2) Ilustración 7, Transformación de una relación uno a varios Asà en el dibujo, el identificador2 en la tabla Entidad1 pasa a ser una clave externa. En el caso de que el número mÃnimo de la relación sea de cero (puede haber ejemplares de la entidad uno sin relacionar), se deberá permitir valores nulos en la clave externa 1 Clave externa, clave ajena, clave foránea, clave secundaria y foreign key son sinónimos
<18> Copyright-Copyleft: © Jorge Sánchez 2004 identificador2. En otro caso no se podrán permitir (ya que siempre habrá un valor relacionado). En el caso de las relaciones uno a uno, ocurre lo mismo: la relación no se convierte en tabla, sino que se coloca en una de las tablas (en principio darÃa igual cuál) el identificador de la entidad relacionada como clave externa. En el caso de que una entidad participe opcionalmente en la relación, entonces es el identificador de ésta el que se colocará como clave externa en la tabla que representa a la otra entidad. relaciones recursivas Las relaciones recursivas se tratan de la misma forma que las otras, sólo que un mismo atributo puede figurar dos veces en una tabla como resultado de la transformación: Identificador Identificador Rol2 Entidad Atributo 1 Rol1 Rol2 Entidad Relac. Atributo 1 Entidad(Identificador,Atributo1,Identificador Rol 1)
Rol1 Relac. Entidad(Identificador,Atributo1) Relac(Identificador Rol 1, Identificador Rol 2,Atributo1) Ilustración 8, Transformación de relaciones recursivas en el modelo relacional entidades débiles Toda entidad débil incorpora una relación implÃcita con una entidad fuerte. Esta relación no necesita incorporarse como tabla en el modelo relacional. Sà se necesita incorporar la clave de la entidad fuerte como clave externa en la entidad débil. Es más, normalmente esa clave externa forma parte de la clave principal de la tabla que representa a la entidad débil. El proceso es: Atributo1 Atributo2 Entidad Débil Entidad Fuerte Id Fuerte Id Débil Entidad Fuerte(Id Fuerte, Atributo 1) Entidad1(Id Débil, Id Fuerte, Atributo2) Ilustración 9, transformación de una entidad débil en el modelo relacional <19> Diseño conceptual de bases de datos paso del esquema ER modelo relacional En ocasiones el identificador de la entidad débil es suficiente para identificar los
ejemplares de dicha entidad, entonces ese identificador quedarÃa como clave principal, pero el identificador de la entidad fuerte seguirÃa figurando como clave externa en la entidad débil. generalizaciones y especificaciones Las generalizaciones y/o especificaciones se convierten al modelo relacional de esta forma: 1> Las subentidades pasan a ser tablas. 2> Si la clave de la superentidad es distinta de las subentidades, entonces se coloca el identificador de la superentidad en cada subentidad como clave externa: Id1 Atributo1 Superentidad Atributo2 Atributo3 Subentidad1 Subentidad2 Id2 Id3 Superentidad(Id1, Atributo 1) Subentidad2(Id3, Atributo 3, Id1) Subentidad1(Id2, Atributo 2, Id1) Ilustración 10, Proceso de transformación de relaciones ISA con clave propia 3> Si la clave es la misma, entonces todas las entidades tendrán la misma columna como identificador:
Id Atributo1 Superentidad Atributo2 Atributo3 Subentidad1 Subentidad2 Id Id Superentidad(Id, Atributo 1) Subentidad2(Id, Atributo 3) Subentidad1(Id, Atributo 2) Ilustración 11, Proceso de transformación de relaciones ISA en el modelo relacional si tienen la misma clave <20> Copyright-Copyleft: © Jorge Sánchez 2004 4> La superentidad debe generar una tabla sólo en el caso de que haya posibilidad de que exista un ejemplar de dicha entidad que no sea ejemplar de las subentidades. De otro modo basta con generar las tablas de las subentidades e incluir los atributos de la entidad superior: Id Atributo1 Superentidad
Atributo2 Atributo3 Subentidad1 Subentidad2 Id Id Subentidad2(Id, Atributo 3, Atributo1) Subentidad1(Id, Atributo 2, Atributo1) Ilustración 12, Paso de relaciones ISA al modelo relacional cuando toda superentidad figura como subentidad <21> normalización del esquema relacional problemas del esquema relacional Una vez obtenido el esquema relacional resultantes del modelo entidad relación que representaba la base de datos, normalmente tendremos una buena base de datos. Pero otras veces, debido a fallos en el diseño o a problemas indetectables en esta fase del diseño, tendremos un esquema que puede producir una base de datos que incorpore estos problemas: Redundancia. Se llama asà a los datos que se repiten continua e innecesariamente por las tablas de las bases de datos. Ambigüedades. Datos que no clarifican suficientemente el registro al que representan. Pérdida de restricciones de integridad.
AnomalÃas en operaciones de modificación de datos. El hecho de que al insertar un solo elemento haya que repetir tuplas en una tabla para variar unos pocos datos. O que eliminar un elemento suponga eliminar varias tuplas. El principio fundamental reside en que las tablas deben referirse a objetos o situaciones muy concretas. Lo que ocurre es que conceptualmente es difÃcil obtener ese problema. La solución suele ser dividir la tabla con problemas en otras tablas más adecuadas. formas normales Las formas normales se corresponde a una teorÃa de normalización iniciada por el propio Codd y continuada por otros autores (entre los que destacan Boyce y Fagin). Codd definió en 1970 la primera forma normal, desde ese momento aparecieron la segunda, tercera, la Boyce-Codd, la cuarta y la quinta forma normal. Una tabla puede encontrarse en primera forma normal y no en segunda forma normal, pero no al contrario. Es decir los números altos de formas normales son más restrictivos (la quinta forma normal cumple todas las anteriores). La teorÃa de formas normales es una teorÃa absolutamente matemática, pero en el presente manual se describen de forma intuitiva. primera forma normal (1FN) Una tabla se encuentra en primera forma normal si impide que un atributo de una tupla pueda tomar más de un valor. La tabla: DNI 12121212A 12345345G TRABAJADOR Nombre
Andrés Andrea Departamento Mantenimiento Dirección Gestión <23> Diseño conceptual de bases de datos apéndice: términos técnicos Visualmente es un tabla, pero no una tabla relacional (lo que en terminologÃa de bases de datos relacionales se llama relación). No cumple la primera forma normal. Lo cumplirÃa si: DNI 12121212A 12345345G 12345345G TRABAJADOR Nombre Andrés Andrea Andrea Departamento Mantenimiento Dirección
Gestión Esa tabla sà esta en primera forma normal. dependencias funcionales Se dice que un conjunto de atributos (Y) depende funcionalmente de otro conjunto de atributos (X) si para cada valor de X hay un único valor posible para Y. Simbólicamente se denota por Xâ??Y. Por ejemplo el nombre de una persona depende funcionalmente del DNI, para un DNI concreto sólo hay un nombre posible. En la tabla ejemplo anterior, el departamento no tiene dependencia funcional, ya que para un mismo DNO puede haber más de un departamento posible. Al conjunto X del que depende funcionalmente el conjunto Y se le llama determinante. Al conjunto Y se le llama implicado. dependencia funcional completa Un conjunto de atributos (Y) tiene una dependencia funcional completa sobre otro conjunto de atributos (X) si Y tiene dependencia funcional de X y además no se puede obtener de X un conjunto de atributos más pequeño que consiga una dependencia funcional de Y. Por ejemplo en una tabla de clientes, el conjunto de atributos formado por el nombre y el dni producen una dependencia funcional sobre el atributo apellidos. Pero no es plena ya que el dni sólo también produce una dependencia funcional sobre apellidos. El dni sà produce una dependencia funcional completa sobre el campo apellidos. Una dependencia funcional completa se denota como Xâ??Y dependencia funcional elemental Se produce cuando X e Y forman una dependencia funcional completa y además Y es un
único atributo. dependencia funcional transitiva Es más compleja de explicar, pero tiene también utilidad. Se produce cuando tenemos tres conjuntos de atributos X, Y y Z. Y depende funcionalmente de X (Xâ??Y), Z depende funcionalmente de Y (Yâ??Z). Además X no depende funcionalmente de Y. Entonces ocurre que X produce una dependencia funcional transitiva sobre Z. Esto se denota como: (X â??Z) Por ejemplo si X es el atributo Número de Clase de un instituto, e Y es el atributo Código Tutor. Entonces Xâ??Y (el tutor depende funcionalmente del número de clase). Si Z representa el Código del departamento, entonces Yâ??Z (el código del departamento depende funcionalmente del código tutor, cada tutor sólo puede estar en un <24> Copyright-Copyleft: © Jorge Sánchez 2004 departamento). Como no ocurre que Yâ??X (el código de la clase no depende funcionalmente del código tutor, un código tutor se puede corresponder con varios códigos de clase). Entonces X â??Z (el código del departamento depende transitivamente del código de la clase). segunda forma normal (2FN) Ocurre si una tabla está en primera forma normal y además cada atributo que no sea clave, depende de forma funcional completa respecto de cualquiera de las claves. Toda la clave principal debe hacer dependientes al resto de atributos, si hay atributos que depende sólo de parte de la clave, entonces esa parte de la clave y esos atributos formarán otra tabla. Ejemplo: DNI
12121219A 12121219A 3457775G 5674378J 5674378J Cod Curso 34 25 34 25 34 ALUMNOS Nombre Pedro Pedro Ana Sara Sara Apellido1 Valiente Valiente Fernández Crespo Crespo
Nota 9 8 6 7 6 Suponiendo que el DNI y el número de curso formen una clave principal para esta tabla, sólo la nota tiene dependencia funcional completa. El nombre y los apellidos dependen de forma completa del DNI. La tabla no es 2FN, para arreglarlo: DNI ALUMNOS Apellido1 12121219A Nombre Valiente 3457775G Pedro Fernández 5674378J Ana Crespo Sara DNI ASISTENCIA Nota 12121219A Cod Curso 9 12121219A 34 8 3457775G 25 6 5674378J 34 7 5674378J 25 6 34 tercera forma normal (3FN) Ocurre cuando una tabla está en 2FN y además ningún atributo que no sea clave depende transitivamente de las claves de la tabla. Es decir no ocurre cuando algún atributo
depende funcionalmente de atributos que no son clave. <25> Diseño conceptual de bases de datos apéndice: términos técnicos Ejemplo: DNI 12121349A 12121219A 3457775G 5674378J 3456858S ALUMNOS Apellido1 Velasco Valiente Fernández Crespo Serrat Nombre Salvador Pedro Ana Sara Marina
Cod Provincia 34 34 47 47 08 Provincia Palencia Palencia Valladolid Valladolid Barcelona La Provincia depende funcionalmente del código de provincia, lo que hace que no esté en 3FN. El arreglo serÃa: DNI 12121349A 12121219A 3457775G 5674378J 3456858S Nombre Salvador Pedro Ana
Sara Marina ALUMNOS Apellido1 Velasco Valiente Fernández Crespo Serrat Cod Provincia 34 34 47 47 08 PROVINCIA Cod Provincia Provincia 34 Palencia 47 Valladolid 08 Barcelona forma normal de Boyce-Codd (FNBC o BCFN)
Ocurre si una tabla está en tercera forma normal y además todo determinante es una clave candidata. Ejemplo: DNI 12121219A 12121219A 3457775G 5674378J 5674378J 5634823H TUTOR�AS Asignatura Lenguaje Matemáticas Lenguaje Matemáticas Lenguaje Matemáticas Tutor Eva Andrés Eva Guillermo Julia Guillermo
Esa tabla está en tercera forma normal (no hay dependencias transitivas), pero no en forma de Boyce - Codd, ya que (DNI, Asignatura) â??Tutor y Tutorâ??Asignatura. En este caso la redundancia ocurre por mala selección de clave. La redundancia de la asignatura es completamente evitable. La solución serÃa: <26> Copyright-Copyleft: © Jorge Sánchez 2004 DNI 12121219A 12121219A 3457775G 5674378J 5674378J 5634823H TUTORÃ?AS Tutor Eva Andrés Eva Guillermo Julia Guillermo ASIGNATURASTUTOR Asignatura Tutor
Lenguaje Eva Matemáticas Andrés Matemáticas Guillermo Lenguaje Julia En las formas de Boyce-Codd hay que tener cuidado al descomponer ya que se podrÃa perder información por una mala descomposición dependencia multivaluada Para el resto de formas normales (las diseñadas por Fagin, mucho más complejas), es importante definir este tipo de dependencia, que es distinta de las funcionales. Si las funcionales eran la base de la segunda y tercera forma normal (y de la de Boyce-Codd), éstas son la base de la cuarta forma normal. Una dependencia multivaluada de una tabla con atributos X, Y, Z de X sobre Z (es decir X->>Z) ocurre cuando los posibles valores de Y sobre cualquier par de valores X y Z dependen sólo del valor de X y son independientes de Z. Ejemplo: No Curso 17 17 17 17
25 25 25 Profesor Eva Eva Julia Julia Eva Eva Eva Material 1 2 1 2 1 2 3 La tabla cursos, profesores y materiales del curso. La tabla está en FNBC ya que no hay dependencias transitivas y todos los atributos son clave sin dependencia funcional hacia ellos. Sin embargo hay redundancia. Los materiales se van a repetir para cualquier profesor dando cualquier curso, ya que los profesores van a utilizar todos los materiales del curso (de no ser asà no habrÃa ninguna redundancia).
<27> Diseño conceptual de bases de datos apéndice: términos técnicos Los materiales del curso dependen del curso y no del profesor en una dependencia multivaluada. Para el par No de curso y profeso podemos saber los materiales, pero por el curso y no por el profesor. cuarta forma normal (4FN) Ocurre esta forma normal cuando una tabla está en forma normal de Boyce Codd y toda dependencia multivaluada es una dependencia funcional. Para la tabla anterior la solución serÃan dos tablas: No Curso Material 17 1 17 2 25 1 25 2 25 3 No Curso Profesor 17 Eva 17 Julia 25 Eva Un teorema de Fagin indica cuando hay tres pares de conjuntos de atributos X, Y y Z si ocurre X->>Y|Z (Y y Z tienen dependencia multivaluada sobre X), entonces las tablas X,Y y X,Z reproducen sin perder información lo que poseÃa la tabla original. Este teorema marca la forma de dividir las tablas hacia una 4FN
quinta forma normal (5FN) Es la más compleja y polémica de todas. Polémica pues no está claro en muchas ocasiones que sea una solución mejor que el no llegar a este nivel de normalización. Fue definida también por Fagin. Es raro encontrarse este tipo de problemas cuando la normalización llega a 4FN. Se deben a restricciones muy concretas. Ejemplo: Proveedor 1 1 2 1 Material 1 2 1 1 Proyecto 2 1 1 1 Indican códigos de material suministrado por un proveedor y utilizado en un determinado proyecto. Si ocurre una restricción especial como por ejemplo: Cuando un proveedor nos ha
suministrado alguna vez un determinado material, si ese material aparece en otro proyecto, haremos que el proveedor nos suministre también ese material para ese proyecto. <28> Copyright-Copyleft: © Jorge Sánchez 2004 Eso ocurre en los datos como el proveedor número 1 nos suministró el material número 1 para el proyecto 2 y en el proyecto 1 utilizamos el material 1, aparecerá la tupla proveedor 1, material 1 y proyecto 1. La dependencia que produce esta restricción es lejana y se la llama de reunión. Para esa restricción esta división en tablas serÃa válida: Proveedor Material 11 12 21 Material Proyecto 12 21 11 Esa descomposición no pierde valores en este caso, sabiendo que si el proveedor nos suministra un material podremos relacionarle con todos los proyectos que utilizan ese material. Resumiendo, una tabla no está en quinta forma normal si hay una descomposición de esa tabla que muestre la misma información que la original. <29>
apéndice: términos técnicos 1FN Abreviatura de Primera Forma Normal. Normalización estándar de las tablas relacionales. 2FN Abreviatura de Segunda Forma Normal. Normalización estándar de las tablas relacionales. 3FN Abreviatura de Tercera Forma Normal. Normalización estándar de las tablas relacionales. 4FN Abreviatura de Cuarta Forma Normal. Normalización estándar de las tablas relacionales. 5FN Abreviatura de Quinta Forma Normal. Normalización estándar de las tablas relacionales. ANSI American National Standards Institute, Instituto de estándares de Estados Unidos. Uno de los organismos de estandarización más importantes. ATU �rea de trabajo de usuario. Parte de la memoria que utilizan los procesos de usuario para almacenar los datos recibidos de una base de datos. BCNF Véase FNBC BD Abreviatura de Base de Datos. Buffer Zona de la memoria que se utiliza para almacenar temporalmente algunos datos. Codasyl Conference on Data System Languages, Data Base Task Group. Nombre que se da al modelo de bases de datos en red que resultó de una conferencia en el año 1971 y que provocó su aceptación como estándar. DB Abreviatura de Data Base, base de datos DBA Data Base Administrator, nombre que recibe el administrador de la base de
datos DBMS Data Base Management System, Sistema gestor de bases de datos. El software encargado de administrar y producir bases de datos. DCL Data Control Language, lenguaje de control de datos. Lenguaje que proporcionan las DBMS para controlar los usuarios de la base de datos. DDL Data Definition Language, lenguaje de definición de datos. Lenguaje que proporcionan las DBMS para definir la base de datos. DML Data Modification Language, lenguaje de modificación de datos. Lenguaje que proporcionan las DBMS para realizar operaciones de búsqueda y modificación de datos. ERE Modelo entidad relación extendido FNBC Abreviatura de Forma Normal de Boyce Codd. Normalización estándar de las tablas relacionales. <31> Diseño conceptual de bases de datos apéndice: términos técnicos LOB Large Object Binary, objeto binario largo. Tipo de datos de muchas bases de datos que admiten almacenar grandes cantidades de información en formato binario. ODMG Object Data Management Group, grupo de administración de objetos de datos. Estándar utilizado para definir modelos lógicos de bases de datos de objetos. OLAP On Line Analytical Process, Proceso analÃtico en lÃnea. Nombre que reciben las OOP
Programación orientada a objetos OS Véase SO POO Programación orientada a objetos QBE Query by Example, consultas mediante ejemplos. Lenguaje relacional utilizado en algunas de las primeras bases de datos relacionales. RM/V2 Relational Model Version 2, Modelo relacional, versión 2. Modelo desarrollado por Codd, considerado como la segunda versión del modelo relacional. RDBMS Relational Data Base Management System, Sistema gestor de bases de datos relacionales. El software encargado de administrar y producir bases de datos relacionales SGBD Véase DBMS SGBDR Véase RDBMS SO Sistema operativo SPARC System Planing and Repairments Comitte, comité de planificación de sistemas y reparaciones, subsección de ANSI. UML Uniform Modeling Language, Lenguaje de modelado universal, utilizado para realizar modelos conceptuales de información orientada al objeto. X3 Sección de ANSI encargada de los estándares de ordenadores y m <32>
3El Modelo de Datos Entidad-Relación 3.1Entidades y Relaciones 3.2Representación Gráfica de Entidades y Relaciones 3.3¿Cómo se pasa del esquema E/R a las tablas? 3.4Ejemplo de una universidad 3.4.1Creación de Tablas 3.4.1.1Tabla Alumno 3.4.1.2Tabla Asignatura 3.4.1.3Tabla Matricula 3.4.2Creación de Relaciones 3.4.2.1Exigir Integridad Referencial 3.4.2.2Actualizar en cascada los campos relacionados 3.4.2.3Eliminar en cascada los registros relacionados
4El Modelo de Datos Entidad-Relación (E/R) Cuando se utiliza una base de datos para gestionar información, se está plasmando una parte del mundo real en una serie de tablas, registros y campos ubicados en un ordenador; creándose un modelo parcial de la realidad. Antes de crear físicamente estas tablas en el ordenador se debe realizar un modelo de datos. Se suele cometer el error de ir creando nuevas tablas a medida que se van necesitando, haciendo así el modelo de datos y la construcción física de las tablas simultáneamente. El resultado de esto acaba siendo un sistema de información parcheado, con datos dispersos que terminan por no cumplir adecuadamente los requisitos necesarios.
4.1Entidades y Relaciones El modelo de datos más extendido es el denominado ENTIDAD/RELACIÓN (E/R) En el modelo E/R se parte de una situación real a partir de la cual se definen entidades y relaciones entre dichas entidades: l Entidad.- Objeto del mundo real sobre el que queremos almacenar información (Ej: una persona). Las entidades están compuestas de atributos que son los datos que definen el objeto (para la entidad persona serían DNI, nombre, apellidos, dirección,...). De entre los atributos habrá uno o un conjunto de ellos que no se repite; a este atributo o conjunto de atributos se le llama clave de la entidad, (para la entidad persona una clave seria DNI). En toda entidad siempre hay al menos una clave que en el peor de los casos estará formada por todos los atributos de la tabla. Ya que pueden haber varias claves y necesitamos elegir una, lo haremos atendiendo a estas normas: l Que sea única. l Que se tenga pleno conocimiento de ella.- ¿Por qué en las empresas se asigna a cada cliente un número de cliente?. l Que sea mínima, ya que será muy utilizada por el gestor de base de datos. l Relación.- Asociación entre entidades, sin existencia propia en el mundo real que estamos modelando, pero necesaria para reflejar las interacciones existentes entre entidades. Las relaciones pueden ser de tres tipos: l Relaciones 1-1.- Las entidades que intervienen en la relación se asocian una a una (Ej: la entidad HOMBRE, la entidad MUJER y entre ellos la relación MATRIMONIO). l Relaciones 1-n.- Una ocurrencia de una entidad está asociada con muchas (n) de otra (Ej: la entidad EMPERSA, la entidad TRABAJADOR y entre ellos la relación TRABAJAR-EN). l Relaciones n-n.-Cada ocurrencia, en cualquiera de las dos entidades de la relación, puede estar asociada con muchas (n) de la otra y viceversa (Ej: la entidad ALUMNO, la entidad EMPRESA y entre ellos la relación MATRÍCULA). 4.2Representación gráfica de Entidades y Relaciones Para asimilar fácilmente un diseño de datos cuando se emplea el modelo E/R se utilizan los siguientes elementos gráficos: La utilización de estos elementos dará como resultado lo que se denomina el esquema entidadrelación de la base de datos. Los ejemplos que se incluyen en el apartado anterior, gráficamente quedarían como sigue:
4.3¿Cómo se pasa del esquema E/R a las tablas? Para cada entidad del esquema se creará una tabla con tantos campos como atributos tenga la entidad. Ejemplo: 4.3.1Tabla 'TRABAJADOR' DNINUM_SSnombre-apellidos... 11111111XXXXXXXXXXXFulano de tal...22222222YYYYYYYYYYYMengano de cual........................... 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 la otra tabla con el que se está relacionado. Ese nuevo campo que se incluye en la tabla recibe el nombre de clave ajena. Ejemplo: 4.3.2Tabla 'HOMBRE' 4.3.3DNINombre...
11111111......22222222...............Tabla 'MUJER'
DNINombre... DNI-ESPOSO33333333......1111111144444444...... (nulo)............ Donde el campo DNI-ESPOSO es 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 de alguno de los DNI de la tabla 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: 4.3.4Tabla 'EMPRESA' 4.3.5CIFNombre...
XX-1111-AA......YY-2222-BB............... Tabla 'TRABAJADOR'
DNINombre... CIF11111111......XX-1111-AA22222222......YY-2222-BB33333333......YY-2222BB44444444...... XX-1111-AA............ Para representar las relaciones n-n en tablas lo que se hace es crear una nueva tabla 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: 4.3.6Tabla 'ALUMNO' 4.3.7DNINombre...
11111111......22222222...............Tabla 'ASIGNATURA'
4.3.8COD-ASIGNATURANombre... relación)
01......02...............Tabla 'MATRÍCULA'(esta es la
DNICOD_ASIGNATURANOTA11111111017.511111111026.2522222222015.522222222028......... En la tabla MATRÍCULA 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 ALUMNO y el segundo de ASIGNATURA. Hacer ver aquí que la tabla MATRICULAS puede 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.
4.4Ejemplo de una Universidad 4.4.1Creación de Tablas 4.4.1.1Tabla Alumno En una Universidad, si tenemos la entidad Alumno que definimos como: Tabla ALUMNO(DNI, Nombre, Apellido1, Apellido2, Ciudad, Provincia, FNacimiento, EstadoCivil) CP: DNI
Telefono,
Calle,
Creando la tabla en vista "Diseño" obtenemos:
4.4.1.2Tabla Asignatura Y la entidad Asignatura definida como: ASIGNATURA(Codigo, Nombre, Creditos, Dni_prof, Observaciones) CP:Codigo 4.4.1.3Tabla Matricula Y sabiendo que un alumno se puede matricular de muchas 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 Y la tabla quedaría como:
4.4.2Creación de Relaciones Seleccionamos la opción Relaciones del menú Herramientas:
Agregamos las tablas (Alumno,Asignatura y Matricula):
Que son:
Y por último sólo 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 :
4.4.2.1Exigir Integridad Referencial 4.4.2.2Actualizar en cascada los campos relacionados 4.4.2.3Eliminar en cascada los registros relacionados 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.Codigo y Matricula.Codigo_asig queda el esquema E-R en Access según se muestra en la figura siguiente:
5El Modelo de Datos Entidad-Relación 5.1Entidades y Relaciones 5.2Representación Gráfica de Entidades y Relaciones 5.3¿Cómo se pasa del esquema E/R a las tablas? 5.4Ejemplo de una universidad 5.4.1Creación de Tablas 5.4.1.1Tabla Alumno 5.4.1.2Tabla Asignatura 5.4.1.3Tabla Matricula 5.4.2Creación de Relaciones 5.4.2.1Exigir Integridad Referencial 5.4.2.2Actualizar en cascada los campos relacionados 5.4.2.3Eliminar en cascada los registros relacionados
6El Modelo de Datos Entidad-Relación (E/R) Cuando se utiliza una base de datos para gestionar información, se está plasmando una parte del mundo real en una serie de tablas, registros y campos ubicados en un ordenador; creándose un modelo parcial de la realidad. Antes de crear físicamente estas tablas en el ordenador se debe realizar un modelo de datos. Se suele cometer el error de ir creando nuevas tablas a medida que se van necesitando, haciendo así el modelo de datos y la construcción física de las tablas simultáneamente. El resultado de esto acaba siendo un sistema de información parcheado, con datos dispersos que terminan por no cumplir adecuadamente los requisitos necesarios. 6.1Entidades y Relaciones El modelo de datos más extendido es el denominado ENTIDAD/RELACIÓN (E/R) En el modelo E/R se parte de una situación real a partir de la cual se definen entidades y relaciones entre dichas entidades: l Entidad.- Objeto del mundo real sobre el que queremos almacenar información (Ej: una persona). Las entidades están compuestas de atributos que son los datos que definen el objeto (para la entidad persona serían DNI, nombre, apellidos, dirección,...). De entre los
atributos habrá uno o un conjunto de ellos que no se repite; a este atributo o conjunto de atributos se le llama clave de la entidad, (para la entidad persona una clave seria DNI). En toda entidad siempre hay al menos una clave que en el peor de los casos estará formada por todos los atributos de la tabla. Ya que pueden haber varias claves y necesitamos elegir una, lo haremos atendiendo a estas normas: l Que sea única. l Que se tenga pleno conocimiento de ella.- ¿Por qué en las empresas se asigna a cada cliente un número de cliente?. l Que sea mínima, ya que será muy utilizada por el gestor de base de datos. l Relación.- Asociación entre entidades, sin existencia propia en el mundo real que estamos modelando, pero necesaria para reflejar las interacciones existentes entre entidades. Las relaciones pueden ser de tres tipos: l Relaciones 1-1.- Las entidades que intervienen en la relación se asocian una a una (Ej: la entidad HOMBRE, la entidad MUJER y entre ellos la relación MATRIMONIO). l Relaciones 1-n.- Una ocurrencia de una entidad está asociada con muchas (n) de otra (Ej: la entidad EMPERSA, la entidad TRABAJADOR y entre ellos la relación TRABAJAR-EN). l Relaciones n-n.-Cada ocurrencia, en cualquiera de las dos entidades de la relación, puede estar asociada con muchas (n) de la otra y viceversa (Ej: la entidad ALUMNO, la entidad EMPRESA y entre ellos la relación MATRÍCULA). 6.2Representación gráfica de Entidades y Relaciones Para asimilar fácilmente un diseño de datos cuando se emplea el modelo E/R se utilizan los siguientes elementos gráficos: La utilización de estos elementos dará como resultado lo que se denomina el esquema entidadrelación de la base de datos. Los ejemplos que se incluyen en el apartado anterior, gráficamente quedarían como sigue:
6.3¿Cómo se pasa del esquema E/R a las tablas? Para cada entidad del esquema se creará una tabla con tantos campos como atributos tenga la entidad. Ejemplo: 6.3.1Tabla 'TRABAJADOR' DNINUM_SSnombre-apellidos... 11111111XXXXXXXXXXXFulano de tal...22222222YYYYYYYYYYYMengano de cual........................... 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 la otra tabla con el que se está relacionado. Ese nuevo campo que se incluye en la tabla recibe el nombre de clave ajena. Ejemplo:
6.3.2Tabla 'HOMBRE' 6.3.3DNINombre...
11111111......22222222...............Tabla 'MUJER'
DNINombre... DNI-ESPOSO33333333......1111111144444444...... (nulo)............ Donde el campo DNI-ESPOSO es 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 de alguno de los DNI de la tabla 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: 6.3.4Tabla 'EMPRESA' 6.3.5CIFNombre...
XX-1111-AA......YY-2222-BB............... Tabla 'TRABAJADOR'
DNINombre... CIF11111111......XX-1111-AA22222222......YY-2222-BB33333333......YY-2222BB44444444...... XX-1111-AA............ Para representar las relaciones n-n en tablas lo que se hace es crear una nueva tabla 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: 6.3.6Tabla 'ALUMNO' 6.3.7DNINombre...
11111111......22222222...............Tabla 'ASIGNATURA'
6.3.8COD-ASIGNATURANombre... relación)
01......02...............Tabla 'MATRÍCULA'(esta es la
DNICOD_ASIGNATURANOTA11111111017.511111111026.2522222222015.522222222028......... En la tabla MATRÍCULA 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 ALUMNO y el segundo de ASIGNATURA. Hacer ver aquí que la tabla MATRICULAS puede 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. 6.4Ejemplo de una Universidad 6.4.1Creación de Tablas 6.4.1.1Tabla Alumno En una Universidad, si tenemos la entidad Alumno que definimos como:
Tabla ALUMNO(DNI, Nombre, Apellido1, Apellido2, Ciudad, Provincia, FNacimiento, EstadoCivil) CP: DNI
Telefono,
Calle,
Creando la tabla en vista "Diseño" obtenemos:
6.4.1.2Tabla Asignatura Y la entidad Asignatura definida como: ASIGNATURA(Codigo, Nombre, Creditos, Dni_prof, Observaciones) CP:Codigo 6.4.1.3Tabla Matricula Y sabiendo que un alumno se puede matricular de muchas 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 Y la tabla quedaría como:
6.4.2Creación de Relaciones Seleccionamos la opción Relaciones del menú Herramientas:
Agregamos las tablas (Alumno,Asignatura y Matricula):
Que son:
Y por último sólo 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 :
6.4.2.1Exigir Integridad Referencial 6.4.2.2Actualizar en cascada los campos relacionados 6.4.2.3Eliminar en cascada los registros relacionados 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.Codigo y Matricula.Codigo_asig queda el esquema E-R en Access según se muestra en la figura siguiente:
2.5 Diagrama Entidad-Relación
Denominado por sus siglas como: E-R; Este modelo representa a la realidad a través de un esquema gráfico empleando los terminología de entidades, que son objetos que existen y son los elementos principales que se identifican en el problema a resolver con el diagramado y se distinguen de otros por sus características particulares denominadas atributos, el enlace que que rige la unión de las entidades esta representada por la relación del modelo. Recordemos que un rectángulo nos representa a las entidades; una elipse a los atributos de las entidades, y una etiqueta dentro de un rombo nos indica la relación que existe entre las entidades, destacando con líneas las uniones de estas y que la llave primaria de una entidad es aquel atributo que se encuentra subrayado. A continuación mostraremos algunos ejemplos de modelos E-R, considerando las cardinalidades que existen entre ellos: Relación Uno a Uno. Problema:
Diseñar el modelo E-R, para la relación Registro de automóvil que consiste en obtener la tarjeta de circulación de un automóvil con los siguientes datos:- Automóvil- Modelo, Placas, Color - Tarjeta de circulación -Propietario, No_serie, Tipo.
Indicamos con este ejemplo que existe una relación de pertenencia de uno a uno, ya que existe una tarjeta de circulación registrada por cada automóvil. En este ejemplo, representamos que existe un solo presidente para cada país. Relación muchos a muchos. Página siguiente El siguiente ejemplo indica que un cliente puede tener muchas cuentas, pero que una cuenta puede llegar a pertenecer a un solo cliente (Decimos puede, ya que existen cuentas registradas a favor de más de una persona).
7ARCHIVO MAESTRO El archivo maestro contiene todos los registros de una determinada base de datos, cada uno de las cuales consiste en un conjunto de campos de longitud variable. Cada registro se identifica con un número único, asignado automáticamente por CDS/ISIS al ser creado; este número se denomina: Número del archivo maestro o MFN (iniciales de Master File Number). Con objeto de proporcionar un acceso rápido a cada registro del archivo maestro, CDS/ISIS asocia al archivo maestro un archivo especial denominado "Archivo de referencias cruzadas", que es en realidad un índice que suministra la ubicación de cada registro en el archivo maestro. Pueden crearse, modificarse o borrarse los registros del archivo maestro por medio de las facilidades de ingreso y edición del módulo ISISENT.
Los archivos de índice contienen un registro de encabezado y uno o varios registros de nodos. El registro de encabezado contiene información acerca del nodo raíz, el tamaño del archivo actual, la longitud de la clave, opciones de índice y de firma, y representaciones ASCII imprimibles de la clave de expresiones FOR. El registro de encabezado comienza en la posición cero del archivo. Los registros de nodo restantes contienen un atributo, número de claves presentes y punteros que apuntan a nodos a la izquierda y a la derecha (en el mismo nivel) del nodo actual. También contienen un grupo de caracteres que rodean el valor clave y un puntero que apunta a un nodo de nivel más bajo, o bien un número de registro de tabla actual. El tamaño de cada registro que sale a un archivo es de 512 bytes. Registro de encabezado de índice Desplazamiento de bytesDescripción00 – 03Puntero dirigido al nodo raíz04 – 07Puntero dirigido a la lista de nodos libres ( – 1 si no está presente)08 – 11Puntero dirigido al final del archivo (tamaño de archivo)12 – 13Longitud de clave14 Opciones de índice (cualquiera de los valores numéricos siguientes o sus sumas): 1 – un índice único 8 – el índice tiene una cláusula FOR15Firma de índice (para uso futuro)16 – 235Expresión clave (sin compilar; hasta 220 caracteres)1,3236 – 455Expresión FOR (sin compilar; hasta 220 caracteres, finalizando con un byte de valor nulo)456 – 511Sin utilizarRegistro de nodos de índice Desplazamiento de bytesDescripción00 – 01Atributos de nodos (cualquiera de los valores numéricos siguientes o sus sumas): 0 – nodo índice 1 – nodo raíz 2 – nodo terminal02 – 03Número de claves presentes (0, 1 o muchas)04 – 07Puntero dirigido al nodo situado directamente a la izquierda del nodo actual (en el mismo nivel; -1 si no está presente)08 – 11Puntero dirigido al nodo situado directamente a la derecha del nodo actual (en el mismo nivel; -1 si no está presente)12 – 511Hasta 500 caracteres que contienen el valor clave para la longitud de la clave con un número hexadecimal de cuatro bytes (almacenado en formato de izquierda a derecha normal):
Si el nodo es una hoja (atributo = 02 o 03), los cuatro bytes contienen un número de tabla actual en formato hexadecimal; si no, los 4 bytes contienen un puntero entre índices. 2 Las combinaciones de números hexadecimales clave/cuatro bytes se darán el número de veces indicado en los bytes 02-03.1 El tipo de clave no se almacena en el índice. Debe ser determinado por la expresión clave. 2 Todos los tipos menos las cadenas de caracteres, los números usados como valores clave y los números de cuatro bytes del nodo secundario se representan en bytes invertidos (formato Intel 8086). 3 Los números son un caso especial cuando se usan como clave. Se convierten mediante el siguiente algoritmo de forma que se puedan ordenar usando la misma secuencia de ordenación ASCII que los caracteres: l Se convierte el número al formato de coma flotante IEEE. Para obtener más información, vea Capacidades del sistema de Visual FoxPro. l Se intercambia el orden de los bytes del orden Intel 8086 al orden izquierda a derecha. l Si el número era negativo, se toma el complemento lógico del número (se intercambian los 64 bits, 1 a 0 y 0 a 1); si no, sólo se invierte el bit más a la izquierda.
7.1.1Ejemplo de estructura de árbol ordenada Para encontrar una clave en la estructura siguiente hay que buscar un sólo camino entre el nodo primario y los nodos secundarios. Los nodos del nivel más bajo son nodos secundarios. Como las claves están ordenadas, todas las claves del subárbol son menores o iguales que el nodo primario. En la ilustración anterior, las letras se usan como los valores clave. Cada clave también tendría un número hexadecimal de cuatro bytes. Los números asociados con las claves de los nodos secundarios serían los números de tabla actuales — todas las claves de los otros nodos tendrían asociados punteros entre índices. Podríamos ver los bytes 12-511 en el registro de nodo índice de la siguiente forma:
La combinación de números valor/hexadecimal clave se da n veces en los bytes 12-511 en donde n es el número de claves presentes. 7.1.1.1Vea también Estructura de archivo de índice compacto (.idx) | Estructura de archivo de índice compuesto (.cdx) | Estructura de archivos de tabla (.dbc, .dbf, .frx, .lbx, .mnx, .pjx, .scx, .vcx) | Estructuras de tabla de archivos de tabla (.dbc, .frx, .lbx, .mnx, .pjx, .scx, .vcx) | Estructura de archivo memo (.FPT) | Formato de archivo de macro (.fky) | Extensiones de archivo y tipos de archivo
TIPOS DE DATOS ESTRUCTURADOS 2 Tuplas o Registros 2 sesiones OBJETIVOS: Conocer la importancia que tienen los tipos de datos compuestos como las tuplas. Declaras, definir y utilizar los tipos de datos compuestos. Conocer las operaciones posibles a realizar sobre una tupla. El término registros es un concepto que se maneja continuamente en la vida diaria; y así estamos oyendo frecuentemente frase como: oficina de registros, registros de personal, registro de empresas, registro de estudiantes, etc. Bajo el punto de vista de la programación el concepto de registro es también de gran utilidad; y en principio lo definiremos (después daremos una definición más correcta) como una colección fija de información relativa a un solo objeto, donde unas veces nos referimos a la información como un todo, y otras veces nos referimos por un nombre, a una parte de esa información. Cada una de estas partes o items elementales del registro de denomina campo. Así por ejemplo una fecha compuesta de día, mes y año, se puede considerar como un registro (fecha) compuesto de tres componentes (campos): día, mes y año. Igualmente, la información siguiente relativa a una persona: 1) nombre 2) apellidos 3) fecha de nacimiento 4) sexo 5) estado 6) número de teléfono Se puede considerar como un registro de seis componentes o campos. Es muy importante distinguir muy bien entre los conceptos : tupla (registro) y tabla (array). 8-1 8-2 Fundamentos de la Programación I La primera diferencia que existe entre ellos es: los campos de un registro pueden tener diferentes tipos, mientras que los elementos de un vector deben ser todos del mismo tipo. La segunda diferencia también fundamental es que, los campos de un registros, deben seleccionarse por nombre, mientras que los elementos de un vector se seleccionan a través de subíndices y así por ejemplo tendrá sentido referirnos al j-ésimo elemento de un array, mientras que en el caso de un registro no podremos referirno al j-ésimo campo, por su orden o situación dentro del registro, sino por su nombre. Como definición más formal de registro tendríamos que es una estructura compuesta por un número fijo de componentes, llamados campos, donde cada campo viene definido por su tipo y su identificador: el identificador de campo. En pseducódigo lo definiremos de la siguiente manera: tupla identificador1 : Tipo1; identificador2 : Tipo2;
identificador3 : Tipo3; ... identificadorN : TipoN; ftupla Definir las estructuras de datos necesarias para almacenar en memoria la información de 76 alumnos. De cada alumno se almacenarán los siguientes datos: Ejercicio Resuelto 1. nombre y apellidos 45 caracteres domicilio 45 caracteres asignatura1 3 caracteres nota1 real asignatura2 3 caracteres nota2 real .. .. .. asignatura50 3 caracteres nota50 real tipo TCodAsig = tabla [1..3] de caracter: TCadena = tabla [1..45] de caracter; TAsignatura = tupla asig : TCodAsig; nota : real f tupla Tficha = tupla nombre : Tcadena; domicilio : Tcadena; notas : tabla [1..50] de TAsignatura ftupla TAlumnos = tabla [1..76] de TFicha ftipo var alumnos: TAlumnos fvar Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas Tipos de datos Estructurados 2 8-3 Crea una estructura de datos para guardar los siguientes datos: Ejercicio Resuelto 2. - nombre - apellido1 - apellido2 - nombre_padre - apellido1_padre - apellido2_padre
- nombre_madre - apellido1_madre - apellido2_madre - edad fecha_alta: - día - mes - año fecha_nacimiento: - día - mes - año tipo TCadena = tabla [1..18] de caracter; TDatosPerson = tupla nombre : TCadena; apellido1 : TCadena; apellido2 : TCadena; f tupla TFecha = tupla dia : entero; mes : TCadena; anyo : entero; ftupla TInforme = tupla persona :TDatosPerson; padre : TDatosPerson; madre : TDatosPerson; edad : entero; fechaAlta : TFecha; fechaNac : TFecha; ftupla ftipo var informe: TInforme; fvar Ejercicio Propuesto 1. Supuesta la siguiente tabla (artículos) : Nombre Precio balón de reglamento 4788695176 45,00 € pandereta 2789681325 7,95 € teatro de madera 8569723486 29,50 € piano animalitos 5316895824 34,00 € sendero musical Artículos Código 6486462625 19,95 €
Definid la estructura adecuada para almacenar dichos datos. Departamento de Ciencia de la Computación e Inteligencia Artificial 8-4 Fundamentos de la Programación I Escribe un módulo (acción) en pseudocódigo que lea los datos anteriores y los guarde en la estructura creada en el ejercicio anterior. Posteriormente incorpora dicho módulo al siguiente algoritmo. Ejercicio Propuesto 2. algoritmo : ejercicio_estructura #definición de los tipos necesarios #declaración de las variables necesarias accion leerEstruc(...) ... faccion accion escrEstruct(...) ... faccion #petición de datos leerEstruc(...); #escritura de los datos escrEstruc(...); ... falgoritmo. Podemos definir un polígono definiendo las coordenadas de cada uno de sus lados. Diseñar la estructura de datos que permita definir un polígono de lado n –con un máximo de 30 lados- y crear un algoritmo que permita introducir las coordenadas cartesianas de cada uno de sus lados. Para construir el algoritmo ayúdate de todos los subalgoritmos que consideres necesarios. Ejercicio Propuesto 3. Escribir un algoritmo que construya una tabla de N fechas (N es un dato) con la ayuda de los siguientes módulos o subalgoritmos: Ejercicio Propuesto 4. - Módulo leer, que lee N y a continuación las N fechas, colocándolas cada una en una tabla de registros de fechas con tres campos cada uno - Módulo ordenar ? que clasifica la tabla anterior tomando como campo más importante el año, luego el mes y finalmente el día. - Procedimiento listar, que imprime la tabla mencionada, una vez clasificada. Podríais validar la fecha con los módulos realizados en prácticas anteriores para tal fin. El Servicio Metereológico Nacional: recibe de cada observatorio un archivo con información acerca de las temperaturas máxima y mínimas diarias registradas en ellos. Con ellos crea una tabla de 100 elementos. Cada elemento está compuesto por los siguientes campos: código del observatorio, fecha del registro (día, mes y año) temperatura máxima y temperatura mínima. La tabla no está ordenada. A partir de estos datos se desea realizar un informe en el que aparezcan las temperaturas medias mensuales. Ejercicio Propuesto 5. Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas