Sei sulla pagina 1di 39

BASES DE DADOS 2Ano - 1Semestre 2007/2008

AULA (1/23) 2007/10/16 Apresentao do Prof.Mascarenhas. Bibliografia: - Desenho de Bases de Dados e Linguagem SQL ISTEC - Dossier Pedaggico AULA (2/23) 2007/10/17 Visualizao de slides da pg.1 at pg. 8 inclusive: Ficheiro: AULA 071017-01 - Acetatos BD - Prof. Mascarenhas.pdf AB O R D AG E M T R A DICIO N A L PA R A A CO N CE P O D E S IS T E M A S IN F O R M T IC O S O Servio de Informtica responde s necessidades de processamento das vrias unidades orgnicas da Instituio desenvolvendo ou adquirindo novas aplicaes; Nestas circunstncias, cada aplicao desenvolvida para responder a necessidades pontuais de um determinado departamento ou grupo de utilizadores; No existe, normalmente, nenhuma estratgia global que enquadre o desenvolvimento dessas aplicaes; Para cada nova aplicao normalmente concebido um conjunto de ficheiros, embora frequentemente muitos dos dados referentes a esses ficheiros j existam noutros ficheiros de outras aplicaes. Contudo, estes ltimos ficheiros teriam de ser reestruturados para satisfazer as necessidades concretas da nova aplicao. Isto levaria a que as aplicaes j existentes, que utilizam esses ficheiros, fossem alteradas. por essa razo que se torna normalmente mais simples e menos arriscado conceber novos ficheiros para cada nova aplicao.

Uma caracterstica muito importante do desenvolvimento com base em ficheiros, que cada programa contm as definies dos ficheiros que manipula, sendo a sua lgica interna completamente dependente da estrutura, formatos e mtodos de acesso desses ficheiros. Problemas Tpicos dos sistemas de Processamento Tradicionais Redundncia Dados Inconsistentes Inflexibilidade Reduzida Partilha de Dados Dificuldade de Implementao de Normas (Nomes, Formatos, Restries de Acesso) Fraca Produtividade da Programao Grande Esforo de Manuteno

Redundncia no controlada Na abordagem tradicional cada programa "possui" os seus prprios ficheiros. Esta situao origina grande redundncia. As principais desvantagens da redundncia so as seguintes: (1) Espao em disco desperdiado; (2) Recolha de um mesmo dado vrias vezes para actualizao dos vrios ficheiros; (3) Inconsistncias entre as vrias ocorrncias do mesmo dado. Dados Inconsistentes Atendendo a que um mesmo dado pode existir em vrios ficheiros, tambm normalmente recolhido em instantes diferentes, o que leva a que, no mesmo instante, possa ter valores diferentes nesses mesmos ficheiros. Inflexibilidade Um sistema informtico tradicional funciona normalmente bastante bem para todas as aplicaes que foram inicialmente previstas. bastante inflexvel na resposta a questes no previstas, por duas ordens de razes: (1) A estrutura dos programas profundamente dependente da estrutura dos ficheiros, o que leva a que qualquer modificao destes ltimos obrigue a alteraes em todos os programas que os utilizem; (2) As linguagens de manipulao associadas informtica tradicional, por exemplo. COBOL, pela sua prpria estrutura, obrigam a um grande e demorado trabalho de programao para cada nova aplicao. Reduzida Partilha de Dados O desenvolvimento tradicional induz uma poltica completamente ineficaz em relao gesto dos dados e da informao nas organizaes: Os dados so propriedade de um rgo. Na conjuntura actual, a informao transformou-se num recurso to importante para as organizaes, como os recursos clssicos: Financeiros, recursos humanos, etc. Assim sendo, deve ser planeado, gerido e controlado de forma estratgica e integrada, de forma a satisfazer necessidades organizacionais e no apenas necessidades particulares de determinado rgo. Dificuldade de Implementao de Normas (Nomes, Formatos, Restries de Acesso) Fraca Produtividade da Programao Grande Esforo de Manuteno AULA (3/23) 2007/10/23 Visualizao de slides da pg.9 at pg. 21 inclusive, sobre: Ficheiro: AULA 071017-01 - Acetatos BD - Prof. Mascarenhas.pdf B ASE S DE D A D O S Conjunto integrado de dados que sero partilhados e utilizados concorrentemente para mltiplos objectivos por mltiplos tipos de utilizadores. Embora os vrios utilizadores partilhem os mesmos dados, tm perspectivas e direitos diferenciados sobre eles. Esta definio caracterizada por alguns conceitos que nos parecem fundamentais: Integrao Partilha Concorrncia Mltiplos Objectivos por Mltiplos Tipos de Utilizadores Neste ponto, pretende-se enunciar uma das principais diferenas do ambiente base de dados em relao ao ambiente tradicional: Os mesmos dados vo poder ser utilizados, provavelmente com diferentes nveis de agregao, por utilizadores a diferentes nveis na organizao, no s pelos operacionais, mas tambm por gestores aos nveis tctico e estratgico. Vantagens da abordagem Base de Dados Diminuio da Redundncia Aumenta a Integridade (Consistncia) Diminui o Espao Ocupado Partilha de Dados Controlo Centralizado de Dados

Normas Integridade Segurana Recuperao Facilidade de Mudana Utilizao de " Linguagens de Interrogao" pelos Utilizadores Finais Isolamento entre os programas e as Modificaes Base de Dados (Data Independence) Maior Facilidade de Manuteno Algumas notas em relao ao "Controlo Centralizado de Dados": Normas Implementao de normas relativamente a nomes, formatos e restries de acesso aos dados. Integridade Possibilidade de gerir a integridade de forma centralizada. muito desejvel que a integridade possa ser definida de forma centralizada e juntamente com a definio da base de dados, o que no s permite que seja verificada sempre que haja uma actualizao, como leva a uma maior produtividade no desenvolvimento dos programas de actualizao (em que, como se sabe, grande parte do cdigo trata de validaes). Segurana Trata-se da possibilidade de definio de quem pode aceder a qu e como ( interrogao, modificao, etc...). Recuper ao Possibilidade de recuperao da base de dados contra um mau funcionamento dos programas, utilizadores, mquinas ou comunicaes. (os SGBD disponibilizam ferramentas para uma boa gesto deste problema, que deve ser cuidadosamente equacionado pela administrao da base de dados.) Perigos da ab ordagem Base de Dados Necessidade de pessoal especializado Interferncia com dados partilhados Conflito organizacional Independncia entre Dados e Processos (Data Independence) Lgica Os utilizadores e respectivos programas so independentes da estrutura lgica da base de dados. Significa isto que quaisquer alteraes estrutura lgica da base de dados, (incluso de mais atributos em tabelas e incluso de novas tabelas, deixa inalterveis todos os programas, independentemente dessas alteraes). Fsica Os utilizadores e respectivos programas so independentes da estrutura fsica da base de dados. Significa isto que quaisquer alteraes estrutura fsica (de armazenamento) da BD deixa inalterveis todos os programas. Algumas Justificaes Organizacionais Para a Opo "BD" Constante mudana quanto a dados e aplicaes Dados Inconsistentes Inflexibilidade Reduzida Partilha de Dados Dificuldade de Implementao de Normas (Nomes, Formatos, Restries de Acesso) Fraca Produtividade da Programao Grande Esforo de Manuteno

