Apostila Banco Dados

download Apostila Banco Dados

of 148

Transcript of Apostila Banco Dados

UNIVERSIDADE DO OESTE DE SANTA CATARINA UNOESC CAMPUS DE SO MIGUEL DO OESTE

APOSTILA DE BANCO DE DADOSAutoria: Prof. Esp. Roberson Junior Fernandes Alves Home-page: http://www.unoescsmo.edu.br/~roberson

So Miguel do Oeste(SC), 2010. 1

SUMRIO1.INTRODUO.................................................................................................................................3 2.SISTEMAS BASEADOS EM ARQUIVOS.....................................................................................3 3.BANCO DE DADOS........................................................................................................................5 3.1.SISTEMA GERENCIADOR DE BANCO DE DADOS(SGBD).............................................7 3.2.MODELOS LGICOS DE BANCO DE DADOS.................................................................11 3.3.GERENCIAMENTO DE TRANSAES..............................................................................13 3.4.VISO GERAL DA ESTRUTURA DO SISTEMA DE BANCO DE DADOS.....................14 4.CONCEPO DE SISTEMAS DE INFORMAO....................................................................15 4.1.MODELAGEM DE DADOS E INFORMAO...................................................................17 4.2.METODOLOGIA DE MODELAGEM...................................................................................18 4.3.MODELO RELACIONAL......................................................................................................27 4.4.SGBD RELACIONAL............................................................................................................33 4.5.TRANSFORMAO DO MODELO CONCEITUAL EM MODELO RELACIONAL.......34 4.6.NORMALIZAO.................................................................................................................40 4.7.FORMAS NORMAIS..............................................................................................................43 5.CLCULO RELACIONAL............................................................................................................46 6.LGEBRA RELACIONAL............................................................................................................46 6.1.OPERAO DE PROJEO(UNRIA)..............................................................................51 6.2.OPERAO DE SELEO(UNRIA)................................................................................53 6.3.PRODUTO CARTESIANO(BINRIA).................................................................................57 6.4.OPERAO DE RENOMEAR..............................................................................................60 6.5.OPERAO DE UNIO(BINRIA)....................................................................................61 6.6.OPERAO DE INTERSEO(BINRIA)........................................................................64 6.7.OPERAO DE DIFERENA(BINRIA)...........................................................................65 6.8.OPERAO DE JUNO(BINRIA).................................................................................67 6.9.OPERAO DE DIVISO(BINRIA).................................................................................69 7. SQL STRUCTURED QUERY LANGUAGE.............................................................................71 7.1.DML (Data Manipulation Language/Linguagem de Manipulao de Dados)........................75 7.2.DDL (Data Definition Language/Linguagem de Definio de Dados)...................................90 7.3.DCL (Data Control Language/Linguagem de Controle de Dados).........................................98 7.4.TML (Transaction Manipulation Language/Linguagem de Manipulao de Transaes)....102 8.BACKUP E RESTORE.................................................................................................................104 9.ESTUDOS DE CASO PARA MODELAGEM.............................................................................106 10.LISTA DE EXERCCIOS TEORIA RELACIONAL...............................................................129 11.LISTA DE EXERCCIOS LGEBRA RELACIONAL..........................................................132 12.LISTA DE EXERCCIOS - SQL.................................................................................................136 13.REFERNCIAS..........................................................................................................................143

2

1.INTRODUONa dcada de 90 as organizaes do-se conta que a Informao um recurso organizacional. No entanto, o valor da informao depende de sua correo e disponibilidade, apenas possvel com uma gesto adequada. Conforme Toffler e Toffler(1994, p. 51) o valor real de companhias como a Compaq ou a Kodak, a Hitachi ou a Siemens, depende mais das ideias, percepes e informaes contidas nas cabeas de seus empregados, e nos banco de dados e patentes que estas companhias controlam, do que nos caminhes, linhas de montagem ou outros ativos fsicos. [...] o prprio capital est cada vez mais baseado em intangveis. As tecnologias de banco de dados so uma ferramenta essencial gesto eficaz do recurso chamado INFORMAO. Dados versus Informao: entendendo as diferenas.

Dados representam fatos do mundo real. Valor de um campo armazenado, Exemplo: nome, endereo, telefone, e-mail.

matria-prima para obteno de informao;

A Informao resulta do processamento dos dados, apresentados de forma a Exemplo: um contato de uma pessoa em uma agenda.

permitir interpretao e a fundamentar decises;

2.SISTEMAS BASEADOS EM ARQUIVOSOs primeiros modelos de sistemas, predecessores dos bancos de dados, trabalhavam sobre uma estrutura baseada em arquivos. Em sistemas baseados em arquivos existem vrios programas acessando vrios arquivos de dados diferentes. Cada programa responsvel por alguma tarefa especfica destinada ao usurio final, alm disso cada programa define e gerencia seus prprios dados(CONNOLLY; BEGG, 2005). Nesta estrutura no havia um software que gerenciava de forma centralizada o acesso e o tratamento dos dados, por isso estas implementaes era feitas em cada programa separadamente a critrio do programador. Alguns dos principais conceitos relacionados a ambientes baseados em arquivos so apresentados no quadro 1: Conceito Arquivo Registro Campo Arquivo de dados O mesmo que linha ou tupla O mesmo que coluna ou atributo Descrio

Quadro 1 Conceitos do ambiente baseado em arquivos.

3

Fonte: Adaptado de Connolly e Begg(2005).

Um arquivo nesta estrutura uma composio de registros que armazenam dados. Cada registro possui um conjunto de campos, conectados logicamente. A figura 1, a seguir, representa de forma geral o funcionamento de sistemas baseados em arquivos: USURIOS PROGRAMAS ARQUIVOS Registro Programa 1 A D Programa 2Sort

B F H E B

C G

D H

E

E D

Campo

G H

H J

K

Programa 3 AFigura 1 Funcionamento de um sistema baseado em arquivos.

Os problemas mais srios apresentados pelos sistemas baseados em arquivos eram:

Redundncia e inconsistncia de dados: Redundncia a caracterstica onde

um elemento de informao aparece duplicado em diversos lugares. Por exemplo, um cliente de uma empresa pode estar cadastrado tanto na base de dados do departamento de crdito assim como no departamento de contabilidade. Esta redundncia pode causar a inconsistncia, visto que as informaes podem ser diferentes para o mesmo cliente;

Dificuldade no acesso aos dados: Suponha que um diretor necessite encontrar

os clientes que residem em uma rea da cidade onde o CEP seja 12133-433. Se este mdulo do sistema de informao no estiver implementado, o diretor ter duas opes: ele pega a lista de clientes e extrai a informao necessria, ou pede para o departamento de informtica implementar a rotina necessria para obteno do relatrio;

Isolamento de dados: Uma vez que os dados esto espalhados em diversos

arquivos e podem ter formatos diferentes, difcil escrever novos programas/aplicativos para recuperar os dados adequados;

Anomalia de acesso concorrente: Evitar problemas relacionados a acessos

concorrentes em um determinado dado. Por exemplo, se duas pessoas sacarem dinheiro

4

de uma conta ao mesmo tempo, o resultado das operaes concorrentes podem deixar um saldo inconsistente. Considere uma conta com a quantia de R$ 400 e dois saques simultneo de R$ 100 e R$ 50. Se houver problema de acesso concorrente, a conta pode ficar com valores de R$ 300 ou de R$ 350 ao invs de R$ 250;

Segurana: Cada usurio do sistema poder ter acesso aos dados relativos a Problemas de Integridade: Os valores armazenados devem satisfazer certos

sua funo. Por exemplo, um caixa no pode ver dados pertencentes a diretoria;

tipos de restries de consistncia. Por exemplo, um filho de um funcionrio no pode ser cadastrado sem que o pai trabalhe na empresa. Como evoluo e para resolver a maior parte destes problemas surgem os bancos de dados.

3.BANCO DE DADOSOs bancos de dados j so parte essencial da sociedade moderna. Em algum momento em nossas atividades dirias nos deparamos com situaes que necessitam de alguma interao com um banco de dados. Como exemplos pode-se citar: quando realizamos o emprstimo de um livro na biblioteca, quando realizamos uma reserva em um hotel, transaes bancrias como saques ou depsitos ou mesmo realizar uma compra em uma loja. Estes so alguns exemplos de aplicaes que podem ser consideradas tradicionais, onde a maior parte das informaes se apresenta, ou em forma de nmeros ou em forma textual. Com a constante evoluo tecnolgica novas e interessantes reas de aplicao tem surgido para banco de dados, como: no armazenamento de imagens, vdeos, sons; informaes geogrficas como mapas ou imagens de satlite; entre outras. Buscando definir o conceito de banco de dados, dentre as diversas existentes, pode se dizer que um conjunto integrado de dados e/ou elementos de informao que sero compartilhados, e utilizados concorrentemente por mltiplos usurios e/ou programas, para mltiplos objetivos, e com diferentes perspectivas. Outra definio interessante, conforme Connolly e Begg(2005), coleo de dados logicamente relacionados com sua respectiva descrio, desenhados para atender as necessidades da organizao. Uma das grandes novidades trazida pela tecnologia de Banco de Dados o que chamamos de: Data Independence ou Independncia entre Dados e Programas. Para entender melhor vamos conhecer alguns conceitos importantes: a) Independncia Fsica: Do ponto de vista fsico, os programas so independentes da estrutura fsica da informao, ou seja, a estrutura de armazenamento da informao. Alteraes na estrutura fsica dos dados (armazenamento) no implicam

5

alteraes nos programas. b) Independncia Lgica: Do ponto de vista lgico, os programas so independentes da estrutura lgica da informao, ou seja, a forma como a informao est organizada. Alteraes na estrutura lgica da base de dados(incluso de novos atributos, novas estruturas) no implicam necessariamente em alteraes nos programas. c) Integridade: Os programas so independentes das regras de integridade(coerncia) em vigor no banco de dados. Alteraes nessas regras de integridade no devem ter implicaes nos programas que utilizam a informao. d) Distribuio: Os programas so independentes da localizao geogrfica da informao. Alteraes na localizao geogrfica da informao e na sua estrutura de distribuio no devem implicar em alteraes nos programas. Algumas grandes vantagens trazidas pelos bancos de dados so:

Diminuio de redundncia: aumentada a integridade da informao e Compartilhamento de dados: a ideia centralizar a informao e permitir o Flexibilidade na modificao e manuteno: possui recursos especficos para Linguagem de interrogao: introduz o conceito de linguagem de interrogao Controle centralizado dos dados: normas, regras de integridade, polticas de

reduzido o espao ocupado;

compartilhamento das informaes de forma fcil e transparente;

manuteno da estrutura interna do banco de dados;

que permite de forma simples a recuperao e manipulao das informaes;

segurana e mtodos de recuperao residem em um mesmo local. Algumas operaes bsicas possveis de serem realizadas em um banco de dados:

Adicionar novos arquivos; Buscar dados; Inserir dados nos arquivos existentes; Alterar dados em arquivos existentes; Eliminar dados em arquivos existentes; Remover arquivos existentes.

No entanto, algumas contrapartidas tambm foram provenientes do surgimento dos bancos de dados:

Criao de pontos de conflito que surgiram atravs do compartilhamento dos Necessidade de especializao tecnolgica e profissional; Criao de motivos para conflito organizacional.

dados;

6

Os bancos de dados podem atuar em diferentes nveis. A seguir(figura 2) so apresentados alguns tipos de banco de dados e os nveis de atuao em que podemos encontrlos: CONHECIMENTO EIS Executive Information SystemQue fatores influenciam vendas em Paris? Quais as tendncias significativas? Banco de Dados Estratgico

DSS Decision Support System

INFORMAOBanco de Dados de Apoio a Deciso Vendas mensais por produto em Paris? Quais so as tendncias?

DADOS OLTP On Line Transaction ProcessingBanco de Dados Operacionais Qual o preo do produto X?

