01 Lenguajes de Definicion de Datos (1)

29
LENGUAJES DE BASES DE DATOS Subtítulo

Transcript of 01 Lenguajes de Definicion de Datos (1)

Page 1: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 1/32

LENGUAJES DEBASES DE DATOS

Subtítulo

Page 2: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 2/32

Introducción

§ Un Sistema Gestor de Bases de Datos !or sus si"las en in"

DB#S$ !ermite almacenar % !osteriormente acceder a losde &orma r'!ida % estructurada

§ Los sistemas de bases de datos se dise(an !ara "estionar cantidades de in&ormación) La "estión de los datos im!licla de*nición de estructuras !ara almacenar la in&ormaciónla !ro+isión de mecanismos !ara la mani!ulación de la

in&ormación)§ Adem's, los sistemas de bases de datos deben !ro!orciona

*abilidad de la in&ormación almacenada, a !esar de las casistema o los intentos de acceso sin autori-ación) Si los daa ser com!artidos entre di+ersos usuarios, el sistema deb!osibles resultados anómalos)

Page 3: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 3/32

.unciones de un DB#S

§ Las &unciones /ue deben cum!lir los DB#S son0

§ Abstracción de los datos. Los DB#S a1orran a los usuardetalles acerca del almacenamiento &ísico de los datos) Dmismo si una base de datos ocu!a uno o cientos de arc1i1ec1o se 1ace trans!arente al usuario) Así, se de*nen +ani+eles de abstracción)

§ Independencia) 2onsiste en la ca!acidad de modi*car el

&ísico o ló"ico$ de una base de datos sin tener /ue reali-acambios en las a!licaciones /ue se sir+en de ella)

§ Consistencia) En a/uellos casos en los /ue no se 1a lo"raeliminar la redundancia, ser' necesario +i"ilar /ue a/uell/ue a!arecen re!etidos se actualice de &orma co1erente, /ue todos los datos re!etidos se actualicen de &orma simu

Page 4: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 4/32

.unciones de un DB#S

§ Seguridad) Los datos almacenados en una base de datos !uede

tener un "ran +alor) Los DB#S deben "aranti-ar /ue estos datoencuentren se"uros &rente a usuarios malintencionados, /ue inleer datos !ri+ile"iados3 &rente a ata/ues /ue deseen mani!uladestruir los datos3 o sim!lemente ante las tor!e-as de al"4n usautori-ado !ero des!istado) Normalmente, los DB#S dis!onen com!le5o sistema de !ermisos a usuarios % "ru!os de usuarios!ermiten otor"ar di+ersas cate"orías de !ermisos

§ Integridad) Ado!tar las medidas necesarias !ara "aranti-ar la +los datos almacenados) Es decir, se trata de !rote"er los datos&allos de 1ard6are, datos introducidos !or usuarios descuidadocual/uier otra circunstancia ca!a- de corrom!er los datos almaLos DB#S !ro+een mecanismos !ara "aranti-ar la recu!eracióbase de datos 1asta un estado consistente conocido en &ormaautom'tica)

Page 5: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 5/32

.unciones de un DB#S

§ Respaldo) Los DB#S deben !ro!orcionar una &orma e*

de reali-ar co!ias de res!aldo de los datos almacenadrestaurar a !artir de estas co!ias los datos /ue se 1a%!odido !erder)

§ Control de la concurrencia) En la ma%oría de entornm's 1abitual es /ue sean muc1as las !ersonas /ue aa una base de datos, % es tambi7n &recuente /ue dic1accesos se realicen de &orma simult'nea) Así !ues, undebe controlar este acceso concurrente a la DB, /ue !deri+ar en inconsistencias)

Page 6: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 6/32

.unciones de un DB#S

§ Manejo de Transacciones. Una Transacción es un !ro

/ue se e5ecuta como una sola o!eración) Esto /uiere /ue el estado lue"o de una e5ecución en la /ue se !rouna &alla es el mismo /ue se obtendría si el !ro"rama1ubiera e5ecutado) Los DB#S !ro+een mecanismos !a!ro"ramar las modi*caciones de los datos de una &ormmuc1o m's sim!le /ue si no se dis!usiera de ellos)

§ Tiempo de respuesta) Ló"icamente, es deseable minel tiem!o /ue el DB#S tarda en darnos la in&ormaciónsolicitada % en almacenar los cambios reali-ados)

Page 7: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 7/32

.unciones de un DB#S

Page 8: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 8/32

Len"ua5es de bases de Datos

§ Un sistema de bases de datos !ro!orciona0

§§ Un lenguaje de defnición de datos !ara es!eci*car el es/uem

base de datos , es decir, de*ne % describe los ob5etos de la basesu estructura, relaciones % restricciones)

§ Un lenguaje de manipulación de datos !ara e9!resar las consbase de datos % las modi*caciones)

§En la !r'ctica !uede consistir en un subcon5unto de instrucciones de otro in&orm'tico) Las a!licaciones /ue traba5an sobre la base de datos se !ro

