38
Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos Aspectos Generales del Taller Presentación y justificación: Dado que los pormenores del diseño de una base de datos siempre son detalles que aparecen durante la práctica y en ocasiones el profesor no tiene el tiempo para resolverlos, se plantea este Taller, para practicar el diseño de una base de datos relacional, sus conceptos, los esquemas y su entorno de trabajo. Descripción general: Este taller esta estructurado de la siguiente manera: una parte teórica y otra práctica con apoyo de medios audiovisuales. El curso abarca tres aspectos importantes: 1. Teoría: Esbozo de los elementos que conforman un SGBD Conocimientos Básicos del la herramienta a utilizar Metodologías de trabajo 2. Prácticas Participación en Equipo Participación individual 3. Retroalimentación Revisión y Análisis de la actividad realizada A quienes esta dirigido: A alumnos y docentes de Carreras afines al Área de Cómputo de la Escuela de Ingeniería y/o a toda persona interesada. Requisitos: Se asume que tienen conocimientos de: Las etapas que conforman un sistema de información. Lógica de conjuntos y de primer orden. Conocimientos básicos de Sistemas Operativos Objetivos : El alumno obtendrá los conocimientos básicos de SQL y diseñara e implementará un sistema de bases de datos a fin de integrarlos en una aplicación real. Así los objetivos particulares son : Conocer los elementos que comprende un Sistema de Bases de datos. Desarrollar los elementos para conforman un sistema de Bases de datos. Conocer los elementos que integran el lenguaje SQL (sus variantes y equivalentes).Diseñar un Sistema de Bases de Datos Mecanismos de evaluación: El curso tendrá como base las practicas realizadas a lo largo de las sesiones, y como entrega final un diseño de un SGBD además de una evaluación de conocimientos. Capacitación 1

Curso bases de datos

Embed Size (px)

Citation preview

Page 1: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

Aspectos Generales del Taller Presentación y justificación: Dado que los pormenores del diseño de una base de datos siempre son detalles que aparecen durante la práctica y en ocasiones el profesor no tiene el tiempo para resolverlos, se plantea este Taller, para practicar el diseño de una base de datos relacional, sus conceptos, los esquemas y su entorno de trabajo. Descripción general: Este taller esta estructurado de la siguiente manera: una parte teórica y otra práctica con apoyo de medios audiovisuales. El curso abarca tres aspectos importantes:

1. Teoría: Esbozo de los elementos que conforman un SGBD Conocimientos Básicos del la herramienta a utilizar Metodologías de trabajo

2. Prácticas

Participación en Equipo Participación individual

3. Retroalimentación

Revisión y Análisis de la actividad realizada A quienes esta dirigido: A alumnos y docentes de Carreras afines al Área de Cómputo de la Escuela de Ingeniería y/o a toda persona interesada. Requisitos: Se asume que tienen conocimientos de:

• Las etapas que conforman un sistema de información. • Lógica de conjuntos y de primer orden. • Conocimientos básicos de Sistemas Operativos

Objetivos : El alumno obtendrá los conocimientos básicos de SQL y diseñara e implementará un sistema de bases de datos a fin de integrarlos en una aplicación real. Así los objetivos particulares son :

• Conocer los elementos que comprende un Sistema de Bases de datos. • Desarrollar los elementos para conforman un sistema de Bases de datos. • Conocer los elementos que integran el lenguaje SQL (sus variantes y

equivalentes).Diseñar un Sistema de Bases de Datos Mecanismos de evaluación: El curso tendrá como base las practicas realizadas a lo largo de las sesiones, y como entrega final un diseño de un SGBD además de una evaluación de conocimientos.

Capacitación

1

Page 2: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

1 .- Conceptos Generales de los Sistemas de Bases de Datos 1.1 Un Poco de Historia

Capacitación

2

Page 3: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

Capacitación

3

Page 4: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos 1.2.- Sistemas de Bases de Datos Una Base de datos es un conjunto de datos relacionados entre sí. Por datos entendemos hechos conocidos que pueden registrarse y que tienen un significado implícito. Una Base de datos tiene las siguientes propiedades:

• Una BD representa algún aspecto del mundo real, en ocasiones llamados minimundo o universo de discurso.

• Una BD es un conjunto de datos lógicamente coherente. • Toda BD se diseña, construye y puebla con datos para un conjunto específico.

En síntesis una BD tiene una fuente de la cual se derivan datos , cierto grado de interacción con el mundo real y un público que está activamente interesado en su contenido. Una BD es un conjunto de datos persistentes que están relacionados para representar información. Características de una BD:

1. Integral.- Los componentes están organizados de tal manera que se evita la redundancia y la inconsistencia.

2. Compartida.- Todos los datos deben ser accesados en forma concurrente, desde cualquier parte y por cualquier tipo de usuario.

3. Segura.- Por que la información debe ser accesada y/o modificada por la(s)persona(s) correctas en el lugar correcto y en momento exacto.

Ventajas de una BD:

• La información es compacta • Es fácil hacerla crecer • La información es integra y controlada. (Sobre todo en ambientes multiusuario) • Realiza funciones de alto nivel • Es de fácil acceso y organización. • Rendimiento • Concurrencia • Transportabilidad • Disponibilidad de la Información • Fácil administración

Capacitación

4

Page 5: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos 1.3 .- Componentes de un Sistema de Base De Datos

Los elementos que la integran son:

1) El DBMS o SGBD (Sistema de Gestión de Base de Datos) el conjunto de programas que administra la Base de Datos.

2) Usuarios: □ Usuario Final : El que aprovecha la aplicación □ Usuario Programador : Desarrolla la aplicación sobre la BD. □ Administrador de la B.D. (DBA): Diseña la base de datos,

fija estándares, fija políticas de respaldo, da mantenimiento, es el usuario más importante.

