¡Descarga Introducción al Modelo Relacional de Bases de Datos: Características y Avances - Prof. Rab y más Apuntes en PDF de Sistemas de Gestión de Bases de Datos solo en Docsity! TEMA 3. EL MODEL RELACIONAL. TEMARI 1. Introducció. Llenguatges relacionals comercials 2. Descripció del model relacional 2.1. Relació. Domini. Atribut 2.2. Definició formal de relació 2.3. Classes de relacions 2.4. Claus 2.5. Restriccions. Inherents i semàntiques 2.6. Valors nuls 1 Introducció Llenguatges. . relacionals comercials INTRODUCCIÓ • Els avenços més importants que el model de dades relacional incorpora respecte als models de dades anteriors són: S ill i U if it t– enz esa n orm a – Fonamentació teòrica sòlida – Independència de l’interfície d’usuari. • Les avantatges anteriorment han contribuït a que des de mitjans dels anys 80, el MR sigui utilitzat per pràcticament la totalitat dels SGBD comercials. – Algunes de les principals empreses informàtiques del món, són en origen, empreses de SGBD: Oracle, Sybase, Informix,.. – Els grans fabricants de software tenen el “seu” SGBD relacional: IBM DB2, Microsoft SQL Server,.. – Existeixen molts SGBD dissenyats per PC’s i usuaris no experts: Microsoft Acces,.. • El gran èxit real del MR ha suposat que el canvi tecnològic a la següent generació sigui evolutiu i no revolucionari: – Triomfen els SGBD Objecte_Relacionals, i – Fracassen, en general, els SGBD d’Objectes purs. DESCRIPCIÓ DEL MODEL • Estructura: ha de permetre representar la informació que ens interessa del món real. • Relació: és l’estructura bàsica del model relacional. Es representa amb una taula. • Atribut: representa les propietats de la relació. Es representa amb una columna • Domini: és el conjunt vàlid de valors que pren un atribut • Tupla: és una ocurrència de la relació Es representa amb una fila . . • Regles d’integritat • Operacions RELACIÓ • La relació és l’element fonamental del model relacional (d’aquí el nom del model), és pot representar en forma de taula: Factures Codfac Data Codcli iva 3211 23/12/02 14 16 Tupla1 3212 24/07/02 8 Tupla2 3213 04/08/02 14 7 .... 3215 09/09/02 145 16 tuplam • Però, EN COMPTE!! Una relació no és una taula. Existeixen diferències entre ambdues estructures. DOMINI • Un domini és un conjunt nominat, finit i homogèni de valors atòmics. – El domini s’identifica per un nom – Tots els valors són del mateix tipus, i – Els valors són atòmics, no poden ser una relació, un grup repetitiu,... • Cada domini es pot definir de dos formes – Intensió (mitjançant un tipus de dades i certes restriccions com per exemple un rang de valors) • Edat enter – Extensió (donant tots els possibles valors) • Dies de la setmana={dilluns, dimarts, dimecres, dijous, divendres, dissabte, diumenge} ATRIBUT • És el paper (role) que juga aquest domini en la relació. • Un atribut i un domini es poden anomenar igual, però .. – Un atribut està sempre associat a una relació, mentre que un domini té existència pròpia amb independència de les relacions.!!! – Un atribut representa una propietat d’una relació – Un atribut pren valors d’un domini • Característiques: – No es poden repetir els atributs dins d’una relació – Es poden repetir els dominis dins d’una relació – L’atribut ha de ser univalor. RELACIÓ. NOM, CAPÇALERA • Nom: les relacions s’identifiquen per un nom . persona • Capçalera de relació: conjunt de n parells atribut‐domini subjacent, {(Ai:Di)} n i=1 on n és el grau {(d i t ) ( d ) ( d d )}n :en er , nom:ca ena , a reça:ca ena RELACIÓ. COS • Cos de la relació: conjunt de m tuples, (t1,t2,...,t ) on cada m tupla és un conjunt de n parells atribut‐valor, {(Ai:Vij)} on Vij és el valor j del domini Di associat a l’atribut Ai El nombre de tuples m és la cardinalitat. p1={(dni:36789876),(nom:”Joan López”),(adreça:”Major 45”)} p2={(dni:37789876),(nom:”Rosa Mas”),(adreça:”Cami Ral 445”)} p3={(dni:”38889876”),(nom:”Emilia Jiménez”),(adreça:”Riera 4”)} • Mentre que la capçalera és invariant, el cós varia en el transcurs del temps, a l’igual que la cardinalitat. CLAUS • Clau candidata (Candidate key) Importància de les claus primàries: Mecanisme d’adreçament de files d’un sistema relacional – És un conjunt no buit d’atributs que identifiquen unívoca i mínimament cada tupla de la relació. • Una relació pot tenir més d’una clau candidata. En aquesta situació s’ha de distingir entre: – Clau primària (Primary key) • És la clau candidata escollida per l’usuari per identificar les tuples de la relació. • Quan només existeix una clau candidata, aquesta és la clau primària (sempre existeix clau primària) – Claus alternatives o secundàries (Alternative key) • Són les claus candidates no escollides com a primària ...CLAUS... • Criteris per escollir la clau primària – Escollir la clau candidata • Amb el mínim nombre d’atributs • Amb menys canvis en el futur • Amb el mínim nombre de caràcters – La clau primària ha de mantenir sempre l’unicitat – La clau primària ha de ser d’utilització universal, i estar el més propera possible al punt de vista de l’usuari. – En el cas de no trobar cap clau primària adequada és possible crear‐ne una anomenada substituta o artificial (surrogate) que es forma normalment a partir d’una seqüència numèrica. Una BD relacional és una col.lecció de relacions (o taules en termes d’implementació); Però .... llavors. Representa la figura una BD relacional? Resposta: NO, doncs una BD (relacional o d’un altre tipus) és una col.lecció de dades interrelacionades. Necessitem associar unes relacions amb d’altres S’anomena Clau foràna o estrangera d’una relació R2 a un conjunt no buit d’atributs amb valors que coincideixen amb els valors de la clau primària d’una relació R1. La clau foràna i la clau primària corresponent han d’estar definides sobre els mateixos dominis. Les relacions R1 i R2 no necessàriament han de ser les mateixes. No necessàriament ha de ser la clau primària. Pot ser una clau candidata ser_cap cap subordinat client codcli nom adreça codpostal codpoble <pi> Number (5) Variable characters (50) Variable characters (50) Variable characters (5) Variable characters (5) <M> codcli <pi> venedor codve nom adreça codpostal codpoble <pi> Number (5) Variable characters (50) Variable characters (50) Variable characters (5) Variable characters (5) <M> codven <pi> realitzarassignar constar factura codfac data iva dto <pi> Number (6) Date Number (2) Number (2) <M> codfac <pi> l inia linia qtt preu dto <pi> Number (2) Number (5) Number (7,2) Number (2) <M> linia <pi> ser_de article codart descripcio preu stock stockmin <pi> Variable characters (8) Variable characters (40) Number (7,2) Number (6) Number (6) <M> codart <pi> codve = ven_codve Upd(R); Del(R);cpa client codcli nom adreça codpostal codpoble N5 VARCHAR(50) VARCHAR(50) VARCHAR(5) VARCHAR(5) <pk> venedor codve ven_codve nom adreça codpostal codpoble N5 N5 VARCHAR(50) VARCHAR(50) VARCHAR(5) VARCHAR(5) <pk> <fk> codcli = codcli Upd(R); Del(R);cpa codve = codve Upd(R); Del(R);cpa codfac = codfac Upd(C); Del(C);cpa factura codfac codcli codve data iva dto N6 N5 N5 DATE N2 N2 <pk> <fk1> <fk2> linia codfac linia codart qtt preu dto N6 N2 VARCHAR(8) N5 N7,2 N2 <pk,fk1> <pk> <fk2> codart = codart Upd(C); Del(R);cpa article codart descripcio preu stock stockmin VARCHAR(8) VARCHAR(40) N7,2 N6 N6 <pk> REGLES D’INTEGRITAT INTEGRITAT REFERENCIAL • Es refereix a les claus foranes. “Si en una relació hi ha alguna clau forana, els seus valors han de coincidir amb valors de la clau primària a la que fa referència, o bé, cal que siguin tots valors nuls”. • La Base de dades no pot contenir valors de clau forana sense concordança. – Per a qualsevol valor no nul de la clau forana existeix un valor associat a la clau primària de la relació objectiu. REGLES PER LES CLAUS FORANES • La regla d’integritat referencial ens descriu el que és un estat il.legal de la base de dades, però no ens diu com podem evitar‐lo!! • Què cal fer si ens trobem en un estat legal, i arriba una operació que ens condueix a un estat il.legal??. Tenim dues possibilitat: – Rebutjar l’operació – Acceptar l’operació i realitzar operacions addicionals compensatòries que ens condueixin a un estat legal. • És tasca del dissenyador de la base de dades indicar quines operacions cal rebutjar i quines necessiten operacions addicionals, o operacions de compensació. REGLES PER A LES CF. ACCIONS REFERENCIALS • Regla d’esborrat: Què fer si s’intenta esborrar la tupla a la que fa referencia una clau forana??? – Restringir – Propagar – Anul.lar: Té sentit que la clau forana accepti nuls?? • Regla de modificació: Què fer si s’intenta modificar el valor de la clau primària de la tupla a la que fa referència una clau forana??? – Restringir – Propagar – Anul.lar: Té sentit que la clau forana accepti nuls?? RESTRICCIONS SEMÀNTIQUES • Clau primària. PRIMARY KEY – Permet declarar un atribut o conjunt d’atributs com a clau primària d’una relació Permet definir claus primàries . . • Clau alternativa. UNIQUE – Permet especificar que els valors d’un conjunt d’atributs no es pot repetir en una relació. Permet definir claus alternatives. • Obligatorietat. NOT NULL – Permet definir l’obligatorietat d’un o més atributs indicat que el conjunt d’atributs no admet el valor nul • Integritat referencial. FOREIGN KEY – Opcions d’esborrat i actualització • Verificació. CHECK • Asserció. ASSERTION • Disparador. TRIGGER CHECK • Comprova en tota operació d’actualització, si la condició és certa o falsa, si és falsa rebutja l’operació. • Es defineix sobre un únic element de la BD: domini,relació... • La restricció s’inclou en la definició de l’element(dins d’un CREATE TABLE). • Pot tenir nom o no CHECK N_HORES>30 en CURS_DOCTORAT ASSERCIÓ • Actua de forma idèntica a l’anterior, però pot afectar a varis elements de la BD (per ex. a dues relacions diferents). • La definició no va lligada a un element, ha de tenir nom • És un element més de la BD CREATE ASSERTION CONCEDEIX_SOL.LICITA AS CHECK (SELECT cod_estudiant, cod_beca FROM CONCEDEIX) IN SELECT cod estudiant, cod beca _ _ FROM SOL.LICITA));