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

liras loca
liras locaLic. en informática
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
FASES DEL DISEÑO
ANÁLISIS DE REQUERIMIENTOS
Fases del
Diseño
• 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
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
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
IR
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.
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.
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.
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.
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.
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)
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.
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.
EJEMPLO DE DISEÑO DE UNA BD
COMANDOS UTILIZADOS
POR
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)
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
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.
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)
COMANDOS
comando show tables
 Muestra las tablas de la base de datos actual. Ejemplo:
mysql> use mysql
Database changed
mysql> 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 base
de datos que no tiene porque
estar en uso.
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)
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);
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);
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)
TIPOS DE DATOS
Tipo Espacio Rango rango sin signo
TINYINT 1 byte -128 a 127 0 a 255
SMALL INT 2 bytes -32768 a 32767 0 a 65535
MEDIUM INT 3 bytes -8388608 a 8388607 0 a 16777215
INT 4 bytes -2147483648 a 2147483647 0 a 4294967295
Tipo Espacio Tamaño máximo
CHAR(X) X bytes 255 bytes
VARCHAR(X) X+1 byte 255 bytes
TINYTEXT X+1 byte 255 bytes
TINYBLOB X+1 byte 255 bytes
TEXT X+2 bytes 65535 bytes
BLOB X+2 bytes 65535 bytes
MEDIUMTEXT X+3 bytes 1,6 MB
MEDIUMBLOB X+ 3bytes 1,6 MB
LONGTEXT X+4 bytes 4,2 GB
LONGBLOB X+4 bytes 4,2 GB
Numéricos
Texto Los que más se
usan son CHAR y
VARCHAR. Los
CHAR
almacenan
tamaño fijo y
VARCHAR
optimiza tamaño
variable.
TIPOS DE DATOS
Lógicos
 Son los tipos BIT o BOOL que admiten los valores 0 o 1.
Tipo Rango Formato
DATE Del 1 de enero de 1001 al
31/12 del 9999
año-mes-día
DATETIME
De las 0 horas del 1/1/1001 a las
0 horas del
31/12/9999
Año-mes-día
horas:minutos:segundos
TIMESTAMP
De las 0 horas del 1/1/1970
a las 0 horas del
31/12/2037
Año-mes-día
horas:minutos:segundos
Permite estos tamaños:
14 (aaaammddhhmmss)
12 (aaaammddhhmm)
8 (aaaammdd)
6 (aammdd)
4 (aamm)
2 (aa)
TIME
Una hora en formato
HH:MM:SS
YEAR Año desde 1901 a 2037
Fechas
OPERACIONES CON TABLAS
Modificar 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;
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...;
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.
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.
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:mysqldatapruebatexto.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.
CONSULTAS
Obtener 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.
• 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 personas
where edad=25;
CONSULTAS
• También se pueden realizar consultas con el
operador OR o AND:
select nombre, apellido1, apellido2
from personas
where (edad>25 AND edad<50);
CONSULTAS
Material Clase BDD: Diseño de una Base de Datos
1 de 36

Recomendados

Lenguaje SQLLenguaje SQL
Lenguaje SQLGenesis Davalos
5.6K vistas5 diapositivas
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dmlGerardo
69K vistas7 diapositivas

Más contenido relacionado

La actualidad más candente

VISTASVISTAS
VISTASLisbeth Ocaña Bueno
1.3K vistas15 diapositivas
Bases de Datos SemanticasBases de Datos Semanticas
Bases de Datos SemanticasErik Guerrero
4.3K vistas7 diapositivas
HA2NV50 EQ8-StarUMLHA2NV50 EQ8-StarUML
HA2NV50 EQ8-StarUMLErick Ortega Herrera
2.2K vistas10 diapositivas
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
51.8K vistas19 diapositivas

La actualidad más candente(20)

VISTASVISTAS
VISTAS
Lisbeth Ocaña Bueno1.3K vistas
Introducción de pruebas de softwareIntroducción de pruebas de software
Introducción de pruebas de software
Marta Silvia Tabares19.9K vistas
Bases de Datos SemanticasBases de Datos Semanticas
Bases de Datos Semanticas
Erik Guerrero4.3K vistas
HA2NV50 EQ8-StarUMLHA2NV50 EQ8-StarUML
HA2NV50 EQ8-StarUML
Erick Ortega Herrera2.2K vistas
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
testgrupocomex51.8K vistas
Algebra relacionalAlgebra relacional
Algebra relacional
DorvinEduardo2.5K vistas
Creando un servicio SOAP en Java con NetBeansCreando un servicio SOAP en Java con NetBeans
Creando un servicio SOAP en Java con NetBeans
David Fernández Puentes10.1K vistas
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccion
José Antonio Sandoval Acosta2.2K vistas
Manual de instalacion de Mongo dbManual de instalacion de Mongo db
Manual de instalacion de Mongo db
Ruby B. Blanca9K vistas
1. Modelo de Datos1. Modelo de Datos
1. Modelo de Datos
MSc Aldo Valdez Alvarado4.5K vistas
programacion en lenguaje ensamblador con NASMprogramacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASM
フ乇丂ひ丂 12.1K vistas
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
José Antonio Sandoval Acosta5.2K vistas
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
José Antonio Sandoval Acosta6.2K vistas
Ejemplo de Trigger en MysqlEjemplo de Trigger en Mysql
Ejemplo de Trigger en Mysql
Universidad Politecnica Territorial de Merida, Kleber Ramirez156.1K vistas
MysqlMysql
Mysql
Marisol Henao3.1K vistas
Clases y objetos de javaClases y objetos de java
Clases y objetos de java
innovalabcun2.9K vistas
Dns caracteristicas-y-propiedadesDns caracteristicas-y-propiedades
Dns caracteristicas-y-propiedades
Universidad Militar Nueva Granada-Universidad de Cundinamarca2.5K vistas
Seguridad de la base de datosSeguridad de la base de datos
Seguridad de la base de datos
osandcr1.4K vistas

