• No se han encontrado resultados

Introduccion a las bases de datos

N/A
N/A
Protected

Academic year: 2020

Share "Introduccion a las bases de datos"

Copied!
46
0
0

Texto completo

(1)

Introducción a las

bases de datos.

(2)

¿Qué vamos a ver?

● Introducción a las bases de datos.

● Administración de bases de datos.

● Implementación de bases de datos.

● Lenguaje SQL.

(3)

Introducción

● ¿Qué son las bases de datos?

(4)

¿Qué son las BBDD? (I)

● Colección de información

organizada y relacionada entre ella.

● Estructura similar a una matriz

(tabla) con filas (registros o entradas) y columnas (campos).

● La intersección de fila/columna

se llama celda.

● El tipo de información de un

(5)

¿Qué son las BBDD? (II)

Los valores que toman las celdas pertenecen

Campo

Registro

Celda

Atributo

(6)

¿Qué son las BBDD? (III)

● Conceptos básicos.

– Tabla, registro, campo, celda,

atributo, dominio...

– Relación: condición de los datos de

una base de datos.

– Clave primaria (primary key):

conjunto de atributos que identifican de forma única a cada tupla

(registro) en una relación.

– Clave externa (foreign key): clave

(7)

¿Qué son las BBDD? (IV)

IDProducto: clave primaria

IDProducto: clave externa DNI: clave primaria

Negrita: clave primaria Subrayado: clave externa

(8)

¿Qué son las BBDD? (V)

● Características importantes

– Principios:

● Coherencia de datos: no puede existir

datos contradictorios en la base de datos.

● Localidad: los datos no tienen porqué

residir en local. Pueden estar

distribuidas. Aparece el “gestor de la base de datos”.

– Operaciones sobre las bases de datos

