You are on page 1of 59

Estructura de base de datos.

Restricciones de integridad.
Universidad ORT - Uruguay
Cronograma del curso
Reglas de juego
Motivacin
Qu es una BD?
Qu es un Sistema de BD?
DDL
DML
Usuarios de BD
Componentes del sistema (DBMS)
Atributos Claves


Clusula CREATE
Restricciones de integridad
Not null
Unique
Check
Primary Key
Foreign Key



Semana 1: Introduccin a la materia.
Semana 2: Creacin de BD, creacin de tablas,
restricciones de integridad a nivel de atributo y a
nivel de tabla.
Semana 3: Insert, update, delete. Vistas.
Semana 4: Consultas simples.
Semana 5: Consultas con Join Introduccin a
Subconsultas.
Semana 6: Subconsultas. Lectura obligatorio.


Semana 7: Consultas con agrupamiento.
Semana 8: Parcial.
Semana 9: Solucin parcial. Continuacin consultas
con agrupacin.
Semana 10: Continuacin vistas, dominios.
Semana 11: Triggers, asertos(?).

Semana 12: Procedimientos, funciones, privilegios.
Semana 13: Transacciones. Control de concurrencia.
Semana 14: Preparacin parcial.
Semana 15: Segundo parcial.
Semana 16: Consultas obligatorio.
Semana 17:Entrega y defensa obligatorio.
Objetivos de la clase de hoy:
Tener un pantallazo de cmo se desarrollar el
curso.

Recordar trminos y definiciones: bases de datos,
sistema de bases de datos, dml, ddl, usuarios de
bases de datos.

Entender como crear BD, tablas y restricciones de
integridad en SQL Server.
Conjunto de datos relacionados entre s.


Representan la realidad o parte de ella.


Tienen un significado.

Tienen un propsito especfico.


Pueden ser de cualquier tamao.


Pueden tener distintos grados de complejidad.


Un conjunto de datos relacionados entre si,
organizados alrededor de un modelo de datos.


Un conjunto de programas para mantener esos
datos.

Usuario
Conjunto de
programas
DBMS
Datos
Controlar redundancia de los datos.


Evitar inconsistencia de los datos.


Facilidad para el acceso a los datos.



Seguridad de los datos.

Integridad de los datos.

Evitar anomalas en el acceso concurrente.

Recuperacin de los datos.




El objetivo primordial es crear un
ambiente en el que sea posible
guardar y recuperar informacin de
la Base de Datos de la forma ms
eficaz y eficiente posible.
Lenguaje de definicin de datos
(LDD o DDL).



Lenguaje de modificacin de datos
(LMD o DML).

Permite definir los objetos y las relaciones, es decir
las estructuras de los datos para almacenar la
informacin.

El resultado de la compilacin de las instrucciones
en DDL es un conjunto de tablas denominadas
Diccionario de Datos o Directorio de Datos.


Adems de la especificacin de los objetos permite
definir:
Dominio asociado a cada atributo.
Restricciones de integridad.
ndices.
Permisos para acceder a los objetos.

Esta manipulacin consiste en:
Recuperacin de datos.
Insercin de datos.
Eliminacin de datos.
Modificacin de datos.

Permite manejar o tener acceso a los datos
que estn organizados por medio de modelos
apropiados.
Programador de aplicaciones.

Usuarios expertos.

Usuarios finales.

Administrador de Base de Datos.



Iterfaces de
aplicacion
Programas
de aplicacion
Consultas
Esquema de
Base Datos
Cdigo objeto
de programas
de aplicacin
Procesador
de Consultas
Compilador
DDL
Gestor Base
de Datos
Gestor
Archivos
Datos
Diccionario
de Datos
Finales Programadores Expertos
DBA
DBMS
Precompilador
DML
Compilador de DDL
Procesa las definiciones de los objetos especificados
en el DDL y almacena las descripciones en el
Diccionario de Datos
Precompilador DML
Convierte las instrucciones embebidas en un
programa en llamadas de procedimientos normales
en el lenguaje anfitrin.

Iterfaces de
aplicacion
Programas
de aplicacion
Consultas
Esquema de
Base Datos
Cdigo objeto
de programas
de aplicacin
Procesador
de Consultas
Compilador
DDL
Gestor Base
de Datos
Gestor
Archivos
Datos
Diccionario
de Datos
Finales Programadores Expertos
DBA
DBMS
Precompilador
DML
Compilador DML interactivo.
Convierte las instrucciones en otras de ms bajo
nivel. Analiza la sintaxis y el contenido de las
consultas y luego genera llamadas al procesador en
tiempo de ejecucin.
Iterfaces de
aplicacion
Programas
de aplicacion
Consultas
Esquema de
Base Datos
Cdigo objeto
de programas
de aplicacin
Procesador
de Consultas
Compilador
DDL
Gestor Base
de Datos
Gestor
Archivos
Datos
Diccionario
de Datos
Finales Programadores Expertos
DBA
DBMS
Precompilador
DML

