Sie sind auf Seite 1von 207

TALLER DE BASES DE

DATOS
Nivel Bachillerato

Mag Marianella Solano Orias

Mag Marianella Solano Orias.

LAS BASES DE DATOS EN


LAS ORGANIZACIONES

HISTORIA Y
CONCEPTOS BSICOS
DE BASES DE DATOS

Mag Marianella Solano Orias.

Historia de las bases de datos

Mag Marianella Solano Orias.

Mag Marianella Solano Orias.

Base de Datos
Una base de datos o banco de datos (BD) es un conjunto

de datos pertenecientes a un mismo contexto y


almacenados sistemticamente para su posterior uso, la
mayora de las bases de datos estn en formato digital
(electrnico).
Es una coleccin de datos relacionados.

Mag Marianella Solano Orias.

Elementos de una base de datos


Entidades: Persona, lugar, objeto u evento para el cual se obtiene y

mantienen 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 un

miembro de una entidad.


Archivos: Grupo de registros que contienen datos sobre una entidad.
Llaves (keys): Campo o combinacin de campos que permite

localizar, acceder o identificar un registro en especfico.

Mag Marianella Solano Orias.

Propiedades implcitas de una base de


datos
Representa algn aspecto del mundo real, lo que en ocasiones

se denomina minimundo o universo de discurso (UoD,


Universe of discourse). Los cambios introducidos en el
minimundo se reflejan en la base de datos.
Es una coleccin de datos lgicamente coherente con algn

tipo de significado inherente. No es correcto denominar base


de datos a un surtido aleatorio de datos.
Una base de datos se disea, construye y rellena con datos

para un propsito especfico. Dispone de un grupo pretendido


de usuarios y algunas aplicaciones preconcebidas en las que
esos usuarios estn interesados.

Mag Marianella Solano Orias.

Metadatos
Definicin o informacin descriptiva de una base de datos

que se almacena en forma de catlogo o diccionario de la


base de datos.
Se almacenan en la base de datos.

ACTORES EN UNA
BASE DE DATOS

Mag Marianella Solano Orias.

Administradores de la Base de datos


Administracin de la base de datos y el

DBMS.
Responsable :
acceso autorizado
coordinacin y monitorizacin de su uso, y de
recursos de software y hardware necesarios

Problemas como las brechas de seguridad o de

tiempos de respuesta pobres.

DBA est asistido por un equipo de


personas que llevan a cabo estas
funciones.

Mag Marianella Solano Orias.

Diseadores de la base de datos


Identifican

los datos que se


almacenarn en la base de datos
Elegir las estructuras apropiadas
para representar y almacenar esos
datos.
Su trabajo se debe realizar antes
de implementar y rellenar la base
de datos.
Comunicacin
con todos los
usuarios de la base de datos para
conocer sus requisitos, a fin de
crear un diseo que cumpla con
ellos.

Mag Marianella Solano Orias.

Usuarios finales
Personas cuyos trabajos requieren acceso a la base de

datos para realizar consultas,actualizaciones e informes y


se clasifican en:
Casuales.
Principales o paramtricos.
Sofisticados.
Independientes.

Mag Marianella Solano Orias.

Analistas de sistemas y programadores de


aplicaciones (ingenieros de software)
Los analistas de sistemas determinan los

requisitos
de
los
usuarios
finales,
especialmente de los usuarios finales
principiantes y paramtricos, as como las
especificaciones de desarrollo para las
transacciones enlatadas que satisfacen esos
requisitos.
Los
programadores
de
aplicaciones
implementan esas especificaciones como
programas; despus, verifican, depuran,
documentan y mantienen esas transacciones
enlatadas. Dichos analistas y programadores
(normalmente
conocidos
como
desarrolladores de software o ingenieros
de software) deben familiarizarse con todas
las posibilidades proporcionadas por el DBMS
al objeto de desempear sus tareas.

Mag Marianella Solano Orias.

Otros usuarios de bases de datos


Diseadores e implementadores de sistemas

DBMS: Disean e implementan los mdulos y las


interfaces DBMS como un paquete software.
Desarrolladores de herramientas. Disean e
implementan herramientas (paquetes de software
que facilitan el modelado y el diseo de la base de
datos, el diseo del sistema de bases de datos y
la mejora del rendimiento).
Operadores y personal de mantenimiento
(personal de administracin del sistema). Son los
responsables de la ejecucin y el mantenimiento
real del entorno hardware y software para el
sistema de bases de datos.
Estas categoras de trabajadores se encargan de
que el sistema de bases de datos est disponible
para los usuarios finales, normalmente no utilizan la
base de datos para sus propios fines.

Mag Marianella Solano Orias.

Entorno del DBMS

Mag Marianella Solano Orias.

QUE SE DEBE PROTEGER EN UNA DB?


Los deberes dependen de la descripcin del puesto, corporacin y
polticas de Tecnologas de Informacin (TI).
El administrador de base de datos (DBA) es la persona responsable
de los aspectos ambientales de una base de datos. En general esto
incluye:
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 las
limitaciones
Desarrollo y soporte a pruebas: Ayudar a los programadores e
ingenieros a utilizar eficientemente la base de datos.

Mag Marianella Solano Orias.

INTEGRIDAD
La integridad de una base de datos significa que, la base de datos o los
programas que generaron su contenido, incorporen mtodos que aseguren que
el contenido de los datos del sistema no se rompan as como las reglas del
negocio.
Dos pasos importantes en el diseo de las tablas son la identificacin de
valores vlidos para una columna y la determinacin de cmo forzar la
integridad de los datos en la columna. La integridad de datos pertenece a una
de las siguientes categoras:
Integridad de entidad
La integridad de entidad define una fila como entidad nica para una tabla
determinada. La integridad de entidad exige la integridad de las columnas de
los identificadores o la clave principal de una tabla, mediante ndices y
restricciones.
Integridad de dominio
La integridad de dominio viene dada por la validez de las entradas para una
columna determinada. Puede exigir la integridad de dominio para restringir el
tipo mediante tipos de datos, el formato mediante reglas y restricciones, o el
intervalo de valores posibles mediante restricciones.

Mag Marianella Solano Orias.

Integridad referencial
La integridad referencial protege las relaciones definidas entre las tablas cuando
se crean o se eliminan filas. La integridad referencial garantiza que los valores de
clave sean coherentes en las distintas tablas. Para conseguir esa coherencia, es
preciso que no haya referencias a valores inexistentes y que, si cambia el valor de
una clave, todas las referencias a ella se cambien en consecuencia en toda la
base 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 una
tabla relacionada.
Eliminar filas de una tabla principal cuando hay filas relacionadas
coincidentes.
Integridad definida por el usuario
La integridad definida por el usuario permite definir reglas de empresa especficas
que no pertenecen a ninguna otra categora de integridad. Todas las categoras de
integridad admiten la integridad definida por el usuario. Esto incluye todas las
restricciones de nivel de columna y nivel de tabla en procedimientos almacenados
y desencadenadores.

Mag Marianella Solano Orias.

SISTEMAS GESTORES DE
BASES DE DATOS.

Mag Marianella Solano Orias.

Sistema gestor de bases de datos


Los sistemas de gestin de bases de datos (en ingls

database management system, abreviado DBMS) sirven


de interfaz entre la base de datos, el usuario y las
aplicaciones que la utilizan.

Mag Marianella Solano Orias.

Ejemplos de DBMS

