Você está na página 1de 52

Principais Referncias Bibliogrficas [CHATZ1999] Sistema de Banco de Dados. A. Silberchatz, H. Korth, S. Sudarshan. Makron Books, 3 edio, 1999.

Projeto de Banco de Dados. C. A. Heuser. Editora Sagra Luzzato, 3 edio, 1999. Apostila de Banco de Dados 1. A. L. Alvez. UCG, 2003.

[HEUSER2001]

[ALVES2003]

[OLIVEIRA2001] Introduo a Banco de Dados Notas de Aula. J. L. Oliveira. UFG, 2002.

2) Introduo
Fundamentos - Sistema de Banco de Dados (SBD) - Sistema Gerenciador de Banco de Dados (SGBD) O Modelo de Dados Relacional - Domnios, relaes, tuplas, atributos, chaves. - Restries de integridade: domnio, chave, referencial. - Mapeamento do modelo E-R (Entidade-Relacionamento) para o modelo Relacional. A Linguagem SQL - Definio de dados (DDL) - Manipulao de dados (DML) - Pratica de programao SQL 2.1) Dados e Informaes Dado: um conjunto de smbolos sem significado intrnseco. O valor de um dado no constitui em um conhecimento til. Informao: o dado associado sua semntica. A informao um recurso valioso, permitindo gerar e difundir o conhecimento. 2.2) Bases e Banco de Dados Base de Dados: uma coleo de dados inter-relacionados. Banco de Dados (BD): a Base de Dados associada sua semntica. um conjunto de arquivos integrados que atendem a um conjunto de sistemas. [HEUSER2001] Modelo do BD (ou Modelo de Dados): o a descrio formal da estrutura de um banco de dados. o Para se construir um modelo de BD usa-se uma linguagem de modelagem de dados. o Pode ser representado de vrias formas. o Possui dois nveis de abstrao: o modelo conceitual e o modelo lgico. Esquema (ou inteno) do BD: o cada representao do modelo do BD. Instncia (ou extenso, ou estado) do BD: o So os dados contidos em uma base de dados em um determinado instante.

2.3) Propriedades de um Banco de Dados

Tem o propsito de refletir o mundo real; Possui semntica inerente; Serve para um propsito; Possui tamanho e complexidade variveis; Compartilhamento de dados;

Ex.: uma indstria hipottica, onde as reas de Produo, Vendas e Compras compartilham um mesmo Banco de Dados.

Produo

Vendas

Compras

Banco de Dados Produto s

Base de dados de Produtos

2.4) Sistema Gerenciador de Banco de Dados (SGBD) Um SGBD constitudo por um conjunto de dados associados a um conjunto de programas para acesso a esses dados. um software que incorpora as funes de definio, recuperao e alterao de dados em um banco de dados [HEUSER2001]. H vrios tipos de SGDBs no mercado. No decorrer do curso vamos nos concentrar nos SGBDs do tipo relacional, que principal modelo utilizado no mercado. 2.4.1. Objetivos do SGBD Criao e manuteno de Bancos de Dados o Definio: especificao dos tipos de dados que sero utilizados. o Construo: armazenamento fsico dos dados e metadados. o Manuteno: evoluo dos esquemas de bancos de dados. Manipulao de bases de dados o Recuperao: consulta aos dados armazenados o Atualizao: modificao de dados especficos visando refletir mudanas da realidade representada.

Exemplo: Banco de Dados de uma Universidade Dados do Estudante: nome, matrcula, endereo... Dados de Disciplina: cdigo, nome, crditos, depto...

Dados de Curso: nome, departamento, carga horria... Dados de Notas: turma, estudante, mdia... Dados de Professor: matrcula, nome, ttulo...

Definio: nome = string(30); matricula = numrico(6); .... Construo: armazenar dados de cada estudante, curso,... Manipulao: criar um novo curso; obter nomes de disciplinas do curso X; alterar nota do aluno Y;... Evoluo: alterar matrcula para numrico (8); 2.4.2. Principais componentes de um SGBD Gerenciador de Dados o Armazenamento de dados. o Recuperao de dados. o Manuteno de restries de integridade e segurana. Gerenciador de Transaes o Processamento e otimizao de transaes. o Recuperao de falhas. o Controle de concorrncias.

2.4.3. Classificao dos SGBDs Critrio 1: modelo de dados o Relacional, hierrquico, em rede, OO. Critrio 2: nmero de usurios simultneos o Mono-usurio, multi-usurio Critrio 3: distribuio do SBD o Centralizado, distribudo. Critrio 4: custo o de $ 100 a $ 3.000, de $ 10.000 a $ 100.000, acima de $ 100.000 o Critrio 4: tipo de utilizao o Genricos, de propsito especfico

2.5) Sistema de Banco de Dados (SBD)

Usurios SBD

Transaes SGBD

Gerenciador de Transaes (TM)

Gerenciador de Acesso aos Dados (DM)

Definio do BD Catlogo 2.5.1. Objetivos do SBD -

Dados Armazenados Base de Dados

Controlar (diminuir) redundncia o Evitar desperdcio de espao e inconsistncia. o Em certas situaes permitida a redundncia controlada. Controlar compartilhamento de dados o Sistemas multi-usurio exigem controle de concorrncia. Controlar direitos de acesso o Prover mecanismos de gerncia de acesso. o Catlogo/dicionrio de dados facilita essa gerncia. Prover mltiplas interfaces o Oferecer diferentes tipos de interfaces para os diversos tipos de usurios. Expressar relacionamentos complexos entre dados Garantir (preservar) restries de integridade o Verificar restries de integridade automaticamente Prover recuperao de falhas e cpias de segurana o Tratar falhas que podem comprometer a consistncia.

2.5.2. Vantagens do uso de SBDs Segurana e controle centralizados

o Diminui a redundncia de dados. A redundncia ocorre de maneira mais controlada. o Reduz inconsistncia nos dados. Dados menos redundantes e verificao de restries de integridade. o Facilita a padronizao. Esta pode ser imposta pela administrao de dados e de BD. o Aumenta flexibilidade do ambiente, pois facilita alteraes estruturais. Reduz o tempo de desenvolvimento o Estima-se que com o reaproveitamento dos esquemas e dados pode-se reduzir o tempo de desenvolvimento de 25% a 35%. Aumenta disponibilidade dos dados o O usurio pode ter acesso imediato aos dados atualizados por outro usurio devido aos mecanismos de controle de concorrncia e recuperao de falhas. Economia de escala o A consolidao dos dados e aplicaes permitem crescimento coordenado, sem duplicao de esforo.

2.5.3. Pessoas envolvidas em um SBD Projetistas de Bancos de Dados o Identificam dados, restries e requisitos de desempenho. o Definem o modelo conceitual e lgico da aplicao. o Em algumas organizaes podem definir o modelo fsico. o Precisam conhecer o negcio. Administradores de Banco de Dados (DBA) o Definem critrios de acesso. o Monitoram desempenho e definem projeto fsico. o Definem estratgia de backup e recuperao de falhas. o Precisam conhecer o SGBD Usurios finais Analistas e programadores de aplicaes

2.5.4. SBD x Arquivos Tradicionais

