24
ELABORACIÓN DE TABLAS Y RELACIONAMIENTO CON EL PROGRAMA DE DBDESIGNER Y PHPMYADMIN DATABASE MANAGER VERSION 2.10.3 UNIVERSIDAD DISTRITAL “FRANCISCO JOSÉ DE CÁLDAS” FACULTAD DE MEDIO AMBIENTE Y RECURSOS NATURALES INGENIERÍA TOPOGRÁFICA

Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

Embed Size (px)

DESCRIPTION

DBDesigner Y PHPmyadmin

Citation preview

Page 1: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

ELABORACIÓN DE TABLAS Y RELACIONAMIENTO CON EL PROGRAMA DE DBDESIGNER Y PHPMYADMIN DATABASE MANAGER VERSION 2.10.3

UNIVERSIDAD DISTRITAL “FRANCISCO JOSÉ DE CÁLDAS”

FACULTAD DE MEDIO AMBIENTE Y RECURSOS NATURALES

INGENIERÍA TOPOGRÁFICA

BOGOTÁ D.C.

2012

Page 2: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

INTRODUCCIÓN

Las bases de datos nacieron de la necesidad de almacenar y consultar grandes cantidades de información por parte de industrias, se podría puntualizar que en términos conceptuales las bases de datos nacieron desde el propio momento en el que Herman Hollerit comenzó a trabajar en el desarrollo de una Máquina Automática Perforadora de Tarjetas para realizar el censo de estados unidos, luego de estos aportes aparecieron las cintas magnéticas, con ayuda de este mecanismo se inicio a automatizar la información de las nominas, Mas adelante aparecieron los discos lo cual elimino la necesidad de una secuencialidad en la búsqueda de los datos. A partir de allí se dio verdaderamente inicio las bases de datos, de red y jerárquicas, pues los programadores con su habilidad de manipulación de estructuras posibilitaban guardar arreglos de datos como listas y árboles.

Page 3: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

1. OBJETIVO GENERAL

Diseñar una serie de tablas en el programa DBDesigner y relacionarlas de acuerdo con su cardinalidad y el modelo conceptual entregado.

1.1 OBJETIVOS ESPECIFICOS

Estudiar la creación de diferentes atributos en las tablas, así como los tipos de datos existentes para cada uno.

Exportar las tablas creadas en código SQL para su posterior uso. Buscar un software diferente para realizar la importación de las

tablas ejecutando el código obtenido en DBDesigner.

Page 4: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

2. MARCO TEORICO

2.1 Base De Datos

¹Una base de datos es un conjunto de datos almacenados en memoria externa que están organizados mediante una estructura de datos. Cada base de datos ha sido diseñada para satisfacer los requisitos de información de una empresa u otro tipo de organización, como por ejemplo, una universidad o un hospital.Antes de existir las bases de datos se trabajaba con sistemas de ficheros.Los sistemas de ficheros surgieron al informatizar el manejo de los archivadores manuales para proporcionar un acceso más eficiente a los datos almacenados en los mismos. Un sistema de ficheros sigue un modelo descentralizado, en el que cada departamento de la empresa almacena y gestiona sus propios datos mediante una serie de programas de aplicación escritos especialmente para él.Estos programas son totalmente independientes entre un departamento y otro, y se utilizan para introducir datos, mantener los ficheros y generar los informes que cada departamento necesita. Es importante destacar que en los sistemas de ficheros, tanto la estructura física de los ficheros de datos como la de sus registros, están definidas dentro de los programas de aplicación.

2.2 Sistema De Gestión De Bases De Datos

El sistema de gestión de la base de datos (en adelante SGBD) es una aplicación que permite a los usuarios definir, crear y mantener la base de datos, además de proporcionar un acceso controlado a la misma. Se denomina sistema de bases de datos al conjunto formado por la base de datos, el SGBD y los programas de aplicación que dan servicio a la empresa u organización.

2.3 El SGBD proporciona un acceso controlado a la base de datos mediante:

• Un sistema de seguridad, de modo que los usuarios no autorizados no puedan acceder a la base de datos.

• Un sistema de integridad que mantiene la integridad y la consistencia de los datos.

• Un sistema de control de concurrencia que permite el acceso compartido a la base de datos.

• Un sistema de control de recuperación que restablece la base de datos después de que se produzca un fallo del hardware o del software.

• Un diccionario de datos o catálogo, accesible por el usuario, que contiene la descripción de los datos de la base de datos.

