Вы находитесь на странице: 1из 60

Segundo Semestre Ao 2017

Profesora Titular: Ing. Ninfa Rosalba Bordn

1 Facultad Politcnica Computacin VII


Objetivos del Curso
Describir una Base de Datos Relacional aplicando
conceptos, terminologas y aplicaciones.

Definir un esquema relacional de Base de Datos en


SQL (Structured Query Language).

Aprender a formular consultas complejas y


eficientes.

Desarrollar una aplicacin, implementando el


esquema y la programacin del Servidor y la
programacin del Cliente a travs del lenguaje
SQL.

Conocer las implementaciones de orientacin a


objetos, partiendo del modelo relacional
2 Facultad Politcnica Computacin VII
Recursos Bibliogrficas

3 Facultad Politcnica Computacin VII


DISTRIBUCIN DE ACTIVIDADES

Exmenes
Trabajos realizados en clase
Exposicin del Trabajo Culminado

4 Facultad Politcnica Computacin VII


MODELOS DE DATOS
Un modelo es una coleccin de herramientas
conceptuales para describir los datos a travs
de estructuras, las relaciones de datos, la
semntica de los datos y las restricciones de
consistencia

5 Facultad Politcnica Computacin VII


Jerrquicas
Redes
Relacionales
Orientadas a Objetos
De Conocimiento

6 Facultad Politcnica Computacin VII


Dr. E. F. Codd propuso el modelo relacional para un
Sistema de Base de Datos en 1970. Esto fue la base
para la aplicacin de un Sistema de Gestin de Base
de Datos Relacional (RDBMS).

El modelo relacional contiene los siguientes


componentes:
Estructuras: Coleccin de objetos y relaciones
Funcionamientos: Operaciones a ser aplicadas
para manipulacin de los datos.
Integridad: son leyes que gobiernan que funciones
se permiten en datos y estructuras de los Datos, a
fin de garantizar exactitud y consistencia.
7 Facultad Politcnica Computacin VII
Base de Datos Relacional
Una Base de Datos Relacional es una Base de Datos en donde todos
los datos visibles al usuario estn organizados estrictamente como
tablas bi-dimensionales de valores, y en donde todas las operaciones
de la Base de Datos operan sobre dichas Tablas.

Servidor de Base
de Datos

Tabla: Clientes Tabla : Empleados


Vendedor
Cod Nombre Telefono Cod. Cod 2do. Nombre 1er. Nombre
201 Cliente A 266101 12 10 AAAA BBBB
202 Cliente B 201011 14 11 Nombre A Nombre B
203 Cliente C 550351 14 12 XXXX ZZZZ
204 Cliente D 490839 11 14 WWWW FFFF

8 Facultad Politcnica Computacin VII


Base de Datos Relacional - CONCEPTOS

Tabla: Representacin Bi-Dimensional de Datos consistente


de Filas y Columnas. Tambin llamado RELACION.

TABLA DE CLIENTE
Cd. Nombre Telfono Vendedor
Fila: Cada uno de los 201 Cliente A 266101 12
renglones de la Tabla. 202 Cliente B 201011 14
Tambin conocido 203 Cliente C 550351 14
204 Cliente D 490839 11
como TUPLA.

Columna (Atributo) Cada uno de los elementos


verticales de la tabla que representa a cada valor
atmico de la misma

9 Facultad Politcnica Computacin VII


Base de Datos Relacional - CONCEPTOS
Tabla: Productos Tabla : Pedidos FK

Descripcin Precio Existencia Pedido Cliente Producto Cantidad


Articulo 1 1900 5400 10 Havel Artculo 1 20
Articulo 2 2400 1300 11 Magee Artculo 3 30
Articulo 3 3000 14 12 Giljum Artculo 1 10
... . ... 14 Nguyen Artculo 2 100
Tabla: Clientes
Vendedor
PK
Cod Nombre Telefono Cod.
PK PK 201 Havel 266101 12
202 Magee 201011 14
203 Giljum 550351 14
204 Nguyen 490839 11

Cada Fila de datos en una tabla es identificada de forma unvoca por


