You are on page 1of 9

Universidad Abierta y a Distancia de

Mxico

ACTIVIDAD 4:
Actividad 4. Ejercicio: Funciones bsicas de SQL y lgebra
relacional
Alumno: Francisco Jos Rivera Mundo

Matricula: ES1611302153

Semestre: 2do

Licenciatura: Ingeniera en desarrollo de software

Asignatura: Base de datos

Docente: Israel Flores Birrichaga

Fecha de entrega: 07 de diciembre de 2016

BASE DE DATOS
DOCENTE: ISRAEL FLORES BIRRICHAGA

Actividad 4. Ejercicio: Funciones bsicas de SQL y lgebra relacional


DISEO DE LA BASE DE DATOS

FRANCISCO JOSE RIVERA MUNDO


ES1611302153
INGENIERIA EN SOFTWARE

BASE DE DATOS
DOCENTE: ISRAEL FLORES BIRRICHAGA

DICCIONARIO DE DATOS
ENTIDAD

ATRIBUTO

TIPO

CLIENTES

Cli_ID

numero

Cli_Clave
Cli_Nombredelcliente

USUARIOS

ESTADOS

MUNICIPIO

SERVICIOS

TRANSACCION

LONGITUD

RESTRICCIONES

NULOS

DESCRIPCIN

No

texto

15

Primary Key,
Autoincrement
Unique

No

Nmero de cliente registrado en


la empresa
Abreviatura del cliente

texto

300

No

Nombre completo del cliente

Cli_Domicilio

texto

300

No

Cli_RFC

texto

50

Domicilio particular donde se


ubica el cliente
Clave RFC del cliente

Cli_Municipio

numero

Cli_CP

numero

Cli_Estado

numero

Cli_Contacto

texto

300

No

Cli_Correo

texto

300

No

Municipio donde reside el cliente


en su organizacin/empresa
Cdigo postal donde reside la
organizacin/empresa
del
cliente
Estado donde reside el cliente
en su organizacin/empresa
Nombre de la persona fsica de
la organizacin (cliente) donde
se pondr en contacto
Correo electrnico del cliente

Cli_Telefono

texto

300

Si

Nmero telefnico del cliente

Usu_ID

numero

No

Clave nica del usuario

Usu_NombreUsuario

texto

100

No

Usu_Contrasea

texto

30

Usu_Cliente

numero

Foreign Key

No

Est_ID

numero

No

Est_NombreEstado

texto

Primary Key,
Autoincrement
Unique

Nombre de usuario para accesar


al sistema
Contrasea para accesar al
sistema
Cliente a la que est relacionada
la cuenta de usuario registrada
Nmero de registro de estado

Mun_ID

numero

Primary Key,
Autoincrement

No

Mun_NombreMunicipio

texto

Mun_Estado

numero

Ser_ID

numero

Ser_NombreServicio

texto

Ser_Precio

decimal

Tra_ID

numero

Tra_Total

decimal

FRANCISCO JOSE RIVERA MUNDO


ES1611302153
INGENIERIA EN SOFTWARE

Si
Foreign Key con
MUNICIPIO

No
No

Foreign Key con


ESTADO

100

Primary Key,
Autoincrement
Unique

No

No

100

No

No
Foreign Key con
ESTADO,
CLIENTE
Primary Key,
Autoincrement

No

Nombre del estado de la


republica
Numero de municipio registrado
Nombre
del
municipio
o
delegacin registrado
Estado de la republica a la que
pertenece el municipio

No

Clave del servicio

100

No

18, 2

No

Nombre del servicio que ofrece


u
ofrecer
la
organizacin/empresa
Costo del servicio

Primary Key,
Autoincrement
18, 2

No
No

Numero
de
transaccin
realizada
Total, a pagar de la compra
(renta de los servicios)

BASE DE DATOS
DOCENTE: ISRAEL FLORES BIRRICHAGA

COMPRAS

TARJETAS

Tra_Usuario

numero

Foreign Key con


USUARIOS
Primary Key,
Autoincrement
Foreign Key con
TRANSACCION

Com_ID

numero

Com_Transaccion

numero

Com_Precio

decimal

Com_Servicio

entero

Tar_ID

entero

Tar_NumTarjeta

texto

50

Tar_Tipo

texto

25

Tar_Usuario

entero

18, 2

No
No
No

No
Foreign Key con
SERVICIOS
Primary Key,
Autoincrement
UNIQUE

No
No
No
No

Foreign Key con


USUARIOS

No

Clave que identifica que usuario


