Mostrando entradas con la etiqueta base. Mostrar todas las entradas
/*
Crear una base de datos
*/
create database bdAgenda;
/*
Activar la base de datos bdPrueba (abrir la base de datos)
*/
use bdAgenda;
/*Dar permiso para crear el diagrama de la base de datos*/
alter authorization on database::bdAgenda to sa;
/*
Crear una tabla
*/
create table tcategoria
(
Idcategoria char(4) primary key ,
nombre varchar(120),
descripcion text
);
/*
Crear la otra tabla
*/
create table tcontacto
(
Idcontacto int primary key ,
nombre varchar(120),
direccion varchar (180),
fechanaci datetime,
telefono varchar(20),
email varchar (120),
observacion text,
fkcategoria char(4),
foreign key (fkCategoria) references tcategoria(idCategoria)
);
/*
Listar el contenido de una tabla
*/
select * from tcategoria;
select * from tcontacto;
/*
Insertar datos en la tabla
*/
insert into tcategoria values('AMIX','Mis mejores Amigos','Mis Amigos');
insert into tcategoria values('FAMI','Familia','Mi familia');
insert into tcategoria values('COME','Compañeros de Estudio','Mis compañeros de KHIPU');
insert into tcategoria values('COMT','Compañeros de Trabajo','Mis amigos de la Zona');
insert into tcontacto values(1,'Juan Perez','Av Sol','11/11/11','123456','A@A.COM','Ninguna','FAMI');
insert into tcontacto values(2,'Maria Lopez','Av Grau','10/10/10','987654','b@b.COM','Ninguna','AMIX');
insert into tcontacto values(3,'Jesus Guti','Av Belen','09/09/09','456213','c@c.com','Ninguna','FAMI');
insert into tcontacto values(4,'Jose Guzman','Av Jerusalen','08/08/08','951465','d@d.COM','Ninguna','COME');
insert into tcontacto values(5,'Jonas Rodrish','Av Mar','07/07/07','984264','e@e.COM','Ninguna','COME');
insert into tcontacto values(6,'Pablo Nerd','Av Mar Cultura','06/06/06','498648','g@g.COM','Ninguna','AMIX');
insert into tcontacto values(7,'Ricardo Argo','Av Paz','05/05/05','951753','f@f.COM','Ninguna','COME');
insert into tcontacto values(8,'Pedro Pied','Av Hoy','04/04/04','648975','h@h.COM','Ninguna','AMIX');
insert into tcontacto values(9,'Edit Apon','Av Abajo','03/03/03','789654','i@i.COM','Ninguna','COMT');
insert into tcontacto values(10,'Soledad Tode','Av Estamos','02/02/02','456789','j@j.COM','Ninguna','AMIX');
insert into tcontacto values(11,'Samuel Soyo','Av Carrera','01/01/01','123456','k@k.COM','Ninguna','COMT');
/*Listar los contactos, pero solo mostrar su codigo, nombre y telefono*/
select Idcontacto, nombre, telefono from tcontacto;
/*Listar categoria y contactos al mismo tiempo, union*/
select *
from tcontacto
join tcategoria
on Idcategoria = fkcategoria;
/*Listar los contactos pero solo mostrar el nombre, su telefono y el nombre de la categoria*/
select Idcontacto,tcontacto.nombre,telefono,tcategoria.nombre
from tcategoria
join tcontacto
on Idcategoria = fkcategoria;
/*Listar todos los contactos mostrar el nombre, telefono y nombre de la categoria*/
select tcontacto.nombre,telefono,tcategoria.nombre 'Nombre/Categoria'
from tcategoria
join tcontacto
on Idcategoria = fkcategoria
where tcontacto.nombre like 'j%';
/*Listar a los contactos y la descripción de la categoria, los contactos deben tener un codigo mayor a 7
se debe mostrar el nombre del contacto, su Id y la descripción de la categoría
*/
select idcontacto, tcontacto.nombre,tcategoria.descripcion
from tcategoria
join tcontacto
on Idcategoria = fkcategoria
where Idcontacto>7;
Aclaraciones Importantes en SQLServer
Que es WHERE
Where significa donde, es usado en diversos comando de SQLServer para colocar condiciones, después de dicha palabra.
delete from tPersona
Este orden al no tener la condición WHERE elimina todos los registros de la tabla tPersona, por ellos deberás tener cuidado con comandos de este tipo.Operadores de Condición
Son necesarios a la ora de formar condiciones,
- ■ > mayor.
- ■ < menor.
- ■ >= mayor o igual
- ■ <= menor o igual
- ■ <> diferente
Uso Operadores Lógicos AND, OR y NOT
Cuando trabajas con consultas, es necesario tener en cuenta los operadores lógicos, por ello al usar WHERE en una consulta.- ■ AND, es el operador "Y" lógico, que significa que todas las condiciones deberán cumplirse.
- ■ OR, es el operador "O" lógico, esto quiere decir que basta que una condición de varias se cumpla.
- ■ NOT, es el operador "NO" lógico, si una condición se cumple el operador la niega y convierte en falsa, pero si una condición no se cumple el operador la convierte en verdad.
Ejemplos:
- ■ Personas de entre 50 y 70 años de edad: edad >= 50 AND edad <=70
- ■ Personas que se llamen juan o que su edad sea 25: nombre = 'Juan' OR edad = 25
- ■ Personas que no tengan entre 18 y 75 años: not( edad>=18 and edad<=75)
¿Que significa asterisco en una consulta?
El asterisco es un comodín, que significa todo los campos cuando lo usamos en una consulta, por ejemplo:
- select * from tPersona;
En esta orden estamos indicando que queremos ver todos los registros de una tabla y también todos sus campos, podemos reemplazar el * por el nombre de un campo, de esta forma solo veríamos la información de dicho campo, por ejemplo:
- select nombre from tPersona;
¿Que es LIKE en una condición WHERE?
Podemos entender LIKE como "que contiene" o "que contenga", se usa acompañado de el comodín %, que reemplaza un grupo de letras de texto.
Por ejemplo queremos consultar a todas aquellas personas cuyo nombre comienza con "A", debemos hacer los siguiente:
- select * from tPersona where nombre like 'a%'
Si analizamos la expresión le estamos diciendo que muestre todas las personas donde el nombre contiene la letra "a" inicial, sin importar el resto del nombre, otros ejemplos:
- ■ 'a%', que comienza con a y lo demás no importa.
- ■ '%e', que termina en e y lo de delante no importa.
- ■ '%mar%', que tenga la palabra mar y no importa que hay delante o después de la palabra.
- ■ 'more%', que comienza con more y no importa lo demás.
Como observas % reemplaza a un grupo de letras, sin importar cuales sean.
¿Que significa JOIN?
En SQL significa combinar, se usa para combinar los datos de dos tablas que están relacionadas, JOIN trabaja junto con la clausula ON, se usa ON para indicar cuales son los campos por los cuales la tabla se relaciona, ejemplo:
- ■ select * from tcategoria join tcontacto on Idcategoria = fkcategoria;
En este ejemplo tenemos dos tablas relacionadas tCategoria cuyo primary key es IdCategoria, y tContacto cuyo foreign key es fkCategoria, por tanta al combinar los datos, le estamos diciendo que tanto el IdCategoria como el fkCategoria sean iguales y estén emparejados.
CREATE DATABASE
Este comando se usa para crear una base de datos, puede ver el siguiente ejemplo:- • create database bdPrueba;
USE
Este comando se usa para poner en uso una base de datos (BD) o abrirla para trabajar en ella, es importante recordar que cuando creas una BD, es necesario ponerla en uso o activarla, ejemplo:- • use bdAlumnos;
CREATE TABLE (Crear Tabla)
Una vez activa la base de datos, este comando permite crear una tabla dentro de ella, debemos recordar que al crear la tabla debemos indicarle el tipo de dato que tiene cada campo, el el siguiente ejemplo podemos ver como crear la tabla tPersona.create table tPersona
(
codigo char(3),
nombre varchar(50),
edad int
);
INSERT INTO (Insertar Aquí)
Este comando permite ingresar registros a una tabla, para ello, tenemos los siguientes ejemplos:- • insert into tPersona values('A25','Juan',21);
- • insert into tPersona values('A01','Maria',23);
- • insert into tPersona values('A02','Jose',80);
UPDATE (Actualizar)
Este comando permite modificar los datos de un registro, por ejemplo queremos cambiar el nombre de la persona de código A25 por Rosa, el código sería el siguiente:- • update tPersona set nombre = 'Rosa' where codigo = 'A01';
- • update tPersona set nombre = 'Jesus', edad=33 where codigo = 'A25';
DELETE FROM
Este comando permite eliminar los registros de una tabla, para ello usamos where para indicar la condición que deben tener los registros para su eliminación. Por ejemplo podemos eliminar a la persona de codigo A02:- • delete from tPersona where codigo = 'A02';
- • delete from tPersona
SELECT
Es una de las ordenes más importantes y utilizadas, permiten hacer listados y consultas de los datos de una tabla, con esta orden podemos ver que información tenemos realmente grabada en la base de datos, por ejemplo para listar los datos de la tabla tPersona hacemos lo siguiente:
- • select * from tPersona;
Otros ejemplos con la orden select.
/* Mostrar las personas en orden alfabetico por el nombre */
- • select * from tPersona order by nombre;
/* Mostrar las personas en orden por edad */
- • select * from tPersona order by edad desc;
/* Mostrar las personas de 50 años a mas */
- • select * from tPersona where edad >= 50;
/***************
SCRIPT SQL SERVER COMPLETO DE EJEMPLO
***************/
/*
Crear una base de datos
*/
create database bdPrueba;
/*
Activar la base de datos bdPrueba (abrir la base de datos)
*/
use bdPrueba;
/*
Crear una tabla
*/
create table tPersona
(
codigo char(3),
nombre varchar(50),
edad int
);
/*
Listar el contenido de una tabla
*/
select * from tPersona;
/*
Insertar datos en la tabla
*/
insert into tPersona values('A01','Juan',21);
insert into tPersona values('A02','Maria',23);
insert into tPersona values('A03','Jose',80);
insert into tPersona values('A04','Judas',35);
insert into tPersona values('A05','Pedro',40);
insert into tPersona values('A06','Lazaro',15);
insert into tPersona values('A07','Ruben',35);
insert into tPersona values('A08','Margoth',27);
insert into tPersona values('A09','Manuel',22);
insert into tPersona values('A10','Juan',19);
insert into tPersona values('A11','Antonio',26);
insert into tPersona values('A12','Rosmery',44);
insert into tPersona values('A13','Roa',38);
insert into tPersona values('A14','Edgar',18);
insert into tPersona values('A15','Eva',14);
insert into tPersona values('A16','Gerardo',22);
insert into tPersona values('A17','July',76);
insert into tPersona values('A18','Saul',44);
insert into tPersona values('A19','Marlene',55);
insert into tPersona values('A20','Richard',29);
/*
Modificar datos de una tabla
*/
update tPersona set nombre = 'Maria Juana' where codigo = 'A01';
update tPersona set nombre = 'Jesus', edad=33 where codigo = 'A25';
/*
Eliminar datos de una tabla
*/
delete from tPersona where codigo = 'A02';
/*
Borrar todos los datos de la tabla usar con precaución
*/
delete from tPersona
/*
Mostrar las personas en orden alfabetico por el nombre
*/
select * from tPersona order by nombre;
/*
Mostrar las personas en orden por edad
*/
select * from tPersona order by edad desc;
/*
Mostrar las personas de 50 años a mas
*/
select * from tPersona where edad >= 50;
/*
Mostrar todas las personas que estan en sus cuarentas
*/
select * from tPersona where edad>=40 and edad<=49;
/*
Mostrar todas las personas menores de edad y los de 60 a mas
*/
select * from tPersona where edad<=18 or edad>=60;
/*
Mostrar a todas las persona cuyo nombre comienza con j
*/
select * from tPersona where nombre like 'j%';
/*
Mostrar a todas las personas cuyo nombre termina en e
*/
select * from tPersona where nombre like '%e';
/*
Mostar las personas cuyo nombre comienza con ma
*/
select * from tPersona where nombre like 'ma%';
/*
Mostrar todas las personas cuyo nombre contenga d
*/
select * from tPersona where nombre like '%d%';
/*
Mostrar las personas cuyo nombre tiene r y son mayores de 40
*/
select * from tPersona where nombre like '%r%' and edad>40;
/*
Mostrar a la persona de codigo A11
*/
select * from tPersona where codigo = 'A11';
/*
Mostrar a la persona llamada eva
*/
select * from tPersona where nombre = 'eva';
/*
Mostrar solo los nombres de las personas
*/
select nombre from tPersona;
/*
Mostrar los nombres y edad de las personas menores de 25
*/
select nombre, edad from tPersona where edad<25;
SQL (Structured Query Language)
El SQL es un lenguaje de consulta estructurado, usado para hacer trabajar en una base de datos, en nuestro caso usaremos el gestor de base de datos de Microsoft SQL Server el cual nos permitirá crear tablas y relacionarlas y tener el control de los datos.Este lenguaje esta compuesto por comandos, cláusulas, operadores, funciones y estructuras de control. Todos estas instrucciones permiten crear, actualizar y manipular los diversos componentes de tu base de datos.
¿Que es una tabla?
Las conocemos en diseño como entidades, son los elementos de una base de datos que almacenan la información, antes de comenzar tienes que tener en cuenta que la tabla tiene las siguientes partes:Los Campos
Son las columnas, estas tienen un solo tipo de datos, es decir, en la figura podemos ver el campo precio, el cual solo tiene números, en el campo titulo podemos observar solo texto. Por tanto debes recordar que los campos tienen que ser definidos con un determinado tipo de dato, ejemplos:- • Id_Libro
- • Titulo
- • Categoría
- • Precio
Los Registros
Los constituyen las filas, estas poseen un valor muy alto ya que agrupa datos y nos muestra un orden entre ellos, en realidad la información de una base de datos esta basada en registros que se almacenan en una tabla.- • 100, 1, Tutorial de SqlServer, 01/01/2011, 5, 5432.0000, 1
- • 106, 5, Manual de Visual, 01/01/2014, 2, 68875.0000, 4
Los tipos de Datos en SQL Server
Existen diversos tipos de datos en SQL Server, en este documentos vamos ha describir y usar los que consideramos más usuales.- Bit. Una columna o variable de tipo bit puede almacenar el rango de valores de 1 a 0.
- Int. Una columna o variable de tipo int puede almacenar el rango de valores -2^31 a 2^31-1 .
- Decimal(p,s). Una columna de tipo decimal puede almacenar datos numéricos decimales sin redondear. Donde p es la precisión (número total del dígitos) y s la escala (número de valores decimales)
- Money. Almacena valores numéricos monetarios de -2^63 a 2^63-1, con una precisión de hasta diez milésimas de la unidad monetaria.
- Char(n). Almacena n caracteres o texto en formato ASCII, un byte por cada letra. Debes tener presente que si por ejemplo, char(5), guardamos el valor 'A', se almacena 'A ', ocupando los cinco bytes.
- Varchar(n). Almacena n caracteres o texto en formato ASCII, un byte por cada letra. Cuando almacenamos datos en el tipo varchar, unicamente se utilizan los caracteres necesarios,Por ejemplo, si en un varchar(255), guardamos el valor 'A', se almacena 'A', ocupando solo un byte bytes.
- Nchar(n).Almacena n caracteres en formato UNICODE, dos bytes por cada letra. Es recomendable utilizar este tipo de datos cuando los valores que vayamos a almacenar puedan pertenecer a diferente idiomas.
- Nvarchar(n).Almacena n caracteres en formato UNICODE, dos bytes por cada letra. Es recomendable utilizar este tipo de datos cuando los valores que vayamos a almacenar puedan pertenecer a diferente idiomas.
- Text. Almacena textos muy grandes más de 2100 millones de letras.
- Datetime. Almacena fechas con una precisión de mili segundos. Debe usarse para fechas muy especificas.
Ahora que ya conoces que es una tabla y los tipos de datos más usuales, podemos comenzar el trabajo de crear una base de datos mediante comandos.
Ejercicios Desarrollados de la Base de Datos
Paso 1. El Análisis de la Base de Datos la Farmacia
Una farmacia necesita un sistema informático, por ello necesita el diseño de una base de datos, esta empresa tiene las siguientes reglas:- 1. Se necesita llevar el control de los fármacos, de estos se tiene un nombre y descripción.
- 2. Los fármacos se clasifican por acción y laboratorios, es decir, cada fármaco corresponde a un laboratorio y tiene alguna acción.
- 3. Laboratorios tienen nombre y dirección. De las acciones se tiene en cuenta su nombre y descripción.
- 4. En la farmacia se vende los medicamentos a clientes, estas ventas deben ser registradas, se debe registrar que medicamento se vende, el cliente que compra, la fecha al que se vende el medicamento, la cantidad y el precio al que se vende.
- 5. De los clientes (nombre y dirección) también se debe tener en cuenta el vendedor que hace una venta y se debe considerar su nombre, dirección y teléfono.
Paso 2. La Identificación de las Entidades.
Paso 3. Creación del Diseño Conceptual
Paso 4. Creación del Diseño Lógico
Paso 1. El Análisis del Restaurante y sus Menús.
Crear un esquema Entidad/relación que represente un modelo para llevar los datos que maneja un restaurante de menús diarios. Teniendo en cuenta que:
- Sólo interesa llevar los datos de los menús diarios a la hora de la comida, nada más del restaurante
- Cada menús se compone de una serie de posibles platos. cada plato se puede repetir en diferentes días. Los platos pueden ser primer plato, segundo plato o postres.
- De cada plato se almacena el nombre (por ejemplo Arroz negro con setas) y una pequeña descripción.
- De los menús almacenamos la fecha en la que se ofrece el menú, el número de personas que han tomado menú ese día. Además almacenamos la cantidad de cada plato que se ha tomado ese día.
- Se almacena también la temperatura que hacía el día del menú para así poder analizar las temperaturas y los platos exitosos
Paso 2. Identificar Entidades.
- Menú (IdMenu)
- Plato (idPlato, nombre, descripción)
- Dia (fecha, temperatura)
- MenuDia
Paso 3. Armar el Diagrama Conceptual.
Este es otro tipo de diagrama que puedes usar y encontrar en muchos textos de bases de datos E/R.
Paso 4. El Diagrama Lógico
Este diagrama incluye las claves primarias y foráneas, este es el diagrama que permitirá implementar la base de datos.
TAREA – DE BASE DE DATOS
INVESTIGA Y RESPONDE EL SIGUIENTE CUESTIONARIO
1) ¿Qué es una base de datos?2) ¿En qué se diferencia un archivo de texto y una base de datos?
3) ¿Para qué sirve una base de datos?
4) ¿Con qué tipo de software se visualiza el contenido y se actualiza una base de datos?
5) ¿Con qué características debe cumplir una base de datos?
6) ¿Qué significan los siguientes conceptos: Consistencia – Integridad- Escalabilidad?
7) ¿Qué es un registro de una base de datos?
8) ¿Qué es una base de datos relacional?
Desarrolla los diagramas entidad relación de los siguientes tres ejercicios:
Como Encontrar las Relaciones
Las relaciones se identifican haciendo preguntas e identificando los miembros de cada entidad, para determinar estas debemos hacer dos preguntas claves:
¿Un elemento de la entidad A puede tener varias relaciones con la entidad B?
- Al responder SI, la n en la entidad B.
- Al responder NO, va 1 en la entidad B.
- Al responder SI, la n va en la entidad A.
- Al responder NO, va 1 en la entidad B.
Para tener mayor claridad veremos los siguientes ejemplos, siempre debes tener el cuenta el porque tu respuesta es SI o NO.
Ejemplo 1. Tenemos las entidades COMPOSITOR y CANCIÓN.
Para hacer la relación debemos hacernos dos preguntas:- ¿Un compositor puede hacer varias canciones? SI, al responder que si, significa que el compositor puede componer varias canciones por lo tanto la relación varios (n) va al lado de canción.
- ¿Una canción puede ser hecha por varios compositores? NO, esta respuesta significa que una canción solo puede ser compuesta por un solo compositor, es por ello que al lado del compositor va el 1.
Al ver la figura debemos interpretarla de la siguiente forma: Un compositor puede hacer varias canciones y una canción la puede hacer solo un compositor.
Ejemplo 2. Tenemos las entidades PACIENTE y CITA
Nuevamente debemos hacer las siguientes dos preguntas:- ¿Un paciente puede tener varias citas? SI, siempre y cuando sea en diferentes horas o fechas.
- ¿Una cita puede tener varios pacientes? NO porque en una misma cita no se pueden atenderse varios pacientes.
Ejemplo 3. Tenemos las entidades CLIENTE y RECIBO
Preguntas:- ¿Un cliente puede tener varios recibos? SI, siempre y cuando el recibo sea de diferentes servicios y/o diferentes fechas.
- Otra respuesta, ¿Un cliente puede tener varios recibos? NO, cuando el recibo es del mismo servicio y fecha.
- ¿Un recibo puede tener varios clientes? NO, pues el recibo solo le corresponde a un solo cliente. Aquí tenemos una sola respuesta.
En este ejemplo podemos tener dos soluciones, siempre desde la perspectiva del diseñador y especialmente las condiciones del problema a resolver.
Concepto de Claves Importante
La clave Primaria (Primary Key)
Es un campo de una entidad, el objetivo de esta es ser única y no puede repetirse en ningun registro de la entidad, ejemplos:- Documento de Identidad (DNI) de las personas.
- Número de un motor de automóvil.
- ISBN de un libro.
La clave Foránea (Foreign Key)
Son campos de una entidad que dependen de una clave primaria, estas pueden repetirse y permiten la relación entre dos entidades.- Si se tiene una relación de productos y números de documentos de los clientes que han comprado, podemos identificar fácilmente a los clientes que compraron ciertos productos.
Reglas a Tener en Cuenta a la Hora de Hacer un Diagrama E/R
1. Regla de la Clave Primaria (Primary Key)
Debemos tener en cuenta que la mayoría de las entidades deberán tener una clave primaria, normalmente nosotros le pondremos el prefijo ID. Una clave primaria es un campo que tiene una entidad cuyos datos nunca se repiten y es única para un registro, ver la figura:2. Regla de la Relación uno a Varios
Cuando existe una relación de este tipo, debemos considerar que la entidad que tiene 1 (uno) debe tener definitivamente una clave primaria.La entidad que tiene n (varios) debe tener una clave foránea, esta clave foránea es la que relaciona las dos entidades.
La clave primaria y la clave foránea entre dos entidades relacionadas forman la relación, es decir, para una clave primaria debe existir siempre una clave foránea.
3. Regla de la Relación Muchos a Muchos
Cuando existe este tipo de relación entre dos entidades, se crea una entidad intermedia que permitirá la relación, la relación intermedia tendrá el muchos y las entidades originales el uno.Ten en cuenta que para implementar una base de datos E/R debemos tener en cuenta que no podemos hacerlo si existe una relación muchos a muchos, es por ello que tenemos la necesidad de hacer este ajuste.
4. Relación Uno a Uno
Cuando existe este tipo de relaciones ambas entidades se convierten en una en algunos casos, siempre y cuando no altere o destruya la esencia de la base de datos.En otros casos esta relación sigue la regla de uno varios, pero esta vez la relación es entre claves primarias, no existe una clave foránea, sino mas bien una de las claves primarias hace de clave foránea.
En este ejercicio la mejor solución es la primera, aunque también se puede usar la segunda.
Pasos para hacer un diagrama entidad relación
Paso 1. El Análisis. Tener los detalles del problema, es decir, se necesita tener los detalles del sistema del cual se va a realizar el modelo.
Paso 2. Identificar Entidades. Para hacer este proceso se debe hacer una revisión exhaustiva y hallar las entidades.
Paso 3. Encontrar los Atributos. Debemos encontrar y especificar todas las propiedades de cada entidad, estas nos ayudaran a especificar que datos se tienen y manejan cada entidad.
Paso 4. Relacionar. Una vez que tenemos las entidades y sus atributos, debemos relacionar aquellas que sean necesarias agregando las claves primarias y foráneas.
Modelo Entidad Relación (E/R o ER)
Es un modelo basado en la percepción del mundo real, permite diseñar una base de datos, basándonos en ciertas reglas y restricciones, aunque los modelos ER fueron inventados hace ya varias décadas, en el mundo de la informática tienen una importancia y uso vital ya que la mayoría de las bases de datos manejan este paradigma que tiende a permanecer por mucho tiempo mas como la forma de diseñar las bases de datos.Para entender esta forma de modelar las bases de datos tenemos que entender los siguientes conceptos:
Entidad
Una entidad es la representación de algo real o abstracto del cual se conoce su información, las entidades son aquellos elementos de una base de datos que podemos visualizar ya sea físicamente o mentalmente. Por ejemplo:- Automovil
- Casa
- Alumno
- BoletaDeVenta
- Factura
- Curso
- Horario
- etc.
Relaciones
Cuando hablamos de entidades, estas no pueden permanecer aisladas unas de otros, es por ello que debemos relacionarlas unas con otras, esta relaciones representan el flujo de información de una base de datos y la dependencia que tiene una entidad con otra. Para ello podemos observar los siguientes ejemplos:- Alumno y Curso (Estas dos entidades estan relacionadas ya que un alumno en su lugar de estudio llevará varios cursos, también podemos indicar que un curso puede ser llevado por varios alumnos).
- Auto y Chofer (Podemos decir que un auto es manejado por un chofer, en este caso la relación se llama manejar)
- Trabajador y Empresa (Podemos decir que un trabajador trabaja en una empresa, la relación es trabaja).
- Horario y Tren (Se puede decir que un tren tiene un horario).
- etc.
Restricciones
Cuando relacionamos una entidad con otra, estas relaciones deben tener un significado e indicar la cantidad de información que comparten las entidades, determinar las restricciones es vital a la hora de hacer el diseño de una base de datos.
Restricción Uno a Uno
Esta restricción indica que dos entidades estan relacionadas de tal forma que solo un registro de la entidad A esta relacionado con otro registro de la entidad B.
Ejemplos:
Ejemplos:
- Persona y Permiso de conducir. En este ejemplo se nota claramente que a una persona solo le corresponde un premiso de conducir, y un permiso de conducir es solo de una persona.
- Usuario y Cuenta. Aquí podemos ver que un usuario tiene una cuenta de banco y una cuenta de banco le corresponde a un solo usuario.
- Empleado y Contrato. Un empleado tiene un contrato y un contrato le corresponde a solo un empleado.
Restricción Uno a Varios
Esta restricción hace ver que dos entidades se relacionan de forma que a un registro de la entidad A le corresponden varios registros de la entidad B.
Ejemplos:
Ejemplos:
- Cliente y Factura. Esto significa que un cliente puede tener varias facturas a su nombre, y también podemos indicar que una factura le corresponde solo a un cliente.
- Producto y Deposito. Se puede ver que en un deposito existen varios productos, también debemos notar que un determinado producto solo puede estar en un deposito.
Restricción Varios a Varios
Esta es una restricción que indica que un registro de la entidad A tiene varios registros de la entidad B que le corresponden y a demás también a un registro de la entidad B le corresponden varios registro de la entidad A.
Ejemplos:
Ejemplos:
- Empleado y Proyecto. Un empleado puede trabajar en varios proyectos, en un proyecto trabajan varios empleados.
- Autor y Libro. Un autor puede escribir varios libros y un libro puede ser escrito por varios autores.
- Alumno y Curso. Un alumno puede llevar varios cursos y un curso puede ser llevado por varios alumnos.
¿Qué es una base de datos?
Una base de datos es un elemento de software el cual almacena datos, para su posterior recuperación, las bases de datos siguen una estructura, a una base de datos se puede tener acceso por diversas vias puesto los datos están centralizados.Utilidad de las Bases de Datos (BD)
- ■ Se usa en sistemas de control de pagos y servicios, en la actualidad son usados en empresas de distribución eléctrica, servicio de agua, telefonía, televisión, educación, etc.
- ■ Las entidades financieras usan las bases de datos para tener la información de sus clientes, sus saldos, sus retiros, sus créditos, etc.
- ■ Empresas que comercializan productos, también tienen bases de datos que identifican a sus clientes, proveedores, pedidos, etc.
- ■ Los anteriores son tan solo algunos ejemplos de la utilidad de las bases de datos, podemos generalizar y decir que las bases de datos son parte de un sistemas informático la cual permite que la información se pueda guardar, modificar, recuperar, buscar y eliminar.
Que es un Sistema Gestor de Base de Datos (SGBD)
En ingles DataBase Management System, son programas de trabajo muy especifico que sirve de interfaz entre la base de datos, los usuarios y las aplicaciones, en este curso vamos a describir el uso del SQLServer. Normalmente este software es instalado en un equipo llamado el servidor de datos, de este los demás equipos podrán obtener y realizar distintas operaciones con los datos que tiene el servidor.
Sistemas Gestores de Base de Datos
En el mundo se usan muchos SGBD, podemos dividirlos en dos grandes grupos, uno de ellos de los programas libre y los otros de pago.Gestores libres:
- MySQL
- Sydes (linux)
- SQLIFE
- ProsgretSQL
- Filebird
- ApacheDerby
- DBD2 express-C DB2
Gestores no libres:
- Microsoft SQL Server
- Microsoft Access
- Open Access
- Oracle
- Foxpro
- IBM Informics
Ventajas de las bases de datos
- Controla la redundancia de datos: la información no se repite ni se graba la misma información varias veces.
- Consistencia de datos: El trabajo en los datos al no tener duplicados, solo se debe operar una vez.
- Compartir datos: Todos los usuarios que tengan autorización de acceso a los datos pueden usarla.
- Integridad de datos: Las bases de datos tienen una organización de forma tal que la información no se pervierte y permanece altamente organizada.
- Seguridad de los datos: Al estar la información centralizada, esta puede ser protegida de forma tal que nadie que no tenga autorización pueda acceder a ella.
- Mantenimiento de datos: Los datos son fácilmente accesibles y al estar organizado el mantenimiento de estos se simplifica.
- Aumento de la concurrencia: Las bases de datos pueden recibir varios usuarios al mismo tiempo, e incluso varios pueden acceder a los mismos datos.
Desventajas de la base de datos
- La complejidad: Los SGBD son conjuntos de programas que pueden llegar a ser complejos con una gran funcionalidad.
- Costo: Las grandes bases de datos ocupan mucho espacio, por tanto se necesita una mayor espacio de almacenamiento y equipos que soporten y garanticen la integridad de los datos.
- Fallos y seguridad: La base de datos al estar centralizada, corre el riesgo de perderse ya sea por fallas en equipo o violaciones de seguridad, por ello las bases de datos deben tener copias de seguridad (Backup) constantemente.