Material Clase BDD: Diseño de una Base de Datos

36
DISEÑO DE UNA BASE DE DATOS Robles Rodríguez Ana Karen Osornio Bautista Leticia Ignacio Tec María Eugenia Hernández Aguilar Gisela Laguna Rodríguez Diego

description

Diseño de una Base de Datos Fases del diseño Análisis de Requerimientos Diseño Conceptual Diseño Lógico Diseño Físico Comandos MySQL

Transcript of Material Clase BDD: Diseño de una Base de Datos

Page 1: Material Clase BDD: Diseño de una Base de Datos

DISEÑO DE UNA BASE DE DATOSRobles Rodríguez Ana Karen

Osornio Bautista Leticia

Ignacio Tec María Eugenia

Hernández Aguilar Gisela

Laguna Rodríguez Diego

Page 2: Material Clase BDD: Diseño de una Base de Datos

FASES DEL DISEÑO

Análisis de Requerimientos

Diseño Conceptual

Diseño Lógico

Diseño Físico

Page 3: Material Clase BDD: Diseño de una Base de Datos

ANÁLISIS DE REQUERIMIENTOS

Descripción Operacional

Fase de Adquisición del conocimiento

Entrevistas a los usuarios del

sistema

Identifica necesidades

Aseguramiento de Datos

La Salida son los

requerimientos del sistema

Fases del Diseño

Page 4: Material Clase BDD: Diseño de una Base de Datos

• Es el sistema gestor de bases de datos. • El encargado de administrar las bases de

datos.Software.• Incluyen los datos que se

necesitan almacenar y los metadatos.

Datos.• Personas que manipulan los datos

del sistema.Usuarios.• Usuarios sólo acceden a

ciertos datos.Usuarios Finales.

• Analistas.• Programadores.Desarrolladores.

• Encargados de gestionar las bases de datos.Administradores.

DISEÑO CONCEPTUAL

Fases del Diseño

Page 5: Material Clase BDD: Diseño de una Base de Datos

Reflejar como son los datos

Iteración entre diseñadores y usuarios del

sistema

Crear un Modelo parcial

Identificar Entidades y sus

relaciones

Se obtiene un esquema de la BD

Uso común del modelo E-R

DISEÑO CONCEPTUAL

Análisis de requisitos

Diseño conceptual

Fases del Diseño

Page 6: Material Clase BDD: Diseño de una Base de Datos

DISEÑO LÓGICO

Se acerca más al SMBD

Transforma el modelo E-R en tablas

El modelo que se puede usar es el

ELKA

Normalización

Fases del Diseño

IR

Page 7: Material Clase BDD: Diseño de una Base de Datos

DISEÑO FÍSICO

Traducir el esquema lógico.

Diseñar la representación

física.

Diseñar los mecanismos de

seguridad.

Monitorizar y afinar el sistema.

Fases del Diseño

Page 8: Material Clase BDD: Diseño de una Base de Datos

EJEMPLO DE DISEÑO DE UNA BD

Análisis de requerimientos y diseño conceptual Se desea llevar el control de los cursos de

capacitación y de la capacitación de cada empleado en el departamento de capacitación de una empresa.

En base a entrevistas se plantea que es necesario poder realizar la planeación de cursos y llevar el control de los cursos que ha tomado cada empleado. Se identifican atributos de interés.

Page 9: Material Clase BDD: Diseño de una Base de Datos

EJEMPLO DE DISEÑO DE UNA BD

Es necesario crear una relacion que indique que cursos ha tomado cada empleado y que empleados han tomado que curso. Es necesario adicionalmente el poder identificar que tipo de relación hay: Un empleado sólo puede tomar un curso. Un curso puede ser tomado por sólo un

empleado. Un curso puede ser tomado por varios

empleados. Un empleado puede tomar varios cursos.

Page 10: Material Clase BDD: Diseño de una Base de Datos

EJEMPLO DE DISEÑO DE UNA BD

Se determina que un empleado puede tomar varios cursos y un curso puede ser tomado por varios empleados.

