Está en la página 1de 161

BASE DE DATOS

INGENIERIA DE SISTEMAS

Ing. Sistemas .. RCG Base de Datos 1


BASE DE DATOS

Las Organizaciones siglo XXI son competitivas en la


medida en que sus SI se soporten en bases de datos y de
conocimiento, base Internet, de arquitectura segura,
confiable y multiambiente.

Ing. Sistemas .. RCG Base de Datos 2


CONTENIDO GENERAL
 FUNDAMENTOS DE BASES DE DATOS
Y DBMS(SGBD)
 MODELOS DE DATOS
 BASES DE DATOS RELACIONALES
 LENGUAJE SQL

Ing. Sistemas .. RCG Base de Datos 3


1. FUNDAMENTOS DE BASES DE DATOS
Y DBMS

1.1 Fundamentos de Bases de Datos


1.2 Base de Datos
1.3 Sistema de base de datos (SBD=DBS)
1.4 Ventajas de la Utilización de un DBS.
Abstracción de datos y niveles de
1.5
Abstracción

Ing. Sistemas .. RCG Base de Datos 4


2. MODELOS DE DATOS

Sistema de Gestión de la Base de


2.1 datos (SGBD ) Database Manager
System (DBMS).
2.2 Modelos de Base de Datos
2.2.1 Modelo Físico
Modelos Lógicos Conceptuales o
2.2.2
Abstracto
2.2.2.1 Basados en Objetos
2.2.2.2 Basados en Registros

Ing. Sistemas .. RCG Base de Datos 5


3. MODELO RELACIONAL Y
CONCEPTOS BÁSICOS

Estructura de una base de datos


3.1
relacional.
Reglas para la transformación del
3.2
modelo E/R a Modelo relacional
Sistema Gestor de bases de datos
3.3
Relacional (RDBMS o SGBDR)
3.4 Algebra relacional,
3.5 Cálculo relacional de tuplas

Ing. Sistemas .. RCG Base de Datos 6


4. LENGUAJE ESTRUCTURA DE CONSULTA
(SQL).

4.1 CONCEPTOS (SQL )


4.2 Editor y comandos sql
Comandos DDL
4.3

4.4 Comandos DML

Ing. Sistemas .. RCG Base de Datos 7


BIBLIOGRAFÍA
1. PostgreSQL 9.2.4 Documentation. The
PostgreSQL Global.development Group.
2. FUNDAMENTOS DE BASE DE DATOS.
Silberschatz-Korth-Sudarshan.McGrawHill
3. SISTEMA DE BASE DE DATOS. C.J. Date.
Addison_wesley Iberoamerica.
4. CONCEPCIÓN Y DISEÑO DE BASE DE
DATOS. Adoración de Miguel/Mario Piattini.
Addison_wesley Iberoamerica
5. SISTEMAS DE BASE DE DATOS,
ADMINISTRACIÓN Y USO. Alice Y.H.Tsai.
PHH- Pretice Hall
Ing. Sistemas .. RCG Base de Datos 8
INTRODUCCIÓN
TECNOLOGIAS LA INFORMACION

P S
E
Medio ambiente
Computación Sistemas Abiertos
en
Red

100 Es
Oe
0
1er 4to No
Construcción del
trim. trim.
Software
Ing. Sistemas .. RCG Base de Datos 9
SISTEMAS DE INFORMACIÓN

HARDWARE
INFORMACIÓN

SOFTWARE
TALENTO
DATOS HUMANO

Ing. Sistemas .. RCG Base de Datos 10


FUNDAMENTO DE BASE DE
DATOS
Objeto o conjunto de Entidades

CONJUNTO
DATOS RELACIONES COMPORTAMIENTO

PROCESOS

Informacion para el USUARIO


DATOS(ATRIBUTOS) : Características de los Objetos que se
ALMACENAN y son utiles para el cumplimineto
de los Objetivos del S.I.

RELACIONES : se definen y son producto de la interacción entre


los objetos que forman el SI.
COMPORTAMIENTO : establecen los procesos que los objetos
pueden realizar
Ing. Sistemas .. RCG Base de Datos 11
FUNDAMENTOS DE BASE DE
DATOS
SISTEMA DE INFORMACIÓN
Los funcionarios de una empresa son clasificados por cargos , lo
cual permite asignarles salario , cada uno es asignado a una
dependencia que es dirigida por uno de ellos , cada dependencia
Depende de otra que se designa como jefe, excepto la dirección.
Adicionalmente la empresa por disposición de recursos humanos
Lleva la relación de los familiares de cada funcionario.

El sistema de información que la empresa quiere implementar,


Para la administración de sus funcionarios considera que los datos
Necesarios para conformar su base de datos son:

De las dependencias : Código y un nombre


De los funcionarios : Doc. De Identidad , tipo de Documento,
Nombre y el Sexo.
De Cada Familiar: Doc. De Identidad, tipo de Documento, Nombre,
Sexo y Parentesco.
De los Cargos : Código, Descripción y salario Asignado.
Ing. Sistemas .. RCG Base de Datos 12
FUNDAMENTOS DE BASE DE DATOS
SISTEMA DE INFORMACIÓN
La empresa quiere saber en todo momento : que funcionarios
trabajan en cada dependencia, que cargo ocupan y el salario,
cual es el jefe de cada dependencia y cuales son los
familiares de cada funcionario
RESPONDER PARA EL PROBLEMA ANTERIOR

1. CONJUNTO DE ENTIDADES?

2. DATOS POR CADA CONJUNTO DE ENTIDADES?

3. CONJUNTO DE RELACIONES ENTRE LOS CONJUNTOS


DE ENTIDADES

4. COMPORATEMIENTO DE LOS CONJUNTOS DE


ENTIDADES
Ing. Sistemas .. RCG Base de Datos 13
RESPUESTA AL PROBLEMA PLANTEADO
Doc Ident
Tipo Doc
FUNCIONARIO
Nombre
Sexo

DEPENDENCIA Código
Nombre

Código
CARGO Descripción
Salario

Doc Ident
Tipo Doc
Nombre
FAMILIAR Sexo
Parentesco
Ing. Sistemas .. RCG Base de Datos 14
TIPOS DE SISTEMAS DE INFORMACIÓN (S.I.)

Ing. Sistemas .. RCG Base de Datos 15


Datos redundantes
Datos inconsistentes
Dificultad para el acceso
simultáneo a los datos
Tiempos de FICHEROS
procesamiento
elevados

Difícil acceso
a los datos Dificultad para administrar Coste de
la seguridad del sistema almacenamiento
elevado

Dependencia de los datos


a nivel físico
Ing. Sistemas .. RCG Base de Datos 16
Independencia de los datos de Datos más
los programas y procesos. documentados(metadatos)

Menor
redundancia Integridad
de los datos

Mayor seguridad Menor espacio


en los datos de almacenamiento

Acceso a los datos Acceso simultáneo


más eficiente a los datos

Ing. Sistemas .. RCG Base de Datos 17


FUNDAMENTOS DE BASE DE
DATOS
Base de datos o DATABASE ( BD o DB)

Una DB es una colección de datos que se tratan como una


UNIDAD.

Una DB es colección o deposito de datos lógicamente


agrupados y Relacionados entre sí. Los datos describen
objetos del Mundo real que dan respuesta TOTAL E
INTEGRAL a las necesidades de información a una
Organización particular.

Ing. Sistemas .. RCG Base de Datos 18


FUNDAMENTOS BASE DE DATOS

•El PROPOSITO DE UNA DB es almacenar y permitir


recuperar INFORMACION interrelacionada

•Los DATOS en una base de datos se agrupan en unidades


Básicas llamadas CONJUNTO DE ENTIDADES (Objetos) que
Se interrelacionan (conjunto de relaciones).

•Los conjuntos de entidades como los conjuntos de


relaciones se conforman de datos llamados ATRIBUTOS.

•LOS ATRIBUTOS tienen asociado un Nombre, Definición,


Cardinalidad, Tipo de Dato, Rango, Unidad de Medida,
Precisión y Valores restringidos

Información = DATOS + PROCESOS

Ing. Sistemas .. RCG Base de Datos 19


FUNDAMENTOS BASE DE DATOS

SISTEMA DE BASE DE DATOS O DATABASE SYSTEM (DBS)

Es el conjunto formado por una DB y una colección de


PROGRAMAS , construidos en uno o varios lenguajes.

LOS PROGRAMAS permiten entre otras cosas:


a) Crear la infraestructura de la DB.
b) Definir todos los procesos que permiten transformar los
DATOS almacenados en INFORMACIÓN significativa para
la organización.
c) Permitir el acceso y manipulación de los datos almacenados
en la DB.

OBJETIVO DE UN DBS : hacer EFICIENTE el uso , acceso y


manipulación de los datos de una DB.

