fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos,...

17
1 BASES DE DADOS BASES DE DADOS Sérgio Rodrigues [email protected] OBJECTIVOS DA CADEIRA F l h i t f d ti d b d Fornecer aos alunos conhecimentos fundamentais de bases de dados. Proporcionar uma sólida formação teórica nas principais características dos SGBD. Enfoque especial nas BD Relacionais, conceitos de transação, integridade, normalização e linguagem SQL. Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition. PROGRAMA DA CADEIRA Conceitos básicos Identificação do problema Técnicas de análise Etapas e metodologias de análise – ciclo de vida Tipos de dados Bases de Dados Evolução Histórica Evolução Histórica Características e diferenças em relação às aproximações tradicionais para salvaguarda de dados Arquitectura - nível externo, conceptual e interno Entidades e Relações PROGRAMA DA CADEIRA Metodologias Tradicionais de Desenho Diagramas ER – Normalização – Integridade – Concorrência – Segurança – Optimização Linguagem de acesso a base de dados relacionais Linguagem de acesso a base de dados relacionais SQL – Structured Query Language DDL – Data Definition Language DML – Data Manipulation Language DIL – Data Integrity Language

Transcript of fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos,...

Page 1: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

1

BASES DE DADOSBASES DE DADOS

Sérgio [email protected]

OBJECTIVOS DA CADEIRA

F l h i t f d t i d b dFornecer aos alunos conhecimentos fundamentais de bases de

dados.

Proporcionar uma sólida formação teórica nas principais

características dos SGBD. Enfoque especial nas BD Relacionais,

conceitos de transação, integridade, normalização e linguagem

SQL.

Transmitir conhecimentos práticos, através do desenvolvimento de

trabalhos, utilizando o MS SQL Server 2005 Express Edition.

PROGRAMA DA CADEIRA

• Conceitos básicos– Identificação do problemaç p– Técnicas de análise– Etapas e metodologias de análise – ciclo de vida– Tipos de dados

• Bases de Dados– Evolução HistóricaEvolução Histórica– Características e diferenças em relação às aproximações tradicionais

para salvaguarda de dados– Arquitectura - nível externo, conceptual e interno– Entidades e Relações

PROGRAMA DA CADEIRA

• Metodologias Tradicionais de Desenho– Diagramas ERg– Normalização – Integridade– Concorrência– Segurança– Optimização

• Linguagem de acesso a base de dados relacionaisLinguagem de acesso a base de dados relacionais– SQL – Structured Query Language

• DDL – Data Definition Language• DML – Data Manipulation Language• DIL – Data Integrity Language

Page 2: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

2

PROGRAMA DA CADEIRA

• Metodologias Avançadas de DesenhoMetodologias Avançadas de Desenho– UML - Unified Modeling Language

• Microsoft Sql Server– O ambiente Microsoft SQL Server Management Studio Express

BIBLIOGRAFIA

Disponíveis na secção de cópias• Apontamentos da cadeira; Carlos Mora, 2006/2007• Frequências e exames efectuados nos anos anteriores

Disponível na Biblioteca do IPT-ESTA• C. J. Date, “An Introduction to Database Systems”, Addison-Wesley

SISTEMAS DE INFORMAÇÃO

Sistema de Informação é um sistema que reúne, guarda, processa e

faculta informação relevante para a organização (...), de modo que afaculta informação relevante para a organização (...), de modo que a

informação é acessível e útil para aqueles que a querem utilizar, incluíndo

gestores, funcionários, clientes, (...). Um Sistema de Informação é um

sistema de actividade humana (social) que pode envolver ou não, a

utilização de computadores.

[Buckingham, et al. 1978]

Sistema de Informação é uma combinação de procedimentos,

informação, pessoas e Tecnologias de Informação, organizadas

para o alcance de objectivos de uma organização.

[Alter 1992]

TI-TECNOLOGIAS DE INFORMAÇÃO

Tecnologias de Informação, são o conjunto de equipamentos e suportes

lógicos (hardware e software) que permitem executar tarefas comológicos (hardware e software) que permitem executar tarefas como

aquisição, transmissão, armazenamento, recuperação e exposição de

dados.

[Alter 1992]

Exemplos de T I• Hardware • Software de sistema• Software aplicacional• Comunicações• Ferramentas de desenvolvimento

Page 3: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

3

DADOS VS. INFORMAÇÃO

Dados, são elementos primitivos, com os quais e através de algum

tipo de processamento, se obtém a informação.

PROCESSAMENTO INFORMAÇÃODADOS

GESTÃO DO SISTEMA DE INFORMAÇÃO

Ã

INFORMAÇÃO

DADOS T I

GESTÃO DO SISTEMA DE INFORMAÇÃO

GESTÃO DAINFORMAÇÃO

OUTROSRECURSOS

GESTÃO DO SISTEMA DE INFORMAÇÃO

G tã d Si t d I f ã é tã dGestão de Sistemas de Informação é a gestão do recurso

informação e de todos os recursos envolvidos no planeamento ,

desenvolvimento, exploração e manutenção do SI.

[Amaral, Varajão 2000]

“Investir em TI não significa investir nos Sistemas de Informação”

EXERCÍCIO: GESTÃO DE STOCKS

Contexto

Empresa que não pretende adquirir computadores tem a finalidade de automatizar eEmpresa que não pretende adquirir computadores tem a finalidade de automatizar e

normalizar a gestão do armazém. Todos os procedimentos têm de ser executados

manualmente não recorrendo a quaisquer meios informáticos.

Perguntas a responder

Como controlar os stocks existentes na empresa?

Como controlar as entradas e saidas diárias?

Como controlar as encomendas a efectuar?

Como controlar os monos (produtos sem movimento à mais de 90 dias)?

Page 4: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

4

BASE DE DADOS

• Base de Dados é um repositório de informação mantido emcomputador com auxílio de um software de base especialmentevocacionado para o efeito e designado por Sistema Gestor de Basede Dados - SGBD

• Ao sistema responsável pela gestão de baixo nível da base dedados chama-se SGBD - Sistema Gestor de Base de Dados - doinglês DBMS - Data Base Management System.

POR DE TRÁS DE UM NOME

SGBDSGBDRDBMSRDBMS

DADOS, COISAS E FACTOS

Um dado simples, é um facto singular acerca de qualquer coisa sobrea qual temos interesse

Uma coisa pode ser um objecto no seu sentido mais lato:

Um barco uma casa, uma empresa, uma pessoa,ou um evento como por exemplo uma reunião

Um facto é uma qualquer característica de um objecto:

A Joana ter completado 65 créditos na universidadeO professor Amilcar Melo ter tirado o curso no ISTA aula de Base de Dados decorrer na sala 1O número do empregado José Silva ser o 2077

ORGANIZAÇÃO DE DADOS

Utilizamos muitos factos para descrever algo de interesse no nossosistema

e.g.: O José Silva é vendedor numa empresa. Tem um número devendedor, tem 10% sobre as vendas que faz, Vive no Alvito,concelho de Beja, o número de vendedor é o 230 e o da filial éo 2077. Foi contratado em 1998

Sistematizando:

NúmeroVendedor Apelido Nome Cidade Concelho

NúmeroFilial

PercentagemComissão

AnoContratação

230 Silva Alvito Beja 2077 10 1998

Page 5: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

5

ORGANIZAÇÃO DE DADOS

Número Localida Número Percentagem AnoNúmeroVendedor Apelido Nome

Localidade Concelho

NúmeroFilial

PercentagemComissão

AnoContratação

230 Silva José Alvito Beja 2077 10 1998

211 Lima Ana Seia Guarda 2056 10 1995

135 Melo João Fátima Santarém 2049 10 1993

280 Pinto Sandra Riachos Torres Novas 2060 20 2003

137 Abreu Luís Gouveia Guarda 2055 15 2003

330 Afonso João Mértola Beja 2075 15 2001

420 Neves Ricardo Amadora Lisboa 2010 20 2000

150 Gama Vítor Gaia Porto 2020 20 2001

TERMINOLOGIA DOS DADOS

