Está en la página 1de 79

Bases de Datos II

Prof. Ing. Edward Martínez L., Ma,


Tema I: Definiciones y conceptos
de bases de datos (avanzados)
Bases de Datos

• Propiedades
• Atributos
• Objetos
• Valores
Bases de Datos, Concepto
• Una base de datos es una colección de información organizada de forma que
un programa de ordenador pueda seleccionar rápidamente los fragmentos de
datos que necesite. Una base de datos es un sistema de archivos electrónico.
• Las bases de datos tradicionales se organizan por campos, registros y archivos.
Un campo es una pieza única de información; un registro es un sistema
completo de campos; y un archivo es una colección de registros. Por ejemplo,
una guía de teléfono es análoga a un archivo. Contiene una lista de registros,
cada uno de los cuales consiste en tres campos: nombre, dirección, y número
de teléfono.
Propiedades

1. Información sobre una entidad


2. Coherente, sin contradicciones
3. Con un fin determinado
Atributos

• Los atributos son las características por medio de los


cuales se puede describir una entidad. Por ejemplo de
la entidad alumno podemos asignarle atributos como:
nombre, apellido, dirección, teléfono, y su campo
llave que puede ser: numero de cedula, número de
matrícula, o un código cualquiera.
• Superclave: Se forma de la unión de 2 o más atributos que
permiten identificar de forma inequívoca a la entidad.
Clave Candidata: Un atributo que podría funcionar como campo
llave.
Clave Principal: El único atributo que se permite identificar de
forma inequívoca a la entidad.
Sistemas Manejadores de
Bases de Datos
• Un sistema gestor de bases de datos (SGBD)
consiste en una colección de datos inter- relacionados
y un conjunto de programas para acceder a dichos
datos. La colección de datos, normalmente
denominada base de datos, contiene información
relevante para una empresa.
Ejemplo SGBD (DBMS)

• Oracle, SQL Server, Sybase, DB2, MySQL,


PostgreSQL.
• “Open Office Base”
• “Access”
Manejo de datos

• Un sistema de manejo de datos son todos los


procedimientos utilizados para la entrada,
procesamiento y salida datos junto con la
infraestructura de computadoras en las cuales se
realiza este manejo de datos.
Ver página con los Organismos
reguladores de BD.

• https://prezi.com/tw9eqvezhxgx/normas-para-base-de-datos/
CODASYL

• CODASYL (también escrito Codasyl) es el


acrónimo para "Conference on Data Systems
Languages", un consorcio de industrias
informáticas formado en 1959 con el objeto de
regular el desarrollo de un lenguaje de programación
estándar que pudiera ser utilizado en multitud de
ordenadores. De todos estos esfuerzos resultó el
lenguaje COBOL
El modelo CODASYL

• El modelo Codasyl definió una serie de elementos


básicos que definían su estructura de datos. Son los
siguientes:
• Elemento de datos.- Unidad de datos más pequeña
que se puede referenciar. Puede ser de distintos tipos,
y puede definirse como dependiente de valores de
otros elementos (datos derivados).
• Agregado de datos.- Se asemeja a los campos de un
fichero o a los atributos de otros modelos.
• Registro.- Colección nominada de elementos de
datos. Unidad básica de acceso y manipulación. Se
asemeja a los registros en ficheros y a las entidades en
el modelo E/R.
• Conjunto (SET).- Colección nominada de dos o
más tipos de registros que establece una vinculación
entre ellos. Origen de muchas restricciones. Las
interrelaciones 1:N se representan aquí mediante
SET.
• Área.- Subdivisión nominada del espacio
direccionable de la base de datos que contiene
ocurrencias de registros.
• Clave de base de datos, identificador interno único
para cada ocurrencia de registro.
CARACTERÍSTICAS BÁSICAS DEL
MODELO CODASYL (de los
Conjuntos SET).
• Un SET es una colección nominada de dos o más
tipos de registros que representan un tipo de
interrelación 1:N (en consecuencia también 1:1).
• Cada SET tendrá un tipo de registro propietario y
uno o más tipos de registros miembro.
• El número de SET que se pueden declarar en el
sistema es ilimitado.
• Cualquier registro puede ser propietario de uno o
varios SET.
• Cualquier registro puede ser miembro de uno o
varios SET.
• Podrán existir SET singulares en los que el
propietario es el sistema (una entidad se
interrelaciona consigo mismo).
Codasyl, Final

• ANSI y la ISO aprobó el pliego de bases de datos


