Está en la página 1de 19

14-12-2022 Trabajo Final del

Curso
DATABASE FOUNDATION (ORACLE)
TEMA: MODELO FÍSICO DE UNA BASE DE DATOS RELACIONAL

OBJETIVO DEL TRABAJO


Al finalizar el módulo formativo el alumno será capaz de modelar, diseñar e implementar el
modelo lógico-físico de una Base de Datos relacional utilizando para ello la herramienta Oracle
SQL Developer Data Modeler, así como su material bibliográfico, teniendo en cuenta la seguridad
en el trabajo y el cuidado del medio ambiente.

PLANTEAMIENTO DEL TRABAJO

Caso practico
Le contratan para hacer una Base Datos que permita apoyar la gestión de un sistema de
ventas. La empresa necesita llevar un control de proveedores, clientes, productos y
ventas. Un proveedor tiene un RUT, nombre, dirección, teléfono y página web. Un cliente
también tiene RUT, nombre, dirección, pero puede tener varios teléfonos de contacto. La
dirección se entiende por calle, número, comuna y ciudad. Un producto tiene un id único,
nombre, precio actual, stock y nombre del proveedor. Además, se organizan en categorías,
y cada producto va sólo en una categoría. Una categoría tiene id, nombre y descripción.
Por razones de contabilidad, se debe registrar la información de cada venta con un id,
fecha, cliente, descuento y monto final. Además, se debe guardar el precio al momento de
la venta, la cantidad vendida y el monto total por el producto.

Realizar:

1. Modelo Conceptual
2. Modelo Lógico
3. Modelo Físico, utilizando Oracle SQL DeveloperData Modeler.
4. Un script de la Base de Datos utilizando el lenguaje DDL y DML para poder crear los
Objetos de la BD y realizar consultas, inserción, modificación, actualización y
eliminación de datos.
Primero identificamos los nombres de las tablas.

• Proveedor
• Producto
• Cliente
• Dirección del proveedor (subtabla)
• Categoría del producto (subtabla)
• Dirección del cliente (subtabla)

Agregamos los atributos a las tablas.

Empezamos con el contenido de la TABLA PROVEEDOR, usaremos el RUT como UID Primario, dato lógico y de origen
entero, continuamos con el nombre de origen VARCHAR de tamaño 50, teléfono dato lógico de origen entero y pagina
web de dato lógico de origen VARCHAR de tamaño 250, todos los datos son de carácter obligatorio.

TABLA PRODUCTO, ID como UID Primario es dato lógico de origen entero, Nombre dato lógico de origen VARCHAR de
tamaño 100, Precio tipo de dato lógico de origen FLOAT de precisión 5, Stock tipo de dato lógico de origen entero,
Nombre_del_Proveedor tipo de dato lógico de origen VARCHAR de tamaño 50, todos son de carácter obligatorio.

TABLA CLIENTE, RUT como UID Primario tipo de dato lógico de origen entero, NOMBRE tipo de dato lógico de origen
VARCHAR de tamaño 50, TELÉFONO tipo de dato lógico origen entero, todos son de carácter obligatorio.

TABLA DIRECCIÓN CALLE tipo de dato lógico de origen VARCHAR de tamaño 100, NUMERO tipo de dato lógico de
origen entero, COMUNA tipo de dato lógico de origen VARCHAR de tamaño 120, CIUDAD tipo de dato lógico de origen
VARCHAR de tamaño 1000 y todos son de carácter obligatorio.

TABLA CATEGORÍA, ID tipo de dato lógico de origen entero, NOMBRE tipo de dato lógico de origen VARCHAR de
tamaño 100 y DESCRIPCIÓN tipo de dato lógico de origen CLOB. ID y nombre son atributos obligatorios.

TABLA DE DIRECCIÓN DEL CLIENTE, CALLE tipo de dato lógico de origen VARCHAR de tamaño 100, NUMERO tipo de
dato lógico de origen entero, COMUNA tipo de dato lógico de origen VARCHAR de tamaño 120 y CIUDAD tipo de dato
lógico de origen VARCHAR de tamaño 1000.
Deberíamos tener las tablas de esta manera.

Las tablas que tenemos abajo las volveremos subtablas.

Le damos un clic a la tabla de dirección vamos a general, buscamos la parte donde esta supertipo y buscamos la tabla
que queremos que sea principal. Y le damos a aceptar.
Y así con las demás tablas.

Después las relacionamos con la segunda flecha verde que esta en la parte superior.

Nos quedaría de esta manera todo relacionado.


