Você está na página 1de 59

BANCO

DE

DADOS

Apostila 1

2005
Prof. Paulo Roberto Rodrigues de Souza

BANCO

DE

DADOS

INTRODUO
Esta apostila tem o objetivo de nos orientar durante este perodo em nossas aulas de
Banco de Dados, no tem a pretenso de ser a nica fonte de informao para nosso xito no
curso. A inteno de elaborar este material de possuirmos um referencial e facilitar o estudo
do aluno nesta disciplina. Ela engloba materiais de livros diversos, apostilas, pesquisas na
Internet e de conhecimento prprio em minha experincia no uso e construo de banco de
dados.
Iremos ver durante o curso, entre outros tpicos, uma noo geral sobre a construo de
sistemas de banco de dados, construo de projetos lgicos de bancos de dados, modelos para a
construo de projetos fsicos de banco de dados, controle de dependncia de dados, consultas,
redundncia entre vrios outros.
Veremos em nossas aulas prticas o processo de criao de tabelas, relacionamentos,
views, stored procedures entre outros recursos importantes.
1

- Conceitos Gerais

A tecnologia aplicada aos mtodos de armazenamento de informaes vem crescendo e


gerando um impacto cada vez maior no uso de computadores, em qualquer rea em que os
mesmos podem ser aplicados.
Um banco de dados pode ser definido como um conjunto de dados devidamente
relacionados. Por dados podemos compreender como fatos conhecidos que podem ser
armazenados e que possuem um significado implcito. Porm, o significado do termo banco de
dados pode significar algo mais que a definio acima. Um banco de dados possui as seguintes
propriedades:
um banco de dados uma coleo lgica coerente de dados com um significado
inerente;
um banco de dados projetado, construdo e populado com dados para um propsito
especfico; um banco de dados possui um conjunto pr definido de usurios e
aplicaes;
um banco de dados representa algum aspecto do mundo real, o qual chamado de
mini-mundo ou mundo real; qualquer alterao efetuada no mini-mundo
automaticamente refletida no banco de dados.
Um banco de dados pode ser criado e mantido por um conjunto de aplicaes
desenvolvidas especialmente para esta tarefa ou por um Sistema Gerenciador de Banco de
Dados (SGBD). Um SGBD permite aos usurios criarem e manipularem bancos de dados de
propsito geral. O conjunto formado por um banco de dados mais as aplicaes que manipulam
o mesmo chamado de Sistema de Banco de Dados.

Prof. Paulo Roberto R. Souza

Pg. 2 / 59

BANCO

DE

DADOS

Outra Definio
Um BD tambm pode ser definido como sendo:
"Uma coleo de dados operacionais inter-relacionados. Estes dados so armazenados
de forma independente dos programas que os utilizam, servindo assim a mltiplas aplicaes
de uma organizao."
Algumas partes desta definio so fundamentais para a compreenso do conceito de BD:

Coleo: agrupamento com repetio;

Operacionais: vitais; estratgicos para a tomada de decises; permanentes;

Inter-relacionados: um BD mantm um agrupamento de entidades (fatos da realidade


em questo) e de relacionamentos entre estas entidades;

Independentes dos programas: dados so mantidos em um meio de armazenamento


destinado aos dados da organizao e no necessariamente no espao local do programa
de aplicao;

Serve mltiplas aplicaes: dados em um BD podem ser compartilhados por vrias


aplicaes da organizao. Cada uma delas define exatamente os dados que deseja
manipular.

Abordagem Banco de Dados X Abordagem


Processamento Tradicional de Arquivos
- Auto Informao
Uma caracterstica importante da abordagem Banco de Dados que o SGBD mantm no
somente os dados mas tambm a forma como os mesmos so armazenados, contendo uma
descrio completa do banco de dados. Estas informaes so armazenadas no catlogo do
SGBD, o qual contm informaes como a estrutura de cada arquivo, o tipo e o formato de
armazenamento de cada tipo de dado, restries, etc. A informao armazenada no catlogo
chamada de Meta Dados. No processamento tradicional de arquivos, o programa que ir
manipular os dados deve conter este tipo de informao, ficando limitado a manipular as
informaes que o mesmo conhece. Utilizando a abordagem banco de dados, a aplicao pode
manipular diversas bases de dados diferentes.

- Separao entre Programas e Dados


No processamento tradicional de arquivos, a estrutura dos dados est incorporada ao
programa de acesso. Desta forma, qualquer alterao na estrutura de arquivos implica na
alterao no cdigo fonte de todos os programas. J na abordagem banco de dados, a estrutura
alterada apenas no catlogo, no alterando os programas.
A diferena principal de um banco de dados evoludo de uma estrutura de
armazenamento de dados tradicional ou menos evoluda o fato destas estruturas estarem bem
identificadas em um banco de dados. Existem no mercado algumas bases de dados que,
embora possuam estrutura de armazenamento de dados, no possuem estruturas e ferramentas
exigveis de um banco de dados evoludo e completo. Poderamos citar: Stored Procedures,
Prof. Paulo Roberto R. Souza

Pg. 3 / 59

BANCO

DE

DADOS

Dados separados de aplicaes (consultas, formulrios), Triggers, Views, controle de acesso


evoludo, dentre outros recursos.
Podemos verificar a caracterstica de separao de dados e aplicaes bem detalhada
abaixo:

TELAS

Sistema de Banco
de Dados

Programas de Aplicao/Consulta

Software para processar manipulao

SGBD

CONEXO
Software de Acesso aos Dados

DADOS
Meta Dados

Dados

Um ambiente de Sistema de Banco de Dados

- Abstrao de Dados
O SGBD deve fornecer ao usurio uma representao conceitual dos dados, sem
fornecer muitos detalhes de como as informaes so armazenadas. Um modelo de dados
uma abstrao de dados que utileizada para fornecer esta representao conceitual utilizando
conceitos lgicos como objetos, suas propriedades e seus relacionamentos. A estrutura
detalhada e a organizao de cada arquivo so descritas no catlogo.
Descrevendo de forma bem prtica, abstrao de dados nada mais do que conseguir se
representar e armazenar dados de uma situao real em um banco de dados. Por exemplo,
como conseguir se montar um banco de dados de um controle de estoques de uma loja. A
abstrao a nossa capacidade de enxergar as necessidades deste banco.

- Mltiplas Vises de Dados


Como um conjunto de informaes pode ser utilizada por um conjunto diferenciado de
usurios, importante que estes usurios possam ter vises diferentes da base de dados. Uma
viso definida como um subconjunto de uma base de dados, formando deste modo, um
conjunto virtual de informaes. Tambm de forma prtica, uma viso ou views como so
Prof. Paulo Roberto R. Souza

Pg. 4 / 59

BANCO

DE

DADOS

chamadas em bancos evoludos so consultas especializadas de parte dos dados de um banco de


dados.

Usurios
Para um grande banco de dados, existe um grande nmero de pessoas envolvidas, desde
o projeto, uso at manuteno.

- Administrador de Banco de Dados (DBA)


Em um ambiente de banco de dados, o recurso primrio o banco de dados por si s e o
recurso secundrio o SGBD e os softwares relacionados. A administrao destes recursos cabe
ao Administrador de Banco de Dados, o qual responsvel pela autorizao de acesso ao banco
de dados e pela coordenao e monitorao de seu uso.

- Projetista de Banco de Dados


O Projetista de Banco de Dados responsvel pela identificao dos dados que devem
ser armazenados no banco de dados, escolhendo a estrutura correta para representar e armazenar
dados. Muitas vezes, os projetistas de banco de dados atuam como staff do DBA, assumindo
outras responsabilidades aps a construo do banco de dados. funo do projetista tambm
avaliar as necessidades de cada grupo de usurios para definir as vises que sero necessrias,
integrando-as, fazendo com que o banco de dados seja capaz de atender a todas as necessidades
dos usurios.

- Usurios Finais
Existem basicamente trs categorias de usurios finais que so os usurios finais do
banco de dados, fazendo consultas, atualizaes e gerando documentos:
usurios casuais: acessam o banco de dados casualmente, mas que podem necessitar de
diferentes informaes a cada acesso; utilizam sofisticadas linguagens de consulta
para especificar suas necessidades;
usurios novatos ou paramtricos: utilizam pores pr-definidas do banco de dados,
utilizando consultas preestabelecidas que j foram exaustivamente testadas;
usurios sofisticados: so usurios que esto familiarizados com o SGBD e realizam
consultas complexas.

- Analistas de Sistemas e Programadores de Aplicaes


Os analistas determinam os requisitos dos usurios finais e desenvolvem especificaes
para transaes que atendam estes requisitos, e os programadores implementam estas
especificaes como programas, testando, depurando, documentando e dando manuteno no
mesmo. importante que, tanto analistas quanto programadores, estejam a par dos recursos
oferecidos pelo SGBD.

Vantagens e desvantagens do uso de um


SGBD
Prof. Paulo Roberto R. Souza

Pg. 5 / 59

BANCO

DE

DADOS

- Controle de Redundncia
No processamento tradicional de arquivos, cada grupo de usurios deve manter seu
prprio conjunto de arquivos e dados. Desta forma, acaba ocorrendo redundncias que
prejudicam o sistema com problemas como:
toda vez que for necessrio atualizar um arquivo de um grupo, ento todos os grupos
devem ser atualizados para manter a integridade dos dados no ambiente como um
todo;
a redundncia desnecessria de dados levam ao armazenamento excessivo de
informaes, ocupando espao que poderia estar sendo utilizado com outras
informaes.
O Controle de redundncia o ato de se evitar repeties de dados de forma
desnecessria em um banco de dados. no repetirmos informaes desnecessrias,
porm, sem deixarmos de armazenar o que importante e crucial para o funcionamento
do banco e a resoluo do problema a ser solucionado.

- Compartilhamento de Dados
Um SGBD multi-usurio deve permitir que mltiplos usurios acessem o banco de dados
ao mesmo tempo. Este fator essencial para que mltiplas aplicaes integradas possam
acessar o banco.
O SGBD multi-usurio deve manter o controle de concorrncia para assegurar que o
resultado de atualizaes sejam corretos. Um banco de dados multi-usurios deve fornecer
recursos para a construo de mltiplas vises.

- Restrio a Acesso no Autorizado


Um SGBD deve fornece um subsistema de autorizao e segurana, o qual utilizado
pelo DBA para criar contas e especificar as restries destas contas; o controle de restries
se aplica tanto ao acesso aos dados quanto ao uso de softwares inerentes ao SGBD. A restrio
de acesso no autorizado o ato de se limitar o acesso dos usurios ao banco ou a parte dele.
Bancos de dados evoludos devem conter recursos para se efetuar estes controles de forma fcil,
prtica e segura.

- Representao de Relacionamentos Complexos entre Dados


Um banco de dados pode incluir uma variedade de dados que esto interrelacionados de
vrias formas. Um SGBD deve fornecer recursos para se representar uma grande variedade de
relacionamentos entre os dados, bem como, recuperar e atualizar os dados de maneira prtica e
eficiente. Os relacionamentos entre dados atualmente esto mais simples de serem efetuados,
alm dos relacionamentos entre tabelas, devemos nos atentar e preocupar com relacionamentos
entre bancos diferentes.

- Tolerncia a Falhas
Um SGBD deve fornecer recursos para recuperao de falhas tanto de software quanto de
hardware. Tolerncia a falhas o recurso que o SGBD deve ter no caso de uma queda de
energia inesperada por exemplo.
Prof. Paulo Roberto R. Souza

Pg. 6 / 59

BANCO

DE

DADOS

- Quando no Utilizar um SGBD


Em raras situaes, o uso de um SGBD pode representar uma carga desnecessria aos
custos quando comparado abordagem processamento tradicional de arquivos como por
exemplo:
alto investimento inicial na compra de software e hardware adicionais;
sobrecarga na proviso de controle de segurana, controle de concorrncia, recuperao
e integrao de funes.
Problemas adicionais podem surgir caso os projetistas de banco de dados ou os
administradores de banco de dados no elaborem os projetos corretamente ou se as aplicaes
no so implementadas de forma apropriada. Se o DBA no administrar o banco de dados de
forma apropriada, tanto a segurana quanto a integridade dos sistemas podem ser
comprometidas. A sobrecarga causada pelo uso de um SGBD e a m administrao justificam a
utilizao da abordagem processamento tradicional de arquivos em casos como:
Quando no haver mltiplo acesso ao banco de dados ou a estrutura empresarial
muito pequena (SGDB).

Prof. Paulo Roberto R. Souza

Pg. 7 / 59

BANCO

DE

DADOS

2. Conceitos e Arquiteturas de um SGBD


Modelos de Dados
Uma das principais caractersticas da abordagem banco de dados, que a mesma fornece
alguns nveis de abstrao de dados omitindo ao usurio final, detalhes de como estes dados so
armazenados. Um modelo de dados um conjunto de conceitos que podem ser utilizados
para descrever a estrutura lgica e fsica de um banco de dados. Por estrutura podemos
compreender o tipo dos dados, os relacionamentos e as restries que podem recair sobre os
dados. Os modelos possibilitam aos administradores e projetistas de bancos de dados a
entenderem melhor o banco de dados.
Os modelos de dados podem ser basicamente de dois tipos:
Modelo de dados conceitual (alto nvel) Fornece uma viso mais prxima do modo
como os usurios visualizam os dados realmente;
Modelo Lgico (baixo nvel) Fornece uma viso mais detalhada do modo como os
dados esto realmente armazenados no computador.