Entidade, é a coisa ou objecto do nosso sistema, que estamos interessados em rastrear

e.g.: O João Silva (a pessoa real que vive e respira)

Conjunto de entidades, é uma colecção de entidades do mesmo tipo

e.g.: Todos os empregados da empresa

Atributo é a propriedade característica ou facto que conhecemosAtributo, é a propriedade, característica ou facto que conhecemos acerca de uma entidade

e.g.: Qualquer uma das características da entidade João Silva, como o seu número de empregado, comissão, ano de contratação, etc.

Nota: Alguns atributos têm um valor único no conjunto

A RELAÇÃO | Ficheiro | Tabela

ATRIBUTOS | Coluna | Campo

NumeroAluno NomeAluno CursoFreq07001 José Manuel Silva Informática

07002 Tiago Lopes Almeida Gestão

07002 Cristina Dias Ganhão Informática

07003 Roberta Jacinta Design

TUPLO| Linha| Registo| Ocorrência

Cardinalidadeda

Relação

Grau da Relação

Domínio de um Atributo: Conjunto de valores que esse atributo pode assumir

ARMAZENAMENTO E RECUPERAÇÃO

COMO ACEDER E MANIPULAR OS DADOS QUE ARMAZENAMOS?

Operações fundamentais sobre dados armazenados:

– Recuperar ou Ler– Inserir– Apagar– Actualizar

Existe uma diferença clara entre a operação de Recuperação ou Leitura de dados e as restantes operações

Page 6: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

6

TIPOS DE ACESSO

Acesso Sequencial – Recuperar todos ou apenas alguns registos deum ficheiro, um a seguir ao outro, numaqualquer sequência, começando no princípio,até que todos os registos tenham sidorecuperados

Forma de Acesso:Acesso Sequencial Físico – Os registos são recuperados, um após o

outro, na mesma ordem em que estão, qarmazenados no disco

Acesso Sequencial Lógico – Os registos são recuperados numa ordemestabelecida pelos valores resultantes dacombinação de um ou mais campos

TIPOS DE ACESSO

Acesso Aleatório – Recuperação de todos ou apenas algunsregistos de um ficheiro, baseada num ou maisvalores valor de um campo ou da combinaçãode vários campos do ficheiro

Exemplos:

No ficheiro de vendedores, se pretendermos aceder ao empregadonúmero 330, para saber o ano em que foi contratado

Recuperar todos os registos de vendedores com uma comissão de10%

FORMATAÇÃO DE FICHEIROS E MÉTODOS DE ACESSO

Formatação ou Organização de Ficheiros – Forma como os dadossão armazenados para recuperações subsequentes

Métodos de Acesso – Forma que utilizamos para efectuar arecuperação dos dados de um ficheiro organizado de determinadaforma

Acesso Aleatório:

At é d Í di– Através de um Índice

– Aravés de um método de Hashing

MINICASO I

Numero Marinheiro

NomeMarinheiro

NumeroNavio

PaísOrigem

Função

00536 João Oliveira 009 Portugal Capitão00732 Liang Shan 012 China Contra-Mestre06988 Manuel Gonzalez 020 México Marinheiro16490 Emir Kumar 005 Índia Marinheiro18535 Gualter Gil 009 Angola Cozinheiro20254 Suzana Lima 012 Portugal Cozinheiro23981 H ld L 020 Fili i 1º I di t23981 Helder Lopez 020 Filipinas 1º Imediato27467 Joaquim Mestre 020 Angola 2º imediato27941 Henrique Lastro 009 França Sub-Capitão28184 Eusébio Lima 009 Moçambique Marinheiro31775 Pedro Pais 012 Portugal Almirante32856 Arlindo Castro 012 Brasil 1º Imediato

Page 7: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

7

MINICASO I

• Descreva o tipo de registo

• Dê exemplo de uma ocorrência• Dê exemplo de uma ocorrência

• Diga qual é o conjunto ou intervalo de valores que o campo Número de Navio pode tomar

• Diga qual é o conjunto ou intervalo de valores que o campo País de Origem pode tomar

