SlideShare una empresa de Scribd logo
1 de 138
BASE DE DATOS IEI-052
Profesor Rodrigo Cabello S.
BASE DE DATOS – ACI253
¿Que es dato?
Es una representación simbólica (numérica, alfabética, algorítmica, espacial,
etc.) de un atributo o variable cuantitativa o cualitativa
Es el elemento primario de la información conformado por símbolos (letras,
números, dibujos, señas, gestos) que reunidos pueden cobrar significación.
¿Que es información?
La información es un conjunto organizado de datos procesados, que constituyen
un mensaje que cambia el estado de conocimiento del sujeto o sistema
¿Que es una base de datos?
Las bases de datos son recursos que recopilan todo tipo de información, para
atender las necesidades de un amplio grupo de usuarios. Su tipología es variada
y se caracterizan por una alta estructuración y estandarización de la información.
Una base de datos o banco de datos es un conjunto de datos pertenecientes a
un mismo contexto y almacenados sistemáticamente para su posterior uso.
Profesor Rodrigo Cabello S.
BASE DE DATOS – ACI253
Dato como recurso
En las organizaciones, se ha incorporado al dato dentro de sus recursos
básicos (humanos, financieros y materiales)
El dato, al igual que los demás recursos, tiene un costo y un valor asociado
El dato debe ser administrado, planificado y controlado, es decir, tratado como
un activo más de la empresa.
Los datos son hechos relacionados con personas, objetos, eventos u otras
entidades del mundo real (pueden ser cuantitativos o cualitativos, internos o
externos, históricos o predictivos)
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Base de datos
Una base de datos es un conjunto de datos relacionados, que
permiten satisfacer las necesidades de información de una
organización.
Profesor Rodrigo Cabello S.
BASE DE DATOS – ACI253
Dato como recurso
Una base de datos tiene dos funciones importantes:
integrar y compartir
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Profesor Rodrigo Cabello S.
Base de Datos
Usuario 2
Usuario 1
Terminal
Aplicación
BASE DE DATOS – ACI253
Profesor Rodrigo Cabello S.
Componentes de una base de datos
Hardware: Máquinas en que se almacenan las bases de datos.
Software: Es el sistema gestor de bases de datos (SGBD o
DBMS).
Datos: Incluyen los datos que se necesitan almacenar, y los
METADATOS que son DATOS, que sirven para describir lo que se
almacena en las bases de datos.
Usuarios: Personas que manipulan los datos del sistema.
Usuarios finales: Son los que utilizan los datos para sus
labores cotidianas.
Desarrolladores: Analista y programadores encargados
de generar aplicaciones para usuarios finales.
Administradores o DBA: Se encargan de gestionar la
base de datos.
BASE DE DATOS – ACI253
Composición de las BBDD
Profesor Rodrigo Cabello S
Las bases de datos están compuestas, de datos y de metadatos.
Los metadatos son datos (valga la redundancia) que sirven para especificar la
estructura de la base de datos; por ejemplo qué tipo de datos se almacenan (si son texto o números o
fechas), qué nombre se le da a cada dato (nombre, apellidos), cómo están agrupados, cómo se
relacionan.
De este modo se producen dos visiones de la base de datos:
Estructura lógica: Indica la composición y distribución teórica de la base de
datos. La estructura lógica sirve para que las aplicaciones puedan utilizar los
elementos de la base de datos sin saber realmente cómo se están almacenando.
Estructura física: Es la estructura de los datos tan cual se almacenan en las
unidades de disco. La correspondencia entre la estructura lógica y la física se
almacena en la base de datos (en los metadatos).
BASE DE DATOS – ACI253
Ventajas de las BBDD
Profesor Rodrigo Cabello S
ventajas de las bases de datos
Independencia de los datos y los programas y procesos: Esto permite
modificar los datos sin modificar el código de las aplicaciones.
Menor redundancia: No hace falta tanta repetición de datos. Aunque, sólo los
buenos diseños de datos tienen poca redundancia.
Integridad de los datos: Mayor dificultad de perder los datos o de realizar
incoherencias con ellos.
Mayor seguridad en los datos: Al limitar el acceso a ciertos usuarios.
Datos más documentados: Gracias a los metadatos que permiten describir la
información de la base de datos.
Acceso a los datos más eficiente: La organización de los datos produce un
resultado más óptimo en rendimiento.
BASE DE DATOS – ACI253
Profesor Rodrigo Cabello S
• Disminución y control de la redundancia de datos
Procesamiento de ficheros  varias copias de la misma información
Problemas debidos a la redundancia de datos
• Duplicación del trabajo
• Desperdicio de espacio de almacenamiento
• Obligación de evitar las inconsistencias de datos
• Evitar inconsistencias en los datos
• (la inconsistencia de los datos: diversas copias de un mismo dato no concuerdan entre sí)
Sólo si existe redundancia y se modifica un dato, actualizando algunas copias
Soluciones:
• Eliminación de Redundancia,
• Redundancia Controlada y Propagación de Actualizaciones Automática
BASE DE DATOS – ACI253
Profesor Rodrigo Cabello S
• Mantener la integridad
– Asegurar que la información es correcta = refleja fielmente el minimundo
– ¿Cuándo se viola la integridad (no existe)?
• Si existe inconsistencia
• Si existe información imposible fecha = 40 / MAYO / 1972
• Si existe información que no se ajusta a la realidad, es decir falsa o errónea
Nº de teléfono de la policía = 063
– ¿Cómo se evitan estas situaciones?
• Si los datos cumplen las Restricciones de Integridad
– Restricciones sobre tipos de datos
« el nombre de una persona es una cadena de hasta 30 caracteres »
– Restricciones semánticas
« todo libro tiene una editorial »
« cada libro tiene un título diferente del resto »
« ningún libro puede prestarse a más de una persona al mismo tiempo »
BASE DE DATOS – ACI253
Profesor Rodrigo Cabello S
• Mantener la integridad
– Asegurar que la información es correcta = refleja fielmente el minimundo
– ¿Cuándo se viola la integridad (no existe)?
• Si existe inconsistencia
• Si existe información imposible fecha = 40 / MAYO / 1972
• Si existe información que no se ajusta a la realidad, es decir falsa o errónea
Nº de teléfono de la policía = 063
– ¿Cómo se evitan estas situaciones?
• Si los datos cumplen las Restricciones de Integridad
– Restricciones sobre tipos de datos
« el nombre de una persona es una cadena de hasta 30 caracteres »
– Restricciones semánticas
« todo libro tiene una editorial »
« cada libro tiene un título diferente del resto »
« ningún libro puede prestarse a más de una persona al mismo tiempo »
BASE DE DATOS – ACI253
Integridad BBDD
integridad referencial: Es un sistema de reglas que utilizan la mayoría de las bases de datos
relacionales para asegurarse que los registros de tablas relacionadas son válidos y que no se borren o
cambien datos relacionados de forma accidental produciendo errores de integridad.
Integridad de dominio: La regla de integridad de dominio está relacionada, como su nombre indica, con la
noción de dominio. Esta regla establece dos condiciones:
La primera condición consiste en que un valor no nulo de un atributo A debe pertenecer al dominio del atributo
A; es decir, debe pertenecer a dominio(A).
Si en la relación EMPLEADOS(RUT, nombre, apellido, edad) hemos declarado que dominio(RUT) es el
dominio predefinido de los enteros, entonces no podremos insertar, por ejemplo, ningún empleado que tenga
por RUT el valor “Luis”, que no es un entero.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Integridad BBDD
Integridad de entidad: establece que la clave primaria de una tabla debe tener un valor único para
cada fila de la tabla; si no, la base de datos perderá su integridad.
Un intento de insertar o actualizar una fila con un valor de la clave primaria ya existente fallará.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Aplicación de restricciones de seguridad
No todos los usuarios deberían poder acceder a toda la BD
Objetivo: control de acceso selectivo
1. Sólo usuarios autorizados
2. Sólo a ciertas partes de la base de datos
3. Sólo para realizar ciertas operaciones con los datos
SGBD dispone de Subsistema de Seguridad y Autorización
• Cuentas de usuario protegidas con contraseña (ok objetivo 1)
• Restricciones de seguridad para cada cuenta (ok objetivos 2 y 3)
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Datos compartidos actualizados
Datos disponibles para todos los usuarios
El cambio de datos por un usuario es visto inmediatamente por el resto
Subsistemas de control de concurrencia y recuperación del SGBD
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Abstracción
Abstracción: Representación de las características esenciales de un objeto o entidad.
Abstraer: Dar nombre a las cosas.
Referenciar: Hace uso del nombre.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Abstracción
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Abstracción
La abstracción de datos es una técnica o metodología que permite diseñar estructuras de datos.
Consiste básicamente en representar bajo ciertos lineamientos de formato las características
esenciales de una estructura de datos.
Este proceso de diseño se olvida de los detalles específicos de implementación de los datos.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
¿Qué es una estructura de datos?
Cualquier colección o grupo de datos organizados de tal forma que tengan
asociados un conjunto de operaciones para poder manipularlos, se dice que
conforma una estructura de datos.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Tipo de Dato Abstracto (TDA)
Es la representación de una entidad u objeto para facilitar su programación. Se compone de:
Estructura de datos: Es la estructura de programación que se selecciona para representar
las características de la entidad modelada
Funciones de Abstracción: Son funciones que permiten hacer uso de la estructura de datos,
y que esconden los detalles de dicha estructura, permitiendo un mayor nivel de abstracción.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Se plasma la abstracción realizada al diseñar una estructura de datos, esto
pasa a ser el mapa o plano con el cual se construirá la estructura de datos y
se definirán claramente las reglas en las que podrá usarse el TDA.
Profesor Rodrigo Cabello S
Modelo de Datos
Modelo de datos : Con un modelo de datos nos
abstraeremos de la realidad del problema a
solucionar (o universo de discurso) atendiendo a:
¿Qué datos nos interesan para nuestra aplicación?
¿Cómo los voy a organizar?
Modelo de Datos
Construcción de una BD
Modelo Conceptual de Datos
Definición: El modelo entidad-
relación, también denominado modelo
conceptual de datos, es una técnica
especial de representación gráfica que
incorpora información relativa a los
datos y la relación existente entre
ellos, para darnos una visión del
mundo real. Es una representación
abstracta de los datos de una BD
independiente de su estructura final.
Modelo Conceptual de Datos
Las características del modelo
entidad-relación son:
Refleja tan sólo la existencia de los datos, no lo que se hace con ellos.
Es independiente de las bases de datos y sistemas operativos concretos.
No tiene en cuenta restricciones de espacio, almacenamiento, ni tiempo
de ejecución.
El Modelo E-R, por tanto, se basa en la percepción de un mundo real que
consiste en un conjunto de objetos básicos denominados Entidades, así
como las Interrelaciones existentes entre ellos.
Modelo Conceptual de Datos
Elementos del modelo:
a. Entidad
b. Atributos
c. Relación
c.1.- Grado
c.2.- Participación
c.3.- Cardinalidad
c.4.- Atributos propios de una
relación
c.5.- Clave de una relación
a. Claves
Elementos del modelo
Entidad: Es todo aquel objeto real o abstracto del
que se quiere obtener información.
Ejemplos:
Nombre_Entidad
ARTICULO
VENDEDOR
CLIENTE
Elementos del modelo
Atributo: Característica o propiedad del objeto que
representa a la entidad.
Notación en “Piruleta”:
Notación abreviada:
PROFESOR
Cod_prof
Nombre
DNI
Dirección
Fecha_nac
EMPLEADO
# Cod_Empleado
Nom_Emple
Apell_Emple
Puesto_Emple
Elementos del modelo. Atributo
Se le llama ocurrencias a cada elemento
del mundo real que la entidad representa.
Ejemplo: EMPLEADO
# Cod_Empleado
Nom_Emple
Apell_Emple
Puesto_Emple
Entidad
Cod_Empleado Nom_Emple Apell_Emple Puesto_Emple
1 Arturo López Riaño Director
2 Ana Andrade Juárez Gerente
3 Juan Torres Sánchez Comercial
4 Rosa Valera Roca Comercial
… … … …
Ocurrencias
Elementos del modelo. Atributo
Existen dos tipos de atributos; los
identificadores de la entidad y los
descriptores de la entidad.
Identificadores (o claves): identifican de forma
univoca cada ocurrencia.
Descriptores: no identifican de forma univoca
cada ocurrencia.
EMPLEADO
# Cod_Empleado
Nom_Emple
Apell_Emple
Puesto_Emple
Nota: Para representar los identificadores o claves
añadiremos el símbolo # delante del nombre del atributo
(o la piruleta negra)
Elementos del modelo. Atributo
Las claves pueden estar compuestas de
uno o más atributos.
Ejemplos:
EMPLEADO
# Cod_Empleado
Nom_Emple
Apell_Emple
Puesto_Emple
SALA_CINE
# Nom_Cine
# Num_Sala
Capacidad
Tamaño_Pantalla
Elementos del modelo.
Relación: Es la representación de una
asociación producida entre los objetos del
mundo real.
Notación:
Grado de una relación
El nº de entidades que participan en la relación:
ALUMNO Estudia ASIGNATURA
Nombre de la relación Grado de la relación
Relaciones Unitarias o Reflexivas 1
Relaciones Binarias 2
Relaciones Ternarias 3
Relaciones N-arias N
Elementos del modelo. Relación
Ejemplos de grados:
PERSONA Es hijo
de
ALUMNO Estudia ASIGNATURA
EMPLEADO Realiza PROYECTO
DEPARTAMENTO
Relación unaria o
reflexiva
Relación
ternaria
Relación
binaria
Cardinalidad de una relación
Número de ocurrencias que se pueden dar de una relación: con cuantas
ocurrencias de B se puede relacionar A y con cuantas ocurrencias de A
se puede relacionar B.
R
A B
(cardinalidad) (cardinalidad)
Ejemplo:
Una persona puede comprar muchos autos y un auto es
comprado por una sola persona.
Una ocurrencia de A (Persona) se puede relacionar con muchas
ocurrencias de B (Auto) y que una ocurrencia de B (Auto) se
puede relacionar con sólo una ocurrencia de A (Persona).
compra
Persona Auto
1 N
Cardinalidad 1-1: cada ocurrencia de una entidad
se relaciona con una ocurrencia de otra entidad.
Ej.: una persona posee un automóvil.
compra
Persona Auto
1 1
Cardinalidad 1-N: también llamada uno a
muchos. Cada ocurrencia de una entidad puede
relacionarse con varias ocurrencias de otra
entidad.
Cardinalidad N-1: varias ocurrencias de una
entidad pueden relacionarse con una de otra
entidad.
Ej.: una persona posee varios automóviles.
Cardinalidad N-M: también llamada muchos a
muchos. Cada ocurrencia de una entidad puede
relacionarse con varias ocurrencias de otra
entidad y viceversa.
Una persona posee varios automóviles y un
automóvil puede pertenecer a varias
personas.
compra
Persona Auto
M
N
Cardinalidad máxima de una relación: representa el
número máximo de ocurrencias de una entidad con las que
se puede relacionar otra ocurrencia de entidad.
Ej.: una persona puede tener como máximo tres
automóviles.
Cardinalidad mínima de una relación: representa el
número mínimo de ocurrencias de una entidad con las que
se puede relacionar otra entidad.
Ej.: un automóvil debe pertenecer como mínimo a una
persona.
R
A B
(mínimo, máximo) (mínimo, máximo)
Una ocurrencia de A se relaciona con mínimo una ocurrencia de B
y máximo varias ocurrencias de B, una ocurrencia de B se
relaciona con mínimo una ocurrencia de A y máximo una
ocurrencia de A.
Aplicado a un ejemplo:
Una persona puede comprar mínimo 1, máximo varios
automóviles. Un auto puede ser comprado por mínimo 1 persona
y máximo 1 persona.
Se lee de izquierda a derecha y luego de derecha a izquierda (o
al revés): Una persona compra uno o más autos, y un auto es
comprado por sólo una persona.
N ó M también se puede definir como un número entero
específico
compra
Persona Auto
(1,N)
(1,1)
Entidad débil
Es débil cuando depende de otra para su existencia, sin la cual no tiene
sentido.
Sus atributos no la identifican completamente, sino que sólo la identifican
de forma parcial.
Debe participar en una relación que ayuda a identificarla: siempre debe
haber una única interrelación que permita completar su identificación.
Esta interrelación debe ser 1:N, y la entidad débil debe estar en el lado N.
Si se elimina una ocurrencia de la entidad fuerte, se debe eliminar las
ocurrencias de la entidad débil asociadas.
Ejemplo: un libro tiene uno o más ejemplares, y un ejemplar es de solo un
libro. El ejemplar en si no dice mucho semánticamente, solo podría saber
algo mas de el sabiendo de que libro es el ejemplar.
Por otro lado, si eliminamos un libro, desaparecen sus ejemplares.
Entidad Débil
tiene
Libro Ejemplar
(1,N)
(1,1)
Código
Nombre
Nr_hojas
Editorial
Número
Estado
Posición
Ejemplar
Generalización.
Existe una jerarquía de tipos en la que se definen sucesivos
niveles de subtipos que corresponden a un supertipo.
El tipo de entidad vehículo es una generalización del tipo de
bicicleta, ya que todas las bicicletas son vehículos. El tipo de
entidad persona es una generalización de las entidades hombre
y mujer.
Persona
Hombre Mujer
• Son subtipos de la generalización o supertipo
(Es_un o Es_parte_de).
Herencia de atributos
Los atributos de los supertipos son heredados por los
subtipos.
Cliente y empleado heredan los atributos de persona.
Cliente se describe mediante C.I., nombre y ciudad y
adicionalmente por el atributo dirección; empleado se
describe mediante C.I, nombre y ciudad y
adicionalmente por el atributo sueldo.
Persona Nombre
Cliente Empleado
(p,s)
Ciudad
CI
Sueldo
Dirección
Cobertura total o parcial
Permite especificar una restricción entre el supertipo y sus
subtipos, donde todos los elementos del supertipo deben
pertenecer a alguno de sus subtipos (si es total), o no (si es
parcial).
Persona, hombre y mujer: cobertura es total (t) porque una
persona puede ser u hombre o mujer.
Supertipo empleado y los subtipos docente y administrativo,
puede ser parcial (p), porque dentro de los empleados tb
hay directivos.
Cobertura exclusiva o superpuesta
Permite especificar una restricción entre los
subtipos, donde los elementos que pertenecen a
un subtipo pueden pertenecer también a otro
subtipo (si es superpuesto, (s)) o no (si es
exclusiva (e)).
Persona
Hombre Mujer
(t,e)
Empleado
Administrativo Docente
(t,s)
Estudiante
Egresado Titulado
(p,e)
Estudiante
Ingenieria Postgrado
(p,s)
Introducción
El modelo relacional es hoy en día el que más
extensamente se utiliza en aplicaciones comerciales.
Es simple, flexible y se adapta fácilmente a todo tipo
de requerimientos empresariales
Este modelo da lugar a productos de SGBD de tipo
relacional, tanto propietarios como GPL
Los fundamentos de este modelo son sólidos: los
enunció Codd en 1970 utilizando un lenguaje
matemático basado en la teoría de conjuntos y las
relaciones matemáticas
A lo largo de este tema, procederemos al estudio de
dichos fundamentos, así como a conocer toda la
terminología asociada.
Tablas y relaciones
Una base de datos relacional consiste en una colección de tablas,
divididas en filas horizontales y columnas verticales, con un nombre
único.
Cada fila de la tabla representa una relación entre un conjunto de
valores (uno por columna)
Se denomina atributo a cada uno de los componentes de una fila de
una tabla. Son homogéneos en toda la tabla, esto es, toda la columna
tiene idéntico tamaño y el mismo domino
Se denomina dominio D de un atributo al conjunto de sus valores
posibles.
P. Ej, si un atributo es fecha nacimiento, su dominio lo constituirían
todas las fechas válidas por sí mismas y/o en relación con una serie de
restricciones posibles
En terminología relacional, a las tablas se las denomina relación, y a
las filas tupla
Tablas y relaciones
Por otra parte se denomina cardinalidad al número
de tuplas que tiene una tabla y grado al número de
sus columnas
Base del modelo relacional
Concepto de RELACIÓN
Representación
Atributo 1 Atributo 2 ... Atributo n
xxx xxx ... xxx
xxx xxx ... xxx
... ... ... ...
xxx xxx ... xxx
NOMBRE
Tupla 1
Tupla 2
...
Tupla m
Columnas  Representan las propiedades de las
tablas
Filas  Contienen los valores que toma cada atributo
para cada relación
Términos importantes en la estructura de datos relacional:
• Relación  Corresponde con la idea general de tabla
• Tupla  Corresponde con una fila
• Atributo  Corresponde con una columna
• Cardinalidad  Número de tuplas (m)
• Grado  Número de atributos (n)
• Clave primaria  Identificador único (no hay dos tuplas
con igual identificador)
• Dominio  Colección de valores de los cuales el atributo
obtiene su valor
Presentación realizada por Ariadna Fuertes. Departamento de Informática. Universidad de Valencia
Persona
DNI Nombre Apellidos Dirección Teléfono Nacimiento
14.167.654 Alberto Gómez Martínez Pedrones, 4 963787878 23/02/1958
64.237.935 Luisa Ripoll Albert Denia, 64 963573895 12/06/1963
45.126.579 José Luis Pérez Cerdán Escandinavia, 12 963873333 12/06/1963
67.677.887 Andrea Martínez Zanón Poeta Más Gil, 37 963772564 10/02/1965
Tupla
Atributos
1
2
3
4
1 2 3 4 5 6
Clave primaria  DNI
Dominios:
nombre, apellidos, dirección  texto
DNI  entero
teléfono  entero de 9 dígitos
Nacimiento  fecha
Cardinalidad 4
4
Grado 6 6
• Ejemplo de relación
Presentación realizada por Ariadna Fuertes. Departamento de Informática. Universidad de Valencia
Tablas y relaciones
Se exige, además, que para todas las relaciones los
dominios de todos los atributos sean atómicos,
esto es, indivisibles
Por otra parte, es posible que varios atributos
tengan el mismo dominio, p. ej. el atributo fecha
nacimiento de un empleado y fecha ingreso en la
empresa
Existe un valor especial que forma parte de todos
los dominios, el valor nulo, que indica desconocido
o inexistente.
P. ej. si un empleado no tiene teléfono, el valor de
este atributo sería nulo.
No hay que confundir en atributos numéricos
el valor nulo con el 0, pues semántica y
operacionalmente son cosas diferentes
Claves
Se denomina clave de una relación al atributo o grupo de atributos
que identifica de manera unívoca a una de sus tuplas, esto es, debe
tener un valor único diferenciado para cada una
Este es uno de los conceptos fundamentales que articulan el modelo
relacional, por lo que la identificación y elección de claves es crítica en
el modelo
Se denomina clave candidata a cualquier atributo o conjunto mínimo
de atributos que cumple el requisito anterior.
Si en una relación hay varias candidatas, habrá que decidir con cual
nos quedamos. La elegida pasará a denominarse clave primaria, o
simplemente clave
Suelen preferirse las claves cortas y a ser posible numéricas para
evitar problemas de identificación mayúsculas/minúsculas y que
además no cambien de valor casi nunca
Claves
LLAVE PRIMARIA
Un clave primaria es un campo o grupo de campos que
identifica en forma única un registro. Ningún otro registro
puede tener la misma clave primaria. La clave primaria se
utiliza por distinguir registro con el fin de que se pueda
tener acceso a ellos, organizarlos y manipularlos. En el
caso del registro de una empleado, él numero de este
representa un ejemplo de una clave primaria.
Sirve para hacer relaciones ( uno a uno, uno a muchos,
muchos a muchos entre tablas, sin las llaves primaria las
bases de dato relacionales no tendrían sentido y siempre
existiría información repetida.
Claves
LLAVE FORANEA
Una clave foránea (o Foreign Key FK) es una limitación
referencial entre dos tablas. La clave foránea identifica
una columna o grupo de columnas en una tabla (tabla hija
o referendo) que se refiere a una columna o grupo de
columnas en otra tabla (tabla maestra o referenciada). Las
columnas en la tabla referendo deben ser la clave
primaria u otra clave candidata en la tabla referenciada.
Es uno o mas campos de un tabla que hacen referencia al
campo o campos de llave principal de otra tabla, una llave
foranea indica como esta relacionadas las tablas. Los
datos en los campos de ambas deben coincidir, aunque
los nombres de los campos no sean los mismos.
Claves
La diferencia es sencilla: la clave primaria
identifica un registro único de una tabla.
La clave foránea relaciona los datos de
un registro de una tabla con los de otra,
o con un registro distinto de la misma
tabla.
BASE DE DATOS – ACI253
Definición modelo relacional
El modelo relacional de datos supuso un gran avance con respecto a los
modelos anteriores. Este modelo está basado en el concepto de relación.
Una relación es un conjunto de n-tuplas. Una tupla, al contrario que un
segmento, puede representar tanto entidades como interrelaciones N:M. Los
lenguajes matemáticos sobre los que se asienta el modelo relacional,
aportan un sistema de acceso y consultas orientado al conjunto.
El concepto de atomicidad es relevante especialmente en el campo de las
bases de datos. Que un elemento sea atómico implica que no puede ser
descompuesto en partes más pequeñas.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
modelo relacional
En este modelo la base de datos es vista por el usuario como una relación de
tablas. Cada fila de la tabla es un registro o tupla y los atributos con
columnas o campos.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
modelo relacional
Relación: Película (título, año, duración)
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
modelo relacional
Relación= Conjunto ordenado de n ocurrencias
Atributos= Campos de una tabla, propiedades de las entidades
Dominio= Conjunto donde los atributos toman valores
Tupla= Fila de una tabla
Grado de una relación= Numero de atributos o columnas
Cardinalidad= Numero de filas o tuplas de una relación
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
modelo relacional
Para dar una definición más adecuada desde el punto de vista de las bases
de datos, es preciso distinguir dos conceptos en la definición de la relación:
Esquema de relación: es la parte definitoria y estática de la relación
(cabecera cuando la relación se percibe como una tabla). Es invariante
en el tiempo.
Extensión de la relación: conjunto de tuplas que, en un momento
determinado, satisface el esquema de la relación y se encuentran
almacenadas en la base de datos. Es variante en el tiempo.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
modelo relacional
Clave primaria= Es un conjunto de atributos que identifica a cada tupla de
una relación y además no hay un subconjunto de ellos que cumplan esa
propiedad.
Clave foránea= Es un conjunto de atributos de una tabla que son clave
primaria en otra tabla
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Restricciones al modelo
No puede haber dos tuplas iguales en una misma relación
El orden de las tuplas no es significativo
El orden de los atributos no es significativo
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Restricciones de integridad
Integridad de la Entidad: Ninguna componente de la clave primaria puede
tomar valores nulos o desconocidos, porque entonces no se podrían
distinguir dos entidades.
Integridad Referencial: Cualquier valor que tome un atributo en una relación
del que es clave foránea, debe existir en la relación del que es clave
primaria.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Restricciones de integridad
Integridad de la Entidad: Ninguna componente de la clave primaria puede
tomar valores nulos o desconocidos, porque entonces no se podrían
distinguir dos entidades.
Integridad Referencial: Cualquier valor que tome un atributo en una relación
del que es clave foránea, debe existir en la relación del que es clave
primaria.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Restricciones de integridad
Conversión del modelo conceptual al modelo relacional:
Conversión de Entidades:
Cada entidad de diagrama Entidad/Relación se transforma directamente en
una tabla. Los atributos de la entidad pasan a ser automáticamente las
columnas de la tabla.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Restricciones de integridad
Conversión del modelo conceptual al modelo relacional:
Conversión de Relaciones:
Cada relación de un diagrama Entidad/Relación se transforma directamente
en una tabla. Los campos de esta tabla son las claves primarias de todas las
entidades que participen en la relación más todos aquellos atributos que
pudiera tener la relación.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Restricciones de integridad
Conversión del modelo conceptual al modelo relacional:
Simplificación del modelo relacional:
Los atributos que formaban parte de la tabla pasan a formar parte de la tabla
que representa la entidad con cardinalidad “varios”. Asimismo, si la relación
tuviera atributos propios, también pasarían a la tabla que representa la
entidad con cardinalidad “varios”.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Conversión del modelo conceptual al modelo relacional:
Simplificación del modelo relacional:
El número de relaciones que componen la base de datos debe mantenerse
en el mínimo posible.
Esto mismo es aplicable a las relaciones binarias con cardinalidad uno a uno,
puesto que son un caso particular de las anteriores.
Las tablas con un único atributo se pueden eliminar.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Conversión del modelo conceptual al modelo relacional:
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Conversión del modelo conceptual al modelo relacional:
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Conversión del modelo conceptual al modelo relacional:
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
12 reglas de Codd
Hace algunas décadas existían bases de datos que se decían ser relacionales. Sin embargo,
carecían de características consideradas importantes en una base de datos relacional, tal como
la normalización.
Fue entonces, cuando en 1984 Edgar F. Codd propuso una serie de 12 reglas que contenían las
características que debía contener un verdadero Sistema Gestor de Base de Datos para ser
auténticamente relacional.
La medida en que un SGBD puede ser considerado como relacional está en el número de reglas
que cumpla, aunque realmente es complicado llevarlas a la práctica.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
12 reglas de Codd
Regla 0
El sistema debe ser relacional, base de datos y administrador de sistemas. Ese sistema de utilizar sus
facilidades relacionales (exclusivamente), para manejar la base de datos.
Regla 1. Representación de la información
Toda la información en la Base de datos es representada de forma explícita y única a nivel lógico, por medio
de valores en columnas y filas de tablas.
Clientes
Profesor Rodrigo Cabello S
idClientes nombreCliente appCliente apmCliente
6234 Carlos Rodríguez Gutiérrez
6235 Diana Velázquez Sánchez
6232 Erika García Catillo
BASE DE DATOS – ACI253
12 reglas de Codd
Regla 2. Acceso garantizado
Todo dato (valor atómico) debe ser accesible mediante una combinación de tabla, un valor de su clave y el
nombre de una columna.
Materia prima
Profesor Rodrigo Cabello S
idMatPrima nombreMatprima Cantidad
1024 Botón Figura 150
1025 Botón chico 200
1026 Botón Grande 180
BASE DE DATOS – ACI253
12 reglas de Codd
Regla 3. Tratamiento sistemático de valores nulos.
El SGBD debe soportar la representación y manipulación de información desconocida y/o no aplicable,
independientemente del tipo de dato.
Empleados
Profesor Rodrigo Cabello S
idEmpleado nombreEmpleado appEmpleado email
6234 Carlos Rodríguez carlos@gmail.com
6235 Diana Velázquez Null
6236 Erika García garcia@live.cl
BASE DE DATOS – ACI253
12 reglas de Codd
Regla 4. Catálogo en línea (diccionario de datos)
Basado en el modelo relacional, la descripción de la base de datos se debe representar en el nivel lógico de la
misma manera que los datos ordinarios, de forma que los usuarios autorizados puedan consultarla con el
mismo lenguaje con el que consultan los datos.
Medicamento
Profesor Rodrigo Cabello S
idMedicamento nombreMedicamento formulaMedicamento tipo
1342 KYG Clorfenamina Pastilla
BASE DE DATOS – ACI253
12 reglas de Codd
Profesor Rodrigo Cabello S
Atributo Descripción Tipo PK Null
idMedicamento Identificador del
Medicamento
INT Si No
nombreMedicamento Nombre comercial del
medicamento
VARCHAR(15) No No
formulaMedicamento Nombre del
ingrediente activo del
medicamento
VARCHAR(20) No No
tipo Forma fisica del
medicamento
No No
BASE DE DATOS – ACI253
12 reglas de Codd
Regla 5. Sublenguaje de datos completos.
El SGBD debe soportar al menos un lenguaje relacional:
a) con sintaxis lineal.
b) que pueda ser usado interactivamente o en programas (embebido).
c) con soporte para operaciones de:
definición de datos (p.e. declaración de vistas).
manipulación de datos (p.e. recuperación y modificación de tuplas).
restricciones de seguridad e integridad.
gestión de transacciones.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
12 reglas de Codd
Regla 6. Actualización de vistas.
Todas las vistas teóricamente actualizables deben poder serlo en la práctica.
Ejemplo: Vistas simples, vistas complejas, vista estándar, vista indizada, vista con particiones
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
12 reglas de Codd
Regla 7. Inserción, modificación y borrado de tuplas de alto nivel
Todas las operaciones de manipulación de datos deben operar sobre conjuntos de filas
Profesor Rodrigo Cabello S
Nombre Apaterno Amaterno
Miguel Sánchez Soto
Diana Silva Pavez
Ignacio Pérez Cornejo
Nombre Apaterno Amaterno
Miguel Sanchez Soto
Diana Silva Pavez
BASE DE DATOS – ACI253
12 reglas de Codd
Regla 8. Independencia física de los datos
Cambios en los métodos de acceso físico o la forma de almacenamiento no deben afectar al acceso lógico a
los datos
EJEMPLO:
Por las necesidades de la base de datos de la biblioteca municipal, se le desea agregar un campo
destinado para guardar el número de veces que se ha prestado cada libro, este dato, para el bibliotecario al
realizar algún préstamo es irrelevante, ya que esta información servirá solamente para adquirir más títulos
del ejemplar más solicitado, entonces, en la interfaz de la base de datos, este campo seguirá siendo
invisible para el usuario, es decir, el hecho de que ya se encuentre almacenado no afectará la lógica de la
interfaz.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
12 reglas de Codd
Regla 9.Independencia lógica de los datos
Los programas de aplicación no deben ser afectados por cambios en las tablas que preservan la integridad.
Regla 10. Independencia de la integridad
Las restricciones de integridad deben estar separadas de los programas, almacenadas en el catálogo de la BD
para ser editadas mediante un sublenguaje de datos.
Ejemplo:
Las reglas de integridad combinadas aseguran que haya integridad referencial.
• Ningún componente de una clave primaria puede tener valores en blanco o nulos (esta es la norma básica
de integridad).
• Para cada valor de clave foránea deberá existir un valor de clave primaria concordante.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
12 reglas de Codd
Regla11. Independencia de la distribución
Las aplicaciones no deben verse afectadas al distribuir (dividir entre varias máquinas), o al cambiar la
distribución ya existente de la Base de Datos.
Profesor Rodrigo Cabello S
Base de
datos
BASE DE DATOS – ACI253
12 reglas de Codd
Regla 12. Regla de no subversión
Si el sistema posee un interfaz de bajo nivel, éste no puede utilizarse para saltarse las reglas de integridad y
las restricciones expresadas por medio de un lenguaje de más alto nivel.
Ejemplo:
1. Si un sistema relacional tiene un (solo registro a la vez) de bajo nivel de lenguaje, ese bajo nivel no puede
ser utilizado para subvertir o pasar por alto las reglas de integridad y las limitaciones expresadas en el
lenguaje relacional de alto nivel (varios registros a la vez).
2. Algunos productos solamente construyen una interfaz relacional para sus bases de datos no relacionales, lo
que hace posible la subversión de las restricciones de integridad. Esto no debe ser permitido.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
La diferencia que existe entre los datos Normalizados en primera forma normal (1FN) y el
universo de datos no normalizado:
El universo de datos no normalizado se refiere al conjunto de datos que están reunidos bajo un
criterio en común, estos datos son una gran cantidad de información desorganizada y, en
algunos casos, compleja para su análisis u otros usos, ya que tiene un albedrio de información, y
en ello encontraremos muchas inconsistencias o ¨defectos¨, como las siguientes:
Ø La REDUNDANCIA de datos
Ø ERRORES DE ACTUALIZACIÓN de datos.
Ø FALTA DE INTEGRIDAD E INCONSISTENCIA en los datos.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
En relación a tablas no normalizadas (cuando almacenamos información no normalizada):
Ø Repetición de nombres de cada tabla.
Ø Presencia de dos filas iguales.
Ø Los datos de una misma columna de un mismo tipo.
Ø De inserción: imposibilidad de adicionar datos en la BD por la ausencia de otros.
Ø De borrado: pérdida no intencionada de datos debido a la eliminación de otros.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
En cambio, cuando tenemos los datos organizados bajo ciertos criterios, como la Primera Forma
Normal (1FN), se debe cumplir con lo siguiente:
Una relación R se encuentra en 1FN si y solo sí por cada renglón columna contiene valores
atómicos.
Las celdas de las tablas poseen valores simples y no se permiten grupos ni arreglos repetidos
como valores, es decir, contienen un solo valor por cada celda.
Todos los ingresos en cualquier columna (atributo) deben ser del mismo tipo.
Cada columna debe tener un nombre único, el orden de las columnas en la tabla no es
importante.
Dos filas o renglones de una misma tabla no deben ser idénticas, aunque el orden de las filas no
es importante.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
Segunda Forma Normal (2FN)
Para lograr la segunda forma normal (2FN) es necesario primero lograr la primera forma normal
(1FN). Una vez que se logre, todos los atributos no claves deben depender de toda la clave
primaria, en otras palabras deben estar en dependencia funcional completa (DFC) . Si no se
cumple, se debe separar en diferentes tablas para que cumplan este requisito
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
2DA FORMA NORMAL
Ejemplo.- 1
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
2DA FORMA NORMAL
Ejemplo.- 2
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
2DA FORMA NORMAL
Ejemplo.- 3
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
2DA FORMA NORMAL
Ejemplo.- 4
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
2DA FORMA NORMAL
Ejemplo.- 4
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
2DA FORMA NORMAL
Ejemplo.- 6
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
Tercera Forma Normal (3FN)
La Tercera Forma Normal (3FN), consiste en que ningún atributo dato. que depende
de la PK, dependa de otro atributo dato. Es decir, no debe tener DEPENDENCIA
TRANSITIVA. Hacemos la siguiente analogía.
Para que los Datos estén en 3FN, deben estar en 2FN y NO DEBEN tener
Dependencia Transitiva DT.
X ---> Y --->Z
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
3RA FORMA NORMAL
Ejemplo.- 1
Profesor Rodrigo Cabello S
En este cuadro, tendríamos como Clave Primaria al C_Evento y los demás
atributos dependen de la PK. Sin embargo, vemos que la Dirección del local
T_Dirección depende del nombre del Local donde se realiza el evento. Para
resolver este problema y tener un mejor almacenamiento de datos, la 3FN hace
que creemos una 2da tabla haciendo PK al Nombre del local teniendo como
atributo dato a la Dirección.
BASE DE DATOS – ACI253
Normalización
3RA FORMA NORMAL
Ejemplo.- 2
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
3RA FORMA NORMAL
Ejemplo.- 3
Con la 3FN quedaría así
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
Normalización
3RA FORMA NORMAL
Ejemplo.- 4
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
SQL
¿Qué significa SQL?
¿Qué es el SQL?
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
SQL
Ingles
Español
Profesor Rodrigo Cabello S
Significado de SQL
Structured Query Language
Lenguaje Estructurado de Consultas
BASE DE DATOS – ACI253
SQL
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
SQL
¿Qué es SQL?
Es un lenguaje de consulta y programación de bases de datos utilizado para la
organización, acceso, consulta y gestión de bases de datos relacionales.
Profesor Rodrigo Cabello S
Aplicación
del Cliente
API’s de la BD
(OLEDB, ODBC,
Microsoft Jet, etc.)
Librería de
Autentificación
del Cliente
Database
Management
System
(SGBD)
Validación de
Permisos
Datos
Solicitud SQL
Cliente
Server
BASE DE DATOS – ACI253
SQL
Funciones Principales de SQL en un SGBD
• Definición de Datos
• Estructura de la BD
• Organización de Datos
• Relaciones
• Recuperación de Datos
• Extracción de Datos
• Manipulación de Datos
• Permite la inserción, eliminación, modificación y actualización de los datos.
• Control de Acceso
• Control sobre los Permisos en los datos
• Compartimiento de Datos
• Coordina el acceso y la compartición de datos entre varios usuarios.
• Integridad de Datos
• Protege la BD de deterioros o errores causados por el sistema
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
SQL
Transacciones-SQL
Las transacciones son comandos universales SQL que permiten realizar petició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.
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
SQL
Al realizar transacciones o instrucciones SQL se llegan a utilizar ciertos elementos que
forman parte del uso del SQL como lo son:
• Los Nombres y Alias
• Batches
• Comentarios
• Tipos de Datos
• Variables
• Operadores
• Funciones
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
SQL
Nombres y Alias
Cuando se escriben declaraciones de SQL, se utilizan nombres para referirse a bases
de datos, tablas, columnas o sentencias reservadas de SQL. Pero también es posible
crear alias los cuales funcionan como sinó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 espacios en blanco
se deberá colocar el nombre entre [ ] o entre ‘’.
Profesor Rodrigo Cabello S
Ejemplo:
SELECT Nombre,[Fecha de Nacimiento]
FROM Empleados
BASE DE DATOS – ACI253
SQL
Batches
Un Batche esta formado por un conjunto de sentencias o transacciones SQL.
GO
Mediante la palabra GO, SQL marca el final de un batche y es enviado a procesar
al Servidor de SQL.
Profesor Rodrigo Cabello S
Ejemplo:
Use Northwind
SELECT * FROM Productname
GO
BASE DE DATOS – ACI253
SQL
Comentarios
• Los comentarios son cadenas de texto que no son tomados en cuenta durante la
ejecución de sentencias.
• Existen 2 formas de colocar comentarios en SQL:
Comentarios por Línea
Para colocar un comentario en una línea, se deben colocar 2 (--) guiones
antes del comentario, ya que SQL ignora todo el texto que se encuentre a la
derecha de los guiones.
Profesor Rodrigo Cabello S
Ejemplo:
Use Ventas - - utiliza la BD Ventas
SELECT * - - Selecciona todos los registros
FROM Pedidos - - de la tabla pedidos
Go
BASE DE DATOS – ACI253
SQL
Comentarios
Comentarios de Bloque
Para generar un bloque de varias líneas de comentarios se utiliza los
caracteres (/*) para marcar el inicio del comentario y los caracteres (*/) para
finalizar el comentario
Profesor Rodrigo Cabello S
Ejemplo:
/* Este es un bloque
de varias líneas
que termina precisamente aquí */
BASE DE DATOS – ACI253
SQL
Tipos de Datos
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
SQL
Variables
Dentro de SQL se pueden definir variables para almacenar valores temporales.
Todas las variables deben iniciar con el símbolo @
Declaración de variables
Asignar valor a variables
Devolver el valor de
las variables
Profesor Rodrigo Cabello S
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
BASE DE DATOS – ACI253
SQL
Operadores
Tipos de Operadores
• Aritméticos
+ - * / ^
• Comparación
> < <> = >= <=
• Concatenación
+
• Lógicos
And Or Not
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
SQL
Funciones
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
SQL
Transacciones DDL
Son instrucciones que controlan la estructura de una BD con las cuales 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
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
SQL
Crear una Base de Datos (CREATE)
Comando T-SQL:
CREATE DATABASE
Sintaxis:
CREATE DATABASE [Nombre de BD]
Profesor Rodrigo Cabello S
Ejemplo:
create database cursosql;
use cursosql
go
BASE DE DATOS – ACI253
SQL
Utilizar una BD
Para realizar una acción dentro de una Base de Datos, primero hay que decirle a
SGBD que queremos trabajar con esa Base de Datos, para esto se utiliza el siguiente
comando
Sentencia SQL:
USE
Sintaxis:
USE Nombre de la BD
Profesor Rodrigo Cabello S
Ejemplo:
USE Animales
BASE DE DATOS – ACI253
SQL
Creación de una Tabla
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 de Datos Char y
Varchar.
Profesor Rodrigo Cabello S
Ejemplo 1:
CREATE TABLE MiTabla (
Matricula INT,
Nombre VARCHAR(15),
Edad INT )
BASE DE DATOS – ACI253
SQL
Valores Ausentes y Valores Predeterminados
• Al momento de definir cada una de las columnas es posible determinar si el
campo va a permitir valores nulos o no.
• Es posible definir para cada columna en caso de ser necesario, una valor que
funcione como predeterminado al momento de ingresar registros a la tabla.
Profesor Rodrigo Cabello S
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)
BASE DE DATOS – ACI253
SQL
Eliminación de una Tabla
• Es posible eliminar una tabla de la base de datos, es importante considerar que al
momento de que la tabla es eliminada todos los registros almacenados en dicha
tabla, también serán eliminados.
• Al eliminar una tabla debe considerar si esta no se encuentra relacionada con
alguna otra tabla, en caso de que así sea, la integridad en las relaciones se vera
afectada.
Profesor Rodrigo Cabello S
DROP TABLE nombre_tabla
BASE DE DATOS – ACI253
SQL
Modificación de una Tabla
En ocasiones será necesario alterar la definición de la estructura las tablas, por lo que
será posible modificar la tabla en los siguientes aspectos:
• Cambiar el tipo de datos para las columnas
• Establecer valores nulos o no para las columnas
• Especificar valores predeterminados
• Agregar columnas
• Eliminar columnas
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
SQL
Modificación de una Tabla
Profesor Rodrigo Cabello S
ALTER TABLE MITABLA
alter column matricula varchar(15)
ALTER TABLE nombre_tabla
ADD nueva_columna tipo_datos
ALTER TABLE nombre_tabla
DROP COLUMN nombre_columna
BASE DE DATOS – ACI253
SQL
Asignar Alias a los Campos
• Es posible que al momento de que muestre el resultado de la consulta, los nombres
de los campos sean distintos.
• Lo anterior es útil cuando los nombres de los campos no son muy representativos
para los usuarios finales.
• La asignación del Alias se hace a través de la cláusula AS seguido del nombre del
alias o sobrenombre que se quiera asignar.
Profesor Rodrigo Cabello S
SELECT idproducto AS [Código Producto],
nombreproducto AS Producto from productos
BASE DE DATOS – ACI253
SQL
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
SQL
Profesor Rodrigo Cabello S
BASE DE DATOS – ACI253
SQL
Profesor Rodrigo Cabello S

