conceptos de base de datos

19
DEFINICIÓN Y CONCEPTO DE BASE DE DATOS Una base de datos es un sistema informático a modo de almacén. En este almacén se guardan grandes volúmenes de información. Por ejemplo, imaginemos que somos una compañía telefónica y deseamos tener almacenados los datos personales y los números de teléfono de todos nuestros clientes, que posiblemente sean millones de personas. Esta información es de gran volumen de tamaño: estamos hablando de veinte o treinta datos multiplicados por miles o millones de personas. La antigua gestión de datos se basaba en archivos informáticos, pero para las necesidades de hoy en día hacen falta sistemas más perfeccionados que son precisamente lo que se denomina sistema de base de datos. Llegamos a la conclusión de que necesitaríamos una base de datos para automatizar el acceso a la información y poder acceder a ella de manera rápida y fácil además de poder realizar cambios de una manera más eficiente. Toda base de datos debe tener una serie de características tales como seguridad (sólo personas autorizadas podrán acceder a la información), integridad (la información se mantendrá sin pérdidas de datos), e independencia (esta característica es fundamental ya que una buena base de datos debería ser independiente del sistema operativo o programas que interactúen con ella). Hay más características que debe reunir una base de datos como ser consistente (es decir, que la información se guarde sin duplicidades y de manera correcta). Y finalmente, las bases de datos actuales permiten el manejo correcto de transacciones. Esto significa que se ha de permitir efectuar varias operaciones sobre la base de datos pero tratadas a modo de una sola. Es decir, si en el conjunto de las operaciones de una transacción se produce un error, entonces se deshacen todas las operaciones realizadas anteriormente y se cancela la transacción. Piensa en una transferencia bancaria que comprende varias operaciones como sacar dinero de una cuenta, anotarlo en el extracto de esta cuenta, añadirlo a otra cuenta y anotarlo en el extracto de esta otra cuenta. Supón ahora que después de sacar el dinero de la cuenta de origen se produce un error:

Upload: mayra-olortegui

Post on 16-Dec-2015

215 views

Category:

Documents


0 download

DESCRIPTION

Todo sobre base de datos

TRANSCRIPT

DEFINICIN Y CONCEPTO DE BASE DE DATOS

Una base de datos es un sistema informtico a modo de almacn. En este almacn se guardan grandes volmenes de informacin. Por ejemplo, imaginemos que somos una compaa telefnica y deseamos tener almacenados los datos personales y los nmeros de telfono de todos nuestros clientes, que posiblemente sean millones de personas.

Esta informacin es de gran volumen de tamao: estamos hablando de veinte o treinta datos multiplicados por miles o millones de personas. La antigua gestin de datos se basaba en archivos informticos, pero para las necesidades de hoy en da hacen falta sistemas ms perfeccionados que son precisamente lo que se denomina sistema de base de datos. Llegamos a la conclusin de que necesitaramos una base de datos para automatizar el acceso a la informacin y poder acceder a ella de manera rpida y fcil adems de poder realizar cambios de una manera ms eficiente.

Toda base de datos debe tener una serie de caractersticas tales como seguridad (slo personas autorizadas podrn acceder a la informacin), integridad (la informacin se mantendr sin prdidas de datos), e independencia (esta caracterstica es fundamental ya que una buena base de datos debera ser independiente del sistema operativo o programas que interacten con ella). Hay ms caractersticas que debe reunir una base de datos como ser consistente (es decir, que la informacin se guarde sin duplicidades y de manera correcta). Y finalmente, las bases de datos actuales permiten el manejo correcto de transacciones. Esto significa que se ha de permitir efectuar varias operaciones sobre la base de datos pero tratadas a modo de una sola. Es decir, si en el conjunto de las operaciones de una transaccin se produce un error, entonces se deshacen todas las operaciones realizadas anteriormente y se cancela la transaccin. Piensa en una transferencia bancaria que comprende varias operaciones como sacar dinero de una cuenta, anotarlo en el extracto de esta cuenta, aadirlo a otra cuenta y anotarlo en el extracto de esta otra cuenta. Supn ahora que despus de sacar el dinero de la cuenta de origen se produce un error: la transaccin (proceso completo) no se ha completado, y en este caso la base de datos revierte lo que se haya hecho y deja la situacin tal y como estaba antes de comenzar la transaccin. Otro factor importante en las bases de datos es el tiempo de respuesta, que evidentemente debe ser lo ms rpido posible en devolver o anotar las informaciones. Piensa que una base de datos puede tener que estar enviando y anotando informacin correspondiente a decenas de personas conectadas a internet. Si la velocidad de respuesta no es buena, la pgina se quedara bloqueada.

