Este documento presenta información sobre diseño de bases de datos. Explica conceptos clave como el modelo entidad-relación y el modelo relacional. También cubre temas como la creación de tablas en MySQL, inserción y modificación de datos, y el uso de diagramas entidad-relación en MySQL Workbench.
1. Ciclo 3: Desarrollo de Software
Sesión 12: Diseño de Bases de
Datos
Programa Ciencias de la Computación e Inteligencia Artificial
Escuela de Ciencias Exactas e Ingeniería
Universidad Sergio Arboleda
Bogotá
7. Modelo E/R
Representación del modelado relacional de datos.
Propuesto por Peter Chen en 1976.
Elementos:
• Entidad
• Atributos
• Relaciones
• Restricciones
9. Modelo E/R y modelo Relacional
Relación 1 a 1 Atributos de una entidad pasan a ser
atributos de otra.
Relación 1 a muchos Llave primaria de la entidad con cardinalidad
1 pasa a ser llave foránea en la entidad con
cardinalidad múltiple.
Relación muchos a muchos Cada llave primaria de una entidad está
presente como llave foránea en la otra
entidad.
Diagrama E/R Modelo Relacional
17. Diagrama E/R Mysql Workbench
Como se genero la relación
entre editorial y libro, el
atributo Editorial_nombre
pasó a ser una llave foránea
automáticamente
(FK - Foreign Key).
18. Diagrama E/R Mysql Workbench
Ejemplo de relación
muchos a muchos.
Se puede exportar el
modelo en PNG
19. SQL – Creación de tablas
SQL para crear una tabla:
CREATE TABLE nombre_tabla (
nombre_columna1 datatype NULL,
nombre_columna2 datatype NOT NULL,
nombre_columna3 datatype NULL,
…
);
20. MySQL – Creación de tablas
MySQL para crear una tabla ejemplo:
CREATE TABLE Cliente (
cedula int(10) NOT NULL,
nombre varchar(30) NOT NULL,
apellido varchar(30) NOT NULL,
email varchar(30) NULL,
cargo varchar(15) NOT NULL
);
21. MySQL – Creación de tablas
MySQL para crear una tabla ejemplo:
Para definir la llave primaria.
CREATE TABLE Cliente (
cedula int(10) NOT NULL PRIMARY KEY,
nombre varchar(30) NOT NULL,
apellido varchar(30) NOT NULL,
email varchar(30) NULL,
cargo varchar(15) NOT NULL
);
22. MySQL – Creación de tablas
MySQL para crear una tabla ejemplo:
Para definir la llave primaria compuesta.
CREATE TABLE Cliente (
cedula int(10) NOT NULL,
nombre varchar(30) NOT NULL,
apellido varchar(30) NOT NULL,
email varchar(30) NULL,
cargo varchar(15) NOT NULL,
PRIMARY KEY (cedula, nombre, cargo)
);
23. MySQL – Valores por defecto y
listas de valores
MySQL para crear un valor por defecto y una lista de posibles valores:
CREATE TABLE pais (
id int(10) AUTOINCREMENT PRIMARY KEY,
nombre varchar(30) NOT NULL DEFAULT ‘’,
continente enum(‘Asia’, ‘Europa`,`Oceania`,`America`,`Antartica`)
NOT NULL DEFAULT ‘Asia’,
);
24. SQL – Borrar tablas
SQL para borrar una tabla:
Mucho cuidado con este comando, es complicado recuperar información
borrada.
DROP TABLE nombre_tabla
25. Código SQL en MySQL
Abrir un nuevo script SQL.
Ejecutar el código.
Aclaraciones código MySQL:
El punto y coma separa cada
consulta/comando.
Las tablas es MySQL deben estar
contenidas en un esquema.
Para eso se crea el esquema
restaurante.
Para trabajar sobre un esquema se
debe usar el comando USE.
26. Código SQL en MySQL Shell
Abrir el Shell de MySQL.
Agregar y ejecutar el código.
27. SQL – Adicionar Columnas
SQL para agregar una columna a una tabla que ya existe:
ALTER TABLE nombre_tabla
Add nombre_columna datatype NULL
ALTER TABLE nombre_tabla
Add nombre_columna datatype NULL,
nombre_columna2 datatype NULL
Agregar una columna:
Agregar varias columnas:
Toda columna que se agregue debe tener la propiedad NULL.
28. SQL – Adicionar un valor por defecto
SQL para agregar un valor por defecto a una columna que ya existe:
ALTER TABLE nombre_tabla
ALTER nombre_columna SET DEFAULT ‘valor por defecto’;
29. SQL – Inserción de datos (filas)
Sintaxis simplificada:
INSERT INTO nombre_tabla (nombre_atributo1, nombre_atributo2, …)
VALUES (valor_atributo1, valor_atributo2, …);
INSERT INTO nombre_tabla
VALUES (valor_atributo1, valor_atributo2, …);
Esta sintaxis se puede usar cuando los valores de los atributos se pasan en el
orden en que están en la tabla.
30. SQL – Inserción de datos (filas)
INSERT INTO clientes (ID, Dirección, Nombre)
VALUES (4, “Cra 90 # 1-1’, ‘Diego Vega’ );
INSERT INTO clientes
VALUES (5, ‘Peter Parker’, ‘Cra 9 # 2-2’);
ID Nombre Dirección
1 Juan Días Calle 2 # 3-4
2 Daniel Pardo Calle 5 # 7-8
3 Stephen King Calle 1 # 1-2
ID Nombre Dirección
1 Juan Días Calle 2 # 3-4
2 Daniel Pardo Calle 5 # 7-8
3 Stephen King Calle 1 # 1-2
4 Diego Vega Cra 90 # 1-1
5 Peter Parker Cra 9 # 2-2
31. SQL – Borrar datos
SQL para borrar una tabla:
DELETE FROM nombre_tabla;
SQL para borrar todos los registros de una tabla que cumplen con una
condición:
DELETE FROM cliente WHERE país = ‘Francia’;
32. SQL – Actualizar datos
SQL para actualizar un registro de una tabla:
UPDATE nombre_tabla
SET atributo1 = valor1, atributo2 = valor 2, …
WHERE atributoN = valorN;
Ejemplo: Actualizar en la base de datos de clientes, aquellos que tenían en
nacionalidad ‘Holanda’ por ‘Paises Bajos’.
UPDATE clientes
SET nacionalidad = ‘Paises Bajos’
WHERE nacionalidad = ‘Holanda’;
33. Ejericios
Una excelente forma de recordar las principales operaciones
del lenguaje SQL es realizar el siguiente tutorial
https://www.khanacademy.org/computing/computer-programming/sql/