Vous êtes sur la page 1sur 37

08/04/2013

INSTALACION DE
SOFTWARE DE
BASE DE DATOS

Ing. Juan Manuel Rojas Ochante


jmrojas@outlook.com

Estructura fsica de
almacenamiento

08/04/2013

Concepto
Una de las caractersticas importantes de un
SGBD es su independencia entre la estructura
de datos lgica (tablas, vista, ndices) y la
estructura fsica.
Gracias a esta independencia, se puede
gestionar el almacenamiento fsico sin afectar
a la estructura fsica.

Archivos creados en la instalacin


Data files y temp files
Data file
Archivo fsico creado por la base de datos y contiene
estructuras de datos como tablas e indices.

Temp File
Archivo fsico para almacenar datos temporales.

08/04/2013

Archivos creados en la instalacin


Control files
Es un archivo raz que registra los componentes
fsicos de la base de datos (estructura, nombre y
ubicacin de redo log files, timestamp de
creacin, nmero de secuencia de log actual, etc)

Online Redo Log files


Es un conjunto de archivos que almacena los
cambios efectuados sobre los datos.

Diagrama general

08/04/2013

Datafiles
Los archivos de datos son el componente fsico del
concepto de espacio de tablas (tablespace); es decir
que cada los datos de los tablespaces se almacenan
fsicamente en un archivo de datos.
Ambos conceptos estn muy relaciones, pero
presentan importantes diferencias:
Cada tablespace consiste en uno o ms archivos de datos.
Los datos de la base de datos se almacenan en los
archivos.
Un segmento de datos puede estar distribuido entre uno o
mas archivos de datos.
Una base de datos debe tener siempre el tablespace
SYSTEM y SYSAUX.

08/04/2013

Control Files
El archivo de control es un archivo raz que se utiliza
para encontrar los archivos de datos y gestionar el
estado de la base de datos en general.
Contiene la siguiente informacin:
El nombre de la base de datos y el database unique
identifier (DBID)
El timestamp de creacin
Informacin acerca de los archivos de datos, online redo
log files, and redo logs archivados.
Informacin de los tablespaces
RMAN backups

Se debe crear mltiples archivos de control.

Control Files (propsito)


Almacenar informacin acerca de los archivos de
datos, online redo log files, y dems requeridos al
abrir la base de datos.
El archivo de control registra los cambios
estructurales de la base de datos, por ejemplo,
cuando un administrator agrega, renombra o elimina
un archivo de datos, la base de datos actualiza el
archivo de control para reflejar los cambios.

Contiene metadatos necesarios para acceder a la


base de datos cuando esta apagada.
Por ejemplo, el archivo de control, contiene
informacin para recuperacion de base de datos
incluyendo los checkpoints.

08/04/2013

Control Files (estructura)


La informacion acerca de la base de datos es
almacenada en diferentes secciones del
control file.
Cada seccion posee un conjunto de registros
a acerca de una caracteristca de la base de
datos.

Online redo log


Se utilizan para proteger la base de datos de
perdida de datos, especialmente luego de una
falla en la instancia.
Consiste en 2 o ms archivos, para garantizar
una disponibilidad de escritura mientras otro
archivo esta siendo archivado.
Online Redo Log Switches:
Se escribe un archivo a la vez, el proceso
encargado es el LGWR, el evento de cambiar
entre un archivo y otro es el LOG SWITCH.

08/04/2013

Online redo log

Mltiples copias de redo logs

08/04/2013

Online redo log (estructura)


Contiene registros de tipo REDO.
Un registro REDO esta conformado por un grupo de vectores de
cambios, cada uno describe un cambio en un bloque de datos.
Por ejemplo, cuando se actualiza el sueldo de la tabla empleado genera
un registro REDO que describe el cambio en el segmento de data y el
segmento UNDO de data e informacin de la tabla transaccin.

Un registro REDO tiene metadata importante del cambio,


incluyendo:
SCN y el timestamp del cambio realizado.
ID de la transaccin que gener el cambio.
SCN y el timestamp que se hizo commit a la transaccin.
Tipo de operacin realizada.
Nombre y tipo del segmento de datos modificados.

SQL FUNDAMENTALS

08/04/2013

Fundamentos de SQL
SQL es el lenguaje estndar para consultar y
modificar datos.
Se puede clasificar de la siguiente manera:
DML: Data Manipulation Language.
DDL: Data Definition Language.
Transaction Control
Session Control
System Control

Tipo de Datos (Datatypes)


Tipos de datos incorporados.

08/04/2013

OPERADORES

Operadores Aritmticos