SBD - Um SBD auto-contido: dados (base) + metadados (catlogo); uso de software de propsito geral; mesmo repositrio usado por diferentes perfis de usurios.

Arquivos Tradicionais - Cada usurio define e implementa arquivos necessrios sua aplicao especfica; Programas separados para manipular dados contidos nos arquivos.

- Isolamento e independncia entre programas e dados.

- Definio dos dados parte do programa da aplicao.

- Suporta definio de mltiplas vises - No suporta definio de mltiplas de dados. vises.

2.5.5. Vantagens do uso de arquivos convencionais Aplicao com dados muito simples, bem definidos e estveis. o Diminui o custo, pois no exige investimento em SGBD. Requisitos de tempo real. o O SGBD impe overhead de segurana, controle de concorrncia, recuperao. Aplicaes em que no h necessidade de acesso de mltiplos usurios.

2.6) Modelos de Dados o conjunto de conceitos utilizados para descrever a estrutura de uma base de dados: tipos de dados, relacionamentos entre eles e restries de integridade. A maioria dos modelos inclui tambm um conjunto de operaes que podem ser usadas para especificar recuperao e atualizao dos dados. So ferramentas bsicas para prover diferentes nveis de abstraes (conceitual, fsica) no entendimento da estrutura de dados. 2.6.1) Abstraes Modelo de dados conceitual (alto nvel): o Conceitos prximos da viso do usurio final; o Baseado na descrio de objetos e seus inter-relacionamentos. Modelo de dados fsico (baixo nvel): o Conceitos prximos da viso dos especialistas em computao; o Descreve detalhes do armazenamento de dados no computador; Modelo de dados de implementao (nvel mdio): o Conceitos compreendidos pelo usurio final, mas que representam logicamente aos dados armazenados.

2.7) Arquitetura ANSI-SPARC para BD

Nvel Externo

Viso externa Mapeamento Externo-conceitual

Nvel Conceitual

Esquema Conceitual Mapeamento Conceitual-interno

Nvel Interno

Esquema Interno

Dados Armazenados

2.7.1) Principais caractersticas Prov as caractersticas da abordagem de BD o Independncia de dados; Vises mltiplas; uso de catlogo. Nvel Interno Esquema Interno o Descreve as estruturas fsicas de armazenamento do BD o Usa o modelo de dados fsico Nvel Conceitual Esquema Conceitual o Descreve a estrutura do BD com um todo o Usa o modelo lgico (esconde implementao fsica) Nvel Externo Viso Externa o Vises conceituais particulares de acordo com o perfil do usurio.

2.7.2) Independncia de Dados a capacidade de alterar o esquema em um nvel do SBD sem afetar os esquemas nos nveis superiores. Independncia de dados lgica o Mudanas no esquema conceitual no afetam esquemas externos. Exemplo: a alterao do nome do cliente no afeta um esquema externo que s contm o cdigo e o cpf do cliente. Independncia de dados fsica

o Mudanas no esquema interno no implicam em mudana nos esquemas conceitual e externos. Exemplo: incluso de um ndice de acesso. 2.8) Linguagem e Interface para BD Um SBD deve prover linguagens e interfaces apropriadas para realizar tarefas especficas. o Definio de Armazenamento (Storage Definition Language SDL) o Definio de Dados (Data Definition Language - DDL) o Definio de Vises (View Definition Language - VDL) o Manipulao de Dados (Data Manipulation Language DML) As Interfaces so indicadas para usurios mais experientes ou que no desejam conhecer os detalhes de query-languages. Estas linguagens possuem a seguinte classificao: o o o o Baseadas em menu Grficas Baseadas em formulrios Baseados em linguagem natural

2.9) Projeto de Banco de Dados Define as estruturas lgica e fsica de uma base de dados. Precisa atender requisitos de contedo, compreenso, processamento e desempenho para um determinado conjunto de usurios e aplicaes. 9.1) Fases 1 Coleta e anlise requisitos; 2 Projeto conceitual; 3 Escolha de um SGBD; 4 Projeto Lgico; 5 Projeto Fsico; 6 Implementao. 9.2) O Projeto de Banco de Dados dentro do Ciclo de Vida dos Sistemas Informao Fase Funes - Anlise de Viabilidade Dados

- Anlise de Requisitos - Projeto - Implementao - Validao e aceitao - Operao - Monitoramento e Manuteno. 2.10) Exerccios

Anlise Funcional (DFD, etc...)

Projeto Conceitual (MER, DD)

Projeto Funcional Projeto Operacional (projeto dos mdulos) (lgico e fsico) Programas Criao e carga do BD

01 - ( ) Informao qualquer conjunto de smbolos que no possui significado. Apesar disso, a informao representa um conhecimento til e valioso dentro da realidade das empresas, permitindo gerar e difundir conhecimento. 02 - ( ) Base de Dados um conjunto de dados inter-relacionados. 03 - ( ) Um Banco de Dados uma base de dados associada sua semntica. 04 - ( ) Banco de Dados so todos os arquivos contidos em um Sistema de Informao, ou seja, um Sistema de Informao constitudo nica e exclusivamente por um conjunto de bases de dados, que, associados sua semntica constituem o Banco de Dados. 05 - ( ) Um Banco de Dados constitudo por um modelo, uma esquema e uma instncia. 06 - ( ) Um Modelo de Dados a descrio formal da estrutura de um banco de dados, que por sua vez representada pelo Esquema do Banco de Dados. 07 - ( ) Alm de representar a estrutura do Banco de Dados, o Esquema do Banco de Dados tambm representa todos os dados contidos nas Bases de Dados, dentro do Banco de Dados. Desta forma dados e metadados ficam contidos em um mesmo repositrio. 08 - ( ) Um Banco de Dados tem como propsito representar o mundo real. Sendo assim, possui semntica inerente, servindo para diversos propsitos. Alm disso, possui tamanho e complexidade variveis, alm de promover o compartilhamento de dados. 09 - ( ) Gerenciar compartilhamento de dados no tarefa do Banco de Dados. Este compartilhamento deve ser gerenciado pelo sistema que ir utilizar o Banco de Dados, ou seja, controle de concorrncia uma tarefa do programador no momento do desenvolvimento da aplicao.

10

