0% encontró este documento útil (0 votos)
184 vistas98 páginas

Bases de Datos Dinamicas

Este documento describe cómo crear y manipular bases de datos dinámicas tanto en modo de texto como gráficamente. Explica conceptos clave como bases de datos, normalización, MySQL y SQL. También cubre los pasos para crear tablas y bases de datos usando líneas de comando de MySQL y el entorno gráfico de XAMPP.

Cargado por

tomatito2000
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
184 vistas98 páginas

Bases de Datos Dinamicas

Este documento describe cómo crear y manipular bases de datos dinámicas tanto en modo de texto como gráficamente. Explica conceptos clave como bases de datos, normalización, MySQL y SQL. También cubre los pasos para crear tablas y bases de datos usando líneas de comando de MySQL y el entorno gráfico de XAMPP.

Cargado por

tomatito2000
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 98

Base de datos

dinámica

M. en E. Norma Fernández Osorio


Presentación de la Sesión 3

Realización de bases datos


Dinámica.
Objetivo general

Elaborar BD dinámicas en modo texto y


gráficamente, con la finalidad de manipular la
información, modificándola, eliminando
registros, ordenarlos y realizar consultas.
Contenido

1. ¿Que es una Base de Datos?


2. ¿Qué es una Base de datos relacional?
3. Normalización de una bd
4. MySQL
¿Qué es una base de datos?

Serie de datos relacionados que forman


una estructura lógica.
Estructura reconocible desde un programa
informático. Esa estructura no sólo
contiene los datos en sí, sino la forma en
la que se relacionan.
Elementos de un sistema de bases de datos

Serie de datos relacionados que forman


una estructura lógica.
¿Qué es una base de datos relacional?

Una base de datos relacional almacena datos


en tablas separadas.
Las tablas son enlazadas por relaciones
definidas haciendo posible combinar datos
desde varias tablas solicitadas.
Las relaciones (tablas) constan de:
• Columnas (atributos).
Referido a cada propiedad
de los datos que se
almacenan en la relación
(nombre, id,...).
• Filas (Tuplas) Referido a
cada elemento de la
relación.
Clave primaria

• Es la que se escoge como identificador de las filas. Se


elige como primaria la que identifique mejor a cada fila
en el contexto de la base de datos.
Problemas del esquema relación
• Redundancia.- Son los datos que se repiten en las
BD.
• Ambigüedad.- Datos que no clarifican el elemento
al que representan.
• Pérdida de restricciones de integridad.- Debido a
dependencias funcionales.
• Modificación de datos.- Que no afecte este
proceso a las demás tablas.
Formas normales

Corresponden a una teoría de Normalización iniciada


por el propio Codd y continuada por otros autores
(entre los que destacan Boyce y Fagin). Codd definió
en 1970 la primera forma normal, desde ese
momento aparecieron la segunda, tercera, la Boyce-
Codd, la cuarta y la quinta forma normal.
Edgar F. Codd
Formas normales

Una tabla puede encontrarse en primera forma


normal y no en segunda forma normal, pero no al
contrario.
La teoría de formas normales es una teoría
absolutamente matemática .

Edgar F. Codd
Normalización

Proceso que clasifica relaciones, objetos,


formas de relación y demás elementos en
grupos, en base a las características que
cada uno posee.
Edgar F. Codd
Primer forma normal (1FN)

Una tabla se encuentra en primera forma


normal si impide que un atributo de una
celda pueda tomar más de un valor.
Primer forma normal (1FN)

• Todos los atributos son atómicos. (Si a cada valor de X le


pertenece un valor de Y, entonces a cada valor de Y le pertenece un valor de X)

• La tabla contiene una clave primaria.


• La tabla no contiene atributos nulos.
• Si no posee ciclos repetitivos.

Esta forma normal elimina los valores repetidos dentro de una BD


Primer forma normal (1FN)
DOCENTES
ID NOMBRE DEPARTAMENTO
001 Andrés Informática
002 Félix Pedagogía
Informática

DOCENTES
ID NOMBRE DEPARTAMENTO
001 Andrés Informática
002 Félix Pedagogía
003 Félix Informática
Segunda forma normal (2FN)
Si una tabla está en primera forma normal y
además cada atributo, depende únicamente
de la clave principal.
ALUMNOS
ID COD. CUR. NOMBRE APELLIDO CALIFICACIÓN
1INF165 34 Ana Lara 100
5ELEC214 26 Luis Pérez 70
3ELECT321 22 Heladio Saldivar 95
Segunda forma normal (2FN)
ALUMNOS
ID NOMBRE APELLIDO
1INF165 Ana Lara
5ELEC214 Luis Pérez
3ELECT321 Heladio Saldivar