una columna (o ms columnas). Esta identificacin se denomina Clave
Primaria (PK)
Se puede relacionar informacin lgicamente de tablas referenciando
en una de ellas a la PK de aquella a la cual est relacionada. Esta
columna se denomina clave extranjera (FK).
10 Facultad Politcnica Computacin VII
Propiedades de una Base de Datos
Relacional

Permite el acceso y modificacin de


objetos en una Base de Datos
ejecutando rdenes SQL.
Contiene una coleccin de tablas sin los
indicadores fsicos.
Aplicacin de la funcionalidad.
Modificaciones en lnea.
Independencia de los datos.
11 Facultad Politcnica Computacin VII
Reglas de integridad Relacional
CLAVES PRIMARIAS
Unicidad
Minimalidad
No nulidad: Ninguna parte de una clave primaria es NULA
y el valor debe ser nico. Un NULO es una ausencia de un
valor.
INTEGRIDAD REFERENCIAL
Los valores de una clave extranjera deben emparejar una
clave primaria o deben ser NULOS.
COLUMNA (DOMINIO)
Los valores en la columna deben emparejar el tipo de dato
definido.
Definidas por el Usuario
Los valores deben obedecer las reglas comerciales.
12 Facultad Politcnica Computacin VII
MODELO RELACIONAL: MANIPULACIN DE
DATOS A TRAVS DEL LGEBRA RELACIONAL

RESTRICCIN
(SELECCIN) PROYECCIN PRODUCTO

a x ax
y
b bx
c cx
ay
by
cy

13 Facultad Politcnica Computacin VII


MODELO RELACIONAL: MANIPULACIN DE
DATOS A TRAVS DEL LGEBRA RELACIONAL

UNION INTERSECCION DIFERENCIA

a
a a
b
b b
c
c c

d
d d
e
e e

14 Facultad Politcnica Computacin VII


MODELO RELACIONAL: MANIPULACIN DE
DATOS A TRAVS DEL LGEBRA RELACIONAL

REUNION DIVISION

A1 B1 B1 C1 A1 B1 C1 A X X A
A2 B1 B2 C2 A2 B1 C1 Z
A Y
A3 B2 B3 C3 A3 B2 C2
A Z
B X
C Y

15 Facultad Politcnica Computacin VII


BASES DE DATOS RELACIONALES

OPERADORES ADICIONALES:
AMPLIACION (Extend).
SUMA
CONTEO
REUNION EXTERNA.

16 Facultad Politcnica Computacin VII


NIVELES DE ABSTRACCIN DE DATOS

Nivel de Vistas

USUARIO USUARIO USUARIO USUARIO USUARIO

VISTA EXTERNA A VISTA EXTERNA B

Nivel Lgico
VISTA CONCEPTUAL
Nivel Fsico

BASE DE DATOS
17 Facultad Politcnica Computacin VII
Estructura de una Base de Datos Relacional

NIVEL INTERNO: Estructura FSICA


de los datos, coincidente con los
archivos del S.O.

NIVEL CONCEPTUAL: Corresponde a


la estructura LGICA o
agrupamiento lgico que se visualiza
como TABLAS, Claves, Relaciones

18 Facultad Politcnica Computacin VII


Objetos de una Base de
Datos
Objeto Descripcin

TABLA Es la unidad bsica de almacenamiento


compuesto de filas y columnas.

VISTA Lgicamente representa subconjunto de datos


de una o ms tablas.
SECUENCIA Genera secuencia de valores.

NDICE Permite mejorar la actuacin de las consultas

SINNIMO Nombre alternativo para un objeto

UNIDADES DE
PROGRAMA Procedimiento o funcin definida en la BD

19 Facultad Politcnica Computacin VII


ORACLE

20 Facultad Politcnica Computacin VII


Qu es ORACLE?

Oracle es una compaa de Base de Datos que ofrece


productos y servicios para necesidades de tecnologa de
informacin.
El RDBMS de Oracle se llama el Oracle Server
Propiedades:
Areas de almacenamiento designadas
Recuperacin de los datos rpida
Seguridad de la Base de Datos
Las Bases de Datos Distribudas y integridad a travs de las
redes
Configuraciones del cliente-servidor

