Conceptos de BD DS

239
Universidad Nacional Mayor de San Marcos E.A.P. de Ingeniería de Software Conceptos Básicos de Base de Datos DISEÑO DE SISTEMAS Mg. Nehil Muñoz C.

Transcript of Conceptos de BD DS

Page 1: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 1/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Conceptos Básicos de Base de Datos

DISEÑO DE

SISTEMAS

Mg. Nehil Muñoz C.

Page 2: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 2/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Un poco de historia …

Sistemas de archivos: Surgieron a raíz de la necesidad de

almacenamiento de la información para sucorrespondiente reutilización (

persistencia)Desventajas: Redundancia de los datos Los archivos están separados unos de otros

(no se pueden “combinar” fácilmente)

Alto costo para la propagación de cambios Inconsistencia debido a actualizaciones

simultáneas

Page 3: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 3/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Procesamiento

de

Clientes

 Archivode

Clientes

Procesamiento

de

Préstamos

 Archivode

Préstamos

Usuario del Archivo de Clientes

Usuario del Archivo de Préstamos

Por cada préstamo se guarda la información

del cliente correspondiente: Redundancia

Un poco de historia …

Page 4: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 4/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Un poco de historia …

¿Por qué surgieron los sistemas de Bases de Datos?

 – Necesidad de solucionar las debilidades de lossistemas de archivos

 – Capacidades:● Manejo de

persistencia

● Soporte por lo menos de un

modelo de datos

● Soporte de un

lenguaje de alto nivel que permita manipular y

definir la estructura de la información● Control de acceso

● Evitar inconsistencias al

compartir la información

Page 5: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 5/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

●… Antes

EmpleadosClientes

Inventario

Ventas Cuentas

SGBDEmpleadosClientes

VentasInventario

Cuentas

Dpto. Personal Dpto. Ventas Dpto. Contabilidad

BASE DE DATOS… AhoraPersonal

Ventas

Contabilidad

Page 6: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 6/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Definición

● Una base de datos es un conjuntoestructurado de datos coherentes

Colección disponible deinformación

Page 7: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 7/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Definición

● Una base de datos es un conjuntoestructurado de datos coherentes

Colección organizada ensubconjuntos, en función deligas y de relaciones entre lasdiferentes informaciones(estructura lógica)

Page 8: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 8/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Definición

● Una base de datos es un conjuntoestructurado de datos coherentes

No hay contradicción entre losdatos ligados, no hay pérdida deinformación, aun sabiendo quehay una utilización compartidade los datos entre variosusuarios

Page 9: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 9/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Definición

● Un Sistema de Gestión de Bases de Datos(SGBD) es un software que permite

manipular las bases de datos

•Construir•Utilizar•Mantener•Reorganizar

Page 10: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 10/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software 10

Sistema de Gestión de Base de Datos (SGBD - DBMS)

”Conjunto de programas que permite DEFINIR, CONSTRUIR yMANIPULAR bases de datos para diversas aplicaciones”

 – Definir una BD es especificar...● estructura de datos,

● tipos de datos y

● restricciones de los datos

 – Construir una BD es...

● almacenar datos en algún medio de almacenamiento controlado por el SGBD

 – Manipular la BD es...

● consultar datos

● introducir/modificar/eliminar datos, para reflejar cambios en el minimundo

generar informes a partir de los datos almacenados

Sistema de Base de Datos

SBD = BD + SGBD + Software de Aplicación/Consultas

Page 11: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 11/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Software para procesarConsultas / Programas

Software para teneracceso a los datos

almacenados

SOFTWARE DELSGBD

Programas de Aplicación /Consultas

SISTEMA DE BASE DEDATOS

Usuarios / Programadores

Definición de laBD

(Metadatos)

Base deDatos

almacenada

Entorno simplificado de un Sistema de Base de Datos

Page 12: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 12/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Sistema de Gestión de Bases de Datos● Propiedades fundamentales

Independencia de los datos (OJO es muy importante)  Acceso eficiente a los datos

Integridad y seguridad de los datos

 Administración de los datos

 Acceso concurrente y recuperación en caso de « crash »

● Los SGBD deben cumplir con las propiedades ACID para lastransacciones:

Atomicity (Atomicidad: las transacciones son atómicas)

Consistency (Consistencia: una transacción transforma un estado

consistente de la BD en otro)Isolation (Aislamiento: las transacciones están aisladas entre si)

Durability (Durabilidad: después que una transacción ha sido

confirmada ella persiste)

Page 13: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 13/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Algunas definiciones

● Esquema de una Base de Datos: Cuando una base de Datoses diseñada interesa definir una estructura para ésta.

Esta estructura permanece “estática” durante un gran períodode tiempo, aunque puede sufrir modificaciones ocasionales

● Instancia: Es la información que en un determinado instantedel tiempo posee la base de datos y que cambiapermanentemente (excepto en algunos tipos de bases de BD

particulares)

Page 14: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 14/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Algunas definiciones

● Usuario final: El que interactúa con la base dedatos, por lo general a través de aplicaciones einterfaces

● Usuario especialista: El que diseña y programaaplicaciones para usuarios finales.

● DBA (Database Administrator): El que

administra la base de datos. ¿Qué hace?

Page 15: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 15/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Administrador de la base de datos (DBA)

– Responsable de administrar los recursos del SBD (nivel

técnico):BD + SGBD + Otro Software (aplicaciones/programas deacceso)

– Las funciones del ABD incluyen:• Definir/Modificar la estructura de la BD y restricciones de

los datos• Crear/Modificar estructuras de almacenamiento y métodos

de acceso• Conceder/Denegar permisos de acceso y controlar dicho

acceso a datos (seguridad de la BD)

• Definir planes de copias de seguridad de los datos de la BD• Garantizar el funcionamiento correcto del sistema yproporcionar servicio técnico al usuario (respuesta lenta delsistema...)

• Adquirir los recursos software y hardware necesarios

Page 16: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 16/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Usuario Especialista de la base de datos

Antes de implementar la BD, interactúan con sus futuros

usuarios– Recogen y comprenden sus necesidades y objetivos ---

Requisitos

– Identifican datos que almacenar en la base de datos

– Eligen estructuras para representar y almacenar los datos– Construyen...• Vista que satisface requisitos de cada grupo de

usuarios

• Diseño final de BD que satisface necesidades de

todos los usuarios (resultado de la integración de lasdiferentes vistas)

Page 17: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 17/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Usuarios finales

– Ocasionales o Sofisticados• Acceso esporádico y distinto cada vez; usan lenguaje de

consulta

– Paramétricos o Normales• Accesos constantes, repetitivos

• Usan “transacciones programadas” para ellos

– Avanzados o Especializados• Implementan sus propias aplicaciones especializadas para

cumplir sus complejos requisitos

• Ingenieros, científicos, analistas de empresa, ...

– Autónomos• Usan BD personales, a través de aplicación/paquete comercial

específico

Page 18: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 18/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Bases de datos I 18

Funciones y componentes principales de un SGBD

DDL: lenguaje de definición de datosDML: lenguaje de manipulación de datos

Fuente: “Introducción a lossistemas de bases de

datos” C.J. Date

ProcesadorDDL

ProcesadorDML

ProcesadorLenguajeConsulta

Esquemasexternos

Datos y

Metadatos

Base de datos

PeticionesDML planeadas

Peticionescompiladas

Peticionesoptimizadas

Optimizador

PeticionesDML No planeadas

Esquemas ytransformaciones

Manejador de transaccionesManejador de almacenamiento

Page 19: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 19/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Componentes funcionales de un SGBD

● Metadatos o Diccionario de Datos (D.D): Contiene el esquemade la B.D, los usuarios, los permisos de acceso, etc. Son datossobre los datos. Almacena la información que permite latraducción entre los 3 niveles de la Arquitectura ANSI/SPARC*

● Optimizador de consultas: Define el plan de ejecución deoperaciones solicitadas por los usuarios, de tal manera que selleven a cabo de la manera más eficiente posible

● Manejador de transacciones: Controla el acceso y laconcurrencia de operaciones

*Se verá mas adelante en el curso

Page 20: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 20/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Componentes funcionales de un SGBD

● Manejador de almacenamiento tiene doscomponentes:

-Manejador  de archivos  recupera desde disco

los bloques que contienen la información solicitadapor una transacción.

-Manejador de buffer   mantiene en memoriaprincipal la información más usada y decide cuando

llevar a disco alguno de sus bloques.

Page 21: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 21/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

• Disminución y control de la redundancia de datos

• Evitar inconsistencias en los datos

• Mantener la integridad

• Aplicación de restricciones de seguridad ( RS )

– No todos los usuarios deberían poder acceder a toda la BD

– Objetivo: control de acceso selectivo• Suministro de múltiples interfaces de usuario

– Usuarios con diferentes niveles de conocimientos técnicos– El SGBD debe ofrecer interfaces para todos ellos

• Representación de relaciones complejas entre datos

– Datos relacionados entre sí de diversas maneras

Ventajas del uso de un SGBD (1)

Page 22: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 22/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

• Respaldo y Recuperación

– Recuperación del sistema tras fallos del hardware o software

– Subsistema del SGBD encargado de respaldo y recuperación

SGBD

Programa deACTUALIZACIÓN

de datosEstado

INICIALBD ok 

EstadoFINAL

BD ok 

Continuación yFinalización Correcta

del programa

Restauración de laBD

“Deshacer” todaactualización de datoshecha por el programa

BD KO !!

 XOR 

Ventajas del uso de un SGBD (y 7)

Page 23: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 23/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Desventajas de un SGBD

1. Tamaño

2. Susceptibilidad a fallas (Discutible)

3.

Complejidad en la recuperación a fallas(Discutible)

4. Puede llegar a trabajar en forma “lenta” debido

a la cantidad de verificaciones que debe

hacer 

Page 24: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 24/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Tendencias de los SGBD

Sistemas para el soporte para toma de decisiones (DataWarehouse) y/o con capacidades deductivas y bases de datostemporales

Manejar información multimedial: Imágenes, audio, videos

Bases de datos orientadas a objetos y objeto-relacionales

Manejar información georeferenciada: Sistemas de InformaciónGeográficos (SIG)

Manejo de información documental: Motores de búsqueda,sistemas para el manejo de documentos.

Bases de datos nativas para XML

Page 25: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 25/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Niveles de Abstracción de una B.D.

● Percepción de una base de datos segúnel tipo de usuario (final, especialista oadministrador).

●  Arquitectura ANSI/SPARC

● Base para la independencia de datos

Page 26: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 26/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Arquitectura ANSI/SPARC

Inventario Ventas Contabilidad

Base de datos lógica (vista

Integrada)

 Nivel de visión o externo

(Vistas Parciales)

 Nivel Conceptual o lógico(Vista Global o Comunitaria)

 Nivel Físico

(Almacenamiento) Base de Datos física

implementada

Page 27: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 27/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Nivel de Visión

● Externo

● El más cercano a los usuarios finales

● Percepción de la base de datos por parte de losusuarios finales

● Tantas visiones como tipos de usuarios

Cada visión de usuario final se puedecaracterizar como un subesquema

Page 28: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 28/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

●Nivel de Visión

Cada visión puede proporcionar diferentesrepresentaciones de los mismos datos

Visión Vendedor

Fechas con formato:

(dd-mm-yy)

Visión Contador

Fechas con formato:

(yyyy-dd-mm)BD

Page 29: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 29/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Nivel Conceptual

● Mediador entre los otros 2 niveles

● Interesante para el usuario especialista

● Se ocupa de los datos almacenados en la base de

datos física y las relaciones entre ellos● Descripción semántica de los datos que conforman

la base de datos

Soporta a cada visión de usuario externa

Page 30: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 30/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Nivel Conceptual

● Es una visión completa de todos los requerimientos yelementos de interés para la organización

● Debe incluir restricciones sobre los datos

● La descripción del nivel conceptual no debe tener detallesdependientes del almacenamiento*

● Es un lenguaje de alto nivel

* Sin embargo en algunos SGBD esto no se logra expresar de esta manera…

Page 31: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 31/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Nivel Físico

● Interno

● Más cercano a la máquina

● Interesa al Administrador y al usuario Especialista● Esquema físico: Descripción y tipos de datos:

tamaño y precisión, tipos de índices y deestructuras de almacenamiento concretas que semanejan, de acuerdo con un SGBD particular 

Page 32: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 32/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Nivel Físico

● Describe cómo los datos son almacenados entérminos de estructuras de datos particulares

● Se encarga de:

- Reservar espacio para datos e índices

- Compresión de datos

- Técnicas de encriptamiento de datos

Page 33: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 33/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Independencia de los datos

Es uno de los objetivos de la arquitectura ANSI/SPARC

● Permite modificar la definición de un nivel sin afectar (en lo posible) el nivel inmediatamente superior 

● Sin independencia de datos se requeriría muchoesfuerzo para cambiar las aplicaciones de tal formaque se adaptasen a la nueva estructura de la base de

datos.● Hay dos tipos: física y lógica

Page 34: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 34/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Independencia Física

● Se presenta entre el nivel conceptual y el nivel físico

● Un cambio en el esquema físico (usar otras estructuras dealmacenamiento) no conduce a cambios en el esquemaconceptual

Ej. Cambio en la forma de almacenar un índice: B+ porHashing , ¿con qué propósito se hace un cambio de estetipo?

● Inmunidad del esquema conceptual ante cambios del

esquema físico

Page 35: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 35/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Independencia Lógica

● Se presenta entre el nivel de visión y el nivelconceptual

● Significa que un cambio en el nivel conceptual

no debe conllevar a un cambio en el nivel devisión

● Es más difícil de lograr. ¿Por qué?

Page 36: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 36/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Independencia Lógica

 Algunos de los posibles cambios en el nivelconceptual:

●  Adición de nuevos elementos (atributos,

entidades etc.)● Eliminación de elementos Puede afectar a

los subesquemas externos

Page 37: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 37/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Diferencias entre los nivelesVista externa 1 Vista externa 2

 Nivel

conceptual

 Nivel interno

Correspondencia 

Conceptual / I nterna 

Correspondencias 

Externa / Conceptual 

Page 38: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 38/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Introducción a SQL Server 

DISEÑO DE

SOFTWARE

Mg. Nehil Muñoz C.

Page 39: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 39/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

●Plataforma del Servidor 

Page 40: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 40/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Servicios de SQL Server 

Servicio principal para almacenar, procesar yproteger datos.

Page 41: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 41/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Páginas y Extensiones

●  Antes de crear una base de datos con SQLServer, debemos tomar en cuenta que launidad básica de almacenamiento en SQL

Server es la página o data page, el tamaño decada page es de 8 KB, lo cual representa untotal de 128 páginas por cada megabyte.

Page 42: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 42/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Transact SQL- Server 

Es un sublenguaje derivado del SQL (StruturedLanguage Query) que tiene instrucciones quesirven para realizar peticiones al Database

Engine. Sublenguaje propietario de Microsoft.

Incluye características propias.

En base al estándar de SQL.

Page 43: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 43/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Páginas y Extensiones

● El comienzo de cada página es una cabecerade 96 bytes que se utiliza para almacenarinformación de cabecera tal como el tipo de

página, la cantidad de espacio libre de lapágina y el Id. del objeto propietario de lapágina.

Page 44: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 44/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Páginas y Extensiones

● Existen ocho tipos de páginas en los archivosde datos de una base de datos SQL Server:

1. Datos : Filas con todos los datos excepto los de

tipo text, ntext e image.2. Índice: Entradas de índices

3. Texto o imagen: Datos de tipo text, ntext e image.

4. Mapa de asignación global/ Mapa de asignaciónglobal Secundario : Información acerca de lasextensiones asignadas.

Páginas y Extensiones

Page 45: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 45/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Páginas y Extensiones5. Espacio libre en la página: Información acerca del

espacio libre disponible en las páginas.

6. Mapa de asignación de índices: Información acerca delas extensiones utilizadas por una tabla o un índice

7. Bulk Changed Map : Información de los extendsmodificados por operación bulk desde el último backupdel log.

8. Differential Changed Map : Información de los extendsmodificados desde el último full database backup.

Page 46: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 46/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Páginas y Extensiones

Los archivos de registro (LOG) no contienenpáginas, contienen series de registros.

Las entradas de la tabla de posiciones de filasestán en orden inverso a la secuencia de las

filas de la página.

Page 47: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 47/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Páginas y Extensiones

Las filas de datos se ponen en las páginas una a continuación de otra,

empezando inmediatamente después de la cabecera, al final de cada páginase encuentra una tabla de posiciones de filas que contiene una entrada porcada fila de la página y cada entrada registra la posición, desde el principiode la página, del primer byte de la fila.

Page 48: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 48/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Páginas y Extensiones

● En SQL Server, las filas no pueden continuaren otras páginas.

● Las extensiones son la unidad básica deasignación de espacio a las tablas e índices.

• Constan de 8 páginas contiguas, es decir 64 KB. Locual representa 16 extensiones por MB.

Page 49: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 49/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Páginas y Extensiones

Para hacer que la asignación de espacio seaeficiente, SQL Server no asigna extensionesenteras a tablas con poca cantidad de datos.

● SQL Server tiene dos extensiones másutilizadas:

 – Las extensiones uniformes son propiedad de unúnico objeto; sólo el objeto propietario puede utilizarlas ocho páginas de la extensión.

 – Extensiones mixtas, pueden estar compartidas por

hasta ocho objetos.

Page 50: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 50/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Páginas y Extensiones

• Las tablas o índices nuevos son asignados apáginas de extensiones mixtas. Cuando latabla o el índice crecen hasta el punto de

ocupar ocho páginas, se pasan a extensionesuniformes.

A hi d hi fí i d

Page 51: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 51/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Archivos y grupos de archivos físicos de

la base de datos

• Un archivo de base de datos no es mas que unarchivo del sistema operativo. Una base dedatos se distribuye en por lo menos dos archivos,

aunque es muy probable que sean varios losarchivos de base de datos que se especifican alcrear o al modificar una base de datos.

• Principalmente SQL Server divide su trabajo enun archivo para datos y otro para el registro delas transacciones (log).

A hi d hi fí i d

Page 52: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 52/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Archivos y grupos de archivos físicos de

la base de datos

SQL Server permite los tres siguientes tipos de archivos: Archivos de datos primarios: Toda base de datos tiene un archivo

de datos primario que realiza el seguimiento de todos los demásarchivos, además de almacenar datos. Por convenio este archivotiene la extensión MDF.

Archivos de datos secundarios: Una base de datos puede tenercero o varios archivos de datos secundarios. Por convenio laextensión recomendada para los archivos de datos secundarios esNDF.

Archivos de registro (LOG): Todas las bases de datos por lo menos

tendrán un archivo de registro que contiene la información necesariapara recuperar todas las transacciones que suceden sobre la misma.Por convenio la extensión de este archivo es LDF.

A hi d hi fí i d

Page 53: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 53/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Archivos y grupos de archivos físicos de

la base de datos

• Por lo tanto al crear una base de datos,debemos considerar los siguientes premisas yreglas para el almacenamiento de los datos:

• Todas las Bases de Datos tienen un archivo de basede datos primario (.mdf) y uno para el Log deTransacciones (.ldf). Además puede tener archivosde datos secundarios (.ndf).

A hi d hi fí i d

Page 54: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 54/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Archivos y grupos de archivos físicos de

la base de datos

• Cuando se crea una Base de Datos, una copia de laBase de Datos Model, la cual incluye tablas delsistema, es copiada en la Nueva Base de Datos.

• La Data es almacenada en bloques de 8-kilobytes(KB) de espacio de disco contiguo llamado páginas.

• Las filas o registros no pueden atravesar páginas.Esto, es, que la máxima cantidad de datos en unafila de datos simple es de 8060 bytes.

A hi d hi fí i d

Page 55: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 55/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Archivos y grupos de archivos físicos de

la base de datos

• Las tablas y los índices son almacenados enExtents. Un Extents consta de ocho páginascontiguas, o sea 64 KB.

• El Log de Transacciones lleva toda la informaciónnecesaria para la recuperación de la Base de Datosen una eventual caída del sistema. Por default, eltamaño del Log de Transacciones es del 25% deltamaño de los archivos de datos. Use estaconfiguración como punto de partida y ajuste deacuerdo a las necesidades de su aplicación.

A hi d R i t (LOG d

Page 56: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 56/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Archivos de Registro (LOG de

Transacciones)

El LOG de transacciones archiva todas lasmodificaciones de los datos tal cual sonejecutados. El proceso es como sigue:

Una modificación de datos es enviada por laaplicación cliente.

Cuando una modificación es ejecutada, las páginasafectadas son leídas del disco a memoria (BufferCache), provista de las páginas que no estántodavía en la Data Cache del query previo.

A hi d R i t (LOG d

Page 57: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 57/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Archivos de Registro (LOG de

Transacciones)

• Cada comando de modificación de datos esarchivado en el LOG. El cambio siempre esarchivado en el LOG y es escrito en el disco antesque el cambio sea hecho en la Base de Datos. Este

tipo de LOG es llamado LOG de tipo write-ahead.

• Una vez que las páginas de datos residen en elBuffer Cache, y las páginas de LOG son archivadassobre el disco en el archivo del LOG, el proceso deCHECKPOINT, escribe todas las transaccionescompletas a la Base de Datos en el disco.

A hi d R i t (LOG d

Page 58: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 58/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Archivos de Registro (LOG de

Transacciones)

• Si el sistema falla, automáticamente el procesode recuperación usa el LOG de Transaccionespara llevar hacia delante todas las

transacciones comprometidas (COMMIT) yllevar hacia atrás alguna transacciónincompleta (ROLLBACK).

hi d R i t (LOG d T i )

Page 59: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 59/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

rchivos de Registro (LOG de Transacciones)

A hi d R i t (LOG d

Page 60: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 60/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Archivos de Registro (LOG de

Transacciones)

● Los marcadores de transacción en el LOG sonusados durante la recuperación automáticapara determinar los puntos de inicio y el fin de

una transacción. Una transacción esconsiderada completa cuando el marcadorBEGIN TRANSACTION tiene un marcadorasociado COMMIT TRANSACTION. Las

páginas de datos son escritas al disco cuandoocurre el CHECKPOINT.

Page 61: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 61/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Creando una Base de datos

● Desde el Analizador de Consultas :

● Otra de las formas de crear una base de datoses a través del Analizador de Consultas, dondeemplearemos la sentencia CREATE DATABASE,cuya sintaxis reducida es la siguiente:

Page 62: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 62/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Creando una Base de datos

CREATE DATABASE NombreBaseDatos[ ON [PRIMARYNAME = nombreArchivoLógico,FILENAME = 'nombreArchivoSO',SIZE = tamaño,MAXSIZE = { tamañoMáximo | UNLIMITED } ,

FILEGROWTH = incrementoCrecimiento) [,…n]][ LOG ON

NAME = nombreArchivoLógico,FILENAME = 'nombreArchivoSO',SIZE = tamaño,

MAXSIZE = { tamañoMáximo | UNLIMITED } ,FILEGROWTH = incrementoCrecimiento) [,…n][COLLATE nombre_collation] [ FOR LOAD | FOR ATTACH ]

Page 63: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 63/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Argumentos

nombreBaseDatosEs el nombre de la nueva base de datos, deben ser únicos enun servidor y pueden tener hasta 128 caracteres, a menos queno se especifique ningún nombre lógico para el registro. Si nose especifica ningún nombre lógico de archivo de registro, SQLServer genera un nombre lógico al anexar un sufijo a

nombreBaseDatos. ON

Especifica que los archivos de disco utilizados para almacenarla parte de datos (archivos de datos) se han definidoexplícitamente. La palabra clave va seguida de una lista

delimitada por comas de elementos que definen los archivos dedatos del grupo de archivos principal.

Page 64: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 64/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Argumentos

PRIMARYEspecifica que la lista de archivos está asociada al grupoprincipal. Este grupo contiene todas las tablas del sistema debase de datos. También contiene todos los objetos noasignados a los grupos de archivos de usuario.

El primer archivo especificado pasa a ser el archivo principal, elcual contiene el inicio lógico de la base de datos y de las tablasdel sistema.

Una base de datos sólo puede tener un archivo principal. Si nose especifica PRIMARY, el primer archivo enumerado en la

instrucción CREATE DATABASE se convierte en el archivoprincipal.

Page 65: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 65/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Argumentos

LOG ONEspecifica que los archivos de registro de la base dedatos (archivos de registro) se han definidoexplícitamente.

La palabra clave va seguida de una lista delimitada porcomas la cual define las características de los archivosde registro.

Si no se especifica LOG ON, se crea automáticamente

un único archivo de registro con un nombre generadopor el sistema y un tamaño que es el 25% de la sumade los tamaños de todos los archivos de datos de labase de datos.

Page 66: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 66/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Argumentos

● NAME

Especifica el nombre lógico del archivo.Este nombre es el utilizado para referenciar al

archivo en las sentencias del Transact-SQL quese ejecuten después.

Page 67: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 67/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Argumentos

● FILENAME

Especifica el nombre de archivo del sistema(archivo físico). Se debe especificar la ruta de

acceso y nombre de archivo que el sistemaoperativo utiliza cuando crea la base de datos.

La ruta de acceso debe especificar un directorioen el servidor sobre el que se instalo SQLServer. No se puede especificar un directorioen un sistema comprimido de archivos.

Page 68: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 68/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Argumentos

SIZEEspecifica el tamaño para el archivo. De no hacerloSQL Server utiliza el tamaño del archivo principal de labase de datos model.

Cuando este parámetro no es especificado para unarchivo secundario o de registro SQL Serverautomáticamente le asigna 1 MB. El valor mínimo aasignar es de 512 KB. Si no se especifica tamaño, elvalor predeterminado es 1 MB.

El tamaño especificado para el archivo principal debetener al menos el tamaño del archivo principal de labase de datos model.

Page 69: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 69/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Argumentos

● MAXSIZE

Especifica el tamaño máximo de crecimientodel archivo. Se pueden utilizar los sufijos KB y

MB, el valor predeterminado es MB.Especifique un número entero; no incluyadecimales.

Si no se especifica, el archivo aumenta hastaque el disco esté lleno.

Page 70: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 70/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Argumentos

● UNLIMITED

Especifica que el archivo aumenta de tamañohasta que el disco esté lleno.

Page 71: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 71/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Argumentos

FILEGROWTHEspecifica el incremento de crecimiento del archivo, este valorno puede exceder el valor MAXSIZE. Emplee un númeroentero.

Un valor 0 indica que no hay crecimiento. El valor se puede

especificar en MB, KB o %, el valor predeterminado es MB.Cuando se especifica %, el tamaño de incremento decrecimiento es el porcentaje especificado del tamaño delarchivo en el momento en que tiene lugar el incremento. De noemplear FILEGROWTH, el valor predeterminado es 10% y el

valor mínimo es 64 KB. El tamaño especificado se redondea almúltiplo de 64 KB más cercano.

Page 72: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 72/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

CREATE DATABASE

Use esta sentencia para crear una base de datos ylos archivos que almacenan ésta. SQL Serverimplementa CREATE DATABASE en dos pasos:

SQL Server utiliza una copia de model para inicializar labase de datos y sus metadatos.

SQL Server rellena el resto de la base de datos con

páginas vacías, excepto las páginas que tengan datosinternos que registren cómo se emplea el espacio en labase de datos.

Observaciones

Page 73: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 73/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Observaciones

Cualquier objeto definido por el usuario enmodel se copiará a todas las bases de datosrecién creadas.

• Cada base de datos nueva hereda los valoresopcionales de la base de datos model (amenos que se especifique FOR ATTACH).

• En un servidor se puede especificar un máximo

de 32,767 bases de datos.

DISEÑO DE

Page 74: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 74/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Arquitectura ANSI/SPARC

DISEÑO DE

SOFTWARE

Mg. Nehil Muñoz C.

Enfoque de Base de Datos

Page 75: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 75/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Enfoque de Base de Datos

● La importancia de almacenar, manipular y recuperar la información enforma eficiente ha llevado al desarrollo de una teoría esencial para lasbases de datos. Esta teoría ayuda al diseño de bases de datos yprocesamiento eficiente de consultas por parte de los usuarios.

● Las arquitecturas de bases de datos han evolucionado mucho desdesus comienzos, aunque la considerada estándar hoy en día es ladescrita por el comité ANSI/X3/SPARC (Standard Planning andRequirements Committee of the American National Standards Instituteon Computers and Information Processing), que data de finales de los

años setenta.

Page 76: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 76/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

ARQUITECTURA

Este comité propuso una arquitectura general para DBMS’sbasada en tres niveles o esquemas: el nivel físico, o demáquina, el nivel externo, o de usuario, y el nivel conceptual.Así mismo describió las interacciones entre estos tres niveles ytodos los elementos que conforman cada uno de ellos.

● EL uso de las BD es contrario al enfoque tradicional, en quecada sistema maneja sus propios datos y archivos. Al usar BD,todos los datos se almacenan en forma integrada, y están

sujetos a un control centralizado. Las diversas aplicacionesoperan sobre este conjunto de datos.

Page 77: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 77/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Arquitectura ANSI

Hay tres características importantes inherentes a los sistemas debases de datos:

 – la separación entre los programas de aplicación y los datos

 – el manejo de múltiples vistas por parte de los usuarios y

 – el uso de un catálogo para almacenar el esquema de la base de datos.En 1975, el comité ANSI-SPARC (American National StandardInstitute - Standards Planning and Requirements Committee)propuso una arquitectura de tres niveles para los sistemas de basesde datos, que resulta muy útil a la hora de conseguir estas trescaracterísticas. Propiedad que asegura que los programas de

aplicación sean independientes de los cambios realizados en datosque no usan o en detalles de representación física de los datos alos que acceden

Objetivo

Page 78: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 78/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Arquitectura ANSI

● Grupo de estudio ANSI/SPARC en 1977 propuesta dearquitectura para los DBMS que plantea la definición dela base de datos a tres niveles de abstracción:

 – Nivel conceptual

 – Nivel interno

 – Nivel externo

Estructura

Page 79: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 79/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Niveles de abstracción (ANSI/SPARC)

Nivel internogestión de acceso

Nivel conceptualintegridad-coherencia

Nivel externoconfidencialidad

Esquema físico

Esquema lógico, resultado de

un proceso de modelamiento

Vista usuario 1

Vista usuario 2

Vista usuario n

n esquemasexternos

Page 80: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 80/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Arquitectura ANSI

Page 81: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 81/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Nivel conceptual

En el nivel conceptual tiene un esquema lógico que describe laestructura de toda la base de datos para una comunidad deusuarios. El esquema conceptual oculta los detalles de las

estructuras físicas de almacenamiento y se concentra endescribir entidades, tipos de datos, vínculos o relaciones,operaciones de los usuarios y restricciones.

● La descripción del nivel conceptual no debe tener detalles dependientesdel almacenamiento*

● Tiene asociado un lenguaje de alto nivel

* Sin embargo en algunos SGBD esto no se logra expresar de esta manera

Arquitectura ANSI

Estructura

S

Page 82: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 82/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

 – Nivel interno

En el nivel interno se describe la estructura física de la basede datos mediante un esquema interno. Este esquema seespecifica mediante un modelo físico y describe todos losdetalles para el almacenamiento de la base de datos, así comolos métodos de acceso. Esquema interno: descripción de la BD

en términos de su representación física.

Arquitectura ANSI

Estructura

Más cercano a la máquina

A i ANSI

Page 83: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 83/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

 – Nivel externo

En el nivel externo se describen varios esquemas externos ovistas de usuario. Cada esquema externo describe la parte dela base de datos que interesa a un grupo de usuariosdeterminado y oculta a ese grupo el resto de la base de datos.En este nivel se puede utilizar un modelo conceptual o un

modelo lógico para especificar los esquemas. Esquemaexterno: descripción de las vistas parciales de la BD queposeen los distintos usuarios.

El más cercano a los usuarios finales

Arquitectura ANSI

Estructura

Nivel de Visión

Page 84: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 84/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Cada visión puede proporcionar diferentes

representaciones de los mismos datos

Visión Vendedor

Fechas con formato:

(dd-mm-yy)

Visión Contador

Fechas con formato:

(yyyy-dd-mm)BD

Nivel de Visión

●Arquitectura ANSI

Page 85: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 85/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Hay que destacar que los tres esquemasno son más que descripciones de losmismos datos pero con distintos niveles

de abstracción.

Los únicos datos que existen realmenteestán a nivel físico, almacenados en un

dispositivo como puede ser un disco

●Arquitectura ANSI

I d d i d l d t

Page 86: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 86/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Independencia de los datos

● Es uno de los objetivos de la arquitectura ANSI/SPARC

● Permite modificar la definición de un nivel sin afectar (en lo posible) el nivel inmediatamente superior 

● Sin independencia de datos se requeriría muchoesfuerzo para cambiar las aplicaciones de tal forma quese adaptasen a la nueva estructura de la base de datos.

● Hay dos tipos: física y lógica

Page 87: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 87/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Independencia de los datos

● Física: inmunidad que tienen los usuarios y lasaplicaciones ante los cambios en la forma dealmacenar físicamente los datos.

● Conceptual o lógica: inmunidad que poseen losusuarios y las aplicaciones ante los cambios enla estructura lógica de la base de datos

Page 88: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 88/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Independencia Física

● Se presenta entre el nivel conceptual y el nivel físico

● Un cambio en el esquema físico (usar otras

estructuras de almacenamiento) no conduce acambios en el esquema conceptual

● Inmunidad del esquema conceptual ante cambios del

esquema físico

I d d i Ló i

Page 89: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 89/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Independencia Lógica

● Se presenta entre el nivel de visión y el nivelconceptual

● Significa que un cambio en el nivel conceptual no

debe conllevar a un cambio en el nivel de visión● Es más difícil de lograr. ¿Por qué?

D fi i ió

Page 90: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 90/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Definición

● Un Sistema de Gestión de Bases de Datos(SGBD) es un software que permite

manipular las bases de datos

•Construir

•Utilizar•Mantener•Reorganizar

Obj ti d l SGBD

Page 91: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 91/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software 9

Objetivos de los SGBD● Independencia de los datos:

 – Las aplicaciones que se comuniquen con el SGBD deben verseafectados lo menos posible por cambios efectuados en laestructura de los datos que no utilizan

● Esta aporta flexibilidad para la adaptación de los SI a la evolución dela organizaciones

● Integridad de los datos:

 – La información almacenada en la base de datos debe satisfacer ciertas restricciones de consistencia

 – definidas explícitamente por los usuarios – el SGBD determina si las actualizaciones suponen o no la violación de dichas

restricciones

 – Se debe asegurar la correcta ejecución de los accesosconcurrentes

 – Ha de ofrecerse la posibilidad de recuperación de la base de datosfrente a posibles deterioros

Objeti os de los SGBD

Page 92: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 92/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Objetivos de los SGBD● Proteger a los datos frente a accesos desautorizados

● Sencillez en la interfaz frente a los usuarios yaplicaciones

 – proporcionando, entre otras funciones, adecuados métodos deacceso

●  Aumentar la disponib i l idad y la t rasparencia de lainformación existente

 – todos los datos que se encuentran en la base se deben relacionaren un catálogo o diccionario

● que puede ser ampliamente difundido y accedido por mediosinformáticos

Objetivos de los SGBDMayor valor in form ativo :

Page 93: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 93/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

● Mayor valor inform ativo :

● La base de datos, como reflejo del mundo real recoge lasinterrelaciones entre los datos

 – el valor informativo del conjunto es superior a la suma del valor informativo de loselementos individuales que lo constituyen

● actúa el efecto de sinergia

● En la base se incluye, integrada con los datos, la semánti ca de losmismos

 – No todos los SGBD facilitan las mismas prestaciones a estosrespectos

pero la tendencia actual es conseguir que la descripción de losdatos incluida dentro del sistema sea lo más completa posible

y que el diccionario que la contiene, accedido por el SGBD, seacapaz de almacenar y tratar el máximo de semántica.

Inconvenientes de los SGBD

Page 94: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 94/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Inconvenientes de los SGBD● Estos inconvenientes cobran su verdadera dimensión en el caso de

grandes bases de datos

nunca para pequeños sistemas instalados en ordenadores personales – Instalación costosa:

● La implantación de un sistema de bases de datos puede llevar consigo un costeelevado

 – tanto en equipo físico

● nuevas instalaciones o ampliaciones

 – como en el lógico● sistemas operativos, programas, compiladores, etc... necesarios para su uso

además del propio coste de adquisición y mantenimiento del SGBD

 – Necesidad de personal especializado.

 – Implantación larga y difícil

 – Falta de rentabilidad a corto plazo

Niveles de abstracción en los SI

Page 95: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 95/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Niveles de abstracción en los SI

● En los SI se puede observar la existencia dedos estructuras distintas:

 – la lógica : transmite la vista que el usuario tiene de

los datos que usa – y la fís ica : transmite la forma en que se encuentran

esos datos en el almacenamiento

Capacidades de un Sistema de Gestión de Bases de Datos.

Page 96: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 96/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Manejar información persistente. La información permanece entre

diferentes ejecuciones de un programa. Soportar un modelo de datos. Abstracción matemática a través de la

cual el usuario puede ver los datos. Ejemplo: El modelo Relacional.

Soportar un lenguaje de alto nivel El usuario especifica que información

necesita apoyado en el modelo de datos. Ejemplo: El S.Q.L.

Control de acceso. Limitar el acceso a los datos de usuarios noautorizados. Ejemplo: Grant select on Empleados to User-1.

Integridad: Capacidad de chequear la validez de los datos que seingresen. Ejemplo: El salario es obligatorio en la tabla de empleados.

Transacción (Tx)

Page 97: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 97/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Capacidades de un Sistema de Gestión de Bases de Datos.(cont.)

Page 98: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 98/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Cumplir con las propiedades ACID:

Atomicity : Manejar el concepto de transacción (Tx). Esdecir, un programa se ejecuta completamente ó de otramanera se eliminan los cambios parciales realizados.

Begin Transaction - Programa - End Transaction

Consistency: Después de terminar una Transacción la Basede datos no viola ninguna de sus reglas: valores obligatorios,claves únicas,etc.

Isolation : Los efectos de una Transacción(Tx) no son visibles

a otros usuarios mientras no se confirmen. Durability: Si el sistema falla no debe permitir que se pierdan

las operaciones realizadas por Tx ya confirmadas.

3 Consultas y

. Arquitectura funcional de un S.G.B.D.

Page 99: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 99/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

1. Definicióndel esquema

dela B. de D.

Procesador dellenguaje

de Consulta yoptimizador

Manejador deTransacciones

Manejador deAlmacenamiento

Base de Datosfísica y

Diccionario deDatos.

Tablas deAutorización

(D. de D.)

CompiladorD.D.L

Tablas dedescripciónde la B.de D.(D.de.D)Tablas de

accesoconcurrente

CompiladorD.C.L

2. Otorgar permisos

sobre el esquema

3. Consultas y

Programas de

Usuario normal

Esquema conceptual .vs.

Page 100: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 100/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Esquema lógico

● El esquema conceptual ha de ser independientedel SGBD a utilizar:

 – En el estado actual de la técnica de las bases de

datosno existe ningún modelo conceptual general yaccesible desde cualquier tipo de SGBD

que nos permita definir el esquema conceptual 

 – Por este motivo es preferible distinguir dosesquemas en lugar del esquema conceptual

Esquema conceptual .vs.Esquema lógico

Page 101: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 101/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Esquema lógico

 – El esquema conceptual :● Visión lógica global del SI, independiente del SGBD que

se utilice, e incluso de que se utilice o no una BD

 – El esquema lógico :

● Visión lógica global de la BD del SI, expresada entérminos del tipo de SGBD que se vaya a utilizar 

●  Ambos son esquemas globales de tipo lógico

orma de acceso a un fichero

vs

Page 102: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 102/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

.vs.

Forma de acceso a una base de datos

PROGRAMA DE

APLICACION

PROGRAMA DE

APLICACION

SGBDSGBD

Subsistema

de gestión de datos

(métodos de acceso)

S.O.

Fichero

Base

de

Datos

Interacción del SGBD con el SO

Page 103: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 103/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

● Cada aplicación tiene:

 – un área de trabajo con sus áreas de entrada/salida y – un área de estado destinada a recibir los mensajes y

la información de control

● Paso 1: La aplicación hace una llamada al SGBD

Datos

Esquema interno

Esquema lógico

Esquema externo aplicación A

BD

SGBD

SO

Almacenamiento intermedio

Aplicación AEstado

Área de trabajo

1

Interacción del SGBD con el SO

Page 104: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 104/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

● Paso 2: El SGBD obtiene el esquema externo de laaplicación A y examina la descripción de los datos

solicitados● Paso 3: El SGBD obtiene el esquema lógico y realiza la

transformación externo/lógica correspondiente

Paso 4: El SGBD examina el esquema interno y realiza latransformación lógico/física correspondiente

Datos

Esquema interno

Esquema lógico

Esquema externo aplicación A

BD

SGBD

SO

Almacenamiento intermedio

Aplicación A

Estado

Área de trabajo

234

Interacción del SGBD con el SO

Page 105: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 105/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Interacción del SGBD con el SO

● Paso 5: El SGBD emite órdenes al SO indicando que debeleer y donde está almacenado

● Paso 6: El SO interactúa con el almacén físico en el que seencuentran los datos

● Paso 7: Los datos se transfieren al almacenamientointermedio (buffers)

Datos

Esquema interno

Esquema lógico

Esquema externo aplicación A

BD

SGBD

SO

Almacenamiento intermedio

Aplicación A

Estado

Área de trabajo 56

7

Interacción del SGBD con el SO

Page 106: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 106/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

● Paso 8: El SGBD, comparando el esquema externo de laaplicación A y el esquema lógico, deduce los datos pedidos

por el programa y lleva a cabo las transformacionesnecesarias

● Paso 9: El SGBD transfiere los datos al área de trabajo

Paso 10: El SGBD suministra información sobre el estadode la petición, indicando cualquier posible error 

Datos

Esquema interno

Esquema lógico

Esquema externo aplicación A

BD

SGBD

SO

Almacenamiento intermedio

Aplicación A

Estado

Área de trabajo 8,9

10

DISEÑO DE

SOFTWARE

Page 107: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 107/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Modelo Logico - Cardinalidad

SOFTWARE

Mg. Nehil Muñoz C.

Tipos de Cardinalidad

Page 108: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 108/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Tipos de Cardinalidad

Page 109: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 109/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Page 110: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 110/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Representando Relaciones Muchos a

Page 111: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 111/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Muchos

Resolviendo Relaciones

Page 112: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 112/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

muchos -a muchos

Ejemplo de Entidad

Page 113: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 113/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Asociativa

Ejemplo de Entidad

A i i

Page 114: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 114/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Asociativa

Relaciones Muchos a Muchos

Page 115: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 115/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Relaciones Muchos a Muchos

Ejemplo para ilustrar 

t lid d

Page 116: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 116/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

temporalidad

Vista Estática y Temporal de

l i t ió

Page 117: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 117/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

la misma construcción

Relaciones uno a uno

Page 118: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 118/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Relaciones uno a uno

Page 119: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 119/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Page 120: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 120/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Page 121: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 121/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Page 122: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 122/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Page 123: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 123/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Page 124: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 124/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Page 125: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 125/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Page 126: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 126/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Page 127: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 127/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

DISEÑO DE

SOFTWARE

Page 128: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 128/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Dependecia Funcional

SOFTWARE

Mg. Nehil Muñoz C.

Dependencia funcional

Page 129: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 129/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

p Una dependencia funcional es una relación

entre atributos de una misma relación (tabla). Sea R una relación y sean X e Y

subconjuntos(atributos) arbitrarios de R.Entonces decimos que Y es funcionalmente

dependiente de X, en símbolos:X --> Y

(se lee X determina funcionalmente a Y, o

simplemente X flecha Y) Cuando dos tuplas de R concuerdan en su

valor de X, también concuerdan en su valor Y.

●DEPENDENCIA FUNCIONAL●DEF: Sean   a y b atributos de la relación R.

● Decimos que determina funcionalmente a en R denotado

Page 130: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 130/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

● Decimos que 

determina funcionalmente a 

en R, denotadopor  a --> b

●● Si y sólo si :

● Para todos los pares de tuplas t1, t2 de la relación R, tales quet1[a] = t2[a] también se cumple que t1[b ] = t2 [b]

● Ejemplo: cédula --> nombre.

t1

t2

a b

Si t1 y t2 coinciden en el atributo a  ,Entonces deben coincidir también

en el atributo  b .

Dependencia funcional. Ejemplo

Page 131: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 131/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

p j p

En una relación Empleado si conocemos elvalor de FechaDeNacimiento podemos conocerel valor de Edad.

{ fechaDeNacimiento } -> { edad }

Se puede leer de dos formas: FechaDeNacimiento determina a Edad o

Edad es dependiente de FechaDeNacimiento.

Características de las Dependencias

Funcionales

Page 132: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 132/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Funcionales

Dependencia funcional parcial Si "Y" es dependiente de "X" y además, es

dependiente de un subconjunto propio de “X”.

Ejemplo:

{ dni, nombre } --> { dirección }

Si con el dni más el nombre se determina sudirección. Entonces, sólo con el dni tambiénse determina el nombre de una persona,entonces

Características de las Dependencias

Funcionales

Page 133: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 133/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Funcionales

Dependencia funcional completa Si "Y" es dependiente de "X" pero no es

dependiente de ningún subconjunto propio de“X”.

Ejemplo:

{ dni } --> { nombre } Si el nombre de una persona están incluidos

en el DNI, entonces con el DNI podemosdeterminar su nombre.

Características de las Dependencias

Funcionales

Page 134: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 134/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Funcionales

Dependencia funcional Transitiva Sean X, Y, Z subconjuntos de la misma relación. Si

 Y depende funcionalmente de X y Z de Y, se diceque Z depende transitivamente de X.

X --> Y --> Z => X --> Z

Ejemplo:

{ fechaDeNacimiento } --> { edad }

{ edad } --> { licenciaConducir }

Entonces:

{ fechaDeNacimiento } -->{ licenciaConducir }

DISEÑO DE

SOFTWARE

Page 135: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 135/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Normalizacion

SO

Mg. Nehil Muñoz C.

Formas normales

Page 136: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 136/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

El proceso de normalización gira en torno alconcepto de formas normales.

Se dice que una relación se encuentra en una

determinada forma normal si satisface unconjunto de condiciones establecidas.

Toda relación normalizada está en 1FN, esdecir: normalizada y 1FN significa lo mismo.

●Formas normales

Page 137: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 137/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Universo de relaciones (normalizadas y no normalizadas)Relaciones 1FN (relaciones normalizadas)

Relaciones 2FN

Relaciones 3FN

Relaciones Boyce-Codd (BCNF)

Relaciones 4NF

Relaciones 5FN

Page 138: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 138/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Primera, Segunda y Tercera Forma Normal

Page 139: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 139/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Primera Forma Normal (1NF) Una relación está en primera forma normal si y

solo si todos los dominios subyacentescontienen solo valores escalares.

Primera Forma Normal : 1FNDominio Atómico. Los elementos del dominio son indivisibles.

Page 140: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 140/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Primera Forma normal : 1FN

Una relación está en primera forma normal si y sólo si todos losdominios de los atributos son atómicos.

Ejemplos:

Venta (número-fac, cliente, producto[i], unidades[i] )

No está en primera forma normal.

Empleado (código, nombre, teléfono)

código = 016-242224 donde

● 016 = departamento

● 242224 = código empleado

No está en primera forma normal.

Ejemplo para aplicar FN

Page 141: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 141/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Page 142: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 142/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Page 143: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 143/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Page 144: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 144/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Page 145: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 145/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Primera, Segunda y Tercera Forma Normal

Page 146: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 146/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Segunda Forma Normal (2NF) Una relación está en segunda forma normal

(2NF) si y sólo si está en 1NF y todos losatributos no clave dependen por completo de

la clave primaria.

Page 147: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 147/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

●Primera, Segunda y Tercera Forma Normal

Page 148: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 148/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Primera, Segunda y Tercera Forma Normal

Page 149: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 149/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Tercera Forma Normal (3NF) Una relación está en tercera forma normal

(3NF) si y sólo si está en 2NF y todos losatributos no clave dependen de manera no

transitiva de la clave primaria.

Primera, Segunda y Tercera Forma Normal

Page 150: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 150/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

●Primera, Segunda y Tercera Forma Normal

Page 151: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 151/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Page 152: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 152/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Page 153: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 153/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Page 154: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 154/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Page 155: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 155/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Page 156: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 156/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Page 157: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 157/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Page 158: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 158/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

DISEÑO DE

SOFTWARE

Page 159: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 159/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

SQLMg. Nehil Muñoz C.

¿Qué es SQL?

Page 160: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 160/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Es un lenguaje de consulta y programación de bases de datosutilizado para la organización, acceso, consulta y gestión debases de datos relacionales.

Cliente

Aplicacióndel Cliente

API’s de la BD(OLEDB, ODBC,

Microsoft Jet, etc.)

Librería deAutentificación

del Cliente

SolicitudSQL

Datos Server

DatabaseManagement

System

(SGBD)

Validación dePermisos

Transacciones-SQL

Page 161: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 161/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Las transacciones son comandos universales SQL que permiten realizarpetición a un servidor de BD por medio de otras aplicaciones.

● Existen 3 tipos de Transacciones:

 – Data Definition Lenguage (DDL)● El lenguaje de definición de datos es utilizado para definir la estructura de la BD

 – Data Control Lenguage (DCL)

● Son utilizadas para establecer los permisos sobre los elementos de una BD

 – Data Manipulation Lenguage (DML)

● Son utilizadas para trabajar con los datos de las Bases de Datos como consultar,insertar, actualizar o la eliminación de datos.

Elementos de Sintaxis en SQL

Page 162: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 162/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

●  Al realizar transacciones o instrucciones SQL se llegan a utilizarciertos elementos que forman parte del uso del SQL como lo son:

 – Los Nombres y Alias

 – Batches

 – Comentarios

 – Tipos de Datos

 – Variables

 – Operadores

 – Funciones

Nombres y Alias

Page 163: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 163/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

● Cuando se escriben declaraciones de SQL, se utilizan nombres para

referirse a bases de datos, tablas, columnas o sentencias reservadas deSQL. Pero también es posible crear alias los cuales funcionan comosinónimos para llamar a las tabla o campos.

● Pueden contener caracteres alfanuméricos, guión bajo y el $.

● No puede estar formado solamente de dígitos.

● Se deben incluir entre caracteres de comillas o apostrofes.

● No incluir signos especiales como diagonales, puntos y comas.

● El nombre no debe corresponder a una palabra reservada de SQL

● Cuando se utilice el nombre de una tabla o campo compuesto por espaciosen blanco se deberá colocar el nombre entre [ ] o entre ‘’.

Ejemplo: 

SELECT Nombre,[Fecha de Nacimiento]FROM Empleados

Batches

Page 164: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 164/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Un Batche esta formado por un conjunto desentencias o transacciones SQL.

GO – Mediante la palabra GO, SQL marca el final de un

batche y es enviado a procesar al Servidor de SQL.

Ejemplo: 

Use NorthwindSELECT * FROM ProductnameGO

Comentarios

Page 165: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 165/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Los comentarios son cadenas de texto que no son tomados encuenta durante la ejecución de sentencias.

● Existen 2 formas de colocar comentarios en SQL:

 – Comentari os por Línea 

Para colocar un comentario en una línea, se deben colocar 2 (--) guionesantes del comentario, ya que SQL ignora todo el texto que se encuentre ala derecha de los guiones.

 – Comentarios de Bloque 

● Para generar un bloque de varias líneas de comentarios se utiliza loscaracteres (/*) para marcar el inicio del comentario y los caracteres (*/)para finalizar el comentario

Ejemplo: 

Use Ventas - - utiliza la BD VentasSELECT * - - Selecciona todos los registrosFROM Pedidos - - de la tabla pedidosGo

Ejemplo: 

 /* Este es un bloquede varias líneas

que termina precisamente aquí */

Variables

Page 166: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 166/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Dentro de SQL se pueden definir variables para almacenar valorestemporales.

Todas las variables deben iniciar con el símbolo @

●Declaración de variables

●Asignar valores en lasvariables

●Devolver el valor delas variables

Sintaxis: 

DECLARE @variable Tipo de Dato 

Ejemplo:DECLARE @nombre varchar(15)

Sintaxis: 

SET @variable = valor 

Ejemplo:SET @nombre = ‘Juan Pérez’

Sintaxis: SELECT @variable 

Ejemplo:SELECT @nombre

Operadores

Page 167: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 167/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Tipos de Operadores – Aritméticos

+ - * / ^

 – Comparación

> < <> = >= <=

 – Concatenación

+

 – Lógicos

 And Or Not

Funciones

Page 168: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 168/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

COUNT Número de registros seleccionados POSITION (Caracter  IN  Cadena )

SUM Suma de un campo SUM (Campo )

 AVG Promedio de un campo AVG (Campo )MAX Máximo de un campo MAX (Campo )

MIN Mínimo de un campo MIN (Campo )

Page 169: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 169/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

●SQL: DDL

Transacciones DDL

● Son instrucciones que controlan la estructura de una BD con las

Page 170: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 170/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

● Son instrucciones que controlan la estructura de una BD con lascuales se pueden realizar las siguientes acciones:

 – Crear Tablas

 – Eliminar Tablas

 – Modificar la estructura de la tabla

 – Definir Vistas (Tablas Virtuales)

 – Establecer parámetros de seguridad a la BD

 – Creación de Índices para la aceleración el acceso a los datos.

 – Control del almacenamiento de los datos

Las transacciones DDL que se utilizan son:

 – CREATE Nombre del Objeto

 –  ALTER Nombre del Objeto

 – DROP Nombre del Objeto

SQL:DDL

Page 171: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 171/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Se pueden crear tablas con la instrucciónCREATE TABLE nombre_tabla

  atributos: cada uno con su tipo de datos y

restricciones

);

Se pueden crear índices así:

CREATE INDEX nombreindice ON tabla columna s));

Las vistas no son más que “consultas con nombres”

Ejemplo:

CREATE VIEW nombre_vista AS consulta;

Crear una Base de Datos (CREATE)

Page 172: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 172/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

● Comando T-SQL:

 – CREATE DATABASE

● Sintaxis:

 – CREATE DATABASE [Nombre de BD]

Ejemplo:

create database cursosqlon(name = MiDB,filename = 'C:\Archivos de programa\Microsoft SQL Server\MSSQL$SQLCEDEC1\Data\cursosql.mdf',size=8MB, Maxsize=9MB,filegrowth=100Kb)LOG ON

(name = cursosql_reg,filename = 'C:\Archivos de programa\Microsoft SQL Server\MSSQL$SQLCEDEC1\Data\cursosql.ndf',size=1000MB, Maxsize=1500MB,filegrowth=100Mb)

use cursosqlgosp_helpdb [base de datos]

Permite mostrar la información de los archivosde la base de datos y muestra el espacioasignado.

Utilizar una BD

Page 173: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 173/239

Universidad Nacional Mayor de San Marcos

E.A.P. de Ingeniería de Software

Para realizar una acción dentro de una Base de Datos,primero hay que decirle a MySQL que queremos trabajarcon esa Base de Datos, para esto se utiliza el siguientecomando

Sentencia SQL: – USE

● Sintaxis:

 – USE Nombre de la BD

Ejemplo: 

USE Animales

Creación de una Tabla

Page 174: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 174/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

Comando T-SQL: – CREATE TABLE

● Sintaxis: – CREATE TABLE Nombre_Tabla (

Nombre_Campo1 Tipo_Dato[(Tamaño )] [NULL | NOT NULL] [DEFAULT Valor ],Nombre_Campo2 Tipo_Dato[(Tamaño )] [NULL | NOT NULL] [DEFAULT Valor ], etc… )

 – * Solo es necesario definir el tamaño cuando se utilizan los Tipos deDatos Char y Varchar .

Ejemp lo 1: 

CREATE TABLE MiTabla (Matricula INT,Nombre VARCHAR(15),Edad INT )

Creación de una Tabla

Page 175: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 175/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

● Valores Ausentes y Valores Predeterminados

 –  Al momento de definir cada una de las columnas es posible determinar siel campo va a permitir valores nulos o no.

 – Es posible definir para cada columna en caso de ser necesario, una valorque funcione como predeterminado al momento de ingresar registros a la

tabla.

CREATE TABLE oficinas(oficina integer NOT NULL,ciudad varchar(15) NOT NULL,region varchar(15) NOT NULL DEFAULT 'Este',

 jef integer DEFAULT 106,objetivo money DEFAULT NULL,ventas money NOT NULL)

Restricciones de Integridad

Page 176: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 176/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

 Aseguran que los cambios realizados a una BD no provoquen

inconsistencia en la información.

Restricciones de dominio: Conjunto de valores y deoperaciones permitidas sobre ellos.

Dominios base en SQL:

 – CHAR p): Cadena de caracteres de longitud fija p(máxima longitud p)

 – VARCHAR p): Cadena de caracteres de longitud variable.Máxima longitud p.

 – NUMBER p,s): Valor numérico de precisión p y escala s.

 – DATE: Fechas válidas.

●Tipos de Datos

Page 177: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 177/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

Clasificación Tipos de Datos Descripción

Números

SMALLINT Números enteros pequeñosINTEGER Números enteros

BIT (Longitud ) Cadena de Bits de longitud fija

REAL Números con coma flotante de baja Precisión

DOUBLE PRECICIÓN Números con coma flotante de doble Precisión

FLOAT (Precisión ) Números en coma flotanteDECIMAL Números decimales y $

Cadenas de Texto

CHAR (Longitud ) Cadena de longitud fija

CHARACTER 

 VARCHAR (Longitud ) Cadenas de longitud variable

Fechas y HorasDATE FechasTIME (Precisión) Horas

INTERVAL Intervalo de Tiempo

DATETIME Fecha y Hora

●Tipos de datos. CHAR vs VARCHAR

Page 178: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 178/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

avE

avE

Nom CHAR (10)

Nom VARCHAR (10)

Nom CHAR (10) => ‘Eva’

Nom VARCHAR (10) => ‘Eva’

Nota:

El limite, para CHAR  Y VARCHAR es de 8 000 caracteres

●Tipos de datos. CADENA DE CARACTERES

Page 179: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 179/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

TEXT. Cadenas de caracteres de “longitud ilimitada”. Adiferencia de los tipos CHAR  y VARCHAR , este tipo de datono se puede descomponer en caracteres individuales para suanálisis.

Sintaxis.

Nombre_campo TEXT

Ejemplo.

Descripcion TEXT => ‘Mesa color caoba oscura, para 8 personas’

Direccion TEXT => ‘San Rafael Atlixco, numero 186 Col Vicentina C.P.

09340 México D.F. ‘

Nota.

El tamaño limite de este tipo de dato es de 2,147,483,647 caracteres.

Tipo de dato “decimal”

Page 180: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 180/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

Permite definir cuantas cifra decimales aparecen después del punto en datos fraccionales.

Sintaxis:

Nombre_Campo DECIMAL ( N, d )

donde:

N es el total de dígitos del dato.

d es el numero de cifras decimales que aparecerán en el campo

Ejemplo

896.25 => DECIMAL ( 5,2 )

2003.2569 => DECIMAL ( 8,4 )Nota:

Si el numero de cifra totales insertadas es mayor que el numero de cifras totalesdeclaradas, el manejador trunca el dato en cuestion.

Tablas con Columnas Incrementales

Page 181: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 181/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

● Las tablas pueden contener una sola columna que tenga como valor un valor

inicial y que en cada registro que se agregue se pueda ver incrementadodependiendo del valor que se definió en la sintaxis de la creación de la tabla

CREATE TABLE nombre_tabla

(nombre_columna tipo_dato[IDENTITY [(valor_inicial,incremento)]]NOT NULL)

CREATE TABLE clases

(Id_Estudiante integer IDENTITY(100, 5) NOT NULL,Nombre varchar(15))

Restricciones de Integridad

Page 182: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 182/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

● Nulos: Un atributo puede o no admitir nulos. EnSQL se especifica mediante la cláusula NOT

NULL.

● Integridad Referencial: Garantiza la existencia de

las Claves Foráneas.Para ello se utilizan las cláusulasREFERENCES y FOREIGN KEY

● Clave Primaria: Garantiza la unicidad yobligatoriedad del o los atributos definidos comoclave primaria. Para ello se utiliza la cláusulaPRIMARY KEY.

Restricciones de Integridad

Page 183: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 183/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

● Clave Alternativa: Garantiza la unicidad de los atributosdeclarados como tal. Se utiliza la cláusula UNIQUE.

Si se desea hacer obligatoria debe especificarse adicionalmenteNOT NULL

.

● Las reglas CHECK para atributos:

Involucra condiciones de chequeo para uno o varios atributos.

Sintaxis : CHECK condicion)

Sea el modelo:

DEPARTAMENTO# código

Page 184: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 184/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

# código

* nombre* ciudad

EMPLEADO#cédula* nombre* salario

comisión

* cargo

el jefe de

el subordinadode

el lugar de trabajo de

adscrito a

CREATE TABLE departamento

( codigo NUMBER(6) PRIMARY KEY,

nombre VARCHAR(6) NOT NULL UNIQUE,

ciudad VARCHAR(12) CHECK (ciudad IN

('Medellín' 'Bogotá' 'Cali')) NOT NULL

Page 185: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 185/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

( Medellín , Bogotá , Cali )) NOT NULL

);

CREATE TABLE empleado( cédulaNUMBER(10) PRIMARY KEY,

nombre VARCHAR(30) NOT NULL,

 jefe NUMBER(10) REFERENCES empleado,

salario NUMBER(10,2) NOT NULL,

comisión NUMBER(2) ,

cargo VARCHAR(20) NOT NULL,

depto NUMBER(6) NOT NULL REFERENCES departamento

);

El atributo ciudad sólo admitirá 1 de estas 3ciudades. Es necesario además colocarle larestricción de no nulidad.

Clave foránea

Clave foráneasobre lamisma tabla

Ej l l lá l CHECK

Restricciones de Integridad

Page 186: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 186/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

Ejemplos con la cláusula CHECK:

CREATE TABLE empleado

( cédula NUMBER(10) PRIMARY KEY,

nombre VARCHAR(30) NOT NULL,

 jefe NUMBER(10) REFERENCES empleado(cédula),

salario NUMBER(10,2) NOT NULL CHECK (salario > 0 ) ,

comision NUMBER(3) CHECK (comision between 0 and 100),

cargo VARCHAR(20) NOT NULL,

depto NUMBER(6) NOT NULL REFERENCES departamento

);

Puede especificarseel atributo hacia elcual se refiere laclave foránea

Restricciones de Integridad

Page 187: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 187/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

CREATE TABLE envio (

snro NUMBER(6),

pnro NUMBER(6),

cantidad NUMBER(6) NOT NULL,

PRIMARY KEY(snro,pnro)

);

Nota: Es incorrecto colocarPRIMARY KEY

al

frente de snro y de pnro.

Especificación de una clave primaria compuesta:

Restricciones de Integridad

Page 188: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 188/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

Clave foránea hacia una clave primaria compuesta:

CREATE TABLE revision(

codrevision NUMBER(5) PRIMARY KEY,

cf_snro NUMBER(6) NOT NULL,

cf_pnro NUMBER(6) NOT NULL,

revisor VARCHAR(20)NOT NULL,

FOREIGN KEY(cf_snro,cf_pnro) REFERENCES envio);

Cuando la clave primaria a la que se referenciaes compuesta se debe utilizar esta sintaxis.

Restricciones de Integridad

Page 189: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 189/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

Se puede modificar la estructura de una tablacon la instrucción ALTER TABLE

Ej: ALTER TABLE mitabla

 ADD nuevocampo NUMBER(3);

● Para destruir una tabla (estructura y datos)

DROP TABLE nombre_tabla;

Borrando Columnas

Page 190: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 190/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

Para borrar una Columna se realiza a través del la sentencia ALTER TABLE

Sintaxis:

ALTER TABLE Nom_Tabla DROP COLUMN Nom_Columna

Ejemplo.

ALTER TABLE Tx ADD C10 INT

ALTER TABLE Tx DROP C10

Cambiar de tipo de dato a un campo

Page 191: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 191/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

Para poder cambiar de tipo de dato a un campo se utiliza la sentencia ALTER TABLE

Sintaxis.

ALTER TABLE Nom_Tabla CHANGE Nom_Columna Nom_Columna Nuevo_tipo

Ejemplo.

-- inicialmente el campo es varchar de 200

ALTER TABLE TX CHANGE C3 C3 CHAR (200);

Cambiar nombre un campo

Page 192: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 192/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

Para poder cambiar el nombre de un campo se utiliza la sentencia ALTER TABLE

Sintaxis.

ALTER TABLE Nom_Tabla CHANGE Nom_Anterior Nuevo_Nombre mismo_tipo

Ejemplo.

-- inicialmente el campo es CHAR(200)

ALTER TABLE TX CHANGE B1 C3 CHAR (200);

Agregando PRIMARY KEY

Page 193: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 193/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

Sintaxis.

ALTER TABLE Tabla ADD CONSTRAINT PRIMARY KEY (C1)

Ejemplo.

- - Agregamos restricción PRIMARY KEY en columna C1

ALTER TABLE TX ADD CONSTRAINT PRIMARY KEY (C1)

Borrando PRIMARY KEY

Page 194: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 194/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

Sintaxis.

ALTER TABLE Tabla DROP PRIMARY KEY (

Ejemplo.

- - Borra la restricción PRIMARY KEY de la tabla TX.

ALTER TABLE TX DROP PRIMARY KEY

●Renombrando tablas

Para cambia el nombre de un tabla se utiliza la sentencia ALTER TABLE Con lasiguiente sintaxis.

Page 195: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 195/239

Universidad Nacional Mayor de San Marcos

E A P de Ingeniería de Software

Otra forma de renombrar a las tabla es mediante la variante de altertabla

RENAME TABLE t1 TO t2;

Sintaxis.

ALTER TABLE t1 RENAME TO t2;

SQL SERVERexec SP_RENAME nombre', ‘nuevonombre'

Ingresando valores …

Page 196: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 196/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

EJEMPLO:

CREATE TABLE t (

a number(3) PRIMARY KEY,

b date,

c varchar(3));

INSERT INTO t VALUES(10, CURRENT_DATE, 'hi');

INSERT INTO t c,a) VALUES(‘bye’,20);Se pueden especificar los campos a insertar…

¿Qué pasa con el atributo b en este caso?

Eliminando valores …

Page 197: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 197/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Para eliminar filas de una tabla:DELETE

FROM tabla

[WHERE condicion];

Ej: DELETE

FROM envioWHERE snro=34;

La condición puede incluir subconsultas…

P t li fil d t bl

Actualizando valores …

Page 198: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 198/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

● Para actualizar filas de una tabla:

UPDATE tabla

SET campo = nuevo_valor 

[WHERE condicion];

- Se pueden actualizar varios campos al mismo tiemposeparándolos por comas

- La condición y nuevo_valor pueden incluirsubconsultas…

Ej l

Actualizando valores …

Page 199: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 199/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Ejemplo:

UPDATE envio

SET cantidad = cantidad - 5

WHERE snro = 10 AND pnro = 20;

Implementación de Supertipos/Subtipos

Page 200: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 200/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

PERSONA

#cédula

*nombre

ESTUDIANTE

*promedio

PROFESOR 

*registro

SUPERTIPOS/SUBTIPOS

Page 201: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 201/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Repasar la clase de ConversiónE-R a Relacional

● Veamos la alternativa 2 para implementarsupertipos y subtipos

SUPERTIPOS/SUBTIPOS

Page 202: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 202/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Se crea la tabla para el supertipo:

CREATE TABLE persona(

cedula NUMBER(8) PRIMARY KEY,

nombre VARCHAR(20) NOT NULL );

SUPERTIPOS/SUBTIPOS

S t bl d d l bti

Page 203: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 203/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

● Se crean tablas para cada uno de los subtipos:

CREATE TABLE estudiante(

cedest NUMBER(8) PRIMARY KEY REFERENCES persona,

promedio NUMBER(3,2) );

CREATE TABLE profesor(

cedprof NUMBER(8) PRIMARY KEY REFERENCES persona,

registro NUMBER(5) );

3 dígitos: 1 entero, 2 decimales

Page 204: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 204/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

En esta alternativa se debe validar porprogramación que la cédula de una persona noexista en ambas tablas para garantizar laexclusividad

Page 205: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 205/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

●Lenguaje de manipulación de datos

DML

Consultas Simples – SELECT

● La instrucción Select permite recuperar información de una base de datos y los

Page 206: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 206/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

p p ydevuelve en forma de resultados de la consulta.

● En la instrucción Select se especifican los elementos de datos que recupera laconsulta.

● Los elementos se especifican a través de una lista de elementos separados porcomas.

● Cada elemento de selección en la lista genera una única columna de resultados de la

consulta, de izquierda a derecha.● Un elemento de selección puede ser:

 – Un nombre de columna

● Identifica una columna de la tabla o tablas que aparecen en la cláusula FROM

● SQL toma el valor de esa columna de cada fila de la tabla y lo muestra como resultado de la consulta

 – Una constante

● Especifica que ese mismo valor de constante aparecerá en cada fila de los resultados de la consulta

 – Una expresión

● Indica a SQL que debe calcular el valor a poner e los resultados, según se especifica en la expresión

●Instrucción SELECT

● SELECT

Page 207: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 207/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

● SELECT

 – Lista las columnas que se van a recuperar dela BD.

● FROM

 – Se indica el nombre de la tabla que contienela información a recuperar.

● WHERE

 – Se especifica una condición para los registrosque debe recuperar SQL.

● GROUP BY

 – Genera una columna donde agrupa losregistros que tengan la misma información,generando un resumen.

HAVING – Indica a SQL que incluya en el resultado sólo

determinados grupos producidos por lacláusula GROUP BY.

● ORDER BY

 – Ordena los resultados tomando como baselos datos de una o más columnas.

Extracción de datos: SELECT

Page 208: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 208/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

SELECT A1, A2, A3, ... , An

FROM R1, R2, R3, ... , Rm

WHERE condición;

Lista de atributos

En su forma básica tiene 3 elementos principales:select, from, where

Lista de relaciones (tablas)

La condición se hace sobre losatributos de las tablas indicadasen la cláusula FROM

Extracción de datos: SELECT

SELECT

Page 209: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 209/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

 – SELECT:

● corresponde a la operación de Proyección

● Permite listar los atributos que se desean en el resultado de laconsulta

 – FROM:

● Especifica los nombres de la(s) tabla(s) de donde los datos seránseleccionados

● Cuando son varias tablas las que aparecen en el FROM el sistemaejecuta una operación de Producto Cartesiano o de join

 – WHERE:● corresponde a la operación de Selección

● La condición se hace sobre los atributos de las tablas del FROM

Equivalencia SQL y Algebrarelacional

Page 210: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 210/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

P A1, A2, A3, ..., An (s (R1 x R2 x R3x ... x Rm))

SELECT A1, A2, A3, ... , AnFROM R1, R2, R3, ... , RmWHERE condición;

La lista de atributos puede ser sustituida porun asterisco (*) para denotar TODOS losatributos

condición

EJEMPLO

Page 211: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 211/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

● Supongamos larelaciónEMPLEADO así:

Código Nombre Edad Depto

1 Jorge Campos 33 1

2 Enrique Muñoz 25 1

3 Esteban Paz 21 1

8 Jorge Arias 30 2

10 Juan Martínez 19 2

12 Anselmo Rodas 28 6

Sea la consulta:SELECT nombre, edad

FROM empleado

WHERE edad >= 28

Nombre Edad

EJEMPLO

Page 212: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 212/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

● La respuesta es también unarelación, así:

 Nombre Edad

Jorge Campos 33

Jorge Arias 30

Anselmo Rodas 28

Los operadores de comparación permitidos

son:=

(igual),=

ó<>

(diferente),>

(mayor que),<

(menor que),

>= (mayor o igual que), <= (menor o igual que)NOTA: también se pueden comparar cadenas de caracterescon operadores como >= y <=

● Se permiten consultas tan complejas como sea necesario

EJEMPLO

Page 213: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 213/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

● Se permiten consultas tan complejas como sea necesario,

usando conectores AND, OR, NOTEj: SELECT *

FROM empleado

WHERE edad < 28 AND depto = 1

● Se puede usar un operador especial denominado BETWEEN,para especificar un rango de valores sobre el cual puedevariar el dominio de un atributo, ejemplo:

Ej: SELECT *FROM empleado

WHERE edad BETWEEN 18 AND 30

EJEMPLO

Page 214: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 214/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Se puede expresar una lista de valores de dominio específicos conel operador IN:

SELECT *

FROM empleado

WHERE nombre IN (‘Jorge Campos’, ‘Esteban Paz’)

● El WHERE anterior equivale a:

nombre=‘Jorge Campos’OR nombre=‘Esteban Paz’

● IN y BETWEEN se pueden negar con NOT

Ordenación deRegistros (ORDER BY)

● Una consulta generada por la cláusula SELECT puede presentar los

Page 215: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 215/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

● Una consulta generada por la cláusula SELECT puede presentar los

resultados de manera organizada tanto numéricamente yalfabéticamente.

 – Cláusula T-SQL:

● ORDER BY

 – Sintaxis:

● SELECT [Campos] FROM [Tabla] ORDER BY [Campos] [Tipo de Ordenación] 

 – Los tipos de ordenación puedes ser:

●  ASC - Ordenación Ascendente

● DESC - Ordenación DescendenteSELECT * FROM empleados ORDER BY idempleado desc 

SELECT * FROM empleados ORDER BY cargo asc 

Consultas con Columnas Calculadas

● Los resultados de una consulta vienen directamente de la bas de datos, una

Page 216: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 216/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

,

consulta de SQL puede incluir columnas calculadas, cuyos valores seobtiene a partir de los valores almacenados.

● Para solicitar una columna calculada se hace a través de una expresión

● Las expresiones de SQL pueden incluir la suma, resta, multiplicación y ladivisión.

● Las columnas referenciadas en una expresión aritmética deben tener un tiponumérico.

select idpedido, idproducto, (preciounidad*cantidad)

as 'Total de Venta' from [detalles de pedidos]

En las condiciones se puede usar para realizar comparaciones

Operador LIKE

Page 217: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 217/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

● En las condiciones se puede usar para realizar comparacionesespeciales de cadenas de caracteres aparte de la igualdad(

=

) y eldiferente(<>) así:

 – El carácter % remplaza cualquier subcadena

 – El carácter  _ remplaza un carácter 

● Ejemplos:

 – atributo LIKE ‘Ing%’ : todo lo que comience por Ing

 – atributo LIKE ‘%eniería%’ : todo lo que contenga eniería – atributo LIKE ‘_ _ _%’ : todo lo que tenga al menos 3

letras

DISTINCT Vs ALL

Page 218: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 218/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Se pueden eliminar tuplas duplicadas en unaconsulta colocando explícitamente DISTINCTdespués de SELECT.

 – Nota: SQL NO es cerrado relacionalmente ya que puede producir

tuplas repetidas

● Si explícitamente se quieren ver los duplicados,se coloca ALL después de SELECT.

 – Nota: ALL es la opción por defecto, rara vez se usa !!!

Condiciones de Búsqueda

(Valores Nulos)

● Para una fila dada, el resultado de una condición de

Page 219: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 219/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

● Para una fila dada, el resultado de una condición debúsqueda puede ser TRUE o FALSE, o puede ser NULLpor que una de las columnas usadas en la evaluación dela condición de búsqueda contenga un valor NULL

SELECT nombrecompañía,cargocontacto,dirección, región, faxFROM clientesWHERE región IS NULL

SELECT idcliente,fechapedido,regióndestinatarioFROM pedidosWHERE idcliente='TOMSP' AND regióndestinatario IS NULL

Page 220: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 220/239

Renombramiento con AS

Page 221: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 221/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

 – Se puede emplear la cláusula AS para generar alias enlas diferentes tablas.

SELECT *FROM empleado AS e, departamento AS d

WHERE e.depto = d.depto

Nota: El SQL estándar exige siempre el uso de AS,aunque algunos SGBD como Oracle y Access losuprimen…

EJERCICIO

Page 222: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 222/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

 – socio (codsocio, nombre, direccion, telefono)

 – pelicula (codpeli, titulo, genero)

 – copia (codcopia, codpeli)

 – prestamo (codsocio, codcopia, fecha, pres_dev)

 – lista_espera (codsocio, codpeli, fecha)

● Con IN y con otros operadores como EXISTS se

Anidamiento de consultas

Page 223: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 223/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

● Con IN, y con otros operadores como EXISTS, sepueden anidar consultas

● Ej: Presentar el título de las películas que nuncase han prestado:

SELECT DISTINCT pel.titulo

FROM pelicula AS pel

WHERE pel.titulo NOT IN (

SELECT pel.tituloFROM pelicula AS pel, prestamo AS pr, copia AS co

WHERE pr.codcopia=co.codcopia ANDco.codpeli=pel.codpeli

)

Otra manera …

Page 224: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 224/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Otra manera de realizar la anterior consulta, queevita la realización de uno de los joins es:

SELECT DISTINCT pel.titulo

FROM pelicula AS pel

WHERE pel.codpeli NOT IN (

SELECT co.codpeli

FROM prestamo AS pr, copia AS co

WHERE pr.codcopia=co.codcopia

)

Funciones de agregación● Devuelven información de una columna

 – MIN: valor más pequeño de una columna

Page 225: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 225/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

p q

 – MAX: valor más grande de una columna

 – SUM: suma de los valores numéricos de una columna

 –  AVG: media de una columna

 – COUNT: número total de valores de una columna – COUNT(*): número de filas de una tabla

● Ejemplos:

 – select avg(salario) from empleado;

 – select avg(salario) from empleado wherecategoria=‘Programador’

 – select count(*) from empleado;

Cláusula GROUP BY

● La cláusula GROUP BY reúne todas las filas que contienen datos en

Page 226: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 226/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

las columnas especificadas y permite ejecutar funciones deagregación en una o más columnas

● Formato ejemplo:

 – select column1,SUM(column2) from “list-of-tables” group by “column-list”

● Ejemplo:

 – SELECT max(salario), dept FROM empleados GROUP BY dept;

 – Lista de los salarios más altos de cada departamento

 – La salida serán los salarios y los departamentos correspondientes

 – SELECT cantidad, max(precio) FROM pedidos GROUP BY cantidad;

Agrupación de Registros (Group By)● Una consulta que contiene GROUP BY se denomina consulta de agrupación

por que agrupa los datos de las tablas fuente en una única fila de resumen

Page 227: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 227/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

por cada registro.

SELECT idproveedor,sum(unidadesenexistencia)FROM productosgroup by idproveedor

SELECT idproveedor,unidadesenexistenciaFROM productosORDER BY idproveedorCOMPUTE sum(unidadesenexistencia)

SELECT idproveedor,unidadesenexistenciaFROM productosORDER BY idproveedorCOMPUTE sum(unidadesenexistencia) by idproveedorCOMPUTE sum(unidadesenexistencia)

Q ueremos saber la cantidad de libros de cada editorial, podemos tipear la siguiente sentencia:

Page 228: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 228/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

select count(*) from libros

where editorial='Planeta';

y repetirla con cada valor de "editorial":

select count(*) from libros where editorial='Emece';

select count(*) from libros where editorial='Paidos';

... Pero hay otra manera, utilizando la cláusula "group by":

select editorial, count(*) from libros

group by editorial;

La instrucción anterior solicita que muestre el nombre de la editorialy cuente la cantidad agrupando los registros por el campo "editorial".Como resultado aparecen los nombres de las editoriales y la cantidadde registros para cada valor del campo.

Entonces, para saber la cantidad de libros que tenemos de

Page 229: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 229/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

cada editorial, utilizamos la función "count()", agregamos"group by" (que agrupa registros) y el campo por el quedeseamos que se realice el agrupamiento, tambiéncolocamos el nombre del campo a recuperar; la sintaxis

básica es la siguiente:

select CAMPO, FUNCIONDEAGREGADO fromNOMBRETABLA group by CAMPO;

Para conocer el total en dinero de los libros agrupados por editorial:

Page 230: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 230/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

select editorial, sum(precio) from libros group by editorial;

Para saber el máximo y mínimo valor de los libros agrupados poreditorial:

select editorial, max(precio) as mayor, min(precio) as menor from librosgroup by editorial;

Para calcular el promedio del valor de los libros agrupados por editorial:select editorial, avg(precio) from libros group by editorial;

HAVINGsí como la cláusula "where" permite seleccionar (o rechazar) registrosindividuales; la cláusula "having" permite seleccionar (o rechazar) un grupo deregistros.

Page 231: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 231/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Si queremos saber la cantidad de libros agrupados por editorial usamos lasiguiente instrucción ya aprendida:

select editorial, count(*) from libros group by editorial;

Si queremos saber la cantidad de libros agrupados por editorial peroconsiderando sólo algunos grupos, por ejemplo, los que devuelvan un valormayor a 2, usamos la siguiente instrucción:

select editorial, count(*) from libros group by editorial havingcount(*)>2;

Se utiliza "having", seguido de la condición de búsqueda, paraseleccionar ciertas filas retornadas por la cláusula "group by"

Cláusula HAVING

● Permite especificar condiciones para las filas de

Page 232: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 232/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

p pcada grupo. Va después de GROUP BY

● Formato:

 – SELECT column1, SUM(column2) FROM "list-of-tables“ GROUP BY "column-list" HAVING "condition";

 – Ejemplo:

● SELECT dept, avg(salario) FROM empleados GROUP BYdept HAVING avg(salario) > 20000;

Uso de la Cláusula HAVING en GROUP BY

● La cláusula HAVING permite establecer una condición en los registros

Page 233: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 233/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

agrupados de una consulta, para que SQL muestre sólo los registros quehayan cumplido con la condición.

● HAVING debe utilizarse en combinación con la cláusula GROUP BY.

SELECT idproducto,idorden,cantidad

FROM pedidos

idproducto Idorden cantidad

1 1 5

1 1 10

2 1 10

2 2 25

3 1 15

3 2 30

SELECT idproducto,sum(cantidad) as Total

FROM pedidosGROUP BY idproductoHAVING sum(cantidad)>=30

idproducto Total

2 35

3 45

Uso de la Cláusula HAVING en GROUP BY

● Ejercicios:

Page 234: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 234/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

j

SELECT idproveedor,sum(unidadesenexistencia)FROM productosgroup by idproveedorhaving sum(unidadesenexistencia)>200

SELECT idproveedor,sum(unidadesenexistencia)FROM productosgroup by idproveedorhaving idproveedor<=5

Uso del GROUP BY

con la cláusula COMPUTE

● La cláusula COMPUTE permite colocar al final de la consulta una fila con un resultado de algunafunción matemática aplicada.

Page 235: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 235/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

p

● Puede utilizarse también la cláusula COMPUTE BY para crear una especie de subtotales con surespectivo total general.

SELECT idproveedor,unidadesenexistenciaFROM productos

ORDER BY idproveedorCOMPUTE sum(unidadesenexistencia)

SELECT idproveedor,unidadesenexistenciaFROM productos

ORDER BY idproveedorCOMPUTE sum(unidadesenexistencia)by idproveedorCOMPUTE sum(unidadesenexistencia)

IdProveedor Unidadesenexistencia

1 39

1 17

2 53

2 9

2 76

Sum 194

IdProveedor Unidadesenexistencia

1 39

1 17

Sum 56

2 53

2 9

2 76

Sum 138

Sum 194

 – SUM(atributo) : Sumatoria del atributo.

Funciones de agregación:

Page 236: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 236/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

 – MAX(atributo) : Valor máximo del atributo. – MIN(atributo) : Valor mínimo del atributo.

 –  AVG(atributo) : Valor promedio del atributo.

 – COUNT(atributo | *) : Conteo de tuplas.

● Se puede usar GROUP BY con estas funciones paraconsolidar por grupos comunes (operador Ģ del álgebra)

● Se puede usar HAVING para establecer condiciones para losgrupos (HAVING es lo que el WHERE es para las tuplas)

Page 237: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 237/239

Page 238: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 238/239

Universidad Nacional Mayor de San MarcosE.A.P. de Ingeniería de Software

Inserción de datos: INSERTINSERT INTO departamento

VALUES(1,’Administración')

Borrado de datos: DELETEDELETE

FROM empleadoWHERE codigo = 10;

Actualización de datos: UPDATE

Page 239: Conceptos de BD DS

7/23/2019 Conceptos de BD DS

http://slidepdf.com/reader/full/conceptos-de-bd-ds 239/239

UPDATE empleado

SET nombre = “Juan Calvo”

WHERE codigo = 1;