Page 5: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

2.4 Ventajas E Inconvenientes De Los Sistemas De Bases De Datos

Control sobre la redundancia de datos. Los sistemas de ficheros almacenan varias copias de los mismos datos en ficheros distintos. Esto hace que se desperdicie espacio de almacenamiento, además de provocar faltas de consistencia de datos (copias que no coinciden). En los sistemas de bases de datos todos estos ficheros están integrados, por lo que no se almacenan varias copias de los mismos datos.

Control sobre la consistencia de datos. Eliminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias. Si un dato está almacenado una sola vez, cualquier actualización se debe realizar sólo una vez, y está disponible para todos los usuarios inmediatamente.

Mejora en la integridad de datos. La integridad de la base de datos se refiere a la validez de los datos almacenados. Normalmente, la integridad se expresa mediante restricciones o reglas que no se pueden violar. Estas restricciones se pueden aplicar tanto a los datos, como a sus relaciones, y es el SGBD quien se encargará de mantenerlas.

Mejora en la accesibilidad a los datos. Muchos SGBD proporcionan lenguajes de consulta o generadores de informes que permiten al usuario hacer cualquier tipo de consulta sobre los datos, sin que sea necesario que un programador escriba una aplicación que realice tal tarea.

Coste del equipamiento adicional. Tanto el SGBD, como la propia base de datos, pueden hacer que sea necesario adquirir más espacio de almacenamiento. Además, para alcanzar las prestaciones deseadas, es posible que sea necesario adquirir una máquina más grande o una máquina que se dedique solamente al SGBD. Todo esto hará que la implantación de un sistema de bases de datos sea más cara.

Coste de la conversión. En algunas ocasiones, el coste del SGBD y el coste del equipo informático que sea necesario adquirir para su buen funcionamiento es insignificante comparado al coste de convertir la aplicación actual en un sistema de bases de datos. Este coste incluye el coste de enseñar a la plantilla a utilizar estos sistemas y, probablemente, el coste del personal especializado para ayudar a realizar la conversión y poner en marcha el sistema. Este coste es una de las razones principales por las que algunas empresas y organizaciones se resisten a cambiar su sistema actual de ficheros por un sistema de bases de datos.

Page 6: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

Prestaciones. Un sistema de ficheros está escrito para una aplicación específica,

por lo que sus prestaciones suelen ser muy buenas. Sin embargo, los SGBD están escritos para ser más generales y ser útiles en muchas aplicaciones, lo que puede hacer que algunas de ellas no sean tan rápidas como antes.

2.5 Modelos De Datos

Una de las características fundamentales de los sistemas de bases de datos es que proporcionan cierto nivel de abstracción de datos, al ocultar las características sobre el almacenamiento físico que la mayoría de usuarios no necesita conocer. Los modelos de datos son el instrumento principal para ofrecer dicha abstracción a través de su jerarquía de niveles. Un modelo de datos es un conjunto de conceptos que sirven para describir la estructura de una base de datos, es decir, los datos, las relaciones entre los datos y las restricciones que deben cumplirse sobre los datos. Los modelos de datos contienen también un conjunto de operaciones básicas para la realización de consultas (lecturas) y actualizaciones de datos. Además, los modelos de datos más modernos incluyen mecanismos para especificar acciones compensatorias o adicionales que se deben llevar a cabo ante las acciones habituales que se realizan sobre la base de datos.

2.6 Estructura De Datos Relacional

La estructura de datos del modelo relacional es la relación.

2.7 El modelo relacional

Se basa en el concepto matemático de relación, que gráficamente se representa mediante una tabla. Codd, que era un experto matemático, utilizó una terminología perteneciente a las matemáticas, en concreto de la teoría de conjuntos y de la lógica de predicados.Una relación es una tabla con columnas y filas. Un SGBD sólo necesita que el usuario pueda percibir la base de datos como un conjunto de tablas.Esta percepción sólo se aplica a la estructura lógica de la base de datos, no se aplica a la estructura física de la base de datos, que se puede implementar con distintas estructuras de almacenamiento.Un atributo es el nombre de una columna de una relación. En el modelo relacional, las relaciones se utilizan para almacenar información sobre los objetos que se representan en la base de datos. Una relación se representa gráficamente como una tabla bidimensional en la que las filas corresponden a registros individuales y las columnas corresponden a los campos o atributos de esos registros. Los atributos pueden aparecer en la relación en cualquier orden.