21 Facultad Politcnica Computacin VII


Las capas de ORACLE

Datos
Sistema Operativo
Oracle
SQL, PL/SQL
Herramientas
Server

Aplicaciones

23 Facultad Politcnica Computacin VII


SQL, SQL*Plus, y PL/SQL
SQL (Structured Query Language)
Lenguaje de comandos para las comunicaciones con el Server
del ORACLE desde cualquier herramienta o aplicacin.

SQL*Plus
Una herramienta de Oracle que reconoce y enva comandos
SQL y declaraciones de PL/SQL para su ejecucin por el
Servidor. Tiene su propio lenguaje de comandos

PL/SQL (Program Language SQL)


Idioma procedimental de Oracle que extiende comandos SQL
agregando la lgica de la aplicacin, para posibilitar
manipulacin de datos fuera de la Base de datos.

24 Facultad Politcnica Computacin VII


La interaccin entre SQL y SQL*Plus

LISTENER
Server
SQL*Plus
SQL*Net, Net8
(TCP/IP, NetBUI...)

Buffer

SQL y
Scripts
PL/SQL

25 Facultad Politcnica Computacin VII


SQL (Structured Query Language) es el lenguaje
relacional de Base de Datos utilizado para trabajar con
Bases de Datos Relacionales, y su historia est ntimamente
ligada al desarrollo de stas.

* La mayora de las DBMSs relacionales comerciales poseen un lenguaje


declarativo de alto nivel, en el cual el usuario especifica qu quiere como
resultado, dejando las decisiones de cmo ejecutar la consulta para el
Sistema.
* Entre esos lenguajes, el ms conocido es el SQL, que se volvi el padrn
norteamericano (ANSI 1986) e internacional (ISO 1989) para los DBMSs
relacionales
* Originalmente,al SQL se lo llam SEQUEL (Structured English QUEry
Language) y fue proyectada e implementada en una DBMS experimental de
IBM conocida como System R, que fue el prototipo de los RDBMSs
comerciales de IBM: SQL/DS y DB2
* Actualmente, todos los RDBMS proveen de una variacin del lenguaje SQL
adaptado en mayor o menor grado a los estndares mencionados
26 Facultad Politcnica Computacin VII
ALGUNOS HITOS HISTRICOS:

1970 Codd define el modelo de datos RELACIONAL


1974 Comienza el proyecto System/R de IBM
1974 Primer artculo que describe el lenguaje SEQUEL
1979 ORACLE introduce el primer RDBMS comercial
1981 INGRESS aparece en el mercado
1982 ANSI forma el comit de estndares QL
1983 IBM anuncia db2
1986 Se ratifica el estndar ANSI SQL
1986 Introduccin del RDBMS de SYBASE
1987 Se ratifica el estndar ISO SQL
1988 Ashton-Tate y Microsoft anuncia SQL Server para OS/2

27 Facultad Politcnica Computacin VII


FUNCIONES EN EL DBMS EJECUTADAS POR EL SQL
Definicin de datos: permite definir la estructura y organizacin de
los datos almacenados y de las relaciones entre ellos.
Recuperacin de datos: permite recuperar los datos almacenados en
la BD y almacenarlos
Manipulacin de datos: permite actualizar la BD aadiendo nuevos
datos, suprimiendo datos antiguos y modificando datos previamente
almacenados
Control de acceso: puede ser utilizado para restringir la capacidad
de un usuario para recuperar, aadir y modifiacar datos,
protegindolos de accesos no autorizados
Integridad de datos: define restricciones de integridad en la BD,
protegindola contra corrupciones por fallos o inconsistencias.
Comparticin de datos: se utiliza para coordinar el acceso
concurrente a los datos.

28 Facultad Politcnica Computacin VII


Lenguaje de Definicin de datos (Data Definition
Language o DDL): proporciona rdnes para la definicin
de esquemas de la tabla, borrado de tablas, creacin de
ndices y modificacin de esquemas de la tabla