tramito esa transaccin
Clave de compra de un servicio
Indicador que sirve a que
transaccin se realiz la
compra(s)
Precio
total
del
servicio
solicitado
Clave que identifica que servicio
fue comprado (contratado)
Nmero de tarjeta registrado
Nmero de la tarjeta bancaria
del cliente
Tipo de tarjeta de banco
(Visa/MasterCard)
Clave que identifica a que
usuario pertenece dicha tarjeta

La base de datos creada anteriormente en un modelado relacional ahora, se


proceder a la creacin de esta en un motor de base de datos. El nombre de la base
de datos se llamar BD_ Detihouse mediante la siguiente lnea de comandos:
create database BD_Detihouse;
Ya creada la base de datos usaremos un comando especial que sirve para enfocar
todos los cambios que realicemos a la misma base usaremos el comando:
use BD_Detihouse;
Ahora procederemos a la creacin de cada una de las tablas de acuerdo a las
caractersticas dadas, usaremos como SGBD a MySQL:
create table clientes(
Cli_ID bigint primary key auto_increment,
Cli_Clave varchar(15) unique not null,
Cli_Nombredelcliente varchar(300) not null,
Cli_Domicilio varchar(300) not null,
Cli_RFC varchar(50) null,
Cli_Municipio bigint not null,
Cli_CP int not null,
Cli_Estado bigint not null,
Cli_Contacto varchar(300) not null,
Cli_Correo varchar(300) not null,
Cli_Telefono varchar(300) null
);
FRANCISCO JOSE RIVERA MUNDO
ES1611302153
INGENIERIA EN SOFTWARE

BASE DE DATOS
DOCENTE: ISRAEL FLORES BIRRICHAGA

create table usuarios(


Usu_ID bigint primary key auto_increment,
Usu_NombreUsuario varchar(100) unique not null,
Usu_Contrasea varchar(30) not null,
Usu_Cliente bigint not null
);
create table estados(
Est_ID bigint primary key auto_increment,
Est_NombreEstado varchar(100) unique not null
);
create table municipios(
Mun_ID bigint primary key auto_increment,
Mun_NombreMunicipio varchar(100) not null,
Mun_Estado bigint not null
);
create table servicios(
Ser_ID bigint primary key auto_increment,
Ser_NombreServicio varchar(100) not null,
Ser_Precio decimal(18,2) not null
);
create table transaccion(
Tra_ID bigint primary key auto_increment,
Tra_Total decimal(18,2) not null,
Tra_Usuario bigint not null
);
create table compras(
Com_ID bigint primary key auto_increment,
Com_Transaccion bigint not null,
Com_Precio decimal(18,2) not null,
Com_Servicio bigint not null
);
create table tarjetas(
Tar_ID bigint primary key auto_increment,
Tar_NumTarjeta varchar(50) unique not null,
Tar_Tipo varchar(25) not null,
Tar_Usuario bigint not null
);

FRANCISCO JOSE RIVERA MUNDO


ES1611302153
INGENIERIA EN SOFTWARE

BASE DE DATOS
DOCENTE: ISRAEL FLORES BIRRICHAGA

Ahora procederemos a crear las llaves forneas:


alter table clientes add constraint FK_CLIENTES_MUNICIPIO foreign
key (Cli_Municipio) references municipios(Mun_ID);
alter table clientes add constraint FK_CLIENTES_ESTADOS foreign
key (Cli_Estado) references estados(Est_ID);
alter table usuarios add constraint FK_USUARIOS_CLIENTES foreign
key (Usu_Cliente) references clientes(Cli_ID);
alter table municipios add constraint FK_MUNICIPIOS_ESTADOS
foreign key (Mun_Estado) references estados(Est_ID);
alter table transaccion add constraint FK_TRANSACCION_USUARIOS
foreign key (Tra_Usuario) references usuarios(Usu_ID);
alter table compras add constraint FK_COMPRAS_TRANSACCION foreign
key (Com_Transaccion) references transaccion(Tra_ID);
alter table compras add constraint FK_COMPRAS_SERVICIOS foreign
key (Com_Servicio) references transaccion(Tra_ID);
alter table tarjetas add constraint FK_TARJETAS_USUARIOS foreign
key (Tar_Usuario) references usuarios(Usu_ID);
Con esto ya fue creada la base de datos, con todas las tablas.

OPERACIONES CON ALGEBRA OPERACIONAL Y SQL


1. Seleccionar todos los clientes que estn registrados en el sistema.
ALGEBRA RELACIONAL:
clientes
SQL:
select * from clientes;
2. Mostrar solo las columnas Cli_Nombre, Cli_Domicilio, Cli_RFC y
Cli_Estado de la tabla clientes.
ALGEBRA RELACIONAL:
(Cli_Nombre, Cli_Domicilio, Cli_RFC y Cli_Estado) clientes
SQL:
select Cli_Nombre, Cli_Domicilio, Cli_RFC, Cli_Estado from clientes;

