Presentacin de PowerPoint - PowerPoint PPT Presentation

1 / 33
About This Presentation
Title:

Presentacin de PowerPoint

Description:

NOTA: para utilizar SET NULL, la clave ajena ha de permitir valor nulo ... test de valor nulo: expr IS [NOT] NULL. test de semejanza: ... – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 34
Provided by: Departamen170
Category:

less

Transcript and Presenter's Notes

Title: Presentacin de PowerPoint


1
Práctica 2 Bases de Datos
2.1 Introducción a ORACLE 2.2 Lenguajes del SQL
2
Práctica 2.1 Introducción a ORACLE
  • Sistema Gestor de Bases de Datos Relacionales
    (SGBDR), que maneja distintos tipos de datos
  • Tradicionales como INTEGER, VARCHAR2, DATE, ...,
    etc.
  • Nuevos y complejos imágenes, docs, mapas, video,
    audio, ..., etc.
  • Entorno multiusuario (Cliente/Servidor).

ficheros
servidor ORACLE
Arquitectura Lógica
cliente ORACLE
Arquitectura Comunicaciones
3
Práctica 2.1 ORACLE y su SQL
  • ORACLE Sistema Gestor de Base de Datos
    Relacional
  • Versátil
  • Probada eficiencia y escalabilidad
  • Amplia difusión
  • Basado en el lenguaje de datos PL/SQL (extensión
    de SQL)
  • SQL-PLUS herramienta interfaz de Oracle
  • permite conectarse al Servidor Oracle
  • envía sentencias SQL para su ejecución y muestra
    los resultados
  • contiene su propio lenguaje de comandos (locales)
  • permite la ejecución de scripts
  • script fichero de texto que contiene un conjunto
    de sentencias SQL

4
Práctica 2.1 Introducción al SQL
Identificación de Usuario
  • Una máquina con el Sw cliente de Oracle tendrá el
    SQL
  • y los archivos de configuración que
    posibilitan la conexión
  • Al arrancar el SQL, la primera operación será la
    conexión
  • Para ello, SQL solicitará al usuario
  • nombre
  • contraseña
  • cadena de conexión
  • (identificación servidor)

5
Práctica 2.1 Introducción al SQL Cambio
de Contraseña
6
Práctica 2.1 Introducción al SQL
  • Permite introducir una sentencia SQL.
  • Tiene un buffer que almacena la última sentencia
    ejecutada
  • Proporciona un editor de línea para modificar el
    buffer
  • (para modificar y volver a ejecutar la
    última sentencia)
  • También permite la ejecución de scripts (ficheros
    .sql)
  • Formatea los resultados de las consultas en
    informes básicos

7
Práctica 2.1 Introducción al SQL Comandos
SQL (I)
  • Comandos de sesión
  • connect username/password_at_cadena de
    conexión conectar a un servidor
  • disconnect termina conexión actual
  • quit / exit salir (termina conexión y sesión)
  • host devuelve el control al S.O. (vuelve con
    EXIT)

8
Práctica 2.1 Introducción al SQL Comandos
SQL (II)
  • Operaciones con el Buffer
  • Ed invoca al editor
  • R Run ejecuta el contenido del buffer
  • L List lista el contenido del buffer
    (completo)
  • L n L n m ...
  • lista el contenido de las líneas que se
    especifican.

9
Práctica 2.1 Introducción al SQL Comandos
SQL (III)
  • Operaciones con el texto del Buffer
  • A Append texto
  • concatena el texto a la última línea del
    buffer
  • Input texto
  • inserta nuevas líneas a continuación de la
    línea activa
  • Del Delete borra la línea activa
  • C Change txt antiguo txt nuevo
  • cambia el texto antiguo por el nuevo

10
Práctica 2.1 Introducción al SQL Comandos
SQL (IV)
  • Operaciones con ficheros
  • Ed ltficherogt edita el fichero
  • Start _at_ ltficherogt ejecuta un fichero .sql
  • Get ltficherogt introduce el fichero en el buffer
    sin ejecutarlo
  • Save ltficherogt guarda el contenido del buffer
    en el fichero
  • Save ltficherogt append
  • guarda el buffer en el fichero
    concatenándolo con lo que ya tenía