SIS T E M A DE GE S T O D E B ASE S DE D A D O S (SG B D) o software que gere todo o acesso base de dados, permitindo: Definio dos Dados (DDL) Acesso e Manipulao dos Dados (DML) Controlo de Dados (DCL) Administrao de Transaces (TML) Assegurando: Integridade Segurana Recuperao Acesso Concorrente da Base de Dados A D M INIST R A O DE B ASE S DE D A D OS o grupo responsvel pela gesto da base de dados. Algumas funes da Administrao da Base de Dados: Modelo Conceptual da BD (na ausncia de Administrao de Dados) Modelos Lgicos/ Fsicos da BD Definio de Autorizaes e Regras de Integridade Definio de estratgias de Backup e Recovery Acompanhamento da evoluo da Performance Reestruturao da base de dados em caso de necessidade Viso geral de um sistema de bases de dados

A informao constitui o contedo da base de dados. Para que possa ser armazenada e gerida, essa informao necessita de uma estrutura. Essa estrutura criada e mantida pelo software do sistema de gesto de bases de dados (SGBD). O SGBD o elemento nuclear, uma vez que o software do SGBD que implementa o modelo de base de dados numa determinada plataforma de hardware e software. A designao genrica utilizadores aplica-se a: utilizadores finais, utilizadores especializados, programadores e gestores ou administradores do sistema. AULA (4/23) 2007/10/24 Visualizao de slides da pg.22 at pg. 41 inclusive: Ficheiro: AULA 071017-01 - Acetatos BD - Prof. Mascarenhas.pdf

M O D E L O RE L A C IO NA L Modelo de Dados

Estrutura de Dados do Modelo Relacional

Relao Relao

Tabela de valores, com algumas caractersticas especiais: Os valores de cada coluna tm todos o mesmo domnio (conjunto de valores possveis) e cada coluna tem um ttulo. No existe a noo de "posio" em relao s colunas, i.e. a ordem das colunas arbitrria - no existe a noo de "prxima coluna" ou "coluna anterior". No existe a noo de "nmero de linha", i.e., a ordem das linhas arbitrria no existe a noo de "prxima linha" ou "linha anterior".

Podemos alterar a ordem das linhas ou das colunas, sem que isso afecte o contedo da informao. Exemplo de Relao

Conceitos Grau de Relao: Nmero de colunas Atributo: Coluna Esquema de Relao: Definio de uma Relao Exemplo: Empregado (NEmp, Nome, Telef, Categ, Salrio, Comisso, Funo) Esquema Relacional: Definio de uma Base de Dados Relacional = Conjunto de Esquemas de Relao Chave (candidata) de uma Relao: Atributo ou conjunto de atributos que identificam cada ocorrncia da relao, i.e., no existem duas linhas da relao com o mesmo conjunto de valores neste(s) atributo(s) Exemplo:

Chave Primria da uma Relao : De entre as chaves candidatas de uma relao, escolhe-se uma para ser a chave efectiva da mesma (a que for mais til, no sistema em questo). A essa chave, d-se o nome de Chave Primria. Chave Estrangeira de uma Relao: Em algumas relaes, temos um atributo (ou conjunto de atributos) cujas ocorrncias so referncias a uma chave candidata (normalmente a chave primria) de uma outra relao. A esses atributos damos o nome de Chaves Estrangeiras.

Conjunto de Relaes, cujo contedo varia ao longo do tempo Exemplo de Base de Dados Relacional:

Factura (num_factura, data_emisso, data_pagamento, num_cli) Cliente (num_cli, nome_cli, morada, cidade, pais, tipo_cli) Produto (cod_prod, nome_prod, preo, qtd_existe) Fact_Prod (num_factura, cod_prod, quant) Notas:

CREATE TABLE Cliente

( num_cli integer(5) CONSTRAINT chave_cliente PRIMARY KEY, nome_cli char(30) NOT NULL, morada char(40) NOT NULL, cidade char(15) NOT NULL, pas char(20) tipo_cli integer(2)); CREATE TABLE Produto ( cod_prod integer(4) CONSTRAINT chave_prod PRIMARY KEY, nome_prod char(30) NOT NULL, preo numeric(7,2) NOT NULL, qtd_existe integer(10)); CREATE TABLE Factura ( num_factura integer(5) CONSTRAINT chave_fact PRIMARY KEY, data_emisso date NOT NULL, data_pagamento date, num_cli integer(5) CONSTRAINT fact cli REFERENCES Cliente(num_cli)); CREATE TABLE Fact-Prod ( num_factura integer(5) NOT NULL CONSTRAINT fact-prod-fact REFERENCES Factura(num_factura), cod_prod integer(4) NOT NULL CONSTRAINT fact-prod-prod REFERENCES Produto(cod_prod), quant integer(10), CONSTRAINT chave_fact_pro PRIMARY KEY (num_factura, cod_prod)); Operadores do Modelo Relacional

Operaes sobre Relaes

Projeco A partir de UMA relao, obter apenas algumas colunas (com eliminao de repeties)

Notas: SELECT nome_cli, morada FROM Cliente; SELECT DISTINCT Pas FROM Cliente; Restrio ou Seleco A partir de UMA relao, obter apenas algumas linhas (eliminando as restantes), utilizando para isso uma qualquer condio booleana.

Notas: SELECT * FROM Fact_Prod WHERE num_fact=2; O Operador U ' U ' poder ser um dos seguintes operadores: 1. Igualdade 2. Desigualdade 3. Menor que ' 4. Menor ou igual que 5. Maior que 6. Maior ou igual que 7. Mximo menor que 8. Mximo menor ou igual que 9. Mnimo maior que 10. Mnimo maior ou igual que Poderemos tambm restringir o conjunto das linhas que queremos obter, utilizando os operadores lgicos (e, ou, negao) sobre duas ou mais condies.

Notas: SELECT * FROM Fact_Prod WHERE num_fact=2 AND quant>=20; Produto Cartesiano Combinao de TODAS as linhas de uma tabela com TODAS as linhas da

outra Notas: SELECT * FROM Cliente, Produto; Juno Natural ou Equi-Join A partir de duas tabelas, obter uma terceira, concatenando as colunas e restringindo apenas as linhas com o mesmo valor em algum atributo.

Notas: SELECT * FROM Fact_Prod, Produto WHERE Fact_Pro.cod_prod=Produto.cod_prod; AULA (5/23) 2007/10/30 Visualizao de slides da pg.42 at pg.56 inclusive: Ficheiro: AULA 071017-01 - Acetatos BD - Prof. Mascarenhas.pdf

U - Juno
Podemos estender a noo de Juno, de forma que a condio de restrio das linhas no seja apenas a igualdade, mas uma qualquer operao U

Notas: SELECT * FROM Fact_Prod, Produto WHERE Fact_Prod.cod_prod<Produto.cod_prod; Unio Unio de duas relaes a relao composta por todas as linhas de ambas (com eliminao de repeties).

Notas: SELECT Nome, Morada FROM Clientes UNION SELECT Nome, Morada FROM Fornecedores; Interseco Interseco de duas relaes a relao composta pelas linhas que pertencem a ambas as relaes.

Notas:

SELECT Nome, Morada FROM Clientes INTERSECT SELECT Nome, Morada FROM Fornecedores; Diferena Diferena de duas relaes a relao composta pelas linhas que pertencem primeira e NO pertencem segunda.

Notas: SELECT Nome, Morada FROM Clientes MINUS SELECT Nome, Morada FROM Fornecedores; Diviso Aritmtica Inteira

Diviso Relacional

Exemplo:

Significado Pratico da Diviso Relacional

Notas: SELECT nome FROM Fornecedor WHERE NOT EXISTS (SELECT * FROM Prods_especiais WHERE NOT EXISTS (SELECT * FROM Forneceu WHERE Forneceu.cod_fornec = Fornecedor.cod_fornec and Forneceu.cod_prod = Prods_especiais.cod_prod)) O Conceito de valor "NULL" Numa relao podemos, em determinado momento. ler um atribulo cujo valor desconhecido ou no aplicvel no momento). Diz-se ento que esse elemento tem o valor NULL. Caractersticas dos valores NULLs: Independente do domnio - inteiro, real, caracter, data, etc. No comparveis entre si, i.e., nunca poderemos dizer que um valor NULL igual a outro valor NULL. Regras de Integridade