CALIFICACIONES
COD. CUR. CALIFICACIÓN
34 100
26 70
22 95
Tercera forma normal (3FN)
Cuando una tabla está en 2FN y además los
atributo no depende funcionalmente de atributos
que no son clave.
ALUMNOS
ID NOMBRE APELLIDO C.P. COLONIA
1INF165 Ana Lara 13420 Selene
5ELEC214 Luis Pérez 09760 Agrarista
3ELECT321 Heladio Saldívar 12350 Potrero
Tercera forma normal (3FN)
ALUMNOS
ID NOMBRE APELLIDO
1INF165 Ana Lara
5ELEC214 Luis Pérez
3ELECT321 Heladio Saldívar

DIRECCIONES
C.P. COLONIA
13420 Selene
09760 Agrarista
12350 Potrero
SQL

El SQL forma parte de MySQL, conocido como


Lenguaje de Consultas Estructurado, es el
lenguaje estandarizado más común usado
para acceder base de datos.
Software de Fuente Abierta
Procesos de instrucciones SQL
1. Analizar la instrucción. Para comprobar la sintaxis.
2. Si es correcta se valora si los metadatos de la misma
son correctos.
3. Si es correcta, se optimiza, a fin de consumir los
mínimos recursos posibles.
4. Se ejecuta la sentencia y se muestra el resultado al
emisor de la misma.
Elementos de SQL
Comandos. Instrucciones que se pueden realizar.
– SELECT Realiza consultas sobre los datos de la BD.
– DML Lenguaje de manipulación de datos.
– DDL Lenguaje de definición de datos.
– DCL Lenguaje de control de datos.
– DTL Instrucciones de control de transacciones.
Elementos de SQL
• Cláusulas. Palabras especiales para modificar el
funcionamiento de un comando (WHERE, ORDER BY,...)
• Operadores. Permiten crear expresiones complejas.
Pueden ser aritméticos (+,-,*,/,...) lógicos (>, <, !=,<>,
AND, OR,...)
• Funciones. Para conseguir valores complejos (SUM(),
DATE(),...)
• Literales. Valores concretos para las consultas: números,
textos, caracteres,... Ejemplos: 2, 12.34, ‘José Cardenal'
• Metadatos. Obtenidos de la propia base de datos
¿Qué es MySQL?

Administrador de Base de Datos relacional


Fue desarrollado para manejar grandes bases de
datos mucho más rápido que las soluciones
existentes y ha sido usado exitosamente.
Su principal herramientas es mysqladmin
MySQL
SQL, Structure Query Language
(Lenguaje de Consulta Estructurado)
Es un lenguaje de programación para trabajar
con base de datos relacionales como

MySQL, Oracle, etc.


MySQL

MySQL

Es el interprete de SQL.
Es un servidor de base de datos.
MySQL permite crear:

• Base de datos • Hacer consultas


• Tablas, • Realizar diferentes
• Insertar datos operaciones
• Modificarlos • Administra Bases de Datos.
• Eliminarlos
• Ordenarlos
MySQL

Ingresando instrucciones en la línea de


comandos o embebidas en un lenguaje como
PHP nos comunicamos con el servidor.
Cada sentencia debe acabar con punto y
coma (;)
MySQL
Es sensible a mayúsculas y minúsculas, es decir, si
hace diferencia entre ellas, depende del sistema
operativo, Windows no es sensible, pero Linux si.
Por ejemplo Windows interpreta igualmente las
siguientes sentencias:
create database administracion;
Create DataBase administracion;
MySQL
Y Linux interpretará como un error la
segunda. Se recomienda usar siempre
minúsculas.

El sitio mysqlya.com.ar está instalado sobre


un servidor Linux por lo que en todos los
ejercicios se deberán respetar mayúsculas y
minúsculas.
BASE DE DATOS CON LÍNEA DE COMANDOS
Entrar al Símbolo del Sistema
Inicio / Todos los programas / Accesorios / Símbolo del sistema
Entrar al subdirectorio XAMPP y ubicarse en C

C:\User\CNAD>cd..
C:\User\cd..
C:\>
Visualizar el directorio XAMPP
C:\> cd xampp

C:\xampp>dir

Buscar el
directorio de MySQL
Entrar al subdirectorio MySQL
C:\>xampp>
C:\xampp>cd MySQL
C:\xampp\mysql>cd bin
C:\xampp\mysql\bin>
Entrar como administrador
C:\xampp\mysql\bin>mysql –u root -p
Enter password: *******
Bienvenida de MySQL
Visualizar las bases de datos con
show databases;
Crea una base de datos
create database agenda;
Visualizar la base de datos
Para manipular la base de datos se utiliza
use agenda
Creación de una tabla en la base de datos
agenda
Creación de una tabla en la base de datos
agenda
create table amigos
(nombre varchar (30),
apellidos varchar (30),
direccion varchar (50),
telecasa varchar(10),
telemovil varchar (10),
edad tinyint);
Visualizar la tabla generada
show tables;
Crear otra tabla cumple
create table cumple ();
Crear otra tabla cumple
create table cumple ();

