Creación Del Script de La Base de Datos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 11

Creación del script de la base de datos - Pabs Monestel https://tutorialesdeaplicaciones.

com/creacion-del-script-de-la-base-de-datos/

Pabs Monestel (https://tutorialesdeaplicaciones.com/) 

(https://tutorialesdeaplicaciones.com/creacion-del-script-de-la-base-de-datos/)
febrero 17, 2020
por Pabs Monestel (https://tutorialesdeaplicaciones.com/author/pablo-monestelgmail-com/)

A pesar de que existen muchas herramientas para crear las bases desde una interfaz
grá�ca, es de suma importancia saber cómo crear un script ya que es la base para poder
comprender realmente cada aspecto de la creación de una base de datos.

Para iniciar a crear un script vamos a tomar como referencia el siguiente modelo
relacional (https://poesiadelsoftware.com/index.php/tutoriales/bases-de-
datos/modelo-relacional/) de la agenda de amigos.

1 de 11 07/05/22 02:14
Creación del script de la base de datos - Pabs Monestel https://tutorialesdeaplicaciones.com/creacion-del-script-de-la-base-de-datos/

Pabs Monestel (https://tutorialesdeaplicaciones.com/) 

Creando las tablas


Vamos a iniciar con la creación de la tabla de amigos, a nivel personal recomiendo dejar
la creación de tablas intermedias para el �nal del script y de esa forma evitar que se
intenten crear antes que las tablas a las cuáles referencian.

Lo primero que se debe hacer es crear la base de datos e indicar que vamos a trabajar
sobre ella («usarla»).

1. CREATE DATABASE amigos


2. GO
3. USE amigos

Para iniciar el proceso he decidido escoger la tabla de amigos ya que no depende de


ninguna otra (es decir no tiene llaves foráneas), por lo que es una buena candidata para

2 de 11 07/05/22 02:14
Creación del script de la base de datos - Pabs Monestel https://tutorialesdeaplicaciones.com/creacion-del-script-de-la-base-de-datos/

ser la primera en crearse.


Pabs Monestel (https://tutorialesdeaplicaciones.com/) 
Para ello vamos a observar el siguiente código que da origen a la tabla de amigos.

1. CREATE TABLE amigos


2. (
3. identificacion varchar(15),
4. primer_nombre varchar(15) NOT NULL,
5. segundo_nombre varchar(15) DEFAULT '',
6. primer_apellido varchar(15) NOT NULL,
7. segundo_apellido varchar(15) DEFAULT '',
8. correo varchar(30) NOT NULL,
9. nacimiento date NOT NULL,
10. edad tinyint DEFAULT 0,
11. pais varchar (25) NOT NULL,
12. canton varchar (25) NOT NULL,
13. distrito varchar (30) NOT NULL,
14. CONSTRAINT PK_identificacion_amigo PRIMARY KEY CLUSTERED
(identificacion),
15. CONSTRAINT CK_edad_amigos CHECK (edad >= 0 and edad <= 120),
16. CONSTRAINT CK_nacimiento_amigo CHECK (nacimiento <
getdate())
17. )
18. CREATE UNIQUE NONCLUSTERED INDEX ix_correo_amigo ON amigos
(correo)

Del anterior script se pueden sacar varios aspectos importantes considerar:

1. Aquellos campos obligatorios llevan la instrucción not null


2. Es conveniente a aquellos campos que son opcionales de�nirles un valor por defecto
3. Por defecto y mientras el problema o reglas de negocio no indiquen lo contrario, el valor por
defecto de un campo varchar puede ser '' y de un campo numérico 0

3 de 11 07/05/22 02:14
Creación del script de la base de datos - Pabs Monestel https://tutorialesdeaplicaciones.com/creacion-del-script-de-la-base-de-datos/

4. Si bien la llave primaria puede ser creada de forma automática únicamente poniendo la
Pabs Monestel
palabra primary key(https:/
a la par del campo, si se desea dar un nombre a la restricción, es mejor 
/tutorialesdeaplicaciones.com/)
hacerlo tal como se muestra en el ejemplo
5. Al igual que el punto anterior si se desea dar nombre a la restricción check para que a nivel
interno de la base de datos sea más fácil referenciarlo se debe hacer como en el código de
ejemplo

Creación de la tabla de mascotas


La tabla de mascotas viene a representar una entidad débil tal como se determinó en el
análisis realizado en el modelo entidad-relación (https://poesiadelsoftware.com
/modelo-entidad-relacion/).

A continuación se muestra el script de la tabla de mascotas.

1. CREATE TABLE mascotas(


2. id tinyint IDENTITY(1,1) NOT NULL,
3. tipo varchar(15) NOT NULL,
4. nombre varchar(20) NOT NULL,
5. identificacion varchar(15) NOT NULL, --identificación del
amigo
6. CONSTRAINT PK_id_mascota PRIMARY KEY CLUSTERED(id),
7. CONSTRAINT FK_identificacion_amigo_mascotas FOREIGN KEY
(identificacion) REFERENCES amigos(identificacion)
8. )

Las llaves foráneas se agregan como constraints al �nal de la creación de la tabla y


deben referenciar a la tabla de la cuál se recibe la llave (amigos) y el campo especí�co
de la tabla de la cuál sale (identi�cacion).

4 de 11 07/05/22 02:14
Creación del script de la base de datos - Pabs Monestel https://tutorialesdeaplicaciones.com/creacion-del-script-de-la-base-de-datos/

Creación
Pabs Monestel de las tablas intermedias
(https://tutorialesdeaplicaciones.com/) 

Aquellas tablas que se forman a grandes rasgos a partir de relaciones con cardinalidad
de muchos a muchos.

Estas tablas reciben como llaves foráneas las llaves primarias de las tablas de las cuáles
surgen, por regla se dice que la llave primaria de una tabla intermedia es la unión de sus
llaves foráneas conformando una súperllave.

Aunque es la regla tradicional a nivel personal considero que dependiendo del contexto
y el modelo de datos una llave única autoincremental en muchas ocasiones es una
solución que facilita más las acciones que se realizan sobre los datos de una tabla.

Las llaves primarias compuestas cada vez se han venido usando menos, si se tienen
sistemas de bases de datos muy grandes donde una tabla intermedia puede estar
relacionada con varias tablas habría que migrar esas súperllave hacia todas las tablas
relacionadas que la requieran.

Por ejemplo en una llave compuesta por 4 o más campos y hay 50 tablas relacionadas
para cada acción de inserción, actualización, borrado o consulta que se realice sobre
alguno de esos campos habría que replicar la operación por todas las tablas
relacionadas, siendo poco práctico y aumentando considerablemente la complejidad y
mantenimiento de la base de datos.

Por lo tanto a modo personal pre�ero utilizar una llave primaria única y autoincremental
como se ve en el siguiente código de la tabla intermedia.

1. CREATE TABLE gustos(


2. id tinyint IDENTITY(1,1) NOT NULL,

5 de 11 07/05/22 02:14
Creación del script de la base de datos - Pabs Monestel https://tutorialesdeaplicaciones.com/creacion-del-script-de-la-base-de-datos/

3. nombre varchar(25) NOT NULL,


4. CONSTRAINT PK_id_gusto PRIMARY KEY CLUSTERED(id)
Pabs Monestel (https://tutorialesdeaplicaciones.com/) 
5. )
6. CREATE TABLE gustos_amigo(
7. id smallint IDENTITY(1,1) NOT NULL,
8. identificacion varchar(15) NOT NULL,
9. id_gusto tinyint NOT NULL,
10. CONSTRAINT PK_id_gustos_amigo PRIMARY KEY CLUSTERED(id),
11. CONSTRAINT FK_identificacion_gustos_amigo FOREIGN KEY
(identificacion) REFERENCES amigos(identificacion),
12. --Se crea una llave foránea sobre el campo id_gusto llamada
FK_id_gusto que hace referencia al campo id de la tabla gustos
13. CONSTRAINT FK_id_gusto FOREIGN KEY (id_gusto) REFERENCES
gustos(id)
14. )

Observe que antes de poder crear la tabla intermedia recomiendo crear tanto la tabla de
amigos como la de gustos, ya que es mejor crear la tabla intermedia luego de tener
de�nidas y creadas las dos tablas originales.

Script completo de la base de


datos
A continuación se muestra el script completo de la base de datos, considere que es una
posible solución y no es la única forma correcta de realizarlo.

Algunopuede decirdir crear todas las tablas y después agregar las referencias de llaves
foáneas por medio de la instrucción alter table, evitando tener que seguir un orden
especí�co de creación de las tablas, lo cuál también es correcto. La razón por la cuál no
lo hago así es por la posibilidad de llegar al �nal del script y olvidar todas las referencias

6 de 11 07/05/22 02:14
Creación del script de la base de datos - Pabs Monestel https://tutorialesdeaplicaciones.com/creacion-del-script-de-la-base-de-datos/

que deberían ponerse para las llaves foráneas.


Pabs Monestel (https://tutorialesdeaplicaciones.com/) 
1. CREATE DATABASE amigos2020
2. GO
3. USE amigos2020
4. CREATE TABLE amigos
5. (
6. identificacion varchar(15),
7. primer_nombre varchar(15) NOT NULL,
8. segundo_nombre varchar(15) DEFAULT '',
9. primer_apellido varchar(15) NOT NULL,
10. segundo_apellido varchar(15) DEFAULT '',
11. correo varchar(30) NOT NULL,
12. nacimiento date NOT NULL,
13. edad tinyint DEFAULT 0,
14. pais varchar (25) NOT NULL,
15. canton varchar (25) NOT NULL,
16. distrito varchar (30) NOT NULL,
17. CONSTRAINT PK_identificacion_amigo PRIMARY KEY CLUSTERED
(identificacion),
18. CONSTRAINT CK_edad_amigos CHECK (edad >= 0 and edad <= 120),
19. CONSTRAINT CK_nacimiento_amigo CHECK (nacimiento <
getdate())
20. )
21. CREATE UNIQUE NONCLUSTERED INDEX ix_correo_amigo ON amigos
(correo)
22. CREATE TABLE gustos(
23. id tinyint IDENTITY(1,1) NOT NULL,
24. nombre varchar(25) NOT NULL,
25. CONSTRAINT PK_id_gusto PRIMARY KEY CLUSTERED(id)
26. )
27. CREATE TABLE gustos_amigo(
28. id smallint IDENTITY(1,1) NOT NULL,

7 de 11 07/05/22 02:14
Creación del script de la base de datos - Pabs Monestel https://tutorialesdeaplicaciones.com/creacion-del-script-de-la-base-de-datos/

29. identificacion varchar(15) NOT NULL,


30. id_gusto tinyint NOT NULL,
Pabs Monestel (https://tutorialesdeaplicaciones.com/) 
31. CONSTRAINT PK_id_gustos_amigo PRIMARY KEY CLUSTERED(id),
32. CONSTRAINT FK_identificacion_gustos_amigo FOREIGN KEY
(identificacion) REFERENCES amigos(identificacion),
33. --Se crea una llave foránea sobre el campo id_gusto llamada
FK_id_gusto que hace referencia al campo id de la tabla gustos
34. CONSTRAINT FK_id_gusto FOREIGN KEY (id_gusto) REFERENCES
gustos(id)
35. )
36. CREATE TABLE telefonos(
37. id smallint IDENTITY(1,1) NOT NULL,
38. tipo varchar(15) NOT NULL,
39. numero varchar(40) NOT NULL,
40. CONSTRAINT PK_id_telefonos PRIMARY KEY CLUSTERED(id)
41. )
42. CREATE TABLE telefonos_amigo(
43. id smallint IDENTITY(1,1) NOT NULL,
44. identificacion varchar(15) NOT NULL, --identificación del
amigo
45. id_telefono smallint NOT NULL,
46. CONSTRAINT PK_id_telefonos_amigo PRIMARY KEY CLUSTERED(id),
47. CONSTRAINT FK_identificacion_amigo_telefonos_amigo FOREIGN KEY
(identificacion) REFERENCES amigos(identificacion),
48. CONSTRAINT FK_id_telefono_telefonos_amigo FOREIGN KEY
(id_telefono) REFERENCES telefonos(id)
49. )
50. CREATE TABLE mascotas(
51. id tinyint IDENTITY(1,1) NOT NULL,
52. tipo varchar(15) NOT NULL,
53. nombre varchar(20) NOT NULL,
54. identificacion varchar(15) NOT NULL, --identificación del
amigo
55. CONSTRAINT PK_id_mascota PRIMARY KEY CLUSTERED(id),

8 de 11 07/05/22 02:14
Creación del script de la base de datos - Pabs Monestel https://tutorialesdeaplicaciones.com/creacion-del-script-de-la-base-de-datos/

56. CONSTRAINT FK_identificacion_amigo_mascotas FOREIGN KEY


(identificacion) REFERENCES amigos(identificacion)
Pabs
57. )
Monestel (https://tutorialesdeaplicaciones.com/) 

Compartir en Facebook

(https://www.facebook.com/sharer/sharer.php?u=https%3A%2F
%2Ftutorialesdeaplicaciones.com%2Fcreacion-del-script-de-la-base-de-datos%2F)

 La ventaja que tienen los viernes (https://tutorialesdeaplicaciones.com/la-ventaja-que-tienen-los-


viernes/)
Creación de un formulario en html (https://tutorialesdeaplicaciones.com/forms-en-html/) 

Deja una respuesta


Tu dirección de correo electrónico no será publicada. Los campos obligatorios están
marcados con *

Tu nombre *

Dirección de correo electrónico*

Tu web (opcional)

9 de 11 07/05/22 02:14
Creación del script de la base de datos - Pabs Monestel https://tutorialesdeaplicaciones.com/creacion-del-script-de-la-base-de-datos/

Comentario
Pabs Monestel (https://tutorialesdeaplicaciones.com/) 

Guarda mi nombre, correo electrónico y web en este navegador para la próxima vez
que comente.

DEJAR UN COMENTARIO

10 de 11 07/05/22 02:14
Creación del script de la base de datos - Pabs Monestel https://tutorialesdeaplicaciones.com/creacion-del-script-de-la-base-de-datos/

Pabs Monestel (https://tutorialesdeaplicaciones.com/) 

Tutoriales de programación By Pabs Monestel


Tema por Colorlib (https://colorlib.com/) Funciona
con WordPress (http://wordpress.org/)

11 de 11 07/05/22 02:14

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy