TRABAJO FINALL

Anuncio
UNIVERSAD TECNOLOGICA DE TAMAULIPAS NORTE
Carrera: TECNOLOGIAS DE LA INFORMACION Y LA
COMUNICACION
Materia: BASE DE DATOS
Profesor: ROBERTO GARCIA GUERRERO
Alumna: CLAUDIA BERENICE LADRON DE GUEVARA
RODRIGUEZ
Grupo: 2° E
TRABAJO FINAL
1. FUNDAMENTOS DE BASE DE DATOS.
Que es una base de datos?
Una base de datos o banco de datos (en ocasiones abreviada con la sigla BD o con la
abreviatura b. d.) es un conjunto de datos pertenecientes a un mismo contexto y
almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede
considerarse una base de datos compuesta en su mayoría por documentos y textos impresos
en papel e indexados para su consulta. Actualmente, y debido al desarrollo tecnológico de
campos como la informática y la electrónica, la mayoría de las bases de datos están en
formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de
almacenar datos.
Existen programas denominados sistemas gestores de bases de datos, abreviado SGBD, que
permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada.
Las propiedades de estos SGBD, así como su utilización y administración, se estudian dentro
del ámbito de la informática.
Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas.
También son ampliamente utilizadas en entornos científicos con el objeto de almacenar la
información experimental.
Aunque las bases de datos pueden contener muchos tipos de datos, algunos de ellos se
encuentran protegidos por las leyes de varios países. Por ejemplo, en España los datos
personales se encuentran protegidos por la Ley Orgánica de Protección de Datos de
Carácter Personal (LOPD).
Para que sirve un base de datos?
Es una interfaz que te permite manejar grandes cantidades de informacion de manera
rapida y facil gracias a los comandos, accesos directos y demas prestaciones que da, asi
pues en vez de andar buscando dato por dato solo insertas algunas palabras claves y el
programa te muestra la informacion que buscas.
1.1 Conceptos Básicos.
Registro:
Un registro del sistema viene a ser una base de datos que tiene el fin de almacenar
configuración, opciones y comandos propios del sistema operativo.
Engine:
Es un conjunto de algoritmos que permite la gestión y optimización de base de datos.
Prudentemente el motor de base de datos utiliza instrucciones especificas para: búsqueda
de información, añadir, modificar, borrar: tablas, borrar, modificar: campos, etc.
Instancia:
Es el conjunto de areas de memoria que permiten el acceso a la base de datos, la instancia
es lo que se sube o baja.
Campo:
Es la mínima unidad de información a la que se puede acceder; un campo o un conjunto de
ellos forman un registro, en las hojas de cálculo los campos son llamadas celdas.
Entidad:
En el caso del enfoque “clásico” correspondería a cada registro guardado en un fichero.
Tipo de entidad:
Es el conjunto de entidades que comparten los mismos atributos (aunque con diferentes
Valores para ellos).
Clave:
Atributo o conjunto de atributos cuyos valores identifican unívocamente cada entidad.
Tabla en el modelo relacional:
Una tabla o relación es una matriz rectangular que almacena líneas con una estructura
concreta.
Access:
Es un programa que permite definir, desarrollar, mantener y utilizar base de datos
relacionales.
Consulta:
Esta utilidad permite seleccionar todos los registros de una base de datos que cumplan las
condiciones de las preguntas que se formulen.
1.2 Analisis de requerimientos de base de datos
El análisis de requerimientos para una base de datos incorpora las mismas tareas que el
análisis de requerimientos del software. Es necesario un contacto estrecho con el cliente; es
esencial la identificación de las funciones e interfaces; se requiere la especificación del flujo,
estructura y asociatividad de la información y debe desarrollarse un documento formal de
los requerimientos.
Es necesario recabar toda la información posible sobre la realidad, para luego analizarla con
detenimiento, desde distintos puntos de vista con el fin de lograr diseñar un modelo que la
represente de manera abstracta lo más fielmente posible.
El análisis de requerimientos solicita entendimiento, clasificación, organización, priorización y
validación.
En todo momento debemos considerar los límites del sistema, teniendo en claro cuál es
su objetivo primario ¿Qué es lo que queremos que el sistema haga? ¿Qué salidas de
información queremos obtener? Sólo de esta manera se podrá diferenciar qué de toda la
información recolectada debemos almacenar y cómo deberá ser el diseño que se ajuste a
ella.
2. MODELO ENTIDAD-RELACIÓN (E-R)
Cuando se utiliza una base de datos para gestionar información, se está plasmando una
parte del mundo real en una serie de tablas, registros y campos ubicados en un ordenador;
creándose un modelo parcial de la realidad. Antes de crear físicamente estas tablas en el
ordenador se debe realizar un modelo de datos.
Se suele cometer el error de ir creando nuevas tablas a medida que se van necesitando,
haciendo así el modelo de datos y la construcción física de las tablas simultáneamente. El
resultado de esto acaba siendo un sistema de información parcheado, con datos dispersos
que terminan por no cumplir adecuadamente los requisitos necesarios.
Entidades y Relaciones
El modelo de datos más extendido es el denominado ENTIDAD/RELACIÓN (E/R) En el
modelo E/R se parte de una situación real a partir de la cual se
definen entidades y relaciones entre dichas entidades:
Entidad.- Objeto del mundo real sobre el que queremos almacenar información (Ej: una
persona). Las entidades están compuestas de atributos que son los datos que definen el
objeto (para la entidad persona serían DNI, nombre, apellidos, dirección,...). De entre los
atributos habrá uno o un conjunto de ellos que no se repite; a este atributo o conjunto de
atributos se le llama clave de la entidad, (para la entidad persona una clave seria DNI). En
toda entidad siempre hay al menos una clave que en el peor de los casos estará formada
por todos los atributos de la tabla. Ya que pueden haber varias claves y necesitamos elegir
una, lo haremos atendiendo a estas normas:
Que sea única.
Que se tenga pleno conocimiento de ella.- ¿Por qué en las empresas se asigna a cada
cliente un número de cliente?.
Que sea mínima, ya que será muy utilizada por el gestor de base de datos.
Relación.- Asociación entre entidades, sin existencia propia en el mundo real que
estamos modelando, pero necesaria para reflejar las interacciones existentes entre
entidades. Las relaciones pueden ser de tres tipos:
Relaciones 1-1.- Las entidades que intervienen en la relación se asocian una a una (Ej: la
entidad HOMBRE, la entidad MUJER y entre ellos la relación MATRIMONIO).
Relaciones 1-n.- Una ocurrencia de una entidad está asociada con muchas (n) de otra (Ej:
la entidad EMPERSA, la entidad TRABAJADOR y entre ellos la relación TRABAJAR-EN).
Relaciones n-n.-Cada ocurrencia, en cualquiera de las dos entidades de la relación, puede
estar asociada con muchas (n) de la otra y viceversa (Ej: la entidad ALUMNO, la entidad
EMPRESA y entre ellos la relación MATRÍCULA).
Representación gráfica de Entidades y Relaciones
Para asimilar fácilmente un diseño de datos cuando se emplea el modelo E/R se utilizan
los siguientes elementos gráficos:
La utilización de estos elementos dará como resultado lo que se
denomina el esquema entidad-relación de la base de datos. Los
ejemplos que se incluyen en el apartado anterior, gráficamente
quedarían como sigue:
¿Cómo se pasa del esquema E/R a las tablas?
Para cada entidad del esquema se creará una tabla con tantos campos como atributos
tenga la entidad.
Ejemplo de una Universidad
Creación de Tablas
Tabla Alumno
En una Universidad, si tenemos la entidad Alumno que definimos como:
Tabla ALUMNO(DNI, Nombre, Apellido1, Apellido2, Telefono, Calle, Ciudad, Provincia,
FNacimiento, EstadoCivil)
CP: DNI
Creando la tabla en vista "Diseño" obtenemos:
Tabla Asignatura
Y la entidad Asignatura definida como:
ASIGNATURA(Codigo, Nombre, Creditos, Dni_prof, Observaciones)
CP:Codigo
Tabla Matricula
Y sabiendo que un alumno se puede matricular de muchas asignaturas y que una asignatura
a su vez puede tener muchos alumnos matriculados, podemos definir entre ambas entidades
la relación (n-m) matricula como:
MATRICULA(DNI, Codigo_asig, Fecha, Nota)
CP:DNI,Codigo_asig,Fecha
Y la tabla quedaría como:
Creación de Relaciones
Seleccionamos la opción Relaciones del menú Herramientas:
Agregamos las tablas (Alumno,Asignatura y Matricula):
Que son:
Y por último sólo falta arrastrar los campos relacionados de la tabla con la relación 1 a la
tabla con la relación muchos, es decir crear las relaciones, en las que seleccionaremos
siempre :
Exigir Integridad Referencial
Actualizar en cascada los campos relacionados
Eliminar en cascada los registros relacionados
En el caso de Alumno-Matricula (1 Alumno.DNI se puede repetir n veces en Matricula.DNI)
arrastramos el Alumno.DNI sobre la Matricula.DNI:
Y si repetimos la misma operación entre Asignatura.Codigo y Matricula.Codigo_asig queda
el esquema E-R en Access según se muestra en la figura siguiente:
2.2 Modelo Entidad-Relación Extendido
El Modelo Entidad-Relación Extendido incluye todos los conceptos del Entidad-Relación e
incorpora los conceptos de Subclase y superclase con los conceptos asociados de
Especialización y Generalización. Otro nuevo concepto incluido por el ERE es el de
Categoría. Asociado a estos conceptos está el importante mecanismo de Herencia de
atributos. Habrá que tener en cuenta que no existe una terminología estandarizada para
estos conceptos, por lo que usaremos la mas difundida.
Subclases, Superclases y Especialización.
En el modelo Entidad-Relación, una entidad agrupa un conjunto de ocurrencias de entidad
del mismo tipo. En muchos casos, estas ocurrencias se pueden agrupar a su vez en otros
subconjuntos que tienen un significado propio para los propósitos de la Base de
Datos y, por tanto, deberían representarse de forma explícita. Por ejemplo, la entidad
EMPLEADO puede a su vez subdividirse en SECRETARIA, INGENIERO, JEFE, TÉCNICO,
ASALARIADO, SUBCONTRATADO, etc. El conjunto de ocurrencias de entidad en cada una de
estas entidades será un subconjunto de las ocurrencias de entidad de EMPLEADO, ya que
por ejemplo, un ingeniero también es un empleado. Llamaremos a cada uno de estos
subconjuntos Subclases de la entidad EMPLEADO y a EMPLEADO una Supercalse de cada
uno de estos subconjuntos.
Llamaremos a la relación existente entre las Superclases y las Subclases como relación
Clase/Subclase. En el ejemplo anterior, EMPLEADO/SECRETARIA y EMPLEADO/TÉCNICO son
dos relaciones Clase/Subclase. Hay que tener en cuenta que una ocurrencia de una
Subclase representa el mismo objeto real que alguna correspondiente a su Superclase, por
ejemplo la SECRETARIA "Concha Leco" será también la EMPLEADO "Concha Leco". Por tanto,
la ocurrencia de Subclase es la misma que en la Superclase pero con un rol específico. Una
ocurrencia de Subclase no tienen sentido si no es a su vez ocurrencia de Superclase. Por otro
lado, una ocurrencia de superclase puede ser a su vez ocurrencia de varias subclases o de
ninguna. Por ejemplo, "Roberto Mate" como ocurrencia de EMPLEADO puede a su vez
pertenecer a subclases INGENIERO y ASALARIADO.
Herencia de atributos en la relación Clase/subclase.
Debido a que una subclase es a su vez parte se una superclase, la subclase tendrá sus
atributos específicos así como los atributos correspondientes a la superclase a la que
pertenece. Esto quiere decir que la ocurrencia de entidad de una subclase hereda los
atributos correspondientes a la superclase a la que pertenece. De la misma manera hereda
las relaciones en las que su correspondiente superclase participa.
Especialización.
El proceso por el que se definen las diferentes subclases de una superclase se conoce
como especialización. El conjunto de subclases se define basándonos en características
diferenciadoras de las ocurrencias de entidad de la superclase. Por ejemplo, el conjunto se
subclases {SECRETARIA, INGENIERO, TECNICO} es una especialización de la superclase
EMPLEADO mediante la distinción del tipo de trabajo en cada ocurrencia de entidad.
Podemos tener varias especializaciones de una misma entidad basándonos en distintos
criterios. Por ejemplo, otra especialización de EMPLEADO podría dar lugar a las subclases
ASALARIADO y SUBCONTRATADO, dependiendo del tipo de contrato.
Generalizacion:
Es el resultado de la unión de 2 o mas conjuntos de entidades (de bajo nivel) para producir
un conjunto de entidades de mas alto nivel. Se uso para hacer resaltar los parecidos entre
tipos de entidades para formar una entidad(es) global(es) con dichos atributos semejantes,
dicha entidad global quedara a un nivel mas alto al de las entidades origen. Trata de
eliminar la redundancia (repeticion) de atributos, al englobar los atributos semejantes.
3. MODELO RELACIONAL
Este modelo permite representar la información del mundo real de una manera intuitiva,
introduciendo conceptos cotidianos y fáciles de entender por cualquier inexperto. Asimismo,
mantiene información sobre las propias características de la base de datos (metadatos), que
facilitan las modificaciones, disminuyendo los problemas ocasionados en las aplicaciones y a
desarrolladas. Por otro lado, incorpora mecanismos de consulta muy potentes, totalmente
independientes del S.G.B.D., e incluso de la organización física de los datos; el propio S.G.B.D.
es el encargado de optimizar estas preguntas en formato estándar, a sus características
propias de almacenamiento.
3.1 Conceptos del modelo relacional
Tabla:
Se refiere al tipo de modelado de datos, donde se guardan los datos recogidos por un
programa. Su estructura general se asemeja a la vista general de un programa de hoja de
calculo.
La primera fila de una tabla es la más importante, ya que nos da su estructura. Esta columna
identifica los nombres de campo o atributos de que consta cada tabla. En otras palabras,
cada tupla está formada por un conjunto de información estructurada en elementos más
simples llamados atributos.
Dominios:
Los dominios a que puede pertenecer un atributo, suelen depender de los que proporcione
el S.G.B.D. que empleemos. Suelen ser comunes dominios como: decimal, Fecha, Hora,
Sí/No, etc. decimal, Fecha, Hora, Sí/No Por otro lado, un dominio como pueda ser entero, es
un dominio cuyo conjunto entero de valores es infinito, y dado que trabajamos con
ordenadores, es imprescindible poner un límite que p ermita almacenar un valor concreto
debido a las limitaciones de memoria, y sobre todo al hecho de que toda tupla debe poseer
el mismo tamaño. Tomemos como ejemplo el Nombre del Plato, que es evidentemente del
tipo Texto; las limitaciones del ordenador nos impiden almacenar Text o nombres
ilimitadamente largos, como puedan ser « Magret de p ato al vinagre de grosella con
guarnición de higos malagueños al vino moscatel Pedro Ximénez». Es necesario , por tanto,
establecer una cota al número máximo de letras que podemos teclear, por lo que el
dominio del atributo Nombre puede ser Texto de 20 caracteres.
Atributo:
Componentes que determinan una entidad. Cada atributo tiene asociado un dominio:
Conjunto de valores que puede tomar.
El nombre del atributo debe describir el significado de la información que
representa. En la tabla Platos, el atributo Precio tendrá como cometido almacenar el valor
en pesetas con el que ese plato se vende al público. A menudo suele ser necesario añadir
una pequeña descripción a cada atributo que aclare su naturaleza: ¿el precio lleva I.V.A. o
no?
En el atributo Menú no está claro que es lo que se almacena. Una descripción del mismo
aclararía más las cosas: Indica si el cliente puede pedir este plato o no en el menú del día.
Por otro lado, está claro que un atributo en una tupla no puede tomar un valor cualquiera,
p.ej., no tiene sentido que en el precio del Ajo blanco con uvas se guarde una palabra
como pueda ser Gerente. Para evitar este tipo de situaciones anómalas en la medida de lo
posible, obligaremos a que cada atributo sólo pueda tomar los valores pertenecientes a un
conjunto de valores previamente establecido, o sea, un atributo tiene asociado un dominio
de valores. En el caso anterior se tiene que el atributo Precio sólo puede tomar valores
numéricos, mientras que el Nombre sólo puede contener frases textuales.
Atributos simples y compuestos:
Se dice que un atributo es compuesto cuando puede descomponerse en otros
componentes o atributos más pequeños, y simple en otro caso.
Tuplas:
Las tuplas son estructuras de datos que constan de varios campos que pueden contener
datos de tipos distintos. El acceso al contenido de los campos en las tuplas se hace utilizando
el nombre de los campos en lugar de su posición.
El siguiente ejemplo muestra la definición del tipo de tupla “coche” que posee cuatro
campos: propietario, modelo, matrícula y año de matriculación
typedef struct {
char propietario[25];
char modelo[25];
char matrícula[25];
int año;
} coche;
coche mi_coche;
Una vez definido el tipo de tupla “coche”, podemos declarar variables de tipo “coche”
como de cualquier otro tipo.
3.2 Esquemas de bases de datos relacionales
Para transformar un modelo entidad-relación a modelo relacional seguiremos las siguientes
reglas:
Toda entidad del modelo entidad-relación se transforma en una tabla.
Cualquier atributo de una entidad se transforma en un campo dentro la tabla, manteniendo
las claves primarias.
Las relaciones N:M se transforman en una nueva tabla que tendrá como clave primaria la
concatenación de los atributos clave de las entidades que relaciona.
En las relaciones 1:N se pueden tener dos casos:


Si la entidad que participa con cardinalidad máxima uno lo hace también con
cardinalidad mínima uno, entonces se propaga el atributo de la entidad que tiene
cardinalidad máxima 1 a la que tiene cardinalidad máxima N, desapareciendo el
nombre de la relación. Si existen atributos en la relación éstos también se propagarán.
Si la entidad que participa con cardinalidad máxima uno lo hace también
cardinalidad mínima cero, entonces se crea una nueva tabla formada por las claves
de cada entidad y los atributos de la relación. La clave primaria de la nueva tabla
será el identificador de la entidad que participa con cardinalidad máxima N.
En el caso de las relaciones 1:1 también pueden darse dos casos:


Si las entidades poseen cardinalidades (0,1), la relación se convierte en una tabla.
Si una de las entidades posee cardinalidad (0,1) y la otra (1,1), conviene propagar la
clave de la entidad con cardinalidad (1,1) a la tabla resultante de la entidad con
cardinalidad (0,1). Si ambas entidades poseen cardinalidades (1,1) se puede propagar
la clave de cualquiera de ellas a la tabla resultante de la otra.
En el caso de las relaciones N-arias se aplica la misma regla que para las relaciones N:M

En el caso de las relaciones reflexivas supondremos que se trata de una relación
binaria con la particularidad que las dos entidades son iguales y aplicaremos las reglas
vistas en los puntos anteriores.
3.3 Algebra Relacional
El álgebra relacional es un lenguaje de consulta formal procedimental, el álgebra relacional
define operadores que funcionan sobre las tablas (de una manera similar a los operadores
+,-,etc. del álgebra común ) para llegar al resultado deseado. El álgebra relacional es difícil
de utilizar, debido en parte a que es procedimental, esto es, al utilizar el álgebra relacional
no sólo debemos saber lo que queremos, también cómo obtenerlo.
En el proceso de bases de datos comerciales el álgebra relacional se utiliza de manera
poco frecuente. Aunque unos cuantos productos exitosos DBMS sí tienen opciones del
álgebra relacional, éstas son poco utilizadas en vista de su complejidad.
El álgebra relacional toma dos o más tablas como entrada produce una nueva tabla
como resultado de la serie de operaciones. Las operaciones fundamentales en el álgebra
relacional son seleccionar, proyectar, producto cartesiano, renombrar, unión y diferencia de
conjuntos. Además de las operaciones fundamentales existen otras operaciones como
son:intersección de conjuntos, producto natural, división y asignación.
** Operaciones fundamentales **
Las operaciones seleccionar, proyectar y renombrar, son denominadas operaciones
unitarias ya que operan sobre una tabla. Las otras operaciones operan sobre pares de
relaciones y, por tanto se llaman operaciones binarias.
* La operación seleccionar.
Esta operación selecciona tuplas (filas) que satisfacen una instrucción(condición) dada
de una tabla. Se representa por medio de paréntesis.
(nombre_tabla
WHERE condición);
La oración de la instrucción después de la cláusula WHERE puede incluir condiciones de
igualdad como =,=,<,>,>=,<=,además que se puede hacer una oración más compleja
usando los conectores y (^) y o (v).
* La operación Proyectar.
Consiste en identificar las columnas (atributos en el modelo E-R) que nos interesa conocer.
Se representa por medio de corchetes. Si este se omite indicara que se desea obtener todas
las columnas de la tabla en cuestión.
(nombre_tabla WHERE condición) [Nombre_atributo];
* La operación Producto cartesiano.
Consiste en multiplicar todas las tuplas entre tablas, obteniendo como resultado una tabla
que contiene todas las columnas de ambas tablas. Se especifica con la orden TIMES.
Nombre_tabla TIMES Nombre_tabla;
* La operación Join.
Consiste en obtener el producto (multiplicación) de todas las tuplas de una tabla con las
de la otra, para posteriormente evaluar aquellas cuyo campo en común sea igual
generando como resultado una nueva tabla que tiene como tuplas (renglones) que
cumplen con la condición establecida. Se representa con la orden JOIN.
La orden Join es colocada entre las dos tablas a multiplicar después de que la primera
especifica la operación de selección y proyección.
(Tabla)[atributo] JOIN (Tabla)[Atributo];
* La operación Divide.
Toma dos relaciones, una binaria y la otra unaria, construye una relación formada por
todos los valores de un atributo de la relación binaria que concuerdan (en el otro atributo)
con todos los valores de la relación unaria. Se representa con la ordenDIVIDEBY.
NomTablaBin DIVIDEBY NomTablaUna
* La operación Diferencia.
Construye una relación formada por todas las tuplas (filas) de la primera relación que no
aparezcan en la segunda de las dos relaciones especificadas. Se representa con la
orden MINUS.
Nom_tablaA MINUS NomTablaB;
* La operación Unión.
Construye una relación formada por todas las tuplas de la primera relación y todas las
tuplas de la segunda relación. El requisito es que ambas relaciones sean del mismo tipo.
Nom_TablaA UNION Nom_tablaB
* La operación intersección.
Construye una nueva tabla compuesta por todas las tuplas que están en la primera y
segunda tabla.
Nom_TablaA INTERSEC Nom_tablaB
4. DISEÑO DE BD RELACIONALES
Cualidades de un buen diseño de base de datos:

Reflejar la estructura del problema en el mundo real.

Ser capaz de representar todos los datos esperados, incluso con el paso del tiempo.

Evitar el almacenamiento de información redundante.

Proporcinar un acceso eficaz a los datos.

Mantener la integridad de los datos a lo largo del tiempo.

Ser claro, coherente y de fácil comprensión.
Nota: A veces, estos objetivos pueden ser contradictorios.
4.1 Restricciones de Integridad

Datos Requeridos: establece que una columna tenga un valor no NULL. Se define
efectuando la declaración de una columna es NOT NULL cuando la tabla que contiene
las columnas se crea por primera vez, como parte de la sentencia CREATE TABLE.

Chequeo de Validez: cuando se crea una tabla cada columna tiene un tipo de datos y
el DBMS asegura que solamente los datos del tipo especificado sean ingresados en la
tabla.

Integridad de entidad: establece que la clave primaria de una tabla debe tener un valor
único para cada fila de la tabla; si no, la base de datos perderá su integridad. Se
especifica en la sentencia CREATE TABLE. El DBMS comprueba automáticamente la
unicidad del valor de la clave primaria con cada sentencia INSERT Y UPDATE. Un intento
de insertar o actualizar una fila con un valor de la clave primaria ya existente fallará.

Integridad referencial: asegura la integridad entre las llaves foráneas y primarias
(relaciones padre/hijo). Existen cuatro actualizaciones de la base de datos que pueden
corromper la integridad referencial:

La inserción de una fila hijo se produce cuando no coincide la llave foránea con la
llave primaria del padre.

La actualización en la llave foránea de la fila hijo, donde se produce una
actualización en la clave ajena de la fila hijo con una sentencia UPDATE y la misma no
coincide con ninguna llave primaria.

La supresión de una fila padre, con la que, si una fila padre -que tiene uno o más hijosse suprime, las filas hijos quedarán huérfanas.

La actualización de la llave primaria de una fila padre, donde si en una fila padre, que
tiene uno o más hijos se actualiza su llave primaria, las filas hijos quedarán huérfanas.
4.2 Normalización
El proceso de normalización de una base de datos consiste en aplicar una serie de reglas a
las relaciones obtenidas tras el paso del modelo E-R (entidad-relación) al modelo relacional.
Las bases de datos relacionales se normalizan para:
• Evitar la redundancia de los datos.
• Evitar problemas de actualización de los datos en las tablas.
• Proteger la integridad de los datos.
En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una
tabla bidimensional sea considerada como una relación tiene 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.
Primera forma normal(1FN):
Una relación R se encuentra en 1FN si y solo sí por cada renglón columna contiene valores
atómicos.
Abreviada como 1FN, se considera que una relación se encuentra en la primera forma
normal cuando cumple lo siguiente:
1. Las celdas de las tablas poseen valores simples y no se permiten grupos ni arreglos
repetidos como valores, es decir, contienen un solo valor por cada celda.
2. Todos los ingresos en cualquier columna(atributo) deben ser del mismo tipo.
3. Cada columna debe tener un nombre único, el orden de las columnas en la tabla no es
importante.
4. Dos filas o renglones de una misma tabla no deben ser idénticas, aunque el orden de las
filas no es importante.
Por lo general la mayoría de las relaciones cumplen con estas características, así que
podemos decir que la mayoría de las relaciones se encuentran en la primera forma normal.
Para ejemplificar como se representan gráficamente las relaciones en primera forma normal
consideremos la relación alumno cursa materia cuyo diagrama E-R es el siguiente:
Como esta relación maneja valores atómicos, es decir un solo valor por cada uno de los
campos que conforman a los atributos de las entidades, ya se encuentra en primera forma
normal, gráficamente así representamos a las relaciones en 1FN.
Segunda forma normal (2FN):
Para poder definir la segunda forma normal es necesario saber que es una dependencia
funcional, consiste en edificar que atributos dependen de otros atributos.
Una relación R se encuentra en 2FN si y solo si esta en 1FN, y los atributos no primos
dependen de la llave primaria.
Una relación se encuentra en segunda forma normal, cuando cumple con las reglas de la
primera forma normal y todos sus atributos que no son claves (llaves)
dependen por completo de la clave. Cada tabla que tiene un atributo único como clave,
esta en segunda forma normal.
Tercera forma normal(3FN):
Una relación R está en 3FN si y solo si esta en 2FN y todos sus atributos no primos dependen
no transitivamente de la llave primaria.
Consiste en eliminar la dependencia transitiva que queda en una segunda forma normal, en
pocas palabras una relación esta en tercera forma normal si está en segunda forma normal
y no existen dependencias transitivas entre los atributos, nos referimos a dependencias
transitivas cuando existe más de una forma de llegar a referencias a un atributo de una
relación.
5. SISTEMA GESTOR DE BASES DE DATOS (SGBD)
Un Sistema Gestor de Bases de Datos (SGBD) o DBMA (DataBase Management
System) es una colección de programas cuyo objetivo es servir de interfaz entre la base
de datos, el usuario y las aplicaciones. Se compone de un lenguaje de definición de
datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta. Un
SGBD permiten definir los datos a distintos niveles de abstracción y manipular dichos
datos, garantizando la seguridad e integridad de los mismos.
Algunos ejemplos de SGBD son Oracle, DB2, PostgreSQL, MySQL, MS SQL Server, etc.
Un SGBD debe permitir:
• Definir una base de datos: especificar tipos, estructuras y restricciones de datos.
• Construir la base de datos: guardar los datos en algún medio controlado por el mismo
SGBD
• Manipular la base de datos: realizar consultas, actualizarla, generar informes.
En sí, un sistema manejador de base de datos es el corazón de la base de datos ya que se
encarga del control total de los posibles aspectos que la puedan afectar.
5.1 Fundamentos de los SGBD.
Las características de un Sistema Gestor de Base de Datos SGBD son:
• Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del
almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos
de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de
abstracción.
• Independencia. La independencia de los datos consiste en la capacidad de modificar el
esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las
aplicaciones que se sirven de ella.
• Redundancia mínima. Un buen diseño de una base de datos logrará evitar la aparición de
información repetida o redundante. De entrada, lo ideal es lograr una redundancia nula; no
obstante, en algunos casos la complejidad de los cálculos hace necesaria la aparición de
redundancias.
• Consistencia. En aquellos casos en los que no se ha logrado esta redundancia nula, será
necesario vigilar que aquella información que aparece repetida se actualice de forma
coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea.
• Seguridad. La información almacenada en una base de datos puede llegar a tener un
gran valor. Los SGBD deben garantizar que esta información se encuentra segurizada frente
a usuarios malintencionados, que intenten leer información privilegiada; frente a ataques
que deseen manipular o destruir la información; o simplemente ante las torpezas de algún
usuario autorizado pero despistado. Normalmente, los SGBD disponen de un complejo
sistema de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas
categorías de permisos.
• Integridad. Se trata de adoptar las medidas necesarias para garantizar la validez de los
datos almacenados. Es decir, se trata de proteger los datos ante fallos de hardware, datos
introducidos por usuarios descuidados, o cualquier otra circunstancia capaz de corromper la
información almacenada.
• Respaldo y recuperación. Los SGBD deben proporcionar una forma eficiente de realizar
copias de respaldo de la información almacenada en ellos, y de restaurar a partir de estas
copias los datos que se hayan podido perder.
• Control de la concurrencia. En la mayoría de entornos (excepto quizás el doméstico), lo
más habitual es que sean muchas las personas que acceden a una base de datos, bien
para recuperar información, bien para almacenarla. Y es también frecuente que dichos
accesos se realicen de forma simultánea. Así pues, un SGBD debe controlar este acceso
concurrente a la información, que podría derivar en inconsistencias.
5.2 Manipulación de una BD.
Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en inglés) es un
lenguaje proporcionado por el sistema de gestión de base de datos que permite a los
usuarios llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el
modelo de datos adecuado.
El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y
manipular datos en una base de datos relacional.
INSERT
Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una
base de datos relacional.
Forma básica
INSERT INTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES (''valor1'', [''valor2,...''])
Las cantidades de columnas y valores deben ser iguales. Si una columna no se especifica, le
será asignado el valor por omisión. Los valores especificados (o implícitos) por la
sentencia INSERT deberán 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.
Copia de filas de otras tablas
Un INSERT también 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 ningún procesamiento intermedio en la aplicación cliente. Un SUBSELECT se utiliza en
lugar de la cláusula VALUES. El SUBSELECT puede contener JOIN, llamadas a funciones, y
puede incluso consultar en la misma TABLA los datos que se inserta. Lógicamente, el SELECT
se evalúa antes que la operación INSERT esté iniciada. Un ejemplo se da a continuación.
INSERT INTO phone_book2
SELECT *
FROM phone_book
WHERE name IN ('John Doe', 'Peter Doe')
Una variación es necesaria cuando algunos de los datos de la tabla fuente se está
insertando en la nueva tabla, pero no todo el registro. (O cuando los esquemas de las tablas
no son iguales.)
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.
UPDATE
Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de
registros existentes en una tabla.
Ejemplo
UPDATE My_table SET field1 = 'updated value asd' WHERE field2 = 'N';
DELETE
Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla.
Forma básica
SQL="DELETE FROM ''tabla'' WHERE ''columna1'' = ''valor1''"
Ejemplo
DELETE FROM My_table WHERE field2 = 'N';
6. LENGUAJE DE DEFINICIÓN DE DATOS (SQL-DDL)
Lenguaje de definición de datos (DDL: Data Definition Language):Sencillo lenguaje artificial
para definir y describir los objetos de la base de datos, su estructura, relaciones y
restricciones. En la práctica puede consistir en un subconjunto de instrucciones de otro
lenguaje informático. Aparte suele poseer dos subconjuntos de instrucciones:

Lenguaje de definición del almacenamiento de los datos (DSDL: Data Storage
Definition Language): permite especificar características físicas de la base de datos
(volúmenes y archivos donde van a ser almacenados los datos, etc).

Lenguaje de control de datos (DCL: Data Control Language): encargado del control y
seguridad de los datos (privilegios y modos de acceso, etc).
6.1 Introducción a SQL
El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado,
utilizado por los diferentes motores de bases de datos para realizar determinadas
operaciones sobre los datos o sobre la estructura de los mismos. Pero como sucede con
cualquier sistema de normalización hay excepciones para casi todo; de hecho, cada motor
de bases de datos tiene sus peculiaridades y lo hace diferente de otro motor, por lo tanto, el
lenguaje SQL normalizado (ANSI) no nos servirá para resolver todos los problemas, aunque si
se puede asegurar que cualquier sentencia escrita en ANSI será interpretable por cualquier
motor de datos.
Componentes del SQL
El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de
agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y
manipular las bases de datos.
Comandos
Existen dos tipos de comandos SQL:
DLL que permiten crear y definir nuevas bases de datos, campos e índices.
DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de
datos.
Comandos DLL
Comando Descripción
CREATE
Utilizado para crear nuevas tablas, campos e índices
DROP
Empleado para eliminar tablas e índices
ALTER
Utilizado para modificar las tablas agregando campos o cambiando la
definición de los campos.
Comandos DML
Comando Descripción
SELECT
Utilizado para consultar registros de la base de datos que satisfagan un
criterio determinado
INSERT
Utilizado para cargar lotes de datos en la base de datos en una única
operación.
UPDATE
Utilizado para modificar los valores de los campos y registros especificados
DELETE
Utilizado para eliminar registros de una tabla de una base de datos
Cláusulas
Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea
seleccionar o manipular.
Cláusula
Descripción
FROM
Utilizada para especificar la tabla de la cual se van a seleccionar los
registros
WHERE
Utilizada para especificar las condiciones que deben reunir los
registros que se van a seleccionar
GROUP BY
Utilizada para separar los registros seleccionados en grupos
específicos
HAVING
Utilizada para expresar la condición que debe satisfacer cada grupo
ORDER BY
Utilizada para ordenar los registros seleccionados de acuerdo con un
orden específico
Operadores Lógicos
Operador Uso
AND
Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si
ambas son ciertas.
OR
Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si
alguna de las dos es cierta.
NOT
Negación lógica. Devuelve el valor contrario de la expresión.
Operadores de Comparación
Operador
Uso
<
Menor que
>
Mayor que
<>
Distinto de
<=
Menor o igual que
>=
Mayor o igual que
=
Igual que
BETWEEN
Utilizado para especificar un intervalo de valores.
LIKE
Utilizado en la comparación de un modelo
In
Utilizado para especificar registros de una base de datos
Funciones de Agregado
Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros
para devolver un único valor que se aplica a un grupo de registros.
Funciónn Descripción
AVG
Utilizada para calcular el promedio de los valores de un campo determinado
COUNT
Utilizada para devolver el número de registros de la selección
SUM
Utilizada para devolver la suma de todos los valores de un campo
determinado
MAX
Utilizada para devolver el valor más alto de un campo especificado
MIN
Utilizada para devolver el valor más bajo de un campo especificado
Orden de ejecución de los comandos
Dada una sentencia SQL de selección que incluye todas las posibles cláusulas, el orden de
ejecución de las mismas es el siguiente:
Cláusula FROM
Cláusula WHERE
Cláusula GROUP BY
Cláusula HAVING
Cláusula SELECT
Cláusula ORDER BY
6.2 Creación del esquema de una BD.
Crear - Para hacer una nueva base de datos, tabla, índice, o consulta almacenada. A
CREAR declaración en SQL crea un objeto dentro de un sistema de gestión de bases de
datos relacionales (RDBMS). Los tipos de objetos que se pueden crear depende del RDBMS
está siendo utilizado, pero la mayoría de apoyar la creación de tablas, índices, usuarios,
sinónimos y bases de datos . Algunos sistemas (como PostgreSQL) permiten CREAR , y otros
comandos DDL, en el interior de una transacción y por lo tanto puede ser revertido . Otras
que se incluyen dentro del DDL, pero que su existencia depende de la implementación del
estándar SQL que lleve a cabo el gestor de base de datos son GRANT y REVOKE, los cuales
sirven para otorgar permisos o quitarlos, ya sea a usuarios específicos o a un rol creado
dentro de la base de datos.
6.3 Modificación del esquema de una BD
Si por alguna razón se necesita cambiar o eliminar un elemento de datos, el diccionario de
datos señalaría los programas específicos que utilizan el elemento de datos que quizá sea
necesario modificar.
EJEMPLOS
•ALTER TABLE oficinas ADD (nueva CHAR(8));
Añade una nueva columna a la tabla oficinas
•ALTER TABLE oficinas MODIFY (nueva NOT NULL);
Modifica la tabla oficinas obligando a que nueva no pueda tomar un valor null.
•ALTER TABLE oficinas DROP COLUMN nueva;
Elimina la columna nueva
NOTA: Unused
ALTER TABLE oficinas set UNUSED COLUMN nueva;
ELIMINAR TABLAS:
DROP TABLE.- Elimina una tabla
Ej: DROP TABLE oficinas;
TRUNCATE TABLE.- Elimina todas las filas de la tabla, pero sin eliminar su definición. ¡cuidado!
Ej: TRUNCATE TABLE oficinas;
Clave primaria:
Es una de las claves candidatas a la que le damos algunas características especiales. Sólo se
puede tener una única clave primaria, y una columna de clave primaria no puede contener
NULLs.
CREATE TABLE prueba (ciudad VARCHAR2(13) NOT NULL,
fecha_muestra DATE NOT NULL,
tarde NUMBER(4,1),
noche NUMBER(4,1),
precipitacion NUMBER,
CONSTRAINT prueba_pk PRIMARY KEY(ciudad,fecha_muestra));
Para claves candidatas o primarias, podemos definir la clave sobre una columna mediante
una restricción de columna en lugar de una restricción de tabla.
CREATE TABLE trabajador (nombre VARCHAR2(25) PRIMARY KEY,
edad NUMBER,
ubicación VARCHAR2(15));
NOTA: Nombrado de restricciones: lo ponemos nosotros o lo genera Oracle
automáticamente.
Clave foránea:
Es una combinación de columnas con valores basados en la los valores de la clave primaria
de otra tabla. Una restricción de clave foránea, también conocida como restricción de
integridad referencial, especifica que los valores de la clave foránea se corresponden con
valores reales de la clave primaria en la otra tabla.
CREATE TABLE trabajador (nombre VARCHAR2(25),
edad NUMBER,
ubicacion VARCHAR2(15),
CONSTRAINT trabajador_pk PRIMARY KEY(nombre),
FOREIGN KEY (ubicacion) REFERENCES
Ubicaciones(ubi));
7. LENGUAJE DE MANIPULACIÓN DE DATOS (SQL-DML)
Lenguaje de Manipulación de Datos (Data Manipulation Language, DML) es un lenguaje
proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la
misma llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el
modelo de datos adecuado. El lenguaje de manipulación de datos más popular hoy día
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 IMS/DL1, CODASYL u otras.
Clasificación del lenguaje de manipulación de datos
Son DML : Select, Insert, Delete y Update
Se clasifican en dos grandes grupos:
lenguajes de consulta procedimentales
Lenguajes procedimentales. En este tipo de lenguaje el usuario da instrucciones al sistema
para que realice una serie de procedimientos u operaciones en la base de datos para
calcular un resultado final.
lenguajes de consulta no procedimentales
En los lenguajes no procedimentales el usuario describe la información deseada sin un
procedimiento especifico para obtener esa información.
7.1 Consultas y vistas
Una subconsulta es una consulta que aparece dentro de otra consulta o subconsulta en la
lista de selección, en la cláusula WHERE o HAVING, originalmente no se podían incluir en la
lista de selección.
Una subconsulta se denomina también consulta o selección interna, mientras que la
instrucción que contiene la subconsulta es conocida como consulta o selección externa.
Aparece siempre encerrada entre paréntesis y tiene la misma sintaxis que una sentencia
SELECT normal con alguna limitación:
No puede incluir una cláusula COMPUTE o FOR BROWSE y sólo puede incluir una cláusula
ORDER BY cuando se especifica también una cláusula TOP.
Una subconsulta puede anidarse en la cláusula WHERE o HAVING de una instrucción externa
SELECT, INSERT, UPDATE o DELETE, o bien en otra subconsulta. Se puede disponer de hasta 32
niveles de anidamiento, aunque el límite varía dependiendo de la memoria disponible y de
la complejidad del resto de las expresiones de la consulta. Hay que tener en cuenta que
para cada fila de la consulta externa, se calcula la subconsulta, si anidamos varias consultas,
el número de veces que se ejecutarán las subconsultas ¡puede dispararse!
Cuando la subconsulta aparece en la lista de selección de otra consulta, deberá devolver
un solo valor, de lo contrario provocará un error.
Ejemplo de subconsulta: Listar los empleados cuya cuota no supere el importe vendido por el
empleado.
SELECT nombre
FROM empleados
WHERE cuota <= (SELECT SUM(importe)
FROM pedidos
WHERE rep = numemp);
¿Qué es una vista?
Se puede presentar un subconjunto lógico o combinación de datos para la creación de
vistas de tablas. Una vista es una tabla lógica basada en una tabla u otra vista. Una vista no
contiene datos propiamente pero es como una ventana por medio de la cual los datos de
las tablas pueden ser vistas o cambiadas. Las tablas en las que una vista se basa son
llamadas tablas base.
La vista es almacenada como una sentencia SELECT en el diccionario de datos.
Ventajas de las vistas
• Las vistas restringen el acceso a los datos puesto que una vista puede mostrar ciertas
columnas de una tabla
• Las vistas pueden ser usadas para hacer simples consultas y recuperar los resultados de
consultas complejas. Por ejemplo, las vistas pueden ser usadas para consultar información de
múltiples tablas sin que el usuario conozca como escribir sentencias Join.
7.3 Instrucciones de actualización
Normalmente, las informaciones presentes en una base de datos no son estáticas, sino que
evolucionan en el tiempo. Existe, por tanto, la necesidad no sólo de añadir nuevos datos,
sino de modificar los que están ya incluidos en las tablas de la base de datos. Las
instrucciones SQL que se usan para este fin son UPDATE y DELETE. La primera modifica los
valores presentes en una o más columnas de una o más líneas de una tabla. La segunda
elimina una o más líneas de una tabla.
La sintaxis de UPDATE es la siguiente:
UPDATE nombre_tabla
SET lista_asignaciones
[ WHERE expresión_condicional ]
Las asignaciones se especifican del modo:
nombre_columna = expresión_escalar
La instrucción UPDATE actualiza las columnas de la tabla que se han especificado en la
cláusula SET, utilizando los valores que son calculados por las correspondientes expresiones
escalares. Si se expresa también la cláusula WHERE, se actualizan sólo las líneas que
satisfacen la expresión condicional. Véase que la expresión escalar usada para actualizar
una columna puede ser también el resultado de una query escalar, es decir una query que
devuelve una sola línea y una sola columna.
Veamos un ejemplo:
UPDATE Person
SET given_names = 'Stefano'
WHERE surname = 'Spaccapietra'
La instrucción anterior cambia el valor de la columna given_name de la tabla Person en las
líneas (en nuestro caso es una sola) en que la columna surname tiene valor 'Spaccapietra'.
La sintaxis de DELETE es:
DELETE FROM nombre_tabla
[ WHERE expresión_condicional ]
La instrucción delete elimina de una tabla todas las líneas que satisfacen la expresión
condicional de la cláusula WHERE. Si WHERE no se especifica, se cancelan todas las líneas de
la tabla.
Si en la definición de la tabla se han especificado las cláusulas ON UPDATE u ON DELETE, en
el momento en que se ejecutan estas operaciones también se ejecutan las que habían
estado previstas en las columnas referenciadas (CASCADE, SET DEFAULT o SET NULL).
COMANDOS BASICOS DE SQL.
SELECT
Obtiene filas de la base de datos y permite realizar la selección de una o varias filas o columnas de una
o varias tablas. La sintaxis completa de la instrucción SELECT es compleja, aunque las cláusulas
principales se pueden resumir del modo siguiente:
SELECT select_list
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
Se puede utilizar el operador UNION entre consultas para combinar sus resultados en un solo conjunto
de resultados.
UPDATE
Actualiza columnas en registros de tabla existentes con nuevos valores. La cláusula SET indica qué
columna modificar y los valores que puede recibir. La cláusula WHERE , si se da, especifica qué
registros deben actualizarse. De otro modo, se actualizan todos los registros. Si la cláusula ORDER BY
se especifica, los registros se actualizan en el orden que se especifica. La cláusula LIMIT es el límite de
registros a actualizar.
El comando UPDATE soporta los siguientes modificadores:

Si usa la palabra clave LOW_PRIORITY , la ejecución de UPDATE se retrasa hasta que no haya
otros clientes leyendo de la tabla.

Si usa la palabra clave IGNORE, el comando de actualización no aborta incluso si ocurren
errores durante la actualización. Los registros que presenten conflictos de clave duplicada no se
actualizan. Los registros cuyas columnas se actualizan a valores que provocarían errores de
conversión de datos se actualizan al valor válido más próximo.
DELETE.
Para borrar datos de una tabla, debemos utilizar la sentencia DELETE.
La sintaxis de la sentencia DELETE es la siguiente:
DELETE FROM <nombre_tabla>
[ WHERE <condicion>];
El siguiente ejemplo ilustra el uso de la sentencia DELETE. Es buena idea especificar en la sentencia
WHERE los campos que forman la clave primaria de la tabla para evitar borrar datos que no queramos
eliminar.
DELETE FROM
tCoches
WHERE marca = 'SEAT';
La sintaxis de DELETE varia en Access, siendo necesario el uso del comodín *.
DELETE * FROM <tCoches>
Cuando trabajemos con la sentencia DELETE debemos tener en cuenta las siguientes consideraciones:



Solo podemos borrar datos de una única tabla.
Cuando borramos datos de una vista, los estamos borrando también de la tabla. Las vistas son solo
una forma de ver los datos, no una copia.
Si intentamos borrar un registro de una tabla referenciada por una FOREING KEY como tabla
maestra, si la tabla dependiente tiene registros relacionados la sentencia DELETE fallará.
Para realizar un borrado completo de tabla debemos considerar la posibilidad de utilizar la sentencia
TRUNCATE, mucho más rápida que DELETE.
INSERT
En SQL, hay fundamental y básicamente dos formas para INSÉRERdatos en una tabla: Una es insertar
una fila por vez, y la otra es insertar filas múltiples por vez. Primero observemos como podemos
INSÉRER datos a través de una fila por vez:
La sintaxis para insertar datos en una tabla mediante una fila por vez es la siguiente:
INSERT INTO "nombre_tabla" ("columna1", "columna2", ...)
VALUES ("valor1", "valor2", ...)
Suponiendo que tenemos una taba con la siguiente estructura,
Tabla Store_Information
Column Name Data Type
store_name
char(50)
Sales
float
Date
datetime
y ahora deseamos insertar una fila adicional en la tabla que represente los datos de ventas para Los
Ángeles el 10 de enero de 1999. En ese día, este negocio tenía $900 dólares estadounidenses en
ventas. Por lo tanto, utilizaremos la siguiente escritura SQL:
INSERT INTO Store_Information (store_name, Sales, Date)
VALUES ('Los Angeles', 900, '10-Jan-1999')
El segundo tipo de INSERT INTOnos permite insertar filas múltiples en una tabla. A diferencia del
ejemplo anterior, donde insertamos una única fila al especificar sus valores para todas las columnas,
ahora utilizamos la instrucción SELECT para especificar los datos que deseamos insertar en la tabla. Si
está pensando si esto significa que está utilizando información de otra tabla, está en lo correcto. La
sintaxis es la siguiente:
INSERT INTO "tabla1" ("columna1", "columna2", ...)
SELECT "columna3", "columna4", ...
FROM "tabla2"
Descargar