Assuma que os registos estão armazenados no ficheiro na ordem dadaAssuma que os registos estão armazenados no ficheiro na ordem dada

• Recupere todos os registos por acesso sequencial físico

• Recupere todos os registos por acesso sequecial lógico baseado no campo Nome do Marinheiro

MINICASO I

• Recupere todos os registos por acesso sequecial lógico baseado no campo Número do Navio

• Execute uma recuperação através de acesso aleatório dos registos com Número de Marinheiro com o valor 27467

• Execute uma recuperação através de acesso aleatório dos registos com Número de Navio de 20

• Execute uma recuperação através de acesso aleatório dos registos com a Função contendo o valor Capitão

ÍNDICES

SIMILAR A UM ÍNDICE REMESSÍVO DE UM LIVRO

Os Sistemas de Informação partilham três características com um índice de um livro:

• Os items de interesse são copiados para o índice, sem alterar o original

• Os items copiados são ordenadosC d it í di tá i d t d N d• Cada item no índice está associado a um apontador. No caso dos livro esse apontador é a página onde se encontra o item

ÍNDICE LINEAR SIMPLES

NúmeroRegisto

NúmeroVendedor Apelido Nome Localidade

Nome NúmeroRegisto

Índice Ficheiro de Vendedores

eg sto e dedo Apelido Nome Localidade1 135 Melo João Fátima

2 137 Abreu Luís Gouveia

3 150 Gama Vítor Gaia

4 211 Lima Ana Seia

5 230 Silva José Alvito

6 280 Pinto Sandra Riachos

gAna 4

João 1

João 7

José 5

Luís 2

Ricardo 8

7 330 Afonso João Mértola

8 420 Neves Ricardo Amadora

Sandra 6

Vítor 3

• Registos foram numerados com um número de registo relativo (ao inicio do ficheiro)

• Foi criada um ficheiro de índice para o campo Nome

• Note-se que podemos criar um índice sobre um campo sem valores únicos

Page 8: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

8

ÍNDICE LINEAR SIMPLES

NúmeroRegisto

NúmeroVendedor Apelido Nome Localidade

NúmeroVendedor

NúmeroRegisto

Índice Ficheiro de Vendedores

Registo Vendedor Apelido Nome Localidade1 135 Melo João Fátima

2 137 Abreu Luís Gouveia

3 150 Gama Vítor Gaia

4 211 Lima Ana Seia

5 230 Silva José Alvito

6 280 Pinto Sandra Riachos

g135 1

137 2

150 3

211 4

230 5

280 6

7 330 Afonso João Mértola

8 420 Neves Ricardo Amadora

330 7

420 8

• Ficheiro indexado-sequencialmente, pois é armazenado em disco pela ordem de um determinado campo e o índice é sobre o mesmo campo (para acesso seq. e aleat.)

• Apesar de o campo sobre qual existe o índice estar já ordenado, este tipo de índice pode ter interesse, pois em princípio é mais eficiente ter apenas o índice carregado em memória do que todo o ficheiro de vendedores

(IN)EFICIENCIA DO ILS

Mesmo se apenas duas colunas no índice, e num ficheiro de tamanho moderado, o acesso para leitura pode ser lento, pois implica muitos acessos a disco (periférico lento)

Para inserir novos registos, não existe outra maneira senão deslocar todos os registos a partir da posição onde se pretende inserir o novo registo um posição para baixo, de forma a criar espaço para a sua inserção

POR ESTES MOTIVOS O ILS É POUCO EFICIENTE PARA INDEXAR OS REGISTOS DE UM FICHEIRO

? ALTERNATIVAS ?

B+ TREE INDEX CARACTERISTICAS DA B+ TREE (1)

• Os registos do índice são copiados dos registos do ficheiro original

• Cada chave na árvore está associada com um apontador para um registo num outro índice de nível mais baixo, ou para um cilindro

• Em qualquer nível, cada registo do índice tem o mesmo tamanho. O tamanho é arbitrário, mas uma vez definido deve ser sempre igual

• Cada registo do índice deve estar pelo menos meio preenchido

• O tamanho do índice é pequeno, podendo permanecer na memória permanentemente, para um ficheiro frequentemente acedido

