SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Downloaden Sie, um offline zu lesen
Estructura de una BD Oracle.
Una BD Oracle tiene una estructura física y una estructura lógica que se
mantienen separadamente.
• La estructura física se corresponde a los ficheros del sistema operativo: de
datos (datafiles), de redo log y de control (controlfiles).
• La estructura lógica está formada por los tablespace y los objetos de un
esquema de BD (tablas, vistas, índices,...).
Estructura lógica.
Una BD se divide en unidades de almacenamiento lógicas: Tablespaces.
Contienen distintos objetos relacionados (p.ej. todas las tablas de una aplicación).
Cada BD estará formada por uno o mas
tablespaces (al menos existe el
tablespace SYSTEM catálogo del
sistema).
Cada tablespace se corresponde con uno o
más ficheros de datos.
Objetos: tablas, vistas, índices asociados
a una tabla, clusters, ...
Oracle define esquema como la colección de objetos o estructuras lógicas que
corresponden directamente a los datos almacenados, y crea un nuevo esquema por
cada usuario que crea objetos en la base de datos.
No hay ninguna relación directa entre tablespace y esquema, objetos del mismo
esquema pueden estar en diferentes tablespaces y un mismo tablespace puede
almacenar distintos esquemas.
El control del uso del espacio del disco se
obtiene mediante las estructuras lógicas de
almacenamiento: bloque de datos, extensión y
segmento.
El nivel más pequeño de granularidad es el del
bloque de datos: número específico de bytes
contiguos de espacio físico en el disco.
(tamaño mínimo de 2K, el bloque físico del
disco y que depende el sistema operativo no
tiene por que coincidir con éste).
El siguiente nivel es el de extensión, que es un
número específico de bloques de datos
contiguos en el disco.
Por último el segmento es un conjunto de
extensiones utilizadas para almacenar alguna
estructura lógica.
Tendremos segmentos de datos para tablas o clusters, segmentos de índices
para índices, segmentos de rollback para poder deshacer / rehacer cambios por
transacciones y segmentos temporales.
Hay varios tipos de sentencias en las que Oracle se ve en la obligación de utilizar
los segmentos temporales: ordenaciones.
SELECT ... ORDER BY...
CREATE INDEX.
SELECT ... GROUP BY...
SELECT ... UNION ...
SELECT DISTINCT ...
SELECT … INSERSEC ...
SELECT ... MINUS ...
Oracle va incrementando el espacio para los segmentos mediante extensiones.
Cuando una extensión está llena y necesita más espacio el sistema busca otra
extensión, que podrá estar o no estar contigua a la anterior en el disco (dependerá
simplemente del estado de éste).
Estructura física
Una B.D. tiene uno o más ficheros de datos. Estos ficheros son de tamaño fijo y
se establecen en el momento en que se crea la base de datos o en el momento en el
que se crean tablespaces.
Los datos del fichero de datos son leídos cuando se necesitan y situados en una
caché de memoria compartida (llamada SGA, System Global Area:
db_block_buffers; recomendable tamaño SGA = 50% de la memoria principal) para
que el próximo acceso a los mismos sea más rápido.
Las modificaciones en los datos se guardan ante una petición o cuando los datos
son eliminados de la SGA por falta de memoria libre para atender más peticiones.
El conjunto de ficheros redo log sirven para registrar todos los cambios (insert,
update, delete, create, alter o drop) sobre la BD y poder recuperarla ante un
error.
Los ficheros de control almacenan información de la estructura física de la BD.
Los distintos elementos que forman parte del entorno de memoria de Oracle :
SGA: System Global Area o Shared Global Area.
Zona principal de la memoria de Oracle. Está dividida en varias subareas
desempeñando cada una de estas una tarea totalmente distinta: la Shared Pool, la
Database Buffer Cache (parámetro DB_BLOCK_BUFFERS) y el Redo Log Buffer.
Shared pool:
Library Cache: se encuentra a su vez dividida en varios apartados: zona
compartida de sql, zona privada de sql, procedimientos y paquetes pl/sql y, por
último, la zona de control y bloqueos propios de la library cache.
Shared sql area o área de sql compartido, se guardan los árboles
sintácticos de las sentencias analizadas así como los planes de ejecución
elegidos para cada una.
Private sql area o zona privada de sql: por cada sesión diferente que hay
en la base de datos se crea una zona de sql privado. Se mantiene información
de las sentencias que se están tratando en ese momento.
Procedimientos y Paquetes PL/SQL: existe un área diferenciada para el
tratamiento de los procedimientos, funciones y paquetes pl/sql. Se tratan en
esta zona igual que si fueran sentencias sql en la zona de sql compartido.
Dictionary cache: mantiene datos de sus propias tablas y vistas ya que accede
constantemente a ellas al ejecutar cualquier sentencia.
PGA: Program Global Area.
Destinada a guardar información de los procesos de usuario y procesos de
background que corren en una instancia de la base de datos y que a través de
distintos procesos intercambian la información con la SGA.
Sort Areas (parámetro SORT_AREA_SIZE.)
Son las zonas de memoria que Oracle reserva para realizar ordenaciones y que
resultan mucho más rápidas si se realizan en la memoria. Por supuesto, no todas las
ordenaciones caben en memoria y en esos casos debe utilizar también el disco y, si
hemos configurado bien el sistema, se realizarán el los tablespaces que hemos
definido como temporales.
Elementos de Diseño Físico en ORACLE
Tablespace:
Como ya se ha comentado la 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 tamaños de los ficheros.
Es pues una decisión de diseño especificar cuantos tablespace son necesarios y
cual debe de ser el tamaño de los ficheros asociados.
Ejemplo:
CREATE TABLESPACE TS_DATOS
DATAFILE ‘/disco1/fichero1’ SIZE 100M,
DATAFILE ‘/disco2/fichero2’ SIZE 250M;
En este caso se crea un tablespace TS_DATOS asociado a dos ficheros con una
capacidad total de 350M.
Tablas y extensiones de una tabla:
En el momento en el que se creen las tablas y en la propia definición en SQL se
tendrá que indicar en qué tablespace se guardarán los datos. Las tablas no se
pueden asignar a los ficheros.
Ejemplo: La tabla alumno se asigna a TS_DATOS pero puede que los datos se
encuentren repartidos entre los dos ficheros.
CREATE TABLE Alumnos (...) TABLESPACE TS_DATOS;
Una parte importante del diseño será decidir el tamaño de las extensiones de cada
una de las tablas que vamos a crear. Evidentemente lo mas interesante será tener
las tuplas de una relación almacenadas en espacios consecutivos en el disco,
para aprovechar las ventajas de la recuperación de bloques consecutivos. De esta
manera será interesante tener pocas extensiones pues como se ha dicho una
extensión es un conjunto de bloques consecutivos.
En la sentencia SQL de definición de las tablas se han de incluir los siguientes
parámetros de almacenamiento (cláusula STORAGE):
• INITIAL: denota el tamaño de la extensión inicial.
• NEXT: indica el tamaño de las extensiones siguientes.
• MINEXTENTS: indica el numero mínimo de extensiones.
• MAXEXTENTS: indica el numero máximo de extensiones.
• PCTINCREASE: es un factor de crecimiento de una extensión a la siguiente.
Ejemplo:
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 extensión inicial de 20K, y
las extensiones sucesivas serán de 30K, hasta un máximo de 10 extensiones.
Encadenamiento de tuplas:
Las tuplas se almacenan en Oracle como registros de tamaño variable, es decir,
no se reserva espacio fijo para cada tupla. De esta manera y sobre todo cuando se
producen modificaciones sobre atributos que amplían su tamaño, puede ocurrir
que una tupla no quepa en un bloque, y haya que repartirla entre dos bloques (row
chaining, filas encadenadas). En este caso el recuperar esta fila supondrá realizar
muchos más accesos al disco.
Para reducir la posibilidad de encadenamientos por modificaciones de filas en el
bloque es interesante dejar un porcentaje libre en cada bloque. El parámetro
PCTFREE en la sentencia SQL de la definición de la tabla indica este porcentaje.
De la misma manera y para que varias inserciones se puedan hacer sobre un mismo
bloque y así evitar muchos accesos al disco, se puede establecer un espacio mínimo
para poder insertar filas en ese bloque, este porcentaje se establece mediante el
parámetro PCTUSED.
Ejemplo:
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 ese porcentaje de utilización sea inferior al 40%.
Recomendaciones:
PCTFREE: Si la fila no va a sufrir modificaciones valor entre 5 y 10; pero si las
filas pueden sufrir muchas variaciones en cuanto a tamaño 20-40.
PCTUSED: Un valor entre 80 y 40; si no se van a producir muchas modificaciones
80 y en caso contrario 40.
La suma entre este valor y el anterior no debe de superar a 100.
Creación de índices:
Los índices son estructuras sobre un conjunto de atributos de una tabla y que
permiten establecer una ordenación lógica de las tuplas de una relación por el
valor de los atributos que forman la clave del índice.
Oracle permite la creación de índices B* (similares a los B+). Como los índices
necesitan de espacio en el disco para almacenar sus valores, en la definición de
éstos se utilizarán los parámetros que acabamos de indicar en la creación de
tablas.
Ventajas de la estructura de B-tree
• Todos los nodos hoja están a la misma profundidad. La recuperación de
cualquier registro lleva aproximadamente el mismo tiempo.
• Permanecen automáticamente balanceados.
• Todos los bloques del árbol están llenos de media en ¾.
• Excelente desempeño para una amplia variedad de consultas, desde
emparejamiento exacto (exact match) a búsquedas por rango de valores.
• Inserts, updates, y deletes son eficientes, manteniéndose el órden de clave.
Ejemplo:
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);
Conviene por razones de eficiencia separar las tablas de los índices en distintos
tablespace que estén ubicados en discos diferentes para poder realizar en paralelo
peticiones de E/S sobre los discos.
Clusters:
Cuando dos tablas tienen atributos mediante los cuales es usual realizar
concatenaciones, puede resultar más eficiente guardar las tuplas que se
concatenan de ambas relaciones en el mismo bloque, el cluster es un método que
nos permite esto.
El utilizar clusters solamente afecta a la organización física de los datos y no a la
estructura lógica. Y en este caso la ventaja es doble pues se aceleran las
concatenaciones (joins) y se disminuye espacio de utilización en el disco pues los
atributos que se concatenan solamente se guardan una vez.
Ejemplo:
CREATE CLUSTER CL_1 ( clave number(4) ) SIZE 512
TABLESPACE TS_DATOS
PCTFREE 20
STORAGE ( INITIAL 20K NEXT 30K MINEXTENTS 1 MAXEXTENTS 10
PCTINCREASE 0);
CREATE TABLE Alumno( … ) CLUSTER CL_1( a1 );
Como vemos los parámetros de almacenamiento se asocian al cluster y no a las
tablas. El parámetro SIZE nos indica el tamaño máximo que ocuparán las tuplas
que se concatenan y este debe de ser una estimación.
Dispersión:
Existe una variación en el uso de los clusters y es el uso de dispersión. En este
caso las filas no se almacenaran por el valor de la clave del cluster sino por el
resultado de aplicar una función de dispersión a el valor de la clave del cluster. La
dispersión que implementa Oracle es estática y es necesario conocer cuándo se
crea el rango de valores de la función de dispersión, en este momento se reserva
espacio para todos los bloques del cluster y los conflictos se resuelven mediante
cubos de desborde.
Ejemplo:
CREATE CLUSTER CL_1 ( clave number(4) )
SIZE 512
HASH IS clave HASKEY 300
TABLESPACE TS_DATOS
PCTFREE 20
STORAGE ( INITIAL 20K NEXT 30K MINEXTENTS 1 MAXEXTENTS 10
PCTINCREASE 0);
En este ejemplo la función de dispersión devuelve valores entre 0 y 299.

