No pueden hacerlo en claves primarias. Concepto clave. Tipos de claves y su finalidad. No nos pongamos demasiado académicos

Se definen tres clases de entidades principales:

1) Vara– una entidad independiente. Los nombres se colocan en un rectángulo.

2) De asociación– una relación de muchos a muchos entre dos o más entidades. Las asociaciones son tratadas como entidades por derecho propio. Pueden participar en otras asociaciones y tener un conjunto de atributos.

a. Las designaciones (que denotan una entidad) son relaciones de muchos a uno o de uno a uno entre dos entidades. Se diferencia de una característica en que no depende de la entidad designante.

3) Características(característica): una relación de muchos a uno o de uno a uno entre dos entidades. Es un caso especial de asociación. El único propósito de una característica es describir o aclarar alguna otra entidad. La existencia de una característica depende enteramente de la entidad que se caracteriza.

Una clave o clave potencial es solo un conjunto de atributos cuyos valores se pueden usar para encontrar de forma única la instancia requerida de una entidad.

Minimidad significa que léxicamente a partir de un conjunto de cualquier atributo no permite identificar la entidad por los restantes.

Una de las claves se toma como clave principal y el resto se denominan claves alternativas. Potencialmente, una clave que consta de un atributo se denomina simple. No se permite aceptar la clave principal de una entidad central. valor específico De lo contrario, surge una situación contradictoria: aparecerá una instancia no individual y, por lo tanto, inexistente de la esencia central. Por las mismas razones, es necesario garantizar la unicidad de la clave primaria.

Si la entidad C vincula las entidades A y B, entonces debe incluir claves foráneas, correspondiente a las claves primarias de las entidades A y B.

Para cada clave externa, es necesario abordar tres preguntas:

1) ¿Puede una clave externa adicional aceptar valores nulos? En resumen, ¿puede haber alguna instancia de una entidad para la cual se conozca la entidad de destino especificada por la clave externa?

2) ¿Qué debería suceder cuando intenta eliminar una entidad de destino a la que hace referencia una clave externa?

Hay tres posibilidades para resolver este problema:

· Cascada

· Restricción

· Configuración de un valor específico

3) ¿Qué debería suceder al intentar actualizar la clave principal de una entidad de destino a la que hace referencia alguna clave externa?

Así, para cada clave foránea en un proyecto de base de datos, es necesario especializar no sólo el campo o combinación de campos que componen esa clave foránea, sino también las respuestas a las preguntas anteriores.

Tipos de datos y dominios.

El modelo de datos relacionales se caracteriza por una estructura de datos simple y una presentación fácil de usar.

El modelo relacional está diseñado para organizar datos en forma de tablas bidimensionales. tabla relacional representa matriz bidimensional y tiene las siguientes propiedades:

1) Cada elemento de la tabla es un elemento de datos.

2) Todas las columnas de la tabla son homogéneas: todos los elementos de la columna tienen el mismo tipo de datos y longitud

3) Cada columna tiene nombre único

4) No hay filas idénticas en la tabla.

5) El orden de la fila de columnas puede ser arbitrario.

Tipos de datos

Cualquier dato utilizado en programación tiene sus propios tipos de datos. El modelo relacional requiere que los tipos de datos utilizados sean simples.

Normalmente, los tipos de datos se dividen en tres grupos:

1) tipos de datos simples

2) tipos estructurados datos

3) tipos de datos de referencia

Los tipos de datos simples (atómicos) no tienen estructura interna. Este tipo de datos se llama escalar. Estos incluyen tipos de datos lógicos, numéricos y de cadena. El concepto de atomicidad es bastante relativo. Entonces, tipo de cadena Los datos pueden considerarse como una matriz de caracteres unidimensional, y tipo entero datos como un conjunto de bits. Lo único importante aquí es que al cambiar a tal nivel bajo Se pierde la semántica, es decir, el significado de los datos.

La estructuración de tipos de datos tiene como objetivo definir estructuras de datos complejas que se construyen a partir de elementos constituyentes, que a su vez pueden tener una estructura interna (matrices, registros, estructuras).

Un tipo de datos de referencia está diseñado para proporcionar la capacidad de señalar otros datos. Este tipo de datos está destinado a lenguajes procedimentales que tienen áreas de memoria para almacenar datos.

Para modelo relacional datos, el tipo de datos utilizados no es tan importante. El requisito de que el tipo de dato sea simple debe entenderse en el sentido de que no debe tenerse en cuenta en operaciones relacionales. estructura interna datos.

Dominio porno.ru