Más contenido relacionado

La actualidad más candente

Presentación Minería de Datos
Presentación Minería de DatosPresentación Minería de Datos
Presentación Minería de Datos
dataminingperu
 
Minería de datos Presentación
Minería de datos PresentaciónMinería de datos Presentación
Minería de datos Presentación
edmaga
 

La actualidad más candente (20)

Minería de datos
Minería de datosMinería de datos
Minería de datos
 
Presentación Minería de Datos
Presentación Minería de DatosPresentación Minería de Datos
Presentación Minería de Datos
 
Mineria De Datos
Mineria De DatosMineria De Datos
Mineria De Datos
 
Mineria de datos
Mineria de datosMineria de datos
Mineria de datos
 
Nociones Básicas de la Minería de Datos
Nociones Básicas de la Minería de DatosNociones Básicas de la Minería de Datos
Nociones Básicas de la Minería de Datos
 
Mineria de datos
Mineria de datosMineria de datos
Mineria de datos
 
mineria de datos
mineria de datosmineria de datos
mineria de datos
 
Técnicas y Modelos de Mineria de Datos
Técnicas y Modelos de Mineria de DatosTécnicas y Modelos de Mineria de Datos
Técnicas y Modelos de Mineria de Datos
 
Mineria de datos
Mineria de datosMineria de datos
Mineria de datos
 