Page 9: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

9

CARACTERISTICAS DA B+ TREE (2)

• Adere ao conceito de Ficheiro indexado-sequencialmente, porque o ficheiro. foi armazenado sequencialmente pelo nº de vendedor e o índex é construído também sobre o nº de vendedor

• O ficheiro pode ser recuperado sequencialmente, percorrende os vários cilindros e o final de um saltando para o inicio do próximo sem sequer usar o índex

• Os Índices B+ Tree são usados também para indexar campos não únicos apesar de as estruturas de último nível se tornarem um poucoúnicos, apesar de as estruturas de último nível se tornarem um pouco mais complicadas

• Em geral o armazenamento para grupos de registos pode ser, mas não é obrigatório ser, um cilindro ou qualquer dispositivo físico

INSERIR E APAGAR REGISTOS

Exemplo: Inserir vendedor com o número 381O índex leva-nos até ao cilindro 6O índex leva nos até ao cilindro 6Se existir espaço livre neste, então os registos devidos avançam uma posição para encaixar o novo registo na respectiva posiçãoSe o cilindro estiver cheio, então dividem-se os registos do cilindro, metade permanecendo naquele e a outra metade passa para um novo cilindro (cil. 6: 364-390 e cil. 11:391-415)Actualizar os registos do Índex:

HASHED FILES

PARA APLICAÇÕES SEM NECESSIDADE DE ACESSO SEQUENCIAL ONDE A VELOCIDADE É O FACTOR PRINCIPAL

Ideias fundamentais dos mecanismos de Hashing:

• O número de registos é estimado e espaço suficiente é reservado

• Espaço adicional é reservado para registos de overflow

• Para determinar onde um registo irá ser inserido no ficheiro, a g ,chave do registo é convertida, por uma rotina de hashing, num dos locais reservados para o registo, no disco

• Para recuperar um registo a mesma rotina é aplicada à chave durante a pesquisa

HASHING - MÉTODO RESTO DA DIVISÃO

Consiste em efectuar a divisão inteira do valor da chave do registo que queremos inserir ou recuperar pelo número de localizações que reservámos. O valor do resto é a localização do registo.

Exemplo: Armazenar 50 registos de vendedores

A tabela seguinte mostra uma área que pode armazenar 50 registos de vendedores, da localização 0 à 49.As localizações de overflow começam na localização 50As localizações de overflow começam na localização 50O primeiro registo com a hash key de 30 é o registo com nº de vendedor 230 (230 % 50 = 30)O próximo registo com a mesma hash key ( nº vendedor 280) vai para a primeira localização de overflows livre e no apontador de sinónimo do registo anterior com a mesma hash key coloca-se a sua localizaçãoO último registo da cadeia da mesma hash key tem -1 no apt. sinónimo

Page 10: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

10

EXEMPLO INDEXAÇÃO COM HASHINGLocaliz.Registo

NúmeroVendedor

ApelidoVendedor . . . Apontador

00

11 211 Lima . . .

30 230 Silva . . . 50

4950 280 Pinto . . . 5151 330 Afonso . . . -15253

PONTOS IMPORTANTES - HASHED FILES

• A forma de armazenamento através de hashing, não permite qualquer armazenamento sequencial

• Um ficheiro apenas pode ser “hashed” uma única vez baseado num campo ou combinação de campos

• Se um ficheiro é “hashed” por um campo e se pretende acesso directo por outro, então outro índice pode ser construído para este

PONTOS IMPORTANTES - HASHED FILES

• Existem muitos algoritmos de hashing. O objectivo é sempre minimizar as colisões

• Um ficheiro “hashed” deve ser reorganizado periodicamente, tendo em conta o elevado número de colisões que pode ser gerado degradando assim a perfomance. Uma nova área de armazenamento com um novo número de localizações deve ser escolhido

• Uma sentinela deve marcar o último registo de uma cadeia com a mesma hash key, pois podemos procurar um registo com um valor que não exista no nosso ficheiro e a busca tem de terminar no último registo com essa hash key

