BASES DE DATOS ESPACIALES POSTGRES & POSTGIS pgAdmin Query Tool POSTGRES BASES DE DATOS RELAIONALES Y ROBUSTAS Funciones Personalizadas •PL/pgSQL •PL/Tcl •PL/Perl •PL/Python •PL/PHP •PL/Ruby •PL/Java INDEPENDENCIA DE DATOS TRATAMIENTO MANTENIMIENTO COHERENCIA DE RESULTADOS ACCIONES LÓGICAS EVITA INCONSISTENCIAS DISPONIBILIDAD DE DATOS NO EXISTEN DUEÑOS ACCESO A OTRAS PLATAFORMAS CUMPLIMIENTO DE NORMAS ACCESOS OPERACIONES SOBRE DATOS MODELO ENTIDAD-RELACIÓN RELACIONES 1-1; 1-N; N-M CARDINALIDAD ENTIDADES ATRIBUTOS DOMINIOS IDENTIFICADORES LLAVE PRIMARIA LLAVES FORÁNEAS https://www.google.com/url?sa=i&url=https%3A%2F%2Ffinanzastics2.wordpress.com%2F3-modelos-relacionales-de-base-dedatos%2F&psig=AOvVaw28b5_QcRf0SEfjTkvyFJ5A&ust=1586970661717000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCNDRw8u06OgCFQAAAAAdAAAAABAP http://basededatos1007.blogspot.com/2016/10/diagrama-entidad-relacion-simbologia-y.html • Como Crear una Tabla en Postgres create table NOMBRE_TABLA(NOMBRE_CAMPO1 TIPODEDATO, ... NOMBRE_CAMPON TIPODEDATO ); • Ejemplo CREATE TABLE estudiantes( Nombre varchar o variyng character (20), Apellidos varchar(20) o (Max), Edad integer); SELECT * FROM estudiantes INSERT INTO estudiantes (Nombre, Apellidos, Edad) values (‘Andres Felipe’, ‘Melo Vargas’, ’35’); select table_name,column_name,udt_name,character_maximum_length from information_schema.columns where table_name = ‘estudiantes'; Si quiero Borrar una tabla existente: DROP table if exist estudiantes Ahora creemos una tabla de datos con los siguientes nombres: NOMBRE_COMPLE TO CÉDULA PREGRADO_INGER NIERÍA ANDRES MELO 12578935 TOPOGRAFÍA RAFAEL VASQUEZ 14963258 SISTEMAS ANA PLATA 1105896325 MECÁNICA CAROLINA VARGAS 1111589632 TOPOGRAFÍA JUAN ALZATE 16895247 SISTEMAS OSCAR RAMIREZ 31948753 QUÍMICA ANGELA PERICO 6258963 AMBIENTAL Solución: CREATE TABLE estudiantes2( Nombre_completo varchar (20), Cedula integer, Pregrado_Ingenieria varchar (20); SELECT * FROM estudiantes2 INSERT INTO estudiantes (Nombre_completo, cedula, Pregrado_Ingenieria) values (‘Andres Melo’, ‘12578935’, ’Topografía’) INSERT INTO estudiantes (Nombre_completo, cedula, Pregrado_Ingenieria) values (‘Rafael Vasquez’, ‘14963258’, ’Sistemas’) select table_name,column_name,udt_name,character_maximum_length from information_schema.columns where table_name = ‘estudiantes2’; -- Realizamos un "select" de los nombres de los estudiantes “Topografía": select Nombre_completo from estudiantes2 where Pregrado_Ingenieria=‘Topografia'; Decimos que actualizamos un registro cuando modificamos alguno de sus valores. Para modificar uno o varios datos de uno o varios registros utilizamos "update" (actualizar). update estudiantes set Nombre=‘Andres' where nombre=‘Felipe'; Creando la tabla Clientes: CREATE TABLE CLIENTES ( id_Cliente char(8), primary key (id_cliente), NombreCliente varchar(max) ); Creando la tabla Productos: Creando la tabla Ventas: CREATE TABLE VENTAS ( id_Cliente char(8) not null, CREATE TABLE PRODUCTOS id_Producto char(8) not null, ( id_Producto char(8) primary key, id_Fecha char(8) not null, Rubro varchar(20), importeTotal float, Tipo varchar(20), Utilidad float, NombreProducto varchar(max) CONSTRAINT fk_Cliente FOREIGN KEY (id_Cliente) REFERENCES CLIENTES (id_Cliente), ); Creando la tabla Fechas: CREATE TABLE FECHAS ( id_Fecha char(8) primary key, Año varchar(5), Trimestre nvarchar(20), Mes int, Dia int ); CONSTRAINT fk_Producto FOREIGN KEY (id_Producto) REFERENCES PRODUCTOS (id_Producto), CONSTRAINT fk_Cliente FOREIGN KEY (id_Fecha) REFERENCES FECHAS (id_Fecha) );