En el modelo de datos relacionales, el concepto de tipo de datos está estrechamente relacionado con el concepto de dominio, lo que puede considerarse una aclaración del tipo de datos.

Dominio - concepto semántico. Puede considerarse como un subconjunto de los valores de algún tipo de datos.

Propiedades del dominio:

1) el dominio tiene un nombre único dentro de la base de datos

2) el dominio está definido en algunos tipo simple datos o en otro dominio

3) el dominio puede tener algunos condición lógica, que le permite describir el subconjunto de datos que es válido para un dominio determinado.

4) el dominio tiene algún significado semántico

Por ejemplo, algún dominio D, que significa “edad del empleado”, puede describirse como un subconjunto determinado del conjunto números naturales

D=(nϵN: n ≥ 18 y n ≤ 60)

La diferencia entre el dominio del concepto de subconjunto es precisamente que el dominio refleja la semántica de un determinado área temática. Puede haber varios dominios que coincidan como subconjunto, pero que tengan significados diferentes. Por ejemplo, los dominios “peso parcial” y “cantidad disponible” pueden describirse igualmente como un conjunto de números enteros no negativos, pero el significado de estos dominios será diferente y serán dominios diferentes. El significado principal de dominio es que los dominios limitan las comparaciones. Es incorrecto desde un punto de vista lógico comparar valores. diferentes dominios, incluso si son del mismo tipo. Sintácticamente es correcto elaborar una lista de todas las piezas cuyo peso es mayor que la cantidad disponible, no corresponde al significado de los conceptos de cantidad y peso.

5. Relaciones y sus propiedades, atributos y tuplas.
El concepto de relación es un concepto fundamental en el modelo de datos relacionales. Atributo de relación:<Имя_атрибута: Имя_домена>. Los nombres de los atributos deben ser únicos dentro de la relación. A menudo, los nombres de los atributos son los mismos que los nombres de dominio correspondientes. Alguna relación R, definida en el conjunto de dominios D 1 , D 2 , ... D n, contiene dos partes: un encabezado y un cuerpo. El encabezado de la relación contiene un número fijo de atributos de relación.

(,,…)

El cuerpo de una relación contiene muchos mapas de relaciones. Cada mapa de relaciones representa un conjunto de pares de la forma

<Имя_атрибута: Значение_атрибута>

(,,… ).

En este caso, el valor Val i pertenece al atributo A i D i . el valor se escribe:

R( ,,…).

El número de atributos en una relación se llama grado o aridad de la relación. El número de cartas de relación se llama cardinalidad de la relación. El núcleo de la relación describe el producto cartesiano de los dominios en los que se define la relación. El encabezado es estático. No cambia mientras se trabaja con la base de datos. Si se cambian, agregan o eliminan atributos de una relación, el resultado es una relación diferente. El cuerpo de una relación es un conjunto de cartas, es decir, un subconjunto del producto cartesiano de dominios y es una relación en el sentido matemático de la palabra. El cuerpo de la relación puede cambiar mientras se trabaja con la base de datos, es decir, se pueden cambiar, agregar tarjetas, etc.

Una base de datos relacional es un conjunto de relaciones. Un esquema de base de datos relacional es un conjunto de encabezados de relaciones incluidos en una base de datos.

Aunque cualquier relación puede representarse como una tabla, una relación no es una tabla. Estos son conceptos cercanos pero no correspondientes. Los términos que opera el modelo de datos relacionales tienen sus correspondientes sinónimos "tabulares".

Propiedades de las relaciones

Las propiedades de las relaciones consisten principalmente en diferencias entre relaciones.

1) Respecto a cartas desiguales.

El cuerpo de una relación es un conjunto de cartas y, como cualquier conjunto, no puede contener elementos indistinguibles. Las tablas, a diferencia de las relaciones, pueden contener filas idénticas.

2) Los mapas no están ordenados (de arriba a abajo) ya que el cuerpo de la relación es un conjunto.

La misma relación no puede ser representada por diferentes tablas en las que van las filas en diferente orden

3) Los atributos no están ordenados de izquierda a derecha. Dado que cada atributo tiene un nombre único dentro de la relación, el orden de los atributos no importa. La misma relación se puede representar mediante diferentes tablas en las que las columnas están en diferente orden.

4) Todos los valores de los atributos son atómicos.

De las propiedades de una relación se deduce que no todas las tablas pueden definir relaciones. Para hacer esto necesita tener estructura sencilla, no contiene líneas idénticas, cualquiera de sus columnas debe contener datos de un solo tipo y todos los tipos de datos utilizados deben ser simples.

Problema diseño lógico Una base de datos relacional consiste en tomar decisiones informadas sobre en qué relaciones debe consistir la base de datos y qué atributos deben tener esas relaciones.