3) Programas de Aplicación y utilerías

Capacitación

5

Page 6: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos 1.4.- SGBD (Sistema de Gestión de Base de datos) Un DBMS/SGBD consiste de u software generalizado para implementar y mantener una base de datos computarizada. Sirve como interface entre el usuario y la BD física. Es un programa que :

• Maneja solicitudes de acceso a la BD formuladas por los usuarios • Mantenimiento a la BD. (ejecuta altas, bajas,...) • Lleva almacenamiento y acceso a tablas • Provee de seguridad pues lleva a efecto los niveles de acceso • Hace posible la consulta y recuperación de registro, pues administra la Organización

Interna. • Mantiene a la BD integra (e independiente) y consistente (que la información este

validada y los datos se apeguen a la realidad). • Concurrencia.- Hace posible compartir registros en modo multiusuario, que 1 o más

usuarios accesen al mismo lugar) El DBMS debe ofrecer al DBA, a los diseñadores y a los usuarios, para administrar, diseñar y utilizar la base de datos respectivamente:

• Control de redundancia • Restricción de accesos no autorizados • Almacenamiento persistente para estructuras de datos de programas • Inferencias que permitan generar las reglas de deducción • Múltiples interfaces • Representación de vínculos complejos entre los datos • Imposición de restricciones de integridad • Respaldo y recuperación.

1.4.1 Modelos De Datos Esquemas Y Ejemplares Una característica fundamental del enfoque de bases de datos es que proporciona cierto nivel de abstracción de los datos al ocultar detalles de almacenamiento que la mayoría de los usuarios no necesitan conocer. Los modelos de datos son el principal instrumento para ofrecer dicha abstracción. Un modelo de datos es un conjunto de conceptos, que pueden servir para describir la estructura de una base de datos. Se distinguen tres categorías principales de los modelos de datos:

1. Modelos de datos de Alto nivel o conceptuales (entidad-vínculo).- Utilizan conceptos como entidades, atributos y vínculos. Una entidad representa un objeto o concepto del mundo real, como un empleado, un proyecto, etc. Un atributo, una propiedad de interés que da una descripción más amplia de una entidad, como el nombre o salario del empleado. Un vínculo describe la interacción entre dos o más

Capacitación

6

Page 7: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

entidades, por ejemplo el vínculo de Profesor – materia- imparte, un profesor imparte una o más materias.

2. Modelos de datos de implementación (basados en registros, orientados a objetos).-

En ellos se ubican los tres modelos más comunes: El relacional, el de Red y el Jerárquico, que representan los datos en forma de estructuras o registros; y el Orientado a Objetos que se hace posible un nivel más alto de abstracción.

3. Modelos de datos de Bajo nivel o físicos. Describen como se almacenan los datos

en el computador, representan la información de los formatos y del ordenamiento de los datos y los caminos de accesos (cuando se busca una información).

1.4.2 El interior de un DBMS. La base de datos y el catálogo del SGBD es almacenado en disco, que normalmente es operado por el Sistema operativo del sistema o de la plataforma donde se trabaje. Se identifican tres partes importantes en su interior:

□ Un gestor de datos almacenados.- que realiza funciones que controlan el acceso a la información del SGBD.

□ Compilador de DDL y de consultas □ El procesador de la Base de Datos en tiempo de ejecución

Por lo que respecta a las utilerías que varían de manejador en manejador, las funciones que más comúnmente se realizan :

□ Carga □ Respaldo □ Reorganización de Archivos □ Vigilancia de rendimiento. □ Recursos de Comunicaciones.

Capacitación

7

Page 8: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

Figura. 1.4.3 Entorno de un SGBD.

1.4.2.1En el Interior de un SGBD para el Web

Refiriéndonos a la arquitectura que sigue una B.D. en el Web. Se agregan los siguientes elementos: ODBC.- (Open Data Base Connectivity) Es una utilería externa al manejador y que sirve para estandarizar cualquier acceso a la B.D. Permite así pues cualquier interacción interna, externa o remota a la información contenida en ella. Hay diferentes tipos y versiones.:

Tipos : Sybase Oracle Unix PostgreSQL Progress Access

Programas de Aplicación.- Estos programas generados comúnmente en un lenguaje de alto nivel, permiten entregar y recibir información de la Base de datos hacia el usuario final. Las transacciones realizadas van y viene gobernadas por esquemas internos de seguridad, por el SGBD o bien por el ambiente operativo donde se esté trabajando.

Capacitación

8

Page 9: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos Ejemplos de éstos programas :

□ ASP (Active Server Page) □ CGI (Common Gateway Interface) □ DTHTML (animaciones en línea en Java □ APPLETS (aplicaciones realizadas en Java) □ SERVLETS (aplicaciones realizadas en Java)

Figura 1.4.2.1 Un SGBD en el WEB. 1.4.3 La arquitectura de Tres Esquemas Hay tres características importantes inherentes al enfoque de las bases de datos: a) La separación entre los programas y los datos (independencia con respecto a los programas y datos y con respecto a los programas y operaciones); b) El manejo de múltiples vistas de usuarios y c) el empleo de un catálogo para almacenar la descripción (esquema) de la base de datos.

Capacitación

9

Page 10: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos La arquitectura para los sistemas de bases de datos denominada Arquitectura de tres esquemas ,1 consiste en formar una separación entre las aplicaciones del usuario y de la base de datos física. Contiene esquemas que se dividen en tres niveles:

Figura 1.4.3 Arquitectura de Tres Esquemas. 1.- El nivel Interno.- tiene un esquema interno, que describe la estructura física de almacenamiento de la bases de datos. 2.- El nivel Conceptual.- tiene un esquema conceptual, que describe la estructura de toda la base de datos para una comunidad de usuarios, se concentra en describir, entidades, tipos de datos, vínculos, operaciones de los usuarios y restricciones. 3.- Nivel Externo.- o de vistas que incluye varios esquemas externos o vistas de usuario. Cada esquema externo describe la parte de la base de datos que interesa a un grupo de usuarios determinado, y oculta a ese grupo el resto de la base de datos.

1 También conocida como arquitectura ANSI/SPARC, por el comité que la propuso (Tsichritzis y Klug 1978).

Capacitación

10

Page 11: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos 1.4.4 Clasificación de DBMS.

a) Atendiendo al modelo de datos en que se basan se pueden clasificar : □ Relacionales □ De Red □ Jerárquicos □ Orientados a Objetos

b) Por el número de usuarios a los que se les da servicio:

□ Monousuarios □ Multiusuarios

c) Por el número de sitios en los que la base de datos esta distribuida: □ Centralizados □ Distribuidos

Capacitación

11

Page 12: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos 1.4.5 Tendencia en la Tecnología de Modelos de datos:

Capacitación

12

Page 13: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

2. Fases de la Creación de un Sistema de Bases de Datos En este apartado se asume que el lector maneja los conceptos de análisis y diseño de sistemas de información y se agrega, que de un análisis común puede extenderse a una aplicación más robusta.

Figura 2. Fases de diseño de una Base de datos. Es de importancia mencionar que este taller esta orientado a RDBMS2´s, por lo que él desglose y seguimiento de los datos, elementos y fases en el desarrollo de Bases de datos se basarán en El Modelo De Datos Relacional que se detalla en el capítulo que sigue.

2 RDBMS.- Proviene de las siglas en inglés Relational Data Base Management System, que significa sistema de Gestión de Bases de Datos Relacionales o bien Sistemas Manejadores de Bases de Datos Relacionales

Capacitación

13

Page 14: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos 2.1 Una Visión Jerárquica de Datos A lo largo del desarrollo de un SBD se procura reunir todos los elementos clave y los elementos cuya función en la aplicación requerida jugarán un papel determinante para saber ¿quién puede hacer que?, ¿Cuándo?, ¿Cómo? Y ¿desde donde?. En forma breve, los datos estarán organizados de manera tal que la información fluya de manera óptima. Y como es pues de datos el “hilo negro” de este asunto se propone Una Visión Jerárquica De Datos en tres niveles atendiendo a la Arquitectura De Tres Esquemas (mencionados en el capítulo anterior ) que deben cubrirse, así como las herramientas a utilizar en el desarrollo de un sistema de bases de datos para una aplicación que esta en formación Para iniciar, se hace hincapié en que el diseño de un SGBD es una parte de diseño e implementación de un Sistema de Información por lo que se supondrá que ya se tiene el Diseño Conceptual del Sistema y también con el Análisis Funcional, es decir, ya sabemos ¿qué vamos a hacer? Y de alguna manera tenemos bosquejada la mecánica de ¿cómo funcionará? Así, se comienza con :

1. Desglosar El nivel Jerárquico de Datos Al final de este punto se contará con el Diseño Lógico , es decir con la descripción completa de la base de datos :

□ Elementos □ Interacciones e interrelaciones □ Tipos de datos □ Estimación aproximada de la capacidad total

Y se contará con : □ Un diagrama entidad Relación □ Un diccionario de datos □ Archivos de texto que contengan la descripción completa de la base de datos

codificada en SQL3. □

Como ya se mencionó el nivel Jerárquico de datos consta de tres partes las cuales se detallan a continuación:

Nivel Externo: Modelo de datos. (E-R). Es la representación lógica que define las unidades de datos y especifica su relación con otras unidades de datos. Generalmente cada manejador puede representar por un diagrama una B.D. este diagrama integra elementos propios del modelo de datos de Alto Nivel utilizado. Aquí se especifican las entidades, sus atributos, los tipos que cada atributo tendrá, las relaciones con otras entidades etc.

3 Structure Query Languaje.- Lenguaje de bases de datos relacionales.

Capacitación

14

Page 15: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

Para este curso se anota que se utilizará la siguiente simbología: 4

Figura 2.1 Simbología para hacer Diagramas de E-R.

4 Esa notación se recolectó del libró SISTEMAS DE BASES DE DATOS Conceptos fundamentales, de los autores: Elmasri/Navathe, 2da Edición Méx. D.F. 1997 Pág. 58

Capacitación

15

Page 16: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

La siguiente descripción trata de esbozar un compendio pequeño de otras notaciones para hacer diagramas.

Figura 2.1.1 Otras simbologías para diagramas E-R.

Nivel Conceptual: Esquema. Es la implementación del modelo E-R en un lenguaje de base de datos como SQL. Que se analizará con más detenimiento en el capítulo siguiente. Nivel Interno: Arquitectura. La Forma en que los datos son almacenados físicamente dentro del almacenamiento primario y secundario de forma de chunks5, archivos CISMA, planos, etc. Es aquí donde se realiza un cálculo aproximado de la capacidad total de la BD, apartir de la delimitación del número aproximado de registros necesarios para que la aplicación funcione, multiplicada por el tamaño de cada registro (que en la parte practica se afianzará).

5 Chunk: es la unidad de espacio asignado al RDBMS o un conjunto de páginas contiguas que guardan 1 o más bases de datos. Arquitectura de Bases de Datos, Cap. II Apuntes del Lic. Aquiles Loranca ULSA 2000.

Capacitación

16

Page 17: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

La razón de ser de este parte es calcular que tipo de almacenamiento requerirá nuestro sistema, para poder estimar el periodo de vida útil.

2. Levantar la Integridad