Destacado

Diseño de bases de datosDiseño de bases de datos
Diseño de bases de datosJesús Tramullas
40.1K vistas12 diapositivas
Bases de datosBases de datos
Bases de datosJesús Tramullas
6.9K vistas15 diapositivas
Consultas!Consultas!
Consultas!Stephanie
326 vistas24 diapositivas

Destacado(20)

Diseño de bases de datosDiseño de bases de datos
Diseño de bases de datos
Jesús Tramullas40.1K vistas
Bases de datos (Ejemplo del videoclub)Bases de datos (Ejemplo del videoclub)
Bases de datos (Ejemplo del videoclub)
Felipe Duarte Camacho111.5K vistas
Bases de datosBases de datos
Bases de datos
Jesús Tramullas6.9K vistas
Consultas!Consultas!
Consultas!
Stephanie326 vistas
Ejemplos base de datosEjemplos base de datos
Ejemplos base de datos
Froilan Tapara Quispe116.3K vistas
diseño lógico y diseño físicodiseño lógico y diseño físico
diseño lógico y diseño físico
errroman112.8K vistas
Ejemplos base de datosEjemplos base de datos
Ejemplos base de datos
Aydamf61.1K vistas
Bd cotasacBd cotasac
Bd cotasac
Jorge Sánchez301 vistas
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
cristhianmolina19888813 vistas
LoesLoes
Loes
Luis Carvajal2.5K vistas
T3 Bd AccessT3 Bd Access
T3 Bd Access
rmonago433 vistas
Resumen del capitulo 7 y8Resumen del capitulo 7 y8
Resumen del capitulo 7 y8
Pamela Zambrano565 vistas
Microsoft accessMicrosoft access
Microsoft access
AlexQDiaz874 vistas
Diseño de una base de datosDiseño de una base de datos
Diseño de una base de datos
Vane0405691 vistas

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

Parte 08 my sqlParte 08 my sql
Parte 08 my sqlrosmeriramos
601 vistas10 diapositivas
MysqlMysql
MysqlLearn Pure Insanity
452 vistas8 diapositivas
MANUALMANUAL
MANUALEMRA197344
345 vistas8 diapositivas
MysqlMysql
MysqlManuel Velesaca
83 vistas8 diapositivas
Comandos mysqlComandos mysql
Comandos mysqlpolar
988 vistas13 diapositivas
Comandos mysqlComandos mysql
Comandos mysqlMartin Soria
88 vistas13 diapositivas

Similar a Material Clase BDD: Diseño de una Base de Datos(20)

Parte 08 my sqlParte 08 my sql
Parte 08 my sql
rosmeriramos601 vistas
MysqlMysql
Mysql
Learn Pure Insanity452 vistas
MANUALMANUAL
MANUAL
EMRA197344345 vistas
MysqlMysql
Mysql
Manuel Velesaca83 vistas
Comandos mysqlComandos mysql
Comandos mysql
polar988 vistas
Comandos mysqlComandos mysql
Comandos mysql
Martin Soria88 vistas
Sql desde ceroSql desde cero
Sql desde cero
shochino336 vistas
comandos-mysql.pdfcomandos-mysql.pdf
comandos-mysql.pdf
GustavoRojasValdivia24 vistas
Curso my sqlCurso my sql
Curso my sql
carlos lopez ramos1.2K vistas
210927124637-Manual MySQL.pdf210927124637-Manual MySQL.pdf
210927124637-Manual MySQL.pdf
GermnAurelioOrtizBal17 vistas
Manual MySQL.pdfManual MySQL.pdf
Manual MySQL.pdf
quesadah13 vistas
54563910 curso-de-mysql54563910 curso-de-mysql
54563910 curso-de-mysql
Aldo Vilches Godoy464 vistas
Administracion de base de datosAdministracion de base de datos
Administracion de base de datos
Ayde Hernandez Lara856 vistas
58517228 postgre sql-desarrolladoresbasico58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasico
Lucia Zambrano Franco1.7K vistas
MySQL. Tutorial BásicoMySQL. Tutorial Básico
MySQL. Tutorial Básico
Josu Orbe2.8K vistas
MySQL - SQL.pdfMySQL - SQL.pdf
MySQL - SQL.pdf
kabern4 vistas
MySQL.pdfMySQL.pdf
MySQL.pdf
kabern5 vistas
Presentación1Presentación1
Presentación1
Diego Sanchez Hernandez114 vistas
SlideshareSlideshare
Slideshare
ROXANAANDRANGO182 vistas
ManualPracticoSQL.pdfManualPracticoSQL.pdf
ManualPracticoSQL.pdf
Jenny290683 vistas

