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.
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
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 …
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
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
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
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)
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
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
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
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
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)
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)
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?
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
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)
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
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
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
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.
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)
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)
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
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
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
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
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
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
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
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…
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
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
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
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
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é?
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
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
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.
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
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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
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
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
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
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
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
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
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
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 )
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
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.
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:
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 ]
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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ó
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
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
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 :
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
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
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.
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)
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.)
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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ó
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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?
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
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
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
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
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
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
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
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
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 )
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
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
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)
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
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
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
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
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
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
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
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”
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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 …
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 …
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 …
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 …
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
7/23/2019 Conceptos de BD DS
http://slidepdf.com/reader/full/conceptos-de-bd-ds 220/239
Renombramiento con AS
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
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
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 …
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
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
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
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:
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
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:
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.
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
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
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:
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.
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:
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)
7/23/2019 Conceptos de BD DS
http://slidepdf.com/reader/full/conceptos-de-bd-ds 237/239
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
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;