La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

MDD2501 Modelamiento de Datos y Bases de Datos. Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de.

Presentaciones similares


Presentación del tema: "MDD2501 Modelamiento de Datos y Bases de Datos. Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de."— Transcripción de la presentación:

1 MDD2501 Modelamiento de Datos y Bases de Datos

2 Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de MER Links 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 Semanas:

3 Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de MER Links 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:

4 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 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 Fases del Desarrollo – Method Case Oracle

7 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

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 Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de MER Links 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º2:

11 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? Televisor EdificioÁrbol

17 Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de MER Links 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º3:

18 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 libromesa Está sobre color forma 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 jardínniño atiende nombre edad 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…. capacidadubicació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 Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de MER Links 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º4:

29 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 Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de MER Links 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º6:

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: stión_de_bases_de_datos stión_de_bases_de_datos aticas.com/index.php/Analisis/Tema-14- Sistemas-Gestores-de-Bases-de-datos/1- introduccion.html aticas.com/index.php/Analisis/Tema-14- Sistemas-Gestores-de-Bases-de-datos/1- introduccion.html asda/basda.shtml asda/basda.shtml

40 Sitios en Internet Sobre MER: ad-relación ad-relación ges/c/c7/Basesdatos_teo3_modelo_er.pdf ges/c/c7/Basesdatos_teo3_modelo_er.pdf %20Entidad%20Relacion.pdf %20Entidad%20Relacion.pdf

41 Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de MER Links 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º8:

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

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 Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de MER Links 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º9:

51 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 Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de MER Links 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º11:

56 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 Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de MER Links 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º12:

61 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 Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de MER Links 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º13:

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

74 Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de MER Links 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º14:

75 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 Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de MER Links 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º15:

87 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 Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de MER Links 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º16:

97 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 Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de MER Links 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º17:

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 "MDD2501 Modelamiento de Datos y Bases de Datos. Case Method Oracle Identificar atributos Análisis para el desarrollo del Modelo Conceptual Ejemplo de."

Presentaciones similares


Anuncios Google