Un DBMS es una coleccin de archivos interrelacionados y un conjunto de programas que le permiten al usuario el acceso y la modificacin de esos archivos.
El sistema de banco de datos le debe proporcionar al usuario una visin abstracta de los datos, esto es, el sistema le esconde al usuario ciertos detalles de cmo se almacenan y se mantienen los datos.
Los datos se deben poder extraer eficientemente. Por eso se han usado estructuras de datos complejas en la representacin de datos en el banco de datos.
Para facilitarle la labor al usuario se le esconde la complejidad a travs de diversos niveles de abstraccin que simplifiquen su interaccin con el sistema.
Niveles de abstraccin
Por lo anterior podemos ver la abstraccin de los datos en tres niveles, los cuales son:
Nivel fsico, nivel conceptual y nivel de visin o vistas (views).
Nivel fsico
Es el nivel ms bajo.
* describe cmo se almacenan realmente los datos.
* se describen en detalle las estructuras de datos complejas de nivel ms bajo.
Nivel conceptual
* El nivel conceptual es el segundo nivel de abstraccin que describe qu datos son realmente almacenados en el banco de datos y las relaciones que existen entre los datos.
3
* aqu se describe el banco de datos completo en trminos de un nmero pequeo de estructuras relativamente sencillas.
* la implantacin de las estructuras sencillas en este nivel pueden implicar estructuras complejas del nivel fsico, aunque el usuario no lo percibe.
* por lo general el que usa este nivel es el administrador del banco de datos, que es el que decide qu informacin se va a guardar en el banco de datos.
Nivel de visin
* es el nivel ms alto de abstraccin, que describe slo parte del banco de datos.
* En este nivel la complejidad se debe al tamao del banco de datos, no al uso de estructuras.
* este nivel se define para facilitarle el manejo de banco de datos al usuario, para facilitarle la interaccin con el sistema.
* el sistema puede proporcionar muchas vistas en el mismo banco de datos.
Niveles de abstraccin de datos
Modelos de datos
es una coleccin de herramientas conceptuales para describir datos, relaciones entre ellos, semntica asociada a los datos y restricciones de consistencia (H.F. Korth & A. Silberschatz, 1993).
4
Tipos de modelos de datos
Los modelo de datos se clasifican en tres grupos:
(1) modelos lgicos basados en objetos (2) modelos lgicos basados en registros (3) modelos fsicos de datos
Modelos lgicos basados en objetos
se usan para describir datos en los niveles conceptuales.
Se caracterizan por que proporcionan capacidad de estructuracin flexible y permiten especificar restricciones en los datos explcitamente.
algunos de los modelos lgicos basados en objetos son:
* modelo entidad-relacin * modelo orientado a objetos * modelo binario - propuesto por Abrial, Deheneffe, Hainaut y Lecharlier, entre otros, en 1974. * modelo semntico de datos -basado en modelos de redes semnticas con sus races en la inteligencia artificial. * modelo infolgico - presentado por primera vez por Langefors en 1963. * modelo funcional de datos - propuesto por Silbey y Kerschberg en 1977.
Modelos lgicos basados en registros
se utilizan para describir datos en los modelos conceptuales y fsico.
se usan para especificar la estructura lgica global del banco de datos.
proporcionan una descripcin a un nivel ms alto en la implantacin.
Estos modelos se llaman as por que el banco de datos est estructurado en rcords (registros) de formato fijo de varios tipos.
Cada rcord tiene un nmero fijo de campos, que su vez son de largo fijo.
El uso de records de largo fijo facilita la implantacin del nivel fsico del banco de datos.
5
los modelos lgicos basados en registros ms conocidos son: * modelo relacional * modelo de red * modelo jerrquico
Modelos fsicos de datos
se usan para describir datos en el nivel ms bajo, son poco usados
los ms conocidos son:
* modelo unificador (introducido por Batory y Gotlied en 1982). * modelo de elementos
6
Conceptos para el manejo de Bancos de datos
Definiciones:
Instancia - coleccin de informacin almacenada en el banco de datos en un momento determinado. Es parecido al concepto valor de una variable en lenguajes de programacin. Esquema - diseo global de un banco de datos. En el modelo relacional es la estructura de las tablas que conforman el banco de datos. Estos cambian muy pocas veces. Este concepto se parece a la definicin de tipo de un lenguaje de programacin como Pascal. Los sistemas de bancos de datos tienen varios esquemas, divididos de acuerdo con los niveles de abstraccin que vimos anteriormente.. El nivel ms bajo es el esquema fsico, en el nivel intermedio es el esquema conceptual y el nivel ms alto es el subesquema.
Independencia de datos
Independencia de datos - la capacidad de modificar la definicin de un esquema en un nivel sin afectar la definicin del esquema en el nivel superior.
Tipos de independencias:
* independencia fsica * independencia lgica
Independencia fsica
Independencia fsica - es la capacidad de modificar el esquema fsico sin provocar que se vuelvan a escribir los programas de aplicacin. Estas modificaciones a veces son necesarias para mejorar el funcionamiento del banco de datos.
Independencia lgica
Independencia lgica - es la capacidad de modificar el esquema conceptual sin provocar que se vuelvan a escribir los programas de aplicacin. Estas modificaciones son necesarias cuando se altera la estructura lgica del banco de datos.
7
La independencia lgica es ms difcil de lograr que la fsica, por que los programas de aplicacin dependen fuertemente de la estructura lgica de los datos. El concepto independencia de datos es parecido al concepto de tipos abstractos de datos en los lenguajes de programacin por que le ocultan detalles de implantacin a los usuarios permitindole a stos preocuparse por la estructura general, en vez de los detalles de implantacin de bajo nivel.
DDL-Data Definition Languaje
Lenguaje de definicin de datos (DDL) - permite especificar un esquema del banco de datos por medio de un conjunto de definiciones.
El resultado de la compilacin de instrucciones en DDL es un conjunto de tablas que se almacenan en un archivo especial, llamado metadata o data dictionary. Ese metadata es consultado cuando se entran, se lee o se modifican los datos del banco de datos.
*** El DDL contiene definiciones de tipo especial respecto a la estructura de almacenamiento y los mtodos de acceso usados por los sistemas de bancos de datos.
El resultado de la compilacin de estas definiciones es un conjunto de instrucciones que especifican los detalles de implantacin de los esquemas que se le esconden al usuario.
DML-Data Manipulation Languaje
Lenguaje de manipulacin de datos - (DML) es un lenguaje que capacita a los usuarios a acceder o manipular los datos segn estn organizados por el modelo de datos.
Por manipulacin se entiende:
*recuperar datos (query) *insertar datos (insert) *suprimir datos (delete) *modificar datos (update)
8
Tipos de DML
Hay dos tipos de DML:
*procedural - el usuario especifica los datos que necesita y cmo obtenerlos.
* nonprocedural - el usuario especifica los datos que necesita sin especificar cmo obtenerlos.
Query (consulta) - es una instruccin que solicita la recuperacin de datos o informacin.
Query Languaje - parte del DML que implica recuperacin de datos o informacin.
DBM-Data Base Manager
Manejador de base de datos (DBM) - es un mdulo de programa que proporciona la interfaz entre los datos de bajo nivel almacenados en el banco de datos y los programas de aplicacin y las consultas hechas al sistema.
Responsabilidades del DBM
El DBM es responsable de:
1- Interactuar con el manejador de archivo 2- Implantar la integridad 3- Implantar la seguridad 4- Copiar como medida de seguridad y resguardo 5- Controlar de concurrencia
Interactuar con el manejador de archivos
Los datos sin procesar se almacenan usando el sistema de archivos que proporciona el sistema operativo. El DBM traduce las instrucciones de DDL a mandatos del sistema de archivos de bajo nivel. El DBM es responsable del verdadero almacenamiento, la recuperacin y actualizacin de los datos en el banco de datos.
Implantacin de la integridad
9
Los valores de los datos que se almacenan en el banco de datos deben satisfacer ciertos tipos de restricciones de consistencia.
El DBM del banco de datos puede determinar si las actualizaciones dan como resultado una violacin de restriccin, de ser as, debe tomar la accin apropiada.
Implantacin de seguridad
Como no todos los usuarios tienen acceso al contenido del banco de datos, el DBM debe hacer que se cumplan esos requisitos de seguridad.
Copia de seguridad y recuperacin
EL DBM debe detectar fallos y restaurar el banco de datos al estado que exista antes de ocurrir el fallo.
Control de concurrencia
Cuando varios usuarios realizan actualizaciones, pueden ocurrir inconsistencias en el banco de datos, el DBM debe controlar esto.
10
Bases de datos relacionales
El concepto modelo relacional se basa en el concepto matemtico de relacin. Una relacin es un subconjunto de un Producto Cartesiano. El dominio es el conjunto de valores. Los denominamos con la letra D. Este concepto de bases de datos referenciales es introducido por E.F. Codd en 1979. Se representan los datos como una coleccin de relaciones. Cada relacin se trata como una tabla de valores.
Componentes de una base de datos relacional:
Consiste de tres componentes:
* Data structure - esquema de relacin.
* Data integrity - reglas semnticas que controlan el comportamiento de la base de datos.
* Data manipulation - operaciones en las relaciones.
Relation table
Consiste de un conjunto de columnas nominadas (que tienen un nombre) y una cantidad arbitrarias de filas (tuplos). Cada columna est asociada con un dominio, que est especificado con un tipo a la columna nominada. Cada relation table corresponde a un archivo almacenado en el nivel fsico.
Podemos decir que una base de datos relacional consiste de un conjunto de tablas- relaciones relevantes.
Relation schema
El relation schema se usa para describir una relacin o relation instance.
Ejemplos: Cliente(Nombre,Calle,Ciudad, Nmero de cuenta) Cuenta(Nmero de cuenta, saldo)
11
Es el concepto relacin matemtica R sobre unos conjuntos de valores (dominio) D1, D2, D3...Dn .
Las columnas, en el ejemplo Nombre, Calle, Ciudad, Nmero de cuenta, se les llama atributos.
Cada atributo es el nombre que se le da sobre el dominio D en el esquema de relacin.
Atributos claves (key)
Es el conjunto mnimo de atributos cuyos valores le dan una identificacin nica al tuplo en la relacin.
El key(K) debe cumplir con:
(1) para cualesquiera dos tuplos t1, t2 de cualquier instancia de la relacin R t1(k)<>t2(k).
(2) No existe un subconjunto propio de K que cumpla con la propiedad anterior.
Super Key - conjunto de atributos que contienen un key. Tambin se define como atributo o combinacin de atributos que le dan identificacin nica a cada entidad en una tabla.
Candidate Key - cuando un esquema tiene ms de un key, cada key es un candidate key. Tambin se dice que es el superkey mnimo, es un superkey que no contiene un subconjunto de atributos que sea superkey en s mismo.
Primary Key- es usado para identificar tuplos en una relacin. Es el candidate key que es seleccionado para dar identificacin nica a todos los otros atributos en una fila dada. No puede contener entradas nulas.
Secondary Key- un atributo (o combinacin de atributos) que se usan estrictamente para propsitos de recuperacin. Tambin se le llama Alternative Key.
Foreign Key- atributo (o combinacin de atributos) en una tabla cuyos valores tiene que parear con el primary key en otra tabla o ser valor nulo. Su funcin principal es la de establecer la relacin con otra entidad y no la de describir el objeto o entidad que lo contiene.
12
Reglas de integridad
Entity integrity
No habr entradas nulas en el primary key y todas las entradas sern nicas.
Referential integrity
El valor del foreign key puede ser nulo o tiene que parear con el valor de un primary key de la tabla con la cual se establece la relacin. Con las reglas de integridad se garantiza que cada entidad tiene un identificador nico y que no es posible establecer relaciones que no pareen.
Con las reglas de integridad se minimizan los errores de entrada de datos, esto es, que haya consistencia.
Operaciones en bases de datos relacionales
Insertar- consiste en aadir un tuplo en la relacin. Eliminar (delete)- consiste en quitar un tuplo de la relacin. Modificar- consiste en cambiar un tuplo en la relacin. Consultar (Query) -consiste en recuperar datos.
Algebra y Clculo relacional
El lgebra relacional fue desarrollada en 1970 y el clculo relacional en 1971 por Codd. El lgebra relacional es un lenguaje procedural para la manipulacin de relaciones. En esta se especifica paso por paso la respuesta a una consulta de los datos contenidos en una relacin. El clculo relacional es un non procedural language. En el clculo relacional una consulta se resuelve en un solo paso. El lgebra y el clculo relacional proveen una forma terica de manipular una base de datos relacional. Codd demostr que el lgebra relacional y el clculo relacional son lgicamente equivalentes. El lgebra relacional es importante por que contribuy a establecer un vocabulario comn que encontramos en los lenguajes de bases de datos comerciales, tales como SELECT, PROJECT, etc. El clculo relacional es importante por que:
13
(1) est basado en lgica de predicados (con ello es ms fcil determinar la veracidad de una oracin).
(2) varios lenguajes relacionales comerciales estn basados en ste.
Algebra relacional
Manipula relaciones produciendo nuevas relaciones. Consiste de nueve operaciones que alguna de ellas son tomadas de la matemtica, otras del lenguaje relacional y otras de lenguajes de programacin comunes.
Operaciones en Algebra relacional
Las de origen matemtico son:
(1) Unin
(2) Interseccin
(3) Diferencia de conjuntos
(4) Producto Cartesiano
La del lenguaje de programacin es:
(5) Asignacin
Las de lenguaje relacional son:
(6) Proyeccin
(7) Seleccin
(8) Divide o Quotient
(9) Join
Unin La unin de las relaciones R y S es el conjunto de tuplos que estn en R o en S o en ambos.
14
Slo se aplica a relaciones que tienen el mismo arity y los componentes de los tuplos tienen igual dominio.
Interseccin La interseccn de las relaciones R y S es el conjunto de tuplos que estn en R y en S. Slo se aplica a relaciones que tienen el mismo arity y los componentes de los tuplos tienen igual dominio.
Diferencia La diferencia de las relaciones R y S es el conjunto de tuplos que estn en R, pero que no estn en S. Slo se aplica a relaciones que tienen el mismo arity y los componentes de los tuplos tienen igual dominio. Se denota por R - S.
Producto Cartesiano Sean R y S relaciones R y S de arity k1 y k2, entonces el Producto Cartesiano, que se denota por R X S, es el conjunto de tuplos con arity (k1 + k2) donde los primeros k1 componentes pertenecen a R y los prximos k2 componentes pertenecen a S.
Proyeccin Una proyeccin sobre una relacin R toma todos los tuplos distintos que resultan del conjunto de tuplos al remover ciertos componentes. Se denota por ??a1,a2,..,. (R) donde a1, a2, a3 son los componentes o atributos que se quieren exponer de la relacin R.
Seleccin Una seleccin sobre una relacin R toma todos los tuplos cumplen con una condicin establecida por medio de una oracin lgica en ciertos componentes del tuplo. Esta condicin se establece usando operadores relacionales (>, <, =) y operadores lgicos (AND, OR, NOT) Se denota por ?c (R) donde c es una oracin lgica.
Asignacin Con esta operacin se le da un nombre a una relacin que es resultado de otras operaciones. Se denota con el smbolo :=. Por ejemplo Q := R X S.
15
Divide Sean R y S relaciones con arity r y s, donde r > s y S no es el conjunto vacio, entonces R divide S es el conjunto de tuplos con arity (r-s) que estn en R y parean con tuplos en S.
Join Esta operacin recibe diferentes nombres especficos dependiendo del resultado a obtener. Entre estos estn Natural Join, ??Join y Outer Join. Muchos dicen que esta operacin es el corazn del lgebra relacional. ??Join ? asume los valores de operadores relacionales = , > y <, esto es, hay un = join que se le llama equi-join En este caso los componentes con los que se establece la operacin de =, > < se repite. Natural Join El natural join de R y S, que se denota por R |X| S, da como resultado los tuplos que se forman al aadirle a R los componentes que parean en R y en S. El pareo se realiza con aquellos componentes que tienen valor igual. No duplica el componente. Outer Join El Outer join se divide en tres casos: Full Outer Join Right Outer Join Left Outer Join En general el Outer join de R y S, da como resultado los tuplos que se forman al aadirle a R los componentes que parean en R y en S y tuplos que no parean en una o las dos relaciones. Full Outer Join El Full Outer join se denota por S]X[R El Full Outer join de R y S, da como resultado los tuplos que se forman al aadirle a R los componentes que parean en R y en S y tuplos que no parean en las dos relaciones. El pareo se realiza con aquellos componentes que tienen valor igual. No duplica el componente. Right Outer Join El Right Outer join se denota por S|X[R El Right Outer join de R y S, da como resultado los tuplos que se forman al aadirle a R los componentes que parean en R y en S y tuplos que no parean de la relacin derecha (R). Left Outer Join
16
El Left Outer join se denota por S]X|R El Left Outer join de R y S, da como resultado los tuplos que se forman al aadirle a R los componentes que parean en R y en S y tuplos que no parean de la relacin izquierda (S).
17
Bases de Datos Relacionales
EL MODELO RELACIONAL
Codd propone un modelo de datos basados en la teora de las relaciones, en donde los datos se estructuran lgicamente en forma de relaciones - TABLAS -, siendo un objetivo fundamental del modelo: mantener la independencia de esta estructura lgica respecto al modo de almacenamiento y a otras caractersticas de tipo fsico El modelo relacional fue presentado por Codd de la empresa IBM a fines de los aos 60.
Objetivos del Modelo Relacional
Independencia Fsica Independencia lgica Flexibilidad Uniformidad Sencillez
Objetivos:
Independencia Fsica:
es decir, que el modo en que se almacenan los datos no influya en su manipulacin lgica y, por tanto, los usuarios que acceden a esos datos no tengan que modificar sus programas por cambios en el almacenamiento fsico.
Independencia Lgica:
esto es, que el aadir, eliminar o modificar objetos de la base de datos no repercuta en los programas y/o usuarios que estn accediendo a subconjuntos parciales de los mismos.
Flexibilidad:
en el sentido de poder presentar a cada usuario los datos de la forma en que ste prefiera.
Uniformidad:
18
las estructuras lgicas de los datos presentan un aspecto uniforme, lo que facilita la concepcin y manipulacin de la base de datos por parte de los usuarios.
Sencillez:
las caractersticas anteriores, as como unos lenguajes de usuario muy sencillos, producen como resultado que el modelo de datos relacional sea fcil de comprender y de utilizar por parte del usuario final.
Para cumplir los objetivos citados se introduce el concepto de RELACION (TABLA) como estructura bsica del modelo.
Todos los datos de una base de datos se representan en forma de relaciones cuyo contenido vara en el tiempo. Formalmente una relacin es un conjunto de filas en terminologa relacional.
Para la manipulacin de estas tablas (dinmica), se propone un conjunto de operadores. Alguno de ellos clsicos de la teora de conjuntos y otros introducidos por el modelo relacional. Estos operadores forman el ALGEBRA RELACIONAL.
Definiciones relacionales:
Existe una serie de trminos utilizados en el modelo relacional que se requiere definir :
o Relacin : Conjunto de filas. Pude asociarse a lo que se conoce como tabla, con ciertas propiedades.
o Tupla : Corresponde a una fila de esa tabla. Al nmero de tuplas se denomina cardinalidad.
o Atributo : Se refiere a una columna de esa tabla. La cantidad de atributos determina el grado de la relacin.
Definiciones relacionales
Clave Primaria : Identificador nico para la tabla. Se compone de una columna o de una combinacin de ellas. Nunca existen dos filas de la misma tabla con el mismo valor de clave primaria.
Dominio : Es una coleccin de valores, de los cuales uno o ms atributos obtienen sus valores reales.
19
Dominios
Se define dominio como un conjunto de valores escalares de donde extraen sus valores los atributos de una relacin. Los valores escalares representan la menor unidad semntica de informacin.
Cul es la importancia de los dominios ?
Los dominios tienen una importancia semntica, puesto que restringen las comparaciones. Los dominios no slo definen los valores permitidos, sino adems las comparaciones permitidas.
Ejemplo : cantidad = peso
Relacin La cabecera est compuesta por un conjunto fijo de atributos, o en trminos ms precisos de pares atributos-dominio : { (A1:D1), (A2:D2), ..,(An:Dn)} tales que cada atributo Aj corresponde a uno y solo uno de los dominios subyacentes Dj. Una relacin R, sobre un conjunto de dominios D1,D2,..,Dn (no necesariamente todos distintos), se compone de dos partes, una cabecera y un cuerpo.
El cuerpo est formado por un conjunto de tuplas, el cual vara con el tiempo. Cada tupla est compuesta por un conjunto de pares atributo-valor : { (A1:v1), (A2:v2), ..,(An:vn)} para cada una de estas tuplas hay uno de estos pares atributo valor.
20
Propiedades de las relaciones
Las propiedades de las relaciones son una consecuencia de su definicin:
No existen tuplas repetidas . Por tratarse, el cuerpo de una relacin, de un conjunto matemtico estos no admiten elementos repetidos. Como elemento principal aparece la clave primaria. Las tuplas no estn ordenadas (de arriba hacia abajo). Los atributos no estn ordenados (de izquierda a derecha) Todos los valores de los atributos son atmicos. Es equivalente a decir las relaciones no contienen grupos repetitivos y en este caso estaran normalizadas.
Tablas Base
Son tablas creadas va un comando del lenguaje de definicin de datos, los datos asociados a estas tablas son almacenados permanentemente en memoria secundaria.
Tablas Derivadas
Constituyen derivaciones de las tablas bsicas, obtenidas mediante la utilizacin de comandos de un lenguaje de manipulacin de datos. Los datos de este tipo de tabla tienen una vida temporal y normalmente constituyen datos redundantes.
Tipos de Relaciones o tablas:
Vistas o Views
Las vistas tambin se denominan tablas virtuales. Las tuplas que compondrn las vistas sern generadas cada vez que la vista requiera ser utilizada.
Los datos que componen una vista provienen de la ejecucin de algunos comandos del lenguaje de manipulacin de datos.
Para crear una vista se utiliza un algoritmo especialmente definido para este fin, el cual es ejecutado cada vez que se utiliza la vista y es almacenado en memoria secundaria, este procedimiento es absolutamente transparente para el usuario.
21
Existen dos razones principales para utilizar Vistas:
- Calcular valores en funcin de datos almacenados en las tablas de la base.
- Restringir acceso tanto a filas como columnas de una tablas para determinados usuarios.
Reglas de Integridad
El modelo relacional define dos reglas generales para mantener la integridad de los datos :
Integridad de la entidad : Una clave primaria no puede aceptar valores nulos. Integridad de las referencias : Todo valor definido como clave fornea debe tener su correspondencia con un valor de clave primaria en la relacin referenciada.
Reglas de Integridad
Base de datos relacional (Definicin)
Conociendo los conceptos antes presentados, podemos definir una base de datos relacional como un conjunto de relaciones normalizadas* de distinto grado.
*Normalizada en primera forma normal.
Bases de Datos Relacionales
El modelo relacional es uno de los modelos de bases de datos ms utilizados y que presenta una fuerte base terica.
22
Existe una gran variedad de Sistemas Administradores de Bases de Datos en el mercado, basados en este modelo: Oracle, SyBase, Informix, Ingres, DB2, entre otros. El modelo relacional suele dividirse en tres partes :
o Estructura de datos (Relacin) o Integridad o Manipulacin
Componentes de un SABDR
Un Sistema Administrador de Base de Datos (SABD) posee diversos componentes entre los que se cuentan: o Catlogo del sistema o Un lenguaje de datos (definicin y manipulacin)
Lenguaje de datos relacional
El modelo relacional considera un lenguaje de datos que permite la definicin y manipulacin de datos. La porcin de lenguaje de manipulacin de datos (DML) permite la obtencin de informacin (consultas), mediante operadores de consulta que se basan en el lgebra relacional. A su vez, el lenguaje de definicin de datos (DDL) permite la definicin de esquemas relacionales (Creacin de tablas, vistas, privilegios, etc.)
LGEBRA RELACIONAL
El algebra relacional consiste en un conjunto de operadores de alto nivel que operan sobre relaciones. Cada uno de estos operadores toma una o dos relaciones como entrada y produce una nueva relacin de salida. COOD DEFINE UN CONJUNTO DE OCHO OPERADORES CLASIFICADOS EN DOS GRUPOS:
a)Las operaciones tradicionales de conjuntos unin, interseccin, diferencia y producto cartesiano.
b)Los operadores especiales de restriccin, proyeccin, reunin y divisin
23
A) LAS OPERACIONES TRADICIONALES DE CONJUNTOS UNION, INTERSECCION, DIFERENCIA Y PRODUCTO CARTESIANO.
Unin: Construye una relacin formada por todas las tuplas que aparecen en cualquiera de las dos relaciones especificadas Interseccin :Construye una relacin formada por aquellas tuplas que aparezcan en las dos relaciones especificadas Diferencia: Construye una relacin formada por todas aquellas tuplas de la primera relacin que no aparezcan en la segunda de las dos relaciones especificadas Producto cartesiano: A partir de dos relaciones especificadas, construye una relacin que contiene todas las combinaciones posibles de tuplas, una de cada una de las relaciones.
B) LOS OPERADORES ESPECIALES DE RESTRICCIN, PROYECCIN, REUNIN Y DIVISIN
Restriccin: Extrae las tuplas especificadas de una relacin dada (restringe la relacin solo a las tuplas que satisfagan una condicin especificada) Proyeccin: Extrae los atributos especificados de una relacin dada Reunin: A partir de dos relaciones especificadas, construye una relacin que contiene todas las posibles combinaciones de tuplas, una de cada una de las dos relaciones, tales que las dos tuplas participantes en una combinacin dada satisfagan alguna condicin especificada Divisin: Toma dos relaciones, una binaria y una unaria y construye una relacin formada por todos los valores de una atributo de la relacin binaria que concuerdan (en el otro atributo) con todos los valores de la relacin unaria.
Lenguaje de Consulta Estructurado (SQL)
SQL (Structured Query Language) es un lenguaje que permite la definicin y la manipulacin de una base de datos relacional. Se ha establecido como el lenguaje estndar de bases de datos relacionales, utilizndose en la mayora de los SABDR como Oracle, Informix, Sybase, DB2, SQLServer, etc. Aunque las versiones de SQL utilizadas en productos difiere en aspectos del lenguaje, podra hablarse de la existencia de un estndar.
24
SQL (Caractersticas)
SQL se puede usar en forma interactiva o inmerso en lenguajes de programacin de propsito general como Cobol, C , Power Builder, Visual Basic, etc. SQL se compone de :
o DDL (lenguaje de definicin de datos) : Define y modifica esquemas relacionales, crear tablas, crear vistas, definir accesos, etc. o DML (lenguaje de manipulacin de datos ) : Basado en el lgebra relacional permite la recuperacin de informacin.
Definicin de datos (Ejemplo)
La siguiente es la definicin de la tabla ALUMNOS:
Create Table Alumnos ( Rut char(10) Not Null, Nombre char(30), Fecha_Nacim Date, Carrera char(12), Primary Key (Rut), Foreign Key (Carrera) References Carrera );
Manipulacin de datos
La estructura de una consulta simple en SQL es :
SELECT : Lista los atributos deseados.
FROM : Lista las tablas que se van a utilizar en la consulta.
WHERE : Consta de un predicado que implica atributos de las relaciones que aparecen en la clusula FROM.
Consultas (Ejemplo)
25
Consultas (Forma General)
La forma general de una consulta en SQL es :
Select columna1, columna2, . From tabla1.tabla2, Where condicin de restriccin Group By Columna(s) de agrupacin Having condicin_restriccin_sobre_grupo Order By especificacin de orden
Otras clusulas de SQL
INSERT : Inserta una nueva fila (tupla) en la tabla. Insert Into nombre_tabla ( atributo1, atributo2,... ) Values ( valor1, valor2, ); UPDATE : Actualiza valores de atributo de una tabla. Update nombre_tabla Set atributo = valor Where condicin; DELETE : Elimina tuplas de la tabla que cumplan con la condicin. Delete From nombre_tabla Where condicin; GRANT : Concede privilegios de acceso a los datos a los usuarios. Grant privilegio On Table nombre_tabla To identificacin_usuario;
26
Diseo de base de datos
Una de las formas de disear una base de datos relacional es comenzar con un modelo E/R. El modelo entidad relacin es un modelo semntico de datos, por lo que debe ser refinado para que corresponda a los formalismos de un SABDR.
Del modelo E/R modelo Relacional
El paso de un esquema en el modelo ER al modelo relacional est basado en los tres principios siguientes: o Toda Entidad se convierte en una relacin. o Toda interrelacin N:M se transforma en una relacin. o Toda interrelacin 1:N se traduce en el fenmeno de propagacin de claves o se crea una nueva relacin. (Concepcin y Diseo de Base de Datos , Adoracin de Miguel, Mario Piattini)
Modelo Entidad/Relacin (Ejemplo).
Del modelo E/R al Relacional
En este caso se trata de una relacin de 1:N por lo que la relacin Pertenece desaparece y se produce una propagacin de clave. El esquema relacional queda de la siguiente manera:
Alumno (Rut, Nombre, Fecha_nac,Carrera)
Carrera (Cod_carrera, Nombre, departamento)
27
Del modelo E/R al Relacional
En este caso se trata de una relacin de N:N, por lo que la interrelacin Inscribe pasa a ser una relacin del esquema relacional. El esquema relacional queda de la siguiente manera:
La teora de normalizacin apoya el diseo de bases de datos relacionales buscando una forma ms deseables para las relaciones del modelo (en trminos de mantener la integridad). Se dice que una relacin est en una determinada forma normal si satisface un cierto nmero de restricciones. El modelo relacional considera como obligatoria slo la Primera Forma Normal, las formas normales superiores persiguen un fin de optimizacin.
Otros Modelos de Bases de Datos
Los sistemas de bases de datos pueden clasificarse de acuerdo a las estructuras de datos y a los operadores presentados al usuario. Entre los sistemas ms antiguos se encuentran los modelos de Red y Jerrquicos (prerelacionales). Uno de los modelos ms importantes es el Modelo Relacional aparecido en los 70. Posteriormente aparecen los llamados sistemas postrelacionales entre los se cuentan: Sistemas Relacional Extendido Sistemas Orientados a Objeto Sistemas Deductivos
28
Conclusiones
El modelo relacional se presenta como uno de los modelos ms utilizados para la construccin de bases de datos.
Su podero se centra en que utiliza una sola estructura de datos, la relacin, lo que le otorga gran flexibilidad, uniformidad y sencillez.
SQL es el lenguaje estndar de las SABDR y permite definir y manipular tablas , siendo utilizado tanto en forma interactiva como inmerso en aplicaciones.
Referencias
Korth, H.F. & Silbelrschatz, A. (1993). Fundamentos de base de datos, segunda edicin. McGraw-Hill.
Ullman, J.D. (1980). Principles of Database Systems. Computer Science Press.