You are on page 1of 34

SERVICIO NACIONAL DE

APRENDIZAJE (SENA)
Tema: Diseo lgico de una base de datos
Caso de Estudio: Alcalda de San Antonio
del SENA
INTEGRANTES:
Milton Cesar Lucumi

Explique el diseo lgico de base


de datos

Este diseo consiste en identificar las relaciones


que hay entre las entidades que se
representaron en el modelo conceptual, esto
constituira en un modelo relacional, a este
modelo relacional se lo valida con la
normalizacin y se verifica si cumple todas las
transacciones que desea el usuario, adems se
requiere verificar las restricciones de integridad
por ejemplo que datos siempre son requeridos,
cual es el dominio de los atributos de las
entidades que se han definido, la multiplicidad,
una clave principal nunca pude ser nula y una
clave externa debe hacer referencia a una padre

Describa con un ejemplo de un sistema


las reglas para derivar tablas que
representen:
TIPO DE ENTIDADES FUERTES
Beneficiario._ esta es una entidad fuerte ya
que sus atributos son simples y tienen una
clave principal que solo depende de la
entidad.
Funcionario (atribos)
Despacho (Secretaria)

Tipos de relaciones
recursivas uno a uno (1:1)
Una persona puede ser atendida
por un funcionario

Tipos de relaciones
superclase/subclase
Una persona puede ser un
beneficiario, funcionario o usuario,
en este caso la entidad padre es
beneficiario y las entidades hijas
que son funcionario, usuario,
funcionario heredan los atributos
del padre y adems pueden tener
otros atributos propios.

Tipos de relaciones
complejas
Cuando se tiene este tipo de
relaciones se crea una tabla por la
relacin.
Entre un cliente y un producto
necesitamos la tabla pago para
registra la informacin sobre esa
compra.
Entre cliente y la tarjeta de crdito
existe la relacin pago

Atributos multivaluados
Un beneficiario tiene varios
nmeros de telfonos.
Un beneficiario tiene varias fechas
registradas.

Explique cmo puede utilizarse la tcnica de


normalizacin para derivar las tablas derivadas
a partir del modelo conceptual de los datos.
El uso de tcnicas de normalizacin requiere que
identifiquemos primero las dependencias funcionales
existentes entre los atributos de cada relacin. Las
caractersticas de las dependencias funcionales que
se utiliza para la normalizacin ya fueron explicadas
y solo pueden identificarse si se comprende a la
perfeccin el significado de cada atributo. Las
dependencias funcionales indican relaciones
importantes entre los atributos de una tabla. Son
esas dependencias funcionales y la clave principal
de cada relacin lo que se utiliza durante el proceso
de normalizacin.
El proceso de normalizacin utiliza una serie de
comprobaciones con cada relacin para ver si el
conjunto de atributos de la relacin cumple con las
reglas d una determinada forma normal.

Explique dos tcnicas que pueden usarse


para verificar que el esquema relacional
es capaz de soportar las transacciones
necesarias.
Utilizando las relaciones, los enlaces de
clave principal/ clave externa mostrados
en las relaciones, el diagrama ER y el
diccionario de datos, trataremos de
realizar las operaciones manualmente. S
i podemos resolver todas las
transacciones de esta forma, habremos
validado el modelo lgico de los datos.

Describa el propsito de las


restricciones de integridad e
identifique los tipos principales de
restricciones de integridad existentes
en un modelo lgico de los datos
Es el conjunto de restricciones que se
quiere imponer para proteger la base de
datos de incoherencias.
Los tipos principales de restricciones de
integridad son: datos requeridos,
restricciones relativas a los dominios de los
atributos, multiplicidad, integridad de
entidades, integridad referencial y por
ltimo restricciones generales

Describa las estrategias alternativas


que pueden aplicarse si existe una
tupla hija que hace referencia a una
tupla padre que queremos borrar
Deberamos borrar la tupla hija d
referencia y luego s borrar la tupla padre,
o tambin la estrategia que puede seguir
es asignar a la tupla hija una secuencia de
ceros para que esta no haga referencia a
una tupla padre y la padre se pueda borrar

Identifique las tareas normalmente asociadas


con la combinacin de modelos lgicos
locales de los datos en un modelo lgico
global.
Revisar los nombres y el contenido de las entidades y de
sus claves candidatas
Revisar los nombres y los contenidos de las relaciones/
claves externas
Combinar las entidades/tablas de los modelos de datos
locales
Incluir sin combinarlas las entidades, tablas exclusivas de
cada modelo de datos local.
Combinar las relaciones, claves externas de los modelos de
datos locales.
Incluir las relaciones, claves externas exclusivas de cada
modelo de datos local.
Verificar si falta alguna entidad, tabla o relacin, clave
externa.
Comprobar las claves externas
Comprobar las restricciones de integridad
Dibujar el diagrama ER global