Weitere ähnliche Inhalte

Was ist angesagt?

Historia de la tecnologia de base de datos
Historia de la tecnologia de base de datosHistoria de la tecnologia de base de datos
Historia de la tecnologia de base de datos
ralbarracin
 

Was ist angesagt? (20)

Sql
SqlSql
Sql
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Oledb
Oledb Oledb
Oledb
 
LENGUAJE DE PROGRAMACION SQL
LENGUAJE DE PROGRAMACION SQLLENGUAJE DE PROGRAMACION SQL
LENGUAJE DE PROGRAMACION SQL
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Sql(structured query language)
Sql(structured query language)Sql(structured query language)
Sql(structured query language)
 
Base de datos oracle
Base de datos oracleBase de datos oracle
Base de datos oracle
 
Modelos de datos
Modelos de datosModelos de datos
Modelos de datos
 
Fases para la creación de una base de datos
Fases para la creación de una base de datosFases para la creación de una base de datos
Fases para la creación de una base de datos
 
Data models
Data modelsData models
Data models
 
DB2 Basic Commands - UDB
DB2 Basic Commands - UDBDB2 Basic Commands - UDB
DB2 Basic Commands - UDB
 
Dbms
DbmsDbms
Dbms
 
Database and Database Management (DBM): Health Informatics
Database and Database Management (DBM): Health InformaticsDatabase and Database Management (DBM): Health Informatics
Database and Database Management (DBM): Health Informatics
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos Conceptual
 