Mag Marianella Solano Orias.

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.

Entorno de un sistema de bases de datos simplificado

Mag Marianella Solano Orias.

ESTRUCTURA FSICA Y
LGICA DE GESTORES DE
BASES DE DATOS

ESTRUCTURA FSICA Y
LGICA DE LOS DBMS

Mag Marianella Solano Orias.

Arquitectura de los DBMS


Arquitectura en 3 niveles mtodo de gran aceptacin para

explicar el funcionamiento de los sistemas de bases de


datos fue formalizado en 1975 y mejorado en 1978 es
tambin conocido como arquitectura ANSI/SPARC asi
llamada por la Standards Planning and Requirements
Committee of the American National Standards Institute
en espaol el Comite de Standarizacin de
Requerimientos y Planificacin del Instituto Nacional de
Standarizacin Americano.
Nivel interno (Fsico)
Nivel conceptual
Nivel externo o de vistas.

Mag Marianella Solano Orias.

Nivel Interno
Describe

la
estructura
almacenamiento fsico de la BD.

de

Utiliza un modelo fsico de data y

describe los detalles completos de


almacenamiento de data y el acceso a
los caminos de la BD.

Nivel

mas bajo de abstraccin


describe
como
se
almacenan
realmente los datos. En el nivel fsico
se describen en detalle las
estructuras de datos complejas de
bajo nivel.

Mag Marianella Solano Orias.

Nivel Conceptual
Describe la estructura de toda la base de

datos para una comunidad de usuarios.


Oculta los detalles de las estructuras de
almacenamiento fsico y se concentra en
describir las entidades, los tipos de datos,
las relaciones, las operaciones de los
usuarios y las restricciones.
Siguiente nivel ms alto de abstraccin, se
describe cules son los datos reales que
estn almacenados en la base de datos y
qu relaciones existen entre los datos.

Mag Marianella Solano Orias.

Nivel Externo
Nivel

de vista incluye un
nmero
de
esquemas
externos
o
vistas
de
usuario.
Cada
esquema
externo describe la vista de
la BD de un grupo o de los
usuarios de la BD. Cada
vista tpicamente describe
la parte de la BD en la cual
un grupo de usuarios en
particular esta interesado y
oculta el resto de la BD para
otros grupos de usuario.
El nivel de visin es ms alto,
en el cual se describe solo una
parte de la base de datos y se
presentan vistas diferentes de
la misma base de datos a los
usuarios.

Mag Marianella Solano Orias.

Arquitectura de tres esquemas o niveles

DISEO E IMPLEMENTACIN
DE MODELOS DE BASES DE
DATOS
Fases del diseo de bases de datos

Mag Marianella Solano Orias.

Generalidades de los modelos de bases


de datos
Los modelos de bases de datos, se basan en un

nivel conceptual que permite el diseo de la DB.


Una vez recopilados y analizados todos los
requisitos, el siguiente paso es crear un
esquema conceptual para la base de datos,
mediante un modelo de datos conceptual de alto
nivel. Este paso se denomina diseo
conceptual.

Mag Marianella Solano Orias.

Esquema conceptual
Descripcin concisa de los requisitos de datos por parte

de los usuarios e incluye descripciones detalladas de los


tipos de entidades, relaciones y restricciones; se
expresan utilizando los conceptos proporcionados por el
modelo de datos de alto nivel. Como estos conceptos no
incluyen detalles de implementacin, normalmente son
ms fciles de entender y se pueden utilizar para
comunicar con usuarios no tcnicos.

Mag Marianella Solano Orias.

Esquema conceptual
Alto nivel , se puede utilizar para garantizar que se han

reunido todos los requerimientos o requisitos de datos del


usuario, permite a los diseadores concentrarse en las
propiedades 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 a
utilizar.

Mag Marianella Solano Orias.

Esquema lgico
Una

vez realizado el esquema conceptual este se


transforma de modelo de datos de alto nivel en modelo de
datos de implementacin, conocido como diseo lgico o
asignacin de modelos de datos.

Mag Marianella Solano Orias.

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

especifican las estructuras de almacenamiento interno, los


ndices, las rutas de acceso y la organizacin de los
archivos para la base de datos.

Mag Marianella Solano Orias.

Fases principales del Diseo de la DB

Mag Marianella Solano Orias.

Diferencias
Modelo Conceptual

Modelo lgico

Independiente del DBMS

Depende de un tipo de

Mas cercano al usuario

DBMS en particular
Mas cercano al ordenador

Mag Marianella Solano Orias.

Ejemplos
Modelo conceptual

Modelo Entidad relacin

Modelo lgico

Modelo relacional

Mag Marianella Solano Orias.

MODELO ENTIDAD
RELACIN

Mag Marianella Solano Orias.

Modelo Entidad relacin


Modelo conceptual de alto nivel, que se basa en la

percepcin del mundo real que consta de una coleccin de


objetos bsicos llamados entidades y de relaciones entre
otros objetos.
Las entidades se describen en una base de datos mediante
un conjunto de atributos.
Una relacin es una asociacin entre varias entidades.

Mag Marianella Solano Orias.

Conjuntos de entidades
Es un conjunto de entidades del mismo tipo que

comparten las mismas propiedades, o atributos. El


conjunto de todas las personas que son clientes en un
banco dado, por ejemplo, se pueden definir como el
conjunto de entidades cliente.
Las entidades individuales que constituyen un conjunto
se llaman la extensin del conjunto de entidades.
Los conjuntos de entidades no son necesariamente
disjuntos. Por ejemplo, es posible definir el conjunto de
entidades de todos los empleados de un banco
(empleado) y el conjunto de entidades de todos los
clientes del banco (cliente). Una entidad persona puede
ser una entidad empleado, una entidad cliente, ambas
cosas, o ninguna.

Mag Marianella Solano Orias.

Atributos
Los atributos describen propiedades que posee cada

miembro 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 un
conjunto de pares (atributo,valor),un par para cada atributo
del conjunto de entidades. Por ejemplo, una entidad
concreta cliente se puede describir mediante el conjunto
{(id-cliente, 67.789.901),(nombre-cliente, Lpez), (callecliente, Mayor), (ciudad-cliente, Peguerinos)},

Mag Marianella Solano Orias.

Atributos
Tipos de atributos
Simples: No estn divididos en subpartes.
Compuestos: Se pueden dividir en subpartes. Por ejemplo
nombre-cliente, podra estar estructurado en un atributo
compuesto consistente en nombre, primer-apellido y segundoapellido.

Mag Marianella Solano Orias.

Atributos monovalorados y multivalorados


Monovalorados: atributos que se han especificado en

los ejemplos tienen todos un valor slo para una entidad


concreta. Por ejemplo, el atributo nmero-prstamo para
una entidad prstamo especfico, referencia a un nico
nmero de prstamo.
Multivalorados: en ocasiones un atributo tiene un
conjunto de elementos para una entidad especfica; por
ejemplo un conjunto de la entidad empleado, cualquier
empleado puede tener cero, uno o ms nmeros
telefnicos. Este tipo de atributos permite el
establecimiento de lmites inferior y superior.

Mag Marianella Solano Orias.

Atributos derivados
El 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 y
fecha actual , la edad puede ser el resultado de la fecha
actual menos la fecha de nacimiento.
El valor de un atributo derivado no se almacena, sino
que se calcula cuando sea necesario.

Mag Marianella Solano Orias.

