Академический Документы
Профессиональный Документы
Культура Документы
El modelo EER incluye todos los conceptos introducidos por el modelo ER. Además,
incluye los conceptos de una subclase y superclase, junto con los conceptos de
especialización y generalización. Además, se introduce el concepto de un tipo de unión
o de una categoría, que se utiliza para representar una colección de objetos que es la
unión de objetos de diferentes tipos de entidades.
Si queremos crear tablas físicas en MySQL las relaciones tienen que estar mapeadas de
alguna manera.
Para mapear estas relaciones entre tablas existen diferentes reglas:
1:1. El primary key para una de las tablas es incluido como foreing key en otra
tabla.
1:n. uno-a-muchos. Consiste en establecer una relación entre un atributo
identificativo, ya sea un primary key u otro campo que permita diferenciarlo de
otra instancia de una tabla A, con n campos de la tabla B. Por ejemplo:
Una factura (entidad) se emite (relación) a una persona (entidad) y sólo una,
pero una persona puede tener varias facturas emitidas a su nombre. Todas las
facturas se emiten a nombre de alguien.
n:m. Es cuando se crea una tabla mediante un join. La clave primaria es
compuesta por los primary keys de las dos tablas originales. Por ejemplo: Un
cliente (entidad) puede comprar (relación) varios artículos (entidad) y un artículo
puede ser comprado por varios clientes distintos.
Creamos o importamos nuestra base de datos con las tablas. O las vamos creando desde
0, a partir de nuestro boceto inicial.
La creación de la arquitectura de la base de datos y las tablas no es algo que salga a la
primera, requiere ir profundizando en la aplicación, estimar que necesitarás a largo
plazo y contemplarlo en el modelo de datos a pesar de que no se programe inicialmente.
Esto nos cargará todas las tablas que hemos creado en el canvas de la aplicación y
podremos empezar a establecer las relaciones entre las tablas.
Como he explicado anteriormente usaremos los tipos de relaciones para ir creando el
modelo de relación entre nuestra tablas. Para ello usaremos las opciones de MySQL
Workbench para establecer las relaciones.
A medida que se vayan creando las relaciones irá quedando el modelo definido, como
aparece en la siguiente imagen.
(Nota: este modelo es una ejemplo que estoy utilizando, no es real)
Esto llevará varias horas, o como a mi varios días. Si se esta haciendo un modelo de
datos profesional para un entorno en producción puede llevar bastante tiempo en el
desarrollo de la arquitectura de la base de datos. Incluso a pesar de todo el tiempo
invertido siempre pueden surgir limitaciones y deficiencias.
Es muy importante intentar desarrollar el modelo pensando en todas la funcionalidades
que tendrá la aplicacion a corto y que pueda tener a largo plazo. Para por lo menos tener
un buen modelo de datos en el momento de salida y poder escalar bien la base de datos.
Tags de búsquedas:
En este tema se explican varios métodos que puede seguir para trabajar con los
esquemas de tablas creados en bases de datos cliente y del mismo nivel.
Un diagrama de clases sirve para visualizar las relaciones entre las clases que
involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y
de contenimiento.
Elementos
Clase
En donde:
Ejemplo:
o Balance
Puede realizar las operaciones de:
o Depositar
o Girar
o y Balance
Atributos y Métodos:
o Atributos:
v. Agregación:
Un Ejemplo es el siguiente:
vi. Asociación:
Ejemplo:
Un cliente puede tener asociadas muchas Ordenes de Compra, en
cambio una orden de compra solo puede tener asociado un
cliente.
Casos Particulares:
o Clase Abstracta:
o Clase parametrizada:
Una clase parametrizada se denota con un subcuadro en el
extremo superior de la clase, en donde se especifican los
parámetros que deben ser pasados a la clase para que esta pueda
ser instanciada. El ejemplo más típico es el caso de un
Diccionario en donde una llave o palabra tiene asociado un
significado, pero en este caso las llaves y elementos pueden ser
genéricos. La genericidad puede venir dada de un Template
(como en el caso de C++) o bien de alguna estructura predefinida
(especialización a través de clases).
Ejemplo:
Para este caso particular hemos definido un Diccionario para almacenar String
y Personas, las cuales pueden funcionar como llaves o como item, solo se
mostrarán las relaciones para la implementación del Diccionario:
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.M
Diagramas de clases de UML:
Instrucciones
Visual Studio 2015
Otras versiones
En Visual Studio, puede usar un diagrama de clases UML para describir los tipos
de datos y sus relaciones con independencia de su implementación.El diagrama
se utiliza para que la atención se centre en los aspectos lógicos de las clases en
lugar de en su implementación.
Para crear un diagrama de clases UML, en el menú Arquitectura, elija Nuevo
diagrama de UML o diagrama de capas.
Para ver las versiones de Visual Studio compatibles con esta característica,
vea Compatibilidad de versiones con las herramientas de arquitectura y
modelado.
Nota
En este tema se analizan los diagramas de clases de UML.Existe otro tipo de diagrama
de clases, que se crea y utiliza para visualizar el código del programa.Vea el tema
sobre cómo diseñar y ver clases y tipos.
En este tema
Usar diagramas de clases de UML
Pasos básicos para dibujar diagramas de clases
Usar clases, interfaces y enumeraciones
Atributos y operaciones
Dibujar y utilizar asociaciones
Herencia
Tipos de plantilla
Definir los espacios de nombres con paquetes
Generar código a partir de diagramas de clases de UML
Usar diagramas de clases de UML
Los diagramas de clases de UML pueden utilizarse para una gran variedad de
propósitos:
Para proporcionar una descripción de los tipos que se utilizan en un
sistema y se pasan entre sus componentes que no tenga nada que ver
con su implementación.
Por ejemplo, en el código .NET, el tipo Pedido de menú podría
implementarse en la capa del negocio; en XML, en las interfaces entre los
componentes; en SQL, en la base de datos, y en HTML, en la interfaz de
usuario.Aunque estas implementaciones tengan un nivel de detalle
diferente, la relación entre el tipo Pedido de menú y otros tipos, como
Menú y Pago, es siempre la misma.El diagrama de clases de UML permite
analizar estas relaciones con independencia de las implementaciones.
Para clarificar el glosario de términos que se utiliza en la comunicación
entre la aplicación y los usuarios y en las descripciones de las
necesidades de los usuarios.Consulte Requisitos del usuario de modelos.
Por ejemplo, piense en los casos de usuario, los casos de uso y otras
descripciones de los requisitos de la aplicación de un restaurante.En este
tipo de descripción, encontrará términos como Menú, Pedido, Comida,
Precio, Pago, etc.Puede dibujar un diagrama de clases de UML en el que
se definan las relaciones entre estos términos.De este modo, se reducirá
el riesgo de inconsistencias en las descripciones de los requisitos, así
como en la interfaz de usuario y los documentos de ayuda.
Relación con otros diagramas
Un diagrama de clases de UML normalmente se crea junto con otros diagramas
de modelado para proporcionar descripciones de los tipos que utilizan.En cada
caso, la representación física de los tipos no está implícita en ninguno de los
diagramas.
Nota
En Editar modelos y diagramas UML se describen en detalle los pasos para crear
diagramas de modelado.
Utilice las clases (1) para representar datos o tipos de objetos para la
mayor parte de los propósitos.
Utilice las interfaces (2) en contextos en los que es necesario diferenciar
entre interfaces puras y clases concretas que tienen implementaciones
internas.Esta diferencia resulta útil cuando el propósito del diagrama es
describir una implementación de software.Resulta menos útil, sin
embargo, cuando se modelan datos pasivos o cuando se definen
contextos que se utilizan para describir los requisitos del usuario.
Utilice una enumeración (3) para representar un tipo que tiene un
número limitado de valores literales, por ejemplo Stop y Go.
o Agregue los valores literales a la enumeración.Asigne a cada uno
un nombre diferente.
o Si lo desea, también puede proporcionar un valor numérico para
cada valor literal.Abra el menú contextual del literal de la
enumeración, elija Propiedades y, a continuación, escriba un
número en el campo Valor de la ventana Propiedades.
Asigne un nombre único a cada tipo.
Obtener tipos de otros diagramas
Puede hacer que los tipos de otro diagrama aparezcan en su diagrama de clases
de UML.
Otro tipo de
Cómo obtener tipos del otro diagrama
diagrama
Diagrama de Puede hacer que una clase aparezca en varios diagramas de clases de
clases de UML UML.Cuando haya creado una clase en un diagrama, arrastre la clase
del Explorador de modelos UML al otro diagrama.
Esto resulta útil si desea que cada diagrama se concentre en un grupo
de relaciones determinado.
Por ejemplo, puede mostrar las asociaciones entre un Pedido de menú
y el Menú del restaurante en un diagrama y las asociaciones entre
Pedido de menú y Pago en otro diagrama.
Nota
Si posteriormente define una clase o interfaz con ese nombre en el modelo, los
atributos y operaciones anteriores todavía harán referencia al elemento en Tipos sin
especificar.Si desea cambiarlos para que hagan referencia a la nueva clase, deberá
visitar cada atributo u operación y restablecer el tipo, seleccionando la nueva clase en
el menú desplegable.
Tipos múltiples
Puede establecer la multiplicidad de cualquier tipo de parámetro, atributo u
operación.
Los valores permitidos son los siguientes:
Forma
Name Significado
abreviada
Nota
Si escribe un nombre sin tipo en una lista de parámetros, especificará el nombre del
parámetro, en lugar de su tipo.En este ejemplo, MenuItem e Integer resultan ser los
nombres de dos parámetros con tipos no especificados:
AddItem(MenuItem, Integer) /* parameter names, not types!*/
En la Propiedad Significado
firma
Paquetes
Puede ver los paquetes en un diagrama de clases de UML.Un paquete es un
contenedor de otros elementos del modelo.Puede crear cualquier elemento
dentro de un paquete.En el diagrama, los elementos incluidos en el paquete se
desplazarán al mover el paquete.
Puede utilizar el control de expandir y contraer para ocultar o mostrar el
contenido del paquete.
Consulte Definir espacios de nombres y paquetes.
Trabajamos con la tabla "libros" de una librería que tiene los siguientes
campos: codigo, titulo, autor, editorial, preciomin (que indica el precio para
los minoristas) y preciomay (que indica el precio para los mayoristas).
Este tipo de restricción verifica los datos cada vez que se ejecuta una
sentencia "insert" o "update", es decir, actúa en inserciones y actualizaciones.
...
check (CAMPO like '[A-Z][A-Z][0-9][0-9]');
O establecer que cierto campo asuma sólo los valores que se listan:
...
check (CAMPO in ('lunes','miercoles','viernes'));
Otras versiones
Puede crear una restricción CHECK en una tabla para especificar los valores de
datos aceptables en una o más columnas de SQL Server 2014 mediante SQL
Server Management Studio o Transact-SQL.
En este tema
Antes de empezar:
Seguridad
Para crear una restricción CHECK nueva con:
SQL Server Management Studio
Transact-SQL
Antes de empezar
Seguridad
Permisos
Requiere permisos ALTER en la tabla.
Nota
Usar Transact-SQL
Para crear una restricción CHECK nueva
1. En el Explorador de objetos, conéctese a una instancia del Motor de
base de datos.
2. En la barra Estándar, haga clic en Nueva consulta.
3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic
en Ejecutar.
4. ALTER TABLE dbo.DocExc
5. ADD ColumnD int NULL
6. CONSTRAINT CHK_ColumnD_DocExc
7. CHECK (ColumnD > 10 AND ColumnD < 50);
8. GO
9. -- Adding values that will pass the check constraint
10. INSERT INTO dbo.DocExc (ColumnD) VALUES (49);
11. GO
12. -- Adding values that will fail the check constraint
13. INSERT INTO dbo.DocExc (ColumnD) VALUES (55);
14. GO
15.
Para obtener más información, vea ALTER TABLE (Transact-SQL).
Restricciones UNIQUE y
restricciones CHECK
SQL Server 2014
Otras versiones
Restricciones UNIQUE
Las restricciones son reglas que Motor de base de datos de SQL Server aplica de
forma automática.Por ejemplo, puede usar restricciones UNIQUE para garantizar
que no se escriben valores duplicados en columnas específicas que no forman
parte de una clave principal.Tanto la restricción UNIQUE como la restricción
PRIMARY KEY exigen la unicidad; sin embargo, debe usar la restricción UNIQUE
y no PRIMARY KEY si desea exigir la unicidad de una columna o una
combinación de columnas que no forman la clave principal.
A diferencia de las restricciones PRIMARY KEY, las restricciones UNIQUE
permiten valores NULL.Sin embargo, de la misma forma que cualquier valor
incluido en una restricción UNIQUE, solo se admite un valor NULL por
columna.Es posible hacer referencia a una restricción UNIQUE con una
restricción FOREIGN KEY.
Cuando se agrega una restricción UNIQUE a una o varias columnas de la tabla,
de forma predeterminada, el Motor de base de datos examina los datos
existentes en las columnas para garantizar que todos los valores sean únicos.Si
se agrega una restricción UNIQUE a una columna que contiene valores
duplicados, Motor de base de datos devuelve un error y no agrega la
restricción.
Motor de base de datos crea automáticamente un índice UNIQUE para exigir, de
acuerdo con la restricción UNIQUE, que no haya duplicados.Por lo tanto, si se
intenta insertar una fila duplicada, Motor de base de datos devolverá un
mensaje de error para indicar que se ha infringido la restricción UNIQUE y no se
agregará la fila a la tabla.A menos que se especifique explícitamente un índice
clúster, se creará de forma predeterminada un índice único, no clúster, para
exigir la restricción UNIQUE.
Restricciones CHECK
Las restricciones CHECK exigen la integridad del dominio mediante la limitación
de los valores que puede aceptar una o varias columnas.Puede crear una
restricción CHECK con cualquier expresión lógica (booleana) que devuelva TRUE
(verdadero) o FALSE (falso) basándose en operadores lógicos.Por ejemplo, es
posible limitar el intervalo de valores para una columna salary creando una
restricción CHECK que solo permita datos entre 15 000 y 100 000 USD.Esto evita
que los salarios caigan fuera del intervalo de salario normal.La expresión lógica
sería la siguiente: salary >= 15000 AND salary <= 100000.
Puede aplicar varias restricciones CHECK a una sola columna.También puede
aplicar una sola restricción CHECK a varias columnas si se crea en el nivel de la
tabla.Por ejemplo, una restricción CHECK para varias columnas se podría usar
para confirmar que cualquier fila con un valor USA en la
columna country_region tiene también un valor de dos caracteres en la
columna state.Así se pueden comprobar varias condiciones en un mismo sitio.
Las restricciones CHECK son similares a las restricciones FOREIGN KEY porque
controlan los valores que se colocan en una columna.La diferencia reside en la
forma en que determinan qué valores son válidos: las restricciones FOREIGN
KEY obtienen la lista de valores válidos de otra tabla, mientras que las
restricciones CHECK determinan los valores válidos a partir de una expresión
lógica.
Precaución
Las restricciones que incluyen la conversión de tipos de datos implícitos o explícitos
pueden impedir la correcta ejecución de determinadas operaciones.Por ejemplo, las
restricciones definidas en tablas que son orígenes de un cambio de partición pueden
impedir que una operación ALTER TABLE...SWITCH se realice correctamente.Evite
la conversión de tipos de datos en las definiciones de las restricciones.
Tareas relacionadas
Nota
Tarea Tema