● Modificación (inserción, borrado y

(9)

Gestores más conocidos

● Gestor: da transparencia al

(10)

Cómo empezar

● Introducción a las bases de datos.

● Administración de bases de datos.

● Implementación de bases de datos.

● Lenguaje SQL.

(11)

Administración

● Introducción.

● Creación de usuarios.

(12)

Introducción

● Todo programa informático

necesita de una administración.

● Aplicaciones, sistemas, web,

bases de datos, etc.

● Tarea consistente en creación de

usuarios, bases de datos, manejo de permisos de acceso...

● Cualquiera de estas operaciones

(13)

Administración de usuarios

● Hay que hacerlo desde el usuario

postgres.(1ª)

● Comando:

createuser [OPTION][USERNAME]

● Permisos para crear nuevas bases

de datos, nuevos usuarios...

● Acordarse de la contraseña

(opción -P)

(14)

Administración de BBDD

● Hay que hacerlo desde el usuario

postgres (1ª).

● Comando:

createdb [OPTION]...[DBNAME][DESCR]

● Base de datos que contiene todo

el conjunto de tablas.

● Por defecto se crea una base de

(15)

Continuamos con...

● Introducción a las bases de datos.

● Administración de bases de datos.

● Implementación de bases de datos.

● Lenguaje SQL.

(16)

Implementación.

● Introducción.

● Diagrama E/R.

– Entidades. – Relaciones.

● 1 a 1 (uno a uno)

● 1 a N (uno a muchos)

● M a N (muchos a muchos)

– Atributos.

● Diagrama relacional.

(17)

Introducción

● Se trata de “dibujar” el diseño de

la base de datos. Lenguaje gráfico estándar.

● Existen diferentes tipos de

diagramas.

● Perfecto para las personas a las

que le gusta la TIF “Teoría de Ideas Felices”.

● No existe un algoritmo, sólo

(18)

Diagramas E/R (I)

● Cajas como entidades y rombos con

flechas como relaciones.

● Entidades: Conjuntos de elementos

que “sufren” las acciones. “Sujeto”

● Relaciones: unen las entidades

entre sí. “Verbos”.

● Atributos: características

(19)

Entidades

Entidad Atributos

● Representación:

● La entidad como mínimo tiene que tener un

atributo, de lo contrario, no es entidad.

● Ya en este diagrama se especifican las

(20)

Relaciones (I)

● Existen diferentes representaciones

dependiendo del tipo de relación que tenga más sentido usar.

● La relación puede no tener atributos.

Depende de si existen o no características que varíen en la relación entre las

entidades.

● Al igual que antes, se especifican las

primarias y multievaluadas, pero no las externas.

● Las relaciones no solo “relacionan” dos

(21)

Relaciones (II)

● Representación general.

● Relación 1 a 1

● Relación 1 a N

● Relación M a N

(22)

Relaciones (III)

● Podría hacerse una similitud con conjuntos

de la siguiente manera:

El vacío no significa que no haya relación sino que puede que aún ese valor no exista. Por ejemplo, el número de

ocupantes de un coche, a excepción del conductor. Puede que sea un

acompañante, más de uno, o directamente

ninguno... En el E/R se tiene en cuenta y en la implementación este

(23)

Ejemplos de relaciones

– El nombre de una persona con sus

apellidos:

● 1 a N

– Si tiene más de un nombre:

● M a N

– Si es extranjero y solo tiene un

apellido:

● 1 a 1

– Extranjero con más de un nombre:

● 1 a N

(24)
(25)

Diagrama relacional (I)

● Puede obtenerse a partir del

diagrama anterior.

● Entidades con cajas y atributos

(primarios, externas y mutievaluados).

● Desaparecen las relaciones. Se

especifica la cardinalidad.

● Recomendación (no algoritmo) acerca

(26)

Diagrama relacional (II)

M

N 1

(27)

Diseño de tablas

● Se trata de definir con texto las

tablas a usar, para después pasar a SQL

En negrita las claves primarias, subrayadas las claves externas.

COCHE (Matrícula, Bastidor, DNI, Modelo)

MOTOR (Bastidor, Cilindrada, Potencia, Consumo)

(28)

Y se programa en...

● Introducción a las bases de datos.

● Administración de bases de datos.

● Implementación de bases de datos.

● Lenguaje SQL.

(29)

Lenguaje SQL

● Introducción y evolución.

● Tipos de datos.

● Creación de tablas.

– Restricciones.

● Modificación de tablas.

● Borrado de tablas.

● Consultas a tablas.

(30)

Introducción y evolución

● 1970: Codd describe el modelo relaciona.

– System V: gestor de bases de datos.

– SEQUEL: el lenguaje de programación.

● SEQUEL deriva en SQL Standard Query Language.

● 1982: primer estándar de SQL.

● 1989: modificaciones sobre la integridad

referencial.

● 1992: siguiente estándar.

● 1997: estándar orientado a objetos

(31)

Tipos de datos (I)

● Tipos numéricos.

– Enteros: INT(EGER), SMALLINT

– Reales: FLOAT, REAL, DOUBLE PRECISION – Con formato: DECIMAL(t,d) NUMERIC(t,d)

● t: número total de dígitos.

● d: cifras a la derecha del punto.

● Cadenas de caracteres.

– CHAR(n): número de caracteres.

– VARCHAR(n), CHAR VARYING(n): número

(32)

Tipos de datos (II)

● Cadenas de bits.

– BIT(n): número de bits.

– BIT VARYING(n): número máximo de bits.

● Fechas.

– DATE 'yyyy_mm_d'

● Horas.

– TIME 'hh:mm:ss'

● Intervalos.

(33)

Ejemplos de INTERVAL

– INTERVAL ‘1’ YEAR

● 1 año

– INTERVAL ‘3-2’ YEAR TO MONTH

● 3 años y 2 meses

– INTERVAL ‘2 12’ DAY TO HOUR

● 2 horas y media

– INTERVAL ‘3:20’ HOUR TO MINUTE

● 3 horas y 20 minutos

– INTERVAL ‘3:20:45’ HOUR TO SECOND

(34)

Tipos de datos (III)

● Dominios

– Parecido al TYPEDEF ENUM de C.

– CREATE DOMAIN nombre [AS] tipo_datos

[DEFAULT {literal | NULL}]

[CONSTRAINT nombre] CHECK(expresion)

– Ejemplos:

● CREATE DOMAIN matricula NUMERIC(4)

DEFAULT 0

CHECK (VALUE IS NOT NULL)

● CREATE DOMAIN modelo CHAR VARYING(30)

(35)

Creación de tablas

● Para crear una tabla se usa:

– CREATE TABLE nombre

(columna {tipo_datos | dominio});

- Todas las entradas acaban

excepto la última en coma (,).

La última va con punto y coma (;)

(36)

Restricciones

● Restricciones de columna

– Obligar a que los valores de la

columna cumplan unas condiciones

● Restricciones de tabla

– Sobre todo integridad de la tabla

con otras tablas

● Ejemplos:

● NOT NULL ● UNIQUE

● PRIMARY KEY ● CHECK

(37)

Modificación

● En la modificación de tablas se

diferencian las operaciones de:

– Añadir columnas

● ALTER TABLE tabla ADD columna tipo

– Eliminar columnas

● ALTER TABLE tabla DROP columna

{CASCADE | RESTRICT}

– Modificar definiciones de columna

● ALTER TABLE tabla ALTER columna

(38)

Borrado

● Borrar restricciones

– ALTER TABLE tabla DROP CONSTRAINT restr

● Borrar tablas

– DROP TABLE tabla {CASCADE | RESTRICT}

● CASCADE: se borra la tabla y todos los

elementos de la BD que referencien a la tabla.

● RESTRICT: sólo se borra la tabla si antes se

(39)

Consultas (I)

● Básicamente es:

– SELECT columnas FROM tabla WHERE condicion

● columnas = * --> todas las columnas

● Eliminar valores repetidos.

– SQL no elimina tuplas repetidas. Se usa el

operador DISTINCT antes de 'columnas'¡

● Ordenar los resultados

– ORDER BY columnas {ASC | DESC}

● ASCendente, DESCendente

(40)

Consultas (II)

● Renombrar columnas del resultado

– Esto se hace para volver a usar esa columna

en la consulta.

● Seleccionar valores en un

intervalo.

– WHERE valor BETWEEN valor_1 AND valor_2

– Ej: BETWEEN hoy AND hoy + interval '14'

● Pertenecer a un conjunto

(41)

Consultas (III)

● Filtro de subcadenas

– LIKE 'cadena'

– cadena puede contener:

– '%' : ó 0 ó más caracteres. – '-' : 1 caracter

– '/' : escapa esos caracteres.

● Ejemplo:

(42)

Otros operadores

● Se pueden usar <, >, =, ...

● Existe el operador NOT

● Operadores más complejos como

EXIST, COUNT, HAVING, ADD, SUM, GROUP BY ...

● Referido a más de una tabla:

productos cartesianos (,) y uniones.

● Uniones, diferencias,

(43)

Resumen SQL

Sobre todo: ¡¡NO HAY VARIABLES!! ¿Cómo haríais un bucle tipo FOR?

y ¿llevar una cuenta? ...

Cambio muy fuerte de mentalidad en cuanto a la programación.

(44)

Y para acabar...

● Introducción a las bases de datos.

● Administración de bases de datos.

● Implementación de bases de datos.

● Lenguaje SQL.

● JDBC.

(45)

JDBC (I)

● SQL Estático

● SQL Embebido (incrustado)

– Las consultas se crean en tiempo de

ejecución.

– Necesario una CLI (Common Language

Interface)

● ODBC: Open DataBase Connectivity.

● JDBC: Java DataBase Connectivity.

– Drivers para las conexiones con las

(46)

JDBC (II)

¿Quieres poder conectar una base de datos con Java y hacerle una

interfaz gráfica?

Referencias

Documento similar

T02.019- Fecha y usuario del pedido, código, nombre, marca, pvp y precio de venta de los artículos solicitados en el pedido número 1 que sean televisores... select cod,nombre,'tiene

El principal objetivo del desarrollo de este proyecto es el de familiarizarnos con las bases de datos de tipo NoSQL, concretamente con MongoDB, en la cual nos centraremos

Si para construir y evaluar una FBF necesitamos una interpretación y un LPO, para todo esquema de base de datos relacional (BDR) y para cada estado de base de datos

Cuando se realiza una revisión integrativa entorno a un tema como el de la sintomatología presente en los pacientes con enfermedad oncológica avanzada, que motivan el

Existe un plan de acción de acción ambiental o de sostenibilidad (plan estratégico ambiental, plan de desarrollo sostenible, agenda21,…) aprobado por un órgano de gobierno

En este componente se emplea el componente de Angular Material mat-table, que permite visualizar filas de datos en formato de tabla, ordenar las filas de datos

 Bases de datos de columnas anchas: este tipo de base de datos NoSQL de columnas anchas tiene la capacidad de almacenar los datos en tablas con filas y columnas

Una vez visto la estructura de cada tabla, de ambas bases de datos, y explicado el contenido de cada campo vemos que la aplicación interactuará con las bases de datos no solo