Valor Nulo de un atributo


Un atributo toma un valor nulo cuando una entidad no tiene un

valor para el. Por ejemplo una persona que no tiene un


segundo 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. Por
ejemplo 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 pero
no se conoce cul es (perdido), o que no se sabe si el piso
forma parte o no de la direccin del cliente (desconocido).

Mag Marianella Solano Orias.

Conjunto de relaciones
Es una asociacin entre diferentes entidades. Por ejemplo

se puede crear una relacin que asocie al cliente Lpez


con el prstamo P-15.
Un conjunto de relaciones es un conjunto de relaciones
del mismo tipo. Formalmente es una relacin matemtica
con n > = 2 de conjuntos de entidades (posiblemente no
distintos). 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.

Ejemplo de relaciones

Mag Marianella Solano Orias.

Particin
Es la asociacin de dos conjuntos de entidades, esto

quiere decir que los conjuntos de entidades E1, E2,, En


participan en el conjunto de relaciones R.
La funcin que desempea una entidad en una relacin
se llama papel de la entidad; los conjuntos de entidades
que participan en un conjunto de relaciones son
generalmente distintos, los papeles estn implcitos y no
se especifican normalmente. Son tiles cuando el
significado de una relacin requiere aclaracin.

Mag Marianella Solano Orias.

Restricciones correspondencia de
cardinalidades
La

correspondencia de cardinalidades, o razn de


cardinalidad, expresa el nmero de entidades a las que otra
entidad 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 de
cardinalidades debe ser una de las siguientes:
Uno a uno
Uno a varios
De varios a uno
De varios a varios

Nota: En otros textos se hace referencia a varios como


muchos

Mag Marianella Solano Orias.

Uno a uno
Una entidad en A se asocia con a lo sumo una entidad en

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


entidad en A

Mag Marianella Solano Orias.

Uno a varios
Una entidad en A se asocia con cualquier nmero de

entidades en B (ninguna o varias). Una entidad en B, sin


embargo, se puede asociar con a lo sumo una entidad en
A

Mag Marianella Solano Orias.

Varios a uno
Una entidad en A se asocia con a lo sumo una entidad en

B. Una entidad en B, sin embargo, se puede asociar con


cualquier nmero de entidades (ninguna o varias) en A

Mag Marianella Solano Orias.

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

cualquier nmero de entidades (ninguna o varias) en B, y


una entidad en B se asocia con cualquier nmero de
entidades (ninguna o varias) en A

Mag Marianella Solano Orias.

Cardinalidad
Que tipo de cardinalidad es?

Mag Marianella Solano Orias.

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 atributos

que identifican de modo nico las tuplas de una relacin.

Mag Marianella Solano Orias.

Claves candidatas
Una superclave puede contener atributos innecesarios.

Si K es una superclave, entonces tambin lo es cualquier


superconjunto de K. A menudo interesan las superclaves
tales que los subconjuntos propios de ellas no son
superclave. Tales superclaves mnimas se llaman claves
candidatas.
Si una relacin tiene mas de una clave, cada una es una
clave candidata. Una de ellas es arbitrariamente
designada como clave primaria. El resto son
secundarias.

Mag Marianella Solano Orias.

Clave primaria
Para denotar una clave candidata que es elegida por el

diseador de la base de datos como elemento principal


para identificar las entidades dentro de un conjunto de
entidades.

Mag Marianella Solano Orias.

Diagrama Entidad-Relacin(E-R)
La estructura lgica general de una base de datos se

puede expresar grficamente mediante un diagrama ER. Los diagramas son simples y claros, cualidades que
pueden ser responsables del amplio uso del modelo E-R.

Mag Marianella Solano Orias.

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 una
entidad en un conjunto de relaciones.
Rectngulos dobles: que representan conjuntos de
entidades dbiles.

Mag Marianella Solano Orias.

Ejemplo de diagrama E-R

Los atributos subrayados, indican la llave o clave


primaria para cada conjunto de entidades.

Mag Marianella Solano Orias.

Relaciones y cardinalidad en el diagrama


E-R
Una

lnea dirigida desde el conjunto de relaciones


prestatario al conjunto de entidades prstamo especifica
que prestatario es un conjunto de relaciones uno a uno, o
bien varios a uno, desde cliente a prstamo; prestatario no
puede ser un conjunto de relaciones varios a varios ni uno
a varios, desde cliente a prstamo.

Mag Marianella Solano Orias.

Relaciones y cardinalidad en el diagrama


E-R Cont
Una lnea dirigida desde cliente a prstamo representa una

cardinalidad de uno a varios; prestatario no puede ser un


conjunto de relaciones varios a varios ni uno a varios, desde
cliente a prstamo.

Mag Marianella Solano Orias.

Relaciones y cardinalidad en el diagrama


E-R Cont
Una lnea no dirigida desde el conjunto de relaciones

prestatario al conjunto de relaciones prstamo especifica que


prestatario es o bien un conjunto de relaciones varios a varios,
o bien uno a varios, desde cliente a prstamo.

Mag Marianella Solano Orias.

Ejemplos de Diagrama E-R con atributos


compuestos, multivalorados y derivados.

Mag Marianella Solano Orias.

Ejemplo Diagrama E-R con indicadores


de papeles.

Mag Marianella Solano Orias.

Ejemplo Diagrama E-R con una relacin


ternaria.

Mag Marianella Solano Orias.

Ejemplo Participacin total de un conjunto de


entidades en un conjunto de relaciones.
Se

usan las lneas dobles para indicar que la


participacin de un conjunto de entidades en un conjunto
de relaciones es total; es decir, cada entidad en el
conjunto de entidades aparece al menos en una relacin
en ese conjunto de relaciones.

Mag Marianella Solano Orias.

Lmites de cardinalidad en conjuntos de


relaciones.
En

los diagramas de E-R, existe una forma de indicar


restricciones mas complejas, mostrando una cardinalidad mnima
una mxima, se muestra de la forma minmx. Un valor mximo
de 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.

Conjunto de entidades dbiles


Es el conjunto de entidades que no tiene suficientes atributos para

formar una llave primaria. Para que un conjunto de entidades


dbiles tenga sentido, debe estar asociada con otro conjunto de
entidades, denominado el conjunto de entidades identificadoras o
propietarias.
Cada entidad dbil debe estar asociada con una entidad
identificadora; es decir, se dice que el conjunto de entidades dbiles
depende
existencialmente
del
conjunto
de
entidades
identificadoras. Se dice que el conjunto de entidades identificadoras
es propietaria del conjunto de entidades dbiles que identifica. La
relacin que asocia el conjunto de entidades dbiles con el conjunto
de 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 del
conjunto de entidades dbiles en la relacin es total.

Mag Marianella Solano Orias.

Conjunto de entidades fuertes


Es el conjunto de entidades que tiene una clave

primaria.

Mag Marianella Solano Orias.

Entidades dbiles y fuertes


Aunque un conjunto de entidades dbiles no tiene clave

primaria, no obstante se necesita conocer un medio para


distinguir todas aquellas entidades del conjunto de
entidades que dependen de una entidad fuerte particular.
El discriminante de un conjunto de entidades dbiles es
un conjunto de atributos que permite que esta distincin
se haga. El discriminante de un conjunto de entidades
dbiles se denomina la clave parcial del conjunto de
entidades. La clave primaria de un conjunto de entidades
dbiles se forma con la clave primaria del conjunto de
entidades identificadoras, ms el discriminante del
conjunto de entidades dbiles.