Web Database integration
Web Database integrationWeb Database integration
Web Database integration
 
Vistas en bases de datos
Vistas en bases de datosVistas en bases de datos
Vistas en bases de datos
 
Historia de la tecnologia de base de datos
Historia de la tecnologia de base de datosHistoria de la tecnologia de base de datos
Historia de la tecnologia de base de datos
 
Forma normal de boyce codd y algoritmos de descomposición
Forma normal de boyce codd y algoritmos de descomposiciónForma normal de boyce codd y algoritmos de descomposición
Forma normal de boyce codd y algoritmos de descomposición
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
ADO
ADOADO
ADO
 

Andere mochten auch

นางสาวภูริชา พลนิกร-59170111-กลุ่ม1-งานเดี่ยว
นางสาวภูริชา พลนิกร-59170111-กลุ่ม1-งานเดี่ยวนางสาวภูริชา พลนิกร-59170111-กลุ่ม1-งานเดี่ยว
นางสาวภูริชา พลนิกร-59170111-กลุ่ม1-งานเดี่ยว
หน่อย หน่อย
 
Erromanizazioa( esther zorrilla)
Erromanizazioa( esther zorrilla)Erromanizazioa( esther zorrilla)
Erromanizazioa( esther zorrilla)
esther88
 
Domínio Público
Domínio PúblicoDomínio Público
Domínio Público
guest202484
 