Integridade de Entidades: Nenhuma componente de uma chave primria de uma relao poder em algum momento ter valor NULL. Integridade de Domnio: Cada coluna de cada relao tem um domnio, isto , um conjunto (limitado ou no) de valores possveis. Em todas as linhas dessa relao, o valor dessa coluna ter que pertencer SEMPRE a esse domnio. Integridade de Colunas: A integridade de colunas um refinamento da integridade de domnio.

Integridade Referencial: Numa relao, qualquer ocorrncia de uma chave estrangeira dever obrigatoriamente existir como ocorrncia de uma chave candidata (normalmente a primria) da relao qual se refere (ou ser nula no caso de no obrigatoriedade). Integridade Definida pelo Utilizador: Qualquer outra regra a que as ocorrncias de uma determinada base de dados devero obedecer e que no abrangida pelos tipos atrs mencionados. AULA (6/23) 2007/10/31 Visualizao de slides da pg.1 at pg. 20 inclusive: Ficheiro: AULA 071031-01 - Slides BD - Prof. Mascarenhas.pdf M O D E L O E NT ID A DE -ASS OC IA O Objectivos: Estruturar os dados de forma a: Diminuir a redundncia e garantir a integridade dos dados; Partilha de dados por diversas aplicaes (independncia entre dados e processos); Capacidade de resposta a questes no previstas. O Modelo Conceptual especificado em dois nveis: 1. Grfico - M.E.A. (Modelo Entidade-Associao)

2. Descritivo - Especificaes para cada componente do modelo

Etapas do mtodo:

Entidade: Qualquer objecto ou conceito, com interesse para a organizao, sobre o qual importante guardar informao. Exemplo: Cliente, Produto, Contrato, Equipamento,

Atributo: Para cada entidade necessrio conhecer as suas propriedades relevantes para o sistema. Um atributo uma propriedade relevante de uma entidade. Exemplo: Cliente: nmero de cliente, nome, morada, telefone, ... Os atributos so elementos indivisveis de informao e podem assumir diferentes valores de um domnio. Identificadores (chave candidata): So os atributos que identificam de forma inequvoca as diferentes ocorrncias de uma entidade. Para um atributo ser identificador, no podem existir, em caso algum, duas ocorrncias distintas dessa entidade em que esse atributo assuma o mesmo valor. Exemplo: Nmero de funcionrio.

Os restantes atributos que apenas descrevem uma entidade designam-se de descritores. Associao: Uma associao estabelece uma relao entre uma ou vrias entidades. Uma associao pode ser de vrios tipos: Binria - associao entre duas entidades;

Complexa - associao entre vrias entidades;

Unria - associao de uma entidade consigo prpria.

Designao das Entidades e Associaes: Normalmente, utilizam-se: Substantivos - para referenciar Entidades Verbos - para referenciar Associaes Associao: Uma associao pode limitar-se a relacionar entidades entre si. Exemplo: Uma associao que relaciona "Empregado" com "Departamento" pode representar: Os empregados afectos a um departamento; A que departamento est afecto um empregado.

Entidade Associativa: Uma associao que tem atributos prprios. Exemplo: Uma associao que relaciona cliente com produto para alm de indicar quais os produto vendidos ao cliente poder igualmente indicar o preo que o cliente pagou pelo produto.

Transformao de uma Entidade Associativa em Entidade: Uma entidade-associativa uma entidade e pode ser representada como tal. Exemplo:

Associao: As associaes tambm tm identificador. Normalmente o identificador de uma associao constitudo pela concatenao dos identificadores das entidades associadas.

(Cdigo_fornecedor, Cdigo-produto)

Ocorrncias: A entidade ARMAZEM tem duas ocorrncias; A entidade PRODUTO tem 5 ocorrncias; A associao ARMAZENA tem 3 ocorrncias.

Grau de uma associao (Cardinalidade) um-para-um (1:1) um-para-vrios (1:N) vrios-para-vrios (M:N) Associaes 1:1 A cada ocorrncia da Entidade A est associada no mximo uma ocorrncia da entidade B e a cada ocorrncia da entidade B est associada no mximo uma ocorrncia da entidade A. Exemplo: Num curso cada disciplina leccionada por um s docente e cada docente lecciona apenas uma disciplina.

Associaes l:N A cada ocorrncia da Entidade A esto associadas vrias (uma ou nenhuma) ocorrncia da entidade B, mas a cada ocorrncia da entidade B est associada no mximo um ocorrncia da entidade A. Exemplo: Um departamento tem vrios empregados mas um empregado est afecto apenas a um departamento.

Um exemplo de Associao Unria : casamento, chefe-empregado,

N de Mdico Nome Especialidade

N de Mdico N de Doente Data-Hora Diagnstico Prescrio AULA (7/23) 2007/11/06

N de Doente Nome Estado Civil Morada Etc...

Visualizao de slides da pg.21 at pg. 27 inclusive: Ficheiro: AULA 071031-01 - Slides BD - Prof. Mascarenhas.pdf Associaes N:M A cada ocorrncia da Entidade A esto associadas vrias (uma ou nenhuma) ocorrncias da entidade B, e a cada ocorrncia da entidade B esto associadas vrias (uma ou nenhuma) ocorrncias da entidade A. Exemplo: Um livro pode ser escrito por vrios autores, assim como um autor pode escrever vrios livros.

Cardinalidade

Regras do sistema: 1 caso: Grau da associao 1: 1 Um professor lecciona no mximo um curso; Um curso leccionado no mximo por um professor; 2 caso: Grau da associao 1: N Um professor pode leccionar vrios cursos; Um curso leccionado no mximo por um professor; 3 caso: Grau da associao M: N Um professor pode leccionar vrios cursos; Um curso pode ser leccionado por vrios professores; Conectividade de uma associao Uma entidade pode participar numa associao de duas formas: Obrigatria: No pode existir nenhuma ocorrncia que no esteja associada a alguma ocorrncia da outra entidade associada. No Obrigatria: Podem existir ocorrncias que no estejam associadas a alguma ocorrncia da outra entidade que participa na associao.

Entidade A obrigatria Entidade B no obrigatria Exemplos:

Grau de uma associao complexa Exemplo: Fixa-se cada par de entidades e analisa-se qual o nmero de ocorrncias da terceira entidade: Para o par A, B s pode existir uma ocorrncia de C; Para o par B, C podem existir n ocorrncias de A; Para o par A, C s pode existir uma ocorrncia de B.

Vrias associaes entre as mesmas entidades Exemplo: O equipamento fornecido e assistido por fornecedores. Mas o fornecedor que assiste determinado equipamento pode no ser o mesmo que o fornece.

Exerccio: Ficheiro:

AULA 071106-01 Folha de exerccios.pdf

Modelizao de Informao l . Gesto de Estgios Considere que se pretende implementar um sistema automtico de atribuio de estgios a alunos do Departamento de Informtica. Pretende-se informatizar os seguintes processos: Gesto de alunos que podem concorrer a estgio; Afectao de alunos a estgios. Algumas consideraes sobre a gesto: A cada disciplina da licenciatura est associado um cdigo, um nome e um crdito. Cada aluno caracterizado por um nmero de cdigo, o nome, o curso, o ano que frequenta, as disciplinas em que est inscrito e as disciplinas em que obteve aprovao e respectiva classificao. S podem concorrer a estgio os alunos com um nmero mnimo determinado de crditos. Depois de ser publicada a lista de estgios oferecidos pelos organismos, os candidatos devero entregar ao responsvel pela atribuio dos estgios, uma lista de preferncias contemplando cinco escolhas. Cada estgio identificado por um nmero de cdigo, correspondente ordem de chegada Faculdade, e caracterizado pelo nome do organismo, a rea e o tema respectivo. Cada estgio atribudo ao candidato com maior mdia atendendo sua ordem de preferncia. AULA (8/23) 2007/11/07

