45
REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN SUPERIOR FUNDACIÓN MISIÓN SUCRE UNIDAD CURRICULAR: PROGRAMACIÓN II INFORMATICA TRIMESTRE V BASE DE DATOS (MODULO II) FACILITADOR: PARTICIPANTE: ING. MIGUEL MEDRANO CARLOS PÉREZ LISETH PÉREZ

BASE DE DATOS.docx

Embed Size (px)

DESCRIPTION

BASE DE DATOS

Citation preview

Page 1: BASE DE DATOS.docx

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN SUPERIOR

FUNDACIÓN MISIÓN SUCRE

UNIDAD CURRICULAR: PROGRAMACIÓN II

INFORMATICA TRIMESTRE V

BASE DE DATOS (MODULO II)

FACILITADOR: PARTICIPANTE:

ING. MIGUEL MEDRANO CARLOS PÉREZ

LISETH PÉREZ

Page 2: BASE DE DATOS.docx

CAICARA DEL ORINOCO, SEPTIEMBRE DE 2014

ÍNDICE

INTRODUCCIÓN…………………………………………………………….. III

BASE DE DATOS:

1. Fundamentos Básicos de Base de Datos: 41.1. Definición………………………………………………………...1.2. Objetivo…………………………………………………………1.3. Funciones………………………………………………………..1.4. Elementos………………………………………………………..

2. Sistema Gestor de Base de Datos:2.1. Definición………………………………………………………..2.2. Objetivo………………………………………………………….2.3. Características……………………………………………………

3. Administrador de Base de Datos:3.1. Definición………………………………………………………..3.2. Tareas…………………………………………………………….3.3. Funciones…………………………………………………………

4. Evolución de los sistemas:4.1. Sistemas Orientados a Ficheros…………………………………..4.2. Sistemas de Base de Datos……………………………………….

5. Arquitectura de un Sistema Gestor de Base de Datos Niveles:5.1. Externo…………………………………………………………....5.2. Conceptual………………………………………………………..5.3. Interno…………………………………………………………….

6. Modelos de Base de Datos:6.1. Distribuidas……………………………………………………….6.2. Cliente Servidor…………………………………………………..6.3. De N Capas……………………………………………………….6.4. Multidimensional…………………………………………………6.5. Orientada a Objetos………………………………………………

6.5.1. Definición………………………………………………..6.5.2. Diseño de Base de Datos Orientada a Objetos………….6.5.3. Objetivos…………………………………………………6.5.4. Fundamentos…………………………………………….6.5.5. Tipos…………………………………………………….

7. Arquitectura de los sistemas de Base de Datos:7.1. Centralizada………………………………………………………7.2. Distribuida………………………………………………………..

2

Page 3: BASE DE DATOS.docx

7.3. Relacional…………………………………………………………8. Relaciones………………………………………………………………..9. Transacciones y Concurrencia:

9.1. Concepto de Transacción………………………………………..9.2. Propiedades de las Transacciones……………………………….9.3. Problemas de Interferencia……………………………………...9.4. Serialización……………………………………………………..9.5. Locks y Deadlock……………………………………………….

10. Sistema de Manipulación de Base de Datos (DBMS): 10.1. Componentes…………………………………………………..10.2. Funcionalidades………………………………………………..10.3. Comandos………………………………………………………

11. Representación y Diagramas de Base de Datos:11.1. Tipos……………………………………………………………11.2. Diseño…………………………………………………………..11.3. Conversión……………………………………………………..11.4. Combinación……………………………………………………

12. Principios de Diseño:12.1. Integridad………………………………………………………12.2. Dependencias…………………………………………………...12.3. Teoría de Normalización………………………………………..12.4. Restricciones……………………………………………………

13. Lenguaje de Datos SQL: 13.1. Sentencias………………………………………………………13.2. Consultas Simples………………………………………………13.3. Comparacion de Strings………………………………………..13.4. Proyección………………………………………………………13.5. Selección………………………………………………………..

14. MySQL y PostgreSQL:14.1. Fundamentos Basicos de MySQL y PostgreSQL……………...14.2. Sentencias con MySQL y PostgreSQL…………………………

14.2.1. Consultas Multitablas…………………………………..14.2.2. Sub-Consultas…………………………………………..14.2.3. Inserción………………………………………………..14.2.4. Eliminación…………………………………………….14.2.5. Actualización…………………………………………..14.2.6. Usuario y Privilegios…………………………………...14.2.7. Respaldo y Restauración………………………………

CONCLUSIÓN………………………………………………………………

REFERENCIAS BIBLIOGRÁFICAS…………………………………………

3

Page 4: BASE DE DATOS.docx

REFERENCIAS ELECTRONICAS...…………………………………………

INTRODUCCIÓN

4

Page 5: BASE DE DATOS.docx

BASE DE DATOS

1. Fundamentos Básicos de Base de Datos:

1.1. Definición:

Es un conjunto de datos que son almacenados para ser utilizados más

adelante. Por ejemplo, una biblioteca puede considerarse una base de datos, ya

que está compuesta por documentos y libros para ser consultados. La mayoría de

las bases de datos están en formato digital, ya que en la informática es en el

campo donde más se utiliza.

1.2. Objetivo:

Tiene como objetivo organizar y almacenar datos para su fácil manejo, ya

que puede servirnos de ayuda cuando llevamos el registro de muchas cosas o