Se trata de analizar el diseño que es un como el “cascarón” del sistema, pero hay que saber como va operar el flujo de información, para darle consistencia, pues así la información que nos devuelva será confiable y podrá modelar de alguna manera una visión certera de una realidad proyectada. En esta parte se analizarán las transacciones que gobernarán el flujo de la información en la base, es decir :

□ ¿Que pasa cuando se insertan datos?, ¿Hay que hacerlo en algún orden? □ ¿Se puede borrar en todos lados al mismo tiempo? □ ¿Cuándo es posible actualizar datos? Y otras preguntas que surgirán a lo largo del desarrollo de este SDB.

3. Niveles de Acceso

Para ejemplificar este apartado, se hace la analogía de cuando se va a habitar una casa, es decir, se contemplan todos los “actores” que no son más que nuestros usuarios finales clasificados según su nivel de participación en el sistema de información en gestión, y se determina :

□ ¿Quién puede ver que? □ ¿Qué puede hacer ese quien? □ ¿Quién puede ver lo de todos? □ ¿Desde donde? Además de determinar los elementos que cada usuario podrá manipular o no dentro de la Base de datos.

4. Seguridad y autentificación Y finalmente, (siguiendo con la analogía de la casa) “las llaves”, este metáfora es lo suficientemente grafica para explicar que como en casa las llaves no se les dan a todos los habitantes de ella, para que sea más claro, una vez que se sabe quiénes son los “actores” y el nivel de información que manejarán se sabrá :

□ Cuantos tipos de accesos tendrán una contraseña □ Desde que lugares se podrá accesar a la información de la base de datos □ Como evitar infortunios Entre otros, que también surgirán.

Capacitación

17

Page 18: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

5. Implementación del sistema de base de datos En esta etapa los programadores de aplicaciones deben implementar las transacciones de la Base de datos, se almacenarán los datos reales en la base de datos y se procede a iniciar la operación del sistema con pruebas piloto.

Se sabe hoy en día que con lo realizado en el campo del diseño, las herramientas se han hecho indispensables para la resolución de problemas en las BD grandes; al grado de ya no se pueden realizar BD sin la utilización de estas herramientas, donde la BD incluya a la organización en su conjunto. Con todo esto se sabe que el diseño de esquemas y el de aplicaciones debe ir de la mano. Las herramientas CASE (ingeniería asistida por computadora) van dirigidas a ambas áreas, algunas herramientas la tecnología para así guiar el proceso de diseño mediante la utilización de conocimientos expertos en forma de reglas; Al igual que se ocupa en la fase de recolección y análisis de requerimientos. La tendencia es hacia la utilización de diccionarios de datos y de herramientas de diseño para lograr mejores diseños de BD complejas es sumamente útil y productivo

Ideas Centrales:

Capacitación

18

Page 19: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

3. SQL: Un lenguaje de Base de Datos Relacionales SQL es una abreviación para “Structure Query Language” que se podría traducir como “Lenguaje de Peticiones Estructuradas”. Fue definido en 1974 por Donald Chamberlin como SEQUEL (Structure English Query Language) en IBM Research como interfaz para un sistema experimental de base datos relacionales llamado SYSTEM R. • Primera implementación en 1974-75 (SEQUEL-XRM) • En 1976-77 cambia a SQL cuando se le realiza una revisión • Enfocado para el manejo de información dentro de una BD

-Oracle, DB2, SyBase, etc. • Para 1982 se define como un estándar por ANSI • En 1987 lo acepta la ISO como estándar y lo llama SQL/86 • En 19889 surge una extensión llamada SQL/89 Actualmente la última versión es SQL/2 que surge en 1992 3.1 Modelo de Datos Relacional Como se mencionó anteriormente, SQL es un lenguaje relacional, lo que significa que esta besado en el modelo de datos relacional por primera vez publicado por E.F. Codd en 1970. Una base de datos relacional que es percibida por sus usuarios como una colección de relaciones, que en términos informales se les conoce como tablas El modelo relacional esta conformado de 3 partes:

• Estructura • Álgebra Relacional • Calculo Relacional

3.1.1 Estructura Si visualizamos una relación como una tabla de valores, cada fila de la tabla representa una colección de valores relacionados entre sí.. Dichos valores se pueden interpretar como hechos que describen una entidad o un vínculo entre entes del mundo real que sé esta modelando. En la terminología del modelo relacional, una fila se denomina tupla, una cabecera de columna es un atributo y la tabla es una relación. El tipo de datos que describen los tipos de valores que pueden aparecer en cada columna se llama dominio Al conjunto de atributos de una tabla se le llama grado. Al número de tuplas se le denomina cardinalidad.

Capacitación

19

Page 20: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos Al conjunto de columnas y tuplas se le denomina relación. A los atributos por medio de los cuales se accesa a la entidad o tabla se les denomina llaves Los dominios sirven para :

□ Delimitar los valores de un atributo □ Definirlo en términos de la realidad □ Definir operaciones que se pueden hacer con esos atributos □ Reutilización □ Para aplicar Formas Normales 6 □ Su correcta delimitación ofrece integridad al 100 % □ Con las comparaciones por ejemplo ayuda a simplificar las operaciones de la B.D.

3.1.1.1 Propiedades de una relación

a) Las tuplas no están ordenadas b) No existe un orden en los atributos c) No hay tuplas duplicadas ( y para ordenarlas se emplea la llave primaria) d) Una relación tiene un identificador único o llave primaria e) Toda relación al menos tiene un elemento, siempre es diferente del conjunto vacío.

