Modelo relacional Informática aplicada.

Slides:



Advertisements
Presentaciones similares
Dpto. Informática IES Juan de la Cierva
Advertisements

IBD Plan 90 y 2003 Clase 11.
IBD Clase 14.
Diseño de Bases de Datos
Seminario: Expresividad semántica y lógica de segundo orden
Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación.
integridad referencial
Rocío Contreras Águila Primer Semestre 2010
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
Teórico: Modelo Relacional
Bases de Datos Relacionales
ALGEBRA RELACIONAL Y CALCULO RELACIONAL CON REFERENCIA A BASE DE DATOS
MODELO RELACIONAL.
Especialista en Business Intelligence Integration Services SSIS (Sesión 5) Microsoft SQL Server 2008 R2 (Nov.2013) Suscribase a o.
SQL Server Integration Services SSIS
INTELIGENCIA ARTIFICIAL
Estadística Computacional I
Estadística Computacional I
Estadística Computacional I
Maestría en Bioinformática Bases de Datos y Sistemas de Información Fundamentos de Matemática Ing. Alfonso Vicente, PMP
Teórico: Algebra Relacional
ALGEBRA RELACIONAL.
Teoría de Bases de Datos
MODELO RELACIONAL.
ALGEBRA y CÁLCULO RELACIONAL
Tema 8 : Sistemas relacionales Resumen Sobre el modelo relacional
METODOLOGIA DE LA PROGRAMACION
ESTRUCTURAS DE CONTROL
PROGRAMACION II.  Es un conjunto de datos no necesariamente del mismo tipo, los cuales se podrán manipular o realizar cualquier operación sobre cada.
BASE DE DATOS I Clase # 1.

BASES DE DATOS I CAPÍTULO 2 EL MODELO RELACIONAL Guillermo Baquerizo
Lenguajes Formales de Consulta
Diseño de Bases de Datos
SQL el Structured Query Language no es mas que un lenguaje estándar de comunicación con bases de datos.
Ing. Fabián Ruano.  Definición  Diferencias con BD Centralizadas.
Facultad de Tecnología Informática
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar.
John Freddy Duitama Muñoz. Facultad de Ingeniería. U. de. A.
Métrica v2.1 Técnicas: Modelado de datos (Parte 2)
MODELADO DE DATOS (PARTE 2) Viviana Poblete L. Modelo de Datos I.
COMANDOS SQL.
SQL Informática aplicada.
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
Algebra Relacional Ing. Fabián Ruano.
Algebra Relacional.
Chapter 13 Normalization Transparencies © Pearson Education Limited 1995, 2005.
DISEÑO DE BASES DE DATOS
Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes.
Diseño de base de datos Tema 4 : Algebra relacional.
Bases de Datos Sql.
Expresiones algebraicas equivalentes
Especialista en Business Intelligence Integration Services SSIS Transformaciones (Parte 3) Microsoft SQL Server 2008 R2 Suscribase a
UNIDAD III: MODELAJE DE BASE DE DATOS RELACIONAL..
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Ingeniería de Sistemas y Modelamiento.
Para pasar a tablas todos los datos sin dejar nada y que las tablas tengan sentido por si solas se tiene que seguir unos pasos: 1.Toda entidad se transforma.
Capítulo 3: Conjuntos Autor: José Alfredo Jiménez Murillo.
Tipos de Datos.
Bases de Datos Modelo Relacional.
JOIN EN MYSQL Bueno en esta presentación mostrare cosas acerca de los usos de la sentencia JOIN en mysql , mediante esta presentación planeo mostrar los.
MSSQL SERVER CURSO BÁSICO 1. CONCEPTOS BASICOS DE SQL. DESCRIPCIÓN DEL CURSO. Sesión 3: Índices Uso, Creación, Tipos, Eliminación LENGUAJE DE CONSULTAS.
MODELO LOGICO BASE DE DATOS
DISEÑO DE BASES DE DATOS (modelos para el diseño)
Unidad 6. Tema 4. Lenguaje de consultas SQL
Base de Datos I – Ing. Mary Carlota Bernal J.
Creado por Edgar Codd, 1970: Artículo “A Relational Model of Data for Large Shared Data Banks”. EL MODELO RELACIONAL.
Administración de Base de Datos Procesamiento y Optimización de Consultas Prof Mercy Ospina Torres Prof Renny A. Hernandez
Structure Query Languaje SQL. Introducción a SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por.
Algebra relacional Integrantes: Víctor Sergio López Sainz. Francisco Javier centeno. Verdín Carlos Omar.
Transcripción de la presentación:

