domingo, 2 de diciembre de 2012

Tercera Unidad

INSTITUTO POLITECNICO NACIONAL 
CENTRO DE ESTUDIOS TECNOLOGICOS No.1
WALTER CROSS BUCHANAN



Alumnos: Herrera Espinosa Isaac
Rodriguez Gutierrez Daniela 

Grupo: 4IM4 


Materia: Operacion de Base de datos 










Introduccion

Siguiendo con la norma de la página de usar software libre, afrontamos un nuevo reto: trabajar con bases de datos mediante el lenguaje de consulta SQL. Este curso será la base para otros que nos permitirán usar bases de datos desde aplicaciones C/C++, PHP, etc.
Originalmente, este curso iba a tratar sólo sobre MySQL. Mi intención era limitarlo exclusivamente a explicar la sintaxis de las sentencias y funciones SQL, hacer algunos ejemplos y completar una referencia de MySQL.
Sin embargo, como me suele ocurrir cada vez que afronto un nuevo proyecto, las cosas no salen como las tenía planeadas. Poco a poco he ido añadiendo nuevos contenidos, (bastante lógicos, teniendo en cuenta el tema que nos ocupa), y estos contenidos han precisado la inclusión de otros...
Finalmente el curso se ha convertido en algo mucho más extenso, y sobre todo, mucho más teórico, aunque espero que también, en algo mucho más útil.
El curso permitirá (si he sido capaz de explicar todos los conceptos claramente) diseñar bases de datos a partir de problemas reales, haciendo uso de una base teórica firme.
El nivel será, teniendo en cuenta la complejidad del tema de las bases de datos, y el de MySQL, bastante básico. Este documento no pretende ser demasiado académico, está orientado a programadores autodidactas que quieran incluir bases de datos en sus aplicaciones. Tampoco entraremos en demasiados detalles sobre configuración de MySQL, o sobre relaciones con Apache o Windows. La principal intención es poder manejar bases de datos complejas y grandes, y sobre todo, poder usarlas desde otros lenguajes como C, C++ o PHP.
El presente curso nos obliga a tratar varios temas diferentes.
  • Fundamentos teóricos de bases de datos: modelos conceptuales, como el de Entidad-Relación, y modelos lógicos, como el modelo relacional, y herramientas relacionadas con ese modelo, como la normalización.
  • Trabajo con servidores. En el caso de MySQL, el servidor es el que realiza todas las operaciones sobre las bases de datos, en realidad se comporta como un interfaz entre las bases de datos y nuestras aplicaciones. Nuestras aplicaciones se comunicarán con el servidor para leer o actualizar las bases de datos.
  • Por otra parte, trataremos con un lenguaje de consulta y mantenimiento de bases de datos: SQL (Structured Query Language). SQL es un lenguaje en sí mismo, pero mediante el API adecuado podemos usarlo dentro de nuestros propios programas escritos en otros lenguajes, como C o C++.
La teoría sobre bases de datos así como el lenguaje SQL podrá sernos útil en otros entornos y con otros motores de bases de datos, como SQL server de Microsoft, o Access. De modo que lo que aprendamos nos servirá también fuera del ámbito de este curso.



GLOSARIO












Bibliografia


  • Creacion de un portal con PHP y MySQL
              2da Edicion 
              Jacobo Pavon Puertas
              Alfaomega Grupo Editor






Palabras Reservadas



Este apéndice es una traducción del manual de MySQL.
Un problema frecuente se deriva del intento de usar como identificador de una tabla o columna un nombre que se usa internamente por MySQL como nombre de dato o función, como TIMESTAMP o GROUP. Está permitido hacer esto (por ejemplo, ABS está permitido como nombre de columna). Sin embargo, por defecto, no se permiten espacios en blanco en las llamadas a función entre el nombre de la función y el paréntesis '('. Esta característica permite distinguir una llamada a función de una referencia a un nombre de columna.
Un efecto secundario de este comportamiento es que la omisión de un espacio en algunos contextos haga que un identificador sea interpretado como un nombre de función. Por ejemplo, esta sentencia es legal:
mysql> CREATE TABLE abs (val INT);
Pero si se omite el espacio después de 'abs' se produce un error de sintaxis porque entonces la sentencia parece que invoque a la función ABS():
mysql> CREATE TABLE abs(val INT);
Si el modo del servidor SQL incluye el valor de modo IGNORE_SPACE, el servidor permite que las llamadas a función puedan tener espacios entre el nombre de la función y el paréntesis. Esto hace que los nombres de la funciones se traten con palabras reservadas. Como resultado, los identificadores que sean iguales que nombres de funciones deben ser entrecomillados como se describe en el apéndice reglas para nombres.
Las palabras de la tabla siguiente son palabras reservadas explícitamente en MySQL. Muchas de ellas están prohibidas por SQL estándar como nombres de columna y/o tabla (por ejemplo, GROUP). Algunas son reservadas porque MySQL las necesita y (frecuentemente) usa un analizador sintáctico yacc. Una palabra reservada puede usarse como identificador si se entrecomilla.


