Base de Datos I (I Bimestre)

Preview:

DESCRIPTION

Universidad Técnica Particular de Loja Ciencias de la Computación Base de Datos I I Bimestre Abril - Agosto 2007 Ponente: Ing. Audrey Romero

Citation preview

ESCUELA:

PONENTE:

BIMESTRE:

BASE DE DATOS I

CICLO:

CIENCIAS DE LA COMPUTACIÓN

I BIMESTRE

ING. AUDREY ROMERO

ABRIL – AGOSTO 2007

Objetivo General

• Dotar al profesional en formación del marco conceptual, técnico y metodológico en diseño y desarrollo de SBD relacionales normalizados.

Orientaciones Generales• Materiales

– Guía – Texto base

• ¿Cómo estudiar?– Técnicas de estudio – Organice su tiempo – “No deje para mañana lo que puede hacer HOY”

Orientaciones Generales(2)• Apoyo tecnológico e interactividad EVA

– La interactividad y participación en los foros tiene una calificación de 2 puntos.

– Acceso desde www.utpl.edu.ec

Objetivo General

• Dotar al profesional en formación del marco conceptual, técnico y metodológico en diseño y desarrollo de SBD relacionales normalizados.

PRIMER BIMESTRE

Objetivos• Conocer elementos conceptuales de BD y SGBD, sus

componentes, personal implicado, historia y usos comunes.• Analizar los componentes del entorno de BD.• Aplicar el modelo de datos relacional para representar datos

y destacar su importancia.• Contruir consultas a través de algebra relacional, SQL.

Introducción a las Bases de datos

TEMA 1

• Sistemas basados en archivosSistemas basados en archivos– Predecesores de los SGBD– Colección de programas de aplicación. – Cada programa define y gestiona sus datos.– Problemas significativos:

• Redundancia de datos• Dependencia entre programas y datos.

• Limitaciones Sistemas basados en archivos– Separación y aislamiento de los datos – Duplicación de los datos – Dependencia entre los datos – Formatos de archivos incompatibles– Consultas fijas– Crecimiento de programas de aplicación

• Sistemas basados en archivosEjemplo: En un banco que tiene aplicativos basados en archivos

un cliente apertura una cuenta y luego solicita un crédito.

• Sistemas de gestión de base de datosSistemas de gestión de base de datos– BDBD es una colección de datos relacionados.– SGBDSGBD software que gestiona y controla el acceso a la BD.– Aplicación BDAplicación BD programa que interactúa con BD.El SGBD interactúa con las aplicaciones y BD.– Compras en el supermercado– Depósito en el banco– Reserva en un hotel

• Un SGBD normalmente:– Permite a los usuarios definir la BD mediante DDL y

manipular la BD mediante DML.– Proporciona acceso controlado a la BD.– Proporciona un catálogo que contiene descripciones de

la BD.

• Componentes de un entorno SGBD

PUENTE

Ventajas SGBD• Control de redundancia de datos• Coherencia y Compartición de datos• Mayor integración de datos • Mayor seguridad • Mejor accesibilidad de datos y capacidad de respuesta.• Productividad mejorada• Mejora de seguridad y recuperación

Desventajas SGBD• Complejidad • Tamaño• Coste de SGBD• Coste de hardware adicional • Costes de conversión de hardware• Prestaciones• Mayor impacto a fallos

• Interactividad en el campus virtualInteractividad en el campus virtual– Describir los usos de las bases de datos, evitando

repetir el tipo de aplicación si otro participante ya lo ha descrito.

– Consulte y comparta a través del foro sobre los SGDB orientados a objetos y los objeto – relacionales.

MODELO RELACIONAL

TEMA 2

• Modelo relacional– Trabaja con relaciones, atributos y tuplas. – Su fortaleza la estructura lógica simple.

Estructura Concepto

Relación Tabla con columnas y filas

Atributo Columna nominada de una relación

Dominio Conjunto de valores permitidos para uno o más atributos

Tupla Una tupla es un fila de una relación.

Grado Número de atributos que contiene

Cardinalidad Número de tuplas que contiene

BD Relacional

Colección de relaciones normalizadas donde cada relación tiene un nombre distintivo.

• Propiedades de las relaciones– Nombres distintos– Cada celda tiene un valor atómico – Cada atributo tiene un nombre distinto– Los valores de un atributo tienen igual dominio– No hay tuplas duplicadas– El orden de los atributos no tiene importancia– Teóricamente no importa el orden de tuplas