un len"ua5e de !ro"ramación 2, Ja+a, etc)$ insertando en el códi"o &uesentencias del D#L) Al utili-ar un D#L se deben es!eci*car los datos /ua&ectados !or las sentencias del len"ua5e)

Page 9: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 9/32

Lenguaje de Defnición de Datos

Page 10: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 10/32

Lenguaje de defnición de datos

§El len"ua5e de de*nición de datos !ermite0

§ De*nir % crear una nue+a tabla§ Su!rimir una tabla /ue %a no se necesita§ 2ambiar la de*nición de una tabla e9istente§ 2onstruir un índice !ara 1acer m's r'!ido el acce

una tabla§ 2ontrolar el almacenamiento &ísico de los datos !

del SGBD§

§

Page 11: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 11/32

Len"ua5es de bases de Datos

§ :or e5em!lo, la si"uiente instrucción en el len"ua5e S;L de*ne la tabla c

create table cuenta

número-cuenta char<=$,

 saldo integer$

§

§ La e5ecución de la instrucción LDD anterior crea la tabla cuenta) Adem'un con5unto es!ecial de tablas denominado diccionario de datos o dde datos)

§ Un diccionario de datos contiene metadatos, es decir, datos acerca datos) El es/uema de una tabla es un e5em!lo de metadatos) Un sistebase de datos consulta el diccionario de datos antes de leer o modi*cdatos reales)

§ Es!eci*camos el almacenamiento % los m7todos de acceso usados !or ede bases de datos !or un con5unto de instrucciones en un ti!o es!eciadenominado len"ua5e de almacenamiento defnición de datos) Einstrucciones de*nen los detalles de im!lementación de los es/uemasde datos, /ue se ocultan usualmente a los usuarios)

Page 12: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 12/32

Len"ua5es de bases de Datos

§ Los +alores de datos almacenados en la base de datos satis&acer ciertas restricciones de consistencia) :oe5em!lo, su!ón"ase /ue el saldo de una cuenta no de!or deba5o de ><===) El LDD !ro!orciona &acilidades !es!eci*car tales restricciones) Los sistemas de bases datos com!rueban estas restricciones cada +e- /ue sactuali-a la base de datos)

Page 13: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 13/32

Lenguaje de defnición de datos

§

§

§ DDL se encar"a de la modi*cación de la estructura de ob5etos de la base de datos) E9isten cuatro o!eracionb'sicas0 2?EATE, ALTE?, D?O: % T?UN2ATE)

§

Page 14: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 14/32

Lenguaje de defnición de datos

§ CR!AT!

§ Este comando crea un ob5eto dentro de la base de datos) :uede ser u+ista, índice, tri""er, &unción, !rocedimiento o cual/uier otro ob5etomotor de la base de datos so!orte)

§ @ CR!AT! DATA"AS! @ De*ne una base de datos

§ @ CR!AT! SC#!MA @ De*ne una !orción de la base de datos /ue le !ertusuario en !articular)

§ @ CR!AT! TA"L! @ De*ne una tabla con sus columnas)

§ @ CR!AT! $I!% @ De*ne una tabla ló"ica de uno o m's views

§ Otras declaraciones de CR!AT!0 2A?A2TE? SET, 2OLLATION, T?ANSLATASSE?TION, DO#AIN

Page 15: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 15/32

Lenguaje de defnición de datos

§Creación de una base de datos

§ La orden !ara crear una base de datos nue+a % +acía es0

2?EATE DATABASE nombrebdd

§ :odemos +er las bases de datos en nuestro ser+idor con la orden0

SOC DATABASES

§ Una +e- creada una base de datos, %a !odremos a"re"arle tablas)

Page 16: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 16/32

Page 17: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 17/32

Lenguaje de defnición de datos

§E5em!lo§ 2?EATE TABLE nombretabla

§ atributo<ti!oDeDato<,

§ atributoti!oDeDato,

§ atributoti!oDeDato,

§ etc)$

Page 18: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 18/32

Lenguaje de defnición de datos

§De*niciones de columnas§ NOT NULL0 esta columna debe tener un +alor, no !uede estar +acía)

§ DE.AULT +alue0 si no se indica nin"4n otro +alor, value se almacena en lacuando se crea la *la)

§ AUTOIN2?E#ENT0 con&orme se crean *las, el +alor de esta columna seincrementar' a !artir de la 4ltima *la /ue se a"re"ó)

§ UNSIGNED0 los +alores de esta columna nunca ser'n ne"ati+os)§ UNI;UE0 el +alor de es columna es 4nico !ara todas las *las de la tabla n

re!eticiones$)

Page 19: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 19/32

Page 20: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 20/32

 Ti!os de datos en S;L

 Ti!o K 2A?§ Se utili-a !ara es!eci*car una cantidad de caracteres .

§ Su &ormato es 2A?n$ donde n tiene un m'9imo de Oracle H es de ===$

§ En caso de /ue el +alor sea menor /ue la cantidad de*nida, se reles!acios en blanco) consume memoria$

