Upload
alessandro-dias
View
224
Download
0
Embed Size (px)
Citation preview
8/4/2019 Sistema Gerenciador de Banco de Dados
1/42
Unimar - Universidade de Marlia F.C.T.
Apresentao
Este curso tem como objetivo, oferecer uma noo geral sobre a construo de sistemasde banco de dados. Para isto, necessrio estudar modelos para a construo de projetos
lgicos de bancos de dados, modelos para a construo de projetos fsicos de banco de dados,tcnicas de controle de dependncia de dados e mtodos de consultas.
Para construo dos modelos lgicos, ser estudado o modelo Entidade Relacionamento,utilizando a abordagem proposta em [ELMAS89] que oferece uma notao rica em recursos,
permitindo a modelagem de entidades normais, fracas, atributos simples, compostos,multivalorados, derivados e a modelagens de objetos mais complexos como classes e subclasses(modelo Entidade Relacionamento Extendido).
Para construo dos modelos fsicos, ser estudado o modelo Relacional comooriginalmente proposto por Codd.
Para eliminar dependncia de dados, utilizaremos a normalizao, abordando a 1a, a 2a, a3a Formas Normais, propostas originalmente por Codd.
Para a elaborao de consultas, ser estudado a lgebra Relacional, que nada mais doque uma forma cannica para as linguagens de consulta e a linguagem de consultas SQL.
Sistemas de Bancos de Dados Pgina 1
8/4/2019 Sistema Gerenciador de Banco de Dados
2/42
Unimar - Universidade de Marlia F.C.T.
1. Introduo e Conceitos Gerais
A tecnologia aplicada aos mtodos de armazenamento de informaes vem crescendo egerando 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 serarmazenados e que possuem um significado implcito. Porm, o significado do termo banco dedados mais restrito que simplesmente a definio dada acima. Um banco de dados possui asseguintes propriedades:
um banco de dados uma coleo lgica coerente de dados com um significadoinerente; uma disposio desordenada dos dados no pode ser referenciada comoum banco de dados;
um banco de dados projetado, construdo e populado com dados para um propsitoespecfico; um banco de dados possui um conjunto pr definido de usurios eaplicaes;
um banco de dados representa algum aspecto do mundo real, o qual chamado demini-mundo ; qualquer alterao efetuada no mini-mundo automaticamenterefletida no banco de dados.
Um banco de dados pode ser criado e mantido por um conjunto de aplicaesdesenvolvidas especialmente para esta tarefa ou por um Sistema Gerenciador de Banco deDados (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 manipulamo mesmo chamado de Sistema de Banco de Dados.
1.1. Abordagem Banco de Dados X Abordagem ProcessamentoTradicional de Arquivos
1.1.1. Auto Informao
Uma caracterstica importante da abordagem Banco de Dados que o SGBD mantm nosomente os dados mas tambm a forma como os mesmos so armazenados, contendo umadescrio completa do banco de dados. Estas informaes so armazenadas no catlogo doSGBD, o qual contm informaes como a estrutura de cada arquivo, o tipo e o formato dearmazenamento de cada tipo de dado, restries, etc. A informao armazenada no catlogo
chamada de Meta Dados. No processamento tradicional de arquivos, o programa que irmanipular os dados deve conter este tipo de informao, ficando limitado a manipular asinformaes que o mesmo conhece. Utilizando a abordagem banco de dados, a aplicao podemanipular diversas bases de dados diferentes.
1.1.2. Separao entre Programas e Dados
No processamento tradicional de arquivos, a estrutura dos dados est incorporada aoprograma de acesso. Desta forma, qualquer alterao na estrutura de arquivos implica naalterao no cdigo fonte de todos os programas. J na abordagem banco de dados, a estrutura alterada apenas no catlogo, no alterando os programas.
Sistemas de Bancos de Dados Pgina 2
Sistema de Banco
de Dados
DadosMeta Dados
Software de Acesso aosDados
Software para processar manipulao
Programas de Aplicao/Consulta
SGBD
8/4/2019 Sistema Gerenciador de Banco de Dados
3/42
Unimar - Universidade de Marlia F.C.T.
Figura 1. Um ambiente de Sistema de Banco de Dados
1.1.3. Abstrao de Dados
O SGBD deve fornecer ao usurio uma representao conceitual dos dados, semfornecer muitos detalhes de como as informaes so armazenadas. Um modelo de dados uma abstrao de dados que utilizada para fornecer esta representao conceitual utilizandoconceitos lgicos como objetos, suas propriedades e seus relacionamentos. A estrutura
detalhada e a organizao de cada arquivo so descritas no catlogo.
1.1.4. Mltiplas Vises de Dados
Como um conjunto de informaes pode ser utilizada por um conjunto diferenciado deusurios, importante que estes usurios possam ter vises diferentes da base de dados. Umaviso definida como um subconjunto de uma base de dados, formando deste modo, umconjunto virtual de informaes.
1.2. Usurios
Para um grande banco de dados, existe um grande nmero de pessoas envolvidas, desde
o projeto, uso at manuteno.
1.2.1. Administrador de Banco de Dados (DBA)
Em um ambiente de banco de dados, o recurso primrio o banco de dados por si s e orecurso secundrio o SGBD e os softwares relacionados. A administrao destes recursos cabeao Administrador de Banco de Dados, o qual responsvel pela autorizao de acesso ao bancode dados e pela coordenao e monitorao de seu uso.
1.2.2. 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 armazenardados. Muitas vezes, os projetistas de banco de dados atuam como staff do DBA, assumindo
Sistemas de Bancos de Dados Pgina 3
8/4/2019 Sistema Gerenciador de Banco de Dados
4/42
Unimar - Universidade de Marlia F.C.T.
outras responsabilidades aps a construo do banco de dados. funo do projetista tambmavaliar 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 necessidadesdos usurios.
1.2.3. Usurios Finais
Existem basicamente trs categorias de usurios finais que so os usurios finais dobanco de dados, fazendo consultas, atualizaes e gerando documentos:
usurios casuais: acessam o banco de dados casualmente, mas que podem necessitarde diferentes informaes a cada acesso; utilizam sofisticadas linguagens deconsulta 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.
1.2.4. 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 estasespecificaes como programas, testando, depurando, documentando e dando manuteno nomesmo. importante que, tanto analistas quanto programadores, estejam a par dos recursosoferecidos pelo SGBD.
1.3. Vantagens e desvantagens do uso de um SGBD
1.3.1. 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 queprejudicam o sistema com problemas como:
toda vez que for necessrio atualizar um arquivo de um grupo, ento todos os gruposdevem ser atualizados para manter a integridade dos dados no ambiente como umtodo;
a redundncia desnecessria de dados levam ao armazenamento excessivo deinformaes, ocupando espao que poderia estar sendo utilizado com outras
informaes.
1.3.2. Compartilhamento de Dados
Um SGBD multi-usurio deve permitir que mltiplos usurios acessem o banco de dadosao mesmo tempo. Este fator essencial para que mltiplas aplicaes integradas possamacessar o banco.
O SGBD multi-usurio deve manter o controle de concorrncia para assegurar que oresultado de atualizaes sejam corretos. Um banco de dados multi-usurios deve fornecerrecursos para a construo de mltiplas vises.
1.3.3. Restrio a Acesso no Autorizado
Sistemas de Bancos de Dados Pgina 4
8/4/2019 Sistema Gerenciador de Banco de Dados
5/42
Unimar - Universidade de Marlia F.C.T.
Um SGBD deve fornece um subsistema de autorizao e segurana, o qual utilizadopelo DBA para criar contas e especificar as restries destas contas; o controle de restriesse aplica tanto ao acesso aos dados quanto ao uso de softwares inerentes ao SGBD.
1.3.4. Representao de Relacionamentos Complexos entre Dados
Um banco de dados pode incluir uma variedade de dados que esto interrelacionados devrias formas. Um SGBD deve fornecer recursos para se representar uma grande variedade derelacionamentos entre os dados, bem como, recuperar e atualizar os dados de maneira prtica eeficiente.
1.3.5. Tolerncia a Falhas
Um SGBD deve fornecer recursos para recuperao de falhas tanto de software quanto dehardware.
1.3.6. Quando no Utilizar um SGBD
Em algumas situaes, o uso de um SGBD pode representar uma carga desnecessria aoscustos quando comparado abordagem processamento tradicional de arquivos como porexemplo:
alto investimento inicial na compra de software e hardware adicionais;
generalidade que um SGBD fornece na definio e processamento de dados;
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 aplicaesno so implementadas de forma apropriada. Se o DBA no administrar o banco de dados deforma apropriada, tanto a segurana quanto a integridade dos sistemas podem sercomprometidas. A sobrecarga causada pelo uso de um SGBD e a m administrao justificam autilizao da abordagem processamento tradicional de arquivos em casos como:
o banco de dados e as aplicaes so simples, bem definidas e no se espera mudanasno projeto;
a necessidade de processamento em tempo real de certas aplicaes, que soterrivelmente prejudicadas pela sobrecarga causada pelo uso de um SGBD;
no haver mltiplo acesso ao banco de dados.
Sistemas de Bancos de Dados Pgina 5
8/4/2019 Sistema Gerenciador de Banco de Dados
6/42
Unimar - Universidade de Marlia F.C.T.
2. Conceitos e Arquiteturas de um SGBD
2.1. Modelos de Dados
Uma das principais caractersticas da abordagem banco de dados, que a mesma fornecealguns nveis de abstrao de dados omitindo ao usurio final, detalhes de como estes dados soarmazenados. 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 podemoscompreender o tipo dos dados, os relacionamentos e as restries que podem recair sobre osdados.
Os modelos de dados podem ser basicamente de dois tipos:
alto nvel: ou modelo de dados conceitual, que fornece uma viso mais prxima domodo como os usurios visualizam os dados realmente;
baixo nvel: ou modelo de dados fsico, que fornece uma viso mais detalhada domodo como os dados esto realmente armazenados no computador.
2.2. Esquemas e Instncias
Em qualquer modelo de dados utilizado, importante distinguir a descrio do bancode dados do banco de dados por si prprio. A descrio de um banco de dados chamada deesquema de um banco de dados e especificada durante o projeto do banco de dados.Geralmente, poucas mudanas ocorrem no esquema do banco de dados.
Os dados armazenados em um banco de dados em um determinado instante do tempoformam um conjunto chamado de instncia do banco de dados. A instncia altera toda vez
que uma alterao no banco de dados feita.O SGBD responsvel por garantir que toda instncia do banco de dados satisfaa ao
esquema do banco de dados, respeitando sua estrutura e suas restries. O esquema de umbanco de dados tambm pode ser chamado de intenso de um banco de dados e a instncia deextenso de um banco de dados.
2.3. A Arquitetura Trs Esquemas
A principal meta da arquitetura trs esquemas (figura 2) separar as aplicaes dousurio do banco de dados fsico. Os esquemas podem ser definidos como:
nvel interno: ou esquema interno, o qual descreve a estrutura de armazenamentofsico do banco de dados; utiliza um modelo de dados e descreve detalhadamenteos dados armazenados e os caminhos de acesso ao banco de dados;
nvel conceitual: ou esquema conceitual, o qual descreve a estrutura do banco dedados como um todo; uma descrio global do banco de dados, que no fornecedetalhes do modo como os dados esto fisicamente armazenados;
nvel externo: ou esquema de viso, o qual descreve as vises do banco de dados paraum grupo de usurios; cada viso descreve quais pores do banco de dados um grupode usurios ter acesso.
Sistemas de Bancos de Dados Pgina 6
Usurios Finais
NVELEXTERNO
NVELCONCEITUAL
NVELINTERNO
Banco de Dados Armazenado
MapeamentoConceitual Interno
MapeamentoConceitual Externo
...
Esquema Interno
Esquema Conceitual
Viso Externa nViso Externa 1
8/4/2019 Sistema Gerenciador de Banco de Dados
7/42
Unimar - Universidade de Marlia F.C.T.
Figura 2: Arquitetura Trs Esquemas
2.4. Independncia de Dados
A independncia de dados pode ser definida como a capacidade de se alterar umesquema em um nvel em um banco de dados sem ter que alterar um nvel superior (figura 2).Existem dois tipos de independncia de dados:
independncia de dados lgica: a capacidade de alterar o esquema conceitual sem terque alterar o esquema externo ou as aplicaes do usurio;
independncia de dados fsica: a capacidade de alterar o esquema interno sem terque alterar o esquema conceitual, o esquema externo ou as aplicaes do usurio.
2.5. As Linguagens para Manipulao de Dados
Para a definio dos esquemas conceitual e interno pode-se utilizar uma linguagemchamada DDL (Data Definition Language - Linguagem de Definio de Dados). O SGBD
possui um compilador DDL que permite a execuo das declaraes para identificar as
Sistemas de Bancos de Dados Pgina 7
8/4/2019 Sistema Gerenciador de Banco de Dados
8/42
Unimar - Universidade de Marlia F.C.T.
descries dos esquemas e para armazen-las no catlogo do SGBD. A DDL utilizada emSGBDs 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 Definiode 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 maisuma linguagem para a definio de vises, a VDL (Vision Definition Language - Linguagem deDefinio de Vises).
Uma vez que o esquema esteja compilado e o banco de dados esteja populado, usa-seuma linguagem para fazer a manipulao dos dados, a DML (Data Manipulation Language -Linguagem de Manipulao de Dados).
2.6. Os Mdulos Componentes de um SGBD
Um SGBD um sistema complexo, formado por um conjunto muito grande de mdulos.A figura 3 mostra um esquema da estrutura de funcionamento de um SGBD.
2.7. Classificao dos SGBDs
O principal critrio para se classificar um SGBD o modelo de dados no qual baseado.A grande maioria dos SGBDs conteporneos so baseados no modelo relacional, alguns emmodelos conceituais e alguns em modelos orientados a objetos. Outras classificaes so:
usurios: um SGBD pode ser mono-usurio, comumente utilizado em computadorespessoais ou multi-usurios, utilizado em estaes de trabalho, mini-computadorese mquinas de grande porte;
localizao: um SGBD pode ser localizado ou distribudo; se ele for localizado, entotodos 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 umambiente heterogneo o ambiente compostos por diferentes SGBDs.
Sistemas de Bancos de Dados Pgina 8
8/4/2019 Sistema Gerenciador de Banco de Dados
9/42
Unimar - Universidade de Marlia F.C.T.
Figura 3: Estrutura de um Sistema Gerenciador de Banco de Dados
Sistemas de Bancos de Dados Pgina 9
Usurios
DBA
usurios
ocasionais
programadores
de aplicaes
usurios
simples
Memria deDisco
dicionrio dedados
arquivo dedados
gerenciador dearquivos
gerenciadordo banco de
dados
cdigo objetodos
programas deaplicao
compilador dalinguagem de
definio de dados
processador deconsultas
pr-compilador dalinguagem demanipulao de
dados
esquema debanco de dados
consultaschamadasde rotina
programas deaplicao
SGBD
8/4/2019 Sistema Gerenciador de Banco de Dados
10/42
Unimar - Universidade de Marlia F.C.T.
3. Modelagem de Dados Utilizando o Modelo EntidadeRelacionamento (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 temdos dados, no se preocupando em representar como estes dados estaro realmentearmazenados. O modelo ER utilizado principalmente durante o processo de projeto de bancode dados.
3.1. Modelo de Dados Conceitual de Alto Nvel
A figura 4 faz uma descrio simplificada do processo de projeto de um banco de dados.
Figura 4: Fases do Projeto de um Banco de Dados
3.2. Entidades e Atributos
Sistemas de Bancos de Dados Pgina 10
Catlogo do BD
Projeto Fsico
Esquema Conceitual(Modelo do SGBD)
Mapeamento doModelo de Dados
Esquema Conceitual(Alto Nvel)
Projeto Conceitual
Requisitos do Banco deDados
Anlise e Coleta deRequisitos
Mini-Mundo
8/4/2019 Sistema Gerenciador de Banco de Dados
11/42
Unimar - Universidade de Marlia F.C.T.
O objeto bsico tratado pelo modelo ER a entidade, que pode ser definida como umobjeto do mundo real, concreto ou abstrato e que possui existncia independente. Cada entidade
possui um conjunto particular de propriedades que a descreve chamado atributos. Um atributopode ser dividido em diversas sub-partes com significado independente entre si, recebendo onome de atributo composto. Um atributo que no pode ser subdividido chamado deatributo simples ou atmico.
Os atributos que podem assumir apenas um determinado valor em uma determinadainstncia denominado atributo simplesmente valorado, enquanto que um atributo que podeassumir diversos valores em uma mesma instncia denominado multi valorado.
Um atributo que gerado a partir de outro atributo chamado de atributo derivado.
3.3. Tipos Entidade, Conjunto de Valores, Atributo Chave
Um banco de dados costuma conter grupos de entidades que so similares, possuindo osmesmos atributos, porm, cada entidade com seus prprios valores para cada atributo. Esteconjunto de entidades similares definem um tipo entidade. Cada tipo entidade identificada
por seu nome e pelo conjunto de atributos que definem suas propriedades. A descrio do tipoentidade chamada de esquema do tipo entidade, especificando o nome do tipo entidade, onome de cada um de seus atributos e qualquer restrio que incida sobre as entidades.
Uma restrio muito importante em uma entidade de um determinado tipo entidade achave. Um tipo entidade possui um atributo cujos valores so distintos para cada entidadeindividual. Este atributo chamado atributo chave e seus valores podem ser utilizados paraidentificar cada entidade de forma nica. Muitas vezes, uma chave pode ser formada pelacomposio de dois ou mais atributos. Uma entidade pode tambm ter mais de um atributochave.
Cada atributo simples de um tipo entidade est associado com um conjunto de valores
denominado domnio, o qual especifica o conjunto de valores que podem ser designados paraeste determinado atributo para cada entidade.
3.4. Tipos e Instncias de Relacionamento
Alm de conhecer detalhadamente os tipos entidade, muito importante conhecertambm os relacionamentos entre estes tipos entidades.
Um tipo relacionamento R entre n entidades E1, E2, ..., En, um conjunto deassociaes entre entidades deste tipo. Informalmente falando, cada instncia de relacionamentor1 em R uma associao de entidades, onde a associao inclui exatamente uma entidade decada tipo entidade participante no tipo relacionamento. Isto significa que estas entidades esto
relacionadas de alguma forma no mini-mundo. A figura 5 mostra um exemplo entre dois tiposentidade (empregado e departamento) e o relacionamento entre eles (trabalha para). Repare que
para cada relacionamento, participam apenas uma entidade de cada tipo entidade, porm, umaentidade pode participar de mais do que um relacionamento.
Sistemas de Bancos de Dados Pgina 11
DepartamentoTrabalha Para
Empregado
e1
e2
e3e4
e5
e6
e7
d1
d2
d3
8/4/2019 Sistema Gerenciador de Banco de Dados
12/42
Unimar - Universidade de Marlia F.C.T.
Figura 5: Exemplo de um Relaciomento
3.5. Grau de um Relacionamento
O grau de um tipo relacionamento o nmero de tipos entidade que participam do tiporelacionamento. No exemplo da figura 5, temos um relacionamento binrio. O grau de umrelacionamento ilimitado, porm, a partir do grau 3 (ternrio), a compreenso e a dificuldadede se desenvolver a relao corretamente se tornam extremamente complexas.
3.6. Outras Caractersticas de um Relacionamento
3.6.1. Relacionamentos como Atributos
Algumas vezes conveniente pensar em um relacionamento como um atributo.Considere o exemplo da figura 5. Podemos pensar departamento como sendo um atributo da
entidade empregado, ou empregado, como um atributo multivalorado da entidadedepartamento. Se uma entidade no possuir existncia muito bem definida, talvez seja maisinteressante para a coesividade do modelo lgico que ela seja representada como um atributo.
3.6.2. Nomes de Papis e Relacionamentos Recursivos
Cada tipo entidade que participa de um tipo relacionamento desempenha um papelparticular no relacionamento. O nome do papel representa o papel que uma entidade de um tipoentidade participante desempenha no relacionamento. No exemplo da figura 5, ns temos o
papel empregado ou trabalhador para o tipo entidade EMPREGADO e o papel departamento ouempregador para a entidade DEPARTAMENTO. Nomes de papis no so necessariamenteimportantes quando todas as entidades participantes desempenham papis diferentes. Algumasvezes, o papel torna-se essencial para distinguir o significado de cada participao. Isto muitocomum em elacionamentos recursivos.
Um relacionamento recursivo um relacionamento entre entidades do mesmo tipoentidade. Veja o exemplo da figura 6.
Sistemas de Bancos de Dados Pgina 12
Su ervisionado
Supervisiona
Supervisiona
EMPREGADO
e1
e2
e3
e4
e5
8/4/2019 Sistema Gerenciador de Banco de Dados
13/42
Unimar - Universidade de Marlia F.C.T.
Figura 6 - Um Relacionamento Recursivo
No exemplo, temos um relacionamento entre o tipo entidade EMPREGADO, onde umempregado pode supervisionar outro empregado e um empregado pode ser supervisionado por
outro empregado.
3.6.3. Restries em Tipos Relacionamentos
Geralmente, os tipos relacionamentos sofrem certas restries que limitam as possveiscombinaes das entidades participantes. Estas restries so derivadas de restries impostas
pelo estado destas entidades no mini-mundo. Veja o exemplo da figura 7.
Figura 7 - Relacionamento EMPREGADO gerencia DEPARTAMENTO
No exemplo da figura 7, temos a seguinte situao: um empregado pode gerenciar apenasum departamento, enquanto que um departamento, pode ser gerenciado por apenas umempregado. A este tipo de restrio, ns chamamos cardinalidade. A cardinalidade indica onmero de relacionamentos dos quais uma entidade pode participar. A cardinalidade pode ser:1:1, 1:N, M:N. No exemplo da figura 7, a cardinalidade 1:1, pois cada entidade empregado
pode gerenciar apenas um departamento e um departamento pode ser gerenciado por apenas umempregado. No exemplo da figura 5, no relacionamento EMPREGADO Trabalha ParaDEPARTAMENTO, o relacionamento 1:N, pois um empregado pode trabalhar em apenas um
departamento, enquanto que um departamento pode possuir vrios empregados. Na figura 8temos um exemplo de um relacionamento com cardinalidade N:M.
Sistemas de Bancos de Dados Pgina 13
Departamento
Gerencia
Empregado
e1
e2
e3
e4
e5
e6
e7
d1
d2
d3
8/4/2019 Sistema Gerenciador de Banco de Dados
14/42
Unimar - Universidade de Marlia F.C.T.
Figura 8 - Relacionamento N:M
No exemplo da figura 8, ns temos que um empregado pode trabalhar em vrios projetosenquanto que um projeto pode ter vrios empregados trabalhando.
Outra restrio muito importante a participao. A participao define a existncia deuma entidade atravs do relacionamento, podendo serparcial ou total. Veja o exemplo dafigura 7. A participao do empregado parcial pois nem todo empregado gerencia umdepartamento, porm a participao do departamento neste relacionamento total pois tododepartamento precisa ser gerenciado por um empregado. Desta forma, todas as entidades dotipo entidade DEPARTAMENTO precisam participar do relacionamento, mas nem todas asentidade do tipo entidade EMPREGADO precisam participar do relacionamento. J no exemplo
da figura 5, ambas as participaes so totais pois todo empregado precisa trabalhar em umdepartamento 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. Vejao exemplo da figura 7. Eu posso querer saber em que dia o empregado passou a gerenciar odepartamento. difcil estabelecer a qual tipo entidade pertence atributo, pois o mesmo definido apenas pela existncia do relacionamento. Quando temos relacionamentos comcardinalidade 1:1, podemos colocar o atributo em uma das entidades, de preferncia, em umacujo tipo entidade tenha participao total. No caso, o atributo poderia ir para o tipo entidadedepartamento. 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 oexemplo da figura 8. Caso queiramos armazenar quantas horas cada empregado trabalhou emcada projeto, ento este dever ser um atributo do relacionamento.
3.6.4. Tipos Entidades Fracas
Alguns tipos entidade podem no ter um atributo chave por si s. Isto implica que nopoderemos distinguir algumas entidades por que as combinaes dos valores de seus atributospodem ser idnticas. Estes tipos entidade so chamados entidades fracas. As entidades destetipo precisam estar relacionadas com uma entidade pertencente ao tipo entidade proprietria.Este relacionamento chamado de relacionamento identificador. Veja o exemplo da figura 9.
Sistemas de Bancos de Dados Pgina 14
PossuiDependentesEmpregado
e1
e2p1
p2
p3
Dependente
ProjetoTrabalha Em
Empregado
e1e2
e3
e4
p1
p2
p3
8/4/2019 Sistema Gerenciador de Banco de Dados
15/42
Unimar - Universidade de Marlia F.C.T.
Figura 9 - Relacionamento com uma Entidade Fraca (Dependente)
O tipo entidade DEPENDENTE uma entidade fraca pois no possui um mtodo deidentificar uma entidade nica. O EMPREGADO no uma entidade fraca pois possui umatributo para identificao (atributo chave). O nmero do RG de um empregado identifica umnico 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 possuiuma chave parcial, que juntamente com a chave primria da entidade proprietria forma umachave 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. Destaforma, a chave primria desta entidade fica sendo o RG do pai ou me mais o nome dodependente.
Todos os exemplos vistos acima foram para relacionamentos binrios, ou seja, entre doistipos entidades diferentes ou recursivos. Porm, o modelo entidade relacionamento no serestringe apenas relacionamentos binrios. O nmero de entidades que participam de um tiporelacionamento irrestrito e armazenam muito mais informaes do que diversosrelacionamentos binrios. Considere o seguinte exemplo:
Um motorista pode efetuar uma viagem para uma localidade dirigindo um determinadocaminho em uma determinada data.
Se efetuarmos trs relacionamentos binrios, no teremos estas informaes de formacompleta como se criassemos um relacionamento ternrio. Veja o resultado como fica noexemplo da figura 10.
Sistemas de Bancos de Dados Pgina 15
data 5
data 4
data 1data 2
data 3
M4
M3
M2
M1
L2L1 L3
C2
C3
C1
8/4/2019 Sistema Gerenciador de Banco de Dados
16/42
Unimar - Universidade de Marlia F.C.T.
Figura 10 - Relacionamento Ternrio
3.7. Diagrama Entidade Relacionamento
O diagrama Entidade Relacionamento composto por um conjunto de objetos grficosque 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 conceitomais generalizado de como esto estruturados os dados de um sistema.
Os objetos que compem o diagrama ER esto listados a seguir, na figura 11.
Sistemas de Bancos de Dados Pgina 16
8/4/2019 Sistema Gerenciador de Banco de Dados
17/42
Unimar - Universidade de Marlia F.C.T.
Figura 11- Objetos que Compem o Diagrama ER
3.8. Modelo Entidade Relacionamento Extendido
Os conceitos do modelo Entidade Relacionamento discutidos anteriormente sosuficientes 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 paraa modelagem de informaes mais complexas. O modelo Entidade RelacionamentoExtendido (ERE) visa fornecer esta semntica para permitir a representao de informaescomplexas. 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 desubclasse, superclasse, generalizao e especializao e o conceito de herana de atributos.
3.8.1. Subclasses, Superclasses e Especializaes
Sistemas de Bancos de Dados Pgina 17
Restrio Estrutural (min,max) naParticipao de E1 em R
(min,max) E1R
Taxa de Cardinalidade 1:Npara E1:E2 em R
Participao Parcial de E1 em R,Participao Total de E2 em R
N1R E2E1 R E2E1
ATRIBUTODERIVADO
ATRIBUTOCOMPOSTO
ATRIBUTOMULTI
VALORADO
ATRIBUTOCHAVE
ATRIBUTO
TIPORELACIONAMENTO
IDENTIFICADOR
TIPORELACIONAMENTO
TIPOENTIDADE
FRACA
TIPOENTIDADE
8/4/2019 Sistema Gerenciador de Banco de Dados
18/42
Unimar - Universidade de Marlia F.C.T.
O primeiro conceito do modelo ERE que ser abordado o de subclasse de um tipoentidade. Como visto anteriormente, um tipo entidade utilizado para representar um conjuntode entidades do mesmo tipo. Em muitos casos, um tipo entidade possui diversos subgruposadicionais de entidades que so significativas e precisam ser representadas explicitamentedevido ao seu significado aplicao de banco de dados. Leve em considerao o seguinteexemplo:
Para um banco de dados de uma empresa temos o tipo entidade empregado, o qualpossui 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-searmazenar as seguintes informaes: nmero do CREA e especialidade (Civil,Mecnico, Eltro/Eletrnico); caso o(a) funcionrio(a) seja um(a) secretrio(a), entodeseja-se armazenar as seguinte informaes: qualificao (bi ou tri lngue) e osidiomas no qual possui fluncia verbal e escrita.
Se as informaes nmero do CREA, especialidade, tipo e idiomas forem representadasdiretamente no tipo entidade empregado estaremos representando informaes de um conjunto
limitados de entidades empregado para os todos os funcionrios da empresa. Neste caso,podemo criar duas subclasses do tipo entidade empregado: engenheiro e secretria, as quaisiro conter as informaes acima citadas. Alm disto, engenheiro e secretria podem terrelacionamentos especficos.
Uma entidade no pode existir meramente como componente de uma subclasse. Antes deser componente de uma subclasse, uma entidade deve ser componente de uma superclasse. Istoleva ao conceito de herana de atributos; ou seja, a subclasse herda todos os atributos dasuperclasse. Isto porque a entidade de subclasse representa as mesmas caracterscticas de umamesma entidade da superclasse. Uma subclasse pode herdar atributos de superclasses diferentes.
A figura 12 mostra a representao diagramtica do exemplo acima.
Figura 12 - Representao de Superclasse e Subclasses
3.8.3. Especializao
Sistemas de Bancos de Dados Pgina 18
Funo
d
idiomas
qualificao
especializao
No registro
endereo
sexo
rg
no. funcional
dt. nasc.nome
Secretria
Empregado
Engenheiro
8/4/2019 Sistema Gerenciador de Banco de Dados
19/42
Unimar - Universidade de Marlia F.C.T.
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 distingua as entidades entre si.
No exemplo da figura 12, temos uma especializao, a qual podemos chamar defuno.Veja agora no exemplo da figura 13, temos a entidade empregado e duas especializaes.
Figura 13 - Duas Especializaes para Empregado:Funo e Categoria Salarial
Como visto anteriormente, uma subclasse pode ter relacionamentos especficos comoutras entidades ou com a prpria entidade que a sua superclasse. Veja o exemplo da figura14.
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;
Sistemas de Bancos de Dados Pgina 19
Categoria SalarialFuno
dd
MensalistaHoristaSecretriaEngenheiro
Empregado
Funo
d
N
liderado
1 lidera
N
N
desenvolvidopor
participa
Projeto
Secretria
Empregado
Engenheiro
8/4/2019 Sistema Gerenciador de Banco de Dados
20/42
Unimar - Universidade de Marlia F.C.T.
estabelecer tipos relacionamentos especficos entre subclasses e outros tiposentidades.
3.8.4. Generalizao
A generalizao pode ser pensada como um processo de abstrao reverso ao daespecializao, no qual so suprimidas as diferenas entre diversos tipos entidades,identificando suas caractersticas comuns e generalizando estas entidades em uma superclasse
Figura 15 - Tipos EntidadesEngenheiro e Secretria
Figura 16 - GeneralizaoEmpregado para os Tipos Entidades Engenheiro e Secretria
importante destacar que existe diferena semntica entre a especializao e ageneralizao. Na especializao, podemos notar que a ligao entre a superclasse e assubclasses feita atravs de um trao simples, indicando participao parcial por parte dasuperclasse. Analisando o exemplo da figura 12, observado que um empregado no obrigado a ser um engenheiro ou uma secretria. Na generalizao, podemos notar que aligao entre a superclasse e as subclasses feita atravs de um trao duplo, indicandoparticipaototal por parte da superclasse. Analisando o exemplo da figura 16, observadoque um empregado obrigado a ser um engenheiro ou umasecretria.
A letra d dentro do crculo que especifica uma especializao ou uma generalizaosignifica disjuno. Uma disjuno em uma especializao ou generalizao indica que umaentidade do tipo entidade que representa a superclasse pode assumir apenas um papel dentro daSistemas de Bancos de Dados Pgina 20
no. funcional
rgrg nomenome
no. funcional
idiomas
qualificao
especializao
No registro
SecretriaEngenheiro
d
idiomas
qualificao
especializao
no registro
rg
no. funcional
nome
Secretria
Empregado
Engenheiro
Funo
8/4/2019 Sistema Gerenciador de Banco de Dados
21/42
Unimar - Universidade de Marlia F.C.T.
mesma. Analisando o exemplo da figura 13. Temos duas especializaes para a superclasseEmpregado, as quais so restringidas atravs de uma disjuno. Neste caso, um empregadopode ser um engenheiro ou umasecretria e o mesmo pode serhorista ou mensalista.
Alm da disjuno podemos ter um overlap, representado pela letra o. No caso dooverlap, 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 ouainda, pode ter sido manufaturada e torneada.
Figura 17 - Uma Generalizao com Overlap
3.8.5. 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 oseguinte exemplo:
Uma construtora possui diversos funcionrios, os quais podem ser engenheiros ousecretrias. Um funcionrio pode tambm ser assalariado ou horista. Todo gerente dedepartamento da construtora deve ser um engenheiro e assalariado.
O modelo lgico da expresso acima tem o seguinte formato:
Sistemas de Bancos de Dados Pgina 21
o
Preo
No. Projeto
Ordem Servio
Data
no. da pea
Descrio
Torneada
Pea
Manufaturada
Gerente
CategoriaSalarial
Funo
dd
HoristaMensalistaEngenheiroSecretaria
Empregado
8/4/2019 Sistema Gerenciador de Banco de Dados
22/42
Unimar - Universidade de Marlia F.C.T.
Figura 18 - Um Lattice com a Subclasse Gerente Compartilhada
Neste caso ento, um gerente ser um funcionrio que alm de possuir as caractersticasprprias de Gerente, herdar as caractersticas deEngenheiro e de Mensalista.
Sistemas de Bancos de Dados Pgina 22
8/4/2019 Sistema Gerenciador de Banco de Dados
23/42
Unimar - Universidade de Marlia F.C.T.
4. O Modelo Relacional
O modelo relacional foi criado por Codd em 1970 e tem por finalidade representar osdados 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 umatabela. Toda tabela pode ser considerada um arquivo, porm, nem todo arquivo pode serconsiderado uma tabela.
Quando uma relao pensada como uma tabela de valores, cada linha nesta tabelarepresenta uma coleo de dados relacionados. Estes valores podem ser interpretados comofatos descrevendo uma instncia de uma entidade ou de um relacionamento. O nome da tabela edas colunas desta tabela so utilizados para facilitar a interpretao dos valores armazenados emcada linha da tabela. Todos os valores em uma coluna so necessariamente do mesmo tipo.
Na terminologia do modelo relacional, cada tabela chamada de relao; uma linha deuma tabela chamada de tupla; o nome de cada coluna chamado de atributo; o tipo de dadoque descreve cada coluna chamado de domnio.
4.1. Domnios, Tuplas, Atributos e Relaes
Um domnio D um conjunto de valores atmicos, sendo que por atmico, podemoscompreender que cada valor do domnio indivisvel. Durante a especificao do domnio importante destacar o tipo, o tamanho e a faixa do atributo que est sendo especificado. Porexemplo:
Coluna Tipo Tamanho Faixa
RG Numrico 10,0 03000000-25999999
Nome Caracter 30 a-z, A-Z
Salrio Numrico 5,2 00100,00-12999,99
Um esquema de relao R, denotado porR(A1, A2, ... , An), onde cada atributo Ai onome do papel desempenhado por um domnio D no esquema relao R, onde D chamadodomnio de Ai e denotado por dom(Ai). O grau de uma relao R o nmero de atributos
presentes em seu esquema de relao.
A instnciar de um esquema relao denotado porr(R) um conjunto de n-tuplasr = [t1, t2, ... , tn] onde os valores de [t1, t2, ... , tn] devem estar contidos no domnio D. O valornulo tambm pode fazer parte do domnio de um atributo e representa um valor no conhecido
para uma determinada tupla.
4.2. Atributo Chave de uma Relao
Uma relao pode ser definida como um conjunto de tuplas distintas. Isto implica que acombinao dos valores dos atributos em uma tupla no pode se repetir na mesma tabela.Existir sempre um subconjunto de atributos em uma tabela que garantem que no havervalores repetidos para as diversas tuplas da mesma, garantindo que t1[SC] t2[SC].
SC chamada de superchave de um esquema de relao. Toda relao possui ao menosuma superchave - o conjunto de todos os seus atributos. Uma chave C de um esquema derelao R uma superchave de R com a propriedade adicional que removendo qualqueratributo A de K, resta ainda um conjunto de atributos K que no uma superchave de R. Umachave uma superchave da qual no se pode extrair atributos. Por exemplo, o conjunto: (RA,
Nome, Endereo) uma superchave para estudante, porm, no uma chave pois se tirarmos ocampo Endereo continuaremos a ter uma superchave. J o conjunto (Nome da Revista,
Sistemas de Bancos de Dados Pgina 23
8/4/2019 Sistema Gerenciador de Banco de Dados
24/42
Unimar - Universidade de Marlia F.C.T.
Volume, No da Revista) uma superchave e uma chave, pois qualquer um dos atributos queretirarmos, deixaremos de ter uma superchave, ou seja, (Nome da Revista, Volume) noidentifica uma nica tupla.
Em outras palavras, uma superchave uma chave composta, ou seja, uma chaveformada por mais que um atributo. Veja o exemplo abaixo:
Tabela DEPENDENTES
RGResponsvel
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 Fernanda 01/05/90 Filho Feminino
Quando uma relao possui mais que uma chave (no confundir com chave composta) -como por exemplo RG e CIC para empregados - cada uma destas chaves so chamadas dechaves candidatas. Uma destas chaves candidatas deve ser escolhida como chave primria.
Uma chave estrangeira CE de uma tabela R1 em R2 ou vice-versa, especifica umrelacionamento entre as tabelas R1 e R2.
Tabela DEPARTAMENTO
Nome Nmero RG Gerente
Contabilidade 1 10101010
Engenharia Civil 2 30303030
Engenharia Mecnica 3 20202020
Tabela EMPREGADO
Nome RG CIC Depto. RG Supervisor Salrio
Joo Luiz 10101010 11111111 1 NULO 3.000,00
Fernando 20202020 22222222 2 10101010 2.500,00
Ricardo 30303030 33333333 2 10101010 2.300,00
Jorge 40404040 44444444 2 20202020 4.200,00
Renato 50505050 55555555 3 20202020 1.300,00
4.3. Mapeamento do Modelo Entidade Relacionamento para oModelo Relacional
O mapeamento do modelo entidade relacionamento para o Modelo Relacional segue oitopassos bsicos a saber:
1. Para cada entidade E no modelo ER criada uma tabela T1 no Modelo Relacional queinclua todos os atributos simples de E; para cada atributo composto, so inseridos apenas
Sistemas de Bancos de Dados Pgina 24
8/4/2019 Sistema Gerenciador de Banco de Dados
25/42
Unimar - Universidade de Marlia F.C.T.
os componentes simples de cada um; um dos atributos chaves de E deve ser escolhidacomo a chave primria de T1;
2. Para cada entidade fraca EF com entidade proprietria E no modelo ER, criada umatabela T1 no Modelo Relacional incluindo todos os atributos simples de EF; para cadaatributo composto , so inseridos apenas os componentes simples de cada um; a chave
primria desta relao T1 ser composta pela chave parcial da entidade fraca EF mais achave primria da entidade proprietria E;
3. Para cada relacionamento regular com cardinalidade 1:1 entre entidades E1 e E2 quegeraram as tabelas T1 e T2 respectivamente, devemos escolher a chave primria de umadas relaes (T1, T2)e inser-la como chave estrangeira na outra relao; se um dos ladosdo relacionamento tiver participao total e outro parcial, ento interessante que a chavedo lado com participao parcial seja inserido como chave estrangeira no lado que tem
participao total;
4. Para cada relacionamento regular com cardinalidade 1:N entre entidades E1 e E2respectivamente e que geraram as tabelas T1 e T2 respectivamente, deve-se inserir a chave
primria de T1 como chave estrangeira em T2;
5. Para cada relacionamento regular com cardinalidade N:N entre entidades E1 e E2, cria-se uma nova tabela T1, contendo todos os atributos do relacionamento mais o atributochave de E1 e o atributo chave de E2; a chave primria de T1 ser composta pelosatributos chave de E1 e E2;
6. Para cada atributo multivalorado A1, cria-se uma tabela T1, contendo o atributomultivalorado A1, mais o atributo chave C da tabela que representa a entidade ourelacionamento que contm A1; a chave primria de T1 ser composta porA1 mais C; seA1 for composto, ento a tabela T1 dever conter todos os atributos de A1;
7. Para cada relacionamento n-rio, n > 2, cria-se uma tabela T1, contendo todos osatributos do relacionamento; a chave primria de T1 ser composta pelos atributos chavesdas entidades participantes do relacionamento;
8. Converta cada especializao com m subclasses {S1, S2, ..., Sm} e superclasse SC, ondeos atributos de SC so {c, a1, a2, ..., an} onde c a chave primria de SC, em tabelasutilizando uma das seguintes opes:
8.1. Crie uma tabela T para SC com os atributos A(T) = {c, a1, a2, ..., an} e chaveC(T) = c; crie uma tabela Ti para cada subclasse Si , 1 i m, com os atributosA(Ti) = {c} A(Si), onde C(T) = c;8.2. Crie uma tabela Ti para cada subclasse Si, 1 i m, com os atributosA(Ti) = A(Si) {c, a1, a2, ..., an} e C(Ti) = c;8.3. Crie uma tabela T com os atributos A(T) = {c, a1, a2, ..., an} A(S1) ... A(Sm) {t} e C(T) = c, onde t um atributo tipo que indica a subclasse qual cadatupla pertence, caso isto venha a ocorrer;8.4. Crie uma tabela T com atributos A(T) = {c, a1, a2, ..., an} A(S1) ... A(Sm) {t1, t2, ..., tm} e C(T) = c; esta opo para generalizaes com overlapping, ecada ti, 1 i m, um atributo booleano indicando se a tupla pertence ou no subclasse Si; embora funcional, esta opo pode gerar uma quantidade muito grandede valores nulos;
Sistemas de Bancos de Dados Pgina 25
8/4/2019 Sistema Gerenciador de Banco de Dados
26/42
Unimar - Universidade de Marlia F.C.T.
Figura 19 - Mapeamento para o Modelo Relacional
4.4. Dependncia Funcional e Normalizao4.4.1. Dependncia Funcional
Uma dependncia funcional uma restrio entre dois conjuntos de atributos de umabase de dados. Suponha que o esquema de uma base de dados Rpossua n atributosA1, A2, ..., An; pense em R = { A1, A2, ... , An } como a representao universal da base dedados. Uma dependncia funcional, representada porX Y entre dois conjuntos de atributosX e Y que so subconjuntos de Respecificam uma restrio nas tuplas que podem compor umainstncia relao rde R. A restrio estabelece que para qualquer par de tuplas t1 e t2 em rdeforma que t1.[X] = t2.[X], obrigado a existir t1.[Y] = t2.[Y]. Isto significa que os valores docomponente Y em uma tupla em rdepende de, ou determinada pelos valores do
componente X. Para X Y l-se: Y funcionalmente dependente de X, ou X infere sobre Y.Para a base de dados do apndice A temos como exemplo as seguintes dependncias
funcionais:
1. RG { Nome, CIC, Depto., RG_Supervisor, Salrio }2. Nmero_Projeto { Nome_Projeto, Localizao }3. { RG_Empregado, Nmero_Projeto } Horas
alm de outras.
A dependncia 1 implica que o nmero de um RG define de forma nica o nome doempregado e o CIC do empregado. A dependncia 2 implica que o nmero do projeto definede forma nica o nome do projeto e sua localizao e a dependncia 3 implica que oRG do empregado mais o nmero do projeto define de forma nica o nmero de horas que oempregado trabalhou no projeto. A especificao das inferncias deve ser elaborada pelo
projetista de banco de dados em conjunto com o analista de sistemas, pois os mesmos deveroter conhecimento da semntica da base de dados.
4.4.2. Normalizao
O processo de normalizao pode ser visto como o processo no qual so eliminadosesquemas de relaes (tabelas) no satisfatrios, decompondo-os, atravs da separao de seusatributos em esquemas de relaes menos complexas mas que satisfaam as propriedadesdesejadas.
Sistemas de Bancos de Dados Pgina 26
7o Passo - Relacionamento n-rioE
EE
6o Passo - Atrbs. Multi Valorados
mv
cE
5o Passo - Relacionamentos N:N4o Passo - Relacionamentos 1:N3o Passo - Relacionamentos 1:1
2o Passo - Entidades Fracas1o Passo - Entidades Normais
NNEE
N1EE
ou
EE
EE
o
u
EE
c
EFEE
8/4/2019 Sistema Gerenciador de Banco de Dados
27/42
Unimar - Universidade de Marlia F.C.T.
O processo de normalizao como foi proposto inicialmente por Codd conduz umesquema de relao atravs de um bateria de testes para certificar se o mesmo est na 1a, 2a e 3a
Formas Normais. Estas trs Formas Normais so baseadas em dependncias funcionais dosatributos do esquema de relao.
4.4.2.1. 1a Forma Normal
A 1a Forma Normal prega que todos os atributos de uma tabela devem ser atmicos(indivisveis), ou seja, no so permitidos atributos multivalorados, atributos compostos ouatributos multivalorados compostos. Leve em considerao o esquema a seguir:
CLIENTE
1. Cdigo
2. { Telefone }
3. Endereo: ( Rua, Nmero, Cidade )
gerando a tabela resultante:
Telefone 1 EndereoCliente Cdigo Telefone n Rua No Cidade
sendo que a mesma no est na 1a Forma Normal pois seus atributos no so atmicos. Para quea tabela acima fique na 1a Forma Normal temos que eliminar os atributos no atmicos,gerando as seguintes tabelas como resultado:
Cliente Cdigo Rua Nmero Cidade
Cliente_Telefone Cdigo_Cliente Telefone_Cliente
4.4.2.2. 2a Forma Normal
A 2a Forma Normal prega o conceito da dependncia funcional total. Umadependncia funcional X Y total se removemos um atributo A qualquer do componente Xe desta forma, a dependncia funcional deixa de existir. A dependncia funcional X Y umadependncia funcional parcial se existir um atributo A qualquer do componente X que podeser removido e a dependncia funcional X Y no deixa de existir.
Veja a dependncia funcional 3 do tem 4.4.1.DependnciaFuncional:
{ RG_Empregado, Nmero_Projeto } Horas uma dependncia funcional total, pois se removermos o atributo RG_Empregado ou oatributo Nmero_Projeto, a dependncia funcional deixa de existir.
Uma tabela T est na 2a Forma Normal se estiver na 1a Forma Normal e todo atributo queno compem a chave primria C for totalmente funcionalmente dependente da chave primriaC. Se uma tabela no est na 2a Forma Normal a mesma pode ser normalizada gerando outrastabelas cujos atributos que no faam parte da chave primria sejam totalmente funcionalmentedependente da mesma, ficando a tabela na 2a Forma Normal.
4.4.2.3. 3a Forma Normal
Sistemas de Bancos de Dados Pgina 27
8/4/2019 Sistema Gerenciador de Banco de Dados
28/42
Unimar - Universidade de Marlia F.C.T.
A 3a Forma Normal prega o conceito de dependncia transitiva. Uma dependnciafuncional X Y em uma tabela T uma dependncia transitiva se existir um conjunto deatributos Z que no um subconjunto de chaves de T e as dependncias X Z, Z Y, sovlidas. Considere a seguinte tabela como exemplo:
Empregado RG Nom
e
No_Departamento Nome_Depto RG_Ger_Depto
onde temos a seguinte dependncia transitiva:
RG { Nome_Depto, RG_Ger_Depto }RG No_DepartamentoNo_Departamento { Nome_Depto, RG_Ger_Depto }
Porm, verifique o caso da tabela abaixo:
Empregado RG CIC Nome
No_Funcional
Neste caso, a dependncia transitiva:RG { Nome, No_Funcional }RG CICCIC { Nome, No_Funcional }
no valida pois o atributo CIC uma chave candidata.
Uma tabela est na 3a Forma Normal se estiver na 2a Forma Normal e no houverdependncia transitiva entre atributos no chave.
4.5. A lgebra RelacionalA lgebra relacional uma coleo de operaes cannicas que so utilizadas para
manipular as relaes. Estas operaes so utilizadas para selecionar tuplas de relaesindividuais e para combinar tuplas relacionadas de relaes diferentes para especificar umaconsulta em um determinado banco de dados. O resultado de cada operao uma novaoperao, a qual tambm pode ser manipulada pela lgebra relacional.
Todos os exemplos envolvendo lgebra relacional implicam na utilizao do banco dedados descrito no apndice A.
4.5.1. 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 umaoperao select :
( )
A letra grega utilizada para representar a operao de seleo; uma expresso booleana aplicada sobre os atributos da relao e o nome da relao sobre a qual ser aplicada a operao select.
Exemplos:
consulta1 =salrio < 2.500,00(EMPREGADO)
Sistemas de Bancos de Dados Pgina 28
8/4/2019 Sistema Gerenciador de Banco de Dados
29/42
Unimar - Universidade de Marlia F.C.T.
gera a seguinte tabela como resultado:
Tabela consulta1
Nome RG CIC Depto. RG Supervisor Salrio
Ricardo 30303030 33333333 2 10101010 2.300,00
Renato 50505050 55555555 3 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:
< , > , , , =, 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.
4.5.2. A Operao Project
A operao project seleciona um conjunto determinado de colunas de uma relao. Aforma geral de uma operao project :
()
A letra grega representa a operao project, representa a lista deatributos que o usurio deseja selecionar e representa a relao sobre a quala 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
Sistemas de Bancos de Dados Pgina 29
8/4/2019 Sistema Gerenciador de Banco de Dados
30/42
Unimar - Universidade de Marlia F.C.T.
Fernanda 14/02/69
Angelo 10/02/95
Adreia 01/05/90
4.5.3. Sequencialidade de Operaes
As operaes project e select podem ser utilizadas de forma combinada, permitindo queapenas determinadas colunas de determinadas tuplas possam ser selecionadas.
A forma geral de uma operao sequencializada :
(())
Veja o seguinte exemplo:
consulta4 =nome, depto., salario (salario < 2.500,00(EMPREGADO))produz a tabela a seguir como resultado:
Tabela consulta4
Nome Depto. Salrio
Ricardo 2 2.300,00
Renato 3 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 2 10101010 2.300,00
Renato 50505050 55555555 3 20202020 1.300,00
consulta6=nome, depto., salario(CONSULTA5)
Tabela consulta6
Nome Depto. Salrio
Ricardo 2 2.300,00
Renato 3 1.300,00
porm mais elegante utilizar a forma descrita na consulta4.
4.5.4. Operaes Matemticas
Levando em considerao que as relaes podem ser tratadas como conjuntos, podemosento aplicar um conjunto de operaes matemticas sobre as mesmas. Estas operaes so:unio ( ) , interseco ( ) e diferena (). Este conjunto de operaes no unrio, ou seja,Sistemas de Bancos de Dados Pgina 30
8/4/2019 Sistema Gerenciador de Banco de Dados
31/42
Unimar - Universidade de Marlia F.C.T.
podem ser aplicadas sobre mais de uma tabela, porm, existe a necessidade das tabelaspossuirem tuplas exatamente do mesmo tipo.
Estas operaes podem ser definidas da seguinte forma:
unio - o resultado desta operao representada porR S uma relao T que incluitodas as tuplas que se encontram em Re todas as tuplas que se encontram em S;
interseco - o resultado desta operao representada porR S uma relao T queinclui as tuplas que se encontram em Re em S ao mesmo tempo;
diferena - o resultado desta operao representada por RS uma relao T queinclui todas as tuplas que esto em Rmas no esto em S.
Leve em considerao a seguinte consulta:
Selecione todos os empregados que trabalham no departamento nmero 2 ou quesupervisionam empregados que trabalham no departamento nmero 2.
Vamos primeiro selecionar todos os funcionrios que trabalham no departamentonmero 2.
consulta7 =depto = 2(EMPREGADOS)
Tabela consulta7Nome RG CIC Depto. RG Supervisor Salrio
Fernando 20202020 22222222 2 10101010 2.500,00
Ricardo 30303030 33333333 2 10101010 2.300,00
Jorge 40404040 44444444 2 20202020 4.200,00
Vamos agora selecionar os supervisores dos empregados que trabalham no departamentonmero 2.
consulta8 =
rg_supervisor(CONSULTA7)
Tabela consulta8
RG Supervisor
10101010
20202020
Vamos projetar apenas o rg dos empregados selecionados:
consulta9=rg(CONSULTA7)
Tabela consulta9
RG
Sistemas de Bancos de Dados Pgina 31
8/4/2019 Sistema Gerenciador de Banco de Dados
32/42
Unimar - Universidade de Marlia F.C.T.
20202020
30303030
40404040
E por fim, vamos unir as duas tabelas, obtendo o resultado final.
consulta10 = CONSULTA8 CONSULTA9Tabela consulta10
RG
20202020
30303030
40404040
10101010
Leve em considerao a prxima consulta:
selecione todos os empregados que desenvolvem algum projeto e que trabalham nodepartamento 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
Sistemas de Bancos de Dados Pgina 32
8/4/2019 Sistema Gerenciador de Banco de Dados
33/42
Unimar - Universidade de Marlia F.C.T.
Obtemos ento todos os empregados que trabalham no departamento 2 e quedesenvolvem algum projeto.
consulta13 = CONSULTA11 CONSULTA12Tabela 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
20202020
30303030
40404040
50505050
consulta15 =rg(EMPREGADOS)
Tabela consulta15
RG
10101010
20202020
30303030
4040404050505050
consulta16 = CONSULTA15 CONSULTA14
Tabela consulta16
RG
10101010
4.5.5. Produto Cartesiano
Sistemas de Bancos de Dados Pgina 33
8/4/2019 Sistema Gerenciador de Banco de Dados
34/42
Unimar - Universidade de Marlia F.C.T.
O produto cartesiano uma operao binria que combina todas as tuplas de duastabelas. 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 entretabelas relacionadas utilizando uma condio de seleo apropriada. O resultado de umproduto cartesiano uma nova tabela formada pela combinao das tuplas das tabelas sobre asquais aplicou-se a operao.
O formato geral do produto cartesiano entre duas tabelas Re S :
RSLeve em considerao a seguinte consulta:
encontre todos os funcionrios que desenvolvem projetos em Campinas;
consulta16 = EMPREGADO/PROJETOPROJETOTabela consulta16
RG Empregado Nmero Projeto Nome Nmero Localizao
20202020 5 Financeiro 1 5 So Paulo
20202020 5 Motor 3 10 Rio Claro
20202020 5 Prdio Central 20 Campinas
20202020 10 Financeiro 1 5 So Paulo
20202020 10 Motor 3 10 Rio Claro
20202020 10 Prdio Central 20 Campinas
30303030 5 Financeiro 1 5 So Paulo
30303030 5 Motor 3 10 Rio Claro
30303030 5 Prdio Central 20 Campinas
40404040 20 Financeiro 1 5 So Paulo
40404040 20 Motor 3 10 Rio Claro
40404040 20 Prdio Central 20 Campinas
50505050 20 Financeiro 1 5 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 soas que possuem o mesmo valor em nmero do projeto e nmero e cuja localizao sejaCampinas.
consulta17 = rg_empregado, nmero ((nmero_projeto = nmero) .and. (localizao = Campinas)(CONSULTA16))
Tabela consulta17
RG Nmero
40404040 2050505050 20
Sistemas de Bancos de Dados Pgina 34
8/4/2019 Sistema Gerenciador de Banco de Dados
35/42
Unimar - Universidade de Marlia F.C.T.
A operao produto cartesiano no muito utilizada por no oferecer um resultadootimizado. Veja o tem seguinte.
4.5.6. Operao Juno
A operao juno atua de forma similar operao produto cartesiano, porm, atabela resultante conter apenas as combinaes das tuplas que se relacionam de acordo comuma determinada condio de juno. A forma geral da operao juno entre duas tabelas ReS a seguinte:
R S
Leve em considerao a consulta a seguir:
encontre todos os funcionrios que desenvolvem projetos em Campinas;
consulta18 = EMPREGADOS/PROJETOS nmero_projeto = nmeroPROJETOSTabela consulta18
RG_Empregado Nmero_Projeto Nome Nmero Localizao
20202020 5 Financeiro 1 5 So Paulo
20202020 10 Motor 3 10 Rio Claro
30303030 5 Financeiro 1 5 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
50505050
20 Prdio Central 20 Campinas
4.6. SQL - Structured Query LanguageSQL um conjunto de declaraes que utilizado para acessar os dados utilizando
gerenciadores de banco de dados. Nem todos os gerenciadores utilizam SQL. SQL no umalinguagem procedural pois processa conjuntos de registros, ao invs de um por vez, provendonavegao automtica atravs dos dados, permitindo ao usurio manipular tipos complexos dedados. SQL pode ser utilizada para todas as atividades relativas a um banco de dados podendoser utilizada pelo administrador de sistemas, pelo DBA, por programadores, sistemas de suporte tomada de decises e outros usurios finais.
4.6.1. Definio de Dados Utilizando SQL
4.6.1.1. Comando CREATE TABLE
Sistemas de Bancos de Dados Pgina 35
8/4/2019 Sistema Gerenciador de Banco de Dados
36/42
Unimar - Universidade de Marlia F.C.T.
O comando create table permite ao usurio criar uma nova tabela (ou relao). Para cadaatributo da relao definido um nome, um tipo, mscara e algumas restries. Os tipos de umacoluna 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.
A restrio not null indica que o atributo deve ser obrigatoriamente preenchido; se nofor especificado, ento o default que o atributo possa assumir o valor nulo.
A forma geral do comando create table ento :
create table ( ,
,:
);
Por exemplo, para criar a tabela EMPREGADOS do apndice A, teramos o seguintecomando:
create table EMPREGADOS ( nome char (30) NOT NULL,rg integer NOT NULL,cic integer,depto integer NOT NULL,rg_supervisor integer,
salario, decimal (7,2) NOT NULL );
4.6.1.2. Comando DROP TABLE
O comando drop table permite a excluso de uma tabela (relao) em um banco dedados.
A forma geral para o comando drop table :
drop table ;
Por exemplo, para eliminar a tabela EMPREGADOS do apndice A teramos o seguintecomando:
drop table EMPREGADOS;
Observe que neste caso, a chave da tabela EMPREGADOS, (rg) utilizada como chaveestrangeira ou como chave primria composta em diversos tabelas que devem ser devidamentecorrigidas.
Este processo no assim to simples pois, como vemos neste caso, a excluso da tabelaEMPREGADOS implica na alterao do projeto fsico de diversas tabelas. Isto acabaimplicando na construo de uma nova base de dados.
4.6.1.3. Comando ALTER TABLE
O comando alter table permite que o usurio faa a incluso de novos atributos em umatabela. A forma geral para o comando alter table a seguinte:
Sistemas de Bancos de Dados Pgina 36
8/4/2019 Sistema Gerenciador de Banco de Dados
37/42
Unimar - Universidade de Marlia F.C.T.
alter table add ;
No caso do comando alter table, a restrio NOT NULL no permitida pois assim quese insere um novo atributo na tabela, o valor para o mesmo em todas as tuplas da tabelarecebero o valor NULL.
4.6.2. Consultas em SQL4.6.2.1. O comando SELECT
O comando select permite a seleo de tuplas e atributos em uma ou mais tabelas. Aforma bsica para o uso do comando select :
select from where ;
Por exemplo, para selecionar o nome e o rg dos funcionrios que trabalham nodepartamento nmero 2 na tabela EMPREGADOS utilizamos o seguinte comando:
select nome, rgfrom EMPREGADOSwhere 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, salariofrom EMPREGADOSwhere 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 operaoselect-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_deptofrom departamento_projeto t1, projeto t2where t1.numero_projeto = t2.numero;
Na expresso SQL acima, t1 e t2 so chamados alias (apelidos) e representam amesma tabela a qual esto referenciando. Um alias muito importante quando h redundncia
Sistemas de Bancos de Dados Pgina 37
8/4/2019 Sistema Gerenciador de Banco de Dados
38/42
Unimar - Universidade de Marlia F.C.T.
nos nomes das colunas de duas ou mais tabelas que esto envolvidas em uma expresso. Aoinvs de utilizar o alias, possvel utilizar o nome da tabela, mas isto pode ficar cansativo emconsultas muito complexas alm do que, impossibilitaria a utilizao da mesma tabela mais queuma 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.rgfrom empregado e1, empregado e2where 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 ( EMPREGADOStg_t1 = rg_supervisor_t2EMPREGADOS);
O operador* dentro do especificadorselectseleciona todos os atributos de uma tabela,enquanto que a excluso do especificador where faz com que todas as tuplas de uma tabelasejam selecionadas. Desta forma, a expresso:
select *from empregados;
gera o seguinte resultado:
Nome RG CIC Depto. RGSupervisor Salrio
Joo Luiz 10101010 11111111 1 NULO 3.000,00
Fernando 20202020 22222222 2 10101010 2.500,00
Ricardo 30303030 33333333 2 10101010 2.300,00
Jorge 40404040 44444444 2 20202020 4.200,00
Renato 50505050 55555555 3 20202020 1.300,00
Diferente de lgebra relacional, a operao selectem SQL permite a gerao de tuplasduplicadas como resultado de uma expresso. Para evitar isto, devemos utilizar o especificadordistinct. Veja a seguir os exemplos com e sem o especificadordistinct.
select depto select distinct deptofrom empregado; from empregado;
que gera os seguintes resultados:
Depto. Depto.
1 1
2 2
2 3
2
3
Sistemas de Bancos de Dados Pgina 38
8/4/2019 Sistema Gerenciador de Banco de Dados
39/42
Unimar - Universidade de Marlia F.C.T.
Podemos gerar consultas aninhadas em SQL utilizando o espeficicador in, que faz umacomparao do especificadorwhere da consulta mais externa com o resultado da consulta maisinterna. Considere a consulta a seguir:
selecione o nome de todos os funcionrios que trabalham em projetos localizados emRio Claro;
select e1.nome, e1.rg, e1.deptofrom empregado e1, empregado_projeto e2where e1.rg = e2.rg_empregado
and e2.numero_projeto in ( select numerofrom projetowhere localizacao = Rio Claro);
Para selecionar um conjunto de tuplas de forma ordenada devemos utilizar o comandoorder by. Leve em considerao a seguinte consulta:
selecione todos os empregados por ordem alfabtica:
select nome, rg, deptofrom empregadoorder by nome;
4.6.3. Inseres e Atualizaes
Para elaborar inseres em SQL, utiliza-se o comando insert into. A forma geral para o
comando insert into :insert into values ;
Considere a seguinte declarao:
insira na tabela empregados, os seguintes dados:
nome:Jorge Goncalves
rg: 60606060
cic: 66666666
departamento: 3rg_supervisor: 20202020
salrio:R$ 4.000,00
insert into empregadosvalues (Jorge Goncalves, 60606060, 66666666, 3, 20202020, 4000,00);
ou ainda:
insira na tabela empregados os seguintes dados:
nome:Joao de Campos
rg: 70707070
cic: 77777777
Sistemas de Bancos de Dados Pgina 39
8/4/2019 Sistema Gerenciador de Banco de Dados
40/42
Unimar - Universidade de Marlia F.C.T.
departamento: 3
salrio:R$2.500,00
insert into empregados (nome, rg, cic, depto, salario)values (Joao de Campos, 70707070, 77777777, 3, 2500,00);
Como na primeira insero todos os campos foram inseridos, ento no foi necessrioespecificar o nome das colunas. Porm, na segunda insero, o campo rg_supervisorno foiinserido, ento especificou-se as colunas. Outra forma de se elaborar esta insero seria:
insert into empregadosvalues (Joao de Campos, 70707070, 77777777, 3, , 2500,00);
Neste caso, utilizou-se os caracteres para se declarar que um valor nulo seria inseridonesta coluna.
Para se efetuar uma alterao em uma tabela, utilizado o comando update. A formageral do comando update :
update set = where
Considere a seguinte declarao:
atualize o salrio de todos os empregados que trabalham no departamento 2 paraR$ 3.000,00;
update empregadoset salario = 3.000,00where depto = 2;
Para se eliminar uma tupla de uma tabela, utiliza-se o comando delete. A forma geral docomando update :
delete from where ;
Leve em considerao a seguinte expresso:
elimine os registros nos quais o empregado trabalhe no departamento 2 e possua salriomaior que R$ 3.500,00;
delete from empregadowhere salario > 3.500,00 and depto = 2;
Nos casos de atualizao que foram vistos, todas as podem ser uma
consulta utilizando o comando select, onde o comando ser aplicado sobre todos os registrosque satisfizerem as condies determinadas pelo comando de seleo.
Sistemas de Bancos de Dados Pgina 40
8/4/2019 Sistema Gerenciador de Banco de Dados
41/42
Unimar - Universidade de Marlia F.C.T.
5. Bibliografia
Fundamentals of Database Systems; Ramez Elmasri, Shamkant Navathe; The BenjaminCummingsPublishing Company; 1989;
Sistema de Banco de Dados; Henry F. Korth, Abraham Silberschatz; Makro Books; 1995;
SQL Language - Oracle Reference Manual; Version 7.2;
Sistemas de Bancos de Dados Pgina 41
8/4/2019 Sistema Gerenciador de Banco de Dados
42/42
Unimar - Universidade de Marlia F.C.T.
Apndice A - Exemplo de um Banco de DadosTabela EMPREGADO
Nome RG CIC Depto. RG Supervisor Salrio
Joo Luiz 10101010 11111111 1 NULO 3.000,00Fernando 20202020 22222222 2 10101010 2.500,00
Ricardo 30303030 33333333 2 10101010 2.300,00
Jorge 40404040 44444444 2 20202020 4.200,00
Renato 50505050 55555555 3 20202020 1.300,00
Tabela DEPARTAMENTO Tabela PROJETO
Nome Nmero RG Gerente Nome Nmero Localizao
Contabilidade 1 10101010 Financeiro 1 5 So Paulo
Engenharia Civil 2 30303030 Motor 3 10 Rio Claro
Engenharia Mecnica 3 20202020 Prdio Central 20 Campinas
Tabela DEPENDENTES
RG Responsvel NomeDependente
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
2 5 20202020 5 10
3 10 20202020 10 25
2 20 30303030 5 35
40404040 20 50
50505050 20 35