Create table cumple


(nombre varchar (30),
apellidos varchar (30),
fecha date);
Visualizamos las tablas
show tables;
BASE DE DATOS MODO GRÁFICO
http://localhost/xampp
http://localhost/xampp
http://localhost/xampp
http://localhost/xampp
http://localhost/xampp
ttp://localhost/xampp
http://localhost/xampp
http://localhost/xampp
http://localhost/xampp
http://localhost/xampp
Para cambiar el id al comienzo de la tabla
seleccionamos
Para cambiar el id al comienzo de la tabla
seleccionamos
Para cambiar el id al comienzo de la tabla
seleccionamos
Para cambiar el id al comienzo de la tabla
seleccionamos
Tipo de Campo Tamaño de Almacenamiento

TINYINT 1 byte
SMALLINT 2 bytes
MEDIUMINT 3 bytes
INT 4 bytes
INTEGER 4 bytes
BIGINT 8 bytes
FLOAT(X) 4 ú 8 bytes
FLOAT 4 bytes
DOUBLE 8 bytes
DOUBLE PRECISION 8 bytes
REAL 8 bytes
M+2 bytes sí D > 0, M+1 bytes sí
DECIMAL(M,D)
D=0
M+2 bytes if D > 0, M+1 bytes if
NUMERIC(M,D)
D=0
BASE DE DATOS DINÁMICA

CREAR UNA BASE DE DATOS


CON MYSQL
PHPFACIL
CREATE TABLE CURSOS

( codigo int(11) NOT NULL auto_increment,


nombre varchar(40) default NULL,
mail varchar(50) default NULL,
codigocurso int(11) default NULL,
PRIMARY KEY (‘codigo’) ) ;
Práctica.-1. Insertar registros en base de datos
Para añadir datos en la tabla empleamos el
comando MySQL llamado insert.
Necesitamos dos páginas para este proceso,
una será el formulario de carga de datos y la
siguiente será la que efectúe la inserción en
la tabla.
Insertar.php
Insertar2.php
<html>
<head>
<title>INSERTAR ALUMNOS</title>
</head>
<body>
<h1>Alta de Alumnos</h1>
<form action="insertar2.php" method="post">
Ingrese nombre:
<input type="text" name="nombre"><br>
Ingrese mail:
<input type="text" name="mail"><br>
Seleccione el curso:
<select name="codigocurso">
<option value="1">PHP</option>
<option value="2">ASP</option>
<option value="3">JSP</option>
</select>
<br>
<input type="submit" value="Registrar">
</form>
</body>
</html>
<html>
<head>
<title>INSERTAR ALUMNOS</title>
</head>
<body>
<h1>Alta de Alumnos</h1>
<form action="insertar2.php"
method="post">
Ingrese nombre:
<input type="text" name="nombre"><br>
Ingrese mail:
<input type="text" name="mail"><br>
Seleccione el curso:
<select name="codigocurso">
<option value="1">PHP</option>
<option value="2">ASP</option>
<option value="3">JSP</option>
</select>
<br>
<input type="submit" value="Registrar">
</form>
</body>
</html>
Insertar.php
<html> Insetar2.php
<head>
<title>insertar base de datos</title>
</head>
<body>
<?php
$conexion=mysql_connect("localhost","root")
or die("Problemas en la conexion");