No utilizar (--) para representar doble negacin; se deben separar


por parntesis (-(-) o un espacio en blanco entre ellos (- -).
(--) Representa el inicio de un comentario en SQL.

10

08/04/2013

Operador de Concatenacin
Este operador manipula cadenas de caracteres y datos
de tipo CLOB.

El resultado de concatenar 2 cadenas de caracteres, es


otra cadena de carcter.
Ejm. Si las 2 cadenas son CHAR, entonces el resultado
es una cadena CHAR con su limitacion de 2000
caracteres.

Precedencia de Operadores
Si existen mltiples operadores en la misma expresin, Oracle los
evala segn su orden de precedencia.
Los operadores con mayor precedencia son evaluados antes que
los de menor precedencia.
Los operadores con la misma precedencia son evaluados de
izquierda a derecha.

11

08/04/2013

LITERALES

Literales de Texto
Se deben encerrar entre comillas simples string.
Tienen propiedades de los tipos de datos CHAR y
VARCHAR2:
En las expresiones y condiciones, Oracle considera al
literal como CHAR.
Un literal puede tener un mximo de 4000 bytes.
Ejm:
'Hello
'ORACLE.dbs
'Jackie''s raincoat
'09-MAR-98'

12

08/04/2013

Literales Numricos
Integer: con longitud mxima de 38 dgitos.
543
-15
Number / Floating point:
Se puede utilizar la exponencial. (En un rango de 130 a 125):
23E-10
Si esta precedido por F, se trata de un
BINARY_FLOAT:
1.5f
Si esta precedido por D, se trata de un
BINARY_DOBLE. -43.323D

Literales de Fechas
Se puede escribir fechas utilizando literales. Segn la
especificacin ANSI.
DATE 1998-12-25
Pero esta especificacin no soporta porciones de
tiempo mas pequeas, para ello usamos la funcion
to_date().
TO_DATE('98-DEC-25 17:30','YY-MON-DD HH24:MI')
Del mismo modo sucede con los TIMESTAMP.
TIMESTAMP '1997-01-31 09:26:50.124
TO_TIMESTAMP('19-FEB-2004', 'DD-MON-YYYY'));

13

08/04/2013

CONSULTAS SIMPLES

Consulta (QUERY)
Una consulta es un pedido de informacin a
una o varias tablas de la base de datos.
Las consultas NO modifican data.
Las consultas SIMPLES slo traen datos de
solamente una tabla o vista.
SELECT * FROM jobs;

14

08/04/2013

Columnas y Alias
Para hacer la consulta mas especifica, se
puede escribir los nombres de la columnas.
SELECT job_title, min_salary FROM jobs;

Se puede modificar el titulo de la columna


agregandole un alias.
SELECT job_title AS Title, min_salary AS
Minimum Salary FROM jobs;

Asegurar la unicidad
Para poder asegurar que una fila en el resultado de
una consulta sea nica, se utiliza la palabra
reservada DISTINCT.
SELECT DISTINCT department_id FROM
employees;
SELECT DISTINCT department_id, job_id FROM
employees;

15

08/04/2013

Limitando filas
Se utiliza la clusula WHERE para limitar el nmero de
filas procesadas por la consulta.
Las filas resultantes sern las que cumplan la condicin.
Se pueden utilizar columnas de la tabla, pero no los
alias de las columnas.
SELECT first_name || || last_name Name,
department_id
FROM employees
WHERE department_id = 90;

Operadores de Comparacin

16

08/04/2013

Operadores de Comparacin

Operadores Lgicos
Cuando un operador lgico es aplicado a un NULL el resultado es
UNKNOWN.

17

08/04/2013

Otros operadores
IN / NOT IN
Este operador se utiliza para evala la condicin de
pertenencia.
IN es equivalente a =ANY.
NOT IN es equivalente a !=ALL.
SELECT first_name, last_name, department_id
FROM employees
WHERE department_id IN (10, 20, 90);

Otros operadores
BETWEEN
Se utiliza este operador para evaluar un rango.
BETWEEN X AND Z; se evala como verdadero
siempre que el valor sea mayor o igual que X y menor
o igual que Z.
SELECT first_name, last_name, salary
FROM employees
WHERE salary BETWEEN 5000 AND 6000;

18

08/04/2013

Otros operadores
EXISTS
El operador EXISTS es seguido siempre de una subquery.
Se evala como verdadero si la sub-query retorna al
menos una fila.
SELECT last_name, first_name, department_id
FROM employees e
WHERE EXISTS (select 1 FROM departments d
WHERE d.department_id = e.department_id
AND d.department_name = Administration);