Esquemas
Em qualquer modelo de dados utilizado, importante distinguir a descrio do banco
de dados do banco de dados por si prprio. A descrio de um banco de dados chamada de
esquema de um banco de dados e especificada durante o projeto do banco de dados.
Geralmente, poucas mudanas ocorrem no esquema do banco de dados.

A Arquitetura Trs Esquemas


A principal meta da arquitetura trs esquemas separar as aplicaes do usurio do
banco de dados fsico. Os esquemas podem ser definidos como:
nvel interno: ou esquema interno, o qual descreve a estrutura de armazenamento
fsico do banco de dados; utiliza um modelo de dados e descreve detalhadamente os
dados armazenados e os caminhos de acesso ao banco de dados;
nvel conceitual: ou esquema conceitual, o qual descreve a estrutura do banco de dados
como um todo; uma descrio global do banco de dados, que no fornece
detalhes do modo como os dados esto fisicamente armazenados;
nvel externo: ou esquema de viso, o qual descreve as vises do banco de dados
para um grupo de usurios; cada viso descreve quais pores do banco de dados
um grupo de usurios ter acesso. O esquema de nvel externo como se fossem
consultas especializadas de acordo com o usurio ou seu grupo.

Prof. Paulo Roberto R. Souza

Pg. 8 / 59

BANCO

DE

DADOS

Independncia de Dados
A independncia de dados pode ser definida como a capacidade de se alterar um
programa qualquer sem ter que se alterar o banco. Um exemplo bastante claro desta
independncia que um mesmo banco pode servir mltiplas aplicaes.
Um sistema de notas da secretaria de uma Universidade, por exemplo, pode ter o mesmo
banco para acesso via web e para alteraes na prpria secretaria da Universidade. A
independncia dos dados seria alterarmos o programa web, sem alterarmos o banco.

As Linguagens para Manipulao de Dados


Para a definio dos esquemas conceitual e interno pode-se utilizar uma linguagem
chamada DDL (Data Definition Language - Linguagem de Definio de Dados). O SGBD
possui um compilador DDL que permite a execuo das declaraes para identificar as
descries dos esquemas e para armazen-las no catlogo do SGBD. A DDL utilizada em
SGBDs onde a separao entre os nveis interno e conceitual no muito clara.
Em um SGBD em que a separao entre os nveis conceitual e interno so bem claras,
utilizado uma outra linguagem, a SDL (Storage Definition Language - Linguagem de Definio
de Armazenamento) para a especificao do esquema interno. A especificao do esquema
conceitual fica por conta da DDL.
Em um SGBD que utiliza a arquitetura trs esquemas, necessria a utilizao de mais
uma linguagem para a definio de vises, a VDL (Vision Definition Language - Linguagem de
Definio de Vises).
Uma vez que o esquema esteja compilado e o banco de dados esteja populado, usa-se
uma linguagem para fazer a manipulao dos dados, a DML (Data Manipulation Language Linguagem de Manipulao de Dados).
Quando se fala em linguagem SQL (Structure Query Language), estamos falando em
comandos que compem a DDL e a DML preferencialmente. Resumindo, DDL a linguagem
para Definio dos dados, ou seja, atravs destes comandos possvel se criar a estrutura do
banco (Create database, create table, etc). DML a linguagem para manipulao dos dados ou
seja: Insert, update, delete, select, etc...

Os Mdulos Componentes de um SGBD


Um SGBD um sistema complexo, formado por um conjunto muito grande de mdulos.
A figura abaixo mostra um esquema da estrutura de funcionamento de um SGBD.

Classificao dos SGBDs


O principal critrio para se classificar um SGBD o modelo de dados no qual baseado.
A grande maioria dos SGBDs contemporneos so baseados no modelo relacional, alguns em
modelos conceituais e alguns em modelos orientados a objetos. Outras classificaes so:
usurios: um SGBD pode ser mono-usurio, comumente utilizado em computadores
pessoais ou multi-usurios, utilizado em estaes de trabalho, mini-computadores e
mquinas de grande porte;
Prof. Paulo Roberto R. Souza

Pg. 9 / 59

BANCO

DE

DADOS

localizao: um SGBD pode ser localizado ou distribudo; se ele for localizado, ento
todos os dados estaro em uma mquina (ou em um nico disco) ou distribudo, onde
os dados estaro distribudos por diversas mquinas (ou diversos discos);
ambiente: ambiente homogneo o ambiente composto por um nico SGBD e um
ambiente heterogneo o ambiente compostos por diferentes SGBDs. Podemos ter
em um nico sistema, um banco Oracle se comunicando com outro banco MySQL,
por exemplo.

Prof. Paulo Roberto R. Souza

Pg. 10 / 59

BANCO

DE

DADOS

Usurios
usurios
simples

programadores de
aplicaes

usurios
ocasionais

programas de
aplicao

chamadas de
rotina

consultas

pr-compilador da
linguagem de
manipulao de
dados

cdigo objeto
dos programas
de aplicao

processador de
consultas

gerenciador do
banco de
dados

DBA

esquema de
banco de dados

compilador da
linguagem de
definio de dados

SGBD

gerenciador de
arquivos

arquivo de
dados
dicionrio de
dados
Memria de
Disco

Estrutura de um Sistema Gerenciador de Banco de Dados

Prof. Paulo Roberto R. Souza

Pg. 11 / 59

BANCO

DE

DADOS

3. Modelagem de Dados Utilizando o Modelo


Entidade Relacionamento (ER)
O modelo Entidade-Relacionamento um modelo de dados conceitual de alto nvel,
cujos conceitos foram projetados para estar o mais prximo possvel da viso que o usurio tem
dos dados, no se preocupando em representar como estes dados estaro realmente
armazenados. O modelo ER utilizado principalmente durante o processo de projeto de banco
de dados.
Montar um modelo correto e consistente talvez seja a tarefa mais difcil e importante em
no processo de construo de um banco de dados.

Modelo de Dados Conceitual de Alto Nvel


A figura abaixo faz uma descrio simplificada do processo de projeto de um banco de
dados.

Mini-Mundo

Anlise e Coleta de
Requisitos
Requisitos do Banco de
Dados
Projeto Conceitual
Esquema Conceitual
(Alto Nvel)
Mapeamento do
Modelo de Dados
Esquema Conceitual
(Modelo do SGBD)
Projeto Fsico

Catlogo do BD

Fases bsicas do Projeto de um Banco de Dados

Prof. Paulo Roberto R. Souza

Pg. 12 / 59

BANCO

DE

DADOS

O modelo de dados conceitual de alto nvel composto de vrias etapas como vimos na
figura anterior. Dentre elas, uma de vital importncia para elaborarmos um projeto e,
conseqentemente, um banco de dados eficaz a extrao de requisitos.
nesta etapa que conseguiremos descrever os requisitos, ou seja, as necessidades que o
cliente ou usurio necessita daquilo que se deseja armazenar no banco. Se o levantamento de
requisitos for falho, todo o modelo lgico, fsico e a implementao do banco poder ser
comprometida.
Dentre as etapas importantes na construo do banco temos o modelo lgico que composto de
algumas estruturas, dentre elas:

Entidades e Atributos
O objeto bsico tratado pelo modelo ER a entidade, que pode ser definida como um
objeto do mundo real, concreto ou abstrato e que possui existncia independente.
IMPORTANTE
Uma tabela que se cadastre clientes uma entidade. Um cadastro de produtos
outra entidade, uma entidade de alunos outra entidade. Tambm podemos chamar
entidade de tabela.
Cada entidade possui um conjunto particular de propriedades que a descreve chamado
atributos ou campos. Por exemplo, cdigo um campo, nome outro campo, endereo
tambm outro campo.
Os atributos que podem assumir apenas um determinado valor em uma determinada
instncia denominado atributo simplesmente valorado, enquanto que um atributo que pode
assumir diversos valores em uma mesma instncia denominado multi valorado.
Antigamente, em alguns bancos de dados, h a possibilidade de se obter uma propriedade
especfica. a profundidade. Por exemplo: Poderamos ter, em um mesmo campo, trs valores
diferentes. Exemplo: Tel[1] Tel[2] Tel[3]...
Atualmente, para esta implementao multi-valorada utilizamos uma entidade parte.
Por exemplo: Se um cliente possui diversos telefones, porm, alguns podem ter somente um.
Para no termos campos vazios, utilizamos uma tabela de clientes e outra de telefones
relacionada clientes para digitarmos os telefones. Na tabela telefones, utilizaramos o campo
CodCliente, TipoTel e NroTel. Com isso, implementaramos, de forma racional, o
conceito de multi-valorao.

Prof. Paulo Roberto R. Souza

Pg. 13 / 59

BANCO

DE

DADOS

Estrutura bsica de Banco de Dados,


Conjunto de Valores, Atributo Chave
Na verdade a estrutura bsica de um banco de dados a seguinte:
Um banco formado por um conjunto de entidades ou tabelas,
Uma tabela ou entidade formada por um conjunto de registros (Um cliente, Um
aluno, etc).
Um registro formado por um conjunto de atributos ou campos(Ex: cdigo, nome,
endereo, etc...)
Cada informao dessa um campo ou atributo.
Uma restrio muito importante em um registro o campo ou atributo chamado
atributo
chave e seus valores podem ser utilizados para identificar cada registro de
forma nica. Muitas vezes, uma chave pode ser formada pela composio de dois ou mais
atributos.
Quando a chave formada por mais de um atributo ou campo chamamos de
Chave Primria composta. Quando a chave formada somente por um campo (Ex: Cdigo)
chamamos de Chave Primria Simples.
Cada atributo simples de um registro est associado com um conjunto de valores
denominado domnio, o qual especifica o conjunto de valores que podem ser
designados para este determinado atributo para cada entidade. Ou seja, quais valores
podem assumir cada campo. No campo sexo por exemplo, s podemos aceitar F ou M,
ou seja F,M o domnio do atributo sexo.

Relacionamentos
Alm de conhecer detalhadamente os tipos entidade, muito importante conhecer
tambm os relacionamentos entre as entidades.
Um relacionamento, como o prprio nome diz, a relao que ocorre entre registros
de duas ou mais entidades(tabelas). Para que o relacionamento ocorra, deve haver
interesses envolvidos, ou seja, uma entidade deve se interessar pelas informaes da outra,
seus campos ou atributos devem ter o mesmo tipo e tamanho e devem ser afins, porm, no
necessariamente o mesmo nome.
A figura seguir mostra um exemplo entre dois tipos entidade (empregado e
departamento) e o relacionamento entre eles (trabalha para). Repare que para cada
relacionamento, participam apenas uma entidade de cada tipo entidade, porm, uma entidade
pode participar de mais do que um relacionamento.
Os relacionamentos existem para que as entidades possam compartilhar as informaes,
evitando-se que haja repetio de informaes sem necessidade. O nome de um cliente por
exemplo, s deve ocorrer uma nica vez. Se outras entidades necessitam das informaes dos
clientes devem se relacionar com a tabela Clientes. Os relacionamentos ocorrem normalmente
em atributos numricos de pequena largura, ou seja, devem ser campos pequenos. Campos dos
tipos texto no devem se relacionar, excetos em raros casos onde isso for necessrio.
Prof. Paulo Roberto R. Souza

Pg. 14 / 59

BANCO

DE

DADOS

Trabalha Para
Empregado

Departamento

e1
e2
e3
e4
e5
e6
e7

d1
d2
d3

Exemplo de um Relacionamento

Grau de um Relacionamento
O grau de um tipo relacionamento o nmero de tipos entidade que participam do tipo
relacionamento. No exemplo da figura acima, temos um relacionamento binrio. O grau de um
relacionamento ilimitado, porm, a partir do grau 3 (ternrio), a compreenso e a dificuldade
de se desenvolver a relao corretamente se tornam extremamente complexas.

Outras Caractersticas de um Relacionamento


- Relacionamentos com Atributos
Algumas vezes conveniente pensar em um relacionamento como um atributo.
Considere uma situao onde diversos mdicos possuem diversos pacientes e cada
paciente pode ter N mdicos. Portanto, no possvel armazenarmos o cdigo do mdico na
entidade paciente (j que ele possui n mdicos) e nem o cdigo do paciente em mdico (ele
possui n clientes). Caracteriza-se portanto um relacionamento de muitos para muitos (n para n).
Neste caso, necessrio criarmos o que chamamos Entidade Associativa ou Relacionamento
com atributos. Neste caso, teramos a entidade Consulta. Nesta entidade poderamos ter o
cdigo do mdico, o cdigo do paciente, data da consulta e observaes.

Prof. Paulo Roberto R. Souza

Pg. 15 / 59

BANCO
MDICOs

DE

DADOS

Consultas

PACIENTES

Um relacionamento recursivo um relacionamento entre entidades do mesmo tipo


