diapositivas sql

62
COLEGIO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXICO. PROFESORA: YOLANDA RAMIREZ FIGUEROA.

Upload: gadiel-ocampo

Post on 24-May-2015

972 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Diapositivas sql

COLEGIO DE ESTUDIOS CIENTIFICOS Y

TECNOLOGICOS DEL ESTADO DE MEXICO.

PROFESORA: YOLANDA RAMIREZ FIGUEROA.

Page 2: Diapositivas sql

ALUMNA: YATZENY MEDINA RIOS.

TEMAS. NORMALIZACION. MODELO ENTIDAD – RELACION. DICCIONARIO DE DATOS. LENGUAJE SQL.

Page 3: Diapositivas sql

INTRODUCCION. El objetivo principal de las bases de datos es

el de unificar los datos que se manejan y los programas o aplicaciones que los manejan.

Page 4: Diapositivas sql

NORMALIZACION. La Normalización o estandarización es la redacción y

aprobación de normas, respecto a problemas presentes o potenciales, estableciendo una serie de especificaciones sobre cualidades, módulos, métodos, unidades de medida o condiciones que deben ser adoptadas o tenidas en cuenta como modelo a seguir.

O sea la Normalización consiste en formular, difundir y aplicar disposiciones o normas que deberán cumplirse ante problemas o situaciones de repetición constante, con el fin de lograr un orden y un proceso justo y equitativo.

Page 5: Diapositivas sql

FINALIDAD.Mediante estas técnicas de base de datos se pretende conseguir a través del Sistema Gestor de Bases de Datos(SGBD): INDEPENDENCIA de los Datos: Cambios en la

estructura de la Base de Datos no modifican las aplicaciones.

INTEGRIDAD de los Datos: Los datos han de ser siempre correctos. Se establecen una serie de restricciones (reglas de validación) sobre los datos.

SEGURIDAD de los Datos: Control de acceso a los datos para evitar manipulaciones de estos no deseadas.

Page 6: Diapositivas sql

LAS REGLAS MÁS IMPORTANTES DE NORMALIZACIÓN SON:

REGLA. DESCRIPCION.

PRIMERA FORMA NORMAL.(1FN)

SEGUNDA FORMA NORMAL.(2FN)

TERCERA FORMA NORMAL. (3FN)

INCLUYE LA ELIMINACION DE TODOS LOS DATOS REPETIDOS.

ASEGURA QUE TODAS LAS COLUMNAS QUE NO SON LLAVES SEAN COPLETAMENTE DEPENDIENTES DE LA LLAVE PRIMARIA (PK).

ELIMINA CUALQUIER DEPENDENCIA TRANSITIVA. UNA DEPENDENCIA TRANSITIVA ES AQUELLA EN LA CUAL LAS COLUMNAS QUE NO SON LLAVES SON DEPENDIENTES DE OTRAS COLUMNAS QUE TAMPOCO SON LLAVES.

Page 7: Diapositivas sql

NORMALIZACION.

Page 8: Diapositivas sql

OBJETIVOS DE LA NORMALIZACION.

Simplificación, Unificación y Especificación.

Page 9: Diapositivas sql

SIMPLIFICACIÓN.

Se trata de reducir los modelos para quedarse únicamente con los más necesarios.

Page 10: Diapositivas sql

UNIFICACION.

Para permitir el intercambio a nivel internacional.

Page 11: Diapositivas sql

ESPECIFICACION.

Se persigue evitar errores de identificación creando un lenguaje claro y preciso.

Page 12: Diapositivas sql

OBJETIVOS. Evitar la redundancia de datos. Proteger y dar un mejor soporte a la integridad de los

datos. Eliminar las anomalías en los datos, tanto en las

actualizaciones como en las inserciones y los borrados. Reducir en la medida de lo posible el rediseño de la base

de datos cuando ésta se amplía. Hacer más entendible el modelo de datos a quienes

vayan a utilizarlo, puesto que se modeliza mejor la realidad, el dominio del problema.

Huir de las ataduras con lenguajes específicos para la consulta de datos (algo que preocupaba bastante  a Codd, al que parece ser no le gustaba demasiado el SQL).

Page 13: Diapositivas sql

NOS SIRVE PARA:

Regular los requisitos mínimos que debe cumplir un producto en cuanto a seguridad, conformidad, inspección, salud pública, protección del ambiente o prevención de prácticas que induzcan a error al consumidor.

Page 14: Diapositivas sql

ETAPAS. DE LA NORMALIZACION.

Page 15: Diapositivas sql

Primera Forma Normal (1FN). SE DEBE CUMPLIR CON LO SIGUIENTE: Una relación R se encuentra en 1FN si y solo sí por

cada renglón columna contiene valores atómicos. 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.

Todos los ingresos en cualquier columna (atributo) deben ser del mismo tipo.

Cada columna debe tener un nombre único, el orden de las columnas en la tabla no es importante.

Dos filas o renglones de una misma tabla no deben ser idénticas, aunque el orden de las filas no es importante.

Page 16: Diapositivas sql

EJEMPLO.

Primera forma normal.

Page 17: Diapositivas sql

2FN.

 Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna clave dependen de forma completa de la clave principal. Es decir que no existen dependencias parciales. (Todos los atributos que no son clave principal deben depender únicamente de la clave principal).

En otras palabras podríamos decir que la segunda forma normal está basada en el concepto de dependencia completamente funcional. Una dependencia funcional  es completamente funcional si al eliminar los atributos A de X significa que la dependencia no es mantenida, esto es que . Una dependencia funcional  es una dependencia parcial si hay algunos atributos  que pueden ser eliminados de X y la dependencia todavía se mantiene, esto es .

Page 18: Diapositivas sql

EJEMPLO. {DNI, ID_PROYECTO}  HORAS_TRABAJO (con

el DNI de un empleado y el ID de un proyecto sabemos cuántas horas de trabajo por semana trabaja un empleado en dicho proyecto) es completamente dependiente dado que ni DNI  HORAS_TRABAJO ni ID_PROYECTO  HORAS_TRABAJO mantienen la dependencia. Sin embargo {DNI, ID_PROYECTO}  NOMBRE_EMPLEADO es parcialmente dependiente dado que DNI  NOMBRE_EMPLEADO mantiene la dependencia.

Page 19: Diapositivas sql

EJEMPLO.

Ejemplo de segunda forma normal.

Page 20: Diapositivas sql

3FN La tabla se encuentra en 3FN si es 2FN y si no

existe ninguna dependencia funcional transitiva entre los atributos que no son clave.

Un ejemplo de este concepto sería que, una dependencia funcional X->Y en un esquema de relación R es una dependencia transitiva si hay un conjunto de atributos Z que no es un subconjunto de alguna clave de R, donde se mantiene X->Z y Z->Y.

Page 21: Diapositivas sql

EJEMPLO.

Ejemplo de la tercera forma normal.

Page 22: Diapositivas sql

4FN. Una tabla se encuentra en 4FN si, y sólo si,

para cada una de sus dependencias múltiples no funcionales X->->Y, siendo X una super-clave que, X es o una clave candidata o un conjunto de claves primarias.

Page 23: Diapositivas sql

EJEMPLO.

Cuarta forma normal.

Page 24: Diapositivas sql

MODELO ENTIDAD – RELACION.

(A veces denominado por sus siglas en inglés, E-R "Entity relationship", o del español DER "Diagrama de Entidad Relación") es una herramienta para el MODELADO DE DATOS que permite representar las entidades relevantes de un SISTEMA DE INFORMACIÓN así como sus interrelaciones y propiedades.

Page 25: Diapositivas sql

Utiliza diagramas de entidad relación. Consiste en los siguientes pasos.

1.- Se parte de una descripción textual del problema o sistema de información a automatizar (los requisitos).2.- Se hace una lista de sustantivos y verbos que aparecen.3.- Los sustantivos son posibles entidades o atributos.4.- Los verbos son posibles relaciones.5. -Analizando las frases se determina la cardinalidad de las relaciones y otros detalles.6.- se elabora el diagrama o (diagramas) entidad . Relación.7.- se completa el modelo con listas de atributos y una descripción de otras restricciones que no se pueden reflejar en el diagrama.

Se caracteriza por utilizar una serie de símbolos y reglasPara representar los datos y sus relaciones.

Representa de manera gráfica la estructura lógicaDe una base de datos.

Page 26: Diapositivas sql

ESTA FORMADO:

El modelo de datos entidad-relación está basado en una percepción del mundo real que consta de una colección de objetos básicos, llamados entidades, y de relaciones entre esos objetos.

Page 27: Diapositivas sql

ENTIDAD. Representa una “cosa” u "objeto" del mundo real con

existencia independiente, es decir, se diferencia unívocamente de otro objeto o cosa, incluso siendo del mismo tipo, o una misma entidad.

Page 28: Diapositivas sql

Ejemplos:

Una persona. (Se diferencia de cualquier otra persona, incluso siendo gemelos).

Un automóvil. (Aunque sean de la misma marca, el mismo modelo,..., tendrán atributos diferentes, por ejemplo, el número de chasis).

Una casa (Aunque sea exactamente igual a otra, aún se diferenciará en su dirección

Page 29: Diapositivas sql

DIAGRAMA E.R.

Page 30: Diapositivas sql

RELACION. Describe cierta dependencia entre

entidades o permite la asociación de las mismas.

Page 31: Diapositivas sql

EJEMPLO: Si tenemos dos entidades, "CLIENTE" y "HABITACION", podemos

entender la relación entre ambas al tomar un caso concreto (ocurrencia) de cada una de ellas. Entonces, podríamos tener la ocurrencia "Habitación 502", de la entidad "HABITACION" y la ocurrencia "Henry Jonshon Mcfly Bogard", de la entidad "CLIENTE", entre las que es posible relacionar que la habitación 502 se encuentra ocupada por el huésped de nombre Henry.

Una relación tiene sentido al expresar las entidades que relaciona. En el ejemplo anterior, podemos decir que un huésped (entidad), se aloja (relación) en una habitación (entidad).

Page 32: Diapositivas sql

CLAVES. Es un subconjunto del conjunto de atributos comunes en una colección

de entidades, que permite identificar inequívocamente cada una de las entidades pertenecientes a dicha colección. Asimismo, permiten distinguir entre sí las relaciones de un conjunto de relaciones.

Dentro de los conjuntos de entidades existen los siguientes tipos de claves:

Superclave: Es un subconjunto de atributos que permite distinguir unívocamente cada una de las entidades de un conjunto de entidades. Si se añade un atributo al anterior subconjunto, el resultado seguirá siendo una superclave.

Clave candidata: Dada una superclave, si ésta deja de serlo quitando únicamente uno de los atributos que la componen, entonces ésta es una clave candidata.

Clave primaria: Es una clave candidata, elegida por el diseñador de la base de datos, para identificar unívocamente las entidades en un conjunto de entidades.

Page 33: Diapositivas sql

DICCIONARIO DE DATOS.

Es un conjunto de metadatos que contiene las características lógicas y puntuales de los datos que se van a utilizar en el sistema que se programa, incluyendo nombre, descripción, alias, contenido y organización.

Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información, se desarrolla durante el análisis de flujo de datos y auxilia a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño.

Page 34: Diapositivas sql

DATOS QUE ENCONTRAMOS EN UN DICCIONARIO. Se encuentra la lista de todos los elementos que forman

parte del flujo de datos de todo el sistema. Los elementos más importantes son flujos de datos, almacenes de datos y procesos. El diccionario de datos guarda los detalles y descripción de todos estos elementos.

Page 35: Diapositivas sql

DEFINICIONES DEL DICCIONARIO. Una definición de un dato se introduce mediante el

símbolo “=”; en este contexto El “=” se lee como “está definido por”, o “está

compuesto de”, o “significa”. Para definir un dato completamente, la definición

debe incluir: El significado del dato en el contexto de la aplicación.

Esto se documenta en forma de comentario. La composición del dato, si es que está compuesto de

otros elementos significativos. Los valores que el dato puede tomar, si se trata de un

dato elemental que ya no puede ser descompuesto.

Page 36: Diapositivas sql

DATOS ELEMENTALES DEL DICCIONARIO. Son aquellos para los cuales no hay una

descomposición significativa. Por ejemplo, puede ser que no se requiera descomponer el nombre de una persona en primer-nombre, apellido-materno y apellido-paterno; esto depende del contexto del sistema que se esté modelando.

Cuando se han identificado los datos elementales, deben ser introducidos en el DD y proveer una breve descripción que describa el significado del dato. En el caso de que el dato tenga un nombre significativo, se puede omitir la descripción, sin embargo; es importante especificar las unidades de medida que el dato puede tomar.

Page 37: Diapositivas sql

DATOS OPCIONALES. Un dato opcional es aquel que puede o no

estar presente como componente de un dato compuesto. Se caracteriza por estar encerrado entre paréntesis.

Page 38: Diapositivas sql

SELECCIÓN. Indica que un elemento consiste de

exactamente una opción de un conjunto de alternativas que se encierran entre corchetes.

Page 39: Diapositivas sql

ITERACCIÓN Se usa para indicar ocurrencias repetidas

de un componente en un elemento compuesto.

Ejemplo: Orden-de-compra = nombre-cliente + dirección-de-envío + {artículo} significa que una orden de compra siempre debe contener un nombre de cliente, una dirección de envío y cero o más ocurrencias de un artículo.

Page 40: Diapositivas sql

El DD define los elementos de datos.

DESCRIBIENDO.

• EL SIGNIFICADO DE LOS FLUJOS Y LOS DEPÓSITOS.• LA COMPOSICIÓN DE PAQUETES AGREGADOS DE DATOS QUE

SE MUEVEN POR LOS FLUJOS.• LA COMPOSICIÓN DE LOS PAQUETES DE DATOS DE LOS DEPOSITOS.ESPECIFICANDO LOS VALORES RELEVANTES Y UNIDADES DE INFORMACION DE LOS FLUJOS DE DATOS Y DEPÓSITOS DE DATOS.

Page 41: Diapositivas sql
Page 42: Diapositivas sql
Page 43: Diapositivas sql
Page 44: Diapositivas sql
Page 45: Diapositivas sql
Page 46: Diapositivas sql

LENGUAJE SQL. LENGUAJE DE CONSULTA ESTRUCTURADO, PARA BASES DE

DATOS RELACIONAES. ES MUCHO MAS QUE UN LENGUAJE DE CONSULTA, PUESTO

QUE PERMITE ADEMAS FUNCIONES DE DEFINICION Y CONTROL DE DATOS.

LA ESTANDARIZACION HA SIDO CRUCIAL PARA SU DIFUSION. PRACTICAMENTE LA MAYORIA DE LOS SISTEMAS

RELACIONALES SOPORTAN LAS BASES DE SQL ESTANDAR Y SUELEN INCLUIR APORTACIONES PROPIAS.

Page 47: Diapositivas sql

COMANDOS SQL. SELECT. ALTER TABLE. DELETE FROM. GROUP BY. HAVING. ORDER BY.

Page 48: Diapositivas sql

La sentencia SELECT

  El formato de la sentencia select es:

SELECT [ALL | DISTINCT ]             <nombre_campo> [{,<nombre_campo>}]FROM <nombre tabla>|<nombre vista>         [{,<nombre tabla>|<nombre vista>}][WHERE <condición> [{ AND|OR <condición>}]][GROUP BY <nombre_campo> [{,<nombre_campo >}]][HAVING <condición>[{ AND|OR <condición>}]][ORDER BY <nombre_campo>|< indice_campo> [ASC | DESC]                [{,<nombre_campo>|< indice_campo> [ASC | DESC ]}]]

Page 49: Diapositivas sql
Page 50: Diapositivas sql

LA SENTENCIA ALTER TABLE.

Sirve para modificar la estructura de una tabla que ya existe. Mediante esta instrucción podemos añadir columnas nuevas, eliminar columnas. Ten cuenta que cuando eliminamos una columna se pierden todos los datos almacenados en ella.

Page 51: Diapositivas sql

COMANDO DELETER FROM. A veces podemos desear deshacernos de los registros de una tabla. Para

ello, utilizamos el comando DELETE FROM. La sintaxis para esto es, DELETE FROM "nombre tabla"

WHERE {condición} Por ejemplo, digamos que actualmente tenemos la siguiente tabla:

Tabla Store_Information.

Txn_Date

Store_Name Sales

Los Angeles 1500 05-Jan-1999

San Diego 250 07-Jan-1999

Los Angeles 300 08-Jan-1999

Boston 700 08-Jan-1999

Page 52: Diapositivas sql

Y decidimos no mantener ninguna información sobre Los Ángeles en esta tabla. Para lograrlo, ingresamos el siguiente SQL

DELETE FROM Store_Information . WHERE Store Name = 'Los Angeles';

Ahora el contenido de la tabla se vería:

Txn_Date

Store_Name Sales

San Diego 250 07-Jan-1999

Boston 700 08-Jan-1999

Tabla Store_Information

Page 53: Diapositivas sql

COMANDO GROUP BY.

Si usa una función de grupo en un comando sin la cláusula GROUP BY , es equivalente a agrupar todos los registros.

Txn_DateStore_Name Sales

Los Angeles 1500 05-Jan-1999

San Diego 250 07-Jan-1999

Los Angeles 300 08-Jan-1999

Boston 700 08-Jan-1999

Tabla Store_Information

Page 54: Diapositivas sql

Deseamos saber las ventas totales para cada negocio. Para hacerlo, ingresaríamos.

Store_Name SUM(Sales)

Los Angeles 1800

San Diego 250

Boston 700

SELECT Store_Name, SUM (Sales)FROM Store_InformationGROUP BY Store_Name;

Resultado:

Page 55: Diapositivas sql

COMANDO HAVING SQL. La consulta SQL HAVING es utilizada junto con

SELECT para especificar una condición de búsqueda para un grupo.

HAVING se comporta como WHERE, pero se aplica a grupos (las filas o tuplas en el conjunto de resultados representan grupos). La cláusula WHERE se aplica a filas o tuplas individuales, NO a grupos.

Page 56: Diapositivas sql

EJEMPLO: ejemplo de una tabla de ventas con la siguiente información: Venta, Precio,

Nombre Y Cliente

Los datos son los siguientes: 250 - Juan 190 - Patricio 500 - Ernesto420 - Susana1000 - María1000 - Juan2000 – Patricio.

Para obtener el cuadro anterior, obtuvimos la lista de todos los clientes junto con el monto respectivo de la venta usando la siguiente sentencia SQL:

Page 57: Diapositivas sql

SELECT NombreCliente, SUM (Venta Precio) FROM VentasGROUP BY NombreCliente.

Ahora queremos seleccionar los clientes que han gastado más de 1200, para hacer esto utilizamos la HAVING así:

SELECT NombreCliente, SUM (VentaPrecio) FROM VentasGROUP BY NombreClienteHAVING SUM(VentaPrecio) > 1200;

El resultado será:Patricio 2190Juan 1250

Page 58: Diapositivas sql

Comando ORDER BY SQL.

Si necesitamos enumerar el resultado en un orden particular. Esto podría ser en orden ascendente, en orden descendente, o podría basarse en valores numéricos o de texto. En tales casos, podemos utilizar la palabra clave ORDER BY para alcanzar nuestra meta.

Page 59: Diapositivas sql

La sintaxis para una instrucción ORDER BY es la siguiente:

SELECT "nombre_columna"FROM "nombre tabla"[WHERE "condición"]ORDER BY "nombre_columna" [ASC, DESC]

ORDER BY ASC significa que los resultados se mostrarán en orden ascendente, y DESC significa que los resultados se mostrarán en orden descendente. Si no se especifica ninguno, la configuración predeterminada es ASC.

Page 60: Diapositivas sql

la cláusula ORDER BY anterior se convierte enORDER BY "nombre1_columna" [ASC, DESC], "nombre2_columna" [ASC, DESC]

EJEMPLO: podríamos desear enumerar los contenidos de la Tabla Store_Information según la suma en dólares, en orden descendente:

Tabla Store_Information.Store_Name Sales Txn_Date

Los Angeles 1500 05-Jan-1999

San Diego 250 07-Jan-1999

San Francisco 300 08-Jan-1999

Boston 700 08-Jan-1999Ingresamos,

Ingresamos,

Page 61: Diapositivas sql

Ingresamos: SELECT Store Name, Sales, Txn_Date

FROM Store_InformationORDER BY Sales DESC.

Resultado:

Txn_DateStore_Name Sales

Los Angeles 1500 05-Jan-1999

Boston 700 08-Jan-1999

San Francisco 300 08-Jan-1999

San Diego 250 07-Jan-199

Page 62: Diapositivas sql

POR SU ATENCIÓN.

MIL GRACIAS.