Otros operadores
IS NULL / IS NOT NULL
Para conocer si un valor es NULO, se utiliza el
operador IS NULL.
El operador = no funciona para el valor NULO.
SELECT last_name, department_id
FROM employees
WHERE department_id IS NULL;

19

08/04/2013

Otros operadores
LIKE
Es utilizado para validar una coincidencia con un
patrn:
% : Representa 0 o muchos caracteres.
_ : Representa 1 carcter.
ESCAPE clause: Se utiliza para interpretar literalmente el
carcter.

Ordenamiento de Filas
Se utiliza la clusula ORDER BY:

SELECT first_name || || last_name Employee Name


FROM employees
WHERE department_id = 90
ORDER BY last_name;

Cuando no se
especifica el
modo de
ordenacin, por
defecto toma el
modo
ascendente.

20

08/04/2013

Clusula ORDER BY
Se puede especificar mltiples columnas en la
clausula ORDER BY.
Se puede especificar la columna tanto por su
nombre, su alias o su posicin.
Por defecto, en un ordenamiento ascendente
los valores NULL aparecern al final, y
viceversa.
El comportamiento de los valores NULL pueden
alterarse con la clausula NULL FIRST/LAST.

EXPRESIONES

21

08/04/2013

Expresin
Una expresin es la combinacin de uno o
mas valores, operadores y funciones SQL que
resultan en un valor.
El resultado de una expresin tiene el mismo
tipo de dato que sus componentes.
Pueden aparecer en las clusulas SELECT,
WHERE, entre otras.

Expresin CASE
Permite utilizar la lgica IF Y THEN Y ELSE,
en una sentencia SQL.
Posee la siguiente sintaxis:

El mximo numero de argumentos es 255.

22

08/04/2013

Expresin CASE
SELECT country_name, region_id,
CASE region_id WHEN 1 THEN Europe
WHEN 2 THEN America
WHEN 3 THEN Asia
ELSE Other END Continent
FROM countries
WHERE country_name LIKE I%;

SQL*PLUS

23

08/04/2013

SQL*PLUS
Es una herramienta basada en lnea de
comandos.
Permite manejar la data y administrar la base
de datos.

DDL

24

08/04/2013

Objetos de la base de datos


OBJETO

DESCRIPCIN

Tabla

Unidad bsica de almacenamiento, compuesta


de filas y columnas. Pueden ser creadas en
cualquier momento, no se necesita definir el
tamao del almacenamiento (se recomienda) y
su estructura se puede redefinir en lnea.

Vista

Representacin lgica de un subconjunto de


datos de una o ms tablas

Secuencia

Generador de valores numricos

ndice

Mejora el rendimiento de algunas consultas

Sinnimo

Nombre alternativo de los objetos de una base


de datos

Otros

Procedimientos, funciones, disparadores,


clusters, enlaces a bases de datos y dems

La sentencia CREATE TABLE


CREATE TABLE [Esquema.]Tabla (
Columna1 TipoDeDato [DEFAULT Expresin]
[, Columna2 Y]
);

El usuario debe tener el privilegio de CREATE TABLE. Se


asigna con una sentencia DCL
El usuario debe tener espacio de almacenamiento
El usuario debe especificar el nombre de la tabla y de las
columnas segn las reglas anteriormente descritas. Esta
sentencia es DDL
Esquema: Es el nombre del usuario que ser dueo de la tabla
DEFAULT Expresin: Define el valor por defecto que se
almacena en la columna

25

08/04/2013

Referenciando tablas de otro


usuario
SELECT *
FROM [Esquema.]Tabla
Las tablas creadas por otros usuarios, estn
fuera del esquema de un usuario
Para tener acceso a ellas se necesita anteponer
al nombre de la tabla el nombre del
usuario/esquema
Un esquema es una coleccin de objetos

La opcin DEFAULT
Especifica un valor por defecto para una columna
durante una insercin, por ejemplo:
Y Emp_FechaContrato DATE DEFAULT SYSDATE,

El valor por defecto puede ser un literal, una expresin o


una funcin SQL (por ejemplo SYSDATE, USER)
Como valores por defecto No se pueden usar los
nombres de otras columnas o seudo-columnas (por
ejemplo ROWID, NEXTVAL, CURRVAL)
El tipo de dato del valor por defecto debe concordar con
el tipo de dato de la columna

26

08/04/2013

Creando tablas
Debido a que CREATE TABLE es una sentencia DDL se
realiza un COMMIT automtico

Tipos de tablas en una base de datos Oracle


Tablas de usuario
Son las tablas creadas y mantenidas por un usuario
Contienen informacin de una aplicacin del usuario
(o de un conjunto de usuarios)

