Diseño de Bases de Datos
Diseño de Bases de Datos
Diseño de Bases de Datos
BASES DE DATOS
Conceptos
Data => Información o conocimiento que tiene valor, costo
Data ítem => unidad de información que tiene valor en el mundo real
Data aggregate => colección de información relacionada (fecha)
Record => grupo de información relacionada (alumnos)
File => colección de registros de un solo tipo (elecciones, ventas)
Data base => colección computarizada de información interrelacionada almacenada
Sistema gestor de bases de datos (DBMS)
Data base administrador (DBA)
Base de Datos
Una base de datos es una recopilación de datos sistemática y
almacenada electrónicamente. Puede contener cualquier tipo de datos,
incluidos palabras, números, imágenes, vídeos y archivos. Puede usar un
software denominado sistema de administración de bases de datos
(DBMS) para almacenar, recuperar y editar datos.
Las bases de datos son conjuntos de datos organizados y relacionados
que se recogen y explotan desde un sistema de información donde las
empresas guardan toda la información de manera estandarizada y
estructurada
Principales utilidades de las bases de
datos
• Almacenar todo tipo de datos en un solo lugar de forma ordenada.
• Facilitar el intercambio de datos en una misma red o con redes externas.
• Evitar la duplicación de datos.
• Permite consultar los datos guardados rápidamente y de una forma sencilla.
• Los datos están guardados de forma segura gracias a las copias de seguridad.
• Están enlazadas con diferentes programas informáticos que permiten sacarle
todo el partido posible de una manera gráfica y útil para los empleados.
Tipos de bases de datos
Base de datos relacional: esta es la principal base de datos que utilizan la mayoría de empresas. La información se guarda
en tablas divididas en filas y columnas que puede almacenar carácteres, texto, números, imágenes, videos, etc. Las tablas
están relacionadas entre sí de manera óptima para que no exista redundancia de datos. Todos los elementos de estas se
pueden consultar, modificar, analizar y borrar
Base de datos distribuidas: la tecnología blockchain, conocida principalmente por las criptomonedas como el Bitcoin o el
Ethereum, es un gran ejemplo de base de datos distribuida. Los datos se almacenan de manera descentralizada y replicada en
varias ubicaciones físicas. Esto permite una mayor disponibilidad de los datos en caso de fallo de uno de los nodos.
Base de datos NOSQL: el SQL es el lenguaje que se utiliza en las bases de datos relacionales. Las NOSQL evitan usarlo, ya
que puede resultar lento cuando se manejan grandes volúmenes de datos. En lugar de utilizar diferentes columnas, los datos
se guardan en una sola con tal de ahorrar espacio y tiempo de procesamiento.
Base de datos orientada a objetos: en estas no se guardan datos sueltos sino que se encapsulan en objetos. Por ejemplo, si
queremos guardar la información de un cliente, este será un objeto con todas las propiedades que nos hagan falta: nombre,
apellidos, teléfono, etc. Los objetos se relacionan y agrupan entre ellos para proporcionarnos la información que necesitamos
Ventajas
Al poder buscar cualquier dato que necesitemos en un solo lugar, nuestro trabajo será mucho más
eficiente y productivo.
Gracias al ahorro de tiempo que nos proporcionan, podremos aumentar la competitividad de nuestra
empresa, ya que tendremos más tiempo para dedicarnos a mejorar las distintas líneas de negocio o
desarrollar nuevas ideas.
Varias personas pueden acceder a ella de manera simultánea e incluso en tiempo real, lo que supone
que compartir información sea realmente sencillo.
Al impedir la redundancia de datos no solo ahorramos en memoria de almacenamiento, sino que
también en tiempo gracias a la desaparición de errores e inconsistencias.
La seguridad de las bases de datos está más que demostrada. Nuestros datos estarán seguros gracias a la
protección que proporcionan las bases de datos. Además, incluso podemos encriptar nuestros datos para
una mayor seguridad.
La seguridad de las bases de datos también se torna evidente con el uso de las copias de seguridad.
Objetivos
Disponibilidad
Integridad
Privacidad
Gestión de control
Independencia de datos (física, lógica)
Ciclo de vida de bases de datos
Análisis y formulación de requerimientos
Relaciones naturales de los datos
Requerimientos de uso
Hardware, Software, OS
Rendimiento, restricciones de integridad
resultados
Ciclo de vida de bases de datos
Diseño lógico de bases de datos
Modelo entidad relación (ER)
Vista de integración de múltiples modelos ER
Modelo ER a tablas SQL
DDL Data definition language créate, alter
DML Data Manipulation language insert, delete, update, select,
DCL Data Control Language grant, revoke, deny
Normalización
1NF: Elimina duplicados y crea tablas separadas para grupos de datos relacionados.
2NF: Elimina subgrupos de datos en múltiples filas de una tabla y crea tablas nuevas, con relaciones entre ellas
3NF: Elimina columnas que no dependen de la clave principal.
4NF: Desaparecen todas las dependencias entre múltiples valores.
Ciclo de vida de bases de datos
Diseño físico de base de datos
Métodos de acceso
Agrupamiento clustering
Distribución
fragmentación
Localización
Replicación
Modelos de Datos
1. Modelos
de datos
conceptuales
2. Modelos de datos físicos
3. Modelos de datos lógicos
Modelos de datos conceptuales
Un modelo conceptual de datos identifica las
relaciones de más alto nivel entre las diferentes
entidades.
Las características del modelo conceptual de
datos incluyen:
• Incluye las entidades importantes y las
relaciones entre ellas.
• No se especifica ningún atributo.
• No se especifica ninguna clave principal.
Modelos de datos lógicos
Un modelo de datos lógicos describe los datos con el mayor detalle posible,
independientemente de cómo se implementarán físicamente en la base de datos.
Las características de un modelo de datos lógicos incluyen:
• Incluye todas las entidades y relaciones entre ellos.
• Todos los atributos para cada entidad están especificados.
• La clave principal para cada entidad está especificada.
• Se especifican las claves externas (claves que identifican la relación entre
diferentes entidades).
• La normalización ocurre en este nivel.
Modelos de datos lógicos
Los pasos para diseñar el modelo de datos
lógicos son los siguientes:
• Especifique claves primarias para todas las
entidades.
• Encuentra las relaciones entre diferentes
entidades.
• Encuentra todos los atributos para cada entidad.
• Resuelva las relaciones de muchos a muchos.
• Normalización.
Modelos de datos físicos
El modelo de datos físicos representa cómo se construirá el modelo en
la base de datos.
Un modelo de base de datos física muestra todas las estructuras de
tabla, incluidos el nombre de columna, el tipo de datos de columna, las
restricciones de columna, la clave principal, la clave externa y las
relaciones entre las tablas.
Modelos de datos físicos
Un modelo de base de datos física muestra todas las estructuras de tabla,
incluidos el nombre de columna, el tipo de datos de columna, las
restricciones de columna, la clave principal, la clave externa y las
relaciones entre las tablas.
Las características de un modelo de datos físicos incluyen:
• Especificación de todas las tablas y columnas.
• Las claves externas se usan para identificar relaciones entre tablas.
• La desnormalización puede ocurrir según los requisitos del usuario.
Modelos de datos físicos
Los pasos básicos para el diseño del modelo de datos físicos son los
siguientes:
• Convertir entidades en tablas.
• Convertir relaciones en claves externas.
• Convertir atributos en columnas.
• Modificar el modelo de datos físicos en función de las restricciones /
requisitos físicos.
Requerimientos de información
Diseño Lógico
Transformación de modelo ER a tablas
SQL
Normalización
Diseño físico
Distribución de Datos
Practica
Distribuidora “Pepito” requiere de una solución informática que le
permita registrar los procesos de su actividad diaria las cuales son:
Registrar las facturas de venta, fecha, hora, neto, impuestos, total, datos del
cliente, datos de los productos vendidos, forma de pago
Identificamos las entidades principales
Creamos las relaciones entre entidades
Modelo Entidad Relación
CREATE USER C##HR IDENTIFIED BY pws;
TRUNCATE TABLE
TRUNCATE TABLE table_name;
TRUNCATE TABLE Shippers;
ALTER TABLE – ADD Column
ALTER TABLE table_name
ADD column_name datatype;
Age int
); ALTER TABLE Persons
MODIFY Age int NOT NULL; oracle >= 11
SQL UNIQUE Constraint
The UNIQUE constraint ensures that all values in a column are different.
Oracle/Sql Server/ MS access MySql
CREATE TABLE Persons ( CREATE TABLE Persons (
ID int NOT NULL,
ID int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
LastName varchar(255) NOT NULL, FirstName varchar(255),
FirstName varchar(255), Age int,
Age int UNIQUE () ID
);
);
MySQL/Sql Server/ Oracle/MS access
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT UC_Person UNIQUE
(ID,LastName)
);
MySQL
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CHECK (Age>=18)
);
SQL CHECK Constraint
SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int CHECK (Age>=18)
);
SQL CHECK Constraint
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255),
CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes')
);
SQL CHECK on ALTER
TABLE
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (Age>=18);
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND
City='Sandnes');
DROP a CHECK Constraint
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
MySQL
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;
SQL DEFAULT Constraint
My SQL / SQL Server / Oracle / MS Access
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255) DEFAULT 'Sandnes'
);
SQL DEFAULT Constraint
The DEFAULT constraint can also be used to insert system values, by using functions like GETDATE():
Permite duplicados
CREATE INDEX index_name
ON table_name (column1, column2, ...);
No permite duplicados
CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...);
Ejemplo
CREATE INDEX idx_pname
ON Persons (LastName, FirstName);
DROP INDEX Statement
MS Access:
DROP INDEX index_name ON table_name;
SQL Server:
DROP INDEX table_name.index_name;
Oracle:
DROP INDEX index_name;
MySQL:
ALTER TABLE table_name
DROP INDEX index_name;
SQL AUTO INCREMENT Field
MySQL
CREATE TABLE Persons (
Personid int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (Personid)
);
ALTER TABLE Persons AUTO_INCREMENT=100;
SQL AUTO INCREMENT Field
Oracle
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;
INSERT INTO Persons (Personid,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen');
The SQL SELECT Statement
Seleccionar datos de una base de datos
= Igual
> Mayor que
< Menor que
>= Mayor o Igual que
<= Menor o igual que
<> No es igual . Note: In some versions of SQL this operator may be written as !=
SELECT column_names
FROM table_name
WHERE column_name IS NULL;
SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;
The UPDATE statement is used to modify
the existing records in a table.
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
UPDATE Customers
SET ContactName = 'Alfred Schmidt', City= 'Frankfurt'
WHERE CustomerID = 1;
Be careful when updating records. If you omit
the WHERE clause, ALL records will be updated!
The DELETE statement is used to
delete existing records in a table.
DELETE FROM table_name WHERE condition;
DELETE FROM Customers WHERE CustomerName='Alfreds
Futterkiste’;
DELETE FROM table_name;