Figura 2 Tipos de banco de dados e nveis de atuao. Fonte: Adaptado de Yourdon(1990).

Um dos maiores benefcios dos bancos de dados: promover uma viso abstrata dos dados, ou seja, ocultando detalhes dos mecanismos de armazenamento e manuteno dos dados. Trs nveis de abstrao principais podem ser percebidos:

Nvel de viso externo: Mais alto nvel de abstrao. Viso de cada usurio. Nvel lgico(conceitual): Nvel mdio de abstrao. Viso da comunidade de

Descreve apenas parte do banco de dados que um dado grupo de usurios tem interesse.

usurios. Quais dados esto armazenados no banco de dados, e quais os interrelacionamentos entre eles.

Nvel fsico: Mais baixo nvel de abstrao. Como os dados esto de fato

armazenados no SGBD. Para gerenciar os diversos servios de um banco de dados surgiram os Sistemas Gerenciadores de Banco de Dados(SGBDs).

3.1.SISTEMA GERENCIADOR DE BANCO DE DADOS(SGBD)Sistema de gerenciamento do banco de dados ou SGBD, tambm conhecido como DBMS(DataBase Management System). O SGBD o produto de software responsvel pelo

7

gerenciamento do banco de dados. Seus principais componentes so(figura 3): equipes de desenvolvimento, administradores de dados(DAs), administradores de banco de dados(DBAs), usurios, ferramentas case, interfaces para interao com o usurio, aplicaes, dicionrio, catlogo e o base de dados em si. Entendendo melhor os componentes de um SGBD:

Catlogo: contm a definio do banco de dados, descrita em forma de um

meta-modelo de dados(especfico para cada SGBD), utilizando o mesmo modelo lgico que o usado para a concepo da base de dados. Exemplo: Em um SGBD relacional, o catlogo contm as definies das tabelas, vises, regras de integridades, etc. O catlogo por vezes designado como Dicionrio de Dados.

Interface de interao com o usurio: define o modo de interao com a

informao contida em um banco de dados. Tal como em um ambiente baseado em arquivos, atravs de programas escritos especificamente para o efeito. Mas agrega ainda: Linguagens de pesquisa(Query languages) e outras interfaces para administrao do banco de dados.

Administrao de Dados: a funo responsvel pela gesto global dos

recursos informacionais de uma organizao, incluindo a definio e manuteno de conceitos e normas relativas ao(s) modelo(s) de dados/informao da organizao.

Administrao de Banco de Dados: a funo tcnica responsvel pelo

desenho lgico (em colaborao com as equipes de desenvolvimento) e fsico do banco de dados. So ainda da sua responsabilidade a implementao de mecanismos de controle de segurana e de recuperao da base de dados, alm da monitoramento do desempenho.

Ferramentas Case(Computer Aided Software Engineering): uma aproximao As ferramentas case oferecem:

disciplinada e estruturada ao desenvolvimento de sistemas apoiadas por computador.

Maior produtividade Melhor qualidade Reverse engineering engenharia reversa Melhor planejamento e controle A criao de um ambiente de desenvolvimento Em todas as fases de desenvolvimento de Sistemas de Informao Upper case: usadas nas fases de anlise e desenvolvimento. Lower case: usadas nas fases de concepo (desenho) e construo.

podemos recorrer a ferramentas CASE.

8

Dados os requisitos de compatibilidade entre as ferramentas usadas nas vrias fases, necessria integrao: I-CASE - Integrated Case. Existem vrias formas de integrao, entre elas:

Ferramentas de um nico fornecedor, cada uma suportando uma Ferramentas heterogneas que se comunicam atravs de interfaces e Ferramentas heterogneas que partilham um repositrio comum

atividade;

bridges;

contendo todas as definies, modelos, diagramas, etc; Funcionalidades importantes de um ambiente case integrado:

O cdigo gerado automaticamente(free-bug); Parte do desenho pode ser gerada; A consistncia dos modelos assegurada; Existe consistncia entre o trabalho de cada elemento da equipe; A documentao gerada automaticamente; A manuteno feita por re-gerao.

No quadro a seguir so apresentadas algumas ferramentas CASE encontradas no mercado hoje: Ferramenta Oracle Designer DbDesigner Fork System Architect Microsoft Visio Finalidade Modelagem de banco de dados Modelagem de banco de dados Modelagem de banco de dados Modelagem de diversos tipos de diagramas incluindo modelagem de banco de dados e UML Modelagem de banco de dados Ferramenta completa para anlise, modelagem, design e construo de aplicaes Modelagem UML Modelagem UML Licena Shareware Free Shareware Shareware Link http://www.oracle.com http://sourceforge.net/p rojects/dbdesigner-fork/ http://www.popkin.com/ http://www.microsoft.co m/

Design for Databases IBM Rational

Shareware Shareware

http://www.datanamic.c om/dezign/index.html http://www01.ibm.com/software/br /rational/

Poseidon Jude Community

Shareware Free

http://www.gentleware. com/ http://jude.changevision.com/judeweb/index.html

9

StarUML ArgoUML Mogwai ER Designer

Modelagem UML Modelagem UML Modelagem de banco de dados

Free Free - Open Source Open Source

http://staruml.sourcefor ge.net/ http://www.tigris.org/ http://mogwai.sourcefor ge.net/? Welcome:ERDesigner_ NG http://www.gnome.org/ projects/dia/

Dia

Similar ao Microsoft Visio. Permite desenhar diagramas incluindo modelagem de banco de dados Data Modelagem de banco de dados

Free - Contributions suggested

ER/Studio Architect

Shareware

http://www.embarcader o.com/products/erstudio-data-architect

Dicionrio: base de dados que contm os modelos desenvolvidos usando a ferramenta CASE. Constitui a base para a integrao dos modelos construdos durante o ciclo de desenvolvimento de um projeto, sendo a fonte de informao que serve de input operao de definio da base de dados e do cdigo das aplicaes.

A figura 3, a seguir, ilustra os componentes de um SGBD e a interao entre eles. Equipes de Desenvolvimento Administradores de Dados - DAs Administradores de Banco de Dados DBAs

Usurios

FERRAMENTAS CASE

USER INTERFACE

APLICAES

DICIONRIO

CATLOGO

SGBD

BASE DE DADOS

Figura 3 Componentes de um banco de dados.

10

Os SGDBS devem apresentar algumas caractersticas fundamentais, dentre elas:

Basear-se em um modelo lgico de dados(rede, hierrquico, relacional, Gerenciar:

orientados a objetos);

Integridade:

prover

mecanismos

para garantir

a integridade

e o

armazenamento dos dados;

Transaes: permitir um controle eficaz de transaes a fim de evitar a Concorrncia: o SGBD j surgiu com a ideia de poder ser acessado por

entrada de dados inconsistentes;

mltiplos usurios simultaneamente, portanto, cabe a ele gerenciar estes acessos concorrentes;

Recuperao: garantir a possibilidade de recuperao das informaes, Disponibilidade: garantir o mnimo de disponibilidade possvel para manter Controle de acessos: permitir o controle de acesso.

seja por controles de tolerncia a falha ou mecanismos de backup;

o sistema estar on-line quando necessrio;

Assegurar um desempenho adequado.

Exemplos de alguns SGBDs(quadro 2) que podem ser encontrados sob licenas comerciais ou livres:Comercial DB2 - http://www-306.ibm.com/software/data/db2/ Informix 306.ibm.com/software/data/informix/ Livre MySQL - http://www.mysql.com http://www- Firebird http://www.firebirdsql.org - PostgreSQL http://www.postgresql.org Cache http://www.intersystems.com/cache/index.html HSQLDB - http://hsqldb.org -

Interbase http://www.codegear.com/br/products/interbase Oracle http://www.oracle.com Sybase - http://www.sybase.com.br

MsSQL Server http://www.microsoft.com/brasil/servidores/sql/default .mspx Quadro 2 Alguns SGBDs comerciais e/ou livres. Fonte: Sites internet.

A seguir so apresentados os modelos lgicos de banco de dados.

3.2.MODELOS LGICOS DE BANCO DE DADOSOs modelos lgicos so utilizados para descrever os dados no nvel lgico ou conceitual. Alguns modelos lgicos conhecidos:

11

a) Modelos Lgicos baseados em registros: rede, hierrquico e relacional. Nestes modelos o banco de dados estruturado atravs de registros de formato fixo de todos os tipos. Possui um nmero fixo de campos(atributos), e cada campo possui tamanho fixo simplificando a implementao do banco de dados no nvel fsico. Descrio dos modelos baseados em registro:

Rede: Neste modelo os registros so representados por um conjunto de e as relaes entre estes registros so representadas por

registros(como no pascal) arbitrrio de grafos1.

links(ponteiros). Os registros so organizados no banco de dados por um conjunto Exemplo do modelo em rede:Mrio Av. S. Carlos So Paulo 1234 1333 Rui Rua XV So Carlos 7556 Silvia

55,00 600,00 3000,00 350,00

Av. D. Pedro

Itu

5512

Hierrquico: Similar ao modelo em rede por seus dados e suas relaes serem A diferena no modelo hierrquico, que seus

representados por registros e links. Exemplo do modelo hierrquico:

registros esto organizados em rvores ao invs de grafos arbitrrios.

Mrio

Av. S. Carlos

So Paulo Rui Rua XV So Carlos 7556 1333 600,00

Silvia

Av. D. Pedro

Itu

1234

55,00 3000,00 7556 3000 5512

350,00

Relacional: Usa um conjunto de tabelas para representar tanto dados como a

relao entre eles. Cada tabela possui mltiplas colunas(atributos) e cada uma possui um nome nico.

1

Grafo: um conjunto de pontos, chamados vrtices (ou nodos ou ns), conectados por linhas, chamadas de arestas (ou arcos).

12

Exemplo de um modelo relacional:NOMCLI Mrio Rui Rui Silvia Silvia RUACLI Av. S. Carlos Rua XV Rua XV Av. D. Pedro Av. D. Pedro CIDCLI So Paulo So Carlos So Carlos Itu Itu NUMCTA 1234 1233 7556 5512 7556 NUMCTA 1234 1233 5512 7556 SALCTA 55,00 600,00 350,00 3000,00

b) Modelo Orientado a Objetos: Todos os padres do modelo orientado a objetos so definidos pela ODMG(Object Database Management Group Fundada em 1991). Padres definidos pela ODMG para este modelo:

Modelo de objetos: um objeto contm valores armazenados em variveis de

instncia dentro do objeto. O objeto tambm contm linhas de cdigo para determinar o comportamento do objeto.

Linguagem de Definio de Dados ODL Linguagem de Consulta OQL Acoplamento com C++, Java e Smalltalk

c) Sistemas Objeto-Relacionais: A rea de atuao dos sistemas Objeto-Relacional tenta suprir a dificuldade dos sistemas relacionais convencionais, que o de representar e manipular dados complexos, visando ser mais representativos em semntica e construes de modelagens. A soluo proposta a adio de facilidades para manusear tais dados utilizando-se das facilidades SQL (Structured Query Language) existentes. Para isso, foi necessrio adicionar: extenses dos tipos bsicos no contexto SQL; representaes para objetos complexos no contexto SQL; herana no contexto SQL e sistema para produo de regras. Diferenas gerais entre os modelos:

O modelo relacional difere por no utilizar links para relacionar os registros; Com o no uso de ponteiros possvel o desenvolvimento de fundamentos Modelos de objetos adicionam recursos como uso de tipos complexos. Exigem

matemticos para sua definio;

que as linguagens suportem o paradigma orientado a objetos.

3.3.GERENCIAMENTO DE TRANSAESMuitas operaes no banco de dados constituem uma nica unidade lgica de trabalho que apresenta as seguintes caractersticas(utilizando o modelo ACID):

Atomicidade: executar as operaes de forma atmica, ou seja, a operao

13