Resoluo:

Aluno

Este smbolo representa uma relao com atributos prprios Aluno Cod_Aluno (Chave Candidata) Nome_Aluno Curso Ano Aprovao Cod_Aluno (Chave Candidata) Cod_Disciplina (Chave Candidata) Classificao (Chave Candidata) Data Disciplina Cod_Disciplina (Chave Candidata) Nome_Disciplina Numero_Creditos Concorrer Cod_Aluno (Chave Candidata) Cod_Estagio (Chave Candidata) Ordem_Preferncia

N
Inscrito Cod_Aluno(Chave Candidata) Cod_Disciplina (Chave Cand.) Data (Chave Candidata) Estagio Cod_Estagio (Chave Cand.) Area Tema Nome_Organismo

Outro exemplo da relao Empregado-Tarefa:

Inscrito

Disciplina

Frias NIP (Chave Candidata) Data_Inicio (Chave Candidata) Numero_Dias Despacho_Autorizador

Colaborador NIP (Chave Candidata) Nome Categoria_Profissional Estado_Civil Morada N_de_Dias_Frias Colaborador_Tarefa NIP (Chave Candidata) Cod_Tarefa (Chave Candidata) Data_Hora (Chave Candidata) Tempo_Gasto Funo_Desempenhada AULA (9/23) 2007/11/13

Parte_Doente NIP (Chave Candidata) Data_Inicio Numero_Dias Titulo_de_Baixa

Tarefa Cod_Tarefa (Chave Candidata) Designao_Tarefa Data_Inicio Data_Prevista_Fim

Folha de exerccios. Ficheiro:

AULA 071113-01 Folha de exerccios.pdf

Objectivo da folha de exerccios: Elaborar o Modelo Entidade_Associao e identificar em cada uma das entidades os elementos de dados relevantes destacando os identificadores dos restantes (Descritores). Identificar do mesmo modo os dados relativos s associaes entre Entidades.

Exerccio 1 da Folha de Exerccios: A Transimporta uma empresa de importao de mercadorias que efectua as suas compras atravs de contratos. Cada contrato, identificado por um nmero, firmado com um dado fornecedor e diz respeito a vrias mercadorias, as quais so identificadas atravs de um cdigo. Do contrato consta tambm a data de assinatura, o prazo de validade, a moeda e o valor. fixado no contrato o preo unitrio de compra de cada mercadoria, bem como a quantidade comprada que especificada numa unidade de medida. Esta unidade de medida sempre a mesma para cada mercadoria, independentemente do contrato. necessrio guardar informao (nome, endereo, telefone e fax) sobre os vrios fornecedores que so identificados por um cdigo. As mercadorias envolvidas num contrato so todas enviadas num nico transporte (identificado por um nmero). Para cada transporte necessrio conhecer o navio, a data prevista de partida e a data prevista de chegada. Resoluo:

Fornecedores Cod_Fornecedor(Chave) Nome Endereo Telefone Fax

Contrato Num_Contrato(Chave) Data_de_Assinatura Prazo_de_validade Moeda Valor Cod_Fornecedor

Transporte Cod_Transporte(Chave) Nome_Navio Data_Prevista_Saida Data_Prevista_Chegada

Mercadorias Cod_Mercadoria(Chave) Descrio Unidade_de_Medida

Contrato_Mercadorias Contrato_Transporte Num_Contrato(Chave) Cod_Transporte(Chave) Cod_Mercadoria(Chave) Cod_Contrato(Chave) Preo_Unitrio Quantidade AULA (10/23) 2007/11/14 Exerccio 2 da Folha de Exerccios: Foi a banca nacional recentemente enriquecida com um novo banco comercial, o Banco Turismo e Negcios, orientado para investimentos principalmente no sector do turismo. Para alm da sede em Lisboa abriram inicialmente mais 4 agncias, respectivamente em Porto, Coimbra, Faro e Portimo. Um ou mais clientes podem abrir conta na sede ou em qualquer das agncias. Para isso dirigem-se ao balco respectivo, onde pedem a abertura de uma conta ordem ou a prazo. Sobre o cliente o banco deve conhecer alm do nome, a morada, telefone, n do B.I. e n de contribuinte. As contas dos clientes so creditadas mediante a efectuao de depsitos. Quando um depsito efectuado fica registado a data do depsito, o montante e o nome do indivduo que efectuou o depsito. Uma das operaes mais vulgares o levantamento de fundos atravs de um cheque passado sobre a conta ordem. O banco guarda os dados referentes a todos os cheques que recebe, como por exemplo, o valor do cheque, a data e o local de emisso. Uma funo fundamental do banco conceder crdito, de forma a viabilizar a realizao de projectos que visam o desenvolvimento do turismo no pas. A concesso de crdito materializa-se atravs de uma autorizao para que a conta ordem possa apresentar um saldo devedor at um montante estipulado. A deciso de concesso de crdito para valores superiores a dez milhes de escudos centraliza-se na sede e pode ser alterada a pedido do cliente ou por determinao da direco do banco. Resoluo:

Agncia Cod_Agncia(chave) Nome Morada Cod_Postal Telefone Cliente_Conta Cod_Cliente(chave) Num_Conta(chave) Assinatura

Cliente Cod_Cliente(chave) Nome Morada Telefone Num_contribuinte Cheque Num_cheque(chave) Valor Data Local_emisso Num_Conta

Conta Num_Conta(chave) Data_Abertura Tipo Saldo Cod_agncia

Depsitos Num_Deposito(chave) Data Valor Nome_Depositante Num_Conta

Linha_Credito Num_Linha_Credito(chave) Data_Concesso Valor Num_Conta Despacho_Autorizador

AULA (11/23) 2007/11/20 Exerccio 3 da Folha de Exerccios: Pretende-se informatizar o sistema de informao subjacente ao funcionamento da empresa Super Pizzas. A Super Pizzas uma empresa de confeco e distribuio de pizzas ao domiclio, fabricando uma grande variedade de pizzas, combinando vrios tipos de ingredientes. De acordo com a sua dimenso, as pizzas so classificadas em grandes, mdias e pequenas e no que respeita ao tipo de confeco como "fofas" ou "estaladias". A Maria Joo, empregada da Super Pizzas, tem como funo receber, por telefone, as encomendas dos clientes. Alguns clientes encomendam vrias pizzas simultaneamente. Quando o cliente efectua uma encomenda registada a data e hora dessa encomenda, assim como o nome, morada e telefone do cliente. Nesse momento o cliente tambm informado do valor total que ir pagar. normalmente efectuado um desconto de 10% a clientes habituais. Com base no registo de encomendas, o Sr. Costa elabora as facturas e distribui o servio a efectuar pelos vrios estafetas da empresa que levaro a pizza e respectiva factura at ao cliente. Cada estafeta tem uma zona geogrfica prdefinida. tambm funo do Sr. Costa informar a cozinha das pizzas que necessrio fabricar (atravs do envio da nota de encomenda) e controlar a data e hora de confeco das pizzas confeccionadas, as quais, acompanhadas pela nota de encomenda, so encaminhadas para a lista de espera da distribuio onde os estafetas as iro buscar. O Sr. Sousa, scio principal da Super Pizzas, analisa as cpias das facturas elaboradas pelo Sr. Costa, verifica se todas as encomendas foram satisfeitas e regista os pagamentos efectuados pelos clientes. Periodicamente, o Sr. Sousa tambm actualiza a tabela de preos com base na procura assinalada e no custo estimado de fabrico de cada pizza que registado pela empresa. Resoluo:

Pizza Cod_Pizza (chave) Dimenso Tipo_Confeco Preo_Venda Ingredientes Cod_Ingrediente(chave) Nome Unidade_Medida Custo_Unitrio

Cliente Cod_Cliente(chave) Nome Morada Telefone Valor_Enc_Realizadas Factura Num_Factura(chave) Cod_Encomenda(chave) Data Valor Desconto Valor_total Pagamento Pizza_Ingredientes Cod_Pizza (chave) Cod_Ingrediente(chave) Quantidade

Encomenda Cod_Encomenda(chave) Cod_Cliente(chave) Data_Encomenda Hora_Encomenda Morada_Entrega

Estafeta Cod_Estafeta(chave) Nome Zona_Geografica

Encomenda_Estafeta Cod_Encomenda(chave) Cod_Estafeta(chave) Data_Entrega Hora_Entrega

Pizza_Encomenda Cod_Encomenda(chave) Cod_Pizza(chave) Quantidade Data_Hora_Fabrico

AULA (12/23) 2007/11/21 Exerccio 4 da Folha de Exerccios: Uma biblioteca guarda registo dos livros existentes e dos emprstimos aos seus scios. Cada scio identificado por um nmero de scio e cada exemplar de livro por um nmero de exemplar (pode existir mais do que um exemplar do mesmo livro). Para alm do nome, a morada e o contacto telefnico do scio so registados numa base de dados para ser possvel estabelecer comunicao quando necessrio, como por exemplo enviar avisos de devoluo quando um emprstimo dura mais do que o perodo estabelecido. As informaes registadas sobre os livros so o ttulo, autores, editor, data de publicao, um cdigo internacional ISBN, o preo de compra e o preo corrente. O preo de compra o preo que a biblioteca pagou pelo livro, enquanto o preo corrente o preo actual do livro no mercado. Considere que o ISBN de um livro um cdigo de dez dgitos com a seguinte estrutura:

O nmero de livros emprestados que o scio pode ter em seu poder actualmente estabelecido em dois escales em funo da categoria do scio (pleno ou correspondente). Se o scio tiver a categoria de "pleno" pode ter em seu poder 5 livros. Para os scios da categoria de "correspondente" o nmero mximo de livros emprestados 3. Quando um scio requisita para emprstimo um livro do qual no existe de momento nenhuma cpia disponvel feita uma reserva que posteriormente ser satisfeita, quando possvel. Reservas para o mesmo livro so satisfeitas por ordem de chegada. Resoluo:

Exemplar Num_Exemplar(chave) ISBN Preo_Compra Data_Publicao Autores Cod_Autor(chave) Nome

Scio Num_Scio (chave) Nome Morada Telefone Cod_Categoria Livro Titulo Editor ISBN(chave) Preo_Corrente

Emprestimo Num_Emprestimo(chave) Num_Exemplar Num_Scio Data_Emprestimo Data_Devoluo Categoria Cod_Categoria(chave) Designao N_Max_Livros

Reserva Num_reserva(chave) ISBN Num_Scio Data_Reserva Hora_Reserva Estado Autoria Cod_Autor(chave) ISBN

AULA (13/23) 2007/11/27 Exerccio 5 da Folha de Exerccios: Pretende-se informatizar o subsistema de gesto de voos da companhia area AIRFLIGHT. A companhia dedica-se no s a voos domsticos (voos dentro do pas) como tambm a voos internacionais. O pessoal de voo est organizado em tripulaes. A tripulao inclui o comandante do avio, um ou dois outros pilotos, vrias hospedeiras e comissrios de bordo. Cada funcionrio da AIRFLIGHT est afecto apenas a uma tripulao. Uma tripulao est especializada na conduo de um determinado tipo de avio. A AIRFLIGHT dispe de uma frota de avies, de vrias marcas, necessitando de conhecer a designao do aparelho (ex: Madeira), modelo e data de aquisio. Esta companhia dispe de vrios voos-tipo identificados por um cdigo (ex: AFY 121) e descritos por um aeroporto de partida, um aeroporto de chegada, durao da viagem, dia da semana e hora de partida. Por simplicidade pressupe-se que o avio no efectua paragens intermdias. Designa-se por voo a realizao de um determinado voo-tipo (ex: AFY 121) num determinado dia (12-03-2005). No inicio de cada ms realizado o planeamento de voos, sendo a cada voo afectado uma tripulao e um aparelho de um dos tipos possveis. A atribuio de um tipo de avio a um voo efectuada tendo em ateno o percurso de cada voo-tipo e o nmero previsvel de passageiros. So aceites inscries de passageiros para um determinado voo at uma hora antes da sua realizao, e at ao nmero mximo de passageiros previstos para o avio. As inscries podero ser provisrias, confirmadas ou estar em lista de espera. Sero confirmadas se houver pagamento do bilhete de avio; sero provisrias se for efectuada unicamente a reserva por telefone ou pessoalmente; caso no haja vagas na partida pretendida os passageiros ficaro em lista de espera. Resoluo:

Pessoal_de_Voo Codigo_Funcionario(chave) Nome Morada Telefone BI Data_admisso Categoria Codigo_Tripulao Voo Codigo_voo_tipo(chave) Data_realizao(chave) Cdigo_avio Cdigo_tripulao Inscrio Codigo_Passageiro Codigo_Voo_tipo Data_realizao Data_inscrio Estado

Tripulao Codigo_Tripulao(chave) Designao Npilotos Nhosp/comissrios Marca(chaves estrangeiras) Modelo(chaves estrangeiras)

Tipo_avio Marca(chave) Modelo(chave) Capacidade Raio_aco Velocidade

Voo_Tipo Codigo_Voo_Tipo(chave) Aeroporto_Partida Aeroporto_Chegada Hora_Partida Dia_Semana Durao

Avio Cdigo_avio(chave) Nome_avio Data_aquisio Marca Modelo

Pode_Efectuar Codigo_Voo_tipo(chave) Marca(chave) Modelo(chave)

Passageiro Codigo_passageiro(chave) Tipo_documento_id Numero_identificao Nome Morada Telefone

AULA (14/23) 2007/11/28 Visualizao de slides da pg.28 at pg. 45 inclusive: Ficheiro: AULA 071031-01 - Slides BD - Prof. Mascarenhas.pdf Transformao do Modelo Entidade-Associao num Esquema Relacional Esquemas de Relao: Ao nome da entidade seguido da lista dos seus atributos chama-se esquema de relao. Nome_Tabela (Atributo1, Atributo2, , AtributoN) O esquema relacional o conjunto dos esquemas de relao com as suas chaves. Exemplo:

Entidades: Cada Entidade d normalmente origem a uma tabela, com: Identificador da Entidade - Chave da Entidade Descritores da Entidade - Outros Atributos da Entidade Chaves Estrangeiras - Identificadores de outras Entidades que eventualmente lhe estejam associadas Associaes Binrias Associaes 1:1 1.1.Ambas as entidades so obrigatrias

Basta um esquema de relao para representar esta situao RE1E2(C1,d11,......,d1n,C2,d21,.,d2k) Chaves Candidatas: C1,C2 1.2.Apenas uma entidade obrigatria

Para representar esta situao so necessrios dois esquemas de relao, um para cada entidade. RE1(C1,d11,.,d1n) RE2(C2,d21,........,d2n,C1) 1.3.Nenhuma das entidades obrigatria