personas. Por ejemplo, en un hotel donde se reciben reservaciones a diario y es

muy difícil apuntar todo en un cuaderno donde sería demasiado fácil revolver los

datos y confundirse a la hora de atender al huésped.

1.3. Funciones:

La creación de una base de datos a la que puedan acudir los usuarios para

hacer consultas y acceder a la información que les interese es, pues, una

herramienta imprescindible de cualquier sistema.

5

Page 6: BASE DE DATOS.docx

Una base de datos típica conlleva la existencia de tres tipos de usuario con

relación a su diseño, desarrollo y funcionalidad que son:

El administrador de bases de datos (DBA: Database Administrator) que

diseña y mantiene la base de datos.

El desarrollador de aplicaciones (programador) que implementa las

transacciones e interfaces.

Los usuarios finales que consultan y editan la información de la base de

datos mediante un programa desarrollado a su medida.

Por lo tanto, podemos decir que el propósito de una base de datos es doble,

pues tiene que responder a consultas sobre los datos que contiene, y ejecutar

transacciones con la información. Una base de datos se diseña con un propósito

específico y debe ser organizada con una lógica coherente. Los datos podrán ser

compartidos por distintos usuarios y aplicaciones, pero deben conservar su

integridad y seguridad al margen de las interacciones de ambos. La definición y

descripción de los datos han de ser únicas para minimizar la redundancia y

maximizar la independencia en su utilización.

1.4. Elementos:

Datos: Es la parte esencial de la información, es decir, la información que

llega a la base de datos.

Atributos: Son los diferentes campos que conforman la estructura de una

base de datos.

Campos: Es la unidad más pequeña de datos.

Registro: Es un conjunto de campos o atributos relacionados entre sí.

Archivo: Es un conjunto de registros relacionados.

2. Sistema Gestor de Base de Datos (SGBD):

2.1. Definición:

6

Page 7: BASE DE DATOS.docx

También llamado DBMS (Data Base Management System), es una

colección de datos relacionados entre sí, estructurados y organizados, y un

conjunto de programas que acceden y gestionan esos datos. Es un conjunto de

programas que permiten crear y mantener una Base de datos, asegurando su

integridad, confidencialidad y seguridad. Dedicados a servir de interfaz entre la

base de datos y el usuario, las aplicaciones que la utilizan.

2.2. Objetivo:

Su propósito es el de manejar de manera clara, sencilla y ordenada un

conjunto de información.

Los objetivos principales de un sistema de base de datos es disminuir los

siguientes aspectos:

Redundancia e inconsistencia de datos. Puesto que los archivos que

mantienen almacenada la información son creados por diferentes tipos de

programas de aplicación existe la posibilidad de que si no se controla

detalladamente el almacenamiento, se pueda originar un duplicado de

información.

Dificultad para tener acceso a los datos. Un sistema de base de datos

debe contemplar un entorno de datos que le facilite al usuario el manejo de

los mismos.

7

Page 8: BASE DE DATOS.docx

Aislamiento de los datos. Puesto que los datos están repartidos en varios

archivos, y estos no pueden tener diferentes formatos, es difícil escribir

nuevos programas de aplicación para obtener los datos apropiados.

Anomalías del acceso concurrente. Para mejorar el funcionamiento

global del sistema y obtener un tiempo de respuesta más rápido, muchos

sistemas permiten que múltiples usuarios actualicen los datos

simultáneamente.

2.3. Características:

Abstracción de la información. El Administrador del SGBD ahorran a

los usuarios detalles acerca del almacenamiento físico de los datos.

Independencia. La independencia de los datos consiste en la capacidad de

modificar el esquema de una base de datos sin tener que realizar cambios

en las aplicaciones que se sirven de ella.

Redundancia mínima. Lo ideal es lograr una redundancia nula; no

obstante, en algunos casos la complejidad de los cálculos hace necesaria la

aparición de redundancias.

Consistencia. En aquellos casos en los que no se ha logrado esta

redundancia nula, es necesario que todos los datos repetidos se actualicen

de forma simultánea.

Integridad. Se trata de garantizar la validez de los datos almacenados.

Seguridad. Garantizar que la información se encuentre segura frente a

usuarios malintencionados, que intenten leer información privilegiada.

Respaldo y recuperación. Proporcionar formas eficientes de realizar

copias de seguridad, y restaurar estas copias.

Control de la concurrencia. En la mayoría de entornos, lo más habitual

es que sean muchas las personas que acceden a una base de datos, para

recuperar información, almacenarla.

Tiempo de respuesta. Es deseable minimizar el tiempo que tarda en

darnos la información y en almacenar los cambios realizados.

3. Administrador de Base de Datos:

8

Page 9: BASE DE DATOS.docx

3.1. Definición:

Es la persona encargada de definir y controlar las bases de datos

corporativas, además proporciona asesoría a los desarrolladores, usuarios y

ejecutivos que la requieran. Es la persona o equipo de personas profesionales

responsables del control y manejo del sistema de base de datos, generalmente

tienen experiencia en DBMS, diseño de bases de datos, Sistemas operativos,

comunicación de datos, hardware y programación.

3.2. Tareas:

Las tareas del administrador de datos, es decidir en primer término cuáles

datos deben almacenarse en la base de datos, y establecer políticas para mantener

y manejar los datos una vez almacenados. El administrador de datos es por lo

general, un gerente, no un técnico. El técnico responsable de poner en práctica las