deve ser executada por completo ou nada deve ser executado;

Consistncia: no banco de dados existem implementaes de restries de Isolamento: uma transao deve ser executa como se nenhuma outra Durabilidade(persistncia): o efeito de uma transao nunca deve ser

consistncia. Espera-se que o banco de dados as garanta e preserve;

estivesse em execuo;

perdido, isso depois que a transao tiver sido concluda. O conceito de transao : coleo de operaes que desempenham uma funo lgica nica dentro de uma aplicao de um sistema de banco de dados.

3.4.VISO GERAL DA ESTRUTURA DO SISTEMA DE BANCO DE DADOSDe forma geral, os componentes funcionais de um sistema de banco de dados podem ser divididos em:

Componentes de processamento de consultas: normalmente o SGBD

apresenta um compilador de consultas, responsvel por analisar a consulta e gerar um plano de execuo para a mesma. Com base neste plano de execuo, que envolve tambm mecanismos de otimizao, ser executada propriamente a consulta;

Componentes de processamento de transaes: normal agruparmos em um

banco de dados uma srie de operaes dentro de uma nica transao. Ento cabe ao SGBD garantir as caractersticas de uma transao. Algumas das funes do processador de transaes: registro de log, controle de concorrncia e resoluo de impasses;

Componentes de administrao de memria: os dados de um banco de dados

residem normalmente em memria secundria, ou seja, disco magntico. Para carregar os dados para a memria principal o SGBD possui um gerenciador de buffers(pequenas regies na memria com dimenses de pgina) que executa esta tarefa atravs do particionamento da memria principal em buffers. Informaes que podem ser necessrias serem carregadas pelo SGBD para a memria: dados: o contedo do banco de dados propriamente dito; metadados: dados que descrevem outros dados; estatsticas: a fim de serem aproveitadas nas consultas; alm dos ndices;

Componentes

de

gerenciamento

do

armazenamento:

a

parte

de

armazenamento fsico dos dados fica a cargo do SGBD. Estruturas complexas so gerenciadas em segundo plano pelo mesmo, estruturas de dados do tipo: tabela, ndice, rvores, etc. Conhecidos os principais conceitos relacionados a banco de dados e a SGBDs, vamos conhecer os conceitos necessrios para a concepo de um sistema de informao utilizando

14

banco de dados.

4.CONCEPO DE SISTEMAS DE INFORMAOO processo de concepo de um sistema de informao se d atravs de algumas etapas. Etapas estas, compostas por:

Processo de anlise dos requisitos organizacionais; Desenvolvimento de um modelo conceitual que represente estes requisitos; Transformao do modelo conceitual em um modelo lgico e modelo fsico,

utilizando uma tecnologia de banco de dados. Entendendo as etapas para concepo de um sistema de informao(figura 4): 1. Anlise de requisitos: Identificar e descrever os dados e processos pretendidos pela organizao, no que diz respeito a determinado subsistema de informao em estudo. 2. Construo do modelo conceitual: Sintetizar num modelo global as diferentes necessidades dos vrios tipos de usurios. Descrever entidades, atributos e associaes, independentemente da tecnologia de banco de dados que venha a ser utilizada. 3. Construo do modelo lgico: Transformar o modelo conceitual num modelo lgico dependente da tecnologia de banco de dados a utilizar. 4. Construo do modelo fsico: Definir estruturas fsicas de dados que sejam mais adequadas para um ambiente tecnolgico especfico. Estabelecer estratgias de segurana, recuperao e backup.Necessidade de informao

Anlise de RequisitosEspecificao de requisitos

Modelo de dados da empresa

Caractersticas de HW/SO

Construo do Modelo ConceitualEstrutura conceitual da informao

Construo do Modelo LgicoEstrutura lgica dos dados e aplicaes

Construo do Modelo FsicoEstrutura fsica dos dados

Necessidades de informao Caractersticas do SGBD Figura 4 - Etapas para concepo de um Sistema de Informao.

15

a) Anlise de requisitos: Processo de identificao e documentao dos dados, informao e processamentos requeridos pelos usurios finais, de modo a satisfazer as necessidades organizacionais. Durante esta fase , estamos interessados em:

Informaes que descrevam as estruturas de dados(tais como entidades, Informaes que descrevam as regras ou restries que preservam a Informao acerca dos processamentos operacionais e de gesto necessrios

atributos, associaes);

integridade dos dados;

ao negcio da organizao. Tarefas na Anlise de Requisitos:

Definir o mbito do subsistema em estudo; Estabelecer a linguagem de comunicao; Identificar as necessidades e requisitos dos usurios; Identificar requisitos operacionais.

Anlise de requisitos: utilizando duas perspectivas.

Anlise de funes: Estudo dos dados que fluem no subsistema e os

processamentos/atividades que utilizam e/ou transformam esses dados. Normalmente utilizam-se tcnicas como o Diagramas de Fluxos de Dados, Dicionrio de Dados e Especificao de Processos.

Anlise de dados: Levantamento dos subconjuntos de dados requeridos por

cada usurio, de modo a este poder realizar as suas tarefas. Nesta perspectiva analisamse cada uma das user views vises do usurio, identificando e definindo os respectivos dados. Anlise de requisitos: qual perspectiva adotar?: O ideal ser utilizar estas duas perspectivas em complemento uma com a outra para a elaborao da anlise de requisitos.

A anlise de funes d-nos a viso do funcionamento de um sistema como

um todo, mas em que no temos detalhes suficientes em relao s estruturas de dados e suas associaes;

Por outro lado, a de anlise de dados mostra-nos que estruturas de dados e

suas associaes so necessrias, dando pouca nfase aos diferentes funcionamentos do sistema. Anlise de requisitos: Com qual se inicia a anlise?

Se, no subsistema em estudo, os usurios finais conseguem descrever com

16

certa preciso o seu funcionamento em termos de atividades, ento normalmente inicia-se a anlise orientadas para as funes.

Se os usurios esto mais seguros quanto aos dados que utilizam e da sua

caracterizao, ento inicia-se a anlise orientada para os dados. Anlise de requisitos pode utilizar-se de alguns mtodos e tcnicas de levantamento de requisitos, dentre eles: documentao, observao, entrevista e engenharia reversa(Reverse Engineering). Uma vez realizada a anlise de requisitos parte-se para a construo do modelo conceitual. b) Construo do Modelo Conceitual:

Utilizao Modelo

de

uma

aproximao associao

especfica, (Entity

adequada

a

modelao ou (Entity

sistematizada dos requisitos;

entidade

Association:

EA)

Relationship: ER);

Modelos orientados a objetos;

Selecionado o modelo, utiliza-se uma notao diagramtica: representao

grfica. c) Construo do Modelo Lgico: neste ponto so realizadas as tarefas de:

Transposio do modelo conceitual para um modelo de organizao de Adoo de uma modelo lgico especfico; Exemplo: Converso de diagramas E(ntidade)-A(ssociao) em tabelas

estruturas(lgicas) de dados

(ou relaes) de um modelo relacional. d) Construo do Modelo Fsico: A gesto e manipulao dos dados do modelo fsico feita a partir de funcionalidades oferecidas pelas ferramentas de Administrao da Base de Dados contidas no SGBD.

4.1.MODELAGEM DE DADOS E INFORMAOTem a funo de identificar, analisar e registrar a poltica da organizao face aos dados referentes ao sistema de informao. A modelagem de informao tem mrito de levantar questes sobre as regras da organizao, resultando frequentemente na identificao de novas necessidades de informao ou na resoluo de incoerncias no atual tratamento da informao. Modelagem: no sentido lato da informao, o modelo organizacional est embebido no sistema de informao a conceber. Modelagem = Modelao ou Modelizao. Nveis para o Modelo: so apresentados dois.

17

Modelo conceitual: representao da realidade, sem atender a quaisquer Modelos lgico e fsico: Adaptao do modelo conceitual s caractersticas Estruturas de dados(modelo lgico); Bytes on Disk(modelo fsico).

constrangimentos impostos pelo ambiente de tecnologia;

prprias do sistema tecnolgico;

Passo importante do processo de concepo de um sistema de informao, a adoo de uma metodologia de modelagem adequada.

4.2.METODOLOGIA DE MODELAGEMApresentao do mtodo Top-Down. Conforme Chen, o mtodo permite a construo do modelo por fases, partindo dos grandes objetos de informao(entidades) e identificando as suas inter-relaes(associaes). Este mtodo produz bons elementos de comunicao com os usurios. No exige esforo inicial de levantamento de nveis mais elementares de informao(atributos), o que impensvel em grandes sistemas de informao. Especificao do modelo conceitual: pode ser em dois nveis. Grfico Diagrama ER(Entidade-Relacionamento)

Descritivo: especificao para cada componente do modelo.Descrio de entidades Descrio de associaes

Descrio de atributos

18

Etapas do mtodo, propostas por Chen: 1) Anlise das necessidades informacionais e elaborao do modelo conceitual(ER ou OO).

2) Transformao do modelo conceitual (p.e. Diagrama EAA) num modelo lgico(p.e. Conjunto de tabelas do modelo lgico - relacional)Tabelas no normalizadas

3) Normalizao das tabelasTabelas normalizadas

4) Desenho fsico e implementaoFigura 5 Etapas do mtodo top-down.

Principais conceitos relacionados ao Modelo Entidade-Associao(E-A):

Bsicos

Entidade Associao Atributo Entidade Associao Associao Exclusiva Generalizao

Extenses

A representao de um modelo chamada de esquema do banco de dados. Modelos podem ser presentados de forma grfica e de forma textual. Na forma textual pode ser utilizada linguagem natural representada por exemplo atravs de uma gramtica BNF(BackusNaur Form, utilizada para descrever gramticas livres de contexto). Nesta apostila especificamente sero adotadas representaes com formas grficas. Descrio dos conceitos do Modelo E-A: Entidade: Qualquer objeto ou conceito com interesse para a organizao, sobre o qual se quer guardar informaes e que possa ser identificvel de forma inequvoca. Manter informaes sobre o objeto, armazenadas.

19

Exemplos: Contrato, Produto, Fornecedor, Cliente, Aluno, Professor, Livro, ..., etc. Substantivos comuns? representao diagramtica ou grfica

... nome da entidade ...

Atributos: para cada entidade necessrio conhecer as suas propriedades relevantes para o sistema. Um atributo qualquer propriedade de uma entidade. Os atributos so sempre elementos atmicos(indivisveis) de informao e que assumem diferentes valores de um DOMNIO. Domnio o conjunto de valores que um atributo pode assumir. Exemplos: Nmero do Cliente, Nome do Cliente, Cdigo do produto, etc. Tipos de atributos:

Identificadores ou chaves candidatas: So os atributos de uma entidade que

identificam uma ocorrncia especfica dessa entidade, distinguindo-a das restantes so tambm chamados de identificadores de entidade. Para que um atributo seja identificador necessrio que no existam duas ocorrncias distintas dessa entidade nas quais o atributo tenha o mesmo valor. Exemplo: Qual o atributo identificador para cliente?Nmero do Cliente 1234 1235 1236 1237 Nome do Cliente Silva Martins Silva Lopes Categoria J H L L

Nmero Nome do Cliente do Cliente

Categoria

Nmero do Cliente

Nome do Cliente Categoria

Cliente

Cliente

Descritores: So os atributos que apenas descrevem ou caracterizam as

ocorrncias de uma entidade. Atributos tambm pode apresentar cardinalidade. Se a cardinalidade for (1,1), estes

20

atributos so chamados de monovalorados, e a cardinalidade pode ser omitida. Atributos com cardinalidade mnima 0, so chamados de opcionais. Atributos com cardinalidade mxima n so chamados de multivalorados. O conceito de cardinalidade melhor explicado mais a frente. Associao(Relacionamento): As associaes representam as interligaes relevantes entre as entidades do sistema. Um associao pode relacionar:

Duas entidades entre si(binria) Vrias entidades entre si(complexa) Uma entidade consigo prpria(unria) representao diagramtica ou grfica

... nome da associao ...

Exemplo de uma associao: Uma associao que relacione EMPREGADO com o DEPARTAMENTO limita-se a indicar:

Os empregados ligados a um departamentos A que departamento est ligado um empregado 1 N... te m ligado ...

Departamento

Empregado

Normalmente uma associao limita-se a relacionar entidades entre si, no entanto, podem haver associaes com caractersticas prprias. Entidade associativa: H, no entanto, situaes em que as associaes tm atributos prprios. Exemplo: Uma associao que relacione fornecedor com produto, para alm de indicar quais os fornecedores de um produto e quais os produtos fornecidos por um fornecedor, pode conter o preo pelo qual um fornecedor fornece produto.

precoM N... pode fornecer ...

Fornecedor

Produto

Entidades versus Associaes: Para distinguir entidades de associaes podemos socorrer-nos do vocabulrio.

21

Geralmente utilizam-se:

Substantivos: para referenciar Entidades; Verbos: para referenciar Associaes. Quer para a definio conceitual da entidade(ou associao); Quer para referenciar qualquer ocorrncia dessa entidade(ou associao).

Na terminologia corrente utiliza-se o termo Entidade(ou Associao):

Entidades e associaes: um exemplo.

2 entidades, Armazem (2 ocorrncias) e Produto (5 ocorrncias) 1 associao, Armazena, com 5 ocorrncias 1 Narm aze na

Armazem

Produto

Produto 1 Produto 2 Armazem 1 Armazem 2 Produto 3 Produto 4 Produto 5Propriedades das Associaes: grau de uma associao ou cardinalidade. O grau de uma associao ou cardinalidade se refere ao nmero de ocorrncias de uma entidade em relao a outra. A definio da cardinalidade apresenta o nmero mnimo e mximo de ocorrncias de entidades associadas. Para facilitar o entendimento da cardinalidade muito til construir um diagrama de ocorrncias. Um diagrama de ocorrncias uma representao grfica, onde: as ocorrncias de entidades so representadas por crculos brancos; ocorrncias de relacionamentos so representados por crculos negros; ocorrncias de entidades participantes de uma ocorrncia de relacionamento so indicadas pelas linhas que ligam o crculo negro representativo da ocorrncia de relacionamento aos crculos representativos das ocorrncias de entidades relacionadas(HEUSER, 2004).

22

Vamos a um exemplo:

Figura 6 Exemplo de um diagrama de ocorrncias. Fonte: Heuser(2004).

Associaes binrias: associam duas entidades entre si.

Associaes 1:1 (1 para 1) Associaes 1:N (1 para muitos) Associaes M:N (muitos para muitos)

Associaes 1:1: Exemplo: Num curso cada mdulo ministrado por um s instrutor, e cada instrutor ministra apenas um mdulo. 1 1ministra

Instrutor

Modulo

Associaes

1:N:

Exemplo:

Um

departamento

tem

lotados

vrios

empregados(eventualmente s um ou mesmo nenhum), e um empregado est ligado apenas a um departamento(ou nenhum). 1 Ntem ligado

Departamento

Empregado

Associaes M:N: Exemplo: Um livro pode ser escrito por vrios autores, assim com um autor pode escrever vrios livros. M Nes cre ve

Autor

Livro

23

Conectividade de uma Associao: Uma entidade participa numa associao de duas formas:

Obrigatria(ou total): No pode existir nenhuma ocorrncia dessa entidade que No obrigatria(ou parcial): Podem existir ocorrncias dessa entidade que no

no esteja associada a alguma ocorrncia de outra entidade que participa na associao.

estejam associadas a alguma ocorrncia da outra entidade que participa na associao.

A

...

B

A: Obrigatria - B: No-obrigatria (independente do grau) Exemplos:

Fatura

te m

Linha_Fatura

Leitor

Re quis ita

Livro

Associaes exclusivas: Por vezes, duas ou mais associaes de uma mesma entidade so mutuamente exclusivas. Esta situao representada atravs do Arco de exclusividade, que unes as associaes relevantes para a exclusividade. Exemplo: Uma conta bancria pode pertencer a uma pessoa fsica ou a uma pessoa jurdica, mas sempre a uma delas e nunca a ambas. Pessoa Fsica Conta

Pessoa Jurdica

Associaes complexas: A abordagem ER permite a construo de relacionamentos de grau maior que 2(ternrios, quaternrios, etc), portante, associaes complexas associam

24

entre si mais que duas entidades. Devem ser usadas apenas quando o conceito inerente associao no possa ser representado por um conjunto de associaes binrias entras as entidades envolvidas.

Como definir o grau de uma associao complexa?: Fixa-se cada par de entidades e analisa-se qual o nmero de ocorrncias da terceira entidade. No exemplo:

para o par Produto,Cidade s pode existir uma ocorrncia de Distribuidor para o par Cidade,Distribuidor podem existir n ocorrncias de Produto para o par Produto,Distribuidor podem existir n ocorrncias de Cidade Produto

Cidade

distribuio

Distribuidor

Generalizao: Uma entidade E a generalizao das entidades E1...En, se cada ocorrncia de E1...En tambm ocorrncia de E. As entidades E1...En podem ser entendidas como entidades especializadas de E. Empregado generalizao

Secretria

Engenheiro

Motorista sub-entidades

25

No quadro a seguir so apresentadas notaes diagramticas adotadas neste material.Notao Diagramtica Geral Conceito Entidade Representao Grfica

Associao

Entidade Associativa

Atributo

Chave Candidata ou Identificador

atributoAssociao Exclusiva

Generalizao

Notao Diagramtica nas Associaes(notao p-de-galinha da engenharia de informaes)

um

muitos

um e somente um

um ou muitos

zero ou um

zero ou muitos

26

Notao alternativa para as Associaes(notao Chen)

1 um 1 um e somente um 1 zero ou um

N muitos N um ou muitos N zero ou muitos

O prximo passo de modelagem a seleo de um modelo lgico de banco de dados e a converso do modelo conceitual para o modelo escolhido. Nesta apostila o modelo lgico a ser trabalhado o relacional. A seguir so apresentadas mais caractersticas deste modelo.

4.3.MODELO RELACIONALO modelo relacional tornou-se disponvel na dcada de 70. Desde ento este modelo tem sido implementado em um grande nmero de SGBDs comerciais e livres, como: DB2, Informix(IBM), Oracle, SQL Server, PostgreSQL, entre outros. Neste captulo sero explicados os principais conceitos relacionados ao modelo relacional. Nveis de abstrao em um Sistema de Banco de Dados(figura 6): antes de chegarmos a um modelo mais completo, muitos modelos parciais ou intermedirios podero surgir.Modelo parcial 1

Modelo parcial 2

Banco de Dados Lgico

Banco de Dados Fsico

Modelo parcial n Figura 6 - Nveis de abstrao em um Sistema de Banco de Dados.

27

Como formado o modelo de dados(figura 7): alm das estruturas de dados so disponibilizadas regras de integridade: para garantir a integridade das informaes; e operadores que auxiliaro na manipulao da informaes.

Tipos de Estruturas de Dados

Operadores

Regras de Integridade

Figura 7 Estrutura do modelo de dados relacional.

A estruturas bsicas do modelo relacional so as relaes ou tabelas:

RELAES: implementadas na forma de TABELAS.

Tipos de Estruturas de Dados

Operadores

Regras de Integridade

O que uma relao ou tabela? um conjunto no ordenado de linhas ou tuplas.

28

Exemplo de uma Relao(EMPREGADO): NUMEMP NOMEMP TELEMP CATEMP SALEMP 10 20 30 40 50 Antunes Bento Correia Dias Edmundo 12345678 12345668 12345679 12345670 12345688 B A B C B 100 250 60,50 90,50 120

COMEMP 15 50

FUNEMP Analista Diretor Porteiro Programador

12.5

ContadorDomnio

Domnio Cadeia de caracteres de comprimento inferior ou igual a 20 Nmeros inteiros e positivos

Alguns conceitos importantes sobre uma relao: a) Grau: nmero de colunas da relao. b) Atributo: ou colunas. Propriedades particulares que a descrevem. c) Esquema da relao: definio da relao Exemplo:

Empregado(numemp, nomemp, telemp, catemp, salemp, comemp, funemp)

d) Esquema relacional: Definio de um Banco de Dados relacional sob a forma de um conjunto de esquemas de relao. e) Chave candidata(Candidate Key): considerada a chave candidata de uma relao. Define o conjunto mnimo de atributos que identificam cada ocorrncia da relao. No existem duas linhas da relao com o mesmo conjunto de valores neste atributo(ou atributos). Relao CLIENTENUMCLI 10 20 30 40 50 NOMCLI Antnio Abreu Bernardo Bento Carlos Castro Daniel Dantas Manuel Matos RUACLI Alberto Antunes Beta Brs Clara Campos Dominicana Marco Moita CIDCLI Andorra Bruxelas Camberra Camberra Maputo PAIS Andorra Blgica Canad Canad Moambique TIPCLI 1 2 1 2 1 NUMCON 123.456.789 789.123.654 987.456.321 789.098.543 765.098.345

Chaves Candidatas

29

h) Chave primria(Primary Key): Chave primria da relao -> Entre as chaves candidatas de uma relao, escolhe-se uma para ser a chave efetiva da mesma(a que for mais til no sistema em questo). A essa chave, d-se o nome de chave primria. i) Chave estrangeira(Foreign Key): Chave estrangeira de uma relao -> Em algumas relaes, temos um atributo(ou conjunto de atributos) cujas ocorrncias so referncias chave primria de uma outra relao. A esses atributos damos o nome de Chaves Estrangeiras. Exemplo de chave estrangeira:NUMEMP 01 02 03 04 NOMEMP Joo Jos Gil Jlio CODCAT C3 C1 C2 C1 CODCAT C1 C2 C3 C4 DESCAT Diretor Tcnico Administrador Auxiliar SALBSE 300,00 200,00 120,00 90,00

Chave Estrangeirah) Domnio: representa o conjunto de valores atmicos que um atributo pode conter. i) Definio de Banco de Dados Relacional: Conjunto de relaes, cujo contedo varia ao longo do tempo. Exemplo de um Banco de Dados Relacional:

FATURANUMFAT 01 02 03 DATEMI 01/01/1989 12/02/2004 15/03/2001 DATPAG 15/01/1989 25/04/2004 20/03/2001 NUMCLI 10 20 20

PRODUTOCODPRO NOMPRO 01 02 03 Lpis Caneta Rgua PRECO 100 150 500 QTDPRO 2543 1321 354

CLIENTENUMCLI NOMCLI RUACLI CIDCLI PAIS TIPCLI

FATURA_PRODUTONUMFAT 01 01 01 02 02 CODPRO 01 02 03 01 02 03 01 QTDFAT 30 15 23 40 10 15 25

10 20 30 40

Antnio Abreu Carlos Castro Daniel Dantas

Alberto Antunes Andorra Bruxelas Clara Campos Dominicana

Andorra Blgica

1 2 1 2

Bernardo Bento Beta Brs

Camberra Canad Camberra Canad

Linhas de fatura

02 03

30

03 03

02 03

60 10

Esquema relacional do banco apresentado anteriormente: CLIENTE(numcli, nomcli, ruacli, cidcli, pais, tipcli) FATURA(numfat, datadm, datpag, numcli) PRODUTO(codpro, nompro, preco, qtdpro) FATURA_PRODUTO(numfat, codpro, qtdfat) Operadores do Modelo Relacional: operadores utilizados para manipular as informaes contidas nas relaes.

Tipos de Estruturas de Dados

Operadores

Operaes sobre as RELAES.

Regras de Integridade

Comportamento dos operadores relacionais: Operandos R1 Resultado

R2

Operador Relacional