entidade. Veja o exemplo da figura 6.

EMPREGADO

e1
e2
e3
Supervisiona

e4
e5
Supervisiona

Supervisionado

Um Relacionamento Recursivo
No exemplo, temos um relacionamento entre o tipo entidade EMPREGADO, onde um
empregado pode supervisionar outro empregado e um empregado pode ser supervisionado por
outro empregado.

- Restries em Tipos Relacionamentos


Geralmente, os tipos relacionamentos sofrem certas restries que limitam as possveis
combinaes das entidades participantes. Estas restries so derivadas de restries impostas
pelo estado destas entidades no mini-mundo ou mundo real. Veja o exemplo da figura a seguir.

Prof. Paulo Roberto R. Souza

Pg. 16 / 59

BANCO

Empregado

DE

DADOS

Gerencia

e1
e2
e3
e4
e5
e6
e7

departamento

d1
d2
d3

Relacionamento EMPREGADO gerencia DEPARTAMENTO


No exemplo acima, temos a seguinte situao: um empregado pode gerenciar apenas um
departamento, enquanto que um departamento, pode ser gerenciado por apenas um empregado.
A este tipo de restrio, ns chamamos cardinalidade. A cardinalidade indica a forma que uma
entidade participa do relacionamento.
A cardinalidade pode ser: 1:1(um para um), 1:N (um para muitos), M:N (muitos para
muitos).
No exemplo anterior, a cardinalidade 1:1, pois cada entidade empregado pode gerenciar
apenas um departamento e um departamento pode ser gerenciado por apenas um empregado.
No exemplo do relacionamento EMPREGADO Trabalha Para DEPARTAMENTO, o
relacionamento 1:N, pois um empregado pode trabalhar em apenas um departamento,
enquanto que um departamento pode possuir vrios empregados. Na figura abaixo temos um
exemplo de um relacionamento com cardinalidade N:M.

Trabalha Em
Empregado

Projeto

8e1
e2
e3
e4

p1
p2
p3

Relacionamento N:M
No exemplo acima, ns temos que um empregado pode trabalhar em vrios projetos
enquanto que um projeto pode ter vrios empregados trabalhando. o mesmo caso que citamos
acima de Mdicos e Pacientes.

Prof. Paulo Roberto R. Souza

Pg. 17 / 59

BANCO

DE

DADOS

Outra restrio muito importante a participao. A participao define a existncia de


uma entidade atravs do relacionamento, podendo ser parcial ou total. Veja o exemplo da
figura 6. A participao do empregado parcial pois nem todo empregado gerencia um
departamento, porm a participao do departamento neste relacionamento total pois todo
departamento precisa ser gerenciado por um empregado. Desta forma, todas as entidades do
tipo entidade DEPARTAMENTO precisam participar do relacionamento, mas nem todas os
registros da entidade EMPREGADO precisam participar do relacionamento. J no exemplo da
figura 4, ambas as participaes so totais pois todo empregado precisa trabalhar em um
departamento e todo departamento tem que ter empregados trabalhando nele.
Estas restries so chamadas de restries estruturais.
Algumas vezes, torna-se necessrio armazenar um atributo no tipo relacionamento. Veja
o exemplo da figura Empregados e Departamentos. Eu posso querer saber em que dia o
empregado passou a gerenciar o departamento. difcil estabelecer a qual tipo entidade
pertence atributo, pois o mesmo definido apenas pela existncia do relacionamento. Quando
temos relacionamentos com cardinalidade 1:1, podemos colocar o atributo em uma das
entidades, de preferncia, em uma cujo tipo entidade tenha participao total. No caso, o
atributo poderia ir para o tipo entidade departamento. Isto porque nem todo empregado
participar do relacionamento. Caso a cardinalidade seja 1:N, ento podemos colocar o atributo
no tipo entidade com participao N. Porm, se a cardinalidade for N:M, ento o atributo
dever mesmo ficar no tipo relao. Veja o exemplo da figura que aparecem Empregados e
Projetos. Caso queiramos armazenar quantas horas cada empregado trabalhou em cada
projeto, ento este dever ser um atributo do relacionamento.
Ou seja, quando temos o relacionamento muitos para muitos, devemos utilizar a
entidade-relacionamento ou relacionamento com atributos. Esta entidade serve de ponte entre
as duas relacionadas, ou seja, quando no conseguimos armazenar algumas informaes em um
ou em outra entidade, utilizamos uma terceira (entidade-relacionamento) para armazena-las.
Um bom exemplo disso o relacionamento entre MDICOS e PACIENTES. Um
mdico possui muitos pacientes e um paciente possui muitos mdicos. Algumas informaes
no so possveis de serem armazenadas nem em mdicos nem tampouco em pacientes. A data
da consulta por exemplo, o diagnstico, etc. Se colocamos em mdicos, ele tem vrios
pacientes e estas informaes ficaro falhas, se colocamos em pacientes, se ele fez vrias
consultas e s possumos um espao ou seja, um campo para armazenar cada informao,
tambm ficar falha. Portanto, ser necessrio a utilizao da entidade-relacionamento
CONSULTAS para armazenarmos estas informaes especficas de CONSULTAS.

- Tipos Entidades Fracas


Alguns tipos entidade podem no ter um atributo chave por si s. Isto implica que no
poderemos distinguir algumas entidades por que as combinaes dos valores de seus atributos
podem ser idnticas. Estes tipos entidade so chamados entidades fracas. As entidades deste
tipo precisam estar relacionadas com uma entidade pertencente ao tipo entidade proprietria.
Este relacionamento chamado de relacionamento identificador. Veja o exemplo abaixo.

Possui Dependentes
Empregado
Dependente
e1
e2

Prof. Paulo Roberto R. Souza

p1
p2
p3

Pg. 18 / 59

BANCO

DE

DADOS

Relacionamento com uma Entidade Fraca (Dependente)


O tipo entidade DEPENDENTE uma entidade fraca pois no possui um mtodo de
identificar uma entidade nica. O EMPREGADO no uma entidade fraca pois possui um
atributo para identificao (atributo chave). O nmero do RG de um empregado identifica um
nico empregado. Porm, um dependente de 5 anos de idade no possui necessariamente um
documento. Desta forma, esta entidade um tipo entidade fraca. Um tipo entidade fraca possui
uma chave parcial, que juntamente com a chave primria da entidade proprietria forma uma
chave primria composta. Neste exemplo: a chave primria do EMPREGADO o RG. A chave
parcial do DEPENDENTE o seu nome, pois dois irmos no podem ter o mesmo nome. Desta
forma, a chave primria desta entidade fica sendo o RG do pai ou me mais o nome do
dependente.
Algumas caractersticas marcantes nas entidades fracas so o fato de sua chave
primria ser composta (Formada por mais de um campo) e seus registros s existem se
existirem registros correspondentes na entidade forte. Ex. Alunos e Notas. S existem
notas se existirem alunos cadastrados.
Todos os exemplos vistos acima foram para relacionamentos binrios, ou seja, entre dois
tipos entidades diferentes ou recursivos. Porm, o modelo entidade relacionamento no se
restringe apenas relacionamentos binrios. O nmero de entidades que participam de um tipo
relacionamento irrestrito e armazenam muito mais informaes do que diversos
relacionamentos binrios. Considere o seguinte exemplo:
Um motorista pode efetuar uma viagem para uma localidade dirigindo um determinado
caminho em uma determinada data.
Se efetuarmos trs relacionamentos binrios, no teremos estas informaes de forma
completa como se crissemos um relacionamento ternrio. Veja o resultado como fica no
exemplo da figura abaixo.

Prof. Paulo Roberto R. Souza

Pg. 19 / 59

BANCO

DE

DADOS

data 1

data 2

C1

M1
M2

C2

M3

C3

M4
data 3
data 4
data 5
L1

L2

L3

Relacionamento Ternrio

Prof. Paulo Roberto R. Souza

Pg. 20 / 59

BANCO

DE

DADOS

Diagrama Entidade Relacionamento


O diagrama Entidade Relacionamento composto por um conjunto de objetos grficos
que visa representar todos os objetos do modelo Entidade Relacionamento tais como entidades,
atributos, atributos chaves, relacionamentos, restries estruturais, etc.
O diagrama ER fornece uma viso lgica do banco de dados, fornecendo um conceito
mais generalizado de como esto estruturados os dados de um sistema.
Os objetos que compem o diagrama ER esto listados a seguir, na figura 11.

TIPO
ENTIDADE

ATRIBUTO
ATRIBUTO
CHAVE

TIPO ENTIDADE
FRACA

ATRIBUTO
MULTI
VALORADO

TIPO
RELACIONAMENTO

ATRIBUTO
COMPOSTO
TIPO
RELACIONAMENTO
IDENTIFICADOR

E1

E2

ATRIBUTO
DERIVADO

E1

Taxa de Cardinalidade 1:N


para E1:E2 em R

E2

Participao Parcial de E1 em R,
Participao Total de E2 em R

(min, max)

E1

Restrio Estrutural (min,max) na


Participao de E1 em R

Figura 11- Objetos que Compem o Diagrama ER

Modelo Entidade Relacionamento Estendido


Prof. Paulo Roberto R. Souza

Pg. 21 / 59

BANCO

DE

DADOS

Os conceitos do modelo Entidade Relacionamento discutidos anteriormente so


suficientes para representar logicamente a maioria das aplicaes de banco de dados. Porm,
com o surgimento de novas aplicaes, surgiu tambm a necessidade de novas semnticas para
a modelagem de informaes mais complexas. O modelo Entidade Relacionamento
Extendido (ERE) visa fornecer esta semntica para permitir a representao de informaes
complexas. importante frisar que embora o modelo ERE trate classes e subclasses, ele no
possui a mesma semntica de um modelo orientado a objetos.
O modelo ERE engloba todos os conceitos do modelo ER mais os conceitos de
subclasse, superclasse, generalizao e especializao e o conceito de herana de atributos.

- Subclasses, Superclasses e Especializaes


O primeiro conceito do modelo ERE que ser abordado o de subclasse de um tipo
entidade. Como visto anteriormente, um tipo entidade utilizado para representar um conjunto
de entidades do mesmo tipo. Em muitos casos, um tipo entidade possui diversos subgrupos
adicionais de entidades que so significativas e precisam ser representadas explicitamente
devido ao seu significado aplicao de banco de dados. Leve em considerao o seguinte
exemplo:
Para um banco de dados de uma empresa temos o tipo entidade empregado, o qual
possui as seguintes caractersticas: nome, rg, cic, nmero funcional, endereo completo
(rua, nmero, complemento, cep, bairro, cidade), sexo, data de nascimento e telefone
(ddd e nmero); caso o(a) funcionrio(a) seja um(a) engenheiro(a), ento deseja-se
armazenar as seguintes informaes: nmero do CREA e especialidade (Civil,
Mecnico, Eltro/Eletrnico); caso o(a) funcionrio(a) seja um(a) secretrio(a), ento
deseja-se armazenar as seguinte informaes: qualificao (bi ou tri lngue) e os
idiomas no qual possui fluncia verbal e escrita.
Se as informaes nmero do CREA, especialidade, tipo e idiomas forem representadas
diretamente no tipo entidade empregado estaremos representando informaes de um conjunto
limitados de entidades empregado para os todos os funcionrios da empresa. Neste caso,
podemos criar duas subclasses do tipo entidade empregado: engenheiro e secretria, as quais
iro conter as informaes acima citadas. Alm disto, engenheiro e secretria podem ter
relacionamentos especficos.
Uma entidade no pode existir meramente como componente de uma subclasse. Antes de
ser componente de uma subclasse, uma entidade deve ser componente de uma superclasse. Isto
leva ao conceito de herana de atributos; ou seja, a subclasse herda todos os atributos da
superclasse. Isto porque a entidade de subclasse representa as mesmas caractersticas de uma
mesma entidade da superclasse. Uma subclasse pode herdar atributos de superclasses diferentes.

Prof. Paulo Roberto R. Souza

Pg. 22 / 59

BANCO

DE

DADOS

A figura 12 mostra a representao diagramtica do exemplo acima.


nome

dt. nasc.

no. funcional
sexo

Empregado

rg

endereo

Funo
d
qualificao

No registro

especializao

Engenheiro

Secretria

idiomas

Figura 12 - Representao de Superclasse e Subclasses

- Especializao
Especializao o processo de definio de um conjunto de classes de um tipo entidade;
este tipo entidade chamado de superclasse da especializao. O conjunto de subclasses
formado baseado em alguma caracterstica que distinga as entidades entre si.
No exemplo da figura 12, temos uma especializao, a qual podemos chamar de funo.
Veja agora no exemplo da figura 13, temos a entidade empregado e duas especializaes.
Empregado

Funo

Categoria Salarial

Engenheiro

Secretria

Horista

Mensalista

Figura 13 - Duas Especializaes para Empregado: Funo e Categoria Salarial


Como visto anteriormente, uma subclasse pode ter relacionamentos especficos com
outras entidades ou com a prpria entidade que a sua superclasse. Veja o exemplo da figura
14.

Prof. Paulo Roberto R. Souza