Ing. Sistemas .. RCG Base de Datos 20


FUNDAMENTOS BASE DE DATOS
Características de un DBS

Ing. Sistemas .. RCG Base de Datos 21


NIVELES DE ABSTRACION DE UNA
BASE DE DATOS POSTGRESQL

Ing. Sistemas .. RCG Base de Datos 22


ABSTRACION DE DATOS Y NIVELES DE
ABSTRACCION DE UN DB
 El DBS : Entrega la información requerida
y guarda DETALLES bajo diferentes
NIVELES DE ABSTRACCION.

 LOS NIVELES DE ABSTRACCION en


una base de datos son tres:
 NIVEL FISICO
 NIVEL LOGICO CONCEPTUAL
 NIVEL DE VISION O vista del USUARIO.

Ing. Sistemas .. RCG Base de Datos 23


NIVELES DE ABSTRACCION DE UNA DB.

NIVEL DE
VISION U1 U2 U2 ……

INCLUYE ADEMAS DE
LA DEFINICION DE LOS DATOS
NIVEL (CONJUNTO DE ENTIDADES Y RELACIONES) OTRAS
LOGICO UNIDADES DE AGRUPACION PROPIAS DE CADA DBS

NIVEL FISICO Archivos físicos


De almacenamiento

Ing. Sistemas .. RCG Base de Datos 24


ARQUITECTURA DE DATOS A
DOS Y TRES NIVELES
Usuario
Usuario Cliente
Cliente Cliente de Aplicaciones

Aplicación
Red
Red
Servidor de Aplicaciones Servidor

SGBD Servidor
SGBD
Ing. Sistemas .. RCG Base de Datos 25
ARQUITECTURA DEL DBMS PostgreSQL

Server

Posmaster
Client
Libpq
Aplication
Frontend
Postgres Server
(Backend)

Storage Manager
Shared Buffer

Nivel alto : Cliente/servidor Acceso a Datos: Por capas

Ing. Sistemas .. RCG Base de Datos 26


ARQUITECTURA DEL DBMS
PostgreSQL

Libpq Manejo de Comunicaciones C/S

Aceptar Comunicación
Posmaster Autentificar

SERVER Dar Acceso


Process per user

Administración de
Postgres Consultas y
Comandos

Almacenamiento - datos
Storage Administración del buffer,
archivos, bloqueos
Controla todos los
Manager trabajos del back-end
y control de la consistencia de la
información.

Ing. Sistemas .. RCG Base de Datos 27


ESTRUCTURA DE UNA DB POSTGRESQL

CLUSTER

DATABASE TABLESPACE
USER´S

SCHEMAS CATALOG EXTENSIONS

OBJETOS

TABLAS OTROS OBJETOS

Ing. Sistemas .. RCG Base de Datos 28


Creating a Database Cluster
(Grupo)
 Antes de cualquier acción , la base de datos se debe
inicializar la cual se encuentra almacenada en disco. En
SQL se usa el termino catalog cluster.
 Un database cluster es una colección de bases de
datos administradas por una instancia simple que corre
en un servidor de base de datos.
 El database cluster inicial contiene una base de datos
postgres que es la db predeterminada para uso de
requerimientos publicos y aplicaciones de terceros
 Postgres no es requerida por el servidor pero muchos
servicios externos la requieren
Cluster = área de datos = dir data
template1
ESTRUCTURA LOGICA DE UNA DB
POSTGRESQL

Base de datos dividida en unidades lógicas de almacenamiento


Llamadas TABLESPACES
FIGURA 1.

Relación entre base de datos, tablespaces y archivos de datos

Ing. Sistemas .. RCG Base de Datos 30


ESTRUCTURA LOGICA DE UNA DB
POSTGRESQL
 Cada DATABASE está dividida en una o
más tablaspaces
 Uno o más datafile para una tablespace.
 Capacidad de almacenamiento de las
tablepaces(suma de datafile)
 Capacidad de DATABASE es la suma de
las capacidades de las tablespace

Ing. Sistemas .. RCG Base de Datos 31


ESTRUCTURA LOGICA DE UNA DB
PostgreSQL

TABLESPACES : Unidades lógicas en las cuales se divide una


BASE DE DATOS.

UNA TABLESPACE generalmente agrupa estructuras de datos


Interrelacionadas, por ejemplo una tablespace agrupa datos
De un mòdulo o aplicativo de un SI (ej: MÓDULO CONTABLE
DE UNA ORGANIZACIÓN).

DATABASE

TABLESPACES (online, offline)

DATAFILE

Ing. Sistemas .. RCG Base de Datos 32


ESTRUCTURA LOGICA DE UNA DB
PostgreSql

SHEMA o Schema objects:

Colección de objetos de la base de datos que dan respuesta a


Una necesidad y que se agrupan para tal propósito.
(table, views, cluster, index, sequences, procedure )

Ing. Sistemas .. RCG Base de Datos 33


ESTRUCTURA FISICA DE UNA DB
POSTGRESQL

 DATAFILES

 REDO LOG FILES

 CONTROL FILES

Ing. Sistemas .. RCG Base de Datos 34


ESTRUCTURA FISICA DE UNA DB
POSTGRESQL
DATAFILE : Archivos físicos asociados a las tablaspaces de la
DATABASE.

UNA DATABASE puede tener uno o más DATAFILE.

Los DATAFILE contiene todos los objetos de la DB.

Un DATAFILE puede asociarse a una única DB

REDO LOG FILES : Su función principal es la de


prevenir modificaciones de los datos ante fallos de la
DB.
WAL : Lectura anticipada de registro (Write-Ahead Logging)

CONTROL FILE: pg_hda.conf, postgresql.conf, pgpass.conf

Ing. Sistemas .. RCG Base de Datos 35


NIVEL DE VISION.
Actores

roles

1,2 Subesquemas 1 3 Esquema


3
2
DBM

Usuarios

Ing. Sistemas .. RCG Base de Datos 36


Ing. Sistemas .. RCG Base de Datos 37
EL SISTEMA DE GESTION DE LA BASE DE
DATOS
USUARIOS

D BM
NIVEL ESTRATEGICO
C. INTERNOS

NIVEL TACTICO

NIVEL OPERATIVO
S
CLIENTES EXTERNOS
DBMS = SGBD

Ing. Sistemas .. RCG Base de Datos 38


FUNCIONES DEL DBMS
SGBD

DEFINICIÓN
(DDL)

USUARIOS MANIPULACION
(DML)

UTILIZACION Y
CONTROL
(DCL)

FUNCIONES DEL Estructura global


DBMS de un SGBD

Ing. Sistemas .. RCG Base de Datos 39


DBMS
DBMS = DATA BASE MANAGER SYSTEM
SGBD = SISTEMA GESTOR DE BASE DE DATOS

DBMS

Conjunto coordinado de programas, procedimientos, lenguajes


Y otras utilidades que suministra, tanto a usuarios no especialistas
En informática como a profesionales en el ramo, los medios
Necesarios para describir o definir, recuperar y manipular los datos
Almacenados en la DB, manteniendo su INTEGRIDAD, SEGURIDAD
Y CONFIABILIDAD.

DBMS : Herramientas software proporciona la INTERFAZ entre


la DB y los usuarios

Ing. Sistemas .. RCG Base de Datos 40


ACTIVIDADES POSTGRESQL NIVELES
FISICO Y LOGICO

 Crear una TABLASPACE asociada a un DATAFILE


 Crear una BASE DE DATOS (BD O DB) asociada a
la TABLASPACE
 Crear un SCHEMA asociado a la DB.
 Crear Roles / Usuarios con acceso a la DB
 Configura conexión cliente /servidor.

Uso de:

Ing. Sistemas .. RCG Base de Datos 41


SGBD Y MODELOS DE DATOS

 Sistema de Gestión de la Base de datos


(SGBD ) o Database Manager System
(DBMS).
 Modelos de Base de Datos
◦ Modelo Físico
◦ Modelos Lógicos Conceptuales o Abstracto
 Basados en Objetos
 Basados en Registros

Ing. Sistemas .. RCG Base de Datos 42


MODELO DE BASE DE DATOS

MODELO DE DATOS : Representación de objetos de la vida


real con base en características útiles para el sistema que los
describen formalmente de acuerdo a la necesidades
Organizacionales de manera única e interrelacionada.

MODELOS FISICOS

MODELOS LOGICOS CONCEPTUALES O


ABSTRACTOS

Ing. Sistemas .. RCG Base de Datos 43


MODELO FISICO DE UN DB

Ing. Sistemas .. RCG Base de Datos 44


MODELOS LOGICOS CONCEPTUALES O
ABSTRACTOS DE UN DB

MODELOS BASADOS EN OBJETOS

LIBRO
___________

Isbn
ENTIDADES

Título
Métodos
Escrito Por
AUTOR
____________
Cédula
Nombre
OBJETOS MUNDO REAL

