banco de dados puc

Download Banco de Dados Puc

If you can't read please download the document

Upload: albertoufg

Post on 27-Jun-2015

894 views

Category:

Documents


19 download

TRANSCRIPT

Banco de Dados I

0

BANCO DE DADOS IV0 Professor: Ivon Rodrigues Canedo

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

1 NDICE

1.

2. 3. 4. 5. 6. 7. 8. 9.

Banco de Dados 1.1. Um Definio 1.2. Sistema Gerenciador de Banco de Dados 1.3. Tipos de Modelos de Dados O Modelo de Dados 2.1. Componentes de um Modelo de Dados Convenes para Construo de um DER 3.1. Nomeclatura dos elementos de um DER 3.2. Exemplos de DER Exerccios Normalizao de Dados Modelo Relacional Restries no Modelo Relacional Exerccios de Modelagem de Dados SQL 9.1. Create Table 9.2. Alter Table 9.3. Drop Table 9.4. Create Index 9.5. Constraint 9.6. Insert Into 9.7. Delete 9.8. Update 9.9. Select Into 9.10. Select 9.11. Atributos ALL, DISTINCT, DISTINCTROW, TOP 9.12. Clausula From 9.13. Clausula Group BY 9.14. Clausula Having 9.15. Clausula In 9.16. Clausula Order BY 9.17. Clausula Where 9.18. Funes Agregadas SQL 9.19. Operao Inner Join 9.20. Operao Left Join e Right Join 9.21. Operao Union

003 003 003 003 007 007 019 020 020 021 022 031 032 037 045 046 049 050 051 052 054 056 057 058 059 060 062 063 064 065 066 068 070 073 074 075

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

2 076 078 079 080 081 081 082 083 084 084 085 085 087 088 091 111 137 138 143 145 147 149 153

10. 11. 12. 13. 14. 15. 16. 17. 18. 19.

20.

9.22. Subconsulta Sql 9.23. Instruo Transform 9.24. Declao Parameters 9.25. Operador Between...And 9.26. Operador In 9.27. Operador Like 9.28. Caracteres Curinga Create User ou Group Add User Drop User ou Group Alter User ou Database Grant Revoke Tipos de Dados SQL Exerccios SQL Resolvidos O Banco Acadmico Exerccios SQL 19.1. Banco de Dados Acadmico Parte I 19.2. Banco de Dados Cirrgico 19.3. Banco de Dados Famlia Zacharias 19.4. Banco de Dados Transporte 19.5. Banco de Dados Acadmico Parte II Exerccios Diversos

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

3

BANCO DE DADOS Uma Definio um conjunto de dados, relativos a um determinado ambiente, por exemplo, um empresa de fornecimento de energia eltrica, armazenados em um ou vrios computadores e que guardam entre si algum relacionamento.

ExemploBanco de Dados de Recursos Humanos de uma empresa; Banco de Dados de Aplicaes Financeiras; Banco de Dados de uma empresa de energia eltrica.

Base de Dados o conjunto de todos os dados de um determinado ambiente, estejam eles armazenados em computador ou no.

ExemploBanco de Dados de Recursos Humanos + as correspondncias expedidas e recebidas, pela empresa, e que esto guardadas nos armrios de cada departamento.

Sistema Gerenciador de Bancos de Dados (SGBD) constitudo por um conjunto de dados inter-relacionados e um conjunto de programas para acess-los. Sua caracterstica principal prover uma maneira adequada de recuperao e armazenamento de dados, no Banco de Dados. Regra geral, um SGBD projetado para gerenciar grandes volumes de dados.

Caractersticas de um SGBD Gerenciar grandes volumes de dados Facilitar a eliminao de redundncia e inconsistncia de dados Facilitar o armazenamento e acesso aos dados Garantir o acesso a vrios usurios ao mesmo tempo Garantir a segurana dos dados (Por exemplo, garantir a recuperao dos dados caso haja danificao do meio onde esto armazenados. Garantir segurana de acesso). Garantir a integridade dos dados

Abstrao de Dados a possibilidade de entender uma ambiente se preocupando apenas com seus aspectos mais importantes. No caso dos Bancos de Dados abre a possibilidade a seus usurios de poderem acessar aos dados sem a necessidade de se preocuparem com os detalhes de como os dados so armazenados.

Nveis de Abstrao Nvel FsicoDescreve como os dados so realmente armazenados. Neste nvel de abstrao trabalham os DBAs.

Nvel ConceitualDescreve quais dados esto armazenados e como eles se relacionam. Neste nvel os usurios no se preocupam os aspectos fsicos do armazenamento de dados. Aqui trabalham os DBAs e os Analistas de Aplicao.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

4

Nvel de VisoUma viso descreve parte de uma banco de dados, de modo que , usurios do banco tenham acesso apenas aos dados que lhes dizem respeito. Um banco de dados tem muitas vises.

Modelos de DadosIdentificam os dados de um determinado ambiente, as relaes entre eles e suas restries de integridade.

Tipos de Modelos de Dados Modelo Lgicos Baseados em ObjetosModelo de Entidade x Relacionamento Consiste num conjunto de objetos representativos de uma ambiente chamados entidades e nos relacionamentos que mantm entre si. Uma entidade se distingue de outras entidades pelos atributos que ela contm. Representao grfica de um modelo de entidade-relacionamento Retngulos Representam conjuntos de entidades Losangos Representam os relacionamentos Linhas Ligam os relacionamentos s entidades relacionadas Modelo Orientado a Objeto baseado em objetos representativos de um ambiente que se relacionam entre si. Aqui os objetos contm segmentos de cdigos, denominados mtodos, que os manipulam. Um objeto s pode ser acessado atravs de seus mtodos. Uma solicitao de acesso a um objeto denominada mensagem um conjunto de objetos com os mesmos valores e os mesmos mtodos.

Modelos Lgicos Baseados em RegistrosOs modelos baseados em registros so usados nos nveis de abstrao conceitual e visual. Modelo Relacional Representa os dados e seus relacionamentos atravs de tabelas. Cada tabela corresponde a um conjunto de entidades do modelo relacional e contm um nmero de colunas com nomes nicos, sendo que cada coluna representa um atributo da entidade. Os relacionamentos so representados por dados contidos dentro das prprias tabelas. Exemplo: Oracle Modelo de Redes Os dados so representados por uma coleo de registros e os relacionamentos entre os dados so representados por ponteiros. Os registros nos bancos de dados so organizados como colees de grafos arbitrrios. Exemplo: IDS-II da ABC-BULL. Modelo Hierrquico Os dados so representados por uma coleo de registros e os relacionamentos entre os dados so representados por ponteiros. Os dados so organizados em rvores.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

5

Instncia de um Banco de Dados o conjunto de informaes do banco em um determinado momento

Esquema a representao do projeto do banco de dados. No mudam com frequncia. Em um banco de dados tempos esquemas fsicos e conceituais.

Independncia de Dados possibilidade de mudar esquemas de um nvel de abstrao sem comprometer os esquemas de outros nveis Independncia Fsica de Dados a caracterstica que os bancos de dados devem ter e que consiste na possibilidade de que alteraes feitas no esquema fsico no exigirem alteraes nos programas escritos. Independncia Lgica de Dados uma caracterstica dos bancos de dados que permite mudanas nos esquemas conceituais sem exigir mudanas nos programas escritos. difcil de ser conseguida.

Linguagens de Definio de DadosSo aquelas usadas para definir o esquema de uma banco de dados. So as DDLs. O resultado da execuo de comandos das DDLs um conjuntos de tabelas que so armazenadas no dicionrio de dados. So as DDLs que definem, por exemplo, os mtodos de acesso de um banco de dados.

Linguagens de Manipulao de DadosSo as linguagens que manipulam informaes de um banco de dados. So elas que fazem incluses de novos dados, remoes e alteraes de dados existentes e busca (recuperao) de dados armazenados. So as DMLs. DMLs Procedurais Exigem a especificao de como obter os dados. DMLs No-Procedurais No exigem a especificao de como obter os dados

Gerenciador de Banco de Dados constitudo de um conjunto de programas que estabelecem a interface entre os dados armazenados e as solicitaes ao sistema. Alm disso, esses programas garantem um armazenamento de dados que facilita o desempenho do Banco, como por exemplo, um bom tempo de resposta para as solicitaes s quais submetido.

Objetivos de um Gerenciador de Banco de Dados Interagir com o gerenciador de arquivos. Geralmente esses gerenciadores de arquivos so fornecidos pelos sistemas operacionais. de responsabilidade desses gerenciadores o atendimento solicao de dados. Garantir Integridade do Dados Garantir Segurana de Acesso

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

6

Recuperao de Dados Controlar Concorrncia de Acesso.

Administrador de Banco de Dados (DBA) a pessoa que tem sob sua responsabilidade a gerncia dos dados do banco e dos programas de acesso. ele que garante a sua implantao e operao.

Principais Funes de um DBADefinir e alterar esquemas; Definir de estruturas de armazenamento e mtodos de acesso aos dados; Conceder autorizao de acesso; Especificar restries de integridade.

Usurios de Banco de Dados (Proposto pelo prof. Ronaldo Lopes)1. Projetistas identificam: dados + restries de integridade + requisitos de desempenho definem modelo conceitual e lgico da aplicao em algumas organizaes podem definir modelo fsico precisam conhecer o negcio 2. Administradores de Banco de Dados (ABD ou DBA) administram banco de dados definem critrios de acesso monitoram desempenho definem projeto fsico definem estratgia de backup e recuperao de falhas precisam conhecer o SGBD 3. Usurios Finais casuais novatos (parametrizados) sofisticados 4. Analistas e Programadores 5. Administradores de Dados (AD) 6. Projetistas e implementadores de SGBD 7. Desenvolvedores de ferramentas

8. Operadores e pessoal de manuteno

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

7 O MODELO DE DADOS

Uma DefinioO Modelo de Dados uma representao das necessidades de dados de um determinado ambiente e de como esses dados se relacionam. uma das primeiras atividades que deve ser executada ao longo do processo de identificao e compreenso de um ambiente, tendo em vista necessidades de automatizao. um dos produtos da fase de Anlise do Ciclo de Vida de um projeto de desenvolvimento de um sistema. Construir um Modelo de Dados significa: coletar e documentar informaes relevantes do ambiente estudado; representar as informaes, de forma clara e objetiva, e num formato padro que possa facilitar o entendimento dos participantes do processo; definir, de maneira clara, o escopo do ambiente modelado; adquirir o entendimento do ambiente atravs de refinamentos sucessivos do modelo; e representar graficamente as necessidades de informao independentemente do Software e do Hardware a serem usados na implementao do Sistema. 1.

Componentes de um Modelo de DadosUm Modelo de Dados composto de: entidade, tipo de entidade, atributo, relacionamentos e dicionrio de dados.