CODASYL bajo el nombre de red de base de datos
Lenguaje (Red de Lenguaje de Datos), con el trabajo
que tienen lugar dentro del mismo grupo de trabajo
como SQL normalización. Un estándar ISO para
NDL fue ratificado como ISO 8907:1987, pero
nunca ha tenido ningún efecto práctico en las
implementaciones y se retiró oficialmente en 1998.
• Algunos de los comités codasyl continuan su
trabajo hoy, pero CODASYL en sí ya no existe.
Los registros de CODASYL fueron donados al
Instituto de Charles Babbage y un catálogo se
puede encontrar en su página web.
• El interés en CODASYL desvaneció
gradualmente debido al creciente interés en
bases de datos relacionales a partir de la década
de 1980.
Modelos de Datos

• Bajo la estructura de la base de datos se encuentra el


modelo de datos: una colección de herramientas
conceptuales para describir los datos, las relaciones, la
semántica y las restricciones de consistencia.
• Veremos dos modelos de datos:
• Modelo Entidad – Relación
• Modelo Relacional
Modelo Entidad – Relación
• El modelo de datos entidad-relación (E-R) está basado en una
percepción del mundo real que consta de una colección de
objetos básicos, llamados entidades, y de relaciones entre estos
objetos.
• Una entidad es una «cosa» u «objeto» en el mundo real que es
distinguible de otros objetos. Por ejemplo, cada persona es una
entidad, y las cuentas bancarias pueden ser consideradas
entidades.
• Las entidades se describen en una base de datos mediante un
conjunto de atributos.
• Una relación es una asociación entre varias
entidades. Por ejemplo, una relación impositor asocia
un cliente con cada cuenta que tiene. El conjunto de
todas las entidades del mismo tipo, y el conjunto de
todas las relaciones del mismo tipo, se denominan
respectivamente conjunto de entidades y conjunto
de relaciones.
La estructura lógica general de una base de datos se
puede expresar gráficamente mediante un diagrama ER,
que consta de los siguientes componentes:

• Rectángulos, que representan conjuntos de entidades.


• Elipses, que representan atributos.
• Rombos, que representan relaciones entre conjuntos de
entidades.
• Líneas, que unen los atributos con los conjuntos de entidades y
los conjuntos de entidades con las relaciones.
Como ilustración, considérese parte de una base de
datos de un sistema bancario consistente en clientes y
cuentas que tienen esos clientes.
Modelo Relacional

• En el modelo relacional se utiliza un grupo de tablas


para representar los datos y las relaciones entre ellos.
Cada tabla está compuesta por varias columnas, y
cada columna tiene un nombre único.
Ejemplo de tablas relacionales.
Otros Modelos de Datos.

• El modelo Orientado a Objetos, se puede observar


como una extensión del modelo E-R con las nociones de
encapsulación, métodos (funciones) e identidad de objeto.
• El modelo de datos relacional orientado a objetos
combina las características del modelo de datos orientado
a objetos y el modelo de datos relacional.
• Nota: El Diagrama UML (de clases) se utiliza para
representar las entidades en forma de clases en el modelo
Orientado a Objetos.
Ejemplo Modelo Orientado a Objetos. Diagrama de Clases.

CLIENTE CUENTA
Id nvarchar(12) Número nvarchar(12)
Nombre varchar(20) Saldo money()
Calle nvarchar(30) Crearcuenta()
Ciudad nvarchar(25) CalcularSaldo()
Crear() Cerrar()
Depositar()
Retirar()
Eliminar()
Transferir()
Modelo Entidad-Relación
• Cardinalidad.
• Uno a uno (1:1)
• Uno a muchos (1:n)
• Muchos a muchos (n:m)

 Claves.
 Primaria
 Foránea
 Candidata, Secundaria.
EL LENGUAJE DE MODELADO
UNIFICADO UML.
(Unified Modeling Language)
• Es un estándar propuesto para la creación de
especificaciones de varios componentes de un
sistema de software.
• Algunas de las partes de UML son:
• Diagrama de Clase
• Diagrama de caso de uso.
• Diagrama de actividad.
• Diagrama de implementación.
• Diagrama de clase. Un diagrama de clase es similar a un
diagrama E-R. Más adelante en este apartado se mostrarán
algunas características de los diagramas de clase y cómo se
corresponden con los diagramas E-R.
• Diagrama de caso de uso. Los diagramas de caso de uso
muestran la interacción entre los usuarios y el sistema, en
particular los pasos de las tareas que realiza el usuario (tales
como prestar dinero o matricularse de una asignatura).
• Diagrama de actividad. Los diagramas de actividad
describen el flujo de tareas entre varios componentes de un
sistema.
• Diagrama de implementación. Los diagramas de
implementación muestran los componentes del sistema y sus
interconexiones tanto en el nivel del componente software
como el hardware.
Dependencias Funcionales y
Normalización
Introducción
• En general, el objetivo del diseño de las bases de datos
relacionales es la generación de un conjunto de esquemas
relacionales que nos permita almacenar la información sin
redundancias innecesarias, pero que también nos permita
recuperar fácilmente esa información.
• Un enfoque es el diseño de esquemas que se hallen en una
forma normal adecuada.
• Para determinar si el esquema de una relación se halla en
una de las formas normales deseables hace falta
información adicional sobre la empresa real que se está
modelando con la base de datos.
Dificultades en el diseño de BD