HISTORIA E INICIOS

Los inicios de las base de datos modernas se deben sobre todo al desarrollo realizado por el ingls Edgar Frank Codd, que propuso el primer modelo terico relacional, es decir, defini cmo se deban relacionar los datos pertenecientes a una base de datos. Por otro lado IBM desarroll la primera definicin de lenguaje para base de datos (que defina cmo aadir y extraer informacin de una base de datos) llamado SEQUEL. Ms tarde SEQUEL acabara convirtindose en el lenguaje ms utilizado hoy en da con bases de datos, el SQL.

SQL se ha convertido en un lenguaje estndar para todas las bases de datos. Hoy da es empleado por prcticamente todas las bases de datos existentes. Como en todo lenguaje ha habido mejoras y por tanto nuevas versiones a lo largo del tiempo, pero aunque cada sistema de base de datos tenga sus propias particularidades, todos comparten muchas caractersticas comunes.

DOS GRANDES REAS

Dentro de SQL hay dos grandes reas llamadas DDL y DML. DDL (en ingls Data Definition Language) es la parte del lenguaje que permite la definicin de datos, por tanto son funciones que definen cmo van a ser los datos. Por ejemplo nosotros podemos definir que el dato de edad de una persona va a ser un nmero entero mientras que el dato nombre va a ser una cadena de texto. Los datos en una base de datos se almacenan en tablas formadas por filas y columnas. Las columnas nos indican el nombre de los datos y las las filas contendrn los valores de los datos propiamente dichos almacenados.

As un ejemplo de tabla muy simple podra ser una tabla de usuarios, donde vamos a almacenar la informacin de su nombre y telfono. Tendremos por tanto dos columnas y tantas filas como usuarios existan en nuestra base de datos

Tabla Usuario

NOMBRETELEFONO

Jos9434455444

Manuel6578545458

Miguel4987873487

Por otra parte est el rea de DML (en ingls Data Manipulation Language) o Lenguaje de Manipulacin de Datos, que como su nombre indica nos permite manipular la informacin y que bsicamente se compone de estas instrucciones o funciones:

Select: funcin que permite solicitar que se nos devuelva un dato o serie de datos.

Insert: funcin para insertar nuevas filas de informacin en una tabla.

Update: funcin para modificar una o varias filas ya existentes previamente.

Delete: funcin que borra una fila o un conjunto de filas de una tabla.

TIPOS DE BASE DE DATOSHay diversos tipos de base de datos dependiendo de los objetivos de su uso. Por ejemplo, son distintos objetivos mantener el historial mdico de los pacientes de un hospital o el registro de operaciones financiera de un banco. Pero en general los sistemas de base de datos ms populares son las bases de datos relacionales, aunque tambin se usan otros tipos de base de datos, entre los que cabe destacarlas denominadas base de datos orientadas a objetos.Las bases de datos relacionales se basan en la idea fundamental del uso de relaciones para definir los tipos de datos o informacin. As en nuestro ejemplo anterior podemos ver que un usuario queda definido por un nombre y un telfono es decir la relacin de nombre y telfono nos da un usuario.SISTEMA GESTORES DE BASE DE DATOSCon el uso y el incremento del tipo de base de datos se desarrollaron sistemas informticos que gestionan toda la funcionalidad de la base de datos propiamente dicha intentando que sea de la manera ms clara, directa y sencilla.Normalmente cada compaa de base de datos trae su propio SGBD (Sistema de Gestor de Base de Datos). Aunque tambin los hay genricos y muy buenos se recomienda que se utilice el propio de cada base de datos siempre que se pueda.En la categora de sistemas de datos libres o gratuitos podemos citar como ms importantesNOMBRE DE BASE DE DATOSLOGOTIPO

