You are on page 1of 119

Recopilacin de Base de Datos

Manual de BASE DE DATOS 1


DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
OBJET!O "E#ERA$ DE$ %&RSO
EL ALUMNO RESOLVER PROBLEMAS Y TENDR UN PANORAMA GENERAL DE LOS CONCEPTOS ESENCALES Y MODELOS
PRNCPALES DE BASES DE DATOS.
SUSTENTADO EN LAS NVESTGACONES DE UN CASO PRCTCO DE UNA EMPRESA O NSTTUCN, ANALZAR EL ENTORNO Y
DETERMNAR LAS NECESDADES OPERATVAS DEL MANEJO DE NFORMACN Y CON ESTOS ELEMENTOS APLCAR LOS
MTODOS DE DSEO PROPOS DEL MODELO RELACONAL EN LA ESTRUCTURACN DE UNA BASE DE DATOS DESARROLLADA EN
ACCESS DE MS- OFFCE COMO SOLUCN A LAS NECESDADES PLANTEADAS.
n'. Antonio Ja(ie) Medina *e)n+nde, Bilo'a $eticia Sil(a $pe, n'. Raul An'el A)ellano To))es
DRECTOR DEL PLANTEL JEFE DEL DEPTO. SERVCOS DOCENTES PRESDENTE DE ACADEMA
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
UNDAD: UNO .
OBJET!O -ART%&$AR DE $A &#DAD
AL TRMNO DE LA UNDAD, EL ALUMNO DESCRBR LOS CONCEPTOS FUNDAMENTALES ACERCA DE SSTEMAS DE NFORMACN
Y BASES DE DATOS E DENTFCARA SUS CARACTERSTCAS. EXPLCARA LA ARQUTECTURA DE UN SSTEMA DE BASES DE DATOS.
n'. Antonio Ja(ie) Medina *e)n+nde, Bilo'a $eticia Sil(a $pe, n'. Raul An'el A)ellano To))es
DRECTOR DEL PLANTEL JEFE DEL DEPTO. SERVCOS DOCENTES PRESDENTE DE ACADEMA
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
OBJET!O -ART%&$AR DE $A &#DAD
&#DAD TEMA. OBJET!OS ES-E%/%O0S1 TE% MET * DD
1.1
1.2
1.3
1.4
1.4.1
1.4.2
1.4.3
1.5
1.6
1.7
1.8
1.9
1.1 SSTEMA DE NFORMACON CONCEPTO Y
EVOLUCON HSTORCA
1.2 DEFNCN Y CONCEPTO DE BASES DE
DATOS Y MANEJADORE DE BASE DE DATO
1.3 OBJETVOS E MPORTANCA DE LOS SSEMAS
DE BASES DE DATOS
1.4 MODELOS DE BASES DE DATOS
1.4.1 JERARQUCO
1.4.2 DE RED
1.4.3 RELACONAL
1.5 ARQUTECTURA DE UN SSTEMA DE BASE DE
DATOS
1.6 NSTANCAS Y ESQUEMAS
1.7 ENTDADES Y ATRBUTOS
1.8 ESQUEMAS Y SUBESQUEMAS
1.9 NDEPENDENCA DE LOS DATOS
EL ALUMNO MEMORZARA QUE ES UN SSTEMA DE NFORMACN COMO CONCEPTO, A
DEMS DE LA EVOLUCN DE ESTOS EN LA HSTORA PREVA CLASE TEORCA E
NVESTGACON EXTRACLASE, ASSTDA POR EL MAESTRO, SN ERROR.
EL ALUMNO MEMORZARA QUE ES UNA BASE DE DATOS AS COMO UN MANEJADOR DE
BASE DE DATOS PREVA CLASE TEORCA, SN ERROR
EL ALUMNO RECORDARA LA MPORTANCA DE LOS SSTEMAS DE BASES DE DATOS EN LA
ACTUALDAD, AS COMO SU OBJETVO PRMORDAL PREVA CLASE TEORCA, SN ERROR.
EL ALUMNO MEMORZARA LOS TRES TPOS DE MODELOS DE BASES DE DATOS EL
JERRQUCO EL DE RED Y EL RELACONAL, PREVA CLASE TEORCA, SN ERROR.
-EL ALUMNO MEMORZAR LAS CARACTERSTCAS DEL MODELO JERARQUCO PREVA
CLASE TEORCA SN ERROR.
-EL ALUMNO MEMORZARA LAS CARACTERSTCAS BSCAS DEL MODELO DE RED PREVA
CLASE TEORCA SN ERROR.
-EL ALUMNO MEMORZARA LAS CARACTERSTCAS BSCAS DEL MODELO RELACONAL
PREVA CLASE TEORCA SN ERROR.
-EL ALUMNO MEMORZARA LA ARQUTECTURA DE UN SSTEMA DE BASE DE DATOS,
PREVA EXPLCACON DEL MAESTRO, SN ERROR.
-EL ALUMNO RECORDARA LOS CONCEPTOS DE NSTANCAS Y ESQUEMAS PREVA CLASE
TORCAO PRCTCA, SN ERROR.
-EL ALUMNO RECORDARA COMO EL SGNFCADO DE ENTDAD Y ATRBUTO E DENTFCAR
ENTDADES Y LOS ATRBUTOS PARA LA OBTENCON DE BASE DE DATOS, PREVA
CLASETEORCA Y PRCTCA, SN ERROR.
-EL ALUMNO MEMORZARA LOS TERMNO DE ESQUEMA Y SUBES QUEMA Y SU
UTLZACN PREVA CLASE TOERCO PRCTCA CON UN ERROR EN UNA REL. DE 5.
EL ALUMNO RECORDAR LA MPORTANCA DE LA NDEPENDENCA DE LOS DATOS EN UNA
BD. PREVA EXPLCACON DEL PROFESOR, SN ERROR.
TE
TE
TE
TE
TE
TE
TE
TE
TE
TE
TE
M,MD
M,MD
M,MD
M,MD
M,MD
M,MD
M,MD
M,MD
M,MD
M,MD
M,MD
HP
HP
HP
HP
HP
HP
HP
HP
HP
HP
HP
n'. Antonio Ja(ie) Medina *e)n+nde, Bilo'a $eticia Sil(a $pe, n'. Raul An'el A)ellano To))es
DRECTOR DEL PLANTEL JEFE DEL DEPTO. SERVCOS DOCENTES PRESDENTE DE ACADEMA
SMBO$O"A
TE%#%A 0TE%1 METODO$O"A 0MET1 *ERRAME#TA DDA%T%A 0*DD1
TE E2-OST!A #ARRAT!A M #D&%T!A *- -3ARRO#
T- -A#E$ MD DED&%T!A *R ROTA/O$O
TM MESA REDO#DA M% %E#T/%O *A A&DO!S&A$ES E #/ORMAT%A
T$ $E%T&RA %OME#TADA M/ /$OSO/%O *RE RE!STAS0*EMEROTE%A1
T% %ASO DE EST&DO *D DO%&ME#TA$ES0!DEOTE%A1
T/ /ORO
T$$ $$&!A DE DEAS
T%O %ORR$$OS
TD DEMOSTRAT!A
UNDAD: DOS .
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
OBJET!O -ART%&$AR DE $A &#DAD
AL TRMNO DE LA UNDAD, EL ALUMNO MODELARA LA NFORMACN REQUERDA PARA UNA BASE DE DATOS, UTLZANDO
ELEMENTOS GRFCOS PARA ELABORAR DAGRAMAS QUE REPRESENTEN A LOS MODELOS CONCEPTUALES DE BASES DE DATOS.
DESCRBR LAS CARACTERSTCAS Y BONDADES DE LOS DAGRAMAS ENTDAD RELACN, DESARROLLAR UN EJEMPLO Y LO
CONVERTR A TABLAS, APLCANDO LAS ESPECFCACONES TCNCAS APRENDDAS
n'. Antonio Ja(ie) Medina *e)n+nde, Bilo'a $eticia Sil(a $pe, n'. Raul An'el A)ellano To))es
DRECTOR DEL PLANTEL JEFE DEL DEPTO. SERVCOS DOCENTES PRESDENTE DE ACADEMA
OBJET!O -ART%&$AR DE $A &#DAD
&#DAD TEMA. OBJET!OS ES-E%/%O0S1 TE% MET * DD
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
2.1
2.2
2.3
2.4
2.5
2.6
2.1 ETDADES, ATRBUTOS Y RELACONES
2.2 CARDNALDAD DE MAPEO
2.3 LLAVE PRMARA O CLAVE PRNCPAL
2.4 DAGRAMA E-R
2.5 REDUCCON DE LOS DAGRAMAS E-R A
TABLAS
2.6 GENERALZACON Y ESPECALZACON
-EL ALUMNO MEMORZARA LOS CONCEPTOS DE ENTDA, ATRBUTO YR ELACONES
MEDANTE LA PRACTCA EN EL USO DE U EJERCCOS, PREVA EXPLCACON DEL
MAESTRO, SN ERROR.
-EL ALUMNO MEMORZARA EL CONCEPTO DE CARDNALDAD DE MAPEO AS COMO
LA APLCACN DE ESTE EN LA CREACN DE BASES DE DATOS, PREVA PRCTCA
ASSTDA POR EL MAESTRO , SN ERROR.
-EL ALUMNO APRENDER LA MPORTANCA DE LA LLAVE PRMARA O CLAVE
PRNCPAL DENTRO DEL ENTORNO DE LAS TABLAS, PREVA CLASE TERCO
PRCTCA, SN ERROR
-EL ALUMNO ENTENDERA Y REALZARA DAGRAMAS ENTDAD RELACN, PREVA
EXPCACON DEL MAESTRO Y PRCTCA EXTRACLASE, SN ERROR.
EL ALUMNO EMPLEARA LA REDUCCN DE LOS DAGRAMAS ENTDAD RELACN A
TABLAS PREVA CLASE TEORCA Y EJERCCOS EXTRACLASE ASSTDOS POR EL
PROFESOR, SN ERROR .
EL ALUMNO EMPLEARA LOS CONCEPTOS DE GENERALZACN Y ESPECALZACN,
DESPUES DE UNA CLASE TEORCA Y EJERCCOS PRACTCOS ASSTDOS POR EL
PROFESOR, SN ERROR
TE,TD
TE,TD
TE,TD
TE,TD
TE,TD
TE,TD
M,MD
M,MD
M,MD
M,MD
M,MD
M,MD
HP
HP
HP
HP
HP
HP
n'. Antonio Ja(ie) Medina *e)n+nde, Bilo'a $eticia Sil(a $pe, n'. Raul An'el A)ellano To))es
DRECTOR DEL PLANTEL JEFE DEL DEPTO. SERVCOS DOCENTES PRESDENTE DE ACADEMA
SMBO$O"A
TE%#%A 0TE%1 METODO$O"A 0MET1 *ERRAME#TA DDA%T%A 0*DD1
TE E2-OST!A #ARRAT!A M #D&%T!A *- -3ARRO#
T- -A#E$ MD DED&%T!A *R ROTA/O$O
TM MESA REDO#DA M% %E#T/%O *A A&DO!S&A$ES E #/ORMAT%A
T$ $E%T&RA %OME#TADA M/ /$OSO/%O *RE RE!STAS0*EMEROTE%A1
T% %ASO DE EST&DO *D DO%&ME#TA$ES0!DEOTE%A1
T/ /ORO
T$$ $$&!A DE DEAS
T%O %ORR$$OS
TD DEMOSTRAT!A
UNDAD: TRES .
OBJET!O -ART%&$AR DE $A &#DAD
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
AL CONCLUR LA UNDAD, EL ALUMNO DESCRBR LAS CARACTERSTCAS PRNCPALES DEL MODELO RELACONAL.
PLANTEARA EL DSEO CONCEPTUAL DE LA BASE DE DATOS EN EL MODELO E-R, AS MSMO CREARA CONSULTAS EN TERMNO DE
ALGEBRA RELACONAL Y SQL EN ACCESS
n'. Antonio Ja(ie) Medina *e)n+nde, Bilo'a $eticia Sil(a $pe, n'. Raul An'el A)ellano To))es
DRECTOR DEL PLANTEL JEFE DEL DEPTO. SERVCOS DOCENTES PRESDENTE DE ACADEMA
OBJET!O -ART%&$AR DE $A &#DAD
&#DAD TEMA. OBJET!OS ES-E%/%O0S1 TE% MET * DD
3.1
3.2
3.1 ESTRUCTURA DE BASE DE DATS
RELACONALES
3.2 ENUNCADOS RELACONALES
-EL ALUMNO APRENDER COMO ES LA ESTRUCTURA DE UNA B.D RELACONAL, PREVA
CLASE TEORCA , SN ERROR.A
-EL ALUMNO RECORDAR LOS ENUNCADOS RELACONALES, PREVA CLASE PRACTCA Y
M,MD
M,MD
HP
HP
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
3.3
3.4
3.4.1
3.4.2
3.5
3.6
3.7
3.8
3.9
3.9.1
3.3 OPERADORES RELACONALES
3.4 ALGEGRA RELACONAL
3.4.1 OPERADORES RELACONALES BASCOS
3.4.2 EJEMPLO DE ACCESOS A BASES DE
DATOS RELACONALES
3.5 SQL (METODOLOGA)
3.6 CORRESPONCENCA CON EL MODELO DE
DATOS E-R
3.7 DEPENDENCA FUNCONAL
3.8 NTEGRDAD REFERENCAL
3.9 NORMALZACON
3.9.1 SEGURDAD E NTEGRDAD
TEORCA, CON UN NVEL DE EFCENCA DEL 90%.
-EL ALUMNO APRENDER LOS OPERADORES RELACONALES Y SU SGNFCADO AS
COMO SU APLCACN, PREVA CLASE PRACTCA, SN ERROR.
-EL ALUMNO MEMORZAR LA FUNCN Y SNTAXS DEL ALGEBRA RELACONAL PREVA
CLASE PRACTCA, SN ERROR.
EL ALUMNO PRACTCARA EL USO DE LOS OPERADORES RELACONALES MS
MPORTANTE, PREVA CLASE TEORCO PRACTCA, SN ERROR.
EL ALUMNO APRENDER MEDANTE EJEMPLOS EL ACCESO A BASES DE DATOS
RELACONALES, PREVA CLASE PRACTCA SN ERROR.
EL ALUMNO APRENDER QUE ES SQL, SUS SNTAXS Y EL USO TAN MPORTANTE QUE
TENE ESTE HOY EN DA, PREVA CLASE TEORCA, SN ERROR.
EL ALUMNO APRENDER LO QUE ES LA CORRESPONDENCA CON EL MODELO DE E-R,
PREVA CLASE TEORCA, PRACTA, CON UN NVEL DE EFCENCA DEL 90%.
EL ALUMNO RECORDAR EL SGNFCADO DE DEPENDENCA FUNCONAL Y COMO SE
APLCA ESTA, PREVA CLASE TEORCO PRACTCA, CON UN NVEL DE EFCENCA DEL 90%..
EL ALUMNO RECORDAR EL SGNFCADO DE NTEGRDAD REFERENCAL Y SU
APLCACN, PREVA CLASE TEORCO, PRACTCA SN ERROR..
EL ALUMNO ENTENDER EL PROCESO DE NORMALZACN, AS COMO EL SGNFCADO Y
APLCACN DE CADA UNA DE SUS ETAPAS, PREVA CLASE TEORCO PRACTCA, CON UN
NVEL DE EFCENCA DEL 90%.
EL ALUMNO COMPRENDER LA MPORTANCA DE LA SEGURDAD E NTEGRDAD DE UNA
BASE DE DATOS, PREVA EXPLCACON TEORCA POR PARTE DEL PROFESOR, CON
UNNVEL DE EFCENCA DEL 90%.
M,MD
M,MD
M,MD
M,MD
M,MD
M,MD
M,MD
M,MD
M,MD
M,MD
HP
HP
HP
HP
HP
HP
HP
HP
HP
HP
n'. Antonio Ja(ie) Medina *e)n+nde, Bilo'a $eticia Sil(a $pe, n'. Raul An'el A)ellano To))es
DRECTOR DEL PLANTEL JEFE DEL DEPTO. SERVCOS DOCENTES PRESDENTE DE ACADEMA
UNDAD: CUATRO .
OBJET!O -ART%&$AR DE $A &#DAD
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
AL CONCLUR LA UNDAD, EL ALUMNO UTLZARA EL SOFTWARE ACCESS DE MCROSOFT PARA DESARROLLAR UNA BASE DE DATOS
QUE RESPONDA A LAS NECESDADES DE UNA NSTTUCN O MCROEMPRESA DE ENTORNO NMEDATO CON LOS DFERENTES
TPOS Y ELEMENTOS QUE CONSTTUYEN UN MANEJADOR DE BASE DE DATOS.
n'. Antonio Ja(ie) Medina *e)n+nde, Bilo'a $eticia Sil(a $pe, n'. Raul An'el A)ellano To))es
DRECTOR DEL PLANTEL JEFE DEL DEPTO. SERVCOS DOCENTES PRESDENTE DE ACADEMA
OBJET!O -ART%&$AR DE $A &#DAD
&#DAD TEMA. OBJET!OS ES-E%/%O0S1 TE% MET * DD
4.1
4.2
4.1 CARACTERSTCAS DE ACCESO
4.2 CREACON Y EDCON DE UNA BASE DE
EL ALUMNO RECORDAR LOS PASOS NECESAROS PARA PODER ACCESAR AL
MANEJADOR DE BASE DE DATOS, PREVA CLASE PRACTCA, CON UN NVEL DE EFCENCA
DEL 90%
EL ALUMNO APLCAR LOS PASOS NECESAROS PARA CREAR Y EDTAR UN BASE DE
TE,TD
TE,TD
M,MD
M,MD
HP
HP
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
4.5
4.4
4.6
4.7
4.7
DATOS
4.3 CREAR, MODFCAR VSUALZAR E MPRMR
CONSULTAS
4.4 CREAR, MODFCAR, VSUALZAR E MPRMR
FORMULAROS
4.5 CREAR, MOFFCAR, VSUALZAR E MPRMR
NFORMES
4.6 PROTECCON DE LAS BASES DE DATOS
4.7 FACTVLDAD DE CREACON DE DBMS CON
VSUAL BASC, USANDO UNA BASE DE DATOS DE
ACCES
DATOS EN EL MANEJADOR DE BASE DE DATOS, PREVA CLASE PRACTCA, CON UN NVEL
DE EFCENCA DEL 95%.
EL ALUMNO RECORDAR COMO CREAR, MODFCAR, VSUALZAR E MPRMR CONSULTAS,
PREVA CLASE TEORCO, PRACTCA, CON UN NVEL DE EFCENCA DEL 90%.
EL ALUMNO CREAR FORMULAROS, AS COMO MODFCARLOS, VSUALZARLOS E
MPRMRLOS, PREVA CLASE PRACTCA, SN ERROR.
EL ALUMNO SER CAPAZ DE CREAR NFORMES, AS COMO MODFCARLOS,
VSUALZARLOS E MPRMRLOS, PREVA CLASE TEORCO PRACTCA AS COMO TAREA
EXTRACLASE, CON UN NVEL DE EFCENCA DEL 90%.
EL ALUMNO RECORDAR COMO PROTEGER BASES DE DATOS, AS COMO LOS MTODOS
Y MANEJADORES UTLZADOS EN LA ACTUALDAD, PREVA CLAES TEORCA PRACTCA SN
ERROR.
EL ALUMNO CREAR UN SSTEMA NTEGRADO CON UNA BASE DE DATOS ACCESS, EN EL
CUAL PODR REALZAR UN ABCC, PREVA CLASE TEORCA, CON UN NVEL DE EFCENCA
DEL 90%..
TE,TD
TE,TD
TE,TD
TE,TD
TE,TD
M,MD
M,MD
M,MD
M,MD
M,MD
HP
HP
HP
HP
HP
n'. Antonio Ja(ie) Medina *e)n+nde, Bilo'a $eticia Sil(a $pe, n'. Raul An'el A)ellano To))es
DRECTOR DEL PLANTEL JEFE DEL DEPTO. SERVCOS DOCENTES PRESDENTE DE ACADEMA
SMBO$O"A
TE%#%A 0TE%1 METODO$O"A 0MET1 *ERRAME#TA DDA%T%A 0*DD1
TE E2-OST!A #ARRAT!A M #D&%T!A *- -3ARRO#
T- -A#E$ MD DED&%T!A *R ROTA/O$O
TM MESA REDO#DA M% %E#T/%O *A A&DO!S&A$ES E #/ORMAT%A
T$ $E%T&RA %OME#TADA M/ /$OSO/%O *RE RE!STAS0*EMEROTE%A1
T% %ASO DE EST&DO *D DO%&ME#TA$ES0!DEOTE%A1
T/ /ORO
T$$ $$&!A DE DEAS
T%O %ORR$$OS
TD DEMOSTRAT!A
1.1 Siste8a de in9o)8acin. concepto : e(olucin ;ist)ica.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
SSTEMA: Conjunto de partes que se relaiconan de manera uniforme para dar un resultado en comun.
#/ORMA%O#. La informacion es un conjunto de elementos tales como imgenes, sonidos y letras
o simbolos, ordenados de tal manera que tengan un sentido logico.
SSTEAM DE #/ORMA%O#.
TAREA 1. NVESTGAR LA EVOLUCON HSTORCA DE LOS SSTEMAS DE NFORMACON
TAREA 2: traer su propia definicion de sistema de informacion
1.2 De9inicin : concepto de <ases de datos : 8ane=ado)es de <ase de datos
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Definicin de Base de Datos
Todo buen curso necesita empezar con algunos conceptos bsicos para el mejor entendimiento del mismo, por lo
tanto empezaremos con las definiciones que involucran a las bases de datos.
Dato
Conjunto de caracteres con algn significado, pueden ser numricos, alfabticos, o alfanumricos.
n9o)8acin
Es un conjunto ordenado de datos los cuales son manejados segn la necesidad del usuario, para que un conjunto de
datos pueda ser procesado eficientemente y pueda dar lugar a informacin, primero se debe guardar lgicamente en
archivos.
Conceptos bsicos de archivos computacionales.
%a8po
Es la unidad ms pequea a la cual uno puede referirse en un programa. Desde el punto de vista del programador
representa una caracterstica de un individuo u objeto.
Re'ist)o
Coleccin de campos de iguales o de diferentes tipos.
A)c;i(o
Coleccin de registros almacenados siguiendo una estructura homognea.
Base de datos
Es una coleccin de archivos interrelacionados, son creados con un DBMS. El contenido de una base de datos
engloba a la informacin concerniente (almacenadas en archivos) de una organizacin, de tal manera que los datos estn
disponibles para los usuarios, una finalidad de la base de datos es eliminar la redundancia o al menos minimizarla. Los
tres componentes principales de un sistema de base de datos son el hardware, el software DBMS y los datos a manejar,
as como el personal encargado del manejo del sistema.
Siste8a Mane=ado) de Base de Datos. 0DBMS1
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Un DBMS es una coleccin de numerosas rutinas de software interrelacionadas, cada una de las cuales es
responsable de una tarea especfica.
El o<=eti(o p)i8o)dial de un siste8a Mane=ado) de <ase de datos es proporcionar un contorno que sea a la vez
conveniente y eficiente para ser utilizado al extraer, almacenar y manipular informacin de la base de datos. Todas las
peticiones de acceso a la base, se manejan centralizadamente por medio del DBMS, por lo que este paquete funciona
como interface entre los usuarios y la base de datos.
TAREA 5. #!EST"AR 5 DBMS > E#&MERAR S&S %ARA%TERST%AS. A*O#DAR E# E$ DBMS M>S?$.
Es@ue8a de <ase de datos.
Es la estructura por la que esta formada la base de datos, se especifica por medio de un conjunto de definiciones que
se expresa mediante un lenguaje especial llamado lenguaje de definicin de datos. (DDL)
Ad8inist)ado) de <ase de datos 0DBA1.
Es la persona o equipo de personas profesionales responsables del control y manejo del sistema de base de datos,
generalmente tiene(n) experiencia en DBMS, diseo de bases de datos, Sistemas operativos, comunicacin de datos,
hardware y programacin.
$os siste8as de <ase de datos se diseAan pa)a manejar grandes cantidades de informacin, la manipulacin de los
datos involucra tanto la definicin de estructuras para el almacenamiento de la informacin como la provisin de
mecanismos para la manipulacin de la informacin, adems un sistema de base de datos debe de tener implementados
mecanismos de seguridad que garanticen la integridad de la informacin, a pesar de cadas del sistema o intentos de
accesos no autorizados.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
&n o<=eti(o p)incipal de un siste8a de <ase de datos es proporcionar a los usuarios finales una visin abstracta de
los datos, esto se logra escondiendo ciertos detalles de como se almacenan y mantienen los datos.
Mane=ado) de Bases de Datos
El sistema manejador de bases de datos es la porcin ms importante del software de un sistema de base de datos.
Un DBMS es una coleccin de numerosas rutinas de software interrelacionadas, cada una de las cuales es responsable
de alguna tarea especfica.
$as 9unciones p)incipales de un DBMS son.
Crear y organizar la Base de datos.
Establecer y mantener las trayectorias de acceso a la base
de datos de tal forma que los datos puedan ser accesados
rpidamente.
Manejar los datos de acuerdo a las peticiones de los usuarios.
Registrar el uso de las bases de datos.
nteraccin con el manejador de archivos.
Esto a travs de las sentencias en DML al comando de el
sistema de archivos. As el Manejador de base de datos es el
responsable del verdadero almacenamiento de los datos.
Respaldo y recuperacin.
Consiste en contar con mecanismos implantados que
permitan la recuperacin fcilmente de los datos en caso
de ocurrir fallas en el sistema de base de datos.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Control de concurrencia.
Consiste en controlar la interaccin entre los usuarios
concurrentes para no afectar la inconsistencia de los datos.
Seguridad e integridad.
Consiste en contar con mecanismos que permitan el
control de la consistencia de los datos evitando que estos
se vean perjudicados por cambios no autorizados o previstos.
El DBMS es conocido tambin como Gestor de Base de datos.