Page 7: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

3. DESARROLLO

3.1 El inicio de la guía muestra la forma de elaboración de las tablas utilizando esta herramienta CASE.

Pregunta N1. ¿Qué son herramientas CASE? ¿Qué significa Ingeniería Inversa en la utilización de esta herramienta?

Solución N1. Las herramientas CASE son diferentes aplicaciones informáticas diseñadas para aumentar la productividad en el desarrollo de software, además de este objetivo pretende mejorar la planificación de un proyecto, gestión global en todas las fases del desarrollo de software con una misma herramienta.La ingeniería inversa es el proceso de descubrir los principios tecnológicos de un dispositivo, objeto o sistema, a través de razonamiento abductivo de su estructura, función y operación. En síntesis se trata de tomar algo (un dispositivo mecánico o electrónico, un software de computadora, etc.) para analizar su funcionamiento en detalle, generalmente para intentar crear un dispositivo o programa que haga la misma o similar tarea sin copiar la original.

Fig. N1. Modelo conceptual para la elaboración de las tablas.

3.2. Ya teniendo el modelo conceptual se procederá a crear las tablas en el aplicativo correspondiente.Para realizar esto damos clic en FileNew, después damos clic en la panel DB Model para ingresar al editor de la tabla.

Page 8: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

Fig. N2. DBDesigner4.

Fig. N3. Table Editor.

3.4 Dentro del editor de la tabla vamos a crear las siguientes tablas:

FUNCIONARIO

CPF (PK) Varchar (11)Nombre Funcionario Varchar (45)

DEPARTAMENTOCod Doto (PK) IntegerNombre_Dpto Varchar (45)

Local Varchar (20)

BENEFICIARIOCPF_Beneficiario (PK) Varchar (11)Nombre Beneficiario Varchar (45)

Page 9: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

FUNCIONARIO DE PLANTAMatricula Funcionario (PK) Integer

Dirección Funcionario Varchar (45)

FUNCIONARIO EXTERNOID Externo Integer

Carga Horaria Float

EMPRESA PRESTADORAID_Empresaprest Varchar (19)

Nombre_Em presa Varchar (45)Telefono Empresa Varchar (11)

Direccion_Em presa Varchar (45)

Tabla N1. Tablas con sus respectivos atributos y tipos de datos.

3.5 En la siguiente figura observamos la tabla denominada proyecto con atributos ID_proyecto, Des_Proyecto y Dura_Proyecto con sus respectivos tipos.

Fig. N3. Table Editor Proyecto.

Page 10: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

3.6 A continuación observamos las todas la tablas diseñadas de acuerdo a la metodología inicial.

Fig. N4. Tablas creadas.

3.7 A continuación realizaremos el diseño de las relaciones, para eso utilizaremos los siguientes botones, para saber qué relación utilizar deberemos observar y analizar el Modelo Conceptual:

Fig N5. Herramienta para establecer la cardinalidad del diseño.

3.8 El primer relacionamiento entre entidades es: proyecto y funcionario, relacionamiento m:m con un atributo del relacionamiento (horas_trabajadas).dicho relacionamiento quedara de la siguiente manera:

Page 11: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

Fig. N6. Relación proyecto funcionario muchos a muchos.

.En el anterior grafico vemos como se dio clic en la primera tabla y luego clic en la siguiente tabla que vamos a relacionar Como se vio en la teoría se crea una tercera tabla.

Pregunta N2. ¿Qué debe contener esta tabla? ¿Por qué? ¿Cuáles son sus atributos?

Solución N2. Esta tabla deberá contener la llave primaria de Proyecto denominada ID_proyecto y la llave de Funcionario CPF, esto con el fin de poder hacer el relacionamiento efectivo y así hacer la consulta.

Pregunta N3. ¿Qué significa el tipo de dato float?

Solución N3. Float es un tipo de dato que permite almacenar un valor en coma flotante, se usa para representar números con partes fraccionarias, para el caso de float reserva almacenamiento para un número de precisión simple de 4 bytes.

3.9 El próximo relacionamiento corresponde a funcionario y Departamento, Este

es un relacionamiento uno a muchos. Y se realiza con el siguiente elemento .

Pregunta N4. ¿Qué pasa si hacemos lo contrario de dar clic en la tabla de cardinalidad M?

