taller db coto

Upload: anthony-vargas

Post on 02-Mar-2018

233 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/26/2019 Taller DB Coto

    1/207

    TALLER DE BASES DE

    DATOSNivel Bachillerato

    Mag Marianella Solano Orias

  • 7/26/2019 Taller DB Coto

    2/207

    LAS BASES DE DATOS ENLAS ORGANIZACIONES

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    3/207

    HISTORIA YCONCEPTOS BSICOS

    DE BASES DE DATOS

  • 7/26/2019 Taller DB Coto

    4/207

    Historia de las bases de datos

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    5/207

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    6/207

    Base de Datos

    Una base de datos o banco de datos (BD) es un conjuntode datos pertenecientes a un mismo contexto yalmacenados sistemticamente para su posterior uso, lamayora de las bases de datos estn en formato digital

    (electrnico).Es una coleccin de datos relacionados.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    7/207

    Elementos de una base de datosEntidades:Persona, lugar, objeto u evento para el cual se obtiene ymantienen datos. Ejemplo: Estudiante, Curso.

    Campos:Atributos o caractersticas de la entidad.

    Ejemplo: Entidad: Estudiante Campos: Nombre, Apellido, Edad.

    Registros (Records o filas): Grupo de campos que describen unmiembro de una entidad.

    Archivos:Grupo de registros que contienen datos sobre una entidad.

    Llaves (keys): Campo o combinacin de campos que permitelocalizar, acceder o identificar un registro en especfico.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    8/207

    Propiedades implcitas de una base dedatosRepresenta algn aspecto del mundo real, lo que en ocasiones

    se denomina minimundo o universo de discurso (UoD,Universe of discourse). Los cambios introducidos en elminimundo se reflejan en la base de datos.

    Es una coleccin de datos lgicamente coherente con algntipo de significado inherente. No es correcto denominar basede datos a un surtido aleatorio de datos.

    Una base de datos se disea, construye y rellena con datospara un propsito especfico. Dispone de un grupo pretendidode usuarios y algunas aplicaciones preconcebidas en las queesos usuarios estn interesados.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    9/207

    Metadatos

    Definicin o informacin descriptiva de una base de datosque se almacena en forma de catlogo o diccionario de labase de datos.

    Se almacenan en la base de datos.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    10/207

    ACTORES EN UNA

    BASE DE DATOS

  • 7/26/2019 Taller DB Coto

    11/207

    Administradores de la Base de datos

    Administracin de la base de datos y elDBMS.

    Responsable :acceso autorizado

    coordinacin y monitorizacin de su uso, y de

    recursos de software y hardware necesarios

    Problemas como las brechas de seguridad o detiempos de respuesta pobres.

    DBA est asistido por un equipo depersonas que llevan a cabo estasfunciones.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    12/207

    Diseadores de la base de datos

    Identifican los datos que sealmacenarn en la base de datosElegir las estructuras apropiadaspara representar y almacenar esos

    datos.Su trabajo se debe realizar antes

    de implementar y rellenar la basede datos.

    Comunicacin con todos losusuarios de la base de datos paraconocer sus requisitos, a fin decrear un diseo que cumpla con

    ellos.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    13/207

    Usuarios finales

    Personas cuyos trabajos requieren acceso a la base dedatos para realizar consultas,actualizaciones e informes yse clasifican en:

    Casuales.

    Principales o paramtricos.

    Sofisticados.

    Independientes.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    14/207

    Analistas de sistemas y programadores deaplicaciones (ingenieros de software)Los analistas de sistemas determinan los

    requisitos de los usuarios finales,especialmente de los usuarios finalesprincipiantes y paramtricos, as como lasespecificaciones de desarrollo para las

    transacciones enlatadas que satisfacen esosrequisitos.Los programadores de aplicaciones

    implementan esas especificaciones comoprogramas; despus, verifican, depuran,documentan y mantienen esas transacciones

    enlatadas. Dichos analistas y programadores(normalmente conocidos comodesarrolladores de software o ingenierosde software) deben familiarizarse con todaslas posibilidades proporcionadas por el DBMSal objeto de desempear sus tareas.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    15/207

    Otros usuarios de bases de datos Diseadores e implementadores de sistemas

    DBMS:Disean e implementan los mdulos y lasinterfaces DBMS como un paquete software.

    Desarrolladores de herramientas. Disean eimplementanherramientas(paquetes de softwareque facilitan el modelado y el diseo de la base de

    datos, el diseo del sistema de bases de datos yla mejora del rendimiento). Operadores y personal de mantenimiento

    (personal de administracin del sistema). Son losresponsables de la ejecucin y el mantenimientoreal del entorno hardware y software para elsistema de bases de datos.

    Estas categoras de trabajadores se encargan deque el sistema de bases de datos est disponiblepara los usuarios finales, normalmente no utilizan labase de datos para sus propios fines.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    16/207

    Entorno del DBMS

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    17/207

    QUE SE DEBE PROTEGER EN UNA DB?

    Los deberes dependen de la descripcin del puesto, corporacin ypolticas de Tecnologas de Informacin (TI).

    Eladministrador de base de datos(DBA) es la persona responsablede los aspectos ambientales de una base de datos. En general estoincluye: Recuperabilidad:Crear y probar Respaldos Integridad: Verificar o ayudar a la verificacin en la integridad de

    datos Seguridad: Definir o implementar controles de acceso a los datos Disponibilidad:Asegurarse del mayor tiempo de encendido

    Desempeo: Asegurarse del mximo desempeo incluso con laslimitaciones

    Desarrollo y soporte a pruebas: Ayudar a los programadores eingenieros a utilizar eficientemente la base de datos.

    Mag Marianella Solano Orias.

    M M i ll S l O i

  • 7/26/2019 Taller DB Coto

    18/207

    INTEGRIDADLa integridad de una base de datos significa que, la base de datos o losprogramas que generaron su contenido, incorporen mtodos que aseguren que

    el contenido de los datos del sistema no se rompan as como las reglas delnegocio.Dos pasos importantes en el diseo de las tablas son la identificacin devalores vlidos para una columna y la determinacin de cmo forzar laintegridad de los datos en la columna. La integridad de datos pertenece a unade las siguientes categoras: Integridad de entidadLa integridad de entidad define una fila como entidad nica para una tabladeterminada. La integridad de entidad exige la integridad de las columnas delos identificadores o la clave principal de una tabla, mediante ndices yrestricciones. Integridad de dominioLa integridad de dominio viene dada por la validez de las entradas para unacolumna determinada. Puede exigir la integridad de dominio para restringir eltipo mediante tipos de datos, el formato mediante reglas y restricciones, o elintervalo de valores posibles mediante restricciones.

    Mag Marianella Solano Orias.

    M M i ll S l O i

  • 7/26/2019 Taller DB Coto

    19/207

    Integridad referencialLa integridad referencial protege las relaciones definidas entre las tablas cuandose crean o se eliminan filas. La integridad referencial garantiza que los valores de

    clave sean coherentes en las distintas tablas. Para conseguir esa coherencia, espreciso que no haya referencias a valores inexistentes y que, si cambia el valor deuna clave, todas las referencias a ella se cambien en consecuencia en toda labase de datos.Cuando se exige la integridad referencial, se impide a los usuarios:

    Agregar o cambiar filas en una tabla relacionada si no hay ninguna fila

    asociada en la tabla principal. Cambiar valores en una tabla principal que crea filas hurfanas en unatabla relacionada.

    Eliminar filas de una tabla principal cuando hay filas relacionadascoincidentes.

    Integridad definida por el usuarioLa integridad definida por el usuario permite definir reglas de empresa especficasque no pertenecen a ninguna otra categora de integridad. Todas las categoras deintegridad admiten la integridad definida por el usuario. Esto incluye todas lasrestricciones de nivel de columna y nivel de tabla en procedimientos almacenadosy desencadenadores.

    Mag Marianella Solano Orias.

    M M i ll S l O i

  • 7/26/2019 Taller DB Coto

    20/207

    SISTEMAS GESTORES DEBASES DE DATOS.

    Mag Marianella Solano Orias.

    M M i ll S l O i

  • 7/26/2019 Taller DB Coto

    21/207

    Sistema gestor de bases de datos

    Los sistemas de gestin de bases de datos (en inglsdatabase management system, abreviado DBMS) sirvende interfaz entre la base de datos, el usuario y lasaplicaciones que la utilizan.

    Mag Marianella Solano Orias.

    Mag Marianella Solano Orias

  • 7/26/2019 Taller DB Coto

    22/207

    Ejemplos de DBMS

    Mag Marianella Solano Orias.

    Mag Marianella Solano Orias

  • 7/26/2019 Taller DB Coto

    23/207

    Funciones de los DBMS

    Definir una base de datos.

    Construccin de una base de datos.

    Manipulacin de una base de datos.

    Compartir una base de datos.

    Proteccin y mantenimiento de la base de datos.Proteccin: Defectos en hardware y software, seguridad por medio

    de usuarios.

    Mag Marianella Solano Orias.

    Mag Marianella Solano Orias

  • 7/26/2019 Taller DB Coto

    24/207

    Entorno de un sistema de bases de datos simplificado

    Mag Marianella Solano Orias.

    Mag Marianella Solano Orias

  • 7/26/2019 Taller DB Coto

    25/207

    ESTRUCTURA FSICA YLGICA DE GESTORES DEBASES DE DATOS

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    26/207

    ESTRUCTURA FSICA YLGICA DE LOS DBMS

    Mag Marianella Solano Orias

  • 7/26/2019 Taller DB Coto

    27/207

    Arquitectura de los DBMSArquitectura en 3 niveles mtodo de gran aceptacin paraexplicar el funcionamiento de los sistemas de bases de

    datos fue formalizado en 1975 y mejorado en 1978 estambin conocido como arquitectura ANSI/SPARC asillamada por la Standards Planning and RequirementsCommittee of the American National Standards Instituteen espaol el Comite de Standarizacin deRequerimientos y Planificacin del Instituto Nacional deStandarizacin Americano.

    Nivel interno (Fsico)Nivel conceptual

    Nivel externo o de vistas.

    Mag Marianella Solano Orias.

    Mag Marianella Solano Orias

  • 7/26/2019 Taller DB Coto

    28/207

    Nivel Interno Describe la estructura de

    almacenamiento fsico de la BD.

    Utiliza un modelo fsico de data ydescribe los detalles completos dealmacenamiento de data y el acceso alos caminos de la BD.

    Nivel mas bajo de abstraccindescribe como se almacenanrealmente los datos. En el nivel fsicose describen en detalle lasestructuras de datos complejas debajo nivel.

    Mag Marianella Solano Orias.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    29/207

    Nivel Conceptual

    Describe la estructura de toda la base dedatos para una comunidad de usuarios.Oculta los detalles de las estructuras de

    almacenamiento fsico y se concentra endescribir las entidades, los tipos de datos,las relaciones, las operaciones de los

    usuarios y las restricciones.Siguiente nivel ms alto de abstraccin, sedescribe cules son los datos reales queestn almacenados en la base de datos yqu relaciones existen entre los datos.

    Mag Marianella Solano Orias.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    30/207

    Nivel Externo Nivel de vista incluye un

    nmero de esquemasexternos o vistas deusuario. Cada esquemaexterno describe la vista dela BD de un grupo o de los

    usuarios de la BD. Cadavista tpicamente describela parte de la BD en la cualun grupo de usuarios enparticular esta interesado yoculta el resto de la BD paraotros grupos de usuario.

    El nivel de visin es ms alto,en el cual se describe solo unaparte de la base de datos y sepresentan vistas diferentes dela misma base de datos a losusuarios.

    Mag Marianella Solano Orias.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    31/207

    Arquitectura de tres esquemas o niveles

    g

  • 7/26/2019 Taller DB Coto

    32/207

    DISEO E IMPLEMENTACINDE MODELOS DE BASES DEDATOS

    Fases del diseo de bases de datos

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    33/207

    Generalidades de los modelos de basesde datos Los modelos de bases de datos, se basan en unnivel conceptual que permite el diseo de la DB.

    Una vez recopilados y analizados todos los

    requisitos, el siguiente paso es crear unesquema conceptual para la base de datos,mediante un modelo de datos conceptual de altonivel. Este paso se denomina diseo

    conceptual.

    g

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    34/207

    Esquema conceptual

    Descripcin concisa de los requisitos de datos por partede los usuarios e incluye descripciones detalladas de lostipos de entidades, relaciones y restricciones; seexpresan utilizando los conceptos proporcionados por el

    modelo de datos de alto nivel. Como estos conceptos noincluyen detalles de implementacin, normalmente sonms fciles de entender y se pueden utilizar paracomunicar con usuarios no tcnicos.

    g

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    35/207

    Esquema conceptual

    Alto nivel , se puede utilizar para garantizar que se hanreunido todos los requerimientos o requisitos de datos delusuario, permite a los diseadores concentrarse en laspropiedades de los datos sin preocuparse por su

    almacenamiento.Descripcin de alto nivel del contenido de informacin de

    la base de datos, independiente del SGBD que se vaya autilizar.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    36/207

    Esquema lgicoUna vez realizado el esquema conceptual este se

    transforma de modelo de datos de alto nivel en modelo dedatos de implementacin, conocido como diseo lgico oasignacin de modelos de datos.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    37/207

    Esquema internoEs la ltima fase del diseo de la DB, es aqu donde se

    especifican las estructuras de almacenamiento interno, losndices, las rutas de acceso y la organizacin de losarchivos para la base de datos.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    38/207

    Fases principales del Diseo de la DB

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    39/207

    DiferenciasModelo Conceptual

    Independiente del DBMSMas cercano al usuario

    Modelo lgico

    Depende de un tipo deDBMS en particular

    Mas cercano al ordenador

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    40/207

    Ejemplos

    Modelo conceptual

    Modelo Entidad relacin

    Modelo lgico

    Modelo relacional

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    41/207

    MODELO ENTIDADRELACIN

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    42/207

    Modelo Entidad relacin

    Modelo conceptual de alto nivel, que se basa en lapercepcin del mundo real que consta de una coleccin deobjetos bsicos llamados entidades y de relaciones entreotros objetos.

    Las entidades se describen en una base de datos medianteun conjunto de atributos.

    Una relacin es una asociacin entre varias entidades.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    43/207

    Conjuntos de entidadesEs un conjunto de entidades del mismo tipo que

    comparten las mismas propiedades, o atributos. Elconjunto de todas las personas que son clientes en unbanco dado, por ejemplo, se pueden definir como elconjunto de entidadescliente.

    Las entidades individuales que constituyen un conjuntose llaman laextensindel conjunto de entidades.

    Los conjuntos de entidades no son necesariamentedisjuntos. Por ejemplo, es posible definir el conjunto de

    entidades de todos los empleados de un banco(empleado) y el conjunto de entidades de todos losclientes del banco (cliente). Una entidadpersonapuedeser una entidad empleado, una entidad cliente, ambascosas, o ninguna.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    44/207

    Atributos

    Los atributos describen propiedades que posee cadamiembro de un conjunto de entidades.

    Para cada atributo hay un conjunto de valores permitidos,llamados el dominio, o el conjunto de valores, de ese

    atributo. Como un conjunto de entidades puede tener diferentes

    atributos, cada entidad se puede describir como unconjunto de pares (atributo,valor),un par para cada atributo

    del conjunto de entidades. Por ejemplo, una entidadconcreta cliente se puede describir mediante el conjunto{(id-cliente, 67.789.901),(nombre-cliente, Lpez), (calle-cliente, Mayor), (ciudad-cliente, Peguerinos)},

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    45/207

    AtributosTipos de atributosSimples: No estn divididos en subpartes. Compuestos: Se pueden dividir en subpartes. Por ejemplo

    nombre-cliente, podra estar estructurado en un atributocompuesto consistente en nombre, primer-apellido y segundo-

    apellido.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    46/207

    Atributos monovalorados y multivalorados

    Monovalorados: atributos que se han especificado enlos ejemplos tienen todos un valor slo para una entidadconcreta. Por ejemplo, el atributonmero-prstamoparauna entidad prstamo especfico, referencia a un nico

    nmero de prstamo.Multivalorados: en ocasiones un atributo tiene un

    conjunto de elementos para una entidad especfica; porejemplo un conjunto de la entidad empleado, cualquier

    empleado puede tener cero, uno o ms nmerostelefnicos. Este tipo de atributos permite elestablecimiento de lmites inferior y superior.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    47/207

    Atributos derivadosEl valor para este tipo de atributo se puede derivar de los

    valores de otros atributos o entidades relacionados.Ejemplo: Los atributos: edad , fecha de nacimiento yfecha actual , la edad puede ser el resultado de la fechaactual menos la fecha de nacimiento.

    El valor de un atributo derivado no se almacena, sinoque se calcula cuando sea necesario.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    48/207

    Valor Nulo de un atributo

    Un atributo toma un valor nulo cuando una entidad no tiene unvalor para el. Por ejemplo una persona que no tiene unsegundo nombre.

    Permite asignar nulo a un valor desconocido de un atributo.

    Perdido: el valor existe, pero no se tiene la informacin Desconocido: no se conoce si el valor es real o no. Porejemplo si el nombre de un cliente es nulo, el valor es perdido,por que todo cliente tiene nombre.

    Un valor nulo para el atributo piso podra significar que la

    direccin no incluye un piso (no aplicable), que existe piso perono se conoce cul es (perdido), o que no se sabe si el pisoforma parte o no de la direccin del cliente (desconocido).

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    49/207

    Conjunto de relaciones

    Es una asociacin entre diferentes entidades. Por ejemplose puede crear una relacin que asocie al cliente Lpezcon el prstamo P-15.

    Unconjunto de relacioneses un conjunto de relaciones

    del mismo tipo. Formalmente es una relacin matemticaconn> = 2 de conjuntos de entidades (posiblemente nodistintos). Si E1, E2,,En son conjuntos de entidades,entonces un conjunto de relaciones R es un subconjunto

    de:{(e1, e2,,en) | e1 E1, e2 E2,,en En} donde(e1,e2,en) es una relacin.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    50/207

    Ejemplo de relaciones

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    51/207

    Particin

    Es la asociacin de dos conjuntos de entidades, estoquiere decir que los conjuntos de entidadesE1,E2,,Enparticipanen el conjunto de relaciones R.

    La funcin que desempea una entidad en una relacin

    se llamapapelde la entidad; los conjuntos de entidadesque participan en un conjunto de relaciones songeneralmente distintos, los papeles estn implcitos y nose especifican normalmente. Son tiles cuando el

    significado de una relacin requiere aclaracin.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    52/207

    Restricciones correspondencia decardinalidades

    La correspondencia de cardinalidades, o razn decardinalidad, expresa el nmero de entidades a las que otraentidad puede estar asociada va un conjunto de relaciones.

    Para un conjunto de relaciones binarias R entre los

    conjuntos de entidades A y B, la correspondencia decardinalidades debe ser una de las siguientes:Uno a unoUno a varios

    De varios a unoDe varios a varios

    Nota: En otros textos se hace referencia a varios como

    muchos

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    53/207

    Uno a unoUna entidad enAse asocia cona lo sumouna entidad en

    B, y una entidad en B se asocia con a lo sumo unaentidad enA

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    54/207

    Uno a variosUna entidad en A se asocia con cualquier nmero de

    entidades enB(ninguna o varias). Una entidad enB, sinembargo, se puede asociar cona lo sumouna entidad enA

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    55/207

    Varios a unoUna entidad enAse asocia cona lo sumouna entidad en

    B. Una entidad enB, sin embargo, se puede asociar concualquier nmero de entidades (ninguna o varias) enA

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    56/207

    Varios a variosVarios a varios. Una entidad en A se asocia con

    cualquier nmero de entidades (ninguna o varias) enB, yuna entidad en B se asocia con cualquier nmero deentidades (ninguna o varias) enA

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    57/207

    CardinalidadQue tipo de cardinalidad es?

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    58/207

    Claves

    Una clave permite identificar un conjunto de atributos

    suficiente para distinguir las entidades entre s.

    Superclave:es un conjunto de uno o ms atributos que,

    tomados colectivamente, permiten identificar de forma

    nica una entidad en el conjunto de entidades.

    Una superclave es un atributo o un conjunto de atributosque identifican de modo nico las tuplas de una relacin.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    59/207

    Claves candidatasUna superclave puede contener atributos innecesarios.

    SiKes una superclave, entonces tambin lo es cualquiersuperconjunto deK. A menudo interesan las superclavestales que los subconjuntos propios de ellas no sonsuperclave. Tales superclaves mnimas se llamanclaves

    candidatas.Si una relacin tiene mas de una clave, cada una es una

    clave candidata. Una de ellas es arbitrariamentedesignada como clave primaria. El resto son

    secundarias.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    60/207

    Clave primaria

    Para denotar una clave candidata que es elegida por eldiseador de la base de datos como elemento principalpara identificar las entidades dentro de un conjunto deentidades.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    61/207

    Diagrama Entidad-Relacin(E-R)

    La estructura lgica general de una base de datos sepuede expresar grficamente mediante un diagrama E-R. Los diagramas son simples y claros, cualidades quepueden ser responsables del amplio uso del modelo E-R.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    62/207

    Componentes del diagrama E-R

    Rectngulos:que representan conjuntos de entidades.Elipses:que representan atributos.

    Rombos:que representan relaciones.

    Lneas: que unen atributos a conjuntos de entidades y

    conjuntos de entidades a conjuntos de relaciones.Elipses dobles: que representan atributos

    multivalorados.

    Elipses discontinuas:que denotan atributos derivados.

    Lneas dobles: que indican participacin total de unaentidad en un conjunto de relaciones.

    Rectngulos dobles: que representan conjuntos deentidades dbiles.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    63/207

    Ejemplo de diagrama E-R

    Los atributos subrayados, indican la llave o clave

    primaria para cada conjunto de entidades.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    64/207

    Relaciones y cardinalidad en el diagramaE-RUna lnea dirigida desde el conjunto de relacionesprestatario al conjunto de entidades prstamo especificaqueprestatarioes un conjunto de relaciones uno a uno, obien varios a uno, desdeclienteaprstamo;prestatariono

    puede ser un conjunto de relaciones varios a varios ni unoa varios, desdeclienteaprstamo.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    65/207

    Relaciones y cardinalidad en el diagramaE-R ContUna lnea dirigida desde cliente a prstamo representa una

    cardinalidad de uno a varios; prestatario no puede ser unconjunto de relaciones varios a varios ni uno a varios, desdecliente a prstamo.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    66/207

    Relaciones y cardinalidad en el diagramaE-R ContUna lnea no dirigida desde el conjunto de relacionesprestatarioal conjunto de relacionesprstamoespecifica queprestatarioes o bien un conjunto de relaciones varios a varios,o bien uno a varios, desdeclienteaprstamo.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    67/207

    Ejemplos de Diagrama E-R con atributoscompuestos, multivalorados y derivados.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    68/207

    Ejemplo Diagrama E-R con indicadoresde papeles.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    69/207

    Ejemplo Diagrama E-R con una relacinternaria.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    70/207

    Ejemplo Participacin total de un conjunto deentidades en un conjunto de relaciones.Se usan las lneas dobles para indicar que la

    participacin de un conjunto de entidades en un conjuntode relaciones es total; es decir, cada entidad en elconjunto de entidades aparece al menos en una relacin

    en ese conjunto de relaciones.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    71/207

    Lmites de cardinalidad en conjuntos derelaciones.En los diagramas de E-R, existe una forma de indicar

    restricciones mas complejas, mostrando una cardinalidad mnimauna mxima, se muestra de la forma minmx. Un valor mximode 1 indica que la entidad participa de a lo sumo una relacin,mientras que un valor mximo de * indica que no hay lmite.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    72/207

    Conjunto de entidades dbilesEs el conjunto de entidades que no t iene suf ic ien tes at ribu tos parafo rm ar una llave primaria . Para que un conjunto de entidades

    dbiles tenga sentido, debe estar asociada con otro conjunto deentidades, denominado elconjunto de entidades identificadorasopropietarias.

    Cada entidad dbil debe estar asociada con una entidad

    identificadora; es decir, se dice que el conjunto de entidades dbilesdepende existencialmente del conjunto de entidadesidentificadoras. Se dice que el conjunto de entidades identificadorases propietariadel conjunto de entidades dbiles que identifica. Larelacin que asocia el conjunto de entidades dbiles con el conjuntode entidades identificadoras se denomina relacin identificadora.La relacin identificadora es varios a uno del conjunto de entidades

    dbiles al conjunto de entidades identificadoras y la participacin delconjunto de entidades dbiles en la relacin es total.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    73/207

    Conjunto de entidades fuertes

    Es el conjunto de entidades que t iene una claveprimaria.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    74/207

    Entidades dbiles y fuertes

    Aunque un conjunto de entidades dbiles no tiene claveprimaria, no obstante se necesita conocer un medio paradistinguir todas aquellas entidades del conjunto deentidades que dependen de una entidad fuerte particular.

    Eldiscriminantede un conjunto de entidades dbiles esun conjunto de atributos que permite que esta distincinse haga. El discriminante de un conjunto de entidadesdbiles se denomina la clave parcial del conjunto deentidades. La clave primaria de un conjunto de entidadesdbiles se forma con la clave primaria del conjunto deentidades identificadoras, ms el discriminante delconjunto de entidades dbiles.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    75/207

    Entiadades dbiles y fuertes

    Un conjunto de entidades dbiles se indica en losdiagramas E-R mediante un rectngulo dibujado con unalnea doble y la correspondiente relacin de identificacinmediante un rombo dibujado con lnea doble.

  • 7/26/2019 Taller DB Coto

    76/207

    CARACTERSTICASDEL MODELO E-REXTENDIDO

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    77/207

    EspecializacinUn conjunto de entidades puede incluir subgrupos de entidades

    que se diferencian de alguna forma de las otras entidades delconjunto. Por ejemplo, un subconjunto de entidades en unconjunto de entidades puede tener atributos que no soncompartidos por todas las entidades del conjunto de entidades.El modelo E-R proporciona una forma de representacin de

    estos grupos de entidades distintos.El proceso de designacin de subgrupos dentro de un conjunto

    de entidades se denominaespecializacin.En trminos de un diagrama E-R, la especializacin se

    representa mediante un componente triangular etiquetado

    ES(superclase-subclase). Los conjuntos de entidadesde nivelms alto y ms bajo se representan como conjuntos deentidades regulares, es decir, como rectngulos que contienen elnombre del conjunto de entidades.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    78/207

    Generalizacin

    Es una relacin contenedora que existe entre el conjuntode entidades de nivel ms alto y uno o ms conjuntos deentidades de nivel ms bajo. Por ejemplo persona es elconjunto de entidades de nivel ms alto y los conjuntos

    de entidades cliente y empleado son de nivel ms bajo.Los conjuntos de entidades de nivel ms alto y nivel msbajo tambin se pueden llamarsuperclaseysubclase,respectivamente. El conjunto de entidades persona es lasuperclase de las subclases cliente y empleado.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    79/207

    Herencia de atributos

    Los atributos de los conjuntos de entidades de nivel msalto se dice que son heredados por los conjuntos deentidades de nivel ms bajo.

    Un conjunto de entidades de nivel ms bajo (o subclase)

    tambin hereda la participacin en los conjuntos derelaciones en los que su entidad de nivel ms alto (osuperclase) participa. La herencia de atributos se aplicaen todas las capas de los conjuntos de entidades de nivelms bajo.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    80/207

    Herencia de atributos

    Si se llega a una porcin dada de un modelo E-R medianteespecializacin o generalizacin, el resultado es bsicamente elmismo:

    Un conjunto de entidades de nivel ms alto con atributos y relacionesque se aplican a todos los conjuntos de entidades de nivel ms bajo.

    Conjuntos de entidades de nivel ms bajo con caractersticasdistintivas que se aplican slo en un conjunto de entidades particular.

    En una jerarqua, un conjunto de entidades dado puede estarimplicado como un conjunto de entidades de nivel ms bajo

    slo en una nica relacin ES. Si un conjunto de entidades esun conjunto de entidades de nivel ms bajo en ms de unarelacin ES, entonces el conjunto de entidades tieneherenciamltiple, y la estructura resultante se denominaretculo.

    Ej l d i li i li i

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    81/207

    Ejemplo de especializacin y generalizacin

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    82/207

    Notaciones E-R alternativas

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    83/207

    Notaciones E-R alternativas. Cont

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    84/207

    MODELO RELACIONAL

  • 7/26/2019 Taller DB Coto

    85/207

    DE UN ESQUEMA E-R ATABLAS

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    86/207

    De un esquema E-R a Tablas

    Para cada conjunto de entidades de la base de datos ypara cada conjunto de relaciones de la base de datos hayuna nica tabla a la que se asigna el nombre del conjuntode entidades o del conjunto de relaciones correspondiente.

    Cada tabla tiene varias columnas, cada una de las cualestiene un nombre nico.

    Un diseo E-R, se puede convertir en un diseo relacional.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    87/207

    Representacin de entidades fuertes

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    88/207

    Representacin de entidades dbiles

    Tabla pago

    Representacin del conjunto deMag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    89/207

    Representacin del conjunto derelaciones

    Tabla Prestatario

    Redundancia de tablasMag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    90/207

    Redundancia de tablasUn conjunto de relaciones uniendo un conjunto de entidades dbiles

    con el correspondiente conjunto de entidades fuertes es un caso

    especial. estas relaciones son varios a uno y no tienen atributosdescriptivos. Adems, la clave primaria de un conjunto de entidadesdbiles incluye la clave primaria del conjunto de entidades fuertes.Como en el siguiente diagrama E-R, el conjunto de entidades dbilespago depende del conjunto de entidades fuertes prstamo a travsdel conjunto de relaciones pago-prstamo. La clave primaria de pagoes {nmero-prstamo, nmero-pago} y la clave primaria de prstamoes {nmero-prstamo}. Como pago-prstamo no tiene atributosdescriptivos, la tabla para pago-prstamo tendra dos columnas,nmero-prstamo y nmero-pago. La tabla para el conjunto deentidades pago tiene cuatro columnas, nmero-prstamo, nmero-pago, fecha-pago e importe-pago. Cada combinacin (nmero-prstamo, nmero-pago) en pago-prstamo tambin se encontraraen la tabla pago, y viceversa. Por tanto, la tabla pago-prstamo esredundante. En general, la tabla para el conjunto de relaciones queune un conjunto de entidades dbiles con su correspondienteconjunto de entidades fuertes es redundante y no necesita estarpresente en una representacin tabular de un diagrama E-R.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    91/207

    Redundancias de tablas

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    92/207

    Combinacin de tablas

    Considrese un conjuntoABde relaciones varios a unodel conjunto de entidadesAal conjunto de entidadesB.Usando el esquema de construccin de tablas seconsiguen tres tablas:A,ByAB. Supngase adems que

    la participacin deAen la relacin es total; es decir, cadaentidadaen el conjunto de entidades Adebe participaren la relacin AB. Entonces se pueden combinar lastablasAyABpara formar una nica tabla consistente enla unin de las columnas de ambas tablas.

    C bi i d t bl

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    93/207

    Combinacin de tablasPor ejemplo, en el siguiente diagrama E-R la doble lnea

    del diagrama E-R indica que la participacin decuentaencuenta-sucursales total. As, una cuenta no puede existirsin estar asociada con una sucursal particular. Adems, elconjunto de relaciones cuenta-sucursal es varios a unodesdecuentaasucursal.

    Se puede combinar la tabla para cuenta-sucursal con la tabla para cuenta y senecesitan slo las dos tablas siguientes: cuenta, con los atributos nmero-cuenta, saldo y nombre-cuenta

    sucursal, con los atributos nombre-sucursal, ciudad- sucursal y activo

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    94/207

    Atributos compuesto

    Estos se representan en columnas separadas cada parte del atributo.Por ejemplo que la direccin este compuesta por calle y ciudad , enla tabla de cliente estas seran columnas de la misma.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    95/207

    Qu es un modelo relacional?

    El modelo relacional consiste en una representacingrfica de tablas de informacin (como las de Excel)pertenecientes a una base de datos, cada tabla estcompuesta por varias columnas y cada columna tiene un

    nombre nico. Adicionalmente las tablas poseen registroso filas las cuales representan una relacin entre unconjunto de valores.

    El modelo relacional proporciona una estructura de los

    datos que consiste en un conjunto de relaciones conobjeto de representar la informacin que nos interesa delmundo real.

    Se refiere al diseo lgico de la base de datos.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    96/207

    Estructura bsica

    Columnas, campos o cabeceras : AtributosDominio: conjunto de valores permitido para cada atributo,

    los dominios deben ser atmicos para cada atributo. Unvalor de dominio que es miembro de todos los dominios

    posibles es el valor nulo, que indica que el valor esdesconocido o no existe.

    Relacin: Tabla, Conjunto de tuplas.

    Tupla: Fila

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    97/207

    Esquema de la base de datos

    Cuando se habla de bases de datos se debe diferenciarentre elesquema de la base de datos, o diseo lgicode la misma, y elejemplar de la base de datos, que esuna instantnea de los datos de la misma en un momento

    dado.El concepto de relacin se corresponde con el concepto

    de variable de los lenguajes de programacin. Elconcepto de esquema de la relacin se correspondecon el concepto de definicin de tipos de los lenguajes deprogramacin.

    Ejemplo

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    98/207

    Ejemplo

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    99/207

    Relacin sucursal

    Relacin cliente

    Relacin impositor

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    100/207

    Diagramas de esquema Un esquema de bases de datos, junto con las dependencias de clave

    primaria y externa, se puede mostrar grficamente mediantediagramas de esquema.

    Cada relacin aparece como un cuadro con los atributos listadosdentro de l y el nombre de la relacin sobre l. Si hay atributos claveprimaria, una lnea horizontal cruza el cuadro con los atributos claveprimaria listados sobre ella. Las dependencias de clave externa

    aparecen como flechas desde los atributos clave externa de la relacinreferenciante a la clave primaria de la relacin referenciada.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    101/207

    ALGEBRA RELACIONAL

    Q l b l i l

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    102/207

    Qu es algebra relacional

    Es un lenguaje de consulta procedimental, conformadopor un conjunto de operaciones que toman como entradauna o dos relaciones, dando como resultado una nuevarelacin.

    Operaciones fundamentales: seleccin, proyeccin, unin,diferencia de conjuntos, producto cartesiano yrenombramiento.

    Existen otras operaciones como la interseccin deconjuntos, reunin natural , divisin y asignacin.

  • 7/26/2019 Taller DB Coto

    103/207

    OPERACIONESFUNDAMENTALES

    O i f d t l

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    104/207

    Operaciones fundamentales

    Las operaciones seleccin, proyeccin y renombramientose denominan operaciones unarias porque operan sobreuna sola relacin. Las otras tres operaciones operan sobrepares de relaciones y se denominan, por lo tanto,

    operacionesbinarias.

    SeleccinMag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    105/207

    SeleccinSe representa por medio de la letra griega sigma en

    minscula .Permite seleccionar las tuplas de una relacin.

    Ejemplo: Mostrar los prestamos donde el nombre de lasucursal sea Navacerrada.

    nombre-sucursal = Navacerrada (prstamo)

    Relacin Prstamo Resultado de la seleccin

    Seleccin

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    106/207

    SeleccinEjemplosimporte>1200(prstamo)

    Relacin prstamo Resultado de la seleccin

    En general, se permiten las comparaciones que utilizan =, , o en el predicado de seleccin.Adems, se pueden combinarvarios predicados en uno mayor utilizando las conectivas y () y o().

    S l i

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    107/207

    Seleccin

    Ejemplo:Mostrar los prstamos de ms de 1.200concedidos por

    la sucursal de Navacerrada

    nombre-sucursal = Navacerrada importe>1200 (prstamo)

    Nota: El predicado de seleccin puede incluir comparaciones entre dos atributos.nombre-cliente = nombre-banquero (responsable-prstamo)

    P i

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    108/207

    Proyeccin

    La proyeccin crea una nueva relacin con base a argumentos, es decirpermite quitar atributos y mostrar solo los que realmente se requieren.Para representar la proyeccin se utiliza la letra griega pi ()EjemploMostrar todos los nmeros de prstamo con su respectivo importe.

    nmero-prstamo, importe (prstamo)

    Relacin prstamo Resultado de la proyeccin

    Composicin de operacionesMag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    109/207

    Composicin de operacionesrelacionalesEjercicio:nombre-cliente(ciudad-cliente = Peguerinos (cliente))

    Relacin clienteCul es el resultado ?

    Unin

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    110/207

    UninOperacin binaria, denotada en la teora de conjuntos por medio de

    una .Ejemplo: averiguar el nombre de todos los clientes del banco que

    tienen una cuenta, un prstamo o ambas cosas.Relacin cliente: no tiene la informacin de las cuentas o prestamos.

    Unin Ejem Cont

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    111/207

    Unin Ejem Cont Para resolver este ejemplo hacen faltan las relaciones impositor y prestatario.

    Relacin impositor Relacin prestatario

    Para resolver lo anterior tendramos:nombre-cliente(prestatario)nombre-cliente(impositor) nombre-cliente (prestatario) nombre-cliente (impositor)

    Nota: Elimina duplicados

    Dif i d j t

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    112/207

    Diferencia de conjuntos

    Se denota con el signo menos(-), permite buscar tuplasque estn en una relacin pero no en otra.

    Tomando el ejemplo anterior de la unin

    nombre-cliente (prestatario) nombre-cliente(impositor)

    Aplicando la diferencia para obtener solamente losclientes que tienen cuentas y no prstamos

    nombre-cliente (impositor) -nombre-cliente(prestatario)

    Producto Cartesiano

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    113/207

    Producto Cartesiano

    La operacin producto cartesiano, denotada por unaspa (), permite combinar informacin de cualesquierados relaciones.

    Ejemplo

    nombre-sucursal = Navacerrada(prestatarioprstamo)Relacin prstamo

    Producto Cartesiano Ejm, ContMag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    114/207

    prestatario prstamo

    Producto Cartesiano Ejm, ContMag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    115/207

    oducto Ca tes a o j , Co t

    nombre-sucursal = Navacerrada(prestatario prstamo)

  • 7/26/2019 Taller DB Coto

    116/207

    OTRAS FUNCIONES

    Interseccin

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    117/207

    Interseccin

    Se simbolizaEjemplo:

    Se desea averiguar todos los clientes que tienen unprstamo concedido y una cuenta abierta. Utilizando la

    interseccin de conjuntos se puede escribirnombre-cliente(prestatario) nombre-cliente(impositor)

    Funciones de agregacin

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    118/207

    Funciones de agregacin Son funciones que toman una coleccin de valores y devuelven como

    resultado un nico valor.

    Funciones Definicin

    avg Devuelve la media de un conjunto de valores

    sum Toma un conjunto de valores y devuelve lasuma de los mismos

    max Devuelve el valor mximo del conjunto devalores

    min Devuelve el valor mnimo del conjunto devalores

    count Devuelve el nmero de elementos del

    conjuntoDistinct Elimina los duplicados

    Las colecciones en las que operan las funciones de agregacin puedentener valores repetidos; el orden en el que aparezcan los valores no tiene

    importancia. Estas colecciones se denominan multiconjuntos.

    Funciones de agregacin Ejem

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    119/207

    Funciones de agregacin Ejem

    Averiguar el nmero de sucursales que aparecen en la relacintrabajo-por-horas

    Relacin trabajo-por-hora Funcin de agregacin

    G count-distinct(nombre-sucursal) (trabajo-por-horas)

    El resultado de la funcin anterior es 3

    Hallar la suma total de sueldos de todos los empleados a tiempo parcial en

    cada sucursal del banco por separado.nombre-sucursalGsum(sueldo) (trabajo-por-horas)

    Funciones de agregacin Ejem Cont

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    120/207

    Funciones de agregacin Ejem. Cont

    La funcin agrupacin(G) hace lo siguiente

    Al aplicar la suma el resultado sera el siguiente

    Funciones de agregacin Ejem

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    121/207

    Funciones de agregacin Ejem

    Se desea averiguar el sueldo mximo de los empleados atiempo parcial de cada oficina, adems de la suma de lossueldos.

    nombre-sucursalGsum(sueldo), max(sueldo) (trabajo-por-horas)

    nombre-sucursal

    Gsum(sueldo) as suma-sueldo,max(sueldo) as sueldo-mximo

    (trabajo-por-horas)

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    122/207

    LENGUAJES DE CONSULTAESTRUCTURADO (SQL)

    SQL

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    123/207

    SQL

    Lenguajes de consulta estructurado.Permite la realizacin de consultas a nivel de una gestor

    de bases de datos.

    Componentes del SQLMag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    124/207

    Componentes del SQLData Definition Language (DDL) : Lenguaje de

    Definicin de datos o esquemas de estructuras,comandos de creacin, modificacin de tablas , bases dedatos , constrains, ndices y otros objetos de base dedatos , los comandos son: CREATE, ALTER y DROP.

    Data Manipulation Language (DML):Manejo de datos,incluye las operaciones como insertar nuevos registros,modificarlos, borrarlos y realizar consultas por cualquier

    criterio. Se utilizan los comandos: SELECT, INSERT,UPDATE y DELETE.

  • 7/26/2019 Taller DB Coto

    125/207

    LENGUAJE DE DEFINICIN DEDATOS O ESQUEMAS DEESTRUCTURAS (DDL)

    CREATE, ALTER Y DROP

    Sesin II, libro Gua SQL Principiantes

    CREATE

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    126/207

    CREATE

    Permite la creacin de objetos tales como: base de datos,tablas, procedimientos almacenados, disparados entreotros.

    CREATE Ejem

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    127/207

    CREATE EjemCrear una base de datos

    USE master

    GO

    CREATE DATABASE NewDB

    ON

    (NAME =c:\cursosql1\ NewDB_dat,

    FILENAME =c:\cursosql1\ NewDB.mdf,

    SIZE = 4MB,

    MAXSIZE = 10MB,FILEGROWTH = 1)

    GO

    Crear una tablaUSE NewDB

    CREATE TABLE dbo.CATEGORIA_PROD(ID_PROD INT NOT NULL

    NOMBRE_PROD VARCHAR(50) NOT NULL,

    DESCRIPCION_PROD VARCHAR(100) NULL,

    CONSTRAINT PKID PRIMARY KEY (ID_PROD ))

    ALTER

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    128/207

    ALTERPermite la modificacin de objetos a nivel de la base de

    datos tales como: tablas, procedimientos almacenados,tablas, bases de datos entre otros, realiza modificacionesa nivel de estructura.

    Sintaxis

    ALTER Ejem

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    129/207

    ALTER Ejem

    Agregue por medio de la clusula ALTER a la tablaPERSONA, la columna DIRECCION tipo varchar de 50.

    ALTER TABLE PERSONA

    ADD DIRECCION VARCHAR(50)

    DROP

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    130/207

    DROP

    Borra fsicamente un objeto de base de datos: tablas,vistas lgicas, bases de datos, procedimientosalmacenados, etc.

    Para la eliminacin de una tabla

    Ejemplo

    DROP TABLE persona

  • 7/26/2019 Taller DB Coto

    131/207

    LENGUAJE DEMANIPULACIN DE DATOS(DML)SELECT, INSERT, UPDATE y DELETE.

    Sesin II, libro Gua SQL Principiantes

    SELECT

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    132/207

    SELECT Lanza consultas, se deben determinar cules son los campos (columnas)

    que se quieren leer y su organizacin, su sintaxis en forma general:

    SELECT Ejem

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    133/207

    SELECT Ejem

    SELECT count (*), NOMBRE FROM dbo.PERSONAWHERE EDAD=20

    GROUP BY NOMBRE

    HAVING COUNT(*)>1

    INSERT

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    134/207

    INSERT

    Permite el ingreso de datos a una tabla

    Ejemplo:

    INSERT INTO PERSONA (CEDULA, NOMBRE,

    APELLIDO, EDAD)VALUES(509440300,MARIA,JUAREZ,20)

    UPDATE

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    135/207

    UPDATE

    Permite la actualizacin de datos en una tabla

    Importante

    Si no se utiliza el comando WHERE, se modifica lainformacin de la columna seleccionada para todos losregistros de la tabla.

    UPDATE Ejem

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    136/207

    UPDATE Ejem

    UPDATE dbo.PERSONASET EDAD = 15

    WHERE CEDULA = '209440300'

    DELETE

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    137/207

    DELETEPermite eliminar los registros de una tabla, manteniendo

    su estructura.

    Importante:

    Si no se utiliza la clusula el WHERE se eliminaran todoslos registros de la tabla.

    Ejemplo:DELETE FROM PERSONA

    WHERE CEDULA = 209440300

    Practica

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    138/207

    Practica

    Realizar las prcticas de la Sesin II de la Gua de SQLPrincipiantes, tanto las de clases como las de los anexos.

  • 7/26/2019 Taller DB Coto

    139/207

    OPERADORES YFUNCIONES DEAGREGADOOperadores lgicos: AND, OR Y NOTOperadores de comparacinFunciones de agregado

    OPERADORES LGICOS

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    140/207

    AND:Deben cumplirse todas las condiciones para que la consulta muestre las filas o registros

    que cumplen con las condiciones establecidas. Combina dos expresiones booleanas y devuelveTRUEcuando ambas expresiones sonTRUE(verdaderas).

    OR:Cualquiera de las condiciones que se cumplan la consulta muestra las filas o registros que cumplencon la o las condiciones establecidas.

    NOT:Permite mostrar las filas o registros que no coincidan con un valor.

    OPERADORES LGICOS

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    141/207

    OPERADORES LGICOS

    OPERADORES DE COMPARACIN

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    142/207

    Los operadores de comparacin comprueban si dosexpresiones son iguales. Se pueden utilizar en todas lasexpresiones excepto en las de los tipos de datos text,ntextoimage.

    FUNCIONES DE AGREGADO

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    143/207

    Las funciones de agregado realizan un clculo sobre un

    conjunto de valores y devuelven un solo valor. Siexceptuamos la funcin COUNT, todas las funciones deagregado ignoran los valores NULL. Las funciones deagregado se suelen usar con la clusula GROUP BY de la

    instruccin SELECT

    Ejemplos

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    144/207

    j p

    SELECT CEDULA, NOMBREFROM dbo.PERSONA

    WHERE

    EDAD > 25OR

    EDAD < =35

    SELECT COUNT (CEDULA) FROM PERSONA

  • 7/26/2019 Taller DB Coto

    145/207

    CONSULTAS DESELECCINSelect

    CONSULTAS BSICAS

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    146/207

    Entre las consultas bsicas se tienen, las consultas detodos los registros de una tabla o las que utilizan laclusula WHERE y alguno de los operadores decomparacin.

    ORDENAMIENTO DE REGISTROS

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    147/207

    Permite el ordenamiento de registros en forma ascendente

    (A-Z) y descendente (Z-A), si no se especifica por defectoes ascendente. asc: ascendentedesc: descentente

    Ejemplo:

    SELECT NOMBRE, APELLIDO FROM PERSONAWHERE EDAD >20ORDER BY NOMBRE DESC

    CONSULTAS CON PREDICADO

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    148/207

    Las consultas con predicado son aquellas que llevan el predicado entre

    la clusula y el nombre de la primera columna a recuperar.a. TOP(n): Devuelve los primeros registros segn la cantidadsolicitada (n).

    b. DISTINCT: Elimina los duplicados a la hora de mostrar losresultados de la consulta.

    c. AS: En algunas ocasiones es necesario renombrar las columnasque se devuelven de una consulta con funciones de agregado comocount, sum, entre otras y para esto se utiliza la palabra reservada

    AS

    Ejemplo:

    SELECT TOP 5 NOMBRE ,APELLIDO, EDADFROM PERSONA

  • 7/26/2019 Taller DB Coto

    149/207

    CRITERIOS DESELECCINBETWEEN , LIKE E IN

    BETWEEN

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    150/207

    Permite la recuperacin de registros mediante unintervalo de valores dado.

    Ejemplo:

    Muestre todas las personas en la que la edad no esteentre los 25 y 50 aos.

    SELECT * FROM PERSONA

    WHERE EDAD NOT BETWEEN 25 AND 50

    LIKE

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    151/207

    Permite encontrar coincidencias parciales entre cadenasde texto.

    Ejemplo:

    Muestra las personas donde la primera letra del apellido esP

    SELECT * FROM PERSONA

    WHERE APELLIDO LIKE 'P%'

    IN

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    152/207

    Este operador devuelve los registros que se encuentran dentro de una lista

    de valores dada, devuelve aquellos registros cuyo campo indicado coincidecon alguno de los en una lista.

    Ejemplos:

    Muestra todas las personas que tienen 25 o 45 o 50 aos.

    SELECT * FROM PERSONA

    WHERE EDADIN(25,45,50)

    AGRUPAMIENTO DE

  • 7/26/2019 Taller DB Coto

    153/207

    AGRUPAMIENTO DEREGISTROS Y FUNCIONESAGREGADASGROUP BY

    CLUSULA GROUP BY

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    154/207

    Permite agrupar filas cuando se utilizan funciones comoSUM o COUNT, las cuales no toman campos lnea porlnea, sino resultados globales de suma de todas las filas.

    En este punto se cabe mencionar la clusula HAVING, la

    cual trabaja como la clusula WHERE solo que su lgicaest relacionada tambin con las funciones que retornanvalores de grupos de registros.

    CLUSULA HAVING

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    155/207

    CLUSULA HAVINGUna vez que GROUP BY ha combinado los registros, HAVINGmuestra cualquier registro agrupado por la clusula GROUP BY que

    satisfaga las condiciones de la clusula HAVING.

    HAVING es similar a WHERE, determina qu registros seseleccionan. Una vez que los registros se han agrupado utilizando

    GROUP BY, HAVING determina cuales de ellos se van a mostrar.

    Ejemplo

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    156/207

    Muestra la cantidad de personas matriculadas en cadacurso en la sede de San Jos, siempre y cuando lacantidad sea mayor a 1.

    SELECTCOUNT(CEDULA)AS CANTIDAD,CODIGO, SEDE FROMHISTORIAL

    WHERE SEDE = 'SAN JOSE'

    GROUP BY CODIGO,SEDE

    HAVING COUNT(CEDULA)> 1

  • 7/26/2019 Taller DB Coto

    157/207

    TIPOS DE DATOSCarcter, numricos, fecha y hora, cadenasbinarias, definidos por el usuario.

    TIPO DE DATOS CARCTER

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    158/207

    TIPO DE DATOS NUMRICO

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    159/207

    TIPOS DE DATO DE FECHA Y HORA

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    160/207

    TIPOS DE CADENAS BINARIAS

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    161/207

    TIPOS DE DATOS DEFINIDOS POR ELUSUARIO

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    162/207

    USUARIOLos tipos de datos definidos por el usuario estn basados en los tipos dedatos del sistema. Como su nombre lo indica son tipos de datos creados

    por el usuario y definen para una base de datos especfica.

    Para la creacin y eliminacin de tipos de datos de usuario se utilizanlos procedimientos almacenados sp_addtype y sp_droptype,respectivamente.

    Importante: Como son procedimientos almacenados deben estarprecedidos por un EXEC o EXECUTE.

    TIPOS DE DATOS DEFINIDOS POR ELUSUARIO Ejem

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    163/207

    USUARIO. Ejem

    Crear el tipo de dato ID , como int , NOT NULL, en labase de datos Curso

    USE CURSO;GO

    EXEC sp_addtype ID, INT, 'NOT NULL';

    Eliminar el tipo de dato DIRECCION de la base de datosCurso

    USE CURSOGOEXEC sp_droptype DIRECCION

    PROPIEDAD IDENTITYE t i d d l tili l d ll i i

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    164/207

    Esta propiedad se suele utilizar para valores de llave primaria, genera enforma automtica un consecutivo y solo puede existir una columna identity

    por tabla, se utilizan con tipos de datos int, numeric y decimal. No permitevalores null.

    Ejemplo:

    CREATE TABLE CLASE

    (

    ID_ESTUDIANTE INT IDENTITY(50, 5) NOT NULL,NOMBRE VARCHAR (20),

    APELLIDO VARCHAR (20)

    )

  • 7/26/2019 Taller DB Coto

    165/207

    SUBCONSULTASSelect anidados

    SUBCONSULTAS Las sub consultas son consultas de select anidades o

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    166/207

    Las sub consultas son consultas de select anidades o

    select dentro de otro select, esta otra consulta selectpuede aparecer en la lista de seleccin o en las clusulasWHERE o HAVING.

    En este tipo de consultas se utilizan las siguientescondiciones

    a. EXISTS: Cierto si una sub consulta devuelve comomnimo un registro

    b. IN:Pertenencia a un conjunto de valores o ser miembrode una sub consulta

    SUBCONSULTAS

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    167/207

    SUBCONSULTAS Ejem

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    168/207

    Se necesita saber cul de las personas actualmente no

    estn inscritos en algn curso.

    SELECT NOMBRE , APELLIDO FROM PERSONAWHERE CEDULA NOT IN(SELECT CEDULA FROM HISTORIAL)

    Mostrar el nombre y apellido de todas aquellas personas quetengan el curso 1 matriculado y la nota sea mayor a 80.

    SELECT NOMBRE,APELLIDO FROM PERSONA A

    WHEREEXISTS(SELECT * FROM HISTORIAL BWHERE A.CEDULA = B.CEDULA

    AND B.CODIGO = 1AND B.NOTA > 80)

  • 7/26/2019 Taller DB Coto

    169/207

    CONSULTASMULTITABLA O JOINSFusin, referencia cruzada, Unininterna(unin, inner join), Unin externa(left

    join, right join, full join)

    CONSULTAS MULTITABLAS

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    170/207

    Las consultas multitablas o joins, conocidas tambin como

    combinaciones o composiciones, permiten la recuperacin dedatos de 2 o ms tablas.

    Es en este tipo de consultas donde el uso de los alias ayuda aidentificar de donde se estn tomando los datos de la consulta.

    Una condicin de combinacin o composicin define la formaen la que 2 tablas se relacionan en una consulta.

    Generalmente en las combinaciones se utilizan, las columnasde llave primaria y llave fornea para establecer una condicin.

    PROCESO DE FUSIN Es una de las formas ms simples de realizar una combinacin entre tablas, este proceso

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    171/207

    p , ptiene varias etapas:

    a. Primero ordena las tablas por llave primaria y llave fornea respectivamente.b. Luego recorre las tablas en forma secuencial revisando las condiciones especificadas en la clausula

    where.c. Cada vez que se cumpla la condicin en las dos tablas a la vez las filas sern mostradas en el

    resultado.

    Ejemplo:

    Muestre, el nombre, apellido, cdigo, descripcin de curso, solo de las personas queactualmente estn matriculados.

    SELECT A.NOMBRE, A.APELLIDO, B.CODIGO, B.DESCRIPCIONFROM PERSONA A, CURSO B, HISTORIAL CWHERE A.CEDULA =C.CEDULA

    AND B.CODIGO = C.CODIGO

    CONSULTAS DE REFERENCIASCRUZADAS

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    172/207

    CRUZADAS

    a. Muestran todas las combinaciones posibles de todaslas filas o registros de las tablas combinadas.

    b. En este tipo de combinacin no se requiere tener unacolumna en comn.

    c. Cuando se utilizan combinaciones cruzadas, SQLServer genera un producto cartesiano en el que elnmero de filas del conjunto de resultados es igual alnmero de filas de la primera tabla multiplicado por elnmero de filas de la segunda tabla.

    d. Para las consultas de referencia cruzada se utiliza elCROSS JOIN

    CONSULTAS DE REFERENCIASCRUZADAS

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    173/207

    C U S

    Ejemplo:

    SELECT A.CODIGO,DESCRIPCION

    FROM CURSO ACROSS JOINHISTORIAL

    CONSULTAS DE UNIN INTERNAS

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    174/207

    La UNION, es un tipo de consulta interna que se puede

    considerar como una suma, se sumara en una tabla deresultado el conjunto de columnas de dos tablas segn elcriterio aplicado.T1 {1,2,3,4,5,6} y T2 {1.3.5.7}

    T1 UNION T2 = {1,2,3,4,5,6,7}Las dos tablas a unir deben tener el mismo nmero de

    columnas y el mismo tipo de dato por columna.

    INNER JOIN Las consultas internas combinan tablas mediante la comparacin de los valores de las

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    175/207

    pcolumnas que son comunes a ambas tablas.

    Se devuelven las filas o registros que cumplen la condicin. Para este tipo de consultas se utiliza JOIN o INNER JOIN

    Ejemplo:

    Mostrar el nombre, apellido y cdula de todas las personas que estn actualmenteinscritos en algn curso.

    SELECT NOMBRE, APELLIDO,PERSONA.CEDULAFROM PERSONAJOINHISTORIALON PERSONA.CEDULA = HISTORIAL.CEDULA

    CONSULTAS DE UNIN EXTERNA Las uniones externas izquierda y derecha combinan filas

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    176/207

    Las uniones externas izquierda y derecha combinan filas

    de dos tablas que cumplen una condicin decombinacin, ms las filas de la tabla izquierda o derechaque no la cumplen.

    Las uniones externas izquierda y derecha se utilizancuando se necesita una lista completa de datos de unade las tablas ms la informacin que cumpla la condicin.

    Este tipo de uniones no se utilizan a menudo, porque enalgunos casos los resultados dados no son los esperadosen estos casos se deben realizar varias pruebas o

    cambiar el orden de las tablas, en ocasiones utilizar otrotipo de consulta.

    CONSULTAS DE UNIN EXTERNA LEFT JOIN: Unin a la izquierda toma los datos de la primera tabla especificada

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    177/207

    LEFT JOIN:Unin a la izquierda, toma los datos de la primera tabla especificada.

    RIGHT JOIN:Unin a la derecha, toma los datos de la segunda tabla especificada.

    FULL OUTER JOIN O FULL JOIN:Combinacin externa completa, incluye todas las filasde ambas tablas, con independencia de que la otra tabla tenga o no un valor coincidente.

    CONSULTAS DE UNIN EXTERNAEj l

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    178/207

    Ejemplos:

    a. Mostrar las personas que tienen cursos matriculadosSELECT A.CEDULA,A.NOMBRE, A.APELLIDOFROM PERSONAALEFT JOIN HISTORIAL BON A.CEDULA = B.CEDULAWHERE B.CEDULA IS NOT NULLGROUP BY A.CEDULA,A.NOMBRE, A.APELLIDO

    b. Mostrar las personas que no tienen cursos matriculadosSELECT A.CEDULA,A.NOMBRE, A.APELLIDOFROM HISTORIAL BRIGHT JOIN PERSONAAON A.CEDULA = B.CEDULAWHERE B.CEDULA IS NULLGROUP BY A.CEDULA,A.NOMBRE, A.APELLIDO

    c. Devuelve las personas que tienen cursos matriculadosSELECT A.CEDULA,A.NOMBRE, A.APELLIDO FROM PERSONAAFULL JOIN HISTORIAL BON A.CEDULA = B.CEDULAWHERE B.CEDULA IS NOT NULLGROUP BY A.CEDULA,A.NOMBRE, A.APELLIDO

  • 7/26/2019 Taller DB Coto

    179/207

    VISTASTablas virtuales en SQL

    Concepto de Vista

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    180/207

    Una vista en terminologa SQL es una tabla que deriva deotras tablas. Esas otras tablas pueden ser tablas base ovistas definidas anteriormente. Una vista no existenecesariamente en formato fsico; est considerada comouna tabla virtual,esto limita las posibles operaciones de

    actualizacin que pueden aplicarse a las vistas, pero noofrecen limitacin alguna al consultar una vista.

    Para la creacin de una vista se utiliza el comandocreate

    view.

    Ejemplo de vista Crear una vista

    CREATE VIEW Para eliminar la vista

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    181/207

    CREATE VIEWMATRICULADOS_VIEW

    AS

    SELECT A.CEDULA,A.NOMBRE,A.APELLIDO

    FROM PERSONA A

    LEFT JOIN HISTORIAL B

    ON A.CEDULA = B.CEDULA

    WHERE B.CEDULA IS NOT NULL

    GROUP BY A.CEDULA,A.NOMBRE,A.APELLIDO

    Para mostrar la informacin de la vista

    SELECT * FROMMATRICULADOS_VIEW

    Para eliminar la vista

    DROP VIEWMATRICULADOS_VIEW

    Para modificarla

    AlTER VIEW MATRICULADOS_VIEW

    AS

    SELECT A.CEDULA,A.NOMBRE,A.APELLIDO

    FROM PERSONA A

    LEFT JOIN HISTORIAL B

    ON A.CEDULA = B.CEDULA

    WHERE B.CEDULA IS NULLGROUP BY A.CEDULA,A.NOMBRE,A.APELLIDO

    Nota: si se actualiza alguna de las tablas que componen la vista, esta se actualizaautomticamente.

  • 7/26/2019 Taller DB Coto

    182/207

    SELECT INTOCreacin de tablas

    Select into definicin El SELECT INTO crea una nueva tabla a partir de una consulta. No permite crear una

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    183/207

    tabla con particiones, ya que las columnas de la tabla resultante son los campos

    seleccionados en la consulta que dio origen a la nueva tabla. Los ndices, lasrestricciones y los desencadenadores definidos en la tabla de origen no se transfierena la nueva tabla, ni se pueden especificar en la instruccin SELECT...INTO. Si serequieren estos objetos, se deben crear despus de ejecutar SELECT...INTO.

    Sintaxis

    Select Into Ejemplo

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    184/207

    Se requiere crear una tabla con solo las personas que en estemomento no se encuentran matriculadas en ningn curso.

    SELECT A.CEDULA, A.NOMBRE, A.APELLIDOINTONOMATRICULADOS

    FROMPERSONA AWHERE A.CEDULA NOT IN (SELECT B.CEDULAFROM HISTORIAL B)

    Nota: A diferencia de la vista, si alguna de las tablasinvolucradas en la consulta del select into se modifica, la tablaproducto del select into no se actualiza, hay que ejecutarnuevamente el select into.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    185/207

    REGLAS DE INTEGRIDADY NORMALIZACIN

  • 7/26/2019 Taller DB Coto

    186/207

    REGLAS DEINTEGRIDAD

    Reglas de integridad

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    187/207

    Las reglas de integridad son todas aquellas condicionesque los datos deben cumplir.

    Esta asociacin se puede considerar como unapaternidad, donde el padre es la tabla que contiene lallave primaria y el hijo o hija la tabla que contiene la llave

    fornea.Las reglas de padres e hijas llamadas formalmente

    integridad referencial, establecen validacin adicional enel momento de insertar, modificar y borrar informacin, esun sistema de reglas que utilizan la mayora de las bases

    de datos relacionales para asegurarse que los registrosde tablas relacionadas son vlidos y que no se eliminen omodifiquen datos relacionados de forma accidentalproduciendo errores de integridad.

    Reglas de integridad del modelorelacional

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    188/207

    Integridad de entidad : llave primaria , primary key

    Integridad de dominio : respetar el valor de la columna

    Integridad referencial : llaves forneas

    Integridad definida por el usuario: Reglas del negocio

  • 7/26/2019 Taller DB Coto

    189/207

    NORMALIZACIN1FN, 2FN y 3FN

    Normalizacin

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    190/207

    La normalizacin de un diseo lgico de la base de datosimplica la utilizacin de mtodos formales para separarlos datos en varias tablas relacionadas. Unacaracterstica de una base de datos normalizada es laexistencia de varias tablas pequeas con menos

    columnas. En las bases de datos no normalizadas,existen menos tablas ms amplias con ms columnas.Bsicamente la normalizacin es el proceso de organizar

    los datos de una base de datos. Se incluye la creacin detablas y el establecimiento de relaciones entre ellas

    segn reglas diseadas tanto para proteger los datoscomo para hacer que la base de datos sea ms flexible aleliminar la redundancia y las dependencias incoherentes.

    Primera Forma Normal (1FN)

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    191/207

    Todos los atributos son atmicos esto quiere decir que los atributos

    son indivisibles. Eliminar los grupos repetidos de las tablas individuales. Crear una tabla independiente para cada conjunto de datos relacionados. Identificar cada conjunto de datos relacionados con una llave primaria. La llave primaria no contiene atributos nulos.

    No debe existir variacin en el nmero de columnas. Los Campos no llave deben identificarse por la llave (Dependencia Funcional). Debe Existir una independencia del orden tanto de las filas como de las

    columnas, es decir, si los datos cambian de orden no deben cambiar sussignificados

    Una tabla no puede tener mltiples valores en cada columna. Los datos sonatmicos. (Si a cada valor de X le pertenece un valor de Y y viceversa)

    Esta forma normal elimina los valores repetidos dentro de una base de datos. No es permitido el uso de varios campos en una sola tabla para almacenar

    datos similares.

    Segunda Forma Normal (2FN)

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    192/207

    Se deben crear tablas independientes para conjuntos devalores que se apliquen a varios registros.

    Estas tablas deben estar relacionadas por medio declaves externas (llaves forneas).

    Una relacin est en 2FN si est en 1FN y si los atributos

    que no forman parte de ninguna clave dependen deforma completa de la clave principal. Es decir que noexisten dependencias parciales. (Todos los atributos queno son llave primaria deben depender nicamente de lallave primaria).

    Los registros no deben depender de nada que no sea unallave primaria de una tabla, una llave compuesta si esnecesario.

    Tercera forma normal (3FN)S d b li i l d d d l ll i i

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    193/207

    Se deben eliminar los campos que no dependan de la llave primaria.

    La tabla se encuentra en 3FN si esta 2FN y si no existe ninguna dependencia funcionaltransitiva entre los atributos que no son llave.

    Los valores de un registro que no sean parte de la llave primaria de ese registro nopertenecen a la tabla. En general, siempre que el contenido de un grupo de campos puedaaplicarse a ms de un nico registro de la tabla, se debe considerar colocar estos camposen una tabla independiente.

    Excepcin: aunque en teora es deseable cumplir la tercera forma normal, no siempre esprctico. Si se tiene una tabla Clientes y se desea eliminar todas las dependencias posiblesentre los campos, se deben crear tablas independientes para las ciudades, cdigospostales, representantes de venta, clases de clientes y cualquier otro factor que pueda estarduplicado en varios registros. En teora, la normalizacin merece el trabajo que supone. Sinembargo, muchas tablas pequeas pueden degradar el rendimiento o superar la capacidadde memoria o de archivos abiertos.

    Es ms factible aplicar la tercera forma normal slo a los datos que cambian con frecuencia.Si quedan algunos campos dependientes, se debe disear la aplicacin para que pida alusuario que compruebe todos los campos relacionados cuando cambie alguno.

    Generalidades

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    194/207

    Una tabla debe tener un identificador.

    Una tabla solo debe almacenar datos para un nico tipode entidad.

    En una tabla deben evitarse las columnas que aceptenvalores nulos.

    Una tabla no debe tener valores ni columnas que serepitan.

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    195/207

    PROCEDIMIENTOS

    ALMACENADOS , TRIGER YCURSORES

    Procedimientos almacenados

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    196/207

    Los Procedimientos Almacenados o Store Procedure sonunidades de cdigo compuestas por una o mssentencias de Transact-SQL o T-SQL y que sonalmacenadas en el servidor.

    Son mdulos o rutinas que encapsulan cdigo para sureutilizacin, pueden incluir parmetros de entrada,devolver resultados tabulares o escalares y mensajespara el cliente, invocar instrucciones de lenguaje dedefinicin de datos (DDL) e instrucciones de lenguaje de

    manipulacin de datos (DML), as como devolverparmetros de salida y realizar llamados a otrosprocedimientos almacenados .

    Procedimientos almacenados

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    197/207

    Modificar

    Eliminar

    Ejecutar

    Ejemplo de procedimiento almacenado

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    198/207

    CREATE PROCEDURE MUESTRA_EDAD (@IDINT,@EDAD INT OUTPUT)

    AS

    SET NOCOUNT ON;

    SELECT @EDAD = EDADFROM PERSONA

    WHERE CEDULA = @ID;

    RETURN

    DECLARE @EDAD INTEXEC MUESTRA_EDAD 109440300,@EDAD OUTPUT

    PRINT @EDAD

    Cursores

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    199/207

    Un cursor es una especie de variable en el conjunto deresultados de una consulta, el cual permite eldesplazamiento a travs de los resultados de unaconsulta; permite recorrer el resultado de una consultaSQL y realizar operaciones en cada paso de sta.

    Un cursor se declara para una instruccin Selectdeterminada.

    Cursores Cerrar un cursor

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    200/207

    Quitar la referencia a un cursor

    Recupera las filas del cursor,

    CursoresD l

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    201/207

    Declarar un cursor

    Abrir un cursor

    UPDATE: Permite la modificacin de los datos existentesen una o varias tablas. Se utiliza en cursores declarados

    como FOR UPDATE.

    DELETE: Elimina filas de una tabla.

    Cursores ejemploDECLARE HISTORIAL CURSOR CURSOR FOR

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    202/207

    DECLARE HISTORIAL_CURSOR CURSOR FORSELECT CEDULA,CODIGOFROM HISTORIALWHERE CEDULA = 609440300AND CODIGO = 3

    FOR UPDATEOPEN HISTORIAL_CURSOR;FETCH NEXT FROM HISTORIAL_CURSOR;DELETE FROM HISTORIAL

    WHERE CURRENT OF HISTORIAL_CURSOR;CLOSE HISTORIAL_CURSOR;DEALLOCATE HISTORIAL_CURSOR;GO

    Triggers

    S l t bi d d d

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    203/207

    Se les conoce tambin como desencadenadores odisparadores.

    Son lo mismo que los Stored Procedures pero stos seejecutan desantendidamente y automticamente cuandoun usuario realiza una accin con la tabla de una base dedatos que lleve asociado este disparador. Se puedencrear disparadores para las sentencias de SQL Insert,Update y Delete.

    Se utilizan en la validacin de datos, y el control de la

    integridad dentro de la estructura de la base de datos.

    Triggers

    C i d t i H bilit t i

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    204/207

    Creacin de trigger

    Modificar un trigger

    Eliminar trigger

    Habilitar trigger

    Deshabilitar trigger

    Trigger ejemplo

    CREATE TRIGGER TR UP HISTORIAL ON HISTORIAL

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    205/207

    CREATE TRIGGER TR_UP_HISTORIAL ON HISTORIAL

    FOR UPDATE

    AS

    PRINT 'FILAS MODIFICADAS '+ CAST(@@ROWCOUNT

    AS NCHAR(8))GO

    Referencias

    N th E Si t d B d D t Addi W l

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    206/207

    Navathe E. Sistemas de Base de Datos. Addison Wesley,5ta Edicin. PEARSON EDUCACiN S.A .. Madrid. 2007.

    Solano Marianella. Gua SQL Principiantes, ICAI. 2012

    Solano Marianella. Gua SQL Intermedio, ICAI. 2012

    http://fdebasesdedatos.wikispaces.com/

    Mag Marianella Solano Orias.

  • 7/26/2019 Taller DB Coto

    207/207

    Usado con fines acadmicos