Más de liras loca(20)

Investigación de MercadoInvestigación de Mercado
Investigación de Mercado
liras loca770 vistas

Último(20)

Carta-Elfo-Llegada.pdfCarta-Elfo-Llegada.pdf
Carta-Elfo-Llegada.pdf
IsabelCalvoMartinez146 vistas
Misión en favor de los necesitadosMisión en favor de los necesitados
Misión en favor de los necesitados
https://gramadal.wordpress.com/218 vistas
SESIÓN LANZAMIENTO DE BALA.pdfSESIÓN LANZAMIENTO DE BALA.pdf
SESIÓN LANZAMIENTO DE BALA.pdf
ELIDALOPEZFERNANDEZ37 vistas
semana 2 .pdfsemana 2 .pdf
semana 2 .pdf
ValdezsalvadorMayleM61 vistas
Semana 3.pdfSemana 3.pdf
Semana 3.pdf
ValdezsalvadorMayleM74 vistas
Contenidos y PDA 6° Grado.docxContenidos y PDA 6° Grado.docx
Contenidos y PDA 6° Grado.docx
Norberto Millán Muñoz49 vistas
CONVERSACIONES SAN ESTEBAN 23-24CONVERSACIONES SAN ESTEBAN 23-24
CONVERSACIONES SAN ESTEBAN 23-24
San Esteban Comunicación Dominicos de Salamanca138 vistas
Plan analítico en la NEM (2).pptxPlan analítico en la NEM (2).pptx
Plan analítico en la NEM (2).pptx
Norberto Millán Muñoz179 vistas
DE OLLANTa.pptxDE OLLANTa.pptx
DE OLLANTa.pptx
alinargomedocueva230 vistas

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

  • 1. 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
  • 4. • 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
  • 5. 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
  • 6. 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 IR
  • 7. 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.
  • 8. 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.
  • 9. 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.
  • 10. 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.
  • 11. 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.
  • 12. 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)
  • 13. 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.
  • 14. 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.
  • 15. EJEMPLO DE DISEÑO DE UNA BD
  • 17. 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)
  • 18. 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
  • 19. 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.
  • 20. 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)
  • 21. COMANDOS comando show tables  Muestra las tablas de la base de datos actual. Ejemplo: mysql> use mysql Database changed mysql> 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 base de datos que no tiene porque estar en uso.
  • 22. 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)
  • 23. 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);
  • 24. 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);
  • 25. 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)
  • 26. TIPOS DE DATOS Tipo Espacio Rango rango sin signo TINYINT 1 byte -128 a 127 0 a 255 SMALL INT 2 bytes -32768 a 32767 0 a 65535 MEDIUM INT 3 bytes -8388608 a 8388607 0 a 16777215 INT 4 bytes -2147483648 a 2147483647 0 a 4294967295 Tipo Espacio Tamaño máximo CHAR(X) X bytes 255 bytes VARCHAR(X) X+1 byte 255 bytes TINYTEXT X+1 byte 255 bytes TINYBLOB X+1 byte 255 bytes TEXT X+2 bytes 65535 bytes BLOB X+2 bytes 65535 bytes MEDIUMTEXT X+3 bytes 1,6 MB MEDIUMBLOB X+ 3bytes 1,6 MB LONGTEXT X+4 bytes 4,2 GB LONGBLOB X+4 bytes 4,2 GB Numéricos Texto Los que más se usan son CHAR y VARCHAR. Los CHAR almacenan tamaño fijo y VARCHAR optimiza tamaño variable.
  • 27. TIPOS DE DATOS Lógicos  Son los tipos BIT o BOOL que admiten los valores 0 o 1. Tipo Rango Formato DATE Del 1 de enero de 1001 al 31/12 del 9999 año-mes-día DATETIME De las 0 horas del 1/1/1001 a las 0 horas del 31/12/9999 Año-mes-día horas:minutos:segundos TIMESTAMP De las 0 horas del 1/1/1970 a las 0 horas del 31/12/2037 Año-mes-día horas:minutos:segundos Permite estos tamaños: 14 (aaaammddhhmmss) 12 (aaaammddhhmm) 8 (aaaammdd) 6 (aammdd) 4 (aamm) 2 (aa) TIME Una hora en formato HH:MM:SS YEAR Año desde 1901 a 2037 Fechas
  • 28. OPERACIONES CON TABLAS Modificar 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;
  • 29. 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...;
  • 30. 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.
  • 31. 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.
  • 32. 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:mysqldatapruebatexto.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.
  • 33. CONSULTAS Obtener 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.
  • 34. • 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 personas where edad=25; CONSULTAS
  • 35. • También se pueden realizar consultas con el operador OR o AND: select nombre, apellido1, apellido2 from personas where (edad>25 AND edad<50); CONSULTAS