10 - ( ) Um Sistema de Gerenciamento de Banco de Dados um software que incorpora as funes de definio, construo, manuteno, recuperao e atualizao de dados em um banco de dados. 11 - ( ) Os principais componentes de um SGBD so o gerenciador de dados e o gerenciador de transaes. 12 - ( ) O gerenciador de dados responsvel pelo armazenamento, recuperao de dados, manuteno de restries de integridade e segurana. 13 - ( ) O gerenciador de transaes responsvel pelo processamento e otimizao de transaes, pela recuperao de falhas e pelo controle de concorrncia. 14 - ( ) Dentre as vrias classificaes dos SGBDs podemos citar: Quanto ao modelo de dados (mono-usurio e multi-usurio), e quanto ao tipo de utilizao (centralizado e distribudo). 15 - ( ) O conceito de Sistema de Banco de Dados (SBD) est contido dentro do conceitos de Sistema de Gerenciamento de Banco de Dados (SGBD), onde esto contidos mecanismos de Gerenciamento de Transaes (TM) e Gerenciamento de Acesso a Dados (DM). 16 - ( ) O Gerenciador de Acesso a Dados utiliza o Catlogo com a definio do Banco de Dados para obter informao a respeito da estrutura dos Dados armazenados na Base de Dados contida no Banco de Dados. 17 - ( ) Redundncia de dados significa existncia de informaes repetidas na Base de Dados. 18 - ( ) Um dos principais objetivos de um Sistema de Banco de Dados o controle de redundncia no armazenamento dos dados. 19 - ( ) Redundncia e inconsistncia so inversamente proporcionais, ou seja, quanto maior a redundncia, menor a inconsistncia. 20 - ( ) Gerenciamento de compartilhamento de dados em Sistemas de Banco de Dados mono-usurio um dos objetivos dos SBDs. 21 - ( ) Gerenciamento de direitos de acesso, mltiplas interfaces, garantias de restries de integridade, recuperao de falhas e gerenciamento de cpias de segurana tambm so objetivos dos SBDs. 22 - ( ) Os SBDs no prevem mecanismos para representar relacionamento complexos entre dados. 23 - ( ) A segurana e o controle descentralizados dentro dos SBDs so utilizados no sentido de facilitar a padronizao no desenvolvimento e facilitar alteraes estruturais.

11

24 - ( ) A utilizao de SBDs tem muitas vantagens, porm, sua principal desvantagem est no fato de que aumenta o tempo no desenvolvimento, pois os esquemas de Banco de Dados j existentes no podem ser reaproveitados. 25 - ( ) Existem vrias pessoas, e atividades, envolvidas no desenvolvimento de um Sistema de Banco de Dados, dentre elas, podemos citar: os usurios finais, que so as pessoas responsveis pela criao e definio das estrutura do Banco de Dados, e os analistas e programadores de aplicaes, que so as pessoas responsveis pelo implementao fsica de um Banco de Dados. 26 - ( ) tarefa do Administrador de Dados (DBA) a definio do modelo conceitual de lgico do banco de dados. Cabe a est pessoa conhecer as regras de negcio da realidade que est modelando no sentido desenvolver um projeto que atende as reais necessidades dos seus usurios finais. 27 - ( ) Os utilizao de SBDs se difere da utilizao de arquivos tradicionais no que diz respeito a definio dos dados. Enquanto nos SBDs a definio dos dados parte do programa de aplicao, nos arquivos tradicionais existe isolamento e independncia entre programas e dados. 28 - ( ) Para descrever a estrutura de um Banco de Dados, utilizamos o chamado Modelo de Dados. A estrutura de um Banco de Dados definida pelo seu conjunto de dados e seus relacionamentos, e pela definio das restries de integridade entre estes dados. 29 - ( ) A maioria dos Modelos de Dados prevem um conjunto de operaes que podem ser usadas para especificar recuperao e atualizao dos dados. 30 - ( ) Os modelos de dados possuem dois nveis de abstrao: O Modelo de Dados Conceitual, que descreve os detalhes de armazenamento dos dados no computador e o Modelo de Dados Fsico, baseado na descrio de objetos e seus inter-relacionamentos. 31 - ( ) Na arquitetura ANSI-SPARC para Bancos de Dados, esto previstos trs nveis de representao do Modelo de Dados. O nvel externo, que implementa o modelo descritivo, que baseado em vises particulares de acordo com o perfil do usurio; O nvel conceitual, que implementa o modelo relacional e descreve a estrutura do BD como um todo; e o esquema interno, que implementa o modelo fsico e descreve as estruturas fsicas de armazenamento do Banco de Dados. 32 - ( ) A arquitetura ANSI-SPARC provs os conceitos de independncia de dados e mltiplas vises do Banco de Dados. 33 - ( ) Existem dois tipos de Independncia de Dados: A independncia de dados fsica e lgica. No conceito de independncia de dados lgica, mudanas no esquema conceitual no afetam esquemas externos. J no conceito de independncia de dados fsica, mudanas no esquema interno no implicam em mudana nos esquemas conceitual e externos.

12

34 - ( ) Data Definition Language DDL a linguagem de Banco de Dados utilizada para definio e manipulao dos dados. 35 - ( ) Alguns Sistemas de Banco de Dados provem interfaces grficas para manipulao os dados. Interfaces estas que dispensam a utilizao de querylanguages, tornando mais fcil a tarefa do DBA. 36 - ( ) Um projeto de Banco de Dados define as estruturas lgica e fsica de uma base de dados. 37 - ( ) Requisitos de contedo, compreenso, processamento e desempenho para um determinado conjunto de usurios e aplicaes devem ser atendidos por um projeto de Banco de Dados. 38 - ( ) Um projeto de Banco de Dados deve obedecer as seguintes fases, respectivamente: 1 Coleta e anlise requisitos; 2 Projeto conceitual; 3 Escolha de um SGBD; 4 Projeto Lgico; 5 Projeto Fsico; 6 Implementao. 39 - ( ) Dentro do ciclo de vida de desenvolvimento de sistemas, as atividades relacionadas a banco de dados compreendem as fases de Anlise de Requisitos, Projeto e Implementao.

13

3) O Modelo de Dados Relacional


O Modelo de Dados Relacional foi introduzido por E. F. Codd em 1970. Representa o padro de facto para modelo de dados, sendo implementado pela maioria dos SGBDs comerciais. Representa um modelo eficiente para a maioria das aplicaes comerciais. Em uma definio informal, o Modelo Relacional representado por tabelas, linhas, colunas e domnios, dentro de uma nica estrutura de dados. Exemplo: Nome Edison Pedro Maria Alfredo Ftima Regina CPF 123456 654321 299299 238838 445355 345355 Sexo M M F M F F Data Nasc. 07/03/77 01/12/78 15/05/54 13/09/70 19/05/78 17/05/75 Profisso Analista de Sistemas Professor Biloga Professor Mdica Psicloga

Em uma analogia entre o conceito matemtico de relao e a noo trivial de tabela, temos que: cada LINHA da tabela representa uma TUPLA da relao; O NMERO DE COLUNAS da tabela representa o GRAU da relao; O NMERO DE LINHAS da tabela representa a CARDINALIDADE da relao; Os VALORES PERMITIDOS em cada coluna da tabela representam o DOMNIO da relao. Para o exemplo acima, temos uma relao de grau cinco e cardinalidade seis. O 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 devem ser executadas 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. O Modelo entidade-relacionamento (MER) representado atravs de Diagrama Entidade Relacionamento (DER). Os prximos itens deste texto detalham cada um de seus componentes. 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; 14

- Representar graficamente as necessidades de informao independente do Software e do Hardware a serem usados na implementao do Sistema. 3.1) Diagrama Entidade Relacionamento (DER) 3.1.1) Entidade o conjunto de objetos da realidade modelada sobre os quais desejase manter informaes no banco de dados. [HEUSER2001] Chamamos de entidade, qualquer coisa real ou abstrata, de um determinado ambiente, sobre a qual precisamos guardar informaes. [ALVES2003] Quando 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 representadas 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 depende 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. Representao Grfica: LIVRO CLIENTE EMPRSTIMO

3.1.2) Relacionamento o conjunto de associao entre entidades. [HEUSER2001]

15

Chamamos 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. [ALVES2003] Representao Grfica: EMPREGADO TEM DEPENDENTE