REPRESENTAÇÃO DE ENTIDADES

Representamos um tipo de entidade da seguinte forma

PK, # - Identificador ÚnicoBold – Obrigatório

Page 11: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

11

RELAÇÕES

No mundo real as entidades geralmente nunca estão sozinhasGeralmente encontram-se associadas ou relacionadas umas com asGeralmente encontram se associadas ou relacionadas umas com as outras

e.g.: Pais associados com os Filhos, Peças às Viaturas, Produtos a Fornecedores, etc.

As relações entre entidades têm várias características que é importante ressalvar

A mais básica é caracterizá-la pelo número de entidades envolvidas

RELAÇÕES BINÁRIASRelações binárias - São relações entre duas entidades

Suficiente?• Cada vendedor pode vender 1,2,3,mais ou todos os produtos?• Um produto pode ser vendido apenas por um ou por todos os

vend.?• E se quisermos registar novos vendedores que ainda não vendem

qualquer produto

CARDINALIDADECardinalidade – Representa o número máximo de ocorrências de uma entidade, envolvidas numa relação

Relação Binária 1 - 1

Relação Binária 1 - M

MODALIDADEModalidade – Representa o número mínimo de ocorrências de uma entidade, envolvidas numa relação

Page 12: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

12

TRANSACÇÕES

• Porquê transacções na manipulação de dados ?

• Exemplo: Transf. de valores entre duas contas bancárias.

• Uma Definição:

É um conjunto perfeitamente delimitado de operações, sobre a base

de dados, que apresenta algumas características importantes, tais

como:– Atomicidade– Integridade– Isolamento– Persistência

TIPOS DE TRANSACÇÕES

• Flat transactions

Apresenta uma grande desvantagem no caso de ter processado uma

grande volume de dados e ter de se efectuar rollback é

extremamente time-consuming.

• Savepoints

• Chained transactions

• Nested transactions

MODELO RELACIONAL: EVOLUÇÃO

1979 – E.F. Codd investigardor da IBM publica um paper com osfundamentos teóricos do modelo relacional

1971 – Desenvolvimento da linguagem Sequel, Pela IBM

1979/80 – Surge o primeiro produto com características relacionais,comercializado pela Relational Software (Oracle)

1986/87 – SQL86, primeira tentativa de normalização da SQL, pelas ANSIem 1986 e ISO em 1987 (Modelo Relacional Básico)

1989 – SQL89, revisão de normalização, pelas ANSI/ISO (Introduzi d t à i t id d f ê i l)mecanismos de suporte à integridade referêncial)

1992 – SQL92 ou SQL2, revisão da especificação (Modelo Relacional)

1999 – Nova Revisão da especificação: SQL99 ou SQL3 (Modelo ObjectoRelacional)

2003 – Nova Revisão da especificação: SQL2003 (Introduz característicasXML)

CARACTERÍSTICAS DAS RELAÇÕES• O valor de Atributo num Tuplo é atómico

• Os Atributos de uma dada Relação devem ter identificadores únicosOs Atributos de uma dada Relação devem ter identificadores únicos

• Os Tuplos de uma relação devem ser distintos

• A ordem dos Tuplos e Atributos na Relação, não é significativa

• Cada Atributo possui apenas um Domínio para os seus valores

• Quando o valor de um Atributo não existir assume o valor especial

NULL

• Relação base é aquela onde são fisicamente armazenados os dados

• Views ou Relações Virtuais são instâncias de leitura apenas, de

Relações Base ou de um seu subconjunto de Atributos e/ou Tuplos

Page 13: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

13

Conceito e Tipos de Chave

Chave: Designação dada ao(s) atributo(s) que permitem a interligaçãoentre diferentes Relações

TIPOS

SuperKey: Conjunto de um ou mais atributos cujos valores emsimultâneo, identificam univocamente cada tuplo

Candidate Key: Subconjunto mínimos dos atributos de umaSuperchave que mantém esse tipoSuperchave que mantém esse tipo

Primary Key: É seleccionada entre as várias Chaves Candidatas

Foreign Key: Conjunto constítuido por um ou mais atributos que sãoCandidate Key numa outra relação