1.1. EntidadeChamamos de entidade, qualquer coisa real ou abstrata, de um determinado ambiente, sobre a qual precisamos guardar informaes. Se estamos modelando o ambiente de uma biblioteca, por exemplo, ento as informaes a respeito dos livros devem estar representadas pela entidade: Livro. As informaes relativas aos usurios da biblioteca poderiam ser representada pela entidade: Cliente. As informaes relativas ao emprstimo de livros seriam representadas pela entidade: Emprstimo. As reservas de livros por: Reserva, e assim por diante. Nesse ambiente as informaes da entidade Livro poderiam ser: nome do livro, ISBN do livro, e ttulo do livro. Para a entidade Cliente poderamos ter: cpf, nome, endereo e telefone. Para a entidade Emprstimo: data do emprstimo, data provvel de devoluo e taxa de multa para o caso de devoluo com atraso. A entidade Reserva poderia ter: data da reserva, e data provvel de disponibilidade do livro. claro que as informaes representadas por uma entidade dependem do ambiente onde ela est inserida. Por exemplo: uma pessoa para o Ministrio da Fazenda vista como um contribuinte de impostos. E dentro deste contexto as informaes relevantes de pessoa seriam: cpf, renda anual, despesas mdicas, despesas com instruo, etc. J o Ministrio da Educao poderia ter outras necessidades de informaes sobre uma pessoa, como por exemplo: cpf, nvel de escolaridade, idade, data de nascimento, etc. O Ministrio da Sade, certamente teria interesse em informaes sobre sade: tipo sanguneo, data de nascimento, etc. Podemos concluir que, uma entidade s deve conter informaes que dizem respeito, ou que so necessrias, ao ambiente que representa.

1.2. Tipo de EntidadeUm tipo de entidade definido como sendo o conjunto de todas entidades de uma mesma natureza, ou seja, que tenham as mesmas caractersticas. Por exemplo, o conjunto de todas as entidades Livros de uma biblioteca constituem o Tipo de Entidade LIVRO. Engenharia de Software, Anlise Estruturada, Anlise Orientada a Objeto, poderiam ser entidades do tipo de entidade LIVRO. O conjunto de todos os emprstimos feito pela biblioteca comporia o tipo de entidade EMPRSTIMO. O conjunto de todos as pessoas que usam a biblioteca representaria o tipo de entidade CLIENTE. Tipo de Entidade Primria o tipo de entidade que existe por si mesma. Sua identificao completa feita pelos seus prprios atributos.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

8

Exemplos: 1. A Entidade ALUNO uma entidade primria porque identificada pelos seus prprios atributos. O seu identificador pode ser o atributo Matrcula do aluno. ALUNO # Matrcula Nome Sexo 2. A Entidade DEPARTAMENTO uma entidade primria pois tem como atributo identificador um atributo prprio. A sigla do departamento, por exemplo. DEPARTAMENTO # Sigla Nome

Tipo de Entidade Fraca ou Dependente a entidade cuja identificao no pode ser feita por seus prprios atributos. Para sua identificao completa precisamos de atributos de outra entidade. Exemplo 1. A entidade DEPENDENTE uma entidade fraca pois para a sua identificao h que se utilizar atributos da entidade EMPREGADO (A Matrcula do empregado, por exemplo). Ou seja, quando falamos, Joo Viera (Dependente) precisamos dizer de quem ele dependente (Empregado) para que se possa identificlo completamente. Assim: Joo Vieira dependente de Francisco da Rocha (Empregado)

EMPREGADO # Matrcula Nome Sexo

1

N

DEPENDENTE # Cdigo Nome Data de Nascimento

Entidade Associativa a entidade que no se identifica por si mesma e sua existncia depende da existncia de duas ou mais outras entidades. Compem seu identificador, os identificadores das entidades que se associaram para lhe dar origem. Exemplo 1. No diagrama abaixo a entidade, APROVEITAMENTO uma entidade associativa porque a sua identificao s possvel a partir da Matrcula, identificador da entidade ALUNO e de Cdigo, identificador da entidade DISCIPLINA. Ou sejam, quando nos referimos ao aproveitamento 7,3, por

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

9

exemplo, ele s tem sentido quando associado a uma aluno e a uma disciplina. Assim: Joo Ribeiro Ferraz (Aluno) obteve a nota 7,3 (Aproveitamento) em Banco de Dados (Disciplina).

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

10

ALUNO # Matrcula Nome Sexo

DISCIPLINA # Cdigo Nome

1 NAPROVEITAMENTO Nota Data da avaliao

1 N

1.3. AtributosSo partes especficas de uma determinada entidade. So as informaes que caracterizam a entidade. Exemplos de Atributos Poderiam ser atributos de uma entidade Aluno: nome, nmero da matrcula, cpf, data de ingresso no curso, endereo, telefone e data de nascimento. Uma entidade Fornecedor poderia Ter como atributos: Cgc, nome, Razo Social, Endereo, e Capital Social. Cada entidade tem valores especficos para seus atributos que diferir ou ser iguais aos valores dos atributos de outras entidades de um mesmo tipo de entidade. Valor de um Atributo Chamamos valor de um atributo ao contedo que um atributo pode ter. Marcos Ferreira, Rosa Cristina, Deusdete da Cunha poderiam ser valores da entidade Aluno. Casa do Barata, Mesbla, C&A seriam valores do atributo nome da entidade Fornecedor. Domnio de um Atributo o conjunto de valores que um atributo pode assumir. Exemplo: Masculino, Feminino so o domnio do atributo Sexo da entidade Aluno. O atributo Nota da entidade aluno tem o domnio: {nmeros reais de 0 a 10). Tipos de Atributos de uma Entidade nico Cada entidade tem um valor diferente para este atributo. A matrcula de um aluno em um curso um atributo nico porque no existe outro aluno matriculado com o mesmo nmero de matrcula. No-nico Quando o valor pode se repetir em vrias entidades. Por exemplo, o aproveitamento de um aluno. Mais de um aluno pode ter a mesma nota.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

11

Obrigatrio Quando tem que existir um valor para este atributo em toda entidade. Por exemplo, o nome do aluno na entidade ALUNO.

Simples Quando possui um domnio simples. Por exemplo, o atributo sexo tem um domnio simples pois formado pelo conjunto (nico) das letras F e M. Composto Quando possui mais de um domnio simples. Endereo de uma pessoa, por exemplo. Ele formado pelos domnios, simples, dos Logradouros, dos Bairros, das Cidades, dos Estados e dos CEPs. Univalorado Quando tem um nico valor para cada entidade. Por exemplo, o nmero de matrcula de um aluno. Cada aluno tem um nico nmero de matrcula. Multivalorado Quando pode ter mais de um valor para cada entidade. Por exemplo, o telefone de uma pessoa. Uma pessoa pode ter mais de um telefone. O do trabalho e da residncia. Derivado Quando o seu contedo depende do contedos de outros atributos. Por exemplo, o total de uma nota fiscal formado pela soma dos totais de cada item componente da nota fiscal. No derivado Quando ele no pode ser obtido a partir de outros atributos. Por exemplo, nome de um aluno. Identificador o atributo ou atributos que identificam uma entidade de um tipo de entidade de maneira nica. Por exemplo a matrcula do estudante. Ou a matrcula do aluno e o cdigo da disciplina no tipo de entidade APROVEITAMENTO. No Identificador Quando o identificador no identifica por si s um entidade dentro de um tipo de entidades. Por exemplo, o nome do aluno no identifica o aluno dentro to tipo de entidade ALUNO. Matriz de Definio dos Atributos Atributos Matrcula Nome Telefone ID S OB S S S MV AD AC CE NAT TAM N C C 4 40 14 DEC DOM > zero Nulo Nulo

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

12

1.4. RelacionamentosChamamos de relacionamento a associao entre duas entidades ou entre uma entidade e ela mesma. Para expressar, em um modelo, quais as disciplinas nas quais um aluno est matriculado ns poderamos definir o relacionamento: O aluno est matriculado em... O relacionamento para expressar os dependentes de um determinado empregado seria: Empregado tem dependentes. Cardinalidade de um relacionamento Indica quantas entidades de um tipo de entidade participam de um relacionamento. Restries de relacionamento Indica a participao ou no de uma entidade no relacionamento em causa. Uma Viso de um Relacionamento 1:N entre dois Tipos de Entidades EMPREGADO Empregado Trabalha N 1 DEPARTAMENTO Departamento

Francisco . Srgio . Alexandre . Marcos . Marta .

r1. Produo

r2 r3r4 r5 . Financeiro . Marketing

Jos . r6

No Departamento de Produo (1) trabalham N (3) Empregados ( Francisco, Srgio, Marta) No Departamento Financeiro (1) trabalham N (2) Empregados ( Marcos, Jos) No Departamento de Marketing (1) trabalha N (1) Empregado (Alexandre)

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

13Uma Viso de um Relacionamento M:N Entre dois Tipos de Entidades M N

PROFESSOR

DISCIPLINA

Professor

Disciplina

Leciona Mario . Francisco . Srgio . Alexandre . Marcos . . Fsica

r1 r2 r3r4 r5

. Analise . Matemtica . O&M

O professor Mrio (1) leciona Fsica e Anlise (2) e Fsica (1) lecionada por Mrio e Srgio (2) O professor Francisco (1) leciona Matemtica (1) e Matemtica (1) lecionada por Francisco (1)

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

14

Uma Viso de um Relacionamento 1:1 Entre dois Tipos de Entidades

CLIENTE Cliente

1

1

CONTA DE LUZ Conta de Luz

Recebe

Francisco . Srgio . Alexandre . Marcos . Marta .

r1. Produo

r2 r3 r4

. Financeiro . Carlos . Osires . Helena

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

15

Uma Viso do Relacionamento 1:1 Entre dois Tipos de Entidades sem Obrigatoriedade do laod EMPREGADOEMPREGADO Empregado Gerencia Flvio . Francisco . Srgio . Alexandre . Marcos . Marta . Rita . r4 1 1 DEPARTAMENTO Departamento

r1 r2

. Produo . Financeiro

r3. Marketing

Repare que existe empregados que no esto associados a departamento nenhum. So os empregados que no gerenciam departamentos.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

16

Tipos de RelacionamentosRelacionamento tipo Dependncia Chamamos de Relacionamento de Dependncia ao relacionamento entre um tipo de entidade primria e um tipo de entidade dependente (fraca). Exemplo EMPREGADO # Matrcula Nome Sexo

1

N

DEPENDENTE # Nome Data de Nascimento

Tipo de Entidade Primria

Tipo de Entidade Fraca

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

17

O Tipo de entidade EMPREGADO compe-se de entidades primrias porque essas entidades so identificadas completamente por seus atributos. razovel imaginarmos que numa mesma empresa no exista empregados com a mesma matrcula. J as entidades de DEPENDENTE so do tipo fraca porque os seus atributos no as identificam completamente. Suponhamos que Pedro Rodrigues seja filho de Francisco Moreira, cujo nmero de matrcula seja 10. Se falamos apenas Pedro Rodrigues, no o identificamos, porque pode existir outros Pedro Rodrigues filhos de outros empregado que no seja o Francisco Moreira de matrcula 10. Para que Pedro Rodrigues seja completamente identificado precisamos associ-lo ao empregado do qual ele dependente. Ento dizemos: Pedro Rodrigues dependente de Francisco Moreira de matrcula 10 Outro Exemplo FORNECEDOR # Cgc Nome