La figura muestra el DBMS como interface entre la base de datos fsica y las peticiones del usuario. El DBMS
interpreta las peticiones de entrada/salida del usuario y las manda al sistema operativo para la transferencia de datos
entre la unidad de memoria secundaria y la memoria principal.
En s, un sistema manejador de base de datos es el corazn de la base de datos ya que se encarga del control total de
los posibles aspectos que la puedan afectar.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
1.5 O<=eti(os de los siste8as de <ases de datos.
Los objetivos principales de un sistema de base de datos es disminuir los siguientes aspectos:
Redundancia e inconsistencia de datos.
Puesto que los archivos que mantienen almacenada la informacin son creados por diferentes tipos de programas de
aplicacin existe la posibilidad de que si no se controla detalladamente el almacenamiento, se pueda originar un
duplicado de informacin, es decir que la misma informacin sea ms de una vez en un dispositivo de almacenamiento.
Esto aumenta los costos de almacenamiento y acceso a los datos, adems de que puede originar la inconsistencia de los
datos - es decir diversas copias de un mismo dato no concuerdan entre si -, por ejemplo: que se actualiza la direccin de
un cliente en un archivo y que en otros archivos permanezca la anterior.
Di9icultad pa)a tene) acceso a los datos.
Un sistema de base de datos debe contemplar un entorno de datos que le facilite al usuario el manejo de los mismos.
Supngase un banco, y que uno de los gerentes necesita averiguar los nombres de todos los clientes que viven dentro
del cdigo postal 78733 de la ciudad. El gerente pide al departamento de procesamiento de datos que genere la lista
correspondiente. Puesto que esta situacin no fue prevista en el diseo del sistema, no existe ninguna aplicacin de
consulta que permita este tipo de solicitud, esto ocasiona una deficiencia del sistema.
Aisla8iento de los datos.
Puesto que los datos estn repartidos en varios archivos, y estos no pueden tener diferentes formatos, es difcil escribir
nuevos programas de aplicacin para obtener los datos apropiados.
Ano8alBas del acceso concu))ente.
Para mejorar el funcionamiento global del sistema y obtener un tiempo de respuesta ms rpido, muchos sistemas
permiten que mltiples usuarios actualicen los datos simultneamente. En un entorno as la interaccin de
actualizaciones concurrentes puede dar por resultado datos inconsistentes. Para prevenir esta posibilidad debe
mantenerse alguna forma de supervisin en el sistema.
-)o<le8as de se'u)idad.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
La informacin de toda empresa es importante, aunque unos datos lo son ms que otros, por tal motivo se debe
considerar el control de acceso a los mismos, no todos los usuarios pueden visualizar alguna informacin, por tal motivo
para que un sistema de base de datos sea confiable debe mantener un grado de seguridad que garantice la
autentificacin y proteccin de los datos. En un banco por ejemplo, el personal de nminas slo necesita ver la parte de la
base de datos que tiene informacin acerca de los distintos empleados del banco y no a otro tipo de informacin.
-)o<le8as de inte')idad.
Los valores de datos almacenados en la base de datos deben satisfacer cierto tipo de restricciones de consistencia.
Estas restricciones se hacen cumplir en el sistema aadiendo cdigos apropiados en los diversos programas de
aplicacin.
1.4 Modelos de bases de datos
Modelos de datos.
Para introducirnos en este tema, empezaremos definiendo que es un modelo.
modelo:
Es una representacin de la realidad que contiene las caractersticas generales de algo que se va a realizar. En base
de datos, esta representacin la elaboramos de forma grfica.
C?uD es 8odelo de datosE
Es una coleccin de herramientas conceptuales para describir los datos, las relaciones que existen entre ellos,
semntica asociada a los datos y restricciones de consistencia.
Los modelos de datos se dividen en tres grupos:
Modelos lgicos basados en objetos.
Modelos lgicos basados en registros.
Modelos fsicos de datos.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Modelos l'icos <asados en o<=etos.

Se usan para describir datos en los niveles conceptual y de visin, es decir, con este modelo representamos los datos
de tal forma como nosotros los captamos en el mundo real, tienen una capacidad de estructuracin bastante flexible y
permiten especificar restricciones de datos explcitamente. Existen diferentes modelos de este tipo, pero el ms utilizado
por su sencillez y eficiencia es el modelo Entidad-Relacin.
Modelos l'icos <asados en )e'ist)os.
Se utilizan para describir datos en los niveles conceptual y fsico.
Estos modelos utilizan registros e instancias para representar la realidad, as como las relaciones que existen entre estos
registros (ligas) o apuntadores. A diferencia de los modelos de datos basados en objetos, se usan para especificar la
estructura lgica global de la base de datos y para proporcionar una descripcin a nivel ms alto de la implementacin.
Los tres modelos de datos ms ampliamente aceptados son:
Modelo Jerrquico
Modelo de Red
Modelo Relacional
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
1.4.1 Modelo Je)+)@uico
Es similar al modelo de red en cuanto a las relaciones y datos, ya que estos se representan por medio de
registros y sus ligas. La diferencia radica en que estn organizados por conjuntos de rboles en lugar de grficas
arbitrarias.



1.4.2 Modelo de red.
Este modelo representa los datos mediante colecciones de registros y sus relaciones se representan por medio de
ligas o enlaces,
los cuales pueden verse como punteros. Los registros se organizan en un conjunto de grficas arb itrarias.
Ejemplo:
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .

1.4.5 Modelo Relacional
En este modelo se representan los datos y las relaciones entre estos, a travs de una coleccin de tablas, en las
cuales los renglones (tuplas) equivalen a cada uno de los registros que contendr la base de datos y las columnas
corresponden a las caractersticas(atributos) de cada registro localizado en la tupla.
Considerando nuestro ejemplo del empleado y el artculo:
Tabla del empleado
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Ahora te preguntaras cmo se representan las relaciones entre las entidades en este modelo?
Existen dos formas de representarla; pero para ello necesitamos definir que es una llave primaria: Es un atributo el cual
definimos como atributo principal, es una forma nica de identificar a una entidad. Por ejemplo, el RFC de un empleado
se distingue de otro por que los RFC no pueden ser iguales.
Ahora si, las formas de representar las relaciones en este modelo son:
1. Haciendo una tabla que contenga cada una de las llaves primarias de las entidades involucradas en la relacin.
Tomando en cuenta que la llave primaria del empleado es su RFC, y la llave primaria del artculo es la
Clave.fundamentos

2. ncluyendo en alguna de las tablas de las entidades involucradas, la llave de la otra tabla.

DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
1.6A)@uitectu)a de un siste8a de <ase de datos
Un sistema de base de datos se encuentra dividido en mdulos, cada uno de los cuales controla una parte de la
responsabilidad total de sistema. En la mayora de los casos, el sistema operativo proporciona nicamente los servicios
ms bsicos y el sistema de la base de datos debe partir de esa base y controlar adems el manejo correcto de los datos.
As el diseo de un sistema de base de datos debe incluir la interfaz entre el sistema de base de datos y el sistema
operativo.
Los componentes funcionales de un sistema de base de datos, son:
Gestor de archivos.
Gestiona la asignacin de espacio en la memoria del disco y de las estructuras de datos usadas para representar
informacin.
Manejador de base de datos.
Sirve de interfaz entre los datos y los programas de aplicacin.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Procesador de consultas.
Traduce las proposiciones en lenguajes de consulta a instrucciones de bajo nivel. Adems convierte la solicitud
del usuario en una forma ms eficiente.
Compilador de DDL.
Convierte las proposiciones DDL en un conjunto de tablas que contienen metadatos, estas se almacenan en el
diccionario de datos.
Archivo de datos.
En l se encuentran almacenados fsicamente los datos de una organizacin.
Diccionario de datos.
Contiene la informacin referente a la estructura de la base de datos.
ndices.
Permiten un rpido acceso a registros que contienen valores especficos.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Una forma grfica de representar los componentes mencionados y la relacin que existe entre ellos sera la guiente.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
1.7 nstancias : es@ue8as.
Con el paso del tiempo la informacin que se va acumulando y desechando en la base de datos, ocasiona que est
cambie.
Denominamos:
nstancia.
Al estado que presenta una base de datos en un tiempo dado. Vemoslo como una fotografa que tomamos de la base
de datos en un tiempo t, despus de que transcurre el tiempo t la base de datos ya no es la misma.
Esquema.
Es la descripcin lgica de la base de datos, proporciona los nombres de las entidades y sus atributos especificando
las relaciones que existen entre ellos. Es un banco en el que se inscriben los valores que irn formando cada uno de los
atributos. El esquema no cambia los que varan son los datos y con esto tenemos una nueva instancia.
Ejemplo:
Considerando el ejemplo del vendedor que vende artculos, esquema e instancia segn nuestro ejemplo, quedara:
Esquema:
{Vendedor: Nombre, puesto, salario, RFC}
{Articulo: Clave, costo, descripcin}
nstancia:

Como podemos observar el esquema nos muestra la estructura en el cual se almacenaran los datos, en este caso en
registros cuyos nombres de campos son: por parte del vendedor (Nombre, puesto, salario, RFC) y por el artculo (Clave,
costo, descripcin); La instancia representa a una serie de datos almacenados en los registros establecidos por el
esquema, estos datos varan, no permanecen fijos en el tiempo.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
1.7 Entidades : at)i<utos
Entidades y conjunto de entidades

Una entidad es un objeto que existe y se distingue de otros objetos de acuerdo a sus caractersticas llamadas atributos.
Las entidades pueden ser concretas como una persona o abstractas como una fecha.

Un conjunto de entidades es un grupo de entidades del mismo tipo. Por ejemplo el conjunto de entidades CUENTA,
podra representar al conjunto de cuentas de un banco X, o ALUMNO representa a un conjunto de entidades de todos los
alumnos que existen en una institucin.

Una entidad se caracteriza y distingue de otra por los atributos, en ocasiones llamadas propiedades, que representan las
caractersticas de una entidad. Los atributos de una entidad pueden tomar un conjunto de valores permitidos al que se le
conoce como dominio del atributo. As cada entidad se describe por medio de un conjunto de parejas formadas por el
atributo y el valor de dato. Habr una pareja para cada atributo del conjunto de entidades.
Ejemplo:

Hacer una descripcin para la entidad alumno con los atributos No_control, Nombre y Especialidad.
Nombre_atributo, Valor
No_control , 96310418
Nombre , Snchez Osuna Ana
Esp , L
O considerando el ejemplo del Vendedor cuyos atributos son: RFC, Nombre, Salario.
Nombre_atributo, Valor
RFC , COMD741101YHR
Nombre , Daniel Coln Morales
Salario , 3000
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
1.8 es@ue8as : su<es@ue8as
El esquema de la base de datos.
Una vez construido el esquema conceptual, el diseo de bases de datos obliga a realizar varias tareas previas a la
construccin del esquema lgico global del sistema, tambin llamado esquema de bases de datos. Por el momento, basta
saber que el esquema de la base de datos representa la descripcin de los datos de la base de datos, mientras que el
esquema conceptual representaba a la realidad.
La primera de las tareas necesarias es la identificacin de los datos requeridos, para obtener como resultado las partes
del rea de aplicacin que deben representarse mediante datos, y en que forma deben presentarse stos a los usuarios.
El siguiente paso es el anlisis de datos, consistente en la definicin y clasificacin de esos datos, su descripcin, que
suele presentarse en forma de diccionario de datos, como una "metabase de datos".
Por ltimo, debe hacerse la especificacin de los paquetes de entrada y de salida, correspondientes con los datos que
deben introducir y obtener como respuesta los usuarios, segn sus necesidades. Las tres tareas habrn permitido
obtener tres documentos sobre descripcin del rea de aplicacin, definicin y clasificacin de los datos y especificacin
de las caractersticas de los diversos paquetes, respectivamente.
Tomando como punto de partida estos tres elementos, se construye la especificacin de esquema de la base de datos,
que responder al contenido total de la base de datos y las caractersticas de las vas de acceso requeridas a travs de
estos datos. Frente al anlisis de datos, que es la definicin y clasificacin de los datos, el esquema se encarga de la
utilizacin de esos datos.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
1.F independencia de los datos
Se refiere a la proteccin contra los programas de aplicacin que puedan originar modificaciones cuando se altera la
organizacin fsica o lgica de la base de datos. Existen 2 niveles de independencia de datos.
ndependencia fsica de datos:
Es la capacidad de modificar el esquema fsico sin provocar que se vuelvan a escribir los programas de
aplicacin.
ndependencia lgica de datos:
Capacidad de modificar el esquema conceptual sin provocar que se vuelvan a escribir los programas de
aplicacin.
PRMER ENTREGA DE PROYECTO
OBJETVO: EL ALUMNO SELECCONARA LA EMPRESA DE SU AGRADO Y
APLCARA LAS TECNCAS DE ANALSS Y DSEO PARA OBTENER
NFORMACON DE ESTA Y AS PODER REALZAR UN DSEO DE BASE DE
DATOS.CONTENDO: EL ALUMNO DEBERA ENTREGAR LA PRMER FACE
DEL ANALSS DEL SSTEMA, EL CUAL ESTA COMPUESTO POR LAS
SGUENTES ETAPAS:
1.-NVESTGACON PRELMNAR
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
2.-ESTUDOS DE FACTBLDAD (TECNCA, OPERACONAL Y ECONOMCA).
3.-ANALSS DE REQUERMENTOS.
+
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
UNDAD
2.1 EntidadG at)i<utoG )elacin

Entidad y atributo
Entidad: En una B.D se almacena informacin de una serie de objetos o elementos. Estos objetos reciben el nombre de
entidad. En el ejemplo de la Librera, libros, clientes y proveedores son entidades
Atributo: De cada entidad se almacenan una serie de datos que se denominan atributos de la entidad. Pueden ser
atributos de una entidad cualquier caracterstica o propiedad de sta. Son atributos de la entidad libros: Autor, Ttulo,
rea de Edicin, SBN
Relaciones: En una B.D se almacenan adems de las entidades, las relaciones existentes entre ellas. En el ejemplo de
la Librera hay relaciones entre: las entidades libros/clientes y las entidades libros/proveedores.
Tipo de relaciones:
Simples
Biunvocas: de Uno a Uno (1 a 1)
Complejas
De Uno a Muchos (1 a N)
De Muchos a Muchos (N a N)
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
2.2 %a)dinalidad de 8apeo
LA CARDNALDAD DE MAPEO ES LA FORMA EN QUE LAS ENTDADES SE RELACONAN UNAS
CON OTRAS. A LOS TPOS DE RELACONES ENTRE ENTDADES, SE LES LLAMA: LMTANTES
DE MAPEO.
Limitantes de mapeo.
Existen 4 tipos de relaciones que pueden establecerse entre entidades, las cuales establecen con cuantas entidades
de tipo B se pueden relacionar una entidad de tipo A:
Tipos de relaciones:
Relacin uno a uno.
Se presenta cuando existe una relacin como su nombre lo indica uno a uno, denominado tambin relacin de
matrimonio. Una entidad del tipo A solo se puede relacionar con una entidad del tipo B, y viceversa;
Por ejemplo: la relacin asignacin de automvil que contiene a las entidades EMPLEADO, AUTO, es una relacin 1 a
1, ya que asocia a un empleado con un nico automvil por lo tanto ningn empleado posee ms de un automvil
asignado, y ningn vehculo se asigna a ms de un trabajador.
Es representado grficamente de la siguiente manera:

DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
A: Representa a una entidad de cualquier tipo diferente
a una entidad B.
R: en el diagrama representa a la relacin que existe entre las entidades.
El extremo de la flecha que se encuentra punteada indica el uno de la relacin, en este caso, una entidad A ligada a una
entidad B.
Relacin uno a muchos.
Significa que una entidad del tipo A puede relacionarse con cualquier cantidad de entidades del tipo B, y una entidad
del tipo B solo puede estar relacionada con una entidad del tipo A.
Su representacin grfica es la siguiente:

Ntese en este caso que el extremo punteado de la flecha de la relacin de A y B, indica una entidad A conectada a
muchas entidades B.
Muchos a uno.
ndica que una entidad del tipo B puede relacionarse con cualquier cantidad de entidades del tipo A, mientras que cada
entidad del tipo A solo puede relacionarse con solo una entidad del tipo B.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Muchas a muchas.
Establece que cualquier cantidad de entidades del tipo A pueden estar relacionados con cualquier cantidad de
entidades del tipo B.

A los tipos de relaciones antes descritas, tambin se le conoce como cardinalidad.
La cardinalidad nos especifica los tipos de relaciones que existen entre las entidades en el modelo E-R y establecer
con estos, las validaciones necesarias para conseguir que los datos de la instancia (valor nico en un momento dado de
una base de datos) correspondan con la realidad.
Algunos ejemplos de cardinalidades de la vida comn pueden ser:
Uno a uno.
El noviazgo, el RFC de cada persona, El CURP personal, El acta de nacimiento, ya que solo existe un solo documento
de este tipo para cada una de las diferentes personas.
Uno a muchos.
Cliente Cuenta en un banco, Padre-Hijos, Camin-Pasajeros, zoolgico- animales, rbol hojas.
Muchos a muchos.
Arquitecto proyectos, fiesta personas, estudiante materias.
NOTA:
Cabe mencionar que la cardinalidad para cada conjunto de entidades depende del punto de vista que se le de al
modelo en estudio, claro esta, sujetndose a la realidad.
Otra clase de limitantes lo constituye la dependencia de existencia.
Refirindonos a las mismas entidades A y B, decimos que si la entidad A depende de la existencia de la entidad B,
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
entonces A es dependiente de existencia por B, si eliminamos a B tendramos que eliminar por consecuente la entidad A,
en este caso B es la entidad Dominante y A es la entidad subordinada.
-RA%T%A 1 DE BASE DE DATOS
TEMA. #TROD&%%O# A -*-M> ADM#
OBJET!O. E$ A$&M#O DE MA#ERA E2TRA%$ASEG #STA$ARA $A A-$%A%H#
DE -*-M>ADM# E# S& ORDE#ADORG DES-&ES DE $A E2-$%A%O# DE$
-RO/ESOR.
1.I EJE%&TAR -*-M>ADM#.E2E
2.I SE SE$E%%O#ARJ E$ DMOA
#"$ES.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
5.I SE DA %$% E# E# #E2T -ARA -ASAR $A BE#!E#DA.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
4.I SE SE$E%%O#A $A R&TA DE #STA$A%O#G $A %&A$ SE MA#TE#DRA "&A$.
SE DA %$% E# #E2T
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
6.I DE$ A-ARTADO SER!%E SE%TO#G SE SE$E%%O#ARJ# TODAS $AS
%AS$$AS > SE DARA %$% E# #STA$$.
7.ISE ES-ERA A ?&E $A #STA$A%O# TERM#E.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
7.IE# $AS !E#TA#AS %O#SE%&T!AS SE DARA %$% E# A%E-TAR A TODAS
*ASTA ?&E A-ARE3%A E$ -A#E$ DE %O#TRO$ DE 2AM--.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
8.I -ARA EJE%&TAR -*-M>ADM#G SE EJE%&TARA E$ E2-$ORADOR DE
#TER#ETG E# E$ A-ARTADO &R$G ES%RBRJ. $O%A$*OST.
A-ARE%ERJ $A S"&E#TE !E#TA#A
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
F.I SE SE$E%%O#A E$ DOMA ES-AKO$
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
10.I A*ORA SE DA %$% E# E$ A-ARTADO -*-M>ADM#
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
11.I ESTE ES E$ AMBE#TE DE TRABAJO DE -*-M>ADM# DO#DE SE %REARA#
ES?&EMASG TAB$ASG BASES DE DATOSG ET%.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
2.5 $la(es p)i8a)ias.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Como ya se ha mencionado anteriormente, la distincin de una entidad entre otra se debe a sus atributos, lo cual la
hace nica. Una llave primaria es aquel atributo el cual consideramos clave para la identificacin de los dems atributos
que describen a la entidad.
Por ejemplo, si consideramos la entidad ALUMNO del nstituto Tecnolgico de La Paz, podramos tener los siguientes
atributos:
Nombre, Semestre, Especialidad, Direccin, Telfono, Nmero de control, de todos estos atributos el que
podremos designar como llave primaria es el nmero de control, ya que es diferente para cada alumno y este nos
identifica en la institucin.
Claro que puede haber ms de un atributo que pueda identificarse como llave primaria en este caso se selecciona la
que consideremos ms importante, los dems atributos son denominados llaves secundarias.
Una clave o llave primaria es indicada grficamente en el modelo E-R con una lnea debajo del nombre del atributo.
2.4 Dia')a8a EntidadIRelacin
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Denominado por sus siglas como: E-R; Este modelo representa a la realidad a travs de un esquema grfico empleando
la terminologa de entidades, que son objetos que existen y son los elementos principales que se identifican en el
problema a resolver con el diagramado y se distinguen de otros por sus caractersticas particulares denominadas
atributos, el enlace que rige la unin de las entidades esta representado por la relacin del modelo.
Recordemos que un rectngulo nos representa a las entidades; una elipse a los atributos de las entidades, y una
etiqueta dentro de un rombo nos indica la relacin que existe entre las entidades, destacando con lneas las uniones de
estas y que la llave primaria de una entidad es aquel atributo que se encuentra subrayado.
A continuacin mostraremos algunos ejemplos de modelos E-R, considerando las cardinalidades que existen entre ellos:
Relacin Uno a Uno.
Problema:
Disear el modelo E-R, para la relacin Registro de automvil que consiste en obtener la tarjeta de circulacin de un
automvil con los siguientes datos:- Automvil- Modelo, Placas, Color - Tarjeta de circulacin -Propietario, No_serie,
Tipo.



ndicamos con este ejemplo que existe una relacin de pertenencia de uno a uno, ya que existe una tarjeta de
circulacin registrada por cada automvil.

En este ejemplo, representamos que existe un solo presidente para cada pas.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .


Relacin muchos a muchos.
El siguiente ejemplo indica que un cliente puede tener muchas cuentas, pero que una cuenta puede llegar a
pertenecer a un solo cliente (Decimos puede, ya que existen cuentas registradas a favor de ms de una persona).

DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
2.6 Reduccin de dia')a8as EIR a ta<las
Un diagrama E-R, puede ser representado tambin a travs de una coleccin de tablas. Para cada una de las
entidades y relaciones existe una tabla nica a la que se le asigna como nombre el del conjunto de entidades y de las
relaciones respectivamente, cada tabla tiene un nmero de columnas que son definidas por la cantidad de atributos y las
cuales tienen el nombre del atributo.
La transformacin de nuestro ejemplo Venta en la que intervienen las entidades de Vendedor con los atributos RFC,
nombre, puesto, salario y Artculo con los atributos Clave, descripcin, costo.
Cuyo diagrama E-R es el siguiente:
Entonces las tablas resultantes siguiendo la descripcin anterior son:
Tabla Empleado
NombrePuesto Salario RFC
Tefilo Vendedor 2000 TEAT701210XYZ
Cesar
Auxiliar
ventas
1200 COV741120ABC
Tabla artculo
Clave
Descripci
n
Costo
A100 Abanico 460
C260 Colcha
matrimonia
1200
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
l
Tabla Venta
RFC Clave
TEAT701210XYZ C260
COV741120ABC A100
Ntese que en la tabla de relacin - Venta -, contiene como atributos a las llaves primarias de las entidades que
intervienen en dicha relacin, en caso de que exista un atributo en las relaciones, este atributo es anexado como una fila
ms de la tabla;
Por ejemplo si anexamos el atributo fecha a la relacin venta, la tabla que se originaria sera la siguiente:
RFC ClaveFecha
TEAT701210XYZ C260 10/12/96
COV741120ABC A100 11/12/96
2.7 "ene)ali,acin : especiali,acin
Generalizacin.
Es el resultado de la unin de 2 o ms conjuntos de entidades (de bajo nivel) para producir un conjunto de entidades
de ms alto nivel. La generalizacin se usa para hacer resaltar los parecidos entre tipos de entidades de nivel ms bajo y
ocultar sus diferencias.
La generalizacin consiste en identificar todos aquellos atributos iguales de un conjunto de entidades para formar una
entidad(es) global(es) con dichos atributos semejantes, dicha entidad(es) global(es) quedara a un nivel ms alto al de las
entidades origen.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Ejemplo:
Tomando el ejemplo del libro de fundamentos de base de datos de Henry F. Korth.
Donde:
Se tiene las entidades Cta_Ahorro y Cta_Cheques, ambas tienen los atributos semejantes de No_Cta y Saldo, aunque
adems de estos dos atributos, Cta_Ahorro tiene el atributo Tasa_nteres y Cta_Cheques el atributo Saldo_Deudor. De
todos estos atributos podemos juntar (generalizar) No_Cta y Saldo que son iguales en ambas entidades.
Entonces tenemos:

Podemos leer esta grfica como: La entidad Cta_Ahorro hereda de la entidad CUENTA los atributos No_Cta y saldo,
adems del atributo de Tasanteres, de forma semejante Cta_cheque tiene los atributos de No_Cta, Saldo y
SaldoDeudor.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Como podemos observar la Generalizacin trata de eliminar la redundancia (repeticin) de atributos, al englobar los
atributos semejantes. La entidad(es) de bajo nivel cuentan (heredan) todos los atributos correspondientes.
Especializacin:
Es el resultado de tomar un subconjunto de entidades de alto nivel para formar un conjunto de entidades de ms bajo
nivel.
* En la generalizacin cada entidad de alto nivel debe ser tambin una entidad de bajo nivel. La especializacin no
tiene este limitante.
* Se representa por medio de un tringulo denominado con la etiqueta "SA", se distingue de la generalizacin por el
grosor de las lneas que conectan al tringulo con las entidades.
* La especializacin denota la diferencia entre los conjuntos de entidades de alto y bajo nivel.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
PRACTCA 2
NOMBRE: NCO DEL MODELADO DE LA BASE DE DATOS:
OBJETVO: EL ALUMNO CONSTRURA DEL ENTORNO DE UNA ESCUELA LA
ESTRUCTURA O MODELADO DE LA BASE DE DATOS DE ESTA, PREVAS CLASES
TEORCAS Y PRACTCAS, POR PARTE DEL PROFESOR.
DESARROLLO: EL ALUMNO CONSTRURA DEL ENTORNO DE UNA ESCUELA LAS
ESTRUCTURAS DE E#TDADG ATRB&TO > S& RE$A%O#G DE-E#DE#%AS
/&#%O#A$ESG %ARD#A$DAD DE MA-EOG OBTE#%#O DE $$A!ES -RMARAS
-OR E#TDADG %O#STR&%%O# DE$ DA"RAMA EIR > RED&%%O# DE$
DA"RAMA EIR A TAB$AS.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
3.1 Estructura de las bases de datos relacionales

