introducción a las bases de datos relacionales. ¿base de datos? b de d es un conjunto de...

39
Introducción a las Bases de Datos Relacionales

Upload: mayte-portal

Post on 22-Jan-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

Introducción a las Bases de Datos

Relacionales

Page 2: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

¿Base de Datos?

• B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada o estructurada

• B de D es un sistema formado por un conjunto de datos almacenados en dispositivos (disco) que permiten acceso directo a ellos y un conjunto de programas que manipulan ese conjunto de datos

• B de D o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta.

Page 3: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

modelos de bases de datos

• Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores

• Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemáticos

Page 4: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

modelos de bases de datos

Algunos modelos con frecuencia utilizados en las bases de datos:

- modelo jerárquico: (años 60) árbol, no diferencian vista lógica de vista física. Grandes volúmenes de datos.

- modelo de redes: DAG, evolución del modelo jerárquico

- modelo relacional: (años 70) basado en la teoría de conjuntos. El más usado en la actualidad. Diferencia vista lógica de vista física.

- modelo multidimensional: tablas multidimensionales, conceptualmente similar al modelo relacional pero para aplicaciones específicas como cubos OLAP.

- modelo orientado a objetos: esfuerzos actuales. Permiten herencia, polimorfismo y encapsulamiento de datos.

Page 5: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

el modelo relacional

• desarrollado por EF Codd en 1970 cuando trabajaba para IBM

• permite una fuerte independencia de las aplicaciones respecto a la representación interna de los datos

• dió lugar al nacimiento de un lenguaje normalizado: SQL (Structured Query Language) utilizado por numerosos SGBD como PostgreSQL, MySQL, Oracle, Sybase, DB2

Page 6: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

Características de las Tablas (relaciones)

• Una tabla está formada por Filas y Columnas

• Las Filas son equivalentes a los Registros de un archivo clásico (contienen los valores de los objetos o entidades descritas)

• Las Columnas son equivalentes a los Campos (que representan los atributos de los objetos o entidades descritas).

• El conjunto de valores que puede tomar un campo se llama dominio.

Page 7: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

las relaciones

• Dominio: conjunto de valores caracterizados por un nombrelength = {702, 1476, 273, 303, 891}gene_id = {'1794:2096', 'c1321:1593', '2108:3583'}gene = {'-', 'gatA', 'gatC'}

• Relación: subconjunto del producto cartesiano de n dominios (n>=1). Es una relación n-aria:

gene_id gene length1794:2096 - 303c1321:1593 gatA 2732108:3583 gatC 1476

Page 8: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

las relaciones

• Atributo: columna de una relación

• Tupla: línea de una relación

• Esquema de una relación: nombre de la relación + lista de atributos

GENEgene_id stringgene stringlength integer

Page 9: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

las restricciones

• clave: conjunto mínimo de atributos que identifican de manera única una tupla. Entre las claves, elegimos una que llamamos ”clave primaria"gene_id es una llave que podemos elegir como primaria

• restricción referencial: imponemos que un conjunto de atributos en R1 sea un valor clave de R2

•restricción de dominio: una condición sobre un atributo de la relaciónlength > 0

GENEgene_id length genec1321:1593 273 gatA2108:3583 1476 gatC

DESCRIPTIONgene descriptiongatA G-amidotransferase subunit AgatC G-amidotransferase subunit C

Page 10: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

aspectos básicos de las BDR

• La B de D contendrá generalmente muchas Tablas• Una Tabla sólo contiene un número fijo de Campos• El nombre de los Campos que componen una Tabla

es siempre distinto• Cada Registro de una Tabla es único• El orden de los Registros y el orden de los Campos

de una Tabla no está determinado.• Para cada Campo existe un conjunto de valores

posibles (Dominio).

Page 11: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

operaciones del álgebra relacional

• el álgebra relacional se compone de un conjunto de operadores. 5 de ellos permiten definir los otros por composición

• selección, • proyección, • producto cartesiano, ו unión, U• diferencia, -