Modelo relacional Informática aplicada

Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones adicionales del álgebra relacional Valores nulos Modificación de la base de datos

Ejemplo de una relación

Estructura básica Formalmente, dados los conjuntos D1, D2, …, Dn una relación es un subconjunto de D1 D2,  Dn Entonces, una relación es un conjunto de n-tuplas (a1, a2, …, an) donde cada a1 D1. Ejemplo: Si custome_name = {Jones, Smith, Curry, Linsay, …} /*conjunto de todos los nombre*/ customer_street = {Main, North, Park, …} /*conjunto de todos los nombres de calles*/ customer_city = {Harrison, Rye, Pittsfield, ..} /*conjunto de todos los nombres de ciudades*/ Entonces r = {(Jones, Main, Harrison), (Smith, North, Rye), (Curry, North, Rye), (Linsay, Park, Pittsfield)} Es una relación sobre custome_name  customer_street  customer_city

Tipos de atributos Cada atributo de una relación tiene nombre El conjunto de valores permitidos para cada atributo es llamado el dominio del atributo. Los valores de los atributos (normalmente) se requiere que sea atómicos, esto es, idivisibles. Los valores multivaluados no son atómicos Los atributos compuestos no son atómicos Un valor especial null es miembro de todo dominio. Los valores nulos causan complicaciones en la definición de mucha operaciones. Ignoraremos los efectos de los valores nulos en nuestra presentación principal y consideraremos sus efectos después.

Esquema de relaciones A1, A2, …, An son atributos R = (A1, A2, …, An ) es un esquema de relación Customer_schema = (customer_name, customer_street, customer_city) r(R) es una relación en el esquema de relación R customer(Customer_schema)

Esquemas del banco Account-schema = (account-number, branch-name, balance) Branch-schema = (branch-name, branch-city, assets) Customer-schema = (customer-name, customer-street, customer-city) Depositor -schema = (customer-name, account-number) Loan-schema = (loan-number, branch-name, amount) Borrower-schema = (customer-name, loan-number)

Instancia de relación Los valores actuales (instancia de relación) de una relación son especificados por una tabla Un elemento t de r es una tupla, representada por un renglón en la tabla atributos (o columnas) customer-name customer-street customer-city Jones Smith Curry Lindsay Main North Park Harrison Rye Pittsfield tuplas (o renglones) customer

Las relaciones no tiene orden El orden en la tuplas es irrelevante (las tuplas se pueden almacenar en orden arbitrario) Relación account con tuplas desordenadas

Bases de datos Una base de datos consiste de múltiples relaciones La información acerca de una empresa es rota en partes, con cada relación guardando una parte de la información account: guarda información de las cuentas depositor: guarda información acerca de que cliente posee cual cuenta. customer: guarda información acerca de los clientes Guardando información como una relación simple como bank(account_number, balance, customer_name, …) resulta en Repetición de infrormación (dos clientes poseen una cuenta) Necesidad de valores nulos (representar un cliente sin una cuenta) La teoría de normalización trata del diseño de esquemas relacionales.

La relación customer

La relación depositor

Diagrama ER para el banco

Claves Sea K  R K es superllave de R los valores de K son suficientes para identificar una tupla única de cada posible relación r(R) Por “posible r” queremos decir una relación r que puede existir en una empresa que estemos modelando. Ejemplo: {cutomer_name, customer_street} y {cutomer_name} Son ambas superllaves de customer, si ningún par de clientes pueden tener el mismo nombre. K es una llave candidata si K es mínima. Ejemplo: {cutomer_name} es una llave candidata para customer, ya que es una supellave , y ningún subconjunto de esta es superllave. Debe cumplirse que si t1 y t2 están en r y t1  t2, entonces t1[K]  t2[K].

Determinando claves desde conjuntos ER Conjunto de entidades fuertes: La llave primaria de una entidad viene a ser la llave primaria de la relación Conjunto de entidades débil: La llave primaria de la relación consiste de la unión de la llave primaria de la entidad fuerte y el discriminador de la entidad debil Conjunto de relaciones: La unión de las llaves primarias de los conjuntos de entidades relacionadas es la superllave de una relación. Para un conjunto de relaciones binarias de mucho a uno, la llave primaria del conjunto de entidades “muchos” es la llave primaria de la relación Para un conjunto de relaciones uno a uno, la llave primaria de la relación puede ser cualquiera de las llaves de los conjuntos de entidades. Para un conjunto de relaciones muchos a muchos, la unión de las llaves primarias viene a ser la llave primaria de la relación