• Claves relacionales– SuperclaveSuperclave, atributo(s) que identifica(n) unívocamente

cada tupla de la relación. – ClaveClave candidatacandidata, superclave que no contiene atributos

adicionales innecesarios.– ClaveClave principalprincipal, la clave candidata seleccionada para

identificar unívocamente una relación.– ClaveClave externa/ajenaexterna/ajena, atributo de R1 que se corresponde

con la clave candidata de R2.

• Restricciones de integridad Modelo Relacional– Valores nulos – Integridad de entidad– Integridad referencial– Restricciones generales de usuario

• EJEMPLO– La información sobre sucursales se la representará por la

relación BRANCH, que tiene las columnas para los atributos branchNo, street, city, post code.

– Además se tiene información de empleados en la relación STAFF con columnas para los atributos staffNo, fName, lname, position, sex, DOB, salary, y BranchNo.

• Identifique:– Las relaciones – Los atributos – Claves principales (integridad de entidades)– Claves candidatas– Superclave – Clave Externa (integridad referencial)– Grado – Cardinalidad – Dominios

ALGEBRA RELACIONAL

TEMA 3

• Algebra Relacional

Lenguaje procedimental con operaciones que se aplican a una o más relaciones.

• Trabajaremos con dos tablas LIBRO (idlibro, titulo, idautor, editorial)LIBRO (idlibro, titulo, idautor, editorial) AUTOR (idautor, autor)AUTOR (idautor, autor)

• Operaciones fundamentales – SelecciónSelección, selecciona tuplas que satisfacen una

condición.

Ejemplo: Seleccione los libros de la editorial Ra-Ma.

editorial = “Ra-Ma” (libro)editorial = “Ra-Ma” (libro)

<condicion>(<nombretabla>)<condicion>(<nombretabla>)

– ProyecciónProyección, identifica atributos/columnas para presentar.

Ejemplo:Muestre los titulos con su editorial de los

libros existentes. libro, autorlibro, autor (libro)(libro)

<atributo><atributo> (<nombretabla>)(<nombretabla>)

– Producto CartesianoProducto Cartesiano, combina/multiplica todas las tuplas entre tablas.

Ejemplo:Realice el producto carteciano entre libro y autor.

(libro x autor)

(<nombretabla1> (<nombretabla1> x x <nombretabla2>)<nombretabla2>)

– Producto NaturalProducto Natural, combina/multiplica todas las tuplas iguales en las tablas implicadas.

Ejemplo:Realice el producto natural entre libro y autor.

(libro (libro autor)autor) libro.autorid = autor.autoridlibro.autorid = autor.autorid

(<nombretabla1> (<nombretabla1> <nombretabla2>)<nombretabla2>)

– Unión, combina todas las tuplas de la tabla1 y la tabla2 eliminando las filas repetidas.

Ejemplo:Realice la unión de los libros de la editorial Ra-Ma

y los de la editorial Alfaomega((editorial=“Ra-Ma”(libro))editorial=“Ra-Ma”(libro))((editorial=“Alfaomega” (libro))editorial=“Alfaomega” (libro))

(<nombretabla1 (<nombretabla1 <nombretabla2 <nombretabla2>>))

– Intersección, obtiene las tuplas comunes entre la tabla1 y la tabla2.

Ejemplo:Realice la intersección de los libros de la editorial

Andrés Bello con los libros de A2((editorial =“Editorial Andrés Bello”(libro)) editorial =“Editorial Andrés Bello”(libro))

((autorid=“A2”(libro)) autorid=“A2”(libro))

(<nombretabla1) (<nombretabla1) (<nombretabla2 (<nombretabla2>>))

– Diferencia, Diferencia, obtiene los datos que encuentran en la tabla1 pero no en la tabla2

Ejemplo:Realice la diferencia de libros de la editorial Andrés Bello

excepto los libros de A2((editorial=“Editorial Andrés Bello”(libro)) – editorial=“Editorial Andrés Bello”(libro)) –

(( autorid= A2 (libro)) autorid= A2 (libro))

(<nombretabla1> - <nombretabla2>)(<nombretabla1> - <nombretabla2>)

• Operaciones de conjuntos– Diferencia, Diferencia, obtiene los datos que se encuentran

en la tabla1 pero no en la tabla2 (<nombretabla1>) - (<nombretabla2>)(<nombretabla1>) - (<nombretabla2>)