11
Práctica 2.1 Introducción al SQL Comandos
SQL (V)
  • Operaciones de spooling
  • Spool ltficherogt arranca el spooling
  • (todo lo que aparece por pantalla se
    guardará en el fichero)
  • Spool muestra el nombre del fichero de salida.
  • Spool off desactiva el spool.
  • Spool out desactiva el spool y manda imprimir
    el fichero.

12
Práctica 2.1 Descripción Relacional
  • Dos Pasos
  • Diseño sobre el papel, se realizará el diseño de
    un esquema relacional que atienda a las
    necesidades descritas en el enunciado. Se
    representará mediante un Grafo Relacional.
  • Implementación mediante un editor de textos
    (notepad) se creará un fichero con una secuencia
    de comandos (script) destinada a crear todas las
    tablas necesarias (según cada diseño). Este
    script de creación se ejecutará desde SQL.
  • no es posible crear una tabla dos veces, y por
    ello es conveniente encabezar el script con la
    destrucción (drop) de cada tabla. De este modo,
    se podrá ejecutar el script varias veces (para
    hacer pruebas).

13
Práctica 2.2 Lenguajes del SQL
  • Instrucciones del Lenguaje SQL divididas en
    dos tipos
  • para la definición de los objetos Lenguaje de
    Definición de Datos
  • para el manejo de la información Lenguaje de
    Manipulación de Datos
  • Ambos conjuntos son completamente distintos
    propósito, acciones, ...

L D D
L M D
LCD
creación supresión alteración
inserción borrado modificación
datos
actualización
objetos
usuarios, sesión, ...
recuperación
definición
manejo
control
14
Práctica 2.2 Lenguaje Definición Elementos
  • Sus acciones buscan definir la semántica del
    esquema
  • relacional qué relaciones hay y cómo son,
    cuáles son
  • sus dominios, cuáles las asociaciones,
    restricciones, etc.
  • Tres acciones básicas creación, supresión,
    alteración
  • Tres instrucciones básicas CREATE, DROP, ALTER
  • Aplicables a una amplia gama de elementos
  • esquemas, tablas, vistas, índices, ...
  • aserciones, dominios,... secuenciales,
  • Estos objetos no existen en todas las
    implementaciones

15
Práctica 2.2 Lenguaje Definición Notación
  • Para definir las cláusulas del lenguaje,
    utilizaremos una de las notaciones más empleadas
    en la especificaciones de este tipo la Forma
    Normal de Backus (extendida)
  • Símbolos

ETIQUETA símbolos terminales del lenguaje lt
gt símbolos no terminales del lenguaje operador
de definición elementos opcionales
agrupación de elementos alternativa ... repe
tición
16
Práctica 2.2 Lenguaje Definición Creación
de Tablas
CREATE TEMPORARY TABLE ltnombregt ( ltelemento
de tablagt , ltelemento de tablagt ...
) ltelemento de tablagt ltdef_columnagt
ltrestricción_tablagt ltdef_columnagt ltnombregt
lttipo_datosgtdominio SET DEFAULT
ltvalorgt CONSTRAINT ltnombregt
ltrestriccióngt ltretricción tablagt
CONSTRAINT ltnombregt ltrestriccióngt
17
Práctica 2.2 Lenguaje Definición
Restricciones
  • definición clave primaria PRIMARY KEY
  • unicidad (clave alternativa) UNIQUE
  • existencia NOT NULL
  • Ejemplos en ORACLE