Mineria de datos
Mineria de datosMineria de datos
Mineria de datos
 
Algoritmos de minería de datos
Algoritmos de minería de datos Algoritmos de minería de datos
Algoritmos de minería de datos
 
Fundamentos de Data Mining con R
Fundamentos de Data Mining con RFundamentos de Data Mining con R
Fundamentos de Data Mining con R
 
OpenAnalytics - Minería de datos por Diego García (Unican)
OpenAnalytics - Minería de datos por Diego García (Unican)OpenAnalytics - Minería de datos por Diego García (Unican)
OpenAnalytics - Minería de datos por Diego García (Unican)
 
Minería de datos
Minería de datosMinería de datos
Minería de datos
 
Mineria de datos
Mineria de datosMineria de datos
Mineria de datos
 
Minería de datos
Minería de datosMinería de datos
Minería de datos
 
Minería de Datos: Qué significa realmente y ejemplos de utilización
Minería de Datos: Qué significa realmente y ejemplos de utilizaciónMinería de Datos: Qué significa realmente y ejemplos de utilización
Minería de Datos: Qué significa realmente y ejemplos de utilización
 
Introducción al Data Mining
Introducción al Data MiningIntroducción al Data Mining
Introducción al Data Mining
 
aplicaciones de minería de datos
aplicaciones de minería de datosaplicaciones de minería de datos
aplicaciones de minería de datos
 