NORMALIZAÇÃO

A normalização das BD relacionais tem como objectivo principal

eliminar a redundância de dados no modelo ou seja melhorar oseliminar a redundância de dados no modelo, ou seja melhorar os

custos/problemas de manutenção, armzenamento e desempenho.

A normalização dá origem a modelos de dados mais flexíveis e com

menos problemas na sua manipulação

Não existe perda de informação no processo, isto é, apesar de alterar

a estrutura das relações não altera o conteúdo de informação global da

BD

1FN (1ª FORMA NORMAL)

Tem como objectivo eliminar redundância de informação, nos casos

em que para os mesmos valores de vários atributos existem diferentesem que para os mesmos valores de vários atributos, existem diferentes

valores de outros atributos.

Ex:NumEnc CodCli Cliente Ender_Cli DatatEnc CodProd Produto QtdEnc

012007 1 Autosell Rua A, 34 12-2-2007 J17 Jante17c 4, J17012007 1 Autosell Rua A,34 12-2-2007 CB01 Compbordo 1

012007 1 Autosell Rua A, 34 12-2-2007 TAWV Tectoabrir 1

022007 6 Standabt Av. ESTA, 1 10-1-2007 L945LD Lamp945 100

1FN (1ª FORMA NORMAL)

Para retirar a redundância observada, decompomos a estrutura inicial,

em tantas tabelas em quantos os grupos de atributos que se repetemem tantas tabelas, em quantos os grupos de atributos que se repetem

NumEnc NumCli Cliente Ender_Cli DataEnc

012007 1 Autosell Rua A, 34 12-2-2007

022007 6 Standabt Av. ESTA, 1 10-1-2007

NumEnc CodProd Produto QtdEnc

012007 J17 Jante17c 4

012007 CB01 Compbordo 1

012007 TAWV Tectoabrir 1

022007 L945LD Lamp945 100

Page 14: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

14

2FN (2ª FORMA NORMAL)

Uma relação está na 2FN, quando além de estar na 1FN, todos os