Diagrama esquema para la empresa del banco En el diagrama del esquema aparece cada relación como un rectángulo con loa atributos listados adentro y el nombre de la relación arriba. En un recuadro superior del rectángulo aparecen los atributos clave. Las dependencias de llaves foráneas aparecen como flechas desde la llave foránea hasta la llave primaria de la relación referenciada.

Lenguajes de consulta Lenguajes para que el usuario solicite información de la base de datos Categorías de los lenguajes Procedural No Procedural Lenguajes puros Álgebra relacional Cálculo relacional de tuplas Cálculo relacional de dominios Los lenguajes puros forman la base de los lenguajes de consulta que usa la gente

Álgebra relacional Lenguaje procedural Seis operadores básicos Selección Proyección Unión Diferencia de conjuntos Producto cartesiano Renombrado Los operadores toman dos o más relaciones como entrada y generan una nueva relación como resulatdo

Operación de selección - ejemplo B C D Relación r a b 1 5 12 23 7 3 10 sA=B^D>5(r) A B C D a b 1 23 7 10

Operación de selección Notación: sp(r) p es llamado predicado de selección Definido como: sp(r) = {t | t  r y p(t)} Donde p es una fórmula del cálculo proposicional consistiendo de términos conectados por:  (y),  (o),  (no) Cada término es uno de: <atributo> op <atributo> o <constante> Donde op es uno de: =, , >,  ,<,  Ejemplo de selección: sbranch_name(account)

Ejemplos sbranch_name=‘Perryridge’ (loan) sloan>1200 (loan) sloan>1200 ^ branch_name=‘Perryridge’ (loan) sloan>1200 ^ loan<4000 (loan)

Operación de proyección - ejemplo B C Relación r a b 10 20 30 40 1 2 PA, C(r) A C A C a b 1 2 a b 1 2

Operación de proyección Notación: PA1,A2,…,Ak(r) Donde A1, A2, son nombres de atributos y r es el nombre de la relación El resultado está definido como una relación de k columnas obtenidas al borrar las columnas no listadas Los renglones duplicados son eliminados del resultado, yaque son conjuntos Ejemplo: para eliminar el atributo branch_name de account Paccount_number, balance(account)

Operación de unión - ejemplo B Relaciones r y s A B a b 1 2 a b 2 3 r  s A B a b 1 2 3

