Sei sulla pagina 1di 61

Base de datos I.

CURSO : Fundamentos de base de datos Propsito general del curso: Proporcionar al estudiante los conceptos bsicos de los diversos modelos de base de datos. Objetivo general : El estudiante conocer las caractersticas de un modelo de base de datos, aplicar los conceptos de base de datos relacional, para la realizacin del diseo de un sistema de base de datos

UNIDAD I Introduccin a las bases de datos. 1. Introduccin a las bases de datos. 1.1. Base de datos. 1.2. Caractersticas de un Sistema de base de datos. 1.3. Sistema de base de datos vs. Sistema de archivos. 1.4. Ventajas y desventajas de una base de datos. 1.5. Componentes de una base de datos. 1.6. Manejador de una base de datos. 1.7. Caractersticas de un manejador de base de datos. 1.8. Diseo de un sistema de base de datos. 1.9. Modelos de datos. 1.9.1. Modelo entidad-relacin 1.9.2. Modelo conceptual de datos. 1.10. Ejemplos de modelo de base de datos.

Base de datos I.

Historia del procesamiento de bases de datos. A mediados de los 60s, las grandes corporaciones estaban produciendo datos a altas velocidades en los sistemas de procesamiento de archivos, pero los datos se volvan difciles de manejar y los nuevos sistemas estaban siendo cada vez ms dificiles de desarrollar. Adems la administracin requera ser capaz de relacionar los datos de un sistema de archivo con los de algn otro sistema, no slo manejar los datos de forma aislada, sino trabajar con las posibles relaciones entre los mismos. Las limitaciones en el procesamiento de archivos evitaron la fcil integracin de los datos. Sin embargo, la tecnologa de base de datos ofreca la promesa de una solucin a tales problemas y algunas compaas empezaron a desarrollar bases de datos organizacionales. Las compaas centralizaron sus datos operativos. Las aplicaciones fueron inicialmente sistemas de transaccin y procesamiento a nivel de toda la organizacin. Se tenan las desventajas de trabajar con una tecnologa nueva, las bases de datos eran lentas y poco confables, el equipo de cmputo no poda manejar el volumen de transacciones con rapidez. Los programadores no conocan modos de acceso a las bases de datos. En la epoca de los aos 70s, el procesamiento de base de datos se utiliz en corporaciones importantes y en organizaciones grandes como fundamento de enormes sistemas de transaccin y procesamiento utilizando equipo de cmputo de grandes dimensiones, posteriormente cuando se vuelven populares las microcomputadoras, la tecnologa de bases de datos emigro a las microcomputadoras y fue aprovechada por usuarios individuales en aplicaciones personales. Otra desventaja fue la vulnerabilidad, si un sistema de procesamiento fallaba, todas las aplicaciones dependientes quedaban inutilizadas; Sin embargo la situacin mejor de manera gradual, los profesionistas del rea de hardware y software construyeron sistemas suficientemente poderosos para dar soporte a varios usuarios a la vez y tan rpidos como para mantener la carga de trabajo diaria de las transacciones, se planearon nuevas formas de controlar, respaldar los datos, evolucionaron los procedimientos normales y a mediados de los 70s, las bases de datos podan procesar muy bien las aplicacines de una organizacin. Es en este periodo cuando el concepto de bases de datos logra mayor popularidad y reconocimento en el ambiente de desarrollo de sistemas de informacin. La actual tecnologia de las bases de datos, es el resultado de la evolucin de las mismas a lo largo de varias dcadas.

Base de datos I.

A continuacin se definir que es una base de datos, trmino al que podemos encontrar con diversas conceptualizaciones, e interpretaciones, que ha sido utilizado tanto para referirse a un conjunto de tarjetas ndices, un directorio telefnico, como para identificar a la enorme cantidad de datos que pueden ser almacenados en sistemas de informacin empresarial, bancaria, gubernamental, etc. Concepto de base de datos. Bases de Datos:

Conjunto de datos organizados con caractersticas afines entre s, que identifican a una entidad en especial, ya sea un objeto o un sujeto, cualquier coleccin de informacin interrelacionada, es una base de datos. Una coleccin de datos interrelacionados, compartidos y controlados. Conjunto autodescriptivo de registros integrados, autodescriptivo ya que puede contener informacin del usuario, descripcin de s misma, que nos permite representar las relaciones entre los datos. En donde la informacin que se tiene almacenada est disponible para todos los usuarios del sistema, en el que los datos redundantes pueden eliminarse o al menos minimizarse.

Ejemplos de base de datos.


Directorio telefnico, contiene informacin relacionada y clasificada. Archivo clnico de pacientes. Historial acadmico de un estudiante.

La tecnologa de las bases de datos se desarrollo para superar las limitaciones de los sistemas de procesamiento de archivos. Cabe recordar que los programas de procesamiento de archivos acceden a los archivos de datos almacenados. En contraste, los programas de procesamiento de base de datos se apoyan del manejador de base de datos para acceder a los datos almacenados. Esta diferencia es significativa: hace ms fcil la tarea de programar las aplicaciones, los programadores no deben preocuparse por las formas en las que los datos se almacenan.

Ventajas del Sistema de base de datos.

Base de datos I.

Un sistema de base de datos ofrece ventajas en comparacin a un sistema de archivos convencionales, a continuacin se describen las ms importantes.

Reducir la redundancia. Evitar la inconsistencia. Comparticin de datos. Integracin de los datos: Combinar los datos para un uso comn. Integridad de los datos: Precisin y consistencia de los valores de los datos en la base de datos. Independencia de datos. Mejor administracin de la base de datos. Desventajas de las Bases de Datos.

Al igual que una base de datos bien diseada ofrece ventajas significativas, es necesario comentar algunas desventajas que pueden estar presentes en un sistema de base de datos. Costosas: En ocasiones requiere de Hardware (myor capacidad de memora, una computadora ms poderosa, equipo de conectividad, etc.).Altos costos operativos. Complejidad: Se requiere de personal de programacin y de sistemas altamente calificados, la complejidad en relaciones requiere de personal capaz de disear procesos adecuados de transacciones. Backup y Recuperacin dficil: Debido a la complejidad de operaciones y a que varios usuarios procesan transacciones concurrentemente, la recuperacin y el respaldo se dificultan, es necesario tener procesos de bloqueo para garantizar la recuperacin y el respaldo adecuado. Mayor Vulnerabilidad a falla: Una falla en un componente integrado puede parar el sistema completo. Caractersticas de una Base de Datos. Las caractersticas principales de un sistema de base de datos son:

Una base de datos permite la posibilidad de trabajar con diferentes tipos de registros dentro de un conjunto de datos. En una base de datos, la informacin es fcil de encontrar. Eliminacin de redundancia de la informacin. Consistencia de la informacin. Integridad de la informacin. Informacin compartida. Objetivos primarios de la organizacin de una base de datos

Una base de datos tiene objetivos especficos, sin importar el tipo de aplicacin o transacciones para las cuales sea diseada.
4

Base de datos I.

1. 2.

3. 4.

5. 6.

7. 8.

9. 10. 11.

12. 13.

Los datos se utilizan de mltiples maneras, diferentes usuarios, que perciben de forma diferente los mismos datos, pueden emplearlos. Se proteger a la inversin intelectual. No ser necesario rehacer los programas y las estructuras lgicas existentes cuando se modifique la base de datos. Bajo costo. Tanto del almacenamiento, el uso de los datos y los cambios, esto debido a la integracin de la informacin. Menor proliferacin de datos. Las necesidades de nuevas aplicaciones se satisfacen con los datos existentes, ms bien que creando nuevos archivos, evitndose as la excesiva proliferacin de datos. Claridad. Los usuarios tienen a su disposicin la informacin requerida Facilidad de uso. Los usuarios tienen fcil acceso a los datos. Las complejidades internas son ajenas al usuario, gracias al sistema manejador de la base de datos. Flexibilidad. Los datos pueden ser utilizados o explorados de manera flexible, con diferentes caminos de acceso. Rpida atencin a interrogantes no previstos. Los pedidos espontneos de informacin se atienden sin necesidad de escribir un programa de aplicacin, sino utilizando un lenguaje de alto nvel (Consultas Query). Facilidad para el cambio. La Base de datos puede crecer y variar sin interferir con las maneras establecidas de uso de los datos. Precisin y coherencia. Se utilizan controles de precisin, evitando versiones mltiples de datos. Reserva. Se evita el acceso no autorizado a los datos. Los mismos datos pueden estar sujetos a diferentes restricciones de acceso para diferentes usuarios. Proteccin contra prdida o dao. Los datos estn protegidos contra fallas y catstrofes. Disponibilidad. Los datos se encuentran disponibles para los usuarios cuando as lo requieran. Componentes Bsicos en un ambiente de sistema de base de datos

Considerando que un sistema de base de datos es una organizacin de componentes que definen y regulan la recoleccin, almacenamiento, administracin y uso de los datos en un mismo ambiente, en este sistema existen componentes importantes y necesarios, a continuacin se describen:
1.

El esquema. Describe las relaciones lgicas y fsicas existentes entre los registros de la base de datos, las reglas que rigen el diseo y el uso del sistema. El Hardware.Son todos los dispositivos fsicos del sistema, el ms bsico es la computadora, aunque en hardware tambin se incluyen los perifricos, esto es los componentes que controlan las entradas y las

2.

Base de datos I.

salidas de los datos (impresoras, teclados, lectores pticos, dispositivos de conectividad, etc.).
3.

El Software. Los programas utilizados en la administracin de datos, y pueden ser: Software de base: Sistema operativo, hace que los programas funcionen y sean administrados correctamente en los dispositivos de almacenamiento, (DOS, OS/2, Windows, UNIX, etc.). Programa Manejador de base de datos (DBMS):Administra y organiza los datos (Access, SQL Server de Microsoft, Oracle, DB2, etc.). Programas de aplicacin y utilieras: Se crean y utilizan para acceder y manipular los datos, esto es la creacin de reportes, tabulacin y/o graficacin de resultados, etc.). Datos. Estos son el conjunto de hechos almacenados en la base de datos, son la materia prima que una vez procesada genera informacin. Las personas. Los usuarios de la base de datos, considerando administradores, diseadores de la base de datos, analistas, capturistas, gerentes de empresa, etc., es posible clasificar a las personas en : Administradores de base de datos. Conocidos como DBA (Planeacin y diseo de la base de datos, Administracin de los recursos que intervienen en la misma, es el responsable del esquema de la base de datos). Diseadores de base de datos. Analistas de sistemas. Programadores de aplicaciones. Usuarios finales. Quienes requieren informacin para desarrollar sus responsabilidades, normalmente interactan con el sistema manejador de base de datos de dos maneras: Indirectamente: Atravs de programas de aplicacin. Directamente, usando un lenguaje de consulta, el ms comn es el SQL o (Structured Query Language).

4.

5.