3.1.3) Atributo o dado que associado a cada ocorrncia de uma entidade ou de um relacionamento. [HEUSER2001] So partes especficas de uma determinada entidade. [ALVES2003] 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. Casas Bahia, Carrefour, 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: {nmero reais de 0 a 10). Representao Grfica: ALUNO Nome Matrcula

16

Caractersticas dos 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 uma aluno pode Ter a mesma nota. 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. Representao Grfica: Endereo Rua Quadra Lote

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.

Representao Grfica: Telefone Derivado: quando o seu contedo depende do contedo de outros atributos. Por exemplo, o total de uma nota fiscal formado pela soma dos totais de cada item componente da nota fiscal. Representao Grfica: Total da Nota

17

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. Representao Grfica: Matrcula Em sua representao grfica, o atributo do tipo identificador deve aparecer sublinhado. Existem seis tipos de atributos identificadores, tambm chamados de chaves ou ndices. Os atributos componentes dos campos chave no devem permitir valores nulos. Chave Super chave Chave Descrio qualquer subconjunto de atributos que identifica univocamente uma tupla da relao. a super chave minimal. No se pode tirar nenhum dos seus atributos componentes sem perder a unicidade. Qualquer combinao de atributos que pode ser chave da relao. Chave candidata considerada principal. Determina a ordenao lgica das tuplas na relao. Chave candidata que no foi designada como primria. Permite associao lgica entre tuplas de duas relaes. ( a chave primria da outra relao).

Chave candidata (alternativa) Chave primria

Chave alternativa (nica) Chave estrangeira (chave externa)

No Identificador: quando o identificador no identifica por si s uma entidade dentro de um tipo de entidades. Por exemplo, o nome do aluno no identifica o aluno dentro to tipo de entidade ALUNO. 3.1.4) Dicionrio de Dados O dicionrio de dados contm as definies das entidades, dos relacionamentos e dos atributos de um modelo de dados. [ALVES2003] 3.1.5) Padres de nomenclatura Nome do Tipo de Entidade: Letras maisculas e no singular. 18

Nome de Relacionamento: Letras maisculas e no singular. Nome de Atributo: Inicia com letra maiscula e o restante minsculo. 3.1.6) Tipos de Entidades Entidade Primria a entidade que existe por si mesma. Sua identificao completa feita pelos seus prprios atributos. [ALVES2003] Ex.: A Entidade ALUNO uma entidade primria porque identificada pelos seus prprios atributos. O seu identificador pode ser o atributo Matrcula do aluno. Representao Grfica: ALUNO Nome Matrcula 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. [ALVES2003] Ex.: 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 identific-lo completamente. Assim: Joo Vieira dependente de Francisco da Rocha (EMPREGADO). Representao Grfica: EMPREGADO Nome Matrcula TEM DEPENDENTE

Cdigo Data Nascimento

Entidade Associativa a entidade que no se identifica por se mesma e sua existncia depende da existncia de duas ou mais outras entidades. Compem seu

19

identificador os identificadores das entidades que se associaram para lhe dar origem. [ALVES2003] Ex.: 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 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). Representao Grfica:
ALUNO DISCIPLINA

1 N
APROVEITAMENTO

1 N

3.1.7) Tipos de Relacionamentos Relacionamento Tipo Dependncia Chamamos de Relacionamento de Dependncia ao relacionamento entre um tipo de entidade primria e um tipo de entidade dependente (fraca). [ALVES2003] Ex.: 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 existam empregados com a mesma matrcula. J a 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. Representao Grfica:

20

1
EMPREGADO

N
DEPENDENTE

Tipo de Entidade Primria Relacionamento Tipo Associativo

Tipo de Entidade Fraca

Um relacionamento do tipo associativo se ele relaciona uma entidade primria a uma entidade associativa. [ALVES2003] Ex.: 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. Representao Grfica:
ALUNO

N
APROVEITAMENTO

DISCIPLINA

Entidade Primria Primria 3.1.8) Cardinalidade dos Relacionamentos

Entidade Associativa

Entidade

Havendo um relacionamento entre entidades, necessrio identificar a cardinalidade, ou seja, quantas tuplas da entidade A podem estar associadas com uma tupla da entidade B e vice-versa. A partir desta verificao, podemos definir os seguintes tipos de relacionamentos: Relacionamento 1:1 Um elemento de um conjunto de entidades se relaciona apenas com um elemento do outro conjunto.
1 HOMEM Homem 1 MULHER Mulher

Casa

21

Joo Ado Rui

r1 r2 r3

Maria Eva Ana

Relacionamento 1:N Ocorre quando uma ocorrncia de entidade se relaciona com vrias ocorrncias da outra entidade.
DEPTO Depto 1 N FUNCIONARIO Funcionrios

Possui

Vendas Contabili dade

r1 r2 r3 r4 r5

Maria Eva Ana Rui Ivo

Relacionamento N:N Nesse tipo de relacionamento, cada elemento de uma relao X, pode corresponder a vrios elementos de uma relao Y, e cada elemento da relao Y pode corresponder a vrios elementos da relao X. Em relacionamento N:N, o relacionamento pode ter ou no atributos. No exemplo abaixo o atributo do relacionamento curso poderia ser a nota do aluno.
ALUNO Aluno N N DISCIPLINA Disciplina

Cursa

Jos Maria Joo

r1 r2 r3 r4 r5 r6

Matemtica Estatstica Fsica

22

3.1.9) Como nomear os relacionamentos Substantivo Utilizar um substantivo que represente a forma como as entidades de associam.
N FUNCIONRIO
LOTAO

1 DEPARTAMENTO

Verbo Utilizar um verbo que indica uma ao em que uma das entidades o sujeito e a outra o objeto.
N FORNECEDOR
FORNECE

N PRODUTO DEPARTAMENTO

Nome das Entidades Utilizar os nomes das entidades envolvidas no relacionamento.

1 CLIENTE

CLIENTE PEDIDO

N PEDIDO

3.1.10) Grau de um Relacionamento O grau de um relacionamento determinado pelo nmero de entidades que participam do relacionamento. Quando ocorre um relacionamento que envolve associao entre trs ou mais entidades (portanto com grau maior que 2), dizemos haver um relacionamento mltiplo. Exemplo de relacionamento de grau trs:

23

PRODUTO N N DEPSITO
ENTREGA

N CLIENTE

3.1.11) Generalizao de Entidades Certos conjuntos de entidades de dados (supertipos) podem ser subdivididos em diversas categorias de elementos (subtipos), cada uma se caracterizando por atributos especficos. A este processo denominamos particionamento de conjunto de entidades.Como exemplo poderamos citar o caso em que a entidade Funcionrio pode ser subdividida numa categoria de Professores, em outra de Engenheiros e em outra de Tcnicos.
FUNCIONARIO

PROFESSOR

TECNICO

ENGENHEIRO

3.1.12) Agregao A agregao uma extenso do modelo proposto por Peter Chen de forma a permitir o registro do relacionamento de uma entidade com um relacionamento anteriormente criado.
N CORRENTISTA
POSSUI

N CONTA CORRENTE

PERTENCE

1 CARTAO MAGNETICO

24