Tablas del diccionario de datos


Son las tablas creadas y mantenidas por el servidor
de bases de datos Oracle
Contienen informacin propia de la base de datos
El dueo de estas tablas es el usuario SYS
Normalmente se consultan a travs de vistas

27

08/04/2013

Tablas del diccionario de datos


PREFIJO

DESCRIPCIN

USER_

Muestran informacin de los objetos que son del


usuario/esquema actual

ALL_

Muestran informacin de los objetos que el usuario


actual puede acceder

DBA_

Muestran informacin de todo el Servidor Oracle y slo


las pueden acceder los usuarios que tienen el role de
DBA

V$

Muestran informacin de rendimiento del servidor de la


base de datos, el uso de la memoria y los candados
utilizados por la instancia

Uso del diccionario de datos

28

08/04/2013

Uso del diccionario de datos


La vista User_Catalog
tiene un sinnimo que
se llama CAT
SELECT *
FROM

CAT;

Tipos de datos
TIPO DE DATO

DESCRIPCIN

VARCHAR2 (Tamao)

Carcter de longitud variable mximo 4000

CHAR [(Tamao)]

Carcter de longitud fija mximo 2000

NUMBER [(Precisin, escala)]

Numrico de longitud variable. La precisin (de


1 a 38) es el nmero total de dgitos y la
escala (-84 a 127) los dgitos al lado derecho
del punto decimal

DATE

Valores fechas y horas

LONG

Carcter de longitud variable mximo de 2 GB.


No se puede copiar cuando una tabla es
creada con una subconsulta. Una columna con
este tipo de dato no se puede usar en una
clusula GROUP BY y ORDER BY. Slo una
columna por tabla. No se le pueden definir
restricciones. Es mejor usar CLOB

29

08/04/2013

Tipos de datos
TIPO DE DATO

DESCRIPCIN

CLOB

Caracteres mximo de 4 GB

RAW (Tamao)

Binarios sin formato mximo de 2000 bytes

LONG RAW

Binarios sin formato de longitud variable


mximo de 2 GB

BLOB

Binarios hasta de 4 GB

BFILE

Binarios almacenados en un archivo externo


con tamao mximo de 4 GB

ROWID

Sarta hexadecimal que representa la direccin


nica de una fila en la tabla. Este tipo de dato
se usa principalmente con la seudo-columna
ROWID

Tipos de datos
TIPO DE DATO

DESCRIPCIN

TIMESTAMP [(precisin)]

Desde aos hasta fracciones de segundo.


Existen algunas variaciones que tienen en
cuenta la zona horaria. La precisin (de 0 a 9 y
por defecto 6) indica cuantos dgitos se van a
tomar para las fracciones de segundo
TIMESTAMP [(precisin)] WITH TIME ZONE
TIMESTAMP [(precisin)] WITH LOCAL TIME ZONE

INTERVAL YEAR
[(precisin_ao)] TO MONTH

Almacena intervalos de fecha tomando aos y


meses. La precisin_ao por defecto es 2

INTERVAL DAY [(precisin_da)] Almacena intervalos de fecha tomando das,


TO SECOND
horas, minutos y segundos. La precisin_da
[(precisin_fraccin)]
por defecto es 2 y acepta valores de 0 a 9. La
precisin_fraccin por defecto es 6 y acepta
valores de 0 a 9.

30

08/04/2013

Uso de TIMESTAMP
SYSDATE retorna
fecha y hora pero no
fraccin
El campo TIMESTAMP
no maneja zona horaria

Uso de TIMESTAMP WITH TIME ZONE


TIMESTAMP WITH TIME ZONE
almacena adems el
desplazamiento, es decir la hora
en relacin con el meridiano
Greenwich (UTC, Coordinated
Universal Time )
En el ejemplo, la hora se
almacen con la zona horaria de
Bogot (UTC -5)

31

08/04/2013

Uso de TIMESTAMP WITH LOCAL TIME ZONE


TIMESTAMP WITH LOCAL TIME
ZONE almacena la hora en
relacin a la zona horaria del
servidor Oracle
El desplazamiento NO se
almacena en la columna
Cuando el usuario consulta el
dato se muestra con relacin a la
zona horaria de la sesin local del
usuario (sin mostrar
desplazamiento)

Uso de INTERVAL YEAR TO


MONTH
Se pueden definir aos
y meses
Se pueden definir slo
aos
Se pueden definir slo
meses
60 meses son 5 aos

32

08/04/2013

Crear tablas con subconsultas