Esta situao pode ser representada por trs esquemas de relao, um para cada entidade e um para a associao. RE1(C1,d11,...,d1n) RE2(C2,d21,...,d2k) RA(C1,C2) Chaves Candidatas: C1,C2 Associaes Binrias Associaes 1:N 2.1.Entidade do lado N obrigatria

Esta situao representada por dois esquemas de relao, um para cada entidade. RE1(C1,d11,.,d1n) RE2(C2,d21,......,d2k,C1) 2.2.Entidade do lado N no obrigatria

Esta situao pode ser representada por trs esquemas relacionais, um para cada entidade e um para a associao. RE1(C1,d11,.,d1n) RE2(C2,d21,.,d2k) RA(C2,C1) Associaes Binrias Associaes M:N

Independentemente das obrigatoriedades, esta situao sempre representada por trs esquemas de relao, um para cada entidade e um para a associao. RE1(C1,d11,.,d1n) RE2(C2,d21,.,d2k) RA(C1,C2) Associaes Complexas Associaes M:N:P

Esta situao representada por quatro esquemas de relao, um para cada entidade e um para a associao. RE1(C1,d11,.,d1n) RE2(C2,d21,.,d2k) RE3(C3,d31,.,d3h) RA(C1,C2,C3) Exemplo: Escola Profissional com curso com vrios mdulos, com monitores, e tambm formandos. Associaes Complexas Associaes M:N:1 A chave da associao neste caso concreto a concatenao das trs chaves das entidades. Contudo, pode no ser assim, pois este facto depende do grau da associao.

Exemplo:

RE1(C1,d11,.,d1n) RE2(C2,d21,.,d2k) RE3(C3,d31,.,d3h) RA(C2,C3,C1) Associaes Unrias Associaes 1:1 2.1.No obrigatria nos dois lados

Esta situao representada por dois esquemas de relao, um para a entidade e um para a associao. RE1(Cp1,dp1,,dpn) RA(Cp1,Cf1) Chaves candidatas: Cp1ouCf1 Exemplo: CIDADO (N_Bi,Nome,Morada,......) CASAMENTO (N_Bi_Marido, N_Bi_Mulher) Chaves candidatas N_Bi_Marido e N_Bi_Mulher

2.2.Obrigatria apenas de um dos lados

Esta situao representada por um esquema de relao. RE1(Cf1,df1,,dfn,Cp1) Cf Identificador do Piloto Cp Identificador do chefe de equipa 2.3.Obrigatria de ambos os lados

Esta situao representada por um esquema de relao. RE1(Cp1,dp1,,dpn,Cf1,df1,,dfn) (estrutura pai-filho) Chaves candidatas: Cp1ouCf1 Associaes Unrias Associaes 1:N 1.1.Obrigatria do lado N

Esta situao representada por um nico esquema de relao,

RE1(Cf1,df1,,dfn,Cp1) EMPREGADO(N_Emp,Nome,......,N_Emp_Chefe) Nota: Neste caso, necessrio ter em ateno que o chefe mximo (topo da hierarquia) tem de ser considerado como chefe de si prprio. 1.2.No obrigatria do lado N

Esta situao representada por dois esquemas de relao, um para a entidade, outro para a associao. RE1(Cf1,df1,,dfn) RA(Cf1,Cp1) Associaes Unrias Associaes M:N

Independentemente das obrigatoriedades, esta situao sempre representada por dois esquemas de relao, um para a entidade, outro para a associao. RE1(Cf1,df1,,dfn) RA(Cf1,Cp1) Exemplo: PEA(Cod_Pea,......) ESTRUTURA(Cod_Pea_Pai,Cod_Pea_Filho) AULA (15/23) 2007/12/04 Exerccio: Ficheiro: AULA 071204-01 Folha de exerccios.pdf

A empresa Vende Tudo, Lda, dedica-se comercializao de uma vasta gama de artigos com as mais diferentes caractersticas. Esta empresa ciente de que o futuro (e presente) do comrcio deve, tambm, contar com a componente de Comrcio Electrnico, o qual j comeou a demonstrar resultados, pretende constituir uma Base de Dados para suporte de um sistema de informao de Comrcio Electrnico para a Web. Este sistema deve poder apresentar qualquer tipo de artigo independentemente das suas caractersticas o que constituir o catlogo de artigos. Assim, para cada artigo pretende-se exibir os seguintes dados: Cdigo de artigo, descrio de artigo, preo, taxa de iva, imagens/vdeos sobre o artigo, sons sobre o artigo, descrio detalhada do artigo. Sendo que esta deve ser uma aplicao de comrcio electrnico pretende-se, tambm, fazer a manuteno da carteira de clientes, a qual poder ser feita directamente pelo prprio cliente, mediante a utilizao de uma palavra passe que ele prprio escolhe quando faz a inscrio no sistema (criao de cliente), e que deve contar com a opo de alterao aos seus dados j existentes. Sobre o cliente deve existir a seguinte informao: nmero de cliente, nome, morada, local, cdigo postal, n telefone, n fax, n contribuinte, palavra passe, morada de entrega, local de entrega, cdigo postal do local de entrega, data de criao, data da ltima utilizao. O sistema deve, tambm, ter disponvel um mdulo para aceitar encomendas que devem ser elaboradas a partir do catlogo inicialmente descrito. Sobre a encomenda deve existir a seguinte informao: n de encomenda, artigos encomendados, quantidade de cada artigo, preo de cada artigo, taxa de iva de cada artigo, quantidade total de artigos encomendados, valor total da encomenda. A partir destes elementos, represente o sistema construindo: O Modelo Entidade-Associao - 4 valores; Os Esquemas de Relao normalizados at terceira forma normal - 5 valores. Resoluo:

Tab_Cod_Postal Cod_Postal (chave) Localidade

Cliente Num_Cliente (chave) Telefone Fax Num_Contribuinte PSW Morada_Entrega Localidade_Entrega Cod_Postal_Entrega Data_Criao Data_Ultima_Actualizao Artigo_Sons Cod_Artigo(chave) Num_Sequencia Nome_Ficheiro_Sons

Encomenda Num_Encomenda(chave) Data_Encomenda Qtd_Total Valor_Encomenda Valor_IVA_Encomenda Data_Pre_Aviso Data_Envio Data_Recepo

Linha_Encomenda Num_Encomenda(chave) Cod_Artigo(chave) Quantidade_Encomendada

Artigo Cod_Artigo(chave) Designao Preo Cod_Taxa_IVA Descrio_arquivo

Artigo_Imagem Cod_Artigo(chave) Num_Sequencia Nome_Ficheiro_Imagem

AULA (16/23) 2007/12/05 Visualizao de slides da pg.1 at pg.24 inclusive: Ficheiro: AULA 071205-01 - Normalizao.pdf N O R M A L IZ A O Introduo O que a Normalizao? r E um Processo sistemtico, conduzido por regras, que tem como objectivo modificar o conjunto de tabelas obtido por transformao do Modelo Conceptual (Modelo Entidade Associao), num conjunto de tabelas equivalente mas mais estvel e menos redundante, evitando problemas com a insero, eliminao e actualizao de dados. Os Problemas da Redundncia Problemas de manuteno A repetio dos mesmos dados obriga a que sempre que se faz uma alterao ou remoo de dados se aceda s vrias partes da BD, o que pode por em causa a coerncia dos dados. Problemas de desempenho O maior estrangulamento dos SGBD , na maior parte dos casos, o acesso ao disco; muita redundncia obriga a muitos acessos ao disco para trazer os mesmos dados, embora possa acontecer o inverso, uma vez que a eliminao da redundncia conseguida pela da criao de novas tabelas.

As Formas Normais