Mag Marianella Solano Orias.

Entiadades dbiles y fuertes


Un conjunto de entidades dbiles se indica en los

diagramas E-R mediante un rectngulo dibujado con una


lnea doble y la correspondiente relacin de identificacin
mediante un rombo dibujado con lnea doble.

CARACTERSTICAS
DEL MODELO E-R
EXTENDIDO

Mag Marianella Solano Orias.

Especializacin
Un conjunto de entidades puede incluir subgrupos de entidades

que se diferencian de alguna forma de las otras entidades del


conjunto. Por ejemplo, un subconjunto de entidades en un
conjunto de entidades puede tener atributos que no son
compartidos 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 denomina especializacin.
En trminos de un diagrama E-R, la especializacin se
representa mediante un componente triangular etiquetado
ES(superclase-subclase). Los conjuntos de entidadesde nivel
ms alto y ms bajo se representan como conjuntos de
entidades regulares, es decir, como rectngulos que contienen el
nombre del conjunto de entidades.

Mag Marianella Solano Orias.

Generalizacin
Es una relacin contenedora que existe entre el conjunto

de entidades de nivel ms alto y uno o ms conjuntos de


entidades de nivel ms bajo. Por ejemplo persona es el
conjunto 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 ms
bajo tambin se pueden llamar superclase y subclase,
respectivamente. El conjunto de entidades persona es la
superclase de las subclases cliente y empleado.

Mag Marianella Solano Orias.

Herencia de atributos
Los atributos de los conjuntos de entidades de nivel ms

alto se dice que son heredados por los conjuntos de


entidades de nivel ms bajo.
Un conjunto de entidades de nivel ms bajo (o subclase)
tambin hereda la participacin en los conjuntos de
relaciones en los que su entidad de nivel ms alto (o
superclase) participa. La herencia de atributos se aplica
en todas las capas de los conjuntos de entidades de nivel
ms bajo.

Mag Marianella Solano Orias.

Herencia de atributos
Si se llega a una porcin dada de un modelo E-R mediante
especializacin o generalizacin, el resultado es bsicamente el
mismo:
Un conjunto de entidades de nivel ms alto con atributos y relaciones

que se aplican a todos los conjuntos de entidades de nivel ms bajo.


Conjuntos de entidades de nivel ms bajo con caractersticas
distintivas que se aplican slo en un conjunto de entidades particular.
En una jerarqua, un conjunto de entidades dado puede estar

implicado como un conjunto de entidades de nivel ms bajo


slo en una nica relacin ES. Si un conjunto de entidades es
un conjunto de entidades de nivel ms bajo en ms de una
relacin ES, entonces el conjunto de entidades tiene herencia
mltiple, y la estructura resultante se denomina retculo.

Mag Marianella Solano Orias.

Ejemplo de especializacin y generalizacin

Mag Marianella Solano Orias.

Notaciones E-R alternativas

Mag Marianella Solano Orias.

Notaciones E-R alternativas. Cont

Mag Marianella Solano Orias.

MODELO RELACIONAL

DE UN ESQUEMA E-R A
TABLAS

Mag Marianella Solano Orias.

De un esquema E-R a Tablas


Para cada conjunto de entidades de la base de datos y

para cada conjunto de relaciones de la base de datos hay


una nica tabla a la que se asigna el nombre del conjunto
de entidades o del conjunto de relaciones correspondiente.
Cada tabla tiene varias columnas, cada una de las cuales
tiene un nombre nico.
Un diseo E-R, se puede convertir en un diseo relacional.

Mag Marianella Solano Orias.

Representacin de entidades fuertes

Mag Marianella Solano Orias.

Representacin de entidades dbiles

Tabla pago

Mag Marianella Solano Orias.

Representacin del conjunto de


relaciones

Tabla Prestatario

Mag Marianella Solano Orias.

Redundancia de tablas
Un 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 atributos
descriptivos. Adems, la clave primaria de un conjunto de entidades
dbiles incluye la clave primaria del conjunto de entidades fuertes.
Como en el siguiente diagrama E-R, el conjunto de entidades dbiles
pago depende del conjunto de entidades fuertes prstamo a travs
del conjunto de relaciones pago-prstamo. La clave primaria de pago
es {nmero-prstamo, nmero-pago} y la clave primaria de prstamo
es {nmero-prstamo}. Como pago-prstamo no tiene atributos
descriptivos, la tabla para pago-prstamo tendra dos columnas,
nmero-prstamo y nmero-pago. La tabla para el conjunto de
entidades pago tiene cuatro columnas, nmero-prstamo, nmeropago, fecha-pago e importe-pago. Cada combinacin (nmeroprstamo, nmero-pago) en pago-prstamo tambin se encontrara
en la tabla pago, y viceversa. Por tanto, la tabla pago-prstamo es
redundante. En general, la tabla para el conjunto de relaciones que
une un conjunto de entidades dbiles con su correspondiente
conjunto de entidades fuertes es redundante y no necesita estar
presente en una representacin tabular de un diagrama E-R.

Mag Marianella Solano Orias.

Redundancias de tablas

Mag Marianella Solano Orias.

Combinacin de tablas
Considrese un conjunto AB de relaciones varios a uno

del conjunto de entidades A al conjunto de entidades B.


Usando el esquema de construccin de tablas se
consiguen tres tablas: A, B y AB. Supngase adems que
la participacin de A en la relacin es total; es decir, cada
entidad a en el conjunto de entidades A debe participar
en la relacin AB. Entonces se pueden combinar las
tablas A y AB para formar una nica tabla consistente en
la unin de las columnas de ambas tablas.

Mag Marianella Solano Orias.

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

del diagrama E-R indica que la participacin de cuenta en


cuenta-sucursal es total. As, una cuenta no puede existir
sin estar asociada con una sucursal particular. Adems, el
conjunto de relaciones cuenta-sucursal es varios a uno
desde cuenta a sucursal.

Se puede combinar la tabla para cuenta-sucursal con la tabla para cuenta y se


necesitan 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.

Atributos compuesto
Estos se representan en columnas separadas cada parte del atributo.

Por ejemplo que la direccin este compuesta por calle y ciudad , en


la tabla de cliente estas seran columnas de la misma.

Mag Marianella Solano Orias.

Qu es un modelo relacional?
El modelo relacional consiste en una representacin

grfica de tablas de informacin (como las de Excel)


pertenecientes a una base de datos, cada tabla est
compuesta por varias columnas y cada columna tiene un
nombre nico. Adicionalmente las tablas poseen registros
o filas las cuales representan una relacin entre un
conjunto de valores.
El modelo relacional proporciona una estructura de los
datos que consiste en un conjunto de relaciones con
objeto de representar la informacin que nos interesa del
mundo real.
Se refiere al diseo lgico de la base de datos.

Mag Marianella Solano Orias.

Estructura bsica
Columnas, campos o cabeceras : Atributos
Dominio: conjunto de valores permitido para cada atributo,

los dominios deben ser atmicos para cada atributo. Un


valor de dominio que es miembro de todos los dominios
posibles es el valor nulo, que indica que el valor es
desconocido o no existe.
Relacin: Tabla, Conjunto de tuplas.
Tupla: Fila

Mag Marianella Solano Orias.

Esquema de la base de datos


Cuando se habla de bases de datos se debe diferenciar