Se usa el modelo entidad-relación.

Page 11: Material Clase BDD: Diseño de una Base de Datos

EJEMPLO DE DISEÑO DE UNA BD

Los atributos se unen a las entidades a través de líneas.Las entidades se unen a las relaciones a través de líneas con diferentes conectores.

Page 12: Material Clase BDD: Diseño de una Base de Datos

EJEMPLO DE DISEÑO DE UNA BD

Diseño lógico Del modelo entidad-relación se produce el

modelo ELKA (Entity Link Key Attribute)

Page 13: Material Clase BDD: Diseño de una Base de Datos

EJEMPLO DE DISEÑO DE UNA BD

El proceso de Normalización particiona las tablas del modelo para reducir o eliminar la redundancia. Ejemplo, si todos los empleados del mismo

departamento tiene igual salario, entonces se puede particionar la tabla de Empleados en dos.

Page 14: Material Clase BDD: Diseño de una Base de Datos

EJEMPLO DE DISEÑO DE UNA BD

Diseño Físico De ELKA se realiza el diseño físico de la BD. Asignación de los tipos de datos específicos de

cada campo y definición de los índices. Un índice por cada llave de cada tabla. También

se deben diseñar índices para optimizar consultas o reportes que son mas frecuentes.

Para poder soportar la obligatoriedad de algunas relaciones es necesario crear adicionalmente reglas de integridad que pueden ser soportadas directamente por el sistema manejado de BD.

Page 15: Material Clase BDD: Diseño de una Base de Datos

EJEMPLO DE DISEÑO DE UNA BD

Page 16: Material Clase BDD: Diseño de una Base de Datos

COMANDOS UTILIZADOS

POR

Page 17: Material Clase BDD: Diseño de una Base de Datos

COMANDOS

show databases El comando show databases permite visualizar las bases de

datos actualmente activas. Ejemplo:

En el ejemplo hay dos bases de datos activas, la principal llamada mysql y la base test (una base de datos de prueba). Hay bases de datos que no nos serán mostradas si no tenemos permiso para ello.

mysql> show databases;+----------+| Database |+----------+| mysql|| test|+----------+2 rows in set (0.01 sec)

Page 18: Material Clase BDD: Diseño de una Base de Datos

COMANDOS

comando use Para utilizar una base de datos El comando use nos permite utilizar una base de datos.

Es el único comando que no requiere punto y coma.

mysql> use test

Eso hace que test sea la base de datos de trabajo actual.

También se puede seleccionar la base de datos para utilizar al arrancar el propio monitor. Para ello basta poner el nombre de la base de datos tras el comando mysql

Page 19: Material Clase BDD: Diseño de una Base de Datos

COMANDOS

comando create Para crear una base de datos Se realiza de esta forma:

mysql>create database prueba; Query OK, 1 row affected (0.00 sec)

La base de datos recién creada estará representada por una carpeta dentro de la carpeta data de mysql.

Aunque la base esté creada, habrá que utilizar el comando use para trabajar con ella.

Page 20: Material Clase BDD: Diseño de una Base de Datos

COMANDOS

comando drop database Para borrar bases de datos. Se trata del comando drop database al cual

le sigue el nombre de la base de datos.

mysql>drop database prueba;Query OK, 0 rows affected (0.00 sec)

Page 21: Material Clase BDD: Diseño de una Base de Datos

COMANDOS

comando show tables Muestra las tablas de la base de datos actual. Ejemplo:

mysql> use mysqlDatabase changedmysql> show tables;+-----------------+| Tables_in_mysql |+-----------------+| columns_priv|| db|| func|| host|| tables_priv|| user|+-----------------+6 rows in set (0.00 sec)

Se puede utilizar la sintaxis show tables from bd, donde bd es el nombre de una basede datos que no tiene porque estar en uso.

Page 22: Material Clase BDD: Diseño de una Base de Datos

COMANDOS Para crear tablas. Es el comando create table el que la realiza.

Este comando funciona con esta sintaxis:create table nombreTabla