Ing. Sistemas .. RCG Base de Datos 45


MODELOS BASADOS EN OBJETOS

 MODELO SEMANTICO

 MODELO ENTIDAD-RELACION
(E/R)

 MODELO ORIENTADO A OBJETOS

Ing. Sistemas .. RCG Base de Datos 46


MODELOS LOGICOS CONCEPTUALES O
ABSTRACTOS DE UN DB

MODELOS BASADOS EN REGISTROS

2 Niveles

Isbn Cédula Titulo Cédula Nombre

Long String (20) String(20)


Int
OBJETOS MUNDO REAL LIBRO AUTOR
Ing. Sistemas .. RCG Base de Datos 47
MODELOS BASADOS EN REGISTROS

 MODELO EN RED

 MODELO JERARQUICO

 MODELO RELACIONAL

Ing. Sistemas .. RCG Base de Datos 48


MODELO SEMANTICO

Ana

Balòn de Balòn
Voleibol

José
Fútbol

Carro
Carreras Juan
Pedro

Bus
I. A) El mundo formado de ENTIDADES

Ing. Sistemas .. RCG Base de Datos 49


MODELO SEMANTICO

Ana

Balòn de Balòn
Fútbol Voleibol

José
BALON

Carro
Carreras
Juan

Pedro

ESTUDIANTE
Bus
I. B) Agrupar las entidades
en CONJUNTO DE ENTIDADES
VEHICULO

Ing. Sistemas .. RCG Base de Datos 50


MODELO SEMANTICO

1. C) Todas las entidades de un CONJUNTO DE ENTIDADES


tienen PROPIEDADES en común (Atributos).

1. D) Cada ENTIDAD posee una PROPIEDAD (Atributo) que


sirve para IDENTIFICARLA (es decir, toda entidad tiene
identificación).

1. E) Cualquier ENTIDAD puede asociarse con otras entidades


dentro del mismo conjunto de entidades o de otros, mediante
RELACIONES.

Juan CONDUCE Bus Juan HERMANO DE Ana


Ana CONDUCE Carro de Carreras Pedro HERMANO DE José

Relación
Relación
Ing. Sistemas .. RCG Base de Datos 51
MODELO SEMANTICO
Conduce (ESTUDIANTE, VEHICULO)

Hermano (ESTUDIANTE, ESTUDIANTE)

2. Semánticamente las ENTIDADES se notan con E y las


PROPIEDADES (atributos ) con P

3. Regla de INTEGRIDAD DE PROPIEDADES

P E

4. Reunir como una unidad un E con sus correspondientes


P

Ing. Sistemas .. RCG Base de Datos 52


MODELO SEMANTICO
CONCEPTO DEFINICION EJEMPLO

ENTIDAD Objeto del mundo real , Balón futbol, Juan, Bus


distinguible

PROPIEDAD Elemento de información Isbn, Cédula, Código,


(Atributo) (hecho, característica) Nombre etc…
que identifica una
ENTIDAD
CONJUNTO DE Agrupación de LIBRO(#Isbn, Titulo)
ENTIDADES ENTIDADES que tienen AUTOR(#Cédula,Nombre)
propiedades (Atributos)
en comùn
RELACION Una Entidad que sirve Escribe(AUTOR, LIBRO)
para conectar entre sí a Conduce (ESTUDIANTE,
otras dos o más VEHICULO)
entidades.

Ing. Sistemas .. RCG Base de Datos 53


MODELO ENTIDAD-RELACION (E/R)
PETER CHEN -1976

Modelo que describe la base de datos de un S.I. Bajo los conceptos :

ENTIDAD : Objetos del mundo real que se describen a partir de


propiedades (atributos) importantes para el sistema.

TIPOS DE ENTIDADES : Agrupación de entidades que tienen


Atributos comunes.

Cada entidad dentro de un TIPO DE ENTIDADES se le


denomina INSTANCIA.

RELACION : Es la asociación o correspondencia entre varias


entidades de uno o varios CONJUNTOS DE ENTIDADES.

TIPOS DE RELACIONES : conjunto de relaciones del mismo tipo o


forma genérica del tipo de relaciones

Ing. Sistemas .. RCG Base de Datos 54


MODELO ENTIDAD-RELACION (E/R)
Principios básicos definición de los TIPOS DE
ENTIDADES en una DB

 Cada tipo de entidades debe tener existencia


propia – Bien definida
 Cada Entidad (instancia) dentro de un tipo de
entidades debe distinguirse claramente de las
demás. (PK, SK)
 Todas las entidades de un mismo tipo de
entidades deben tener los mismos atributos.

Ing. Sistemas .. RCG Base de Datos 55


MODELO ENTIDAD-RELACION (E/R)

REPRESENTACIÓN GRÁFICA

REPRESENTACIÓN CONJUNTIVA

Ing. Sistemas .. RCG Base de Datos 56


MODELO ENTIDAD-RELACION (E/R)
REPRESENTACIÓN GRÁFICA
RECTANGULOS : Para representar tipos de entidades.

ESTUDIANTE

ELIPSE : para representar cada uno de los atributos que


identifican los tipos de entidades / tipos de relaciones.

Código

ROMBOS : Para representar los tipos de relaciones entre


tipos de entidades.

ENLACES Conduce

Ing. Sistemas .. RCG Base de Datos 57


MODELO ENTIDAD-RELACION (E/R)
REPRESENTACIÓN CONJUNTIVA

Representación de TIPO DE ENTIDADES

E={e / P(e) }

Representación del TIPO DE RELACIONES

R ={ (e1,e2,e3,…..en) / e1 Є E1, e2 Є E2, e3 Є E3 ….en Є En}

Ing. Sistemas .. RCG Base de Datos 58


MODELO ENTIDAD-RELACION (E/R)
CONCEPTOS Y EXTENSIONES
 ELEMENTOS DE UN TIPO DE RELACIONES (TR)
 CARDINALIDAD DE UN TIPO DE ENTIDADES (TE)
 ROLES DE LOS TE en un TR
 ATRIBUTOS Y DOMINIOS.
 CLAVES y SUPERCLAVES (Key´s)
 CONTROL DE REDUNDANCIAS
 CLASES DE TIPOS ENTIDADES YRELACIONES
 DEPENDENCIA EN EXISTENCIA Y EN IDENTIFICACIÓN
 TIPO DE RELACIONES EXCLUSIVAS
 GENERALIZACION Y HERENCIA

Ing. Sistemas .. RCG Base de Datos 59


MODELO ENTIDAD-RELACION (E/R)
ELEMENTOS DE UN TIPO DE RELACION (TR)

Elementos de un tipo de Relación : R

• Nombre

•Gr( R ) : Número de tipo de entidades que participan en R.

Gr ( R ) = n Atributos
Atributos
PROFESOR
LIBRO
Atributos

Está en Gr( R ) = 2 ALUMNO Hace Gr( R ) = 3

Atributos
BIBLIOTECA Atributos
ALGORITMO

Ing. Sistemas .. RCG Base de Datos 60


MODELO ENTIDAD-RELACION (E/R)
CARDINALIDAD DE UN TIPO DE ENTIDADES
Relación una a una: 1:1
Fecha
1:1

Atributos
(0,1) Casa (0,1)
MUJER HOMBRE
Con

Atributos
Relación una a Muchas: 1:n

1:N

Atributos
(1,1) (1,n)
DEPENDENCIA Tiene funcionario

Atributos
Ing. Sistemas .. RCG Base de Datos 61
MODELO ENTIDAD-RELACION (E/R)
CARDINALIDAD DE UN TIPO DE ENTIDADES
Relación de Muchas a una: n:1
N:1

(1,n) (0,1)
Atributos JOVEN Estudia UNIVERSIDAD

Atributos
Relación de Muchas a Muchas: n:m

N:M

Atributos (1,n) (1,m)


ARTICULO Ofrecido PROVEEDOR

Atributos
Ing. Sistemas .. RCG Base de Datos 62
MODELO ENTIDAD-RELACION (E/R)
ROLES DE LOS TE en un TR

ROL : Es el papel que desempeña cada TE en un TR.

Estudia
(1,n) (0,1)
JOVEN Estudia UNIVERSIDAD
Forma
Atributos

Atributos
N:1

N:M
Ofrecido
(1,n) (1,m)
ARTICULO Ofrecido PROVEEDOR
Ofrece
Atributos

Atributos
Ing. Sistemas .. RCG Base de Datos 63
FACULTAD
Código MODELO E/R DEL SIAC
(1,1)
Nombre
Conformada
Teléfono
1:N Conformada
Nro_Horas Cédula Nombre Código
Conforma
Código a: N:M
(1,n)
(1,m)
PROGRAMA (1,n) Contrata DOCENTE Clasificado CATEGORIA
Nombre por:

Valor_Hora Nombre
1:N Matricula Ofrece Orienta

Nombre Código
Código
Cursó i_horaria

Cédula ESTUDIANTE MATERIA


Def

Nombre
Pertenece Cursa
N:1 a: Prerrequisito
N1

Nro N2
ESTRATO Valor_Mat

N3
MODELO ENTIDAD-RELACION (E/R)
ATRIBUTOS Y DOMINIO

ATRIBUTO : PROPIEDAD :CARACTERISTICA :DATOS

TIPO DE ENTIDADES TIPO DE RELACIONES


valores
ATRIBUTOS {DOMINIO}

DOMINIO : Conjunto de valores que puede tomar un Atributo

D= {vi / p(vi)} Fi : Ei  Di
P:Sexo {F,M}
s P(s)= s es “F” o “M”
PRIMER PRINCIPIO DE INTEGRIDAD EN DB

Ing. Sistemas .. RCG Base de Datos 65


MODELO ENTIDAD-RELACION (E/R)
CLAVES Y SUPERCLAVES

Código MATERIA I. Horaria

Nombre

SUPERCLAVE : Conjunto de uno o más atributos que identifican


En forma UNICA cada una de las instancias en un TIPO DE
ENTIDADES
Ej: { Código , Nombre, I.horaria}
{ Código, Nombre} SUPERCLAVES
{Código} Para MATERIA

{ I. Horaria } NO ES SUPERCLAVE

Ing. Sistemas .. RCG Base de Datos 66


MODELO ENTIDAD-RELACION (E/R)
CLAVES Y SUPERCLAVES

# Código MATERIA I. Horaria

Nombre

EJ : {código} Conjunto mínimo de atributos que identifica


de manera UNICA cada instancia de MATERIA

CLAVE PRIMARIA (PRIMARY KEY =PK)


Conjunto mínimo de uno o más atributos que identifica de
Manera UNICA cada una de las instancias o entidades en un
TIPO DE ENTIDADES.
Cualquier otro conjunto de atributos pueden ser LLAVES SEC.

Ing. Sistemas .. RCG Base de Datos 67


MODELO ENTIDAD-RELACION (E/R)
EXTENSIONES.
CONTROL DE REDUNDANCIA EN EL MODELO E/R.

 Tipo de Relaciones innecesarias

 Atributos repetidos en tipo de entidades y/o tipo de


relaciones

 Atributos que se derivan de otros mediante cálculos.


Tener claro en la etapa de análisis y diseño (procesos).

SEGUNDO PRINCIPIO DE INTEGRIDAD EN DB

Ing. Sistemas .. RCG Base de Datos 68


MODELO ENTIDAD-RELACION (E/R)
EXTENSIONES.
CONTROL DE REDUNDANCIA EN EL MODELO E/R.
(1,n) (1,n)
AUTOR

Atributos
N:M Publica
en Escribe N:M

1:N
(1,m)
(1,m)
(1,1) (1,n)
Atributos Edita
EDITORIAL LIBRO

Ing. Sistemas .. RCG Atributos


Base de Datos 69
MODELO ENTIDAD-RELACION (E/R)
EXTENSIONES
CLASIFICACION DE LOS TIPOS DE ENTIDADES.

A) TIPO DE ENTIDADES FUERTE O REGULAR.

Tienen existencia por si mismo.

B) TIPO DE ENTIDADES DEBILES.

