Upload
anthony-vargas
View
232
Download
0
Embed Size (px)
Citation preview
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