decisiones del administrador de datos es el administrador de bases de datos (DBA,

data base administrator).

3.3. Funciones:

El Administrador de Bases de Datos es responsable primordialmente de:

Administrar la estructura de la Base de Datos.

Administrar la actividad de los datos.

Administrar el Sistema Manejador de Base de Datos.

Establecer el Diccionario de Datos.

Asegurar la confiabilidad de la Base de Datos.

Confirmar la seguridad de la Base de Datos.

4. Evolución de los sistemas:

4.1. Sistemas Orientados a Ficheros:

Los sistemas computacionales se utilizaron inicialmente en los negocios

para funciones de contabilidad. A estos primeros sistemas se les llamó sistemas de

procesamiento de datos y trataban de imitar los procedimientos manuales

existentes.

9

Page 10: BASE DE DATOS.docx

Al principio, la mayoría de los archivos se almacenaban en cinta

magnética, ya que el almacenamiento en disco era todavía caro, y se accedía a los

datos de forma secuencial, lo que significa que cada registro puede leerse

únicamente después de haber sido leídos todos los que le preceden. Estos archivos

se procesaban por lotes, es decir, todos los registros de un archivo se procesaban

al mismo tiempo.

Un programa que realiza una tarea específica es un programa de aplicación

y un conjunto de programas que trabajan en tareas relacionadas entre sí se llama

sistema de aplicación.

Los archivos secuenciales servían para producir facturas e informes una o

dos veces al mes pero para tareas rutinarias se necesitaba acceso directo a los

datos. Los operadores debían introducir datos redundantes, lo que requería

esfuerzo adicional y aumentaba la probabilidad de error.

A finales de los sesenta se produjo la transición del procesamiento de los

datos al procesamiento de la información. Se hace una distinción entre datos e

información. Por datos se entienden hechos aislados, mientras que información

son datos procesados.

4.2. Sistemas de Base de Datos:

Se dice que los sistemas de bases de datos tienen sus raíces en el proyecto

estadounidense Apolo de mandar al hombre a la luna, en los años sesenta. En

aquella época, no había ningún sistema que permitiera gestionar la inmensa

cantidad de información que requería el proyecto. La primera empresa encargada

del proyecto, NAA (North American Aviation), desarrolló un software

denominado GUAM (General Update Access Method) que estaba basado en el

concepto de que varias piezas pequeñas se unen para formar una pieza más

grande, y así sucesivamente hasta que el producto final está ensamblado. Esta

estructura, que tiene la forma de un árbol, es lo que se denomina una estructura

jerárquica.

10

Page 11: BASE DE DATOS.docx

A mediados de los sesenta, IBM se unió a NAA para desarrollar GUAM

en lo que ahora se conoce como IMS (Information Management System). El

motivo por el cual IBM restringió IMS al manejo de jerarquías de registros fue el

de permitir el uso de dispositivos de almacenamiento serie, más exactamente las

cintas magnéticas, ya que era un requisito del mercado por aquella época.

5. Arquitectura de un Sistema Gestor de Base de Datos Niveles:

5.1. Externo:

Es el más cercano a los usuarios, es decir, es donde se describen varios

esquemas externos o vistas de usuarios. Cada esquema describe la parte de la BD

que interesa a un grupo de usuarios en este nivel se representa la visión individual

de un usuario o de un grupo de usuarios.

5.2. Conceptual:

Describe la estructura de toda la BD para un grupo de usuarios mediante

un esquema conceptual. También describe las entidades, atributos, relaciones,

operaciones de los usuarios y restricciones, ocultando los detalles de las

estructuras físicas de almacenamiento. Representa la información contenida en la

BD.

5.3. Interno:

11

Page 12: BASE DE DATOS.docx

El más cercano al almacenamiento físico, es decir, tal y como están

almacenados en el ordenador. Describe la estructura física de la BD mediante un

esquema interno. Se especifica con un modelo físico y describe los detalles de

cómo se almacenan físicamente los datos: los archivos que contienen la

información, su organización, los métodos de acceso a los registros, los tipos de

registros, la longitud, los campos que los componen, etcétera.

6. Modelos de Base de Datos:

6.1. Distribuidas:

Es una colección de datos distribuidos en diferentes nodos de una red de

computadoras. Cada sitio de la red es autónomo, puede ejecutar aplicaciones

locales y al menos una aplicación global, lo cual requiere el acceso a datos,

ubicados en varios sitios, usando un subsistema de comunicación.

6.2. Cliente Servidor:

Es un modelo para el desarrollo de sistemas de información, en el que las

transacciones se dividen en procesos independientes que cooperan entre sí para

intercambiar información, servicios o recursos. Se denomina cliente al proceso

que inicia el diálogo o solicita los recursos y servidor, al proceso que responde a

las solicitudes. Es el modelo de interacción más común entre aplicaciones en una

red.

6.3. De N Capas:

La ventaja principal de este estilo es que el desarrollo se puede llevar a

cabo en varios niveles y, en caso de que sobrevenga algún cambio, sólo se ataca al

nivel requerido sin tener que revisar entre código mezclado. Además, permite

distribuir el trabajo de creación de una aplicación por niveles; de este modo, cada

grupo de trabajo está totalmente abstraído del resto de niveles.

6.4. Multidimensional:

Básicamente no se diferencian demasiado de las bases de datos

relacionales, la diferencia está más bien a nivel conceptual; en las bases de datos