Palabra
Palabra
Palabra
ADD
ALL
ALTER
ANALYZE
AND
AS
ASC
ASENSITIVE
BEFORE
BETWEEN
BIGINT
BINARY
BLOB
BOTH
BY
CALL
CASCADE
CASE
CHANGE
CHAR
CHARACTER
CHECK
COLLATE
COLUMN
CONDITION
CONNECTION
CONSTRAINT
CONTINUE
CONVERT
CREATE
CROSS
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_USER
CURSOR
DATABASE
DATABASES
DAY_HOUR
DAY_MICROSECOND
DAY_MINUTE
DAY_SECOND
DEC
DECIMAL
DECLARE
DEFAULT
DELAYED
DELETE
DESC
DESCRIBE
DETERMINISTIC
DISTINCT
DISTINCTROW
DIV
DOUBLE
DROP
DUAL
EACH
ELSE
ELSEIF
ENCLOSED
ESCAPED
EXISTS
EXIT
EXPLAIN
FALSE
FETCH
FLOAT
FOR
FORCE
FOREIGN
FROM
FULLTEXT
GOTO
GRANT
GROUP
HAVING
HIGH_PRIORITY
HOUR_MICROSECOND
HOUR_MINUTE
HOUR_SECOND
IF
IGNORE
IN
INDEX
INFILE
INNER
INOUT
INSENSITIVE
INSERT
INT
INTEGER
INTERVAL
INTO
IS
ITERATE
JOIN
KEY
KEYS
KILL
LEADING
LEAVE
LEFT
LIKE
LIMIT
LINES
LOAD
LOCALTIME
LOCALTIMESTAMP
LOCK
LONG
LONGBLOB
LONGTEXT
LOOP
LOW_PRIORITY
MATCH
MEDIUMBLOB
MEDIUMINT
MEDIUMTEXT
MIDDLEINT
MINUTE_MICROSECOND
MINUTE_SECOND
MOD
MODIFIES
NATURAL
NOT
NO_WRITE_TO_BINLOG
NULL
NUMERIC
ON
OPTIMIZE
OPTION
OPTIONALLY
OR
ORDER
OUT
OUTER
OUTFILE
PRECISION
PRIMARY
PROCEDURE
PURGE
READ
READS
REAL
REFERENCES
REGEXP
RENAME
REPEAT
REPLACE
REQUIRE
RESTRICT
RETURN
REVOKE
RIGHT
RLIKE
SCHEMA
SCHEMAS
SECOND_MICROSECOND
SELECT
SENSITIVE
SEPARATOR
SET
SHOW
SMALLINT
SONAME
SPATIA
SPECIFIC
SQL
SQLEXCEPTION
SQLSTATE
SQLWARNING
SQL_BIG_RESULT
SQL_CALC_FOUND_ROWS
SQL_SMALL_RESULT
SSL
STARTING
STRAIGHT_JOIN
TABLE
TERMINATED
THEN
TINYBLOB
TINYINT
TINYTEXT
TO
TRAILING
TRIGGER
TRUE
UNDO
UNION
UNIQUE
UNLOCK
UNSIGNED
UPDATE
USAGE
USE
USING
UTC_DATE
UTC_TIME
UTC_TIMESTAMP
VALUES
VARBINARY
VARCHAR
VARCHARACTER
VARYING
WHEN
WHERE
WHILE
WITH
WRITE
XOR
YEAR_MONTH
ZEROFILL

MySQL permite que algunas palabras reservadas sean usadas como identificadores sin entrecomillar porque mucha gente ya las usa. Ejemplos de esas palabras son las siguientes:

ACTION
BIT
DATE
ENUM
NO
TEXT
TIME
TIMESTAMP