entre el esquema de la base de datos, o diseo lgico


de la misma, y el ejemplar de la base de datos, que es
una 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. El
concepto de esquema de la relacin se corresponde
con el concepto de definicin de tipos de los lenguajes de
programacin.

Mag Marianella Solano Orias.

Ejemplo

Mag Marianella Solano Orias.

Relacin sucursal

Relacin cliente

Relacin impositor

Mag Marianella Solano Orias.

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

primaria y externa, se puede mostrar grficamente mediante


diagramas de esquema.
Cada relacin aparece como un cuadro con los atributos listados
dentro de l y el nombre de la relacin sobre l. Si hay atributos clave
primaria, una lnea horizontal cruza el cuadro con los atributos clave
primaria listados sobre ella. Las dependencias de clave externa
aparecen como flechas desde los atributos clave externa de la relacin
referenciante a la clave primaria de la relacin referenciada.

Mag Marianella Solano Orias.

ALGEBRA RELACIONAL

Mag Marianella Solano Orias.

Qu es algebra relacional
Es un lenguaje de consulta procedimental, conformado

por un conjunto de operaciones que toman como entrada


una o dos relaciones, dando como resultado una nueva
relacin.
Operaciones fundamentales: seleccin, proyeccin, unin,
diferencia de conjuntos, producto cartesiano y
renombramiento.
Existen otras operaciones como la interseccin de
conjuntos, reunin natural , divisin y asignacin.

OPERACIONES
FUNDAMENTALES

Mag Marianella Solano Orias.

Operaciones fundamentales
Las operaciones seleccin, proyeccin y renombramiento
se denominan operaciones unarias porque operan sobre
una sola relacin. Las otras tres operaciones operan sobre
pares de relaciones y se denominan, por lo tanto,
operaciones binarias.

Mag Marianella Solano Orias.

Seleccin
Se 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 la
sucursal sea Navacerrada.
nombre-sucursal = Navacerrada (prstamo)
Relacin Prstamo

Resultado de la seleccin

Mag Marianella Solano Orias.

Seleccin
Ejemplos

importe>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 combinar
varios predicados en uno mayor utilizando las conectivas y () y o
().

Mag Marianella Solano Orias.

Seleccin
Ejemplo:
Mostrar los prstamos de ms de 1.200 concedidos 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)

Mag Marianella Solano Orias.

Proyeccin
La proyeccin crea una nueva relacin con base a argumentos, es decir

permite quitar atributos y mostrar solo los que realmente se requieren.


Para representar la proyeccin se utiliza la letra griega pi ()
Ejemplo
Mostrar todos los nmeros de prstamo con su respectivo importe.
nmero-prstamo, importe (prstamo)

Relacin prstamo

Resultado de la proyeccin

Mag Marianella Solano Orias.

Composicin de operaciones
relacionales
Ejercicio:

nombre-cliente (ciudad-cliente = Peguerinos (cliente))


Relacin cliente
Cul es el resultado ?

Mag Marianella Solano Orias.

Unin
Operacin 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.

Mag Marianella Solano Orias.

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

Mag Marianella Solano Orias.

Diferencia de conjuntos
Se denota con el signo menos(-), permite buscar tuplas

que 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 los
clientes que tienen cuentas y no prstamos
nombre-cliente (impositor) - nombre-cliente (prestatario)

Mag Marianella Solano Orias.

Producto Cartesiano
La operacin producto cartesiano, denotada por un

aspa (), permite combinar informacin de cualesquiera


dos relaciones.
Ejemplo
nombre-sucursal = Navacerrada (prestatario prstamo)
Relacin prstamo

Mag Marianella Solano Orias.

Producto Cartesiano Ejm, Cont


prestatario prstamo

Mag Marianella Solano Orias.

Producto Cartesiano Ejm, Cont


nombre-sucursal = Navacerrada (prestatario prstamo)

OTRAS FUNCIONES

Mag Marianella Solano Orias.

Interseccin
Se simboliza
Ejemplo:
Se desea averiguar todos los clientes que tienen un

prstamo concedido y una cuenta abierta. Utilizando la


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

Mag Marianella Solano Orias.

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 la


suma de los mismos

max

Devuelve el valor mximo del conjunto de


valores

min

Devuelve el valor mnimo del conjunto de


valores

count

Devuelve
conjunto

Distinct

Elimina los duplicados

el

nmero

de

elementos

del

Las colecciones en las que operan las funciones de agregacin pueden

tener valores repetidos; el orden en el que aparezcan los valores no tiene


importancia. Estas colecciones se denominan multiconjuntos.

Mag Marianella Solano Orias.

Funciones de agregacin Ejem


Averiguar el nmero de sucursales que aparecen en la relacin

trabajo-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-sucursal Gsum(sueldo) (trabajo-por-horas)

Mag Marianella Solano Orias.

Funciones de agregacin Ejem. Cont


La funcin agrupacin(G) hace lo siguiente

Al aplicar la suma el resultado sera el siguiente

Mag Marianella Solano Orias.

Funciones de agregacin Ejem


Se desea averiguar el sueldo mximo de los empleados a

tiempo parcial de cada oficina, adems de la suma de los


sueldos.

Gsum(sueldo), max(sueldo) (trabajo-por-horas)


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

(trabajo-por-horas)

Mag Marianella Solano Orias.

LENGUAJES DE CONSULTA
ESTRUCTURADO (SQL)

Mag Marianella Solano Orias.

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

de bases de datos.

Mag Marianella Solano Orias.

Componentes del SQL


Data

Definition Language (DDL) : Lenguaje de


Definicin de datos o esquemas de estructuras,
comandos de creacin, modificacin de tablas , bases de
datos , constrains, ndices y otros objetos de base de
datos , 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.

LENGUAJE DE DEFINICIN DE
DATOS O ESQUEMAS DE
ESTRUCTURAS (DDL)
CREATE, ALTER Y DROP
Sesin II, libro Gua SQL Principiantes

Mag Marianella Solano Orias.

CREATE
Permite la creacin de objetos tales como: base de datos,

tablas, procedimientos almacenados, disparados entre


otros.

Mag Marianella Solano Orias.

CREATE Ejem
Crear 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 tabla


USE 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 ))

Mag Marianella Solano Orias.

ALTER
Permite la modificacin de objetos a nivel de la base de

datos tales como: tablas, procedimientos almacenados,


tablas, bases de datos entre otros, realiza modificaciones
a nivel de estructura.
Sintaxis

Mag Marianella Solano Orias.

ALTER Ejem
Agregue por medio de la clusula ALTER a la tabla
PERSONA, la columna DIRECCION tipo varchar de 50.
ALTER TABLE PERSONA
ADD DIRECCION VARCHAR(50)

Mag Marianella Solano Orias.

DROP
Borra fsicamente un objeto de base de datos: tablas,

vistas lgicas, bases


almacenados, etc.

de

Para la eliminacin de una tabla

Ejemplo

DROP TABLE persona

datos,

procedimientos

LENGUAJE DE
MANIPULACIN DE DATOS
(DML)
SELECT, INSERT, UPDATE y DELETE.
Sesin II, libro Gua SQL Principiantes

Mag Marianella Solano Orias.

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

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

Mag Marianella Solano Orias.

SELECT Ejem
SELECT count (*), NOMBRE FROM dbo.PERSONA
WHERE EDAD=20
GROUP BY NOMBRE
HAVING COUNT(*)>1

