2021 Curso de Python Clase 3 Modelos de

  • Slides: 47
Download presentation
2021 Curso de Python – Clase 3 Modelos de Bases de Datos

2021 Curso de Python – Clase 3 Modelos de Bases de Datos

Problemas con Listas: Redundancia Por ejemplo, una lista de un proyecto, puede incluir información

Problemas con Listas: Redundancia Por ejemplo, una lista de un proyecto, puede incluir información sobre el gerente del proyecto como, el nombre, su ID y su número telefónico. Si una persona en particular está a cargo de 10 proyectos, su información debería aparecer en una lista 10 veces. Encargado de Proyecto ID Número de Teléfono Juan 6 +569 56452 XXX Juan 6 +569 56452 XXX Juan 6 +569 56452 XXX

Problemas con Listas: Temas Múltiples Una lista puede tener información sobre el encargado de

Problemas con Listas: Temas Múltiples Una lista puede tener información sobre el encargado de un proyecto, su nombre, ID, número de teléfono e información sobre los proyectos como, nombre del proyecto, ID del proyecto, fecha de inicio y presupuesto. Toda esta información en una misma fila. Encargado P. ID N° de Teléfono ID P. Nombre P. Presupuesto Juan 6 +569 56452 XXX 0001 P 1 10 MM CLP Juan 6 +569 56452 XXX 0002 P 2 108 MM CLP Juan 6 +569 56452 XXX 0003 P 3 200 MM CLP Juan 6 +569 56452 XXX 0004 P 4 150 MM CLP Juan 6 +569 56452 XXX 0005 P 5 4 MM CLP Juan 6 +569 56452 XXX 0006 P 6 10 MM CLP Juan 6 +569 56452 XXX 0007 P 7 50 MM CLP Juan 6 +569 56452 XXX 0008 P 8 500 MM CLP Juan 6 +569 56452 XXX 0009 P 9 3 MM CLP Juan 6 +569 56452 XXX 0010 P 10 1 MM CLP

Problemas con Listas Los temas ya mencionados generan problemas de modificación, como: • Problemas

Problemas con Listas Los temas ya mencionados generan problemas de modificación, como: • Problemas de eliminación. • Problemas de actualización. • Problemas de inserción.

Bases de Datos Relacionales • Las bases de datos relacionales están diseñadas para solucionar

Bases de Datos Relacionales • Las bases de datos relacionales están diseñadas para solucionar problemas complejos que surgen en muchos tipos de negocios. • Una base de datos relacional, almacena información en tablas. Cada concepto es almacenado en su propia tabla. • En esencia, una base de datos relacional, es la representación de una lista separada en varias partes, que representen un concepto en particular. • Por ejemplo, una lista de proyectos, se puede dividir en una tabla de clientes, una tabla de proyectos y una tabla de encargados del proyecto.

Llaves • Una llave es una o más columnas de una relación cuyo valor

Llaves • Una llave es una o más columnas de una relación cuyo valor es usado para identificar una fila. • Dentro de las llaves existentes, están las llaves únicas y las llaves no-únicas. • Las llaves únicas tienen un solo valor para cada fila. • Los datos pueden estar compartidos con otras filas.

Llave compuesta • Una llave compuesta es una llave que es compuesta por dos

Llave compuesta • Una llave compuesta es una llave que es compuesta por dos o más atributos. • Para que una llave sea única, a menudo es una llave compuesta. • Una aplicación de esto es por ejemplo, la combinación del número de vuelo y la fecha de vuelo en las aerolíneas, logrando así una llave única.

Llaves Primarias • Una llave primaria, es una llave elegida para ser la llave

Llaves Primarias • Una llave primaria, es una llave elegida para ser la llave principal de una relación. • Si se conoce el valor de la llave primaria, se puede identificar de forma inequívoca una sola fila dentro de la tabla.

Llaves Foráneas • Se necesita implementar una llave foránea para establecer una relación. •

Llaves Foráneas • Se necesita implementar una llave foránea para establecer una relación. • Una llave foránea es la llave primaria de una tabla que es ubicada dentro de otra tabla. • La llave es llamada foránea dentro de la tabla que recibe la llave.

Bases de Datos Relacionales • Para relacionar las tablas de la base de datos

Bases de Datos Relacionales • Para relacionar las tablas de la base de datos relacional, se usan los pares de valores. Encargado P. ID N° de Teléfono ID P. Nombre P. Juan 6 +569 56452 XXX 0001 P 1 Felipe 5 +569 63154 XXX 0002 P 2 0003 P 3 0004 P 4 0005 P 5 ID P. Presupuesto 0001 10 MM CLP 0002 108 MM CLP 0003 200 MM CLP 0004 150 MM CLP 0005 4 MM CLP