Andere mochten auch (13)

Dentist book
Dentist bookDentist book
Dentist book
 
นางสาวภูริชา พลนิกร-59170111-กลุ่ม1-งานเดี่ยว
นางสาวภูริชา พลนิกร-59170111-กลุ่ม1-งานเดี่ยวนางสาวภูริชา พลนิกร-59170111-กลุ่ม1-งานเดี่ยว
นางสาวภูริชา พลนิกร-59170111-กลุ่ม1-งานเดี่ยว
 
Boletim
BoletimBoletim
Boletim
 
NPEB- CEL
NPEB- CELNPEB- CEL
NPEB- CEL
 
Unidad V - Tema 2
Unidad V - Tema 2Unidad V - Tema 2
Unidad V - Tema 2
 
Realidad virtual y los mundos virtuales
Realidad virtual y los mundos virtualesRealidad virtual y los mundos virtuales
Realidad virtual y los mundos virtuales
 
Erromanizazioa( esther zorrilla)
Erromanizazioa( esther zorrilla)Erromanizazioa( esther zorrilla)
Erromanizazioa( esther zorrilla)
 
Adjectives and adverbs
Adjectives and adverbsAdjectives and adverbs
Adjectives and adverbs
 
Icca how do we make learning that leads to real change
Icca   how do we make learning that leads to real changeIcca   how do we make learning that leads to real change
Icca how do we make learning that leads to real change
 
acute appendicits
acute appendicitsacute appendicits
acute appendicits
 
Domínio Público
Domínio PúblicoDomínio Público
Domínio Público
 
How Audi offers firefighting training via storytelling learning
How Audi offers firefighting training via storytelling learningHow Audi offers firefighting training via storytelling learning
How Audi offers firefighting training via storytelling learning
 
Enlaces químicos
Enlaces químicos Enlaces químicos
Enlaces químicos
 

Ähnlich wie Dbd04 t06 oracle

