Ir al contenido principal

Unidad 2 - Temario


UNIDAD 2 Arquitectura e instalación del SGBD


La arquitectura de un sistema de base de datos está influenciada por el sistema informático que soporta la instalación del SGBD, lo que reflejará muchas de las características propias del sistema subyacente en el SGBD.

Las bases de datos respetan la arquitectura de tres niveles definida, para cualquier tipo de base de datos, por el grupo ANSI/SPARC. En esta arquitectura la base de datos se divide en los niveles externo, conceptual e interno. 




1. Nivel interno: es el nivel más bajo de abstracción, y define cómo se almacenan los datos en el soporte físico, así como los métodos de acceso.

2. Nivel conceptual: es el nivel medio de abstracción. Se trata de la representación de los datos realizada por la organización, que recoge las vistas parciales de los requerimientos de los diferentes usuarios y las aplicaciones posibles. Se configura como visión organizativa total, e incluye la definición de datos y las relaciones entre ellos.

3. Nivel externo: es el nivel de mayor abstracción. A este nivel corresponden las diferentes vistas parciales que tienen de la base de datos los diferentes usuarios. En cierto modo, es la parte del modelo conceptual a la que tienen acceso.


El modelo de arquitectura propuesto permite establecer el principio de independencia de los datos. Esta independencia puede ser lógica y física. Por independencia lógica se entiende que los cambios en el esquema lógico no deben afectar a los esquemas externos que no utilicen los datos modificados. Por independencia física se entiende que el esquema lógico no se vea afectado por cambios realizados en el esquema interno, correspondientes a modos de acceso, etc. 

Las redes de computadores permiten separar tareas en un esquema de clientes y servidores, el procesamiento paralelo dentro del computador permite acelerar algunas de las tareas de la base de datos así como la posibilidad de ejecutar más transacciones por segundo. Las consultas se pueden paralelizar permitiendo así que una consulta se pueda ejecutar por más de un procesador al mismo tiempo, esta característica ha llevado al estudio de las bases de datos paralelas.
2.1.1 Estructura de memoria y procesos de la instancia
  •  La memoria se puede estructurar en las siguientes partes:
  • Área Global del sistema (SGA), la cual se comparte entre todos los servidores y los procesos en segundo plano.
  • Áreas globales de programas (PGA), que es privada para cada servidor y proceso en segundo planos; a cada proceso se asigna un PGA.
  • Área de Ordenaciones (SortAreas).
  • Memoria Virtual
  • j Area de codigo de software.


Instancia de una Base de Datos
Cada instancia está asociada a una base de datos. Cuando se inicia una base de datos en un servidor (independientemente del tipo de computadora), se le asigna un área de memoria (SGA) y lanza uno o más procesos. A la combinación del SGA y de los procesos es lo que se llama instancia. La memoria y los procesos de una instancia gestionan los datos de la base de datos asociada de forma eficiente y sirven a uno o varios usuarios.

Cuando se inicia una instancia El DBMS monta la base de datos, es decir, asocia dicha instancia a su base de datos correspondiente. En un misma computadora pueden ejecutarse varias instancias simultáneamente, accediendo cada una a su propia base de datos física.
Únicamente el administrador de la base de datos puede iniciar una instancia y abrir una base de datos. Si una base de datos está abierta, entonces el administrador puede cerrarla y, cuando esto ocurre, los usuarios no pueden acceder a la información que contiene.





2.1.2 Estructura física de la base de datos

En una base de datos almacenamos información relevante para nuestro negocio u organización y desde el punto de vista físico, la base de datos está conformada por dos tipos de archivos:
Archivos de datos: contiene los datos de la base de datos internamente, está compuesto por páginas enumeradas secuencialmente que representa la unidad mínima de almacenamiento. Cada página tiene un tamaño de 8kb de información. Existen diferentes tipos de páginas, a tener en cuenta:
Páginas de datos: es el tipo principal de páginas y son las que almacenan los registros de datos.
Páginas de espacio libre (PFS Page Free Space): almacenan información sobre la ubicación y el tamaño del espacio libre.
Paginas GAM and SGAM: utilizadas para ubicar extensiones.
Páginas de Mapa de Ubicaciones de índices (IAM – IndexAllocationMap): contiene información sobre el almacenamiento de páginas de una tabla o índice en particular.
Páginas Índices: Utilizada para almacenar registros de índices.


