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

FACULTAD DE INGENIERIA

ESCUELA ACADMICA PROFESIONAL DE


INGENIERA DE SISTEMAS

SEMINARIO DE
ACTUALIZACIN II
SEMANA 2:
DDL. Creacin de Base de Datos Corporativas.
Oracle: Instalacin, Estructura y Configuracin.
Introduccin al diseo y manejo de Base de
Datos.
Ing. Ralph Guido Palomino Gutierrez.
Bases de Datos Oracle
Una Base de Datos Oracle (BDO) es un conjunto de archivos del sistema
operativo subyacente que contiene tanto los datos de usuario como los
datos estructurales acerca de la BDO.
Una Instancia de Oracle es el conjunto de procesos a travs de los cuales
es escrita o leda informacin de una BDO en particular.
Las propiedades de una Instancia de Oracle son establecidas a travs de
parmetros de inicializacin, guardados en archivos de configuracin que
son ledos cuando una instancia se inicia.
Cada BDO es identificada por un nombre nico denominado Oracle
System ID (SID)

Estructura de una Instancia
System
Monitor
(SMON)
Database
Writer
(DBWn)
LogWriter
(LGWR)
Process
Monitor
(PMON)
Archiver
(ARCn)
SGA
Java pool
Shared pool Large pool Streams pool
Database
buffer cache
Redo log
buffer
Checkpoint
(CKPT)
Control
files
Data
files
Redo log
files
Archive
log files
Server
process
1
PGA
Server
process
2
PGA
Background
process
PGA
PROCESOS DE LA INSTANCIA
DBWR - Database Writer, responsable de la escritura en disco de la
informacin
LGWR - Log Writter, escribe la informacin en los redo Logs.
CKPT - Checkpoint, Avisa al DBWR que debe actualizar la informacin a
disco.
PMON - Process Monitor, Supervisa los procesos del servidor y corrige
fallas
SMON - System Monitor, Actua durante el arranque de la instancia,
limpia segmentos temporales y recupera transacciones interrumpidas.
Agrupa extensiones libres.
ARCH - Archiver, Respalda la informacion de los Redo Logs cuando estos
se llenan.


AREAS DE MEMORIA DE LA INSTANCIA
SGA - System Global Area, Area de memoria compartida que
almacena informacin de control y datos de la instancia. Consta
de los siguientes elementos, cada uno con un tamao fijo:
Buffer Cache - Almacena los bloques de datos usados
recientemente.
Buffer de Redo Logs: - Guarda los cambios efectuados en la base
de datos antes de ser guardada en los redo logs.
Shared Pool Area - Memoria compartida que funciona como dos
caches, una para informacin del diccionario de datos y otra de
codigo SQL.
PGA - Program Global Area, Contiene datos e informacin de
control para los procesos que se ejecutan en el servidor de oracle.
Estructura Fsica de una BD Oracle
Una BD Oracle tiene una estructura fsica y una
estructura lgica.
La estructura fsica se corresponde a los ficheros del
sistema operativo
De datos (datafiles),
De recuperacin (redolog y archivelog), y
De control (controlfiles).
La estructura lgica est formada por:
Tablespace
Objetos de una o ms BD
tablas, vistas, ndices,...

Estructura Lgica
Una BD Oracle se divide en unidades de almacenamiento lgicas
denominadas Tablespaces.












Las Tablespaces contienen los distintos objetos de una o ms bases de
datos
Estructura Lgica
Una BD puede estar formada por uno o ms Tablespaces
Al menos siempre existe un tablespace denominado SYSTEM
Un Tablespace se compone de uno o ms ficheros de datos (datafiles)

Disco 1 Disco 2
Tablespace
SYSTEM
Tablespace de
USUARIO
Archivo1.ora Archivo2.ora Archivo3.ora
Estructura Lgica
Los Esquemas en Oracle corresponden a todos
los objetos creados por un usuario dentro de
una BDO
No existe ninguna relacin entre los esquemas
y los tablespaces.
Un esquema puede estar en uno o ms
tablespaces.