Abf leccion 10
Abf leccion 10Abf leccion 10
Abf leccion 10
victdiazm
 
GUÍA 1_Administración de Base de Datos.docx
GUÍA 1_Administración de Base de Datos.docxGUÍA 1_Administración de Base de Datos.docx
GUÍA 1_Administración de Base de Datos.docx
leotri2
 
1_ Introducción a Oracle, SqlDeveloper, Usuarios-Privilegios.pptx
1_ Introducción a Oracle, SqlDeveloper, Usuarios-Privilegios.pptx1_ Introducción a Oracle, SqlDeveloper, Usuarios-Privilegios.pptx
1_ Introducción a Oracle, SqlDeveloper, Usuarios-Privilegios.pptx
CarlosSaid7
 
Estructuras de almacenamiento de Oracle 11g R2
Estructuras de almacenamiento de Oracle 11g R2Estructuras de almacenamiento de Oracle 11g R2
Estructuras de almacenamiento de Oracle 11g R2
Carmen Soler
 
Bases de Datos - Parte 2/10 Sistemas de bases de datos
Bases de Datos - Parte 2/10 Sistemas de bases de datosBases de Datos - Parte 2/10 Sistemas de bases de datos
Bases de Datos - Parte 2/10 Sistemas de bases de datos
Carlos Castillo (ChaTo)
 
Oracle3
Oracle3Oracle3
Oracle3
Jualme
 
Abf leccion 12
Abf leccion 12Abf leccion 12
Abf leccion 12
victdiazm
 

Ähnlich wie Dbd04 t06 oracle (20)

Abf leccion 10
Abf leccion 10Abf leccion 10
Abf leccion 10
 
GUÍA 1_Administración de Base de Datos.docx
GUÍA 1_Administración de Base de Datos.docxGUÍA 1_Administración de Base de Datos.docx
GUÍA 1_Administración de Base de Datos.docx
 
Bdp3
Bdp3Bdp3
Bdp3
 
Arquitectura de oracle (30 hojas)
Arquitectura de oracle (30 hojas)Arquitectura de oracle (30 hojas)
Arquitectura de oracle (30 hojas)
 
Arquitectura e implementación de PostgreSQL 9.3
Arquitectura e implementación de PostgreSQL 9.3Arquitectura e implementación de PostgreSQL 9.3
Arquitectura e implementación de PostgreSQL 9.3
 
Administración de memoria, procesos y estructura x
Administración de memoria, procesos y estructura xAdministración de memoria, procesos y estructura x
Administración de memoria, procesos y estructura x
 
Presentación1
Presentación1Presentación1
Presentación1
 
Curso oracle por temas
Curso oracle por temasCurso oracle por temas
Curso oracle por temas
 
1_ Introducción a Oracle, SqlDeveloper, Usuarios-Privilegios.pptx
1_ Introducción a Oracle, SqlDeveloper, Usuarios-Privilegios.pptx1_ Introducción a Oracle, SqlDeveloper, Usuarios-Privilegios.pptx
1_ Introducción a Oracle, SqlDeveloper, Usuarios-Privilegios.pptx
 
Tablespaces En Oracle
Tablespaces En OracleTablespaces En Oracle
Tablespaces En Oracle
 
Estructuras de almacenamiento de Oracle 11g R2
Estructuras de almacenamiento de Oracle 11g R2Estructuras de almacenamiento de Oracle 11g R2
Estructuras de almacenamiento de Oracle 11g R2
 
Bases de Datos - Parte 2/10 Sistemas de bases de datos
Bases de Datos - Parte 2/10 Sistemas de bases de datosBases de Datos - Parte 2/10 Sistemas de bases de datos
Bases de Datos - Parte 2/10 Sistemas de bases de datos
 
Part tab
Part tabPart tab
Part tab
 
Oracle3
Oracle3Oracle3
Oracle3
 
1-2 Arquitectura base de datos.pptx
1-2 Arquitectura base de datos.pptx1-2 Arquitectura base de datos.pptx
1-2 Arquitectura base de datos.pptx
 
Diapositivas De Tablas y Base Datos
Diapositivas De Tablas y Base DatosDiapositivas De Tablas y Base Datos
Diapositivas De Tablas y Base Datos
 