Mag Marianella Solano Orias.

INSERT
Permite el ingreso de datos a una tabla

Ejemplo:
INSERT
INTO
PERSONA (CEDULA,
APELLIDO, EDAD)
VALUES (509440300,MARIA,JUAREZ,20)

NOMBRE,

Mag Marianella Solano Orias.

UPDATE
Permite la actualizacin de datos en una tabla

Importante
Si no se utiliza el comando WHERE, se modifica la

informacin de la columna seleccionada para todos los


registros de la tabla.

Mag Marianella Solano Orias.

UPDATE Ejem
UPDATE dbo.PERSONA
SET EDAD = 15
WHERE CEDULA = '209440300'

Mag Marianella Solano Orias.

DELETE
Permite eliminar los registros de una tabla, manteniendo

su estructura.

Importante:

Si no se utiliza la clusula el WHERE se eliminaran todos


los registros de la tabla.
Ejemplo:
DELETE FROM PERSONA
WHERE CEDULA = 209440300

Mag Marianella Solano Orias.

Practica
Realizar las prcticas de la Sesin II de la Gua de SQL

Principiantes, tanto las de clases como las de los anexos.

OPERADORES Y
FUNCIONES DE
AGREGADO
Operadores lgicos: AND, OR Y NOT
Operadores de comparacin
Funciones de agregado

Mag Marianella Solano Orias.

OPERADORES LGICOS
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 devuelve
TRUE cuando ambas expresiones son TRUE (verdaderas).

OR: Cualquiera de las condiciones que se cumplan la consulta muestra las filas o registros que cumplen

con la o las condiciones establecidas.

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

Mag Marianella Solano Orias.

OPERADORES LGICOS

Mag Marianella Solano Orias.

OPERADORES DE COMPARACIN
Los operadores de comparacin comprueban si dos

expresiones son iguales. Se pueden utilizar en todas las


expresiones excepto en las de los tipos de datos text,
ntext o image.

Mag Marianella Solano Orias.

FUNCIONES DE AGREGADO
Las funciones de agregado realizan un clculo sobre un

conjunto de valores y devuelven un solo valor. Si


exceptuamos la funcin COUNT, todas las funciones de
agregado ignoran los valores NULL. Las funciones de
agregado se suelen usar con la clusula GROUP BY de la
instruccin SELECT

Mag Marianella Solano Orias.

Ejemplos
SELECT CEDULA, NOMBRE
FROM dbo.PERSONA
WHERE
EDAD > 25
OR
EDAD < =35

SELECT COUNT (CEDULA) FROM PERSONA

CONSULTAS DE
SELECCIN
Select

Mag Marianella Solano Orias.

CONSULTAS BSICAS
Entre las consultas bsicas se tienen, las consultas de

todos los registros de una tabla o las que utilizan la


clusula WHERE y alguno de los operadores de
comparacin.

Mag Marianella Solano Orias.

ORDENAMIENTO DE REGISTROS
Permite el ordenamiento de registros en forma ascendente

(A-Z) y descendente (Z-A), si no se especifica por defecto


es ascendente.
asc: ascendente
desc: descentente

Ejemplo:
SELECT NOMBRE, APELLIDO FROM PERSONA
WHERE EDAD >20
ORDER BY NOMBRE DESC

Mag Marianella Solano Orias.

CONSULTAS CON PREDICADO


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 cantidad
solicitada (n).
b. DISTINCT: Elimina los duplicados a la hora de mostrar los
resultados de la consulta.
c. AS: En algunas ocasiones es necesario renombrar las columnas
que se devuelven de una consulta con funciones de agregado como
count, sum, entre otras y para esto se utiliza la palabra reservada
AS
Ejemplo:
SELECT TOP 5 NOMBRE ,APELLIDO, EDAD
FROM PERSONA

CRITERIOS DE
SELECCIN
BETWEEN , LIKE E IN

Mag Marianella Solano Orias.

BETWEEN
Permite

la recuperacin de registros mediante un


intervalo de valores dado.

Ejemplo:
Muestre todas las personas en la que la edad no este
entre los 25 y 50 aos.
SELECT * FROM PERSONA
WHERE EDAD NOT BETWEEN 25 AND 50

Mag Marianella Solano Orias.

LIKE
Permite encontrar coincidencias parciales entre cadenas

de texto.
Ejemplo:
Muestra las personas donde la primera letra del apellido es
P
SELECT * FROM PERSONA
WHERE APELLIDO LIKE 'P%'

Mag Marianella Solano Orias.

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

de valores dada, devuelve aquellos registros cuyo campo indicado coincide


con alguno de los en una lista.

Ejemplos:
Muestra todas las personas que tienen 25 o 45 o 50 aos.
SELECT * FROM PERSONA
WHERE EDAD IN (25,45,50)

AGRUPAMIENTO DE
REGISTROS Y FUNCIONES
AGREGADAS
GROUP BY

Mag Marianella Solano Orias.

CLUSULA GROUP BY
Permite agrupar filas cuando se utilizan funciones como

SUM o COUNT, las cuales no toman campos lnea por


lnea, 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 lgica
est relacionada tambin con las funciones que retornan
valores de grupos de registros.

Mag Marianella Solano Orias.

CLUSULA HAVING
Una vez que GROUP BY ha combinado los registros, HAVING

muestra cualquier registro agrupado por la clusula GROUP BY que


satisfaga las condiciones de la clusula HAVING.
HAVING es similar a WHERE, determina qu registros se
seleccionan. Una vez que los registros se han agrupado utilizando
GROUP BY, HAVING determina cuales de ellos se van a mostrar.

Mag Marianella Solano Orias.

Ejemplo
Muestra la cantidad de personas matriculadas en cada

curso en la sede de San Jos, siempre y cuando la


cantidad sea mayor a 1.
SELECT COUNT(CEDULA)AS CANTIDAD,CODIGO, SEDE FROM
HISTORIAL
WHERE SEDE = 'SAN JOSE'
GROUP BY CODIGO,SEDE
HAVING COUNT(CEDULA)> 1

TIPOS DE DATOS
Carcter, numricos, fecha y hora, cadenas
binarias, definidos por el usuario.

Mag Marianella Solano Orias.

TIPO DE DATOS CARCTER

Mag Marianella Solano Orias.

TIPO DE DATOS NUMRICO

Mag Marianella Solano Orias.

TIPOS DE DATO DE FECHA Y HORA

Mag Marianella Solano Orias.

TIPOS DE CADENAS BINARIAS

Mag Marianella Solano Orias.

TIPOS DE DATOS DEFINIDOS POR EL


USUARIO
Los tipos de datos definidos por el usuario estn basados en los tipos de

datos 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 utilizan
los procedimientos almacenados sp_addtype y sp_droptype,
respectivamente.

Importante: Como son procedimientos almacenados deben estar

precedidos por un EXEC o EXECUTE.

Mag Marianella Solano Orias.

TIPOS DE DATOS DEFINIDOS POR EL


USUARIO. Ejem
Crear el tipo de dato ID , como int , NOT NULL, en la

base de datos Curso


USE CURSO;
GO
EXEC sp_addtype ID, INT, 'NOT NULL';

Eliminar el tipo de dato DIRECCION de la base de datos

Curso
USE CURSO
GO
EXEC sp_droptype DIRECCION

Mag Marianella Solano Orias.

PROPIEDAD IDENTITY
Esta propiedad se suele utilizar para valores de llave primaria, genera en

