Apuntes Culleredo
Ir a la navegación
Ir a la búsqueda
BASES DE DATOS
|
INTRODUCIÓN
- SXBD: (Sistema Xestor de Bases de Datos) é unha colección de datos (xeralmente chamada base de datos) interrelacionados e un conxunto de programas para acceder a ese datos.
- O seu obxectivo é ofrecer un entorno cómodo, eficiente e que poida ser usado para almacenar e extraer información.
- Problemas que presentaban as aplicacións de xestión de datos nos anos 60:
- Dificultade de acceso ós datos: só se podía acceder da forma prevista polo programa.
- Redundancia e inconsistencia: os arquivos presentaban distintos formatos e a información sobre un mesmo obxecto podía estar replicada en varios lugares, o que ocasionaba problemas de actualizacións. Este problema aínda existe hoxe pero é debido ó factor humano.
- Illamento dos datos: pois ó estar este en varios arquivos e ter distintos formatos resulta difícil realizar novos programas para acceder ós datos.
- Concorrencia: en moitos casos é preciso o acceso a unha mesma información de forma simultánea, nestes casos ó remate das operacións a información debe ser consistente.
- Seguridade: tódolos usuarios podían acceder a toda a información, dándose casos de violación da intimidade.
- Obxectivos:
- Independencia física: é a independencia entre as estruturas de almacenamento e a estrutura que teñen os datos no mundo real.
- Independencia lóxica: e a independencia entre os datos vistos polas aplicacións – usuarios finais e a estrutura dos datos.
- Programas non orientados a procedementos: programas nos que se indique “que datos se desexan consultar” esquecéndose de describir a forma en que hai que acceder a eles.
- Coherencia dos datos: os datos teñen que ser lóxicos e coherentes, véxase, unha persoa non pode ter unha idade de 356 anos.
- Compartición dos datos: varias aplicación poden acceder os datos como se cada unha fose a única que o está a realizar, débense establecer mecanismos de control de concorrencia.
- Seguridade: cada usuario debe acceder ós datos para os que está autorizado.
- Funcións de respaldo e recuperación: establecer procedementos capaces de recuperar o sistema cando este se caia.
MODELO RELACIONAL
- Como todo modelo ten unha estrutura, unhas restricións e un conxunto de operacións.
ESTRUTURA
-
- Unha base de datos é un conxunto de relacións ou táboas. Cada táboa identifícase por un nome e unha lista de atributos (as columnas da táboa ) que describen un conxunto de entidades do mundo real. Cada fila (tupla) dunha táboa representa unha entidade do mundo real (P.e. persoa).
- Dominio: conxunto finito, homoxéneo e definido de valores que pode tomar cada atributo (Columna). dom (A1).
- Esquema dunha relación - intensión: a intensión/esquema dunha relación R é o conxunto de atributos que a forman, independentemente da orde na que estea.
- Representase R(A1, ... , An) ou r [[Image:]] dom (A1)x ... x dom (An)
- Ten un aspecto estático, pois salvo que se modifique a definición do esquema este invariable ó longo do tempo.
- Instancia dunha relación – extensión: denotado r(R) é o conxunto de tuplas, tal que cada tupla é unha lista ordenada de n valores de v1 a vn
- r={t1, ... , tk} tj=<v1, .... , vn> onde vi 1 ≤ i ≤ n é un elemento de dom(Ai)
- Son os datos que hai na táboa nun momento dado, o recheo, o contido da relación.
- É dinámica, pois hai insercións, borrados e actualizacións dos datos da táboa ó longo do tempo.
- Grao: número de atributos que ten o esquema.
- Cardinalidade: número de filas que ten a relación nun momento dado.
- Cada valor dun atributo para unha entidade dada (fila, tupla) debe ser atómico (un único valor) ou nulo (que se descoñece o seu valor).
RESTRICIÓNS
-
- De dominio: o valor de cada atributo debe ser atómico e pertencente o dominio dese atributo. dom(Idade): números naturais < 150
- De verificación (CHECK): os valores dun atributo deben verificar algunha condición: p. e. Idade para conducir autobuses 21 ≤ Idade ≤ 65.
- De chave: non pode haber tuplas repetidas, estas deben diferenciarse en ó menos no valor dun atributo. Existirá un subconxuntos de atributos que varíen dunha tupla a outra.
- Superchave, SK: é un conxunto de atributos SK = {A1, ... Ak}[[Image:]] R, sendo R = {A1, ... ,An}, / [[Image:]] t1, t2 se t1[SK] = t2 [SK] ==> t1=t2, isto é, (t1[R]=t2[R])
- Atributos chave ou superchave: conxunto de atributos que toman unha COMBINACIÓN de valores distinta para cada entidade. P.e.:
- NIF, Nome:
- 11111111A, Ana
- 11111111B, Ana
- son dúas combinacións distintas.
- N_Empr, NIF, Nome, Apel1:
- 3, 11111111A, Ana, Ruíz
- 4, 11111111B, Ana, Ruíz
- Sou outra combinación que toma valores distintos.
- Permite identificar/distinguir unha entidade de calquera outra do conxunto de entidades da entidade tipo.
- NIF, Nome:
- Chave: é unha superchave mínima, isto é:
K={A1, ... ,An} [[Image:]] R / [[Image:]] t1, t2 se t1[K]=t2 [K] => t1=t2, e [[Image:]] X [[Image:]] K /[[Image:]] t1, t2 se t1[K-X]=t2[K-X] => t1=t2
-
-
- Chaves candidatas: son aquelas superchaves que teñen un número mínimo de atributos. Poden ser varias e cada unha delas pode estar composta por varios atributos. P.e, no caso que nos ocupa as chaves candidatas serían dúas, cada unha delas composta por un único atributo:
- {N_empr}, con esta chave pódese identificar calquera entidade.
- {NIF}, con esta o mesmo, pois ninguén vai ter NIFs iguais, nin números de empregado.
- Alguén podería pensar que outra chave candidata podería estar composta por {Nome, Apel1, Apel2}, pero que pasaría no caso de que houbese dous empregados co mesmo nome e apelidos?, como se faría a distinción entre elas?.
- Chave primaria ou principal: e a chave seleccionada polo analista, entre tódalas candidatas, para identificar a cada unha das entidades. P.e.: N_Emp
- Chave alternativa: cada unha das chaves candidatas que non foron seleccionadas como primaria. P.e.: NIF.
- Toda táboa debe ter unha chave primaria.
- Chaves candidatas: son aquelas superchaves que teñen un número mínimo de atributos. Poden ser varias e cada unha delas pode estar composta por varios atributos. P.e, no caso que nos ocupa as chaves candidatas serían dúas, cada unha delas composta por un único atributo:
- De integridade de entidade: todo atributo que compón a chave primaria non pode conter valores nulos (Por aquilo de que non poden estar repetidas).
- De integridade referencial: os valores que pode tomar unha chave foránea (allea, estranxeira) deben existir na chave primaria da táboa correspondente ou ser nulos.
- Chave foránea (allea, estranxeira): conxunto de atributos dunha táboa que son chave primaria noutra táboa.
- Os valores dunha chave foránea non poden facer referencia a algo que non existe na táboa á que se referencia.
- Comportamento ante a modificación/borrado dos valores da chave principal, distínguense catro casos:
- Borrado/Modificación en cascada (CASCADE): o borrado dunha tupla, ou a modificación dos valores da chave principal dunha tupla dunha relación pai, ocasiona o borrado (modificación) de tódalas tuplas relacionadas na relación filla.
- Borrado/Modificación restrinxida (RESTRICTED): se existen tuplas na relación filla relacionas coa tupla da relación pai sobre a que se desexa realizar a operación, entón non se deixara levar a cabo.
- Borrado/Modificación con posta a nulos (SET NULL): o borrado dunha tupla, ou a modificación dos valores da chave principal dunha tupla dunha relación pai, fai que os atributos da chave foránea da relación filla tomen valores nulos, sempre e cando os teñan permitidos.
- Borrado/Modificación con posta a valores por defecto (SET DEFAULT): o borrado dunha tupla, ou a modificación dos valores da chave principal dunha tupla dunha relación pai, fai que os atributos da chave foránea da relación filla tomen os valores por defecto, sempre e cando existan tuplas na táboa pai con eses valores por defecto na chave primaria.
- Tipos de Integridade Referencial.
- Total.- O valor dunha chave foránea debe existir exactamente igual na chave primaria referenciada (ningún atributo pode tomar o valor nulo) ou ben ser nula (en tódolos seus atributos). Cando a chave foránea está composta por un só atributo, esta é a condición que debe cumprir.
- Parcial.- se a chave foránea está composta por varios atributos, permítese que parte dos atributos da chave foránea tomen valor nulo pero o valor dos demais atributos da chave foránea debe existir nos atributos correspondentes da chave primaria referenciada.
- Débil.- ó igual que no caso anterior, pero os atributos da chave foránea con valores distintos de nulo non teñen porque ter os mesmos valores nos atributos correspondentes da chave primaria referenciada. A integridade referencial só se comprobará cando tódolos atributos que conforman a chave foránea toma valores distintos de nulo.
- De desencadeadores (Triggers): é un pequeno programa que se executa (dispara) ante operacións de actualización (inserción, borrado e modificación). Por exemplo se modificamos a cantidade en stock dun produto é esta baixa do stock mínimo entón poñer o atributo repoñer a true.
- If stock < stock_minimo then repoñer=true (executaráse cada vez que se modifique o atributo stock).
- De dependencias entre datos: son as dependencias funcionais que se estudaran máis adiante.
-
OPERACIÓNS
-
- Baséase na alxebra relacional e verase nas trasparencias creadas por Mónica García Constenla.