Solución N4. Si se realiza lo contrario significaría que la cardinalidad seria al contrario es decir un funcionario tiene varios departamentos, lo cual es incorrecto ya que la relación debe ser un departamento tiene varios funcionarios lo cual es homologo a decir que la relación Departamento - Funcionario es de 1:n.

Pregunta N5. ¿Qué tabla quedo con la llave foránea? ¿Cuál fue esa llave?

Solución N5. Con la llave foránea quedo la tabla Funcionarios, esta es la llave primaria en la entidad Departamento y es denominada Cod_Departamento.

Page 12: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

Fig. N7. Relación funcionario departamento uno a muchos.

3.10 El próximo relacionamiento es beneficiario y funcionario_de_planta, Este tipo de relacionamiento observando el Modelo Conceptual es 1:1 Observación. En este caso se debe tomar la decisión cuál de las dos tablas contendrá la clave o llave foránea, para este caso escogí para llevar la clave foránea la tabla BENEFICIARIO, entonces quedaría así:

Page 13: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

Fig. N8. Relación beneficiario y funcionario_de_planta uno a uno.

3.11 En este punto solo haría falta el relacionamiento entre las entidades empresa_prestadora y funcionario externo.

Fig. N9. Relación empresa_prestadora y funcionario externo uno a muchos.

Pregunta N6. ¿Qué tipo de relacionamiento es?

Solución N6. La relación establecida entre Empresa_prestadora – Funcionario_Externo es del orden 1: n, es decir una Empresa_prestadora posee varios Funcionario_Externos.

Page 14: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

3.12 El próximo paso es hacer la Generalización, entre Funcionario y las dos entidades Funcionario_de_planta y Funcionario_Externo. Damos clic en el siguiente botón y tocamos primero la tabla generalizada (Funcionario), luego la tabla a especializar.

Fig. N10.Generalizacion entre funcionario y las dos entidades funcionario_externo y funcionario_planta.

Pregunta N7. ¿En el anterior relacionamiento como quedan las llaves? ¿Qué tablas quedan con llave extranjera?

Solución N7. La relación establecida entre funcionario-funcionario_externo y funcionario_planta encontramos que la llave foránea tanto en funcionario externo como en funcionario de planta es la llave primaria de funcionario denominada funcionario_cpf, es partir de esta que se harán los relacionamientos.

Dicha relación quedara como en la imagen anterior. Bueno con esto estará terminado nuestro modelo con los relacionamientos necesarios.

Page 15: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

Fig. N11. Vista General de las Tablas Creadas.

3.13 A continuación se mostrara el código extraído de cada una de las tablas creadas. Para esto realizaremos lo siguiente FileExportSQL Create Script. Con esto obtendremos el script en SQL, Podemos salvar o copiar las tablas como archivos para MySQL.

A continuación observamos el script entregado por DBDesigner:

CREATE TABLE BENEFICIARIO (CPF_Beneficiario VARCHAR(11) NOT NULL AUTO_INCREMENT,FUNCIONARIO_DE_PLANTA_FUNCIONARIO_CPF VARCHAR(11) NOT NULL,FUNCIONARIO_DE_PLANTA_Matricula_Funcionario INTEGER UNSIGNED NOT NULL,Nombre_Beneficiario VARCHAR(45) NULL,PRIMARY KEY(CPF_Beneficiario),INDEX BENEFICIARIO_FKIndex1(FUNCIONARIO_DE_PLANTA_Matricula_Funcionario, FUNCIONARIO_DE_PLANTA_FUNCIONARIO_CPF));

CREATE TABLE DEPARTAMENTO (Cod_Dpto INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,Nombre_Dpto VARCHAR(45) NULL,Local_2 VARCHAR(20) NULL,PRIMARY KEY(Cod_Dpto));

CREATE TABLE EMPRESA_PRESTADORA (

Page 16: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

ID_Empresaprest VARCHAR(19) NOT NULL AUTO_INCREMENT, Nombre_Empresa VARCHAR(45) NULL, Telefono_Empresa VARCHAR(11) NULL, Direccion_Empresa VARCHAR(45) NULL, PRIMARY KEY(ID_Empresaprest));

CREATE TABLE FUNCIONARIO (CPF VARCHAR(11) NOT NULL AUTO_INCREMENT,DEPARTAMENTO_Cod_Dpto INTEGER UNSIGNED NOT NULL,Nombre_Funcionario VARCHAR(45) NULL,Horas_trabajadas FLOAT NULL,PRIMARY KEY(CPF),INDEX FUNCIONARIO_FKIndex1(DEPARTAMENTO_Cod_Dpto));