Bases de Datos Relacionales • Para relacionar las tablas de la base de datos

Bases de Datos Relacionales • Para relacionar las tablas de la base de datos relacional, se usan los pares de valores. ID Presupuesto 6 10 MM CLP 6 108 MM CLP 5 200 MM CLP 6 150 MM CLP 5 4 MM CLP 5 10 MM CLP 5 50 MM CLP 6 500 MM CLP 5 3 MM CLP 6 1 MM CLP

Sistema de Bases de Datos • Los componentes de un sistema de bases de

Sistema de Bases de Datos • Los componentes de un sistema de bases de datos son: Aplicación de base de datos Sistema gestor de bases de datos (DBMS) Base de Datos

Usuarios • Usa una aplicación de base de datos para mantener el intercambio de

Usuarios • Usa una aplicación de base de datos para mantener el intercambio de información. • Puede utilizar diferentes interfaces de usuarios para entrar, leer, eliminar y consultar datos. • Produce reportes.

Base de Datos • Una base de datos es una colección auto descriptiva de

Base de Datos • Una base de datos es una colección auto descriptiva de registros relacionados entre sí. • Las bases de datos por si mismas contienen la definición en su estructura. • Metadatos, son datos que describen la estructura de los datos en la base de datos. • Las tablas en una base de datos relacional están relacionadas unas con otras entre sí de alguna manera.

Gestor de Bases de Datos (DBMS) • Un gestor de bases de datos, sirve

Gestor de Bases de Datos (DBMS) • Un gestor de bases de datos, sirve como un intermediario entre las aplicaciones y las bases de datos. • Gestionan y controlan las actividades de la base de datos. • Crean, procesan y administran la base de datos que controlan

Aplicaciones de Bases de Datos • Una aplicación de bases de datos es un

Aplicaciones de Bases de Datos • Una aplicación de bases de datos es un grupo de uno o más programas o sitios web que sirven como un intermediario entre el usuario y el gestor de bases de datos. • Muchas veces se pueden encontrar gestores de bases de datos que cumplan dos funciones. Aplicación de base de datos Sistema gestor de bases de datos (DBMS) Base de Datos

 • Algunos gestores de bases de datos en el mercado son: • SQL

• Algunos gestores de bases de datos en el mercado son: • SQL Server • Oracle • My. SQL • DB 2 – IBM • SQLite

Gestores de Bases de Datos • Algunos gestores de bases de datos en el

Gestores de Bases de Datos • Algunos gestores de bases de datos en el mercado son: • SQL Server • Oracle • My. SQL • DB 2 – IBM • SQLite

Structured Query Lenguage (SQL) • Originalmente desarrollado por IBM en los años 70 s.

Structured Query Lenguage (SQL) • Originalmente desarrollado por IBM en los años 70 s. Diseñado en base al modelo relacional de Edgar Codd. • Es un modelo basado en álgebra y cálculo relacional que está estandarizado por ANSI / ISO. • SQL, es un sub lenguaje de datos, que tiene 3 componentes principales: • Lenguaje de definición de datos (Data Definition Lenguage, DDL) D • Lenguaje de manipulación de datos (Data Manipulation Lenguage, DML) CRU • Lenguaje de control de datos (Data Control Lenguage, DCL)

Sentencias SQL • CREATE: Para crear objetos en la base de datos. • ALTER:

Sentencias SQL • CREATE: Para crear objetos en la base de datos. • ALTER: Modifica la estructura y/o características de un objeto existente en la base de datos. • DROP: Elimina los objetos existentes en la base de datos.

CREATE • Para crear una tabla en la base de datos, se utiliza la

CREATE • Para crear una tabla en la base de datos, se utiliza la declaración CREATE TABLE: CREATE TABLE Empleados ( emp. Id Integer emp. Name Char(25) ); NOT NULL,

CREATE con CONSTRAINT 1 • Creando una tabla en la base de datos con

CREATE con CONSTRAINT 1 • Creando una tabla en la base de datos con una llave primaria usando la restricción PRIMARY KEY • Declaramos la tabla con CREATE TABLE en SQL. • La clave CONSTRAINT en SQL. CREATE TABLE Empleado ( emp. Id Integer NOT NULL, Habilidad. ID Integer NOT NULL, CONSTRAINT emp. Pk PRIMARY KEY(emp. Id) );

CREATE con CONSTRAINT 2 • Creando una tabla en la base de datos con

CREATE con CONSTRAINT 2 • Creando una tabla en la base de datos con una llave primaria usando la restricción PRIMARY KEY • Declaramos la tabla con CREATE TABLE en SQL. • La clave CONSTRAINT en SQL. CREATE TABLE Habilidad. Empleado ( emp. Id Integer Habilidad. ID Integer nivel. Habilidad Integer CONSTRAINT emp. Habilidad. Pk ); NOT NULL, PRIMARY KEY(emp. Id, Habilidad. ID)

