You are on page 1of 19

1

I- Ob)e$%.o,

1! "rear una base de datos

#! "rear tablas im$lementando en los cam$os diferentes ti$os de datos

3! Identificar las llaves $rimarias y forneas en una tabla

II- I+$rod'##%*+ Te*r%#!

Modeo re!#%o+!

%ste es el modelo ms utili&ado en la actualidad $ara modelar $roblemas reales y administrar datos
dinmicamente! 'ras ser $ostulados sus fundamentos en 1()* $or %dgar +ran, "odd- de los laboratorios
IM en San .os/ 0"alifornia1- no tard en consolidarse como un nuevo $aradigma en los modelos de base
de datos!

Su idea fundamental es el uso de 2re!#%o+e,2! %stas relaciones $odr3an considerarse en forma lgica como
con4untos de datos llamados 2tu$las2!
%n este modelo- el lugar y la forma en 5ue se almacenen los datos no tienen relevancia 0a diferencia de
otros modelos como el 4err5uico y el de red1! %sto tiene la considerable venta4a de 5ue es ms fcil de
entender y de utili&ar $ara un usuario eventual de la base de datos!

La informacin $uede ser recu$erada o almacenada mediante 2consultas2 5ue ofrecen una am$lia
fle6ibilidad y $oder $ara administrar la informacin!

%l lengua4e ms habitual $ara construir las consultas a bases de datos relacionales es SQL- Structured Query
Language o Lengua4e %structurado de "onsultas- un estndar im$lementado $or los $rinci$ales motores o
sistemas de gestin de bases de datos relacionales!

Durante su diseo- una base de datos relacional $asa $or un $roceso al 5ue se le conoce como
normali&acin de una base de datos!

B!,e, de d!$o, re!#%o+!e,

7na base de datos relacional almacena los datos en varios lugares denominados tablas y adems controla
la manera en 5ue esas tablas se relacionan entre s3! %n ocasiones encontrar las siglas 8DMS- del ingl/s
8elational Database Management System- $ara hacer referencia a una base de datos relacional!


#

9or e4em$lo: una base de datos 5ue sirve $ara llevar un control de las ventas de una em$resa- $odr3a
contener informacin sobre $roductos- categor3as- $edidos y detalle de $edidos- los datos sobre cada uno
de estos temas se almacenar3an en tablas individuales- 5ue tendr3an los siguientes nombres:
9roducts
"ategories
;rders
;rder Details

<dems el 8DMS su$ervisar3a los hechos 5ue relacionan estas tablas entre s3- $or e4em$lo cada categor3a
tendr3a diferentes $roductos y cada $roducto estar3a en diferentes rdenes de $edido



T!b!,

Las tablas son los ob4etos 5ue almacenan los datos- una de las normas bsicas $ara la base de datos es 5ue
cada tabla deber3a almacenar informacin sobre una entidad en concreto esto se conoce como regla de
normali&acin!

=ran $arte del traba4o 5ue se reali&a con una base de datos gira
en torno a las tablas- cada base de datos admite estas cuatro
o$eraciones bsicas:

1! <adir informacin a una tabla
#! <ctuali&ar la informacin 5ue ya e6iste en una tabla
3! %liminar informacin 5ue ya e6iste en una tabla
>! ?er la informacin contenida en una tabla

9or los general estas o$eraciones se reali&an e4ecutando
instrucciones SQL!










3