Minería de datos Presentación
Minería de datos PresentaciónMinería de datos Presentación
Minería de datos Presentación
 

Similar a Base de datos_aci_253_26_10 [autoguardado]

Presentacion bases de datos pibd213 unidad i
Presentacion bases de datos pibd213 unidad iPresentacion bases de datos pibd213 unidad i
Presentacion bases de datos pibd213 unidad i
marce821
 

Similar a Base de datos_aci_253_26_10 [autoguardado] (20)

Unidad A
Unidad AUnidad A
Unidad A
 
Bases de datos
Bases de datos Bases de datos
Bases de datos
 
Bases de datos
Bases de datos Bases de datos
Bases de datos
 
DISEÑO DE BASE DE DATOS
DISEÑO DE BASE DE DATOSDISEÑO DE BASE DE DATOS
DISEÑO DE BASE DE DATOS
 
Unidad I : El Mundo De Las Bases De Datos Y Los Sistemas Manejadores De Base ...
Unidad I : El Mundo De Las Bases De Datos Y Los Sistemas Manejadores De Base ...Unidad I : El Mundo De Las Bases De Datos Y Los Sistemas Manejadores De Base ...
Unidad I : El Mundo De Las Bases De Datos Y Los Sistemas Manejadores De Base ...
 
Guia de Base de Datos Unidad 1. Lissette T
Guia de Base de Datos Unidad 1. Lissette TGuia de Base de Datos Unidad 1. Lissette T
Guia de Base de Datos Unidad 1. Lissette T
 
Guia de base de datos unidad 1 por lissette
Guia de base de datos unidad 1 por lissetteGuia de base de datos unidad 1 por lissette
Guia de base de datos unidad 1 por lissette
 
Primera clase
Primera clasePrimera clase
Primera clase
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 
Presentacion bases de datos pibd213 unidad i
Presentacion bases de datos pibd213 unidad iPresentacion bases de datos pibd213 unidad i
Presentacion bases de datos pibd213 unidad i
 
Glosario base de datos jeison cruz
Glosario base de datos jeison cruzGlosario base de datos jeison cruz
Glosario base de datos jeison cruz
 
Glosario base de datos Jeison Cruz
Glosario base de datos Jeison CruzGlosario base de datos Jeison Cruz
Glosario base de datos Jeison Cruz
 
Unidad1
Unidad1Unidad1
Unidad1
 
Tema 1 base de datos
Tema 1   base de datosTema 1   base de datos
Tema 1 base de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Fases para la creacion de una bd
Fases para la creacion de una bdFases para la creacion de una bd
Fases para la creacion de una bd
 
Aplicacion de base de datos
Aplicacion de base de datosAplicacion de base de datos
Aplicacion de base de datos
 

Último

Catalogo de tazas para la tienda nube de dostorosmg
Catalogo de tazas para la tienda nube de dostorosmgCatalogo de tazas para la tienda nube de dostorosmg
Catalogo de tazas para la tienda nube de dostorosmg
dostorosmg
 
260813887-diagrama-de-flujo-de-proceso-de-esparrago-fresco-verde.pptx
260813887-diagrama-de-flujo-de-proceso-de-esparrago-fresco-verde.pptx260813887-diagrama-de-flujo-de-proceso-de-esparrago-fresco-verde.pptx
260813887-diagrama-de-flujo-de-proceso-de-esparrago-fresco-verde.pptx
i7ingenieria
 
CRITERIOS DE EVALUACIÓN - NIVEL INICIAL.docx
CRITERIOS DE EVALUACIÓN - NIVEL INICIAL.docxCRITERIOS DE EVALUACIÓN - NIVEL INICIAL.docx
CRITERIOS DE EVALUACIÓN - NIVEL INICIAL.docx
geuster2
 
GUIA UNIDAD 3 costeo variable fce unc.docx
GUIA UNIDAD 3 costeo variable fce unc.docxGUIA UNIDAD 3 costeo variable fce unc.docx
GUIA UNIDAD 3 costeo variable fce unc.docx
AmyKleisinger
 
CARPETA PEDAGOGICA 2024 ARITA.sadasdasddocx
CARPETA PEDAGOGICA 2024 ARITA.sadasdasddocxCARPETA PEDAGOGICA 2024 ARITA.sadasdasddocx
CARPETA PEDAGOGICA 2024 ARITA.sadasdasddocx
WILIANREATEGUI
 
3ro - Semana 1 (EDA 2) 2023 (3).ppt. edx
3ro - Semana 1 (EDA 2) 2023 (3).ppt. edx3ro - Semana 1 (EDA 2) 2023 (3).ppt. edx
3ro - Semana 1 (EDA 2) 2023 (3).ppt. edx
Evafabi
 

Último (20)

DECRETO-2535-DE-1993-pdf.pdf VIGILANCIA PRIVADA
DECRETO-2535-DE-1993-pdf.pdf VIGILANCIA PRIVADADECRETO-2535-DE-1993-pdf.pdf VIGILANCIA PRIVADA
DECRETO-2535-DE-1993-pdf.pdf VIGILANCIA PRIVADA
 
Catalogo de tazas para la tienda nube de dostorosmg
Catalogo de tazas para la tienda nube de dostorosmgCatalogo de tazas para la tienda nube de dostorosmg
Catalogo de tazas para la tienda nube de dostorosmg
 
CAMBIO DE USO DE SUELO LO BARNECHEA - VITACURA - HUECHURABA
CAMBIO DE USO DE SUELO LO BARNECHEA - VITACURA - HUECHURABACAMBIO DE USO DE SUELO LO BARNECHEA - VITACURA - HUECHURABA
CAMBIO DE USO DE SUELO LO BARNECHEA - VITACURA - HUECHURABA
 
Reporte Tributario para Entidades Financieras.pdf
Reporte Tributario para Entidades Financieras.pdfReporte Tributario para Entidades Financieras.pdf
Reporte Tributario para Entidades Financieras.pdf
 
DISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE
DISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBREDISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE
DISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE
 
Sostenibilidad y continuidad huamcoli robin-cristian.pptx
Sostenibilidad y continuidad huamcoli robin-cristian.pptxSostenibilidad y continuidad huamcoli robin-cristian.pptx
Sostenibilidad y continuidad huamcoli robin-cristian.pptx
 
Maria_diaz.pptx mapa conceptual gerencia industral
Maria_diaz.pptx mapa conceptual   gerencia industralMaria_diaz.pptx mapa conceptual   gerencia industral
Maria_diaz.pptx mapa conceptual gerencia industral
 
260813887-diagrama-de-flujo-de-proceso-de-esparrago-fresco-verde.pptx
260813887-diagrama-de-flujo-de-proceso-de-esparrago-fresco-verde.pptx260813887-diagrama-de-flujo-de-proceso-de-esparrago-fresco-verde.pptx
260813887-diagrama-de-flujo-de-proceso-de-esparrago-fresco-verde.pptx
 
____ABC de las constelaciones con enfoque centrado en soluciones - Gabriel de...
____ABC de las constelaciones con enfoque centrado en soluciones - Gabriel de...____ABC de las constelaciones con enfoque centrado en soluciones - Gabriel de...
____ABC de las constelaciones con enfoque centrado en soluciones - Gabriel de...
 
Manual de Imagen Personal y uso de uniformes
Manual de Imagen Personal y uso de uniformesManual de Imagen Personal y uso de uniformes
Manual de Imagen Personal y uso de uniformes
 
CRITERIOS DE EVALUACIÓN - NIVEL INICIAL.docx
CRITERIOS DE EVALUACIÓN - NIVEL INICIAL.docxCRITERIOS DE EVALUACIÓN - NIVEL INICIAL.docx
CRITERIOS DE EVALUACIÓN - NIVEL INICIAL.docx
 
Correcion del libro al medio hay sitio.pptx
Correcion del libro al medio hay sitio.pptxCorrecion del libro al medio hay sitio.pptx
Correcion del libro al medio hay sitio.pptx
 
Presentacion encuentra tu creatividad papel azul.pdf
Presentacion encuentra tu creatividad papel azul.pdfPresentacion encuentra tu creatividad papel azul.pdf
Presentacion encuentra tu creatividad papel azul.pdf
 
GUIA UNIDAD 3 costeo variable fce unc.docx
GUIA UNIDAD 3 costeo variable fce unc.docxGUIA UNIDAD 3 costeo variable fce unc.docx
GUIA UNIDAD 3 costeo variable fce unc.docx
 
CARPETA PEDAGOGICA 2024 ARITA.sadasdasddocx
CARPETA PEDAGOGICA 2024 ARITA.sadasdasddocxCARPETA PEDAGOGICA 2024 ARITA.sadasdasddocx
CARPETA PEDAGOGICA 2024 ARITA.sadasdasddocx
 
Contabilidad Gubernamental guia contable
Contabilidad Gubernamental guia contableContabilidad Gubernamental guia contable
Contabilidad Gubernamental guia contable
 
CORRIENTES DEL PENSAMIENTO ECONÓMICO.pptx
CORRIENTES DEL PENSAMIENTO ECONÓMICO.pptxCORRIENTES DEL PENSAMIENTO ECONÓMICO.pptx
CORRIENTES DEL PENSAMIENTO ECONÓMICO.pptx
 
Ficha de datos de seguridad MSDS Ethanol (Alcohol etílico)
Ficha de datos de seguridad MSDS Ethanol (Alcohol etílico)Ficha de datos de seguridad MSDS Ethanol (Alcohol etílico)
Ficha de datos de seguridad MSDS Ethanol (Alcohol etílico)
 
CONSTITUCIÓN POLÍTICA DEL PERÚ al 25082023.pdf
CONSTITUCIÓN POLÍTICA DEL PERÚ al 25082023.pdfCONSTITUCIÓN POLÍTICA DEL PERÚ al 25082023.pdf
CONSTITUCIÓN POLÍTICA DEL PERÚ al 25082023.pdf
 
3ro - Semana 1 (EDA 2) 2023 (3).ppt. edx
3ro - Semana 1 (EDA 2) 2023 (3).ppt. edx3ro - Semana 1 (EDA 2) 2023 (3).ppt. edx
3ro - Semana 1 (EDA 2) 2023 (3).ppt. edx
 

