00:00:04
un sistema gestor de bases de datos está
00:00:07
formado por una base de datos que es una
00:00:09
colección de datos sobre un ente
00:00:11
particular por ejemplo los datos de una
00:00:13
empresa o de una organización o datos
00:00:15
sobre un tema concreto
00:00:17
también tenemos programas es decir
00:00:19
software que sirve para acceder y
00:00:21
manipular esos datos para mantenerlos y
00:00:24
para conservarlos adecuadamente
00:00:27
disponibles para las personas que tengan
00:00:29
permiso para ello también a veces se
00:00:32
consideran otros elementos tales como
00:00:34
hardware y usuarios
00:00:36
los sistemas gestores de bases de datos
00:00:38
surgen a mediados de los años 60 para
00:00:40
mejorar el sistema de procesamiento de
00:00:42
archivos que hasta entonces se utilizaba
00:00:44
para almacenar datos es decir los
00:00:46
sistemas gestores de bases de datos
00:00:48
permiten tener ventajas con respecto a
00:00:52
los sistemas anteriores estas ventajas
00:00:54
son muy diversas podemos sintetizar las
00:00:57
entre el grupo que la información sea
00:00:59
una información integrada es decir que
00:01:01
los archivos estén unificados con
00:01:03
respecto al formato y se evitan la
00:01:05
redundancia es decir datos repetidos
00:01:07
también se evitan datos contradictorios
00:01:09
se mejoran los accesos y se se consigue
00:01:13
que los datos puedan estar en distintos
00:01:16
ordenadores
00:01:17
esto es lo que se conoce como base de
00:01:19
datos distribuidas
00:01:21
además también la información puede ser
00:01:23
compartida es decir que se puede
00:01:24
utilizar la misma información por varios
00:01:27
usuarios a la vez desde distintos
00:01:29
lugares este tipo de accesos se llaman
00:01:31
accesos concurrentes es decir dos varios
00:01:33
varios accesos acceden al mismo dato a
00:01:37
la vez y el sistema gestor de base de
00:01:39
datos tiene que dar prioridad uno a
00:01:41
distintos usuarios o distintos procesos
00:01:44
por otra parte los sistemas gestores de
00:01:47
base de datos también permiten mejorar
00:01:49
los sistemas de seguridad o sea que la
00:01:53
información sólo sea visible y
00:01:54
modificable por aquellas personas o
00:01:57
procesos que tengan permiso el modelo de
00:01:59
datos relacional fue introducido por ted
00:02:02
code de ibm en el año 1970 y se basa en
00:02:06
con los conceptos matemáticos de
00:02:07
relación matemática historia de
00:02:09
conjuntos y en la lógica de predicados
00:02:11
del primero en definitiva una base de
00:02:14
datos relacional bd-r es un conjunto de
00:02:17
relaciones o tablas una relación o tabla
00:02:20
es una lista de valores una lista de
00:02:22
filas con un nombre concreto por ejemplo
00:02:24
aquí a la derecha vemos una tabla que se
00:02:26
llama tabla personas cada fila
00:02:29
corresponde a una persona y almacenamos
00:02:31
de una persona los datos de nombre
00:02:33
altura y peso o sea una fila o tu plan
00:02:38
es un hecho que corresponde a una
00:02:40
entidad del mundo real con o sin
00:02:43
repetición
00:02:45
o sea una misma persona podría estar
00:02:47
repetida en el ejemplo anterior
00:02:49
además una columna o atributo es un
00:02:53
valor relacionado con ese hecho que
00:02:55
estamos intentando almacenar y nos
00:02:57
referimos con un por columna a un dato
00:02:59
concreto por ejemplo la altura es una
00:03:02
columna que corresponde al dato altura
00:03:04
de cada una de las personas que
00:03:06
almacenamos en nuestra tabla todos los
00:03:09
valores de una columna son del mismo
00:03:10
tipo por ejemplo la altura es de tipo
00:03:12
real en cambio el nombre es una cadena
00:03:15
de caracteres y además todos los valores
00:03:18
aceptan a priori el valor nulo el valor
00:03:21
nulo para indicar ignorancia por ejemplo
00:03:24
si algún dato no lo sabemos pues podemos
00:03:26
poner null también puede significar otro
00:03:29
tipo de información por ejemplo que ese
00:03:30
dato no es que no lo sepamos si no
00:03:32
sencillamente que ese dato no existe
00:03:34
los valores y el dominio deben ser
00:03:36
autonómicos indivisible o sea que su
00:03:39
información es una información completa
00:03:41
por sí mismo la altura de una persona
00:03:43
puede ser 179 y s y la altura es 179
00:03:48
como datos completos además las tablas
00:03:51
tienen la característica de que no
00:03:52
existe un orden fijo entre las duplas
00:03:54
entre las filas mientras los atributos o
00:03:57
sea a la hora de visualizar una tabla se
00:04:00
puede visualizar las filas en un orden o
00:04:02
en otro y las columnas lo mismo se
00:04:06
conoce con el nombre de esquema de la
00:04:08
base de datos al diseño completo de la
00:04:10
base de datos a nivel conceptual o sea
00:04:12
los datos que se almacenan en la base de
00:04:14
datos las relaciones que hay entre esos
00:04:16
datos y las restricciones básicas por
00:04:18
ejemplo si un atributo tiene que ser
00:04:20
mayor que 0 o entre 10 y 15 o algo así
00:04:23
una vez definido el esquema de una base
00:04:26
de datos lo normal es que ese esquema
00:04:27
sea bastante fijo por supuesto puede
00:04:29
cambiar pero lo normal es que no cambie
00:04:31
en cambio el contenido de la base de
00:04:34
datos sí que es muy normal que cambie en
00:04:37
el ejemplo que hemos visto antes de la
00:04:38
tabla personas
00:04:40
para cada persona nación amos nombre
00:04:42
altura y peso pues ese es el esquema de
00:04:45
la tabla ahora bien las personas que se
00:04:50
almacenan dentro de esa información ese
00:04:52
es el contenido de la base de datos
00:04:54
también se le puede llamar ejemplar o
00:04:56
instancia o estado dentro de esa tabla
00:05:00
por su parte el lenguaje sql es un
00:05:04
lenguaje de acceso y control de la base
00:05:07
de datos es un lenguaje muy potente y
00:05:09
hoy día se utiliza en prácticamente
00:05:11
todos los sistemas gestores de base de
00:05:13
datos es un lenguaje que permite
00:05:15
operaciones para por ejemplo crear
00:05:17
modificar y borrar los distintos
00:05:19
elementos del esquema de la base de
00:05:21
datos estos elementos serán
00:05:23
principalmente tablas cada tabla tendrá
00:05:25
sus distintas columnas y cada columna
00:05:27
tiene que tener su dominio y además sus
00:05:32
restricciones por ejemplo una tribuna
00:05:34
columna salario pues será de tipo
00:05:36
numérico y podemos ponerle la
00:05:38
restricción de que el salario sea mayor
00:05:39
que cero pero además de crear y
00:05:42
modificar
00:05:44
y dar las características de las tablas
00:05:46
también podemos dar las características
00:05:48
de otros objetos de la base de datos
00:05:51
tales como no los vamos a ver en este
00:05:54
curso pero podrían ser vistas trigger y
00:05:57
otros alimentos
00:05:59
por supuesto también se hay sentencias
00:06:01
para modificar la base de datos dentro
00:06:04
de la sentencia de modificación de la
00:06:06
base de datos encontramos tres
00:06:07
operaciones básicas que son insertar
00:06:10
datos nuevos o sea meter nuevos datos en
00:06:12
la tabla y eso se hace con la sentencia
00:06:14
insert de sql también se pueden borrar
00:06:17
datos y eso se hace con la sentencia de
00:06:20
lt con delete de sql
00:06:23
o sea que consiste en borrar filas de la
00:06:25
tabla y también se pueden modificar
00:06:27
datos a una regla que ya tiene unos
00:06:29
datos
00:06:30
yo puedo modificar uno o varios de esos
00:06:33
datos eso se hace con la sentencia
00:06:36
update o update de sql
00:06:39
por supuesto hay muchas más órdenes pero
00:06:41
no podemos dejar de comentar la
00:06:43
sentencia de consulta a la base de datos
00:06:45
que sea es la sentencia select la
00:06:48
sentencia se les permite ver los datos
00:06:50
que hay almacenados en la base de datos
00:06:52
podemos elegir qué datos queremos ver y
00:06:55
como queremos verlo o bien queremos ver
00:06:58
todos los datos que hay o bien solo un
00:07:00
plan cierta condición por ejemplo en la
00:07:02
tabla que hemos visto antes sobre
00:07:04
personas podemos estar interesado en
00:07:06
buscar las personas que pesen menos de
00:07:08
70 kilos esa consulta se haría con las
00:07:12
sentencias se les que hay abajo del
00:07:14
turno observe que pone el nombre osea
00:07:17
selecciona el nombre from persona es
00:07:22
decir de la tabla persona donde web el
00:07:26
peso es a menos que 70 o sea con estas
00:07:29
sencillas orden se les estamos
00:07:31
seleccionando sólo un atributo nombre de
00:07:34
la tabla persona pero de aquellas
00:07:36
personas que cumplan esa condición
00:07:38
la sentencia se le es bastante simple
00:07:41
para consultas simples como la que
00:07:42
acabamos de ver pero es muy potente y
00:07:44
permite hacer condiciones muy complejas
00:07:48
y por supuesto cuando lo quiero hacer
00:07:50
condiciones complejas las
00:07:52
las sentencias se leen no es tan simple
00:07:54
y de hecho hay auténticos expertos en
00:07:58
sql que saben cómo hacer consultas muy
00:08:01
complejas y las empresas por supuesto
00:08:03
están muy interesados en gente que
00:08:05
conozca y dominen el lenguaje sql con
00:08:09
profundidad el concepto de llave
00:08:11
primaria es muy importante en una base
00:08:14
de datos relacional es una llave
00:08:16
primaria es un conjunto de atributos
00:08:18
mínimos para el cual no se repite su
00:08:21
valor en distintas vías o sea esto
00:08:23
significa que es único para cada fila se
00:08:27
dice que es un contra tributos mínimo
00:08:29
porque no tiene atributos que se puedan
00:08:31
quitar es significa es un conjunto de
00:08:33
atributos que no se repite y que por lo
00:08:35
tanto con ese conjunto de atributos me
00:08:37
permite identificar cada una de las
00:08:39
filas de la tabla
00:08:41
una tabla puede tener varias llaves que
00:08:43
cumplan esta condición a todas ellas se
00:08:46
les llamaría entonces llaves candidatas
00:08:48
de entre todas las llaves candidatas se
00:08:50
elige una que sería la llave primaria en
00:08:52
la llave primaria es aquella llave
00:08:54
candidata que se elige como más
00:08:57
importante como las llaves o el conjunto
00:08:59
de atributos que nos va a permitir
00:09:01
identificar cada objeto las llaves
00:09:03
primarias o candidatas no pueden tomar
00:09:05
valores nulos la razón es muy sencilla
00:09:08
si la llave primaria por definición es
00:09:10
aquel conjunto de atributos que me
00:09:12
permite identificar cada fila de la
00:09:15
tabla si tiene valores nulos los valores
00:09:17
de los no me van a permitir identificar
00:09:18
bien con un ejemplo se va a ver mucho
00:09:21
mejor suponga que tengo una tabla con
00:09:24
los datos de estudiante por ejemplo el
00:09:26
esquema podría ser la tabla se llama
00:09:27
estudiante y tiene los atributos ni
00:09:30
nombre fecha de nacimiento dirección y
00:09:33
teléfono
00:09:34
el niño no se puede repetir entre
00:09:38
distintos estudiantes y por lo tanto ese
00:09:41
sería la llave primaria los demás
00:09:43
atributos no son llave primaria ni
00:09:46
cantidad por lo tanto así pueden
00:09:47
repetirse observe por ejemplo que hay
00:09:50
dos personas que tienen el mismo nombre
00:09:51
hay dos personas que tienen el nombre a
00:09:54
norte de pero son dos personas distintas
00:09:56
son dos estudiantes distintos porque sé
00:09:59
que son dos estudiantes distintos porque
00:10:00
el mío es diferente en realidad para
00:10:03
identificar cada estudiante utilizo el
00:10:04
nif no el nombre porque el nombre no me
00:10:07
permite identificar a cada estudiante
00:10:08
porque de hecho puede haber estudiantes
00:10:10
que se llamen igual por eso el concepto
00:10:13
de llave primaria es muy importante
00:10:14
porque me permite identificar de forma
00:10:16
unívoca cada fila de la tabla que estoy
00:10:20
tratando en este caso la tabla
00:10:21
estudiantes
00:10:22
suponga por ejemplo que el atributo de
00:10:25
teléfono no solo no puede repetirse sino
00:10:27
acá además es obligatorio saber el
00:10:29
teléfono de cada estudiante entonces en
00:10:32
ese caso el atributo teléfono sería una
00:10:34
vitalidad en este caso el atributo
00:10:37
teléfono no es llave candidata porque si
00:10:39
es si se fija observara que hay valores
00:10:41
nula y por lo tanto los teléfono no
00:10:45
pueden ser llave candidatas mi llave
00:10:47
primaria porque no las llaves primarias
00:10:50
no aceptan valores nulos el concepto de
00:10:53
llave externa está relacionado con el
00:10:55
concepto de llave primaria una llave
00:10:58
externa son atributos y en una tabla que
00:11:00
referencia a una llave primaria en otra
00:11:03
tabla o incluso en la misma la llave
00:11:05
externa sirve para enlazar una tabla con
00:11:07
otra y garantizar que los datos son
00:11:09
correctos veamos un ejemplo supongamos
00:11:12
que tenemos la tabla departamento de una
00:11:14
empresa en la cual tenemos los
00:11:16
siguientes atributos número de
00:11:18
departamento que es la llave primaria y
00:11:20
por eso aparece subrayado luego está el
00:11:22
nombre del departamento el nick del
00:11:25
director del departamento y la fecha de
00:11:27
inicio de ese departamento
00:11:28
observé que el inicio del director
00:11:31
una flecha que asocia ese ni con el min
00:11:35
del empleado en la tabla de empleado
00:11:38
esto significa que el mid del director
00:11:40
es una llave externa a la llave primaria
00:11:44
de la tabla empleado con esto significa
00:11:46
que el cni del director en el fondo es
00:11:49
un empleado
00:11:50
el director de un departamento es
00:11:53
empleado de nuestra empresa y por lo
00:11:54
tanto tiene que figurar en la tabla de
00:11:56
empleados la llave externa ni director
00:11:59
asegura que emite el director de un
00:12:02
departamento está en la lista de
00:12:04
empleados el concepto de llave externa
00:12:06
garantiza que en este caso no va a haber
00:12:09
un director del departamento que no sea
00:12:11
un empleado además en este ejemplo
00:12:15
tenemos otras llaves de externos vamos a
00:12:17
verlas en la tabla empleado tenemos como
00:12:20
primer atributo en el que hemos
00:12:21
comentado antes luego está el nombre del
00:12:23
empleado
00:12:24
la dirección del empleado el salario del
00:12:26
empleado y también el departamento al
00:12:29
que está adscrito ese empleado el
00:12:31
departamento al que está escrito un
00:12:33
empleado tiene que existir en la tabla
00:12:35
de departamentos o sea no puede ser que
00:12:38
un empleado esté adscrito a un
00:12:39
departamento que no exista el concepto
00:12:42
de llave externa aquí me garantiza que
00:12:44
todos los empleados van a estar
00:12:46
adscritos a departamentos que existen y
00:12:48
no a departamentos que no existen
00:12:51
además de la tabla de empleado observe
00:12:53
que tenemos el atributo nit supervisor
00:12:55
este significa que cada empleado puede
00:12:58
tener un supervisor este supervisor es a
00:13:02
su vez un empleado o sea dijese que esto
00:13:04
es una llave externa que se llama
00:13:06
recursiva porque el atributo llave
00:13:09
externa nick supervisor referencia a
00:13:12
otro atributo en la misma tabla esto de
00:13:15
llave externa recursiva no es muy
00:13:17
frecuente pero bueno en ciertos casos es
00:13:20
bastante útil veamos con este esquema
00:13:23
dos tablas de ejemplo para dejar más
00:13:26
claro qué significa esto
00:13:29
la tabla departamento observe que
00:13:31
tenemos dos departamentos 1
00:13:32
investigación y 2 el departamento de
00:13:35
personal por su parte la tabla empleado
00:13:38
tenemos tres empleados vemos que tenemos
00:13:41
el empleado ana pérez luego también otro
00:13:44
empleado que se llama también ana pérez
00:13:45
tres son dos empleados distintos porque
00:13:47
tiene distinto ni y luego también
00:13:50
tenemos otro empleado que se llama
00:13:51
fulano mental observe que los dos
00:13:55
primeros empleados los dos primeros ana
00:13:58
peres están adscritas al departamento 1
00:14:00
y el 2 respectivamente mientras que el
00:14:03
tercer empleado está escrito al
00:14:04
departamento 2 además el del supervisor
00:14:08
de los dos primeros empleados es nur que
00:14:10
significa este nulo significa que esos
00:14:13
dos empleados no tienen supervisor un
00:14:16
empleado no está obligado a tener
00:14:18
supervisor y en cambio el tercer
00:14:21
empleado sí que tienen su supervisor
00:14:24
además en la tabla de departamentos
00:14:26
podemos observar que el nyt el director
00:14:28
corresponde a dos empleados de la tabla
00:14:31
empleado o sea no se admitiría que él ni
00:14:34
del director haya un valor que sea falso
00:14:37
un valor que no corresponda al nyt de
00:14:39
ningún empleado
00:14:41
resumiendo la llave externa me garantiza
00:14:44
relacionar tablas o conceptos unos con
00:14:47
otros y me garantiza que los datos que
00:14:49
sean correctos
00:14:53
vamos a ver algunos de los sistemas
00:14:55
gestores de bases de datos más actuales
00:14:57
los que más se utilizan todos ellos usan
00:15:00
sql y son bases de datos relacionales
00:15:02
aunque algunos tienen características no
00:15:04
propiamente relacionales dentro de ellos
00:15:07
podemos distinguir dos tipos los
00:15:09
sistemas gestores de base a datos libres
00:15:10
gratuitos o de código abierto y los
00:15:12
comerciales entre los primeros
00:15:14
encontramos mysql mysql era un sistema
00:15:17
gestor de base de datos gratuitos pero
00:15:18
finalmente lo que acabó comprando por
00:15:20
aquí y ahora existen dos versiones una
00:15:23
gratuita y otra más completa de pago a
00:15:26
partir desde el compruebo oracle surgió
00:15:28
también maría db que es una derivación
00:15:30
de mysql totalmente gratis y con algunas
00:15:32
extensiones propios
00:15:35
por su parte pobre sql no es de una
00:15:37
empresa sino que está dirigido por una
00:15:39
comunidad de desarrolladores y de
00:15:40
organizaciones que trabajan de forma
00:15:42
altruista firebird es un sistema gestor
00:15:46
de base de datos con pocos requisitos
00:15:48
hardware está pensado para pequeñas
00:15:50
bases de datos
00:15:52
para ser ejecutado en ordenadores no muy
00:15:54
potentes además de estos tenemos los
00:15:56
sistemas gestores de base de datos
00:15:58
comerciales aunque algunos de estos
00:16:00
tienen versiones gratuitas con algunas
00:16:02
restricciones el primero que vamos a ver
00:16:04
es microsoft de este sistema gestor de
00:16:07
base de datos está incluido en el
00:16:08
paquete de microsoft office y es apto
00:16:10
para pequeñas empresas es fácil de usar
00:16:12
aunque no es muy potente si una empresa
00:16:15
necesita más potencia que ésta se tiene
00:16:19
que pasar al paquete de microsoft sql
00:16:21
server sql server es una alternativa
00:16:24
para grandes empresas es un sistema
00:16:26
gestor de base de datos bastante potente
00:16:28
y también bastante caro probablemente el
00:16:31
sistema que está devastada datos más
00:16:33
potentes y más completos del mercado sea
00:16:35
hoy en día oracle tiene una versión
00:16:37
gratuita para pequeñas empresas pero
00:16:40
tiene también ciertas restricciones