Re(%,$ro,/ #!m"o, 0 .!ore,

"ada tabla se com$one de registros y cam$os- registro es toda la informacin sobre una de las entidades
dentro de una tabla- cam$o es un dato en concreto almacenado en una tabla!


%n la tabla anterior se $uede identificar como:

C!m"o "ategoryID
Re(%,$ro 1- evarages- Soft drin,s- coffees- teas etc!

%n funcin de lo 5ue se desea hacer- a veces conviene mani$ular los registros y otras veces los cam$os- $or
e4em$lo- si 5uisiera saber lo 5ue hay almacenado en la base datos sobre una categor3a en concreto-
recu$erar3a el registro de esa categor3a de la tabla corres$ondiente- en cambio- si deseara saber los
nombres de todas las categor3as- tendr3a 5ue revisar el contenido del cam$o "ategory@ame en todos los
registros de la misma tabla!

@ormalmente en una base de datos a los registros se le conoce como fila y a los cam$os como columnas!

Pro"%ed!de, de #!m"o

7na base de datos com$leta como SQL Server le $ermite crear las diferencias entre cada cam$o
es$ecificando $ro$iedades de cam$o:




%sta vista muestra la informacin del es5uema de la tabla "ategories en lugar de los datos- el es5uema de
una base de datos es una manera de hacer referencia a toda la informacin de diseo 5ue determina lo 5ue
se $uede almacenar en esa base de datos!

Se muestran las tres $ro$iedades ms im$ortantes de cada cam$o de la tabla:
%l nombre de la columna 0"olumn @ame1
%l ti$o de datos 0Data 'y$e1

>

Si se $ermiten los valores nulos 0<lloA @ulls1

9or medio del +ombre de ! #o'm+! de un cam$o 0o columna1 se $uede hacer referencia a ese cam$o en
la tabla- $or lo general se asignaran nombres significativos a los cam$os!

%l $%"o de d!$o de un cam$o determina los datos 5ue se $ueden almacenar en /l- $or e4em$lo:

.!r#1!r2304 Te5$o #o+ '+ $!m!6o m75%mo de 30 #!r!#$ere,
d!$e$%me Informacin de fecha y hora
%+$ @Bmeros enteros

La $ro$iedad de longitud de un cam$o es$ecifica la cantidad m6ima de datos 5ue se $uede almacenar en
/l!

La $ro$iedad "erm%$%r .!ore, +'o, muestra si se $ermiten valores nulos en ese cam$o- si un cam$o no
$ermite valores nulos- debe ingresarse un valor no nulo $ara ese cam$o en cada registro antes de $oder
guardar el registro!

%m$leando las $ro$iedades de cam$o $ara distinguir un cam$o de otro- contribuir a mantener el orden y
la organi&acin de la base de datos- sirve $ara establecer reglas 5ue la base de datos im$one
automticamente $ara 5ue los datos 5ue se almacenen sigan cierta lgica!

C!.e, 0 re,$r%##%o+e,



%n la imagen anterior se observar 5ue al lado i&5uierdo del cam$o "ategoryID $osee un s3mbolo de llave-
esta indica 5ue esa columna es la clave $rinci$al de la tabla!
7na #!.e "r%+#%"! es una informacin de identificacin e6clusiva 5ue le $ermite buscar un registro
determinado dentro de una tabla- en la misma tabla no $uede haber dos registros con el mismo valor en el
cam$o de la clave $rinci$al- la clave $rinci$al $odr3a estar com$uesta $or un solo cam$o o $or varios

PRIMAR8 9E8

<l crear una tabla $uede crear una sola restriccin 98IM<8C D%C como $arte de la definicin de tabla! Si la
tabla ya e6iste- $uede agregar una restriccin 98IM<8C D%C- siem$re 5ue no e6ista ya otra restriccin
98IM<8C D%C! 7na tabla $uede contener una sola restriccin 98IM<8C D%C!

"uando se agrega una restriccin 98IM<8C D%C a una o varias columnas de la tabla- el Motor de base de
datos e6amina los datos y metadatos de columnas e6istentes $ara garanti&ar 5ue se cum$len las siguientes
reglas en las claves $rinci$ales:
L!, #o'm+!, +o !dm%$e+ .!ore, NULL-
Las columnas de restricciones 98IM<8C D%C 5ue se es$ecifi5uen al crear la tabla se convierten
im$l3citamente a @;' @7LL! 7na columna dis$ersa no se $uede utili&ar como $arte de una clave
$rinci$al $or5ue las columnas dis$ersas deben $ermitir valores @7LL!

E


No "'ede 1!ber .!ore, d'"%#!do,-
Si se agrega una restriccin 98IM<8C D%C a una columna 5ue tiene valores du$licados o $ermite
valores @7LL- el Motor de base de datos devuelve un error y no agrega la restriccin!


C!.e, e5$er+!, o :or7+e!,

7na clave e6terna es un cam$o 0o cam$os1 5ue seala la clave $rinci$al de otra tabla! %l $ro$sito de la
clave e6terna es !,e('r!r ! %+$e(r%d!d re:ere+#%! de o, d!$o,! %n otras $alabras- slo se $ermiten los
valores 5ue se es$eran 5ue a$are&can en la base de datos!

La integridad referencial asegura 5ue se mantengan las referencias entre las claves $rinci$ales y las
e6ternas! 9or e4em$lo:



Se controla 5ue si se agrega un cdigo de categor3a 0"ategoryID1 en la tabla 29roducts2- tal cdigo e6ista
$reviamente en la tabla 2"ategories2!

No$!& Lo, #!m"o, C!$e(or0ID de !, $!b!, C!$e(or%e, 0 Prod'#$o, debe+ $e+er !, m%,m!, "ro"%ed!de,
de #!m"o

FOREIGN 9E8

"uando se crea una tabla- se $uede crear una restriccin +;8%I=@ D%C como $arte de la definicin de esa
tabla! Si ya e6iste una tabla- $uede agregar una restriccin +;8%I=@ D%C- siem$re 5ue dicha restriccin est/
vinculada a una restriccin 98IM<8C D%C- una tabla $uede contener varias restricciones +;8%I=@ D%C!

%limine una restriccin +;8%I=@ D%C $ara 5uitar el re5uisito de integridad referencial entre las columnas de
clave e6terna y las columnas de la clave $rinci$al!

III- Re;'er%m%e+$o,

F M5uina con SQL Server #*1#
F =u3a @Bmero > de base de datos






G

IV- Pro#ed%m%e+$o

P!r$e 1& I+%#%!+do ,e,%*+ de,de S<L Ser.er M!+!(me+$ S$'d%o

1! Hacer clic en el botn I+%#%o
#! Hacer clic en la o$cin Todo, o, "ro(r!m!, y hacer clic en M%#ro,o:$ S<L Ser.er 2012

9ara conectarse con el servidor de base de datos eli4a los siguientes $armetros de autenticacin:
T%"o de ,er.%dor& Database %ngine
Nombre de ,er.%dor& S*#I9"N'mM!;'%+!
@ota: @umMa5uina es el nBmero de la ma5uina local
A'$e+$%#!#%*+: SQL Server <uthentication
Lo(%+& sa
P!,,=ord& 1#3>EG

P!r$e 2- D%,e6o de '+! b!,e de d!$o, re!#%o+!

9ara esta $arte de la gu3a se tomar el siguiente modelo %I8:



Inter$retacin del modelo %I8:

7n <utor $uede escribir muchos libros y un libro $uede ser escrito $or muchos autores
7na %ditorial $uede editar muchos libros $ero un libro solo $uede ser editado $or una editorial
es$ecifica

E)er#%#%o 1- Cre!r ! b!,e de d!$o,

1! "rear la base de datos Ge,$%o+>L%bro,>S'C!r+e$

#! Debe tener las siguientes $ro$iedades:

a! 'amao inicial 0Initial si&e1: >M
b! <uto incremento 0<utogroAth1: #M

)

c! 9ro$ietario 0;Aner1: sa

E)er#%#%o 2- Cre!r !, $!b!, de ! b!,e de d!$o,

%l diagrama %I8 nos muestra tres entidades:

E+$%d!de, A$r%b'$o,
A'$or "odigo<utor
@ombre 09rimer@ombre y 9rimer <$ellido1
+echa@acimiento
@acionalidad
L%bro "odigoLibro
'itulo
IS@
<o%dicion
Ed%$or%! "odigo%ditorial
@ombre
9a3s

La relacin 5ue e6iste entre la entidad %ditorial y Libro es de uno a muchos
La relacin 5ue e6iste entre <utor y Libro es de muchos a muchos- este ti$o de relaciones no son
recomendables y debemos tratar de evitarlas utili&ando TABLAS INTERMEDIAS en las 5ue se utili&ar3an
relaciones de uno a muchos!

9or la tanto las tablas a crear en este e4ercicio son:

T!b!, C!m"o,
A'$or "odigo<utor 0Llave $rimaria1
@ombre 09rimer@ombre y 9rimer <$ellido1
+echa@acimiento
@acionalidad
L%bro "odigoLibro 0Llave $rimaria1
'itulo
IS@
<o%dicion
"odigo%ditorial 0Llave fornea1
Ed%$or%! "odigo%ditorial 0Llave $rimaria1
@ombre
9a3s
De$!e>A'$orL%bro "odigo<utor 0Llave fornea1
"odigoLibro 0Llave fornea1
+echa

No$!&
< la tabla Libro se agreg el cam$o "odigo%ditorial $or la relacin 5ue e6iste entre esta tabla y la
tabla %ditorial- $or la tanto la llave fornea de la tabla Libro es la llave $rimaria de la tabla %ditorial

Se cre la tabla DetalleJ<utorLibro ya 5ue esta tabla intermedia rom$e la relacin de muchos a
muchos 5ue e6iste entre <utor y Libro- se le agregaron los cam$os "odigo<utor y "odigoLibro $ara
crear la relacin de uno a muchos- de igual forma estos cam$os son las llaves forneas de esta tabla
ya 5ue son las llaves $rimarias de las tablas <utor y Libro res$ectivamente!

K


1! <ntes de hacer este e4ercicio realice los siguientes $asos:
a! Hacer clic en la o$cin Too,
b! Hacer clic en O"$%o+,?
c! %n la ventana ;$tions- hacer clic en De,%(+er, y 5uitar el che5ue a la o$cin Pre.e+$ ,!.%+(
#1!+(e, $1!$ re;'%re $!be re-#re!$%o+


#! Quitando este che5ue $odr modificar el diseo de las tablas sin ningBn $roblema

3! Haga clic en el botn ;D

>! %n el %6$lorador de ob4etos- haga clic derecho en el nodo 'ablas 0'ables1 de la base de datos 5ue ya
creo en la $rctica y- a continuacin- haga clic en @ueva tabla 0@eA 'ableL1



E! %scriba los nombres de columna- eli4a los ti$os de datos y decida en cada columna si va a $ermitir
valores @7LL!
"rear la siguiente tabla:


(



G! %n el menB <rchivo 0+ile1- seleccione =uardar 0Save 'ableJ11

)! %n el cuadro de dilogo %legir nombre- en nuestro e4ercicio la tabla es la de <utor y haga clic en
<ce$tar 0;D1!

K! 9ara terminar el e4ercicio cree las dems tablas:

T!b!& L%bro


T!b!& Ed%$or%!



T!b!& De$!e>A'$orL%bro



(! <l final tendr cuatro tablas creadas en la base de datos Ge,$%o+>L%bro,>S'C!r+e$&


1*




E)er#%#%o 3- E,$!be#er #!.e, "r%m!r%!, 2PRIMAR8 9E84 0 #!.e, e5$er+!, o :or7+e!, 2FOREIGN 9E84

<hora se crear las relaciones entre las tablas tomando siem$re el modelo %I8

E,$!be#%e+do !, #!.e, "r%+#%"!e, o "r%m!r%!,&

1! "ierre todas las tablas 5ue tiene abierta

#! Hacer clic derecho sobre la tabla <utor y seleccione la o$cin Diseo 0Design1 y se abrir de nuevo
el diseo de la tabla

3! Hacer clic derecho sobre el cam$o "odigo<utor y seleccione %stablecer clave $rinci$al 0Set 9rimay
Dey1


>! <l final observar un s3mbolo como de llave a la $ar del cam$o: "odigo<utor



E! =uarde los cambios en la tabla <utor y cerrar la tabla

G! %6$anda la car$eta dbo!<utor y luego la car$eta "olumns- observar los cam$os de la tabla y la
asignacin de la clave $rinci$al en el cam$o "odigo<utor


11



)! <signe la clave $rinci$al a las siguientes tablas:

T!b! C!m"o
L%bro "odigoLibro
Ed%$or%! "odigo%ditorial

E,$!be#%e+do !, #!.e, e5$er+!, o :or7+e!,

Siem$re tomando en cuenta el modelo %I8- se observa 5ue e6iste una relacin de Muchos a Muchos entre
las entidades <utor y Libro- $ero como ya se defini la tabla intermedia DetalleJ<utorLibro ahora la
relacin 5ueda de la siguiente manera:




C se lee de la siguiente manera:

7n autor $uede escribir muchos libros y un libro $uede ser escrito $or muchos autores- $or lo tanto en la
tabla DetalleJ<utorLibro se almacena $or se$arado el cdigo del libro las veces 5ue se 5uiera como
tambi/n el cdigo del autor las veces 5ue sea necesario!

1! Haga clic derecho en la tabla 5ue va a estar en el lado de la clave e6terna de la relacin en este caso
la tabla De$!e>A'$orL%bro y- a continuacin- haga clic en Diseo 0Design1

#! La tabla se abre en el Diseador de tablas 0'able Designer1!

3! %n el menB Diseador de tablas- haga clic en 8elaciones 08elationshi$s1!





A'$or De$!e>A'$orL%bro L%bro
1 @
@ 1

1#


>! %n el cuadro de dilogo
8elaciones de clave e6terna
0+oreign Dey 8elationshi$1-
haga clic en <gregar 0<dd1












E! La relacin a$arece en la lista 8elacin seleccionada con un nombre $ro$orcionado $or el sistema
con el formato +DJMtablenameNJMtablenameN- donde tablename es el nombre de la tabla de clave
e6terna!



G! Haga clic en el s3mbolo @ de la o$cin E,"e#%:%#!#%o+e, de $!b!, 0 #o'm+!, 2T!be, !+d Co'm+,
S"e#%:%#!$%o+4 y a continuacin- haga clic en los $untos sus$ensivos 0!!!1 5ue a$arecen a la derecha
de la $ro$iedad!


13




)! %n el cuadro de dilogo 'ablas y
columnas 0'ables and "olumns1-
en la lista des$legable C!.e
"r%+#%"! 2Pr%m!r0 Ae0 $!be4-
eli4a la tabla 5ue estar en el
lado de la clave $rinci$al de la
relacin en este caso la 'abla
A'$or!

K! %n la cuadr3cula situada deba4o-
eli4a la columna 5ue contribuyen
a la clave $rinci$al de la tabla en
este caso Cod%(oA'$or

(! %n la celda de la cuadr3cula
adyacente situada a la i&5uierda
de cada columna- eli4a la
columna de C!.e e5$er+!
2Fore%(+ Ae0 $!be4 en el
e4ercicio debe seleccionar el cam$o Cod%(oA'$or corres$ondiente de la tabla de clave e6terna
De$!e>A'$orL%bro


1*! Haga clic en <ce$tar 0;,1 $ara crear la relacin!

11! <hora hacer clic en <gregar 0<dd1- $ara crear la relacin entre las tablas L%bro 0 De$!e>A'$orL%bro


1>



1#! <l final 5uedar de la siguiente manera:



13! Hacer clic en la o$cin "errar 0"lose1

1>! "ierre el diseador de tablas

1E! Le $edir 5ue guarde los cambios- haga clic en Si 0Ces1- y en la siguiente ventana haga clic en Si
0Ces1 $ara guardar los cambios en las tablas afectadas en la relacin!

1G! <hora des$liegue las car$etas Co'm+, 0 9e0, de la tabla De$!e>A'$orL%bro y observar la
creacin de las relaciones:



1)! "rear la relacin entre las $!b!, Ed%$or%! 0 L%bro,


1E

1K! <hora la tabla 5ue llevar la clave fornea es la tabla Libros- ya 5ue una editorial edita muchos
libros $ero un libro solo $uede ser editado $or una editorial 0siguiendo nuestro modelo %I81

1(! Quedar de la siguiente manera la nueva relacin


#*! =uarde los cambios y observe la creacin de la relacin en la tabla Libros

E)er#%#%o 4- Cre!+do e d%!(r!m! de b!,e de d!$o,

1! "ierre todas las tablas

#! Haga clic derecho sobre la o$cin Diagrama de ase de datos 0Database Diagrams1

3! Seleccione la o$cin N'e.o D%!(r!m! de B!,e de d!$o, 2Ne= D!$!b!,e D%!(r!m4


>! %n la ventana emergente haga clic en Si 0Ces1


1G



E! Se habilita la venta <gregar tabla 0<dd 'able1


G! Seleccione cada tabla y haga clic en <gregar 0<dd1- realice este $aso hasta 5ue termine de agregar
todas las tablas

)! Haga clic en "errar 0"lose1

K! C observara 5ue se ha creado el siguiente diseo de base de datos


(! Hasta a5u3 ya $aso su modelo %I8 a una base de datos 8elacional

E)er#%#%o B- A(re(!+do d!$o, ! !, $!b!,

1! Haga clic derecho sobre la $!b! A'$or

#! Seleccione la o$cin Ed%$ $o" 200 ro=,


1)

3! Se abrir una ho4a con filas y columnas en donde la columna son los cam$os y las filas los registros


>! %n donde $odr digitar $or columna los siguientes registros:



E! "ierre la edicin de datos de la tabla <utor

G! <gregar los siguientes registros:

T!b! Ed%$or%!:

Cod%(oEd%$or%! Nombre P!%,
ED001 ;mega #*** "olombia
ED002 <naya Multimedia %s$aa
ED003 Mc=raAHill Inglaterra


T!b! L%bro,&

Cod%(oL%bro T%$'o ISBN A6oEd%#%o+ Cod%(oEd%$or%!
BDCOL00001 +undamentos de
base de datos
1#333IK((((KK #**> %D**1
BDESP00002 La iblia de SQL
Server #**K
3>>>I((KKKIKK #**K %D**#
PRCOL00002 9rogramacin
orientada a
ob4etos
K(((I((((>>> #*11 %D**1
DCING00003 Diseo Oeb y
Ho4as de estilo
3***(GI((((( #*1* %D**3


T!b! De$!e>A'$orL%bro

Cod%(oA'$or Cod%(oL%bro Fe#1!
9L**1 D";L****1 1#P*GP#**#
@H**> D";L****1 1#P*GP#**#
"M**# 98";L****# 1(P1#P#**(
9M**3 D%S9****# *1P*3P#***
9M**3 DOI@=****3 #3P*3P#**(

1K


)! De esta forma ha agregado datos a las tablas en donde $or medio de las relaciones 5ue se han
creado no $uede agregar un dato en el cam$o 5ue $osee una llave fornea si este valor no e6iste
en el cam$o 5ue tiene la llave $rimaria

K! 8eali&ar $ruebas y analice los mensa4es de error

(! "ierre todas las tablas


V- E)er#%#%o #om"eme+$!r%o

"rear la siguiente base de datos en SQL Server:



@ombre de la base de datos: Ge,$%o+>Pe%#'!,

"rear:

1! La base de datos
#! Las tablas con sus corres$ondientes cam$os y $ro$iedades
3! Las relaciones entre las tablas
>! "rear el diagrama de la base de datos
E! <gregar $or los menos tres registros $or cada tabla

%l docente revisar su traba4o en la $rctica!





1(

VI- A+7%,%, de re,'$!do,

'area en $are4as
+echa de entrega: SegBn cada docente

Investigar:
1! Sobre las instrucciones SQL- las cuales se clasifican segBn su $ro$sito en tres gru$os:
a! %l DDL 0Data Descri$tion Language1 Lengua4e de Descri$cin de Datos!
b! %l D"L 0Data "ontrol Language1 Lengua4e de "ontrol de Datos!
c! %l DML 0Data Mani$ulation Language1 Lengua4e de Mani$ulacin de Datos!
#! +ormato de los identificadores
3! 'i$os de datos 5ue se utili&an en SQL Server #*1#

'omando el siguiente Modelo %I8



C $or medio del lengua4e SQL investigue:

1! Sinta6is $ara crear la base de datos
#! Sinta6is $ara crear las tablas
3! Sinta6is $ara crear llave $rimaria y llave forneas entre tablas- im$lem/ntelo en las tablas del $unto
anterior


VI- F'e+$e de #o+,'$!

1! La iblia de SQL Server #**E
Madrid- %s$aa: <naya- #**G
<utor: Mi,e =undelerloy y .ose$h L! .orden
iblioteca 7D Q "lasificacin: **E!3G1 =()E #**G

#! Microsoft SQL Server #**K: =u3a del <dministrador
Madrid- %s$aa: <@<C<- #**(
<utor: Oilliam Stane,
iblioteca 7D Q "lasificacin: **E!3G1 S)K> #**(

You might also like