Pg. 23 / 59

BANCO

DE

DADOS

N
Projeto

Empregado
liderado
Funo

desenvolvido
por

N
1

lidera

N
Engenheiro

participa

Secretria

Figura 14 - Relacionamentos Entre Subclasses e Entidades


O processo de especializao nos permite:
definir um conjunto de subclasses de um tipo entidade;
associar atributos especficos adicionais para cada subclasse;
estabelecer tipos relacionamentos especficos entre subclasses e outros tipos entidades.

- Generalizao
A generalizao pode ser pensada como um processo de abstrao reverso ao da
especializao, no qual so suprimidas as diferenas entre diversos tipos entidades,
identificando suas caractersticas comuns e generalizando estas entidades em uma superclasse

no. funcional

no. funcional

No registro

especializao

Engenheiro
nome

qualificao

Secretria
rg

nome

idiomas
rg

Figura 15 - Tipos Entidades Engenheiro e Secretria

Prof. Paulo Roberto R. Souza

Pg. 24 / 59

B A N C Onome D E

DADOS

no. funcional

Empregado

rg

Funo
d
qualificao

no registro

especializao

Engenheiro

Secretria

idiomas

Figura 16 - Generalizao Empregado para os Tipos Entidades Engenheiro e Secretria


importante destacar que existe diferena semntica entre a especializao e a
generalizao. Na especializao, podemos notar que a ligao entre a superclasse e as
subclasses feita atravs de um trao simples, indicando participao parcial por parte da
superclasse. Analisando o exemplo da figura 12, observado que um empregado no
obrigado a ser um engenheiro ou uma secretria. Na generalizao, podemos notar que a
ligao entre a superclasse e as subclasses feita atravs de um trao duplo, indicando
participao total por parte da superclasse. Analisando o exemplo da figura 16, observado
que um empregado obrigado a ser um engenheiro ou uma secretria.
A letra d dentro do crculo que especifica uma especializao ou uma generalizao
significa disjuno. Uma disjuno em uma especializao ou generalizao indica que uma
entidade do tipo entidade que representa a superclasse pode assumir apenas um papel dentro da
mesma. Analisando o exemplo da figura 13. Temos duas especializaes para a superclasse
Empregado, as quais so restringidas atravs de uma disjuno. Neste caso, um empregado
pode ser um engenheiro ou uma secretria e o mesmo pode ser horista ou mensalista.
Alm da disjuno podemos ter um overlap, representado pela letra o. No caso do
overlap, uma entidade de uma superclasse pode ser membro de mais que uma subclasse em
uma especializao ou generalizao. Analise a generalizao no exemplo da figura 17.
Suponha que uma pea fabricada em uma tornearia pode ser manufaturada ou torneada ou
ainda, pode ter sido manufaturada e torneada.

Descri
o
no. da pea

Pea

o
Data
Ordem
Servio

Prof. Paulo Roberto R. Souza


Manufaturada

Torneada

No. Projeto

Pg. 25 / 59

Preo

BANCO

DE

DADOS

Figura 17 - Uma Generalizao com Overlap

- Lattice ou Mltipla Herana


Uma subclasse pode ser definida atravs de um lattice, ou mltipla herana, ou seja, ela
pode ter diversas superclasses, herdando caractersticas de todas. Leve em considerao o
seguinte exemplo:
Uma construtora possui diversos funcionrios, os quais podem ser engenheiros ou
secretrias. Um funcionrio pode tambm ser assalariado ou horista. Todo gerente de
departamento da construtora deve ser um engenheiro e assalariado.
O modelo lgico da expresso acima tem o seguinte formato:

Empregado
Categoria

Funo

Salarial

Secretaria

Engenheiro

Mensalista

Horista

Gerente

Figura 18 - Um Lattice com a Subclasse Gerente Compartilhada


Neste caso ento, um gerente ser um funcionrio que alm de possuir as caractersticas
prprias de Gerente, herdar as caractersticas de Engenheiro e de Mensalista.

Prof. Paulo Roberto R. Souza

Pg. 26 / 59

BANCO

DE

DADOS

Tabela Resumo
O modelo relacional foi criado por Codd em 1970 e tem por finalidade representar os
dados como uma coleo de relaes, onde cada relao representada por uma tabela, ou
falando de uma forma mais direta, um arquivo. Porm, um arquivo mais restrito que uma
tabela. Toda tabela pode ser considerada um arquivo, porm, nem todo arquivo pode ser
considerado uma tabela.
1o Passo - Entidades Normais

2o Passo - Entidades Fracas

EF

c
3o Passo - Relacionamentos 1:1
E

4o Passo - Relacionamentos 1:N

5o Passo - Relacionamentos N:N

ou
6o Passo - Atrbs. Multi Valorados
E

E
E

mv

E
E

E
ou

7 Passo - Relacionamento n-rio


E

Figura 19 - Mapeamento para o Modelo Relacional

Prof. Paulo Roberto R. Souza

Pg. 27 / 59

BANCO

DE

DADOS

4 - A lgebra Relacional
A lgebra relacional uma coleo de operaes cannicas que so utilizadas para
manipular as relaes. Estas operaes so utilizadas para selecionar tuplas de relaes
individuais e para combinar tuplas relacionadas de relaes diferentes para especificar uma
consulta em um determinado banco de dados. O resultado de cada operao uma nova
operao, a qual tambm pode ser manipulada pela lgebra relacional.
NOTA: Tuplas so conjuntos de registros. Por exemplo: Se em uma tabela de cadastro
de clientes selecionamos somente os clientes que so do estado = a MG. Portanto, este set de
registros ou este conjunto de registros selecionados damos o nome de Tupla.
Todos os exemplos envolvendo lgebra relacional implicam na utilizao do banco de
dados descrito no apndice A.

- A Operao Select
A operao select utilizada para selecionar um subconjunto de tuplas de uma relao,
sendo que estas tuplas devem satisfazer uma condio de seleo. A forma geral de uma
operao select :

<condio de seleo>

( <nome da relao> )

A letra grega utilizada para representar a operao de seleo; <condio de


seleo> uma expresso booleana aplicada sobre os atributos da relao e <nome da
relao> o nome da relao sobre a qual ser aplicada a operao select.
Exemplos:
consulta1 =

salrio < 2.500,00 (EMPREGADO)

gera a seguinte tabela como resultado:


Tabela consulta1
Nome

RG

CIC

Depto.

RG Supervisor

Salrio

Ricardo

30303030

33333333

10101010

2.300,00

Renato

50505050

55555555

20202020

1.300,00

consulta2 =

(relao = Filho) .and. (sexo = Feminino) (DEPENDENTES)

gera a seguinte tabela como resultado:


Tabela consulta2
RG Responsvel

Nome Dependente

Dt. Nascimento

Relao

Sexo

30303030

Adreia

01/05/90

Filho

Feminino

As operaes relacionais que podem ser aplicadas na operao select so:


< , > , , , =,
Prof. Paulo Roberto R. Souza

Pg. 28 / 59

BANCO

DE

DADOS

alm dos operadores booleanos:


and, or, not.
A operao select unria, ou seja, s pode ser aplicada a uma nica relao. No
possvel aplicar a operao sobre tuplas de relaes distintas.

- A Operao Project
A operao project seleciona um conjunto determinado de colunas de uma relao. A
forma geral de uma operao project :

<lista de atributos>

(<nome da relao>)

A letra grega representa a operao project, <lista de atributos> representa a lista de


atributos que o usurio deseja selecionar e <nome da relao> representa a relao sobre a qual
a operao project ser aplicada.
Exemplos:
consulta3 =

Nome,

Dt. Nascimento

(DEPENDENTES)

gera a seguinte tabela como resultado:


Tabela consulta3
Nome Dependente

Dt. Nascimento

Jorge

27/12/86

Luiz

18/11/79

Fernanda

14/02/69

Angelo

10/02/95

Adreia

01/05/90

- Seqencialidade de Operaes
As operaes project e select podem ser utilizadas de forma combinada, permitindo que
apenas determinadas colunas de determinadas tuplas possam ser selecionadas.
A forma geral de uma operao sequencializada :

<lista de atributos> (<condio de seleo> (<nome da relao>))


Veja o seguinte exemplo:
consulta4 =

nome, depto., salario (salario < 2.500,00 (EMPREGADO))

produz a tabela a seguir como resultado:


Prof. Paulo Roberto R. Souza

Pg. 29 / 59

BANCO

DE

DADOS

Tabela consulta4
Nome

Depto.

Salrio

Ricardo

2.300,00

Renato

1.300,00

A consulta4 pode ser reescrita da seguinte forma:


consulta5 =

salario < 2.500,00(EMPREGADO)

Tabela consulta5
Nome

RG

CIC

Depto.

RG Supervisor

Salrio

Ricardo

30303030

33333333

10101010

2.300,00

Renato

50505050

55555555

20202020

1.300,00

consulta6 =

nome, depto., salario (CONSULTA5)


Tabela consulta6
Nome

Depto.

Salrio

Ricardo

2.300,00

Renato

1.300,00

porm mais elegante utilizar a forma descrita na consulta4.

- Operaes Matemticas
Levando em considerao que as relaes podem ser tratadas como conjuntos, podemos
ento aplicar um conjunto de operaes matemticas sobre as mesmas. Estas operaes so:
unio ( ) , interseco ( ) e diferena (). Este conjunto de operaes no unrio, ou seja,
podem ser aplicadas sobre mais de uma tabela, porm, existe a necessidade das tabelas
possuirem tuplas exatamente do mesmo tipo.
Estas operaes podem ser definidas da seguinte forma:
unio - o resultado desta operao representada por R S uma relao T que inclui
todas as tuplas que se encontram em R e todas as tuplas que se encontram em S;
interseco - o resultado desta operao representada por R S uma relao T que
inclui as tuplas que se encontram em R e em S ao mesmo tempo;
diferena - o resultado desta operao representada por R S uma relao T que
inclui todas as tuplas que esto em R mas no esto em S.
Leve em considerao a seguinte consulta:
Selecione todos os empregados que trabalham no departamento nmero 2 ou que
supervisionam empregados que trabalham no departamento nmero 2.

Prof. Paulo Roberto R. Souza

Pg. 30 / 59

BANCO

DE

DADOS

Vamos primeiro selecionar todos os funcionrios que trabalham no departamento


nmero 2.

depto = 2 (EMPREGADOS)

consulta7 =
Tabela consulta7
Nome

RG

CIC

Depto.

RG Supervisor

Salrio

Fernando

20202020

22222222

10101010

2.500,00

Ricardo

30303030

33333333

10101010

2.300,00

Jorge

40404040

44444444

20202020

4.200,00

Vamos agora selecionar os supervisores dos empregados que trabalham no departamento


nmero 2.

rg_supervisor (CONSULTA7)

consulta8 =

Tabela consulta8
RG Supervisor
10101010
20202020

Vamos projetar apenas o rg dos empregados selecionados:

consulta9 =

rg(CONSULTA7)

Tabela consulta9
RG
20202020
30303030
40404040

E por fim, vamos unir as duas tabelas, obtendo o resultado final.

consulta10

= CONSULTA8

CONSULTA9

Tabela consulta10
RG
20202020
30303030
40404040
10101010

Prof. Paulo Roberto R. Souza

Pg. 31 / 59

BANCO

DE

DADOS

Leve em considerao a prxima consulta:


selecione todos os empregados que desenvolvem algum projeto e que trabalham no
departamento nmero 2;
Vamos primeiro selecionar todos os empregados que trabalham em um projeto.

consulta11 =

rg_empregado(EMPREGADO/PROJETO)

Tabela consulta11
RG_Empregado
20202020
30303030
40404040
50505050

Vamos agora selecionar todos os empregados que trabalham no departamento 2.

consulta12 =

rg (depto = 2 (EMPREGADOS))
Tabela consulta12
RG
20202020
30303030
40404040

Obtemos ento todos os empregados que trabalham no departamento 2 e que


desenvolvem algum projeto.

consulta13

= CONSULTA11

CONSULTA12

Tabela consulta13
RG
20202020
30303030
40404040

Leve em considerao a seguinte consulta:


selecione todos os usurios que no desenvolvem projetos;

consulta14 =

rg_empregado (EMPREGADO/PROJETO)

Tabela consulta14
RG Empregado

Prof. Paulo Roberto R. Souza

Pg. 32 / 59

BANCO

DE

DADOS

20202020
30303030
40404040
50505050

consulta15 =

rg (EMPREGADOS)
Tabela consulta15
RG
10101010
20202020
30303030
40404040
50505050

consulta16 = CONSULTA15 CONSULTA14


Tabela consulta16
RG
10101010

- Produto Cartesiano
O produto cartesiano uma operao binria que combina todas as tuplas de duas
tabelas. Diferente da operao unio, o produto cartesiano no exige que as tuplas das tabelas
possuam exatamente o mesmo tipo. O produto cartesiano permite ento a consulta entre
tabelas relacionadas utilizando uma condio de seleo apropriada. O resultado de um
produto cartesiano uma nova tabela formada pela combinao das tuplas das tabelas sobre as
quais aplicou-se a operao.
O formato geral do produto cartesiano entre duas tabelas R e S :
R S
Leve em considerao a seguinte consulta:
encontre todos os funcionrios que desenvolvem projetos em Campinas;
consulta16 = EMPREGADO/PROJETO PROJETO
Tabela consulta16
RG Empregado