Base de datos_aci_253_26_10 [autoguardado]

  • 1. BASE DE DATOS IEI-052 Profesor Rodrigo Cabello S.
  • 2. BASE DE DATOS – ACI253 ¿Que es dato? Es una representación simbólica (numérica, alfabética, algorítmica, espacial, etc.) de un atributo o variable cuantitativa o cualitativa Es el elemento primario de la información conformado por símbolos (letras, números, dibujos, señas, gestos) que reunidos pueden cobrar significación. ¿Que es información? La información es un conjunto organizado de datos procesados, que constituyen un mensaje que cambia el estado de conocimiento del sujeto o sistema ¿Que es una base de datos? Las bases de datos son recursos que recopilan todo tipo de información, para atender las necesidades de un amplio grupo de usuarios. Su tipología es variada y se caracterizan por una alta estructuración y estandarización de la información. Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. Profesor Rodrigo Cabello S.
  • 3. BASE DE DATOS – ACI253 Dato como recurso En las organizaciones, se ha incorporado al dato dentro de sus recursos básicos (humanos, financieros y materiales) El dato, al igual que los demás recursos, tiene un costo y un valor asociado El dato debe ser administrado, planificado y controlado, es decir, tratado como un activo más de la empresa. Los datos son hechos relacionados con personas, objetos, eventos u otras entidades del mundo real (pueden ser cuantitativos o cualitativos, internos o externos, históricos o predictivos) Profesor Rodrigo Cabello S
  • 4. BASE DE DATOS – ACI253 Profesor Rodrigo Cabello S
  • 5. BASE DE DATOS – ACI253 Base de datos Una base de datos es un conjunto de datos relacionados, que permiten satisfacer las necesidades de información de una organización. Profesor Rodrigo Cabello S.
  • 6. BASE DE DATOS – ACI253 Dato como recurso Una base de datos tiene dos funciones importantes: integrar y compartir Profesor Rodrigo Cabello S
  • 7. BASE DE DATOS – ACI253 Profesor Rodrigo Cabello S. Base de Datos Usuario 2 Usuario 1 Terminal Aplicación
  • 8. BASE DE DATOS – ACI253 Profesor Rodrigo Cabello S. Componentes de una base de datos Hardware: Máquinas en que se almacenan las bases de datos. Software: Es el sistema gestor de bases de datos (SGBD o DBMS). Datos: Incluyen los datos que se necesitan almacenar, y los METADATOS que son DATOS, que sirven para describir lo que se almacena en las bases de datos. Usuarios: Personas que manipulan los datos del sistema. Usuarios finales: Son los que utilizan los datos para sus labores cotidianas. Desarrolladores: Analista y programadores encargados de generar aplicaciones para usuarios finales. Administradores o DBA: Se encargan de gestionar la base de datos.
  • 9. BASE DE DATOS – ACI253 Composición de las BBDD Profesor Rodrigo Cabello S Las bases de datos están compuestas, de datos y de metadatos. Los metadatos son datos (valga la redundancia) que sirven para especificar la estructura de la base de datos; por ejemplo qué tipo de datos se almacenan (si son texto o números o fechas), qué nombre se le da a cada dato (nombre, apellidos), cómo están agrupados, cómo se relacionan. De este modo se producen dos visiones de la base de datos: Estructura lógica: Indica la composición y distribución teórica de la base de datos. La estructura lógica sirve para que las aplicaciones puedan utilizar los elementos de la base de datos sin saber realmente cómo se están almacenando. Estructura física: Es la estructura de los datos tan cual se almacenan en las unidades de disco. La correspondencia entre la estructura lógica y la física se almacena en la base de datos (en los metadatos).
  • 10. BASE DE DATOS – ACI253 Ventajas de las BBDD Profesor Rodrigo Cabello S ventajas de las bases de datos Independencia de los datos y los programas y procesos: Esto permite modificar los datos sin modificar el código de las aplicaciones. Menor redundancia: No hace falta tanta repetición de datos. Aunque, sólo los buenos diseños de datos tienen poca redundancia. Integridad de los datos: Mayor dificultad de perder los datos o de realizar incoherencias con ellos. Mayor seguridad en los datos: Al limitar el acceso a ciertos usuarios. Datos más documentados: Gracias a los metadatos que permiten describir la información de la base de datos. Acceso a los datos más eficiente: La organización de los datos produce un resultado más óptimo en rendimiento.
  • 11. BASE DE DATOS – ACI253 Profesor Rodrigo Cabello S • Disminución y control de la redundancia de datos Procesamiento de ficheros  varias copias de la misma información Problemas debidos a la redundancia de datos • Duplicación del trabajo • Desperdicio de espacio de almacenamiento • Obligación de evitar las inconsistencias de datos • Evitar inconsistencias en los datos • (la inconsistencia de los datos: diversas copias de un mismo dato no concuerdan entre sí) Sólo si existe redundancia y se modifica un dato, actualizando algunas copias Soluciones: • Eliminación de Redundancia, • Redundancia Controlada y Propagación de Actualizaciones Automática
  • 12. BASE DE DATOS – ACI253 Profesor Rodrigo Cabello S • Mantener la integridad – Asegurar que la información es correcta = refleja fielmente el minimundo – ¿Cuándo se viola la integridad (no existe)? • Si existe inconsistencia • Si existe información imposible fecha = 40 / MAYO / 1972 • Si existe información que no se ajusta a la realidad, es decir falsa o errónea Nº de teléfono de la policía = 063 – ¿Cómo se evitan estas situaciones? • Si los datos cumplen las Restricciones de Integridad – Restricciones sobre tipos de datos « el nombre de una persona es una cadena de hasta 30 caracteres » – Restricciones semánticas « todo libro tiene una editorial » « cada libro tiene un título diferente del resto » « ningún libro puede prestarse a más de una persona al mismo tiempo »
  • 13. BASE DE DATOS – ACI253 Profesor Rodrigo Cabello S • Mantener la integridad – Asegurar que la información es correcta = refleja fielmente el minimundo – ¿Cuándo se viola la integridad (no existe)? • Si existe inconsistencia • Si existe información imposible fecha = 40 / MAYO / 1972 • Si existe información que no se ajusta a la realidad, es decir falsa o errónea Nº de teléfono de la policía = 063 – ¿Cómo se evitan estas situaciones? • Si los datos cumplen las Restricciones de Integridad – Restricciones sobre tipos de datos « el nombre de una persona es una cadena de hasta 30 caracteres » – Restricciones semánticas « todo libro tiene una editorial » « cada libro tiene un título diferente del resto » « ningún libro puede prestarse a más de una persona al mismo tiempo »
  • 14. BASE DE DATOS – ACI253 Integridad BBDD integridad referencial: Es un sistema de reglas que utilizan la mayoría de las bases de datos relacionales para asegurarse que los registros de tablas relacionadas son válidos y que no se borren o cambien datos relacionados de forma accidental produciendo errores de integridad. Integridad de dominio: La regla de integridad de dominio está relacionada, como su nombre indica, con la noción de dominio. Esta regla establece dos condiciones: La primera condición consiste en que un valor no nulo de un atributo A debe pertenecer al dominio del atributo A; es decir, debe pertenecer a dominio(A). Si en la relación EMPLEADOS(RUT, nombre, apellido, edad) hemos declarado que dominio(RUT) es el dominio predefinido de los enteros, entonces no podremos insertar, por ejemplo, ningún empleado que tenga por RUT el valor “Luis”, que no es un entero. Profesor Rodrigo Cabello S
  • 15. BASE DE DATOS – ACI253 Integridad BBDD Integridad de entidad: establece que la clave primaria de una tabla debe tener un valor único para cada fila de la tabla; si no, la base de datos perderá su integridad. Un intento de insertar o actualizar una fila con un valor de la clave primaria ya existente fallará. Profesor Rodrigo Cabello S
  • 16. BASE DE DATOS – ACI253 Aplicación de restricciones de seguridad No todos los usuarios deberían poder acceder a toda la BD Objetivo: control de acceso selectivo 1. Sólo usuarios autorizados 2. Sólo a ciertas partes de la base de datos 3. Sólo para realizar ciertas operaciones con los datos SGBD dispone de Subsistema de Seguridad y Autorización • Cuentas de usuario protegidas con contraseña (ok objetivo 1) • Restricciones de seguridad para cada cuenta (ok objetivos 2 y 3) Profesor Rodrigo Cabello S
  • 17. BASE DE DATOS – ACI253 Datos compartidos actualizados Datos disponibles para todos los usuarios El cambio de datos por un usuario es visto inmediatamente por el resto Subsistemas de control de concurrencia y recuperación del SGBD Profesor Rodrigo Cabello S
  • 18. BASE DE DATOS – ACI253 Abstracción Abstracción: Representación de las características esenciales de un objeto o entidad. Abstraer: Dar nombre a las cosas. Referenciar: Hace uso del nombre. Profesor Rodrigo Cabello S
  • 19. BASE DE DATOS – ACI253 Abstracción Profesor Rodrigo Cabello S
  • 20. BASE DE DATOS – ACI253 Abstracción La abstracción de datos es una técnica o metodología que permite diseñar estructuras de datos. Consiste básicamente en representar bajo ciertos lineamientos de formato las características esenciales de una estructura de datos. Este proceso de diseño se olvida de los detalles específicos de implementación de los datos. Profesor Rodrigo Cabello S
  • 21. BASE DE DATOS – ACI253 ¿Qué es una estructura de datos? Cualquier colección o grupo de datos organizados de tal forma que tengan asociados un conjunto de operaciones para poder manipularlos, se dice que conforma una estructura de datos. Profesor Rodrigo Cabello S
  • 22. BASE DE DATOS – ACI253 Tipo de Dato Abstracto (TDA) Es la representación de una entidad u objeto para facilitar su programación. Se compone de: Estructura de datos: Es la estructura de programación que se selecciona para representar las características de la entidad modelada Funciones de Abstracción: Son funciones que permiten hacer uso de la estructura de datos, y que esconden los detalles de dicha estructura, permitiendo un mayor nivel de abstracción. Profesor Rodrigo Cabello S
  • 23. BASE DE DATOS – ACI253 Se plasma la abstracción realizada al diseñar una estructura de datos, esto pasa a ser el mapa o plano con el cual se construirá la estructura de datos y se definirán claramente las reglas en las que podrá usarse el TDA. Profesor Rodrigo Cabello S
  • 24. Modelo de Datos Modelo de datos : Con un modelo de datos nos abstraeremos de la realidad del problema a solucionar (o universo de discurso) atendiendo a: ¿Qué datos nos interesan para nuestra aplicación? ¿Cómo los voy a organizar?
  • 26. Modelo Conceptual de Datos Definición: El modelo entidad- relación, también denominado modelo conceptual de datos, es una técnica especial de representación gráfica que incorpora información relativa a los datos y la relación existente entre ellos, para darnos una visión del mundo real. Es una representación abstracta de los datos de una BD independiente de su estructura final.
  • 27. Modelo Conceptual de Datos Las características del modelo entidad-relación son: Refleja tan sólo la existencia de los datos, no lo que se hace con ellos. Es independiente de las bases de datos y sistemas operativos concretos. No tiene en cuenta restricciones de espacio, almacenamiento, ni tiempo de ejecución. El Modelo E-R, por tanto, se basa en la percepción de un mundo real que consiste en un conjunto de objetos básicos denominados Entidades, así como las Interrelaciones existentes entre ellos.
  • 28. Modelo Conceptual de Datos Elementos del modelo: a. Entidad b. Atributos c. Relación c.1.- Grado c.2.- Participación c.3.- Cardinalidad c.4.- Atributos propios de una relación c.5.- Clave de una relación a. Claves
  • 29. Elementos del modelo Entidad: Es todo aquel objeto real o abstracto del que se quiere obtener información. Ejemplos: Nombre_Entidad ARTICULO VENDEDOR CLIENTE
  • 30. Elementos del modelo Atributo: Característica o propiedad del objeto que representa a la entidad. Notación en “Piruleta”: Notación abreviada: PROFESOR Cod_prof Nombre DNI Dirección Fecha_nac EMPLEADO # Cod_Empleado Nom_Emple Apell_Emple Puesto_Emple
  • 31. Elementos del modelo. Atributo Se le llama ocurrencias a cada elemento del mundo real que la entidad representa. Ejemplo: EMPLEADO # Cod_Empleado Nom_Emple Apell_Emple Puesto_Emple Entidad Cod_Empleado Nom_Emple Apell_Emple Puesto_Emple 1 Arturo López Riaño Director 2 Ana Andrade Juárez Gerente 3 Juan Torres Sánchez Comercial 4 Rosa Valera Roca Comercial … … … … Ocurrencias
  • 32. Elementos del modelo. Atributo Existen dos tipos de atributos; los identificadores de la entidad y los descriptores de la entidad. Identificadores (o claves): identifican de forma univoca cada ocurrencia. Descriptores: no identifican de forma univoca cada ocurrencia. EMPLEADO # Cod_Empleado Nom_Emple Apell_Emple Puesto_Emple Nota: Para representar los identificadores o claves añadiremos el símbolo # delante del nombre del atributo (o la piruleta negra)
  • 33. Elementos del modelo. Atributo Las claves pueden estar compuestas de uno o más atributos. Ejemplos: EMPLEADO # Cod_Empleado Nom_Emple Apell_Emple Puesto_Emple SALA_CINE # Nom_Cine # Num_Sala Capacidad Tamaño_Pantalla
  • 34. Elementos del modelo. Relación: Es la representación de una asociación producida entre los objetos del mundo real. Notación: Grado de una relación El nº de entidades que participan en la relación: ALUMNO Estudia ASIGNATURA Nombre de la relación Grado de la relación Relaciones Unitarias o Reflexivas 1 Relaciones Binarias 2 Relaciones Ternarias 3 Relaciones N-arias N
  • 35. Elementos del modelo. Relación Ejemplos de grados: PERSONA Es hijo de ALUMNO Estudia ASIGNATURA EMPLEADO Realiza PROYECTO DEPARTAMENTO Relación unaria o reflexiva Relación ternaria Relación binaria
  • 36. Cardinalidad de una relación Número de ocurrencias que se pueden dar de una relación: con cuantas ocurrencias de B se puede relacionar A y con cuantas ocurrencias de A se puede relacionar B. R A B (cardinalidad) (cardinalidad)
  • 37. Ejemplo: Una persona puede comprar muchos autos y un auto es comprado por una sola persona. Una ocurrencia de A (Persona) se puede relacionar con muchas ocurrencias de B (Auto) y que una ocurrencia de B (Auto) se puede relacionar con sólo una ocurrencia de A (Persona). compra Persona Auto 1 N
  • 38. Cardinalidad 1-1: cada ocurrencia de una entidad se relaciona con una ocurrencia de otra entidad. Ej.: una persona posee un automóvil. compra Persona Auto 1 1
  • 39. Cardinalidad 1-N: también llamada uno a muchos. Cada ocurrencia de una entidad puede relacionarse con varias ocurrencias de otra entidad. Cardinalidad N-1: varias ocurrencias de una entidad pueden relacionarse con una de otra entidad. Ej.: una persona posee varios automóviles.
  • 40. Cardinalidad N-M: también llamada muchos a muchos. Cada ocurrencia de una entidad puede relacionarse con varias ocurrencias de otra entidad y viceversa. Una persona posee varios automóviles y un automóvil puede pertenecer a varias personas. compra Persona Auto M N
  • 41. Cardinalidad máxima de una relación: representa el número máximo de ocurrencias de una entidad con las que se puede relacionar otra ocurrencia de entidad. Ej.: una persona puede tener como máximo tres automóviles. Cardinalidad mínima de una relación: representa el número mínimo de ocurrencias de una entidad con las que se puede relacionar otra entidad. Ej.: un automóvil debe pertenecer como mínimo a una persona.
  • 42. R A B (mínimo, máximo) (mínimo, máximo) Una ocurrencia de A se relaciona con mínimo una ocurrencia de B y máximo varias ocurrencias de B, una ocurrencia de B se relaciona con mínimo una ocurrencia de A y máximo una ocurrencia de A.
  • 43. Aplicado a un ejemplo: Una persona puede comprar mínimo 1, máximo varios automóviles. Un auto puede ser comprado por mínimo 1 persona y máximo 1 persona. Se lee de izquierda a derecha y luego de derecha a izquierda (o al revés): Una persona compra uno o más autos, y un auto es comprado por sólo una persona. N ó M también se puede definir como un número entero específico compra Persona Auto (1,N) (1,1)
  • 44. Entidad débil Es débil cuando depende de otra para su existencia, sin la cual no tiene sentido. Sus atributos no la identifican completamente, sino que sólo la identifican de forma parcial. Debe participar en una relación que ayuda a identificarla: siempre debe haber una única interrelación que permita completar su identificación. Esta interrelación debe ser 1:N, y la entidad débil debe estar en el lado N. Si se elimina una ocurrencia de la entidad fuerte, se debe eliminar las ocurrencias de la entidad débil asociadas.
  • 45. Ejemplo: un libro tiene uno o más ejemplares, y un ejemplar es de solo un libro. El ejemplar en si no dice mucho semánticamente, solo podría saber algo mas de el sabiendo de que libro es el ejemplar. Por otro lado, si eliminamos un libro, desaparecen sus ejemplares. Entidad Débil tiene Libro Ejemplar (1,N) (1,1) Código Nombre Nr_hojas Editorial Número Estado Posición Ejemplar
  • 46. Generalización. Existe una jerarquía de tipos en la que se definen sucesivos niveles de subtipos que corresponden a un supertipo. El tipo de entidad vehículo es una generalización del tipo de bicicleta, ya que todas las bicicletas son vehículos. El tipo de entidad persona es una generalización de las entidades hombre y mujer.
  • 47. Persona Hombre Mujer • Son subtipos de la generalización o supertipo (Es_un o Es_parte_de).
  • 48. Herencia de atributos Los atributos de los supertipos son heredados por los subtipos. Cliente y empleado heredan los atributos de persona. Cliente se describe mediante C.I., nombre y ciudad y adicionalmente por el atributo dirección; empleado se describe mediante C.I, nombre y ciudad y adicionalmente por el atributo sueldo. Persona Nombre Cliente Empleado (p,s) Ciudad CI Sueldo Dirección
  • 49. Cobertura total o parcial Permite especificar una restricción entre el supertipo y sus subtipos, donde todos los elementos del supertipo deben pertenecer a alguno de sus subtipos (si es total), o no (si es parcial). Persona, hombre y mujer: cobertura es total (t) porque una persona puede ser u hombre o mujer. Supertipo empleado y los subtipos docente y administrativo, puede ser parcial (p), porque dentro de los empleados tb hay directivos.
  • 50. Cobertura exclusiva o superpuesta Permite especificar una restricción entre los subtipos, donde los elementos que pertenecen a un subtipo pueden pertenecer también a otro subtipo (si es superpuesto, (s)) o no (si es exclusiva (e)).
  • 51. Persona Hombre Mujer (t,e) Empleado Administrativo Docente (t,s) Estudiante Egresado Titulado (p,e) Estudiante Ingenieria Postgrado (p,s)
  • 52. Introducción El modelo relacional es hoy en día el que más extensamente se utiliza en aplicaciones comerciales. Es simple, flexible y se adapta fácilmente a todo tipo de requerimientos empresariales Este modelo da lugar a productos de SGBD de tipo relacional, tanto propietarios como GPL Los fundamentos de este modelo son sólidos: los enunció Codd en 1970 utilizando un lenguaje matemático basado en la teoría de conjuntos y las relaciones matemáticas A lo largo de este tema, procederemos al estudio de dichos fundamentos, así como a conocer toda la terminología asociada.
  • 53. Tablas y relaciones Una base de datos relacional consiste en una colección de tablas, divididas en filas horizontales y columnas verticales, con un nombre único. Cada fila de la tabla representa una relación entre un conjunto de valores (uno por columna) Se denomina atributo a cada uno de los componentes de una fila de una tabla. Son homogéneos en toda la tabla, esto es, toda la columna tiene idéntico tamaño y el mismo domino Se denomina dominio D de un atributo al conjunto de sus valores posibles. P. Ej, si un atributo es fecha nacimiento, su dominio lo constituirían todas las fechas válidas por sí mismas y/o en relación con una serie de restricciones posibles En terminología relacional, a las tablas se las denomina relación, y a las filas tupla
  • 54. Tablas y relaciones Por otra parte se denomina cardinalidad al número de tuplas que tiene una tabla y grado al número de sus columnas
  • 55. Base del modelo relacional Concepto de RELACIÓN Representación Atributo 1 Atributo 2 ... Atributo n xxx xxx ... xxx xxx xxx ... xxx ... ... ... ... xxx xxx ... xxx NOMBRE Tupla 1 Tupla 2 ... Tupla m Columnas  Representan las propiedades de las tablas Filas  Contienen los valores que toma cada atributo para cada relación Términos importantes en la estructura de datos relacional: • Relación  Corresponde con la idea general de tabla • Tupla  Corresponde con una fila • Atributo  Corresponde con una columna • Cardinalidad  Número de tuplas (m) • Grado  Número de atributos (n) • Clave primaria  Identificador único (no hay dos tuplas con igual identificador) • Dominio  Colección de valores de los cuales el atributo obtiene su valor Presentación realizada por Ariadna Fuertes. Departamento de Informática. Universidad de Valencia
  • 56. Persona DNI Nombre Apellidos Dirección Teléfono Nacimiento 14.167.654 Alberto Gómez Martínez Pedrones, 4 963787878 23/02/1958 64.237.935 Luisa Ripoll Albert Denia, 64 963573895 12/06/1963 45.126.579 José Luis Pérez Cerdán Escandinavia, 12 963873333 12/06/1963 67.677.887 Andrea Martínez Zanón Poeta Más Gil, 37 963772564 10/02/1965 Tupla Atributos 1 2 3 4 1 2 3 4 5 6 Clave primaria  DNI Dominios: nombre, apellidos, dirección  texto DNI  entero teléfono  entero de 9 dígitos Nacimiento  fecha Cardinalidad 4 4 Grado 6 6 • Ejemplo de relación Presentación realizada por Ariadna Fuertes. Departamento de Informática. Universidad de Valencia
  • 57. Tablas y relaciones Se exige, además, que para todas las relaciones los dominios de todos los atributos sean atómicos, esto es, indivisibles Por otra parte, es posible que varios atributos tengan el mismo dominio, p. ej. el atributo fecha nacimiento de un empleado y fecha ingreso en la empresa Existe un valor especial que forma parte de todos los dominios, el valor nulo, que indica desconocido o inexistente. P. ej. si un empleado no tiene teléfono, el valor de este atributo sería nulo. No hay que confundir en atributos numéricos el valor nulo con el 0, pues semántica y operacionalmente son cosas diferentes
  • 58. Claves Se denomina clave de una relación al atributo o grupo de atributos que identifica de manera unívoca a una de sus tuplas, esto es, debe tener un valor único diferenciado para cada una Este es uno de los conceptos fundamentales que articulan el modelo relacional, por lo que la identificación y elección de claves es crítica en el modelo Se denomina clave candidata a cualquier atributo o conjunto mínimo de atributos que cumple el requisito anterior. Si en una relación hay varias candidatas, habrá que decidir con cual nos quedamos. La elegida pasará a denominarse clave primaria, o simplemente clave Suelen preferirse las claves cortas y a ser posible numéricas para evitar problemas de identificación mayúsculas/minúsculas y que además no cambien de valor casi nunca
  • 59. Claves LLAVE PRIMARIA Un clave primaria es un campo o grupo de campos que identifica en forma única un registro. Ningún otro registro puede tener la misma clave primaria. La clave primaria se utiliza por distinguir registro con el fin de que se pueda tener acceso a ellos, organizarlos y manipularlos. En el caso del registro de una empleado, él numero de este representa un ejemplo de una clave primaria. Sirve para hacer relaciones ( uno a uno, uno a muchos, muchos a muchos entre tablas, sin las llaves primaria las bases de dato relacionales no tendrían sentido y siempre existiría información repetida.
  • 60. Claves LLAVE FORANEA Una clave foránea (o Foreign Key FK) es una limitación referencial entre dos tablas. La clave foránea identifica una columna o grupo de columnas en una tabla (tabla hija o referendo) que se refiere a una columna o grupo de columnas en otra tabla (tabla maestra o referenciada). Las columnas en la tabla referendo deben ser la clave primaria u otra clave candidata en la tabla referenciada. Es uno o mas campos de un tabla que hacen referencia al campo o campos de llave principal de otra tabla, una llave foranea indica como esta relacionadas las tablas. Los datos en los campos de ambas deben coincidir, aunque los nombres de los campos no sean los mismos.
  • 61. Claves La diferencia es sencilla: la clave primaria identifica un registro único de una tabla. La clave foránea relaciona los datos de un registro de una tabla con los de otra, o con un registro distinto de la misma tabla.
  • 62. BASE DE DATOS – ACI253 Definición modelo relacional El modelo relacional de datos supuso un gran avance con respecto a los modelos anteriores. Este modelo está basado en el concepto de relación. Una relación es un conjunto de n-tuplas. Una tupla, al contrario que un segmento, puede representar tanto entidades como interrelaciones N:M. Los lenguajes matemáticos sobre los que se asienta el modelo relacional, aportan un sistema de acceso y consultas orientado al conjunto. El concepto de atomicidad es relevante especialmente en el campo de las bases de datos. Que un elemento sea atómico implica que no puede ser descompuesto en partes más pequeñas. Profesor Rodrigo Cabello S
  • 63. BASE DE DATOS – ACI253 modelo relacional En este modelo la base de datos es vista por el usuario como una relación de tablas. Cada fila de la tabla es un registro o tupla y los atributos con columnas o campos. Profesor Rodrigo Cabello S
  • 64. BASE DE DATOS – ACI253 modelo relacional Relación: Película (título, año, duración) Profesor Rodrigo Cabello S
  • 65. BASE DE DATOS – ACI253 modelo relacional Relación= Conjunto ordenado de n ocurrencias Atributos= Campos de una tabla, propiedades de las entidades Dominio= Conjunto donde los atributos toman valores Tupla= Fila de una tabla Grado de una relación= Numero de atributos o columnas Cardinalidad= Numero de filas o tuplas de una relación Profesor Rodrigo Cabello S
  • 66. BASE DE DATOS – ACI253 modelo relacional Para dar una definición más adecuada desde el punto de vista de las bases de datos, es preciso distinguir dos conceptos en la definición de la relación: Esquema de relación: es la parte definitoria y estática de la relación (cabecera cuando la relación se percibe como una tabla). Es invariante en el tiempo. Extensión de la relación: conjunto de tuplas que, en un momento determinado, satisface el esquema de la relación y se encuentran almacenadas en la base de datos. Es variante en el tiempo. Profesor Rodrigo Cabello S
  • 67. BASE DE DATOS – ACI253 modelo relacional Clave primaria= Es un conjunto de atributos que identifica a cada tupla de una relación y además no hay un subconjunto de ellos que cumplan esa propiedad. Clave foránea= Es un conjunto de atributos de una tabla que son clave primaria en otra tabla Profesor Rodrigo Cabello S
  • 68. BASE DE DATOS – ACI253 Restricciones al modelo No puede haber dos tuplas iguales en una misma relación El orden de las tuplas no es significativo El orden de los atributos no es significativo Profesor Rodrigo Cabello S
  • 69. BASE DE DATOS – ACI253 Restricciones de integridad Integridad de la Entidad: Ninguna componente de la clave primaria puede tomar valores nulos o desconocidos, porque entonces no se podrían distinguir dos entidades. Integridad Referencial: Cualquier valor que tome un atributo en una relación del que es clave foránea, debe existir en la relación del que es clave primaria. Profesor Rodrigo Cabello S
  • 70. BASE DE DATOS – ACI253 Restricciones de integridad Integridad de la Entidad: Ninguna componente de la clave primaria puede tomar valores nulos o desconocidos, porque entonces no se podrían distinguir dos entidades. Integridad Referencial: Cualquier valor que tome un atributo en una relación del que es clave foránea, debe existir en la relación del que es clave primaria. Profesor Rodrigo Cabello S
  • 71. BASE DE DATOS – ACI253 Restricciones de integridad Conversión del modelo conceptual al modelo relacional: Conversión de Entidades: Cada entidad de diagrama Entidad/Relación se transforma directamente en una tabla. Los atributos de la entidad pasan a ser automáticamente las columnas de la tabla. Profesor Rodrigo Cabello S
  • 72. BASE DE DATOS – ACI253 Restricciones de integridad Conversión del modelo conceptual al modelo relacional: Conversión de Relaciones: Cada relación de un diagrama Entidad/Relación se transforma directamente en una tabla. Los campos de esta tabla son las claves primarias de todas las entidades que participen en la relación más todos aquellos atributos que pudiera tener la relación. Profesor Rodrigo Cabello S
  • 73. BASE DE DATOS – ACI253 Restricciones de integridad Conversión del modelo conceptual al modelo relacional: Simplificación del modelo relacional: Los atributos que formaban parte de la tabla pasan a formar parte de la tabla que representa la entidad con cardinalidad “varios”. Asimismo, si la relación tuviera atributos propios, también pasarían a la tabla que representa la entidad con cardinalidad “varios”. Profesor Rodrigo Cabello S
  • 74. BASE DE DATOS – ACI253 Conversión del modelo conceptual al modelo relacional: Simplificación del modelo relacional: El número de relaciones que componen la base de datos debe mantenerse en el mínimo posible. Esto mismo es aplicable a las relaciones binarias con cardinalidad uno a uno, puesto que son un caso particular de las anteriores. Las tablas con un único atributo se pueden eliminar. Profesor Rodrigo Cabello S
  • 75. BASE DE DATOS – ACI253 Conversión del modelo conceptual al modelo relacional: Profesor Rodrigo Cabello S
  • 76. BASE DE DATOS – ACI253 Conversión del modelo conceptual al modelo relacional: Profesor Rodrigo Cabello S
  • 77. BASE DE DATOS – ACI253 Conversión del modelo conceptual al modelo relacional: Profesor Rodrigo Cabello S
  • 78. BASE DE DATOS – ACI253 Profesor Rodrigo Cabello S
  • 79. BASE DE DATOS – ACI253 12 reglas de Codd Hace algunas décadas existían bases de datos que se decían ser relacionales. Sin embargo, carecían de características consideradas importantes en una base de datos relacional, tal como la normalización. Fue entonces, cuando en 1984 Edgar F. Codd propuso una serie de 12 reglas que contenían las características que debía contener un verdadero Sistema Gestor de Base de Datos para ser auténticamente relacional. La medida en que un SGBD puede ser considerado como relacional está en el número de reglas que cumpla, aunque realmente es complicado llevarlas a la práctica. Profesor Rodrigo Cabello S
  • 80. BASE DE DATOS – ACI253 12 reglas de Codd Regla 0 El sistema debe ser relacional, base de datos y administrador de sistemas. Ese sistema de utilizar sus facilidades relacionales (exclusivamente), para manejar la base de datos. Regla 1. Representación de la información Toda la información en la Base de datos es representada de forma explícita y única a nivel lógico, por medio de valores en columnas y filas de tablas. Clientes Profesor Rodrigo Cabello S idClientes nombreCliente appCliente apmCliente 6234 Carlos Rodríguez Gutiérrez 6235 Diana Velázquez Sánchez 6232 Erika García Catillo
  • 81. BASE DE DATOS – ACI253 12 reglas de Codd Regla 2. Acceso garantizado Todo dato (valor atómico) debe ser accesible mediante una combinación de tabla, un valor de su clave y el nombre de una columna. Materia prima Profesor Rodrigo Cabello S idMatPrima nombreMatprima Cantidad 1024 Botón Figura 150 1025 Botón chico 200 1026 Botón Grande 180
  • 82. BASE DE DATOS – ACI253 12 reglas de Codd Regla 3. Tratamiento sistemático de valores nulos. El SGBD debe soportar la representación y manipulación de información desconocida y/o no aplicable, independientemente del tipo de dato. Empleados Profesor Rodrigo Cabello S idEmpleado nombreEmpleado appEmpleado email 6234 Carlos Rodríguez carlos@gmail.com 6235 Diana Velázquez Null 6236 Erika García garcia@live.cl
  • 83. BASE DE DATOS – ACI253 12 reglas de Codd Regla 4. Catálogo en línea (diccionario de datos) Basado en el modelo relacional, la descripción de la base de datos se debe representar en el nivel lógico de la misma manera que los datos ordinarios, de forma que los usuarios autorizados puedan consultarla con el mismo lenguaje con el que consultan los datos. Medicamento Profesor Rodrigo Cabello S idMedicamento nombreMedicamento formulaMedicamento tipo 1342 KYG Clorfenamina Pastilla
  • 84. BASE DE DATOS – ACI253 12 reglas de Codd Profesor Rodrigo Cabello S Atributo Descripción Tipo PK Null idMedicamento Identificador del Medicamento INT Si No nombreMedicamento Nombre comercial del medicamento VARCHAR(15) No No formulaMedicamento Nombre del ingrediente activo del medicamento VARCHAR(20) No No tipo Forma fisica del medicamento No No
  • 85. BASE DE DATOS – ACI253 12 reglas de Codd Regla 5. Sublenguaje de datos completos. El SGBD debe soportar al menos un lenguaje relacional: a) con sintaxis lineal. b) que pueda ser usado interactivamente o en programas (embebido). c) con soporte para operaciones de: definición de datos (p.e. declaración de vistas). manipulación de datos (p.e. recuperación y modificación de tuplas). restricciones de seguridad e integridad. gestión de transacciones. Profesor Rodrigo Cabello S
  • 86. BASE DE DATOS – ACI253 12 reglas de Codd Regla 6. Actualización de vistas. Todas las vistas teóricamente actualizables deben poder serlo en la práctica. Ejemplo: Vistas simples, vistas complejas, vista estándar, vista indizada, vista con particiones Profesor Rodrigo Cabello S
  • 87. BASE DE DATOS – ACI253 12 reglas de Codd Regla 7. Inserción, modificación y borrado de tuplas de alto nivel Todas las operaciones de manipulación de datos deben operar sobre conjuntos de filas Profesor Rodrigo Cabello S Nombre Apaterno Amaterno Miguel Sánchez Soto Diana Silva Pavez Ignacio Pérez Cornejo Nombre Apaterno Amaterno Miguel Sanchez Soto Diana Silva Pavez
  • 88. BASE DE DATOS – ACI253 12 reglas de Codd Regla 8. Independencia física de los datos Cambios en los métodos de acceso físico o la forma de almacenamiento no deben afectar al acceso lógico a los datos EJEMPLO: Por las necesidades de la base de datos de la biblioteca municipal, se le desea agregar un campo destinado para guardar el número de veces que se ha prestado cada libro, este dato, para el bibliotecario al realizar algún préstamo es irrelevante, ya que esta información servirá solamente para adquirir más títulos del ejemplar más solicitado, entonces, en la interfaz de la base de datos, este campo seguirá siendo invisible para el usuario, es decir, el hecho de que ya se encuentre almacenado no afectará la lógica de la interfaz. Profesor Rodrigo Cabello S
  • 89. BASE DE DATOS – ACI253 12 reglas de Codd Regla 9.Independencia lógica de los datos Los programas de aplicación no deben ser afectados por cambios en las tablas que preservan la integridad. Regla 10. Independencia de la integridad Las restricciones de integridad deben estar separadas de los programas, almacenadas en el catálogo de la BD para ser editadas mediante un sublenguaje de datos. Ejemplo: Las reglas de integridad combinadas aseguran que haya integridad referencial. • Ningún componente de una clave primaria puede tener valores en blanco o nulos (esta es la norma básica de integridad). • Para cada valor de clave foránea deberá existir un valor de clave primaria concordante. Profesor Rodrigo Cabello S
  • 90. BASE DE DATOS – ACI253 12 reglas de Codd Regla11. Independencia de la distribución Las aplicaciones no deben verse afectadas al distribuir (dividir entre varias máquinas), o al cambiar la distribución ya existente de la Base de Datos. Profesor Rodrigo Cabello S Base de datos
  • 91. BASE DE DATOS – ACI253 12 reglas de Codd Regla 12. Regla de no subversión Si el sistema posee un interfaz de bajo nivel, éste no puede utilizarse para saltarse las reglas de integridad y las restricciones expresadas por medio de un lenguaje de más alto nivel. Ejemplo: 1. Si un sistema relacional tiene un (solo registro a la vez) de bajo nivel de lenguaje, ese bajo nivel no puede ser utilizado para subvertir o pasar por alto las reglas de integridad y las limitaciones expresadas en el lenguaje relacional de alto nivel (varios registros a la vez). 2. Algunos productos solamente construyen una interfaz relacional para sus bases de datos no relacionales, lo que hace posible la subversión de las restricciones de integridad. Esto no debe ser permitido. Profesor Rodrigo Cabello S
  • 92. BASE DE DATOS – ACI253 Normalización La diferencia que existe entre los datos Normalizados en primera forma normal (1FN) y el universo de datos no normalizado: El universo de datos no normalizado se refiere al conjunto de datos que están reunidos bajo un criterio en común, estos datos son una gran cantidad de información desorganizada y, en algunos casos, compleja para su análisis u otros usos, ya que tiene un albedrio de información, y en ello encontraremos muchas inconsistencias o ¨defectos¨, como las siguientes: Ø La REDUNDANCIA de datos Ø ERRORES DE ACTUALIZACIÓN de datos. Ø FALTA DE INTEGRIDAD E INCONSISTENCIA en los datos. Profesor Rodrigo Cabello S
  • 93. BASE DE DATOS – ACI253 Normalización En relación a tablas no normalizadas (cuando almacenamos información no normalizada): Ø Repetición de nombres de cada tabla. Ø Presencia de dos filas iguales. Ø Los datos de una misma columna de un mismo tipo. Ø De inserción: imposibilidad de adicionar datos en la BD por la ausencia de otros. Ø De borrado: pérdida no intencionada de datos debido a la eliminación de otros. Profesor Rodrigo Cabello S
  • 94. BASE DE DATOS – ACI253 Normalización En cambio, cuando tenemos los datos organizados bajo ciertos criterios, como la Primera Forma Normal (1FN), se debe cumplir con lo siguiente: Una relación R se encuentra en 1FN si y solo sí por cada renglón columna contiene valores atómicos. Las celdas de las tablas poseen valores simples y no se permiten grupos ni arreglos repetidos como valores, es decir, contienen un solo valor por cada celda. Todos los ingresos en cualquier columna (atributo) deben ser del mismo tipo. Cada columna debe tener un nombre único, el orden de las columnas en la tabla no es importante. Dos filas o renglones de una misma tabla no deben ser idénticas, aunque el orden de las filas no es importante. Profesor Rodrigo Cabello S
  • 95. BASE DE DATOS – ACI253 Normalización Profesor Rodrigo Cabello S
  • 96. BASE DE DATOS – ACI253 Normalización Profesor Rodrigo Cabello S
  • 97. BASE DE DATOS – ACI253 Normalización Profesor Rodrigo Cabello S
  • 98. BASE DE DATOS – ACI253 Normalización Profesor Rodrigo Cabello S
  • 99. BASE DE DATOS – ACI253 Normalización Profesor Rodrigo Cabello S
  • 100. BASE DE DATOS – ACI253 Normalización Segunda Forma Normal (2FN) Para lograr la segunda forma normal (2FN) es necesario primero lograr la primera forma normal (1FN). Una vez que se logre, todos los atributos no claves deben depender de toda la clave primaria, en otras palabras deben estar en dependencia funcional completa (DFC) . Si no se cumple, se debe separar en diferentes tablas para que cumplan este requisito Profesor Rodrigo Cabello S
  • 101. BASE DE DATOS – ACI253 Normalización 2DA FORMA NORMAL Ejemplo.- 1 Profesor Rodrigo Cabello S
  • 102. BASE DE DATOS – ACI253 Normalización 2DA FORMA NORMAL Ejemplo.- 2 Profesor Rodrigo Cabello S
  • 103. BASE DE DATOS – ACI253 Normalización 2DA FORMA NORMAL Ejemplo.- 3 Profesor Rodrigo Cabello S
  • 104. BASE DE DATOS – ACI253 Normalización 2DA FORMA NORMAL Ejemplo.- 4 Profesor Rodrigo Cabello S
  • 105. BASE DE DATOS – ACI253 Normalización 2DA FORMA NORMAL Ejemplo.- 4 Profesor Rodrigo Cabello S
  • 106. BASE DE DATOS – ACI253 Normalización 2DA FORMA NORMAL Ejemplo.- 6 Profesor Rodrigo Cabello S
  • 107. BASE DE DATOS – ACI253 Normalización Tercera Forma Normal (3FN) La Tercera Forma Normal (3FN), consiste en que ningún atributo dato. que depende de la PK, dependa de otro atributo dato. Es decir, no debe tener DEPENDENCIA TRANSITIVA. Hacemos la siguiente analogía. Para que los Datos estén en 3FN, deben estar en 2FN y NO DEBEN tener Dependencia Transitiva DT. X ---> Y --->Z Profesor Rodrigo Cabello S
  • 108. BASE DE DATOS – ACI253 Normalización 3RA FORMA NORMAL Ejemplo.- 1 Profesor Rodrigo Cabello S En este cuadro, tendríamos como Clave Primaria al C_Evento y los demás atributos dependen de la PK. Sin embargo, vemos que la Dirección del local T_Dirección depende del nombre del Local donde se realiza el evento. Para resolver este problema y tener un mejor almacenamiento de datos, la 3FN hace que creemos una 2da tabla haciendo PK al Nombre del local teniendo como atributo dato a la Dirección.
  • 109. BASE DE DATOS – ACI253 Normalización 3RA FORMA NORMAL Ejemplo.- 2 Profesor Rodrigo Cabello S
  • 110. BASE DE DATOS – ACI253 Normalización 3RA FORMA NORMAL Ejemplo.- 3 Con la 3FN quedaría así Profesor Rodrigo Cabello S
  • 111. BASE DE DATOS – ACI253 Normalización 3RA FORMA NORMAL Ejemplo.- 4 Profesor Rodrigo Cabello S
  • 112. BASE DE DATOS – ACI253 SQL ¿Qué significa SQL? ¿Qué es el SQL? Profesor Rodrigo Cabello S
  • 113. BASE DE DATOS – ACI253 SQL Ingles Español Profesor Rodrigo Cabello S Significado de SQL Structured Query Language Lenguaje Estructurado de Consultas
  • 114. BASE DE DATOS – ACI253 SQL Profesor Rodrigo Cabello S
  • 115. BASE DE DATOS – ACI253 SQL ¿Qué es SQL? Es un lenguaje de consulta y programación de bases de datos utilizado para la organización, acceso, consulta y gestión de bases de datos relacionales. Profesor Rodrigo Cabello S Aplicación del Cliente API’s de la BD (OLEDB, ODBC, Microsoft Jet, etc.) Librería de Autentificación del Cliente Database Management System (SGBD) Validación de Permisos Datos Solicitud SQL Cliente Server
  • 116. BASE DE DATOS – ACI253 SQL Funciones Principales de SQL en un SGBD • Definición de Datos • Estructura de la BD • Organización de Datos • Relaciones • Recuperación de Datos • Extracción de Datos • Manipulación de Datos • Permite la inserción, eliminación, modificación y actualización de los datos. • Control de Acceso • Control sobre los Permisos en los datos • Compartimiento de Datos • Coordina el acceso y la compartición de datos entre varios usuarios. • Integridad de Datos • Protege la BD de deterioros o errores causados por el sistema Profesor Rodrigo Cabello S
  • 117. BASE DE DATOS – ACI253 SQL Transacciones-SQL Las transacciones son comandos universales SQL que permiten realizar petició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. Profesor Rodrigo Cabello S
  • 118. BASE DE DATOS – ACI253 SQL Al realizar transacciones o instrucciones SQL se llegan a utilizar ciertos elementos que forman parte del uso del SQL como lo son: • Los Nombres y Alias • Batches • Comentarios • Tipos de Datos • Variables • Operadores • Funciones Profesor Rodrigo Cabello S
  • 119. BASE DE DATOS – ACI253 SQL Nombres y Alias Cuando se escriben declaraciones de SQL, se utilizan nombres para referirse a bases de datos, tablas, columnas o sentencias reservadas de SQL. Pero también es posible crear alias los cuales funcionan como sinó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 espacios en blanco se deberá colocar el nombre entre [ ] o entre ‘’. Profesor Rodrigo Cabello S Ejemplo: SELECT Nombre,[Fecha de Nacimiento] FROM Empleados
  • 120. BASE DE DATOS – ACI253 SQL Batches Un Batche esta formado por un conjunto de sentencias o transacciones SQL. GO Mediante la palabra GO, SQL marca el final de un batche y es enviado a procesar al Servidor de SQL. Profesor Rodrigo Cabello S Ejemplo: Use Northwind SELECT * FROM Productname GO
  • 121. BASE DE DATOS – ACI253 SQL Comentarios • Los comentarios son cadenas de texto que no son tomados en cuenta durante la ejecución de sentencias. • Existen 2 formas de colocar comentarios en SQL: Comentarios por Línea Para colocar un comentario en una línea, se deben colocar 2 (--) guiones antes del comentario, ya que SQL ignora todo el texto que se encuentre a la derecha de los guiones. Profesor Rodrigo Cabello S Ejemplo: Use Ventas - - utiliza la BD Ventas SELECT * - - Selecciona todos los registros FROM Pedidos - - de la tabla pedidos Go
  • 122. BASE DE DATOS – ACI253 SQL Comentarios Comentarios de Bloque Para generar un bloque de varias líneas de comentarios se utiliza los caracteres (/*) para marcar el inicio del comentario y los caracteres (*/) para finalizar el comentario Profesor Rodrigo Cabello S Ejemplo: /* Este es un bloque de varias líneas que termina precisamente aquí */
  • 123. BASE DE DATOS – ACI253 SQL Tipos de Datos Profesor Rodrigo Cabello S
  • 124. BASE DE DATOS – ACI253 SQL Variables Dentro de SQL se pueden definir variables para almacenar valores temporales. Todas las variables deben iniciar con el símbolo @ Declaración de variables Asignar valor a variables Devolver el valor de las variables Profesor Rodrigo Cabello S 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
  • 125. BASE DE DATOS – ACI253 SQL Operadores Tipos de Operadores • Aritméticos + - * / ^ • Comparación > < <> = >= <= • Concatenación + • Lógicos And Or Not Profesor Rodrigo Cabello S
  • 126. BASE DE DATOS – ACI253 SQL Funciones Profesor Rodrigo Cabello S
  • 127. BASE DE DATOS – ACI253 SQL Transacciones DDL Son instrucciones que controlan la estructura de una BD con las cuales 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 Profesor Rodrigo Cabello S
  • 128. BASE DE DATOS – ACI253 SQL Crear una Base de Datos (CREATE) Comando T-SQL: CREATE DATABASE Sintaxis: CREATE DATABASE [Nombre de BD] Profesor Rodrigo Cabello S Ejemplo: create database cursosql; use cursosql go
  • 129. BASE DE DATOS – ACI253 SQL Utilizar una BD Para realizar una acción dentro de una Base de Datos, primero hay que decirle a SGBD que queremos trabajar con esa Base de Datos, para esto se utiliza el siguiente comando Sentencia SQL: USE Sintaxis: USE Nombre de la BD Profesor Rodrigo Cabello S Ejemplo: USE Animales
  • 130. BASE DE DATOS – ACI253 SQL Creación de una Tabla 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 de Datos Char y Varchar. Profesor Rodrigo Cabello S Ejemplo 1: CREATE TABLE MiTabla ( Matricula INT, Nombre VARCHAR(15), Edad INT )
  • 131. BASE DE DATOS – ACI253 SQL Valores Ausentes y Valores Predeterminados • Al momento de definir cada una de las columnas es posible determinar si el campo va a permitir valores nulos o no. • Es posible definir para cada columna en caso de ser necesario, una valor que funcione como predeterminado al momento de ingresar registros a la tabla. Profesor Rodrigo Cabello S 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)
  • 132. BASE DE DATOS – ACI253 SQL Eliminación de una Tabla • Es posible eliminar una tabla de la base de datos, es importante considerar que al momento de que la tabla es eliminada todos los registros almacenados en dicha tabla, también serán eliminados. • Al eliminar una tabla debe considerar si esta no se encuentra relacionada con alguna otra tabla, en caso de que así sea, la integridad en las relaciones se vera afectada. Profesor Rodrigo Cabello S DROP TABLE nombre_tabla
  • 133. BASE DE DATOS – ACI253 SQL Modificación de una Tabla En ocasiones será necesario alterar la definición de la estructura las tablas, por lo que será posible modificar la tabla en los siguientes aspectos: • Cambiar el tipo de datos para las columnas • Establecer valores nulos o no para las columnas • Especificar valores predeterminados • Agregar columnas • Eliminar columnas Profesor Rodrigo Cabello S
  • 134. BASE DE DATOS – ACI253 SQL Modificación de una Tabla Profesor Rodrigo Cabello S ALTER TABLE MITABLA alter column matricula varchar(15) ALTER TABLE nombre_tabla ADD nueva_columna tipo_datos ALTER TABLE nombre_tabla DROP COLUMN nombre_columna
  • 135. BASE DE DATOS – ACI253 SQL Asignar Alias a los Campos • Es posible que al momento de que muestre el resultado de la consulta, los nombres de los campos sean distintos. • Lo anterior es útil cuando los nombres de los campos no son muy representativos para los usuarios finales. • La asignación del Alias se hace a través de la cláusula AS seguido del nombre del alias o sobrenombre que se quiera asignar. Profesor Rodrigo Cabello S SELECT idproducto AS [Código Producto], nombreproducto AS Producto from productos
  • 136. BASE DE DATOS – ACI253 SQL Profesor Rodrigo Cabello S
  • 137. BASE DE DATOS – ACI253 SQL Profesor Rodrigo Cabello S
  • 138. BASE DE DATOS – ACI253 SQL Profesor Rodrigo Cabello S