Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modulo 1 Bases de Datos
Modulo 1 Bases de Datos
asignatura
Créditos 3 créditos
académicos de la
asignatura
Número y Nombre Módulo 1: Conceptos básicos de bases de datos
del módulo
Autor del Isabel Viviana Marrugo Martinez
contenido (Isabel.marrugo@umb.edu.co)
INTRODUCCION
Por otro lado, en 1963 se mencionó por primera vez el término bases de datos, en un
Simposio Celebrado en California y en 1970 el científico Ingles Edgar Codd expuso el
modelo relacional y una serie de reglas para los sistemas relacionales, a través de su
artículo “Un modelo relacional de datos para grandes bancos compartidos”. Esto dio
paso al surgimiento de la segunda generación de Motores de bases de datos; en la
década de 1970 con Oracle, en la década de 1980 con SQL y en 1990 con Access de
Microsoft.
COMPETENCIAS DEL MODULO
ESTRUCTURA TEMATICA
INTRODUCCION ............................................................................................................. 1
COMPETENCIAS DEL MODULO ................................................................................... 2
ESTRUCTURA TEMATICA ............................................................................................ 2
4. IDEOGRAMA ............................................................................................................ 4
5. BASES DE DATOS .................................................................................................. 4
5.1 ¿Qué son las bases de datos? ............................................................................... 4
5.2 Estructura de una base de datos ........................................................................... 5
5.2.1 Campos ................................................................................................................. 6
5.2.1.1 Campos primarios ............................................................................................. 6
5.2.1.2 Campos foráneos .............................................................................................. 7
5.2.2 Registro ................................................................................................................. 7
5.2.3 Dato........................................................................................................................ 7
5.3 Usuarios de una base de datos .............................................................................. 8
5.4 Seguridad de la base de datos ............................................................................... 9
6. SISTEMAS DE GESTION DE BASES DE DATOS ................................................ 11
6.1 Aplicaciones .......................................................................................................... 11
6.2 Funciones y responsabilidades de un DBA ........................................................ 12
6.3 Objetivos de los sistemas de gestión bases de datos ....................................... 14
7. SQL ......................................................................................................................... 15
7.1 Tipos de datos ....................................................................................................... 15
7.1.1 Tipos de datos carácter ..................................................................................... 15
7.1.2 Tipos de datos binarios ..................................................................................... 16
7.1.3 Tipos de datos fecha .......................................................................................... 16
7.1.3 Tipos de datos decimal ...................................................................................... 17
7.1.4 Tipos de datos punto flotante ........................................................................... 18
7.1.5 Tipos de datos entero ........................................................................................ 18
7.1.6 Tipo de datos monetario .................................................................................... 19
8. TABLAS .................................................................................................................. 20
8.1 Creación de tablas ................................................................................................ 20
8.1.1 Reestricciones .................................................................................................. 22
8.2 Modificación de tablas .......................................................................................... 23
8.2.1 Adicionar columna............................................................................................ 24
8.2.2 Borrar columna (DROP) ................................................................................... 24
8.2.3 Modificar el nombre de una columna (CHANGE)............................................. 25
8.2.4 Modificar el tipo de dato de un atributo (MODIFY) .......................................... 26
Para modificar el tipo de dato a un atributo, se debe emplear la siguiente sintaxis:
26
8.3 Borrado de tablas .................................................................................................. 26
Finalmente, para eliminar una tabla se digita la siguiente sintaxis: ....................... 27
9. EJERCICIOS DIDACTICOS ................................................................................... 28
10. GLOSARIO ............................................................................................................. 29
4. IDEOGRAMA
5. BASES DE DATOS
Para iniciar este curso y las temáticas que se van abordar en él, se hace necesario
definir el concepto de bases de datos.
Según (Reinosa, Maldonado, Muñoz, Damiano, & Abrutsky, 2012), una base de datos
es un conjunto de datos estructurados y definidos a través de un proceso especifico,
que busca evitar la redundancia, y que se almacenara en un medio de almacenamiento
masivo, con un disco.
Otra definición que se puede tomar es la plasmada por Manuel Angel Torres en su libro
SQL Server 2012, en la cual afirma que, una base de datos es un sistema informático
compuesto por un conjunto de información relacionada a una temática particular que
suministra un fundamento para llevar a cabo ciertos procedimientos, como; consulta,
inserción, recuperación, entre otros.
Una base de datos recopila cientos o miles de datos de forma estructurada, bajo unos
parámetros definidos por un grupo de ingenieros y un grupo de usuarios finales, que
permite que la información se localice de forma rápida, que la información no se
duplique (redundancia), que la información sea segura y que se almacene para
posteriores consultas.
5.2.1 Campos
Representan los atributos de una entidad. Para el ejemplo anterior, los atributos son;
Código, Apellido, Nombre, Teléfono, Correo electrónico, Dirección y Semestre.
El campo primario es el valor que identificará a los registros, por lo general se identifica
de forma numérica para evitar errores de digitación y posterior búsqueda.
Los campos foráneos son los que unen a una entidad con otra entidad, formando una
extensión de la tabla fuente. Según (Torres, 2012) en una entidad se pueden tener
muchos campos claves, si consideramos que toda entidad tiene un campo clave, el
foráneo se enlazara justamente con este campo.
5.2.2 Registro
5.2.3 Dato
Es un valor dentro de la tabla que por sí solo no representa nada, y que requiere de una
asociación con el campo primario para tener alguna validez.
La etapa de diseño de bases de datos inicia con dos actores principales, el usuario final
y el grupo de ingenieros que hara la ingenieria de requerimientos para el diseño de la
base de datos.
En principio los usuarios finales hacen un listado de todas las cosas que se deben
incluir en un sistema de informacion, muchos de los aspectos escensiales del sistema
no seran contemplados en un principio, pero luego en la etapa de puesta en marcha del
sistema se iran incluyendo y perfeccionando todos estos aspectos.
Del levantamiento de informacion que haga en esta primera etapa los ingenieros de
requerimientos dependera el éxito o fracaso de esta base de datos, por esto, es
importante estar atentos a cualquier aspecto que mencione el usuario final.
Según (Reinosa, Maldonado, Muñoz, Damiano, & Abrutsky, 2012) la base de datos mas
segura es aquella que no tiene usuarios, pero esta situacion carece de sentido, por esta
razon se debe llegar a un balance entre el permiso de acceso a los usuarios y el control
de lo que se les permite hacer cuando establecen una sesion a traves de una conexión.
Basado en los RFC 2196 y 1244, (Cortelli, 2006) sugiere hacer un analisis de riesgos
puntual para la compañía en la cual se trabaja el sistema de informacion y con base en
eso crear un plan de seguridad y un plan de contingencia que permita a la empresa
desarrollar sus actividades normales sin ninguna afectacion. Véase la ilustración 5.
Por ultimo, se encuentra el plan de seguridad en el cual se debe dejar plasmado los
aspectos que debe contemplar el usuario al momento de acceder a la informacion del
sistema para que no ponga en peligro la seguridad e integridad de la informacion. El
plan de contingencia hace referencia a las medidas que se toman para garantizar
continuidad en el acceso a la informacion.
Algunos de los aspectos que se deben considerar para brindar seguridad a las bases
de datos, son:
o DCL o Lenguaje de control de datos: Según (Torres, 2012) son ordenes que se
utilizan para implementar seguridad en la base de datos, como por ejemplo
indicar que privilegios –insertar, modificar,etc.- tiene cada usuario respecto a los
distintos objetos de la base de datos.
6.1 Aplicaciones
o Bancos: Los bancos utilizan estos sistemas para alojar información de los
clientes; cuentas bancarias, préstamos y transacciones en general.
o Aerolíneas: Las aerolíneas utilizan los DBMS para consultar frecuencia y horarios
de vuelos, hacer reservas y vender tiquetes de vuelos.
o Universidades: Las instituciones educativas utilizan estos sistemas para ingresar,
modificar y consultar información de estudiantes y/o docentes, cursos, horarios,
información financiera, etc.
o Telecomunicaciones: En el área de telecomunicaciones, se utilizan las bases de
datos para almacenar información de los usuarios, su localización e información
acerca de su disponibilidad, también para asignar o no minutos y/o Kbps de
acuerdo al uso que haya dado de los mismo en el periodo de facturación.
o Ventas: En el área de ventas de cualquier compañía se utilizan las bases de
datos para almacenar información de los clientes, productos y/o compras y
ventas que se hacen.
o Comercio en línea: En el comercio en línea las bases de datos se utilizan para
hacer seguimiento a los clientes y seguimiento a los pedidos web.
o Producción: En las áreas productivas de diversas empresas, las bases de datos
se emplean para mantener un control de la materia prima y de los elementos
finales creados.
o Recursos humanos: El área de recursos humanos de las compañías utiliza las
bases de datos para almacenar información de los empleados, salarios,
impuestos sobre sueldos, prestaciones sociales, etc.
Según (Torres, 2012) los objetivos fundamentales de los Sistemas de Gestion de Bases
de Datos son;
SQL brinda una serie de datos que permiten almacenar información, es importante
analizar previamente cada uno de estos datos y asignar el tipo correcto a la variable
que almacenara información.
Los datos en SQL se pueden clasificar en; caracteres, enteros, binarios, entre otros. A
continuación se hará una breve explicación de cada uno de estos tipos de datos.
Este tipo de datos contiene una combinación de letras, símbolos y número. Los datos
tipo carácter se puede clasificar en; Char, Varchar y Text.
Este tipo de dato almacena información alusiva a la fecha, partiendo de unos formatos
estándar preestablecidos. Los datos de tipo fecha se pueden clasificar en; DateTime,
SmallDateTime, DateTime2, Time, Date y DateTimeOffset.
Ilustración 8. Tipos de datos fecha
Este tipo de datos almacena información significativa luego del punto de un número
decimal. Los datos de tipo decimal se pueden clasificar en; Decimal y Numeric.
Los datos representados en la notación punto flotante son una forma de notación
científica muy utilizada en pequeños y grandes ordenadores, a través de la cual se
puede representar números reales muy grandes o muy pequeños de manera óptima
para el sistema el cual se esté utilizando. Este tipo de datos se puede clasificar en;
Float y Real.
Los datos tipo entero son aquellos que representan un subconjunto finito de números
enteros, siendo estos positivos o negativos. Este tipo de datos se puede clasificar en;
BigInt, Int, Smallint y Tinyint.
Ilustración 11. Tipo de datos entero
Este tipo de dato representa cantidades monetarias positivas y/o negativas, se puede
clasificar en; Money y SmallMoney.
Las tablas o entidades son objetos compuestos de filas y columnas que almacenan
informacion del mundo real en forma logica. En la tabla las caracteristicas de una
entidad estan representadas por columnas, mientras que las filas son los datos que se
ingresan para describir cada una de estas caracteristicas.
En todas las tablas se debe definir un campo llave el cual sera el encargado de
representar la tabla frente a las demas tablas y a su vez asociarlas.
Ejemplo: Se desea crear una tabla que almacene los datos personales de los
estudiosos del programa Ingenieria de software de la UMB Virtual.
Como primera medida se define el nombre de la tabla, el cual debe ser afin al proceso
que estamos elaborando, en este caso la tabla se denominara estudiosos.
o Nombre
o Cedula de ciudadania
o Telefono fijo
o Telefono movil
o Correo electronico
o Usuario en facebook
o Usuario en twitter
Una vez se tenga claro los atributos que se van a incluir en la tabla, se debe determinar
el tipo de dato declarado para cada uno de estos atributos, para esto se pueden remitir
al apartado 7.1.
o Nombre: Teniendo en cuenta que no se puede decir que el numero de caracteres
de los nombres de todos los estudiosos es de 30, 40 o 50, ya que todos tienen
diferentes nombres y apellidos se puede decir que es una variable tipo
VARCHAR y que almacenara un máximo de 60 caracteres.
o Telefono movil: Al igual que para el atributo telefono fijo, se puede definir como
Int o Varchar, de acuerdo a las condiciones de la entrada de la informacion.
8.1.1 Reestricciones
Las reestricciones se aplican para dar consistencia al valor que se registrara en cada
una de las columnas, algunas de ellas son;
PRIMARY KEY: Todas las tablas contienen una llave primaria y esta corresponde al
campo con el que se va a identificar los datos de los registros de una tabla. Por
ejemplo, en el caso de la tabla de estudiosos la llave primaria es la cedula de
ciudadania, ya que es posible que varios estudiosos tengan el mismo nombre o tal vez
los mismos apellidos, pero el documento de identidad es unico y es el cual lo identifica
dentro de la tabla y el sistema.
FOREIGN KEY: La llave foranea, es la misma llave primaria de la tabla estudiosos pero
actuando en otra tabla, por ejemplo en la tabla pagos. Vease la creacion de la tabla
pagos.
NOT NULL: Esta reestriccion permite definir un campo como obligatorio, al colocar a un
atributo la reestriccion NOT NULL el sistema no permite dejar este campo en blanco.
Para el ejemplo que se esta manejando de la tabla de estudiosos, es indispensable
tener el correo electronico del estudioso, ya que de otra forma no se le puede asociar
un perfil a la plataforma. La definicion de un campo como NOT NULL se hace de la
siguiente manera.
Luego de crear las tablas, posiblemente se deba cambiar la estructura de las mismas,
para esto se recurre al comando ALTER TABLE.
Las situaciones más frecuentes en las cuales se hace necesario cambiar la estructura
de las tablas son;
Para adicionar una columna en determinada tabla, debe ejecutar el siguiente comando:
Para modificar el nombre de una columna de una tabla en mysql se debe ingresar la
siguiente sintaxis:
Ejemplo: Se desea cambiar en la tabla estudiosos1 el tipo de datos del atributo teléfono
de carácter a entero. Reemplazando los valores en la sintaxis anterior, se obtiene el
siguiente comando.
SQL permite eliminar tablas que fueron creadas con anterioridad, esto se hace
mediante el uso del siguiente comando:
Para eliminar una tabla en MySQL, es necesario definir la base de datos donde se
encuentra y posteriormente eliminarla. Para definir la base de datos en donde se está
trabajando la tabla, se usa el siguiente comando:
USE <nombre_base_datos>;
Luego se valida que la tabla exista dentro de la base de datos elegida, esto se hace
mediante el siguiente comando:
SHOW TABLES;
Como primera medida se debe seleccionar la base de datos umbvirtual, a través del
comando use umbvirtual; , luego se debe solicitar el listado de las tablas existentes en
esta base de datos a través del comando show tables; , y por último se elimina la tabla
haciendo uso del siguiente comando drop table estudiosos.
2. Plantee en un notepad las sentencias que utilizaría para ejecutar los siguientes
ejercicios en SQL.
2.1 Hamburguesas Presto S.A, requiere incorporar a su base de datos una tabla
que incluya todos los datos de sus clientes. Una vez cree la tabla, haga los
siguientes ajustes;
2.2 Crear una tabla que le permita almacenar las notas de tercer semestre del
programa Ingenieria de software de todos los estudiosos.
Índices: Un índice es una estructura de una base de datos que permite mejorar la
velocidad de las operaciones a través de un identificador único de cada fila de la tabla.
Vistas: Según (Wikipedia, 2013), una vista es una consulta accesible como una tabla
virtual en una base de datos relacional o en un conjunto de documentos en una base de
datos orientada a documentos.
BIBLIOGRAFIA
Reinosa, E., Maldonado, C. A., Muñoz, R., Damiano, L. E., & Abrutsky, M. A. (2012).
Bases de datos. Bogota: Alfaomega Colombiana S.A.
Roldán, D., Valderas, P., & Martinez, E. (2011). Oracle Guía básica. España: Ediciones
de la U.
Silberschatz , A., Korth, H., & Sudarshan, S. (2006). Fundamentos de bases de datos
(5a. ed.). España: McGraw-Hill España .
WEBGRAFIA
http://es.wikipedia.org/wiki/Imprenta
http://es.wikipedia.org/wiki/Anexo:Historia_de_la_computación
http://msdn.microsoft.com/es-es/library/ms179882.aspx
http://www.iso27000.es/download/ISO-27001_Los-controles_Parte_I.pdf
http://carlosjacobo.wordpress.com/sgbd-comerciales/
http://dev.mysql.com/doc/refman/5.0/es/innodb-foreign-key-constraints.html
http://office.microsoft.com/es-hn/access-help/crear-una-restriccion-adp-
HP003088257.aspx
http://www.1keydata.com/es/sql/sql-create-table.php
http://es.wikipedia.org/wiki/Vista_(base_de_datos)