1

N

NOTA FISCAL # Nmero Data de Emisso

Entidade Primria

Entidade dependente

O tipo de entidade FORNECEDOR tambm uma entidade primria porque identificada completamente por seus atributos. No existe dois fornecedores diferentes com o mesmo nmero de CGC. NOTA FISCAL um tipo de entidade composto por entidades fracas ou dependentes, porque para identificar uma determinada nota fiscal completamente precisamos dizer de qual fornecedor a nota fiscal, visto que podem existir notas fiscais de mesmo nmero pertencentes a fornecedores diferentes. Relacionamento tipo Associativo Um relacionamento do tipo associativo se ele relaciona uma entidade primria a uma entidade associativa. Exemplo ALUNO # Matrcula Nome

1

N

APROVEITAMEN TO # Nota Data da Avaliao

N

1

DISCIPLINA # Cdigo Nome

Entidade Primria

Entidade Associativa

Entidade Primria

Tanto o relacionamento entre ALUNO e APROVEITAMENTO como o relacionamento entre DISCIPLINA e APROVEITAMENTO so do tipo associativo pois ambos relacionam entidades primrias de ALUNO e DISCIPLINA entidade do tipo associativa APROVEITAMENTO.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

18

Auto-Relacionamentos PESSOAEsposo Esposa Origem Voo

CIDADEDestino

(0,N)

(0,N) Casamento

1.5. Dicionrio de DadosO dicionrio de dados contm as definies das entidades, dos relacionamentos e dos atributos de um modelo de dados.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

19

1.6. Convenes para Construo de um DER Tipo de Entidade Tipo de Entidade Fraca

Relacionamento

Relacionamento com tipo de entidade fraca

Atributo Atributo Identificador Atributo Multivalorado

Atributo Composto

Atributo Derivado

E1

E2

S pode existir E2 se existir E1

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

20

E1

E2

E1 e E2 podem existir sem a presena um do outro (min,max) representam a quantidade de ocorrncias de E em R

(min,max)

E

1.7. Nomenclatura dos elementos de um DERNome do Tipo de Entidade -----> Letras maisculas e no singular Nome de Relacionamento ------> Letras maisculas e no singular Nome de Atributo ---------------> Inicia com letra maiscula Regra ------------------------------> Letras minsculas

1.8. Exemplo de DEREMPREGADO # Codigo Nome Sexo Data Nascimento 1

N

1

DEPARTAMENTO # Codigo * Nome

1

1

1

N N DEPENDENTE * Nome * Data Nascimento N N PROJETO # Codigo * Nome

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

21

1.9. ExercciosExerccio 1 Considere parte de um ambiente de banco. Um banco tem vrias agncias. As contas de uma agncia podem se referir a pessoas fsicas ou jurdicas. H contas que podem ter um nico titular e contas que podem ter mais de um. No h contas sem cliente e nenhum cliente da agncia sem conta. Uma agncia exige necessariamente um banco e no h banco sem agncia. As agncias fazem emprstimos aos seus clientes h cliente que tem mais de um emprstimo, mas o nmero de emprstimos de cada agncia limitado a 1000. BANCO # Nmero Nome 1

N 1 N CONTA # Nmero Tipo da Conta Saldo AGNCIA # Cdigo Nome 1,1000 1,1 EMPRESTIMO # Data Valor

N CLIENTE # Cdigo Nome Endereo Telefone

N

N

1

Exerccio 2 Quais os possveis atributos que podem identificar as duas entidades no relacionamento a seguir.

FORNECEDOR Cgc Nome Razo Social

NOTA FISCAL Nmero Srie Data

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

22

Exerccio 3 Construir um possvel DER a partir do contedo do relatrio abaixo. Almoxarifado 234 234 456 456 Cdigo Produto Rua 15, Centro A12 Rua 15, Centro F15 Rua 9, S. Oeste J14 Rua 9, S. Oest F15 Endereo Nome Produto Arroz Feijo Acar Feijo Quantidade 20 150 180 200

Exerccio 4 Construir possveis relacionamentos entre as entidades abaixo e identificar pelo menos dois atributos para cada uma delas. As entidades referem-se a um ambiente hospitalar. Entidades: PACIENTE, CIRURGIO, CIRURGIA, TIPO DE CIRURGIA. Exerccio 5 Construir o DER correspondente s entidades abaixo referentes ao ambiente de recursos humanos de uma empresa. Identifique pelo menos dois atributos para cada entidade e indique o identificador de cada uma. Justifique sua resposta. Exerccio 6 Construir o DER correspondente a um ambiente escolar com as seguintes entidades: DEPARTAMENTO, ALUNO, DISCIPLINA, TURMA, APROVEITAMENTO, PROFESSOR respondendo as seguintes perguntas: 1. Qual professor leciona cada disciplina? 2. Qual a nota do aluno em determinada disciplina e qual o professor que deu a nota? 3. Em qual turma de qual disciplina o aluno est matriculado e quais os professores dessa turma? 4. Em qual departamento o professor est vinculado? 5. Quais as disciplinas que so de responsabilidade de cada departamento? 6. Qual o horrio de aula de cada turma? 7. Quantos so os alunos do sexo masculino e quantos so do sexo feminino? 8. Qual a idade de cada aluno? 9. Quais so os pais de cada aluno? Exerccio 7 Que alteraes seriam necessrias fazer no DER do exerccio anterior, considerando que os pais de um aluno tambm podem ser estudantes, sem que haja duplicidade de informaes no modelo?

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

23

Exerccio 8 Identificar os relacionamentos entre as entidades relacionadas abaixo, e para cada entidade identifique, pelo menos, trs atributos. Construa o quadro de definio dos atributos para cada entidade. As entidades se referem ao ambiente de um ponto de comrcio varejista (por exemplo, uma loja de calados). O modelo construdo deve responder as seguintes perguntas: 1. Quais Empregados so Empacotadores, Contadores e Vendedores? 2. Qual o Vendedor que atendeu o Cliente? 3. Quem empacotou os produtos comprados para o Cliente? 4. Qual o valor total da compra do Cliente? 5. Quais os Clientes que foram atendidos mas que no compraram nada? 6. Se o Cliente comprou alguma coisa, quais os produtos comprados? 7. Qual o total de vendas de cada Vendedor por dia? 8. Qual o total das vendas correspondentes s mercadorias empacotadas por cada Empacotador? Relao de entidades: Empregado, Contador, Empacotador, Vendedor, Cliente, Nota Fiscal, Detalhes de Notas Fiscais (Relao de Produtos) e Produto. DER proposto Contador Empacotador(1,1)

(1,1)

(0,1)

(0,1)

Empregado(0,1)

Produto(0,N)

(1,1)

(0,N)

(0,N)

Vendedor

(0,N) (1,1)

Cliente

(1,1)

Detalhes de Nota Fiscal

(1,1)

(1,N)

Nota Fiscal

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

24

Definio dos Atributos Vendedor Atributos ID OB S S S MV AD AC CE NAT TAM N N C 4 4 14 DEC DOM > zero > zero Nulo

Matrcula S Taxa de Comisso Telefone

2

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

25

2.

Normalizao de DadosNormalizao um processo de depurao de um modelo de dados para reduzir sua redundncia e aumentar sua estabilidade. CONCEITOS BSICOS

1. Dependncia Funcional CompletaQuando um atributo no identificador depende do(s) atributo(s) identificador(es).

2. Dependncia Funcional ParcialQuando um atributo no identificador depende de parte dos atributos identificadores.

3. Dependncia Funcional TransitivaQuando um atributo no identificador depende de outro atributo tambm no identificador. A normalizao permite eliminar atributos: Com mais de um valor Duplicados ou repetidos Que contm dados derivados de outros atributos PRIMEIRA FORMA NORMAL Uma entidade est na primeira forma normal se no tem atributos com mais de um valor, nem atributos que ocorrem mais de uma vez.

SEGUNDA FORMA NORMAL Uma entidade est na segunda forma normal se est na primeira forma normal e todos os seus atributos no identificadores so dependentes do atributo identificador da entidade. TERCEIRA FORMA NORMAL Uma entidade est na terceira forma normal se est na primeira e na segunda forma normal e no contm atributos no identificadores dependentes de outros atributos no identificadores Observaes Um modelo de E x R normalizado convertido facilmente para um Banco de Dados relacional em tempo de projeto. A terceira forma normal geralmente aceita como boa para projeto de Banco de Dados sem redundncia.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

26

Existem formas normais de nvel maior, mas que geralmente no so usadas.

PASSOS:

Entidade No Normalizada Eliminar grupos de atributos que se repetem e atributos multivalorados 1FN Eliminar dependncias funcionais parciais 2FN Eliminar dependncias funcionais transitivas 3FN

Verificao da Primeira Forma Normal Verificar se cada atributo tem um nico valor para cada instncia da entidade. Nenhum atributo pode ter valores repetidos.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

27

Exemplo:Verificar se a entidade Cliente abaixo est na 1FN.Se no estiver, convert-la para a 1FN.

Nmero

Data de Contato

CLIENTE

O Atributo data de contato pode ter mltiplos valores, portanto a entidade CLIENTE no est na 1FN. Para transform-la para a 1FN vamos criar uma entidade adicional CONTATO e relacion-la com um relacionamento 1:M no sentido CLIENTE - CONTATO. Verificao da Segunda Forma Normal Verificar se cada atributo dependente apenas do identificador da entidade. Verificar se existe algum atributo dependente apenas de parte do identificador da entidade. Exemplo: Verificar se entidade CURSO est normalizada.

Nome Preo Cdigo Durao CURSO

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

28

Cada cdigo determina um valor especfico para nome, durao e preo, todos eles so dependentes exclusivamente do identificador, e nenhum dos atributos derivado um do outro. Portanto a entidade est normalizada.

Exemplo:Verificar se as entidades abaixo esto normalizadas.

Nome Cdigo Data do Pedido Nmero

Quantidade Preo do Item

CLIENTE

REQUISITA

PEDIDO

Cada instncia de CLIENTE e PEDIDO determina valores especficos de quantidade e preo do tem. O atributo data do pedido est perdido na entidade CLIENTE, porque ele no dependente do identificador da entidade. Ele deve ser um atributo de PEDIDO. Exemplo: Normalizar a entidade abaixo:

Data do Pedido Nome Endereo Cdigo

Nmero do Pedido Quantidade Pedida

Valor Unitrio CLIENTE

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

29

Como a entidade no tem nenhum atributo com valores repetidos ela est na 1FN. Entretanto os atributos data do pedido, nmero do pedido, quantidade pedida e valor unitrio no so dependentes do identificador da entidade, portanto ela no est na 2FN. Para normaliz-la devemos criar uma entidade auxiliar com os atributos no dependentes do identificador. Verificao da Terceira Forma Normal Verificar se existe algum atributo no identificador dependente de outro atributo no identificador. Retirar os atributos no identificadores dependentes para uma entidade auxiliar. Exemplo: Verificar se a entidade abaixo est na terceira forma normal.

Valor Unitrio Quantidade Pedida Nmero do Pedido PEDIDO Data do Pedido