FRANCISCO JOSE RIVERA MUNDO


ES1611302153
INGENIERIA EN SOFTWARE

BASE DE DATOS
DOCENTE: ISRAEL FLORES BIRRICHAGA

3. Mostrar un usuario que tenga como valor igual a 1 en la columna Usu_ID


y que muestre solo la columna de Usu_NombreUsuario y
Usu_Contrasea.
ALGEBRA RELACIONAL:
Usu_NombreUsuario, Usu_Contrasea ( Usu_ID=1 (usuarios))
SQL:
select Usu_NombreUsuario,
Usu_ID=1
4. Seleccionar las
pacorivera2009.

Usu_Contrasea

transacciones

que

haya

from

usuarios

realizado

el

where

usuario

ALGEBRA RELACIONAL:
(Tra_ID, Tra_Total) transaccion u (usuarios=pacorivera2009) usuarios
SQL:
select transaccion.Tra_ID, transaccion.Tra_Total from transaccion inner join
usuarios
on
transaccion.Tra_Usuario=usuarios.Usu_ID
where
usuarios.Usu_NombreUsuario='pacorivera2009'
5. Visualizar las tarjetas bancarias (solo campos del nmero de la tarjeta
y el tipo de tarjeta) con el nombre del usuario respectivo.
ALGEBRA RELACIONAL:
(Tar_NumTarjeta, Tar_Tipo) tarjetas U (Usu_NombreUsuario) usuarios
SQL:
select
tarjetas.Tar_NumTarjeta,
usuarios.Usu_NombreUsuario from tarjetas
tarjetas.Tar_Usuario=usuarios.Usu_ID

inner

tarjetas.Tar_Tipo,
join usuarios on

6. Mostrar los usuarios que no tenga tarjeta de crdito/debido registrada.


ALGEBRA RELACIONAL:
(Usu_NombreUsuario) usuarios (Tar_NumTarjeta) tarjetas
SQL:
select Usu_NombreUsuario from usuarios minus select Tar_NumTarjeta from
tarjetas

FRANCISCO JOSE RIVERA MUNDO


ES1611302153
INGENIERIA EN SOFTWARE

BASE DE DATOS
DOCENTE: ISRAEL FLORES BIRRICHAGA

7. Mostrar los estados de la republica que inicien con M.


ALGEBRA RELACIONAL:
(Est_NombreEstado=%M) estados
SQL:
select Est_NombreEstado from estados where Est_NombreEstado like %M;
8. Seleccionar los municipios que son del estado de Guerrero.
ALGEBRA RELACIONAL
(Mun_NombreMunicipio) municipios U (Est_NombreEstado==Guerrero) estados
SQL:
select M.Mun_NombreMunicipio from Municipio M inner join Estados E on
M.Mun_Estado=E.Est_ID where E.NombreEstado=Guerrero
9. Seleccionar los clientes que no tengan un nmero de telfono
registrado.
ALGEBRA RELACIONAL:
(Cli_Telefono= ) clientes
SQL:
select * from clientes where Cli_Telefono=
10. Mostrar las transacciones hechas por el usuario fernandoGue.
ALGEBRA RELACIONAL
(Tra_ID, Tra_Total) transaccion U (Usu_NombreUsuario=fernandoGue) usuarios
SQL:
select T.Tra_ID, T.Tra_Total from transaccion T inner join usuarios U on
T.Tra_Usuario=U.Usu_ID where U.Usu_NombreUsuario=fernandoGue

Fuentes de informacin
Unidad 2. Anlisis, Universidad Abierta y a Distancia de Mxico, obtenido de:
https://unadmexico.blackboard.com/bbcswebdav/institution/DCEIT/2016_S1B2/DS/02/DBDD/U2/Unidad_2_Analisis.pdf

FRANCISCO JOSE RIVERA MUNDO


ES1611302153
INGENIERIA EN SOFTWARE

BASE DE DATOS
DOCENTE: ISRAEL FLORES BIRRICHAGA

Unidad 3. Diseo, Universidad Abierta y a Distancia de Mxico, obtenido de:


https://unadmexico.blackboard.com/bbcswebdav/institution/DCEIT/2016_S1B2/DS/02/DBDD/U3/Unidad_3_Diseno.pdf
Carlos A. Olarte. (--). Algebra Relacional. Diciembre 2016, de Departamento de
Electrnica
y
Ciencias
de
la
Computacin
Sitio
web:
http://cic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=materias:algebrarel.pdf

FRANCISCO JOSE RIVERA MUNDO


ES1611302153
INGENIERIA EN SOFTWARE

You might also like