Resultado final

R3

Relaes Resumo do funcionamento das operaes de lgebra relacional: seleo, projeo, produto cartesiano, juno, unio, interseo, diviso, diferena.

31

Seleo

Projeo

Produto Cartesiano X

Juno

X

Conceito de valor NULL: Numa relao podemos, em determinado momento, ter um atributo cujo valor desconhecido ou no aplicvel no momento. Diz-se ento que esse elemento tem o valor NULL. Caractersticas dos valores NULL:

Independentes de domnio: inteiro, real, caracter, data, etc. No comparveis entre si: no possvel dizer que um valor NULL igual a

outro valor NULL.

Regras de Integridade do Modelo Relacional: um banco de dados relacional deve prover recursos para permitir a integridade das informaes.

Tipos de Estruturas de Dados

Operadores

Regras de Integridade

Integridade das Entidades: tambm chamado de integridade de identidade. Diz que

32

nenhum componente da chave primria de uma relao poder em algum momento ter valor NULL, em qualquer um de seus atributos. Integridade de Domnio: Cada coluna de uma relao tem um domnio, isto , um conjunto(limitado ou no) de valores possveis. Em todas as linhas dessa relao, o valor dessa coluna ter que pertencer sempre a esse domnio. Integridade de Coluna: refinamento da integridade de domnio. Exemplo: EMPREGADO(numemp, nomemp, ruaemp, salemp, tipoemp)

Domnio: nmeros inteiros numemp -> positivo, mltiplo de 5 Regras de refinamento para coluna: Tipemp -> valores entre -10 e 10

Integridade Referencial: Numa relao, qualquer ocorrncia de uma chave estrangeira dever obrigatoriamente existir como ocorrncia da chave primria da relao qual se refere. Integridade Definida pelo Usurio: Qualquer outra regra a que as ocorrncias de um determinado banco de dados dever obedecer e que no abrangida pelos tipos mencionados anteriormente. Apresentadas as caractersticas do modelo lgico relacional, vamos conhecer o que um SGBD relacional tem a oferecer.

4.4.SGBD RELACIONALO que faz de um SGBD relacional? Segundo Codd(1985b) um SGBD pode ser considerado minimamente relacional se satisfaz as seguintes condies:

Estrutura: Ao usurio so apresentadas apenas tabelas e nada mais do que Manipulao: Suporta operaes de restrio, projeo e juno natural, sem

tabelas.

necessidade e definio de caminhos fsicos de acesso para estas operaes. A partir da definio de Codd, Date(2004) sugere uma classificao para SGBDs relacionais: 1. Tabular: Suporta a estrutura tabular, mas no os operadores relacionais; 2. Minimamente relacional: Suporta a estrutura tabular e os operadores de restrio, projeo e juno(apenas estes);

33

3. Relacional: Suporta a estrutura tabular e todos os operadores da lgebra relacional; 4. Completamente relacional: Suporta todos os aspectos do modelo relacional(estrutura tabular e domnios, todos os operadores da lgebra relacional e a integridade de entidades e referencial). Segundo um artigo posterior de Codd(1985a) um SGBD completamente relacional(fully relational) se gerencia o banco de dados utilizando apenas e s as possibilidades oferecidas pelo modelo relacional. Assim sendo, o SGBD relacional, tem de satisfazer as seguintes 12 regras: 1. Informao em tabelas 2. Garantia de acesso 3. Tratamento sistemtico de valores nulos 4. Catlogo on-line e ativo baseado no modelo relacional 5. Sublinguagem de manipulao de dados compreensvel 6. Atualizao de views 7. Insert, Update e Delete de alto nvel: tratamento de conjuntos 8. Independncia fsica dos dados 9. Independncia lgica dos dados 10. Independncia da integridade 11. Independncia da distribuio 12. No subverso: instrues de baixo nvel no podem quebrar regras de integridade. Conhecidos os principais conceitos do modelo relacional e dos SGBDs relacionais, o momento de converter o modelo conceitual para um modelo relacional.

4.5.TRANSFORMAO DO MODELO CONCEITUAL EM MODELO RELACIONALRepresentao de uma relao: EMPREGADO(numemp, nomemp, datnas)

Nome da relao Chave da relao ou identificador

demais atributos ...

Como se d o processo de transformao/converso: regras gerais.

Entidades: Cada entidade d normalmente origem a uma relao com:

34

Identificador da entidade: chave da relao; Descritores da entidade: outros atributos da relao; Identificadores de outras entidades que eventualmente lhe estejam associadas: Chaves estrangeiras;

Associaes:

Associaes 1:1 e associaes 1:N so representadas normalmente pela adio de novos atributos (chaves estrangeiras) s relaes existentes; Associaes M:N do origem a uma nova relao.

Regras especficas de transformao: Entidades Associativas: as entidades associativas podem ser refinadas em novas entidades. Antes de refinado LINHA PRODUTO PRODUTO ENCOMENDA

Depois de refinado PRODUTO ENCOMENDA

LINHA PRODUTO Associaes Binrias:

Associaes 1:1 1. Caso: Ambas as entidades so obrigatrias. Basta uma tabela para

representar esta situao

EMPREGADO_CARRO(numemp, nomemp, ..., matricula, marca) Chaves candidatas: numemp, matricula

35

Nota: Analisar criteriosamente esta situao: muito limitativa. EMPREGADOutiliza

CARRO

2. Caso: apenas uma das entidades obrigatria. Para representar est situao so necessrias 2 tabelas, uma para cada entidade. Colocar o identificador da entidade no obrigatria na tabela correspondente entidade obrigatria.

EMPREGADO(numemp, nomemp, ...) CARRO(matricula, marca, ..., numemp)

EMPREGADO

utiliza

CARRO

3. Caso: Nenhuma das entidades obrigatria. Situao representada por 3 tabelas, 1 por entidade e 1 para a associao.

EMPREGADO(numemp, nomemp, ...) CARRO(matricula, marca, ...) EMPREGADO_CARRO(numemp, matricula)

Chaves candidatas: numemp, matricula

Nota: Esta situao ser normalmente representada por apenas duas tabelas. necessrio ter em conta a proporo do nmero de ocorrncias da associao / nmero de ocorrncias das tabelas associadas.

EMPREGADO

utiliza

CARRO

Associaes 1:N 1. Caso: Entidade do lado N obrigatria. Esta situao representada por

2 tabelas, uma para cada entidade.

DEPARTAMENTO(coddep, nomdep, ...) EMPREGADO(numemp, nomemp, ..., coddep) EMPREGADO

DEPARTAMENTO

trabalha

36

2. Caso: Entidade do lado N no-obrigatria. Esta situao pode ser representada por trs tabelas, uma para cada entidade e uma para a associao.

DEPARTAMENTO(coddep, nomdep, ...) EMPREGADO(numemp, nomemp, ...) EMPREGADO_DEPARTAMENTO(numemp, coddep)trabalha

DEPARTAMENTO

EMPREGADO

Nota: Esta situao ser normalmente representada por 2 tabelas. necessrio ter em conta a proporo do nmero de ocorrncias da associao / nmero de ocorrncias da tabela EMPREGADO. Associaes M:N

Esta situao sempre representada por trs tabelas, uma para cada entidade e uma para a associao.

FORNECEDOR(codfor, nomfor, ...) PRODUTO(codpro, nompro, ...) FORNECEDOR_PRODUTO(codfor, codpro)

FORNECEDOR

fornece

PRODUTO

Associaes Complexas Esta situao representada por quatro tabelas, uma para cada entidade e uma

para a associao.

DISCIPLINA(coddis, nomdis, ...) ALUNO(codalu, nomalu, ...) PROFESSOR(codpro, nompro,...) ADP(coddis, codalu, codpro)

DISCIPLINA

ALUNO

ADP

PROFESSOR

37

Nota: A chave da associao, neste caso concreto, a concatenao das trs chaves e entidades presentes. Pode no ser assim, pois este fato depende do grau da associao.

DISCIPLINA(coddis, nomdis, ...) ALUNO(codalu, nomalu, ...) PROFESSOR(codpro, nompro,...) ADP(coddis, codalu, codpro) DISCIPLINA

ALUNO

ADP

PROFESSOR

Associaes Unrias 1:N Lado N obrigatrio. Esta situao representado por uma nica tabela.

EMPREGADO(numemp, nomemp, ..., numchf)

Nota: Neste caso, necessrio ter uma ateno que o chefe mximo chefe dele prprio.

EMPREGADO chefe chefia Lado N no obrigatrio. Esta situao representada por duas tabelas, uma para a entidade, outra para a associao. EMPREGADO(numemp, nomemp, ...) CHEFIA(numemp, numchf) subordinado

Nota: Esta situao ser normalmente representada por apenas uma tabela. necessrio ter em conta a proporo do nmero de ocorrncias da associao / nmero de ocorrncias da tabela EMPREGADO.

38

EMPREGADO chefe chefia Associaes Unrias 1:1 Nenhum dos lados obrigatrio. Esta situao representada por duas tabelas, uma para a entidade e uma para a associao.

subordinado

CIDADAO(numcid, nomcid, ...) CASAMENTO(numcid_marido, numcid_esposa) CIDADAO

casamento

Um dos lados obrigatrio. Esta uma situao representada por uma nica tabela. DOCENTE

orientador

Ambos os lados so obrigatrios. Considere-se o registro de casamentos de uma igreja. Esta situao representada por uma nica tabela.

CASAMENTO(numcid_marido,

nome_marido,

...,

numcid_esposa,

nome_esposa) \

39

Chaves candidatas: numcid_marido, numcid_esposa. CIDADAO

casamento Nota: Analisar criteriosamente esta situao: muito limitativa.

Associaes Unrias M:N Esta situao representada por 2 tabelas, 1 para a entidade, 1 para a associao.

PECA(codpec, ...) ESTRUTURA(codpecpai, codpecfil) PECA Pai Filho

estrutura

Finalizado o processo de transformao do modelo conceitual em um modelo relacional passa-se ento para o processo de normalizao.

4.6.NORMALIZAOPor que Normalizar? Aps a construo do modelo conceitual dos dados feita a transformao para um modelo lgico(esquema relacional). O esquema relacional obtido representa a estrutura de informao de um modelo natural e completo. Mas ter o mnimo de redundncia possvel?

40

A normalizao tem por objetivo avaliar a qualidade do esquema relacional e transform-lo(em caso de necessidade) num esquema relacional equivalente, menos redundante e mais acessvel.

Elim inar grupos re pe titivos