Nmero Projeto

Nome

Nmero

Localizao

Prof. Paulo Roberto R. Souza

Pg. 33 / 59

BANCO

DE

DADOS

20202020

Financeiro 1

So Paulo

20202020

Motor 3

10

Rio Claro

20202020

Prdio Central

20

Campinas

20202020

10

Financeiro 1

So Paulo

20202020

10

Motor 3

10

Rio Claro

20202020

10

Prdio Central

20

Campinas

30303030

Financeiro 1

So Paulo

30303030

Motor 3

10

Rio Claro

30303030

Prdio Central

20

Campinas

40404040

20

Financeiro 1

So Paulo

40404040

20

Motor 3

10

Rio Claro

40404040

20

Prdio Central

20

Campinas

50505050

20

Financeiro 1

So Paulo

50505050

20

Motor 3

10

Rio Claro

50505050

20

Prdio Central

20

Campinas

Vamos agora selecionar as tuplas resultantes que esto devidamente relacionadas que so
as que possuem o mesmo valor em nmero do projeto e nmero e cuja localizao seja
Campinas.

consulta17 =

rg_empregado, nmero

(nmero_projeto = nmero) .and. (localizao = Campinas)

(CONSULTA16)

Tabela consulta17
RG

Nmero

40404040

20

50505050

20

A operao produto cartesiano no muito utilizada por no oferecer um resultado


otimizado. Veja o tem seguinte.

- Operao Juno
A operao juno atua de forma similar operao produto cartesiano, porm, a
tabela resultante conter apenas as combinaes das tuplas que se relacionam de acordo com
uma determinada condio de juno. A forma geral da operao juno entre duas tabelas R e
S a seguinte:

<condio de juno>

Prof. Paulo Roberto R. Souza

Pg. 34 / 59

BANCO

DE

DADOS

Leve em considerao a consulta a seguir:


encontre todos os funcionrios que desenvolvem projetos em Campinas;
consulta18 = EMPREGADOS/PROJETOS

nmero_projeto = nmero PROJETOS

Tabela consulta18
RG_Empregado

Nmero_Projeto

Nome

Nmero

Localizao

20202020

Financeiro 1

So Paulo

20202020

10

Motor 3

10

Rio Claro

30303030

Financeiro 1

So Paulo

40404040

20

Prdio Central

20

Campinas

50505050

20

Prdio Central

20

Campinas

consulta19 =

localizao = Campinas (CONSULTA18)

Tabela consulta18
RG_Empregado

Nmero_Projeto

Nome

Nmero

Localizao

40404040

20

Prdio Central

20

Campinas

20

Prdio Central

20

Campinas

50505050

5 - SQL - Structured Query Language


SQL um conjunto de declaraes que utilizado para acessar os dados utilizando
gerenciadores de banco de dados. Nem todos os gerenciadores utilizam SQL. SQL no uma
linguagem procedural pois processa conjuntos de registros, ao invs de um por vez, provendo
navegao automtica atravs dos dados, permitindo ao usurio manipular tipos complexos de
dados. SQL pode ser utilizada para todas as atividades relativas a um banco de dados podendo
ser utilizada pelo administrador de sistemas, pelo DBA, por programadores, sistemas de suporte
tomada de decises e outros usurios finais.

Comandos para Definio de Dados Utilizando


SQL (Data Definition Language)

- Comando CREATE TABLE Criar tabela.


O comando create table permite ao usurio criar uma nova tabela (ou relao). Para cada
atributo da relao definido um nome, um tipo, mscara e algumas restries. Os tipos de uma
coluna so:
char(n): caracteres e strings onde n o nmero de caracteres;
integer: inteiros
float: ponto flutuante;
decimal(m,n): onde m o nmero de casas inteiras e n o nmero de casas decimais.

Prof. Paulo Roberto R. Souza

Pg. 35 / 59

BANCO

DE

DADOS

A restrio not null indica que o atributo deve ser obrigatoriamente preenchido; se no
for especificado, ento o default que o atributo possa assumir o valor nulo.
A forma geral do comando create table ento :
create table <nome_tabela> ( <nome_coluna1> <tipo_coluna1>
NULL>,
<nome_coluna2> <tipo_coluna2>
NULL>,
:
<nome_colunan> <tipo_colunan>
);

<NOT
<NOT

<NOT NULL>

Por exemplo, para criar a tabela EMPREGADOS do apndice A, teramos o seguinte


comando:
create table EMPREGADOS

( nome
rg
cic
depto
rg_supervisor
salario,

char (30)
integer
integer,
integer
integer,
decimal (7,2)

NOT NULL,
NOT NULL,
NOT NULL,
NOT NULL );

- Comando DROP TABLE Apagar a estrutura da tabela com os dados.


O comando drop table permite a excluso de uma tabela (relao) em um banco de
dados.
A forma geral para o comando drop table :
drop table <nome_tabela>;
Por exemplo, para eliminar a tabela EMPREGADOS do apndice A teramos o seguinte
comando:
drop table EMPREGADOS;
Observe que neste caso, a chave da tabela EMPREGADOS, (rg) utilizada como chave
estrangeira ou como chave primria composta em diversos tabelas que devem ser devidamente
corrigidas.
Este processo no assim to simples pois, como vemos neste caso, a excluso da tabela
EMPREGADOS implica na alterao do projeto fsico de diversas tabelas. Isto acaba
implicando na construo de uma nova base de dados.
- Comando ALTER TABLE Alterar a estrutura da tabela.
O comando alter table permite que o usurio faa a incluso de novos atributos em uma
tabela. A forma geral para o comando alter table a seguinte:
alter table <nome_tabela> add <nome_coluna> <tipo_coluna>;
No caso do comando alter table, a restrio NOT NULL no permitida pois assim que
se insere um novo atributo na tabela, o valor para o mesmo em todas as tuplas da tabela
recebero o valor NULL.

Prof. Paulo Roberto R. Souza

Pg. 36 / 59

BANCO

DE

DADOS

Comandos para Manipulao de Dados (DML Data Manipulation Language)


Consultas em SQL
- O comando SELECT Selecionar registros.
O comando select permite a seleo de tuplas e atributos em uma ou mais tabelas. A
forma bsica para o uso do comando select :
select
from
where

<lista de atributos>
<lista de tabelas>
<condies>;

Por exemplo, para selecionar o nome e o rg dos funcionrios que trabalham no


departamento nmero 2 na tabela EMPREGADOS utilizamos o seguinte comando:
select nome, rg
from EMPREGADOS
where depto = 2;
obteremos ento o seguinte resultado:
Nome

RG

Fernando

20202020

Ricardo

30303030

Jorge

40404040

A consulta acima originria da seguinte funo em lgebra relacional:

nome, rg (depto = 2 (EMPREGADOS));


Em SQL tambm permitido o uso de condies mltiplas. Veja o exemplo a seguir:
select nome, rg, salario
from EMPREGADOS
where depto = 2 AND salario > 2500.00;
que fornece o seguinte resultado:
Nome

RG

Salrio

Jorge

40404040

4.200,00

e que originria da seguinte funo em lgebra relacional:

nome, rg, salario (depto = 2 .and. salario > 3500.00(EMPREGADOS));


A operao select-from-where em SQL pode envolver quantas tabelas forem necessrias.
Leve em considerao a seguinte consulta:
selecione o nmero do departamento que controla projetos localizados em Rio Claro;
select t1.numero_depto
from departamento_projeto t1, projeto t2
Prof. Paulo Roberto R. Souza

Pg. 37 / 59

BANCO

DE

DADOS

where t1.numero_projeto = t2.numero;


Na expresso SQL acima, t1 e t2 so chamados alias (apelidos) e representam a
mesma tabela a qual esto referenciando. Um alias muito importante quando h redundncia
nos nomes das colunas de duas ou mais tabelas que esto envolvidas em uma expresso. Ao
invs de utilizar o alias, possvel utilizar o nome da tabela, mas isto pode ficar cansativo em
consultas muito complexas alm do que, impossibilitaria a utilizao da mesma tabela mais que
uma vez em uma expresso SQL. Considere a seguinte consulta:
selecione o nome e o rg de todos os funcionrios que so supervisores;
select e1.nome, e1.rg
from empregado e1, empregado e2
where e1.rg = e2.rg_supervisor;
que gera o seguinte resultado:
Nome

RG

Joo Luiz

10101010

Fernando

20202020

A consulta acima decorrente da seguinte expresso em lgebra relacional:

nome, rg (

EMPREGADOS

tg_t1 = rg_supervisor_t2

EMPREGADOS);

O operador * dentro do especificador select seleciona todos os atributos de uma tabela,


enquanto que a excluso do especificador where faz com que todas as tuplas de uma tabela
sejam selecionadas. Desta forma, a expresso:
select *
from empregados;
gera o seguinte resultado:
Nome

RG

CIC

Depto.

RG Supervisor

Salrio

Joo Luiz

10101010

11111111

NULO

3.000,00

Fernando

20202020

22222222

10101010

2.500,00

Ricardo

30303030

33333333

10101010

2.300,00

Jorge

40404040

44444444

20202020

4.200,00

Renato

50505050

55555555

20202020

1.300,00

Diferente de lgebra relacional, a operao select em SQL permite a gerao de tuplas


duplicadas como resultado de uma expresso. Para evitar isto, devemos utilizar o especificador
distinct. Veja a seguir os exemplos com e sem o especificador distinct.
select depto
from empregado;

select distinct depto


from empregado;

que gera os seguintes resultados:


Depto.

Depto.

Prof. Paulo Roberto R. Souza

Pg. 38 / 59

BANCO

DE

DADOS

2
3

Podemos gerar consultas aninhadas em SQL utilizando o espeficicador in, que faz uma
comparao do especificador where da consulta mais externa com o resultado da consulta mais
interna. Considere a consulta a seguir:
Selecione o nome de todos os funcionrios que trabalham em projetos localizados em
Rio Claro;
select e1.nome, e1.rg, e1.depto
from empregado e1, empregado_projeto e2
where e1.rg = e2.rg_empregado
and e2.numero_projeto in ( select numero
from projeto
where localizacao = Rio Claro);
Para selecionar um conjunto de tuplas de forma ordenada devemos utilizar o comando
order by. Leve em considerao a seguinte consulta:
selecione todos os empregados por ordem alfabtica:
select nome, rg, depto
from empregado
order by nome;

- Inseres e Atualizaes Inserir registros.


Para elaborar inseres em SQL, utiliza-se o comando insert into. A forma geral para o
comando insert into :
insert into <nome da tabela> <(lista de colunas)>
values <(lista de valores)>;
Considere a seguinte declarao:
insira na tabela empregados, os seguintes dados:
nome: Jorge Goncalves
rg: 60606060
cic: 66666666
departamento: 3
rg_supervisor: 20202020
salrio: R$ 4.000,00
insert into empregados
values (Jorge Goncalves, 60606060, 66666666, 3, 20202020, 4000,00);
ou ainda:
insira na tabela empregados os seguintes dados:
Prof. Paulo Roberto R. Souza

Pg. 39 / 59

BANCO

DE

DADOS

nome: Joao de Campos


rg: 70707070
cic: 77777777
departamento: 3
salrio: R$2.500,00
insert into
values

empregados (nome, rg, cic, depto, salario)


(Joao de Campos, 70707070, 77777777, 3, 2500,00);

Como na primeira insero todos os campos foram inseridos, ento no foi necessrio
especificar o nome das colunas. Porm, na segunda insero, o campo rg_supervisor no foi
inserido, ento especificou-se as colunas. Outra forma de se elaborar esta insero seria:
insert into empregados values
, 2500,00);

(Joao de Campos, 70707070, 77777777, 3,

Neste caso, utilizou-se os caracteres para se declarar que um valor nulo seria inserido
nesta coluna.
Para se efetuar uma alterao em uma tabela, utilizado o comando update. A forma
geral do comando update :
update
set
where

<tabela>
<coluna> = <expresso>
<condio>

Considere a seguinte declarao:


atualize o salrio de todos os empregados que trabalham no departamento 2 para
R$ 3.000,00;
update
set
where

empregado
salario = 3.000,00
depto = 2;

Para se eliminar uma tupla de uma tabela, utiliza-se o comando delete. A forma geral do
comando update :
delete from <tabela>
where
<condio>;
Leve em considerao a seguinte expresso:
elimine os registros nos quais o empregado trabalhe no departamento 2 e possua salrio
maior que R$ 3.500,00;
delete from empregado
where
salario > 3.500,00 and depto = 2;
Nos casos de atualizao que foram vistos, todas as <condies> podem ser uma
consulta utilizando o comando select, onde o comando ser aplicado sobre todos os registros
que satisfizerem as condies determinadas pelo comando de seleo.

Prof. Paulo Roberto R. Souza

Pg. 40 / 59

BANCO

DE

DADOS

6 - Normalizao
A normalizao uma metodologia para projeto de BDs relacionais, uma vez que
sugere uma organizao de dados em tabelas. Assim sendo, a normalizao uma ferramenta
para projeto lgico de BDs relacionais.
O objetivo desta tcnica evitar problemas de redundncia e anomalias de atualizao,
que podem estar presentes em uma relao. A soluo para resolver estes problemas a
decomposio de uma relao em uma ou mais relaes, com base na aplicao de certas regras
de normalizao (formas normais). Esta proliferao de relaes nem sempre ideal do ponto
de vista de performance, devendo ser balanceado vantagens e desvantagens antes da efetivao
dos resultados de uma forma normal (FN).
Temos ao todo, cinco formas normais, porm, se diz que ao passar pela terceira forma
normal, a maioria dos bancos j estar normalizado. Vejamos quais so:

1) Uma representao de tabela no normalizada:

CdProj Tipo

Des

LSC001 Novo
Desenv.

Sist
de
Est

Documento exemplo na forma no normalizada


Esquema de tabelas relacionais:

Proj (codproj, tipo, descr, (codemp, nome, cat, sal, dataini, tempal))
O parntese apresenta aninhamento de tabelas. No caso de tabelas aninhadas, as
colunas sublinhadas indicam a coluna ou grupo de colunas que servem para distinguir
diferentes linhas da tabela aninhada referente a uma linha da tabela de seu nvel externo.
Assim, a coluna CodProj distingue as linhas (cada uma referente a um projeto) da tabela
PROJ. J a coluna CodEmp, serve para distinguir diferentes linhas de empregado dentro do
grupo referente a um projeto.

PAG02

Manuteno Sist
de R

Prof. Paulo Roberto R. Souza

Pg. 41 / 59

BANCO

DE

DADOS

2) Passagem primeira forma normal (1FN)

Diz-se que uma tabela est na primeira forma normal, quando ela no contm
tabelas aninhadas.
O prximo passo da normalizao consta da transformao do esquema de
tabela no normalizada em um esquema relacional na primeira forma normal. Uma
tabela encontra-se na primeira forma normal quando ela no contm tabelas aninhadas.
Portanto, a passagem primeira forma normal consta da eliminao das tabelas
aninhadas eventualmente existentes.
Para transformar um esquema de tabela no-normalizada em um esquema da
1FN h duas alternativas:
Construir uma nica tabela com redundncia de dados.
Cria-se uma tabela na qual os dados das linhas externas tabela aninhada so
repetidos para cada linha da tabela aninhada. No caso que estamos analisando
seria o seguinte:
PROJEMP (CodProj, Tipo, Descr, CodEmp, Nome, Cat, Sal, DataIni,
TempAl).
Neste caso, os dados aparecem repetidos para cada linha de empregados.
Construir uma tabela para cada tabela aninhada.
Cria-se uma tabela referente a prpria tabela que est sendo normalizada e uma
tabela para cada tabela aninhada. O resultado seria o seguinte:

PROJ(CodProj, Tipo, Descr)


PROJEMP (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl).
Ao se decompor desta forma, em duas tabelas, as relaes entre as informaes
podem ser perdidas.

Na decomposio de tabelas, a passagem primeira forma normal por


decomposio de tabelas feita nos seguintes passos:

1. criada uma tabela na 1FN referente a tabela no normalizada e que contm as


apenas colunas com valores atmicos, isto , sem as tabelas aninhadas. A chave
primria da tabela na 1FN idntica a chave da tabela no normalizada.

Prof. Paulo Roberto R. Souza

Pg. 42 / 59

BANCO

DE

DADOS

2. Para cada tabela aninhada, criada uma tabela na 1FN composta pelas seguintes
colunas:
a. A chave primria de cada uma das tabelas na qual a tabela em questo est
aninhada.
b. As colunas da prpria tabela aninhada.
3. So definidas as chaves primrias das tabelas da 1FN que correspondem as tabelas
aninhadas.
Portanto, neste exemplo, a decomposio gera duas tabelas com o seguinte
esquema:
1FN
Proj(CodProj, Tipo, Descr)
ProjEmp(CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl).

PROJ
CodProj

Tipo
Novo Desenv.

LSC001

Sistema de Estoque

Manuteno

PAG002

PROJEMP
CodProj
CodEmp
LSC001
2146
LSC001
3145
PAG002
4112
PAG002
6126

Descr

Nome
Joo
Silvio
Joo
Jos

Cat
A1
A2
A2
B1

Sistema de RH

Sal
4
4
4
9

DataIni
1/11/91
2/10/91
4/01/91
1/11/92

TempAl
24
24
24
12

Dependncia Funcional
Dizemos que determinada coluna dependente funcionalmente de outra coluna desde que
a primeira coluna determine a existncia da segunda. Por exemplo, salrio dependente
funcionalmente de cdigo do funcionrio. Isso ocorre j que, sem funcionrio no h salrio.
3) Passagem segunda forma normal (2FN)
A passagem segunda forma normal objetiva eliminar um certo tipo de redundncia de
dados. Uma tabela encontra-se na segunda forma normal quando, alm de encontrar-se na
primeira forma normal, cada coluna no chave depende da chave primria completa. Uma
tabela que no se encontra na segunda forma contm dependncias funcionais parciais, ou
seja, contm colunas no chave que dependem apenas de uma parte da chave primria.
Uma tabela encontra-se na 2FN quando, alm de estar na 1FN, no contm
dependncias parciais.

Prof. Paulo Roberto R. Souza

Pg. 43 / 59

BANCO

DE

DADOS

Dependncia parcial: Uma dependncia funcional parcial ocorre quando uma coluna
depende apenas de parte da chave primria composta.
Portanto, toda tabela que est na 1FN e que possui apenas uma coluna como chave
primria j est na 2FN. O mesmo aplica-se para uma tabela que contenha apenas colunas
chave primria.
No nosso exemplo, a tabela PROJEMP deve ser examinada para procurar
depend6encias parciais, pois possui uma chave primria composta. As colunas Nome, Cat e
Sal dependem, cada uma, apenas da coluna CodEmp, j que, nome, categoria funcional e
salrio so determinados somente pelo cdigo do empregado. Porm, DataIni e TempAl
dependem da chave primria completa.
Para passarmos o esquema PROJ e PROJEMP para a segunda forma normal, vamos
dividir a tabela PROJEMP em duas tabelas:
PROJ: (CodProj, Tipo, Descr)
PROJEMP: (CodProj, CodEmp, DataIni, TempAl)
EMP: (CodEmp, Nome, Cat, Sal)

PROJ
CodProj

Tipo
Novo Desenv.

LSC001

Manuteno

PAG002
PROJEMP
CodProj
LSC001
LSC001
PAG002
PAG002

CodEmp
2146
3145
4112
6126

EMP
CodEmp
2146
3145
4112
6126

Nome
Joo
Silvio
Joo
Jos

DataIni
1/11/91
2/10/91
4/01/91
1/11/92
Cat
A1
A2
A2
B1

Descr
Sistema de Estoque
Sistema de RH

TempAl
24
24
24
12
Sal
4
4
4
9

Portanto, a passagem para a segunda forma normal obedece a alguns passos importantes:
1) Copiar para a 2FN cada tabela que tenha chave primria simples ou que no tenha
colunas alm da chave.
2) Para cada tabela com chave primria composta e com pelo menos uma coluna no
chave:
a. Criar na 2FN uma tabela com as chaves primrias da tabela na 1FN.
b. Para cada coluna no chave fazer a seguinte pergunta:
i. A coluna depende de toda chave ou de apenas parte dela?

Prof. Paulo Roberto R. Souza

Pg. 44 / 59

BANCO

DE

DADOS

Caso a coluna dependa de toda a chave completa na 2FN (a coluna DataIni e


TempAl) Criar a coluna correspondente na tabela com a chave completa na
2FN.
Caso a coluna dependa apenas de parte da chave (as colunas, nome, sal e cat da
tabela ProjEmp) Criar, caso ainda no existir, uma tabela na 2FN que tenha
como chave primria a parte da chave que determinante da coluna em questo
(tabela EMP).
Criar a coluna dependente dentro da tabela na 2FN (Colunas nome, sal e Cat).
4) Passagem terceira forma normal (3FN)
A passagem terceira forma normal objetiva eliminar um outro tipo de
redundncia. Vamos supor que o salrio do funcionrio seja determinado pela sua
categoria funcional. Neste caso, a informao de que salrio pago uma categoria
funcional est representado redundantemente na tabela. Tantas vezes quantos
empregados possui a categoria funcional. A passagem 3FN objetiva eliminar este tipo
de redundncia de dados.
Uma tabela encontra-se na 3FN quando, alm de estar na 2FN, toda coluna no
chave depende diretamente de chave primria, isto , quando no h dependncias
funcionais transitivas ou indiretas. Uma dependncia funcional transitiva ou indireta
acontece quando uma coluna no chave primria depende funcionalmente de outra
coluna ou combinao de colunas no chave primria.
Dependncia transitiva: Uma dependncia funcional transitiva ocorre quando uma
coluna, alm de depender da chave primria da tabela, depende de outra coluna ou
conjunto de colunas da tabela.

3FN
PROJ(CodProj, Tipo, Descr)
PROJEMP: (CodProj, CodEmp, DataIni, TempAl)
EMP: (CodEmp, Nome, Cat)
CAT(Cat, Sal)

PROJ
CodProj

Tipo
Novo Desenv.

LSC001

Manuteno

PAG002

PROJEMP
CodProj
LSC001
LSC001
PAG002
PAG002

CodEmp
2146
3145
4112
6126

DataIni
1/11/91
2/10/91
4/01/91
1/11/92

Descr
Sistema de Estoque
Sistema de RH

TempAl
24
24
24
12

Prof. Paulo Roberto R. Souza

Pg. 45 / 59

BANCO
EMP
CodEmp
2146
3145
4112
6126
CAT
Cat
A1
A2
A2
B1

Nome
Joo
Silvio
Joo
Jos

DE

DADOS

Cat
A1
A2
A2
B1

Sal
4
4
4
9

Portanto, a passagem da 2FN para a 3FN o seguinte:


1) Para tabelas com duas ou mais colunas no chave.
a) Criar uma tabela no esquema 3FN com a chave primria da tabela em questo.
b) Para cada coluna no chave fazer a seguinte pergunta:
a coluna depende de alguma outra coluna no chave
Caso a coluna dependa apenas da chave: Copiar a coluna para a tabela 3FN.
Caso a coluna depender da outra coluna:
- Criar, caso ainda no exista, uma tabela no esquema na 3FN que
tenha como chave primria a coluna da qual h a dependncia
indireta.
- Copiar a coluna dependente para a tabela criada.
- A coluna determinante deve permanecer tambm na tabela original.
5) Passagem quarta forma normal (4FN)
Para a maioria dos documentos e arquivos, a decomposio at a 3FN suficiente para
obter um esquema de banco de dados correspondente ao documento.
Existem outras formas normais, como a forma normal de Boyce/Codd, a 4FN e a 5FN.
Destas a nica que teria uma importncia relevante seria a quarta forma normal. Porm, como a
grande maioria dos bancos de dados estaro normalizados at a terceira forma normal, sugiro
que o acadmico procure complementar seus conhecimentos, se necessrio, pesquisando na
bibliografia indicada pela disciplina.
6) Problemas da Normalizao
A normalizao pode apresentar alguns problemas, porm, acredito que o maior deles
est realmente no prprio profissional, que exagera na hora de normalizar as tabelas, criando
um problema maior para o desenvolvedor de aplicaes ou analista, e at mesmo para o
usurio, pois, o excesso de normalizao leva lentido nas consultas e relatrios.

Prof. Paulo Roberto R. Souza

Pg. 46 / 59

BANCO

DE

DADOS

Apndice A - Exemplo de um Banco de Dados


Tabela EMPREGADO
Nome

RG

CIC

Depto.

RG Supervisor

Salrio

Joo Luiz

10101010

11111111

NULO

3.000,00

Fernando

20202020

22222222

10101010

2.500,00

Ricardo

30303030

33333333

10101010

2.300,00

Jorge

40404040

44444444

20202020

4.200,00

Renato

50505050

55555555

20202020

1.300,00

Tabela DEPARTAMENTO

Tabela PROJETO

Nome

Nmero

RG Gerente

Nome

Nmero

Localizao

Contabilidade

10101010

Financeiro 1

So Paulo

Engenharia Civil

30303030

Motor 3

10

Rio Claro

Engenharia Mecnica

20202020

Prdio Central

20

Campinas

Tabela DEPENDENTES
RG Responsvel

Nome
Dependente

Dt. Nascimento

Relao

Sexo

10101010

Jorge

27/12/86

Filho

Masculino

10101010

Luiz

18/11/79

Filho

Masculino

20202020

Fernanda

14/02/69

Conjuge

Feminino

20202020

Angelo

10/02/95

Filho

Masculino

30303030

Adreia

01/05/90

Filho

Feminino

Tabela DEPARTAMENTO_PROJETO

Tabela EMPREGADO_PROJETO

Nmero Depto.

Nmero Projeto

RG Empregado

Nmero Projeto