3.1.13) Auto-relacionamento comum encontrarmos, durante o processo de modelagem, associaes de ocorrncias de entidades com outras ocorrncias do mesmo tipo, o que chamamos de auto-relacionamento. o caso, por exemplo, de peas que so compostas por partes de outras peas. Um auto-relacionamento, portanto, o relacionamento estabelecido entre uma entidade e ela mesma. Exemplo: chefia o relacionamento estabelecido entre a entidade funcionrio e ela prpria, uma vez que tanto o chefe quanto seus subordinados fazem parte do mesmo corpo funcional de uma empresa.
FUNCIONARIO 1 N

CHEFIA

3.1.14) Relacionamento Total e Parcial Podemos classificar os relacionamentos em totais ou parciais. Os relacionamentos totais (ou obrigatrios) so aqueles que participam todas as tuplas de uma entidade. Os relacionamentos parciais (ou opcionais) so aqueles em a participao de todas as tuplas da entidade no obrigatria. Parcial
1 AGNCIA
COBRA

N FATURA

Uma agncia pode ter muitas faturas em cobrana, ou pode no ter nenhuma. Uma fatura fica em cobrana em uma agncia, pode haver fatura no colocada em agncia. Parcial x Total
1 DEPARTAMENTO
POSSUI

N DIVISAO

25

Um determinado departamento pode ter muitas divises, e pode no ter nenhuma diviso. Uma diviso tem que estar sempre ligada a um s departamento. Total
1 CANDIDATO
PERTENCE

1 FICHA INSCRIO

Um candidato tem que ter uma, e s uma ficha de inscrio. Uma ficha de inscrio tem que pertencer a um, e s um, candidato. 3.1.15) Cardinalidade mnima e mxima A cardinalidade mnima mxima de um relacionamento tambm pode ser representada no diagrama. Exemplo: Um funcionrio de uma empresa pode possuir zero ou mais dependentes. Cada dependente est relacionado a uma, e somente uma pessoa.
1,1 FUNCIONARIO
POSSUI

0,N DEPENDENTE

No exemplo acima, a cardinalidade mnima do funcionrio em relao ao seus dependentes zero e a mxima N. A cardinalidade mnima do dependente em relao ao funcionrio um e a mxima tambm 1. 3.1.16) Exerccios (MER) 1) Faa o DER equivalente ao seguinte Modelo Descritivo: 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. 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

26

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 V18 Endereo Nome Produto Arroz Feijo Acar Feijo 20 150 180 200 Quantidade

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. 5) 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? 6) Que alteraes seriam necessrias fazer DER do exerccio anterior, considerando que os pais de um aluno tambm podem ser estudantes, sem que haja duplicidade de informaes no modelo? 7) 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?

27

Relao de entidades: Empregado, Contador, Empacotador, Vendedor, Cliente, Nota Fiscal, Detalhes de Notas Fiscais (Relao de Produtos) e Produto.

Contador

Empacotador
(1,1)

(1,1) (0,1)

(0,1)

Empregado
(0,1)

(1,1)

(0,N)

Vendedor
(0,N) (1,1) (0,N)

Cliente

Nota Fiscal
(1,N)

(1,1)

Produto

(0,N)

(1,1)

Detalhes de Nota Fiscal

8) 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 1 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 fornecedor um ou vrios Produtos Um Pedido de Compra pode ser atendido por 1 ou vrias Notas Fiscais Um Nota Fiscal deve se referir a um e somente um Pedido de Compra Um Nota Fiscal deve ser constituda de 1 ou mais Itens de Nota Fiscal Um Item de Nota Fiscal deve ser referir a uma nica Nota Fiscal Construir um diagrama de E x R e definir todos os seus atributos para o problema a seguir:

28

9) 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. Agente cria um curso e aloca 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. 10) Construir um DER e definir todos os seus atributos para o seguinte problema de VENDA DE PRODUTOS (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 seus clientes. Cada cliente identificado por um cdigo nico (tambm interno firma), o nome do cliente, endereo (rua, numero, 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 1 a vrios produtos, e para cada produto, indica-se a quantidade deste pedida. 11) Construir um DER e definir todos os seus atributos para o problema seguinte: Sou o proprietrio de uma pequena loja de vdeo. Temos mais de 3000 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, terro, etc). Muitos de nossos filmes tem mais de uma cpia. A cada filme, fornecemos um 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 o 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.

29

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. 12) 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 de Gois, a EMPRESA MODELO S/A, quer fazer o controle de sua frota de veculos. A frota constituda de vrios tipos, Caminhes, Camionetas, e carros pequenos, como Parati, Omega entre outros. De cada veculo a empresa precisa saber, qual o ano de fabricao e modelo, qual o fabricante, se Chevrolet, Volkswagem, 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 o 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, demonstrando a quantidade e o valor do abastecimento. Se o uso do veculo para uma viagem interurbana o motorista recebe um adiantamento para fazer face aos abastecimentos necessrios. Esse adiantamento feito em funo do consumo por quilometro 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. Outra questo importante, para a empresa, o controle de manuteno de cada veculo. Essas manutenes so feitas por auto-mecnicas previamente habilitadas. Um veculo enviado para manuteno a cada 5000 km rodados ou de seis em seis meses, o que ocorrer primeiro. Ento da manuteno precisa 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 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. Construir o Modelo de Dados para o problema proposto identificando todos os seus componentes. 13) Construir um DER e definir todos os seus atributos para o problema a seguir : Um ambiente de treinamento

30

Uma empresa que d treinamento na rea de informtica tem a seguinte programao de cursos. Em cada semestre so programados vrios cursos. DBA para o Banco de Dados Oracle, Visual Basic Bsico, Visual Basic Avanado e Delphi Bsico so alguns de seus cursos. 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/1999 a 30/03/1999 e a Segunda turma de 20/06/99 a 0/07/99. J o curso de Visual Basic Bsico foi programado para: a primeira turma no mesmo perodo da primeira turma do curso de DBA, e a Segunda turma para o perodo de 10/08/1999 a 30/08/1999. O nmero de alunos matriculados em cada turma no mximo 30, em razo do reduzido nmero de computadores para as aulas prticas. Para fazer a matrcula o aluno precisa apresentar: Cpf, nome completo, endereo, telefones de contado 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 da aula e da freqncia de cada aluno. A empresa tem o interesse em saber o dia da matrcula de cada aluno e em qual o 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 de contato, preo cobrado para o 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 se mestre e por ano. Considerar a hiptese do professor ser aluno de cursos que no seja de sua especialidade. 14) Construir um DER e definir todos os seus atributos para cada um dos problemas a seguir: O problema do transporte interurbano de pessoas O sistema de transporte interurbano, de pessoas, se ascenta no conceito de linhas de nibus. Uma linha de nibus definida pelo estado, atravs de seus gos 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. Pode existir linhas diferentes atendendo a um mesmo conjunto de cidades. Por exemplo, a linha de nibus n. 1 atende as cidades de Goinia, Nerpolis, Petrolina, Jaragu, Rialma, Ceres, Uruau e Porangatu, e explorada pelo Rpido Araguaia1. J a linha n.2 atende as mesmas cidades, s que em horrios diferentes, e explorada pela Expresso So Luz. 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 auxiliar. Por exemplo, nas linhas que servem o percurso de Goinia a So Paulo,
1

