INFORMATICA 3
BASE DE DATOS
AÑO 2014 COMISIONES :
99
94
58
Administración de Base de Datos Contenido Conceptos básicos y su aplicación El propósito de una base de datos Ventajas al utilizar una base de datos Definición de base de datos Modelo Entidad- Relación Diagramas Entidad Relación (DER) Entidades, Atributos Descripción de relaciones Tipos de relaciones Modelo de datos Lenguaje de definición de datos Lenguaje de manipulación de datos
Modelo relacional Relación matemática / Tabla relaciona Qué es una llave Qué es un esquema de base de datos relacional Reglas de integridad estructurales Llave foránea
Diseño de un sistema que utiliza base de datos
Conceptos básicos y su aplicación El área de bases de datos ha sido un área muy importante dentro de la Ciencia de la Computación y más recientemente como parte esencial de las Tecnologías de Información. Al decir que el mundo vive en la era de la información, lo primero que se viene a la mente es el lugar donde se almacenan los datos requeridos para producir información, las Bases de Datos.
El propósito de una Base de Datos es: … ayudar a la gente y a las organizaciones a llevar un registro de las cosas, de aquellos objetos acerca de los cuales les interesa guardar datos. Estos datos son los que permitirán generar información de esas cosas u objetos. Para comprender por que es importante este almacenamiento de datos, se puede primero analizar que problemas se presenta cuando se utilizan solo datos sin la estructura que ofrece una Base de Datos:
Al tener sistemas aislados, con diferentes medios en los cuales se almacena información, un mismo dato puede estar almacenado en diferentes lugares
Al estar el mismo dato almacenado en diferentes lugares, puede tener diferentes
valores
en
esos
diferentes
lugares,
lo
que
puede
provocar
inconsistencias, si no se logra tener esas copias con la información consistente
La privacidad de datos se ve afectada, debido a que los departamentos necesitan compartir datos, pero no todos los que custodian, solo los que consideran pueden compartir, creando problemas al no contar con todo lo que necesitan, aunque la empresa pueda tenerlos disponibles.
En contraste, las bases de datos almacenan los datos en tablas simples, donde cada una de ellas está definida para apoyar un tema o área especifica. Esto permite mantener una definición sencilla, y un uso sencillo de la tabla, en consecuencia. Las tablas poseen una estructura que permite relacionarlas fácilmente entre si, a través del uso de llaves, o campos comunes, que permiten una navegación sencilla y natural a través de ellas, siempre y cuando su diseño sea el correcto. En una arquitectura de base de datos, se observa que los datos son independientes de los programas que los utilizan, lo que ofrece beneficios al eliminar los problemas de redundancia.
Las ventajas de utilizar una Base de Datos, a través del software de administración, se puede entender claramente en los siguientes casos:
Una base de datos permite almacenar grandes volúmenes de datos, con un mínimo de datos duplicados. Esto permite tener un acceso rápido y eficiente a los mismos, cuando se requiere obtener información a partir de ellos. Al estar almacenados en un lugar común, es factible aplicar reglas de integridad, que permite validad sus consistencia. La información almacenada en una base de Datos se integra eficientemente, y no posee limitaciones impuestas por la organización de la empresa. Esta integración permite que los datos seas usados eficientemente, y con un mínimo de problemas de integridad, por diferentes usuarios y departamentos en toda la organización. Esto le ofrece como beneficio a un administrador tener acceso a datos a los cuales antes no tenía acceso, por estar almacenados en diferentes medios y sistemas. Un beneficio muy importante se asocia a la calidad en los servicios de datos. La base de datos permite tener una durabilidad y permanencia de los datos que no es cuestionable. Otro aspecto relacionado a esta ventaja es que las transacciones que se ejecutan directamente sobre la base de datos quedan registradas permanentemente, lo que permite su acceso posterior, para cualquier consulta, o para la protección ante cualquier falla del sistema. En teoría, una base de datos dura indefinidamente, hasta que se decide guardarla en un ambiente fuera del uso directo de un sistema, o se decide borrarla definitivamente. La durabilidad de una base de datos permite la recuperación de los datos a un estado estable, antes de ocurrir la falla. Esto da la seguridad necesaria para ofrecer datos confiables a cualquier sistema de misión crítica de una empresa, como sería el sistema en línea de ventas, o en general, cualquier sistema en línea, tal como los que forman un negocio basado en Internet. Un Sistema de Administración de Bases de Datos permite compartir los datos de una Base de Datos sencilla y eficientemente, a una comunidad de usuarios diferentes. Las vistas son el medio que el software de administración de base de datos ofrece para que un grupo de usuarios tenga acceso solo a la porción de la base de datos a la cual ellos tienen derecho de acceso. De la misma forma, para un equipo de desarrollo de una aplicación, una vista le permite el acceso a solo los datos que tienen derecho, de acuerdo a los requerimientos que el sistema bajo desarrollo debe resolver. El acceso concurrente a los datos es otra de las ventajas. Este acceso permite que diferentes usuarios, a través de sus aplicaciones, accedan a los datos, mezclando sus operaciones, con la seguridad que las mismas serán ejecutadas de tal forma que no se afecten negativamente entre si. Esta es una condición indispensable para el uso de una base de datos desde Internet. Finalmente, la seguridad. Este es un componente crítico en cualquier base de datos que puede ser accesada por Internet. Las técnicas de seguridad y métodos de acceso que una base de datos ofrece hoy soy de tal forma seguros que el uso es de tal forma natural para todos los que acceden
directamente a la misma. Se previene el acceso no autorizado a la base de datos, los mensaje se encriptan de tal forma que es casi imposible decodificarlos. Con esto se ofrece un ambiente seguro, que permite trabajar de manera confiable con la base de datos.
Definición de Base de Datos La Tecnología de Bases de datos es hoy un elemento común en la mayoría de todas las aplicaciones de computadoras o tecnología de Información., sin importar el tipo de aplicación, o el giro de la compañía., sea un sistema financiero en un banco, o un sistema de punto de venta en un supermercado, o un sistema de control de producción en una empresa manufacturera. En todos los casos elementos comunes de Tecnología de Información son tanto las Bases de Datos como los Sistemas de Administración de Bases de Datos requeridos La gente interactúa normalmente con Bases de Datos, y sus tecnologías asociadas. Para dejar en claro estos términos y tecnologías, se definen a continuación, para aclarar los temas principales que se cubren en este curso. Los términos a definir y que se usarán con esta definición en el resto de curso son: Datos. Antes de definir que es una Base de Datos es primordial entender que es un dato. Los datos son hechos, que sirven para describir a objetos, gente, o eventos. Son la materia prima utilizada para producir información. Base de Datos. Para hablar de una definición de base de datos se debe primero entender algunos requerimientos que deben ser resueltos: • •
•
La necesidad de compartir datos, entre diferentes usuarios, y que los datos presenten una relación entre ellos, y que estén diseñados para cumplir las necesidades de información de la empresa, y de sus diferentes partes que la forman Una definición de los datos integrada, que ofrezca una definición de los mismos, para poder tener la independencia requerida entre los datos de la empresa, y los programas de aplicación que los van a utilizar Se requiere de un modelo que represente los datos de la empresa, compuesta comúnmente por entidades, atributos, y relaciones
Esto permite tener la primera definición de una base de datos:
Es una colección integrada, de datos relacionados. Dicho de otra forma: colección auto descrita de registros relacionados o tablas. Algunos de sus componentes son: –
Datos del usuario
–
La Metadata, o datos acerca de la estructura de la base de datos misma
–
Indices y estructuras de datos relacionadas
–
Procedimientos
almacenados
(Stored
procedures),
o
programas
o
módulos almacenados dentro de la base de datos, y que sirven para su manipulación –
Triggers, o procedimientos que se ejecutan cuando ocurre un evento o actividad particular sobre la base de datos
–
Metadata de aplicaciones, o datos que permiten describir las aplicaciones que se ejecutan sobre la base de datos
Dos características son esenciales en la definición de una Base de Datos:
Datos relacionados. – Esta característica implica el que los datos representan hechos, relacionados lógicamente, acerca de aspectos del mundo real que son de interés para el área que apoya una aplicación. Por ejemplo, los datos que se necesitan en una Base de Datos orientada al área de administración de una empresa, en la cual se manejan datos de: clientes, pedidos que los clientes realizan, los artículos que los pedidos incluyen, el surtido de los pedidos, la facturación a los clientes de sus pedidos entregados, los pagos que los clientes realizan sobre sus facturas, etc. Lo mismo se puede hacer para describir los datos que se manejan en el área de manufactura de una empresa.
Datos integrados. –
Esta característica implica que los datos para múltiples aplicaciones se almacenan juntos, y pueden ser manipulados de igual forma por dichas aplicaciones. Al estar almacenados juntos, los datos puedes compartirse, permitiendo que múltiples aplicaciones las utilicen, sin hablar de fronteras, que establecen normalmente barreras artificiales para este uso compartido. Un buen ejemplo es la información que se genera cuando un área de la empresa registra la información de una orden interna para compra de un producto. Esta información es compartida y utilizada por el área interna de compras, que genera una orden de compra al proveedor, quien surte la orden que será recibida en el almacén, y cuya información comparte con contabilidad, que la requiere para sus registros. Las cuentas por pagar atienden las facturas de los proveedores, en base a la información de los
pedidos entregados. Esto ejemplifica la necesidad y la facilidad para compartir estos datos.
Ventaja del enfoque de uso de una base de datos Un beneficio muy importante asociado al uso de loas bases de datos es: •
El acceso controlado a los datos. Esto redunda en beneficios asociados por el uso de o
Un sistema de seguridad, que permita el uso de la base de datos solo por el personal autorizado para el uso de la base de datos.
o
Un sistema de control de la integridad, que permita que los datos almacenados cumplan con las reglas de integridad definidas para los mismos, y que garanticen a su ves la integridad y consistencia de la base de datos
o
Un sistema de control de concurrencia., que permita la ejecución de transacciones concurrentes sobre la base de datos, sin perder la integridad de los datos almacenados.
o
Un sistema de recuperación, que permita que la base de datos sea restablecida a un estado correcto o válido de la base de datos, justo antes de que una falla interrumpiera su uso por parte de los programas de aplicación
o
Un mecanismo de vistas, que permita a los usuarios solo acceder a los datos que ellos necesitan usar.
De la discusión de los conceptos de bases de datos se desprende la importancia de hablar de un Sistemas de Administración Bases de Datos, por lo que se incluye este concepto, para su discusión a la luz del concepto de bases de datos. Este concepto será posteriormente presentado.
Modelo Entidad – Relación Para la creación de una base de datos es necesario contar primero con el modelo de datos que permita crearla. El modelo de datos, como abstracción de la realidad, es la herramienta utilizada para la representación de las entidades y los atributos que las describen, asi como las relaciones entre ellas. Este modelo sirve como base para poder crear una base de datos. El enfoque de modelación mas usado es el modelo Entidad-Relación. El modelo entidad-relación (E-R) se basa en percibir y modelar el mundo real en base a elementos básicos de construcción: entidades y relaciones entre ellas, así como atributos que permiten describir a ambos elementos. De todo lo anterior se deduce que el punto clave en la construcción de la base de datos será el modelo de datos. Con la modelación de los datos requeridos por una base de datos se logra: 1. Formalización: definir formalmente las estructuras permitidas y las restricciones a fin de representar los datos que requiere una aplicación, y la base de datos requerida 2. Diseño: el modelo resultante es la materia prima esencial para el diseño de la base de datos. El modelo de Entidad Relación, fue propuesto por Peter Chen, en 1976. Usado como el modelo sobre el cual se define el modelo de datos requerido por una aplicación. Crea un modelo de datos en términos de: entidades, sus atributos y asociaciones entre las ocurrencias de sus entidades, llamadas relaciones (Relationships). Se proponen 3 clases de objetos: • •
Entidades Atributos
•
Relaciones
Entidades: • Objetos principales acerca de los cuales se almacena información. • Cosas de importancia o interés para un área de negocios o para un sistema que requiere del almacenamiento de datos. • Ejemplos: Cliente, Producto, Inventario, Proveedor, Factura
Las entidades se clasifican en Fuertes y Débiles • Entidad Fuerte: Posee un identificador que determina de manera única a las ocurrencias de la entidad. Tiene existencia propia, que no depende de la existencia de otras entidades. Se representa:
• Entidad Débil: Deriva su existencia de los atributos que son identificadores de una o más entidades padres.Su existencia está limitada o determinada por la existencia de las entidades padres. Se representa:
Atributos: • • •
Describen a las entidades. Representan características o cualidades de una entidad. Ejemplos: nombre de una persona, nombre de ciudad, número de empleado, fecha de contratación, monto a pagar . Los atributos se representan de la siguiente forma: Identificador: identifican de manera única a cada ocurrencia de la entidad.
Descriptor: Describen una característica o cualidad de la entidad
Representación de las
relaciones:
• Permiten representar diferentes tipos de asociaciones entre las entidades. • Tienen ‘semántica’, es decir, describen información acerca de la forma en que se asocian las entidades. • Se representan así: (existen múltiples formas de representarlas)
Diagramas de Entidad relación (DER) Propósito: • Mostrar las Entidades y cómo éstas se relacionan. • El DER se concentra sólo en las entidades de datos
Ejemplo de construcción de un Diagrama de Entidad Relación Pregunta inicial:¿Cuáles son las entidades de interés acerca de las cuales se desea almacenar datos ? • Para un negocio comercial podrían ser:CLIENTES, PRODUCTOS, INVENTARIO, PROVEEDORES, FACTURAS, ORDENES DE COMPRA. Construcción: • Dibujar un bloque para cada entidad identificada. • Nombres de las entidades: se recomienda que sean en singular Ejemplo: CLIENTE en lugar de CLIENTES. • Siguiente pregunta: ¿ Cuál relación existe entre cada par de entidades ? Ejemplos: Un CLIENTE se puede asociar con muchas FACTURAS, y cada FACTURA puede ser sólo asociada a un CLIENTE.
Tomando PRODUCTO y FACTURA: Un PRODUCTO puede asociarse con muchas FACTURAS, y una FACTURA puede ser asociada a muchos PRODUCTOs.
Tomando PRODUCTO e INVENTARIO: Un PRODUCTO puede asociarse con una ocurrencia de INVENTARIO, y una ocurrencia de INVENTARIO puede ser asociada a un solo PRODUCTO. Representación:
Entidades en un solo diagrama :
¿Qué pasa con respecto al nombre de las relaciones? Concepto importante acerca del análisis ER: una relación muchos-a-muchos puede ser dividida en 2 relaciones uno-a-muchos, identificando la "entidad intersección". Por ejemplo: La relación muchos-a-muchos entre PRODUCTO y FACTURAs
Puede ser vista como dos relaciones 1 a muchos:
Se añade una entidad "intersección" entre las dos originales:
Pregunta: ¿ Qué permite asociar a un PRODUCTO con muchas FACTURAS, o a una FACTURA con muchos PRODUCTOs ? Una respuesta: ARTICULO-VENDIDO, o DETALLE-FACTURA
Para la relación muchos-a-muchos entre PRODUCTOs y PROVEEDOREs: Otra entidad: "ENVIO-PRODUCTO" , cualquier proveedor puede surtir cualquier producto
Para cada relación uno-a-uno: Se pregunta si las dos entidades son realmente entidades separadas, o pueden ser combinadas. Ejemplo: Entre PRODUCTO e INVENTARIO no existe una razón importante para mantener una entidad separada describiendo el inventario.
Diagrama de Entidad relación, resuelto:
EJERCICIO: ¿ Es una FACTURA una entidad, o es una relación entre un CLIENTE y un PRODUCTO ? Es posible encontrar argumentos para apoyar a ambos puntos de vista. Condición clave para la diferenciación: • Si se puede definir un atributo identificador, es una entidad • Si no se le puede encontrar un atributo identificador y asocia otras entidades, es una relación Al analizar cada par de entidades, se pregunta por sus relaciones. Si existen, deben ser clasificadas de acuerdo a los siguientes tipos de relaciones:
" "
Cada División es administrada por uno, y solo un Gerente" Cada Gerente administra una, y solo una División"
"Cada Cliente puede tener una o más facturas con la empresa" "Cada factura se asigna a un solo cliente"
" "
Cada proveedor suministra uno o más productos" Cada producto es suministrado por uno o más proveedores"
EJERCICIO: ¿ Es una FACTURA una entidad, o es una relación entre un CLIENTE y un PRODUCTO ? Es posible encontrar argumentos para apoyar a ambos puntos de vista. Condición clave para la diferenciación: • Si se puede definir un atributo identificador, es una entidad • Si no se le puede encontrar un atributo identificador y asocia otras entidades, es una relación
Descripción de Relaciones Al analizar cada par de entidades, se pregunta por sus relaciones. Si existen, deben ser clasificadas de acuerdo a los siguientes tipos de relaciones:
" Cada División es administrada por uno, y solo un Gerente" " Cada Gerente administra una, y solo una División"
"Cada Cliente puede tener una o más facturas con la empresa" "Cada factura se asigna a un solo cliente"
" Cada proveedor suministra uno o más productos" " Cada producto es suministrado por uno o más proveedores" Relación obligatoria: Una entidad puede estar relacionada en todas sus ocurrencias. Ejemplo: DEPARTAMENTO y EMPLEADO un DEPARTAMENTO debe estar asociado a uno o varios empleados que trabajan en él. Un EMPLEADO debe estar asociado a uno y solo un DEPARTAMENTO Es incorrecto tener ocurrencias de una entidad sin ocurrencias de la otra. Representación: obligatoria
Tipos de relaciones
Relaciรณn opcional: Dos entidades pueden estar relacionadas, pero no en todas sus ocurrencias. โ ข Ejemplo: EMPLEADO y PROYECTO. o Un empleado puede estar asignado a un proyecto, a algunos proyectos o a ninguno. o Un proyecto puede estar autorizado, y no tener empleados asignados. Representaciรณn: opcional
Relaciรณn Unitaria Una entidad puede estar relacionada consigo misma. Ejemplo:
Es jefe de
Le reporta a aaaaaaa
"Un empleado puede ser jefe de cero o mรกs empleados" o "Un empleado siempre reporta a otro empleado"
Sistema de Administración de Base de Datos. Un Sistema de Administración de Base de Datos, o DBMS, (por sus siglas en inglés, Database Management System) es de manera sencilla, software para la creación y administración de bases de datos, y sus sistemas asociados, en una computadora.
Las funciones principales de un DBMS son: –
La creación de bases de datos, sus tablas componentes, y las estructuras de apoyo asociadas
–
Permitir la lectura y escritura de los datos almacenados en una base de datos
–
Permitir el mantenimiento a las estructuras de una base de datos
–
Forzar el cumplimiento de las reglas de integridad definidas para una base de datos
–
Mantener el control de concurrencia a los datos, cuando se presenta la ejecución concurrente de transacciones a la base de datos
–
Ofrecer los mecanismos de seguridad para el acceso a las bases de datos definidas y mantenidas en el DBMS
–
Ofrecer las facilidades de respaldo y recuperación de las bases de datos, necesarias para garantizar la seguridad e integridad de las bases de datos manejdas por el DBMS
Ejemplos de DBMSs comerciales: Oracle, DB2, Microsoft Access, SQL Server
Que es una Base de Datos Relacional Un sistema de Administración de Bases de Datos permite que los datos permanezcan independientes de los programas de aplicación que los manipula. Esta es una característica muy importante, por todos los beneficios que le ofrece a quien desarrolla programas para accesarlos. Esta característica recibe diferentes nombres, tales como independencia de datos, o independencia lógica. Esta independencia se logra a través de un proceso de abstracción de datos, que permite definir a los mismos de manera abstracta, independiente de la tecnología en la cual la base de datos llegara a implantarse. Para lograr lo anterior, un concepto fundamental de la abstracción de datos en bases de datos es el concepto de un modelo de datos, el cual permite definir los requerimientos de datos de un área de la empresa, mucho antes de pensar en como representarlos en tecnología. El modelo de datos entonces define a los datos de tal forma que se organizan para ser manipulados en la base de datos. Este módulo permite introducir el concepto de Bases
de Datos Relacionales, y la forma en la cual los datos se pueden definir para ser representados en base a relaciones matemáticas, o relaciones, esencia del modelo relacional. La forma natural de representar una relación es en base a una tabla, o representación tabular de las relaciones. El modelo relacional es el modelo de datos que soporta a la mayoría de los productos de bases de datos en el mercado actual. Es un modelo formal, basada en las matemáticas, en su concepto de relación matemática y en la teoría de conjuntos. El contenido de este módulo y el siguiente presentan los conceptos y términos que se presentan a continuación: • •
Relaciones matemáticas o tablas relacionales Llaves, primaria, alterna, foránea
•
Diseño de bases de datos relacionales
•
Normalización
Que es un Modelo de Datos Un concepto muy importante y fundamental para hablar de abstracción de datos en el área de bases de datos es el modelo de datos. Un modelo de datos permite representar los requerimientos de datos de un área bajo análisis en una forma organizada, para facilitar su representación en un producto de bases de datos, y posteriormente su manipulación. Un modelo de datos se forma de: • •
Elementos de modelación, que permiten definir la estructura de los datos, tales como tipos de datos, dominios, y reglas de integridad. (DDL) Operaciones para poder actualizar y consultar la base de datos. (DML)
Que es un Lenguaje de Definición de Datos (DDL). Son los elementos de modelación que permiten definir el metadata de la base de datos, es decir, los datos acerca de los datos, que se almacenan en el DBMS, en el catálogo del sistema. Que es un Lenguaje de Manipulación de Datos (DML). Son las operaciones que permiten el acceso a la base de datos para actualización y consulta a los datos de la base de datos, y poder resolver cualquier consulta que los usuarios requieran de la misma. El uso de un modelo de datos en la creación de una Base de Datos Para la creación de una base de datos es necesario contar primero con el modelo de datos que permita crearla. (Modelo de Entidad – Relación)
Que es el modelo relacional El modelo relacional fue propuesto por E.W. Codd en 1970. Es actualmente el modelo que soporta a la gran mayoría de los sistemas de bases de datos de la actualidad. El modelo provee características únicas de modelación, que permiten crear modelos de datos relacionales, con relativa facilidad. El modelo Relacional ofrece las siguientes ventajas: •
•
Los datos se representan en relaciones, cuya manera natural de representación es en forma de tabla bidimensional. Esta representación es muy simple de entender y visualizar, además de que es conocida y utilizada en muchas formas de trabajo de la vida diaria, tanto en la escuela como en el trabajo. Un ejemplo de una tabla relacional se presenta a continuación: Alumno
Matrícula
Nomb re
Apelli do
45175
José
Pérez
Monterre y
NL
Ing. En Electrónica
21/01/1980
46550
Luis
Martíne z
Hermosil lo
SON
Ing. En Computaci ón
12/06/1981
47123
René
Gonzál ez
Toluca
MEX
Lic. En Economía
13/09/1992
Ciudad
Esta do
Carrera
Fecha de Nacimiento
•
Es un modelo formal de datos, característica que lo diferencia de los otros modelos.
•
Es un modelo basado en las matemáticas, en el concepto de relación matemática y en teoría de conjuntos.
•
La manera natural de representar una relación es en forma de tabla, que permite una conceptualización y explicación sencilla de este concepto.
•
Además, por ser un concepto matemático, las tablas que forman una base de datos relacional son manipuladas con muchas ventajas por operadores matemáticos muy sencillos y poderosos, el álgebra y el cálculo relacional. A partir de estos operadores es muy sencillo resolver cualquier consulta que un usuario requiera. Estos lenguajes, conjuntos de operadores, están presentes en el SQL, lenguaje estándar para la manipulación de Bases de Datos relacionales comerciales.
La teoría que soporta a las bases de datos relacionales es muy formal, matemática. Por esta razón, es importante conocerla para tener un entendimiento que permita obtener el máximo aprovechamiento de ésta. Los conceptos que se presentan en este apartado deben permitir que se aproveche al máximo la tecnología, por lo que su entendimiento es indispensable. Se presentan esos conceptos a continuación.
Que es una Relación Matemática/Tabla relacional Un elemento fundamental en el modelo relacional es el concepto de relación matemática, o tabla relacional. Una relación o tabla relacional, en su forma más simple, es un conjunto de renglones (también conocidos como tuplas, registros, ocurrencias, o instancias). De una manera mas formal, es el conjunto de tuplas, o renglones, formados por un conjunto de valores tomados a partir de “n” diferentes dominios. Se puede expresar de la siguiente manera: Relación R: •
•
Dado un conjunto de “n” dominios, D1 a Dn, una relación R se define como el conjunto de tuplas ordenadas, denotadas como <d1, d2, …, dn> donde cada tupla es formada tomando un valor de cada uno de los dominios Se denota asi: R = {<d11, d21, …, dn1>1, <d12, d22, …, dn2>2, …, <d1m, d2m, …., dnm>m }
Por ejemplo, en la tabla relacional ALUMNO, cada renglón corresponde a los datos de un alumno en particular. La tabla o relación contiene entonces los renglones que representan los datos de los alumnos en una escuela. Cada uno de los datos almacenados en un renglón representa el valor de un atributo, para cada atributo que forma una tabla relacional. En la tabla de alumno, los atributos que describen a la tabla o relación son: Matrícula, Nombre, Apellido, Ciudad, Carrera y Fecha de Nacimiento. Finalmente, cada columna de la tabla relacional, cada atributo, contiene los valores del atributo para cada uno de los renglones u ocurrencias de la tabla. Los valores que un atributo puede tomar se conocen como el dominio del atributo, y es muy importante su definición, ya que permite cuidar las reglas de los valores válidos en un atributo. Cada tabla debe tener entonces la siguiente definición: • •
Nombre de la tabla Nombre para cada columna o atributo que forma la tabla
•
El dominio sobre el cual está definido cada uno de los atributos que forman la tabla.
Características de una tabla relacional Una tabla relacional es una tabla bidimensional que posee la siguientes características: • •
Los renglones poseen datos acerca de una entidad, entendiendo como entidad a algo acerca de lo cual se desea almacenar datos. Las columnas contienen datos acerca de los atributos de la entidad.
•
Cada posición en la tabla almacena un valore simple, atómico, de un atributo
•
Todos los valores almacenados en una columna son del mismo tipo, es decir, están definidos sobre el mismo dominio
•
Cada columna o atributo debe poseer un nombre único
•
El orden de las columnas no es relevante
•
El orden de los renglones no es relevante
•
No pueden existir dos renglones idénticos en la tabla
•
Se utiliza el nombre de tabla relacional, en lugar de relación, para evitar confundir con el nombre que se le da a una relación en el sentido natural del Español, es decir, la asociación entre elementos, aunque es importante aclarar que no todas las tablas son relaciones
•
Los siguientes términos se utilizan de manera equivalente, para referirse a términos comunes en el área de Bases de Datos: Tabla/renglón/columna = archivo/registro/campo = relación/tupla/atributo
•
El grado de una relación es el número de columnas o atributos de la misma y no puede ser cero, una tabla no puede existir sin columnas.
•
La cardinalidad de una tabla es el número de renglones o tuplas en la tabla.
Que es una Llave Una llave está formada por uno o más atributos que permiten identificar de forma única a cada tupla o renglón en una tabla relacional. Una llave compuesta es una llave que está formada por dos o más atributos. Además: Una tabla relacional puede tener solo una llave primaria, pero pueden tener llaves adicionales, que son llamadas llaves candidatas o alternas Una llave primaria se usa para – Establecer relaciones entre diferentes tablas – Permiten organizar la forma en que las tablas se almacenan – Son usadas para generar índices, mecanismos usados para el acceso eficiente a los datos
Llave primaria En tablas en las cuales existe más de una llave, se selecciona a una de ellas, como la llave con la cual se realizan búsquedas o con la cual se establecen relaciones entre las tablas. Este es el caso de la llave primaria. Las llaves restantes son llamadas llaves alternas o secundarias. La selección de la llave primaria se considera normalmente sobre la base de ser la llave más pequeña, aunque no es una condición absoluta. El caso de una llave compuesta, que consiste de varios atributos, es mucho más compleja de manejar como llave primaria, por ejemplo.
Que es un Esquema de Base de Datos Relacional Un esquema de base de datos relacional es un conjunto de definiciones de tablas relacionales, y un conjunto de reglas o restricciones de integridad. La definición de tablas relacionales procede de definir los requerimientos de un área de aplicación. Las reglas de integridad definen todas aquellas condiciones, o restricciones, que los datos deben cumplir, para mantener la integridad de los datos, y su valor. Las reglas de integridad se agrupan en: •
Estructurales, que son específicas al modelo de datos relacional.
•
Semánticas, que son específicas a la aplicación, impuestas por las reglas de negocio que la aplicación misma pide cumplir. Un ejemplo puede ser las condiciones que una empresa puede requerir para la contratación de un empleado, y que el sistema debe cumplir, lo que impone reglas que los datos de la base de datos debe cumplir.
Las reglas de integridad en una base de datos permiten que la información almancenada en la misma posea la consistencia e integridad requerida por sus usuarios. Estas reglas provienen de la definición misma del modelo relacional, pero están dirigidas a que su cumplimiento garantice que los datos sean correctos, o consistentes. Por su importancia es indispensable que se conozca sobre las mismas, que se definan en la creación de la base de datos, y que el acceso a la base de datos cumpla con ellas. A continuación se presentan las bases del manejo de reglas de integridad, para que se busque su cumplimiento. Reglas de Integridad Estructurales del Modelo Relacional:
1. Regla de Integridad de Dominio. Hace referencia a que los valores de los datos deben ser atómicos. El dominio de cada atributo debe estar compuesto de valores atómicos, por lo tanto no puede ser un valor compuesto de otros valores más simples, como un arreglo, o un registro de valores. Si se requiere
almacenar una dirección por ejemplo, será necesario separar en diferentes atributos, como Calle, número, colonia, ciudad. 2. Regla de Integridad de Llave. Establece que la llave de una entidad debe ser única.
•
Regla de Integridad de entidad: Establece que no se permite un valor nulo, como parte de una llave primaria. El valor nulo es permitido para todos los dominios, y se utiliza para cuando el valor del atributo no está definido, o no aplica, y el dominio definido para el atributo lo permite. Por ejemplo, el dominio de NumeroDeEmpleadoDelJefe en la tabla de Empleados, cuando se trabaja en el registro del director de la empresa., y el valor de este número no aplica para el director. Se almacena entonces un NULO.
3. Regla De Integridad referencial: Las referencia de una tabla a otra tabla debe ser con valores de llaves consistentes.
Que significa la regla de Integridad referencial La regla de integridad referencial sirve para forzar que las relaciones entre tablas, que se establecen mediante llaves, mantengan siempre datos consistentes entre las mismas. Las relaciones entre las tablas se establecen entre renglones de una tabla con renglones en la segunda tabla. Estas relaciones se establecen mediante las llaves, donde la llave primaria de una tabla se replica en otra tabla, para establecer la relación. La replica de la llave primaria en otra tabla, recibe el nombre de llave foránea (foreign key).
Que es una llave foránea Una llave foránea (FK) es uno o mas atributos en una tabla, que son la llave primaria en otroa tabla, inclusive la misma. La llave foránea debe cumplir con: 1. Los atributos que forma la FK deben estar definidos en los mismos dominios que los atributos que forman la PK relacionada a la FK. La condición hace referencia a que los valores deben coincidir entre la FK y la PK, no sobre los nombres de los atributos, por lo cual los nombres en ambas llaves pueden ser diferentes. 2. El valor de la FK en un renglón de la tabla, debe coincidir con un valor de la PK en la otra tabla, o ser un valor NULO. Esto garantiza que la información es consistente entre las tablas que mantienen una relación entre ellas. Para mostrar estas relaciones en un diagrama, se dibuja una flecha que va de la FK a la PK, mostrando la relación entre ambas tablas. En el siguiente ejemplo se muestra la relación existente entre Ventas realizadas a los clientes, la llave foránea es ID Cliente en la tabla Ventas
En general, las reglas de integridad referencial pueden ser definidas entre dos tablas, en cualquier dirección, e inclusive pueden ser definidas entre ocurrencias o renglones de la misma tabla. Ejemplo: ¿qué relaciones se pueden definir entre un departamento académico y los profesores que trabajan en él? Un departamento académico se asocia con los diferentes profesores que trabajan en él. Por otro lado un profesor es jefe o director de un departamento académico.
Diseño de un Sistema que utiliza una Base de Datos El diseño de una base de datos relacional puede seguir diferentes caminos. La primera opción toma como base la observación del mundo real bajo estudio, generando un conjunto de tablas, que contengan los atributos y las restricciones de integridad sobre las mismas. Otra opción es dividir el diseño en dos fases: • •
definir el modelo conceptual y su esquema, transformar el esquema conceptual en un esquema relacional mediante un conjunto de reglas de transformación
Aunque la normalización es una base muy importante para el diseño de una base de datos, este diseño no puede limitarse a la aplicación exclusiva de la teoría de la normalización. El diseño de una base de datos, por otro lado, tiene múltiples puntos de vista, y formas de desarrollarse, de acuerdo a esos puntos de vista. Para este curso, la idea del diseño es que se convierta en un proceso práctico, que facilite el proceso de diseño. En base a esos puntos de vista, un proceso de diseño práctico, incluye las siguientes fases: Fase 0: Análisis de requerimientos. (No forma parte del proceso de diseño) Aunque esta fase realmente corresponde a la fase de análisis de un proyecto, se presenta con el fin de establecer que de esta fase se obtiene la materia prima para el diseño de la base de datos. De esta fase entonces se requiere obtener los requerimientos de datos que el sistema bajo análisis ha formalizado. El documento de análisis, en la parte de requerimientos de datos, es entonces la entrada al proceso de diseño. Fase 1: Diseño conceptual de la base de datos Esta fase puede ser considerada tanto parte de la fase de análisis de requerimientos, como parte de la fase de Diseño. Es decir, para algunos puede formar parte del análisis de requerimientos, donde el producto de esta fase es el modelo de datos construido en base a una herramienta específica. Para otros, esta actividad corresponde a la fase de diseño de software, específicamente, del diseño de la base de datos. Para este caso se considera parte del diseño de la base de datos. Esta fase corresponde a la definición del esquema conceptual, que es el esquema que define el modelo de datos a alto nivel, independiente de cualquier sistema de administración de bases de datos. Por ser un modelo abstracto, no puede utilizarse para definir la estructura de la base de datos. Fase 2: fase de diseño lógico (Transformación del modelo de datos o esquema conceptual, al SMBD a utilizar). En esta fase se transforma la salida del diseño conceptual, o esquema conceptual, al esquema de la base de datos en el modelo de datos del DBMS a utilizar
Fase 3: Diseño de la base de datos física. Consiste en definir las estructuras de almacenamiento y de acceso para alcanzar una rendimiento óptimo de las aplicaciones que se ejecutarán sobre la base de datos. Se tienen diferentes criterios para la definición de la base de datos física: el tiempo de respuesta de ejecución de las aplicaciones y consultas a la base de datos, la utilización del espacio de almacenamiento disponible o el volumen de transacciones por minuto, que se ejecutan sobre la base de datos Estas fases son genéricas, por lo que deben revisarse para el caso particular de cada empresa.