12

Page 13: BASE DE DATOS.docx

multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, o

bien representan dimensiones de la tabla.

6.5. Orientada a Objetos:

6.5.1. Definición:

Las bases de datos orientadas a objetos se crearon para tratar de satisfacer

las necesidades de estas nuevas aplicaciones. La orientación a objetos ofrece

flexibilidad para manejar algunos de estos requisitos y no esta limitada por los

tipos de datos y los lenguajes de consulta de los sistemas de bases de datos

tradicionales.

Los objetos estructurados se agrupan en clases. Las clases utilizadas en un

determinado lenguaje de programación orientado a objetos son las mismas clases

que serán utilizadas en una base de datos; de tal manera, que no es necesaria una

transformación del modelo de objetos para ser utilizado.

6.5.2. Diseño de Base de Datos Orientada a Objetos:

Está diseñada para ser eficaz, desde el punto de vista físico, para

almacenar objetos complejos. Evita el acceso a los datos; esto es mediante los

métodos almacenados en ella. Es más segura ya que no permite tener acceso a los

datos (objetos); esto debido a que para poder entrar se tiene que hacer por los

métodos que haya utilizado el programador.

6.5.3. Objetivos:

El objetivo de una base de datos orientada a objetos son los mismos que

los de las bases de datos tradicionales, pero con la ventaja de representar las

modelos de datos con un marco mucho más eficiente, manteniendo la integridad y

relación entre ellos.

Recordemos que un objeto es una estructura que tiene asociado un estado y

un comportamiento (propiedades y métodos). Estas bases tienen las características

de todo lo que es orientado a objeto que son Herencia, Polimorfismo, Abstracción

y Encapsulamiento.

13

Page 14: BASE DE DATOS.docx

6.5.4. Fundamentos:

En la base de datos orientada a objetos, los datos están encapsulados y se

dice que estos son activos más que pasivos; debido a que por ejemplo: La clase

mayor detecta si tiene un hijo (objeto) más o uno menos, es por esto que se dice

que están activos ya que cuentan los hijos u objetos que tiene.

En el modelo de objetos existen cuatro características fundamentales:

Abstracción: denota las características esenciales de un objeto que lo

distinguen de todos los demás tipos objeto, y proporciona así fronteras

conceptuales nítidamente definidas respecto a la perspectiva del observador". Una

abstracción se centra en la visión externa de un objeto, y, por tanto sirve para

separar el comportamiento esencial de un objeto de su implantación.

Modularidad: Se basa en el concepto de fragmentación de los programas

en componentes individuales para reducir su complejidad en algún grado, y para

crear además una serie de fronteras bien definidas y documentadas dentro del

programa, dónde estas fronteras o interfaces tienen un incalculable valor cara a la

comprensión del programa.

Jerarquía: una clasificación u ordenación de abstracciones.

6.5.5. Tipos:

Una de las características más importantes del paradigma orientado a

objetos es la distinción entre la interface pública de una clase y sus elementos

privados (encapsulación).

El estándar propuesto hace esta distinción hablando de la especificación

externa de un tipo y de sus implementaciones. Una interface es una especificación

del comportamiento abstracto de un tipo de objeto y contiene las signaturas de las

operaciones Una clase es una especificación del comportamiento abstracto y del

estado abstracto de un tipo de objeto.

14

Page 15: BASE DE DATOS.docx

El estándar propuesto soporta la herencia simple y la herencia múltiple

mediante las interfaces. La interface o clase más baja de la jerarquía es el tipo más

específico.

7. Arquitectura de los sistemas de Base de Datos:

7.1. Centralizada:

Los sistemas de bases de datos centralizadas son aquellos que se ejecutan

en un único sistema informático sin interaccionar con ninguna otra computadora.

Tales sistemas comprenden el rango desde los sistemas de bases de datos mono

usuarios ejecutándose en computadoras personales hasta los sistemas de bases de

datos de alto rendimiento encuitándose en grandes sistemas.

7.2. Distribuida:

Es un sistema en el cual múltiples sitios de bases de datos están ligados por

un sistema de comunicaciones, de tal forma que, un usuario en cualquier sitio

pueda acceder los datos en cualquier parte de la red exactamente como si los datos

en cualquier parte de la red exactamente como si los datos estuvieran almacenados

en su sitio propio.

7.3. Relacional:

Los sistemas de base de datos relacionales son aquellos que almacenan y

administran de manera lógica los datos en forma de tablas. Una tabla es, a su vez,

un método para presentar los datos en la forma de filas y columnas.

Cada columna representa un campo único de un registro. Varias de estas

columnas o campo componen un registro, proveyendo información significativa e

interrelacionada. Cada registro es representado en una fila.

8. Relaciones:

Las bases de datos relacionales representan las relaciones mediante las

claves ajenas. No tienen estructuras de datos que formen parte de la base de datos

y que representen estos enlaces entre tablas. Las relaciones se utilizan para hacer

concatenaciones de tablas. Por el contrario, las bases de datos orientadas a objetos

15

Page 16: BASE DE DATOS.docx

implementan sus relaciones incluyendo en cada objeto los identificadores de los

objetos con los que se relaciona.

9. Transacciones y Concurrencia:

9.1. Concepto de Transacción:

Una transacción es una unidad de programa que tiene acceso y

posiblemente actualiza varios elementos de datos. Los sistemas que tratan el