Su existencia depende de otro tipo de entidad. Una


relación de padre a hijo. Si desaparece el padre de la
DB, hace que desaparezca el hijo (tipo de Entidades
DEBIL)

Ing. Sistemas .. RCG Base de Datos 70


MODELO ENTIDAD-RELACION (E/R)
EXTENSIONES
CLASIFICACION DE LOS TIPOS DE RELACIONES.

Fuertes o Regulares y débiles dependiendo del tipo de


entidades que asocie.

TIPO DE RELACIONES FUERTE : Asocia TE fuertes.

TIPO DE RELACIONES DEBIL : Asocia TE fuerte y TE débil.

Las clasificaciones dadas se definen en la etapa de diseño


De la DB.
Las Asociaciones FUERTE a DEBIL se conocen como dependencia
En CASCADA . Borrados los PADRES se deben BORRAR HIJOS

TERCER PRINCIPIO DE INTEGRIDAD (Integridad Referencial)

Ing. Sistemas .. RCG Base de Datos 71


MODELO ENTIDAD-RELACION (E/R)
EXTENSIONES
TIPOS DE DEPENDENCIA ENTRE TIPOS DE ENTIDADES
Dentro de los tipos de relaciones débiles se puede distinguir
dos tipos de dependencia de un TE débil respecto de un TE
regular.

A) DEPENDENCIA EN EXISTENCIA
E
(1,1) (1,n)
DEPENDENCIA Tiene FUNCIONARIO

1:N

B) DEPENDENCIA POR IDENTIFICACIÓN


I
(1,n) (1,1)
ALUMNO Cursa SEMAFORO
N:1
Ing. Sistemas .. RCG Base de Datos 72
MODELO ENTIDAD-RELACION (E/R)
EXTENSIONES
TIPO DE RELACIONES EXCLUSIVAS

Publicado REVISTA
ARTICULO

Aparece RECOPILACION

Un articulo se publica en una revista o aparece recopilado


pero no ambas cosas.

Ing. Sistemas .. RCG Base de Datos 73


MODELO ENTIDAD-RELACION (E/R)
EXTENSIONES
GENERALIZACION Y HERENCIA

Cédula funcionario Nombre


(1,1)

Is A

(0,1) (0,1)
DOCENTE NO DOCENTE

Nro_Horas Salario

Ing. Sistemas .. RCG Base de Datos 74


MODELO ENTIDAD-RELACION (E/R)
OTRA FORMA DE REPRESENTACION

Para tipos de Relaciones


TIPO DE ENTIDADES
[ALIAS]
Uno y Unicamente Uno
# CLAVE
Atributos

Opcional (cero o uno)

Uno o Más
Obligatorio (uno o debe ser)

Podemos combinar los Símbolos para


tipo de Relaciones

Ing. Sistemas .. RCG Base de Datos 75


MODELO RELACIONAL
Modelo Orientado a Registros

 MODELO RELACIONAL DE LA DB
( RELATIONAL DATABASE =RDB)  DDL, DCL,
DML SQL ALGEBRAL Y CALCULO
RELACIONAL.

 ESTRUCTURA DE UN RDB

 REGLAS PARA TRANSFORMAR E/R EN RDB

Ing. Sistemas .. RCG Base de Datos 76


Modelo RELACIONAL Y PostgreSQL

 Estructura de una base de datos


relacional.
 Reglas para la transformación del modelo
E/R a MODELO RELACIONAL
 RDBMS / ORDMS
 SQL(DDL – DML - DCL)
◦ editor y comandos sql
 Algebra relacional

Ing. Sistemas .. RCG Base de Datos 77


MODELO RELACIONAL
RDB
ESTRUCTURA DE UNA BASE DE DATOS RELACIONAL
o
RELATIONAL DATABASE

Modelo E/R RDB


Tipo de entidades TABLE (Tablas)

Tipo de Relaciones TABLE / FK


Atributos COLUMN (Columnas)
Instancias o Entidades ROW (Record)

PK : PRIMARY KEY FK: FOREIGN KEY : llave foranea


FK : define o establece una relación y es la PK en otra tabla

Ing. Sistemas .. RCG Base de Datos 78


MODELOS DE DB
CONVERSION DEL MODELO E/R
AL
MODELO RELACIONAL (RDB)

Ing. Sistemas .. RCG Base de Datos 79


MODELO RELACIONAL
RDB

Reglas para la transformación del modelo E/R


a MODELO REALCIONAL

1. Tipo de Relaciones UNO a UNO

2. Tipo de Relaciones UNO a MUCHOS o MUCHOS a UNO

3. Tipo de Relaciones MUCHOS a MUCHOS

4. Tipo de Relaciones con Asociación de dependencia

5. Tipo de Relaciones con generalización y Herencia

Ing. Sistemas .. RCG Base de Datos 80


RELACION 1:1 E/R  RDB
Código
Cédula 1:1

(1,1) Dirige (1,1)


RECTOR Dirige UNIVERSIDAD
Dirigida Por

Nombre Nombre

RECTOR UNIVERSIDAD
Dirige

# Cédula Dirigida Por #Código


Nombre Nombre

PK PK FK
Cédula Nombre Código Cédula Nombre

123 Carlos Caicedo 3 167 U. Cartagena

345 Jesús Ferro 2 123 U. Magdalena

167 Juan Gutierrez 1 345 U. Norte

RECTOR UNIVERSIDAD
RELACION 1:N ó N:1 E/R  RDB
Código
Código 1:N
Conformada
(1,1) (1,n)
FACULTAD Conformada PROGRAMA
Conforma a

