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)