§ !jemplos0

§ @ 2A?$ K Un string de cinco caracteres)

§ @ 2A? K Es el default % sólo almacenaría un car'cter)

Page 21: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 21/32

Page 22: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 22/32

 Ti!os de datos en S;L

 Ti!o K DATE§ Se utili-a !ara es!eci*car &ec1a % 1ora)

§ Almacena la &ec1a en &ormato ddKmmmK%% 110mm0ss)smmmK%%%% 110mm0ss)ss)

§ Se re/uiere /ue la &ec1a se es!eci*/ue entre comillassencillas)

§  !jemplos0

§ @ =HKmarK=P es +'lido si se "uardo en el atributo con este &ormat

§ @ =HKmarK==P K Tambi7n es +'lido)

Page 23: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 23/32

 Ti!os de datos en S;L

 Ti!o K BOOLEAN

§ Se utili-a !ara es!eci*car +alores cierto o &also)

§ :uede contener T?UE, .ALSE o NULL)

§ &ota0 En OracleKS;L no e9iste el ti!o de dato buleano)embar"o se !uede re!resentar con c1ar<$ o number

Page 24: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 24/32

Lenguaje de defnición de datos

§ DR()

§ Este comando elimina un ob5eto de la base de datos) :una tabla, +ista, índice, tri""er, &unción, !rocedimientcual/uier otro ob5eto /ue el motor de la base de datoso!orte)

§

§ D?O: DATABASE nameBD<3§

§

Page 25: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 25/32

Lenguaje de defnición de datos

§ ALT!R

§ Este comando !ermite modi*car la estructura de un ob!ueden a"re"ar Q /uitar cam!os a una tabla, modi*cade un cam!o, a"re"ar Q /uitar índices a una tabla, moun tri""er, etc)

§ Es decir, si des!u7s de crear la base de datos /ueremocambiar al"o de su de*nición !odríamos eliminarla c

D?O: DATABASE$ % lue"o crearla otra +e- con 2?EATDATABASE$, !ero si %a la 1emos rellenado con tablas ob5etos, esta solución no sería mu% !r'ctica)

§ :ara cambiar la de*nición de la base de datos una +e- tenemos /ue utili-ar la sentencia ALTE? DATABASE)

§

Page 26: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 26/32

Lenguaje de defnición de datos

§ Agregar una columna a una tabla

ALTE? TABLE nametabADD namecolum datat%!e3

§ !liminar una columna de una tabla

ALTE? TABLE nametabD?O: 2OLU#N namecolum3

§ Cambiar el tipo dato de una columna

ALTE? TABLE nametab#ODI.R namecolum datat%!e3

Page 27: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 27/32

Lenguaje de defnición de datos

§ TR*&CAT!

§ Este comando trunca todo el contenido de una tabla) La sobre el comando DELETE, es /ue si se /uiere borrar tocontenido de la tabla, es muc1o m's r'!ido, es!ecialmla tabla es mu% "rande, la des+enta5a es /ue T?UN2ATsir+e cuando se /uiere eliminar absolutamente todos lore"istros, %a /ue no se !ermite la cl'usula CE?E) Si bun !rinci!io, esta sentencia !arecería ser D#L Len"ua

#ani!ulación de Datos$, es en realidad una DDL, %a /uinternamente, el comando truncate borra la tabla % la +crear % no e5ecuta nin"una transacción)

§

§ T?UN2ATE TABLE tablename3

§

Page 28: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 28/32

Lenguaje de defnición de datos

§ C(&STRAI&T

§ Sir+e !ara es!eci*car restricciones o condiciones a losatributos)

§ Nos !ermite es!eci*car los primary keys :$)

§ Tambi7n !ermite es!eci*car los foreign keys)

§ A cada 2ONST?AINT se le identi*ca con un nombre el cdebe ser alusi+o a su &unción o !ro!ósito)

Page 29: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 29/32

Lenguaje de defnición de datos

§ C(&STRAI&T + )RIMAR, -!, 

§ Se !uede declarar en &orma directa al declarar el atribumedio del constraint)

§ EJE#:LOS0

§

Page 30: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 30/32

Lenguaje de defnición de datos

§ C(&STRAI&T + )RIMAR, -!,cont./

§ :ara de*nir un :rimar% e% com!uesto dos atributos ose declara el constraint de la si"uiente &orma0

§ EJE#:LOS0

§

§

Page 31: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 31/32

Lenguaje de defnición de datos

§ C(&STRAI&T + 0(R!I1& -!, 

§ Se !uede declarar en &orma directa al declarar el atribumedio del constraint )

§ EJE#:LOK<0

§

Page 32: 01 Lenguajes de Definicion de Datos (1)

8/16/2019 01 Lenguajes de Definicion de Datos (1)

http://slidepdf.com/reader/full/01-lenguajes-de-definicion-de-datos-1 32/32

Lenguaje de defnición de datos

§ Declaración !or medio del constraint )

§ EJE#:LOK0