Post on 10-Jul-2016
description
República Bolivariana de Venezuela
Ministerio del poder popular para la Educación
Unidad Nacional Experimental “Simón Rodríguez”
Maturín-Edo-Monagas
Base de Datos
Facilitador: Participantes:
Montaño Roxana sección “D” Villarroel Karla C.I: 259.433.08
Andreina Ayala
BASE DE DATOS
Se puede decir que una base de datos es un conjunto de información
relacionada que se encuentra agrupada o estructurada. Desde el punto de vista
informático, una 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. Actualmente, las bases de datos
están teniendo un impacto decisivo sobre el creciente uso de las computadoras.
Pero para poder entender más profundamente una base de datos cabe entender
su historia.
Orígenes
Los orígenes de las bases de datos se remontan a la Antigüedad donde ya
existían bibliotecas y toda clase de registros. Además también se utilizaban para
recoger información sobre las cosechas y censos. Sin embargo, su búsqueda era
lenta y poco eficaz y no se contaba con la ayuda de máquinas que pudiesen
reemplazar el trabajo manual. Posteriormente, el uso de las bases de datos se
desarrolló a partir de las necesidades de almacenar grandes cantidades de
información o datos. Sobre todo, desde la aparición de las primeras
computadoras, el concepto de bases de datos ha estado siempre ligado a la
informática.
En 1884 Herman Hollerith creó la máquina automática de tarjetas
perforadas, siendo nombrado así el primer ingeniero estadístico de la historia. En
esta época, los censos se realizaban de forma manual. Ante esta situación,
Hollerith comenzó a trabajar en el diseño de una maquina tabuladora o censadora,
basada en tarjetas perforadas. Posteriormente, en la década de los cincuenta se
da origen a las cintas magnéticas, para automatizar la información y hacer
respaldos. Esto sirvió para suplir las necesidades de información de las nuevas
industrias. Y a través de este mecanismo se empezaron a automatizar
información, con la desventaja de que solo se podía hacer de forma secuencial.
Década de 1960
Posteriormente en la época de los sesenta, las computadoras bajaron los
precios para que las compañías privadas las pudiesen adquirir; dando paso a que
se popularizara el uso de los discos, cosa que fue un adelanto muy efectivo en la
época, debido a que a partir de este soporte se podía consultar la información
directamente, sin tener que saber la ubicación exacta de los datos. En esta misma
época se dio inicio a las primeras generaciones de bases de datos de red y las
bases de datos jerárquicas, ya que era posible guardar estructuras de datos en
listas y arboles.
Otro de los principales logros de los años sesenta fue la alianza de IBM y
American Airlines para desarrollar SABRE, un sistema operativo que manejaba las
reservas de vuelos, transacciones e informaciones sobre los pasajeros de la
compañía American Airlines.
Década de 1970
Por lo que respecta a la década de los setenta, Edgar Frank Codd, científico
informático ingles conocido por sus aportaciones a la teoría de bases de datos
relacionales, definió el modelo relacional a la par que publicó una serie de reglas
para los sistemas de datos relacionales a través de su artículo “Un modelo
relacional de datos para grandes bancos de datos compartidos”. Este hecho dio
paso al nacimiento de la segunda generación de los Sistemas Gestores de Bases
de Datos.
Como consecuencia de esto, durante la década de 1970, Lawrence J.
Ellison, más conocido como Larry Ellison, a partir del trabajo de Edgar F. Codd
sobre los sistemas de bases de datos relacionales, desarrolló el Relational
Software System, o lo que es lo mismo, lo que actualmente se conoce como
Oracle Corporation, desarrollando así un sistema de gestión de bases de datos
relacional con el mismo nombre que dicha compañía.
Posteriormente en la época de los ochenta también se desarrollará el SQL (Structured Query Language) o lo que es lo mismo un lenguaje de consultas o
lenguaje declarativo de acceso a bases de datos relacionales que permite efectuar
consultas con el fin de recuperar información de interés de una base de datos y
hacer cambios sobre la base de datos de forma sencilla; además de analiza
grandes cantidades de información y permitir especificar diversos tipos de
operaciones frente a la misma información, a diferencia de las bases de datos de
los años ochenta que se diseñaron para aplicaciones de procesamiento de
transacciones.
Pero cabe destacar que ORACLE es considerado como uno de los
sistemas de bases de datos más completos que existen en el mundo, y aunque su
dominio en el mercado de servidores empresariales ha sido casi total hasta hace
relativamente poco, actualmente sufre la competencia del SQL Server de la
compañía Microsoft y de la oferta de otros Sistemas Administradores de Bases de
Datos Relacionales con licencia libre como es el caso de PostgreSQL, MySQL o
Firebird que aparecerían posteriormente en la década de 1990.
Década de 1980
Por su parte, a principios de los años ochenta comenzó el auge de la
comercialización de los sistemas relacionales, y SQL comenzó a ser el estándar
de la industria, ya que las bases de datos relacionales con su sistema de tablas
(compuesta por filas y columnas) pudieron competir con las bases jerárquicas y de
red, como consecuencia de que su nivel de programación era sencillo y su nivel de
programación era relativamente bajo.
Década años 1990
En la década de 1990 la investigación en bases de datos giró en torno a las
bases de datos orientadas a objetos. Las cuales han tenido bastante éxito a la
hora de gestionar datos complejos en los campos donde las bases de datos
relacionales no han podido desarrollarse de forma eficiente. Así se desarrollaron
herramientas como Excel y Access del paquete de Microsoft Office que marcan el
inicio de las bases de datos orientadas a objetos. Así se creó la tercera generación
de sistemas gestores de bases de datos.
Fue también en esta época cuando se empezó a modificar la primera
publicación hecha por ANSI del lenguaje SQL y se empezó a agregar nuevas
expresiones regulares, consultas recursivas, triggers y algunas características
orientadas a objetos, que posteriormente en el siglo XXI volverá a sufrir
modificaciones introduciendo características de XML, cambios en sus funciones,
estandarización del objeto sequence y de las columnas autonuméricas. Y además,
se creará la posibilidad de que SQL se pueda utilizar conjuntamente con XML, y
se definirá las maneras de cómo importar y guardar datos XML en una base de
datos SQL. Dando asi, la posibilidad de proporcionar facilidades que permiten a
las aplicaciones integrar el uso de XQuery (lenguaje de consulta XML) para
acceso concurrente a datos ordinarios SQL y documentos XML. Y posteriormente,
se dará la posibilidad de usar la clausula order by.
Aunque el boom de la década de los noventa será es el nacimiento del World
Wide Web a finales de la década, ya que a través de este se facilitará la consulta a
bases de datos.
SIGLO XXI
En la actualidad, las tres grandes compañías que dominan el mercado de
las bases de datos son IBM, Microsoft y Oracle. Por su parte, en el campo de
internet, la compañía que genera gran cantidad de información es Google. Aunque
existe una gran variedad de software que permiten crear y manejar bases de
datos con gran facilidad, como por ejemplo LINQ, que es un proyecto de Microsoft
que agrega consultas nativas semejantes a las de SQL a los lenguajes de la
plataforma .NET. El objetivo de este proyecto es permitir que todo el código hecho
en Visual Studio sean también orientados a objetos; ya que antes de LINQ la
manipulación de datos externos tenía un concepto más estructurado que orientado
a objetos; y es por eso que trata de facilitar y estandarizar el acceso a dichos
objetos.
Cabe destacar que Visual Studio es un entorno de desarrollo integrado para
sistemas operativos Windows que soporta varios lenguajes de programación tales
como Visual C++, Visual#, Visual J#, ASP.NET y Visual Basic.NET, aunque se
están desarrollando las extensiones necesarias para otros, cuyo objetivo es
permitir crear aplicaciones, sitios y aplicaciones web, así como servicios web a
cualquier entorno que soporte la plataforma .Net, creando así aplicaciones que
intercomuniquen entre estaciones de trabajo, páginas web y dispositivos móviles.
1. El Modelo Entidad-Relación
Se elabora el diagrama (o diagramas) entidad-relación.
Se completa el modelo con listas de atributos y una descripción de otras
restricciones que no se pueden reflejar en el diagrama.
El modelado de datos no acaba con el uso de esta técnica. Son necesarias otras
técnicas para lograr un modelo directamente implementable en una base de datos.
Brevemente:
Permite mostrar resultados entre otras entidades pertenecientes a las existentes
de manera que se encuentre la normatividad de archivos que se almacenarán
Transformación de relaciones múltiples en binarias.
Normalización de una base de datos de relaciones (algunas relaciones pueden
transformarse en atributos y viceversa).
Conversión en tablas (en caso de utilizar una base de datos relacional).
2. Base teórica y conceptual
Entidad
Una entidad es un objeto que existe y se distingue de otros objetos de
acuerdo a sus características llamadas Atributos. Las Entidades pueden ser
concretas como una persona o abstractas como una fecha.
Representa una “cosa” u "objeto" del mundo real con existencia independiente, es
decir, se diferencia unívocamente de cualquier otro objeto o cosa, incluso siendo
del mismo tipo, o una misma entidad.
Algunos Ejemplos:
Una persona. (Se diferencia de cualquier otra persona, incluso siendo gemelos).
Un automóvil. (Aunque sean de la misma marca, el mismo modelo, tendrán
atributos diferentes, por ejemplo, el número de bastidor).
Una casa (Aunque sea exactamente igual a otra, aún se diferenciará en su
dirección).
Una entidad puede ser un objeto con existencia física como: una persona, un
animal, una casa, etc. (entidad concreta), o un objeto con existencia conceptual
como: un puesto de trabajo, una asignatura de clases, un nombre,etc. (entidad
abstracta).
Una entidad está descrita y se representa por sus características o atributos. Por
ejemplo, la entidad Persona puede llevar consigo las características: Nombre,
Apellido, Género, Estatura, Peso, Fecha de nacimiento, etc...
Atributos
Los atributos son las propiedades que describen a cada entidad en un
conjunto de entidades. Un conjunto de entidades dentro de una entidad, tiene
valores específicos asignados para cada uno de sus atributos, de esta forma, es
posible su identificación unívoca.
Ejemplos:
A la colección de entidades Alumnos, con el siguiente conjunto de atributos en
común, (id, nombre, edad, semestre), pertenecen las entidades:
(1, Sofia, 18 años, 2)
(2, Josefa, 19 años, 5)
(3, Gabriela, 20 años, 2)
Cada una de las entidades pertenecientes a este conjunto se diferencia de
las demás por el valor de sus atributos. Nótese que dos o más entidades
diferentes pueden tener los mismos valores para algunos de sus atributos, pero
nunca para todos.
En particular, los atributos identificativos son aquellos que permiten
diferenciar a una instancia de la entidad de otra distinta. Por ejemplo, el atributo
identificativo que distingue a un alumno de otro es su número de id.
Para cada atributo, existe un dominio del mismo, este hace referencia al tipo de
datos que será almacenado o a restricciones en los valores que el atributo puede
tomar (Cadenas de caracteres, números, solo dos letras, solo números mayores
que cero, solo números enteros.). Cuando una entidad no tiene un valor para un
atributo dado, este toma el valor nulo, bien sea que no se conoce, que no existe o
que no se sabe nada al respecto del mismo.
Relación
Una relación es una asociación o relación matemática entre varias
Entidades. Las relaciones también se nombran. Se representan en el Diagrama,
Entidad, Relación, representado también por E-R mediante flechas y rombos.
Cada entidad interviene en una relación con una determinada cardinalidad.
La cardinalidad (número de instancias o elementos de una entidad que
pueden asociarse a un elemento de la otra entidad relacionada) se representa
mediante una pareja de datos, en minúsculas, de la forma (cardinalidad mínima,
cardinalidad máxima), asociada a cada uno de las entidades que intervienen en la
relación. Son posibles las siguientes cardinalidades: (0,1), (1,1), (0,n), (1,n), (m,n).
También se informa de las cardinalidades máximas con las que intervienen las
entidades en la relación.
Los Diagramas E-R son lenguajes gráficos para describir conceptos.
Informalmente, son simples Dibujos o Gráficos que describen la información que
trata un sistema de información y el Software que lo automatiza. El tipo de relación
se define tomando los máximos de las cardinalidades que intervienen en la
relación.
Conjunto de relaciones
Consiste en una colección, o conjunto, de relaciones de la misma naturaleza.
Ejemplo:
Dados los conjuntos de entidades "Habitación" y "Huésped", todas las
relaciones de la forma habitación-huésped, permiten obtener la información de los
huéspedes y sus respectivas habitaciones.
La dependencia o asociación entre los conjuntos de entidades es
llamada participación. En el ejemplo anterior los conjuntos de entidades
"Habitación" y "Huésped" participan en el conjunto de relaciones habitación-
huésped.
Se llama grado del conjunto de relaciones a la cantidad de conjuntos de entidades
participantes en la relación.
3. Restricciones
Son reglas que deben mantener los datos almacenados en la base de datos.
Correspondencia de cardinalidades
Dado un conjunto de relaciones en el que participan dos o más conjuntos de
entidades, la correspondencia de cardinalidad indica el número de entidades con
las que puede estar relacionada una entidad dada.
Dado un conjunto de relaciones binarias y los conjuntos de entidades A y B, la
correspondencia de cardinalidades puede ser:
Uno a Uno: (1:1) Un registro de una entidad A se relaciona con solo un
registro en una entidad B. (ejemplo dos entidades, profesor y departamento,
con llaves primarias, codigo_profesor y jefe_depto respectivamente, un
profesor solo puede ser jefe de un departamento y un departamento solo
puede tener un jefe).
Uno a varios: (1:N) Un registro en una entidad en A se relaciona con cero o
muchos registros en una entidad B. Pero los registros de B solamente se
relacionan con un registro en A. (ejemplo: dos entidades, vendedor y ventas,
con llaves primarias, codigo_vendedor y venta, respectivamente, un vendedor
puede tener muchas ventas pero una venta solo puede tener un vendedor).
Varios a Uno: (N:1) Una entidad en A se relaciona exclusivamente con una
entidad en B. Pero una entidad en B se puede relacionar con 0 o muchas
entidades en A (ejemplo empleado-centro de trabajo).
Varios a Varios: (N:M) Una entidad en A se puede relacionar con 0 o con
muchas entidades en B y viceversa (ejemplo asociaciones-ciudadanos, donde
muchos ciudadanos pueden pertenecer a una misma asociación, y cada
ciudadano puede pertenecer a muchas asociaciones distintas).
Restricciones de participación
Dado un conjunto de relaciones R en el cual participa un conjunto de entidades A,
dicha participación puede ser de dos tipos:
Total: Cuando cada entidad en A participa en al menos una relación de R.
Parcial: Cuando al menos una entidad en A NO participa en alguna relación
de R.
4. Claves
Es un subconjunto del conjunto de atributos comunes en una colección de
entidades, que permite identificar inequívocamente cada una de las entidades
pertenecientes a dicha colección. Asimismo, permiten distinguir entre sí las
relaciones de un conjunto de relaciones.
Dentro de los conjuntos de entidades existen los siguientes tipos de claves:
Superclave: Es un subconjunto de atributos que permite distinguir
unívocamente cada una de las entidades de un conjunto de entidades. Si se
añade un atributo al anterior subconjunto, el resultado seguirá siendo una
superclave.
Clave candidata: Dada una superclave, si ésta deja de serlo quitando
únicamente uno de los atributos que la componen, entonces ésta es una clave
candidata.
Clave primaria: Es una clave candidata, elegida por el diseñador de la base
de datos, para identificar unívocamente las entidades en un conjunto de
entidades.
Los valores de los atributos de una clave, no pueden ser todos iguales para dos o
más instancias.
Para poder distinguir unívocamente las relaciones en un conjunto de relaciones R,
se deben considerar dos casos:
R NO tiene atributos asociados: En este caso, se usa como clave primaria
de R la unión de las claves primarias de todos los conjuntos de entidades
participantes.
R tiene atributos asociados: En este caso, se usa como clave primaria de R
la unión de los atributos asociados y las claves primarias de todos los
conjuntos de entidades participantes.
Si el conjunto de relaciones, R, sobre las que se pretende determinar la clave
primaria está compuesto de relaciones binarias, con los conjuntos de entidades
participantes A y B, se consideran los siguientes casos, según sus cardinalidades:
R es de muchos a uno de A a B entonces sólo se toma la clave primaria de
A, como clave primaria de R.
R es de uno a muchos de A a B entonces se toma sólo la clave primaria de
B, como clave primaria de R.
R es de uno a uno de A a B entonces se toma cualquiera de las dos claves
primarias, como clave primaria de R.
R es de muchos a muchos de A a B entonces se toma la unión de los
atributos que conforman las claves primarias de A y de B, como clave primaria
de R.
5. Diagrama entidad-relación
Anteriormente detallamos los conceptos relacionados al modelo ER, en esta
sección profundizaremos en como representarlos gráficamente. Cabe destacar
que para todo proceso de modelado, siempre hay que tener en claro los
conceptos, estos nos brindan conocimiento necesario y además fundamentan
nuestro modelo al momento de presentarlo a terceros.
Formalmente, los diagramas ER son un lenguaje gráfico para describir conceptos.
Informalmente, son simples dibujos o gráficos que describen información que trata
un sistema de información y el software que lo automatiza.
Entidades
Las entidades son el fundamento del modelo entidad relación. Podemos
adoptar como definición de entidad cualquier cosa o parte del mundo que es
distinguible del resto. Por ejemplo, en un sistema bancario, las personas y las
cuentas bancarias se podrían interpretar como entidades. Las entidades pueden
representar entes concretos, como una persona o un avión, o abstractas, como
por ejemplo un préstamo o una reserva. Se representan por medio de un
rectángulo. que pueden ser de tipo: maestras, transaccionales, históricas y
temporales
Atributos
Se representan mediante un círculo o elipse etiquetado mediante un
nombre en su interior. Cuando un atributo es identificativo de la entidad se suele
subrayar dicha etiqueta.
Por motivos de legibilidad, los atributos suelen no aparecer representados en el
diagrama entidad-relación, sino descritos textualmente en otros documentos
adjuntos.
Relacion
Describe cierta dependencia entre entidades o permite la asociación de las
mismas.
Por ejemplo:
Si tenemos dos entidades, CLIENTE y HABITACIÓN, podemos entender la
relación entre ambas al tomar un caso concreto (ocurrencia) de cada una
de ellas. Entonces, podríamos tener la ocurrencia Habitación 502, de la
entidad HABITACIÓN y la ocurrencia Henry Johnson McFly Bogard, de la
entidad CLIENTE, entre las que es posible relacionar que la habitación 502
se encuentra ocupada por el huésped de nombre Henry Johnson McFly
Bogard
6. Diagramas extendidos
Los diagramas Entidad-Relación no cumplen su propósito con eficacia
debido a que tienen limitaciones semánticas. Por ese motivo se suelen utilizar
los diagramas Entidad-Relación extendidos que incorporan algunos elementos
más al lenguaje:
Entidades fuertes y débiles
Cuando una entidad participa en una relación puede adquirir un
papel fuerte o débil. Una entidad débil es aquella que no puede existir sin
participar en la relación; es decir, aquella que no puede ser unívocamente
identificada solamente por sus atributos.
Una entidad fuerte (también conocida como entidad regular) es aquella que
sí puede ser identificada unívocamente. En los casos en que se requiera, se
puede dar que una entidad fuerte "preste" algunos de sus atributos a una entidad
débil para que esta última se pueda identificar.
Las entidades débiles se representan mediante un doble rectángulo; es decir, un
rectángulo con doble línea.
Se puede hablar de la existencia de 2 tipos de dependencias en las entidades
débiles:
Dependencia por existencia
Las ocurrencias de la entidad débil pueden identificarse mediante un atributo
identificador clave sin necesidad de identificar la entidad fuerte relacionada.
Dependencia por identidad
La entidad débil no puede ser identificada sin la entidad fuerte relacionada.
(Ejemplo: si tenemos una entidad LIBRO y otra relacionada EDICIÓN, para
identificar una edición necesitamos conocer el identificador del libro).
Cardinalidad de las relaciones
Cardinalidad es el número de entidades con la cual otra entidad puede
asociar mediante una relación binaria; la cardinalidad puede ser: Uno a uno, uno a
muchos ó muchos a uno y muchos a muchos. El tipo de cardinalidad se
representa mediante una etiqueta en el exterior de la relación, respectivamente:
"1:1", "1:N" y "N:M", aunque la notación depende del lenguaje utilizado, la que más
se usa actualmente es el unificado. Otra forma de expresar la cardinalidad es
situando un símbolo cerca de la línea que conecta una entidad con una relación:
"0" si cada instancia de la entidad no está obligada a participar en la
relación.
"1" si toda instancia de la entidad está obligada a participar en la
relación y, además, solamente participa una vez.
"N" , "M", ó "*" si cada instancia de la entidad no está obligada a
participar en la relación y puede hacerlo cualquier número de veces.
Ejemplos de relaciones que expresan cardinalidad:
Un policía (entidad) tiene (relación) un arma (entidad) siempre y cuando
no realice funciones de oficina, pudiendo entonces tenerla o no
asignada. Es una relación 0:1.
Cada esposo (entidad) está casado (relación) con una única esposa
(entidad) y viceversa. Es una relación 1:1.
Una factura (entidad) se emite (relación) a una persona (entidad) y sólo
una, pero una persona puede tener varias facturas emitidas a su
nombre. Todas las facturas se emiten a nombre de alguien. Es una
relación 1:N.
Un cliente (entidad) puede comprar (relación) varios servicios (entidad)
y un servicio puede ser comprado por varios clientes distintos. Es una
relación N:M.
Atributos en relaciones
Las relaciones también pueden tener atributos asociados. Se representan
igual que los atributos de las entidades. Un ejemplo típico son las relaciones de
tipo "histórico" donde debe constar una fecha o una hora. Por ejemplo,
supongamos que es necesario hacer constar la fecha de emisión de una factura a
un cliente, y que es posible emitir duplicados de la factura (con distinta fecha). En
tal caso, el atributo "Fecha de emisión" de la factura debería colocarse en la
relación "se emite".
Herencia
La herencia es un intento de adaptación de estos diagramas al paradigma
orientado a objetos. La herencia es un tipo de relación entre una entidad "padre" y
una entidad "hijo". La entidad "hijo" hereda todos los atributos y relaciones de la
entidad "padre". Por tanto, no necesitan ser representadas dos veces en el
diagrama. La relación de herencia se representa mediante un triángulo
interconectado por líneas a las entidades. La entidad conectada por el vértice
superior del triángulo es la entidad "padre". Solamente puede existir una entidad
"padre" (herencia simple). Las entidades "hijo" se conectan por la base del
triángulo.
Agregación
Ejemplo agregación
Es una abstracción a través de la cual las relaciones se tratan como
entidades de un nivel más alto. Se utiliza para expresar relaciones entre relaciones
o entre entidades y relaciones. Se representa englobando la relación abstraída y
las entidades que participan en ella en un rectángulo. En la figura se muestra un
ejemplo de agregación en el que se representa la situación en la que un profesor,
cuando está impartiendo una clase, puede poner una incidencia ocurrida a lo largo
de ésta (se fue la luz, falta la configuración de un determinado software, etc.).