TALLER TALLER DE DE BASE DE DA DATOS 1. El ministerio de defensa colombiano desea desarrollar un sistema de información información para la nave espacial espacial Enterprise que próima próimamente mente se lan!ara al espacio. La base de datos deber" contener la si#uiente información$ La nave espacial se compone de distintas dependencias% & cada una de ellas tiene un nombre un códi#o '(nico para cada dependencia)% una función & una locali!ación. *ada dependencia dependencia est" ba+o el control control de un determinado determinado servicio% identi,cado por un nombre & una clave. Todo servicio de la nave 'servicio de operaciones% comando & control% se#uridad% etc.)-a de estar asi#nado por lo menos a una dependencia. Se quie quierre llev llevar ar al da una una relac elació ión n de la trip tripul ulac ació ión n de la nave nave.. Esta Esta información información contiene el nombre% códi#o% cate#ora% anti#/edad% procedencia & situac situación ión adminis administra trativ tiva a 'en 'en servic servicio% io% de ba+a). ba+a). *ada *ada tripul tripulan ante te est" est" asi#nado a una dependencia que se desea conocer% as como la c"mara en la que que se alo+a lo+a.. 0na c"mar mara es una una depe depen ndenc dencia ia que que pose posee e dos dos caractersticas propias% su cate#ora & su capacidad. or otra otra part parte% e% se dese desean an cono conoce cerr los los plane planeta tas s que que 2a visi visita tado do cada cada miembro de la tripulación & el tiempo que permanecieron en ellos para saber las personas con quien se puede contar a la 2ora de reali!ar una eploración eploración interplanetaria. De cada planeta se conoce su nombre & códi#o% la #alaia & coordenadas en las que se encuentra. Al#unos planetas se encuentran poblados por diversas ra!as% cada una en cierta cantidad de indi indivi vidu duos os.. De cada cada ra!a ra!a se alma almace cena na info inform rmac ació ión n sobr sobre e el nomb nombrre% población total & dimensiones medias 'altura% anc2ura% peso). Dise3e el dia#rama entidad relación & crear las tablas en Oracle. 4ODELO E5T6DAD RELA*6O5
S*R6 CREATE TABLE TRIPULANTE ( COD_TRIPULANTE INT, TIEMPO_EXPLORACION DATE NOT NULL, COD_PLANE INT, PRIMARY KEY (COD_TRIPULANTE ), CONSTRAINT COD_PLANE FOREIGN KEY (COD_PLANE) REFERENCES PLANETA (COD_PLANETA) ); CREATE TABLE DEPENDENCIA ( COD_DEPEN INT, NOMBRE_DEPEN VARCHAR(30) NOT NULL, FUNCION_DEPEN VARCHAR(30) NOT NULL, LOCALIZACION_DEPEN VARCHAR(3) NOT NULL, CAPACIDAD_DEPEN INT NOT NULL, CATEGORIA_DEPEN VARCHAR(30) NOT NULL, PRIMARY KEY (COD_DEPEN) ); CREATE TABLE TRIPULACION ( COD_TRIPULACION INT, NOMBRE_TRIPULACION VARCHAR(30) NOT NULL, CATEGORIA_TRIPULACION VARCHAR(!) NOT NULL, ANTIGUEADAD_TRIPULACION VARCHAR(!) NOT NULL, PROCEDENCIA_TRIPULACION VARCHAR(!) NOT NULL, SITUACION_ADMINISTRATIVA VARCHAR(!) NOT NULL, COD_DEPEN INT, PRIMARY KEY (COD_TRIPULACION ), FOREIGN KEY (COD_DEPEN)REFERENCES DEPENDENCIA (COD_DEPEN) ); CREATE TABLE SERVICIO ( COD_SERVICIO INT NOT NULL, NOMBRE_SERVICIO VARCHAR(!) NOT NULL, COD_DEPEN INT, PRIMARY KEY (COD_SERVICIO ), CONSTRAINT COD_DEPEN FOREIGN KEY (COD_DEPEN)REFERENCES DEPENDENCIA (COD_DEPEN) ); CREATE TABLE RAZA ( COD_RAZA INT, NOMBRE_RAZA VARCHAR(!) NOT NULL, POBLACION_TOTAL INT NOT NULL, DIMENSIONES_RAZA INT NOT NULL, COD_PLANETA INT, PRIMARY KEY (COD_RAZA), CONSTRAINT COD_PLANETA FOREIGN KEY (COD_PLANETA )REFERENCES PLANETA (COD_PLANETA) );
CREATE TABLE PLANETA ( COD_PLANETA INT, NOMBRE_PLANETA VARCHAR(30) NOT NULL, GALAXIA_PLANETA VARCHAR(30) NOT NULL, COORDENADA_PLANETA VARCHAR(30) NOT NULL, COD_TRIPULACION INT, PRIMARY KEY (COD_PLANETA ), FOREIGN KEY (COD_TRIPULACION )REFERENCES TRIPULACION (COD_TRIPULACION ) );
7. El 8B6% tras una lar#a labor de investi#ación lo#ro obtener valiosa información acerca de los numerosos casos de corrupción que se est"n dando en *olombia. ara tenerla ordenada & accesible va a separar una base de datos que conten#a todos estos datos. De cada caso de corrupción se desea saber su códi#o% nombre por el que se le conoce% una breve descripción & una estimación de los millones que se 2an desviado. *ada caso es investi#ado por un +ue! del que se desea saber su nombre% dirección% fec2a de nacimiento% & fec2a en que comen!ó a e+ercer. 0na ve! concluida la investi#ación del caso emiten un dictamen que se re#istrara. En cada caso 2a& una serie de ciudadanos implicados% cada uno de ellos con un car#o principal determinado en el momento en que se produ+o el caso. De cada uno de estos se desea conocer su documento% nombre% dirección% & patrimonio. Estos ciudadanos pueden o no pertenecer a un partido poltico determinado & a veces desempe3an un puesto en el. De cada partido de cada partido se quiere conocer su nombre% dirección de la sede central & tel9fonos. Dise3e el dia#rama entidad relación & crear las tablas en Oracle. S*R6 CREATE TABLE CASO_CORRUPCION ( CODIGO_CASA INT NOT NULL, NOMBRE VARCHAR(!0), DESCRIPCION VARCHAR(!0), MILLONES_DES VARCHAR(!0), DOCUMENTOS_"UEZ VARCHAR(!0), CONSTRAINT CASO_CORRUPCION_PK PRIMARY KEY (CODIGO_CASA), CONSTRAINT DOCUMENTOS_"UEZ FOREIGN KEY (DOCUMENTOS_"UEZ)REFERENCES D_"UEZ (DOCUMENTO_"UEZ ) ); CREATE TABLE CIUDADANOS ( DOCUMENTO_CIUDADANO INT NOT NULL, NOMBRE VARCHAR(!0), DIRECCION VARCHAR(!0), PATRIMONIO VARCHAR(!0), CODIGO_PARTIDO INT, CODIGO_CASO INT NOT NULL, CONSTRAINT CIUDADANOS_PK PRIMARY KEY (DOCUMENTO_CIUDADANO ),
CONSTRAINT CODIGO_CASO FOREIGN KEY (CODIGO_CASO )REFERENCES CASO_CORRUPCION (CODIGO_CASA), CONSTRAINT CODIGO_PATIDO FOREIGN KEY (CODIGO_PARTID )REFERENCES PARTIDO_POLITICO (CODIGO_PARTIDO ) ); CREATE TABLE D_"UEZ ( NOMBRE VARCHAR(!0) NOT NULL, DIRECCION VARCHAR(!0), FECHA_NACIMIENTO DATE, FECHA_E"ERCER DATE, DICTAMEN VARCHAR(!0), DOCUMENTO_"UEZ VARCHAR(!0) NOT NULL, CONSTRAINT D_"UEZ_PK PRIMARY KEY (DOCUMENTO_"UEZ ) ); CREATE TABLE PARTIDO_POLITICO ( NOMBRE VARCHAR(!0) NOT NULL, DIRECCION_CEDE VARCHAR(!0), TELEFONOS INT, PUESTO VARCHAR!(!0), CODIGO_PARTIDO INT NOT NULL, CONSTRAINT PARTIDO_POLITICO_PK PRIMARY KEY (CODIGO_PARTIDO) );
:. Le contratan para 2acer una BD que permita apo&ar la #estión de un sistema de ventas. La empresa necesita llevar un control de proveedores% clientes% productos & ventas. 0n proveedor tiene un R0T% nombre% dirección% tel9fono & p"#ina ;eb. 0n cliente tambi9n tiene R0T% nombre% dirección% pero puede tener varios tel9fonos de contacto. La dirección se entiende por calle% n(mero% comuna & ciudad. 0n producto tiene un id (nico% nombre% precio actual% stoc< & nombre del proveedor. Adem"s se or#ani!an en cate#oras% & cada producto va sólo en una cate#ora. 0na cate#ora tiene id% nombre & descripción. or ra!ones de contabilidad% se debe re#istrar la información de cada venta con un id% fec2a% cliente% descuento & monto ,nal. Adem"s se debe #uardar el precio al momento de la venta% la cantidad vendida & el monto total por el producto.
Dise3e el dia#rama entidad relación & crear las tablas en Oracle.
S*R6
CREATE TABLE CATEGORIA ( ID INT NOT NULL, NOMBRE VARCHAR(#), DESCRIPCION VARCHAR(#), CONSTRAINT CATEGORIA_PK PRIMARY KEY (ID) ); CREATE TABLE CLIENTE ( RUT INT NOT NULL, NOMBRE VARCHAR(#), CONTACTO_ID INT NOT NULL, DIRECCION_DIRECCION VARCHAR(#) NOT NULL, CONSTRAINT CLIENTE_PK PRIMARY KEY (RUT), CONSTRAINT CONTACTO_ID FOREIGN KEY (CONTACTO_ID)REFERENCES CONTACTO (ID), CONSTRAINT DIRECCION_DIRECCION FOREIGN KEY (DIRECCION_DIRECCION )REFERENCES DIRECCION (DIRECCION) ); CREATE TABLE CONTACTO ( ID INT NOT NULL, TIPO VARCHAR(#), NUMERO INT, CONSTRAINT CONTACTO_PK PRIMARY KEY (ID) ); CREATE TABLE DETALLE ( PRODUCTO_ID INT NOT NULL, VENTA_ID INT NOT NULL, CANTIDAD INT, MONTO_TOTAL INT, CONSTRAINT PORDUCTO_ID FOREIGN KEY (PRODUCTO_ID)REFERENCES PRODUCTO (ID), CONSTRAINT VENTA_ID FOREIGN KEY (VENTA_ID)REFERENCES VENTA (ID) );
CREATE TABLE DIRECCION ( DIRECCION VARCHAR(#) NOT NULL, CALLE VARCHAR(#), NUMERO VARCHAR(#), COMUNA VARCHAR(#), CIUDAD VARCHAR(#), CONSTRAINT DIRECCION_PK PRIMARY KEY (DIRECCION) ); CREATE TABLE LOCALIZACION ( DIRECCION VARCHAR(#) NOT NULL, CALLE VARCHAR(#), NUMERO VARCHAR(#), COMUNA VARCHAR(#), CIUDAD VARCHAR(#), CONSTRAINT LOCALIZACION_PK PRIMARY KEY (DIRECCION) ); CREATE TABLE PRODUCTO( ID INT NOT NULL, NOMBRE VARCHAR(#), PRECIO INT, STOCK INT, PROVEEDOR_RUT INT NOT NULL, CATEGORIA_ID INT NOT NULL, CONSTRAINT PRODUCTO_PK PRIMARY KEY (ID), CONSTRAINT PROVEEDRO_RUT FOREIGN KEY (PROVEEDOR_RUT) REFERENCES PROVEEDOR (RUT), CONSTRAINT CATEGORIA_ID FOREIGN KEY (CATEGORIA_ID) REFERENCES CATEGORIA (ID) );
CREATE TABLE PROVEEDOR ( RUT $%& NOT NULL, NOMBRE VARCHAR(#), PAGINA_'EB VARCHAR(#), LOCALIZACION_DIRECCION VARCHAR(#) NOT NULL, CONSTRAINT PROVEEDOR_PK PRIMARY KEY (RUT), CONSTRAINT LOCALIZACION_DIRECCION FOREIGN KEY (LOCALIZACION_DIRECCION ) REFERENCES LOCALIZACION (DIRECCION) ); CREATE TABLE VENTA( ID INT NOT NULL, FECHA DATE, MONTO_FINAL INT, DESCUENTO INT, CLIENTE_RUT INT NOT NULL, CONSTRAINT VENTA_PK PRIMARY KEY (ID), CONSTRAINT CLIENTE_RUT FOREIGN KEY (CLIENTE_RUT) REFERENCES CLIENTE (RUT) );