modulo base de datos

download modulo base de datos

of 74

Transcript of modulo base de datos

  • 8/7/2019 modulo base de datos

    1/74

  • 8/7/2019 modulo base de datos

    2/74

    MODULOBASEDEDATOS Pag.2

    CAPITULO I

    Introduccin a los conceptosde Bases de Datos

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    3/74

    MODULOBASEDEDATOS Pag.3

    1.1 Definicin de Base de Datos

    Todo buen curso necesita empezar con algunos conceptos bsicos para el mejor

    entendimiento del mismo, por lo tanto empezaremos con las definiciones queinvolucran a las bases de datos.

    Dato:Conjunto de caracteres con algn significado, pueden ser numricos, alfabticos,

    o alfanumricos.

    Informacin:Es un conjunto ordenado de datos los cuales son manejados segn la necesidad del

    usuario, para que un conjunto de datos pueda ser procesado eficientemente y pueda

    dar lugar a informacin, primero se debe guardar lgicamente en archivos.Conceptos bsicos de archivos computacionales.

    Campo:Es la unidad ms pequea a la cual uno puede referirse en un programa. Desde el

    punto de vista del programador representa una caracterstica de un individuo uobjeto.

    Registro:Coleccin de campos de iguales o de diferentes tipos.

    Archivo:Coleccin de registros almacenados siguiendo una estructura homognea.

    Base de datos:

    Es una coleccin de archivos interrelacionados, son creados con un DBMS. Elcontenido de una base de datos engloba a la informacin concerniente(almacenadasen archivos) de una organizacin, de tal manera que los datos estn disponibles paralos usuarios, una finalidad de la base de datos es eliminar la redundancia o al menos

    minimizarla. Los tres componentes principales de un sistema de base de datos son elhardware, el software DBMS y los datos a manejar, as como el personal encargadodel manejo del sistema.

    Sistema Manejador de Base de Datos. (DBMS)Un DBMS es una coleccin de numerosas rutinas de software interrelacionadas,

    cada una de las cuales es responsable de una tarea especfica.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    4/74

    MODULOBASEDEDATOS Pag.4

    El objetivo primordial de un sistema manejador base de datos es proporcionarun contorno que sea a la vez conveniente y eficiente para ser utilizado al extraer,almacenar y manipular informacin de la base de datos. Todas las peticiones deacceso a la base, se manejan centralizadamente por medio del DBMS, por lo queeste paquete funciona como interfase entre los usuarios y la base de datos.

    Esquema de base de datos:

    Es la estructura por la que esta formada la base de datos, se especifica por mediode un conjunto de definiciones que se expresa mediante un lenguaje especialllamado lenguaje de definicin de datos. (DDL)

    Administrador de base de datos (DBA):

    Es la persona o equipo de personas profesionales responsables del control y

    manejo del sistema de base de datos, generalmente tiene(n) experiencia en DBMS,diseo de bases de datos, Sistemas operativos, comunicacin de datos, hardware yprogramacin.

    Los sistemas de base de datos se disean para manejar grandes cantidades deinformacin, la manipulacin de los datos involucra tanto la definicin deestructuras para el almacenamiento de la informacin como la provisin demecanismos para la manipulacin de la informacin, adems un sistema de base dedatos debe de tener implementados mecanismos de seguridad que garanticen laintegridad de la informacin, a pesar de cadas del sistema o intentos de accesos noautorizados.

    Un objetivo principal de un sistema de base de datos es proporcionar a losusuarios finales una visin abstracta de los datos, esto se logra escondiendo ciertosdetalles de como se almacenan y mantienen los datos.

    1.2 Objetivos de los sistemas de bases de datos.

    Los objetivos principales de un sistema de base de datos es disminuir lossiguientes aspectos:

    Redundancia e inconsistencia de datos.Puesto que los archivos que mantienen almacenada la informacin son creados

    por diferentes tipos de programas de aplicacin existe la posibilidad de que si no secontrola detalladamente el almacenamiento, se pueda originar un duplicado deinformacin, es decir que la misma informacin sea ms de una vez en undispositivo de almacenamiento. Esto aumenta los costos de almacenamiento yacceso a los datos, adems de que puede originar la inconsistencia de los datos - es

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    5/74

    MODULOBASEDEDATOS Pag.5

    decir diversas copias de un mismo dato no concuerdan entre si -, por ejemplo: que seactualiza la direccin de un cliente en un archivo y que en otros archivospermanezca la anterior.

    Dificultad para tener acceso a los datos.

    Un sistema de base de datos debe contemplar un entorno de datos que le facilite alusuario el manejo de los mismos. Supngase un banco, y que uno de los gerentesnecesita averiguar los nombres de todos los clientes que viven dentro del cdigopostal 78733 de la ciudad. El gerente pide al departamento de procesamiento dedatos que genere la lista correspondiente. Puesto que esta situacin no fue previstaen el diseo del sistema, no existe ninguna aplicacin de consulta que permita estetipo de solicitud, esto ocasiona una deficiencia del sistema.

    Aislamiento de los datos.

    Puesto que los datos estn repartidos en varios archivos, y estos no pueden tenerdiferentes formatos, es difcil escribir nuevos programas de aplicacin para obtenerlos datos apropiados.

    Anomalas del acceso concurrente.

    Para mejorar el funcionamiento global del sistema y obtener un tiempo derespuesta ms rpido, muchos sistemas permiten que mltiples usuarios actualicenlos datos simultneamente. En un entorno as la interaccin de actualizacionesconcurrentes puede dar por resultado datos inconsistentes. Para prevenir esta

    posibilidad debe mantenerse alguna forma de supervisin en el sistema.

    Problemas de seguridad.

    La informacin de toda empresa es importante, aunque unos datos lo son ms queotros, por tal motivo se debe considerar el control de acceso a los mismos, no todoslos usuarios pueden visualizar alguna informacin, por tal motivo para que unsistema de base de datos sea confiable debe mantener un grado de seguridad quegarantice la autentificacin y proteccin de los datos. En un banco por ejemplo, elpersonal de nminas slo necesita ver la parte de la base de datos que tiene

    informacin acerca de los distintos empleados del banco y no a otro tipo deinformacin.

    Problemas de integridad.

    Los valores de datos almacenados en la base de datos deben satisfacer cierto tipode restricciones de consistencia. Estas restricciones se hacen cumplir en el sistemaaadiendo cdigos apropiados en los diversos programas de aplicacin.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    6/74

    MODULOBASEDEDATOS Pag.6

    1.3 Abstraccin de la informacin.

    Una base de datos es en esencia una coleccin de archivos relacionados entre s,de la cual los usuarios pueden extraer informacin sin considerar las fronteras de losarchivos.

    Un objetivo importante de un sistema de base de datos es proporcionar a losusuarios una visin abstracta de los datos, es decir, el sistema esconde ciertosdetalles de cmo se almacenan y mantienen los datos. Sin embargo para que elsistema sea manejable, los datos se deben extraer eficientemente.

    Existen diferentes niveles de abstraccin para simplificar la interaccin de losusuarios con el sistema; Interno, conceptual y externo, especficamente el dealmacenamiento fsico, el del usuario y el del programador.

    Nivel fsico.Es la representacin del nivel ms bajo de abstraccin, en ste se describe en

    detalle la forma en como de almacenan los datos en los dispositivos dealmacenamiento (por ejemplo, mediante sealadores o ndices para el accesoaleatorio a los datos).

    Nivel conceptual.

    El siguiente nivel ms alto de abstraccin, describe que datos son almacenadosrealmente en la base de datos y las relaciones que existen entre los mismos, describe

    la base de datos completa en trminos de su estructura de diseo. El nivel conceptualde abstraccin lo usan los administradores de bases de datos, quienes deben decidirqu informacin se va a guardar en la base de datos.

    Consta de las siguientes definiciones:

    1. Definicin de los datos: Se describen el tipo de datos y la longitud de campotodos los elementos direccionables en la base. Los elementos por definirincluyen artculos elementales (atributos), totales de datos y registrosconceptuales (entidades).

    2. Relaciones entre datos: Se definen las relaciones entre datos para enlazartipos de registros relacionados para el procesamiento de archivos mltiples.En el nivel conceptual la base de datos aparece como una coleccin de registros

    lgicos, sin descriptores de almacenamiento. En realidad los archivos conceptualesno existen fsicamente. La transformacin de registros conceptuales a registrosfsicos para el almacenamiento se lleva a cabo por el sistema y es transparente alusuario.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    7/74

    MODULOBASEDEDATOS Pag.7

    Nivel de visin.

    Nivel ms alto de abstraccin, es lo que el usuario final puede visualizar delsistema terminado, describe slo una parte de la base de datos al usuario acreditadopara verla. El sistema puede proporcionar muchas visiones para la misma base de

    datos.La interrelacin entre estos tres niveles de abstraccin se ilustra en la siguientefigura.

    1.4 Modelos de datos.

    Para introducirnos en este tema, empezaremos definiendo que es un modelo.modelo:

    Es una representacin de la realidad que contiene las caractersticas generales dealgo que se va a realizar. En base de datos, esta representacin la elaboramos deforma grfica.

    Qu es modelo de datos?

    Es una coleccin de herramientas conceptuales para describir los datos, lasrelaciones que existen entre ellos, semntica asociada a los datos y restricciones de

    consistencia.

    Los modelos de datos se dividen en tres grupos:

    Modelos lgicos basados en objetos.Modelos lgicos basados en registros.Modelos fsicos de datos.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    8/74

    MODULOBASEDEDATOS Pag.8

    Modelos lgicos basados en objetos.

    Se usan para describir datos en los niveles conceptual y de visin, es decir, coneste modelo representamos los datos de tal forma como nosotros los captamos en elmundo real, tienen una capacidad de estructuracin bastante flexible y permiten

    especificar restricciones de datos explcitamente. Existen diferentes modelos de estetipo, pero el ms utilizado por su sencillez y eficiencia es el modelo Entidad-Relacin.

    * Modelo Entidad-Relacin.

    Denominado por sus siglas como: E-R;Estemodelo representa a la realidad a travsde entidades, que son objetos que existen y que se distinguen de otros por suscaractersticas, por ejemplo: un alumno se distingue de otro por sus caractersticas

    particulares como lo es el nombre, o el numero de control asignado al entrar a unainstitucin educativa, as mismo, un empleado, una materia, etc. Las entidadespueden ser de dos tipos:

    Tangibles :Son todos aquellos objetos fsicos que podemos ver, tocar o sentir.

    Intangibles:Todos aquellos eventos u objetos conceptuales que no podemos ver, aunsabiendo que existen, por ejemplo: la entidad materia, sabemos queexiste, sin embargo, no la podemos visualizar o tocar.

    Las caractersticas de las entidades en base de datos se llaman atributos, porejemplo el nombre, direccin telfono, grado, grupo, etc. son atributos de la entidadalumno; Clave, nmero de seguro social, departamento, etc., son atributos de laentidad empleado. A su vez una entidad se puede asociar o relacionar con msentidades a travs de relaciones.

    Pero para entender mejor esto, veamos un ejemplo:

    Consideremos una empresa que requiere controlar a los vendedores y las ventas

    que ellos realizan; de este problema determinamos que los objetos o entidadesprincipales a estudiar son el empleado (vendedor) y el artculo (que es el producto enventa), y las caractersticas que los identifican son:

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    9/74

    MODULOBASEDEDATOS Pag.9

    Empleado: Artculo:

    Nombre DescripcinPuesto CostoSalario Clave

    R.F.C.

    La relacin entre ambas entidades la podemos establecer como Venta.

    Bueno, ahora nos falta describir como se representa un modelo E-R grficamente,la representacin es muy sencilla, se emplean smbolos, los cuales son:

    Smbolo Representa

    As nuestro ejemplo anterior quedara representado de la siguiente forma:

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    10/74

  • 8/7/2019 modulo base de datos

    11/74

    MODULOBASEDEDATOS Pag.11

    Ahora te preguntaras cmo se representan las relaciones entre las entidades eneste modelo?

    Existen dos formas de representarla; pero para ello necesitamos definir que es unallave primaria: Es un atributo el cual definimos como atributo principal, es una

    forma nica de identificar a una entidad. Por ejemplo, el RFC de un empleado sedistingue de otro por que los RFC no pueden ser iguales.

    Ahora si, las formas de representar las relaciones en este modelo son:

    1. Haciendo una tabla que contenga cada una de las llaves primarias de lasentidades involucradas en la relacin.

    Tomando en cuenta que la llave primaria del empleado es su RFC, y la llaveprimaria del articulo es la Clave.

    2. Incluyendo en alguna de las tablas de las entidades involucradas, la llave de laotra tabla

    * Modelo de red.

    Este modelo representa los datos mediante colecciones de registros y susrelaciones se representan por medio de ligas o enlaces, los cuales pueden verse comopunteros. Los registros se organizan en un conjunto de grficas arbitrarias.

    Ejemplo:

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    12/74

    MODULOBASEDEDATOS Pag.12

    Para profundizar en este tema visitemos: Modelo de datos de red.

    * Modelo jerrquico.

    Es similar al modelo de red en cuanto a las relaciones y datos, ya que estos se

    representan por medio de registros y sus ligas. La diferencia radica en que estnorganizados por conjuntos de arboles en lugar de grficas arbitrarias.

    Para profundizar ms en el tema visita: Modelo de datos jerrquico.

    Modelos fsicos de datos.

    Se usan para describir a los datos en el nivel ms bajo, aunque existenmuy pocos modelos de este tipo, bsicamente capturan aspectos de laimplementacin de los sistemas de base de datos. Existen dos clasificacionesde este tipo que son:

    Modelo unificador. Memoria de elementos.

    1.5 Instancias y esquemas.

    Con el paso del tiempo la informacin que se va acumulando y desechando en labase de datos, ocasiona que est cambie.

    Denominamos:

    Instancia.

    Al estado que presenta una base de datos en un tiempo dado. Vemoslo como unafotografa que tomamos de la base de datos en un tiempo t, despus de quetranscurre el tiempo t la base de datos ya no es la misma.

    Esquema.

    Es la descripcin lgica de la base de datos, proporciona los nombres de lasentidades y sus atributos especificando las relaciones que existen entre ellos. Es unbanco en el que se inscriben los valores que irn formando cada uno de los atributos.El esquema no cambia los que varan son los datos y con esto tenemos una nuevainstancia.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

    http://c/Program%20Files/WebCopier/Download/tema5_1.htmhttp://c/Program%20Files/WebCopier/Download/tema6_1.htmhttp://c/Program%20Files/WebCopier/Download/tema6_1.htmhttp://c/Program%20Files/WebCopier/Download/tema5_1.htm
  • 8/7/2019 modulo base de datos

    13/74

    MODULOBASEDEDATOS Pag.13

    Ejemplo:

    Considerando el ejemplo del vendedor que vende artculos, esquema e instanciasegn nuestro ejemplo, quedara:

    Esquema:

    { Vendedor : Nombre, puesto, salario, RFC }

    { Articulo : Clave, costo, descripcin }

    Instancia:

    Como podemos observar el esquema nos muestra la estructura en el cual se

    almacenaran los datos, en este caso en registros cuyos nombres de campos son: porparte del vendedor (Nombre, puesto,salario, RFC) y por el artculo (Clave,costo,descripcin); La instancia representa a una serie de datos almacenados en losregistros establecidos por el esquema, estos datos varan, no permanecen fijos en eltiempo.

    1.6 Independencia de los datos

    Se refiere a la proteccin contra los programas de aplicacin que puedan originar

    modificaciones cuando se altera la organizacin fsica o lgica de la base de datos.Existen 2 niveles de independencia de datos.

    Independencia fsica de datos:Es la capacidad de modificar el esquema fsico sin provocar que se vuelvan a

    escribir los programas de aplicacin.

    Independencia lgica de datos:Capacidad de modificar el esquema conceptual sin provocar que se vuelvan a

    escribir los programas de aplicacin.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    14/74

  • 8/7/2019 modulo base de datos

    15/74

    MODULOBASEDEDATOS Pag.15

    Respaldo y recuperacin.Consiste en contar con mecanismos implantados que permitan larecuperacin fcilmente de los datos en caso de ocurrir fallas en el sistemade base de datos.

    Control de concurrencia.Consiste en controlar la interaccin entre los usuariosconcurrentes para no afectar la inconsistencia de los datos.

    Seguridad e integridad.Consiste en contar con mecanismos que permitan elcontrol de la consistencia de los datos evitando que estosse vean perjudicados por cambios no autorizados o previstos.

    El DBMS es conocido tambin como Gestor de Base de datos.

    La figura muestra el DBMS como interfase entre la base de datos fsica y laspeticiones del usuario. El DBMS interpreta las peticiones de entrada/salida delusuario y las manda al sistema operativo para la transferencia de datos entre launidad de memoria secundaria y la memoria principal.

    En s, un sistema manejador de base de datos es el corazn de la base de datos yaque se encarga del control total de los posibles aspectos que la puedan afectar.

    1.10 Administrador de Bases de Datos

    Denominado por sus siglas como: DBA, Database Administrator.

    Es la persona encargada y que tiene el control total sobre el sistema de base dedatos, sus funciones principales son:

    Definicin de esquema.Es el esquema original de la base de datos se crea escribiendo un conjunto dedefiniciones que son traducidas por el compilador de DDL a un conjunto detablas que son almacenadas permanentemente en el diccionario de datos.

    Definicin de la estructura de almacenamiento del mtodo de acceso.Estructuras de almacenamiento y de acceso adecuados se crean escribiendo un

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    16/74

    MODULOBASEDEDATOS Pag.16

    conjunto de definiciones que son traducidas por e compilador del lenguaje dealmacenamiento y definicin de datos.

    Concesin de autorizacin para el acceso a los datos.Permite al administrador de la base de datos regular las partes de las bases dedatos que van a ser accedidas por varios usuarios.

    Especificacin de lmitantes de integridad.Es una serie de restricciones que se encuentran almacenados en una estructuraespecial del sistema que es consultada por el gestor de base de datos cada vezque se realice una actualizacin al sistema.

    1.11 Usuarios de las bases de datos.

    Podemos definir a los usuarios como toda persona que tenga todo tipo de contactocon el sistema de base de datos desde que este se disea, elabora, termina y se usa.

    Los usuarios que accesan una base de datos pueden clasificarse como:

    Programadores de aplicaciones. Los profesionales en computacin queinteractan con el sistema por medio de llamadas en DML (Lenguaje deManipulacin de Datos), las cuales estn incorporadas en un programa escrito enun lenguaje de programacin (Por ejemplo, COBOL, PL/I, Pascal, C, etc.)

    Usuarios sofisticados. Los usuarios sofisticados interactan con el sistema sinescribir programas. En cambio escriben sus preguntas en un lenguaje de consultasde base de datos.

    Usuarios especializados. Algunos usuarios sofisticados escriben aplicaciones debase de datos especializadas que no encajan en el marco tradicional deprocesamiento de datos.

    Usuarios ingenuos. Los usuarios no sofisticados interactan con el sistemainvocando a uno de los programas de aplicacin permanentes que se han escritoanteriormente en el sistema de base de datos, podemos mencionar al usuarioingenuo como el usuario final que utiliza el sistema de base de datos sin sabernada del diseo interno del mismo por ejemplo: un cajero.

    1.12 Estructura general del sistema.

    Un sistema de base de datos se encuentra dividido en mdulos cada uno de loscuales controla una parte de la responsabilidad total de sistema. En la mayora de loscasos, el sistema operativo proporciona nicamente los servicios ms bsicos y elsistema de la base de datos debe partir de esa base y controlar adems el manejocorrecto de los datos. As el diseo de un sistema de base de datos debe incluir lainterfaz entre el sistema de base de datos y el sistema operativo.

    Los componentes funcionales de un sistema de base de datos, son:

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    17/74

    MODULOBASEDEDATOS Pag.17

    Gestor de archivos.Gestiona la asignacin de espacio en la memoria del disco y de las estructuras dedatos usadas para representar informacin.

    Manejador de base de datos.Sirve de interfaz entre los datos y los programas de aplicacin.

    Procesador de consultas.Traduce las proposiciones en lenguajes de consulta a instrucciones de bajo nivel.Adems convierte la solicitud del usuario en una forma ms eficiente.

    Compilador de DDL.Convierte las proposiciones DDL en un conjunto de tablas que contienenmetadatos, estas se almacenan en el diccionario de datos.

    Archivo de datos.En l se encuentran almacenados fsicamente los datos de una organizacin.

    Diccionario de datos.Contiene la informacin referente a la estructura de la base de datos.

    ndices.Permiten un rpido acceso a registros que contienen valores especficos. Unaforma grfica de representar los componentes antesmencionados y la relacin que existe entre ellos sera la siguiente.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    18/74

    MODULOBASEDEDATOS Pag.18

    EVALUACIN:

    1.Un campo (como nombre, direccin, telfono), de un registro, representa a: Una entidad ( ) Un atributo de una entidad ( ) Una relacin ( )

    2.La abstraccin de la informacin se refiere a: Proporcionar a todos los usuarios de la base de datos la

    informacin global de la misma ( ) Es una serie de datos en un instante de la base de datos ( ) Proporciona a cada usuario la vista de la informacin concernientea una base de datos segn su relacin con la misma ( )

    3.Una instancia es: Una serie de informacin en un momento dado de la base de datos

    ( ) La informacin proporcionada al realizar una consulta a la base de

    datos ( ) La estructura lgica de la base de datos ( )

    4.El DDL es el lenguaje que nos permite: Realizar consultas, modificaciones y alteraciones a la informacin de la B.D (

    ) Establecer la integridad de la base de datos ( ) Definir la estructura conceptual y externa de los datos que contendr la B.D (

    )

    5.El manejador de Base de Datos (DBMS) Es la persona encargada del Sistema de Base de Datos ( ) Es el software que funciona como interfaz entre los programas de aplicacin

    de base de datos y los usuarios ( ) Es un sistema operativo especial para base de datos ( )

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    19/74

    MODULOBASEDEDATOS Pag.19

    CAPITULO IIModelo Entidad-Relacin

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    20/74

    MODULOBASEDEDATOS Pag.20

    El modelo E-R se basa en una percepcin del mundo real, la cual esta formada por

    objetos bsicos llamados entidades y las relaciones entre estos objetos as como lascaractersticas de estos objetos llamados atributos.

    2.1 Entidades y conjunto de entidades

    Una entidades un objeto que existe y se distingue de otros objetos de acuerdo asus caractersticas llamadas atributos . Las entidades pueden ser concretas como unapersona o abstractas como una fecha.

    Un conjunto de entidades es un grupo de entidades del mismo tipo. Por ejemplo

    el conjunto de entidades CUENTA, podra representar al conjunto de cuentas de unbanco X, o ALUMNO representa a un conjunto de entidades de todos los alumnosque existen en una institucin.

    Una entidad se caracteriza y distingue de otra por los atributos, en ocasionesllamadas propiedades, que representan las caractersticas de una entidad. Losatributos de una entidad pueden tomar un conjunto de valores permitidos al que se leconoce como dominio del atributo. As cada entidad se describe por medio de unconjunto de parejas formadas por el atributo y el valor de dato. Habr una parejapara cada atributo del conjunto de entidades.

    Ejemplo:Hacer una descripcin en pareja para la entidad alumno con los atributos

    No_control, Nombre y Especialidad.

    Nombre_atributo, Valor

    No_control , 96310418

    Nombre , Snchez Osuna Ana

    Esp , LIO considerando el ejemplo del Vendedor cuyos aributos son: RFC, Nombre, Salario.

    Nombre_atributo, Valor

    RFC , COMD741101YHR

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    21/74

    MODULOBASEDEDATOS Pag.21

    Nombre , Daniel Coln Morales

    Salario , 3000

    2.2 Relaciones y conjunto de relaciones.

    Unarelacin es la asociacin que existe entre dos a ms entidades.

    Un conjunto de relaciones es un grupo de relaciones del mismo tipo.

    La cantidad de entidades en una relacin determina el grado de la relacin, porejemplo la relacin ALUMNO-MATERIA es de grado 2, ya que intervienen laentidad ALUMNO y la entidad MATERIA, la relacin PADRES, puede ser degrado 3, ya que involucra las entidades PADRE, MADRE e HIJO.

    Aunque el modelo E-R permite relaciones de cualquier grado, la mayora de lasaplicaciones del modelo slo consideran relaciones del grado 2. Cuando son de taltipo, se denominan relaciones binarias.

    La funcin que tiene una relacin se llama papel, generalmente no se especificanlos papeles o roles, a menos que se quiera aclarar el significado de una relacin.

    Diagrama E-R (sin considerar los atributos, slo las entidades) para los modelosejemplificados:

    2.3 Limitantes de mapeo.

    Existen 4 tipos de relaciones que pueden establecerse entre entidades, las cualesestablecen con cuantas entidades de tipo B se pueden relacionar una entidad de tipoA:

    Tipos de relaciones:

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    22/74

    MODULOBASEDEDATOS Pag.22

    Relacin uno a uno. Se presenta cuando existe una relacin como su nombre loindica uno a uno, denominado tambin relacin de matrimonio. Una entidad deltipo A solo se puede relacionar con una entidad del tipo B, y viceversa;

    Por ejemplo: la relacin asignacin de automvil que contiene a las entidades

    EMPLEADO, AUTO, es una relacin 1 a 1, ya que asocia a un empleado con unnico automvil por lo tanto ningn empleado posee ms de un automvil asignado,y ningn vehculo se asigna a ms de un trabajador.

    Es representado grficamente de la siguiente manera:

    A: Representa a una entidad de cualquier tipo diferente a una entidad B.R: en el diagrama representa a la relacin que existe entre las entidades.El extremo de la flecha que se encuentra punteada indica el uno de la relacin, eneste caso, una entidad A ligada a una entidad B.

    Relacin uno a muchos. Significa que una entidad del tipo A puede relacionarsecon cualquier cantidad de entidades del tipo B, y una entidad del tipo B solopuede estar relacionada con una entidad del tipo A.

    Su representacin grfica es la siguiente:

    Ntese en este caso que el extremo punteado de la flecha de la relacin de A y B,indica una entidad A conectada a muchas entidades B.

    Muchos a uno. Indica que una entidad del tipo B puede relacionarse concualquier cantidad de entidades del tipo A, mientras que cada entidad del tipo Asolo puede relacionarse con solo una entidad del tipo B.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    23/74

    MODULOBASEDEDATOS Pag.23

    A los tipos de relaciones antes descritos, tambin se le conoce como cardinalidad.

    La cardinalidad nos especifica los tipos de relaciones que existen entre lasentidades en el modelo E-R y establecer con esto las validaciones necesarias paraconseguir que los datos de la instancia (valor nico en un momento dado de una

    base de datos) correspondan con la realidad.

    Algunos ejemplos de cardinalidades de la vida comn pueden ser:

    Uno a uno.

    El noviazgo, el RFC de cada persona, El CURP personal, El acta de nacimiento,ya que solo existe un solo documento de este tipo para cada una de las diferentespersonas.

    Uno a muchos.

    Cliente Cuenta en un banco, Padre-Hijos, Camin-Pasajeros, zoologico-animales, rbol hojas.

    Muchos a muchos.

    Arquitecto proyectos, fiesta personas, estudiante materias.

    NOTA:Cabe mencionar que la cardinalidad para cada conjunto de entidades depende del

    punto de vista que se le de al modelo en estudio, claro esta, sujetndose a la realidad.

    Otra clase de limitantes lo constituye la dependencia de existencia.Refirindonos a las mismas entidades A y B, decimos que si la entidad A dependede la existencia de la entidad B, entonces A es dependiente de existencia por B, sieliminamos a B tendramos que eliminar por consecuente la entidad A, en este casoB es la entidad Dominante y A es la entidad subordinada.

    2.4 Llaves primarias.

    Como ya se ha mencionado anteriormente, la distincin de una entidad entre otrase debe a sus atributos, lo cual lo hacen nico. Una llave primaria es aquel atributoel cual consideramos clave para la identificacin de los dems atributos quedescriben a la entidad. Por ejemplo, si consideramos la entidad ALUMNO delInstituto Tecnolgico de La Paz, podramos tener los siguientes atributos: Nombre,Semestre, Especialidad, Direccin, Telfono, Nmero de control, de todos estosatributos el que podremos designar como llave primaria es el nmero de control, yaque es diferente para cada alumno y este nos identifica en la institucin.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    24/74

    MODULOBASEDEDATOS Pag.24

    Claro que puede haber ms de un atributo que pueda identificarse como llaveprimaria en este caso se selecciona la que consideremos ms importante, los demsatributos son denominados llaves secundarias.

    Una clave o llave primaria es indicada grficamente en el modelo E-R con una

    lnea debajo del nombre del atributo.

    2.5 Diagrama Entidad-Relacin

    Denominado por sus siglas como: E-R; Este modelo representa a la realidad atravs de un esquema grfico empleando los terminologa de entidades, que sonobjetos que existen y son los elementos principales que se identifican en elproblema a resolver con el diagramado y se distinguen de otros por suscaractersticas particulares denominadas atributos, el enlace que que rige la uninde las entidades esta representada por la relacin del modelo.

    Recordemos que un rectngulo nos representa a las entidades; una elipse a losatributos de las entidades, y una etiqueta dentro de un rombo nos indica la relacinque existe entre las entidades, destacando con lneas las uniones de estas y que lallave primaria de una entidad es aquel atributo que se encuentra subrayado.

    A continuacin mostraremos algunos ejemplos de modelos E-R, considerando lascardinalidades que existen entre ellos:

    Relacin Uno a Uno.

    Problema:

    Disear el modelo E-R, para la relacin Registro de automvil que consiste enobtener la tarjeta de circulacin de un automvil con los siguientes datos:-Automvil- Modelo, Placas, Color - Tarjeta de circulacin -Propietario, No_serie,Tipo.

    Indicamos con este ejemplo que existe una relacin de pertenencia de uno a uno, yaque existe una tarjeta de circulacin registrada por cada automvil.

    En este ejemplo, representamos que existe un solo presidente para cada pas.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    25/74

    MODULOBASEDEDATOS Pag.25

    Relacin muchos a muchos.

    El siguiente ejemplo indica que un cliente puede tener muchas cuentas, pero queuna cuenta puede llegar a pertenecer a un solo cliente (Decimos puede, ya queexisten cuentas registradas a favor de ms de una persona).

    2.6 Reduccin de diagramas E-R a tablas

    Un diagrama E-R, puede ser representado tambin a travs de una coleccin detablas. Para cada una de las entidades y relaciones existe una tabla nica a la que sele asigna como nombre el del conjunto de entidades y de las relacionesrespectivamente, cada tabla tiene un nmero de columnas que son definidas por lacantidad de atributos y las cuales tienen el nombre del atributo.

    La transformacin de nuestro ejemplo Venta en la que intervienen las entidadesde Vendedor con los atributos RFC, nombre, puesto, salario y Artculo con losatributos Clave, descripcin, costo.

    Cuyo diagrama E-R es el siguiente:

    Entonces las tablas resultantes siguiendo la descripcin anterior son:

    Tabla Empleado

    Nombre Puesto Salario RFC

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    26/74

    MODULOBASEDEDATOS Pag.26

    Tefilo Vendedor 2000 TEAT701210XYZ

    Auxiliarventas

    Cesar 1200 COV741120ABC

    Tabla artculo

    Clave Descripcin Costo

    A100 Abanico 460

    Colchamatrimonial

    C260 1200

    Tabla Venta

    RFC ClaveTEAT701210XYZ C260

    COV741120ABC A100

    Ntese que en la tabla de relacin - Venta -, contiene como atributos a las llavesprimarias de las entidades que intervienen en dicha relacin, en caso de que existaun atributo en las relaciones, este atributo es anexado como una fila ms de la tabla;

    Por ejemplo si anexamos el atributo fecha a la relacin venta, la tabla que seoriginaria sera la siguiente:

    RFC Clave Fecha

    TEAT701210XYZ C260 10/12/96

    COV741120ABC A100 11/12/96

    2.7 Generalizacin y especializacin

    Generalizacin.

    Es el resultado de la unin de 2 o ms conjuntos de entidades (de bajo nivel) paraproducir un conjunto de entidades de ms alto nivel. La generalizacin se usa parahacer resaltar los parecidos entre tipos de entidades de nivel ms bajo y ocultar susdiferencias.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    27/74

    MODULOBASEDEDATOS Pag.27

    La generalizacin consiste en identificar todos aquellos atributos iguales de unconjunto de entidades para formar una entidad(es) global(es) con dichos atributossemejantes, dicha entidad(es) global(es) quedara a un nivel ms alto al de lasentidades origen.

    Ejemplo:Tomando el ejemplo del libro de fundamentos de base de datos de Henry F.

    Korth.

    Donde:Se tiene las entidades Cta_Ahorro y Cta_Cheques, ambas tienen los atributos

    semejantes de No_Cta y Saldo, aunque adems de estos dos atributos, Cta_Ahorrotiene el atributo Tasa_Interes y Cta_Cheques el atributo Saldo_Deudor. De todosestos atributos podemos juntar (generalizar) No_Cta y Saldo que son iguales en

    ambas entidades.

    Entonces tenemos:

    Podemos leer esta grfica como: La entidad Cta_Ahorro hereda de la entidadCUENTA los atributos No_Cta y saldo, adems del atributo de TasaInteres, deforma semejante Cta_cheque tiene los atributos de No_Cta, Saldo y SaldoDeudor.

    Como podemos observar la Generalizacin trata de eliminar la redundancia(repeticin) de atributos, al englobar los atributos semejantes. La entidad(es) de bajonivel cuentan (heredan) todos los atributos correspondientes.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    28/74

    MODULOBASEDEDATOS Pag.28

    Especializacin:

    Eselresultadodetomarunsubconjuntodeentidadesdealtonivelparaformarunconjuntodeentidadesdemsbajonivel.*Enlageneralizacincadaentidaddealtoniveldebesertambinunaentidaddebajonivel.Laespecializacinnotieneestelimitante.*serepresentapormediodeuntringulodenominadoconlaetiqueta"ISA",sedistinguedela

    generalizacinporelgrosordelaslneasqueconectanaltringuloconlasentidades.*Laespecializacindenotaladiferenciaentrelosconjuntosdeentidadesdealtoybajonivel.

    2.8 Agregacin.

    La agregacin surge de la limitacin que existe en el modelado de E-R, al no

    permitir expresar las relaciones entre relaciones de un modelo E-R en el caso de queuna relacin X se quiera unir con una entidad cualquiera para formar otra relacin.

    La Generalizacin consiste en agrupar por medio de un rectngulo a la relacin(representada por un rombo) junto con las entidades y atributos involucrados en ella,para formar un grupo que es considerado una entidad y ahora s podemosrelacionarla con otra entidad.

    Para ejemplificar lo anterior consideremos el ejemplo del libro de fundamentos deBase de Datos de Henry F. Korth. En donde el problema consiste en que existen

    trabajando muchos empleados que trabajan en diferentes proyectos, perodependiendo del trabajo que realiza en pueden llegar a utilizar un equipo omaquinaria; en este problema intervienen 3 entidades: Empleado, Proyecto yMaquinaria, el diagrama E-R correspondiente es:

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    29/74

    MODULOBASEDEDATOS Pag.29

    Como el modelo E-R no permite la unin entre dos o ms relaciones, la relacintrabajo es englobada como si fuera una entidad ms de la relacin usa, grficamentequeda como:

    Ahora podemos decir que la entidad trabajo se relaciona con la entidad maquinaria atravs de la relacin usar. Para indicarnos que un trabajo usa un determinado equipoo maquinaria segn el tipo de trabajo que se trate.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    30/74

    MODULOBASEDEDATOS Pag.30

    EVALUACIN:

    1.Las entidades en el modelo E R representan a: Los elementos principales que interviene en el problema a modelar ( ) Las caractersticas que identifican a los elementos que intervienen en el

    problema ( ) El enlace entre los elementos que interviene en el modelo ( )2.Las limitantes del mapeo nos definen:

    El tipo de relacin o cardinalidad que se presenta en el modelo E R ( ) Las restricciones de los valores que pueden tomar las entidades ( ) Define el dominio de los atributos ( )3. Una llave primaria es: El atributo de una entidad que se considera como

    principal y que identifica a dicha entidad entre otras ( ) Cualquier atributo de una entidad ( ) Es el atributo de la relacin ( )4. La transformacin de un diagrama E R a

    tablas es un proceso sencillo que involucra: Generar tantas tablas como relaciones se tenga en

    el diagrama considerando sus atributos como las columnas de las mismas ( ) Generar una tabla por cada entidad y relacin que

    exista en el diagrama tomando los atributos de cada una de ellas comocolumnas de las mismas ( )

    Crear una tabla por cada entidad tomando sucampo llave para generar un ndice para acceder a los datos ( )

    5. La generalizacin consiste en: Englobar un conjunto de entidades para formar una

    entidad global ( )

    Dividir una entidad global en atributos individuales( )

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    31/74

    MODULOBASEDEDATOS Pag.31

    Identificar a aquellos atributos iguales de unconjunto de entidades para formar una entidad global de alto nivel a la cualhacen referencia las dems entidades ( )

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    32/74

    MODULOBASEDEDATOS Pag.32

    CAPITULO IIIModelo Relacional

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    33/74

    MODULOBASEDEDATOS Pag.33

    La ventaja del modelo relacional es que los datos se almacenan, al menosconceptualmente, de un modo en que los usuarios entienden con mayor facilidad.Los datos se almacenan como tablas y las relaciones entre las filas y las tablas son

    visibles en los datos. Este enfoque permite a los usuarios obtener informacin de labase de datos sin asistencia de sistemas profesionales de administracin deinformacin.

    Las caractersticas ms importantes de los modelos relacionales son:

    a. Es importante saber que las entradas en la tabla tienen un solo valor (sonatmicos); no se admiten valores mltiples, por lo tanto la interseccin de unrengln con una columna tiene un solo valor, nunca un conjunto de valores.

    b. Todas las entradas de cualquier columna son de un solo tipo. Por ejemplo,una columna puede contener nombres de clientes, y en otra puede tenerfechas de nacimiento. Cada columna posee un nombre nico, el orden de lascomunas no es de importancia para la tabla, las columnas de una tabla seconocen como atributos. Cada atributo tiene un dominio, que es unadescripcin fsica y lgica de valores permitidos.

    c. No existen 2 filas en la tabla que sean idnticas.d. La informacin en las bases de datos son representados como datos

    explcitos, no existen apuntadores o ligas entre las tablas.

    En el enfoque relacional es sustancialmente distinto de otros enfoques entrminos de sus estructuras lgicas y del modo de las operaciones de entrada/salida.En el enfoque relacional, los datos se organizan en tablas llamadas relaciones, cadauna de las cuales se implanta como un archivo. En terminologa relacional una filaen una relacin representa un registro o una entidad; Cada columna en una relacinrepresenta un campo o un atributo.

    As, una relacin se compone de una coleccin de entidades(o registros) cuyospropietarios estn descritos por cierto nmero de atributos predeterminadosimplantados como campos.

    3.1 Estructura de las bases de datos relacionales

    La arquitectura relacional se puede expresar en trminos de tres niveles deabstraccin: nivel interno, conceptual y de visin.

    La arquitectura relacional consta de los siguientes componentes:

    1. Modelo relacional de datos:FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    34/74

    MODULOBASEDEDATOS Pag.34

    En el nivel conceptual, el modelo relacional de datos est representado poruna coleccin de relaciones almacenadas. Cada registro de tipo conceptual enun modelo relacional de datos se implanta como un archivo almacenadodistinto.

    2. Submodelo de datos:Los esquemas externos de un sistema relacional se llaman submodelos

    relacionales de datos; cada uno consta de uno a ms escenarios (vistas) paradescribir los datos requeridos por una aplicacin dada. Un escenario puedeincluir datos de una o ms tablas de datos. Cada programa de aplicacin estprovisto de un buffer ("Area de trabajo de usuario") donde el DBMS puededepositar los datos recuperados de la base para su procesamiento, o puedeguardar temporalmente sus salidas antes de que el DBMS las escriba en labase de datos.

    3. Esquema de almacenamiento:En el nivel interno, cada tabla base se implanta como un archivo

    almacenado. Para las recuperaciones sobre las claves principal o secundariase pueden establecer uno o ms ndices para accesar un archivo almacenado.

    4. Sublenguaje de datos:Es un lenguaje de manejo de datos para el sistema relacional, el lgebra

    relacional y clculo relacional, ambos lenguajes son "relacionalmente

    completos", esto es, cualquier relacin que pueda derivarse de una o mstablas de datos, tambin se puede derivar con u solo comando delsublenguaje. Por tanto, el modo de operacin de entrada/Salida en un sistemarelacional se puede procesar en la forma: una tabla a la vez en lugar de: unregistro a la vez; en otras palabras, se puede recuperar una tabla en vez de unsolo registro con la ejecucin de un comando del sublenguaje de datos.

    3.2 Lenguajes de consulta formales.

    Los lenguajes de consultas:

    Son los lenguajes en el que los usuarios solicitan informacin de la base dedatos. Estos lenguajes son generalmente de ms alto nivel que los lenguajes deprogramacin. Los lenguajes de consulta pueden clasificarse comorocedimentales y no procedimentales;

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    35/74

    MODULOBASEDEDATOS Pag.35

    En el lenguaje del tipo procedimental el usuario da las instrucciones alsistema para que realice una secuencia de operaciones en la base de datos paracalcular el resultado deseado.

    En el lenguaje no procedimental, el usuario describe la informacin deseada

    sin dar un procedimiento especfico para obtener dicha informacin.

    El lgebra relacional es un lenguaje de consulta formal procedimental, ellgebra relacional define operadores que funcionan sobre las tablas (de unamanera similar a los operadores +,-,etc. del lgebra comn ) para llegar alresultado deseado. El lgebra relacional es difcil de utilizar, debido en parte aque es procedimental, esto es, al utilizar el lgebra relacional no slo debemossaber lo que queremos, tambin cmo obtenerlo.

    En el proceso de bases de datos comerciales el lgebra relacional se utiliza de

    manera poco frecuente. Aunque unos cuantos productos exitosos DBMS stienen opciones del lgebra relacional, stas son poco utilizadas en vista de sucomplejidad.

    El lgebra relacional toma dos o ms tablas como entrada produce una nuevatabla como resultado de la serie de operaciones. Las operaciones fundamentalesen el lgebra relacional son seleccionar, proyectar, producto cartesiano,renombrar, unin y diferencia de conjuntos. Adems de las operacionesfundamentales existen otras operaciones como son: interseccin de conjuntos,roducto natural, divisin y asignacin.

    ** Operaciones fundamentales **Las operaciones seleccionar, proyectar y renombrar, son denominadas

    operaciones unitarias ya que operan sobre una tabla. Las otras operacionesoperan sobre pares de relaciones y, por tanto se llaman operaciones binarias.

    * La operacin seleccionar.

    Esta operacin selecciona tuplas (filas) que satisfacen unainstruccin(condicin) dada de una tabla. Se representa por medio de parntesis.

    (nombre_tabla WHERE condicin);

    La oracin de la instruccin despus de la clusula WHERE puede incluircondiciones de igualdad como =,=,,>=,

  • 8/7/2019 modulo base de datos

    36/74

    MODULOBASEDEDATOS Pag.36

    * La operacin Proyectar.

    Consiste en identificar las columnas (atributos en el modelo E-R) que nos

    interesa conocer. Se representa por medio de corchetes. Si este se omite indicaraque se desea obtener todas las columnas de la tabla en cuestin.

    (nombre_tabla WHERE condicin) [Nombre_atributo];

    * La operacin Producto cartesiano.

    Consiste en multiplicar todas las tuplas entre tablas, obteniendo comoresultado una tabla que contiene todas las columnas de ambas tablas. Seespecifica con la orden TIMES.

    Nombre_tabla TIMES Nombre_tabla;

    * La operacin Join.

    Consiste en obtener el producto (multiplicacin) de todas las tuplas de unatabla con las de la otra, para posteriormente evaluar aquellas cuyo campo encomn sea igual generando como resultado una nueva tabla que tiene comotuplas (renglones) que cumplen con la condicin establecida. Se representa conla orden JOIN.

    La orden Join es colocada entre las dos tablas a multiplicar despus de que laprimera especifica la operacin de seleccin y proyeccin.

    (Tabla)[atributo] JOIN (Tabla)[Atributo];

    * La operacin Divide.

    Toma dos relaciones, una binaria y la otra unaria, construye una relacinformada por todos los valores de un atributo de la relacin binaria queconcuerdan (en el otro atributo) con todos los valores de la relacin unaria. Se

    representa con la orden DIVIDEBY.NomTablaBin DIVIDEBY NomTablaUna

    * La operacin Diferencia.

    Construye una relacin formada por todas las tuplas (filas) de la primerarelacin que no aparezcan en la segunda de las dos relaciones especificadas. Se

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    37/74

    MODULOBASEDEDATOS Pag.37

    representa con la orden MINUS.

    Nom_tablaA MINUS NomTablaB;

    * La operacin Unin.

    Construye una relacin formada por todas las tuplas de la primera relacin ytodas las tuplas de la segunda relacin. El requisito es que ambas relacionessean del mismo tipo.

    Nom_TablaA UNION Nom_tablaB

    * La operacin interseccin.

    Construye una nueva tabla compuesta por todas las tuplas que estn en laprimera y segunda tabla.

    Nom_TablaA INTERSEC Nom_tablaB

    Ejemplos:

    Para ejemplificar las notaciones anteriores consideremos el ejemploALUMNO - cursa - MATERIA, que tienen los siguientes atributos:NControl NControl ClaveNombreA Clave NombreMEspecialidad Calif Crditos

    Direccin

    Representando en tablas a los atributos quedaran de la siguiente forma:

    Tabla alumno:

    NControl NombreA Especialidad Direccin

    Tabla cursa:

    NControl Clave Calif

    Tabla materia:

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    38/74

    MODULOBASEDEDATOS Pag.38

    Clave NombreM Crditos

    1.- Obtener el nombre de todos los alumnos que estn inscritos en la Institucin.

    (Alumno) [NombreA];

    2.- Obtener el nombre de los alumnos que cursan la materia Base de datos 1cuya clave es SCB9333

    (Alumno) JOIN (Cursa where Clave='SCB9333') [NombreA];

    3.- Obtener los nombres de los alumnos de la especialidad de Ing. Sistemas que

    cursan la materia Base de datos 2.

    ((Alumno)[especialidad,NombreA,NControl]JOIN (Cursa) where especialidad = 'ISC')[Clave,NombreA])JOIN (Materia where NombreM='BD2')[NombreA];

    En el lgebra relacional no solo debemos saber lo que queremos si notambin como obtenerlo, al realizar las consultas debemos especificar elnombre de la tabla a utilizar en caso de que deseemos realizar una operacincon un atributo que las otras tablas no tienen debemos "arrastrar" dicho atributo

    para poder utilizarlo, como lo es en el caso anterior, en donde requerimos elnombre del alumno que solamente lo tiene la tabla alumno, pro tambindeseamos que se cumpla la condicin NombreM=BD2, como no podemosrelacionar directamente a ambas tablas empleamos la tabla cursa de dondeobtenemos la clave de las materias y mantenemos el nombre del alumno(NombreA) finalmente con la orden JOIN se combinan las tablas por el campocomn que tienen que es clave as que obtenemos una tabla con todas lasmaterias que cursan los alumnos de ISC, de donde seleccionamos solo aquellaque se llame BD2 con la orden Join obtenemos esta nueva tabla de donde porltimo proyectamos el atributo NombreA que hemos venido "arrastrando".

    Ejercicios propuestos:

    Considere el modelo E-R del caso Mdico - atiende - Paciente.

    Realizar:

    * La conversin a tablas del modelo E-R.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    39/74

    MODULOBASEDEDATOS Pag.39

    * Las siguientes consultas en lgebra relacional.

    1.- Obtener el nombre de Todos los mdicos.

    2.- Obtener el nombre de todos los pacientes > de 18 aos.

    3.- Obtener todos los datos de todos los pacientes.

    4.- Obtener losnombres de todos los pacientes que consultan con el mdico concdula profesional ABC001.

    5.- Obtener los nombres de los mdicos que atienden al paciente John Smith.

    6.- Suponiendo que el hospital de la Ciudad de la Paz tiene una tabla depacientes similar a la del hospital de San Jos, obtener el nombre y la afiliacinde estos pacientes.

    7.- Obtener las combinaciones de pacientes y mdicos exceptola de aquellosmdicos cuya especialidad sea Oftalmologa.

    Recuerde que tenemos que indicar las tablas a utilizar entre parntesis y losatributos a proyectar entre corchetes, despus podemos utilizar las ordenesTimes, Join, Divide, Minus, Union, Intersec, segn sea el caso a resolver; sirequiere manipular atributos que no tengan las otras tablas "arrstrelos"proyectando siempre entre cada operacin dicho atributo. De cada operacin ocombinacin que realice entre las tablas se genera una tabla nueva que cumple

    con las condiciones que establece.

    (Ver Resultado1).

    3.3 Lenguajes de consultas comerciales

    Un lenguaje de consulta comercial proporciona una interfaz ms amigable alusuario. Un ejemplo de este tipo de lenguaje es el SQL, (Structured QueryLanguaje, Lenguaje de Consulta Estructurado).

    Las partes ms importantes del SQL son:DDL: Lenguaje de definicin de datos (que nos permite crear las estructuras )

    DML: Lenguaje de manipulacin de datos (que nos permite tener acceso a lasestructuras para suprimir, modificar e insertar)

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    40/74

    MODULOBASEDEDATOS Pag.40

    En este apartado estudiaremos la forma bsica para realizar consultas conSQL, en el apartado 3.4: Modificacin de la base de datos, estudiaremos loque concierne a la modificacin de las tablas.

    La estructura bsica de una expresin en SQL contiene 3 partes, Select, From

    y Where.

    La clusula Select se usa para listar los atributos que se desean en el resultadode una consulta.

    From, Lista las relaciones que se van a examinar en la evaluacin de laexpresin.

    Where, es la definicin de las condiciones a las que puede estar sujeta unaconsulta.

    La consulta tpica de SQL tiene la siguiente forma:

    SelectA1,A2,A3...An

    From r1,r2,r3...rm

    Where Condicin(es)Donde:

    A1,A2,A3...An: Representan a cada atributo(s) o campos de las

    tablas de la base de datos relacional.R1,r2,r3...rm: Representan a la(s) tabla(s) involucradas en la consulta.Condicin: Es el enunciado que rige el resultado de la consulta.

    Si se omite la clusula Where, la condicin es considerada como verdadera,la lista de atributos (A1,A2..An) puede sustituirse por un asterisco (*), paraseleccionar todos los atributos de todas las tablas que aparecen en la clusulaFrom.

    Funcionamiento del SQL.

    El SQL forma el producto cartesiano de las tablas involucradas en la clusulaFrom, cumpliendo con la condicin establecida en la orden Where y despusproyecta el resultado con la orden select.

    Para nuestros ejemplos consideremos una tabla llamada CURSO, quecontiene los siguientes campos:

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    41/74

    MODULOBASEDEDATOS Pag.41

    Nombre del campo Descripcin

    NumC Nmero del curso, nico para identificar cadacurso

    NombreC Nombre del curso, tambin es nico

    DescC Descripcin del curso

    Creditos Crditos, nmero de estos que gana al estudianteal cursarlo

    Costo Costo del curso.

    Depto Departamento acadmico que ofrece el curso.

    Datos contenidos en la tabla CURSO

    NumC NombreC DescC Creditos

    Costo Depto

    A01 Liderazgo Para pblicoGeneral

    10 100.00 Admn.

    S01 Introduccin a lainteligencia artificial

    Para ISC yLI

    10 90.00 Sistemas.

    C01 Construccin detorres

    Para IC yArquitectura

    8 0.00 Ciencias

    B01 Situacinactual yperspectivas de laalimentacin y la

    nutricin

    Para IB 8 80.00 Bioqumica

    E01 Historiapresente yfuturo dela energasolar

    IE e II 10 100.00 Electromecnica.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    42/74

    MODULOBASEDEDATOS Pag.42

    S02 Tecnologa OLAP

    Para ISC yLI

    8 100.00 Sistemas

    C02 Tecnologadel concreto y

    de lasEstructuras

    Para IC 10 100.00 Ciencias

    B02 Metabolismo delpidos enelcamarn

    Para IB 10 0.00 Bioqumica

    E02 Lossistemas

    elctricosdepotencia

    Para IE 10 100.00 Electromecnica

    S03 Estructurade datos

    Para ISC yLI

    8 0.00 Sistemas

    A01 Diseobioclimtico

    ParaArquitectura

    10 0.00 Arquitectura

    C03 Matemticasdiscretas

    General 8 0.00 Ciencias

    S04 Circuitosdigitales

    Para ISC 10 0.00 Sistemas

    S05 Arquitectura deComputadoras

    Para ISC 10 50.00 Sistemas

    I01 Base deDatosRelacionales

    Para ISC yLI 10 150.00 Informtica

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    43/74

    MODULOBASEDEDATOS Pag.43

    Ejemplos de consultas:

    OBTENCIN DE UNA TABLA ENTERA

    Obtener toda la informacin disponible sobre un curso donde Costo sea0.

    SELECT *FROM CURSOWHERE Costo=0.00

    Resultado de la consulta anterior.

    NumC

    NombreC

    DescC Creditos Costo Depto

    C01 Construccindetorres

    Para ICyArquitectura

    8 0.00 Ciencias

    B02 Metabolismodelpidosen el

    camarn

    Para IB 10 0.00 Bioqumica

    S03 Estructura dedatos

    ParaISC yLI

    8 0.00 Sistemas

    A01 Diseobioclimtico

    ParaArquitectura

    10 0.00 Arquitectura

    C03 Matem

    ticasdiscretas

    General 8 0.00 Ciencias

    Colocamos un * debido a que no nos limitan la informacin de la tabla, esdecir nos piden que mostremos todos los datos atributo de la tabla CURSO.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    44/74

    MODULOBASEDEDATOS Pag.44

    Como la nica condicin en la sentencia WHERE es que la tarifa del cursosea igual a 0, esta consulta regresa todas las tuplas donde se encuentre queCosto = 0.00.

    Debido a que Costo es un campo numrico, la condicin solo puede

    comparar con campos del mismo tipo. Para representar valores negativos seantepone a la izquierda el signo (-), en este ejemplo se considera solo el signo(=) para establecer la condicin, sin embargo otros operadores que se puedenutilizar son:

    Menor que

    Menor o igual que =

    Diferente

    Adems de los operadores booleanos AND, NOT, OR.

    Cabe sealar que en la sentencia Where cuando se requiere establecercondiciones con cadenas, estas son delimitadas por apstrofos (). Lasexpresiones de cadenas son comparadas carcter por carcter, dos cadenas soniguales solo si coinciden todos los caracteres de las mismas.

    Ejemplos de consultas con cadenas:

    Obtener toda la informacin sobre cualquier curso que ofrezca eldepartamento de Ciencias.

    SELECT *FROM CURSOWHERE Depto = 'Ciencias';

    Resultado de la consulta.

    NumC NombreC DescC Creditos

    Costo

    Depto

    C01 Construccin de torres Para ICyArquitec

    8 0.00 Ciencias

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    45/74

    MODULOBASEDEDATOS Pag.45

    tura

    C02 Tecnologa del

    concreto y de lasEstructuras

    Para IC 10 100.

    00

    Ciencias

    S04 Circuitos digitales Para ISC 10 0.00 Sistemas

    VISUALIZACIN DE COLUMNAS ESPECIFICADAS.

    En los ejemplos anteriores obtenamos toda la tabla completa, ahora veremoscomo mostrar solo algunos atributos especficos de una tabla.

    Obtener los valores NumC,NombreC y Depto, en este orden de toda latabla curso.

    SELECT NumC, NombreC, DeptoFROM CURSO;

    Resultado de la consulta:

    NumC NombreC Depto

    A01 Liderazgo Admn.

    S01 Introduccin a la inteligencia artificial Sistemas.

    C01 Construccin de torres Ciencias

    B01 Situacin actual y perspectivas de la alimentacin y lanutricin

    Bioqumica

    E01 Historia presente y futuro de la energa solar Electromecnica.

    S02 Tecnologa OLAP Sistemas

    C02 Tecnologa del concreto y de las Estructuras Ciencias

    B02 Metabolismo de lpidos en el camarn Bioqumica

    E02 Los sistemas elctricos de potencia Electromecnica

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    46/74

    MODULOBASEDEDATOS Pag.46

    S03 Estructura de datos Sistemas

    A01 Diseo bioclimtico Arquitectura

    C03 Matemticas discretas Ciencias

    S04 Circuitos digitales Sistemas

    S05 Arquitectura de Computadoras Sistemas

    I01 Base de Datos Relacionales Informtica

    Observamos que en este caso no se tiene la sentencia Where, no existecondicin, por lo tanto, todas las filas de la tabla CURSO se recuperan, perosolo se visualizaran las tres columnas especificadas.

    As mismo, empleamos la (,) para separar los campos que deseamos visualizar.

    VISUALIZACIN DE UN SUBCONJUNTO DE FILAS Y COLUMNAS

    Seleccionar los valores NumC, Depto y Costo para todos los cursos quetengan un Costo inferior a $100

    SELECT NumC, Depto, CostoFROM CURSOWHERE Costo < 100.00

    Como resultado de esta consulta se obtendrn todas aquellas tuplas quetengan un costo en CTARIFA menor que 100, y se visualizaran solo los camposde NumC, Depto,Costo.

    Podemos observar que este ejemplo cubre el formato general de una consultaSQL.

    La palabra clave DISTINCT

    DISTINCT, es una palabra reservada que elimina las filas que duplicadas enel resultado de una consulta.

    Visualizar todos los departamentos acadmicos que ofrezcan cursos,rechazando los valores duplicados.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    47/74

    MODULOBASEDEDATOS Pag.47

    SELECT DISTINCT DeptoFROM CURSO;

    Resultado de la consulta

    Depto

    Administracin

    Sistemas

    Ciencias

    Bioqumica

    electromecnica

    Arquitectura

    Inform

    tica

    La palabra DISTINCT va estrictamente despus de la palabra SELECT.

    De no haberse utilizado la palabra DISTINCT, el resultado hubiera mostradotodas las tuplas del atributo Depto que se encontraran, es decir, se hubieravisualizado la columna de Depto completamente.

    EMPLEO DE LOS CONECTORES BOOLEANOS (AND, OR, NOT)

    Para emplear las condiciones mltiples dentro de la sentencia WHERE,utilizamos los conectores lgicos.

    El conector AND.

    Este conector pide al sistema que seleccione una sola columna nicamente siambas condiciones se cumplen.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    48/74

    MODULOBASEDEDATOS Pag.48

    Obtener toda la informacin sobre todos los cursos que ofrece eldepartamento Sistemas que tengan una tarifa igual a 0.

    SELECT *FROM CURSO

    WHERE Depto=Sistemas AND Costo=0.00;

    El resultado de esta consulta sera todas aquellas tuplas que cumplanexactamente con las dos condiciones establecidas.

    El conector OR.

    Este conector al igual que el AND permite conectar condiciones mltiples enla sentencia WHERE, a diferencia del conector AND, el OR permite laseleccin de filas que cumplan con una sola de las condiciones establecidas a

    travs de este conector. Obtener toda la informacin existente sobre cualquier curso ofrecido por

    los departamentos Arquitectura o Bioqumica.

    SELECT *FROM CURSOWHERE Depto = Arquitectura OR Depto= Bioqumica;

    El resultado de esta consulta ser la de visualizar todas aquellas tuplas dondese cumpla cualquiera de las 2 condiciones, es decir mostrara todas las tuplas que

    tengan en el atributo Depto=Arquitectura o Bioqumica.

    El conector NOT

    Este nos permite marcar aquellas tuplas que por alguna razn no deseamosvisualizar.

    Obtener el nombre del curso y del departamento de todos los cursos queno sean ofrecidos por el departamento Sistemas.

    SELECT NombreC, DeptoFROM CURSOWHERE NOT (Depto=Sistemas);

    JERARQUIA DE OPERADORES BOOLEANOS.

    En orden descendente (de mayor a menor prioridad)

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    49/74

    MODULOBASEDEDATOS Pag.49

    NOT

    AND

    OR

    Existen dos formas para realizar consultas: Join de Querys y Subquerys.

    Cuando en la sentencia From colocamos los nombres de las tablas separadospor comas se dice que efectuamos una consulta de la forma Join de Querys, eneste caso se requiere anteponer el nombre de la tabla y un punto al nombre delatributo. En el Join de Querys el resultado que se produce con las tablas queintervienen en la consulta es la concatenacin de las tablas, en donde los valoresde una columna de la primera tabla coinciden con los valores de una segundatabla, la tabla de resultado tiene una fila por cada valor coincidente que resulte

    de las dos tablas originales.Para ejemplificar esto, consideremos 2 tablas: Tabla1 y Tabla2, entonces:

    C1 C2 C3 CA CB

    A AAA 10 35 R

    B BBB 45 10 S

    C CCC 55 65 T

    D DDD 20 20 UE EEE 20 90 V

    F FFF 90 90 W

    G GGG 15 75 X

    H HHH 90 90 Y

    35 Z

    Resultado de la operacin Join:

    C1 C2 C3 CA CB

    A AAA 10 10 S

    D DDD 20 20 U

    E EEE 20 20 U

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    50/74

    MODULOBASEDEDATOS Pag.50

    F FFF 90 90 V

    F FFF 90 90 W

    F FFF 90 90 Y

    H HHH 90 90 VH HHH 90 90 W

    H HHH 90 90 Y

    Como podemos observar, la comparacin se efectu por las columnas C3 yCA, que son donde se encontraron valores iguales, el resultado muestra unatupla por cada coincidencia encontrada.

    Cuando las consultas se anidan se conoce como Subquerys o subconsultas.

    Este tipo de consulta obtiene resultados parciales reduciendo el espaciorequerido para realizar una consulta.

    Nota: Todas las consultas que se resuelven con subquerys pueden resolversecon Join de Querys, pero no todas las consultas hechas con Join de Queryspueden resolverse utilizando Subquerys.

    Para ejemplificar lo anterior consideremos el ejemplo

    ALUMNO - cursa - MATERIA, que tienen los siguientes atributos:

    NControl NControl ClaveNombreA Clave NombreMEspecialidad Calif CreditosDireccin

    Representando en tablas a los atributos quedaran de la siguiente forma:

    Tabla alumno:

    NControl NombreA Especialidad Direccin

    Tabla cursa:

    NControl Clave Calif

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    51/74

    MODULOBASEDEDATOS Pag.51

    Tabla materia:

    Clave NombreM Creditos

    Obtener el nombre de la materia que cursa el alumno con nmero decontrol 97310211 con crditos igual a ocho.

    SELECT NombreAFROM MateriaWHERE creditos=8 and clave in(SELECT clave

    FROM cursaWHERE NControl=97310211;

    Obtener el nmero de control del alumno que tenga alguna calificacinigual a 100

    SELECT DISTINC(NControl)FROM CursaWHERE Calif=100;

    Obtener el nombre de las materias que cursa el alumno Salvador Chvez.SELECT NombreMFROM Materia

    WHERE Clave in (SELECT DISTINC (Clave)FROM CursaWHERE NControl in (SELECT NControl)

    FROM AlumnoWHERE NombreA=Salvador

    Chvez));

    FUNCIONES AVANZADAS APLICABLES A CONSULTAS

    Existen funciones que permiten la agilizacin de consultas similares a una

    hoja de clculo, ya que trabajan en base a renglones y columnas.COUNT ( ): Cuenta el nmero de tuplas en la columna establecida

    MIN ( ): Localiza el valor mnimo de la columna establecida

    MAX ( ): Localiza el valor mximo de la columna establecida.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    52/74

    MODULOBASEDEDATOS Pag.52

    AVG ( ): Obtiene el promedio de valores de la columna establecida

    SUM ( ): Obtiene el valor total que implican los valores obtenidos en lacolumna establecida.

    Ejemplos:

    Obtener el nmero de alumnos que existen en la carrera de Ingeniera enSistemas Computacionales.

    SELECT Count (*)FROM AlumnoWHERE especialidad=ISC;

    Obtener la mximo calificacin que ha obtenido J.M. Cadena.SELECT Max(Calif)FROM CursaWHERE NControl IN (SELECT NControl

    FROM AlumnoWHERE NombreA= J.M. Cadena );

    Obtener el promedio de calificaciones de Salvador Chvez.SELECT Avg (Calif)FROM Cursa

    WHERE NCotrol IN (SELECT NControlFROM AlumnoWHERE NombreA=Salvador Chvez);

    Obtener la suma total de las calificaciones obtenidas por Daniel Coln.SELECT Sum (Calif)FROM CursaWHERE NControl IN (SELECT NControl

    FROM Alumno

    WHERE NombreA=Daniel Coln);Hasta aqu hemos visto el manejo sencillo de realizar consultas con SQL, hay

    que destacar que en la realizacin de consultas anidadas se tiene que ponercuidando a la prioridad de los operadores, teniendo cuidado tambin almomento de agrupar los parntesis que involucran las condiciones con losoperadores.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    53/74

    MODULOBASEDEDATOS Pag.53

    3.4 Modificacin de la Base de datos

    Como se mencion al inicio de este apartado del SQL, est cuenta conmdulos DDL, para la definicin de datos que nos permite crear o modificar laestructura de las tablas.

    Las instrucciones para realizar estas operaciones son:

    CREATE TABLE: Nos permite crear una tabla de datos vaca.INSERT: Permite almacenar registros en una tabla creada.UPDATE: Permite modificar datos de registros almacenados en la tabla.DELETE: Borra un registro entero o grupo de registros de una tabla.CREATE INDEX: Crea un ndice que nos puede auxiliar para las consultas.DROP TABLE: Permite borrar una tabla.DROP INDEX: Borra el ndice indicado.

    Para ejemplificar las instrucciones anteriores consideremos el ejemploALUMNO - cursa - MATERIA, que tienen los siguientes atributos:NControl NControl ClaveNombreA Clave NombreMEspecialidad Calif CreditosDireccin

    * Estructura de la sentencia CREATE TABLE.

    CREATE TABLE

    (Atributo1: tipo de dato longitud ,Atributo2: tipo de dato longitud ,Atributo3: tipo de dato longitud ,::Atributon: tipo de dato longitud ,

    PRIMARY KEY (Opcional) ) ;

    Los campos pueden definirse como NOT NULL de manera opcional exceptoen la llave primaria para lo cual es obligatorio. Adems al definir la llaveprimaria se genera automticamente un ndice con respecto al campo llave; paradefinir la llave la denotamos dentro de los parntesis de PRIMARY KEY.

    Ejemplo:

    Crear la tabla alumno con los atributos antes descritos, tomando como llave el

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    54/74

    MODULOBASEDEDATOS Pag.54

    numero de control.

    CREATE TABLE Alumno(NControl char(8) NOT NULL,

    NombreA char(20),Especialidad char(3),Direccin char(30),PRIMARY KEY (NControl) );

    Tabla Alumno:

    NControl NombreA Especialidad Direccin

    Pueden existir ms de una llave primaria, esto es si se requiere, se crearntantos ndices como llaves primarias se establezcan.

    Pueden existir tantos campos Not Null (No nulos) como se requieran; En siestructurar la creacin de una tabla es siempre parecida al ejemplo anterior.

    * Estructura de la sentencia INSERT

    INSERTINTO Nombre de la tabla a la que se le va a insertar el registroVALUES (Conjunto de valores del registro ) ;

    Ejemplo:

    Insertar en la tabla Alumno, antes creada los datos del alumno Daniel coln,con numero de control 95310518 de la especialidad de Ingeniera civil, condomicilio Abasolo Norte #45.

    INSERTINTO AlumnoVALUES("95310518","Daniel Coln","IC","Abasolo Norte #45") ;

    Ntese que la insercin de los datos se realiza conforme la estructura que seimplanto en la tabla, es decir en el orden en que se creo dicha tabla. En caso dequerer omitir un dato que no sean no nulos solamente se ponen las comillasindicando el vaco de la cadena.

    * Estructura de la Sentencia CREATE INDEX

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    55/74

    MODULOBASEDEDATOS Pag.55

    CREATE INDEX Nombre que se le asignara al ndice.ON Nombre de la taba a la cual se le creara el ndice (Campo(s) por el cual

    se creara el ndice);

    Ejemplo:

    Crear un ndice de la tabla Alumno por el campo Especialidad.

    CREATE INDEX Indice1ON Alumno(Especialidad);

    Este ndice contendr a todos los alumnos ordenados por el campoespecialidad.

    CREATE INDEX UNIQUE INDEX Indice2ON Alumno (Especialidad);

    En la creacin de este ndice utilizamos la sentencia UNIQUE, es unindicador para permitir que se cree un ndice nico por especialidad, estasentencia siempre se coloca antes de CREATE INDEX. En este ejemplo secreara un ndice que contenga un alumno por especialidad existente.

    * Estructura de la sentencia UPDATE

    UPDATE Nombre de la tabla en donde se modificaran los datos.SET Valores

    WHERE (Condicin);

    Ejemplo:

    Modificar el nmero de control del registro de Daniel Coln de la Tablaalumno por el nmero 96310518.

    UPDATE AlumnoSET NControl 96310518WHERE NombreA=Daniel Coln;

    * Estructura de la sentencia DROP TABLE

    DROP TABLE Nombre de la tabla a borrar ;

    Ejemplo:

    Borrar la tabla Alumno creada anteriormente.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    56/74

    MODULOBASEDEDATOS Pag.56

    DROP TABLE Alumno;

    * Estructura de la sentencia DROP INDEX

    DROP INDEX Nombre del ndice a borrar;

    Ejemplo:

    Borrar el ndice Indice1 creado anteriormente.

    DROP INDEX Indice1;

    * Estructura de la sentencia DELETE

    DELETEFROM Nombre de la tablaWHERE Condicin;

    Ejemplos:

    - Borrar el registro cuyo nmero de control es 95310386.

    DELETEFROM AlumnoWHERE Control=95310386;

    - Borrar todos los registros de la tabla alumno.

    DELETEFROM Alumno;

    En el primer ejemplo, se borrara todo el registro(todos los datos), del alumnocon nmero de control = 95310386.

    En el segundo ejemplo se borraran todos los registros de la tabla alumno,pero sin borrar la estructura de la tabla, ya que la orden Delete solo borra

    registros, la sentencia Drop Table es la que borra toda la estructura de la tablaunto con los registros de la misma.

    3.5 Vistas.

    Una vista se define en SQL usando la orden CRETE VIEW. Para definir unavista debemos dar a la vista un nombre y declarar la consulta que calcula lavista. Una vez que establecemos una vista, podemos ejecutar una sentencia

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    57/74

    MODULOBASEDEDATOS Pag.57

    SELECT que referencie a esa vista. El sistema asociar la vista SQL con unatabla base y extraer y visualizar, entonces, los datos de la tabla base.

    Esto significa que una vista no contiene datos duplicados de una tabla base.No tiene absolutamente ningn dato, puesto que no es una tabla real, todo el

    proceso se realiza con los datos almacenados en la tabla base. Es decir sepercibe como una tabla virtual.

    Las ordenes que se utilizan para la manipulacin de vistas son:

    CREATE VIEW: Crea una tabla virtual.DROP VIEW: Elimina una vista creada anteriormente.

    Estructura de la sentencia CREATE VIEW.

    CREATE VIEW Nombre de la vista AS (Expresin de consulta);

    Para nuestros ejemplos consideremos de nuevo la tabla llamada CURSO, quecontiene los siguientes campos:

    Nombre del campo Descripcin

    NumC Nmero del curso, nico para identificar cadacurso

    NombreC Nombre del curso, tambin es nico

    DescC Descripcin del cursoCreditos Crditos, nmero de estos que gana al estudiante

    al cursarlo

    Costo Costo del curso.

    Depto Departamento acadmico que ofrece el curso.

    Que contiene los siguientes datos:

    NumC NombreC DescC Creditos Costo DeptoA01 Liderazgo Para

    pblicoGeneral

    10 100.00

    Admn.

    S01 Introduccin a lainteligencia

    Para ISC yLI

    10 90.00 Sistemas.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    58/74

    MODULOBASEDEDATOS Pag.58

    artificial

    C01 Construccin detorres

    Para IC yArquitectura

    8 0.00 Ciencias

    B01 Situacin actualy perspectivas dela alimentacin yla nutricin

    Para IB 8 80.00 Bioqumica

    E01 Historia presentey futuro de laenerga solar

    IE e II 10 100.00

    Electromecnic

    a.

    S02 TecnologaOLAP

    Para ISC yLI

    8 100.00

    Sistemas

    C02 Tecnologa delconcreto y de lasEstructuras

    Para IC 10 100.00

    Ciencias

    B02 Metabolismo delpidos en elcamarn

    Para IB 10 0.00 Bioqumica

    E02 Los sistemaselctricos de

    potencia

    Para IE 10 100.00

    Electromecnic

    aS03 Estructura de

    datosPara ISC yLI

    8 0.00 Sistemas

    A01 Diseobioclimtico

    ParaArquitectura

    10 0.00 Arquitectura

    C03 Matemticasdiscretas

    General 8 0.00 Ciencias

    S04 Circuitosdigitales Para ISC 10 0.00 Sistemas

    S05 Arquitectura deComputadoras

    Para ISC 10 50.00 Sistemas

    I01 Base de DatosRelacionales

    Para ISC yLI

    10 150.00

    Informtica

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    59/74

    MODULOBASEDEDATOS Pag.59

    Ejemplos:

    * Crear una vista (tabla virtual), denominada CursosS, que contenga las filassolo correspondientes a cursos ofrecidos por el departamento Sistemas. La vista

    deber contener todas las columnas de la tabla CURSO, con la excepcin de lacolumna Depto, la secuencia, de izquierda a derecha de las columnas, deberser: NombreC, NumC, Creditos, Costo Y DescC.

    CREATE VIEW CursosS ASSELECTNombreC,NumC,Creditos,Costo,DescCFROMCURSOWHEREDescC=Sistemas;

    Observemos que despus del nombre de la vista ponemos la sentencia AS,

    esto para definir la estructura de la vista, la estructura en si de la vista estaformada por la consulta anteriormente vista utilizando la orden SELECT.

    * Crear una vista denominada CursosCaros, correspondientes a las filas de latabla CURSO, en donde la tarifa exceda de $150, las columnas de la vistadebern tener los nombres ClaveCurso, NombreCurso y CostoCaro.

    CREATE VIEW CursosSCaros(ClaveCurso,NombreCurso,CostoCaro)AsSELECT NumC,NombreC, CostoFROM CursoWHERE Costo > 150;

    Observamos que despus del nombre de la vista CursosCaros ponemos losnombres que se nos pidieron tuvieran los campos de la vista(ClaveCurso,...),despus se realiza la consulta correspondiente para generar el resultadodeseado.

    Visualizar las vistas

    Creamos una tabla virtual que contiene los datos de las consultas quedeseamos, ahora nos falta visualizar estos datos, para ello utilizamos la

    sentencia SELECT y realizamos la consulta:

    SELECT *FROM CursosCaros;

    De esta consulta podemos observar que mostramos todos los campos que lavista contiene, aunque podemos visualizar solo alguno de ellos, tambinobservamos que sustituimos el nombre de la vista por el de la tabla junto a la

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    60/74

    MODULOBASEDEDATOS Pag.60

    sentencia FROM, esto es por que una vista es una tabla virtual, pero guarda losdatos como cualquier tabla normal.

    Eliminar una vista

    Como si fuera una tabla normal, las vistas tambin pueden borrarse, para elloutilizamos la sentencia DROP VIEW.

    Estructura de la sentencia DROP VIEW.

    DROP VIEW Nombre de la vista a borrar;

    Ejemplo: Borrar la vista CursosCaros creada anteriormente.

    DROP VIEW CursosCaros;

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    61/74

    MODULOBASEDEDATOS Pag.61

    Resultado1

    Solucin a problemas de algebra relacional.

    La conversin a tablas del modelo Medico-atiende-Paciente resulta:

    Tabla Mdico

    Cdula NombreM Especialidad

    Tabla Paciente

    Afiliacin NombreP Sexo Edad

    Tabla Atiende

    Cdula Afiliacin Fecha Hora

    La solucin a las consultas son:

    1.- (Medico)[NombreM];

    2.- (Paciente where Edad>'18')[NombreP];

    3.- (Paciente);

    4.- (Paciente)[NombreP] JOIN (Atiende where Cdula='ABC001')[NombreP];

    5.- ((Mdico)[NombreM] JOIN (Atiende) JOIN (Paciente where NombreP='John

    Smith' )) [NombreM];

    6.- Consideremos 2 tablas de pacientes, Paciente1 y Paciente2, entonces:

    ((Paciente1) UNION (Paciente2))[NombreP,Afiliacin];

    7.- ((Paciente) TIMES (Mdico where especialidad 'Oftalmologa'));

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    62/74

    MODULOBASEDEDATOS Pag.62

    EVALUACIN:

    1. La arquitectura relacional esta compuesta por: Modelo relacional de datos, submodelo de datos, esquema de

    almacenamiento y sublenguaje de datos. ( )

    Nivel interno, conceptual y de visin. ( ) Ninguna de las anteriores. ( )

    2. En el algebra relacional debemos saber que es lo que deseamos consultar ylas operaciones necesarias para llegar al resultado deseado, por tal motivoes un lenguaje:

    Procedimental. ( ) No procedimental ( ) Estructurado. ( )

    3. En SQL la operacin proyectar se especifica con la orden: Select. ( ) Where. ( ) From. ( )

    4. Si se omite la clusula Where en una consulta SQL. No se obtiene ningn resultado. ( ) Visualiza los datos de todas las tablas involucradas en la orden FROM. ( ) El resultado esta compuesto de todas las filas de las tablas indicadas en la

    orden from segun los atributos descritos en la sentencia Select. ( )

    5. Las Vistas en SQL son: Tablas que se generan de una tablas base segn lo que se indique en la orden

    Select. ( )

    Tablas virtuales creadas con la orden Create View que para ser visualizada serequiere realizar una consulta en SQL e invocar la tabla creada(vista). ( )

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    63/74

    MODULOBASEDEDATOS Pag.63

    Tablas virtuales creadas con la orden Create View que nos permite ver losdatos deseados que cumplen con las condiciones indicadas en la clusulaWhere. ( )

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    64/74

    MODULOBASEDEDATOS Pag.64

    CAPITULO IVDiseo de Bases de Datosrelacionales

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    65/74

    MODULOBASEDEDATOS Pag.65

    4.1 Peligros en el diseo de bases de datos relacionales.

    Uno de los retos en el diseo de la base de datos es el de obtener una estructura

    estable y lgica tal que:

    1. El sistema de base de datos no sufra de anomalas de almacenamiento.2. El modelo lgico pueda modificarse fcilmente para admitir nuevos

    requerimientos.

    Una base de datos implantada sobre un modelo bien diseado tiene mayoresperanza de vida aun en un ambiente dinmico, que una base de datos con undiseo pobre. En promedio, una base de datos experimenta una reorganizacingeneral cada seis aos, dependiendo de lo dinmico de los requerimientos de los

    usuarios. Una base de datos bien diseada tendr un buen desempeo aunqueaumente su tamao, y ser lo suficientemente flexible para incorporar nuevosrequerimientos o caractersticas adicionales.

    Existen diversos riesgos en el diseo de las bases de datos relacionales queafecten la funcionalidad de la misma, los riesgos generalmente son la redundanciade informacin y la inconsistencia de datos.

    La normalizacin es el proceso de simplificar la relacin entre los campos de unregistro.Por medio de la normalizacin un conjunto de datos en un registro se reemplaza porvarios registros que son ms simples y predecibles y, por lo tanto, ms manejables.La normalizacin se lleva a cabo por cuatro razones:

    Estructurar los datos de forma que se puedan representar las relacionespertinentes entre los datos.

    Permitir la recuperacin sencilla de los datos en respuesta a las solicitudes deconsultas y reportes.

    Simplificar el mantenimiento de los datos actualizndolos, insertndolos yborrndolos.

    Reducir la necesidad de reestructurar o reorganizar los datos cuando surjannuevas aplicaciones.

    En trminos ms sencillos la normalizacin trata de simplificar el diseo deuna base de datos, esto a travs de la bsqueda de la mejor estructuracin quepueda utilizarse con las entidades involucradas en ella.

    FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    66/74

    MODULOBASEDEDATOS Pag.66

    Pasos de la normalizacin:

    1. Descomponer todos los grupos de datos en registros bidimensionales.2. Eliminar todas las relaciones en la que los datos no dependan completamente

    de la llave primaria del registro.

    3. Eliminar todas las relaciones que contengan dependencias transitivas.La teora de normalizacin tiene como fundamento el concepto de formas

    normales; se dice que una relacin est en una determinada forma normal sisatisface un conjunto de restricciones.

    4.2 Primera y segunda forma normal.

    Formas normales.

    Son las tcnicas para prevenir las anomalas en las tablas. Dependiendo de suestructura, una tabla puede estar en primera forma normal, segunda forma normal oen cualquier otra.

    Relacin entre las formas normales:

    Primera forma normal.

    Definicin formal:Una relacin R se encuentra en 1FN si y solo s por cada rengln columna

    contiene valores atmicos.

    Abreviada como 1FN, se considera que una relacin se encuentra en la primeraforma normal cuando cumple lo siguiente:

    1. Las celdas de las tablas poseen valores simples y no se permiten grupos niarreglos repetidos como valores, es decir, contienen un solo valor por cadacelda.

    2. Todos los ingresos en cualquier columna(atributo) deben ser del mismo tipo.FacultaddeCienciasdelaEducacin UEB Ing.MarcoVinicioRosilloSolano

  • 8/7/2019 modulo base de datos

    67/74

    MODULOBASEDEDATOS Pag.67

    3. Cada columna debe tener un nombre nico, el orden de las columnas en latabla no es importante.

    4. Dos filas o renglones de una misma tabla no deben ser idnticas, aunque elorden de las filas no es importante.

    Por lo general la mayora de las relaciones cumplen con estas caractersticas, asque podemos decir que la mayora de las relaciones se encuentran en la primeraforma normal.

    Para ejemplificar como se representan grficamente las relaciones en primeraforma normal consideremos la relacin alumno cursa materia cuyo diagrama E-R esel siguiente:

    Segunda forma normal.

    Para definir formalmente la segunda forma normal requerimos saber que es unadependencia funcional: Consiste en edificar que atributos dependen de otro(s)

    atributo(s).

    Defini