Un acercamiento para que lo puedan ver mejor

Después para que se realice una ingeniería le damos al botón azul de dos flechas que está en la parte superior

Nos aparecerá una ventana, en la parte inferior dice realizar ingeniería le damos clic.
Y ya estaría realizado la ingeniería como lo muestro a continuación.

Para generar un DDL solo le damos un clic a este icono que se encuentra en la parte superior.

Nos aparecerá esta ventana.


Le damos a generar, nos aparecerá otra ventana. Y le damos a aceptar.

Y finalmente tendremos el DDL.


Fíjense que no tenga errores, si los tiene le mostrara que esta fallando.

Este es DDL para que lo copien, este DDL lo tenemos que copiar en el programa sqldeveloper.

Después de generar el DDL lo copiamos en una hoja de trabajo en sqldeveloper, Mas abajo se encuentra como lo
hice.

-- Generado por Oracle SQL Developer Data Modeler 22.2.0.165.1149


-- en: 2022-12-14 12:22:16 COT
-- sitio: Oracle Database 21c
-- tipo: Oracle Database 21c

-- predefined type, no DDL - MDSYS.SDO_GEOMETRY

-- predefined type, no DDL - XMLTYPE

CREATE TABLE categoria (


id INTEGER NOT NULL,
id1 INTEGER NOT NULL,
nombre VARCHAR2(100) NOT NULL,
descripcion CLOB
);

ALTER TABLE categoria ADD CONSTRAINT categoria_pk PRIMARY KEY ( id );

ALTER TABLE categoria ADD CONSTRAINT categoria_pkv1 UNIQUE ( id1 );

CREATE TABLE cliente (


rut INTEGER NOT NULL,
nombre VARCHAR2(50) NOT NULL,
telefono INTEGER NOT NULL
);

ALTER TABLE cliente ADD CONSTRAINT cliente_pk PRIMARY KEY ( rut );


CREATE TABLE direccion (
rut INTEGER NOT NULL,
calle VARCHAR2(100) NOT NULL,
numero INTEGER NOT NULL,
comuna VARCHAR2(120) NOT NULL,
ciudad VARCHAR2(1000) NOT NULL
);

ALTER TABLE direccion ADD CONSTRAINT direccion_pk PRIMARY KEY ( rut );

CREATE TABLE direccioncli (


rut INTEGER NOT NULL,
calle VARCHAR2(100) NOT NULL,
numero INTEGER NOT NULL,
comuna VARCHAR2(120) NOT NULL,
ciudad VARCHAR2(1000) NOT NULL
);

ALTER TABLE direccioncli ADD CONSTRAINT direccioncli_pk PRIMARY KEY ( rut );

CREATE TABLE producto (


id INTEGER NOT NULL,
nombre VARCHAR2(100) NOT NULL,
precio FLOAT(5) NOT NULL,
stock INTEGER NOT NULL,
nmbre_del_proveedor VARCHAR2(50) NOT NULL,
proveedor_rut INTEGER NOT NULL,
cliente_rut INTEGER NOT NULL
);

ALTER TABLE producto ADD CONSTRAINT producto_pk PRIMARY KEY ( id );

CREATE TABLE proveedor (


rut INTEGER NOT NULL,
nombre VARCHAR2(50) NOT NULL,
telefono INTEGER NOT NULL,
pagina_web VARCHAR2(250) NOT NULL
);

ALTER TABLE proveedor ADD CONSTRAINT proveedor_pk PRIMARY KEY ( rut );

ALTER TABLE categoria


ADD CONSTRAINT categoria_producto_fk FOREIGN KEY ( id )
REFERENCES producto ( id );

ALTER TABLE direccion


ADD CONSTRAINT direccion_proveedor_fk FOREIGN KEY ( rut )
REFERENCES proveedor ( rut );

ALTER TABLE direccioncli


ADD CONSTRAINT direccioncli_cliente_fk FOREIGN KEY ( rut )
REFERENCES cliente ( rut );

ALTER TABLE producto


ADD CONSTRAINT producto_cliente_fk FOREIGN KEY ( cliente_rut )
REFERENCES cliente ( rut );

ALTER TABLE producto


ADD CONSTRAINT producto_proveedor_fk FOREIGN KEY ( proveedor_rut )
REFERENCES proveedor ( rut );
Finalmente lo copiamos en el programa sqlDeveloper
Usaremos los siguientes scripts.

El script para realizar una consulta del contenido de la tabla es.

select rut,nombre,telefono FROM cliente ORDER BY rut;