El modelo de datos relacional fija dos requisitos básicos de integridad que deben ser compatibles con cualquier DBMS relacional.

1) El requisito para la integridad de las entidades, que es que cualquier mapa de cualquier relación debe ser distinguible de cualquier otro mapa de esta relación, es decir, cualquier relación debe contener una clave primaria.

2) El requisito de integridad referencial (requisito de integridad de clave externa) es el de cada valor de clave externa en la relación referenciada. Debe haber un mapa con el mismo valor de clave principal o el valor de clave externa no debe estar definido.

La clave principal es un campo en una tabla que identifica de forma única cada fila/registro en una tabla de base de datos. Las claves primarias deben contener valores únicos. La columna de clave principal no puede tener un valor.

Una tabla sólo puede tener una clave principal, que puede constar de uno o más campos. Cuando se utilizan varios campos como clave principal, se denomina clave compuesta.

Si una tabla tiene una clave principal definida en cualquier campo, entonces no puede tener dos registros que tengan mismo valor este campo(s).

Nota– Podría utilizar estos conceptos al crear tablas de bases de datos.

Crear una clave primaria

Aquí está la sintaxis para definir el atributo ID como clave principal en la tabla Clientes.

CREAR TABLA CLIENTES(ID INT NO NULO, NOMBRE VARCHAR (20) NO NULO, EDAD INT NO NULO, DIRECCIÓN CHAR (25), SALARIO DECIMAL (18, 2), CLAVE PRIMARIA (ID));

Para crear una restricción de clave principal en la columna "ID" cuando la tabla CLIENTES ya existe, utilice lo siguiente sintaxis SQL:

ALTERAR TABLA CLIENTES AGREGAR CLAVE PRIMARIA (ID);

Nota

Si estas usando ALTERAR declaración TABLE, para agregar una clave principal, las columnas de la clave principal ya deben haber sido declaradas como que no contienen valores NULL (si la tabla se creó primero).

Para definir una clave principal en varias columnas, utilice la sintaxis SQL siguiente:

CREAR TABLA CLIENTES (ID INT NO NULO, NOMBRE VARCHAR (20) NO NULO, EDAD INT NO NULO, DIRECCIÓN CHAR (25), SALARIO DECIMAL (18, 2), CLAVE PRIMARIA (ID, NOMBRE));

Para crear una restricción de clave principal en las columnas ID y NOMBRE cuando la tabla CLIENTES ya existe, utilice la siguiente sintaxis SQL.

ALTERAR TABLA CLIENTES AGREGAR RESTRICCIÓN PK_CUSTID CLAVE PRIMARIA (ID, NOMBRE);

Eliminar una clave principal

Puede borrar las restricciones de clave principal de una tabla utilizando la sintaxis que se proporciona a continuación.

ALTERAR LA TABLA LOS CLIENTES ELIMINAN LA CLAVE PRIMARIA;

  • Traducción

Estoy publicando una continuación de la traducción de una serie de artículos para principiantes.
En el presente y en los siguientes - más información esencialmente.
Comenzar - .

4. TABLAS Y CLAVES PRIMARIAS

Como ya sabe por partes anteriores, los datos se almacenan en mesas, que contienen pauta o de otra manera archivos. Anteriormente di un ejemplo de una tabla que contiene información sobre lecciones. Echémosle un vistazo de nuevo.

Hay 6 lecciones en la tabla. Las 6 son diferentes, pero para cada lección los valores de los mismos campos se almacenan en la tabla, a saber: tutorial_id (identificador de lección), título (título) y categoría (categoría). tutorial_idclave primaria tablas de lecciones. Una clave principal es un valor que es único para cada registro de una tabla.
En la siguiente tabla de clientes, customer_id es la clave principal. EN en este caso La clave principal también es un valor único (número) para cada registro.