• Antes de continuar con el estudio de las formas


normales hay que examinar lo que puede salir mal en
un mal diseño de bases de datos.
• Entre las propiedades indeseables que puede tener un
mal diseño están:
• Repetición de la información.
• Imposibilidad de la representación de determinada
Información.
Dependencias Funcionales

• Las dependencias funcionales desempeñan un papel


fundamental en la diferenciación entre los buenos diseños
de bases de datos y los malos.
• Una dependencia funcional es un tipo de restricción
que constituye una generalización del concepto de clave.
• Las dependencias funcionales son restricciones del
conjunto de relaciones legales. Permiten expresar hechos
sobre la empresa que se modela con la base de datos.
Dependencia funcional, Concepto

• Una dependencia funcional es una conexión entre


uno o más atributos.
• Las dependencias funcionales del sistema se escriben
utilizando una flecha, de la siguiente manera:
1. FechaDeNacimiento → Edad
2. B es funcionalmente dependiente de A.
Propiedades de la dependencia
funcional
• Existen tres axiomas de Armstrong:
• Dependencia funcional reflexiva:
• Si "y" está incluido en "x" entonces x → y
• Dependencia funcional Aumentativa:
• x→y entonces xz→yz
• DNI → nombre
• DNI,dirección → nombre,dirección
Dependencia funcional transitiva:
• Sean X, Y, Z tres atributos (o grupos de atributos) de la misma
entidad. Si Y depende funcionalmente de X y Z de Y, pero X no
depende funcionalmente de Y, se dice entonces que Z depende
transitivamente de X. Simbólicamente sería:
• X → Y → Z entonces X → Z
• FechaDeNacimiento → Edad
• Edad → Conducir
• FechaDeNacimiento → Edad → Conducir
Propiedades deducidas

• Unión
• x→y y x→z entonces x→yz
• Pseudo-transitiva
• x→y y wy→z entonces wx→z
• Descomposición
• x→y y z está incluido en y entonces x→z
Claves
• Una clave primaria es aquella columna (o conjunto de
columnas) que identifica únicamente a una fila. La clave
primaria es un identificador que va a ser siempre único para
cada fila.
• En una tabla puede que tengamos más de una columna que
puede ser clave primaria por sí misma. En ese caso se puede
escoger una para ser la clave primaria y las demás claves serán
claves candidatas.
• Una clave ajena (foreign key o clave foránea) es aquella
columna que existiendo como dependiente en una tabla, es a
su vez clave primaria en otra tabla.
• Una clave alternativa es aquella clave candidata que
no ha sido seleccionada como clave primaria, pero
que también puede identificar de forma única a una
fila dentro de una tabla.
• Una clave compuesta es una clave que está
compuesta por más de una columna.
Normalización de Bases de Datos

• El proceso de normalización de bases de datos


consiste en aplicar una serie de reglas a las relaciones
obtenidas tras el paso del modelo entidad-relación al
modelo relacional.
• Las bases de datos relacionales se normalizan para:
• Evitar la redundancia de los datos.
• Disminuir problemas de actualización de los datos en las
tablas.
• Proteger la integridad de los datos.
Formas Normales
Primera Forma Normal (1FN)

• Impone un requisito muy elemental a las relaciones; a


diferencia de las demás formas normales, no exige
información adicional como las dependencias
funcionales.
• Un dominio es atómico si se considera que los
elementos del dominio son unidades indivisibles. Se
dice que el esquema de una relación R está en la
primera forma normal (1FN) si los dominios de
todos los atributos de R son atómicos.
Segunda Forma Normal (2FN)

• Una tabla está en 2FN si además de estar en 1FN cumple