Nmero do Cliente Nome do Cliente Limite de Crdito

No existe nenhum atributo com valores repetidos logo a entidade est na 1FN. Os atributos nmero do cliente, nome do cliente e limite de crdito no so dependentes do identificador da entidade, portanto ela no est na 2FN. Logo a entidade no est na 3FN. Para pass-la para a 2FN devemos criar uma entidade auxiliar com os atributos no dependentes do identificador.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

30

Exemplo: Verificar se a entidade abaixo est na 3FN.

Valor Unitrio Quantidade Pedida Nmero do Pedido PEDIDONo existe nenhum atributo com valores repetidos, logo a entidade est na 1FN. Todos os atributos no identificadores so dependentes do identificador da entidade, logo ela est na 2FN. O atributo total do tem dependente da quantidade pedida e do valor unitrio, portanto a entidade no est na 3FN. Para pass-la para a 3FN basta eliminar o atributo total do tem que desnecessrio na entidade. EXERCCIO: Normalizar a entidade abaixo:

Data do Pedido Total do Item

Endereo do Aluno Data da Avaliao Nome do Aluno Matrcula Professor Matrcula Aluno AVALIAO Nota Obtida Conceito Nome do Professor Graduao do Professor

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

31

3. MODELO RELACIONAL O Modelo Relacional representa a base de dados como uma coleo de relaes. Uma relao concebida como uma tabela de valores, cada linha da tabela representa uma coleo de valores de dados relacionados. Estes valores podem ser interpretados como fatos que descrevem uma entidade ou um relacionamento do mundo real. Os nomes de tabelas e nomes de colunas servem tambm para auxiliar na interpretao do significado dos valores em cada linha de cada tabela. Na terminologia do Modelo Relacional, uma linha chamada TUPLA, o cabealho de uma coluna chamado ATRIBUTO e a tabela chamada RELAO. Os tipos de dados que descrevem os tipos de valores que podem aparecer em cada coluna so chamados de DOMNIO. DOMNIO Um domnio D um conjunto de valores atmicos, isto , cada valor do domnio indivisvel segundo o contexto sobre o qual o modelo concebido. Um mtodo comum de especificar um domnio consiste em especificar o tipo de dado segundo o qual os valores dos dados que formam o domnio so estabelecidos. Exemplos: Alunos_Matrculas: Conjunto de 5 dgitos vlidos como matrcula Alunos_Datas_Nascimento: Conjunto de datas vlidas. Alm de nome, tipo de dado e formato, informaes adicionais podem ser fornecidas para facilitar a interpretao dos valores do domnio. Exemplos: Alunos_Datas_Nascimento: Conjunto de datas compreendidas entre 01/01/1950 e 31/12/1982. Alunos_Sexo: Deve ser M ou F. RELAO (Relation Schema R) Uma relao R, denotada por R(A1, A2, . . . , An), representa uma relao de nome R e uma lista de atributos A1, A2, . . . , An. Cada atributo Ai refere-se a um domnio correspondente D na relao R. D chamado de domnio de Ai e denotado por dom(Ai). O grau da relao R o nmero de atributos que ela contm. Exemplo: ALUNO ( Matrcula, Nome, DataNascimento, Sexo ) ALUNO o nome da Relao e seu grau 4 porque tem quatro atributos. Seus domnios so: dom ( Matrcula ) = Matrculas dom ( Nome ) = Nomes dom ( DataNascimento ) = Datas_Nascimento dom ( Sexo ) = Sexos

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

32

TUPLA Uma instncia r de uma relao R(A1, A2, . . . , An), tambm denotada por r(R), um conjunto de n-tuplas r = { t1, t2, ..., tm }. Cada n-tupla t uma lista ordenada de n valores t = , onde cada valor vi, 1 Valores nas tuplas Cada valor em uma tupla um valor atmico, isto , indivisvel no contexto do modelo relacional. Portanto, atributos compostos e multivalorados no so permitidos. A est a importncia das tcnicas de normalizao. Os valores de alguns atributos em uma tupla em particular podem ser desconhecidos ou no existirem para esta tupla. Um valor especial, denominado nulo, usado para estes casos. Notao para o modelo relacional Relao R de grau n Tupla t na relao r (R) Nomes de Relaes Instncias de Relaes Tuplas R ( A1 , A2 , ... , An ) t = < v1 , v2 , ... , vn > Onde vi o valor correspondente ao atributo Ai. Q,R,S q,r,s t,u,v

Nomes dos atributos podem ser qualificados com o nome da relao a que pertencem, por exemplo: ALUNO.Matrcula, ALUNO.Nome, etc.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

34

RESTRIES NO MODELO RELACIONAL Restries de domnio Restries de domnio especificam que o valor de cada atributo A deve ser um valor atmico pertencente ao domnio dom(A) para este atributo. Os tipos de dados associados a domnios incluem os numricos inteiros, reais, caracteres, strings de tamanho fixo, strings de tamanho varivel, data, etc. Os domnio podem ainda especificar um conjunto de valores vlidos explicitamente identificados.Restries de Chave ( Chave Primria = Primary Key )

Uma relao definida como um conjunto de tuplas. Por definio, todos os elementos do conjunto so distintos, portanto, todas as tuplas em uma relao devem tambm ser distintas. Isto significa que no pode haver duas tuplas com a mesma combinao de valores para todos os atributos. Restrio de Integridade de Entidade A restrio de integridade de entidade estabelece que o valor para a chave primria no pode ser nulo. Isto porque o valor da chave primria usado para identificar individualmente tuplas de uma relao. Restries de chave e restries de integridade de entidade so especificadas para cada relao individualmente. Restrio de Integridade Referencial A restrio de integridade referencial especificada entre duas relaes e usada para manter a consistncia entre as tuplas dessas duas relaes. A restrio de integridade referencial estabelece que uma tupla em uma relao que se refere a outra relao deve se referir a uma tupla existente da outra relao. Chave Estrangeira ( Foreign Key ) As duas condies citadas a seguir, estabelecem a restrio de integridade referencial entre duas relaes R1 e R2. Um atributo, ou conjunto de atributos, FK em uma relao R1, (so) uma chave estrangeira de R1 se: 1. 2. O(s) atributo(s) FK tem o mesmo domnio do(s) atributo(s) da chave primria PK da relao R2; diz-se que o(s) atributo(s) FK refere(m)-se relao R2. O(s) valor(es) de FK na tupla t1 de R1 existe(m) como o valor de uma PK em alguma tupla de R2 ou nulo.

Formalmente: t1 [FK] = t2 [PK]. Importante Em um banco de dados de muitas relaes, existem geralmente muitas restries de integridade referencial. Para especificar estas restries, deve-se primeiro ter uma clara compreenso do significado do papel de cada atributo das vrias relaes do esquema do banco de dados. As restries de integridade referencial surgem dos relacionamentos entre as entidades.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

35

Exemplo: PROFESSOR CPF Nome DataNascimento Sexo CodigoDepartamento

DEPARTAMENTO Codigo CURSO Codigo Nome

Nome

CodigoDepartamento

Todas as restries de integridade devem ser especificadas se desejamos manter as restries para todas as instncias do banco de dados. Portanto, em um sistema relacional, a linguagem de definio de dados (DDL) deve prover recursos para especificar os vrios tipos de restries para que o sistema gerenciador do banco de dados possa cumpri-los automaticamente. 4. Algoritmo de Mapeamento ER / RELACIONAL Passo 1 Para cada tipo de entidade forte E no esquema ER, crie uma relao R e inclua todos os atributos simples de E. Inclua somente os atributos componentes simples de cada atributo composto. Escolha uma dos atributos identifivadores de E como chave primria de R. Se a chave escolhida for composta, o conjunto de atributos simples que a formam, juntos formaro a chave primria de R. Passo 2 Para cada tipo de entidade fraca F no esquema ER cujo tipo de entidade forte identificadora E, crie uma relao R, e inclua todos os atributos simples (ou componentes simples de atributos compostos) de F como atributos de R. Alm disso, inclua como chave estrangeira em R os atributos que formam a chave(s) primria(s) da(s) relao(es) que correspondem ao tipo de entidade forte identificadora. Esse procedimento mapeia o relacionamento identificador de F. A chave primria de R a combinao da(s) chave(s) primria(s) da(s) entidade(s) forte(s) e da chave parcial do tipo de entidade fraca F, se existir. Passo 3 Para cada tipo de relacionamento R binrio 1:1 no esquema ER, identifique as relaes S e T que correspondam aos tipos de entidades participantes de R. Escolha uma das relaes digamos, S e inclua como chave estrangeira em S a chave primria de T. melhor escolher um tipo de entidade com participao total em R para desempenhar o papel de S. Inclua todos os atributos simples (ou componentes simples de atributos compostos) do tipo de relacionamento R 1:1 como atributos de S. Passo 4 Para cada tipo de relacionamento binrio R 1:N que no seja identificador de entidade fraca, identifique a relao S que representa o tipo de entidade participante no lado N do tipo de relacionamento. Inclua como chave estrangeira de S a chave primria da relao T que representa o outro tipo de entidade participante de R; isto se deve ao fato de que cada instncia de entidade do lado N se relaciona a, no mximo, uma instncia de entidade do lado 1 do tipo de relacionamento. Inclua todos os atributos simples (ou componentes simples de atributos compostos) do tipo de relacionamento 1:N como atributos de S.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

36

Passo 5 Para cada tipo de relacionamento binrio R M:N, crie uma nova relao S para representar R. Inclua como chaves estrangeiras em S os atributos que formam as chaves primrias das relaes que representam os tipos de entidades participantes de R; a combinao dessas chaves estrangeiras formaro a chave primria de S. Tambm inclua todos os atributos simples do tipo de relacionamento M:N (ou componentes simples de atributos compostos) como atributos de S. Passo 6 Para cada atributo multivalorado A, crie uma nova relao R que inclui um atributo correspondente a A mais a chave primria K (como chave estrangeira em R) da relao que representa o tipo de entidade ou tipo de relacionamento que tem A como atributo. A chave primria de R a combinao de A com K. Se o atributo multivalorado composto, ento inclua somente seus componentes simples. Passo 7 Para cada tipo de relacionamento n-rio R, com n > 2, crie uma nova relao S para representar R. Inclua como chaves estrangeiras em S as chaves primrias das relaes que representam os tipos de entidades participantes de R. Tambm inclua todos os atributos simples (ou componentes simples de atributos compostos) como atributos de S. A chave primria de S , normalmente, a combinao de todas as chaves estrangeiras que referenciam as relaes que representam os tipos de entidades participantes de R. No entanto, se a restrio de participao (min,max) de um dos tipos de entidades participantes de R (digamos, E) tiver max = 1, ento a chave primria de S pode ser simplesmente a chave estrangeira que referencia a relao E correspondente a E, pois, nesse caso, cada entidade e em E participar em, no mximo, uma instncia de relacionamento de R e, portanto, pode identificar unicamente essa instncia de relacionamento.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

37

5.