Page 12: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

selección, σ

• la selección σF (R) se aplica a una relación R y extrae las tuplas que satisfacen un criterio F. • El criterio puede ser entre un atributo y una constante o entre dos atributos: AΘa y A1ΘA2, con Θ perteneciente a {=,<,>,<=,>=}

• Por ejemplo: σlength>300 (GENE)

GENEgene_id gene length1794:2096 - 303c1321:1593 gatA 2732108:3583 gatC 1476

gene_id gene length1794:2096 - 3032108:3583 gatC 1476

Page 13: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

la proyección, π

• la proyección πA1,A2,A3...,Ak (R) se aplica a una relación R conservando solamente los atributos A1,A2,A3...,Ak

• contrariamente a la selección no suprimimos filas sino columnas

• Por ejemplo: πgene_id,length (GENE)

GENEgene_id gene length1794:2096 - 303c1321:1593 gatA 2732108:3583 gatC 1476

gene_id length1794:2096 303c1321:1593 2732108:3583 1476

gene_id,length

Page 14: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

el producto cartesiano, ×

• el primer operador binario, y el más importante.• el producto cartesiano entre R y S se denota R×S y permite crear una nueva relación donde cada tupla de R esta asociada a una de SR S

R ×SA | B------a | bc | d

C | D------u | vw | xy | z

A | B | C | D-------------a | b | u | va | b | w | xa | b | y | zc | d | u | vc | d | w | xc | d | y | z

Page 15: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

la unión, U

• la expresión RUS crea una relación que comprende todas las tuplas en R y todas las tuplas en S.• existe una condición imperativa y es que ambas relaciones deben tener el mismo esquema, es decir, mismo número de atributos, mismos nombres y tiposR S

RUS

A | B------a | bc | d A | B

------a | bc | dw | xy | z

A | B------w | xy | z

Page 16: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

la diferencia, -

• como la unión, la diferencia se aplica a dos relaciones que tienen el mismo esquema• la expresión R-S da por resultado una relación que tiene todas las tuplas de R que no están en SR S

R-S

A | B------a | bc | d

A | B------y | zc | d

A | B------a | b

Page 17: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

composición de operadores

• todas las interrogaciones del algebra relacional pueden hacerse con los 5 operadores anteriores• sin embargo, existen en la práctica otros operadores corrientemente utilizados y que pueden construirse por composición de las operaciones de base• por ejemplo, el producto cartesiano en si mismo no tiene interes, pero si le aplicamos luego una selección, puede transformarse en algo útilGENE

gene_id length genec1321:1593 273 gatA2108:3583 1476 gatC

DESCRIPTIONgene descriptiongatA G-amidotransferase subunit AgatC G-amidotransferase subunit C

Page 18: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

la juntura,

• podríamos escribir lo antedicho como:

σGENE.gene=DESCRIPTION.gene (GENE x DESCRIPTION)

•esto es, la composición de 2 operaciones, un producto cartesiano y una selección• esta operación es una juntura y podemos notarla como:

GENE gene=gene DESCRIPTION

Page 19: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

SQL: tipos

• enteros: int, smallint, tinyint• decimales: numeric(p,s), double• caractéres: char(n), varchar(n), text• fechas: datetime, smalldatetime• binaria: binary(n), varbinary(n), image• bit

• manual de postgres online: http://www.postgresql.org/docs/8.3/interactive/index.html

Page 20: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

el SQL: tipos

Name Aliases Description

bigint int8 signed eight-byte integer

bigserial serial8 autoincrementing eight-byte integer

bit [ (n) ]   fixed-length bit string

bit varying [ (n) ] varbit variable-length bit string

boolean bool logical Boolean (true/false)

box   rectangular box in the plane

bytea   binary data ("byte array")

character varying [ (n) ]varchar [ (n) ]

variable-length character string

character [ (n) ] char [ (n) ] fixed-length character string

cidr   IPv4 or IPv6 network address

circle   circle in the plane

date   calendar date (year, month, day)