forma automtica un consecutivo y solo puede existir una columna identity


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

Ejemplo:
CREATE TABLE CLASE
(
ID_ESTUDIANTE INT IDENTITY (50, 5) NOT NULL,
NOMBRE VARCHAR (20),
APELLIDO VARCHAR (20)
)

SUBCONSULTAS
Select anidados

Mag Marianella Solano Orias.

SUBCONSULTAS
Las sub consultas son consultas de select anidades o

select dentro de otro select, esta otra consulta select


puede aparecer en la lista de seleccin o en las clusulas
WHERE o HAVING.
En este tipo de consultas se utilizan las siguientes
condiciones
a. EXISTS: Cierto si una sub consulta devuelve como

mnimo un registro
b. IN: Pertenencia a un conjunto de valores o ser miembro

de una sub consulta

Mag Marianella Solano Orias.

SUBCONSULTAS

Mag Marianella Solano Orias.

SUBCONSULTAS Ejem
Se necesita saber cul de las personas actualmente no

estn inscritos en algn curso.


SELECT NOMBRE , APELLIDO FROM PERSONA
WHERE CEDULA NOT IN (SELECT CEDULA FROM HISTORIAL)

Mostrar el nombre y apellido de todas aquellas personas que

tengan el curso 1 matriculado y la nota sea mayor a 80.


SELECT NOMBRE,APELLIDO FROM PERSONA A
WHERE EXISTS(SELECT * FROM HISTORIAL B
WHERE A.CEDULA = B.CEDULA
AND B.CODIGO = 1
AND B.NOTA > 80)

CONSULTAS
MULTITABLA O JOINS
Fusin, referencia cruzada, Unin
interna(unin, inner join), Unin externa(left
join, right join, full join)

Mag Marianella Solano Orias.

CONSULTAS MULTITABLAS
Las consultas multitablas o joins, conocidas tambin como

combinaciones o composiciones, permiten la recuperacin de


datos de 2 o ms tablas.
Es en este tipo de consultas donde el uso de los alias ayuda a

identificar de donde se estn tomando los datos de la consulta.


Una condicin de combinacin o composicin define la forma

en la que 2 tablas se relacionan en una consulta.


Generalmente en las combinaciones se utilizan, las columnas

de llave primaria y llave fornea para establecer una condicin.

Mag Marianella Solano Orias.

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

tiene varias etapas:


a.
b.
c.

Primero ordena las tablas por llave primaria y llave fornea respectivamente.
Luego recorre las tablas en forma secuencial revisando las condiciones especificadas en la clausula
where.
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 que

actualmente estn matriculados.


SELECT A.NOMBRE, A.APELLIDO, B.CODIGO, B.DESCRIPCION
FROM PERSONA A, CURSO B, HISTORIAL C
WHERE A.CEDULA =C.CEDULA
AND B.CODIGO = C.CODIGO

Mag Marianella Solano Orias.

CONSULTAS DE REFERENCIAS
CRUZADAS
a. Muestran todas las combinaciones posibles de todas

las filas o registros de las tablas combinadas.


b. En este tipo de combinacin no se requiere tener una
columna en comn.
c. Cuando se utilizan combinaciones cruzadas, SQL
Server genera un producto cartesiano en el que el
nmero de filas del conjunto de resultados es igual al
nmero de filas de la primera tabla multiplicado por el
nmero de filas de la segunda tabla.
d. Para las consultas de referencia cruzada se utiliza el
CROSS JOIN

Mag Marianella Solano Orias.

CONSULTAS DE REFERENCIAS
CRUZADAS

Ejemplo:
SELECT A.CODIGO,DESCRIPCION
FROM CURSO A
CROSS JOIN HISTORIAL

Mag Marianella Solano Orias.

CONSULTAS DE UNIN INTERNAS


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

considerar como una suma, se sumara en una tabla de


resultado el conjunto de columnas de dos tablas segn el
criterio 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.

Mag Marianella Solano Orias.

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

columnas 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 actualmente

inscritos en algn curso.


SELECT NOMBRE, APELLIDO,PERSONA.CEDULA
FROM PERSONA
JOIN HISTORIAL
ON PERSONA.CEDULA = HISTORIAL.CEDULA

Mag Marianella Solano Orias.

CONSULTAS DE UNIN EXTERNA


Las uniones externas izquierda y derecha combinan filas

de dos tablas que cumplen una condicin de


combinacin, ms las filas de la tabla izquierda o derecha
que no la cumplen.
Las uniones externas izquierda y derecha se utilizan
cuando se necesita una lista completa de datos de una
de las tablas ms la informacin que cumpla la condicin.
Este tipo de uniones no se utilizan a menudo, porque en
algunos casos los resultados dados no son los esperados
en estos casos se deben realizar varias pruebas o
cambiar el orden de las tablas, en ocasiones utilizar otro
tipo de consulta.

Mag Marianella Solano Orias.

CONSULTAS DE UNIN EXTERNA


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 filas

de ambas tablas, con independencia de que la otra tabla tenga o no un valor coincidente.

Mag Marianella Solano Orias.

CONSULTAS DE UNIN EXTERNA


Ejemplos:
a.

Mostrar las personas que tienen cursos matriculados


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

b.

Mostrar las personas que no tienen cursos matriculados


SELECT A.CEDULA,A.NOMBRE, A.APELLIDO
FROM HISTORIAL B
RIGHT JOIN PERSONA A
ON A.CEDULA = B.CEDULA
WHERE B.CEDULA IS NULL
GROUP BY A.CEDULA,A.NOMBRE, A.APELLIDO

c.

Devuelve las personas que tienen cursos matriculados


SELECT A.CEDULA,A.NOMBRE, A.APELLIDO FROM PERSONA A
FULL JOIN HISTORIAL B
ON A.CEDULA = B.CEDULA
WHERE B.CEDULA IS NOT NULL
GROUP BY A.CEDULA,A.NOMBRE, A.APELLIDO

VISTAS
Tablas virtuales en SQL

Mag Marianella Solano Orias.

Concepto de Vista
Una vista en terminologa SQL es una tabla que deriva de

otras tablas. Esas otras tablas pueden ser tablas base o


vistas definidas anteriormente. Una vista no existe
necesariamente en formato fsico; est considerada como
una tabla virtual,esto limita las posibles operaciones de
actualizacin que pueden aplicarse a las vistas, pero no
ofrecen limitacin alguna al consultar una vista.
Para la creacin de una vista se utiliza el comando create

view.

Mag Marianella Solano Orias.

Ejemplo de vista
Crear una vista

CREATE 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 NOT NULL
GROUP BY A.CEDULA,A.NOMBRE,
A.APELLIDO
Para mostrar la informacin de la vista
SELECT * FROM
MATRICULADOS_VIEW

Para eliminar la vista

DROP VIEW MATRICULADOS_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 NULL
GROUP BY A.CEDULA,A.NOMBRE,
A.APELLIDO

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

SELECT INTO
Creacin de tablas

Mag Marianella Solano Orias.

Select into definicin


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

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, las
restricciones y los desencadenadores definidos en la tabla de origen no se transfieren
a la nueva tabla, ni se pueden especificar en la instruccin SELECT...INTO. Si se
requieren estos objetos, se deben crear despus de ejecutar SELECT...INTO.
Sintaxis

Mag Marianella Solano Orias.

Select Into Ejemplo


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

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