Lenguaje interactivo de manipulacin de Datos (Data


Manipulation Language o DML) : Incluye un lenguaje de
consultas, basado en el lgebra y el clculo relacional.
Incluye sentencencias para insertar, borrar y modificar
tuplas o filas de las tablas de la BD.

29 Facultad Politcnica Computacin VII


Comandos SQL
Recuperacin de Datos
SELECT
Manipulacin de Datos: Data Manipulation Language
(DML)
INSERT, UPDATE, DELETE
Definicin de Datos: Data Definition Language (DDL)
CREATE, ALTER, DROP, RENAME, TRUNCATE
Control de Transacciones
COMMIT, ROLLBACK, SAVEPOINT
Control de Acceso a los Datos Data control language
(DCL)
GRANT, REVOKE

30 Facultad Politcnica Computacin VII


Relaciones de Tablas utilizadas

S_IMAGEN
S_CLIENTE

S_PRODUCTO S_INVENTARIO

S_DEPOSITO S_REGION
S_ITEM S_TITULO
S_TEXTOLARGO

S_ORDEN S_EMPLEADO S_DEPARTAMENTO

31 Facultad Politcnica Computacin VII


Introduccin al SQL: La sentencia bsica.

SELECT [DISTINCT] {*,columna [alias],....}


FROM tabla;

SELECT identifica QUE columnas


FROM identifica qu tablas

32 Facultad Politcnica Computacin VII


COMANDOS SQL

Los comandos pueden tener varias lneas


Se puede indentar para facilitar entendimiento
Los comandos pueden escribirse en mayscula o
minscula.
Los comandos se ejecutan una vez ingresados el en
bffer.

33 Facultad Politcnica Computacin VII


Para seleccionar todas las columnas y filas

SELECT clusula
Asterisco (*) indica todas las columnas
FROM clusula

SQL> SELECT *
2 FROM s_departamento;

34 Facultad Politcnica Computacin VII


SELECCIN DE COLUMNAS
ESPECFICAS

SQL> SELECT id_departamento, apellido, id_gerente


2 FROM s_empleado;

35 Facultad Politcnica Computacin VII


Expresiones aritmticas

Operadores utilizados.
Add +
Subtract -
Multiply *
Divide /

36 Facultad Politcnica Computacin VII


Expresiones aritmticas

Ejemplo: Ver el salario anual de los empleados.


SQL> SELECT apellido, salario * 12, porc_comision
2 FROM s_empleado;

APELLIDO SALARIO*12 PORC_COMISION


------------ ------------ --------------
...
Havel 15684
Magee 16800 10
Giljum 17880 12.5
Sedeghi 18180 10
Nguyen 18300 15
Dumas 17400 17.5
Maduro 16800
...

37 Facultad Politcnica Computacin VII


Precedencia del operador
Multiplicacin y divisin tienen precedencia por
sobre resta y suma
Los operadores se evalan de derecha a izquierda
Los parntesis ayudan a cambiar el orden de
precedencia

SQL> SELECT apellido, salario, 12 * salario + 100


2 FROM s_empleado;
... Velasquez 2500 30100

SQL> SELECT apellido, salario, 12 * (salario + 100)


2 FROM s_empleado;
... Velasquez 2500 31200

38 Facultad Politcnica Computacin VII


Utilizacin de un alias para las
columnas

La operacin de renombramiento se da a travs de la


utilizacin de un alias o sobrenombre, que aparece en la
cabecera de las columnas al seleccionarlas
Es til cuando la columna es el resultado de un clculo
Debe seguir inmediatamente a la columna u operacin
que representar una columna
Se puede utilizar la palabra clave AS, pero no es
obligatoria
Si el alias tiene caracteres especiales o espacios, deber
utilizarse comillas.

39 Facultad Politcnica Computacin VII


Operador de Concatenacin
Se representa por 2 barras verticales (||), y tiene por
funcin enlazar columnas o cadenas de caracteres a
otras columna, resultando en una nueva columna de
caracteres. Ejemplo:

SQL> SELECT nombre || apellido


2 FROM EMPLEADOS;