Motor de evaluacin de consultas
Transforma las consultas del usuario en otras
equivalentes pero ms eficientes,
encontrando una buena estrategia para la
ejecucin de las mismas.

Iterfaces de
aplicacion
Programas
de aplicacion
Consultas
Esquema de
Base Datos
Cdigo objeto
de programas
de aplicacin
Procesador
de Consultas
Compilador
DDL
Gestor Base
de Datos
Gestor
Archivos
Datos
Diccionario
de Datos
Finales Programadores Expertos
DBA
DBMS
Precompilador
DML

Gestor de Base de Datos
Es un mdulo de programa que constituye la
interfaz entre los datos de bajo nivel
almacenados en la base de datos y los
programas de aplicaciones y requerimientos
que se hacen al sistema.

Iterfaces de
aplicacion
Programas
de aplicacion
Consultas
Esquema de
Base Datos
Cdigo objeto
de programas
de aplicacin
Procesador
de Consultas
Compilador
DDL
Gestor Base
de Datos
Gestor
Archivos
Datos
Diccionario
de Datos
Finales Programadores Expertos
DBA
DBMS
Precompilador
DML
Tareas Gestor Base de Datos
Interaccin con el gestor de archivos
Conservar la integridad
Garantizar la seguridad
Respaldo y recuperacin
Control de concurrencia
Iterfaces de
aplicacion
Programas
de aplicacion
Consultas
Esquema de
Base Datos
Cdigo objeto
de programas
de aplicacin
Procesador
de Consultas
Compilador
DDL
Gestor Base
de Datos
Gestor
Archivos
Datos
Diccionario
de Datos
Finales Programadores Expertos
DBA
DBMS
Precompilador
DML
Clave Primaria: un atributo o grupo de atributos que
identifican unvocamente una instancia de una
entidad.
Clave Alterna: Un atributo o conjunto de atributos
que identifican unvocamente cada instancia, pero
que no forman parte de la Clave Primaria.
Clave Fornea: Una clave primaria de una entidad
padre que es aportada a una entidad hijo, a travs
de una relacin.

Create DATABASE
Crea una nueva Base de Datos

Parmetros (entre otros):
Nombre de la BD (de hasta 128 caracteres).

Ej.: CREATE DATABASE BasesDeDatos2;
Create Table
Crea una nueva tabla en la base
Parmetros (entre otros):
Nombre de la tabla.
Nombre de cada columna.
Tipo de datos de cada columna.
Restricciones de clave primaria y clave fornea
sobre otras tablas.











CREATE TABLE tabla (
columna datatype [{column_constraint(s)}
+
]
[,{columna datatype [{column_constraint(s) }
+
]}
+
]
[{table_constraint }
+
]
);