Exerccios de Modelagem de Dados a. Construir o DER correspondente descrio dos relacionamentos abaixo: Um Item de Pedido de Compra deve se referir a um nico Pedido de Compra. Um Pedido de Compra deve se referir a um nico Fornecedor. Um Item de Pedido de Compra deve se referir a um e somente um Produto. Um Pedido de Compra deve conter um ou vrios Itens de Pedido de Compra. Um Fornecedor pode ter vrios Pedidos de Compra a ele solicitado. Um Produto pode ser referido por nenhum ou vrios Itens de Pedido de Compra. Um Produto deve ser fornecido por um ou vrios Fornecedores. Um Fornecedor deve fornecer um ou vrios Produtos. Um Pedido de Compra pode ser atendido por uma ou vrias Notas Fiscais. Uma Nota Fiscal deve se referir a um e somente um Pedido de Compra. Uma Nota Fiscal deve ser constituda de um ou mais Itens de Nota Fiscal. Um Item de Nota Fiscal deve se referir a uma nica Nota Fiscal.

b. Construir o DER e definir todos os seus atributos para o problema a seguir:Sou gerente de uma empresa de treinamento que ministra vrios cursos de carter tcnico. Ministramos vrios cursos que so identificados por um cdigo, nome e preo. Os cursos Introduo ao UNIX e Programando em C so alguns de nossos cursos mais populares. A durao de cada curso pode variar de um a quatro dias. Um instrutor pode ensinar vrios cursos. Paul Rogers e Maria Gonzales so dois de nossos melhores instrutores. Mantemos aqui o nome e o telefone de cada instrutor. Ns criamos um curso e alocamos um instrutor. Os alunos (clientes) podem participar de vrios cursos e vrios deles o fazem. O Jamie Brown, da Docegeo, assiste a todo curso que oferecemos. Alm do nome, mantemos tambm, o nmero do telefone dos alunos. Alguns de nossos alunos e instrutores no possuem telefone.

c. Construir um DER e definir todos os seus atributos para o problema a seguir: (Profa. Karin Becker da PUCRS)Uma firma vende produtos de limpeza. Cada produto caracterizado por um cdigo nico, nome do produto, categoria (e.g. detergente, sabo em p, sabonete, etc.), e seu preo. A categoria uma classificao criada pela prpria firma. A firma possui informaes sobre todos os seus clientes. Cada cliente identificado por um cdigo nico (tambm interno firma), o nome do cliente, endereo (rua, nmero, sala, cidade, CEP, UF), telefone, o status do cliente (bom, mdio, ruim), e o seu limite de crdito. Guarda-se igualmente a informao dos pedidos feitos pelos clientes. Cada pedido possui um nmero e guarda-se a data de elaborao do pedido. Cada pedido pode envolver de um a vrios produtos e para cada produto, indica-se a quantidade pedida.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

38

d. Construir um DER e definir todos os seus atributos para o problema a seguir:Sou proprietrio de uma pequena loja de vdeo. Temos mais de 3.000 fitas aqui e queremos um sistema para control-las. Cada fita contm um nmero. Para cada filme, precisamos saber seu ttulo e categoria (comdia, suspense, terror, etc.). Muitos de nossos filmes tm mais de uma cpia. A cada cpia, fornecemos um identificador (ID) e ento controlamos qual filme uma fita contm. O formato de uma fita pode ser BETA ou VHS. Sempre temos uma fita para cada filme e cada fita tem apenas um filme. No temos aqui nenhum filme que requeira mais de uma fita. Freqentemente as pessoas alugam filmes pelos atores. John Wayne e Katheerine Hepburn so muito populares. Queremos manter informaes sobre os astros que atuam em nossos filmes. Nem todos os filmes so estrelados por astros e s mantemos aqui astros que atuam em filmes do nosso catlogo. Os clientes gostam de saber a data de nascimento de um astro, bem como seu verdadeiro nome. Temos muitos clientes. Apenas alugamos filmes para pessoas inscritas em nosso Vdeo Clube. Para cada membro do clube mantemos seu primeiro e ltimo nome, telefone e endereo. Claro que cada membro possui um nmero de ttulo. Alm disso, mantemos o status de crdito de cada um. Queremos controlar os aluguis de filmes. Um cliente pode alugar vrios filmes ao mesmo tempo. Apenas mantemos os aluguis correntes (pendentes). No controlamos histrico de locaes.

e. Construir um DER e definir todos os seus atributos para o problema a seguir :Um ambiente de controle de veculos Uma empresa de grande porte em Gois, a EMPRESA MODELO S/A, quer fazer o controle de sua frota de veculos. A frota constituda de vrios tipos de caminhes, caminhonetes e carros pequenos, como Parati, mega entre outros. De cada veculo, a empresa precisa saber qual o ano de fabricao e modelo, qual o fabricante (se Chevrolet, Volkswagen, Fiat, etc.), o tipo, data da compra, tipo de combustvel, quilometragem atual, cor e quantidade de passageiros que o veculo pode transportar. Um veculo pode ser usado por qualquer empregado da empresa inclusive dirigindo o veculo. Entretanto, a empresa tem em seu quadro de funcionrios, motoristas que so chamados quando um empregado precisa usar o veculo, mas no sabe dirigir. Em qualquer caso, o responsvel pelo veculo durante seu uso o motorista do veculo. O controle do uso de um veculo feito atravs do preenchimento do formulrio chamado OCORRNCIA DE USO DE VECULO, no qual devem ser registrados os seguintes dados: quilometragem no momento do recebimento do carro para uso, quilometragem no final do uso, o consumo de combustvel e o resultado do acerto da viagem. Cada abastecimento deve ser acompanhado de nota fiscal, emitida pelo posto de combustvel, demostrando a quantidade e o valor do abastecimento. Se o uso do veculo for para uma viagem interurbana, o motorista recebe um adiantamento para fazer face aos abastecimentos necessrios. Esse adiantamento feito em funo do consumo por quilmetro rodado do veculo. Ao final da viagem, o motorista devolve a diferena dos gastos ou recebe a diferena se, por acaso, as despesas forem maiores que o adiantamento recebido.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

39

Outra questo importante para a empresa, o controle de manuteno de cada veculo. Essas manutenes so feitas em auto-mecnicas previamente habilitadas. Um veculo enviado para manuteno a cada 5.000 Km rodados ou de seis em seis meses, o que ocorrer primeiro. Ento da manuteno precisa-se saber: o tipo de manuteno (Preventiva, Gratuita, Corretiva), a data da ltima manuteno e a quilometragem na poca da manuteno. Para cada manuteno efetuada, a empresa registra a quantidade de horas e o valor da mo de obra cobrado por tipo, horas de eletricista, de pintura, de mecnico, etc. Alm disso so registrados a quantidade e o tipo de peas usadas para a manuteno (embreagem, pastilhas de freio, farol, etc.). S interessa os dados da ltima manuteno efetuada.

f. Construir um DER e definir todos os seus atributos para o problema a seguir :Um ambiente de treinamento Uma empresa que d treinamento na rea de informtica tem a seguinte programao semestral de cursos: DBA para o Banco de Dados Oracle, Visual Basic Bsico, Visual Basic Avanado, Delphi Bsico e outros. Um curso pode ser ministrado vrias vezes no semestre. O curso de DBA Oracle para o primeiro semestre de 1999 teve a seguinte programao: a primeira turma de 15/03/99 a 30/03/99 e a segunda turma de 20/06/99 a 05/07/99. J o curso de Visual Basic Bsico foi programado para: a primeira turma no mesmo perodo da primeira turma de DBA e a segunda turma para o perodo de 10/08/99 a 30/08/99. O nmero de alunos matriculados em cada turma no mximo 30 em razo do nmero reduzido de computadores para as aulas prticas. Para fazer a matrcula, o aluno precisa apresentar: CPF, nome completo, endereo, telefones de contato e o comprovante do pagamento da taxa de matrcula (que pode ser feito na rede bancria do estado), o curso que pretende fazer e em qual perodo. No momento da matrcula, a cada aluno atribudo um nmero que o identifica entre todos os alunos da turma. Se o aluno, eventualmente, volta a cursar mais cursos, o nmero dele continua o mesmo. H que manter o registro para cada aula, de um resumo sucinto da matria lecionada, da data e da freqncia de cada aluno. A empresa tem o interesse em saber o dia da matrcula de cada aluno e em qual banco e agncia o aluno fez o pagamento da matrcula. Para cada turma de cada curso alocado um professor cujos dados de interesse so: CPF, nome, endereo, preo cobrado para ministrar o curso, telefones para contato e quais os cursos que o professor pode ministrar. Outros dados importantes para a empresa so: valor total das matrculas por turma, por curso, por semestre e por ano. Considerar a hiptese do professor ser aluno de cursos que no seja de sua especialidade.

g. Construir um DER e definir todos os seus atributos o problema a seguir:O problema do transporte interurbano de pessoas O sistema de transporte interurbano de pessoas, se baseia no conceito de linhas de nibus. Uma linha de nibus definida pelo estado atravs de seus rgos competentes e deve satisfazer as necessidades de deslocamentos de pessoas em uma determinada regio. Uma linha deve atender a um certo nmero de cidades e explorada por uma nica empresa de nibus, o que conseguido atravs de licitao pblica. Podem existir linhas diferentes atendendo a um mesmo conjunto de cidades, por exemplo: a linha de nibus N1 atende as cidades de Goinia, Nerpolis, Petrolina, Jaragu, Rialma, Ceres, Uruau e Porangatu e explorada pelo Rpido Araguaia (linha fictcia). J a linha N2 atende as mesmas cidades, s que em horrios diferentes e explorada pelo Expresso So Luiz (linha fictcia). Uma empresa de nibus, por exigncia do poder pblico, obrigada a escalar dois motoristas por viagem a cada trecho de 600 Km. Um desses motoristas responsvel pela viagem no trecho que escalado e o outro o seu

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

40

auxiliar. Por exemplo: nas linhas que servem o percurso de Goinia a So Paulo, as empresas devem escalar 4 motoristas para a viagem, j que a distncia a ser percorrida maior que 600 Km. Dois motoristas conduzem o nibus at Uberaba e os outros dois, de Uberaba a So Paulo. Outro fato importante que cada linha tem os pontos certos de parada obrigatria. Caldas Novas, Uberlndia, Uberaba, Ribeiro Preto e Pirassununga so paradas obrigatrias de uma linha Goinia So Paulo. s vezes numa mesma viagem pode ocorrer troca de nibus. Essa troca no coincide necessariamente com a troca de motoristas, ou seja, pode no ocorrer na mesma cidade. Uma viagem definida como o percurso do trajeto que define uma linha de nibus. Uma passagem, relativa a uma viagem, deve indicar o nome do passageiro, seu nmero de identidade, a origem e o destino da passagem, data e hora de embarque, o valor e a plataforma de embarque. A origem e o destino das passagens devem, obrigatoriamente, fazer parte das cidades que compe o trajeto da linha, embora um passageiro possa descer em qualquer ponto do percurso. No permitido, a no ser em caso de incidentes que impeam o trfego no trajeto da linha, desvio da rota definida. O nmero de passagens vendidas no pode exceder o nmero de cadeiras do nibus, ou seja, no h possibilidade de um passageiro viajar em p. Atraso na chegada em cada cidade, de mais de uma hora, deve ser comunicado sede da empresa que responde pela linha. Outra coisa importante, tendo em vista a segurana dos passageiros, que um motorista s pode ser escalado para uma viagem a intervalos de 72 horas. Uma transgresso a esta norma, que determinada pelo poder pblico, pode acarretar pesadas multas para a empresa infratora. A respeito das linhas, bom salientar, que elas so definidas pelo percurso e pelo sentido do percurso, ou seja, a linha de Goinia - So Paulo tem um nmero diferente da linha So Paulo - Goinia, embora possam ter o mesmo trajeto e os mesmos pontos de paradas.