Archivo de Registro de Transacciones: El propósito principal del registro de transacciones es la recuperación de datos a un momento en el tiempo o complementar una restauración de copia de respaldo completa (full backup). El registro de transacciones no contiene páginas, sino entradas con todos los cambios realizados en la base de datos, como son las modificaciones de datos, modificaciones de la base de datos y eventos de copia de seguridad y restauración. El acceso a datos es secuencial, ya que el registro de transacciones se actualiza en el mismo orden cronológico en el que se hacen las modificaciones.
Este archivo no puede ser leído por herramientas de usuario de SQL auqnue existen herramientas de terceros que leen este archivo para recuperar los cambios efectuados. Dependiendo de la versión el registro de transacciones se utiliza para otros propósitos como por ejemplo bases de datos espejo (mirror) y transporte remoto de transacciones (log shipping).


Para muchos de los administradores de bases de datos, la imagen anterior representa la parte lógica y la parte física, donde:


Data File:

Los datafiles son los archivos físicos en los que se almacenan los objetos que forman parte de un tablespace. Un datafile pertenece solamente a un tablespace y a una instancia de base de datos. Un tablespace puede estar formado por uno o varios datafiles. Cuando se crea un datafile, se debe indicar su nombre, su ubicación o directorio, el tamaño que va a tener y el tablespace al que va a pertenecer. Además, al crearlos, ocupan ya ese espacio aunque se encuentran totalmente vacíos, es decir, Oracle reserva el espacio para poder ir llenándolo poco a poco con posterioridad. Por supuesto, si no hay sitio suficiente para crear un archivo físico del tamaño indicado, se producirá un error y no se creará dicho archivo.


Cuando se van creando objetos en un tablespace, éstos físicamente se van almacenando en los datafiles asignados a dicho tablespace, es decir, cuando creamos una tabla y vamos insertando datos en ella, estos datos realmente se reparten por los archivos físicos o datafiles que forman parte del tablespace. No se puede controlar en qué archivo físico se almacenan los datos de un tablespace. Si un tablespace está formado por 2 datafiles y tenemos una tabla en ese tablespace, a medida que vamos insertando filas éstas se almacenarán en cualquiera de los dos datafiles indistintamente, es decir, unas pueden estar en un datafile y otras en otro.


El espacio total disponible en un tablespace es lógicamente la suma de los tamaños que ocupan los archivos físicos o datafiles que lo forman. Como hemos indicado estos datafiles, al crearlos, están totalmente vacíos, simplemente es un espacio reservado y formateado por Oracle para su uso. A medida que se van creando objetos en ellos como tablas, índices, etc. y se van insertando registros en estas tablas, los datafiles se van llenando o, lo que es lo mismo, el tablespace se va llenando.


Tienen las siguientes características:
  • Un archivo sólo puede estar asociado con una base de datos.
  •  Los archivos de datos tienen atributos que permiten reservar automáticamente para ellos extensiones cuando se acaba el espacio.
  • Uno o más archivos de datos forman una unidad lógica de almacenamiento llamada tablespace.


Os Block:

Conocidos como Disk Block, estos mapean a los data blocks. A la hora de crear una nueva base de datos se debe indicar cuántos bloques de sistema operativo formarán un bloque de datos.


2.1.3 Requerimientos para instalación.

Antes de instalar cualquier SGBD es necesario conocer los requerimientos de hardware y software, el posible software a desinstalar previamente, verificar el registro de Windows y el entorno del sistema, así como otras características de configuración especializadas como pueden ser la reconfiguración de los servicios TCP/IP y la modificación de los tipos archivos HTML para los diversos navegadores.
Se presenta a continuación una serie de requerimientos mínimos de hardware y software para instalar oracle 11g Express y MySQL estándar versión 5.1. en Windows Seven y Ubuntu 10.


1. La regla general para determinar el tamaño de la memoria virtual depende del tamaño de memoria RAM instalada. Si su sistema tiene menos de 4 GB de RAM por lo general el espacio de intercambio debe ser de al menos dos veces este tamaño. Si usted tiene más de 8 GB de memoria RAM instalada puede considerar usar el mismo tamaño como espacio de intercambio. Cuanta más memoria RAM tenga instalada, es menos probable usar el espacio de intercambio, a menos que tenga un proceso inadecuado.





2.1.4 Instalación del SGBD en modo transaccional

Una base de datos en modo transaccional significa que la BD será capaz de que las operaciones de inserción y actualización se hagan dentro de una transacción, es un componente que procesa información descomponiéndola de forma unitaria en operaciones indivisibles, llamadas transacciones, esto quiere decir que todas las operaciones se realizan o no, si sucede algún error en la operación se omite todo el proceso de modificación de la base de datos, si no sucede ningún error se hacen toda la operación con éxito.