Nombre Nombre

FACULTAD Conformada PROGRAMA

# Código Conforma a # Código


Nombre Nombre

PK PK FK
Código Nombre Código Código_F Nombre

4 Ingeniería 23 3 Administración

5 Salud 12 5 Medicina

3 Eco-admin 25 4 Sistemas

FACULTAD PROGRAMA
RELACION N:M  RDB

Nit PROVEEDOR Nombre


Tel (1,N)

NFac
Vende N:M
Cant
Valor

Nombre
(1,M)
Cód
UM MATERIA PRIMA
PROVEEDOR PROVEEDOR-MATERIA-P
Nit Nombre Tel Nit Cód NFac Cant Valo
11 Sao 1 r
11 A1 1 10 500
22 Compu 3
11 E1 1 15 100
33 Vivero 2
22 A1 1 20 200
PK
MATERIA PRIMA
PK 33 C1 2 12 350
Cód Nombre UM 11 D1 2 11 200
A1 Tela mt 22 D1 2 13 200
B1 Botón Un 22 C1 2 28 350
C1 Pega Fr 33 A1 3 34 500
D1 Cuero Mt 22 B1 3 15 150
E1 Hilo Tb 11 A1 4 12 500
FK FK
PK
RELACION DE DEPENDENCIA  RDB
E
Tiene
(1,1) (1,n)
FUNCIONARIO Tiene FAMILIAR
Pariente
de
Cédula Nombre
1:N Código Nombre

FUNCIONARIO Tiene FAMILIAR

# Cédula Pariente de: # Código


Nombre Nombre

Código Cédula Nombre


FUNCIONARIO 2 123 Eduardo A.
Cédula Nombre
5 167 Marta

FAMILIAR
123 Eduardo
1 123 Carolina
145 Carlos
8 145 Pedro
167 Maria del P
3 112 Juan Alfredo
189 Omar
4 189 Tatiana
112 Julio
7 112 Mario
PK PK FK
RELACION DE GENERALIZACION Y
HERENCIA  RDB

Cédula funcionario Nombre


(1,1)

Is A

(0,1) (0,1)
DOCENTE NO DOCENTE

Nro_Horas Salario

Ing. Sistemas .. RCG Base de Datos 86


RELACION DE GENERALIZACION Y
HERENCIA  RDB
funcionario NO_ DOCENTE
Cédula Nombre Cédula Salario
123 Eduardo 123 1200000
145 Carlos 145 300000
167 Maria del P 112 250000
PK = FK
189 Omar
112 Julio
DOCENTE
PK
Cédula Nro_horas
167 450

189 320
PK = FK

Ing. Sistemas .. RCG Base de Datos 87


MODELO RELACIONAL RDB Y RDBMS
/ORDBMS DE PostgreSQL

RDBMS : RELATIONAL DATABASE MANAGER SYSTEM

Conjunto de herramientas software que permiten definir ,


Administrar y manipular los OBJETOS de un RDB. Usando
Los servicios de DDL , DML y DCL

ORDB : Modelo de base de datos Objeto – relacional

Modelo de objeto como extensión del modelo relacional

ORDBMS : OBJECT RELATIONAL DATABASE MANAGER SYSTEM

Ing. Sistemas .. RCG Base de Datos 88


MODELO RELACIONAL
SQL (STRUCTURED QUERY LANGUAJE)

San José research laboratory de IBM  sequel  SQL (70´s)

DDL
SQL
DML

LENGUAJE DE CONSULTAS ESTRUCTURADO

Instalar PostgreSQL  SQL plus

Ing. Sistemas .. RCG Base de Datos 89


SQL
COMANDOS BASICOS DDL

COMANDO DESCRIPCION

CREATE Crear objetos

DROP Borrar objetos


ALTER Modificar Objetos
COMMENT o - - Documentación

USO DEL DDL PostgreSQL


Data Definition Language

Ing. Sistemas .. RCG Base de Datos 90


ACTIVIDADES POSTGRESQL NIVELES
FISICO Y LOGICO

 Crear Roles / Usuarios con acceso a la DB


 Crear una TABLASPACE asociada a un DATAFILE
 Crear una BASE DE DATOS (BD O DB) asociada a
la TABLASPACE
 Crear un SCHEMA asociado a la DB.
 Configura conexión cliente /servidor.

Uso de:

Ing. Sistemas .. RCG Base de Datos 91


ESTRUCTURA DE UNA DB POSTGRESQL

CLUSTER

DATABASE TABLESPACE
USER
AND
GROUP USER SCHEMAS CATALOG EXTENSIONS

ROLES OBJETOS
AND
PRIVILEGES TABLAS OTROS OBJETOS

Ing. Sistemas .. RCG Base de Datos 92


Roles y privilegios para una
BD O DB en PostgreSQL
GESTIONAR PERMISOS DE ACCESO A UNA DB

ROL

Un rol puede ser un usuario o un grupo de usuarios de la


base de datos, dependiendo como sea configurado.

Los roles son globales es decir son definidos a nivel de cluster

Los Roles puede ser dueño de los objetos de base de datos


(por ejemplo, las tablas) y pueden asignar privilegios de estos
objetos o otros roles para control de acceso a estos

Ing. Sistemas .. RCG Base de Datos 93


Roles y privilegios para una
BD O DB en PostgreSQL
 Cualquier rol puede actuar como un usuario, un grupo, o ambos.
 El concepto de Rol cubre los dos User y Group

Los Roles en Base de Datos son conceptualmente complementarios


y separados de los usuarios del sistema operativo.

Para determinar el conjunto de roles, se examina el catalogo del


sistema pg_roles asi:
SELECT rolname FROM pg_roles;

En psql el metacomando
\du
Ing. Sistemas .. RCG Base de Datos 94
Roles y privilegios para una
BD O DB en PostgreSQL
CREAR ROLES /USUARIOS

CREATE ROLE name [ [ WITH ] option [ ... ] ]

SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| INHERIT | NOINHERIT
| LOGIN | NOLOGIN
| REPLICATION | NOREPLICATION
| CONNECTION LIMIT connlimit
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD ’password’
| VALID UNTIL ’timestamp’
| IN ROLE role_name [, ...]
| ROLE role_name [, ...]

Ing. Sistemas .. RCG Base de Datos 95


Roles y privilegios para una
BD O DB en PostgreSQL
EJEMPLOS DE CREACIÓN DE ROLES/USUARIOS

CREATE ROLE UNIMAG WITH PASSWOD ‘ricardo1’


Superuser;

Create role admisiones with password ‘ricardo1’


Login in role UNIMAG;

Ing. Sistemas .. RCG Base de Datos 96


Roles y privilegios para una
BD O DB en PostgreSQL
CREAR ROLES /USUARIOS

NOTAS

Desde la línea de comandos


(psql) se puede usar:
createuser name

Para crear un rol con privilegio login se usa el comando SQL


CREATE ROLE name LOGIN;
CREATE USER name;

Ing. Sistemas .. RCG Base de Datos 97


Roles y privilegios para una
BD O DB en PostgreSQL
MODIFICAR ROLES /USUARIOS

ALTER ROLE name [ [ WITH ] option [ ... ] ]

SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| INHERIT | NOINHERIT
| LOGIN | NOLOGIN
| REPLICATION | NOREPLICATION
| CONNECTION LIMIT connlimit
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD ’password’
| VALID UNTIL ’timestamp’
| IN ROLE role_name [, ...]
| ROLE role_name [, ...]

ALTER ROLE name RENAME TO new_name

Ing. Sistemas .. RCG Base de Datos 98


Roles y privilegios para una
BD O DB en PostgreSQL
ELIMINAR ROLES /USUARIOS

DROP ROLE [ IF EXISTS ] name [, ...]

EJEMPLO :

Drop role unimag;

Drop role if exits unimag;

Ing. Sistemas .. RCG Base de Datos 99


Tablespaces
Las Tablespaces permiten al administrador definir la
Localización de los archivos donde los objetos de la DB
se almacenan.

Crear una
TABLESPACE