problema de control de concurrencia permiten que sus usuarios asuman que cada

una de sus aplicaciones se ejecuta atómicamente, como si no existieran otras

aplicaciones ejecutándose concurrentemente. Esta abstracción de una ejecución

atómica y confiable de una aplicación se conoce como una transacción.

9.2. Propiedades de las Transacciones:

Atomicidad. Se refiere al hecho de que una transacción se trata como una

unidad de operación.

Consistencia. La consistencia de una transacción es simplemente su

correctitud. En otras palabras, una transacción es un programa correcto

que lleva a la base de datos de un estado consistente a otro con la misma

característica.

Aislamiento. Una transacción en ejecución no puede revelar sus

resultados a otras transacciones concurrentes antes de finalizar.

Permanencia. Es la propiedad de las transacciones que asegura que una

vez que una transacción finaliza exitosamente, sus resultados son

permanentes y no pueden ser borrados de la base de datos por alguna falla

posterior.

Confiabilidad. Puesto que los sistemas de base de datos en línea no

pueden fallar.

Disponibilidad. Debido a que los sistemas de base de datos en línea deben

estar actualizados correctamente todo el tiempo.

Tiempos de Respuesta. En sistemas de este tipo, el tiempo de respuesta

de las transacciones no debe ser mayor a doce segundos.

16

Page 17: BASE DE DATOS.docx

9.3. Problemas de Interferencia:

Cuando dos o más transacciones se ejecutan concurrentemente, sus

operaciones se ejecutan en un modelo intercalado. Esto significa que las

operaciones de un programa se ejecutan entre dos operaciones de otro programa.

Esta intercalación puede causar que los programas no funcionen correctamente, o

interfieran, y de esta manera, dejaría inconsistente a la base de datos. Esta

interferencia se debe completamente a la intercalación de las operaciones, puesto

que puede ocurrir a pesar de que cada programa funciona correctamente cuando se

ejecuta de forma individual y no se presenta falla alguna en el sistema. El objetivo

del control de concurrencia es evitar la interferencia y, por ende, los errores.

9.4. Serialización:

Consiste en un proceso de codificación de un objeto en un medio de

almacenamiento con el fin de transmitirlo a través de una conexión en red como

una serie de bytes o en un formato humanamente más legible como XML o JSON,

entre otros.

9.5. Locks y Deadlock:

Un candado (Locks) es un mecanismo de control de acceso concurrente a

un dato. Los datos pueden tener candados en dos modos. Las peticiones por

candados se hacen al manager de control de concurrencia. La transacción puede

proceder solo después de que una solicitud es otorgada Un deadlock se forma

cuando tienes dos transacciones de múltiples tablas y se están bloqueando

mutuamente.

10. Sistema de Manipulación de Base de Datos (DBMS):

10.1. Componentes:

Se compone de un lenguaje de definición de datos, de un lenguaje de

manipulación de datos y de un lenguaje de consulta.

El lenguaje de definición de datos (DDL) es utilizado para describir todas

las estructuras de información y los programas que se usan para construir,

17

Page 18: BASE DE DATOS.docx

actualizar e introducir la información que contiene una base de datos. El lenguaje

de manipulación de datos (DML) es utilizado para escribir programas que crean,

actualizan y extraen información de las bases de datos. El lenguaje de consulta

(SQL) es empleado por el usuario para extraer información de la base de datos.

10.2. Funcionalidades:

Las funciones esenciales de un DBMS son la descripción, manipulación y

utilización de los datos.

Descripción: Incluye la descripción de: Los elementos de datos, su

estructura, sus interrelaciones, sus validaciones. Tanto a nivel externo

como lógico global e interno esta descripción es realizada mediante un

LDD o Lenguaje de Descripción de Datos.

Manipulación: Permite: Buscar, Añadir, Suprimir y Modificar los datos

contenidos en la Base de Datos.

La manipulación misma supone: Definir un criterio de selección, Definir

la estructura lógica a recuperar, Acceder a la estructura física. Esta

manipulación es realizada mediante un LMD o Lenguaje de Manipulación

de Datos.

Utilización: La utilización permite acceder a la base de datos, no a nivel

de datos sino a la base como tal, para lo cual: Reúne las interfaces de los

usuarios y suministra procedimientos para el administrador.

10.3. Comandos:

Existen dos tipos de comandos SQL:

DLL que permiten crear y definir nuevas bases de datos, campos e índices.

DML que permiten generar consultas para ordenar, filtrar y extraer datos

de la base de datos.

18

Page 19: BASE DE DATOS.docx

11. Representación y Diagramas de Base de Datos:

11.1. Tipos:

El esquema de una base de datos describe la estructura de una base de

datos, en un lenguaje formal soportado por un sistema de gestión 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.

Esquema Conceptual, un mapa de conceptos y sus relaciones.

Esquema Lógico, un mapa de las entidades y sus atributos y las

relaciones.

Esquema Físico, una aplicación de un esquema lógico.

Esquema Objeto, Base de datos Oracle Objeto.

11.2. Diseño:

Cada nivel de concreción se caracteriza por la realización de un esquema

representativo de la base de datos.

19

Page 20: BASE DE DATOS.docx

Conceptual. Realización de un esquema o diagrama conceptual

representativo de las entidades y sus relaciones. Es el nivel de abstracción

más alto. La herramienta típica utilizada para la representación de este