h. Construir um DER e definir todos os seus atributos para o problema a seguir:Um ambiente de uma empresa de transporte Uma empresa de transporte de cargas faz frete entre vrios estados brasileiros. So Paulo, Gois, Minas Gerais e Mato Grosso so alguns deles. Em cada estado, apenas algumas cidades so atendidas. Por exemplo: em Gois, apenas as cidades de Goinia, Rio Verde e Anpolis so atendidas. Uma cidade atendida significa que a empresa transporta mercadorias dessas cidades e para essas cidades. O transporte tambm se d entre cidades de estados diferentes. O valor do frete pode ser pago pelo remetente ou pelo destinatrio da mercadoria. Tanto a pessoa que envia a mercadoria como a que recebe, so consideradas clientes da empresa. Eventualmente, empresas tambm contratam frete. Nesse caso elas so representadas por um representante. O valor do frete pode ser definido em funo do peso ou do valor da mercadoria transportada. Como cobrar o frete uma deciso da empresa transportadora e definida no momento da contratao do frete. Por exemplo: o transporte de tecidos cobrado em funo do peso e jias em funo do valor. O preo unitrio de cada unidade de peso transportada vlido para qualquer cidade atendida. Cobra-se tambm do cliente o valor do ICMS da mercadoria transportada e o valor do pedgio pago, se existir, o valor do frete peso e frete valor. Uma caracterstica da cobrana de ICMS que cada estado tem sua poltica prpria. Em Gois por exemplo, quando a mercadoria transportada para fora do estado a taxa de ICMS de 17% sobre o valor do frete peso ou frete valor e de 12% para mercadorias transportadas dentro do prprio estado(ndices fictcios). Para cada frete contratado, produzido o documento Conhecimento de Transporte Rodovirio de Carga que tem o seguinte contedo: Nmero do conhecimento, que nunca se repete, e para o remetente, se pessoa fsica, nome, endereo, telefone e CPF. E se empresa, nome, endereo telefones do representante e razo social,

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

41

inscrio estadual, CGC, endereo da empresa e telefones de contato. Para o destinatrio o conhecimento deve conter as mesmas informaes do remetente. O Conhecimento deve conter ainda, o preo da mercadoria transportada, o valor do ICMS a ser recolhido aos cofres do estado, o valor do pedgio, se existir, o frete peso ou o frete valor, conforme o caso. A indicao de quem paga o frete necessria, se o remetente ou o destinatrio do frete e o peso. Precisa-se tambm da data em que foi realizado o frete, para efeito de registro contbil da empresa transportadora. E por fim, deve-se saber tambm, qual foi o funcionrio da empresa responsvel pela emisso do Conhecimento de Transporte Rodovirio de Carga, neste caso, apenas o nmero do registro do empregado na empresa e o seu nome.

i. Construir um DER e definir todos os seus atributos para o problema a seguir:Um ambiente rural A Secretaria de Agricultura do Estado de Gois quer cadastrar todos os imveis rurais do estado (fazendas, chcaras, stios, etc.) para ter informaes da produo de alimentos por ano. A produo por ano seria o somatrio da produo de todas as propriedades rurais do estado. So necessrias informaes a respeito das propriedades tais como: dono ou donos da propriedade (apenas os donos atuais do imvel), data da aquisio, rea em hectares, municpio onde est situado o imvel, qual o preo de aquisio, a distncia do municpio onde est situada e se existir empregados trabalhando na fazenda, o nome e a data de nascimento devem ser armazenados. Precisa-se saber quais os produtos que a propriedade produz, perodo provvel de colheita, quantidade a colher prevista e quantidade efetivamente colhida, alm do perodo de colheita efetivo. H propriedade que produz vrios tipos de produtos, como por exemplo, a Fazenda Macambira, de Goinia, de propriedade do Sr. Francisco S Jnior que produz feijo, soja e milho. J a Fazenda Maric, de Pires do Rio, que pertence ao Sr. Antnio de Pdua que tem como scio o Sr. Olinto Fraga, produz arroz, beterraba e cenoura. interessante salientar que um imvel rural pode ser propriedade de uma pessoa jurdica, como por exemplo a Fazenda Ribeiro das guias, municpio de Formosa, no estado de Gois, que propriedade da empresa Produtora de Gros Ltda., cujos donos so Rodrigo Machado e Joo Ferreira, neste caso, h que saber quais os donos da empresa. Como h proprietrios que so casados preciso conhecer tambm qual a esposa de cada proprietrio de cada imvel. Do proprietrio, se pessoa fsica, as seguintes informaes devem ser armazenadas: nome, carteira de identidade, CPF, data de nascimento e pelo menos trs telefones para contato. Das esposas, quando existirem, guardar o nome, CPF, se existir, data de nascimento, data do casamento e carteira de identidade. Se o proprietrio uma pessoa jurdica, as seguintes informaes so necessrias: nome da empresa, razo social, CGC, qual o dono ou donos da empresa, inscrio estadual e telefones de contato. j. O Trasnporte Areo: Construir um Modelo de Dados para o problema descrito abaixo: O servio de transporte areo de pessoas, no Brasil, executado pelas empresas areas sob o regime de concesso do Governo Federal. A VASP, A VARIG e TAM, so algumas das empresas que prestam esse tipo de servio. O sistema funciona com base no conceito de vo. Um vo representa a rota que uma aeronave deve percorrer (cidades onde faz escala) para prestar os seus servios. Quando o governo concede um vo para uma empresa, ou seja, permite que faa uma determinada rota, d-lhe um nmero que identifica esse vo para a empresa e que nico dentro do sistema. Ento, podemos ter duas empresas areas fazendo a mesma rota, mas com nmeros diferentes de vo, por exemplo: A Varig pode fazer a rota Braslia, Rio de Janeiro, So Paulo, Curitiba, Florianpolis e Porto Alegre, com o vo 140, e a Vasp pode fazer a mesma rota com o vo 150. Ento ns dizemos, vou a Porto Alegre pelo vo 140 da Varig, ou digo, vou a Porto Alegre pelo vo 150 da Vasp. Para o sistema estamos dizendo que estamos percorrendo a mesma rota porm em companhias area diferentes.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

42

Outro conceito importante o de escala. Para cada cidade da rota que a aeronave pousa, ns dizemos que o vo faz escala nesta cidade. Ento no nosso exemplo do vo 140 da Varig ns dizemos que ele faz escalas em: Braslia, Rio de Janeiro, So Paulo, Curitiba, Florianpolis e Porto Alegre. Para efeito de informao, aos passageiros em aeroportos, o gestor do sistema de transporte area (infraero) precisa saber de cada escala de cada vo as seguintes informaes: qual a companhia area responsvel pelo vo, qual foi a ltima escala desse vo (o que significa querer saber de qual cidade a aeronave est vindo), qual a prxima escala do vo (o que significa querer saber para qual cidade o vo est indo), qual o horrio previsto de chegada do vo, se no houver atraso, e qual o horrio de partida do vo. Outra coisa importante que se precisa saber de cada rota, qual a primeira cidade da rota, o que o mesmo que querer saber de onde procede o vo. Ento, no nosso exemplo de rota, ns dizemos que, se estamos dando informao de So Paulo: o vo 140 da Varig, procedente de Braslia, com destino a Porto Alegre e com escala em Curitiba e Florianpolis, tem chega prevista para tal horas e tantos minutos. Ento precisa-se saber em cada escala qual primeira e ltima cidade da rota. Aqui o conceito de rota circular. Ento a cidade de Braslia, na rota descrita, segue a de Porto Alegre, embora a cidade de Braslia seja a primeira e a de Porto Alegre seja a ltima da rota. Diante do que est descrito podemos dizer ento que: em uma cidade pode haver vrias escalas sendo cada escala de um vo diferente, embora um mesmo vo possa ter vrias escalas no mesmo dia mas em horrios diferentes. Isso porque, no caso de rotas curtas, um vo pode percorrer a rota mais de uma vez por dia. Uma escala deve se referir sempre cidade de onde o vo procede e a uma cidade para qual o vo se destina. Uma escala sempre pertence a um determinado vo. Diante do exposto construir um Diagrama de Entidades x Relacionamentos que nos possibilite prestar as informaes necessrias em cada aeroporto onde o vo faz escala. Quais sejam: Companhia Area responsvel pelo vo, quais os vos que fazem escala em uma determinada cidade, qual foi a escala anterior escala de referncia e qual a prxima escala. Qual a primeira cidade e ltima cidade da rota do vo. Qual o horrio previsto de chegada e partida do vo em cada escala. O DER, deve ser apresentado completo: entidades com seus respectivos atributos, identificadores, relacionamentos e cardinalidades.

k. A Famlia Zacharias: Construir o Modelo de Dados representativo do problema abaixo.A famlia do sr. Galisteu Bambini Zacharias quer registrar informaes sobre os membros de sua rvore genealgica. A inteno saber quem filho de quem, quem irmo de quem, quem tio e sobrinho de quem, quem primo (filhos de irmos) de quem e quem casado com quem. So necessrias, tambm, informaes sobre a escolaridade, onde residem e quais membros j faleceram. No caso dos casamentos (aqui entende-se por casamento o fato de um casal viver maritalmente sob um mesmo teto) preciso saber: se o casamento foi realizado no civil ou no religioso, ou se um casamento no oficial. Um casamento considerado no oficial se ele no foi realizado, nem no civil e nem no religioso. Atentar para o fato de um mesmo casamento poder ser realizado no civil e no religioso, na mesma data, ou em datas diferentes. H pessoas da famlia que, sejam homens ou mulheres, podem se casar mais de uma vez, mas nunca um membro pode ter mais de um casamento ao mesmo tempo. O registro da data do casamento importante. H casamentos desfeitos, seja por divrcio, morte ou desquite. Para esse fato precisa-se saber a data da dissoluo e tambm a causa (divrcio, desquite ou morte). Por exemplo, o sr. Ricardo Bambini Zacharias, j falecido, foi casado duas vezes. O primeiro casamento durou de maio/1940 a novembro/1955, quando foi encerrado por divrcio do casal, e o segundo durou de maro/1955 a janeiro/1970, quando foi desfeito pela morte da esposa. Sobre os filhos precisa-se saber quem so seus pais e se so filhos consangneos ou adotivos. que h casais, na famlia, que por no poderem ter filhos legtimos, adotam crianas e as criam como se seus filhos fossem. Aqui nesta famlia, como se resto em todas as outras famlias brasileiras, h filhos que no so produtos de nenhum casamento. Neste caso, precisa saber qual membro da famlia o pai ou a me e quais so os filhos nesta condio.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