Li nha fictcia.

31

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 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, e 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 nibues. Uma passagem, relativa a uma viagem, deve indicar o nome do passageiro, seu nmero de identidade, a origem e 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 compes o trajeto da linha, embora um passageiro possa descer em qualquer ponto ao longo do percurso. No permitido, a no ser em caso de incidentes que impedem o trfego no trajedo da linha, desvio da rota definida. O nmero de passagens vendidas, no pode, execeder 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 um viagem 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 ela definida pelo percurso e pelo sentido do percurso. Ou seja, a linha de Goinia a So Paulo tem um nmero diferente da linha So Paulo a Goinia, embora possam Ter o mesmo trajeto e os mesmos pontos de paradas. 15) Construir um DER e definir todos os seus atributos para cada um dos problemas 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 entres cidades de estados diferentes. Ento quando uma pessoa quer transportar uma mercadoria para outra cidade, ela pode recorrer aos servios dessa empresa de transporte de cargas. 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 considerados 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

32

momento da contrao do frete. Por exemplo, o transporte de tecidos cobrado em funo do peso e o de 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 o frete peso, e frete valor. Uma caracterstica da cobrana de ICMS que cada estado tem sua poltica prpria. Gois 2 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, o que existir, e de 12% para mercadorias transportadas dentro do prprio estado. 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 mais: Para o remetente - se pessoa fsica: Nome, endereo, telefone e cpf. Se empresa nome, endereo e telefones do representante e Razo social, 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. 16) Construir um DER e definir todos os seus atributos para os problemas 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 propriedade3, 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 data de nascimento devem ser armazenados. Precisa saber quais os produtos que uma propriedade produz, perodo provvel de colheita, quantidade a colher prevista e a 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. Francisco 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 do estado de Gois, que de propriedade da empresa Produtora de Gros Ltda., cujos donos so Rodrigo
2 3

ndices fictcios Apenas os donos atuais do imvel

33

Machado e Ferreira Goulart. 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 deve 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.

34

3.2) Mapeamento MER/Modelo Relacional 3.2.1) Mapeamento de Entidades - Entidade Primria Modelo E/R ALUNO Nome Matrcula Modelo Relacional ALUNO(Matricula, Nome) * O atributo identificador da entidade primria deve ser sublinhado. Se a entidade possuir mais de 1 atributo identificador, estes devero ser sublinhados. - Entidade Primria com atributo composto Modelo E/R ALUNO Endereo Nome Matrcula Modelo Relacional ALUNO(Matricula, Nome, Rua, Quadra, Lote) - Entidade Primria com atributo multivalorado Modelo E/R Rua Quadra Lote

35

ALUNO Nome Matrcula Modelo Relacional

Endereco(0,N) Telefone(0,3)

ALUNO(Matricula, Nome, Telefone1, Telefone2, Telefone3) ALUNOENDERECO(Matricula, Endereo) 3.2.2) Entidade Fraca Modelo E/R EMPREGADO Nome Matrcula Modelo Relacional EMPREGADO(Matricula, Nome) DEPENDENTE(Matrcula, Cdigo, Data Nascimento) * O atributo Matrcula na entidade DEPENDENTE chamado de chave estrangeira. * A chave primria da entidade DEPENDENTE a o conjunto de atributos Matrcula e Cdigo. 3.2.3) Entidade Associativa Modelo E/R
ALUNO DISCIPLINA

TEM

DEPENDENTE

Cdigo Data Nascimento

APROVEITAMENTO

Modelo Relacional ALUNO(Matricula, Nome) 36

DISCIPLINA(Cdigo, Nome) APROVEITAMENTO(Matricula, Cdigo, Nota, Freqncia) 3.2.4) Relacionamento tipo 1:1 Modelo E/R
0,1 0,1

HOMEM

MULHER

Modelo Relacional HOMEM(Cod_H, Nome) MULHER(Cod_M, Nome, Cod_H) Ou HOMEM(Cod_H, Nome, Cod_M) MULHER(Cod_M, Nome) 3.2.5) Relacionamento tipo 1:N Modelo E/R
DEPTO 1,1 0,N FUNCIONARIO

Modelo Relacional DEPTO(Cod_Depto, Nome) MULHER(Cod_Func, Nome_Func, Codg_Depto) 3.2.6) Relacionamento tipo N:N Modelo E/R
ALUNO 1,N 1,N DISCIPLINA

Modelo Relacional ALUNO(Matricula, Nome) DISCIPLINA(Cdigo, Nome) ALUNODISCIPLINA(Matricula, Cdigo, Nota, Freqncia) * O atributo identificador da entidade ALUNODISCIPLINA formado pelos atributos identificadores das entidades envolvidas na relao.

37

3.2.7) Relacionamento mltiplo Modelo E/R

PRODUTO 0,N 0,N DEPSITO


ENTREGA

0,N CLIENTE

Modelo Relacional DEPOSITO(Codg_Dep, Nome) PRODUTO(Codg_Prod, Nome) CLIENTE(Codg_Cli, Nome) ENTREGA(Codg_Dep, Codg_Prod, Codg_Cli, Quantidade, Valor) 3.2.8) Generalizao de Entidades Modelo E/R
FUNCIONARIO

PROFESSOR

TECNICO

ENGENHEIRO

Modelo Relacional FUNCIONARIO(Codg_Func, Nome, Tipo) PROFESSOR(Codg_Func, Titulao) TECNICO(Codg_Func, Grau_de_Instruo) ENGENHEIRO(Codg_Func, Especializao) Ou, FUNCIONARIO(Codg_Func, Nome, Tipo, Titulao, Grau_de_Instruo, Especializao) * Nome segundo modelo algumas tuplas podero ter os atributos Titulao, Grau de Instruo e Especializao com valores nulos. 38

3.2.9) Agregao Modelo E/R


0,N CORRENTISTA
POSSUI

0,N CONTA CORRENTE

1,1

PERTENCE

0,1 CARTAO MAGNETICO

Modelo Relacional CORRENTISTA(Codg_Cor, Nome) CONTACORRENTE(Codg_CCR, Tipo) CORRENTISTACCR(Codg_Cor, Codg_CCR, Nmero, Saldo) CARTAOMAGNETICO(Codg_CM, Nmero) CORRENTISTACCRCM(Codg_Cor, Codg_CCR, CodgCM, Validade) 3.2.10) Auto-relacionamento Modelo E/R

FUNCIONARIO 1 N

CHEFIA

Modelo Relacional FUNCIONARIO(Codg_Func, Nome) CHEFIA(Codg_Func, Codg_FuncChefe) * Na relao CHEFIA, os atributos Codg_Func e Codg_FuncChefe so chaves estrangeiras da relao funcionrio. O conjunto dos dois atributos compe o atributo identificador da relao.

39

Ou, FUNCIONARIO(Codg_Func, Nome, Codg_FuncChefe) * Neste caso o atributo Codg_FuncChefe poder permitir valores nulos para os casos em que um funcionrio no possuir chefe.

3.2.11) Algoritmo de Mapeamento ER/Relacional Passo 1 Para cada tipo de entidade forte E no esquema ER, crie uma relao R inclua todos os atributos simples de E. Inclua somente os atributos componentes simples de cada atributo composto. Escolha uma dos atributos chave 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. 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