modelo es el diagrama Entidad-Relación.

Lógico. Consiste en la representación de un esquema lógico de la

estructura. Depende del tipo de SGBD o del modelo elegido (jerárquico,

de red, relacional). Existen una serie de reglas que permiten transformar el

diagrama Entidad-Relación del diseño conceptual al diseño lógico.

Físico. Es una descripción de la implementación de la base de datos.

Incluye la descripción de las estructuras de almacenamiento y los métodos

de acceso a los datos. Depende de un SGBD específico. La forma más

sencilla es implementar el diseño lógico mediante el lenguaje SQL,

obteniendo así el diseño físico.

11.3. Conversión:

Debido a que algunos modelos emplean diseños similares, se le puede

realizar una conversión de un diseño a otro. Siempre y cuando sean parecidos.

11.4. Combinación:

De igual manera de la que se puede convertir un modelo de diseño a otro,

también se pueden combinar diseños de la representación de bases de datos.

20

Page 21: BASE DE DATOS.docx

12. Principios de Diseño:

12.1. Integridad:

Se refiere a la corrección y complementación de los datos en una base de

datos. Cuando los contenidos se modifican con sentencias INSERT, DELETE o

UPDATE, la integridad de los datos almacenados puede perderse de muchas

maneras diferentes. Pueden añadirse datos no válidos a la base de datos, tales

como un pedido que especifica un producto no existente.

12.2. Dependencias:

Una dependencia es una conexión entre uno o más atributos. Por ejemplo

si se conoce la cedula de identidad de una persona, se tiene una conexión con el

Apellido o Nombre. Las dependencias funcionales del sistema se escriben

utilizando nombre, de la siguiente manera:

CI → Nombre y apellido

12.3. Teoría de Normalización:

Las reglas de normalización sirven para comprobar si las tablas están

estructuradas correctamente. La normalización es más útil una vez representados

todos los elementos de información y después de haber definido un diseño

preliminar. La idea es asegurarse de que se han dividido los elementos de

información en las tablas adecuadas. Lo que la normalización no puede hacer es

garantizar que se dispone de los elementos de datos correctos para empezar a

trabajar.

Las reglas se aplican consecutivamente en cada paso para garantizar que el

diseño adopta lo que se conoce como "forma normal".

12.4. Restricciones:

Una restricción es una condición que obliga el cumplimiento de ciertas

condiciones en la base de datos. Algunas no son determinadas por los usuarios,

sino que son inherentemente definidas por el simple hecho de que la base de datos

21

Page 22: BASE DE DATOS.docx

sea relacional. Algunas otras restricciones las puede definir el usuario, por

ejemplo, usar un campo con valores enteros entre 1 y 10.

Las restricciones proveen un método de implementar reglas en la base de

datos. Las restricciones restringen los datos que pueden ser almacenados en las

tablas.

13. Lenguaje de Datos SQL:

El lenguaje de consulta estructurada o SQL, es un lenguaje declarativo de

acceso a bases de datos relacionales que permite especificar diversos tipos de

operaciones en ellas.

13.1. Sentencias:

Las sentencias SQL pertenecen a dos categorías principales: Lenguaje de

Definición de Datos, DDL y Lenguaje de Manipulación de Datos, DML. Estos

dos lenguajes no son lenguajes en sí mismos, sino que es una forma de clasificar

las sentencias de lenguaje SQL en función de su cometido. La diferencia principal

reside en que el DDL crea objetos en la base de datos y sus efectos se pueden ver

en el diccionario de la base de datos; mientras que el DML es el que permite

consultar, insertar, modificar y eliminar la información almacenada en los objetos

de la base de datos.

Sentencia DDL ObjetivoAlter procedure Recompilar un procedimiento almacenado.Alter Table Añadir o redefinir una columna, modificar la asignación

de almacenamiento.Analyze Recoger estadísticas de rendimiento sobre los objetos de

la BD para utilizarlas en el optimizador basado en costes.Create Table Crear una tabla.Create Index Crear un índice.Drop Table Eliminar una tabla.Drop Index Eliminar un índice.Grant Conceder privilegios o papeles, roles, a un usuario o a

otro rol.Truncate Eliminar todas las filas de una tabla.Revoke Retirar los privilegios de un usuario o rol de la base de

datos.Sentencia DML Objetivo

22

Page 23: BASE DE DATOS.docx

Insert Añadir filas de datos a una tabla.Delete Eliminar filas de datos de una tabla.Update Modificar los datos de una tabla.Select Recuperar datos de una tabla.Commit Confirmar como permanentes las modificaciones

realizadas.Rollback Deshacer todas las modificaciones realizadas desde la

última confirmación.

13.2. Consultas Simples:

Las consultas son operaciones que se realizan sobre los datos de una base

de datos. Estas operaciones pueden ser de diversos tipos:

Consultas de selección de datos: permiten recuperar los datos almacenados

en las tablas en el formato y orden adecuados. Además permiten filtrar y

agrupar la información. El resultado de estas consultas consiste en una

tabla "virtual": una tabla que físicamente no ocupa espacio (porque trabaja

sobre los datos originales de las tablas sobre las que se define), pero que

permite ser manejada de la misma forma que una tabla real.

Consultas de inserción de datos: permiten agregar registros a una tabla.

Consultas de modificación: permiten modificar los valores de los campos

de los registros de una tabla.

Consultas de borrado: permiten eliminar registros de una tabla.