PostgreSQL

DB2-Express C

MySQL (edicin gratuita)

Otras bases de datos requieren pagar para poder utilizarlas. Entre ellas tenemos:NOMBRE DE BASE DE DATOSLOGOTIPO

MySQL (ediciones de pago)

dBase

IBM Informix

Microsoft SQL SERVER

Oracle

Sybase

De todas estas bases de datos la que ha conseguido mayor uso ha sido y sigue siendo Oracle, ya que desde 1979 ha sido lder indiscutible como base de datos para empresas de mediano y gran tamao.

Ahora bien, Oracle es una base de datos con buenas herramientas, potentsimo, efectivos y como buen sistema de base de datos trae muchos programas variados que permiten hacer de todo en el terreno de las bases de datos: consultas, informes, anlisis de datos, etc. Adems Oracle cumple ntegramente con el estndar SQL y suele ser el referente a la hora de aprender a programar bases de datos.

Pero hay muchas ocasiones en las que no se utiliza un sistema Oracle por varios motivos: por un lado, es un sistema bastante pesado lo que significa que requiere disponer de servidores (grandes ordenadores) casi en dedicacin exclusiva para este sistema de base de datos. Por otro lado, Oracle es una base de datos por cuyo uso hay que pagar y muchos usuarios y pequeas empresas prefieren usar bases de datos de uso gratuito o de menor coste. Como alternativa a Oracle de coste ms reducido y tambin muy efectiva, muchas empresas utilizan SQLServer, suministrada por Microsoft.

SQLServer es una solucin de coste y rendimiento medio. Suelen usarlo empresas que tienen un volumen de informacin elevado, pero sin llegar a ser excesivo, sobre todo si utilizan un servidor dedicado de Microsoft. SQL Server ha estado creciendo aunque quizs no con la proyeccin que se esperaba. Sin embargo, le ha ido comiendo terreno a las dems compaas en el sector medio de las bases de datos.

En el desarrollo web donde los sistemas de hosting o alojamiento de pginas web suelen ser compartidos para ahorrar costes, el sistema de bases de datos ms utilizado es quizs Mysql por su carcter de software libre de distribucin gratuita. Sobre todo esto tambin se debe a que la mayora de sitios web con hosting compartido son pequeas o medianas webs que no mueven grandsimos volmenes de datos, ya que suelen ser pequeas o como mucho medianas empresas.

MODELO ENTIDAD RELACIONModelo: es el proceso mediante el cual podemos identificar las propiedades dinmicas o estticas de un dominio de aplicacin con mira a su transformacin en un diseo interpretable en un sistema computarizado. Es el plasmar los requerimientos de los usuarios en un programa para poder implementarlo. Entidad: es el objeto sobre el cual se requiere mantener almacenar informacin.Relacin: es la asociacin significativa y estable entre dos entidades

Atributo: son las propiedades que describen y califican una entidad. Ej: Entidad cliente (nombre, apellido, direccin, edad, sexo) Las entidades se las representa mediante cajas que se colocan el nombre de la entidad con letras maysculas. Ej.:

Las relaciones se representan con lneas que conectan las cajas de las entidades. Ej.:

Los atributos se incluyen dentro de las cajas de las entidades y se escriben con minsculas. Ej.:

Entidades: se puede considerar entidades a los sujetos, objetos, a los eventos, a los lugares y a las abstracciones.

Relaciones: las relaciones tienen tres propiedades o caractersticas:

Grado o Cardinalidad: que se clasifica en

Opcionalidad: es la participacin obligatoria u opcional en la entidad de la relacin.

Leyenda: es una expresin que escribe el rol de cada entidad en la relacin.

Como se lee el Grado o Cardinalidad:

Uno a muchos: una instancia de la entidad A se relaciona con una o ms instancias de la entidad B.

Muchos a muchos: una instancia de la entidad A se relaciona con una o ms instancias de la entidad B y una instancia de la entidad B se relaciona con uno o ms instancias de le entidad B.

Uno a uno: una instancia de la entidad A se relaciona con uno y slo una instancia de la entidad B.

Relacin RecursivaUna instancia de una entidad se asocia con instancia de si misma, es opcional en los dos extremos, es decir, no hay el carcter de obligatorio. Ej.:

Atributo:Los atributos son empleados para identificar, describir, calificar expresar el estado de una entidad.Toda entidad posee un atributo o combinacin de atributos que se denomina "clave primaria" y que emplea para diferenciar cada instancia de los dems.Adicionalmente los atributos pueden ser obligatorios u opcionales. A los atributos que forman parte de la clave primaria se los identifica ante ponindoles el signo de nmero (#).

A los atributos obligatorio se les antepone el asterisco (*).

A los atributos opcionales se les antepone un circulo (o). Ejemplo:

HERENCIALa herencia consigue clasificar los tipos de datos (abstracciones) por variedad, acercando un poco ms el mundo de la programacin al modo de razonar humano.Este modo de razonar humano se denomina GENERALIZACIN, y da lugar a jerarquas de generalizacin/especializacin.La implementacin de estas jerarquas en un lenguaje de programacin da lugar a jerarquas de herencia.ConceptoLa herencia es el mecanismo de implementacin mediante el cual elementos ms especficos incorporan la estructura y comportamiento de elementos ms generales.Gracias a la herencia es posible especializar o extender la funcionalidad de una clase, derivando de ella nuevas clases.La herencia es siempre transitiva: una clase puede heredar caractersticas de superclases que se encuentran muchos niveles ms arriba en la jerarqua de herencia. Ejemplo: si la clase Perro es una subclase de la clase Mamfero, y la clase Mamfero es una subclase de la clase Animal, entonces el Perro heredar atributos tanto de Mamfero como de Animal.Principales Usos de la Herencia: Herencia de Implementacin

La herencia como reutilizacin de cdigo: Una clase derivada puede heredar comportamiento de una clase base, por tanto, el cdigo no necesita volver a ser escrito para la derivada.

Herencia de Interfaz

La herencia como reutilizacin de conceptos: Esto ocurre cuando una clase derivada sobrescribe el comportamiento definido por la clase base. Aunque no se comparte ese cdigo entre ambas clases, ambas comparten el prototipo del mtodo (comparten el concepto).Tipos de Herencia: Simple/Mltiple

Simple: nica clase base

Mltiple: ms de una clase base

De Implementacin/de interfaz

De implementacin: La implementacin de los mtodos es heredada. Puede sobre escribirse en las clases derivadas.Habilidad para que una clase herede parte o toda su implementacin de otra clase. Debe ser utilizada con cuidado.

De interfaz: Slo se hereda la interfaz (no hereda cdigo), a veces con una implementacin parcial o por defecto, no hay implementacin a nivel de clase base (interfaces en Javas, clases abstractas en C++).Se utiliza exclusivamente con el propsito de garantizar la sustituibilidad.SUB CLASE Y SUPERCLASE

En el modelo Entidad Relacin extendido las jerarquas de generalizacin/especializacin se denominan herencia y permite que una clase pueda incorporar atributos de otra clase, aadindolos a los que ya posee. La clase de la cual se hereda se llama superclase y la que hereda sub clase.Un TCNICO puede ser por ej. ANALISTA, PROGRAMADOR, CONSULTOR, etc. Tienen en comn que todos son TCNICOS pero tienen propiedades distintas (atributos) e interrelaciones adicionales con otras entidades segn sean ANALISTA, PROGRAMADOR, CONSULTOR, etc. Es decir una entidad tipo puede tener sub agrupaciones de entidades que es importante representar. Cada una de estas sub agrupaciones (ANALISTA, PROGRAMADOR, CONSULTOR) es una subclase de la entidad TCNICO. TCNICO es una superclase. Una entidad de la subclase es la misma que la de la superclase pero con un papel especfico. Toda ocurrencia de alguna subclase pertenece a la superclase y no al revs. Es decir todo ANALISTA es un TCNICO y no todo TCNICO es ANALISTA.

Retcula de especializacin:Un subtipo puede participar en varias relaciones superclase/subclase.Una subclase puede tener ms de una superclase

Donde un becario puede ser un estudiante o un empleado,

donde un jefe de proyecto puede ser un consultor o un asalariado.

GENERALIZACIN/ESPECIALIZACINEn algunos casos, hay ocurrencias de una entidad que tienen caractersticas propias especficas que nos interesa modelizar. Por ejemplo, puede ocurrir que se quiera tener constancia de qu coche de la empresa tienen asignado los empleados que son directivos; tambin que, de los empleados tcnicos, interese tener una interrelacin con una entidad proyecto que indique en qu proyectos trabajan y se desee registrar su titulacin. Finalmente, que convenga conocer la antigedad de los empleados administrativos. As mismo, habr algunas caractersticas comunes a todos los empleados: todos se identifican por un DNI, tienen un nombre, un apellido, una direccin y un nmero de telfono.La generalizacin/especializacin permite reflejar el hecho de que hay una entidad general, que denominamos entidad superclase, que se puede especializar en entidades subclase: La entidad superclase nos permite modelizar las caractersticas comunes de la entidad vista de una forma genrica.

Las entidades subclase nos permiten modelizar las caractersticas propias de sus especializaciones.Es necesario que se cumpla que toda ocurrencia de una entidad subclase sea tambin una ocurrencia de su entidad superclase.Denotamos la generalizacin/especializacin con una flecha que parte de las entidades subclase y que se dirige a la entidad superclase.Ejemplo de entidades superclase y subclaseEn la figura siguiente estn representadas la entidad superclase, que corresponde al empleado del ejemplo anterior, y las entidades subclase, que corresponden al directivo, al tcnico y al administrativo del mismo ejemplo.

En la generalizacin/especializacin, las caractersticas (atributos o interrelaciones) de la entidad superclase se propagan hacia las entidades subclase. Es lo que se denomina herencia de propiedades.En el diseo de una generalizacin/especializacin, se puede seguir uno de los dos procesos siguientes: Puede ocurrir que el diseador primero identifique la necesidad de la entidad superclase y, posteriormente, reconozca las caractersticas especficas que hacen necesarias las entidades subclase. En estos casos se dice que ha seguido un proceso de especializacin.

La alternativa es que el diseador modelice en primer lugar las entidades subclase y, despus, se d cuenta de sus caractersticas comunes e identifique la entidad superclase. Entonces se dice que ha seguido un proceso de generalizacin.La generalizacin/especializacin puede ser de dos tipos:a) Disjunta. En este caso no puede suceder que una misma ocurrencia aparezca en dos entidades subclase diferentes. Se denota grficamente con la etiqueta D.

b) Solapada. En este caso no tiene lugar la restriccin anterior. Se denota grficamente con la etiqueta S.Nuestro ejemplo de los empleados corresponde a una generalizacin/especializacin disjunta porque ningn empleado puede ser ms de un tipo. Se denota con la etiqueta D.Adems, una generalizacin/especializacin tambin puede ser:1. Total. En este caso, toda ocurrencia de la entidad superclase debe pertenecer a alguna de las entidades subclase. Esto se denota con la etiqueta T.

2. Parcial. En este caso no es necesario que se cumpla la condicin anterior. Se denota con la etiqueta P. La generalizacin/especializacin de los empleadosLa generalizacin/especializacin de los empleados es total porque suponemos que todo empleado debe ser directivo, tcnico o administrativo. Se denota con la etiqueta T.

Agregacin:

La agregacin es un tipo especial de relacin en el que se modela una semntica del tipo tiene o es parte de, en la que una entidad represente una entidad de mayor tamao (el todo), compuesta de entidades ms pequeas (las partes).