0% encontró este documento útil (0 votos)
32 vistas36 páginas

Introducción a SQL y Diseño de Bases de Datos

Este documento presenta información sobre la asignatura Base de Datos II que se dictará en el primer ciclo de 2023. Incluye detalles sobre los datos generales de la asignatura, la visión y misión de la carrera de Ingeniería de Sistemas e Informática, el marco referencial y la programación académica de la primera unidad didáctica sobre el lenguaje SQL. La unidad cubrirá temas como los tipos de datos, operaciones y restricciones en bases de datos usando el lenguaje SQL.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
32 vistas36 páginas

Introducción a SQL y Diseño de Bases de Datos

Este documento presenta información sobre la asignatura Base de Datos II que se dictará en el primer ciclo de 2023. Incluye detalles sobre los datos generales de la asignatura, la visión y misión de la carrera de Ingeniería de Sistemas e Informática, el marco referencial y la programación académica de la primera unidad didáctica sobre el lenguaje SQL. La unidad cubrirá temas como los tipos de datos, operaciones y restricciones en bases de datos usando el lenguaje SQL.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD NACIONAL DEL SANTA

VÍCERRECTORADO ACADÉMICO
FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E
INFORMATICA

ASIGNATURA

Base de Datos II

2023 - I
Mg. Ing. Luis Enrique Ramirez Milla
I

DATOS GENERALES
II

VISIÓN Y MISIÓN DE INGENIERÍA DE SISTEMAS E INFORMATICA


III

MARCO REFERENCIAL
Base de datos II

Unidad I

Lenguaje estructurado de consulta (SQL)


Competencias de la unidad didáctica
• Escribe código para la construcción de objetos en una Base
de Datos

• Utiliza comandos SQL para ejecutar operaciones


transaccionales en una Base de Datos .
V
PROGRAMACION ACADEMICA
UNIDAD 1
Lenguaje estructurado de consulta
Contenido:

Lenguaje de definición de
datos (DDL).

2
¿Qué temas estudiamos la
clase anterior?
¿Qué han investigado acerca
de los temas a estudiar el día
de hoy?
Contenidos

1. Tipos de
datos

3.
Restricciones

2. Operaciones
1. Tipos de datos
Restricciones de dominio
Conjunto de valores y de operaciones permitidas sobre ellos.

Dominios esenciales de 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.
• DECIMAL(p,s): Valor numérico de precisión p y escala s (para el manejo de
decimales)
• DATE: Fechas.

• * También CHARACTER VARYING y en Oracle VARCHAR2.


Tipos de índices
Arquitectura de los índices
• Los índices son objetos de base de datos diseñados para mejorar el
rendimiento de las consultas.

• Los índices están estructurados para facilitar una respuesta rápida de


conjuntos de resultados.

• Los dos tipos de índices son: agrupados (clustered) y no agrupados


(nonclustered).

• Los índices son aplicados a una o más columnas en tablas o vistas.

• Para un rendimiento óptimo, se crean sobre columnas que son


comúnmente usadas en las consultas
Arquitectura de los índices
• Ambos tipos de índices son estructuras tipo B-tree. Un índice agrupado
contiene los registros de la tabla a nivel hoja del B-tree.

• Un índice no agrupado es una estructura de índice separada,


independiente del ordenamiento físico de los registros en la tabla.

• Si existe un índice agrupado en un tabla, un índice no agrupado utilizará


al índice agrupado para la búsqueda de los registros. En la mayoría de
los casos se creará antes un índice agrupado que los índices no
agrupados sobre una tabla.

• Una columna definida con una restricción UNIQUE genera


automáticamente un índice no agrupado.
Arquitectura de los índices
Índices agrupados:

Puede haber solo un índice agrupado por tabla o vista, dado que
estos índices ordenan físicamente la tabla o vista según la clave del
índice agrupado. Este tipo de índices es particularmente eficiente para
consultas, dado que los registros de datos completos (en páginas de
datos) son guardados a nivel de hoja del B-tree.

El ordenamiento y la ubicación de los datos en un índice agrupado es


análogo al de un diccionario donde las palabras son ordenadas en forma
alfabética y las definiciones aparecen junto a las palabras.
Arquitectura de los índices
Índices no agrupados:

Sobre una tabla o vista se pueden crear 250 índice no agrupados o 249 índices no
agrupados y un índice agrupado. Se debe primero crear un índice único agrupado sobre una
vista previo a crear los índices no agrupados. Un índice no agrupado es análogo a un índice al
final de un libro. Se puede usar el índice del libro para ubicar las páginas que contienen una
tema del índice del libro. La base de datos usa los índices no agrupados para encontrar
registros según una clave.