CREATE TABLESPACE tablespace_name [ OWNER user_name


LOCATION ’directory’

10
Ing. Sistemas .. RCG Base de Datos 0
Tablespaces
Modificar la
definición de una
TABLESPACE

ALTER TABLESPACE— change the definition of a tablespace

ALTER TABLESPACE name RENAME TO new_name


ALTER TABLESPACE name OWNER TO new_owner

10
Ing. Sistemas .. RCG Base de Datos 1
Tablespaces
Borrar una
TABLESPACE

DROP TABLESPACE [ IF EXISTS ] name

10
Ing. Sistemas .. RCG Base de Datos 2
Database ….db…..Base de
Datos..BD
CREATE DATABASE name
[ TABLESPACE [=] tablespace_name ]

CREATE DATABASE name


[ [ WITH ] [ OWNER [=] user_name ]
[ TEMPLATE [=] template ]
[ ENCODING [=] encoding ]
[ LC_COLLATE [=] lc_collate ]
[ LC_CTYPE [=] lc_ctype ]
[ TABLESPACE [=] tablespace_name ]
[ CONNECTION LIMIT [=] connlimit ] ]
10
Ing. Sistemas .. RCG Base de Datos 3
Database ….db…..Base de
Datos..BD
ALTER DATABASE name [ [ WITH ] option [ ... ] ]

where option can be:

CONNECTION LIMIT connlimit


ALTER DATABASE name RENAME TO new_name
ALTER DATABASE name OWNER TO new_owner
ALTER DATABASE name SET TABLESPACE
new_tablespace

10
Ing. Sistemas .. RCG Base de Datos 4
Database ….db…..Base de
Datos..BD

Borrar una
DATABASE

DROP DATABASE [ IF EXISTS ] name

Nota: No estar conectado


A la db -- name
Desde la consola psql
Dropdb name
10
Ing. Sistemas .. RCG Base de Datos 5
SCHEMAS

Schemas o Un esquema es esencialmente un espacio de nombres:


contiene el nombre de objetos (tablas, tipos de datos, funciones y
operadores), cuyos nombres pueden duplicar los de otros objetos
existentes en otros esquemas.
Un schema contiene tablas y otros objetos tales como tipos de datos,
funciones y operadores etc.
Nombres de objetos iguales pueden usarse en diferentes schemas
sin conflicto

Crear un SCHEMA

CREATE SCHEMA schema_name [AUTHORIZATION user_name ]

10
Ing. Sistemas .. RCG Base de Datos 6
SCHEMAS

Modificar la
definición de un
SCHEMA

ALTER SCHEMA name RENAME TO new_name

ALTER SCHEMA name OWNER TO new_owner

10
Ing. Sistemas .. RCG Base de Datos 7
SCHEMAS

Borrar un SCHEMA

DROP SCHEMA [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

CASCADE
Borra automáticamente los objetos (tablas, funciones, etc)
que están contenidos en el esquema.

RESTRICT no permite borrar el esquema si contiene algún


objeto. Este es el valor predeterminado (default)
10
Ing. Sistemas .. RCG Base de Datos 8
Comando de importancia

ACCIÓN CONSOLA PSQL QUERY’s


Mostrar roles del \du Select rolname
Cluster From pg_roles;
Mostrar tablespaces \db SELECT spcname
del cluster FROM pg_tablespace;

Mostrar base de datos \l SELECT datname


definidas en el cluster FROM pg_database;

10
Ing. Sistemas .. RCG Base de Datos 9
SHOW search_path;

SET search_path TO myschema,public;

11
Ing. Sistemas .. RCG Base de Datos 0
Conexión
Cliente/servidor
CLIENTE
SERVIDOR
Alias servidor
-- pg_hda.conf
-- #TYPE DATABASE USER CIDR-ADDRESS METHOD

host all all 192.168.1.0 255.255.255.0


Ip servidor
trust
host all all 172.16.48.189/24 md5
Puerto servidor

Base datos
-- postgresql.conf
-- # CONNECTIONS AND AUTHENTICATION

#listen_addresses = '*'
# puerto =5432
Tipos de datos en PostgreSQL

PostgreSQL cuenta con un conjunto primitivo de


datos pero el usuario puede crear nuevos tipos con:
CREATE TYPE
Data Types
Numeric Types
Data Types
Numeric Types
Data Types
Character Types
Data Types
Date/Time Types
Data Types
USO DEL DDL ProstgreSQL

create , alter
y drop
table 11
Ing. Sistemas .. RCG Base de Datos 8
Create table
Las TABLAS son los Objetos básicos en una RDB , para crear
Una tabla se usa el comando:

CREATE TABLE Nombre_tabla::::::::::

Que requiere de la siguiente información:


• Definición de Columnas
•Restricciones de Integridad
•Tablespace de la tabla
•Característcias de almacenamiento
•Cluster (opcional)
•Poblar la tabla desde un query (consulta).

Prerrequisitos : El usuario debe tener privilegios de


CREATE TABLE cuota de espacio en
la tablespace (ULIMITED TABLESPACE).
11
Ing. Sistemas .. RCG Base de Datos 9
MODELO E/R
CARGO
FUNCIONARIO Ocupa
DEPENDENCIA Formada Por
#Codigo:smallint
#Cedula: bigint
Descripcion:Varchar(30)
#Codigo:smallint Nombre :Varchar(50)
Salario : numeric(10,0)
Nombre :Varchar(30) Sexo: Char(1)

Jefe de Tiene afiliado a

FAMILIAR

#Cedula:bigint
Nombre:varchar(50)
Sexo:Char(1)
Parentesco:varchar(10)

EMPRESA SYSTEMAS SA
FUNCIONARIO
CODIGO- CODIGO-
CEDULA D C NOMBRE SEXO
DEPENDENCIA
2009214013 10 1 ARIZA HERNANDEZ ALDEMIR JOSE M
CODIGO NOMBRE JEFE
BENJUMEA VASQUEZ ANDRES
10 DIRECCION 2010214019 20 2 CAMILO M
20 SUBDIRECCIÓN 10 CAMPIÑO CARRILLO ALBEIRO
30 MERCADEO 10 2009214027 21 3 JUNIOR M
COORDINACIÓ 2010114022 20 5 CASTRO PEÑARANDA MIKE LIDER M
11 N 10 2009214040 21 2 DANIEL SABOGAL SANTIAGO M
21 PLANEACIÓN 20 2013114141 11 3 FULA ARIAS NATALIA F
ATENCION MARIÑO CASTRO CESAR
31 CLIENTE 30 2007114116 31 5 ARMANDO M
2010214070 30 2 MARTINEZ OSORIO LINA MARIA F
MENDOZA PADILLA ERICK
2008214126 20 5 WILLIAM M
MERIÑO CAJAR ARNALDO
2009114059 20 5 ANDRES M
FAMILIARES 2009214075 31 7 MUÑOZ PEREZ KELLY F
CEDULA CEDULA-F NOMBRE SEXO
100 2010214019 JUAN M CARGO
200 2009214027 MARIA F SALARI
300 2010214070 MARTA F CODIGO DESCRPCION O
500 2009214013 PEDRO M 1 DIRECTOR 6000000
400 2010214019 JHOAN M 2 PROFESIONAL 15 4500000
800 2009214027 WILLIAM M 3 PROFESIONAL 12 3800000
900 2010114022 SAUL M 5 TECNICO 9 2500000
7 SECREATRIA 1200000
700 2009214040 KELLY F
120 2013114141 DIANA F
350 2007114116 ESTELA F
450 2010214070 MIGUEL M
Create table

Crear el modelo relacional en


PostgreSQL
del sistema para

EMPRESA SYSTEMAS

Grabar los script´s

12
Ing. Sistemas .. RCG Base de Datos 2
Create table
CREATE TABLE [ IF NOT EXISTS ] table_{ column_name data_type ] [
column_constraint [ ... ] ]
| [TABLESPACE tablespace_name ];

where column_constraint is:


[ CONSTRAINT constraint_name ]
{ NOT NULL |
NULL |
CHECK ( expression ) |
DEFAULT default_expr |
UNIQUE index_parameters |
PRIMARY KEY index_parameters |
FOREIGN KEY ( column_name [, ... ] ) REFERENCES reftable [ ( refcolumn [, ...
])]

12
Ing. Sistemas .. RCG Base de Datos 3
CREATE TABLE scott.emp

(empno integer CONSTRAINT pk_emp PRIMARY KEY,

ename VARCHAR(10) CONSTRAINT nn_ename NOT NULL


CONSTRAINT upper_ename
CHECK (ename = UPPER(ename)),

job VARCHAR(9),

mgr integer CONSTRAINT fk_mgr


REFERENCES scott.emp(empno),

hiredate DATE DEFAULT SYSDATE,

sal decimal(10,2) CONSTRAINT ck_sal


CHECK (sal > 500),

comm decimal(9,0) DEFAULT NULL,

deptno smallint CONSTRAINT nn_deptno NOT NULL


CONSTRAINT fk_deptno
REFERENCES scott.dept(deptno) )
CREATE TABLE dept
(deptno integer CONSTRAINT CREATE TABLE emp
check_deptno (empno integer,
CHECK (deptno BETWEEN 10 AND 99) ename VARCHAR2(10),
, job VARCHAR(9),
dname VARCHAR(9) CONSTRAINT mgr integer,
check_dname hiredate DATE,
CHECK (dname = UPPER(dname)) sal decimal(7,2),
, comm decimal(7,2),
loc VARCHAR (10) CONSTRAINT deptno smallint,
check_loc CHECK (sal + comm <= 5000) );
CHECK (loc IN (’DALLAS’,’BOSTON’,
’NEW YORK’,’CHICAGO’)));
CREATE TABLE order_detail
(CONSTRAINT pk_od PRIMARY KEY (order_id, part_no),
order_id integer
CONSTRAINT fk_oid REFERENCES scott.order (order_id),
part_no integer
CONSTRAINT fk_pno REFERENCES scott.part (part_no),
quantity integer
CONSTRAINT nn_qty NOT NULL
CONSTRAINT check_qty CHECK (quantity > 0),
cost integer
CONSTRAINT check_cost CHECK (cost > 0) );
ALTER TABLE

PROPOSITO :
Cambiar la definición de una tabla en una de las siguientes
formas:
• Add columns
• Remove columns
• Add constraints
• Remove constraints
• Change default values
• Change column data types
• Rename columns
• Rename tables

Privilegios para alter table


12
Ing. Sistemas .. RCG Base de Datos 6
ALTER TABLE
ALTER TABLE [ IF EXISTS ]
action [, ... ]

ALTER TABLE [ IF EXISTS ]


RENAME [ COLUMN ] column_name TO
new_column_name

ALTER TABLE [ IF EXISTS


RENAME CONSTRAINT constraint_name TO
new_constraint_name

ALTER TABLE [ IF EXISTS ] name


RENAME TO new_name

ALTER TABLE [ IF EXISTS ] name


SET SCHEMA new_schema

12
Ing. Sistemas .. RCG Base de Datos 7
ALTER TABLE

ADD [ COLUMN ] column_name data_type [ COLLATE collation ] [ column_constraint [ ... ] ]

DROP [ COLUMN ] [ IF EXISTS ] column_name [ RESTRICT | CASCADE ]

ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type [ COLLATE collation ]


[ USING ALTER [ COLUMN ] column_name SET DEFAULT expression

ALTER [ COLUMN ] column_name DROP DEFAULT

ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL

ALTER [ COLUMN ] column_name SET ( attribute_option = value [, ... ] )

ALTER [ COLUMN ] column_name RESET ( attribute_option [, ... ] )

ALTER [ COLUMN ] column_name SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN}

ADD table_constraint [ NOT VALID ]

DROP CONSTRAINT [ IF EXISTS ] constraint_name [ RESTRICT | CASCADE ]

12
Ing. Sistemas .. RCG Base de Datos 8
DROP table
DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

12
Ing. Sistemas .. RCG Base de Datos 9
SQL
COMANDOS BASICOS DML
COMANDO DESCRIPCION

INSERT Poblar las tablas

UPDATE Modificar datos de


columnas
DELETE Borrar Filas
TRUNCATE Borrar contenido de una
tabla
SELECT QUERY´s o Consultas a la BD

USO DEL DML PostgreSQL


Data Manipulation Language
Ing. Sistemas .. RCG Base de Datos 130
POBLAR TABLAS / insertar filas en
un tabla – Insert into ..
INSERT INTO table_name [ ( column_name [, ...] ) ]
{ DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] |
query }
[ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]

Ing. Sistemas .. RCG Base de Datos 131


Modificar Contenidos de
Columnas de Filas de una Tabla –
Update …set
UPDATE table_name [ AS ] alias ]
SET { column_name = { expression | DEFAULT } |
( column_name [, ...] ) = ( { expression | DEFAULT } [, ...] ) } [, ...]
[ FROM from_list ]
[ WHERE condition ]
[ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]

Ing. Sistemas .. RCG Base de Datos 132


Borra filas en una tabla – Delete
from … / truncate …
DELETE FROM [ ONLY ] table_name [ AS ] alias ]
[ WHERE condition | WHERE CURRENT OF cursor_name ]
[ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]

TRUNCATE [ TABLE ] [ ONLY ] name [ * ] [, ... ]


[ RESTART IDENTITY | CONTINUE IDENTITY ] [ CASCADE |
RESTRICT ]

Ing. Sistemas .. RCG Base de Datos 133


MODELO RELACIONAL , ALGEBRA
RELACIONAL Y SQL

PROCEDIMENTALES
OPERACIONES
ALGEBRA RELACIONAL
LENGUAJES DE CONSULTA
DML
NO PROCEDIMENTALES
DESCRIPCIÓN
INSERT
DML DELETE CALCULO RELACIONAL
UPDATE DE TUPLAS
QUERY CALCULO RELACIONAL
DE DOMINIOS

13
Ing. Sistemas .. RCG Base de Datos 4
MODELO RELACIONAL , ALGEBRA
RELACIONAL Y SQL
FUNCIONARIO Cada fila en una tabla define una
Cédula Nombre
relación entre valores de cada una de
123 Eduardo Las columnas.
145 Carlos
167 Maria del P Existe una correspondencia entre tabla y
relación matemática.
189 Omar
112 Julio
r : D1 ---------- D2
Fila = row = instancia Cédula ---- Nombre
123 ------ Eduardo
145 ----- Carlos

Tuplas : (123 , Eduardo) (145, Carlos)


Fila = Tuplas
Tablas = Relaciòn = r
13
Ing. Sistemas .. RCG Base de Datos 5
MODELO RELACIONAL , ALGEBRA
RELACIONAL Y SQL
NOTACIONES

t[columna] =valor ej: t[cédula] = 123

t[1] indica el valor de la tupla t en el atributo Cédula


t[2] indica el valor de la tupla t en el atributo Nombre

FUNCIONARIO Notación matemática :


Cédula Nombre
123 Eduardo
145 Carlos t er
167 Maria del P

189 Omar t e FUNCIONARIO


112 Julio

13
Ing. Sistemas .. RCG Base de Datos 6
ALGEBRA RELACIONAL
OPERACIONES

UNARIAS BINARIAS
r1 r1 OP r
OP r
r2
r = OP(r1) r = r1 OP r2

r, r1, r2,… son Relaciones

13
Ing. Sistemas .. RCG Base de Datos 7
ALGEBRA RELACIONAL
Y
SQL
 Proyección P
 Selección s
 Renombrar r
 Producto Cartesiano X
 Unión U
 Intersección

13
Ing. Sistemas .. RCG Base de Datos 8
Cédula Nombre
RECTOR

PROYECCION P
123 Carlos
Caicedo
345 Jesús Ferro

167 Juan
Gutierrez

r
P r1 P Col1,Col2,Col3... (r)

Muestra las columnas las tuplas del obejto r pero solo


las col1, col2, col3 ...

col1, col2,col3 son columnas de r.

P * (r) muestra todas las columnas de r

13
Ing. Sistemas .. RCG Base de Datos 9
PROYECCION P

Cédula Nombre
Mostrar el nombre de los rectores de la
123 Carlos tabla rector.
Caicedo

P
Nombre
345 Jesús Ferro

167 Juan Nombre (RECTOR) Carlos


Gutierrez Caicedo
Jesús Ferro

RECTOR Juan
Gutierrez

r1

14
Ing. Sistemas .. RCG Base de Datos 0
Selección s r
s r1

s Condición(r)

Condición : Deber ser Verdadera o Falsa , por tanto debe


estar formada por operaciones lógica y/o relacionales
( opcional : Aritméticas).
Las operaciones deben estar definidas con las columnas
que pertenecen al objeto r

s selecciona todas las tuplas (rows) de r que cumplen


con la condición

Si no se establece condición s devuelve todas las tuplas


de r
14
Ing. Sistemas .. RCG Base de Datos 1
Selección s
Cédula Nombre
Mostrar las tuplas de la tabla RECTOR
123 Carlos Caicedo

345

167
Jesús Ferro

Juan Gutierrez
r1 s (RECTOR)
RECTOR Mostrar de cual Universidad es
Rector CARLOS CAICEDO si
Código Cédula Nombre Su cedula es 123.
3

2
167

123
U. Cartagena

U. Magdalena
s Cédula =123 (UNIVERSIDAD)
Código Cédula Nombre
1 345 U. Norte
2 123 U. Magdalena
UNIVERSIDAD
r1
14
Ing. Sistemas .. RCG Base de Datos 2
Nit Cód
P-M-P
NFac Cant Valor
Selección s
11 A1 1 10 500 Mostrar la tuplas cuyo valor
11 E1 1 15 100 Sea mayor de 350
22 A1 1 20 200 s Valor > 350(P-M-P)
33 C1 2 12 350
11 D1 2 11 200 Mostar las row’s cuyo valor
22 D1 2 13 200 Este entre 150 y 350
22 C1 2 28 350
33
22
A1
B1
3
3
34
15
500
150
s Valor >=150(P-M-P)
and
11 A1 4 12 500 valor <=350

Between 150 and 350


PRODUCTO CARTESIANO
r1
r (r1Xr2)
X

pk Fun r2
cod nombre r
1 pedro
Fun.Cod Fun.nombre Fam.c Fam.cod Fam.nom
3 carlos
1 Pedro 11 1 luis
X 1 Pedro 33 3 jose
C cod Nom
1 Pedro 22 1 edwin

3 Carlos 11 1 luis
11 1 luis
3 Carlos 33 3 jose
33 3 jose
3 Carlos 22 1 edwin
22 1 edwin

fk
fam
Cualificación Nombre_tabla.Atributo Fun.cod
14
Ing. Sistemas .. RCG Base de Datos 4
PRODUCTO NATURAL
Fun
s (r1Xr2)
r1.pk=r2.fk
= s (r1 X r2)
pk
cod nombre r
1 pedro
Fun.Cod Fun.nombre Fam.c Fam.cod Fam.nom
3 carlos
1 Pedro 11 1 luis
X 1 Pedro 33 3 jose
C cod Nom
1 Pedro 22 1 edwin
fam
3 Carlos 11 1 luis
11 1 luis
3 Carlos 33 3 jose
33 3 jose
3 Carlos 22 1 edwin
22 1 edwin

fk sFun.cod=Fam.cod
Fun.Cod Fun.nombre Fam.c Fam.cod Fam.nom

r2 1 Pedro 11 1 luis
fam PADRE DE Fun
1 Pedro 22 1 edwin
3 Carlos 33 3 jose
Fun

X r sFun.cod=Fam.cod r1 P* r2
14
Fam Ing. Sistemas .. RCG Base de Datos 5
PRODUCTO NATURAL
P *
(
s (FunXFam))

Fun

X r sFun.cod=Fam.cod r1 P Fun.nombre,fam.nombre

Fam

r2

P Fun.Nombre, Fam.Nombre
(
s (FunXFam))
Fun.cod=Fam.cod
Fun.nombre
Pedro
Pedro
Fam.nom
luis
edwin

s
Carlos jose

P Fun.Nombre, Fam.Nombre
( (Fun X Fam))

14
Ing. Sistemas .. RCG Base de Datos 6
RENOMBRAR o ALIAS

r rr1 r1
rr1(r)

r
Cédula Nombre Cédula Nombre
22 Samuel PROFESOR (DOCENTE) 22 Samuel
33 Maria del 33 Maria del
Pila Pila
12 Omar 12 Omar

DOCENTE PROFESOR

14
Ing. Sistemas .. RCG Base de Datos 7
UNION E INTERSECCION

r1 r1
U r r
r2 r2

r1 U r2 r1 r2

Las operaciones de Unión e Intersección son válidas si en r1 y r2


se selecciona igual número de atributos y estos atributos son
respectivamente del mismo tipo.

14
Ing. Sistemas .. RCG Base de Datos 8
Algebra Relacional : DB =SIAC
Ejemplos
Las Consultas deben Mostrar :
1 ) El código y nombre de todas las Facultades.
2) El nombre de todos los programas que ofrece la universidad
3) El Código y Nombre de todas de las ingenierìas.
4) La cédula, nombre de todos los docentes de la Universidad
5) El Nombre de todos los docentes magíster.
6) La cédula y nombre de todos los docentes de la U ordenados
alfabéticamente.
7) El Código, nombre y nombre facultad de todos los programas
de la U ordenados por facultad.
8) Los estudiantes (código y nombre)de Cada facultad ordenados
alfabéticamente
9) las materias (codigo, nombre) del semestre con los estudiantes
que las cursan ( Codigo, nombre , n1,n2,n3 y definitiva) , ordenar
por materias y en cada materia los estudiantes ordenados
alfabéticamente.
14
Ing. Sistemas .. RCG Base de Datos 9
Algebra Relacional : DB =SIAC
Ejemplos