NOMBRE||APELLIDO
-------------------------------------------------
CarmenVelasquez
LaDorisNgao
MidoriNagayama
MarkQuick-To-See
AudryRopeburn
MollyUrguhart
40 Facultad Politcnica Computacin VII
Valores NULOS (NULL)

NULL es un valor no disponible, no asignado,


no conocido o inaplicable; por tanto no tiene
igual significado que CERO (0) o Espacio
Si una expresin aritmtica contiene valores
nulos, toda la expresin se evala como NULL

41 Facultad Politcnica Computacin VII


La funcin NVL

Convierte NULL al valor indicado por la expresin NVL


Puede ser utilizado en tipos date, number, varchar2
El tipo de datos de la columna a convertir debe ser
equivalente al asignado por NVL.
NVL (fecha_inicio, '01-JAN-95')
NVL (titulo, 'No Title Yet')
NVL (salario, 1000)

SQL> SELECT apellido, titulo,


2 salario*NVL(commision_pct,0)/100 COMM
3 FROM s_empleado;

42 Facultad Politcnica Computacin VII


Filas duplicadas

La sentencia SELECT despliega todas las filas,


incluyendo duplicadas (a diferencia de la
operacin algebraica
SQL> SELECT nombre
2 FROM s_departamento;

Para eliminar las filas duplicadas se utiliza la


clusula DISTINCT
SQL> SELECT DISTINCT nombre
2 FROM s_departamento;

43 Facultad Politcnica Computacin VII


DISTINCT para multiples Columnas

DISTINCT se aplica a todas las


columnas en la sentencia SELECT.
SQL> SELECT DISTINCT id_departamento, titulo
2 FROM s_empleado;

Donde DISTINCT es aplicado a


multiples columnas y el resultado
representa combinaciones de las
mismas.
44 Facultad Politcnica Computacin VII
Desplegando la estructura de la
Tabla
En SQL*Plus el comando DESCRIBE despliega
la estructura de una tabla (nombre de columna,
valores NOT NULL, y tipo de datos.
SQL> DESCRIBE s_departamento

NOT NULL columnas no contienen datos.


Ejemplo de tipo de datos
NUMBER (p,s)
VARCHAR2(s)
DATE
CHAR(s)
45 Facultad Politcnica Computacin VII
SQL*Plus Commandos de Edicin

A[PPEND] text
C[HANGE] / old/ new
CL[EAR] BUFF[ER]
DEL
I[NPUT] text
L[IST] n
n text

46 Facultad Politcnica Computacin VII


Comando SET PAUSE

Permite desplegar pantalla por


pantalla los datos presionando
ENTER
SET PAUSE {OFF|ON| text}

47 Facultad Politcnica Computacin VII


Comandos de Archivo SQL*Plus

SAVE archivo
GET archivo
START archivo
@ archivo
EDIT archivo
SPOOL archivo
EXIT

48 Facultad Politcnica Computacin VII


SAVE Ejemplo
Para grabar lo retenido en el buffer
se utiliza el comando SAVE archivo.
SQL> SELECT DISTINCT id_departamento, titulo
2 FROM s_empleado;
SQL > SAVE p2

De esta forma la sentencia


seleccionada se almacena en el
archivo p2.

49 Facultad Politcnica Computacin VII


START Ejemplo
Para ejecutar el archivo p2 se utiliza
el comando START archivo.
SQL> START p2
Id_departamento Titulo
..... ....

La sentencia automaticamente es
ejecutada.
Otras opciones de ejecucin si se
dispone en el buffer /.
50 Facultad Politcnica Computacin VII
EDIT Ejemplo
Para editar el contenido de un archivo
grabado se utiliza el comando EDIT
archivo.

SQL> EDIT p2
SELECT DISTINCT id_departamento, titulo
2 FROM s_empleado;

Se accede al buffer del SQL y al archivo


propiamente dicho para modificarlo.

51 Facultad Politcnica Computacin VII


SPOOL Ejemplo
Permite generar un archivo de
impresin representado por el
despliegue de los datos.
SQL> SPOOL P.LST
SQL> SELECT DISTINCT id_departamento, titulo
2 FROM s_empleado;
......
SQL> SPOOL OFF ;

Se graba la informacin al utilizar el


comando SPOOL OFF.

52 Facultad Politcnica Computacin VII


Ayuda en linea
Obtiene ayuda en linea desde el
prompt de SQL para
SQL*Plus comandos
SQL comandos
PL/SQL comandos
SQL> HELP SELECT

53 Facultad Politcnica Computacin VII


Comando COLUMN : Sintaxis
COL[UMN] [{column|alias} [option]]

CLE[AR] Limpia formato de columna.


FOR[MAT] format Cambia el despliegue
de la columna usando un modelo de
formato.
HEA[DING] text Setea la columna con
un texto.
JUS[TIFY] {align} Alinea la columna
seteada a la izquierda centro o derecha.
54 Facultad Politcnica Computacin VII
Comando COLUMN : Ejemplos
Seteando columnas con heading
COLUMN apellido HEADING Empleado|Nombre' FORMAT A15
COLUMN salario JUSTIFY LEFT FORMAT $99,990.00
COLUMN fecha_inicio FORMAT A8 NULL No contratado'

Desplegando el seteo para la columna APELLIDO


.
COLUMN apellido

Limpiar seteos para la columna APELLIDO .


COLUMN apellido CLEAR

55 Facultad Politcnica Computacin VII


Modelos de formatos COLUMN

Tipo de datos date y caracter


AnSetea el despliegue con n. Ej. A15
Number columns
9 Cero. Supresin de dgitos.
0 Fuerza el cero.
$ Designa el signo de dolar.
. Posicin punto decimal.
, Separador de miles.

56 Facultad Politcnica Computacin VII


Comando WHERE
Despliega los datos bajo cierta condicin.
SQL> SELECT apellido, salario * 12, commision_pct
2 FROM s_empleado
3 WHERE salario * 12 > 15000

APELLIDO SALARIO*12 COMMISION_PCT


------------ ------------ --------------
...
Havel 15684
Magee 16800 10
Giljum 17880 12.5
Sedeghi 18180 10
Nguyen 18300 15
Dumas 17400 17.5
Maduro 16800
...

57 Facultad Politcnica Computacin VII


Comando ORDER BY
Permite ordenar los datos
SQL> SELECT apellido, salario * 12, commision_pct
2 FROM s_empleado
3 WHERE salario * 12 > 15000
4 ORDER BY apellido
5/

APELLIDO SALARIO*12 COMMISION_PCT


------------ ------------ --------------
...
Dumas 17400 17.5
Giljum 17880 12.5
Havel 15684
Maduro 16800
Magee 16800 10
Nguyen 18300 15
Sedeghi 18180 10
..

58 Facultad Politcnica Computacin VII


La Clusula ORDER BY (cont.)
El orden de aparicin de las filas lo da la clusula
ORDER BY.
ASC : el orden ascendente, valor por defecto.
DESC : el orden descendente.

SQL> SELECT apellido, id_departamento, fecha_inicio


2 FROM s_empleado
3 ORDER BY apellido;

59 Facultad Politcnica Computacin VII


La Clusula ORDER BY
La clusula ORDER BY es la ltima que aparece en la
sentencia SELECT

No solamente puede ordenarse por campos de la tabla,


sino tambin por expresiones o aliases.

Los valores NULL se despliegan:


oEn primera posicin en secuencias descendentes
oEn ltima posicin en secuencias ascendentes

SQL> SELECT apellido EMPLEADO, fecha_inicio


2 FROM s_empleado
3 ORDER BY EMPLEADO DESC;

60 Facultad Politcnica Computacin VII


Ordenando Mltiples Columnas
Se puede indicar la posicin del campo a ordenar, para no
volver a escribir la columna
SQL> SELECT apellido, salario * 12
2 FROM s_empleado
3 ORDER BY 2;

Se puede ordenar por mltiples columnas, en cuyo


caso, el orden colocado en la lista del Order By
indica el orden de clasificacin

SQL> SELECT apellido, id_departamento, salario


2 FROM s_empleado
3 ORDER BY id_departamento, salario DESC;

61 Facultad Politcnica Computacin VII

Вам также может понравиться