Anlisis de
Requerimientos

Fases del
Diseo

Ejemplo de diseo de
una BD

Comandos
utilizados
por

Comandos
show databases

El comando show databases permite visualizar las bases de datos


actualmente activas.
Ejemplo:
mysql> show databases;
+----------+
| Database |
+----------+
| mysql|
| test|
+----------+
2 rows in set (0.01 sec)
En el ejemplo hay dos bases de datos activas, la principal llamada
mysql y la base test (una base de datos de prueba). Hay bases de
datos que no nos sern mostradas si no tenemos permiso para ello.

Comandos
comando use
Para utilizar una base de datos
El comando use nos permite utilizar una base de datos. Es
el nico comando que no requiere punto y coma.
mysql> use test
Eso hace que test sea la base de datos de trabajo actual.
Tambin se puede seleccionar la base de datos para
utilizar al arrancar el propio monitor. Para ello basta poner
el nombre de la base de datos tras el comando mysql

Comandos
comando create
Para crear una base de datos
Se realiza de esta forma:
mysql>create database prueba;
Query OK, 1 row affected (0.00 sec)
La base de datos recin creada estar representada
por una carpeta dentro de la carpeta data de mysql.
Aunque la base est creada, habr que utilizar el
comando use para trabajar con ella.

Comandos
comando drop database
Para borrar bases de datos.
Se trata del comando drop database
al cual le sigue el nombre de la base
de datos.
mysql>drop database prueba;
Query OK, 0 rows affected (0.00
sec)

Comandos
comando show tables
Muestra las tablas de la base de datos actual. Ejemplo:
mysql> use mysql
Database changed
mysql> show tables;
+-----------------+
| Tables_in_mysql |
+-----------------+
Se puede utilizar la sintaxis
| columns_priv|
show tables from bd, donde
| db|
bd es el nombre de una base
| func|
de datos que no tiene porque
estar en uso.
| host|
| tables_priv|
| user|
+-----------------+
6 rows in set (0.00 sec)

Comandos
Para crear tablas.
Es el comando create table el que la realiza.
Este comando funciona con esta sintaxis:
create table nombreTabla (nombrecampo1
tipodatos(tamao), nombrecampo2
tipodatos(tamao),....);
Ejemplo:
mysql> create table personas (nombre varchar(30),
->apellido1 varchar(30), apellido2 varchar(30),
->telefono varchar(9));
Query OK, 0 rows affected (0.01 sec)

Comandos
Indicar opciones en los campos en la
creacin:
Durante la creacin de campos se pueden indicar
opciones (las opciones se enumeran ms abajo)
sobre los campos. Estas opciones se colocan tras
el tipo de datos del campo.
Ejemplo (not null y unique):
mysql> create table personas (nombre varchar(30)
not null,
->apellido1 varchar(30), apellido2 varchar(30),
->telefono varchar(9) unique);

