Está en la página 1de 8

DBMS (MANEJADOR DE BASE DE DATOS)

BASE DE DATOS
Una base de datos se define como un fichero en el cual se almacena informacin en campos o delimitadores, teniendo acceso a ella posteriormente tanto de forma separada como de forma conjunta. Se utiliza normalmente para recoger grandes cantidades de informacin. (Por ejemplo el listado de nombres y apellidos de los alumnos de varios cursos).

DBMS EN EL MERCADO

LENGUAJE DE DEFINICION DE DATOS


El LDD de SQL permite la especificacion no solo de un conjunto de relaciones, sino tambien de alguna informacion relativa a esas relaciones, incluyendo: El esquema de cada relacion El dominio de valores asociado a cada atributo Las restricciones de integridad El conjunto de ndices que se deben mantener por cada relacion Informacion de seguridad y autorizacion para cada relacion La estructura de almacenamiento fsico de cada relacion en disco.

TIPOS DE DOMINIO DE SQL

SQL tambin proporciona un tipo de datos llamado intervalo : permite realizar clculos basados en fechas, horas e intervalos. Por ejemplo, si x e y son del tipo date, entonces x-y ser un intervalo cuyo valor es el nmero de das desde la fecha x hasta la y. De forma anloga, al sumar o restar un intervalo de una fecha u hora, se obtendr como resultado otra fecha u hora, respectivamente. La coercin de tipos se usa normalmente en los lenguajes de programacin comunes, as como en los sistemas de bases de datos. Como ejemplo, supngase que el dominio de nombre-cliente es una cadena de caracteres de longitud 20 y que el dominio de nombre-sucursal es una cadena de caracteres de longitud 15. Aunque las longitudes de las cadenas de caracteres difieran, la norma SQL los considerar tipos compatibles. SQL permite incluir en la declaracin de dominio de un atributo la especificacin not null y de este modo se prohbe la insercin de un valor nulo para ese atributo. Un atributo se puede declarar para que no sea nulo de la forma siguiente: nmero-cuenta char(10) not null

DEFINICION DE ESQUEMAS EN SQL


create table: se utiliza para definir un esquema de relacin primary key (Aj1, Aj2,,Ajm): la especificacin de clave primaria dice que los atributos Aj1, Aj2,,Ajm forman la clave primaria de la relacin. Los atributos clave primaria deben ser no nulos y nicos; check (P): la clusula check especifica un predicado P que debe satisfacer cada tupla de la relacin. create table cuenta (nmero-cuenta char (10), nombre-sucursal char (15), saldo integer, primary key (nmero-cuenta), check (saldo >= 0)) La especificacin unique indica que los atributos Aj1,Aj2,,Ajm forman una clave candidata; es decir, no puede haber dos tuplas en la relacin con todos los atributos que forman la clave candidata iguales. drop table: borra de la base de datos toda la informacin sobre la relacin eliminada. alter table: se utiliza para aadir atributos a una relacin existente. La sintaxis de la instruccin es la siguiente: alter table r add A D donde r es el nombre de una relacin existente, A es el nombre del atributo que se desea aadir y D es el dominio del atributo A.

DISEA EL MODELO E-R DE LA SIGUIENTE DEFINICION DE DATOS: PERSONA (ID_CONDUCTOR, NOMBRE, DIRECCION) COCHE (MATRICULA, AO, MODELO) ACCIDENTE (NUMERO_INFORME, FECHA, LUGAR) ES_DUEO (ID_CONDUCTOR, MATRICULA) PARTICIPO (ID_CONDUCTOR, COCHE, NUMERO_INFORME, IMPORTE_DAOS)
FECHA

NOMBRE DIRECCION

PERSONA

N
PARTICIPO

ACCIDENTE

LUGAR

N
ID_CONDUCTOR

NUMERO_INFORME IMPORTE DE DAOS

ES_DUEO

N
COCHE

AO

MATRICULA MODELO

DISEA LAS SIGUIENTES CONSULTAS A. BUSCAR EL NUMERO TOTAL DE PERSONAS CUYOS COCHES SE HAN VISTO INVOLUCRADOS EN UN ACCIDENTE EN 1989 B. BUSCAR EL NUMERO DE ACCIDENTE EN LOS CUALES SE HA VISTO INVOLUCRADO UN COCHE PERTENECIENTE A SANTOS C. AADIR UN NUEVO ACCIDENTE A LA BD CON CUALQUIER VALOR D. BORRAR EL MAZDA DE SANTOS E. REALIZAR EL IMPORTE DE DAOS DEL COCHE DE MATRICULA 2002BCD EN EL ACCIDENTE CON NUMERO DE INFORME ARZ192 A $45,000