Una transacción es un conjunto de líneas de un programa que llevan insert o update o delete. Todo aquél software que tiene un log de transacciones (que es la "bitácora" que permite hacer operaciones de commit o rollback), propiamente es un software de BD; aquél que no lo tiene (v.g. D-Base), propiamente no lo es. Todo software de base de datos es transaccional; si el software de la BD no es "transaccional", en realidad NO es un "software" de BD; en todo caso, es un software que emula el funcionamiento de un verdadero software de BD. Cada transacción debe finalizar de forma correcta o incorrecta como una unidad completa. No puede acabar en un estado intermedio.
Se usan las siguientes métodos:
  •  Begin TRans para iniciar la transacción
  •  CommitTrans para efectuar los cambios con éxito
  •  RollbackTrans para deshacer los cambios
Y depende que base de datos uses para efectuar las operaciones pero, es la misma teoría para cualquier BD.

Una vez que se sabe la forma de ingresar comandos, es el momento de acceder a una base de datos.

Suponga que en su hogar posee varias mascotas y desea registrar distintos tipos de información sobre ellas. Puede hacerlo si crea tablas para almacenar sus datos e introduce en ellas la información deseada. Entonces, podrá responder una variedad de preguntas acerca de sus mascotas recuperando datos desde las tablas. Los pasos serían:

  •  Crear una base de datos
  •  Crear una tabla
  •  Introducir datos en la tabla
  •  Recuperar datos desde la tabla de varias maneras
  •  Emplear múltiples tablas
  • La base de datos menagerie (palabra inglesa que en español significa "colección de animales") se ha hecho deliberadamente simple, pero no es difícil imaginar situaciones del mundo real donde podría usarse un tipo similar de base de datos. Por ejemplo, para un granjero que desee hacer el seguimiento de su hacienda, o para los registros de los pacientes de un veterinario.


2.1.5 Variables de Ambiente y archivos importantes para instalación.

Para instalar MySQL como primer instancia el archivo primordial es el que se descarga de la Web de MySQL. El proceso para instalar MySQL desde un archivo ZIP es el siguiente:





1. Extraer el contenido del archivo dentro del directorio de instalación deseado.
2. Crear un archivo de opciones.
3. Elegir un tipo de servidor MySQL
4. Iniciar el servidor MySQL.
5. Establecer la seguridad de las cuentas de usuario por defecto.

2.1.6 Procedimiento general de instalación

Oracle Database XE es una gran base de datos para:

  •  Desarrolladores que trabajan en PHP, Java, .NET, XML, y Open Sourceapplications
  •  DBAs que necesitan desarollar libremente
  •  Vendedores de Software y hardware que necesitan distribuir sin cargos
  •  Instituciones educativas y estudiantes que cursan materias relacionados con base de datos

Oracle es líder en bases de datos. Con Oracle XE, es posible desarrollar y desplegar aplicaciones potentes, actualizar sin costo y generar complejas migraciones.
Oracle Express Edition se instala en una máquina con cualquier número de procesadores, solo puede contener una base de datos y direccionar un máximo de 4GB de datos y un máximo de 1GB RAM.
Oracle Database XE, usa una interface basada en browser (Navegador) para:

  •  Administrar la base de datos
  •  Crear tablas, vistas, y otros objetos de base de datos
  •  Importar, exportar, y ver tablas de datos
  •  Ejecutar consultas y scripts SQL
  •  Generar reportes

Oracle Database XE incluye Oracle Application Express release 2.1, un ambiente de desarrollo gráfico para crear aplicaciones Web con base de datos. Oracle Database XE es una versión reducida de Oracle con las misma características y potencialidad de Oracle Database. Es necesario destacar que no soporta todos los tipos de datos de Oracle Database XE.


oracle Database XE incluye las siguientes utilidades:

Línea de comandos SQL (SQL*Plus), para ejecutar sentencias SQL y comandos PL/SQL y ejecutar scripts
SQL*Loader, para insertar datos en la base de datos
Utilidades para importar, exportar y volcar la base de datos

Requerimientos del sistema para Oracle Database XE Server y Oracle Database XE Client.


Estos puertos son usados por defecto por Oracle Database XE

2.1.7 Procedimiento para configuración de un SGBD.

Para configurar nuestro DBMS podemos acceder a las siguientes pantallas, para Oracle o MySQL.

El esquema de una base de datos (en inglés, DatabaseSchema) describe la estructura de una Base de datos, en un lenguaje formal soportado por un Sistema administrador de Base de datos (DBMS). En una Base de datos Relacional, el Esquema define sus tablas, sus campos en cada tabla y las relaciones entre cada campo y cada tabla.
Oracle generalmente asocia un 'username' como esquemas en este caso SYSTEM y HR (Recursos humanos).
Por otro lado MySQL presenta dos esquemas information_schema y MySQL ambos guardan información sobre privilegios y procedimientos del gestor y no deben ser elimandos.


2.1.8 Comandos generales de alta y baja del SGBD