40

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. Passo 8 Converta cada especializao com m subclasses {S1,S2,...,Sm} e superclasse C, onde os atributos de C so {k,a1,...,an} e k a chave primria, em esquemas de relao usando uma das quatro seguintes opes: Opo 8.1 Crie uma relao L para C com atributos Atrs(L) = {k,a1,...,an} e PK(L) = k. Crie uma relao Li para cada subclasse Si, 1 i m, com os atributos Atrs(Li) = {k} {atributos de Si} e PK(Li) = k. Opo 8.2 Crie uma relao Li para cada subclasse Si, 1 i m, com atributos Atrs(Li) = {atributos de Si} {k,a1,...,an} e PK(Li) = k. Opo 8.3 Crie uma nica relao L com atributos Atrs(L) = {k,a1,...,an} {atributos de S1} ... {atributos de Sm} {t} e PK(L) = k. Esta opo para especializaes cujas subclasses so disjuntas, e t um atributo que indica a subclasse qual cada tupla pertence, se for o caso. Esta opo pode gerar um grande nmero de valores nulos. Opo 8.4 Crie uma nica relao L com atributos Atrs(L) = {k,a1,...,an} {atributos de S1} ... {atributos de Sm} {t1,t2,...,tm} e PK(L) = k. Esta opo para especializaes cujas subclasses so sobrepostas, e cada ti, 1 i m, um atributo booleano que indica se a tupla pertence subclasse Si. 3.2.12) Exemplo

41

No exemplo acima, temos o seguinte Modelo Relacional: CONSTRUTORA(Numr_Const, Nome_Const); DEPARTAMENTO(Numr_Const, Codg_Depto, Nome_Dpto, Qtdade_Func); PROJETO(Numr_Depto, Codg_Proj, Nome_Proj, Data_Inicio, Data_Fim);

42

MATERIAL(Codg_Mat, Nome_Mat); PROJETO_MATERIAL(Codg_Proj, Codg_Mat, Quantidade); FORNECEDOR(Codg_Forn, Nome_Forn, Logradouro, Cidade, UF); FORNECEDOR_MATERIAL(Codg_Forn, Codg_Mat, Quantidade, Data, Valor); FUNCIONARIO(Codg_Func, Nome, Data_Nascimento); LIDER(Codg_Func, Gratificao); FUNCIONARIOLIDER(Codg_Func, Codg_Projeto); FUNCIONARIOPARTICIPA(Codg_Func, Codg_Proj, Funo, Data_Inicio, Data_Fim); HABILIDADE(Codg_Func, Descrio); 3.3) Dicionrio de Dados Este dicionrio de dados tem como objetivo descrever as entidades e os relacionamentos identificados no DER/Modelo Relacional. A seguir, apresentada uma notao utilizada na taxonomia dos atributos das entidades identificadas. Tal notao ser utilizada em todo restante deste curso para descrever os atributos. Posteriormente, as entidades so apresentadas, juntamente com seus respectivos atributos e, em seguida, so listados os relacionamentos entre estas entidades. Notao utilizada para taxonomia dos atributos. Entidade <Nome da Entidade>: <Descrio da Entidade> Nome Descrio Tipo MV CP DV Observaes

Nome: Nome do atributo. Obs.: O Atributo identificador deve ser Sublinhado e em negrito. A Cardinalidade de Atributo [<Nome do atributo> (cardinalidade mnima, cardinalidade mxima)] tambm deve ser representada. Quando no for descrita, o valor assumido ser (1,1), ou seja, o atributo obrigatrio e monovalorado. Ex.: Telefone(0,2). A entidade que possuir este atributo possui no mnimo 0 e no mximo 2 telefones. Sendo que o telefone no obrigatrio. Descrio: descrio do valor do atributo Tipos dos atributos: -T(n): Texto com n caracteres - I(n): Nmero inteiro com n algarismos - N(n,d): Nmero decimal com n algarismos no total, sendo d decimais - S/N: Lgico (Sim, No) - D: Data - M: Campo texto longo

43

MV: Atributo multivalorado? Seus valores devem ser colocados na coluna observao; CP: Atributo composto? A composio do atributo deve ser colocada na coluna observao; DV: Atributo derivado? A derivao do atributo deve ser colocada na coluna observao; Observaes: Toda e qualquer observao a respeito dos atributos. Ex.: Criar um dicionrio de dados a partir do modelo descritivo abaixo: 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 seus clientes. Cada cliente identificado por um cdigo nico (tambm interno firma), o nome do cliente, endereo (rua, numero, 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 1 a vrios produtos, e para cada produto, indica-se a quantidade deste pedida e o valor total desta quantidade. 1 Passo Criao do DER

44

2 Passo mapeamento para o modelo relacional CLIENTE(Cdigo, Nome, Classificao, Limite de Crdito, Rua, Nmero, Sala, Cidade, UF, CEP, Telefone) PRODUTO(Cdigo, Nome, Tipo, Preo) PEDIDOCLIENTE(CdigoCliente, Nmero, Data) PEDIDOPRODUTO(CdigoCliente, NmeroPedidoCliente, NumeroProduto,Quantidade, Valor_Total) 3 Passo Criao do Dicionrio de Dados a) Descrio das entidades Entidade CLIENTE: Representa todos os clientes da firma.

45

Nome Cdigo

Descrio
Cdigo do cliente para controle interno da firma. Nome completo do cliente. Tipo do cliente

Tipo I(4)

MV CP DV Observaes N N N Quando um novo


cliente cadastrado na firma ele recebe uma nova numerao.

Nome Classificao

T(50) I(1)

N N

N N

N N
0 Bom, 1 Mdio, 2 Ruim. S pode receber os valores 0, 1 e 2. Calculado de acordo com a classificao: Ruim <= R$ 500,00 Mdio <= R$ 1000,00 Bom Qualquer valor.

Limite de Crdito Limite de crdito


do cliente.

N(8,2)

Endereo Rua Nmero(0,1) Sala (0,1) Cidade UF CEP(0,1) Telefone(0,2)

Endereo completo do Cliente Rua em que o cliente reside Nmero na rua em que o cliente reside Cidade em que o cliente reside UF em que o cliente reside CEP do endereo do cliente Telefone(s) do Cliente

S T(50) I(5) I(5) T(50) T(2) T(10) T(17) N N N N N N N

N N N N N N N N

N N N N N N N N
Formato 99.999-999 Formato (0xxxx) 9999-9999.

Entidade PRODUTO: Representa todos os produtos que a firma comercializa. Nome Cdigo Descrio
Cdigo do produto para controle interno da firma. Nome completo do produto. Tipo do produto

Tipo I(4)

MV CP DV Observaes N N N Quando um novo


produto cadastrado na firma ele recebe uma nova numerao.

Nome Tipo

T(50) I(1)

N N

N N

N N
0 Sabo em p, 1 Detergente, 2 Sabonete. S pode receber os valores 0, 1 e 2. O valor do produto definido pela tabela de preos da firma no momento do seu cadastro.

Preo

Valor do produto

N(8,2)

Entidade PEDIDOCLIENTE: Representa todos os pedidos efetuados pelo cliente.

46