Horas

20202020

10

10

20202020

10

25

20

30303030

35

40404040

20

50

50505050

20

35

Prof. Paulo Roberto R. Souza

Pg. 47 / 59

BANCO
7

DE

DADOS

- ARTIGOS ANEXOS e Materiais


Complementares

1) Bancos de Dados Livre x Pago


Software livre uma realidade cada vez mais constante no mundo da informtica.
Com o inegvel sucesso do Linux, a comunidade de informtica passou a notar
outros nichos que poderiam ser explorados pelo software livre.
Com banco de dados no poderia ser diferente. Com um mercado de sistemas
pagos bastante consolidado, incluindo gigantes como IBM, Microsoft e Oracle, os
bancos de dados livres comeam a mostrar sua fora. O fato que, como
aconteceu com o Linux, o banco de dados relacional est se tornando uma
commodity, seja pelo aumento de bons produtos no mercado, seja pela
concorrncia dos softwares livres. Vamos analisar neste artigo quais so os
principais bancos de dados livres e em que eles podem concorrer de fato com os
gigantes do mercado.
Inicialmente necessrio diferenciar o uso que se far do banco de dados. J h
algum tempo os bancos de dados deixaram de ser simples armazenadores de
informaes. Hoje em dia, pelo menos para os principais produtos do mercado, h
uma vasta gama de servios agregados a eles. Estruturas de dados cada vez mais
complexas esto sendo geridas e armazenadas pelos bancos de dados para
atender necessidades especficas, em especial para internet.
O padro para manipulao da informao nos bancos de dados relacionais o
SQL (Structured Query Language). O primeiro padro surgiu em 1986 e foi
definido pela ANSI (American National Standards Institute). Ficou conhecido como
SQL-86. Em 1989, surge a nova verso com modificaes significativas (SQL-89).
Em 1992 chegou-se a um padro de regras bsicas que definem os bancos de
dados relacionais. A maior parte dos bancos de dados em uso atualmente , em
alguma escala, compatvel com esta verso. Em 1999 houve a ltima alterao
deste padro. conhecida como SQL-3 ou SQL-99. Houve importantes avanos
nesta ltima verso. Algumas das mudanas mais significativas esto relacionadas
com a definio dos padres para bancos de dados Objeto-Relacionais.
Tanto os bancos de dados pagos como os livres adotam este mesmo padro. Claro
que isso no quer dizer que tanto faz utilizar um ou outro banco de dados. O que
diferencia de fato o banco de dados a forma como a informao armazenada
tratada . Cada software possui um gerenciamento diferenciado dos dados,
utilizando metodologias de replicao, garantia de integridade das informaes e
controle de transaes. Outros so mais simples, baseados em arquivos de dados.
Alguns possuem linguagens de programao completas e complexas, enquanto
outros no as possuem.
Portanto, dizer que os banco de dados seguem o padro SQL no quer dizer que
todos eles possuem as mesmas caractersticas. Geralmente, o termo SQL apenas
um indicativo que, sabendo-se o padro, ser fcil para o usurio implementar
solues personalizadas em diversos bancos de dados.
Alguns fatores influenciam na escolha de um banco de dados:
a.) Controle de redundncia: o banco de dados deve ser capaz de garantir que
os dados no tenham duplicidade. Isso normalmente conhecido como
integridade referencial. Desta forma, no seria possvel incluir dois registros com o

Prof. Paulo Roberto R. Souza

Pg. 48 / 59

BANCO

DE

DADOS

mesmo cdigo (chave primria). Tambm no seria possvel excluir um registro


que tivesse relacionamento com outras tabelas (chave estrangeira). Esta
integridade a base do modelo relacional, portanto necessrio que o banco de
dados tenha a capacidade de gerenciar o controle de redundncia.
b.) Compartilhamento de dados: a informao deve estar disponvel para
qualquer nmero de usurios de maneira rpida, concomitante e segura.
impensvel, nos dias atuais, imaginar um banco de dados exclusivo para um
usurio. A informao, cada vez mais, deve ser compartilhada por diversas
pessoas da empresa. Disponibilizar a informao com rapidez e segurana
requisito fundamental para determinar a escolha do banco de dados.
c.) Controle de acesso: essencial saber quem fez e o que cada usurio pode
fazer dentro do banco de dados. Disponibilizar a informao pouco. Deve haver
controle sobre o que disponibilizado. Deve-se analisar as possibilidades de
controle de acesso s tabelas e colunas do banco de dados e s operaes que
cada usurio pode realizar (incluso, alterao, consulta ou excluso).
d.) Cpias de Segurana: deve haver rotinas especficas para realizar cpias de
segurana dos dados armazenados.
e.) Suporte s Transaes: as transaes so originadas em qualquer operao
que seja feita nos dados armazenados. Realizar o controle sobre essas transaes,
garantindo a integridade das informaes armazenadas mesmo quando h
diversos usurios realizando operaes ao mesmo tempo, uma necessidade cada
vez mais importante para os bancos de dados. H diversos nveis para o controle
de transaes. O mnimo necessrio para os dias atuais o bloqueio por linha, ou
seja, cada alterao bloquear apenas uma linha no banco de dados. Com isso, h
uma maior disponibilidade da informao armazenada visto que poucas linhas
estaro efetivamente bloqueadas por transaes pendentes.
f.) Suporte programao: mesmo para quem utiliza arquitetura de
desenvolvimento em trs ou mais camadas, algumas operaes continuam sendo
mais rpidas se forem realizadas diretamente no banco de dados. Com isso, o
banco de dados deve possuir uma linguagem de programao que permita realizar
rotinas especficas diretamente sobre ele. Alm disso, muitas regras de negcio
so implementadas diretamente no banco de dados. Por exemplo, realizar o pedido
de compra toda vez que o estoque do produto chegar ao nvel mnimo ou bloquear
a venda, caso o cliente esteja comprando alm do seu limite de crdito.
g.) Recuperao: falhas acontecem. O que fazer quando houver uma quebra total
do banco de dados? Qual o caminho para recuperao deste desastre? Claro que
um bom backup pode resolver boa parte dos problemas, mas o que, alm disso, o
banco de dados poder fazer? Mecanismos de backup online e em diversos
servidores e clusters, entre outros, so ferramentas importantes quando um
problema acontece.
h.) Desempenho: de nada adianta ter um banco de dados completo se este for
lento para as necessidades da empresa. O desempenho do banco de dados muitas
vezes pode ser melhorado com tcnicas de tunning (ajuste) realizadas
diretamente no banco. Convm ter certeza de que o banco de dados permite
realizar estes ajustes, se eles podem ser realizados e em qual escala.
i.) Escalabilidade: necessrio saber os limites do banco de dados. Convm,
principalmente para os bancos de dados livres, considerar o tamanho mximo do
banco de dados e o nmero mximo de linhas em cada tabela. Conhecer casos de
sucesso fundamental para determinar se o banco de dados est dentro da
necessidade da empresa.

Prof. Paulo Roberto R. Souza

Pg. 49 / 59

BANCO

DE

DADOS

Algumas opes do mercado de banco de dados livre


O mais popular banco de dados livre do mercado o MySQL (www.mysql.com).
Milhares de sites na internet so mantidos neste banco de dados. Simples e
poderoso, o MySQL um sucesso inegvel para empresas de diversos portes.
A produtora do software a MySQL AB. O MySQL pode ser obtido gratuitamente
no site ou ser adquirido por preos bem mais baixos que os concorrentes. Este
banco de dados segue o padro ANSI SQL-99 e, como os demais, possui extenses
linguagem padro. A nova verso do produto possui suporte s transaes e
integridade referencial. Tambm possvel realizar replicao de dados e ainda
possui um mecanismo de cache de buscas para agilizar as consultas s tabelas.
Contudo, um dos recursos mais importantes para banco de dados ainda est
ausente no MySQL: triggers (gatilhos), procedimentos e funes armazenadas e
views (vises). Estes recursos esto prometidos para a prxima verso do produto.
Uma outra grande vantagem do MySQL a velocidade. Testes mostram que ele
compete com os lderes do mercado. Contudo, necessrio esperar para ver o que
acontecer quando tiver todos os recursos prometidos. Afinal, um banco de dados
com menos recursos, poder ser mais rpido. A independncia de plataforma
outro fator relevante. H verses do MySQL para Linux, Windows, Novell Netware,
FreeBSD, Mac OS, AIX, HP-UX e Sun, dentre outros. um produto que, devido ao
crescente uso no mundo todo, mesmo tendo um longo caminho a percorrer at
chegar a oferecer os mesmos recursos dos outros gigantes do mercado de banco
de dados, tem um futuro garantido.
Outro grande concorrente dos bancos de dados livres o PostgreSQL
(www.postgresql.com). Da mesma forma que o MySQL, o PostgreSQL compatvel
com o padro SQL-99 e possui suas prprias extenses linguagem. Tambm
pode ser obtido da internet e totalmente grtis. um projeto bastante maduro
(consta no site que o produto existe h 16 anos) e possui recursos que somente
os banco de dados pagos possuem. Alm do suporte integridade referencial,
replicao de dados e controle de transaes, possvel criar triggers (gatilhos),
procedimentos e funes armazenados, views (vises) e at herana de objetos.
Existem diversas linguagens de programao que podem ser utilizadas no
PostgreSQL. Uma delas muito semelhante ao Oracle PL/SQL. Isso diminui o
tempo de aprendizado do produto. Da mesma forma que o Oracle, o PostgreSQL
um banco de dados objeto-relacional. Por esta semelhana com o banco de dados
lder do mercado, o PostgreSQL tem se tornado uma alternativa bastante atraente
para profissionais que dominam aquela plataforma.
Mesmo com todos estes recursos, o PostgreSQL bastante veloz. Contudo, est
disponvel apenas para Unix e Linux. Pode ser instalado no Windows utilizando
uma biblioteca especfica ou utilizando o cygwin, produto que simula o ambiente
Unix no Windows. Est prometida para a prxima verso compatibilidade nativa
com o Windows. Quando isso acontecer principalmente para os usurios
Windows - por ser o banco de dados livre com maior nmero de recursos
comparveis aos lderes do mercado de banco de dados, o PostgreSQL estar se
firmando como uma opo real de uso e substituio de outros produtos.
O terceiro dos bancos de dados livres a considerar para implantao o Firebird
(www.firebirdsql.com). Ele utiliza o padro SQL-92 e possui recursos semelhantes
aos bancos de dados pagos. Possui controle de transaes, inclusive com o two
fase commit (gravao em duas fases). Tambm est disponvel em diversas

Prof. Paulo Roberto R. Souza

Pg. 50 / 59

BANCO

DE

DADOS

plataformas, como Linux, Windows, Solaris, HP-UX, Mac, dentre outros. possvel
adquirir uma verso gratuita no site e considerado bastante estvel (verses
desde 1981 com nomes diferentes). Como o PostgreSQL, o Firebird permite a
criao de triggers (gatilhos) mas os procedimentos e funes so externos ao
banco de dados. Isso d a flexibilidade de utilizar diversas linguagens de
programao, mas por outro lado compromete o desempenho. Sem dvida alguma
um produto que, apesar de estar h anos no mercado, ainda tem um bom
caminho a evoluir. Contudo, como vem de uma base de usurios fiis ao
InterBase, pode ser uma opo atrativa aos conhecedores deste banco de dados.
Concluso
inegvel que o software livre veio para ficar tambm em banco de dados. Os
produtos que existem no mercado esto provando isso. Com a natural maturidade
que um projeto deste consegue com o tempo, aliado a um grupo de pessoas
verdadeiramente obcecadas pela qualidade do produto, fica cada vez mais claro
que as empresas que vivem de venda de banco de dados tm que comear a se
preocupar.
Muitas empresas que possuem softwares proprietrios alegam que os bancos de
dados livres esto h anos-luz de distncia dos seus produtos. A realidade no
parece ser bem esta. Dependendo da necessidade pode-se utilizar um banco de
dados livre sem perda de qualidade para a empresa. Se a soluo for
departamental, a opo do software livre ainda mais vivel. Muitas empresas
esto optando por instalar verses destes bancos de dados em solues perifricas
aos sistemas principais para poder test-los e, em caso de sucesso, migrar
completamente para a nova base. Basta fazer uma visita ao site dos produtos
citados acima e verificar a quantidade e o porte das empresas que esto
realizando projetos-piloto com os produtos.
Este caminho conhecido do mercado. Assim foi e est sendo com Linux. Houve
um crescimento significativo de servidores Linux no mercado a ponto de a
Microsoft assumir que ele um grande competidor atualmente. difcil vermos
uma empresa de qualquer porte que no tenha um nico servidor Linux instalado.
Com os bancos de dados no custa repetir o caminho. Afinal, o custo de um banco
de dados significativo para qualquer empresa e a qualidade do software livre no
deixa a desejar. Se o banco de dados relacional virar uma commodity ainda no
possvel precisar. Hoje em dia, como poucas empresas possuem produtos de peso
para competir, os preos ainda so muito semelhantes. Quem necessita de bancos
de dados para toda a organizao dificilmente utilizar um dos bancos de dados
livres. Contudo, empresas menores podero faz-lo sem grandes problemas. A
ser o momento em que as grandes empresas iro notar que o midlle e o low
market existem e esto espera de produtos com qualidade e preos
competitivos.
Celso Henrique Poderoso de Oliveira
henrique@nq.com.br