CREATE con CONSTRAINT 3 • Creando una tabla en lavase de datos con una

CREATE con CONSTRAINT 3 • Creando una tabla en lavase de datos con una llave primaria usando las restricciones PRIMARY KEY y FOREING KEY. • Declaramos la tabla con CREATE TABLE en SQL. • La clave CONSTRAINT en SQL. CREATE TABLE Habilidad. Empleado ( emp. Id Integer Habilidad. ID Integer nivel. Habilidad Integer CONSTRAINT emp. Habilidad. Pk CONSTRAINT emp. Fk CONSTRAINT Habilidad. Fk ); NOT NULL, PRIMARY KEY(emp. Id, Habilidad. ID) FOREIGN KEY(emp. Id) REFERENCES Empleado (emp. Id), FOREIGN KEY(Habilidad. ID) REFERENCES Habilidad(Habilidad. Id)

DDL: CREATE con CONSTRAINT 3 emp. ID emp. Nombre 1 Leonardo 2 Donatello 3

DDL: CREATE con CONSTRAINT 3 emp. ID emp. Nombre 1 Leonardo 2 Donatello 3 Michelangelo emp. Id Habilidad. Id nivel. Habilidad 1 101 5 1 102 3 2 101 4 2 103 5 3 102 3 3 104 5 Habilidad. Id Nombre. Habilidad 101 Dormir 102 Pelear 103 Reír 104 Boxeo

CREATE con CONSTRAINT 4 • Creando una tabla en lavase de datos con una

CREATE con CONSTRAINT 4 • Creando una tabla en lavase de datos con una llave primaria usando las restricciones PRIMARY KEY y FOREING KEY. • Declaramos la tabla con CREATE TABLE en SQL. • La clave CONSTRAINT en SQL. • ON UPDATE CASCADE y ON DELETE CASCADE. CREATE TABLE Habilidad. Empleado ( emp. Id Integer NOT NULL, Habilidad. ID Integer NOT NULL, nivel. Habilidad Integer NULL, CONSTRAINT emp. Habilidad. Pk PRIMARY KEY(emp. Id, Habilidad. ID) CONSTRAINT emp. Fk FOREIGN KEY(emp. Id) REFERENCES Empleado (emp. Id) ON DELETE CASCADE, CONSTRAINT Habilidad. Fk FOREIGN KEY(Habilidad. ID) REFERENCES Habilidad(Habilidad. Id) ON UPDATE CASCADE );

DDL: CREATE con CONSTRAINT 3 emp. ID emp. Nombre 1 Leonardo 2 Donatello 3

DDL: CREATE con CONSTRAINT 3 emp. ID emp. Nombre 1 Leonardo 2 Donatello 3 Michelangelo emp. Id Habilidad. Id nivel. Habilidad 1 101 5 1 102 3 2 101 4 2 103 5 3 102 3 3 104 5 Habilidad. Id Nombre. Habilidad 101 Dormir 102 Pelear 103 Reír 104 Boxeo

Restricción Llave Primaria ALTER 1 • Agrega una llave primaria a una tabla existente:

Restricción Llave Primaria ALTER 1 • Agrega una llave primaria a una tabla existente: • Usar la declaración ALTER TABLE Empleado ADD CONSTRAIN emp. Pk PRIMARY KEY(emp. Id);

Restricción Llave Primaria ALTER 2 • Agrega una llave primaria a una tabla existente:

Restricción Llave Primaria ALTER 2 • Agrega una llave primaria a una tabla existente: • Usar la declaración ALTER TABLE Habilidad. Empleado ADD CONSTRAIN emp. Habilidad. Pk PRIMARY KEY(emp. Id, Habilidad. Id);

Restricción Llave Primaria ALTER 3 • Agrega una llave foranea a una tabla existente:

Restricción Llave Primaria ALTER 3 • Agrega una llave foranea a una tabla existente: • Usar la declaración ALTER TABLE Empleado ADD CONSTRAIN emp. Fk FORAIGN KEY(dept. Id) REFERENCES Departamento(dept. Id);

Modificar Datos • Para modificar datos existen las siguientes sentencias: • INSERT INTO →

Modificar Datos • Para modificar datos existen las siguientes sentencias: • INSERT INTO → Agrega una nueva fila a la tabla. • UPDATE → Actualiza las filas en una tabla que cumpla un criterio específico. • DELETE FROM → Elimina las filas de una tabla que cumplan un criterio específico.

Agregar Datos: INSERT INTO • Para agregar valores a una base de datos se