3.1.1.2 Tipos de Relaciones Relaciones Base.- Son las que siempre existen en el tiempo por si misma y tiene un nombre propio, cumplen con toda la definición de una relación. Relaciones Vistas.- Se derivan de las relaciones base, no existen son virtuales, derivan de los valores de las Relaciones Base. Relación débil – Es una tabla que depende de otra para existir, deben existir registros en las tablas padre para que puedan tener información. Su nombre se deriva de las tablas (base) Relaciones Temporales.- Son el resultado de una consulta. “Select nombre calle FROM línea”. (El resultado será nombre y calle de la relación. Relaciones Intermedias.- Es cuando se usan Select anidados.

6 Las Formas Normales son reglas que se utilizan para depurar el diseño de la estructura de la Base de datos, fueron propuestas por Byce y Codd (FNBD) en los años 70´s

Capacitación

20

Page 21: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos 3.1.2 Álgebra Relacional Es una notación Algebraica donde una petición o un Query ( así se denominará apartir de a horita) es expresada aplicando operadores especializados a las relaciones o tablas existentes en una base de datos. El álgebra Relacional fue introducida por E.F. Codd en 1972, y esta conformada de un conjunto de operaciones sobre las relaciones: 3.1.2.1 Operadores relacionales Todos los operadores regresan relaciones.

1. restricciones : Selección de tuplas 2. Proyección : Selección sobre columnas 3. Producto : Combinación de cada tupla con cada tupla entre relaciones 4. Unión : La junta de relaciones que presenten cardinalidad y grado igual. 5. Intersección : Se verifica que grado de RS 6. Diferencia : Compara solo columnas 7. Reunión : Es la unión de entidades por columnas en común. 8. División : Es una operación que se da sólo ente entidades de binarias y unarias.

En la figura 3.1.2 se detalla con más propiedad lo anterior.

Capacitación

21

Page 22: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

Figura 3.1.2 resumen de Operaciones del Álgebra Relacional

Capacitación

22

Page 23: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos 3.1.2.2 Operaciones Extendidas: Que son:

□ AVG, ACOUNT, SUM, MIN, MAX □ Subquerys □ Join Interno □ Join Externo

En esta notación agregada de operadores siguientes: AVG, ACOUNT, SUM, MIN, MAX, toman el nombre de n atributo como el argumento para. El valor del operador agregado es calculado sobre todos los valores del atributo especificado.

Ejemplos de Aplicación:

SELECT MAX [Atrib] FROM [NOM_TABLA] SELECT MIN [Atrib] FROM [NOM_TABLA] SELECT COUNT [Atrib] FROM [NOM_TABLA] < ---Cardinalidad AVG SUM Subquerys SELECT Producto.nombre FROM Productos WHERE Producto.CUE_PRODUCTO = (SELECT factura.cue_p WHERE factura.wty_fact=5) Join Interno: Producto entre dos tablas de una misma Bd y el resultado cubre solo en rango que se especifique por los campos o columnas entre sí. SELECT * FROM Producto INNER JOIN Inventario ON Producto.cue_prod = Inventario.cue_prod Join Externo: Producto entre dos tablas de una misma B.d. pero excluye los valores de la condición de unión. SELECT * FROM PRODUCTO OUTER LEFT JOIN Inventario ON Producto.cue_prod=inve.cue_pro WHERE Inventario.cue_produ is NULL

Capacitación

23

Page 24: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos 3.1.3 Cálculo Relacional El cálculo relacional está basado en la primera orden lógica. Hay dos variantes en el cálculo relacional:

• Cálculo Relacional de Dominio (DRC Domain Relational Calculus), donde las variables se mantienen por los componentes (atributos) de las tuplas.

• Cálculo Relacional por Tuplas (TRC Tuple Relational Calculus), donde las variables se mantienen por tuplas.

3.1.3.1 Cálculo Relacional por Tuplas Los queries utilizados en el cálculo relacional por tuplas son de la siguiente forma: x(A) &mid, F(x) donde x es una tupla, la variable A es un conjunto de atributos y F es la fórmula. La relación resultante consiste en todas las tuplas t(A) que satisfacen F(t). Si deseamos contestar a la pregunta por ejemplo Un Query utilizando Álgebra Relacional utilizando el cálculo relacional por tuplas lo formulamos de la siguiente forma: {x {SNAME} &mid; x ? \nonumber ? y ? SELLS ? z ? PART (y (SON) = x (SON) ? \nonumber z (PNO) = y (PNO) ? \nonumber z (PINAME) = ‘Screw’ )} \nonumber 3.1.3.2 Álgebra Relacional VS. Cálculo Relacional El álgebra relacional y el cálculo relacionas tienen el mismo poder de expresión, por ejemplo, todos los queries que pueden ser formulados utilizando el álgebra relacional también pueden ser formulados utilizando el cálculo relacional y viceversa. Esto fue provisto al principio por E.F.Codd en 1972. Ésta prueba se basa en el algoritmo (“Codd´s reduction algorithm”) mediante el cual una expresión arbitraria del cálculo relacional puede ser reducida a una expresión semántica equivalente del álgebra relacional. Algunos dicen que los lenguajes basados en el cálculo relacional son de “alto nivel” o “mayor declaratividad” que los lenguajes basados en el álgebra relacional puesto que el álgebra (parcialmente) especifica el orden de operaciones mientras que el cálculo deja al compilador o el intérprete la determinación del orden de evaluación más eficiente.

Capacitación

24

Page 25: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos 3.1.4 Las 12 reglas del Modelo Relacional Para cuidar que el modelo de datos utilizado no salga de las especificaciones se sugiere seguir estas reglas:

1. Información - Siempre los datos en columnas 2. Acceso Garantizado Toda relación debe contener ( columnas y un id primario) 3. Manejo de dic. Nulos Representación de valores normales 4. Manejo de dic. De SQL Además del data dictionary y también independiente. 5. Manejo de SQL Instrucciones y operaciones en SQL 6. Independencia Física Que sea autónomo a la plataforma donde se instala 7. Independencia Lógica Que se pueda acusar desde cualquier lenguaje 8. La Relación de no subversión En la que si sé accesa de la BD desde cualquier

lenguaje 3GL no se deben alterar los valores de validaciones de consistencia e integridad.

9. Independencia de Integridad Poder cambiar los “Triggers” o actualizar sin tener que cambiar las aplicaciones que ya existen.

10. Independencia de Distribución o distribuciones Que deben conservarse intacta si se emigra a BD distribuidas.

11. Manejo de vistas (Visor parcial de datos) Es la creación de una imagen de una BD que es modificable.

12. Manejo en bloques de actualización, borrado e inserción

Operaciones de bloques muchos campos 3.1.5 Formas Normales de Boyce y Codd Primera forma normal (1FN)

• Históricamente se definió para prohibir los atributos multivaluados ( o foráneos) • Los únicos valores de atributos que permiten 1FN son valores atómicos ( o

indivisibles) • También prohibe atributos compuestos que por sí mismos son multivaluados.

Estos se denominan relaciones anidadas porque cada tupla puede tener una relación dentro de sí.

Segunda forma normal. (2FN)

Se basa en el concepto de dependencia funcional total una x → y es una dependencia funcional total si la eliminación de cualquier atributo A de X hace que la dependencia deje de ser válida, (se hace parcial) Si un esquema de relación no esta en 2FN, se le puede normalizar a varias relaciones 2FN en las que los atributos no primos estén asociados sólo a la parte de la clave primaria de la que dependen funcionalmente de manera total.

Capacitación

25

Page 26: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos Tercera forma normal (3FN) Se basa en el concepto de dependencia transitiva que ofrece independencia en integridad en los datos. FN Boyce_Codd (FNBC) – Es igual de estricta que la 3FN, lo que significa que toda relación que esté en FNBC esta también en 3FN, sin embargo una relación 3FN no esta necesariamente en FNBC

Cuarta forma normal (4FN) Un esquema de relación R esta en 4FN respecto a un conjunto de dependencias F si, para cada dependencia multivaluada no trivial x → y en F+, es una superclave de R. Esta forma normal comprende relaciones de muchos a muchos. Quinta forma normal (5FN) Un esquema R está en 5FN [o forma normal de proyección-reunión (FNPR)] respecto a un conjunto F de dependencias funcionales, multivaluadas y de reunión si, para cada dependencia de reunión no trivial DR (R1, R2, ...,Rn) en F+ (esto es implicada por F), toda Ri es una superclave de R 3. 1.6 Seguridad en el Modelo Relacional En este parte se delimitan esquemas para salvaguardar la información de la B.D. en tres partes :

1. Autentificación de Usuarios – Todos los usuarios deben acceder a la base de datos mediante un login y password.

□ Acceso restringido a tablas y campos – A cada usuario se le otorgan

permisos de (Select, Update, Delete, Insert) a tablas o campos.

□ Acceso controlado a vistas – No todos los usuarios pueden leer partes de las BD, por esto se le otorgaron vistas al usuario.

□ Procedimientos o programas – Algunos usuarios no tienen acceso a ciertos

programas o a realizar ciertos procedimientos.

□ Nivel de Sistema Operativo.

2. Seguridad para el Acceso Local – Es la forma más simple, cada usuario accesa a la vez a la BD.

3. Seguridad para el acceso Multiusuario – La BD permite el acceso a varios

usuarios a la vez mediante una LAN

Capacitación

26

Page 27: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

4. Seguridad para el acceso Distribuida – Una BD puede estar en diferentes lugares y compartir ciertos datos, por lo que la manera de hacer peticiones en cada parte puede ser una combinación de los incisos anteriores.

3.1.5 Integridad En el Modelo Relacional 3.1.5.1 Integridad Física Consiste en que los datos estén correctamente almacenados en el disco, es decir, que no hayan quedado a medio actualizar por culpa de un apagón al escribir los datos en el disco o inclusive, el que se encime información. Para garantizar este tipo de integridad se utilizan marcas de tiempo o timestamps al principio y al final de cada escritura, de manera que si se produce un error en el intermedio el RDBMS tiene forma de detectar este tipo de corrupción. 3.1.5.2 Integridad Relacional Se basa en asegurarse de que los datos almacenados cumplan con el modelo E-R planteado para representar la realidad, es decir, que los campos definidos como llaves primarias sean únicas y no nulos, que las llaves foráneas existan como primarias en otra tabla, que los valores definidos como no duplicados y no nulos realmente lo sean y que los datos definidos realmente contengan el tipo de dato definido. Integridad Relacional:

1. Dominios --- > Validación (Asegura que existan valores en la base de datos reales) 2. Por Entidad --- > Que la columna que acepta a la relación no acepte valores nulos

y sean únicos (NOT NULL). Toda Relación tiene su llave primaria la cual es única y no acepta valores nulos.

3. Referenciada --- > Los valores de las llaves foráneas sean consistentes a las primarias No debe existir en las llaves foráneas valores sin concordancia (sí hay un valor en el hijo, siempre debe existir en la tabla padre) mediante:

• Restringido.-Si se tiene hijos, no se borra o actualiza el padre. • Cascada.- Si se borra el padre, se borran todos los hijos (para borrar o

actualizar) • Nula.-Si se borra o actualiza el padre, los hijos se ponen en valor nulo.(es

para guardar valores históricos)

Capacitación

27

Page 28: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos 3.1.5.3 Integridad Transaccional Se refiere a la propiedad de una transacción de realizar todas las operaciones que la componen o ninguna. Esta integridad nos da consistencia, ya que lo que esta presente en los buffers (volátil en caso de falla) esta reflejado en el disco y se tiene toda la información relacionada con transacciones para dejar la base de datos perfectamente consistente. 3.2 SQL: El lenguaje SQL es un lenguaje esta integrado por la combinación de otros lenguajes como

1. DDL (Data Definition Language) Lenguaje de definición de datos: 2. DML (Data Mnipulation Lenguaje) Lenguaje de Manipulación de Datos. 3. VDL (View Definition Language) Lenguaje de definición de vistas. 4. SDL (storage Data Language) Lenguaje de almacenamiento de datos. Este último

tendiente a desaparecer Las sentencias y palabras reservadas de SQL son muy particulares en cada DBMS o SGBD, no obstante, los lineamientos básicos se tratan en este taller. En la tabla 3.2. Se muestra un resumen de Sentencias SQL estándar . No se pretende que ésta sinopsis sea exhaustiva ni describa todas las construcciones posibles de SQL, así pues se espera sirva como referencia rápida sobre los principales tipos de construcciones disponibles de SQL. Se adopta la siguiente notación:

Símbolo Elemento Paréntesis te angulares <...> para símbolos no terminales

Corchetes [...] Para partes opciones, es decir

que no necesariamente tienen que ir en la sintaxis.

Las llaves{...} para repeticiones Los pipes (...|...|...) para las alternativas

Capacitación

28

Page 29: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

Figura 3.2 Resumen de Sentencias SQL2 7 7 Esta figura se tomó del Libro Sistemas de Bases de Datos Conceptos Fundamentales. Elmasri/Navethe 2da. Edición 1997 Mex. En la Pág. 229

Capacitación

29

Page 30: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos El DDL es un lenguaje que ocupa el manejador para definir la estructura de la Base de Datos, es decir; crea, borra y modifica tablas, borra y crea índices y se encarga de la vista externa. Instrucciones del DDL: Create Table – Crea una tabla base, con su propio nombre Alter Table – Modifica una tabla. Drop Table – Borra la definición de la tabla. Create Index – Crea un índice. Drop Index - Borra índice. Create View – Crea una vista parcial de la estructura. Drop View – Borra la vista parcial. Instrucciones de DML: Insert – Inserta un registro a unta tabla. Update – Modifica un registro específico. Delete – Borra un registro. Select – Despliega la información contenida en un registro en la tabla. Los tipos de datos para establecer dominios en los atributos generalmente son:

Tipo de Dato Definición INTEGER (Entero) Entero binario completo (31 bits) SMALLINT Enero binario a la mitad (15 bits) DECIMAL Número decimal de p dígitos de precisión

con q dígitos de ellos exactamente en el punto decimal (15 = p = qq = 0). Si q es omitida se asume que será 0.

FLOTA (Flotante) Número de doble palabra, punto flotante. CHAR(n) carácter Carácter de longitud arreglada fija n. VARCHAR(n) carácter variable Longitud del carácter variable de longitud

máxima n.

Capacitación

30

Page 31: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

Anexo I

Functions ABS(X) Absolute value-converts negative numbers to positive, or leaves

positive numbers alone CEIL(X) X is a decimal value that will be rounded up. FLOOR(X) X is a decimal value that will be rounded down. GREATEST(X,Y) Returns the largest of the two values. LEAST(X,Y) Returns the smallest of the two values. MOD(X,Y) Returns the remainder of X / Y. POWER(X,Y) Returns X to the power of Y.

ROUND(X,Y) Rounds X to Y decimal places. If Y is omitted, X is rounded to the nearest integer.

SIGN(X) Returns a minus if X < 0, else a plus. SQRT(X) Returns the square root of X.

Character Functions

LEFT(<string>,X) Returns the leftmost X characters of the string. RIGHT(<string>,X) Returns the rightmost X characters of the string. UPPER(<string>) Converts the string to all uppercase letters. LOWER(<string>) Converts the string to all lowercase letters. INITCAP(<string>) Converts the string to initial caps. LENGTH(<string>) Returns the number of characters in the string.

<string>||<string> Combines the two strings of text into one, concatenated string, where the first string is immediately followed by the second.

LPAD(<string>,X,'*') Pads the string on the left with the * (or whatever character is inside the quotes), to make the string X characters long.

RPAD(<string>,X,'*') Pads the string on the right with the * (or whatever character is inside the quotes), to make the string X characters long.

SUBSTR(<string>,X,Y) Extracts Y letters from the string beginning at position X.

NVL(<column>,<value>) The Null value function will substitute <value> for any NULLs for in the <column>. If the current value of <column> is not NULL, NVL has no effect.

Capacitación

31

Page 32: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

Syntax Summary

ALTER TABLE <TABLE NAME> ADD|DROP|MODIFY (COLUMN SPECIFICATION[S]...see Create Table);

allows you to add or delete a column or columns from a table, or change the specification (data type, etc.) on an existing column; this statement is also used to change the physical specifications of a table (how a table is stored, etc.), but these definitions are DBMS specific, so read the documentation. Also, these physical specifications are used with the Create Table statement, when a table is first created. In addition, only one option can be performed per Alter Table statement either add, drop, OR modify in a single statement.

COMMIT; makes changes made to some database systems permanent (since the last COMMIT; known as a transaction)

CREATE [UNIQUE] INDEX <INDEX NAME> ON <TABLE NAME> (<COLUMN LIST>); --UNIQUE is optional; within brackets

CREATE TABLE <TABLE NAME> (<COLUMN NAME> <DATA TYPE> [(<SIZE>)] <COLUMN CONSTRAINT>, other columns); (also valid with ALTER TABLE) --where SIZE is only used on certain data types (see above), and constraints include the following possibilities (automatically enforced by the DBMS; failure causes an error to be generated)

1. NULL or NOT NULL (see above) 2. UNIQUE enforces that no two rows will have the same value for this column 3. PRIMARY KEY tells the database that this column is the primary key column (only

used if the key is a one column key, otherwise a PRIMARY KEY (column, column, ...) statement appears after the last column definition.

4. CHECK allows a condition to be checked for when data in that column is updated or inserted; for example, CHECK (PRICE 0) causes the system to check that the

Capacitación

32

Page 33: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

Price column is greater than zero before accepting the value...sometimes implemented as the CONSTRAINT statement.

5. DEFAULT inserts the default value into the database if a row is inserted without that column's data being inserted; for example, BENEFITS INTEGER DEFAULT = 10000

6. FOREIGN KEY works the same as Primary Key, but is followed by: REFERENCES <TABLE NAME> (<COLUMN NAME>), which refers to the referential primary key.

CREATE VIEW <TABLE NAME> AS <QUERY>; DELETE FROM <TABLE NAME> WHERE <CONDITION>; INSERT INTO <TABLE NAME> [(<COLUMN LIST>)]

VALUES (<VALUE LIST>);

ROLLBACK; --Takes back any changes to the database that you have made, back to the last time you gave a Commit command...beware! Some software uses automatic committing on systems that use the transaction features, so the Rollback command may not work.

SELECT [DISTINCT|ALL] <LIST OF COLUMNS, FUNCTIONS,CONSTANTS, ETC.> FROM <LIST OF TABLES OR VIEWS> [WHERE <CONDITION(S)>] [GROUP BY <GROUPING COLUMN(S)>] [HAVING <CONDITION>] [ORDER BY <ORDERING COLUMN(S)> [ASC|DESC]]; --where ASC|DESC allows the ordering to be done in ASCending or DESCending order

UPDATE <TABLE NAME> SET <COLUMN NAME> = <VALUE> [WHERE <CONDITION>]; --if the Where clause is left out, all rows will be updated according to the Set statement

.

Capacitación

33

Page 34: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

Prácticas

Capacitación

34

Page 35: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

Bibliografía

□ A GUIDE TO SQL

Philip J. Pratt Boyd & Fraser Pub Co, 1995 ISBN: 0877095205

□ A GUIDE TO THE SQL STANDARD: A USER'S GUIDE TO THE STANDARD

DATABASE LANGUAGE SQL Hugh Darwen, Chris J. Date Addison-Wesley, 1997 ISBN: 0201964260

□ AN INTRODUCTION TO DATABASE SYSTEMS

C. J. Date Addison-Wesley, 1999 ISBN: 0201385902

□ SISTEMAS DE BASES DE DATOS, Conceptos Fundamentales

Elmasri/Nvathe 2da. Edición 1997 Méx.

□ POSTGRESQL: TUTORIAL (pdf)

Trevor A. Kletz Thomas Lockhart, 2000

□ POSTGRESQL: USER'S GUIDE (pdf)

Trevor A. Kletz Thomas Lockhart, 2000

□ POSTGRESQL: PROGRAMMER'S GUIDE (pdf)

Trevor A. Kletz Thomas Lockhart, 2000

Capacitación

35

Page 36: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

Universidad La Salle Directorio: H. Raúl Valadez García, FSC Rector Ing. Edmundo Barrera Monsivais Vicerrector Académico Hno. Martín Rocha Pedrajo Vicerrector de Formación Ing. José Antonio Torres Hernández Director de la Escuela de Ingeniería Ing. Raúl Morales Farfán Secretario de Talleres y Laboratorios Ing. Luis M. Aguillón Banda Jefe del Laboratorio de Cómputo de Ingeniería Realización y Revisión Ing. Liliana Vicenteño Loya

Coordinadora Académica del LCI

Laboratorio de Cómputo de Ingeniería

MMII

Capacitación

36

Page 37: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos

Contenido

ASPECTOS GENERALES DEL TALLER 1

1 .- CONCEPTOS GENERALES DE LOS SISTEMAS DE BASES DE DSTOS 2

1.1 Un Poco de Historia 2

1.2.- Sistemas de Bases de Datos 4

1.3 .- Componentes de un Sistema de Base De Datos 5

1.4.- SGBD (Sistema de Gestión de Base de datos) 6 1.4.1 Modelos De Datos Esquemas Y Ejemplares 6 1.4.2 El interior de un DBMS. 7 1.4.2.1En el Interior de un SGBD para el Web 8 1.4.3 La arquitectura de Tres Esquemas 9 1.4.4 Clasificación de DBMS. 11 1.4.5 Tendencia en la Tecnología de Modelos de datos: 12

2. FASES DE LA CREACIÓN DE UN SISTEMA DE BASES DE DATOS 13

2.1 Una Visión Jerárquica de Datos 14

3. SQL: UN LENGUAJE DE BASE DE DATOS RELACIONALES 19

3.1 Modelo de Datos Relacional 19 3.1.1 Estructura 19

3.1.1.1 Propiedades de una relación 20 3.1.1.2 Tipos de Relaciones 20

3.1.2 Álgebra Relacional 21 3.1.2.1 Operadores relacionales 21 3.1.2.2 Operaciones Extendidas: 23

3.1.3 Cálculo Relacional 24 3.1.3.1 Cálculo Relacional por Tuplas 24 3.1.3.2 Álgebra Relacional VS. Cálculo Relacional 24

3.1.4 Las 12 reglas del Modelo Relacional 25 3.1.5 Formas Normales de Boyce y Codd 25 3. 1.6 Seguridad en el Modelo Relacional 26 3.1.5 Integridad En el Modelo Relacional 27

3.1.5.1 Integridad Física 27 3.1.5.2 Integridad Relacional 27 3.1.5.3 Integridad Transaccional 28

Capacitación

37

Page 38: Curso bases de datos

Laboratorio de Cómputo de Ingeniería Taller de SQL y Bases de Datos 3.2 SQL: El lenguaje 28

ANEXO I 31

PRÁCTICAS 34

BIBLIOGRAFÍA 35

Capacitación

38