Introducción Modelo Entidad-Relación

Para podernos iniciar en el mundo de las bases de datos y en especial en el motor de base de datos Oracle, es necesario conocer algunos conceptos de modelos de datos, se sabe que el modelo de datos es la piedra angular del diseño de la base de datos, es necesario desarrollar modelos para explorar ideas y tratar de entender mejor el negocio y así poder encontrar falencias para mejorar el diseño inicial, en nuestro caso particular las personas indicadas para realizar esta labor son los diseñadores del sistema, analistas o arquitectos.

Dentro de los objetivos de realizar o definir un modelo de datos están:

- Comunicar.
- Categorizar.
- Describir.
- Especificar.
- Investigar.
- Evolucionar.
- Analizar.

El objetivo es llegar a generar un modelo que solucione todas las necesidades que el negocio solicite, gracias a esto el desarrollador tendrá gran detalle del sistema de base de datos que se construirá.

El modelo que se tendrá como guía es el modelo entidad-relación el cual es un sistema efectivo en el que los datos son divididos dentro de categorías discretas o entidades, un modelo entidad relación es la ilustración de varias entidades de un negocio y las relaciones entre ellas.

El modelo entidad relación es el resultado de las especificaciones del negocio, las cuales son suministradas en la fase de análisis, el modelo entidad relación separa la información requerida por el negocio de las actividades, de esta manera si las actividades cambian las estructuras del negocio permanecen constantes, en síntesis las estructuras de negocio hacen referencia al modelo entidad-relación y se da por entendido que son tablas, relaciones entre tablas etc.

Lo anterior descrito es una pequeña aproximación al modelo entidad relación el cual es un pilar importante para el inicio del entrenamiento de certificación, es de saber que el modelo entidad relación es algo mas extenso por eso se realiza esta pequeña introducción.

Para mayor detalle consultar el manual guía que se encuentra en el blog con el siguiente enlace.

DESCARGAR: Introducción a Oracle

Consultar capitulo introducción I-2 a I-26 pagina 3 a 58.

Cualquier inquietud con gusto la atenderé.

Gracias por sus comentarios.

9 comentarios:

Manuel dijo...

Como puedo en le toad realizar o mas bien crear un diagrama completo de la DB??

Manuel dijo...

cual es la diferencia entre el delete y truncate??

Manuel dijo...

Tengo una pregunta tengo una tabla A y de esa tabla A tengo un campo donde todos los registros son de tipo varchar 2010XXXXXXXXX, lo que quiero es suprimir el 2010 de algunos de los campos como podria hacerlo?

Manuel dijo...

en el toad cuando hago esta consulta no me trae el rowid pq puede estar pasando??

select rownum,rowid from dual;

en el sql developer si me trae las 2 columnas

Nestor Villamil dijo...

Manuel, veo que en el presente POST realizaste varias preguntas, las voy a resolver en el mismo orden que las planteaste.

1. Como puedo en le TOAD realizar o más bien crear un diagrama completo de la DB ??

Realizar un diagrama Entidad Relación con la herramienta TOAD es muy sencillo, después de haber realizado la conexión a la base de datos en el esquema correspondiente y hablando de la versión de TOAD (Toad For Oracle Version 10.1.1.8), vas al menú superior en la opción Database -> Report -> ER Diagram, después que se despliega la nueva pantalla se da click en la opción de ADD Objects, mostrará una nueva pantalla que permitirá agregar los objetos de los cuales necesita el diagrama, primero es importante seleccionar el esquema al cual pertenecen los objetos posterior a esto marca los objetos y da click en el botón de OK, a continuación debe aparecer la grafica del modelo Entidad Relación, para poderlo exportar a una imagen damos click sobre el botón que tiene la leyenda (Export to Graphic File), este nos proveerá una pantalla que permitirá la exportación del diagrama a una imagen en diferentes formatos, se da click en aceptar y ya tendrías disponible tu Modelo Entidad Relación en la ruta que le indicaste, para revisar de manera detallada este manual puede consultar el siguiente POST http://oracleco.blogspot.com/2011/01/generacion-diagrama-entidad-relacion.html.

Nestor Villamil dijo...

2. Cuál es la diferencia entre el DELETE y TRUNCATE??

Manuel, las diferencias enmarcadas entre las dos sentencias que enuncias son varias y deben ser tenidas en cuenta dependiendo el tipo de operaciones que deseas realizar sobre las tablas en la base de datos, entre dichas diferencias se encuentran las siguientes:

- Una de las grandes diferencias que tienen el DELETE y el TRUNCATE está enfocada en la transacción, como es sabido por todos las sentencias de naturaleza DML como INSERT, UPDATE y DELETE necesitan realizar COMMIT para confirmar la transacción el TRUNCATE no necesita COMMIT el realiza auto COMMIT al finalizar la operación, por lo cual posterior a realizar un TRUNCATE no es posible realizar ROLLBACK (TRUNCATE TABLE MyTable), por esta razón es importante tener en cuenta antes de realizar un TRUNCATE si efectivamente lo que deseamos es borrar toda la información contenida en una tabla, dado el caso que se desee realizar el borrado de la tabla solo de algunos datos parciales se debe realizar con la sentencia DELETE (DELETE FROM MyTable WHERE MyColumn = FilterMyColumn).

- Cuando se realiza un borrado de información con la sentencia DELETE, el espacio en el TABLESPACE se mantiene mientras se vuelven a correr estadísticas sobre la tabla por lo cual si la tabla pesaba 10MB después de realizar el DELETE y efectuado el COMMIT en el TABLESPACE se verá reflejado dicho espacio como ocupado, caso contrario ocurre al realizar un TRUNCATE al finalizar de realizar el borrado el TRUNCATE libera el espacio en el TABLESPACE dejándolo disponible para los demás objetos que pertenecen a dicho TABLESPACE.

- El borrado por medio de DELETE toma más tiempo este depende de la cantidad de información a borrar, los índices definidos para la tabla, el filtro utilizado en el borrado y la configuración del TABLESPACE al cual pertenece, en síntesis al momento de realizar el borrado de un registro, los índices se vuelven a reconstruir para definir una nueva ruta a tomar al momento de realizar una consulta.

En conclusión, es importante determinar qué tipo de operación es la que deseas llevar a cabo con tu tabla, según se explico con anterioridad, realizar el borrado de una tabla con gran volumen de datos es mejor realizarla con un TRUNCATE ya que esta sentencia realiza el borrado más rápido que el DELETE, pero si lo que se desea es borrar una muestra determinada de información es necesario realizarlo con un DELETE, para profundizar más en el uso de DELETE y TRUNCATE y determinar la mejor opción para tus sentencias puedes consultar la siguiente publicación http://oracleco.blogspot.com/2011/01/diferencias-entre-truncate-y-delete.html.

Nestor Villamil dijo...

3. Tengo una pregunta tengo una tabla A y de esa tabla A tengo un campo donde todos los registros son de tipo varchar 2010XXXXXXXXX, lo que quiero es suprimir el 2010 de algunos de los campos como podría hacerlo?

Manuel, existen muchas maneras de realizar la operación que enuncias, te voy a indicar dos posibilidades para solucionarla.

- La primera es reemplazar el 2010 con un carácter en blanco, utilizaríamos la función de ORACLE REPLACE que permite realizar el reemplazo de caracteres, la sintaxis sería la siguiente.

SELECT REPLACE(MyColumn, ‘2010’, ‘’) FROM MyTable

Con dicha sentencia el resultado que se vería en pantalla no contendría el carácter ‘2010’.

- Es importante determinar si dicha funcionalidad es necesaria implementarla para todos los años por lo cual cuando estemos en ‘2011’ ya no nos serviría la sentencia anterior por que debiera estar el año incrementado en 1, para dar solución a esto vamos a utilizar la función de ORACLE SUBSTR, con dicha función lo que podemos hacer es darle un parámetro de inicio y una cantidad de caracteres a tomar, para poder conocer la cantidad de caracteres a tomar es necesario utilizar otra función de ORACLE LENGTH que retorna la cantidad de caracteres que posee el campo, la sentencia a utilizar sería la siguiente.

SELECT SUBSTR(MyColumn, ‘5’, length(MyColumn)) FROM MyTable.

Con estas dos sentencias es posible realizar la operación que enuncias.

Nestor Villamil dijo...

4. En el TOAD cuando hago esta consulta no me trae el ROWID pq puede estar pasando??.

Realmente te la trae por la versión de la aplicación TOAD lo que hace es reservarse al mostrar ese tipo de información ya que es muy sensible para la base de datos y adicional el ROWID tiene ciertas características para uso avanzado, en síntesis el ROWID es el identificador único del registro dentro de la base de datos, es un dato representado en Hexadecimal el cual le permite al motor identificar cada uno de los registros.

Anónimo dijo...

Hola que tal...
Tengo un problema en el TOAD creo que es de configuración...

Al realizar una consulta con un simple query, no me trae los resultados en la grilla, PERO SOLO si le doy Commit luego hago la consulta y ahi me trae los datos!.

Digamos que primero tengo que hacer commit para luego ver el resultado de la consulta (o sea no deberia ser asi, primero tendria que ver lo que me trae y si esta ok ahi darle commit, pero en este caso pasa alreves).

Si pueden ayudarme estaria muy agradecido ya que es de suma importancia q no le pifie en nada
:(

Saludos y mil gracias!
Luciano.-

avisos clasificados gratis