CREATE TABLE FUNCIONARIO_DE_PLANTA ( Matricula_Funcionario INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, FUNCIONARIO_CPF VARCHAR(11) NOT NULL, Direccion_Funcionario VARCHAR(45) NULL, PRIMARY KEY(Matricula_Funcionario, FUNCIONARIO_CPF), INDEX FUNCIONARIO_DE_PLANTA_FKIndex2(FUNCIONARIO_CPF));

CREATE TABLE FUNCIONARIO_EXTERNO ( ID_Externo INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, FUNCIONARIO_CPF VARCHAR(11) NOT NULL, EMPRESA_PRESTADORA_ID_Empresaprest VARCHAR(19) NOT NULL, Carga_Horaria FLOAT NULL, PRIMARY KEY(ID_Externo, FUNCIONARIO_CPF), INDEX FUNCIONARIO_EXTERNO_FKIndex1(EMPRESA_PRESTADORA_ID_Empresaprest), INDEX FUNCIONARIO_EXTERNO_FKIndex2(FUNCIONARIO_CPF));

CREATE TABLE PROYECTO ( ID_Proyecto INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, Desc_Proyecto VARCHAR(30) NULL, Dura_Proyecto INTEGER UNSIGNED NULL, PRIMARY KEY(ID_Proyecto));

CREATE TABLE PROYECTO_has_FUNCIONARIO ( PROYECTO_ID_Proyecto INTEGER UNSIGNED NOT NULL, FUNCIONARIO_CPF VARCHAR(11) NOT NULL, Horas_trabajadas FLOAT NULL,

Page 17: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

PRIMARY KEY(PROYECTO_ID_Proyecto, FUNCIONARIO_CPF), INDEX PROYECTO_has_FUNCIONARIO_FKIndex1(PROYECTO_ID_Proyecto), INDEX PROYECTO_has_FUNCIONARIO_FKIndex2(FUNCIONARIO_CPF));

3.14 Ya como último paso buscaremos exportar estas tablas a cualquier otro software para poder visualizarla. En nuestro caso escogimos un software denominado phpmyadmin, en este programa el primer requisito para poder ejecutar las sentencias SQL es tener creada una base de datos, para nuestro caso le colocaremos proyecto, luego en donde dice SQL colocaremos el código que deseamos ejecutar.

Fig. N12. Vista Inicial de PhpMyAdmin.

Fig. N13. Código ejecutado en PhpMyAdmin.

Page 18: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

En la grafica observamos como la consulta se ejecuto exitosamente.

Fig. N14. Todas la Tablas ejecutadas en PhpMyAdmin.

3.15 En la anterior imagen ya sean importado todas las tablas creadas en DBDesigner ahora procederemos a llenar la tabla Empresa_prestadora.

Fig. N15. Tabla Empresa_Prestadora con atributos especificos.

Bueno y este sería el resultado final del trabajo ya que se ha conseguido el objetivo de importar la tabla y asignarle valores a cada una de las tuplas y atributos.

Page 19: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

Pregunta N8. ¿En la cardinalidad (0,1) cual es el significado de cero (0)?

Solución N8. Los valores para la cardinalidad son: (0,1), (1,1), (0,N), (1,N) y (M,N). El valor 0 se pone cuando la participación de la entidad es opcional.

Pregunta N9. ¿Formule y responda una pregunta sobre este trabajo? ¿Cómo se realiza el relacionamiento entre dos tablas?

Solución N9.El relacionamiento se realiza a partir de la cardinalidad es decir el número de entidades con las que puede estar relacionada una entidad dada, además de esto es necesaria la definición de una llave primaria en una tabla A principal, luego dicho atributo es creado en una tabla B definido como llave foránea.

Page 20: Elaboracion de Tablas Con DBDesigner Y PHPmyadmin

4. CONCLUSIONES

Las bases de datos permiten el almacenamiento, organización y consulta de elementos presente en diferentes entidades de acuerdo a una necesidad específica.

La forma más eficaz para evitar duplicidades e inconsistencias es normalizar un diseño esto, está referido a relacionar información de diferentes tablas a través de una llave foránea y una llave primaria de características iguales.

La forma en que se puede definir, construir y manipular la base de datos, además de un efectivo control de redundancia y una restricción a accesos no autorizados está definido a partir de un Sistema Gestor de Base de Datos.