Estructura Lgica
En Oracle se gestiona el espacio de disco
mediante Estructuras Lgicas de
Almacenamiento:
Bloques de datos: corresponden al nivel de
granularidad ms fino de tamao igual a un
nmero de bytes contiguos en el disco. Su
tamao mnimo es de 2 KB y no guarda
relacin con el bloque definido por el
Sistema de Archivos.
Extensiones: espacios formados por es un
numero de bloques de datos contiguos.
Segmentos: es un conjunto de extensiones
utilizadas para almacenar utilizadas para
almacenar un objeto de la BD
Estructura Lgica
Existen varios tipos de segmentos:
Segmentos de datos
para tablas o clusters.
Segmentos de ndices
Segmentos de rollback
para poder deshacer / rehacer cambios hechos por
transacciones.
segmentos temporales.
Hay varios tipos de sentencias en las que Oracle se ve
en la obligacin de utilizar los segmentos temporales:
ordenaciones.
SELECT ... ORDER BY...
SELECT ... GROUP BY...
SELECT ... UNION ...
SELECT DISTINCT ...
Oracle va incrementando el espacio para los segmentos
mediante las extensiones.
Cuando una extensin est llena y se necesita ms espacio
se crea otra extensin, que puede no estar contigua a la
anterior en el disco.
Estructura Fsica
Archivos de Datos.
Estos archivos son de tamao fijo y se establecen cuando se crea la base de datos o cuando
crean tablespaces.
Los datos en los archivos de datos son ledos cuando se necesitan y son situados en una cach
de memoria compartida (SGA, System Global Area = 50% de la memoria principal).
Las modificaciones en los datos se guardan ante una peticin o cuando los datos son
eliminados de la SGA por falta de memoria libre para atender ms peticiones.
Archivos RedoLog
Registran todos los cambios (insert, update, delete, create, alter o drop) sobre la BD y sirven
para poder recuperar datos ante un error.
Archivos ArchiveLog
Copia de los archivos RedoLog generados hasta un momento en el que se ha consumido el
espacio reservado para los mismo.
Permiten guardar varias series de informacin de recuperacin extendiendo la capacidad de
recuperacin de datos.
Archivos de Control
Almacenan informacin de la estructura fsica de la BD.

Estructura Fsica
Estructura Fsica
CREATE DATABASE test
LOGFILE '/path/to/redo1.log' size 100M,
CHARACTER SET UTF8
DATAFILE '/path/to/system.dbf'
SIZE 500M AUTOEXTEND ON NEXT 10M
MAXSIZE UNLIMITED
DATAFILE '/path/to/sysaux.dbf' SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
UNDO TABLESPACE undotbs1
DATAFILE '/path/to/undotbs1.dbf' SIZE 100M
DEFAULT TEMPORARY TABLESPACE temp
tempfile '/path/to/temp01.dbf' SIZE 100M;
Estructura Fsica
Tablespace:
Una BD se divide en varios tablespaces, y para cada uno de ellos se
asocian uno o varios ficheros.
La capacidad total del tablespace coincidir con la suma de los
tamaos de los ficheros.
Es pues una decisin de diseo especificar cuantos Tablespace son
necesarios y cual debe de ser el tamao de los ficheros asociados.

CREATE TABLESPACE TS_DATOS
DATAFILE /path/to/fichero1.ora SIZE 100M,
DATAFILE /path/to/fichero2.ora SIZE 250M;

En este caso se crea un tablespace TS_DATOS asociado a dos ficheros
con una capacidad total de 350M.
Estructura Fsica
Tablas
Al momento de crear una tabla se debe especificar en que Tablespace
se guardara
Un decisin importante es decidir cual ser el tamao apropiado de
las extensiones que formarn parte del segmento que contiene la
tabla.
La filas se almacenan consecutivamente en el disco, para mejorar la
recuperacin de datos se debera especificar un tamao adecuado
para las extensiones de manera a:
Minimizar su nmero
Maximizar la cantidad de registros recuperados en cada lectura.
Estructura Fsica
Tablas
Los parmetros para el almacenamiento fsico de una tabla se incluyen
en la clausla STORAGE:
INITIAL: denota el tamao de la extensin inicial.
NEXT: indica el tamao de las extensiones siguientes.
MINEXTENTS: indica el numero mnimo de extensiones.
MAXEXTENTS: indica el numero mximo de extensiones.
PCTINCREASE: es un factor de crecimiento de una extensin a la siguiente.