8) Las Materias del semestre (código, nombre) con los profesores


que las dictan (nombre) y los estudiantes que las cursan
(código, nombre) . Ordenar por materia y en cada materia
estudiantes ordenados por código.
9) Estudiantes y profesores de cada carrera (cédula, nombre)
ordenados alfabéticamente, adicionar ‘D’ y ‘E’ para docente y
estudiante respectivamente.
10) Estudiantes (codigo y nombre) con materias (nombre) y
definitiva . lo aquellas materias con notas entre 350 y 450. Ordenar
por orden alfabético los estudiantes y sus materias.
11) los profesores (cédula, nombre) con número de horas trabajados
en cada programa. Ordenar por cédula.
12)Los profesores (cédula, nombre) con el total devengado por
13)programa.Ordenar alfabéticamente.
13) Los estudiantes (código, nombre) de sistemas que cursan base
de datos. Ordenar estudiantes alfabéticamente.
15
Ing. Sistemas .. RCG Base de Datos 0
CREACIÓN DE LA
ESTRUCTURA
COMPLETA DE UNA DB

15
Ing. Sistemas .. RCG Base de Datos 1
CONEXIÓN CON JAVA NetBeans
Dependencia
CODIGO NOMBRE JEFE

Funcionario

CEDULA CODIGO-D CODIGO-C NOMBRE SEXO