mysql_select_db(“cursos",$conexion)
or die("Problemas en la seleccion de la base de datos");

mysql_query("insert into cursos(nombre,mail,codigocurso) values


('$_REQUEST[nombre]','$_REQUEST[mail]',$_REQUEST[codigocurso])",
$conexion) or die("Problemas en el select".mysql_error());

mysql_close($conexion);

echo "El alumno fue dado de alta.";


?>
</body>
</html>
Insetar2.php

<html>
<head> <title>insertar base de datos</title></head>
<body>
<?php
$conexion=mysql_connect("localhost","root")
or die("Problemas en la conexion");

mysql_select_db(“cursos",$conexion)
or die("Problemas en la seleccion de la base de
datos");
mysql_query("insert into
cursos(nombre,mail,codigocurso) values

('$_REQUEST[nombre]','$_REQUEST[mail]',$_REQUEST[
codigocurso])",
$conexion) or die("Problemas en el
select".mysql_error());

mysql_close($conexion);

echo "El alumno fue dado de alta.";


?>
</body>
</html>
Insertar2.php
<html>
<head> <title>Selección de registros</title></head>
<body>
<h1><center><n>Alumnos inscritos en los cursos de
informática</n></center></h1>
<?php
$conexion=mysql_connect("localhost","root")
or die("Problemas en la conexion");
mysql_select_db("cursos",$conexion)
or die("Problemas en la selección de la base de datos");
$registros=mysql_query("select codigo,nombre, mail,
Codigocurso from registros",$conexion) or
die("Problemas en el select:".mysql_error());
while ($reg=mysql_fetch_array($registros))
{
echo "Codigo:".$reg['codigo']."<br>";

Seleccion1.php
echo "Nombre:".$reg['nombre']."<br>";
echo "Mail:".$reg['mail']."<br>";
echo "Curso:";
switch ($reg['codigocurso']) {
case 1:echo "PHP";
break;
case 2:echo "ASP";
break;
case 3:echo "JSP";
break;
}
echo "<br>";
echo "<hr>";
}
mysql_close($conexion);
?>
</body>
</html>
CONSULTA
<html>
<head> <title>Problema</title> </head>
<body>
<h1><center>Consulta tu inscripción</center></h1>
<form action="consulta2.php" method="post">
Ingrese el mail del alumno a consultar:
<input type="text" name="mail">
<br>
<input type="submit" value="buscar">
</form>
</body>
</html>

consulta.php
<html>
<head> <title>Problema</title> </head>
<body>
<?php
$conexion=mysql_connect("localhost","root")
or die("Problemas en la conexion");
mysql_select_db("cursos",$conexion)
or die("Problemas en la selección de la base de
datos");
$registros=mysql_query("select codigo,
nombre, mail, codigocurso
from registros where
mail='$_REQUEST[mail]'",$conexion) or
die("Problemas en el select:".mysql_error());
if ($reg=mysql_fetch_array($registros))
{
consulta2.php (1)
echo "Nombre:".$reg['nombre']."<br>";
echo "Curso:";
switch ($reg['codigocurso']) {
case 1:echo "PHP";
break;
case 2:echo "ASP";
break;
case 3:echo "JSP";
break; }
}
else
{
echo "No existe un alumno con ese mail.";
}
mysql_close($conexion);
?>
</body>
consulta2.php (2)
</html>
ELIMINAR, BORRAR UN
REGISTRO
borrar.php
<html>
<head> <title>Problema</title> </head>
<body>
<h1><center> Eliminar registros</center></h1>
<form action="borrar2.php" method="post">
Ingrese el mail del alumno que desea eliminar:
<input type="text" name="mail">
<br>
<input type="submit" value="buscar">
</form>
</body>
</html>
<html>
<head> <title>Eliminar un registro</title></head>
<body>
<?php
$conexion=mysql_connect("localhost","root") or
die("Problemas en la conexion");
mysql_select_db("cursos",$conexion) or
die("Problemas en la selección de la base de datos");
$registros=mysql_query("select mail from registros
where mail='$_REQUEST[mail]'",$conexion) or
die("Problemas en el select:".mysql_error());
if ($reg=mysql_fetch_array($registros))
{

borrar2.php
mysql_query("delete from registros where
mail='$_REQUEST[mail]'",$conexion) or
die("Problemas en el select:".mysql_error());
echo "Se efectuó la eliminación del alumno con dicho mail";
}
else
{
echo "No existe un alumno con ese mail.";
}
mysql_close($conexion);
?>
</body>
</html>

borrar2.php
Borrar todos los registros de
una tabla
<html>
<head><title>Borrar todos los registros</title></head>
<body>
<h1><center>Borrar los registros de una tabla</center></h1>
<?php
$conexion=mysql_connect("localhost","root") or
die("Problemas en la conexion");
mysql_select_db("cursos",$conexion) or
die("Problemas en la selección de la base de datos");
mysql_query("delete from registros",$conexion) or
die("Problemas en el select:".mysql_error());
echo "Se efectuó el borrado de todos los alumnos.";
mysql_close($conexion);
?>
</body>
</html>
Contador de registros
<html>
<head><title>Contador</title></head>
<body>
<?php
$conexion=mysql_connect("localhost","root") or die("Problemas
en la conexion");
mysql_select_db("cursos",$conexion) or die("Problemas en la
selección de la base de datos");
$registros=mysql_query("select count(*)as cantidad from
cursos",$conexion) or
die("Problemas en el select:".mysql_error());
$reg=mysql_fetch_array($registros);
echo "La cantidad de alumnos inscritos son :".$reg['cantidad'];
?>
</body>
</html>

También podría gustarte