Debe ser tan descriptivo como sea posible (sin que
sea excesivamente largo).
Hasta 30 caracteres.
Debe empezar por una letra.
Puede contener letras, nmeros y caracteres
especiales ($,#,_).




bigint hierarchyid smallmoney
binary image sql_variant
bit int text
char money time(7)
date nchar(10) timestamp
datetime ntext tinyint
datetime2(7) numeric(18, 0) uniqueidentifier
datetimeoffset(7) nvarchar(50) varbinary(50)
decimal(18, 0) nvarchar(MAX) varbinary(MAX)
float real varchar(50)
geography smalldatetime varchar(MAX)
geometry smallint xml

Int
Desde 2.147.483.648 a 2.147.483.647 (requiere de 4 bytes por
valor).
Numeric(p,s) o decimal(p,s)
Los datos pueden tener un mximo de 38 dgitos, que pueden
estar todos a la derecha de la coma decimal.
Especifica la precisin, o el nmero de dgitos que puede
contener el objeto.
Especifica la escala o el nmero de dgitos que puede colocarse a
la derecha del separador decimal.
p y s deben respetar la regla: 0 <= s <= p <= 38.
Bit
Consisten en un 1 o un 0. Se usan para representar valores
lgicos VERDADERO o FALSO, SI o NO
Char(n)
Los datos deben tener la misma longitud fija (hasta 8 KB)
Varchar(n)
Los datos pueden variar en el nmero de caracteres
(hasta 8 KB)
Datetime
Los datos fecha estn comprendidos entre en el 1 de
Enero de 1753 hasta el 31 de diciembre de 9999 (requiere
8 bytes por dato).
Crear la tabla Productos, que tendr los atributos:
prodCod (admite solo valores enteros).
nombre (nombre del producto de hasta 50 caracteres).
peso (peso del producto, con dos decimales de
precisin).
descripcin (descripcin del producto, que tendr un
mximo de 200 caracteres).

Productos (prodCod, nombre, peso, descripcion)

CREATE TABLE Productos (
prodCod INTEGER,
nombre VARCHAR(50),
peso DECIMAL(9,2),
descripcion VARCHAR(200)
)

Columnas de clave primaria o primary key.

Valores nulos.

Columnas con valores nicos.

Chequeos de integridad ms complejos.

Integridad referencial (clave fornea o foreign key).


PRIMARY KEY

NOT NULL

UNIQUE

CHECK

FOREIGN KEY / REFERENCES

Crear la tabla Productos, que tendr los atributos:
prodCod (admite solo valores enteros y es la clave de la
tabla).
nombre (nombre del producto de hasta 50 caracteres).
peso (peso del producto, con dos decimales de
precisin).
descripcin (descripcin del producto, que tendr un
mximo de 200 caracteres).

Productos (prodCod, nombre, peso, descripcion)

CREATE TABLE Productos (
prodCod INTEGER PRIMARY KEY,
nombre VARCHAR(50),
peso DECIMAL(9,2),
descripcion VARCHAR(200)
)

Crear la tabla Productos, que tendr los atributos:
prodCod (admite solo valores enteros y es la clave de la
tabla).
nombre (nombre del producto de hasta 50 caracteres).
peso (peso del producto, con dos decimales de
precisin).
descripcin (descripcin del producto, que tendr un
mximo de 200 caracteres. Todos los productos deben
de tener una descripcin).

Productos (prodCod, nombre, peso, descripcion)

CREATE TABLE Productos (
prodCod INTEGER PRIMARY KEY ,
nombre VARCHAR(50),
peso DECIMAL(9,2),
descripcion VARCHAR(200) NOT NULL
)

Crear la tabla Productos, que tendr los atributos:
prodCod (admite solo valores enteros y es la clave de la
tabla).
nombre (nombre del producto de hasta 50 caracteres. No se
deben permitir nombres de productos repetidos).
peso (peso del producto, con dos decimales de precisin).
descripcin (descripcin del producto, que tendr un mximo
de 200 caracteres. Todos los productos deben de tener una
descripcin).

Productos (prodCod, nombre, peso, descripcion)

CREATE TABLE Productos (
prodCod INTEGER PRIMARY KEY,
nombre VARCHAR(50) UNIQUE,
peso DECIMAL(9,2),
descripcion VARCHAR(200) NOT NULL
)

Crear la tabla Productos, que tendr los atributos:
prodCod (admite solo valores enteros y es la clave de la tabla.
Los cdigos deben estar entre 0 y 100).
nombre (nombre del producto de hasta 50 caracteres. No se
deben permitir nombres de productos repetidos).
peso (peso del producto, con dos decimales de precisin).
descripcin (descripcin del producto, que tendr un mximo
de 200 caracteres. Todos los productos deben de tener una
descripcin).

Productos (prodCod, nombre, peso, descripcion)

CREATE TABLE Productos (
prodCod INTEGER PRIMARY KEY CHECK(prodCod
between 0 and 100),
nombre VARCHAR(50) UNIQUE,
peso DECIMAL(9,2),
descripcion VARCHAR(200) NOT NULL
)

Crear la tabla Ventas, que indica la fecha y el precio
de cada venta de producto:
ventaCod (admite valores enteros. Es la clave de la
tabla).
prodCod (admite valores enteros. Es clave fornea del
atributo prodCod de la tabla Productos).
precio (decimales con dos dgitos de precisin. No se
admiten valores nulos para este atributo).
fecha (se debe registrar una fecha para cada venta).

Ventas(ventaCod, pordCod, precio, fecha)
CREATE TABLE Ventas (
ventaCod INTEGER PRIMARY KEY,
prodCod INTEGER REFERENCES Productos,
precio DECIMAL(9,2) NOT NULL,
fecha DATETIME NOT NULL
)
CREATE TABLE Productos (
prodCod INTEGER,
nombre VARCHAR(50),
peso DECIMAL(9,2),
descripcion VARCHAR(200) NOT NULL,
PRIMARY KEY(prodCod) ,
CHECK(prodCod between 0 and 100),
UNIQUE(nombre)
);
CREATE TABLE Ventas (
ventaCod INTEGER,
prodCod INTEGER,
precio DECIMAL(9,2) NOT NULL,
fecha DATETIME NOT NULL,
PRIMARY KEY(ventaCod),
FOREIGN KEY(prodCod) REFERENCES
Productos(prodCod)
);
CREATE TABLE Productos (
prodCod INTEGER,
nombre VARCHAR(50),
peso DECIMAL(9,2),
descripcion VARCHAR(200) NOT NULL,
CONSTRAINT prodCod_pk PRIMARY
KEY(prodCod) ,
CONSTRAINT prodCod_entre CHECK(prodCod
between 0 and 100),
CONSTRAINT nombre_u UNIQUE(nombre)
);


ATRIBUTO TABLA
PRIMARY KEY SI SI
NOT NULL SI NO
CHECK SI SI
REFERENCIA SI SI
UNIQUE SI SI
Restricciones de integridad a nivel de tabla y a nivel de
atributo:
Si un atributo est definido como unique, pero
admite nulos, podemos encontrar el valor null en la
columna ms de una vez.
Cuando ms de un atributo son unique
simultneamente, se define de la siguiente manera:
CREATE TABLE ejemplo (
a number,
b number,
unique(a,b)
);
Anlogamente para claves primarias.
Presentacin del SQL Server Management
Studio.

Prctico 1.

Propiedad Identity.

ndices.

You might also like