43

Alm das informaes particulares para certa categoria de membros da famlia (mdicos, engenheiros, advogados, professores), precisa-se saber de cada elemento: o nome, o endereo completo, a data de nascimento, pelo menos um telefone e a data de falecimento, para aqueles j falecidos. O endereo dos componentes uma informao importante. Afinal de contas os elementos precisam se corresponderem por meio postal. Sabe-se que alguns componentes da famlia residem no exterior, e outros so de destino ignorado. Informaes importantes, e que tambm devem ser registradas, so as relativas escolaridade. Qual a escolaridade de cada membro, em quais escolas estudou e em que perodo. Por exemplo, o sr. Figueiredo Bambini Zacharias, estudou o primrio no Grupo Escolar Maria Freitas, de 1960 a 1967, o curso secundrio, no Colgio Santa Mnica, de 1968 a 1975, e se formou em Engenharia Civil, pela Universidade Federal de Minas Gerais, em 1980, sendo que o seu ingresso no curso superior se deu em 1976, e concluiu o curso de Mestrado em Estruturas Metlicas, em 1983, na Universidade Federal do Rio de Janeiro, depois de dois anos que ingressou no curso. Para os membros com curso superior, indicar em que eles so formados e qual a sua especialidade. Pode haver algum membro com mais de uma especialidade. Por exemplo, h pessoas formadas em medicina com especialidade em neurologia e clnica geral, h professores, da famlia, especialistas em ensino infantil e em histria das artes, mas h tambm aqueles formados que no se especializaram. O sr. Francisco Bambini Zacharias, formou em Medicina Veterinria, e nunca mais estudou na vida. H elementos, inclusive que nunca foi escola, outros terminaram s o primrio, outros conseguiram terminar o curso secundrio, e uma pequena minoria conseguiu fazer o curso superior. No comum, mas h alguns elementos que tm mais de um curso superior. No caso de morte de um componente da famlia, precisa-se saber qual a causa da morte, em que cemitrio e em que cidade foi sepultado e qual a data de falecimento. Por exemplo, h morte por acidente automobilstico, por acidente de avio, por doena de cncer, etc. H morte que tm mais de uma causa, neste caso deve-se registrar apenas a causa principal. H que saber quais pessoas da famlia j faleceram, quais ficaram vivas, qual casal perdeu algum filho por falecimento e quais filhos j perderam o pai e/ou a me. Quais irmos j morreram e quais esto vivos. No caso de morte de um casal com filhos menores, estes filhos so criados por outros casais da famlia, com se fossem seus filhos. Neste caso, o filho, um filho adotivo especial. uma adoo por parentesco. bom saber, tambm, a bebida preferida de cada membro da famlia, informao importantssima para preparao de festas familiares, e qual o clube de futebol preferido de cada membro. H membros que no bebem e no gostam de futebol. E por fim, registrar a preferncia religiosa de cada membro. Lembrando sempre que nem todas as pessoas professam alguma religio, e que ao longo da vida uma mesma pessoa pode optar por religies diferentes. Em vista disso, bom saber em qual perodo uma pessoa professa uma determinada religio. Por exemplo, o sr. Roberto Bambini Zacharias, dos 7 aos 30 anos era Catlico Apostlico Romano, dos 31 aos 40 anos no professou nenhuma religio e nos anos restantes de vida ele era Esprita. Nenhuma outra informao tem importncia relevante para a famlia. .

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

44

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

45

SQL

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

46

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

47

1.

CREATE TABLEUse a instruo CREATE TABLE para definir uma nova tabela e seus campos e restries de campo 1.1. Sintaxe CREATE TABLE tabela (campo1 tipo [(tamanho)] [NOT NULL] [ndice1] [, campo2 tipo [(tamanho)] [NOT NULL] [ndice2] [, ...]] [, CONSTRAINT ndicedemulticampos [, ...]]) 1.2. A instruo CREATE TABLE tem estas partes: Parte tabela campo1, campo2 tipo tamanho ndice1, ndice2 ndicedemulticampos 1.2. Exemplos a) Criar a tabela: DEPARTAMENTO CREATE TABLE DEPARTAMENTOS (Codigo Text(3) NOT NULL, Nome Text(30) NOT NULL, CONSTRAINT PrkDep PRIMARY KEY (Codigo)) b) Criar a tabela: CURSOS CREATE TABLE CURSOS (Codigo Text(3) NOT NULL, Nome Text(30) NOT NULL, CodigoDepartamento Text(3) NOT NULL, CONSTRAINT PrkCurso PRIMARY KEY (Codigo), CONSTRAINT FrkDepCurso FOREIGN KEY (CodigoDepartamento) REFERENCES DEPARTAMENTOS (Codigo)) Descrio O nome da tabela a ser criada. O nome do campo ou campos a serem criados na nova tabela. Uma tabela deve ter pelo menos um campo. O tipo de dados de campo na nova tabela. O tamanho do campo em caracteres (somente os campos Texto e Binrio). Uma clusula CONSTRAINT que define um ndice de campo nico. Para maiores informaes vide a clusula CONSTRAINT deste manual. Uma clusula CONSTRAINT que define um ndice de campos mltiplos. Para maiores informaes consulte o tpico CONSTRAINT.

c)

Cria a tabela: DISCIPLINAS

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

48

CREATE TABLE DISCIPLINAS (CodigoCurso Text(3) NOT NULL, Numero INTEGER NOT NULL, Nome Text(30) NOT NULL, Creditos Byte NOT NULL, Laboratorio Byte NOT NULL, Prelecao Byte NOT NULL, CodigoDepartamento Text(3) NOT NULL, CONSTRAINT PrkDisciplina PRIMARY KEY (CodigoCurso, Numero), CONSTRAINT FrkCursoDisciplina FOREIGN KEY (CodigoCurso) REFERENCES CURSOS (Codigo)) d) Criar a Tabela: SEMESTRES CREATE TABLE SEMESTRES (Ano Integer NOT NULL, Numero Byte NOT NULL, CONSTRAINT PrkSemestre PRIMARY KEY (Ano,Numero)) e) Criar a Tabela: TURMAS CREATE TABLE TURMAS (CodigoCurso Text(3) NOT NULL, NumeroDisciplina INTEGER NOT NULL, Numero Text(3) NOT NULL, NumeroSubturma Text (1) NOT NULL, AnoSemestre Integer NOT NULL, NumeroSemestre Byte NOT NULL, CONSTRAINT PrkTurma PRIMARY KEY (CodigoCurso, NumeroDisciplina, Numero, NumeroSubTurma, AnoSemestre,NumeroSemestre), CONSTRAINT FrkDisciplinaTurma FOREIGN KEY (CodigoCurso,NumeroDisciplina) REFERENCES DISCIPLINAS (CodigoCurso,Numero), CONSTRAINT FrkDisciplinaSemestre FOREIGN KEY (AnoSemestre,NumeroSemestre) REFERENCES SEMESTRES (Ano,Numero))

1.3. Comentrios Uma clusula CONSTRAINT estabelece vrias restries em um campo e pode ser utilizada para estabelecer a chave primria.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

49

1.4. ALTER TABLE Modifica a estrutura de uma tabela depois de ter sido criada com a instruo CREATE TABLE. 1.5. Sintaxe ALTER TABLE tabela {ADD {COLUMN campo tipo[(tamanho)] [NOT NULL] [CONSTRAINT ndice] | CONSTRAINT ndicedemulticampos} | DROP {COLUMN campo I CONSTRAINT nomedondice} } 1.6. A instruo ALTER TABLE tem estas partes: Parte Tabela Campo Tipo Tamanho ndice ndicedemulticampos Descrio O nome da tabela a ser alterada. O nome do campo a ser adicionado ou excludo da tabela. O tipo de dados de campo. O tamanho do campo em caracteres (somente os campos Texto e Binrio). O ndice para campo. Consulte o tpico da clusula CONSTRAINT para maiores informaes sobre como construir este ndice. A definio de um ndice de campos mltiplos a ser adicionado tabela. Consulte o tpico da clusula CONSTRAINT para maiores informaes sobre como construir esta clusula. O nome do ndice de campo mltiplo a ser removido.

Nomedondice 2.3. Exemplos a)

Acrescentar na tabela DEPARTAMENTOS, o atributo DataDeCriacao de preenchimento opcional e do tipo data. ALTER TABLE DEPARTAMENTOS ADD COLUMN DataDeCriacao Date

b) Excluir da tabela DEPARTAMENTOS, o atributo DataDeCriacao ALTER TABLE DEPARTAMENTOS DROP COLUMN DataDeCriacao 2.4. Comentrios Atravs da instruo ALTER TABLE, voc pode alterar uma tabela existente de diversas maneiras. Voc pode: Utilizar ADD COLUMN para adicionar um novo campo tabela. Voc especifica o nome do campo, tipo de dados e (para campos Texto e Binrio) um tamanho opcional.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

50

Utilizar ADD CONSTRAINT para adicionar um ndice de campos mltiplos. Para maiores informaes sobre ndices de campos mltiplos, consulte o tpico da clusula CONSTRAINT. Utilizar DROP COLUMN para excluir um campo. Voc especifica somente o nome do campo. Utilizar DROP CONSTRAINT para excluir um ndice de campos mltiplos. Voc especifica somente o nome do ndice aps a palavra reservada CONSTRAINT. Voc no pode adicionar ou excluir mais de um campo ou ndice de cada vez. Voc pode utilizar NOT NULL em um campo nico ou dentro de uma clusula CONSTRAINT nomeada que se aplica tanto a uma CONSTRAINT de campo nico ou campos mltiplos. Contudo, voc pode aplicar a restrio NOT NULL somente uma vez a um campo pois, seno, ocorrer um erro em tempo de execuo. 3. DROP TABLE Exclui uma tabela existente de um banco de dados ou exclui um ndice existente de uma tabela. 3.1. Sintaxe DROP {TABLE tabela | INDEX ndice ON tabela} 3.2. A instruo DROP tem estas partes: Parte Tabela ndice 3.3. Exemplos a) Excluir a Tabela: TABEXEMPLO criada pelo comando abaixo Criando a tabela CREATE TABLE TABEXEMPLO (Codigo Text(3), Nome Text(30), DataNascimento Date, CONSTRAINT PrkTabExemplo PRIMARY KEY (Codigo)) Excluindo a tabela DROP TABLE TABEXEMPLO b) Excluir o ndice IdxNome criado pelos comandos abaixo: Criando o ndice (Vide comando CREATE INDEX) CREATE INDEX IdxNome ON DEPARTAMENTOS (Nome ASC) Descrio O nome da tabela a ser excluda ou a tabela a partir da qual um ndice deve ser excludo. O nome do ndice a ser excludo da tabela.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

51