double precision float8 double precision floating-point number

inet   IPv4 or IPv6 host address

integer int, int4 signed four-byte integer

interval [ (p) ]   time span

line   infinite line in the plane

Page 21: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

el SQL: tipos

lseg   line segment in the plane

macaddr   MAC address

money   currency amount

numeric [ (p, s) ]decimal [ (p, s) ]

exact numeric of selectable precision

path   geometric path in the plane

point   geometric point in the plane

polygon   closed geometric path in the plane

real float4 single precision floating-point number

smallint int2 signed two-byte integer

serial serial4 autoincrementing four-byte integer

text   variable-length character string

time [ (p) ] [ without time zone ]

  time of day

time [ (p) ] with time zone timetz time of day, including time zone

timestamp [ (p) ] [ without time zone ]

  date and time

timestamp [ (p) ] with time zone

timestamptz date and time, including time zone

Page 22: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

SQL: órdenes

• manipulación de datos, DML (Data Manipulation Language)

• selección de datos (select)• inserción de datos (insert)• actualización de datos (update)• destrucción de datos (delete)

Page 23: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

SQL: órdenes

• descripción de estructura de datos, DDL (Data Definition Language)

• creación y destrucción de tablas• creación de diferentes objetos en la base (restricciones, vistas, procedimientos, triggers)• órdenes de creación de bases, gestión de derechos, gestión de transacciones, etc.

Page 24: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

las interrogaciones simples

• una interrogación sobre una tabla consiste en un subconjunto de líneas y/o un subconjunto de columnas de la tabla• las columnas del select determinan que columnas mostrar• la cláusula where determina que líneas mostrar

select * from GENE;select gene, length from GENE where length > 300;select gene, length from GENE where gene = 'gatA';select gene, length from GENE where gene like 'gat%';

Page 25: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

los operadores

• binarios: +, -, /, *, %, + (concatenación de cadenas)• comparación: =, <>, <, <=, >, >=, between, not between• de lista: in, not in• de matcheo: like, not like• booleanos, and, or, not• de nulidad: is null, is not null

select * from GENE where length in (273, 303);select gene from GENE where length between 300 and 500;select gene from GENE where length = 273 or length > 500;

Page 26: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

las funciones

• envían un resultado a partir de una lista de argumentos (son pre-definidas y no se puede agregar más)

•sistema: user, user_name(), user_id(),..•generales: datalength(), isnull(),...•cadenas de caracteres: substring(), charindex(), reverse(), left(), right(), lower(), upper()...•matemáticas: abs(), floor(), power(), rand(), sqrt(), exp(), log(), sin(), cos(), tan(),...

Page 27: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

las expresiones regulares

• permiten "matchear" un pattern (patrón) dado utilizando el operador like:• % matchea n caracteres cualquiera (n=0, 1, ...)• _ (underscore) matchea 1 caracter cualquiera• [] matchea 1 caracter cualquiera en la clase• [^] matchea 1 caracter cualquiera ausente en la clase

select * from GENE where gene like 'g%';select * from GENE where gene like 'g_t[AC]';select * from GENE where gene like '[^A-Z]%';

Page 28: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

las junturas

• permiten obtener los datos de dos o más tablas• la ligación entre las dos tablas se hace a través de un campo en común, generalmente del mismo nombre• podemos juntar n tablas• a menudo utilizamos alias en la interrogación

select g.gene, g.length, d.description from GENE g, DESCRIPTION d where g.gene=d.gene;

select g.gene, g.length, d.description from GENE g, DESCRIPTION d where g.gene=d.gene and length >300;

Page 29: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

creación y destrucción de tablas

create table GENE( gene_id varchar(18) PRIMARY KEY, gene varchar (4), length integer);

drop table GENE;

alter table GENE add constraint gene_chk1 check(length>0);

create index gene_ind1 on GENE(gene);

Page 30: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

Formas normales: 1FN