CREATE TABLE gente (DNI CHAR(8) PRIMARY KEY,
Nombre VARCHAR(20) UNIQUE NOT NULL, Apellidos
VARCHAR (20) UNIQUE NOT NULL) CREATE TABLE gente
(DNI CHAR(8), Nombre VARCHAR2(20) NOT NULL,
Apellidos VARCHAR2(20) NOT NULL, PRIMARY KEY
(DNI), UNIQUE (Nombre,Apellidos) )
18
Práctica 2.2 Lenguaje Definición
Interrelaciones
  • Se especifican mediante referencias (clave
    ajenas)
  • clave ajena se define como una restricción más
    (a nivel de columna o de tabla)
  • FOREIGN KEY (ltcolumnasgt)
  • REFERENCES TO ltnombre_tablagt (ltcolumnasgt)
  • ON DELETE ltaccióngt
  • ON UPDATE ltaccióngt
  • acciones referenciales implementan las Reglas
    de Integridad del modelo
  • CASCADE SET NULL SET DEFAULT RESTRICT
  • NOTA para utilizar SET NULL, la clave ajena
    ha de permitir valor nulo
  • para SET DEFAULT, la clave ajena ha de tener
    un valor por defecto

19
Práctica 2.2 Lenguaje Definición
Interrelaciones
  • Para el caso de implementaciones en Oracle, las
    reglas de integridad quedan reducidas a las
    siguientes
  • Para ON DELETE CASCADE, SET NULL y RESTRICT.
    Cuando se quiera indicar un borrado de tipo
    RESTRICT, no se deberá poner nada en la sentencia
    de creación de tabla, ya que el es borrado por
    defecto de Oracle.
  • Para ON CASCADE Solo permite el tipo RESTRICT,
    y puesto que es el por defecto, no habrá que
    indicar nada en la sentencia de creación de
    tabla.
  • NOTA si en la práctica se necesitara un tipo de
    borrado o actualización no contemplado por
    Oracle, se indicaría en la memoria tal necesidad
    y se pondría uno de los si contemplados.

20
Práctica 2.2 Lenguaje Definición
Ejemplo de creación de tabla
CREATE TABLE Clientes (DNI CHAR(8) PRIMARY KEY,
Nombre VARCHAR(20) UNIQUE NOT NULL, Apellidos
VARCHAR (20) UNIQUE NOT NULL) CREATE TABLE
Coches ( Matricula CHAR(8) PRIMARY KEY, Precio
NUMERIC(20,2), Color CHAR(12), DNI_cliente
CHAR(8), FOREIGN KEY (DNI_cliente)
REFERENCES Clientes (DNI) ON DELETE CASCADE)
  • Consulta de la descripción de una tabla
    creada
  • DESC lttablagt

21
Práctica 2.2 Lenguaje Definición
Suprimir y Modificar
  • DROP instrucción para el borrado de un elemento
  • DROP ltelementogt ltnombregt
  • Atención es peligrosa, ya que no tiene marcha
    atrás.
  • ALTER instrucción para la modificación de un
    elemento
  • ALTER ltelementogt ltnombregt
  • ADDALTERDROP ltelementogt ltdefinicióngt

Ejemplos en ORACLE
DROP TABLE Gente ALTER TABLE Gente ADD (Edad
NUMBER(2)) ALTER TABLE Gente ADD (Capital
NUMERIC(30,2)) ALTER TABLE Gente ADD CONSTRAINT
Matusalen CHECK (Edadlt100) ALTER TABLE Gente
DROP CONSTRAINT Matusalen
22
Práctica 2.2 Lenguaje Manipulación
  • Sus instrucciones constan de LOCALIZACIÓN
    ACCIÓN
  • Dos tipos de instrucciones recuperación y
    actualización
  • Acciones de actualización inserción, borrado,
    modificación
  • Tres instrucciones INSERT, DELETE, UPDATE
  • Acción de recuperación selección
  • Instrucciones SELECT

23
Práctica 2.2 Lenguaje Manipulación
Inserción de tuplas
  • INSERT INTO lttablagt
  • (ltcolumnagt ,ltcolumnagt)
  • VALUES(ltexpresióngt ,ltexpresióngt)
  • ltsubquerygt
  • Ejemplos
  • INSERT INTO stock VALUES(turrón,299,AG-23)
  • INSERT INTO stock (nombre,cod_barras)
  • VALUES(turrón,AG-23)
  • INSERT INTO stock (nombre,precio,cod_barras)
  • SELECT (name, pricechange, barcode)
  • FROM products, euro_cot
  • WHERE euro_cot.namepeseta

