DBD 1 Introducción y 2.1 Modelo ER

Clase 1 y 2.1
Una base de datos(BD) es una colección de datos (que son hechos conocidos que tienen un resultado implícito) relacionados. Un conjunto de datos no relacionados no es una BD. Esta colección de datos esta en forma de archivos diseñados de tal manera para que sirvan a múltiples aplicaciones.
Presenta ciertas características:
· Representa algunos aspectos del mundo real.
· Es una colección coherente de datos con algún valor intrínseco, la relación entre estos datos es lógica (no es un conjunto aleatorio de datos).
· Se diseña, construye y completa con un propósito especifico y para ser usado por usuarios de cierta manera
· Está sustentado físicamente por archivos en memora no volátil.
Para diseñar una BD hay que definir los tipos de datos (int, str, real, char, etc), las estructuras (tablas) y restricciones (toda persona debe tener un nombre y apellido, largo y ancho no pueden ser números negativos, etc).
Para construir una BD hay que almacenar datos y estructuras concretas en un dispositivo de almacenamiento no volátil que lo gestiona un DBMS.
Para manipular una BD se realizan altas, bajas (no recomendable, poco común) y modificaciones y para extraer información se realizan consultas.
Un Data Base Management System(DBMS) es una colección de programas que permiten la construcción, definición, mantenimiento y actualización de una BD (no se utiliza para diseñar). Se usa para evitar la redundancia e inconsistencia de datos, garantizar que se pueda usar en todo momento, evitar problemas con la concurrencia, restringir acceso no autorizado, garantizar el almacenamiento persistente y la integridad de datos y generar backups. Se compone de dos tipos de lenguajes de consultas estructurados (SQL por Structured query language):
DDL (data definition language) es un conjunto de instrucciones que permite crear una BD ya que se utiliza para especificar el esquema de la misma. Se utiliza cuando se crea una BD y cuando se modifica su estructura.
DML (data manipulation language) es un conjunto de instrucciones que permite realizar altas, bajas, modificaciones y consultas. Dentro de este tipo de lenguaje hay dos tipos:
· Procedimentales: el usuario debe definir qué datos se muestran y cómo se accede a esos datos
· No-Procedimentales: el usuario debe definir qué datos se muestran sin especificar cómo se accede a esos datos
Actores involucrados en una BD:
· El analista de sistemas que determina los requerimientos y genera información que va a ser usada por el diseñador.
· El diseñador de BD que define la estructura que va a tomar la BD con la información que le da el analista y esa estructura se la da a los programadores.
· Los programadores que programan la BD con la estructura definida por el diseñador.
· El administrador de BD que se encarga de administrar el recurso en si. Esto puede conllevar programar backups, autorizar accesos, rehashear y es el responsable de problemas de seguridad y respuestas lentas.
· Los usuarios que son los que utilizan la BD. Puede ser que dentro de esta categoría haya varias sub categorías (ej: usuario alumno, profesor, no-docente)
Modelado de una BD
Para realizar un buen modelo para la base de datos, es necesario organizarlo en distintos niveles de abstracción. Estos son:
· En las vistas se ven solo los datos que le importa a un tipo de usuario. Hay muchas vistas para una BD.
· Modelo conceptual determina que datos se guardan y como se relacionan entre sí.
· Modelo físico muestra cómo se amacena realmente la información.
A la hora de modelar, se necesita elegir con qué modelo se va a crear la BD
· Modelo físico de datos: no sirve, viejo anticuado, siguiente…
· Modelo basado en registros (conceptual, físico): construye la BD sobre una computadora y se estructura en registros fijos. Tiene varios subtipos: redes dejo de existir en los 60, el jerárquico en los 80, el relaciona (aun siendo anticuado) es todavía utilizado y el OO es el más nuevo (pero no es el más arraigado por temas de performance).
· Modelo basado en registros (conceptual): es un modelo que facilita la presentación de la información a los usuarios al apuntar a un nivel de visión/conceptual, utilizando una estructura variable. También tiene subtipos: Entidad-Relación (el que usamos) es un poco anticuado en comparación con el OO pero se sigue utilizando ampliamente ya que sirve muy bien para especificar bases de datos y se comporta bien.
Modelo de diseño de datos
Sirve para hacer más fácil la comprensión de los datos a organizar y se utiliza ya que se puede ver la perspectiva de cada actor relacionado, ayuda a entender la naturaleza y la necesidad de cada dato y como cada actor utiliza cada dato. Importante destacar que no es lo mismo que el modelado de la BD. A la hora de construir estos modelos hay que separarlo en tres partes (para la práctica de esta catedra, las dos primeras son entidad-relación y la ultima es relacional):
· Conceptual: es un modelo superficial y genérico que se deriva de los requerimientos y exigencias del cliente. No se tiene que especificar qué modelo se utiliza ni que DBMS. Se necesita un contacto constante con el mismo a la hora de realizarlo. Se podría imaginar cómo hacer una maqueta de una casa.
· Lógico: es un modelo más detallado si se compara con el conceptual. Se tiene que especificar qué modelo se utiliza, pero no necesariamente de que DBMS. Se podría imaginar cómo hacer los planos de la casa.
· Físico: se genera utilizando el modelo lógico y con este se va a realizar la BD en el DBMS. Se debe elegir una DBMS que funcione con el modelo seleccionado en el lógico. Se podría imaginar cómo el maestro de obras construyendo la casa con el plano.
Modelo entidad-Relación
Fue propuesto por Chen en 1976 (nosotros vemos una variante de este modelo), cuando todavía se hablaba del modelo relacional y estaba en la cabeza de algunos diseñadores sin todavía estar definido. Para ese entonces, la forma en la que se diseñaban la base de datos era manual, y eso traía problemas tales como la repetición de datos y no había ningún tipo de estructura para la información (aunque era muy eficiente usarla, aun siendo puramente dado por la fuerza bruta). Fue ampliado por Codd en 1979 y fue un estándar en el 88. Se basa en ver al mundo real como un conjunto de objetos llamados entidades y las relaciones entre estos objetos. Este modelo permite visualizar el nivel conceptual y el lógico.
Sus objetivos son:
· Representar la información con un alto nivel de abstracción sin irnos a los detalles de cómo se resuelve el problema en el DBMS.
· Captar las necesidades del cliente (saber que nos dice que necesita, saber que necesita y como debe interactuar lo que necesita).
· Mejorar la interacción entre el cliente y el diseñador, haciendo que sea más fácil ver cuál es el problema real y como se podría plantear en el sistema.
Sus características son:
· Expresividad: tener todos los medios necesarios para describir un problema (en la catedra se usan 9 constructores).
· Formalidad: cada elemento tiene una representación precisa y bien definida (ej: rectángulo es entidad y rombo es relación).
· Minimalidad: cada elemento solo tiene una forma de entenderse (ej: rectángulo es entidad y rombo es relación).
· Simplicidad: el modelo es fácil de leer tanto para el cliente como para el desarrollador.
Los componentes del modelo de Chen, son abstractos y la base de toda BD hecha con el modelo ER:
· Entidad: representa un objeto del mundo real con identidad (se diferencia de los demás). En el modelo se agrupan muchas entidades que comparten características dentro de un conjunto de entidades (ej: auto1 es una entidad con matricula y con una marca, auto2 es otra entidad con matricula y con una marca, entonces si queremos poner estas entidades en una BD las agruparíamos en un conjunto de entidades llamado autos). Tanto entidades y conjunto de entidades, dentro de la catedra, AMBAS hacen referencia a conjunto de entidades.
· Relación: representan agregaciones entre 2 o más entidades (aunque en la catedra solo tomamos como correctas las relaciones binarias). Al igual que con las entidades, las relaciones se agrupan en conjunto de relaciones, que agrupan los conjuntos de relaciones que comparten características entre sí (igual que como pasaba con las entidades). Tanto relación y conjunto de r elaciones, dentro de la catedra, AMBAS hacen referencia a conjunto de relaciones. Las relaciones tienen una cardinalidad por cada entidad que se relaciona y expresa si esa entidad es opcional o si es obligatoria (que se escribe con un “0” o un “1” respectivamente) y si esa entidad puede aparecer solo una vez o múltiples veces (que se escribe con un “1” o un “n” respectivamente). Las entidades pueden ser: binarias (una relación entre 2 conjuntos de entidades), ternarias (una relación entre 3 conjuntos de entidades), N-arias (una relación entre N conjuntos de entidades) o recursivas (una relación de un conjunto de entidades consigo mismo).
· Atributos: representa alguna característica básica de una entidad o una relación, y es lo mismo que el campo de un registro. Cada entidad tiene por lo menos un atributo. Los atributos tienen una cardinalidad que define si es opcional u obligatorio (que se escribe con un “0” o un “1” respectivamente) y que define si es monovalente o polivalente (que se escribe con un “1” o un “n” respectivamente). Para los atributos monovalentes obligatorios no hay que modelarlos explícitamente (agregándoles el 1.1) ya que si un atributo no tiene una cardinalidad visible se asume que es 1.1.
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.