BASE DE DATOSDISEÑO FISICODISEÑO FISICO
LIC. DIEGO KRAUTHAMERPROFESOR ADJUNTO INTERINOSEDE BUENOS AIRES
AGENDA� Concepto de Diseño Físico� Lenguaje SQL
� Características
� Historia� Historia
� Componentes
� Herramientas Case: DBDesigner
DISEÑO FISICO�Se definen las estructuras de almacenamiento y los métodos de acceso efectivo a los datos.� Se selecciona el Software de Base de Datos en el cuál se implementará la Base de Datos.cuál se implementará la Base de Datos.� Se utilizará DB2 Express-C.
Diseño Físico
Instrucciones de Lenguaje de
Definición de Datos (D.D.L)
Diagrama Lógico(Modelo Normalizado)
LENGUAJE SQL� Es el Lenguaje Estructurado de Consultas o Structur edQuery Language.� Es de Cuarta Generación (4GL).� Es un estándar del mercado.� Historia
� 1974 – Donald Chamberlin IBM define las especificacio nes. Inicialmente se denómino SEQUEL.� 1976 – Primer Prototipo de SQL (SYSTEM/R) IBM� 1979 – Oracle 2 Primera Versión de Oracle � 1983 – Se empieza a comercializar DB2 de IBM� 1986 – Primera Versión del ANSI SQL SQL/86� 1989 –SQL Server Versión 1.0 para OS/2
LENGUAJE SQL - COMPONENTES
� Lenguaje de Definición de Datos (D.D.L) � Se utiliza para crear la estructura física de la ba se de datos.� Instrucciones: CREATE, ALTER, DROP.
� Lenguaje de Manipulación de Datos (D.M.L).� Es usado para consultar la información alojada en l a Base de Datos�Instrucciones: SELECT.
� Lenguaje de Control de Datos (D.C.L)� Se aplica a la Seguridad de la Base de Datos.� Instrucciones: GRANT, REVOKE, DENY.
LENGUAJE DE DEFINICION DE DATOSINSTRUCCIÓN CREATE
� instrucción CREATE� Creación de objetos de la base de datos (TABLAS)� Sintaxis:
CREATE TABLE [NOMBRE TABLA] (
� Campo: es el nombre de cada uno de los campos.� Null/Not Null: Indica si es campo puede contener o n o información Nula.
CREATE TABLE [NOMBRE TABLA] (NOMBRE_CAMPO TIPO_DATO NULL/NOT NULL RESTRICCIÓN,…………………,…………………);
LENGUAJE DE DEFINICION DE DATOSTIPOS DE DATOS
� Es el tipo de información a ingresar dentro del cam po creado.
Categoría Tipo de Datos
Numérico IntegerNumérico Integer
Decimal(presición,escala)
Cadena Char(Longitud)
Varchar(Longitud)
Fecha y Hora Date
XML XML
LENGUAJE DE DEFINICION DE DATOSRESTRICCIONES O CONSTRAINTS
� Forman parte del a definición de una tabla y permit en:� Forzar la unicidad del conjunto de columnas que def inen la clave primaria.� Forzar la unicidad de una columna (Unique)� Forzar valores predeterminados (Default)� Forzar valores predeterminados (Default)� Forzar la existencia de valores (Not Null)� Restringir el Domino de un Campo (Check)� Forzar la integridad referencial (Foreign Key).
� Pueden ser definidas a Nivel de Columna o a Nivel d e Tabla.
RESTRICCIONES O CONSTRAINTSPRIMARY KEY
� Identifica univocamente a un campo o combinación de campos.� Definición a Nivel de Columna
CREATE TABLE PRODUCTO(CPROD INTEGER PRIMARY KEY,…………………,
Definición a Nivel de Tabla
…………………, …………………);
CREATE TABLE PRODUCTO(CPROD INTEGER,DESCRI VARCHAR(100), …………………,CONSTRAINT PK_CPROD PRIMARY KEY(CPROD)
);
Nombre de la
Restricción
Nombre del
CampoTipo de
Restricción
RESTRICCIONES O CONSTRAINTSFOREIGN KEY
� Es una columna o combinación de columnas sobre las que se establece un vinculo de integridad referencial entr e dos tablas.� Representa una Jerarquía Padre-Hijo.� Definición a Nivel de Columna
� Solo se puede realizar a este nivel para claves simp les.� Solo se puede realizar a este nivel para claves simp les.
CREATE TABLE [NOMBRE_TABLA](NOMBRE_CAMPO TIPO_DATO CONSTRAINT [NOMBRE] TABLA_PADRE(CAMPO1),…………………);
CREATE TABLE FACTURA(CODCLI INTEGER CONSTRAINT FK_CODCLI CLIENTE(CODCLI),……………………………………);
� Ejemplo :
RESTRICCIONES O CONSTRAINTSFOREIGN KEY
� Definición a Nivel de Tabla:�Se puede realizar a nivel claves simples o compuesta s�Sintaxis:
CREATE TABLE [NOMBRE_TABLA](NOMBRE_CAMPO TIPO_DATO CONSTRAINT [NOMBRE] NOMBRE_CAMPO TIPO_DATO CONSTRAINT [NOMBRE] FOREIGN KEY(CAMPO1,CAMPO2) REFERENCES TABLA_PADRE(CAMPO1,CAMPO2));
CREATE TABLE FACTURA(NFACT INTEGER PRIMARY KEY,FECHA DATE,CODCLI INTEGER,CONSTRAINT FK_CODCLI FOREIGN KEY(CODCLI)REFERENCES CLIENTE(CODCLI));
� Ejemplo :
RESTRICCIONES O CONSTRAINTSCHECK
� Son restricciones de dominio. Se definen a través d e una condición:� Definición a Nivel de Columna
CREATE TABLE [NOMBRE_TABLA](…………………, NOMBRE_CAMPO TIPO_DATO CHECK(CONDICION) NOMBRE_CAMPO TIPO_DATO CHECK(CONDICION) …………………);
CREATE TABLE DETALLE_FACTURA(NFACT INTEGER,CPROD INTEGER, CANTIDAD INTEGER CHECK(CANTIDAD > 0),CONSTRAINT PK_CPROD PRIMARY KEY(NFACT,CPROD)
);
� Ejemplo :
RESTRICCIONES O CONSTRAINTSCHECK
� Son restricciones de dominio. Se definen a través d e una condición.� Definición a Nivel de Columna
CREATE TABLE [NOMBRE_TABLA](…………………, NOMBRE_CAMPO TIPO_DATO CHECK(CONDICION) NOMBRE_CAMPO TIPO_DATO CHECK(CONDICION) …………………);
CREATE TABLE DETALLE_FACTURA(NFACT INTEGER,CPROD INTEGER, CANTIDAD INTEGER CHECK(CANTIDAD > 0),CONSTRAINT PK_CPROD PRIMARY KEY(NFACT,CPROD)
);
� Ejemplo :
RESTRICCIONES O CONSTRAINTSCHECK
� Definición a Nivel de Tabla� Sintaxis
CREATE TABLE [NOMBRE_TABLA](…………………, CONSTRAINT NOMBRE TIPO_DATO CHECK(CONDICION), CONSTRAINT NOMBRE TIPO_DATO CHECK(CONDICION), …………………);
CREATE TABLE DETALLE_FACTURA(NFACT INTEGER,CPROD INTEGER, CANTIDAD INTEGER,CONSTRAINT CK_CANTIDAD CHECK(CANTIDAD > 0),CONSTRAINT PK_CPROD PRIMARY KEY(NFACT,CPROD)
);
� Ejemplo:
RESTRICCIONES O CONSTRAINTSUNIQUE
� Impide que el valor de un campo aparezca más de una vez.�A nivel de columna:
CREATE TABLE EMPLEADO(LEGAJO INTEGER NOT NULL PRIMARY KEY,NOMBRE VARCHAR(50),NOMBRE VARCHAR(50),LEGAJO_JEFE INTEGER NOT NULL UNIQUE
);
CREATE TABLE EMPLEADO(LEGAJO INTEGER NOT NULL PRIMARY KEY,NOMBRE VARCHAR(50),LEGAJO_JEFE INTEGER NOT NULL,UNIQUE(LEGAJO JEFE)
);
� A nivel de tabla:
LENGUAJE DE DEFINICION DE DATOSINSTRUCCION ALTER
� Instrucción ALTER� Se utiliza para modificar la estructura de un objet o dentro de la base de datos. �Sintaxis:
� Ejemplo: Agregar el campo línea a la tabla Producto .
� Ejemplo: Eliminar el campo descri a la tabla Product o.
ALTER TABLE [NOMBRE TABLA][ADD/DROP];
ALTER TABLE PRODUCTO ADD LINEA VARCHAR(50);
ALTER TABLE PRODUCTO DROP DESCRI;
LENGUAJE DE DEFINICION DE DATOSINSTRUCCION DROP
� Instrucción DROP� Se utiliza para eliminar objetos dentro de la base de datos� Sintaxis:
DROP TABLE [NOMBRE TABLA];
� Ejemplo: Borrado de la tabla Factura
DROP TABLE FACTURA;