bases de datos
-
Upload
brayan-seba -
Category
Education
-
view
29 -
download
5
Transcript of bases de datos
UNIVERSIDAD LAICA ELOY ALFAR DE MANABÍEXTENSIÓN EN EL CARMEN.
CARRERA DE INGENIERÍA EN SISTEMAS
PROYECTO FINAL, DE LA CREACION DE UNA BASE DE DATOS PARA LA EMPRESA “CLARO”
INTEGRANTES:
Zambrano Segovia Ruth Maribel
Cevallos Solórzano Bryan Sebastián
Romero Vera John Gregorio
TUTOR ACADÉMICO:
Ing. Sergio Mieles
PERIODO:
2015-2016
INDICE GENERAL
II
1. INTRODUCCIÓN...................................................................................................... III
2. OBJETIVOS............................................................................................................. IV
2.1 OBJETIVO GENERAL...................................................................................... IV
2.2 OBJETIVOS ESPECÍFICOS.............................................................................IV
3. MARCO TEÓRICO....................................................................................................V
3.1 Definición de bases de datos............................................................................V
3.2 Xampp................................................................................................................V
3.2.1 Aplicaciones integradas................................................................................V
3.3 Mysql.................................................................................................................VI
3.3.1 Tipos de Mysql.............................................................................................VI
3.3.2 Tipos numéricos..........................................................................................VI
3.3.3 TinyInt..........................................................................................................VI
3.3.4 Bit ó Bool.....................................................................................................VI
3.3.5 SmallInt........................................................................................................VI
3.3.6 MediumInt....................................................................................................VI
3.3.7 Integer o Int.................................................................................................VII
3.3.8 Float............................................................................................................VII
3.3.9 Tipos de fecha............................................................................................VII
3.3.10 Date Time................................................................................................VII
3.3.11 Time Stamp.............................................................................................VII
3.4 Tipo de cadena................................................................................................VII
3.4.1 Char............................................................................................................VII
3.4.2 VarChar......................................................................................................VII
3.5 Creación de bases de datos...........................................................................VIII
III
3.5.1 El diseño lógico de una base de datos......................................................VIII
3.5.2 El diseño físico de una base de datos.......................................................VIII
3.6 Sentencia de SQL...........................................................................................VIII
3.6.1 La sentencias de Creación de tabla en la base de datos..........................VIII
3.7 Definición de las sentencias Select, insert, delete, update...............................IX
3.7.1 La sentencia Select..................................................................................... IX
3.7.2 La sentencia insert.......................................................................................IX
3.7.3 La sentencia delete......................................................................................IX
3.7.4 La sentencia update.................................................................................... IX
3.8 Creación de vistas.............................................................................................IX
3.9 Creación de usuario...........................................................................................X
3.10 Creación de indices............................................................................................X
3.10.1 Tipos de índices........................................................................................X
3.10.2 Índice agrupado y no agrupado................................................................XI
3.10.3 Índice único..............................................................................................XI
4. DESARROLLO........................................................................................................XII
4.1 Creación de una Base de Datos para la empresa “CLARO”...........................XIII
4.1.1 Procesos o Actividades de la Empresa.....................................................XIII
4.2 Entidades y atributos.......................................................................................XIII
4.3 Relación de Tablas.........................................................................................XIV
..................................................................................................................................XIV
4.4 Diagrama de Relación....................................................................................XVI
4.5 Tabla de Entidad/Relación..............................................................................XVI
4.6 Creación de la bases de datos.....................................................................XVIII
IV
4.7 Insertando y guardando datos........................................................................XXI
4.8 Realizando Consultas de los datos guardados:...........................................XXIV
Para consultar donde viven:.................................................................................XXV
Para consultar que no vive en El Carmen where not (direccion_cli='El Carmen');
.............................................................................................................................XXV
Para saber el nombre del equipo que cueste menos de 100...............................XXV
Se requiere saber la marca y el precio de los equipos_celulares........................XXV
Utilizando el like y betwween:...............................................................................XXV
Utilizando el concat y el substr:............................................................................XXV
4.9 Crear Nuevo Usuario....................................................................................XXVI
4.9.1 Permisos o Privilegios a utilizar..............................................................XXVI
4.10 Tablas de Asignación de Privilegios para dos tipos de Usuarios.................XXVI
4.10.1 Primero Usuario:................................................................................XXVIII
4.10.2 Segundo Usuario...............................................................................XXVIII
4.10.3 Asignar privilegio al usuario de la base de datos Claro:....................XXVIII
4.10.4 Asignar privilegios a las tablas de la base de datos Claro:................XXVIII
4.10.5 Asignar privilegios a las columnas de la base de datos Claro:............XXIX
4.11 Comandos;...................................................................................................XXIX
4.12 Para Quitar Privilegios...................................................................................XXX
4.12.1 Para Tablas:.........................................................................................XXX
4.12.2 Para columnas:.....................................................................................XXX
4.12.3 Disparadores o Trigger.........................................................................XXX
4.12.4 Tiempo:.................................................................................................XXX
4.13 Crear Trigger.................................................................................................XXX
V
nombre_trigger.........................................................................................................XXX
4.14 Vistas:..........................................................................................................XXXI
5. CONCLUSIÓN....................................................................................................XXXII
BIBLIOGRAFÍA.........................................................................................................XXXIII
1. INTRODUCCIÓN
Según (MONTALBAN, 2014) En los 90 fue la década en donde surgió el denominado y
conocido como MYSQL, creado por la empresa Sueca AB, según los antecedentes se
dice que la palabra MYSQL aún no se tiene bien claro de qué origen proviene, puesto
que unos investigadores dicen que las librerías han llevado el prefijo “MY” otros en
cambio dicen que se debe a que una de las hijas de los creadores de MYSQL se
llamaba “MY” por ende no está claramente definido ¿cuál es su origen?
Michael Windenis fue uno de los primero en utilizar MYSQL para conectar tablas
aplicando sus propias rutinas de bajo nivel (ISAM). Después de las primeras pruebas
realizadas concluyo que MYSQL no era lo suficiente flexible ni rápido como el
necesitaba. Por la necesidad de esto decidió elaborar nuevas funciones el cual daba
como resultado una interfaz de SQL totalmente compatible para su base de dato.
MYSQL lo podríamos definir como un software de código abierto que gestiona la base
de datos relacional que deseas crear, este contiene el copyright del código fuente del
servidor SQL, como también el lenguaje de programación que utiliza es Structured
Query Language (SQL) el cual fue desarrollado por la empresa IBM en el año de 1981.
Por medio de MYSQL y su servidor SQL se puede elaborar bases de datos de una
manera fácil y sin complicaciones, puesto que puede soportar gran cantidad de datos,
contando con la mayor velocidad y robustez, pero para esto se requiere aplicar
adecuadamente todos los comandos. Lo mejor de MYSQL es que se pueden insertar
nuevos usuarios, tablas y campos (datos), a una base de datos ya creada, actualizarla y
por ultimo seleccionarlos y eliminarlos.
2. OBJETIVOS
2.1 OBJETIVO GENERAL
Crear una base de datos para una empresa en MYSQL aplicando todos los
métodos aprendidos durante el periodo lectivo 2015-2016 con finalidad de
fortalecer el aprendizaje académico de la materia.
2.2 OBJETIVOS ESPECÍFICOS
Obtener la mayor cantidad de información de las diferentes actividades que
realiza la empresa mediante una encuesta para poder proceder a dar inicio al
análisis y creación de la base de datos.
Garantizar un trabajo eficiente y de seguridad a la empresa cumpliendo con
todos los requisitos que necesita la empresa logrando así la satisfacción de la
misma.
3. MARCO TEÓRICO
3.1 Definición de bases de datos(IBAÑEZ, 2012), La base de datos es una colección de información organizada de forma que un programa de ordenador pueda seleccionar rápidamente los fragmentos de datos que se necesite, en una base de datos es también un sistema de archivos electrónico.Las bases de datos tradicionales se organizan por campos, registros, archivos, columna y fila. Un campo de base de datos es un espacio de almacenamiento para un dato particular, un registro de una base de datos es un conjunto de campos que contienen los datos que le pertenecen a una misma entidad, un archivo es una colección de registros por ejemplo, una guía de teléfono es análoga a un archivo, una columna es la que representa un tipo único de información y una fila es un conjunto de información, y en la bases de datos tenemos los siguientes comandos que son el Xampp y el Mysql
3.2 XamppEl Xampp es un servidor independiente de plataforma, software libre, que consiste principalmente en la base de datos Mysql que integra en una sola aplicación, el servidor web Apache, y los intérpretes para lenguajes de script como PHP y Perl el programa esta liberado bajo la licencia GNU y esto actúa como un servidor Web libre, fácil de usar y capaz de interpretar paginas dinámicas
3.2.1 Aplicaciones integradas
El Xampp tiene los siguientes
Mysql PHP + PEAR Perl Mod_php Mod_perl Mod_ssl OpenSSL phpMyAdmin Webalizer Mercury Mai Ming, Apache etc
3.3 Mysql
El Mysql es un sistema de gestor de bases de datos, es decir relacionado, multihilo,
multiusuario y el usuario necesita administrar, para poder agregar, acceder o procesar
esta información guardado en el ordenador y esta es la función que se realiza en el
Mysql. El servidor Mysql fue desarrollado originalmente para manejar grandes bases de
datos mucho más rápido que las soluciones existentes y esto ha estado siendo usado
exitosamente, aunque se encuentra en desarrollo constante, el Mysql un servidor
bastantemente funcional y su conectividad. Velocidad y seguridad hacen de Mysql un
servidor apropiado para acceder a bases de datos.
3.3.1 Tipos de Mysql
Los tipos de datos que puede haber en un campo, se pueden agrupar en tres grandes y
diferentes grupos
3.3.2 Tipos numéricos
En los tipos de datos existen tipos de datos numéricos que se pueden dividir en dos
hermosa grandes grupos, la que son flotante es decir que lleva coma (decimales) y hay
la q no y ellos son:
3.3.3 TinyInt
Es un número entero con o sin signo.
3.3.4 Bit ó Bool
Es un número entero que puede ser ó 1.
3.3.5 SmallInt
Es un número entero con o sin signo.
3.3.6 MediumInt
Es un número entero con o sin signo
3.3.7 Integer o Int
Es un número entero con o sin signo
3.3.8 Float
Es número pequeño en coma flotante de precisión doble
3.3.9 Tipos de fecha
A la hora de ingresar o almacenar fechas, hay q tener en cuenta que Mysql no
comprueba de una manera estricta si una fecha es válida o no y que son:
3.3.10 Date Time
Es la combinación de fecha y hora
3.3.11 Time Stamp
Es la combinación de fecha y hora
3.4 Tipo de cadena
Ahora en el tipo de cadena tenemos los siguientes:
3.4.1 Char
Este almacena una cadena de longitud fija, y la cadena podrá contener desde 0 a 225
caracteres
3.4.2 VarChar
Este almacena una cadena de longitud fija, y la cadena podrá contener desde 0 a 225
caracteres
3.5 Creación de bases de datos
La creación de una base es una recopilación de información relacionado con un tema o
un propósito en particular y su sintaxis es; Create database nombre_database; para
seleccionar a esa base de datos se utiliza el use por ejemplo; use colegio. Para crear
una base se deben realizar dos ejercicios de diseño que son: el diseño lógico y el físico.
3.5.1 El diseño lógico de una base de datos
Es un modelo abstracto de la base de datos desde una perspectiva de negocios, y
mientras que el diseño físico muestra como la base de datos se ordenan en realidad en
los dispositivos de almacenamiento de acceso directo.
3.5.2 El diseño físico de una base de datos
El diseño físico de la base de datos es llevado a cabo por los especialista en bases de
datos, y mientras que el diseño lógico requiere de una descripción detallada de las
necesidades de información del negocio de los negocios actuales usuarios finales de la
base de datos.
3.6 Sentencia de SQL
En la sentencia de SQL o Lenguaje de Consulta Estructurado tiene bastante sentencias
que se pueden utilizarse para diversas tareas y las sentencias son: Create table, Drop
table, Alter table, Create View, Drop View, Select, insert, delete, update, etc.
3.6.1 La sentencias de Creación de tabla en la base de datos
Una tabla es una herramienta organización de información que se utiliza en la base de
datos, Para crear una tabla puede utilizarse este comando Create table, por ejemplo
create table nombre_table y las tablas se componen en columna y fila
3.7 Definición de las sentencias Select, insert, delete, update
3.7.1 La sentencia Select
La sentencia Select esta selecciona los campos que conformaran en la consulta de la
una tabla de base de datos
3.7.2 La sentencia insert
La sentencia Insert permite crear o insertar nuevos registros en la tabla una tabla de
base de datos
3.7.3 La sentencia delete
La sentencia Delete permite elimina el registro de una tabla de base de datos
3.7.4 La sentencia update
La sentencia Update permite actualizar un registro de una tabla.
3.8 Creación de vistas
Una vista es una consulta accesible como una tabla virtual en una base de datos
relacional o también un conjunto de documentos en una base de datos orientada a
documentos, y su sintaxis es create view.
Ejemplo:
Create view nombre_view as
Select
From
Where ( );
3.9 Creación de usuario Existe lposibilidad de crear usuarios sin necesidad de asignarles privilegios, utilizando la sentencia create user por ejemplo :Create user nombre_usuario@’localhost’ Identified by ‘pass_nombre_usuario;
3.10Creación de indices
Un índice es una estructura de datos definida sobre una columna de tabla (o varias) y
que permite localizar de forma rápida las filas de la tabla en base a su contenido en la
columna indexada además de permitir recuperar las filas de la tabla ordenadas por esa
misma columna. Funciona de forma parecida al índice de un libro donde tenemos el
título del capítulo y la página donde empieza dicho capítulo, en un índice definido sobre
una determinada columna tenemos el contenido de la columna y la posición de la fila
que contiene dicho valor dentro de la tabla.
La definición de los índices de la base de datos es tarea del administrador de la base de
datos, los administradores más experimentados pueden diseñar un buen conjunto de
índices, pero esta tarea es muy compleja, consume mucho tiempo y está sujeta a
errores, incluso con cargas de trabajo y bases de datos con un grado de complejidad no
excesivo.
3.10.1 Tipos de índices
3.10.1.1 Índice simple y compuesto
Un índice simple está definido sobre una sóla columna de la tabla mientras que un
índice compuesto está formado por varias columnas de la misma tabla (tabla sobre la
cual está definido el índice. Cuando se define un índice sobre una columna, los
registros que se recuperen utilizando el índice aparecerán ordenados por el campo
indexado. Si se define un índice compuesto por las columnas col1 y col2, las filas que
se recuperen utilizando dicho índice aparecerán ordenadas por los valores de col1 y
todas las filas que tengan el mismo valor de col1 se ordenarán a su vez por los valores
contenidos en col2, función igual que la cláusula ORDER BY vista en el tema de
consultas simples.
Por ejemplo si definimos un índice compuesto basado en las columnas (provincia,
localidad), las filas que se recuperen utilizando este índice aparecerán ordenadas por
provincia y dentro de la misma provincia por localidad.
3.10.2 Índice agrupado y no agrupado
El término índice agrupado no se debe confundir con índice compuesto, el significado
es totalmente diferente. Un índice agrupado (CLUSTERED) es un índice en el que el
orden lógico de los valores de clave determina el orden físico de las filas
correspondientes de la tabla. El nivel inferior, u hoja, de un índice agrupado contiene las
filas de datos en sí de la tabla. Una tabla o vista permite un solo índice agrupado al
mismo tiempo.
Los índices no agrupados existentes en las tablas se vuelven a generar al crear un
índice agrupado, por lo que es conveniente crear el índice agrupado antes de crear los
índices no agrupados. Un índice no agrupado especifica la ordenación lógica de la
tabla. Con un índice no agrupado, el orden físico de las filas de datos es independiente
del orden indizado.
3.10.3 Índice único
Índice único es aquel en el que no se permite que dos filas tengan el mismo valor en la
columna de clave del índice, es decir que no permite valores duplicados. Los índices en
vistas pueden mejorar de forma significativa el rendimiento si la vista contiene
agregaciones, combinaciones de tabla o una mezcla de agregaciones y combinaciones.
Con el índice correcto en su lugar, el sistema de base de datos puede entonces primero dirigirse al índice para encontrar de dónde obtener los datos, y luego dirigirse a dichas ubicaciones para obtener los datos necesarios. Esto es mucho más rápido. Por lo tanto, generalmente se recomienda crear índices en tablas. Un índice puede cubrir una o más columnas. La sintaxis general para la creación de un índice es:CREATE INDEX "NOMBRE_ÍNDICE" ON "NOMBRE_TABLA" (NOMBRE_COLUMNA);Digamos que tenemos la siguiente tabla:Tabla Customer
Nombre de Columna Tip de Datos
First_Name char(50)Last_Name char(50)Address char(50)City char(50)Country char(25)Birth_Date datetime
Si deseamos crear un índice tanto en Ciudad como en País, ingresaríamos,CREATE INDEX IDX_CUSTOMER_LAST_NAMEON Customer (Last_Name);Pour créer un index dans City et Country, il faut saisirCREATE INDEX IDX_CUSTOMER_LOCATIONON Customer (City, Country);
4. DESARROLLO
Para la creación de una base de datos se procede a buscar una empresa pública o
privada que pueda facilitar información de todas las actividades que realizan
internamente, luego analizamos dicha información obtenida, describiendo cada una de
las actividades que realiza, como las realiza, y los requisitos para realizar dicha
actividad o proceso, seguido de esto se procede al diseño y creación de la base de
datos.
Ejemplo:
4.1 Creación de una Base de Datos para la empresa “CLARO”
4.1.1 Procesos o Actividades de la Empresa
Verificación de deudas Restauración de chips
Registros de equipos Registrar cliente
En la empresa claro se requiere de la creación de una base de datos en la cual se
puedan registrar los clientes y proveedores con su código, nombre, apellido, ciudad,
número de teléfono, dirección y número de cédula en donde un cliente podrá tener un
proveedor y un proveedor podrá tener varios clientes y, el cliente podrá solicitar una
verificación de deudas con su número telefónico, numero de cedula o el nombre y
proceder a la cancelación de la misma, un cliente podrá tener varias deudas y una
deuda podrá ser de un solo cliente Así mismo requiere registrar la venta de los equipos
celulares con sus respectivos códigos, marcas, modelo, costo con el fin de que un
cliente puedes tener varios equipos celulares y un equipo celular puede tener un solo
cliente. Como también se requiere saber cuántos planes puede tener cada cliente por
tanto un cliente solo puede tener un plan y un plan puede tener un cliente.
Para las restauraciones de chips en caso de que se le haya perdido o por robo el
cliente podrá reportarlo acercándose a servicios de clientes claro presentando, número
del chip, o cedula de identidad del cliente para proceder a restaurar el chip. Un cliente
podrá restaurar un chip y un chip podrá ser restaurado por un cliente.
4.2 Entidades y atributos CLIENTES: (COD_CLI, NOMBRE, APELLIDO, DIRECCION, NRO_TLF, C.I) PROVEEDOR: (COD_PROV, NOMBRE, APELLIDO, DIRECCION, NRO_TLF,
C.I) PLAN: (COD_PLAN, PAQUETES, MN_GRATIS, MEGAS, TARIFAS) DEUDAS: (COD_DEU, TIPO_DEU, TOTAL_DEU, TOTAL, TARIFA, FECHA_INI,
FECHA_FIN) CHIP: (COD_CHIP, PIN, PUNK, NUMERO) EQUIPOS: (COD_EQUI, MARCA, MODELO, PRECIO)
4.3 Relación de Tablas
Clientes Proveedor1 1
n 1n-1
Un cliente solo puede tener un solo proveedor, y un proveedor puede tener varios
Un cliente puede adquirir varios planes, y un plan puede pertenecer a un solo cliente
Un cliente puede tener muchas deudas, y una deuda puede pertenecer a un cliente
Un cliente puede tener varios chips, y un chip puede tener un solo cliente
Clientes Plan
Clientes Deudas
Clientes Chip
1 n
1 1
1 n
1 1
1 n
1 1
1-n
1-n
1-n
Clientes Equipos 1 n
1 11-n
Un cliente puede tener varios equipos, y un equipo puede tener un cliente
Un proveedor puede distribuir varios equipos, y un equipo puede ser distribuido un solo
proveedor.
Un plan puede pertenecer a un solo chip, y un chip puede tener un solo plan
Un chip puede tener un solo equipo, y un equipo puede tener varios chips.
Proveedor Equipo
Plan Chips
Chips Equipo
1 n
1 1
1 1
1 1
1 1
n 1
1-n
1-1
n-1
4.4 Diagrama de Relación.
4.5 Tabla de Entidad/RelaciónCLIENTES
COD_CLI NOMBRE APELLIDO DIRECCION NRO_TLF C.I FK_COD_DEU
PROVEEDOR
COD_PROV NOMBRE APELLIDO DIRECCION NRO_TLF C.I
PLAN
COD_PLAN PAQUETES MN_GRATIS MEGAS TARIFAS
DEUDAS
COD_DEU NOMBRE_DEU TOTAL_DEU FECHAINI_DEU FK_COD_CLI
DETALLE_DEUDA
COD_DD CANTIDAD_DD PRECIUNI_DD SUBTOTAL_DD FK_COD_DD FK_COD_CLI
CHIP
COD_CHIP PIN PUNK NUMERO
EQUIPOS
COD_EQUI MARCA MODELO PRECIO
4.6 Creación de la bases de datoscreate database claro;use claro;create table clientes(
cod_cli int primary key auto_increment,nombre_cli varchar (30) not null,apellido_cli varchar (35) not null,direccion_cli varchar (10) not null,nro_Tlf_cli varchar (30) not null,cedula_cli varchar (30) not null
);create table proveedor(
cod_prov int primary key auto_increment,nombre_prov varchar (30) not null,apellido_prov varchar (35) not null,direccion_prov varchar (10) not null,nro_tlf_prov varchar (30) not null,cedula_prov varchar (30) not null,operadora_prov varchar (20) not null
);create table chip(
cod_chip int primary key auto_increment,pin_chip varchar (10) not null,punk_chip varchar (10) not null,numero_chip varchar (10) not null
);create table plan(
cod_plan int primary key auto_increment,paquetes_plan varchar (25) not null,
mn_gratis_plan varchar (20) not null,megas_plan varchar (10) not null,tarifa_plan float not null
);create table deudas(
cod_deu int primary key auto_increment,nombre_deu varchar (30) not null,total_deu float not null,k_cod_deu int references deudas(cod_deu),fk_cod_dd int references detalle_deuda(cod_dd)
);create table detalle_deuda(
cod_dd int primary key auto_increment,cantidad_dd int not null,preciouni_dd float not null,Sudtotal_dd float not null,fk_cod_dd int references deudas(cod_deu),fk_cod_cli int references clientes(cod_cli)
);create table equipos(
cod_equi int primary key auto_increment,marca_equi varchar (30) not null,modelo_equi varchar (10) not null,precio_equi float not null
);
4.7 Insertando y guardando datos
CLIENTES: (COD_CLI, NOMBRE, APELLIDO, CIUDAD, NRO_TLF, C.I)
insert into clientes values(null, 'Julia','Alvarado','0962534685', '1354789404');insert into clientes values(null, 'Diana ','Alcívar','Cuenca','0956213652','1465675892');insert into clientes values(null, 'María','Vega','Guayaquil','0956989856', '1748953217');insert into clientes values(null, 'Marilyn','Barreiro','Ambato','0932565465','2346721453');
insert into clientes values(null, 'Marcos','Mendoza','Loja','0968764674','1658598432');insert into clientes values(null, 'Juan','Ponce','Quito','0935455489','1575845456');insert into clientes values(null, 'Jesus','Cedeño','Riobamba','0964646455','2264647465');insert into clientes values(null, 'Karen','Valverde','Milagros','0934556866','1313674897');insert into clientes values(null, 'Ingrid','Rodriguez','Guayas','0965456484','1534644774');insert into clientes values(null,'Daniela’,'Benavides','Manta','0955554325','1264746548');insert into clientes values(null,'Maribel','Loor','Portoviejo','0923546488','1564789641');
PROVEEDOR: (COD_PROV, NOMBRE, APELLIDO, CIUDAD, NRO_TLF, C.I, OPERADORA)
insert into proveedor values(null, 'Maira','Barreto','Bahia','0946758385', '1385432454','claro');insert into proveedor values(null,'Kassandra','Loor','Loja','0953243652','1465864392','claro');insert into proveedor values(null,'Monica','Vera','Quito','0965489856','1748653217','claro');insert into proveedor values(null,'Elizabet','Rivas','Riobamba','0936574465','2387961453','claro');insert into proveedor values(null,'Jose','Navarrete','Pichincha','0967654674','1657458432','claro');insert into proveedor values(null,'Rosa','Mendoza','Quito','0945098759','1575845456','claro');insert into proveedor values(null, 'Martha','Cedeño','Loja','0964669155','275849385','claro');insert into proveedor values(null, 'Juan','Murrillo','Manta','0934556866','1313674897','claro');insert into proveedor values(null, 'Ingrid','Rodriguez','Guayas','0965456484','1539876998','claro');insert into proveedor values(null, 'Daniel','Alvarez','Manta','0955554325','1264746548','claro');
PLAN: (COD_PLAN, PAQUETES, MN_GRATIS, MEGAS, TARIFAS)
insert into plan values(null,'sms ilimitados','60', '120 MG','22.00');insert into plan values(null, 'MG ilimitados','24','100 MG','18.50');insert into plan values(null, 'whatsapp ilimitado','120','150 MG','24.00');insert into plan values(null, 'MG ilimitados','120','100 MG','19.00');insert into plan values(null, 'MB ilimitados','120','150 MG','20.00');insert into plan values(null, 'sms ilimitado','90','100 MG','17.50');insert into plan values(null, 'whatsapp ilimitado','60','50 MG','15.30');insert into plan values(null,'MG ilimtados','120','1000','39.50');
insert into plan values(null, 'MG ilimitados ','120','100 MG','16.00');insert into plan values(null, 'MG ilimitados','60','50 MG','13.40');
DEUDAS: (COD_DEU, TIPO_DEU, TOTAL_DEU, TARIFA, TOTAL, FECHA_DEU, FK_COD_DEU, FK_COD_DD)
insert into deudas values(null, 'internet','16.00',1,1);insert into deudas values(null, 'equipo_celular','30.00',2,2);insert into deudas values(null, 'internet','10.75',3,3);insert into deudas values(null, 'antena','18.00',3,3);insert into deudas values(null, 'plan','24.60',4,4);insert into deudas values(null, 'antena','10.00',5,5);insert into deudas values(null, 'internet','22.00',6,6);insert into deudas values(null, 'equipo','7.35',7,7);insert into deudas values(null, 'internet','11.00',8,8);insert into deudas values(null, 'equipo’,'14.00',9,9);insert into deudas values(null, 'antena’,'24.00',10,10)
CHIP: (COD_CHIP, PIN, PUNK, NUMERO)
insert into chip values(null, '1234','1111','0984745757');insert into chip values(null, '1212','1234','0978654356');insert into chip values(null, '12345','2222','0986754632');insert into chip values(null, '1111','10121','0987543644');insert into chip values(null, '2345','12111','0985673436');insert into chip values(null, '2222','10111','0975632145');insert into chip values(null, '21122','11011','0985321678');insert into chip values(null, '12345','12101','0975434891');insert into chip values(null, '1211','1101','0981246329');insert into chip values(null, '4321','10121','0954213765');
EQUIPOS: (COD_EQUI, MARCA, MODELO, PRECIO)
insert into equipos values(null, 'nokia','mod 503','200.00');insert into equipos values(null, 'nokia','nod 503 dual sim','300.00');insert into equipos values(null, 'nokia','mod xperia e','350.75');insert into equipos values(null, 'motorola','g-tx1032','180.00');insert into equipos values(null, 'samsung', 'ace3 samsung','450.00');insert into equipos values(null, 'nokia','mod spice f100','410.99');insert into equipos values(null, 'samsung','doppio 2200','40.00');insert into equipos values(null, 'sony','mod bmobele K340','35.00');insert into equipos values(null, 'samsung','galaxi s4','490.00');insert into equipos values(null, 'samsung','galaxi s5','700.00');
DETALLE_DEUDA: (COD_DD, CANTIDAD_DD, PRECIOUNI_DD SUBTOTAL_DD, FK_COD_DEU, FK_COD_CLI)
insert into detalle_deuda values(null, '1','10.00','10.00',1,1);insert into detalle_deuda values(null, '1','189.00','189.00',2,2);insert into detalle_deuda values(null, '1','200.57','200.57',3,3);insert into detalle_deuda values(null, '1','22.98','22.98',4,4);insert into detalle_deuda values(null, '1','8.50','8.50',5,5);insert into detalle_deuda values(null, '1','81.75','81.75',6,6);insert into detalle_deuda values(null, '2','69.99','130.80',7,7);insert into detalle_deuda values(null, '2','78.68','157.36',8,8);insert into detalle_deuda values(null, '2','89.99','170.80',9,9);insert into detalle_deuda values(null, '1','99.99','99.99',10,10);
4.8 Realizando Consultas de los datos guardados:Para filtrar los registros de la base de datos utilizamos el where como un código principal.
Ejemplo1:
Seleccionar la cedula, el nombre y el apellido de los clientes que tangan el nombre igual a Maria.select cedula_cli, nombre_cli, apellido_cli from clientes where nombre_cli='Maria';
Ejemplo2:
Para consultar donde viven:
select nombre_cli,apellido_cli,direccion_cli from clientes where direccion_cli='El Carmen';
Ejemplo3:
Para consultar que no vive en El Carmen where not (direccion_cli='El Carmen');
select nombre_cli,apellido_cli,direccion_cli from clientes where not (direccion_cli='El Carmen');
Ejemplo4:
Para saber el nombre del equipo que cueste menos de 100.
select marca__equi, modelo_equi, precjo_equi from equipos where precio_equi>100;
Ejemplo5:
Se requiere saber la marca y el precio de los equipos_celulares.
select marca_equi, precio_equi from equipos where marca_equi='nokia' andprecio_equi>100;
Ejemplo6:
Utilizando el like y betwween:
Mostrar la marca y los precios de aquellos equipos que empiecen con la letra ‘n’ y quecontenga un precio entre 50 y 100 dólares.select marca_equi precio_equi from equipos where marca_equi like 'n%' andprecio_equi between 50 and 100;
Utilizando el concat y el substr:
seleccionar el nombre y el apellido en una sola celda, la ciudad de los clientes quevivan en una ciudad que el nombre empiece con 'l' y que su número telefónico termineen ‘44’, sin que se repita los clientes.select distinct concat(nombre_cli,' ', apellido_cli) as "Nombre y Apellido de los Clientes",ciudad_cli from clientes where ciudad_cli like '%44';
El Limit: Me permite sacar un numero especifico de los registros ingresado.
select marca_equi from equipos where marca_equi like '%nokia%' order by marca_equi limit 3;
4.9 Crear Nuevo Usuario.
Se puede utilizar el CREATE USER seguido el nombre del usuario, arroba y la
ubicación local que es ’localhost’ entre apostrofe luego de esto utilizamos el
IDENTIFIED BY para asignarle una contraseña la cual ira entre apostrofe:
4.9.1 Permisos o Privilegios a utilizar
selectupdate
insertdelete
Ejemplo:
4.10Tablas de Asignación de Privilegios para dos tipos de Usuarios
TABLA DE ASIGNACION DE PRIVILEGIOS
Tipo usuario: Secretaria
Base de Datos: Claro
Tabla/Accion select Insert Delete Update
Clientes Si Si Si Si
Proveedores Si Si No Si
Plan Si Si Si Si
Chip Si Si Si Si
Deudas Si Si Si Si
Detalle_deuda Si Si No Si
Equipos Si Si No Si
Tipo usuario: Secretaria
Base de Datos: Claro
Tabla/Accion select Insert Delete Update
Clientes Si Si Si Si
Proveedores Si Si Si Si
Plan Si Si Si Si
Chip Si Si Si Si
Deudas Si Si Si Si
Detalle_deuda Si Si Si Si
Equipos Si Si Si Si
4.10.1 Primero Usuario:
create user secretaria@'localhost' identified by 'marly';
4.10.2 Segundo Usuario
create user supervisor@'localhost' identified by '1234';
4.10.3 Asignar privilegio al usuario de la base de datos Claro:
Para asignar los privilegios utilizamos el GRANT y los privilegios que deseas o debes
asignar como el SELECT, INSERT, UPDATE y el DELETE seguido de un ON más el
nombre de la base de datos punto asterisco y por último el código TO más el nombre
del usuario y su localidad.
Ejemplo:
grant select, update, insert, delete on claro.* to secretaria @'localhost';
4.10.4 Asignar privilegios a las tablas de la base de datos Claro:
Utilizamos el GRANT y los privilegios que deseas o debes asignar como el SELECT,
INSERT, UPDATE y el DELETE seguido de un ON más el nombre de la base de datos
punto el nombre de la tabla y por último el código TO más el nombre del usuario y su
localidad.
Ejemplos:
grant select, update, insert on claro.clientes to secretaria @'localhost';grant select, update, insert, delete on claro.deudas to secretaria @'localhost';grant select, update, insert, delete on claro.proveedor to secretaria @'localhost';grant select, update, insert on claro.detalle_deuda to secretaria @'localhost';grant select, update, insert, delete on claro.plan to secretaria @'localhost';grant select, update, insert, delete on claro.equipos to secretaria @'localhost';
4.10.5 Asignar privilegios a las columnas de la base de datos Claro:
Utilizamos el GRANT y los privilegios que deseas o debes asignar como el SELECT, INSERT, UPDATE y el DELETE entre paréntesis los nombres de las columnas que le vas asignar los privilegios, seguido de un ON más el nombre de la base de datos punto el nombre de la tabla y por último el código TO más el nombre del usuario y su localidad.
Nota: En las columnas no se puede borrar con delete sino con el codigo drop y se puedee dar privilegios a todo en una sola línea
Ejemplo:
grant select(cod_cli, nombre_cli, apellido_cli), inssert(apellido_cli, ciudad_cli, nro_tlf_cli),update(nro_tlf_cli, cedula_cli) on claro.clientes to marlen@'localhost';
O Así:
grant select(cod_cli) on claro.clientes to marlen@'localhost';grant select(nombre_cli) on claro.clientes to marlen@'localhost';grant select, insert(apellido_cli) on claro.clientes to marlen@'localhost';grant insert(ciudad) on claro.clientes to marlen@'localhost';
grant insert, update(nro_tlf_cli) on claro.clientes to marlen@'localhost';grant update(cedula_cli) on claro.clientes to marlen@'localhost';
4.11Comandos;Para poder saber dónde están guardados los usuarios creados debemos ingresar a labase de datos mysql
Ejemplo:
Primero show databse;Luego:use mysql;show tables;select user from user;-------->> para ver los usuarios creadosshow grants for invitado@'localhost'; ----->>para ver los privilegios que fueron asignados
4.12Para Quitar PrivilegiosUtilizamos el comando revoke:
Ejemplo:
4.12.1 Para Tablas:
revoke select, update on biblioteca.usuarios from usuario@'localhost';
4.12.2 Para columnas:
revoke update(nombre_usu) on biblioteca.usuarios from usuariio@'localhost';
4.12.3 Disparadores o Trigger
Sintaxis;
4.12.4 Tiempo:
after: Significa despuesset: coloqueAcción: insert, delete update y select.
4.13Vistas:No es nada mas ni nada menos que una Tabla Temporal
Ejemplo:
create view Control as select nombre_cli as 'Nombre del Cliente', apellido_cli as'Apellido del Cliente', nombre_deu as 'Nombre de la Deuda', cantidad_dd as 'Cantidadde Deudas', Total_deu as 'Total de Deuda', direccion_cli as 'Dirección del Cliente',nro_tlf_cli as 'Número de Teléfono del Cliente' from clientes, deudas, detalle_deudawhere cod_deu=fk_cod_deu and cod_dd=fk_cod_dd;
5. CONCLUSIÓN
Tiene como objetivo, hacer que el estudiante aprenda de manera fácil y sencilla aplicando teórica
y prácticamente todos los conocimientos adquiridos de la materia, mediante la creación de la base
de datos, en si este es un método didáctico sumamente importante para el estudiantado puesto que
así podrá lograr obtener los conocimientos necesarios para el buen manejo de la base de datos
fortaleciendo aún más su aprendizaje.
BIBLIOGRAFÍA
CUESTA, A., & HIDALGO, J. I. ( 2009). PROBLEMAS DE FUNDAMENTOS Y
ESTRUCTURA DE COMPUTADORAS. PRENTICE-HALL.
IBAÑEZ, L. H. (2012). BASES DE DATOS (CFGS. CICLOS INFORMATIVOS DE
GRADO SUPERIOR). RA-MA.
MONTALBAN, I. L. (2014). BASES DE DATOS. GARCETA GRUPO EDITORIAL.
6. Anexos