• La Primera Forma Normal, o 1FN, es la más elemental de todas. Una tabla está en 1FN si el valor que contiene un atributo de un registro, un campo, es único y elemental. En cada uno de los atributos sólo se puede incluir un dato, aunque sea compuesto, pero no se pueden incluir una lista de datos.

Page 31: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

Formas normales: 2FN

• Una tabla está en Segunda Forma Normal o 2FN cuando está en 1FN y todo atributo que no pertenece a la clave primaria tiene una dependencia funcional de la clave completa y no de parte de ella. Luego, si la clave principal está formada por un solo atributo y ya está en 1FN, ya estará en 2FN.

Page 32: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

Formas normales: 3FN

• Se dice que hay dependencia funcional transitiva entre dos atributos cuando un atributo que no pertenece a la clave primaria permite conocer el valor de otro atributo.

• Una tabla está en Tercera Forma Normal o 3FN si está en 2FN y no existen atributos que no pertenezcan a la clave primaria que puedan ser conocidos mediante otro atributo que no forma parte de la clave primaria, es decir, no hay dependencias funcionales transitivas.

Page 33: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

otras formas normales

• suelen quedar a la decisión del diseñador y en general no son necesarias para bases de datos de tamaño reducido:

• Forma Normal de Boyce-Codd o FNBC• 4FN• 5FN

• ver http://www.scourdesign.com/articulos/BD-FN.php

Page 34: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

Ejemplo de concepción (Entity/Relationship)

Nombre

Plasmido

Accession

Replicon

Nombre

Trans_tab

Clasificación

Aislado

Organismo

Accession

Gen_id

Hebra

Largo

Gen

Pid

Genes

Pid

Archivo_pdb

Resolución

Método

Estructura

ProtocoloMicroarray

Gen_id

Nc

GC

Gravy

Aromo

Propiedades

tiene

tiene

tienc

tiene

usa

presenta

1

1

1

11

* * * *

*

*

1

Page 35: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

reglas de pasaje: entidades

• recordemos: el esquema de una relación está constituida del nombre de la relación seguida de la lista de atributos.• para cada entidad del esquema E/A:1. creamos una relación del mismo nombre que la entidad2. cada propiedad de la entidad deviene un atributo de la relación3. los atributos del identificador constituyen la llave de la relación

Page 36: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

reglas de pasaje: asociación 1 a *

• sea una asociación de uno a muchos entre A y B. El pasaje sigue las reglas siguientes:

1. creamos las relaciones RA y RB correspondientes a las entidades A y B2. el identificador de B deviene un atributo de RA

Page 37: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

reglas de pasaje: binarias * a *

• sea una asociación binaria n-m entre A y B

1. creamos las relaciones RA y RB correspondientes a las entidades A y B2. creamos una relación RA-B para la asociación

3. las llaves de RA y RB pasan a ser atributos de RA-B

4. la llave de esta relación es la concatenación de las llaves de las relaciones RA y RB

5. las propiedades de la asociación devienen en atributos de RA-B

Page 38: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

Ejemplo Nombre

Trans_tab

Clasificación

Aislado

Organismo

Nombre

Plásmido

Accession

Replicón

Accession

Gen_id

Hebra

Largo

Gen

Pid

Genes

Gen_id

Nc

GC

Gravi

Aromo

PropiedadesPid

Archivo_pdb

Resolución

Método

Estructura

Gen-Microarray

Microarray

Experimento

Protocolo

*

1

1

1

1

1

1

1

1

1

1

* *

*

*

*

Page 39: Introducción a las Bases de Datos Relacionales. ¿Base de Datos? B de D es un conjunto de información (o de datos) relacionada que se encuentra agrupada

Ejemplo para el practico

Organism_id

Organism

Classification

...

Organism

Organism_id

RefSeq

...

Replicon

RefSeq

Gene_id

Strand

GeneLength

Gene

...

Gene

Gene_id

GC

Gravy

Aromo

...

GenePropGene_id

GC

A1

...

Bases

*

1

1

1

1

1

1

*

Gene_id

Nc

GC

Gravy

Aromo

Aas

1 1