Si no existe un índice agrupado para la tabla, los datos de la tabla se encontrarán


desordenados físicamente y se dice que la tabla tendrá la estructura de montón (heap). Un
índice no agrupado sobre una tabla montón, contiene punteros a las filas de la tabla. Cada
entrada en las páginas de índice contiene un identificador de fila (RID, Row ID). El RID es un
puntero a una fila en un montón, y este consiste de un número de página, un número de
archivo y un número de ranura. Si existe un índice agrupado, las páginas de un índice no
agrupado contienen las claves del índice agrupado en vez del RID.
Arquitectura de los índices
Ejemplo de índices

CREATE TABLE empleado


( cedula DECIMAL(6) PRIMARY KEY NONCLUSTERED,
nombre VARCHAR(30) NOT NULL,
salario DECIMAL(6,2) NOT NULL,
dni DECIMAL(8) UNIQUE CLUSTERED,
cargo VARCHAR(20) NOT NULL
);
2. Operaciones
Creación de base de datos
La creación de base de datos se lleva a cabo con la sentencia CREATE
DATABASE.

Ejemplos:
CREATE DATABASE PRUEBA;
CREATE DATABASE IF NOT EXISTS PRUEBA1;
CREATE DATABASE IF NOT EXISTS PRUEBA2;
CREATE DATABASE IF NOT EXISTS PRUEBA3
CHARACTER SET = UTF8;
Eliminación de base de datos
Sentencia: DROP DATABASE

DROP TABLE PRUEBA;


DROP TABLE IF EXISTS PRUEBA1;

Se eliminan todos los componentes que forman parte de la base de datos


(tablas, vistas, …), incluido el contenedor (base de datos).
Creación de tablas
• La creación de tablas se lleva a cabo con la sentencia CREATE TABLE.

• Ejemplo: creación del siguiente esquema de BD.


CLIENTES (DNI, NOMBRE, DIRECCION)
SUCURSALES (NSUC, CIUDAD)
CUENTAS(COD, DNI, NSUC, SALDO)
Creación de tablas
Cuando las tablas están relacionadas, se empieza por las tablas más
independientes:
CREATE TABLE CLIENTES ( CREATE TABLE SUCURSALES (
DNI VARCHAR(8) NOT NULL, NSUC VARCHAR(4) NOT NULL,
NOMBRE VARCHAR(20), CIUDAD VARCHAR(30),
DIRECCION VARCHAR(30), PRIMARY KEY (NSUC)
PRIMARY KEY (DNI) );
);

CREATE TABLE CUENTAS (


El siguiente paso es crear la tabla
COD VARCHAR(4) NOT NULL,
CUENTAS, con las claves externas: DNI VARCHAR(8) UNIQUE NOT NULL,
NSUC VARCHAR(4) NOT NULL,
SALDO INT DEFAULT 0,
Las claves candidatas, es decir, aquellos atributos no PRIMARY KEY (COD),
pertenecientes a la clave que no deben alojar valores FOREIGN KEY (DNI) REFERENCES CLIENTES (DNI),
repetidos, se pueden indicar con la cláusula UNIQUE.
FOREIGN KEY (NSUC) REFERENCES SUCURSALES (NSUC) );
Creación de Tablas - Diagrama
Modificación de tablas
sentencia ALTER TABLE.
Es posible añadir, modificar y eliminar campos.

Ejemplos:
• Adición del campo PAIS a la tabla CLIENTES
ALTER TABLE CLIENTES ADD PAIS VARCHAR(10);
• Modificación del tipo del campo PAIS
ALTER TABLE CLIENTES ALTER COLUMN PAIS VARCHAR(20);
• Eliminación del campo PAIS de la tabla CLIENTES
ALTER TABLE CLIENTES DROP COLUMN PAIS;

También es posible añadir nuevas restricciones a la tabla (claves externas,


restricciones check, etc.).
Eliminación de tablas

sentencia DROP TABLE.

DROP TABLE CUENTAS;

Las tablas a las que referencia deben haber sido eliminadas antes.
3. Restricciones
Integridad
Nulos: Un atributo puede o no admitir nulos. En SQL se especifica
mediante la cláusula NOT NULL.

Integridad referencial: Claves foráneas (CF). En SQL se especifica


mediante las cláusulas REFERENCES y FOREIGN KEY