Elim inar depend ncias funcionais(DF's ) parciais

Elim inar de pe ndncias funcionais (DF's) trans itivas

Viso do Us urio

Re laes no norm alizadas

1 Form a Norm al (1FN)

2 Form a Norm al (2FN)

3 Form a Norm al (3FN)

Menos utilizadas

FBNC

4 Form a Norm al (4FN)

5 Form a Norm al (5FN)

Figura 7 - Etapas do Processo de Normalizao.

Dependncia Funcional: Em uma tabela relacional diz-se que uma coluna C2 depende funcionalmente de uma coluna C1(ou que uma coluna C1 determina a coluna C2), quando todas as linhas da tabela, para cada valor de C1 que aparece na tabela, aparece o mesmo valor de C2. Por vezes dois atributos(ou dois grupos de atributos) esto intrinsecamente ligados entre si. Exemplo:

Nmero do Cliente

Nome do Cliente

Num determinada instante, em qualquer ponto da base de dados que figurem estes 2 atributos, a um mesmo nmero de cliente corresponder necessariamente o mesmo nome. O inverso no pode ser verdade. Diz-se ento que: Nome do Cliente depende do Nmero do Cliente ou que: Nmero do cliente determina Nome do Cliente.

41

Dependncias Funcionais Parciais: Uma dependncia funcional parcial ocorre quando uma coluna depende apenas de parte de uma chave primria composta. Exemplo de dependncia parcial:

CHAVERelao NOTASNUMNOT CODDIS 21934 21934 21934 42346 42346 42346 42346 54323 54323 04 14 23 08 04 12 16 04 08 NOMDIS lgebra Anlise de Sistemas Programao Linear Topologia lgebra Geometria Lgica lgebra Topologia CODPRO 21 87 43 32 21 21 32 21 32 NOMPRO Gil Algbrico Ana Listada Plneo Topo Lgico Gil Algbrico Gil Algbrico Topo Lgico Gil Algbrico Topo Lgico GRAPRO PA PC AS AE PA PA AE PA AE NOTA 15 12 16 10 12 18 13 11 10

Obs.: Os atributos NOMDIS, CODPRO, NOMPRO e GRAPRO dependem apenas do atributo CODDIS (que est estritamente contido na chave da relao). Dependncias Funcionais Transitivas: Uma dependncia funcional transitiva ocorre quando uma coluna, alm de depender da chave primria da tabela, tambm depende de outra coluna ou conjunto de colunas da tabela que no so chave.

CHAVERelao DISCIPLINASCODDIS 04 14 23 08 12 16 lgebra Anlise de Sistemas Programao Linear Topologia Geometria Lgica NOMDIS CODPRO 21 87 43 32 21 32 NOMPRO Gil Algbrico Ana Listada Plneo Topo Lgico Gil Algbrico Topo Lgico GRAPRO PA PC AS AE PA AE

Obs.: Os atributos NOMPRO e GRAPRO dependem do atributo CODPRO (que no a chave da relao) e portanto CODDIS -> CODPRO, CODDIS -> NOMPRO e CODDIS -> GRAPRO no so

42

diretas. Novas relaes: Relao PROFESSORESCODPRO 21 87 43 32 NOMPRO Gil Algbrico Ana Listada Plneo Topo Lgico GRAPRO PA PC AS AE

Relao DISCIPLINASCODDIS 04 14 23 08 12 16 NOMDIS lgebra Anlise de Sistemas Programao Linear Topologia Geometria Lgica CODPRO 21 87 43 32 21 32

O processo de normalizao composto pelas chamadas formas normais. A seguir as mesmas so descritas com maior detalhamento.

4.7.FORMAS NORMAIS1) Primeira Forma Normal(1FN): A primeira forma normal resulta na eliminao de grupos repetitivos de atributos em uma entidade, logo, dizemos que uma entidade est na primeira formal normal, quando no possuir atributos com cardinalidade N. Primeira FN: A aplicao da 1FN consiste em:

Eliminar da Entidade os atributos com cardinalidade N, criando uma entidade Definir como chave primria desta nova entidade, a chave da entidade origem

para os mesmos, conforme seu agrupamento.

mais um atributo da nova entidade. Exemplo: CLIENTE 1 - 1 CODCLI 0 - 1 NOMCLI 1 - 1 CEPCLI 1 - 1 CIDCLI

43

0 - N NUMDEPENDENTES 0 - N DATNASDEPENDENTES CLIENTE 1-1 0-1 1-1 1-1 CODCLI NOMCLI CEPCLI CIDCLI 1-1 1-1 11 DEPENDENTE CODCLI NUMDEPENDENTE DATNASDEPENDENTE

2) Segunda Forma Normal(2FN): A 2FN resulta na eliminao de atributos que no dependam dos dois ou mais atributos da chave primria. Podemos observar ento que aplica-se a 2FN, apenas em entidades que possuem chave primria composta, ou seja, entidades com apenas um atributo na chave primria j esto na 2FN. Se no aplicarmos a 2FN para eliminarmos esta anomalia, os atributos que dependem apenas de parte da chave primria se repetiro N vezes na entidade, podendo gerar inconsistncias nos dados armazenados. A aplicao da 2FN consiste em:

Eliminar da entidade os atributos que no dependam de todos os atributos da Criar uma nova entidade com os atributos excludos, mais os atributos da Definir como chave primria desta nova entidade, os atributos herdados da

chave primria;

chave primria que causam a dependncia dos atributos excludos na entidade origem;

chave primria da entidade origem. 3) Terceira Forma Normal(3FN): Resulta na eliminao de atributos que dependam de outros atributos que no faam parte da chave primria. Uma entidade est na 3FN quando todos os atributos da entidade dependam nica e exclusivamente dos atributos da chave primria. Chamamos de anomalia de dependncia transitiva, e quando no solucionada, os atributos com dependncia transitiva iro se repetir na entidade, podendo gerar inconsistncias nos dados armazenados. A aplicao da 3FN consiste em:

Eliminar da entidade os atributos que dependam de atributos que no Criar uma nova entidade com os atributos excludos mais o atributo causador Definir como chave primria desta nova entidade, o atributo herdado da

pertencem a chave primria;

da dependncia transitiva dos atributos excludos;

entidade de origem e que causou a dependncia transitiva.

44

Exemplo: CLIENTE 1-1 0-1 1-1 1-1 CLIENTE 1-1 0-1 1-1 1-1 CODCLI NOMCLI CEPCLI CODCID 1-1 1-1 CODCLI NOMCLI CEPCLI CIDCLI CIDADE CODCID NOMCID

Concluso sobre Normalizao: Uma entidade estar normalizada se estiver atendendo at a 3FN, ou seja, uma entidade estar normalizada se:

No possuir grupos repetitivos de atributos (1FN); Os atributos dependem de todos e unicamente de todos os atributos da chave

primria(2FN e 3FN); Um modelo de dados est normalizado se todas as suas entidades esto normalizadas at a 3 FN. Outras Formas Normais:

Boyce-Codd(FBNC): extenso a 3FN. Uma entidade est na FBNC se e 4FN: Aplica-se a atributos multivalorados. Uma entidade est na 4FN quando 5FN: Uma entidade est na 5FN quando est na 4FN e quando seu contedo

somente se todos os determinantes forem chaves candidatas;

est na 3FN e no possui mais do que um fato a respeito de uma entidade descrita;

puder ser reconstrudo a partir de diversas entidades menores que no possuam a mesma chave primria. Desnormalizao: A normalizao ajuda a preservar a consistncia dos dados, porm, requer navegao atravs de vrias tabelas para composio da informao. Quando desnormalizar?

Observando o imperativo desempenho: Data Warehouse; Aumento ou reduo da granularidade dos dados; Clculos numerosos e complexos; BI(Business Intelligence): para poder modelar vrios nveis de viso da

informao. Na sequncia sero apresentadas algumas linguagens(incluindo as formais) para expressar consultas em banco de dados.

45

5.CLCULO RELACIONALO clculo relacional uma linguagem considerada no procedural. Nela os usurios definem as consultas em termos de O QUE ele quer sem descrever COMO obt-la. O clculo relacional se divide em duas categorias: clculo relacional de tupla e clculo relacional de domnio. 1. Clculo relacional de tupla: o objetivo encontrar tuplas para cada vez que o predicado informado verdadeiro. So utilizadas variveis de tupla. Expresso geral: { t | P(t) } = que significa o conjunto de todas as tuplas t, tal que o predicado P seja verdadeiro para t. 2. Clculo relacional de domnio: Nesta forma so utilizadas variveis de domnio que tomam valores do domnio de um atributo, em vez de valores da tupla. Uma expresso neste clculo tem a forma: { | P(x1, x2, ..., xn)} = onde x1, x2, ... , xn representam variveis de domnio e P representa uma frmula composta de tomos, como no clculo relacional de tupla. Em seguida apresentada a lgebra relacional.

6.LGEBRA RELACIONALAntes de entrar diretamente no assunto relacionado linguagem SQL importante conhecer a lgebra relacional, que considerada uma linguagem formal de interrogao. A lgebra relacional uma linguagem procedural. As operaes da lgebra relacional se baseiam na teoria de conjuntos, onde os conjuntos so representados pelas relaes ou tabelas. Dentro da lgebra relacional encontramos algumas operaes consideradas fundamentais, como: projeo, seleo, produto cartesiano, unio e diferena. Alm das operaes fundamentais, existem ainda outras, como: interseo, ligao(juno normal e natural) e diviso. A lgebra relacional compe-se destes operadores para realizar manipulaes de dados em um banco de dados relacional. Alm disso a lgebra relacional a base lgica para a especificao da linguagem SQL, a estrutura de um comando SQL pode ser melhor compreendida tendo-se conhecimento destes conceitos at porque cada comando SQL pode ser desmembrado e representado atravs de uma expresso em lgebra relacional.

46

O poder da lgebra relacional tambm se encontra no fato de que cada operao tem como entrada um ou mais conjuntos, e como resultado obtm-se um novo conjunto. Partindo-se desta ideia possvel se encadear diversas operaes relacionais em uma mesma expresso algbrica onde o resultado de uma operao sobre um conjunto alimenta a prxima operao. Isso aumenta muito o poder desta linguagem de consulta. Alguns conceitos importantes envolvidos na lgebra relacional: a) Relao: representada por por uma tabela de duas dimenses(linhas e colunas); b) Tupla: corresponde a uma linha da relao; c) Atributo: corresponde s colunas da relao; d) Chave primria: conjuntos de atributos que identificam univocamente cada tupla da relao; e) Chave estrangeira: atributo de uma relao que chave primria de outra relao.Chave Primria Atributos

MATALU

NOMALU

CPFALU

CODCUR

DATNAS

CODCID

Relao

Tuplas Chave Estrangeira

A lgebra relacional apresenta um conjunto de operaes aplicveis sobre modelos relacionais de dados. Estas operaes podem ser agrupadas em duas categorias principais: a) Operadores tradicionais: herdados da matemtica, mais precisamente da teoria de conjuntos.

Unio

Interseo

Diferena

47

Produto Cartesiano

A B C

X Y

AX AY BX BY CX CY

b) Operadores relacionais: criados propriamente para a lgebra relacional. Seleo

Projeo

Juno

Diviso A F1 F1 F1 F1 F1 F1 F2 F2 F3 F4 P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P1 P2 P3 P4 P5 F1 P1 P4 B P1 C F1 F2 F1

Cada uma das operaes mencionadas anteriormente ser melhor explanada na sequncia e para exemplificao tanto da lgebra relacional quanto da SQL sero utilizados os modelos de dados apresentados a seguir(Modelo 01 e Modelo 02).

48

MODELO DE DADOS 01 Tabela Cargo CODCAR C1 C3 C7 C2 C5 C4 Tabela Departamento CODDEP DESDEP D1 D2 D3 D4 D5 D6 Assist. Tcnica Estoque Administrao Segurana Vendas Cobrana

DESCAR

VLRSAL 350,00 800,00 2500,00 400,00 1000,00 250,00

RAMTEL 2246 2589 2772 1810 2599 2688

Aux. Vendas Vendedor Diretor Vigia Gerente Aux. Cobrana

Tabela Funcionario NUMFUN 101 104 134 121 195 139 123 148 115 22 NOMFUN Renato da Silva Carlos Pereira Pedro Srgio Doto Antnio Machado Larissa Silva Rejane da Cunha Marcos Vinicios da Penha Cludia de Souza Joo Alves Marcos Coimbra DATADM 10/08/2003 02/03/2004 23/05/2003 01/12/2001 15/01/2007 12/01/2005 29/06/2003 06/01/2008 15/10/2003 10/02/2000 SEXFUN M M M M F F M F M M CODCAR C3 C4 C5 C3 C1 C4 C7 C4 C3 C2 CODDEP D5 D6 D1 D5 D5 D6 D6 D3 D5 D4

49

