Reglas de integridad
Llaves Primarias (clave primaria)
En el diseño de bases de datos relacionales , se llama clave primaria o clave principal a un campo o a una combinación de campos que identifica de forma única a cada fila de una tabla . Una clave primaria comprende de esta manera una columna o conjunto de columnas. No puede haber dos filas en una tabla que tengan la misma clave primaria.
https://es.wikipedia.org/wiki/Clave_primaria
Llaves primarias simples
Primary Keys pueden ser simples (o sea, una sola columna actúa como Primary Key).
Copiar create table tipo_documento
(
sigla varchar(10) primary key,
nombre_documento varchar(100),
estado varchar(40)
);
Llaves primarias compuestas
Primary Keys pueden ser compuestas (o sea, dos o más columnas actúan como Primary Key).
Copiar create table factura(
anio_factura int,
numero_factura int,
total double,
primary key (anio_factura, numero_factura)
);
Llaves primarias Naturales( business key o domain key)
Copiar create table estudiante(
tipo_documento varchar(10),
numero_documento varchar(50),
nombres varchar(200),
apellidos varchar(200),
password varchar(256),
primary key (tipo_documento, numero_documento)
);
Llaves primarias sustitutas(surrogates key o subrogada)
Copiar create table estudiante2
(
id int auto_increment, # 4 bytes
tipo_documento varchar(10) not null , # 11 bytes
numero_documento varchar(50) not null , # 51 bytes
nombres varchar(200),
apellidos varchar(200),
password varchar(256),
primary key (id),
unique (tipo_documento, numero_documento) # 62 bytes insert, update
);
Llaves Foráneas
Una llave foránea es una campo que referencia a una llave primaria en otra tabla o la misma
Copiar create table curso(
ficha int,
cantidad_estudiantes int not null,
estado varchar(40) not null ,
primary key (ficha)
);
create table estudiante(
tipo_documento varchar(10) not null,
numero_documento varchar(50) not null,
nombres varchar(200) not null ,
apellidos varchar(200) not null ,
password varchar(256) not null ,
ficha int not null,
constraint pk_estudiante primary key (tipo_documento, numero_documento),
constraint fk_curso foreign key (ficha) references curso(ficha)
);
la llave foránea se puede codificar de la siguiente forma
Copiar constraint pk_estudiante primary key (tipo_documento, numero_documento)