que los atributos no clave dependen de TODA la
clave principal.
• Por ejemplo, si tenemos una tabla con Personas,
identificadas por su NIF y recogemos su empresa y
dirección de trabajo, la clave sería NIF-Empresa. Pero nos
encontraremos con que una misma persona puede trabajar
en varias empresas. Y vemos que la dirección de trabajo
no depende de TODA la clave primaria, sino solo de la
empresa. Por lo tanto, no estamos en 2FN.
Tercera Forma Normal (3FN)
• Una tabla está en 3FN si además de estar en 2FN no existe
ninguna dependencia transitiva entre los atributos que no
son clave.
• Supongamos que tenemos una tabla de ganadores de torneos de
tenis. En ella figura el nombre del torneo, el año, el nombre del
ganador y su nacionalidad. La clave sería Torneo-Año. Pues esta
tabla no está en 3FN porque el atributo nacionalidad, que no es
de la clave, depende del nombre del ganador (también depende
de la clave). Digamos que nacionalidad aporta información
sobre el ganador, pero no sobre la clave. Es una dependencia
transitiva porque nacionalidad depende de ganador que a su vez
depende de Torneo-Año.
FN de Boyce-Codd

• Es una FN ligeramente más estricta que la 3FN. En


concreto requiere esté en 3FN y que que no existan
dependencias funcionales no triviales de los atributos
que no sean un conjunto de la clave candidata. O
dicho de otra forma: una tabla está en FNBC si está
en 3FN y los únicos determinantes (atributo que
depende de otro atributo) son claves candidatas.
Otras Formas Normales

• Hay todavía más formas normales: 4FN, 5FN y


Forma Normal de Dominio/Clave (DKFN).
Ejemplos de Diseño de Bases de
Datos:
• Modelo E-R
• Modelo Relacional
• Base de datos normalizada
• Creación de la BD en SQL Server.
Ejemplo 1.
• Artículos y encargos.
Una base de datos para una pequeña empresa debe contener información
acerca de clientes, artículos y pedidos. Hasta el momento se registran los
siguientes datos en documentos varios:
• Para cada cliente: Número de cliente (único), Direcciones de envío
(varias por cliente), Saldo, Límite de crédito (depende del cliente, pero en
ningún caso debe superar los 3.000.000 pts), Descuento.
• Para cada artículo: Número de artículo (único), Fábricas que lo
distribuyen, Existencias de ese artículo en cada fábrica, Descripción del
artículo.
• Para cada pedido: Cada pedido tiene una cabecera y el cuerpo del
pedido. La cabecera está formada por el número de cliente, dirección de
envío y fecha del pedido. El cuerpo del pedido son varias líneas, en cada
línea se especifican el número del artículo pedido y la cantidad.
• Además, se ha determinado que se debe almacenar la
información de las fábricas. Sin embargo, dado el uso de
distribuidores, se usará: Número de la fábrica (único) y Teléfono
de contacto. Y se desean ver cuántos artículos (en total) provee la
fábrica. También, por información estratégica, se podría incluir
información de fábricas alternativas respecto de las que ya
fabrican artículos para esta empresa.
• Nota: Una dirección se entenderá como Nº, Calle, Comuna y Ciudad. Una
fecha incluye hora.
• Se pide hacer el diagrama ER para la base de datos que
represente esta información.
Pasos para del Diseño de la BD.
1. Entidades.

• Cliente
• Artículo
• Pedido
• Cabecera
• Detalle
• Fábrica
2. Atributos.
• Cliente.
• Número
• Direcciones
• Saldo
• Límite de Crédito
• Descuento
• Artículo.
• Número
• Fábrica
• Existencia x fábrica
• Descripción.
• Luego seguir añadiendo lo que falta…..
Diagrama E-R.
Diseño Conceptual de la Base de Datos.
(Modelo Relacional)
Tabla: Cliente.

Campo Tipo Tamaño Decimales Indice o clave


Número N 10 0 Primaria
Direcciones A/N 150 -
Saldo N 14 2
Límite de Cr N 14 2
Descuento N 14 2
Tabla de Cliente Normalizada.
Campo Tipo Tamaño Decimales Indice o clave
Número N 10 0 Primaria
Direcciones A/N 150 -
Saldo N 14 2
Límite de Cr N 14 2
Descuento N 14 2

1ra. Forma Normal (1FN)


Campo Tipo Tamaño Decimales Indice o clave
Número N 10 0 Primaria
Saldo N 14 2
Límite de Cr N 14 2
Descuento N 14 2
Tabla de Direcciones Resultante
Campo Tipo Tamaño Decimales Indice o clave
Númerocli N 10 0 Foránea
NoCasa N 3 0
Calle A/N 40 -
Comuna A/N 30 -
Ciudad A/N 35 -
Creación de la Base de Datos
Física, en SQL Server.
Ejemplo de Sistema de Ventas.