24
Práctica 2.2 Lenguaje Manipulación
Borrado y Modificación
  • DELETE FROM lttablagt ltaliasgt
  • WHERE ltcondicióngt
  • Ejemplos
  • DELETE stocks
  • DELETE FROM stocks WHERE f_caducidadltSYSDATE
  • UPDATE lttablagt SET
  • ltcolumnagt ltexpresióngtltsubquerygt
  • (ltcolumnagt ,ltcolumnagt)ltsubquerygt
  • WHERE ltcondicióngt
  • Ejemplos
  • UPDATE gente SET edad25 WHERE nombreJavi
  • UPDATE stock a SET precio
  • SELECT a.preciob.change FROM euro_cot b
  • WHERE b.namepeseta

25
Práctica 2.2 Lenguaje de Control Control
Transaccional
  • En Oracle, los cambios que se operan sobre el
    contenido de la Base se realizan sobre
    transacciones
  • Una transacción es un conjunto de operaciones que
    se ejecutan conjuntamente sobre la Base
  • Al actualizar la Base, los cambios sólo tendrán
    lugar si se perpetra la transacción (en otro
    caso, se pierden)
  • Para que una transacción se perpetre COMMIT
  • Para que una transacción se elimine ROLLBACK
  • (este comando puede asemejarse a una operación
    deshacer)

26
Práctica 2.2 Lenguaje Manipulación
Consulta la sentencia SELECT
  • SELECT ALLDISTINCT ltlista de seleccióngt
  • FROM ltcláusula de origengt
  • WHERE ltcondicióngt
  • GROUP BY ltexpresióngt HAVING ltcondcngt
  • UNIONUNION ALLMINUSINTERSECT ltquerygt
  • ORDER BY ltexpresióngt ASCDESC
  • La cláusula FROM crea una tabla resultado
    (denominada área de trabajo)
  • La cláusula WHERE filtra las tuplas de esa
    tabla (según una condición)
  • La lista de selección describe qué información
    se desea obtener (proyección)
  • La cláusula ORDER BY ordena los resultados (según
    una clave de ordenación)
  • Los operadores de consulta (UNION,...) combinan
    consultas (compatibles)
  • y la cláusula GROUP BY...

27
Práctica 2.2 Sentencia SELECT Cláusula FROM
  • La cláusula from contiene una tabla (con o
    sin alias), o varias
  • tablas combinadas. Las combinaciones se
    revisan a continuación
  • Producto Cartesiano
  • ... FROM Gente CROSS JOIN Clientes ? FROM
    Gente, Clientes
  • Combinación natural
  • ... FROM Gente NATURAL JOIN Clientes
  • USING ltcolumnasgt ON ltcol_agtltcol_bgt AND...
  • ... FROM X NATURAL JOIN Y...
  • Combinación Natural por todos los campos que se
    llamen igual en ambos esquemas
  • ... FROM X NATURAL JOIN Y USING (ltcolumnasgt)...
  • Combinación Natural por los campos especificados,
    que han de llamarse igual en ambas tablas
  • ... FROM X JOIN Clientes ON ltcondicióngt...
  • Combinación por la condición especificada (puede
    ser natural, si es de igualdad)

28
Práctica 2.2 Lenguaje Manipulación
Consulta la sentencia SELECT
  • ltlista de seleccióngt Proyección de la Consulta
  • Se trata de una lista con las informaciones que
    se desea obtener
  • Los elementos de la lista vendrán separados por
    comas.
  • Ha de ser posible obtenerlas del área de trabajo
    (from).
  • Puede incluir
  • atributos del esquema de relación del área de
    trabajo, o el comodín ()
  • variables del sistema, como por ejemplo SYSDATE
  • pseudo-columnas, tal como por ejemplo ROWNUM,
    table.ROWID,...
  • funciones de agregación, si se ha establecido
    criterio de agrupación
  • expresiones construidas a partir de lo anterior