Clave Primaria (CP): Garantiza la unicidad y obligatoriedad del o de los


atributos que conforman la CP. En SQL se especifica
mediante la cláusula PRIMARY KEY.
Integridad

Clave Alternativa: Garantiza la unicidad de los atributos declarados como


tal. Se especifica mediante la cláusula UNIQUE.
Si se desea hacer obligatoria, se debe especificar NOT
NULL.

Las reglas de tipo CHECK:


Condiciones de verificación para los valores de uno o varios atributos.

Sintaxis:
CHECK(condición). Por ejemplo, validar que un valor sea positivo o esté
en un rango.
Ejemplo. Sea el modelo E-R:
DEPARTAMENTO
# codigo Notas: en
* nombre DEPARTAMENTO
* ciudad
- nombre es un id.
el lugar de trabajo de
alternativo.
adscrito a
- ciudad debe ser
EMPLEADO Chimbote, Nuevo
el subordinado
de
# cedula Chimbote,
* nombre
* salario Casma.
* comision
* cargo

el jefe de
Integridad

CREATE TABLE departamento


( codigo DECIMAL(6) PRIMARY KEY,
nombre VARCHAR(6) NOT NULL UNIQUE,
ciudad VARCHAR(20) CHECK (ciudad IN
(‘Chimbote', ‘Nuevo Chimbote', 'Casma')) NOT NULL
);

El atributo ciudad solo admitirá Si no se coloca, permite ciudades


una de estas tres ciudades. con NULL.
Integridad
CREATE TABLE empleado
( cedula DECIMAL(6) PRIMARY KEY,
nombre VARCHAR(30) NOT NULL,
salario DECIMAL(6,2) NOT NULL,
CF hacia sí misma
comision DECIMAL(6,2) ,
cargo VARCHAR(20) NOT NULL,
jefe DECIMAL(6) REFERENCES empleado,
depto DECIMAL(6) NOT NULL REFERENCES departamento
);

CF hacia departamento
Se pueden especificar las políticas de integridad referencial ante borrado y
actualización así:
CREATE TABLE empleado
( cedula DECIMAL(6) PRIMARY KEY,
nombre VARCHAR(30) NOT NULL,
salario DECIMAL(6,2) NOT NULL,
comision DECIMAL(6,2) ,
cargo VARCHAR(20) NOT NULL,
jefe DECIMAL(6) REFERENCES empleado,
depto DECIMAL(6) NOT NULL REFERENCES departamento
ON UPDATE CASCADE
ON DELETE CASCADE
);
No todos los SGBD soportan estas opciones
Se pueden especificar las políticas para el ingreso de datos:

CREATE TABLE empleado


( cedula DECIMAL(6) PRIMARY KEY,
nombre VARCHAR(30) NOT NULL,
salario DECIMAL(6,2) NOT NULL CHECK(salario > 0),
comision DECIMAL(6,2) CHECK (comision BETWEEN 0 AND 100) ,
cargo VARCHAR(20) NOT NULL,
jefe DECIMAL(6) REFERENCES empleado(cedula),
depto DECIMAL(6) NOT NULL REFERENCES departamento
ON UPDATE CASCADE
ON DELETE CASCADE
);
No todos los SGBD soportan estas opciones
Especificación de una Clave Primaria compuesta:

CREATE TABLE envio(


snro DECIMAL(6),
pnro DECIMAL(6),
cantidad DECIMAL(6) NOT NULL,
PRIMARY KEY(snro,pnro)
);
Especificación de una Clave Foránea compuesta:

CREATE TABLE revision(


codrevision DECIMAL(5) PRIMARY KEY,
mi_snro DECIMAL(6) NOT NULL,
mi_pnro DECIMAL(6) NOT NULL,
revisor VARCHAR(20)NOT NULL,
FOREIGN KEY(mi_snro,mi_pnro) REFERENCES envio
);
Para reflexionar:
¿Por qué me interesaría
¿Cuáles son los
los temas estudiados el
temas
día de hoy y como lo
estudiados el
aplicaría en mi vida
día de hoy?
profesional y personal?
V
PROGRAMACION ACADEMICA
UNIDAD 1
Lenguaje estructurado de consulta
Contenido:

Lenguaje de definición de
datos (DDL).

2
UNIVERSIDAD NACIONAL DEL SANTA

VÍCERRECTORADO ACADÉMICO
FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E
INFORMATICA

ASIGNATURA

Base de Datos II

2023 - I

También podría gustarte