Download Material Completo

Document related concepts

Normalización de bases de datos wikipedia , lookup

Clave primaria wikipedia , lookup

Modelo de base de datos wikipedia , lookup

Base de datos relacional wikipedia , lookup

SQL wikipedia , lookup

Transcript
MDD2501
Modelamiento de Datos y Bases de Datos
Semanas:
•Case Method Oracle
•Identificar atributos
•Análisis para el desarrollo
del Modelo Conceptual
•Ejemplo de MER
•Link’s de Interés
•Mapeo a Modelo Relacional
•Ejercicio de Mapeo de Datos
•Ejercicio Normalización
•Ejercicios de consultas a un
esquema
•DDL – Ejemplo con un
modelo relacional
•Ejemplos de manipulación
de datos en un esquema de
datos
•Vistas
•Selección de datos
•Diccionario de Datos
Semana Nº1:
Case Method Oracle
•Identificar atributos
•Análisis para el desarrollo
del Modelo Conceptual
•Ejemplo de MER
•Link’s de Interés
•Mapeo a Modelo Relacional
•Ejercicio de Mapeo de Datos
•Ejercicio Normalización
•Ejercicios de consultas a un
esquema
•DDL – Ejemplo con un
modelo relacional
•Ejemplos de manipulación
de datos en un esquema de
datos
•Vistas
•Selección de datos
•Diccionario de Datos
•
Aprendizajes esperados:
• Alumno reconoce etapas del
desarrollo de software,
utilizando la metodología propuesta por Oracle
•
Contenidos:
• Introducción al Case Method Oracle
Fases del Desarrollo – Method Case
Oracle
La herramienta CASE es una
metodología para el diseño de
sistemas, cuya función principal es el
el apoyo mediante automatización del
trabajo manual y/o repetitivo
Fases del Desarrollo – Method Case
Oracle
Desde el punto de vista de herramientas, las fases del desarrollo su pueden
observar mediante la propia pantalla inicial de la herramienta Designer de
Oracle
Resumen Etapas y productos
1. Estrategia:
Diagrama de procesos.
2. Análisis:
Modelo Entidad Relación
Modelo DFD
Diagrama Funcional
3. Diseño
Diseño Físico de Tablas
Diseño de módulos y programas y layout de pantallas y reportes
Diseño de procedimientos almacenados
4. Construcción
Script de tablas y restricciones
Pantallas y Reportes
Procedimientos almacenados
5. Documentación
Informes de Análisis, Diseño y Construcción
CDM
•El Case Method de Oracle ha pasado por varias
transformaciones.
• Actualmente se conoce como CDM (Custom
Development Methodology) y su adaptación para Java
es JCDM
CDM
• Es un método intensivo en documentación con
estándares pre-definidos.
• La cantidad de documentación será variable
dependiendo del tamaño y complejidad de la aplicación
que se desarrolla
• La documentación es mucha y requiere validaciones
permanentes por parte de los clientes, con el fin de
garantizar que los requisitos se están cumpliendo
adecuadamente hasta llegar a la aplicación final.
Semana Nº2:
•Case Method Oracle
Identificar atributos
•Análisis para el desarrollo
del Modelo Conceptual
•Ejemplo de MER
•Link’s de Interés
•Mapeo a Modelo Relacional
•Ejercicio de Mapeo de Datos
•Ejercicio Normalización
•Ejercicios de consultas a un
esquema
•DDL – Ejemplo con un
modelo relacional
•Ejemplos de manipulación
de datos en un esquema de
datos
•Vistas
•Selección de datos
•Diccionario de Datos
•
Aprendizajes esperados:
• Alumno revisa
un objeto y rescata de éste los atributos
que pueda visualizar
• Es capaz de identificar atributos y características del
mismo objeto, desde otros puntos de vista
•
Contenidos:
• Identifica los atributos de una entidad
Concepto de atributos de objetos
Los atributos describen un objeto que
ha sido seleccionado para ser incluido
en el modelo de análisis. En esencia,
son los atributos los que definen al
objeto, los que clarifican lo que
representa el objeto en el contexto
del espacio del problema
Identificar atributos
• Según lo que se desea
desarrollar o diagramar, un
objeto, puede ser identificado
por distintos atributos según el
punto de vista aplicado .
• Por ejemplo, un computador
(el de la imagen), puede ser
visto desde los siguientes
puntos de vista:
• Físico (forma, tamaño,
componentes)
• Contable (marca, valor)
Algunos atributos del computador
• Punto de vista físico:
• Capacidad Disco Duro
• Capacidad Memoria RAM
• Procesador
• Color
• Peso
• Tarjeta Video
• Punto de vista contable:
• Número de Serie
• Marca
• Valor Comercial
• Valor Contable
• Años uso
• Centro de Costo
Identificar atributos
del objeto automóvil
• Punto de vista físico
• Color
• Motor
• Cantidad Ruedas
• Capacidad Maletero
• Punto de vista de un comprador
• Estado
• Kilómetros recorridos
• Cantidad dueños anteriores
• Precio Venta
• Punto de vista de un corredor
• Motor (coincide con el pto. de
vista físico)
• Velocidad
• Aceleración
• Torque
• Punto de vista del Registro Civil
• Patente
• Dueño
• Nº Motor
• Nº Chasis
• Año
Identifique los atributos de los objetos
según los puntos de vista planteados
• Punto de vista físico
• Punto de vista contable
• Punto de vista de un comprador
• ¿Qué otros puntos de vista se pueden aplicar?
Edificio
Televisor
Árbol
Semana Nº3:
•Case Method Oracle
•Identificar atributos
Análisis para el desarrollo
del Modelo Conceptual
•Ejemplo de MER
•Link’s de Interés
•Mapeo a Modelo Relacional
•Ejercicio de Mapeo de Datos
•Ejercicio Normalización
•Ejercicios de consultas a un
esquema
•DDL – Ejemplo con un
modelo relacional
•Ejemplos de manipulación
de datos en un esquema de
datos
•Vistas
•Selección de datos
•Diccionario de Datos
•
Aprendizajes esperados:
• Alumno,
dentro de un problema planteado, es capaz de
identificar los elementos para el desarrollo del modelo
Entidad - Relación
• Adquiere herramientas para identificar e interpretar la
realidad para plasmarla en un MER
•
Contenidos:
• Guía de ayuda para el desarrollo de un MER
Esquematización de la realidad
Para crear el esquema de la base de datos,
primero es necesario modelarla.
• Para llegar al modelo, se debe tener la
capacidad de analizar la problemática,
abstraerse y generar el esquema necesario
•
Algunos pasos para el desarrollo
• Aún cuando en el desarrollo de modelos, se debe
analizar cada problemática en particular, existen ciertos
análisis básicos en los cuales se puede apoyar para
desarrollar dichos modelos
• En algunos casos, el análisis sintáctico del problema
puedo apoyarlo en el desarrollo del modelo
Ejemplo del análisis de un problema
• Considere lo siguiente:
“El libro rojo está sobre la mesa redonda”
• Para reconocer entidades debemos identificar los
“objetos” (generalmente sustantivos) que tienen
relevancia o que interfieren en el estudio que se
realiza. Para el presente ejemplo, las entidades serían
“libro” y “mesa”
Ejemplo del análisis de un problema
• Los atributos son características (generalmente
adjetivos) de las entidades identificadas. Se debe
considerar que si fueran adjetivos, estos representan al
dominio del atributo. En el presente ejemplo, “rojo”
(dominio) es una característica de “libro”, es por ello
que el atributo es “color”. Algo similar para la entidad
“mesa” con el dominio “redonda”, para este caso el
atributo es “forma”
Ejemplo del análisis de un problema
• Las relación es la “acción” (generalmente verbo) de
una de las entidades identificadas sobre la otra(*). Así
en el ejemplo, la “acción” existente señala que el libro
está sobre la mesa.
(*) Existen ocasiones en que una relación nace en una entidad y termina en la misma
(relación uni-aria)
MER del ejemplo
forma
color
libro
Está
sobre
mesa
Es evidente que las entidades requieren otros
atributos, pero sólo nos estamos limitando por esta vez
a lo señalado en el ejemplo
Otro ejemplo
Considere lo siguiente:
“El jardín infantil “Los gatitos felices”, ubicado en el centro de la
ciudad, atiende actualmente a 20 niños de distintas edades.
Cada uno ellos es identificado por su nombre….”
edad
nombre
atiende
jardín
capacidad
ubicación
niño
nombre
La verbalización “es identificado” no se considera, ya que no es relevante para el
problema analizado, además que dicha “acción” está contenida en la relación
existente (atiende) entre las entidades identificadas (jardín y niño)
Algunas consideraciones
• Dos entidades pueden coincidir en algunos de los
nombres de sus atributos
• Dos entidades que exactamente tengan los mismos
atributos, se deben re-estudiar, ya que si dicha
situación es real, dichas entidades son lo mismo
• Es recomendable identificar al menos un atributo
para cada entidad que lo distinga de los demás
atributos
• También se deben establecer atributos que tengan
relación con la problemática analizada. Por ejemplo, el
atributo “sabor” de la entidad “memoria ram” no tiene
relevancia para una problemática sobre computadores
Desarrolle el MER para el siguiente
problema
• Las vendedoras, identificadas por su nombre y un
código, ofrecen productos para la dueña de casa.
Dichos productos, para distintos usos (limpieza, belleza)
tienen precio y fecha de vencimiento
Semana Nº4:
•Case Method Oracle
•Identificar atributos
•Análisis para el desarrollo
del Modelo Conceptual
Ejemplo de MER
•Link’s de Interés
•Mapeo a Modelo Relacional
•Ejercicio de Mapeo de Datos
•Ejercicio Normalización
•Ejercicios de consultas a un
esquema
•DDL – Ejemplo con un
modelo relacional
•Ejemplos de manipulación
de datos en un esquema de
datos
•Vistas
•Selección de datos
•Diccionario de Datos
•
Aprendizajes esperados:
Mediante un ejemplo, el alumno pone en práctica lo
aprendido a la fecha respecto a los modelos Entidad
Relación
•
•
Contenidos:
• Ejercicio de desarrollo de un MER
Problemática planteada
• Una cadena de Video-Clubs ha decidido, para mejorar su servicio, emplear
una base de datos para almacenar la información referente a las películas
que ofrece en alquiler. Esta información es la siguiente:
• Una película se caracteriza por su título, nacionalidad, productora y fecha
(p.e., “Quo Vadis” , “Estados Unidos” , “M.G.M.” , 1955) .
• En una película pueden participar varios actores (nombre, nacionalidad,
sexo) algunos de ellos como actores principales.
• Una película está dirigida por un director (nombre, nacionalidad) .
• De cada película se dispone de uno o varios ejemplares diferenciados por
un número de ejemplar y caracterizados por su estado de conservación.
• Un ejemplar se puede encontrar alquilado a algún socio (RUT , nombre,
dirección, teléfono) . Se desea almacenar la fecha de comienzo del alquiler y
la de devolución.
• Un socio tiene que ser avalado por otro socio que responda de él en caso
de tener problemas en el alquiler.
Análisis del problema planteado
• En el problema se pueden distinguir, en
primera instancia, las entidades “película”,
“actor”, “director”, “ejemplar”, “socio”
Algunas consideraciones
• En ocasiones, las problemáticas no cubren todos los
aspectos que el desarrollador encuentra. Por ejemplo
en el problema, se señala que un ejemplar de película
puede estar alquilado a un socio. Pero a lo largo del
tiempo, ese ejemplar puede ser alquilado por mas de
un socio.
• Las dudas deben ser planteadas al cliente, pero
como en este caso no es posible, asumiremos algunos
supuestos
Estableciendo las relaciones
• Según el problema, se visualizan las siguientes
relaciones:
• “En una película pueden participar varios
actores”:
• Cardinalidad 1:N entre película y actor
• “Una película está dirigida por un director”:
• Cardinalidad 1:1 entre película y director
• “De cada película se dispone de uno o varios
ejemplares”:
• Cardinalidad 1:N entre película y ejemplar
• “Un ejemplar se puede encontrar alquilado a
algún socio”:
• Cardinalidad 1:N entre película y socio
• “Un socio tiene que ser avalado por otro socio”:
• Cardinalidad 1:N entre socio y socio
Estableciendo las relaciones
• Asumamos también los siguientes supuestos:
• En actor puede participar en varias películas
• Una película sólo es dirigida por un director
• Un socio puede alquilar varios ejemplares
• Un socio es avalado sólo por un socio, pero éste
puede avalar a varios de ellos
Modelo propuesto
Ejercicios
• Para el modelo propuesto aún falta definir:
¿Cuáles son los atributos claves?
¿Cuáles son las cardinalidades?
¿Qué otros supuestos puede aplicar?
Semana Nº6:
•Case Method Oracle
•Identificar atributos
•Análisis para el desarrollo
del Modelo Conceptual
•Ejemplo de MER
Link’s de Interés
•Mapeo a Modelo Relacional
•Ejercicio de Mapeo de Datos
•Ejercicio Normalización
•Ejercicios de consultas a un
esquema
•DDL – Ejemplo con un
modelo relacional
•Ejemplos de manipulación
de datos en un esquema de
datos
•Vistas
•Selección de datos
•Diccionario de Datos
•
Aprendizajes esperados:
• Alumno complementa
su aprendizaje, con una serie de
sitios entregados para su revisión
•
Contenidos:
• Listado de sitios de interés en Internet con material que
permite complementar lo aprendido en clases
Sitios en Internet
• Sobre SGBD:
•http://es.wikipedia.org/wiki/Sistema_de_ge
stión_de_bases_de_datos
•http://www.desarrollodeaplicacionesinform
aticas.com/index.php/Analisis/Tema-14Sistemas-Gestores-de-Bases-de-datos/1introduccion.html
•http://www.monografias.com/trabajos11/b
asda/basda.shtml
Sitios en Internet
•Sobre MER:
•http://es.wikipedia.org/wiki/Modelo_entid
ad-relación
•http://www.tejedoresdelweb.com/wiki/ima
ges/c/c7/Basesdatos_teo3_modelo_er.pdf
•http://www.uazuay.edu.ec/analisis/Modelo
%20Entidad%20Relacion.pdf
Semana Nº8:
•Case Method Oracle
•Identificar atributos
•Análisis para el desarrollo del
Modelo Conceptual
•Ejemplo de MER
•Link’s de Interés
Mapeo a Modelo Relacional
•Ejercicio de Mapeo de Datos
•Ejercicio Normalización
•Ejercicios de consultas a un
esquema
•DDL – Ejemplo con un
modelo relacional
•Ejemplos de manipulación
de datos en un esquema de
datos
•Vistas
•Selección de datos
•Diccionario de Datos
•
Aprendizajes esperados:
Alumno aprende las reglas básicas para transformar
un modelo entidad – relación a un modelo relacional
•
•
Contenidos:
• Ejemplo de mapeo de un modelo entidad – relación a
un modelo relacional
Modelo
• Considere el siguiente modelo:
Nota: De rojo, los atributos claves
Mapeo para las relaciones
• Correspondencia 1:1 : El diseñador de la BD determina que clave
primaria va a repetir en otra entidad, según un estudio lógico y no
podrá tener valores duplicados para dicha entidad
• Correspondencia 1:N : La clave primaria del lado 1 siempre se
repetirá en la entidad correspondiente al lado N, y podrá tomar
valores duplicados para esta entidad.
• Correspondencia M:N : La relación se transforma en entidad y las
claves primarias de las entidades originales pasan como clave
foránea de esta nueva entidad
Mapeo del ejemplo
• Para realizar el mapeo, se analiza uno a uno
cada relación
• Comenzaremos por la relación “R1”
• La relación “R1”, tiene una correspondencia
M:N (muchos a muchos)
• Por lo tanto, la regla que se aplica: “La
relación se transforma en entidad y las claves
primarias de las entidades originales pasan
como clave foránea de esta nueva entidad”
Mapeo del ejemplo
• Notar que no necesariamente los atributos claves que se traspasan pasan
como tales en la entidad destino (depende de la problemática planteada)
• El símbolo de la relación “R1” (rombo) desaparece y se cambia por el
rectángulo
• Hacia la nueva entidad (R1) quedan las cardinalidades “muchos”. A esta
nueva entidad se le conoce como “tabla de rompimiento”
• El atributo de la relación (C1), se conserva en la nueva entidad
Mapeo del ejemplo
• Ahora seguimos con la relación “R2”
• La relación “R2”, tiene una correspondencia
1:N (uno a muchos)
• Por lo tanto, la regla que se aplica: “La clave
primaria del lado 1 siempre se repetirá en la
entidad correspondiente al lado N, y podrá
tomar valores duplicados para esta entidad ”
Mapeo del ejemplo
• Notar que no necesariamente los atributos claves que se
traspasan pasan como tales en la entidad destino (depende de
la problemática planteada)
• El símbolo de la relación (R2) desaparece, quedando la
cardinalidad “muchos” hacia el lado del la entidad destino
Solución Completa
Semana Nº9:
•Case Method Oracle
•Identificar atributos
•Análisis para el desarrollo
del Modelo Conceptual
•Ejemplo de MER
•Link’s de Interés
•Mapeo a Modelo Relacional
Ejercicio de Mapeo de
Datos
•Ejercicio Normalización
•Ejercicios de consultas a un
esquema
•DDL – Ejemplo con un
modelo relacional
•Ejemplos de manipulación
de datos en un esquema de
datos
•Vistas
•Selección de datos
•Diccionario de Datos
•
Aprendizajes esperados:
Alumno aplica conocimientos adquiridos para
transformar un modelo Entidad-Relación a un Modelo
Relacional
•
•
Contenidos:
• Ejercicio de mapeo de MER a MR
Problemática planteada
• Una cadena de Video-Clubs ha decidido, para mejorar su servicio, emplear
una base de datos para almacenar la información referente a las películas
que ofrece en alquiler. Esta información es la siguiente:
• Una película se caracteriza por su título, nacionalidad, productora y fecha
(p.e., “Quo Vadis” , “Estados Unidos” , “M.G.M.” , 1955) .
• En una película pueden participar varios actores (nombre, nacionalidad,
sexo) algunos de ellos como actores principales.
• Una película está dirigida por un director (nombre, nacionalidad) .
• De cada película se dispone de uno o varios ejemplares diferenciados por
un número de ejemplar y caracterizados por su estado de conservación.
• Un ejemplar se puede encontrar alquilado a algún socio (RUT , nombre,
dirección, teléfono) . Se desea almacenar la fecha de comienzo del alquiler y
la de devolución.
• Un socio tiene que ser avalado por otro socio que responda de él en caso
de tener problemas en el alquiler.
Modelo propuesto (Propuesto en
Material de Semana 4)
Ejercicios
• Transformar el modelo entidad-relación a un modelo
relacional
• Recuerde las consideraciones que se tuvieron
presentes cuando desarrolló el modelo EntidadRelación:
• En actor puede participar en varias películas
• Una película sólo es dirigida por un director
• Un socio puede alquilar varios ejemplares
• Un socio es avalado sólo por un socio, pero éste
puede avalar a varios de ellos
Semana Nº11:
•Case Method Oracle
•Identificar atributos
•Análisis para el desarrollo
del Modelo Conceptual
•Ejemplo de MER
•Link’s de Interés
•Mapeo a Modelo Relacional
•Ejercicio de Mapeo de Datos
Ejercicio Normalización
•Ejercicios de consultas a un
esquema
•DDL – Ejemplo con un
modelo relacional
•Ejemplos de manipulación
de datos en un esquema de
datos
•Vistas
•Selección de datos
•Diccionario de Datos
•
Aprendizajes esperados:
Alumno aplica conocimientos adquiridos respecto a la
normalización y desnormalización de un modelo
relacional
•
•
Contenidos:
• Ejercicio de normalización y desnormalización de un
modelo relacional
Modelo
• Considere el siguiente modelo:
Ejercicios planteados
• Aplique las primeras tres formas normales al
modelo planteado
• Recuerde que:
Primera Forma Normal (1FN)
Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son
indivisibles, mínimos.
La tabla contiene una clave primaria.
La clave primaria no contiene atributos nulos.
No debe de existir variación en el número de columnas.
Segunda Forma Normal (2FN)
Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna clave
dependen de forma completa de la clave principal. Es decir que no existen dependencias
parciales.
Tercera Forma Normal (3FN)
La tabla se encuentra en 3FN si es 2FN y si no existe ninguna dependencia funcional transitiva
entre los atributos que no son clave.
Ejercicios planteados
• Terminado el ejercicio anterior, considere que
existen problemas de performance de la base
de datos. Para ello debe desnormalizar el
modelo planteado. ¿Qué alternativas de
desnormalización plantearía?
Semana Nº12:
•Case Method Oracle
•Identificar atributos
•Análisis para el desarrollo
del Modelo Conceptual
•Ejemplo de MER
•Link’s de Interés
•Mapeo a Modelo Relacional
•Ejercicio de Mapeo de Datos
•Ejercicio Normalización
Ejercicios de consultas a un
esquema
•DDL – Ejemplo con un
modelo relacional
•Ejemplos de manipulación
de datos en un esquema de
datos
•Vistas
•Selección de datos
•Diccionario de Datos
•
Aprendizajes esperados:
Alumno consulta a un esquema de datos, según el
modelo relacional entregado
•
•
Contenidos:
• Ejemplos de consultas a un esquema de datos, según
un modelo dado
Modelo
• Considere el siguiente modelo:
Ejercicios planteados
• Cantidad de personas registradas
Para ello debemos contar los registros de la
tabla persona
Select count(rut)
from persona;
• No es necesario utilizar la cláusula “distinct”,
debido a que rut es pk, por lo tanto, se
entiende que los valores entregados serán
distintos
Ejercicios planteados
• Cantidad de autos del año 2005 en adelante
Para ello debemos contar los registros de la
tabla auto
Select count(patente)
from auto
where anio>=2005;
•No es necesario utilizar la cláusula “distinct”, debido a
que patente es pk, por lo tanto, se entiende que los
valores entregados serán distintos
Ejercicios planteados
• Listar a las personas cuyo año de nacimiento
sea posterior a 1970
Para ello seleccionaremos el rut y nombre de
la persona
Select rut, nombre
from persona
where to_char(fecha_nacimiento, ‘yyyy’)>1970;
• Para el predicado, transformamos la fecha de nacimiento en
un formato ‘yyyy’. Si bien to_char transforma a caracter, nos
aprovechamos de la conversión implícita para compararlo con
un dato numérico
Ejercicios planteados
• Listar a las personas con el auto que tenga
asociado
Para ello debemos realizar un “join” entre
las tablas persona y auto
Select a.rut, a.nombre, b.patente
from persona a, auto b
where b.rut=a.rut
• Cuando se realiza “join”, se recomienda dar alias a las tablas (a
y b) para una referencia mas expedita. En el predicado se
establece el “join” (b.rut=a.rut)
Semana Nº13:
•Case Method Oracle
•Identificar atributos
•Análisis para el desarrollo
del Modelo Conceptual
•Ejemplo de MER
•Link’s de Interés
•Mapeo a Modelo Relacional
•Ejercicio de Mapeo de Datos
•Ejercicio Normalización
•Ejercicios de consultas a un
esquema
DDL – Ejemplo con un
modelo relacional
•Ejemplos de manipulación
de datos en un esquema de
datos
•Vistas
•Selección de datos
•Diccionario de Datos
•
Aprendizajes esperados:
Alumno reconoce y utiliza las alternativas para crear
un código SQL que permita generar un esquema de
datos en la base de datos Oracle, según un modelo
relacional dado
•
•
Contenidos:
• Ejemplo de creación de un script para generar un
esquema en una base de datos Oracle, según un modelo
relacional dado
Modelo
• Considere el siguiente modelo:
Modelo diagramado con Oracle SQL Developer Data Modeler 2.0
Alcances para la generación del código
• Se debe tener precaución cuando las tablas
poseen llaves foráneas, ya que éstas hacen
referencia a la llave primaria de otra tabla
• Por ello, primero se debe crear la llave
primaria de la otra tabla y después la llave
foránea
• Debido a lo anterior, existe mas de una
alternativa para generar los códigos necesarios
Código DDL – Alternativa 1
CREATE TABLE auto
( patente VARCHAR2 (6 CHAR) NOT NULL ,
marca VARCHAR2 (50 CHAR) ,
anio NUMBER (4) ,
rut VARCHAR2 (10 CHAR) NOT NULL ,
tipo_auto_id NUMBER (1) NOT NULL,
CONSTRAINT auto_PK PRIMARY KEY ( patente )) ;
CREATE TABLE persona
( rut VARCHAR2 (10 CHAR) NOT NULL ,
nombre VARCHAR2 (40 CHAR) NOT NULL ,
fecha_nacimiento DATE ) ,
CONSTRAINT persona_PK PRIMARY KEY ( rut )) ;
CREATE TABLE tipo_auto
( tipo_auto_id NUMBER (1) NOT NULL ,
descripcion VARCHAR2 (30) ,
CONSTRAINT tipo_auto_PK PRIMARY KEY ( tipo_auto_id )) ;
ALTER TABLE auto ADD
(CONSTRAINT auto_persona_FK FOREIGN KEY ( rut )
REFERENCES persona ( rut ),
CONSTRAINT auto_tipo_auto_FK FOREIGN KEY ( tipo_auto_id )
REFERENCES tipo_auto ( tipo_auto_id )) ;
Notas sobre el código:
•Para esta alternativa se crean las tablas sin
llaves foráneas, sólo con su llave primaria
•Finalmente se modifican las tablas que poseen
llaves foráneas
•Considerando lo anterior, el orden de creación
de las tablas no es relevante
•Se recomienda que a las restricciones
(constraint) se les dé un nombre apropiado, ya
que para grandes modelos, es más fácil
identificar un posible error de consistencia de
datos , ya que aparecerá el nombre de la
restricción que no se está cumplimiento
Código DDL – Alternativa 2
CREATE TABLE persona
( rut VARCHAR2 (10 CHAR) NOT NULL ,
nombre VARCHAR2 (40 CHAR) NOT NULL ,
fecha_nacimiento DATE ) ,
CONSTRAINT persona_PK PRIMARY KEY ( rut )) ;
CREATE TABLE tipo_auto
( tipo_auto_id NUMBER (1) NOT NULL ,
descripcion VARCHAR2 (30) ,
CONSTRAINT tipo_auto_PK PRIMARY KEY ( tipo_auto_id )) ;
CREATE TABLE auto
( patente VARCHAR2 (6 CHAR) NOT NULL ,
marca VARCHAR2 (50 CHAR) ,
anio NUMBER (4) ,
rut VARCHAR2 (10 CHAR) NOT NULL ,
tipo_auto_id NUMBER (1) NOT NULL,
CONSTRAINT auto_PK PRIMARY KEY ( patente ),
CONSTRAINT auto_persona_FK FOREIGN KEY ( rut )
REFERENCES persona ( rut ),
CONSTRAINT auto_tipo_auto_FK FOREIGN KEY ( tipo_auto_id )
REFERENCES tipo_auto ( tipo_auto_id )) ;
Notas sobre el código:
•Para esta alternativa se crean primero las
tablas que sólo poseen llave primaria
•Finalmente se crean las tablas que poseen
llaves foráneas
•Considerando lo anterior, el orden de creación
de las tablas es relevante
•Se recomienda que a las restricciones
(constraint) se les dé un nombre apropiado, ya
que para grandes modelos, es más fácil
identificar un posible error de consistencia de
datos , ya que aparecerá el nombre de la
restricción que no se está cumplimiento
Código DDL – Alternativa 3
CREATE TABLE auto
( patente VARCHAR2 (6 CHAR) NOT NULL ,
marca VARCHAR2 (50 CHAR) ,
anio NUMBER (4) ,
rut VARCHAR2 (10 CHAR) NOT NULL ,
tipo_auto_id NUMBER (1) NOT NULL );
ALTER TABLE auto
ADD CONSTRAINT auto_PK PRIMARY KEY ( patente ) ;
CREATE TABLE persona
( rut VARCHAR2 (10 CHAR) NOT NULL ,
nombre VARCHAR2 (40 CHAR) NOT NULL ,
fecha_nacimiento DATE ) ;
ALTER TABLE persona
ADD CONSTRAINT persona_PK PRIMARY KEY ( rut ) ;
CREATE TABLE tipo_auto
( tipo_auto_id NUMBER (1) NOT NULL ,
descripcion VARCHAR2 (30) ) ;
ALTER TABLE tipo_auto
ADD CONSTRAINT tipo_auto_PK PRIMARY KEY ( tipo_auto_id );
ALTER TABLE auto
ADD CONSTRAINT auto_persona_FK FOREIGN KEY
( rut ) REFERENCES persona (rut );
ALTER TABLE auto
ADD CONSTRAINT auto_tipo_auto_FK FOREIGN KEY
( tipo_auto_id ) REFERENCES tipo_auto ( tipo_auto_id );
Notas sobre el código:
•Es una combinación de las anteriores, creando y
modificando las tablas a medida que se avanza
en el código, teniendo precaución en la creación
de las tablas con llaves foráneas
•Considerando lo anterior, el orden de creación
de las tablas es relevante
•Se recomienda que a las restricciones
(constraint) se les dé un nombre apropiado, ya
que para grandes modelos, es más fácil
identificar un posible error de consistencia de
datos , ya que aparecerá el nombre de la
restricción que no se está cumplimiento
Semana Nº14:
•Case Method Oracle
•Identificar atributos
•Análisis para el desarrollo
del Modelo Conceptual
•Ejemplo de MER
•Link’s de Interés
•Mapeo a Modelo Relacional
•Ejercicio de Mapeo de Datos
•Ejercicio Normalización
•Ejercicios de consultas a un
esquema
•DDL – Ejemplo con un
modelo relacional
Ejemplos de manipulación
de datos en un esquema de
datos
•Vistas
•Selección de datos
•Diccionario de Datos
•
Aprendizajes esperados:
Alumno , dado un modelo de datos, identifica y
selecciona las alternativas pertinentes para ingresar
información a un modelo de datos
•
•
Contenidos:
• Demostración de manipulación de datos en un
esquema de datos
Modelo
• Considere el siguiente modelo ya recreado en la base de datos. Aún no se
ingresan datos:
Modelo diagramado con Oracle SQL Developer Data Modeler 2.0
Alcances para el ingreso de datos
• Se debe tener precaución cuando las tablas
poseen llaves foráneas, ya que éstas hacen
referencia a la llave primaria de otra tabla
• Por ello, al ingresar datos a estas tablas,
primero se debe ingresar datos a la tabla que
posee la llave primaria, para mantener la
integridad y coherencia de los datos
Ingresando datos
• Trataremos de ingresar un registro a la tabla “auto”
• El ingreso arroja un error, debido a que no se ha respetado la integridad de datos. La tabla
“auto” posee dos llaves foráneas que referencian a las tablas “persona” y “tipo_auto”. Por lo
tanto, se deben ingresar registros en esas tablas primero
Ingresando datos
• Trataremos de ingresar un registro a la tabla “tipo_auto”
• El ingreso fue exitoso. Observe que en el comando no se nombraron los campos a los cuales se
les ingresa datos. Esto es posible sólo si se ingresarán datos a todos los campos de la tabla,
además, en la cláusula “values”, los valores deben ir en el orden en el cual los campos fueron
declarados cuando la tabla se creó en la base de datos
Ingresando datos
• Trataremos de ingresar un registro a la tabla “persona”
• El ingreso fue exitoso. Observe que dentro de los valores ingresados, la fecha de nacimiento se
ingresa como carácter (se reconoce porque usa comillas simples) siendo que el campo es de tipo
“date” (fecha). Esto es posible ya que para ciertos tipos de datos, Oracle transforma ese tipo al
tipo de datos que corresponde. Recuerde que sólo funciona para algunos tipos de datos
Ingresando datos
• Trataremos de ingresar nuevamente un registro en la tabla “auto”
• Esta vez el ingreso fue exitoso. Observe que para los campos “rut” y “tipo_auto_id” los valores
asignados corresponden a valores válidos que existen en las tablas “persona” y “tipo_auto”,
respectivamente.
Eliminando datos
• Trataremos de eliminar un registro de la tabla “tipo_auto”
• La sentencia arroja un error por integridad de datos. Esto se debe a que en la tabla auto existe
un registro del “tipo de auto” 1. En otras palabras, se está tratando de borrar el registro que es
padre de al menos 1 registro de la tabla auto (ver modelo relacional para mayor abundamiento)
Eliminando datos
• Como puede observar, la llave foránea de la tabla auto que lo relaciona con la tabla “tipo_auto”,
señala que al suprimir un registro de la tabla padre, el borrado será restringido. Esta decisión se
realiza cuando se está diseñando el modelo.
• Las otras alternativas que existen para borrar un registro de la tabla padre, considerando este
ejemplo, es que se asigne un valor nulo al campo tipo_auto_id de la tabla auto (set null), o que
cuando el registro padre sea borrado, los registros hijos también lo sean (cascade)
Eliminando datos
• Modificaremos la restricción y le señalaremos que el borrado es en “cascada”
Eliminando datos
• Trataremos de eliminar nuevamente el registro de la tabla “tipo_auto”
• Esta vez el borrado fue exitoso. Además si comprobamos el registro de la tabla auto, también fue
borrado
Semana Nº15:
•Case Method Oracle
•Identificar atributos
•Análisis para el desarrollo
del Modelo Conceptual
•Ejemplo de MER
•Link’s de Interés
•Mapeo a Modelo Relacional
•Ejercicio de Mapeo de Datos
•Ejercicio Normalización
•Ejercicios de consultas a un
esquema
•DDL – Ejemplo con un
modelo relacional
•Ejemplos de manipulación
de datos en un esquema de
datos
Vistas
•Selección de datos
•Diccionario de Datos
•
Aprendizajes esperados:
Alumno , dado un modelo de datos, crea , actualiza y
manipula una vista en la base de datos
•
•
Contenidos:
• Ejemplo de creación y manipula una vista en la base de
datos
Modelo
• Considere el siguiente modelo ya recreado en la base de datos. Aún no se
ingresan datos:
Modelo diagramado con Oracle SQL Developer Data Modeler 2.0
Vista a crear
• Asumamos que se desea tener en una vista la
cantidad de automóviles según su tipo
• La sentencia SQL asociada sería:
select b.descripcion tipo, count(a.patente) cantidad
from auto a, tipo_auto b
where a.tipo_auto_id=b.tipo_auto_id
group by b.descripcion
Creando la vista
• La vista la denominamos “vw_tipos_autos”. A la senentecia SQL le anteponemos “create view
vw_tipos_autos as” y la vista será creada
Seleccionando datos
• Podemos extraer datos de la vista
• A la vista, para la selección, podemos tratarla como una tabla normal
Segunda vista
• Crearemos otra vista con la siguiente
instrucción:
CREATE VIEW VW_PERSONA AS SELECT rut, nombre
FROM persona;
Seleccionando datos
• Podemos extraer datos de la vista
• Al que la vista anterior, para la selección, podemos tratarla como una tabla normal
Manipulando datos
• Podemos manipular datos de la vista. Por ejemplo, le ingresaremos datos
• En la tabla base de la vista, los datos quedan como se muestran a continuación:
Ejercicio
• En la segunda vista pudo observar la
manipulación de datos que se pudo realizar
• Entonces, ¿porqué en la primera de ellas no
se puede realizar?
Semana Nº16:
•Case Method Oracle
•Identificar atributos
•Análisis para el desarrollo
del Modelo Conceptual
•Ejemplo de MER
•Link’s de Interés
•Mapeo a Modelo Relacional
•Ejercicio de Mapeo de Datos
•Ejercicio Normalización
•Ejercicios de consultas a un
esquema
•DDL – Ejemplo con un
modelo relacional
•Ejemplos de manipulación
de datos en un esquema de
datos
•Vistas
Selección de datos
•Diccionario de Datos
•
Aprendizajes esperados:
Alumno , observa y aplica otras formas de aplicar el
comando “select” de SQL
•
•
Contenidos:
• Ejemplos de otras utilizaciones del comando “select”
Modelo
• Considere el siguiente modelo ya recreado en la base de datos. Aún no se
ingresan datos:
Modelo diagramado con Oracle SQL Developer Data Modeler 2.0
Introducción
• Además de las selecciones simples, se
pueden realizar combinaciones mas complejas
• Se pueden utilizar como “tablas”, o como
“campos”
Algunos usos
• En el ejemplo, el “select interior” reemplaza en la cláusula “from” a la tabla o la vista
Algunos usos
• Se pueden utilizar para filtrar los registros que retorna un comando “select”
Algunos usos
• Se puede crear una tabla con el comando “select”. La tabla asume la estructura de los datos
arrojados por el “select”
Ejercicios
• ¿Qué otras utilizaciones se pueden realizar?
• ¿Se puede utilizar junto a comandos “insert”, “delete”,
“update”?
Semana Nº17:
•Case Method Oracle
•Identificar atributos
•Análisis para el desarrollo
del Modelo Conceptual
•Ejemplo de MER
•Link’s de Interés
•Mapeo a Modelo Relacional
•Ejercicio de Mapeo de Datos
•Ejercicio Normalización
•Ejercicios de consultas a un
esquema
•DDL – Ejemplo con un
modelo relacional
•Ejemplos de manipulación
de datos en un esquema de
datos
•Vistas
•Selección de datos
Diccionario de Datos
•
Aprendizajes esperados:
Alumno reconoce y utiliza las herramientas para la
obtención del diccionario de datos desde la base de
datos
•
•
Contenidos:
• Ejemplos para la obtención del diccionario de datos de
la base de datos
¿Qué es Diccionario de Datos? (DD)
• En palabras sencillas, es una especie de catálogo,
que contiene las características (nombre, tamaño,
alias, contenido, etc.) entre otros, de las tablas, datos
pertenecientes a la base de datos
• Se dice que el DD es una base de datos en sí, y entre
distintos DBMS son distintos, pero mantienen el
mismo lineamiento
• Los ejemplos que se utilizarán, se basan en Oracle
10g Express
Diccionario
• En el ejemplo, se realiza una selección de la tabla “dictionary” (sinónimo). En ella podemos ver la
lista de tabla o vistas que contienen información de los metadatos de la BD
Algunos usos
• Según la lista, las tablas o vistas comienzan por los
prefijos DBA, ALL, USER.
• Por ejemplo
• DBA_TABLES: Todas las tablas que posee la base de
datos (se necesitan permisos de DBA)
• ALL_TABLES: Todas las tablas accesibles por el
usuario (las propias + las que se les ha otorgado
permiso)
• USER_TABLES: Todas la tablas del usuario
Diccionario
• Tablas propias del usuario. Se aprecian cuatro (recuerde los ejemplos utilizados en los materiales
de las semanas anteriores)
Diccionario
• Columnas de las tablas o vistas propias del usuario.
Ejercicios
• Obtener sólo las vistas propias del usuario
• Obtener información del usuario actual
• Obtener el listado de restricciones (constraints) del
usuario actual de la base de datos