Abf leccion 12
Abf leccion 12Abf leccion 12
Abf leccion 12
 
Proyecto gestor sql java
Proyecto gestor sql javaProyecto gestor sql java
Proyecto gestor sql java
 
Administración de Oracle - Tema 3 - Creación de la BD
Administración de Oracle - Tema 3 - Creación de la BDAdministración de Oracle - Tema 3 - Creación de la BD
Administración de Oracle - Tema 3 - Creación de la BD
 
Estructura de Almacenamiento en Oracle. TableSpaceZ052 07
Estructura de Almacenamiento en Oracle. TableSpaceZ052 07Estructura de Almacenamiento en Oracle. TableSpaceZ052 07
Estructura de Almacenamiento en Oracle. TableSpaceZ052 07
 

Kürzlich hochgeladen

Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
JonathanCovena1
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
NancyLoaa
 

Kürzlich hochgeladen (20)

Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 

Dbd04 t06 oracle

  • 1. Estructura de una BD Oracle. Una BD Oracle tiene una estructura física y una estructura lógica que se mantienen separadamente. • La estructura física se corresponde a los ficheros del sistema operativo: de datos (datafiles), de redo log y de control (controlfiles). • La estructura lógica está formada por los tablespace y los objetos de un esquema de BD (tablas, vistas, índices,...). Estructura lógica. Una BD se divide en unidades de almacenamiento lógicas: Tablespaces. Contienen distintos objetos relacionados (p.ej. todas las tablas de una aplicación). Cada BD estará formada por uno o mas tablespaces (al menos existe el tablespace SYSTEM catálogo del sistema). Cada tablespace se corresponde con uno o más ficheros de datos. Objetos: tablas, vistas, índices asociados a una tabla, clusters, ... Oracle define esquema como la colección de objetos o estructuras lógicas que corresponden directamente a los datos almacenados, y crea un nuevo esquema por cada usuario que crea objetos en la base de datos. No hay ninguna relación directa entre tablespace y esquema, objetos del mismo esquema pueden estar en diferentes tablespaces y un mismo tablespace puede almacenar distintos esquemas.
  • 2. El control del uso del espacio del disco se obtiene mediante las estructuras lógicas de almacenamiento: bloque de datos, extensión y segmento. El nivel más pequeño de granularidad es el del bloque de datos: número específico de bytes contiguos de espacio físico en el disco. (tamaño mínimo de 2K, el bloque físico del disco y que depende el sistema operativo no tiene por que coincidir con éste). El siguiente nivel es el de extensión, que es un número específico de bloques de datos contiguos en el disco. Por último el segmento es un conjunto de extensiones utilizadas para almacenar alguna estructura lógica. Tendremos segmentos de datos para tablas o clusters, segmentos de índices para índices, segmentos de rollback para poder deshacer / rehacer cambios por transacciones y segmentos temporales. Hay varios tipos de sentencias en las que Oracle se ve en la obligación de utilizar los segmentos temporales: ordenaciones. SELECT ... ORDER BY... CREATE INDEX. SELECT ... GROUP BY... SELECT ... UNION ... SELECT DISTINCT ... SELECT … INSERSEC ... SELECT ... MINUS ... Oracle va incrementando el espacio para los segmentos mediante extensiones. Cuando una extensión está llena y necesita más espacio el sistema busca otra extensión, que podrá estar o no estar contigua a la anterior en el disco (dependerá simplemente del estado de éste).
  • 3. Estructura física Una B.D. tiene uno o más ficheros de datos. Estos ficheros son de tamaño fijo y se establecen en el momento en que se crea la base de datos o en el momento en el que se crean tablespaces. Los datos del fichero de datos son leídos cuando se necesitan y situados en una caché de memoria compartida (llamada SGA, System Global Area: db_block_buffers; recomendable tamaño SGA = 50% de la memoria principal) para que el próximo acceso a los mismos sea más rápido. Las modificaciones en los datos se guardan ante una petición o cuando los datos son eliminados de la SGA por falta de memoria libre para atender más peticiones. El conjunto de ficheros redo log sirven para registrar todos los cambios (insert, update, delete, create, alter o drop) sobre la BD y poder recuperarla ante un error. Los ficheros de control almacenan información de la estructura física de la BD.
  • 4. Los distintos elementos que forman parte del entorno de memoria de Oracle : SGA: System Global Area o Shared Global Area. Zona principal de la memoria de Oracle. Está dividida en varias subareas desempeñando cada una de estas una tarea totalmente distinta: la Shared Pool, la Database Buffer Cache (parámetro DB_BLOCK_BUFFERS) y el Redo Log Buffer. Shared pool: Library Cache: se encuentra a su vez dividida en varios apartados: zona compartida de sql, zona privada de sql, procedimientos y paquetes pl/sql y, por último, la zona de control y bloqueos propios de la library cache. Shared sql area o área de sql compartido, se guardan los árboles sintácticos de las sentencias analizadas así como los planes de ejecución elegidos para cada una. Private sql area o zona privada de sql: por cada sesión diferente que hay en la base de datos se crea una zona de sql privado. Se mantiene información de las sentencias que se están tratando en ese momento. Procedimientos y Paquetes PL/SQL: existe un área diferenciada para el tratamiento de los procedimientos, funciones y paquetes pl/sql. Se tratan en esta zona igual que si fueran sentencias sql en la zona de sql compartido. Dictionary cache: mantiene datos de sus propias tablas y vistas ya que accede constantemente a ellas al ejecutar cualquier sentencia. PGA: Program Global Area. Destinada a guardar información de los procesos de usuario y procesos de background que corren en una instancia de la base de datos y que a través de distintos procesos intercambian la información con la SGA. Sort Areas (parámetro SORT_AREA_SIZE.) Son las zonas de memoria que Oracle reserva para realizar ordenaciones y que resultan mucho más rápidas si se realizan en la memoria. Por supuesto, no todas las ordenaciones caben en memoria y en esos casos debe utilizar también el disco y, si hemos configurado bien el sistema, se realizarán el los tablespaces que hemos definido como temporales.
  • 5. Elementos de Diseño Físico en ORACLE Tablespace: Como ya se ha comentado la 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 tamaños de los ficheros. Es pues una decisión de diseño especificar cuantos tablespace son necesarios y cual debe de ser el tamaño de los ficheros asociados. Ejemplo: CREATE TABLESPACE TS_DATOS DATAFILE ‘/disco1/fichero1’ SIZE 100M, DATAFILE ‘/disco2/fichero2’ SIZE 250M; En este caso se crea un tablespace TS_DATOS asociado a dos ficheros con una capacidad total de 350M. Tablas y extensiones de una tabla: En el momento en el que se creen las tablas y en la propia definición en SQL se tendrá que indicar en qué tablespace se guardarán los datos. Las tablas no se pueden asignar a los ficheros. Ejemplo: La tabla alumno se asigna a TS_DATOS pero puede que los datos se encuentren repartidos entre los dos ficheros. CREATE TABLE Alumnos (...) TABLESPACE TS_DATOS; Una parte importante del diseño será decidir el tamaño de las extensiones de cada una de las tablas que vamos a crear. Evidentemente lo mas interesante será tener las tuplas de una relación almacenadas en espacios consecutivos en el disco, para aprovechar las ventajas de la recuperación de bloques consecutivos. De esta manera será interesante tener pocas extensiones pues como se ha dicho una extensión es un conjunto de bloques consecutivos. En la sentencia SQL de definición de las tablas se han de incluir los siguientes parámetros de almacenamiento (cláusula STORAGE): • INITIAL: denota el tamaño de la extensión inicial. • NEXT: indica el tamaño de las extensiones siguientes. • MINEXTENTS: indica el numero mínimo de extensiones. • MAXEXTENTS: indica el numero máximo de extensiones. • PCTINCREASE: es un factor de crecimiento de una extensión a la siguiente.
  • 6. Ejemplo: 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 extensión inicial de 20K, y las extensiones sucesivas serán de 30K, hasta un máximo de 10 extensiones. Encadenamiento de tuplas: Las tuplas se almacenan en Oracle como registros de tamaño variable, es decir, no se reserva espacio fijo para cada tupla. De esta manera y sobre todo cuando se producen modificaciones sobre atributos que amplían su tamaño, puede ocurrir que una tupla no quepa en un bloque, y haya que repartirla entre dos bloques (row chaining, filas encadenadas). En este caso el recuperar esta fila supondrá realizar muchos más accesos al disco. Para reducir la posibilidad de encadenamientos por modificaciones de filas en el bloque es interesante dejar un porcentaje libre en cada bloque. El parámetro PCTFREE en la sentencia SQL de la definición de la tabla indica este porcentaje. De la misma manera y para que varias inserciones se puedan hacer sobre un mismo bloque y así evitar muchos accesos al disco, se puede establecer un espacio mínimo para poder insertar filas en ese bloque, este porcentaje se establece mediante el parámetro PCTUSED. Ejemplo: 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 ese porcentaje de utilización sea inferior al 40%. Recomendaciones: PCTFREE: Si la fila no va a sufrir modificaciones valor entre 5 y 10; pero si las filas pueden sufrir muchas variaciones en cuanto a tamaño 20-40. PCTUSED: Un valor entre 80 y 40; si no se van a producir muchas modificaciones 80 y en caso contrario 40. La suma entre este valor y el anterior no debe de superar a 100.
  • 7. Creación de índices: Los índices son estructuras sobre un conjunto de atributos de una tabla y que permiten establecer una ordenación lógica de las tuplas de una relación por el valor de los atributos que forman la clave del índice. Oracle permite la creación de índices B* (similares a los B+). Como los índices necesitan de espacio en el disco para almacenar sus valores, en la definición de éstos se utilizarán los parámetros que acabamos de indicar en la creación de tablas. Ventajas de la estructura de B-tree • Todos los nodos hoja están a la misma profundidad. La recuperación de cualquier registro lleva aproximadamente el mismo tiempo. • Permanecen automáticamente balanceados. • Todos los bloques del árbol están llenos de media en ¾. • Excelente desempeño para una amplia variedad de consultas, desde emparejamiento exacto (exact match) a búsquedas por rango de valores. • Inserts, updates, y deletes son eficientes, manteniéndose el órden de clave. Ejemplo: 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); Conviene por razones de eficiencia separar las tablas de los índices en distintos tablespace que estén ubicados en discos diferentes para poder realizar en paralelo peticiones de E/S sobre los discos.
  • 8. Clusters: Cuando dos tablas tienen atributos mediante los cuales es usual realizar concatenaciones, puede resultar más eficiente guardar las tuplas que se concatenan de ambas relaciones en el mismo bloque, el cluster es un método que nos permite esto. El utilizar clusters solamente afecta a la organización física de los datos y no a la estructura lógica. Y en este caso la ventaja es doble pues se aceleran las concatenaciones (joins) y se disminuye espacio de utilización en el disco pues los atributos que se concatenan solamente se guardan una vez. Ejemplo: CREATE CLUSTER CL_1 ( clave number(4) ) SIZE 512 TABLESPACE TS_DATOS PCTFREE 20 STORAGE ( INITIAL 20K NEXT 30K MINEXTENTS 1 MAXEXTENTS 10 PCTINCREASE 0); CREATE TABLE Alumno( … ) CLUSTER CL_1( a1 ); Como vemos los parámetros de almacenamiento se asocian al cluster y no a las tablas. El parámetro SIZE nos indica el tamaño máximo que ocuparán las tuplas que se concatenan y este debe de ser una estimación.
  • 9. Dispersión: Existe una variación en el uso de los clusters y es el uso de dispersión. En este caso las filas no se almacenaran por el valor de la clave del cluster sino por el resultado de aplicar una función de dispersión a el valor de la clave del cluster. La dispersión que implementa Oracle es estática y es necesario conocer cuándo se crea el rango de valores de la función de dispersión, en este momento se reserva espacio para todos los bloques del cluster y los conflictos se resuelven mediante cubos de desborde. Ejemplo: CREATE CLUSTER CL_1 ( clave number(4) ) SIZE 512 HASH IS clave HASKEY 300 TABLESPACE TS_DATOS PCTFREE 20 STORAGE ( INITIAL 20K NEXT 30K MINEXTENTS 1 MAXEXTENTS 10 PCTINCREASE 0); En este ejemplo la función de dispersión devuelve valores entre 0 y 299.