<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=O_modelo_relacional</id>
	<title>O modelo relacional - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=O_modelo_relacional"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=O_modelo_relacional&amp;action=history"/>
	<updated>2026-10-23T13:55:32Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=O_modelo_relacional&amp;diff=16184&amp;oldid=prev</id>
		<title>Arribi: /* Transformación de relacións binarias */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=O_modelo_relacional&amp;diff=16184&amp;oldid=prev"/>
		<updated>2010-04-08T15:27:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Transformación de relacións binarias&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Introdución=&lt;br /&gt;
O modelo relacional foi desenvolvido polo investigador [http://es.wikipedia.org/wiki/Edgar_Frank_Codd E.F Codd] en 1970 como alternativa aos modelos existentes até ese momento. Estes modelos tiñan bastantes problemas (inseguridade, falta de concorrencia, etc.), os cales xa se comentaron en [[Sistemas_xestores_de_bases_de_datos#Os_SXBD|seccións anteriores]].&lt;br /&gt;
&lt;br /&gt;
O modelo de Codd baséase en dúas áreas das matemáticas: a teoría de conxuntos e a lóxica de predicados, polo que é un modelo moi sólido. Perseguía, entre outros, os seguintes obxectivos:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Independencia física dos datos&amp;#039;&amp;#039;&amp;#039;. O xeito de almacenar os datos non debe influír na súa manipulación lóxica.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Independencia lóxica dos datos&amp;#039;&amp;#039;&amp;#039;. Os cambios que se realicen na BBDD non deben repercutir nos programas e usuarios que acceden a ela (recorda os tres niveis da [[Sistemas_xestores_de_bases_de_datos#Niveis_de_abstracci.C3.B3n|arquitectura ANSI/SPARC]])&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Flexibilidade&amp;#039;&amp;#039;&amp;#039; para presentar aos usuarios os datos da forma máis axeitada á aplicación que utilicen.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Sinxeleza&amp;#039;&amp;#039;&amp;#039; para a comprensión e manipulación da base de datos por parte do usuario final.&lt;br /&gt;
&lt;br /&gt;
Hoxe en día o modelo relacional é o máis coñecido e soportado (aínda que non completamente) polos SXBD (MySQL, Postgress, ORACLE, INFORMIX,... ).&lt;br /&gt;
&lt;br /&gt;
=Estrutura do modelo relacional=&lt;br /&gt;
==Relacións==&lt;br /&gt;
O elemento básico do modelo relacional é a &amp;#039;&amp;#039;&amp;#039;relación&amp;#039;&amp;#039;&amp;#039; que se representa mediante unha &amp;#039;&amp;#039;&amp;#039;táboa&amp;#039;&amp;#039;&amp;#039; (en realidade un conxunto de relacións representadas mediante táboas).&lt;br /&gt;
&lt;br /&gt;
Cada relación ten un &amp;#039;&amp;#039;&amp;#039;nome&amp;#039;&amp;#039;&amp;#039; e unha lista de &amp;#039;&amp;#039;&amp;#039;atributos&amp;#039;&amp;#039;&amp;#039; (as columnas da táboa) que describen un conxunto de entidades do mundo real. Cada fila (&amp;#039;&amp;#039;&amp;#039;tupla&amp;#039;&amp;#039;&amp;#039;) dunha táboa representa unha entidade do mundo real. Ademais:&lt;br /&gt;
*Unha relación non admite filas duplicadas.&lt;br /&gt;
*As filas e columnas non están ordenadas.&lt;br /&gt;
*A táboa é plana, é dicir, o cruce dunha fila e unha columna só pode ter un valor, por tanto, non se admiten atributos multivaluados. Por iso dise que cada valor dun atributo debe ser &amp;#039;&amp;#039;&amp;#039;atómico&amp;#039;&amp;#039;&amp;#039; (un único valor) ou nulo (que se descoñece o seu valor).&lt;br /&gt;
&lt;br /&gt;
==Dominios==&lt;br /&gt;
Igual que no modelo E-R, os atributos poden tomar un conxunto de valores que se coñece como &amp;#039;&amp;#039;&amp;#039;dominio&amp;#039;&amp;#039;&amp;#039;. O dominio pode ser &amp;#039;&amp;#039;&amp;#039;xeral&amp;#039;&amp;#039;&amp;#039; (por exemplo, o código postal está formado por números naturais de cinco cifras) ou &amp;#039;&amp;#039;&amp;#039;restrinxido&amp;#039;&amp;#039;&amp;#039; (por exemplo, o atributo sexo pode tomar os valores H ou M).&lt;br /&gt;
&lt;br /&gt;
==Intensión e extensión==&lt;br /&gt;
Unha relación ten un esquema ou &amp;#039;&amp;#039;&amp;#039;intensión&amp;#039;&amp;#039;&amp;#039; que é o conxunto de atributos que a forman, independentemente da orde na que estean. Represéntase da seguinte forma:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
R(A1, ... , An) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salvo que se modifique a definición do esquema este é invariable ao longo do tempo, polo que é &amp;#039;&amp;#039;&amp;#039;estático&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Por outra banda, a &amp;#039;&amp;#039;&amp;#039;extensión&amp;#039;&amp;#039;&amp;#039; dunha relación é o conxunto de tuplas, tal que cada tupla é unha lista de valores, é dicir, son os datos que hai na táboa nun momento dado (o contido da relación).&lt;br /&gt;
&lt;br /&gt;
É dinámica, pois hai insercións, borrados e actualizacións dos datos da táboa ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
==Grao e cardinalidade==&lt;br /&gt;
O &amp;#039;&amp;#039;&amp;#039;grao&amp;#039;&amp;#039;&amp;#039; dunha relación é o número de atributos que ten o seu esquema.&lt;br /&gt;
&lt;br /&gt;
A &amp;#039;&amp;#039;&amp;#039;cardinalidade&amp;#039;&amp;#039;&amp;#039; e o número de filas que ten a relación nun momento dado.&lt;br /&gt;
=Restricións do modelo relacional=&lt;br /&gt;
Definen as regras que debe cumprir o modelo.&lt;br /&gt;
&lt;br /&gt;
==Atributos==&lt;br /&gt;
O valor de cada atributo debe ser atómico e pertencente o dominio dese atributo, ie: dom(Idade): números naturais &amp;lt; 150. Ademais, os valores dun atributo deben verificar (&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;CHECK&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;) algunha condición, ie: idade para traballar 16 ≤ Idade ≤ 65&lt;br /&gt;
&lt;br /&gt;
==Chaves==&lt;br /&gt;
Non pode haber tuplas repetidas. Deben diferenciarse polo menos no valor dun atributo ou conxunto de atributos.&lt;br /&gt;
*As &amp;#039;&amp;#039;&amp;#039;chaves candidatas&amp;#039;&amp;#039;&amp;#039; son aquelas que teñen un número mínimo de atributos para diferenciar cada tupla.&lt;br /&gt;
*A &amp;#039;&amp;#039;&amp;#039;chave primaria&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;PRIMARY KEY&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;) ou principal é a chave seleccionada entre todas as candidatas, para identificar a cada unha das entidades. Todo atributo que compón a chave primaria non pode conter valores nulos (&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;NOT NULL&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
*Unha &amp;#039;&amp;#039;&amp;#039;chave alternativa&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;UNIQUE&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;) é cada unha das chaves candidatas que non foron seleccionadas como primaria. Toda táboa debe ter unha chave primaria.&lt;br /&gt;
&lt;br /&gt;
==Integridade referencial==&lt;br /&gt;
As regras de integridade referencial céntranse en como se relacionan as táboas no modelo relacional, é dicir, ás regras que se deben seguir cando relacionamos táboas.&lt;br /&gt;
&lt;br /&gt;
Para relacionar dúas táboas úsanse &amp;#039;&amp;#039;&amp;#039;chaves foráneas&amp;#039;&amp;#039;&amp;#039;, tamén chamadas chave alleas (&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;FOREIGN KEY&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;). Unha chave allea é un conxunto de atributos dunha táboa que son chave primaria noutra táboa. Os valores que pode tomar unha chave foránea deben existir na chave primaria da táboa correspondente ou ser nulos, é dicir, os valores dunha chave foránea non poden facer referencia a algo que non existe na táboa á que se referencia.&lt;br /&gt;
&lt;br /&gt;
[[Imagen:chave_allea.png|center]]&lt;br /&gt;
&lt;br /&gt;
Que sucede na BBDD se se modifica/borra un dos valores da chave principal cod_artista? Distínguense catro casos:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Borrado/Modificación en cascada&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;): o borrado dunha tupla, ou a modificación dos valores da chave principal dunha tupla dunha relación, ocasiona o borrado ou a modificación de todas as tuplas relacionadas na outra relación.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Borrado/Modificación restrinxida&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;RESTRICTED&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;): se se quere borrar unha tupla coa súa chave primaria nunha relación e existen tuplas noutras relacións con esa chave como chave allea, non se permite levala a cabo.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Borrado/Modificación con posta a nulos&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;SET NULL&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;): o borrado dunha tupla, ou a modificación dos valores da chave principal, fai que os atributos da chave foránea tomen valores nulos, sempre e cando os teñan permitidos.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Borrado/Modificación con posta a valores por defecto&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;SET DEFAULT&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;): o borrado dunha tupla, ou a modificación dos valores da chave principal fai que os atributos da chave foránea tomen os valores por defecto, sempre e cando existan tuplas na táboa principal con eses valores por defecto na chave primaria.&lt;br /&gt;
&lt;br /&gt;
=Operacións=&lt;br /&gt;
Para poder traballar co modelo relacional (crear relacións, introducir datos, etc.) Codd definiu a &amp;#039;&amp;#039;&amp;#039;álxebra relacional&amp;#039;&amp;#039;&amp;#039;. Os SXBD utilizan linguaxes baseadas na [http://es.wikipedia.org/wiki/%C3%81lgebra_relacional álxebra relacional]. &lt;br /&gt;
&lt;br /&gt;
A linguaxe aceptada por todos os sistemas de bases de datos comerciais é o SQL, linguaxe estruturada de consulta que permite crear, manipular e obter datos de todos os obxectos que constitúen a base de datos. Esta linguaxe foi normalizado pola Organización Internacional de Estándares (ISO) en 1992 e sofre, como todos os estándares, revisións periódicas que fan que continuamente se editen anexos da norma (actualmente chámase &amp;#039;&amp;#039;&amp;#039;SQL:2008&amp;#039;&amp;#039;&amp;#039;). No entanto e como case todas as normas, non está soportada 100% por ningún produto comercial, é dicir, cada SGBD incorpora o seu propio SQL que recolle, dependendo de cada sistema, o máis significativo do estándar.&lt;br /&gt;
&lt;br /&gt;
=Transformación do modelo E-R ao modelo relacional=&lt;br /&gt;
Unha vez obtido o esquema conceptual mediante o modelo E-R entramos na fase de deseño lóxico de datos. As regras principais para transformar un modelo E-R a un esquema relacional son as que se detallan a continuación.&lt;br /&gt;
==Entidades e atributos==&lt;br /&gt;
Toda &amp;#039;&amp;#039;&amp;#039;entidade&amp;#039;&amp;#039;&amp;#039; transfórmase nunha táboa, elixindo unha das claves candidatas como clave primaria.&lt;br /&gt;
&lt;br /&gt;
Todo &amp;#039;&amp;#039;&amp;#039;atributo&amp;#039;&amp;#039;&amp;#039; transfórmase nunha columna dentro dunha táboa.&lt;br /&gt;
&lt;br /&gt;
==Entidades débiles==&lt;br /&gt;
As &amp;#039;&amp;#039;&amp;#039;entidades débiles&amp;#039;&amp;#039;&amp;#039; transfórmanse directamente en táboas. A súa clave primaria obtense como combinación da clave parcial da entidade débil e da clave da entidade forte.&lt;br /&gt;
&lt;br /&gt;
[[Imagen:ER_entidade_debil.png|center]]&lt;br /&gt;
&lt;br /&gt;
O diagrama anterior transformaríase da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
 Hotel(&amp;#039;&amp;#039;&amp;#039;Cod_Hotel&amp;#039;&amp;#039;&amp;#039;, Nome, Direccion)&lt;br /&gt;
 Habitacion(&amp;#039;&amp;#039;&amp;#039;Cod_Hotel, Numero&amp;#039;&amp;#039;&amp;#039;, Tipo)&lt;br /&gt;
&lt;br /&gt;
==Transformación de relacións binarias==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Relacións binarias 1:N&amp;#039;&amp;#039;&amp;#039;. Transfórmanse introducindo a clave do lado 1 como foránea no lado N. No caso de que a relación teña atributos propios é aconsellable levalos para a táboa asociada coa entidade do lado N. Tamén se pode crear unha táboa, conxugando as claves das entidades que relaciona e incorporando os  atributos da relación binaria.&lt;br /&gt;
[[Imagen:Relacion1_N.png|center]]&lt;br /&gt;
&lt;br /&gt;
 EMPREGADO (&amp;#039;&amp;#039;&amp;#039;N_Emp&amp;#039;&amp;#039;&amp;#039;, NIF, Nome, Apel1, Apel2, Enderezo, &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Cod_Dept&amp;lt;/span&amp;gt;)&lt;br /&gt;
 DEPARTAMENTO (&amp;#039;&amp;#039;&amp;#039;Cod_Dept&amp;#039;&amp;#039;&amp;#039;, Nome, Ubicación)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Relacións binarias N:M&amp;#039;&amp;#039;&amp;#039;. Xeran sempre unha táboa adicional na que a clave é a combinación das claves das entidades que relaciona. Se existen atributos na relación tamén se incorporan á nova táboa.&lt;br /&gt;
[[Imagen:RelacionN_M.png|center]]&lt;br /&gt;
&lt;br /&gt;
 EMPREGADO (&amp;#039;&amp;#039;&amp;#039;N_Emp&amp;#039;&amp;#039;&amp;#039;, NIF, Nome, Apel1, Apel2, Enderezo)&lt;br /&gt;
 DEPARTAMENTO (&amp;#039;&amp;#039;&amp;#039;Cod_Dept&amp;#039;&amp;#039;&amp;#039;, Nome, Ubicación)&lt;br /&gt;
 TRABALLA (&amp;#039;&amp;#039;&amp;#039;N_Emp&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Cod_Dept&amp;#039;&amp;#039;&amp;#039;, Data_Alta)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Relacións binarias 1:1&amp;#039;&amp;#039;&amp;#039;. Resólvense introducindo unha clave foránea nunha das entidades relacionadas. Normalmente, propágase a chave primaria do lado parcial (cardinalidade (0,1)) como chave foránea no lado total da relación (cardinalidade (1,1)) xunto cos atributos desta. No caso de que a relación teña atributos propios hai que propagalos para calquera das táboas asociadas coas entidades, a ser posible para aquela que teña participación total da relación, é dicir, a que teña cardinalidade (1,1). Tamén se podería crear unha nova táboa conxugando as chaves das entidades e os atributos da relación. No seguinte exemplo estase supoñendo que un empregado obrigatoriamente ten que traballar nun departamento, pero un departamento pode non ter empregados traballando nel.&lt;br /&gt;
[[Imagen:Relacion1_1.png|center]]&lt;br /&gt;
&lt;br /&gt;
 EMPREGADO (&amp;#039;&amp;#039;&amp;#039;N_Emp&amp;#039;&amp;#039;&amp;#039;, NIF, Nome, Apel1, Apel2, Enderezo, &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Cod_Dept&amp;lt;/span&amp;gt;)&lt;br /&gt;
 DEPARTAMENTO (&amp;#039;&amp;#039;&amp;#039;Cod_Dept&amp;#039;&amp;#039;&amp;#039;, Nome, Ubicación)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Transformación de relacións reflexivas ou recursivas==&lt;br /&gt;
===Relacións recursivas 1:N===&lt;br /&gt;
Procédese do mesmo xeito que no caso das relacións tipo binarias 1:N, onde a clave primaria do&lt;br /&gt;
lado 1 se introducía no lado N da relación como clave foránea, neste caso a entidade do lado 1&lt;br /&gt;
é a mesma que a do lado N. Se a relación ten atributos tamén se inclúen na táboa. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
 EMPREGADO(&amp;#039;&amp;#039;&amp;#039;NSS&amp;#039;&amp;#039;&amp;#039;, Nome, Apel1, Apel2, Enderezo, Sexo, Data_Nac, &amp;#039;&amp;#039;NSS_Supervisor&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
===Relacións recursivas N:M===&lt;br /&gt;
Crear unha nova táboa cos atributos da relación e dúas veces os atributos que conforman a chave primaria da entidade que relaciona. Por exemplo, se supoñemos que un empregado pode ter varios xefes distintos na mesma data:&lt;br /&gt;
&lt;br /&gt;
 EMPREGADO (&amp;#039;&amp;#039;&amp;#039;NSS&amp;#039;&amp;#039;&amp;#039;, Nome, Apel1, Apel2, Enderezo, Sexo, Data_Nac)&lt;br /&gt;
 TEN (&amp;#039;&amp;#039;&amp;#039;NSS_Subordinado&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;NSS_Xefe&amp;#039;&amp;#039;&amp;#039;, data)&lt;br /&gt;
&lt;br /&gt;
==Transformación de xerarquías==&lt;br /&gt;
[[Imagen:exemplo_xeneralizacion.png|right]] Partiremos do seguinte exemplo de xerarquía total e sen solapar. Para pasar estas relacións ao modelo relacional temos varias opcións que se verán a continuación.&lt;br /&gt;
&lt;br /&gt;
===Eliminar os subtipos===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Transformación&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
#Transfírense os atributos dos subtipos ao supertipo. &lt;br /&gt;
#Transfírense tamén as relacións dos suptipos ao supertipo e mantéñense as relacións nas que intervén o supertipo.&lt;br /&gt;
#Existe un atributo t (se non existe xa na superclase un atributo discriminador) que indica a que subclase pertence cada tupla da táboa. &lt;br /&gt;
#A clave primaria da única táboa será a da superclase.&lt;br /&gt;
&lt;br /&gt;
 EMPREGADO (&amp;#039;&amp;#039;&amp;#039;NSS&amp;#039;&amp;#039;&amp;#039;, Nome, Apel1, Apel2, Enderezo, Sexo, Data_Nac, Tipo_Empregado, PulsacionsPM, Grao, Tipo)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Inconvenientes&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
- Prodúcense valores nulos nos atributos que proveñen dos suptipos, ademais de acceder a datos non requiridos se se desexa coñecer información propia dun subtipo concreto.&lt;br /&gt;
&lt;br /&gt;
- Se a xerarquía non é total, é dicir, hai empregados que poden non ser secretarios, técnicos ou enxeñeiros, habería que poñer valores nulos nos atributos Tipo_empregado, PulsacionsPM, Grao e Tipo. &lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Cando se utiliza&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
- Non se pode usar esta opción en xerarquías solapadas pois cun só atributo discriminador non se poderían indicar as múltiples subclases ás que pode pertencer unha entidade.&lt;br /&gt;
&lt;br /&gt;
- É unha boa opción se os subtipos teñen poucos atributos.&lt;br /&gt;
&lt;br /&gt;
===Eliminar o supertipo===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Transformación&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
#Os atributos do supertipo pasan a cada un dos suptipos.&lt;br /&gt;
#As relacións nas que apareza o supertipo aplícanse a cada un dos suptipos.&lt;br /&gt;
#A clave primaria de cada táboa será a da superclase.&lt;br /&gt;
 SECRETARIA (&amp;#039;&amp;#039;&amp;#039;NSS&amp;#039;&amp;#039;&amp;#039;, Nome, Apel1, Apel2, Enderezo, Sexo, Data_Nac, Tipo_Empregado, PulsacionsPM)&lt;br /&gt;
 TECNICO (&amp;#039;&amp;#039;&amp;#039;NSS&amp;#039;&amp;#039;&amp;#039;, Nome, Apel1, Apel2, Enderezo, Sexo, Data_Nac, Tipo_Empregado, Grao)&lt;br /&gt;
 ENXEÑEIRO (&amp;#039;&amp;#039;&amp;#039;NSS&amp;#039;&amp;#039;&amp;#039;, Nome, Apel1, Apel2, Enderezo, Sexo, Data_Nac, Tipo_Empregado, Tipo)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Inconvenientes&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
- Prodúcese redundancia.&lt;br /&gt;
&lt;br /&gt;
- Aumenta o número de relacións.&lt;br /&gt;
&lt;br /&gt;
- É máis lento xa que se require o acceso a varias entidades para recuperar a información común.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Cando se utiliza&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
- Só funciona con xerarquías totais (perderíanse aquelas entidades da superclase que non&lt;br /&gt;
pertencesen a ningunha subclase) e sen solapamento.&lt;br /&gt;
&lt;br /&gt;
- Aplícase cando o supertipo ten poucos atributos e participa en poucas relacións.&lt;br /&gt;
&lt;br /&gt;
===Eliminación da xerarquía===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Transformación&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
#A relación xerárquica transfórmase en tantas relacións binarias como subtipos haxa.&lt;br /&gt;
#Os subtipos transfórmanse en entidades débiles do supertipo.&lt;br /&gt;
#Mantéñense as relacións e atributos do supertipo e dos subtipos.&lt;br /&gt;
 EMPREGADO (&amp;#039;&amp;#039;&amp;#039;NSS&amp;#039;&amp;#039;&amp;#039;, Nome, Apel1, Apel2, Enderezo, Sexo, Data_Nac, Tipo_Empregado)&lt;br /&gt;
 SECRETARIA (&amp;#039;&amp;#039;&amp;#039;NSS&amp;#039;&amp;#039;&amp;#039;, PulsacionsPM)&lt;br /&gt;
 TECNICO (&amp;#039;&amp;#039;&amp;#039;NSS&amp;#039;&amp;#039;&amp;#039;, Grao)&lt;br /&gt;
 ENXEÑEIRO (&amp;#039;&amp;#039;&amp;#039;NSS&amp;#039;&amp;#039;&amp;#039;, Tipo)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Inconvenientes&amp;#039;&amp;#039;&amp;#039;. Produce un esquema máis complexo.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Cando se utiliza&amp;#039;&amp;#039;&amp;#039;. É a máis utilizada.&lt;br /&gt;
&lt;br /&gt;
=Normalización do modelo relacional=&lt;br /&gt;
A normalización de bases de datos consiste en aplicar unha serie de regras ás relacións obtidas tras o paso do modelo entidade-relación ao modelo relacional. Cando consturímos un modelo relacional a partir dun modelo entidade-relación o habitual é que o modelo xa estea normalizado ata a 3ª forma normal (3FN). Por iso, úsase moito cando se deseña directamente o modelo relacional.&lt;br /&gt;
&lt;br /&gt;
As bases de datos relacionales normalízanse para:&lt;br /&gt;
*Evitar a redundancia dos datos.&lt;br /&gt;
*Evitar problemas de actualización dos datos nas táboas.&lt;br /&gt;
*Protexer a integridade dos datos.&lt;br /&gt;
&lt;br /&gt;
Vexamos un exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Imagen:taboa_taxi_modelo.png]]&lt;br /&gt;
&lt;br /&gt;
Na táboa anterior coñecendo a matrícula dun coche, pódense coñecer os demais datos asociados a ese coche: que modelo é, a que marca pertence, que cor ten e que potencia desenvolve.&lt;br /&gt;
&lt;br /&gt;
Por outra banda pódese observar que para saber a potencia que ten un coche ou a que marca pertence, chega con coñecer o modelo do coche independentemente de se hai ou non algún exemplar matriculado.&lt;br /&gt;
&lt;br /&gt;
Tomando en consideración o anterior a relación/táboa anterior presenta os problemas que se coñecen co nome xeral de &amp;#039;&amp;#039;&amp;#039;Anomalías de actualización&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Anomalías de Borrado&amp;#039;&amp;#039;&amp;#039;. Sucede cando ao borrar unha tupla pérdese toda a información, neste caso, dun coche. Por exemplo se C-4444-C é o único coche que queda na táboa con modelo 2CV. Se se borra esa tupla, a información sobre un coche modelo 2CV (marca: Citroën e potencia: 2) perderase, ata que alguén matricule outro coche modelo 2CV.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Anomalías de Inserción&amp;#039;&amp;#039;&amp;#039;. Sucede cando non se pode rexistrar información nunha táboa ata que se dea unha situación extraordinaria. Por exemplo, se sae ó mercado o coche VOLKSWAGEN POLO-00 cunha potencia de 60CV. Este coche non poderá ser dado de alta na táboa anterior ata que alguén compre un.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Anomalías de modificación&amp;#039;&amp;#039;&amp;#039;. Se se ten un atributo que depende doutro que non é clave, e se rexistramos os dous ao mesmo tempo sucede que, se temos que modificar o valor do segundo atributo temos que facelo en tódalas tuplas. Isto carrexa un problema de potencial inconsistencia da BD, pois podemos esquecernos de modificar unha tupla, e ademais temos que ir tupla por tupla. Por exemplo, POTENCIA depende de MODELO. Cada vez que metamos un GOLF, por exemplo, temos que poñerlle a súa potencia de 90CV. E se hai que modificar esta potencia temos que ir tupla por tupla.&lt;br /&gt;
&lt;br /&gt;
Para resolver estes problemas débese normalizar a táboa cando menos ate 3FN, deste xeito obtéñense dúas novas táboas que serían Taxi e Modelo. &amp;#039;&amp;#039;&amp;#039;De aí a importancia de facer un bo modelo ER&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Arribi|Arribi]] 11:20 21 oct 2009 (BST)&lt;/div&gt;</summary>
		<author><name>Arribi</name></author>
	</entry>
</feed>