Diseño de una Base de Datos para una tienda de autoservicio

Anuncio
Diseño de una Base de Datos para una tienda de autoservicio.
Definiciones
Base de datos: Una base de datos (cuya abreviatura es BD) es una entidad en la
cual se pueden almacenar datos de manera estructurada, con la menor redundancia
posible. Diferentes programas y diferentes usuarios deben poder utilizar estos
datos. Por lo tanto, el concepto de base de datos generalmente está relacionado
con el de red ya que se debe poder compartir esta información. De allí el término
base. "Sistema de información" es el término general utilizado para la estructura
global que incluye todos los mecanismos para compartir datos que se han instalado.
Base de datos relacional: Se refiere a aquella base de datos que cumple con el
modelo relacional, el cual es el modelo más utilizado en la actualidad para
implementar bases de datos ya planificadas y permiten establecer interconexiones
(relaciones) entre los datos (que están guardados en tablas), y a través de dichas
conexiones relacionar los datos de diferentes tablas, de ahí proviene su nombre
(modelo relacional).
Base de datos integridad referencial: es un sistema de reglas para garantizar que
las relaciones entre los registros de tablas relacionadas son válidas y que no se
eliminan ni modifican accidentalmente datos relacionados. Puede establecer la
integridad referencial cuando se cumplen todas las condiciones siguientes:

El campo coincidente de la tabla principal es una clave principal o tiene un
índice único.

Los campos relacionados tienen el mismo tipo y tamaño de datos. Hay dos
excepciones. Un campo Autonumérico puede estar relacionado con un
campo Numérico con la propiedad TamañoDelCampo (FieldSize) establecida
en
Entero
Largo,
y
un
campo
Autonumérico
con
la
propiedad
TamañoDelCampo (FieldSize) establecida en Id. de réplica puede estar
relacionado con un campo Numérico con la propiedad TamañoDelCampo
(FieldSize) establecida en Id. de réplica.

Ambas tablas pertenecen a la misma base de datos de Microsoft Access. Si
las tablas son tablas vinculadas, deben ser tablas en el formato de Microsoft
Access y debe abrir la base de datos en la que están almacenadas para
Gómez Soto Francisco Daniel
Diseño Asistido por computadora
Diseño de una Base de Datos para una tienda de autoservicio.
poder establecer la integridad referencial. La integridad referencial no puede
exigirse para tablas vinculadas procedentes de bases de datos en otros
formatos.
Tabla: se refiere al tipo de modelado de datos, donde se guardan los datos
recogidos por un programa. Su estructura general se asemeja a la vista general de
un programa de Hoja de cálculo.
Las tablas se componen de dos estructuras:
Campo: Corresponde al nombre de la columna. Debe ser único y además de tener
un tipo de dato asociado.
Registro: Corresponde a cada fila que compone la tabla. Allí se componen los datos
y los registros. Eventualmente pueden ser nulos en su almacenamiento.
En la definición de cada campo, debe existir un nombre único, con su tipo de dato
correspondiente. Esto es útil a la hora de manejar varios campos en la tabla, ya que
cada nombre de campo debe ser distinto entre sí.
A los campos se les puede asignar, además, propiedades especiales que afectan a
los registros insertados. El campo puede ser definido como índice o
autoincrementable, lo cual permite que los datos de ese campo cambien solos o
sean el principal indicar a la hora de ordenar los datos contenidos.
Cada tabla creada debe tener un nombre único en la cada Base de Datos,
haciéndola accesible mediante su nombre o su seudónimo (Alias) (dependiendo del
tipo de base de datos elegida).
Campo: es el nombre de la unidad de información. Cada entrada en una base de
datos puede tener múltiples campos de diversos tipos. Por ejemplo, un campo de
texto llamado 'color favorito', que permite escribirlo, o un menú llamado 'población'
que permita escoger de un listado de poblaciones posibles. La combinación de
campos diversos nos permitirá recabar toda la información que consideremos
relevante sobre los ítems que constituyen la base de datos.
Gómez Soto Francisco Daniel
Diseño Asistido por computadora
Diseño de una Base de Datos para una tienda de autoservicio.
Dato: Cada tabla se compone de campos y registros. A pesar de que a primera vista
casi la podríamos confundir, existen unas diferencias fundamentales: cada columna
en una tabla es un campo y cada fila de una tabla representa un único registro que
reúne la información de un elemento de la tabla. Cada campo sólo puede tener un
tipo de datos: o sólo texto, o sólo números, etc.
Tipos de datos: Cada Sistema de Base de Datos posee tipos de campos que
pueden ser similares o diferentes. Entre los más comunes podemos nombrar:

Numérico: entre los diferentes tipos de campos numéricos podemos
encontrar enteros “sin decimales” y reales “decimales”.

Booleanos: poseen dos estados: Verdadero “Si” y Falso “No”.

Memos: son campos alfanuméricos de longitud ilimitada. Presentan el
inconveniente de no poder ser indexados.

Fechas: almacenan fechas facilitando posteriormente su explotación.
Almacenar fechas de esta forma posibilita ordenar los registros por fechas o
calcular los días entre una fecha y otra.

Alfanuméricos: contienen cifras y letras. Presentan una longitud limitada (255
caracteres).

Autoincrementables: son campos numéricos enteros que incrementan en una
unidad su valor para cada registro incorporado. Su utilidad resulta: Servir de
identificador ya que resultan exclusivos de un registro.
Gómez Soto Francisco Daniel
Diseño Asistido por computadora
Diseño de una Base de Datos para una tienda de autoservicio.
Diagrama entidad-relación
Gómez Soto Francisco Daniel
Diseño Asistido por computadora
Diseño de una Base de Datos para una tienda de autoservicio.
Tabla detalles
Campo
Id artículo (PK)
Descripción
Precio
Campo
Id artículo (PK)
Descripción
Existencias
Entradas
Salidas
Precios
Tipo
Entero
Char
Flotante
Inventario
Tipo
Entero
Char
Entero
Entero
Entero
Tamaño
10
30
10
Tamaño
10
30
10
10
10
Campo
Id venta (PK)
Id cliente (FK)
Id artículo (FK)
Cantidad
Descripción
Precio
Fecha
Total de venta
Id vendedor (FK)
Ventas
Tipo
Entero
Entero
Entero
Entero
Char
Flotante
Date
Flotante
Char
Campo
Id cliente (PK)
Nombre
Dirección
Telefono
RFC
Cliente
Tipo
Entero
Char
Char
Char
Char
Tamaño
10
30
30
12
10
Campo
Id vendedor (PK)
Nombre
Usuario
Password
Vendedor
Tipo
Entero
Char
Char
Char
Tamaño
10
30
10
10
Gómez Soto Francisco Daniel
Tamaño
10
10
10
10
30
10
10
10
Diseño Asistido por computadora
Diseño de una Base de Datos para una tienda de autoservicio.
Tabla catalogo
Gómez Soto Francisco Daniel
Diseño Asistido por computadora
Diseño de una Base de Datos para una tienda de autoservicio.
Diccionario de datos
Campo
id_articulo
descripcion
precio
existencias
entradas
salidas
id_venta
id_cliente
Cantidad
Fecha
Total_venta
id_vendedor
nombre
direccion
telefono
RFC
usuario
Password
Tamaño
10
30
10
10
10
10
10
10
10
10
10
30
30
12
10
10
10
Gómez Soto Francisco Daniel
Tipo de dato
Entero
Carácter
Flotante
Entero
Entero
Entero
Entero
Entero
Entero
Fecha
Flotante
Entero
Carácter
Carácter
Carácter
Carácter
Carácter
Carácter
Descripción
Identificador para el artículo
Breve descripción del artículo
Precio correspondiente a un artículo
Cantidad de elementos existentes
Cantidad de artículos entrantes al inventario
Cantidad de artículos salientes del inventario
Identificador de venta
Identificador para cliente
Cantidad de artículos vendidos
Fecha en la que se realizó la venta
Total de la suma de la venta
Identificador de vendedor
Nombre del individuo (cliente o empleado)
Dirección del cliente
Número telefónico del cliente
RFC del cliente
Usuario que se le asigna a un vendedor
Contraseña que se le asigna a un vendedor
Diseño Asistido por computadora
Diseño de una Base de Datos para una tienda de autoservicio.
Scripts
Creando Base de datos:
CREATE DATABASE tienda;
USE tienda;
Creando tablas:
--- Estructura de tabla para la tabla 'clientes'
-CREATE TABLE IF NOT EXISTS clientes (
id_cliente int(10) NOT NULL,
nombre char(50) COLLATE latin1_general_ci DEFAULT NULL,
direccion char(50) COLLATE latin1_general_ci DEFAULT NULL,
telefono char(50) COLLATE latin1_general_ci DEFAULT NULL,
RFC char(50) COLLATE latin1_general_ci DEFAULT NULL,
PRIMARY KEY (id_cliente)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
-- ---------------------------------------------------------- Estructura de tabla para la tabla 'inventario'
-CREATE TABLE IF NOT EXISTS inventario (
id_articulo int(10) NOT NULL,
descripcion char(50) COLLATE latin1_general_ci NOT NULL,
editorial char(50) COLLATE latin1_general_ci NOT NULL,
existencias int(10) NOT NULL,
salidas int(10) NOT NULL,
PRIMARY KEY (id_articulo)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
-- ---------------------------------------------------------- Estructura de tabla para la tabla 'precios'
-CREATE TABLE IF NOT EXISTS precios (
id_articulo int(10) NOT NULL,
descripcion char(50) COLLATE latin1_general_ci NOT NULL,
precio float NOT NULL,
PRIMARY KEY (id_articulo)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
-- ---------------------------------------------------------- Estructura de tabla para la tabla 'vendedores'
-CREATE TABLE IF NOT EXISTS vendedores (
id_vendedor int(10) NOT NULL,
nombre char(50) COLLATE latin1_general_ci DEFAULT NULL,
Gómez Soto Francisco Daniel
Diseño Asistido por computadora
Diseño de una Base de Datos para una tienda de autoservicio.
usuario char(10) COLLATE latin1_general_ci DEFAULT NULL,
`password` char(10) COLLATE latin1_general_ci DEFAULT NULL,
PRIMARY KEY (id_vendedor)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
-- ---------------------------------------------------------- Estructura de tabla para la tabla 'ventas'
-CREATE TABLE IF NOT EXISTS ventas (
id_venta int(10) NOT NULL,
id_cliente int(10) NOT NULL,
id_articulo int(10) NOT NULL,
cantidad int(10) DEFAULT NULL,
descripcion char(50) COLLATE latin1_general_ci DEFAULT NULL,
precio float DEFAULT NULL,
fecha date DEFAULT NULL,
total_venta float DEFAULT NULL,
id_vendedor int(10) DEFAULT NULL,
PRIMARY KEY (id_venta),
KEY id_cliente (id_cliente),
KEY id_articulo (id_articulo),
KEY id_vendedor (id_vendedor),
KEY precio (precio)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
CARGA DE DATOS EN TABLA CLIENTES:
INSERT INTO tienda.clientes (id_cliente, nombre, direccion, telefono, RFC)
VALUES ('1', 'Francisco Gómez', 'Esmeralda 3 Tizayuca Hgo.', '7712345678',
'GOPF880120'),
('2', 'Julian Casablanca', 'Emili Hernadez 10 Tizayuca Hgo.',
'7712345679', 'CAPJ840312');
MODIFICACIÓN DE DATOS EN TABLA CLIENTES:
UPDATE tienda.clientes SET direccion=’Juarez 15 D.F.’, telefono=’7711561234’
WHERE ID=’1’;
MODIFICACIÓN DE DATOS EN TABLA CLIENTES:
SELECT FROM tienda.clientes;
STORE PROCEDURE USUARIOS:
CREATE PROCEDURE Clientes_GetAll AS SELECT id_cliente, nombre FROM tienda.clientes;
Gómez Soto Francisco Daniel
Diseño Asistido por computadora
Descargar