((editorial=“Ra-Ma”(libro)) - (editorial=“Ra-Ma”(libro)) - ( autor=“Jesús C.” (libro)) autor=“Jesús C.” (libro))

MANIPULACION DE DATOS

TEMA 4

• Escritura de comandos SQL– Palabras reservadas y definidas por el usuario– Hay palabras reservadas que son obligatorias y

otras opcionales.– No es sensitivo a mayúsculas en las palabras

reservadas.– Sensitivo a mayúsculas en los datos a obtener

por ejemplo: “Smith” “SMITH” “SMith” se tratan de diferente manera.

• Manipulación de datos: SELECT, INSERT– SELECT, para consultar datos

SELECT atributo1, …. nSELECT atributo1, …. nFROM nombretabla [alias]FROM nombretabla [alias][WHERE condicion][WHERE condicion][ORDER BY] atributos [ORDER BY] atributos [GROUP BY] atributos [GROUP BY] atributos

– INSERT, para insertar datosINSERT INTO <nombretabla> (atributo1,…n)INSERT INTO <nombretabla> (atributo1,…n)VALUES (valor1, …n)VALUES (valor1, …n)

– UPDATE, para actualizar datosUPDATE <nombretabla>UPDATE <nombretabla>[SET atributo1 = valor1][SET atributo1 = valor1]WHERE <condicion>WHERE <condicion>

– DELETE, para borrar datosDELETE FROM <nombretabla>DELETE FROM <nombretabla>[WHERE <condicion>][WHERE <condicion>]

• Consultas simplesLas consultas son un herramienta potente que combina operaciones de Algebra Relacional Selección y Proyección.Una consulta simple consiste en extraer datos de una tabla.

SELECT código, titulo, codAutorSELECT código, titulo, codAutorFROM libroFROM libroWHERE editorial = “Rama”WHERE editorial = “Rama”

• Ordenación de resultadosSELECT código, titulo, codAutorSELECT código, titulo, codAutorFROM libroFROM libroORDER BY tituloORDER BY titulo

• Consultas de varias tablas• Permite combinar varias tablas (join)

– FROM: incluir las tablas separadas con ,– WHERE: especificar las columnas de la

combinación.SELECT código, titulo, autorSELECT código, titulo, autorFROM libro, autorFROM libro, autorWHERE libro.codAutor= autor.CodAutorWHERE libro.codAutor= autor.CodAutor

DEFINICION DE DATOS

TEMA 5

• Tipos de datos NuméricoNumérico NUMERIC NUMERIC INTEGERINTEGERDecimal Decimal FLOATFLOAT DOUBLEDOUBLECarácterCarácter CHARCHAR VARCHARVARCHARFechaFecha DATEDATE

• Características de mejora de integridad– Datos requeridos, algunos atributos deben tener

obligatoriamente un valor (NOT NULLNOT NULL)– Restricciones de dominio, algunos atributos deben

contener sólo ciertos valores (CHECKCHECK)– Integridad de entidades (PRIMARY KEY)– Integridad referencial (FOREIGN KEY)

• Crear una tabla

CREATE TABLE nombreTablaCREATE TABLE nombreTabla{ {

{<Atributo><tipodato> [NOT NULL] [PRIMARY KEY]{<Atributo><tipodato> [NOT NULL] [PRIMARY KEY] [CHECK <condicion>] }[CHECK <condicion>] }

[PRIMARY KEY (atributo (S)][PRIMARY KEY (atributo (S)][FOREIGN KEY (clave externa) REFERENCES[FOREIGN KEY (clave externa) REFERENCES

<tablaPadre> (clave candidata)] <tablaPadre> (clave candidata)] }}

• Modificar una tabla

ALTER TABLE nombreTablaALTER TABLE nombreTabla[ ADD COLUMN <Atributo><tipodato> [NOT NULL]][ ADD COLUMN <Atributo><tipodato> [NOT NULL]]

Eliminar una tabla

DROP TABLE nombreTablaDROP TABLE nombreTabla

• Otros objetos: índices, vistas, secuencias – Índices, estructura que permite acelerar el acceso a las

filas. INDEX– Vistas, resultado operaciones relacionales. VIEW– Secuencias, objeto que genera números secuenciales.

SEQUENCE• Asignar/Eliminar privilegios a otros usuarios

– Acciones que se permite a un usuario ejecutar sobre una tabla como lectura, escritura, …

GRANT {privilegios}

ON nombreTabla

REVOKE {privilegios}

ON nombreTabla