Uno de los elementos ms importantes es el manejador de base de datos, ya que realiza funciones de suma importancia para garantizar la integridad y consistencia en la informacin. Enseguida se describe a un manejador de base de datos, as como las funciones principales que este tiene. Sistema Manejador de base de datos. DBMS (Data base management system) Coleccin de programas que permiten accesar y manipular a los datos, un DBMS apoya en actividades relevantes para el buen funcionamiento de un sistema, tales como: administrar a un diccionario de datos, administrar el almacenamiento de los datos, administrar la seguridad de los mismos, controlar el acceso a los usuarios, administrar respaldos y recuperacin, administrar la
6

Base de datos I.

integridad de los datos y accesar a bases de datos e interfaces de programacin de aplicaciones. Las Funciones principales de un DBMS son: a. Crear y organizar la base de datos. b. Establecer y mantener las trayectorias de acceso a la base de datos, de tal manera que los datos en cualquier parte de la base se puedan accesar rpidamente. c. Manejar los datos de acuerdo con las peticiones de los usuarios. d. Mantener la integridad y seguridad de los datos. e. Administracin de tareas de respaldo y recuperacin. f. Registrar el uso de las bases de datos. g. Administracin del diccionario de datos. h. Administracin del almacenamiento de datos. El DBMS interpreta y procesa las peticiones del usuario para recobrar informacin de la base, sirve de interfase entre las peticiones del usuario y las bases de datos. Cualquier DBMS cuenta con los siguientes elementos :

Lenguaje de consulta (SQL. Structured Query Language). Aquel lenguaje que no tiene procedimientos, esto es el usuario pide la informacin que requiere sin especficar cmo debe hacerse, permite a los usuarios manipular y consultar datos para extraer la informacin til. Ejemplo. Desplegar los datos de los alumnos. Select * from Alumnos.

Con esta sentencia es suficiente para conocer toda la informacin que se tenga almacenada en la tabla alumnos, no se requiere especificar detalles de apertura de archivo, de lectura, etc., el SQL realiza las operaciones y presenta resultados.