Agregar Datos: INSERT INTO • Para agregar valores a una base de datos se utiliza la declaración INSERT INTO: INSERT INTO Empleado (emp. Id, Codigo. Sueldo, Apellido) VALUES (55, 6, ’Adams’);

Cambiar Datos: UPDATE • Para cambiar los valores de los datos existentes de una

Cambiar Datos: UPDATE • Para cambiar los valores de los datos existentes de una fila (o un grupo de filas) se usa la declaración UPDATE SET WHERE Empleado pone = ‘+569 7532 XXXX’ emp. Id = 31; UPDATE SET Empleado dept. Id = 2;

Eliminar Datos: DELETE • Para eliminar los valores de los datos existentes de una

Eliminar Datos: DELETE • Para eliminar los valores de los datos existentes de una fila (o un grupo de filas) se usa la declaración DELETE FROM WHERE Empleado emp. Id = 31; DELETE FROM Empleado

Consultas: SELECT • Uno de las declaraciones más útiles es SELECT. • Entrega información

Consultas: SELECT • Uno de las declaraciones más útiles es SELECT. • Entrega información desde la base de datos que cumpla con ciertos criterios específicos. SELECT FROM WHERE emp. Nombre Empleado emp. Id= 31; SELECT FROM emp. Nombre Empleado

Queries • Una consulta, solicita información de una o más relaciones y crea temporalmente

Queries • Una consulta, solicita información de una o más relaciones y crea temporalmente una nueva relación. • Una consulta permite: • Crear una nueva relación. • Entregar información dentro de otra consulta (subquery)

Modelo de Datos (E-R) • Es el modelo más usado hoy en día para

Modelo de Datos (E-R) • Es el modelo más usado hoy en día para representar de forma esquemática los modelos relacionales. • Este modelo consiste en definir: entidades, atributos y relaciones.

Entidades • Una entidad de clase, es una descripción abstracta de la estructura y

Entidades • Una entidad de clase, es una descripción abstracta de la estructura y formato de un concepto a modelar. • Una instancia de entidad es una ocurrencia específica de una entidad de clase.

Entidad de Clase e Instancia de Entidad Artículo Numero. Item Descripción Costo Cantidad. Disponible

Entidad de Clase e Instancia de Entidad Artículo Numero. Item Descripción Costo Cantidad. Disponible 1000 Caja de 100 Clavos $ 3. 990 427 1001 Martillo $29. 990 20 Entidad de Clase Dos Instancias de Entidad

Atributos • Las entidades tienen atributos que en conjunto describen la misma. • Cada

Atributos • Las entidades tienen atributos que en conjunto describen la misma. • Cada atributo tiene un tipo de dato y otra propiedad. • Ejemplo: • Nombre del proyecto • Fecha de Inicio • Tipo de Proyecto • Descripción del Proyecto

Relaciones • Las entidades pueden estar conectadas unas con otras, mediante una relación. •

Relaciones • Las entidades pueden estar conectadas unas con otras, mediante una relación. • El grado de relación define el número de entidad de clases que participan en la relación. Persona Matrimonio Empleado Médico Estacionamiento Prescripción Paciente Medicamento

Cardinalidad • Las relaciones entre entidades tienen una Cardinalidad, que representa el tipo de

Cardinalidad • Las relaciones entre entidades tienen una Cardinalidad, que representa el tipo de relación que existe entre entidades de clases. • Existen criterios de máxima cardinalidad y mínima cardinalidad. • ¿Cuántos empleados puede tener un estacionamiento? • ¿Cuántos estacionamientos puede tener un empleado? Empleado Estacionamiento

Entidades fuertes y débiles • Una entidad débil, es una entidad que su instancia

Entidades fuertes y débiles • Una entidad débil, es una entidad que su instancia no puede existir en la base de datos sin la existencia de una instancia de otra entidad. • Cualquier entidad que no es una entidad débil, se denomina entidad fuerte.

ID - Dependiente • Una entidad débil ID – Dependiente, es una entidad débil

ID - Dependiente • Una entidad débil ID – Dependiente, es una entidad débil que no puede existir sin su entidad pariente. • Estos requerimientos son reforzados usando una llave compuesta para una entidad débil. • La primera parte de la llave es la llave para la entidad fuerte. • La segunda parte de la llave es una llave para la entidad débil.

ID - Dependiente

ID - Dependiente

Ejemplo • En una librería talquina, desean implementar un sistema de registro de transacciones

Ejemplo • En una librería talquina, desean implementar un sistema de registro de transacciones de libros. • ¿Cuáles serían las entidades a considerar? • ¿Qué atributos tendría cada una? • ¿Qué relaciones tendrían estas entidades?

Muchas gracias! crdpmaule. cl descubreelmaule. cl marketmaule. cl

Muchas gracias! crdpmaule. cl descubreelmaule. cl marketmaule. cl