INTO NOMATRICULADOS
FROM PERSONA A
WHERE A.CEDULA NOT IN (SELECT B.CEDULA
FROM HISTORIAL B)
Nota: A diferencia de la vista, si alguna de las tablas
involucradas en la consulta del select into se modifica, la tabla
producto del select into no se actualiza, hay que ejecutar
nuevamente el select into.

Mag Marianella Solano Orias.

REGLAS DE INTEGRIDAD
Y NORMALIZACIN

REGLAS DE
INTEGRIDAD

Mag Marianella Solano Orias.

Reglas de integridad
Las reglas de integridad son todas aquellas condiciones

que los datos deben cumplir.


Esta asociacin se puede considerar como una
paternidad, donde el padre es la tabla que contiene la
llave 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 en
el momento de insertar, modificar y borrar informacin, es
un sistema de reglas que utilizan la mayora de las bases
de datos relacionales para asegurarse que los registros
de tablas relacionadas son vlidos y que no se eliminen o
modifiquen datos relacionados de forma accidental
produciendo errores de integridad.

Mag Marianella Solano Orias.

Reglas de integridad del modelo


relacional
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

NORMALIZACIN
1FN, 2FN y 3FN

Mag Marianella Solano Orias.

Normalizacin
La normalizacin de un diseo lgico de la base de datos

implica la utilizacin de mtodos formales para separar


los datos en varias tablas relacionadas. Una
caracterstica de una base de datos normalizada es la
existencia 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 de
tablas y el establecimiento de relaciones entre ellas
segn reglas diseadas tanto para proteger los datos
como para hacer que la base de datos sea ms flexible al
eliminar la redundancia y las dependencias incoherentes.

Mag Marianella Solano Orias.

Primera Forma Normal (1FN)


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 sus


significados
Una tabla no puede tener mltiples valores en cada columna. Los datos son
atmicos. (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.

Mag Marianella Solano Orias.

Segunda Forma Normal (2FN)


Se deben crear tablas independientes para conjuntos de

valores que se apliquen a varios registros.


Estas tablas deben estar relacionadas por medio de
claves externas (llaves forneas).
Una relacin est en 2FN si est en 1FN y si los atributos
que no forman parte de ninguna clave dependen de
forma completa de la clave principal. Es decir que no
existen dependencias parciales. (Todos los atributos que
no son llave primaria deben depender nicamente de la
llave primaria).
Los registros no deben depender de nada que no sea una
llave primaria de una tabla, una llave compuesta si es
necesario.

Mag Marianella Solano Orias.

Tercera forma normal (3FN)


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 funcional

transitiva entre los atributos que no son llave.


Los valores de un registro que no sean parte de la llave primaria de ese registro no

pertenecen a la tabla. En general, siempre que el contenido de un grupo de campos pueda


aplicarse a ms de un nico registro de la tabla, se debe considerar colocar estos campos
en una tabla independiente.
Excepcin: aunque en teora es deseable cumplir la tercera forma normal, no siempre es

prctico. Si se tiene una tabla Clientes y se desea eliminar todas las dependencias posibles
entre los campos, se deben crear tablas independientes para las ciudades, cdigos
postales, representantes de venta, clases de clientes y cualquier otro factor que pueda estar
duplicado en varios registros. En teora, la normalizacin merece el trabajo que supone. Sin
embargo, muchas tablas pequeas pueden degradar el rendimiento o superar la capacidad
de 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 al
usuario que compruebe todos los campos relacionados cuando cambie alguno.

Mag Marianella Solano Orias.

Generalidades
Una tabla debe tener un identificador.
Una tabla solo debe almacenar datos para un nico tipo

de entidad.
En una tabla deben evitarse las columnas que acepten

valores nulos.

Una tabla no debe tener valores ni columnas que se

repitan.

Mag Marianella Solano Orias.

PROCEDIMIENTOS
ALMACENADOS , TRIGER Y
CURSORES

Mag Marianella Solano Orias.

Procedimientos almacenados
Los Procedimientos Almacenados o Store Procedure son

unidades de cdigo compuestas por una o ms


sentencias de Transact-SQL o T-SQL y que son
almacenadas en el servidor.
Son mdulos o rutinas que encapsulan cdigo para su
reutilizacin, pueden incluir parmetros de entrada,
devolver resultados tabulares o escalares y mensajes
para el cliente, invocar instrucciones de lenguaje de
definicin de datos (DDL) e instrucciones de lenguaje de
manipulacin de datos (DML), as como devolver
parmetros de salida y realizar llamados a otros
procedimientos almacenados .

Mag Marianella Solano Orias.

Procedimientos almacenados

Modificar

Eliminar

Ejecutar

Mag Marianella Solano Orias.

Ejemplo de procedimiento almacenado


CREATE PROCEDURE MUESTRA_EDAD (@ID
INT,@EDAD INT OUTPUT)
AS
SET NOCOUNT ON;
SELECT @EDAD = EDAD
FROM PERSONA
WHERE CEDULA = @ID;
RETURN
DECLARE @EDAD INT
EXEC MUESTRA_EDAD 109440300,@EDAD OUTPUT
PRINT @EDAD

Mag Marianella Solano Orias.

Cursores
Un cursor es una especie de variable en el conjunto de

resultados de una consulta, el cual permite el


desplazamiento a travs de los resultados de una
consulta; permite recorrer el resultado de una consulta
SQL y realizar operaciones en cada paso de sta.
Un cursor se declara para una instruccin Select
determinada.

Mag Marianella Solano Orias.

Cursores
Cerrar un cursor

Quitar la referencia a un cursor

Recupera las filas del cursor,

Mag Marianella Solano Orias.

Cursores
Declarar un cursor

Abrir un cursor

UPDATE: Permite la modificacin de los datos existentes

en una o varias tablas. Se utiliza en cursores declarados


como FOR UPDATE.
DELETE: Elimina filas de una tabla.

Mag Marianella Solano Orias.

Cursores ejemplo
DECLARE HISTORIAL_CURSOR CURSOR FOR
SELECT CEDULA,CODIGO
FROM HISTORIAL
WHERE CEDULA = 609440300
AND CODIGO = 3
FOR UPDATE
OPEN HISTORIAL_CURSOR;
FETCH NEXT FROM HISTORIAL_CURSOR;
DELETE FROM HISTORIAL
WHERE CURRENT OF HISTORIAL_CURSOR;
CLOSE HISTORIAL_CURSOR;
DEALLOCATE HISTORIAL_CURSOR;
GO

Mag Marianella Solano Orias.

Triggers
Se les conoce tambin como desencadenadores o

disparadores.
Son lo mismo que los Stored Procedures pero stos se
ejecutan desantendidamente y automticamente cuando
un usuario realiza una accin con la tabla de una base de
datos que lleve asociado este disparador. Se pueden
crear 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.

Mag Marianella Solano Orias.

Triggers
Creacin de trigger

Habilitar trigger

Deshabilitar trigger
Modificar un trigger

Eliminar trigger

Mag Marianella Solano Orias.

Trigger ejemplo
CREATE TRIGGER TR_UP_HISTORIAL ON HISTORIAL
FOR UPDATE
AS
PRINT 'FILAS MODIFICADAS '+ CAST(@@ROWCOUNT
AS NCHAR(8))
GO

Mag Marianella Solano Orias.

Referencias
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.

Usado con fines acadmicos

Das könnte Ihnen auch gefallen