Excluindo o ndice IdxNome DROP INDEX IdxNome ON DEPARTAMENTOS 3.4. Comentrios Voc deve fechar a tabela para poder exclu-la ou remover um ndice dela. Voc tambm pode utilizar ALTER TABLE para excluir um ndice de uma tabela. Voc pode utilizar CREATE TABLE para criar uma tabela e CREATE INDEX ou ALTER TABLE para criar um ndice. Para modificar uma tabela, use ALTER TABLE. 4. CREATE INDEX Cria um novo ndice em uma tabela existente. 4.1. Sintaxe CREATE [ UNIQUE ] INDEX ndice ON tabela (campo [ASC|DESC][, campo [ASC|DESC], ...]) [WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }] 4.2. A instruo CREATE INDEX tem estas partes: Parte ndice tabela campo Descrio O nome do ndice a ser criado. O nome da tabela existente que conter o ndice. O nome do campo ou campos a serem indexados. Para criar um ndice de campo nico, liste o nome do campo entre parnteses aps o nome da tabela. Para criar um ndice de campos mltiplos, liste o nome de cada campo a ser includo no ndice. Para criar ndices descendentes, use a palavra reservada DESC; caso contrrio, assume-se que os ndices so ascendentes.

4.3. Exemplos a) Criar um ndice nico para o campo nome da tabela: DEPARTAMENTOS CREATE UNIQUE INDEX IdxNome ON DEPARTAMENTOS (Nome ASC) A clusula UNIQUE indica que o ndice criado no pode Ter valores duplicados. b) Criar um ndice para o campo nome da tabela DEPARTAMENTOS proibindo a entrada de dados nulos. CREATE INDEX IdxNome

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

52

ON DEPARTAMENTOS (Nome ASC) WITH DISALLOW NULL A clusula WITH DISALLOW NULL proibe a entrada de dados nulos no campo nome. c) Criar um ndice para o campo nome da tabela DEPARTAMENTOS que no contenha valores nulos CREATE INDEX IdxNome ON DEPARTAMENTOS (Nome ASC) WITH IGNORE NULL A clusula WITH IGNORE NULL proibe valores nulos no ndice. 4.4. Comentrios Para proibir valores duplicados no campo ou campos indexados de diferentes registros, use a palavra reservada UNIQUE. Na clusula WITH opcional, voc pode impor regras de validao de dados. Voc pode: Proibir entradas Null no campo ou campos indexados dos novos registros, utilizando a opo DISALLOW NULL Impedir que registros com valores Null no campo ou campos indexados sejam includos no ndice utilizando a opo IGNORE NULL. Designar o campo ou campos indexados como a chave primria utilizando a palavra reservada PRIMARY. Isto significa que a chave exclusiva e, portanto, voc pode omitir a palavra reservada UNIQUE. Voc tambm pode utilizar a instruo ALTER TABLE para adicionar um ndice de campo nico ou de campos mltiplos a uma tabela e pode utilizar a instruo ALTER TABLE ou a instruo DROP para remover um ndice criado com ALTER TABLE ou CREATE INDEX. 5. CONSTRAINT Uma restrio semelhante a um ndice, embora tambm possa ser utilizada para estabelecer uma relao com uma outra tabela. Voc utiliza a clusula CONSTRAINT nas instrues ALTER TABLE e CREATE TABLE para criar ou excluir restries. H dois tipos de clusulas CONSTRAINT: um para criar uma restrio em um campo nico e outro para criar uma restrio em mais de um campo. 5.4. Sintaxe Restrio de campo nico: CONSTRAINT nome {PRIMARY KEY | UNIQUE | NOT NULL | REFERENCES tabelaexterna [(campoexterno1, campoexterno2)]}

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

53

Restrio de campos mltiplos: CONSTRAINT nome {PRIMARY KEY (primria1[, primria2 [, ...]]) | UNIQUE (exclusiva1[, exclusiva2 [, ...]]) | NOT NULL (nonulo1[, nonulo2 [, ...]]) | FOREIGN KEY (ref1[, ref2 [, ...]]) REFERENCES tabelaexterna [(campoexterno1 [, campoexterno2 [, ...]])]} 5.5. A clusula CONSTRAINT tem estas partes: Parte Nome primria1, primria2 exclusiva1, exclusiva2 nonulo1, nonulo2 ref1, ref2 Tabelaexterna campoexterno1, campoexterno2 Descrio O nome da restrio a ser criada. O nome do campo ou campos a ser designado(s) chave primria. O nome do campo ou campos a ser designado(s) como uma chave exclusiva. O nome do campo ou campos que esto restritos a valores no-Null O nome do campo ou campos de uma chave externa que fazem referncia a campos em uma outra tabela. O nome da tabela externa contendo o campo ou campos especificados por campoexterno. O nome do campo ou campos na tabelaexterna especificados por ref1, ref2. Voc pode omitir esta clusula se o campo referenciado for a chave primria de tabelaexterna.

5.6. Comentrios Voc utiliza a sintaxe para uma restrio de campo nico na clusula de definio de campo de uma instruo ALTER TABLE ou CREATE TABLE que se segue imediatamente especificao do tipo de dados do campo. Voc utiliza a sintaxe para uma restrio de campos mltiplos sempre que utilizar a palavra reservada CONSTRAINT fora de uma clusula de definio de campo em uma instruo ALTER TABLE ou CREATE TABLE. Utilizando CONSTRAINT, voc pode designar um campo como um dos seguintes tipos de restries: Voc pode utilizar a palavra reservada UNIQUE para designar um campo como chave exclusiva. Isto significa que no pode haver dois registros em uma tabela que tenham o mesmo valor neste campo. Voc pode restringir qualquer campo ou lista de campos como exclusivo. Se uma restrio de campos mltiplos for designada como uma chave exclusiva, os valores combinados de todos os campos no ndice devem ser exclusivos, mesmo que dois ou mais registros tenham o mesmo valor em apenas um dos campos.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

54

Voc pode utilizar as palavras reservadas PRIMARY KEY para designar um campo ou conjunto de campos em uma tabela como uma chave primria. Todos os valores na chave primria devem ser exclusivos e no Nulos e s pode haver uma chave primria para uma tabela. Voc pode utilizar as palavras reservadas FOREIGN KEY para designar um campo como uma chave externa. Se a chave primria da tabela externa consistir em mais de um campo, voc dever utilizar uma definio de restrio de campos mltiplos, listando todos os campos referenciais, o nome da tabela externa e os nomes dos campos referenciados na tabela externa, na mesma ordem em que os campos referenciais so listados. Se o campo ou campos referenciados forem a chave primria da tabela externa, voc no precisar especificar os campos referenciados por padro, o mecanismo de banco de dados se comporta como se a chave primria da tabela externa fosse os campos referenciados. 6. INSERT INTO Adiciona um registro ou mltiplos registros a uma tabela. Isto chamado de consulta acrscimo. 6.4. Sintaxe Acrscimo de mltiplos registros: INSERT INTO destino [IN bancodedadosexterno] [(campo1[, campo2[, ...]])] SELECT [origem.]campo1[, campo2[, ...] FROM expressodetabela Consulta acrscimo de registro nico: INSERT INTO destino [(campo1[, campo2[, ...]])] VALUES (valor1[, valor2[, ...]) 6.5. A instruo INSERT INTO possui as partes a seguir: Parte destino bancodedadosexterno0 origem campo1, campo2 Descrio O nome da tabela ou consulta qual acrescentar os registros. O caminho at um banco de dados externo. Para obter uma descrio do caminho, consulte a clusula IN. O nome da tabela ou consulta a partir da qual os registros vo ser copiados. Nomes dos campos aos quais os dados sero acrescentados, se se seguirem a um argumento destino, ou os nomes dos campos a partir dos quais os dados sero obtidos, se se seguirem a um argumento origem.

Expressodetabela

O nome da tabela ou das tabelas das quais os registros so inseridos. Este argumento pode ser um nome de tabela simples ou

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

55um composto resultante de uma operao INNER JOIN, LEFT JOIN ou RIGHT JOIN ou uma consulta salva. Os valores a serem inseridos nos campos especficos do novo registro. Cada valor inserido no campo que corresponde posio do valor na lista: valor1 inserido no campo1 do novo registro, valor2 no campo2, e assim por diante. Voc deve separar os valores com uma vrgula e colocar os campos de texto entre aspas (' ').

valor1, valor2

6.6. Comentrios Voc pode usar a instruo INSERT INTO para adicionar um nico registro a uma tabela usando a sintaxe da consulta acrscimo de registro nico como mostrado acima. Nesse caso, o cdigo especifica o nome e o valor de cada campo do registro. Voc deve especificar cada um dos campos do registro ao qual ser atribudo um valor e um valor para aquele campo. Quando voc no especifica os campos, o valor padro ou Null inserido para colunas ausentes. Os registros so adicionados ao fim da tabela. Voc pode tambm usar INSERT INTO para acrescentar um conjunto de registros de uma outra tabela ou consulta utilizando a clusula SELECT ... FROM, como mostrado acima na sintaxe da consulta acrscimo de mltiplos registros. Nesse caso, a clusula SELECT especifica os campos a acrescentar tabela destino especificada. A tabela origem ou destino pode especificar uma tabela ou uma consulta. Se for especificada uma consulta, o mecanismo de banco de dados Microsoft Jet acrescenta registros a todas as tabelas especificadas pela consulta. INSERT INTO opcional, mas, quando includa, precede a instruo SELECT. Se a tabela de destino contiver uma chave primria, certifique-se de acrescentar valores exclusivos no-Null ao campo ou campos da chave primria; se no o fizer, o mecanismo de banco de dados Microsoft Jet no acrescentar os registros. Se voc acrescentar os registros a uma tabela com um campo AutoNumerao e quiser renumerar os registros acrescentados, no inclua esse campo. Inclua o campo AutoNumerao na consulta se quiser conservar os valores originais do campo. Use a clusula IN para acrescentar os registros a uma tabela em um outro banco de dados. Para criar uma nova tabela, use a instruo SELECT... INTO em lugar de criar uma consulta criar tabela. Para descobrir quais registros sero acrescentados antes de executar a consulta acrscimo, primeiro execute e visualize os resultados de uma consulta seleo que use os mesmos critrios de seleo. Uma consulta acrscimo copia registros de uma ou mais tabelas para outra. As tabelas que contm os registros que voc acrescenta no so afetadas pela consulta acrscimo. Em vez de acrescentar registros existentes de uma outra tabela, voc pode especificar o valor de cada campo em um nico registro novo, usando a clusula VALUES. Se voc omitir a lista de campos, a clusula VALUES dever incluir valores para todos os campos da tabela; caso contrrio, a operao INSERT falhar. Use uma instruo INSERT INTO adicional com uma clusula VALUES para cada registro adicional que quiser criar.

Curso: Cincias da Computao UCG

V0

Prof: Ivon Rodrigues Canedo

Banco de Dados I

56

7.

DELETE Remove os registros de uma ou mais tabelas relacionadas na clusula FROM que satisfaam clusula WHERE. 7.4. Sintaxe DELETE [tabela.*] FROM tabela WHERE critrios 7.5. A instruo DELETE possui as partes a seguir: Parte tabela.* tabela Critrios 7.6. Comentrios DELETE especialmente til quan