(nombrecampo1 tipodatos(tamaño), nombrecampo2 tipodatos(tamaño),....);

Ejemplo:mysql> create table personas (nombre varchar(30),

->apellido1 varchar(30), apellido2 varchar(30),

->telefono varchar(9));

Query OK, 0 rows affected (0.01 sec)

Page 23: Material Clase BDD: Diseño de una Base de Datos

COMANDOS

Indicar opciones en los campos en la creación:

Durante la creación de campos se pueden indicar opciones (las opciones se enumeran más abajo) sobre los campos. Estas opciones se colocan tras el tipo de datos del campo.

Ejemplo (not null y unique):mysql> create table personas (nombre varchar(30) not null,->apellido1 varchar(30), apellido2 varchar(30),->telefono varchar(9) unique);

Page 24: Material Clase BDD: Diseño de una Base de Datos

COMANDOS

Establecimiento de la clave durante la creación:

Se puede añadir la palabra primary key tras el tipo de datos del campo que se desea sea la clave de la tabla. Si la clave es más de un campo se realiza colocando la palabra primary key como nombre de campo, seguida de los campos que forman la clave entre paréntesis. Ejemplo:

mysql> create table pieza (codigo1 varchar(5),

->codigo2 int(2), peso int,->descripcion text,->primary key (codigo1, codigo2);

Page 25: Material Clase BDD: Diseño de una Base de Datos

COMANDOS

Estructura de las tablas: El comando describe seguido del nombre de una tabla,

nos permite ver la estructura completa de una tabla. Ejemplo:

mysql> describe personas;+-----------+-------------+------+-----+---------+-------+| Field| Type| Null | Key | Default | Extra |+-----------+-------------+------+-----+---------+-------+| nombre| varchar(30) | YES || NULL||| apellido1 | varchar(30) | YES || NULL||| apellido2 | varchar(30) | YES || NULL||| telefono | varchar(9) | YES || NULL||+-----------+-------------+------+-----+---------+-------+4 rows in set (0.00 sec)

Page 26: Material Clase BDD: Diseño de una Base de Datos

TIPOS DE DATOS

Tipo Espacio Rango rango sin signoTINYINT 1 byte -128 a 127 0 a 255SMALL INT 2 bytes -32768 a 32767 0 a 65535MEDIUM INT 3 bytes -8388608 a 8388607 0 a 16777215INT 4 bytes -2147483648 a 2147483647 0 a 4294967295

Tipo Espacio Tamaño máximoCHAR(X) X bytes 255 bytesVARCHAR(X) X+1 byte 255 bytesTINYTEXT X+1 byte 255 bytesTINYBLOB X+1 byte 255 bytesTEXT X+2 bytes 65535 bytesBLOB X+2 bytes 65535 bytesMEDIUMTEXT X+3 bytes 1,6 MBMEDIUMBLOB X+ 3bytes 1,6 MBLONGTEXT X+4 bytes 4,2 GBLONGBLOB X+4 bytes 4,2 GB

Numéricos

Texto Los que más se usan son CHAR y VARCHAR. Los CHARalmacenan tamaño fijo y VARCHAR optimiza tamaño variable.

Page 27: Material Clase BDD: Diseño de una Base de Datos

TIPOS DE DATOSLógicos Son los tipos BIT o BOOL que admiten los valores 0 o

1.

Tipo Rango Formato

DATE Del 1 de enero de 1001 al31/12 del 9999

año-mes-día

DATETIMEDe las 0 horas del 1/1/1001 a las 0 horas del31/12/9999

Año-mes-díahoras:minutos:segundos

TIMESTAMP

De las 0 horas del 1/1/1970a las 0 horas del31/12/2037

Año-mes-díahoras:minutos:segundosPermite estos tamaños:14 (aaaammddhhmmss)12 (aaaammddhhmm)

8 (aaaammdd)6 (aammdd)4 (aamm)

2 (aa)

TIMEUna hora en formatoHH:MM:SS

YEAR Año desde 1901 a 2037

Fechas

Page 28: Material Clase BDD: Diseño de una Base de Datos

OPERACIONES CON TABLASModificar tablas Es el comando alter table el encargado. Con el

atributo change modifica un campo.

mysql>alter table personas change nombre nombre varchar(20);

En el ejemplo el nombre pasa a tener tamaño 20.

Con el atributo rename cambia de nombre una tabla.

mysql>alter table personas rename clientes;

Page 29: Material Clase BDD: Diseño de una Base de Datos

OPERACIONES CON TABLAS

Borrar tablas Se usa la sintaxis:

drop table seguida del nombre de la tabla.

Borrar columnas La sintaxis es:

alter table tabla drop columnaABorrar;

Añadir columnas Se usa:

alter table tabla add nuevaColumna Tipo...;

Page 30: Material Clase BDD: Diseño de una Base de Datos

INTRODUCIR DATOS EN UNA TABLA Hay dos métodos.El comando insert into Permite añadir datos manualmente a una tabla. Ejemplo:

mysql> insert into personas values('Pedro',->'Hernández','Crespo','979898989');Query OK, 1 row affected (0.00 sec)

El orden de los datos debe corresponder con el de los campos de la tabla. También se puede indicar los campos:

mysql> insert into personas (nombre,apellido1,apellido2)

-> values ('Pedro','Hernández',"crespo"); En ese caso la columna del teléfono tomaría el valor null

indicando que está vacío.

Page 31: Material Clase BDD: Diseño de una Base de Datos

INTRODUCIR DATOS EN UNA TABLA

Insertar datos en una tabla desde un archivo externo

Otra manera más poderosa es utilizar un archivo externo en el que se colocan los datos de la tabla. En ese archivo, cada registro se separa con un carácter concreto (que suelen ser los caracteres \r \n, resultado de la tecla intro). A su vez en el mismo registro, cada campo se separa con otro carácter (coma por ejemplo) y los valores de los campos podrían ir delimitados con otros caracteres (como las comillas).

Para conseguir los datos en este formato, se pueden colocar a mano, o bien se pueden crear a través de software especial que consiga colocar registros en este formato (programas como Excel, Access u otros muchos poseen herramientas para realizar estas operaciones.

Page 32: Material Clase BDD: Diseño de una Base de Datos

INTRODUCIR DATOS EN UNA TABLA Una vez creado el archivo, desde MySQL se

podría usar el comando load data:load data local infile "ruta" into table tabla;

Ejemplo:mysql>load data infile->“C:\\mysql\data\prueba\texto.txt”->into table personas;

La ruta es la ruta completa al archivo de texto que posee los datos. La tabla es la tabla a la cual se desean añadir dichos datos. Para que esta instrucción funcione correctamente, el orden de los campos en la tabla debe ser el mismo que en el archivo.

Page 33: Material Clase BDD: Diseño de una Base de Datos

CONSULTASObtener registros. select• Esta instrucción permite realizar consultas sobre

la base de datos. El formato básico de la instrucción es:

select ListaDecampos from tablas where condición;• Para seleccionar todos los datos se usa el campo especial “*” y sirve para representar todos los campos de una tabla.

select * from personas;

muestra todos los campos de la tabla personas.

Page 34: Material Clase BDD: Diseño de una Base de Datos

• Para seleccionar campos concretos se puede usar:

select nombre, apellido1, apellido2 from personas;

Uso de condiciones:

• Where de la instrucción select nos permite poner una condición de modo que sólo aparezcan en la consulta los registros que cumplan la condición.

(Se pueden utilizar operadores de comparación).

select nombre, apellido1, apellido2 from personaswhere edad=25;

CONSULTAS

Page 35: Material Clase BDD: Diseño de una Base de Datos

• También se pueden realizar consultas con el operador OR o AND:

select nombre, apellido1, apellido2 from personaswhere (edad>25 AND edad<50);

CONSULTAS

Page 36: Material Clase BDD: Diseño de una Base de Datos

Gracias por su atención!!!