Comandos
Establecimiento de la clave durante la creacin:
Se puede aadir la palabra primary key tras el
tipo de datos del campo que se desea sea la
clave de la tabla. Si la clave es ms de un campo
se realiza colocando la palabra primary key como
nombre de campo, seguida de los campos que
forman la clave entre parntesis. Ejemplo:
mysql> create table pieza (codigo1 varchar(5),
->codigo2 int(2), peso int,
->descripcion text,
->primary key (codigo1, codigo2);

Comandos
Estructura de las tablas:
El comando describe seguido del nombre de una tabla, nos
permite ver la estructura completa de una tabla. Ejemplo:
mysql> describe personas;
+-----------+-------------+------+-----+---------+-------+
| Field| Type| Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| nombre| varchar(30) | YES || NULL||
| apellido1 | varchar(30) | YES || NULL||
| apellido2 | varchar(30) | YES || NULL||
| telefono | varchar(9) | YES || NULL||
+-----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

Tipos de datos
Numricos
Tipo
TINYINT
SMALL INT
MEDIUM INT
INT

Espacio
1 byte
2 bytes
3 bytes
4 bytes

Rango
-128 a 127
-32768 a 32767
-8388608 a 8388607
-2147483648 a 2147483647

Texto
Tipo

Espacio

Tamao mximo

CHAR(X)
VARCHAR(X)
TINYTEXT
TINYBLOB
TEXT
BLOB
MEDIUMTEXT
MEDIUMBLOB
LONGTEXT
LONGBLOB

X bytes
X+1 byte
X+1 byte
X+1 byte
X+2 bytes
X+2 bytes
X+3 bytes
X+ 3bytes
X+4 bytes
X+4 bytes

255 bytes
255 bytes
255 bytes
255 bytes
65535 bytes
65535 bytes
1,6 MB
1,6 MB
4,2 GB
4,2 GB

rango sin signo


0 a 255
0 a 65535
0 a 16777215
0 a 4294967295

Los que ms se
usan son CHAR y
VARCHAR. Los
CHAR
almacenan
tamao fijo y
VARCHAR
optimiza tamao
variable.

Tipos de datos
Lgicos
Son los tipos BIT o BOOL que admiten los valores 0 o 1.
Fechas
Tipo

Rango

Del 1 de enero de 1001 al


31/12 del 9999
De las 0 horas del 1/1/1001 a las
DATETIME 0 horas del
31/12/9999
De las 0 horas del 1/1/1970
a las 0 horas del
31/12/2037
DATE

TIMESTAMP

TIME

Una hora en formato


HH:MM:SS

YEAR

Ao desde 1901 a 2037

Formato
ao-mes-da
Ao-mes-da
horas:minutos:segundos
Ao-mes-da
horas:minutos:segundos
Permite estos tamaos:
14 (aaaammddhhmmss)
12 (aaaammddhhmm)
8 (aaaammdd)
6 (aammdd)
4 (aamm)
2 (aa)

Operaciones con
tablas

Modificar tablas
Es el comando alter table el encargado. Con el atributo
change modifica un campo.
mysql>alter table personas change nombre
varchar(20);

nombre

En el ejemplo el nombre pasa a tener tamao 20.


Con el atributo rename cambia de nombre una tabla.
mysql>alter table personas rename clientes;

Operaciones con
tablas
Borrar tablas
Se usa la sintaxis:
drop table seguida del nombre de la tabla.
Borrar columnas
La sintaxis es:
alter table tabla drop columnaABorrar;
Aadir columnas
Se usa:
alter table tabla add nuevaColumna Tipo...;

Introducir datos en
una tabla
Hay dos mtodos.
El comando insert into
Permite aadir datos manualmente a una tabla. Ejemplo:
mysql> insert into personas values('Pedro',
->'Hernndez','Crespo','979898989');
Query OK, 1 row affected (0.00 sec)
El orden de los datos debe corresponder con el de los
campos de la tabla. Tambin se puede indicar los campos:
mysql> insert into personas (nombre,apellido1,apellido2)
-> values ('Pedro','Hernndez',"crespo");
En ese caso la columna del telfono tomara el valor null
indicando que est vaco.

Introducir datos en
una tabla
Insertar datos en una tabla desde un archivo externo
Otra manera ms poderosa es utilizar un archivo externo
en el que se colocan los datos de la tabla. En ese
archivo, cada registro se separa con un carcter concreto
(que suelen ser los caracteres \r \n, resultado de la tecla
intro). A su vez en el mismo registro, cada campo se
separa con otro carcter (coma por ejemplo) y los valores
de los campos podran ir delimitados con otros caracteres
(como las comillas).
Para conseguir los datos en este formato, se pueden
colocar a mano, o bien se pueden crear a travs de
software especial que consiga colocar registros en este
formato (programas como Excel, Access u otros muchos
poseen herramientas para realizar estas operaciones.

Introducir datos en
una tabla
Una vez creado el archivo, desde MySQL se
podra usar el comando load data:
load data local infile "ruta" into table tabla;
Ejemplo:
mysql>load data infile
->C:\\mysql\data\prueba\texto.txt
->into table personas;
La ruta es la ruta completa al archivo de texto que
posee los datos. La tabla es la tabla a la cual se
desean aadir dichos datos. Para que esta
instruccin funcione correctamente, el orden de los
campos en la tabla debe ser el mismo que en el
archivo.

Consultas
Obtener registros. select
Esta instruccin permite realizar consultas sobre la base
de datos. El formato bsico de la instruccin es:
select ListaDecampos from tablas where condicin;
Para seleccionar todos los datos se usa el campo
especial * y sirve para representar todos los campos
de una tabla.
select * from personas;
muestra todos los campos de la tabla personas.

Consultas
Para seleccionar campos concretos se puede usar:
select nombre, apellido1, apellido2 from personas;
Uso de condiciones:
Where de la instruccin select nos permite poner
una condicin de modo que slo aparezcan en la
consulta los registros que cumplan la condicin.
(Se pueden utilizar operadores de comparacin).
select nombre, apellido1, apellido2 from personas
where edad=25;

Consultas
Tambin se pueden realizar consultas con el operador
OR o AND:
select nombre, apellido1, apellido2
from personas
where (edad>25 AND edad<50);

You might also like