Equilbrio entre N Relaes e Redundncia

Etapas da Normalizao

Exemplo: Suponhamos que pretendemos manter informao sobre todos os elementos relativos a uma factura: O esquema inicial da relao : facturas (n_fact, data_fact, n_cli, nome_cli, endereo, cod_art, designao, quant_art, preo_art, valor) Tabela no Normalizada - Facturas

Nota: No Modelo Relacional a ordem dos atributos (colunas) e das ocorrncias (linhas) diferente. Cada factura composta por um cabealho e por uma ou mais linhas (detalhes), o que significa que os atributos do cabealho se repetem p/cada uma das linhas de factura desse cliente, originando uma enorme redundncia. A 1FN resolve este problema decompondo esta tabela nas relaes necessrias eliminao dos atributos que se repetem e identificando as chaves das novas relaes. Tabelas na 1 Forma Normal

Definio da 1 Forma Normal (1FN) Uma tabela encontra-se na 1FN se todos os seus atributos estiverem definidos em domnios que contenham apenas valores atmicos (isto valores elementares e no conjuntos, grupos repetitivos). 1 Forma Normal No h atributos repetitivos Soluo: Criar uma tabela com os atributos repetitivos Introduo 2FN: Problemas na Tabela Detalhes Insero No possvel inserir informao sobre um produto novo (Gabardinas, por ex), enquanto este no for registado na relao detalhes aps a 1a factura. Actualizao Se pretendesse modificar o nome do produto carteira 4 para carteira especial 4 teramos que percorrer toda a tabela e fazer essa modificao em todos os registos da tabela detalhes. Definio da 2 Forma Normal (2FN) Uma relao est na 2FN se, para alm de estar na 1FN, todos os atributos no pertencentes a qualquer chave candidata dependem de toda a chave, e no apenas de parte dela. 2 Forma Normal No h dependncias parciais ou funcionais: todos os atributos dependem da totalidade da chave Soluo: Criar uma nova tabela para os atributos parcialmente dependentes. Dependncias Funcionais So dois atributos (ou dois grupos de atributos) ligados entre si intrinsecamente.

Num dado instante, em qualquer lugar da Bases de Dados onde figurem estes 2 atributos, a um dado Cdigo de artigo corresponder sempre a mesma Designao. Diz-se que Designao "depende" de Cdigo de artigo, que Cod_ Artigo "identifica" Designao, ou que Cod_ Artigo "define" Designao. Isto , existe uma dependncia funcional entre estes atributos.

Na relao detalhes existem atributos envolvidos em duas dependncias funcionais N_fact, cod_art cod_art quant_art, valor designao, preo_art

A dependncia cod_art Designao est em claro desacordo com a definio prvia de 2FN. A soluo criar as relaes detalhes e produtos. Tabelas na 2 Forma Normal

Nota: estas relaes j se encontram na 3FN Introduo 3FN: Problemas na Tabela Facturas Insero No possvel inserir informao sobre um novo cliente sem lhe atribuir um n de factura. Actualizao Uma alterao ao nome, morada ou localidade do cliente implica a actualizao de tantos registos quantas as facturas elaboradas para esse cliente. Definio da 3 Forma Normal (3FN) 3a Forma Normal A tabela est na 3FN se est na 2FN e No h dependncias transitivas: Nenhum atributo susceptvel de ser definido por atributos que no so chave, isto , cada atributo deve depender apenas da chave primria da relao. Soluo: Criar uma tabela para os atributos que so definveis por atributos que no so chave. Dependncias Transitivas

Nesta relao existem atributos envolvidos em dependncias transitivas N_fact N_cli, datafact N_cli Nome_cli, endereo Existe uma dependncia transitiva entre atributos no chave. Para passar esta tabela 3FN, eliminam-se as dependncias transitivas decompondo esta relao em duas. Tabelas na 3 Forma Normal

Exerccio: Normaliza a tabela: Encomendas(nenc,data_enc, ncli, nome_cli, morada, cod_art, designao, quant_art, preo_art, valor, nome_vendedor) Resoluo: Na 1 FN: Encomenda(nenc,data_enc, ncli, ncli, nome_cli, morada, valor, nome_vendedor) Detalhe_Encomenda(nenc, cod_art, quant_art, designao, preo_art) Na 2FN: Encomenda(nenc,data_enc, ncli, ncli, nome_cli, morada, valor, nome_vendedor) Novo_Detalhe_Encomenda(nenc, cod_art, quant_art) Artigo(, cod_art, designao, preo_art) Na 3FN: Encomenda(nenc,data_enc, ncli, nome_vendedor, valor) Cliente(ncli, nome_cli, morada,) Novo_Detalhe_Encomenda(nenc, cod_art, quant_art) Artigo(, cod_art, designao, preo_art) AULA (17/23) 2007/12/11 Exerccio:
N_Estudant e 100 100 100 Nome_Estudan te Marcelo Marcelo Marcelo Curs o INF. INF. INF. N_Disciplin a 01 02 03

Pauta Notas
Nome_Discipli na Matemtica ICC Prog1 N_Profess or 10 20 30 Nome_Profess or Antnio Jos Rui Categoria_Profess or Prof. Adjunto Assistente Assistente Nota_Obtid a 17 18 19

Resoluo: Na 1 FN: Estudante(N_Estudante, Nome_Estudante, Curso) Notas(N_Estudante, NDisciplina, Nome_Disciplina, N_Professor, Nome_Professor, Categoria_Professor, Nota_Obtida) Na 2 FN: Estudante(N_Estudante, Nome_Estudante, Curso) Nova_Notas(N_Estudante, NDisciplina, Nota_Obtida) Disciplina(NDisciplina, Nome_Disciplina, N_Professor, Nome_Professor, Categoria_Professor) Na 3 FN: Estudante(N_Estudante, Nome_Estudante, Curso) Nova_Notas(N_Estudante, NDisciplina, Nota_Obtida) Nova_Disciplina(NDisciplina, Nome_Disciplina, N_Professor) Professor(N_Professor, Nome_Professor, Categoria_Professor) Poderia fazer tambm: Estudante(N_Estudante, Nome_Estudante, Curso) Nova_Notas(N_Estudante, NDisciplina, Nota_Obtida) Nova_Disciplina(NDisciplina, Nome_Disciplina, N_Professor) Professor(N_Professor, Nome_Professor, Cdigo_Categoria) Categoria(Cdigo_Categoria, Designao, Vencimento_Base)

Exerccio:. Ficheiro:

AULA 071211-01 Folha de Exercicios.pdf

