Introducción a los Conceptos de
la Base de Datos Relacional
Abdón Carrera R.
Imagen del ciclo DB
• aquí
El modelo de datos se transformará en un
diseño de base de datos relacional.
Esto significa que nuestras entidades,
atributos, relaciones e identificadores únicos
se convertirán en objetos en una base de
datos relacional.
Ilustración de Base de Datos Relacional
•Una base de datos relacional es una base de
datos que el usuario ve como una recopilación
de tablas bidimensionales, que contiene
cada una filas y columnas.
Tabla de datos de los empleados
Tablas Relacionales
Una tabla es una estructura simple en la que se
organizan y se almacena datos.
Columnas
•Cada columna se utiliza para almacenar un tipo
específico de valor, como, por ejemplo, el
número de empleado, el apellido y el nombre
Filas
•cada fila describe una incidencia de un
empleado.
Lenguaje para acceder a los datos
• El lenguaje de consulta estructurado (SQL) nos permite acceder
a datos de bases de datos relacionales de forma eficaz.
Clave Primaria
• La clave primaria (PK)
es una columna o juego
de columnas que
identifica de forma
única cada fila de
una tabla
Clave Secundaria
• Una clave ajena
(FK) es una
columna o
combinación de
columnas de
una tabla que
contiene
valores que
coinciden con el
valor de clave
primaria de
otra tabla
Integridad de la Columna
• Una columna
solo debe
contener valores
que sean
consistentes
con el formato
de datos definido
de la columna
Restricciones(Integridad de Datos)
• Definen el estado relacionalmente correcto de una base de
datos.
• Las reglas de integridad de datos garantizan que los usuarios
puedan realizar solo las operaciones que dejan la base de
datos con un estado correcto y consistente.
Convirtiendo todo a tablas relacionales…
Nomenclatura del nombre de una tabla
• No dejar espacios en blanco
• Se pueden usar abreviaciones
• No usar números ni caracteres especiales
Introducción a SQL
Abdón Carrera R.
SQL
•Structured Query Language
SQL
•Un lenguaje usado en base de datos relacionales
•Basado en Algebra relacional
•supports CRUD
• – Create, Select, Update, Delete
Donde usamos SQL
• En la implementación del modelo físico
• Implementamos tablas usando los comandos de SQL
En los laboratorios…
•Usuario: root
•Password: admin
DDL (data definition language)
Definir y Setup (preparar) la base de datos
•CREATE, ALTER, DROP
•TRUNCATE, RENAME
DML (Data manipulation language)
•Para mantener y usar la base de datos
•SELECT, INSERT, DELETE, UPDATE
•– MySQL tiene muchos mas!
DCL (Data control language)
•Para controlar el acceso a la base de datos
•GRANT, REVOKE
Crear tabla
Create table - Estructura
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
....
);
Ejemplo
CREATE TABLE Persona(
ID_persona int,
Apellido varchar(255),
Nombre varchar(255),
Direccion varchar(255),
Ciudad varchar(255)
);
Create table con RESTRICCIONES
• NOT NULL - Ensures that a column cannot have a NULL value
• UNIQUE - Ensures that all values in a column are different
• PRIMARY KEY - A combination of a NOT NULL and UNIQUE. Uniquely
identifies each row in a table
• FOREIGN KEY - Uniquely identifies a row/record in another table
• CHECK - Ensures that all values in a column satisfies a specific condition
• DEFAULT - Sets a default value for a column when no value is specified
• INDEX - Used to create and retrieve data from the database very quickly
Create table con RESTRICCIONES
CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
column3 datatype constraint,
....
);
Create table con RESTRICCIONES
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255)
);
Create table con PRIMARY KEY.
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);
Recordar!!!
•Una PK tiene valores UNICOS y NO posee
NULL
•Una tabla tiene UN SOLO PK
SQL AUTO INCREMENT
• Hay veces que deseamos que los ID o Codigos se
generen automáticamente de forma secuencial (auto
incremento)
SQL AUTO INCREMENT
CREATE TABLE Persons (
Personid int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (Personid)
);
Eliminar Tabla simple
drop table Nombre de la tabla
Crear tabla que contiene un FK
Crear tabla que contiene un FK
On update cascade ?
•Significa si el valor de la clave primaria
cambia, este valor se ve reflejado en las
claves foráneas.
On restrict delete
• Significa, cualquier intento de eliminar una clave
primary que se encuentre enlazada como clave
foránea en otra tabla. VA A CAUSAR ERROR
On restrict delete
CUIDADO AL ELIMINAR UNA
TABLA QUE CONTIENE FK
EJEMPLO
Insertar datos
Diferencia entre “ “ y NULL ????
Default – se usa cuando el atributo es
autoincrement
•A continuación el típico error al
insertar datos con FK
Insertar datos con FK
Select statement
sql
Select
Selecciona datos de una tabla basado en
distintos criterios
Select * from TABLA
El * en sql significa TODOS.
Esta sentencia muestra TODOS los registros
dentro de una TABLA
Seleccionar atributos especificos
Select Atributo1, Atributo2…. From Tabla
WHERE
Select * from Tabla Where Criterio/Condicion
Select * from Tabla Where Criterio/Condicion
Ejemplos
Select placa from Vehiculo
Where marca=“hyundai”
Ejemplos
Select * from Estudiante
Where promedio >= 7
Combinar Where con AND / OR / NOT
NOT
Ejemplos
Select precio from Producto
Where NOT
nombre=“tortolines”
Ejemplo
Select nombre_lugar, ubicación from
turismo
where precio < 50 AND
ciudad = “Otavalo”
Ejemplo
Select * from Cliente where ciudad=“Guayaquil”
AND (operadora=“Movistar” OR operadora=“CNT”)
Update
Update
CUIDADO!!!!, si no colocan WHERE…
TODOS LOS REGISTROS CAMBIAN DE VALOR
delete
DELETE FROM table_name WHERE condition;
CUIDADO con DELETE