seus atributos não pertencentes a qualquer chave candidata (atributosseus atributos não pertencentes a qualquer chave candidata (atributos

não primos) dependem da totalidade da chave e não apenas de parte

dela.

Identificar a chave da relação. Se a chave é composta, então

perguntar:perguntar:

Existem atributos não chave que dependem apenas de uma parte da

chave? Se sim eliminar essa redundância

2FN (2ª FORMA NORMAL)

Ex: NumEnc CodProd Produto QtdEnc

012007 J17 Jante17c 4

Na2NF:

012007 J17 Jante17c 4

012007 CB01 Compbordo 1

012007 TAWV Tectoabrir 1

022007 L945LD Lamp945 100

NumEnc CodProd QtdEnc CodProd ProdutoNumEnc CodProd QtdEnc

012007 J17 4

012007 CB01 1

012007 TAWV 1

022007 L945LD 100

CodProd Produto

J17 Jante17c

CB01 Compbordo

TAWV Tectoabrir

L945LD Lamp945

3FN (3ª FORMA NORMAL)

Uma relação na 3FN é uma relação em que além de estar na 2FN, não

existem dependencias funcionais entre atributos não chaveexistem dependencias funcionais entre atributos não-chave

(dependências transitivas), ou seja cada tributo deve depender apenas

da chave primária da relação.

Para saber se uma relação está na 3FN perguntamos: “Existe algum

atributo não chave dependente de outro atributo não chave?atributo não chave dependente de outro atributo não.chave?

3FN (3ª FORMA NORMAL)

Ex: CodProd Produto Armazém QtdStock Caixas

J17 J t 17 Ab t 180 18

Na 3NF:

J17 Jante17c Abrantes 180 18

CB01 Compbordo Abrantes 240 24

J17 Jante17c Tomar 520 52

J17 Jante17c Lisboa 360 36

CodProd Produto Armazém QtdStockCodProd Produto Armazém QtdStock

J17 Jante17c Abrantes 180

CB01 Compbordo Abrantes 240

J17 Jante17c Tomar 520

J17 Jante17c Lisboa 360

Page 15: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

15

DDL - Data Definition Language

• CREATE DATABASE

CREATE DATABASE { database_name }

• DROP DATABASE

DROP DATABASE { database_name }

CREATE TABLE• CREATE TABLE

CREATE [TEMP] TABLE table_name

( column_name datatype [NOT NULL] [,...]CONSTRAINT [PK_Empregado_EmpNum] PRIMARY KEY

(EmpNum))

DDL - Data Definition Language

• CREATE TABLE

CCREATE [TEMP] TABLE table_name( column_name datatype [NOT NULL] [,...]

[CONSTRAINT constraint_name PRIMARY KEY (column_name [,...])][CONSTRAINT constraint_name FOREIGN KEY (column_name [,...])

REFERENCES table_name] )

DDL - Data Definition Language

• ALTER TABLEALTER TABLE t bl ADD | DROP | MODIFYALTER TABLE table_name ADD | DROP | MODIFYcolumn_name datatype [NOT NULL] [,...n]

• DROP TABLE

DROP TABLE table_name

• CREATE INDEX

CREATE [UNIQUE] INDEX index_name ON table_name( column_name [,...n] )

DDL - Data Definition Language

• DROP INDEXDROP INDEX i dDROP INDEX index_name

Page 16: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

16

DML - Data Manipulation Language

• INSERTINSERT INTO TABLE t bl [ ( l li t ) ]INSERT INTO TABLE table_name [ ( column_list ) ]{ VALUES ( value_list ) }

• DELETE

DELETE FROM table_name[ WHERE condition ]

DML - Data Manipulation Language

• UPDATEUPDATE t blUPDATE table_nameSET { column_name = expr [ ,...n]

| { ( column_list ) | table_name.* | * } ={ ( expr_list ) | record_name.* } }

[ WHERE condition ]

DML - Data Manipulation Language

• SELECTSELECT [ ALL | DISTINCT | UNIQUE ] l t li tSELECT [ ALL | DISTINCT | UNIQUE ] select_list[ INTO variable_list ]FROM { table_name [ table_alias ]

| OUTER table_name [ table_alias ]| OUTER ( table_expr ) } [ ,... ]

[ WHERE condition ][ GROUP BY column list ][ GROUP BY column_list ][ HAVING condition ][ ORDER BY column_name [ ASC | DESC ] [ ,...n] ][ INTO TEMP table_name ]

DIL - Data Integrity Language

• BEGIN WORK

• COMMIT WORK

• ROLLBACK WORK

Page 17: fundamentos de base de dados - esta.ipt.pt de base de... · Transmitir conhecimentos práticos, através do desenvolvimento de trabalhos, utilizando o MS SQL Server 2005 Express Edition.

17

EXERCÍCIO SUPER OFICINA1. Quais os empregados registados e respectivas qualificações?2. Qual a taxa hora mais cara da oficina?3 E i b t ?3. E a mais barata?4. Qual o empregado mais caro?5. E o mais barato?6. Quais os serviços oferecidos pela oficina?7. E quais as peças existentes que podem ser instaladas?8. Qual é o preço médio dos motores instalados pela oficina?9. Qual a primeira marcação feita?

Q ?10. Qual o carro que em 2003 deu mais dinheiro?11. Quais as marcas dos carros registados na oficina?12. Quantos carros de cada marca estão registados na oficina?13. Qual a duração da maior reparação feita na oficina?14. Qual o código das peças consumidas na oficina?15. E o nome e custo ?

EXERCÍCIO SUPER OFICINA

16. Quais os empregados que trabalharam no AA-00-00?

17 Quais os empregados que trabalharam no AA-00-00 da primeira vez que17. Quais os empregados que trabalharam no AA 00 00 da primeira vez queele cá esteve?

18. Qual o tempo gasto por cada empregado que trabalhou no AA-00-00 daúltima vez que ele cá esteve?

19. Qual o nome e código das peças que não são usadas desde 1 de Janeirode 2003?

20. Qual o nome e preço das peças algumas vez utilizadas no arranjo ded ?mercedes?