Familiar
CEDULA CEDULA-F NOMBRE SEXO

Cargo
CODIGO DESCRPCION SALARIO

15
Ing. Sistemas .. RCG Base de Datos 2
CONEXIÓN CON JAVA NetBeans
1. Inluir librería sql en el proyecto

// Libreria
import java.sql.*;

2. Definir las variables de tipo String para almacenar la


Información necesaria para la conexión a la BD

// driver de identificación de DBMS


String Drive;

// Nombre de la base de datos donde se conecta


String connectString;
// Usario (username) y clave (password) para la conexión

String User;
String Password; 15
3

Ing. Sistemas .. RCG Base de Datos


CONEXIÓN CON JAVA NetBeans
3. Definir objetos para : Conexión, ejecución de operaciones de
la DB y almacenar resultados de las consulta (Query ) -SQL
que se defina realizar a la DB.
Connection con;
Statement stmt,
ResultSet rs;

JDBC:Java Database Connectivity

jdbc:postgreslq://ubicacion_de_BD:puerto/nombre_BD

4. Inicializamos las variables de conexión a la BD.

driver = “org.postgresql.Driver”;
connectString = “jdbc:postgresql://localhost:5432/postgres”;
user = “postgres”; 15
password = “ricardocg″; 4

Ing. Sistemas .. RCG Base de Datos


CONEXIÓN CON JAVA NetBeans
5. Cargar Driver , conectar a la DB, definir tipo de operaciones
y operaciones a ejecutar.

// Cargar driver
Class.forName(driver);

// Conectar a la Base de datos


con = DriverManager.getConnection(connectString, user , password);

// Para realizar las diferentes operaciones sobre la base de


datos mediante sentencias SQL.
stmt = con.createStatement();

// ResultSet” (hoja de resultados), donde almacenaremos el resultado del query


que ejecutemos
rs = stmt.executeQuery(“SELECT * FROM Funcionario”);

Ing. Sistemas .. RCG Base de Datos


CONEXIÓN CON JAVA NetBeans
6. Para acceder los resultados de la operación ejecutada
Almacenados en rs un ej.
while (rs.next()){
System.out.println(“CEDULA ” + rs.getString(“cedula_cliente”));
}

7. Por ultimo cerramos el “Statement” y la conexion a la


base de datos
stmt.close();
con.close();

8. Como un ultimo detalle, usar un try, el cual captura una


excepcion (error) que suceda tanto al momento de hacer la
conexion o ejecutar el query, la cual la capturamos en la
variable e, que se imprimira en pantalla.

catch ( Exception e ){
System.out.println(e.getMessage());

Ing. Sistemas .. RCG Base de Datos


Estructura de aplicativo Java
consultas a BD empresa Sistemas SA

Conectar Consultar Consultar Consultar Consultar


Salir
DB Dependencia Cargo Funcionario Familiar

Figura o imagen

RCG

15
Ing. Sistemas .. RCG Base de Datos 7
Estructura de aplicativo Java
consultas a BD empresa Sistemas SA

Retornar

DEPENDENCIAS

Código Nombre Jefe

RCG

15
Ing. Sistemas .. RCG Base de Datos 8
Estructura de aplicativo Java
consultas a BD empresa Sistemas SA

Retornar

CARGOS

Código Descripción Salario

RCG

15
Ing. Sistemas .. RCG Base de Datos 9
Estructura de aplicativo Java
consultas a BD empresa Sistemas SA

Retornar

FUNCIONARIOS
Cédula Nombre Sexo Salario Dependencia

RCG

16
Ing. Sistemas .. RCG Base de Datos 0
Estructura de aplicativo Java
consultas a BD empresa Sistemas SA

Retornar

FAMILIARES
Cédula Nombre Sexo Funcionario

RCG

16
Ing. Sistemas .. RCG Base de Datos 1

También podría gustarte