Operación de unión Notación: r  s Definido como: r  s = {t | t  r o t  s} Para que r  s sea válido r y s deben tener la misma aridad (mismo número de atributos) Los atributos deben ser compatibles (los valores de las columnas correspondientes debes ser del mismo tipo) Ejemplo: encontrar todos los clientes con una cuenta o un préstamo Pcustomer_name(depositor)  Pcustomer_name(borrowert

Operación de diferencia - ejemplo B Relaciones r y s A B a b 1 2 a b 2 3 r - s A B a b 1

Operación de diferencia Notación: r - s Definido como: r - s = {t | t  r y t  s} Para que r - s sea válido r y s deben tener la misma aridad (mismo número de atributos) Los atributos deben ser compatibles (los valores de las columnas correspondientes debes ser del mismo tipo) Ejemplo: encontrar todos los clientes con una cuenta pero sin un préstamo Pcustomer_name(depositor) - Pcustomer_name(borrower)

Operación de producto cartesiano - ejemplo B Relaciones r y s C D E a b 1 2 a b b g 10 20 A B C D E a b 1 2 g 10 20 r  s

Operación de producto cartesiano Notación: r  s Definido como: r  s = {t q | t  r y q  s} Se supone que los atributos de r(R) y s(S) son disjuntos. (R  S = ) Si no son disjuntos, se debe usar renombrado.

Composición de operaciones Se pueden construir expresiones usando múltiples operaciones Ejemplo: sA=B (r  s) r  s sA=B (r  s) A B C D E a b 1 2 g 10 20 A B C D E a b 1 2 10 20

Ejemplos Pcustomer-name (scustomer-city =“Harrison”(customer)) Nombres de clientes que viven en Harrison. Pcustomer-name (scustomer-city =“Harrison”(customer)) bcustomer_name, borrower.loan_number, loan.loan_number, branch_name, amount sbranch-name =“Perryridge”(borrower × loan) Misma que la anterior pero de clientes que SI tiene préstamo. sborrower.loan_number = loan.loan_number (sbranch-name =“Perryridge”(borrower × loan)) Solo los nombres Pbcustomer_name(sborrower.loan_number = loan.loan_number (sbranch-name =“Perryridge”(borrower × loan)))

Operación de renombrado Permite nombrar, y por lo tanto referirse a, el resultado de una expresión del álgebra relacional Permite referirse a una relación con más de un noombre Ejemplo: r x (E) regresa la expresión E bajo el nombre x. Si la expresión de álgebra relacional E tiene aridad n, entonces r x(A1, A2,…, An) (E) regresa la expresión E bajo el nombre x y con los atributos renombrados A1, A2, …, An.

Banking Example branch (branch-name, branch-city, assets) customer (customer-name, customer-street, customer-only) account (account-number, branch-name, balance) loan (loan-number, branch-name, amount) depositor (customer-name, account-number) borrower (customer-name, loan-number)

loan-number (amount > 1200 (loan)) Example Queries Encontrar todos los préstamos sobre $1200 amount > 1200 (loan) Encontrar los números de préstamo para cada préstamo para el cual la cantidad es mayos que $1200. loan-number (amount > 1200 (loan))

Example Queries Encontrar los nombres de todos los clientes que tienen un préstamo, o una cuenta o ambos en el banco. customer-name (borrower)  customer-name (depositor) Encontrar los nombres de todos los clientes que tienen un préstamo y una cuenta en el banco. customer-name (borrower)  customer-name (depositor)

Example Queries customer-name (branch-name=“Perryridge” Encontrar los nombres de todos los clientes que tienen un préstamo en la sucursal Perryridge customer-name (branch-name=“Perryridge” (borrower.loan-number = loan.loan-number(borrower x loan))) Encontrar los nombres de todos los clientes que tienen un préstamo en la sucursal Perryridge pero que no tienen cuenta en cualquier sucursal del banco. customer-name (branch-name = “Perryridge” (borrower.loan-number = loan.loan-number(borrower x loan))) – customer-name(depositor)

Example Queries Encontrar los nombres de todos los clientes que tienen un préstamo en la sucursal Perryridge Query 1 customer-name(branch-name = “Perryridge” ( borrower.loan-number = loan.loan-number(borrower x loan)))  Query 2 customer-name(loan.loan-number = borrower.loan-number( (branch-name = “Perryridge”(loan)) x borrower))

Example Queries balance(account) - account.balance Encontrar la cuenta con el saldo más alto. Renombre la relación account como d La consulta es balance(account) - account.balance (account.balance < d.balance (account x rd (account)))

Definiciones formales Una expresión básica del álgebra relacional consiste de una de las siguientes: Una relación en la base de datos Una relación constante Sean E1 y E2 expresiones del álgebra relacional: las siguientes son todas expresiones del álgebra relacional: E1  E2 E1 – E2 E1  E2 sp(E1), p es un predicado en atributos en E1 Ps(E1), S es una lista consistiendo de algunos de los atributos en E1 r x (E1) x es un nuevo nombre para el resultado de E1.

Operaciones adicionales Agregaremos nuevas operaciones que no añaden poder al álgebra relacional, pero que simplifican consultas comunes. Intersección de conjuntos Reunión natural División Asignación

Operación de intersección Notación: r  s Definido como: r  s = {t | t  r y t  s} Para que r  s sea válido r y s deben tener la misma aridad (mismo número de atributos) Los atributos deben ser compatibles (los valores de las columnas correspondientes debes ser del mismo tipo) Nota: r  s = r – ( r – s)

Operación de unión - ejemplo B Relaciones r y s A B a b 1 2 a b 2 3 r  s A B a 2

Operación unión natural Notación: r s Sean r y s relaciones en los esquemas R y S respectivamente. Entonces, r s es una relación en esquema R  S obtenida como sigue: Considere un par de tuplas tr en r y ts en s. Si tr y ts tienen el mismo valor en cada uno de los atributos de R  S, agregar t al resultado, donde t tiene el mismo valor que tr en r t tiene el mismo valor que ts en s Ejemplo R = (A, B, C, D) S = (E, B, D) Esquema resultante = (A, B, C, D, E) r s se define como: Pr.A, r.B, r.C, r.D, s.E(s r.B = s.B ^ r.D = s.D(r  s))

Ejemplo de reunión natural B C D s B D E a b g d 1 2 4 1 3 2 a b g d e A B C D E a d 1 2 g b r s

Operación de división r  s Adecuada para las consultas que incluyen la frase “para todos” Sean r y s relaciones en los esquemas R y S respectivamente donde: R = (A1, …, Am, B1, …, Bn) S = (B1, …, Bn) El resultado de r  s es una relación en el esquema R – S = (A1, …, Am) r  s = {t | t  PR-S(r) ^  u  s(tu  r) }

Ejemplo de división A B B a b g d e 1 2 3 4 6 1 2 r s A r  s a b

Otro ejemplo de división A B C D E s D E a b g 1 3 a b 1 A B C r  s a g

Operación de división cont. Propiedad Sea q – r  s Entonces q es la relación más grande que satisface q  r  s Definición en términos de las operaciones básicas del álgebra relacional. Sea r(R) y s(S) relaciones, y sea S  R r  s = PR–S(r) – PR–S((PR–S(r)  s) – PR–S,S(r)) Para ver como PR–S,S(r) simplemente reordena los atributos de r PR–S((PR–S(r)  s) – PR–S,S(r)) da aquellas tuplas en PR–S(r) tales que para alguna tupla u  s, ts  r.

Operación de asignación La operación de asignación ( ) provee una forma conveniente de expresar consultas complejas. Escriba consultas como un programa secuencial consistiendo en Una seria de asignaciones Seguidas por una expresión cuyo valor es desplegado como resultado de la consulta Las asignaciones deben ser hechas sobre variables de relación temporales Ejemplo: escriba r  s como temp1  PR–S(r) temp2  PR–S((temp1  s) – PR–S,S(r)) result  temp1 – temp2 El resultado a la derecha de  es asignado a la variable relación a la izquierda de  . Se puede usar la variable en las expresiones subsecuentes.

Ejemplos de Consultas Encontrar los clientes que tienen una cuenta en por lo menos en la sucursal “Downtown” y “Uptows” Donde CN denota customer-name y BN denota branch-name. Consulta 1 CN(BN=“Downtown”(depositor account))  CN(BN=“Uptown”(depositor account)) Consulta 2 customer-name, branch-name (depositor account)  temp(branch-name) ({(“Downtown”), (“Uptown”)})

Ejemplos de Consultas Encontrar todos los clientes que tienen una cuenta en alguna sucursal de Brooklyn customer-name, branch-name (depositor account)  branch-name (branch-city = “Brooklyn” (branch))

Operaciones extendidas del álgebra relacional Proyección Generalizada Unión externa Funciones de Agregación

Proyección generalizada Extiende la operación de proyección permitiendo que funciones aritméticas sean usadas en la lista de proyección.  F1, F2, …, Fn(E) E es cualquier expresión del álgebra relacional Cada una de las F1, F2, …, Fn son expresiones aritmeticas involucrando constantes and atributos en el esquema de E. Dada la relación credit-info(customer-name, limit, credit-balance), encontrar cuanto más puede una persona gastar: customer-name, limit – credit-balance (credit-info)

Funciones de agregación y operadores Las funciones de Agregación toma una colección de valores y regresa un valor simple como resultado. avg: valor promedio min: valor mínimo max: valor máximo sum: suma de values count: number of values Operación de agregación en álgebra relacional G1, G2, …, Gn g F1( A1), F2( A2),…, Fn( An) (E) E es cualquier expresión de álgebra relacional G1, G2 …, Gn es una lista de atributos en los cuales agrupar (puede estar vacío) Cada Fi es una función de agregación Cada Ai es un nombre de atributo

Ejemplo de funciones de agregación Relación r: A B C     7 3 10 sum-C g sum(c) (r) 27

Ejemplo de funciones de agregación Relación account agrupada por branch-name: branch-name account-number balance Perryridge Brighton Redwood A-102 A-201 A-217 A-215 A-222 400 900 750 700 branch-name g sum(balance) (account) branch-name balance Perryridge Brighton Redwood 1300 1500 700

Funciones de agregación (cont.) Los resultados de las funciones de agregación no tienen nombre Se puede usar la operación de renombrado Por conveniencia se permite el renombrado en las funciones de agregación. branch-name g sum(balance) as sum-balance (account)

Unión externa Una extensión de la operación de unión para evitar pérdida de información Calcula la unión luego agrega tuples desde una relación que no ajustan en la otra relación al resultado de la unión. Usa valores nulos. null significa que el valor es desconocido o no existe Todas laqs comparaciones involucrando nulos son (rigurosamente) falsos por definición Las comparaciones con nulos se verán más adelante

Ejemplo de unión externa Relation loan 3000 4000 1700 loan-number amount L-170 L-230 L-260 branch-name Downtown Redwood Perryridge Relation borrower customer-name loan-number Jones Smith Hayes L-170 L-230 L-155

Ejemplo de unión externa Inner Join reunión interna loan Borrower loan-number amount L-170 L-230 3000 4000 customer-name Jones Smith branch-name Downtown Redwood Left Outer Join (unión externa izquierda) loan Borrower Jones Smith null loan-number amount L-170 L-230 L-260 3000 4000 1700 customer-name branch-name Downtown Redwood Perryridge

Ejemplo de unión externa Right Outer Join (unión externa derecha) loan borrower loan-number amount L-170 L-230 L-155 3000 4000 null customer-name Jones Smith Hayes branch-name Downtown Redwood Full Outer Join (reunión externa total) loan borrower loan-number amount L-170 L-230 L-260 L-155 3000 4000 1700 null customer-name Jones Smith Hayes branch-name Downtown Redwood Perryridge

Valores nulos Es posible que una tupla tenga valores nulos, denotados por null, para algunos de sus atributos. Null significa valor desconocido o que el valor no existe El resultado de operaciones aritméticas involucrando null es null Ej. 5 + null es null Las funciones de agregación ignoran los valores nulos. Es una decisión arbitraria. Podría regresar nulo. Siguen la semántica de SQL en el manejo de nulos para eliminar duplicados y agrupación, los nulos son tratados como cualquier otro valor, y dos nulos se suponen ser iguales. Alternativas: suponen que los nulos son diferentes Ambas decisiones arbitrarias, se sigue SQL

Valores nulos Cualquier comparación con null regrese desconocido Ej. 5<num o nul<>nul o nul=nul Lógica de tres valores usando el valor desconocido: OR: (desconocido or true) = true (desconocido or falso) = desconocido (desconocido or desconocido ) = desconocido AND: (desconocido and true) = desconocido (desconocido or falso) = false NOT: desconocido = desconocido “P es desconocido” se evalua como true si el predicado P se evalua como desconocido. El resultado de la cláusula select es tratado como false si se evalua a desconocido.

Modificación de la base de datos El contenido de la base de datos puede ser modificado por las siguientes operaciones Borrado Inserción Actualización Todas las operaciones se expresan mediante asignación

Borrado Una petición de borrado se expresa como una consulta. Excepto que en lugar de desplega tupla al usuario, las tuplas seleccionadas son borradas de la base de datos Solo se pueden borrar tuplas completas, no se pueden borrar atributos particulares El borrado se expresa en álgebra relacional mediante r  r – E Donde r es una relación y E es una consulta del álgebra relacional

Ejemplo de borrado Borra todos los registros de cuentas en la sucursal Perryridge Borra todos los registros de préstamos con cantidades entre 0 y 50 Borra todas las cuentas en todas las sucursales localizadas en Needham. account  account – branch-name = “Perryridge” (account) loan  loan – amount 0and amount  50 (loan) r1  branch-city = “Needham” (account branch) r2  branch-name, account-number, balance (r1) r3   customer-name, account-number (r2 depositor) account  account – r2 depositor  depositor – r3

Inserción Para insertar en una relación, nosotros o bien: Especificamos la tupla a ser insertada Escribir una consulta cuyo resultado sea un conjunto de tuplas a insertar En álgebra relacional, una inserción se expresa por: r  r  E Donde r es una relación y E es una expresión del álgebra relacional La inserción de una sola tupla se expresa por E como una relación constante conteniendo una tupla

Ejemplos de inserción Inserte información en la base de datos especificando que Smith tiene $1200 en la cuenta A-913 en la sucursal Perryridge account  account  {“A-913”, “Perryridge” ,1200} depositor  depostor {“Smith”,“A-913”} Como un regalo para todas las cuentas en Perryridge, una cuenta de $200. El número del préstamo sirve como número de cuenta para la cuenta nueva. r1  (s branch-name = ‘Perryridge’(borrower loan)) account  account  P loan-number,branch-name,200(r1) depositor  depositor  P customer-name, loan_number(r1)