Consultas de creación de tabla: permiten crear nuevas tablas cuyos campos

y registros se obtienen a partir de los almacenados en otras tablas.

La consulta más simple posible consiste en la selección de campos y

registros de una tabla. Se identifican los campos que nos interesan y una

condición que deben cumplir los registros seleccionados. El resultado es una tabla

que es un subconjunto de la original.

13.3. Comparación de Strings:

Las siguientes funciones escalares realizan una operación sobre un valor

de cadena de entrada y devuelven un valor de cadena o un valor numérico:

23

Page 24: BASE DE DATOS.docx

Todas las funciones integradas de cadena son deterministas. Esto significa

que devuelven el mismo valor siempre que se llamen con un conjunto

determinado de valores de entrada. Para obtener más información acerca del

determinismo de funciones, vea Funciones deterministas y no deterministas.

Cuando se pasan a las funciones de cadena argumentos que no son valores

de cadena, el tipo de entrada se convierte explícitamente en un tipo de datos de

texto. Para obtener más información, vea Conversiones de tipos de datos (motor

de base de datos).

13.4. Proyección:

Una proyección es un caso concreto de la operación selección, esta última

devuelve todos los campos de aquellos registros que cumplen la condición que he

establecido. Una proyección es una selección en la que seleccionamos aquellos

campos que deseamos recuperar.

13.5. Selección:

Las consultas de selección se utilizan para indicar al motor de datos que

devuelva información de las bases de datos, esta información es devuelta en forma

de conjunto de registros que se pueden almacenar en un objeto recordset

14. MySQL y PostgreSQL:

14.1. Fundamentos Basicos de MySQL y PostgreSQL:

24

Page 25: BASE DE DATOS.docx

MySQL es un sistema de gestión de bases de datos relacional, licenciado

bajo la GPL de la GNU. Su diseño multihilo le permite soportar una gran carga de

forma muy eficiente. MySQL fue creada por la empresa sueca MySQL AB, que

mantiene el copyright del código fuente del servidor SQL, así como también de la

marca.

Las principales características de este gestor de bases de datos son las

siguientes:

Aprovecha la potencia de sistemas multiprocesador, gracias a su

implementación multihilo.

Soporta gran cantidad de tipos de datos para las columnas.

Dispone de API’s en gran cantidad de lenguajes (C, C++, Java,

PHP, etc).

Gran portabilidad entre sistemas.

Soporta hasta 32 índices por tabla.

Gestión de usuarios y passwords, manteniendo un muy buen nivel

de seguridad en los datos.

PostGreSQL es un sistema de gestión de bases de datos objeto-relacional.

Es un sistema objeto-relacional, ya que incluye características de la orientación a

objetos, como puede ser la herencia, tipos de datos, funciones, restricciones,

disparadores, reglas e integridad transaccional. A pesar de esto, PostGreSQL no es

un sistema,

A continuación se enumeran las principales características de este gestor

de bases de datos:

Implementación del estándar SQL92/SQL99.

Soporta distintos tipos de datos: además del soporte para los tipos

base, también soporta datos de tipo fecha, monetarios, elementos

gráficos, datos sobre redes (MAC, IP …), cadenas de bits, etc.

También permite la creación de tipos propios.

Incorpora una estructura de datos array.

25

Page 26: BASE DE DATOS.docx

Incorpora funciones de diversa índole: manejo de fechas,

geométricas, orientadas a operaciones con redes, etc.

Permite la declaración de funciones propias, así como la definición

de disparadores.

Soporta el uso de índices, reglas y vistas.

Incluye herencia entre tablas (aunque no entre objetos, ya que no

existen), por lo que a este gestor de bases de datos se le incluye

entre los gestores objeto-relacionales.

Permite la gestión de diferentes usuarios, como también los

permisos asignados a cada uno de ellos. de gestión de bases de

datos puramente orientado a objetos.

14.2. Sentencias con MySQL y PostgreSQL:

14.2.1. Consultas Multitablas:

Es un tipo de composición de tablas, permite emparejar filas de distintas

tablas de forma más eficiente que con el producto cartesiano cuando una de las

columnas de emparejamiento está indexada. Ya que en vez de hacer el producto

cartesiano completo y luego seleccionar la filas que cumplen la condición de

emparejamiento, para cada fila de una de las tablas busca directamente en la otra

tabla las filas que cumplen la condición, con lo cual se emparejan sólo las filas

que luego aparecen en el resultado.

14.2.2. Sub-Consultas:

Una sub-consulta es una consulta incluida dentro de una cláusula WHERE

o HAVING de otra consulta. En ocasiones, para expresar ciertas condiciones no

hay más remedio que obtener el valor que buscamos como resultado de una

consulta.

El soporte más reciente de sub-consultas esta MySQL y el rendimiento

todavía está siendo mejorado para algunos tipos de sub-consultas en PostgreSQL.

Sin embargo, debe ser muy claro que sigue existiendo una gran cantidad de sub-

26

Page 27: BASE DE DATOS.docx

consultas básicas con los principales problemas de optimización en las versiones

actuales de MySQL.

14.2.3. Inserción, eliminación, actualización:

Los disparadores son soportados en MySQL a partir de la versión 5.0.2.

Algunos de los soportes existentes son los disparadores para las sentencias

INSERT, UPDATE y DELETE

Por ejemplo, si un disparador está monitoreando los cambios en la