La arquitectura relacional se puede expresar en trminos de tres niveles de abstraccin: nivel interno, conceptual y de
visin.
La arquitectura relacional consta de los siguientes componentes:
Modelo relacional de datos:
En el nivel conceptual, el modelo relacional de datos est representado por una coleccin de relaciones almacenadas.
Cada registro de tipo conceptual en un modelo relacional de datos se implanta como un archivo almacenado distinto.
Submodelo de datos:
Los esquemas externos de un sistema relacional se llaman submodelos relacionales de datos; cada uno consta de uno
a ms escenarios (vistas) para describir los datos requeridos por una aplicacin dada. Un escenario puede incluir datos
de una o ms tablas de datos. Cada programa de aplicacin est provisto de un buffer ("rea de trabajo de usuario")
donde el DBMS puede depositar los datos recuperados de la base para su procesamiento, o puede guardar
temporalmente sus salidas antes de que el DBMS las escriba en la base de datos.
Esquema de almacenamiento:
En el nivel interno, cada tabla base se implanta como un archivo almacenado. Para las recuperaciones sobre las
claves principal o secundaria se pueden establecer uno o ms ndices para acceder un archivo almacenado.
Sublenguaje de datos:
Es un lenguaje de manejo de datos para el sistema relacional, el lgebra relacional y clculo relacional, ambos
lenguajes son "relacionalmente completos", esto es, cualquier relacin que pueda derivarse de una o ms tablas de
datos, tambin se puede derivar con u solo comando del sublenguaje. Por tanto, el modo de operacin de entrada/Salida
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
en un sistema relacional se puede procesar en la forma: una tabla a la vez en lugar de: un registro a la vez; en otras
palabras, se puede recuperar una tabla en vez de un solo registro con la ejecucin de un comando del sublenguaje de
5.2 Enunciados )elacionales
$os len'ua=es de consultas.
Son los lenguajes en el que los usuarios solicitan informacin de la base de datos. Estos lenguajes son generalmente
de ms alto nivel que los lenguajes de programacin. Los lenguajes de consulta pueden clasificarse como
procedimentales y no procedimentales.
En el lenguaje del tipo procedimental el usuario da las instrucciones al sistema para que realice una secuencia de
operaciones en la base de datos para calcular el resultado deseado.
En el lenguaje no procedimental, el usuario describe la informacin deseada sin dar un procedimiento especfico para
obtener dicha informacin.
El +l'e<)a )elacional es un conjunto de operaciones que describen paso a paso como computar una respuesta sobre las
relaciones, tal y como stas son definidas en el modelo relacional. Denominada de tipo p)ocedi8ental, a diferencia del
Clculo relacional que es de tipo declarativo.
Describe el aspecto de la manipulacin de datos. Estas operaciones se usan como una representacin intermedia de una
consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versin ms optimizada y
eficiente de dicha consulta.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
5.5 Ope)ado)es )elacionales
Ope)ado)es )elacionales
Al igual que en matemticas, estos operadores nos permitirn evaluar las relaciones (igualdad, mayor, menor, etc.) entre
un par de operndos (en principio, pensemos en nmeros). Los operadores relacionales son:
Operador Accin
>
Mayor que
>=
Mayor o igual que
<
Menor que
<=
Menor o igual que
==
Igual
!=
Distinto
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
5.4 Jl'e<)a )elacional
lgebra relacional
Es un conjunto de operaciones que describen paso a paso como computar una respuesta sobre las relaciones, tal y como
stas son definidas en el modelo relacional. Denominada de tipo p)ocedi8ental, a diferencia del Clculo relacional que
es de tipo declarativo.
Describe el aspecto de la manipulacin de datos. Estas operaciones se usan como una representacin intermedia de una
consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versin ms optimizada y
eficiente de dicha consulta.
Unin
R U S
La unin de dos relaciones R y S, es otra relacin que contiene las tuplas que estn en R, o en S, o en ambas,
eliminndose las tuplas duplicadas
R y S deben ser unin-compatible, es decir, definidas sobre el mismo conjunto de atributos
Tabla R Tabla S Tabla R U S
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Diferencia
R - S
La diferencia de dos relaciones R y S, es otra relacin que contiene las tuplas que estn en la relacin R, pero no estn
en S.
R y S deben ser unin-compatible
Tabla R Tabla S Tabla R - S
Tabla S - R
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
nte)seccin
R i S
Define una relacin que contiene el conjunto de todas las filas que estn tanto en la relacin R como en S
R y S deben ser unin-compatible
Equivalencia con operadores bsicos R i S = R (R S)
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
SEGUNDA ENTREGA DE PROYECTO
OBJETVO: EL ALUMNO DE LA EMPRESA SELECCONADA Y APLCARA
LAS TECNCAS DE DE MODELADO DE BASE DE DATOS PARA OBTENER
UN MODELO DE LA BD DE ESTA Y AS PODER REALZAR UN DSEO.
CONTENDO: EL ALUMNO DEBERA ENTREGAR EL AMODELADO DE LA
BASE DE DATOS DE SU EMPRESA LA CUAL DEBE CONSTAR DE LOS
SGUENTES PASOS:
1.-OBTENCON DE ENTDADES.
2.-OBTENCON DE ATRBUTOS.
3.-DEPENDENCAS FUNCONALES.
4.-CARDNALDAD Y MAPEO
5.-OBTENCON DE LLAVES PRMARAS.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
6.-CONSTRUCCON DEL DAGRAMA E-R.
7.- REDUCCON DEL DAGRAMA E-R A TABLAS.
5.6 S?$
El $en'ua=e de consulta est)uctu)ado (SQL en ingls Structured ?uery $anguage) es un lenguaje declarativo de
acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones sobre las mismas. Una de
sus caractersticas es el manejo del lgebra y el clculo relacional permitiendo lanzar consultas con el fin de recuperar
-de una forma sencilla- informacin de inters de una base de datos, as como tambin hacer cambios sobre la misma.
Es un lenguaje de cuarta generacin (4GL).
El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales
permitiendo gran variedad de operaciones sobre los mismos.
Es un lenguaje declarativo de alto ni(el o de no p)ocedi8iento, que gracias a su fuerte base terica y su orientacin al
manejo de conjuntos de registros, y no a registros individuales, permite una alta productividad en codificacin. De esta
forma una sola sentencia puede equivaler a uno o ms programas que utilizas en un lenguaje de bajo nivel orientado a
objetos.
Opti8i,acin
Como ya se dijo arriba, y como suele ser comn en los lenguajes de acceso a bases de datos de alto nivel, el SQL es un
lenguaje declarativo. O sea, que especifica qu es lo que se quiere y no cmo conseguirlo, por lo que una sentencia no
establece explcitamente un orden de ejecucin.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
El orden de ejecucin interno de una sentencia puede afectar gravemente a la eficiencia del SGBD, por lo que se hace
necesario que ste lleve a cabo una optimizacin antes de la ejecucin de la misma. Muchas veces, el uso de ndices
acelera una instruccin de consulta, pero ralentiza la actualizacin de los datos. Dependiendo del uso de la aplicacin, se
priorizar el acceso indexado o una rpida actualizacin de la informacin. La optimizacin difiere sensiblemente en cada
motor de base de datos y depende de muchos factores.
Existe una ampliacin de SQL conocida como FSQL (Fuzzy SQL, SQL difuso) que permite el acceso a bases de datos
difusas, usando la lgica difusa. Este lenguaje ha sido implementado a nivel experimental y est evolucionando
rpidamente.
El lenguaje de definicin de datos (en ingls Data Definition Language, o DDL), es el que se encarga de la modificacin
de la estructura de los objetos de la base de datos. Existen cuatro operaciones bsicas: CREATE, ALTER, DROP y
TRUNCATE.
%REATE
Este comando crea un objeto dentro de la base de datos. Puede ser una tabla, vista, ndice, trigger, funcin,
procedimiento o cualquier otro objeto que el motor de la base de datos soporte.
Ejemplo (crear una tabla)
CREATE TABLE TABLA_NOMBRE
A$TER
Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el
tipo de un campo, agregar/quitar ndices a una tabla, modificar un trigger, etc.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
E=e8plo 0a')e'a) colu8na a una ta<la1
ALTER TABLE ''TABLA_NOMBRE'' (
ADD NUEVO_CAMPO NT UNSGNED
)
DRO-
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, ndice, trigger, funcin, procedimiento o
cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.
E=e8plo 1
DROP TABLE TABLA_NOMBRE
E=e8plo 2
ALTER TABLE ''TABLA_NOMBRE''
(
DROP COLUMN ''CAMPO_NOMBRE1''
)
TR&#%ATE
Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DELETE, es que si se quiere borrar
todo el contenido de la tabla, es mucho ms rpido, especialmente si la tabla es muy grande, la desventaja es que
TRUNCATE solo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la clusula
WHERE. Si bien, en un principio, esta sentencia parecera ser DML (Lenguaje de Manipulacin de Datos), es en realidad
una DDL, ya que internamente, el comando truncate borra la tabla y la vuelve a crear y no ejecuta ninguna transaccin.
E=e8plo
TRUNCATE TABLE ''TABLA_NOMBRE''
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Lenguaje de manipulacin de datos (L!"
De9inicin
Un len'ua=e de 8anipulacin de datos (Data Manipulation Language, o DML en ingls) es un lenguaje proporcionado
por el sistema de gestin de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de consulta o
manipulacin de los datos, organizados por el modelo de datos adecuado.
El lenguaje de manipulacin de datos ms popular hoy da es SQL, usado para recuperar y manipular datos en una base
de datos relacional. Otros ejemplos de DML son los usados por bases de datos MS/DL1, CODASYL u otras.
#SERT
Una sentencia #SERT de S?$ agrega uno o ms registros a una (y slo una) tabla en una base de datos relacional.
/o)8a <+sica
NSERT NTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES (''valor1'', [''valor2,...''])
Las cantidades de columnas y valores deben ser las mismas. Si una columna no se especifica, le ser asignado el valor
por omisin. Los valores especificados (o implcitos) por la sentencia INSERT debern satisfacer todas las restricciones
aplicables. Si ocurre un error de sintaxis o si alguna de las restricciones es violada, no se agrega la fila y se devuelve un
error.
E=e8plo
NSERT NTO agenda_telefonica (nombre, numero) VALUES ('Roberto Fernndez', '4886850');
Cuando se especifican todos los valores de una tabla, se puede utilizar la sentencia acortada:
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
NSERT NTO ''tabla'' VALUES (''valor1'', [''valor2,...''])
Ejemplo (asumiendo que 'nombre' y 'nmero' son las nicas columnas de la tabla 'agenda_telefonica'):
NSERT NTO agenda_telefonica VALUES ('Roberto Fernndez', '4886850');
/o)8as a(an,adas
#nse$ciones en m%ltiples &ilas
Una caracterstica de SQL (desde SQL-92) es el uso de constructores de filas para insertar mltiples filas a la vez, con
una sola sentencia SQL:
NSERT NTO ''tabla'' (''columna1'', [''columna2,... ''])
VALUES (''valor1a'', [''valor1b,...'']), (''value2a'', [''value2b,...'']),...
Esta caracterstica es soportada por DB2, PostgreSQL (desde la versin 8.2), MySQL, y H2.
Ejemplo (asumiendo ese 'nombre' y 'numero' son las nicas columnas en la tabla 'agenda_telefonica'):
NSERT NTO agenda_telefonica VALUES ('Roberto Fernndez', '4886850'), ('Alejandro Sosa', '4556550');
Que poda haber sido realizado por las sentencias
NSERT NTO agenda_telefonica VALUES ('Roberto Fernndez', '4886850');
NSERT NTO agenda_telefonica VALUES ('Alejandro Sosa', '4556550');
Notar que las sentencias separadas pueden tener semntica diferente (especialmente con respecto a los triggers), y
puede tener diferente performance que la sentencia de insercin mltiple.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Para insertar varias filas en MS SQL puede utilizar esa construccin:
NSERT NTO phone_book
SELECT 'John Doe', '555-1212'
UNON ALL
SELECT 'Peter Doe', '555-2323';
Tenga en cuenta que no se trata de una sentencia SQL vlida de acuerdo con el estndar SQL (SQL: 2003), debido a la
clusula subselect incompleta.
Para hacer lo mismo en Oracle se usa DUAL TABLE, siempre que se trate de solo una simple fila:
NSERT NTO phone_book
SELECT 'John Doe', '555-1212' FROM DUAL
UNON ALL
SELECT 'Peter Doe','555-2323' FROM DUAL
Un estndar-conforme implementacin de esta lgica se muestra el siguiente ejemplo, o como se muestra arriba:
NSERT NTO phone_book
SELECT 'John Doe', '555-1212' FROM LATERAL (VALUES (1)) AS t(c)
UNON ALL
SELECT 'Peter Doe','555-2323' FROM LATERAL (VALUES (1)) AS t(c)
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
'opia de &ilas de ot$as ta(las
Un NSERT tambin puede utilizarse para recuperar datos de otros, modificarla si es necesario e insertarla directamente
en la tabla. Todo esto se hace en una sola sentencia SQL que no implica ningn procesamiento intermedio en la
aplicacin cliente. Un SUBSELECT se utiliza en lugar de la clusula VALUES. El SUBSELECT puede contener JON,
llamadas a funciones, y puede incluso consultar en la misma TABLA los datos que se inserta. Lgicamente, el SELECT
se evala antes que la operacin NSERT este iniciada. Un ejemplo se da a continuacin.
NSERT NTO phone_book2

SELECT *
FROM phone_book
WHERE name N ('John Doe', 'Peter Doe')
Una variacin es necesaria cuando algunos de los datos de la tabla fuente se esta insertando en la nueva tabla, pero no
todo el registro. (O cuando los esquemas de las tablas no son lo mismo.)
NSERT NTO phone_book2 ( [name], [phoneNumber] )

SELECT [name], [phoneNumber]
FROM phone_book
WHERE name N ('John Doe', 'Peter Doe')
El SELECT produce una tabla (temporal), y el esquema de la tabla temporal debe coincidir con el esquema de la tabla
donde los datos son insertados.
M:S?$
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
MySQL es un sistema de gestin de base de datos relacional, multihilo y multiusuario con ms de seis millones de
instalaciones.[1] MySQL AB desde enero de 2008 una subsidiaria de Sun Microsystems desarrolla MySQL como
software libre en un esquema de licenciamiento dual.
Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero las empresas que quieran
incorporarlo en productos privativos pueden comprar a la empresa una licencia especfica que les permita este uso. Est
desarrollado en su mayor parte en ANS C.
Al contrario que proyectos como Apache, donde el software es desarrollado por una comunidad pblica y el copyright del
cdigo est en poder del autor individual, MySQL es propiedad y est patrocinado por una empresa privada, que posee el
copyright de la mayor parte del cdigo.
Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Adems de la venta de licencias
privativas, la compaa ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que
colaboran va nternet. MySQL AB fue fundado por David Axmark, Allan Larsson, y Michael Widenius.
5.7 Dependencia 9uncional
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
B es funcionalmente dependiente de A.
Una dependencia funcional es una conexin entre uno o ms atributos. Por ejemplo si conocemos el valor de Fecha De
Nacimiento podemos conocer el valor de Edad.
Las dependencias funcionales del sistema se escriben utilizando una flecha, de la siguiente manera:
Fecha De Nacimiento Edad
Aqu a Fecha De Nacimiento se le conoce como un determinante. Se puede leer de dos formas Fecha De Nacimiento
determina a Edad o Edad es funcionalmente dependiente de Fecha De Nacimiento. De la normalizacin (lgica) a la
implementacin (fsica o real) puede ser sugerible tener stas dependencias funcionales para lograr mayor eficiencia en
las tablas.
-)opiedades de la Dependencia 9uncional
Existen 3 axiomas de Armstong:
Dependencia funcional Reflexiva
Si y esta incluido en x entonces
Si la direccin o el nombre de una persona estn incluidos en el DN, entonces con el DN podemos determinar la
direccin o su nombre.
Dependencia funcional Aumentativa
Entonces
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
DN nombre
dni,direccin nombre,direccin
Si con el DN se determina el nombre de una persona, entonces con el DN ms la direccin tambin se determina el
nombre o su direccin.
Dependencia funcional transitiva.
Sean X, Y, Z tres atributos (o grupos de atributos) de la misma entidad. Si Y depende funcionalmente de X y Z de Y, pero
X no depende funcionalmente de Y, se dice que Z depende transitivamente de X. Simblicamente sera:
X ---> Y ---> Z entonces X ---> Z Fecha De Nacimiento Edad
Edad Conducir
Fecha De Nacimiento Edad Conducir
Entonces tenemos que Fecha De Nacimiento determina a Edad y la Edad determina a Conducir, indirectamente podemos
saber a travs de Fecha De Nacimiento a Conducir (En muchos pases , para una persona poder conducir un automvil la
persona necesita ser mayor de X edad, por eso se utiliza este ejemplo).
5.8 inte')idad )e9e)encial
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
La integridad referencial es una propiedad deseable en las bases de datos. Gracias a la integridad referencial se
garantiza que una entidad (fila o registro) siempre se relaciona con otras entidades vlidas, es decir, que existen en la
base de datos. mplica que en todo momento dichos datos sean correctos, sin repeticiones innecesarias, datos perdidos y
relaciones mal resueltas.
Todas las bases de datos relacionales gozan de esta propiedad gracias a que el software gestor de base de datos vela
por su cumplimiento. En cambio, las bases de datos jerrquicas requieren que los programadores se aseguren de
mantener tal propiedad en sus programas.
E=e8plo. %8o 9unciona
Supongamos una base de datos con las entidades Persona y Factura. Toda factura corresponde a una persona y
solamente una. mplica que en todo momento dichos datos sean correctos, sin repeticiones innecesarias, datos perdidos
y relaciones mal resueltas.
Supongamos que una persona se identifica por su atributo DN (Documento nacional de identidad). Tambin tendr otros
atributos como el nombre y la direccin. La entidad Factura debe tener un atributo DN_cliente que identifique a quin
pertenece la factura.
Por sentido comn es evidente que todo valor de DN_cliente debe corresponder con algn valor existente del atributo
DN de la entidad Persona. Esta es la idea intuitiva de la integridad referencial.
EListen t)es tipos de inte')idad )e9e)encial.
ntegridad referencial dbil: si en una tupla de R todos los valores de los atributos de K tienen un valor que no es el
nulo, entonces debe existir una tupla en S que tome esos mismos valores en los atributos de J;
ntegridad referencial parcial: si en una tupla de R algn atributo de K toma el valor nulo, entonces debe existir una
tupla en S que tome en los atributos de J los mismos valores que los atributos de K con valor no nulo; y
ntegridad referencial completa: en una tupla de R todos los atributos de K deben tener el valor nulo o bien todos
tienen un valor que no es el nulo y entonces debe existir una tupla en S que tome en los atributos de J los mismos valores
que toman los de K.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
La integridad referencial en juego
Cuando se crea una nueva instancia de Factura, la integridad referencial exige que el atributo DN_cliente coincida con el
atributo DN de alguna instancia de la entidad Persona. En caso contrario, no se permite la operacin.
Cuando se intenta eliminar una instancia de Persona, la integridad referencial exige que no exista ninguna factura
asociada, es decir, se comprueba que no existe ninguna instancia de Factura cuyo atributo DN_cliente coincida con el
atributo DN de la instancia a borrar. En caso contrario, no se permite la operacin.
5.F #o)8ali,acin de <ases de datos
Para otros usos de este trmino vase Normalizacin (desambiguacin).
El proceso de normalizacin de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el
paso del modelo entidad-relacin al modelo relacional.
Las bases de datos relacionales se normalizan para:
Evitar la redundancia de los datos.
Evitar problemas de actualizacin de los datos en las tablas.
Proteger la integridad de los datos.
En el modelo relacional es frecuente llamar tabla a una relacin, aunque para que una tabla sea considerada como una
relacin tiene que cumplir con algunas restricciones:
Cada columna debe tener su nombre nico.
No puede haber dos filas iguales. No se permiten los duplicados.
Todos los datos en una columna deben ser del mismo tipo.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
5.10 se'u)idad e inte')idad
En un sistema de gestin de base de datos (SGBD), cada nodo es un descriptor; las relaciones se representan por
flechas que conectan los nodos; los datos se organizan en registros de longitud variable, donde cada registro es un
conjunto de pares clave / valor, de modo que cada uno contiene toda la informacin que le concierne: relaciones
descripcin y valores de los campos. Esto permite omitir el uso de tablas o caracterizaciones globales de un determinado
grupo de registros; y por ltimo, los registros de un mismo tipo no tienen por que tener las mismas relaciones o campos.
Adems, G tambin puede ser utilizada como una herramienta de integracin de bases de datos tradicionales debido a
que cuenta con conectores entre bases de datos JDBC/ODBC (Java DataBase Connectivity, Open DataBase
Connectivity).
La plataforma guarda cifrados todos los datos codificados, contraseas, identificadores de usuario y dems datos claves;
y el resultado del cifrado, lo codifica para mayor seguridad. Adems, G tambin permite generar firmas digitales y cifrar
zonas de datos.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
&#DAD !
4.1 %a)acte)Bsticas de M:S?$
MySQL es un sistema de gestin de bases de datos
Una base de datos es una coleccin estructurada de datos. Puede ser cualquier cosa, desde una simple lista de compra
a una galera
de pintura o las ms vastas cantidades de informacin en una red corporativa. Para aadir, acceder, y procesar los datos
almacenados
en una base de datos, necesita un sistema de gestin de base de datos como MySQL Server. Al ser los computadores
muy buenos en tratar grandes cantidades de datos, los sistemas de gestin de bases de datos juegan un papel central en
computacin,
como aplicaciones autnomas o como parte de otras aplicaciones.
MySQL es un sistema de gestin de bases de datos relacionales
Una base de datos relacional almacena datos en tablas separadas en lugar de poner todos los datos en un gran almacn.
Esto aade velocidad y flexibilidad. La parte SQL de "MySQL" se refiere a "Structured Query Language". SQL es el
lenguaje estandarizado
ms comn para acceder a bases de datos y est definido por el estndar ANS/SO SQL. El estndar SQL ha
evolucionado desde 1986 y existen varias versiones. En este manual, "SQL-92" se refiere al estndar del 1992,
"SQL:1999" se refiere a la versin del 1999, y "SQL:2003" se reviere a la versin actual del estndar. Usamos la frase "el
estndar SQL" para referirnos a la versin actual de SQL.
MySQL software es Open Source.
Open Source significa que es posible para cualquiera usar y modificar el software. Cualquiera puede bajar el software
MySQL desde nternet y usarlo sin pagar nada. Si lo desea, puede estudiar el cdigo fuente y cambiarlo para adaptarlo a
sus necesidades.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
El software MySQL usa la licencia GPL (GNU General Public License), http://www.fsf.org/licenses/, para definir lo que
puede y no puede hacer con el software en diferentes situaciones. Si no se encuentra cmodo con la GPL o necesita
aadir cdigo MySQL en una aplicacin comercial, puede comprarnos una licencia comercial. Consulte la ntroduccin a
las Licencias MySQL para ms informacin (http://www.mysql.com/company/legal/licensing/).
El servidor de base de datos MySQL es muy rpido, fiable y fcil de usar.
Si esto es lo que est buscando, debera probarlo. El servidor MySQL tambin tiene una serie de caractersticas prcticas
desarrolladas en cooperacin con los usuarios. Puede encontrar comparaciones de rendimiento de MySLQL Server con
otros sistemas
de gestin de bases de datos en nuestra pgina de comparativas de rendimiento. Consulte Seccin 7.1.4, "El paquete de
pruebas de rendimiento (benchmarks) de MySQL.
MySQL Server se desarroll originalmente para tratar grandes bases de datos mucho ms rpido que soluciones
existentes y ha sido usado con xito en entornos de produccin de alto rendimiento durante varios aos. MySQL Server
ofrece hoy en da una gran cantidad de funciones. Su conectividad, velocidad, y seguridad hacen de MySQL Server
altamente apropiado para acceder
bases de datos en nternet
MySQL Server trabaja en entornos cliente/servidor o incrustados
El software de bases de datos MySQL es un sistema cliente/servidor que consiste en un servidor SQL multi-threaded que
trabaja con diferentes bakends, programas y bibliotecas cliente, herramientas administrativas y un amplio abanico de
interfaces de
programacin para aplicaciones (APs). Tambin proporcionamos el MySQL Server como biblioteca incrustada multi-
threaded que puede ligar en su aplicacin para obtener un producto ms pequeo, rpido y fcil de administrar.
Historia de MySQL
Empezamos con la intencin de usar MySQL para conectar a nuestras tablas utilizando nuestras propias rutinas rpidas
de bajo nivel (SAM). Sin embargo y tras algunas pruebas, llegamos a la conclusin que MySQL no era lo suficientemente
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
rpido o flexible para nuestras necesidades. Esto provoc la creacin de una nueva interfaz SQL para nuestra base de
datos pero casi con la misma interfaz AP que MySQL. Esta AP fue diseada para permitir cdigo de terceras partes que
fue escrito para poder usarse con MySQL para ser fcilmente portado para el uso con MySQL.
La derivacin del nombre MySQL no est clara. Nuestro directorio base y un gran nmero de nuestras bibliotecas y
herramientas han tenido el prefijo "my" por ms de 10 aos. Sin embargo, la hija del co-fundador Monty Widenius tambin
se llama My. Cul
de los dos di su nombre a MySQL todava es un misterio, incluso para nosotros.
El nombre del delfn de MySQL (nuestro logo) es "Sakila", que fue elegido por los fundadores de MySQL AB de una gran
lista de nombres sugerida por los usuarios en el concurso "Name the Dolphin" (ponle nombre al delfn). El nombre
ganador fue enviado
por Ambrose Twebaze, un desarrollador de software Open Source de Swaziland, frica. Segn Ambrose, el nombre
femenino de Sakila tiene sus races en SiSwate, el idioma local de Swaziland. Sakila tambin es el nombre de una ciudad
en Arusha, Tanzania,
cerca del pas de origen de Ambrose, Uganda.
Las principales caractersticas de MySQL
La siguiente lista describe algunas de las caractersticas ms importantes del software de base de datos MySQL.
nterioridades y portabilidad
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Escrito en C y en C++
Probado con un amplio rango de compiladores diferentes
Funciona en diferentes plataformas.
Usa GNU Automake, Autoconf, y Libtool para portabilidad.
APs disponibles para C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, y Tcl.

Uso completo de multi-threaded mediante threads del kernel. Pueden usarse fcilmente mltiple CPUs si estn
disponibles.
Proporciona sistemas de almacenamientos transaccionales y no transaccionales.
Usa tablas en disco B-tree (MySAM) muy rpidas con compresin de ndice.
Relativamente sencillo de aadir otro sistema de almacenamiento. Esto es til si desea aadir una interfaz SQL para
una base de datos propia.
Un sistema de reserva de memoria muy rpido basado en threads.
Joins muy rpidos usando un multi-join de un paso optimizado.
Tablas hash en memoria, que son usadas como tablas temporales.
Las funciones SQL estn implementadas usando una librera altamente optimizada y deben ser tan rpidas como sea
posible.
Normalmente no hay reserva de memoria tras toda la inicializacin para consultas.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
El cdigo MySQL se prueba con Purify (un detector de memoria perdida comercial) as como con Valgrind, una
herramienta GPL (http://developer.kde.org/~sewardj/).
El servidor est disponible como un programa separado para usar en un entorno de red cliente/servidor. Tambin est
disponible como biblioteca y puede ser incrustado (linkado) en aplicaciones autnomas. Dichas aplicaciones pueden
usarse por s mismas o en entornos donde no hay red disponible..
Tipos de columnas
Diversos tipos de columnas: enteros con/sin signo de 1, 2, 3, 4, y 8 bytes de longitud, FLOAT, DOUBLE, CHAR,
VARCHAR, TEXT, BLOB, DATE, TME, DATETME, TMESTAMP, YEAR, SET, ENUM, y tipos espaciales OpenGS.
Registros de longitud fija y longitud variable.
Sentencias y funciones
Soporte completo para operadores y funciones en las clusulas de consultas SELECT y WHERE. Por ejemplo:
mysql> SELECT CONCAT(first_name, ' ', last_name)
-> FROM citizen
-> WHERE income/dependents > 10000 AND age > 30;
Soporte completo para las clusulas SQL GROUP BY y ORDER BY. Soporte de funciones de agrupacin (COUNT(),
COUNT(DSTNCT ...), AVG(), STD(), SUM(), MAX(), MN(), y GROUP_CONCAT()).
Soporte para LEFT OUTER JON y RGHT OUTER JON cumpliendo estndares de sintaxis SQL y ODBC.
Soporte para alias en tablas y columnas como lo requiere el estndar SQL.
DELETE, NSERT, REPLACE, y UPDATE devuelven el nmero de filas que han
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
cambiado (han sido afectadas). Es posible devolver el nmero de filas que seran afectadas usando un flag al conectar
con el servidor.
El comando especfico de MySQL SHOW puede usarse para obtener informacin acerca de la base de datos, el motor
de base de datos, tablas e ndices. El comando EXPLAN puede usarse para determinar cmo el optimizador resuelve
una consulta.
Los nombres de funciones no colisionan con los nombres de tabla o columna. Por ejemplo, ABS es un nombre vlido de
columna.
La nica restriccin es que para una llamada a una funcin, no se permiten espacios entre el nombre de funcin y el '(' a
continuacin.
Puede mezclar tablas de distintas bases de datos en la misma consulta (como en MySQL 3.22).
Seguridad
Un sistema de privilegios y contraseas que es muy flexible y seguro, y que permite verificacin basada en el host. Las
contraseas son seguras porque todo el trfico de contraseas est encriptado cuando se conecta con un servidor.
Escalabilidad y lmites
Soporte a grandes bases de datos. Usamos MySQL Server con bases de datos que contienen 50 millones de registros.
Tambin conocemos a usuarios que usan MySQL Server con 60.000 tablas y cerca de 5.000.000.000.000 de registros.
Se permiten hasta 64 ndices por tabla (32 antes de MySQL 4.1.2). Cada ndice puede consistir desde 1 hasta 16
columnas o partes de columnas. El mximo ancho de lmite son 1000 bytes (500 antes de MySQL 4.1.2).Un ndice puede
usar prefijos
de una columna para los tipos de columna CHAR, VARCHAR, BLOB, o TEXT.
Conectividad
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Los clientes pueden conectar con el servidor MySQL usando sockets TCP/P en cualquier plataforma. En sistemas
Windows
de la familia NT (NT,2000,XP, o 2003), los clientes pueden usar named pipes para la conexin. En sistemas Unix, los
clientes pueden conectar usando ficheros socket Unix.
En MySQL 5.0, los servidores Windows soportan conexiones con memoria compartida si se inicializan con la opcin
--shared-memory. Los clientes pueden conectar a travs de memoria compartida usando la opcin --protocol=memory.
La interfaz para el conector ODBC (MyODBC) proporciona a MySQL soporte para programas clientes que usen
conexiones
ODBC (Open Database Connectivity). Por ejemplo, puede usar MS Access para conectar al servidor MySQL. Los clientes
pueden ejecutarse en Windows o Unix. El cdigo fuente de MyODBC est disponible. Todas las funciones para ODBC
2.5 estn soportadas, as como muchas otras.
La interfaz para el conector J MySQL proporciona soporte para clientes Java que usen conexiones JDBC. Estos clientes
pueden ejecutarse en Windows o Unix. El cdigo fuente para el conector J est disponible.
Localizacin
El servidor puede proporcionar mensajes de error a los clientes en muchos idiomas.
Soporte completo para distintos conjuntos de caracteres, incluyendo latin1 (SO-8859-1), german, big5, ujis, y ms.
Por ejemplo, los caracteres escandinavos '', '' y '' estn permitidos en nombres de tablas y columnas. El soporte para
Unicode est disponible
Todos los datos se guardan en el conjunto de caracteres elegido. Todas las comparaciones para columnas normales de
cadenas de caracteres son case-insensitive.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
La ordenacin se realiza acorde al conjunto de caracteres elegido (usando colacin Sueca por defecto). Es posible
cambiarla cuando arranca el servidor MySQL. Para ver un ejemplo de ordenacin muy avanzada, consulte el cdigo
Checo de ordenacin.
MySQL Server soporta diferentes conjuntos de caracteres que deben ser especificados en tiempo de compilacin y de
ejecucin.
Clientes y herramientas
MySQL server tiene soporte para comandos SQL para chequear, optimizar, y reparar tablas. Estos comandos estn
disponibles a travs de la lnea de comandos y el cliente mysqlcheck. MySQL tambin incluye myisamchk, una utilidad de
lnea
de comandos muy rpida para efectuar estas operaciones en tablas MySAM.
Todos los programas MySQL pueden invocarse con las opciones --help o -? para obtener asistencia en lnea.
Estabilidad de MySQL
Esta seccin trata las preguntas "Qu estabilidad tiene MySQL Server?" y, "Puedo fiarme de MySQL Server para este
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
proyecto?" ntentaremos clarificar estas cuestiones y responder algunas preguntas importantes que preocupan a muchos
usuariospotenciales. La informacin en esta seccin se basa en datos recopilados de las listas de correo, que son muy
activas para identificarproblemas as como para reportar tipos de usos.
El cdigo original se remonta a los principios de los aos 80. En TcX, la predecesora de MySQL AB, el cdigo MySQL ha
funcionado en proyectos desde mediados de 1996 sin ningn problema. Cuando el software de base de datos MySQL fue
distribuido entre un pblico ms amplio, nuestros nuevos usuarios rpidamente encontraron trozos de cdigo no
probados. Cada nueva versin desde entonces ha tenido pocos problemas de portabilidad incluso considerando que cada
nueva versin ha tenido muchas nuevas funcionalidades.
Cada versin de MySQL Server ha sido usable. Los problemas han ocurrido nicamente cuando los usuarios han
probado cdigo de las "zonas grises". Naturalmente, los nuevos usuarios no conocen cules son estas zonas; esta
seccin, por lo tanto, trata de documentar dichas reas conocidas a da de hoy. Las descripciones mayormente se
corresponden con la versin 3.23, 4.0 y 4.1 de MySQL Server. Todos los bugs reportados y conocidos se arreglan en la
ltima versin, con las excepciones listadas en las secciones de bugs y que estn relacionados con problemas de diseo.
Consulte Seccin A.8, "Problemas conocidos en MySQL.
El diseo de MySQL Server es multi capa, con mdulos independientes. Algunos de los ltimos mdulos se listan a
continuacin con una indicacin de lo bien testeados que estn:
Replicatin (Estable)
Hay grandes grupos de servidores usando replicacin en produccin, con buenos resultados. Se trabaja para mejorar
caractersticas
de replicacin en MySQL 5.x.
nnoDB tablas (Estable)
El motor de almacenamiento transaccional nnoDB es estable y usado en grandes sistemas de produccin con alta carga
de trabajo.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
BDB tablas (Estable)
El cdigo Berkeley DB es muy estable, pero todava lo estamos mejorando con el interfaz del motor de almacenamiento
transaccional BDB en MySQL Server.
Bsquedas Full-text (Estable)
Bsquedas Full-text es ampliamente usada.
MyODBC 3.51 (Estable)
MyODBC 3.51 usa ODBC SDK 3.51 y es usado en sistemas de produccin ampliamente. Algunas cuestiones surgidas
parecen
ser cuestin de las aplicaciones que lo usan e independientes del controlador ODBC o la base de datos subyacente.
Dimensiones mximas de las tablas MySQL
En MySQL 5.0, usando el motor de almacenamiento MySAM, el mximo tamao de las tablas es de 65536 terabytes
(256 ^ 7 1 bytes). Por lo tanto, el tamao efectivo mximo para las bases de datos en MySQL usualmente los
determinan los lmites de tamao de ficheros del sistema operativo, y no por lmites internos de MySQL.
El motor de almacenamiento nnoDB mantiene las tablas en un espacio que puede ser creado a partir de varios ficheros.
Esto permite que una tabla supere el tamao mximo individual de un fichero. Este espacio puede incluir particiones de
disco, lo que permite
tablas extremadamente grandes. El tamao mximo del espacio de tablas es 64TB.
La siguiente tabla lista algunos ejemplos de lmites de tamao de ficheros de sistemas operativos. Esto es slo una burda
gua y no pretende ser definitiva. Para la informacin ms actual, asegrese de consultar la documentacin especfica de
su sistema operativo.
Sistema operativo Tamao mximo de fichero
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Linux 2.2-ntel 32-bit 2GB (LFS: 4GB)
Linux 2.4 (usando sistema de ficheros ext3) 4TB
Solaris 9/10 16TB
Sistema de ficheros NetWare w/NSS 8TB
win32 w/ FAT/FAT32 2GB/4GB
win32 w/ NTFS 2TB (posiblemente mayor)
MacOS X w/ HFS+ 2TB
En Linux 2.2, puede utilizar tablas MySAM mayores de 2GB usando el parche para LFS (Large File Support) en el
sistema de ficheros ext2. En Linux 2.4 y posteriores, existen parches para ReiserFS soportando grandes archivos (hasta
2TB). La mayora dedistribuciones Linux se basan en el kernel 2.4 o 2.6 e incluyen todos los parches LFS necesarios.
Con JFS y XFS, se permiten ficheros mayores de un petabyte para Linux. Sin embargo, el tamao mximo de ficheros
todava depende de diversos factores, uno de ellos siendo el sistema de ficheros usado para almacenar tablas MySQL.
Para un resumen ms detallado acerca de LFS en Linux, recomendamos la pgina de Andreas Jaeger Large File Support
in Linux en http://www.suse.de/~aj/linux_lfs.html.
Usuarios de Windows, por favor tengan en cuenta que: FAT and VFAT (FAT32) no se consideran apropiados para
sistemas de produccin con MySQL. Use NTFS para ello.
Por defecto, MySQL crea tablas MySAM con una estructura interna que permite un tamao mximo de unas 4GB. Puede
chequear el tamao mximo de tabla para una tabla con el comando SHOW TABLE STATUS o con myisamchk -dv
tbl_name.
Si necesita una tabla MySAM con un tamao mayor a 4GB (y su sistema operativo soporta ficheros grandes), el
comando CREATE TABLE permite las opciones AVG_ROW_LENGTH y MAX_ROWS.
Tambin puede cambiar esas opciones con ALTER TABLE una vez que la tabla se ha creado, para aumentar el tamao
mximo de latabla.
Otros mtodos para cambiar los lmites de tamao de ficheros para tablas MySAM son:
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Si una tabla es de slo lectura, puede usar myisampack para comprimirla. myisampack normalmente comprime una
tabla al menos un 50%, lo que permite, a efectos prcticos, tablas mucho mayores. myisampack puede mezclar mltiples
tablas en una misma tabla.

MySQL incluye la biblioteca MERGE que permite tratar una coleccin de tablas MySAM con una estructura idntica en
una tabla MERGE.
nstalar MySQL
En este captulo se describe cmo obtener e instalar MySQL:
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
1. Debe determinarse si la plataforma donde se desea hacer la instalacin est soportada. Ntese que no todos los
sistemas soportados son igualmente adecuados para ejecutar MySQL. En algunas plataformas el funcionamiento ser
mucho ms robusto y eficiente que en otras.
2. Debe elegirse la distribucin que se instalar. Hay varias versiones de MySQL disponibles, y la mayora lo estn en
varios formatos de distribucin. Se puede elegir entre distribuciones prearmadas que contienen programas binarios
(precompilados) o
bien cdigo fuente. En caso de duda, debe elegirse una distribucin binaria. Tambin se provee acceso pblico al cdigo
fuente para quienes deseen ver los desarrollos ms recientes y colaborar en el testeo de cdigo nuevo. Para establecer
qu versin y
tipo de distribucin debera usarse,
3. Descargar la distribucin que se desea instalar. Para ver una lista de sitios desde los cuales se puede obtener MySQL,
4. nstalar la distribucin. Para instalar MySQL desde una distribucin binaria. Para instalar MySQL a partir de una
distribucin de cdigo fuente o desde el directorio de desarrollo actual.
5. Realizar cualquier ajuste que sea necesario con posterioridad a la instalacin.
6. Si se desea ejecutar los scripts para medir el rendimiento de MySQL, debe estar disponible el soporte de Perl para
MySQL.
Cuestiones generales sobre la instalacin
Antes de instalar MySQL, se debera hacer lo siguiente:
1. Determinarse si la plataforma donde se desea hacer la instalacin est soportada.
2. Elegirse la distribucin que se instalar.
3. Descargar la distribucin que se desea instalar y verificar su integridad.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Sistemas operativos que MySQL soporta
En esta seccin aparecen listados los sistemas operativos en los que es posible instalar MySQL.
Se ha utilizado GNU Autoconfig, de modo que es posible portar MySQL a todos los sistemas modernos que tengan un
compilador de C++ y una implementacin funcional de subprocesos (threads) POSX. (El soporte de subprocesos es
necesario para el servidor. Para compilar nicamente el cdigo del cliente, no se requiere ms que el compilador de C+
+). Nosotros mismos desarrollamos y
utilizamos el software ante todo en Linux (SuSE y Red Hat), FreeBSD, y Sun Solaris (Versiones 8 y 9), MySQL ha sido
compilado correctamente en las siguientes combinaciones de sistemas operativos y paquetes de subprocesos. Ntese
que, para varios sistemas operativos, el soporte nativo de subprocesos funciona solamente en las versiones ms
recientes.
AX 4.x, 5.x con subprocesos nativos
BSD 2.x with con el paquete MT-pthreads.
BSD 3.0, 3.1 y 4.x con subprocesos nativos.
Digital Unix 4.x con subprocesos nativos.
FreeBSD 2.x con el paquete MT-pthreads.
FreeBSD 3.x and 4.x con subprocesos nativos.
FreeBSD 4.x con LinuxThreads.
HP-UX 10.20 con el paquete DCE threads o MT-pthreads.
HP-UX 11.x con subprocesos nativos.
Linux 2.0+ con LinuxThreads 0.7.1+ o glibc 2.0.7+ para varias arquitecturas de CPU.
Mac OS X.
NetBSD 1.3/1.4 ntel y NetBSD 1.3 Alpha (requiere GNU make).
Novell NetWare 6.0.
OpenBSD > 2.5 con subprocesos nativos. OpenBSD < 2.5 con el paquete MT-pthreads.
OS/2 Warp 3, FixPack 29 y OS/2 Warp 4, FixPack 4.
SCO OpenServer 5.0.X con una versin del paquete FSU Pthreads recientemente portada.
SCO UnixWare 7.1.x.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
SCO Openserver 6.0.x.
SG rix 6.x con subprocesos nativos.
Solaris 2.5 y posteriores con subprocesos nativos en SPARC y x86.
SunOS 4.x con el paquete MT-pthreads package.
Tru64 Unix.
Windows 9x, Me, NT, 2000, XP, y 2003.
4.2 Crear y seleccionar una base de datos
Si el administrador crea su base de datos en el mismo momento que le otorga privilegios, puede comenzar a utilizarla, de
lo contrario necesitar crearla:
mysql> CREATE DATABASE menagerie;
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
En ambientes Unix, los nombres de las bases de datos son case sensitive (al contrario que las palabras clave), de modo
que siempre
debe referirse a su base de datos como menagerie, y no Menagerie, MENAGERE, o una variante similar. Esto tambin
se aplica a los nombres de tablas. Esta restriccin no existe en Windows, aunque puede utilizar el mismo esquema de
maysculas cuando se refiera a bases de datos y tablas en una consulta dada.
Al crear una base de datos, sta no se selecciona para su uso, debe hacerlo explcitamente. Para convertir a menagerie
en la base de datos actual, use este comando:
mysql> USE menagerie
Database changed
Las bases de datos slo necesitan ser creadas una sola vez, pero deben ser seleccionadas cada vez que se inicia una
sesin de mysql. Puede hacerse a travs del comando USE como se muestra en el ejemplo, o puede indicar la base de
datos en la lnea de comandos al ejecutar mysql. Simplemente debe indicar el nombre de la base de datos a continuacin
de los parmetros que necesite ingresar. Por ejemplo:
shell> mysql -h host -u user -p menagerie
Enter password: ********
Advierta en el comando anterior que menagerie no es la contrasea. Si se quisiera suministrar la contrasea en la lnea
de comandos, despus de la opcin -p, debe hacerse sin dejar espacios en blanco
(por ejemplo, pmypassword, no -p mypassword).
De todos modos, colocar la contrasea en la lnea de comandos no es recomendable porque lo expone a la vista de otros
usuarios.
%)ea) una ta<la
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
La creacin de la base de datos ha sido una tarea sencilla, pero hasta ahora permanece vaca, como le muestra SHOW
TABLES:
mysql> SHOW TABLES;
Empty set (0.00 sec)
La parte difcil es decidir cmo debera ser la estructura de su base de datos: qu tablas necesitar, y qu columnas
habr en cada tabla.
Querr una tabla para contener un registro por cada mascota. Esta tabla puede llamarse pet, y debera contener, como
mnimo, el nombre de cada animal. Dado que el nombre no es muy relevante por s mismo, tendra que tener ms
informacin. Por ejemplo, si ms de una persona en su familia tendr mascotas, querr listar tambin el dueo de cada
animal. Y algunos otros datos descriptivos bsicos, como especie y sexo.
Qu hacer con la edad? Podra ser de inters, pero no es un buen dato para almacenar en una base de datos. La edad
cambia a medida que pasa el tiempo, lo cual significa que debera actualizar la base de datos a menudo. En lugar de
esto, es mejor almacenar un valor fijo, como la fecha de nacimiento. De este modo, cada vez que requiera saber la edad,
podr calcularla como la diferencia entre la fecha de nacimiento y la fecha actual. MySQL provee funciones para realizar
clculos con fechas, por lo que no es dificultoso.
Almacenar la fecha de nacimiento en lugar de la edad tiene otras ventajas:
Puede usar la base de datos para tareas como generar recordatorios para los prximos cumpleaos de mascotas. (Si
piensa que este tipo de consultas no es importante, considere que es lo mismo que hara en un contexto de base de
datos de negocios para identificar aquellos clientes a los que habr que enviar una tarjeta por su cumpleaos, para
conseguir ese toque personal con la asistencia del ordenador).
Puede calcular edades en relacin a otras fechas adems de la actual. Por ejemplo, almacenar la fecha de muerte de
una mascota le posibilita calcular la edad que tena a ese momento.
Probablemente pensar en otros tipos de informacin que resultaran tiles dentro de la tabla pet pero los identificados
hasta ahora son suficientes: name (nombre), owner (propietario), species (especie), sex (sexo), birth (nacimiento) y death
(muerte).
Debe usar la sentencia CREATE TABLE para especificar la estructura de una tabla:
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
-> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
El tipo de dato VARCHAR es una buena eleccin para las columnas name, owner, y species porque los datos que all se
almacenan no son de longitud uniforme. En realidad no es necesario que todas estas columnas tengan la misma longitud
ni que sta sea 20. En MySQL 5.0.3 y versiones posteriores, normalmente se puede adoptar cualquier longitud entre 1 y
65535, segn lo que se crea ms razonable. (Nota: Anteriormente a MySQL 5.0.3, el lmite de longitud era 255.) Si en el
futuro debiera aumentar la longitud de estos campos, MySQL tiene la sentencia ALTER TABLE.
Hay varios tipos de datos que podran usarse para representar el sexo en los registros de animales, tal como 'm' y 'f', o
'male' (masculino) y 'female' (femenino). Lo ms simple es usar los caracteres 'm' y 'f'.
Es obvio el uso del tipo de dato DATE para las columnas birth y death.
Luego de crear una tabla, SHOW TABLES debera producir una salida:
mysql> SHOW TABLES;
+---------------------+
| Tables in menagerie |
+---------------------+
| pet |
+---------------------+
Para verificar que la tabla ha sido creada en la forma esperada, utilice la sentencia DESCRBE:
mysql> DESCRBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
DESCRBE puede ser utilizada en cualquier momento, por ejemplo, si olvida los nombres o el tipo de dato de las
columnas de la tabla.
%a)'a) datos en una ta<la
Luego de crear la tabla, necesitar completarla con datos. Para esto, le sern de utilidad las sentencias LOAD DATA e
NSERT.
Suponga que los registros de mascotas fueran como los mostrados a continuacin. (Observe que MySQL espera que las
fechas tengan el formato 'AAAA-MM-DD', esto puede ser diferente a lo que acostumbra utilizar).
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
na8e oMne) species seL <i)t; deat;
Fluffy Harold cat f 1993-02-04
Claws Gwen cat m 1994-03-17
Buffy Harold dog f 1989-05-13
Fang Benny dog m 1990-08-27
Bowser Diane dog m 1979-08-31 1995-07-29
Chirpy Gwen bird f 1998-09-11
Whistler Gwen bird 1997-12-09
Slim Benny snake m 1996-04-29
Dado que est comenzando con una tabla vaca, una forma fcil de completarla es creando un fichero de texto que
contenga una lnea por cada animal, y luego insertando el contenido del fichero en la tabla mediante una sola sentencia.
Para esto, debera crear un fichero de texto llamado pet.txt, conteniendo un registro por lnea, con cada valor separado
por un carcter de tabulacin, y dispuestos en el orden en el cual se especificaron las columnas en la sentencia CREATE
TABLE.
Para valores ausentes (como sexo desconocido o fechas de muerte de animales con vida), puede usar valores NULL.
Para representar estos valores en el archivo de texto, utilice \N (barra diagonal y N mayscula). Por ejemplo, el registro
de Whistler se vera del modo siguiente (el espacio en blanco entre cada valor es un solo carcter de tabulacin):
na8e oMne) species seL <i)t; deat;
Whistler Gwen bird \N 1997-12-09 \N
Para cargar el fichero pet.txt dentro de la tabla pet, utilice este comando:
mysql> LOAD DATA LOCAL NFLE '/path/pet.txt' NTO TABLE pet;
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Si trabaja en Windows, con un editor que emplea \r\n (retorno de carro + nueva lnea) como caracteres de fin de lnea,
debera usar:
mysql> LOAD DATA LOCAL NFLE '/path/pet.txt' NTO TABLE pet
-> LNES TERMNATED BY '\r\n';
(En un ordenador Apple bajo OS X, probablemente quiera utilizar LNES TERMNATED BY '\r'.)
Opcionalmente puede especificar en la sentencia LOAD DATA los caracteres que actuarn como separador de campo y
fin de lnea, pero los valores por defecto son tabulacin y nueva lnea. Estos son suficientes para que la sentencia lea
correctamente el fichero pet.txt Si ocurre un error al ejecutar la sentencia, probablemente se deba a que su instalacin de
MySQL no tiene habilitada por defecto la capacidad de manejar archivos locales.
Cuando lo que desea es agregar nuevos registros de a uno por vez, la sentencia NSERT resulta de utilidad. De esta
sencilla manera, se suministran valores para cada columna, dispuestos en el orden en el cual se especificaron las
columnas en la sentencia CREATE TABLE statement. Suponga que Diane obtiene un nuevo hamster llamado "Puffball".
Se podra agregar un nuevo registro, usando la sentencia NSERT de este modo:
mysql> NSERT NTO pet -> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
Observe que las cadenas alfanumricas y las fechas son representadas como cadenas delimitadas por apstrofos.
Tambin, con NSERT, se pueden insertar valores NULL directamente, para indicar un valor ausente. No se debe
utilizar \N como se hace con LOAD DATA.
A partir de este ejemplo queda demostrado que lleva mucho ms trabajo realizar una carga inicial de registros empleando
varias sentencias NSERT que si se hace mediante la sentencia LOAD DATA.
ELt)ae) in9o)8acin de una ta<la
La sentencia SELECT es utilizada para traer informacin desde una tabla. La sintaxis general de esta sentencia es:
SELECT seleccionar_Esto
FROM desde_tabla
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
WHERE condiciones;
seleccionar_esto es lo que se quiere ver. Puede ser una lista de columnas, o * para indicar "todas las columnas.
desde_tablaindica la tabla donde estn los datos a recuperar. La clusula WHERE clause is optional. es opcional. Si est
presente, condiciones representa las condiciones que cada registro debe cumplir para retornar como resultado.
Selecciona) todos los datos
La forma ms simple de SELECT recupera todo lo que hay en la tabla:
mysql> SELECT * FROM pet;
+----------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Fang | Benny | dog | m | 1990-08-27 | NULL |
| Bowser | Diane | dog | m | 1979-08-31 | 1995-07-29 |
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+--------+---------+------+------------+------------+
Esta forma de SELECT es til si se quiere revisar la tabla completa, por ejemplo, despus de haberla cargado con un
conjunto de datos inicial. Por ejemplo, puede ocurrir que la fecha de nacimiento de Bowser no parezca correcta.
Consultando los papeles de pedigri, se descubre que el ao correcto de nacimiento es 1989, no 1979. Existen al menos
dos formas de solucionarlo:
Editando el fichero pet.txt para corregir el error, vaciando la tabla y volvindola a llenar con los datos. Para esto se usan
las sentencias DELETE y LOAD DATA:
mysql> DELETE FROM pet;
mysql> LOAD DATA LOCAL NFLE 'pet.txt' NTO TABLE pet;
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
No obstante, si opta por esto, deber volver a cargar el registro de Puffball.
Corrigiendo nicamente el registro errneo. Para esto se usa la sentencia UPDATE:
mysql> UPDATE pet SET birth = '1989-08-31' WHERE name = 'Bowser';
UPDATE modifica solo el registro en cuestin y no requiere que se vuelva a llenar la tabla.
4.5 Ent)a) consultas
Cercirese de haberse conectado al servidor, tal como se describe en la seccin anterior. Esto en s mismo no selecciona
ninguna base de datos para trabajar. En este punto es ms importante aprender un poco ms acerca de cmo realizar
consultas que ir directamente a crear tablas, cargar datos, y recuperarlos. Esta seccin describe los principios bsicos del
ingreso de comandos, empleando varias consultas que puede realizar para familiarizarse con la forma en que funciona
mysql.
Aqu tiene un comando simple que ordena al servidor que muestre su nmero de versin y la fecha actual. ngrselo a
continuacin del prompt mysql> y presione Enter:
mysql> SELECT VERSON(), CURRENT_DATE;
+----------------+--------------+
| VERSON() | CURRENT_DATE |
+----------------+--------------+
| 5.0.7-beta-Max | 2005-07-11 |
+----------------+--------------+
1 row in set (0.01 sec) mysql>
Esta consulta le muestra varias cosas acerca de mysql:
Un comando normalmente consiste en una sentencia SQL seguida de punto y coma. (Hay excepciones donde el punto y
coma puede omitirse. QUT, mencionado anteriormente, es una de ellas. Luego conocer otras.)
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Cuando ingresa un comando, mysql lo enva al servidor para ser ejecutado e imprime los resultados. A continuacin
muestra de nuevo el prompt mysql> para informarle que est listo para otro comando.
mysql imprime los resultados de la consulta en forma tabulada (filas y columnas). La primera fila contiene etiquetas para
las columnas. Las filas siguientes son los resultados de la consulta. Generalmente, el nombre de cada columna es el
nombre del campo que trae desde la base de datos. Si est trayendo el valor de una expresin, en lugar del contenido de
un campo o columna de una tabla (como en el ejemplo anterior), mysql etiqueta la columna usando el texto de la
expresin.
mysql informa cuntas filas fueron devueltas y cunto tiempo le tom ejecutarse a la consulta, lo cual da una idea
aproximada del rendimiento del servidor. Estos valores son imprecisos porque representan tiempo de reloj corriente (no
tiempo de CPU), y adems porque estn afectados por factores como la carga del servidor o la latencia de red. (Para
simplificar los ejemplos de este capitulo, a partir de ahora no se mostrar la lnea "rows in set.)
Las palabras clave pueden ingresarse en cualquier combinacin de minsculas y maysculas. Las siguientes consultas
son equivalentes:
mysql> SELECT VERSON(), CURRENT_DATE;
mysql> select version(), current_date;
mysql> SeLeCt vErSiOn(), current_DATE;
Aqui tiene otra consulta que demuestra que mysql puede usarse como calculadora:
mysql> SELECT SN(P()/4), (4+1)*5;
+------------------+---------+
| SN(P()/4) | (4+1)*5 |
+------------------+---------+
| 0.70710678118655 | 25 |
+------------------+---------+
1 row in set (0.02 sec)
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Las consultas mostradas hasta ahora han sido relativamente cortas, sentencias de una sola lnea. Se puede inclusive
ingresar mltiples sentencias en una misma lnea. Solamente deben separarse con punto y coma:
mysql> SELECT VERSON(); SELECT NOW();
+----------------+
| VERSON() |
+----------------+
| 5.0.7-beta-Max |
+----------------+
1 row in set (0.00 sec)
+---------------------+
| NOW() |
+---------------------+
| 2005-07-11 17:59:36 |
+---------------------+
1 row in set (0.00 sec)
No es necesario que un comando sea ingresado en una sola lnea, de ese modo, comandos extensos que requieren
varias lneas no son un problema. mysql determina cuando una sentencia ha llegado a l final observando si termina en un
punto y coma, no si se lleg al final de la lnea fsica. (En otras palabras, mysql acepta un formato libre para las entradas:
recolecta lneas pero no las ejecuta hasta que encuentra el punto y coma.)
Aqui tiene una sentencia de mltiples lneas:
mysql> SELECT
-> USER()
-> ,
-> CURRENT_DATE;
+---------------+--------------+
| USER() | CURRENT_DATE |
+---------------+--------------+
| jon@localhost | 2005-07-11 |
+---------------+--------------+
1 row in set (0.00 sec)
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Observe en este ejemplo que el prompt cambia de mysql> a -> despus que se ha ingresado la primera lnea de una
consulta de mltiples lneas. Esta es la forma en que mysql advierte que no se ha completado la sentencia y an espera
por el resto. El prompt es un aliado, puesto que suministra informacin valiosa. Si se emplea, siempre se sabr lo que
mysql est esperando.
Si durante el ingreso de un comando decide que no quiere ejecutarlo, canclelo tipeando \c:
mysql> SELECT
-> USER()
-> \c
mysql>
Una vez ms observe el prompt. Cambia a mysql> despus de que ingresa \c, informndole que mysql est listo para un
nuevo comando.
La siguiente tabla muestra cada uno de los indicadores que podr ver y sintetiza lo que dicen acerca del estado en que se
encuentra mysql:
Prompt Significado
mysql> Listo para un nuevo comando.
-> Esperando la siguiente lnea en un comando de mltiples lneas.
'> Esperando la siguiente lnea, se encuentra abierta una cadena que comienza con apostrofo (''').
"> Esperando la siguiente lnea, se encuentra abierta una cadena que comienza con comillas dobles ('"').
`> Esperando la siguiente lnea, se encuentra abierta una cadena que comienza con tilde ('`').
/*> Esperando la siguiente lnea, se encuentra abierto un comentario que comienza con /*.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
El prompt /*> fue introducido en la serie 5.0 a partir de MySQL 5.0.6.
Es frecuente que se origine una sentencia de mltiples lneas cuando accidentalmente le da entrada a un comando de
una sola lnea pero olvida terminarlo con punto y coma. En ese caso, mysql aguarda por ms caracteres:
mysql> SELECT USER()
->
Si esto le ocurre (considera que ha ingresado una sentencia completa pero solamente obtiene un prompt ->), la mayora
de las veces es porque mysql est esperando por el punto y coma. Si no advierte lo que el indicador trata de decirle,
podra demorar un buen tiempo en hacer lo que necesita. ngrese un punto y coma para completar la sentencia, y mysql
la ejecutar:
mysql> SELECT USER()
-> ;
+--------------------+
| USER() |
+--------------------+
| joesmith@localhost |
+--------------------+
Los prompts '> y "> aparecen durante el ingreso de cadenas. Puede escribir cadenas delimitadas por ''' o '"' (por ejemplo,
'hola' o "adis"), y mysql le permite ingresar cadenas divididas en mltiples lneas. Cuando ve un prompt '> o "> significa
que ha comenzado a ingresar una cadena comenzando con ''' o '"' pero no ha ingresado el correspondiente carcter de
terminacin. A menudo esto significa que inadvertidamente omiti este carcter. Por ejemplo:
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
'>
Si ingresa esta sentencia SELECT, presiona ENTER y espera por el resultado, nada ocurrir. En lugar de asombrarse por
el tiempo que consume la consulta, note lo que el prompt '> le est diciendo. ndica que mysql espera por el final de una
cadena inconclusa. (Ve el error en la sentencia? La cadena 'Smith no tiene el apstrofo de cierre.)
Qu hacer llegado a este punto? Lo ms simple es cancelar el comando. No obstante, no puede simplemente tipear \c
en este caso, porque mysql interpretar que es parte de la cadena que est ingresando!. En lugar de eso, tipee el
carcter de cierre que falta y entonces ingrese \c.>:
mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
'> '\c
mysql>
El prompt cambia de nuevo a mysql>, informando que mysql est listo para un nuevo comando.
El prompt `> es similar a '> y "> , pero informa que est pendiente de completar un identificador delimitado por tildes.
Es importante conocer el significado de estos indicadores, ya que si por error se ingresa una cadena incompleta, todo lo
que se ingrese posteriormente ser aparentemente ignorado por mysql incluyendo el comando QUT. Esto puede ser
sumamente desconcertante, en particular si no se conoce lo que debe hacer para terminar la lnea y cancelar el
comando.
Selecciona) )e'ist)os especB9icos
Como se ha visto en la seccin anterior, es fcil recuperar una tabla en su totalidad. Slo debe omitir la clusula WHERE
en la sentencia SELECT. Pero, generalmente, no se desea ver la tabla completa, especialmente cuando alcanza un gran
tamao. En cambio, usualmente, se tiene inters en obtener una respuesta para una consulta en particular, en cuyo caso
se especifican algunas restricciones para la informacin que se traer. A continuacin se vern algunas consultas que
responden preguntas acerca de las mascotas.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Se pueden seleccionar slo algunos registros de la tabla. Por ejemplo, si quisiera verificar los cambios realizados sobre la
fecha de nacimiento de Bowser, seleccione el registro de Bowser de esta manera:
mysql> SELECT * FROM pet WHERE name = 'Bowser';
+--------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+-------+---------+------+------------+------------+
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+-------+---------+------+------------+------------+
La salida confirma que el ao fue correctamente registrado como 1989, ya no es 1979.
Normalmente, las comparaciones de cadenas no son case sensitive, por eso puede escribir el nombre como 'bowser',
'BOWSER', etc. El resultado de la consulta ser el mismo.
Se pueden indicar condiciones a cumplir por cualquier columna, no solamente por name. Por ejemplo, si quisiera saber
qu animales han nacido luego de 1998, necesita evaluar la columna birth:
mysql> SELECT * FROM pet WHERE birth > '1998-1-1';
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+-------+---------+------+------------+-------+
Se pueden combinar condiciones, por ejemplo para localizar perros hembra:
mysql> SELECT * FROM pet WHERE species = 'dog' AND sex = 'f';
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
+-------+--------+---------+------+------------+-------+
La consulta anterior emplea el operador lgico AND. Tambin existe el operador OR:
mysql> SELECT * FROM pet WHERE species = 'snake' OR species = 'bird';
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
+----------+-------+---------+------+------------+-------+
AND and OR pueden ser combinadas, si bien AND tiene mayor precedencia que OR. Si utiliza ambos operadores, es
buena idea emplear parntesis para indicar explcitamente la forma en que las condiciones deben agruparse:
mysql> SELECT * FROM pet WHERE (species = 'cat' AND sex = 'm')
-> OR (species = 'dog' AND sex = 'f');
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
4.4 /o)8ula)ios Elect)nicos
Estamos ya bastante familiarizados con diversos tipos de formularios en papel: albaranes de pedido, propuestas de
gastos, formularios para envo de fax, etc. aunque puede haber grandes diferencias de unos a otros, lo cierto es que
todos ellos tienen unos cuantos aspectos en comn:
Todos los formularios contienen un texto estndar y espacios en blanco o campos en donde se ha de introducir la
informacin.
El texto y los campos estn organizados en forma de cuadrcula, con espacios en blanco para la entrada de datos.
Los formularios en papel son conocidos habitualmente por su dificultad para rellenarlos, y en el caso de formularios
rellenos a mano, su dificultad para descifrarlos posteriormente.
Los formularios electrnicos vienen a minimizar muchas de las desventajas de los que se presentan en papel. Es posible
disear un formulario electrnico de manera que contenga informacin de ayuda para la persona que tenga que
rellenarlo. Estos formularios electrnicos pueden contener campos de texto de una longitud prefijada, o bien de longitud
variable. Los campos de lista desplegable ofrecen una serie de opciones de entre las cuales el usuario debe elegir una.
Para las respuestas del tipo "si" o "no", puede crearse campos con casillas de verificacin de forma que el usuario se
puede limitar a hacer clic con el ratn para que aparezca una "X" en la casilla adecuada.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Tambin es posible especificar una serie de respuestas "por omisin" en campos especficos, con vistas a facilitar an
ms la labor de complementacin del formulario.
Puesto que el formulario se rellena desde la propia computadora, se evitan todos los posibles problemas de interpretacin
de los datos introducidos, como sucede con los formularios en papel rellenos a mano. Adems, si la computadora est
conectada a una red, los formularios electrnicos pueden ser cumplimentados y compartidos de la misma forma que se
comparte cualquier otro tipo de documento, eliminando as por completo la necesidad de los formularios en papel.
Windows viene con muchos programas accesorios tiles, incluyendo un procesador de texto elemental (WordPad), un
programa de grficos (Paint) y un programa de comunicacin (HyperTerminal). Tambin proporciona varias herramientas
tiles, como Calculadora (Calculator) y Block de notas (Notepad). Para otras funciones (de acuerdo a las necesidades),
se utiliza el Microsoft Office, en el cual es posible disear formularios electrnicos que garantizan una rpida y correcta
recogida de informacin; en cualquiera de sus aplicaciones: Word, Excel, Power Point y, la ms adecuada y/o diseada
para este fin especfico, Access
4.6 %)eacin de un in9o)8e )+pido
Los informes de base de datos estn definidos por bandas de informe. Estas bandas de informes se definen cinco tipos
diferentes de lneas de informe por ejemplo la cabecera que aparecen en la parte superior de cada pgina, lneas de
detalle y resmenes de informe. Cuando se utiliza la organizacin de informe rpido no es necesario aprender sobre los
diferentes tipos de bandas; todo lo que se necesita es decir a Dbase que cree el formato del informe.
Dbase coloca las entradas en las bandas del informe cuando crea un informe rpido. Crea una banda cabecera de pgina
que contiene la fecha, nmero de pginas y nombre de campo. Una banda de detalle contiene las entradas de la base de
datos. La banda de resumen de informe contiene los totales de todos los campos numricos y flotantes.
Se puede comprobar al aspecto de un formato de informe visualizndolo en pantalla. Dbase visualizar las entradas de
los registros en lugar de los patrones. Se puede ir hacia delante para ver las pginas posteriores del informe, pero no se
puede revisualizar pantallas de informaciones previas.
Para crear un informe rpido:
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
o Desplazar el subrayado en el panel de datos al archivo del que se requiere un informe rpido.
o Pulsar la tecla de informe rpido (DESPL F9)
o Teclear V para visualizar el informe en pantalla
o Pulsar la BARRA DE ESPACO para ver cada pantalla del informe y volver al Centro de Control.
Se puede crear un informe rpido desde cualquier panel de Centro de Control (excepto desde el panel de aplicaciones, si
hay un archivo de datos activo. Se pulsa la tecla de nforme Rpido (DESPL F9) para activarlo. Tambin se puede
crearse el modo a travs del panel de datos del centro de control. El informe que se crea, utiliza la base de datos actual a
menos que se seleccione otra base de datos en el panel datos del centro de control y se pulsa la tecla de informe rpido
(DESPL. F9)
Para imprimir un informe
Para imprimir un informe con la impresora implcita:
o Convertir en actual la base de datos de la que se requiere crear un informe.
o Pulsar la tecla de informe rpido(DESPL.-F9)
o Teclear B para la opcin comenzar a imprimir.
Para imprimir un informe con otra opcin de impresora:
o Convertir en actual la base de datos de la que se quiere crear un informe.
o Pulsar la tecla de informe rpido (DESPL.-F9)
o Teclear D para la opcin destinatario
o Teclear P para la opcin Printer Model hasta que la dbase visualice una breve descripcin de
la impresora.
o Teclear B para la opcin Bejn Printing.
%)eacin : al8acena8iento de un in9o)8e pe)sonali,ado.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Los informes personalizados ofrecen lo ltimo en posibilidades de personalizacin. Sin embargo, toda esta flexibilidad
requiere un compromiso puesto que lleva ms tiempo crear un informe personalizado que crear un informe rpido. Se
puede combinar las ventajas de ambos planteamientos cuando slo se necesitan realizar pequeos cambios a un informe
rpido utilizando las opciones del men de disposicin rpida. Estas opciones permiten seleccionar un formato para crear
rpidamente un diseo de informe que se pueda modificar posteriormente.
Se pueden aadir y eliminar campos desde el diseo de informe. Se puede salvar la disposicin del informe modificado y
proseguir su ampliacin con el tiempo. La inversin que se realiza personalizando un informe dar beneficios a lo largo de
la vida de la aplicacin de la base.
Para crear una disposicin rpida para un informe personalizado:
o Active la base de datos que vaya a utilizar para el informe.
o Pulse flecha derecha tres veces para moverse al panel de informe (report panel)
o Pulse intro o la tecla de diseo (DESPL.- F2) para introducirse a la pantalla de diseo de informes.
o Subraye Quick Layouts (Disposicin rpida) pulse intro o teclee Q para seleccionar la disposicin rpida del
men de despliegue layout (composicin)
o Mueva el subrayado a la opcin de composicin que se quiera y pulse NTRO o teclee la primera letra de la
opcin de composicin.
4.7 %uestiones de se'u)idad 'ene)al
Esta seccin describe algunos temas generales de seguridad que hay que tener en cuenta, y qu se puede hacer para
aumentar la seguridad de la instalacin MySQL contra ataques o errores de uso. Para encontrar informacin especfica
sobre el sistema de control de accesos que MySQL utiliza para crear cuentas de usuarios y comprobar el acceso a las
bases de datos.
Gua de seguridad general
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Cualquiera que utilice MySQL en un ordenador conectado a nternet debera leer esta seccin para evitar los errores de
seguridad ms comunes.
Al tratar el tema de la seguridad, hacemos hincapi en la necesidad de proteger totalmente la mquina completa (no
nicamente el servidor MySQL) contra todos los tipos de ataques posibles; intercepcin pasiva de paquetes, alteracin,
reproduccin de comandos (playback), y denegacin de servicio. Aqu no tratamos todos los aspectos de disponibilidad y
tolerancia a fallos.
Para todas las conexiones, consultas, y otras operaciones que los usuarios pueden intentar realizar, MySQL utiliza
seguridad basada en Listas de Control de Acceso (ACLs). Tambin hay algn soporte para conexiones cifradas mediante
SSL entre clientes y servidores MySQL. Muchos de los conceptos que aqu se exponen no son especficos de MySQL;
las mismas ideas generales se pueden aplicar a cualquier aplicacin.
Al ejecutar MySQL, siga siempre que sean posibles estas recomendaciones:
No de nunca a nadie (excepto a la cuenta root de MySQL acceso a la tabla user en la base de datos mysql! Esto es
crtico. La clave cifrada es la verdadera clave en MySQL. Cualquiera que sepa cual es la clave que hay en la tabla user y
tenga acceso a la mquina host de la cuenta registrada puede acceder fcilmente como ese usuario.
Estudie el sistema de privilegios de acceso de MySQL. Las sentencias GRANT y REVOKE se utilizan para controlar el
acceso a MySQL. No otorgue ms privilegios de los necesarios. Nunca otorgue privilegios a un mismo usuario sin tener
en cuenta el equipo desde el que se conecta.
Lista de comprobaciones:
Pruebe el comando mysql -u root. Si es capaz de conectar al servidor sin la necesidad de introducir una clave, tiene
problemas. Cualquiera puede conectar a su servidor MySQL como el usuario root de MySQL con privilegios totales!
Revise las instrucciones de instalacin de MySQL, prestando atencin en concreto a la informacin sobre establecer una
clave para el usuario root.
Utilice la sentencia SHOW GRANTS y compruebe quin tiene acceso a qu. Despus utilice la sentencia REVOKE
para denegar los privilegios que no son necesarios.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
No almacene ninguna clave sin cifrar en su base de datos. Si alguien tuviera acceso a su ordenador, el intruso podra
obtener la lista completa de claves y utilizarlas. En vez de eso, utilice MD5(), SHA1(), o cualquier otra funcin de hashing
de un sentido.
No elija claves que puedan aparecer en un diccionario. Existen programas especiales para romperlas. ncluso claves
como ``xperro98'' son muy malas. Es mucho mejor ``oweei98'', que contiene la misma palabra ``perro'' pero escrita
desplazndose una tecla a la izquierda en un teclado QWERTY convencional. Otro mtodo es usar ``Mtupc'', que ha sido
tomada de las primeras letras de cada palabra de la frase ``Mara tuvo un pequeo corderito.'' As es fcil de recordar y
escribir, pero difcil de adivinar para cualquiera que no la conozca.
nvierta en un firewall. Le proteger de al menos el 50% de todos los tipos de vulnerabilidades de cualquier software.
Ponga MySQL tras el firewall o en una zona desmilitarizada (DMZ).
Lista de comprobaciones:
ntente escanear sus puertos desde nternet utilizando una herramienta como nmap. MySQL utiliza el puerto 3306 por
defecto. Este puerto no debera ser accesible desde lugares no confiables. Otra manera simple de probar si el puente
MySQL est abierto o no es intentar el siguiente comando desde alguna mquina remota, donde server_host es la
mquina en la que su servidor MySQL se est ejecutando:
shell> telnet server_host 3306
Si consigue conectar y algunos caracteres extraos, el puerto est abierto, y debera cerrarlo en su firewall o router, a
menos que tenga una buena razn para mantenerlo abierto. Si el comando telnet no consigue conectar o la conexin es
rechazada, entonces el puerto se encuentra bloqueado, que es como queremos que est.
No confe en ningn dato enviado por los usuarios de sus aplicaciones. Pueden intentar engaar a su cdigo
introduciendo secuencias de caracteres especiales en formularios webs, URLs, o cualquier aplicacin que haya
desarrollado. Asegrese de que su aplicacin permanece segura si un usuario introduce algo como ``; DROP DATABASE
mysql;''. Este es un ejemplo algo extremo, pero los mayores agujeros de seguridad y prdidas de datos pueden ocurrir
como resultado de hackers utilizando tcnicas similares, si no se est preparado para ellas.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Un error comn es proteger nicamente valores de tipo cadena de caracteres. Recuerde comprobar los datos numricos
tambin.
Si una aplicacin genera una consulta como SELECT * FROM table WHERE D=234 cuando un usuario introduce el valor
234, el usuario podra introducir el valor 234 OR 1=1 para provocar que la aplicacin genere la consulta SELECT * FROM
table WHERE D=234 OR 1=1. Como resultado, el servidor extraer todos los registros en la tabla. Esto, adems de
exponer cada registro, causa una carga excesiva en el servidor. La manera ms simple de protegerse frente a este tipo
de ataque es utilizar comillas simples alrededor de las constantes numricas:
SELECT * FROM table WHERE D='234'.
Si el usuario entrase informacin extra, todo sera parte de la cadena de caracteres. En un contexto numrico, MySQL
automticamente convierte esta cadena en un nmero, y elimina cualquier carcter no numrico del final que la cadena
pueda contener.
Ad8inist)acin de <ases de datos
A veces la gente piensa que si una base de datos contiene slo datos de dominio pblico, no tiene por qu ser protegida.
Esto es incorrecto. Aunque sea admitible mostrar cualquier registro de la base de datos, siempre se debera proteger
contra ataques de tipo denegacin de servicio (por ejemplo, aquellos que se basan en la tcnica del prrafo precedente,
que causan que el servidor malgaste recursos). Si no, el servidor podra quedar inservible para sus usuarios legtimos.
Lista de comprobaciones:
ntente introducir comillas simples y dobles (''' y '"') en todos sus formularios web. Si obtiene cualquier clase de error
MySQL, investigue el problema sin demora.
ntente modificar las URLs dinmicas aadiendo las cadenas %22 ('"'), %23 ('#'), y %27 (''').
ntente modificar los tipos de datos en las URLs dinmicas de tipos numricos a alfanumricos, usando los caracteres
mostrados en los ejemplos previos. Su aplicacin debera ser segura contra estos y otros ataques similares.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
ntente introducir letras, espacios, y smbolos especiales en vez de nmeros en los campos numricos. Su aplicacin
debera eliminarlos antes de pasarlos a MySQL, o en todo caso generar un error. Pasar valores sin comprobar a MySQL
es muy peligroso!
Compruebe el tamao de los datos antes de pasrselos a MySQL.
Haga que su aplicacin se conecte a la base de datos utilizando un nombre de usuario diferente del que utiliza para
tareas administrativas. No d a sus aplicaciones ningn acceso que no necesiten.
Muchas interfaces de programacin de aplicaciones proveen alguna manera de preceder con caracteres de escape los
caracteres especiales en sus datos. Usados adecuadamente, esto previene que los usuarios de las aplicaciones
introduzcan valores que provoquen que la aplicacin genere sentencias con efectos diferentes a los que usted pretenda:
AP MySQL de C: Utilice la funcin mysql_real_escape_string().
MySQL++: Utilice los modificadores escape y quote para streams
PHP: Utilice la funcin mysql_escape_string(), que est basada en la funcin del mismo nombre de la AP MySQL de C.
(Con versiones anteriores a PHP 4.0.3, utilice addslashes() en cambio.) En PHP 5, puede utilizar la extensin mysqli, que
soporta los protocolos de autentificacin y clave de acceso mejorados de MySQL, as como las sentencias preparadas
con placeholders.
DB de Perl: Utilice el mtodo quote() o utilice placeholders.
JDBC de Java: Utilice un objeto PreparedStatement y placeholders.
Otras interfaces de programacin deberan tener capacidades similares.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
No transmita datos sin cifrar por nternet. Esta informacin es accesible para cualquiera que tenga el tiempo y la
habilidad para interceptarla y utilizarla para sus propios propsitos. En vez de eso, utilice un protocolo de cifrado como
SSL o SSH. MySQL soporta conexiones SSL internas desde la versin 4.0.0. El redireccionamiento de puertos de SSH
se puede utilizar para crear un tunel cifrado (y comprimido) para la comunicacin.
Aprenda a utilizar las herramientas tcpdump y strings. En la mayora de los casos, usted puede comprobar si los flujos
de datos de MySQL estn cifrados ejecutando un comando como el siguiente:
shell> tcpdump -l -i eth0 -w - src or dst port 3306 | strings
(Esto funciona en Linux, y debera funcionar, con pequeas modificaciones en otros sistemas.) Atencin: Si no ve los
datos en formato de texto, esto no siempre quiere decir que la informacin est realmente cifrada. Si necesita un alto
nivel de seguridad, debera consultar a un experto en la materia.
*ace) @ue M:S?$ sea se'u)o cont)a ata@ues
Cuando se conecta a un servidor MySQL, debera utilizar una clave. La clave no se transmite en texto llano a travs de la
conexin.
El tratamiento de las claves durante la conexin de un cliente ha sido mejorado en MySQL 4.1.1 para ser muy seguro. Si
todava est utilizando claves del tipo anterior a 4.1.1, el algoritmo de cifrado no es tan potente como el nuevo algoritmo;
con un poco de esfuerzo un atacante inteligente que pueda interceptar el trfico entre el cliente y el servidor podra
romper la clave.
Si la conexin entre el cliente y el servidor pasa a travs de una red no segura, debera utilizar un tunel SSH para cifrar la
comunicacin.
Toda la dems informacin se transmite como texto, y puede ser leda por cualquiera que pueda observar la conexin. Si
esto le preocupa, utilice el protocolo comprimido para hacer que el trfico sea mucho ms difcil de descifrar. Para hacer
la conexin an ms segura, debera utilizar SSH para conseguir una conexin TCP/P cifrada entre el servidor MySQL y
el cliente MySQL. Puede encontrar un cliente SSH Open Source en http://www.openssh.org/, y un cliente comercial en
http://www.ssh.com/.
En MySQL 5.0, puede utilizar tambin el soporte interno de OpenSSL.
Para convertir un sistema MySQL en seguro, debera considerar seriamente las siguientes sugerencias:
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Utilice claves para todos los usuarios MySQL. Un programa cliente no conoce necesariamente la identidad de la
persona utilizndolo.
Es comn en las aplicaciones cliente/servidor que el usuario pueda especificar cualquier nombre de usuario al programa
cliente. Por ejemplo, cualquiera puede utilizar el programa mysql para conectarse como cualquier otra persona,
simplemente invocndolo de la siguiente manera: mysql -u otro_usuario nombre_bd cuando otro_usuario no tiene clave.
Si todos los usuarios tienen una clave, conectarse utilizando la cuenta de otro usuario se vuelve mucho ms difcil. Para
cambiar la clave de un usuario, utilice la sentencia SET PASSWORD. Tambin es posible alterar la tabla user en la base
de datos mysql directamente. Por ejemplo, para cambiar la clave de todas las cuentas MySQL que tienen por nombre de
usuario root, haga lo siguiente:
shell> mysql -u root
mysql> UPDATE mysql.user SET
Password=PASSWORD('newpwd')
-> WHERE User='root';
mysql> FLUSH PRVLEGES;
Nunca ejecute el servidor MySQL con el usuario root de Unix. Esto es extremadamente peligroso porque cualquier
usuario con el privilegio FLE es capaz de crear ficheros como root (por ejemplo, ~root/.bashrc). Para prevenir esto,
mysqld rechaza ejecutarse como root a menos que se utilice explcitamente la opcin --user=root. En vez de eso, mysqld
puede (y debe) ser ejecutado mediante un usuario normal sin privilegios. Puede crear una cuenta de Unix especfica
llamada mysql para hacerlo todo an ms seguro. Utilice esta cuenta tan solo para administrar MySQL. Para ejecutar
mysqld mediante un usuario de Unix diferente, aada la opcin user que especifica el nombre de usuario al grupo
[mysqld] del fichero de opciones /etc/my.cnf o al fichero de opciones my.cnf en el directorio de datos del servidor.
Por ejemplo:
[mysqld]
user=mysql
Esto provoca que el servidor se inicie mediante el usuario designado, lo ejecute usted manualmente o mediante
mysqld_safe o mysql.server.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Ejecutar mysqld como un usuario Unix diferente de root no significa que necesite cambiar el usuario root de la tabla user.
Los usuarios de las cuentas MySQL no tienen nada que ver con los usuarios de las cuentas Unix.
No permita el uso de enlaces simblicos a tablas. (Esto puede desactivarse con la opcin --skip-symbolic-links.) Esto es
especialmente importante si ejecuta mysqld como root, porque cualquiera que tenga acceso de escritura al directorio de
datos del servidor podra entonces borrar cualquier fichero en el sistema!.
Asegrese de que el nico usuario Unix con permisos de lectura o escritura en los directorios de la base de datos es el
usuario que ejecuta mysqld.
No otorgue los privilegios PROCESS o SUPER a usuarios no-administrativos. La salida del de mysqladmin processlist
muestra el texto de cualquier sentencia que se est ejecutando, as que cualquier usuario al que se permita ejecutar ese
comando puede ser capaz de ver si otro usuario ejecuta una sentencia UPDATE user SET
password=PASSWORD('not_secure'). mysqld reserva una conexin extra para usuarios que tengan el privilegio SUPER,
as que un usuario root puede conectarse y comprobar la actividad del servidor an cuando todas las conexiones
normales estn en uso.
El privilegio SUPER puede utilizarse para cerrar conexiones de cliente, cambiar el funcionamiento del servidor
modificando el valor de variables del sistema, y controlar servidores de replicacin.
No otorgue el privilegio FLE a usuarios no-administrativos. Cualquier usuario que posea este privilegio puede escribir
un archivo en cualquier de lugar del sistema de ficheros con los privilegios del demonio mysqld. Para hacer esto un poco
ms seguro, los archivos generados con SELECT ... NTO OUTFLE no sobrescriben archivos existentes, y pueden ser
escritos por cualquiera.
El privilegio FLE puede tambin ser utilizado para leer cualquier archivos que sea legible por cualquiera o accesible para
el usuario Unix que ejecuta el servidor. Con este privilegio, podra por ejemplo leer cualquier fichero e insertarlo en una
tabla de la base de datos. Esto podra utilizarse, por ejemplo, utilizando LOAD DATA para cargar /etc/passwd en una
tabla, que podra ser mostrada despus con un SELECT.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Si no confa en sus DNS, podra utilizar nmeros P en vez de nombres en las tablas de permisos (tablas grant). En
cualquier caso, debera ser muy cuidadoso en crear registros en las tablas de permiso utilizando nombres que contengan
caracteres comodines.
Si quiere restringir el nmero de conexiones permitidas para una misma cuenta, puede hacerlo estableciendo la variable
max_user_connections de mysqld. La sentencia GRANT tambin soporta opciones de control de recursos para limitar la
extensin de uso de servidor permitido a una cuenta. Consulte Seccin 13.5.1.3, "Sintaxis de GRANT y REVOKE.
Opciones de a))an@ue pa)a 8:s@ld )elacionadas con la se'u)idad
Las siguientes opciones de mysqld afectan a la seguridad:
--allow-suspicious-udfs
Esta opcin controla si las funciones definidas por el usuario que slo tienen un smbolo xxx para la funcin principal se
pueden cargar. Por defecto, la opcin est desactivada y slo UDFs que tengan al menos un smbolo auxiliar pueden
cargarse. Esto previene intentos de cargar funciones desde ficheros objetos compartidos que no contengan UDFs
legtimos. Para MySQL 5.0, esta opcin se aadi en MySQL 5.0.3.
--local-infile[={0|1}]
Si arranca el servidor con --local-infile=0, los clientes no pueden usar LOCAL en comandos LOAD DATA .
--old-passwords
Fuerza al servidor a generar hashes de contraseas cortos (pre-4.1) para las nuevas contraseas. Esto es til para
compatibilidad cuando el servidor debe soportar antiguos programas cliente.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
(OBSOLETO) --safe-show-database
En versiones previas de MySQL, esta opcin provoca que el comando SHOW DATABASES muestre los nombers de slo
aquellas bases de datos para las que el usuario tiene algn tipo de privilegio. En MySQL 5.0, esta opcin no est
disponible ya que es el comportamiento por defecto, y hay un privilegio SHOW DATABASES que puede usarse para
controlar el acceso a los nombres de las bases de datos para cada cuenta. Consulte Seccin 13.5.1.3, "Sintaxis de
GRANT y REVOKE.
--safe-user-create
Si est activada, un usuario no puede crear nuevos usuarios con el comando GRANT a no ser que el usuario tenga el
privilegio NSERT para la tabla mysql.user . Si desea que un usuario tenga la habilidad de crear nuevos usuarios con los
privilegios que el usuario tiene derecho a otorgar, debe otorgar al usuario el siguiente privilegio:
mysql> GRANT NSERT(user) ON mysql.user TO 'nombre_usuario'@'nombre_host';
Esto asegura que el usuario no pueda cambiar ninguna columna de privilegios directamente, pero debe usar el comando
GRANT para dar privilegios a otros usuarios.
--secure-auth
Desactiva autenticacin para cuentas que usen antiguas contraseas (pre-4.1)
--skip-grant-tables
Esta opcin hace que el servidor no use el sistema de privilegios en absoluto. Esto da a todo el mundo acceso total a
todas las bases de datos! (Puede decirle a un servidor en ejecucin que arranque usando las tablas de permisos de
nuevo usando mysqladmin flush-privileges o el comando mysqladmin reload, o mediante el comando FLUSH
PRVLEGES.)
--skip-name-resolve
Los nombres de equipo no se resuelven. Todo valor en la columna Host en la tabla de permisos deben ser nmeros P o
localhost.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
--skip-networking
No permite conexiones TCP/P a travs de la red. Todas las conexiones a mysqld se realizan mediante ficheros socket de
Unix.
--skip-show-database
Con esta opcin, el comando SHOW DATABASES se permite slo a usuarios que tengan el privilegio SHOW
DATABASES , y el comando muestra todos los nombres de bases de datos. Sin esta opcin , SHOW DATABASES est
permitido a todos los usuarios, pero muestra cada nombre de base de datos slo si el usuario tiene el privilegio SHOW
DATABASES o algn privilegio para la base de datos.
Cuestiones relacionadas con la seguridad y LOAD DATA LOCAL
El comando LOAD DATA puede cargar un fichero que est localizado en el equipo servidor, o puede cargar un fichero
localizado en el equipo cliente cuando se especifica la palabra clave LOCAL.
Hay dos aspectos de seguridad potenciales al soportar la versin LOCAL de los comandos LOAD DATA:
La transferencia del fichero desde el equipo cliente al equipo servidor se inicia mediante el servidor MySQL. En teora,
puede construirse un servidor modificado de forma que le diga al programa cliente que transfiera un fichero elegido por el
servidor en lugar del fichero especificado por el cliente en el comando LOAD DATA . Tal servidor podra acceder a
cualquier fichero en el equipo cliente al que el usuario cliente tuviese acceso de lectura.
En un entorno Web en el que los clientes se conecten mediante un servidor Web, un usuario podra usar LOAD DATA
LOCAL para leer cualquier fichero al que el servidor Web tuviese acceso de lectura (asumiendo que el usuario pudiese
ejecutar cualquier comando contra el servidor SQL). En este entorno, el cliente respecto al servidor MySQL es el servidor
Web, no el programa ejecutado por el usuario para conectar al servidor Web.
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
Para tratar estos problemas, hemos cambiado el funcionamiento de LOAD DATA LOCAL en MySQL 3.23.49 y MySQL
4.0.2 (4.0.13 en Windows):
Por defecto, todos los clientes MySQL y bibliotecas en distribuciones binarias se compilan con la opcin -
-enable-local-infile para ser compatible con la versin MySQL 3.23.48 y anteriores.
Si compila MySQL de los ficheros fuentes pero no usa la opcin --enable-local-infile para configure, LOAD DATA LOCAL
no puede usarse por ningn cliente a no ser que se escriba explcitamente para invocar mysql_options(...
MYSQL_OPT_LOCAL_NFLE, 0).
Puede desactivar todos los comandos LOAD DATA LOCAL desde el lado del servidor arrancando mysqld con la opcin
- -local-infile=0.
Para el cliente de lnea de comando mysql, LOAD DATA LOCAL puede activarse especificando la opcin -
-local-infile[=1] , o deshabilitarse con la opcin --local-infile=0 . De forma similar, para mysqlimport, las opciones --local o
-L permite la carga de datos locales. En cualquier caso, el uso exitoso de una operacin de carga local requiere que el
servidor lo permita.
Si usa LOAD DATA LOCAL en scripts de Perl scripts u otros programas que lean del grupo [client] en los ficheros de
opciones, puede aadir la opcin local-infile=1 a ese grupo. De todos modos, para evitar que esto cause problemas en
programas que no entiendan local-infile, especifquelo usando el prefijo loose- :
[client]
loose-local-infile=1
Si LOAD DATA LOCAL NFLE est desactivado, tanto en el servidor o el cliente, un cliente que trate de ejecutar dicho
comando recibe el siguiente mensaje de error:
ERROR 1148: The used command is not allowed with this MySQL version
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
DRECCON GENERAL DE EDUCACON TECNOLOGCA NDUSTRAL
COORDNACON DE ENLACE OPERATVO DE AGUASCALENTES
CENTRO DE BACHILLERATO TECNICO EN COMPUTACION

ASGNATURA: BASE DE DATOS .PERODO: AGOSTO 07 ENERO 08 SEMESTRE: 5 CCLO ESCOLAR: 2007 2008.
PROFESOR(A): L.. ALEJANDRO SRAEL MERCADO LOPEZ ESPECALDAD: PROGRAMADOR . GRUPO: A .
BBLOGRAFA
Libro MySQL 5.0 Reference Manual
www.Monografas.com/trabajos7/bada/bada.shtml
http://www.monografias.com/trabajos12/guiainf/guiainf.shtml

You might also like