MODELO DE DADOS 02Tabela Usuario CODUSU NOMUSU 01 02 03 04 05 06 Pedro da Silva Renata de Souza Casemiro Alves Aristides da Cunha Rafael dos Santos Jonny English ENDUSU Rua Ab Rua Cal Rua Ypr Rua Hbc Rua Ab Rua Rtf CEPUSU 890 980 765 546 890 809 Tabela Livro CODLIV 1001 1002 1003 1004 1005 1006 Tabela Reserva CODUSU 01 02 01 06 05 06 04 03 01 DATEMP 13/01/2008 13/01/2008 14/01/2008 14/01/2008 02/02/2008 05/02/2008 12/01/2008 04/02/2008 04/03/2008 CODRES 30001 30002 30003 30004 30005 30006 30007 30008 30009 30010 CODLIV 1002 1002 1002 1003 1004 1001 1005 1006 1006 1005 CODUSU 02 03 05 04 03 01 01 06 02 04 DATRES 11/01/2008 13/01/2008 23/01/2008 01/02/2008 01/02/2008 02/02/2008 03/02/2008 04/02/2008 07/02/2008 07/02/2008 TITLIV CODBIB 1 1 2 3 3 4

LIVRO 01 LIVRO 02 LIVRO 03 LIVRO 04 LIVRO 05 LIVRO 06

Tabela Emprestimo CODEMP 20002 20005 20006 20007 20008 20010 20001 20009 20011 CODLIV 1001 1002 1004 1005 1001 1006 1005 1003 1002

50

6.1.OPERAO DE PROJEO(UNRIA)A operao representada pelo smbolo

(letra PI do alfabeto grego). uma

operao usada para construir um subconjunto vertical de uma tabela(ou relao), cujas linhas satisfaam uma determinada condio que nada mais que uma lista de colunas. A operao de projeo pode ser tambm entendida como um filtro de colunas(ou atributos) de uma determinada tabela. Esta operao atua somente sobre uma tabela por isso considerada unria. Sua sintaxe :

nome coluna1, nome coluna2, ..., nome colunan(NOME

TABELA)

NOME TABELA = Conjunto de entrada para a operao COLUNAS = Argumentos da operao

A operao de projeo age sobre somente uma tabela ou tabela resultante de alguma outra operao da lgebra relacional. Exemplos de aplicao da operao de projeo: E-01) Realizar a projeo da coluna NOMFUN da tabela FUNCIONARIO. Expresso:

NOMFUN(FUNCIONARIO)

resolvendo ...NUMFUN 101 104 134 121 195 139 123 148 115 22 NOMFUN Renato da Silva Carlos Pereira Pedro Srgio Doto Antnio Machado Larissa Silva Rejane da Cunha Marcos Vinicios da Penha Cludia de Souza Joo Alves Marcos Coimbra DATADM 10/08/2003 02/03/2004 23/05/2003 01/12/2001 15/01/2007 12/01/2005 29/06/2003 06/01/2008 15/10/2003 10/02/2000 SEXFUN M M M M F F M F M M CODCAR C3 C4 C5 C3 C1 C4 C7 C4 C3 C2 CODDEP D5 D6 D1 D5 D5 D6 D6 D3 D5 D4

51

NOMFUN (FUNCIONARIO)

NOMFUN Renato da Silva Carlos Pereira Pedro Srgio Doto Antnio Machado Larissa Silva Rejane da Cunha Marcos Vinicios da Penha Cludia de Souza Joo Alves Marcos Coimbra

E-02) Realizar a projeo da coluna DESFUN e SEXFUN da tabela FUNCIONARIO. Expresso: resolvendo:NUMFUN 101 104 134 121 195 139 123 148 115 22 NOMFUN Renato da Silva Carlos Pereira Pedro Srgio Doto Antnio Machado Larissa Silva Rejane da Cunha Marcos Vinicios da Penha Cludia de Souza Joo Alves Marcos Coimbra DATADM 10/08/2003 02/03/2004 23/05/2003 01/12/2001 15/01/2007 12/01/2005 29/06/2003 06/01/2008 15/10/2003 10/02/2000 SEXFUN M M M M F F M F M M CODCAR C3 C4 C5 C3 C1 C4 C7 C4 C3 C2 CODDEP D5 D6 D1 D5 D5 D6 D6 D3 D5 D4

NOMFUN,SEXFUN(FUNCIONARIO)

NOMFUN,SEXFUN (FUNCIONARIO)

NOMFUN Renato da Silva Carlos Pereira Pedro Srgio Doto Antnio Machado Larissa Silva Rejane da Cunha

SEXFUN M M M M F F

52

Marcos Vinicios da Penha Cludia de Souza Joo Alves Marcos Coimbra

M F M M

Com base nos exemplos apresentados percebe-se que a operao de projeo gera apenas uma nova viso da tabela fornecida como entrada, mostrando somente as colunas desejadas. muito importante ressaltar que as colunas informadas como argumentos da operao de projeo devem existir na tabela fornecida como entrada. Em muitos casos faz-se necessria, alm da projeo de somente algumas colunas de uma tabela, a recuperao de somente um nmero limitado de ocorrncias(linhas) da tabela de entrada. Por exemplo se quisermos recuperar somente os funcionrios do departamento D6. Para isso utiliza-se a operao de seleo, apresentada a seguir.

6.2.OPERAO DE SELEO(UNRIA)A operao representada pelo smbolo

(letra SIGMA do alfabeto grego).

uma operao usada para construir um subconjunto horizontal de uma tabela(ou relao), cujas linhas satisfaam uma determinada predicado ou condio. Em outras palavras, esta operao trabalha sobre uma tabela de entrada e com base em uma condio(chamado de predicado) retorna uma tabela semelhante em termos de estrutura mas apenas com as ocorrncias(linhas) que atendam a condio estabelecida. A tabela retornada um subconjunto da tabela fornecida como entrada. Sua sintaxe :

NOME TABELA = Conjunto de Entrada para a operao PREDICADO = Predicado da operao(condio para a operao)

predicado(NOME TABELA)

A operao de seleo tambm uma operao de filtragem, mas neste caso so filtradas as linhas e no as colunas da tabela de entrada. A operao de seleo tambm uma operao unria. Exemplos de aplicao da operao de seleo:

53

E-03) Selecionar/exibir/mostrar os funcionrios que trabalham no departamento D6(Coluna CODDEP) da tabela FUNCIONARIO. Expresso:

CODDEP=D6(FUNCIONARIO)

resolvendo ...NUMFUN 101 104 134 121 195 139 123 148 115 22 NOMFUN Renato da Silva Carlos Pereira Pedro Srgio Doto Antnio Machado Larissa Silva Rejane da Cunha Marcos Vinicios da Penha Cludia de Souza Joo Alves Marcos Coimbra DATADM 10/08/2003 02/03/2004 23/05/2003 01/12/2001 15/01/2007 12/01/2005 29/06/2003 06/01/2008 15/10/2003 10/02/2000 SEXFUN M M M M F F M F M M CODCAR C3 C4 C5 C3 C1 C4 C7 C4 C3 C2 CODDEP D5 D6 D1 D5 D5 D6 D6 D3 D5 D4

NUMFUN 104 139 123 NOMFUN Carlos Pereira Rejane da Cunha Marcos Vinicios da Penha

CODDEP=D6(FUNCIONARIO)

DATADM 02/03/2004 12/01/2005 29/06/2003

SEXFUN M F M

CODCAR C4 C4 C7

CODDEP D6 D6 D6

Obs.: Neste primeiro exemplo podemos observar que em termos de colunas a estrutura aps a aplicao da operao de seleo permanece a mesma. Somente as linhas que atendem o predicado informado como argumento so retornadas. E-04) Projetar a coluna NOMFUN, DATADM da tabela FUNCIONARIO somente dos funcionrios que so do departamento D6. Expresso:

NOMFUN, DATADM(

CODDEP=D6(FUNCIONARIO))

Neste segundo exemplo queremos retornar somente os funcionrios do departamento D6 e projetar(exibir) somente as colunas NOMFUN e DATADM. Este caso j apresenta uma regra importante que deve ser respeitada quando operadores relacionais tiverem que ser aninhados. Para podermos projetar(exibir) somente as colunas desejadas de uma determinada tabela

54

devemos primeiro realizar a operao de seleo. Este um caso onde pode-se mostrar claramente como se d a soluo de cada operao bem como porque a lgebra relacional considerada uma linguagem formal. Ento vamos resolver este exemplo: Funcionrios Tabela OriginalNUMFUN 101 104 134 121 195 139 123 148 115 22 NOMFUN Renato da Silva Carlos Pereira Pedro Srgio Doto Antnio Machado Larissa Silva Rejane da Cunha Marcos Vinicios da Penha Cludia de Souza Joo Alves Marcos Coimbra DATADM 10/08/2003 02/03/2004 23/05/2003 01/12/2001 15/01/2007 12/01/2005 29/06/2003 06/01/2008 15/10/2003 10/02/2000 SEXFUN M M M M F F M F M M CODCAR C3 C4 C5 C3 C1 C4 C7 C4 C3 C2 CODDEP D5 D6 D1 D5 D5 D6 D6 D3 D5 D4

Aplicando-se a operao de seleo para os funcionrios do departamento D6, temos como resultado a tabela abaixo(tabela intermediria): Tabela IntermediriaNUMFUN 104 139 123 NOMFUN Carlos Pereira Rejane da Cunha Marcos Vinicios da Penha DATADM 02/03/2004 12/01/2005 29/06/2003 SEXFUN M F M CODCAR C4 C4 C7 CODDEP D6 D6 D6

A tabela intermediria resultante da operao de seleo agora servir de entrada para a operao de projeo e o resultado : Tabela FinalNOMFUN Carlos Pereira Rejane da Cunha Marcos Vinicios da Penha DATADM 02/03/2004 12/01/2005 29/06/2003

Agora sim atingimos nosso objetivo, a tabela final representa o resultado da aplicao da nossa operao de seleo e de nossa operao de projeo. Pode surgir a dvida de porque por exemplo a coluna CODDEP da tabela FUNCIONARIO no apareceu em nossa tabela final. importante lembrar que somente as colunas fornecidas como argumentos para a operao de projeo sero exibidas ao final.

55

A formao de um predicado(condio) para a operao de seleo pode se utilizar ainda dos operadores booleanos(lgicos): AND ou ^, OR ou e NOT. Atravs destes podemos conectar vrias expresses a serem testadas em nossa seleo, formando um nico predicado. Alm disso ainda podemos utilizar os operadores de comparao apresentados a seguir:Operador de Comparao = > < >= 100(FUNCIONARIO)

resolvendo ...NUMFUN 101 104 134 121 195 139 123 148 115 22 NOMFUN Renato da Silva Carlos Pereira Pedro Srgio Doto Antnio Machado Larissa Silva Rejane da Cunha Marcos Vinicios da Penha Cludia de Souza Joo Alves Marcos Coimbra DATADM 10/08/2003 02/03/2004 23/05/2003 01/12/2001 15/01/2007 12/01/2005 29/06/2003 06/01/2008 15/10/2003 10/02/2000 SEXFUN M M M M F F M F M M CODCAR C3 C4 C5 C3 C1 C4 C7 C4 C3 C2 CODDEP D5 D6 D1 D5 D5 D6 D6 D3 D5 D4

NUMFUN 139

CODDEP = D6 ^ SEXFUN = F ^ NUMFUN > 100(FUNCIONARIO)

NOMFUN Rejane da Cunha

DATADM 12/01/2005

SEXFUN F

CODCAR C4

CODDEP D6

56

Para avanarmos mais em nosso estudo imaginemos uma situao onde queiramos selecionar somente os funcionrios do departamento D6 da tabela FUNCIONARIO, mas alm de exibir as colunas NOMFUN e DATADM queremos tambm exibir a descrio DESDEP do departamento da tabela DEPARTAMENTO. Neste caso j temos mais de uma tabela em questo e quem pode nos ajudar a conseguir alcanar o resultado esperado a operao chamada de produto cartesiano, descrita a seguir.

6.3.PRODUTO CARTESIANO(BINRIA)A operao representada pelo smbolo

X.