A) SELECT COUNT (ID_CONDUCTOR) FROM PARTICIPO WHERE=1989

B) SELECT COUNT(*) ACCIDENTES FROM PERSONA NATURAL JOIN PARTICIPO WHERE=SANTOS

C) INSERT INTO ACCIDENTES VALUES (VI,V2,V3)

D) DELETE FROM COCHE MODELO=MAZDA AND NOMBRE=SANTOS

CUENTA EL NUMERO DE ACCIDENTES EN 1989 SELECT COUNT (ID_CONDUCTOR) FROM PARTICIPO NATURAL JOIN ACCIDENTES WHERE FECHA = 1989 TODOS LOS CONDUCTORES QUE PARTICIPARON EN ACCIDENTES EN 1989 SELECT DISTINC ID_CONDUCTOR FROM NATURAL JOIN ACCIDENTE WHERE FECHA =(1989)

EJERCICIOS DE LIBRO FUNDAMENTOS DE BASE DE DATOS 6.0 DISEA EL MODELO E-R DE LA SIGUIENTE DEFINICION DE DATOS: CREATE TABLE CLIENTE (NOMBRE_ CLIENTE CALLE_CLIENTE CIUDAD_CLIENTE PRIMARY KEY

CHAR(20), CHAR(30), CHAR(30), (NOMBRE_CLIENTE))

CREATE TABLE SUCURSAL (NOMBRE_ SUCURSAL CIUDAD_SUCURSAL ACTIVO PRIMARY KEY CHECK

CHAR(15), CHAR(30), INTEGER, (NOMBRE_SUCURSAL), (ACTIVO60>=0))

CREATE TABLE CUENTA (NUMERO_CUENTA CHAR(10), NOMBRE_SUCURSAL CHAR(15), SALDO INTEGER, PRIMARY KEY (NUMERO_CUENTA), FOREIGN KEY (NOMBRE_SUCURSAL)REFERENCES SUCURSAL, CHECK (SALDO>=0)) CREATE TABLE IMPOSITOR (NOMBRE_ CLIENTE CHAR(20), NUMERO_CLIENTE CHAR(10), SALDO INTEGER, PRIMARY KEY (NUMERO_CUENTA, NOMBRE_CLIENTE), FOREIGN KEY (NOMBRE_CLIENTE)REFERENCES CLIENTES, FOREIGN KEY (NUMERO_CUENTA)REFERENCES CUENTA)

NOMBRE_CLIENTE CIUDAD_CLIENTE

CALLE_CLIENTE

CLIENTE
SUCURSAL_CUENTA

CIUDAD_SUCURSAL

IMPSITOR

SUCURSAL
ACTIVO

SALDO

CUENTA

NUMERO_CUENTA NOMBRE_SUCURSAL

NOMBRE_SUCURSAL

6.1 COMPLTESE LA DEFINICIN DEL LDD DE SQL DE LA BASE DE DATOS BANCARIA DE PRSTAMO Y PRESTATARIO. (CRETATE TABLE PRESTAMO NUMERO_PRESTAMO CHAR (10), NOMBRE_SUCURSAL CHAR (15), IMPORTE INTEGER, PRIMARY KEY (NUMERO_PRESTAMO), FOREIGN KEY (NOMBRE_SUCURSAL)REFERENCES SUCURSAL, CHECK (IMPORTE >0 )) (CRETATE TABLE PRESTATARIO NOMBRE_CLIENTE CHAR (30), NUMERO_PRESTAMO CHAR (10), PRIMARY KEY (NOMBRE_CLIENTE, NUMERO_PRESTAMO), FOREIGN KEY (NOMBRE_CLIENTE)REFERENCES CLIENTE, FOREIGN KEY (NUMERO_PRESTAMO)REFERENCES PRESTAMO)

ESTO INDICA QUE UN CLIENTE PUEDE TENER NINGUNA O VARIOS Y QUE UN PRESTAMO PUEDE SER HECHO A NINGUNO O VARIOS CLIENTES TENIENDO EN CUENTA QUE NO ES CORRECTO QUE NO HAYA UN CLIENTE PARA UN PRESTAMO. ELIMINANDO LA TABLA PRESTATARION Y MODIFICANDO LA TABLA PRESTAMO QUEDARIA:

(CRETATE TABLE PRESTAMO NUMERO_PRESTAMO CHAR (10), NOMBRE_SUCURSAL CHAR (15), NOMBRE_CLIENTE CHAR (30), IMPORTE INTEGER, PRIMARY KEY (NUMERO_PRESTAMO), FOREIGN KEY (NOMBRE_SUCURSAL)REFERENCES SUCURSAL, FOREIGN KEY (NOMBRE_CLIENTE)REFERENCES CLIENTE, CHECK (IMPORTE >0 ))