Claves primarias en la vida cotidiana
En una base de datos, las claves primarias se utilizan para la identificación. En la vida, las claves primarias están en todas partes a nuestro alrededor. Cada vez que encuentre un número único, ese número puede servir como clave principal en la base de datos (puede, pero no necesariamente debe usarse como tal. Todas las bases de datos son capaces de generar automáticamente un valor único para cada registro como un número que se incrementa e inserta automáticamente junto con cada nueva entrada[Así llamado clave primaria sintética o sustituta – aprox.

Algunos ejemplos

  • El número de pedido que recibes al comprar en una tienda online puede ser la clave principal de alguna tabla de pedidos en la base de datos de esta tienda, porque es un valor único.
  • El número de seguro social puede ser la clave principal en alguna tabla de la base de datos. agencia gubernamental, porque también es único, como en el ejemplo anterior.
  • El número de factura se puede utilizar como clave principal en una tabla de base de datos que almacena las facturas emitidas a los clientes.
  • El número de cliente numérico se utiliza a menudo como clave principal en una tabla de clientes.

¿Qué tienen estos ejemplos en común? El hecho de que en todos ellos se selecciona como clave principal un valor único y no repetido para cada registro. De nuevo. El valor del campo de la tabla de la base de datos seleccionado como clave principal siempre es único.

¿Qué caracteriza a una clave primaria? Características de una clave primaria.
La clave principal se utiliza para identificar registros.

La clave principal se utiliza para identificación registros en la tabla, de modo que cada registro sea único. Otra analogía... Cuando llamas al servicio de atención al cliente apoyo técnico, el operador suele pedirte que proporciones algún número (contrato, teléfono, etc.) mediante el cual podrás ser identificado en el sistema.
Si olvidó su número, el operador de soporte técnico le pedirá que proporcione otra información que ayudará a identificarlo de manera única. Por ejemplo, una combinación de su fecha de nacimiento y apellido. También pueden ser una clave primaria, o más bien una combinación de ellas.

La clave principal es única.

La clave principal siempre tiene un valor único. Imaginemos que su significado no es único. Entonces no podría usarse para identificar los datos en la tabla. Esto significa que cualquier valor de clave principal puede aparecer solo una vez en la columna seleccionada como clave principal. Los RDBMS están diseñados de tal manera que no le permitirán insertar duplicados en un campo de clave principal; obtendrá un error.
Otro ejemplo. Imagina que tienes una tabla con los campos nombre y apellido y hay dos registros:

| primer_nombre | apellido |
| vasya |cachorro |
| vasya |cachorro |

Aquellos. Hay dos Vasyas. Quiere seleccionar un Vasya específico de la tabla. ¿Cómo hacer esto? Las entradas no son diferentes entre sí. Aquí es donde ayuda la clave principal. Agregue una columna de identificación ( versión clásica clave primaria sintética) y...

Identificación | primer_nombre | apellido |
1 | vasya |cachorro |
2 | vasya |cachorro |

Ahora cada Vasya es único.

Tipos de claves primarias.

Normalmente, la clave principal es un valor numérico. Pero también puede ser cualquier otro tipo de datos. No es una práctica común utilizar una cadena como clave principal (una cadena es un fragmento de texto), pero es teórica y prácticamente posible.
Claves primarias compuestas.
A menudo una clave primaria consta de un único campo, pero también puede ser una combinación de varias columnas, por ejemplo dos (tres, cuatro...). Pero recuerda que la clave primaria siempre es única, lo que significa que la combinación del enésimo número de campos, en este caso 2, debe ser única. Te contaré más sobre esto más adelante.

Numeración automática.

El campo de clave principal a menudo, aunque no siempre, es procesado por la propia base de datos. Básicamente, puede indicarle a la base de datos que asigne automáticamente un valor numérico único a cada registro cuando se cree. La base de datos normalmente comienza a numerar en 1 y aumenta este número en uno para cada registro. Esta clave primaria se llama autoincremento o autonumeración. Usando teclas de incremento automático – buen camino para establecer claves primarias únicas. El nombre clásico para dicha clave es clave primaria sustituta [Como se mencionó anteriormente. – aprox. traducción]. Esta clave no contiene información útil, relacionado con la entidad (objeto), cuya información se almacena en la tabla, por eso se llama sustituto.

5. VINCULACIÓN DE TABLAS USANDO LLAVES EXTRANJERAS

Cuando comencé a desarrollar bases de datos, a menudo intentaba almacenar información que parecía relacionada en una sola tabla. Podría, por ejemplo, almacenar información de pedidos en una tabla de clientes. Al fin y al cabo los pedidos pertenecen a los clientes, ¿verdad? No. Los clientes y los pedidos son entidades separadas en la base de datos. Ambos necesitan su propia mesa. Y los registros de estas dos tablas se pueden vincular para establecer una relación entre ellas. El diseño de bases de datos es una solución a dos problemas:
  • definir qué entidades desea almacenar en él
  • ¿Qué conexiones existen entre estas entidades?
Uno a muchos.
Los clientes y los pedidos tienen una conexión (están en una relación) uno a muchos porque uno el cliente puede tener muchosórdenes, pero cada orden específica (su muchos) emitido únicamente uno cliente, es decir Sólo puede tener un cliente. No te preocupes si en este momento La comprensión de esta conexión es vaga. Hablaré más sobre las conexiones en partes futuras.

Una cosa que es importante ahora es que para la comunicación uno a muchos es necesario dos mesas separadas. Uno para clientes, otro para pedidos. Practiquemos un poco creando estas dos tablas.

¿Qué información almacenaremos? Resolvamos la primera pregunta.
Para empezar, decidiremos qué información sobre pedidos y sobre clientela almacenaremos. Para hacer esto, debemos hacernos la pregunta: "¿Qué unidades de información se relacionan con los clientes y qué unidades de información se relacionan con los pedidos?"

Diseño de una mesa de clientes.

Órdenes realmente pertenecen a los clientes, pero el pedido no es bloque mínimo de información, que se refiere a los clientes (es decir, este bloque se puede dividir en bloques más pequeños: fecha del pedido, dirección de entrega del pedido, etc., por ejemplo).
Los campos a continuación son la información mínima que se aplica a los clientes:

  • customer_id (clave principal): identificador del cliente
  • first_name - nombre
  • apellido - segundo nombre
  • dirección - dirección
  • zip_code – código postal
  • país - país
  • fecha_nacimiento – fecha de nacimiento
  • nombre de usuario - nombre de registro usuario (iniciar sesión)
  • contraseña – contraseña

Pasemos a crear esta tabla directamente en SQLyog (por supuesto, puedes usar cualquier otro programa). A continuación se muestra un ejemplo de cómo se vería una tabla en SQLyog una vez creada. Todo aplicaciones graficas para la gestión de bases de datos tienen aproximadamente la misma estructura de interfaz. También puedes crear una tabla usando línea de comando sin utilizar una utilidad gráfica.


Creando una tabla en SQLyog. Observe que la casilla de verificación de clave principal (PK) para el campo customer_id está seleccionada. El campo customer_id es la clave principal. La casilla de verificación Auto Incr también está seleccionada, lo que significa que la base de datos insertará automáticamente un valor numérico único que, comenzando en cero, se incrementará en uno cada vez.

Diseño de una tabla de pedidos.
¿Cuáles son los datos mínimos que necesitamos para un pedido?

  • order_id (clave principal): identificador de pedido
  • order_date – fecha y hora del pedido
  • cliente – el cliente que realizó el pedido

A continuación se muestra un ejemplo de una tabla en SQLyog.

Estas dos tablas ( clientela Y pedidos) están conectados porque el campo cliente en la tabla de pedidos se refiere a la clave principal ( id_cliente) mesas de clientes. Esta conexión se llama relación de clave externa. Deberías pensar en una clave externa como copia simple(una copia del valor de) la clave principal de otra tabla. En nuestro caso, el valor del campo id_cliente de la mesa clientela copiado a la mesa pedidos cada vez que se inserta un registro. Así, con nosotros, cada pedido está ligado al cliente. Y cada cliente puede tener muchos pedidos, como se mencionó anteriormente.

Crear una relación de clave externa.

Quizás se pregunte: "¿Cómo puedo asegurarme o ver que el campo de cliente en la tabla de pedidos hace referencia al campo customer_id en la tabla de clientes?". La respuesta es simple: no puedes hacer esto porque todavía no te he mostrado cómo crear una conexión.
A continuación se muestra la ventana de SQLyog con la ventana que utilicé para crear la relación entre las tablas.


Crear una relación de clave externa entre las tablas de pedidos y clientes.

En la ventana de arriba, puede ver cómo el campo de cliente de la tabla de pedidos de la izquierda está vinculado a la clave principal (customer_id) de la tabla de clientes de la derecha.

Ahora, cuando observe los datos que podrían estar en las tablas, verá que las dos tablas están relacionadas.


Los pedidos se asocian con los clientes a través del campo cliente, que hace referencia a la tabla de clientes.

En la imagen podéis ver que el cliente María realizó tres pedidos, cliente pablo colocó uno, y el cliente John- Ni uno solo.
Quizás preguntes: “Un Qué¿Es eso lo que ordenaron todas estas personas? Este buena pregunta. Es posible que esperara ver artículos pedidos en la tabla de pedidos. Pero esto mal ejemplo diseño. ¿Cómo encajarías varios productos en una sola entrada? Bienes son entidades separadas que deben almacenarse en una tabla separada. Y la relación entre tablas. pedidos Y bienes será una relación de uno a muchos. Hablaré más sobre esto.

6. CREAR UN DIAGRAMA ENTIDAD-RELACIÓN

Anteriormente, aprendiste cómo los registros de diferentes mesas comunicarse entre sí en bases de datos relacionales datos. Antes de crear y vincular tablas, es importante que piense en entidades que existen en su sistema (para el cual está creando una base de datos) y decide cómo estas entidades contactado unos con otros. En el diseño de bases de datos, las entidades y sus relaciones normalmente se proporcionan en diagrama entidad-relación (ERD). este diagrama es el resultado del proceso de diseño de la base de datos.
Entidades.
Quizás te preguntes qué es una entidad. Bueno... es una “cosa” en el sistema. Allá. Mi mamá siempre quiso que fuera maestra porque soy muy buena explicando cosas.

en contexto diseño de base de datos La esencia es algo que merece su propia tabla en su modelo de base de datos. Cuando diseñas una base de datos, debes definir estos esencia en el sistema para el cual está creando la base de datos. Este más que una pregunta dialogar con el cliente o consigo mismo para saber con qué datos funcionará su sistema.

Tomemos como ejemplo una tienda online. La tienda en línea vende bienes. Producto podría convertirse en una entidad obvia en el sistema de tiendas en línea. Bienes están siendo ordenadosclientela. Entonces tú y yo vimos dos entidades más obvias: pedidos Y clientela.

El pedido lo paga el cliente... esto es interesante. ¿Vamos a crear una tabla separada para pagos en la base de datos de nuestra tienda online? Tal vez. Pero, ¿son realmente los pagos la información mínima relacionada con los pedidos? Esto también es posible.

Si no está seguro, piense qué información de pago desea almacenar. Es posible que desee almacenar método de pago o fecha de pago. Pero estos son todavía datos mínimos que podrían relacionarse con orden. Puedes cambiar la redacción. Método de pago: método de pago del pedido. Fecha de pago – fecha de pago del pedido. Así que no veo la necesidad de aguantar pagos en una tabla separada, aunque conceptualmente se podrían distinguir los pagos como una entidad, porque Se podría pensar en los pagos como un contenedor de información (método de pago, fecha de pago).

No nos pongamos demasiado académicos.

Como puede ver, existe una diferencia entre una entidad y la propia tabla en la base de datos, es decir no es lo mismo. Especialistas de la industria tecnologías de la información Puede ser MUY académico y pedante al respecto. No soy ese tipo de especialista. Esta diferencia depende de tu punto de vista sobre tus datos, tu información. Si miras el modelado de datos desde el punto de vista software, entonces puede terminar con muchas entidades que no se pueden transferir directamente a la base de datos. EN este manual Observamos los datos estrictamente desde la perspectiva de una base de datos y en nuestro pequeño mundo entidad es una tabla.


Espera, estás muy cerca de obtener tu título en bases de datos.

Como puede ver, determinar qué entidades tiene su sistema es un proceso intelectual que requiere algo de experiencia y, a menudo, es un tema de cambio, revisión y reflexión, pero, por supuesto, no es ciencia espacial.


Un diagrama entidad-relación puede ser bastante grande si estás trabajando en aplicación compleja. Algunos gráficos pueden contener cientos o incluso miles de tablas.

Conexiones
El segundo paso en el diseño de una base de datos es elegir qué relaciones existen entre las entidades de su sistema. Esto puede ser un poco difícil de entender ahora, pero repito, no es ciencia espacial. Con algo de experiencia y un replanteamiento del trabajo realizado, completará el siguiente modelo de base de datos de forma correcta o casi correcta.

Entonces. Te hablé de la conexión. uno a muchos y le contaré más sobre las conexiones en partes posteriores de esta guía, así que no me extenderé más en ello por ahora. Sólo recuerde que decidir qué relaciones tendrán sus entidades es una parte importante de diseño de base de datos y estas conexiones se muestran en el diagrama entidad-relación.

Este almacenamiento electrónico información a la que se accede a través de una o más computadoras. Normalmente, las bases de datos se crean para almacenar y acceder a datos que contienen información sobre un área temática determinada, es decir, algún área de la actividad humana o parte del mundo real.

DBMS es software para crear, completar, actualizar y eliminar una base de datos.

La unidad de información almacenada en la base de datos es una tabla. Cada tabla es una colección de filas y columnas, donde las filas corresponden a una instancia de un objeto, un evento o fenómeno específico, y las columnas corresponden a los atributos (rasgos, características, parámetros) del objeto, evento o fenómeno. Cada línea contiene información sobre un evento específico.

En términos de bases de datos, las columnas de una tabla se denominan campos y sus filas se denominan registros.

Entre mesas separadas Puede haber relaciones en la base de datos, es decir, la información de la tabla anterior se puede agregar a otra. Las bases de datos que tienen relaciones entre tablas individuales se denominan relacionales. La misma tabla puede ser la tabla principal en relación con una tabla de base de datos y una tabla secundaria en relación con otra.

Las tablas conectadas por relaciones interactúan según el principio maestro-esclavo. La misma tabla puede ser la tabla principal de una tabla de base de datos y una tabla secundaria de otra.

Objeto es algo que existe y es distinguible, poseyendo un conjunto de propiedades. La diferencia entre un objeto y otro está determinada por valores de propiedad específicos.

Esencia – reflejo de un objeto en la memoria de una persona o de una computadora.

Atributo – el valor específico de cualquiera de las propiedades de la entidad.

Campo es un elemento único de un registro que almacena un valor de atributo específico.

Campo de comunicación Este es el campo por el cual se relacionan dos tablas.

Claves primarias y secundarias

Cada tabla de la base de datos puede tener una clave principal: este es un campo o una colección de campos que identifica de forma única un registro.

El valor de clave principal en una tabla de base de datos debe ser único, es decir, no debe haber dos o más registros en la tabla con el mismo valor de clave principal.

Las claves primarias facilitan el establecimiento de relaciones entre tablas. Debido a que la clave principal debe ser única, no se pueden utilizar todos los campos de la tabla.

Si la tabla no tiene campos cuyos valores sean únicos, para crear una clave primaria, generalmente se introduce en ella un campo numérico adicional, cuyos valores el DBMS puede disponer a su discreción.

Las claves secundarias se establecen mediante campos que se utilizan a menudo al buscar u ordenar datos: los índices creados a partir de claves secundarias ayudarán al sistema a encontrar los valores requeridos almacenados en los campos correspondientes mucho más rápido.

A diferencia de las claves primarias, los campos de las claves secundarias pueden contener información no única.

Relaciones relacionales entre tablas.

Cara a cara. Una relación uno a uno ocurre cuando un registro en una tabla principal coincide con un registro en una tabla secundaria.

Esta relación es mucho menos común que la relación de uno a muchos; se utiliza si no se desea que la tabla de la base de datos se incremente con una tabla secundaria. Una relación uno a uno da como resultado que se requieran múltiples operaciones de lectura para leer información relacionada en varias tablas, lo que ralentiza la recuperación de la información requerida. Además, las bases de datos que contienen tablas con una relación uno a uno no pueden considerarse completamente normalizadas.

Al igual que una relación de uno a muchos, una relación de uno a uno puede ser dura o blanda.

Última actualización: 02/07/2017

Las bases de datos pueden contener tablas relacionadas entre sí. varias conexiones. Una relación representa una asociación entre entidades de diferentes tipos.

Al seleccionar una relación, seleccione la tabla principal o principal (tabla de clave principal/tabla maestra) y la tabla secundaria dependiente ( clave externa tabla/tabla secundaria). La tabla secundaria depende de la tabla principal.

Las claves externas se utilizan para organizar la comunicación. Una clave foránea representa una o más columnas de la misma tabla que también clave potencial de otra mesa. La clave externa no tiene que coincidir con la clave principal de la tabla principal. Aunque, por regla general, una clave externa de una tabla dependiente apunta a una clave primaria de la tabla principal.

Las relaciones entre tablas son de los siguientes tipos:

    Cara a cara

    uno a muchos

    muchos a muchos(Muchos a muchos)

comunicación uno a uno

Este tipo de conexión no se encuentra con frecuencia. En este caso, un objeto de una entidad puede asociarse únicamente con un objeto de otra entidad. Por ejemplo, en algunos sitios un usuario sólo puede tener un blog. Es decir, surge una relación: un usuario, un blog.

A menudo, este tipo de relación implica dividir una mesa grande en varias pequeñas. En este caso, la tabla principal principal sigue conteniendo datos utilizados con frecuencia, mientras que la tabla dependiente secundaria normalmente almacena datos que se utilizan con menos frecuencia.

En este sentido, la clave primaria de la tabla dependiente es al mismo tiempo una clave foránea que hace referencia a la clave primaria de la tabla principal.

Por ejemplo, la tabla Usuarios representa usuarios y tiene las siguientes columnas:

    ID de usuario (id, clave principal)

    Nombre (nombre de usuario)

Y la tabla Blogs representa los blogs de los usuarios y tiene las siguientes columnas:

    BlogId (identificador, clave primaria y externa)

    Nombre (nombre del blog)

En este caso, la columna BlogId almacenará el valor de la columna UserId de la tabla de usuarios. Es decir, la columna BlogId actuará como clave primaria y externa.

Relación uno a muchos

Este es el tipo de conexión más común. En este tipo de relación, varias filas de una tabla secundaria dependen de una sola fila de la tabla principal. Por ejemplo, un blog puede tener varios artículos. En este caso, la tabla de blogs es la tabla principal y la tabla de artículos es la secundaria. Es decir, un blog, muchos artículos. U otro ejemplo, en equipo de futbol Pueden jugar varios jugadores. Y al mismo tiempo, un futbolista solo puede jugar en un equipo a la vez. Es decir, un equipo, muchos jugadores.

Por ejemplo, tengamos una tabla llamada Artículos que represente artículos de blog y tenga las siguientes columnas:

    Id. del artículo (identificación, clave principal)

    BlogId (clave externa)

    Título (título del artículo)

    Texto (texto del artículo)

En este caso, la columna BlogId de la tabla de artículos almacenará el valor de la columna BlogId de la tabla de blogs.

Relación de muchos a muchos

Con este tipo de relación, una fila de la tabla A se puede asociar con muchas filas de la tabla B. A su vez, una fila de la tabla B se puede asociar con muchas filas de la tabla A. Un ejemplo típico son los estudiantes y los cursos: un estudiante puede tomar varios cursos y, en consecuencia, varios estudiantes pueden inscribirse en un curso.

Otro ejemplo son los artículos y las etiquetas: se pueden definir varias etiquetas para un artículo y una etiqueta para varios artículos.

pero en Servidor SQL a nivel de base de datos, no podemos establecer una relación directa de muchos a muchos entre dos tablas. Esto se realiza a través de una mesa auxiliar de puesta en escena. A veces, los datos de esta tabla provisional representan una entidad separada.

Por ejemplo, en el caso de artículos y etiquetas, que haya una tabla de Etiquetas que tenga dos columnas:

    TagId(identificador, clave principal)

    Texto (texto de etiqueta)

También permita que haya una tabla intermedia ArticleTags con los siguientes campos:

    TagId (identificador, clave primaria y externa)

    ArticleIdId (identificador, clave primaria y externa)

Técnicamente, obtendremos dos relaciones de uno a muchos. La columna TagId de la tabla ArticleTags hará referencia a la columna TagId de la tabla Tags. Y la columna ArticleId de la tabla ArticleTags se referirá a la columna ArticleId de la tabla Articles. Es decir, las columnas TagId y ArticleId en la tabla ArticleTags representan una clave primaria compuesta y también son claves externas para la relación con las tablas Articles y Tags.

Integridad de datos referenciales

Al cambiar las claves primaria y externa, se debe observar el siguiente aspecto: integridad de datos referenciales(integridad referencial). Su idea básica es que dos tablas en una base de datos almacenen los mismos datos para mantener la coherencia. La integridad de los datos representa relaciones construidas correctamente entre tablas con instalación correcta vínculos entre ellos. ¿En qué casos se puede vulnerar la integridad de los datos?

    Anomalía de eliminación(anomalía de eliminación). Ocurre cuando se elimina una fila de la tabla principal. En este caso, la clave externa de la tabla dependiente continúa haciendo referencia línea eliminada desde la mesa principal

    anomalía de inserción(anomalía de inserción). Ocurre cuando se inserta una fila en una tabla dependiente. En este caso, la clave externa de la tabla dependiente no coincide con la clave principal de ninguna de las filas de la tabla principal.

    Actualizar anomalías(actualización de anomalía). Con tal anomalía, varias filas de la misma tabla pueden contener datos que pertenecen al mismo objeto. Cuando cambia datos en una fila, puede entrar en conflicto con los datos de otra fila.

Anomalía de eliminación

Para resolver una anomalía de eliminación, debe establecer una de dos restricciones en una clave externa:

    Si una fila de una tabla dependiente requiere necesariamente una fila de la tabla principal, entonces se establece una eliminación en cascada para la clave externa. Es decir, cuando se elimina una fila de la tabla principal, la eliminación se produce cadena relacionada(filas) de la tabla dependiente.

    Si una fila de una tabla dependiente permite la ausencia de una relación con una fila de la tabla principal (es decir, dicha relación es opcional), entonces se establece la configuración para la clave externa al eliminar la fila relacionada de la tabla principal. a valores NULL. La columna de clave externa debe aceptar valores NULL.

Anomalía de inserción

Para resolver una anomalía de inserción al agregar datos a una tabla dependiente, la columna que representa la clave externa debe ser anulable. Y por lo tanto, si el objeto agregado no tiene conexión con la tabla principal, entonces la columna de clave externa contendrá un valor NULL.

Actualizar anomalías

Para resolver el problema de la anomalía de actualización, se utiliza la normalización, que se analizará más adelante.




Arriba