Como lo muestro en estas imágenes.

Para insertar datos es el siguiente script.

INSERT INTO cliente (rut,nombre,telefono)

VALUES ('2', 'fernandito','999878789');

Como lo muestro en las siguientes imágenes.


revisamos la tabla si esta el contenido y si, lo está.

Ahora modificaremos los datos con el siguiente script.

UPDATE cliente SET nombre='fabrizio'

WHERE nombre='fer';

Como lo muestro en las siguientes imágenes.


Finalmente, el ultimo script que es eliminar datos de una tabla.

Eliminaremos los datos.

Primero por el registro que queremos.

DELETE from cliente

WHERE nombre='fabrizio';
Preguntas Guía

1. ¿Cuáles son las diferencias entre un modelo conceptual, lógico y físico?

Un modelo lógico es una representación precisa, un modelo conceptual es una muestra imprecisa
de la realidad y un modelo físico es una representación determinada(real).

Un modelo conceptual considera la estructura de los datos, centrándose en los conceptos y sus
relaciones, el modelo físico tiene en cuenta la estructura de los datos, las relaciones entre ellos y
las restricciones de la base de datos y un modelo lógico tiene en cuenta la estructura de los datos
y las relaciones entre ellos.

Los modelos lógicos se utilizan para representar la estructura de datos, se utiliza un modelo
conceptual para representar los datos del problema a resolver y un modelo físico se utiliza para
representar la estructura de los datos en una base de datos.

2. ¿Qué es una Base de Datos Relacional?

Es una base de datos que almacena datos en tablas y utiliza claves para crear relaciones entre
ellos. Las tablas de bases de datos relacionales contienen columnas y filas de datos almacenados
en celdas. Las claves se utilizan para establecer relaciones entre tablas.

3. ¿Cuáles son los niveles de Normalización existentes en el modelamiento de BD?

Los niveles de normalización en el modelamiento de BD son:

1NF: Primera Forma Normal.


2NF: Segunda Forma Normal.
3NF: Tercera Forma Normal.

Cada una de estas formas tiene sus propias reglas. Cuando una base de datos alcanza cierto nivel,
se considera normalizada a esa forma de normalización.

4. ¿Cuáles son las características de cada una de las claves que existen en una entidad de BD?

Entidad: Objeto exclusivo único en el mundo real que se está controlando. Algunos ejemplos de
entidad son una sola persona, un solo producto o una sola organización.

Tipo de entidad: Persona, organización, tipo de objeto o concepto sobre los que se almacena
información. Describe el tipo de la información que se está controlando. Normalmente un tipo de
entidad corresponde a una o varias tablas relacionadas en la base de datos.

Atributo: Característica o rasgo de un tipo de entidad que describe la entidad, por ejemplo, el tipo
de entidad Person (Persona) tiene el atributo Date of Birth (Fecha de nacimiento).

Registro: Representación del almacenamiento de una fila de datos.

Registro de miembro: Representación de la entidad tal como se almacena en los sistemas de


origen individuales. La información de cada registro de miembro se almacena como un registro
único o un grupo de registros en tablas de base de datos relacionadas.
5. ¿Cuáles son las diferencias entre el DDL y DML en SQL?

DDL significa Lenguaje de definición de datos y DML significa Lenguaje de manipulación de


datos. DDL se utiliza para definir la estructura de la base de datos, incluidas las tablas y los
índices. Al igual que DML, se utiliza para manipular datos en tablas, incluida la inserción,
actualización y eliminación.

Las sentencias SQL se dividen en dos categorías; Lenguaje de definición de datos; data definition
language (DDL) y Lenguaje de manipulación de datos; data manipulation language (DML).

Lenguaje de definición de datos (DDL) Las sentencias DDL se utilizan para crear y modificar la
estructura de las tablas, así como otros objetos de la base de datos.

CREATE. para crear objetos en la base de datos.

ALTER. modifica la estructura de la base de datos.

DROP. borra objetos de la base de datos.

TRUNCATE. elimina todos los registros de la tabla, incluyendo todos los espacios asignados a los
registros.

Lenguaje de manipulación de datos (DML) Las sentencias de lenguaje de manipulación de datos


(DML) son utilizadas para gestionar datos dentro de los chemas.

Algunos ejemplos:

SELECT. para obtener datos de una base de datos.

INSERT. para insertar datos a una tabla.

UPDATE. para modificar datos existentes dentro de una tabla.

DELETE. elimina todos los registros de la tabla; no borra los espacios asignados a los registros.

También podría gustarte