Administración de base de datos
1.- Introducción
El lenguaje SQL se divide en dos grupos importantes de instrucciones, cada uno con objetivos diferentes:
a) DML: Por sus siglas en inglés Data Manipulation Language. Manipular los datos de la bdr. Incluye la recuperación de datos ( SQL ).
b) DDL: Por sus siglas en inglés Data Definition Language. Manipular la estructura de la bdr.
Este documento trata de la segunda parte.
2.- Definición y borrado de una base de datos relacional ( bdr )
El estándar SQL 1992 define una bdr por medio de un “ESQUEMA”, que es una unidad lógica que encierra los elementos de una bdr ( tablas, vistas, etc. ).
El Sistema Administrador de Bases de Datos Relacionales ( SABDR ) que se utiliza en el curso Ms SQL Server 7 / 2000 implementa el concepto de ESQUEMA con el nombre “BASE DE DATOS”.
No define ESQUEMAS sino BASES DE DATOS que son unidades lógicas que agrupan a los siguientes elementos: Ttablas, vistas, procedimientos, etc.
Sintaxis
CREATE DATABASE nombre_base_datos_relacional
Donde nombre_base_datos_relacional es el nombre de la bdr.
Al eliminar una bdr con el comando DROP DATABASE se borran todos sus elementos y datos.
Sintaxis
DROP DATABASE nombre_base_datos_relacional
Donde nombre_base_datos_relacional es el nombre de la bdr.
La organización física de los datos en archivos para cada SABDR es diferente y decidirá la inclución o no de más parámetros a las sentencias anteriores.
3.- Definición y borrado de tablas
Cualquier tabla de una bdr tiene las siguientes partes:
-
Campos
-
Restricciones
Sintáxis
CREATE TABLE nombre_tabla (
{Declaración_campo } …
{ Declaración_restricción }…
)
Una coma indica el fin de una declaración de campo o restricción.
Donde
Declaración_campo es la definición de un campo.
Sintaxis
Nombre_campo tipo_dato configuración
Donde
Nombre_campo
Es el identificador del campo.
Tipo_dato
Es el nombre de un tipo de dato proporcionado por el SABDR.
Configuración
Es un conjunto de restricciones para un campo:
- NULL: Permite agregar un registro sin proporcionar el valor que corresponde al campo.
-
NOT NULL: Obliga a proporcionar el valor del campo al momento de agregar un registro.
-
DEFAULT: Especifica un valor predeterminado cuando no se conoce el valor del campo al momento de agregar un registro.
Sintaxis
DEFAULT valor_predenterminado
-
IDENTITY: Indica que el campo es llave subrrogada. Solo puede ser indicado para un campo en una tabla.
Sintaxis
IDENTITY( numbase, numincremento )
Numbase: Número a partir del cual se generan los valores secuenciales.
Numincremento: Rango del incremento secuencial.
-
PRIMARY KEY: El campo es el único que forma parte de la llave primaria.
-
UNIQUE: El campo forma una llave candidata por si solo.
-
REFERENCES: El campo hace referencia a otro campo en la tabla indicada.
Sintaxis
REFERENCES nombre_tabla ( nombre_campo )
Algunos valores de configuración se contraponen:
-
Un campo definido como llave primaria no puede permitir nulos: En caso contrario podrían existir dos registros o más con dicho campo nulo y no se podría distinguir uno de otro.
-
Un campo definido como llave primaria no tiene definido un valor predeterminado: En caso contrario podrían existir dos registros o más con dicho valor y no se podría distinguir uno de otro.
-
Las llaves candidatas, puesto que tienen la misma característica de una llave primaria están sujetas a las dos consideraciones anteriores.
Declaración_restricción: Define una restricción que puede involucrar a más de un campo.
-
PRIMARY KEY
Define la llave primaria que puede o no constar de más de un campo.
Sintaxis
PRIMARY KEY ( CAMPO1, CAMPO2, … , CAMPOn )
-
UNIQUE
Define una llave candidata que puede o no constar de más de un campo.
Sintaxis
UNIQUE ( CAMPO1, CAMPO2, … , CAMPOn )
-
FOREIGN KEY
Define una llave foránea que puede o no constar de más de un campo.
Sintaxis
FOREIGN KEY ( CAMPOa1, … , CAMPOan ) REFERENCES TABLAx ( CAMPOb1, … , CAMPObn )
Define una llave foránea que solo puede tener un campo
nombre_campo1 tipo_dato1 REFERENCES TABLAx ( CAMPOb1, … , CAMPObn )
Los campos con subindice ‘a’ pertenecen a la tabla definida que hacen referencia a los campos con subindice ‘b’ que pertenecen a la tabla TABLAx.
Eliminar una tabla
El comando DROP TABLE borra una tabla si no existen llaves foráneas en otras tablas en la base de datos que hagan referencia a ella.
Sintaxis DROP TABLE nombre_tabla
Ejemplo1
La estructura de la base de datos del estacionamiento es:
Tcajones
Campo | Tipo | Varios |
Numcajon | Int | PK |
Tamanio | Char(1) | Nn |
Piso | Int | Nn |
Status | Bit | Nn, d(1) |
Tentradas
Campo | Tipo | Varios |
Ticket | Int | PK, I(1,1) |
Fhentrada | Smalldatetime | Nn, d(getdate()) |
Fhsalida | Smalldatetime | N |
Cajon | Int | FK |
Placas | Varchar(8) | Nn |
Total | Money | N, d(0) |
1er. paso: Definir la base de datos relacional
CREATE DATABASE ESTACIONAMIENTO
2do. paso: Definir cada tabla de la base de datos relacional
CREATE TABLE TCAJONES (
NUMCAJON INT NOT NULL PRIMARY KEY,
TAMANIO CHAR(1) NOT NTULL,
PISO INT NOT NULL,
STATUS BIT NOT NULL DEFAULT 1
)
CREATE TABLE TENTRADAS (
TICKET INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
FHENTRADA SMALLDATETIME NOT NULL DEFAULT GETDATE(),
FHSALIDA SMALLDATETIME NULL,
CAJON INT NOT NULL REFERENCES TCAJONES( NUMCAJON ),
PLACAS VARCHAR(8) NOT NULL,
TOTAL MONEY NULL DEFAULT 0
)
El último elemento definido en una tabla no lleva una coma ( , ) al final.
No hay comentarios:
Publicar un comentario
Are you ready?