CREATE TABLE Alumnos (...)
TABLESPACE TS_DATOS
STORAGE ( INITIAL 20K NEXT 30K
MINEXTENTS 1 MAXEXTENTS 10 PCTINCREASE 0);

En este ejemplo la tabla alumno se almacenara en una extensin
inicial de 20K, y las extensiones sucesivas sern de 30K, hasta un
mximo de 10 extensiones.
Estructura Fsica
Tablas
Las tuplas se almacenan en Oracle como registros de tamao variable. Lo cual
puede llevar casos en que una fila ocupe dos bloques.
El parmetro PCTFREE obliga a que un porcentaje del bloque quede libre para
realizar una insercin en el mismo.
Para que varias inserciones se puedan hacer sobre un mismo bloque (con el
objetivo de evitar muchos accesos al disco), se puede establecer un espacio
mnimo al que deber caer el uso de un bloque que se ha llenado previamente
antes de volver a insertar filas en el mismo. Esto se establece a travs del
parmetro PCTUSED.
CREATE TABLE Alumnos (...) TABLESPACE TS_DATOS PCTFREE 20 PCTUSED 40
STORAGE (INITIAL 20K NEXT 30K MINEXTENTS 1 MAXEXTENTS 10 PCTINCREASE 0);
En este ejemplo:
Se reservar el 20% de cada bloque para evitar encadenamientos.
Un bloque que se ha llenado previamente, no se volver a utilizar para inserciones
hasta que su porcentaje de utilizacin sea <= al 40%.
Estructura Fsica
ndices
Conviene por razones de eficiencia separar las tablas e ndices en
tablespaces que estn ubicados en discos diferentes para poder
realizar en paralelo peticiones de E/S sobre los discos. Evitar la
contencin del disco

CREATE TABLESPACE TS_INDICES
DATAFILE /disco1/indices SIZE 100M;

CREATE INDEX nom_ind ON Alumnos ( ...atributos....)
TABLESPACE TS_INDICES PCTFREE 10
STORAGE ( INITIAL 10K NEXT 10K
MINEXTENTS 1 MAXEXTENTS 10
PCTINCREASE 0);
Estructura Fsica
Cluster (agrupaciones)
Cuando dos tablas tienen atributos mediante los cuales es usual realizar
concatenaciones (joins), puede resultar ms eficiente guardar las tuplas que
se concatenan de ambas relaciones en el mismo bloque.

CREATE CLUSTER personnel ( department_number NUMBER(2) )
SIZE 2K
STORAGE (INITIAL 100K NEXT 50K);

CREATE TABLE emp (
empno NUMBER PRIMARY KEY,
ename VARCHAR2(10) NOT NULL
deptno NUMBER(2) NOT NULL
) CLUSTER personnel (deptno);

CREATE TABLE dept (
deptno NUMBER(2) PRIMARY KEY,
dname VARCHAR2(9),
loc VARCHAR2(9)
) CLUSTER personnel (deptno);

Estructura Fsica
Dispesin (Hashing)
Existe una variacin en el uso de los clusters y es el uso de dispersin.
En este caso las filas se almacenaran por el valor hash de la clave del cluster.
Si la dispersin que se implementa es esttica es necesario conocer cundo se
crea el rango de valores de la funcin de dispersin
En este momento se reserva espacio para todos los bloques del cluster y los
conflictos se resuelven mediante cubos de desborde

CREATE CLUSTER cl_1 ( clave NUMBER(4) )
SIZE 512
HASH IS clave MOD 300 HASKEY 300
TABLESPACE ts_datos PCTFREE 20
STORAGE ( INITIAL 20K NEXT 30K MINEXTENTS 1 MAXEXTENTS 10 PCTINCREASE 0);

CREATE TABLE trial (
trialno NUMBER(4) PRIMARY KEY,

) CLUSTER cl_1( trialno );

24
Instrucciones del Lenguaje de definicin de datos (DDL)
se utilizan para crear objetos en la base de datos.

Instrucciones del Lenguaje de control de datos (DCL)
se utilizan para determinar quin puede ver o modificar los
datos.

Instrucciones del Lenguaje de tratamiento de datos
(DML)
se utilizan para consultar y modificar los datos.
DDL / DCL / DML
25
Definen los objetos de la base de datos
Las instrucciones de DDL definen la base de datos mediante la creacin
de bases de datos, tablas y tipos de datos definidos por el usuario. Las
instrucciones de DDL se utilizan tambin para administrar los objetos
de la base de datos. Algunas instrucciones de DDL son:

CREATE nombreObjeto
ALTER nombreObjeto
DROP nombreObjeto

Deben tener los permisos adecuados
De forma predeterminada, slo los miembros de la funcin sysadmin,
dbcreator, db_owner o db_ddladmin pueden ejecutar instrucciones de DDL.

INSTRUCCIONES DEL LENGUAJE DE DEFINICIN
DE DATOS (DDL)
26
EJEMPLO:
La secuencia de comandos siguiente crea una tabla llamada customer en la
base de datos Northwind. Incluye las columnas cust_id, company,
contact y phone.


USE northwind
CREATE TABLE customer
(cust_id int, company varchar(40),contact varchar(30), phone char(12) )
GO
INSTRUCCIONES DEL LENGUAJE DE DEFINICIN
DE DATOS (DDL)
27
Establecer o cambiar los permisos
Las instrucciones de DCL se utilizan para cambiar los permisos asociados con
un usuario o funcin de la base de datos. En la tabla siguiente se describen las
instrucciones de DCL.
GRANT
Crea una entrada en el sistema de seguridad que permite a un usuario trabajar con datos o
ejecutar ciertas instrucciones de Transact-SQL.
DENY
Crea una entrada en el sistema de seguridad que deniega un permiso de una cuenta de
seguridad e impide que el usuario, grupo o funcin herede el permiso a travs de
su pertenencia a grupos o funciones
REVOKE
Quita un permiso concedido o denegado previamente.

Deben tener los permisos adecuados
De forma predeterminada, slo los miembros de la funcin sysadmin,
dbcreator, db_owner o db_securityadmin pueden ejecutar instrucciones
DCL.
INSTRUCCIONES DEL LENGUAJE DE CONTROL
DE DATOS (DCL)
28
EJEMPLO:
En este ejemplo se concede a la funcin public el permiso para consultar la
tabla products.

USE northwind
GRANT SELECT ON products TO public
GO
Microcomputacin II
INSTRUCCIONES DEL LENGUAJE DE CONTROL
DE DATOS (DCL)
29
Las instrucciones DML se utilizan para cambiar datos o recuperar
informacin
Las instrucciones de DML funcionan con los datos de la base de datos.
Mediante estas instrucciones puede cambiarlos o recuperar informacin.

Las instrucciones de DML incluyen:

SELECT
INSERT
UPDATE
DELETE

Deben tener los permisos adecuados
De forma predeterminada, slo los miembros de la funcin sysadmin, dbcreator,
db_owner o db_datawriter pueden ejecutar instrucciones DML.
INSTRUCCIONES DEL LENGUAJE DE TRATAMIENTO
DATOS (DML)
30
EJEMPLO:
En este ejemplo se recupera el identificador de categora,
nombre de producto, identificador de producto y
precio por unidad de los productos de la base de
datos Northwind.

USE northwind
SELECT categoryid, productname, productid, unitprice
FROM products
GO
INSTRUCCIONES DEL LENGUAJE DE TRATAMIENTO
DE DATOS (DML)
31

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