Escolar Documentos
Profissional Documentos
Cultura Documentos
El Modelo EntidadRelacin
Introduccin Modelo de Ejemplo Atributos y Llaves Cardinalidad
Conversin a Tablas
Para qu? Conversin de Entidades Conversin de Relaciones
SQL
CREATE TABLE SELECT JOIN Criterios de JOIN Los Otros Tres
lvaro Herrera Modelamiento Bsico de Datos con PostgreSQL
Modelo EntidadRelacin
I Modelo conceptual para diseo de bases de datos I Propsito: simplicar el diseo de BDs a partir de descripciones
textuales
lvaro Herrera
Modelo EntidadRelacin
I Modelo conceptual para diseo de bases de datos I Propsito: simplicar el diseo de BDs a partir de descripciones I Elementos del Modelo:
I Entidades I Atributos I Relaciones
textuales
lvaro Herrera
EntidadRelacin: Elementos
Entidad objeto que existe y que es distinguible de otros Puede ser concreta o abstracta Puede ser fuerte o dbil ej: persona, factura, huracn
lvaro Herrera
EntidadRelacin: Elementos
Entidad objeto que existe y que es distinguible de otros Puede ser concreta o abstracta Puede ser fuerte o dbil ej: persona, factura, huracn Atributo Caracterstica interesante de una entidad ej: nombre, fecha de nacimiento, capacidad
lvaro Herrera
EntidadRelacin: Elementos
Entidad objeto que existe y que es distinguible de otros Puede ser concreta o abstracta Puede ser fuerte o dbil ej: persona, factura, huracn Atributo Caracterstica interesante de una entidad ej: nombre, fecha de nacimiento, capacidad Relaciones Asociacin entre entidades ej: profesor trabaja para institucin, factura es entregada a cliente
lvaro Herrera
Se quiere modelar un sistema para manejar artculos cientcos. Un artculo est escrito por un autor, aunque a veces pueden ser varios. Obviamente una misma persona puede participar en ms de un artculo. Cada artculo tiene ttulo, resumen y contenido. Cada autor pertenece a alguna institucin.
lvaro Herrera
I Entidades
lvaro Herrera
I Entidades
I Relaciones
lvaro Herrera
lvaro Herrera
Atributos
I I I I
Caracterstica interesante sobre una entidad Nos interesa almacenarlo Valores pertenecen al dominio Pueden ser opcionales u obligatorios persona nombre rut fecha de nacimiento
lvaro Herrera
Llave Primaria
I Superllave: conjunto de atributos que permite identicar de
modo nico una entidad dentro de un conjunto Ejemplo: de personas, el nombre y el RUT
I puede haber ms de una superllave I Llaves candidatas: resultado de quitar atributos redundantes de
las superllaves
lvaro Herrera
Cardinalidad
I Cantidad de entidades en cada extremo de una relacin I No cuntas entidades hay en cada conjunto ... I Puede ser opcional ( 0) u obligatoria ( 1) I Puede ser uno a uno, uno a muchos, muchos a muchos
... sino cuntas entidades estn asociadas a travs de esa relacin
lvaro Herrera
lvaro Herrera
Conversin a Tablas
I Este modelo es til slo conceptualmente I La implementacin real es distinta I El modelo de tablas (como en SQL) no hace diferencia entre
entidades y relaciones
lvaro Herrera
I Cada conjunto de entidades fuerte ! una tabla; una columna I Cada conjunto de entidades dbil ! una tabla; una columna
por atributo; columnas para llave primaria de entidad fuerte de que depende por atributo
lvaro Herrera
fecha de nacimiento
lvaro Herrera
fecha de nacimiento
unitario
lvaro Herrera
lvaro Herrera
lvaro Herrera
conjuntos de entidades ! una tabla con columnas para las llaves primarias
lvaro Herrera
lvaro Herrera
En el colegio, cada alumno pertenece a exactamente un curso. Tenemos una tabla alumnos y una tabla cursos Representamos esto agregando una columna cursoId a la tabla de alumnos. o bien segn la regla siguiente
lvaro Herrera
Ejemplo 3: varios a varios En la universidad, cada alumno pertenece a varios cursos. Tenemos una tabla alumnos y una tabla cursos Representamos esto creando una tabla alumnoCurso con atributos alumnoId y cursoId
lvaro Herrera
Qu es SQL
lvaro Herrera
CREATE TABLE
Crea una tabla, inicialmente vaca.
CREATE TABLE autores ( autor_id SERIAL NOT NULL PRIMARY KEY, nombre TEXT NOT NULL, institucion_id INTEGER NOT NULL REFERENCES inst pais_id INTEGER NOT NULL, "fecha de nacimiento" DATE, CONSTRAINT fk (pais_id) REFERENCES paises (pais );
I I I I
Lista de columnas entre parntesis cada columna lleva un tipo, y opcionalmente restricciones se pueden agregar restricciones globales ojo con las maysculas
lvaro Herrera Modelamiento Bsico de Datos con PostgreSQL
SELECT
lvaro Herrera
SELECT WHERE
SELECT nombre, "fecha de nacimiento" FROM autores WHERE institucionId = 1;
lvaro Herrera
Qu es un JOIN
I Los JOIN permiten obtener registros de ms de una tabla I Los registros se mezclan usando un criterio de JOIN I Producto cartesiano (todos con todos) se llama CROSS JOIN
lvaro Herrera
lvaro Herrera
Criterios de JOIN
lvaro Herrera
SELECT * FROM autores, instituciones WHERE autores.institucion_id = instituciones.instit autor id 1 2 nombre Edgser Dijkstra Niklaus Wirth nacionalidad Dans Suizo fecha de nacimiento 1930-05-11 1934-02-15 institucion 2 1 institucion 2 1 nombre Universitt Leiden Xerox PARC
I La columna institucion aparece una sola vez I Las columnas no estn en el mismo orden que antes
lvaro Herrera
Criterios de JOIN ON
SELECT a.nombre AS autor, i.nombre AS institucion, nacionalidad FROM autores AS a JOIN instituciones AS i ON (a.institucion_id = i.institucion_id); autor Edgser Dijkstra Niklaus Wirth institucion Eindhoven University Xerox PARC nacionalidad Dans Suizo
I Se usan alias para las tablas en FROM I Se denen alias para las columnas
lvaro Herrera
INSERT
Permite agregar las a una tabla. INSERT INTO autores (institucion_id, nombre, nacionalidad, "fecha de nacimiento") VALUES (1, Edgser Dijkstra, Dans, 1930-05-11);
I La lista de columnas puede ser omitida I Cada columna puede ser omitida de la lista
lvaro Herrera Modelamiento Bsico de Datos con PostgreSQL
UPDATE
I Se puede modicar slo una tabla por vez I Columnas en SET no llevan calicacin I Clsula FROM (opcional) permite usar datos de otras tablas
lvaro Herrera
DELETE
lvaro Herrera