Академический Документы
Профессиональный Документы
Культура Документы
1 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
30/06/2013 14:47
BD02_Contenidos
2 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Caso prctico
Juan y Ana se han
puesto en marcha con
este nuevo proyecto.
Ambos saben que lo
primero que tienen que
hacer es trabajar con la
informacin que les han
dado. Ya saben las ideas
que el cliente tiene,
ahora
es
necesario
pasarlo a un formato con el que poder trabajar. Una de las primeras cosas que deben hacer es
trazar un borrador donde plasmar lo que ahora mismo est en sus cabezas y en las anotaciones
recogidas mientras hablaban con el cliente.
L o s m o d e l o s d e d a to s l g ic o s s e c e n t ra n e n l a s o p e ra c i o n e s y s e i m p l e m e n ta n e n a l g n s i s t e m a g e s t o r d e b a s e d e d a to s . Ej e m p l o , M o d e l o Re l a c i o n a l .
L o s m o d e l o s d e d a to s fs ic o s , s o n e s tru c t u r a s d e d a to s a b a j o n i v e l , i m p l e m e n t a d a s d e n tr o d e l p ro p i o s i s t e m a g e s t o r d e b a s e d e d a to s .
L e n g u a j e d e M a n ip u l a c i n d e Da to s o DM L (Da t a M a n ip u la ti o n L a n g u a g e ) , q u e s i r v e n p a ra d e s c r i b i r l a s o p e r a c i o n e s d e m a n i p u l a c i n d e l o s d a to s .
30/06/2013 14:47
BD02_Contenidos
3 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Autoevaluacin
Cules son los modelos que se centran en las operaciones y se implementan en algn
sistema gestor de base de datos?
Modelo de datos conceptuales.
Modelo de datos lgico.
Modelo de datos fsicos.
Efectivamente, un ejemplo sera el modelo relacional.
30/06/2013 14:47
BD02_Contenidos
4 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Caso prctico
Ana se pregunta cul ser el modelo con el que se suele
trabajar. Actualmente, para la mayora de las aplicaciones de
gestin que utilizan bases de datos, el modelo ms
empleado es el modelo relacional, por su gran versatilidad,
potencia y su base matemtica.
Para saber ms
Aqu puedes encontrar un vdeo donde se explica de manera grfica las relaciones matemticas
entre conjuntos. Seguro que te resulta interesante refrescar estos conceptos:
Relaciones.
30/06/2013 14:47
BD02_Contenidos
5 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
30/06/2013 14:47
BD02_Contenidos
6 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Para saber ms
Aqu tienes unos enlaces sobre teora de conjuntos y lgica de predicados:
Teora de conjuntos.
Lgica de predicados.
A partir de ahora, nosotros veremos una relacin como una tabla con
filas y columnas. Podemos asociar atributos a columna y tuplas a filas.
Atri b u to s : e s e l n o m b re d e c a d a d a t o q u e s e a l m a c e n a e n l a re l a c i n (t a b l a ). Ej e m p l o s s e r a n : DNI, n o m b r e , a p e l l i d o s , e tc .
E l n o m b re d e l a t ri b u t o d e b e d e s c r i b i r e l s i g n i fi c a d o d e l a i n fo r m a c i n q u e r e p re s e n t a . E n l a ta b l a Em p l e a d o s , e l a tr i b u t o Su e l d o a l m a c e n a r e l v a l o r e n e u r o s d e l s u e l d o q u e r e c i b e c a d a e m p l e a d o . A v e c e s e s n e c e s a ri o a a d i r u n a p e q u e a d e s c r i p c i n p a ra a c l a r a r u n p o c o m s e l c o n te n i d o . Po r e j e m p l o , s i e l s u e l d o e s n e to o b r u t o .
Ca d a tu p l a s e d e b e c o r re s p o n d e r c o n u n e l e m e n t o d e l m u n d o re a l .
No p u e d e h a b e r d o s t u p l a s i g u a l e s (c o n to d o s l o s v a l o re s i g u a l e s ).
Est claro que un atributo en una tupla no puede tomar cualquier valor.
No sera lgico que en un atributo Poblacin se guarde "250".
Estaramos cometiendo un error, para evitar este tipo de situaciones
obligaremos a que cada atributo slo pueda tomar los valores
pertenecientes a un conjunto de valores previamente establecidos, es decir, un atributo tiene asociado un
dominio de valores.
A menudo un dominio se define a travs de la declaracin de un tipo para el atributo (por ejemplo, diciendo
que es un nmero entero entre 1 y 16), pero tambin se pueden definir dominios ms complejos y precisos.
Por ejemplo, para el atributo Sexo de mis usuarios, podemos definir un dominio en el que los valores
posibles sean "M" o "F" (masculino o femenino).
Una caracterstica fundamental de los dominios es que sean atmicos, es decir, que los valores contenidos
en los atributos no se pueden separar en valores de dominios ms simples.
Un dominio debe tener: Nombre, Definicin lgica, Tipo de datos y Formato.
Por ejemplo, si consideramos el Sueldo de un empleado, tendremos:
No m b re : S u e l d o .
De fi n i c i n l g ic a : Su e l d o n e t o d e l e m p l e a d o
T i p o d e d a to s : n m e r o e n te ro .
F o rm a to : 9 .9 9 9 .
Autoevaluacin
Cules de las siguientes afirmaciones son ciertas sobre las tuplas y los atributos?
Las tuplas deben corresponderse con un elemento del mundo real.
Seleccin incorrecta.
Podramos tener dos o ms tuplas iguales.
Seleccin correcta.
Un atributo se define en un dominio de valores.
Seleccin incorrecta.
30/06/2013 14:47
BD02_Contenidos
7 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
30/06/2013 14:47
BD02_Contenidos
8 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
B={Matemticas, Lengua}
C={Aprobado, Suspenso}
CARL OS
M AT EM T ICA S
AP ROBA DO
CARL OS
M AT EM T ICA S
SUSP ENSO
CARL OS
L E NGUA
AP ROBA DO
CARL OS
L E NGUA
SUSP ENSO
CARL OS
INGL S
AP ROBA DO
CARL OS
INGL S
SUSP ENSO
M ARA
M AT EM T ICA S
AP ROBA DO
M ARA
M AT EM T ICA S
SUSP ENSO
M ARA
L E NGUA
AP ROBA DO
M ARA
L E NGUA
SUSP ENSO
M ARA
INGL S
AP ROBA DO
M ARA
INGL S
SUSP ENSO
B={Matemticas, Lengua}
C={Aprobado, Suspenso}
CARL OS
M AT EM T ICA S
AP ROBA DO
CARL OS
L E NGUA
AP ROBA DO
CARL OS
INGL S
AP ROBA DO
M ARA
M AT EM T ICA S
AP ROBA DO
M ARA
INGL S
SUSP ENSO
30/06/2013 14:47
BD02_Contenidos
9 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
2.3.- Sinnimos.
Caso prctico
Ana est un poco liada con tantos trminos nuevos. Si Juan
habla de tuplas se est refiriendo a registros? Los registros
eran las filas de las las tablas, no? Ser mejor que
hagamos un resumen.
Los trminos vistos hasta ahora tienen distintos sinnimos segn la nomenclatura
utilizada. Trabajaremos con tres:
E n e l m o d e lo re l a c io n a l: RE L A CIN - T UP L A - AT RIB UT O - GRA DO - CARDI NA L I DA D.
Autoevaluacin
Relaciona cada trmino del modelo relacional con la terminologa de Tablas.
Sinnimos.
Terminologa del modelo relacional.
RE L A CI N
T UPL A
AT RI BUT O
GRADO
CA RDINAL IDAD
Reiniciar
Relacin.
Terminologa en Tablas.
1 . COL UM NA S
2 . NM E RO DE COL UM NA S
3 . NM E RO DE F I L A S
4 . FI L A
5 . TA BL A
Tu puntuacin es 0/5.
Debes tener en cuenta que a partir de ahora emplearemos frecuentemente estos trminos.
30/06/2013 14:47
BD02_Contenidos
10 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Caso prctico
Juan, tras su anlisis y varios das de trabajo, ha obtenido
las relaciones con las que trabajar y los atributos que desea
guardar en la base de datos. Junto con Ana va a repasar que
se cumplan todas las propiedades y as asegurarse que el
modelo es el adecuado. Tambin necesitar saber qu
informacin podr consultar el usuario para as crear algunas
tablas de modo temporal.
En un modelo relacional se puede utilizar cualquier relacin? Es vlida cualquier tabla o se deben cumplir
algunas propiedades?
Debes saber que:
Ca d a ta b l a t i e n e u n n o m b re d is tin to .
Co m o h e m o s v i s t o a n te s , c a d a a tr i b u t o (c o l u m n a ) d e l a t a b l a to m a u n s o lo v a l o r e n c a d a tu p l a (f i l a ).
Ca d a a tr i b u t o (c o l u m n a ) t i e n e u n n o m b re d is ti n to e n c a d a t a b l a (p e ro p u e d e s e r e l m i s m o e n ta b l a s d i s ti n ta s ) .
No p u e d e h a b e r d o s t u p l a s (fi l a s ) c o m p l e t a m e n te i g u a l e s .
E l o rd e n d e l a s t u p l a s (f i l a s ) n o im p o rta .
E l o rd e n d e l o s a tr i b u t o s (c o l u m n a s ) n o im p o rta .
To d o s l o s d a to s d e u n a t ri b u t o (c o l u m n a ) d e b e n s e r d e l m is m o d o m i n i o .
30/06/2013 14:47
BD02_Contenidos
11 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Autoevaluacin
Cul de las siguientes afirmaciones no es cierta en una relacin?
Todos los atributos deben estar en el mismo dominio.
No puede haber dos tuplas completamente iguales.
Cada atributo de la tabla toma un nico valor en cada tupla.
Podemos tener tablas con el mismo nombre en la misma base de datos.
Correcto, s es posible en bases de datos distintas.
30/06/2013 14:47
BD02_Contenidos
12 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Caso prctico
Juan le est contando a Ana que hay que distinguir las
relaciones en funcin del uso que se le vaya a dar. Tal y
como han hablado con el cliente, sabe que unos jugadores
accedern a un tipo de tablas como usuarios, y las personas
que administran la base de datos lo harn a otras. Es obvio
que tenemos que distinguir entre unas y otras.
Ba s e : In d e p e n d i e n te s , s e c re a n i n d i c a n d o s u e s tru c t u r a y s u s e j e m p l a r e s (c o n j u n t o d e t u p l a s o f i l a s ).
Vi s t a s : s o n t a b l a s q u e s l o a l m a c e n a n u n a d e f i n i c i n d e c o n s u l ta , re s u l ta d o d e l a c u a l s e p ro d u c e u n a ta b l a c u y o s d a to s p r o c e d e n d e l a s b a s e s o d e o tra s v i s t a s e i n s t a n t n e a s . Si l o s d a to s d e l a s ta b l a s b a s e c a m b i a n , l o s d e l a v i s ta q u e u t i l i z a n e s o s d a t o s t a m b i n c a m b i a r n .
In s t a n t n e a s : s o n v i s t a s (s e c r e a n d e l a m i s m a fo rm a ) q u e s a l m a c e n a n l o s d a to s q u e m u e s tra n , a d e m s d e l a c o n s u l ta q u e l a c re . S o l o m o d i fi c a n s u re s u l t a d o c u a n d o e l s i s te m a s e re fr e s c a c a d a c i e r to ti e m p o . Es c o m o u n a fo to g r a f a d e l a re l a c i n , q u e s l o e s v l i d a d u r a n te u n p e ri o d o d e ti e m p o c o n c re to .
T e m p o ra le s : S o n t a b l a s q u e s o n e l i m i n a d a s a u to m t i c a m e n te p o r e l s i s te m a .
Autoevaluacin
Las relaciones que se crean indicando su estructura y sus ejemplares se denominan:
Instantneas.
Vistas.
Base.
Correcto, sigue as.
30/06/2013 14:47
BD02_Contenidos
13 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Caso prctico
Juan le ha pedido a Ana que repase cada una de las
relaciones y en funcin de los datos que contenga cada
atributo, elegir el tipo de datos ms adecuado. Ms adelante
habr que restringir esos valores para que al introducir datos
no se produzcan errores. Los tipos de datos ocupan espacio
en el disco duro del
servidor donde se guarde y eso
significa un gasto para la empresa, as que hay que
optimizar.
Adems, Ana todava recuerda aquella vez que tuvo que
entregar una prctica en la facultad sobre base de datos. Guard el telfono con un formato de
nmero y cuando fue a imprimir un informe... no quiere ni acordarse! Le salieron unos nmeros
de telfonos que nada tenan que ver con los datos introducidos.
Qu es un DNI? Con qu datos lo representamos? DNI es una informacin que es susceptible de ser
guardada. Normalmente el DNI est formado por dgitos y una letra al final. Si tuviramos que clasificarlo
diramos que es un conjunto de caracteres alfanumricos. Y si pensamos en Sueldo? Aqu lo tenemos un
poco ms claro, evidentemente es un nmero entero o con decimales.
Hasta ahora hemos visto que vamos a guardar informacin relacionada en forma de filas y columnas. Las
columnas son los atributos o informacin que nos interesa incluir del mundo real que estamos modelando.
Hemos visto que esos atributos se mueven dentro de un dominio, que formalmente es un conjunto de
valores. Pues bien, en trminos de sistemas de base de datos, se habla ms de tipos de datos que de
dominios. Al crear la relacin (tabla) decidimos qu conjunto de datos deber ser almacenado en las filas de
los atributos que hemos considerado. Tenemos que asignar un tipo de dato a cada atributo.
Con la asignacin de tipos de datos, tambin habremos seleccionado un dominio para un atributo.
Cada campo:
d e b e p o s e e r u n No m b re (r e l a c i o n a d o c o n l o s d a t o s q u e v a a c o n te n e r) y
d e b e te n e r a s o c i a d o u n T ip o d e d a to .
Existen distintas formas de nombrar los tipos de datos dependiendo del lenguaje que utilicemos (
Java, PHP, MySQL, SQL,
Pascal, etc.).
C,
Nu m ric o : a l m a c e n a n m e r o s c o n l o s q u e v a m o s a re a l i z a r o p e ra c i o n e s m a t e m t i c a s .
F e c h a /h o ra : a l m a c e n a fe c h a s y h o r a s .
S / No : a l m a c e n a d a t o s q u e s o l o t i e n e n d o s p o s i b i l i d a d e s ( v e rd a d e r o / fa l s o ).
Au t o n u m ric o : v a l o r n u m r i c o s e c u e n c i a l q u e e l S GB D i n c r e m e n ta d e m o d o a u t o m ti c o a l a a d i r u n re g i s t ro (f i l a ).
M e m o : a l m a c e n a t e x to l a rg o (m a y o r q u e u n ti p o te x t o ) .
M o n e d a : s e p u e d e c o n s i d e ra r u n s u b t i p o d e Nu m r i c o y a q u e a l m a c e n a n m e ro s , p e r o c o n u n a c a ra c t e r s t i c a e s p e c i a l , y e s q u e l o s v a l o re s r e p re s e n t a n c a n ti d a d e s d e d i n e ro .
Ob j e t o OL E: a l m a c e n a g r fi c o s , i m g e n e s o te x t o s c re a d o s p o r o t ra s a p l i c a c i o n e s .
Para saber ms
30/06/2013 14:47
BD02_Contenidos
14 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Si quieres saber un poco ms sobre los tipos de datos puedes ver este enlace de Wikipedia:
Tipo de datos.
30/06/2013 14:47
BD02_Contenidos
15 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
5.- Claves.
Caso prctico
Juan est revisando la relacin Usuarios. En esta tabla va a
guardar los siguientes atributos: Login del jugador que ser
nuestro usuario, Password o Contrasea, Nombre y
Apellidos, Direccin, Cdigo Postal, Localidad, Provincia,
Pas, Fecha de nacimiento para comprobar que no es menor
de edad, Fecha de ingreso en la web, Correo electrnico,
Sexo y por ltimo los Crditos (dinero "ficticio") que tenga.
{No m b re , A p e l l i d o s , l o g i n , e _ m a i l }
{l o g i n , e _ m a i l }
{l o g i n }
Tendramos que elegir alguna de las superclaves para diferenciar las tuplas. En el modelo relacional
trabajamos con tres tipos de claves:
Cl a v e s c a n d id a ta s .
Cl a v e s p ri m a ri a s .
Cl a v e s a lt e rn a tiv a s .
Cl a v e s a je n a s .
Para saber ms
En este enlace tienes ms informacin sobre las superclaves:
Superclaves.
30/06/2013 14:47
BD02_Contenidos
16 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Si elegimos como clave candidata Nombre, Apellidos y F_nacimiento, cumple con la unicidad puesto que
es muy difcil encontrarnos con dos personas que tengan el mismo nombre, apellidos y fecha de nacimiento
iguales. Es irreducible puesto que sera posible encontrar dos personas con el mismo nombre y apellidos o
con el mismo nombre y fecha de nacimiento, por lo que son necesarios los tres atributos (campos) para
formar la clave.
Para identificar las claves candidatas de una relacin no nos fijaremos en un momento concreto en el que
vemos una base de datos. Puede ocurrir que en ese momento no haya duplicados para un atributo o
conjunto de atributos, pero esto no garantiza que se puedan producir. El nico modo de identificar las
claves candidatas es conociendo el significado real de los atributos (campos), ya que as podremos saber si
es posible que aparezcan duplicados. Es posible desechar claves como candidatas fijndonos en los
posibles valores que podemos llegar a tener. Por ejemplo, podramos pensar que Nombre y Apellidos
podran ser una clave candidata, pero ya sabemos que cabe la posibilidad de que dos personas puedan
tener el mismo Nombre y Apellidos, as que lo descartamos.
Hasta ahora, seguimos teniendo varias claves con la que identificamos de modo nico nuestra relacin. De
ah el nombre de candidatas. Hemos de quedarnos con una.
La clave primaria de un relacin es aquella clave candidata que se escoge para identificar sus tuplas de
modo nico. Ya que una relacin no tiene tuplas duplicadas, siempre hay una clave candidata y, por lo
tanto, la relacin siempre tiene clave primaria. En el peor caso, la clave primaria estar formada por todos
los atributos de la relacin, pero normalmente habr un pequeo subconjunto de los atributos que haga esta
funcin. En otros casos, podemos crear un campo nico que identifique las tuplas, por ejemplo un cdigo de
usuario, que podran estar constituidos por valores autonumricos.
Las claves candidatas que no son escogidas como clave primaria son denominadas claves
alternativas.
Si en nuestra tabla Usuarios escogemos Login como clave primaria, el E_mail o {Nombre, Apellidos,
F_Nacimiento} sern nuestras claves alternativas.
Autoevaluacin
Rellena los huecos con los conceptos adecuados.
Dentro del conjunto de superclaves, se llaman claves
identifican unvocamente a cada una de las
tuplas
candidatas
a aquellas que
30/06/2013 14:47
BD02_Contenidos
17 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
clave
primaria
alternativas
Reiniciar
Aquellas
que
no
escogemos
se
denominarn
claves
Tu puntuacin es 0/4.
30/06/2013 14:47
BD02_Contenidos
18 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Autoevaluacin
Cules de las siguientes afirmaciones sobre las claves ajenas son correctas?
Puede "referenciar" a la clave primaria de la misma tabla donde se encuentra.
Seleccin incorrecta.
Puede "referenciar" a la clave primaria de otra tabla.
Seleccin incorrecta.
Representa relaciones entre datos.
Seleccin incorrecta.
Puede contener valores nulos.
Seleccin incorrecta.
No puede repetirse en la tabla.
Seleccin correcta.
Mostrar Informacin
Recuerda que las claves ajenas son aquellos atributos a travs de los cuales se relacionan
las tablas.
30/06/2013 14:47
BD02_Contenidos
19 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Para saber ms
Interesante artculo sobre las claves ajenas y su importancia:
De las claves ajenas, forneas, externas...
Si necesitas refrescar o simplemente aprender el concepto de clave primaria, en la wikipedia
puedes consultarlo:
Claves primarias.
30/06/2013 14:47
BD02_Contenidos
20 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Caso prctico
Juan considera que es
beneficioso
crear
un
ndice para la tabla
Usuarios. Podra agilizar
las
bsquedas
de
usuarios registrados. Le
ha contado a Ana que es
conveniente
tenerlo,
aunque tambin le ha
explicado
que
tener
muchos ndices no es bueno. Tendrn que hacer una buena eleccin del nmero de ndices que
van a manejar.
Para saber ms
Si quieres conocer ms sobre los ndices y MySQL puedes leer este artculo:
30/06/2013 14:47
BD02_Contenidos
21 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
ndices
30/06/2013 14:47
BD02_Contenidos
22 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Caso prctico
Ana tiene un poco ms claro el concepto de relacin y las
caractersticas de los atributos. Sabe que stos se definen
en un dominio. Pero qu ocurre si no conozco algn valor
de un dato? Si en la tabla de usuarios estoy pidiendo que
se guarde el sexo y el jugador no quiere decirlo? Qu
puede ocurrir? Si se permite que ese dato no sea obligatorio
lo que me quedara sera un dato vaco de informacin.
Vamos a ver que eso es posible y que ese valor tiene una
denominacin propia.
Qu sucede si al guardar los datos de los Usuarios hay algn dato que no
tengo o no necesito guardarlo porque no corresponde?
Independientemente del dominio al que pertenezca un campo, ste puede
tomar un valor especial denominado NULO (NULL en ingls) que
designar la ausencia de dato.
Cuando por cualquier motivo se desconoce el valor de un campo, por
ejemplo, desconocemos el telfono del usuario, o bien ese campo carece
de sentido (siguiendo con el mismo ejemplo, puede que el usuario no tenga
telfono), podemos asignar a ese campo el valor especial NULO.
Cuando trabajamos con claves secundarias el valor nulo indica que la tupla o fila no est relacionada con
ninguna otra tupla o fila. Este valor NULO es comn a cualquier dominio.
Pero ten en cuenta una cosa, no es lo mismo valor NULO que ESPACIO EN BLANCO.
Tampoco ser lo mismo valor NULO que el valor CERO.
Un ordenador tomar un espacio en blanco como un carcter como otro cualquiera. Por tanto, si
introducimos el carcter "espacio en blanco" estaramos introduciendo un valor que pertenecera al dominio
texto y sera distinto al concepto "ausencia de valor" que sera no incluir nada (nulo).
Este valor se va a utilizar con frecuencia en las bases de datos y es imprescindible saber cmo acta
cuando se emplean operaciones lgicas sobre ese valor. En la
lgica booleana tenemos los valores
VERDADERO y FALSO, pero un valor NULO no es ni verdadero ni falso.
Cuando necesitemos comparar dos campos, si ambos son nulos no podremos obtener ni verdadero ni falso.
Necesitaremos definir la lgica con este valor. Veamos los operadores lgicos ms comunes y sus
resultados utilizando el valor nulo:
V ERDA DE RO Y ( AND) NUL O d a ra c o m o re s u l t a d o NUL O.
F AL S O O NUL O d a r a c o m o r e s u l ta d o NUL O.
En todas las bases de datos relacionales se utiliza un operador llamado ES NULO (IS NULL) que devuelve
VERDADERO si el valor con el que se compara es NULO.
30/06/2013 14:47
BD02_Contenidos
23 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Para saber ms
El uso del valor nulo es un tema que da mucho que hablar, aqu puedes leer sobre ello:
Valores nulos
Autoevaluacin
Cules de las siguientes afirmaciones sobre el valor nulo son ciertas?
Designa ausencia de dato.
Seleccin incorrecta.
Es lo mismo que espacio en blanco.
Seleccin correcta.
Es lo mismo que cero.
Seleccin correcta.
Mostrar Informacin
El valor nulo no se puede confundir con espacio en blanco ni con el valor cero.
30/06/2013 14:47
BD02_Contenidos
24 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
8.- Vistas.
Caso prctico
Ana lleva un buen rato pensando cmo hacer si necesitara
consultar datos de dos tablas distintas, por ejemplo, sera
interesante obtener los nombres de los usuarios que estn
jugando una determinada partida. O quizs consultar otros
datos por el estilo. Cmo lo hace si ya estn definidas las
tablas del modelo? Cmo crear esas tablas? Juan le va a
explicar que esa informacin la puede obtener a travs de
las vistas.
Cuando vimos los distintos tipos de relaciones, aprendimos que, entre otros,
estaban las vistas. Ahora ya tenemos ms conocimientos para comprender mejor
este concepto.
Una vista es una tabla "virtual" cuyas filas y columnas se obtienen a partir de una o
de varias tablas que constituyen nuestro modelo. Lo que se almacena no es la
tabla en s, sino su definicin, por eso decimos que es "virtual". Una vista acta
como filtro de las tablas a las que hace referencia en ella.
La consulta que define la vista puede provenir de una o de varias tablas, o bien de
otras vistas de la base de datos actual u otras bases de datos.
No existe ninguna restriccin a la hora de consultar vistas y muy pocas
restricciones a la hora de modificar los datos de stas.
Podemos dar dos razones por las que queramos crear vistas:
S e g u rid a d , n o s p u e d e i n t e r e s a r q u e l o s u s u a ri o s t e n g a n a c c e s o a u n a p a r te d e l a i n fo r m a c i n q u e h a y e n u n a ta b l a , p e r o n o a to d a l a t a b l a .
Co m o d id a d , c o m o v e r e m o s a l p a s a r n u e s tr a s ta b l a s /r e l a c i o n e s a u n l e n g u a j e d e b a s e d e d a to s , p u e d e q u e t e n g a m o s q u e e s c ri b i r s e n te n c i a s b a s ta n te c o m p l e j a s , l a s v i s ta s n o s o n ta n c o m p l e j a s .
Las vistas no tienen una copia fsica de los datos, son consultas a los datos que hay en las tablas, por lo
que si actualizamos los datos de una vista, estamos actualizando realmente la tabla, y si actualizamos la
tabla estos cambios sern visibles desde la vista.
Aunque no siempre podremos actualizar los datos de una vista, depender de la complejidad de la misma
y del gestor de base de datos. No todos los gestores de bases de datos permiten actualizar vistas,
Oracle, por ejemplo, no lo permite, mientras que
SQL Server s.
Autoevaluacin
Una vista puede proceder de:
Una tabla.
Seleccin incorrecta.
Varias tablas.
Seleccin incorrecta.
Otras vistas de la misma base de datos.
Seleccin incorrecta.
Otras vistas de otras bases de datos.
Seleccin incorrecta.
Mostrar Informacin
30/06/2013 14:47
BD02_Contenidos
25 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Recuerda adems que una vista es una consulta y lo que se guarda es su definicin.
30/06/2013 14:47
BD02_Contenidos
26 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Caso prctico
Juan debe consultar al cliente qu usuarios van a acceder a
la base de datos y qu privilegios se les va a otorgar. Esta
parte es primordial si queremos salvaguardar el contenido de
la base de datos. Qu ocurrira si cualquiera pudiera ver la
informacin personal de todos los usuarios registrados?
Estaramos cometiendo un fallo de seguridad adems de
incumplir la ley de proteccin de datos.
Re a l i z a l a s c o p i a s d e s e g u ri d a d .
De fi n e u n a c u o ta d e a l m a c e n a m i e n t o .
De fi n e e l
ta b l e s p a c e p o r d e fe c t o p a ra l o s o b j e to s d e u n u s u a ri o e n Or a c l e .
Pero no todos los usuarios deberan poder hacer lo mismo cuando acceden a
la base de datos. Por ejemplo, un
administrador debera tener ms
privilegios que un usuario que quiere realizar una simple consulta.
Qu es un privilegio? No es ms que un permiso dado a un usuario para que realice ciertas operaciones,
que pueden ser de dos tipos:
De s is te m a : n e c e s i ta r e l p e r m i s o d e s i s t e m a c o rr e s p o n d i e n t e .
S o b re o b je to : n e c e s i ta r e l p e r m i s o s o b re e l o b j e t o e n c u e s t i n .
Y no sera interesante poder agrupar esos permisos para darlos juntos? Para eso tenemos el rol.
Un rol de base de datos no es ms que una agrupacin de permisos de sistema y de objeto.
Podemos tener a un grupo determinado de usuarios que tengan permiso para consultar los datos de una
tabla concreta y no tener permiso para actualizarlos. Luego un rol permite asignar un grupo de permisos a
un usuario. De este modo, si asignamos un rol con 5 permisos a 200 usuarios y luego queremos aadir un
permiso nuevo al rol, no tendremos que ir aadiendo este nuevo permiso a los 200 usuarios, ya que el rol
se encarga de propagarlo automticamente.
Autoevaluacin
Rellena los huecos con los conceptos adecuados.
Al conjunto de permisos que se aplican a una conexin de base de datos, se le llama
usuario
llama
rol
. Los permisos dados a usuarios para que realicen ciertas operaciones se les
privilegios
Reiniciar
30/06/2013 14:47
BD02_Contenidos
27 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Tu puntuacin es 0/3.
30/06/2013 14:47
BD02_Contenidos
28 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
10.- SQL.
Caso prctico
Hasta ahora Ana y Juan
no han tenido que utilizar
mucho el ordenador, ya
es hora de ponerse
manos a la obra. El
diseo
est
casi
finalizado y ahora es
necesario pasarlo a un
lenguaje adecuado. Juan
haba acordado con Ada
que usaran Oracle como SGBD. Para trabajar con esta aplicacin es necesario tener
conocimientos del lenguaje que utiliza, en concreto SQL para Oracle, que tiene ciertas
variaciones con el estndar. Ana est deseando comenzar a introducir los datos necesarios.
SQL (Structured Query Language) es el lenguaje fundamental de los SGBD relacionales. Es uno de los
lenguajes ms utilizados en informtica en todos los tiempos. Es un
lenguaje declarativo y por tanto, lo
ms importante es definir qu se desea hacer, y no cmo hacerlo. De esto ltimo ya se encarga el SGBD.
Hablamos por tanto de un lenguaje normalizado que nos permite trabajar con cualquier tipo de lenguaje
ASP o
PHP) en combinacin con cualquier tipo de base de datos (
Access, SQL Server,
(
MySQL, Oracle, etc.).
El hecho de que sea
estndar no quiere decir que sea idntico para cada base de datos. As es,
determinadas bases de datos implementan funciones especficas que no tienen necesariamente que
funcionar en otras.
Aunque SQL est estandarizado, siempre es recomendable revisar la documentacin del SGBD
con el que estemos trabajando para conocer su sintaxis concreta, ya que algn comando, tipo de
dato, etc., puede no seguir el estndar.
SQL posee dos caractersticas muy apreciadas, potencia y
versatilidad,
que contrastan con su facilidad para el aprendizaje, ya que utiliza un lenguaje
bastante natural. Es por esto que las instrucciones son muy parecidas a
rdenes humanas. Por esta caracterstica se le considera un
Lenguaje de
Cuarta Generacin.
Aunque frecuentemente oigas que SQL es un "lenguaje de consulta", ten en
cuenta que no es exactamente cierto ya que contiene muchas otras
capacidades adems de la de consultar la base de datos:
l a d e f i n i c i n d e l a p ro p i a e s tru c t u r a d e l o s d a to s ,
s u m a ni pu la c i n ,
y l a e s p e c i f i c a c i n d e c o n e x i o n e s s e g u ra s .
Por tanto, el lenguaje estructurado de consultas SQL es un lenguaje que permite operar con los datos
almacenados en las bases de datos relacionales.
Para saber ms
Ya hemos llegado a los lenguajes de quinta generacin, en el siguiente enlace puedes ver sus
30/06/2013 14:47
BD02_Contenidos
29 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
caractersticas ms generales:
Generaciones de lenguajes de programacin
En este enlace encontrars de una manera breve, pero interesante, la historia del SQL.
Historia de SQL.
30/06/2013 14:47
BD02_Contenidos
30 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
De d e fi n i c i n d e d a to s (DDL , Da ta De f i n i ti o n L a n g u a g e ) , q u e p e rm i te n c r e a r y d e fi n i r n u e v a s b a s e s d e d a t o s , t a b l a s , c a m p o s , e tc .
De m a n i p u l a c i n d e d a to s ( DM L , Da t a M a n i p u l a ti o n L a n g u a g e ) , q u e p e rm i te n g e n e ra r c o n s u l ta s p a ra o rd e n a r, fi l tra r y e x tra e r d a t o s d e l a b a s e d e d a to s .
De c o n tr o l y s e g u r i d a d d e d a t o s ( DCL , Da t a Co n tr o l L a n g u a g e ) , q u e a d m i n i s t ra n l o s d e r e c h o s y re s t ri c c i o n e s d e l o s u s u a ri o s .
CL US UL AS : L l a m a d a s t a m b i n c o n d i c i o n e s o c ri te r i o s , s o n p a l a b ra s e s p e c i a l e s q u e p e rm i t e n m o d i f i c a r e l f u n c i o n a m i e n t o d e u n c o m a n d o .
F UNCI ONES : P a ra c o n s e g u i r v a l o re s c o m p l e j o s . P o r e j e m p l o , l a fu n c i n p ro m e d i o p a ra o b t e n e r l a m e d i a d e u n s a l a r i o .
L IT E RAL ES : L e s p o d e m o s l l a m a r ta m b i n c o n s t a n te s y s e r n v a l o r e s c o n c r e t o s , c o m o p o r e j e m p l o u n n m e ro , u n a f e c h a , u n c o n j u n t o d e c a r a c te re s , e t c .
No s e d i s t i n g u e e n tre m a y s c u l a s y m i n s c u l a s .
Cu a l q u i e r c o m a n d o p u e d e s e r p a rt i d o c o n s a l to s d e l n e a o e s p a c i o s p a ra fa c i l i ta r s u l e c t u ra y c o m p re n s i n .
L o s c o m e n ta ri o s c o m i e n z a n p o r /* y te rm i n a n c o n */ (e x c e p to e n a l g u n o s S GBD).
Juan le ha dicho a Ana que es hora de ponerse a trabajar con la aplicacin. Para aprender mejor le ha
pedido permiso a Juan para instalar Oracle en su ordenador y as ir probando todo sobre la marcha para no
cometer errores. El SQL estndar y el SQL de Oracle son bastante parecidos, pero con algunas diferencias.
Debes conocer
En el siguiente documento encontraras aquellos comandos, clusulas, operadores y funciones
ms generales con las que vamos a trabajar a lo largo del curso:
Elementos del lenguaje.
Para trabajar con Oracle tendrs que instalar el programa adecuado, aqu tienes el enlace donde
puedes bajarte la aplicacin gratuita:
Oracle XE.
En el siguiente documento puedes encontrar los pasos que debes seguir para la instalacin de la
aplicacin en tu ordenador:
Pasos para la instalacin.
Para saber ms
30/06/2013 14:47
BD02_Contenidos
31 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Otro Sistema Gestor de Base de Datos muy utilizado en algunos entornos como el de desarrollo
web es MySQL. Sera interesante que lo conocieras y supieras instalarlo:
Manual MySQL.
Otra pgina recomendable donde puedes aprender MySQL desde cero es la siguiente:
MySQL con Clase.
30/06/2013 14:47
BD02_Contenidos
32 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Caso prctico
Ana
y
Juan
han
realizado
concienzudamente
el
diseo de las tablas
necesarias para la base
de datos de la aplicacin
en
la
que
estn
trabajando.
Tambin
se
han
decantado por el sistema gestor de bases de datos a utilizar. Emplearn un sistema gestor de
bases de datos relacional. Una vez instalado el sistema gestor, tendrn que programar los
accesos a la base de datos para guardar los datos, recuperarlos, realizar las consultas para los
informes y documentos que sean necesarios, etc.
Ana est creando la primeras tablas de la base de datos. Una de las principales es USUARIO,
aunque tambin tendr que crear la de PARTIDAS y JUEGOS.
La primera fase del trabajo con cualquier base de datos comienza con sentencias DDL,
puesto que antes de poder almacenar y recuperar informacin debemos definir las
estructuras donde almacenar la informacin. Las estructuras bsicas con las que
trabaja SQL son las tablas.
Conocer el Lenguaje de Definicin de Datos (DDL) es imprescindible para crear,
modificar y eliminar objetos de la base de datos (es decir, los metadatos). En el
mercado hay suficientes aplicaciones y asistentes que nos facilitan esta labor, a travs
de una interfaz visual que nos oculta el lenguaje SQL y en los cuales nos limitamos a
poner nombres a los campos, elegir el tipo de datos y activar una serie de propiedades.
Es cierto que estas herramientas nos facilitan el trabajo, pero resulta imprescindible
comprender y conocer en profundidad el lenguaje, ya que nos veremos en muchas
situaciones donde necesitaremos crear un objeto, modificarlo o eliminarlo sin depender
de esas herramientas visuales.
En Oracle, cada usuario de una base de datos tiene un esquema, que tendr el mismo nombre que el
usuario con el que se ha accedido y sirve para almacenar los objetos que posea ese usuario.
De qu objetos estamos hablando? stos podrn ser tablas, vistas, ndices u otros objetos relacionados
con la definicin de la base de datos. Y quin puede crear y manipularlos? En principio el usuario
propietario (el que los cre) y los administradores de la base de datos. Ms adelante veremos que podemos
modificar los privilegios de los objetos para permitir el acceso a otros usuarios.
Las instrucciones DDL generan acciones que no se pueden deshacer, por eso es conveniente
usarlas con precaucin y tener copias de seguridad cuando manipulamos la base de datos.
Para saber ms
Si quieres saber un poco ms sobre el Lenguaje de Definicin de Datos, puedes visitar la
30/06/2013 14:47
BD02_Contenidos
33 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
30/06/2013 14:47
BD02_Contenidos
34 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Por ejemplo, a la base de datos que estn creando Juan y Ana se le va a llamar RyMjuegos, entonces nos
quedara:
Hemos estado hablando de objetos de la base de datos, ahora veremos a qu nos referimos.
Segn los estndares, una base de datos es un conjunto de objetos que nos servirn para gestionar
los datos. Estos objetos estn contenidos en esquemas y stos a su vez suelen estar asociados a un
usuario. De ah que antes dijramos que cada base de datos tiene un esquema que est asociado a un
usuario.
Para saber ms
Si quieres aprender a crear bases de datos con MySQL, aqu puedes aprender:
MySQL: creacin de bases de datos.
30/06/2013 14:47
BD02_Contenidos
35 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Qu n o m b re l e v a m o s a d a r a c a d a u n a d e l a s c o lu m n a s .
Qu ti p o y ta m a o d e d a t o s v a m o s a a l m a c e n a r e n c a d a c o l u m n a .
Qu re s t ri c c io n e s te n e m o s s o b r e l o s d a to s .
A l g u n a o tr a in fo rm a c i n a d ic i o n a l q u e n e c e s i t e m o s .
Y debemos tener en cuenta otras reglas que se deben cumplir para los nombres de las tablas:
No p o d e m o s te n e r n o m b re s d e t a b l a s d u p l i c a d o s e n u n m i s m o e s q u e m a ( u s u a ri o ) .
De b e n c o m e n z a r p o r u n c a r c te r a l f a b t i c o .
S u l o n g i tu d m x i m a e s d e 3 0 c a ra c t e r e s .
S o l o s e p e rm i t e n l e tr a s d e l a l fa b e to i n g l s , d g i to s o e l s i g n o d e g u i n b a j o .
No p u e d e c o i n c i d i r c o n l a s p a l a b r a s r e s e r v a d a s d e S QL ( p o r e j e m p l o , n o p o d e m o s l l a m a r a u n a ta b l a W HERE) .
No s e d i s t i n g u e e n tre m a y s c u l a s y m i n s c u l a s .
La sintaxis bsica del comando que permite crear una tabla es la siguiente:
donde:
c o l u m n a 1 , c o l u m n a 2 , . .., c o l u m n a N s o n l o s n o m b re s d e l a s c o l u m n a q u e c o n te n d r l a t a b l a .
T i p o _ Da t o i n d i c a e l ti p o d e d a to d e c a d a c o l u m n a .
Ana va a crear la primera tabla llamada USUARIOS con un solo campo de tipo VARCHAR:
Recuerda que solo podrs crear tablas si posees los permisos necesarios para ello.
Debes conocer
Durante nuestro aprendizaje vamos a tener que crear muchas tablas, para ello necesitaremos
manejar los tipos de datos que utiliza Oracle. En el siguiente enlace tienes una relacin de estos
tipos y su descripcin.
Tipos de datos en Oracle.
30/06/2013 14:47
BD02_Contenidos
36 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Para saber ms
MySQL trabaja con otros tipos de datos. Si quieres conocerlos puedes entrar en este enlace.
Tipos de datos en MySQL.
Autoevaluacin
Seala cuales de las siguientes afirmaciones sobre los nombres de las tablas son ciertas:
Puede haber nombres de tablas duplicados en la misma base de datos.
Seleccin correcta.
Su longitud mxima es de 30 caracteres.
Seleccin incorrecta.
La tabla JUEGOS es la misma que la tabla Juegos.
Seleccin incorrecta.
No puede coincidir con las palabras reservadas de SQL.
Seleccin incorrecta.
Mostrar Informacin
30/06/2013 14:47
BD02_Contenidos
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
11.3.- Restricciones.
Hay veces que necesitamos que un dato se incluya en una tabla de manera
obligatoria, otras veces necesitaremos definir uno de los campos como llave
primaria o ajena. Todo esto podremos hacerlo cuando definamos la tabla,
adems de otras opciones.
Una restriccin es una condicin que una o varias columnas deben cumplir
obligatoriamente.
Cada restriccin que creemos llevar un nombre, si no se lo ponemos nosotros
lo har Oracle o el SGBD que estemos utilizando. Es conveniente que le
pongamos un nombre que nos ayude a identificarla y que sea nico para cada
esquema (usuario). Es buena idea incluir de algn modo el nombre de la tabla,
los campos involucrados y el tipo de restriccin en el nombre de la misma. La sintaxis en SQL estndar es
la siguiente:
Veamos un ejemplo:
Otra opcin es definir las columnas de la tabla y despus especificar las restricciones, de este modo podrs
referir varias columnas en una nica restriccin.
37 de 61
30/06/2013 14:47
BD02_Contenidos
38 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
En los siguientes apartados veremos cada una de las restricciones, su significado y su uso.
Recomendacin
Oracle nos aconseja la siguiente regla a la hora de poner nombre a las restricciones:
T r e s l e tr a s p a r a e l n o m b r e d e l a t a b l a .
Ca r c te r d e s u b r a y a d o .
T r e s l e tr a s c o n l a c o l u m n a a f e c ta d a p o r l a r e s tri c c i n .
Ca r c te r d e s u b r a y a d o .
Do s l e tr a s c o n l a a b re v i a tu ra d e l ti p o d e re s t ri c c i n . L a a b r e v i a tu r a p u e d e s e r:
P K = Pri m a ry K e y .
F K = F o re i g n Ke y .
N N = No t Nu l l .
U K = Un i q u e .
C K = Ch e c k (v a l i d a c i n ).
30/06/2013 14:47
BD02_Contenidos
39 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Debemos tener cuidado con los valores nulos en las operaciones, ya que 1*NULL es igual a
NULL.
Autoevaluacin
Si queremos que un campo no admita valores nulos, al crear la tabla pondremos despus
del nombre del campo y del tipo de datos:
NULL.
VARCHAR.
NOT NULL.
30/06/2013 14:47
BD02_Contenidos
40 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Tambin podemos poner esta restriccin a varios campos a la vez, por ejemplo, si queremos que Login y
correo electrnico sean nicos podemos ponerlo as:
Si te fijas, detrs del tipo de datos de Correo hay una coma, eso es as porque la restriccin es
independiente de ese campo y comn a varios. Por eso despus de UNIQUE hemos puesto entre parntesis
los nombres de los campos a los que afecta la restriccin.
30/06/2013 14:47
BD02_Contenidos
41 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
O b i e n p o n i e n d o u n n o m b re a l a re s tri c c i n :
S i l a c l a v e e s t fo rm a d a p o r m s d e u n c a m p o , p o r e j e m p l o No m b re , A p e l l i d o s y F e c h a d e Na c i m i e n to :
30/06/2013 14:47
BD02_Contenidos
42 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Si el campo al que hace referencia es clave principal en su tabla no es necesario indicar el nombre del
campo:
Si la definicin de la clave ajena se pone al final, tendremos que colocar el texto FOREIGN KEY para
especificar a qu campo se est refiriendo.
Vamos a verlo en el caso en que la clave ajena estuviera formada por Cod_Partida y Fecha de la partida de
la tabla PARTIDAS:
Al relacionar campos necesitamos que el dato del campo que es clave ajena en una tabla (que llamaremos
secundaria) previamente haya sido incluido en su tabla de procedencia donde es clave primaria o
candidata. En nuestro ejemplo, cualquier cdigo de partida que incluyamos en la tabla USUARIO, debera
estar previamente en la tabla de la que procede, es decir, en la tabla PARTIDAS. A esto se le llama
Integridad Referencial.
Esto puede crear algunos errores, pues puede ocurrir lo siguiente:
S i h a c e m o s re fe r e n c i a a u n a ta b l a q u e n o e s t c re a d a : Ora c l e b u s c a r l a ta b l a r e f e r e n c i a d a y a l n o e n c o n tr a r l a d a r f a l l o . E s t o s e s o l u c i o n a c re a n d o e n p ri m e r l u g a r l a s t a b l a s q u e n o te n g a n c l a v e s a j e n a s .
30/06/2013 14:47
BD02_Contenidos
43 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
S i q u e re m o s b o rr a r l a s ta b l a s t e n d r e m o s q u e p ro c e d e r a l c o n tra ri o , b o rr a r e m o s l a s t a b l a s q u e te n g a n c l a v e s a j e n a s a n te s .
O N DE LE TE S ET
N U L L : c o l o c a r e l v a l o r N U L L e n to d a s l a s c l a v e s a j e n a s re l a c i o n a d a s c o n l a b o r ra d a .
30/06/2013 14:47
BD02_Contenidos
44 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
En las especificaciones de DEFAULT vamos a poder aadir distintas expresiones: constantes, funciones SQL
y variables.
Si queremos incluir en un campo la fecha actual, independientemente del da en el que estemos, podremos
utilizar la funcin SYSDATE como valor por defecto:
Tambin vamos a necesitar que se compruebe que los valores que se introducen son adecuados para ese
campo. Para ello utilizaremos CHECK.
Esta restriccin comprueba que se cumpla una condicin determinada al rellenar una columna. Dicha
condicin se puede construir con columnas de esa misma tabla.
Si en la tabla USUARIOS tenemos el campo Crdito y ste slo puede estar entre 0 y 2000, lo
especificaramos as:
Una misma columna puede tener varios CHECK asociados a ella, para ello ponemos varios CONSTRAINT
seguidos y separados por comas.
Debes conocer
Si queremos obtener una descripcin de una tabla, sinonimo, paquete o funcin, podemos
utilizar el comando DESCRIBE.
DESCRIBE.
30/06/2013 14:47
BD02_Contenidos
45 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Autoevaluacin
Relaciona estos trminos utilizados para las restricciones en la creacin de tablas con su
significado o funcin:
Trminos.
Reiniciar
Relacin.
C H EC K
D E FA UL T
P R IM AR Y KE Y
F O RE IG N KE Y
N O T NU LL
U N IQ UE
Funcin.
1 . Co m p r u e b a q u e l o s v a l o r e s q u e s e i n t ro d u c e n s o n l o s a d e c u a d o s p a ra u n c a m p o .
2 . De s i g n a a u n c a m p o c o m o c l a v e a j e n a .
3 . Im p i d e q u e u n c a m p o p u e d a c o n te n e r v a l o re s n u l o s
4 . Im p i d e q u e s e re p i ta n v a l o re s p a ra u n c a m p o .
5 . De s i g n a a u n c a m p o c o m o c l a v e p ri n c i p a l .
6 . In c l u y e u n v a l o r e n u n c a m p o d e fo rm a p r e d e t e r m i n a d a .
Tu puntuacin es 0/6.
Estupendo, ya tienes todas las herramientas para crear una tabla.
30/06/2013 14:47
BD02_Contenidos
46 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Esta instruccin borrar la tabla de la base de datos incluido sus datos (filas). Tambin se borrar toda la
informacin que existiera de esa tabla en el Diccionario de Datos.
La opcin CASCADE CONSTRAINTS se puede incluir para los casos en que alguna de las columnas sea clave
ajena en otra tabla secundaria, lo que impedira su borrado. Al colocar esta opcin las restricciones donde
es clave ajena se borrarn antes y a continuacin se eliminar la tabla en cuestin.
Vamos a eliminar la tabla con la que hemos estado trabajando:
Ten cuidado al utilizar este comando, el borrado de una tabla es irreversible y no hay una peticin de
confirmacin antes de ejecutarse.
Cu a l q u i e r v i s t a a s o c i a d a a e s a ta b l a s e g u i r e x i s ti e n d o p e ro y a n o fu n c i o n a r .
Oracle dispone de la orden TRUNCATE TABLE que te permitir eliminar los datos (filas) de una
tabla sin eliminar su estructura.
Y recuerda que solo podrs borrar aquellas tablas sobre las que tengas permiso de borrado.
30/06/2013 14:47
BD02_Contenidos
47 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
S i q u e re m o s a a d i r c o l u m n a s a u n a ta b l a : la s c o l u m n a s s e a a d i r n a l fi n a l d e l a ta b l a .
S i q u e re m o s e lim in a r c o l u m n a s d e u n a t a b la : s e e l i m i n a r l a c o l u m n a i n d i c a d a s i n p o d e r d e s h a c e r e s ta a c c i n . A d e m s d e l a d e fi n i c i n d e l a c o l u m n a , s e e l i m i n a r n to d o s l o s d a to s q u e c o n tu v i e r a . No s e p u e d e e l i m i n a r u n a c o l u m n a s i e s l a n i c a q u e f o r m a l a ta b l a , p a ra e l l o t e n d r e m o s q u e b o r ra r l a ta b l a d i r e c ta m e n te .
S i q u e re m o s m o d if ic a r c o lu m n a s d e u n a ta b l a : p o d e m o s m o d i fi c a r e l t i p o d e d a t o s y l a s p r o p i e d a d e s d e u n a c o l u m n a . To d o s l o s c a m b i o s s o n p o s i b l e s s i l a ta b l a n o c o n t i e n e d a t o s . En g e n e r a l , s i l a ta b l a n o e s t v a c a p o d re m o s a u m e n ta r l a l o n g i t u d d e u n a c o l u m n a , a u m e n ta r o d i s m i n u i r e n n m e ro d e p o s i c i o n e s d e c i m a l e s e n u n t i p o NUM B ER, re d u c i r l a a n c h u r a s i e m p r e q u e l o s d a t o s n o o c u p e n t o d o e l e s p a c i o re s e rv a d o p a ra e l l o s .
S i q u e re m o s re n o m b ra r c o lu m n a s d e u n a ta b la :
Nos gustara incluir una nueva columna llamada User que ser tipo texto y clave primaria:
30/06/2013 14:47
BD02_Contenidos
48 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Nos damos cuenta que ese campo se llamaba Login y no User, vamos a cambiarlo:
Ejercicio resuelto
Tenemos creada la siguiente tabla:
Ahora queremos poner una restriccin a sueldo para que tome valores entre 1000 y 1200,
cmo lo haras?
Solucin:
ALTER TABLE
1200));
EMPLEADOS
MODIFY
(Sueldo
NUMBER(2)
CHECK
(Sueldo
BETWEEN
1000
AND
30/06/2013 14:47
BD02_Contenidos
49 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
CASCADE
d e s a c t i v a l a s r e s tri c c i o n e s q u e d e p e n d a n d e s ta .
P a ra a c t i v a r d e n u e v o l a re s t ri c c i n :
Debes conocer
Puede ocurrir que no hayamos puesto nombre a las restricciones o bien que lo hiciramos pero
no lo recordemos. Sera interesante que se pudiera consultar en algn lado.
Nombre de todas las restricciones.
30/06/2013 14:47
BD02_Contenidos
50 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
La mayora de los ndices se crean de manera implcita cuando ponemos las restricciones
PRIMARY KEY, FOREIGN KEY o UNIQUE.
Ejercicio resuelto
Tenemos creada la siguiente tabla:
30/06/2013 14:47
BD02_Contenidos
51 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Caso prctico
Juan cree que ser necesario conocer quines acceden a la
base de datos para poder crearles sus contraseas y darles
los permisos necesarios, de manera que la administracin de
la base quede en manos de quien corresponde, y el sistema
sea seguro. No quiere ni imaginarse que quedara algn cabo
suelto, y cualquier usuario con algo de conocimientos
pudiera acceder sin consentimiento y con los permisos
suficientes, como para manipular los datos a su antojo.
Ya hemos visto que necesitamos una cuenta de usuario para acceder a los
datos de una base de datos. Las claves de acceso se establecen cuando se
crea el usuario y pueden ser modificados por el Administrador o por el
propietario de dicha clave. La Base de Datos almacena
encriptadas las
claves en una tabla del diccionario llamada DBA_USERS.
Cmo se crean los usuarios? La sintaxis es:
donde:
C R E A T E U S E R : c r e a u n n o m b re d e u s u a ri o q u e s e r i d e n ti fi c a d o p o r e l s i s t e m a .
I D E N T I F I E D B Y : p e rm i t e d a r u n a c l a v e d e a c c e s o a l u s u a ri o c re a d o .
D E F A U L T T A B L E S P A C E : a s i g n a a u n u s u a r i o e l T a b l e s p a c e p o r d e fe c t o p a ra a l m a c e n a l o s o b j e to s q u e c re e . S i n o s e a s i g n a n i n g u n a , s e r S Y S T E M .
T E M P O R A R Y T A B L E S P A C E : e s p e c i fi c a e l n o m b r e d e l Ta b l e s p a c e p a r a t ra b a j o s te m p o r a l e s . Po r d e f e c to s e r S Y S T E M .
Q U O T A : a s i g n a u n e s p a c i o e n M e g a b y t e s o K i l o b y te s e n e l T a b l e s p a c e a s i g n a d o . Si n o s e e s p e c i f i c a e l u s u a ri o n o te n d r e s p a c i o y n o p o d r c re a r o b j e t o s .
P R O F I L E : a s i g n a u n p e rfi l a l u s u a ri o . Si n o s e e s p e c i f i c a s e a s i g n a e l p e rfi l p o r d e f e c to .
Recuerda que para crear usuarios debes tener una cuenta con privilegios de Administrador.
Para ver todos los usuarios creados utilizamos las vistas ALL_USERS y DBA_USERS. Y para
ver en mi sesin los usuarios que existen pondra: DESC SYS.ALL_USERS;
Practiquemos un poco con este comando. Creemos una cuenta de usuario limitado, que no tenga derecho
ni a guardar datos ni a crear objetos, ms tarde le daremos permisos:
Podemos modificar usuarios mediante el comando ALTER USER, cuya sintaxis es la siguiente:
30/06/2013 14:47
BD02_Contenidos
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
La opcin CASCADE borra todos los objetos del usuario antes de borrarlo. Sin esta opcin no nos dejara
eliminar al usuario si ste tuviera tablas creadas.
52 de 61
30/06/2013 14:47
BD02_Contenidos
53 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
donde:
O N e s p e c i fi c a e l o b j e to s o b re e l q u e s e c o n c e d e n l o s p ri v i l e g i o s .
T O s e a l a a l o s u s u a ri o s o ro l e s a l o s q u e s e c o n c e d e n p r i v i l e g i o s .
A L L c o n c e d e t o d o s l o s p r i v i l e g i o s s o b re e l o b j e to e s p e c i fi c a d o .
[ W I T H G R A N T O P T I O N ] p e rm i t e q u e e l re c e p t o r d e l p r i v i l e g i o s e l o a s i g n e a o t ro s .
P U B L I C h a c e q u e u n p r i v i l e g i o e s t d i s p o n i b l e p a r a to d o s l o s u s u a ri o s .
En el siguiente ejemplo Juan ha accedido a la base de datos y ejecuta los siguientes comandos:
G RA NT I NS ER T T O Us ua ri os
T O A n a ; (p e r m i ti r a An a i n s e rta r d a to s e n l a t a b l a Us u a r i o s )
G RA NT A LL O N P ar ti da s TO
A n a ; (J u a n c o n c e d e t o d o s l o s p r i v i l e g i o s s o b re l a ta b l a P a r ti d a s a A n a )
Los privilegios de sistema son los que dan derecho a ejecutar comandos SQL o acciones sobre objetos de
un tipo especificado. Existen gran cantidad de privilegios distintos.
La sintaxis para dar este tipo de privilegios la tienes aqu:
Donde
T O s e a l a a l o s u s u a ri o s o ro l e s a l o s q u e s e c o n c e d e n p r i v i l e g i o s .
W I T H A D M I N O P T I O N e s u n a o p c i n q u e p e rm i te a l re c e p t o r d e e s o s p r i v i l e g i o s q u e p u e d a c o n c e d e r e s o s m i s m o s p ri v i l e g i o s a o t ro s u s u a ri o s o ro l e s .
P U B L I C h a c e q u e u n p r i v i l e g i o e s t d i s p o n i b l e p a r a to d o s l o s u s u a ri o s .
Concede a Ana el rol de CONNECT con todos los privilegios que ste tiene asociados.
30/06/2013 14:47
BD02_Contenidos
54 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Concede a Ana el privilegio de borrar usuarios y que sta puede conceder el mismo privilegio de borrar
usuarios a otros.
Para saber ms
Si quieres conocer ms sobre permisos y objetos sobre los que se conceden privilegios, visita
este enlace:
Gestin de privilegios y recursos.
30/06/2013 14:47
BD02_Contenidos
55 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
De l s i s t e m a o ro le s a u s u a rio s :
Autoevaluacin
Asocia cada comando con su uso.
Usuarios y permisos.
Comando
Reiniciar
Relacin
CR EA TE U SE R
DR OP U SE R
GR AN T
RE VO KE
Funcin
1 . Se u ti l i z a p a ra d a r p e r m i s o s a l o s u s u a ri o s o ro l e s .
2 . Se u ti l i z a p a ra e l i m i n a r u s u a ri o s .
3 . Se u ti l i z a p a ra c re a r u s u a r i o s .
4 . Se u ti l i z a p a ra q u i ta r p e r m i s o s .
Tu puntuacin es 0/4.
Estupendo, ya conoces los comandos bsicos para la creacin de usuarios y sus permisos.
30/06/2013 14:47
BD02_Contenidos
56 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
De s c ri p c i n :
CREAT E
Se u ti l i z a p a ra c re a r n u e v a s ta b l a s , c a m p o s e n d i c e s .
Se u ti l i z a p a ra e l i m i n a r t a b l a s e n d i c e s .
DROP
Se u ti l i z a p a ra m o d i f i c a r ta b l a s .
AL T ER
Co m a n d o s DM L . L a n g u a j e d e M a n i p u l a c i n d e Da t o s :
De s c ri p c i n :
S E L E CT
S e u t i l i z a p a r a c o n s u l ta r f i l a s q u e s a ti s f a g a n u n c ri te ri o d e te r m i n a d o .
INS E RT
S e u t i l i z a p a r a c a rg a r d a to s e n u n a n i c a o p e ra c i n .
UP DAT E
S e u t i l i z a p a r a m o d i fi c a r v a l o r e s d e c a m p o s y f i l a s e s p e c fi c o s .
DE L E T E
S e u t i l i z a p a r a e l i m i n a r fi l a s d e u n a ta b l a .
Co m a n d o s DCL . L e n g u a j e d e Co n tr o l d e Da t o s :
De s c ri p c i n :
GRANT
P e rm i te d a r p e rm i s o s a u n o o v a ri o s u s u a r i o s o ro l e s p a r a re a l i z a r ta re a s d e t e rm i n a d a s .
P e rm i te e l i m i n a r p e rm i s o s q u e p re v i a m e n t e s e h a n c o n c e d i d o c o n GRA NT .
REV OKE
CL US UL AS :
L l a m a d a s ta m b i n c o n d i c i o n e s o c r i te ri o s , s o n p a l a b ra s e s p e c i a l e s q u e p e r m i te n m o d i fi c a r e l fu n c i o n a m i e n to d e u n c o m a n d o .
Cl usula s
Cl u s u la s :
De s c rip c i n :
Se u ti l i z a p a ra e s p e c i fi c a r l a ta b l a d e l a q u e s e v a n a s e l e c c i o n a r l a s f i l a s .
F ROM
Se u ti l i z a p a ra e s p e c i fi c a r l a s c o n d i c i o n e s q u e d e b e n r e u n i r l a s f i l a s q u e s e v a n a s e l e c c i o n a r.
W HE RE
GROUP BY
Se u ti l i z a p a ra s e p a ra r l a s fi l a s s e l e c c i o n a d a s e n g r u p o s e s p e c f i c o s .
HAV ING
Se u ti l i z a p a ra e x p re s a r l a c o n d i c i n q u e d e b e s a ti s f a c e r c a d a g r u p o .
ORDER BY
Se u ti l i z a p a ra o r d e n a r l a s fi l a s s e l e c c i o n a d a s d e a c u e rd o a u n o rd e n e s p e c fi c o .
OPE RA DORE S:
P e rm i te n c re a r e x p re s i o n e s c o m p l e j a s . Pu e d e n s e r a ri t m ti c o s (+ , - , *, /, ... ) o l g i c o s ( < , > , , < > , An d , Or, ) .
Op e ra d o re s l g i c o s
De s c rip c i n :
E v a l a d o s c o n d i c i o n e s y d e v u e l v e u n v a l o r d e v e rd a d s l o s i a m b a s s o n c i e r ta s .
E v a l a d o s c o n d i c i o n e s y d e v u e l v e u n v a l o r d e v e rd a d s i a l g u n a d e l a s d o s e s c i e rt a .
De v u e l v e e l v a l o r c o n t ra ri o d e l a e x p re s i n .
Op e ra d o re s d e c o m p a ra c i n
De s c rip c i n :
<
M e no r q u e.
>
M a y o r q u e.
< >
Di s ti n t o d e .
< =
M e no r o i gu al .
> =
M a y o r o i gu al .
Igu al .
=
BE T W E EN
L I KE
IN
S e u t i l i z a p a r a e s p e c i fi c a r u n i n te rv a l o d e v a l o re s .
S e u t i l i z a p a r a c o m p a ra r.
S e u t i l i z a p a r a e s p e c i fi c a r f i l a s d e u n a b a s e d e d a to s .
F UNCI ONES :
P a ra c o n s e g u i r v a l o r e s c o m p l e j o s . Po r e j e m p l o , l a fu n c i n p r o m e d i o p a ra o b te n e r l a m e d i a d e u n s a l a ri o . E x i s te n m u c h a s fu n c i o n e s , a q u t i e n e s l a d e s c ri p c i n d e a l g u n a s .
F u n c i o n e s d e a g re g a d o :
De s c ri p c i n :
Ca l c u l a e l p ro m e d i o d e l o s v a l o r e s d e u n c a m p o d e t e r m i n a d o .
De v u e l v e e l n m e r o d e f i l a s d e l a s e l e c c i n .
S UM
De v u e l v e l a s u m a d e t o d o s l o s v a l o re s d e u n c a m p o d e te rm i n a d o .
M AX
De v u e l v e e l v a l o r m s a l to d e u n c a m p o d e t e r m i n a d o .
M IN
De v u e l v e e l v a l o r m n i m o d e u n c a m p o d e te rm i n a d o .
L IT E RAL ES :
L e s p o d e m o s l l a m a r ta m b i n c o n s ta n t e s y s e r n v a l o re s c o n c re to s , c o m o p o r e j e m p l o u n n m e r o , u n a fe c h a , u n c o n j u n to d e c a ra c t e re s , e tc .
Lite ra le s
L ite ra le s :
2 3 / 0 3 /9 7
M a ra
5
De s c rip c i n :
L i t e r a l fe c h a .
L i t e r a l c a ra c te r e s .
L it e ra l n m e ro .
30/06/2013 14:47
BD02_Contenidos
57 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
La pgina de Oracle solicitar nuestro registro para realizar la descarga, pues tenemos que ser usuarios
registrados para poder bajarlo.
Una vez bajado el archivo, tendremos que ejecutarlo haciendo doble clic sobre l.
Al hacerlo, aparecer una ventana donde podrs ver que est preparndose para la instalacin y tras unos
segundos aparecer la pgina de bienvenida donde pulsaremos en siguiente.
A continuacin se nos muestra otra ventana donde tenemos que aceptar los trminos del acuerdo para
poder continuar con la instalacin:
Tras aceptar y pulsar en siguiente aparecer otra ventana donde podemos elegir donde instalar el
programa, en principio es mejor dejar lo que aparece por defecto.
Pulsamos en siguiente. En la ventana que aparece a continuacin nos solicitar que introduzcamos una
contrasea para los usuarios SYS y SYSTEM (ser la misma para los dos).
30/06/2013 14:47
BD02_Contenidos
58 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Pulsamos en siguiente y aparecer otra ventana donde nos informa entre otras cosa, que la instalacin se
realizar para conectar mediante HTTP en el puerto 8080. Ahora el botn que tenemos que pulsar es
Instalar.
Transcurrido un tiempo aparecer otra ventana que indicar que el proceso a terminado y que pulsemos
en Terminar.
Tras estos pasos, Oracle se abrir automticamente para que puedas comenzar a trabajar.
Tambin se habr creado un icono de acceso:
30/06/2013 14:47
BD02_Contenidos
59 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Si accedemos a Ir a Pgina Inicial de Base de Datos, debe aparecer la siguiente ventana donde podremos
acceder a la base de datos que trae por defecto.
Aqu usaremos las claves que pusimos antes.
30/06/2013 14:47
BD02_Contenidos
60 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
Da t o s d e l re c u rs o (1 )
Re c u rs o (2 )
Da t o s d e l re c u rs o (2 )
Au to r a : J e s s Ga rc a A r m b u l a .
A u to r a : wa rs z a wi a n k a .
L i c e n c i a : Do m i n i o P b l i c o .
L i c e n c i a : Op e n Cl i p A rt .Cre a ti v e Co m m o n s .
Pr o c e d e n c i a : h tt p :/ /c o m m o n s . wi k i m e d i a . o r g /wi k i / F i l e :Gl o b o _ te rr % C3 % A 1 q u e o . j p g ? u s e l a n g = e s
Au to r a : a l d a n a f l o re n c i a .
A u to r a : Art F a v o r.
L i c e n c i a : CC-b y - s a .
L i c e n c i a : Op e n Cl i p A rt .Cre a ti v e Co m m o n s .
Pr o c e d e n c i a : h tt p :/ /www. fl i c k r.c o m /p h o to s / re t ro ro c k e r /3 5 4 7 1 3 5 1 4 9 /
Au to r a : a l c a l i n e / a l c a l i n e .
A u to r a : An o n y m o u s .
L i c e n c i a : Op e n Cl i p A rt .Cre a t i v e Co m m o n s .
L i c e n c i a : Op e n Cl i p A rt .Cre a ti v e Co m m o n s .
Au to r a : Na th a n E a d y / l i f ta rn .
A u to r a : rg t a y l o r_ c s c .
L i c e n c i a : Op e n Cl i p A rt .Cre a t i v e Co m m o n s .
L i c e n c i a : Op e n Cl i p A rt .Cre a ti v e Co m m o n s .
Pr o c e d e n c i a : h tt p :/ /www. o p e n c l i p a r t.o rg /d e t a i l /2 8 6 3 / h a n d s h a k e -b y -l i f ta rn
Au to r a : F r a n c i s c o M o c h i s .
A u to r a : j h n ri 4 .
L i c e n c i a : Do m i n i o P b l i c o .
L i c e n c i a : Op e n Cl i p A rt .Cre a ti v e Co m m o n s .
Au to r a : Ar tF a v o r.
A u to r a : b u g m e n o t .
L i c e n c i a : Op e n Cl i p A rt .Cre a t i v e Co m m o n s .
L i c e n c i a : Op e n Cl i p A rt .Cre a ti v e Co m m o n s .
Au to r a : An o n y m o u s .
A u to r a : u s e r 9 .
L i c e n c i a : Op e n Cl i p A rt .Cre a t i v e Co m m o n s .
L i c e n c i a : Op e n Cl i p A rt .Cre a ti v e Co m m o n s .
Pr o c e d e n c i a : h tt p :/ /www. o p e n c l i p a r t.o rg /d e t a i l /1 0 5 7 2 7 / s t o p -s i g n - a n g l e d -0 1 - b y -a n o n y m o u s
Au to r a : An o n y m o u s .
A u to r a : p g b r a n d o l i n .
L i c e n c i a : Op e n Cl i p A rt .Cre a t i v e Co m m o n s .
L i c e n c i a : Op e n Cl i p A rt .Cre a ti v e Co m m o n s .
Au to r a : wa rs z a wi a n k a .
A u to r a : An o n y m o u s .
L i c e n c i a : Op e n Cl i p A rt .Cre a t i v e Co m m o n s .
L i c e n c i a : Op e n Cl i p A rt .Cre a ti v e Co m m o n s .
Au to r a : An o n y m o u s .
A u to r a : rg 1 0 2 4 .
L i c e n c i a : Op e n Cl i p A rt .Cre a t i v e Co m m o n s .
L i c e n c i a : Op e n Cl i p A rt .Cre a ti v e Co m m o n s .
Pr o c e d e n c i a : h tt p :/ /www. o p e n c l i p a r t.o rg /d e t a i l /1 0 8 3 7 3 / s p e l l c h e c k -b y - a n o n y m o u s
30/06/2013 14:47
BD02_Contenidos
61 de 61
http://catedu.es/fpmoodle/file.php/103/BD02/BD02_Web/index.html
A u to r a : L e a n d ro S c i o l a .
Au to ra : wa rs z a wi a n k a .
L i c e n c i a : Op e n Cl i p Art . Cre a ti v e Co m m o n s .
L i c e n c i a : Op e n Cl i p A rt .Cre a t i v e Co m m o n s .
P ro c e d e n c i a : h tt p : //www. o p e n c l i p a r t.o rg /d e t a i l /1 2 7 1 8 3 /p e s s o a s -- p e o p l e -b y -l e a n d ro s c i o l a @ g m a i l .c o m
A u to r a : A n t o i n e .
Au to ra : Or a c l e Co rp o r a t i o n .
L i c e n c i a : Op e n Cl i p Art . Cre a ti v e Co m m o n s .
L i c e n c i a : Co p y ri g h t (Ci t a ) .
Pr o c e d e n c i a : Ca p tu ra d e p a n ta l l a d e Or a c l e , p r o p i e d a d d e Ora c l e Co r p o ra ti o n .
A u to r a : Ora c l e Co r p o ra ti o n .
Au to ra : Or a c l e Co rp o r a t i o n .
L i c e n c i a : Co p y ri g h t (Ci ta ).
L i c e n c i a : Co p y ri g h t (Ci t a ) .
P ro c e d e n c i a : Ca p tu ra d e p a n t a l l a d e Ora c l e , p ro p i e d a d d e Ora c l e Co rp o r a t i o n .
Pr o c e d e n c i a : Ca p tu ra d e p a n ta l l a d e Or a c l e , p r o p i e d a d d e Ora c l e Co r p o ra ti o n .
A u to r a : Ora c l e Co r p o ra ti o n .
Au to ra : Or a c l e Co rp o r a t i o n .
L i c e n c i a : Co p y ri g h t (Ci ta ).
L i c e n c i a : Co p y ri g h t (Ci t a ) .
P ro c e d e n c i a : Ca p tu ra d e p a n t a l l a d e Ora c l e , p ro p i e d a d d e Ora c l e Co rp o r a t i o n .
Pr o c e d e n c i a : Ca p tu ra d e p a n ta l l a d e Or a c l e , p r o p i e d a d d e Ora c l e Co r p o ra ti o n .
A u to r a : Ora c l e Co r p o ra ti o n .
Au to ra : Or a c l e Co rp o r a t i o n .
L i c e n c i a : Co p y ri g h t (Ci ta ).
L i c e n c i a : Co p y ri g h t (Ci t a ) .
P ro c e d e n c i a : Ca p tu ra d e p a n t a l l a d e Ora c l e , p ro p i e d a d d e Ora c l e Co rp o r a t i o n .
Pr o c e d e n c i a : Ca p tu ra d e p a n ta l l a d e Or a c l e , p r o p i e d a d d e Ora c l e Co r p o ra ti o n .
A u to r a : Ora c l e Co r p o ra ti o n .
Au to ra : Or a c l e Co rp o r a t i o n .
L i c e n c i a : Co p y ri g h t (Ci ta ).
L i c e n c i a : Co p y ri g h t (Ci t a ) .
P ro c e d e n c i a : Ca p tu ra d e p a n t a l l a d e Ora c l e , p ro p i e d a d d e Ora c l e Co rp o r a t i o n .
Pr o c e d e n c i a : Ca p tu ra d e p a n ta l l a d e Or a c l e , p r o p i e d a d d e Ora c l e Co r p o ra ti o n .
A u to r a : Ora c l e Co r p o ra ti o n .
Au to ra : Or a c l e Co rp o r a t i o n .
L i c e n c i a : Co p y ri g h t (Ci ta ).
L i c e n c i a : Co p y ri g h t (Ci t a ) .
P ro c e d e n c i a : Ca p tu ra d e p a n t a l l a d e Ora c l e , p ro p i e d a d d e Ora c l e Co rp o r a t i o n .
Pr o c e d e n c i a : Ca p tu ra d e p a n ta l l a d e Or a c l e , p r o p i e d a d d e Ora c l e Co r p o ra ti o n .
30/06/2013 14:47