La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Modelamiento de Datos y Bases de Datos

Presentaciones similares


Presentación del tema: "Modelamiento de Datos y Bases de Datos"— Transcripción de la presentación:

1 Modelamiento de Datos y Bases de Datos
MDD2501 Modelamiento de Datos y Bases de Datos

2 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

3 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

4 Introducción al Case Method Oracle
Aprendizajes esperados: Alumno reconoce etapas del desarrollo de software, utilizando la metodología propuesta por Oracle Contenidos: Introducción al Case Method Oracle

5 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

6 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

7 Resumen Etapas y productos
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

8 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

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

10 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

11 Identifica los atributos de una entidad
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

12 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

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

14 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

15 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

16 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 Árbol Televisor

17 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

18 Guía de ayuda para el desarrollo de un MER
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

19 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

20 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

21 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”

22 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”

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

24 MER del ejemplo forma color Está sobre libro 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

25 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 niño capacidad ubicación 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)

26 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

27 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

28 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

29 Ejercicio de desarrollo de un MER
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

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

31 Análisis del problema planteado
En el problema se pueden distinguir, en primera instancia, las entidades “película”, “actor”, “director”, “ejemplar”, “socio”

32 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

33 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

34 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

35 Modelo propuesto

36 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?

37 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

38 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

39 Sitios en Internet Sobre SGBD:

40 Sitios en Internet Sobre MER:

41 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

42 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

43 Modelo Considere el siguiente modelo:
Nota: De rojo, los atributos claves

44 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

45 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”

46 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

47 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 ”

48 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

49 Solución Completa

50 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

51 Ejercicio de mapeo de MER a MR
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

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

53 Modelo propuesto (Propuesto en Material de Semana 4)

54 Ejercicios Transformar el modelo entidad-relación a un modelo relacional Recuerde las consideraciones que se tuvieron presentes cuando desarrolló el modelo Entidad-Relació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

55 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

56 Ejercicio de normalización y desnormalización de un modelo relacional
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

57 Modelo Considere el siguiente modelo:

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

59 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?

60 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

61 Ejemplos de consultas a un esquema de datos, según un modelo dado
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

62 Modelo Considere el siguiente modelo:

63 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

64 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

65 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

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

67 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

68 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

69 Modelo Considere el siguiente modelo:
Modelo diagramado con Oracle SQL Developer Data Modeler 2.0

70 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

71 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

72 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

73 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 ); ADD CONSTRAINT auto_persona_FK FOREIGN KEY ( rut ) REFERENCES persona (rut ); 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

74 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

75 Demostración de manipulación de datos en un esquema 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

76 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

77 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

78 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

79 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

80 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

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

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

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

84 Eliminando datos Modificaremos la restricción y le señalaremos que el borrado es en “cascada”

85 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

86 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

87 Ejemplo de creación y manipula una vista en la base 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

88 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

89 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

90 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

91 Seleccionando datos Podemos extraer datos de la vista
A la vista, para la selección, podemos tratarla como una tabla normal

92 Segunda vista Crearemos otra vista con la siguiente instrucción:
CREATE VIEW VW_PERSONA AS SELECT rut, nombre FROM persona;

93 Seleccionando datos Podemos extraer datos de la vista
Al que la vista anterior, para la selección, podemos tratarla como una tabla normal

94 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:

95 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?

96 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

97 Ejemplos de otras utilizaciones del comando “select”
Aprendizajes esperados: Alumno , observa y aplica otras formas de aplicar el comando “select” de SQL Contenidos: Ejemplos de otras utilizaciones del comando “select”

98 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

99 Introducción Además de las selecciones simples, se pueden realizar combinaciones mas complejas Se pueden utilizar como “tablas”, o como “campos”

100 Algunos usos En el ejemplo, el “select interior” reemplaza en la cláusula “from” a la tabla o la vista

101 Algunos usos Se pueden utilizar para filtrar los registros que retorna un comando “select”

102 Algunos usos Se puede crear una tabla con el comando “select”. La tabla asume la estructura de los datos arrojados por el “select”

103 Ejercicios ¿Qué otras utilizaciones se pueden realizar?
¿Se puede utilizar junto a comandos “insert”, “delete”, “update”?

104 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

105 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

106 ¿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

107 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

108 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

109 Diccionario Tablas propias del usuario. Se aprecian cuatro (recuerde los ejemplos utilizados en los materiales de las semanas anteriores)

110 Diccionario Columnas de las tablas o vistas propias del usuario.

111 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


Descargar ppt "Modelamiento de Datos y Bases de Datos"

Presentaciones similares


Anuncios Google