• Crear la base de datos de nombre “Deventas”.


• Crear utilizando código SQL, las siguientes tablas:
Tabla: Cliente Tabla:
Campo Tipo/Tamaño Clave Enca_Fact

Código Int(10) Primaria Campo Tipo/Tamaño Clave

Nombre Varchar(30) Número_Fact Int(10) Primaria

Apellido Varchar(30) Fecha Date-Time

Tel Nvarchar(12) Tipo Varchar(20)

Dirección Nvarchar(50) Código_Cliente Int(10) Foránea

Tabla: Tabla:
Artículo Deta_Fact
Campo Tipo/Tamaño Clave Campo Tipo/Tamaño Clave
Códigoart Int(10) Primaria Numfact_det Int(10) Foránea
Nombre Nvarchar(40) Codarti Int(10) Foránea
Precio Money Cantidad Int(3)
Proveedor Nvarchar(30) Total Money
Código en SQL para crear las tablas relacionadas.

1. 3.
Use Deventas Create Enca_Fact
Create Cliente ( Numero_Fact int Primary Key,
( Codigo int Primary Key, Fecha date,
Nombre varchar(30), Tipo varchar(20),
Apellido varchar(30), Codigo_Cliente int Foreign Key
Tel nvarchar(12), Reference Cliente (Codigo)
Direccion nvarchar(50) )
) 4.
2. Create Deta_Fact
Create Articulo ( Numfact_det int Foreign Key
( Codigoart int Primary Key, Reference Enca_Fact(Numero_Fact),
Nombre nvarchar(40), Codarti int Foreign Key Reference
Precio money, Articulo(Codigoart),
Proveedor nvarchar(30) Cantidad int,
) Total Money
)
Procedimientos Almacenados
• sp_tables @table_owner='dbo';
• Sirve para ver las tablas existentes creadas por los usuarios en
una base de datos usamos este procedimiento.
• sp_columns usuarios;
• Para ver la estructura de una tabla usamos el
procedimiento almacenado.
• Para ejecutar un Procedimiento Almacenado:
EXEC sp_tables @table_owner='dbo';
Para borrar la tabla.
• if object_id('usuarios') is not null drop table usuarios;
• Ejemplo:
if object_id('usuarios') is not null
drop table usuarios;

create table usuarios (


nombre varchar(30),
clave varchar(10)
);
Ejemplo: Sistema de Biblioteca

Realizar el diseño de una Base de Datos para manejar el


Trabajo de la biblioteca.
1.Entidades.

• Estudiante
• Libro
• Ficha
• Uso
2. Atributos.
• Estudiante:
• Cédula
• Nombre
• Apellido
• Matrícula
• Dirección
• Tel
• Libro:
• Autor
• Categoría
• Código
• Título
• Ejemplar
• Ficha:
• Código libro
• Nombre del Autor

• Uso:
• Matrícula
• Fecha
• Hora
• Código del Libro
• Encargado
Relaciones.

• Estudiante / libro (Utiliza) 1:n


• Estudiante / uso (Pertenece a) 1:1
• Libro / ficha (Está en) 1:1
• Libro / uso (Está en) 1:1
Modelo Relacional.
Tablas sin Normalizar.
Tabla: Estudiante.
Campo Tipo Tamaño Decimales Indice o clave
Cédula A/N 13 - CP
Nombre A/N 25 -
Apellido A/N 30 -
Matrícula A/N 10 - CCandidata
Dirección A/N 50 -
Tel A/N 12 -
Tabla: Libro.
Campo Tipo Tamaño Decimales Indice o clave
Código Nvarchar(10) 10 - CP
Autor Nvarchar(35) 35 -
Categoría Nvarchar(40) 40 -
Titulo Nvarchar(45) 45 -
Ejemplar Nvarchar(3) 3 -
-
Tabla: Ficha
Campo Tipo Tamaño Decimales Indice o clave
CodigoLibro Nvarchar(10) 10 - Primaria
NombreAutor Nvarchar(30) 30 -
-
-
-
-
Tabla: Uso.
Campo Tipo Tamaño Decimales Indice o clave
Matrícula Nvarchar(12) 12 -
Hora Time 6 -
Fecha Date 8 -
Encargado Nvarchar(30) 30 -
CodigoLibro Nvarchar(10) 10 -
-
Creación de Tablas en SQL Server.
use Biblioteca
create table Estudiante
(
Cedula nvarchar(13) primary key,
Nombre nvarchar(25),
Apellido nvarchar(30),
Direccion nvarchar(50),
Tel varchar (12),
Matricula nvarchar(10),
)
Fin.

También podría gustarte