Your SlideShare is downloading. ×
Modelo relacional
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Modelo relacional

11,218
views

Published on

Published in: Education

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
11,218
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
259
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 2012 UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS ADMINISTRATIVAS ING. EN SISTEMAS ADMINISTRATIVOS COMPUTARIZADOSGRUPO DE TRABAJO:  SALINAS VARAS NELSON  TORRES AGURTO MICHELLE  CARRASCO TRIVIÑO JEAN  LOPEZ OROZCO MIGUEL SEMINARIO DE PUNTO NET ING. CEDEÑO MODELO RELACIONAL Es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente
  • 2. ÍNDICE DE TRABAJO1.- MODELO RELACIONAL .......................................................................... 1 1.1.- BREVE HISTORIA ................................................................................ 1 1.2.- EVOLUCIÓN DEL MODELO RELACIONAL ................................................. 2 1.3.- OBJETIVOS DEL MODELO RELACIONAL .................................................. 4 1.4.- TABLAS ............................................................................................. 5 1.4.1.- TIPOS DE TABLAS ......................................................................... 6 1.5.- TERMINOLOGÍA DEL MODELO RELACIONAL ............................................ 8 1.5.1.- ESQUEMA ..................................................................................... 8 1.5.2.- INSTANCIAS ................................................................................. 8 1.5.3.- ATRIBUTOS .................................................................................. 9 1.5.4.- ESQUEMAS ................................................................................... 9 1.5.5.- TUPLAS ........................................................................................ 9 1.5.6.- DOMINIOS ................................................................................... 9 1.6.-CLAVES EN EL MODELO REALCIONAL ..................................................... 9 1.7.- VALORES NULL ................................................................................. 10 1.8.- RESTRICCIONES EN EL MODELO RELACIONAL ...................................... 11 1.8.1.- RESTRICCIONES INHERENTES ...................................................... 11 1.8.2.- RESTRICCIONES DE USUARIO ...................................................... 11 1.9.- LAS 12 REGLAS DE CODD .................................................................. 14 1.10.- TIPOS DE RELACIONES EN UN MODELO ENTIDAD-RELACION ................ 16 1.11.- EJEMPLO DE UN MODELO RELACIONAL MEDIANTE ESQUEMA Y CODIFICACIÓN SQL SERVER 2005 .............................................................. 17 1.11.1.- CODIFICACIÓN EN SQL SERVER 2005 .......................................... 182.- CONCLUSIÓN ...................................................................................... 21
  • 3. SEMINARIO DE PUNTO NET MODELO RELACIONAL1.- MODELO RELACIONAL1.1.- BREVE HISTORIAEl Dr. Edgar Frank Codd un brillante matemático y científico de la computaciónnacido en Inglaterra que vivió la mayor parte de su vida en los Estados Unidostrabajando y desarrollando sus ideas que culminaron en una serie de informestécnicos acerca de una nueva manera de organizar y acceder los datos. Apartir de estos trabajos publicó en 1970 el artículo A Relational Model of Datafor Large Shared Data Banks, algo así como Un modelo de datos relacionalpara grandes bancos de datos compartidos.Planteó que los sistemas de bases de datos deberían presentarse a los usuarioscon una visión de los datos organizados en estructuras llamadas relaciones,definidas como conjuntos de tuplas (filas) y no como series o secuencias deobjetos, con lo que el orden no es importante. Por tanto, detrás de unarelación puede haber cualquier estructura de datos compleja que permita unarespuesta rápida a una variedad de consultas. Codd hizo entonces “El modelorelacional de bases de datos” haciendo énfasis en que el usuario de unsistema relacional sólo debía preocuparse por el ¿qué consultar? y no el¿cómo? de las estructuras de almacenamiento lo que ahora se conoce comomodelo físico.Las actividades de los usuarios en sus terminales y la mayoría de programasde aplicación no debería verse afectados cuando se cambia la representacióninterna de los datos o incluso cuando se cambian algunos aspectos de larepresentación externa. Se necesitará cambiar la representación de los datos amenudo como resultado de los cambios en el tráfico de las consultas,actualizaciones e informes y como consecuencia del crecimiento natural en lostipos de información almacenada.”Un grupo de la Universidad de Berkeley en California, liderado por MichaelStonebreaker, creyó en la idea del modelo relacional y obtuvo financiamientopara desarrollar un sistema, el Ingres, cuya primera versión se presentó en1974 y fue el primer manejador relacional de bases de datos funcional. Estotuvo como consecuencia que IBM reaccionara poniendo en marcha otrosistema relacional, el System R con características de multiusuario y unGrupo de trabajo Página 1
  • 4. SEMINARIO DE PUNTO NET MODELO RELACIONALlenguaje de consulta estructurado, el SEQUEL que luego pasaría a llamarseSQL (Structured Query Language). Para entonces Larry Ellison, un empresariodel Valle del Silicón, había tomado ventajas de los escritos de Codd para crearun nuevo producto y una nueva empresa que hasta la fecha se conoce comoOracle.El modelo relacional es un modelo de datos basado en la lógica de predicados yen la teoría de conjuntos.1.2.- EVOLUCIÓN DEL MODELO RELACIONALLa aparición del modelo relacional representa un verdadero hito en eldesarrollo de las bases de datos, ya que ha marcado tres etapas diferentes,conocidas como generaciones de los SGBD’s: • Pre-relacionales. Los SGBD se basan en modelos Codasyl (en red) y Jerárquico y ficheros planos (flat files). • Relacionales. Los sistemas relacionales ganan madurez en el mercado y los productos basados en este modelo van desplazando poco a poco a los sistemas basados en punteros de la etapa pre-relacional. • Post-relacionales. Aparecen manifiestos de otros modelos de datos, en especial los orientados a objeto. Se distinguen manifiestos puristasGrupo de trabajo Página 2
  • 5. SEMINARIO DE PUNTO NET MODELO RELACIONAL OO que dan lugar a SGBDs-OO puros como O2, Gemstone, etc. y, en paralelo, corrientes evolutivas del modelo relacional que relajan hipótesis básicas del modelo original de Codd (relajación de la primera forma normal) para ofrecer estructuras de datos más complejas. Se propone una evolución desde el modelo relacional a SGBDs-OO relacionales, p. ej. SQL3.Sobre el modelo relacional se han definido los estándares ANSI e ISO delextendido lenguaje de definición y manipulación de bases de datos relacionalesSQL (Structured Query Language). Tabla 1. Evolución del modelo en varias etapas P 1968 - 1970 ↔ Surge el modelo R E 1970 . . . ↔ Desarrollos teóricos R 1973 - 1978 ↔ Prototipos (Ingres, sistema R, etc. . .) E 1978 ↔ QBE L A R C E I L O A N C A I L O 1979 ↔ Oracle N 1980 ↔ Ingres A 1981 ↔ SQL L 1982 ↔ DB2 1986 ↔ SQL/ ANSGrupo de trabajo Página 3
  • 6. SEMINARIO DE PUNTO NET MODELO RELACIONAL 1987 ↔ SQL ISO (9075) 1989 ↔ SQL Adendum 1989 ↔ Manifiesto de los SGBO 1990 ↔ Modelo Relacional Versión 2 P 1990 ↔ Manifiesto de los SGBO- 3G O 1992 ↔ SQL 92 S T 1995 ↔ 3er Manifiesto R ↔ 1999 SQL 3 E L A C I O N A L1.3.- OBJETIVOS DEL MODELO RELACIONAL El objetivo principal es llegar a un buen modelo relacional que represente el diagrama entidad-relación ideado por el usuario y mejorado. Independencia física: La forma de almacenar los datos, no debe influir en su manipulación lógica. Independencia lógica: Las aplicaciones que utilizan la base de datos no deben ser modificadas por que se modifiquen elementos de la base de datos. Flexibilidad: La base de datos ofrece fácilmente distintas vistas en función de los usuarios y aplicaciones. Uniformidad: Las estructuras lógicas siempre tienen una única forma conceptual (tablas).Grupo de trabajo Página 4
  • 7. SEMINARIO DE PUNTO NET MODELO RELACIONAL Sencillez. Destacar que todo el proceso en los diferentes pasos de ejecución del diagrama a tratar, se presentan al usuario de forma interactiva a través de interfaces gráficas de usuario; por ello, el usuario estará al tanto de las limitaciones que puedan conllevar las decisiones que toma gracias a los posibles itinerarios propuestos por la aplicación. Se utilizan actualmente para modelar problemas reales y administrar datos dinámicamente. Recuperar o almacenar la información por medio de consultas que ofrecen una amplia flexibilidad y poder para administrar la información. Garantizar herramientas para evitar la duplicidad de registros, a través de campos claves o llaves. Garantizar la integridad referencial: Así al eliminar un registro elimina todos los registros relacionados dependientes. Favorecer la normalización por ser más comprensible y aplicable. Facilitar la creación de bases de datos partiendo del diagrama entidad- relación.1.4.- TABLASTabla en las bases de datos, se refiere al tipo de modelado de datos, donde seguardan los datos recogidos por un programa. Su estructura general seasemeja a la vista general de un programa de Hoja de cálculo.Las tablas se componen de dos estructuras:  Registro: es cada una de las filas en que se divide la tabla. Cada registro contiene datos de los mismos tipos que los demás registros. Ejemplo: en una tabla de nombres y direcciones, cada fila contendrá un nombre y una dirección.  Campo: es cada una de las columnas que forman la tabla. Contienen datos de tipo diferente a los de otros campos. En el ejemplo anterior, un campo contendrá un tipo de datos único, como una dirección, o un número de teléfono, un nombre, etc.A los campos se les puede asignar, además, propiedades especiales queafectan a los registros insertados. El campo puede ser definidoGrupo de trabajo Página 5
  • 8. SEMINARIO DE PUNTO NET MODELO RELACIONALcomo índice o autoincrementable, lo cual permite que los datos de ese campocambien solos o sean el principal indicar a la hora de ordenar los datoscontenidos.Cada tabla creada debe tener un nombre único en la cada Base de Datos,haciéndola accesible mediante su nombre o su seudónimo (Alias) (dependiendodel tipo de base de datos elegida).La estructura de las tablas viene dado por la forma de un archivo plano, loscuales en un inicio se componían de un modo similar.1.4.1.- TIPOS DE TABLASAdemás de la función estándar de las tablas básicas definidas por el usuario,SQL Server proporciona los siguientes tipos de tabla, que permiten llevar acabo objetivos especiales en una base de datos que se utiliza para acomodarlos datos  TABLAS CON PARTICIONES Las tablas con particiones son tablas cuyos datos se han dividido horizontalmente entre unidades que pueden repartirse por más de un grupo de archivos de una base de datos. Las particiones facilitan la administración de las tablas y los índices grandes porque permiten obtener acceso y administrar subconjuntos de datos con rapidez y eficacia al mismo tiempo que mantienen la integridad del conjunto. En un escenario con particiones, las operaciones como, por ejemplo, la carga de datos de un sistema OLTP a un sistema OLAP, pueden realizarse en cuestión de segundos en lugar de minutos u horas en otras versiones. Las operaciones de mantenimiento que se realizan en los subconjuntos de datos también se realizan de forma más eficaz porque sólo afectan a los datos necesarios en lugar de a toda la tabla. Tiene sentido crear una tabla con particiones si la tabla es muy grande o se espera que crezca mucho, y si alguna de las dos condiciones siguientes es verdadera:Grupo de trabajo Página 6
  • 9. SEMINARIO DE PUNTO NET MODELO RELACIONAL La tabla contiene, o se espera que contenga, muchos datos que se utilizan de manera diferente. Las consultas o las actualizaciones de la tabla no se realizan como se esperaba o los costos de mantenimiento son superiores a los períodos de mantenimiento predefinidos. Las tablas con particiones admiten todas las propiedades y características asociadas con el diseño y consulta de tablas estándar, incluidas las restricciones, los valores predeterminados, los valores de identidad y marca de tiempo, los desencadenadores y los índices. Por lo tanto, si desea implementar una vista con particiones que sea local respecto a un servidor, debe implementar una tabla con particiones. Para obtener información para comprender, diseñar e implementar tablas con particiones, vea Tablas e índices con particiones.  TABLAS TEMPORALES Hay dos tipos de tablas temporales: locales y globales. Las tablas temporales locales son visibles sólo para sus creadores durante la misma conexión a una instancia de SQL Server como cuando se crearon o cuando se hizo referencia a ellas por primera vez. Las tablas temporales locales se eliminan cuando el usuario se desconecta de la instancia de SQL Server. Las tablas temporales globales están visibles para cualquier usuario y conexión una vez creadas, y se eliminan cuando todos los usuarios que hacen referencia a la tabla se desconectan de la instancia de SQL Server.  TABLAS DEL SISTEMA SQL Server almacena los datos que definen la configuración del servidor y de todas sus tablas en un conjunto de tablas especial, conocido como tablas del sistema. Los usuarios no pueden consultar ni actualizar directamente las tablas del sistema si no es a través de una conexión de administrador dedicada (DAC) que sólo debería utilizarse bajo la supervisión de los servicios de atención al cliente de Microsoft. Para obtener más información, vea Usar una conexión de administrador dedicada. Las tablas de sistema se cambian normalmente en cada versión nueva de SQL Server. Puede que las aplicaciones que hacen referencia directamente a las tablas del sistema tengan que escribirse de nuevo para poder actualizarlas a una versión nueva de SQL Server con una versión diferente de las tablas de sistema. La información de las tablas del sistema está disponible a través de las vistas de catálogo. Para obtener más información, vea Tablas del sistema (Transact-SQL).Grupo de trabajo Página 7
  • 10. SEMINARIO DE PUNTO NET MODELO RELACIONAL Con las tablas anchas, puede crear esquemas flexibles dentro de una aplicación. Puede agregar o quitar columnas siempre que lo desee. Tenga presente que el uso de tablas anchas tiene consideraciones de rendimiento únicas, como unos mayores requisitos de memoria en tiempo de ejecución y en tiempo de compilación. Para obtener más información, vea Consideraciones de rendimiento para las tablas anchas.  TABLAS PERSISTENTES Son aquellas que permiten que los registros sean eliminados o borrados manualmente y tenemos de tres tipos: Base, Vistas, Instantáneos  Base.- Es en donde se encuentra toda la información de todos los registros sin que se haga ninguna validación adicional.  Vistas.- Es una vista o relación que se hace en referencia a una fila o columna especifica.  Instantáneos.- Son aquellos registros que se los puede ver de manera inmediata con solo una referencia.1.5.- TERMINOLOGÍA DEL MODELO RELACIONAL1.5.1.- ESQUEMAUn esquema es la definición de una estructura (generalmente relaciones otablas de una base de datos), es decir, determina la identidad de la relación yqué tipo de información podrá ser almacenada dentro de ella; en otraspalabras, el esquema son los metadatos de la relación. Todo esquema constaráde:Nombre de la relación (su identificador).Nombre de los atributos (o campos) de la relación y sus dominios; el dominiode un atributo o campo define los valores permitidos para el mismo, esequivalente al tipo de dato por ejemplo character, integer, date, string, etc.1.5.2.- INSTANCIASGrupo de trabajo Página 8
  • 11. SEMINARIO DE PUNTO NET MODELO RELACIONALUna instancia de manera formal es la aplicación de un esquema a un conjuntofinito de datos. En palabras no tan técnicas, se puede definir como el contenidode una tabla en un momento dado, pero también es valido referirnos a unainstancia cuando trabajamos o mostramos únicamente un subconjunto de lainformación contenida en una relación o tabla, como por ejemplo:  Ciertos caracteres y números (una sola columna de una sola fila).  Algunas o todas las filas con todas o algunas columnas  Cada fila es una tupla. El número de filas es llamado cardinalidad.  El número de columnas es llamado aridad o grado.1.5.3.- ATRIBUTOSLos atributos son las columnas de una relación y describen característicasparticulares de ella.1.5.4.- ESQUEMASEs el nombre que se le da a una relación y el conjunto de atributos en ella.1.5.5.- TUPLASCada uno de los renglones en una relación conteniendo valores para cada unode los atributos.1.5.6.- DOMINIOSSe debe considerar que cada atributo (columna) debe ser atómico, es decir,que no sea divisible, no se puede pensar en un atributo como un "registro" o"estructura" de datos.1.6.-CLAVES EN EL MODELO REALCIONALGrupo de trabajo Página 9
  • 12. SEMINARIO DE PUNTO NET MODELO RELACIONALUna clave candidata de una relación es un conjunto no vacío de atributos queidentifican unívoca y mínimamente cada tupla. Por la propia definición derelación, siempre hay al menos una clave candidata, ya que al ser la relaciónun conjunto no existen tuplas repetidas y por tanto, el conjunto de todos losatributos identificará unívocamente a las tuplas. Una relación puede tener másde una clave candidata, entre las cuales se debe distinguir:  Clave primaria: es aquella clave candidata que el usuario escogerá, por consideraciones ajenas al modelo relacional, para identificar a las tuplas de una relación.  Clave alternativa: son aquellas claves candidatas que no han sido elegidas.  Se denomina clave ajena de una relación R2 a un conjunto no vacío de atributos cuyos valores han de coincidir con los valores de la clave primaria de otra relación R1. La clave ajena y la correspondiente clave primaria han de estar definidas sobre los mismos dominios.1.7.- VALORES NULLNULL indica que el valor es desconocido. Un valor NULL no es lo mismo que unvalor cero o vacío. No hay dos valores NULL que sean iguales. La comparaciónentre dos valores NULL, o entre un valor NULL y cualquier otro valor, tiene unresultado desconocido porque el valor de cada NULL es desconocido.Normalmente, los valores NULL indican que los datos son desconocidos, noaplicables o que se agregarán posteriormente. Por ejemplo, la inicial de uncliente puede que no sea conocida en el momento en que éste hace un pedido.A continuación se muestra información acerca de los valores NULL:  Para comprobar si hay valores NULL en una consulta, use IS NULL o IS NOT NULL en la cláusula WHERE.  Cuando se ven los resultados de la consulta en el Editor de código de SQL Server Management Studio, los valores null se muestran como NULL en el conjunto de resultados.  Los valores NULL se pueden insertar en una columna si se indica explícitamente NULL en una instrucción INSERT o UPDATE, si se deja fuera una columna de una instrucción INSERT, o bien si se agrega una columna nueva a una tabla existente con la instrucción ALTER TABLE.Grupo de trabajo Página 10
  • 13. SEMINARIO DE PUNTO NET MODELO RELACIONAL  Los valores NULL no se pueden usar en la información necesaria para distinguir una fila en una tabla de otra fila, como, por ejemplo, las claves principales.1.8.- RESTRICCIONES EN EL MODELO RELACIONALEn el modelo relacional, existen restricciones, es decir, estructuras uocurrencias no permitidas, siendo preciso distinguir entre restriccionesinherentes y restricciones de usuario.1.8.1.- RESTRICCIONES INHERENTESAdemás de las derivadas de la definición matemática de "relación" como eranque:  No hay dos tuplas iguales.  El orden de las tuplas no es significativo.  El orden de los atributos (columnas) no es significativo.  Cada atributo sólo puede tomar un único valor del dominio, no admitiéndose por tanto los grupos repetitivos.Tenemos que la regla de integridad de entidad establece que "Ningún atributoque forme parte de la clave primaria de una relación puede tomar un valornulo"; esto es, un valor desconocido o inexistente. Esta restricción deberíaaplicarse también a las claves alternativas, pero el modelo no lo exige.1.8.2.- RESTRICCIONES DE USUARIOPodemos considerar la restricción de usuario, dentro del contexto relacional,como un predicado definido sobre un conjunto de atributos, de tuplas o dedominios, que debe ser verificado por los correspondientes objetos para queéstos constituyan una ocurrencia válida del esquema.Grupo de trabajo Página 11
  • 14. SEMINARIO DE PUNTO NET MODELO RELACIONALDentro de las restricciones de usuario destaca la restricción de integridadreferencial que dice que los valores de clave ajena deben coincidir con los declave primaria asociada a ella o ser nulos.La integridad referencial es una restricción de comportamiento ya que vieneimpuesta por el mundo real y es el usuario quien la define al describir elesquema relacional; es también de tipo implícito, ya que se define en elesquema y el modelo la reconoce (o así algunos productos) sin necesidad deque se programe ni de que se tenga que escribir ningún procedimiento paraobligar a que se cumpla.EDITORIAL (NOMBRE_E, DIRECCION, CIUDAD, PAIS)LIBRO (CODIGO, TITULO, IDIOMA, ..., NOMBRE_E)En este ejemplo el atributo nombre_e de la relación LIBRO es clave ajena quereferencia a EDITORIAL, de modo que debe concordar con la clave primaria dela relación EDITORIAL o bien ser nulo, porque los libros de nuestra base dedatos deberán pertenecer a una editorial existente, o si se desconoce laeditorial, no se tendrá ningún valor para este atributo.AUTOR (NOMBRE, NACIONALIDAD, INSTITUCION, ..)LIBRO (CODIGO, TITULO, IDIOMA, EDITORIAL, ...)ESCRIBE (NOMBRE, COD LIBRO)En este ejemplo la relación ESCRIBE posee dos claves ajenas: nombre, quereferencia a la relación AUTOR, y COD_LIBRO, que referencia a la relaciónLIBRO; en este caso ninguna de las dos claves ajenas puede tomar valoresnulos, ya que forman parte de la clave primaria de la relación ESCRIBE.Además de definir las claves ajenas, hay que determinar las consecuencias quepueden tener ciertas operaciones (borrado y modificación) realizadas sobreGrupo de trabajo Página 12
  • 15. SEMINARIO DE PUNTO NET MODELO RELACIONALtuplas de la relación referenciada; pudiéndose distinguir, en principio, lassiguientes opciones:  Operación restringida: esto es, el borrado o la modificación de tuplas de la relación que contiene la clave primaria referenciada; sólo se permite si no existen tuplas con dicha clave en la relación que contiene la clave ajena. Esto nos llevaría, por ejemplo, a que para poder borrar una editorial de nuestra base de datos no tendría que haber ningún libro que estuviese publicado por dicha editorial, en caso contrario el sistema impediría el borrado.  Operación con transmisión en cascada: esto es, el borrado o la modificación de tuplas de la relación que contiene la clave primaria referenciada lleva consigo el borrado o modificación en cascada de las tuplas de la relación que contienen la clave ajena. En nuestro ejemplo, equivaldría a decir que al modificar el nombre de una editorial en la relación EDITORIAL, se tendría que modificar también dicho nombre en todos los libros de nuestra base de datos publicados por dicha editorial.  Operación con puesta a nulos: esto es, el borrado o la modificación de tuplas de la relación que contiene la clave primaria referenciada lleva consigo poner a nulos los valores de las claves ajenas de la relación que referencia. Esto nos llevaría a que cuando se borra una editorial, a los libros que ha publicado dicha editorial y que se encuentran en la relación LIBROS se les coloque el atributo nombre_e a nulos. Esta opción, obviamente, sólo es posible cuando el atributo que es clave ajena admite el valor nulo.  Operación con puesta a valor por defecto: esto es, el borrado o la modificación de tuplas de la relación que contiene la clave primaria referenciada lleva consigo poner el valor por defecto a la clave ajena de la relación que referencia.  Operación que desencadena un procedimiento de usuario: en este caso, el borrado o la modificación de tuplas de la tabla referenciada pone en marcha un procedimiento definido por el usuario.Grupo de trabajo Página 13
  • 16. SEMINARIO DE PUNTO NET MODELO RELACIONAL1.9.- LAS 12 REGLAS DE CODDLas 12 reglas de Codd son un sistema de reglas propuestas por Edgar F. Codd,del modelo relacional para las bases de datos, diseñado para definir quérequiere un sistema de administración de base de datos.Codd se percató de que existían bases de datos en el mercado las cualesdecían ser relacionales, pero lo único que hacían era guardar la información enlas tablas, sin estar estas tablas literalmente normalizadas; entonces éstepublicó 12 reglas que un verdadero sistema relacional debería tener aunque enla práctica algunas de ellas son difíciles de realizar. Un sistema podráconsiderarse "más relacional" cuanto más siga estas reglas.  Regla 0: El sistema debe ser relacional, base de datos y administrador de sistema. Ese sistema debe utilizar sus facilidades relacionales (exclusivamente) para manejar la base de datos.  Regla 1: La regla de la información, toda la información en la base de datos es representada unidireccionalmente, por valores en posiciones de las columnas dentro de filas de tablas. Toda la información en una base de datos relacional se representa explícitamente en el nivel lógico exactamente de una manera: con valores en tablas.  Regla 2: La regla del acceso garantizado, todos los datos deben ser accesibles sin ambigüedad. Esta regla es esencialmente una nueva exposición del requisito fundamental para las llaves primarias. Dice que cada valor escalar individual en la base de datos debe ser lógicamente direccionadle especificando el nombre de la tabla, la columna que lo contiene y la llave primaria.  Regla 3: Tratamiento sistemático de valores nulos, el sistema de gestión de base de datos debe permitir que haya campos nulos. Debe tener una representación de la "información que falta y de la información inaplicable" que es sistemática, distinto de todos los valores regulares.  Regla 4:Grupo de trabajo Página 14
  • 17. SEMINARIO DE PUNTO NET MODELO RELACIONAL Catálogo dinámico en línea basado en el modelo relacional, el sistema debe soportar un catálogo en línea, el catálogo relacional debe ser accesible a los usuarios autorizados. Es decir, los usuarios deben poder tener acceso a la estructura de la base de datos (catálogo).  Regla 5: La regla comprensiva del sub lenguaje de los datos, el sistema debe soportar por lo menos un lenguaje relacional que:  Tenga una sintaxis lineal.  Puede ser utilizado recíprocamente y dentro de programas de uso.  Soporte operaciones de definición de datos, operaciones de manipulación de datos (actualización así como la recuperación), seguridad e integridad y operaciones de administración de transacciones.  Regla 6: Regla de actualización, todas las vistas que son teóricamente actualizables deben ser actualizables por el sistema.  Regla 7: Alto nivel de inserción, actualización, y cancelación, el sistema debe soportar suministrar datos en el mismo tiempo que se inserte, actualiza o esté borrando. Esto significa que los datos se pueden recuperar de una base de datos relacional en los sistemas construidos de datos de filas múltiples y/o de tablas múltiples.  Regla 8: Independencia física de los datos, los programas de aplicación y actividades del terminal permanecen inalterados a nivel lógico cuandoquiera que se realicen cambios en las representaciones de almacenamiento o métodos de acceso.  Regla 9: Independencia lógica de los datos, los cambios al nivel lógico (tablas, columnas, filas, etc.) no deben requerir un cambio a una solicitud basada en la estructura. La independencia de datos lógica es más difícil de lograr que la independencia física de datos.  Regla 10:Grupo de trabajo Página 15
  • 18. SEMINARIO DE PUNTO NET MODELO RELACIONAL Independencia de la integridad, las limitaciones de la integridad se deben especificar por separado de los programas de la aplicación y se almacenan en la base de datos. Debe ser posible cambiar esas limitaciones sin afectar innecesariamente las aplicaciones existentes.  Regla 11: Independencia de la distribución, la distribución de las porciones de la base de datos a las varias localizaciones debe ser invisible a los usuarios de la base de datos. Los usos existentes deben continuar funcionando con éxito:  cuando una versión distribuida del SGBD se introdujo por primera vez  cuando se distribuyen los datos existentes se redistribuyen en todo el sistema.  Regla 12: La regla de la no subversión, si el sistema proporciona una interfaz de bajo nivel de registro, a parte de una interfaz relacional, que esa interfaz de bajo nivel no se pueda utilizar para subvertir el sistema, por ejemplo: sin pasar por seguridad relacional o limitación de integridad. Esto es debido a que existen sistemas anteriormente no relacionales que añadieron una interfaz relacional, pero con la interfaz nativa existe la posibilidad de trabajar no relacionalmente.1.10.- TIPOS DE RELACIONES EN UN MODELO ENTIDAD-RELACIONSe pueden distinguir tres tipos de relaciones:  Relación Uno a Uno: Cuando un registro de una tabla sólo puede estar relacionado con un único registro de la otra tabla y viceversa. Por ejemplo: tenemos dos tablas una con los datos de diferentes poblaciones y otra con una lista de Alcaldes, una población sólo puede tener un alcalde, y un alcalde lo será únicamente de una población. Alcalde PoblaciónGrupo de trabajo Página 16
  • 19. SEMINARIO DE PUNTO NET MODELO RELACIONAL  Relación Uno a Varios: Cuando un registro de una tabla (tabla secundaria) sólo puede estar relacionado con un único registro de la otra tabla (tabla principal) y un registro de la otra tabla (tabla principal) puede tener más de un registro relacionado en la primera tabla (tabla secundaria). Por ejemplo: tenemos dos tablas una con los datos de diferentes poblaciones y otra con los habitantes, una población puede tener más de un habitante, pero un habitante pertenecerá (estará empadronado) en una única población. Población Habitantes  Relación Varios a Varios: Cuando un registro de una tabla puede estar relacionado con más de un registro de la otra tabla y viceversa. Por ejemplo: tenemos dos tablas una con los datos de clientes y otra con los artículos que se venden en la empresa, un cliente podrá realizar un pedido con varios artículos, y un artículo podrá ser vendido a más de un cliente. Cliente Articulo Las relaciones varios a varios se suelen representar definiendo una tabla intermedia entre las dos tablas. Siguiendo el ejemplo anterior sería definir una tabla líneas de pedido relacionado con clientes y con artículos.1.11.- EJEMPLO DE UN MODELO RELACIONAL MEDIANTE ESQUEMA YCODIFICACIÓN SQL SERVER 2005Para el siguiente ejemplo se considerara una base de datos de una empresadedicada a la entrega de pedidos (productos) puede ser Servientrega u otra.Grupo de trabajo Página 17
  • 20. SEMINARIO DE PUNTO NET MODELO RELACIONAL Clientes Detalles de pedidos PK. IdClientes FK. IdPedido NombreCompañia FK. IdProducto NombreContacto PrecioUnidad Ciudad Cantidad Descuento Teléfono Pedidos PK. IdPedido FK. IdClientes FK. IdEmpleado FechaPedido FechaEntrega FechaEnvio Productos Empleados Cargo PK. IdProducto PK. IdEmpleado Destinatario NombreProducto Apellidos CiudadDestinatario CantidadUnitaria Nombre PrecioUnidad Cargo PK= PRIMARY KEY FechaContratacion FK= FORREING KEY Ciudad Teléfono1.11.1.- CODIFICACIÓN EN SQL SERVER 2005CREACION DE LA BASE DE DATOScreate database Empresa_Entregagouse Empresa_EntregaCREACION DE LA TABLA CLIENTEScreate table Clientes(IdClientes int identity(1,1) not null,NombreCompañia nvarchar(20) not null,NombreContacto nvarchar(20) not null,Ciudad nvarchar(10) not null,Telefono char(10),constraint pk_clie primary key (IdClientes),)CREACIÓN DE LA TABLA EMPLEADOScreate table Empleados(IdEmpleado int identity (100,1) not null,Apellidos nvarchar(20) not null,Nombre nvarchar(15) not null,Cargo nvarchar(15) not null,FechaContratacion smalldatetime not null,Ciudad nvarchar(15) not null,Telefono char(10) not null,constraint pk_emp primary key(IdEmpleado),Grupo de trabajo Página 18
  • 21. SEMINARIO DE PUNTO NET MODELO RELACIONAL)CREACIÓN DE LA TABLA PRODCUTOScreate table Productos(IdProducto int identity(200,1) not null,NombreProducto nvarchar(30) not null,CantidadUnitaria int not null,PrecioUnidad real not null,constraint pk_prod primary key(IdProducto),)CREACIÓN DE LA TABLA DETALLES_DE_PEDIDOScreate table Detalles_de_pedidos(IdPedido int not null,IdProducto int not null,PrecioUnidad real not null,Cantidad int not null,Descuento real not null,)CREACIÓN DE LA TABLA PEDIDOScreate table Pedidos(IdPedido int identity(400,1) not null,IdClientes int not null,IdEmpleado int not null,FechaPedido smalldatetime not null,FechaEntrega smalldatetime not null,FechaEnvio smalldatetime not null,Cargo nvarchar(20) not null,Destinatario nvarchar(20) not null,CiudadDestinatario nvarchar(20) not null,constraint pk_ped primary key(IdPedido),)ESTABLECIENDO CLAVES FORANEAS EN LA TABLADETALLES_DE_PEDIDOSalter table Detalles_de_pedidos add foreign key(IdPedido) referencesPedidos (IdPedido)alter table Detalles_de_pedidos add foreign key(IdProducto) referencesProductos (IdProducto)ESTABLECIENDO CLAVES FORANEAS EN LA TABLA PEDIDOSalter table Pedidos add foreign key (IdClientes) references Clientes(IdClientes)alter table Pedidos add foreign key (IdEmpleado) references Empleados(IdEmpleado)Grupo de trabajo Página 19
  • 22. SEMINARIO DE PUNTO NET MODELO RELACIONAL Ilustración 1. Explorador de Objetos en SQL Server 2005. Vista de las tablasGrupo de trabajo Página 20
  • 23. SEMINARIO DE PUNTO NET MODELO RELACIONAL2.- CONCLUSIÓNEl poder conocer el verdadero funcionamiento de un modelo relacional, dentrode una base de datos que maneje cualquier entidad o empresa, es bastantefundamental para la buena disposición de los datos.Como se ha podido observar, este modelo consta de una base de datosrelacional, la cual involucra la comunicación efectiva entre las tablas. Esimportante destacar que un buen modelo se debe de basar en ciertas reglasque hagan del mismo más eficiente y útil. Además un modelo relacionalestá basado en la lógica de predicados y en la teoría de conjuntos, lo cual da aconocer la necesidad de tener amplios conocimientos en los temasanteriormente mencionados y la realización de un mal modelo, conlleva al malfuncionamiento de la base de datos.Grupo de trabajo Página 21

×