Lenguaje de definicin de datos (DDL. Data definition Language). Lenguaje descriptor de datos, define las estructuras y los datos. Ejemplo. Crear una tabla de Alumnos. Create table Alumnos ( No_mat Int not null, Nombre char(30) not null, Email char(20), Primary key (No_ctrl)
7

Base de datos I.

Lenguaje de manipulacin de datos. (DML. Data Manipulation Language). Lenguaje que permite la modificacin y manipulacin de los datos. Ejemplo. Insertar un registro a la tabla de Alumnos. Insert into Alumnos values (0256789,Luis Prez,lup@yahoo.com.mx)

Hablar de un sistema de base de datos implica considerar una arquitectura que conforma a la misma con caractersticas especificas y niveles definidos, enseguida se mencionan los niveles que integran esta arquitectura.. Arquitectura de un Sistema de Base de Datos La arquitectura de un Sistema de base de datos est dividida en tres nveles generales. Nvel interno, nivel externo y conceptual. Nvel Interno: Es la forma en que los datos son almacenados en un dispositivo de almacenamiento, es el ms cercano al almacenamiento fsico. Nvel externo: Es la forma en la cual los datos son vistos por usuarios individuales. (vista parcial de la B.D.), es el ms cercano a los usuarios, por ejemplo la informacin que se puede observar en un cajero de banco, contando con una cuenta de banco y un usuario. Nvel conceptual : Es el nvel de mediacin entre los dos niveles anteriores, es la forma en la cual los datos son vistos por los diseadores, analistas y administradores de una base de datos (vista total de la B.D.). Diccionario de Datos. Un Diccionario de datos es un lugar central de informacin que contiene descripciones de los datos, tales como tipo, significado, relaciones con otros datos, datos de los datos, tambien conocido como metadatos. Existen herramientas de apoyo en la creacin de un Diccionario de datos, el cual se puede integrar dentro de un sistema de manejo de base de datos o tratarse aisladamente. El diccionario de datos del DBMS proporciona una caracterstIca al DBMS de autodescriptivo. Un diccionario de datos preferentemente debe estar automatizado, puesto que si es manual ser difcil satisfacer las necesidades del diseador en cuanto a la definicin de los datos.
8

Base de datos I.

Objetivos bsicos de un diccionario de datos

Guardar la descripcin de todos los objetos que interactan con la base de datos. Permitir el manejo y la documentacin de los datos: definiendo o registrando cada campo, el tipo de dato, formato de despliegue en pantalla, reglas de validacin, de tal manera que cada persona que vaya a usar los datos conozca exactamente lo que significa. Datos de los creadores de la base de datos, usuarios y administradores de las bases de datos. Definir las relaciones entre elementos de datos, incluidos los elementos que sean obligatorios u opcionales, la cardinalidad, etc. Administrador de base de datos DBA.

El DBA es la persona (o grupo de personas) responsables del control general del sistema de Base de Datos. Responsabilidades del DBA. Decidir el contenido de la informacin de la BD. Auxiliado por los usuarios escribir los subesquemas, y asegurar que los datos requeridos por los usuarios estn siempre disponibles. Definir procedimientos de revisin, de autorizacin y de validacin. Definir una estrategia para respaldo y recuperacin. Controlar el funcionamiento y responder a requerimientos cambiantes. Determinacin de standares.

Modelo de Base de Datos. Para realizar un sistema de base de datos funcional y eficiente es necesario haber realizado un diseo correcto, para esto es necesario iniciar el modelado de la base de datos que represente la realidad y los detalles reelevantes del sistema a disearse. A continuacion se definen algunos conceptos que se utilizan en el diseo de una base de datos. Modelo. Una representacin de la realidad que retiene slo detalles seleccionados. El modelo expresa las entidades y sus relaciones y es la herramienta usada para representar la organizacin conceptual de los datos. Los modelos conocidos actualmente son: Modelo de datos.

Base de datos I.

Representacin grfica relativamente simple de estructuras de datos del mundo real. ANSI(American National Standards Institute/Standards Planning and requirementes Comit (ANSI/SPARC), define tres tipos de modelos de acuerdo con su grado de abstraccin conceptual, externo e interno. Modelo Interno. El modelo interno es utilizado por los desarrolladores que trabajan con manejadores de tipo jerrquico y de redes, ya que estos modelos especifican detalles de almacenamiento de los datos y rutas de acceso. Modelo externo. Este modelo muestra la visin de del ambiente de datos de los usuarios finales. Cada modelo externo incluye entidades, relaciones, procesos y restricciones apropiadas definidas por las reglas de negocio. Modelo fsico. Este modelo es el que funciona en el nivel ms bajo de abstraccin y describe como son almacenados los datos en los medios magnticos de almacenamiento. Este modelo depende tanto del hardware como del software. Este modelo es utilizado por desarrolladores que disean bases de datos jerrquicas y de red, las cuales requieren mayores detalles e almacenamiento de datos.

Modelo Externo

Modelo Conceptual

Modelo Interno

Modelo Externo Modelo Fsico

10

Base de datos I. Fig. 1 Modelos de base de datos.

Los modelos de datos: Modelo conceptual. Modelo entidad-relacin. Modelo orientado a objetos. Modelo semntico.

Modelo conceptual. Representa una visin global de los datos, en una representacin de datos a nivel empresarial. Este modelo es la base para la identificacin y descripcin de los objetos de datos principales, el modelo conceptual ms utilizado es el modelo entidad-relacin (E-R). Modelo entidad-relacin. Este modelo esta basado en una percepcin del mundo real que consta de una coleccin de objetos bsicos, llamados entidades, y de relaciones entre objetos. Una entidad es una cosa u objeto en el mundo real. Por ejemplo, cada persona es una entidad, y las cuentas bancarias pueden ser consideradas entidades. El modelo proporciona un lenguaje para expresar el modelo de datos de los usuarios o la estructura de los datos y sus relaciones en el ambiente de trabajo de los usuarios. Este modelo fue introducido por Peter Chen en 1976 estableciendo las bases para el mismo. El modelo E-R adems de entidades y relaciones representa ciertas relaciones que los contenidos de la base de datos deben cumplir. Una relacin es la correspondencia de cardinalidades, que expresa el nmero de entidades con las que otra entidad se puede asociar. Las estructuras lgicas de una base de datos se pueden expresar graficamente mediante un diagrama E-R, que consta de los siguientes componentes: Smbolos modelado entidad relacin Smbolo
ALUMNO

Representacin Entidad Alumno. Rectngulo. Representan entidades. Entidad de Relacin. Rombos: Representan relaciones entre conjuntos de entidades.

11

Base de datos I.

Atributo Elipses: Representan atributos.


_______

Relacin Lneas: Unin de entidades. 1: Lado uno de la relacin. * M: Lado muchos de la relacin.

1, *, M
Tabla 1. Simbologa modelo E-R.

Conceptos utilizados en el diseo de una base de datos. Atributo. Permiten describir a una entidad. Por ejemplo: el nombre, rfc, etc de un empleado. Valor nulo. Un valor de un atributo que no existe en una instancia especfica. Clave. Un valor que siempre puede utilizarse para identificar unicamente una instancia. Clave primaria. clave candidata que el diseador elige de la base de datos como el medio principal de identificar entidades dentro de un conjunto de entidades. Clave externa. Clave primaria de una tabla externa. Clave compuesta: Una clave compuesta de ms de un atributo.

CALLECTE RFC CLIENTE TIEN E

NMEROCUENT A SALDO CUENTA

NOMBRE CIUDADCLIENTE

12

Base de datos I.

Fig. 2. Ejemplo de diagrama de E-R Modelo Chen.

Descripcin de ejemplo:

Un cliente tiene varias cuentas de banco. Este modelo representa a las entidades Cliente y cuenta, adems de una tabla generada por la relacin denominada Tiene. La tabla Cliente contiene los atributos :RFC, Callecte, nombre, ciudadcliente. La tabla Cuenta contiene los atributos :Nmerocuenta, saldo.

Una variacin del modelo Chen es el modelo de Pata de gallo. Modelo de Pata de gallo. Desarrollado por C.W. Bachman, la diferencia entre el modelo Chen y este modelo es la representacin de conectividad, cuando para Chen es 1 y M, para el modelo de pata de gallo es (0,1), (0,N), (1,1), (1, N). A continuacin se muestra un ejemplo del modelo de pata de gallo.
PUESTO EMPLEADO

TIENE
* Cve-pto Puesto Sueldo * Cve-emp Nombre Dir RFC

Fig. No.3 Ejemplo Diagrama Pata de gallo

13

Base de datos I.

Descripcin de ejemplo:

Un empleado slo tiene un puesto. Un Puesto puede tener a varios empleados Este modelo representa a las entidades Puesto y Empleado, La tabla Empleado contiene los atributos: Cve_emp, nombre, Dir, RFC. La tabla Puesto contiene los atributos :Cve_pto, puesto, sueldo.

CLIENTE 1

Tiene M

FACTURA

Contiene

PRODUCTOS

Fig. No.4. Ejemplo Modelo conceptual de un sistema de Facturacin.

Descripcin del modelo. Una factura contiene muchos productos. Un producto se factura en N facturas. Un cliente puede recibir muchas facturas Una factura la recibe slo un cliente

Modelo orientado a objetos. Un modelo que representa las entidades del mundo real como objetos en lugar de como registros. Un objeto contiene valores almacenados en variables de ejemplares dentro de ese objeto. Un objeto tambien contiene fragmentos de codigo que operan en el objeto. Estos fragmentos de cdigo se llaman mtodos. Los objetos que contienen los mismos tipos de valores y los mismos mtodos se agrupan juntos en clases. Una clase puede ser una definicin de tipo para los objetos. Modelo de datos semntico. Un modelo que captura los significados de las entidades del mundo real y sus interrelaciones. Este modelo fue originalmente desarrollado con el propsito de incrementar la efectividad y precisin del diseo

14

Base de datos I.

de bases de datos. El modelo E-R de Chen ha sido el modelo semantico ms popular, es identificado tambin como modelo conceptual. Especializacin. Un conjunto de objetos que es un subconjunto de otro conjunto de objetos. Generalizacin. Un conjunto de objetos que es un superconjunto de (o que contiene a) otro conjunto de objetos. Interrelacin. Un enlace entre instancias de dos conjuntos de objetos. Cardinalidad. El nmero mximo de instancias de un conjunto de objetos que puede estar relacionado con una sola instancia de otro conjunto de objetos. Ejemplo: 1. Para una interrelacin entre un supervisor y un departamento, la cardinalidad es de una a una, en donde el uno es representado por 1. Supervisor 1,1 1,* SUPERVI SA 1,1 Departamento

Fig. 5. Interrelacin de uno a uno.

Un supervisor, supervisa a un departamento, y un departamento es supervisado por una persona, este el caso de una relacin de uno a uno 1 a 1. 2. Para una interrelacin entre un supervisor y empleados , la cardinalidad es de una a muchos, en donde el muchos podra ser representado por un *, o la letra m.

Supervisor

1,1

1,* SUPERVI SA

1,*

Empleado

Fig. 6. Interrelacin de uno a Muchos.

Un supervisor supervisa a muchos empleados. Un empleado tiene slo un supervisor, este es el caso de una interrelacin de uno a muchos, 3. En una interrelacin entre alumnos y materias cursadas, la cardinalidad es de muchos a muchos. Alumno Materias
15

CURSA

Base de datos I.

1, *
Fig. 7. Interrelacin de muchos a muchos.

1,*

*,1

Un alumno cursa muchas materias, una materia la cursan muchos alumnos. Este es el caso de una interrelacin muchos a muchos. Interrelacin funcional. Una interrelacin que tiene una cardinalidad maxima de valor 1 en al menos una direccin. Cardinalidad uno a uno. Una cardinalidad de la interrelacin que es 1 en ambas direcciones. Cardinalidad uno a muchos. Una cardinalidad de la interrelacin que es una en una direccin y muchos en la otra. Cardinalidad muchos a muchos. Una cardinalidad de la interrelacin que es mucho en ambas direcciones. Reglas que determinan las interrelaciones (Cardinalidad). Las siguientes reglas determinan las acciones que deben seguirse, una vez analizadas las interrelaciones que existen entre diferentes entidades. Regla 1. Si dos tablas tienen una interrelacin de uno a uno (1 a 1), entonces el campo clave de una de las tablas debe aparecer en la otra tabla. Ejemplo. Libro
Fig. 8.

Editorial

Un libro lo publica una editorial. Un

Regla 2. Si dos tablas tienen una interrelacin de uno a muchos (1 a *), entonces el campo clave de la tabla del (1) debe aparecer en la tabla del muchos (*). Ejemplo. Factura
Fig. 9.

Cliente

16

Base de datos I.

Una factura se emite para un cliente Un cliente puede tener muchas facturas.

Regla 3. Si dos tablas tienen una interrelacin de muchos a muchos (* a *), entonces debe crearse una nueva tabla que tenga como mnimo los campos claves de las dos tablas. Ejemplo. Factura
Fig. 10.

Articulos

En una factura se facturan varios articulos. Un articulo se factura en varias facturas.

Cardinalidades basicas de las interrelaciones. Cardinalidad Uno-uno Notacion 1:1 o 1-1 Ejemplos Un supervisor supervisa un departamento. Un departamento es atendido por un supervisor.
Un empleado esta en un departamento. Un departamento tiene muchos empleados

Uno-muchos Muchos-muchos

1:* o 1-* *:* o*-*

Una factura tiene muchos productos Un producto esta en muchas facturas

Tabla 2. Cardinalidades

Ejemplo de modelo de base de datos.


1.

Realice el diseo conceptual de una base de datos que permita la creacin de una orden de compra semejante a la siguiente: SOFTSIST ORDEN DE COMPRA

Fecha 12/10/2007

Nmero de orden 2132413

Nmero de vendedor 856 Precio 45.00 65.00 Cantidad 2 1

No_Art Descripcin 3821 Caja lapices #2 4919 Caja de papel

17

Base de datos I.

Subtotal 155.00 IVA Total


Fig. 11. Formato Orden de Compra.

15.50 170.50

Resolucin. Modelo Conceptual para la creacin de una base de dat6s que permite generar una Orden de Compra.
NMERO_VEN

VENDEDOR
DESCRIPCIO N

NOMBRE

1
PRODUCTO

* *
INCLUYE

NMERO FECHA

ORDEN

PRECIO NO_AR T IMPUESTO cantidad CANTIDAD TOTAL Fig. 12 Diseo conceptual.

La interrelacin *:* nos muestra que es necesaria la creacion de una tercer tabla, denominada INCLUYE, la cual contiene datos de la interrelacin como son el no_Art, nmero, adems de la cantidad de articulos ordenados. Ejemplo:
CANTIDAD

NOINVENTARI O Fig. 13. Creacin de nueva tabla.

INCLUYE

NMERO

18

Base de datos I.

19

Base de datos I.

2. Modelo de base de datos relacional. 2.1. Modelo de datos relacional y desarrollo de sistemas. 2.2. Conceptos fundamentales de modelo relacional. 2.3. Transformacin de un modelo conceptual a un modelo relacional. 2.4. Restricciones de integridad. 2.5. Proceso de Normalizacin. 2.5.1. Primera forma normal. 2.5.2. Segunda forma normal. 2.5.3 Tercera forma normal.

UNIDAD II Modelo Relacional de Base de datos.


Modelo relacional de base de datos. Una vez que las bases de datos fueron implementadas y utilizadas con exito surgieron diferentes formas de organizar y representarlas, surgieron diferentes modelos, modelo Jerrquico, modelo de redes, estos modelos dieron pauta a la creacin del modelo de base de datos relacional, el cual hasta la fecha es reconocido como uno de los modelos ms eficientes y que ofrece ventajas. A continuacin se describen brevemente sus antecedentes. El concepto base de datos relacional fue utilizado por primera vez por el Dr. Codd en 1970, el cual public un artculo en el que aplicaba los conceptos de una rama de las matemticas llamada algebra relacional, a los problemas de almacenar enormes cantidades de datos. Este artculo dio inicio a un movimiento en la comunidad de las bases de datos que en muy poco tiempo conduj a la definicin del modelo de bases de datos relacionales. El modelo relacional surge como un intento de simplificar la estructura de las bases de datos, eliminando estructuras padre/hijo del modelo jerrquico y en su lugar representaba todos los datos como tablas conformadas a su vez por renglones y columnas con valores de datos. Ejemplo. Esta tabla almacena informacin de libros, cada columna representar datos del libro, como el ttulo, autor, editorial, etc. En cada rengln se almacena la informacin referente a un libro. Entidad Libro Ttulo Autor Demian Hermann Hesse Cobol Javier Ceballos
Tabla 3. Ejemplo de Entidad o tabla.

Editorial Sayrols Macrobit

El modelo de base de datos relacional es un modelo simple, poderoso y formal de representar la realidad. Este modelo facilita la construccin de

20

Base de datos I.

consultas del usuario, dando como resultado programadores de la base de datos.

una alta productividad de los

A continuacion se muestran conceptos utilizados en el diseo de base de datos relacional. Conceptos fundamentales del modelo relacional. Tabla, Entidad o Afinidad: Una entidad puede ser llamada tambin como afinidad o tabla, es un objeto que existe y es distinguible de otros objetos, identifica unicamente un objeto o sujeto especfico del universo, representada por un conjunto de atributos, renglones y columnas, ejemplo: Tabla libro, tabla alumno, tabla empleado, etc. Esquema: la organizacin conceptual de toda la base de datos vista por su administrador, es la coleccin de tablas, de datos que conforman a las tablas y relaciones que se generan. Atributos: descriptores de la entidad de la cual se almacena informacin, Las columnas corresponden a los atributos (ttulo, editorial, autor). Dominio del atributo:El conjunto de todos los valores posibles para un atributo en particular. Relacin: Tabla que se genera a partir de la relacin o asociacin de dos o ms tablas o entidades existentes. Grado de la relacin: Es el nmero de columnas en una tabla. Cardinalidad de la relacin Expresa el nmero especfico de ocurrencias de una entidad asociadas con una ocurrencia de la entidad relacionada. Llave o clave.Es el identificador nico de cada tupla. Clave primaria. Clave que el diseador elige de la base de datos como el medio principal de identificar un registro o tupla dentro de una tabla. Clave compuesta: Una clave conformada por ms de un atributo. Clave candidata: Cualquier conjunto de atributos que puede ser elegido como una clave de una relacin. Clave externa: Clave primaria de una tabla externa; usada para indicar enlaces logicos entre relaciones. Tupla : Conjunto de atributos que representan a una unidad. Valor nulo. El valor dado a un atributo en una tupla, si el atributo es inaplicable o su valor es desconocido. En general, una tabla de relacin puede tener ms de una llave. Cada llave es denominada llave candidata. Aunque tambin es posible que un conjunto de entidades no tenga atributos suficientes para formar una clave primaria. Un conjunto de entidades de este tipo se denomina conjunto de entidades dbil. Un conjunto de entidades que tiene una clave primaria se le denomina entidad fuerte. Ejemplo de una entidad o tabla es la siguiente:
21

Base de datos I.

Tabla Empleado Noemp Nombre 1234 Damian Juarez 5234 Javier Carballo
Tabla 4. Ejemplo de tabla

Puesto Contralor Jefe Centro Cmputo

Profesin C.P. L.I.

Entidad: Empleado Atributos. Noemp, Nombre, Puesto, Profesin. Dominios atributo Noemp: 1234, 5234 Dominios atributo Nombre: Damian Juarez, Javier Ceballosl Dominios atributo Puesto: Contralor, Jefe Centro Cmputo. Dominios atributo Profesin: C.P., L.I. Transformacin de un modelo conceptual en un modelo relacional. Se ha revisado la representacin de un modelo conceptual, ahora se revisaran los detalles que se deben considerar para realizar la conversin entre un modelo conceptual y un modelo relacional. Un modelo de datos conceptual consta de objetos, interrelaciones, atributos, especializaciones, agregados, etc. Cada uno de ellos podr ser transformado generando la creacin de relaciones normalizadas. Transformar conjuntos de objetos y atributos.
NO_SS PERSONA FECHANAC

Este es un objeto con dos atributos. Persona es un objeto y los atributos son no_ss y fecha_nac Este diagrama se transforma en una relacin con atributos, de la sig. manera. PERSONA (NO_SS, FECHA-NAC). Se considera que el NO_SS puede servir como campo clave, ya que identifica unicamente a la persona. El campo subrayado representa al campo llave. Transformar modelos sin claves externas. Suponga el sig. modelo conceptual.

IMPORTE

NO_PTO

22

Base de datos I.

VENTA

En este caso es posible transformar este diseo al modelo relacional de la sig. forma. VENTA(Importe, no_pto), solo que no encontramos un campo que pueda servir de clave, por lo que es necesario aadir un atributo que nos represente a la clave para esta relacin. Ejemplo: VENTA(No_venta, Importe, no_pto) Transformar la especializacin y la generalizacin de conjuntos de objetos.

No-ss

Nombre PERSONA

Direccio n

Conyuge PERSONA CASADA

Este diseo se puede representar en el modelo relacional de la sig. manera. Persona casada es una especializacin de persona, por lo que hereda todos los datos de persona, adems de sus propios atributos, de tal forma que el modelo relacional se representara de la sig. forma. PERSONA_CASADA (No_ss, nombre, direccin, conyge) Clave externa: No_ss referencia a persona Para eliminar la redundancia, se eliminan los datos repetidos en la tabla de especializacin quedando de la sig. forma: PERSONA_CASADA (No_ss, conyuge) Clave externa: No_ss referencia a persona Transformar interrelaciones. Las interrelaciones se transforman en tres formas diferentes, dependiendo de la cardinalidad de las interrelaciones (uno-uno, uno-muchos, muchosmuchos). Cliente Cuenta
23

Tiene Cuenta

Base de datos I.

Cliente

1,1

1,*

1,1

Uno a uno. Considere: Un cliente slo tenga una cuenta y una cuenta slo pertenezca a un cliente. La transformacin de este modelo conceptual quedar de la sig. manera. Cuenta(No-cta, No-cte) Clave externa hace referencia a nmero de cliente. Cliente (No-cte,No-cta) Clave externa hace referencia a nmero de cuenta. Uno a muchos. Considere: Un cliente tenga muchas cuentas y una cuenta slo pertenezca a un cliente. Un cliente puede tener muchas cuentas Cuenta(No-cta, No-cte, saldo, fecha_apertura) Cliente (No-cte, nombre, direccin) Clave externa hace referencia a nmero de cliente. Relaciones muchos a muchos. Considere: Un cliente puede tener muchas cuentas y una cuenta puede estar asignado a varios clientes. Cuenta(No-cta, fecha_apertura) Cliente (No-cte, nombre, direccin) Tiene_cuenta(No-cte, No-cta, saldo) Clave fornea No-cte hace referencia a nmero de cliente. Clave fornea No-cta hace referencia a nmero de cuenta. al modelo relacional puede

Restricciones de Integridad. En la realizacin del diseo de una base de datos es muy importante considerar a las restricciones necesarias para lograr un buen diseo de la misma. Entendiendo por restriccin, a las reglas que limitan los valores que pueden estar en una base de datos.

24

Base de datos I.

Las restricciones ms importantes son las siguientes: Integridad de la entidad. El atributo que es clave de una fila no puede ser nulo. Ejemplo

No_matricula

Nombre Juan Lpez

Carrera Ing. Sistemas

El No_matricula, siendo el campo llave, no puede ser nulo.


Fig. Integridad de la Entidad.

Integridad referencial. El valor no nulo de una clave externa debe ser un valor real de la clave de otra relacin. Fecha 10/12/2007 10/12/2007 No_cte 100 150

Tabla Factura Folio 1 2

Tabla Clientes No_cte 100 Camila Ortega 120 Jorge Rbago


Fig. Integridad Referencial.

Nombre

Direccin Otay La Mesa

La integridad referencial no permitir generar una factura a un cliente que an no est dado de alta en el catlogo.

Dependencia funcional. El valor de un atributo en una tupla determina el valor de otro atributo en la tupla. Nombre_asig Base de Datos Lenguajes Algoritmicos Desarrollo Humano Crditos 8 7 5

No_asig. 1 2 3

Fig. Dependencia funcional.

25

Base de datos I.

La Dependencia funcional, permitir conocer cualquier dato de la tupla, conociendo el valor del campo llave. El modelo de datos relacinal de Codd incluye varias restricciones que se usan para verificar la validacin de los datos.

Los valores en las celdas de la tabla, deben ser de valor nico; no se permite repetir grupos, ni tener arreglos como valores. Todos los ingresos en cualquier columna (atributo) deben ser del mismo tipo. Cada columna posee un nombre nico y no es importante el orden de las columnas en la tabla. En la tabla no pueden ser idnticas dos hileras (tuplas) y no es importante el orden de los renglones.

La simplicidad del modelo relacional se da desde que todas las relaciones son definidas independientemente. La relacin en el modelo E-R puede ser representada por la unin entre atributos de diferentes tablas. Para entender el modelo relacional y la normalizacin es necesario conocer los conceptos de dependencia funcional y de clave, de la cual ya hemos hablado previamente. Una dependencia funcional es una relacin entre uno o ms atributos, esto es un dato ser dependiente de otro y podremos encontrar informacin a partir de un dato original. Cuando en una tabla o base de datos no se tiene un diseo correcto de los datos, se puede incurrir en las siguientes anomalas: Anomalias de actualizacin. Inconsistencia de los datos como resultados de datos redundantes y actualizaciones parciales. Anomalias de borrado. Prdida no intencionada, de datos debido a que se han borrado otros datos. Anomalias de Insercin. Imposibilidad de adicionar datos en la base de datos debido a la ausencia de otros datos. Ejemplo: Tabla Trabajador. Id-trab Nombre 1235 Manuel Alvarez 1235 Manuel Alvarez 1412 Martin Prez Oficio Electricista Electricista Obrero Id-sup 1511 1511 Id-edificio 300 400 500

26

Base de datos I.

1412 1412 1412 1511

Martin Prez Martin Prez Martin Prez Carlos Daz

Plomero Plomero Plomero Plomero

600 450 400 450

Esta es una tabla mal diseada, que muestra redundancia, en datos como el nombre y el oficio. Esta redundancia no slo ocupa espacio, sino que puede llevar a perder la integridad de los datos (prdida de la consistencia). Suponiendo que un trabajador atiende a ms de un edificio al mismo tiempo y que adems el oficio en una tupla es incorrecto y las dems son correctas. Esto genera inconsistencia entre las tuplas que contienen informacin del trabajador. Este es un ejemplo de anomalas de actualizacin. Suponga que un empleado ha dejado de trabajar por un tiempo y el edificio que tenia asignado fue concluido. Si se desea eliminar las tuplas de los edificios terminados es posible que la tupla de un trabajador sea borrada y no se tengan los datos del empleado.Esto se denomina anomalas de borrado. A modo inverso, puede tenerse contratado un nuevo empleado llamado Jorge Meja, si an no se le asigna un edificio. A esto se le llama anomalas de actualizacin. Para eliminar este tipo de errores es necesario aplicar la tcnica de normalizacin que nos permita tener un diseo correcto. Normalizacin. Se han realizado muchos trabajos tericos acerca de lo que es una relacin bien estructurada. Este trabajo se ha denominado Normalizacin, Codd, defini varias formas normales de afinidades. La tcnica de normalizacin es semejante a lo que comunmente se dice de que un prrafo en una lectura, debe tener un slo tema, si un prrafo tiene ms de un tema, debe dividirlo en tantos prrafos como temas se consideren. La lgica que se aplica a la normalizacin es cada afinidad normalizada tiene un slo tema, Si tiene dos o ms, deber fragmentarse en afinidades o tablas, cada una de las cuales tendr un slo tema. Estas clases de afinidades y las tcnicas para prevenir las anomalas son llamadas formas normales. Dependiendo de su estructura, una afinidad puede estar en primera forma normal, segunda forma normal o alguna otra. En su artculo Ted Codd, estableci la primera, segunda y tercera forma normal. Cada una de estas formas estn anidadas, esto es una afinidad que est en tercera forma, debe estar en primera y segunda forma normal. Primera forma normal

27

Base de datos I.

Una afinidad est en primera forma normal, si la tupla tiene un campo definido como campo clave y todos sus valores son atmicos o nicos para cada atributo en la relacin. Esto es que los valores de los atributos no pueden ser un conjunto de valores o un grupo repetitivo. Cualquier tabla de datos que cumpla con la definicin de una afinidad, se dice que est en la primera forma normal. Si en una tabla nos encontramos grupos repetitivos es necesario crear una tabla de relacin que interrelacione a las tablas determinadas. Ejemplo: Tabla Trabajador. Id-trab Nombre
1235 1412 1511 Manuel Alvarez Martin Prez Carlos Daz

Oficio
Electricista Plomero Plomero

Id-sup
1511

Id-edificio
300,450,500 400.450,500,600 450,500

En esta tabla se observa que cada empleado puede atender a diferentes edificios, este es el caso de un atributo como grupo repetitivo, por lo que es necesario corregir esta tabla creando una nueva tabla de relacin. Trabajador Id-trab
1235 1412 1511

Nombre
Manuel Alvarez Martin Prez Carlos Daz

Oficio
Electricista Plomero Plomero

Id-sup
1511

Asignacin por trabajador Id-trab Id-edificio


1235 1235 1235 1412 1412 1412 1412 1511 1511 300 450 500 400 450 500 600 450 500

Segunda forma normal. La segunda y tercera forma normal se ocupan de la relacin entre los atributos claves y no claves. Una relacin est en segunda forma normal (2FN) si todos sus atributos que no son claves dependen por completo de la clave, esto es cada afinidad que tiene un atributo nico como clave, est en segunda forma normal. La clave es slo un atributo, en forma predeterminada, cada atributo que no es clave no es funcionalmente dependiente de una parte de la clave; no puede

28

Base de datos I.

haber dependencias parciales.Por tanto, la 2FN puede violarse slo cuando una clave sea compuesta o, en otras palabras, que conste de ms de un atributo. Ejemplo: Id-trab
1235 1412 1235 1412 1412

Nombre
Manuel Alvarez Martin Prez Manuel Alvarez Martin Prez Martin Prez

Id-edificio
300 400 450 500 600

Fecha inicio
01/01/01 01/04/01 10/03/01 02/10/01 03/12/01

En esta tabla tenemos los datos del trabajador (id-trab y nombre) cada vez que aparece una tupla de edificio asignado, existe redundancia en el nombre y podria accesar datos por id-trabajador y por nombre, esto es una violacin a la 2FN. Tercera forma normal. Una afinidad est en tercera forma normal si est en segunda forma normal y no tiene dependencias transitivas. Una dependencia transitiva es un arreglo de dependencias funcionales. Es posible decir que una relacin est en 3FN si para toda dependencia funcional DF: X Y, X es una clave. Trabajador Id-trab
1235 1412 1511

Oficio
Electricista Plomero Plomero

Sueldo
3.50 3.00 3.75

3. Introduccin a SQL.
3.1 Introduccin a SQL. 3.1.1 Componentes de SQL 3.1.2 Comandos y clausulas. 3.1.3 Operadores Lgicos 3.1.4 Operadores de Comparacin 3.1.5 Funciones Sumarias 3.2. Consultas de Seleccin. 3.2.1. Consultas Bsicas 3.2.2. Ordenar los registros
29

Base de datos I.

3.2.3. Consultas con predicado 3.2.4. Alias 3.3. Criterios de Seleccin 3.3.1 Operadores Lgicos 3.3.2 Intervalos de Valores 3.3.3 El Operador Like 3.3.4 El Operador In 3.3.5 Agrupamiento de Registros y Funciones Sumarias 3.4 Subconsultas 3.5 Ejercicios.

III. Introduccin al lenguaje SQL. Lenguaje estructurado de consulta.


Introduccin a SQL. SQL es una herramienta para organizar, gestionar y recuperar datos almacenados en una base de datos automatizada. El nombre SQL es una abreviatura de Structured Query Language (Lenguaje estructurado de consultas), SQL trabaja con bases de datos relacionales. SQL es mucho ms que una herramienta de consulta, aunque ese fue su propsito original y recuperar datos sigue siendo una de sus funciones ms importantes. SQL se utiliza para controlar todas las funciones que un DBMS proporciona a sus usuarios, incluyendo: Definicin de datos. Recuperacin de datos. Manipulacin de datos. Control de acceso. Comparticin de datos Integridad de datos.

Sql no es en s un lenguaje de programacin como el Cobol, C, etc. no contiene comandos como ciclo for, sentencia if, etc. Sin embargo cuenta alrededor de 30 instrucciones bsicas que permiten al usuario obtener informacin cuando y como lo requiera. Sql juega tiene las siguientes funciones:

Consultas interactivas. Lenguaje de programacin de base de datos. Lenguaje de Administracin de base de datos. Lenguaje cliente/servidor. Lenguaje de base de datos distribuidas.

Componentes de SQL

30

Base de datos I.

El lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. Existen dos tipos de comandos SQL

Los DDL que permiten crear y definir nuevas bases de datos, campos e ndices. Los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.

Comandos DDL Comando Descripcin CREATE Utilizado para crear nuevas tablas, campos e ndices DROP Empleado para eliminar tablas e ndices Utilizado para modificar las tablas agregando campos o cambiando la ALTER definicin de los campos. Comandos DML Comando Descripcin Utilizado para consultar registros de la base de datos que satisfagan SELECT un criterio determinado Utilizado para cargar lotes de datos en la base de datos en una nica INSERT operacin. Utilizado para modificar los valores de los campos y registros UPDATE especificados DELETE Utilizado para eliminar registros de una tabla de una base de datos

Clusulas Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o manipular. Clusula FROM WHERE GROUP BY HAVING ORDER BY Descripcin Utilizada para especficar la tabla de la cual se van a seleccionar los registros Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar Utilizada para separar los registros seleccionados en grupos especficos Utilizada para expresar la condicin que debe satisfacer cada grupo Utilizada para ordenar los registros seleccionados de acuerdo con un orden especfico
31

Base de datos I.

Operadores Lgicos Operador AND OR NOT Uso Es el "y" lgico. Evala dos condiciones y devuelve un valor de verdad slo si ambas son ciertas. Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta. Negacin lgica. Devuelve el valor contrario de la expresin.

Operadores de Comparacin Operador < > <> <= >= = BETWEEN LIKE In Uso Menor que Mayor que Distinto de Menor Igual que Mayor Igual que Igual que Utilizado para especificar un intervalo de valores. Utilizado en la comparacin de un modelo Utilizado para especificar registros de una base de datos.

Consultas de Seleccin Las consultas de seleccin se utilizan para indicar al motor de datos que devuelva informacin de las bases de datos, esta informacin es devuelta en forma de conjunto de registros. Este conjunto de registros es modificable. Consultas bsicas La sintaxis bsica de una consulta de seleccin es la siguiente: SELECT atributo(s) FROM Tabla; En donde atributos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos, por ejemplo: SELECT Nombre,Telfono FROM Clientes; Esta consulta devuelve el campo nombre y telfono de la tabla clientes.

32

Base de datos I.

Clusula from. Especfica la tabla o las tablas de las que los datos sern obtenidos. Clusula where. Nos permite especficar los renglones que deseamos recuperar, en funcin de alguna condicin especfica. SELECT Nombre, Telfono FROM Clientes where nombre=Camila; Esta consulta devuelve el campo nombre y telfono de la tabla clientes en donde el nombre del cliente es Camila. Funciones Sumarias Las funciones de agregado o sumatorias, se usan dentro de una clusula SELECT para devolver un nico valor que se aplica a un grupo de registros. Funcin AVG COUNT SUM MAX MIN Descripcin Calcula el promedio de los valores de un campo determinado Devuelve el nmero de registros de la seleccin Devuelve la suma de todos los valores de un campo determinado Devuelve el valor mayor de un campo especificado Devuelve el valor menor de un campo especificado

Ejemplos: Select avg(precio) from productos Esta sentencia nos regresara un valor que es el promedio de los precios de todos los articulos de la tabla productos. Select sum(precio) from productos Esta sentencia nos regresara un valor que es la suma de los precios de todos los articulos de la tabla productos. Select count(no-pto) from productos Esta sentencia nos regresara un valor que es la cantidad de articulos de la tabla productos. Select max(precio) from productos Esta sentencia nos regresara el precio mayor de los articulos de la tabla productos. Select min(precio) from productos Esta sentencia nos regresara el precio menor de los articulos de la tabla productos.

33

Base de datos I.

Ordenar registros Adicionalmente se puede especficar el orden en que se desean recuperar los registros de las tablas mediante la clasula ORDER BY Lista de Campos. En donde Lista de campos representa los campos a ordenar. Ejemplo: SELECT CdigoPostal, Nombre, Telfono FROM Clientes ORDER BY Nombre; Esta consulta devuelve los campos CdigoPostal, Nombre, Telfono de la tabla Clientes ordenados por el campo Nombre. Se pueden ordenar los registros por ms de un campo, como por ejemplo: SELECT CdigoPostal, Nombre, Telfono FROM Clientes ORDER BY CdigoPostal, Nombre; Incluso se puede especficar el orden de los registros: ascendente mediante la clasula (ASC -se toma este valor por defecto) descendente (DESC) SELECT CdigoPostal, Nombre, Telfono FROM Clientes ORDER BY CdigoPostal DESC, Nombre ASC; Consultas con Predicado El predicado se incluye entre la clasula y el primer nombre del campo a recuperar, los posibles predicados son:

Predicado ALL TOP

Descripcin Devuelve todos los campos de la tabla Devuelve un determinado nmero de registros de la tabla Omite los registros cuyos campos seleccionados coincidan DISTINCT totalmente Omite los registros duplicados basndose en la totalidad del DISTINCTROW registro y no slo en los campos seleccionados. ALL: Si no se incluye ninguno de los predicados se asume ALL. El Motor de base de datos selecciona todos los registros que cumplen las condiciones de la instruccin SQL. Ejemplo: Select all from empleados; Select * from empleados;

34

Base de datos I.

TOP: Devuelve un cierto nmero de registros que entran entre al principio o al final de un rango especificado por una clusula ORDER BY. Supongamos que queremos recuperar los nombres de los 25 primeros estudiantes del curso 2002: Select top 25 Nombre order by no_est desc; from Estudiante where curso=2002

DISTINCT :Omite los registros que contienen datos duplicados en los campos seleccionados. Por ejemplo, varios empleados listados en la tabla Empleados pueden tener el mismo apellido. Si dos registros contienen Lpez en el campo Apellido, la siguiente instruccin SQL devuelve un nico registro: Select distinct apellido from empleados; Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos indicados en la clusula SELECT poseen un contenido diferente. Alias En determinadas circunstancias es necesario asignar un nombre a alguna columna determinada de un resultado obtenido en alguna consulta. Para esto se utiliza la palabra reservada AS que se encarga de asignar el nombre que deseamos a la columna calculada. Ejemplo Sentencia que devuelve la cantidad de empleados en la tabla empleados, la cantidad obtenida la muestra en un atributo denominado Contador. SELECT count(nombre) as contador from Empleados; Sentencia que devuelve el promedio de gastos en la tabla Pedidos, en donde gastos sea mayor que 100. SELECT Avg(Gastos) AS Promedio FROM Pedidos WHERE Gastos > 100 Criterios de Seleccin. En una consulta es posible filtrar los registros con el fin de recuperar solamente aquellos que cumplan condiciones preestablecidas. Antes de iniciar hay que recalcar tres detalles de vital importancia. Cada vez que se desee establecer una condicin referida a un campo de texto, la condicin de bsqueda debe ir encerrada entre comillas simples; 2. No es posible establecer condiciones de bsqueda en los campos memo y;
1.

35

Base de datos I.

3.

Referenca a las fechas. Las fechas se deben escribir siempre en formato mm-dd-aa en donde mm representa el mes, dd el da y aa el ao, hay que prestar atencin a los separadores -no sirve la separacin habitual de la barra (/), hay que utilizar el guin (-) y adems la fecha debe ir encerrada entre (#). Por ejemplo si deseamos referirnos al da 3 de Septiembre de 2007 se debe hacer de la siguente forma; #09-03-07# #9-3-07#.

Operadores Lgicos Los operadores lgicos soportados por SQL son: AND, OR, XOR, Eqv, Imp, Is y Not. A excepcin de los dos ltimos todos poseen la siguiente sintaxis: <expresin1> operador <expresin2>

En donde expresin1 y expresin2 son las condiciones a evaluar, el resultado de la operacin vara en funcin del operador lgico. Select * from empleados where (edad>25) and (edad<50)

Select * from empleados where (edad > 25) and (edad < 50) or (sueldo = 100) Select * from empleados where not (estado='soltero') Select * from empleados where ((sueldo > 100) and (sueldo < 500)) or ((ciudad = 'madrid') and (estado = 'casado')) Intervalos de Valores (Between). Permite indicar que datos deseamos recuperar segn el intervalo de valores de un campo, la sintaxis del operador Between es: Select campo(s) from Tabla where campo [Not] Between valor1 And valor2 (la condicin Not es opcional) En este caso la consulta devolvera los registros que contengan en "campo" un valor incluido en el intervalo valor1, valor2 (ambos inclusive). Si anteponemos la condicin Not devolver aquellos valores no incluidos en el intervalo. Ejemplo: SELECT * FROM Pedidos WHERE CodPostal Between 28000 And 28999; (Devuelve los pedidos realizados en las ciudades con codpostal entre 28000 y 28999) Operador Like
36

Base de datos I.

Se utiliza para comparar una expresin de cadena con un modelo en una sentencia SQL. Su sintaxis es: expresin Like modelo En donde expresin es una cadena modelo o campo contra el que se compara expresin. Se puede utilizar el operador Like para encontrar valores en los campos que coincidan con el modelo especficado. Por modelo se puede especificar un valor completo (Ana Mara), o se pueden utilizar caracteres comodn como los reconocidos por el sistema operativo para encontrar un rango de valores (Like An*). Ejemplo: Si introduce Like C* en una consulta SQL, la consulta devuelve todos los valores de campo que comiencen por la letra C. Ejemplo: Sentencia que devuelve los datos que comienzan con la letra P, seguido de cualquier letra entre A y F y de tres dgitos: Like 'P[A-F]###' Este ejemplo devuelve los campos cuyo contenido empiece con una letra de la A a la D seguidas de cualquier cadena. Like '[A-D]*' Test de pertenencia In Este operador devuelve aquellos registros cuyo campo indicado coincide con alguno de los que pertenecen a una lista. Su sintaxis es: expresin [Not] In(valor1, valor2, . . .) Ejemplo: Desplegar los datos de los pedidos cuya ciudad este entre la lista de Select * from pedidos where provincia In (Tijuana, 'Madrid', 'Londres', 'New York'); Clusula WHERE La clusula WHERE puede usarse para determinar qu registros de las tablas enumeradas en la clusula FROM aparecern en los resultados de la instruccin SELECT. Si no se emplea esta clusula, la consulta devolver todas

37

Base de datos I.

las filas de la tabla. WHERE es opcional, pero cuando aparece debe ir a continuacin de FROM. Ejemplos: Desplegar el apellido y salario de los empleados cuyo salario sea > 21000. Select apellidos, salario from empleados where salario > 21000; Desplegar id_producto, existencias de la tabla Productos en donde existencia sea menor o igual a 1000.

Select id_producto, existencias from productos where existencias <= 1000; Desplegar apellido y nombre de la tabla Empleados en donde apellido = Martnez

Select apellidos, nombre from empleados where apellidos = Martnez

Desplegar apellido y nombre de la tabla Empleados en donde apellido inicie con la letra S y despus contenga una cadena de caracteres.

Select apellido y nombre from empleados where apellidos like 'S*'; Desplegar apellido y nombre de la tabla Empleados en donde salario este entre 200 y 300.

Select apellido, salario from empleados where salario between 200 and 300; Agrupamiento de Registros GROUP BY Agrupa los registros con valores idnticos, para cada registro se crea un valor sumario si se incluye una funcin SQL agregada, como por ejemplo Sum o Count, en la instruccin SELECT. Sintaxis: SELECT campos FROM tabla WHERE criterio GROUP BY campos del grupo GROUP BY es opcional. Los valores de resumen se omiten si no existe una funcin SQL agregada en la instruccin SELECT. Los valores Null en los campos GROUP BY se agrupan y no se omiten. No obstante, los valores Null no se evalan en ninguna de las funciones SQL agregadas. Ejemplo: Desplegar el id de linea y la suma de stock de la tabla Productos agrupado por idLinea.
38

Base de datos I.

SELECT Id_Linea, Sum(Stock) FROM Productos GROUP BY Id_Linea. Columnas calculadas. SELECT Sum(PrecioUnidad * Cantidad) AS Total FROM DetallePedido; SubConsultas Una subconsulta es una instruccin SELECT anidada dentro de una instruccin SELECT, SELECT...INTO, INSERT...INTO, DELETE, o UPDATE o dentro de otra subconsulta. Una subconsulta puede realizarse mediante comparacin o Instruccin sql. Comparacin Es una expresin y un operador de comparacin que compara la expresin con el resultado de la subconsulta. Instruccin sql Es una instruccin SELECT, que sigue el mismo formato y reglas que cualquier otra instruccin SELECT. Debe ir entre parntesis. Se puede utilizar una subconsulta en lugar de una expresin en la lista de campos de una instruccin SELECT o en una clusula WHERE o HAVING. En una subconsulta, se utiliza una instruccin SELECT para proporcionar un conjunto de uno o ms valores especificados para evaluar en la expresin de la clusula WHERE o HAVING. El predicado IN se emplea para recuperar nicamente aquellos registros de la consulta principal para los que algunos registros de la subconsulta contienen un valor igual.

Ejemplo: Despliega todos los productos vendidos con un descuento igual o mayor al 25 por ciento.:

Select * from productos where idproducto in (select idproducto from detallepedido where descuento >= 0.25); Inversamente se puede utilizar NOT IN para recuperar nicamente aquellos registros de la consulta principal para los que no hay ningn registro de la subconsulta que contenga un valor igual. El predicado EXISTS (con la palabra reservada NOT opcional) se utiliza en comparaciones de verdad/falso para determinar si la subconsulta devuelve algn registro.

39

Base de datos I.

Ejemplo: Suponga que desea conocer el nombre de las partes suministradas por el proveedor No. 1 Select parte from Partes where Partes_suministradas where S#=s1). no_pto = (Select no_pto from

En esta sentencia es necesario realizar una sentencia anidada, debido a que el no_del proveedor esta en la tabla partes suministradas, pero los datos de la parte, esta en la tabla Partes, por lo que el resultado de la consulta interna ser el valor de la clasula Where.

40

Base de datos I.

Ejercicio SQL
Tabla Partes
No_ pto P1 P2 P3 P4 Parte Tuerca Perno Tornillo Tornillo Color Rojo Verde Azul Rojo Estado 12 17 17 14 Precio 1.50 2.00 4.80 1.20

Tabla Proveedores
S# S1 S2 S3 Nom Salazar Jaramillo Bernal Estado 20 10 30 Ciudad Londres Pars Pars

Tabla Partes_Suministradas
S# S1 S1 S1 S1 S2 S2 S3 No_pto P1 P2 P3 P4 P2 P2 P2 Cant 300 200 400 300 300 350 200

41

I.

Utilizando las tablas anteriores, se resuelven los siguientes ejercicios, usando las sentencias correspondientes:

1. Encontrar el nombre de la ciudad del proveedor S1. Select ciudad from Proveedor where S#=S1. Encontrar el nmero y estado de los proveedores cuya ciudad es Pars. Select s#, estado from Proveedor where ciudad=Pars.
2.

Cual es el nombre del proveedor que surte la parte con mayor cantidad. Select nombre from Proveedor where s#=(Select s# from Partes_suministradas where cant= (Select max(cant) from Partes_suministradas.
3.

Encontrar el promedio de la cantidad suministrada por cada proveedor. Select avg(cantidad) from Partes_suministradas group by s#
4.

5. Encuentre el color de la parte 2. Select color from partes where no_pto= 2 6. Quien es el proveedor cuya ciudad es Londres. Select s#, nombre from proveedores where ciudad=Londres 7. Cuntas partes son de color rojo. Select count(color) from partes where color= rojo 8. Encontrar la suma de todos los precios de los artculos, el precio maximo, el mnimo y el promedio de precios. Select sum(precio) as suma,max(precio) as maximo, min(precio) as minimo, avg(precio) as promedio from partes. 9. Encuentra las partes donde el color sea rojo y el precio > 1. Select * from partes where (color=rojo) and (precio>1) 10. Lista a las partes suministradas con una cantidad mayor a 200. Select * from partes_suministradas where cantidad > 200

Ejercicio SQL Usando las tablas de la base de datos que se anexan, realiza las sentencias de sql, necesarias para resolver cada caso. Art-fact Productos No-fact No-pto Cantidad Clave Descripcin Precio-prod Linea 100 1587 160 -prod 101 9978 100 1587 Motherboard $450.00 01 102 2020 150 Pentium IV 2020 Impresora Laser HP 175.99 01 102 9147 1000 2145 Impresora Deskjet 150.00 01 103 1587 2500 9052 Monitor Svga 99.99 01 104 2145 1200 9147 Mouse 15.99 01 105 9147 1400 9268 Windows xp 53.21 08 106 2020 1500 Software 107 2020 2000 9978 Software Creative 55.89 08 107 9052 2500 9987 Aplique SQL (libro) 28.89 05 108 1587 3000 9989 Microsoft (Libro) 25.89 05 109 9997 1000 9997 Microsoft Publisher 97.89 08 109 9268 5000 9998 Cable coaxial 25.20 02 110 9978 2000 110 9052 3000 Lineas 111 9989 5000 Cve-linea Descrip-linea 111 9147 2000 01 Equipo 112 9998 9000 02 Cables Facturas 05 Librera 08 Software No-fact No-cte Fecha Clientes Nocte Nombre Dir Tel 100 1001 03/12/06 1000 Javier Barragan Otay 23-64-72 101 1003 03/06/07 1001 Enrique Hipodromo 82-25-36 101 1004 25/10/06 Ramrez 102 1002 03/01/06 1002 Camila Ortega La Mesa 85-56-98 102 1003 24/11/06 1003 Martha Ruiz Otay 89-78-48 103 1001 14/06/06 1004 Jorge Gutirrez Playas 56-85-79 104 1002 25/10/06 105 1003 03/01/06 106 1002 24/11/06 106 1003 14/06/06 107 1001 25/10/06 107 1002 03/01/06 108 1004 24/11/06 109 1003 25/10/06 110 1002 03/01/06 111 1003 24/11/06 112 1004 14/06/06

Apuntes Docentes Base de Datos

1. Encuentra el total acumulado de precio de productos de la lnea Software 2. Despliega los datos de la factura en la cual se le haya facturado al cliente Camila Ortega. 3. Despliega los precios de los productos de la lnea software. 4. Encuentra el nombre de los artculos facturados en la factura 107. 5. Despliega la cantidad de facturas emitidas al cliente Enrique Ramrez. 6. Borra aquellos clientes en donde el estado sea B 7. Encuentra el promedio de precios de los productos de la lnea equipo. 8. Despliega la clave y descripcin de los productos cuyo precio esta entre 50 y 100.00 9. Despliega el no de factura, el nombre del cliente, de la factura emitida el 03/06/06. 10. Borra a aquellos artculos de la lnea cables. 11. Lista en un reporte los datos de los clientes cuyo estado sea A. 12. Despliega el no de producto y los totales facturados por producto. 13. Encuentra los datos de las facturas que se hayan realizado al cliente Martha Ruiz. 14. Despliega el promedio de cantidades de productos facturados por producto. 15. Despliega el total de cantidad facturado del producto Mouse

Margarita Ramrez Ramrez

Pag. No. 45

Apuntes Docentes Base de Datos

4. Modelos de base de datos 4.1 Modelo Jerrquico 4.2 Modelo de red. 4.3 Sistemas de B.D. Orientado a objetos 4.4 Sistemas de B.D. distribuidas. 4.5 Sistemas de B.D. cliente/servidor. Modelos de Sistemas de Bases de Datos Existen varios enfoques para disear un verdadero sistema de base de datos, y esto es de acuerdo a las estructuras de almacenamiento y formas de accesar los elementos de los datos. Existen varios modelos de Base de Datos Modelo Jerrquico Modelo de Redes. Modelo Relacional. Modelo de base de datos orientada a objetos.

Modelo Jerrquico. Conjunto de registros que se conectan entre s, guardando la informacin por medio de rboles (ligas), existe una relacin de padres a hijos y viceversa. Los sistemas de base de datos jerrquicos requieren que se piense en los datos colocados en una jerarqua. Cada dato est subordinado a otro excepto el dato raz. En lugar de ser una simple coleccin de campos, el registro es una coleccin de subregistros segmentos, cada segmento es parte de un registro. Un segmento puede contener ms de un campo, un nvel puede agruparse para formar un nico segmento. El almacenamiento de los datos en una base de datos jerrquica es tipo plana en cierta forma controlada y almacenada secuencialmente. Los manejadores de base de datos jerrquico son: IMS(Information Management System). TDMS (System Development Corporations time-shared Data management system) System 2000. Mark IV Los conceptos de base de datos en el modelo jerrquico son.

Modelo de datos jerrquico.


Margarita Ramrez Ramrez Pag. No. 46

Apuntes Docentes Base de Datos

Un modelo de datos en el cual todas las interrelaciones son estructuradas como rboles. Padre: La raz de la estructura arborescente. Hijo: Un nodo dependiente de otro nodo en un nvel superior. rbol: Una estructura en red en donde un tipo de segmento hijo es enlazado a un slo tipo de segmento padre. Tipo de interrelacin padre-hijo: Interrelacin lgica entre un tipo de segmento padre y un tipo de segmento hijo. Ventajas del modelo Las caractersticas ms sobresalientes del modelo de base de datos jerrquico ofreci ventajas sobre el modelo de sistemas de archivos. Muchas caractersticas de este modelo fueron el fundamento de los modelos de base de datos actuales, las ventajas ms importantes del modelo jerrquico son: 1. Simplicidad conceptual: Debido a la estructura jerrquica, la relacin entre los nveles es lgicamente simple, lo que facilita el proceso de diseo. 2. Seguridad de la base de datos: La seguridad es ejecutada por el DBMS, de modo que la seguridad se ejecuta uniformemente por todo el sistema. 3. Independencia de los datos: El DBMS crea un ambiente en el que la independencia de los datos puede mantenerse, por lo que la programacin y mantenimiento se disminuye sustancialmente. 4. Integridad de la base de datos. Dada la relacin padre/hijo, siempre hay un vnculo entre el segmento padre/hijo, por esto la integridad es promovida. 5. Eficiencia: Este modelo es eficiente cuando contiene un gran volumen de datos en relaciones 1:M y cuando los usuarios requieren muchas transacciones en las que utilizan datos cuyas relaciones se mantienen fijas con el tiempo. Desventajas del modelo Jerrquico. Aunque las bases jerrquicas y sus aplicaciones an existen, ste modelo dejo de ser el ideal entre los a6s 70s y 80s debido a las siguientes desventajas: Difcil de administrador: Cualquier cambio en la estructura de la base de datos requiere un cambio en todos los programas de aplicacin que tiene acceso a la base de datos, por lo que la administracin puede convertirse en una tarea muy difcil. 2. Dependencia de la estructura: Este modelo requiere de la navegacin entre los registros, por lo que el hacer alguna modificacin requiere que el programador conozca las rutas de navegacin de cada regIstro. 3. Complejidad de la programacin: La estrucura de la base de datos hace muy compleja la programacin, se dice que este modelo de base de datos fue creado para programadores y por programadores. 4. Limitaciones de ejecucin: Muchas relaciones no se ajustan al estndar 1:M requerido por el modelo jerrquico.
1. Margarita Ramrez Ramrez Pag. No. 47

Apuntes Docentes Base de Datos

5.

Falta de estandarizacin: Este modelo no logro adoptar a manejadores de base de datos que ofrecieran las herramientas necesarias por lo que haba diversas aplicaciones que se utilizaron para implementar este modelo de base de datos.

En los aos 70s los profesionales de base de datos se reunieron y publicaron un conjunto de estndares de base de datos que finalmente llevaron al desarrollo de modelos alternos. El ms notables fue el modelo de base de datos de red. Modelo de base de datos de red. Las estructuras y construcciones del lenguaje para el modelo de red fueron definidas por el comit CODASYL (Conference on Data Systems Languages: Conferencia sobre lenguajes para sistemas de datos), posteriormente, el ANSI (American National Standards Institute: Instituto nacional de estndares) public una recomendacin para el lenguaje de definicin de red. Los conceptos utilizados en el modelo de red son los siguientes: Red : Conjunto de puntos intercalados de alguna forma. Arista : la conexin entre dos puntos se denomina arista. Consiste en una serie de registros que estn conectados entre s por medio de ligas. Una arista coincide con un punto si lo toca. Grado de un nodo: Es el nmero de aristas que inciden en l. Conjunto : El bloque bsico de construccin de una red. Registro propietario: Al tipo de registro en el "lado uno" de la relacin "uno a muchos" se le denomina tipo de registro propietario. Registro miembro: A el registro en el lado "muchos" se le denomina registro miembro. Esquema: La vista lgica de todos los datos y sus interrelaciones en la base de datos. Subesquemas: Los subconjuntos del esquema que se definen por la vista del usuario de la base de datos. Los sistemas de base de datos de red son similares a los sistema jerrquicos. Una de las mayores diferencias es que, bajo ciertas condiciones un hijo puede tener ms de un padre, en el modelo de red. La base de datos se compone de una coleccin de conjuntos. Ventajas del modelo. Este modelo conserva ventajas del modelo jerrquico y al mismo tiempo tener algunas mejoras, las ventajas de este modelo son:

Margarita Ramrez Ramrez

Pag. No. 48

Apuntes Docentes Base de Datos

1. 2.

3.

4. 5.

Simplicidad conceptual: La vista conceptual de la base es simple y por lo tanto simplifica el diseo. Maneja ms tipos de relaciones: Las relaciones M:M son ms fciles de manejar en una base de este tipo ya que la posibilidad de establecer relaciones de diversa ndole son posibles, creacin de lazos en las relaciones. Flexibilidad de acceso a los datos: Una aplicacin puede tener acceso a un registro propietario y a todos los registros miembros dentro de un conjunto. Si un registro miembro tiene dos o ms propietarios puede pasarse de un propietario a otro. Independencia de datos: Este modelo aisla parcialmente los programas de los detalles de almacenamiento fsico complejo. Estandarizacin: Este modelo surge con la creacin de estndares, por lo que la estandarizacin en este modelo es una ventaja.

Desventajas del modelo. An cuando este modelo ofreca ventajas en comparacin al modelo jerrquico, estaba sujeto a desventajas significativas: Complejidad interna: Este modelo no fue creado para tener accesos sencillos, es necesario que el programador conociera claramente las rutas de navegacin de los registros para que fuese posible su manipulacin y actualizacin. 2. Falta de independencia estructural: Algunos cambios estructurales son imposibles de hacer, al realizar algn cambio, es necesario modificar todas las aplicaciones.
1.

Modelo Relacional. Se basa en la utilizacin de tablas, estn formadas por renglones (tuplas) y columnas (atributos). Anteriormente ya se analiz este modelo de base de datos.

Sistema de base de datos distribuida. Concepto base de datos distribuida. Base de datos segmentada ubicada en distintas localizaciones unidas todas ellas atravs de una red. El procesamiento de base de datos distribuidas actualmente se encuentra en evolucin y cambios, no es posible hablar de una disciplina que se encuentre
Margarita Ramrez Ramrez Pag. No. 49

Apuntes Docentes Base de Datos

totalmente establecida o madura, actualmente se realizan diversos algoritmos de control de concurrencias y varios de ellos se encuentran en la fase de implementacin, al igual que en la de correccin. Sistema de base de datos distribuida. Una coleccin de localidades, en cada una de las cuales opera un sistema de base de datos local y que pueden participar en la ejecucin de transacciones que acceden datos de varias localidades. Datos locales. Datos en mismo sitio o localidad con su propia base de datos. Datos globales. Datos que se mantienen en una base de datos cuya ubicacin es diferente para al menos uno de los usuarios. Enlace. Canales de comunicacin entre dos sitios de la red y que proveen las capacidades de transferencia de datos. Sistema de gestin de base de datos distribuida (SGBDD). Software que gestiona el sistema de base de datos distribuidas. Transaccin. La ejecucin de un programa de usuario que interacta con el SGBDD. Transaccin local. Una transaccin que requiere un nico agente. Transaccin global. Una transaccin que requiere varios agentes. Manejadores de base de datos distribuidas. System for distributed databases (SSD) R* Un SGBDD comercializado por IBM. Distributed INGRESS. Un SGBDD comercializado por Relational Technology. En un sistema de B.D. distribuida, en el cual la base de datos misma est distribuida. Una porcin de la base de datos est almacenada en X cantidad de computadoras y son procesadas tanto aplicaciones como la base de datos

Sistema de base de datos orientado a objetos. La contribucin de la programacin orientada a objetos (OOP), al desarrollo de los SGBDO es considerable. Se han desarrollado sistemas manejadores de base de datos orientado a objetos, como el caso de SGBDO Gemstone, que intenta extender las capacidades de un lenuaje OOP para incluirle las capacidades de gestin de datos de los SGBD. Los SGBDOs combinan capacidades de los lenguajes de OOP con las funciones de almacenamiento de los SGBD tradicionales.
Margarita Ramrez Ramrez Pag. No. 50

Apuntes Docentes Base de Datos

Un sistema de base de datos que pueden implementar modelos conceptuales directamente y que pueden representar complejidades que van ms alla de las capacidades de los sistemas relacionales. Los conceptos utilizados en el modelo orientado a objetos son: Clase. Una representacin abstracta (plantilla) de un conjunto de objetos. Clase derivada. Una clase que hereda caractersticas de otra clase. Objeto complejo. Corresponde a un agregado o interrelacin de alto nvel.

Margarita Ramrez Ramrez

Pag. No. 51

Apuntes Docentes Base de Datos

Desarrollo del Diseo de una Base de Datos Relacional. A continuacin se muestra la resolucin de un caso prctico, mostrndo paso a paso cada una de las tcnicas que se utilizan en el diseo de una base de datos del modelo relacional, para la realizacin del caso utilizar el formato de un cheque de pago de sueldos. Considere el formato de un Cheque o recibo de percepciones. Un formato contiene las siguientes partes o componentes. La certificacin: Esta compuesta por informacin que certifica la existencia y validez de la forma en ste caso el texto Liquidacin de Sueldos UABC . Esta rea del documento realmente no es relevante para el diseo de la base de datos, sin embargo se considera como parte de la informacin. . La parte extencional : Que est conformada por un conjunto de campos que son llenados en la generacin de la forma. es ste caso (Empleado, categora, nombre, etc.) La parte Intencional. Que est conformado por un conjunto implcito o explcito de referencia a los nombres de los campos. Ejemplo (Percepciones, deducciones, das, devengado, Ispt, etc.). Parte descriptiva. Contiene instrucciones o reglas que deben ser seguidas para llenar los campos de la parte extencional. En ste caso no se tiene parte descriptiva. A continuacin definiremos las reas y subreas de la forma seleccionada (cheque) identificando la parte intencional y extencional de la forma. Se identifican las siguientes reas. datos relacionados con la escuela, con el Profesor, datos de municipios, datos de movimientos los cuales se subdividen en percepciones y deducciones, datos propios del cheque. En seguida se construir un rbol con las reas encontradas en la forma, en donde el nombre de la raz es el nombre del documento y se definen todas las reas que conforman dicho documento.

Margarita Ramrez Ramrez

Pag. No. 52

Apuntes Docentes Base de Datos

Figura No.

rbol de reas o entidades.

Cada tabla se revisa para identificar, si es necesario subdividir en otras reas, alguna de las tablas determinadas, encontrndose que la tabla movimiento puede subdividirse en 2 subreas percepciones y deducciones. Como resultado obtenemos el rbol anteriormente descrito, en el que se muestran grficamente cada una de las reas y subreas identificadas. Por cada una de las reas identificadas se genera una entidad. Por lo tanto las entidades hasta ahora sern : Entidad municipio, escuela, profesor, movimiento, cheque. Municipio Escuela Profesor Movimiento Cheque
Figura 3 Areas convertidas a Entidad.

Cada entidad debe ser relacionada con algunas entidades para dar sentido y aplicacin a la forma, esto es determinar a que escuela pertenece un profesor, a que municipio pertenece una escuela, etc.

Margarita Ramrez Ramrez

Pag. No. 53

Apuntes Docentes Base de Datos

Enseguida se determinarn las relaciones que deben existir entre cada entidad.

Figura 4. Diagrama esqueleto para la forma de cheque.

En el diagrama anterior se definen las relaciones que existen entre cada una de las entidades. Un cheque es envado a un municipio al igual que a determinada escuela, un cheque es entregado a un profesor. Cada profesor puede tener diversos movimientos (percepciones, deducciones). A partir del diagrama esqueleto anterior se contnua con el refinamiento. Por cada rea y subrea es necesario convertirla a generalizacin, identificamos a una de las reas es necesario clasificarla nuevamente movimientos en deducciones y percepciones, obteniendo el siguiente diagrama.

Margarita Ramrez Ramrez

Pag. No. 54

Apuntes Docentes Base de Datos

Figura 5 Diagrama Refinado con generalizacin de la forma de cheque.

A cada entidad creada es necesario colocar atributos correspondientes de acuerdo a la forma. Entidad Cheque: Atributos No-cheque Fecha , el cual es un dato compuesto por da, mes, ao. Entidad Municipio: Atributos Nombre del municipio. Nmero de empleado. Nombre profesor. Categora. Entidad Movimientos: Atributos Nmero de movimiento. Monto del movimiento (Monto-mov es un dato de relacin entre profesor y movimientos). Entidad Escuela:
Margarita Ramrez Ramrez Pag. No. 55

Apuntes Docentes Base de Datos

Atributos Nmero de escuela. Nombre de la escuela. Entidad Empleado: Atributos Nmero de empleado. Nombre profesor. Categora del profesor.
Figura 6 Entidad-Atributo.

El siguiente paso es reconocer los identificadores para cada entidad. Entidad Cheque Municipio Identificador Nmero de cheque. Debido a que municipio no tiene un identificador es necesario crear uno, en ste caso Nmero de municipio. Clave de la escuela. Nmero de empleado. Clave del movimiento. En est entidad es necesario agregar el campo nombre de movimiento.

Escuela Profesor Movimientos

A partir de ste momento el identificador de una tabla se reconocer con el carcter . En seguida se muestra el Diagrama Entidad-Relacin que ha sido generado, como resultado de ste diseo.

Margarita Ramrez Ramrez

Pag. No. 56

Apuntes Docentes Base de Datos

Figura 7 Diagrama Entidad-Relacin

En el diagrama Entidad-Relacin es posible visualizar la cardinalidad de cada una de las relaciones, enseguida se mostrar una tabla en la que se especfica, cada entidad y la cardinalidad existente. Entidad Cheque Profesor Profesor Movimientos Profesor Cheque Movimientos Profesor

Mnima 1 Porque cada maestro tiene por lo menos un cheque. 1 porque al menos a un maestro se le paga con cheque. 1 porque al menos 1 maestro tiene movimientos en su cheque. 1 Por lo menos se tiene 1 movimiento por maestro. Mxima

Margarita Ramrez Ramrez

Pag. No. 57

Apuntes Docentes Base de Datos

M Porque el nmero de cheques va en relacin directa con el nmero de empleados. M Porque 1 maestro puede recibir hasta M cheques. M porque cada maestro tiene M cantidad de movimientos. M porque se tienen diversos movimientos para muchos maestros. Municipio Cheques Cheques Escuela Cheques Municipio Escuela Cheques

1 Por lo menos se envan los cheques a un municipio. 1 Por lo menos se enva un cheque a un municipio. 1 Por lo menos se enva un cheque a una escuela. 1 Por lo menos se envan los cheques a una escuela. M porque a cada municipio se envan m cantidad de cheques. M porque los cheques son envados a diferentes municipios. M porque son varios los cheques que se envan a escuelas. M porque son varias escuelas las que reciben los cheques. Cabe mencionar que la cardinalidad es representada como cardinalidad mxima y cardinalidad mnima. Cardinalidad mxima. Representa la cantidad mxima de entidades que pueden participar en una relacin. Cardinalidad mnima. Cantidad mnima de entidades que participan en la relacin. Una vez que se ha definido la cardinalidad y se tiene ya el diagrama Entidad-Relacin, ste debe ser convertido a tablas, por cada entidad que se tiene se generar una tabla utilizando el siguiente formato. Nombre de la tabla (Nombre de atributos) Cheques (No_cheque, da, mes, ao). En est tabla existe un dato compuesto, como lo es la fecha, que est conformada por da, mes ao, debido a que una afinidad no debe tener este tipo de campos, todos deben ser valores nicos, es necesario convertirlo a atributos simples,como son en da, el mes, el ao. Profesor (No_emp, categora, nombre). En est tabla nos encontramos con el atributo categora, mismo que puede guardar diversos valores, por lo que se crea una nueva entidad con los atributos clave-categora, descripcin de la categora. Adems se crear una tabla de relacin entre profesor y categora.
Margarita Ramrez Ramrez Pag. No. 58

Apuntes Docentes Base de Datos

Categora ( clave-categora, descripcin_cat) Municipio (No-municipio, nombre_municipio) Escuela (Clave-esc, nombre-esc) En la entidad movimientos se tienen se tiene generalizacin y esto no es posible implementarlo como tabla, por lo que es necesario crear dos tablas con los mismos atributos. Percepciones (Clave-per, nombre_per) Deducciones (Clave-ded, nombre_ded) Convertir relaciones a tablas. Por cada relacin se crea una tabla, se coloca la llave de las dos entidades que participan. Si la relacin tuvise atributos, se agregan a la tabla de relacin recin creada. Cheque_maestro (No-cheque, no_emp) Para seleccionar la clave, se elige el campo clave de la entidad fuerte, segn la cardinalidad, esto es la clave que tiene la relacin 1. Cheques_municipio (No-cheque, No_municipio) Cheque_escuela (No-cheque, No_escuela) Profesor_Percepciones (No-emp, clave-perc, monto-perc) Profesor_Deducciones (No-emp, clave-deduc, monto-deduc) El siguiente paso es determinar que la base de datos se encuentra normalizada. Se encuentra en Tercera forma normal debido a que el campo clave de cada una de las tablas define funcionalmente a cada uno de los atributos de las tablas. Por lo que toda la base se encuentra en Tercera forma normal.

Margarita Ramrez Ramrez

Pag. No. 59

Administracin de Base de datos I.

1. Listar el catlogo de profesores. Select No-emp, nombre from profesor. 2. Determinar que maestros pertenecen a la escuela. Select No-emp, nombre from profesor where No-cheque = (Select no_cheque from cheque_escuela where no-escuela = x) 3. Determinar categora a la que pertenece x maestro. Select categora from profesor where no-emp = (Select no-emp from profesor where nombre= nom) 4. Determinar percepciones que tiene un maestro. Select no-emp, clave-perc from profesor -percepciones where no-emp =x . 5. Determinar cuntos cheques recibe una escuela. Select count (no-cheque) from cheque-escuela.

Glosario DOS OS/2 Windows UNIX SQL

Administracin de Base de datos I.

Bibliografa. 1. Sistemas de Bases de Datos, Diseo, Implementacin y Administracin, Peter Rob, Carlos Coronel, Edit. Thomson, 2004. 2. Diseo y Administracin de Base de datos. Gary W. Hansen, James V. Hansen. Prentice Hall. 2da. Edicin.1998 3. Sistemas de Base de Datos Conceptos Fundamentales. Elmasri/ Navathe. Addison Wesley. 2da. Edicin. 1997. 4. Aplique SQL James R. Groff, Paul N. Weinberg, Mc Graw Hill, 2da. edic 1998. 5. Fundamentos de Base de Datos. Henry F. Korth, Abraham Silberschatz, Mc Graw Hill, 2da edic. Julio 1996 6. Administracin de los Sistemas de Informacin, Organizacin y Tecnologa, Kenneth C. Laudon, Jane P. Laudon., Prentice Hall , 1ra edic. 1996. 7. Procesamiento de bases de Datos. Fundamentos Diseo e Instrumentacin, David M Kroenke, Prentice Hall, Quinta edicin 1996. 8. Sistemas de Bases de Datos, Administracin y uso. Alice Y. H. Tsai, Prentice Hall, 1990. 9. Conceptual Database Design, An Entity-Relationship Approach, Carlo Batini, Stefano Ceri, Shamkant B. Navathe, The Benjamin/Cummings Publishing Company Inc. 1992. 10. Principios de Sistemas de Informacin, George M. Scott, Mc Graw Hill, 1993. 11. Anlisis y Diseo de Sistemas de Informacin, James A. Senn, Mc Graw Hill. 12. A practical guide to data base design, Rex Hogan, Prentice Hall, 1990. 13. Microsoft Access 97, Eugenio Barahona Marciel, Mc Graw Hill,1997. 14. Microsoft Access 97 Paso a paso, Mara Ins Carbonell Ayuso, Mara Jos Samaniego Snchez. Mc Graw Hill,1997.

Potrebbero piacerti anche