A Autorent uma empresa de aluguer de automveis que opera em Lisboa. Os veculos que a Autorent aluga esto agrupados em diversas categorias: veculos de gama alta (por exemplo, Mercedes, Audi e BMW), veculos ligeiros de gama mdia (ex: Honda Civic e Lancia Dedra), veculos ligeiros utilitrios (ex: Renault Clio) e veculos comerciais (ex: Renault Express). Sobre cada veculo necessrio registar a matrcula, a marca, o modelo, a cilindrada, o ano de fabrico, e o valor de aquisio. Os veculos podero estar equipados com ar Condicionado e ter, ou no, tecto de abrir. Os preos de aluguer so estipulados por dia e dependem directamente da categoria do veculo. Quando um novo cliente contacta a Autorent para proceder ao aluguer ou reserva de uma viatura preenchida uma ficha com os seus dados pessoais (que inclui o nome, morada, telefone, nmero do bilhete de identidade, nmero e data da licena de conduo). Aos melhores clientes da empresa so atribudos cartes de desconto, com a validade de um ano. O carto Autorent Classic oferece um desconto de 15% no aluguer de qualquer veculo e o carto Autorent Gold proporciona um desconto de 25%. Os clientes apenas podem possuir um dos cartes, os quais so pessoais e intransmissveis. Quando se procede ao aluguer de um veculo, o funcionrio da empresa regista as datas, _horas e locais de entrega e de devoluo do veculo, assim como o valor a pagar pelo cliente. O cliente dever efectuar o pagamento integral do aluguer antes de receber o automvel. Caso exista reserva, o cliente dever efectuar um depsito com um valor mnimo de 20% do valor do aluguer ou, se preferir, proceder ao pagamento integral. 1. A partir desta descrio simplificada do sistema de informao da Autorent elabore um Modelo Entidade-Associao adequado descrio apresentada. (5 valores) 2. Derive o esquema relacional das tabelas, devidamente normalizadas, com os atributos que entender relevantes. (5 valores) Resoluo: Veiculo(Matricula, Marca, Modelo, Cilindrada, Ano_Fabrico, Valor_Aquisio, Ar_Condicionado, Tecto_Abrir, Cod_Categoria) Categoria(Cod_Categoria, Cat_Designao, Valor_Dia) Reserva(Num_Reserva, Num_Cliente, Data_Reserva, Cod_categoria, Deposito, Data_Entrega, Data_Devoluo) Aluguer(Data_Aluguer, Hora_Entrega, Local_Entrega, Local_Devoluo, Hora_Devoluo, Matricula) Cliente(Num_Cliente, Nome, Morada, Telefone, Num_BI, Num_Lic_Cond, Data_Lic_Cond,) Cartao(Num_Cartao, Tipo_Carto, Data Validade, Num_Cliente) Tipo_Cartao(Tipo_Cartao, Designao, Desconto) Factura_Recibo(Num_Recibo, Data, Valor, Data_Aluguer, Matricula)

AULA (18/23) 2007/12/12 Correco do exerccio da aula anterior. AULA (19/23) 2008/01/02 O Prof. faltou. AULA (20/23) 2008/01/08 Os Exames sero nas seguintes datas: 1 Chamada 29 Janeiro Tera-Feira 19:00 2 Chamada 7 Maro 19:00

Introduo ao SQL (Structured Query Language)


Ateno este livro est incompleto, falta a pgina 32 (erro de scanning). Visualizao de apontamentos da pg.8 at pg. 16 inclusive: Ficheiro: AULA 080108-01 Apontamentos SQL - Prof. Mascarenhas.pdf Visualizao de apontamentos da pg.38 at pg. 55 inclusive: Ficheiro: AULA 080108-01 Apontamentos SQL - Prof. Mascarenhas.pdf AULA (21/23) 2008/01/09 Visualizao de apontamentos da pg.55 at pg. 81 inclusive: Ficheiro: AULA 080108-01 Apontamentos SQL - Prof. Mascarenhas.pdf AULA (22/23) 2008/01/15 Visualizao de apontamentos da pg.81 at pg. 90 inclusive: Ficheiro: AULA 080108-01 Apontamentos SQL - Prof. Mascarenhas.pdf Juno de Uma Tabela com ela prpria.

EMPREGADO (Num_Emp, Nome, Categoria, Num_Emp_Chefe)


Num_Emp Nome Categoria Num_Emp_Chefe

1 2 3 SELECT FROM WHERE

Francisco Manuel Artur E1.Nome, C1.Nome Empregado E1, Empregado C1 E1.Num_Emp_Chefe=C1.Num_Emp

1 1 3

3 3 3

TABELA E1 Num_Emp, Nome, Categoria, Num_Emp_Chefe TABELA C1 Num_Emp, Nome, Categoria, Num_Emp_Chefe

E1
Num_Emp Nome Categoria Num_Emp_Chefe

C1
Num_Emp Nome Categoria Num_Emp_Chefe

1 1 1 2 2 2 3 3 3

Francisco Francisco Francisco Manuel Manuel Manuel Artur Artur Artur

1 1 1 1 1 1 2 2 2

3 3 3 3 3 3 3 3 3

1 2 3 1 2 3 1 2 3

Francisco Manuel Artur Francisco Manuel Artur Francisco Manuel Artur

1 1 2 1 1 2 1 1 2

3 3 3 3 3 3 3 3 3

Do comando Select resulta esta tabela: Francisco Artur Manuel Artur Artur Artur Visualizao de apontamentos da pg.91 at pg. 99 inclusive: Ficheiro: AULA 080108-01 Apontamentos SQL - Prof. Mascarenhas.pdf Exercicio: Clientes (CodCliente, Cliente, Profisso, Localidade) Agncias (CodAgncia, Agncia, Localidade) Contas (NumConta, TipoConta, CodCliente, CodAgncia, Saldo) Emprestimos (NumEmprestimo, CodCliente, CodAgncia, Valor) Quais os clientes ( CodCliente e Cliente) deste banco? SELECT CodCliente, Clientes FROM Clientes; Quais os clientes que residem em Faro? SELECT * FROM Clientes WHERE Localidade=Faro; Quais os clientes (CodCliente) com contas nas agncia cujo CodAgncia=333? SELECT DISTINCT CodCliente FROM Contas WHERE CodAgncia=333; Quais os clientes que residem na mesma localidade das agncias onde possuem contas? SELECT Clientes.* FROM Clientes, Agncias, Contas WHERE Clientes.Localidade=Agncias.Localidade AND Contas.CodCliente=Clientes.CodCliente AND Agncias.CodAgncia=Contas.CodAgncia; AULA (23/23) 2008/01/16 Continuao da aula anterior. Quais os clientes com emprstimos de valor superior a 500000 Euros? SELECT Clientes.* FROM Clientes, Emprestimos WHERE Clientes.CodCliente=Emprestimos.CodCliente AND Emprestimos.valor>500000; Quais os nomes dos clientes com a mesma profisso que o cliente com o CodCliente=1000? SELECT C1.Cliente FROM Clientes C1, Clientes C2 WHERE C1.profisso=C2.Profisso AND C2.CodCliente=1000;

Listar as Contas (NumConta, saldo) da agncia cujo CodAgcnia=111, por ordem decrescente do seu valor de saldo. SELECT NumConta, saldo FROM Contas WHERE CodAgencia=111 ORDER BY 2 Desc; Quantas contas existem em todas as agncias do banco? SELECT COUNT (*) FROM Contas; Quantos clientes possuem contas na agencia cujo CodAgncia=111? SELECT COUNT (DISTINCT CodCliente) FROM Contas WHERE CodAgencia=111; Listar o nmero de contas existentes em cada agncia. SELECT CodAgencia, COUNT (*) FROM Contas GROUP BY CodAgencia; Para cada agncia (CodAgencia) com menos de 1000 contas, listar os valores mximos e mnimos dos saldos dessas contas, assim como o saldo mdio. SELECT CodAgencia, MAX(saldo), MIN(saldo), AVG(saldo) FROM Contas GROUP BY CodAgencia HAVING COUNT(*)<1000; Quais os clientes cuja profisso desconhecida? SELECT * FROM Clientes WHERE Profisso IS NULL Se a Pergunta fosse para abranger todos faria-se: SELECT * FROM Clientes WHERE Profisso IS NULL OR IS NOT NULL Estrutura do Exame Sistema de ficheiros tradicionais / Sistemas de Base de Dados (caractersticas - desvantagens) Componentes do ambiente BD Modelo Relacional Estrutura de dados (Chave, Coluna, Tupulo, etc) Operadores Relacionais Regras de Integridade (Referncia, Noo de domnio, etc) Modelo de Concepo Entidade-Associao Atributos relevantes derivados de um conjunto de tabelas No esquecer sublinhar chaves primrias Formas Normais (1, 2, 3) SQL

Potrebbero piacerti anche