CREATE TABLE [Esquema.]Tabla [(
Columna1, Columna2, Y )]
AS SubConsulta;

Permite crear una tabla e insertar las filas que cumplen


con la condicin de la subconsulta
La definicin de las columnas slo puede tener el nombre
y los valores por defecto
Debe existir una correspondencia entre las columnas de la
tabla y la lista de columnas de la clusula SELECT de la
subconsulta
Si no se definen las columnas, los nombres que se toman
son los de la clusula SELECT
Las restricciones de integridad no se crean en la nueva
tabla slo los tipos de datos (excepto NOT NULL)

Crear tablas con subconsultas

33

08/04/2013

La sentencia ALTER TABLE


Sirve para:
Adicionar una nueva
columna
Modificar una columna
existente
Definir un valor por
defecto a una columna
Establecer una columna
como no usada
Borrar una columna
Borrar las columnas que
estn marcadas como no
usadas

Uso de la sentencia ALTER TABLE


No se puede especificar en que
orden aparece la nueva columna.
La nueva columna queda al final
Se recomienda que las columnas
con valores NULL queden al final
Si la tabla tiene filas, la nueva
columna quedara con valores NULL
(o el valor por defecto de la
columna) para todas las filas
El cambio en el valor por defecto
slo afecta las filas que se insertan
posteriormente, NO las existentes
Slo se puede borrar una columna
a la vez, a menos que se use
DROP UNUSED COLUMNS
Al intentar borrar la columna, la
tabla debe quedar con una columna
como mnimo
Una columna que se borra no se
puede recuperar (slo con copias
de seguridad)

34

08/04/2013

Uso de la sentencia ALTER TABLE


A una columna se le puede
modificar el tipo de dato, el tamao
y el valor por defecto
Se puede incrementar el tamao
(precisin) de columnas numricas
y caracteres
Se puede decrementar el tamao
de una columna si la tabla no tiene
filas o todos los valores son NULL
Se puede cambiar el tipo de dato
slo si todos los valores son NULL
Se puede convertir de CHAR a
VARCHAR2 slo si todos los
valores son NULL o si no se cambia
el tamao
Cuando se fija una columna
UNUSED se saca de uso pero no
se borra. Esta sentencia es ms
rpida
El comando DESCRIBE no muestra
las columnas marcadas como
UNUSED

Borrar una Tabla


DROP TABLE [Esquema.]Tabla [CASCADE CONSTRAINT];
Cuando se borra una tabla:
Todos los datos se eliminan
La estructura de la tabla se elimina (la informacin registrada en
el diccionario de datos)
Todas las transacciones pendientes sobre la tabla se
comprometen
Todos los ndices de la tabla se eliminan
Las vistas y sinnimos que referencian la tabla permanecen pero
se invalidan
Se realiza un commit automtico

Esta operacin no se puede deshacer


Slo el creador de la tabla o un usuario con el privilegio
DROP ANY TABLE puede ejecutar la sentencia con xito

35

08/04/2013

Cambiar el nombre de una tabla


RENAME NombreTabla TO NombreNuevoTabla;

El comando RENAME sirve para cambiar el


nombre de una tabla, vista, secuencia o
sinnimo
Para que el comando tenga xito el usuario
debe ser el dueo del objeto

Truncar una tabla


TRUNCATE TABLE [Esquema.]Tabla
[DROP | REUSE] STORAGE;
Cuando se trunca una tabla:
Todos los datos se eliminan y los datos de los ndices
Se libera el espacio de almacenamiento usado por la tabla a menos que se
REUSE

Esta sentencia es DDL (NO DML) por eso realiza commit automtico
Es diferente a la sentencia DELETE porque:
Es ms rpida y no genera informacin de rollback
No se ejecutan los disparadores que tenga la tabla
Si la tabla es padre en una restriccin de integridad, no se puede ejecutar la
sentencia TRUNCATE, primero se debe deshabilitar la restriccin

36

08/04/2013

Adicionando comentarios a una


tabla
COMMENT ON [ TABLE [Esquema.]Tabla |
COLUMN [Esquema.]Tabla.Columna ]
IS Comentario;

La sentencia COMMENT permite agregar un


comentario a una tabla o a una columna,
almacenndolo en el diccionario de datos.
Estos comentarios se consultan a travs de:
ALL_COL_COMMENTS
USER_COL_COMMENTS
ALL_TAB_COMMENTS
USER_TAB_COMMENTS

Para quitar el comentario se aplica

Gracias!
Referencias:
http://www.oracle.com/pls/db112/homepage
http://oracleyyo.com

37

Vous aimerez peut-être aussi