Nome Nmero

Descrio
Nmero do pedido para controle interno da firma. Data do Pedido

Tipo I(4)

MV CP DV Observaes N N N Quando um novo


pedido cadastrado na firma ele recebe uma nova numerao. Formato dd/mm/yyyy

Data

Entidade PEDIDOPRODUTO: Representa todos os produtos existentes em um pedido. Nome Quantidade Valor_Total Descrio
Quantidade do produto dentro do pedido. Valor do produto de acordo com a quantidade

Tipo I(5) N(8,2)

MV CP DV Observaes N N N N N S
Quantidade * Valor do Produto.

b) Descrio dos relacionamentos FAZ: Representa o fato de um cliente fazer 0 ou vrios pedidos e um pedido ser feito por 1 e somente 1 cliente.

POSSUI: Representa o fato de um Pedido, que possui um cliente relacionado possuir 1 ou vrios produtos e um produto fazer parte de 0 ou vrios Pedidos.

47

4) Normalizao
A teoria da normalizao foi escrita por E.F. Codd em 1970 e consistia em 3 formas normais, ou 3 etapas de normalizao onde, em cada etapa, uma relao passa a satisfazer um conjunto de restries estabelecidas. Posteriormente, a teoria foi estendida pelo autor at a quinta forma normal. Objetivos da normalizao: Minimizao de redundncias e inconsistncias; Facilidade de manipulao do banco de dados (alterao e recuperao dos dados); Facilidade de manuteno dos Sistemas de Informao.

Resultados esperados com a normalizao Lista de relaes necessrias e seus atributos; Relaes estveis capazes de suportar mudanas.

Exemplo de normalizao Para podermos aqui estudar a tcnica de normalizao, tomaremos como exemplo uma estrutura de dados correspondente a um pedido de compra de um cliente para um fornecedor. Temos ento como estrutura do pedido: PEDIDO
N DO PEDIDO: DATA DO PEDIDO: DATA DA ENTREGA:

CGC DO CLIENTE:

NOME DO CLIENTE:

ENDEREO DO CLIENTE

CD. DO ITEM

NOME DO ITEM

QUANTIDADE

PREO UNITRIO

PREO TOTAL

TOTAL DO PEDIDO:

Notao da relao pedido no normalizada:

48

PEDIDO(Numero, Data, Data_Entrega, CGC_Cliente, Nome_Cliente, Endereo_Cliente, Cdigo_Item, Nome_Item, Quantidade, Preo_Unitrio, Preo_Total, Total_Pedido). Instncias da relao pedido no normalizada: PEDIDO 11/10 15/10 11/10 15/10 11/10 15/10 11/10 15/10

1 1 1 1

111 111 111 111

Cli 1 Cli 1 Cli 1 Cli 1

E1 E1 E1 E1

1 2 3 4

Item 1 Item 2 Item 3 Item 4

10 5 6 8

50,00 10,00 5,00 10,00

500,00 50,00 30,00 80,00

660,00 660,00 660,00 660,00

4.1) 1 FORMA NORMAL Uma relao est na primeira forma normal se no contiver grupos de repetio. Soluo: devemos desmembrar a relao em uma ou mais relaes sem grupos de repetio; Passos: 1 Determinar a chave da relao original e a chave de cada grupo de repetio; 2 Retirar da relao original os grupos de repetio; 3 Criar nova relao com a chave da relao original e demais atributos do grupo de repetio; 4 Repetir o passo 3 para cada grupo de repetio. Notao da relao pedido na primeira forma normal: PEDIDO(Numero, Data, Data_Entrega, CGC_Cliente, Nome_Cliente, Endereo_Cliente, Total_Pedido). ITENSDOPEDIDO(Numero do Pedido, Cdigo_Item, Nome_Item, Quantidade, Preo_Unitrio, Preo_Total). Instncias da relao pedido na primeira forma normal: PEDIDO 11/10 15/10 111 Cli 1 ITENSDOPEDIDO 1 Item 1 10 50,00 2 Item 2 5 10,00 3 Item 3 6 5,00 4 Item 4 8 10,00

E1

660,00

1 1 1 1

500,00 50,00 30,00 80,00

4.2) 2 FORMA NORMAL Uma relao est na segunda forma normal se estiver na primeira forma normal e se todos os atributos no chaves so dependentes de toda chave e no apenas parte da chave. 49

Soluo: desmembrar a relao de modo que no haja atributo no chave dependente de apenas parte da chave; Passos: 1 Retirar da relao original o atributo que dependa de parte da chave; 2 Criar nova relao com a chave da relao original da qual o(s) atributo(s) depende(m) e o(s) atributo(s) que depende(m) dessa chave. Notao da relao pedido na segunda forma normal: PEDIDO(Numero, Data, Data_Entrega, CGC_Cliente, Nome_Cliente, Endereo_Cliente, Total_Pedido). ITENSDOPEDIDO(Numero do Pedido, Cdigo_Item, Quantidade, Preo_Total). ITEM(Cdigo_Item, Nome_Item, Preo_Unitrio). Instncias da relao pedido na primeira forma normal: PEDIDO 11/10 15/10 111 Cli 1 ITENSDOPEDIDO 1 10 500,00 2 5 50,00 3 6 30,00 4 8 80,00 ITEM Item 1 Item 2 Item 3 Item 4

E1

660,00

1 1 1 1

1 2 3 4

50,00 10,00 5,00 10,00

4.3) 3 FORMA NORMAL Uma relao est na terceira forma normal se estiver na segunda forma normal e se todos os atributos no chave forem independentes entre si. Soluo: desmembrar a relao de modo que os atributos no chave sejam dependentes exclusivamente da chave. Passos: 1 Retirar da relao original os atributos que dependam de outro atributo no chave; 2 Criar uma nova relao para cada atributo que possui outro(s) atributo(s) dependente(s) dele.

50

Notao da relao pedido na terceira forma normal: PEDIDO(Numero, Data, Data_Entrega, CGC_Cliente, Total_Pedido). CLIENTE (CGC_Cliente, Nome_Cliente, Endereo_Cliente). ITENSDOPEDIDO(Numero do Pedido, Cdigo_Item, Quantidade, Preo_Total). ITEM(Cdigo_Item, Nome_Item, Preo_Unitrio). Instncias da relao pedido na primeira forma normal: PEDIDO 11/10 15/10 111

660,00

CLIENTE 111 Cli 1 E1 ITENSDOPEDIDO 1 10 500,00 2 5 50,00 3 6 30,00 4 8 80,00 ITEM Item 1 Item 2 Item 3 Item 4

1 1 1 1

1 2 3 4

50,00 10,00 5,00 10,00

51

5) Referncias Bibliogrficas
[CHATZ1999] Sistema de Banco de Dados. A. Silberchatz, H. Korth, S. Sudarshan. Makron Books, 3 edio, 1999. Projeto de Banco de Dados. C. A. Heuser. Editora Sagra Luzzato, 3 edio, 1999. Apostila de Banco de Dados 1. A. L. Alvez. UCG, 2003.

[HEUSER2001]

[ALVES2003]

[OLIVEIRA2001] Introduo a Banco de Dados Notas de Aula. J. L. Oliveira. UFG, 2002.

52

Você também pode gostar