columna salario, podría escribirse un disparador como:

CREATE TRIGGER ver_salario

BEFORE UPDATE ON empleados

REFERENCING NEW ROW AS n, OLD ROW AS o

FOR EACH ROW

IF n.salario <> o.salario THEN

END IF;

Desde 1997 PostgreSQL soporta el uso de disparadores, estos pueden

anexarse a las tablas pero no a las vistas; aunque a las vistas se les pueden crear

reglas. Al igual que en MySQL los disparadores de PostgreSQL se pueden activar

luego de sentencias INSERT, UPDATE o DELETE Cuando hay varios

disparadores, se activan en orden alfabético.

Además de permitir el uso de funciones en el lenguaje nativo de

PostgreSQL, PL/PgSQL, los disparadores también permiten invocar funciones

escritas en otros lenguajes como PL/Perl.

En Postgres un disparador ejecuta una función la cual contiene el código

de lo que se requiere, esto difiere del método expuesto anteriormente para MySQL

que escribe el código a ejecutarse dentro del mismo disparador.

El siguiente es un ejemplo de disparador creado con su respectiva función:

CREATE OR REPLACE FUNCTION actualizar() RETURNS TRIGGER AS $ejemplo$

BEGIN

NEW.nombre := NEW.nombres || ' ' || NEW.apellidos ;

RETURN NEW;

27

Page 28: BASE DE DATOS.docx

END;

$ejemplo$ LANGUAGE plpgsql;

CREATE TRIGGER ejemplo

BEFORE INSERT OR UPDATE ON tabla

FOR EACH ROW EXECUTE PROCEDURE actualizar();

14.2.4. Usuario y Privilegios:

MySQL es un sistema de gestión de bases de datos claramente orientado a

la web, y una de los síntomas en su arquitectura ha venido siendo que la creación

de los usuarios se realiza en la misma sentencia que el permiso (grant) de acceso a

una o varias bases de datos. La orientación de MySQL va cambiando con el

tiempo y el uso que se le da a las bases de datos cada vez trasciende más el

entorno web, actualmente hay tres formas de crear un usuario: la forma clásica,

con la sentencia GRANT

Utilizando la sentencia GRANT podemos crear un usuario a la par que

otorgarle uno o varios privilegios sobre los objetos de una base de datos, o la base

de datos completa.

PosgreSQL permite crear provilegios por tabla en la base de datos de

manera que un usuario en particular pueda crear consultas SELECT pero no pueda

ejecutar el resto UPDATE, DELETE, INSERT.. el problema de esto es que pasa

si tienes una BD con muchas tablas, tendrias q generar la sentencia grant por cada

tabla GRANT SELECT ON TABLE public.table to u_read; para solucionar esto

dejo aqui una consulta que genera todas las sentencias GRANT para cada tabla

dentro de la BD.

14.2.5. Respaldo y Restauración:

Para hacer un respaldo de una base de datos MySQL desde nuestro consola

o mediante comandos shell podemos usar el comando mysqldump.

Comando:

28

Page 29: BASE DE DATOS.docx

mysqldump -u "usuario" -p"contraseña" nombre-de-la-base-de-datos > nombre-

del-respaldo.sql

Para restaurar un respaldo de una base de datos MySQL usamos el

siguiente comando.

Comando:

mysql -u "usuario" -p"contraseña" nombre-de-la-base-de-datos < nombre-del-

respaldo.sql

Y para hacer respaldos y restauración de datos cuando se utiliza

postgreSQL como DBMS. Respaldando los datos: pg_dump

pg_dump es una herramienta de línea de comandos que nos permita hacer

un respaldo de alguna de las bases de datos (o todas) en nuestro servidor postgres.

Permite hacer el volcado de datos en diferentes formatos ya sean

compresos, texto plano, etc. En resumen, escribe en un archivo (o salida estándar)

las instrucciones SQL necesarias para hacer un respaldo de la base de datos.

CONCLUSIÓN

29

Page 30: BASE DE DATOS.docx

REFERENCIAS BIBLIOGRÁFICAS

LIPSCHULTS, SEYMOUR. Estructura de Datos teoría y problemas. McGraw-Hill. 1988.

CORMEN, LEISERSON, RIVEST. Introducción a la Algoritmica, Mc Graw Hill, 1990.

AGUILAR, MARTÍNEZ. Programación en C, Metodología, Algoritmos y estructura de datos. Editorial McGraw-Hill.

30

Page 31: BASE DE DATOS.docx

REFERENCIAS ELECTRÓNICAS

GRAFOS Y TAD GRAFO. Consultado el 24/07/07. Disponible en: http:// es.wikipedia.org/wiki/Grafo y http://es.wikipedia.org/wiki/Grafo_(estr uctura_de_datos)

ALGORITMOS FUNDAMENTALES DE LOS GRAFOS. Consultado el 24/07/2014. Disponible en: https://docs.google.com/presentation/d/1-jsQJ-a4lNOSO1EHbLs9Qpq_97_w-tYZnEo_mB3d3UY/edit?pli=1#sli de=id.i0

AGUILAR, MARTÍNEZ. Programación en C, Metodología, Algoritmos y estructura de datos. Editorial McGraw-Hill. Consultado el 24/07/2014. Disponible en: www.mcgraw-hill.es/bcv/guide/capitulo/8448198441.pdf

31

Page 32: BASE DE DATOS.docx

32