Una tabla es un sistema de elementos de datos (atributo - valores) que se organizan que usando un modelo vertical - columnas (que son identificados por su nombre)- y horizontal filas. Una tabla tiene un número específico de columnas, pero puede tener cualquier número de filas. Cada fila es identificada por los valores que aparecen en un subconjunto particular de la columna que se ha identificado por una llave primaria.

Una tabla de una base de datos es similar en apariencia a una hoja de cálculo, en cuanto a que los datos se almacenan en filas y columnas. Como consecuencia, normalmente es bastante fácil importar una hoja de cálculo en una tabla de una base de datos. La principal diferencia entre almacenar los datos en una hoja de cálculo y hacerlo en una base de datos es la forma de organizarse los datos.





Por lo tanto, la creación de las tablas en el proceso de programación en Oracle juegan un papel muy importante. En el momento de crear las tablas se definen características a dos niveles: Tabla y Columna, como se muestra a continuación:

A nivel de tabla: Refieren a una o a varias columnas, donde cada columna se define individualmente.



A nivel de Columna el nombre de la columna puede tener un máximo de 30 caracteres.

En Oracle podemos implementar diversos tipos de tablas. A continuación se presenta una recopilación no exhaustiva de ellas.


La sintaxis del comando que permite crear un tabla es la siguiente


Del examen de la sintaxis de la sentencia CreateTable se pueden concluir que necesitamos conocer los distintos tipos de columna y las distintas restricciones que se pueden imponer al contenido de las columnas.

Comentarios

Entradas más populares de este blog

Unidad III: Configuración y administración del espacio en disco

3.1 Estructuras lógicas de almacenamiento  Para la gestión del almacenamiento de una base de datos existen 4 conceptos bien definidos que deben ser conocidos para poder comprender la forma en la que se almacenan los datos. Vamos a ver la diferencia entre bloque, extensión, segmento y espacio de tablas. Bloques: Se tratan de la unidad más pequeña. Generalmente debe múltiple del tamaño de bloque del sistema operativo, ya que es la unidad mínima que va a pedir Oracle al sistema operativo. Si no fuera múltiple del bloque del sistema se añadiría un trabajo extra ya que el sistema debería obtener más datos de los estrictamente necesarios. Se especifica mediante DB_BLOCK_SIZE. Extensiones: Se forma con uno o más bloques. Cuando se aumenta tamaño de un objeto se usa una extensión para incrementar el espacio. Segmentos: Grupo de extensiones que forman un objeto de la base de datos, como por ejemplo una tabla o un índice. Espacio de tablas: Formado por uno o más datafiles, cada da...

Conexion MySQL Workbench con Python

CODIGO (FORMA 1): import pymysql try: conexion = pymysql.connect(host='localhost',user='root',password='kennethbd',db='escuela') print("Conexión correcta") except (pymysql.err.OperationalError, pymysql.err.InternalError) as e: print("Ocurrió un error al conectar: ", e) CODIGO (FORMA 2): import pymysql ############### CONFIGURAR ESTO ################### # Abre conexion con la base de datos db = pymysql.connect(host='localhost',user='root',password='kennethbd',db='escuela') ################################################## # prepare a cursor object using cursor() method cursor = db.cursor() # ejecuta el SQL query usando el metodo execute(). cursor.execute("SELECT VERSION()") # procesa una unica linea usando el metodo fetchone(). data = cursor.fetchone() print ("Database version : {0}".format(data)) # desconecta del servidor db.close() NOTA (FORMA 2) Si corres este...

Ejemplos de Lenguaje Ensamblador (Emu8086)

Ejemplos de lenguaje ensamblador Programa 1 Programa que muestre como mensaje en la pantalla "Hello World" Código: https://gist.github.com/46e552d13e29cc398d48ce6bfe195eb9.git Resultado: Programa 2 Programa que convierta números de decimal a binario Código: https://gist.github.com/46af226806fdfa4c94359dd9c982d6e7.git Resultado: Programa 3 Programa que verifica si dos cadenas son iguales Código: https://gist.github.com/7c9d5013124f78a94341696756c9c25d.git Resultado: Programa 4 Escribir un código que verifique si una cadena es subcadena de otra. Por ejemplo: «la Mu» es subcadena de «Hola Mundo». La cadena: «233» es subcadena de la cadena «2122432234» Código: https://gist.github.com/Kenneth9951/20bd7ed7b9871018af99aab6685e7f3f Resultado: Programa 5  Escribir un código que verifique que todas los caracteres de una cadena se encuentran en otra. Por ejemplo: todas las letras de la cadena «casa» se encuentran en «escaso». Pero no todas las letras de «cerro» se en cuentran en «recana...