29
Práctica 2.2 Sentencia SELECT Cláusula WHERE
  • Selecciona tuplas siguiendo una condición, que
    puede ser
  • una comparación (, !, lt, gt, lt, gt) de
    expresiones
  • pueden ser listas de expresiones o una subquery
  • la segunda puede ir cuantificada (SOME, ANY,
    ALL)
  • test de inclusión (en conjunto o subquery)
  • ltexprgt NOT IN ltexpr_listgtsubquery
  • test de inclusión (en rango)
  • ltexprgt NOT BETWEEN ltexprgt AND ltexprgt
  • test de valor nulo
  • ltexprgt IS NOT NULL
  • test de semejanza
  • ltexpr_caracteresgt NOT LIKE ltpatróngt
  • test de existencia
  • EXISTS subquery
  • operación lógica (NOT, AND, OR) sobre otras
    condiciones

30
Práctica 2.2 Sentencia SELECT Ejemplos
  • SELECT FROM EMPLEADOS
  • SELECT SYSDATE FROM DUAL
  • SELECT COUNT(X) FROM FACTURAS
  • SELECT rownum, nombre FROM ALUMNOS
  • SELECT FROM LIBROS
  • MINUS
  • SELECT FROM NOVELAS
  • SELECT FROM PERSONAS JOIN COCHES
  • SELECT
  • FROM PERSONAS p, COCHES c
  • WHERE p.DNIc.DNI
  • SELECT marca, modelo
  • FROM COCHES
  • WHERE precio lt 10000000

31
Práctica 2.2 Sentencia SELECT ÁREA de TRABAJO
  • El área de trabajo es una tabla que el gestor
    crea para operar.
  • Es una tabla temporal, y después de la consulta
    será destruida.
  • Introducirá en ella las tuplas de las tablas en
    la cláusula FROM
  • y excluyendo aquellas que no verifican la
    cláusula WHERE
  • y de la que se podrán proyectar cualesquiera
    atributos que contenga
  • Dado que es una tabla, se podrá utilizar a su
    vez en una cláusula
  • FROM de una consulta superior (anidando
    consultas en el
  • origen, como se hace en Álgebra Relacional)

SELECT A.Nombre, A.Apellidos, B.edad FROM
PERSONAS A NATURAL JOIN (SELECT MAX(edad)
edad FROM PERSONAS) B WHERE equipoATLETI
32
Práctica 2.2 Sentencia SELECT Cláusula GROUP
BY
  • La operación de agrupamiento
  • - comienza como una consulta normal, creando
    un área de trabajo
  • sobre unas tablas (FROM), excluyendo según un
    criterio (WHERE)
  • se creará una primera área de trabajo con un
    conjunto de tuplas
  • - agrupa las tuplas originales en
    subconjuntos (según un criterio)
  • - crea una nueva área de trabajo, con una
    tupla por cada subconjunto
  • - puede excluir tuplas de esta segunda área
    de trabajo siguiendo un
  • criterio para el área agrupada (HAVING)
  • De esta área sólo se podrán proyectar
  • atributos pertenecientes al criterio (expresión)
    de agrupamiento
  • funciones de agregación sobre cualquier otro
    atributo
  • pseudocolumnas, variables, constantes, etc.

33
Práctica 2.2 Sentencia SELECT Cláusula GROUP
BY
GROUP BY ltexpresióngt HAVING ltcondicióngt
  • La expresión de agrupamiento es ese criterio
    para hacer subconjuntos
  • La cláusula HAVING excluye subconjuntos que no
    cumplan la condición
  • Ejemplo

SELECT color,COUNT(X),MAX(talla),MIN(talla),AVG(
precio) FROM CAMISAS WHERE tejidoALGODON GRO
UP BY color HAVING COUNT(X)gt5 AND rownumlt10
Write a Comment
User Comments (0)
About PowerShow.com