O produto cartesiano de duas tabelas(relaes) A e B o conjunto de todas as linhas t originadas da concatenao das linhas(tuplas) a pertencentes a A e das linhas b pertencentes a B. A operao de produto cartesiano considerada binria, por ser aplicada sobre duas tabelas e o resultado de sua aplicao uma terceira tabela com a combinao de todos os elementos de ambas as tabelas que serviram de entrada. Um exemplo para explicar isso : tendo-se uma tabela A, com 3 colunas e 6 linhas, e uma tabela B, com 4 colunas e 5 linhas tem-se aps a aplicao do produto cartesiano:

3 colunas(tabela A) + 4 colunas(tabela B) = 7 colunas(nova tabela) 6 linhas(tabela A) X 5 linhas(tabela B) = 30 linhas(nova tabela)

Em termos prticos o que acontece na aplicao desta operao a multiplicao de cada elemento(linhas) da primeira tabela por todos os elementos da segunda tabela. No h um uso prtico para este tipo de operao, dificilmente teremos interesse em saber todas as combinaes possveis entre duas tabelas, alm disso esta uma operao bastante pesada. Imagine uma tabela com 30 colunas e 3000 linhas multiplicada por uma tabela com 23 colunas e 25000 linhas, esta operao exigiria uma grande quantidade de recurso do SGBD para poder ser processada. Mas apesar disso esta uma das formas mais bsicas que permite realizar a juno de tabelas. Sua sintaxe : TABELA A

X TABELA B

57

Vejamos exemplos da aplicao do produto cartesiano. E-06) Aplicando o produto cartesiano entre as tabelas FUNCIONARIO e CARGO. Expresso: FUNCIONARIO resolvendo ...NUMFUN 101 101 101 101 101 101 104 104 104 104 104 104 134 134 134 134 134 134 NOMFUN Renato da Silva Renato da Silva Renato da Silva Renato da Silva Renato da Silva Renato da Silva Carlos Pereira Carlos Pereira Carlos Pereira Carlos Pereira Carlos Pereira Carlos Pereira Pedro Srgio Doto Pedro Srgio Doto Pedro Srgio Doto Pedro Srgio Doto Pedro Srgio Doto Pedro Srgio Doto DATADM 10/08/2003 10/08/2003 10/08/2003 10/08/2003 10/08/2003 10/08/2003 02/03/2004 02/03/2004 02/03/2004 02/03/2004 02/03/2004 02/03/2004 23/05/2003 23/05/2003 23/05/2003 23/05/2003 23/05/2003 23/05/2003 SEXFUN M M M M M M M M M M M M M M M M M M CODCAR C3 C3 C3 C3 C3 C3 C4 C4 C4 C4 C4 C4 C5 C5 C5 C5 C5 C5 CODDEP D5 D5 D5 D5 D5 D5 D6 D6 D6 D6 D6 D6 D1 D1 D1 D1 D1 D1 CODCAR C1 C3 C7 C2 C5 C4 C1 C3 C7 C2 C5 C4 C1 C3 C7 C2 C5 C4 DESCAR Aux. Vendas Vendedor Diretor Vigia Gerente Aux. Cobrana Aux. Vendas Vendedor Diretor Vigia Gerente Aux. Cobrana Aux. Vendas Vendedor Diretor Vigia Gerente Aux. Cobrana VLRSAL 350,00 800,00 2500,00 400,00 1000,00 250,00 350,00 800,00 2500,00 400,00 1000,00 250,00 350,00 800,00 2500,00 400,00 1000,00 250,00

X CARGO

...

...

...

...

...

...

...

...

...

Acima apresentado um resultado parcial da aplicao da operao de produto cartesiano. Agora conhecendo um pouco da operao produto cartesiano vamos tentar resolver a seguinte expresso algbrica: Expresso:

NOMFUN, DATADM(

DESCAR=Vigia(FUNCIONARIO

X CARGO))

Nesta expresso acima queremos recuperar o nome e a data de admisso dos funcionrios cujo cargo Vigia. Para resolvermos esta expresso aplicamos inicialmente a operao de produto cartesiano, depois a operao de seleo e finalmente a operao de projeo. Neste exemplo percebemos a integrao destas operaes da lgebra relacional.

58

Vamos ver o resultado parcial da operao:NUMFUN 101 104 134 121 195 139 123 148 115 22 NOMFUN Renato da Silva Carlos Pereira Pedro Srgio Doto Antnio Machado Larissa Silva Rejane da Cunha Marcos Vinicios da Penha Cludia de Souza Joo Alves Marcos Coimbra DATADM 10/08/2003 02/03/2004 23/05/2003 01/12/2001 15/01/2007 12/01/2005 29/06/2003 06/01/2008 15/10/2003 10/02/2000 SEXFUN M M M M F F M F M M CODCAR C3 C4 C5 C3 C1 C4 C7 C4 C3 C2 CODDEP D5 D6 D1 D5 D5 D6 D6 D3 D5 D4 CODCAR C2 C2 C2 C2 C2 C2 C2 C2 C2 C2 DESCAR Vigia Vigia Vigia Vigia Vigia Vigia Vigia Vigia Vigia Vigia VLRSAL 400,00 400,00 400,00 400,00 400,00 400,00 400,00 400,00 400,00 400,00

=NOMFUN Renato da Silva Carlos Pereira Pedro Srgio Doto Antnio Machado Larissa Silva Rejane da Cunha Marcos Vinicios da Penha Cludia de Souza Joo Alves Marcos Coimbra DATADM 10/08/2003 02/03/2004 23/05/2003 01/12/2001 15/01/2007 12/01/2005 29/06/2003 06/01/2008 15/10/2003 10/02/2000

Bom, vamos ver se atingimos nosso resultado final esperado. Observando-se o que foi retornado, acredito que no, porque todos os funcionrios foram retornados como tendo o cargo de vigia e sabemos que isso no verdade, portanto existe algum erro em nossa expresso. Para conseguirmos atender a ideia inicial de nossa expresso precisamos especificar explicitamente como um funcionrio est ligado ao seu cargo, ou seja, qual cargo efetivamente ele possui. Ento para resolvermos precisamos fazer a ligao entre as duas tabelas de uma maneira que se possa identificar exatamente qual o cargo de um determinado funcionrio, e para fazer isso vamos utilizar o conceito de Chave Estrangeira. Observando-se as tabelas percebe-se que possvel ainda se cruzar as colunas CODCAR da tabela FUNCIONARIO e CODCAR da tabela CARGO. Neste caso teremos dois predicados ou condies que devero ser atendidas, e somente os elementos das tabelas que os atenderem devero ser retornados. Para resolver este caso poderemos utilizar o operador booleano AND ou ^.

59

Expresso:

NOMFUN,

DATADM(

DESCAR=Vigia

^

FUNCIONARIO.CODCAR

=

CARGO.CODCAR(FUNCIONARIO

X CARGO))Tabela resultadoNOMFUN Marcos Coimbra DATADM 10/02/2000

Agora sim, aplicando-se esta expresso algbrica relacional obteremos o resultado que desejamos.

A prxima operao que vamos conhecer a operao de renomear.

6.4.OPERAO DE RENOMEAREsta operao representada pelo smbolo

(letra RHO do alfabeto grego).

A operao de renomear utilizada em casos onde necessitamos renomear uma tabela, caso esta tabela aparea mais de uma vez em uma consulta. Podemos utiliz-la tambm para identificar resultados de expresses em lgebra que ainda no possuem nome definido. Sua sintaxe :

(TABELA)

Vamos a um exemplo com esta operao: Quais so os funcionrios que trabalham no mesmo departamento da 'Larissa Silva'. Expresso na sua forma geral:

FUNCIONARIO2.NOMFUN, FUNCIONARIO2.CODDEP

(

FUNCIONARIO2.CODDEP =

FUNCIONARIO.CODDEP((

NOMFUN = 'Larissa Silva'(FUNCIONARIO))

X

(

FUNCIONARIO2(FUNCIONARIO)))

Vamos resolver a primeira situao que temos: qual afinal o departamento da

60

Larissa? Expresso:

CODDEP(

NOMFUN = 'Larissa Silva'(FUNCIONARIO)

resultando em ...CODDEP D5

Ento no relacionamento com a tabela FUNCIONARIO2 sero retornados somente os funcionrios do departamento 'D5'. Por fim precisamos apenas projetar as colunas do funcionrio que desejamos apresentar na tela. Que seria? ...

NOMFUN Renato da Silva Antnio Machado Larissa Silva Joo Alves

CODDEP D5 D5 D5 D5

Vamos agora conhecer a operao binria de unio.

6.5.OPERAO DE UNIO(BINRIA)Esta operao representada pelo smbolo

U

.

A unio de duas tabelas(relaes) A e B o conjunto de todas as linhas(tuplas) pertencentes a A mais as linhas(tuplas) pertencentes a relao B. A operao de unio tambm uma operao binria, pois precisa de duas tabelas que sero unidas e o resultado produzido ser uma tabela com o mesmo nmero de colunas das tabelas de entrada. No resultado da unio de duas tabelas os registros repetidos so retornados apenas uma nica vez. Outro ponto importante que deve ser observado que a unio de duas tabelas s possvel se ambas possurem o mesmo nmero de colunas e seus domnios(tipos) devem ser equivalentes, ou seja, as tabelas devem ser compatveis.

61

Sua sintaxe : TABELA A

U

TABELA B

Agora utilizando o segundo modelo de dados vamos tentar resolver o seguinte problema: recuperar o nome de todos os usurios que possuem emprstimo OU reserva de livros. Bem para reduzirmos nosso trabalho vamos recuperar os dados para o livro 1005(CODLIV = 1005). Vamos resolver a primeira situao que temos: Expresso:

NOMUSU(

USUARIO.CODUSU(USUARIO

X EMPRESTIMO))ENDUSU Rua Hbc Rua Rtf CEPUSU 546 809 CODEMP CODLIV CODUSU 20001 20007 1005 1005 04 06 DATEMP 12/01/2008 14/01/2008

CODLIV

=

1005

^

EMPRESTIMO.CODUSU

=

Neste caso vamos recuperar todos os usurios que fizeram emprstimo do livro 1005. Aplicando a operao de seleo:CODUSU 04 06 NOMUSU Aristides da Cunha Jonny English

Devido a projeo aplicada nosso resultado final :NOMUSU Aristides da Cunha Jonny English

Agora vamos a segunda parte, saber quem j fez reservas do livro 1005(CODLIV = 1005): Expresso:

NOMUSU(

USUARIO.CODUSU(USUARIO

X RESERVA))

CODLIV

=

1005

^

RESERVA.CODUSU

=

Neste caso vamos recuperar todos os usurios que fizeram reserva do livro 1005. Aplicando a operao de seleo:CODUSU 01 04 NOMUSU Pedro da Silva Aristides da Cunha ENDUSU Rua Ab Rua Hbc CEPUSU 890 546 CODRES CODLIV CODUSU 30007 30010 1005 1005 01 04 DATRES 03/02/2008 07/02/2008

Devido a projeo aplicada nosso resultado final :NOMUSU Pedro da Silva Aristides da Cunha

62

Agora j sabemos quem j realizou emprstimos ou j realizou reservas. Percebam que o objetivo de realizar as operaes separadamente gerar duas tabelas compatveis que serviro de entrada para a operao de unio. Expresso:NOMUSU(

CODLIV = 1005 ^ EMPRESTIMO.CODUSU = USUARIO.CODUSU(USUARIO

X

EMPRESTIMO))

NOMUSU(

UCODLIV = 1005 ^ RESERVA.CODUSU = USUARIO.CODUSU(USUARIO

X RESERVA))

Resultados parciais de nossas expresses apurados anteriormente: 1)NOMUSU Aristides da Cunha Jonny English

2)NOMUSU Pedro da Silva Aristides da Cunha

Aplicando-se a operao de unio obteremos o seguinte resultado:NOMUSU Aristides da Cunha Jonny English Pedro da Silva