Economista ps-graduado em Sistemas de Informao, trabalha desde 1986 com


informtica e desde 1996 com banco de dados Oracle. Gerente de TI na Net Quality
Informtica (www.nq.com.br), empresa desenvolvedora ERP para Construo Civil, webcommerce e professor de Banco de Dados Oracle na FIAP Faculdade de Informtica e
Administrao Paulista iap (www.fiap.com.br). Autor dos livros Oracle PL/SQL 8i, Oracle
PL/SQL 9i, Oracle Builtins 9i e SQL Curso Prtico, todos publicados pela Editora Novatec
(www.novateceditora.com.br).

Prof. Paulo Roberto R. Souza

Pg. 51 / 59

BANCO

DE

DADOS

2) Conexo ASP MYSQL


Como j vimos, utilizar um banco de dados exige habilidades diversas. Na
aula de hoje, iremos estar trabalhando um pouco com interfaces para o mysql.
Vejamos como esta estrutura:
Aplicativo (Telas)

Interfaces
(ADO,RDO,DBI)

Driver

Banco
(MySQL
Na criao de pginas web (html), quando desejamos que o contedo da
pgina seja alterado, temos que alterar seu cdigo. Utilizando uma linguagem para
web (Asp, PHP, etc), a pgina alterada automaticamente, no momento em que
mudamos os dados constantes nas tabelas no banco.
Como vimos no desenho acima, isso realizado atravs de uma interface e
de um driver que se conectam ao banco possibilitando que as informaes que
montam a pgina sejam dinmicas, ou seja, se modifiquem automaticamente.
Na verdade, isso funciona da seguinte forma: O aplicativo diz para a interface
conectar-se ao banco de dados. O aplicativo fornece algumas informaes, como o
endereo e o nome do banco com que o aplicativo quer falar. A interface pega essas
informaes e faz uma chamada para o driver. O driver recebe essas informaes e
faz a conexo. Ele sabe com que porta falar e como conversar com o banco. A porta
muito semelhante ao nmero de telefone da pessoa com que voc est tentando
chamar. uma linha de comunicao. Agora, os dados podem fluir livremente entre
aplicativo (telas) e o banco de dados.
Resumidamente, necessitamos de alguns recursos para que isso funcione. Para
conectarmos o ASP com MySQL necessitamos dos seguintes recursos:
1) Servidor web (PWS-Personal Web Server ou IIS Internet Information
Server) Deve ser instalado. O pws consta no cd do Windows 98.
2) MySql www.mysql.com
3) Interface (ADO). nativo.
4) Driver (ODBC). Deve ser instalado.
Prof. Paulo Roberto R. Souza

Pg. 52 / 59

BANCO

DE

DADOS

5) Nome endereo IP do servidor web (mquina onde voc instalou o pws).


6) Nome e local do banco de dados.
7) Usurio e senha.
O MySql tambm pode ser utilizado com a linguagem PHP, porm, esta
necessita de um servidor mais apurado (apache) e complicado de configurar. Por
esta razo, estaremos trabalhando com o pws e asp.
Vejamos um cdigo ASP para conexo um banco e consulta da tabela
clientes:
<%
set con = Server.CreateObject("ADODB.Connection")
con.Open "DSN=localhost"
set rs = con.Execute("Select * from clientes")
while not rs.EOF
response.write rs("Codigo") & " " & rs("Nome") & "<br>"
rs.movenext
wend
%>

Prof. Paulo Roberto R. Souza

Pg. 53 / 59

BANCO

DE

DADOS

3 - Alguns comandos SQL


Comando

Funo

Create Database nomebanco

Cria o banco de dados com o nome (nomebanco).

Drop Database nomebanco

Exclui o banco de dados com o nome (nomebanco).

Use nomebanco

Abre o banco de dados de nome nomebanco

Show Databases;

Mostra os bancos de dados do servidor.

Show tables;

Mostra as tabelas do banco selecionado.

Desc nometabela;

Mostra a estrutura da tabela informada (nometabela)

Show columns from nometabela;

Mostra a estrutura da tabela informada (nometabela)

Alter table nometabela


campo_1 campo1 varchar(20);

change

Altera o nome do campo campo_1 para campo1.

Alter table nometabela change nome


Altera o tipo do campo nome de varchar(20) para
nome varchar(50);
varchar(50).
Create table nometabela (campo1
tipo, campo2 tipo, campo3 tipo);

Cria uma tabela no banco de dados selecionado.

Ex: create table clientes (codigo


Cria a tabela clientes com os campos especificados. A
integer auto_increment primary key, nome clusula auto_increment significa auto numerao, primary
varchar(40) not null, ender varchar(40),
key indica chave primria e not null diz que o preenchimento
bairro varchar(20), cidade varchar(20),
do campo obrigatrio ou seja, no aceita valores nulos.
estado char(2));
Insert into tabela (campos) values
Insere valores na tabela especificada, deve-se informar
(valores)
campos e valores.
Ex: insert into clientes (codigo,
nome, ender, cidade, bairro, estado)

Insere um registro na tabela clientes

values(1, Paulo Roberto, Av.


Renato Azeredo, Jardim Amrica,
Trs Coraes, MG);

nome;

Select * from nometabela;

Seleciona (Mostra) todos campos e todos registros da


tabela (nometabela)

Ex: Select * from clients order by

Mostra todos campos de todos registros da tabela


clients ordenados pelo nome.

Prof. Paulo Roberto R. Souza

Pg. 54 / 59

BANCO
Ex2: Select codigo, nome
clientes where estado=MG;
Ex3:
Select
codigo,
Max(salrio) from funcionrios;

DE

DADOS

from

Mostra os campos codigo e nome da tabela clientes


enquanto o estado for igual a MG.

nome,

Mostra o codigo, nome e maior salrio da tabela


funcionrios.

Update nometabela set nomecampo


Atualiza o campo (nomecampo) da
= valor where condio
(nometabela) para valor (valor) enquanto condio

tabela

Ex:
update
tabprecos
set
Reajusta em 20% os preos dos produtos cujo tipo for
precovenda=(precovenda*1,2)
where igual a 2
tipoproduto=2;
Delete
condio;

from

nometabela

where

Exclui todos registros da tabela (nometabela) enquanto


condio.

Ex: delete from clientes where


Exclui todos registros dos clientes cujo estado for
estado=SP;
igual a SP.
Select campo.tab1, campo.tab1,
Mostra todos registros relacionados das tabelas tab1 e
campo.tab2, campo.tab3 from tab1 inner tab2 desde a condio aps a clusula on seja satisfeita.
join tab2 on campo.tab1=campo.tab2

Select campo.tab1, campo.tab1,


Mostra todos registros da tabela tab1 (left esquerda)
campo.tab2, campo.tab3 from tab1 left e os relacionados da tabelas tab2 desde a condio aps a
join tab2 on campo.tab1=campo.tab2
clusula on seja satisfeita.

Select campo.tab1, campo.tab1,


Mostra todos registros da tabela tab2 (right direita) e
campo.tab2, campo.tab3 from tab1 right os relacionados da tabelas tab1 desde a condio aps a
join tab2 on campo.tab1=campo.tab2
clusula on seja satisfeita.

Prof. Paulo Roberto R. Souza

Pg. 55 / 59

BANCO

DE

DADOS

4. Tecnologias Emergentes
Bancos de Dados

que

utilizam

Business Inteligence
O que Business Intelligence (BI)?
Conjunto de ferramentas e aplicaes que visam potenciar a utilizao de
informao de gesto por todos os elementos da organizao de forma a melhorar os
processos internos e os seus resultados.

Data Warehouse/Data Marts


Pela tica do usurio final, Data Warehouse um banco de dados de alta
disponibilidade, com todas as informaes gerenciais/estratgicas de que precisam
para tomar decises, com dados confiveis e em formato e gregao adequados.
Os dados so sempre atualizados com a freqncia correta, preservando o
histrico para permitir anlises comparativas e a realizao de projees.
Data Mart uma abordagem especfica do DW, focada em uma rea ou
departamento

Caractersticas das ferramentas de BI para usurios finais

Acesso aos dados e anlise das informaes;

Busca dos dados de vrias fontes, sendo possvel o correlacionamento dos


mesmos;

Prof. Paulo Roberto R. Souza

Pg. 56 / 59

BANCO

DE

DADOS

Apresentao dos dados j agregados, trabalhados, contextualizados


permitindo, assim, um melhor entendimento do negcio e um melhor
planejamento das aes.

Ferramentas de BI

Planilhas eletrnicas;

EIS ( Executive Information System);

Softwares de Query & Report;

Ferramentas OLAP (On Line Analytical Processing);

Data Mining
CRM - Customer Relationship Management

CRM a denominao adotada para o conjunto de ferramentas e processos que


envolvem as atividades de atendimento ao cliente, o registro de suas manifestaes e
encaminhamento destas s reas verticais que cuidam de sua resoluo, dentro ou fora da
empresa, abastecendo uma base de conhecimentos deste cliente atravs da formao do
histrico de seu relacionamento com a organizao, nas suas mais variadas formas, por
qualquer meio de contato.

ERP
Enterprise Resource Planning designa pacotes integrados de gesto, sistemas de
informao com mdulos integrados que do suporte a diversas reas operacionais, tais como
vendas, produo, gesto de materiais, contabilidade e pessoal.
Os sistemas ERP tm como objetivo aprimorar a gesto das empresas, aumentando a
produtividade dos processos operacionais, ajudando a controlar custos e reduzir despesas, e
criando uma base confivel de informaes gerenciais, permitindo um planejamento estratgico
mais seguro.
A implantao de um sistema ERP possui diversas fases, que se iniciam com a
escolha do produto mais adequado s necessidades e caractersticas de sua empresa, passam
pela instalao do sistema e continuam com as atividades ps-implantao. Modificaes,
atualizaes, novas funcionalidades, treinamento, suporte aos usurios, so algumas das
atividades necessrias aps a implantao do ERP. Para todas estas atividades voc precisa
contar com uma empresa com conhecimento e experincia.

EIS - Executive Information System


Os EIS (Executive Information Systems) - Sistemas de Informaes Executivas - so
sistemas
desenvolvidos para atender as necessidades dos executivos de uma empresa, de
obterem informaes gerenciais de uma maneira simples e rpida.
Caractersticas:

Prof. Paulo Roberto R. Souza

Pg. 57 / 59

BANCO

DE

DADOS

Atender s necessidades de informaes dos executivos de alto nvel


Possibilidade de customizao
Possuir recursos grficos de alta qualidade
Facilidade de uso

Data Warehouse
Data Warehouse (DW), que consiste em organizar os dados corporativos da melhor
maneira, para dar subsdio de informaes aos gerentes e diretores das empresas para
tomada de deciso. Tudo isso num banco de dados paralelo aos sistemas operacionais da
empresa.

Minerao de dados - Data Mining


A minerao de dados consiste no uso do computador para vasculhar imensos bancos
de dados em busca de tendncias que passariam despercebidas aos olhos humanos.

ASP (Application Service Provider)


Uma empresa funciona como ASP, ou Application Service Provider, quando oferece um
servio para o fornecimento, armazenamento e gerenciamento de uma soluo ou software a
partir de uma base centralizada, de forma que essas aplicaes so acessadas remotamente
pela Internet.
O que se exigir de seus fornecedores ASP?
Desempenho
Segurana
Flexibilidade para implantar novas tecnologias

Data Center
Os Data centers so instalaes compostas de centenas de servidores que oferecem servios
de gerenciamento do ambiente, alta disponibilidade 24x7(24 horas sete dias por semana 365
dias por ano), planejamento de capacidade, avaliao de performance de sistema operacional
e aplicativos, monitoramento, backup, balanceamento de carga - entre outros -, para a
hospedagem de dados/aplicaes, e-commerce, sites, etc.

Prof. Paulo Roberto R. Souza

Pg. 58 / 59

BANCO

DE

DADOS

5. Bibliografia

RAMEZ Elmasri, Shamkant Navathe; Fundamentals of Database Systems; The Benjamin


CummingsPublishing Company; 1989;
HENRY F. Korth, Abraham Silberschatz; Sistema de Banco de Dados; Makron Books; 1995;
SQL Language - Oracle Reference Manual; Version 7.2;
http://www.dbqconsult.com.br/dbqc_ads1.htm acessado em 29/01/2005
SETZER, V. M.. Banco de dados. 3a ed.

So Paulo: Ed. Edgard Blucher; 1998.

DATE, C. J., Introduo a Sistemas de Banco de Dados, 8 ed, Campus, 1990.


Livros de referncia:
KORTH, .F. & SILBERSHATZ, A. Sistemas de banco de dados. So Paulo; Makron Books;
2a ed. 1999.
DATE, C. J., An Introduction to Database System, sixth edition, 1995.

Prof. Paulo Roberto R. Souza

Pg. 59 / 59

Você também pode gostar