PK y FK

3
  Fundamentos de Bases de Datos Aplicaciones de los sistemas de bases de datos Folio 2 Ismene Guadalupe Inzunza Sotelo Página 1 Llave primaria La llave primaria se utiliza para identificar en forma única cada línea en la tabla. Puede ser parte de un registro real, o puede ser un campo artificial (uno que no tiene nada que ver con el registro real). Una llave primaria puede consistir en uno o más campos en una tabla. Cuando se utilizan múltiples campos como llave primaria, se los denomina llaves compuestas. Las llaves primarias pueden especificarse cuando se crea la tabla (utilizando CREATE TABLE) o cambiando la estructura existente de la tabla (utilizando ALTER TABLE).  A continuación se presentan ejemplos para la especificación de una llave primaria cuando se crea una tabla: MySQL: CREATE TABLE Customer (SID integer, Last_Name varchar(30), Fir st_Name varchar(30), PRIMARY KEY (SID)); Oracle: CREATE TABLE Customer (SID integer PRIMARY KEY, Last_Name varchar(30), Fir st_Name varchar(30));  SQL Server : CREATE TABLE Customer (SID integer PRIMARY KEY, Last_Name varchar(30), Fir st_Name varchar(30));   A continuación se presentan ejemplos para la especificación de una llave primaria al modificar una tabla: MySQL: ALTER TABLE Customer ADD PRIMARY KEY (SID); Oracle: ALTER TABLE Customer ADD PRIMARY KEY (SID); SQL Server : ALTER TABLE Customer ADD PRIMARY KEY (SID); Nota: Antes de utilizar el comando A LTER T  ABLE para agregar una llave primaria, necesitará asegurarse de que el campo esté definido como 'NO T NULL' -- en otras palabras, NULL no puede aceptarse como valor para ese campo.

Transcript of PK y FK

5/12/2018 PK y FK - slidepdf.com

http://slidepdf.com/reader/full/pk-y-fk 1/3

 

Fundamentos de Bases de Datos Aplicaciones de los sistemas de bases de datos Folio 2

Ismene Guadalupe Inzunza Sotelo Página 1

Llave primaria La llave primaria se utiliza para identificar en forma única cada línea en la tabla. Puede ser parte deun registro real, o puede ser un campo artificial (uno que no tiene nada que ver con el registro real).Una llave primaria puede consistir en uno o más campos en una tabla. Cuando se utilizan múltiplescampos como llave primaria, se los denomina llaves compuestas.

Las llaves primarias pueden especificarse cuando se crea la tabla (utilizando CREATE  TABLE) ocambiando la estructura existente de la tabla (utilizando ALTER TABLE).

  A continuación se presentan ejemplos para la especificación de una llave primaria cuando se creauna tabla:

MySQL:CREATE TABLE Customer 

(SID integer,

Last_Name varchar(30),

Fir st_Name varchar(30),

PRIMARY KEY (SID)); 

Oracle:CREATE TABLE Customer 

(SID integer PRIMARY KEY,

Last_Name varchar(30),

Fir st_Name varchar(30)); 

SQL Server :CREATE TABLE Customer 

(SID integer PRIMARY KEY,

Last_Name varchar(30),

Fir st_Name varchar(30)); 

 A continuación se presentan ejemplos para la especificación de una llave primaria al modificar unatabla:

MySQL:ALTER TABLE Customer ADD PRIMARY KEY (SID); 

Oracle:ALTER TABLE Customer ADD PRIMARY KEY (SID); 

SQL Server :ALTER TABLE Customer ADD PRIMARY KEY (SID); 

Nota: Antes de utilizar el comando ALTER  T ABLE para agregar una llave primaria, necesitaráasegurarse de que el campo esté definido como 'NOT NULL' -- en otras palabras, NULL no puedeaceptarse como valor para ese campo.

5/12/2018 PK y FK - slidepdf.com

http://slidepdf.com/reader/full/pk-y-fk 2/3

 

Fundamentos de Bases de Datos Aplicaciones de los sistemas de bases de datos Folio 2

Ismene Guadalupe Inzunza Sotelo Página 2

Llave externa Una llave externa es un campo (o campos) que señala la llave primaria de otra tabla. El propósito dela llave externa es asegurar la integridad referencial de los datos. En otras palabras, sólo se permitenlos valores que se esperan que aparezcan en la base de datos.

Por ejemplo, digamos que tenemos dos tablas, una tabla CUSTOMER que incluye todos los datos del

CUSTOMER, y la tabla ÓRDENES que incluye los pedidos del CUSTOMER. La restricción aquí esque todos los pedidos deben asociarse con un CUSTOMER que ya se encuentra en la tablaCUSTOMER. En este caso, colocaremos una llave externa en la tabla ORDERS y la relacionaremoscon la llave primaria de la tabla CUSTOMER. De esta forma, nos aseguramos que todos los pedidosen la tabla ORDERS estén relacionadas con un CUSTOMER en la tabla CUSTOMER. En otraspalabras, la tabla ORDERS no puede contener información de un CUSTOMER que no se encuentreen la tabla CUSTOMER.

La estructura de estas dos tablas será la siguiente:

Tabla CUSTOMER  

nombre de columna  característica SID  Clave Primaria Last_Name First_Name 

Tabla ORDERS  

nombre de columna  característica Order_ID  Clave Primaria Order_Date Customer_SID  Clave Externa 

 Amount En el ejemplo anterior, la columna Customer_SID en la tabla ORDERS es una llave externaseñalando la columna SID en la tabla CUSTOMER.

 A continuación se muestran ejemplos de cómo especificar la clave externa a la hora de crear la tablaORDERS:

MySQL:CREATE TABLE ORDERS 

(Order  _ID integer,

5/12/2018 PK y FK - slidepdf.com

http://slidepdf.com/reader/full/pk-y-fk 3/3

 

Fundamentos de Bases de Datos Aplicaciones de los sistemas de bases de datos Folio 2

Ismene Guadalupe Inzunza Sotelo Página 3

Order  _Date date,

Customer  _SID integer,

Amount double,

Primar y Key (Order  _ID),

Foreign Key (Customer  _SID) references CUSTOMER(SID)); 

Oracle:CREATE TABLE ORDERS 

(Order  _ID integer primar y key,

Order  _Date date,

Customer  _SID integer references CUSTOMER(SID),

Amount double); 

SQL Server :CREATE TABLE ORDERS 

(Order  _ID integer primar y key,

Order  _Date datetime,

Customer  _SID integer references CUSTOMER(SID),

Amount double); 

  A continuación se presentan ejemplos para la especificación de una llave externa al modificar unatabla: Esto asume que se ha creado la tabla ORDERS, y que la llave externa todavía no se haingresado:

MySQL:ALTER TABLE ORDERS 

ADD FOREIGN KEY (customer  _sid) REFERENCES CUSTOMER(SID); 

Oracle:ALTER TABLE ORDERS 

ADD (CONSTRAINT fk _order s1) FOREIGN KEY (customer  _sid) REFERENCES CUSTOMER(SID);

SQL Server :ALTER TABLE ORDERS 

ADD FOREIGN KEY (customer  _sid) REFERENCES CUSTOMER(SID);